본문 바로가기
모의해킹 침해대응 과정/본 과정

암호학 / 암호의 역사(고전 암호학)

by 알거음슴 2021. 6. 21.

시저암호 (Caesar)

시저암호 = 카이사르 암호 = 케사르 암호

단순 치환(대치식) 으로 만든 암호, 단일 치환 암호

시저암호 : 줄러이서 시저(유리우스 케사르) 가 사용했다는 암호 평문으로 사용되는 알파벳을 일정한 문자 수 만큼 평행이동 시킴으로써 암호화

시저암호의 경우 Brute Force Attack에 취약하다, 알파멧은 26문자임으로 키가될 수 있는 모든 경우의 수로 공격을 시도해볼 경우 컴퓨터의 경우 빠른속도로 결과값을 출력할 수 있다.

 

[참고] 단일 치환 암호

평문을 구성하는 알파벳을 다른 알파벳으로 매칭하여 진행하는 암호방식

 무작위 대입(Brute Force Attack) 및 빈도분석(Frequency Analysis) 공격 등에 크랙될 수 있다.

 

 

아핀 암호(Affine Cipher)

시저암호 (Caesar Cipher) : C = (P + K) mod 26

곰셈암호 (Multiplication Cipher) : C = (P * K) mod 26

아핀암호 (Affine Cipher) : C = ((P * K1) + K2) mod 26

아핀암호는 곱셈암호 + 시저암호로 구성되어있다. 나머지연산 및 최대공약수를 활용하여 찾는 유클리드 알고리즘을 활용.

 

아핀 암호의 암호화

C = (P * K1 + K2) mod len(symbols)

(조건) K1, K2에 대한 몇가지 조건

K1 = 1 이면 안된다. 곱셈하는 의미가 없어지기 때문이다.

K2 = 0 이면 안된다. 덧셈하는 의미가 없어지기 때문이다.

K2 < len(symbols)

곱셈 암호 방식은 K1, len(symobs)는 서로소 관계이어야 한다.
(ex: gcd(K1, len(symbols) == 1)

 

암호화 과정:
(ㄱ) 평문을 K1으로 곱셈
(ㄴ) K2를 더함
(ㄷ) 심볼 집합 크기로 나머지 연산

 

아핀 암호의 복호화

P = {(C - K2) * K1-1} mod len(symbols)

(조건) K1, K2에 대한 몇가지 조건(암호화 조건과 같다.)

K1 = 1 이면 안된다. 곱셈하는 의미가 없어지기 때문이다.

K2 = 0 이면 안된다. 덧셈하는 의미가 없어지기 때문이다.

K2 < len(symbols)

곱셈 암호 방식은 K1, len(symobs)는 서로소 관계이어야 한다.
(ex: gcd(K1, len(symbols) == 1)

 

복호화 과정:
() 암호문에서 K2를 뺀다.
() K1의 모듈러 역수 연산
() 심볼 집합 크기로 나머지 연산

 

 

다중 치환 암호

단일 치환 암호의 경우 단순 매칭을 사용하기 때문에 평문의 단일 문자의 대한 빈도가 그대로 암호문에 노출되어있다, 따라서 빈도분석을 어렵게 하기 위해서는 암호문에 나타나는 문자들의 빈도를 균등하게 만드는것이 다중치환을 이용하여 문자 발생 빈도를 균일화 하는 방식이다

비제니어 암호(Vigenere)

대표적인 다중 치환 암호, 관련된 단일 문자 치환 규칙들의 집합을 사용, 주어진 변환에 사용될 특성 규칙은 키에 의해 결정됨

대표적인 비제니어(Vigenere) 암호 방식
1. 행렬표를 구성
2. 키 문자 x와 평문자 y가 주어지면 암호 문자는 x행 y열의 암호문 V
3 .키 : deceptive
평문 : we are discovered save yourself
키수열: de cep tivedecept ived eceptive
암호문: ZI CVT WQNGRZGVTW AVZH CQYGLMGJ 

 

 

전치암호와 치환암호

전치암호

전치 : 평문에서 사용하는 문자의 집합, 암호문에서 사용하는 문자의 집합이 동일

문자 집합 내부에서 자리를 바꾸는 규칙

평문에서 사용된 문자와 암호문에서 사용된 문자가 1:1 대응 규칙

암호 종류 : 레일 팬스, 경로 암호, 가로장 암호, 미즈코우스키 전치암호, 분할된 전치암호 등

 

치환암호

평문에서 사용하는 문자의 집합과 암호문에서 사용하는 문자의 집합이 다를경우

평문문자를 다른 문자로 교환하는 규칙

교환 규칙이 1:1대응이 아니더라도 무방함

암호 종류 

 - 단일 치환 : 시저암호, 덧셈암호, 곱셈암호, 아핀암호

 - 다중 치환 : 버제니어 암호, 자동키 암호, 플레이 페어 암호

 

[실습] 시저암호 python 구현 및 공격작업 진행.

[실습] 전치 암호 테스트 프로그램(기능 및 성능)

[실습] 파일을 입력받아 전치 암호화 또는 복호화 수행.

[실습] 아핀암호 암호화/복호화 프로그램 제작

[실습] 단순 치환 암호 프로그램 제작