一种用于双线性对的四输入FIOS模乘算法及架构设计

文档序号:26101404发布日期:2021-07-30 18:12阅读:110来源:国知局
一种用于双线性对的四输入FIOS模乘算法及架构设计

本发明涉及高性能标识密码硬件设计技术领域,尤其涉及一种用于双线性对的四输入fios模乘算法及架构设计。



背景技术:

随着互联网的发展,以其为基础设施的平台对社会中信息交流影响越来越大,同时网络空间收到的威胁也逐年增加,敏感信息的安全保障不仅存在于个人和企业,甚至能威胁到国家的安全,加强互联网空间安全早已成为国家安全战略层次的重要部分,因此如何保障网络安全是一个热点。

非对称密码体系(又称为公钥密码)作为现代密码学中的重要组成部分不仅有加密信息的编码技术,还有如数字签名和认证等安全服务。然而在传统公钥密码体系中需要使用公钥证书证明身份,因此面对用户量大的情况进行证书的管理和验证需要巨大的存储和计算资源,为弥补这一问题,shamir在1985年提出基于标识的密码体系,该体系中用户使用个人身份信息作为密钥的生成,无需公钥证书的流程大幅度节省了资源,2001年boneh和franklin使用双线性对构造了实用的基于标识的密码方案,因此双线性对成为密码领域的研究热点。

双线性对经过十几年的发展,逐渐被广泛应用于构造密码协议,但由于双线性对的计算复杂,其计算速度成为制约其被广泛推广的问题所在,因此不断对其改进算法以及设计适合的硬件加速器以提高双线性对的执行效率,模乘作为双线性对的基本计算与其执行效率联系密切,基本的素数域模乘是计算形如a·bmodn的操作,而在双线性对的基本域二次扩域中的模乘操作是形如(a·b+c·d)modn的操作,使用基本模乘计算二次扩域的模乘结果会有计算量冗余导致效率低的问题,因此需要构造一个用于二次扩域的模乘来提高双线性对的计算效率。



技术实现要素:

基于上述存在的问题,本发明提供一种用于双线性对的四输入fios模乘算法及架构设计,通过对基本fios模乘的部分积共享,将两个用于素数域的fios模乘组合,得到用于二次扩域的四输入fios模乘,减少了冗余计算,对四输入fios模乘通过复用寄存器和重新排布时序等方式,减少硬件消耗资源以及减少了时钟周期,达到更短时间完成双线性对中的模乘运算,最终得以快速实现双线性对运算的目的。

本发明实施例公开一种用于双线性对的四输入fios模乘算法及架构设计,其特征在于,包括:四输入fios模乘算法、并行的四输入fios模乘、四输入fios模乘结构;

所述改四输入fios模乘算法根据双线性对中二次扩域乘法运算的特点对fios模乘进行改进,得到用于二次扩域的四输入fios模乘算法,对四输入fios模乘算法的计算步骤进行并行排布减少计算所需周期,设计适合四输入fios模乘的结构完成二次扩域下(a·b+c·d)modn的模乘运算。

进一步地,所述四输入fios模乘算法,其特征在于将两个计算a·bmodn的fios模乘组合,改进为计算(a·b+c·d)modn的二次扩域模乘;

将fios模乘的输入由两个输入a、b改为四个输入a、b、c、d,一次计算二次扩域模乘的(a·b+c·d)modn运算,在计算的过程中由于将两个a·bmodn和c·dmodn过程合并为一个,所需的模约减过程由两个合并为一个,计算量减少了25%,经过约减后的输出由原来的0≤t≤2n变为0≤t≤3n,因此最后的减法过程要由判断结果n≤t变为判断结果2n≤t或n≤t≤2n,根据判断结果决定t=t-2n、t=t-n或t=t,最终得到二次扩域下的模乘结果。

进一步地,所述并行四输入fios模乘,其特征在于依据四输入fios模乘中数据的依赖关系对其计算过程进行了并行排布;

四输入fios模乘的运算过程中,先计算累加后再进行约减如此反复循环,对算法的数据相关性进行分析,计算商值时,第2轮的ai·bj的累加只需第1轮累加的结果,因此第2轮的累加与商值的计算无数据依赖关系可并行计算,第1轮的约减、第2轮ci·dj的累加和第3轮ai·bj的累加无直接数据依赖关系可并行计算,同理对该算法进行并行处理,可大幅度缩短该算法的运算周期,当计算256位二次扩域且模乘且操作位宽为64位时,使用四输入fios算法运算包括最终减法只需33个周期即可完成。

进一步地,所述四输入fios模乘结构,其特征在于控制端、3个乘加单元、寄存器以及最终减法模块;

控制端使用状态机控制该电路结构的工作状态包括:启动、累加、计算商值、约减、最终减法以及输出模乘结果,使用3个乘加单元可满足2个用于a、b以及c、d的累加1个用于约减的过程,相应数据的输入分别连接在乘加单元的输入端即可,无需复杂的控制逻辑;

乘加单元根据算法操作位宽而设定,如操作位宽为64bit时乘加单元包括:64位乘法器以及129位加法器的加法器来实现相应大数乘法和结果的加法,并对结果进行移位和取模如(q,z)=q+x·y+z的操作,其中x、y、z的位宽为64bit,q的位宽为65bit;

寄存器作为对三个乘加单元输出的存储单元,ti_reg为存储商值的存储单元,寄存器za_reg、zb_reg、zc_reg分别对每1轮ai·bj累加、ci·dj累加和约减后的取模结果进行存储,并作为下一轮输入,寄存器qa_reg、qb_reg、qc_reg分别对每1轮对ai·bj累加、ci·dj累加和约减后的移位结果进行存储,寄存器zc_reg最后一轮的结果,作为最终减法判定条件返回控制端中,经过判定做最终减法后得到二次扩域模乘的输出;

终减法模块将最后1轮zc_reg中存储的数值作为输入,对其与模值n和2n的大小进行对比,对比结果需返回控制端,根据控制端判断的结果决定t=t-2n、t=t-n或t=t,最终得到二次扩域下的模乘结果。

与现有技术相比至少实现了如下的有益效果:本发明提出的一种用于双线性对的四输入fios模乘算法及架构设计,其中四输入fios模乘算法在计算二次扩域的模乘时,通过将两个基本fios模乘进行组合,模乘的约减部分合并为一个,减少了近25%的计算总量,相较于使用fios模乘计算二次扩域的模乘,减少了s2+s的字乘、2s2+4s+2的字加,对四输入fios模乘进行了并行排布,当计算256位二次扩域模乘操作位宽为64位时,在33个时钟周期内即可完成模乘运算,对于算法中的计算过程相似的情况可多次复用乘加单元,并以此设计了适合四输入fios的硬件结构,其最大运算速率可达2.0ghz,总耗时16.5ns即可完成二次扩域下(a·b+c·d)modn的模乘运算,提高了双线性对的运算速率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的四输入fios的数据转移图;

图2为本发明实施例提供的适用于四输入fios模乘的实现结构图;

图3为本发明实施例提供的用于四输入fios模乘的乘加单元图。

具体实施方式

为了使本发明的目的,技术方案和优点更加清楚,下面结合附图,对本发明实施例提供的一种用于双线性对的四输入fios模乘算法及架构设计的具体实施方式进行详细地说明。

应当理解,下面所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

本发明实施例公开一种用于双线性对的四输入fios模乘算法及架构设计,包括:四输入fios模乘算法、并行的四输入fios模乘、四输入fios模乘结构;

所述四输入fios模乘算法根据双线性对中二次扩域乘法运算的特点对fios模乘进行改进,得到用于二次扩域的四输入fios模乘算法,对四输入fios模乘算法的计算步骤进行并行排布减少计算所需周期,设计适合四输入fios模乘的结构完成二次扩域下(a·b+c·d)modn的模乘运算。

优选地,所述四输入fios模乘算法,其特征在于将fios模乘的输入由两个输入a、b改为四个输入a、b、c、d,一次计算二次扩域模乘的(a·b+c·d)modn运算,在计算的过程中由于将两个a·bmodn和c·dmodn过程合并为一个,所需的模约减过程由两个合并为一个,计算量减少了25%,经过约减后的输出由原来的0≤t≤2n变为0≤t≤3n,因此最后的减法过程要由判断结果n≤t变为判断结果2n≤t或n≤t≤2n,根据判断结果决定t=t-2n、t=t-n或t=t,最终得到二次扩域下的模乘结果,四输入fios模乘算法描述如下:

优选地,所述并行的四输入fios模乘,其特征在于依据四输入fios模乘中数据的依赖关系对其计算过程进行了并行排布;

四输入fios模乘的运算过程中,先计算累加后再进行约减如此反复循环,对算法的数据相关性进行分析,计算商值时,第2轮的ai·bj的累加只需第1轮累加的结果,因此第2轮的累加与商值的计算无数据依赖关系可并行计算,第1轮的约减、第2轮ci·dj的累加和第3轮ai·bj的累加无直接数据依赖关系可并行计算,同理对该算法进行并行处理,可大幅度缩短该算法的运算周期,当计算256位二次扩域且模乘且操作位宽为64位时,使用四输入fios算法运算包括最终减法只需33个周期即可完成,并行的四输入fios在累加和约减过程的数据转移如图1所示,其时序排布为:

优选地,所述四输入fios模乘结构如图2所示,其特征在于控制端、3个乘加单元、寄存器以及最终减法模块;

控制端使用状态机控制该电路结构的工作状态包括:启动、累加、计算商值、约减、最终减法以及输出模乘结果,使用3个乘加单元可满足2个用于a、b以及c、d的累加1个用于约减的过程,相应数据的输入分别连接在乘加单元的输入端即可,无需复杂的控制逻辑;

如图3所示,乘加单元根据算法操作位宽而设定,如操作位宽为64bit时乘加单元包括:64位乘法器以及129位加法器的加法器来实现相应大数乘法和结果的加法,并对结果进行移位和取模如(q,z)=q+x·y+z的操作,其中x、y、z的位宽为64bit,q的位宽为65bit;

寄存器作为对三个乘加单元输出的存储单元,ti_reg为存储商值的存储单元,寄存器za_reg、zb_reg、zc_reg分别对每1轮ai·bj累加、ci·dj累加和约减后的取模结果进行存储,并作为下一轮输入,寄存器qa_reg、qb_reg、qc_reg分别对每1轮对ai·bj累加、ci·dj累加和约减后的移位结果进行存储,寄存器zc_reg最后一轮的结果,作为最终减法判定条件返回控制端中,经过判定做最终减法后得到二次扩域模乘的输出;

最终减法模块将最后1轮zc_reg中存储的数值作为输入,对其与模值n和2n的大小进行对比,对比结果需返回控制端,根据控制端判断的结果决定t=t-2n、t=t-n或t=t,最终得到二次扩域下的模乘结果。

与现有技术相比至少实现了如下的有益效果:本发明提出的一种用于双线性对的四输入fios模乘算法及架构设计,其中四输入fios模乘算法在计算二次扩域的模乘时,通过将两个基本fios模乘进行组合,模乘的约减部分合并为一个,减少了近25%的计算总量,相较于使用fios模乘计算二次扩域的模乘,减少了s2+s的字乘、2s2+4s+2的字加,对四输入fios模乘进行了并行排布,当计算256位二次扩域模乘操作位宽为64位时,在33个时钟周期内即可完成模乘运算,对于算法中的计算过程相似的情况可多次复用乘加单元,并以此设计了适合四输入fios的硬件结构,其最大运算速率可达2.0ghz,总耗时16.5ns即可完成二次扩域下(a·b+c·d)modn的模乘运算,提高了双线性对的运算速率。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件和必要的通用硬件平台结合的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1