화이트 해커 영진

암호화와 스테가노그래피 이론 본문

해킹 공부

암호화와 스테가노그래피 이론

화이트 해커 영진 2024. 2. 24. 20:59

현대 사이버 보안에서의 보안 목표는 크게 다음과 같이 3가지로 나뉠 수 있다.

(1) 정보의 기밀성, (2) 정보의 무결성, (3) 정보의 가용성 

 

이 3가지의 보안 목표들은 공격에 의해서 위협받을 수 있으며, 시스템의 손상 유무에 따라 소극적 공격(Passive Attack),적극적 공격(Active Attack)으로 분류되기도 한다. 보통은 기밀성을 위협하는 공격이 소극적 공격으로 분류되며, 무결성이나 가용성을 위협하는 공격들이 적극적 공격으로 분류된다.

EX) 소극적&적극적 공격의 종류.

소극적 공격=스누핑(Snooping),트래픽 분석(Traffic Analysis)

적극적 공격=변경(Modification),가장(Masquerading),재전송(Replaying),부인(Repudiation),서비스 거부(Denial of service)

 

오늘날의 암호학에서는, 이러한 공격으로부터 데이터를 안전하게 전송하기 위해 2가지 방법을 권장한다.

첫 번째는 암호화이며, 두 번째로는 스테가노그래피 기술이다.

암호 및 암호화가 뭔지는 잘 알고 있을 수도 있지만, IT 분야를 공부하지 않은 일반인 입장에서는 스테가노그래피가 생소할 것 이다. 이번 게시글에서는 암호화와 스테가노그래피에 대하여 자세히 알아보고자 한다.

 

암호화

암호화는 ITU-T(X.800)에서 보안 서비스를 제공하기 위한 보안 메커니즘으로 정의되어 있다.

암호화란,데이터를 숨기거나 보호함으로서 정보의 기밀성을 제공할 수 있게 만드는 방법이다. 암호화를 하는 방법에는 두 가지 기술이 사용되는데, 바로 '암호'와 '스테가노그래피'이다.

 

 

암호화와 스테가노그래피의 종속관계

 

1. 암호

과거에는 암호가 단지 비밀 키를 이용하여 메시지의 암호화(Encryption)와 복호화(Decryption)를 하는 것으로만 간주되었다. 하지만 오늘날의 암호는 세 개의 별개의 메커니즘, (1)대칭-키 암호화, (2)비대칭-키 암호화, (3)해싱으로 정의된다.

 

(1) 대칭-키 암호화 (비밀 키 암호화)

암호화와 복호화에 하나의 비밀 키(Secret Key)를 사용하는 방식이다.

데이터의 송신자는 암호 알고리즘을 사용하여 메시지를 암호화하고, 수신자는 복호 알고리즘을 사용하여 복호화 한다고 가정했을 때, 데이터의 송신자와 데이터의 수신자가 하나의 비밀 키(Secret Key)를 사용하는 방식이다.

 

(2) 비대칭-키 암호화 (공개 키 암호화)

 (1)과 같이 가정했을때, 하나의 키 대신 두 개의 키 쌍인 공개 키(Public Key)와 개인 키(Private Key)를 사용한다.

데이터의 송신자는 수신자의 공개 키로 메시지를 암호화하고, 데이터의 수신자는 원래의 메시지를 복호화하기 위해 본인의 개인키를 사용하는 방식이다.

우리가 흔히 사용하는 디지털 서명이 바로 비대칭-키 암호화의 한 예시이다.

 

(3) 해싱

해시함수(Hash Function)를 이용하여 해시 테이블(Hash Table)에 데이터를 저장하는 방법이다.

해시함수 알고리즘이란, 긴 길이의 데이터를 짧은 길이의 데이터로 변환하는 알고리즘으로서, 원래 데이터를 복구할 수 없게 만드는 것이 목적이다. 해시 함수의 종류로는 여러 가지가 있는데, MD5,SHA,CRC,Tiger,Argon2,Bcrypt,Scrypt,Snefru 등이 있다. 수 많은 정보를 한 묶음으로 만들어 버리는 기술인 '블록체인'에서는, 해시함수의 암호화 역할이 필수로 여겨진다.

 

2. 스테가노그래피

스테가노그래피(Steganography)는 그리스어로 "감추어져있다"의 "stegano"와 '쓰다'라는 뜻의 "graphos"의 합성어이다.

스테가노그래피는 "비밀 기록"을 의미하는 암호와는 대조적으로 "감춰진 기록"을 의미한다.

데이터를 우리가 흔히 사용하는 일반적인 파일 안에 숨기는 기술로, 해당 파일에는 텍스트,사진,음악,동영상과 같은 파일들이 해당된다. 현대의 스테가노그래피 사용하는 방법들을 간단한 예시를 들어 설명해보자 한다.

 

*다음 예시들은 기본 원리에 대한 이해를 돕기 위한 간단한 예시들이며, 오늘날에는 더 세련된 접근 방법이 사용됩니다.

 

(1) 텍스트에 2진 데이터 숨기기

비밀 데이터의 밀폐물이 텍스트인 텍스트 커버 방식이다.

예를 들어, 2진 데이터를 텍스트의 띄어쓰기를 사용하여 숨겨보자.

띄어쓰기 한 칸은 0을 표현, 두 칸은 1을 표현한다고 가정하자.

I am  a whitehacker  youngjin. => 숨은 데이터=4비트의 0101

 

(2) 이미지 커버

비밀 데이터의 밀폐물이 컬러 이미지인 이미지 커버 방식이다.

디지털 이미지는 보통 각각 24비트(3바이트)를 사용하는 픽셀로 구성되고, 각각의 바이트는 삼원색인 빨강,노랑,파랑을 표현한다. 이 점을 이용하여 LSB(최하위 비트)를 유지하거나 변화시킴으로서 이미지에 2진 데이터등을 숨길 수 있다.

최근들어 강력한 그래픽 처리를 지원해주는 소프트웨어의 발달로 인해, 이미지 커버를 이용한 스테가노그래피 기술이 최근 몇 년간 가장 빠르게 발달하였다.

 

(3) 오디오&비디오 커버

오늘날 오디오와 비디오는 전송시에 압축되는 점을 이용하여, 압축 전이나 압축하는 과정에서 비밀 데이터를 삽입하는 방식이다.데이터를 여러 프레임으로 구성된 비디오 파일에 숨기는 방식으로,당연히도 이미지 커버 방식의 스테가노그래피보다 검출이 더 어렵다는 특징이 있다.

 

 

글을 마치며..

오늘은 암호화와 스테가노그래피에 대하여 알아보았다.

특히 컴퓨터와 소프트웨어의 발달로 인해,스테가노그래피에 대해선 현재도 많은 연구와 논문들이 나오고 있으며, 학생 및 연구원이라면 프로젝트 주제로 정하여 공부 및 연구해보는 것도 좋다고 생각한다.