RSA加密解密和签名验证机制以及其区别和联系

RSA加密解密和签名验证机制以及其区别和联系

1. RSA的加密解密机制原理

​ RSA公钥加密体制包含如下3个算法:KeyGen(密钥生成算法),Encrypt(加密算法)以及Decrypt(解密算法)。
​ 从算法描述中我们也可以看出:公钥用于对数据进行加密,私钥用于对数据进行解密。当然了,这个也可以很直观的理解:公钥就是公开的密钥,其公开了大家才能用它来加密数据。私钥是私有的密钥,谁有这个密钥才能够解密密文。否则大家都能看到私钥,就都能解密,那不就乱套了。

2. RSA的签名认证机制原理

​ 签名体制同样包含3个算法:KeyGen(密钥生成算法),Sign(签名算法),Verify(验证算法)。其中秘钥生成算法和RSA加密解密中的秘钥生成算法是一样的。

​ 对于签名和认证的M,可以是原始的信息的报文摘要。在https中,CA对也是对证书的某些信息的报文摘要进行签名的。
所以,在签名算法中,私钥用于对数据进行签名,公钥用于对签名进行验证。这也可以直观地进行理解:对一个文件签名,当然要用私钥,因为我们希望只有自己才能完成签字。验证过程当然希望所有人都能够执行,大家看到签名都能通过验证证明确实是我自己签的。

3. RSA加密解密机制和签名认证机制的区别和联系

​ 假设RSA加密解密系统中,将加密函数称为E,将解码函数称为D。在加密过程中,我们使用公钥PK和E函数,将报文加密,然后在对端使用私钥SK和D函数将密文解密,得到原始的报文。
​ 而在签名认证的过程中,我们使用私钥SK和D函数进行报文的签名,然后在对端使用公钥PK和E函数进行认证。注意的是,这里的D和E和上面的D和E函数是一样的。
​ 因为,在RSA加密系统中,以任意顺序 应用D和E函数时,两者都会相互抵消。因此E(D(stuff))=stuff,就像D(E(stuff))=stuff一样。只是习惯上,E和D在加密过程中,称为加密函数和解码函数;而在签名认证过程中,称为签名函数和认证函数,其实是一样的。

4. 非对称加密算法(如RSA)正确的使用方法是:

  1. 公钥加密,私钥解密。

  2. 私钥签名,公钥验签。

既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密

同理,既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名,所以可得出私钥负责签名,公钥负责验证

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RSA加密解密RSA加密解密是一种非对称加密算法,它的原理是基于数学上的大素数分解难题,公钥和私钥是成对出现的,公钥可以公开,任何人都可以使用公钥对明文进行加密,但只有私钥的拥有者才能解密密文,保证了数据的安全性。RSA加密解密过程如下: 1. 选择两个大质数p和q,计算n = pq,φ(n) = (p-1)(q-1)。 2. 选择一个整数e,满足1<e<φ(n) 且e与φ(n)互质。 3. 计算d,使得d与e模φ(n)同余,即d * e ≡ 1 (mod φ(n)),d称为私钥。 4. 公钥为(n, e),私钥为(n, d)。 5. 加密过程:明文m经过加密后得到密文c,c = m^e mod n。 6. 解密过程:密文c经过解密后得到明文m,m = c^d mod n。 Diffie-Hellman密钥交换: Diffie-Hellman密钥交换是一种密钥交换协议,用于在公开信道上交换密钥。它的原理基于离散对数难题,其过程如下: 1. 选取一个大素数p和一个原根g。 2. Alice选择一个随机数a,计算A = g^a mod p,并将A发送给Bob。 3. Bob选择一个随机数b,计算B = g^b mod p,并将B发送给Alice。 4. Alice计算s = B^a mod p,Bob计算s = A^b mod p,两者得到相同的结果s,即为共享密钥。 RSA数字签名以及验证RSA数字签名是一种数字签名算法,它基于RSA加密解密算法。数字签名可以保证数据的完整性、来源可信和不可抵赖性。数字签名的过程如下: 1. 发送方使用自己的私钥对原始数据进行签名,得到数字签名。 2. 发送方将签名和原始数据一起发送给接收方。 3. 接收方使用发送方的公钥对签名进行验证,如果验证通过,则说明数据来源可信。 RSA数字签名验证过程: 1. 接收方使用发送方的公钥对签名进行解密,得到原始数据的哈希值。 2. 接收方对原始数据进行哈希运算,得到哈希值。 3. 比较步骤1和步骤2得到的哈希值,如果相同,则说明数字签名有效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值