다음과 같은 DES의 다양한 구성 요소가 있습니다 -
핵심 변환 − 초기 64비트 키는 각 8 을 폐기하여 56비트 키로 변경됩니다. 초기 키의 비트. 따라서 각 라운드마다 56비트 키가 적용됩니다. 이 56비트 키에서 모든 라운드 동안 여러 48비트 하위 키가 생성되며 이를 키 변환이라고 합니다. 56비트 키는 각각 28비트인 두 개의 반으로 나뉩니다.
라운드 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
이동된 키 비트 수 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 1 |
라운드당 이동된 키 비트 수
키 변환 절차에는 압축 순열로 알려진 원래의 56비트 키에서 48비트 키의 순열 및 선택이 포함됩니다. 압축 순열 기술에서는 각 라운드에서 여러 개의 키 비트 하위 집합이 사용됩니다. 이것은 단순히 크랙이 아닌 DES를 생성합니다.
확장 순열 − 초기 순열 후 왼쪽 일반 텍스트 및 오른쪽 일반 텍스트로 알려진 두 개의 32비트 일반 텍스트 영역이 있습니다. 확장 순열 동안 RPT는 32비트에서 48비트로 확산됩니다. 비트 크기를 32에서 48로 향상할 수 있으며 확장 순열로 알려진 비트가 순열됩니다.
먼저 볼 수 있듯이 키 변환 프로세스는 56비트 키를 48비트로 압축합니다. 따라서 확장 순열 프로세스는 32비트 RPT를 48비트로 발전시킵니다.
S-box 대체 − S-box 치환은 압축된 키와 확장된 RPT를 포함하는 XOR 연산에서 48비트 입력을 받아 치환 기법을 활용하여 32비트 출력을 전개하는 절차입니다.
대체는 8개의 대체 상자(S-box라고도 함)로 구현됩니다. 8개의 S-box는 각각 6비트 입력과 4비트 출력을 가지고 있습니다. 48비트 입력 블록은 8개의 서브 블록(각각 6비트 포함)으로 분할되며, 각 서브 블록은 S-box에 제공됩니다.
P-박스 순열 − S-box의 출력은 32비트를 포함합니다. 이 32비트는 P-box를 사용하여 순열됩니다. 이 간단한 순열 구조는 확장이나 압축 없이 Pbox 테이블에 정의된 대로 각 비트를 다른 비트로 교체하는 것을 포함하는 단순 순열을 포함합니다. 이것을 P-box 순열이라고 합니다.
XOR 및 스왑 − 64비트 원본 일반 텍스트(즉, RPT)의 32비트 오른쪽 절반 부분에서만 이러한 모든 작업을 구현할 수 있습니다. 왼쪽 절반 부분(즉, LPT)은 지금까지 영향을 받지 않았습니다.
이 시점에서 초기 64비트 일반 텍스트 블록(즉, LPT)의 왼쪽 절반 부분은 P-box 순열에 의해 생성된 출력과 XOR됩니다. 이 XOR 연산의 결과는 새로운 오른쪽 절반(즉, RPT)으로 발전합니다. 기존의 오른쪽 절반(즉, RPT)은 교환 과정에서 새로운 왼쪽 절반으로 발전합니다.