1.21k likes | 2.05k Views
암호 분석 기법. - 고전암호를 중심으로 - 2006. 12. 21 김병수 (fiveonekbs@paran.com). 차 례. 암호 개요 암호 역사 암호 종류 고전암호 분석기법. 암호 개요. 암호 의 정의 통신문의 내용을 제 3 자가 판독할 수 없는 글자 , 숫자 , 부호 등 으로 변경시킨 것 - 동아대백과사전 통신의 내용이 밖으로 새지 않도록 , 제 3 자는 모르고 , 저희 편끼리
E N D
암호 분석 기법 - 고전암호를 중심으로 - 2006. 12.21 김병수 (fiveonekbs@paran.com)
차 례 • 암호 개요 • 암호 역사 • 암호 종류 • 고전암호 분석기법
암호 개요 • 암호의 정의 • 통신문의 내용을 제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) • 평문을 해독 불가능한 형태로 변형하거나 또는 암호화된 통신문 을 해독 가능한 형태로 변환하기 위한 원리,수단,방법 등을 취 급하는 기술 또는 과학 암호학 기초(한국전자통신연구원)
암호 개요 • 암호학(cryptology) • 암호제작(cryptography) : 평문을 보호하기 위한 암호화 알고리즘을 연구 • 암호해독(cryptanalysis) : 평문으로 해독하기 위하여 암호문과 암호화 과정을 연구
암호 개요 • 암호를 사용하는 목적 • 비밀성 유지 (Confidentiality) : 인가자만이 정보에 접근할 수 있어야 함 • 자료에 대한 무결성 유지 (Data Integrity) : 정보가 위조 또는 변조되었는지 확인할 수 있어야 함 • 사용자 또는 자료의 출처 인증(Authentication for Entity and Data) : 정보의 생산이 정당한지 검증 되어야 함 • 부인방지(Non-repudiation) : 정보처리를 실행한 후 사용자가 이를 거부할 수 없도록 해야 함
암호 개요 • 암호시스템 개요 암호화 키 복호화 키 암호알고리즘 (암호화) 암호알고리즘 (복호화) 평 문 암호문 암호문 평 문 송신자 수신자 암 호 해 독 평 문 도청자
암호 역사 • 1세대 암호시스템 • 고대~19세기말 • 단순한 문자 환자(換字) 및 환치(換置) 방법 사용 • 2세대 암호시스템 • 20세기초~1940년대 말 • 복잡한 암호기계 이용 • 3세대 암호시스템 (현대 암호) • 1940년대 말 Shannon의 논문 발표 이후 • 각종 이론 등에 부합하는 복잡도가 높은 암호 알고리즘
암호 역사(1세대 암호시스템) • 환자(換字) 암호 (substitution cipher) • 평문의 문자를 다른 문자로 바꾸어 암호문 생성 • 환치(換置) 암호 (transposition cipher) • 평문에서 문자의 순서만을 바꾸어 암호문 생성 • 혼합 암호 • 환자 환치 암호 • 난수 암호
암호 역사(2세대 암호시스템) • 1933~1945년 독일군은 Enigma 라 불리는 암호문 작성기를 이용, 암호통신 실시 • 1937년부터 일본은 외교통신을 암호화 하고자 암호문 작성기를 사용하였으며, 미국은 이를 ‘Purple Machine’이라 부름 • 1942년부터 미군은 Hagelin이 발명한 M-209암호문 작성기를 사용
Switching Unit Housing for stepping switch Stepping Switch Purple Machine
H = Pi log2Pi i 암호 역사(3세대 암호시스템) • 1948년 Claude E. Shannon은 ‘Mathematical Theory of Communication’을 발표하여 정보의 가치를 엔트로피로 계량화 • 엔트로피 : 주어진 정보를 가능한 한 압축하여 비트로 표현할 때 필요한 비트의 수 • 혼동(confusion)과 확산(diffusion)기법을 사용하여 복잡도가 높은 암호시스템 구현 가능
P0 P1 K F C0 C1 암호 역사(3세대 암호시스템) • 1970년 H. Feistel등은 DES의 모체가 된 LUCIFER를 • 개발하였고, block 암호의 기본구조로 널리 사용되는 • Feistel 구조를 고안 [암호화] C0 = P1 C1= P0 F(P1, K) : exclusive or
C1 C0 K F P1 P0 암호 역사(3세대 암호시스템) [복호화] P1 = C0 P0= C1 F(C0, K)
암호 역사(3세대 암호시스템) • 1977년 미국 NBS는 IBM이 개발한 DES (Data Encryption Standard)를 연방 표준 암호로 발표 • 구조: Feistel 구조를 반복 • 입·출력 길이 : 64 bit • 암호키 길이 : 56 bit • 실행 라운드수 : 16 회 • 非선형인 S-box : 8 개
R. Rivest L. Adleman 암호 역사(3세대 암호시스템) • 1976년 W. Diffie와 M. Hellman은 ‘New Directions in Cryptography’에서 공개키 암호의 개념 발표 • 1978년 R. Rivest, A. Shamir 및 L. Adleman은 큰 정수에 대한 소인수분해가 어렵다는 사실을 이용한 공개키 암호시스템인 RSA 개발 A.Shamir
암호 역사(3세대 암호시스템) • 1990년 X. Lai와 L. Massey는 IDEA를 개발 • IDEA : International Data Encryption Algorithm • PES IPES (Improved PES) IDEA • 1990년 E. Biham과 A. Shamir는 差分 암호 해독법(Differential Cryptanalysis)을 소개 • 주어진 差를 갖는 입력 평문 쌍에 대해 출력되는 암호문의 差를 분석하는 방법
암호 역사(3세대 암호시스템) • 1991년 R. Zimmermann은 PGP (Pretty Good Privacy)개발 • 공개키 암호방식을 사용한 file 및 전자메일 암호화 program • 1993년 Matsui는 線型 암호해독법 (Linear Cryptanalysis) 소개 • 암호 알고리즘의 입·출력 사이에 주어지는 선형관계를 이용한 분석법
암호 역사(3세대 암호시스템) • 1994년 W. Shor는 큰 수를 효과적으로 소인수분해할 수 있는 量子計算法 소개 • 1997년 NIST는 DES를 대신할 미국 표준 암호(AES)를 공개 모집 • AES : Advanced Encryption Standard • 1999. 8월 NIST는 AES의 마지막 후보 5개 선정 • MARS, RC6, Rijndael, Serpent, Twofish
알고리즘 형태 비고 CAST-256 MFN CRYPTON SPN 한국 DEAL FN DFC FN E2 FN 일본 FROG Interp. HPC OMNI LOKI97 FN MAGENTA FN SAFER+ SPN MARS MFN 美 IBM RC6 MFN 美 RSA RIJNDAEL SPN 벨기에 SERPENT SPN 英-이스라엘-덴마크 TWOFISH FN 美 Counterpane 암호 역사(3세대 암호시스템) • MFN : Modified Feistel Network • SPN : Substitution Permutation Network • FN : Feistel Network • Interp. : Interpreter design • OMNI : different design (name by designer) 2000년 10월 최종 선정
암호 역사 (국내) • 1948.12월 陸軍이 창설되면서 육군본부 직할부대에 전파감시소를 설치하고 美軍의 도움을 받아 암호를 제작하여 全軍에 배포 • 1950. 6월 육군 전파감시소는 북한의 암호문 解讀 • 대한민국 暗號解讀의 첫걸음 • 1961년 暗號 제작업무를 中央情報部로 이관 • 軍을 포함한 全 행정기관에 확대 적용
암호 역사 (국내) • 1961년부터 中央情報部는 각급 행정부처 및 해외공관에 암호자재를 제작 배포 • 1980년 외교암호 시스템이 컴퓨터를 사용 半自動化 • 1984년 자동화(전산화) 암호시스템 사용 • 현재 128 비트이상 키를 사용하는 현대암호 적용
암호 역사 (국내) • 1995. 3월 국내에서 가장 많이 쓰이고 있던 ‘아래아한글 2.1’용 암호 해독 • 1997년 한국 國家機關用 표준암호 NEAT제정 • NEAT : National Encryption AlgoriThm • 1998년 부가형 전자서명방식(KCDSA)을 한국정보통신단체 표준으로 확정 • Korean Certificate-based Digital Signature Algorithm
암호 역사 (국내) • 1998년 Hash algorithm HAS-160을 한국정보 통신단체 표준으로 확정 • 1999년 한국 民間用 표준암호 SEED제정 • SEED : 정보보호의 씨앗이 되라는 뜻 • 2004.12월 한국 국가 표준 암호 ARIA제정 • 산업자원부 KS 규격 : KS X 1213 • Academy – Research Institute - Agency
암호 종류 암호 고전 암호 현대 암호 사이퍼(cipher) 비밀키 암호 1948 환자 암호 블록 암호 환치 암호 스트림 암호 코드(code) 공개키 암호 etc. etc. 秘密書法 (隱書), 隱語 등 量子暗號, DNA 暗號 등
암호 종류 (고전암호) • 환자 암호 (substitution cipher) • 평문의 문자를 다른 문자로 바꾸어 암호문 생성 • 환치 암호 (transposition cipher) • 평문에서 문자의 순서만을 바꾸어 암호문 생성 • 혼합 암호 • 환자 환치 암호 • 난수 암호
환자(換字) 암호 • 단순 환자 암호 : 평문과 암호문 1:1 대응 • 동음이의 환자 암호 : 평문과 암호문 사이에 1:多 대응 • 다표식(多表式) 환자 암호 : 다중 환자를 사용 • 다자(多字) 환자 암호 : 한번에 여러 개의 문자를 암호화
단순 환자 암호(simple substitution cipher) M= KOREA C = DIMOX (Key : 3 + KOREA) (예) 시저암호 : f(a)=a+3
단순 환자 암호(simple substitution cipher) • 아핀 변환 (affine transformation) • f(x) ≡ 3 x + 5 (mod 26) M= KOREA C = JVERF
동음이의 환자 암호(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개 할당
다표식 환자 암호(polyalphabetic substitution cipher) • Blaise de Vigenère (1523 ~ 1596) • 多重文字方式 • Vigenère table ( C ≡ M + K (mod 26) ) • Autokey system • 1st autokey 방식 : 평문을 암호키로 사용 • 2nd autokey 방식 : 암호문을 암호키로 사용
평 문 This is cipher 암호키 THREE MOZWM LJZTL XY 암호문 평 문 This is cipher 암호키 THREE MOZWM EQHLT IH 암호문 Vigenère Table 1st Autokey 2nd Autokey MOZWM EQ
평 문 : CY BE RT ER RO RZ 암호문 : FW FK ES AE ER AX 다자 환자 암호(polygram substitution cipher) • Playfair 암호 암호키 : KOREA
A DELA 20, 10, 16, 5 25, 2, 3, 14 JCOW 다자 환자 암호(polygram substitution cipher) • Hill 암호 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 A
23 20 5 1 2 11 18 1 20 2 6 25 25 2 22 25 JCOW 25, 2, 3, 14 20, 10, 16, 5 DELA A-1 다자 환자 암호(polygram substitution cipher) • Hill 암호 A-1 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 25 + 2 2 + 22 3 + 25 14
환치(換置) 암호 • 경로(route) 환치 암호 • 원주(columnar) 환치 암호 • 도형(figure) 환치 암호 • 그릴(grille) 환치 암호
경로 환치 암호(route transposition cipher) • 평문 : 함북 오지에서 삼점육 규모 지진파 탐지 • 암호문 : 함에육진 북서규파 오삼모탐 지점지지
원주 환치 암호(columnar transposition cipher) • 평문 : 함북 오지에서 삼점육 규모 지진파 탐지 키워드사 이 버 테 러 3 4 2 5 1 • 암호문 : 에규탐오 점진함서 모지북삼 지지육파
도형 환치 암호(figure transposition cipher) • 평문 : 함북 오지에서 삼점육 규모 지진파 탐지 함 북 오 지 에 서 삼 점 육 규 모 지 진 파 탐 지 5 4 6 3 1 7 2 키워드 상 산 수 리 과 학 관 • 암호문 : 오육지에 모북점탐 서진지함 삼파지규
그릴 환치 암호(grille transposition cipher) • 평문 : 함북 오지에서 삼점육 규모 지진파 탐지 • 암호문 : 서모지함 육지삼북 지점파에 진오규탐
암 호 문 울 동 뱃 이 외 섬 새 고 그 아 자 땅 우 독 우
혼합 암호 • 환자 환치 암호 • 19세기 말 Delastelle암호 • 제1차 세계대전시 독일의 ADFGX 암호 및 ADFGVX 암호 • 난수 암호 • 1차로 환자 암호 변환후 2차로 난수 적용
환자 환치 암호(Delastelle cipher) KeywordSEVEN SECURITY 41523 • 평문 : WAIT THE ORDERS • 3111 154 245444 • 5241 121 234134 • 암호문 : VTYLT DLHAQ SEQ
환자 환치 암호(독일 ADFGX cipher) KeywordDEUTSCH SECURITY • 평문 : W A I T T H E O R D E R S • 환자 :XDDFFDAGAGDDAD GDGXAAADGXAX • 암호문 : DDADG XXDDD FAAXA GAAGG • FDAGD X
암호 종류 (현대암호) • 비밀키 암호 (대칭키 암호) • 암호화 키와 복호화 키가 서로 같음 • 블록 암호 : 암복호화시 한번에 복수의 비트 처리 • 스트림 암호 : 암복호화시 비트 1개씩 처리 • 공개키 암호 (비대칭키 암호) • 암호화 키와 복호화 키가 서로 다름 • 암호화 키는 공개, 복호화 키는 비공개
암호 종류 (현대암호) 비밀키 암호 (대칭키 암호) 블록 암호 스트림 암호 非公開 非公開 暗號化 키 復號化 키
암호 종류 (비밀키 암호) • 사용자 : 5 • Key : 10 • 사용자 : n • Key : n(n-1)/2 • 사용자 : 2 Key : 1
비밀키 암호의 특징 암호키와의 관계 암호화키 = 복호화키 암호화키 비밀 복호화키 비밀 비밀키 전송 필요 비밀키 관리 문제점 암호화 속도 빠름 암호 종류 (비밀키 암호)