参考文章:http://www.cnblogs.com/loveso...
https 图过程:
网络传输这一块有(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
,这边如果得知了publicKey
和disymmetricCal
, 对cryptKey
进行逆向推导一下不就能够得到原来的key
?同理,一旦得到key
+symmetric
, 对cryptData
进行逆向推导不就得到了 原来的data
?
早期加密注重加密方式的保密性,也就是说尽量不让别人知道加密过程。
这种加密方式的缺点很明显:
保密成本高。
泄露后再研究一个可靠的加密方法很困难。
加密方法未经过大量验证,可靠性有限。
不适用于公共领域。
现代加密更多的是注重加密方法的安全性,即将加密算法公开,自己保留密钥。
因为这些加密方法都是会被全世界的密码学专家所了解,并尝试破解,能够留下来的必然是久经考验的算法。
即使不小心因为人的因素泄露了密钥,只要换一个就好。
至于题目中担心的逆向推导,RSA之类的非对称加密算法之所以称为非对称加密,并非指理论上不可由公钥反推私钥,而是反推需要的运算量过大导致无法在合理时间内获得结果(真的是到死了程序未必能跑完)
这种时候就可以认为其是非对称加密了。
当然,也有人开了脑洞,我现在把你们的数据保留下来,等以后量子计算机出来能秒破RSA的时候再破解,虽然到时候你们肯定已经升级的加密方式,但是我好歹能撞库了啊~~~
(就看量子计算机到我死了能不能达到这种地步23333)
最开始服务端存有私钥和公钥,客户端请求的时候服务端把公钥发给客户端,客户端随机生成一个全新密钥之后用公钥把新密钥加密,之后把加密后的数据发给服务端,服务端使用私钥解密,得到新的密钥,之后双方使用新的密钥通过对称加密的方式来传输数据。所以非对称加密本质上的目的是为了保证双方都能得到一个统一的可用于对称加密的密钥,这样讲题主是否理解?
“单向陷门函数”