【技术实现步骤摘要】
一种HMAC算法的快速实现方法及装置
本专利技术涉及计算机
,具体涉及一种HMAC算法的快速实现方法及装置。
技术介绍
MAC(MessageAuthenticationCode,消息认证码算法)是含有密钥散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加上了密钥,因此MAC算法也经常被称作HMAC算法。HMAC是一种使用单向散列函数来构造消息认证码的方法,其中HMAC中的H就是Hash的意思。HMAC中所使用的单向散列函数并不仅限于一种,任何高强度的单向散列函数都可以被用于HMAC,如果将来设计出的新的单向散列函数,也同样可以使用。目前,常见的HMAC算法主要集合了MD和SHA两大系列消息摘要算法。其中MD系列的算法有HMAC-MD2、HMAC-MD4、HMAC-MD5三种算法;SHA系列的算法有HMAC-SHA1、HMAC-SHA-224、HMAC-SHA-256、HMAC-SHA-384、HMAC-SHA-512五种算法。传统的HMAC算法就是利用密钥K和输入的消息M进行两轮哈希运算,以公 ...
【技术保护点】
1.一种HMAC算法的快速实现方法,其特征在于,包括:/n预存密钥K;/n将所述密钥K与ipad的比特序列进行异或运算生成第一密钥信息,对所述第一密钥信息进行单向散列运算生成第一密钥信息中间散列值;/n将所述密钥K与opad的比特序列进行异或运算生成第二密钥信息,对所述第二密钥信息进行单向散列运算生成第二密钥信息中间散列值;/n存储所述第一密钥信息中间散列值和所述第二密钥信息中间散列值;/n每获取到待处理的消息,将所述消息与保存的第一密钥信息中间散列值组合后进行单向散列运算生成消息中间散列值;/n每次生成的消息中间散列值与保存的第二密钥信息中间散列值组合后进行单向散列运算生成最终散列值。/n
【技术特征摘要】
1.一种HMAC算法的快速实现方法,其特征在于,包括:
预存密钥K;
将所述密钥K与ipad的比特序列进行异或运算生成第一密钥信息,对所述第一密钥信息进行单向散列运算生成第一密钥信息中间散列值;
将所述密钥K与opad的比特序列进行异或运算生成第二密钥信息,对所述第二密钥信息进行单向散列运算生成第二密钥信息中间散列值;
存储所述第一密钥信息中间散列值和所述第二密钥信息中间散列值;
每获取到待处理的消息,将所述消息与保存的第一密钥信息中间散列值组合后进行单向散列运算生成消息中间散列值;
每次生成的消息中间散列值与保存的第二密钥信息中间散列值组合后进行单向散列运算生成最终散列值。
2.根据权利要求1所述的HMAC算法的快速实现方法,其特征在于,在预存密钥K之前对所述密钥K进行预处理,包括:
若密钥K的长度小于单向散列函数分组长度,在该密钥末尾填充0,直至密钥长度达到单向散列函数的分组长度;
若密钥K的长度大于单向散列函数分组长度,对该密钥K进行单向散列运算获得散列计算后的密钥K。
3.根据权利要求1所述的HMAC算法的快速实现方法,其特征在于:
所述ipad是将00110110这一比特序列不断循环反复直到达到单向散列函数分组长度所形成的比特序列;
所述opad是将01011100这一比特序列不断循环反复直到达到单向散列函数分组长度所形成的比特序列;
所述第一密钥信息和所述第二密钥信息的长度均和单向散列运算所采用的单向散列函数的分组长度相同。
4.根据权利要求1所述的HMAC算法的快速实现方法,其特征在于:所述单向散列运算所采用的单向散列函数为MD2、MD4、MD5、SHA-1、SHA-224、SHA-256、SHA-384或SHA-512。
5.一种HMAC算法的快速实现装置,其特征在于:
包括密钥信息计算模块、第一散列值计算模块和第二散列值计算模块;
所述密钥信息计算模块,用于预存密钥K;还用于将所述密钥K与ipad的比特序列进行异或运算生成第一密钥信息,以及将所述密钥K与opad的比特序列进行异或运算生成第二密钥信息;
所述第一散列值计算模块,与所述密钥信息计算模块通信连接,用于对所述第一密钥信息进行单向散列...
【专利技术属性】
技术研发人员:彭金辉,雷宗华,陈万顺,卫志刚,刘武忠,
申请(专利权)人:郑州信大捷安信息技术股份有限公司,
类型:发明
国别省市:河南;41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。