一种用于哈希算法的可重构硬件及运行方法技术

技术编号:26790768 阅读:13 留言:0更新日期:2020-12-22 17:05
本发明专利技术提供一种用于哈希算法的可重构硬件及运行方法,所述硬件包括:状态控制器、运算单元、多个选择器和状态寄存器,其中运算单元用于执行哈希计算流程;运算单元中嵌入多个选择器,用于选择运算流程中的各运算步骤的输入参数;所述运算单元将哈希计算流程的运算结果输出至所述状态寄存器进行保存;所述状态控制器控制运算单元、各选择器和状态寄存器的运行状态。本发明专利技术可以仅使用一个可重构计算单元就可以完成哈希算法的条带和剩余数据的“乘‑加‑移位‑乘”计算,降低了硬件成本。

【技术实现步骤摘要】
一种用于哈希算法的可重构硬件及运行方法
本专利技术属于哈希计算
,具体涉及一种用于哈希算法的可重构硬件机运行方法。
技术介绍
哈希算法即利用输入数据进行哈希计算得到哈希值,将数据和其对应的哈希值经过网路传输之后,在接收方利用相同的哈希函数重新计算,并比对接收到的哈希值和重新计算到的哈希值,从而判断数据完整性。其广泛应用于信息加密、数据校验、负载均衡等领域。哈希算法通常利用平台软件完成运算。在嵌入式移动计算领域,软件计算哈希算法有可能无法满足系统性能和其他指标要求。特别是对超低功耗、高吞吐率、数据安全有严格要求的系统,哈希算法的硬件实现和硬件优化具有很高的实际应用需求。现有的非可重构硬件在执行哈希算法运算时,需要4个条带数据计算单元、2个剩余数据计算单元,总共12个乘法器+6个加法器+6个移位器。这样的实现方式会消耗较多的硬件资源,硬件成本较高。
技术实现思路
针对现有技术的上述不足,本专利技术提供一种用于哈希算法的可重构硬件,以解决上述技术问题。本申请实施例提供一种用于哈希算法的可重构硬件,包括:状态控制器、运算单元、多个选择器和状态寄存器,其中运算单元用于执行哈希计算流程;运算单元中嵌入多个选择器,用于选择运算流程中的各运算步骤的输入参数;所述运算单元将哈希计算流程的运算结果输出至所述状态寄存器进行保存;所述状态控制器控制运算单元、各选择器和状态寄存器的运行状态。进一步的,所述用于哈希算法的可重构硬件还包括:所述运算单元包括第一乘法器、加法器、循环左移器和第二乘法器,所述多个选择器包括第一选择器、第二选择器、第三选择器和第四选择器;所述状态控制器分别与第二选择器、第三选择器、循环左移器、第四选择器和状态寄存器电连接;所述第一选择器的输入端分别连接数据输入端和状态寄存器;第二选择器的输出端和所述第一选择器的输出端均连接乘法器输入端;第三选择器的输出端和乘法器的输出端均连接加法器的输入端;第三选择器的输入端分别连接初始化参数通道和状态寄存器;加法器的输出端连接循环左移器的输入端;循环左移器的输出端和第四选择器均连接第二乘法器的输入端;第二乘法器的输出端分别连接输出数据端和状态寄存器。进一步的,所述第二选择器的可选参数包括PRIME32_2=0x85EBCA77U、PRIME32_3=0xC2B2AE3DU、PRIME32_5=0x165667B1U和常数1;所述第四选择器的的可选参数包括PRIME32_1=0x9E3779B1U、PRIME32_4=0x27D4EB2FU和常数1。进一步的,所述状态寄存器包括四个寄存块,所述四个寄存块分别存储四个数据通道的运算结果。本专利技术还提供一种用于哈希算法的可重构硬件的运行方法,所述方法包括:所述状态控制器实时监控有效输入数据的总字节长度,并根据所述总字节长度选择计算模式,所述计算模式包括条带数据处理模式、通道汇聚累加模式、第一剩余数据处理模式和第二剩余数据处理模式;所述状态控制器通过控制选择器切换输出参数,将计算模式设定为选择的目标计算模式;所述状态控制器根据所述目标计算模式设置循环位移器的位移参数并控制所述运算单元在所述目标计算模式下执行对输入数据的运算。进一步的,所述根据总字节长度选择计算模式,包括:若所述总字节长度不低于16字节,则选择条带数据处理模式;若所述总字节低于16字节,则先选择通道汇聚累加模式并在所述通道汇聚累加模式执行完成之后再判断所述总字节是否不低于4字节:若是,则选择第一剩余数据处理模式;若否,则选择第二剩余数据处理模式。进一步的,所述方法还包括:所述条带数据处理模式包括条带数据处理起始步骤和条带数据处理循环步骤;所述条带数据处理起始步骤的配置参数包括第一选择器选中输入数据、第二选择器选中PRIME32_2、第三选择器选中初始化参数、循环位移器设为左移13位、第四选择器选中选中PRIME32_1;所述条带数据处理循环步骤的配置参数包括第一选择器选中输入数据、第二选择器选中PRIME32_2、第三选择器选中状态寄存器的累加反馈回路、循环位移器设为左移13位、第四选择器选中选中PRIME32_1;所述通道汇聚累加模式的配置参数包括第一选择器选中状态寄存器的通道汇聚回路、第二选择器选中常数1、第三选择器选中状态寄存器的累加反馈回路、循环位移器设为不位移、第四选择器选中常数1;第一剩余数据处理模式包括第一剩余数据处理起始步骤和第一剩余数据处理循环步骤,所述第一剩余数据处理起始步骤的配置参数包括第一选择器选中输入数据、第二选择器选中PRIME32_3、第三选择器选中初始化参数、循环位移器设为左移17位、第四选择器选中PRIME32_4;所述第一剩余数据处理循环步骤的配置参数包括第一选择器选中输入数据、第二选择器选中PRIME32_3、第三选择器选中状态寄存器的累加反馈回路、循环位移器设为左移17位、第四选择器选中PRIME32_4;所述第二剩余数据处理模式包括第二剩余数据处理起始步骤和第二剩余数据处理循环步骤,所述第二剩余数据处理起始步骤的配置参数包括第一选择器选中输入数据、第二选择器选中PRIME32_5、第三选择器选中初始化参数、循环位移器设为左移11位、第四选择器选中PRIME32_1;第二剩余数据处理循环步骤的配置参数包括第一选择器选中输入数据、第二选择器选中PRIME32_5、第三选择器选中状态寄存器的累加反馈回路、循环位移器设为左移11位、第四选择器选中PRIME32_1。进一步的,所述方法还包括:所述状态控制器对输入数据和输出数据进行有效性校验并输出校验结果。本专利技术的有益效果在于,本专利技术提供的用于哈希算法的可重构硬件及运行方法,通过设计一种可重构硬件,能够根据不同系统对哈希计算的指标要求,快速构建成不同的整体结构。能够用一个硬件计算单元完成条带数据和剩余数据处理中典型的“乘-加-移位-乘”计算,还能够进一步复用单元内的加法器,完成四通道汇聚累加运算。本硬件单元具有足够的灵活性和可构建性,有利于采用低成本硬件代价在专用芯片或FPGA平台进行安全的硬件xxHash计算。重构是由状态控制器根据剩余数据的长度,切换运算单元内的乘法运算、移位运算的操作数来实现的。本专利技术可以仅使用一个可重构计算单元就可以完成哈希算法的条带和剩余数据的“乘-加-移位-乘”计算,降低了硬件成本。此外,本专利技术设计原理可靠,结构简单,具有非常广泛的应用前景。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请一个实施例的用于哈希算法的可重构硬件的结构示意图。图2是本申请一个实施例的用于哈希算法的可重构硬件的运行方法的示例性流程图。具体实施方式为了使本
本文档来自技高网
...

【技术保护点】
1.一种用于哈希算法的可重构硬件,其特征在于,包括:/n状态控制器、运算单元、多个选择器和状态寄存器,其中运算单元用于执行哈希计算流程;运算单元中嵌入多个选择器,用于选择运算流程中的各运算步骤的输入参数;所述运算单元将哈希计算流程的运算结果输出至所述状态寄存器进行保存;所述状态控制器控制运算单元、各选择器和状态寄存器的运行状态。/n

【技术特征摘要】
1.一种用于哈希算法的可重构硬件,其特征在于,包括:
状态控制器、运算单元、多个选择器和状态寄存器,其中运算单元用于执行哈希计算流程;运算单元中嵌入多个选择器,用于选择运算流程中的各运算步骤的输入参数;所述运算单元将哈希计算流程的运算结果输出至所述状态寄存器进行保存;所述状态控制器控制运算单元、各选择器和状态寄存器的运行状态。


2.根据权利要求1所述的用于哈希算法的可重构硬件,其特征在于,所述硬件还包括:
所述运算单元包括第一乘法器、加法器、循环左移器和第二乘法器,所述多个选择器包括第一选择器、第二选择器、第三选择器和第四选择器;所述状态控制器分别与第二选择器、第三选择器、循环左移器、第四选择器和状态寄存器电连接;所述第一选择器的输入端分别连接数据输入端和状态寄存器;第二选择器的输出端和所述第一选择器的输出端均连接乘法器输入端;第三选择器的输出端和乘法器的输出端均连接加法器的输入端;第三选择器的输入端分别连接初始化参数通道和状态寄存器;加法器的输出端连接循环左移器的输入端;循环左移器的输出端和第四选择器均连接第二乘法器的输入端;第二乘法器的输出端分别连接输出数据端和状态寄存器。


3.根据权利要求2所述的用于哈希算法的可重构硬件,其特征在于,所述第二选择器的可选参数包括PRIME32_2=0x85EBCA77U、PRIME32_3=0xC2B2AE3DU、PRIME32_5=0x165667B1U和常数1;所述第四选择器的的可选参数包括PRIME32_1=0x9E3779B1U、PRIME32_4=0x27D4EB2FU和常数1。


4.根据权利要求1所述的用于哈希算法的可重构硬件,其特征在于,所述状态寄存器包括四个寄存块,所述四个寄存块分别存储四个数据通道的运算结果。


5.一种用于哈希算法的可重构硬件的运行方法,其特征在于,所述方法包括:
所述状态控制器实时监控有效输入数据的总字节长度,并根据所述总字节长度选择计算模式,所述计算模式包括条带数据处理模式、通道汇聚累加模式、第一剩余数据处理模式和第二剩余数据处理模式;
所述状态控制器通过控制选择器切换输出参数,将计算模式设定为选择的目标计算模式;
所述状态控制器根据所述目标计算模式设置循环位移器的位移参数并控制所述运算单元在所述目标计算模式下执行对输入数据的运算。


6.根据权利要求5所述的方法,其特征在于,所述根...

【专利技术属性】
技术研发人员:李磊袁涛王金富
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1