root@j4sper:~#

디지털포렌식 전문가 2급 필기 - 컴퓨터 구조와 디지털 저장매체 (2) 본문

License/디지털포렌식 2급

디지털포렌식 전문가 2급 필기 - 컴퓨터 구조와 디지털 저장매체 (2)

j4sper 2021. 5. 2. 19:00

제2편 디지털 데이터의 표현

제1장 데이터의 구성단위

물리적 단위 : 실제 물리적 장치(메모리, 저장장치)에서 사용되는 단위로 0, 1의 내용만 저장할 수 있는 bit가 최소 단위

 

비트(bit) < 쿼터(2bit) < 니블(4bit) < 바이트(8bit) < 워드(16bit) < 더블 워드(32bit) < 쿼드 워드(64bit) < 킬로바이트 < 메가바이트 < 기가바이트 < 테라바이트 < 페타바이트 < 엑사바이트 < 제타바이트 < 요타바이트

 

Kilobyte : 2^10 bytes (1KB)

Megabyte : 2^20 bytes (1MB)

Gigabyte : 2^30 bytes (1GB)

Terabyte : 2^40 bytes (1TB)

Petabyte : 2^50 bytes (1PB)

Exabyte : 2^60 bytes (1EB)

Zettabyte : 2^70 bytes (1ZB)

 

논리적 단위 : 정보를 저장 및 처리하는 데 사용되며, 디지털 포렌식 관점에서 분석 대상이 되는 최소 단위

포렌식 분야의 주요 대상 : 파일

  • 필드 : 여러 개의 바이트, 워드가 모여 이루어진 파일 구성의 최소 단위 (항목 또는 아이템)
  • 레코드 : 프로그램 내의 자료 처리 기본 단위 (논리적 레코드)
  • 블록 : 저장매체에 입출력될 때 기본 단위 (물리적 레코드)
  • 파일 : 관련된 레코드의 집합으로 하나의 프로그램 처리 단위
  • 데이터베이스 : 파일(레코드) 집합, 계층적 구조를 갖는 자료 단위

제2장 수 체계

2진수 : 컴퓨터 메모리의 기본 단위인 1byte(8bit)에 저장된 데이터

 

리틀 에디안(Little Endian) : 오른쪽부터 왼쪽으로 저장되는 방식

리틀 에디안 시스템 : IBM 370 컴퓨터, RISC(Reduced Instruction Set Computer), 모토로라 마이크로 프로세서

리틀 에디안

빅 에디안(Big Endian) : 왼쪽부터 오른쪽으로 저장되는 방식

빅 에디안 시스템 : 인텔 프로세서, DEC의 알파 프로세서

빅 에디안

16진수 : 니블(4bit) 단위로 묶어서 표현

고정소수점 : 정수 데이터의 표현과 연산에 사용

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

고정소수점 데이터 표현

표현 방법

  • 부호화, 절대치 : 양수 표현에 대하여 부호 비트만 1
  • 1의 보수 : 양수 표현에 대하여 1의 보수를 계산, 0은 1로, 1은 0으로 변환
  • 2의 보수 : 양의 표현에 대하여 2의 보수를 계산, 1의 보수 + 1

음수 표현 범위

  • 부호화 절대치, 1의 보수 : -127 ~ 127
  • 2의 보수 : -128 ~ 127

 

부동소수점 : 실수 데이터의 표현과 연산에 사용

실수 표현 시 소수점의 위치를 고정하지 않고 그 위치를 나타내는 수를 따로 적는 것으로, 유효숫자를 나타내는 가수와 소수점 위치를 알 수 있는 지수로 표현

부동 소수점 데이터 표현

제3장 문자

문자 코드 : 특정 2진 값으로 한글, 영어(A~Z, a~z), 숫자(0~9), 특수 문자 등의 모양을 정해놓은 문자 코드를 사용하고, 이는 세계 표준으로 지정하여 서로 다른 시스템에서도 동일하게 해석될 수 있어야 한다.

 

ASCII 문자 코드

  • 미국 표준 협회(ANSI)가 제정한 자료 처리 및 통신 시스템 상호 간의 정보 교환용 표준 코드
  • 제어 부호 33자, 그래픽 기호 33자, 숫자 10자(0~9), 알파벳 대소문자 52자(A~Z, a~z), 공백 문자 1개로 구성
  • 영문을 표기하는 대부분의 시스템에서 사용
  • 7비트, 128가지 기호를 정의하여 1바이트로 하나의 문자를 표현

BCD 코드 : 2진화 10진 코드

  • 10진수 1자리의 수를 2진수 4Bit로 표현
  • 4bit의 2진수를 각 bit가 8, 4, 2, 1의 자리 값을 가지므로 8421 코드라고도 함
  • 대표적인 가중치 코드(Weight Code)
  • 자체 보수화(Self-complementary) 불가능

EBCDIC : 확장 2진화 10진 코드

  • 하나의 영숫자 코드가 8Bit 구성 중 256개 문자 코드를 구성할 수 있으나, 실제 문자코드는 ASCII 코드와 동일한 128개이다
  • 에러 검출을 위한 패리티 비트 추가 시 총 9bit 사용
  • 4개의 zone bit + 4개의 digit bit 구성

그레이 코드(Gray Code) : BCD 코드의 인접하는 비트를 XOR 연산하여 만든 코드

  • A/D 변환, 입출력 장치 등에 사용
  • Hardware error를 최소로 하는데 적합
  • 비가중치 코드

그레이 코드 데이터 표현

패리티 검사 코드(Parity Check Code) : 코드의 오류(error)를 검사하기 위해서 Data bit 이외에 1bit를 추가하는 것

  • 1bit만 오류 검출 가능
  • Odd Parity : 홀수=기수 패리티
  • Even Parity : 짝수=우수 패리티

해밍 코드(Hamming Code) : 오류 검출 및 교정이 가능한 코드

  • 해밍 코드는 2bit의 오류를 검출할 수 있고, 1bit의 오류를 교정할 수 있다.
  • 해밍 코드 중 1,2,4,8,... 2의 제곱 번째는 오류 검출을 위한 코드

한글 조합형 코드 : 한글을 초성, 중성, 종성에 따라 조합하여 표현, 이론 상 한글 11,172자를 모두 표현 가능

 

한글 완성형 코드 : 2byte 완성형 코드를 의미하며, EUC-KR로 표준화되어 사용

  • 한글은 연속된 두 개의 바이트를 이용해 표현할 수 있으며, 첫 번째 바이트와 두 번째 바이트 모두 0xA1 - 0xFE(16진수) 사이의 값을 가진다.
  • 한글을 2,350자 지원

한글 확장 완성형 코드 : 완성형 코드에 글자를 추가한 것, 코드페이지 949(CP949)라고 불린다. 2바이트 사용

 

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

  • 모든 문자를 16비트로 표현 가능
  • 첫 65,536개의 코드(0000~FFFF)를 기본 다국어 평면(MBP)라고 한다.
  • USC-2 : 2바이트를 사용하여 유니코드 31비트 중 16비트 이하의 부분만 표현
  • USC-4 : 4바이트를 사용하여 31비트의 유니코드 영역에 표현
  • UTF-8 : 가장 일반적으로 사용하는 유니코드 포맷, 31비트의 유니코드를 1~6개의 바이트에 나누어 저장
  • UTF-16 : USC-2 문자열 안에 유니코드의 21비트 영역의 문자를 표현하기 위해 도입, USC-2의 확장 버전
  • UTF-32 : 각 문자를 4바이트로 표현

제4장 데이터 인코딩

데이터 인코딩 : 숫자, 문자, 시간 등의 데이터를 다양한 인코딩 알고리즘에 따라 특수한 형태로 데이터 표현

 

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

  • 임의의 바이너리 데이터를 64개 아스키 문자의 조합으로 표현
  • 컴퓨터는 2진수를 사용하므로 64진수로 표현하기 위해서는 6비트의 2진수를 사용
  • Base64 인코딩은 E-Mail을 통한 이진 데이터의 전송 등에 많이 사용

Base64 인코딩 과정

 

Comments