DES의 암호화와 복호화 과정
DES의 기본 구조
- 암호화 시 초기 치환(Initial permutation)과 최종 치환(Final permutation)을 수행하고 치환 작업 사이에 16개의 Feistel 라운드 함수로 구성되어 있음
- 초기 치환과 최종 치환 작업은 서로 역의 관계에 있는 치환 표를 통해 단순히 위치만 바꾼 작업
- 중간에 라운드가 없다면 최종적으로 입력된 값은 변동 없이 최종 값으로 출력됨
초기/최종 치환표
- 예를 들어 초기 치환에서 2번째 입력 비트 값은 50번째 출력 비트 값이 됨
- 두 행렬은 서로 역행렬 관계에 있는 단순 P-박스(암호학적으로 중요하지 않음)
- P-박스(치환 박스): 문자의 자리를 변경하는 고전 전치 암호
- S-박스(대치 박스): 수학적인 관계에 의해 치환하는 암호, 대치암호
- DES의 라운드(암호화 과정) 그림
- DES의 라운드는 이전 라운드의 출력 값(또는 초기 치환 박스)을 절반씩 입력으로 받아 Mixer와 Swapper를 통해 다음 라운드에 입력으로 적용 될 값을 생성한다.
- Round과정 중 함수 f에서 행해지는 역할
- 함수는 확장 P-박스, 키 XOR, 8개의 S-박스, 단순 P-박스로 구성되어 있음