一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种双线性对计算加速系统及方法与流程

2021-12-14 22:42:00 来源:中国专利 TAG:


1.本发明涉及信息安全芯片设计技术领域,更具体地说,涉及一种双线性对计算加速系统及方法。


背景技术:

2.传统的非对称加密体系中需要用户自己产生自己的私钥,并计算对应的公钥,提交给相关机构,其验证他们的身份,并提供对应的证书连接其公钥与身份。这些需要公钥基础结构(public keyinfrastructure,后称pki),带来了繁琐的维护问题。沙米尔引入的基于身份的(identitybaseencryption,后称ibe)密码学的概念在试图减轻pki的负担。在ibe中,用户的私钥由密钥生成中心(keygenerationcenter,后称kgc)根据主密钥和用户标识计算得出,用户的公钥由用户标识唯一确定,从而用户不需要通过第三方保证其公钥的真实性。与基于证书的公钥密码系统相比,标识密码系统中的秘钥管理环节可以得到适当简化。
3.ibe密码算法的优势使其具有很大发展潜力和应用前景,引起了国内外信息安全管理机构、密码专家和应用系统的关注。至2014年,国际上已有多家机构将ibc算法采纳为行业或组织的密码标准,例如rfc5091基于身份加密标准#1:超奇异曲线在bf和bb1密码体制中的应用;rfc5408基于身份加密的架构和支撑数据结构;rfc5409使用bf和bb基于身份加密:密码消息语法的算法(cms);rfc6267 mikey

ibake:多媒体因特网(mikey)中基于身份的认证密钥交换(ibake)分发的模式;rfc6508sakai

kasahara密钥加密(sakke);rfc6509mikey

sakke:多媒体因特网(mikey)sakai

kasahara密钥加密;iso/iec18033

5信息技术

安全技术

加密算法

第五部分:基于标识的密码;ieeep1363.3基于对的算法加密标准(草案)。
4.2007年12月,国家密码管理局组织专家完成了ibc密码(identity

based cryptograph)算法标准草案制定工作,2008年确定了sm9密码算法型号。2014年进行并完成对标准算法的完善和修改,2015年作了审定,2016年国家密码管理局正式发布了sm9密码算法标准。
5.但是,双线性具有计算复杂度较高,加密速度较慢的问题。且由上述叙述也可看出,ibe密码算法标准多,双线性对计算种类多。这些问题的存在严重的影响了前沿算法在生产生活中的应用。除此之外,各类公布出的ibc设计方案一般都是基于通用计算平台的软件实现,虽然有其积极的作用,但速度较慢,仍有巨大的改进空间。
6.一些学者针对某一种特定密码算法标准设计了对应的硬件加速器,此类设计加速效果好,能效高,对于特定的格密码算法有着一定的应用价值。但此类设计通用性较差,几乎没有可移植性,无法应对不同的加密标准,对于算法的演进适用性较差。


技术实现要素:

7.1.要解决的技术问题
8.针对现有技术中存在的双线性对计算复杂度高,加密速度慢,现有加速器通用性较低等问题,本发明提供一种双线性对计算加速系统及方法,该方法可实现计算模块的重构,满足不同双线性对的加速需求,大幅提高运算速度,在保证高性能的同时兼具一定的通用性。
9.2.技术方案
10.本发明的目的通过以下技术方案实现。
11.一种双线性对计算加速系统,其特征在于,包括专用编译器、指令译码模块,顶层控制模块,数据接口,重构控制模块和双线性对计算模块;专用译码器用于接收外部工程人员以编程语言形式的输入数据并译码输出指令,使用加速系统的工程人员可以利用编程语言说明需要加速的计算内容,专用编译器将根据源代码翻译出相关的配置信息并传递至指令译码模块;指令译码模块用于接收专用译码器的指令数据生成配置信息发送至顶层控制模块和重构控制模块,配置重构控制模块及顶层控制模块;重构控制模块用于根据接收的配置信息控制双线性对计算模块实现重构,改变双线性对计算模块内部连线情况;顶层控制模块用于根据配置信息将通过数据接口接收的计算数据发送至重构后的双线性对计算模块进行计算,顶层控制模块控制数据流动及循环次数,数据接口用于连接不同总线的对应接口,负责产生总线控制信号并接收或发送数据。
12.本发明通过重构控制模块在接收到指令译码模块的配置后修改其与双线性对计算模块的互联方式以加速不同双线性对的计算,本发明支持计算模块的重构,可实现多种线性对的计算,满足不同双线性对的加速需求,提高系统运算速度,在保证高性能的同时兼具一定的通用性。
13.优选的,顶层控制模块包括分为多块的作为中间数据存储单元的sram,sram支持不同位宽的读写。加速系统对于不同配置使用不同的sram块数,不使用的sram支持电源门控关闭以降低静态功耗,保证在不同配置情况下的能耗最优解。
14.优选的,所述双线性对计算模块包括椭圆曲线中关键的点加、g
u,v
(q)、g
v,v
(q)、g
v,

v
(q),集成完整的miller算法计算单元,快速模幂单元以及有限域的加法、乘法及求逆单元。
15.记u=(x
u
,y
u
),v=(x
v
,y
v
),u=(x
q
,y
q
),
16.λ1=(3x
v2
a)/(2y
v
),λ2=(y
u

y
v
)/(x
u

x
v
)
17.则有以下性质:
18.(1)g
u,v
(o)=g
u,o
(q)=g
o,v
(q)=1;
19.(2)g
v,v
(q)=λ1(x
q

x
v
)

y
q
y
v
;q≠o;
20.(3)g
v,v
(q)=λ2(x
q

x
v
)

y
q
y
v
;q≠o,u≠
±
v;
21.(4)g
v,

v
(q)=x
q

x
v
;q≠o。
22.点加单元可采用jacobian加重射影坐标系实现加速。计算模块包括一系列计算单元,计算单元根据需要调用。
23.优选的,双线性对计算模块中的快速模幂运算单元使用蒙哥马利算法。应用时具体的实现时采用cios算法,优选的,可设计16级流水线增大吞吐率。
24.优选的,双线性对计算模块中的有限域求逆单元采用改进过的扩展欧几里得算法。改进过的扩展欧几里得算法复杂度较低,计算速度快。
25.优选的,数据接口与axi总线连接。
26.优选的,所述系统还包括噪声产生模块,所述噪声产生模块用于产生随机的计算使得功耗等一系列物理量变得随机以抵御外部的侧信道攻击。噪声产生模块是使用一个随机数发生器产生对应的随机数,然后将随机数传递至计算单元进行冗余运算以防御侧信道攻击,计算单元的选用需要根据实际的安全等级选择,安全等级较低时可选用常用的乘除计算单元,安全等级较高时建议选择椭圆曲线相关计算单元。
27.一种双线性对计算加速方法,专用译码器接收外部数据并进行译码,指令译码模块根据专用译码器译码后数据生成配置信息,并发送至顶层控制模块和重构控制模块,重构控制模块根据接收的配置信息控制双线性对计算模块进行重构;顶层控制模块根据配置信息将通过数据接口接收的计算数据发送至双线性对计算模块进行计算。
28.优选的,顶层控制模块在重构控制模块完成配置后,再将从数据接口读取的数据发送至双线性对计算模块进行计算。
29.优选的,模块间采用全流水运算。计算模块之间采用全流水实现,计算过程也是全流水的;工程人员可根据自身需求及硬件资源选择采用串行或并行计算。假设批数为m,使用流水运算方法的级间中断引起的固定延时仅为m。
30.本发明使用加速系统通过重构控制模块改变双线性对计算模块内连线方式,进而改变双线性对计算模块的计算顺序,使其复用同一套计算资源以实现多种双线性对算法。
31.3.有益效果
32.相比于现有技术,本发明的优点在于:
33.(1)本发明加速系统的计算性能高,相较于通用计算平台,本发明加速系统可达到更高的效率及能效,在顶层控制模块接收到外部工程人员编写的程序后,会根据程序改变双线性对计算模块内部的互联关系;对于双线性对计算模块中的资源情况,本发明可根据实际情况进行优化处理以保证整体性能;
34.(2)本发明加速方法硬件开销少,即芯片面积小、生产成本低;相较于基于查找表实现的fpga完成同样的功能,本发明采用硬接线的专用集成电路,芯片面积更小;且与一种双线性对一套计算资源的asic架构比较,本发明提出的架构可以使得多个不同的双线性对使用同一套硬件资源,减小硬件资源开销的同时,还进一步的减小芯片的面积及生产成本,在面积要求严苛的芯片设计领域有着巨大的优势;
35.(3)本发明结构简单,运用难度低,相较于使用verilog/vhdl编写的fpga实现方法,本发明提供对应的编译器及调用接口,使得工程人员在使用本发明时无需耗费时间来编写对应的硬件程序。
附图说明
36.图1为本发明加速系统架构示意图;
37.图2为本发明加速系统工作流程示意图。
具体实施方式
38.下面结合说明书附图和具体的实施例,对本发明作详细描述。
39.实施例
40.为说明本发明的有益作用,在描述具体实施例前,先对本发明中加速的双线性对计算的核心公式进行详细描述。
41.miller算法中核心循环为:
42.f=f2*g
v,v
(q)*g
2v
(q)
‑1,
43.其中,乘法计算均为有限域乘法,求

1次方为有限域求逆。g
*,*
(q)为椭圆曲线上的计算。
44.weil对:
45.e
r
(p,q)=f
p t,r
(q u)f
t,r
(u)f
u,r
(p t)f
q u,r
(t)*,(f
t,r
(q u)f
p t,r
(u)f
q u,r
(p r)f
u,r
(t))
‑1,
46.其中,加法为椭圆曲线点加,乘法计算均为有限域乘法,求逆为有限域求逆,f
a
(b)为miller算法。
47.tate对:
[0048][0049]
其中,f
p,r
(q)为miller函数,其余为快速模幂计算。
[0050]
ate对核心循环为:
[0051]
f=f2*g
v,v
(p),
[0052]
输出为:
[0053][0054]
其中除法为与有限域逆元作乘法。
[0055]
本发明方法支持双线性对计算,相关的计算可在相关数据安全协议中查到,此处不再一一列举。
[0056]
如图1所示,本实施例公开一种加速系统,所述系统包括专用编译器、指令译码模块,顶层控制模块,数据接口,重构控制模块和双线性对计算模块;专用编译器连接指令编译模块,指令编译模块与顶层控制模块、重构控制模块均连接,顶层控制模块还连接数据接口和双线性对计算模块,双线性对计算模块还连接重构控制模块,数据接口与外部总线连接。
[0057]
如图1所示,加速系统接收外部工程人员编写的代码,由专用编译器编译产生对应的配置指令发送流传至指令译码模块,本实施例中假设工程人员选择加速10000次wile对计算;指令译码模块读取专用译码器发送的外部工程人员的指令后,将进行wile对计算命令配置给重构控制模块,同时将10000次wile对计算的命令配置给顶层控制模块;重构控制模块在接收配置信息后修改双线性对计算模块内部连线,配置完成对应的计算顺序;顶层控制模块在重构控制模块完成配置后从数据接口读取计算所需的数据并依次传入双线性对计算模块进行计算,用计数器计数10000次直至结束。结束信号在计算完成后产生,通过顶层控制模块传输至上位机。
[0058]
本实施例中,专用编译器用于接收外部工程人员以编程语言形式的指令输入,并输出对应指令至指令译码模块。使用本实施例所述加速系统的工程人员可以利用编程语言说明需要加速的计算内容,专用编译器将根据源代码翻译出相关的配置信息并传递至指令译码模块。
[0059]
指令译码模块用于接收专用编译器输入指令并产生相关配置信息,所述配置信息用于配置重构控制模块和顶层控制模块。顶层控制模块用于接收指令译码模块的配置信息,以及数据接口数据由此控制数据流动及循环次数。数据接口用于连接不同外部总线的接口,产生对应总线的控制信号并用于接收或发送数据。重构控制模块用于接收指令译码模块的配置信息,并控制改变双线性对计算模块内部连接情况。
[0060]
双线性对计算模块用于接收重构控制模块的数据和顶层控制模块数据,根据重构控制模块数据改变内部连接,根据顶层控制模块数据进行计算。双线性计算模块为本发明的核心,所述计算模块包括椭圆曲线中关键的点加、g
u,v
(q)、g
v,v
(q)、g
v,

v
(q),集成完整的miller算法计算单元,快速模幂单元以及有限域的加法、乘法及求逆单元,用于加速包括但不限于weil对、tate对、ate对、r

ate对计算,进一步的还可以用于加速基于不同双线性对的公钥密码算法,如国密算法sm9。本发明可用于多种线性对计算的加速,相较于现有技术都是针对单一双线性对,本发明适用性更强。
[0061]
本实施例双线性对计算模块之间数据采用全流水实现,计算过程也是全流水的,工程人员可根据自身需求及硬件资源选择采用串行或并行计算。流水运算即一级运算完成后执行下一级运算;当运算多批次数据时,所有批次的第一级同时计算,所有批次的一级运算完成后执行所有批次的下一级运算。假设批数为m,本实施例相比于现有技术采用完成第一批运算后进行第二批运算,直至完成最后一批运算的方法,本实施例的级间中断引起的固定延时仅为m。
[0062]
顶层控制模块包括分为多块的sram作为中间数据的存储单元,且该sram支持不同位宽的读写,应用时针对不同配置顶层控制模块使用不同的sram块数,不使用的sram支持电源门控关闭以降低静态功耗,保证在不同配置情况下的能耗最优解。本实施例sram的大小为128k,其中sram分为16块,支持32、64和128bit位宽读写,每块sram支持独立的电源门控,不使用的sram支持电源门控关闭以降低静态功耗,保证了不同配置情况下的能耗最优解。
[0063]
作为本实施例的一种改进,所述加速系统还包括噪声产生模块,用于产生随机的计算,使得功耗等一系列物理量变得随机以抵御来自外部的侧信道攻击。
[0064]
如图2所示,加速系统包括一种加速方法,具体包括:工程人员先根据实际需要编写相应的程序;专用编译器在收到编译要求后根据程序内容产生配置指令并通过配置线传至指令译码模块;指令译码模块根据读取到的配置指令,配置重构控制模块及顶层控制模块;重构控制模块根据指令译码模块的配置信息控制修改双线性对计算模块的内部连线,以完成对应的计算工作;顶层控制模块在重构控制模块完成双线性对计算模块的配置后,从数据接口读取外部总线的计算相关数据,并依次传输至双线性对计算模块进行计算;结束信号在计算完成后产生,通过所述顶层控制模块传输至上位机。
[0065]
本实施例在双线性对计算模块中,快速模幂运算单元使用蒙哥马利算法,具体的,使用cios算法,以32进制计算,使得蒙哥马利算法的流水线深度为16。即蒙哥马利模乘算法的延时为16个时钟周期,同时可进行16组数据的模乘。选择此进制可保证较大数据的计算性能,也可减少小数字运算时的冗余。在蒙哥马利乘模算法单元中使用cios算法实现流水线,可供多个数据同时计算,保证整体模幂算法整体的吞吐率和硬件时序。同时,流水线设计使后端实现时可使用低电压单元,降低整体设计的功耗。
[0066]
在本实施例在双线性对计算模块中,有限域求逆单元采用改进过的扩展欧几里得算法,此算法为业界通用方法,在此不再赘述。改进过的扩展欧几里得算法复杂度较低,计算速度快。
[0067]
在本实施例中数据接口在选择axi总线时,选择256bit位宽传输,可支持burst传输。
[0068]
本发明还可以根据实际需求,通过噪声产生模块产生随机数,其中噪声产生模块是使用一个随机数发生器产生对应的随机数,然后将随机数传递至计算单元进行冗余运算以防御侧信道攻击,计算单元的选用需要根据实际的安全等级选择,安全等级较低时可选用常用的乘除计算单元,安全等级较高时建议选择椭圆曲线相关计算单元。
[0069]
以上示意性地对本发明创造及其实施方式进行了描述,该描述没有限制性,在不背离本发明的精神或者基本特征的情况下,能够以其他的具体形式实现本发明。附图中所示的也只是本发明创造的实施方式之一,实际的结构并不局限于此,权利要求中的任何附图标记不应限制所涉及的权利要求。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本专利的保护范围。此外,“包括”一词不排除其他元件或步骤,在元件前的“一个”一词不排除包括“多个”该元件。产品权利要求中陈述的多个元件也可以由一个元件通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献