블록(Block) 암호 - DES

P·2021년 12월 7일
0

DES(Data Encryption Standard)

  • DES는 대칭키 블록 암호로 미국 국립기술표준원(NIST, National Institute of Standards Technology)에서 공표하였음
  • 56bit의 키를 이용하여 암호화와 복호화에 둘 다 사용
  • 64bit 평문을 64bit 암호문으로 변환(그 반대도 가능)

DES의 암호화와 복호화 과정

DES의 기본 구조

  • 암호화 시 초기 치환(Initial permutation)과 최종 치환(Final permutation)을 수행하고 치환 작업 사이에 16개의 Feistel 라운드 함수로 구성되어 있음

초기 치환, 최종 치환

  • 초기 치환과 최종 치환 작업은 서로 역의 관계에 있는 치환 표를 통해 단순히 위치만 바꾼 작업
  • 중간에 라운드가 없다면 최종적으로 입력된 값은 변동 없이 최종 값으로 출력됨

초기/최종 치환표

  • 예를 들어 초기 치환에서 2번째 입력 비트 값은 50번째 출력 비트 값이 됨
  • 두 행렬은 서로 역행렬 관계에 있는 단순 P-박스(암호학적으로 중요하지 않음)
  • P-박스(치환 박스): 문자의 자리를 변경하는 고전 전치 암호
  • S-박스(대치 박스): 수학적인 관계에 의해 치환하는 암호, 대치암호

DES의 라운드

  • DES의 라운드(암호화 과정) 그림
  • DES의 라운드는 이전 라운드의 출력 값(또는 초기 치환 박스)을 절반씩 입력으로 받아 Mixer와 Swapper를 통해 다음 라운드에 입력으로 적용 될 값을 생성한다.

DES 함수

  • Round과정 중 함수 f에서 행해지는 역할
  • 함수는 확장 P-박스, 키 XOR, 8개의 S-박스, 단순 P-박스로 구성되어 있음
그림 출처: Cryptography & Network Security Mc Graw Hill Education Forouzan
profile
개인 정리 공간

0개의 댓글