DES(Data Encryption Standard)는 64비트 블록의 일반 텍스트를 48비트 키를 사용하여 암호문으로 변환하는 블록 암호 알고리즘입니다. 대칭 키 알고리즘입니다. 동일한 키를 데이터 암호화 및 해독에 사용할 수 있음을 정의할 수 있습니다.
DES의 디자인은 1994년에 IBM에 의해 발명되었습니다. DES에 대한 몇 가지 테스트에서 주장한 대로 필요한 요소 중 일부를 충족한다는 것이 입증되었습니다. 다음과 같이 발행된 일부 디자인이 있습니다 -
S-박스 − S-Boxes는 압축된 키와 확장된 RPT를 포함하는 XOR 연산에서 48비트 입력을 받아들이고 대체 기술을 사용하여 32비트 출력을 만드는 절차입니다. 대체는 8개의 대체 상자(S-box라고도 함)로 구현됩니다.
S-Box의 몇 가지 속성은 다음과 같습니다 -
-
각 행의 항목은 0과 15 사이의 값의 순열입니다.
-
S-box는 비선형입니다. 즉, 출력은 입력의 affinetransformation이 아닙니다.
-
입력의 개별 비트를 변경할 수 있는 경우 출력에서 두 개 이상의 비트가 변환됩니다.
-
S-box에 대한 2개의 입력이 2개의 중간 비트(비트 3 및 4)에서만 다른 경우 출력은 부분적으로 2비트에서 달라야 합니다. 즉, S(x) 및 S(x ⊕ 001100)는 x가 입력이고 S(x)가 출력인 두 비트에서 부분적으로 달라야 합니다.
-
S-box에 대한 두 입력이 처음 두 비트(비트 1 및 2)에서 다르고 마지막 두 비트(5 및 6)에서 유사하면 두 출력은 달라야 합니다. 즉, b와 c는 임의의 비트인 S(x) ≠ S(x ⊕ 11bc00)의 관계가 필요합니다.
D-박스 − D-box는 기존의 전치 암호와 유사한 기능을 가진 순열 상자입니다. D-Box에는 다음과 같은 속성이 있습니다. -
-
각 S-box 입력은 다른 S-box의 출력에서 나타납니다(이전 라운드에서).
-
주어진 S-box에 대한 입력이 유사한 상자(이전 라운드에서)의 출력에서 나타나지 않습니다.
-
각 S-box의 4개 출력은 6개의 개별 S-box(나중 라운드에서)로 이동합니다.
-
S-box의 두 개의 출력 비트는 동일한 S-box로 가지 않습니다(다음 라운드에서).
-
각 S-box에 대해 2개의 출력 비트는 다음 라운드에서 S-box의 처음 또는 마지막 2비트로 이동합니다. 다른 두 개의 출력 비트는 나중 라운드에서 S-box의 중간 비트를 나타냅니다.
라운드 수 - DES는 16 라운드의 Feistel 암호를 사용합니다. 8 라운드 후에 각 암호문은 모든 일반 텍스트 비트와 모든 키 비트의 함수라는 것이 입증되었습니다. 암호문은 일반 텍스트와 암호문의 무작위 함수입니다. 따라서 8라운드가 적당할 것 같습니다.