PDF 은닉을 위한 중국 나머지 정리 기반 스테가노그래피
초록
본 논문은 PDF 파일에 보이지 않는 ASCII A0(비분리 공백) 문자를 이용해 비밀 메시지를 삽입하는 새로운 스테가노그래피 기법을 제안한다. 기존 방법은 삽입되는 A0의 개수가 비밀 문자열 길이와 비교해 과다하게 늘어나는 문제를 가지고 있었으나, 저자는 중국 나머지 정리(CRT)를 활용해 삽입 횟수를 비밀 문자 수보다 작게 유지하면서도 복원 가능하도록 두 가지 알고리즘을 설계하였다.
상세 분석
이 논문은 PDF 문서의 특수 문자 A0(비분리 공백)를 은닉 매개체로 삼는 기존 연구를 확장한다. 기존의 ‘null space coding’은 비밀 문자당 A0를 여러 개 삽입함으로써 파일 크기가 급격히 증가하고, 삽입된 A0의 총수가 비밀 메시지 길이보다 클 위험이 있었다. 저자는 이러한 단점을 보완하기 위해 중국 나머지 정리(CRT)를 기반으로 한 두 가지 삽입 방식을 제안한다.
첫 번째 접근법에서는 비밀 메시지를 k비트 블록으로 나눈 뒤, 각 블록을 10진수로 변환하고 두 개의 서로소인 소수 p₁=2^{⌈k/2⌉}와 p₂=p₁+1에 대해 나머지를 구한다. 각각의 나머지는 ⌈k/2⌉비트 이진 표현으로 변환되고, 이진 행렬에 제어 비트를 추가한다. 행렬의 1에 해당하는 위치마다 PDF 내부의 문자 사이에 A0를 삽입한다. 복원 단계에서는 삽입된 A0를 다시 이진 행렬로 복구하고, CRT의 가레너 알고리즘을 이용해 원래의 10진수 블록을 재구성한 뒤, 다시 이진 문자열로 변환해 원문을 얻는다. 이 과정에서 삽입되는 A0의 최대 개수는 |s|+1 로, 비밀 문자열 길이와 거의 동일하게 유지된다.
두 번째 접근법은 보다 일반적인 형태로, 비밀 키 m을 이용해 2m~3m 구간 내의 모든 소수를 구하고, 이들의 곱의 로그₂값을 블록 길이 k로 정의한다. 각 블록에 대해 t개의 소수(p₁…p_t)로 나머지를 구하고, 나머지 값을 이용해 A0를 삽입할 정확한 위치(pos)를 계산한다. pos는 각 블록마다 t개의 위치를 생성하고, 전체 위치 배열을 정렬한 뒤 순차적으로 삽입한다. 마지막 블록 끝에는 두 개의 A0를 추가해 종료 신호로 활용한다. 복원 시에도 동일한 소수 집합과 블록 길이를 재계산한 뒤, 삽입 위치를 역추적해 나머지를 복원하고, 가레너 알고리즘으로 원본 블록을 재구성한다.
두 방법 모두 시간 복잡도는 O(n·k)이며, 삽입된 A0의 총량이 비밀 메시지 길이와 거의 일치하도록 설계되었다. 또한, PDF 파일 자체의 레이아웃을 크게 변경하지 않으므로 일반적인 PDF 뷰어에서는 눈에 띄지 않는다. 그러나 A0 삽입 위치가 문자 사이에 한정되므로, 원본 PDF에 충분한 문자 간격이 존재하지 않을 경우 삽입이 제한될 수 있다. 또한, 비밀 키(k 또는 m)의 안전한 사전 공유가 전제되어야 하며, 키가 노출될 경우 공격자는 CRT 역연산을 통해 비밀을 쉽게 복원할 위험이 있다.
전반적으로 이 논문은 CRT를 활용해 스테가노그래피의 삽입 효율성을 크게 개선했으며, 파일 크기 증가와 탐지 위험을 최소화한 점이 혁신적이다. 다만 구현상의 제약과 키 관리 문제는 실제 적용 시 고려해야 할 과제로 남는다.
댓글 및 학술 토론
Loading comments...
의견 남기기