APP下载

基于Feistel结构的混沌密码算法

2013-10-31郑晓丽姜迪刚

通信技术 2013年7期
关键词:明文解密密钥

郑晓丽,姜迪刚

(①军事体育进修学院,广东 广州 510500;②中山大学基础医学院,广东 广州 510080)

0 引言

混沌分组密码算法近年来发展迅速[1-3],直接推动了分组密码的发展[4-5],但这些密码的安全性并不高[6],基于这一点,提出一种安全性比较高的混沌映射和扩展Feistel结构相结合的混沌密码算法。其主要特点是将Logistic映射和Feistel混沌密码相结合[7-8],将27原文变为27的密文,S盒由映射函数产生,原密钥经过 Cubic映射产生密钥。这就使得密码的结构具有灵敏性和安全性。

1 混沌密码算法

分组密码是将其足够大的分组长度合理组合,产生良好的混乱和扩散性;Feistel结构就是分组密码的结构,它的加、解密过程相似,因此在设计轮函数时,不管其结构有多复杂,也不用考虑解密时的结构,并具有很好的安全性。而且这种密码体制允许多次使用同一个密钥,可以大大减少密钥空间的密钥量,也降低了密钥协商需要的通信量[9-10]。

分组密码算法的安全性完全依赖于密钥,如果密钥的结构过于简单,容易受到密码分析者的攻击。为了解决上述问题,采用一次一密的分组密码体制,将S盒、P盒以及在群、有限域上的运算都与分组密码算法的密钥关联起来,将密钥的随机性和整体变换的复杂性相混合。即使攻击者了解所有的设计细节,也很难对整个算法进行有效的攻击,从而提高了算法的安全性。

2 混沌密码算法设计

混沌密码算法设计和分组密码有两点不同:①系统使用一个迭代轮函数,它的每一轮的输出作为下一轮的输入,其中轮函数f是由Logistic混沌映射生成的S盒,S盒是随着初值的变化而变化的,混沌映射是整个 f函数的核心;②把混沌映射本身在(0,1)之间的小数运算转化成了(0,2128)的大整数运算,便于在计算机上编程实现和硬件仿真。

分组加密算法按八位一组进行分组,得到16个分组,产生 16个子密钥,加密解密的流程如图1所示。

图1 加密解密流程

扩展加密结构也有 8组,加密轮结构如图2所示。

其中f为使用Logistic映射构造的S盒,奇数轮用S1,偶数轮用S2。本算法使用的动态S盒构造步骤具体如下:

1)应用 Logistic映射(xn+1=4xn(1-xn),0

2)使用Baker映射对上述生成的S盒进行置乱,其表达式为式(1):其中,r,s分别表示初始 S盒的行和列,0≤s<N,Ni≤r<Ni+ni。

3)使用Cubic映射来生成轮密钥,Cubic映射是一个二维混沌系统,表示如式(2):

其中,选取 A=4、B=3、0<xn<1来达到最佳混沌状态。

图2 加密轮结构

解密过程即为和加密相对应的逆过程,解密结构如图3所示。

图3 扩展的解密结构框

加密系统中的轮函数 f的作用,是将输入的比特扩散到输出中,就可以将明文信息扩散到所有的分组中。每一次的信息都扩散到其他的子分组中,因此当轮数小于n+1时,所有的信息都将扩散到子分组中。

3 混沌密码算法分析与实现

3.1 混沌密码算法的性能分析

S盒性能分析:S盒主要提供分组密码算法的混乱和扩散,其性能的优劣对一个分组密码系统有着决定性的影响。一个性能良好的S盒要满足许多设计准则,其中最重要的是:对输入做很小的改变,就能使得输出产生极大变化。至于非线性度和差分均匀性,一般要求非线性度的值尽可能的大,差分均匀度DP的值尽可能的小,这样的S盒的性能良好。表1选取了一个前述方法生成的S盒。

其8个布尔函数的非线性度分别是:y0=106,y1=104,y2=98,y3=104,y4=104,y5=108,y6=106,y7=108。输入输出差分的最大值是10。

表2列出的是设计的S盒与其他利用混沌方法生成的S盒的参数对比,不难发现,设计的S盒具有比较好的性能。

3.2 设计算法的仿真

(1)算法实现的基本流程

一个完整的设计流程主要包括以下几方面:电路或模块的设计与输入、时序仿真、设计综合、设计实现、功能仿真、布局布线仿真等组成。如图 4所示。

(2)算法的仿真结果

基于算法实现流程,算法实现原理如图5所示。

混沌S盒、混沌密钥的生成为该算法的子运算。明文经过一次运算后,返回程序入口,成为新的明文,迭代8次后,最终生成密文。

表1 Logistic生成的一个8×8的S盒

表2 设计的S盒与其它混沌S盒的性能比较

图4 算法实现流程

图5 算法实现设计

(3)算法的仿真实现方法:

1)加密过程:当输入明文P=AFBECD0918273645AFBECD0918273645,初始密钥 K=0123456789 ABCDEF0123456789ABCDEF时如图6所示。加密得到的密文 C=61E19252DEFE8C93BFF97F9BC 7FFA199如图7所示。

图6 初始密钥和明文输入

图7 加密结果

2)解密过程:当输入密文C=61E19252DEFE8C 93BFF97F9BC7FFA199,初始密钥 K=0123456789 ABCDEF0123456789ABCDEF时,如图8所示。解密得到的明文 P=AFBECD0918273645AFBECD0918273645,如图9所示。与加密的明文完全一样。仿真结果验证了算法的正确性。

图8 初始密钥和密文输入

4 结语

针对混沌所特有的随机性和对初值敏感性等特征,结合经典的Feistel结构设计了一种新的混沌密码算法。通过Logistic混沌映射构造S盒,并对生成的S盒进行映射函数变换。通过对密码算法的硬件仿真,并对实验结果进行了分析,证明密码设计方案结构完整、灵敏度高、敏感性好,增强了混乱和扩散度,可有效抵抗外部攻击,从而进一步增强了密码体系的安全性。

[1]杨波.现代密码学[M].北京:清华大学出版社,2003:91-95.

[2]吴文玲,冯登国,张文涛.分组密码的设计与分析[M].北京:清华大学出版社,2009:1-2.

[3]郑晓丽.基于单向函数树的多播密钥安全性分析[J].信息安全与通信保密,2007(05):127-128.

[4]LI Changpin,CHEN Guanrong.An Improved Version of the Marotto Theorem[J].Chaos Solutions and Fractals,2003,18(01):69-77.

[5]Kwok-Wo Wong. A Combined Chaotic Cryptographic and Hashing Scheme[J].Physics Letters A, 2003(307):292-298.

[6]郑晓丽.混沌分组密码抗差分密码攻击的分析[J].通信技术,2013,46(01):40-42.

[7]廖晓峰,肖迪,陈勇.混沌密码学的原理及应用[M].北京:科学出版社,2009:59-61.

[8]杨吉云,廖晓峰.对一种基于logistic映射的分组加密机制的分析和改进[J].通信学报,2008,29(12):86-90.

[9]郑晓丽.基于无证书公钥密码体制的密钥管理[J].通信技术,2010,43(07):95-97.

[10]郑晓丽.基于无证书公钥的IP注册的移动协议认证[J].通信技术,2011,44(08):127-129.

猜你喜欢

明文解密密钥
幻中邂逅之金色密钥
炫词解密
解密“一包三改”
密码系统中密钥的状态与保护*
炫词解密
TPM 2.0密钥迁移协议研究
一种对称密钥的密钥管理方法及系统
奇怪的处罚
奇怪的处罚
四部委明文反对垃圾焚烧低价竞争