换字式密码、多表替代密码和转制式密码 密码学02

换字式密码、多表替代密码和转制式密码

 

让编程改变世界

Change the world by program


 

换字式密码

  上节课我们提到凯撒密码之所以闻名天下,除了名字十分潮之外,就是它的思维十分现代化,并且适合进行不断演变和进化! 接下来给大家介绍换字式密码,事实上是对凯撒密码进行复杂变换:将每个字符及后移字符都进行变换。 多说不如实干:将”ILOVEFISHC”按照以下规则变换 [caption id="attachment_485" align="aligncenter" width="300"] 换字式密码[/caption] [caption id="attachment_486" align="aligncenter" width="300"] 换字式密码[/caption]   密文是:AWMQSBANGD 由于上述变换规则(加密密匙)σ 是毫无规律的,所以破解起来的难度就比一般的凯撒加密要大得多!  

多表替代密码

  这个也是凯撒密码的扩展版本,加密方法是将明文内容按照 n 个字符一组的长度分组,并在各组分别使用不同的变换规则。 还是用栗子演示给大家看,加密的依旧是:ILOVEFISHC  

变换规则 σ(密匙):

n = 5

第一组移动 5 个字母

第二组移动 7 个字母

[caption id="attachment_487" align="aligncenter" width="300"] 多表替代密码[/caption]   于是我们又成功得到密文:NQTAJMPZOJ  

转置式密码

  转置式密码:将明文按照 n 个字符的长度进行分组,并将各组内的字符的顺序进行替换。 这个栗子依旧是:ILOVEFISHC  

变换规则 σ(密匙):

假设 n = 5

第一个字母 -> 转变为第二个

第二个字母 -> 转变为第四个

第三个字母 -> 转变为第一个

第四个字母 -> 转变为第五个

第五个字母 -> 转变为第三个

[caption id="attachment_488" align="aligncenter" width="300"] 转置式密码[/caption]   于是乎,密文是:OIELVSFCIH  

密码的安全强度分析

针对前边提到的三种密码的安全强度,大家能猜出哪种的密码强度最高麽? 接下来我们会逐个来分析他们的安全强度,但会涉及两个数学上的概念:排列和组合    

排列扫盲

  排列:从 n 个不同元素中,任取 m(m ≤ n)个元素按照一定的顺序排成一列,叫做从 n 个不同元素中取出 m 个元素的一个排列。 排列数用符号 P(n, m)表示

P(n, m)= n *(n-1)*(n-2)……(n-m+1)= n!/(n-m)!

!表示阶乘,注意,0!== 1  

组合扫盲

  组合是指从 n 个字符中取 m 个方法的综合,用符号 C 来表示。

C(n, m)= P(n, m)/ m!=  n!/((n-m)!* m!)

  在排列和组合中,排列里因为顺序非常重要,所以 AB 和 BA 被认为是不同的。 但组合仅仅是指取出的方法,于顺序无关,所以 AB 和 BA 是相同的。  

换字式密码的安全强度分析

  现今英语中有 26 个字母,因此密匙的强度总数是对不同的 26 个字母进行不同顺序的排列所得的总数。

P(26, 26)= 26!= 26*25*24……*2*1 ≈ 4.03291461 * 10^26

  亲爱的童鞋们,假设计算机以每秒一亿次的速度来计算,以暴力排查的方法来寻找密匙的话,最长需要多少年才能找到? 答案是 1280 亿年。(地球诞生至今100亿年)   从理论上讲,可以通过寻找密匙来破解密码。但从实际计算量来看,换字式密码被公认为安全密码。 尽管人们已经知道利用频率分析法的方式来进行破解!(下节课详细讲解这个概念) 同时,在换字式密码中,还有一种从计算量来看比较安全的,那就是每个密匙只限制使用一次,成为一次性密码钥匙。  

多表替代密码的安全强度分析

  假设一组中有 n 个字符,其中每组的每个字符因为不知道其转换规则,因此需要分别测试26次,因此,密匙的总数为:

26*26* … *26*26 = 26^n

  刚刚我们的例题中 n == 5 ,所以需要密匙的总数为:26^5 == 11881376 可见每组的字符数越多,密码强度越大,如果 n 达到20,密码的强度为:26^20 == 19,928,148,895,209,409,152,340,197,376  

转置式密码的安全强度分析

  假设一组为 n 个字符长度,密匙的总数为:

P(n, n)= n!

刚刚的栗子中,n == 5,则密匙的总数为:

5!= 5 * 4 * 3 * 2 * 1 = 120

  问题:当 n 的值为多少时,密匙的强度最大?  

下期预告

  下节课我们会针对强度最高的换字式密码的破解方案,以及针对这种破解方案的另一种加密技术 —— 维吉尼亚密码。 还会给大家介绍解密一般需要什么样的条件以及如何构造出安全的密码。 所以。。。。。。下节课要准时上课,拼命支持小甲鱼哦~亲~   [kml_flashembed publishmethod="static" fversion="8.0.0" movie="http://player.youku.com/player.php/sid/XNDM0OTE1NDM2/v.swf" width="600" height="450" targetclass="flashmovie" wmode="transparent"] Get Adobe Flash player [/kml_flashembed] [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://urlxf.qq.com/?QjAvuqE']视频下载[/Downlink]
原文地址:https://www.cnblogs.com/LoveFishC/p/3846204.html