Encryption 2
서브키 구현 원리 #
Key size: 56 + 8 (parity bit; error checking)
key 이등분 (28 bit + 28 bit)
for rounds i = 1, 2, ... 16
let lk = lk circular shift left by ri
let rk = rk circular shift left by ri
for rounds 1, 2, 9, 16
ri = 1
else
ri = 2
그러나…
key의 길이가 56비트밖에 되지 않아
전수조사 공격에 취약 1998년 56시간 안에 해독하는 HW 개발
22시간 15분으로 1999년에 단축
한걸음 더: 강력하고 효율적인 새 암호 알고리즘 공모
- 알고리즘이 공개적으로 밝혀져야 함
- 128/192/256비트의 세 가지 키를 가져야 함
- 호환성이 뛰어나야 함
state = x
addroundkey(state,key0)
for i = 1 to r - 1
subbytes(state, s-box)
shiftrows(state)
mixcolumns(state)
addroundkey(state, key)
subbytes(state, s-box)
shiftrows(state)
addroundkey(state, key)