본문 바로가기

Information Security Theory

4. Data Encryption Standard (DES) (3)

반응형
3.복호 : 역작업 - ReverseCipher



복호작업에서 IP는 암호화작업에서 FP와 서로 역관계
Swapper는 그 자체로 역작업인게 자명함

Mixer작업은 서로 역인지에 대해 증명만 한다면, 복호화 작업을 증명할 수 있음.



Feistel Cipher의 성질
To Prove : The mixer is self-invertible

A와 B를 넣었을때 C,D가 나오고
C,D를 다시 넣었을때 A` B`이 나오면 이때, A`=A, B`=B임을 보이면 된다.

D=B
C=f(B,k_i) (+) A
B`=D
A`=f(D,k_i) (+) C



B` = D = B
A` = f(D,k_i) (+) C
    = f(D,k_i) (+) f(B,k_i) (+) A
    = A
∴ A`=A, B`=B이므로, Mixer는 self-invertible이다.



4.Round-key generation

56bits key => 16개의 48bits짜리 Round key (k₁, k₂, ..., k_16)
16개의 key를 만들어줄때 위의 빨간 영역이 16번반복되어 진행된다.



Parity Drop

키가 중요한 데이터 이므로 parity로 check하는 용도로 64bit 사용 (실제 key는 56 bit)

8번비트의 역할 1~7의 1의 비트개수를 짝수개를 보장함
16번비트의 역할 9~15의 1의 비트개수가 짝수개를 보장함
...
64번 비트의 역할 
8의 배수 비트가 parity 비트가 됨

56개 ( 7x8 )
1~64 숫자중 8,16,24, ..., 64를 제외하고 permutation한 표(규칙적인 구조)




Circular left shift

1이나 2로구성 
총합은 28이 된다. (round를 모두 거치면서 16번째까지 shift를 하개 되면 원래의 28bit로 돌아오게 되므로 총 28번의 shift로 구성.)


각 라운드에서 28비트 2개를 상응하는 shift 횟수를 수행한다. (상위 비트에서 overflow되는 경우는 뒤로 밀려남 -> circular shift)



Compression P-box (input : 56bits -> output : 48bits)

(6x8) 48개의 숫자로 구성 ( 1~56 나오지 않는 숫자 9, 18, 22, 25, 35, 38, 43, 54 없음)
불규칙적인 permutation과 제외 비트


위의 과정을 반복적으로 16번 수행해서 key16개를 생성한다.



*키값이 all zero나 all one이 되었을 때의 문제점

*56bit key = 0000 ... 00 (all zero) 
56 bit key가 all zero가 되면, k₁=k₂ =...=k_16 =0
원인 : shift는 값을 변화하지않고 bit를 이동, compression은 기존 bit에서 Permutation하므로,

마찬가지로 all 1이어도 비슷한 문제가 발생
k₁=k₂=...=k_16


반응형