1581, 9/80 회원가입  로그인  
   williamlee
   [자작] W's 암호학(Cryptology) - 스파르탄 암호,시저(알파벳치환)암호

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=1479 [복사]


암호학의 최초의 기록 스파르탄 암호. (기원전 2500년쯤. 지금으로부터 4500년 전쯤)


스파르탄 암호는 보내는 사람과 받는 사람이 같은 크기의 원막대(원기둥)를 가지고 있는 상태에서 끈을 원막대 둘레에 사선방향(가로)으로 둘둘 감아 놓은후에 그 원막대의 높이(세로) 방향으로 한글자씩 써내려 가는 방법입니다.

그렇게 문자를 써내려가다 보면 다음과 같은 암호문이 만들어지게 됩니다.

아래 암호문은 원의둘레가 3 인 원기둥을 사용하여
we are hackerschool student 라는 문장을 암호화 한 것입니다.
(한글자를 길이 1이라고 생각, 띄어쓰기는 생각하지 않음)

wkleesartrsuecdhheaoncot

복호화 하는 방법은 지름이 3인 원기둥에 다시 감아보면 됩니다.

다시 감아서 확인해본다면

wkl ees art rsu ecd hhe aon cot   --> 지름이 3이므로 3글자씩 띄어쓰기 함.

"W"kl "E"es "A"rt "R"su "E"cd "H"he "A"on "C"ot   --> 첫번째 글자 확인해보면 we are hac 이고,

같은 방법으로 두번째 글자들을 확인해보면 kerschoo
같은 방법으로 세번째 글자들을 확인해보면 l student

세 줄을 모두 연결해보면 we are hackerschool student 라는 원래의 문자를 복호화 할 수 있습니다.

이 방법을 응용하여 원기둥(윗면과 아랫면의 넓이가 같은 기둥)이 아닌 원뿔대(윗면의 크기와 아랫면의 크기가 다름)를 이용하여 암호화 할 수도 있지만 이 방법은 여러가지 지름이 다양한 원기둥을 이용하여 반복적으로 시도 해 보면 큰 어려움 없이 암호가 해독 될 수 있다는 단점을 가지고 있습니다.


줄리어스 시저(Julius Caesar)의 암호화 방법 (유명한 방법)


시저의 암호화 방법은 DES,이니그마,알파벳 치환방식의 근본 원리라고 할만큼 유명한데 원리는 아주 단순합니다.
바로 알파벳을 3글자씩 밀어쓰는 형태로 암호화 한 것인데, 예 를 들면 A 를 오른쪽으로 3칸 이동해서 D로 바꾸고 B 는 E로 바꾸고 하는 식의 방법입니다.

hacker 라는 단어를 시저의 방법으로 암호화 하면 kdfnhu 라는 암호문이 완성되고 다시 복호화 하는 방법은 3칸 왼쪽으로 이동시키면 됩니다. 여기에서 "3칸 이동" 했다는 사실은 암호를 보내는 사람과 받는 사람 두명만 알고 있어야 하는 비밀이므로 암호학에서는 '비밀키(Secret key)'라는 용어를 사용합니다.

시저의 암호학 방법은 알파벳이 26글자 이므로 26번 밀어보면서 확인하다 보면 암호가 금방 풀리게 되는 단점을 가지고 있습니다.

이 방법을 응용하여 알파벳을 무작위로 흐트려 놓는 방법을 생각해 낼 수 있는데
예를 들면 A를 K라고 치환 하고 B를 A라고 치환하고  C를 D라고 치환 하자는 식으로 무작위로 26개 글자를 치환 한후 그 치환표를 비밀키로 해서 서로 가지고 있기만 한다면 중간에 암호문을 가로챈사람은 이 암호를 풀기 위해서 확률적으로

26 * 25 * 24 * --- * 2 * 1 = 4 x 10^(26) 번 시도해 보아야 암호를 풀수가 있게 됩니다.

이방식은 치환을 이용한 암호화 방식이고 이 암호 시스템은 실제 2차 세계대전때 사용되던 방식 입니다.

이 방식은 연합군의 암호 해독 연구원의 조수로 있던 사람이 알파벳 E의 사용빈도가 가장 많다는 사실을 발견하고 이것을 이용해 복호화 할수 있는 방법을 찾아낼 수 있게 됩니다.

예를 들면, 아무렇게 만든 무작위 치환 암호표가
A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z
q  w  e   r   t  y  u   i  o p  a  s   d   f   g  h   j   k  l   z  x   c   v   b  n  m
이렇다고 하였을때,
we are hacker school student 라는 표현은

vt qkt iqeatk leiggs lzxrtfz 라고 암호화 할수 있습니다.

이문장을 한번 복호화 해보겠습니다.

먼저 복호화 하기위한 몇가지 정보를 나열하자면,  
단일 문자 빈도수는 E - T - O - I - A - S 순이며
두 글자 연속 빈도수는 th, in, er, re, an 이 많은 편이며
세 글자 연속 빈도수는 the, ing, and, ion 이 많은 편이다.
두글자가 연속으로 올수 있는 경우는 ee , oo 같은 경우가 있습니다.

vt qkt iqeatk leiggs lzxrtfz 에서 빈도수 조사를 해보면

t=4번
g=2번
z=2번
l=2번             이고 gg가 연속으로 나온다는 특징을 가지고 있습니다.

여기에서 t가빈도수가 높으므로 E 라고 생각하고 gg가 연속으로 온것으로 보아 gg는 E 아니면 O 가 될 수 있는데 ,
t를 E라고 생각하기로 했으므로 gg 는 OO 라고 생각할수 있습니다.

일단 먼저 이것을 이용해서 복호화 해보면

vE qkE iqeaEk leiOOs lzxrEfz 가 되고 kE , Ek 가 있는 것으로 보아 두글자 연속 빈도수 중 re, er 이라고 추정하고 k를R로 치환하면

vE qRE iqeaER leiOOs lzxrEfz 이 됩니다. 이쯤되면 qRE 에서 q가 A 라고 추측할수 있고 are 라는 BE동사가 있으므로 vE 는 we 가 된다는것을 알수 있으며 그것을 이용하여 복호화 하면

WE ARE iAeaER leiOOs lzxrEfz 가 되며, 우리는 주로 hacking 관련 공부를 하는 사람들 이기때문에 iAeaER을 hacker 라는 단어로 추측할 수도 있습니다.

뭐 이런식으로 빈도수와 여러 알파벳의 규칙들을 이용하여 복호화 할 수 있다는 것인데
여기서 든 예는 너무 짧은 문장이라 복호화하는 과정이 약간 억지스러운 면이 있습니다.

실제 2차 세계 대전때는 전쟁중이므로 암호문에 전쟁관련 용어가 많을 것이라는 추측을 하면서 암호를 풀어나갔다고 하고 실제로 암호문의 80% 이상을 풀 수 있었다고 합니다.

이 치환 암호화 방식의 암호문을 복호화 하려면 띄어쓰기 표시가 되어 있고, 문장이 길면 길수록 복호화를 완벽하게 할수 있습니다.
하지만 그렇지 않은 짧은 문장의 경우 빈도수를 이용한 복호화가 어렵다는 특징이 있습니다.

이 치환 암호화 방식이 응용되어 독일의 셀비우스라는 사람이 이니그마 라는 암호화 기계를 만들게 되며,
1977년 미국정부의 표준 암호화 시스템으로 채택돤 DES 역시 치환 암호화 방식이 응용되어 만들어진 암호화 시스템 입니다.



  Hit : 12863     Date : 2010/07/28 03:53



    
HOSHI 이거 영화 보다가 나온거같네요 ㅋ.ㅋ 영화 제목이 기억안나는데. 중국 영화였는데.. 흐흐 2010/07/30  
williamlee └중국영화 혹시 모스부호 나오는 무간도 아님?? ㅋ 조폭 내부에 경찰쪽에서 첩자 한명 심어놓고 모스부호로 서로 통신하는거. ㅋ 2010/07/30  
teachercyber 으흠... 암호학 기초네요^^ 2010/07/30  
qkreoghks00 아이리스에서 병헌씨하고 태희씨하고 북한놈들 소굴에서 만났을때 병헌씨가 손가락으로 보낸 신호도 모스부호였을듯 ㅋ 2010/08/03  
ladoya47 암호학 잘 배우고 감 ㅋ. 2010/08/04  
DeathStalker 우왁 형 좋은 암호학 강의 잘 보고 갈께요 ㅋ ㅎㅎ 애니그마 아닌가요?

암호의 해석이란 책 읽어두길 잘했당 ㅋㅋㅋ 알던 내용 복습? ㅋㅋㅋㅋ
2010/08/04  
williamlee └애니그마 맞아요. ㅎ 암호의해석 책도 자주 언급되던데 함 봐야겠당. ㅎ 2010/08/05  
G.O.D 스파르탄 암호 찾고 있던건데 그런거군 ㅋ
원기둥이라 ㅋ 함 해봐야 겠네 ㅋㅋㅋㅋ
암호학 재밌네요 ㅋㅋㅋ
2010/08/08  
williamlee └저도 모나미볼펜 둘레를 종이로 둘둘 말아가면서 이해했음. ㅋㅋ 2010/08/09  
bywords 잘 보고 갑니다~ 2010/08/10  
Cpgroot 잘보고 갑니다 ~~ 2010/08/18  
  [자작] W's 암호학(Cryptology) - 스파르탄 암호,시저(알파벳치환)암호[11]     williamlee
07/28 12862
1420   메모리 덤프(블루 스크린=STOP 스크린) 코드 및 해결[1]     ROK.AF
02/09 12836
1419   알기 어렵게 설명한 Buffer Overflow[4]     blackcoder
02/17 12822
1418   * 해커가 되고싶나 ? *[19]     HackerMapia
03/01 12794
1417   해커가 되기위해 알아야할 30가지 출처 :해커대학[5]     asdzxc301
12/12 12761
1416   초보가 적어본 윈도우 침투[6]     awsedr45
12/06 12726
1415   c언어 for문      hacs98
06/15 12719
1414   해킹기법? (기발하다고 해야하나,웃기다고 해야하나)[35]     whqkdnf000
07/31 12649
1413   [Reverse Engineering] 리버싱의 기초 - 범용 레지스터와 Assembly(Pop,Mov)     zen0c1de
07/18 12646
1412   개발자가 알아야할 10가지 보안팁으로 코드를 보호하자.     푸른하늘
09/01 12618
1411   C언어 기본구조[1]     괴도js
07/02 12545
1410   ping아는 카페 해킹 고수님에게 들은 소리입니다[21]     장세만
07/14 12544
1409   [펌]해커들의 흔적지우는방법[28]     starztp
10/08 12506
1408   C언어(진법)[9]     whqkdnf000
02/25 12466
1407   trozan(트로이목마) 포트 목록[2]     whqkdnf000
02/22 12384
1406   왠만한사람들은다알지도모르겠지만[6]     백룡출해
03/17 12311
1405   c++ 강좌[7]     jhon55
08/12 12253
1404   [펌] 해킹의 역사     dzhfldk
08/22 12240
1403   리눅스 명령어 한꺼번에(소유님꺼)[11]     ssakura
07/07 12199
1402   네트워크 개념 휘어잡기 7[8]     소유
09/16 12163
[1][2][3][4][5][6][7][8] 9 [10]..[80]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org