1 / 41

Chap 7. 암호 알고리즘

Chap 7. 암호 알고리즘. 목 차. 1. MD5 메시지 다이제스트 알고리즘 2. 안전한 해쉬 알고리즘 3. 국제 데이터 암호 알고리즘( IDEA) 4. SKIPJACK 5. LUC 공개키 암호. 1. MD5 메시지 다이제스트 알고리즘. MIT 의 Ron Rivest 에 의해 개발( RSA 개발자 중의 한사람) MD5 로직 입력 : 임의의 길이의 메시지 출력 : 128 비트 메시지 다이제스트 5단계로 구성. 그림 7.1 MD5 를 이용한 메시지 다이제스트 생성.

marvin
Télécharger la présentation

Chap 7. 암호 알고리즘

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 7. 암호 알고리즘

  2. 목 차 1. MD5 메시지 다이제스트 알고리즘 2. 안전한 해쉬 알고리즘 3. 국제 데이터 암호 알고리즘(IDEA) 4. SKIPJACK 5. LUC 공개키 암호

  3. 1. MD5 메시지 다이제스트 알고리즘 • MIT의 Ron Rivest에 의해 개발(RSA 개발자 중의 한사람) • MD5 로직 • 입력 : 임의의 길이의 메시지 • 출력 : 128 비트 메시지 다이제스트 • 5단계로 구성

  4. 그림 7.1 MD5를 이용한 메시지 다이제스트 생성 페딩 (1-512bit) 메시지 길이 (K mod 2 64) LY 512bits = NY 32bits K bits 메시지 1000....0 Y0 Y1 . . . . . . . Yq ........ YL-1 512 512 512 512 ABCD HMD5 HMD5 128bit HMD5 HMD5 128bit digest

  5. 1단계 : 패딩 비트 부가 • 패딩비트 범위 : 1 - 512 비트 • 하나의 1과 원하는 길이의 0으로 패딩 • 메시지가 원하는 길이일 지라도 패딩은 항상 부가 • 2단계 : 부가된 길이 • 본래 메시지에 64비트가 첨가 • 1, 2단계에 의해 길이가 512비트의 정수배가 되는 메시지를 얻음 • 3단계 : MD 버퍼의 초기화 • 버퍼의 용도 : 해수함수의 중간과 최종 결과 보관 • 버퍼 : 버퍼는 4개의 32비트 레지스터(A,B,C,D)로 표현 • 레지스터들은 다음과 같은 16진수의 값으로 초기화 A = 01234567 B = 89ABCDEF C = FEDCBA98 D = 76543210

  6. 4 단계 : 512(16단어)블럭의 메시지 처리 입력 : 512비트 블럭, 128비트 버퍼값 (A,B,C,D), 사인 함수로 구성되는 64비트 요소. Algorithm : • 4개의 라운드 처리로 구성된 모듈 • 같은 함수구조를 가지면서 서로 다른 기약함수에 의존 • 테이블중에 각 라운드마다 1/4를 사용 • T[i]에서 i번째 요소는 232 * abs(sin(i))의 정수 부분과 일치 압축 함수 : F(U,V,W) = (ULV)V(~ULW) G(U,V,W) = (ULV)V(UL~W) H(U,V,W) = U+V+W I (U,V,W) = V+V(UL~W) 3개의 32비트단어를 입력으로 취하고 하나의 32비트 단어 출력

  7. 5단계 : 출력 512비트 입력으로 128비트 출력이 나옴 단계 연산 설명 - ABCD에서 16단계 처리 계열로 구성 A := B + CLSS(A+G(B,C,D) + X[k] + T[i]) A,B,C,D : 버퍼의 4단어 G : 기약 함수 F,G,H,I의 하나 CLSS : 32비트에서 s비트 순환 좌측 쉬프트(로테이션) X[K] : 메시지의 q번째 512비트 블럭에서 k번째의 32비트 단어 T[i] : 행렬 T에서 i번째 32비트 단어 + : 법 232 의 덧셈

  8. 32비트 단어 배열 는 현재 처리되고 있는 512비트 블럭값을 가진다. • 입력의 각 32비트 32비트 단어는 라운드마다 한 번씩 4번 사용되고, 의 64개의 32비트 단어 요소의 각각은 정확히 한번 사용된다. • 각 단계에 대하여 버퍼의 4바이트중 하나만이 갱신. 각 바이트는 라운드 동안 16번 갱신.

  9. [PIC3. MD5의 기본 동작] A B C D G + + X[k] + T[i] CLSS +

  10. MD4 해쉬함수 출력 : 128비트 입력 : 512비트 메시지 블럭 (16개의 32비트 워드)과 상수 초기값 : IV0=67452301 EFCDEAB89 98BADCFE 10325476 패딩 : 패딩은 (512의 배수 - 64)가 될 때까지 한다. 추가 패딩 : 메시지의 길이의 64비트 표현으로 남은 64비트를 채운다. 상수 : K1 = 5A827999, K2 = 6ED9EBA1 압축 함수 : F(U,V,W) = (UL U)V(~ ULW) G(U,V,W)= (UL U)V(~ULW)V(VLW) H(U,V,W) = U+V+W 단계 연산 : FF(a,b,c,d,Z,s) | a := (a + F(b,c,d) + Z)<<s FF(a,b,c,d,Z,s) | a := (a + F(b,c,d) + Z)<<s FF(a,b,c,d,Z,s) | a := (a + F(b,c,d) + Z)<<s

  11. MD4와 MD5의 차이점 비교 • MD4는 16단계의 3라운드를 사용하나, MD5는 16단계의 4라운드를 사용한다. • MD4는 각 라운드에서 한 번씩 3개의 기약함수를 사용한다. 그러나 MD5는 각 라운드에서 한번씩 4개의 기약 논리 함수를 사용한다. • MD5의 각 단계는 이전 단계의 결과에 부가된다.

  12. 2. 안전한 해쉬 알고리즘(SHA, SHS) 출력 : 160비트 해쉬 입력 : 512비트 메시지 블럭과 상수 초기값 : A= 67452301 B=EFCDAB89 C=98BADCFE B= 10325476 E=C3D2E1F0 패딩 : 패딩은 (512의 배수 - 64)가 될 때까지 한다. 추가 패딩 : 메시지의 길이의 64비트 표현으로 남은 64비트를 채운다. 상수 : 0 t 19 Kt = 5A827999 20 t 39 Kt = 6ED9EBA1 40 t 59 Kt = 8F1BBCDC 60 t 79 Kt = CA62C1D6 압축함수 : F(U,V,W) = (U L V) V(~U L W) (0<=t<=19) G(U,V,W) = U+V+W (20<=t<=39,60<=t<=79) H(U,V,W) = (U L V) V (U L W) V (V L W) (40<=t<=59)

  13. 단계 연산 FF(a,b,c,d,e,Xt,Kt) | a := (a<<5 + F(b,c,d)+e+Xt+Kt) b := a c := b<<30 d := c e := d GG(a,b,c,d,e,Xt,Kt) | a := (a<<5 + G(b,c,d)+e+Xt+Kt) b := a c := b<<30 d := c e := d HH(a,b,c,d,e,Xt,Kt) | a := (a<<5 + H(b,c,d)+e+Xt+Kt) b := a c := b<<30 d := c e := d

  14. SHA해쉬함수 [PIC. SHA를 이용한 메시지 다이제스트] 패딩 (1-512bit) 메시지 길이 (K) Ly 512bits = Ny 32bits K bits 메시지 1000....0 Y0 Y1 . . . . . . . Yq ........ YL-1 512 512 512 512 ABCDE HSHA HSHA 160bit HSHA HSHA 160bit digest

  15. [PIC 2. 단일 512비트 블럭의 SHA처리] Yq(512bit) MDq(160bit) A B C D E ROUND0(ABCDE, Yq, K0 A B C D E ROUND1(ABCDE, Yq, K1 : : A B C D E ROUND79(ABCDE, Yq, K79 + + + + + 160bit MDq+1

  16. [PIC. SHA기본 동작] A B C D E f1 + CLS5 + + + WT CLS30 + KT A B C D E

  17. SHA와 MD5의 차이점 비교 양쪽 다 MD4로부터 나왔기 때문에, SHA와 MD5는 서로 아주 유사하다. 따라서 그들의 강도와 특성도 비슷하다. MD5와 SHA의 비교 MD5 SHA 다이제스트 128비트 160비트 처리의 기본단위 64(16번의 4라운드) 80 최대 메시지 크기 무한대 264 기약 논리 함수 4 3 덧셈 상수 64 4

  18. 3. IDEA(International Data Encryption Alg.) • Xuejia Lai, James Massey(스위스 연방 기술 기관) • DES를 대치하기 위한 알고리즘의 하나 • 가장 성공적인 DES의 대치 알고리즘 • 대부분의 암호 공격으로부터 안전 • 널리 사용됨(PGP에 포함) • 설계 원리 • 블록암호 : 64비트 블록 / 128 비트 키 • 강한 강도 • 쉬운 구현

  19. 암호학적 강도 • 블록 길이 : 64비트(통계적 분석 방지 가능) • 키 길이 : 128비트(전사적 공격에 안전) • Confusion (혼돈) • 암호문의 통계적 성질과 평문의 통계적 성질의 관계를 난해하게 만드는 성질 • IDEA는 세가지 연산을 사용하여 confusion을 달성 • DES에서는 이러한 성질을 XOR 연산과 비선형 s-box에 의존 • Diffusion(확산) • 각각의 평문 비트와 키 비트는 모든 암호문 비트에 영향을 주어야 한다. • 이것은 평문의 통계적 구조를 감출 수 있다. • IDEA는 효율적인 확산을 지원한다.

  20. IDEA의 Confusion / Diffusion • Confusion : 세가지 연산을 이용 • XOR, 216(mod 65535) 상에서의 덧셈, 곱셈 • 각각  , + , 로 표기 • XOR에만 의존하는 DES 보다 암호해독이 어려움 • Diffusion • 곱셈/덧셈(MA) 구조에 의해 제공 • 입력 : 평문에서 유추된 두개의 16비트, 키에서 유추된 두개의 16비트 서브키 • 출력 : 두개의 16비트 결과 • 효율적인 확산을 위해 8번 반복

  21. 곱셈/덧셈(MA) 구조 F1 F2 Z5 Z6 G1 G2

  22. IDEA 암호화 • 입력 : 64비트 평문, 128비트 키 / 출력 : 64비트 암호문 • 8라운드 • 입력을 4개의 16비트 서브블럭으로 분해 • 각 라운드는 4개의 서브 블록을 입력으로 받고, 4개의 16비트 결과물을 생성 • 모든 서브키는 초기 128비트 키에서 생성 • 총 52개의 서브키가 사용됨

  23. IDEA 전체 구조 64bit 평문 128비트 키 Z Z1 Round 1 … Z6 서브키 생성기 Z7 Round 2 … Z12 16 . . . Z1 Z52 Z1 Round 7 … Z6 Z7 출력 변환 … Z12 64비트 암호문 Y

  24. Round 1 네개의 서브키(Z1 ~ Z4) 네개의 입력 블록(X1~X4) 덧셈, 곱셈연산을 이용해서 키와 입력 블록을 조합(변환과정) 조합된 결과를 XOR 두번째와 세번째의 결과 교환(Confusion 증가 및 차분해독에 견딜 수 있는 성질)

  25. 출력 변환 • 1라운드의 맨 처음 처리과정과 동일한 단계 • 즉, 8라운드의 끝 부분에서 교환을 하지 않은 것과 동일 • 암호화/복호화가 동일한 구조를 가지기 위함

  26. IDEA 동작 모드 • DES와 유사한 4가지 동작 모드 • ECB • 64비트의 각 평문 블록이 독립적으로 암호화 • 작은 블록의 데이터 암호화에 유용 • CBC • 평문의 다음 64비트와 암호문의 이전 64비트에 대한 XOR • 같은 64비트 평문이라도 매번 다른 암호문 생성 • CFB • 입력은 한번에 J 비트로 처리 • 이전 암호문은 의사난수(pseudo random)값 생성을 위한 입력으로 사용되고, 다음 평문과 XOR • OFB(Output feedback) • 이전 IDEA의 결과를 입력으로 사용 • 잡음이 있는 채널에서의 스트링 전송에 유효

  27. 4.SKIPJACK • 1993년 4월 클린턴 행정부 “법 시행의 합법적 필요성을 허용하는 범위 내에서 전화 통화의 보안성과 프라이버시를 향상 시키기 위한 연방 정부의 참여” 선언 • 합법적인 전자적 감시를 통해 사회를 보호하면서도 국가의 다른 이해관계와 충돌하지 않는 안전체계를 제공하려함. • Clipper Project • 암호를 사용하는 개인 통화 내용의 감청 허용 • DES 보다 강한 암호 • 알고리즘 비공개 • 사용은 자유 선택

  28. Clipper I (1993. 4) • 민간 부분의 암호장비 사용을 가능케 함으로써 개인적인 커뮤니케이션을 보호하는 동시에 정부가 적법한 절차에 의할 때 복호화키에 대한 접근권을 갖음 • 알고리즘 : SKIPJACK(비공개) • 전화 통화에 대한 도청 (wiretap), H/W적 구현 • 1년의 comment 시기 • 1994. 2 : NIST가 EES(Encrypted Escrow Standard)로 표준 • (FIPS - 185) 키 위임 정책에 대한 반대 의견 • : 민간 privacy 침해, 키 위임을 선호하지 않음 Clipper에 대한 반대 의견(Diffie등) • : 알고리즘의 비공개 : trapdoor의 존재 가능성 • : NSA가 주도 • : H/W 의존성 : 비용, 호환성 문제

  29. Clipper II (1995. 8) • 상업적 키 위임(Commercial key escrow) • 법집행 능력의 유지가 아님 • 키 손질에 따른 데이타 복원 • 키 보관을 민간 기관도 가능 • 암호장비 수출 규제에 대한 산업계의 반발 • 40비트키 64비트 이하의 키( 키 위임 포함 ) • S/W적으로도 실현 가능한 방식으로 함 민간 부분의 동의를 얻지 못함 • ; Clipper Chip : 키 사이즈 80비트 수출 제한 완화와 키 위임을 결합

  30. Clipper III (1996. 5) • 공개키 암호 방식의 중요성 인식 • 키 관리 기반 (KMI, Key Management Infrastructure) 방식 도입 • CA (Certification Authority) • PAA (Policy Approving Authority) • 키 위임기관이 필요 • 키 관리와 키 위임이 결합 PKI의 개념과 상이 위임기관의 기준에 대한 언급 결여 키 위임의 강제성이 강화

  31. Clipper IV (1996. 10) • White House가 Key escrow의 최신 버젼을 공포 • Key escrow Key recovery • 수출 규정 완화 • 56비트 암호 시스템의 수출 허용 • 향후 2년간 ( 단, key escrow 시스템 개발 ) • 그 이후는 금지 • 관장기관이 State Department에서 Commerce Department로

  32. SKIPJACK • Interactive block cipher • 블럭 사이즈 : 64비트, 키 사이즈 : 84비트 • ECB, CBC, OFB, CFB 모드 사용 가능 • 32 라운드 • 1985 ~ 1990 ( NSA ) • Capstone ( MYK - 80 ) • NSA에서 개발 • Skipjack algorithm (ECB, CBC, CFB, OFB 모드 사용) • Public - key Exchange Algorithm (Diffie - Hellman Scheme) • Digital Signature Algorithm • Secure Hash Algorithm • For secure electronic commerce and other computer - based application

  33. Clipper chip 평가 (by NIST) 민간인 5명 (Denning, Brckell, 등) • 30 ~ 40년간 Exhaustive Search의 우려가 없음 • Shortcut attack으로 skipjack이 해독될 우려는 없음 • Skipjack의 안전성은 알고리즘의 비공개와 무관

  34. D D + D D D SKIPJACK 송신자 A의 안전장치 송신자 B의 안전장치 협약된 세션키 KS KS Chip Chip EKS[M] KF UIDA KUA KF UIDA KUA M • 암호화된 메시지 M 메시지 EKF[UIDA || EKUA(KS) || PA] • 법 시행필드(LEAF) • 가로챔 • 키 요소 요구 K1 • 에스크로우 기관1 A EKUA(KS) UIDA EK1(KUA1) KUA KS K2 M UIDA EK2(KUA2) • 에스크로우 기관2 • 법 시행 복호기

  35. 매개 변수 • KF = 80비트 집단키. 집단으로 지정된 모든 장치들에 저장. • 그것은 LEAF를 만드는데 사용된다. • UID = 특별한 SKIPJACK칩에 대한 유일한 식별자 • KU = 장치 유일키. 칩과 함께 암호화된 모든 메시지를 푸는데 • 사용되는 특별한 SKIPJACK칩에 대한 유일한 암호화 키 • KU1, KU2 = 키 요소의 쌍. 다음의 항등식을 가진다. • KU = KU1 KU2 • K1, K2 = 암호화 비밀키 • KS = 세션키 • PA = 인증코드. LEAF가 인정되지 않은 방법으로 비뀌거나 • 수정되지 않았다는 것을 확신하는데 사용되는 LEAF • 에서의 필드 • LEAF(법 시행 필드, Law Enforcemnet Field) • = EKF(UIDA II EKUA(KS) II PA)

  36. Clipper Mechanism • 법 시행 기관 • 1. 키 구성 요소를 복원한다. • KUA1 = DK1[EK1(KUA1)] • KUA2 = DK2[EK2(KUA2)] • 2. 기기 유일키를 생성하다. • KUA = KUA1 + KUA2 • 3. 세션키를 복원한다. • KS = DKUA[EKUA(KS)] • 4. 메세지를 복원한다. • M = DKS[EKS(M)]

  37. Clipper의 문제점 • Escrow기관이 모두 행정부 소속 • Clipper Chip의 효용성에 대한 의문 • 법 제도의 미비 • 합법적인 도청을 규제하는 법률 미비 • 도청 허가 신청이 거부된적이 없음 • 합법적 도청 허가 기간이 끝난 후도 도청이 가능 • Clipper Chip의 Reverse-engineering

  38. 5. LUC 공개키 암호 • 뉴질랜드 출신 연구가 집단이 공동개발 • 암호화, 서명 등에 사용 • Lucas 수열 이용 음이 아닌 정수 P와 Q를 선택하고 다음과 같은 2차 방정식을 계산 X2 - PX + Q = 0 근 : 방정식의 두 근을 ,  라고 하면 다음과 같은 관계 성립  +  = P ,   = Q ,  -  = 판별식 D

  39. Lucas 수열의 정의 • LUC 공개키 알고리즘 • 키 생성 소수 p, q 선택 N = pq 계산 정수 e 계산 gcd[(p-1)(q-1)(p+1)(q+1), e] =1 D 계산 D=P2-4 S(N) 계산 S(N) = d 계산 d=e-1 mod S(N) 공개키 KU={e, N} 개인키 KR={d, N}

  40. 암호화 • 복호화 평문 : P < N 암호문 : C = Ve(P, 1) (mod N) 암호문 : C 평문 : P = Vd(C, 1) (mod N)

  41. LUC 암호화의 예 1. 소수 p=1949, q=2089 선택 2. N=pq = 4071461 3. 1948 * 2088 * 1950 * 2090과 서로소인 e=1103 4. 평문 P = 11111 선택 5. D = (11111)2-4=123454317, S(N)=lcm[(1949+1), 2089+1)] = 407550 6. d=e-1 mod 407550 = 24017 7. C=V1103(11111, 1) mod 4071461 = 3975392 8. P =V24017(3975392, 1) = 11111

More Related