我对非对称加密的认知是:A要对B发送一条信息,A通过使用B的公钥对发送的信息进行加密,B收到加密后的信息再利用自己的私钥进行解密。
我的问题是:A用B的公钥加密后的信息解密之后为什么能够通过B的私钥进行解密呢?原理是什么呢?
以RSA为例,它能成功的关键在于数学难题:大数分解,即要将两个大素数乘积的数分解为两个素数是非常难的,现有的计算机速度难以解开,但相反的由两个大素数算出它们的乘积确是简单的。反正就是能够从私钥推导出公钥,但反过来很难。这种单向性也是RSA被认为相对安全的原因,但好像现在的计算机已经能计算很多位了,低位的RSA貌似也没那么安全了。
具体的原理涉及到数论知识,我觉得你可以自行百度,可以搜RSA大数分解。
A要向B发送消息,B会先给A公钥,A用公钥加密后发给B。这样的话就算中间被人截了别人也破不出来,所以认为安全。A用B给的公钥加密,只能由私钥进行解密,公钥解不了密,这也是上面说的单向性决定的。