1 / 18

Chapter 3 대칭키 암호

Chapter 3 대칭키 암호. 주요 내용. 스트림 암호 (Stream cipher) A5/1 RC4 블록 암호 (Block cipher) Data Encryption Stantard(DES) : relatively simple, Advanced Encryption STD(AES) International Data Encrytption Alg.(IEDA) Blowfish, RC6 Tiny Encryption Algorithm 블록 암호 모드 Electronic codebook (ECB)

nat
Download Presentation

Chapter 3 대칭키 암호

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. Chapter 3 Symmetric Key Crypto Chapter 3대칭키 암호

  2. 주요 내용 • 스트림 암호(Stream cipher) • A5/1 • RC4 • 블록 암호(Block cipher) • Data Encryption Stantard(DES): relatively simple, • Advanced Encryption STD(AES) • International Data Encrytption Alg.(IEDA) • Blowfish, • RC6 • Tiny Encryption Algorithm • 블록 암호 모드 • Electronic codebook (ECB) • Cipher-block chaining (CBC) • Counter (CTR) • 대칭키 암호와 무결성(Integrity)

  3. Chapter 3 Symmetric Key Crypto 이 장의 목표 • 대칭키 암호를 소개 • 대칭키 암호 알고리즘이 내부적으로 어떻게 동작하고 있는지를 이해한다. • “why”보다는 “how”에 초점을 맞춘다. • ”why”를 이해하기 위해서는 cryptanalysis를 이해해야 한다.(6장)

  4. Chapter 3 Symmetric Key Crypto 스트림 암호(stream cipher)

  5. Chapter 3 Symmetric Key Crypto 스트림 암호 • 최근에는 블록 암호 처럼 많이 쓰이지 않는다. • n 비트의 키를 긴키 스트림(long keystream)으로 확장해서 사용한다. • 스트림 암호의 기능 • StreamCipher(K) = S where K:키, S:키 스트림 • S는 일회성 암호(one-time pad)와 같이 사용한다. • c0 = p0  s0, c1 = p1  s1, c2 = p2  s2, … • p0 = c0  s0, p1 = c1  s1, p2 = c2  s2, … • 송신자와 수신자는 동일한 스트림 암호 알고리즘을 사용하고 모두 키 K를 알고 있다.

  6. Chapter 3 Symmetric Key Crypto 스트림 암호 • 두 가지 스트림 암호를 소개한다. • A5/1 • linear feedback shift registers에 기초 • GSM mobile phone system에서 사용 • A5/1은 유럽과 미국에서 사용 • A5/2는 강력한 암호를 갖고 있다고 신뢰할 수 없는 나라에서 사용 • RC4 • changing lookup table에 기초 • 여러 응용에서 사용 – SSL

  7. Chapter 3 Symmetric Key Crypto A5/1

  8. Chapter 3 Symmetric Key Crypto A5/1 • A5/1는 H/W로 구현되는 대표적인 스트림 암호 • 3개의 Linear feedback shift registers로 구성 • X: 19 bits (x0, x1, x2,…, x18) • Y: 22 bits (y0, y1, y2,………, y21) • Z: 23 bits (z0, z1, z2,………….,z22) • X+Y+Z = 64 bits

  9. Chapter 3 Symmetric Key Crypto A5/1 • At each step: m = maj(x8, y10, z10) • Examples: maj(0,1,0) = 0 and maj(1,1,0) = 1 • If x8 = m then X steps • t = x13 x16  x17  x18 • xi = xi1 for i = 18, 17, …, 1 and x0 = t • If y10 = m then Y steps • t = y20 y21 • yi = yi1 for i = 21, 20, …, 1 and y0 =t • If z10 = m then Z steps • t = z7 z20  z21  z22 • zi = zi1 for i = 22, 21, …, 1 and z0 = t • Keystream bit is x18 y21  z22

  10. Chapter 3 Symmetric Key Crypto A5/1 X • 매 사이클의 결과는 한 비트(single bit)이다. • 키는 3개의 레지스터를 채우는데 사용한다. • 매번 레지스터 단계를 수행할지 안 할지 (x8, y10, z10)의 값에 의해 결정된다. • 키 스트림 비트는 레지스터들의 맨 오른쪽 비트의 XOR 값이다.  Y   Z 

  11. Chapter 3 Symmetric Key Crypto From Wikipedia

  12. Chapter 3 Symmetric Key Crypto A5/1 X • 위의 예에서, m = maj(x8, y10, z10)= maj(1,0,1) = 1 • Register X와 Z단계가 수행되고 , Y단계는 수행되지 않는다. • 키 스트림 비트는 레지스터의 맨 오른쪽 비트의 XOR 값이다. • keystream bit : 0  1  0 = 1  Y   Z 

  13. Chapter 3 Symmetric Key Crypto RC4

  14. Chapter 3 Symmetric Key Crypto RC4 • RC4는 소프트웨어로 구현하도록 최적화되었다. • 반면에 A5/1은 하드웨어로 구현 • RC4는 매 단계에서 키 스트림 바이트(a keystream BYTE)를 만들어낸다. • 반면에 A5/1는 키 스트림 비트(a single keystream bit)를 만들어낸다.

  15. Chapter 3 Symmetric Key Crypto RC4 • RC4는 아주 간단하다. • 이것은 단지 256(28)-byte 값의 순열을 포함하는 lookup table이기 때문이다. • 매번 바이트 키 스트림이 만들어질 때, {0,1,2,…255}의 순열을 포함하도록 변경된다.

  16. Chapter 3 Symmetric Key Crypto RC4 초기화 • S[] is permutation of 0,1,…,255 • key[] contains N bytes of key for i = 0 to 255 S[i] = i K[i] = key[i (mod N)] next i j = 0 for i = 0 to 255 j = (j + S[i] + K[i]) mod 256 swap(S[i], S[j]) next j i = j = 0 • 첫단계 – 키를 사용하여 lookup table을 초기화한다. • Key: key[i] for i=0,1,…,N-1 where key[i] is a byte • Lookup table: S[i] is a byte • Key의 길이는 0부터 255 바이트 사이 • 키는 오직 S를 초기화하는데 사용된다.

  17. Chapter 3 Symmetric Key Crypto RC4 키 스트림(keystream) • 다음 단계 – 키 스트림 바이트는 다음의 알고리즘에 의해서 발생된다. i = (i + 1) mod 256 j = (j + S[i]) mod 256 swap(S[i], S[j]) t = (S[i] + S[j]) mod 256 keystreamByte = S[t] • 키 스트림 바이트를 일회성 암호(a one-time pad)와 같이 사용한다. • 주의:처음의 256 바이트는 반드시 폐기한다. • 그렇지않으면 공격자가 키를 회복할 수 있다.

  18. Chapter 3 Symmetric Key Crypto 스트림 암호 • 스트림 암호는 과거에 많이 사용되었다. • 하드웨어로 구현하는데 효율적 • 음성 등과 같이 속도를 따라가는데 적절 • 하지만 최근에 CPU의 성능이 향상되어 소프트웨어 기반의 암호 방식도 충분히 빠르다. • 스트림 암호의 미래는? • Shamir: “스트림 암호의 사망” • 과장된 얘기인지도 모른다…

More Related