- 非对称密钥加密算法概述
①密钥:在明文转换为密文或将密文转换为明文的算法中输入的参数。
②非对称密钥:在加密和解密的步骤中使用的密钥不同。一个公开发布,即公开密钥,另一个由用户自己秘密保存,即私用密钥。两个密钥之间有数学联系,但无法通过公钥推出私钥。
③两种非对称密钥加密对比:
公钥加密:加密密钥是公开的,发送方用其对信息进行加密,接收方用私钥进行解密。
私钥加密(eg.数字签名):解密密钥是公开的,发送方用私钥对信息进行加密,接收方用公钥进行解密。
④非对称加密算法的要点:
1、找到合适的数学工具,使由私钥推出所对应的公钥十分容易,但由公钥推出私钥十分困难;
2、使加密密钥能对信息进行良好加密,即在不知道解密密钥的情况下无法解开加密信息。
- 实际应用:RSA算法
①运算方法:取余运算(迪菲-赫尔曼算法)
②步骤:
1、取两个非常大的质数P和Q,计算:P*Q=N,(P-1)*(Q-1)=M;
2、找与M互质的整数E,找一个整数D,使D*E mod M=1;
3、其中,在公钥加密中,E、N为公钥,D为私钥;在数字签名中,D、N为公钥,E为私钥。
- RSA算法的数学原理
①RSA算法优势:
由公钥E、N无法推出私钥D,目前效率相对最高的方法为暴力破解N
②数学原理:
大数分解问题存在非对称性,即由质数P、Q得出N十分容易,而分解N得到P、Q十分困难,即解决该问题的计算复杂度很高。
③设计实验:
1、实验目的:探究算法的时间复杂度随问题描述规模扩大的变化。
2、实验步骤:
(1)编写python程序,该程序可实现生成指定范围内的两个素数、计算它们的乘积,并对这个乘积进行分解;
(2)运行程序,依次输入范围:10^5以内、10^6以内、10^7以内、10^8以内、10^9以内,用计算机测量得出结果的时间;
(3)多次测量取平均值;
(4)将所得结果整理编入excel表格并绘制散点图像。
3、实验结果:所得的结果大致成指数函数图像。
4、实验结论:算法的时间复杂度随问题描述规模扩大大致呈指数上升。
- 非对称加密算法的缺陷与解决
①非对称加密算法缺陷:
由于其算法复杂,使得加密解密速度没有对称加密解密的速度快。故非对称加密算法只能用于加密传输小量信息,无法用于大文件。
②解决方案:
发送方使用非对称加密方法,用接收方发布的公开密钥加密密码本,接收方再用自己持有的私有密钥解密密码本,这样就保证了密码本不被泄露。接着,双方使用该密码本对要传递的明文文本进行对称加密,进行传递,并在此次通讯后废弃该密码本。这样既保证了通讯的秘密性,也保证了翻译的高效性。