상세 컨텐츠

본문 제목

[암호] 다중 문자 치환 암호화, 직접 해보자

공부✍/네트워크

by 기며니 2021. 7. 3. 19:19

본문

728x90
728x90

다중 문자 치환 암호화란?

단일 치환 암호화는 평문과 암호문간의 단순 대응을 사용하기에 빈도 분석이라는 암호 해독 방법을 통해서 쉽게 유추할 수 있기 때문에 안전하다고는 하지못합니다.

 

아래 링크를 타고 단일 치환 암호화에 대해 알아보세요.

 

[암호] 단일 치환 암호화

단일 치환 암호화란? 시저 암호화 방식처럼 1개의 문자를 다른 문자로 대체하는 방법을 단일 치환 암호화라고 하는데, 좀 더 발전된 단일 치환 암호화방법을 알아보도록 합시다. 아래 링크를 타

mylittletechdiary.tistory.com

 

따라서, 암호해독자로부터 빈도 분석을 어렵게 하기 위해서는 문자들의 빈도를 균등하게 만드는 암호를 이용하는 것이 바람직한 방법입니다.

 

그렇기에 다중 문자 치환 암호화는 다중 치환을 이용하여 빈도 정보를 무력화시키는 방법입니다.

다중 문자 치환 암호화 방법은 2개 이상의 문자열을 치환하는 방법으로, 쌍자 암호를 예로 들어보겠습니다.

 

쌍자 암호란 (PlayFair)

1854년 찰스 휘트스톤이 개발한 쌍자 암호는 1차 세계대전 중 영국에서 사용되었습니다.

쌍자 암호는 두 글자 쌍을 다른 두 글자 쌍으로 대체하는 암호화 방법으로 보통 정사각형 안에 영어 알파벳을 배열하여 대체하는 방법을 사용합니다.

 

쌍자 암호화를 해보자

평문은 YOU LOOK HAPPY 입니다.

HELLO 라는 키워드의 대칭표를 만들어 봅시다.

 

1. 먼저 1:1 대칭을 위해서 중복된 알파벳을 제거합니다.

HELLO

HELO

 

2. 중복 문자열을 제거한 결과의 알파벳을 5x5 정사각형에 배열하고, 나머지 알파벳을 차례대로 넣습니다.

알파벳은 26자가 있기 때문에 I와 J를 같은 칸에 놓거나 영문에서 많이 나타나지 않는 Q, Z를 같은 칸에 놓습니다.

암호판

5x5 정사각형을 암호판이라고 합니다.

이 암호판을 이용해 암호화하기 위해서는 먼저 2:2 맵핑이 가능하도록 만들어야합니다.

 

3. 2:2 맵핑

YOU LOOK HAPPY

우선 평문의 공백을 없앱니다.

OO와 PP와 같이 연속으로 나타나는 문자열의 중간에 X를 넣고,

'마지막에 홀수 글자가 남을 경우에도 마찬가지로 X를 넣어줍니다.

 

 

3. 암호표를 가지고 암호화를 합니다.

두 문자가 모두 서로 다른 행과 다른 열에 존재하면(YO) 암호는 Y와 O의 행과 열이 만나는 곳에 위치한 A와 X입니다.

1. YO -> AX
2. UL -> HW

OF와 같이 두 문자가 같은 열에 있다면 각각 아래쪽에 있는 문자로 암호화를 합니다.

필요하면 표의 아래 끝과 표의 위 끝을 연결합니다. 

3. OX -> FO
.4. OK -> ML

HA와 같이 두 문자가 같은 행에 있다면 각각 오른쪽에 있는 문자로 대체합니다.

필요하면 표의 아래 오른쪽 끝과 표의 왼쪽 끝을 연결합니다.

5. HA -> EH
6. PX -> US
7. PY -> UT

암호문 AX HW FO ML EH US UT를 만들었습니다.

 

암호문을 복호화시키자

AX HW FO ML EH US UT 를 복호화 시켜봅시다.

복호화는 암호문과 암호판을 이용하여 반대의 문자로 대체하는 방법으로 수행하면 됩니다.

계속해서 반복하는 과정이기에 생략하겠습니다.

똑같이 반대로 수행하면

YOU LOOK HAPPY라는 복호문을 얻을 수 있으실 겁니다.

 

 

 

728x90
728x90

관련글 더보기

댓글 영역