상세 컨텐츠

본문 제목

[암호] 단일 치환 암호화, 직접 해보자

공부✍/네트워크

by 기며니 2021. 7. 2. 09:16

본문

728x90
728x90

단일 치환 암호화란?

시저 암호화 방식처럼 1개의 문자를 다른 문자로 대체하는 방법을 단일 치환 암호화라고 하는데,

좀 더 발전된 단일 치환 암호화방법을 알아보도록 합시다.

 

아래 링크를 타고 시저 암호에 대해 알아보세요.

 

[암호] 시저 암호(Caesar Cyper)

시저 암호란? 시저 암호는 카이사르 암호라고도 불리며, 암호학에서 다루는 간단한 치환암호의 일종입니다. 로마시대의 정치가이자 장군이었던 줄리어스 시저(Julius Caesar)가 처음 사용한 것으로

mylittletechdiary.tistory.com

 

시저 암호화와 마찬가지로 글자를 각각 다른 알파벳에 대응시키는데, 규칙 없이 임의의 문자에 임의의 알파벳을 대칭시켜서 암호화 합니다.

 

 

단일 치환 암호의 방법의 수

26개 각각의 알파벳을 다른 알파벳으로 일대일대응 시키는 경우의 수를 구해봅시다.

우선 A를 26개의 알파벳 중의 하나로 바꾸고, B는 A가 변환된 알파벳을 제외한 나머지 25개의 알파벳 중의 하나로 바꿀 수 있습니다.

26!에는 모든 알파벳을 그대로 유지시키는 경우가 포함되기 때문에 이 한 가지 경우를 제외하는 것입니다.

26!-1
= 26×25×24×23×22×21×20×19×18×17×16×15×14×13×12×11×10×9×8×7×6×5×4×3×2×1-1
= 403,291,461,126,605,635,583,999,999

공격자가 이 암호문을 풀고자 모든 방법을 하나씩 대응시킬 수는 없을 것입니다.

정말 오랜 시간이 걸릴 것이 분명하기 때문입니다.

 

 

단일치환암호의 방법의 수

이동암호나 아핀암호와 달리 규칙성을 갖지 않는 치환도 가능하다. 26개 각각의 알파벳을 다른 알파벳으로 일대일대응 시키는 경우의 수를 구해보자. 우선 A를 26개의 알파벳 중의 하나로 바꾸고

terms.naver.com

 

 

단일 치환 암호화를 해보자

평문은 I AM HAPPY 입니다.

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

 

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

HELLO

HELO

 

2. FUTRE로 대칭표를 작성합니다.

[1] 중복이 제거된 단어를 앞에 둡니다.

[2] P부터 Z까지 적습니다. 하지만 앞에 나온 알파벳은 제외합니다.

[3] 다시 A부터 시작해 중복되는 알파벳은 제외하고 표작성을 마무리합니다.

 

3. 대칭표를 두고 매칭시켜줍니다.

I -> T

A -> H

M -> X

H -> S

A -> H

P -> A

P -> A

Y -> M

 

암호문은 T HX SHAAM 입니다.

 

암호문을 복호화시키자

T HX SHAAM 을 복호화 시켜봅시다.

위의 대칭표를 토대로 하면 됩니다.

 

암호화를 했던 것처럼 반대로 대체문자에서 해당 문자를 찾아서 원문자로 대체하면 됩니다.

 

T -> I

H -> A

X -> M

S -> H

H -> A

A -> P

A -> P

M -> Y

 

I AM HAPPY 복호문을 얻는 것을 성공했습니다.

 

728x90
728x90

관련글 더보기

댓글 영역