CN102446088A - 椭圆曲线标量乘的并行处理方法及*** - Google Patents

椭圆曲线标量乘的并行处理方法及*** Download PDF

Info

Publication number
CN102446088A
CN102446088A CN2011102799710A CN201110279971A CN102446088A CN 102446088 A CN102446088 A CN 102446088A CN 2011102799710 A CN2011102799710 A CN 2011102799710A CN 201110279971 A CN201110279971 A CN 201110279971A CN 102446088 A CN102446088 A CN 102446088A
Authority
CN
China
Prior art keywords
scalar
sub
processor
elliptic curve
parallel processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011102799710A
Other languages
English (en)
Inventor
邬可可
李慧云
徐国卿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Institute of Advanced Technology of CAS
Original Assignee
Shenzhen Institute of Advanced Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Institute of Advanced Technology of CAS filed Critical Shenzhen Institute of Advanced Technology of CAS
Priority to CN2011102799710A priority Critical patent/CN102446088A/zh
Publication of CN102446088A publication Critical patent/CN102446088A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

一种椭圆曲线标量乘的并行处理方法,包括如下步骤:将标量划分成等长的子标量;分布所述划分得到的子标量至处理器中;在所述处理器中对所述分布的子标量和椭圆曲线进行并行计算得到对应的子标量乘;整合所述并行计算得到的子标量乘。上述椭圆曲线标量乘的并行处理方法及***在将标量划分成多个子标量后,实现了将一个任务分割成多个子任务,这使得标量乘的并行处理是灵活的,基于任务级别的并行化,以适应大规模的并行处理过程,在处理器中对划分的子标量和椭圆曲线进行并行计算,提高了并行处理的速度,并有效地降低了耗费的时间。

Description

椭圆曲线标量乘的并行处理方法及***
【技术领域】
本发明涉及数据加密技术,特别是涉及一种椭圆曲线标量乘的并行处理方法及***。
【背景技术】
随着1980年代中期Miller和Koblitz分别独立地提出了椭圆曲线密码体制(elliptic curve cryptosystems,简称ECC),相对于其它的公钥密码体制,椭圆曲线密码只需要较短的私钥即可达到较高的安全级别,因此近年来备受关注。
椭圆曲线密码体制中,标量乘的计算将是最为关键的处理过程,通常标量乘可通过逐比特的二进制方法计算得到,即给定一个标量和椭圆曲线点,标量乘是由一系列的椭圆曲线点的点加和点倍操作完成,其运行的轨迹依赖于标量的二进制比特表达式。
然而,这一逐比特的标量乘计算方法并不能够适应日益普及的并行计算***,以优化标量乘的计算过程,因此,并行的标量乘计算被提出并应用于并行计算***中,例如,Aoki、Lzu和Takagi介绍了基于SIMD处理器结构的高效并行点操作;Lzu提出了双处理器架构的表达式;Aoki等介绍了基于2个或者3个处理器的并行处理过程,采用改进的雅可比坐标来开发了快速并行表达式;Longa和Miri的替换乘方法允许更高效的优选并行操作的开发,从而提出了能够在3个或者4个处理器中执行的快速并行表达式,但是,上述并行的标量乘计算仅局限于指令级别的并行化,不能够基于任务级别的进行并行计算,这将造成上述并行的标量乘计算只能在少量的处理器中进行,并不能够适应较大规模的并行处理过程。
【发明内容】
基于此,有必要提供一种能适应大规模的并行处理过程的椭圆曲线标量乘的并行处理方法。
此外,还有必要提供一种能适应大规模的并行处理过程的椭圆曲线标量乘的并行处理***。
一种椭圆曲线标量乘的并行处理方法,包括如下步骤:
将标量划分成等长的子标量;
分布所述划分得到的子标量至处理器中;
在所述处理器中对所述分布的子标量和椭圆曲线进行并行计算得到对应的子标量乘;
整合所述并行计算得到的子标量乘。
优选地,所述将标量划分成等长的子标量的步骤为:
根据所述处理器的数量确定所述标量对应的递归次数;
按照所述递归次数对所述标量进行递归折半得到等长的子标量。
优选地,所述根据所述处理器的数量确定所述标量对应的递归次数的步骤为:
以2为底,以处理器的数量为真数计算得到递归次数。
优选地,所述以2为底,以处理器的数量为真数计算得到递归次数的步骤之前还包括:
获取标量的比特长度;
根据所述标量的比特长度计算得到所述标量对应的最优递归次数,并由所述最优递归次数计算得到处理器的数量阈值;
判断所述处理器的数量是否小于所述数量阈值,若否,则将所述递归次数设为最优递归次数,若是,则
进入以2为底,以处理器的数量为真数计算得到递归次数的步骤。
优选地,所述整合所述并行计算得到的子标量乘的步骤为对所述子标量乘进行两两递归点加计算。
一种椭圆曲线标量乘的并行处理***,包括:
划分装置,用于将标量划分成等长的子标量;
分布装置,用于分布所述划分得到的子标量至处理器中;
处理器,用于对所述分布的子标量和椭圆曲线进行并行计算得到对应的子标量乘;
处理器还用于整合所述并行计算得到的子标量乘。
优选地,所述划分装置包括:
次数确定模块,用于根据所述处理器的数量确定所述标量对应的递归次数;
折半模块,用于按照所述递归次数对所述标量进行递归折半得到等长的子标量。
优选地,所述次数确定模块还用于以2为底,以处理器的数量为真数计算得到递归次数。
优选地,所述次数确定模块包括:
长度获取单元,用于获取标量的比特长度;
运算单元,用于根据所述标量的比特长度计算得到所述标量对应的最优递归次数,并由所述最优递归次数计算得到处理器的数量阈值;
判断单元,用于判断所述处理器的数量是否小于所述数量阈值,若否,则将所述递归次数设为最优递归次数,若是,则通知运算单元;
所述运算单元还用于以2为底,以处理器的数量为真数计算得到递归次数。
优选地,所述处理器还用于对所述子标量乘进行两两递归点加计算。
上述椭圆曲线标量乘的并行处理方法及***在将标量划分成多个子标量后,实现了将一个任务分割成多个子任务,这使得标量乘的并行处理是灵活的,基于任务级别的并行化,以适应大规模的并行处理过程,在处理器中对划分的子标量和椭圆曲线进行并行计算,提高了并行处理的速度,并有效地降低了耗费的时间。
【附图说明】
图1为一个实施例中椭圆曲线标量乘的并行处理方法的流程图;
图2为一个实施例中将标量划分成等长的子标量的方法流程图;
图3为一个实施例中折半模型的示意图;
图4为另一个实施例中将标量划分成等长的子标量的方法流程图;
图5为一个实施例中整合过程的示意图;
图6为一个实施例中椭圆曲线标量乘的并行处理***的结构示意图;
图7为图6中划分装置的结构示意图;
图8为图7中次数确定模块的结构示意图;
图9为一个实施例中标量进行2次折半递归的折半模型示意图;
图10为一个实施例中并行整合过程的示意图。
【具体实施方式】
图1示出了一个实施例中椭圆曲线标量乘的并行处理的方法流程,包括如下步骤:
步骤S110,将标量划分成等长的子标量。
本实施例中,并行处理过程中将需要执行的任务划分为若干个相同类型的子任务,并通过多个处理器进行并行处理,基于这一并行处理的思想,将用二进制比特表达的标量划分成等长的子标量,得到一系列等长的比特串。
在一个实施例中,如图2所示,上述步骤S110的具体过程为:
步骤S111,根据处理器的数量确定标量对应的递归次数。
本实施例中,标量划分所涉及的递归次数是由并行处理***中可利用的处理器的数量所决定的。具体地,一个实施例中,根据处理器的数量确定标量对应的递归次数的步骤为:以2为底,以处理器的数量为真数计算得到递归次数,即:
Figure BDA0000092818940000041
其中,n为递归次数,p为处理器的数量。
步骤S113,按照递归次数对标量进行递归折半得到等长的子标量。
本实施例中,按照递归次数n对标量进行递归折半,划分为2n个等长的子标量,即比特长度为k的标量在经过n次折半之后得到2n个比特长度为k/2n的比特串。将标量d的每一个子标量记为其中j=1,2,…,2n-1,2n,划分过程如以下公式所示:
Figure BDA0000092818940000051
其中,||是比特串连接符,的比特长度为k/2n
在实际的处理过程中,若标量d长度不够,在最高有效位前补“0”。标量d的折半模型见图3所示。标量折半模型即为一颗满二叉树,树的深度即为递归次数n,树叶的数量即是划分得到的比特串的数量2n
在另一个实施例中,如图4所示,步骤S110的具体过程为:
步骤S401,获取标量的比特长度。
步骤S403,根据标量的比特长度计算得到标量对应的最优递归次数,并由最优递归次数计算得到处理器的数量阈值。
本实施例中,为使标量的并行处理过程中时间复杂度最小,通过以下公式得到最优递归次数:
Figure BDA0000092818940000053
在优选的实施例中,为了简化计算过程,取最优递归次数为nopt=log2k-2。
当可利用的处理器的数量不少于
Figure BDA0000092818940000054
时,可以得到最优递归次数nopt=log2k-2,因此处理器的数量阈值为
Figure BDA0000092818940000055
用于确定标量进行折半的递归次数。
步骤S405,判断处理器的数量是否小于数量阈值,若否,则进入步骤S407,若是,则进入步骤S409。
本实施例中,若处理器的数量小于数量阈值
Figure BDA0000092818940000056
则递归次数为log2p;若处理器的数量大于或者等于数量阈值
Figure BDA0000092818940000057
则递归次数即为最优递归次数,此时并行处理过程中的时间复杂度最小。
例如,若标量的比特长度k=256,那么最优递归次数n=log2256-2=6;当处理器的数量p<26时,递归次数为log2p次,以得到最优的时间复杂度tpmin=(256/2p+log2p)A+256D;当处理器的数量p≥26时,递归次数为6次,得到最优的时间复杂度tpmin=8A+256D。
步骤S407,将递归次数设为最优递归次数。
步骤S409,以2为底,以处理器的数量为真数计算得到递归次数。
本实施例中,以2为底,以处理器的数量为真数通过以下公式计算得到递归次数,即
n=log2p
其中,p为可利用的处理器数量。
步骤S130,分布划分得到的子标量至处理器中。
本实施例中,将划分好的子标量分配到多个处理器中,以通过多个处理器对多个子标量进行并行计算。
步骤S150,在处理器中对分布的子标量和椭圆曲线进行并行计算得到对应的子标量乘。
本实施例中,基于标量被划分成了2n个子标量的思想,标量乘也被划分成了2n个子标量乘。具体地,通过多个处理器对子标量和椭圆曲线进行并行计算得到相对应的子标量乘,即
Q j n = B j n · P
其中,
Figure BDA0000092818940000062
为第n阶的第j个子标量乘,
Figure BDA0000092818940000063
为第n阶的第j个子标量,P为椭圆曲线。
此时,标量乘被划分成了2n个子标量乘的过程通过如下公式得到:
dP = ( B 2 n n | | B 2 n - 1 n | | . . . . . . | | B 2 n | | B 1 n ) · P
⇒ ( B 2 n n · P ) , ( B 2 n - 1 n · P ) , . . . . . . , ( B 2 n · P ) , ( B 1 n · P )
⇒ Q 2 n n , Q 2 n - 1 n , . . . . . . , Q 2 n , Q 1 n ,
其中,d为标量,P为椭圆曲线。
在多个处理器中通过并行计算获得了2n个子标量乘,以并行输出,进入子标量乘的整合。
步骤S170,整合并行计算得到的子标量乘。
本实施例中,上述整合并行计算得到的子标量乘的步骤具体为:对子标量乘进行两两递归点加计算。如图5所示,两两递归地计算这2n个子标量乘的点加,直至计算最后两个子标量乘的点加,具体的整合过程如以下公式所示:
dP = Q 2 n n | | Q 2 n - 1 n | | . . . . . . | | Q 2 n | | Q 1 n
= f ( Q 2 n n , Q 2 n - 1 n ) | | . . . . . . | | f ( Q 2 n , Q 1 n )
= Q 2 n - 1 n - 1 | | . . . . . . | | Q 1 n - 1
. . . . . .
= f ( Q 4 2 , Q 3 2 ) | | f ( Q 2 2 , Q 1 2 )
= Q 2 1 | | Q 1 1
= f ( Q 2 1 , Q 1 1 )
= Q 1 0 = dP
图6示出了一个实施例中椭圆曲线标量乘的并行处理***,包括划分装置10、分布装置30以及处理器50。
划分装置10,用于将标量划分成等长的子标量。
本实施例中,并行处理过程中将需要执行的任务划分为若干个相同类型的子任务,并通过多个处理器进行并行处理,基于这一并行处理的思想,划分装置10将用二进制比特表达的标量划分成等长的子标量,得到一系列等长的比特串。
在一个实施例中,如图7所示,上述划分装置10包括次数确定模块110以及折半模块130。
次数确定模块110,用于根据处理器的数量确定标量对应的递归次数。
本实施例中,本实施例中,标量划分所涉及的递归次数是由并行处理***中可利用的处理器的数量所决定的。具体地,一个实施例中,次数确定模块110还用于以2为底,以处理器的数量为真数计算得到递归次数,即:
Figure BDA0000092818940000079
其中,n为递归次数,p为处理器的数量。
在另一个实施例中,如图8所示,上述次数确定模块110包括长度获取单元111、运算单元113以及判断单元115。
长度获取单元111,用于获取标量的比特长度。
运算单元113,用于根据标量的比特长度计算得到标量对应的最优递归次数,并由最优递归次数计算得到处理器的数量阈值。
本实施例中,为使标量的并行处理过程中时间复杂度最小,运算单元113通过以下公式得到最优递归次数:
在优选的实施例中,为了简化计算过程,运算单元113取最优递归次数为nopt=log2k-2。
当可利用的处理器的数量不少于
Figure BDA0000092818940000082
时,可以得到最优递归次数nopt=log2k-2,因此运算单元113计算得到的处理器的数量阈值为
Figure BDA0000092818940000083
用于确定标量进行折半的递归次数。
判断单元115,用于判断处理器的数量是否小于数量阈值,若否,则将递归次数设为最优递归次数,若是,则通知运算单元113。
本实施例中,若判断单元115判断到处理器的数量小于数量阈值
Figure BDA0000092818940000084
则递归次数为log2p;若判断到处理器的数量大于或者等于数量阈值
Figure BDA0000092818940000085
则递归次数即为最优递归次数,此时并行处理过程中的时间复杂度最小。
运算单元113还用于以2为底,以处理器的数量为真数计算得到递归次数。
本实施例中,运算单元113以2为底,以处理器的数量为真数通过以下公式计算得到递归次数,即
n=log2p
其中,p为可利用的处理器数量。
折半模块130,用于按照递归次数对标量进行递归折半得到等长的子标量。
本实施例中,折半模块130按照递归次数n对标量进行递归折半,划分为2n个等长的子标量,即比特长度为k的标量在经过n次折半之后得到2n个比特长度为k/2n的比特串。将标量d的每一个子标量记为其中j=1,2,…,2n-1,2n,划分过程如以下公式所示:
Figure BDA0000092818940000091
其中,||是比特串连接符,
Figure BDA0000092818940000092
的比特长度为k/2n
在实际的处理过程中,若标量d长度不够,在最高有效位前补“0”。
分布装置30,用于分布划分得到的子标量至处理器中。
本实施例中,分布装置30将划分好的子标量分配到多个处理器中,以通过多个处理器对多个子标量进行并行计算。
处理器50,用于对分布的子标量和椭圆曲线进行并行计算得到对应的子标量乘。
本实施例中,基于标量被划分成了2n个子标量的思想,标量乘也被划分成了2n个子标量乘。具体地,通过多个处理器50对子标量和椭圆曲线进行并行计算得到相对应的子标量乘,即
Q j n = B j n · P
其中,
Figure BDA0000092818940000094
为第n阶的第j个子标量乘,
Figure BDA0000092818940000095
为第n阶的第j个子标量,P为椭圆曲线。
处理器50通过并行计算获得了2n个子标量乘,以并行输出,进入子标量乘的整合。
处理器50还用于整合并行计算得到的子标量乘。
本实施例中,处理器50还用于对子标量乘进行两两递归点加计算。处理器50两两递归地计算这2n个子标量乘的点加,直至计算最后两个子标量乘的点加,具体的整合过程如以下公式所示:
dP = Q 2 n n | | Q 2 n - 1 n | | . . . . . . | | Q 2 n | | Q 1 n
= f ( Q 2 n n , Q 2 n - 1 n ) | | . . . . . . | | f ( Q 2 n , Q 1 n )
= Q 2 n - 1 n - 1 | | . . . . . . | | Q 1 n - 1
. . . . . .
= f ( Q 4 2 , Q 3 2 ) | | f ( Q 2 2 , Q 1 2 )
= Q 2 1 | | Q 1 1
= f ( Q 2 1 , Q 1 1 )
= Q 1 0 = dP
在上述椭圆曲线标量乘的并行处理的方法及***中,通过二进制方法来并行地计算了多个子标量乘,下面通过计算并行处理过程中所耗费的时间复杂度了说明标量首张的并行处理效率。
在并行地计算这些子标量的过程中,每一子标量所对应的计算标量乘的时间复杂度
Figure BDA0000092818940000109
为:
t B j = 1 2 · k 2 n · A + k 2 n · D
其中,A为椭圆曲线点的点加,D为椭圆曲线点的点倍。
此时,设x,y是正整数,|y|表示y的二进制表示的比特长度,则定义如下函数:
f(x,y)=2(|y|)·x+y
Figure BDA00000928189400001011
Figure BDA00000928189400001012
表示分别表示子标量乘
Figure BDA00000928189400001014
的结果,其中i∈{0,1,...,n-1},j∈{2i+1,2i+1-2,...,4,2},称
Figure BDA00000928189400001016
为(i+1)阶子标量乘,那么将
Figure BDA00000928189400001017
Figure BDA00000928189400001018
阶子标量乘进行整合后所得到的i阶子标量乘的结果如下:
Q j / 2 i = f ( Q j i + 1 , Q j - 1 i + 1 )
这里指定为对应的子标量
Figure BDA00000928189400001021
的比特长度。同样,上述等式也可用一个函数来表述,即
f j / 2 i ⇔ f ( Q j i + 1 , Q j - 1 i + 1 )
在对子标量乘进行整合的过程,对于同一阶子标量乘的整合,函数
Figure BDA00000928189400001024
所需要花费的时间复杂度为A+(k/2i+1)D。
而对于所有的子标量乘的整合,对应的时间复杂度为:
t p = t B j + ( k 2 n + k 2 n - 1 + . . . + k 2 ) D + nA = ( k 2 n + 1 + n ) A + kD
若标量的比特长度k在一个加密解密环境中是不发生变化的,因此tp的最小值将中取决于标量的递归次数n,此时根据上述等式中的项(k/2n+1+n),定义如下函数:
g ( x ) = ( k 2 x + 1 + x )
对x求g(x)偏导数如下:
g ′ ( x ) = ( k 2 x + 1 + x ) ′ = 1 - k ln 2 2 x + 1
当g′(x)=0,即x=logk+log(ln2)-1时,g(x)取最小值,因此,当x<logk+log(ln2)-1时,函数g(x)是递减的;当x>logk+log(ln2)-1时,函数g(x)是递增的,因此可推导出最优递归次数:
Figure BDA0000092818940000114
为简化计算过程,取最优递归次数nopt=log2k-2,即当可利用的处理器的数量不少于对应的最优递归次数为nopt=log2k-2。
此时时间复杂度如以下公式所示:
t p = ( k 2 p + log p ) A + kD , whenp < k / 4 , ( log k ) A + kD , whenp > = k / 4 ,
其中p为可利用的处理器的数量,当处理器的数量较多时,该算法的时间复杂度远小于传统的二进制方法的(k/2)A+kD。
由上述时间复杂度的计算过程可以清楚地看到,上述椭圆曲线标量乘的并行处理的应用过程所耗费的时间复杂度远远小于传统的椭圆标题乘的计算过程耗费的时间复杂度。
下面以一个具体的实施例来详细阐述上述椭圆曲线标量乘的并行处理的应用过程。该实施例中,标量d=(38749)10=(1001011101011101)2,则标量d的比特长度为k=16。
如图9所示,划分装置10计算得到最优递归次数nopt=log216-2=2,将标量进行2次折半递归,此时,标量乘dP=38749P被划分成了4个子标量乘,在多个处理器50中并行地调用二进制方法计算得到4个子标量乘,如下式所示:
38749 P = ( 1001 | | 0111 | | 0101 | | 1101 ) P
&DoubleRightArrow; ( 1001 ) P , ( 0111 ) P , ( 0101 ) P , ( 1101 ) P .
处理器50对4个子标量乘进行两两点加,如图10所示,对于4个子标量乘1001P,0111P,0101P和1101P,在两个处理器中分别调用函数
Figure BDA0000092818940000123
Figure BDA0000092818940000124
前两个子标量乘和后两个子标量乘分别被并行地整合成点151P和点93P,然后在一个处理器50中调用函数
Figure BDA0000092818940000125
将点151P和点93P整合成38749P。
此时,最优的时间复杂度为tp=16D+4A,而传统的串得的二进制方法的时间复杂度达到了ts=16D+8A。
标量乘结构包括了三个操作级别,即标量乘的算法级别、点的算术级别和域的算术级别。传统的标量乘并行计算方法都是基于点或域的操作级别,从而只适用于少量几个固定数量的处理器,通常为2、3或4个处理器,而上述椭圆曲线标量乘的并行处理方法及***是标量乘算法级别的并行化,以适应具有灵活数量处理器的并行计算***,如下表所示,相对于传统的标量乘并行计算方法,上椭圆曲线标量乘的并行处理方法及***具较好的灵活性,能够适应大规模的并行处理过程。
Figure BDA0000092818940000126
通过上表可以非常明显地看出,本发明中的椭圆曲线标量乘的并行处理方法所用于进行并行处理的处理器数量远远大于其它的标量乘方法,能够灵活地适用于各种规模的并行计算处理过程,进而对传统的标量乘方法是兼容的,使得现有的标量乘方法也能可集成到椭圆曲线标量乘的并行处理方法中进一步加快标量乘的计算速度。
上述椭圆曲线标量乘的并行处理方法及***可应用于对称多处理器、大型并行处理器、分布式共享内存多处理器、集群工作站、网格计算环境以及云计算环境等。
上述椭圆曲线标量乘的并行处理方法及***在将标量划分成多个子标量后,实现了将一个任务分割成多个子任务,这使得标量乘的并行处理是灵活的,基于任务级别的并行化,以适应大规模的并行处理过程,在处理器中对划分的子标量和椭圆曲线进行并行计算,提高了并行处理的速度,并有效地降低了耗费的时间。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种椭圆曲线标量乘的并行处理方法,包括如下步骤:
将标量划分成等长的子标量;
分布所述划分得到的子标量至处理器中;
在所述处理器中对所述分布的子标量和椭圆曲线进行并行计算得到对应的子标量乘;
整合所述并行计算得到的子标量乘。
2.根据权利要求1所述的椭圆曲线标量乘的并行处理方法,其特征在于,所述将标量划分成等长的子标量的步骤为:
根据所述处理器的数量确定所述标量对应的递归次数;
按照所述递归次数对所述标量进行递归折半得到等长的子标量。
3.根据权利要求2所述的椭圆曲线标量乘的并行处理方法,其特征在于,所述根据所述处理器的数量确定所述标量对应的递归次数的步骤为:
以2为底,以处理器的数量为真数计算得到递归次数。
4.要根据权利要求3所述的椭圆曲线标量乘的并行处理方法,其特征在于,所述以2为底,以处理器的数量为真数计算得到递归次数的步骤之前还包括:
获取标量的比特长度;
根据所述标量的比特长度计算得到所述标量对应的最优递归次数,并由所述最优递归次数计算得到处理器的数量阈值;
判断所述处理器的数量是否小于所述数量阈值,若否,则将所述递归次数设为最优递归次数,若是,则
进入以2为底,以处理器的数量为真数计算得到递归次数的步骤。
5.根据权利要求1所述的椭圆曲线标量乘的并行处理方法,其特征在于,所述整合所述并行计算得到的子标量乘的步骤为对所述子标量乘进行两两递归点加计算。
6.一种椭圆曲线标量乘的并行处理***,其特征在于,包括:
划分装置,用于将标量划分成等长的子标量;
分布装置,用于分布所述划分得到的子标量至处理器中;
处理器,用于对所述分布的子标量和椭圆曲线进行并行计算得到对应的子标量乘;
处理器还用于整合所述并行计算得到的子标量乘。
7.根据权利要求6所述的椭圆曲线标量乘的并行处理***,其特征在于,所述划分装置包括:
次数确定模块,用于根据所述处理器的数量确定所述标量对应的递归次数;
折半模块,用于按照所述递归次数对所述标量进行递归折半得到等长的子标量。
8.根据权利要求7所述的椭圆曲线标量乘的并行处理***,其特征在于,所述次数确定模块还用于以2为底,以处理器的数量为真数计算得到递归次数。
9.根据权利要求8所述的椭圆曲线标量乘的并行处理***,其特征在于,所述次数确定模块包括:
长度获取单元,用于获取标量的比特长度;
运算单元,用于根据所述标量的比特长度计算得到所述标量对应的最优递归次数,并由所述最优递归次数计算得到处理器的数量阈值;
判断单元,用于判断所述处理器的数量是否小于所述数量阈值,若否,则将所述递归次数设为最优递归次数,若是,则通知运算单元;
所述运算单元还用于以2为底,以处理器的数量为真数计算得到递归次数。
10.根据权利要求6所述的椭圆曲线标量乘的并行处理***,其特征在于,所述处理器还用于对所述子标量乘进行两两递归点加计算。
CN2011102799710A 2011-09-20 2011-09-20 椭圆曲线标量乘的并行处理方法及*** Pending CN102446088A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011102799710A CN102446088A (zh) 2011-09-20 2011-09-20 椭圆曲线标量乘的并行处理方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011102799710A CN102446088A (zh) 2011-09-20 2011-09-20 椭圆曲线标量乘的并行处理方法及***

Publications (1)

Publication Number Publication Date
CN102446088A true CN102446088A (zh) 2012-05-09

Family

ID=46008610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011102799710A Pending CN102446088A (zh) 2011-09-20 2011-09-20 椭圆曲线标量乘的并行处理方法及***

Country Status (1)

Country Link
CN (1) CN102446088A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103532710A (zh) * 2013-09-26 2014-01-22 中国科学院数据与通信保护研究教育中心 基于gpu的sm2算法实现方法及装置
CN103546288A (zh) * 2013-09-25 2014-01-29 中国科学院数据与通信保护研究教育中心 Sm2数字签名生成算法的实现方法及装置
CN103532710B (zh) * 2013-09-26 2016-11-30 中国科学院数据与通信保护研究教育中心 基于gpu的sm2算法实现方法及装置
CN107194608A (zh) * 2017-06-13 2017-09-22 复旦大学 一种面向残疾人社区的众包标注任务分配策略
CN107248916A (zh) * 2017-04-27 2017-10-13 深圳信息职业技术学院 一种椭圆曲线标量乘方法
CN107437998A (zh) * 2016-05-27 2017-12-05 恩智浦有限公司 使用不安全和安全环境计算安全椭圆曲线标量乘法
CN111897578A (zh) * 2020-07-31 2020-11-06 中国科学院信息工程研究所 一种特征为2的椭圆曲线上标量乘的并行处理方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101562522A (zh) * 2009-05-06 2009-10-21 深圳先进技术研究院 抗侧信道攻击的椭圆曲线密码***实现方法
CN101630244A (zh) * 2009-07-28 2010-01-20 哈尔滨工业大学深圳研究生院 一种流水线型椭圆曲线双标量乘法***及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101562522A (zh) * 2009-05-06 2009-10-21 深圳先进技术研究院 抗侧信道攻击的椭圆曲线密码***实现方法
CN101630244A (zh) * 2009-07-28 2010-01-20 哈尔滨工业大学深圳研究生院 一种流水线型椭圆曲线双标量乘法***及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KEKE WU等: "Fast and scalable parallel processing of scalar multiplication in elliptic curve cryptosystems", 《WILEY ONLINE LIBRARY》, 3 August 2011 (2011-08-03), pages 1 - 5 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103546288A (zh) * 2013-09-25 2014-01-29 中国科学院数据与通信保护研究教育中心 Sm2数字签名生成算法的实现方法及装置
CN103532710A (zh) * 2013-09-26 2014-01-22 中国科学院数据与通信保护研究教育中心 基于gpu的sm2算法实现方法及装置
CN103532710B (zh) * 2013-09-26 2016-11-30 中国科学院数据与通信保护研究教育中心 基于gpu的sm2算法实现方法及装置
CN107437998A (zh) * 2016-05-27 2017-12-05 恩智浦有限公司 使用不安全和安全环境计算安全椭圆曲线标量乘法
CN107437998B (zh) * 2016-05-27 2022-05-10 恩智浦有限公司 使用不安全和安全环境计算安全椭圆曲线标量乘法
CN107248916A (zh) * 2017-04-27 2017-10-13 深圳信息职业技术学院 一种椭圆曲线标量乘方法
CN107194608A (zh) * 2017-06-13 2017-09-22 复旦大学 一种面向残疾人社区的众包标注任务分配策略
CN107194608B (zh) * 2017-06-13 2021-09-17 复旦大学 一种面向残疾人社区的众包标注任务分配方法
CN111897578A (zh) * 2020-07-31 2020-11-06 中国科学院信息工程研究所 一种特征为2的椭圆曲线上标量乘的并行处理方法及装置

Similar Documents

Publication Publication Date Title
Aranha et al. Implementing pairings at the 192-bit security level
CN101826142B (zh) 一种可重构椭圆曲线密码处理器
CN102446088A (zh) 椭圆曲线标量乘的并行处理方法及***
GB2562622A (en) Cryptographic method and system for secure extraction of data from a blockchain
GB0411777D0 (en) Computationally asymmetric cryptographic systems
Garg et al. PBIRCH: A scalable parallel clustering algorithm for incremental data
Zhang et al. LAGC: Lazily aggregated gradient coding for straggler-tolerant and communication-efficient distributed learning
CN102468956A (zh) 适用于rsa模幂计算的方法
CN103984677A (zh) 基于大规模粗粒度嵌入式可重构***及其处理方法
CN103970720A (zh) 基于大规模粗粒度嵌入式可重构***及其处理方法
CN101262345A (zh) 椭圆曲线密码***的倍点***
Chen et al. CloudRS: An error correction algorithm of high-throughput sequencing data based on scalable framework
Rojek et al. Systematic adaptation of stencil‐based 3D MPDATA to GPU architectures
Wenger et al. Harder, better, faster, stronger: elliptic curve discrete logarithm computations on FPGAs
Pu et al. Fastplay-a parallelization model and implementation of smc on cuda based gpu cluster architecture
Yunos et al. A Reduced τ-adic Naf (RTNAF) Representation for an Efficient Scalar Multiplication on Anomalous Binary Curves (ABC).
CN103780381A (zh) 基于高基脉动阵列的蒙哥马利算法的实现装置及方法
Bahig et al. Fast and scalable algorithm for product large data on multicore system
CN115034360A (zh) 三维卷积神经网络卷积层的处理方法和处理装置
Kadam et al. Performance Analysis of RSA Algorithm with CUDA Parallel Computing
CN217821651U (zh) 三维卷积神经网络卷积层的处理装置和处理器
Chen et al. pSHS: A scalable parallel software implementation of Montgomery multiplication for multicore systems
Kinoshita et al. Accelerating Beta Weil pairing with precomputation and multi-pairing techniques
Krasnopolsky et al. Optimizing generation of multiple turbulent flow states
Lee et al. Acceleration of differential power analysis through the parallel use of gpu and cpu

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120509