그림이나 메세지를 오디오 주파수에 숨기는법 | 오디오 스테가노그래피

스테가노그래피(Steganography)는 정보를 숨기기 위한 기술로, 이미지 스테가노그래피나 텍스트 스테가노그래피와 같은 다양한 방법이 존재합니다. 그중에서 오늘은 오디오 스테가노그래피에 대해 소개하겠습니다.

지난번에는 텍스트 스테가노그래피에 대해서 소개한 적이 있습니다. 관심이 있으시다면 이전 글을 참고해주세요.

오디오 스테가노그래피는 오디오 파일에 메시지를 숨기는 방법입니다. 일반적으로 오디오 스테가노그래피는 인간의 귀에는 감지되지 않을 정도로 소리의 특성을 약간 변형하여 메시지를 숨깁니다. 숨겨진 메시지는 오디오 파일의 소리와 함께 존재하지만, 주변의 듣는 이들은 메시지의 존재를 인식하기 어렵습니다.

 

먼저 음성변환에  필요한 파일들을 준비해 줍니다.

 

 

오디오에 메시지를 숨기는 방법

사운드 디자인 프로그램을 이용하여 이미지를 소리로 변환하는 방법을 사용합니다. 이 방식은 이미지의 픽셀 정보를 음파로 해석하여 소리를 생성하는 과정입니다.

프로그램을 통해 이미지 파일을 불러오거나 직접 그린 후, 이미지의 픽셀 정보를 해석하여 소리를 생성합니다. 이미지의 픽셀은 소리의 주파수, 음높이, 음색 등과 관련되며, 각 픽셀 값에 따라 소리의 특성이 결정됩니다.

이렇게 변환된 소리를 활용하여 기존의 정상적인 음악과 합쳐, 음악 파일에 주파수 영역을 이용하여 메세지를 숨길 수 있습니다. 이번 글에서는 이미지를 통한 생성 방법과 직접 그리는 방법 두 가지를 모두 시도해 보았습니다.

 

스테가노그래피 오디오, 이미지로 생성하기

포토샵에서 적정한 900x300 사이즈의 캔버스를 생성합니다. 배경을 검은색으로 설정하여 스펙트로그램에서 파장을 확인할 수 있도록 합니다. 내용을 작성하고 이미지를 저장할 때는 bmp형식으로 저장합니다.

 

 

스펙트로그램을 생성하기 위해 sound spectrogram 프로그램을 사용하여 해당 이미지를 불러옵니다.

 

 

상단 메뉴에는 두 가지 렌더링 옵션이 있습니다. 좌측 옵션은 이미지를 음성으로 렌더링 해주고, 우측 옵션은 필터를 추가하여 변환해 줍니다. 메시지를 더 깔끔하게 보존하고 스펙트로그램에서도 편리하게 확인하기 위해서는 두 번째 옵션을 선택하는 것을 권하지만 상황에 따라 다르니 둘 다 렌더링 한 뒤 직접 확인해 보세요.

 

 

해당 렌더링 옵션은 프로그램 상단 Sound 탭에서도 확인할 수 있습니다.

 

 

spek에서 방금 출력한 오디오 파일을 불러와서 스펙트로그램으로 확인하면 숨겨진 메시지가 나타나는 것을 확인할 수 있습니다.

 

 

음성 편집 프로그램에 정상적인 음악 파일과 비밀 메시지가 담긴 오디오 파일을 불러옵니다.

기본적으로 화면에 표시되는건 주파수영역입니다. 비밀 메세지를 확인하기 위해서는 스펙트로그램으로 변경해줘야합니다.

 

 

음소거, 효과 등이 적용된 오디오 트랙에서 마우스 오른쪽 버튼을 클릭한 후, 파형에서 스펙트로그램으로 체크해 주면 이전에 작성한 메시지를 확인할 수 있습니다.

 

 

이제 정상적인 음악에서 암호화된 메시지와 함께 트랙에 저장합니다. 오디오의 길이가 너무 길다면 드래그하여 Delete 버튼을 사용하여 줄일 수 있습니다.

 

이제 내보내기를 통해 MP3 파일로 저장합니다.

 

samp.mp3
0.17MB

저장된 오디오 파일입니다. 한번 더 불러와서 스펙트로그램으로 확인해 보겠습니다.

 

 

정상적인 음악 파일 안에 제가 남긴 메시지가 숨겨져 있는 것을 확인할 수 있습니다.

 

 

스테가노그래피 오디오, 직접 그려서 생성하기

컬러 노트를 그릴 수 있는 프로그램에서 "File" - "New Image"를 클릭하여 새로운 이미지를 생성합니다.

 

 

피치의 값을 세밀하게 조절할 수 있으며, 가장 중요한 것은 이미지의 크기입니다. 적당한 크기로 이미지를 생성해야 합니다. 높이의 경우에는 너무 크지 않도록 설정하는 것이 중요합니다. 저는 가로(W) 800, 세로(H) 300의 설정 값을 사용하였습니다.

 

 

숨길 메시지로 제 블로그의 이름을 브러시로 써보았습니다.

상단 메뉴의 오디오 렌더링 버튼을 클릭합니다. 이번에는 첫 번째 옵션으로 렌더링 하겠습니다. 오디오가 자동으로 재생되면서 소리를 들어볼 수 있습니다.

 

 

이제 상단의 "File" - "Save Sound As..." 버튼을 클릭하여 오디오 파일을 저장해 줍니다.

 

 

다음으로 음성 편집 프로그램을 실행시켜 방금 다운로드한 파일을 불러옵니다.

일반적인 주파수 파형으로는 어떤 암호가 숨겨져 있는지 확인할 수 없습니다.

 

 

기존의 파형 뷰에서 오디오 트랙을 마우스 우클릭한 후, "스펙트로그램"으로 변경해 주세요.

 

그러면 숨기려고 했던 메시지가 나타납니다. 음악 파일의 스펙트로그램을 확인하기 위해서는 첨부된 spek 파일을 사용하여 확인할 수도 있습니다.

 

 

오디오 스테가노그래피의 핵심은 숨겨진 메시지를 자연스럽게 보이지 않게 하여 의심을 피하는 것입니다. 숨겨진 오디오만을 들었을 때는 이상한 소리만 들리기 때문에, 보다 자연스러운 효과를 위해 멀쩡한 다른 오디오와 결합하여 새로운 오디오 파일을 생성합니다. 이렇게 함으로써 숨겨진 메시지를 감추고 의심을 피할 수 있습니다.

 

 

오디오 편집 프로그램에서 정상적인 음악 하나를 가져왔습니다.

 

 

오디오가 너무 길어서 드래그하여 필요 없는 부분을 삭제해 주고, 암호가 담긴 노래의 제목 부분을 클릭하여 정상적인 오디오의 중간 부분으로 옮겨주었습니다.

 

 

상단에 플레이버튼을 누르면 렌더링 된 음성을 미리 들어보실 수 있습니다.

 

 

파일 메뉴에서 "내보내기"를 선택한 후, "MP3로 내보내기"를 클릭하여 오디오를 합성하고 저장할 수 있습니다.

 

합성된 오디오 파일을 불러와서 스펙트로그램으로 확인해 보면, 아까 작성한 메시지가 주파수 내에서 확인할 수 있습니다.

C648ccccoagula06.mp3
0.18MB

위에는 합성된 오디오의 파일입니다.

조금 더 자연스럽게 합성하기 위해서는 각 글자의 간격을 띄워놓거나 주파수 영역을 조절할 수 있습니다.

 

 

숨겨진 메세지를 시각적으로 확인할 수 있는 이유

일반적인 주파수 영역에서는 숨겨진 메세지의 존재를 확인하기 어려운데, 스펙트로그램 그래프를 통해 확인하면 숨겨진 메세지를 확인할 수 있습니다. 이는 오디오 주파수가 사람이 직접 시각화하여 볼 수 없는 형태의 데이터이기 때문입니다. 그러나 스펙트로그램은 주파수를 시각적으로 표현하는 그래프로서, 주파수에 따른 진폭을 시각화하여 보여줍니다. 이를 통해 숨겨진 메세지의 주파수 성분을 그래프에서 확인할 수 있습니다. 따라서 스펙트로그램을 통해 숨겨진 메세지를 시각적으로 확인할 수 있습니다. 스펙트로그램은 주파수 영역에서의 변화를 그래프로 시각화하기 때문에, 메세지가 주파수에 숨겨져 있을 경우 스펙트로그램 그래프에서 확인할 수 있는 장점이 있습니다.

 

 

보안적인 측면에서

적절한 오디오 선택과 주파수 영역대를 선택하면 사람의 귀로는 듣기 힘든 수준의 주파수영역에 메시지를 숨길수도 있습니다.  보안적인 측면에서는 암호화가 아니기 때문에 보안에 좋지는 않지만 일단 암호파일인지 눈치를 채기 어렵다는 사실자체로 복호화가 가능한 사람이라도 암호화된 파일이라고 알려지지만 않는다면 확인하기 어렵습니다. 추가적으로 보안을 높이기 위해선 숨기고자 하는 내용을 암호화하거나 잡일을 추가하여 구분하기 어렵게 만드는 방법들이 있습니다.

 

 

 

 

Top