RSA非对称加密算法描述

1.RSA加密

RSA加密算法是最常用的非对称加密算法(公开加密算法)。(这里的RSA是三位科学家的姓氏开头字母)
非对称加密算法分为公钥和私钥。使用私钥加密明文,只能用公钥解密;使用公钥加密,只能用私钥解密。

2.RSA算法描述

1.公钥与私钥的介绍

1.公钥

n:两素数p和q的乘机(p和q必须保密) (n为模值)
e:与(p-1)*(q-1)互质(e称为公钥指数)

2.私钥

n:两素数p和q的乘机(p和q必须保密) (n为模值)
d:满足(de) mod ((p-1)(q–1))=1 (d称为私密指数)

2.加密过程

C = M^e mod n (C为密文,M为明文)

m^e ≡ c (mod n)

3.解密过程

M = C^d mod n(M为明文,C为密文)

m^e ≡ c (mod n)

3.对于数字签名的理解

签名: 发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私人**对这个摘要进行加密,得到的就是这个报文对应的数字签名。通常来说,发送方会把数字签名和报文原文一并发送给接受者。
过程示例如下图:
RSA非对称加密算法描述
验签: 接收方得到原始报文和数字签名后,用同一个哈希函数从报文中生成摘要A,另外,用发送方提供的公钥对数字签名进行解密,得到摘要B,对比A和B是否相同,就可以得知报文有没有被篡改过。
过程示例如下:
RSA非对称加密算法描述

其实, 数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。