Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

DES에는 몇 라운드가 있습니까?

<시간/>

DES는 16발을 사용합니다. 각 16개 라운드에는 다음과 같은 광범위한 단계가 포함됩니다. −

  • 핵심 변환 − 초기 64비트 키는 각 8 을 폐기하여 56비트 키로 변경됩니다. 초기 키의 비트. 따라서 각 라운드에 대해 56비트 키를 사용할 수 있습니다. 이 56비트 키에서 각 라운드 동안 다른 48비트 하위 키가 생성되는 프로세스를 키 변환이라고 합니다.

    56비트 키는 각각 28비트로 두 부분으로 나뉩니다. 이 반쪽은 라운드에 따라 왼쪽으로 1개 또는 2개의 위치로 원형 이동됩니다.

    예를 들어, 라운드 수가 1, 2, 9, 16인 경우 한 자리만 시프트가 완료됩니다. 다른 라운드에서는 두 위치만큼 순환 이동이 완료됩니다. 라운드당 이동된 키 비트 수가 테이블에 표시됩니다.

라운드 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

라운드당 이동된 키 비트 수

  • 확장 순열 − 초기 순열 후 왼쪽 일반 텍스트 및 오른쪽 일반 텍스트로 알려진 두 개의 32비트 일반 텍스트 영역이 있습니다. 확장 순열 동안 RPT는 32비트에서 48비트로 확산됩니다. 32에서 48로 비트 크기를 향상시킬 수 있으며 확장 순열로 알려진 비트가 순열됩니다.

  • S-box 대체 − S-box 치환은 압축된 키와 확장된 RPT를 포함하는 XOR 연산에서 48비트 입력을 받아 치환 기법을 사용하여 32비트 출력을 생성하는 절차입니다.

  • P-박스 순열 − S-box의 출력은 32비트를 포함합니다. 이 32비트는 P-box를 사용하여 순열됩니다. 이 간단한 순열 구조는 확장이나 압축 없이 Pbox 테이블에 정의된 대로 각 비트를 다른 비트로 교체하는 것을 포함하는 단순 순열을 포함합니다. 이것을 P-box 순열이라고 합니다.

    P-box가 테이블에 표시됩니다. 예를 들어, 첫 번째 블록의 16은 원래 입력의 위치 16에 있는 비트가 출력의 위치 1에 있는 비트로 변경됨을 나타내고 블록 번호 16의 10은 원래 입력의 위치 10에 있는 비트가 비트로 변경됨을 나타냅니다. 출력의 위치 16에서.

16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
  • XOR 및 스왑 − 64비트 원본 일반 텍스트의 32비트 오른쪽 절반 부분에서만 이러한 모든 작업을 구현할 수 있습니다. 왼쪽 절반 부분은 지금까지 인상적이지 않았습니다. 이 시점에서 초기 64비트 일반 텍스트 블록의 왼쪽 절반 부분은 P-box Permutation에 의해 생성된 출력과 XOR됩니다.