一种基于耦合混沌映射的消息完整性认证方法

文档序号:7767839阅读:202来源:国知局
专利名称:一种基于耦合混沌映射的消息完整性认证方法
技术领域
本发明涉及信息安全技术领域,涉及用于消息完整性认证的方法。
背景技术
面对互联网中各种各样的威胁与攻击,信息的接收方有必要对其收到的或保存的 信息进行完整性检验,验证消息在传送或存储过程中是否被篡改、删除或插入等。通常要对 认证的消息进行散列处理,输出具有固定长度的散列值(也称消息摘要),作为消息完整性 认证的依据。假定通信双方A与B,A向B发送消息时计算散列值,并把消息和散列值发送 给B ;B对收到的消息进行相同的散列运算,得到新的散列值,并将接收到的散列值与B计算 出的散列值进行对比,如果相同则B可以确信消息的来源和未被篡改。如果散列值由通信 双方指定的一个密钥来控制,消息的散列值也称为消息认证码。一个安全的认证码的产生要满足(1)具体的操作方法是公开,唯一需要保密的是 密钥;(2)任意长度的消息产生具有固定长度的认证码;(3)给定操作方法、消息和密钥, 要求容易得到认证码;(4)给定方法和消息,在不知道密钥的条件下,很难得到正确的认证码。在传统密码学中,产生认证码的方法通常基于已有的散列方法,比如HMAC,也可以 基于分组加密方法,或者基于泛散列函数族方法,因此其安全性常依赖于这些基础密码本 身。本发明特制了一个全新的、基于耦合混沌映射的完整性认证方法,独立于已有的散列方 法和加密方法。其主要特点是采用一维耦合混沌映射系统,输入消息与密钥作为混沌映射 系统的参数,通过耦合混沌映射系统有限次的迭代操作,可以使消息和密钥达到足够的混 乱与扩散,产生随机分布、不重复的散列值(认证码),保证了该方法的安全性和软件实现 运算速度快的特性。

发明内容
本发明的目的是设计一种消息完整性认证方法,其过程特征在于以下处理步骤Al)消息发送者产生初始链接值和保密的认证密钥;A2)消息发送者把认证密钥、初始链接值和消息输入以下散列方法中,生成认证 码,具体的步骤是A2. 1)进行消息整形,把消息通过填充补位后进行分组;A2. 2)进行密钥扩展,把256比特的认证密钥K扩展成IOM比特的子密钥;A2. 3)进行参数生成,输入IOM比特的分组消息和扩展子密钥,产生一维耦合映 射系统的两组参数;A2. 4)进行消息压缩,把输入的IOM比特消息压缩,输出256比特;A2.5)依次处理所有消息分组,并对最后分组的输出值进行变换,输出消息认证 码;A3)消息发送者把初始链接值、保密的认证密钥、消息和消息认证码发给消息接收者;A4)消息接收者把认证密钥、初始链接值和消息输入散列方法中,重复步骤A2中 每个步骤,生成消息认证码;A5)消息接收者根据步骤A4所生成的认证码和接收到的认证码进行消息完整性 认证,如果两者一致,证明接收到的消息是完整的;如果两者不一致,证明接收到的消息是 不完整的。在步骤Al)中,消息发送者产生初始链接值H。,Htl由8个初始变量hQ(j)组成H。= Ih0(IhhtlO),...,h。(8)},每个h。(j)都是属于
/231,i = l,2,3,4j =1,2,...,8其中操作 是按比特位异或,操作χ >>> y表示对χ右循环移位y比特。在步骤A2)消息认证码的产生过程中,步骤A2. 4)压缩过程是把输入的IOM比特 消息压缩,输出256比特,所述方法由下述的一维耦合映射系统和非线性变换实现A2. 4. 1) 一维耦合混沌映射系统的动力学表示为xn+1 (j) = ^(Bljj, xn0))+^( ,^, xn(j+l))+^ (B3jjm, xn(j-l))(1)+f2(a4jJ+4, cJ+4, xn(j+4))modl, j = 1,2,...,8xn+2 (j) = Kb1, j,Xntl(J))+^ (b2jJ+1, x^U+l))+^ ^3jjm, xn+1(j-l)) (2)+f2(b4jJ+4, cJ+4, xn+1(j+4))modl, j = 1,2,...,8其中η为离散时间迭代步数,j为格点坐标,格点长度为8,对所有参量使用周期边 界条件;f\ (a, χ) = ax (1-x)是逻辑斯蒂映射,当a > 3. 57时,逻辑斯蒂映射是混沌的;f2 (a, c, χ) = ax+c ;Cl = 0. 1,c4 = 0.2,其他Cj = 0 ;参数屮,」和by由步骤A2. 3)得到;在参数
和I^j所取的范围内,一维耦合映射系统是一个混沌系统;依次执行式(1)和次得 到输出变量^(j),j = 1,2,...,8 ;当迭代次数不等于4和8次,即r兴4和r兴8时,输 出变量直接反馈执行⑴和⑵迭代操作,当迭代次数等于4和8次,S卩r = 4和r =8时,输出变量执行A2. 4. 2)非线性变换;所述的一维耦合映射系统,进一步包括以下两种情况对于第一个消息分组M1,式(1)的初始值定义为x0(j) = h0(j)/232,j = 1,2, ... ,8其中h0(j)是在步骤Al)中消息发送者选定的初始链接变量Htl,即Htl= {h0(l), h0(2), ... ,h0(8)};对于第i个(i > 1)消息分组Mi,式(1)的初始值定义为x0(j) = h^(j)/232, j = 1,2, · · ·,8,i = 1,2, · · ·,t其中hH(j)是对第(i-Ι)个消息分组Mh压缩过程计算输出的中间变量Hh,即 Hi^1 = ^(1),^^(2),...,^^(8)1,^^^0)都是属于
h(j) = k(j)+ht(j)按顺序输出消息认证码h(l)h(2). . · h⑶。本发明具有以下优点(1).输入消息与扩展子密钥作为混沌系统的参数,并对混沌变量采用非线性变 换,增加了理论计算攻击的难度,有效地增强了系统安全性。(2).具有高的消息处理速度。(3).该方法易于软件实现。


图1是压缩方法示意图。图2是产生认证码示意图。 图3是消息只改变一个比特位,认证码的变化。图4是密钥只改变一个比特位,认证码的变化。图5是初始值只改变一个比特位,认证码的变化。
具体实施例方式下面结合附图和实例对本发明作进一步详细说明,完整性认证的具体构造方法包 括如下五个步骤Bi)消息发送者产生初始链接值和保密的认证密钥;B2)消息发送者把认证密钥、初始链接值和消息输入以下散列方法中,生成认证 码,具体的步骤是B2. 1)进行消息整形,把消息通过填充补位后进行分组;B2. 2)进行密钥扩展,把256比特的认证密钥K扩展成IOM比特的子密钥;B2. 3)进行参数生成,输入IOM比特的分组消息和扩展子密钥,产生一维耦合映 射系统的两组参数;B2. 4)进行消息压缩,把输入的IOM比特消息压缩,输出256比特;B2. 5)依次处理所有消息分组,并对最后分组的输出值进行变换,输出消息认证 码;B3)消息发送者把初始链接值、保密的认证密钥、消息和消息认证码发送给消息接 收者;B4)消息接收者把认证密钥、初始链接值和消息输入散列方法中,重复步骤B2中 每个步骤,生成消息认证码;B5)消息接收者根据步骤B4所生成的认证码和接收到的认证码进行消息完整性 认证,如果两者一致,证明接收到的消息是完整的;如果两者不一致,证明接收到的消息是 不完整的。在步骤Bi)中,消息发送者产生初始链接值H。,Htl由8个初始变量hQ(j)级联组成 H0= Ih0(IhhtlQ),...,hQ (8)},每个h。(j)都是属于
在步骤B2)消息认证码的产生过程中,步骤B2. 1)消息整形是指把消息通过填充 补充位,并添加128比特长度的原文长度信息,使消息长度为分组长度的整数倍;每组消息 固定为IOM比特,整形后原文消息长度为IOMt比特,t为整数;消息分组为M1, M2,..., Mt;所述的由原文消息生成整形消息的过程,进一步包括对输入的原始消息进行填充补位,以使其补位后的消息长度在对IOM取模后的 余数是896,补位是先补一个1再补0,直到长度满足对IOM取模余数是896,补位至少补一 位,最多补IOM比特,即使长度已经满足对IOM取模余数是896,补位也必须要进行;然后 补长度,补一个128比特长度的数据来表示原始消息的长度,补到已经进行了补位操作的 消息后面;最后整个消息按顺序分成一个个IOM比特的消息分组数据块M1,M2,. . .,Mt,用t 表示消息整形后的最终分组数目;每组消息Mi可用32个整数表示,Mi= {m(l),m(2),..., m(32)},每个m(j)都是属于
/231,i = 1,2,3,4,j = 1,2,...,8其中操作 是按比特位异或,操作χ >>> y表示对χ右循环移位y比特。
在步骤似)消息认证码的产生过程中,步骤B2. 4)压缩过程是把输入的IOM比特 消息压缩,输出256比特,所述方法由一维迭代耦合映射系统和非线性变换实现(如图1所 示)B2. 4. 1) 一维耦合映射系统的动力学表示为xn+1 (j) = ^(Bljj, xn(j))+^(B2jjtl, xn(j+l))+^ (B3jjm, xn(j-l))(3)+f2(a4jJ+4, cJ = 4,xn(j+4))modl, j = 1,2,...,8xn+2 (j) = Kb1, j,Xntl(J))+^ (b2jJ+1, x^U+l))+^ ^3jjm, xn+1(j-l)) (4)+f2(f4,J+4, cJ+4, xn+1(j+4))modl, j = 1,2,· · ·,8其中η为离散时间迭代步数,j为格点坐标,格点长度为8,对所有参量使用周期边 界条件;f\ (a, χ) = ax (1-x)是逻辑斯蒂映射,当a > 3. 57时,逻辑斯蒂映射是混沌的;f2 (a, c, χ) = ax+c ;Cl = 0. 1,c4 = 0.2,其他Cj = 0 ;参数屮,」和by由步骤B2. 3)得到;在参数
和I^j所取的范围内,一维耦合映射系统是一个混沌系统;依次执行式C3)和次得 到输出变量^(j),j = 1,2,...,8 ;当迭代次数不等于4和8次,即r兴4和r兴8时,输 出变量直接反馈执行⑶和⑷迭代操作,当迭代次数等于4和8次,S卩r = 4和r =8时,输出变量&Jj)执行B2. 4. 2)非线性变换;所述的一维迭代耦合映射系统,进一步包括以下两种情况对于第一个消息分组M1,式(3)的初始值定义为x0(j) = h0(j)/232, j = 1,2, ... ,8其中hQ(j)是在步骤Bi)中消息发送者选定的初始链接变量H。,即Htl= {h0(l), h0(2), ... ,h0(8)};对于第i个(i > 1)消息分组Mi,式(3)的初始值定义为x0(j) =、_山_)/232,j = 1,2,…,8,i = 1,2, · · ·,t其中hH(j)是对第(i-Ι)个消息分组Mh压缩过程计算输出的中间变量Hh,即 Hi^1 = ^(1),^^(2),...,^^(8)1,^^^0)都是属于
10101001101110001100011011101100
11010100111001010111111001010101
01101100100011100101101011100001
11011101111110011101011000000001
10100001110111001101110100110100
10110000010110110110110001000000
11110110011011001100110000101111 图3显示了异或后的256比特值,约50%的比特位发生了变化,表明认证码具有很 好的随机性。 仅改变密钥K中的k (1),其他密钥值不变,k (1)由“ 1”变到“0”,信息"abc"和初 值 H。不变,得到 256 比特的认证码 eaafdbc8 75e6ef59 7dle3eda99ba7fc0 5de9720e 79333fa9 3e4e4d85 b7b95!Mb,和图3类似,图4显示了认证码具有很好的随机性。仅改变初值H0中的h0 (1),其他初始值不变,h0 (1)由“51ff5c”变到“51ff5d”,信 息“abc”和密钥K不变,得到256比特的认证码eclb8616 a3f7f9e2 4ad40e7055e31abd a6df20fb cd98582d lad38158 367c4k2,和图3类似,图5显示了认证码具有很好的随 机性。本发明方法提供了一种消息完整性认证的方法,可用于软件编程实现,有较快的
处理效率。以上所述为本发明的较佳实施例而已,但本发明不应该局限于该实施例。所以凡 是不脱离本发明所公开的精神下完成的等效或更改,都落入本发明保护的范围。表1双精度浮点表示的参数by
权利要求
1.一种消息的完整性认证方法,其过程特征在于以下处理步骤 Al)消息发送者产生初始链接值和保密的认证密钥;A2)消息发送者把认证密钥、初始链接值和消息输入以下散列方法中,生成认证码,具 体的步骤是A2. 1)进行消息整形,把消息通过填充补位后进行分组; A2. 2)进行密钥扩展,把256比特的密钥K扩展成IOM比特的子密钥; A2. 3)进行参数生成,输入消息和扩展子密钥,产生一维耦合映射系统的两组参数; A2. 4)进行消息压缩,把输入的IOM比特消息压缩,输出256比特; A2. 5)依次处理所有消息分组,并对最后分组的输出值进行变换,输出消息认证码; A3)消息发送者把初始链接值、保密的认证密钥、消息和消息认证码发给消息接收者; A4)消息接收者把认证密钥、初始链接值和消息输入散列方法中,重复步骤A2中每个 步骤,生成消息认证码;A5)消息接收者根据步骤A4所生成的认证码和接收到的认证码进行消息完整性认证, 如果两者一致,证明接收到的消息是完整的;如果两者不一致,证明接收到的消息是不完整 的。
2.根据权利要求1所述的一种完整性认证方法,其特征在于所述的步骤Al)中,消息发 送者产生初始链接值H。,H。由8个初始变量h0 (j)级联组成H0 = {hQ (1),hQ (2),. . .,h0 (8)}, 每个h^j)都是属于
/231, i = 1,2,3,4, j = 1, 2,...,8其中操作 是按比特位异或,操作χ >>> y表示对χ右循环移位y比特。
6.根据权利要求1所述的一种完整性认证方法,步骤A2.4)压缩过程是把输入的IOM 比特消息压缩,输出256比特,所述方法由一维迭代耦合映射系统和非线性变换实现A2. 4. 1) 一维迭代耦合映射系统的动力学表示为xn+i (J") = fi (Blj j, xn(j))+fi (a2jJ+1, xn(j+l))+f1 (B3jjm, xn(j-l))(1)+f2 (a4, J+4, Cj = 4, xn(j+4) )modl, j = 1, 2, . . . , 8 xn+2 (J') = Hj,xn+i(j))+f! (b2jJ+1, xn+1(j+l))+f! ^3jjm, xn+1(j-l)) (2)+f2 (b4, J+4, cJ+4, xn+1 (j+4))modi, j = 1,2, . . . ,8 其中η为离散时间迭代步数,j为格点坐标,格点长度为8,对所有参量使用周期边界条 ^if1 (a, χ) = ax (1-χ)是逻辑斯蒂映射,当a > 3. 57时,逻辑斯蒂映射是混沌的;f2 (a,c, χ) = ax+c ;Cl = 0. l,c4 = 0. 2,其他 Cj = 0 ;参数屮,」和 by,i = 1,2,3,4,j = 1,2,· · ·, 8,由步骤A2. 3)得到;在参数^,」和by所取的范围内,一维耦合映射系统是一个混沌系统; 依次执行式(1)和(2)1~次得到输出变量^^(」),」=1,2,...,8;当迭代次数不等于4和8 次,即r兴4和r兴8时,输出变量^Jj)直接反馈执行⑴和⑵迭代操作,当迭代次数 等于4和8次,S卩r = 4和r = 8时,输出变量x&(j)执行A2. 4. 2)非线性变换; 所述的一维迭代耦合映射系统,进一步包括以下两种情况 对于第一个消息分组M1,式(1)的初始值定义为 X0(J) =h0(j)/232,j = 1,2,... ,8其中hQ(j)是在步骤Al)中消息发送者选定的初始链接变量H。,即Htl= {h0(l), h0(2), ... ,h0(8)};对于第i个(i > 1)消息分组Mi,式⑴的初始值定义为 X0(J) = 11^0)/232, j = 1,2,· · ·,8,i = 1,2,· · ·,t其中hH(j)是对第(i-Ι)个消息分组Mh压缩过程计算输出的中间变量Hg,即Hh = Ov1⑴,V1 (2), . . . , V1⑶},每个V1 (j)都是属于[0,232)区间上的整数;A2. 4. 2)非线性变换是把上述步骤A2. 4. 1)中的模拟信号^c2Jj)进行两次非线性变换, 所述的非线性变换的过程,进一步包括对于第4次迭代,即r = 4时,依据以下公式对输出变量(J)进行非线性操作 x2r(j) = Oc2r(j) X 250 mod232)/232,j = 1,2,· · ·,8所述上式首先把双精度实数&Jj)放大25°倍,然后取模232,得到32比特长的整数(模 数转换),最后再转化为双精度实数;对于第8次迭代,即r = 8时,依据以下公式对其进行非线性操作,并得到中间变量Hi =Ihi(I),^ (2),... (8)}^ (j) = x2r (j) X 250 mod232,j = 1,2,· · ·,8,i = 1,2,· · ·,t所述上式首先把双精度实数放大25°倍,然后取模232,得到32比特长的整数 比(j)。
7.根据权利要求1所述的一种完整性认证方法,步骤A2. 5)依次处理所有消息分组,对 所有分组M1, M2, ...,Mt按分组顺序重复执行步骤A2. 3)、A2. 4),直到最后一个消息分组Mt 处理结束,得到输出值 Ht = {ht(l),hj2),...,ht(8)},每一个 ht(j),j = 1,2,...,8,都是 属于W,232)区间上的整数;并对256比特输出值Ht与256比特的密钥K进行模232加 h(j) = k(j)+ht(j)按顺序输出消息认证码h(l)h(2)...h (8)。
全文摘要
本发明公开了一种消息完整性认证方法。本方法为1)消息发送者产生初始链接值和保密的认证密钥;2)发送者把认证密钥、初始链接值和消息输入散列方法,输出消息认证码,该散列方法采用一维耦合混沌映射系统,输入消息与扩展子密钥作为混沌系统的参数,通过混沌系统有限次的迭代操作,可以使消息和密钥达到足够的混乱与扩散,产生随机分布、不重复的散列值(认证码);3)发送者把初始链接值、认证密钥、消息和认证码发给消息接收者;4)接收者把认证密钥、初始链接值和消息输入散列方法中,生成消息认证码;5)接收者根据步骤4)所生成的认证码和接收到的认证码进行消息完整性认证,如果两者一致,证明接收到的消息是完整的。该方法具有强的安全性和易于软件实现的特性。
文档编号H04L9/32GK102082668SQ20101057633
公开日2011年6月1日 申请日期2010年12月7日 优先权日2010年7月16日
发明者李达, 王世红, 胡岗 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1