⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 des全过程.txt

📁 des 密码算法 能够实现des的密钥生成和 数据加密
💻 TXT
📖 第 1 页 / 共 5 页
字号:
Plain ASCII String:ABCDEFGH 
Plain Bit String: 
	4142	4344	4546	4748
Key ASCII String:12345678 
Key Bit String: 
	3132	3334	3536	3738
用户输入的64位密钥如下:
二进制									十六进制

0	1	2	3	4	5	6	7	

0	0	1	1	0	0	0	1		0X31
0	0	1	1	0	0	1	0		0X32
0	0	1	1	0	0	1	1		0X33
0	0	1	1	0	1	0	0		0X34
0	0	1	1	0	1	0	1		0X35
0	0	1	1	0	1	1	0		0X36
0	0	1	1	0	1	1	1		0X37
0	0	1	1	1	0	0	0		0X38

56	57	58	59	60	61	62	63	
/******************步骤1:子密钥处理开始**************************/
步骤1-1:去奇偶校验位(每个字节最左边的位),而后重排56位:
L 28位:
57 49 41 33 25 17 09 |  01 58 50 42 34 26 18 |  10 02 59 51 43 35 27 |  19 11 03 60 52 44 36 |  
0  0  0  0  0  0  0  	0  1  1  1  1  1  1  	1  1  1  1  1  1  1  	1  1  1  1  0  0  0  
R 28位:
63 55 47 39 31 23 15 |  07 62 54 46 38 30 22 |  14 06 61 53 45 37 29 |  21 13 05 28 20 12 04 |  	
0  1  0  1  0  1  0  	1  0  1  1  0  0  1  	1  0  0  1  1  1  1  	0  0  0  0  0  0  0  	
/******************步骤1-2:生成子密钥**************************/
步骤1-2-0-1:第0轮循环左移,左移1位后:
左28位:
0000000	1111111	1111111	1110000
右28位:	
1010101	0110011	0011110	0000000	
步骤1-2-0-2:第0轮循环左移,累计左移1位后左右合并得:
1234567	1234567	1234567	1234567	1234567	1234567	1234567	1234567	
0000000	1111111	1111111	1110000	1010101	0110011	0011110	0000000	
步骤1-2-0-3:照以下数组进行选位并排序:
14,17,11,24,01,05,|03,28,15,06,21,10,|23,19,12,04,26,08,|16,07,27,20,13,02,|
41,52,31,37,47,55,|30,40,51,45,33,48,|44,49,39,56,34,53,|46,42,50,36,29,32,|
步骤1-2-0-3:第0轮循环左移累计1位,压缩置换后得到子钥K0:
111100	001011	111001	100110	101110	000111	000000	110010	
步骤1-2-1-1:第1轮循环左移累计2位,在前基础上再左移1位后:
左28位:
0000001	1111111	1111111	1100000
右28位:	
0101010	1100110	0111100	0000001	
步骤1-2-1-2:第1轮循环左移,累计左移2位后左右合并得:
1234567	1234567	1234567	1234567	1234567	1234567	1234567	1234567	
0000001	1111111	1111111	1100000	0101010	1100110	0111100	0000001	
步骤1-2-1-3:照以下数组进行选位并排序:
14,17,11,24,01,05,|03,28,15,06,21,10,|23,19,12,04,26,08,|16,07,27,20,13,02,|
41,52,31,37,47,55,|30,40,51,45,33,48,|44,49,39,56,34,53,|46,42,50,36,29,32,|
步骤1-2-1-3:第1轮循环左移累计2位,压缩置换后得到子钥K1:
111000	001011	111001	110110	100110	110100	100110	100101	
步骤1-2-2-1:第2轮循环左移累计4位,在前基础上再左移2位后:
左28位:
0000111	1111111	1111111	0000000
右28位:	
0101011	0011001	1110000	0000101	
步骤1-2-2-2:第2轮循环左移,累计左移4位后左右合并得:
1234567	1234567	1234567	1234567	1234567	1234567	1234567	1234567	
0000111	1111111	1111111	0000000	0101011	0011001	1110000	0000101	
步骤1-2-2-3:照以下数组进行选位并排序:
14,17,11,24,01,05,|03,28,15,06,21,10,|23,19,12,04,26,08,|16,07,27,20,13,02,|
41,52,31,37,47,55,|30,40,51,45,33,48,|44,49,39,56,34,53,|46,42,50,36,29,32,|
步骤1-2-2-3:第2轮循环左移累计4位,压缩置换后得到子钥K2:
111001	001111	011001	110110	000000	100100	101110	010001	
步骤1-2-3-1:第3轮循环左移累计6位,在前基础上再左移2位后:
左28位:
0011111	1111111	1111100	0000000
右28位:	
0101100	1100111	1000000	0010101	
步骤1-2-3-2:第3轮循环左移,累计左移6位后左右合并得:
1234567	1234567	1234567	1234567	1234567	1234567	1234567	1234567	
0011111	1111111	1111100	0000000	0101100	1100111	1000000	0010101	
步骤1-2-3-3:照以下数组进行选位并排序:
14,17,11,24,01,05,|03,28,15,06,21,10,|23,19,12,04,26,08,|16,07,27,20,13,02,|
41,52,31,37,47,55,|30,40,51,45,33,48,|44,49,39,56,34,53,|46,42,50,36,29,32,|
步骤1-2-3-3:第3轮循环左移累计6位,压缩置换后得到子钥K3:
111001	101101	011101	110010	110100	110010	000100	010101	
步骤1-2-4-1:第4轮循环左移累计8位,在前基础上再左移2位后:
左28位:
1111111	1111111	1110000	0000000
右28位:	
0110011	0011110	0000000	1010101	
步骤1-2-4-2:第4轮循环左移,累计左移8位后左右合并得:
1234567	1234567	1234567	1234567	1234567	1234567	1234567	1234567	
1111111	1111111	1110000	0000000	0110011	0011110	0000000	1010101	
步骤1-2-4-3:照以下数组进行选位并排序:
14,17,11,24,01,05,|03,28,15,06,21,10,|23,19,12,04,26,08,|16,07,27,20,13,02,|
41,52,31,37,47,55,|30,40,51,45,33,48,|44,49,39,56,34,53,|46,42,50,36,29,32,|
步骤1-2-4-3:第4轮循环左移累计8位,压缩置换后得到子钥K4:
111011	101101	001101	110011	111000	110000	001110	001000	
步骤1-2-5-1:第5轮循环左移累计10位,在前基础上再左移2位后:
左28位:
1111111	1111111	1000000	0000011
右28位:	
1001100	1111000	0000010	1010101	
步骤1-2-5-2:第5轮循环左移,累计左移10位后左右合并得:
1234567	1234567	1234567	1234567	1234567	1234567	1234567	1234567	
1111111	1111111	1000000	0000011	1001100	1111000	0000010	1010101	
步骤1-2-5-3:照以下数组进行选位并排序:
14,17,11,24,01,05,|03,28,15,06,21,10,|23,19,12,04,26,08,|16,07,27,20,13,02,|
41,52,31,37,47,55,|30,40,51,45,33,48,|44,49,39,56,34,53,|46,42,50,36,29,32,|
步骤1-2-5-3:第5轮循环左移累计10位,压缩置换后得到子钥K5:
101011	111101	001101	011011	010100	000011	001100	001111	
步骤1-2-6-1:第6轮循环左移累计12位,在前基础上再左移2位后:
左28位:
1111111	1111110	0000000	0001111
右28位:	
0110011	1100000	0001010	1010110	
步骤1-2-6-2:第6轮循环左移,累计左移12位后左右合并得:
1234567	1234567	1234567	1234567	1234567	1234567	1234567	1234567	
1111111	1111110	0000000	0001111	0110011	1100000	0001010	1010110	
步骤1-2-6-3:照以下数组进行选位并排序:
14,17,11,24,01,05,|03,28,15,06,21,10,|23,19,12,04,26,08,|16,07,27,20,13,02,|
41,52,31,37,47,55,|30,40,51,45,33,48,|44,49,39,56,34,53,|46,42,50,36,29,32,|
步骤1-2-6-3:第6轮循环左移累计12位,压缩置换后得到子钥K6:
001011	110101	001111	011011	011101	100001	000010	101100	
步骤1-2-7-1:第7轮循环左移累计14位,在前基础上再左移2位后:
左28位:
1111111	1111000	0000000	0111111
右28位:	
1001111	0000000	0101010	1011001	
步骤1-2-7-2:第7轮循环左移,累计左移14位后左右合并得:
1234567	1234567	1234567	1234567	1234567	1234567	1234567	1234567	
1111111	1111000	0000000	0111111	1001111	0000000	0101010	1011001	
步骤1-2-7-3:照以下数组进行选位并排序:
14,17,11,24,01,05,|03,28,15,06,21,10,|23,19,12,04,26,08,|16,07,27,20,13,02,|
41,52,31,37,47,55,|30,40,51,45,33,48,|44,49,39,56,34,53,|46,42,50,36,29,32,|
步骤1-2-7-3:第7轮循环左移累计14位,压缩置换后得到子钥K7:
001111	110101	100111	011001	010000	000011	100111	101011	
步骤1-2-8-1:第8轮循环左移累计15位,在前基础上再左移1位后:
左28位:
1111111	1110000	0000000	1111111
右28位:	
0011110	0000000	1010101	0110011	
步骤1-2-8-2:第8轮循环左移,累计左移15位后左右合并得:
1234567	1234567	1234567	1234567	1234567	1234567	1234567	1234567	
1111111	1110000	0000000	1111111	0011110	0000000	1010101	0110011	
步骤1-2-8-3:照以下数组进行选位并排序:
14,17,11,24,01,05,|03,28,15,06,21,10,|23,19,12,04,26,08,|16,07,27,20,13,02,|
41,52,31,37,47,55,|30,40,51,45,33,48,|44,49,39,56,34,53,|46,42,50,36,29,32,|
步骤1-2-8-3:第8轮循环左移累计15位,压缩置换后得到子钥K8:
000111	110101	100111	011001	011011	001110	010110	000001	
步骤1-2-9-1:第9轮循环左移累计17位,在前基础上再左移2位后:
左28位:
1111111	1000000	0000011	1111111
右28位:	
1111000	0000010	1010101	1001100	
步骤1-2-9-2:第9轮循环左移,累计左移17位后左右合并得:
1234567	1234567	1234567	1234567	1234567	1234567	1234567	1234567	
1111111	1000000	0000011	1111111	1111000	0000010	1010101	1001100	
步骤1-2-9-3:照以下数组进行选位并排序:
14,17,11,24,01,05,|03,28,15,06,21,10,|23,19,12,04,26,08,|16,07,27,20,13,02,|
41,52,31,37,47,55,|30,40,51,45,33,48,|44,49,39,56,34,53,|46,42,50,36,29,32,|
步骤1-2-9-3:第9轮循环左移累计17位,压缩置换后得到子钥K9:
000111	110110	100111	011101	101010	100100	010001	001011	
步骤1-2-10-1:第10轮循环左移累计19位,在前基础上再左移2位后:
左28位:
1111110	0000000	0001111	1111111
右28位:	
1100000	0001010	1010110	0110011	
步骤1-2-10-2:第10轮循环左移,累计左移19位后左右合并得:
1234567	1234567	1234567	1234567	1234567	1234567	1234567	1234567	
1111110	0000000	0001111	1111111	1100000	0001010	1010110	0110011	
步骤1-2-10-3:照以下数组进行选位并排序:
14,17,11,24,01,05,|03,28,15,06,21,10,|23,19,12,04,26,08,|16,07,27,20,13,02,|
41,52,31,37,47,55,|30,40,51,45,33,48,|44,49,39,56,34,53,|46,42,50,36,29,32,|
步骤1-2-10-3:第10轮循环左移累计19位,压缩置换后得到子钥K10:
000111	110110	110110	001101	110011	101101	001100	000010	
步骤1-2-11-1:第11轮循环左移累计21位,在前基础上再左移2位后:
左28位:
1111000	0000000	0111111	1111111
右28位:	
0000000	0101010	1011001	1001111	
步骤1-2-11-2:第11轮循环左移,累计左移21位后左右合并得:
1234567	1234567	1234567	1234567	1234567	1234567	1234567	1234567	
1111000	0000000	0111111	1111111	0000000	0101010	1011001	1001111	
步骤1-2-11-3:照以下数组进行选位并排序:
14,17,11,24,01,05,|03,28,15,06,21,10,|23,19,12,04,26,08,|16,07,27,20,13,02,|
41,52,31,37,47,55,|30,40,51,45,33,48,|44,49,39,56,34,53,|46,42,50,36,29,32,|
步骤1-2-11-3:第11轮循环左移累计21位,压缩置换后得到子钥K11:
010110	110010	110110	101101	100101	000100	011101	101000	
步骤1-2-12-1:第12轮循环左移累计23位,在前基础上再左移2位后:
左28位:
1100000	0000001	1111111	1111111
右28位:	
0000001	0101010	1100110	0111100	
步骤1-2-12-2:第12轮循环左移,累计左移23位后左右合并得:
1234567	1234567	1234567	1234567	1234567	1234567	1234567	1234567	
1100000	0000001	1111111	1111111	0000001	0101010	1100110	0111100	
步骤1-2-12-3:照以下数组进行选位并排序:
14,17,11,24,01,05,|03,28,15,06,21,10,|23,19,12,04,26,08,|16,07,27,20,13,02,|
41,52,31,37,47,55,|30,40,51,45,33,48,|44,49,39,56,34,53,|46,42,50,36,29,32,|
步骤1-2-12-3:第12轮循环左移累计23位,压缩置换后得到子钥K12:
110110	011010	110010	101101	110110	001001	101001	000000	
步骤1-2-13-1:第13轮循环左移累计25位,在前基础上再左移2位后:
左28位:
0000000	0000111	1111111	1111111
右28位:	
0000101	0101011	0011001	1110000	
步骤1-2-13-2:第13轮循环左移,累计左移25位后左右合并得:
1234567	1234567	1234567	1234567	1234567	1234567	1234567	1234567	
0000000	0000111	1111111	1111111	0000101	0101011	0011001	1110000	
步骤1-2-13-3:照以下数组进行选位并排序:
14,17,11,24,01,05,|03,28,15,06,21,10,|23,19,12,04,26,08,|16,07,27,20,13,02,|
41,52,31,37,47,55,|30,40,51,45,33,48,|44,49,39,56,34,53,|46,42,50,36,29,32,|
步骤1-2-13-3:第13轮循环左移累计25位,压缩置换后得到子钥K13:
110100	011010	111010	101110	110100	001110	011000	111000	
步骤1-2-14-1:第14轮循环左移累计27位,在前基础上再左移2位后:
左28位:
0000000	0011111	1111111	1111100
右28位:	
0010101	0101100	1100111	1000000	
步骤1-2-14-2:第14轮循环左移,累计左移27位后左右合并得:
1234567	1234567	1234567	1234567	1234567	1234567	1234567	1234567	
0000000	0011111	1111111	1111100	0010101	0101100	1100111	1000000	
步骤1-2-14-3:照以下数组进行选位并排序:
14,17,11,24,01,05,|03,28,15,06,21,10,|23,19,12,04,26,08,|16,07,27,20,13,02,|
41,52,31,37,47,55,|30,40,51,45,33,48,|44,49,39,56,34,53,|46,42,50,36,29,32,|
步骤1-2-14-3:第14轮循环左移累计27位,压缩置换后得到子钥K14:
111100	001011	111010	100110	001110	010011	111000	001000	
步骤1-2-15-1:第15轮循环左移累计28位,在前基础上再左移1位后:
左28位:
0000000	0111111	1111111	1111000
右28位:	
0101010	1011001	1001111	0000000	
步骤1-2-15-2:第15轮循环左移,累计左移28位后左右合并得:
1234567	1234567	1234567	1234567	1234567	1234567	1234567	1234567	
0000000	0111111	1111111	1111000	0101010	1011001	1001111	0000000	
步骤1-2-15-3:照以下数组进行选位并排序:
14,17,11,24,01,05,|03,28,15,06,21,10,|23,19,12,04,26,08,|16,07,27,20,13,02,|
41,52,31,37,47,55,|30,40,51,45,33,48,|44,49,39,56,34,53,|46,42,50,36,29,32,|
步骤1-2-15-3:第15轮循环左移累计28位,压缩置换后得到子钥K15:
111100	001011	111000	100110	000010	100001	011010	110101	
/******************步骤1结束**************************/
/加密步骤2:数据处理开始**************************/
待加密的64bit数据:
01 02 03 04 05 06 07 08 |  09 10 11 12 13 14 15 16 |  17 18 19 20 21 22 23 24 |  25 26 27 28 29 30 31 32 |  
0  1  0  0  0  0  0  1  |  0  1  0  0  0  0  1  0  |  0  1  0  0  0  0  1  1  |  0  1  0  0  0  1  0  0  |  
33 34 35 36 37 38 39 40 |  41 42 43 44 45 46 47 48 |  49 50 51 52 53 54 55 56 |  57 58 59 60 61 62 63 64 |  
0  1  0  0  0  1  0  1  |  0  1  0  0  0  1  1  0  |  0  1  0  0  0  1  1  1  |  0  1  0  0  1  0  0  0  |  
加密步骤2-1:64bit初始排列后:
58 50 42 34 26 18 10 02 |  60 52 44 36 28 20 12 04 |  62 54 46 38 30 22 14 06 |  64 56 48 40 32 24 16 08 |  
1  1  1  1  1  1  1  1  |  0  0  0  0  0  0  0  0  |  0  1  1  1  1  0  0  0  |  0  1  0  1  0  1  0  1  |  
57 49 41 33 25 17 09 01 |  59 51 43 35 27 19 11 03 |  61 53 45 37 29 21 13 05 |  63 55 47 39 31 23 15 07 |  
0  0  0  0  0  0  0  0  |  0  0  0  0  0  0  0  0  |  1  0  0  0  0  0  0  0  |  0  1  1  0  0  1  1  0  |  
加密步骤2-2:F处理***************************
加密步骤2-2-0:第0轮处理开始***************************
加密步骤F处理-A右半扩展:Right Half (循环右移花接1位后)扩展后r的48位明文:
0000	00

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -