관리 메뉴

심리이모저모

암호 공부하자 - 04 스태가노그래피 본문

IT 공부하자!/암호 공부하자!

암호 공부하자 - 04 스태가노그래피

교육심리학자 2018. 1. 10. 13:58
728x90

Key word: 암호, Cryptography, 스테가노그래피(steganography), 샆입, 오픈스테고(OpenStego)


이번에는 고전 암호에서 스테가노그래피(Steganography)에 대해 공부해봅시다. 


그리스어로 감추어져있다 라는 뜻인 stegano 와 'ㅆ다, 그리다'라는 뜻의 'graphos'의 합성어인 스테가노그래피는 '감추어쓰다'라는 의미를 가지고 있습니다. 


현대에는 사진, 동영상, 음악 등 일반적 파일 속에 데이터를 숨기는 기술을 뜻합니다. 메시지를 숨기는 것 외에도 악성코드나 바이러스 등을 숨기는 방법으로도 사용되고 있습니다. 


1. 최초의 스테가노그래피


최초로 사용된 스테가노그래피는 기원전 5세기라고 알려져있습니다. 


노예의 머리를 깍고 머리에 메시지를 문신으로 쓴 후 머리카락이 자란 후 노예를 보내 다시 머리를 깎아 메시지를 읽었다는 이야기는 암호학을 공부하면서, 또는 그리스의 여러 이야기들을 읽으면서 일핏 들어본 기억이 있으실 겁니다. 



이 방법은 고대 그리스의 왕 히스티에우스가 밀서를 보내는 방법으로 선택했던 것인데요. 앞서 설명한 것처럼 노예의 머리를 깎고 메시지를 문신시켜 머리카락이 자란 후 노예를 밀레투스로 보냈다고 기록합니다. 


또 다른 방법으로는 투명 잉크를 사용하는 방법이 있습니다. 아마 여러분이 초등학교, 중학교를 다니실 때 실험으로 또는 문방구에서 파는 투명잉크를 사용해보신 적이 있으실 텐데요. 




 [EBS 클립뱅크] 비밀편지 만들기

1. 소다수 + 페놀프탈레인 용액

2. 레몬즙으로 쓴 글씨 + 요오드(아이오딘)팅크

3. 레몬즙으로 쓴 글씨 + 불


과일 즙이나 우우, 소변 등 자연 원료를 이용해 편지를 쓰고, 불의 그슬리는 등의 화학반응으로 내용을 읽는 방법입니다. 


이 외에도 메시지를 비단에 써 전달자에게 삼키게 하는 등의 방법이 있습니다. 그리고 이런 방법들은 계속해서 꾸준히 발전해왔고, 현대에는 이를 디지털로 더 정교하게 감쪽같이 메시지를 숨기는 기술들이 등작했습니다. 


2. 암호 공부하자 : 이미지 스테가노그래피


이미지 스테가노그래피는 이름 그대로 이미지에 메시지를 숨기는 방법입니다. 엽서의 앞, 뒷면이 합쳐지고 그림만 보인다고 하면 이해가 쉬우려나요? 


이를 숨기는 방법은 크게 2가지, 삽입과 변조로 구분됩니다. 우리는 삽입에 대해 알아보고 실제로 스테가노그래피를 해 보도록 하겠습니다. 


3. 암호 공부하자 : 삽입


컴퓨터의 파일들이 0과 1로 이루어졌다는 것은 모두 알고 계실 것입니다. 

그 중에서 JPEG, PNG, GIF 등과 같은 이미지 파일에는 파일의 끝을 알리는 EOI(End of Image)가 존재합니다. 


즉 어떤 이미지 파일이던 간에 FF D(1111 1111 1101)로 끝난다는 말이죠. 




이 EOI 뒤의 데이터는 무시되기 때문에 이 부분에 데이터를 숨길 수 있게 되는 것입니다. 



이제 스테가노그래피를 직접 해보도록 할까요. 


먼저 스테가노그래피를 할 수 있는 도구인 오픈스테고(OpenStego)를 설치해 봅시다. 

(https://sourceforge.net/projects/openstego/)

설치는 [ I Agree ]와 [ Next ]만으로 쉽게 할 수 있습니다. 


설치가 완료되었다면!


[ 시작 -> OpenStego -> Run OpenStego ]를 통해 오픈스테고를 실행시킵니다. 



위에서부터 순서대로 

[숨길파일, 파일이 삽입 될 사진 파일, 스테가노그래피가 완료된 결과를 저장, 패스워드 ] 입니다. 


그렇다면 파일을 한 번 숨겨봅시다. 

여러분이 원하는 사진을 한 장 준비해 놓고 진행합니다. 

저는 이름이 똑같은 알쓸신잡의 로고를 사용하겠습니다. 




▽ 메모장에 숨기고 싶은 말을 쓰고 code로 저장합니다. 


▽ 다음과 같이 순서대로 메모장 파일, 사진 파일, 결과물 이름을 선택해줍니다.



Hide Data를 누르고 작업이 완료되면 Success라는 문구가 뜨게 됩니다. 


결과물은 눈으로 보기에는 차이가 없습니다. 


[원본]



그렇다면 복호화를 통해서 파일이 숨겨졌는지 확인해 볼까요. 

▽ 오픈스테고의 왼쪽에서 Extra Data를 선택해 줍니다.



위에서부터 순서대로


[ 스테가노그래피가 된 파일, 복호화 결과를 저장할 폴더, 비민번호 ]입니다. 


▽ 다음과 같이 순서대로 암호화한 파일, 복호화 결과를 저장할 폴더를 선택해 줍니다.



Extract Data를 누르고 작업이 완료되면 code 메모장 파일이 생긴 것을 확인할 수 있습니다. 



Comments