2편 디지털 데이터의 표현
디지털 포렌식 2급 자격증 필기/컴퓨터 구조와 디지털 저장매체

2편 디지털 데이터의 표현

연구소 인턴 2023. 8. 17.
300x250
반응형

제 1장 데이터의 구성단위

1. 물리적 단위

물리적 단위는 실제 물리적 장치(메모리, 저장 장치 등)에서 사용되는 단위로 0, 1의 내용만 저장

Bit가 최소단위이며, 각 단위와 크기는 표를 참고하면 된다.

2. 논리적 단위

정보를 저장 및 처리하는데 사용되며 디지털 포렌식 관점에서 분석의 대상이 되는 최소의 단위이고 내부는 물리적 단위로 구성된다.

제 2장 수 체계

1. 2진수(Binary Numbers)

2진수는 1Byte(8비트)에 저장된 데이터를 나타낸다.

2. 2Bytes 계산

2 바이트는 최대 11111111 11111111의 값을 저장할 수 있으며, 65535를 나타낸다.

3. 빅 엔디안(Big-Endian)과 리틀 엔디안(Little-Endian)

빅 엔디안과 리틀 엔디안은 바이트의 순서를 설명하는 용어

빅 엔디안 : 큰 쪽(바이트 열에서 가장 큰 값)이 먼저 저장되는 순서

리틀 엔디안 : 작은 쪽(바이트 열에서 가장 작은 값)이 먼저 저장되는 순서

4. 빅 엔디안을 사용하는 시스템

IBM370 컴퓨터와 대부분의 RISC 기반의 컴퓨터, 모토로라 마이크로프로세서는 빅 엔디안 방식

정렬되어 저장되어 있는 경우 두 숫자를 더한 결과가 자릿수를 변경하게 되면 모든 자릿수를 오른쪽으로 옮겨야하는 단점

5. 리틀 엔디안을 사용하는 시스템

인텔 프로세서나 DEC의 알파 프로세서에서 리틀 엔디안 방식

컴퓨터의 연산들이 매우 단순해지고 빠르게 수행 가능

6. 16진수(Hexadecimal Numbers)

디지털 데이터는 2진수를 사용하지만 모든 16진수 변환 표 데이터를 비트로 나타낼 시 데이터를 화면에 출력하거나 처리할 때 비 효율적

☞ 니블(4bit)단위로 묶어서 표현하는 16진수의 필요성 등장

7. 고정 소수점

고정 소수점 연산은 정수 데이터의 표현과 연산에 사용하는 방식

첫 번째 비트는 "부호 비트"  양수(+)일 시 0, 음수(-)일 시 1로 표시, 나머지 비트에는 정수부가 저장 소수점은 맨 오른쪽에 있는 것으로 가정

만약 음수를 표현해야 한다면 3가지 방식으로 표현 가능하다.

  - 부호화 절대치 : 양수 표현에 대하여 부호 bit만 1로 바꾼것으로 표현범위는  -127 ~ 127이다.

  - 1의 보수 : 양수 표현에 대하여 1의 보수를 계산한 것으로 표현범위는 -127 ~ 127이다.

  - 2의 보수 : 1의 보수를 계산한 후, 1을 더한 것으로 표현범위는 -128 ~ 127이다.

1의보수와 2의 보수 계산하는 방법

8. 부동 소수점

부동 소수점 연산은 실수 데이터의 표현과 연산에 사용하는 방식

실수를 표현시 소수점의 위치를 고정하지 않고 그 위치를 나타내는 수를 따로 기술하는 것

제 3장 문자

1. 문자 코드

디지털 포렌식 분석에서 문자 데이터를 분석할 때, 문자코드에 대한 이해가 있어야 의미를 보다 정확히 파악 할 수 있다. 특정 2진값으로 한글, 영어(A~Z, a~z), 숫자(0~9), 특수 문자 등의 모양을 정해놓은 문자 코드를 사용하고, 이는 세계 표준으로 지정하여 서로 다른 시스템에서도 동 일하게 해석될 수 있어야 한다.

 

2. ASCII 문자 코드

ASCII코드는 미국 표준 협회(ANSI)가 제정한 자료 처리 및 통신 시스템 상호 간의 정보 교환용 표준 코드

7비트로 구성된 128종의 기호를 정한 것으로 1바이트로 하나의 문자를 표현한다.

3. 엡시딕(EBCDIC) 코드

EBCDIC코드는 IBM이나 대형 운영체제에서 사용하기 위해 개발된 알파벳 및 숫자를 위한 바이너리 코드

하나의 영숫자 코드가 8 비트 구성 총 256개 문자 코드를 구성할 수 있으나, 실제 문자코드는 아스키 코드와 동일한 128개 이다. 에러검출을 위한 패리티비트 추가시 총 9비트를 사용하며, 4개의 Zone Bit + 4개의 Digit 비트로 구성된다.

 

4. BCD 코드

10진수 1자리의 수를 2진수 4Bit로 표현한 것으로

4Bit의 2진수를 각 bit가 8(2³),4(2²),2(2¹),1(0)의 자리 값을 가지므로 8421 코드라고도 함.

대표적인 가중치 코드(Weight Code)이며 10진수 입,출력이 간편하다는 장점이 있다.

자체 보수화(self-complementary)는 불가능함

5. 3초과 코드(Excess-3 Code)

10진수를 표현하기 위한 코드이며, BCD 코드에 3을 더한 값과 같다.

구성하는 어떤 비트값도 0이 아니며, BCD 코드 중에서 산술 연산 작용에 가장 적합하다.

대표적인 자기 보수코드, 비 가중치 코드

 

6. 그레이 코드(Gray Code)

BCD 코드의 인접하는 비트를 Xor 연산하여 만든 코드

A/D변환, 입출력 장치 등에 주로 사용되며, 하드웨어 에러를 최소로 하는데 적합하다.

7. 패리티 검사 코드(Parity Check Code)

코드의 오류(Error)를 검사하기 위해서 Data bit이외에 1bit를 추가하는 것을 말한다.

8. 해밍코드(Hamming Code)

오류 검출 및 교정이 가능한 코드이고, 2bit의 오류를 검출할 수 있고, 1bit의 오류를 교정할 수 있음

단일 비트 실수로 인해 데이터 스트림이 전달되는 네트워크에서는 해밍 코딩 접근 방식이 효과적

9. 한글 조합형, 완성형, 확장형 코드

⑴ 조합형 코드

2바이트 완성형 코드가 발표되기 전까지 사용되던 코드로, 한글을 초성, 중성, 종성에 따라 조합하여 표현했다. 이론 상 한글 11,172자를 모두 표현할 수 있으며, 한글 입력에 대한 처리가 쉬웠으나 Microsoft Windows 95에서 완성형 코드를 선택함에 따라 1990년도 중반까지만 사용됨

⑵ 완성형 코드

2바이트 완성형 코드를 의미하며, EUC-KR로 표준화되어 사용된다. 완성형에서 한글은 연속된 두 개의 바이트를 이용 해서 표현할 수 있으며, 첫 번째 바이트와 두 번째 바이트 모두 OxA1-0xFE(16진수)사이의 값을 가진다. 완성형 코드는 한글을 2,350자 지원, Microsoft Windows 에서 선택함에 따라 최근까지 널리 사용.

⑶ 확장형 코드

Microsoft에서 완성형 (EUC-KR) 코드에 글자를 추가 한 것으로 코드페이지 949(CP949) 라고 불린다. ECU-KR과 마찬가지로 한글을 표현하는데 2바이트를 사용 한다.

 

10. 유니코드(Unicode)

전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준 코드로 ISO 10646 으로 정의된 USC(Universal Character Set)를 말함.

한글은 1996년 유니코드 2.0에서 11,172자가 모두 포함됨.

유니코드는 31비트 문자 셋이지만, 특수문자를 제외 한 전 세계 모든 문자들을 하위 16비트의 영역 안에 정의된다.

유니코드 첫 65,536개의 코드(0000~FFFF)를 기본 다 국어 평면(MBP)라고 한다.

⑴ UCS-2와 UCS-4

USC-2는 2바이트를 사용하여, 유니코드 31비트 문제 중 16비트 이하의 부분만 표현

USC-4는 4바이트를 사용하여 31비트의 모든 유니코드 영역에 표현

⑵ UTF-8

가장 일반적으로 사용하는 유니코드 포맷

31비트의 유니코드를 1~6개의 바이트에 나누어 저장하는데 첫 번째 바이트에서 몇개의 바이트로 구성된지 파악한다.

아스키 코드영역은 1바이트로 표현하고, 한글은 보통 3바이트로 표현한다.

Microsoft에서도 UTF-8 지원

⑶ UTF-16

USC-2 문자열 안에 유니코드의 21비트 영역의 문자를 표현하기 위해 도입하였으며, USC-2의 확장버전 16비트 위의 21비트 까지 표현가능

⑷ UTF-32

각 문자를 4바이트로 표현

제 4장 데이터 인코딩

1. 데이터 인코딩

숫자, 문자, 시간 등의 데이터는 원본 그대로의 형태로 저장될 수 있지만, 다양한 코딩 알고리즘에 따라 특수한 형태의 테이터로 변환된다.

2. Base 64

8Bit 바이너리 데이터를 ASCII 영역의 문자로만 이루어진 일련의 문자열로 변환하는 인코딩 방식

웹·이메일 S/W에서 바이너리 데이터 전송 등에 널리 사용되는 인코딩 방식

임의의 바이너리 데이터를 64개 아스키 문자의 조합 으로 표현

컴퓨터는 2진수를 사용하므로 64진수로 표현하기 위 해서는 6비트의 2진수를 사용(26=64)

3. Base 58

Binary data를 Text로 변경해 주는 인코딩 기법

입력된 값을 big number로 변경하여 58로 나누고 그 나머지(0~57)을 지정된 table에 대응하는 문자로 치환.

용도는 사용자가 직접 타이핑하거나 Copy & Paste를 용이하게 하기 위해 사용한다.

제 5장 디지털포렌식과 해시함수

1. 해시함수란?

해시함수는 임의의 길의의 데이터를 고정된 길이의 데이터로 계산해주는 함수

해시는 일방향성 특징을 가지며, 이는 변환된 해시 값으로 입력 값을 알아내는 것이 매우 어렵다는 의미

2. 해시함수의 활용

서로 다른 파일은 서로 다른 해시 값을 가진다는 특성을 이용하여 디지털 증거 "분석 단계"에 활용된다.

혐의 파일이 이미 특정된 경우, 해당 파일을 찾기 위해 해시 값을 활용한다.

300x250
반응형

댓글