【摘要】 一种涉及信息系统安全工程技术的基于整数非线性映射的散列函数构造方法,包括以下步骤:(1)消息填充;(2)设定一组初始向量及参数;(3)对消息分组进行非线性分段式码字扩展;(4)采用耦合映像系统模型进行并行式混合迭代运算,实现扩展码字与链接变量的混淆与扩散;(5)可变长度散列输出。本发明的散列函数构造方法多用于数字证书,电子签名,口令保护,数字完整性验证等领域,采用了非线性分段式码字扩展技术,加速了码字的非线性扩散程度,将整数非线性映射与逻辑函数相结合,具有较为理想的混淆与扩散特性,本发明压缩函数内部采用并行迭代结构,有利于软硬件高速并行实现,构造方法运算效率高,易于修改补充和维护。 【专利类型】发明申请 【申请人】北京石油化工学院 【申请人类型】学校 【申请人地址】102617 北京市大兴区清源北路19号 【申请人地区】中国 【申请人城市】北京市 【申请人区县】大兴区 【申请号】CN200810226116.1 【申请日】2008-11-14 【申请年份】2008 【公开公告号】CN101741560A 【公开公告日】2010-06-16 【公开公告年份】2010 【授权公告号】CN101741560B 【授权公告日】2014-07-02 【授权公告年份】2014.0 【IPC分类号】H04L9/32; H04L9/30 【发明人】刘建东 【主权项内容】1.一种基于整数非线性映射的散列函数构造方法,包括下列步骤: (1)消息填充:将任意长度的明文消息M分割成1024比特的消息块M0,...,MI,...,Mt,最后一个块填充为:Mt=*...*10...0Mdlen(H)Length(M),其中:Mdlen(H)表示输出的散列长度,长度为10比特,Length(M)表示M的长度的二进制形式,长度为64比特;将每个消息块Mi划分成两组,每组由16个32比特的消息字组成,分别为m0,m1,...,m15及m′0,m′1,...,m′15; (2)给定一组初始向量及参数: k0=0x5a827999,k1=0x6ed9eba1,k2=0x8f1bbcdc,k3=0xca62c1d6, k4=0x99728a5a,k5=0x1abe9de6,k6=0xcdcbb1f8,k7=0x6d1c26ac; (3)非线性分段式码字扩展: 利用上式对消息字m0,m1,...,m15及m′0,m′1,...,m′15进行消息扩展,先通过循环移位及模加方式进行10次迭代操作,随后再利用非线性映射 进行码字扩展,得到扩展后的码字序列W0,W1...,W63及W′0,W′1,...,W′63;(+表示mod232的加法运算,∨表示逐比特逻辑或,表示逐比特逻辑异或,<<表示左移位操作,>>表示右移位操作,<<<表示循环左移位操作); (4)并行方式的混合迭代运算: 1) 2)For?t=0to?11 {当t为偶数时, k=(t/2)*8+16; Gi=(((xi(-(xi>>31)))<<1)∨(xi>>31))+Wi+ki=0,7 i=0,...,7 当t为奇数时, k=((t-1)/2)*8+16; Gi=(((xi(-(xi>>31)))<<1)∨(xi>>31))+W′i+k?i=0,...,7 3)将x0(0),...,x7(0)分别加到x0,...,x7,即: 4)对剩下的消息块继续2)、3)的操作,直到最后一个消息块; (5)散列输出: 并行迭代结束后,最后的输出结果即为256比特的散列值:x0||x1||x2||x3||x4||x5||x6||x7。根据不同场合的应用需求,通过输出变换,得到输出结果为128,160,192,224或256比特的消息摘要。 【当前权利人】北京石油化工学院 【当前专利权人地址】北京市大兴区清源北路17号北京石油化工学院 【专利权人类型】公立 【统一社会信用代码】12110000400966488R 【被引证次数】25 【被自引次数】3.0 【被他引次数】22.0 【家族引证次数】3.0 【家族被引证次数】25