정보보안산업기사 필기

[암호학] 합성 암호

zzadary1012 2026. 3. 23. 23:39

- 합성 암호

: 치환·전치 암호와 그 밖의 구성요소들로 이루어진 복합적인 암호 (Shannon이 소개한 개념)

 

※ 라운드(Round) : 반복적으로 사용되는 합성 암호 ※

→ 합성 암호라는 자물쇠를 여러번 걸어 공격을 방지하는 것

 

▶ 합성 암호에는 크게 2가지 종류가 있음 

: Feistel 암호, SPN 구조

 

 

- Feistel 암호

: 구성도가 그물을 짜는 것 같이 교환되는 형태로 구성되어 있음

 

(1) Feistel 암호의 작동 원리

① 분할 : 입력된 평문을 똑같은 크키의  좌우(L, R) 블록으로 분할한다.

② 라운드 함수 적용 : 오른쪽 블록(R)에 라운드 함수를 적용한다.

③ XOR 연산 : 함수의 결과값과 왼쪽 블록(L)을 XOR 연산한다.

④ 교차(Swap) : 다음 라운드로 넘어가기 전에 원래의 R과 계산 값을 서로 바꾼다.

수식 정리

▶ R(i) = L(i-1) XOR f( R(i-1), K(i-1) )이 아니라 K(i)인 이유는 1라운드에서 K(0)이 아닌, K(1)을 사용하도록 표기하기 때문

 

 

 

(2) Feistel 암호의 특징 

· 아무리 복잡한 함수를 사용하여도 구조적으로 복호화가 가능함

· 3라운드 이상이며 짝수 라운드로 구성됨

· 언제나 역변환이 가능함

· 두 번의 수행으로 완전한 확산(Diffusion)이 이루어짐

· 알고리즘 수행속도 ↑

· 하드웨어 및 소프트웨어 구현이 용이

· 아직 구조상에 문제점 발견 X

· 복호화 할 때는 암호화 알고리즘의 역순으로 실행

 

(3) 안정성 있는 Feistel 암호의 조건

· 평문 블록의 길이 : 64bits 이상

· 키의 길이  : 64bits 이상

· 라운드 수 : 16회 이상

 

(4) Feistel을 사용하는 암호 알고리즘

: SEED, DES, Blowfish, Twofish, Mars, CAST, CAST256 ...

 

출처 - 위키백과, 근데 여긴 또 K(0)이라고 하네

 

 

 

- SPN 구조

: Substitution-permutation(SP) Network

 

(1) SPN 구조 

① 입력된 데이터를 일정한 단위로 나누어 S-box에 통과시킨다(대치).

→ 혼돈 발생

② S-box에서 출력된 데이터를 P-box로 전치시킨다.

→ 확산 발생

 

▶ 위 과정을 반복하는 방식이 SPN 구조이다.

출처 - 내가 그림

 

(2) SPN 구조 특징 

· 암호화와 복호화 함수가 서로 다름

→ 복호화를 위해 라운드 함수가 역변환 되어야 함

·  하드웨어 구현이 용이하지만 비용 ↑ 

 

(3) SPN 구조를 사용하는 암호 알고리즘

: IEDA, ARIA, AES, RIJNDAEL, SAFER, SHARK, Square ...

 

기본 구조 해당 구조를 사용하는 알고리즘
Feistel DES, Blowfish, Twofish, RC5, RC6, Mars, MISTY, LOKI, CAST, CAST256, E2
SPN Rijndael, SHARK, Serpent, SAFER, SAFER+, Square, CRYPTON, PRESENT

 

 

- 블록 암호에 대한 공격

 

(1) 차분 분석(차분 해독법, Differential Cryptanalysis)

: 선택 평문 공격법

→ 두 개의 평문 블록들의 비트에 차이에 대응되는 암호문 블록들의 비트의 차이를 분석

 

(2) 선형 분석(선형 해독법, Linear Cryptanalysus)

: 기지평문 공격의 한 종류 

→ 알고리즘의 비선형 구조를 적당히 선형화시켜 키를 찾는 방법 (근사적 선형 관계식을 찾는 것을 목표로 함)

 

(3) 전수공격법(Exhaustive key search)

: 암호화할 때 일어날 수 있는 모든 경우의 수를 조사하는 방법

 

(4) 통계적 분석(Statistical analysis)

: 지금껏 알려진 통계적 자료를 이용하여 분석하는 방법

 

(5) 수학적 방법(Mathematical analysis)

: 통계적 분석을 포함하여 수학적 이론을 이용하여 해독하는 방법

 

 

 

 

 

 

♠ 2026.03.23 / D-303 ♠

 

오늘은 현대 블록 암호와 더불어 합성 암호까지 공부를 해보았다. 혼돈은 암호문과 키 사이의 관계를 숨기고, 확산은 암호문과 평문 사이의 관계를 숨긴다. 합성 암호는 P-box와 S-box를 포함한 암호인데, 같은 합성 암호를 반복적으로 사용하게 되면 이를 라운드라고 부르기로 했다. 합성 암호의 종류에는 Feistel 방법과 SPN 구조가 있었다. 둘 다 알고리즘이 그렇게 어렵지 않기 때문에 그냥 공부해보았다. 

 

오늘은 평소보다 조금 늦게 공부가 끝났다. 오랜만에 풋살 뛰고 오니까 힘들지만 할 건 해야하기 때문에 사지방으로 출근을 했다... 5월 31일에 인터넷 보안 전문가 2급, 6월 21에 네트워크 관리사 2급 실기시험이 있는데 이 때 출타를 나갈 수 있을지 모르겠다. 못 나가면 필기 면제 없어지는건데 무슨 수를 쓰더라도 나가서 자격증 취득해서 오겠다. 

 

사실 인보전이랑 네관 공부하면서 겹치는 부분이 상당히 있다. 이후 나중에 정처기 딸 때도 상당한 도움이 될 것 같다. 나는 이만하고 잠을 자러 가봐야겠다.