1. 시저암호 (시프트 암호) 2. 아핀 암호 3. 단일 치환 암호 4. 다중 치환 암호 5. 전치 암호 6. 에니그마 7. 암호 알고리즘 안전성 원칙 |
1. 시저 암호 (Caesar Cipher)
평문 및 암호문 공간
ㄴ알파벳으로 구성
시프트 암호 (Shift Cipher)
ㄴ알고리즘 - 평문 알파벳 별로 일정한 문자 수 만큼 평행이동
ㄴ키 - 평행이동 거리
시프트 암호 해독
- 키 개수가 총 26개로 매우 작아 취약하다
- 복호화 연산량과 암호화 연산량이 동일하여 취약하다
=> 전사공격 (brute- force attack)
전수 조사/탐색 (exhaustive search)
0~25까지 각각 키에 대해 복호화 수행 -> 의미가 있는 평문으로 해독되는 경우 키 발견
2. 아핀 암호 (Affine Cipher)
: 시저암호를 일반화 한것
알파벳을 숫자로 생각하고 알파벳 위에서 연산한다.
암호화 키
- 26과 서로소인 숫자 α
- 평행이동 거리 숫자 β
암호화 알고리즘
메시지 X를 아래와 같이 치환한 x를 계산
복호화 알고리즘
3. 단일 치환 암호 (Monoalphabetic Substitution Cipher)
-시저 암호의 특징
각 알파벳을 다른 알파벳으로 치환한다
암호화 키 = 알파벳 집합 간 일대일 대응 함수
(일대일 함수 중에서도 평행이동 함수로 한정하기 때문에 가능한 일대일 대응이 26개 밖에 없음)
-단일 치환 암호
암호화 키로 가능한 모든 일대일 대응을 고려한다
키의 개수 = 26! (약 2^95개)
취약점
빈도분석을 통해 부가 정보를 얻어 해독할 수 있다.
영어에서 자주 등장하는 단어를 활용하여 추측하는게 가능하다.
4. 다중 치환 암호 (Polyalphabetic Substitution Cipher)
단일 치환 암호의 약점
같은 문자는 항상 같은 문자로 변환된다
-> 같은 문자가 다른 문자로도 암호화되는 성질이 필요하다.
ex) 비즈네르 암호, 힐 암호, 에니그마 ..
비즈네르 암호 (Vegenere Cipher)
-암호화 키
블록 크기 m (모든 자연수가 가능)
26^m 가지 키가 존재
힐 암호 (Hill Cipher)
알파벳을 숫자로 생각하기
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
a | b | c | d | e | f | g | h | i | j | k | l | m |
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
n | o | p | q | r | s | t | u | v | w | x | y | z |
비즈네르 암호에서 일대일 대응을 행렬 M 곱하기로 바꾼 것이다.
-암호화 키
파라미터 m
m x m 행렬 M
(단, 26으로 나누어 나머지를 취하는 연산에 대해 역행렬이 존재해야한다.)
5. 전치 암호
-암호화 방식
평문의 알파벳 순서를 재배치하는 방식으로 암호화
(카드를 막 섞는 것처럼 생각하면 된다.)
-키 공간 크기
m!
전치암호는 단일 치환 암호 문제를 그대로 다 가진다.
6. 에니그마
슈르비우스가 1918년에 고한 전용 장비를 사용한 최초의 암호 시스템이다
서브루틴으로 여러 종류의 단일 치환 암호를 혼합 사용한 다중치환 암호를 사용한다
2차 세계대전 당시 독일군이 사용하였다.
https://www.youtube.com/watch?v=ybkkiGtJmkM
위 영상에 에니그마가 어떻게 동작하는지에 대해 설명과 애니메이션으로 자세히 나와잇다.
에니그마 암호화 프로토콜
날짜별 키 (long-term key) |
날짜별 선택 회전자 |
날짜별 회전자 결합 순서 |
날짜별 각 회전자 시작점 |
Enigma 장비를 제공하는 시점에 날짜 별 설정이 기록된 코드북을 사전 공유 |
통신 키 (short-term key) |
날짜별 선택 회전자 |
날짜별 회전자 결합 순서 |
각 암호문 별로 sender가 자체 설정 |
날짜별 키로 Sender의 시작점 키를 암호화하여 전달 Receiver는 통신 키 암호문을 날짜별 키로 복호화하여 통신 키 복구 복구 통신 키로 각 암호문 복호화 수행 |
-하이브리드 암호
short-term key를 Long-term key로 암호화 하여 암호화 통신을 하는 방식 (현대 암호학에서도 많이 사용)
'공부해요 > 현대암호학기초' 카테고리의 다른 글
#4. 일회용 패드 & 블록 암호 (1) | 2023.10.09 |
---|---|
#3-2. 암호 안전성과 공격 모델 (1) | 2023.10.02 |
#2-2. 행렬 (0) | 2023.09.25 |
#2-1. 기초 정수론(2) (0) | 2023.09.25 |
#1. 기초 정수론 (3) | 2023.09.21 |