文档库 最新最全的文档下载
当前位置:文档库 › 加密密文D来自zx

加密密文D来自zx

下面是对明文4096个D加密后得到的密文文件密文D.txt的截图:

以下引用武金木教授在博客中的原文,以对排列码机制进行说明:

2.排列码简介

2.1 n=4的排列码演示程序设计说明:[6]

①排列码表见表1,这样的表共有24!个。

我们任意地建立其中的256个。

表中第5行4 0 3 1 2表示当Key=4时,明文第0位的2进制数送第0位做密文, 明文第1位的2进制数送第3位做密文, 明文第2位的2进制数送第1位做密文, 明文第3位的2进制数送第2位做密文。

为了节省存储空间,0用2进制数00表示, 1用2进制数01表示,2用2进制数10表示, 3用2进制数11表示, Key 用存储地址来表示。这样1个排列码表占24个字节。

表1 排列码表

Key 0 1 2 3

0 0 1 2 3

1 1

2

3 0

2 2

3 0 1

3 3 0 1 2

4 0 3 1 2

5 0 3 2 1

……..

23 3 2 1 0

②关于密钥的设计,用1个字节作整数,它表示的范围是0~255。根据他的值就可以确定一个排列码表。

在这个排列码表中,再进行模24运算。得到一个0~23的整数,恰好对应排列码表中的Key 值,确定bit的交换顺序。

③关于求非的运算,为了进一步增加破密的难度,我们在交换顺序的同时,在某些交换路径上求反。因为n=4,0点有可能有4个路径,1、2、3点都有可能有4个路径,所以可能的路径总数共有16条,每一bit 对应一条路径,使用16bit或者说2个字节控制哪个路径上是否加非。用0表示不加非,用1表示加非,或者反之。

④综合以上密钥的长度为24bit。

⑤为了进一步增加加密强度,第二个分组的密钥选取,密钥是在原密钥的基础上加上前一个密钥的一定规律的变换,只要加密密钥和解密密钥的规律相同则解密不成问题,但密码分析者虽然可以从程序知道密钥是如何变换的,因它的原始密钥的输入密码分析者是不知道的,因此知道的仅是密钥的一部分;密码设计在每下一个分组再加3个字节的明文,输入都是已知,所以方法可行。密码分析者相当于用未知数求未知数,因此无规律可寻。

⑥这样一来每个分组的密钥都是一个伪随机数。但必定有明文的特征。可是产生的密文随机性特别强。

⑦以上过程连续做多遍,每遍都用不同的24bit的密钥。

⑧为了提高速度,并不是一遍加密结束后再进行下一遍,而是一个分组连续进行多遍加密,这种做法理论上进行4遍,按目前的密码分析水平加密强度可能已经达到2^96,远远超过了DES,几乎是目前破密难度的极限。因为加密强度是关于n的函数,f(n)的常数为1。所以当n稍微大一点的时候,函数的值都相当大,可以说是2的n次方的高阶无穷大。如果n=4你都不能破密,那想破密n=64还不是天方夜谈。

这里我们给出的是查表法;实际上128!排列码表是无法用查表法实现的,但是可以用计算法实现。使用计算法n可以是任意的正整数。

2.2 n=4排列码的一些结果

因为加密强度是关于n的函数,为了读者体会加密强度,验证较小的n,比验证较大的n要容易的多,所以我们给出n=4时,密钥是16进制的000000时,排列码程序仅仅对每个字节的最低4位进行运算的结果。为了使感兴趣的人能验证我们的数据,产生此结果的程序我们放在附件中,以使你们验证数据的真实性。下面是说明问题的数据。

明文是:00000000000000000000000000000000000000000000000000000000000000000

密文是:;84228:0103;>>6;97?>5=2?83;6>826872:9787273894>11<;4630<<1>=8>14188

密文是:0000000000000000000000000000000000000000000000000000000000000000

明文是:71;1=<660689504=0<805934>:2880239>0882>573=3969;=>8603:<:8:9332978

③明文是(为了说明目前的多种密码分析法失效,我们把0123456789:;<=>?重复了4096遍):0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?

密文是(这里是与上面明文一一对应的密文,因为计算机处理时给每个2进制数都自然地带上了两个下标,人们看到的相同符号,计算机都区分成了不同的符号):

;063?9242>;7=01996;419;52:7=;0?;<:;4?2>9;=;32781=<9293:7<093=

④密文是:0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?

明文是:792=:7;61556:1=7;834?;44>24=>26<<>;5:6;=?5>8=;7?8

相关文档