基于混沌的恩尼格玛加密方法

文档序号:7982102阅读:196来源:国知局
专利名称:基于混沌的恩尼格玛加密方法
技术领域
本发明涉及加密系统,用于数据与信息保护,特别涉及一种基于混沌的恩尼格玛加密方法。
背景技术
恩尼格玛(Enigma)的加密机制恩尼格玛(Enigma)是一台便携式的电子机械装置,其内部的主要结构如图1所示,为了描述其加密原理,简化为只取六个字母的内部结构示意图2,在图2中可以看到,恩尼格玛(Enigma)主要分为键盘(Keyboard)、转子 (Scrambler Unit)和显示器(Lamp Board)三个部分。每个转子左右对应关系是不一样的, 且均可以逆时针旋转。加密时,需要先设置好三个转子的初始位置作为密钥,由键盘键入明文,经过三个转子的替换,相应的密文在显示器上显示,所述的转子,是指明文与其置换输出值之间的映射关系,为方便解释映射关系,将其抽象为转子在图中显示。在每个明文被加密后,第一个转子就自动地逆时针转动一个字母的位置。当第一个转子转过一个周期后,会有一个齿拨动第二个转子逆时针转过一个字母位置,依次往下, 如图2所示,给出的是简化为三个转子的情况。恩尼格玛(Enigma)的设计使译码的过程和编码的过程比较容易实现。由加密过程可以看出,Enigma不是一种简单替换密码。同一个字母在明文的不同位置时,可以被不同的字母替换,而密文中不同位置的同一个字母,可以代表明文中的不同字母,这就使密码分析中的频率分析法在这里失去了作用。恩尼格玛(Enigma)加密时转子左右对应关系的生成方式近似非线性机制,从而加密有限长度的明文得到的密文大致呈现均勻分布。上述这种电子机械装置,对明文的长度要求是有一定的限制的,一但明文长度过长,就要通过增加电子机械装置的体积的方式来保证加密方法的安全性,体积过大又导致不便于使用,致使这种结构的电子机械装置很难被广泛使用。目前采用的方法,是在原来电子机械装置的基础上,通过电路系统实现出来,如图 3所示,这种电路系统的实现克服了以往需要以牺牲体积方式来实现的缺点,但是无论原始机械Enigma还是现在的电路式Enigma实现方法都存在两个主要的问题使其在现代技术下不安全(1)当较长的明文由Enigma加密后,得到的密文分布不均勻,呈现出一定的周期性特征,这比较容易被破解;(2)另一个问题是Enigma几乎不存在扩散性,即改变明文的lbit,得到的密文中, 只有改变的明文对应的密文是变化的,其他密文和原来的密文(没改变明文时加密得到的)相同,这很容易利用差分攻击破解,不具备雪崩效应的特性。

发明内容
针对现有方法存在的不足,本发明提出一种基于混沌的恩尼格玛加密方法,以克服恩尼格玛加密密文易被破解的缺陷。
本发明的技术方案是这样实现的本发明基于混沌的恩尼格玛加密方法,包括以下步骤步骤1 设置初始参数,所述初始参数包括明文与其置换输出值之间的映射关系、第一密钥和第二密钥;步骤1-1 建立明文与其置换输出值之间的映射关系,公式为Y1 = f1 (χ), y2 = f2(x), -"Yi = fi(x), yi+1 = fi+1(x), ...yN = fN(x);式中,yi = fi (x)表示第i个映射关系,即整数数组第X位置对应的元素整数值为其中,X表示整数数组元素的位置,所述的整数数组共有M+1个元素,X的取值为O-M之
间的整数;y表示整数数组内元素的整数值,所述数组内的M+1个元素值都不相同,且y的取值也为O-M之间的整数;N表示映射个数;所述的映射关系yi = fi (χ)由随机函数产生;所述的N个不同的映射关系AO^f2(X),... &00,&+100,...fN(x)共有N !种不同顺序的排列方式;步骤1-2 确定第一密钥为任意0-1之间的小数;步骤1-3 确定第二密钥,方法为取步骤1-1中N !种不同顺序的排列方式中的一种排列作为第二密钥;步骤2 采用混沌映射方法,确定混沌状态值,方法为将第一密钥作为逻辑斯蒂克(Logistic)混沌映射的初值,对其进行η次迭代,得到混沌状态值,公式如下an+1 = μ XanX (l-an) 0 < an < 1, η = 1,2,3— (1)式中, η+1为混沌状态值,知为前一次迭代的混沌状态值,μ为分支参数,当 3.5699456···< μ < 4时,系统进入混沌状态,μ越接近4,其随机性越好,并且呈现出类似白噪声的统计特性;步骤3 利用步骤2计算得到的状态值an+1 (0-1的小数),把an+1转化为8N比特 (bit)的二进制,并将每8个比特(bit)转化为一个十进制整数,共得到N个整数,公式如下
“‘ ^8 ^ΦV)…办 16 …办4#-7办4#-6 . · .
、ν八γj、γy
Kk2kNZli = (Iii)10 i = 1,2,...N (2)式中,I3i为iin+1转化得到的第i位二进制,Ici为b4i_7b4i_6…b4i组成的二进制数串, 所述的每个二进制串共有8位,Zli为二进制串Ici对应的十进制整数,共确定Zn、Z12j13、… Zin共N个整数;步骤4 确定第二密钥中各映射的置换输出值yi;方法如下利用步骤3得到的Z11与第一位明文P1,将二者带入如下公式进行计算(Z1^p1) modM将计算结果作为步骤1-3所确定第二密钥中第一个位置上的映射t = fj(x) (1彡j彡N)的输入,确定置换输出值为y」=^.((Zn+p^modM);利用步骤3得到的Z11和Z12,将二者带入如下公式进行计算
(yj+Z12-Zn+M) modM将计算结果作为第二密钥中第二个位置上的映射yi = (χ) (1彡1彡N,且1兴j) 的输入,确定置换输出值为Y1 = f1((yJ.+Z12-Z11+M)modM);利用步骤3得到的和Z13,将二者带入如下公式进行计算(y^Z^-Z^+M) modM将计算结果作为第二密钥中第三个位置上的映射ye = fe(x) (1彡e彡N,且 e ^ 1 ^ j)的输入,确定置换输出值为ye = fe((yi+Z13-Z12+M)modM);采用上面的方法,直至计算出第二密钥最后一个位置上的映射yg= fg(x) (1彡g彡N,且g乒...的置换输出值yg ;步骤5 确定第一位明文P1加密后得到密文C1,公式如下C1 = (yg-z1N+M) mod M (3)式中,yg为步骤4得到的最后一个置换输出值,Zin为步骤3得到的N个整数中的最后一个整数;步骤6 对明文的第2 第i位进行加密,其中i > 1,利用混沌映射方法对步骤2 计算得到的an+1进行i-Ι次公式⑴的迭代,确定an+i ;步骤7 采用步骤3的方法,利用步骤6计算出的结果an+i,重新确定N个整数值;步骤8 重新确定第二密钥,公式如下Oi =十 Pi—2 十".^PmodiV!(4)式中,Pl,p2,...Ph为第i个明文之前的明文;Oi为步骤1中N !个排列顺序中第 (Pi-I P,-, ·..A) mod/V!个排列方式;步骤9 采用步骤4的方法,利用步骤7确定的整数、步骤8确定的第二密钥和明文Pi进行运算,得到明文Pi对应的密文Ci ;步骤10 反复执行步骤6 步骤9进行加密,最终得到密文ClC2(v"Ci_lCiCi+r"Cn;为了有更好的扩散性,良好的雪崩效应,可以添加第二轮加密,即把上面得到的密文作为明文,从最后一位(从后往前)采用上面同样的方法步骤加密,步骤8中公式改为O1 = (cn 十 Cp1 十…mod 岸!⑶式中,cn, Cn^1, -cn_i+1为第i个密文之后的密文;0i为步骤1中N !个排列顺序中第(Cn十CV1十…Cm) mod/V!个排列。本发明优点本发明基于混沌的恩尼格玛加密方法,改善了 Enigma具有的周期性问题,通过混沌映射来扩大周期,每次每位明文加密时映射的输入值由混沌映射的状态值来决定,那样即使很长的明文也很难出现周期性特征;密码的分布更好,本发明在Enigma 加密方法中结合了非线性混沌映射,使其过程完全非线性化,生成密文随机性更好;由于每位密文都与前面加密过的明文相关,所以即使对明文微小的修改也会带来密文极大的改变,有很好的雪崩效应,并且在文字、图像等多种媒介上都能广泛应用。其加密结果在加密效果及其直方图、相邻像素相关性分析、差分攻击分析和对文本加密上都有很好的表现。


图1 (a)为传统的恩尼格玛加密方法传统电子机械结构示意图;图1 (b)为传统的恩尼格玛加密方法传统电子机械结构对应的平面示意图2(a)为传统的恩尼格玛加密方法传统电子机械结构内部结构示意图;图2(b)为传统的恩尼格玛加密方法传统电子机械结构内部结构平面示意图;图3为本发明基于混沌的恩尼格玛加密方法Enigma采用的电路系统示意图;图4为本发明实施例中基于混沌的恩尼格玛加密方法加密的原始灰度图;图5为本发明基于混沌的恩尼格玛加密方法的流程图;图6为本发明基于混沌的恩尼格玛加密方法的Lena加密图;图7为本发明基于混沌的恩尼格玛加密方法的Lena图灰度直方图;图8为本发明基于混沌的恩尼格玛加密方法的Lena加密图灰度直方图;图9为本发明基于混沌的恩尼格玛加密方法原始加密方法得到的灰度直方图。
具体实施例方式下面结合附图和实施例对本发明作进一步详细说明。本实施例中对灰度图进行加密,如图4所示,灰度图的大小为512X512,格式为 Lena, bmp,图4共有512 X 512个像素点,每个像素点灰度值都为一个0-255之间的整数,把图4中像素点灰度值按照从上到下和从左到右的原则提取出来得到一个512X512的整数数组作为明文。本实施例采用基于混沌的恩尼格玛加密方法,包括以下步骤步骤1 设置初始参数本实施例中设置有4个映射关系对明文进行置换;步骤1-1 建立 4 个映射关系 I1 = (χ) ,J2 = f2 (χ) ,y3 = f3 (χ),y4 = f4 (X),映射关系y = fi(x)由随机函数randomO得到,χ为0-255的整数,表示一个整数数组中元素的位置,共256个元素;y也为0-255的整数,表示整数数组内元素的整数值,数组内256个元素值都不相同;由随机函数randomO生成的4个不同的映射关系f工(χ),f2 (χ),f3 (χ),f4(χ) 按不同顺序有 24 个排列方式,如 (χ) -f2 (χ) -f3 (χ) -f4 (χ),fi (χ) -f2 (χ) -f4 (χ) -f3 (χ),f! (x )"f3 (X) "f2 (X) "f4(x)......f4 (X) "f3 (X) "f2 (X) "fi (X),共 24 种排列方式;步骤1-2 第一密钥为0-1之间的小数,本实施例中设置第一密钥为0. 23456 ;步骤1-3 设置第二密钥取步骤1-1的4个排列方式中的一个 f2 (χ) -f3 (χ) (χ) "f4 (χ)即 2-3-1-4 作为第二密钥;步骤2 采用混沌映射方法,确定混沌状态值,方法为第一密钥作为混沌映射Logistic映射的初值,进行500次迭代,得到混沌状态值, 公式如下an+1 = μ XanX (l-an) 0 < an < 1, η = 1,2,3— (1)式中ειη+1为混沌状态值,取μ = 4 ;步骤3 利用步骤2计算得到的状态值a +1 (0_1的小数),把an+1转化为32bit的二进制,进而每8bit转化为一个十进制的整数,共得到4个整数,计算公式如下
权利要求
1.基于混沌的恩尼格玛加密方法,其特征在于包括以下步骤 步骤1 设置初始参数,所述初始参数包括明文与其置换输出值之间的映射关系、第一密钥和第二密钥;步骤2 采用混沌映射方法,确定混沌状态值,方法为将第一密钥作为逻辑斯蒂克Logistic混沌映射的初值,对其进行η次迭代,得到混沌状态值,公式如下an+1 = μ XanX (l-an) 0 < an < 1, η = 1,2,3- (1) 式中,^V1为混沌状态值,知为前一次迭代的混沌状态值,μ为分支参数,当 3. 5699456···< μ < 4时,系统进入混沌状态,μ越接近4,其随机性越好;步骤3 利用步骤2计算得到的状态值an+1 (0-1的小数),把an+1转化为8N比特(bit) 的二进制,并将每8个比特(bit)转化为一个十进制整数,共得到N个整数,公式如下kIk2kNZli = (Iii)10 i = 1,2,…N(2)式中,h为iin+1转化得到的第i位二进制,Ici为b4i_7b4i_6…b4i组成的二进制数串,所述的每个二进制串共有8位,Zli为二进制串Ici对应的十进制整数,共确定Z11, Z12, Z13、…Zin 共N个整数;步骤4 确定第二密钥中各映射的置换输出值yi;方法如下 利用步骤3得到的Z11与第一位明文P1,将二者带入如下公式进行计算 (Z1^p1) modM将计算结果作为步骤1-3所确定第二密钥中第一个位置上的映射L = fj(x)的输入, 其中1彡j彡N,确定置换输出值为y」=^.((Zn+p^modM);利用步骤3得到的Z11和Z12,将二者带入如下公式进行计算 (yj+Z12-Zn+M) modM将计算结果作为第二密钥中第二个位置上的映射Y1 = ^(x)的输入,其中1 < 1 <N, 且 1 Φ j,确定置换输出值为 Y1 = f1((yJ+Z12-Z11+M)modM);利用步骤3得到的Z12和Z13,将二者带入如下公式进行计算 (Yi+Z^-Z^+M) modM将计算结果作为第二密钥中第三个位置上的映射Ie = fe(x)的输入,其中1 < e < N, 且e乒1乒j,确定置换输出值为ye = fe((yi+Z13-Z12+M)modM);采用上面的方法,直至计算出第二密钥最后一个位置上的映射yg = fg(x)的置换输出值yg,其中1彡g彡N,且g乒...^ 1 ^ j ;步骤5 确定第一位明文P1加密后得到密文C1,公式如下 C1 = (yg-z1N+M)mod M (3)式中,Yg为步骤4得到的最后一个置换输出值,Zin为步骤3得到的N个整数中的最后一个整数;步骤6 对明文的第2 第i位进行加密,其中i > 1,利用混沌映射方法对步骤2计算得到的an+1进行i-Ι次公式⑴的迭代,确定an+i ;步骤7 采用步骤3的方法,利用步骤6计算出的结果an+i,重新确定N个整数值;步骤8 重新确定第二密钥,公式如下Oi =十 Pi—2 十.·· ^1) mod/V!(4)式中,P1, P2,…Ph为第i个明文之前的明文;0i为步骤1中N !个排列顺序中第 (Pi-I P,-, ·..A) mod/V!个排列方式;步骤9 采用步骤4的方法,利用步骤7确定的整数、步骤8确定的第二密钥和明文Pi 进行运算,得到明文Pi对应的密文Ci ;步骤10 反复执行步骤6 步骤9进行加密,最终得到密文Clc2(vCi_lCi(vr"Cn ; 步骤11 反复执行步骤1 步骤10,进行多轮加密。
2.根据权利要求1所述的基于混沌的恩尼格玛加密方法,其特征在于步骤1所述的设置明文与其置换输出值之间的映射关系,方法为步骤1-1 建立明文与其置换输出值之间的映射关系,公式为 ii = fi (χ),y2 = f2 (χ),... Yi = fi (χ),yi+i = fi+i (χ),... yN = fN (χ); 式中,Ii = fi(x)表示第i个映射关系,即整数数组第χ位置对应的元素整数值为其中,χ表示整数数组元素的位置,所述的整数数组共有M+1个元素,χ的取值为O-M之间的整数;y表示整数数组内元素的整数值,所述数组内的M+1个元素值都不相同,且y的取值也为O-M之间的整数;N表示映射个数;所述的映射关系Ii = ^ (χ)由随机函数产生;所述的N个不同的映射关系(χ),f2 (χ),· · · fi (χ),fi+1 (χ),· · · fN (χ)共有N !种不同顺序的排列方式;步骤1-2 确定第一密钥为任意0-1之间的小数;步骤1-3 确定第二密钥,方法为取步骤1-1中N !种不同顺序的排列方式中的一种排列作为第二密钥。
3.根据权利要求1所述的基于混沌的恩尼格玛加密方法,其特征在于步骤11所述的多轮加密,方法为将上一轮得到的密文作为明文,从最后一位即从后往前采用步骤1 步骤10的方法进行加密,其中,步骤8中公式修改为Oi = ^n 十 h 十…/+1)mod#!(5)式中,cn, Cn^1, -cn_i+1为第i个密文之后的密文;0i为步骤1中N !个排列顺序中第 (cn十CV1十…Cw1) mod/V!个排列。
全文摘要
基于混沌的恩尼格玛加密方法,涉及加密系统,用于数据与信息保护,本发明方法,改善了Enigma具有的周期性问题,通过混沌映射来扩大周期,每次每位明文加密时映射的输入值由混沌映射的状态值来决定,那样即使很长的明文也很难出现周期性特征;密码的分布更好,本发明在Enigma加密方法中结合了非线性混沌映射,使其过程完全非线性化,生成密文随机性更好;由于每位密文都与前面加密过的明文相关,所以即使对明文微小的修改也会带来密文极大的改变,有很好的雪崩效应,并且在文字、图像等多种媒介上都能广泛应用。其加密结果在加密效果及其直方图、相邻像素相关性分析、差分攻击分析和对文本加密上都有很好的表现。
文档编号H04L9/00GK102412960SQ201110373139
公开日2012年4月11日 申请日期2011年11月21日 优先权日2011年11月21日
发明者于海, 刘国奇, 卜超, 朱志良 申请人:东北大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1