Top Banner
2장 암호의 역사 박종혁 Tel: 970-6702 Email: [email protected] 2011-1학기 현대암호학
88

chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

May 23, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

2장 암호의 역사

박 종 혁

Tel: 970-6702Email: [email protected]

2011-1학기 현대암호학

Page 2: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

2

2.0 주요 내용

n 암호

n 시저 암호

n 단일 치환 암호

n 애니그마

n 암호 해독법

n 전사 공격(brute force attack)

n 빈도 분석

n 알고리즘과 키의 관계

Page 3: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

3

2.1 시저 암호

n 단순한 암호인 시저 암호를 소개

Page 4: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

4

2.1.1 시저 암호란

n 시저 암호(Caesar cipher)는 줄리어스 시저가사용했다고 하는 암호이다.

n 시저는 기원전 100년경에 로마에서 활약했던장군이었다

n 시저 암호에서는 평문에서 사용되고 있는 알파벳을 일정한 문자 수 만큼 「평행이동」시킴으로써 암호화를 행한다

Page 5: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

5

알파벳을 3문자씩 평행 이동시키기

Page 6: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

6

2.1.2 시저 암호의 암호화

n 예: 평문=kabsoonyee

Page 7: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

7

시저 암호 암호화

aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx yy zz

DD EE FF GG HH II JJ KK LL MM NN OO PP QQ RR SS TT UU VV WW XX YY ZZ AA BB CC

kk aa bb ss oo oo nn yy ee ee

NN DD EE VV RR RR QQ BB HH HH

Page 8: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

8

시저 암호

n 시저 암호에서는 「알파벳 문자를 평행 이동시킨다」는 조작이 「암호화 알고리즘」에 해당

n 평행 이동시키는 문자수가 「키」에 해당한다.

Page 9: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

9

2.1.3 시저 암호의 복호화

Page 10: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

10

시저 암호에 의한 복호화(키는 -3)

Page 11: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

11

2.1.4 전사공격에 의한 해독

n 수신자 이외의 사람(3이라는 키를 모르는 사람)이 암호문 NDEVRRQBHH 을 보고 다른 정보 없이도 kabsoonyee 라는 메시지를 맞출수는 없을까?

n 다시 말해, 시저 암호를 해독할 수 없을까?

Page 12: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

12

시저 암호의 방법

n 시저 암호에서는 알파벳을 평행 이동시키는문자 수가 키가 된다. 알파벳은 26 문자이므로 암호화 키는 0에서 25까지 26가지밖에 없다

n 그럼 이 26 가지 키를 순서대로 사용해서 복호화를 해보자

Page 13: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

13

시저 암호문에 대한 전사공격

시저암호에의한

복호화

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

HHBQRRVEDN

ffzopptcbl

ggapqqudcm

hhbqrrvedn

eeynoosbak

yyshiimvue

vvpeffjsrb

wwqfggktsc

xxrghhlutd

ttncddhqpz

uuodeeirqa

mmgvwwajis

ssmbccgpoy

ppjyzzdmlv

qqkzaaenmw

rrlabbfonx

nnhwxxbkjt

ooixyyclku

jjdsttxgfp

kketuuyhgq

llfuvvzihr

iicrsswfeo

ccwlmmqzyi

ddxmnnrazj

bbvkllpyxh

zztijjnwvf

aujkkoxwg a

0

복호화키

1

2

3

4

25

24

Page 14: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

14

2.2 단일 치환 암호

n 알파벳 26문자를 무작위 순서로 나열하여 얻게 되는 집합을 생각해보자.

n 이 무작위로 만든 집합과 원래 순서대로 된 알파벳 집합 {a,b,c,...,z}은 일대일 대응관계가되며 이 대응관계를 이용하면 하나의 암호를만들 수 있게 된다.

Page 15: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

15

2.2.1 단일 치환 암호

n 단일 치환 암호(simple substitution cipher) :

알파벳의 대응관계를 이용하여 평문을 구성하는 알파벳을 다른 알파벳으로 변환하는 암호

Page 16: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

16

단일 치환 암호의 치환 표(예)

Page 17: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

17

대응관계를 보기 쉽게 한 치환표(내용은 같음)

Page 18: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

18

2.2.2 단일 치환 암호의 암호화

n 단일 치환 암호의 암호화는 평문을 구성하는알파벳을 한 문자씩 치환표를 참조하여 변환해 가는 작업의 반복이다

Page 19: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

19

단일 치환 암호의 암호화(예)

n 평문: kabsoonyee

n 암호문: SWYLBBNKXX

AB C

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

DEF GH IJ KLM N OPQRSTU VW XY Z

kk aa bb ss oo oo nn yy ee ee

SS WW YY LL BB BB NN KK XX XX

Page 20: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

20

2.2.3 단일 치환 암호의 복호화

n 암호화 때에 사용한 치환표를 써서 암호화의역변환을 행하면 단일 치환 암호에 의한 복호화를 할 수 있다.

n 단일 치환 암호를 이용하여 암호화된 암호문을 복호화 하기 위해서는 암호화 때에 사용한치환표가 필요하므로 송신자와 수신자는 치환표를 공유하고 있어야 한다.

n 이 치환표가 단일 치환 암호의 「키」가 된다.

Page 21: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

21

2.2.4 단일 치환 암호의 키 공간

n kabsoonyee는 시저 암호(키는 3)로 암호화하면 NDEVRRQBHH이 된다.

n 한편, 단일 치환 암호(키는 그림 2-6 참조)로암호화하면 SWYLBBNKXX가 된다.

n NDEVRRQBHH와 SWYLBBNKXX은 모두 의미를 알 수 없다는 점에서는 비슷한 문자열이다.

n 이 암호문만을 보아서는 시저 암호와 단일 치환 암호 중 어느 쪽이 해독하기 어려운가를 판단할 수는 없다.

Page 22: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

22

단일치환 암호와 시저 암호

n 시저 암호는 전사공격으로 해독할 수 있다. 그러나 단일 치환 암호는 전사공격으로 해독하는것이 어렵다

n 단일 치환 암호가 시저 암호에 비해 훨씬 많은키의 후보를 가질 수 있다

Page 23: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

23

키 공간(key space)

n 키 공간(key space)

n 어떤 암호로 사용할 수 있는 「모든 키의 집합」

n 키 공간의 크기:

n 이 키 공간에 속하는 가능한 키의 총수

n 키 공간이 크면 클수록 전사공격은 어려워지게된다.

Page 24: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

24

단일 치환 암호의 키의 총수

n 단일 치환 암호의 키의 총수는

26 × 25 × 24 × 23 × … × 1 =

26! = 403291461126605635584000000

가 된다.

Page 25: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

25

전사공격의 어려움

n 이 정도로 키가 많으면 전사공격으로 조사하는 것은 매우 어렵다.

n 왜냐 하면, 아무리 빨리 키를 적용해 본다고해도 그 적용시간이 있기 때문에 모든 키를 적용해보는 데에는 상당한 시간이 필요하다.

n 예를 들면 1초에 10억 개의 키를 적용하는 속도로 조사한다고 해도, 모든 키를 조사하는 데120억년 이상의 시간이 걸리기 때문이다.

n 바른 키를 찾기까지의 평균 시간은 약 60억년

Page 26: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

26

2.2.5 빈도 분석에 의한 해독

A good glass in the bishop's hostel in the devil's seat forty-one degrees and thirteen minutes northeast and by north main branch seventh limb east side shoot from the left eye of the death's-head a bee line from the tree through the shot fifty feet out. - 애드가 앨런 포우『황금벌레』

Page 27: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

27

소설에 등장한 빈도분석

n 빈도분석 방법은 소설에 등장했는데

n 애드가 앨렌 포우의 ‘황금벌레’라는 소설과

n 아서 코난 도일의 ‘셜록홈즈 이야기’인 ‘춤추는 남자의 모험’

n 이 장의 맨 앞에 나와 있는 내용이 바로 알렌포우의 소설에 등장했던 암호문과 해독된 내용이다.

Page 28: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

28

소설 속의 암호

Page 29: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

29

최초의 빈도분석에 대한 자료

n 최초의 기록으로 남아있는 빈도분석에 대한내용은

n 9세기‘암호문 해독에관한 논고’에 등장하는아랍의 현학자 알킨디(al-Kindi)에 의해 제안된 것이다

Page 30: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

30

빈도분석

n 전사공격으로 단일 치환 암호를 해독하는 것은 어렵지만

n 빈도분석이라는 암호 해독법을 사용하면 단일치환 암호도 해독할 수가 있다.

n 빈도분석에서는 평문에 등장하는 문자의 빈도와 암호문에 나오는 문자의 빈도가 일치하는것을 이용하는 것이다.

Page 31: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

31

빈도분석의 예

n 암호문

MEYLGVIWAMEYOPINYZGWYEGMZRUUYPZAIXILGVSIZZMPGKKDWOMEPGROEIWGPCEIPAMDKKEYCIUYMGIFRWCEGLOPINYZHRZMPDNYWDWOGWITDWYSEDCEEIAFYYWMPIDWYAGTYPIKGLMXFPIWCEHRZMMEYMEDWOMGQRYWCEUXMEDPZMQRGMEEYAPISDWOFICJILYSNICYZEYMGGJIPRWIWAIHRUNIWAHRZMUDZZYAMEYFRWCEMRPWDWOPGRWAIOIDWSDMEIGWYMSGMEPYYEYHRUNYARNFRMSDMEWGOPYIMYPZRCCYZZIOIDWIWAIOIDWEYMPDYAILMYPMEYMWUNMDWOUGPZYKFRMIMKIZMEIAMGODTYDMRNIWASIKJYAISIXSDMEEDZWGZYDWMEYIDPZIXDWODIUZRPYMEYXIPYZGRPDMDZYIZXMGAYZNDZYSEIMXGRCIWWGMOYM

Page 32: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

32

빈도분석의 예

n 빈도조사 결과

Page 33: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

33

문자 출현 빈도

Page 34: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

34

최빈도를 갖는 문자를 e로 변환

n가장 빈도가 높은 I와 Y 중 하나를 e라고 가정한다. Y → e 라고 가정

MEeLGVIWAMEeOPINeZGWeEGMZRUUePZAIXILGVSIZZMPGKKDWOMEPGROEIWGPCEIPAMDKKEeCIUeMGIFRWCEGLOPINeZHRZMPDNeWDWOGWITDWeSEDCEEIAFeeWMPIDWeAGTePIKGLMXFPIWCEHRZMMEeMEDWOMGQReWCEUXMEDPZMQRGMEEeAPISDWOFICJILeSNICeZEeMGGJIPRWIWAIHRUNIWAHRZMUDZZeAMEeFRWCEMRPWDWOPGRWAIOIDWSDMEIGWeMSGMEPeeEeHRUNeARNFRMSDMEWGOPeIMePZRCCeZZIOIDWIWAIOIDWEeMPDeAILMePMEeMWUNMDWOUGPZeKFRMIMKIZMEIAMGODTeDMRNIWASIKJeAISIXSDMEEDZWGZeDWMEeIDPZIXDWODIUZRPeMEeXIPeZGRPDMDZeIZXMGAeZNDZeSEIMXGRCIWWGMOeM

Page 35: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

35

영어의‘the' 점검

n 영어에서 가장 자주 등장하는 단어는 “the”이다. 그러면, e로 끝나는 3문자의 패턴을 찾아보자.

n 그랬더니, MEe라는 3문자의 조합이 자주 나온다는 것을 알게 되었다.

n 게다가 MEe는 암호문의 맨 처음에도 나타나있다.

n MEe가 the일 가능성이 높은 것 같다.

n 그러므로 M→t, E→h라고 가정해 보자.

Page 36: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

36

점검 이후 익숙한 단어 추측

theLGVIWAtheOPINeZGWehGtZRUUePZAIXILGVSIZZtPGKKDWOthPGROhIWGPChIPAtDKKheCIUetGIFRWChGLOPINeZHRZtPDNeWDWOGWITDWeShDChhIAFeeWtPIDWeAGTePIKGLtXFPIWChHRZtthethDWOtGQReWChUXthDPZtQRGthheAPISDWOFICJILeSNICeZhetGGJIPRWIWAIHRUNIWAHRZtUDZZeAtheFRWChtRPWDWOPGRWAIOIDWSDthIGWetSGthPeeheHRUNeARNFRtSDthWGOPeItePZRCCeZZIOIDWIWAIOIDWhetPDeAILtePthetWUNtDWOUGPZeKFRtItKIZthIAtGODTeDtRNIWASIKJeAISIXSDthhDZWGZeDWtheIDPZIXDWODIUZRPetheXIPeZGRPDtDZeIZXtGAeZNDZeShItXGRCIWWGtOet

Page 37: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

37

아는 영어 단어 총동원

n 자신의 영어단어 지식을 총동원해서 위에서 있을 법한 패턴을 찾아본다.

n 중간쯤에 있는 thPee가 눈에 띤다. 이것은 three가 아닐까(P→r)?

n 이 문자열을 보고 있으면 여기저기에 he, re, re, ter와 같은 철자가 보이므로 단편적인 정보로 P→r은 바른 대응이라는 것을 알 수 있다

n 다음에 암호문의 마지막으로 눈을 돌려 보자.

n 제일 마지막의 Oet는 bet, get, set, … 중의 하나일것이다.

n 자주 사용되는 단어인 get라고 가정해 본다(O→g).

Page 38: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

38

단어 패턴

n 그 다음 발견한 패턴들과 가정한 대응 알파벳을 써 나가 보자.

n thethDWg라는 패턴이 보인다. 이것은 the thing일지도 모른다(D→i, W→n).

n grINe라는 패턴이 보인다. n 사전을 찾아보았더니, grace, grade, grape, grate,

grave, gripe, grofe, …처럼 많은 후보가 있다. n 이것으로는 결정을 할 수 없다. n I→a를 가정해 보면 greater라는 패턴이 나오므로

I→a는 맞는 것 같다. n 하지만, N→c를 가정하면 tricening라는 패턴이 나왔

다. n 이런 단어는 영어 단어에 없는 것 같다. n 따라서 N→c는 잘못일지도 모른다.

Page 39: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

39

빈도 추측

n 영어에서 빈도가 높은 문자 중 아직 가정에 등장하지 않은 문자는 o 이다.

n 한편 암호문 중에 등장하는 빈도가 높은 문자로서 아직 모르는 것은 G와 Z이다.

n 여기서 G→o를 가정해 보자.

n 여기까지의 가정을 써서 암호문을 다시 읽는다.

Page 40: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

40

지금까지 정리하면

theLoVanAthegraNeZonehotZRUUerZAaXaLoVSaZZtroKKingthroRghanorCharAtiKKheCaUetoaFRnChoLgraNeZHRZtriNeningonaTineShiChhaAFeentraineAoTeraKoLtXFranChHRZtthethingtoQRenChUXthirZtQRothheAraSingFaCJaLeSNaCeZhetooJarRnanAaHRUNanAHRZtUiZZeAtheFRnChtRrningroRnAagainSithaonetSothreeheHRUNeARNFRtSithnogreaterZRCCeZZagainanAagainhetrieAaLterthetnUNtingUorZeKFRtatKaZthaAtogiTeitRNanASaKJeAaSaXSithhiZnoZeintheairZaXingiaUZRretheXareZoRritiZeaZXtoAeZNiZeShatXoRCannotget

Page 41: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

41

패턴을 더 들여다 본다

n 끝에 Cannotget이라는 패턴이 등장했다.

n C→c가 틀림없다.

n C→c라는 것을 통해 조금 전에 생각한 N→c는 역시 잘못이라는 것을 알 수 있다.

Page 42: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

42

지금까지 내용을 정리해보자

theLoVanAthegraNeZonehotZRUUerZAaXaLoVSaZZtroKKingthroRghanorcharAtiKKhecaUetoaFRnchoLgraNeZHRZtriNeningonaTineShichhaAFeentraineAoTeraKoLtXFranchHRZtthethingtoQRenchUXthirZtQRothheAraSingFacJaLeSNaceZhetooJarRnanAaHRUNanAHRZtUiZZeAtheFRnchtRrningroRnAagainSithaonetSothreeheHRUNeARNFRtSithnogreaterZRcceZZagainanAagainhetrieAaLterthetnUNtingUorZeKFRtatKaZthaAtogiTeitRNanASaKJeAaSaXSithhiZnoZeintheairZaXingiaUZRretheXareZoRritiZeaZXtoAeZNiZeShatXoRcannotget

Which일 것이다그래서 S→w

Page 43: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

43

빈도가 낮은 문자 추측

n 빈도가 높은 문자뿐만 아니라 암호문 중에서 빈도가낮은 문자인 Q를 포함하는 패턴을 찾아보자.

n thethingtoQRench라는 패턴이 찾아졌다.

n 이것은 분명히 the thing to QRench이다. 사전을 찾아보니 quench라는 단어가 있었다(Q→q, R→u). quench라는 것은 「갈증을 해소하다」라는 의미이다. 마시는 것에 관한 이야기가 아닐까?

n hotZuUUer라는 패턴이 찾아졌다. 이것은 hot summer일 것이다(Z→s, U→m). U가 두 개 연속해있다는 것이 큰 실마리였다. 「갈증을 해소하다」라는 문맥과도 일치한다.

Page 44: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

44

다시 정리해보자

theLoVanAthegraNesonehotsummersAaXaLoVwasstroKKingthroughanorcharAtiKKhecametoaFunchoLgraNesHustriNeningonaTinewhichhaAFeentraineAoTeraKoLtXFranchHustthethingtoquenchmXthirstquothheArawingFacJaLewNaceshetooJarunanAaHumNanAHustmisseAtheFunchturningrounAagainwithaonetwothreeheHumNeAuNFutwithnogreatersuccessagainanAagainhetrieAaLterthetnmNtingmorseKFutatKasthaAtogiTeituNanAwaKJeAawaXwithhisnoseintheairsaXingiamsuretheXaresouritiseasXtoAesNisewhatXoucannotget

Page 45: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

45

단어와 내용 추측

n sucessagainanAagain라는 패턴이 있다. 이것은 success again and again일 것이다(A→d).

n triedaLter라는 패턴이 보인다. 이것은 틀림없이 tried after이다(L→f).

n whatXoucannotget라는 패턴이 보인다. 이것은 what you cannot get일 것이다(X→y).

Page 46: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

46

또 다시 정리하면

thefoVandthegraNesonehotsummersdayafoVwasstroKKingthroughanorchardtiKKhecametoaFunchofgraNesHustriNeningonaTinewhichhadFeentrainedoTeraKoftyFranchHustthethingtoquenchmythirstquothhedrawingFacJafewNaceshetooJarunandaHumNandHustmissedtheFunchturningroundagainwithaonetwothreeheHumNeduNFutwithnogreatersuccessagainandagainhetriedafterthetnmNtingmorseKFutatKasthadtogiTeituNandwaKJedawaywithhisnoseintheairsayingiamsuretheyaresouritiseasytodesNisewhatyoucannotget

the fox and the grapes one hot summer sday(V→x, N→p)

Page 47: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

47

좀더 정리해보면

thefoxandthegrapesonehotsummersdayafoxwasstroKKingthroughanorchardtiKKhecametoaFunchofgrapesHustripeningonaTinewhichhadFeentrainedoTeraKoftyFranchHustthethingtoquenchmythirstquothhedrawingFacJafewpaceshetooJarunandaHumpandHustmissedtheFunchturningroundagainwithaonetwothreeheHumpedupFutwithnogreatersuccessagainandagainhetriedafterthetnmptingmorseKFutatKasthadtogiTeitupandwaKJedawaywithhisnoseintheairsayingiamsuretheyaresouritiseasytodespisewhatyoucannotget

소문자의 비율이 늘어서 이제 거의 해독이 끝났다는 것을 알 수 있다.

Page 48: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

48

남은 사항을 처리하면

n foxwasstroKKing = fox was strolling (K → l)

n hetooJarunandaHumpandHustmissed

= he took a run and a jump and just missed (H → j) , (J → k)

n hejumpedupFutwithnogreatersuccess

= he jumped up but with no greater success (F → b)

n butatlasthadtogiTeitup

= but at last had to give it up (T → v)

n 이 암호문에 나오지 않은 마지막 1문자 (B → z)

n 이것으로 전부 해독이 되었다!

Page 49: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

49

종합한 암호화 치환 키

RG S

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

QUA KC BD XZO W VTMNJEL HI YF P

Page 50: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

50

해독된 평문

thefoxandthegrapesonehotsummersdayafoxwasstrollingthroughanorchardtilhecametoabunchofgrapesjustripeningonavinewhichhadbeentrainedoveraloftybranchjustthetoquenchmythirstquothhedrawingbackafewpaceshetookarunandajumpandjustmissedthebunchturningroundagainwithonetwothreehejumpedupbutwithnogreatersuccessagainandagainhetriedafterthetemptingmorselbutatlasthadtogiveitupandwalkedawaywithhisnoseintheairsayingiamsuretheyaresouritiseasytodespisewhatyoucannotget

Page 51: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

51

띄어쓰기가 끝난 평문

"The Fox and the Grapes"

One hot summer's day, a Fox was strolling through an orchard till he came to a bunch f grapes just ripening on a vine which had been trained over a lofty branch. "Just the to quench my thirst, "quoth he. Drawing back a few paces, he took a run and a jump, and just missed the bunch. Turning round again with one , two, three, he jumped up, but with no greater success. Again and again he tried after the tempting morsel, but at last had to give it up, and walked away with his nose in the air, saying: "I am sure they are sour." It is easy to despise what you cannot get.

Page 52: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

52

해독작업의 결과

n 빈도가 높은 문자뿐만 아니라 빈도가 낮은 문자도 단서가 된다.

n 처음과 끝을 아는 것은 단서가 된다. 단어의 단락을 알면 그것도 단서가 될 수 있다.

n 암호문이 길면 해독이 쉬워진다.

n 같은 문자가 연속해서 나타나면 그것은 단서가된다

n 해독의 속도가 점점 빨라진다.

Page 53: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

53

2.3 다중 치환암호

n 단일 치환암호의 약점

n 평문과 암호문간의 단순 대응을 사용하기 때문에 평문의 단일 문자에 대한 빈도가 그대로 암호문에 반영된다.

n 따라서 암호해독자로 하여금 빈도분석을 어렵게 하기 위해서는 암호문에 나타나는 문자들의 빈도를 거의 균등하게 만드는 암호를 이용하는 것이 바람직하다.

Page 54: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

54

다중 치환암호(Polyalphabetic Substitution Cipher)

n 에서는 다중 치환을 이용하여 문자의 발생빈도를 균일화 한다.

n 다중 치환암호 방법의 대표적인 예

n 비제네르(Vigenere) 암호

n 힐(Hill) 암호.

Page 55: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

55

치환 기법

n Hill 암호 기법n 각 문자에 정수 값을 부여하고 m개의 문자를 치환

n M=3개는 3개의 문자를 치환하는 방법

CC11 == (k(k1111 pp11 ++ kk1212 pp22 ++ kk1313 pp33 )) modmod 2626CC22 == (k(k2121 pp11 ++ kk2222 pp22 ++ kk2323 pp33 )) modmod 2626C3 = (k31 p1 + k32 p2 + k33 p3 ) mod 26C3 = (k31 p1 + k32 p2 + k33 p3 ) mod 26

C: C: 암호문암호문PP:: 평문평문kk:: 키키

Page 56: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

56

치환 기법

n 암호문 형식을 열 벡터와 행렬로 표현

n 암호화 사례

n 평문: PAYMOREMONEY

n 암호 키

C1 k11 k12 k13 P1C1 k11 k12 k13 P1C2 = k21 k22 k23 P2C2 = k21 k22 k23 P2C3 k31 k32 k33 P3 C3 k31 k32 k33 P3

17 17 517 17 5K = 21 18 21K = 21 18 21

2 2 192 2 19

Page 57: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

57

치환 기법

n 암호문 계산

n 평문을 숫자변환è PAYMOREMONEY: P è15, A è 0, Y è 24, …

n 숫자 대입 암호문 치환

n K(15 0 24) + (375 819 486) mod 26 = (11 13 18) = LNSn C1 = 17 x 15 + 17 x 0 + 5 x 24 = 375 mod 26 = 14 … …11n C2 = 21 x 15 + 18 x 0 + 21 x 24 = 819 mod 26 = 31 … …13n C3 = 2 x 15 + 2 x 0 + 19 x 24 = 486 mod 26 = 18 … …18

C1 k11 k12 k13 P1C1 k11 k12 k13 P1C2 = k21 k22 k23 P2C2 = k21 k22 k23 P2C3 k31 k32 k33 P3 C3 k31 k32 k33 P3

C1 17 17 5 15C1 17 17 5 15C2 = 21 18 21 0 mod 26 C2 = 21 18 21 0 mod 26 èèC3 2 2 19 24C3 2 2 19 24

1111131318 18

LLNNSS

Page 58: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

58

치환 기법

n 복호문 계산n 암호문 계산 형식 C = EK(P) = KP에서

n 평문 P = DK(C) = K-1C = K-1KP = P; 여기서, K-1는 역행열: K-1K = I

n 역행렬 계산

P1 4 9 15 11P1 4 9 15 11P2 = 15 17 6 13 mod 26 P2 = 15 17 6 13 mod 26 èèP3 24 0 7 18P3 24 0 7 18

15150024 24

PPAAYY

17 17 15 4 9 15 443 442 442 1 0 017 17 15 4 9 15 443 442 442 1 0 021 18 2 15 17 6 = 858 495 780 mod 26 21 18 2 15 17 6 = 858 495 780 mod 26 èè 0 1 00 1 02 2 19 24 0 7 494 52 365 0 0 12 2 19 24 0 7 494 52 365 0 0 1

Page 59: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

59

치환 기법

n 다중 단일 문자 치환 암호 기법

n 관련된 단일 문자 치환 규칙들의 집합을 사용함

n 주어진 변환에 사용될 특정 규칙은 키에 의해 결정됨

n 대표적인 Vigenere 암호 방식

n 행렬표를 구성

n 키 문자 x와 평문자 y가 주어지면 암호 문자는 x행 y 열의 암호문 V

n 키 : deceptive

n 평문 : we are discovered save yourself

n 평문 길이 만큼 키 크기가 필요

n 언어의 특징을 모두 없애지 못함

키 d e c e p t i v e d e c e p t i v e d e c e p t i v e

평문 w e a r e d i s c o v e r e d s a v e y o u r s e l f

암호문

Z I C V T W Q N G R Z G V T W A V Z H C Q Y G L M G J

Page 60: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

60

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

a 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

b 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 A

c C D E F G H I J K L M N O P Q R S T U V W X Y Z A B

d D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

e E F G H I J K L M N O P Q R S T U V W X Y Z A B C D

f F G H I J K L M N O P Q R S T U V W X Y Z A B C D E

g G H I J K L M N O P Q R S T U V W X Y Z A B C D E F

h H I J K L M N O P Q R S T U V W X Y Z A B C D E F G

i I J K L M N O P Q R S T U V W X Y Z A B C D E F G H

j J K L M N O P Q R S T U V W X Y Z A B C D E F G H I

k K L M N O P Q R S T U V W X Y Z A B C D E F G H I J

l L M N O P Q R S T U V W X Y Z A B C D E F G H I J K

m M N O P Q R S T U V W X Y Z A B C D E F G H I J K L

n N O P Q R S T U V W X Y Z A B C D E F G H I J K L M

o O P Q R S T U V W X Y Z A B C D E F G H I J K L M N

p P Q R S T U V W X Y Z A B C D E F G H I J K L M N O

q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P

r R S T U V W X Y Z A B C D E F G H I J K L M N O P Q

s S T U V W X Y Z A B C D E F G H I J K L M N O P Q R

t T U V W X Y Z A B C D E F G H I J K L M N O P Q R S

u U V W X Y Z A B C D E F G H I J K L M N O P Q R S T

현대

VIGENRE

Page 61: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

61

2.4 애니그마

n 제2차 세계대전 중에 독일에서 사용된 암호기계

n 「애니그마」란?

Page 62: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

62

2.4.1 애니그마란

n 독일의 세르비우스에 의해 20세기 초에 발명된, 암호화/복호화를 행하는 기계이다.

n 애니그마라는 이름은 독일어로 「수수께끼」를 의미한다.

Page 63: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

63

애니그마와 애니그마의 내부에 사용되는 로터

Page 64: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

64

2.4.2 애니그마에 의한 암호통신

n 송신자와 수신자는 애니그마를 1 대씩 가지고있어야 한다.

n 송신자와 수신자가 같은 키를 사용하지 않으면 암호통신은 할 수 없으므로 송신자와 수신자는사전에 코드북을 가지고 있다

n 코드북에는 송/수신자가 사용하는 날짜별 키가기록

n 송신자/수신자는 이 책자의 지시에 따라 애니그마를 설정한다.

Page 65: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

65

애니그마에서 사용된 코드북

Page 66: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

66

2.4.3 애니그마의 구조

n 입력용 키보드의 키를 하나 누르면 전기신호가 복잡한 회로를 거쳐 최종적으로 출력용 램프가 점등한다.

n 그림 2-13에서는 a의 키를 눌렀을 때 D 램프가 점등하는 모습을 보이고 있다.

Page 67: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

67

애니그마를 사용한 암호통신의 흐름

Page 68: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

68

애니그마의 구조(알파벳의 수를 4문자로 했을 경우)

Page 69: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

69

로터

Page 70: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

70

2.4.4 애니그마의 암호화

n 예: 송신자가 독일어로 nacht(밤)이라는 5 문자를 암호화해서 송신하는 방법

Page 71: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

71

애니그마의 설정

n 송신자는 코드북을 참조해서 「그 날의 날짜별 키」를 조사하여 그 날짜별 키대로 애니그마를 설정한다. 구체적으로는 플러그 보드의연결선을 연결하고, 3장의 로터의 배열을 바꾸게 된다.

Page 72: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

72

통신키의 암호화

n 송신자는 알파벳 3문자를 정하고 암호화한다. 이 알파벳 3 문자를 통신 키라고 한다.

n 통신 키의 암호화는 애니그마를 써서 행한다. 지금 송신자가 고른 통신키가 psv라고 하면, 송신자는 애니그마의 키보드로 통신키를 2회 연속해서 친다.

n 즉, psvpsv라는 6 문자를 치게 된다.

n 한 문자 칠 때마다 로터가 회전하고 램프가 켜진다.

n 송신자는 점등된 램프에 대응한 문자를 메모한다.

n 6 문자를 다 치면 점등한 6 문자가 메모되어 있게 된다. 여기서는 점등된 램프의 6문자가 ATCDVT라고 하자

Page 73: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

73

애니그마의 재설정

n 다음에 송신자는 통신키에 따라 애니그마의재설정을 행한다.

n 실은 통신키의 알파벳 3문자는 3장의 로터의설정각도를 나타내고 있다.

n 1장의 로터 주위에는 목표 문자가 기록되어있고, 문자에 대응한 각도를 설정할 수 있게되어 있다.

n 통신키 psv는 로터1, 2, 3을 각각 p의 각도, s의 각도, v의 각도로 한다는 것을 의미한다.

Page 74: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

74

메시지의 암호화

n 다음에 송신자는 메시지를 암호화한다.

n 송신자는 메시지(평문)를 한 문자 한 문자 키보드로 입력하고 그 결과를 램프에서 읽어서메모한다.

n 여기에서는 natch라는 5문자를 키로 입력하고, 결과의 5문자(예를 들면 KXNWP)를 메모하게 된다.

Page 75: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

75

nacht(밤)이라는 5 문자를 암호화해서 송신하는 방법

Page 76: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

76

결합

n 마지막으로 송신자는 「암호화된 통신키」ATCDVT와 「암호화된 메시지」KXNWP를 결합하여 ATCDVT KXNWP라는 통신문을 무선으로 송신한다.

Page 77: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

77

2.4.5 「날짜별 키」와 「통신키」

n 날짜별 키는 메시지의 암호화가 아니라 통신키의 암호화에 사용되었다.

n 즉, 날짜별 키는 「키를 암호화하기 위한 키」가 된다.

n 이와 같은 키를 가리켜 일반적으로 키 암호 키(key encrypting key ; KEK)라고 부른다.

Page 78: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

78

2.4.6 통신 오류의 회피

n 애니그마가 사용된 시대는 무선 기술이 충분히 발달하지 않아서 통신이 제대로 되지 않는경우가 많이 있었기 때문이다.

n 통신 키가 바르게 보내지지 않으면 수신자가통신문을 복호화 할 수 없다.

n psvpsv라고 통신키를 2회 연속해서 키를 쳐서 암호화하면 수신자 측에서 통신 키를 검증할 수 있다.

Page 79: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

79

2.4.7 애니그마의 복호화

n 분해

n 수신한 통신문 처음의 6 문자 ATCDVT와 나머지 문자 KXNWP를 분리

n 애니그마의 설정

n 코드북을 참조해서 「그 날의 날짜별 키」를 조사하여 그 날짜별 키대로 애니그마를 설정

n 통신키의 복호화

n 수신자는 암호화된 통신키 ATCDVT를 복호화한다.

n 수신자는 애니그마의 키보드로 ATCDVT라는 6 문자를 쳐서 불이 켜지는 6문자 psvpsv를 메모한다

Page 80: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

80

2.4.7 애니그마의 복호화

n 애니그마의 재설정

n 수신자는 통신키 psv를 이용하여 애니그마를재설정

n 메시지의 복호화

n 메시지를 복호화한다.

n 통신문의 나머지 KXNWP를 한 문자 한 문자 키보드로 입력하고 그 결과를 램프에서 읽어 메모한다.

n natch라는 5 문자가 메모되는 것을 알 수 있고송신자로부터 전송된 메시지의 복호화가 끝나게 된다.

Page 81: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

81

애니그마를 사용한 복호화

Page 82: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

82

2.4.8 애니그마의 약점

n 「통신 키의 암호화」라는 중요한 처리(처음에키를 6번 치는 것) 동안 실제로 회전하는 것은로터1뿐이다.

n 「통신키를 2회 반복한 것을 암호화 한다」

n 「통신키를 선택한 것이 사람이다」

n 「코드북을 배송하지 않으면 안 된다」

Page 83: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

83

2.4.9 애니그마의 해독

n 해독의 시작은 프랑스와 영국의 암호 해독자가 스파이 활동으로 독일군이 사용하고 있는애니그마의 구조정보를 입수

n 프랑스로부터 정보제공을 받은 폴란드의 암호해독자 르예프스키였다.

n 르예프스키는 날짜별 키에 의한 암호문으로부터 날짜별 키를 간파하는 방법을 고안하였다.

n 대량의 암호문을 근거로 해서 약 2시간 만에날짜별 키를 찾아낼 수 있었다

Page 84: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

84

2.5 암호 알고리즘과 키

n 지금까지 우리가 본 암호 알고리즘에서는 키를 항상 사용하였는데 왜 키를 사용하는 것일까?

Page 85: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

85

2.5.1 암호 알고리즘과 키의 분리

암호명 암호 알고리즘 키

시저 암호평문의 각 문자를 ‘지정한 문자 수’만큼 평행 이동한다.

평행 이동하는문자 수

단일 치환 암호 치환표에 따라 알파벳을 변환한다. 치환표

애니그마(통신키의암호화)

애니그마의 기계를 써서 『플러그 보드의 연결선, 3장의 로터의 순서, 각 로터의 설치 각도』에 따라 알파벳을 변환한다.

• 플러그 보드의연결선• 3장의 로터순서• 각 로터의설치 각도

애니그마(통신문의암호화)

플러그 보드의 연결선과 3장의 로터의순서를 고정한 애니그마 기계를 사용하여 『각 로터의 설치 각도』에 따라 알파벳을 변환한다.

각 로터의 설치각도

Page 86: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

86

암호알고리즘과 키의 관계

n 이와 같이 「암호 알고리즘」과 「키」의 조합을 잘 조사해 보면 암호 알고리즘 안에는「변경 가능한 부분」이 반드시 포함되어 있다는 것을 알 수 있다.

n 암호 알고리즘 안의 「변경 가능한 부분」이「키」에 해당한다.

Page 87: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

87

「암호 알고리즘」과 「키」를 나누어 생각한다

Page 88: chap02 [호환 모드]parkjonghyuk.net/lecture/2011-1st-lecture/modernCrypto/... · 2011-03-01 · 14 2.2 단일치환암호 n알파벳26문자를무작위순서로나열하여얻

88

질의 및 응답

- 끝-