
4f2c0678d9db8e355721cae5091c7ed5.ppt
- Количество слайдов: 41
Chap 7. 암호 알고리즘 1
목차 1. 2. 3. 4. 5. MD 5 메시지 다이제스트 알고리즘 안전한 해쉬 알고리즘 국제 데이터 암호 알고리즘(IDEA) SKIPJACK LUC 공개키 암호 2
1. MD 5 메시지 다이제스트 알고리즘 MIT의 Ron Rivest에 의해 개발(RSA 개발자 중의 한사람) n MD 5 로직 n – 입력 : 임의의 길이의 메시지 – 출력 : 128 비트 메시지 다이제스트 n 5단계로 구성 3
그림 7. 1 MD 5를 이용한 메시지 다이제스트 생성 페딩 (1 -512 bit) 메시지 길이 (K mod 2 64) LY 512 bits = NY 32 bits K bits 메시지 Y 0 Y 1 1000. . . Yq 512 . . . . 512 YL-1 512 ABCD HMD 5 512 HMD 5 128 bit digest 4
n 1단계 : 패딩 비트 부가 – 패딩비트 범위 : 1 - 512 비트 – 하나의 1과 원하는 길이의 0으로 패딩 – 메시지가 원하는 길이일 지라도 패딩은 항상 부가 n 2단계 : 부가된 길이 – 본래 메시지에 64비트가 첨가 – 1, 2단계에 의해 길이가 512비트의 정수배가 되는 메시지를 얻 음 n 3단계 : MD 버퍼의 초기화 – 버퍼의 용도 : 해수함수의 중간과 최종 결과 보관 – 버퍼 : 버퍼는 4개의 32비트 레지스터(A, B, C, D)로 표현 – 레지스터들은 다음과 같은 16진수의 값으로 초기화 A = 01234567 B = 89 ABCDEF C = FEDCBA 98 D = 76543210 5
4 단계 : 512(16단어)블럭의 메시지 처리 입력 : 512비트 블럭, 128비트 버퍼값 (A, B, C, D), 사인 함수로 구성되는 64비트 요소. Algorithm : n 4개의 라운드 처리로 구성된 모듈 n 같은 함수구조를 가지면서 서로 다른 기약함수에 의존 n 테이블중에 각 라운드마다 1/4를 사용 n 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비트 단어 출력 6
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 의 덧셈 7
n 32비트 단어 배열 는 현재 처리되고 있는 512비트 블럭값을 가진다. n 입력의 각 32비트 단어는 라운드마다 한 번씩 4번 사용되고, 의 64개 의 32비트 단어 요소의 각각은 정확히 한번 사용된다. n 각 단계에 대하여 버퍼의 4바이트중 하나만이 갱신. 각 바이트는 라운드 동 안 16번 갱신. 8
[PIC 3. MD 5의 기본 동작] A B C D G + + X[k] + T[i] CLSS + 9
MD 4 해쉬함수 1. 출력 : 128비트 2. 입력 : 512비트 메시지 블럭 (16개의 32비트 워드)과 상수 3. 초기값 : IV 0=67452301 EFCDEAB 89 98 BADCFE 10325476 4. 패딩 : 패딩은 (512의 배수 - 64)가 될 때까지 한다. 5. 추가 패딩 : 메시지의 길이의 64비트 표현으로 남은 64비트를 채운다. 6. 상수 : K 1 = 5 A 827999, K 2 = 6 ED 9 EBA 1 압축 함수 : 단계 연산 : 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 10
MD 4와 MD 5의 차이점 비교 ¨ MD 4는 16단계의 3라운드를 사용하나, MD 5는 16단계의 4라운드를 사용한다. ¨ MD 4는 각 라운드에서 한 번씩 3개의 기약함수를 사용한다. 그러나 MD 5는 각 라운드에서 한번씩 4개의 기약 논리 함수를 사용한다. ¨ MD 5의 각 단계는 이전 단계의 결과에 부가된다. 11
2. 안전한 해쉬 알고리즘(SHA, SHS) 1. 출력 : 160비트 해쉬 2. 입력 : 512비트 메시지 블럭과 상수 3. 초기값 : A= 67452301 B=EFCDAB 89 C=98 BADCFE B= 10325476 E=C 3 D 2 E 1 F 0 1. 패딩 : 패딩은 (512의 배수 - 64)가 될 때까지 한다. 2. 추가 패딩 : 메시지의 길이의 64비트 표현으로 남은 64비트를 채운다. 상수 : 0 t 19 Kt = 5 A 827999 20 t 39 Kt = 6 ED 9 EBA 1 40 t 59 Kt = 8 F 1 BBCDC 60 t 79 Kt = CA 62 C 1 D 6 압축함수 : 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) 12
단계 연산 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 13
SHA해쉬함수 [PIC. SHA를 이용한 메시지 다이제스트] 패딩 (1 -512 bit) Ly 512 bits = Ny 32 bits K bits 메시지 길이 (K) 1000. . 0 메시지 Y 0 512 ABCDE HSHA Y 1 . . . . 512 HSHA Yq 512 160 bit HSHA . . . . 512 YL-1 HSHA 160 bit digest 14
[PIC 2. 단일 512비트 블럭의 SHA처리] Yq(512 bit) MDq(160 bit) A B C ROUND 0(ABCDE, A B Yq, C ROUND 1(ABCDE, : : A B ROUND 79(ABCDE, D K 0 D Yq, C E K 1 D Yq, E E K 79 +++++ 160 bit MDq+1 15
[PIC. SHA기본 동작] A B C D E f 1 + CLS 5 + + + WT CLS 30 + KT A B C D E 16
SHA와 MD 5의 차이점 비교 양쪽 다 MD 4로부터 나왔기 때문에, SHA와 MD 5는 서로 아주 유사하 다. 따라서 그들의 강도와 특성도 비슷하다. MD 5와 SHA의 비교 다이제스트 처리의 기본단위 최대 메시지 크기 기약 논리 함수 덧셈 상수 MD 5 128비트 64(16번의 4라운드) 무한대 4 64 SHA 160비트 80 264 3 4 17
3. IDEA(International Data Encryption Alg. ) Xuejia Lai, James Massey(스위스 연방 기술 기관) n DES를 대치하기 위한 알고리즘의 하나 n 가장 성공적인 DES의 대치 알고리즘 n – 대부분의 암호 공격으로부터 안전 – 널리 사용됨(PGP에 포함) n 설계 원리 – 블록암호 : 64비트 블록 / 128 비트 키 – 강한 강도 – 쉬운 구현 18
암호학적 강도 블록 길이 : 64비트(통계적 분석 방지 가능) n 키 길이 : 128비트(전사적 공격에 안전) n Confusion (혼돈) n – 암호문의 통계적 성질과 평문의 통계적 성질의 관계를 난해하게 만 드는 성질 – IDEA는 세가지 연산을 사용하여 confusion을 달성 – DES에서는 이러한 성질을 XOR 연산과 비선형 s-box에 의존 n Diffusion(확산) – 각각의 평문 비트와 키 비트는 모든 암호문 비트에 영향을 주어야 한다. – 이것은 평문의 통계적 구조를 감출 수 있다. – IDEA는 효율적인 확산을 지원한다. 19
IDEA의 Confusion / Diffusion n Confusion : 세가지 연산을 이용 – XOR, 216(mod 65535) 상에서의 덧셈, 곱셈 – 각각 , + , 로 표기 – XOR에만 의존하는 DES 보다 암호해독이 어려움 n Diffusion – 곱셈/덧셈(MA) 구조에 의해 제공 • 입력 : 평문에서 유추된 두개의 16비트, 키에서 유추된 두개의 16비트 서브키 • 출력 : 두개의 16비트 결과 – 효율적인 확산을 위해 8번 반복 20
곱셈/덧셈(MA) 구조 F 1 F 2 Z 5 Z 6 G 1 G 2 21
IDEA 암호화 n n n 입력 : 64비트 평문, 128비트 키 / 출력 : 64비트 암호문 8라운드 입력을 4개의 16비트 서브블럭으로 분해 각 라운드는 4개의 서브 블록을 입력으로 받고, 4개의 16비트 결과물을 생성 모든 서브키는 초기 128비트 키에서 생성 – 총 52개의 서브키가 사용됨 22
IDEA 전체 구조 64 bit 평문 128비트 키 Z Round 1 … Z 1 Z 6 서브키 생성기 Round 2 … Z 7 Z 12 Round 7 Z 1 . . . Z 52 … Z 1 16 Z 6 출력 변환 … Z 7 Z 12 23 64비트 암호문 Y
Round 1 네개의 서브키(Z 1 ~ Z 4) 네개의 입력 블록(X 1~X 4) 덧셈, 곱셈연산을 이용해서 키와 입력 블록을 조합(변환과정) 조합된 결과를 XOR 두번째와 세번째의 결과 교환 (Confusion 증가 및 차분해독 에 견딜 수 있는 성질) 24
출력 변환 1라운드의 맨 처음 처리과정과 동일한 단계 n 즉, 8라운드의 끝 부분에서 교환을 하지 않은 것과 동일 n – 암호화/복호화가 동일한 구조를 가지기 위함 25
IDEA 동작 모드 DES와 유사한 4가지 동작 모드 n ECB n – 64비트의 각 평문 블록이 독립적으로 암호화 – 작은 블록의 데이터 암호화에 유용 n CBC – 평문의 다음 64비트와 암호문의 이전 64비트에 대한 XOR – 같은 64비트 평문이라도 매번 다른 암호문 생성 n CFB – 입력은 한번에 J 비트로 처리 – 이전 암호문은 의사난수(pseudo random)값 생성을 위한 입력으로 사용되고, 다음 평문과 XOR n OFB(Output feedback) – 이전 IDEA의 결과를 입력으로 사용 – 잡음이 있는 채널에서의 스트링 전송에 유효 26
4. SKIPJACK n n n n 1993년 4월 클린턴 행정부 “법 시행의 합법적 필요성을 허용하는 범위 내에서 전화 통화의 보안성과 프라이버시 를 향상 시키기 위한 연방 정부의 참여” 선언 합법적인 전자적 감시를 통해 사회를 보호하면서도 국가의 다른 이해관계와 충돌하지 않는 안전체계를 제공하려함. Clipper Project 암호를 사용하는 개인 통화 내용의 감청 허용 DES 보다 강한 암호 알고리즘 비공개 사용은 자유 선택 27
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 의존성 : 비용, 호환성 문제 28
Clipper II (1995. 8) 상업적 키 위임(Commercial key escrow) 법집행 능력의 유지가 아님 키 손질에 따른 데이타 복원 키 보관을 민간 기관도 가능 암호장비 수출 규제에 대한 산업계의 반발 40비트키 64비트 이하의 키( 키 위임 포함 ) S/W적으로도 실현 가능한 방식으로 함 수출 제한 완화와 키 위임을 결합 민간 부분의 동의를 얻지 못함 ; Clipper Chip : 키 사이즈 80비트 29
Clipper III (1996. 5) 공개키 암호 방식의 중요성 인식 키 관리 기반 (KMI, Key Management Infrastructure) 방식 도입 CA (Certification Authority) PAA (Policy Approving Authority) 키 위임기관이 필요 키 관리와 키 위임이 결합 PKI의 개념과 상이 위임기관의 기준에 대한 언급 결여 키 위임의 강제성이 강화 30
Clipper IV (1996. 10) White House가 Key escrow의 최신 버젼을 공포 Key escrow Key recovery 수출 규정 완화 56비트 암호 시스템의 수출 허용 향후 2년간 ( 단, key escrow 시스템 개발 ) 그 이후는 금지 관장기관이 State Department에서 Commerce Department로 31
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 32
Clipper chip 평가 (by NIST) 민간인 5명 (Denning, Brckell, 등) 30 ~ 40년간 Exhaustive Search의 우려가 없음 Shortcut attack으로 skipjack이 해독될 우려는 없음 Skipjack의 안전성은 알고리즘의 비공개와 무관 33
SKIPJACK 송신자 A의 안전장치 협약된 세션키 KS Chip M 메시지 송신자 B의 안전장치 KF UIDA KUA KS Chip EKS[M] EKF[UIDA || EKUA(KS) || PA] 법 시행필드(LEAF) UIDA EK 1(KUA 1) UIDA EK 2(KUA 2) 에스크로우 기관2 D K 1 EKUA(KS) D K 2 M 가로챔 키 요소 요구 에스크로우 기관1 KF UIDA KUA 암호화된 메시지 + KUA D A KS D M D 법 시행 복호기 34
매개 변수 KF = 80비트 집단키. 집단으로 지정된 모든 장치들에 저장. 그것은 LEAF를 만드는데 사용된다. UID = 특별한 SKIPJACK칩에 대한 유일한 식별자 KU = 장치 유일키. 칩과 함께 암호화된 모든 메시지를 푸는데 사용되는 특별한 SKIPJACK칩에 대한 유일한 암호화 키 KU 1, KU 2 = 키 요소의 쌍. 다음의 항등식을 가진다. KU = KU 1 KU 2 K 1 , K 2 = 암호화 비밀키 KS = 세션키 PA = 인증코드. LEAF가 인정되지 않은 방법으로 비뀌거나 수정되지 않았다는 것을 확신하는데 사용되는 LEAF 에서의 필드 LEAF(법 시행 필드, Law Enforcemnet Field) = EKF(UIDA II EKUA(KS) II PA) 35
Clipper Mechanism 법 시행 기관 1. 키 구성 요소를 복원한다. KUA 1 = DK 1[EK 1(KUA 1)] KUA 2 = DK 2[EK 2(KUA 2)] 2. 기기 유일키를 생성하다. KUA = KUA 1 + KUA 2 3. 세션키를 복원한다. KS = DKUA[EKUA(KS)] 4. 메세지를 복원한다. M = DKS[EKS(M)] 36
Clipper의 문제점 Escrow기관이 모두 행정부 소속 Clipper Chip의 효용성에 대한 의문 법 제도의 미비 합법적인 도청을 규제하는 법률 미비 도청 허가 신청이 거부된적이 없음 합법적 도청 허가 기간이 끝난 후도 도청이 가능 Clipper Chip의 Reverse-engineering 37
5. LUC 공개키 암호 뉴질랜드 출신 연구가 집단이 공동개발 n 암호화, 서명 등에 사용 n Lucas 수열 이용 n 음이 아닌 정수 P와 Q를 선택하고 다음과 같은 2차 방정식을 계산 X 2 - PX + Q = 0 근: 판별식 D 방정식의 두 근을 , 라고 하면 다음과 같은 관계 성립 + =P, =Q , - = 38
n Lucas 수열의 정의 n LUC 공개키 알고리즘 – 키 생성 소수 p, q 선택 N = pq 계산 정수 e 계산 D 계산 gcd[(p-1)(q-1)(p+1)(q+1), e] =1 D=P 2 -4 S(N) 계산 S(N) = d 계산 공개키 개인키 d=e-1 mod S(N) KU={e, N} KR={d, N} 39
n 암호화 평문 : P < N 암호문 : C = Ve(P, 1) (mod N) n 복호화 암호문 : C 평문 : P = Vd(C, 1) (mod N) 40
LUC 암호화의 예 1. 2. 3. 4. 5. 소수 p=1949, q=2089 선택 N=pq = 4071461 1948 * 2088 * 1950 * 2090과 서로소인 e=1103 평문 P = 11111 선택 D = (11111)2 -4=123454317, S(N)=lcm[(1949+1), 2089+1)] = 407550 6. d=e-1 mod 407550 = 24017 7. C=V 1103(11111, 1) mod 4071461 = 3975392 8. P =V 24017(3975392, 1) = 11111 41
4f2c0678d9db8e355721cae5091c7ed5.ppt