0


一文搞懂对称加密与非对称加密(RSA)、信息摘要、数字签名

一、对称加密与非对称加密

对称加密:加密和解密使用同一个秘钥(如加密方式为+1,那解密方式为-1)常见的对称加密算法:DES,AES,3DES等

非对称加密:加密和解密使用不同密钥。两个密钥:公共密钥和私有密钥。通常将公钥公开,使用公钥加密,私钥解密

常见的非对称加密算法:RSA

RSA算法理论依据:任何一个大于1的自然数,如果N不为质数,都可以唯一分解成有限个质数的乘积

理论依据解释:P(不是质数) = p1(质数) * p2 (质数) …… pn(质数),p1至pn从大到小排序,这个序列是唯一的。所以如果p1(质数) * p2(质数) = N,那么N只能唯一分解成两个质数的乘积,这两个质数为p1,p2。如果N是一个足够大的数(一般推荐1024位以上),那么通过N求得p1,p2是极其困难的一件事

RSA算法举例:

    1.取质数p1 = 3,p2 = 11(为了方便计算取得很小)

    2.求N:N = p1 * p2 = 3 * 11 = 33

    3.求M:M=(p1 - 1) * ( p2 - 1) = 20

    4.求E:使E满足1 < E < M,gcd(E,M) = 1(gcd为最大公倍数),满足条件均可,这里我们取E = 7,此时公钥为(E,M) = (7,33)

    5.求D:使D满足1 < D < M,E * D mod M = 1(mod为取余)满足条件均可,这里取D = 3,此时私钥为(D,M) = (3,33)

    6.加密:假设明文为6,则密文 =(6的7次方)mod 33 = 30

    7.解密:(30的3次方) mod 33 = 6

二、信息摘要

概念:一种验证数据完整性的算法

注:这种算法是不可逆的,只能由原文通过某种算法得到摘要,不能由摘要通过某种算法得到原文

目的:及时有效发现通信中收到的内容是否中途被截获篡改

具体做法:在传输时先传明文,再传摘要,接收明文和摘要后,通过明文计算摘要与接收的摘要做对比,用于判断信息是否中途被截获篡改,若计算摘要和接收摘要不同,则信息被中途截获并篡改

常见算法:单向散列函数、哈希函数

简单示例:信息12,信息摘要12/10=1余2,取整数部分1作为12的信息摘要。传送12和1,若中途信息被截获并篡改后信息为22摘要为1,接收后对22/10=2余2,计算后摘要为2与接收摘要1不等,则信息在传输途中可能被截获并篡改


三、数字签名

概念:通过使用非对称密码加密系统对电子记录进行加密、解密变换来实现的一种电子签名

目的:防止事后发送方不承认该信息为自己发出的

具体做法:发送方小王,发送信息明文A,明文A的摘要B,通过RSA算法得出小王的公钥私钥,小王使用私钥对摘要B加密,接收方使用小王的公钥若能对摘要成功解密,则该信息确定为小王发出的

解释:小王的私钥只有小王有,而使用小王的公钥刚好能解密这个摘要,说明这个摘要是用小王的私钥加密的,所以信息一定是小王发出来的


四、小练习

题目:小李给小张发送一份合同文件(比较大),需要保证以下3点

    1.文件内容不能以明文形式传输

    2.小张在接收到的时候可以判断是否被中途截获篡改,要验证合同文件的完整性

    3.要证明是小李发的,防止小李以后不承认合同文件是自己发送的

解题思路:

    1.使用对称加密算法对文件的内容加密(非对称加密算法计算量大不适合大规模加密)

    2.使用信息摘要技术,用于验证合同文件的完整性

    3.使用数字签名技术,确认合同文件是由小李发送

答案:

   对原文件进行对称加密,对原文件进行信息摘要,使用RSA算法生成小李的公钥和私钥,并将公钥公开,私钥小李自己留着,小李使用自己的私钥对原文件的信息摘要加密,小张使用小李的公钥对信息摘要解密,若能成功解密则可以证明信息一定是小李发送出来的,使用对称密钥对原文件解密,通过原文件计算信息摘要与接收到的信息摘要对比,若计算信息摘要与接收信息摘要相同则未被截获篡改

本文转载自: https://blog.csdn.net/jijishuyu/article/details/127621990
版权归原作者 我又来抄代码啦 所有, 如有侵权,请联系我们删除。

“一文搞懂对称加密与非对称加密(RSA)、信息摘要、数字签名”的评论:

还没有评论