一种基于折叠的SHA-256硬件优化设计方法技术

技术编号:34565408 阅读:24 留言:0更新日期:2022-08-17 12:54
本发明专利技术涉及一种基于折叠的SHA

【技术实现步骤摘要】
一种基于折叠的SHA

256硬件优化设计方法


[0001]本专利技术属于电子电路
,涉及一种基于折叠的SHA

256硬件优化设计方法。

技术介绍

[0002]安全哈希算法将不同长度的报文或程序生成固定长度的摘要,使报文拥有独有的“指纹”。报文摘要对应唯一的报文,且无法通过摘要倒推出原始报文,因此具有很强的安全性。安全散列函数SHA由美国NIST和NSA一起设计,其中SHA

256算法生成256位散列值,具有比以前的哈希算法更高的安全性和抗碰撞性,目前在实际中已被广泛使用。
[0003]SHA

256算法的硬件实现有多种方法,目的在于提高算法的运算速度或减少芯片面积和功耗。目前常见的优化算法有流水线、un

rolling、folding和重调度等方法,现有的对轮计算的重调度方法(rescheduling)是目前可以采用较高时钟频率的SHA

256硬件实现方法,该算法通过对中间哈希值的更新过程进行重调度优化,缩短了轮计算过程的关键路径延迟,因此具有很高的吞吐量。
[0004]折叠方法是一种降低电路功耗的设计方法,该方法利用算法关键路径上一些计算单元的重复性,将两个寄存器之间的运算过程“折叠”成两个或多个同样形式的运算过程,从而最大程度上复用电路上的硬件资源,并降低算法所需的芯片面积。
[0005]为提高SHA

256算法电路运算速度并增加吞吐量,提出了一种基于折叠的SHA

256硬件优化设计方法,实现运算速度大幅提升的同时具有吞吐量高、无需占用过多芯片面积。

技术实现思路

[0006]本专利技术的目的就是提供一种基于折叠的SHA

256硬件优化设计方法。
[0007]本专利技术利用折叠方法将重调度后的轮计算关键路径分为延迟更低的两个阶段;复用一个4

2压缩器替代原关键路径中的五操作数加法运算。具体包括如下步骤:
[0008]所述利用折叠方法将重调度后的轮计算关键路径分为延迟更低的两个阶段具体为:
[0009]SHA

256轮计算关键路径为对寄存器A的更新,A
k+1
=∑0(A
k
)+Maj(A
k
,B
k
,C
k
)+P
k
+S
k
+N
k
,其中k为轮计算的轮数,A
k
表示在第k次轮计算中寄存器A所存储的值;∑0(A
k
)和Maj(A
k
,B
k
,C
k
)为对寄存器中的值进行逻辑运算后的结果。
[0010]利用折叠方法,将关键路径上包含五个操作数的加法运算分为两个阶段,第一个阶段通过4

2压缩器将S
k
、N
k
、P
k
的和转化为两个数As
k
和Ac
k
,保存在新的寄存器As和Ac中,第二阶段计算新的寄存器中存储的值As
k
、Ac
k
与∑0(A
k
)、Maj(A
k
+B
k
+C
k
)的和;寄存器S、N、P分别保存每轮S
k
、N
k
和P
k
的值。
[0011]所述复用一个4

2压缩器替代原关键路径中的五操作数加法运算具体为:
[0012]用4

2压缩器代替关键路径上的加法运算,在运算的两个阶段,第一个阶段4

2压缩器的输入为S
k
、N
k
和P
k
,输出为As
k
和Ac
k
;第二个阶段4

2压缩器的输入为∑0(A
k
)、Maj(A
k
+B
k
+C
k
)、As
k
和Ac
k
,输出为As
k+1
和Ac
k+1
。四个二选一的多路选择器用于选择两个阶段4

2压缩
器的输入,由于在第一个阶段只有三个有效的输入值,因此第四个多路选择器在第一个阶段选择一个0值作为输入。寄存器As和Ac分别保存As
k
和Ac
k
的值,它们的和在每一轮第一阶段存入寄存器A中。
[0013]本专利技术在保持较高效率(本方案的算法硬件效率为1.86Mbps/Slice)的条件下实现SHA

256硬件实现的高速运算(时钟频率达到366MHz)和高吞吐量(1990Mbps)。实现运算速度大幅提升的同时具吞吐量高、占用芯片面积少。
附图说明
[0014]图1为原重调度方案轮计算的关键路径;
[0015]图2为本专利技术关键路径实现流程图。
具体实施方式
[0016]以下结合附图对本专利技术进行进一步的描述。
[0017]如图1所示,原重调度(rescheduling)方案轮计算的关键路径,其时延为两个csa和一个加法器的延迟之和。如图2所示,本专利技术关键路径时延为多路选择器和4

2压缩器的延迟之和。
[0018]一种基于折叠的SHA

256硬件优化设计方法,利用折叠方法将关键路径分为两个阶段具体为:
[0019]寄存器S、N、P分别保存每轮计算S
k
、N
k
、P
k
的值,∑0为计算∑0(A
k
)的逻辑电路,Maj为计算Maj(A
k
+B
k
+C
k
)的逻辑电路。寄存器S和逻辑电路∑0的输出连接多路选择器m0的输入端,寄存器N和逻辑电路Maj的输出连接多路选择器m1的输入端,寄存器P的输出连接多路选择器m2的一个输入端。多路选择器实现两次复用的折叠方法,在运算的第一个阶段,m0选择寄存器S的输出,m1选择寄存器N的输出,m2选择寄存器P的输出,由于此阶段仅有三个操作数,因此第四个多路选择器m3选择0值;在运算的第二个阶段,m0选择∑0的输出,m1选择Maj的输出。
[0020]所述复用一个4

2压缩器替代原关键路径中的五操作数加法运算具体为:
[0021]用一个4

2压缩器替代原电路中的加法器,4

2压缩器的输入为四个多路选择器m0,m1,m2和m3的输出,用于在不同阶段接收不同的输入值。4

2压缩器的输出为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于折叠的SHA

256硬件优化设计方法,其特征在于:利用折叠方法将重调度后的轮计算关键路径分为延迟更低的两个阶段;复用一个4

2压缩器替代原关键路径中的五操作数加法运算;具体包括如下步骤:所述利用折叠方法将重调度后的轮计算关键路径分为延迟更低的两个阶段具体为:SHA

256轮计算关键路径为对寄存器A的更新,A
k+1
=∑0(A
k
)+Maj(A
k
,B
k
,C
k
)+P
k
+S
k
+N
k
,其中k为轮计算的轮数,A
k
表示在第k次轮计算中寄存器A所存储的值;∑0(A
k
)和Maj(A
k
,B
k
,C
k
)为对寄存器中的值进行逻辑运算后的结果;利用折叠方法,将关键路径上包含五个操作数的加法运算分为两个阶段,第一个阶段通过4

2压缩器将S
k
、N
k
、P
k
的和转化为两个数As
k
和Ac
k
,保存在新的寄存器As和Ac中,第二阶段计算新的寄存器中存储的值As
k
、Ac
k
...

【专利技术属性】
技术研发人员:薛紫微姚茂群
申请(专利权)人:杭州师范大学
类型:发明
国别省市:

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

1