Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

이미지 스테가노그래피란? 정보 보안의 3가지 핵심 기법

빠르고 강력한 컴퓨터의 등장과 함께 이미지 스테가노그래피(image steganography)는 놀라운 발전을 이루었습니다. 오늘날에는 데이터를 이미지 안에 숨기고 처리하는 소프트웨어를 누구나 쉽게 구할 수 있으며, 숨겨진 이미지 역시 간단한 절차만으로 복원할 수 있습니다.

이미지 정보 은닉의 3가지 대표 기법

이미지에서 정보를 숨기는 방법은 크게 세 가지로 나눌 수 있습니다.

1. 최하위 비트(LSB) 삽입법

LSB(Last Significant Bit) 삽입법은 가장 널리 알려진 이미지 스테가노그래피 기법입니다. 구현이 간단하고 사용하기 쉬운 것이 최대 장점이지만, 안타깝게도 공격에 매우 취약하다는 단점이 있습니다. 단순한 이미지 형식 변환만으로도 숨겨진 모든 데이터가 손상될 수 있습니다.

데이터를 숨기기에 가장 적합한 이미지 형식은 24비트 BMP(비트맵) 이미지입니다. 이미지의 화질과 해상도가 높을수록 데이터를 자연스럽게 숨기기가 더욱 용이합니다. 다만 24비트 이미지는 파일 크기가 크다는 점이 부담이 될 수 있습니다.

이러한 이유로 일부 사용자는 8비트 BMP나 GIF 같은 다른 이미지 형식을 선택하기도 하는데, 이는 고화질 대용량 이미지를 인터넷에 게시할 경우 오히려 의심을 살 수 있기 때문입니다.

LSB 삽입법의 동작 원리는 다음과 같습니다. 각 바이트의 최하위 비트, 즉 여덟 번째 비트를 비밀 메시지의 한 비트로 교체합니다. 24비트 이미지를 사용할 경우 빨강(R), 초록(G), 파랑(B) 색상 요소 각각에서 1비트씩 변경함으로써 픽셀당 최대 3비트까지 데이터를 저장할 수 있습니다.

2. 마스킹(Masking) 및 필터링(Filtering)

마스킹과 필터링은 종이 문서의 워터마크와 유사한 방식으로 이미지에 표시를 남겨 데이터를 숨기는 기법입니다. 흐린(faint) 이미지를 다른 이미지 위에 겹쳐 원본이 지각되지 않도록 만드는데, 이는 사람의 눈이 시각적 이미지 속 미세한 변화를 감지하지 못한다는 사실을 활용한 것입니다.

특히 마스킹 방식은 압축(condensation)과 이미지 잘라내기(cropping)에 대한 내성이 있어, LSB 삽입법보다 손실 압축 방식인 JPEG 이미지에 더 적합한 것으로 평가됩니다.

3. 알고리즘 및 변환 기법

JPEG 이미지는 고품질 사진을 제공하면서도 그 안에 정보를 숨길 수 있어 매우 인기가 높습니다. JPEG는 압축 과정에서 이산 코사인 변환(DCT, Discrete Cosine Transform)을 사용합니다.

DCT는 손실(lossy) 변환입니다. 코사인 값을 정확하게 계산할 수 없어 반올림 오류가 자주 발생하며, 오차의 정도는 사용된 방식과 값에 따라 달라집니다.

이 외에도 이미지는 푸리에 변환(Fourier transform)이나 웨이블릿 변환(wavelet transform)을 통해 처리할 수 있습니다. 또한 스펙트럼 확산(spread spectrum) 기술을 활용하면 좁은 대역폭의 신호를, 스펙트럼 밀도가 잡음처럼 보이도록 더 넓은 대역폭 위에 퍼뜨릴 수 있습니다.

대표적인 확산 스펙트럼 방식으로는 직접 시퀀스(direct-sequence) 방식과 주파수 도약(frequency-hopping) 방식이 있습니다. 직접 시퀀스 방식은 송신자와 수신자 양측이 모두 알고 있는 의사 난수(pseudorandom number) 시퀀스로 정보를 위상 변조(phase-modulating)하는 방식으로 작동합니다.

주파수 도약 방식은 대역폭을 여러 개의 채널로 나눈 뒤, 그 사이를 도약하며 신호를 전송하는 방식입니다. 그 밖에도 메시지를 미리 정해진 규칙에 따라 이미지 전체에 걸쳐 암호화하고 분산시키는 다양한 기법들이 존재합니다.

결론: 편리하지만 완벽하지 않은 기술

이러한 기법들을 사용하면 메시지가 노출되더라도 해당 알고리즘과 키가 없다면 아무런 의미 없는 데이터로 남을 것이라고 기대할 수 있습니다. 하지만 안타깝게도 위에서 소개한 어떤 알고리즘도 이미지 조작을 통한 정보 파괴로부터 완전히 자유롭지는 못합니다. 따라서 실제 환경에서는 기법의 특성과 한계를 충분히 이해한 상태에서 활용하는 것이 중요합니다.