请输入明文
请输入秘钥
子密钥:
38 b 38 e 2d 16 12 1
38 3 1b 26 8 33 29 5
3c d 19 34 1c 28 6 32
31 d d 32 1 10 34 f
29 2d d 37 13 23 3 10
2b 35 d 3 18 1c 5 2d
a 35 f 39 0 29 32 a
27 15 7 19 33 1 14 35
7 34 27 1a 2b 1d 0 20
f 26 26 19 10 6 39 22
7 32 34 d 2f 8 20 1c
12 32 32 1d 20 15 1b 12
17 1a 32 2c 7 1a 8 21
34 2a 32 2a 2c 24 31 4
3e a 38 26 2 a e 16
2c 1b 38 26 21 2 6 39
IP置换:
1111 1111 1011 1000 0111 0110 0101 0111 0000 0000 1111 1111 0000 0110 1000 0011
第 1 轮扩展置换E:
1000 0000 0001 0111 1111 1110 1000 0000 1101 0100 0000 0110
第 1 轮使用密钥:
1110 0000 1011 1110 0000 1110 1011 0101 0110 0100 1000 0001
第 1 轮密钥异或:
0110 0000 1010 1001 1111 0000 0011 0101 1011 0000 1000 0111
第 1 轮S盒置换:
0101 1011 0000 1111 1101 1011 1011 1000
第 1 轮P盒置换:
1111 1011 0110 1100 1111 0100 0100 0011
L异或f(R):
0000 0100 1101 0100 1000 0010 0001 0100
第 2 轮扩展置换E:
0000 0000 1001 0110 1010 1001 0100 0000 0100 0000 1010 1000
第 2 轮使用密钥:
1110 0000 0011 0110 1110 0110 0010 0011 0011 1010 0100 0101
第 2 轮密钥异或:
1110 0000 1010 0000 0100 1111 0110 0011 0111 1010 1110 1101
第 2 轮S盒置换:
0011 1011 1101 0011 1101 0111 0100 1000
第 2 轮P盒置换:
1110 1101 0111 1101 0110 0011 0000 1010
L异或f(R):
1110 1101 1000 0010 0110 0101 1000 1001
第 3 轮扩展置换E:
1111 0101 1011 1100 0000 0100 0011 0000 1011 1100 0101 0011
第 3 轮使用密钥:
1111 0000 1101 0110 0111 0100 0111 0010 1000 0001 1011 0010
第 3 轮密钥异或:
0000 0101 0110 1010 0111 0000 0100 0010 0011 1101 1110 0001
第 3 轮S盒置换:
0000 1101 0110 1111 1000 0011 1111 0010
第 3 轮P盒置换:
1000 0011 0111 1011 0111 0100 0101 0101
L异或f(R):
1000 0111 1010 1111 1111 0110 0100 0001
第 4 轮扩展置换E:
1100 0000 1111 1101 0101 1111 1111 1010 1100 0010 0000 0011
第 4 轮使用密钥:
1100 0100 1101 0011 0111 0010 0000 0101 0000 1101 0000 1111
第 4 轮密钥异或:
0000 0100 0010 1110 0010 1101 1111 1111 1100 1111 0000 1100
第 4 轮S盒置换:
0000 0001 0101 1101 0011 1011 1001 1011
第 4 轮P盒置换:
1011 1110 0010 0011 0111 1000 1100 0001
L异或f(R):
0101 0011 1010 0001 0001 1101 0100 1000
第 5 轮扩展置换E:
0010 1010 0111 1101 0000 0010 1000 1111 1010 1010 0101 0000
第 5 轮使用密钥:
1010 0110 1101 0011 0111 0111 0100 1110 0011 0000 1101 0000
第 5 轮密钥异或:
1000 1100 1010 1110 0111 0101 1100 0001 1001 1010 1000 0000
第 5 轮S盒置换:
1100 1011 1011 0101 1111 0000 0011 1101
第 5 轮P盒置换:
1110 1111 1000 1100 1101 1101 1010 0100
L异或f(R):
0110 1000 0010 0011 0010 1011 1110 0101
第 6 轮扩展置换E:
1011 0101 0000 0001 0000 0110 1001 0101 0111 1111 0000 1010
第 6 轮使用密钥:
1010 1111 0101 0011 0100 0011 0110 0001 1100 0001 0110 1101
第 6 轮密钥异或:
0001 1010 0101 0010 0100 0101 1111 0100 1011 1110 0110 0111
第 6 轮S盒置换:
0001 1010 0011 1011 0101 1100 1110 0111
第 6 轮P盒置换:
1111 0100 0101 1110 0000 1100 0110 1111
L异或f(R):
1010 0111 1111 1111 0001 0001 0010 0111
第 7 轮扩展置换E:
1101 0000 1111 1111 1111 1110 1000 1010 0010 1001 0000 1111
第 7 轮使用密钥:
0010 1011 0101 0011 1111 1001 0000 0010 1001 1100 1000 1010
第 7 轮密钥异或:
1111 1011 1010 1100 0000 0111 1000 1000 1011 0101 1000 0101
第 7 轮S盒置换:
0000 0011 1011 0101 0010 1100 0111 1101
第 7 轮P盒置换:
1101 1110 0001 0000 0101 1101 1010 1100
L异或f(R):
1011 0110 0011 0011 0111 0110 0100 1001
第 8 轮扩展置换E:
1101 1010 1100 0001 1010 0110 1011 1010 1100 0010 0101 0011
第 8 轮使用密钥:
1001 1101 0101 0001 1101 1001 1100 1100 0001 0101 0011 0101
第 8 轮密钥异或:
0100 0111 1001 0000 0111 1111 0111 0110 1101 0111 0110 0110
第 8 轮S盒置换:
1010 0000 1101 1110 1000 1111 1000 0001
第 8 轮P盒置换:
0001 0101 1110 0001 0011 1011 0100 1001
L异或f(R):
1011 0010 0001 1110 0010 1010 0110 1110
第 9 轮扩展置换E:
0101 1010 0100 0000 1111 1100 0001 0101 0100 0011 0101 1101
第 9 轮使用密钥:
0001 1111 0100 1001 1101 1010 1010 1101 1101 0000 0010 0000
第 9 轮密钥异或:
0100 0101 0000 1001 0010 0110 1011 1000 1001 0011 0111 1101
第 9 轮S盒置换:
1010 1001 0100 0000 1000 0111 0001 0110
第 9 轮P盒置换:
0000 0011 1010 1011 0110 0010 0010 1000
L异或f(R):
1011 0101 1001 1000 0001 0100 0110 0001
第 10 轮扩展置换E:
1101 1010 1011 1100 1111 0000 0000 1010 1000 0011 0000 0011
第 10 轮使用密钥:
0011 1110 0110 1001 1001 1001 0100 0000 0110 1110 0110 0010
第 10 轮密钥异或:
1110 0100 1101 0101 0110 1001 0100 1010 1110 1101 0110 0001
第 10 轮S盒置换:
1010 1000 0101 1010 0101 0011 0000 0010
第 10 轮P盒置换:
0010 0100 1110 1111 0010 0010 0100 0000
L异或f(R):
1001 0110 1111 0001 0000 1000 0010 1110
第 11 轮扩展置换E:
0100 1010 1101 0111 1010 0010 1000 0101 0000 0001 0101 1101
第 11 轮使用密钥:
0001 1111 0010 1101 0000 1101 1011 1100 1000 1000 0001 1100
第 11 轮密钥异或:
0101 0101 1111 1010 1010 1111 0011 1001 1000 1001 0100 0001
第 11 轮S盒置换:
1100 0101 1111 1000 0110 1110 1101 0001
第 11 轮P盒置换:
0001 0110 1011 0101 1100 1001 1101 1101
L异或f(R):
1010 0011 0010 1101 1101 1101 1011 1100
第 12 轮扩展置换E:
0101 0000 0110 1001 0101 1011 1110 1111 1011 1101 1111 1001
第 12 轮使用密钥:
0100 1011 0010 1100 1001 1101 1000 0001 0101 0110 1101 0010
第 12 轮密钥异或:
0001 1011 0100 0101 1100 0110 0110 1110 1110 1011 0010 1011
第 12 轮S盒置换:
0001 1100 1110 0011 1001 0011 0111 1010
第 12 轮P盒置换:
1010 1011 0111 1011 0010 0101 0001 0110
L异或f(R):
0011 1101 1000 1010 0010 1101 0011 1000
第 13 轮扩展置换E:
0001 1111 1011 1100 0101 0100 0001 0101 1010 1001 1111 0000
第 13 轮使用密钥:
0101 1101 1010 1100 1010 1100 0001 1101 1010 0010 0010 0001
第 13 轮密钥异或:
0100 0010 0001 0000 1111 1000 0000 1000 0000 1011 1101 0001
第 13 轮S盒置换:
0011 1101 0111 0101 1100 1100 0111 1100
第 13 轮P盒置换:
1001 1111 0001 1101 0101 0110 0011 1110
L异或f(R):
0011 1100 0011 0000 1000 1011 1000 0010
第 14 轮扩展置换E:
0001 1111 1000 0001 1010 0001 0100 0101 0111 1100 0000 0100
第 14 轮使用密钥:
1101 0010 1010 1100 1010 1010 1011 0010 0100 1100 0100 0100
第 14 轮密钥异或:
1100 1101 0010 1101 0000 1011 1111 0111 0011 0000 0100 0000
第 14 轮S盒置换:
1011 0111 0010 1111 0101 1110 1101 1101
第 14 轮P盒置换:
1111 1010 1111 0100 0101 1010 0111 1111
L异或f(R):
1100 0111 0111 1110 0111 0111 0100 0111
第 15 轮扩展置换E:
1110 0000 1110 1011 1111 1100 0011 1010 1110 1010 0000 1111
第 15 轮使用密钥:
1111 1000 1010 1110 0010 0110 0000 1000 1010 0011 1001 0110
第 15 轮密钥异或:
0001 1000 0100 0101 1101 1010 0011 0010 0100 1001 1001 1001
第 15 轮S盒置换:
0001 1000 1110 1100 1011 1111 1101 0000
第 15 轮P盒置换:
0011 0011 0011 1001 0011 0001 1100 1111
L异或f(R):
0000 1111 0000 1001 1011 1010 0100 1101
第 16 轮扩展置换E:
1000 0101 1110 1000 0101 0011 1101 1111 0100 0010 0101 1010
第 16 轮使用密钥:
1011 0001 1011 1110 0010 0110 1000 0100 0010 0001 1011 1001
第 16 轮密钥异或:
0011 0100 0101 0110 0111 0101 0101 1011 0110 0011 1110 0011
第 16 轮S盒置换:
1101 0100 1100 0101 1111 1010 1010 0001
第 16 轮P盒置换:
1011 0001 1010 0101 1001 1101 1001 0011
L异或f(R):
0111 0110 1101 1011 1110 1010 1101 0100
第 17 轮扩展置换E:
0011 1010 1101 0110 1111 0111 1111 0101 0101 0110 1010 1000
第 17 轮使用密钥:
1110 0000 1011 1110 0000 1110 1011 0101 0110 0100 1000 0001
第 17 轮密钥异或:
1101 1010 0110 1000 1111 1001 0100 0000 0011 0010 0010 1001
第 17 轮S盒置换:
0111 1011 1010 1100 1000 1111 1111 0100
第 17 轮P盒置换:
0101 0011 0011 1000 1111 0111 0110 1111
L异或
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
因为最开始的代码是一个int存储一bit数据,后面修改代码结构,使用一个char存储8比特数据时,偷了一下懒,用了先前的查找表直接生成了char数据,理论上对实验结果没有影响。 代码结构说明: 1.用visual studio2022社区版编译,直接点击.sln文件即可 2.头文件 2.1 头文件中Bit_Format_查找变参考-----即为一个int存储一个比特数据, 2.2 头文件des.h包含所有函数即用到的全局变量,其中查找表存储在uint64_t变量中(ip_char,e_char等) 3.源文件 3.1 Array.cpp/base_fun_quick.cpp即为DES基本算法所用到的S/P/E盒等矩阵数组,和int到char转换/各个部件的基础实现函数 3.2 D_E_Quick.cpp即为快速实现的加密模块,其中核心部分为轮函数for循环,加密速度提升也集中在这里,这里是直接调用了生成的查找表进行加密 3.3 Find_Table.cpp即为查找表的生成,数据存储在全局变量中用于3.2中的调用 3.4 sub_key.cpp就是子密钥生成函数,有详细注释不多说了
资源推荐
资源详情
资源评论
收起资源包目录
C/C++实现DES算法的查表法-DES加密算法的快速查表实现(非指令集) (102个子文件)
Find_Table.cpp 7KB
Array.cpp 4KB
base_fun_quick.cpp 4KB
D_E_Quick.cpp 2KB
sub_key.cpp 2KB
main.cpp 2KB
Browse.VC.db 33.77MB
Solution.VC.db 688KB
d_e_quick.obj.enc 51KB
DES_Quick2.0.exe 148KB
DES_Quick2.0.exe 43KB
DES_Quick2.0.exe 31KB
DES_Quick2.0.vcxproj.filters 2KB
Bit_Format_查找表参考.h 582KB
des.h 2KB
vc143.idb 507KB
DES_Quick2.0.ilk 1.07MB
DES_Quick2.0.iobj 449KB
DES_Quick2.0.iobj 314KB
FIND_TABLE.ipch 76.38MB
D_E_QUICK.ipch 75.13MB
MAIN.ipch 75.13MB
BASE_FUN_QUICK.ipch 75.13MB
MAIN.ipch 75.13MB
SUB_KEY.ipch 75.13MB
FIND_TABLE.ipch 75.13MB
D_E_QUICK.ipch 36.13MB
BASE_FUN_QUICK.ipch 36.13MB
MAIN.ipch 36.13MB
SUB_KEY.ipch 36.13MB
FIND_TABLE.ipch 34.88MB
D_E_QUICK.ipch 34.88MB
BASE_FUN_QUICK.ipch 34.88MB
SUB_KEY.ipch 34.88MB
MAIN.ipch 33.88MB
DES_Quick2.0.ipdb 136KB
DES_Quick2.0.ipdb 110KB
project-colors.json 425B
DES_Quick2.0.lastbuildstate 257B
DES_Quick2.0.lastbuildstate 171B
DES_Quick2.0.lastbuildstate 167B
DES_Quick2.0.Build.CppClean.log 1KB
DES_Quick2.0.log 894B
DES_Quick2.0.log 308B
DES_Quick2.0.log 185B
main.obj 1.08MB
Find_Table.obj 1.02MB
base_fun_quick.obj 1.01MB
D_E_Quick.obj 1.01MB
sub_key.obj 1.01MB
main.obj 1022KB
Find_Table.obj 964KB
base_fun_quick.obj 956KB
D_E_Quick.obj 951KB
sub_key.obj 950KB
main.obj 357KB
Find_Table.obj 103KB
base_fun_quick.obj 99KB
D_E_Quick.obj 91KB
sub_key.obj 90KB
Array.obj 5KB
Array.obj 5KB
Array.obj 5KB
DES_Quick2.0.pdb 2.51MB
DES_Quick2.0.pdb 1.08MB
DES_Quick2.0.pdb 956KB
vc143.pdb 660KB
vc143.pdb 556KB
vc143.pdb 516KB
DES_Quick2.0.exe.recipe 397B
DES_Quick2.0.exe.recipe 307B
DES_Quick2.0.exe.recipe 305B
DES_Quick2.0.sln 1KB
.suo 71KB
CL.read.1.tlog 186KB
CL.read.1.tlog 184KB
CL.read.1.tlog 79KB
DES_Quick2.0.write.1u.tlog 33KB
CL.command.1.tlog 10KB
CL.write.1.tlog 7KB
link.read.1.tlog 7KB
link.command.1.tlog 6KB
CL.write.1.tlog 5KB
link.read.1.tlog 5KB
CL.command.1.tlog 4KB
link.read.1.tlog 4KB
CL.command.1.tlog 4KB
CL.write.1.tlog 3KB
link.write.1.tlog 2KB
link.command.1.tlog 2KB
link.command.1.tlog 2KB
link.write.1.tlog 1KB
link.write.1.tlog 972B
DES_Quick2.0.write.1u.tlog 384B
32轮基本算法实例.txt 15KB
32轮快速实现2.0实例测试.txt 7KB
test.txt 412B
DES_Quick2.0.vcxproj.FileListAbsolute.txt 224B
DES_Quick2.0.vcxproj.FileListAbsolute.txt 66B
DES_Quick2.0.vcxproj.FileListAbsolute.txt 64B
共 102 条
- 1
- 2
资源评论
studentc/c++
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功