chapter 2 암호 기초

44
1 Chapter 2 암암 암암

Upload: efrat

Post on 10-Feb-2016

117 views

Category:

Documents


0 download

DESCRIPTION

Chapter 2 암호 기초. Crypto. 암호학 (Cryptology) “ 비밀 코드 ” 를 만들거나 해독하는 기술과 과학 Cryptography “ 비밀 코드 ” 를 만드는 법 암호 분석 (Cryptanalysis) “ 비밀 코드 ” 를 해독하는 법 Crypto 위의 모든 것 ( 과 그 이상 ) 을 지칭한다. 암호 체계 (Crypto). Key ( 암호화 키 ). key. Plaintext ( 평문 ). plaintext. Encrypt ( 암호화 ). Decrypt - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 2  암호 기초

1

Chapter 2 암호 기초

Page 2: Chapter 2  암호 기초

Chapter 2 Crypto Basics 2

Crypto 암호학 (Cryptology)

“ 비밀 코드” 를 만들거나 해독하는 기술과 과학 Cryptography

“ 비밀 코드” 를 만드는 법 암호 분석 (Cryptanalysis)

“ 비밀 코드” 를 해독하는 법 Crypto

위의 모든 것 ( 과 그 이상 ) 을 지칭한다 .

Page 3: Chapter 2  암호 기초

Chapter 2 Crypto Basics 3

암호 체계 (Crypto)

Plaintext ( 평문 )

key Key( 암호화 키 )

plaintext

Ciphertext ( 암호문 )

Encrypt( 암호화 )

Decrypt( 복호화 )

Page 4: Chapter 2  암호 기초

Chapter 2 Crypto Basics 4

Crypto 에서의 용어들 암호 체계 (cipher or cryptosystem)

평문 (plaintext) 을 암호화 (encrypt) 하는데 사용 암호문 (ciphertext)

암호화된 결과 복호화 (decrypt)

암호문을 평문으로 복원 키 (key)

암호체계를 만드는데 사용 대칭키 (symmetric key)

같은 키를 암호화와 복호화를 위해 사용 공개키 (public key)

공개키 (public key) 는 암호화 , 개인키 ( private key) 는 복화화에 사용

Page 5: Chapter 2  암호 기초

Chapter 2 Crypto Basics 5

Crypto 기본 가정

암호체계는 완전히 공격자에게 알려져 있고 , 오직 키 (Key) 만이 유일한 비밀이다 .

커크호프의 원칙 ( Kerckhoffs Principle) 암호 알고리즘은 비밀이 아니다 .

왜 이런 가정을 하는가 ? 경험적으로 볼 때 , 비밀 알고리즘들은 ( 공개되었을

때 ) 알고리즘 자체는 강력하지 않을 경우가 많다 . 비밀 알고리즘은 결국 공개된다 . 사전에 취약점을 발견하는 것이 유리하다 .

Page 6: Chapter 2  암호 기초

고전적인 암호 알고리즘

치환 이중 전위 (double transposition) 일회성 암호 (one-time pad) 코드북 (codebook)

Page 7: Chapter 2  암호 기초

Chapter 2 Crypto Basics 7

단순 치환 (Simple Substitution) Plaintext: fourscoreandsevenyearsago Key:

a b c d e f g h i j k l mn o p q r s t u v w x y zD E F G H I J K L M N O P Q R S T U V WX Y Z A B C

Ciphertext: IRXUVFRUHDAGVHYHABHDUVDIR

시저 암호 (Caesar’s cipher): 세자리 만큼 이동

Plaintext Ciphertext

Page 8: Chapter 2  암호 기초

Chapter 2 Crypto Basics 8

시저 암호의 복호화(Decryption)

Plaintext: spongebobsquarepants

Ciphertext: VSRQJHEREVTXDUHSDQWU

a b c d e f g h i j k l mn o p q r s t u v w x y zD E F G H I J K L M N O P Q R S T U V WX Y Z A B C

Plaintext Ciphertext

Page 9: Chapter 2  암호 기초

Chapter 2 Crypto Basics 9

단순하지 않은 치환

n 만큼 이동 , n {0,1,2,…,25} 키 (key) 는 n 예 : key = 7

a b c d e f g h i j k l mn o p q r s t u v w x y zH I J K L M N O P Q R S T U V WX Y Z A B C D E F G

Plaintext Ciphertext

Page 10: Chapter 2  암호 기초

Chapter 2 Crypto Basics 10

암호 분석 (Cryptanalysis) I: 모든 경우를 시도한다

주어진 조건 단순 치환 사용 (n 만큼 이동 ) 그러나 키는 알려져 있지 않다 . 주어진 암호문 : meqefscerhcsyeviekmvp

어떻게 키를 찾을 것인가 ? Exhaustive key search

가능한 키는 오직 26 가지 모두 시도해 본다 ! 해답 : key = 4 IAMABOYANDYOUAREAGIRL

Page 11: Chapter 2  암호 기초

Chapter 2 Crypto Basics 11

문자열의 순열에 의한 치환

Key 는 문자의 어떤 순열이다 . 문자를 이동 ( shift) 할 필요가 없다 . 예

그러면 26! > 288 개의 가능한 키가 존재한다 !

이 방법은 처음 1000 년간 비밀 코드를 만드는 기술을 지배하였다 .

a b c d e f g h i j k l mn o p q r s t u v w x y zJ I C A X S E Y V D K WB Q T Z R H F M P N U L G O

Plaintext Ciphertext

Page 12: Chapter 2  암호 기초

Chapter 2 Crypto Basics 12

암호분석 II: 잘 생각하자 ! 단순 치환이 사용되었다는 것을 알고 있다 . 그러나 n 자리수의 이동일 필요는 없다 . 다음의 암호문의 키를 찾아낼 수 있는가 :

PBFPVYFBQXZTYFPBFEQJHDXXQVAPTPQJKTOYQWIPBVWLXTOXBTFXQWAXBVCXQWAXFQJVWLEQNTOZQGGQLFXQWAKVWLXQWAEBIPBFXFQVXGTVJVWLBTPQWAEBFPBFHCVLXBQUFEVWLXGDPEQVPQGVPPBFTIXPFHXZHVFAGFOTHFEFBQUFTDHZBQPOTHXTYFTODXQHFTDPTOGHFQPBQWAQJJTODXQHFOQPWTBDHHIXQVAPBFZQHCFWPFHPBFIPBQWKFABVYYDZBOTHPBQPQJTQOTOGHFQAPBFEQJHDXXQVAVXEBQPEFZBVFOJIWFFACFCCFHQWAUVWFLQHGFXVAFXQHFUFHILTTAVWAFFAWTEVOITDHFHFQAITIXPFHXAFQHEFZQWGFLVWPTOFFA

Page 13: Chapter 2  암호 기초

Chapter 2 Crypto Basics 13

암호분석 II 모든 288 가지의 치환될 수 있는 키를 고려할

필요는 없다 . 좀 더 현명할 수는 없을까 ?

0.00

0.02

0.04

0.06

0.08

0.10

0.12

0.14

A C E G I K M O Q S U W Y

영어 알파벳의 빈도수…

Page 14: Chapter 2  암호 기초

Chapter 2 Crypto Basics 14

암호분석 II Ciphertext:

PBFPVYFBQXZTYFPBFEQJHDXXQVAPTPQJKTOYQWIPBVWLXTOXBTFXQWAXBVCXQWAXFQJVWLEQNTOZQGGQLFXQWAKVWLXQWAEBIPBFXFQVXGTVJVWLBTPQWAEBFPBFHCVLXBQUFEVWLXGDPEQVPQGVPPBFTIXPFHXZHVFAGFOTHFEFBQUFTDHZBQPOTHXTYFTODXQHFTDPTOGHFQPBQWAQJJTODXQHFOQPWTBDHHIXQVAPBFZQHCFWPFHPBFIPBQWKFABVYYDZBOTHPBQPQJTQOTOGHFQAPBFEQJHDXXQVAVXEBQPEFZBVFOJIWFFACFCCFHQWAUVWFLQHGFXVAFXQHFUFHILTTAVWAFFAWTEVOITDHFHFQAITIXPFHXAFQHEFZQWGFLVWPTOFFA

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 Z21 26 6 10 12 51 10 25 10 9 3 10 0 1 15 28 42 0 0 27 4 24 22 28 6 8

암호문에서의 알파벳 빈도수 : 다음의 정보를 기반으로 복호화를 한다 .

Page 15: Chapter 2  암호 기초

빈도수 분석 (Frequency analysis) 의 역사

아랍인에 의해서 발견 빈도수 분석에 대한 최초의 기록은 9 세기 과학자

Al Kindi 의 책에서 찾아볼 수 있다 . (Abū Yūsuf Yaqūb ibn Isḥāq al-Kindī, Arabic: .c) (أبو يوسف يعقوب إبن إسحاق الكندي801–873 CE), (Alkindus)

르네상스 때 아랍인에 의해서 유럽에 소개 빈도수 분석으로 치환 방법은 더 이상 안전한

암호화 알고리즘이 되지 않았다 .

Chapter 2 Crypto Basics 15

Page 16: Chapter 2  암호 기초

Chapter 2 Crypto Basics 16

암호체계가 안전하다는 말의 뜻은 ? 암호를 해석하기 위해서 알려진 최선의

공격 방법은 모든 키를 다 시도해 보는 것일 때 이 암호 체계는 안전하다고 한다 . (Cryptosystem is secure)

암호를 해석하는데 어떤 지름길이 있다면 그 암호체계는 불안전하다고 한다 . (Cryptosystem is insecure)

이 정의에 의하면 불안전한 암호체계가 안전한 암호체계 보다도 해석하기 더 어려울 수도 있다 !

Page 17: Chapter 2  암호 기초

Chapter 2 Crypto Basics 17

이중 전위 (Double Transposition) Plaintext: attackxatxdawn

Permute rowsand columns

Ciphertext: xtawxnattxadakc Key: 행렬의 크기와 순열

(3,5,1,4,2) and (1,3,2)

Page 18: Chapter 2  암호 기초

일회성 암호 (One-time Pad) Vernam cipher 증명된 안전한 (provably secure) 암호

체계 그러나 실제 세계에서 사용하기에는

현실성이 없다 . 일회성 키는 랜덤하게 선택된 메시지와

동일한 길이의 스트링 비트로 구성된다 .

Chapter 2 Crypto Basics 18

Page 19: Chapter 2  암호 기초

Chapter 2 Crypto Basics 19

일회성 암호의 암호화

e=000 h=001 i=010 k=011 l=100 r=101 s=110 t=111

Encryption: Plaintext Key = Ciphertext

Ph e i l h i t l e r001 000 010 100 001 010 111 100 000 101

K 111 101 110 101 111 100 000 101 110 000

C 110 101 100 001 110 110 111 001 110 101

s r l h s s t h s r

오직 8 개의 알파벳이 있다고 가정하자 .

Page 20: Chapter 2  암호 기초

Chapter 2 Crypto Basics 20

일회성 암호의 복호화

e=000 h=001 i=010 k=011 l=100 r=101 s=110 t=111

Decryption: Ciphertext Key = Plaintext

Cs r l h s s t h s r110 101 100 001 110 110 111 001 110 101

K 111 101 110 101 111 100 000 101 110 000

P001 000 010 100 001 010 111 100 000 101

h e i l h i t l e r

Page 21: Chapter 2  암호 기초

Chapter 2 Crypto Basics 21

일회성 암호 (One-time Pad)이중 첩자는 송신자가 다음의 “ 키” 를 사용했다고 주장한다 .

e=000 h=001 i=010 k=011 l=100 r=101 s=110 t=111

Cs r l h s s t h s r

110 101 100 001 110 110 111 001 110 101

K 101 111 000 101 111 100 000 101 110 000

P011 010 100 100 001 010 111 100 000 101

k i l l h i t l e r

Page 22: Chapter 2  암호 기초

Chapter 2 Crypto Basics 22

일회성 암호 (One-time Pad)체포된 송신자는 “ 키” 는 다음과 같다고 주장한다 .

Cs r l h s s t h s r

110 101 100 001 110 110 111 001 110 101

K 111 101 000 011 101 110 001 011 101 101

P001 000 100 010 011 000 110 010 011 000

h e l i k e s i k e

e=000 h=001 i=010 k=011 l=100 r=101 s=110 t=111

Page 23: Chapter 2  암호 기초

Chapter 2 Crypto Basics 23

일회성 암호 정리

증명된 안전성 (Provably secure), ( 올바로 사용될 때 ) 암호문은 평문에 대한 어떤 정보도 제공하지 않는다 . 모든 평문이 만들어질 가능성은 동일하다 . 키 (Pad) 는 임의의 값이며 단지 한번만 사용된다 . 키 (Pad) 는 오직 송신자와 수신자만 알고 있다 . 키 (Pad) 는 메시지와 동일한 크기이다 . 메시지의 무결성을 제공하지 않는다 .

의문 : 키 (pad) 를 안전하게 전달할 수 있다면 메시지 자체를 전달하면 되지 않겠는가 ?

Page 24: Chapter 2  암호 기초

Chapter 2 Crypto Basics 24

실제 세계에서의 일회성 암호 예

프로젝트 VENONA US 와 UK 의 정보기관 간에 오랫동안 지속된 고도의

비밀 협력 (1943 년부터 1980 년까지 지속 ) 1940 년대 미국으로부터 전송된 소련 스파이의

메시지의 암호 해석을 목적으로 함 핵무기에 대한 첩자 행위 등 수천의 메시지 전송

스파이는 미국에 일회성 암호 반입 스파이는 키를 비밀 메시지를 암호화하는데 사용 일회성 키의 반복 사용이 암호 해석이 가능하도록

했다 .

Page 25: Chapter 2  암호 기초

Chapter 2 Crypto Basics 25

VENONA 암호 해석 (1944)

“Ruth” == Ruth Greenglass “Liberal” == Julius Rosenberg “Enormous” == the atomic bomb

Page 26: Chapter 2  암호 기초

Chapter 2 Crypto Basics 26

코드북 (Codebook) 말 그대로 “ 코드 워드” 로 채워진 책이다 . Zimmerman Telegram 은 5-digit

코드워드로 이루어진 코드북으로 암호화되었다 .Februar 13605fest 13732finanzielle 13850folgender 13918Frieden17142Friedenschluss 17149: :

현대의 블록 암호들은 코드북이다 .

Page 27: Chapter 2  암호 기초

Chapter 2 Crypto Basics 27

ZimmermanTelegram 현재까지 알려진 가장

유명한 코드북의 하나 독일의 외상이 멕시코

대사에게 보낸 전문으로 멕시코를 우방으로 회유할 목적

미국이 1차세계대전에 참여하도록 했다 .

우측에 있는 것이 암호문이다 .

Page 28: Chapter 2  암호 기초

Chapter 2 Crypto Basics 28

해석된 ZimmermanTelegram 러시아는

코드북을 부분적으로 복원하여 영국에 넘겨줌 .

영국은 빠진 부분을 보충하여 해독

Page 29: Chapter 2  암호 기초

Chapter 2 Crypto Basics 29

몇 가지 역사적인 사례들

Crypto 연대기 Answers.com Wikipedia

전위 암호기 (Transposition cypher) Spartan Scytale[saiteil]

치환 암호기 (Substitution cipher) Caesar’s cipher Poe’s The Gold Bug:

미국의 1876 년 선거

Page 30: Chapter 2  암호 기초

Chapter 2 Crypto Basics 30

미국의 1876 년 선거

1876 년 대통령 선거는 미국 역사상 가장 논쟁의 선거 중 하나이다 . 민주당의 “ Swindling” Samuel J. Tilden 은 공화당의

“ Rutherfraud” Rutherford B Hayes 에게 전국 투표에서 근소한 차이로 승리하였다 .

3개 주 (Florida, Lousiana, South Carolina) 의 선거인단의 표 (19표 ) 가 미결정 상태였다 .

위원회는 최종적으로 19표를 Hayes 에게 인정하였다 .

Tilden 은 Hayes 가 위원회 위원들을 매수하였다고 주장했다 .

Page 31: Chapter 2  암호 기초

Chapter 2 Crypto Basics 31

1876 년 선거 Tilden 의 지지자들의 암호화된 메시지가

드러나게 되었다 . 암호화 : 부분적으로 코드북을 사용하고 단어

간에 전이 (transposition) 를 사용하였다 . Codebook 의 주요 단어 암호 예 :

ciphertext plaintextCopenhagen GreenbacksGreece HayesRochester votesRussia TildenWarsaw telegram

: :

Page 32: Chapter 2  암호 기초

Chapter 2 Crypto Basics 32

1876 년 선거

원래 메시지에 코드북을 적용 5개의 단어의 배수로 메시지를 구성 ( 총 길이 ,

10,15,20,25 or 30 단어 ) 각 길이의 메시지에 대해서 고정된 순서의 전위를

적용하였다 . 동일한 길이의 많은 메시지를 비교한 결과 적용된

전위의 순서를 찾아 내었다 . 즉 , 이것은 동일한 길이의 메시지에 같은 키를

적용한 것이다 .

Page 33: Chapter 2  암호 기초

Chapter 2 Crypto Basics 33

1876 년 선거 Ciphertext:

“Warsaw they read all unchanged last are idiots can’t situation”

코드북 : Warsaw telegram

전위 순서 9,3,6,1,10,5,2,7,4,8

Plaintext: “Can’t read last telegram. Situation

unchanged. They are all idiots.” 취약한 암호화 방법은 키의 재사용으로 더욱 취약해 졌다 . 교훈 : 키를 재사용하거나 남용하지 말자 !

Page 34: Chapter 2  암호 기초

1876 선거 : 암호 이외의 의미 1877 의 타협 (compromise)

Hayes 를 대통령으로 인정하는 대신 남부 3주 (South Carolina, Louisiana, Florida) 에서 연방

정부의 군대를 철수 하고 Hayes 정부 내각에 남부 출신 각료를 1 명 선임 남부의 산업화에 남부의 이권을 인정한다 .

재건 (reconstruction) 시대의 종말 남부의 자치를 주장하는 “ redeemer” 들이 남부의 권력을 장악 백인 우월주의자들의 민주당 지지를 초래

재건의 시대 (1863-1877) 노예 제도의 폐지 남부 연합 (confederacy) 의 흔적을 없앰 자유 노예의 권리를 수립

Page 35: Chapter 2  암호 기초

Chapter 2 Crypto Basics 35

20 세기 초기 WWI Zimmerman Telegram “Gentlemen do not read each other’s

mail” Henry L. Stimson, Secretary of State, 1929

1941 년 진주만 사건 이후 미국은 다시 암호 분석 활동을 재개

WWII 암호 해석의 황금기 Japanese Purple (codename MAGIC) German Enigma (codename ULTRA)

Page 36: Chapter 2  암호 기초

Enigma Machine 2차 세계 대전에서

독일이 사용한 암호화 기계

전기 (electricity) 로 동작

Chapter 2 Crypto Basics 36

Page 37: Chapter 2  암호 기초

Japanese Purple Machine

Chapter 2 Crypto Basics 37

Page 39: Chapter 2  암호 기초

Chapter 2 Crypto Basics 39

WWII 이후

Claude Shannon 정보 이론의 아버지라고 불리움

컴퓨터 혁명 대량의 데이터 Data Encryption Standard (DES):70

년대 Public Key cryptography: 70 년대 CRYPTO 학회 : 80 년대 Advanced Encryption Standard (AES): 90

년대 Crypto 는 비밀의 세계에서 빠져 나왔다 .

Page 40: Chapter 2  암호 기초

Chapter 2 Crypto Basics 40

Claude Shannon 정보 이론 (Information Theory) 의 창시자 1949 논문 :

Comm. Thy. of Secrecy Systems http://netlab.cs.ucla.edu/wiki/files/shannon1949.pdf

혼돈 (Confusion) 과 확산 (diffusion) Confusion 평문과 암호문 간의 관계를 모르게

(obscure) 하는것 Diffusion 평문의 통계치 (statistics) 를 암호문에 펼쳐 놓는 것

일회성 암호는 오직 혼돈 만을 사용하는 반면 이중 전위는 오직 확산 만을 사용

일회성 암호 (one-time pad) 가 안전하다는 것을 증명

Page 41: Chapter 2  암호 기초

Chapter 2 Crypto Basics 41

암호 방법 (Cryptography) 의 분류

대칭키 (Symmetric Key) 암호화와 복호화에 동일한 키 사용 스트림 암호 (Stream ciphers) 블록 암호 (Block ciphers)

공개키 (Public Key) 암호화를 위한 키 ( 공개키 ) 와 복호화를 위한 키 (

개인키 ) 전자 서명 (digital signature)

해쉬 알고리즘 (Hash algorithms)

Page 42: Chapter 2  암호 기초

암호 방법 (Cryptography) 의 분류

Chapter 2 Crypto Basics 42

스트림 암호 블록 암호

RC4, LFSR DES, SEED

이산 대수 소인수 분해

공개키 암호

DH, DSA RSA

현대 암호

대칭키 암호

해쉬 함수

SHA1,HAS160

Page 43: Chapter 2  암호 기초

Chapter 2 Crypto Basics 43

암호 해석 (cryptanalysis) 의 분류

암호문 공격 (Ciphertext only) 알고리즘과 암호문 만이 주어질 때

알려진 평문 공격 (Known plaintext) 약간의 평문과 이에 대응하는 암호문을 알

수 있을 때 예 , email 메시지

선택된 평문 공격 (Chosen plaintext) 암호 체계에 약간의 접근이 가능하다고 가정 공격자는 자신이 선택한 평문에 대한

암호문을 얻을 수 있다 . “ 점심 시간 공격 (lunchtime attack)”

Page 44: Chapter 2  암호 기초

Chapter 2 Crypto Basics 44

암호 해석의 분류 적응적 선택된 평문 (Adaptively chosen

plaintext) 공격 공격자는 평문을 선택하고 이에 대한 암호문을 얻는다 . 그리고 이 암호문을 기반으로 또 다른 평문을 선택한다 .

상관의 있는 키 (Related key) 공격 특별한 방법으로 관계를 갖는 취약한 키를 공격한다 .

순방향 탐색 (Forward search) 공개키 방법에서만 적용된다 . 예를 들면 평문이 “ yes” 혹은 “ no” 일 경우

공개키를 사용하여 “ yes” 일 때와 “ no” 일 때의 암호문을 구하여 비교한다 .

기타 등등