DES에서는 NIST(National Institute of Standards and Technology)에서 도입한 대칭 키 블록 암호입니다. DES는 1977년 1월 연방 관보에 FIPS 46으로 소개되었습니다.
NIST는 분류되지 않은 소프트웨어에서 사용하기 위한 표준으로 DES를 나타낼 수 있습니다. DES가 공개되었기 때문에 가장 널리 사용되는 대칭 키 블록 암호입니다. NIST는 나중에 향후 소프트웨어에 대해 삼중 DES(DES 암호를 세 번 반복)의 사용을 확인하는 새로운 표준(FIPS 46-3)을 발표했습니다.
DES는 64비트 블록 크기를 가지며 구현 중 56비트 키가 필요합니다(8 패리티 비트는 완전한 64비트 키에서 제외됨). DES는 대칭 암호 시스템, 특히 16라운드 Feistel 암호입니다.
블록이 암호화되고 초기 순열 IP가 적용되어 복잡한 키 종속 계산이 수행되고 마지막으로 초기 순열 IP −1 의 역인 순열이 적용됩니다. .
순열은 장소 j의 요소를 장소 k로 변경하는 함수에 의해 구현되는 연산입니다. 키 종속 계산은 함수의 관점에서 간단히 나타낼 수 있습니다. f는 암호 함수로 알려져 있고 함수 KS는 키 일정으로 알려져 있습니다.
함수 F에서 S-박스의 역할은 대체에 8개의 S-박스 그룹이 포함된다는 것입니다. 각각은 6비트를 입력으로 사용하고 다음과 같이 4비트를 생성합니다. - 상자 Si에 대한 입력의 첫 번째 및 마지막 비트는 2비트 이진수를 형성하여 Si에 대한 테이블의 4개 행으로 표시되는 4개 대체 중 하나를 선택합니다.
중간 4비트는 16개 열 중 하나를 선택합니다. 행과 열에 의해 선택된 셀의 10진수 값은 출력을 만들기 위해 4비트 설명으로 변환됩니다. 예를 들어 S1에서 입력 011001에 대해 행은 01이고 열은 1100입니다. 행 1, 열 12의 값은 9이므로 출력은 1001입니다.
S-box의 원리는 다음과 같습니다 -
-
각 S-box에는 6비트의 입력과 4비트의 출력이 있어야 합니다.
-
S-box의 출력 비트가 없으면 입력 비트의 선형 함수에 너무 가까워야 합니다. (S-box는 DES의 유일한 비선형 요소이며 비선형성이 알고리즘의 강점입니다.)
-
S-box의 각 "행"에는 가능한 모든 출력이 포함되어야 합니다. (이것은 출력을 무작위화합니다.)
-
S-box에 대한 2개의 입력이 실제로 1비트가 다르다면 이들의 출력은 최소 2비트가 달라야 합니다.
-
S-box에 대한 2개의 입력이 특히 중간 2비트에서 다르고 출력이 최소 2비트만큼 달라야 하는 경우.
-
S-box에 대한 두 입력이 처음 두 비트가 다르고 마지막 두 비트가 일치하면 두 출력은 서로 달라야 합니다.