
3435cd239754e996ba0e2cb7e111fec4.ppt
- Количество слайдов: 110
암호 분석 기법 - 고전암호를 중심으로 2006. 12. 21 김병수 (fiveonekbs@paran. com) 1
차 례 • 암호 개요 • 암호 역사 • 암호 종류 • 고전암호 분석기법 2
암호 개요 • 암호의 정의 – 통신문의 내용을 제 3자가 판독할 수 없는 글자, 숫자, 부호 등 으로 변경시킨 것 - 동아대백과사전 – 통신의 내용이 밖으로 새지 않도록, 제 3자는 모르고, 저희 편끼리 만 알게 한 비밀한 신호나 부호 한국어 대사전 – The art of writing or deciphering messages in code. The system used in a code or cipher. Webster’s New World Dictionary – The art and science of keeping message secure Applied Cryptography (Bruce Schneier) – 평문을 해독 불가능한 형태로 변형하거나 또는 암호화된 통신문 을 해독 가능한 형태로 변환하기 위한 원리, 수단, 방법 등을 취 급하는 기술 또는 과학 암호학 기초 (한국전자통신연구원) 3
암호 개요 • 암호학(cryptology) – 암호제작(cryptography) : 평문을 보호하기 위한 암호화 알고리즘을 연구 – 암호해독(cryptanalysis) : 평문으로 해독하기 위하여 암호문과 암호화 과정을 연구 4
암호 개요 • 암호를 사용하는 목적 – 비밀성 유지 (Confidentiality) : 인가자만이 정보에 접근할 수 있어야 함 – 자료에 대한 무결성 유지 (Data Integrity) : 정보가 위조 또는 변조되었는지 확인할 수 있어야 함 – 사용자 또는 자료의 출처 인증 (Authentication for Entity and Data) : 정보의 생산이 정당한지 검증 되어야 함 – 부인방지 (Non-repudiation) : 정보처리를 실행한 후 사용자가 이를 거부할 수 없도록 해야 함 5
암호 개요 • 암호시스템 개요 복호화 키 암호화 키 평문 암호알고리즘 (암호화) 암호문 암호알고리즘 (복호화) 암호문 송신자 평문 수신자 암호 해독 평문 도청자 6
암호 역사 • 1세대 암호시스템 – 고대~19세기말 – 단순한 문자 환자(換字) 및 환치(換置) 방법 사용 • 2세대 암호시스템 – 20세기초~1940년대 말 – 복잡한 암호기계 이용 • 3세대 암호시스템 (현대 암호) – 1940년대 말 Shannon의 논문 발표 이후 – 각종 이론 등에 부합하는 복잡도가 높은 암호 알고리즘 7
암호 역사 (1세대 암호시스템) • 환자(換字) 암호 (substitution cipher) – 평문의 문자를 다른 문자로 바꾸어 암호문 생성 • 환치(換置) 암호 (transposition cipher) – 평문에서 문자의 순서만을 바꾸어 암호문 생성 • 혼합 암호 – 환자 환치 암호 – 난수 암호 8
암호 역사 (2세대 암호시스템) • 1933~1945년 독일군은 Enigma 라 불리는 암호문 작성기를 이용, 암호통신 실시 • 1937년부터 일본은 외교통신을 암호화 하고자 암호문 작성기를 사용하였으며, 미국은 이를 ‘Purple Machine’ 이라 부름 • 1942년부터 미군은 Hagelin 이 발명한 M-209 암호문 작성기를 사용 9
Enigma 10
Purple Machine Switching Unit Housing for stepping switch Stepping Switch 11
Hagelin Machine (M-209) 12
암호 역사 (3세대 암호시스템) • 1948년 Claude E. Shannon은 ‘Mathematical Theory of Communication’ 을 발표하여 정보의 가치를 엔트로피로 계량화 – 엔트로피 : 주어진 정보를 가능한 한 압축하여 비트로 표현할 때 필요한 비트의 수 – 혼동(confusion)과 확산(diffusion) 기법을 사용하여 복잡도가 높은 암호시스템 구현 가능 H = Pi log 2 Pi i 13
암호 역사 (3세대 암호시스템) • 1970년 H. Feistel 등은 DES의 모체가 된 LUCIFER를 개발하였고, block 암호의 기본구조로 널리 사용되는 Feistel 구조를 고안 P 0 P 1 K C 0 = P 1 F C 0 [암호화] C 1 = P 0 F(P 1, K) C 1 : exclusive or 14
암호 역사 (3세대 암호시스템) C 1 C 0 K [복호화] F P 1 = C 0 P 1 P 0 = C 1 F(C 0, K) 15
암호 역사 (3세대 암호시스템) • 1977년 미국 NBS는 IBM이 개발한 DES (Data Encryption Standard) 를 연방 표준 암호로 발표 – 구조: Feistel 구조를 반복 • • 입·출력 길이 : 64 bit 암호키 길이 : 56 bit 실행 라운드수 : 16 회 非선형인 S-box : 8 개 16
암호 역사 (3세대 암호시스템) • 1976년 W. Diffie와 M. Hellman은 ‘New Directions in Cryptography’ 에서 공개키 암호의 개념 발표 • 1978년 R. Rivest, A. Shamir 및 L. Adleman은 큰 정수에 대한 소인수분해가 어렵다는 사실을 이용한 공개키 암호시스템인 RSA 개발 R. Rivest A. Shamir L. Adleman 17
암호 역사 (3세대 암호시스템) • 1990년 X. Lai와 L. Massey는 IDEA를 개발 – IDEA : International Data Encryption Algorithm • PES IPES (Improved PES) IDEA • 1990년 E. Biham과 A. Shamir는 差分 암호 해독법 (Differential Cryptanalysis) 을 소개 – 주어진 差를 갖는 입력 평문 쌍에 대해 출력되는 암호문의 差를 분석하는 방법 18
암호 역사 (3세대 암호시스템) • 1991년 R. Zimmermann은 PGP (Pretty Good Privacy) 개발 – 공개키 암호방식을 사용한 file 및 전자메일 암호화 program • 1993년 Matsui는 線型 암호해독법 (Linear Cryptanalysis) 소개 – 암호 알고리즘의 입·출력 사이에 주어지는 선형관계를 이용한 분석법 19
암호 역사 (3세대 암호시스템) • 1994년 W. Shor는 큰 수를 효과적으로 소인수분해할 수 있는 量子計算法 소개 • 1997년 NIST는 DES를 대신할 미국 표준 암호 (AES) 를 공개 모집 – AES : Advanced Encryption Standard • 1999. 8월 NIST는 AES의 마지막 후보 5개 선정 – MARS, RC 6, Rijndael, Serpent, Twofish 20
암호 역사 (3세대 암호시스템) 알고리즘 형태 비고 CAST-256 MFN CRYPTON SPN DEAL FN DFC FN E 2 FN FROG Interp. HPC OMNI LOKI 97 FN MAGENTA FN SAFER+ SPN MARS MFN RC 6 MFN RIJNDAEL SPN 美 IBM 美 RSA 벨기에 SERPENT SPN 英-이스라엘-덴마크 TWOFISH FN 한국 일본 a. MFN : Modified Feistel Network a. SPN : Substitution Permutation Network a. FN : Feistel Network a. Interp. : Interpreter design a. OMNI : different design (name by designer) 2000년 10월 최종 선정 美 Counterpane 21
암호 역사 (시대별 보호서비스 비교) 비밀보장 무결성 인증 부인방지 1세대 2세대 3세대 22
암호 역사 (국내) • 1948. 12월 陸軍이 창설되면서 육군본부 직할부대에 전파감시소를 설치하고 美軍의 도움을 받아 암호를 제작하여 全軍에 배포 • 1950. 6월 육군 전파감시소는 북한의 암호문 解讀 – 대한민국 暗號解讀의 첫걸음 • 1961년 暗號 제작업무를 中央情報部로 이관 – 軍을 포함한 全 행정기관에 확대 적용 23
암호 역사 (국내) • 1961년부터 中央情報部는 각급 행정부처 및 해외공관에 암호자재를 제작 배포 • 1980년 외교암호 시스템이 컴퓨터를 사용 半自動化 • 1984년 자동화 (전산화) 암호시스템 사용 • 현재 128 비트 이상 키를 사용하는 현대암호 적용 24
암호 역사 (국내) • 1995. 3월 국내에서 가장 많이 쓰이고 있던 ‘아래아한글 2. 1’용 암호 해독 • 1997년 한국 國家機關用 표준암호 NEAT 제정 – NEAT : National Encryption Algori. Thm • 1998년 부가형 전자서명방식(KCDSA)을 한국 정보통신단체 표준으로 확정 – Korean Certificate-based Digital Signature Algorithm 25
암호 역사 (국내) • 1998년 Hash algorithm HAS-160을 한국정보 통신단체 표준으로 확정 • 1999년 한국 民間用 표준암호 SEED 제정 – SEED : 정보보호의 씨앗이 되라는 뜻 • 2004. 12월 한국 국가 표준 암호 ARIA 제정 – 산업자원부 KS 규격 : KS X 1213 – Academy – Research Institute - Agency 26
암호 종류 암호 고전 암호 현대 암호 사이퍼 (cipher) 환자 암호 환치 암호 1948 비밀키 암호 블록 암호 스트림 암호 코드(code) 공개키 암호 etc. 秘密書法 (隱書), 隱語 등 量子暗號, DNA 暗號 등 27
암호 종류 (고전암호) • 환자 암호 (substitution cipher) – 평문의 문자를 다른 문자로 바꾸어 암호문 생성 • 환치 암호 (transposition cipher) – 평문에서 문자의 순서만을 바꾸어 암호문 생성 • 혼합 암호 – 환자 환치 암호 – 난수 암호 28
환자(換字) 암호 • 단순 환자 암호 : 평문과 암호문 1: 1 대응 • 동음이의 환자 암호 : 평문과 암호문 사이에 1: 多 대응 • 다표식(多表式) 환자 암호 : 다중 환자를 사용 • 다자(多字) 환자 암호 : 한번에 여러 개의 문자를 암호화 29
단순 환자 암호 (simple substitution cipher) A f B C D E X Y Z K F O R G H I J E B C D F A K M = KOR EA C = D I MOX L M N O P Q R G H L I J S T U V W X Y Z M N P Q S T U V W (Key : 3 + KOREA) (예) 시저암호 : f(a)=a+3 30
단순 환자 암호 (simple substitution cipher) • 아핀 변환 (affine transformation) f(x) ≡ 3 x + 5 (mod 26) A f B C D E F G H I F I L U X D G J O R A J K L M N O P M P S V Y Q R S B H K E T U V W X N Q T Y Z W Z C M = KOREA C = J V ERF 31
동음이의 환자 암호 (homophonic substitution cipher) • 평문의 각 문자에 암호 문자를 여러개 대응 • 예 : 숫자 100개 (00, 01, 02, …, 99)중 - e : 암호 13개 할당 a, t : 암호 9개 할당 i, n, o, s : 암호 7개 할당 d, h, r : 암호 5개 할당 f, l, u : 암호 3개 할당 c, m, p, y : 암호 2개 할당 기타 b, g, j, k, q, v, w, x, z : 암호 1개 할당 32
다표식 환자 암호 (poly alphabetic substitution cipher) • Blaise de Vigenère (1523 ~ 1596) – 多重文字方式 – Vigenère table ( C ≡ M + K (mod 26) ) – Autokey system • 1 st autokey 방식 : 평문을 암호키로 사용 • 2 nd autokey 방식 : 암호문을 암호키로 사용 33
Vigenère Table 1 st Autokey 평 문 This is cipher 암호키 THREE 암호문 MOZWM LJZTL XY 2 nd Autokey 평 문 This is cipher 암호키 THREE MOZWM EQ 암호문 MOZWM EQHLT IH 34
다자 환자 암호 (polygram substitution cipher) • Playfair 암호 암호키 : KOREA K B H P V O C IJ Q W R D L S X E F M T Y A G N U Z 평 문 : CY BE RT ER RO RZ 암호문 : FW FK ES AE ER AX 35
다자 환자 암호 (polygram substitution cipher) • Hill 암호 A DELA 20, 16, 5 25, 2, 3, 14 A JCOW 25 = 8 20 + 6 10 + 9 16 + 5 5 2 = 6 20 + 9 10 + 5 16 + 10 5 3 = 5 20 + 8 10 + 4 16 + 9 5 14 = 10 20 + 6 10 + 11 16 + 4 5 36
다자 환자 암호 (polygram substitution cipher) • Hill 암호 JCOW 20 11 5 18 1 1 2 20 6 25 25 A-1 23 2 2 22 25 25, 2, 3, 14 20, 16, 5 A-1 DELA 20 = 23 25 + 20 2 + 5 3 + 1 14 10 = 2 25 + 11 2 + 18 3 + 1 14 16 = 2 25 + 20 2 + 6 3 + 25 14 5 = 25 + 2 2 + 22 3 + 25 14 37
환치(換置) 암호 • 경로(route) 환치 암호 • 원주(columnar) 환치 암호 • 도형(figure) 환치 암호 • 그릴(grille) 환치 암호 38
경로 환치 암호 (route transposition cipher) • 평문 : 함북 오지에서 삼점육 규모 지진파 탐지 함 북 오 지 에 서 삼 점 육 규 모 지 진 파 탐 지 • 암호문 : 함에육진 북서규파 오삼모탐 지점지지 39
원주 환치 암호 (columnar transposition cipher) • 평문 : 함북 오지에서 삼점육 규모 지진파 탐지 키워드 사 3 이 4 버 2 테 5 러 1 함 북 오 지 에 서 삼 점 육 규 모 지 진 파 탐 지 • 암호문 : 에규탐오 점진함서 모지북삼 지지육파 40
도형 환치 암호 (figure transposition cipher) • 평문 : 함북 오지에서 삼점육 규모 지진파 탐지 함 서 지 키워드 5 상 북 삼 진 오 점 파 4 산 지 육 탐 6 수 3 리 에 규 모 지 1 과 7 학 2 관 • 암호문 : 오육지에 모북점탐 서진지함 삼파지규 41
그릴 환치 암호 (grille transposition cipher) • 평문 : 함북 오지에서 삼점육 규모 지진파 탐지 함 북 오 지 서 에 삼 점 육 모 규 지 진 파 탐 지 • 암호문 : 서모지함 육지삼북 지점파에 진오규탐 42
암호문 울 동 뱃 이 외 섬 새 고 그 아 43
혼합 암호 • 환자 환치 암호 – 19세기 말 Delastelle 암호 – 제 1차 세계대전시 독일의 ADFGX 암호 및 ADFGVX 암호 • 난수 암호 – 1차로 환자 암호 변환후 2차로 난수 적용 44
환자 환치 암호 (Delastelle cipher) Keyword SEVEN SECURITY 4 15 23 4 1 5 2 3 4 S E C U R 1 ij T Y A B 5 D F G H K 2 L M N O P 3 Q V W X Z • 평문 : WAIT T HE ORD ERS 3111 1 54 2 4 5 44 4 5241 1 21 2 3 4 13 4 • 암호문 : VTYLT DLHAQ SEQ 45
환자 환치 암호 (독일 ADFGX cipher) Keyword DEUTSCH SECURITY A D F G X A D E U T S D C H A B F F G ij K L G N O P Q • 평문 : W A I T T H E O R D E R S • 환자 : XD DF FD AG AG DD AD GD GX AA AD GX AX V W X Y E C U R I T Y 5 2 1 7 4 3 6 8 M X D D F F D A G R A G D D A D G X S X A A A D G X A X Z • 암호문 : DDADG XXDDD FAAXA GAAGG FDAGD X 46
암호 종류 (현대암호) • 비밀키 암호 (대칭키 암호) – 암호화 키와 복호화 키가 서로 같음 – 블록 암호 : 암복호화시 한번에 복수의 비트 처리 – 스트림 암호 : 암복호화시 비트 1개씩 처리 • 공개키 암호 (비대칭키 암호) – 암호화 키와 복호화 키가 서로 다름 – 암호화 키는 공개, 복호화 키는 비공개 47
암호 종류 (현대암호) 비밀키 암호 (대칭키 암호) 블록 암호 스트림 암호 非公開 暗號化 키 復號化 키 48
암호 종류 (비밀키 암호) • 사용자 : 2 • 사용자 : 5 • 사용자 : n Key : 10 Key : n(n-1)/2 49
암호 종류 (비밀키 암호) 비밀키 암호의 특징 암호키와의 관계 암호화키 = 복호화키 암호화키 비밀 복호화키 비밀 비밀키 전송 필요 비밀키 관리 문제점 암호화 속도 빠름 50
암호 종류 (Block Cipher) • DES (Data Encryption Standard) – 1972년 미국 NBS(現 NIST)에서 표준암호 algorithm을 공모하였으며 IBM에서 개발한 LUCIFER를 변경하여 – 1977년 미국 연방 표준암호로 발표 (64 -64 -56 -16) • IDEA (International Data Encryption Algorithm) – 1990년 X. Lai와 L. Massey가 대수적 구조가 다른 세 가지 연산을 사용한 PES를 발표하였고 – 1991년 Markov 암호라는 개념을 적용, IPES를 발표 – 1992년 IDEA로 이름이 바뀜 (64 -64 -128 -8) 51
암호 종류 (Block Cipher) • AES (Advanced Encryption Standard) – 1997년 미국 NIST는 DES를 대체할 차세대 표준 암호를 공모하여 2000년 벨기에 Rijndael 후보를 AES로 최종 선정 – 블록과 키 크기가 가변적(128, 192, 256 비트)이며 라운드 수도 가변적(10, 12, 14) 52
블록 암호 (우리나라) • NEAT (National Encryption Algori. Thm) – 1997년 제정된 국가기관용 표준암호 • SEED – 1999년 개발된 민간용 표준암호 • NES (National Encryption Standard) – 2003년 제정된 국가기관용 표준암호 • ARIA (Academy - Research Institute - Agency) – 2004년 제정된 국가 표준암호 – 산업자원부 KS 규격 : KS X 1213 53
DES 암호 알고리즘 64 bit Plaintext IP L 0 32 bit R 0 32 bit F R 1 = L 0 F (R 0, K 1) L 1 = R 0 16 round F R 15 = L 14 F (R 14, K 15) L 15 = R 14 F R 16 = L 15 F (R 15, K 16) IP-1 L 16 = R 15 Ciphertext 64 bit 54
DES 라운드 함수(F) R 0 32 bit E 48 bit 6 bit S 1 S 2 S 3 S 4 4 bit 6 bit 4 bit K 1 6 bit S 5 S 6 S 7 S 8 4 bit 32 bit 4 bit P F(R 0 , K 1) 32 bit 55
DES S-box • 8개의 S-box 행 - 6 bit 입력 → 4 bit 출력 (abcdef) 열 • S 1 열 0 1 2 3 14 4 13 0 15 7 4 1 14 15 12 8 1 4 8 2 4 5 6 7 8 9 10 11 12 13 14 15 11 13 2 1 8 3 10 6 12 5 9 1 10 6 12 11 9 5 11 15 12 9 7 3 10 7 5 11 3 14 10 0 행 0 1 2 3 2 15 14 2 13 6 4 9 0 7 3 8 5 0 6 13 ⇒ (100110)이 S 1 -box에 입력되면 (1000)이 출력 56
DES 취약점 • 표준 제정 당시부터 - 전수조사에 대한 취약성 지적 - S-box의 안전성에 대한 회의적 시각 • 결국 S-box의 충분치 못한 非선형성 때문에 DC 및 LC 공격에 취약 노출 ⇒ 2000. 10월 AES(차세대 표준암호)로 Rijndael 선정 57
DES 해독작업 Paul Kocher와 그가 설계한 DES-암호열쇠 探索器 줄임말 EFF : Electronic Frontier Foundation DES Cracker ‘DEEP CRACK’ microhip: AWT가 개발 1800개가 넘는 microchip들이 DES-암호열쇠를 탐색한다 AWT : Advanced Wireless Technologies 58
암호 종류 (Stream Cipher) • 개념도 키 동일키 이진수열 발생기 암호문 평문 평문 59
암호 종류 (Stream Cipher) • LFSR (Linear Feedback Shift Register) x 0 x 1 xn-2 xn-1 … c 0 x 0 c 1 x 1 ··· cn-1 xn-1 - 특성다항식 (characteristic polynomial) f(x) = 1 +c 1 x 1+c 2 x 2+…+cn-1 xn-1+xn (c 0=1) 60
암호 종류 (Stream Cipher) • LFSR (Linear Feedback Shift Register) – 원시다항식 (primitive polynomial) : e=2 n-1에 대하여 f(x) (xe+1)이며 0<r<e에 대하여 f(x) † (xr+1) 일때 f(x)를 원시다항식이라 함 – 최대주기 조건 (maximum length LFSR : m-LFSR) : 특성다항식이 f(x)인 LFSR이 주기 2 n-1 이 되기 위한 조건 f(x)가 원시다항식 • n차 원시다항식의 갯수 : φ(2 n-1) / n 61
암호 종류 (Stream Cipher) • LFSR (Linear Feedback Shift Register) – m-LFSR 으로 생성되는 이진수열은 연속적인 2 n개의 수열을 가지고 전체 수열을 구할 수 있음 – 몇 개의 m-LFSR을 非선형으로 결합한 非선형 알고 리즘에서 생성되는 이진수열도 어떤 수 M이 존재하여 연속적인 2 M개의 수열을 가지고 전체 수열을 구할 수 있음 • 선형 복잡도 (Linear Complexity) : M • 非선형 알고리즘에서 생성된 이진수열은 하나의 LFSR을 이용하여 발생 가능 62
암호 종류 (Stream Cipher) • Shrinking Generator (非선형 알고리즘의 예) – 구성 LFSR 1 control LFSR 2 출력 – 동작 • • 단계1 단계2 단계3 단계4 : : 두 LFSR을 1회 동작 LFSR 1의 출력이 0이면 단계4로 감 LFSR 1의 출력이 1이면 LFSR 2의 내용을 출력 단계1로 감 63
암호 종류 (Stream Ciphers) • Shrinking Generator (非선형 알고리즘) – LFSR 1과 LFSR 2의 특성다항식이 각각 m차 및 n차 원시다항식이고 gcd (2 m-1, 2 n-1) = 1 일때 • 주기 : 2 m-1 (2 n-1) • 선형복잡도 : n(2 m-2 ) 보다 크고 n(2 m-1 ) 보다 작음 64
암호 종류 (현대암호) 공개키 암호 (비대칭키 암호) 公開 非公開 暗號化 키 復號化 키 65
암호 종류 (공개키 암호) 공개키 암호의 특징 암호키와의 관계 암호화키 복호화키 암호화키 공개 복호화키 비밀 비밀키 전송 불필요 공개키 관리 공개키인증 기반구조 (PKI) 암호화 속도 느림 66
암호 종류 (공개키 암호) • 배낭꾸리기 문제의 어려움에 기반을 둔 암호 algorithm – 1978년 R. Merkle과 M. Hellman 이 처음 소개 • 큰 정수를 소인수분해하기 어렵다는 데 기반을 둔 암호 algorithm – RSA : 1978년 R. Rivest, A. Shamir, L. Adleman 이 개발 • 합성수를 法으로 하여 제곱근을 구하기 어렵다 는데 기반을 둔 암호 algorithm – 1979년 O. Rabin 이 처음 소개 • 素數를 法으로 한 有限體에서 離散對數를 구하 기 어렵다는 데 기반을 둔 암호 algorithm – 1984년 T. El. Gamal 이 처음 소개 67
암호 종류 (공개키 암호) • 符號理論에 기반을 둔 암호 algorithm – 1978년 R. Mc. Elice가 代數的 符號인 Goppa 符號에 기반을 둔 암호 algorithm 소개 – 1986년 H. Niederreiter가 線型 誤謬訂正 符號에 기반을 둔 암호 algorithm 소개 • 非가환군인 땋임군(Braid Group)에서 공액 문제의 어려움에 기반을 둔 암호 algorithm – 2000년 KAIST 고기형교수 외 5명이 소개 68
암호 종류 (공개키 암호) • 소인수분해 문제 (IFP : Integer Factorization Problem) - RSA (Rivest, Shamir, Adleman) 암호시스템 (1978년) • 이산대수 문제 (DLP : Discrete Logarithm Problem) - El. Gamal 암호시스템 (1984년) • 타원곡선 이산대수문제 (ECDLP : Elliptic Curve DLP) - 타원곡선 암호시스템 69
RSA 공개키 암호시스템 • 구성 – 두개의 큰 소수 p와 q를 생성하여 n=p q로 둠 – φ(n)=(p-1) (q-1)과 서로 소가 되는 e를 계산하고 e d 1 (mod φ(n))이 되는 d를 계산함 • 암호시스템 – – 공개키 : n, e 비밀키 : p, q, d 메시지 공간 : {M | 0 < M < n} 암호화 : C=E(M)=Me (mod n) 복호화 : M=D(C)=Cd (mod n)=Med (mod n) 70
RSA 소인수분해 역사 숫자 자릿수 성공 일자 사용된 방법 비 고 RSA-100 1991. 4. 1 MPQS RSA-110 1992. 4. 14 MPQS RSA-120 1993. 6. 9 MPQS RSA-129 1994. 4 MPQS RSA-130 1996. 4. 10 GNFS + QS RSA-140 1999. 2. 2 GNFS 네덜란드 RSA-155 1999. 8. 22 GNFS 네덜란드 RSA-160 2003. 4. 1 GNFS 독일 RSA-576 174 2003. 12. 3 GNFS 독일, 상금 1만불 RSA-640 193 2005. 11. 2 GNFS 독일, 상금 2만불 숫자 자릿수 상금 RSA-704 212 3만불 RSA-1024 309 10만불 CHALLENGE RSA-768 232 5만불 RSA-1536 463 15만불 RSA-896 270 7만5천불 RSA-2048 617 20만불 줄임말 MPQS : Multiple Polynomial Quadratic Sieve GNFS : Generalized Number Field Sieve QS : Quadratic Sieve 71
고전암호 분석기법 • - 검정 ( - test) – 단순 환자 암호 검정 • - 검정 ( - test) – 두 분포의 동일성 검정 • - 검정 ( - test) – 일치지수 (IC : Index of Coincidence) 72
암호 공격 방법 • 암호문 단독 공격 (ciphertext only attack) • 알려진 평문 공격 (known plaintext attack) • 선택 평문 공격 (chosen plaintext attack) • 선택 암호문 공격 (chosen ciphertext attack) 73
영문 문자 빈도 통계 (H. Beker & F. Piper, Cipher Systems, Wiley & Sons, 1982) 문자 빈도(%) A 8. 167 J 0. 153 S 6. 327 B 1. 492 K 0. 772 T 9. 056 C 2. 782 L 4. 025 U 2. 758 D 4. 253 M 2. 406 V 0. 978 E 12. 703 N 6. 749 W 2. 360 F 2. 228 O 7. 507 X 0. 150 G 2. 015 P 1. 929 Y 1. 974 H 6. 094 Q 0. 095 Z 0. 074 I 6. 966 R 5. 987 74
영문 특성 q 영어 단어 • 최대 빈도 길이 : 4 • 평균 길이 : 5. 2 q 빈도 순위 • • 1문자 2연접 3연접 4연접 : : E T A O I N S H R … EN RE ER NT TH ON IN TE … ENT ION AND ING IVE TIO FOR … TION EVEN TEEN ENTY … 75
한글 문자 빈도 통계 (강범모 • 김흥규, 한글 사용빈도의 분석, 고려대 민족문화연구소, 1997) 문자 빈도(%) ㄱ 7. 33 ㅈ 3. 39 ㅓ 5. 85 ㄴ 8. 25 ㅊ 0. 88 ㅕ 1. 95 ㄷ 4. 12 ㅋ 0. 19 ㅗ 4. 82 ㄹ 5. 92 ㅌ 0. 54 ㅛ 0. 38 ㅁ 2. 90 ㅍ 0. 49 ㅜ 3. 01 ㅂ 2. 35 ㅎ 2. 88 ㅠ 0. 20 ㅅ 5. 92 ㅏ 10. 62 ㅡ 5. 53 ㅇ 11. 51 ㅑ 0. 27 ㅣ 10. 70 76
한글 특성 q 빈도 순위 • 초성 : ㅇ(23. 2%) ㄱ(14. 3%) ㄷ(10. 6%) ㅅ ㅈ … • 중성 : ㅣ(24. 7%) ㅏ(24. 5%) ㅓ(13. 5%) ㅡ ㅗ … • 종성 : ㄴ(31. 3%) ㄹ(18. 2%) ㅇ(14. 3%) ㅅ ㄱ … * 전체 글자 중 46. 0%가 종성 있음 q 자모 빈도 순위 • ㅇ ㅏ ㅣ ㄴ ㄱ ㄹ ㅓ ㅅ ㅡ … (1979년) • ㅇ ㅣ ㅏ ㄴ ㄱ ㄹ ㅡ ㅓ ㅅ … (1980년, 98, 522자) • ㅇ ㅣ ㅏ ㄴ ㄱ ㄹ ㅅ ㅓ ㅡ … (1997년, 2, 951만자) q 음절 빈도 순위 • 이(3. 68%) 다(3. 04%) 는(2. 64%) 의(1. 99%) 에(1. 95%) 을(1. 85%) … 77
- 검정 ( - test) • = Σ fi (fi-1) 로 정의하면 – E( ) = s 2 N(N-1) – Var( ) = 4 N 3(s 3–s 22)+2 N 2(5 s 22+s 2 -6 s 3) +2 N(4 s 3 -s 2 -3 s 22) – 여기서 N = Σ fi , s 2 = Σ pi 2 (영문 : 0. 0661, 랜덤 : 0. 0385) s 3 = Σ pi 3 (영문 : 0. 00546, 랜덤 : 0. 00148) 78
- 검정 ( - test) 구분 E( ) Var( ) 영문 0. 0661 N(N-1) 0. 004344 N 3+0. 1104 N 2 -0. 1148 N 랜덤 0. 0385 N(N-1) 문장 0. 07396 N(N-1) 79
- 검정 ( - test) • Edgar Allan Poe, The Gold-Bug 53==+305))6*; 4826)4=. )4=); 806*; 48+8!60))85; 1=(; : =*8+ 83(88)5*+; 46(; 88*96*? ; 8)*=(; 485); 5*+2: *=(; 4956*2(5*4)8!8*; 4069285); )6+8)4==; 1(=9; 48081; 8: 8=1; 48+85; 4)485+ 528806*81(=9; 48; (88; 4(=? 34; 48)4=; 161; : 188; =? ; (N = 203, 8→ 33, ; → 26) - = 3230 - 영어 문장 E( )=0. 0661*203*202=2710 - 랜덤 문장 E( )=0. 0385*203*202=1579 80
- 검정 ( - test) • 암호문 1 IBMQO PBIUO MBBGA JCZOF MUUQB (B: 5, I: 2, M: 3, O: 3, Q: 2, U: 3) =5*4+2*1+3*2+2*1+3*2=42 • 암호문 2 HKWZA RRPBQ BIVYS MPDMQ MVUDC (B: 2, D: 2, M: 3, P: 2, Q: 2, R: 2, V: 2) =2*1+3*2+2*1+2*1=18 • 영어 문장 E( ) = 0. 0661*25*24 = 39. 7 • 랜덤 문장 E( ) = 0. 0385*25*24 = 23. 1 81
특이 사례 • 문장의 글자가 33개일 경우 – 영어 문장 E( ) = 0. 0661*33*32 = 69. 8 – 랜덤 문장 E( ) = 0. 0385*33*32 = 40. 6 – The quick brown fox jumps over a lazy dog (a: 2, e: 2, o: 4, r: 2, u: 2, 기타: 1) → = 2+2+12+2+2 = 20 • 영문 소설의 단어가 50, 000개일 경우 – E(‘e’의 빈도) = 50, 000*5. 2*12. 7% = 33, 020 – 1939년 미국 Ernest V. Wright 5만여 단어의 소설 “Gadsby” 완성 82
각국 s 2 비교 국별 s 2(문장) s 2(랜덤) 문자수 영국 0. 0661 0. 0385 26 프랑스 0. 0778 ” ” 독일 0. 0762 ” ” 이태리 0. 0738 ” ” 스페인 0. 0775 ” ” 포르투갈 0. 0791 ” ” 일본 0. 0819 ” ” 러시아 0. 0529 0. 0323 31 한국 0. 07046 0. 04167 비고 24 로마자化 83
- 검정 ( - test) • 암호문 3 HSKUS WKZVU YPPNE SHPVG HQXZS VWZXV LIJHW XSMEC FCSKT SCAFP IEAXO JGNUD OARFU (키워드가 40~50 자인 다표식 환자암호) PMFHD UJJIX MSPTP OIPCI USAIG BOOGA OPGPR HBOUC ACKRK VBGHM VSFRY YTKHK ARLKF IJSLT MHKAH QTUVT GOOYB XZVLI JRYAC DWEJM KAQDW EXPYP QHDNO JIXNZ ERJOY BDOKE IKDUV TDVEV 84
- 검정 ( - test) • 암호문 3 (키워드 50 자로 가정) Line 1 2 3 … 31 32 33 34 … 48 49 50 1 H S K … Y P P N … G P R 2 H B O … Y T K H … L K F 3 I J S … X Z V L … A F P 4 I E A … O A R F … D U V 5 T D V … H X O P … K R T 6 C C O … K Z 4 0 2 … 2 2 0 0 … 0 0 0 85
- 검정 ( - test) • 암호문 3 (키워드 50 자로 가정) N=6 N=5 w w 0 2 4 6 17 13 1 1 0 26 4 6 0 2 4 6 14 4 0 0 0 8 0 0 합계 32 36 합계 18 8 평균 =36/32 = 1. 13 평균 = 8/18 = 0. 44 86
- 검정 ( - test) • 암호문 3 (키워드 50 자로 가정) 구 분 N=6 N=5 영어 문장 : SD( ) 영어 문장 : E( ) 0. 36 1. 98 0. 40 1. 32 평균 관측치 1. 13 0. 44 랜덤 문장 : E( ) 1. 15 0. 26 0. 77 0. 29 랜덤 문장 : SD( ) 87
- 검정 ( - test) • 암호문 3 (키워드 49 자로 가정) Line 1 2 3 … 36 37 38 39 … 47 48 49 1 H S K … U S A I … P G P 2 R H B … K V W Z … A R L 3 K F I … L I J R … M S C 4 A F P … R F U E … K E I 5 K D U … X O P U … Z L T 6 P H K … K Z 2 4 2 … 2 0 0 0 … 0 0 0 88
- 검정 ( - test) • 암호문 3 (키워드 49 자로 가정) N=6 N=5 w w 0 2 4 6 13 19 4 1 0 38 16 6 0 2 4 6 10 1 0 2 0 6 합계 37 60 합계 12 8 평균 =60/37 = 1. 62 평균 = 8/12 = 0. 67 89
- 검정 ( - test) • 암호문 3 (키워드 49 자로 가정) 구 분 N=6 N=5 영어 문장 : E( ) 1. 98 1. 32 평균 관측치 1. 62 0. 67 랜덤 문장 : E( ) 1. 15 0. 77 90
- 검정 ( - test) • 암호문 3 (키워드 48 자로 가정) Line 1 2 3 … 41 42 43 44 … 46 47 48 1 H S K … B O O G … O P G 2 P R H … X V L I … H W A 3 R L K … R Y A C … W E J 4 M S C … U E R J … Y B D 5 O K E … O P U Z … O C U 6 K K Z … K Z 0 4 2 … 0 0 … 2 0 0 91
- 검정 ( - test) • 암호문 3 (키워드 48 자로 가정) N=6 N=5 w w 0 2 4 6 19 19 3 1 0 38 12 6 0 2 4 6 5 1 0 0 0 2 0 0 합계 42 56 합계 6 2 평균 =56/42 = 1. 33 평균 = 2/6 = 0. 33 92
- 검정 ( - test) • 암호문 3 (키워드 48 자로 가정) 구 분 N=6 N=5 영어 문장 : E( ) 1. 98 1. 32 평균 관측치 1. 33 0. 33 랜덤 문장 : E( ) 1. 15 0. 77 93
- 검정 ( - test) • 암호문 3 (키워드 43 자로 가정) Line 1 2 3 4 5 6 7 1 2 3 … 23 24 25 26 … 41 42 43 H S K … P C I W … B O O G A O … A C K R … H K V W Z X … A H Q T … O O Y B X Z … E A X O … O J I X N Z … E I K D … R O U N Y N O C U K B Z U G B U … K Z 2 0 2 … 4 6 2 0 4 6 2 … 94
- 검정 ( - test) • 암호문 3 (키워드 43 자로 가정) N=7 N=6 w w 0 12 44 18 0 2 4 6 8 14 w 3 9 4 1 1 1 w 0 18 16 6 8 14 0 2 4 6 11 3 합계 24 74 합계 19 62 평균 =74/24 = 3. 08 평균 =62/19 = 3. 26 95
- 검정 ( - test) • 암호문 3 (키워드 43 자로 가정) 구 분 N=7 N=6 영어 문장 : E( ) 2. 78 1. 98 평균 관측치 3. 08 3. 26 랜덤 문장 : E( ) 1. 62 1. 15 96
- 검정 ( - test) • 두 분포 {fi}, {f′i}가 주어졌을 때 • = Σ fi f′i 로 정의하면 – E( ) = s 2 N 1 N 2 – 여기서 N 1 = Σ fi , N 2 = Σ f′i s 2 = Σ pi 2 (영문 : 0. 0661, 랜덤 : 0. 0385) s 3 = Σ pi 3 (영문 : 0. 00546, 랜덤 : 0. 00148) 97
- 검정 ( - test) 구분 영문 일치 E( ) Var( ) 0. 0661 N 1 N 2[0. 001086(N 1+N 2)+0. 05957] 영문 0. 0385 N 1 N 2[0. 001063(N 1+N 2)+0. 03486] 불일치 랜덤 문장 0. 0385 N 1 N 2 0. 03698 N 1 N 2 98
- 검정 ( - test) • 암호문 4 (단순 환자암호) KARFH DFYFL DUDLR LVSVP YREFK DVSDH KARYE RPDRE UVENP FHDFY FLDUD LERXD VS (암호문 길이 • 암호문 5 (단순 환자암호) XERRS YRFLR RWDHK HIRLF DHUEF XDMRR FEKAO RHREQ RHFQV 이 : 53) DLLVV DSKAR : 72) NHRKA DLR (암호문 길 • 암호문 6 (단순 환자암호) PAOYO NPDHI THJQY FBZDO VZMVJ 99
- 검정 ( - test) 구분 영문 E( ) 랜덤 E( ) 암호문 4 394 338 197 암호문 5 248 182 106 암호문 6 228 258 150 100
- 검정 ( - test) 구분 E( ) 영문 일치 E( ) 영문 불일치 암호문 4 • 5 285 252 147 암호문 5 • 6 99 221 129 암호문 4 • 6 131 300 175 101
- 검정 ( - test) • 문장에서 임의의 두 문자 선택시 일치할 확률 : * 일치지수 (IC : Index of Coincidence) – 영어 문장 : e = Σ pi 2 = 0. 0661 – 랜덤 문장 : r = Σ pi 2 = 0. 0385 102
- 검정 ( - test) • 암호문 7 (난수 암호) UXMVN NDNNC QWXLE WEPWY FHBQM PQOFF KMUVR VYHZQ MELLV IDAEU CELAE EGZVM RWGKW MNWWY QUBKB BFPQH SSHKV TDTOE SGEOC UJARM PXPPS WJJUJ QYTQR DBUAJ VYIMZ MOXPR EXQLD OIQBI ICOAU OULNX KYGIH SBFMK EKNQY FFMDF MUNAJ SKSIM GYOEO ZOGCI FDMLF JDHAY CZGGE JVWAZ CBVJK MHLWJ UJBBA ALQCB XIMOA MHYQA WDAEN IXHSZ 103 LDWTO OERKI WMIAS UEZQD FRFIO UPXDN
- 검정 ( - test) • 암호문 8 (난수 암호) RPDKY IWXMN WJXTF MIBXD AVFRE ALOKJ MJPWD WBQZM GQQAK IFWFR XPGQT WFXKT REAJW TIISD QVBUB LCBOY EKUID KTOKA QULCN ZYWNH SZZRN XSVJD ZOXQJ CWASF RNRIE IWZDQ JTKPD YBUWT DRPNB QLSJW XMHSX HDPIY SGAPJ FQZPC GVZBY OPMGU GVFLK XOKXO HRMRZ SPCSL RNUTH EHAOM UGVNA YGPMJ CFXEW AFLNN TPSTL ZSKBE PPDSR ZCXHV 104 LTKQG LRCVB JLXAS EDREP ACWDX MPWPR
- 검정 ( - test) 구분 랜덤 E( ) 영문 E( ) 암호문 7 4206 4231 7264 암호문 8 3608 3760 6455 105
- 검정 ( - test) 구분 암호문 7 • 8 23 e r 영어 문장 랜덤 문장 21 12 106
- 검정 ( - test) • 암호문 7 UXMVN QUBKB BFPQH SSHKV TDTOE SGEOC UJARM NDNNC PRESI DENT (평문 1) FGIDF NQOR (난자) • 암호문 8 RPDKY QVBUB LCBOY EKUID KTOKA QULCN ZYWNH IWXMN MJVHT DFND (평문 2) 107
- 검정 ( - test) • 암호문 7 UXMVN QUBKB BFPQH SSHKV TDTOE SGEOC UJARM NDNNC (평문 1) PRES IDENT (난자) UJNU FAJAJ • 암호문 8 RPDKY QVBUB LCBOY EKUID KTOKA QULCN ZYWNH 108 IWXMN
질문 및 토의 109
감사합니다. 110
3435cd239754e996ba0e2cb7e111fec4.ppt