[发明专利]一种支持多种Hash算法的电路有效
| 申请号: | 201811575251.7 | 申请日: | 2018-12-21 |
| 公开(公告)号: | CN109687972B | 公开(公告)日: | 2021-08-10 |
| 发明(设计)人: | 申云飞;肖佐楠;郑茳 | 申请(专利权)人: | 天津国芯科技有限公司 |
| 主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/06 |
| 代理公司: | 天津滨海科纬知识产权代理有限公司 12211 | 代理人: | 杨慧玲 |
| 地址: | 300457 天津市滨海新区开发*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 支持 多种 hash 算法 电路 | ||
本发明提供了一种支持多种Hash算法的电路,包含初始化逻辑、常量选择逻辑、消息处理逻辑、迭代逻辑、一个MUX以及Hash值寄存器阵列。本设计支持的Hash算法包括:MD5、SHA0、SHA1、SHA224、SHA256、SHA384、SHA512、SM3。支持对一个消息的连续处理,只需要在消息的第一个block开始迭代之前将相应Hash算法定义的迭代初始值加载到Hash值寄存器阵列中,然后连续地处理此消息即可。另外,本设计还支持对一个消息的分段处理,在一个消息的两段之间可以插入另外一个消息的处理,在此种模式下只需要在迭代开始之前将本消息的前一个分段的迭代结果通过初始化逻辑加载到Hash值寄存器阵列即可。
技术领域
本发明属于信息安全及密码技术领域,尤其是涉及支持多种Hash算法的电路实现及设计方法。
背景技术
Hash算法,又称杂凑算法、散列算法,是一种对任意文件做运算来生成小的数字的方法。与指纹一样,Hash算法就是一种以较短的信息来保证文件唯一性的标志。一个好的Hash算法有以下特点:
1)正向快速。给定明文和Hash算法,在有限时间和有限资源内能计算出Hash值。
2)逆向困难。给定Hash值,在有限时间内很难逆推出明文。
3)输入敏感。原始输入信息的微小改动都会使生成的Hash值产生很大不同。
4)冲突避免。很难找到两段内容不同的明文,使得它们的Hash值一致 (发生冲突)。即对于任意两个不同的数据块,其Hash值相同的可能性极小;对于一个给定的数据块,找到和它Hash值相同的数据块极为困难。
Hash算法主要有以下应用场景:
1)数字签名:首先通过Hash算法生成消息的Hash值(摘要),然后通过公钥算法对Hash值做运算生成消息的数字签名。之所以对Hash值做公钥运算生成消息的数字签名而不是直接对消息做公钥运算是因为公钥算法的效率比较低,而Hash值数据量一般比消息本身小很多,通过对消息的Hash 值做公钥运算可以极大的提高签名的效率。
2)数字指纹:Hash算法可以把任意长度的输入变为确定长度的输出,不一样的输入对应着不同的输出,因此可以基于Hash算法得到程序或文档的数字指纹(Hash值),对比“数字指纹”与存放在安全地方的原“指纹”即可发现病毒或入侵者对程序或文档的修改。
3)密码存储。基于Hash算法生成密码的Hash值,然后在系统中保存密码的Hash值,而不是密码本身,这样可以提高系统的安全性。即使黑客盗取了系统中保存的Hash值,依然无法获取密码,也就不能登录进入系统。
现有技术中,Hash算法的硬件实现方案只能实现一种Hash算法,需要通过多个硬件方案实现多种Hash算法,通用性差,成本高。
发明内容
有鉴于此,本发明旨在提出一种支持多种Hash算法的电路,以提供了一种高效、通用、低成本的Hash算法硬件实现方案。
为达到上述目的,本发明的技术方案是这样实现的:
一种支持多种Hash算法的电路,包括:初始化逻辑、常量选择逻辑、消息处理逻辑、迭代逻辑、MUX和Hash值寄存器阵列,
初始化逻辑,用于在迭代开始之前向Hash值寄存器阵列赋初值;
常量选择逻辑,根据具体的Hash算法种类以及迭代的轮数来选择需要送到迭代逻辑进行运算的常量值;
消息处理逻辑,用于根据输入的原始消息计算每轮迭代需要的消息值;
迭代逻辑,用于根据常量选择逻辑、消息处理逻辑及Hash值寄存器阵列提供的输入值对输入的消息进行迭代计算,每轮迭代计算的结果存放在 Hash值寄存器阵列中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津国芯科技有限公司,未经天津国芯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811575251.7/2.html,转载请声明来源钻瓜专利网。





