본문 바로가기
정보보안기사 필기/1. 정보보안 일반

정보보안기사 필기 1-3. 대칭키 암호(블록암호, 스트림 암호)

by kkmin93 2021. 1. 3.
반응형

정보보안기사 필기 1-3. 대칭키 암호(블록 암호, 스트림 암호)

목 차
1. 블록암호
2. 블록 암호에 대한 공격
3. 스트림 암호

 

1. 블록 암호

  • 블록 암호는 확산*혼돈*과 같은 성질을 만족시키기 위해 전치 요소(P-box)와 치환/대치(S-box) 그리고 그 밖의 구성요소를 결합하여 만족시킨다.
  • 블록 암호는 전치 요소(P-box), 대치 요소(S-box) 외 이동 요소(Shift), 교환 요소(Swap), 분할 요소(Split), XOR 연산의 조합으로 보다 강한 확산과 혼돈을 제공한다. 

 

『확산』은 암호문으로부터 평문과의 상관관계를 찾기 어렵게 만드는 것이고, 『혼돈』은 암호문과 키의 상관관계를 찾기 어렵게 만드는 것이다.

 

1.1 블록 암호의 구성요소

 1) P-box

  • 단순 P-box, 확장 P-box, 축소 P-box 세 가지 종류의 P-box가 있으며, "확산의 강도"를 결정한다.
  • 단순 P-box는 역함수가 존재하지만, 나머지 P-box는 역함수가 존재하지 않는다.

 

 2) S-box

  • S-box는 입력과 출력 값 사이의 관계가 테이블 혹은 수학적 관계로 정의되는 구성 요소이며, "혼돈의 강도"를 결정한다.
  • S-box는 역함수가 존재할 수 도 있고, 않을 수도 있지만, 존재한다면 입력 비트와 출력 비트의 개수가 동일해야 한다.

 

 3) 합성 암호(Product Ciphers, Feistel 구조, SPN 구조)

  • Shannon이 합성 암호의 개념을 제시하였으며, 합성 암호는 블록 암호의 확산과 혼돈을 높이기 위한 구성요소들의 복합적인 집합체이다.

 

 3-1) Feistel 구조

  • Feistel 암호 방식의 강도를 결정하는 요소는 평문 블록의 길이(64비트 ▲), 키 K의 길이(128비트 ▲), 라운드 수(16회 ▲)이어야 안전하며, 키 K는 서브 키 알고리즘으로 각 라운드마다 사용되는 서브키 K를 생성하게 된다.
  • Feistel 암호 방식의 복호화 과정은 암호화 과정과 동일하다.
  • 알고리즘의 수행 속도가 빠르며, 하드웨어 및 소프트웨어 구현이 용이하다.
  • Feistel 암호 방식은 나눠진 평문 블록을 좌우 블록으로 분할하여 한 블록을 라운드 함수에 적용시킨 후 그 출력 값을 다른 한 블록에 적용하는 과정을 반복하는 방식이다.

 

[그림 1. Feistel 구조]

 

 

 3-1) SPN 구조

  • Feistel 구조와 다르게 라운드 함수를 반복적으로 적용하는 것이 아닌 『여러 개의 함수를 중첩하면 개별 함수로 이루어진 암호보다 안전하다.』는 Shannon의 이론에 근거하여 S-box와 P-box를 중첩하는 형태의 구조이다.
  • 입력을 여러 개의 소블록으로 나누고 각 소블록을 S-box로 입력하여 대치시키고, 그 출력을 P-box로 전치하는 과정을 반복하는 방식이다.
  • SPN 구조는 라운드 함수가 역변환이 되어야 한다는 제약이 있지만, 더 많은 병렬성을 제공하기 때문에 암/복호화 알고리즘의 고속화를 요구하며, 현 추세에 부응하는 방식이라고 할 수 있다.

[그림 2. SPN 구조]

 

2. 블록 암호에 대한 공격

1) 차분 분석(Differential Cryptanalysis)

  • Biham Shamir가 개발한 방법으로, 『평문의 일부를 변경하면 암호문이 어떻게 변하는지?』를 분석하는 방법이다.
  • 단, 공격자는 자기가 만든 임의의 평문을 암호화할 수 있어야 한다는 가정을 둔다.

 

2) 선형 분석(Linear Cryptanalysis)

  • 마츠이가 개발한 방법으로 『평문과 암호문 비트를 몇 개 정도 XOR 연산하여 0이나 오는 확률을 조사』하는 분석방법이다.
  • 단, 공격자는 자기가 만든 임의의 평문을 암호화할 수 있어야 한다는 가정을 둔다.
  • 선택 평문 공격이라고도 하며, 선형* 분석으로 비선형* 구조를 근사 선형화 시키게 된다면, 그 결과를 가지고 기지 평문 공격을 수행할 수 있다.

 

『선형』이란, 수학식으로 구성된 형태를 가지고 있어 비교적 풀기 쉬운 형태를 말하며, 『비선형』이란 특정한 규칙을 찾기 어려워 계산식을 도출하기 어려운 형태를 말한다고 생각하면 된다.

 

3) 전수 공격법(Exhaustive Key Search)

  • 1977년 Diffie와 Hellman이 제안한 방법으로 가능한 모든 경우에 대해 조사하는 방법이다.

 

4) 통계적 분석, 수학적 분석

 

3. 스트림 암호

  • 평문과 키 스트림을 순차적으로 XOR* 연산하여 암호문을 생성하는 방식이다.

 

『XOR 연산』은 다른 연산과 다르게 0이나 1이 나올 확률이 통계적으로 치우치지 않고 50%로 균일하기 때문에 사용한다.

 

[그림 3. XOR 연산]

 

  • 스트림 암호에 사용되는 키 스트림은 긴 주기를 가져야 하며, 0과 1의 개수가 거의 동일해야 한다.
  • 또한 무차별 공격(Brute Force)에 대응하기 위해서는 키의 길이가 충분히 길어야 한다.
반응형