Document 7372202

Download Report

Transcript Document 7372202

Chapter 3
대칭키 암호
Chapter 3 Symmetric Key Crypto
1
주요 내용



스트림 암호(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)
이 장의 목표



대칭키 암호를 소개
대칭키 암호 알고리즘이 내부적으로 어떻게
동작하고 있는지를 이해한다.
“why”보다는 “how”에 초점을 맞춘다.

”why”를 이해하기 위해서는 cryptanalysis를 이
해해야 한다. (6장)
Chapter 3 Symmetric Key Crypto
3
스트림 암호(stream cipher)
Chapter 3 Symmetric Key Crypto
4
스트림 암호



최근에는 블록 암호 처럼 많이 쓰이지 않는다.
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를 알고 있다.
Chapter 3 Symmetric Key Crypto
5
스트림 암호


두 가지 스트림 암호를 소개한다.
A5/1


linear feedback shift registers에 기초
GSM mobile phone system에서 사용



A5/1은 유럽과 미국에서 사용
A5/2는 강력한 암호를 갖고 있다고 신뢰할 수 없는
나라에서 사용
RC4


changing lookup table에 기초
여러 응용에서 사용 – SSL
Chapter 3 Symmetric Key Crypto
6
A5/1
Chapter 3 Symmetric Key Crypto
7
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
Chapter 3 Symmetric Key Crypto
8
A5/1

At each step: m = maj(x8, y10, z10)


If x8 = m then X steps




t = y20  y21
yi = yi1 for i = 21, 20, …, 1 and y0 = t
If z10 = m then Z steps



t = x13  x16  x17  x18
xi = xi1 for i = 18, 17, …, 1 and x0 = t
If y10 = m then Y steps


Examples: maj(0,1,0) = 0 and maj(1,1,0) = 1
t = z7  z20  z21  z22
zi = zi1 for i = 22, 21, …, 1 and z0 = t
Keystream bit is x18  y21  z22
Chapter 3 Symmetric Key Crypto
9
A5/1
X
x0
x1
x2
x3
x4
x5
x6
x7
x8
x9
x10
x11
x12
x13
x14
x15
x16
x17
x18

Y
y0
y1
y2
y3
y4
y5
y6
y7
y8
y9

y10 y11 y12 y13 y14 y15 y16 y17 y18 y19 y20 y21

Z
z0
z1
z2
z3
z4
z5
z6
z7
z8
z9
z10
z11
z12
z13
z14
z15
z16
z17
z18
z19
z20
z21
z22





매 사이클의 결과는 한 비트(single bit)이다.
키는 3개의 레지스터를 채우는데 사용한다.
매번 레지스터 단계를 수행할 지 않할지 (x8, y10, z10)의 값
에 의해 결정된다.
키 스트림 비트는 레지스터들의 맨 오른쪽 비트의 XOR
Chapter 3 Symmetric Key Crypto
값이다.
10
From Wikipedia
Chapter 3 Symmetric Key Crypto
11
A5/1
X
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Y
1 1 0 0 1 1 0 0 1 1 0 0 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 0 1 1 1 1 0 0 0 1




위의 예에서, m = maj(x8, y10, z10) = maj(1,0,1) = 1
Register X와 Z 단계가 수행되고 , Y 단계는 수행되지 않는다.
키 스트림 비트는 레지스터의 맨 오른쪽 비트의 XOR 값이다.

keystream bit : 0  1  0 = 1
Chapter 3 Symmetric Key Crypto
12
RC4
Chapter 3 Symmetric Key Crypto
13
RC4


RC4는 소프트웨어로 구현하도록 최적화되었다.
 반면에 A5/1은 하드웨어로 구현
RC4는 매 단계에서 키 스트림 바이트(a keystream BYTE)를
만들어낸다.
 반면에 A5/1는 키 스트림 비트(a single keystream bit)를
만들어낸다.
Chapter 3 Symmetric Key Crypto
14
RC4

RC4는 아주 간단하다.


이것은 단지 256(28)-byte 값의 순열을 포함
하는 lookup table이기 때문이다.
매번 바이트 키 스트림이 만들어질 때,
{0,1,2,…255}의 순열을 포함하도록 변경된다.
Chapter 3 Symmetric Key Crypto
15
RC4 초기화

첫단계 – 키를 사용
하여 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를 초기
화하는데 사용된다.


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
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 바이트는 반드시 폐기한다.

그렇지않으면 공격자가 키를 회복할 수 있다.
Chapter 3 Symmetric Key Crypto
17
스트림 암호

스트림 암호는 과거에 많이 사용되었다.




하드웨어로 구현하는데 효율적
음성 등과 같이 속도를 따라가는데 적절
하지만 최근에 CPU의 성능이 향상되어 소프
트웨어 기반의 암호 방식도 충분히 빠르다.
스트림 암호의 미래는?


Shamir: “스트림 암호의 사망”
과장된 얘기인지도 모른다…
Chapter 3 Symmetric Key Crypto
18