注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

思桦博客

 
 
 

日志

 
 

三个老头论密码  

2016-03-26 05:16:33|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

汤:我不明白为何现在的密码用那么多数学, 以前所用的密码本已经很难破解了。

林:你所说的密码本是什么意思?

汤:你看过谍战连续剧《潜伏》吗?剧中的主角就用一本小说来当密码本去和总部通信,通讯的每一个字都是小说里面的字,由该字出现在第几页第几个字那两个数目来作暗码。你猜不到他用那一本小说就没法破解。

黄:你说的密码本就是 code book。其实谍报员用一本小说来当密码本也不是那么容易。要知道每一个字在那一页出现你得准备一个索引,那个索引被发现就会暴露身份了。

 汤:在剧中那只是用于总部向该谍报员的单向通信,谍报员只需要那本可以随时买到的小说,并不需要那个逆向索引。

林:其实问题还很多。同一个字会在书中出现多次,有的字可能在书中找不到。

黄:这都可以解决。同一个字在书中出现多次是好事,应该鼓励通讯中相同的字用另一页的暗码,那会增加破解的难度。此外还可以玩花招,比如第一页到十五页可以不用作正常通讯,如果暗码的第一个数字是一到十,那你就用下面的两个数字去查《新华字典》。

林:我加一句:如果暗码的第一个数字是十一到十五,你就不理它,那是诱码(假码)。

汤:其实这种招数还有很多,但用得过多会自找麻烦。你说用这种办法作单向通讯是否已经够安全了?

黄:撇开效率不谈,这种办法在七十年前是可行的。但你不能用同一部小说去和所有谍报员通讯,一人失事就全体遭殃。 同样道理那种用第一页到十五页来作特殊用途的办法也得对不同谍报员变更。所以说这种个别化的办法在人力成本上是很高的,要一大队人去维持。人多了出现对方卧底的机会也会大了。

林:不过利用现在的电脑你所说的这些都不成问题。

黄:利用现在的电脑你根本就不必用什么小说密码本。按照你和总部的约定,你很容易在两分钟内再写出一个将1 36 重新新排列的电脑程序,那就相当于一部把 0 - 9 a - z 加密的密码本。为了保证这个程序的个别化而又日日不同,这个程序可以按几个参数而变,比如说你的生日,你母亲的生日,和通信那天的日子。那样你就可以在几分钟内编排出一个为总部所知的密码本。你用完后就把密码本连程序都彻底删除就是了。这种办法还可以用到双向通信,因为逆向索引很容易找出来。不过话又说回来,这种方法的加密强度不算好,某些方面甚至比不上二战时期德国的 enigma

林:自从电脑出现后传统的密码本已经给加密钥(key)所代替了。今天说的key起码有128 bits。它里面的01的排列就决定你如何去把电脑数据重新排列以达到加密的目的。

黄:你所说的是 Data Encryption Standard (DES)  Advanced Encryption Standard (AES) 那种加密法,也就是把电脑数据重新排列的方法,现在更先进的是数学加密法,里面的key是一个整数,那已经和传统的密码本没有太大关系了。

林:汤讲的密码本是用于一对一的加密通讯,所以你可以挑选你的“小说”和“电脑程序”,而且还可以玩特殊的花招玩假码。但一间银行对它在 ATM 面前的客户就不能来这一套。它要用同一个“程序”来对付所有的客户。所以它这个加密法要比那些将1 36 重新排列的电脑程序高明很多才成。现今的数学加密法是用相当复杂的数学函数来把数据加密。这些函数的型式是公开的,所保密的是函数的几个参数。而这些参数都是在通讯之初随机产生的。

黄:参数是在通讯之初随机产生这一点很重要。现今的数学加密法方案是公开的,打开门做生意,唯一保密的就是这些参数,正因为这些参数是通讯当时随机搞出来的。在这之前大家都不知道,所以你在银行里安排卧底也没有用。既然加密解密都用函数,这就没有密码本。

林:现在的密码战是没由密码本的密码战,说得夸张点现在的数学加密法是影响了间谍和卧底的生计。就算你这个密码间谍貌美如花也只无法象以前那样大显身手了。在某个意义上来讲人家现在是不跟你玩间谍而改玩纯技术。

汤:那么你们这些读数学的岂不是可以闷声发大财?

林:我们生不逢时,如果迟几十年出世又不同。

汤:你可以简单地介绍一下现今的数学加密法吗?

黄:大部分的数学加密法都涉及公钥和私钥,不是三言两语能讲得明白。我就以简单一点的 Diffie Hellman key exchange 作例子吧。通讯前双方会互相交换一些参数。两方的电脑各自随机搞出两组参数。其中一组是留给自用而且要保密的,另一组参数却不加保密的传送到对方。收到对方的参数后每一方就连同留给自用那一组参数来算出一个最重要的参数,也就是林刚才说的 key。奇妙的是另一方经过同一步骤也会算出同一个 key。双方有了同一个秘密的key后就可以用它在一个“公式”上加密解密了。

林:你讲的 Diffie Hellman key exchange 严格讲只是一种加密钥交递法。加密钥交递成功后你可以根据这加密钥的内容去把要传送的数据重新排列后才发出去,收件的一方就根据同一个加密钥作逆运算来还原那数据。在你这个例子数学只用到钥的交递,并不是在加密上。不过现今的数学加密法都需要你所讲的双方交换参数那个步骤。

汤:在我看来黄想简单介绍一下,林却去抓痛脚,那就苦了我这个听众了。再问你们一个问题:现今的数学加密法有缺点吗?

林:最重要和最危险的时刻是在通讯前互相交换参数的那一瞬间。当时如果有个黑客把通讯两方所传送到对方的参数都收下,就算他没有得到另外一组留给自用的参数,理论上他还可以通过冗长的计算来算出最后那个秘密参数。不过就是用最快的电脑也得化上几个月的时间。如果量子计算机研制成功那又不同。

汤:如果那是海军总部向战舰发战斗命令,等你破解密码后海战早就打完了。

黄:不过还有另一个情形。你上网处理银行事务,黑客把你电脑和银行总机两方所传送到对方的参数都收下了,还收了加密后的数据,当然这些数据当时是没法看懂的。但不要忘记你所输入的 account password 也是加密后的数据之一。当黑客化了三个月算出那次通讯所用的那个秘密参数后,他就可以解读当天你和银行通讯加密后的数据, 包括你的 account password 。如果你还没有更改 password 的话你就有麻烦了。

林:这就是银行希望我们经常改变 password 的原因?

黄:不错。

*************************************
注:这里是讲 encryption 和 cypher 的,中文是“密码”或“编码”。 但 password  也叫“密码”,那就叫我为难了。其实 password 可以叫“口令”。
  评论这张
 
阅读(75)| 评论(2)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017