이번 시간에는 고전암호에서 다루는 카이사르 암호법과 비즈네르 암호법에 대해 알아보자
먼저 고전 암호는 보안성이 낮아 쉽게 해독되기 때문에 현재는 사용되지 않습니다
하지만 암호학의 역사를 알면 암호학을 더 잘 이해할 수 있기 때문에 고전암호부터 차근차근 배워봅시다
Caesar 암호
로마의 황제 카이사르가 사용한 암호법이다
"시저 암호" 또는 "카이사르 암호"라고 부르는데 대부분 시저 암호라고 많이 부른다
카이사르 암호법은 엄청 간단하다
글자를 알파벳 상에서 앞/뒤로 n글자씩 밀어서 암호화를 하고 반대로 밀어서 복화할 수 있다
예를 들어 "I like you" 문자를 카이사르 암호로 암호화하면 "F ifhb vlr"(3글자씩 뒤로 밀어서 암호화)가 된다
그렇기 때문에 암호화된 문자를 가지고 앞/뒤로 n번씩 밀어서 원본 문자를 쉽게 찾을 수 있다
"F ifhb vlr"라는 암호문에서 원본 문자를 찾으려면 다음과 같은 방법으로 접근할 수 있다
- 이거 Caesar 암호가 아닌가? (우선 시도)
- 해당 암호문을 n글자씩 밀어냈을 때 n이 맞으면 원래 평문이 나오겠다
- 가능한 모든 n을 다 시도해보자
Caesar Cipher (Shift) - Online Decoder, Encoder, Solver, Translator
Tool to decrypt/encrypt with Caesar cipher (or Caesar code), a shift cipher, one of the most easy and most famous encryption systems, that uses the substitution of a letter by another one further in the alphabet.
www.dcode.fr
실제로 이걸 자동으로 풀어주는 사이트도 있다
과거에 Bandit Level 11 → Level 12 문제에서 ROT13 암호문을 활용해 해결하는 문제가 있었다
ROT13은 단순 카이사르 암호문에 일종으로 주요 차이점은 다음과 같다
특징 | 카이사르 암호 | ROT13 |
이동 거리 설정 | 사용자가 설정 가능 | 고정(13칸 이동) |
복잡성 | 다양하게 변경 가능 | 단순,고정 |
사용 목적 | 고대 암호화 | 텍스트 난독화 |
결국에 카이사르 암호는 n글자의 가능한 모든 경우를 브루트포스를 이용해서 찾아낼 수 있다
즉 취약한 암호이기 때문에 암호문만 보고 평문을 맞출 수 있는 깨진 암호다
Vigenere 암호
비즈네르 암호는 프랑스의 블레즈 드 비즈네르에 의하여 1586년에 발표된 암호지만 이 암호화 모델을 처음으로 언급한 사람은 지오반 바티스타벨라소(Giovan Battista Bellaso)이다
당시에는 "해독 불가능한 암호"라고 불렸지만 지금은 쉽게 풀린다
비즈네르 암호 방법은 카이사르 암호 방법과 유사합니다
카이사르 암호 방식에 키 값(n)이 3이면 'abc' 평문에서 a,b,c 전부 3칸을 옮겨서 치환해야 하지만,
비즈네르 암호는 키 값이 단일값이 아니라 "abc" 이런 식으로 문자열 형식을 취한다는 차이가 있습니다
"APPLE" 평문을 "ABC"으로 비즈네르 암호화를 진행하면 다음과 같이 암호문이 완성됩니다(AQRLF)
평문 | 암호문 |
A | 0칸 이동(A) = A |
P | 1칸 이동(B) = Q |
P | 2칸 이동(C) = R |
L | 0칸 이동(A) = L |
E | 1칸 이동(B) = F |
여기서 키 값 'ABC'는 0123 순서로 매핑됩니다
그래서 위에 값이 평문 길이만큼 012 순서로 반복됩니다
하지만 'APPLE' 평문에서 두 번째와 세 번재 P의 암호화 결과가 서로 다른 걸 알 수 있습니다
이렇게 하나의 문자가 여러 개의 문자로 변경될 수 있는 방식의 암호화를 다중문자 암호(Polyalphabetic Cipher)라고 합니다
비즈네르 암호 방식은 위 사진처럼 비즈네르 표를 이용하면 쉽게 암호문을 작성할 수 있다
위에 표를 이용해서 APPLE를 ABC로 암호를 진행하면 다음과 같다
- APPLE (평문)
- ABC (암호키를 평문 길이 만큼 반복)
- AQRLF (암호문)
A와 A가 만나는 점이 A
P와 B가 만나는 점이 Q
P와 C가 만나는 점이 R
L과 A가 만나는 점이 L
E와 B가 만나는 점이 F
AQRLF로 암호문이 생성됩니다
확실히 카이사르 암호 방식보다는 안전하지만 비즈네르 암호도 쉽게 깨진다
비즈네르 암호를 깨려면 암호키의 길이와 암호키의 내용을 맞춰야 한다
보통 여기서부터는 통계적인 방법을 많이 씁니다
- 무슨 문자가 어떤 주기로 나오는지를 바탕으로 암호키의 길이를 유추한다
- 문자의 빈도를 분석하여 암호키의 내용을 유추한다
다음 비즈네르 암호로 암호화된 문장을 복호해보자
Fo qp wgrt, lr arstrmrn aeestcfk wdfpp twtrw twlx yy gzwq ldzoqd yfwf lxvi koj, elq rddi fhpe fqldyke td xi. Nui tr tegdixf pwsze hsi us bzvq ibasdtpyx fhpy xte wfrprtow af nzy atwpv dohpw
My Geocaching Profile.com - Vigenere Cipher Codebreaker
www.mygeocachingprofile.com
사이트를 통해서 쉽게 키 값과 평문값을 구할 수 있다
Modular conversion, encoding and encryption online
Web app offering modular conversion, encoding and encryption online. Translations are done in the browser without any server interaction. This is an Open Source project, code licensed MIT.
cryptii.com
반대로 평문을 이용해서 비즈네르 암호로 암호화시킬 수 있다
여기까지 카이사르(Caesar)암호와 비즈네르(Vigenere)암호 방식에 대해 살펴봤고, 전부 깨진 암호인 걸 배웠다
그러면 안 깨지는 암호는 어떤게 있는지 다음 시간에 배워보자
[ 참고 자료 ]
카이사르 암호 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 카이사르 암호는 각각의 알파벳을 일정한 거리만큼 밀어 글자를 치환하는 방식으로 암호화한다. 위 예제에서는 3글자씩 밀어서 암호화하기 때문에 B는 E로 치
ko.wikipedia.org
[암호학] 비즈네르 암호법, 비제네르(Vigenere) 고전 암호화 방식과 카사스키 해독
안녕하세요~! 예전에~~~~~~ 거의 암호 시초인, 카이사르 암호에 대해서 알아봤던적이 있는데요. 오늘은 비즈네르 암호에 대해 작성해보려고 합니다. ▼카이사르 암호 포스팅이 궁금하신 분은 아
jhnyang.tistory.com
비즈네르 암호 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 비즈네르 암호(프랑스어: Vigenère 暗號)는 프랑스 외교관이었던 블레즈 드 비즈네르에 의하여 1586년에 발표된 암호이다. 외교관이었던 비즈네르는 26세 되던 해
ko.wikipedia.org