APP下载

扩展整数帐篷映射与动态散列函数

2010-08-14刘建东

通信学报 2010年5期
关键词:整数帐篷差分

刘建东

(北京石油化工学院 信息工程学院,北京 102617)

1 引言

散列函数在现代密码学中有着极其重要的用途,它不仅在安全通信中起着重要的作用,而且是许多密码算法与密码协议安全的前提条件。近几年来,密码学界对散列函数的设计与分析给予了广泛的关注。在 2004年美密会上,王小云等宣布了包括MD4、MD5、HAVAL-128以及RIPEMD在内的碰撞实例[1]。最为重要的是对MD5的破解不仅具有理论意义,而且在实际应用领域也产生了巨大的影响。Lucks与Magnus已构造出MD5的“有意义的碰撞”[2]。王小云等人对SHA-1的分析也已取得突破性成果,揭示出SHA-1的脆弱性[3]。

传统的散列函数(MDx系和SHA系)的主要设计原则基于MD迭代结构[4],它们具有许多共同的设计准则,各轮的混合运算设计极为相似,全都采用了整数模加和逻辑函数(轮函数)。如此众多的散列算法在不长的时间相继被攻破,说明其设计准则存在缺陷。近年来,为获得更安全的散列函数,利用混沌系统对变量和参数的变化的敏感特性构造单向散列函数的研究已取得一些进展[5~9]。但由于数字化混沌系统的动力学特性退化问题[10]及构造方案本身的缺陷[11],目前基于混沌理论的散列函数构造方案还无法得到人们的信任。文献[12]中首次将混沌散列函数的研究成果[13,14]与传统的散列函数设计准则相结合,设计了一种输出长度为160bit的散列函数。本文对文献[12]提出的整数帐篷映射进行了改进,给出扩展整数帐篷映射的定义,并对扩展整数帐篷映射的均匀分布特性进行了分析。在此基础上,本文给出一种基于扩展整数帐篷映射的具有动态特性的散列函数设计方案(简称 TDHA)。该方案各轮主要计算过程依然是整数模加和位运算,为了提供良好的扩散性,将扩展整数帐篷映射作为各轮的主要非线性部件,由扩展整数帐篷映射引发状态变量内部及状态变量之间的动态强差分扩散。该方案将传统的散列函数中所使用的常数变为动态参数,利用扩展整数帐篷映射的位逻辑判定功能,通过循环移位方式控制动态参数的演化过程,增强了参数项与明文差分的关联度。压缩函数内部采用了并行迭代结构,有利于算法的软硬件高速并行实现。另外,还对MD结构进行了改进,使得压缩函数之间不仅有状态变量链接,还有相同数量的动态链接参数,在无需扩展中间状态变量的情况下,提高了散列函数抵抗部分消息碰撞攻击的能力。

2 基于整数帐篷映射的耦合映像系统

2.1 整数帐篷映射

帐篷映射的定义为[6]

该映射是混沌的。当参数α=0.5时,帐篷映射为满映射。帐篷映射的优异特性之一是其具有均匀的分布函数,在实数域内其性态是混沌的。将其由实数域运算等价转化为整数运算(设整数的二进制位数为k):

其中 1=2k-1。式(2)中的乘法运算可用移位操作实现。映射F服从[0, 1]上的均匀分布。更为重要的是,整数帐篷映射保持了实数域帐篷映射的伸长和折叠特性,其伸长特性最终导致相邻点的指数分离,即敏感的初始条件,其折叠特性则保持生成序列有界,且引起映射不可逆。然而,由于映射(2)定义在有限域内,利用它生成的迭代序列必然进入周期态,甚至出现一些周期长度很小的周期点。例如k=4时,出现不动点(10→10→…);k=5时,出现周期长度为2的短周期(12→25→12→…)。

2.2 扩展整数帐篷映射

为了改进整数帐篷映射的性态,给出扩展整数帐篷映射,将其定义为

当n为偶数时,

当n为奇数时,

映射式(3)将生成的迭代序列的周期扩展到2(k+1),并且避免了不动点的出现。表1给出k=5时,从所有可能的初值出发,利用映射式(3)生成的迭代序列,其周期为12。从表中可以明显看出其均匀分布的特性及拉伸与折叠的非线性特征。

表1 扩展整数帐篷映像(k=5)

2.3 扩展整数耦合帐篷映像系统

分析表1中的数据发现,映射式(3)生成的迭代序列共包含6个周期环,这些周期环是:

0→1→2→5→10→21→21→20→23→16→31→0→0,6→13→26→10→20→22→19→24→15→31→1→3→6,3→7→14→29→5→11→22→18→27→8→16→30→3,17→28→7→15→30→2→4→9→18→26→11→23→17,8→17→29→4→8,9→19→25→12→24→14→28→6→12→25→13→27→9。

在迭代过程中,通过施加扰动,来打破扩展整数帐篷映射所固有的周期环,则可以改善整数帐篷映射的遍历性,使系统的迭代序列随机化。为此,构造如下的耦合映像系统模型:

式(4)中运算符含义见下文中的说明。该式采用耦合映像格子的并行迭代结构及传统散列函数中的模加耦合方式,继承了耦合映像格子模型的混淆与扩散特性,克服了耦合映像格子模型对格点序列分布特性的影响[14]。取p=5, j=0,…,4,图1为式(4)在随机选取一组初值时状态变量经12 000次迭代的结果,可看出时间序列具有均匀随机的特性。

图1 扩展整数耦合帐篷映射时间序列分布

3 TDHA构造

符号说明:+为mod 232的加法运算,~为逐比特逻辑反,⊕为逐比特逻辑异或,<<为左移位操作,<<<为循环左移位操作,>>>为循环右移位操作。

定义D=231,在GF(232)内,扩展整数帐篷映射(式(3))G:xn→xn+1可用 C语言中的三元运算符(? :)描述为:

当n为偶数时,

xn+1= xn<D ? (xn<<1)+1 : ~xn<<1;

当n为奇数时,

xn+1= xn<D ? xn<<1 : (~xn<<1)+1。

由此可见,扩展整数帐篷映射可用简单的逻辑判断、逻辑取反及移位操作实现。若用汇编语言或硬件实现,则其操作可以进一步简化为:当n为偶数时,测试字的最高位是否为0,若为0,则左移一位加1,否则,则各位求反后,左移一位;当n为奇数时,测试字的最高位是否为 0,若为 0,则左移一位,否则,则各位求反后,左移一位,再加1。编程实现时,n的奇偶性无需判定,只要在一次循环中包含2次映射即可(奇偶各一次)。在下面的散列算法设计中,扩展整数帐篷映射的逻辑判定结果还将引起参数项k的动态变化,将其统一用三元运算符(? :)描述。下面给出构造散列算法TDHA的一般过程。

1) 分割与填充。采用MD5算法的分割与填充方式。简要描述为:将任意长度的明文消息 M 分割成 512bit的消息块 M0,…,Mn,…,Mt,最后一个块填充为:Mt=*…*10…0Length(M),其中 Length(M)表示M的长度的二进制形式,长度为64bit,不足64bit时高位添一个介符1再补0。

2) 将每个消息块Mn划分成16个32bit的消息字 m0, m1,…,m15。

3) 5个32bit的初始向量:

5) TDHA算法:

② 作3轮计算,每一轮进行4次迭代操作,每次迭代操作需要先进行消息嵌入及映射变换,然后利用式(4)给出的耦合映像系统模型,进行扩散迭代。

第1轮:进行4次迭代操作。

迭代操作1:

xi= mi+ xi, i=0,…,3。

x4= (m0⊕m1⊕m2⊕m3)+x4。

Gi= xi<D?(xi<<1)+1:(ki+2mod5=ki+2mod5>>>1,~xi<<1), i=0,…,4。

xi=Gi+((Gi-1mod5⊕Gi+2mod5)<<<21)+

((Gi+1mod5⊕Gi+3mod5)<<<11)+ ki, i=0,…,4。

迭代操作2:

xi= mi+4+ xi, i=0,…,3。

x4= (m4⊕m5⊕m6⊕m7)+x4。

Gi= xi<D ? xi<<1:(ki+2mod5=ki+2mod5>>>1, (~xi<<1)+1), i=0, …,4。

xi= Gi+ ((Gi-1mod5⊕Gi+2mod5)<<<21)+((Gi+1mod5⊕Gi+3mod5)<<<11)+ ki, i=0,…,4。

迭代操作 3:

xi= mi+8+ xi,i=0,…,3。

x4=(m8⊕m9⊕m10⊕m11)+x4。

Gi= xi<D?(xi<<1)+1:(ki+2mod5=ki+2mod5>>>1,~xi<<1), i=0,…,4。

xi= Gi+ ((Gi-1mod5⊕Gi+2mod5)<<<21)+((Gi+1mod5⊕Gi+3mod5)<<<11)+ ki, i=0,…,4。

迭代操作4:

xi= mi+12+ xi,i=0,…,3。

x4=(m12⊕m13⊕m14⊕m15)+x4。

Gi= xi<D ? xi<<1 : (ki+2mod5=ki+2mod5>>>1,(~xi<<1)+1) i=0,…,4

xi= Gi+ ((Gi-1mod5⊕Gi+2mod5)<<<21)+((Gi+1mod5⊕Gi+3mod5)<<<11)+ ki, i=0,…,4。

第2轮:映射变换及耦合扩散迭代的方式与第1轮相同,因此,这里只给出4次迭代操作的消息嵌入情况。

迭代操作5:

xi= (m(15-(3i+1mod5)<<<5)+ xi, i=0,…,4。

迭代操作6:

xi= (m(10-(3i+1mod5)<<<5)+ xi, i=0,…,4。

迭代操作7:

xi= (m(5-(3i+1mod5)<<<5)+ xi, i=0,…,4。

迭代操作8:

x0=( m0<<<5)+ x0,

x1=(( m3⊕m15⊕m11⊕m7)<<<5)+x1,

x2=(( m2⊕m14⊕m10⊕m6)<<<5)+x2,

x3=(( m1⊕m13⊕m9⊕m5)<<<5)+x3,

x4=(( m0⊕m12⊕m8⊕m4)<<<5)+x4。

第3轮:消息嵌入情况(映射变换及耦合扩散迭代的方式仍与第1轮相同)。

迭代操作9:

xi= (m(15-i)<<<9)+ xi, i=0,…,3。

x4=(( m3⊕m14⊕m9⊕m4)<<<9)+x4。

迭代操作10:

xi= (m(11-i)<<<9)+ xi, i=0,…,3。

x4=(( m2⊕m13⊕m8⊕m7)<<<9)+x4。

迭代操作11:

xi= (m(7-i)<<<9)+ xi, i=0,…,3,

x4=(( m0⊕m15⊕m10⊕m5)<<<9)+x4。

迭代操作12:

xi= (m(3-i)<<<9)+ xi, i=0,…,3。

x4=(( m1⊕m12⊕m11⊕m6)<<<9)+x4。

④ 对剩下的消息块继续②~③的操作,直到最后一块。

⑤ 最后输出160bit的散列值:x0|| x1|| x2|| x3||x4。

上述算法有以下特点。

1) 用扩展整数帐篷映射取代传统的逻辑函数。传统的散列函数在混合运算中采用了逻辑函数(轮函数)。以MD5为例,在压缩函数的设计中,为了实现消息的扩散与混淆,主要采用了4个基本逻辑函数。在这些逻辑函数中,多个不同的输入会产生相同的输出,称之为逻辑函数的值碰撞。以f1=f(A,B,C)=(A∧B)∨(∧C)为例,输入为(0,0,0)、(0,1,0)、(1,0,0)、(1,0,1)时,输出为 0;输入为(0,0,1)、(0,1,1)、(1,1,0)、(1,1,1)时,输出为1。由于逻辑函数的值碰撞,使压缩函数内部可能产生差分收敛性。王小云等正是利用逻辑函数的这一特性来控制差分的收敛,并结合整数模减差值表达式多样性、左循环移位差值传递特性及比特修改与 2-block碰撞攻击技术找到了MD5算法的碰撞实例。

扩展整数帐篷映射具有均匀分布性及良好的非线性特征,并且实现简单,运算速度快,但它是单变量间的1-1映射,不存在值碰撞问题。另外,传统的散列函数中,消息是不能注入逻辑函数的,否则,在逻辑函数中即可产生消息碰撞。而在TDHA算法中,帐篷映射不会导致消息碰撞,因而消息可直接注入扩展整数帐篷映射中,即消息注入时就进行了非线性变换,增强了算法的不可逆性。

2) 扩展整数帐篷映射引发动态强差分扩散。传统的散列函数(MD5、SHA-1等)的扩散机制是由模32加和按位进行的布尔操作的混合运算实现的,每一比特的变化只有通过移位或进位操作来影响其他的位。TDHA算法仍具有逻辑移位及模32加的扩散机制,尤为重要的是,每一次映射变换除了能使状态变量左移一位之外,最高比特位的差分特性还将引发该状态变量产生最大的扩展码字重量,称这种现象为状态变量内部的动态强差分扩散。在 3轮操作中,通过循环移位及耦合扩散,每一消息比特差分均有机会触发动态强差分扩散。此外,TDHA算法用动态参数项取代了传统散列函数中所使用的常数,消息差分可以引发动态参数项产生不同的演化过程,这一过程发生在不同的状态变量之间,因而我们称之为状态变量间的动态强差分扩散。

对压缩函数的内部结构进行密码分析,目前最有效的方法是王小云等提出的模减差分分析方法。该方法构造有效的差分路线的主要思想是去抵消由于消息差分引起的扩散。差分攻击的复杂度与压缩函数中消息的差分扩散程度成正比,因此差分扩散程度越大,构造的碰撞差分路线的导出条件就越多。TDHA算法引入动态强差分扩散机制,加速了差分扩展,使只修改少数几位就能产生一个碰撞的概率变得更小,对“差分路线”形成一道难以逾越的屏障。

3) 关于动态参数项的说明。在传统散列函数中,一般均含有固定的常数项。以 MD5为例,除了4个初始状态(A,B,C,D)外,另外还有64个常数Ti(Ti=232abs(sin(i),1≤i≤64),在MD5算法的64步混合操作中,每步依次使用一个常数,因此,每步操作使用的常数是固定不变的。文献[15]提出变参数概念,并对 MD5算法进行了改进。方法是:构造一个参数表T(T[0], …,T[256]),利用消息序列的前68个字节(不足时补0)生成一个68字节的索引序列I(I[0], …,I[67]),在索引序列I与参数表T之间利用一个映射,实现参数的动态提取。该方法将MD5算法中的静态常数项变成了动态参数。但该算法存在以下几个问题:① 变参仅由消息序列的前68个字节决定,也就是说,对68个字节以后的消息差分而言,并不引起参数项的变化;② 攻击者可以从参数表T中先选定一组自己所期望的参数,然后根据映射关系逆推消息序列的前 68个字节,这样,对攻击者而言,又转化为对固定常数项的MD5算法的攻击;③ 为了实现参数可变,需要一个扩展的参数表,新定义一个标志数组,还需要生成一个索引序列,因而资源消耗较多。

设计散列函数的一个基本准则是明文消息每比特的变化均能引起散列值中近 50%比特发生改变。因此,如果使参数项的取值与明文消息每比特的变化均相关,无疑对提高散列函数的安全性是极为有利的。TDHA算法只选定5个初始参数,利用扩展整数帐篷映射的位逻辑判定功能,通过循环移位方式控制动态参数的演化过程,增强了参数项与明文差分的关联度,而编程实现又极为简单。表 2给出迭代过程中,参数的动态演化过程。限于篇幅,表中只列出部分动态参数值。从表2中的数据可看出,明文消息改变一个比特,就会引起动态参数的演化过程发生很大变化。

4) 对MD结构的改进。基于MD结构的散列函数一般形式如图2所示。

图2 基于MD结构的散列函数

基于MD结构的散列函数具有简单、高效和支持流处理技术等特点。但近年的研究发现,基于MD结构来构造散列函数存在严重的安全缺陷。由于MD结构的散列函数采取迭代级联方式,只要出现了碰撞而且余下的输入一样,那么散列值就一定相同,若消息 m和m′有相同的散列值,则对任意的X,有h(m||X)=h(m′||X)。针对这一安全隐患,甚至可以构造出具有实际意义的碰撞实例。为了解决这种部分消息碰撞问题,文献[16]提出采用并行层叠方式来扩展中间状态。但这种改进方式是以降低执行效率为代价的。本文提出的TDHA算法,除了有5个32bit的字组成的160bit的中间状态变量,另外还有 5个动态演化参数,前级的输出状态H(160bit)及动态参数演化结果K分别作为后级的初始向量及动态参数的初始值(如图3所示),若消息m和m′有相同的散列值,但动态参数演化结果K和K′不同,则对任意的X,显然h(m||X)与h(m′||X)不会发生碰撞,只有消息 m和m′有相同的散列值,且动态参数演化结果 K和K′也相同的情况下,对任意的 X,才会有 h(m||X)=h(m′||X)。显然,由于引入动态参数,在无需扩展中间状态的情况下,提高了散列函数抵抗部分消息碰撞攻击的能力。

表2 动态参数的演化过程

图3 TDHA的迭代结构

5) TDHA算法秉承了传统散列算法描述简单,易于实现的设计理念,借鉴并改进了混沌密码学研究中广泛采用的帐篷映射模型,将其从实数域变换到整数域中,利用其拉伸与折叠的非线性本质及均匀分布特性实现消息的混淆与扩散。算法全部采用基于 32bit操作数的一些简单位操作,便于软硬件高速实现。

6) 传统散列函数的操作步只能用串行方式实现,TDHA算法的压缩函数内部的迭代结构与MD5、SHA-1等不同,适应于并行方式实现。

4 非线性扩散特性的统计分析

密码算法的混淆与扩散程度可以通过非线性扩散特性的统计检测给出一个概率上的结论。用统计方法对密码算法的非线性扩散程度进行分析通常要包括算法的完全性、雪崩效应及严格雪崩准则等方面。按文献[17]的定义:完全性是指函数输出值的每一个比特都与消息输入的所有比特有关,雪崩效应是指消息输入中任意一个比特的改变都应造成输出平均半数比特的改变,严格雪崩准则是指消息输入中任意一个比特的改变都会造成输出的每一个比特以1/2的概率发生改变。

设H是一个n bit输入、m bit输出的散列算法,输入向量为x=(x1,…,xn)∈(0,1)n,仅改变x的第i bit后的输入向量为x(i)∈(0,1)n。它们经过压缩映射后对应的输出向量分别记为 H(x)、H(x(i))∈(0,1)m。

(·)j表示向量的第 j bit,w(·)表示向量的汉明重量,#{·}表示集合的势。设X为散列算法输入的样本空间,记 aij=#{x∈X| (H(x))j≠(H(x(i)))j}(其中i=1,2, …,n; j=1,2, …,m)表示X中的输入向量x和x(i)对应的输出向量之间第j bit不同的个数;bij=#{x∈X|w(H(x(i))-H(x))=j}(其中 i=1,2,…, n;j=1, 2,…,m)表示X中的输入向量x和x(i)对应的输出向量之间的差分汉明重量为j的个数。定义3个统计度量:

完备性程度的度量:

雪崩效应程度的度量:

严格雪崩程度的度量:

若 H(·)是随机变换,zα/2表示标准正态分布的α/2分位点,文献[18]给出如下结论:

1) 测试的样本量X至少应为nm(zα/2)2;

2) p(dc)=1-2-#X≈1.0;

这里有必要指出:理想的散列函数应该是从所有可能的输入值到有限可能的输出值集合的一个随机映射。严格地讲,像随机映射这样的散列函数是不存在的。因为散列函数是确定性的,而确定性和均匀输出特性意味着输出的熵大于其输入的熵。但根据香农熵理论,一个确定性函数决不可能放大熵。本文的设计目标是使散列函数与随机映射在概率分布上无法区分。一个实际的散列函数,测试其统计量dc、da、dsa,若落入其置信区间,则说明散列算法满足非线性扩散的基本要求,即可以认为散列函数具有很好的完全性和雪崩效应,满足严格雪崩准则。

取输入长度n=512bit,输出长度m=160bit,在显著水平α=0.05下,理论上得到如下结果:

1) zα/2=1.92, 选取样本容量X为320 000;

2) dc=1.000 000;

3) E{da}=0.999 888,其置信区间为(0.999 876,0.999 900);

4) E{dsa}=0.998 589;其置信区间为(0.998 577,0.998 601 2)。

在上述条件下,随机选取320 000组512bit字(取自Visual C的Rand())的样本集X作为TDHA算法的消息输入,实际的测试结果如表3所示。

从表3可以看出,在显著水平α=0.05的情况下,TDHA算法在迭代7拍之后统计量dc、da、dsa落入了各自的置信区间,从而满足了散列算法非线性扩散性的基本要求。需要指出的是,为便于软硬件高速实现,TDHA算法采取了并行迭代结构。而传统的散列函数(MD5, SHA-1等)若改用并行结构,则很难满足扩散性要求。

表3 TDHA算法扩散性能的逐拍统计结果

5 抗碰撞性分析

散列函数的值域与定义域相比规模要小得多,是“多对一”映射。找出2个不同的消息,使其产生相同的散列结果称为碰撞攻击。通过以下的实验来定量测试本文算法的抗碰撞能力[9]:在明文空间中随机选取一段明文求出其散列值,并以单字节字符的方式来表示,然后随机地选择并改变明文中1bit的值得到另一新的散列结果。定义2个散列值之间的距离为

其中,ei和ei′分别是最初的和新的散列值的第 i个字符,S为散列值对应字符的个数,函数 t(·)将 ei和ei′转换成对应的十进制数。若2个散列值分别由2个独立的均匀分布的随机序列所组成,则理论上散列值的单位字符的平均距离为85.33[9]。

取输入长度n=512bit,随机选择输入样本,测试其输出的单位字符的平均距离。经 10万次统计测试,得到实际的测试结果如表4所示。

从表4可以看出,TDHA算法在迭代7拍之后,其输出的单位字符的平均距离趋于稳定,并且与理论值十分接近。这一测试结果表明,仅有1bit不同的2个明文所得到的2个散列值统计上由相互独立的2个均匀随机序列构成。因此,依据本概率模型,无法将TDHA算法与随机映射相区分。

表4 TDHA算法抗碰撞性的逐拍统计结果

6 TDHA算法的速度

TDHA与 SHA-1都输出 160bit的散列值。SHA-1算法作4轮计算,共计80步混合操作,总共进行224次循环移位,每步混合操作需要进行一次逻辑函数计算;TDHA算法作3轮计算,共计60步混合操作,总共约进行190次循环移位,每步混合操作需要进行一次整数帐篷映射计算。表5给出了在P4、2.0GHz主频条件下,3种散列函数(TDHA,MD5,SHA-1)用 C语言实现的速度测试结果。从表5可见,TDHA算法已接近MD5算法的速度,比SHA-1算法明显要快。另外,TDHA算法的内部迭代结构使得它易于并行实现,多处理器环境下,在时间性能上有较大的提升空间。

表5 3种散列函数的速度比较

7 结束语

鉴于目前传统散列函数的安全性受到严重威胁,本文主要对散列函数的设计思想进行了一些新的探索,改进了传统散列函数的设计准则,一方面提高了散列函数的性能,另一方面,也避免了散列算法设计总是走近亲路线的现状。作者希望这些探索能对新的散列函数标准的建立有一定指导意义。

现有的散列函数中,MD5是4轮,SHA-1是4轮,RIPEMD是5轮,HAVAL轮数可变(3到5轮)。本文之所以给出3轮的TDHA算法,除了兼顾算法的执行效率外,同时也考虑到以下因素:人们在进行散列函数的分析与攻击中,对于多轮的散列函数,总是首先采用降低轮数的办法来进行。对于大于 3 轮的散列函数,如果降低到 3轮后是不安全的,则该散列函数的安全性也是难以令人信服的,至少可以认为其设计准则存在某些缺陷。

非线性扩散特性分析及抗碰撞性分析结果表明,本文给出的3轮TDHA算法已具有很强的安全性,用统计方法无法将其与真正的随机函数相区分。TDHA算法实现简单,并且有明显的执行效率上的优势。在今后的改进版本中,将对算法进行优化,通过引入消息扩展机制及增加轮数的办法,进一步提高算法的安全性。

[1] WANG X Y, FENG D G, LAI X J, et al. Collisions for hash functions MD4, KD5, HAVAL-128 and RIPEMD[A]. Advances in Cryptology-CRYPTO 2004:The 24rd Annual International Cryptology Conference[C]. Berlin:Springer-Verlag, 2004.

[2] LUCKS S, DAUM M. The story of alice and her boss: hash functions and the the blind passenger attack[A]. Rump Session of Eurocrypt’05[C].2005.

[3] WANG X Y, YIN Y L, YU H B. Finding collisions on the Full SHA-1[A]. Advances in Cryptology--Crypto’05[C]. LNCS 3621, 2005.17-36.

[4] DAMGARD I. A design principle for hash functions[A]. Advances in Cryptology:CRYPTO89[C]. volume 435 of Lecture Notes in Computer Science. Springer- Verlag, 1989.416-427.

[5] WONG K W. A combined chaotic cryptographic and hash ing scheme[J]. Phys Lett A, 2003,307:292-298.

[6] YI X. Hash function based on chaotic tent maps[J]. IEEE Transactions on Circuits and Systems-Ⅱ: Express briefs,2005,52(6):354-357

[7] 刘军宁, 谢杰成, 王普. 基于混沌映射的单向散列函数构造[J]. 清华大学学报, 自然科学版,2000,40(7): 55-58.LIU J N , XIE J C, WANG P .One way hash function construction based on chaotic mappings[J]. Journal of Tsinghua University, Science& Technology, 2000,40(7):55-58.

[8] XIAO D, LIAO X F, DENG S J. One-way hash function construction based on the chaotic map with changeable- parameter[J]. Chaos, Solitons and Fractals,2005,24:65-71.

[9] 盛利元, 李更强, 李志炜. 基于切延迟椭圆反射腔映射系统的单向散列函数构造[J]. 物理学报, 2006,55(11):5700-5706.SHENG L Y, LI G Q, LI Z W. One-way hash function construction based on tangent-delay ellipse reflecting cavity-map system[J]. Acta Physica Sinica, 2006,55(11):5700-5706.

[10] LI S J, MOU X Q, et al. On the security of a chaotic encryption scheme: problems with computerized chaos in finite computing precision[J]. Computer Physics Communications, 2003, 153:52-58.

[11] 王继志,王英龙,王美琴. 一类基于混沌映射构造散列函数方法的碰撞缺陷[J]. 物理学报,2006,55(10):5048-5054.WANG J Z, WANG Y L, WANG M Q. The collision problem of one kind of methods for constructing one-way hash function based on chaotic map[J]. Acta Physica Sinica, 2006,55(10):5048-5054.

[12] LIU J D. One-way hash function construction based on integer coupled tent maps[A]. International Symposium on Computer Science and Technology[C]. Ningbo, China, 2007.

[13] 刘建东,余有明. 基于可变参数双向耦合映像系统的时空混沌散列函数设计[J]. 物理学报, 2007,56(3):1297-1304.LIU J D, YU Y M. A TCML-based spatiotemporal chaotic one-way散列 function with changeable-parameter[J]. Acta Physica Sinica,2007, 56(3): 1297-1304.

[14] 刘建东, 付秀丽. 基于耦合帐篷映射的时空混沌单向散列函数构造[J]. 通信学报,2007,28(6):30-38.Liu J D, Fu X L. Spatiotemporal chaotic one-way hash function construction based on coupled tent maps[J]. Journal on Communications,2007,28(6):30-38.

[15] HSIEH T M, YEH Y S, LIN C H, et al. One-way hash function with changeable parameter[J]. Information Sciences, 1999,118:223-239.

[16] LUNCKS S. Design principles for iterated hash functions[EB/OL].E-print Archive. http://eprint.iacr.org/ 2004/253.pdf, 2004.

[17] WEISTER A F, TAVARES S E. On the design of S-boxes[A]. Advances in Cryptology-CRYPTO’85[C]. Berlin: Springer-Verlag, 1986.523-533.

[18] 朱明富, 张宝东, 吕述望. 分组密码算法扩散特性的一种统计分析[J].通信学报, 2002,23(10):122-128.ZHU M F, ZHANG B D, LV S W. A statistical method of blockcipher on diffusion & propagation[J]. Journal on Communications,2002,23(10):122-128.

猜你喜欢

整数帐篷差分
RLW-KdV方程的紧致有限差分格式
今晚,我要睡在帐篷里
帐篷里的笑声
“帐篷节”开始啦
数列与差分
一类整数递推数列的周期性
搭在水上的帐篷
基于差分隐私的大数据隐私保护
相对差分单项测距△DOR
答案