공부해요/현대암호학기초

#3-1. 고전암호

yenas0 2023. 10. 2. 18:27
반응형

 

 

 

1. 시저암호 (시프트 암호)
2. 아핀 암호
3. 단일 치환 암호
4. 다중 치환 암호
5. 전치 암호
6. 에니그마
7. 암호 알고리즘 안전성 원칙

 

 

 

 

1. 시저 암호 (Caesar Cipher)

평문 및 암호문 공간

 ㄴ알파벳으로 구성

 

시프트 암호 (Shift Cipher)

 ㄴ알고리즘 - 평문 알파벳 별로 일정한 문자 수 만큼 평행이동

 ㄴ키 - 평행이동 거리

 

 

https://ko.wikipedia.org/wiki/%EC%B9%B4%EC%9D%B4%EC%82%AC%EB%A5%B4_%EC%95%94%ED%98%B8

 

 

시프트 암호 해독

- 키 개수가 총 26개로 매우 작아 취약하다

- 복호화 연산량과 암호화 연산량이 동일하여 취약하다

 

=> 전사공격 (brute- force attack)

전수 조사/탐색 (exhaustive search)

0~25까지 각각 키에 대해 복호화 수행 -> 의미가 있는 평문으로 해독되는 경우 키 발견

 

 

 

 

 

 

2. 아핀 암호 (Affine Cipher)

: 시저암호를 일반화 한것

 

알파벳을 숫자로 생각하고 알파벳 위에서 연산한다.

 

암호화 키

- 26과 서로소인 숫자 α

- 평행이동 거리 숫자 β

 

암호화 알고리즘

메시지 X를 아래와 같이 치환한 x를 계산

 

복호화 알고리즘

 

 

 

 

 

3. 단일 치환 암호 (Monoalphabetic Substitution Cipher)

 

-시저 암호의 특징

각 알파벳을 다른 알파벳으로 치환한다

암호화 키 = 알파벳 집합 간 일대일 대응 함수

(일대일 함수 중에서도 평행이동 함수로 한정하기 때문에 가능한 일대일 대응이 26개 밖에 없음)

 

-단일 치환 암호

암호화 키로 가능한 모든 일대일 대응을 고려한다

키의 개수 = 26! (약 2^95개)

 

 

취약점

빈도분석을 통해 부가 정보를 얻어 해독할 수 있다.

https://ko.wikipedia.org/wiki/%EB%B9%88%EB%8F%84%EB%B6%84%EC%84%9D_%28%EC%95%94%ED%98%B8%29

영어에서 자주 등장하는 단어를 활용하여 추측하는게 가능하다.

 

 

 

 

 

 

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