- 下载xinan文件夹下的代码
- 双击打开YiHuo类
-
对任意数据文件类型进行加密,解密
-
可以使用任意打印符号作为密钥进行加密,解密
-
实现加解密后的文件保存
- 选择加密操作
- 输入密钥
- 输入加密的文件路径
- 输入加密后文件的保存路径
- 选择解密操作
- 输入密钥
- 输入解密文件的路径
- 输入解密后的文件保存路径
本作业在完成基本作业前提下,增加了友好的图形化界面,优化使用体验。支持Caesar、Playfair、Hill等加密算法的使用。
- 下载xinan文件夹下的代码
- 双击打开运行Menu类即可使用
-
Caesar
- 加密(显示加密结果)
- 解密(显示解密结果)
- 加密前后字符频率统计
-
Playfair
- 加密(显示加密矩阵及结果展示)
- 解密(显示解密结果(格式化后的明文))
- 加密前后字符频率统计
-
Hill
- 加密(显示加密结果,显示加密矩阵)
- 自定义加密矩阵
本作业分为算法选择操作区和输入输出显示区
- 算法选择区:选择不同算法进行加密或解密操作
- 输入输出显示区:主要用于输入内容(包括明文、密文)、密钥输入和结的果输出展示
测试实例:
字符频率统计:
测试实例:
测试实例:
字符频率统计:
测试实例:
测试实例:
字符频率统计:
- 下载xinan文件夹中的文件,双击打开运行Des类
- 给定某个Sbox的输入差分情况下,计算所有输入对和所有Sbox输出差分的分布情况
- 统计DES算法在密钥固定情况,输入明文改变1-64位时。输出密文位数改变情况。
- 统计DES算法在明文固定情况,输入密钥改变1-64位时。输出密文位数改变情况。
- DES算法默认加密明文为:1111111111111111
- 默认密钥为:1111111111111111
操作界面:
- 选择功能 ’1‘
- 指定输入差分
- 选择指定S盒
运行结果:
实例1:输入差分 101101 指定S盒s1
实例2: 输入差分 100101 指定S盒s2
- 选择功能 ’2‘
运行结果:
- 选择功能 ’ 3 ‘
运行结果:
本作业按提示编写完成DH密钥协商协议作业要求,同时还增添了自动列举素数p的生成元的功能,使操作更加简便
- DH密钥协商协议思路
- 选择一个质数
p
及一个p
的生成元g
。 - A 随机选择一个 [1,p-1] 范围内的数
x
,计算X
= g^x^ mod p, 并将结果发送给B。 - B 随机选择一个 [1,p-1] 范围内的数
y
,计算Y
= g^y^ mod p, 并将结果发送给A。 k
=Y
^x modp
=X
^y modp
- 下载xinan文件夹中的文件,双击打开运行DH类
- 实例1 : 素数
p
: 13 p的生成元g
: 2
- 实例2:素数
p
:23 p的生成元g
: 10
- RSA算法流程:
- 选择两个质数
p
和q
,算出他们的乘积n = p × q
,算出对应的欧拉函数 φ(n)(利用性质φ ( n ) = φ ( p ) × φ ( q ) = ( p − 1 ) ( q − 1 ))。 - 选择一个
e
,使得e
< φ ( n ) 并且e
与φ ( n ) 互质。 - 算出e的一个相对于φ ( n )的模反元素d。
( e , n )
为公钥,( d , n )
为私钥,信息(明文)m
长度小于n
。- 加密:
c
= m^e (mod n); - 解密:
m
= c^d (mod n)。
- 下载RSA文件夹下的文件,双击打开运行RSA类
实例:(书中例子)素数p
:101 素数q
:113 e
: 3533
运行结果:
测试结果与书中一致。