고전 대칭키 암호는 문자 기반으로 암호화 하였지만, 현대 대칭키 암호는 비트 기반으로 암호화 한다.
🔑 대칭키 암호의 분류
- 블록 암호
- 스트림 암호
🔑 블록암호의 구성요소
현대 블록암호는 비트 0또는 1의 개수가 유지되면 전수조사 공격에 치명적이기 때문에 대치암호 위주로 설계된다.
∎ 구성요소
⦁ P-박스 (전치 요소)
단순 P-박스는 역함수가 존재하고, 축소 P-박스, 확장 P-박스는 역함수가 존재하지 않는다.
⦁ S-박스 (대치 요소)
- XOR으로 연산한다.
- (입력 비트수 X 출력 비트수)로 이루어져 있다.
- 선형과 비선형이 있다. (구분해보기)
- 역함수가 존재할수도 안할수도 있다.
⦁ 배타적 논리합 (XOR)
- 닫힘, 결합법칙, 교환법칙 성립한다,
- 항등원 존재 : 모든 비트가 0
- 역원 존재 : 자기자신을 역원으로 갖는다.
⦁ 순환 이동
- 왼쪽, 오른쪽을 비트 이동
⦁ 스왑
- 절반으로 나누어 자리를 바꿈
⦁ 분할과 결합
- 중앙을 분리하거나 분리한 것을 결합
🔑 합성암호란?
확산과 혼돈을 위해 구성요소들을 섞어 사용한다.
⦁ 확산
암호문과 평문 사이의 관계를 숨긴다
⦁ 혼돈
암호문과 키의 관계를 숨긴다.
🔑 현대 블록 암호
현대 블록 암호는 모두 합성 암호이다.
두 가지로 분류된다.
∎ Feistel 암호
- 역함수가 있는 것과 없는 것 모두 포함
ex) DES - 암호문에 평문을 포함하여 전달할때, 암호화를 향상시키기 위해서 사용할 방법은? ➜ swapper를 추가한다.
∎ non-Feistel 암호
- 역함수가 존재하는 구성 요소만 포함
ex) AES - S-박스를 동일한 입출력 개수로 만들거나, 단순 P-박스만 사용한다.
∎ 부분 사이즈 키 암호
- 현대 블록 암호는 일반적으로 부분 키 대치 암호이다.
- 부분키는 입력값에서 출력값으로 대응시키는 모든 경우 중 일부분의 대응만을 정의한다.
🔑 블록 암호 공격
- 키의 크기가 크기때문에 전수조사 공격에 안전하다.
- 차분 분석 : 선택 평문 공격이다. 입력 값들의 변화와 출력 값들의 변화를 통해 분석한다.
- 선형 분석 : 알려진 평문 공격이다. 선형 근사식을 만들어 선형 특징을 이용해 분석한다.
🔑 스트림 암호
데이터를 비트 단위로 암호화한다.
평문과 키 스트림을 XOR한다.
블록암호보다 빠르다
∎ 동기식 스트림 암호
키는 평문, 암호문과 독립이다.
⦁ One-Time Pad : 키가 랜덤하게 생성된다. 너무 이상적이다. 결과도 완전 랜덤하다.
⦁ LFSR (Linear Feedback shift register) 귀환 쉬프트 레지스터 : 레지스터에 입력되는 값은 이전 상태 값들을 XOR 연산한 것이다.
∎ 비동기식 스트림 암호
키가 평문이나 암호문에 종속적으로 결정된다.
'보안' 카테고리의 다른 글
메시지 무결성과 인증 (0) | 2024.08.11 |
---|---|
현대 대칭키 암호화 종류 (0) | 2024.08.11 |
전통적인 대칭키 암호 (0) | 2024.08.11 |
DES 암호화 (0) | 2024.08.11 |
AES 암호화 (0) | 2024.08.11 |