瑞星卡卡安全论坛

首页 » 技术交流区 » 入侵防御(HIPS) » 【基础知识普及帖】【密码技术】置换密码及多表代替密码
晓雾を忆凝 - 2011-7-2 19:40:00
密码技术概述及单表代替密码:http://bbs.ikaka.com/showtopic-9012354.aspx

今天我们进入第二部分:置换密码和多表代替密码的讲解。

注:带蓝色*的是较难的扩展内容,请根据自身基础选择是否扩展阅读。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

置换密码:

所谓置换密码,就是把明文中的字母或数字重新排列,字母或数字本身不变,但其位置发生了改变,这样所编成的密码称为置换密码。

相信看到这里你也明白了,没错,置换密码很简单,比单表代替密码还简单。因为本身是不变的,只是位置变了,所以很容易穷举法破译——穷举法可不管你的顺序怎么样。

单表代替密码分为加法、乘法等加密方法,同样置换密码也分了几种。
举个例子,例如:
明文:zhe shi zhi huan mi ma
密文:ami mna uhi hzih se hz

可以看出,倒序的置换密码显然是很弱的,所以有了另一种置换密码,这种是把明文按某一顺序排成一个矩阵,然后按另一顺序选出矩阵中的字母以形成密文,最后截成固定长度的字母作为密文。

例如明文:zhe shi zhi huan mi ma
矩阵:
zhes
hizh
ihua
nmim
a
选出顺序:按列
那么密文:zhi nah ihm ezui eh am

由此可以看出,改变矩阵的大小和选出顺序可以得到不同形式的密码,其中有一种巧妙的方法。先选出一个词语作为密钥,去掉重复字母然后按字典顺序给密钥字母一个编号,于是可以得到一组与密钥对应的数字序列,最后根据此序列按列选出密文。

同样我们定义明文:zhe shi zhi huan mi ma
密钥:mi ma xue
根据上述的定义,我们可以得到数字序列:431652
矩阵:
zheshi
zhihua
nmima
根据数字顺序,很容易得到密文:shm eii zzn iahu ah hm

其实这种置换密码仅仅是通过变换矩阵大小选出顺序,而密钥仅仅是便于记忆。
所以来说,置换密码比较简单,经不起穷举攻击(穷举攻击无视顺序),但是值得注意,如果把它与其它密码技术相结合(算法复合),可以得到有用且高效的密码。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

多表代替密码:

因为单表代替密码很容易被破解,原因就是只使用了一个密文字母表,从而使得明文中的字母只能用唯一的密文字母代替,即是单对单映射。
提高密码强度的一种方法,就是采取多个密文字母表,使得明文中字母可以有多个字母来代替,构成单对多映射。这就是多表代替密码的起源。

由于加密用到多个字母表,故称为多表代替密码。
那么,我们构造d个密文字母表:
B1={bj0,bj1……,bjn-1}          j=0,1,……,d-1
同样定义d个映射:
fj>bj
fj(ai)=bji
最后设明文空间M=(m0,m1,……,md-1,md,……)                            密文空间C=(f0(m0),f1(m1),……,fd-1(md=1),fd(md),……)
由上可知,多表代替密码的密钥就是这组应设函数或密文字母表。


*  Vigenre方阵:

在多表代替密码里,最著名的是法国密码学者Vigenre使用过的密码……所以叫Vigenre密码,你懂得。Vigenre密码使用26个密文字母表,有点儿类似加法密码,他们是依次把明文字母表循环左移0,1,2,……,25位的结果。

Vigenre密码的代替规则就是用明文字母在Vigenre方阵中的列和密钥字母在Vigenre方阵中的行的交点处的字母来代替该明文字母(如果你看不懂,那么我告诉你就是密保卡的矩阵方式,了解了么?密保卡的行列就是参照了Vigenre方阵)。
另外,必须要保证密钥长度跟明文等长。

同样我们举个例子:
定义明文:zhe shi duo biao dai ti mi ma
密钥:zhe jiu shi wo xiang yao shuo de
那么根据Vigenre方阵可以得到密文:yoi …………

我偷懒就不去全部对出了,前三个字母已经给出来了,配合定义你们自己下去对一下,光听我的不行。Vigenre矩阵在附录里,自己去下载。根据矩阵和明文很容易对出密文。


附录:置换密码C语言程序以及Vigenre方阵
***** 该内容需回复才可浏览 *****


这里是本次课程的尾页

by 晓雾を忆凝(HUC ID:馨钥依梦)



用户系统信息:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3)
迷失の坏坏 - 2011-7-3 12:41:00
:kaka18: 先去学第一部分昂
yuchen_fengzhish - 2015-11-21 18:35:00
老师怎么下载啊
追梦人456 - 2016-6-2 13:15:00
该用户帖子内容已被屏蔽
人人人89 - 2016-6-12 9:07:00
该用户帖子内容已被屏蔽
Hwui - 2017-10-25 16:58:00
解释的好清楚
Swail - 2018-1-19 5:18:00
前辈收下我的膝盖
dongwenqi850604 - 2018-11-26 20:46:00
了解了,学到了知识
1
查看完整版本: 【基础知识普及帖】【密码技术】置换密码及多表代替密码