请教关于非对称加密的问题?
假如甲方有证书 有公钥和私钥, 如果需要和乙方加密通信要将公钥传送给乙方, 有些疑惑的是 那如果将公钥传送给乙方的过程中被人解惑 那岂不是可以拿着公钥来解密甲方发给乙方的所有信息了??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
假如甲方有证书 有公钥和私钥, 如果需要和乙方加密通信要将公钥传送给乙方, 有些疑惑的是 那如果将公钥传送给乙方的过程中被人解惑 那岂不是可以拿着公钥来解密甲方发给乙方的所有信息了??
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(10)
公钥无法解密数据,但是可以加密数据,解密需要私钥,即使你知道加密算法,也无法通过公钥解密,这就是非对称加密。
为什么公钥无法解密?以rsa加密算法举例,简单来说就是你无法根据余数和除数获取被除数。这个被除数就是原文,而除数则是公钥,密文则是余数。而私钥与公钥则是两个质数通过公式求出来的,由于这么一种关联,私钥可以从余数中推算出原文,这个原文也是一系列算式的余数。ras的非对称加密正是基于这么一种“神奇”的算法,具体的算法实例可以看 这篇博客
就一句话,没有私钥根本就无法破解数据,你可以去看看(图解http)这本书里面有详细介绍 https,SSL,证书 安全知识
以RSA举例,哪怕公钥被你截获 2048位的RSA它要分解到什么时候?只有有RSA私钥才能去解密RSA公钥。所以在网络上传播 哪怕公钥被你接获 你也没时间和精力去解密。除非获得私钥才能被轻易解密。
公钥是锁,私钥是钥匙(唯一一把),别人把锁偷走,没钥匙有什么用?
你说的这个甲方乙方,类似于https的服务端和客户端。
服务端将证书公开,所以客户端都可以获取;服务端的证书是解决客户端信任服务端的问题。
如果需要服务端信任客户端,则需要客户端也有对应的证书
就拿https大致举例(描述的细节可能存在一定偏差),乙认证甲靠证书,之后双方需要协商一个对称加密密钥进行后续的数据传输,而这个密钥是由乙生成,用甲的公钥加密后由乙传给甲
就是说有在甲有证书公私钥的情况下,需要向乙传输一些私密信息,需要由乙生成的密钥进行加密
具体的我记得不清楚了,你可以找找 https 加密的相关过程。常见的流程中应该是有用到 对称和非对称加密两种方式混合来解
决网络传输的安全问题。
比如你刚刚说道的证书,他是颁发证书机构对网站的一些身份信息+网站公钥的数字签名。
客户端拿到随 https 发送的证书后,会利用颁发证书机构的公钥对证书解码,获取网站的身份信息,从而判断网站是否是自己
希望访问的网站。
在身份确认后,使用网站的公钥去加密一个随机字符串,并返回给服务器,服务器利用自己的私钥去解密出随机字符串。后续的
数据信息都通过这个随机字符串取进行加密。
我记得https好像有种实现是这个流程(当然我简化了很多)。
所谓非对称加密,意思是甲方接收通过公钥加密的密文,用私钥来解密。乙方加密和甲方解密不是同一个密钥,所以是称为非对称加密。
通常来说,乙方发给甲方的数据是安全的就行了,通常业务中甲方发给乙方的数据不会存在敏感,除非安全性要求极高的业务,那样会要求客户端也要有证书,比如网银业务有时候就会要求在电脑上安装证书。
公钥本来就是可以公开的,公钥的作用是加密数据,加密后的数据只能用对应的私钥解密,公钥不负责解密。
非对称加密中,公钥是用来加密的,私钥才是用来解密的。。。