[发明专利]一种生成消息摘要的方法有效
申请号: | 200810102536.9 | 申请日: | 2008-03-24 |
公开(公告)号: | CN101247233A | 公开(公告)日: | 2008-08-20 |
发明(设计)人: | 陆舟;于华章 | 申请(专利权)人: | 北京飞天诚信科技有限公司 |
主分类号: | H04L9/32 | 分类号: | H04L9/32 |
代理公司: | 北京三高永信知识产权代理有限责任公司 | 代理人: | 何文彬 |
地址: | 100083北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 生成 消息 摘要 方法 | ||
技术领域
本发明涉及密钥算法领域,特别涉及一种生成消息摘要的方法。
背景技术
在现有信息加密技术中,常见的信息保护手段大致可以分为保密和认证两大类。目前的认证技术有对用户的认证和对消息的认证两种方式,用户认证用于鉴别用户的身份是否是合法用户;消息认证就是验证所收到的消息确实是来自真正的发送方且未被修改的消息,也可以验证消息的顺序和及时性。消息认证实际上是对消息本身产生一个冗余的信息-MAC(Message Authentication Code,消息认证码),消息认证码是利用密钥对要认证的消息产生新的数据块,并对数据块加密生成的。它对于要保护的信息来说是唯一和一一对应的。因此可以有效地保护消息的完整性,以及实现发送方消息的不可抵赖和不能伪造。消息认证码的安全性取决于两点:1)采用的加密算法生成数字签名;2)待加密数据块的生成方法。用消息认证码实现消息认证可通过消息摘要方案来实现。消息摘要通常是利用目前广泛应用的单向散列函数来生成。
安全哈希算法(SHA,Secure Hash Algorithm)主要适用于数字签名标准(DSS,DigitalSignature Standard)里面定义的数字签名算法(DSA,Digital Signature Algorithm)。其SHA1算法就是一种目前广泛应用的单向散列函数,对于长度小于264位的消息,SHA1会产生一个160位即20字节的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。
SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要。SHA1始终把消息当成一个位(bit)字符串来处理。本文中,一个“字”(Word)是32位,而一个“字节”(Byte)是8位。比如,字符串“abc”可以被转换成一个位字符串:01100001 01100010 01100011,它也可以被表示成16进制字符串:0x616263。
SHA1中循环左移位操作符Sn(X),其中,X是一个字,n是一个整数,0<=n<=32,Sn(X)=(X<<n)OR(X>>32-n)。
X<<n定义如下:抛弃最左边的n位数字,将其余各个位依次向左移动n位,然后用0填补右边的n位(最后结果还是32位)。
X>>n是抛弃右边的n位,将其余各个位依次向右移动n位,然后在左边的n位填0。
在SHA1算法中,必须把原始消息(字符串,文件等)转换成位字符串。SHA1算法只接受位作为输入,假设对字符串“abc”产生消息摘要。首先,将它转换成位字符串如下:
01100001 01100010 01100011
—————————————
‘a’=97‘b’=98‘c’=99
这个位字符串的长度为24位,需要5个步骤来计算SHA1:
1)补位消息必须进行补位,以使其长度在对512取模以后的余数是448。也就是说,(补位后的消息长度)%512=448,即使长度已经满足对512取模后余数是448,补位也必须要进行。补位是这样进行的:先补一个1,然后再补0,直到长度满足对512取模后余数是448,总而言之;补位是至少补一位,最多补512位,还是以前面的“abc”为例显示补位的过程:
原始信息:01100001 01100010 01100011
补位第一步:01100001 01100010 01100011 1 首先补一个“1”
补位第二步:01100001 01100010 01100011 10...0 然后补423个“0”
可以把最后补位完成后的数据用16进制写成下面的样子
61626380 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000
现在,数据的长度是448,可以进行下一步操作;
2)补长度
所谓的补长度是将原始数据的长度补到已经进行了补位操作的消息后面,通常用一个64位的数据来表示原始消息的长度,如果消息长度不大于264,那么第一个字就是0,在进行了补长度的操作以后,整个消息就变成下面这样了(16进制格式):
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京飞天诚信科技有限公司,未经北京飞天诚信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810102536.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:粉末涂料
- 下一篇:储罐用的组装式外浮盘