-
고전 암호DreamHack/암호학 2024. 2. 11. 20:06
고전 암호는 컴퓨터와 같은 고성능 연산 장치 이전에 사용했던 암호
고전 암호는 2개의 방법으로 설계되는데
1. 치환 ( A라는 문자를 B라는 다른 문자로 치환하는 방법)
1-1. 단일 문자 치환 암호 ( 단순하게 문자들이 서로 1대1로 대응되게 치환하는 방법)
ex) 카이사르 암호
사진으로는 2만큼 멀리 있는 문자로 치환하므로
A -> C
B -> D
C -> E
....
1-2. 다중 문자 치환 암호 ( 평서문의 A라는 문자가 B or C or D or ... 와 같이 여러 종류의 문자로 치환이 가능한 방법)
ex) 비제니르 표
사진을 보고 해당하는 키 값을 행에서 골라내어준다.
예를 들어 어떠한 평문을 암호화하려는데 키 값을 SKY로 사용한다면,
S 열, K 열, Y 열을 사용하기 위해 골라준다.
골라낸 이후에는 평문 열에 해당하는 문자로 치환하여서 바꾸어주면 된다.
2. 전치 ( ABCD라는 문자열을 BDAC 같이 문자들의 순서를 바꾸어 배치하는 방법)
DREAM HACK 이라는 평서문을 암호화 하는데에는
블록의 길이와 그 길이에 맞는 키 값이 주어져야한다.
사진은 블록의 크기를 3으로 맞추고, 그 크기에 맞는 키를 (3,1,2)로 설정하였다.
DREAM HACK 이라는 문자열을 각각 3개 문자 = 1 블록으로 나누어주고,
1개의 블록을 3,1,2 번째 문자로 전치하여 암호화하게 된다.
이 암호화 과정을 파훼하는 방법은 2가지가 있다.
1. 전수 키 탐색 공격
해커가 평문과 암호문을 안다고 하면, 다른 평문과 암호문을 모두 알아내는데 있어서 필요한건 키 값이다.
일단 전수 키 탐색 공격은 평문과 암호문을 안다는 전제 하에 가능하다.
정말 단순하게 키 값이 가능한 키 공간을 모두 대입하여 실행하는 방법이다.
카이사르 암호 같은 경우는 A-Z까지 26개의 문자로 이루어져있는데,
가능 키 공간은 26가지 경우 수 밖에 없으므로,
전수 키 탐색 공격에 취약하다고 볼 수 있다.
2. 빈도수 분석
알파벳으로 문장을 이룰 때 많이 사용하는 문자들의 빈도를 나타낸 그래프이다.
e, t, a.... 순으로 사용을 많이하므로,
암호문을 해커가 습득하였다면,
가장 많이 존재하는 문자를 e, t, a... 순으로 대입하여 문자열을 맞춰나아가는 방식이다.
하지만 이는 다중 치환 암호 방식을 통해 암호화한다면, 공격이 유효할 가능성이 적다.