현대 블록 암호
구성요소
- 혼돈과 확산
- P-박스: 전치
- S-박스: 대치
합성 암호(Product Ciphers)
Shannon이 도입한 합성 암호의 주요 개념은, 설계된 블록 암호가 확산과 혼돈이라는 두 가지 성질을 갖도록 하는 것이다.
- Feistel 구조
- SPN 구조(Substitution-permutation network)
블록 암호에 대한 공격
- 차분 분석
- 선형 분석
- 전수공격법
- 통계적 분석
- 수학적 분석
현대 스트림 암호
동기식 스트림 암호
동기식 스트림 암호 시스템은 키 스트림이 평문과 관계없이 생성되는 것이다. 암호문에 들어있는 키 스트림과 암호문의 독립성이 존재하고, 복호화하여 평문을 찾을 때는 키 스트림과 암호문 사이에 동기가 필요하다.
- One-Time Pad
- 귀환 시프트 레지스터(FSR, Feedback Shift Register)
- 선형 귀환 시프트 레지스터(LFSR, linear feedback shift register)
- 비선형 귀환 시프트 레지스터(NLFSR)
+ feedback 함수: 출력을 다시 입력으로 활용하여 연속적이고 반복적인 처리를 수행하는 함수
비동기식 스트림 암호(자기 동기식 스트림 암호)
키 스트림이 평문 또는 암호문과 관계를 갖는 스트림 암호 시스템이다. 키 스트림이 평문 혹은 암호문으로부터 함수 관계에 의해 생성되는 방식이다.
DES(Data Encryption Standard)
1975년 3월에 연방관보에서 연방정보처리기준의 초안으로 공표된 대칭키 블록 암호이다.
평문의 길이는 64비트, 키의 길이는 56비트(+ 패리티비트 8비트), 라운드 횟수는 16회이다. 키로부터 16개의 48비트 서브키를 생성하고 각 라운드에서 사용한다.
DES의 각 라운드 함수는 Feistel 암호로 되어있다.
라운드 함수는 이전 라운드 함수의 출력값을 입력으로 받아, 다음 라운드에 입력으로 전송한다.
DES의 라운드 함수에 사용된 $f(R_{i-1}, K_i)$를 DES함수라고 한다.
취약점
- 평문 또는 키의 변화가 암호문에 큰 변화를 만드는 쇄도효과가 매우 크고, 암호문의 각 비트가 평문의 많은 비트들에 의존하는 완비성이 높다.
- 계산 능력이 발전한 현대에는 더 이상 전사 공격에 안전하지 못하다.
3중 DES
AES(Advanced Encryption Standard)
1997년 DES를 대체하기 위해 미국 국립기술표준원에서 채택한 레인달(Rijndael) 알고리즘을 사용한 암호이다.
평문의 길이는 128비트, 암호문의 길이도 128비트이다. 10, 12, 14라운드를 사용하며, 각 라운드에 대응하는 키 크기는 128, 192, 256비트이다.
레인달에서는 SPN구조를 사용한다.
기타 대칭키 암호 알고리즘
국제 암호 알고리즘
- IDEA
- RC5
국내 암호 알고리즘
- SEED
- ARIA
- HIGHT
- LEA
대칭키 암호를 이용한 암호화 기법
Electronic CodeBook: ECB 모드
Cipher Block Cahining: CBC 모드
Cipher FeedBack: CFB 모드
Output FeedBack: OFB 모드
CounTeR: CTR 모드