DES(Data Encryption Standard)는 64비트 블록에서 일반 텍스트를 생성하고 48비트 키를 사용하여 암호문으로 변환하는 블록 암호 알고리즘입니다. 정보를 암호화 및 복호화하는 데 유사한 키를 사용할 수 있음을 정의하는 대칭 키 알고리즘입니다.
암호화 단계는 초기 및 최종 순열을 정의할 수 있는 두 개의 순열(P-box)과 16개의 Feistel 라운드로 생성됩니다. 각 라운드에는 명확한 알고리즘에 따라 암호 키에서 생성된 특정 48비트 라운드 키가 필요합니다.
암호화 사이트에서 DES 암호의 요소는 다음과 같습니다 -
초기 및 최종 순열 − 각 순열은 64비트 입력을 생성하고 명확한 규칙에 따라 순열합니다. 일부 입력 포트와 해당 출력 포트만 표시할 수 있습니다. 이러한 순열은 서로 반대인 키가 없는 직선 순열입니다.
예를 들어, 초기 순열에서 입력의 58번째 비트는 출력의 첫 번째 비트로 발전합니다. 마찬가지로 최종 순열에서는 입력의 첫 번째 비트가 출력의 58번째 비트로 발전합니다.
즉, 이 두 순열 사이의 라운드가 계속되지 않고 초기 순열에 들어가는 58번째 비트가 최종 순열을 떠나는 58번째 비트와 같다면
라운드 - DES는 16 라운드를 사용합니다. DES의 각 라운드는 Feistel 암호입니다. 라운드는 LI−1를 생성합니다. 및 RI−1 이전 라운드에서 LI를 만듭니다. 그리고 R나 , 다음 라운드로 이동합니다. 각 라운드에는 2개의 암호 요소(예:믹서 및 스와퍼)가 있다고 생각할 수 있습니다.
이러한 각 요소는 반전 가능합니다. 스와퍼는 뒤집을 수 있습니다. 텍스트의 왼쪽 절반을 오른쪽 절반으로 바꿀 수 있습니다. 믹서는 XOR 연산으로 인해 반전 가능합니다. 반전 불가능한 모든 요소는 함수 f(RI−1 내에서 수집됩니다. , K나 ).
암호화 및 역암호화 − 믹서와 스와퍼를 이용하여 각각 16개의 라운드를 가지는 암호와 역암호를 생성할 수 있습니다. 암호는 암호화 사이트에서 사용할 수 있고 역암호는 복호화 사이트에서 사용할 수 있습니다. 전체 개념은 암호와 역암호 알고리즘을 유사하게 만드는 것입니다.
첫 번째 방법은 이 목표를 관리할 수 있는 방법으로, 한 가지 방법은 다른 것과 구별되는 마지막 라운드(16라운드)를 생성하고 믹서만 있고 스와퍼는 없는 것입니다. 라운드가 수평이 아니지만 요소(믹서 또는 스와퍼)는 수평입니다.
첫 번째 접근 방식에서 라운드 16은 다른 라운드와 다르며 이 라운드에는 스와퍼가 없습니다. 이것은 암호에서 최종 믹서를 만들고 반대 암호 조절에서 첫 번째 믹서를 만드는 데 필요합니다. 16번째 라운드에 하나의 스와퍼를 포함하여 유사한 16개 라운드를 모두 생성하고 그 후에 더 많은 스와퍼를 삽입하는 데 사용됩니다(두 개의 스와퍼는 서로의 결과를 제거함).