一种SIDH中特殊域快速模乘的方法技术

技术编号:18349810 阅读:91 留言:0更新日期:2018-07-01 22:36
本发明专利技术提出一种SIDH中特殊域快速模乘的方法,该方法对现有的SIDH中特殊域快速模乘计算方法进行了改进,通过构建关系式:

【技术实现步骤摘要】
一种SIDH中特殊域快速模乘的方法
本专利技术涉及SIDH中特殊域模乘计算领域,尤其是一种SIDH中特殊域快速模乘的方法。
技术介绍
在广泛的后量子技术之中,最新的超奇异同源点Diffie-Hellman(SIDH)密钥交换协议具很多优良特性以及广泛的应用前景。与其他广泛被引用的后量子密钥交换和加密体系相比,如格加密代码加密、哈希加密以及多变量加密,SIDH密钥交换体系所需要的密钥长度要小得多。2011年,Jao和Deo提出了一种基于SIDH中特殊结构域的快速模乘算法,该算法中的一个计算瓶颈就是p=f·2a3b-1的模乘运算,在该算法中很难兼顾资源消耗量和运算吞吐量之间的平衡,即模乘运算所占用的资源较多,但运算吞吐量并不大。
技术实现思路
专利技术目的:为解决上述技术问题,本专利技术提出一种SIDH中特殊域快速模乘的方法。技术方案:为解决上述技术问题,在增加较少资源占用率的前提下获得更快的处理速度,本专利技术提出一种SIDH中特殊域快速模乘的方法,该方法包括SIDH中单个模乘的计算步骤:(1)定义SIDH中单个模乘为A·B(modp),其中,p为素数域,A和B为素数域p中的任意两个元素;p=2·2a3b-1,a,b均为偶数;(2)将A·B(modp)表示为:式中,A、A′、B、B'分别用以R为基的补码形式表示为:A=a1R2+a2R+a3B=b1R2+b2R+b3A′=a'2R+a′3B′=b′2R+b′3其中,R=2a/23b/2,a1、a2、a3、b1、b2、b3、a'2、a′3、b′2、b′3均为系数,符号表示异或;(3)通过计算A′·B′(modp)得到A·B(modp),包括依次执行步骤(3-1)至(3-8):(3-1)将A′·B′(modp)的值以基R形式表示为:A′·B′(modp)=c′1R2+c′2R+c′3式中,c'1、c′2、c′3为系数变量;(3-2)初始化c'1=0,c′2=0,c′3=0;(3-3)计算c'1=c′2c′3[0],[0]表示取最低位;(3-4)计算(3-5)对c′3进行Barrett约减,约减结果记为r1,即c′3=r1;计算c′2=c′2+r1;(3-6)对c′2进行Barrett约减,约减结果记为r2,即c′2=r2;计算c'1=c'1+r2;(3-7)计算c'1=c'1[0];(3-8)根据计算得到的c'1、c′2、c′3得到A′·B′(modp)的计算结果,再根据A′·B′(modp)得到A·B(modp)的计算结果。有益效果:与现有技术相比,本专利技术具有以下优势:本专利技术可以节省操作数的数目,从而提高计算速度。在硬件实现时可以在增加较少硬件资源的情况下,将SIDH的吞吐量提高到了原来的6倍以上。附图说明图1为本专利技术的原理图;图2为Barrett约减算法原理图;图3为Barrett除法算法原理图;图4为现有的SIDH中特殊结构域的模乘计算原理图;图5为本专利技术的硬件架构图;图6为本专利技术中乘法操作的硬件结构图。具体实施方式下面结合附图对本专利技术作更进一步的说明。一、现有技术说明图4所示为现有的SIDH中特殊结构域的模乘计算原理图,下面首先介绍现有的SIDH中特殊结构域的模乘计算原理。假定p=2·2a3b-1,其中a和b为偶数,通过基R表示法,可以将素数域p中的任一元素(即所有小于p的非负整数)A表示成如下形式,其中R=2a/23b/2,A=a1R2+a2R+a3,a1∈{0,1},a2,a3∈[0,R)(1)式中,a1、a2、a3均为系数。将p中的任意两个元素A和B均通过基R表示,那么A·B(modp)的结果为:C=a1b1·R4+(a1b2+a2b1)·R3+(a1b3+a2b2+a3b1)·R2+(a2b3+a3b2)·R+a3b3(2)由于p=2·2a3b-1,可以得到公式(2)中2a3b亦即R2=2-1(modp),因此a1b1·R4或是等于0或是等于2-2(modp),因为a1,b1∈{0,1}所以a1b1∈{0,1}。当选定某个固定不变的p之后,对应的2-2(modp)的值也是固定不变的,在算法开始之前就预计算出2-2(modp)的值,从而减少算法中的操作。同样,对于其他项,也可以用类似的方法代替。例如,对于(a1b3+a2b2+a3b1)·R2项,如果该项是偶数,可以得到:(a1b3+a2b2+a3b1)·R2=(a1b3+a2b2+a3b1)/2(modp)反之,若为奇数,则可以写成(a1b3+a2b2+a3b1)·R2=(a1b3+a2b2+a3b1-1)/2(modp)+((a1b3+a2b2+a3b1)mod2)·2a3b将两种情况结合起来考虑便可以得到:其中,符号表示向下取整。类似的,对于(a1b2+a2b1)·R3项,可以写成因此,公式(2)可以重新写成如下形式:但是在式(3)之中,最后得到的系数c2和c3是在[0,R2)范围之内,而不是在基R示法中要求的[0,R)范围之内,因此,需要对c2和c3作进一步化简。对c2和c3的化简采用了Barrett约减算法,Barrett约减算法的原理如图2所示:根据欧拉除法引理可得,对于任意两个正整数a和b,必定存在q和r使得等式a=q·b+r成立,其中r∈[0,b-1],亦即a=r(modb)。毫无疑问,得到这样的q和r必然需进行一次a/b的除法,但是在计算机中,相比于乘法,除法是代价很大的操作。然而对于常除数而言,Barrett约减却是一种很巧妙的操作。它可以将一次1/b的除法转化成若干乘法和移位操作。在Barrett约减中,1/b可以表示成:通常来说,x的取值为其中参数k的取值取决于a。从公式(4)中可以看出,对1/b作近似化后产生的误差值e=1/b-x/2k。因此,对于商q产生的总误差值为ae。由于q∈Z+,为了使最终得到的结果正确,需要使误差ae小于1,因此需要满足条件k=log2(a)。在对c2和c3进行化简时,需要对c2和c3做关于R的除法操作,得到相对应的商q和余数r。由于R=2a/22b/2,可以将该除法看成一个先除以2a/2之后再除以3b/2的操作。而在计算机中,关于2a/2的除法可以用简单的右移操作代替。因此对c2和c3的快速化简,可以按照以下步骤进行:1、提取出ci的低a/2位并将它存在变量r1中;2、对ci右移a/2位得到c′i;3、对c′i作除以3b/2的除法得到商q以及余数r2。4、得到ci=q·2a/23b/2+(r2·2a/2+r2)=q·2a/23b/2+r然而,步骤3中的关于3b/2的除法操作并不像关于2a/2的除法操作一样能简单实现,由于被除数3b/2一直是固定不变的,因此考虑用Barrett约减算法来完成关于3b/2的除法操作部分。综上所述,对于c2和c3的完整化简过程,称之为Barrett除法算法,Barrett除法算法的过程如图3所示。至此,我们可以得到完成SIDH中一次模乘A·B(modp)的计算过程。二、本专利技术技术方案的说明根据模运算的基本性质,可以得到以下等式:(p-A)·(p-B)(modp)=A·B(modp)(5)首先,同样设任一元素A∈Fp,Fp为素数域;把A以基R形式表示为:A=a1R2+a2R+a3,a1∈{0,1},a2,a3∈[0,R)可本文档来自技高网...
一种SIDH中特殊域快速模乘的方法

【技术保护点】
1.一种SIDH中特殊域快速模乘的方法,其特征在于,包括SIDH中单个模乘的计算步骤:(1)定义SIDH中单个模乘为A·B(mod p),其中,p为素数域,A和B为素数域p中的任意两个元素;p=2·2a3b‑1,a,b均为偶数;(2)将A·B(mod p)表示为:

【技术特征摘要】
1.一种SIDH中特殊域快速模乘的方法,其特征在于,包括SIDH中单个模乘的计算步骤:(1)定义SIDH中单个模乘为A·B(modp),其中,p为素数域,A和B为素数域p中的任意两个元素;p=2·2a3b-1,a,b均为偶数;(2)将A·B(modp)表示为:式中,A、A′、B、B'分别用以R为基的补码形式表示为:A=a1R2+a2R+a3B=b1R2+b2R+b3A′=a′2R+a′3B′=b′2R+b′3其中,R=2a/23b/2,a1、a2、a3、b1、b2、b3、a′2、a′3、b′2、b′3均为系数,符号表示异或;(3)通过计算A′·B′(modp)得到A·B(modp),包括依次执行步骤(3-1)至(3-8):(3-1)将A′...

【专利技术属性】
技术研发人员:刘伟强倪健刘春洋刘哲
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:江苏,32

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

1