用于二元域的快速归约求模方法

文档序号:7616829阅读:441来源:国知局
专利名称:用于二元域的快速归约求模方法
技术领域
本发明涉及一种用于二元域的快速归约求模方法,特别地,涉及一种在点乘运算求解模乘和模方中快速求模运算的方法。
背景技术
椭圆曲线公钥密码体制(ECC),其安全性是基于椭圆曲线上的加法群的离散对数问题(ECDLP)求解的困难性。它作为一种新兴的公开密钥密码体制,同其它诸如RSA等常用公钥密码体系相比,具有密钥短、实现速度快、安全性高等优点,在网络通信迅猛发展的今天,有着良好的应用前景。
ECC的点乘运算可以分解为点加和倍点,并有多种方法,如binary method,binary NAF method,Window NAF,Fixed-base window及Fixed-base comb等。在点加和倍点运算当中存在着求解模逆的步骤,由于求解模逆较慢,采用射影坐标(projective coordinate)可以将求模逆的次数减少至一次,从而加快速度。有研究表明,射影Montgomery点乘方法是一种不需要进行预计算的点乘方法,而且它速度快,安全性高。
分析方法可知,点乘运算最后可以分解为模乘和模方的运算。如何快速地求解模乘和模方,特别是模乘和模方当中的求模运算成为进一步加快运算的关键。

发明内容
本发明的目的在于提供一种用于二元域的快速归约求模方法。
用于二元域的快速归约求模方法,包含用于输入原始数据C(x)的步骤;用于输出最后结果的步骤;所述用于二元域的快速归约求模方法还包括用于将输入的原始数据C(x)变形的步骤;用于将输入的原始数据C(x)求模的步骤;用于判断C(X)的次数,逐次对C(x)求模,使C(x)的次数满足要求的步骤。所述用于将输入的原始数据C(x)变形步骤对于一个次数大于或等于n的多项式C(x),可表达成如下的形式C(x)=ch(x)xrm-n+cl(x)变形C(x)=ch(x)[xn+T(x)-T(x)]x(rm-n)+cl(x)。其中,r为运算单元的宽度,m为运算数据的段数,令特征为2的有限域GF(2n),则运算数据分解为m段,其中r(m-1)<n≤64m。
于将输入的原始数据C(x)求模的步骤C(x)modf(x)=[ch(x)T(x)X(rm-n)+cL(x)]mod f(x),令C(x)=Ch(x)T(x)X(rm-n)+cl(x)用于逐次对C(x)求模,使C(x)的次数满足要求的步骤判断C(x)的最高次数是否大于rm,如果大于rm,则继续对C(X)进行变形、求模,如果小于rm,则运算结束,输出最后结果。
本发明的的运算速度快,特别是能明显加快在二元域上的运算速度。同时该方法的安全性高,可靠性强。综合后仿真结果表明运用该方法的IP能快速完成ECC点乘运算,选取m=193,key为192位,在150MHz下的点乘速度约为2300次/秒。


图1是用于二元域的快速归约求模方法的软件流程图;图2是用于二元域的快速归约求模方法的应用实例示意图。
具体实施例方式
本发明的总体思想是点乘运算最后可以分解为模乘和模方的运算。如何快速地求解模乘和模方,特别是模乘和模方当中的求模运算成为进一步加快运算的关键。由此,针对不可约多项式f(x)=xn+T(x)中T(x)的次数通常较小的特点,提出了快速归约求模方法。
点乘运算最后可以分解为模乘和模方的运算。如何快速地求解模乘和模方,特别是模乘和模方当中的求模运算成为进一步加快运算的关键。由此,针对不可约多项式f(x)=xn+T(x)中T(x)的次数通常较小的特点,提出了快速归约求模方法。
对于一个次数大于或等于n的多项式C(x),可表达成如下的形式C(x)=ch(x)xn+cl(x),等式C(x)≡ch(x)T(x)+cl(x)(modf(x))成立。多次运用此式即可得最后的结果,使得C(x)的次数小于n。由于T(x)的次数较小,通常情况不下,迭代次数不会超过两次,运算效率很高。
在设计当中,为了实现域可扩展设计,采用了以64位为运算单元长度,分段进行计算的方案。比如,在m=193的域宽情况下,可将运算数据分为4段,高段超出域宽部分补0;在最后一次运算之前的每一次模乘或模方运算后,由于所得并非最终结果,故在运算后只要将其结果限制在4段以内,即可达到运算“收敛”(指不管经过多少次模运算,其结果都保持在4段以内)的目的。这样的设计,不但便于硬件实现多域宽的ECC运算,且由于运算采用了具有收敛特性的中间值,在一定程度上加速了运算。而由于此设计特点,对于上述的快速归约求模方法,尚需作一定的变形。
令域宽为n,此域宽下的运算数据段数为m,数据宽度为r,由上述可知,各运算数据长度为rm,且满足条件r(m-1)<n≤rm。经过模乘或模方运算后,其结果数据C(x)长度为2rm。令C(x)=ch(x)xrm-n+cl(x),有C(x)≡ch(x)xrm-n[xn+T(x)-T(x)]+cl(x)(modf(x))可得C(x)≡ch(x)xrm-nT(x)+cl(x)(modf(x))。考虑到各中间结果只需保证其段ch(x)xrm-nT(x)项结果在m段以内,即可达到运算要求。由于T(x)的次数较小,同样地,变形后的快速归约求模方法的迭代次数通常不会超过两次。
如图1所示1)先输入原始数据C(X),将输入的原始数据C(x)变形,对于一个次数大于或等于n的多项式C(x),可表达成如下的形式C(x)=Ch(x)[Xn+T(x)-T(x)]X(rm-n)+Cl(x);2)对C(X)求模,得到C(x)modf(x)=[Ch(x)T(x)X(rm-n)+Cl(x)]modf(x)。重新令C(x)=Ch(x)T(x)X(rm-n)+Cl(x);3)判断C(X)的最高次数是否小于rm,如果不小于,回到第2)步,再次进行变形、求模运算,如果小于,则输出最后结果。
如图2所示,控制器中保存系统的信息,控制系统的启动和停止,通过ECC运算单元模块完成ECC运算,其中的模乘部分由快速归约求模单元完成。外部模块通过总线接口可以直接访问存储器,读取完成运算的数据和设置需要运算的数据。
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。
权利要求
1.一种用于二元域的快速归约求模方法,包含用于输入原始数据C(x)的步骤;用于输出最后结果的步骤;其特征在于所述用于二元域的快速归约求模方法还包括用于将输入的原始数据C(x)变形的步骤;用于将输入的原始数据C(x)求模的步骤;用于判断C(X)的次数,逐次对C(x)求模,使C(x)的次数满足要求的步骤。
2.根据权利要求1所述的一种用于二元域的快速归约求模方法,其特征在于所述用于将输入的原始数据C(x)变形步骤对于一个次数大于或等于n的多项式C(x),可表达成如下的形式C(x)=ch(x)xrm-n+cl(x)变形C(x)=ch(x)[xn+T(x)-T(x)]x(rm-n)+cl(x)。其中,r为运算单元的宽度,m为运算数据的段数,令特征为2的有限域GF(2n),则运算数据分解为m段,其中r(m-1)<n≤64m。
3.根据权利要求1所述的一种用于二元域的快速归约求模方法,其特征在于所述用于将输入的原始数据C(x)求模的步骤C(x)modf(x)=[ch(x)T(x)X(rm-n)+cL(x)]modf(x),令C(x)=Ch(x)T(x)X(rm-n)+cl(x)
4.根据权利要求1所述的一种用于二元域的快速归约求模方法,其特征在于所述用于逐次对C(x)求模,使C(x)的次数满足要求的步骤判断C(x)的最高次数是否大于rm,如果大于rm,则继续对C(X)进行变形、求模,如果小于rm,则运算结束,输出最后结果。
全文摘要
本发明公开了一种用于二元域的快速归约求模方法。包含用于输入原始数据C(x)的步骤;用于输出最后结果的步骤;所述用于二元域的快速归约求模方法还包括用于将输入的原始数据C(x)变形的步骤;用于将输入的原始数据C(x)求模的步骤;用于判断C(x)的次数,逐次对C(x)求模,使C(x)的次数满足要求的步骤。本发明的的运算速度快,特别是能明显加快在二元域上的运算速度。同时该方法的安全性高,可靠性强。综合后仿真结果表明运用该方法的IP能快速完成ECC点乘运算,选取m=193,key为192位,在150MHz下的点乘速度约为2300次/秒。
文档编号H04L9/30GK1766832SQ20051006149
公开日2006年5月3日 申请日期2005年11月9日 优先权日2005年11月9日
发明者沈海斌, 严晓浪 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1