Chapter 3 1 Chapter 3 Symmetric Key Crypto

  • Slides: 18
Download presentation
Chapter 3 대칭키 암호 1 Chapter 3 Symmetric Key Crypto

Chapter 3 대칭키 암호 1 Chapter 3 Symmetric Key Crypto

주요 내용 l l l 스트림 암호(Stream cipher) l A 5/1 l RC 4

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

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

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

A 5/1 Chapter 3 Symmetric Key Crypto 7

A 5/1 Chapter 3 Symmetric Key Crypto 7

A 5/1 l l A 5/1 는 H/W로 구현되는 대표적인 스트림 암호 3개의 Linear

A 5/1 l l A 5/1 는 H/W로 구현되는 대표적인 스트림 암호 3개의 Linear feedback shift registers로 구성 l X: 19 bits (x 0, x 1, x 2, …, x 18) l Y: 22 bits (y 0, y 1, y 2, ………, y 21) l Z: 23 bits (z 0, z 1, z 2, …………. , z 22) l X+Y+Z = 64 bits Chapter 3 Symmetric Key Crypto 8

A 5/1 l At each step: m = maj(x 8, y 10, z 10)

A 5/1 l At each step: m = maj(x 8, y 10, z 10) l l If x 8 = m then X steps l l t = y 20 y 21 yi = yi 1 for i = 21, 20, …, 1 and y 0 = t If z 10 = m then Z steps l l l t = x 13 x 16 x 17 x 18 xi = xi 1 for i = 18, 17, …, 1 and x 0 = t If y 10 = m then Y steps l l Examples: maj(0, 1, 0) = 0 and maj(1, 1, 0) = 1 t = z 7 z 20 z 21 z 22 zi = zi 1 for i = 22, 21, …, 1 and z 0 = t Keystream bit is x 18 y 21 z 22 Chapter 3 Symmetric Key Crypto 9

A 5/1 X x 0 x 1 x 2 x 3 x 4 x

A 5/1 X x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x 13 x 14 x 15 x 16 x 17 x 18 Y y 0 y 1 y 2 y 3 y 4 y 5 y 6 y 7 y 8 y 9 y 10 y 11 y 12 y 13 y 14 y 15 y 16 y 17 y 18 y 19 y 20 y 21 Z z 0 z 1 z 2 z 3 z 4 z 5 z 6 z 7 z 8 z 9 z 10 z 11 z 12 z 13 z 14 z 15 z 16 z 17 z 18 z 19 z 20 z 21 z 22 l l 매 사이클의 결과는 한 비트(single bit)이다. 키는 3개의 레지스터를 채우는데 사용한다. 매번 레지스터 단계를 수행할 지 않할지 (x 8, y 10, z 10)의 값 에 의해 결정된다. 키 스트림 비트는 레지스터들의 맨 오른쪽 비트의 XOR 값이다. Chapter 3 Symmetric Key Crypto 10

From Wikipedia Chapter 3 Symmetric Key Crypto 11

From Wikipedia Chapter 3 Symmetric Key Crypto 11

A 5/1 X 1 0 1 0 1 0 1 Y 1 1 0

A 5/1 X 1 0 1 0 1 0 1 Y 1 1 0 0 1 1 0 0 0 1 Z 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 l l l 위의 예에서, m = maj(x 8, y 10, z 10) = maj(1, 0, 1) = 1 Register X와 Z 단계가 수행되고 , Y 단계는 수행되지 않는다. 키 스트림 비트는 레지스터의 맨 오른쪽 비트의 XOR 값이다. l keystream bit : 0 1 0 = 1 Chapter 3 Symmetric Key Crypto 12

RC 4 Chapter 3 Symmetric Key Crypto 13

RC 4 Chapter 3 Symmetric Key Crypto 13

RC 4 초기화 l 첫단계 – 키를 사용 하여 lookup table을 초기화한다. l l

RC 4 초기화 l 첫단계 – 키를 사용 하여 lookup table을 초기화한다. l l l 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 바이트 사이 l 키는 오직 S를 초기 화하는데 사용된다. l l 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 Chapter 3 Symmetric Key Crypto 16