关于公钥私钥是否可以互相加解密的理解(附苹果开发者证书配置时非对称加密算法的应用)

查资料的时候发现很多人有疑惑,公钥和私钥到底哪个是用来加密,哪个是用来解密的,是否可以公钥加密私钥解密,同时也可以私钥加密公钥解密呢?针对这一问题,说下自己的理解。

首先要明确两个问题:(1)既可以公钥加密私钥解密,也可以私钥加密公钥解密;(2)加密解密和签名验证是两个不同的概念。

(一)先来说加密解密:需要同时使用公钥和私钥的加密算法是非对称加密,最常见的便是RSA。
举例说明非对称加密:如果A想要给B秘密的发一条信息,只需要B创建一套公钥(盒子)和私钥(钥匙),盒子可以随意分发,但是钥匙只能B自己所有,当A想要给B发信息时,只需要把信息(纸条)通过B的公钥加密(放入盒子里锁上),再由B用私钥(钥匙)进行解密(打开盒子),即可获取A发送的信息。此时如果C想要截取信息,但是由于没有B的私钥,C即使拿到了信息也无法解密(只有盒子没有钥匙),从而保证了数据的安全性。
那么B是否可以通过私钥加密信息,然后由A使用公钥解密信息呢?从原理上讲,是可以的。 非对称密钥是可以用于双向加解密的。但是我们为什么不这么用呢,很好理解,因为所谓公钥,是公开的,不只A一个人拥有,因此虽然A能够正常读取到信息,但是其他人也可以解密该条信息,从而无法保证信息的安全性。但是签名验证就不同了。

(二)签名验证:用私钥进行签名,用公钥进行验证,从而保证信息来源是私钥拥有者。
举例说明:A想要让B确认某条信息是由自己发出的,先将自己的公钥发送给B,然后用自己的私钥对信息进行签名并发送给B(比如将字符串X用A的私钥加密生成Y,将X和Y以及信息都发送给B),B收到信息后用A的公钥对签名进行验证,用A的公钥解密Y得到Z,如果Z=X,则验证成功,说明信息是由A发布的。

(三)最后借用百度百科的例子来说明加密和签名的结合应用:

假如现在 Alice 向 B
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值