[发明专利]一种哈希算法的实现方法及装置在审
申请号: | 202010845510.4 | 申请日: | 2020-08-20 |
公开(公告)号: | CN112084534A | 公开(公告)日: | 2020-12-15 |
发明(设计)人: | 雷宗华;彭金辉;王阳阳;习道彬 | 申请(专利权)人: | 郑州信大捷安信息技术股份有限公司 |
主分类号: | G06F21/64 | 分类号: | G06F21/64;G06F21/60;G06F21/31;H04L9/06 |
代理公司: | 郑州德勤知识产权代理有限公司 41128 | 代理人: | 黄红梅 |
地址: | 450000 河南省*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 算法 实现 方法 装置 | ||
本发明提出一种哈希算法的实现方法及装置,方法包括:初始化步骤:外部模块初始化IV向量为预设向量;填充分组步骤:外部模块每获取到待运算的明文数据,即对待运算的明文数据进行消息填充和分组以获得分组消息;扩展压缩步骤:硬件密码设备对每个分组消息进行消息扩展生成扩展消息分组,再通过IV向量和每个所述扩展消息分组进行迭代压缩计算获得最终的HASH值IVn。本发明能够保证输入的明文数据不需要全部准备好,就可以通过输入多次明文数据来完成哈希算法的实现,提高哈希算法的运算速度。
技术领域
本发明涉及计算机技术领域,具体涉及一种哈希算法的实现方法及装置。
背景技术
哈希算法是在加解密运算中非常重要的不可逆运算,受到各国密码管理机构的重视。这种算法的基本内涵是针对长度任意的message消息进行特定的运算,该运算最终将输出长度恒定的杂凑值。哈希算法的操作步骤是不需要保密。一旦输入有及其细微的变化,其输出的哈希值的改变也是非常彻底。哈希算法在密码学中具有重要的地位,被广泛应用在数字签名,消息认证,数据完整性检测等领域。
目前,常见的哈希算法包括有MD5、SHA、SM3;其中,SM3密码杂凑是中国商用密码杂凑标准(也称哈希,或者单向散列),其消息分组为512位,经过填充和迭代压缩,生成256位的杂凑值,国密SM3算法为国内商用密码应用中的数字签名和验证、消息验证码的生成和验证以及随机数的生成提供了强有力支撑;
哈希算法的实现通常需要经过填充、分组、扩展和压缩运算处理过程,然而,传统的硬件密码设备实现的哈希算法通常是实现算法的整个过程,输入任意字节的数据明文,输出固定长度的HASH值,每次输入硬件密码设备的是全部的明文数据,必须等待所有的明文数据准备完成以后才能输入到硬件密码设备进行运算,导致哈希算法的运算速度降低,应用不灵活,因此如何设计一种哈希算法的实现方法,使得不需等待所有的明文数据准备完成就能输入硬件密码设备进行运算,提高哈希算法的运算速度,应用灵活是目前急需解决的问题。
发明内容
本发明针对上述问题,有必要提供一种哈希算法的实现方法及装置,从而实现不需等待所有的明文数据准备完成就能输入硬件密码设备进行运算,提高哈希算法的运算速度,应用灵活。
本发明第一方面提出一种哈希算法的实现方法,包括:
初始化步骤:初始化IV向量为预设向量;
填充分组步骤:每获取到待运算的明文数据,即对待运算的明文数据进行消息填充和分组以获得分组消息;
扩展压缩步骤:对每个分组消息进行消息扩展生成扩展消息分组,再通过IV向量和每个所述扩展消息分组进行迭代压缩计算获得最终的HASH值IVn;
设置硬件密码设备和外部模块;
在所述外部模块实现所述初始化步骤和所述填充分组步骤;
在硬件密码设备实现扩展压缩步骤。
基于上述,所述硬件密码设备至少为一个,多个硬件密码设备同时对多个明文数据进行计算。
基于上述,还包括保存输出步骤:通过所述外部模块保存最终的HASH值IVn,并将最终的HASH值IVn作为结果输出。
基于上述,对待运算的明文数据进行消息填充和分组的方法包括:
判断输入的明文数据长度是否是固定长度的整数倍分组数据;
若是,则对所述输入的明文数据以固定长度进行分组,并填充一个分组,得到分组消息;
若否,则对所述输入的明文数据使用算法填充规则填充至固定长度的整数倍,即填充一个或两个分组,得到分组消息。
基于上述,通过IV向量和每个所述扩展消息分组进行迭代压缩计算获得最终的HASH值IVn的方法包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州信大捷安信息技术股份有限公司,未经郑州信大捷安信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010845510.4/2.html,转载请声明来源钻瓜专利网。