由于分形图形的不规则性,我们提出了一种分形数据文件加密算法,该加密算法用于数据文件加密,使非法用户很难破解,大大增强了信息的安全性。

一、分形加密算法

分形几何是非线性科学研究中十分活跃的一个分支,它的研究对象是自然界和非线性系统中出现的不光滑和不规则的几何形体。正是由于它的非线形,在密码学中就有了很好的用处,正如我们所熟悉的DES加密需要8个S盒来完成加密的非线形一样。我们拿形成维数n=3的席尔宾斯基垫片作为加密模型,则加密的结果如下所示:

分形数据文件加密算法

详细过程为:

将密钥表示成二进制形式,并从左至右分为三组,第一组由密钥的第1~4位组成,第二组由密钥的第5-16位组成,其余的位数划人第三组。我们定义第一组为选择数据文件加密所用的模型,第二组为分形的形成维数,第三组中的各位作为控制位控制子图形的旋转,0代表子图形顺时针旋转一次,1代表顺时针旋转2次。

加密密钥为0x10034567,要加密的明文为0x12345678,那么密钥中第一组为0001,假设0001代表加密模型是席尔宾斯基垫片模型。第二组为000000000011,即形成维数为3,第三组为0100010101100111,用于控制子图形旋转。则用于加密的分形图形如图1所示。

分形数据文件加密算法

将密钥第三组填入模型中,得到密钥控制图,生成过程为:将二进制密钥第三组的每一位按照从上到下从左到右的顺序放在各顶角朝上的小三角形中,例如将上图按照每个小三角形的高的长度作为一个等级从上到下分为5级,第0级到第1级之间有一个顶角朗上的小三角形,填入密钥0,第1级到第2级之间有两个三角形,由于在同一级则按照从左到右的顺序,因此两个三角形分别填入密钥值1、0,第2级到第3级之间有两个顶角胡上的三角形,得到密钥值0、0,第3级到第4级之间有4个顶角朗上的三角形,得到密钥值为1010。生成的控制图如图2所示。

分形数据文件加密算法

明文的二进制为0001 0010 0011 0100 0101 0110_01 11 1000,将明文填入模型中,得到明文位置图,生成过程为:将明文二进制的每一位按照从上到下从左到右的顺序放在顶角朗上的小三角形的三条边上。依然按照以上的规则将图1分为5级, 第0级和第1级之间有两条边,得到的值为00,第1级上有一条边得到的值为0,第1级到第2级之间有4条边,得到的值为1001,依此类推。生成的图形如图3所示。以下从上到下从左到右的规则都与此相同,故不再详细说明。

分形数据文件加密算法

将模型中子图形按照密钥控制规则旋转,得到密钥位置图,控制规则为:在图2中如果三角形中二进制数为0的则将该三角形顺时针旋转1次,如果为1则将该三角形顺时针旋转2次。生成的密文位置图如图4所示。这样一次加密过程完成。

分形数据文件加密算法

由上可知,每次加密能够加密的二进制位数为维数的三次方(如果模型为1的话),如果明文二进制位数大于一次能加密的位数,则需要继续加密,继续加密时,密钏控制位循环使用,如上次用到密钏控制位的前9位0100 0101 0,接下来使用密钏的后7位1 10 01 1 。前2位01,依此循环使用密钥,则密钏控制图如图5所示。

分形数据文件加密算法

剩下明文在席尔宾斯基垫片模型中所处位置为图6所示,明文经过密钏控制后在席尔宾斯基垫片模型中的位置如图7所示。当剩下明文不足一次能加密的位数,使三角形的边上数据不够,比如图6所示,有一个三角形中只有两条边上有数据,则该三角形在加密过程中不作旋转。

分形数据文件加密算法

加密完成,密文按照从上到下从左到右的规则取出,得到的密文为,0000 0001 1100 1100 0010 111001 10 1 100即OxOlcc2d6c。

解密的时候0代表三角形旋转2次,1代表1次,因为三角形旋转三次就还原了,即解密过程完成,如是其他模型,加密规则同席尔宾斯基垫片模型类似。

对于所有模型有如下规则:

1)将密钥表示成二进制形式,并从左至右分为三组,第一组由密钥的第1~4位组成,第二组由密钥的第5-16位组成,其余的位数划入第三组。我们定义第一组为选择数据加密所用的模型,第二组为分形的形成维数,第三组中的各位作为控制位控制子图形的旋转。

2)设选择好的模型,当形成维数为1的时候,有m条边,如席尔宾斯基垫片模型的m值为3,席尔宾斯基地毯模型的m值为4。那么当形成维数为n时,选择子图的原则是:选择模型中与初始图形相似且在黑色区域(即不是由于形成分形图形而被挖去的部分,如下面两个图的黑色区域)的子图。该子图的个数为((m-1)2-1)n-1。如席尔宾斯基垫片模型当n=3时候的个数为9个,席尔宾斯基地毯模型当n=3时候的个数为64个。

分形数据文件加密算法

3)旋转控制位数的确定。如席尔宾斯基垫片模型只需要一位,即0和1。但是席尔宾斯基地毯则需要两位,即00,01,1 0,1 1。因此旋转位数的选择依据为使(m--1)≤2k(k>0)成立时最小的k值,即为所需要的位数。

4)旋转次数的确定。设控制位数为k,则此时该控制位对应的十进制值为w,则加密时候旋转次数c=w%m+1,解密时旋转次数为c=m-l-w%m。

5)明文填入位置的选取准则,按照选择好的子图形中边排列的从上到下从左到右的顺序,依次填入,取出密文的时候也按照这个规则。如图1所示,填入的顺序为a,b,c,d,e,f,g,h,i等。整个加密流程图如图8所示:

分形数据文件加密算法
解密中明文输入部分换成密文输入,同时模型旋转次数按照规则4)中做出转化。

整个加密流程图如图8所示:

解密中明文输入部分换成密文输入,同时模型旋转次数按照规则4)中做出转化。

该加密算法在大数据文件需要加密解密的情况下使用,如网络传输数据包的加密和解密,企业中数据需要保密等,成功使用过des或3des的地方都能适用此算法。由于加密解密得到的明文密文的数据位数相同,且在拥有密钥的前提下算法可逆,因此不能用作签名算法。

二、安全性分析

该加密方法的安全性在于:

1)第1-4位选择图形,即0000 - 1111,共16种图髟可以选择,本文只介绍了最简单的子图形为三角形的模型,其它子图形如正方形,星形等,如果错误选晕图形则无法解出。

2)第5-16位为维数,过多过少的维数都会解出错误,同时维数多能够保证数据加密后密文位置具有一定的随机性,能够抵抗差分和线性攻击。

3)旋转的次数是根据密钥变化改变而改变,而且密钥循环使用,相同的明文可以加密成不同的密文,方止选择明文攻击。

4)未用到任何数学算法,因此根据数学公式无法作为破解的工具。

5)由于很好的非线形以及无规则性,很好的保护加密明文。=

6)只有穷举法才有机会攻击,而理论上穷举法对所有的加密方法都有效,但是由于密钥位数选择的任意性,因此只要密钥在8字节(64位)以上,穷举需要2的64次方次,在时间上已经是不太可能。

现在,分形理论已应用到了各个领域,人们已提出了自然分形、时间分形、空间分形、社会分形、思维分形等概念。分形理论的提出,转变了人们传统的思维方法,认识到整体与部分之间的关系可由线性进展到非线性的阶段,且它与系统论还能共同揭示整体与部分之间的多层次、多视角、多维度的关联方式。

本文运用分形图形对数据文件加密,将分形运用到密码学中,得出一种新的加密算法,并详细的分析了该算法的实现过程;而利用分形图的加密技术和解密技术,目的就是为了改变以前在信息安全技术中古板的加密方式,力求实现信息保密中的多样性,开拓分形理论的应用领域。

小知识之分形

分形,具有以非整数维形式充填空间的形态特征。分形(Fractal)一词,是芒德勃罗创造出来的,其原意具有不规则、支离破碎等意义。1973年,芒德勃罗(B.B.Mandelbrot)在法兰西学院讲课时,首次提出了分维和分形的设想。