본문 바로가기

Crypto

Feistel 암호 시스템 [Crypto]

1973년, IBM의 Horst Feistel에 의해 개발되었습니다. 흔히 Feistel network 라고도 합니다. Feistel network는 IBM의 Lucifer 암호시스템에 처음 적용되었습니다. 유명한 DES 암호의 전신입니다. Lucifer는 Shannon의 이론을 적용한 암호 시스템입니다. Shannon의 이론은 '환자와 전치를 반복적용하면 평문의 통계적 특성이나, 키와 관계가 나타나지 않아 안전하다.' 라는 이론입니다. 여기서 통계적 특성이란 영어는 자주 사용되는 알파벳 배열이 있습니다. the, to, a 등 여러 배열이 있는데 해당 배열에 대한 통계를 내어 특정 알파벳의 배열이 자주 사용됨을 이용한 특성입니다. 아래는 통계적 특성의 예시 입니다.

통계적 특성 예시

 

- Feistel 암호 시스템 Lucifer를 16번 반복하면 DES 암호 시스템이 됩니다. 아래는 Feistel의 암호화 과정입니다.

Feistel 암호화 과정

1. 평문을 2w 비트 크기의 블록으로 구분을 하고, 오른쪽 w비트 (R0)블록은 왼쪽 출력 (L1)블록

2. 오른쪽 w비트 (R0)블록은 서브키(K1)와 함께 F함수로 입력 (서브키는 비밀키로부터 유도)                                          *R0 밑에이는 2번이 (K1)입니다.

3. F함수 출력은 왼쪽 w비트 (L0)블록과 XOR연산 후 오른쪽 출력 (R1)블록

4. 이과정을 n번 반복

 

- Feistel 구조의 파라미터는 5가지 입니다.

- Block Size : 블록의 길이, 길 수록 안정성은 증가하며 DES의 경우 한블록이 64bit 입니다.

- Key Size : 비밀키의 길이, 길 수록 안정성은 증가하지만 처리속도는 저하됩니다. DES의 경우 64bit 입니다.

- Number of Rounds : 반복 횟수, 많을 수록 안정성은 증가하지만 처리속도는 저하됩니다. DES는 16회 반복합니다.

- Subkey Generation Algorithm : 비밀키 -> 서브키 생성 알고리즘, 복잡할 수록 안정성은 증가하지만 처리속도는 저하됩니다.

- Round Function : F함수, 복잡할 수록 안정성은 증가하지만 처리속도는 저하됩니다.

 

- Feistel 암호는 블록암호이며 특징은 암호화 과정을 한번더 거치면 복호화가 됩니다. 그렇기에 복호화기를 따로 만들 필요가 없어서 비용 절감에 도움이됩니다.

반응형

'Crypto' 카테고리의 다른 글

Visual Cryptography [Crypto]  (0) 2020.02.23
스트림암호와 블록암호 [Crypto]  (0) 2020.02.20
Affine 암호 [Crypto]  (0) 2020.02.15
Pigpen 암호 [Crypto]  (0) 2020.02.15
정보보호 역사(근대 암호) [Crypto]  (0) 2020.02.12