2024. 3. 7. 20:10ㆍ보안/크립토
고전 암호 - 컴퓨터와 같은 고성능 연산 장치가 발명되기 전, 간단한 기계, 손 등으로 암복호화를 수행하던 암호
치환(Substitution) - 평문의 문자를 다른 문자로 바꾸는 것
전치(Transposition) - 평문 문자들의 위치를 바꾸는 것
단순한 고전암호는 하나만, 복잡한 고전암호는 두가지 방법 모두 사용
단일 문자 치환 암호(Monoalphapetic Substitution Cipher)
평문의 각 문자를 약속된 다른 문자로 치환하는 암호
복호화를 위해 치환의 대응관계는 일대일 대응이다. A -> B 로 치환되면, 다른 어떤 문자도 B로 치환되지 않는다.
카이사르 암호
기원전 44년 줄리어스 카이사르가 사용. 단일 문자 치환 암호의 대표적인 예시
-> 평문의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 치환. 알파벳을 밀어낸 횟수만 알면 해독 가능
가능한 모든 키의 집합을 키 공간(Key Space)이라고 하는데, 알파벳은 26자니까 카이사르 암호에서 키 공간의 크기는 26
춤추는 인형 암호
모든 알파벳을 서로 다른 기호와 무작위로 일대일 대응시켜 치환 -> 키 공간의 크기는 26!
코드북 암호
책을 정하고 페이지 x와 단어의 인덱스 y를 보내면 수신자는 이를 이용하여 해독
21537, 21529, 21406, 21402라는 암호문을 보내면, 215페이지의 37번째 단어, 215 페이지의 29번째 단어 . 이런식으로 찾아 해석 -> come to yellow roads
다중 문자 치환 암호(Polyalphabetic Substitution Cipher)
평문의 한 문자가 암호문에서 여러 종류의 문자로 치환될 수 있다.
비제네르 암호(Vigenere Cipher)
SKY -> DREAMHACK으로 암호화하려면 S K Y행을 고르고, 각 행에서 평문의 문자에 대응되는 문자로 평문을 치환
S | K | Y | S | K | Y | S | K | Y |
D | R | E | A | M | H | A | C | K |
V | B | C | S | W | F | S | M | I |
전치 암호(Transposition Cipher)
평문을 구성하는 문자들의 순서를 재배열하여 암호문을 만든다.
블록의 길이가 3이고, 키가 (3,1,2)일 때, 암호화는 위의 그림처럼 진행된다.
->ex)스키테일 암호(Scytale Cipher)
고전 암호 공격
전수 키 탐색 공격(Exhaustive Key Search Attack)
평문과 암호문을 알 때, 키 공간을 전부 탐색하여 주어진 암호문과 같은 암호문을 생성하는 키를 찾는 방법
키 공간의 크기가 작다면 빠르게 찾을 수 있다. -> 다 해보기 !
빈도수 공격(Frequency Analysis)
단일 치환 암호는 평문과 암호문이 일대일 대응을 유지하기 대문에, 평문의 통계적 특성을 알면 유추해낼 수 있다.
퀴즈
Q1. 다중 치환 암호는 단일 치환 암호보다 전사적 공격으로 암호문을 복호화하기 (쉽다/어렵다).
-> 어렵다
Q2. 빈도수 분석은 단일 치환 암호를 대상으로 (유효한/불가능한) 공격 기법이다.
-> 유효한
'보안 > 크립토' 카테고리의 다른 글
[Dreamhack] 현대 암호 정리 (2) | 2024.03.07 |
---|---|
[Dreamhack] Crpyptography Introduction 정리 (1) | 2024.03.07 |