개념 사전 · 개념

DES와 Feistel 구조

Data Encryption Standard · 데스

DES는 64비트 블록과 유효 56비트 키를 사용하는 역사적인 대칭 블록암호다. 현재의 신규 보호 수단으로 권하는 항목이 아니라 라운드와 키 길이의 의미를 이해하는 학습 대상이다.

밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.

01무엇이고, 어떤 일을 하나

  • 좌우 절반을 교환·결합하는 가역 구조를 설명한다.
  • 확장··치환·가 담당하는 역할을 구분한다.
  • DES와 의 블록 크기·키 길이 차이를 비교한다.

02어떤 순서로 동작하나

  1. DES 크기

    DES는 역사적 블록암호로 64비트 블록과 실효 56비트 키를 사용한다. 키를 표현하는 64비트 중 일부는 패리티 용도이므로 키 공간을 2^64로 세면 안 된다.

  2. 상태

    초기 치환 뒤 32비트씩 L과 R로 나누고 16라운드 변환을 반복한다. 한 라운드에서는 이전 R을 새 L로 옮기고 이전 L에 F(R, )를 XOR하여 새 R을 만든다.

  3. 역변환 원리

    F 함수가 자체적으로 역함수를 갖지 않아도 전체는 복호화할 수 있다. 새 L이 곧 이전 R이고, XOR는 같은 값을 다시 XOR하면 취소되므로 이전 L도 되찾는다.

  4. 역순

    암호화에 사용한 를 역순으로 적용하는 복호화 구조가 여기서 나온다.

03먼저 알아둘 용어와 구성요소

한쪽 절반에 함수를 적용한 뒤 다른 절반과 XOR하고 교환하는 구조.
입력 비트 묶음을 다른 크기·값으로 비선형 치환하는 표.
원래 키에서 회전·선택 등을 거쳐 각 라운드에 공급하는 값.
DES를 여러 번 합성한 과거 방식으로 DES와 동일한 단일 실행은 아니다.

04예제로 따라가기

  • DES 블록 64비트는 초기 상태에서 32비트의 좌우 절반으로 나뉜다.
  • F 함수에서는 오른쪽 32비트를 48비트로 확장한 뒤 와 XOR하고 에서 다시 32비트로 줄인다.
  • 복호화는 구조의 가역성을 이용해 순서를 뒤집어 적용한다.

05혼동하기 쉬운 점과 확인 기준

  • 저장된 DES 키 표현의 패리티 비트를 모두 보안 강도로 계산하면 유효 키 길이를 잘못 읽는다.
  • 처럼 반복 적용해도 64비트 블록의 제약까지 사라지는 것은 아니므로 과거 호환 목적과 신규 암호 설계를 구분한다.

06상세 노트 · 실습 자료

헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.

공식 문서 · 표준

기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.