Digital Forensic 이론

디지털 데이터의 표현(3)

ggaul 2023. 3. 20. 14:56
반응형

■ 데이터 인코딩

 - 데이터 인코딩이란 이진파일의 정보를 가시적인 텍스트로 표현하는 방식

 - 숫자, 문자, 시간 등의 데이터는 다양한 인코딩 알고리즘에 따라 특수한 형태의 데이터로 변환

종류 Character 집합 활용(예)
unencoding A~Z
0~9
!"#$%&'()*+,-./;:<=>?
@]^_
유닉스에서 바이너리 파일을 이메일로 전송
Base 64 A~Z
a~z
0~9
+/
이미지, 파일 첨부한 이메일 전송
Base 85 A~Z
a~u
0~9
!"#$%&'()*+,-./;:<=>?
@[^_’{|}~
Adobe PDF 내의 데이터 저장
URL encoding A~Z
a~u
0~9
”$-_.+!*’(),
URL에 아스키코드 외의 문자가 포함된 경우

uuencoding 알고리즘 방식은 3byte를 4개의 6bit로 쪼개 각 6bit에 32를 더한 후, 각 블록을 각각에 해당하는 아스키코드로 변환하는 방식을 의미. uuencoding은 "Unix-to-Unix Encoding"의 약자로, 유닉스 운영체제 안에서 사용되는 인코딩 방식이다. 특징으로는(인코딩할 문자의 총 개수+32)를 문자로 변환하여 첫 글자로 붙여주기 때문에 첫 글자가 다른 문자와 공백으로 구분되어 있다.

uuencoding은 마지막 블록이 3byte가 아닐 경우 null 문자를 패딩하여 같은 과정을 진행한다. 때문에 마지막 64bit는 0에 32를 더한 32가 아스키코드로 변하여 공백문자 " "로 남는다. 이는 존재 유무를 확인할 수 없어 백틱 "`"으로 표현되기도 한다.

 

Base64 인코딩 방식은 3byte를 4개의 6bit로 쪼개 각 6bit 블록을 [A-Z][a-z][0-9]+/로 변환하는 방식을 의미한다.

Base64는 마지막 블록이 3byte가 아닐 경우 남은 byte만을 6bit씩 나눈 후, 남은 블록의 하위에 0을 채워 6bit의 완전한 블록을 완성한다. 그리고 패딩이 있다는 것을 표시하기 위해 마지막에 "="을 붙이는 것이 특징이다. 만일 마지막 블록이 1byte만 있을 경우에는 "=="을 2byte가 있을 경우"="을 마지막에 붙인다.

 

Base85 인코딩 방식은 인코딩 결과의 효율성을 위해 고안된 인코딩 방식이다. Basw85는 4byte를 85진법으로 5블록으로 나눈 후, 여기에 33을 더하여 각 블록을 8bit로 표현한다. 각 8bit 블록은 아스키 코드 값으로 33(!)부터 117(u) 중 하나로 바뀌게 된다. Base85는 마지막 블록이 4byte가 아닐 경우 null 문자를 패딩 하여 4바이트로 맞춘 후 같은 과정을 진행한다. 하지만 단순히 비트를 나누어 만드는 것이 아닌 85bit로 나누기 때문에 마지막 블록이라고 동일한 문자가 나오지는 않는다. 이후 패딩한 글자 수만큼 인코딩 결과에서 문자를 제거한다. Base85의 특징은 인코딩 결과를 <~...~> 안에 표현하기 때문에 인코딩 방식을 바로 알아챌 수 있다.

 

URL Encoding 방식은 URL에 아스키코드 이외의 문자 데이터가 존재할 경우 이를 16진수로 표현하는 방식이다. 해당 글자를 특정 방식으로 인코딩한 후, 그 결과를 헥사코드로 표현한 다음, 1byte 단위로 앞에 "%"를 붙여 표현한다. 글자의 인코딩 방식은 웹사이트 별로 다른 방식을 취하고 있다.

반응형

'Digital Forensic 이론' 카테고리의 다른 글

HPA & DCO  (0) 2023.03.29
디지털 데이터의 표현(2)  (0) 2023.03.18
디지털 데이터의 표현(1)  (0) 2023.03.17