2019. 12. 26. 14:47ㆍProgramming/CS
Feistel Cipher(파이스텔 구조) 와 DES
Feistel Cipher 구조
파이스텔 구조는 데이터를 두부분으로 나누어 좌, 우 두부분에 교대로 비선형 변환을 적용시키는 구조를 말하며, trudy가 키를 훔쳐도 function을 알지 못하기 때문에 보안성이 베리굿이다.
파이스텔 네트워크 구조는 치환(Substitution), 순열(Permutation)을 번갈아 수행하는 구조이다.
위 구조는 DES에서 사용된다.
Left bit(Li) : 현재 비트의 XOR 의 결과
Right bit(Rj) : 다음것의 left bit의 copy본
kEY(kj) : unknown
키
1. F를 라운드 함수로 하고 K0, K1, ... , Kn을 각각 라운드 0, 1, ..., n의 하위 키로 한다.
2. 평문 블록을 두 개의 동일한 조각으로 분할(L0, R0)
3. 각 라운드의 경우 i = 0, 1, ..., n,
4. ComputeLi+1 = Ri, Ri+1 = Li = Li = ⊕ F(Ri,Ki)
5. 암호 텍스트는 (Rn+1, Ln+1)
위 그림 전체 (i-1~ i) 의 일련의 과정이 한 Round이다.
특징
왼쪽에 R0L0이 메세지!! R0~Rn+1까지 그 라운드 별로 키가 다 다르다
ciphertext를 생성할 때, bits가 섞인 상태로 완성된다.
Decryption
• 각 라운드의 경우 i = n, n-1, ..., 0
• 암호 텍스트는 (Rn+1 | Ln+1)
• 원형 함수 F는 반전할 필요가 없다.(디크립션할 때 역함수를 취할 필요가 없다)
• 즉, 암호화와 암호 해독의 유일한 차이점은 서브키 순서!
decription : n~0
encryprion : 0~n
이 subkey : drive masterKey
DES
파이스텔 구조와 DES
DES(데이터 암호화 표준)은 세계에서 가장 널리 사용되는 블록 암호로, Feistel 암호 구조에 기초했다.
DES의 설계 원리
높은 수준의 diffusion, conffusion을 달성하기위해 고안되었고,
24시간마다 key가 바뀌어서, → not safe 하다.
오른쪽 비트를 왼쪽비트에 넣게 되면 왼쪽 비트는 feistel function의 리턴값을 얻게 된다
Initial Permutation & Final Permutation
저 위 마지막 부분에서 Permutation에서 일어나는 과정을 알아보자
Permutation Table에 따라서 bit의 교환이 일어나고, 이 부분에서는 암호화를 하지 않는다.
IP(Innitial Permutation) 의 역함수가 FP(Final Permutation)이라고 생각하면 된다.
지금껏 구성원리 및 고안해야할 점들을 알아보았다.
정리하면, 크게 Feistel function 의 원리를 갖는 DES는 위 4가지로 구성된다.
DES의 구성
Expansion(E-Box)
이때, half block은 32bits, key size: 48bits이다. xor연산을 위해서는 확장이 필요하다.
Substitution(S-Box)
비선형 치환 테이블을 말하며, 각각의 비트가 맵핑되어 i+1 non-linear
공간을 줄일 수 있다. → 011011 6비트input → 4bit output이 된다.
0/1101/1에서, 첫번쨰 0과 마지막1이 column, 안에있는것이 row information 이다.
Permutation(P-Box)
Diffusion
된다. shuffles: input → output
innitial permutation 과 비슷해보이지만, 방식 외에 key information이 다르다.
또한 substitution과 유사하게 permutation table에 따라 bit swap된다.
Expansion P-BOX
- 먼저 32bit를 4bit 4개로 나눈다. 그 다음 각 섹션은 6bit로 확장을 한다.
- 각 섹션에서는 1
4bit는 25bit로 복사가 되고 복사된 bit의 첫번째 부분은 그 전 섹션의 4번째 bit가 복사가 된다. - 그리고 복사된 bit의 마지막 부분은 다음 섹션의 첫번째 bit가 복사가된다.
DES암호의 장점
-
avalanche effect 를 갖는다는것이 강점이다.(XOR, p, sbox, IP→FP)
-
error detection이 가능하다.
DES과정의 64-56 = 8bit(char Type) → error on the key
정리
- E-box(Expansion)
- 32bit half-block ⇒ 48bits 로 확장
- XOR
- 48 bit key combine, (48 subkey +48 half block)
- S-Box(Substitution)
- 8개의 6bit로 나뉨
- 비선형 치환 테이블, ROUND function 부분!! (16번의 치환과정)
- P-Box (initial permutation, final permutation)
- 서로다른 S박스에 분산된다
'Programming > CS' 카테고리의 다른 글
[OS] Dual Mode(이중모드), 하드웨어 보호 (0) | 2020.04.08 |
---|---|
[OS] OS의 서론, 역사, 인터럽트 기반 시스템 (0) | 2020.04.07 |
[OS] 폰노이만구조, CPU와 성능개선 (0) | 2020.04.04 |
[정보보안]AES(Rijndael)와 DES (0) | 2019.12.27 |
[정보보안] Symmetric Key(대칭키)를 이용한 암호해독방식 (0) | 2019.12.25 |