광학 이미지 암호화와 지그소 변환의 MATLAB 구현

광학 이미지 암호화와 지그소 변환의 MATLAB 구현

초록

본 논문은 아날로그와 디지털 방식을 모두 고려한 광학 이미지 암호화 기법을 제시한다. 이미지의 비트플레인을 분해한 뒤 지그소 변환을 적용하여 보안성을 높이며, 이를 MATLAB으로 구현한 알고리즘과 시스템 블록 다이어그램을 제공한다. 비트플레인 분해 전후의 암호화 성능 차이를 실험적으로 분석한다.

상세 분석

이 연구는 전통적인 광학 암호화 기법에 비트플레인 분해와 지그소 변환(Jigsaw Transform, JZT)을 결합함으로써 보안성을 크게 향상시키는 새로운 접근법을 제시한다. 먼저, 입력 이미지를 8비트 깊이의 8개의 비트플레인으로 분해한다. 각 비트플레인은 독립적인 정보 레이어를 형성하며, 고차 비트플레인(상위 비트)일수록 이미지의 전반적인 형태와 밝기 정보를 많이 담고 있다. 이러한 비트플레인 구조는 기존의 전체 이미지에 직접 적용하는 암호화보다 더 세밀한 제어가 가능하게 한다.

지그소 변환은 이미지 블록을 임의의 순서로 재배열하고, 각 블록에 회전·반전 등 추가적인 변형을 가하는 방식이다. 논문에서는 JZT를 2차원 정규 격자 상의 작은 블록(예: 8×8 또는 16×16 픽셀) 단위로 적용하고, 블록 재배열 키와 변형 파라미터를 난수 생성기로부터 추출한다. 이때 키 공간은 블록 수의 팩토리얼에 비례하므로, 키 길이가 충분히 길 경우 무차별 대입 공격에 대한 저항성이 크게 증가한다.

디지털 구현 측면에서는 MATLAB을 이용해 전체 파이프라인을 시뮬레이션한다. 주요 알고리즘은 (1) 비트플레인 분해, (2) 각 비트플레인에 대한 JZT 적용, (3) 변환된 비트플레인들을 다시 합성하여 암호화 이미지 생성, (4) 복호화 시 역 JZT와 비트플레인 재조합을 수행한다. MATLAB의 이미지 처리 툴박스와 행렬 연산 최적화를 활용해 실시간에 가까운 처리 속도를 달성했으며, 코드 구조는 모듈화되어 다른 광학 암호화 기법과도 쉽게 결합될 수 있다.

보안성 평가에서는 두 가지 경우를 비교한다. 첫째, 비트플레인 분해 없이 전체 이미지에 직접 JZT를 적용한 경우, 둘째, 비트플레인 분해 후 각 레이어에 JZT를 적용한 경우이다. 실험 결과, 후자의 경우 평균 PSNR(복호화 이미지와 원본 이미지 간의 신호 대 잡음비)이 30 dB 이하로 크게 감소했으며, 이는 복호화 공격자가 원본을 추정하기 어렵게 만든다. 또한, 엔트로피 분석에서 비트플레인 기반 암호화가 전체 이미지 기반 암호화보다 0.5 bit/픽셀 이상 높은 엔트로피 값을 보였다. 이는 정보의 불확실성이 증가했음을 의미한다.

아날로그 구현 부분에서는 광학 4f 시스템에 공간 광변조기(SLM)를 배치하고, JZT 키를 전자적으로 제어된 위상 패턴으로 변환한다. 실험적인 광학 회로는 디지털 시뮬레이션과 일치하는 암호화/복호화 결과를 보여, 제안된 알고리즘이 실제 광학 시스템에서도 적용 가능함을 입증한다.

전체적으로 이 논문은 비트플레인 분해와 지그소 변환의 결합이 기존 광학 암호화보다 키 공간, 엔트로피, 복호화 난이도 측면에서 현저히 우수함을 실험과 시뮬레이션을 통해 입증한다. 또한 MATLAB 기반 구현 코드를 제공함으로써 연구 재현성과 확장성을 높였으며, 향후 다중 채널 전송, 실시간 영상 스트리밍 등 다양한 응용 분야에 적용할 수 있는 기반을 마련한다.