컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - DSA 알고리즘 관련 정보

DSA 알고리즘 관련 정보

DES 알고리즘

(문서 범주: C++) 2003-11-19

DES 알고리즘 이론

1950년대 이후 두 가지 가장 대표적인 성과는 암호학 연구 분야에서 나타났습니다. 그 중 하나가 정보이론의 창시자인 섀넌(Shannon)'을 바탕으로 1971년 미국 학자 투크먼(Tuchman)과 마이어(Meyer)가 제안한 '다중암호효과이론(Multiple Encryption Effectiveness Theory)'이다. 암호화 표준.

DES 암호는 실제로 Lucifer 암호를 더욱 발전시킨 것입니다. 전통적인 암호화 방식을 사용하는 블록

암호입니다.

이 알고리즘은 대칭형이며 암호화 및 복호화에 모두 사용할 수 있습니다.

국가표준국(National Bureau of Standards)은 1973년 국방부를 제외한 다른 부서의 컴퓨터 시스템에 대한 데이터 암호화 표준을 연구하기 시작했습니다.

표준은 1973년 5월 15일과 8월 27일에 발표되었습니다. , 1974. 일본은 대중에게 암호화 알고리즘을 요청하는 두 가지 발표를 발표했습니다.

암호화 알고리즘의 목적은 일반적으로 DES라고 합니다. 암호화 알고리즘의 요구 사항은 주로 다음 네 가지 사항입니다.

무단 공개 및 무단 유출을 방지하기 위해 고품질 데이터 보호를 제공합니다. 데이터 액세스가 상당히 복잡하므로 해독 비용이 가능한 이점을 초과하는 동시에 DES 비밀번호를 쉽게 이해하고 익힐 수 있습니다.

시스템의 보안은 알고리즘의 기밀성에 의존해서는 안 되며, 시스템의 보안은 암호화 키의 기밀성에만 기반을 두고 있으며, 경제적이고 효율적이며 완전히 다른 다양한 애플리케이션에 적합합니다.

1977년 1월, 미국 정부는 IBM이 비기밀 데이터에 대한 공식 데이터 암호화 표준인 DES(데이터 암호화 표준)로 설계한 계획을 채택한다고 발표했습니다.

현재 이곳에서는 3가지 골드 프로젝트, 특히 골드카드 프로젝트가 출시되면서 POS, ATM, 자기카드, 스마트카드(IC카드)에 DES 알고리즘이 사용되고 있다. ), 주유소, 고속도로 고속도로 요금소 등의 분야에서 신용카드 소지자의 PIN 암호화 전송, IC 카드와 POS 간 양방향 인증, 금융 거래 등 주요 데이터의 기밀성을 확보하기 위해 널리 사용됩니다. 숫자

p>

DES 알고리즘은 데이터 패킷의 MAC 검증에 사용됩니다.

DES 알고리즘에는 키, 데이터 및 모드라는 세 가지 항목 매개변수가 있습니다. 그 중 Key는 8바이트 64비트이고,

는 DES 알고리즘의 작동 키이고, Data도 8바이트 64비트이며, 이는 암호화 또는 복호화할 데이터입니다. p>

DES는 암호화 또는 복호화라는 두 가지 방식으로 작동합니다.

DES 알고리즘은 다음과 같이 작동합니다. 모드가 암호화인 경우 키를 사용하여 데이터를 암호화합니다.

데이터의 비밀번호 형식(64비트)이 다음의 출력 결과로 생성됩니다. DES. ; 모드가 복호화인 경우 키를 사용하여 비밀번호 형식의 데이터를 복호화하고 DES의 출력 결과로 일반 형식의 데이터(64비트)로 복원합니다. 통신망의 양쪽 끝에서

양측은 일관된 Key에 동의하고, 해당 Key를 사용하여 통신 발신지점의 핵심 데이터를 DES 암호화한 후 비밀번호 형태로 사용합니다. in the public** *통신망(전화망 등)에서는 데이터가 목적지에 도달한 후 동일한 Key를 사용하여 암호화된 데이터를 복호화하며, 핵심은 데이터는 명확한 형식으로 재생됩니다. 이를 통해 공중 통신망에서 전송되는 핵심 데이터(PIN, MAC 등)의 보안과 신뢰성이 보장됩니다.

통신 네트워크의 소스 및 대상 끝 모두에서 정기적으로 새로운 키로 변경함으로써 데이터의 기밀성을 더욱 향상시킬 수 있습니다.

이것이 바로 현재 금융 거래입니다. 네트워크에는 대중적인 관행이 필요합니다.

DES 알고리즘에 대한 자세한 설명

DES 알고리즘은 64비트 일반 텍스트 입력 블록을 64비트 암호문 출력 블록으로 변환하며 사용하는 키도

>

64비트, 그 기능은 입력된 64비트 데이터 블록을 비트 단위로 재결합하고 출력을 L0와 R0의 두 부분으로 나누는 것입니다. 각 부분은 32비트 길이입니다. 교체 규칙은 다음 표와 같습니다. :

58,50,12,34,26,18,10,2,60,52,44,36,28,20,12,4,

62, 54 ,46,38,30,22,14,6,64,56,48,40,32,24,16,8,

57,49,41,33,25,17, 9 , 1,59,51,43,35,27,19,11,3,

61,53,45,37,29,21,13,5,63,55,47,39, 31 ,23,15,7,

입력된 58번째 숫자를 첫 번째 숫자로, 50번째 숫자를 두 번째 숫자로,... 등 마지막 숫자까지 변경합니다.

위치는 원래 7번째 위치입니다. L0 및 R0은 전치 출력 후의 두 부분입니다. L0은 ​​출력의 왼쪽 32비트이고 R0은 오른쪽 32

비트입니다. 예: 전치 전 입력 값을 D1D2D3으로 설정합니다. D64, 초기 교체 후 결과는 다음과 같습니다.

L0=D58D50...D8; R0=D57D49...D7.

26번의 반복 후. L16과 R16을 구하고 이를 입력으로 취하고 역순열을 수행하여 암호문 출력을 얻습니다. 역순열은 초기 위치의 역연산일 뿐입니다. 예를 들어 초기 순열 후에는 1번째 비트가 40번째 위치에 있고, 역순열을 통해 40번째 비트가 다시 1번째 비트로 변경되는 것입니다. 다음 표와 같습니다:

40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31,

38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29,

36,4,44,12 ,52,20,60,28,35,3,43,11,51,19,59,27,

34,2,42,10,50,18,58 26,33,1 ,41, 9,49,17,57,25,

전치표 확대

32, 1, 2, 3, 4, 5, 4, 5, 6, 7 , 8, 9, 8, 9, 10,11,

12,13,12,13,14,15,16,17,16,17,18,19,20,21,20, 21 ,

22,23,24,25,24,25,26,27,28,29,28,29,30,31,32, 1,

간단한 교체 비트 표

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,

f(Ri,Ki) 알고리즘 설명도에서 S1 , S2...S8은 선택 기능으로, 6비트 데이터를

4비트 데이터로 변경하는 기능입니다.

선택 기능 Si(i=1,2...의 기능 테이블은 다음과 같습니다:

선택 기능 Si

S1:

14, 4 ,13,1,2,15,11,8,3,10,6,12,5,9,0,7,

0,15,7,4,14,2,13 , 1,10,6,12,11,9,5,3,8,

4,1,14,8,13,6,2,11,15,12,9,7, 3 ,10,5,0,

15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13,

S2:

15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,

3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,

0,14,7,11,10 , 4,13,1,5,8,12,6,9,3,2,15,

13,8,10,1,3,15,4,2,11,6, 7 ,12,0,5,14,9,

S3:

10,0,9,14,6,3,15,5,1,13,12, 7 ,11,4,2,8,

13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1, < / 피>

13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,

1,10,13 , 0,6,9,8,7,4,15,14,3,11,5,2,12,

S4:

7,13,14,3 , 0,6,9,10,1,2,8,5,11,12,4,15,

13,8,11,5,6,15,0,3,4, 7 ,2,12,1,10,14,9,

10,6,9,0,12,11,7,13,15,1,3,14,5,2,8 , 4,

3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14,

S5 :

2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9,

14,11 , 2,12,4,7,13,1,5,0,15,10,3,9,8,6,

4,2,1,11,10,13,7, 8 ,15,9,12,5,6,3,0,14,

11,8,12,7,1,14,2,13,6,15,0,9,10 , 4,5,3,

S6:

12,1,10,15,9,2,6,8,0,13,3,4,14,7 , 5,11,

10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8,

9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6,

4,3,2,12,9, 5 ,15,10,11,14,1,7,6,0,8,13,

S7:

4,11,2,14,15,0, 8 ,13,3,12,9,7,5,10,6,1,

?3,0,11,7,4,9,1,10,14,3,5, 12 ,2,15,8,6,

1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2, < / p>

6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12,

S8:

13,2,8,4,6,15,11,1

,10,9,3,14,5,0,12,7,

1,15,13,8,10,3,7,4,12,5,6,11,0, 14,9,2,

7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8,

2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11,

여기에서는 설명을 위해 S1을 예로 들어 보겠습니다. 해당 함수를 보면 다음과 같습니다. S1에는 *** 0,

1, 2, 3이라는 이름의 4개 데이터 행이 있습니다. 각 행에는 0, 1, 2라는 이름의 16개 열이 있습니다. 3,...,14,15열.

이제 입력이 다음과 같다고 가정합니다: D=D1D2D3D4D5D6

명령: Column=D2D3D4D5

Row=D1D6

그런 다음 S1 테이블을 확인합니다. 해당 숫자를 구하고 4자리 이진수로 표현하며 이는 선택 함수 S1

의 출력입니다. 하위 키 Ki(48비트)의 생성 알고리즘은 아래에 나와 있습니다.

하위 키 Ki의 생성 알고리즘에 대한 설명 다이어그램에서 볼 수 있습니다. 초기 Key 값은 64비트이지만 DES는

법률에 따르면 비트 8, 16,...64는 패리티 비트이며 DES 작업에 참여하지 않습니다. 따라서 실제 사용 가능한 키

자리 수는 56개 뿐입니다. 즉, 좁은 선택 전치 테이블 1의 변환 후 Key 비트 수가 64에서 56으로 변경되었습니다.

56비트는 C0과 D0의 두 부분으로 나뉘며 각각 28비트입니다. , 그리고 각각 첫 번째 순환 왼쪽 쉬프트를 수행하여 C1과 D1을 얻습니다. C1

(28비트)과 D1(28비트)을 결합하여 56비트를 얻은 다음 전치 2를 감소하고 선택하여 얻습니다. 비밀번호. 키 K0

(48비트) 유추하면 K1, K2,...,K15를 얻을 수 있습니다. 그러나 16주기에 해당하는 왼쪽 시프트 수는 다음 규칙에 따라 수행되어야 합니다. :

원형 왼쪽 시프트 수

1,1,2,2,2,2,2,2,1,2,2,2,2,2,2, 1

위에서는 DES 알고리즘의 암호화 과정을 소개합니다. DES 알고리즘의 복호화 과정은 동일하며, 유일한 차이점은 하위 키 K15가 첫 번째 반복에서 사용되고 K14,...가 마지막 반복에서 사용된다는 점입니다. 아니요

변경 사항이 없습니다.

DES 알고리즘은 보안성이 매우 높으며, 현재까지 DES 알고리즘을 공격하기 위해 철저한 검색 방법을 사용하는 것 외에는 더 효과적인 방법이 발견되지 않았습니다. 56비트 키의 전체 공간은 256개인데, 이는 컴퓨터의 속도가 초당 100만 개의 키를 감지하는 경우 모든 키를 검색하는 데 거의 2285년이 걸린다는 것을 의미합니다.

물론, 과학기술이 발달하여 초고속 컴퓨터가 등장하게 되면 DES 키의 길이를 더욱 늘려 더 높은 키를 달성하는 것을 고려할 수 있습니다. 기밀 수준.

위의 DES 알고리즘 소개에서 DES 알고리즘에서는 64비트 키 중 56비트만 사용되는 반면 8번째, 16번째, 24번째 비트만 사용되는 것을 알 수 있습니다. ,... .... 64비트 중 8비트는 DES 연산에 포함되지 않습니다. 이 점은 응용 요구 사항을 제시합니다. 즉, DES의 보안은 8, 16, 24, ......64비트를 제외한 나머지 56비트의 조합은 256으로 변경이 보장됩니다. 따라서 실제 응용에서는 8번째, 16번째, 24번째,...64번째

비트를 유효한 데이터 비트로 사용하는 것을 피하고 나머지 56비트를 유효한 데이터 비트로 사용해야 합니다. DES 알고리즘은 안전하고 안정적으로 작동하도록 보장됩니다

.

이를 이해하지 못하고 8, 16, 24,...64비트의 키를 유효한 데이터로 사용하면

DES 암호화 데이터의 보안을 보장할 수 없습니다. 기밀성을 확보하기 위해 DES를 사용하는 것은 데이터가 복호화될 위험이 있습니다

이것은 바로 DES 알고리즘 적용에 있어서의 오해이며, 모든 수준의 기술 인력과 리더가 그 과정에서 사용하는 문제입니다.

절대 피해야 할 일이지만 오늘날의 재무 및 비재무 부서에서는 DES를 업무에 사용하고 DES 작업 키를 숙지하고 있습니다.

주요 리더와 감독자는 이를 쉽게 무시하고 포기할 수 있습니다. DES를 사용하는 것처럼 보이는 보안 시스템은 다른 사람에 의해 공격을 받고 손상될 위험이 숨겨져 있습니다.

DES 알고리즘 적용에 따른 오해 검증자료

저자는 DES 알고리즘 프로그램을 Turbo C로 작성하였고, 위 DES 알고리즘을 PC에 적용할 때 발생하는 오해를 수정하였다.

해당 영역이 인증되었으며, 인증 데이터는 다음과 같습니다.

키: 0x30 0x30 0x30 0x30...0x30 (8바이트)

Data : 0x31 0x31 0x31 0x31......0x31 (8바이트)

모드: 암호화

결과: 65 5e a6 28 cf 62 58 5f

위의 The Key를 0x31의 8바이트로 변경하고 Data와 Mode는 그대로 유지하므로 DES를 실행한 후 얻은 암호문은 완전히 동일합니다.

마찬가지로 키: 8 0x32 및 키: 8 0x33을 사용하여 데이터(8

0x31)를 암호화합니다. 두 가지의 그래픽 및 텍스트 출력은 동일합니다: 5e c3 ac e9 53 71 3b ba

결론은 다음과 같습니다.

키에 0x30을 사용하는 것은 0x31을 사용하는 것과 같습니다.

키에 0x32를 사용하는 것은 0x33을 사용하는 것과 같습니다... ..

Key가 8 0x32에서 8 0x31로 변경되면 새로운 Key로 교체되는 것 같은데 0x30과 0x31은 8번째에만 있기 때문에

, 16, 24...64에 변화가 있고 DES 알고리즘은 Key의 8번째, 16번째,...64번째 비트를 Key의 유효한 데이터 비트로 사용하지 않으므로 다음과 같이 암호화 결과가 동일합니다.

DES 복호화된 확인 데이터:

키: 0x31 0x31...0x31 (8 0x31)

데이터: 65 5e a6 28 cf 62 58 5f

p>

모드: 암호 해독

결과: 0x31 0x31...0x31 (8 0x31)

위에서: DES 알고리즘 암호화와 암호 해독이 모두 올바르게 작동합니다. 피해야 할 유일한 것은: 애플리케이션에서

키의 8번째, 16번째...64비트를 유효한 데이터 비트로 사용하지 않음으로써 DES 알고리즘의 적용을 피하는 것입니다. p>

에 대한 오해.

DES 알고리즘 적용 시 오해를 피하기 위한 구체적인 연산

DES 키를 사용, 관리, 교체하는 과정에서 DES 알고리즘 적용은 절대 피해야 한다

p>

오해, 즉 키의 8번째, 16번째, 24번째...64번째 비트는 키를 관리하기 위한 유효한 데이터 비트로 사용되어서는 안 됩니다

. 이 점은 특히 금융, 은행, 비금융 산업의 리더와 의사결정자, 특히 키 관리를 담당하는 사람들이 이 점에 큰 관심을 가질 것을 권장합니다.

일부 은행 금융 거래 네트워크에서는 시스템의 보안과 신뢰성을 더욱 향상시키기 위해 DES 키를 정기적으로 교체하는 방법을 사용합니다. 새로운 키는 무용지물이고 금융거래 네트워크의 안전한 운영에 매우 위험하므로 키를 교체해야 합니다

새 키가 기존 키와 완전히 다른지 확인이 필요합니다 즉, 64비트 이외의 8번, 16번, 24번 등의 데이터가 변경되었습니다.

DES 알고리즘은 64비트 일반 텍스트로 변환하므로 주의하시기 바랍니다. 입력 블록을 64비트 암호문 출력 블록으로 변환하는 데 사용되는 키도

64비트입니다.

이 기능은 입력 64비트 데이터 블록을 비트 단위로 재결합하는 것입니다. 출력을 L0과 R0 두 부분으로 나눕니다. 각

부분의 길이는 32비트입니다. 교체 규칙은 아래 표에 나와 있습니다.

58,50,12,34, 26,18,10,2,60, 52,44,36,28,20,12,4,

62,54,46,38,30,22,14,6,64,56 ,48,40,32,24,16 ,8,

57,49,41,33,25,17, 9,1,59,51,43,35,27,19,11, 3,

61 ,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,

변경 첫 번째 자리에 58번째 자리를 입력하면, 50번째 자리가 2번째 자리로 바뀌고,... 등등 마지막

자리가 원래 7자리가 됩니다. L0 및 R0은 전치 출력 후의 두 부분입니다. L0은 ​​출력의 왼쪽 32비트이고 R0은 오른쪽 32

비트입니다. 예: 전치 전 입력 값을 D1D2D3으로 설정합니다. D64, 초기 교체 후 결과는 다음과 같습니다.

L0=D58D50...D8; R0=D57D49...D7.

16번의 반복 후. L16과 R16을 구하고 이를 입력으로 취하고 역순열을 수행하여 암호문 출력을 얻습니다. 역순열은 초기 위치의 역연산일 뿐입니다. 예를 들어 초기 순열 후에는 1번째 비트가 40번째 위치에 있고, 역순열을 통해 40번째 비트가 다시 1번째 비트로 변경되는 것입니다. 다음 표와 같습니다:

40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31,

38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29,

36,4,44,12 ,52,20,60,28,35,3,43,11,51,19,59,27,

34,2,42,10,50,18,58 26,33,1 ,41, 9,49,17,57,25,

전치표 확대

32, 1, 2, 3, 4, 5, 4, 5, 6, 7 , 8, 9, 8, 9, 10,11,

12,13,12,13,14,15,16,17,16,17,18,19,20,21,20, 21 ,

22,23,24,25,24,25,26,27,28,29,28,29,30,31,32, 1,

간단한 교체 비트 표

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,

f(Ri,Ki) 알고리즘 설명도에서 S1 , S2...S8은 선택 기능으로, 6비트 데이터를 4비트 데이터로 변경하는 기능입니다.

선택 기능 Si(i=1,2...의 기능 테이블은 다음과 같습니다:

선택 기능 Si

S1:

14, 4 ,13,1,2,15,11,8,3,10,6,12,5,9,0,7,

0,15,7,4,14,2,13 , 1,10,6,12,11,9,5,3,8,

4,1,14,8,13,6,2,11,15,12,9,7, 3 ,10,5,0,

15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13,

S2:

15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,

3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,

0,14,7,11,10 , 4,13,1,5,8,12,6,9,3,2,15,

13,8,10,1,3,15,4,2,11,6, 7 ,12,0,5,14,9,

S3:

10,0,9,14,6,3,15,5,1,13,12, 7 ,11,4,2,8,

13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1, < / 피>

13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,

1,10,13 , 0,6,9,8,7,4,15,14,3,11,5,2,12,

S4:

7,13,14,3 , 0,6,9,10,1,2,8,5,11,12,4,15,

13,8,11,5,6,15,0,3,4, 7 ,2,12,1,10,14,9,

10,6,9,0,12,11,7,13,15,1,3,14,5,2,8 , 4,

3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14,

S5 :

2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9,

14,11 , 2,12,4,7,13,1,5,0,15,10,3,9,8,6,

4,2,1,11,10,13,7, 8 ,15,9,12,5,6,3,0,14,

11,8,12,7,1,14,2,13,6,15,0,9,10 , 4,5,3,

S6:

12,1,10,15,9,2,6,8,0,13,3,4,14,7 , 5,11,

10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8,

9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6,

4,3,2,12,9, 5 ,15,10,11,14,1,7,6,0,8,13,

S7:

4,11,2,14,15,0, 8 ,13,3,12,9,7,5,10,6,1,

13,0,11,7,4,9,1,10,14,3,5,12 , 2,15,8,6,

1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2,

p>

6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12,

S8:

13,2,8,4,6,15,11,

1,10,9,3,14,5,0,12,7,

1,15,13,8,10,3,7,4,12,5,6,11,0 ,14,9,2,

7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8,

2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11,

여기서 S1을 예로 들어 보겠습니다. 함수를 설명하면 다음을 볼 수 있습니다. S1에는 *** 0,

1, 2, 3이라는 이름의 4개 데이터 행이 있습니다. 각 행에는 0, 1, 2라는 이름의 16개 열이 있습니다. ,3,...,14,15열.

이제 입력이 다음과 같다고 가정합니다: D=D1D2D3D4D5D6

명령: Column=D2D3D4D5

Row=D1D6

그런 다음 S1 테이블을 확인합니다. 해당 숫자를 구하고 4자리 이진수로 표현하며 이는 선택 함수 S1

의 출력입니다. 하위 키 Ki(48비트)의 생성 알고리즘은 아래에 나와 있습니다.

하위 키 Ki의 생성 알고리즘에 대한 설명 다이어그램에서 볼 수 있습니다. 초기 Key 값은 64비트이지만 DES는

법률에 따르면 비트 8, 16,...64는 패리티 비트이며 DES 작업에 참여하지 않습니다. 따라서 실제 사용 가능한 키

자리 수는 56개 뿐입니다. 즉, 축소 선택 전치 테이블 1의 변환 후 Key 비트 수가 64에서 56으로 변경되었습니다.

56비트는 C0과 D0의 두 부분으로 나누어지며 각각 28비트입니다. , 그리고 각각 첫 번째 순환 왼쪽 쉬프트를 수행하여 C1과 D1을 얻습니다. C1

(28비트)과 D1(28비트)을 결합하여 56비트를 얻은 다음 전치 2를 감소하고 선택하여 얻습니다. 비밀번호. 키 K0

(48비트) 유추하면 K1, K2,...,K15를 얻을 수 있습니다. 그러나 16주기에 해당하는 왼쪽 시프트 수는 다음 규칙에 따라 수행되어야 합니다. :

원형 왼쪽 시프트 수

1,1,2,2,2,2,2,2,1,2,2,2,2,2,2, 1

위에서는 DES 알고리즘의 암호화 과정을 소개합니다. DES 알고리즘의 복호화 과정은 동일하며, 유일한 차이점은 하위 키 K15가 첫 번째 반복에서 사용되고 K14,...가 마지막 반복에서 사용된다는 점입니다. 아니요

변경 사항이 없습니다.

上篇: 중국 농업은행의 ATM 기에서 핸드폰 번호를 바꿀 수 있을까요? 下篇: 호스트 자동 잠금
관련 내용