[发明专利]一种实现哈希运算的专用计算电路有效
申请号: | 201711288835.1 | 申请日: | 2017-12-07 |
公开(公告)号: | CN109905228B | 公开(公告)日: | 2023-07-25 |
发明(设计)人: | 霍晓芳;白彩云 | 申请(专利权)人: | 北京智云芯科技有限公司 |
主分类号: | H04L9/06 | 分类号: | H04L9/06;H04L9/32 |
代理公司: | 北京中政联科专利代理事务所(普通合伙) 11489 | 代理人: | 陈超 |
地址: | 100193 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 运算 专用 计算 电路 | ||
一种实现哈希运算的专用计算电路,包括至少一个哈希计算模块;具体包括变量、常量输入单元,哈希输入、输出单元和哈希计算单元;该哈希运算的迭代运算次数为N,每个计算模块使用N个哈希计算单元分别完成N次迭代运算;N个哈希计算单元之间通过硬件连线连接,在每一次计算的时钟周期A初始通过哈希输入单元给哈希计算单元输入一组新的输入数据,后一个哈希计算单元的哈希输入值为前一个哈希计算单元的哈希输出值;N个变量输入单元和常量输入单元的个数分别与N个哈希计算单元对应相连,用于输入相应的变量值和常量值;一次哈希运算结束后结果由哈希输出单元输出。利用本发明的上述专用计算电路,在哈希运算时能够降低计算电路的功耗和成本。
技术领域
本发明涉及哈希运算领域,具体涉及一种实现哈希运算的专用计算电路。
背景技术
哈希(Hash)运算是一种常用的运算,可以将任意长度的消息压缩到某一固定长度的消息摘要。常用的哈希算法有SHA256、SHA3、SM3等,这几个哈希算法的输出都是256位,并且安全性都比较高,是目前主流的哈希算法。哈希运算的用途有文件校验、数字签名、鉴权协议、工作量证明等。
哈希算法有一个特定的用途,是计算一定长度的输入消息的哈希值并检验哈希值的特定输出位是否等于某个固定的值,比如哈希值的前32位是否等于全0或者全1,或者是否等于0x12345678等。哈希函数的特点决定了不可能由输出反向推算出输入,因此针对此类用途,唯一的办法就是不断尝试不同的输入组合、计算其哈希值、并比较其输出是否符合条件。
对于上述问题,可以采用通用CPU来解决。当性能要求比较高时,也可以采用GPU或者FPGA来解决。CPU、GPU、FPGA都是通用计算平台,因此对于此类特定的计算问题,其效率一般不太高,计算所消耗的功耗比较大。
为了降低哈希计算的功耗,一般采用ASIC(Application Specific IntegratedCircuit),即专用集成电路来实现哈希算法。以SHA256为例,ASIC的电路结构及计算过程如图1所示,包括哈希输入单元、哈希计算单元、变量输入单元、常量输入单元和哈希输出单元。
SHA256算法的输入有两组,一组是输入数据datain0…datain15,为16个32bit数;另一组是输入哈希值hashin0…hashin7,为8个32bit数。在计算过程当中,用8个32bit的状态寄存器state0…state7,来表示当前的计算状态。state0…state7的初始值就是hashin0…hashin7,将其输入到哈希输入单元,输出进入哈希计算单元。SHA256的计算为64轮,每一轮的输入为state0…state7、变量wvalue、常量kvalue,每一轮的输出为一组新的state0…state7值。前16轮的wvalue就是输入数据datain0…datain15,后48轮的wvalue由datain0…datain15计算得到,通过变量输入单元输入给哈希计算单元。每一轮的kvalue的值都是常数,和datain0…datain15、hashin0…hashin7、state0…state7都无关,通过常量输入单元输入给哈希计算单元。当64轮计算结束时,最终计算得到的state0…state7分别和初始值hashin0…hashin7相加,得到8个32bit的hash输出hashout0…hashout7,由哈希输出单元输出。
图1代表了现有的SHA256电路结构。该电路的优点是占用计算资源少,64轮计算重复使用了同一组计算模块state0…state7。但是该电路结构的缺点是功耗仍然比较高。原因在于其基于循环的电路结构当中,需要一些额外的控制电路和数据选择器,这些附加的电路并非算法本身所需要的,而是这种基于循环的电路结构所带来的。
发明内容
针对上述问题,本发明的目的是提供一种运行功耗和成本较低实现哈希运算的全流水电路结构。
本发明通过以下技术方案来实现:
一种实现哈希运算的专用计算电路,包括至少一个哈希计算模块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智云芯科技有限公司,未经北京智云芯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711288835.1/2.html,转载请声明来源钻瓜专利网。