秘密
— 秘密之所以称作秘密,是因为只有自己知道。
上一篇文章说到了HTTPS的安全性是基于非对称加密算法的,但非对称加密算法又为何是可靠的呢?
什么是对称加密?即加密和解密过程使用了同一个密钥。换而言之,就是我把信息加密给你之后,还要告诉你密钥是什么,这样就有两个人知道密钥是什么了,就不能称之为“秘密”了。
这里有个悖论在,我怎样才能把密钥安全的告诉你呢,如果我有这种方法,我的信息干嘛还要加密呢?
这也就是非对称加密的主要优势之一,我不用告诉你我的密钥,秘密只能我自己知道。
数学难题
高斯说数学是科学之王,非对称加密算法的安全性实质上是数学难题。非对称加密算法有很多,如RSA、Elgamal、ECC、背包算法、Rabin、D-H等。其中RSA利用了大整数的因数分解难题,Elgamal利用了计算有限域上离散对数的数学难题,其他的算法也都对应了相应的数学难题。
这里已最常见的RSA算法为例,我们可以秒算出7*37=249,但如果我给你一个数字249,问你这个哪两个数的乘积,你是不是要花个5秒钟来想想呢?
难题就在这里,计算机可以轻易的算出两个大质数的乘积,却很难将一个数分解为两个大质数。理论上RSA可以破解,但其花费的时间是不能接受的,所以有人估计以现有计算能力破解2048位的RSA可能要80年。
如何工作
这里已简化的流程说明一下工作过程,实际情况是比以下情况复杂一些的。再次说明,实际的工作的流程不是这样的,举例只是便于理解。
我有两个大质数p与q,将这对数字(p,q)作为私钥D,然后我算出公钥E=p*q。这样我可以将公钥E公开,因为其他人很难分解出E=p*q。
我将发出的信息以私钥D加密,对方可以用公钥E解密;对方将信息以公钥E加密,我可以以私钥D解密。这里最关键的一点是,只有我知道D和E的,其他人只知道E的值。
总结
对于非对称加密而言,私钥D是最重要的,是不能泄露的,这里将一首周董的《不能说的秘密》送个大家。
来源:freebuf.com 2018-05-31 10:16:36 by: 360网络安全学院
请登录后发表评论
注册