对一种神经网络加密方案的安全性分析*

2020-06-18 09:08叶小艳刘政连
计算机与数字工程 2020年4期
关键词:明文密文密钥

叶小艳刘政连

(1.广州大学华软软件学院网络技术系 广州 510990)(2.广东东软学院计算机科学与技术系 佛山 528225)

1 引言

混沌理论对计算机科学来说并不新鲜,在密码学中已有多年的应用。如在加密方法上,利用其具有“扩散”和“混乱”的原则,在密钥加密或对称加密时进行建模,生成混沌的密钥协商协议[1]。早在2006年,曹进德和虞文武教授提出了基于时滞的混沌神经网络加密方法(下文称为YU-CAO方案),该方法具有时变时滞特点,在这种密码系统中,混沌神经网络用于生成二进制序列,然后根据规则对明文进行加密[2]。2009年,杨吉云等对YU-CAO方案进行安全性分析,针对该方案的根本性缺陷,提出了在选择明文攻击下获得密钥流的方法[3](下文称为YANG方法)。2012年,刘政连等运用布尔代数中的异或算法(XOR)描述了相互认证和密钥交换协议(Mutual Authentication and Key Exchange Protocol,MAKEP),实现客户认证有效的会话密钥,增强数据加密隐藏算法安全性,避免数据中途传输被截获或发现。该研究列举了异或算法的特性,并指出了MAKEP协议的不足,按位异或运算符,按的是计算机二进制位,具有相应的攻击弱点,即不能抵御伪造攻击,攻击者可以构造一个有效的MAKEP协议来应对客户认证阶段运行的MAKEP协议[4~5]。本文在回顾YU-CAO方案、YANG方法基础上,运用XOR运算进行验证,指出了YU-CAO方案存在的漏洞,并能提高验证效率,最后得出本文结论并证明。

2 YU-CAO方案

曹进德教授等在YU-CAO方案中设计了以下Hopfield神经网络加密模型[2]:

要使得τ(t)=1+0.1 sin(t)成立,式(1)的初始条件必须是xi(t)=φi(t)。

当-r≤t≤0时,

那么r=maxt∈R{τ(t)},φ(t)=(0.4,0.6)T。

该加密模型来自文献[6]提出的一种方法,从一组遍历混沌映射中生成一个独立的、完全相同的二元随机变量序列。这个映射具有产生独立同分布的二进制序列。对于任何x在不同的定义I=[d,e],可以表达为(x-d)/(e-d)∈[0,1]。下面用二进制表示:

第i位bi(x)表示为

当Θt(x)作为函数变量进行定义时:

式(1)~(4),可以根据以下步骤进行加密:

步骤1,从x0开始到N0结束进行迭代循环,x0=x1(N0h)。在这个方案中,N0记为1000。

步骤2,将消息P作为子序列,Pj长度为L字节。在这个方案中L记作4。同时Pj=Plj+Plj+1+Plj+2+Plj+3,||表示连接。

步骤3,式(1)经过38次迭代操作可以生成两个数据序列:x1=x10x11…x137和x2=x20x21…x237。选择其中一个数据序列生成二进制序列:

步骤4,Pj向左循环移位得到Dj,Aj向右循环移位得到Dj,分别生成P′j和A′j。

步骤5,P′j和 A′j根据下面的等式生成Cj:

⊕是XOR运算符。

步骤6,如果所有明文都已加密,那么加密的过程表示完成。否则,由x0=xsj+1((38+Dj)h)返回到步骤2。

解密过程与加密过程相同,只是移位的消息序列是通过以下方式获得的:

3 YU-CAO方案的安全性分析

3.1 YANG的方法

杨吉云等发现了YU-CAO方案的一个根本性缺陷:当秘钥固定时,秘钥流A′j用于式(5)是独立于明文。但每一次新的加密过程都是相同的密钥流序列。当该算法在同一位置上用于加密明文,就会产生相同的密文,如果获得密钥流等同于获得了密钥,就无法抵御选择明文攻击[10~11]。这种情况会经常发生,尤其是在加密同一类型的文件,因为这些文件通常具有相同的头文件[12]。

在步骤3中,YU-CAO方案的加密算法将i通常设置为相对较小的值。也就说,相对权重Aj、Dj和Sj在加密过程中变化不大。

为了说明这一缺陷,我们根据YU-CAO方案中的算法列出部分密钥的,按文献[2]已经给出的式(1)模型的参数,例如:

在时间间隔[-1.1,0]之间,h=0.01,φ(t)=(0.4,0.6)T。

在文献[2]中,提出了四种不同级别的攻击,以测试各种加密算法的安全性。按难易度排序,分别是密文攻击、已知明文攻击、选择明文攻击和选择密文攻击。假设密码分析者已经知道详细的加密算法情况下,就可以抵御所有已知的攻击,它被证明是安全的。

方案提出的密码体制选择明文进行攻击,文献[2]已经描述的很清楚:假设两对明文和对应的密文具有相同的加密位置和期望长度,分别由Pj1和Cj1表示第一对的明文和密文,Pj2和Cj2表示另一双。Pj1和Pj2在加密过程中位于同一位置j,接着循环左移到Dj位,并使用相同的密钥流A′j进行处理。

从加密算法的步骤4可知:

“<<”表示向左循环移位操作。

从步骤5可知:

根据式(7)、式(8),可以得到:

由Xj=Cj1⊕Cj2同理可得Zj=Pj1⊕Pj2。

由于Xj和Yj为已知,为得到Dj,只需向左循环移位Zj,直到Xj=Zj,最终实现Dj。当然,当式(10)存在唯一的解是最合适的。但如果Zj获得“aaa…a”类型,式(10)存在一个以上的解。因为Zj<<n=Zj<<n+k*L由于‘a’有L位,所以不能选择明文对Zj成为“aaa…a”类型。

当Dj已经获知,可以从式(7)得到P′j1,从式(9)得到:

通过这种简便的计算方法,可以得到理想的密钥流A′j。A′j的信息很重要,可以由某个未知密钥变成明确的密钥。

为了证明这个缺陷造成的安全漏洞,我们选择在第四块从表格2和表格3两个明文,分别用P41、P42表示,密码模型选择明文攻击的过程分为以下几步:

步骤1,有表格2和表格3,获得:

步骤2,假设只知道P41,P42,C41和C42,根据式(7)、式(8)和式(10),可以计算出Dj,A′j和Aj来验证结果。

1)C41⊕C42=D0C8DFEEH,将其表示为X4;

2)P41⊕P42=BFDDA191H,将其表示为Z4;

3)向左循环移位Z4直到X4=Z4,可以得到转换的次数D4=FH。这与表格2和表格3中列出的值相同。

4)根据YU-CAO方案的算法步骤4,可以获得P′41=D011C480H和P′42=00D91B6EH。

5)根据式(11),可获得A′4=FFFE1FFFH。这与表格2和表格3中列出的值相同。

6)根据YU-CAO方案的算法步骤4,可以得到A4=0FFFFFFFH。这也与原始文章中列出的值相同。

从上面的论证发现,可以很容易地在两对明文和密文中获得密钥。

3.2 本文的方法

以上,我们指出了Yang方法的漏洞,虽然Yang的方法采用两对明文和密文,通过明文攻击模式,获取Yu-Cao方案的密钥流并对其进行攻击。使用按位异或运算(XOR)计算出X4,Z4。我们可以表示为X4=C41⊕C42,Z4=P41⊕P42。

事实上,异或运算是数字逻辑设计中常见的一个组成部分[13~14],它适用于加法器、密码认证系统或其他应用程序[15]。我们可以推导出定理4和定理5[4~5]:

定理1由⊕计算出结果X,由加法交换律可推算,如果A⊕B=B⊕A,所有A,B∈X。

定理2由⊕计算出结果X,由加法结合律可推算,如果(A⊕B)⊕C=A⊕(B⊕C),所有A,B∈X。

定理4如果A,B是奇数,那么(A)⊕(-A)=

定理5如果A,B是偶数,那么4|A,B和8∤A,B,求得(A⊕B)=(-A⊕-B)。

这样,我们可以很快计算出-C41,-C42。如果C41,C42已知,从定理4可计算X4和-C41⊕-C42替代C41⊕C42。由于C41,C42在Yang的算法中是奇数。只需要使用两对明文和密文,我们也可以很轻松地获得密钥[15]。下面的证明中可验证计算结果。

证明:

众所周知:

因此

因此,C41⊕C42=-C41⊕-C42。

证明完毕。

4 结语

Yang方法分析了Yu-Cao方案的基本缺陷,并提出了一种仅使用两对纯文本和密文的算法来获取密钥流的方法。尽管Yang方法的计算是成功的,但它的效率不高。本文从以上的分析中,可以了解Yu-Cao方案和Yang方法的不安全。因此,通过对XOR运算的分析,我们提出了一种更直观、更有效的方法。

猜你喜欢
明文密文密钥
一种支持动态更新的可排名密文搜索方案
幻中邂逅之金色密钥
幻中邂逅之金色密钥
嵌入式异构物联网密文数据动态捕获方法
一种新的密文策略的属性基加密方案研究
一种抗攻击的网络加密算法研究
Android密钥库简析
奇怪的处罚
奇怪的处罚