비즈네르 암호 해독기 - bijeuneleu amho haedoggi

Cryptography

비즈네르 암호 (Vigenère cipher)

참고 사이트 : 

https://ko.wikipedia.org/wiki/%EB%B9%84%EC%A6%88%EB%84%A4%EB%A5%B4_%EC%95%94%ED%98%B8

다중 단일 문자 치환 암호법의 한 종류로 키워드를 이용한 암호법임.
비즈네르 암호의 장점은 빈도수 분석법으로는 해독이 불가능하다는 점이며 열쇠의 개수가 무궁무진하다는 것도 장점임.
비즈네르 암호는 오늘날 전문가들이 많이 사용하는 암호들의 기본형임.
비즈네르 암호를 깨기 위하여 사용하는 카지스키 테스트와 프리드만 테스트는 아주 중요한 암호 공격법임.

원리는 다음과 같음.
위와 같이 비즈네르 표를 만들어야 함.
원문 알파벳 아래에 26 가지 사이퍼 알파벳이 나열되어 있음.
사이퍼 알파벳은 한 줄 내려갈 때마다 한 자씩 뒤로 이동하게 되며 1번 줄은 1칸 이동하는 카이사르 사이퍼 알파벳과 동일함.
이런 식으로 2번 줄은 2칸 이동, 3번 줄은 3칸 이동 카이사르 사이퍼 알파벳과 같음.


빈도수 분석법을 회피하기 위해서 키워드를 선택해야 함.
해당 키워드는 수신자와 송신자가 아무 단어나 선택할 수 있으며 공유해야 함.

키워드 : sky
평문   : divert troops to east ridge
위의 암호화된 텍스트를 보면 같은 o 에 대해서 m, g, y 세가지가 나온 것을 알 수 있음.
즉, 위에서 언급한 대로 빈도수 분석법으로는 해독이 불가능한게 됨.

비즈네르 암호 해독에 도움이 되는 사이트 :
http://www.dcode.fr/vigenere-cipher
http://www.guballa.de/vigenere-solver

참고 사이트

위키백과

비즈네르 암호 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 비즈네르 암호(프랑스어: Vigenère 暗號)는 프랑스 외교관이었던 블레즈 드 비즈네르에 의하여 1586년에 발표된 암호이다. 외교관이었던 비즈네르는 26세 되던 해 로마로 발령받아 2년간 근무 하던 중 알베르티의 글을 읽고 크립토그래피에 관심을 기울이게 된다. 39세에 그는 평생 연구에 매달릴수 있을만큼 돈을 모았다고 판단하고 외교관을 그만 둔다. 알베르티의 논문을 자세히 분석하여, 이를

ko.wikipedia.org

코로문님 블로그

비즈네르 암호 (Vigenère cipher)

참고 사이트 : https://ko.wikipedia.org/wiki/%EB%B9%84%EC%A6%88%EB%84%A4%EB%A5%B4_%EC%...

blog.naver.com

chieze님 블로그

Vigenere Cipher

Vigenere Cipher -치환암호의 한 종류로 사용자가 임의로 설정한 key에 해당하는 테이블마다 다르게 문자를 치환 -다중 단일 문자 치환암호의 한 종류로 빈도분석법으로 해석이 불가능한것이 장점 -암호화- 1 . 비..

chieze.tistory.com

MyriaBreak님 블로그

비제네르 풀어주는 사이트

비제네르 풀어주는 사이트 http://www.mygeocachingprofile.com/codebreaker.vigenerecipher.aspx https://www.guballa.de/vigenere-solver https://f00l.de/hacking/vigenere.php

xerxes-break.tistory.com

다중 단일 문자 치환암호의 한 종류로써 키워드를 이용하며 빈도수 분석법으로 해독이 불가능하다.
또한 사용자의 key 개수가 무궁무진하다.

비즈네르 표 만들기

1부터 26까지의 사이퍼 알파벳을 나열하고, 한 줄씩 내려갈때마다 한 자씩 뒤로 이동된다.

비즈네르 암호 해독기 - bijeuneleu amho haedoggi
예시

키값 정하기

키값을 정한다. 암호 만드는 사람 마음대로 정하면된다.

위 사진에는 sky가 키값으로 되어있으니, 나도 편의상 sky를 키값으로 정하도록 하겠다.

암호화하기

암호화 할 문장은 얼마전에 개봉한 존윅3의 'johnwick'으로 해보자.

키워드

s

k

y

s

k

y

s

k

원문

j

o

h

n

w

i

c

k

암호문

b

y

f

f

g

g

u

u

원문은 johnwick이지만, 암호문은 byffgguu가 되면서 달랐던 알파벳이 암호화되면서 같은 알파벳이 되었다.

그리고 이걸 키값만 있다면 얼마든지 해독할 수 있다.

키값을 가지고 있지 않은 누군가가 이것을 해독하려면 빈도수 분석법으론 절대 해독할 수 없을 것이다.

복호화하기

복호화는 카지스키 공격방법과 프리드먼 공격방법이다.

이 두 방법을 같이 사용하면 거의 정확히 키의 길이를 알아낼 수 있다.

카지스키 공격방법

1. 문자열에서 반복되는 문자열을 찾는다.

2. 반복되는 문자열간의 길이를 계산한다.

  (ex. 반복되는 문자가 asdf라면 기준 asdf의 a부터 다음 asdf의 a까지의 거리를 계산)

3. 구한 길이들의 공약수나 공배수가 키의 길이이다.

  (ex. 키의 길이가 9, 15, 21이라면 공약수인 3이나 공배수인 315가 키의 길이이다.)

프리드만 공격방법

프리드만 공격방법에는 공식이 정해져있다.

비즈네르 암호 해독기 - bijeuneleu amho haedoggi
ni는 문자열에서 각 알파벳의 갯수이다.

이 식을 이용해 키의 길이를 유추할 수 있다.

키의 길이인 L을 구하고 카지스키로 유추한 키의 값들 중 가장 가까운 값이 키의 길이이다.

키의 길이를 구했으면 암호문을 키의 길이만큼 나누고 같은 키로 암호화된 부분들을 모아 빈도수 분석법으로 키를 유추해 나가면 된다.

복호화과정이 복잡해 chieze님 블로그의 예시를 들고왔다.

암호문: aryloyxkrukrteravmnoyuerwmylsfsdcspylmyllslsjgfcsmsloasdgzkrwkdsdasdzmdgdytwkamdcukr

1. 반복되는 문자열 찾기

aryloyxkrukrteravmnoyuerwmylsfsdcspylmyllslsjgfcsmsloasdgzkrwkdsdasdzmdgdytwkamdcukr

2. 반복되는 문자열간의 길이 계산

myl의 간격 : 12

ukr의 간격 : 72

3.구한 길이들의 공약수나 공배수 계산

공약수인 3, 4, 12 중에 키의 길이가 있을 것이다.

4.프리드만 방법으로 I값과 L값 계산

I = 0.0559380378657487

L = 1.49618320610687

5. 키의 길이 유추하기

유추할 수 있는 키의 길이는 1.4와 제일 근접한 3이 키의 길이이다.

6. 키 알아내기

ary

loy

xkr

ukr

ter

avm

noy

uer

wmy

lsf

sdc

spy

lmy

lls

lsj

gfc

sms

loa

sdg

zkr

wkd

sda

sdz

mdg

dyt

wka

mdc

ukr

1번째 자리: alxutanuwlsslllgslszwssmdwmu

2번째 자리: rokkevoemsdpmlsfmodkkdddykdk

3번째 자리: yyrrrmyryfcyysjcsagrdazgtacr

비즈네르 암호 해독기 - bijeuneleu amho haedoggi
각 자리마다 빈도수 분석을 한다.

1번째 자리에는 l과 s, 2번째 자리에는 d, 3번째 자리에는 r과 y가 가장많다.

비즈네르 암호 해독기 - bijeuneleu amho haedoggi

위 알파벳 빈도수 순위 표를 참고하여 치환하다보면 키를 알아낼 수 있다.

추가사이트