小言_互联网的博客

对不起,你的密码被破解了!

290人阅读  评论(0)

本文是密码战争的下集,上集在此:《三千年的密码战争》,强烈推荐!

所有的这些加密方法都有一个共同的特点:都需要密钥。

密钥经常成为破解密码的突破口


千年以来,有一个问题始终没有解决:发信人和收信人直接如何安全地传递密钥。

最安全、最保险的办法,就是面对面发送,但是成本极高!

时间进入20世纪

政府花费这么大的精力来传递密钥,那普通的商业公司怎么办?

将来有了互联网,通信的需求呈指数级增长,大家都隔着千山万水,互不相识,更不可能面对面传递了。

想安全地传送密钥,那势必得把密钥加密,想要加密,那又得传递密钥,又得加密....


真是这样的吗?

Sun公司的Whitfield Diffie不信这个邪,生于1944年的Diffie非常迷恋数学,长大后又迷上了计算机安全,可以说是个密码学极客。

看看这仙风道骨的样子

Diffie 对密钥发送问题极其感兴趣, 为了找到志同道合的伙伴,他驾车横跨美国,来到加州斯坦福大学,找到了也在研究密钥发送的Martin Hellman教授。

放弃高薪工作,重新做回学生的Diffie 和 Hellman 开始了向密码学巅峰的冲击。

他们俩特别擅长做比喻和联想,想到了一个有趣的小故事,试图打破密钥和加密的无限循环

看看,张大胖的钥匙和何小痩的钥匙一直保持在自己手中,没有发送给对方,也达到了传递信息的效果!

难道密钥发送的千年难题就这么解决了?

No !  在加密系统中,这种方式是行不通的!

这样的锁在加密世界中根本不存在!

两次加密并不是“平行”的两把锁,而是嵌套的!第二次加密会箱子和锁一并加密!

加锁是有先后次序的: 张大胖加锁 --> 何小痩加锁 --> 何小痩解锁 --> 张大胖解锁  , 这才是正确的。

此路不通, Diffie 和 Hellman 又想到了一个有趣的小场景

张大胖和何小痩各自有一桶红色颜料

然后他们加入了自己的秘密颜料,和原先的红色颜料混合

然后把混合后的颜料传输给对方,在传输的时候,即使有“坏人”看到了,也不知道原始颜色是啥。

双方收到以后,再加入自己的秘密颜料

现在,张大胖和何小痩得到了“密钥”!

关键的核心就是混合颜料, 这就是交换密钥的灵感!

他们要做的就是找到一个单向的不可逆的函数,可以像混合颜料那样把数字进行“混合”。

这谈何容易?

众里寻他千百度,蓦然回首,那人却在灯火阑珊处。

终于,Hellman 在一个深夜取得了突破

Hellman发现的这个单向函数就是:

Diffie 、Hellman和Merkle在1976年的一次会议上公布了他们的发现

密钥发送的问题似乎解决了?

Hellman 的方案也不是完美无缺,有一点很不爽的是,要想交换密钥,发送消息,两个人必须同时“在线”,都选择了秘密数字才行。

如果只有一方在线, 另外一方没有交互,还是没法生成密钥。

Diffie 为了研究密钥,不但从美国东部跑到西部的斯坦福,还放弃工作,当了一名研究生,收入非常微薄,支撑家庭的是他的妻子玛丽。

他被密钥发送问题折磨得抓狂不已, 巨大的压力之下, 差点儿崩溃。

两个星期以后,Diffie 迎来了属于自己的顿悟时刻。

在传统的密码学中,无论采用何种加密算法,都遵循一个思维定式:加密和解密是对称的、可逆的。

所以密钥一定要在发信人和收信人之间严格保密,千万不能泄露。

但是Deffie的想法完全突破了这个思维定式:一个人可以有两把钥匙!

这两把钥匙有着神奇的特性

这样的话只要一个人把自己的公钥向全世界公布,任何人都可以向他安全地发信了!

根本不需要通信双方必须同时在线,交换密钥。

这绝对是一个革命性的想法!

但是即使是Deffie,也没有找到一个算法来实现这两把神奇的钥匙。

全世界的科学家展开了竞赛,苦苦寻觅这两把钥匙。

其中就有麻省理工大学的三位专家。

Shamir 和Rivest 不断地提出新点子, 数学家Adleman则不断地否定他们。

顿悟的时刻总是不经意地到来,一个节日的夜晚, 三人在一个学生家里庆祝, 喝了很多酒,半夜才各回各家。

Rivest赶紧爬起来,把想法写成文章,天亮时,他顾不上一夜的劳顿,马上就去找Adleman, Shamir讨论。

基于大质数连超级计算机都难以分解的性质, RSA(Rivest, Shamir, Aldeman)算法诞生了。

(注:RSA算法的细节这里不再展示了)

RSA算法实现了现阶段无法破解的公钥和私钥体系,成为现代通信的最基础设施。

几千年的密码战争,编码者终于登上了最高峰。

维吉尼亚密码被认为是无可破解的,但是巴贝奇把它破解了。

Enigma被认为是无懈可击的,但是图灵把它破解了。

RSA现在看来是固若金汤,下一个破解它的是谁呢?

(注:量子计算机的介绍请移步《量子计算机为什么这么牛?》)


转载:https://blog.csdn.net/coderising/article/details/116956035
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场