1 / 55

Chap 3. 관용 암호 방식 현대적 기법

Chap 3. 관용 암호 방식 현대적 기법. 목차. 3.1 단순 DES 3.2 블록 암호 기법의 원리 3.3 DES DES DES 의 공격 방법 DES 작동 모드. 과제물. 단순 DES 의 암호화 / 복호화 입력 평문 : 본인의 영문 이름 키 : 원하는 10 비트 키를 사용 ( 예 : 10 0110 0001) 제출방법 : A4 에 손으로 암호화 과정 및 복호화 과정. 3.1 단순 DES. DES (Data Encryption Standard)

meryle
Download Presentation

Chap 3. 관용 암호 방식 현대적 기법

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chap 3. 관용 암호 방식 현대적 기법

  2. 목차 • 3.1 단순 DES • 3.2 블록 암호 기법의 원리 • 3.3 DES • DES • DES의 공격 방법 • DES 작동 모드

  3. 과제물 • 단순 DES 의 암호화/복호화 • 입력 • 평문 : 본인의 영문 이름 • 키 : 원하는 10비트 키를 사용(예 : 10 0110 0001) • 제출방법 : A4에 손으로 암호화 과정 및 복호화 과정

  4. 3.1 단순 DES • DES (Data Encryption Standard) • IBM에서 Lucifer System을 개선하여 만듬 • 1977년 미 상무성의 국립 표준국(NBS)에서 표준 암호 알고리즘으로 채택 • 64비트 블럭 암호 알고리즘 • 56비트 키를 사용 • 64비트 중 8비트는 parity check로 사용 • 기본 구조 • round 수 : 16 round • 복호화는 암호화의 역순 • 단순 DES • 교육용 알고리즘 • 8비트 평문 블럭 과 10비트 키를 사용

  5. 기본 함수 • IP (Initial Permutation) : 초기순열 • 함수 fK • 전치(transposition) • 치환(substitution) • SW : 데이터의 두 절반을 상호 교환하는 함수 • 함수 fK • IP-1 (Inverse Initial Permutation) : 초기 순열의 역인 순열 함수 • 암호화/복호화 • Ciphertext = IP-1(fK2(SW(fK1(IP(Plaintext))))) • Plaintext = IP-1(fK1(SW(fK2(IP(Ciphertext)))))

  6. 키생성 • S-DES는 10-bit Key를 사용 • 두개의 8-bit sub key생성 • P10(k1,k2,k3,k4,k5,k6,k7,k8,k9,k10) =(k3,k5,k2,k7,k4,k10,k1,k9,k8,k6) ex : Key(1010000010) --> (1000001100)

  7. LS-1 : 1비트 Circular Left Shift연산 ex : (10001) --> (00011) • P8 • 입력 : 10비트 • 출력 : 8비트 • P8(k1,k2,k3,k4,k5,k6,k7,k8,k9,k10) =(k6,k3,k7,k4,k8,k5,k10,k9)

  8. 1 0 0 1 0 0 1 1 1 0 1 2 3 4 5 6 7 8 9 10 35 2 7 4 10 1 9 8 6 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 1 2 3 4 5 6 7 8 9 10 6 3 7 4 8 5 10 9 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 2 3 4 5 6 7 8 9 10 6 3 7 4 8 5 10 9 1 1 1 0 0 0 1 0

  9. 암호화 과정 • 입력 : 8비트 • 출력 : 8비트 • IP(초기 순열)과 IP-1(역 초기 순열) • M = (IP-1(IP(M))

  10. 함수 fK • 전치(transposition) • 치환(substitution) • 입력 8비트 • L (Left most 4 bits) • R (Right most 4 bits) • 처리 • fK = ( L XOR F( R, SK ), R ) • SK (Sub Key = K1 or K2) • 함수 F()사용

  11. E/P (Expansion/Permutation) • 입력 : 4비트 • 출력 : 8비트 • P4

  12. S-Box • 입력 : 4비트 ( 1 0 1 0 ) • 처리 • 행 : 1 번째와 4번째 비트 ( 1 0 ) • 열 : 2 번째와 3번째 비트 ( 0 1 ) S0 S1

  13. S-DES분석 • Brute force 공격 가능 • 10비트 키로 단지 2^10 = 1024 가지의 가능성 • 암호해독 가능 • 기지 평문 공격 : 단일평문과 그 출력 암호문이 알려져 있을때 • 10개의 미지수(키)를 갖는 8개의 비 선형 방정식(p, c)으로 나타낼 수 잇음 => 공격 가능

  14. 3.2 블록암호 기법의 원리 • 스트림 암호와 블록 암호 기법 • 스트림 암호 기법 • 한번에 1비트 혹은 1 바이트의 디지털 데이터 스트림을 암호화 • Vigenere 암호, Vernam 암호 • 블록 암호 기법 • 평문 블록 전체를 가지고 같은 크기의 암호문 블록을 생성 • 전형적으로 64비트를 사용 • 스트림 암호보다 더 넓은 범위에 응용 가능 • 대부분의 네트워크 암호는 블록 암호 방식을 따름 • Feistel 블록 암호 기법의 구조에 따름

  15. Feistel 암호 구조의 유도 • 입력 : n비트 • 출력 : n비트 • 암호화가 역이 성립하기 위한 조건 • Reversible • Mapping Reversible Mapping P C 00 11 01 10 10 00 11 01 Irreversible Mapping P C 00 11 01 10 10 01 11 01

  16. 그림 3.4 참조 • N=4 일때 블록 치환 • 작은 블록으로 인해 취약점 존재 • 적당한 크기의 n 설정 방법 • 크면 클수록 암호화 강도는 높아짐 • 작으면 작을수록 구현과 성능 면에서는 좋음 => 적당한 암호학적 강도를 갖고 구현이 용이할 정도의 크기선택

  17. Feistel 암호방식 • 적(product) 암호의 개념을 이용하여 단순한 치환 암호를 개략적으로 설계할 수 있음을 제안 • 치환과 순열을 번갈아 수행하는 암호 방식의 사용을 제안 • 혼돈(confusion) 함수와 확장(diffusion) 함수를 번갈아 수행 • 현재 사용하고 있는 모든 중요한 대칭 블록 암호의 기본구조

  18. 확산과 혼돈 • 통계적 분석에 기초한 암호 해독 방지법=> Claude Shannon에 의해 소개된 방법 • 확산(diffusion) • 평문의 통계적 구조가 암호문의 광범위한 통계 값에 분산되어 버리는 방식 • 각 평문 숫자(digit)가 다수의 암호문 숫자 값에 영향을 주게 함으로서 가능 • 예> 문자 메시지 M = m1m2m3 …를 통하여 하나의 암호 문자 yn을 생성하는 방식 yn = sum( 1 <= i <= k ) mn+i mod 26

  19. 혼돈 • 키를 발견하기 어렵게 하기 위한 방법 • 암호문에 대한 통계 값과 암호 키 값 사이의 관계를 가능한 복잡하게 만드는 것 • 복잡한 치환 알고리즘을 사용함으로 가능

  20. Plaintext(2w bits) Feistel 암호구조 L0 w bits w bits R0 Round1 K1 XOR F L1 R1 Ki Roundi XOR F Li Ri Kn Roundn XOR F Ln Rn Ln+1 Rn+1 Ciphertext(2w bits)

  21. Feistel 암호 구조 • 왼쪽 반의 데이터에 치환(substitution)이 수행됨 • 치환 다음에는 데이터의 두 개의 반을 교환하는 순열(permutation)이 수행됨 • SDES와 Feistel 의 차이점 • 알고리즘이 순열 함수로 시작되고 종료됨 • IP • IP-1

  22. Feistel 네트워크의 매개변수 • 블록크기 : 64비트의 블록 크기이면 적당 • 키 크기 : 64비트 또는 그 이하의 키 크기는 부적절하며 128비트가 일반적 • 반복 수 : 단일 과정은 보안에 부적절하지만 다중 반복 과정은 보안성을 증가시킴, 전형적인 반복 횟수는 16회 • 서브키 생성 알고리즘 : 알고리즘이 복잡할수록 암호해독이 어려워짐 • 반복 함수 : 역시 함수가 복잡할수록 일반적으로 암호 해독에 더 강해짐

  23. Plaintext(2w bits) Plaintext(2w bits) LE0 w bits w bits RE0 w bits w bits K1 RD16=LE0 LD16=RE0 XOR F LD16=RE0 RD16=LE0 K1 RE1 LE1 K2 F XOR F XOR RD15=LE1 LD15=RE1 K2 XOR F LD14=RE2 RD14=LE2 LE14 RE14 K15 XOR F LD2=RE14 RD2=LE14 K15 RE15 LE15 K16 F XOR F XOR RD1=LE15 LD1=RE15 K16 LE16 RE16 XOR F RE16 LE16 LD0=RE16 RD0=LE16 Ciphertext(2w bits) Ciphertext(2w bits)

  24. 암호화 과정 • LE16 = RE15 • RE16 = LE15 XOR F(RE15,K16) • 복호화 과정 • LD1 = RD0 = LE16 = RE15 • RD1 = LD0 XOR F(RD0,K16) = RE16 XOR F(RE15,K16) = LE15 XOR F(RE15,K16) XOR F(RE15,K16)

  25. 3.3 DES (Data Encryption Standard) • 특징 • IBM에서 Lucifer System을 개선하여 만듬 • 1977년 미 상무성의 국립 표준국(NBS)에서 표준 암호 알고리즘으로 채택 • 64비트 블럭 암호 알고리즘 • 56비트 키를 사용 • 64비트 중 8비트는 parity check로 사용 • 기본 구조 • round 수 : 16 round • 복호화는 암호화의 역순 • 최근에는 DES암호화를 세 개의 키로 세 번 반복함으로써 암호의 강도를 높인 Triple-DES를 사용

  26. DES의 역사 • 전용 암호시스템 : 타 그룹간의 통신에 불리==> 데이터 암호화 표준이 필요 • 공개암호 표준: 미국 연방 정부가 움직임 • 표준화 검토(1972),적합한 암호 알고리즘 조사 • 1973년 5월:암호방식 공모(1차) • 1974년 8월: 2차 공모==>IBM이 요건을 갖춤 ==>NBS가 요건을 NSP에 의뢰

  27. 조사에 대한 요구 1. It must provide a high level of security. 2. It must be completely specified and easy to understand. 3. The security provided by the algorithm must not be based on the secrecy of the algorithm. 4. It must be all users and suppliers.

  28. 조사에 대한 요구 (계속) 5. It must be adaptable for use in diverse applications. 6. It must be economical to implement in electronic devices and be efficient to use. 7. It must be amenable to validation. 8. It must be exportable.

  29. DES의 역사(계속) • 1975년~1977:일반 comment,계약 체결 • 1977:NBS(NIST)가 DES를 표준 암호 알고리즘으로 채택 • U.S.banks have been adopted DES • NBS postponed guarantee term of DES from till 1988 to till 1993 • NSA proposed CCEP(Commercial COMSEC Endorsement Program;상용 통신 안전 보증 계획)instead of DES • U.S. bank expect to continue the use of DES

  30. K16 입 력 초기 치환 f L0 R0 R16 L16 K1 f L1 R1 역초기 치환 K2 f : : 출 력 L2 R2 : : 3.3.1 DES • DES의 기본 구조 (데이타 암호화부) • Li = Ri-1 Ri = Li-1 XOR f (Ri-1, Ki)

  31. 초기 치환 IP 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7

  32. R(32bit) 확장순열 K (48bit) 48bit . . . . S-box table S1 S2 S7 S8 P 32 bit • f함수의 구성도

  33. 확장순열 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 치환 P 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25

  34. S-box Table S1 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 • 예) 1 0 1 1 0 1 ------ 6비트 입력 행 (3행) 열 (6열) 10진수 ‘1’를 4비트로 출력 : 0 0 0 1

  35. 순열선택1 c0 d0 좌측 시프트 좌측 시프트 c1 d1 K1 순열선택2 좌측 시프트 좌측 시프트 c2 d2 K2 순열선택 2 : : : : : : 좌측 시프트 좌측 시프트 c15 d15 K16 순열선택 2 • DES의 기본 구조 (키 생성부)

  36. 순열선택1(PC1) 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 순열선택2(PC2) 14 17 11 24 1 5 3 28 15 6 21 10 23 19 2 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 38 44 49 39 56 34 53 46 42 50 36 29 32

  37. 쉬프트 스케줄 라운드 수 좌측 쉬프트 수 1 1 2 1 3 2 4 2 5 2 6 2 7 2 8 2 9 1 10 2 11 2 12 2 13 2 14 2 15 2 16 1

  38. DES는 강한 쇄도 효과(Avalanche Effet)를 갖는다. • DES에 관한 우려사항 • 미 정부의 채택이후 DES의 보안 수준에 대한 우려가 지속. • 알고리즘의 성질을 이용한 암호 해독의 가능성 • 예) s - box의 약점에 대한 공격 가능성 주장 제기됨 그러나, 약점을 발견한 사람은 현재 존재 하지 않음 • 키 길이에 관한 우려 • Key Serarch Machine ( 기지 평문 공격 ) Cost Expected search Time $ 100,000 35hours $1,000,000 3.5hours $10,000,000 21minutes

  39. Brute force Attack ; 1970년대/80년대 --- low computing power 90년대 --- high computing power • 미국 수출 허용 기준인 40비트의 키 : Michael Wienerd의 key search machine으로 0.2초만에 해독 가능 Key size Number of One Encryption 106 Encryption Alternative Keys per micro sec per micro sec 32bits 223 = 4.3 * 109 35.8 minutes 2.15ms 56bits 256 = 7.2 * 1016 1142years 10.01h 128bits 2128 = 3.4 * 1038 1024years 5.4 * 1018 years

  40. 3.3.2 DES의 공격 방법 • 공격 방법 • 차분 암호 해독 (Differential Cryptanalysis) • DES에 적용해서 널리 알려짐 • 255미만의 복잡도로 DES를 해독 • 247의 선택평문을 가지고 247차수로 DES를 해독 • 선형 암호 해독 (Linear Cryptanalysis) • 247기지 평문으로 해독가능 • 기지 평문이 선택 평문보다 구하기 쉽지만 DES공격으로서의 선형 암호 해독은 가능성이 없다. • 선형 암호 해독의 타당성의 주장이 약하다.

  41. 3.3.3 DES 작동 모드

  42. ECB (Electronic Codebook) 모드의 특징 • 평문은 64비트씩 처리 • 마지막 비트가 64비트 미만이면 나머지 비트를 채운 후 진행 • 동일한 블록이 입력되면 암호문도 같다. --> 해독될 위험성이 있다. • 중요 데이타가 같은 위치에 있을 때 취약블럭이 상호 결합하지 않음 => 연속적인 블럭 암호화법 ; Chaining 기법

  43. CN PN C2 C1 P1 P2 DES 암호화 DES 암호화 DES 복호화 DES 암호화 DES 복호화 DES 복호화 K K K K K K CN PN C2 C1 P1 P2 • ECB (Electronic Codebook) 모드 • 암호화 ... • 복호화 ...

  44. CBC (Cipher Block Chaining) 모드의 특징 • 하나의 암호화 스텝의 출력을 사용하여 다음 입력으로 수정 • 각각의 암호 블럭은 서로 영향을 받음 • 선행하는 평문 블럭 전체에 좌우됨 • Cn : 모든 평문 블럭 P1, P2, ..., Pn의 함수 • 암호화 : Cn=Ek(Pn+C n-1) • 복호화 : Qn=Dk (Cn) + C n-1 =Pn • Padding • Self-Recovering 기능

More Related