The invention provides a circuit supporting various Hash algorithms, including initialization logic, constant selection logic, message processing logic, iteration logic, a MUX and Hash value register array. The Hash algorithm supported by this design includes MD5, SHA0, SHA1, SHA224, SHA256, SHA384, SHA512 and SM3. To support the continuous processing of a message, only the initial iteration value defined by the corresponding Hash algorithm is loaded into the Hash value register array before the first block of the message starts iteration, and then the message is processed continuously. In addition, the design also supports the segmented processing of a message, in which another message can be inserted between two segments of a message. In this mode, only the iteration results of the previous segment of the message can be loaded into the Hash value register array by initialization logic before the beginning of the iteration.
【技术实现步骤摘要】
一种支持多种Hash算法的电路
本专利技术属于信息安全及密码
,尤其是涉及支持多种Hash算法的电路实现及设计方法。
技术介绍
Hash算法,又称杂凑算法、散列算法,是一种对任意文件做运算来生成小的数字的方法。与指纹一样,Hash算法就是一种以较短的信息来保证文件唯一性的标志。一个好的Hash算法有以下特点:1)正向快速。给定明文和Hash算法,在有限时间和有限资源内能计算出Hash值。2)逆向困难。给定Hash值,在有限时间内很难逆推出明文。3)输入敏感。原始输入信息的微小改动都会使生成的Hash值产生很大不同。4)冲突避免。很难找到两段内容不同的明文,使得它们的Hash值一致(发生冲突)。即对于任意两个不同的数据块,其Hash值相同的可能性极小;对于一个给定的数据块,找到和它Hash值相同的数据块极为困难。Hash算法主要有以下应用场景:1)数字签名:首先通过Hash算法生成消息的Hash值(摘要),然后通过公钥算法对Hash值做运算生成消息的数字签名。之所以对Hash值做公钥运算生成消息的数字签名而不是直接对消息做公钥运算是因为公钥算法的效率比较低,而 ...
【技术保护点】
1.一种支持多种Hash算法的电路,其特征在于包括:初始化逻辑、常量选择逻辑、消息处理逻辑、迭代逻辑、MUX和Hash值寄存器阵列,初始化逻辑,用于在迭代开始之前向Hash值寄存器阵列赋初值;常量选择逻辑,根据具体的Hash算法种类以及迭代的轮数来选择需要送到迭代逻辑进行运算的常量值;消息处理逻辑,用于根据输入的原始消息计算每轮迭代需要的消息值;迭代逻辑,用于根据常量选择逻辑、消息处理逻辑及Hash值寄存器阵列提供的输入值对输入的消息进行迭代计算,每轮迭代计算的结果存放在Hash值寄存器阵列中;MUX,用于切换Hash值寄存器阵列与初始化逻辑或者迭代逻辑的通断;Hash值寄 ...
【技术特征摘要】
1.一种支持多种Hash算法的电路,其特征在于包括:初始化逻辑、常量选择逻辑、消息处理逻辑、迭代逻辑、MUX和Hash值寄存器阵列,初始化逻辑,用于在迭代开始之前向Hash值寄存器阵列赋初值;常量选择逻辑,根据具体的Hash算法种类以及迭代的轮数来选择需要送到迭代逻辑进行运算的常量值;消息处理逻辑,用于根据输入的原始消息计算每轮迭代需要的消息值;迭代逻辑,用于根据常量选择逻辑、消息处理逻辑及Hash值寄存器阵列提供的输入值对输入的消息进行迭代计算,每轮迭代计算的结果存放在Hash值寄存器阵列中;MUX,用于切换Hash值寄存器阵列与初始化逻辑或者迭代逻辑的通断;Hash值寄存器阵列,用于存储每轮迭代的结果。2.根据权利要求1所述的一种支持多种Hash算法的电路,其特征在于:支持对一个消息的连续处理,也支持对一个消息的分段处理;所述初始化逻辑包含两种情况:第一种情况,对于一个消息的第一个block,在迭代开始之前将相应Hash算法定义的迭代初始值加载到Hash值寄存器阵列;第二种情况是对于分段处理,对于一个消息的非第一个block,在迭代开始之前将同一消息的前一个分段的迭代结果加载到Hash值寄存器阵列。3.根据权利要求1所述的一种支持多种Hash算法的电路,其特征在于:所述常量选择逻辑具体通过若干个多路选择器MUX选择常量值,进行选择时的控制信号包括消息输入使能信号、算法种类指示信号、迭代轮数。4.根据权利要求1所述的一种支持多种Hash算法的电路,其特征在于:所述消息处理逻辑包含消息寄存器阵列,来寄存消息并做迭代处理及更新。5.根据权利要求1所述的一种支持多种Hash算法的电路,其特征在于:多种Hash算法包括MD5、SHA0、SHA1、SHA224、SHA256、SHA384、SHA512、SM3。6.根据权利要求5所述的一种支持多种Hash算法的电路,其特征在于:所述消息处理逻辑对于非SM3算法,在输入第一个原始消息值时开始迭代计算,对于SM3算法,在输入第四个原始消息值时开始迭代计算。7.根据权利要求1所述的一种支持多种Hash算法的电路,其特征在于:所述迭代逻辑通过多个加法器实现,根据算法的种类设置加法器的输入端,加法器不使用的输入端接0。8.根据权利要求7所述的一种支持多种Hash算法的电路,其特征在于:所述迭代逻辑包含1个4输入加法器,1个6输入加法器及一个7输入加法器,通过4输...
【专利技术属性】
技术研发人员:申云飞,肖佐楠,郑茳,
申请(专利权)人:天津国芯科技有限公司,
类型:发明
国别省市:天津,12
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。