Cryptology = Cryptography + Cryptoanalysis (break cryptographic techniques)
Technical Steganography: ex. invisible ink,miniatureization.
Steganography의 가장 유명한 예는 RGB값 살짝 바꿔서 이미지 큰 변화 없지만 message 넣을 수 있게 하는 것이다.
알파벳을 오륵쪽 혹은 왼쪽 shift 하여 새로운 알파벳 순서쌍을 만든다.
문자의 형태는 그대로 유지되지만 transposition에 따라 문자 순서쌍이 달라진다.
고대 그리스에서 많이 쓰던 방법이다.
key를 찾을 때까지 가능한 모든 조합을 사용하여 key를 푼다.
cost expensive하며 시간이 많이 걸린다는 단점.
ex. 찾고자 하는 binary key의 길이가 n bit 이면 가능한 key의 조합은 개 이다.
컴퓨터는 1초에 1,000,000 key를 test할 수 있기 때문에 key를 풀기 위해선 seconds 가 필요하다.
치환 암호는 측정 글자를 다른 글자로 치환함으로서 암호를 생성하는 방법이다.
위의 예시에선 단일 치환 암호화 기법을 통해 plain text를 encryted text로 변환시켰다.
이때 암호화 된 암호문을 해독하는 가장 고전적인 방법 중 하나는 통계적인 분석을 통해 해독하는 것이다.
plain text에서 각 알파벳의 빈도수를 알아 낸 뒤, 이 알파벳의 빈도수와
영어 문학에서 나타나는 알파벳의 빈도수를 비교하여 암호문의 알파벳이 원래 어떤 알파벳이었는지 알아낼 수 있다.
일회성 패드는 절대적 보안 기능을 제공한다. 일회성 패드는 패드라는 임의 데이터 블록을 이용하는 암호 시스템이다.
plain text와 길이가 같은 일회성 패드를 만든다. 일회성 패드에 있는 임의 데이터는 확실히 무작위로 있어야한다. 또한 송신자와 수신자가 같은 패드를 가지고 있어야 한다.
메세지가 어떻게 보내지더라도, 메세지를 받는 사람은 패드가 없으면 복호화할 수 없기 때문에 암호에 어떤 의미가 담겨있는지, 평문을 절대 알 수 없다,