https 加密解密的某些疑惑??

参考文章:http://www.cnblogs.com/loveso...

https 图过程:

555379-20160210231313448-2027205313.png

网络传输这一块有(key 采取非对称加密传输;数据采取对称加密传输(性能决定的)):
1. 步骤3:公钥(publicKey)
2. 步骤5:publicKey + 对待传输数据进行对称加密(symmetricCal)用的密钥(key) + 非对称加密算法(disymmetricCal) = cryptKey(加密后的key)
3. 步骤7:使用 key 进行对称加密后传输的数据(cryptData)

https 强调的安全性,就是指即使获取了 publicKey , cryptKey , cryptData 这三个传输过程中的所有信息,只要没有 步骤2生成的私钥(privateKey) 就绝对无法获取正确的数据。

但是这边我就很疑惑了:https 的对称加密算法非对称加密算法 是否已知??我感觉如果要做到上面这一点,必须没有人知道加密解密算法的过程才行。

因为 publicKey + disymmetricCal = cryptKey,这边如果得知了 publicKeydisymmetricCal , 对 cryptKey 进行逆向推导一下不就能够得到原来的 key ?同理,一旦得到 key + symmetric , 对 cryptData 进行逆向推导不就得到了 原来的 data

阅读 4.5k
4 个回答

早期加密注重加密方式的保密性,也就是说尽量不让别人知道加密过程。
这种加密方式的缺点很明显:

  1. 保密成本高。

  2. 泄露后再研究一个可靠的加密方法很困难。

  3. 加密方法未经过大量验证,可靠性有限。

  4. 不适用于公共领域。

现代加密更多的是注重加密方法的安全性,即将加密算法公开,自己保留密钥。
因为这些加密方法都是会被全世界的密码学专家所了解,并尝试破解,能够留下来的必然是久经考验的算法。
即使不小心因为人的因素泄露了密钥,只要换一个就好。

至于题目中担心的逆向推导,RSA之类的非对称加密算法之所以称为非对称加密,并非指理论上不可由公钥反推私钥,而是反推需要的运算量过大导致无法在合理时间内获得结果(真的是到死了程序未必能跑完)
这种时候就可以认为其是非对称加密了。

当然,也有人开了脑洞,我现在把你们的数据保留下来,等以后量子计算机出来能秒破RSA的时候再破解,虽然到时候你们肯定已经升级的加密方式,但是我好歹能撞库了啊~~~
(就看量子计算机到我死了能不能达到这种地步23333)

最开始服务端存有私钥和公钥,客户端请求的时候服务端把公钥发给客户端,客户端随机生成一个全新密钥之后用公钥把新密钥加密,之后把加密后的数据发给服务端,服务端使用私钥解密,得到新的密钥,之后双方使用新的密钥通过对称加密的方式来传输数据。所以非对称加密本质上的目的是为了保证双方都能得到一个统一的可用于对称加密的密钥,这样讲题主是否理解?

新手上路,请多包涵

“单向陷门函数”

有什么不明白?
https本质上是TLS加密协议。
浏览器通过https的域名去权威域名服务器上获取该网站公钥信息以验证该公钥是否合法,以防止中间人攻击;
如果公钥正确合法,则使用该公钥加密一段密码,并将该密码传到网站中;
网站使用私钥解密该密码(私钥只有该网站才有,别人无法解密该密码),如果可以解密,表明浏览器的公钥合法,然后网站就用已经解密的密码作为对称加密的密码(AES),之后浏览器与网站之间的内容传输全部使用该密码和对称加密算法传输。
整个过程,对称加密算法使用的密码中间人即使截取到也只是经过公钥加密的数据,由于中间人不知道私钥,无法解密,所以不知道是什么;
RSA、AES算法本身是公开,但正因为公开,所以强度高,因为公开了全世界的程序员也没有谁声称非暴力可以解开;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题