Today I Learned …

[정보보안기사] 5강 정리 : 대칭키 암호 본문

Security/정보보안기사

[정보보안기사] 5강 정리 : 대칭키 암호

염베리 2021. 12. 27. 10:52

* 개인적인 공부 내용을 기록한 글입니다.


5강 정리 : 대칭키 암호

 

 

문자 → 비트

문자 : 텍스트

비트 : 그래픽, 오디오, 비디오 등

 

현대 블록암호의 구성 요소

치환으로 설계됨

전치 ⊂ 치환

전치 (P-박스) + 치환 (S-박스) + 그 밖의 구성 요소를 결합

 

스크램블드 에그

대칭키 암호에 의한 암호화는 스크램블드 에그를 만드는 것과 비슷하다.

그러나 가능한 뒤죽박죽인 암호문을 만들되, 수신자에 의해서 정확하게 복호화될 수 있어야 한다.

 

P-박스 (Permutation=전치)

  입력 (n) / 출력 (m) 역함수 비고
단순 (Straight) n = m O -
축소 (Compression) n > m X 비트를 줄이고자 함
확장 (Expansion) n < m X 비트를 증가시키고자 함

 

S-박스 (Substitution=치환)

치환 암호의 축소 모형

역함수가 존재할 수도 있고, 존재하지 않을 수도 있다.

* 역함수가 존재하는 S-박스는 입력 비트와 출력 비트의 개수가 동일하다.

* Substitution, Exclusive-OR, Shift, Swap, Split, Combine

 

 

★★★

 

합성 암호 (Product Ciphers)

Shannon이 소개한 개념이다.

치환 + 전치 + 그 밖의 구성 요소를 결합한 복합적인 암호이다.

 

Claude Shannon의 업적

1. 확률론을 기초로 한 정보이론 (Information Theory) 의 창시자

2. 일회용 패드 (One-Time Pad) 의 절대적 안전성을 증명

3. 확산과 혼돈을 정의

 

확산 (Diffusion) vs 혼돈 (Confusion) ★★★

확산 : 암호문과 평문 사이의 관계를 숨기는 것

혼돈 : 암호문과 키의 관계를 숨기는 것

 

라운드 (Rounds)

반복적으로 사용되는 합성 암호를 말한다.

* DES : 16회전

* 3DES : 48회전

 

양자 암호학 (용어 정도만)

하이젠베르크의 불확정성 원리를 응용한 암호화 방식이다.

 

 

★★★★★

 

두 가지 종류의 합성 암호 (Feistel vs SPN)

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

1. Feistel : 개미+베짱이

2. SPN : 개미 (Shannon의 원리)

Feistel 그물을 짜듯이 역함수 O/X 요소 암호화=복호화 3라운드 이상 짝수 DES → SEED
SPN 치환 + 전치 역함수 O 요소만 암호화≠복호화 병렬 처리 AES → ARIA

 

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

1. 평문 블록의 길이

2. 키 K의 길이

3. 라운드의 수

 

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

보조키 입력 순서가 서로 반대이다.

암호화 : K1 → K16

복호화 : K16 → K1

 

Feistel과 AES

AES 최종 후보로 남은 5개 중에 3개의 알고리즘에서 사용되고 있다.

→ MARS, RC6, Twofish

* 단, AES로 최종 선정된 Rijndael은 사용 안함 (SPN이다.)

 

대칭 블록 암호 구현 ★★★★★

1. 블록 크기

2. 키 길이 : 128비트가 보편적이다.

3. 라운드 수

4. 서브키 생성 알고리즘 : DES 56비트 → 48비트 (서브키)

5. 라운드 함수

 

SPN 구조

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

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

* 역함수 존재 요소만 사용한다.

* 절반으로 분할이 불필요하다.

프로필사진
berry
FE Developer, loves React & better DX
Comments