当前位置: 首页 > 专利查询>山东大学专利>正文

一种基于SM2特定域的快速模乘芯片实现装置及方法制造方法及图纸

技术编号:34917902 阅读:19 留言:0更新日期:2022-09-15 07:08
本发明专利技术公开了一种基于SM2特定域的快速模乘芯片实现装置及方法,装置包括256比特快速乘法器和SM2快速模约减器;256比特快速乘法器包括依次连接的分解重组器,90比特定长压缩乘法器以及数据后处理器,共输入2个256比特无符号整数,将数据送入分解重组器中,分解重组器将重组后的结果分周期送入90比特定长压缩乘法器中,得到的结果再送入数据后处理器中进行处理,最终输出512比特乘法结果。本发明专利技术所公开的装置及方法具有功耗低、延时低、面积时间积低、吞吐率高的特点,能满足吞吐率需求高的物联网终端设备数据加密需求。联网终端设备数据加密需求。联网终端设备数据加密需求。

【技术实现步骤摘要】
一种基于SM2特定域的快速模乘芯片实现装置及方法


[0001]本专利技术涉及加密算法
,特别涉及一种基于SM2特定域的快速模乘芯片实现装置及方法。

技术介绍

[0002]160位椭圆曲线(Ellipse Curve Cryptography,简称ECC)加密安全性相当于1024位RSA加密,而210位椭圆曲线加密安全性甚至相当于2048位RSA加密。因此,对于椭圆曲线加密系统来说,这一点从计算量、处理速度、存储空间和通信带宽等角度分析,椭圆曲线加密系统都有很大的优势,很容易使用软件或硬件在计算机上进行实现,并且加密和签名的速度都很高。现在密码学界普遍认为它将替代RSA成为通用的公钥密码算法,目前已成为研究的热点,是很有前途的研究方向。
[0003]作为椭圆曲线密码体制,SM2算法的数学基础是椭圆曲线上的点构成的Abel加法群中离散对数问题,对于该算法的攻击,需要指数时间。利用数学计算可以证明有限域上的椭圆曲线离散对数问题的困难性要高于一般乘法群上的离散对数问题的困难性,安全性强,目前尚未对SM2椭圆曲线的有效攻击。SM2椭圆曲线加密算法在同等密钥长度的条件下,安全性远远强于现有的RSA、AES系列等标准密码,设计紧凑。
[0004]除了以上所述外,SM2加密算法还具有计算量存储量小、带宽小、开销低、加密和签名的速度高等优点,因此,SM2被认为是下一代最通用的公钥密码系统,在密码领域有着广阔的应用前景。SM2密码算法正在以其更短的密钥和理论上更高的强度引起业界的重视,其芯片实现也将是公钥密码体制中的一个聚焦点。
[0005]尽管通过软件实现密码算法设计成本低、开发周期短,但是利用软件实现的加密算法受限于处理器的运行频率,很难做到高速加密。此外,由于基于有限域SM2的模乘算法有多种解决方案,算法需要不断迭代,因此,设计专用芯片需要重新投入研发成本。

技术实现思路

[0006]为解决上述技术问题,本专利技术提供了一种基于SM2特定域的快速模乘芯片实现装置及方法,以达到具有功耗低、延时低、面积时间积低、吞吐率高的特点,能满足吞吐率需求高的物联网终端设备数据加密需求的目的。
[0007]为达到上述目的,本专利技术的技术方案如下:
[0008]一种基于SM2特定域的快速模乘芯片实现装置,包括256比特快速乘法器和SM2快速模约减器,所述256比特快速乘法器与SM2快速模约减器相连,将最终得到的512比特乘法结果传给SM2快速模约减器;
[0009]所述256比特快速乘法器包括依次连接的分解重组器,90比特定长压缩乘法器以及数据后处理器,从外部输入2个256比特无符号整数,进入分解重组器中,分解重组器将重组后的结果分周期送入90比特定长压缩乘法器中,得到的结果再送入数据后处理器中进行处理,最终输出512比特乘法结果;
[0010]所述分解重组器包含延时单元和90比特加法器,将输入的256比特无符号整数首先分解成3个90比特无符号整数,然后使用90比特加法器将对应90比特无符号整数进行重组,经过延时单元后按顺序输出,送入90比特定长压缩乘法器中;
[0011]所述90比特定长压缩乘法器包含24
×
18bits部分积乘法分组器、3

2压缩器、4

2压缩器5

2压缩器、180比特加法器;输入重组后待操作的两个90比特无符号整数后,首先利用DSP资源进行24
×
18bits的乘法运算,然后将得到的部分积进行分组,将每一组数据分别利用3

2压缩器、4

2压缩器5

2压缩器进行数据处理,最终得到和Sum和进位Carry,这两个数据均为180比特,将其输入180比特加法器中,输出最终的90比特乘法的结果;所述180比特加法器采用行波进位加法器构成进位结构,90比特定长压缩乘法器与数据后处理器相连,将得到的结果送入数据后处理器中进行后续处理;
[0012]所述数据后处理器包含90比特加减法器和180比特加减法器,将90比特定长压缩乘法器的结果作为输入,首先按照要求使用90比特加减法器和180比特加法器对数据进行处理,然后将结果存放到不同的寄存器中,拼接之后即可得到最终的结果;
[0013]所述SM2快速模约减器包含32比特加减法器,采用行波进位加法器构成进位结构,将输入的512比特乘法结果拆分为16个32比特无符号整数,再运算重复出现的部分和因子,接下来进行32位的高基加法,最后对每32位加法的结果进位进行处理,得到最终输出模乘结果。
[0014]上述方案中,所述分解重组器的运算过程如下:
[0015]设256比特无符号整数A、B为输入值,首先进入分解重组器中,将A、B划分为90比特的A2、A1、A0、B2、B1、B0,即A=(A2,A1,A0)
90x3
,B=(B2,B1,B0)
90x3
,其中A0、B0对应A、B的1至90比特,A1、B1对应A、B的91至180比特,A2、B2对应A、B的181至256比特,A2、B2若不足90比特,则进行补零;使用90比特加法器运算得到A2+A1,A2+A0,A1+A0,B2+B1,B2+B0,B1+B0;然后使用延时单元依次将成对的输入

A2、B2,

A1、B1,

(A2+A1)、(B2+B1),

A0、B0,

(A0+A1)、(B0+B1),

(A2+A0)、(B2+B0)分别延迟0,1,2,3,4,5个时钟周期送入90比特定长压缩乘法器。
[0016]上述方案中,所述90比特定长压缩乘法器完成90比特无符号整数的乘法运算,其输出结果为180比特无符号整数,其中的运算过程如下:
[0017]设90比特无符号整数a,b为输入值,首先将a每24比特划分为a3,a2,a1,a0,将b每18比特划分为b4,b3,b2,b1,b0,即a=(a3,a2,a1,a0)
24x4
,b=(b4,b3,b2,b1,b0)
18x5
,使用20个FPGA中的DSP进行计算,计算完成之后,得到20个42比特的部分积结果,将这些部分积按照权重对应拼接起来,拼接结果的每一部分都是21比特的数据,由此每一列对应相加即可得到最终的乘法结果;90比特定长压缩乘法器在其第一次产生输出后,每个时钟周期依次输出运算结果送入数据后处理器。
[0018]上述方案中,所述数据后处理器使用6个180比特的寄存器P2,P1,P0,P
12
,P
01
,P
02
存储六次不同输入的输出结果;对于送入90比特定长压缩乘法器不同的数,其运算输出需要不同的后处理:当输入为

A2、B2,

A1、B1,

A0、B0时,直本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SM2特定域的快速模乘芯片实现装置,其特征在于,包括256比特快速乘法器和SM2快速模约减器,所述256比特快速乘法器与SM2快速模约减器相连,将最终得到的512比特乘法结果传给SM2快速模约减器;所述256比特快速乘法器包括依次连接的分解重组器,90比特定长压缩乘法器以及数据后处理器,从外部输入2个256比特无符号整数,进入分解重组器中,分解重组器将重组后的结果分周期送入90比特定长压缩乘法器中,得到的结果再送入数据后处理器中进行处理,最终输出512比特乘法结果;所述分解重组器包含延时单元和90比特加法器,将输入的256比特无符号整数首先分解成3个90比特无符号整数,然后使用90比特加法器将对应90比特无符号整数进行重组,经过延时单元后按顺序输出,送入90比特定长压缩乘法器中;所述90比特定长压缩乘法器包含24
×
18bits部分积乘法分组器、3

2压缩器、4

2压缩器5

2压缩器、180比特加法器;输入重组后待操作的两个90比特无符号整数后,首先利用DSP资源进行24
×
18bits的乘法运算,然后将得到的部分积进行分组,将每一组数据分别利用3

2压缩器、4

2压缩器5

2压缩器进行数据处理,最终得到和Sum和进位Carry,这两个数据均为180比特,将其输入180比特加法器中,输出最终的90比特乘法的结果;所述180比特加法器采用行波进位加法器构成进位结构,90比特定长压缩乘法器与数据后处理器相连,将得到的结果送入数据后处理器中进行后续处理;所述数据后处理器包含90比特加减法器和180比特加减法器,将90比特定长压缩乘法器的结果作为输入,首先按照要求使用90比特加减法器和180比特加减法器对数据进行处理,然后将结果存放到不同的寄存器中,拼接之后即可得到最终的结果;所述SM2快速模约减器包含32比特加减法器,采用行波进位加法器构成进位结构,将输入的512比特乘法结果拆分为16个32比特无符号整数,再运算重复出现的部分和因子,接下来进行32位的高基加法,最后对每32位加法的结果进位进行处理,得到最终输出模乘结果。2.根据权利要求1所述的一种基于SM2特定域的快速模乘芯片实现装置,其特征在于,所述分解重组器的运算过程如下:设256比特无符号整数A、B为输入值,首先进入分解重组器中,将A、B划分为90比特的A2、A1、A0、B2、B1、B0,即A=(A2,A1,A0)
90x3
,B=(B2,B1,B0)
90x3
,其中A0、B0对应A、B的1至90比特,A1、B1对应A、B的91至180比特,A2、B2对应A、B的181至256比特,A2、B2若不足90比特,则进行补零;使用90比特加法器运算得到A2+A1,A2+A0,A1+A0,B2+B1,B2+B0,B1+B0;然后使用延时单元依次将成对的输入

A2、B2,

A1、B1,

(A2+A1)、(B2+B1),

A0、B0,

(A0+A1)、(B0+B1),

(A2+A0)、(B2+B0)分别延迟0,1,2,3,4,5个时钟周期送入90比特定长压缩乘法器。3.根据权利要求2所述的一种基于SM2特定域的快速模乘芯片实现装置,其特征在于,所述90比特定长压缩乘法器完成90比特无符号整数的乘法运算,其输出结果为180比特无符号整数,其中的运算过程如下:设90比特无符号整数a,b为输入值,首先将a每24比特划分为a3,a2,a1,a0,将b每18比特划分为b4,b3,b2,b1,b0,即a=(a3,a2,a1,a0)
24x4
,b=(b4,b3,b2,b1,b0)
18x5
,使用20个FPGA中的DSP进行计算,计算完成之后,得到20个42比特的部分积结果,将这些部分积按照权重对应拼接起来,拼接结果的每一部分都是21比特的数据,由此每一列对应相加即可得到最终的乘法结果;90比特定长压缩乘法器在其第一次产生输出后,每个时钟周期依次输出运算结
果送入数据后处理器。4.根据权利要求3所述的一种基于SM2特定域的快速模乘芯片实现装置,其特征在于,所述数据后处理器使用6个180比特的寄存器P2,P1,P0,P
12
,P
01
,P
02
存储六次不同输入的输出结果;对于送入90比特定长压缩乘法器不同的数,其运算输出需要不同的后处理:当输入为

A2、B2,

A1、B1,

A0、B0时,直接将结果分别存储到寄存器P2,P1,P0中,当输入为

(A2+A1)、(B2+B1)时,需要对结果减去P2与P1后存入P
12
,当输入为

(A0+A1)、(B0+B1)时,需要对结果减去P1与P0,加上P0的高90位再存入P
01
,当输入为

(A2+A0)、(B2+B0)时,需要对结果减去P2与P0,加上P1与P
01
的高90位再存入P
02
;在该过程中涉及的加减法需要使用180比特加减法器;当上述运算都完成后,将P2高90比特,P2低90比特与P
12
高90比特相加结果,P
12
低90比特与P
02
高90比特相加结果,P
02
低90比特,P
01
低90比特,P0低90比特的二进制结果按顺序拼接截取低512位,即为256比特快速乘法器的输出结果;在该过程中涉及的加减法需要使用90比特加减法器。5.根据权利要求1所述的一种基于SM2特定域的快速模乘芯片实现装置,其特征在于,所述SM2快速模约减器实现对素数p取余的功能,其中的运算过程如下:首先,输入512比特整数c对素数p取余,其中c的范围是0≤c<p2,p=2
...

【专利技术属性】
技术研发人员:杨刚强崔冰洋计小宇万志国熊海良于俊
申请(专利权)人:山东大学
类型:发明
国别省市:

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

1