1 / 75

블록 암호 (Block cipher)

블록 암호 (Block cipher). 블록 암호. 평문가 암호문은 고정된 길이의 블록으로 구성된다 . 설계 목표 : 보안과 효율성 하지만 두 가지 목표를 만족하는 블록 암호 방식을 찾는 것은 쉽지 않다 . Chapter 3 Symmetric Key Crypto. 2. ( 반복 ) 블록 암호. 암호문은 평문에 반복되는 회전 함수 ( round function) 를 적용하여 생성 회전 함수의 입력은 키와 이전 단계의 회전 함수의 결과이다 . 항상 소프트웨어로 구현된다 .

diane
Télécharger la présentation

블록 암호 (Block cipher)

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. 블록 암호(Block cipher) Chapter 3 Symmetric Key Crypto

  2. 블록 암호 평문가 암호문은 고정된 길이의 블록으로 구성된다. 설계 목표: 보안과 효율성 하지만 두 가지 목표를 만족하는 블록 암호 방식을 찾는 것은 쉽지 않다. Chapter 3 Symmetric Key Crypto 2

  3. (반복) 블록 암호 암호문은 평문에 반복되는 회전 함수(round function)를 적용하여 생성 회전 함수의 입력은 키와 이전 단계의 회전 함수의 결과이다. 항상 소프트웨어로 구현된다. 전형적인 형태가 Feistel Cipher이다. Chapter 3 Symmetric Key Crypto 3

  4. 페이스텔 암호(Feistel Cipher) • Feistel cipher는 블록 암호를 설계하는 한 형태이다. (블록 암호 자체가 아니다.) • 평문의 블록을 좌우 반쪽으로 나눈다: • Plaintext = (L0,R0) • 각 단계(i=1,2,...,n)다음과 같이 계산한다. Li= Ri1 Ri= Li1 F(Ri1,Ki) 여기서 F는 회전 함수, K는 서브키(subkey) 최종 암호문 = (Ln,Rn) Chapter 3 Symmetric Key Crypto

  5. 페이스텔 암호 • 복호화: 암호문 = (Ln,Rn) • 각 단계(i=n,n1,…,1)에서 다음과 같이 계산한다., Ri1 = Li Li1 = Ri F(Ri1,Ki) 여기서 F는 회전 함수, Ki는 서브키 • 평문 = (L0,R0) • 이 방식은 어떤 함수 F에서도 적용된다. • 하지만 함수 F는 안전한(secure) 함수이어야 한다. • 예: 모든 Ri-1와 Ki 에 대새서F(Ri-1, Ki) = 0 인 함수는 안전하지 않다. Chapter 3 Symmetric Key Crypto

  6. Data Encryption Standard(DES) Chapter 3 Symmetric Key Crypto

  7. DES • 1970년대에 개발 • IBM Lucifer cipher에 기반을 둠 • U.S. 정부 표준 • DES 개발에는 논란이 있었다. • NSA가 비밀리에 개입됨 • 개발 단계가 공개되지 않음 • 키 길이가 축소됨 • Lucifer 알고리즘을 약간 변경 Chapter 3 Symmetric Key Crypto

  8. National Security Agency/Central Security Service Chapter 3 Symmetric Key Crypto

  9. DES • DES는 페이스텔 암호 체계를 따른다. • 블록 길이 : 64 bits • 키 길이 : 56 bits • 16 단계(round) • 매 단계에서 48 bit의 키를 사용(subkey) • 매 단계의 절차는 간단하다. (for a block cipher) • 안전성은 주로 “S-boxes”에 달려 있다. • 각 S-boxe는 6 bit를 4 bit로 매핑한다. • 총 8개의 S-boxes Chapter 3 Symmetric Key Crypto

  10. One Round of DES L R key 28 28 32 32 L R expand 28 28 48 48 Compress 48 S-boxes(8) 28 32 28 P Box 32 32 32 key R L Chapter 3 Symmetric Key Crypto

  11. DES 확장 순열(Expand permutation) • Input 32 bits • Output 48 bits Chapter 3 Symmetric Key Crypto

  12. DES S-box (치환 박스) • 8개의 치환 박스(substitution boxes) • 각각의 S-box는 6 bit를 4 bit로 매핑한다. • 첫번째 S-box의 매핑 input bits (0,5)  input bits (1,2,3,4) Chapter 3 Symmetric Key Crypto

  13. DES P-box (순열 박스) • Input 32 bits • Output 32 bits Chapter 3 Symmetric Key Crypto

  14. DES 서브키(Subkey) • 56 bit DES key : (0,1,2,…,55) • Left half key bits, LK • Right half key bits, RK Chapter 3 Symmetric Key Crypto

  15. DES 서브키(Subkey) • For rounds i=1,2,...,16 • Let LK = (LKcircular shift left byri) • Let RK = (RKcircular shift left byri) • Left half of subkey Ki(24bits)는 다음과 같은 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 • Right half of subkey Ki(24bits)는 다음과 같은 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 Chapter 3 Symmetric Key Crypto

  16. DES 서브키(Subkey) • 단계 1, 2, 9, 16에서shift ri = 1, 그리고 나머지 단계에서는 ri = 2 • LK의 비트 8,17,21,24는 매 단계에서 생략된다. • RK의 비트 6,9,14,25는 매 단계에서 생략된다. • Compression permutation은 LK와 RK의 56비트 중에서 48비트의 서브키를 생성해 낸다. • Key schedule은 서브키를 생성한다. Chapter 3 Symmetric Key Crypto

  17. 마지막으로 DES에 대해서 • 첫 단계 전에 초기 순열 P를 수행한다. • 마지막 단계에서 좌우측 반쪽을 교환한다. • 암호문을 생성하기 위해서 (R16,L16)에 마지막 순열 (inverse of P)을 적용한다. • 이러한 것은 보안과는 상관이 없다. Chapter 3 Symmetric Key Crypto

  18. DES의 안전성(security) • DES의 안전성은 대부분 S-boxes에 달려 있다. • S-box를 제외한 다른 것들은 선형(linear) • 30년 동안의 치밀한 분석 결과 DES에 “뒷 문(back door)”은 없는 것으로 밝혀졌다. • 공격은 exhaustive key search를 사용한다. • 결론 • DES의 설계자들은 그들이 무엇을 하는지를 알았고 • 그들의 시대에 훨씬 앞서 있었다. Chapter 3 Symmetric Key Crypto

  19. Exhaustive Key Search 시간

  20. 블록 기호 표기법 • P = 평문 블록 • C = 암호문 블록 • 암호문 C를 얻기 위해서 평문 P를 키 K를 사용하여 암호화한다. • C = E(P, K) • 평문 P를 얻기 위해서 암호문 C를 키 K를 사용하여 복호화한다. • P = D(C, K) • 주목! • P = D(E(P, K), K) and C = E(D(C, K), K) Chapter 3 Symmetric Key Crypto

  21. Double DES • DES의 키는 오늘날 적절하지 않다. • 확실한 방법은 DES의 키를 확장하는 것이다: “double DES” • C = E(E(P,K),K) ? • 문제: 여전히 56 bit 키를 사용하는 것과 같다. • C = E(E(P,K1),K2) ? • DES를 사용하는 것과 같이 만드는 공격이 있을 수 있다. • 비록 이 공격이 비현실적이기는 하지만 실제로 일어날 수 있는 가능성이 전혀 없는 것은 아니다. Chapter 3 Symmetric Key Crypto

  22. Double DES 공격(1) • C = E(E(P,K1),K2) 공격: 선택 평문 공격 • 특정 P에 대해서, 모든 가능한 키 K에 대해서 테이블 E(P,K)를 사전에 계산한다.(이 테이블은 256항목을 갖는다.) • 테이블 항목 < C= E(P,K), K > • C는 선택된 P에 대응하는 암호문 • 그리고 위에서 사용한 P에 대응되는 C를 사용하여, 가능한 모든 K2에 대해서, 테이블에 맞는 값이 나올 때까지 D(C,K2)을 계산한다. • 여기서, P = D(C,K2) → E(P,K2) = E(D(C,K2), K2) = C, 즉, D(C,K2)는 테이블에 있어야 한다. Chapter 3 Symmetric Key Crypto

  23. Double DES 공격(2) • 매치되는 값이 발견되면, E(P,K1) = D(C,K2) • 따라서 C = E(E(P,K1),K2) • 결론적으로 K1과 K2를 찾아내었고 C는 복호화되었다. • 사전에 테이블을 만드는 일을 무시하면, 이 작업은 테이블에 매치되는 값을 찾을 때까지 D(C,K)을 계산하는 것이다. • 이것은 255 탐색이 요구된다. • single DES의 exhausted key search 시간과 같다. • 따라서, double DES는 안전하지 않다. Chapter 3 Symmetric Key Crypto

  24. Triple DES • 논리적 접근 방법은 triple DES • 키를 3배로 한다. • 하지만 실제로, Triple DES는 • C = E(D(E(P,K1),K2),K1) • P = D(E(D(C,K1),K2),K1) • 실제 키의 크기는 112 bit이다. Chapter 3 Symmetric Key Crypto

  25. Triple DES • 왜 2개의 키를 사용하여 Encrypt-Decrypt-Encrypt (EDE)으로 암호화하는가? (왜 3개의 키를 사용하여 EEE로 하지 않는가?) • Single DES와의 Backward compatible를 위해서 • If K1=K2=K then E(D(E(P,K),K),K) = E(P,K) • And 키의 길이는 112 bits이면 충분히 안전하다. • 오늘날 3DES는 널리 사용되고 있으나, AES의 등장으로 3DES는 시간이 지날수록 사라져 갈 것이다. Chapter 3 Symmetric Key Crypto

  26. Advanced Encryption STD(AES) Chapter 3 Symmetric Key Crypto

  27. AES 역사(1) • DES를 대체할 암호 방식이 필요 • DES는 이미 과거의 유물이 됨 • exhaustive key search에 안전하지 않음: 특수 목적의 DES 크랙커와 인터넷에서 분산 계산 공격 • 3DES는 공격에는 안전하나 하지만, • 효율적인 소프트웨어 코드가 없다. • 너무 속도가 느리다: DES를 3번 해야 된다. • 64-bit 블록 크기: 효율과 안전을 위해서 더 큰 블록 크기가 필요 • 그래서, 3DES는 장기적으로 해결책이 되지 못함 • 1997년, NIST는 공식적으로 발전된 암호 알고리즘표준을 정하기 위해서 공모를 하였다. Chapter 3 Symmetric Key Crypto

  28. AES 역사(2) • 목표: 정부와 민간 부문에서 사용할 DES를 대체할 수 있는 알고리즘을 찾음 • AES 요구사항 • 저작권 없이 전세계에서 사용할 수 있도록 비밀없는(unclassified), 공개된 암호화 알고리즘 • 알고리즘은 반드시 대칭키(symmetric key) 방식이어야 함 • 블록 암호 방식과 블록 크기는 최소한 128 비트, 키 크기는 128- , 192-, 그리고 256 비트 • 1998년 NIST 15개의 AES 후보 알고리즘을 발표 Chapter 3 Symmetric Key Crypto

  29. AES 역사(3) • AES를 선택하는 기준: • 안전성, 견고성(Robustness), 속도 • 1999년 15개 중에서 5개로 후보를 좁혔다. • MARS, RC6, Rijndael, Serpent, and Twofish. • 5개의 알고리즘 모두 안전한 것으로 인정받았다. • 2000년 10월 2일 NIST는 Rijndael을 선정 발표 • Joan Daemen과 Vincent Rijmen이 만듦 Chapter 3 Symmetric Key Crypto

  30. AES 특징(1) • 다양한 플랫폼에서 사용할 수 있으며 소프트웨어와 하드웨어에서 효율적으로 동작할 수 있도록 설계 • 페이스텔 암호 형태가 아님 • 반복적인 블록 암호 (DES와 같음) • 페이스텔 암호 형태가 아님(DES와 다름) • “Secure forever” – Shamir Chapter 3 Symmetric Key Crypto

  31. AES 특징(2) • 제안된 Rijndael • 가변의 블록 크기 : 128,192, 256-bits, • 가변의 키 크기 : 128-, 192-, or 256-bits. • 가변의 반복 단계(round) : (10, 12, 14): • 10 if B = K = 128 bits • 12 if either B or K= 192 and the other≤ 192 • 14 if either B or K = 256 bits • 그러나 주목할 점은AES의 블록 크기는 128-bit. Chapter 3 Symmetric Key Crypto

  32. AES 개요(1) • 정의: State→ 4X4 array of bytes • 128 bits = 16 bytes • 가변의 rounds (10, 12, 14): • 10 if K = 128 bits • 12 if K = 192 bites • 14 if K = 256 bits • 각 round에서 128-bit round key 사용 • 128 bits = 16 bytes = 4 words • Nr rounds에 대해서 Nr+1 round key가 필요 • 10 rounds, 128-bit 키에 대해서 44 words 필요 Chapter 3 Symmetric Key Crypto

  33. AES 개요(2) • 각 round는 4개의 함수 사용 (3 “계층”) • 4 함수: 1 순열과 3 치환 • 3 계층: 선형, 비선형, 키 덧셈 • 순열(Permutation) • 선형 혼합 계층: ShiftRow (State) • 치환(Substitution) • 비선형 계층: ByteSub (State, S-box) • 비선형 계층: MixColumn (State) • 키 덧셈 계층: AddRoundKey (State, KeyNr) Chapter 3 Symmetric Key Crypto

  34. AES: High-Level Description • State: 4 X 4 바이트 행렬: 128 bits = 16 bytes State = X AddRoundKey(State, Key0) (op1) for r = 1 to Nr - 1 SubBytes(State, S-box) (op2) ShiftRows(State) (op3) MixColumns(State) (op4) AddRoundKey(State, KeyNr) endfor SubBytes(State, S-box) ShiftRows(State) AddRoundKey(State, KeyNr) Y = State Chapter 3 Symmetric Key Crypto

  35. AES AddRoundKey • RoundKey (subkey) 는 key schedule알고리즘에 의해서 결정 • AES key schedule 알고리즘의 설명은 생략 • 서브키와 블록을XOR: 128-bits 블록으로 가정 Chapter 3 Symmetric Key Crypto

  36. AES BytesSub • Assume 128 bit block, 즉 4ⅹ4 bytes • ByteSub은 AES의 “S-box” • 두 수학적 연산의 비선형(nonlinear) (하지만 invertible) 결합 Chapter 3 Symmetric Key Crypto

  37. AES BytesSub • 비선형 S-Box (각각의 바이트에 독립적으로)를 사용한 바이트 치환 • S-box는 16x16 array로 표현, 열과 행은 16진수 비트로 인덱스된다. • 8 bits는 다음과 같이 대체된다.: • 8 bits : hexadecimal number (r,c), • 그러면 (sr,sc) = binary(Sbox(r, c)) Chapter 3 Symmetric Key Crypto

  38. AES “S-box” • 예: 16진수 53 은 ED로 대체된다. Last 4 bits of input First 4 bits of input Chapter 3 Symmetric Key Crypto

  39. AES ShiftRow • Cyclic shift rows Chapter 3 Symmetric Key Crypto

  40. AES MixColumn • 각 행에 적용되는 비선형, 역가능 연산 • (커다란)lookup table로 구현된다. Chapter 3 Symmetric Key Crypto

  41. AES 복호화 • 복호화를 위해서 절차는 반드시 역가능(invertible)해야 한다. • AddRoundKey의 역은 용이: 는 자신이역(inverse)이다. • MixColumn는 역가능하다 : 역(inverse)도 lookup table로 구현 가능 • ShiftRow의 역은 용이: 다른 방향으로 cyclic shift하면 된다. • ByteSub도 역가능: 역(inverse)도 역시lookup table로 구현 가능 Chapter 3 Symmetric Key Crypto

  42. 다른 블록 암호들 • IDEA • Blowfish • RC6 • TEA Chapter 3 Symmetric Key Crypto

  43. IDEA • International Data Encryption Alg • Xuejia Lai (學嘉來)와 James Massey이 만듦 • Pretty Good Privacy(PGP) V2.0에서 사용 • 특징 • IDEA은 mixed-mode arithmetic을 사용 • IDEA가 가장 처음으로 이 방법을 사용 • 이 방법은 오늘날 자주 사용되고 있다. • 64-bit 블록, 128-bit 키 • 8 rounds, 16-bit 수에 대해서 연산 Chapter 3 Symmetric Key Crypto

  44. IDEA mixed-mode arithmetic • Bitwise eXclusive OR • (파란⊕로 표시) • Addition modulo 216 • (초록으로 표시) • Multiplication modulo 216+1, 여기서 모든 zero word (0x0000) 는 216으로 표현 • (빨간색으로 표시) Chapter 3 Symmetric Key Crypto

  45. Blowfish • Bruce Schneier에 의해 만들어짐 • 특징 • 블록 길이: 64-bit • 키의 길이는 가변, 448 bits까지 가능 • 속도가 빠르다. • 소형: 메모리 5K 미만에서 구현 가능 • 간단: 단순한 구조 • 안전성은 키의 길이에 달려 있음 • 키에 따른 S-boxes • S-boxes는 키에 의해 결정된다. Chapter 3 Symmetric Key Crypto

  46. Blowfish • 거의 페이스텔 암호 형태에 가깝다. Ri = Li1 Ki Li = Ri1 F(Li1 Ki) • round function F는 4 S-boxes • 각 S-box는 8 bits를 32 bits로 매핑한다. • 키에 따른 S-boxes • S-boxes는 키에 의해 결정된다. Where Pi: round key Chapter 3 Symmetric Key Crypto

  47. RC6 • Ron Rivest가 만든 암호들 • 공개키 암호: RSA, 블록 암호: RC6 • 스트림 암호: RC4, 해쉬 함수: MD5, • 특징 • 가변 • 블록 크기, 키 크기, round의 수 • 대단히 빠르고, 간단 명료한 설계 • AES의 최종 후보 • 데이터에 따른 순환(rotation) 사용 • 알고리즘의 일부로서 데이터를 사용하는 것은 흔치 않다. Chapter 3 Symmetric Key Crypto

  48. Tiny Encryption Algorithm • David Wheeler가 만듦 • 특징 • 64 bit 블록, 128 bit 키 • 32-bit 연산을 가정 • 32-bit 컴퓨터를 목표로 함 • modulo 232에 기초한 연산 • Round의 수는 가변 • 32 round이면 안전하다고 간주 • 약한 round 함수를 사용하기 때문에, 많은 round의 수가 필요하다. Chapter 3 Symmetric Key Crypto

  49. Tiny Encryption Algorithm • 각 round 함수의 복잡성과round 수 간의 타협(Trade off) • DES: 이 둘 사이에 균형을 추구 (16) • AES: round 수를 줄이고 더 복잡한 round 함수를 사용 (10,12,14) • TEA: 간단한 round 함수, 하지만 많은 round의 수 • 32는 안전한다고 간주함 Chapter 3 Symmetric Key Crypto

  50. TEA Encryption 32 rounds: (<<: L shift, >> R shift) (K[0],K[1],K[2],K[3]) = 128 bit key (L,R) = plaintext (64-bit block) delta = 0x9e3779b9 sum = 0 for i = 1 to 32 sum = sum+delta L = L + ((R<<4)+K[0])^(R+sum) ^((R>>5)+K[1]) R = R + ((L<<4)+K[2])^(L+sum) ^((L>>5)+K[3]) next i ciphertext = (L,R) Chapter 3 Symmetric Key Crypto

More Related