Lauren与密码学4,初识密码系统

来源:互联网 发布:js match 匹配字符 编辑:程序博客网 时间:2024/06/05 21:04

Haorui: 我们的“随机女生”,投骰子所生产的数列是准随机数吗?

Lauren: 我想想,每次投骰子,数字是随机的,两次之间也无关联。但是比如我第一次投了一个六,第二次也投了个六。这算不算重复产生?

Haorui: 这个是随机产生的,巧合而已,不能算重复产生。重复产生的意思是每次都一样。所以投骰子所生产的数列是准随机数。

Lauren: 明白。

Haorui: 今天了解一下密码系统基础知识。先讲一个故事,我读中学的时候,和小女生常常递小纸条。但是怕别的同学或老师知道纸条里的内容。所以我想了一个加密办法,叫“字母平移法“。看看下面的图,平移两位。


如果我想写“hello”,每个字母平移两位,就成了“jgnnq”。“hello” 没有加密的,称为明文,大家都容易懂。但是加密后,就变成密文 “jgnnq”,就没有人懂了。我加密的时候先左移两位,对方收到后,再移回来,就可以解密了。

Lauren: Haorui哥,你真聪明。

Haorui: 想泡妞,办法总是有的,关键是要花心思。其实平移法是一种古典密码,称为凯撒密码。它的运作方式与现代密码学的一些概念非常相似了。见下图:


Lauren: 哦,原来一个密码系统有加解密算法、密钥组成。为什么要用算法加密钥这种形式呢,放在一起不行吗?

Haorui: 当然可以,这与我们现实生活中锁与钥匙的概念是一样的。其主要目的是为了大规模量产,锁生产厂家不可能为每一家人研发出一把锁。有了锁加钥匙这个组合,厂家只用一个结构的锁加上不同钥匙就可以卖给千万家使用。密码系统也是一样的,设计一套密码系统也是希望可以以后能重复使用的,只是密钥变了,密码算法不变。比如上面的例子,也可批量生产,我用移二位,其它的同学可以移三位、五位、八位等等。也就是说,每个同学都可以有一套自己的加密方式,但是加解密算法是一样。

Lauren: 重复使用会增加破解风险的。

Haorui:  对,但是这是没有办法避免的。比如平移法,如果攻击者窃取了大量的密文。破解起来是非常容易的。我读书的时候写过一个小程序,输入十几本英文小说,输出小说中单词的出现频率。发现单词the,a, is, are的频率最高。所以攻击者就可以找出频率最高的密文单词,然后通过分析,很快就可以破解密文了。当然也可以用傻瓜式的暴力破解,也就是每个密码都试一遍,直到找到明文。

Lauren: 看起来很难的样子。

Haorui: 有点像警察办案,一点一点找线索。

给你说个段子,某市公安局长发表讲话,“经过我们三个月来日以继夜、艰苦卓越的排查工作,我们终于得出了一个惊人的结论:312案件的罪犯不是国内的,就是国外的。”

Lauren: 好冷。。。

原创粉丝点击