반응형
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
반응형
'Information Security Theory' 카테고리의 다른 글
4. Data Encryption Standard (DES) (2) (0) | 2019.03.29 |
---|---|
4. Data Encryption Standard (DES) (1) (0) | 2019.03.27 |
3. Traditional symmetric key ciphers (3) (0) | 2019.03.26 |
3. Traditional symmetric key ciphers (2) (0) | 2019.03.26 |
3. Traditional symmetric key ciphers (1) (0) | 2019.03.20 |