博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
换字式密码、多表替代密码和转制式密码 - 密码学02
阅读量:4970 次
发布时间:2019-06-12

本文共 2453 字,大约阅读时间需要 8 分钟。

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

 

让编程改变世界

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"] [/kml_flashembed] [buy]   [/buy] [Downlink href='http://urlxf.qq.com/?QjAvuqE']视频下载[/Downlink]

转载于:https://www.cnblogs.com/LoveFishC/archive/2012/05/31/3847183.html

你可能感兴趣的文章
java秒杀系列(1)- 秒杀方案总体思路
查看>>
JPA查询getOne()与findOne()的差异以及一些小问题
查看>>
我的Vscode配置
查看>>
Jmeter实现dubbo接口压测
查看>>
更改mac系统语言及其软件
查看>>
Binary compatibility 二进制兼容
查看>>
SQL-删除重复数据
查看>>
8.8.3 抽象类
查看>>
IOS网络请求框架AFNetworking和ASIHttpRequest对比
查看>>
中国顶级黑客,马云天价请不动
查看>>
2019 Multi-University Training Contest 4
查看>>
修改AD FS
查看>>
C函数篇(strcat函数)
查看>>
洛谷 P1337 [JSOI2004]平衡点 / 吊打XXX
查看>>
苹果的AR赌注仍然有很多需要证明的
查看>>
spring mvc 的配置 及interceptor filter listener servlet 配置
查看>>
C# Path 有关于文件路径等问题类(转)
查看>>
虚拟机安装禅道
查看>>
Python 常用函数
查看>>
WebApi简单使用
查看>>