1 / 76

I 부

I 부. 암호. 3 장. 대칭키 암호. 대칭키 암호 분류. 스트림 암호  일회성 암호 형태 키가 상대적으로 짧다 . 키가 긴 키스트림 으로 쭉 뻗는다 . 그리고 키스트림은 일회성 암호 키 같이 사용된다 . 블록 암호  코드북 개념 형태 블록암호 키가 한 권의 코드북을 결정한다 . 각 키가 다른 코드북을 결정한다 . 혼돈 과 확산 모두가 적용된다 . 3 장 . 대칭키 암호. 스트림 암호. STREAM 암호. 1 Stream 암호 2 RC4 알고리즘. 일반 블럭 암호.

malvina
Download Presentation

I 부

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. I부 암호

  2. 3장 대칭키 암호

  3. 대칭키 암호 분류 • 스트림 암호  일회성 암호 형태 • 키가 상대적으로 짧다. • 키가 긴 키스트림으로 쭉 뻗는다. • 그리고 키스트림은 일회성 암호 키 같이 사용된다. • 블록 암호  코드북 개념 형태 • 블록암호 키가 한 권의 코드북을 결정한다. • 각 키가 다른 코드북을 결정한다. • 혼돈과 확산 모두가 적용된다.

  4. 3장. 대칭키 암호 스트림 암호

  5. STREAM 암호 1 Stream 암호 2 RC4 알고리즘

  6. 일반 블럭 암호 스트림 암호 m 비트 키 이진 키수열 암호 알고리즘 암호 알고리즘 n 비트 평문 n 비트 암호문 n 비트 초기값 이진 평문 수열 m 비트 키 평문: M=m1m2m3… 암호문: C= EK(m1)EK(m2)EK(m3)… 평문: M=m1m2m3… 암호문: C= EZ1(m1)EZ2(m2)EZ3(m3)… Stream 암호

  7. 키계열 키계열 암호문 C 송신자 수신자 평문 M 평문 M Stream 암호 평 문 1 0 1 1 1 0 1 1 암호문 0 1 1 1 1 1 1 0 키계열 1 1 0 0 0 1 0 1 키계열 1 1 0 0 0 1 0 1 암호문 0 1 1 1 1 1 1 0 평 문 1 0 1 1 1 0 1 1

  8. Stream 암호

  9. Stream 암호 • 송수신자간에 사전에 공유된 비밀키(secret key)와 현재의 스트림 암호시스템상태(initial state)로부터 도출되는 키 수열(key steam)이 평문과 결합되어 암호문을 생성 • 키 수열의 길이는 평문의 길이와 동일하고 단 한번만 사용됨 예 : I LOVE YOU 메시지 -> 11001001 10100000 11001100 키 -> 01000001 01000010 11000011 (eXclusive OR) 암호문 -> 10001001 11100010 00001111 • 활용 : 블럭암호에 비해서 빠르게 운영 • 이동통신에서 전송되는 data의 암호화에 사용

  10. Stream 암호 • 키 스트림 주기 • 주기적 (periodic) 스트림 암호 : 키 스트림이 어떤 주기를 갖고 반복 • 비주기적 스트림 암호 : 키가 반복 없이 표현되는 일회용 패드(one-time pad)방식 • 평문과 키의 관계 • 동기식 스트림 암호(Synchronous Stream Cipher) • 암호문을 복호화하여 평문을 찾을때 키 스트림과 암호문 사이에 동기가 필요 • 키 스트림이 평문과 관계없이 생성되므로 암호문과 암호문에 들어있는 키 스트림이 독립적이어서 정보유출의 가능성이 적다 • 선형 귀한 치환 레지스터(Linear Feedback Shift Register)

  11. Stream 암호 • 평문과 키의 관계 • 자기 동기식 스트림 암호(Self-Synchronous Stream Cipher) • 키 스트림이 평문과 암호문과 관계를 갖는다. • 키 스트림은 평문 또는 암호문으로 부터 함수 관계에 의해 생성 • 전송 중 암호문의 비트가 손실 또는 변경되더라도 그 오류의 영향이 유한하게 된다. • 오류 정정의 기능을 포함 가능 • 키 스트림과 암호문의 종속성으로 인해 해독하기 쉽다. • 암호문 귀한자동키 (Feedback autokey)암호시스템 • 동기식 스트림 암호 시스템에 자기동기식 스트림암호의 장점을 결합하여 사용가능

  12. Stream 암호 • 스트림 암호 시스템의 장점과 사용 • 군사 및 외교용으로 널리 사용 • 이동통신 환경에서 구현이 용이 • 안전성을 수학적으로 엄밀하게 분석 가능 • 이동통신 등의 무선 통신 데이터 보호에 적합 • 종류 • RC4 • SEAL

  13. RC4 알고리즘 • 1987년 Rivest에 의해 설계된 가변 키 길이 지원 • 원래는 미공개 • 1994년 인터넷 뉴스그룹에 익명으로 공개된 알고리즘 • Netscape Navigator의 데이타 보호용으로 사용되고 있으며, 다른 인터넷 응용들에서도 널리 사용되는 스트림 암호이다.

  14. 스트림 암호 • 스트림 암호는 과거에 많이 활용 • H/W에서 효율적 • 음성 암호화 위해서 속도 요구 등. • 오늘날, 프로세스의 속도 증가로 S/W 기반 암호도 충분한 속도 가능 • 스트림 암호의 미래? • 샤미르: “스트림 암호의 사망”논문발표

  15. 3장. 대칭키 암호 블록 암호

  16. Simplified DES 3.1 S-DES 개요 3.2 S-DES 키의 생성 3.3 S-DES 암호 알고리즘 3.4 S-DES의 분석

  17. 3.1 S-DES 개요 (1/2) • 알고리즘 • 8비트 평문, 10비트 키 • 8비트 암호문 생성 • 알고리즘 구성 • 초기순열(IP) • 순열, 치환 이용 fk • 순열 함수 SW • 역 순열(IP-1) • 암호문 • IP-1(fk2(SW(fk1(IP(평문))))) • 복호문 • IP-1(fk1(SW(fk2(IP(암호문)))))

  18. 3.1 S-DES 개요 (2/2)

  19. 3.2 S-DES 키의 생성 (1/4) • K1 = P8(Shift(P10(key))) • K2 = P8(Shift(Shift(P10(key))) S-DES를 위한 키 생성

  20. P10 3 5 2 7 4 10 1 9 8 6 예 제 • 10 bit key = ( 1 0 1 0 0 0 0 0 1 0 ) • P10(key) = ( 1 0 0 0 0 0 1 1 0 0 ) 1 2 3 4 5 6 7 8 9 0 3.2 S-DES 키의 생성 (2/4) • 키생성 K1 = P8(Shift(P10(key))) • 10 비트 키 = (k1, k2, k3, k4, k5, k6, k7, k8, k9, k10) • P10 순열 = (k3, k5, k2, k7, k4, k10, k1, k9, k8, k6)

  21. 3.2 S-DES 키의 생성 (3/4) • 키 생성 K1 = P8 ( Shift ( P10 ( key ))) • (Shift(P10(key))): LS-1[키의1st 5비트] & LS-1[키의 2nd 5비트] • 앞 다섯 비트와 뒤 다섯 비트 좌로 순환 이동(1bit 좌측 순환이동) • P10 =( k3, k5, k2, k7, k4, k10, k1, k9, k8, k6) • Shift =( k5, k2, k7, k4, k3, k1, k9, k8, k6, k10 ) • 예제) • P10 = ( 1 0 0 0 0 0 1 1 0 0 ) • LS-1 = ( 0 0 0 0 1 1 1 0 0 0 ) 1 2 3 4 5 6 7 8 9 0

  22. 3.2 S-DES 키의 생성 (4/4) • 키생성 K1 = P8(Shift(P10(key))) = P8(LS-1) • P8(LS-1) = P8( 0 0 0 0 1 1 1 0 0 0 ) • 10 비트에서 8비트 선택 치환 • K1 = ( 1 0 1 0 0 1 0 0 ) • K2 = P8(Shift(Shift(P10(key)))) = P8(Shift(LS-1))=P8(LS-2) • LS-2 = Shift(LS-1): LS-1의 결과에 2비트 좌측 순환 이동 • K2 = P8(LS-2) = P8( 0 0 1 0 0 0 0 0 1 1 ) = ( 0 1 0 0 0 0 1 1 )

  23. 3.3 S-DES 암호 알고리즘 • 초기 및 최종 순열 함수 • 입력: 8비트 블록 평문 • 초기순열(IP) • IP-1(IP(X)) = X • 예제) • X = ( 1 0 1 1 0 0 1 1 ) • IP(X) = ( 0 0 1 1 1 1 0 1 ) • IP-1(IP(X)) = ( 1 0 1 1 0 0 1 1 ) • 최종 순열 1 2 3 4 5 6 7 8

  24. 평문 R: (n1, n2, n3, n4) n n n n3 4 1 2 n n3 n4 n 2 1 함수 fk (1/4) • 순열, 치환 함수 조합 • L( Left )  왼쪽 4비트 • R( Right )  오른쪽 4비트 • fk( L, R ) = (L  F( R, SK ), R ) • F 함수(확장 순열)

  25. n k n k n k n k p p p p 4 11 1 12 2 13 3 14 0,0 0,1 0,2 0,3 n k n k n k n k p p p p 2 15 3 16 4 17 1 18 1,0 1,1 1,2 1,3 함수 fk (2/4) • 8비트 서브키 K1 = (k11, k12, k13, k14, k15, k16, k17, k18) • XOR 연산 • S-Box

  26. 함수 fk (3/4) • 예제) • P = (01000111) 이라면 • S0: 행 00, 열 10 ; 1,4 요소  행, 2,3 요소  열 • S1: 행01, 열 11 ; 5,8 요소  행, 6,7 요소  열 • S0 = 11, S1 = 11 이 된다. (치환 효과) • 결과값 1111

  27. 함수 fk (4/4) • P4 순열 • P4출력은 함수 F의 출력이 된다. • 스위치 함수(SW) • fk는 왼쪽 4비트만 변경 • SW이용 왼쪽, 오른쪽 교환 • 두 번째 fk에서는 K2만 다름

  28. 3.4 S-DES의 분석 • Brute-force 공격 가능 • 10비트 키 210= 1024 • 기지 평문/암호문 쌍 • 평문: ( p1, p2, p3, p4, p5, p6, p7, p8) • 출력 암호문: ( c1, c2, c3, c4, c5, c6, c7, c8 ) • 미지의 키: (k1, k2, k3, k4, k5, k6, k7, k8, k9, k10) • 기지 평문 공격: 각 ci는 pj와 kj의 다항식 함수햐 • 알고리즘은 10개의 미지수를 갖는 8개의 비선형 방정식 • 알고리즘에서 각각의 순열과 합 연산은 선형 사상 • S박스를 통하여 비선형성을 도출 • 선형 사상 비선형 사상: 암호해독을 난해하게 하는 효과

  29. Data Encryption Standard • DES: 1970년대 개발 • IBM Lucifer 암호를 기반 • 미 정부 표준 • DES 개발은 논쟁이 있었음 • NSA 가 비밀리에 관련되었음 • 설계과정이 비공개 • 128bit 에서 64bit로 키 길이가 줄었음 • Lucifer 알고리즘의 교묘한 변경

  30. DES • DES는 페이스텔 암호 • 64 비트 블록 길이 • 56 비트 키 길이 • 16 회전 • 각 회전에서 48 비트의 보조키 사용 • 각 회전은 단순 • 안전성은 주로 “S-box들”에 의존 • 각 S-boxe들은 6비트를 4비트로 매핑

  31. key L R 32 28 28 expand shift shift 48 28 28 32 Ki  compress 48 48 S-boxes 28 28 32 P box 32 32  32 key L R DES의 한 회전

  32. DES 확장 순열 • 입력 32 비트 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 • 출력 48 비트 31 0 1 2 3 4 3 4 5 6 7 8 7 8 9 10 11 12 11 12 13 14 15 16 15 16 17 18 19 20 19 20 21 22 23 24 23 24 25 26 27 28 27 28 29 30 31 0

  33. DES S-box • 8 “교환 박스” 또는 S-박스 • 각 S-박스는 6 비트를 4 비트로 매핑 • 1번 S-박스 입력 비트(0,5) 입력 비트 (1,2,3,4) | 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 ------------------------------------------------------------------------------------ 00 | 1110 0100 1101 0001 0010 1111 1011 1000 0011 1010 0110 1100 0101 1001 0000 0111 01 | 0000 1111 0111 0100 1110 0010 1101 0001 1010 0110 1100 1011 1001 0101 0011 1000 10 | 0100 0001 1110 1000 1101 0110 0010 1011 1111 1100 1001 0111 0011 1010 0101 0000 11 | 1111 1100 1000 0010 0100 1001 0001 0111 0101 1011 0011 1110 1010 0000 0110 1101

  34. DES P-box • 입력 32 비트 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 • 출력 32 비트 15 6 19 20 28 11 27 16 0 14 22 25 4 17 30 9 1 7 23 13 31 26 2 8 18 12 29 5 21 10 3 24

  35. DES 보조키 • 56 비트 DES 키: 0,1,2,…,55 • 좌 반쪽 키 비트: LK 49 42 35 28 21 14 7 0 50 43 36 29 22 15 8 1 51 44 37 30 23 16 9 2 52 45 38 31 • 우 반쪽 키 비트: RK 55 48 41 34 27 20 13 6 54 47 40 33 26 19 12 5 53 46 39 32 25 18 11 4 24 17 10 3

  36. DES 보조키 • i=1,2,. . .,16 번째 회전에서 • LK = (LK를 ri 만큼 왼쪽으로 회전 이동) • RK = (RK를 ri 만큼 왼쪽으로 회전 이동) • 보조키 Ki의 왼쪽 절반이 LK 비트 13 16 10 23 0 4 2 27 14 5 20 9 22 18 11 3 25 7 15 6 26 19 12 1 • 보조키 Ki의 오른쪽 절반이 RK 비트 12 23 2 8 18 26 1 11 22 16 4 19 15 20 10 27 5 24 17 13 21 7 0 3

  37. DES 보조키 • 회전 1, 2, 9, 16에서 ri는 1,나머지 회전 ri는 2 • 각 회전 LK의 비트 8,17,21,24 생략 • 각 회전 RK의 비트 6, 9,14, 25 생략 • 압축 순열은56 bits of LK 와 RK의 56 비트에서48 비트 보조키 Ki생산 • 위키 스케줄은보조키를 생산

  38. DES 마지막 • 최초 회전 전의 최초 순열 P • 마지막 회전 후에 반씩을 교환 • 마지막 순열(P의 역)을 (R16,L16)에 적용함으로 암호문 생산 • 위 작업은 보안과는 무관

  39. DES의 안전성 • DES의 안전성은 다수의 S-box에 의존 • DES의 나머지는 모두 선형 • 30년간의 강도 높은 분석으로 “백도어”가 없음을 밝혀 냈음 • 오늘날 공격은 전수키 조사를 사용 • 피할 수 없는 결론 • DES 설계자들은 그들이 무엇을 하고 있는지를 알고 있었다. • DES 설계자들은 그들의 시대를 앞서가고 있었다.

  40. 블록 암호 표기 • P = 평문 블록 • C = 암호문 블록 • 암호문 C를 얻기 위해 키 K로 P를 암호화 • C = E(P, K) • 평문 P를 얻기 위해 키 K로 C를 복호화 • P = D(C, K) • 아래 사항을 주의 • P = D(E(P, K), K) 그리고 C = E(D(C, K), K)

  41. 삼중 DES • 현재, 56 비트DES 키는 너무 작다 • 하지만 DES가 도처에서 사용중: 어떻게 해야 하나? • 삼중 DES또는 3DES (112 비트 키) • C = E(D(E(P,K1),K2),K1) • P = D(E(D(C,K1),K2),K1) • 왜 2개 키로 암호화-복호화-암호화(EDE) 하는가? • 단독 DES와 호환성: E(D(E(P,K),K),K) = E(P,K) • 그리고 112 비트면 안전성을 위해 충분

  42. 3DES • 왜 C = E(E(P,K),K)가 아닌가 ? • 여전히 56 비트 키 • 왜 C = E(E(P,K1),K2)가 아닌가 ? • 현실성이 있는 알려진 평문 공격 • 모든 가능한 키 K1에 대해 E(P,K1) 의 선계산 테이블을 작성 (결과 테이블은 256입력) • 그러면 각 가능한 K2에 대해 D(C,K2)가 테이블 내에 일치하는 요소가 발견될 때까지 계산 • 일치되는 요소가 발견되면, E(P,K1) = D(C,K2)

  43. Advanced Encryption Standard • DES를 대치 • AES 경쟁 (90년대 후반) • NSA 가 공개적으로 관여 • 투명한 진행 • 많은 강력한 알고리즘들이 제안 • 라인댈(Rijndael) 알고리즘이 선정 • “Rain Doll” 또는 “Rhine Doll”로 발음 • 반복되는 블록 암호 (DES와 동일) • 페이스텔 암호가 아님 (DES와 상이)

  44. AES 개요 • 블록 크기: 128, 192 또는 256 비트 • 키 길이: 128, 192 또는 256 비트 (블록크기와는 독립적) • 10 에서 14 회전 (키 길이에 따라) • 각 회전은 4개의 함수들을 사용 (3개“계층) • ByteSub (비선형 계층) • ShiftRow (선형혼합 계층) • MixColumn (비선형 계층) • AddRoundKey (키추가 계층)

  45. AES ByteSub • ByteSub는 AES의 “S-box” • 두 수학적 연산의 비선형합성(그러나 역은 존재) • 192 비트 블록으로 가정: 4x6 바이트

  46. AES “S-box” 입력 뒤의 4 비트 입력 앞의 4비트

  47. AES ShiftRow • 회전 이동

  48. AES MixColumn • (거대한) 룩업 테이블로 구축 • 각 행에 비선형, 역산 연산자 적용

  49. AES AddRoundKey • 회전키(보조키)는 키 스케줄 알고리즘에 의해 결정 • 블록과 보조키의 XOR 블록 보조키

  50. AES 복호화 • 복호화를 위해서, 진행 과정은 역산이 가능해야만 함 •  는 그 자체가 역산이므로 MixAddRoundKey의 역산 가능 • MixColumn은 역산 가능 (역산은 룩업 테이블로 구축됨) • ShiftRow의 역산은 쉽게 됨 (cyclic shift 의 다른 방향) • ByteSub는 역산 가능 (역산은 룩업 테이블로 구축됨)

More Related