发明名称 一种认证协议中得到安全消息摘要的方法
摘要 本发明涉及一种改进的SHA-1哈希算法。现有的SHA-1哈希算法安全性不高。本发明方法首先在待处理的消息后面添加一个1、若干个0和一个64比特的二进制串,其次对该消息进行扩大分组,使得原来512bit的分组变为1024bit的分组并初始化存器值;然后利用主循环依次处理每个分组,主循环共有四轮运算,每轮运算中包含逻辑函数和压缩函数处理。最后所有的分组处理完毕后,输出160位的消息摘要,在传输消息摘要时,给待传输的消息摘要添加安全散列值。通过本发明方法,能使原来的SHA-1算法在对消息的处理上具有更高的安全性,并且通过改进该算法的逻辑函数的表达式和压缩函数逻辑结构,提高了SHA-1算法的效率。
申请公布号 CN101872338B 申请公布日期 2012.08.29
申请号 CN201010193116.3 申请日期 2010.06.04
申请人 杭州电子科技大学 发明人 吴卿;张奇锋;倪永军;周兴武;金恭华;赵俊杰;郁伟炜;吴鹏;曾虹
分类号 G06F17/15(2006.01)I;H04L29/06(2006.01)I 主分类号 G06F17/15(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 杜军
主权项 一种认证协议中得到安全消息摘要的方法,其特征在于该方法包括如下步骤:步骤(1)在待处理的消息后面添加一个1和N个0,使消息的长度变成对512求余的结果为448,512≥N≥1;步骤(2)在新得到的消息后面添加一个64比特的二进制串,二进制串的值为消息的原始长度,然后对该消息进行扩大分组,使得原来512bit的分组变为1024bit的分组,即相邻的512bit的分组组成新的1024bit的分组;步骤(3)初始化缓存器值,所述的缓存器值为5个32比特的变量,包括变量A、变量B、变量C、变量D、变量E;步骤(4)利用主循环依次处理每个分组,所述的主循环共有四轮运算,第一轮运算有20次操作,每次操作为:A=B+CB=C+DC=D+ED=E+AE=A+Bf1=(B AND C)OR(NOT B AND D)A,B,C,D,E<‑(E+f1+S5(A)+Wt+Kt),A,S30(B),C,D第二轮运算有20次操作,每次操作为:A=B+CB=C+DC=D+ED=E+AE=A+Bf2=B XOR C XOR DA,B,C,D,E<‑(E+f2+S5(A)+Wt+Kt),A,S30(B),C,D第三轮运算有20次操作,每次操作为:A=B+CB=C+DC=D+ED=E+AE=A+Bf3=(B AND C)OR(B AND D)OR(C AND D)A,B,C,D,E<‑(E+f3+S5(A)+Wt+Kt),A,S30(B),C,D第四轮运算有20次操作,每次操作为:A=B+CB=C+DC=D+ED=E+AE=A+Bf4=(B AND NOT C)XOR DA,B,C,D,E<‑(E+f4+S5(A)+Wt+Kt),A,S30(B),C,D其中B、C和D均表示缓存器值,AND表示与运算,OR表示或运算,NOT表示非运算,XOR表示异或运算,Wt表示第t个分组中待处理的32位字,“+”表示mod232加法,“<‑”表示赋值运算,Sk(A)表示变量A循环左移k位,Kt表示一个用于加法的常量,四轮循环中的值都不同;步骤(5)所有的分组处理完毕后,输出160位的消息摘要,在传输消息摘要时,给待传输的消息摘要添加安全散列值;所述的添加安全散列值的方法为:发送方的工作:(1)产生要发送的消息摘要M;(2)根据该消息摘要M的序列号或者时间戳产生随机分组Si;(3)将Si添加到消息摘要M尾部或者事先约定的其它位置,对添加了随机分组的消息用散列函数计算散列值H(M,Si);(4)将消息摘要M与散列值H(M,Si)一同发送出去;接收方的工作:(1)从接收到的报文中分离出消息摘要M与散列值H(M,Si);(2)根据序列号或者时间戳产生随机分组Si′;(3)将Si′添加到消息摘要尾部或者事先约定的其它位置,对添加了随机分组的消息计算散列值H′(M,Si′);(4)将H′(M,Si′)与接收到的散列值H(M,Si)进行比较,若相等则表明消息没有被修改。
地址 310018 浙江省杭州市下沙高教园区2号大街