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

정보 보안의 이미지 스테가노그래피란? 픽셀부터 압축 방식까지 핵심 원리 총정리

이미지 스테가노그래피란?

스테가노그래피(정보 은닉 기법)에서 가장 널리 사용되는 커버 객체(위장 매체)는 바로 이미지입니다. 이미지 스테가노그래피는 픽셀의 밝기 값(intensity)을 활용해 정보를 숨기는 기술로, 디지털 이미지 분야에는 다양한 파일 형식이 존재하며 각 형식은 특정 용도에 맞게 설계되어 있습니다.

이미지와 픽셀의 이해

이미지는 본질적으로 숫자의 집합입니다. 이미지 내 서로 다른 위치에 있는 빛의 세기를 수치로 표현한 것이며, 이러한 수치 표현이 격자(grid) 형태를 이루고 격자의 개별 지점을 '픽셀(pixel)'이라고 부릅니다.

인터넷상의 대부분 이미지는 사각형 형태의 픽셀 지도로 구성됩니다. 각 픽셀의 위치와 색상이 비트(bit) 단위로 정의되어 있으며, 픽셀들은 가로 방향으로 한 줄씩 차례대로 배치되어 화면에 표시됩니다.

비트 심도(Bit Depth)란?

색상 구성에서 사용되는 비트 수를 '비트 심도(bit depth)'라고 합니다. 비트 심도는 하나의 픽셀을 표현하는 데 몇 비트를 사용하는지를 정의합니다. 현대 색상 체계에서 가장 작은 비트 심도는 8비트로, 각 픽셀의 색상을 정의하는 데 8비트가 사용된다는 의미입니다.

흑백 이미지와 컬러 이미지

단색(monochrome) 및 그레이스케일(greyscale) 이미지는 픽셀당 8비트가 필요하며, 최대 256가지의 색상 또는 회색 음영을 표현할 수 있습니다.

디지털 컬러 이미지는 일반적으로 24비트 파일로 저장되며, '트루 컬러(true colour)'라고도 불리는 RGB 색상 모델을 필요로 합니다.

RGB 색상 모델과 1,600만 가지 색상

24비트 이미지의 픽셀 색상 변화는 빨강(Red), 초록(Green), 파랑(Blue)이라는 세 가지 기본색으로 표현되며, 각 기본색은 8비트로 정의됩니다.

따라서 하나의 픽셀에서 빨강, 초록, 파랑 각각 256가지 조합이 가능하며, 이를 모두 합치면 1,600만 가지가 넘는 색상 집합이 만들어집니다. 결과적으로 1,600만 가지 이상의 색상을 표현할 수 있는 것입니다.

파일 크기 문제와 압축의 필요성

더 큰 크기와 높은 비트 심도를 가진 이미지를 다룰 때는 파일이 너무 커져 일반적인 웹 연결 환경에서 전송하기 어려워지는 경우가 많습니다. 이미지를 적절한 시간 안에 표시하려면 파일 크기를 줄이는 기술을 도입해야 합니다.

이러한 기술은 수학적 공식을 활용해 이미지 데이터를 평가하고 압축하여 더 작은 파일 크기를 만들어냅니다. 이 과정을 '압축(compression)'이라고 합니다.

손실 압축과 무손실 압축

이미지 압축에는 손실(lossy) 압축과 무손실(lossless) 압축 두 가지 방식이 있습니다. 두 방식 모두 저장 공간을 절약하지만, 작동 방식에는 차이가 있습니다.

손실(Lossy) 압축

손실 압축은 원본 이미지에서 불필요한 데이터를 버려 더 작은 파일을 만듭니다. 사람의 눈이 인식하기 어려운 세부 정보까지 제거할 수 있어, 결과물은 원본과 거의 유사하지만 완전히 동일하지는 않습니다.

무손실(Lossless) 압축

무손실 압축은 원본 이미지에서 어떠한 데이터도 제거하지 않고, 대신 데이터를 수학적 공식으로 표현합니다. 원본 이미지의 무결성이 유지되며, 압축 해제 후 출력되는 이미지는 원본 입력 이미지와 비트 단위까지 완전히 동일합니다.

압축 방식이 스테가노그래피에 미치는 영향

압축은 어떤 스테가노그래피 알고리즘을 선택할지 결정하는 데 중요한 역할을 합니다. 손실 압축 기술은 더 작은 이미지 파일 크기를 만들어주지만, 불필요한 이미지 데이터가 제거되면서 삽입된 메시지의 일부가 손실될 가능성을 높입니다.

반면 무손실 압축은 데이터 손실 위험 없이 원본 디지털 이미지를 그대로 유지하지만, 이미지 파일 크기를 손실 압축만큼 작게 만들지는 못한다는 한계가 있습니다.