■ 데이터 인코딩
- 데이터 인코딩이란 이진파일의 정보를 가시적인 텍스트로 표현하는 방식
- 숫자, 문자, 시간 등의 데이터는 다양한 인코딩 알고리즘에 따라 특수한 형태의 데이터로 변환
종류 | 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 |