520 likes | 917 Views
Chapter 2 암호 기초. Crypto. 암호학 (Cryptology) “ 비밀 코드 ” 를 만들거나 해독하는 기술과 과학 Cryptography “ 비밀 코드 ” 를 만드는 법 암호 분석 (Cryptanalysis) “ 비밀 코드 ” 를 해독하는 법 Crypto 위의 모든 것 ( 과 그 이상 ) 을 지칭한다. 암호 체계 (Crypto). Key ( 암호화 키 ). key. Plaintext ( 평문 ). plaintext. Encrypt ( 암호화 ). Decrypt
E N D
Crypto • 암호학(Cryptology) • “비밀 코드”를 만들거나 해독하는 기술과 과학 • Cryptography • “비밀 코드”를 만드는 법 • 암호 분석(Cryptanalysis) • “비밀 코드”를 해독하는 법 • Crypto • 위의 모든 것(과 그 이상)을 지칭한다. Chapter 2 Crypto Basics
암호 체계(Crypto) Key (암호화 키) key Plaintext (평문) plaintext Encrypt (암호화) Decrypt (복호화) Ciphertext (암호문) Chapter 2 Crypto Basics
Crypto에서의 용어들 • 암호 체계(cipher or cryptosystem) • 평문(plaintext)을 암호화(encrypt)하는데 사용 • 암호문(ciphertext) • 암호화된 결과 • 복호화(decrypt) • 암호문을 평문으로 복원 • 키(key) • 암호체계를 만드는데 사용 • 대칭키(symmetric key) • 같은 키를 암호화와 복호화를 위해 사용 • 공개키(public key) • 공개키(public key) 는 암호화, 개인키( private key) 는 복화화에 사용 Chapter 2 Crypto Basics
Crypto • 기본 가정 • 암호체계는 완전히 공격자에게 알려져 있고, • 오직 키(Key)만이 유일한 비밀이다. • 커크호프의 원칙( Kerckhoffs Principle) • 암호 알고리즘은 비밀이 아니다. • 왜 이런 가정을 하는가? • 경험적으로 볼 때, 비밀 알고리즘들은(공개되었을 때) 알고리즘 자체는 강력하지 않을 경우가 많다. • 비밀 알고리즘은 결국 공개된다. • 사전에 취약점을 발견하는 것이 유리하다. Chapter 2 Crypto Basics
고전적인 암호 알고리즘 • 치환 • 이중 전위(double transposition) • 일회성 암호(one-time pad) • 코드북(codebook)
단순 치환(Simple Substitution) • Plaintext:fourscoreandsevenyearsago • Key: Plaintext Ciphertext • Ciphertext: IRXUVFRUHDAGVHYHABHDUVDIR • 시저 암호(Caesar’s cipher): 세자리 만큼 이동 Chapter 2 Crypto Basics
시저 암호의 복호화(Decryption) • Plaintext: spongebobsquarepants • Ciphertext: VSRQJHEREVTXDUHSDQWU Plaintext Ciphertext Chapter 2 Crypto Basics
단순하지 않은 치환 • n만큼 이동, n {0,1,2,…,25} • 키(key)는 n • 예: key = 7 Plaintext Ciphertext Chapter 2 Crypto Basics
암호 분석(Cryptanalysis) I: 모든 경우를 시도한다 • 주어진 조건 • 단순 치환 사용 (n만큼 이동) • 그러나 키는 알려져 있지 않다. • 주어진 암호문: meqefscerhcsyeviekmvp • 어떻게 키를 찾을 것인가? • Exhaustive key search • 가능한 키는 오직 26가지 모두 시도해 본다! • 해답: key = 4 IAMABOYANDYOUAREAGIRL Chapter 2 Crypto Basics
문자열의 순열에 의한 치환 • Key는 문자의 어떤 순열이다. • 문자를 이동( shift)할 필요가 없다. • 예 Plaintext Ciphertext • 그러면 26! > 288개의 가능한 키가 존재한다! • 이 방법은 처음 1000년간 비밀 코드를 만드는 기술을 지배하였다. Chapter 2 Crypto Basics
암호분석 II: 잘 생각하자! • 단순 치환이 사용되었다는 것을 알고 있다. • 그러나 n 자리수의 이동일 필요는 없다. • 다음의 암호문의 키를 찾아낼 수 있는가: PBFPVYFBQXZTYFPBFEQJHDXXQVAPTPQJKTOYQWIPBVWLXTOXBTFXQWAXBVCXQWAXFQJVWLEQNTOZQGGQLFXQWAKVWLXQWAEBIPBFXFQVXGTVJVWLBTPQWAEBFPBFHCVLXBQUFEVWLXGDPEQVPQGVPPBFTIXPFHXZHVFAGFOTHFEFBQUFTDHZBQPOTHXTYFTODXQHFTDPTOGHFQPBQWAQJJTODXQHFOQPWTBDHHIXQVAPBFZQHCFWPFHPBFIPBQWKFABVYYDZBOTHPBQPQJTQOTOGHFQAPBFEQJHDXXQVAVXEBQPEFZBVFOJIWFFACFCCFHQWAUVWFLQHGFXVAFXQHFUFHILTTAVWAFFAWTEVOITDHFHFQAITIXPFHXAFQHEFZQWGFLVWPTOFFA Chapter 2 Crypto Basics
암호분석 II • 모든 288가지의 치환될 수 있는 키를 고려할 필요는 없다. • 좀 더 현명할 수는 없을까? • 영어 알파벳의 빈도수… Chapter 2 Crypto Basics
암호분석 II • Ciphertext: PBFPVYFBQXZTYFPBFEQJHDXXQVAPTPQJKTOYQWIPBVWLXTOXBTFXQWAXBVCXQWAXFQJVWLEQNTOZQGGQLFXQWAKVWLXQWAEBIPBFXFQVXGTVJVWLBTPQWAEBFPBFHCVLXBQUFEVWLXGDPEQVPQGVPPBFTIXPFHXZHVFAGFOTHFEFBQUFTDHZBQPOTHXTYFTODXQHFTDPTOGHFQPBQWAQJJTODXQHFOQPWTBDHHIXQVAPBFZQHCFWPFHPBFIPBQWKFABVYYDZBOTHPBQPQJTQOTOGHFQAPBFEQJHDXXQVAVXEBQPEFZBVFOJIWFFACFCCFHQWAUVWFLQHGFXVAFXQHFUFHILTTAVWAFFAWTEVOITDHFHFQAITIXPFHXAFQHEFZQWGFLVWPTOFFA • 다음의 정보를 기반으로 복호화를 한다. 암호문에서의 알파벳 빈도수: Chapter 2 Crypto Basics
빈도수 분석(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
암호체계가 안전하다는 말의 뜻은? • 암호를 해석하기 위해서 알려진 최선의 공격 방법은 모든 키를 다 시도해 보는 것일 때 이 암호 체계는 안전하다고 한다. (Cryptosystem is secure) • 암호를 해석하는데 어떤 지름길이 있다면 그 암호체계는 불안전하다고 한다. (Cryptosystem is insecure) • 이 정의에 의하면 불안전한 암호체계가 안전한 암호체계 보다도 해석하기 더 어려울 수도 있다! Chapter 2 Crypto Basics
이중 전위(Double Transposition) • Plaintext: attackxatxdawn Permute rows and columns • Ciphertext: xtawxnattxadakc • Key: 행렬의 크기와 순열 • (3,5,1,4,2) and (1,3,2) Chapter 2 Crypto Basics
일회성 암호(One-time Pad) • Vernam cipher • 증명된 안전한(provably secure) 암호 체계 • 그러나 실제 세계에서 사용하기에는 현실성이 없다. • 일회성 키는 랜덤하게 선택된 메시지와 동일한 길이의 스트링 비트로 구성된다. Chapter 2 Crypto Basics
일회성 암호의 암호화 오직 8개의 알파벳이 있다고 가정하자. e=000 h=001 i=010 k=011 l=100 r=101 s=110 t=111 Encryption:Plaintext Key = Ciphertext Chapter 2 Crypto Basics
일회성 암호의 복호화 e=000 h=001 i=010 k=011 l=100 r=101 s=110 t=111 Decryption:Ciphertext Key = Plaintext Chapter 2 Crypto Basics
일회성 암호(One-time Pad) 이중 첩자는 송신자가 다음의 “키”를 사용했다고 주장한다. e=000 h=001 i=010 k=011 l=100 r=101 s=110 t=111 Chapter 2 Crypto Basics
일회성 암호(One-time Pad) 체포된 송신자는 “키”는 다음과 같다고 주장한다. e=000 h=001 i=010 k=011 l=100 r=101 s=110 t=111 Chapter 2 Crypto Basics
일회성 암호 정리 • 증명된 안전성(Provably secure), (올바로 사용될 때) • 암호문은 평문에 대한 어떤 정보도 제공하지 않는다. • 모든 평문이 만들어질 가능성은 동일하다. • 키(Pad)는 임의의 값이며 단지 한번만 사용된다. • 키(Pad)는 오직 송신자와 수신자만 알고 있다. • 키(Pad)는 메시지와 동일한 크기이다. • 메시지의 무결성을 제공하지 않는다. • 의문: 키(pad)를 안전하게 전달할 수 있다면 메시지 자체를 전달하면 되지 않겠는가? Chapter 2 Crypto Basics
실제 세계에서의 일회성 암호 예 • 프로젝트 VENONA • US와 UK의 정보기관 간에 오랫동안 지속된 고도의 비밀 협력(1943년부터 1980년까지 지속) • 1940년대미국으로부터 전송된 소련 스파이의 메시지의 암호 해석을 목적으로 함 • 핵무기에 대한 첩자 행위 등 • 수천의 메시지 전송 • 스파이는 미국에 일회성 암호 반입 • 스파이는 키를 비밀 메시지를 암호화하는데 사용 • 일회성 키의 반복 사용이 암호 해석이 가능하도록 했다. Chapter 2 Crypto Basics
VENONA 암호 해석 (1944) • “Ruth” == Ruth Greenglass • “Liberal” == Julius Rosenberg • “Enormous” == the atomic bomb Chapter 2 Crypto Basics
코드북(Codebook) • 말 그대로 “코드 워드”로 채워진 책이다. • Zimmerman Telegram은 5-digit 코드워드로 이루어진 코드북으로 암호화되었다. Februar 13605 fest 13732 finanzielle 13850 folgender 13918 Frieden 17142 Friedenschluss 17149 : : • 현대의 블록 암호들은 코드북이다. Chapter 2 Crypto Basics
ZimmermanTelegram • 현재까지 알려진 가장 유명한 코드북의 하나 • 독일의 외상이 멕시코 대사에게 보낸 전문으로 멕시코를 우방으로 회유할 목적 • 미국이 1차세계대전에 참여하도록 했다. • 우측에 있는 것이 암호문이다. Chapter 2 Crypto Basics
해석된 ZimmermanTelegram • 러시아는 코드북을 부분적으로 복원하여 영국에 넘겨줌. • 영국은 빠진 부분을 보충하여 해독 Chapter 2 Crypto Basics
몇 가지 역사적인 사례들 • Crypto 연대기 • Answers.com • Wikipedia • 전위 암호기(Transposition cypher) • Spartan Scytale[saiteil] • 치환 암호기(Substitution cipher) • Caesar’s cipher • Poe’s The Gold Bug: • 미국의 1876년 선거 Chapter 2 Crypto Basics
미국의 1876년 선거 • 1876년 대통령 선거는 미국 역사상 가장 논쟁의 선거 중 하나이다. • 민주당의 “Swindling” Samuel J. Tilden은 공화당의 “Rutherfraud” Rutherford B Hayes에게 전국 투표에서 근소한 차이로 승리하였다. • 3개 주(Florida, Lousiana, South Carolina)의 선거인단의 표(19표)가 미결정 상태였다. • 위원회는 최종적으로 19표를 Hayes에게 인정하였다. • Tilden은Hayes가 위원회 위원들을 매수하였다고 주장했다. Chapter 2 Crypto Basics
1876년 선거 • Tilden의 지지자들의 암호화된 메시지가 드러나게 되었다. • 암호화: 부분적으로 코드북을 사용하고 단어 간에 전이(transposition)를 사용하였다. • Codebook의 주요 단어 암호 예: ciphertext plaintext Copenhagen Greenbacks Greece Hayes Rochester votes Russia Tilden Warsawtelegram : : Chapter 2 Crypto Basics
1876년 선거 • 원래 메시지에 코드북을 적용 • 5개의 단어의 배수로 메시지를 구성(총 길이, 10,15,20,25 or 30 단어) • 각 길이의 메시지에 대해서 고정된 순서의 전위를 적용하였다. • 동일한 길이의 많은 메시지를 비교한 결과 적용된 전위의 순서를 찾아 내었다. • 즉, 이것은 동일한 길이의 메시지에 같은 키를 적용한 것이다. Chapter 2 Crypto Basics
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.” • 취약한 암호화 방법은 키의 재사용으로 더욱 취약해 졌다. • 교훈:키를 재사용하거나 남용하지 말자! Chapter 2 Crypto Basics
1876 선거: 암호 이외의 의미 • 1877의 타협(compromise) • Hayes를 대통령으로 인정하는 대신 • 남부 3주(South Carolina, Louisiana, Florida)에서 연방 정부의 군대를 철수 하고 • Hayes 정부 내각에 남부 출신 각료를 1명 선임 • 남부의 산업화에 남부의 이권을 인정한다. • 재건(reconstruction) 시대의 종말 • 남부의 자치를 주장하는 “redeemer”들이 남부의 권력을 장악 • 백인 우월주의자들의 민주당 지지를 초래 • 재건의 시대(1863-1877) • 노예 제도의 폐지 • 남부 연합(confederacy)의 흔적을 없앰 • 자유 노예의 권리를 수립
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) Chapter 2 Crypto Basics
2차 세계 대전에서 독일이 사용한 암호화 기계 전기(electricity)로 동작 Enigma Machine Chapter 2 Crypto Basics
Japanese Purple Machine Chapter 2 Crypto Basics
WWII 이후 • Claude Shannon 정보 이론의 아버지라고 불리움 • 컴퓨터 혁명대량의 데이터 • Data Encryption Standard (DES):70년대 • Public Key cryptography: 70년대 • CRYPTO 학회: 80년대 • Advanced Encryption Standard (AES): 90년대 • Crypto는 비밀의 세계에서 빠져 나왔다. Chapter 2 Crypto Basics
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
암호 방법(Cryptography)의 분류 • 대칭키(Symmetric Key) • 암호화와 복호화에 동일한 키 사용 • 스트림 암호(Stream ciphers) • 블록 암호(Block ciphers) • 공개키(Public Key) • 암호화를 위한 키(공개키)와 복호화를 위한 키(개인키) • 전자 서명(digital signature) • 해쉬 알고리즘(Hash algorithms) Chapter 2 Crypto Basics
암호 방법(Cryptography)의 분류 현대 암호 대칭키 암호 공개키 암호 스트림 암호 블록 암호 해쉬 함수 이산 대수 소인수 분해 RC4, LFSR DES, SEED DH, DSA RSA SHA1,HAS160 Chapter 2 Crypto Basics
암호 해석(cryptanalysis)의 분류 암호문 공격(Ciphertext only) 알고리즘과 암호문 만이 주어질 때 알려진 평문 공격(Known plaintext) 약간의 평문과 이에 대응하는 암호문을 알 수 있을 때 예, email 메시지 선택된 평문 공격(Chosen plaintext) 암호 체계에 약간의 접근이 가능하다고 가정 공격자는 자신이 선택한 평문에 대한 암호문을 얻을 수 있다. “점심 시간 공격(lunchtime attack)” Chapter 2 Crypto Basics
암호 해석의 분류 적응적 선택된 평문(Adaptively chosen plaintext) 공격 공격자는 평문을 선택하고 이에 대한 암호문을 얻는다. 그리고 이 암호문을 기반으로 또 다른 평문을 선택한다. 상관의 있는 키 (Related key) 공격 특별한 방법으로 관계를 갖는 취약한 키를 공격한다. 순방향 탐색(Forward search) 공개키 방법에서만 적용된다. 예를 들면 평문이 “yes” 혹은 “no”일 경우 공개키를 사용하여 “yes”일 때와 “no”일 때의 암호문을 구하여 비교한다. 기타 등등 Chapter 2 Crypto Basics