1 / 45

6 장 블록 암호 운용 (Block Cipher Operation)

6 장 블록 암호 운용 (Block Cipher Operation). 목차. 6.1 다중 암호화와 3 중 DES 6.2 전자 코드북 모드 6.3 암호 블록 연결 모드 6.4 암호 피드백 모드 6.5 출력 피드백 모드 6.6 계수기 모드 6.7 블록 지향 저장장치를 위한 XTS-AES. 핵심정리. 다중암호화 암호알고리즘이 여러 번 사용되는 기술 평문은 암호알고리즘에 의해 암호문으로 변환 이 암호문은 다시 평문으로 입력 후 암호 알고리즘이 다시 적용 3 중 DES

perdy
Download Presentation

6 장 블록 암호 운용 (Block Cipher Operation)

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. 6장블록 암호 운용(Block Cipher Operation)

  2. 목차 6.1 다중 암호화와 3중 DES 6.2 전자 코드북 모드 6.3 암호 블록 연결 모드 6.4 암호 피드백 모드 6.5 출력 피드백 모드 6.6 계수기 모드 6.7 블록 지향 저장장치를 위한 XTS-AES

  3. 핵심정리 • 다중암호화 • 암호알고리즘이 여러 번 사용되는 기술 • 평문은 암호알고리즘에 의해 암호문으로 변환 • 이 암호문은 다시 평문으로 입력 후 암호 알고리즘이 다시 적용 • 3중 DES • 두개 또는 세개의 서로 다른 키들을 사용하는 DES알고리즘으로 구성 • 운용모드 • 암호 알고리즘의 효과를 강화시키거나 어플리케이션에 알고리즘을 적용시키기 위한 기술 • 5가지 운용모드 • ECB(electric codebook)모드 • CBC(cipher block chaining)모드 • CFB(cipher feedback)모드 • OFB(output feedback)모드 • CRT(counter)모드

  4. 6.1 다중 암호화와 3중 DES • 다중암호화와 3중 DES 필요성 • 전수조사 공격에 대한 DES의 잠재적인 취약성 발견 • DES 암호 알고리즘의 대안을 연구 • 새로운 암호 알고리즘 설계 → AES 암호 알고리즘 • DES와 다중키를 이용한 다중 암호화 → 기존의 소프트웨어와 장비에 대한 투자를 보전

  5. 6.1 다중 암호화와 3중 DES • 2중 DES • 가장 간단한 다중 암호방식 • 2개의 암호화 단계와 2개의 키를 가짐 암호화 복호화 K2 K1 K1 K2 X X P E E C C D D P < 2중 DES >

  6. 6.1 다중 암호화와 3중 DES • 단일 단계로의 축소 • DES의 56비트 키 K1과K2에 대하여, 다음을 만족하는 키 K3의 존재를 가정 • 만약 가정이 사실이라면 2중 DES와 다중 DES는 모두 56비트의 단일키를 이용한 단일 암호화 결과를 가짐 하지만 • DES 암호화를 64비트 블록의 64비트 블록에 사상이라고 가정 • 가능한 모든 264개의 입력 블록을 고려할 때, 특정 키에 의한 DES 암호화는 각 블록을 유일한 64비트 블록에 사상

  7. 6.1 다중 암호화와 3중 DES • 단일 단계로의 축소 • 264개의 가능한 입력으로 입력 블록의 순열을 생성하는 서로 다른 수 → (264)! = 10347380000000000000000 > ( ) • DES는 각기 다른 키에 대하여 한 개의 사상을 정의하고 있으므로 총 사상수 → 256 < 1017 따라서 • 다른 키를 사용하여 DES를 두 번 적용하면, DES의 단일 적용에 의해 정의되지 않는 다수의 사상중의 하나를 생성한다는 가정은 타당

  8. 6.1 다중 암호화와 3중 DES • 중간 결과에 의한 공격 • 2중 DES 공격 유형 암호화 복호화 K2 K1 K1 K2 X X P E E C C D D P < 2중 DES >

  9. 6.1 다중 암호화와 3중 DES • 중간 결과에 의한 공격 • 주어진 평문-암호문 쌍 (P, C)에대하여 다음의 공격이 진행 • 평문P를 256개의 가능한 모든 키 K1으로 암호화 • 1번의 결과를 표에 저장하고 X의 값으로 정렬 • 암호문 C를 키 K2의 가능한 모든 256개의 값으로 복호화 • 복호화가 진행될 때 각 복호화 결과를 표의 내용과 비교 • 동일한 값이 표에 있다면, 해당 두 키로 평문-암호문 쌍 테스트 • 해당 두 키가 동일 암호문을 생성하면 올바른 키로 받음 • 2중 DES가 생성 가능한 암호문은 264개 존재 • 2중 DES는 사실 112 비트 키를 사용 • 2112개의 가능한 키가 존재 • 암호문을생성하는 서로다른 키의 수는 평균 2112 / 264 =248

  10. 6.1 다중 암호화와 3중 DES • 중간 결과에 의한 공격 • 첫 번째 (P, C) 쌍에 대하여 약 248번의 테스트 후에 성공 • 유사한 방법으로 64비트 추가 평문과 암호문이 주어지면 오탐율은248/264=248-64=2-16으로 감소 • 평문-암호문 두 쌍으로 중간 결과 공격을 수행하면 정확한 키를 발견할 확률은 1-2-16 결국 • 112 비트 키를 사용하는 이중 DES에 대한 평문 공격은 단일 DES에서의 255보다 상대적으로 차이 없는 256 복잡도로 성공. (실제론 256 + 256 =257 )

  11. 6.1 다중 암호화와 3중 DES • 2키에 의한 3중 DES • 앞서 살펴본 중간 결과 공격에 대한 대책은 상이한 세 개의 키를 이용한 3단계 암호화 과정을 사용하는 것 • 이것은 중간 결과에 의한 공격 복잡도를 2112로 증가 • 그러나 이 방법은 56 3=168 비트 길이의 키를 사용하는 단점 암호화 복호화 K2 K2 K1 K1 K1 K1 A B B A P C E E D D D C E C P < 2키에 의한 3중 DES >

  12. 6.1 다중 암호화와 3중 DES • 2키에 의한 3중 DES • 3중 DES의 두 번째 단계의 복호화 과정은 암호화에 별 의미가 없음 • 따라서 이 방식의 유일한 장점인 이전의 단일 DES 방식에 의해 암호화된 자료를 3중 DES를 이용하여 복호화할 수 있음 • 현재까지 실용적인 3중 DES 암호 분석 공격은 없음 • 하지만 실용성은 없지만 3중 DES 공격법 2개를 살펴볼 것임 • Merkle과 Hellman의 제안 공격법 • A=0의 첫 번째 중간 값을 생성하는 평문 값을 찾음 • 두 개의 키를 찾기 위해 중간 결과에 의한 공격을 사용 • 암호 해독의 복잡도는 256이지만, 현실적으로 어려운 256개의 선택 평문-암호문 쌍이 요구됨

  13. 6.1 다중 암호화와 3중 DES • 2키에 의한 3중 DES • 기지 평문 공격 (선택 평문 공격을 개선) • n개의 (P, C) 쌍을 구한다. 이 쌍들을 [표1]에 P의 값에 따라 저장 • A의 값으로 임의의 a를 선택한 후 다음과 같이 정의된 [표2]를 작성. 256개의 가능한 키의 각 K1=i에 대하여, a를 생성하는 평문 값 Pi를 계산 • [표1]에서 일치하는 각 Pi에 대하여 다음과 같은 K1의 값의 가정 하에, K1의 값과 [표1]로 부터(P, C) 쌍을 위해 생성된 B값으로 구성되는 [표2]를 작성. B의 값에 의해 [표2]를정렬 Pi Ci Keyi Bj [표1] [표2]

  14. 6.1 다중 암호화와 3중 DES • 2키에 의한 3중 DES • 기지 평문 공격 (선택 평문 공격을 개선) • [표2]에 다수의 K1후보 값이 있다. K2값 탐색을 위해 256개 후보 키의 각 K2=j에 대하여, a의 선택된 값에 대한 두 번째 중간 값을 계산 • 각 단계에서 [표2]의 Bj를 찾는다. 만약 일치하는 값이 있으면 해당 대응 값이 미지의 키(K1, K2)에 대한 후보값 • 각 후보 키 쌍(i, j)를 몇 개의 다른 평문 암호문 쌍에 대하여 테스트 • 만약 어떤 키 쌍이 원하는 암호문 생성시 공격 과정 종료 • 하지만 어떤 키 쌍도 원하는 암호문을 생성하지 않으면 새로운 a값을 가지고 1단계부터 반복 j i i a Bj Pi Ci E D E < 2키에 의한 3중 DES >

  15. 6.1 다중 암호화와 3중 DES • 2키에 의한 3중 DES • 기지 평문 공격 (선택 평문 공격을 개선) • 하나의 기지의 쌍 (P, C)가 주어질 경우, 키 쌍을 찾을 수 있는 a값을 선택할 확률은 1/264 • N개의 쌍 (P, C)가 주어질 겨우 선택된 하나의 a값으로 성공할 확률은 n/264 • 암호 해독의 복잡도는 256이지만, 현실적으로 어려운 256개의 선택 평문-암호문 쌍이 요구됨

  16. 6.1 다중 암호화와 3중 DES • 3키에 의한 3중 DES • 앞서 2키에 의한 3중 DES 공격을 살펴봄 • 실용성 없는 공격이지만, 잠재적 위협을 가짐 • 따라서 전문가들은 3키의 3중 DES를 최선의 방법으로 생각함 • 3키에 의한 3중 DES는 168비트의 효과적인 키 길이를 가짐 • 3키의 의한 3중 DES의 정의는 다음과 같음 • DES 역행(backward) 호환성은 K3=K2혹은 K1=K2로 제공될 수 있음

  17. 6.2 전자 코드북 모드 • 전자 코드북 모드 • 블록 암호는 길이가 고정된 b비트 텍스트 블록과 키를 입력으로 b비트길이의 암호문 블록을 출력함 • 다양한 어플리케이션에 블록 암호의 적용을 위해 5가지 운용 모드를 정의함 • 운영 모드는 암호알고리즘의 효과를 강화, 어플리케이션에 알고리즘 적용, 일련의 데이터 블록 혹은 데이터 스트림에 블록 암호를 적용하는 목적 • ECB 모드 • 가장 단순한 모드 • 평문이 한 번에 하나의 평문 블록을 처리, 각 평문 블록은 동일키로 암호화 • 하나의 키에 대하여 평문의 모든 b비트블록에 대한 유일한 암호문 존재

  18. 6.2 전자 코드북 모드 • 전자 코드북 모드

  19. 6.2 전자 코드북 모드 • ECB 모드 P1 P2 PN K K K Encrypt Encrypt Encrypt C1 C2 CN Encryption < 전자 코드북(ECB) 모드 >

  20. 6.2 전자 코드북 모드 • ECB 모드 C1 C2 CN K K K Decrypt Decrypt Decrypt P1 P2 PN Decryption < 전자 코드북(ECB) 모드 >

  21. 6.2 전자 코드북 모드 • ECB 모드 • b비트 이상의 메시지를 b비트 블록으로 나누고 암호화 • 복호화는 한 번에 한 블록씩 동일키를 이용하여 수행 • 평문은 일련의 b비트 평문 블록 P1, P2, …, PN • 암호문은 일련의 암호 블록 C1, C2, …, CN • ECB 모드 정의는 다음과 같음 • ECB 모드는 암호 키와 같이 짧은 데이터에 적당 • ECB 모드의 가장 중요한 성질은 평문의 동일한 b비트 블록이 두 번 이상 나올 경우, 항상 동일한 암호문 생성 • 따라서 이러한 정규성이 메시지가 길어질 경우, 주기적으로 반복되는 요소들로 인하여 암호 해독을 쉽게 해줄 수 있음

  22. 6.3 암호 블록 연결 모드 • 암호 블록 연결 모드 • ECB의 보안 결함을 위한 모드 • 동일한 평문 블록이 반복되어도 상이한 암호 블록을 생성 • 입력은 현 평문 블록과 선행 암호 블록의 XOR 연산 결과가 되며, 각 블록에 동일한 키가 사용 • 평문 블록에 대한 암호 함수 입력은 평문 블록과의 고정된 관계가 없음 따라서 • b비트의 반복 패턴이 나타나지 않음

  23. 6.3 암호 블록 연결 모드 • CBC 모드 P2 PN P1 IV CN-1 K K K Encrypt Encrypt Encrypt Decryption C2 CN C1 Encryption < 암호 블록 연결(CBC) 모드 >

  24. 6.3 암호 블록 연결 모드 • CBC 모드 C1 C2 CN K K K Decrypt Decrypt Decrypt IV CN-1 P1 P2 PN Decryption < 암호 블록 연결(CBC) 모드 >

  25. 6.3 암호 블록 연결 모드 • CBC 모드 • CBC 모드 정의는 다음과 같음

  26. 6.4 암호 피드백 모드 • 스트림 암호방식의 암호 피드백(CFB) • 메시지가 블록 크기의 정수배가 되도록 패딩하는 과정이 필요 없음 • 실시간 작동이 가능 • 따라서문자 스트림의 전송 중 각 문자지향 스트림 암호화를 이용하여 암호화 후 즉시 전송 가능 • 암호문과 평문의 길이가 같음 • 따라서 8비트의 문자열 전송의 경우, 각 문자열은 반드시 8비트의 출력 암호문을 생산하기 위하여 암호화가 되어야 함 • 스트림 암호같이 보이지만, 스트림 암호의 전형적인 구조를 따르지는 않음 • 암호화 • i • 복호화 Shift Lefts(Ij-1)||Cj-1)] j j Shift Lefts(Ij-1)||Cj-1)] j j

  27. 6.4 암호 피드백 모드 • CFB모드의 암호화 과정 • 입력: IV로 초기화된 b비트 이동 레지스터 CN -1 Shift register Shift register IV b-s bits | s bits b-s bits | s bits K K K Encrypt Encrypt Encrypt . . . Select s bits Select s bits Select s bits Discard b–s bits Discard b–s bits Discard b–s bits S bits S bits S bits P1 P2 PN C1 C2 CN S bits S bits S bits < s비트 암호 피드백(CFB) 모드 >

  28. 6.4 암호 피드백 모드 • CFB모드의 복호화 과정 • 입력: IV로 초기화된 b비트 이동 레지스터 CN -1 Shift register Shift register IV b-s bits | s bits b-s bits | s bits K K K Encrypt Encrypt Encrypt . . . Select s bits Select s bits Select s bits Discard b–s bits Discard b–s bits Discard b–s bits S bits S bits CN C1 C2 S bits S bits S bits P1 P2 PN S bits S bits S bits < s비트 암호 피드백(CFB) 모드 >

  29. Cipher feedback (CFB) mode as a stream cipher

  30. 6.5 출력 피드백 모드 • 출력 피드백 모드(Output Feedback Mode) • 출력 피드백(OFB) 모드는 CFB의 구조와 유사함 • 암호화 함수의 출력이 OFB의 이동 레지스터로 피드백이 되는 반면에 CFB에서는 암호 함수의 출력이 이동 레지스터에 의해 피드백 됨 • S 비트 부분집합이 아닌 평문과 암호문의 꽉 찬 블록으로 운용이 됨 • 전형적인 스트림 암호 구조를 가지고 있음 • 장점 • 비트 오류가 전파되지 않음 • 단점 • CFB보다 메시지 스트림 변조 공격에 더욱 취약함 • 암호화 • 복호화 Oj-1) Oj-1)

  31. 6.5 출력 피드백 모드 • OFB모드의 암호화 과정 Nonce K K K . . . Encrypt Encrypt Encrypt P2 P1 PN C2 C1 CN < 출력 피드백(OFB) 모드 >

  32. 6.5 출력 피드백 모드 • OFB모드의 복호화 과정 Nonce K K K . . . Encrypt Encrypt Encrypt C2 C1 CN P2 P1 PN < 출력 피드백(OFB) 모드 >

  33. Output feedback (OFB) mode as a stream cipher

  34. 6.6 계수기 모드 • 계수기 모드 • 평문 블록 사이즈와 같은 계수가 사용 • 특히, 계수기는 어떤 값으로 초기화된 다음 매 블록 마다 1씩 증가 • OFP모드와 같이, 초기의 계수값은 반드시 난수 • T1은 동일한 키를 사용한 암호화된 메시지와 반드시 구별이 되야함 • 계수값의 유일성을 보장하기 위한 한 가지 방법 • 전달 메시지에 대해 계속적으로 계수값을1씩 증가시킴

  35. 6.6 계수기 모드 • CTR모드의 암호화 과정 Counter 1 Counter 2 Counter 3 K K K . . . Encrypt Encrypt Encrypt P2 P1 PN C2 C1 CN < 계수기(CTR) 모드 >

  36. 6.6 계수기 모드 • CTR모드의 복호화 과정 Counter 2 Counter 1 Counter 3 K K K . . . Encrypt Encrypt Encrypt C2 C1 CN P2 P1 PN < 계수기(CTR) 모드 >

  37. Counter (CTR) mode as a stream cipher

  38. 6.6 계수기 모드 • 계수기 모드의 장점 • 하드웨어 효율성 • 소프트웨어 효율성 • 전처리(Preprocessing) • 임의 접근(Random access) • 검증보안(Provable security) • 단순성 • 운용 모드의 피드백 성질 • ECB를 제외하고는, 모든 블록 암호 운용 모드는 피드백을 포함 • 이를 강조하기 위해, 입력 레지스터와 출력 레지스터에 저장된 산출물이 다시 입력으로 사용 • 입력 레지스터는 한번에 한 블록씩 피드백 메커니즘에 의해 업데이트가 됨

  39. 6.6 계수기 모드 Plaintext block Input register Key Encrypt Input register Key Encrypt Counter • Output register Input register Input register • Output register Key Key Encrypt Encrypt Plaintext block Cipher block chaining (CBC) mode Output feedback (OFB) mode • Output register • Output register Plaintext block Plaintext block Counter (CTR) mode Cipher feedback (CFB) mode < 운용 모드의 피드백 성질 >

  40. 6.7 블록 지향 저장장치를 위한 XTS-AES • 블록 지향 저장장치를 위한 XTS-AES • XTS-AES 모드는 변경 가능한 블록 암호의 개념에 기반을 두고 있음 • 저장 암호화 요구사항 • 저장된 데이터를 암호화하기 위한 요구사항에는 전송되는 데이터들과는 다른 의미를 갖는 “움직이지 않는 데이터”에 대한 언급을 하고 있음 • 단일 블록 운용 • 키 2개를 이용하며, 두 번의 AES알고리즘을 적용함 • 파라미터j의 기능은 CTR 모드의 계수기와 같음 • 파라미터i의 기능은 데이터 단위 레벨의 난수와 같음

  41. 6.7 블록 지향 저장장치를 위한 XTS-AES • 단일 블록 운용(암호화: ) αj i(128bit) Pj Key2 T AES Encrypt PP • AES • Encrypt Key1 α: GF(2128)의 원시원소 CC Cj Encryption < 단일블록에서의 XTS-AES 운용 >

  42. 6.7 블록 지향 저장장치를 위한 XTS-AES • 단일 블록 운용(복호화: ) αj i Cj Key2 T AES Encrypt CC • AES • Decrypt Key1 PP Pj Decryption < 단일블록에서의 XTS-AES 운용 >

  43. 6.7 블록 지향 저장장치를 위한 XTS-AES • 섹터에 대한 운용 • XTS-AES 알고리즘의 입력은 m개의 128비트 블록과 마지막 잔여 블록들로 구성됨 • 암호화와 복호화에서 각 블록은 독립적으로 다루어짐 • 단 마지막 블록이 128비트 보다 작을 때만 예외가 일어남 • 이러한 경우에 ciphertext-stealing 기술을 사용 • Pm-1은 마지막 전체 블록이고, Pm는 마지막 평문 블록이며, s비트를 포함하고 있음 • Cm-1은 마지막 전체 암호문 블록이고, Cm은 마지막 암호문 블록이며, s비트를 포함하고 있음

  44. 6.7 블록 지향 저장장치를 위한 XTS-AES • 섹터에 대한 운용 P0 P1 Pm-1 PmCP i, 0 i, 1 i, m i, m-1 YY Key Key Key Key XTS-AES block encryption XTS-AES block encryption XTS-AES block encryption XTS-AES block encryption . . . XX Cm-1 CmCP C0 C1 Cm-1 Cm-1 Encryption < XTS-AES 모드 >

  45. 6.7 블록 지향 저장장치를 위한 XTS-AES • 섹터에 대한 운용 C0 C1 Cm-1 CmCP i, 0 i, 1 i, m-1 i, m XX Key Key Key Key XTS-AES block decryption XTS-AES block decryption XTS-AES block decryption XTS-AES block decryption . . . YY Pm-1 PmCP P0 P1 Pm-1 Pm-1 Decryption < XTS-AES 모드 >

More Related