一种基于二进制域的椭圆曲线密码体制的改进模除方法与流程

文档序号:11589756阅读:563来源:国知局
一种基于二进制域的椭圆曲线密码体制的改进模除方法与流程
本发明涉及域运算方法,尤其是涉及一种基于二进制域的椭圆曲线密码体制的改进模除方法。
背景技术
:随着科学技术的发展,我们的生活质量得到了巨大的改善,与此同时,信息安全问题也日趋严峻,无时无刻不威胁着我们的财产安全及个人隐私。由于不同场景有着不同的需求,所运用的加密体系与加密算法也因此有所不同,目前的加密体系主要有对称加密与非对称加密两种。自diffie.w和hellman.m于1976年共同提出了公钥加密体系,其便成为密码学研究领域的重要课题,且始终在信息安全方面发挥重要作用。与对称加密不同,非对称加密的通信双方分别有自己的公钥和私钥。目前对于公钥加密体系构建是基于三大数学难题,一是大数因子分解难解性,二是离散对数难解性,三是椭圆曲线离散对数难解性。椭圆曲线密码体制的安全基础便是椭圆曲线离散对数难解性,该体制由miller([1]v.s.miller,“useofellipticcurvesincryptography,”advancesincryptology-crypto’85proceedings.springer,1986,pp.417–426)与koblitz([2]n.koblitz,“ellipticcurvecryptosystems,”mathematicsofcomputation,vol.48,no.177,pp.203–209,1987)所提出。椭圆曲线一般表示为y2+axy+by=x3+cx2+dx+e,这类曲线称为weierstrass方程,曲线由所有满足该方程的点(x,y)共同组成,在硬件设计中,通常采用其特殊形式y2+xy=x3+ax2+1,其中a的值为0或,1,该形式的曲线称为koblitz椭圆曲线。椭圆曲线密码体制是在有限域上计算实现的,有限域分为二进制域gf(2m)与素数域gf(p),其中二进制域适合硬件实现,椭圆曲线密码体制的主要运算有点运算和域运算,点运算由点加和点倍所组成的点乘所构成。域运算由模加、模平方、模乘、模逆所构成。其中,模逆的时间消耗是最多的,目前研究模逆运算的算法有以下几类代表:一是扩展欧几里得相关算法([3]j.h.guo,c.l.wang,”systolicarrayimplementationofeuclid'salgorithmforinversionanddivisioningf(2m)”.ieeetransactionsoncomputers.1998,47(10):1161-1167),二是扩展欧几里得改进算法([4]s.c.shantz,“fromeuclid’sgcdtomontgomerymultiplicationtothegreatdivide,”tech.rep.tr-2001-95,sunmicrosystems,1995),三是基于费马小定理的求逆算法([5]t.itoh,s.tsujii,“afastalgorithmforcomputingmultiplicativeinversesingf(2m)usingnormalbases,”iece,japan,1986,pp.31–36paperoftechnicalgroup,tgit86-44.),改进费马小定理算法(m.j.zhi,“designandimplementationofellipticcurvecryptographyovergf(2m)”,dissertationofshanghaijiaotonguniversity,2007)。技术实现要素:本发明的目的在于提供可验证的、运算速度快,通过一次性检验数据最低两位的奇偶性,减少时间消耗,以实现约减效率高、运算速度快的域运算的一种基于二进制域的椭圆曲线密码体制的改进模除方法。本发明基于二进制域的椭圆曲线密码体制的改进模除方法之一,包括以下步骤:1)根据椭圆曲线密码体制的相关原理,设在二进制域gf(2m)中,已知两个阶数小于阈值m的元素x(t)和y(t),分别作为两个输入元素,同时根据nist(美国国家标准与技术研究院)所推荐的koblitz椭圆曲线参数,选择一个已知的阶数等于阈值m的既约多项式f(t);根据模除公式r(t)=y(t)/x(t)modf(t),得到模除结果r(t),或表示为y(t)≡r(t)x(t)modf(t);将使用四个寄存器a、b、u、v存储算法中所需要的中间数据,达到对模除公式r(t)=y(t)/x(t)modf(t),或y(t)≡r(t)x(t)modf(t)进行迭代约减计算的目的,首先,依次对所述四个寄存器a、b、u、v进行初始化赋值;2)在对四个寄存器a、b、u、v完成初始赋值之后,算法开始对寄存器a、b中所存储的数值进行迭代约减,在约减的过程中,四个寄存器a、b、u、v需要始终维持a×y(t)≡u×x(t)modf(t)及b×y(t)≡v×x(t)modf(t)两个公式的恒等性,从a×y(t)≡u×x(t)modf(t)及b×y(t)≡v×x(t)modf(t)两个公式观察到,当寄存器a、b中所存储的数值的发生变化之后,寄存器u、v中所存储的数值也会随之发生变化;3)算法通过判断寄存器中所存储的中间数值的低位奇偶性,使用硬件操作中的移位和异或完成迭代与约减计算;4)经过一定轮次的迭代与约减计算,寄存器a中所存储的数值将会降为1,整个除法运算的过程终止,设此时的u为ua=1,则此时的恒等式将变为y(t)≡ua=1x(t)modf(t),即ua=1的值与公式r(t)=y(t)/x(t)modf(t)中的r(t)相同,此时,寄存器u存储的数值为模除结果r(t)。本发明基于二进制域的椭圆曲线密码体制的改进模除方法之二,包括以下步骤:1)当寄存器a的最低两位为00,寄存器a将连续进行两次左移;接着判断寄存器u的数值,如果寄存器u的最低两位为00,寄存器u将连续进行两次左移;如果寄存器u的最低两位为10,寄存器u的值将变为寄存器u连续左移两次与f(t)左移一次的数据之和;如果寄存器u的最低两位为01,寄存器u的值将变为寄存器u连续左移两次与f(t)左移两次的数据之和;如果寄存器u的最低两位为11,寄存器u的值将变为寄存器u连续左移两次与f(t)左移两次的数据与f(t)左移一次的数据之和;2)当寄存器a的最低两位为10,寄存器a将进行一次左移;接着判断寄存器u的数值,如果寄存器u为偶数,那么寄存器u将进行一次左移;如果寄存器u为奇数,寄存器u的值将变为寄存器u与f(t)之和的二分之一;3)当寄存器b的最低两位为00,寄存器b将连续进行两次左移;接着判断寄存器v的数值,如果寄存器v的最低两位为00,寄存器v将连续进行两次左移;如果寄存器v的最低两位为10,寄存器v的值将变为寄存器v连续左移两次与f(t)左移一次的数据之和;如果寄存器v的最低两位为01,寄存器v的值将变为寄存器v连续左移两次与f(t)左移两次的数据之和;如果寄存器v的最低两位为11,寄存器v的值将变为寄存器v连续左移两次与f(t)左移两次的数据与f(t)左移一次的数据之和;4)当寄存器b的最低两位为10,寄存器b将进行一次左移;接着判断寄存器v的数值,如果寄存器v为偶数,那么寄存器v将进行一次左移;如果寄存器v为奇数,寄存器v的值将变为寄存器v与f(t)之和的二分之一;5)当寄存器a大于寄存器b时,首先完成a=(a+b)/2和u=u+v操作;然后判断寄存器u的值,如果寄存器u为偶数,那么寄存器u将进行一次左移,如果寄存器u为奇数,那么寄存器u的值将变为寄存器u与f(t)之和的二分之一;6)其余情况时,首先完成b=(a+b)/2和v=u+v操作;然后判断寄存器v的值,如果寄存器v为偶数,那么寄存器v将进行一次左移,如果寄存器v为奇数,寄存器v的值将变为寄存器v与f(t)之和的二分之一;7)最后返回寄存器u的值,其存储的值即为模除结果r(t)。本发明所设计的一种基于二进制域的椭圆曲线密码体制的改进模除算法,对shantz模除算法进行了改进,具体的改进方式为,对算法进行迭代约减的过程中,每次将判断寄存器中所存储的数值的最低两位数值的奇偶性,在增加不是很多硬件资源的前提下,加快了计算过程。本发明也是基于二进制域进行的设计。为了满足各个领域对于实时安全通信的需求,既要增强加密算法的安全性,又要提高加密算法的运算速度。附图说明图1为本发明算法的寄存器a、u操作框图。图2为本发明算法的寄存器b、v操作框图。图3为本发明算法在50mhz时钟下与其他模逆算法消耗时钟数的仿真比较结果。图4为本发明算法在50mhz时钟下与其他模逆算法吞吐率的仿真比较结果。具体实施方式以下将结合说明书附图对本发明的实施方式做进一步的说明。本发明是一种基于二进制域的椭圆曲线密码体制的改进模除算法,利用本发明进行模除运算的算法结构框图参考图1和图2,算法包括以下过程:1.初始化参数:本发明算法设计与验证实施基于的是二进制域gf(2m),用户根据nist推荐的koblitz椭圆曲线参数,设定两个阶数小于阈值m的元素x(t)和y(t),分别作为输入的分子分母,接着,设定一个阶数等于阈值m的既约多项式f(t)。2.初始化寄存器:本发明中将使用四个寄存器a、b、u、v,分别进行如下初始化赋值:a←x(t),b←f(t),u←y(t),v←0。3.迭代约减:完成初始赋值后,算法开始对输入进行迭代约减,约减过程通过判断寄存器中所存储的数值的低位奇偶性,来完成对应的移位和异或操作,具体表示为:1)当a[1:0]==00,a=a/4。再判断u的值,若u[1:0]==00,u=u/4;若u[1:0]==10,u=u/4+f(t)/2;若u[1:0]==01,u=u/4+f(t)/4;若u[1:0]==11,u=u/4+f(t)/4+f(t)/2。2)当a[1:0]==10,a=a/2。再判断u的值,若u为偶数,u=u/2;若u为奇数,u=(u+f(t))/2。3)当b[1:0]==00,b=b/4。再判断v的值,若v[1:0]==00,v=v/4;若v[1:0]==10,v=v/4+f(t)/2;若v[1:0]==01,v=v/4+f(t)/4;若v[1:0]==11,v=v/4+f(t)/4+f(t)/2。4)当b[1:0]==10,b=b/2。再判断v的值,若v为偶数,v=v/2;若v为奇数,v=(v+f(t))/2。5)当a>b,a=(a+b)/2和u=u+v。再判断u的值,若u为偶数,则u=u/2,若u为奇数,u=(u+f(t))/2。6)其余情况下,b=(a+b)/2,v=u+v操作。再判断v的值,若v为偶数,则v=v/2,如果v为奇数,v=(v+f(t))/2。4.输出结果:经过一定轮次的迭代约减,寄存器a的数值降为1,设此时u为ua=1,则有y(t)≡ua=1x(t)modf(t),即ua=1与r(t)=y(t)/x(t)modf(t)中的r(t)相等,故寄存器u存储的数值为模除结果r(t)。其中本发明算法对寄存器a、u进行最低两位奇偶性判定的相关操作(寄存器b、v同理),可参见表1。表1表2frequencyareacriticalpathdelaycell250mhz0.253mm23.78ns11864表3degree(m)163233283409time(ns)44806240758011320clock2243123795665.仿真结果:参考图3,可看出本发明算法在50mhz时钟下,与其他模逆算法消耗时钟数的对比结果。参考图4,可看出本发明算法在50mhz时钟下,与其它模逆算法吞吐率的对比结果。本发明算法在0.18cmos工艺下的综合结果,参见表2,本发明算法在在50mhz时钟下的不同阈值时所消耗时钟数,参见表3。可看出本发明算法在0.18cmos工艺下的综合结果。可看出本发明算法在在50mhz时钟,不同阈值下所消耗时钟数。本发明根据r(t)=y(t)/x(t)modf(t),算法先将寄存器a、b、u、v赋予对应初始值,再通过一次性判断寄存器中最低两位二进制数据的值,实现对应约减操作,直到寄存器a中存储的数值降为1,寄存器u中存储的数值即为模除结果r(t)。通过verilog语言实现算法并仿真,对比改进的欧几里得算法及费马小定理算法,该算法在时间消耗方面存在优势,有效加速了模除计算,可用于ecc加解密ip核中。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1