chapter 2 암호 기초

Post on 10-Feb-2016

117 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

1

Chapter 2 암호 기초

Chapter 2 Crypto Basics 2

Crypto 암호학 (Cryptology)

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

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

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

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

Chapter 2 Crypto Basics 3

암호 체계 (Crypto)

Plaintext ( 평문 )

key Key( 암호화 키 )

plaintext

Ciphertext ( 암호문 )

Encrypt( 암호화 )

Decrypt( 복호화 )

Chapter 2 Crypto Basics 4

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

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

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

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

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

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

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

Chapter 2 Crypto Basics 5

Crypto 기본 가정

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

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

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

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

고전적인 암호 알고리즘

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

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

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

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

Chapter 2 Crypto Basics 10

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

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

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

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

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

Chapter 2 Crypto Basics 12

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

PBFPVYFBQXZTYFPBFEQJHDXXQVAPTPQJKTOYQWIPBVWLXTOXBTFXQWAXBVCXQWAXFQJVWLEQNTOZQGGQLFXQWAKVWLXQWAEBIPBFXFQVXGTVJVWLBTPQWAEBFPBFHCVLXBQUFEVWLXGDPEQVPQGVPPBFTIXPFHXZHVFAGFOTHFEFBQUFTDHZBQPOTHXTYFTODXQHFTDPTOGHFQPBQWAQJJTODXQHFOQPWTBDHHIXQVAPBFZQHCFWPFHPBFIPBQWKFABVYYDZBOTHPBQPQJTQOTOGHFQAPBFEQJHDXXQVAVXEBQPEFZBVFOJIWFFACFCCFHQWAUVWFLQHGFXVAFXQHFUFHILTTAVWAFFAWTEVOITDHFHFQAITIXPFHXAFQHEFZQWGFLVWPTOFFA

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

영어 알파벳의 빈도수…

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

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

빈도수 분석 (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

Chapter 2 Crypto Basics 16

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

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

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

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

Chapter 2 Crypto Basics 17

이중 전위 (Double Transposition) Plaintext: attackxatxdawn

Permute rowsand columns

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

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

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

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

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

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

Chapter 2 Crypto Basics 18

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 개의 알파벳이 있다고 가정하자 .

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

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

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

Chapter 2 Crypto Basics 23

일회성 암호 정리

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

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

Chapter 2 Crypto Basics 24

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

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

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

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

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

했다 .

Chapter 2 Crypto Basics 25

VENONA 암호 해석 (1944)

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

Chapter 2 Crypto Basics 26

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

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

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

Chapter 2 Crypto Basics 27

ZimmermanTelegram 현재까지 알려진 가장

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

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

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

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

Chapter 2 Crypto Basics 28

해석된 ZimmermanTelegram 러시아는

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

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

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 년 선거

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 가 위원회 위원들을 매수하였다고 주장했다 .

Chapter 2 Crypto Basics 31

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

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

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

ciphertext plaintextCopenhagen GreenbacksGreece HayesRochester votesRussia TildenWarsaw telegram

: :

Chapter 2 Crypto Basics 32

1876 년 선거

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

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

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

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

적용한 것이다 .

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.” 취약한 암호화 방법은 키의 재사용으로 더욱 취약해 졌다 . 교훈 : 키를 재사용하거나 남용하지 말자 !

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

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

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

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

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

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)

Enigma Machine 2차 세계 대전에서

독일이 사용한 암호화 기계

전기 (electricity) 로 동작

Chapter 2 Crypto Basics 36

Japanese Purple Machine

Chapter 2 Crypto Basics 37

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 는 비밀의 세계에서 빠져 나왔다 .

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) 가 안전하다는 것을 증명

Chapter 2 Crypto Basics 41

암호 방법 (Cryptography) 의 분류

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

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

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

해쉬 알고리즘 (Hash algorithms)

암호 방법 (Cryptography) 의 분류

Chapter 2 Crypto Basics 42

스트림 암호 블록 암호

RC4, LFSR DES, SEED

이산 대수 소인수 분해

공개키 암호

DH, DSA RSA

현대 암호

대칭키 암호

해쉬 함수

SHA1,HAS160

Chapter 2 Crypto Basics 43

암호 해석 (cryptanalysis) 의 분류

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

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

수 있을 때 예 , email 메시지

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

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

Chapter 2 Crypto Basics 44

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

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

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

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

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

기타 등등

top related