본문 바로가기

정보보안기사

3. 합성암호 종류 - Feistel cipher, SPN 구조


합성암호 종류 

- 대부분의 블록 암호는, 라운드 함수를 반복적으로 적용하는 방법에 따라 크게 두가지로 구별된다.

1. Feistel 구조 

2. Substitution-Permutation Network(SPN) 


1. 파이스텔 암호 : Feistel cipher


파이스텔 암호(Feistel cipher)는 블록 암호의 일종으로, 암호화 방식이 특정 계산 함수의 반복으로 이루어진다.

이 때, 각 과정에 사용되는 함수는 라운드 함수(round function)이라고 부른다.

많은 블록 암호가 파이스텔 구조를 가지고 있다. 

예를 들어, DES블로피시SEED 등이 파이스텔 구조를 가진다. 하지만 AES와 같이 파이스텔 구조가 아닌 블록 암호도 존재한다.


구성도가 그물을 짜는것과 같이 교환되는 방식이기때문에, 네트워크라는 이름이 붙여졌다.


Feistel 암호의 강도를 결정짓는 요소

1. 평문 블록 길이

2. 키의 길이

3. 라운드의 수


충분한 안정성을 보장받기 위한 위 세가지 요소 조건

1. 평문 블록 길이 64비트 이상

2. 키의 길이는 64비트 내외.   (최근, 128비트 키 길이 권장)

3. 라운드 수 16회 이상


Feistel 암호 방식의 복호화 과정  = 암호화 과정

복호화 과정 input : Cipher text , 보조키 Ki

복호화 과정의 보조키 Ki 의 입력순서는, 암호화 과정의 입력 순서와 반대가 됨 (암호화 할때 넣은 반대로 넣어주면 됨).



2. SPN 구조

"여러개의 함수를 중첩하면, 개별함수로 이루어진 암호보다 안전하다 " 라는 Shannon 의 이론에 근거,

고전 암호의 일종인 Substitution Cipher 와 Permutation Cipher 를 중첩하는 형태로 개발하였다.

Input 을 여러개의 소 블록으로 나누고, 각 소 블록을 S-box 로 입력하여 대치(substitution) 시키고, 

         S-box 출력을 P-box 로 전치(permutation) 하는 과정을 반복하는 방식


여기서 substitution 이란 뭐냐

요로코롬 다른 대응되는놈으로 치환을 시킨다는 뜻이고,

그럼 permutation 은?

이렇게 일정 규칙에 따라서 재배열 시킨다.


결과적으로 말하면, SPN 은, Substitution + Permutation 을 반복하여 구성되는 구조.


'정보보안기사' 카테고리의 다른 글

06. Block cipher 사용 방식  (0) 2019.01.12
05. 정리 및 DES & AES  (0) 2019.01.12
4. Attack about block cihper  (0) 2019.01.09
2. 대칭키 암호 - 01  (0) 2019.01.08
1. 암호분석 분류 - COA, KPA, CPA, CCA  (0) 2019.01.07