一种高速W变换方法、安全散列算法以及电子装置制造方法及图纸

技术编号:35472406 阅读:18 留言:0更新日期:2022-11-05 16:18
本发明专利技术公开了一种高速W变换方法、安全散列算法以及电子装置,所述高速W变换方法通过高低位拆解运算以及流水线操作,即把64bit的加法转换成32bit的加法并分步运算,同时多条流水线并行运行,使得W变换的运算效率大大提高。进一步地,该高速W变换方法的设计方式缩短了电路运行路径,使得所需的硬件电路得到简化,从而可以跑到更高的频率,增强了电路的数据处理性能。据处理性能。据处理性能。

【技术实现步骤摘要】
一种高速W变换方法、安全散列算法以及电子装置


[0001]本专利技术涉及数据安全领域,具体涉及一种高速W变换方法、安全散列算法以及电子装置。

技术介绍

[0002]安全散列算法(Secure Hash Algorithm,SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法,能计算出一个数字消息所对应到的、长度固定的字符串(又称消息摘要)的算法。且若输入的消息不同,它们对应到不同字符串的机率很高。
[0003]SHA由美国标准与技术研究所(NIST)设计并于1993年发表,该版本称为SHA

0,由于很快被发现存在安全隐患,1995年发布了SHA

1。2002年,NIST分别发布了SHA

256、SHA

384、SHA

512,这些算法统称SHA

2。2008年又新增了SHA

224。由于SHA

1已经不太安全,目前SHA

2各版本已成为主流。
[0004]其中,SHA512是目前较常用的散列算法,但是其运行效率低下,主要原因在于两个方面,一是W变换方法,二是散列轮变换方法。针对W变换方法,如果使用现有的技术,那么需要用复杂的硬件电路去实现,且电路运行路径较长,从而导致效率低下。然而,目前高性能安全网关需要为客户提供多种服务,涉及到数据来源性验证、数据完整性验证和数据加密服务,需要支持密码算法的高速计算,显然现有的W变换方法不再适用,需要对其重新进行设计。

技术实现思路

[0005]为解决上述问题,本专利技术提供了一种高速W变换方法、安全散列算法以及电子装置,大大提高了W变换的运行效率。本专利技术的具体技术方案如下:
[0006]一种高速W变换方法,应用于安全散列算法,所述方法具体包括如下步骤:步骤S1,将用于W变换的已知数据进行高低位拆解,然后进行低位运算以及高位运算;步骤S2,分别将低位运算以及高位运算拆解成若干次加法运算,然后进行流水线操作,最后将低位运算以及高位运算的结果进行合并,从而得到完整的W变换结果;其中,低位运算以及高位运算并行运行。
[0007]进一步地,所述安全散列算法为SHA512算法。
[0008]进一步地,所述SHA512算法的W变换方法如下:
[0009][0010]其中,W
t
(0≤t≤79)为64bit的数据;M
t
(0≤t≤15)为用于W变换的已知数据,大小为64bit;EP0和EP1为W变换函数。
[0011]进一步地,所述EP0和EP1的具体计算过程如下:
[0012]EP0(x)=(x<<<1)^(x<<<8)^(x>>7),
[0013]EP1(x)=(x<<<19)^(x<<<61)^(x>>6),
[0014]其中,x为已知数据,<<<代表循环左移运算,^代表异或运算,>>代表右移运算。
[0015]进一步地,所述步骤S1中,将用于W变换的已知数据进行高低位拆解的具体方法包括:取用于W变换的已知数据M
t
(0≤t≤15)的低32bit上的数据,并储存于低位寄存器中,取用于W变换的已知数据M
t
(0≤t≤15)的高32bit上的数据,并储存于高位寄存器中;其中,所述低位寄存器的数量为16个,每一个低位寄存器均可储存32bit大小的数据,所述高位寄存器的数量为16个,每一个高位寄存器均可储存32bit大小的数据。
[0016]进一步地,所述步骤S2中,将低位运算拆解成若干次加法运算的具体方法包括:步骤S21,基于W变换函数,计算W
t
`[31:0]=EP0(W
t

15
)[31:0]+W
t

16
[31:0],同时生成1bit的第一进位W
t
`_c,记为第一级流水线,然后进入步骤S22;步骤S22,计算W
t
``[31:0]=W
t
`[31:0]+W
t
‑7[31:0],同时生成1bit的第二进位W
t
``_c,记为第二级流水线,然后进入步骤S23;步骤S23,计算W
t
[31:0]=W
t
``[31:0]+EP1(W
t
‑2)[31:0],同时生成1bit的第三进位W
t
_c,记为第三级流水线。
[0017]进一步地,所述步骤S2中,将高位运算拆解成若干次加法运算的具体方法包括:步骤S24,基于W变换函数,计算W
t
`[63:32]=EP0(W
t

15
)[63:32]+W
t

16
[63:32],记为第一级流水线,然后进入步骤S25;步骤S25,计算W
t
``[63:32]=W
t
`[63:32]+W
t
‑7[63:32]+W
t
`_c,记为第二级流水线,然后进入步骤S26;步骤S26,计算W
t
```[63:32]=W
t
``[63:32]+EP1(W
t
‑2)[63:32]+W
t
``_c,记为第三级流水线,然后进入步骤S27;步骤S27,计算W
t
[63:32]=W
t
```[63:32]+W
t
_c,记为第四级流水线。
[0018]进一步地,所述步骤S2中,将低位运算拆解成若干次加法运算后,进行流水线操作的具体方法包括:步骤S31,当t=1时,基于上一时钟周期低位寄存器中的数据,计算W
16
低32bit的第一级流水线W
16
`[31:0],并将其储存于第十六低位寄存器中,然后将上一时钟周期低位寄存器中除第一级流水线和第二级流水线之外的数据左移32bit;在计算过程中,还生成W
16
的第一进位W
16
`[31:0]_c;步骤S32,当t=2时,基于上一时钟周期低位寄存器中的数据,计算W
16
低32bit的第二级流水线W
16
``[31:0],并将其储存于第十五低位寄存器中,同时,计算W
17
低32bit的第一级流水线W
17
`[31:0],并将其储存于第十六低位本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种高速W变换方法,应用于安全散列算法,其特征在于,所述方法具体包括如下步骤:步骤S1,将用于W变换的已知数据进行高低位拆解,然后进行低位运算以及高位运算;步骤S2,分别将低位运算以及高位运算拆解成若干次加法运算,然后进行流水线操作,最后将低位运算以及高位运算的结果进行合并,从而得到完整的W变换结果;其中,低位运算以及高位运算并行运行。2.根据权利要求1所述的一种高速W变换方法,其特征在于,所述安全散列算法为SHA512算法。3.根据权利要求2所述的一种高速W变换方法,其特征在于,所述SHA512算法的W变换方法如下:其中,W
t
(0≤t≤79)为64bit的数据;M
t
(0≤t≤15)为用于W变换的已知数据,大小为64bit;EP0和EP1为W变换函数。4.根据权利要求3所述的一种高速W变换方法,其特征在于,所述EP0和EP1的具体计算过程如下:EP0(x)=(x<<<1)^(x<<<8)^(x>>7),EP1(x)=(x<<<19)^(x<<<61)^(x>>6),其中,x为已知数据,<<<代表循环左移运算,^代表异或运算,>>代表右移运算。5.根据权利要求3所述的一种高速W变换方法,其特征在于,所述步骤S1中,将用于W变换的已知数据进行高低位拆解的具体方法包括:取用于W变换的已知数据M
t
(0≤t≤15)的低32bit上的数据,并储存于低位寄存器中,取用于W变换的已知数据M
t
(0≤t≤15)的高32bit上的数据,并储存于高位寄存器中;其中,所述低位寄存器的数量为16个,每一个低位寄存器均可储存32bit大小的数据,所述高位寄存器的数量为16个,每一个高位寄存器均可储存32bit大小的数据。6.根据权利要求5所述的一种高速W变换方法,其特征在于,所述步骤S2中,将低位运算拆解成若干次加法运算的具体方法包括:步骤S21,基于W变换函数,计算W
t
`[31:0]=EP0(W
t

15
)[31:0]+W
t

16
[31:0],同时生成1bit的第一进位W
t
`_c,记为第一级流水线,然后进入步骤S22;步骤S22,计算W
t
``[31:0]=W
t
`[31:0]+W
t
‑7[31:0],同时生成1bit的第二进位W
t
``_c,记为第二级流水线,然后进入步骤S23;步骤S23,计算W
t
[31:0]=W
t
``[31:0]+EP1(W
t
‑2)[31:0],同时生成1bit的第三进位W
t
_c,记为第三级流水线。7.根据权利要求6所述的一种高速W变换方法,其特征在于,所述步骤S2中,将高位运算拆解成若干次加法运算的具体方法包括:步骤S24,基于W变换函数,计算W
t
`[63:32]=EP0(W
t

15
)[63:32]+W
t

16
[63:32],记为第一级流水线,然后进入步骤S25;步骤S25,计算W
t
``[63:32]=W
t
`[63:32]+W
t
‑7[63:32]+W
t
`_c,记为第二级流水线,然后
进入步骤S26;步骤S26,计算W
t
```[63:32]=W
t
``[63:32]+EP1(W
t
‑2)[63:32]+W
t
``_c,记为第三级流水线,然后进入步骤S27;步骤S27,计算W
t
[63:32]=W
t
```[63:32]+W
t
_c,记为第四级流水线。8.根据权利要求7所述的一种高速W变换方法,其特征在于,所述步骤S2中,将低位运算拆解成若干次加法运算后,进行流水线操作的具体方法包括:步骤S31,当t=1时,基于上一时钟周期低位寄存器中的数据,计算W
16
低32bit的第一级流水线W
16
`[31:0],并将其储存于第十六低位寄存器中,然后将上一时钟周期低位寄存器中除第一级流水线和第二级流水线之外的数据左移32bit;在计算过程中,还生成W
16
的第一进位W
16
`[31:0]_c;步骤S32,当t=2时,基于上一时钟周期低位寄存器中的数据,计算W
16
低32bit的第二级流水线W
16
``[31:0],并将其储存于第十五低位寄存器中,同时,计算W
17
低32bit的第一级流水线W
17
`[31:0],并将其储存于第十六低位寄存器中,然后将上一时钟周期低位寄存器中除第一级流水线和第二级流水线之外的数据左移32bit;在计算过程中,还生成W
16
的第二进位W
16
``[31:0]_c以及W
17
的第一进位W
17
`[31:0]_c;步骤S33,当t=3时,基于上一时钟周期低位寄存器中的数据,计算W
16
低32bit的第三级流水线W
16
[31:0],并将其储存于第十四低位寄存器中,同时,计算W
17
低32bit的第二级流水线W
17
``[31:0],并将其储存于第十五低位寄存器中,同时,还计算W
18
低32bit的第一级流水线W
18
`[31:0],并将其储存于第十六低位寄存器中,然后将上一时钟周期低位寄存器中除第一级流水线和第二级流水线之外的数据左移32bit;在计算过程中,还生成W
16
的第三进位W
16
[31:0]_c、W
17
的第二进位W
17
``[31:0]_c以及W
18
的第一进位W
18
`[31:0]_c;步骤S34,当t=4时,基于上一时钟周期低位寄存器中的数据,计算W
17
低32bit的第三级流水线W
17
[31:0],并将其储存于第十四低位寄存器中,同时,计算W
18
低32bit的第二级流水线W
18
``[31:0],并将其储存于第十五低位寄存器中,同时,还计算W

【专利技术属性】
技术研发人员:胡展
申请(专利权)人:珠海一微半导体股份有限公司
类型:发明
国别省市:

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

1