运算方法和运算装置的制作方法

文档序号:2404466阅读:342来源:国知局
专利名称:运算方法和运算装置的制作方法
技术领域
本发明涉及运算方法和运算装置,尤其涉及幂乘法及标量乘法的运算方法及其运算装置。

背景技术
一直以来,在使用公开键密码等加密方法的情况下,对被加密的明码文本的数据和加密用的关键码进行乘法运算,生成密码数据。另外,密码数据的解密通过加密数据和解密用的关键码的乘法运算来进行。
这种情况下,明码文本的数据和加密用的关键码、及加密数据和解密用的关键码分别为扩张域的元素(element),进行扩张域的乘法运算。
例如,Elgamal密码中,使用特征(characteristic)p、扩张次数m的扩张域Fpm,特别是为确保加密数据的对第三者进行的解读的安全性,将关键码长设为2000位。该情况下,对于扩张域的非零元素A,需要使用2000位的正整数n<pm,进行An这样的幂乘法的运算。
另外,通常,为了构成扩张域Fpm,要准备扩张域Fp上的m次既约多项式f(x),以其零点为ω∈Fpm,准备以下的基数(base)。
{1,ω,ω2,…,ωm-1} 该基数特别是被称作多项式基数,任意的元素A∈Fpm由下式表示。
A=a0+a1-ω+…+am-1ωm-1 即,元素A的的向量表示法为vA=(a0,a1,...,am-1)。
另外,有关以下所示的ω的Fp的共轭元素的集合构成基数时,称作正规基数。
[数学式16] 该正规基数如下所示,为适于弗罗贝纽斯映射的基数,如下考虑Fpm的任意元素A时, [数学式17] 弗罗贝纽斯映射如下赋予。
[数学式18] A→Ap 即,可知若使用正规基数,则在弗罗贝纽斯映射中不需要数学的计算。下面,本发明中,如下表述i次的弗罗贝纽斯映射。
[数学式19]
幂乘的运算对加密及解密的运算处理所需的时间有较大影响,由于幂乘的运算的高速化与加密及解密的运算处理的高速化紧密相关,因此,高速进行幂乘的运算的各种方法被提出来。
作为其一,已知有二进制法(例如参照非专利文献1)。例如,在运算椭圆曲线函数的标量乘法的“55P”(P为椭圆曲线上的点)的情况下,“55”在二进制中为“110111”,因此,通过以(110111)2P=2(2(22(2P+P)+P)+P)+P进行运算,减少运算次数并实现高速化。在此,“()2”表示为二进制表述。该二进制法中,需要平均地进行Flr(log2(n))次的二次幂运算和Flr(log2(n))/2次的乘法运算。
另外,提案有称作Window法的方法(例如参照非专利文献2)。Window法中,例如设窗口尺寸为3的情况下,对于元素A预先准备A2、A3、A4、A5、A6、A7的各分量,在运算A318的情况下,通过将“318”以二进制表述为“100111110”,设为 [数学式20] ,由于(100)2=4、(111)2=7、(110)2=6,因此,使用A4、A6、A7的分量进行运算。在此,若除去用于准备各分量的计算,则在Window法中需要进行Flr(log2n)-w次的二次幂运算和Flr(log2n/w)的乘法运算。
非专利文献1H.Cohen and G.Frey et al,「Handbook ofelliptic and hyperellipticcurve cryptography」,published byChapman & Hall/CRC,2006,p.146. 非专利文献2H.Cohen and G.Frey et al,「Handbook ofelliptic and hyperelliptic curve cryptography」,published byChapman & Hall/CRC,2006,p.149. 非专利文献3吉田知輝、加藤英洋、根角健太、野上保之、森川良孝,“有关双密码中有效的扩张域上乘方运算的一考察”,Tech.Rep.of IEICE,ISEC vol.108,no.162,pp.101-108,2008.

发明内容
但是,至今,为防止加密数据的解读,加密关键码及解密关键码的关键码长进一步加长,在二进制法及Window法中,乘方运算或标量乘法运算所需的时间难以进一步缩短,因此,存在加密及解密所需的时间过长的问题。
本发明鉴于这样的问题,进行了通过能够更高速执行乘方运算和标量乘法运算等的运算,实现加密及解密的处理时间的缩短的研究,直至完成本发明。
本发明提供一种乘方运算的运算方法,使用指数部n的p进数表达,即 [数学式21]
,通过弗罗贝纽斯映射将特征p、扩张次数m的扩张域Fpm的元素A的乘方运算An表示为 [数学式22]
该乘方运算的运算方法包括以所述指数部n的p的规定次数的项、和比该项的次数仅高1次的高次的项或高1次以上的高次的多个项为一组,将所述指数部n分成多个组,并且,以最低次数归纳各组内的各项,特定该最低次数的系数,p进数表示该系数,在每位设定具有下述指标的临时数据,该指标表示在进行根据所述系数的元素A的乘方运算时的各组中的同一位是否存在值的步骤;使用根据该临时数据为存在值的行的乘数特定所述临时数据的值得步骤;和以将规定的所述临时数据彼此相乘的结果为各组的根据所述系数的乘方运算的结果的步骤。由此,可高速地进行幂乘法的运算。
另外,本发明的乘方运算的运算方法中,包括将规定的所述临时数据彼此相乘,运算各组的根据所述系数的乘方运算的结果时,特定公共相乘的临时数据的组合的步骤;和使用所述临时数据的组合运算各组的根据所述系数的乘方运算的结果的步骤。由此,可减少运算次数,可实现乘方运算的高速化。
另外,本发明提供一种标量乘法的运算方法,设特征p、有限域Fp的次数m的扩张域为Fpm,设有理点的总数为#E(Fpm),设无限远点为O,有限域Fp上的椭圆曲线由下式表示, [数学式23] 任意的有理点A满足下式, [数学式24]
将标量部[n]表示为Ψ进数展开的 [数学式25] 该标量乘法的运算方法包括以所述指数部i的映射Ψ的规定次数的项、和比该项的次数仅高1次的高次的项或高1次以上的高次的多个项为一组,将所述映射F分成多个组,并且,以最低次数归纳各组内的各项,特定该最低次数的系数的步骤;Ψ进数表示该系数,在每位设定具有下述指标的临时数据,该指标表示在进行根据所述系数的元素A的加法运算时的各组中的Ψ进数表示的同一位是否存在值的步骤;通过将该临时数据彼此相加的结果特定构成所述各系数的Ψ进数的各[ni]A的步骤。由此,可减少加法运算次数,可实现标量乘法的运算速度的高速化。
另外本发明提供一种运算方法,具有多个不同的元素Y,各所述元素Y通过运算法结合多个不同的元素X的组表示的情况下,利用电子计算机运算所述各元素Y,该运算方法包括设定所述各元素X,使所述元素X与所述各元素Y相关联的步骤;对所述每个元素X设定成为表示所述各元素Y是否具有同一元素X的指标的临时数据,通过由所述运算符结合的所述临时数据表示所述各元素Y的步骤;在所述各元素Y中含有的临时数据中,在多个元素Y有公共的临时数据的组合的情况下,将其公共的临时数据结合,设定新的临时数据的步骤;使用所述新的临时数据运算由所述各组构成的各元素Y的步骤。由此,可实现运算速度的提高。
另外,本发明的运算方法中,在结合所述公共的临时数据并设定新的临时数据的步骤中,将所述多个元素Y分割成多个组,对每个所述被分割的组结合公共的临时数据,设定新的临时数据。
另外,本发明的乘方运算的运算方法中,使用指数部n的p进数表达,即 [数学式26]
,通过弗罗贝纽斯映射将特征p、扩张次数m的扩张域Fpm的元素A的乘方运算An表示为 [数学式27]
所述运算符为乘法运算,所述多个元素Y通过由所述元素A的p进数表达的各系数ni决定的乘方的形式Ani(注Ani是根据指A的指数ni的乘方)给出,所述多个元素X从所述元素A的乘方即A,A2,...,A2u(注A2u是指根据A的指数2u的乘方)、u=Flr(log2(max(ni)))及它们的弗罗贝纽斯映射选出。
另外,本发明的标量乘法的运算方法中,设特征p、有限域Fp的次数m的扩张域为Fpm,设有理点的总数为#E(Fpm),设无限远点为O,有限域Fp上的椭圆曲线由下式表示, [数学式28] 任意的有理点A满足下式, [数学式29]
将系数部[ni]A的映射表示为Ψ进数展开的 [数学式30] 所述运算符为加法运算,所述多个元素Y通过由所述Ψi项的系数[ni]决定的标量倍数的形式[ni]A及它们的Ψ映射赋予,所述多个元素X从A的标量倍数即A,[2]A,...,[2u]A、u=Flr(log2(max(ni)))及它们的Ψ映射选择。
另外,本发明提供一种乘方运算的运算装置,使用指数部n的p进数表达,即 [数学式31]
,通过弗罗贝纽斯映射将特征p、扩张次数m的扩张域Fpm的元素A的乘方运算An表示为 [数学式32]
该乘方运算的运算装置包括以所述指数部n的p的规定次数的项、和比该项的次数仅高1次的高次的项或高1次以上的高次的多个项为一组,将所述指数部n分成多个组,并且,以最低次数归纳各组内的各项,特定该最低次数的系数,p进数表示该系数,在每位设定具有下述指标的临时数据,该指标表示在进行根据所述系数的元素A的乘方运算时的各组中的同一位是否存在值,并对利用根据该临时数据为存在值的行的乘数进行特定的临时数据的值进行存储的存储部;和以将规定的所述临时数据彼此相乘的结果作为各组的所述系数中的幂乘法的结果进行存储的存储部。通过这样构成,可高速进行幂乘法的运算。
另外,本发明的乘方运算的运算装置中,具备存储部,该存储部在将规定的所述临时数据彼此相乘,运算各组的根据所述系数的乘方运算的结果时,特定公共相乘的临时数据的组合,使用该临时数据的组合运算各组的根据所述系数的幂乘的结果并进行存储。
另外,本发明提供一种标量乘法运算的运算装置,设特征p、有限域Fp的次数m的扩张域为Fpm,设有理点的总数为#E(Fpm),设无限远点为O,有限域Fp上的椭圆曲线由下式表示, [数学式33] 任意的有理点A满足下式, [数学式34]
将标量部[n]表示为Ψ进数展开的 [数学式35] 该标量乘法运算的运算装置,以所述指数部i的映射Ψ的规定次数的项、和比该项的次数仅高1次的高次的项或高1次以上的高次的多个项为一组,将所述映射F分成多个组,并且,以最低次数归纳各组内的各项,特定该最低次数的系数,Ψ进数表示该系数,在每位设定具有下述指标的临时数据,该指标表示在进行根据所述系数的元素A的加法运算时的各组中的Ψ进数表示的同一位是否存在值,通过将该临时数据彼此相加的结果特定构成所述各系数的Ψ进数的各[ni]A。通过这样构成,可高速进行标量乘法的运算。
本发明中,以规定次数的项、和比该项的次数仅高1次的高次的项或高1次以上的高次的多个项为一组,分成多个组,并且,以最低次数归纳各组内的各项,特定该最低次数的系数,p进数表示该系数,在每位设定具有下述指标的临时数据,该指标表示在进行根据所述系数的元素A的乘方运算时的各组中的同一位是否存在值,由此,可高速进行运算。



图1是临时(Temporary)数据的说明图; 图2是乘方运算的运算程序的流程图; 图3是乘方运算的运算装置的框图; 图4是其它乘方运算的运算程序(阶段0的处理)的流程图; 图5是其它乘方运算的运算程序(阶段1~阶段(H-1)的处理)的流程图; 图6是其它乘方运算的运算程序(阶段H的处理)的流程图; 图7是表示计算印象的印象图; 图8是标量乘法运算的运算程序的流程图。
符号说明 10 半导体基板 20 运算部 30 存储部 40 输入输出不 50 数据总线
具体实施例方式 在以下的说明中,Floor符号 [数学式36]
及Ceiling符号 [数学式37]
为了便于说明,作为[数学式38]

进行表述。
<乘方运算的实施方式1> 本发明的乘方运算的运算方法及乘方运算的运算装置中,有效的提取需要相同的乘法运算的部分作为临时数据,通过其它的乘法运算求该临时数据的值,由此,大大消减必要的乘法次数。
特别是,使用指数部n的p进数表达即 [数学式39]
通过弗罗贝纽斯映射,进行将特征p、扩张次数m的扩张域Fpm的元素A的乘方运算An,记作 [数学式40]
的乘方运算。
为便于说明,设为s=Flr(logpn)=5、Flr(log2(p-1))=4。将A的ni乘表示为A[i]。
该情况下,将指数部n展开表述时如下。
n=n5p5+n4p4+n3p3+n2p2+n1p+n0 通过对该指数部n按p的每偶数次进行归纳(くくる),可如下表述指数部n。
n=(n5p+n4)p4+(n3p+n2)p2+(n1p+n0) 即,在此,分割成如下三组,以p的4次和高于4次一次的高次的5次为一组,以p的2次和高于2次的高次3次为一组,以剩余的p的0次和高于0次一次的高次的1次为一组。为便于说明,将p的0次和1次构成的组称作第0组,将p的2次和3次构成的组称作第1组,将p的4次和5次构成的组称作第2组。
在此,设为 r0=n1p+n0 r1=n3p+n2 r2=n5p+n4 时,可如下表述指数部n。
n=r2p4+r1p2+r0 为便于说明,将r0称作第0系数,将r1称作第1系数,将r2称作第2系数。
因此,元素A的乘方运算An可使用第0系数r0、第1系数r1、第2系数r2如下表述。
[数学式41]
另一方面,为便于说明,将p的各次系数n0、n1、n2、n3、n4、n5用2进制表示为如下的值。
n0=(1110)2 n1=(1001)2 n2=(1110)2 n3=(1101)2 n4=(0101)2 n4=(1111)2 该情况下,如下。
A
=A8A4A2 A[1]=A8A1 A[2]=A8A4A2 A[3]=A8A4A1 A[4]=A4A1 A[5]=A8A4A2A1 即,可如下表述。
[数学式42]


本发明中,不对其进行运算,而如图1所示,导入新的临时数据。即,在每位设定分别以2进制表示的第0系数r0、第1系数r1、第2系数r2进行元素A的乘方运算的情况下的临时数据Cefg,该临时数据Cefg具有表示在各组的同一位是否存在值的指标。
表示1临时数据的Cefg的下标文字e、f、g中,e是第2组的指标,f是第1组的指标,g是第0组的指标。
而且,图1的情况中,在Ψ1(A8)和Ψ1(A1)和A4的行中,由于在第0组、第1组和第2组分别存在有值,所以设为C111,在Ψ1(A4)的行中,第0组没有值,第1组和第2组分别存在有值,所以设为C110,在Ψ1(A2)和A1的行中,第0组和第1组没有值,第2组存在有值,所以设为C100,在A8和A2的行中,第0组和第1组分别存在有值,第2组没有值,所以设为C011。
以便于理解的方式总结如下。
C111←Ψ1(A8),Ψ1(A1),A4的位 C110←Ψ1(A4)的位 C100←Ψ1(A2),A1的位 C011←A8,A2的位 而且,各临时数据的值如下。
C111=Ψ1(A8A1)A4 C110=Ψ1(A4) C100=Ψ1(A2)A1 C011=A8A2 另外,在用于说明的p的各次的系数n0、n1、n2、n3、n4、n5的关系上,除了值不存在的临时数据的其它临时数据全部为“1”。即如下。
C101=C010=C001=1 当导入这样的临时数据时,可使用这些临时数据分别运算元素A的第0系数r0的乘方运算、元素A的第1系数r1的乘方运算、元素A的第2系数r2的乘方运算。
即,元素A的第0系数r0的乘方运算为临时数据Cefg中的第0组的指标g不为“0”的临时数据的积,其如下。
[数学式43]
另外,元素A的第1系数r1的乘方运算为临时数据Cefg中的第1组的指标f不为“0”的临时数据的积,其如下。
[数学式44]
另外,元素A的第2系数r2的乘方运算为临时数据Cefg中的第2组的指标e不为“0”的临时数据的积,其如下。
[数学式45]
这样,将利用弗罗贝纽斯映射中的运算次数不同的其它次数的位也作为对象,作为临时数据进行分量化,而且,将临时数据的惩罚运算结果作为利用各组的系数的乘方运算的结果可通过[数学式41]进行乘方运算,由此,与Window法等相比能够使关键码长的情况下的乘法次数的消减效果加大。并且,可消减弗罗贝纽斯映射的运算次数部分的乘法次数。
如图1所示,在此,通过将乘方运算看做3行8列的行列来进行临时数据的设定,但不限于3行8列,也可以采用适宜的行数、适宜的列数的行列设定临时数据。
即,考虑到行数r及列数c,也可以如下考虑指数部n。
[数学式46] 该情况下,可通过如下计算来计算元素A的乘方运算An。
[数学式47]
[数学式48] Ti={y|(2i & y)=2i,1≤y<2r-1},0≤i<r [数学式49]
[数学式50]
[数学式51]
<乘方运算的实施方式2> 因此,根据基于图2所示的流程的程序,通过个人计算机等电子计算机运算元素A的乘方运算An。另外,该程序通常作为加密或解密的扩张域的乘法程序中的乘方运算的子程序使用。
首先,电子计算机在指数部n为零的情况下(步骤S1YES),输出“1”并结束(步骤S2),在指数部n不为零的情况下(步骤S1NO),设定指数部n的p进数表达(步骤S3)。另外,p进数表达的设定中所需的数值通过默认设定,可根据需要变更。
另外,电子计算机进行乘方运算的初期条件的设定(步骤S4)。即,作为B
=A,设定进行乘方运算的元素,采用Flr(log2(p-1))=t,设定对p进数表达中的p的乘方运算的各系数进行2进制表达时的位数。
然后,电子计算机以1≤i≤t设为B[i-1]·B[i-1]=B[i]运算二次幂,以0<i≤2r设为C[i]=1,以0<i≤r设为R[i]=1。
然后,如图1所示,电子计算机假设分成多组的乘方运算,进行规定的位的临时数据C的设定(步骤S5)。即,在M=0后,通过0≤i<r判定nij的第1位是否为“1”,在为“1”时,将M+2i代入M。接着,电子计算机进行nij的位移。在此,“nij & 1”的“&”是获得nij和“1”的逻辑值的意思,“nij=1”是使nij向右移动1位的位移的意思。例如,(1011)2》1为(101)2。
其次,电子计算机采用“C[M]←C[M]·B[k]”及“C[i]←Ψ1(C[i])”运算设定的临时数据C的值。
然后,电子计算机使用临时数据C的值,采用“R[i]←R[i]·C[j]”进行分成各组的乘方运算的各组的乘法运算(步骤S6)。
其次,电子计算机,采用R[r-1]=D,以r-2≥i≥0运算“D←Ψc(D),D←D·R[i]”,由此,作为乘方运算An的值得到D(步骤S7),并输出该D(步骤S8)。
这样,通过运算乘方运算An,可消减乘法次数,提高运算速度。
另外,幂乘法的运算也可以作为运算处理电路形成于半导体基板上,制成乘法运算处理用半导体器件。
即,如图3所示,在半导体基板10上形成由运算电路构成的运算部20,形成由存储运算所需的各种数据的寄存器构成的存储部30,由存储部30的所需要的寄存器存储经由输入输出部40输入的初始条件,开始运算,也可以经由输入输出部40输出运算结果。图3中,50是数据总线。
在存储部30设有存储临时数据的值的寄存器及存储将规定的临时数据彼此相乘的结果的寄存器等,除此之外,还设有存储适宜的数据的寄存器。
这样,通过采用乘法处理用半导体器件,可实现运算速度的更高速化。另外,乘法处理用半导体器件其自身可以不是一个半导体器件,也可以组装入加密及解密的乘法处理用的半导体器件等其它半导体器件的一部分。
<乘方运算的实施方式3> 下面,对本发明实施方式的其它幂乘法的运算方法及幂乘法的运算装置进行说明。该实施方式与上述实施方式相比,进一步消减需要的乘法次数。具体而言,在进行特征p、扩张次数m的扩张域Fpm的元素A的乘方运算An时,使用指数部n的p进数表达的上述[数学式39],通过弗罗贝纽斯映射进行由上述[数学式40]表示的乘方运算。在此,指数部n可如下展开。
n=n3p3+n2p2+n1p+n0 此时,设为An0=Y0、An1=Y1、An2=Y2、An3=Y3。(注An0是指A的指数n0的幂乘,An1是指A的指数n1的幂乘,An2是指A的指数n2的幂乘,An3是指A的指数n3的幂乘)。
现在,有Y0、Y1…、Y#Y-1这样的#Y个元素,其分别通过运算符·结合从集合{X0、X1、…X#X-1}给予了适当的数的所有元素。在此,从集合{X0、X1、…X#X-1}高速求取Y0、Y1…、Y#Y-1全部。
下面,作为一例,说明对于集合{X0、X1、…X14}求取下式(1a)~(1d)所示的Y0、Y1、Y2、Y3的方法。通常,求取Y0、Y1、Y2、Y3需要26次的乘法运算。与之相对,该实施方式中,如后述,可将乘法运算次数消减到18次。
[数学式52] Y0= X1 ·X3 ·X5 ·X7 ·X9 ·X11 ·X13 (1a) Y1= X1·X2 ·X0 ·X7 ·X11·X12 (1b) Y2=X0 ·X1 ·X1 ·X5 ·X8 ·X9 ·X12 ·X13 (1c) Y3=X0 ·X1·X2 ·X6 ·X7·X8 ·X12 ·x13·X14 (1d) 式(1c)(1d)中,在求Y2、Y3时,结合X0这样的相同元素。同样,在求所有Y0、Y1、Y2、Y3时,存在结合相同的元素的情况。因此,通过将作为临时数据的临时分量C0001、…、C1111如下式(2a)~(2e)那样定义,Y0、Y1、Y2、Y3可如式(3a)~(3d)那样求得。其中,分量的下标从下位起按顺序在不需要求Y0、Y1、Y2、Y3时为1,在需要时为0。
[数学式53] C0001=X3,C0010-1, C0011=X11 (2a) C0100=X4,C0101=X5·X9,C0110=1(2b) C0111=1, C1000=X14, C1001=1(2c) C1010=X2·X6,C1011=X7,C1100=X0·X3 (2d) C1101=X13, C1110=X12, C1111=X1 (2c) [数学式54] Y0=C0001·C0011·C0101·C0111·C1001·C1011·C1101·C1111(3a) Y1=C0010·C0011·C0110·C0111·C1010·C1011·C1110·C1111(3b) Y2=C0100·C0101·C0110·C0111·C1100·C1101·C1110·C1111(3c) Y3=C1000·C1001·C1010·C1011·C1100·C1101·C1110·C1111(3d) 式(3a)(3b)中,在求Y0、Y1时,产生C0011·C0111·C1011·C1111这样相同的结合。该C0011·C0111·C1011·C1111在求Y0、Y1时,成为公共乘法运算的分量的组合。其它也相同,在求Y2、Y3时,产生C1100·C1101·C1110·C1111这样相同的结合。同样,该C1100·C1101·C1110·C1111在求Y2、Y3时,成为公共乘法运算的分量的组合。因此,通过如表1所示进行分量的结合,可求全部的Y0、Y1、Y2、Y3。其中,*为0、1都相配的特殊文字。
表1
另外,式(3a)~式(3d)中成为1的分量C0010、C0110、C0111、C1001不需要结合。因此,实际的分量的结合如表2所示。
表2
通过如上述那样求出Y0、Y1、Y2、Y3,可将乘法运算次数从26次消减到18次。即,根据本发明实施方式的其它幂乘法的运算方法及幂乘法的运算装置,可进一步消减需要的乘法运算次数。
<幂乘法的实施方式4> 下面,使用通式进行说明。在log2(#Y)为整数(#Y=2y,(y整数))的情况下,Y0、Y1、…Y#Y-1根据集合{X0、X1、…X#X-1}及运算符·将分量的结合如表3所示分成各阶段,由此进行而有组织地求出。其中,H=log2(#X)。
表3
在表3的阶段1,在2#Y-1>#X的情况下,不需要制作2#Y-1个分量,只要制作#X个即可。另外,在阶段0,仅制作必要的分量,因此,可消减从阶段1到阶段H的分量的结合所需要的乘法运算次数。但是,在#Y相对于#X过大的情况下,必要的分量的下标的趋势分散,因此,在初始的阶段几乎不能进行结合,浪费的处理增加。
为解决该问题,采用#Y=G·E(log2(G),log2(E)整数),如式(4)那样进行分组。表4表示此时的分量的结合。其中,H=log2(E)。
[数学式55] Y0,Y1,…,Y#Y-1→{Y0,Y1,…,YE-1},{YE,YE+1,…,Y2E-1}, …,{YG·E-E,YG·E-(E-1),…,YG·E-1} (4) 表4
<乘方运算的实施方式5> 因此,根据基于后述的流程的程序,能够通过个人计算机等电子计算机运算幂乘法。另外,该程序通常作为加密或解密的扩张域的乘法运算程序中的乘方运算的子程序使用。下面,对底相等的#Y个乘方运算的算法进行说明。
在此,设相等的底为A时,Y0、Y1、…、TG·E-1为 [数学式56] X0、X1、…X#X-1为A、A2、…、A2#X-1(注A2#X-1是指A的指数2#X-1的幂乘)。其中,#X=Flr(log2(max(ni)))+1。
首先,对于幂乘法的运算程序,说明阶段0的处理。图4是其它幂乘法的运算程序的流程图,表示表4所示的阶段0的处理。参照图4,首先,电子计算机进行幂乘法的初始条件的设定(步骤S11)。该步骤为准备步骤,具体而言,从A准备 [数学式57] 在以下的说明中,排列Ca,b,c作为用于存储分量的缓存器使用,下标a表示阶段序号,b表示组序号,c表示缓存器序号。另外,排列ID作为存储用于在排列C中存储有值的分量的下标(ID)的缓存器使用。因此,C的排列索引和ID的排列索引相对应。关于下标,与排列C相同。另外,变量S用于计算存储于排列C的分量的总数(排列C的大小)。关于下标,与排列C相同。
然后,电子计算机进行每组的处理(后述的步骤S13~步骤S16)(步骤S12),因此,伴随该处理进行在阶段0及组g使用的缓存器即S的初始化(步骤S13)。
接着,电子计算机依次进行通过步骤S11的准备步骤求得的X0、X1、…、X#X-1的处理(步骤S14),因此,求出结合Xx的分量ID(NIDNew ID)(步骤S15)。
然后,电子计算机将Xx与在步骤S15中求得的ID(NID)所对应的分量相结合(步骤S16)。其中,在ID为0的情况下,不需要生成分量,因此,省略处理(步骤S16的编号10)。具体而言,探索具有与NID相同的ID的分量是否已存储于缓存器中(步骤S16的编号11~编号16的组),在该分量被存储于缓存器中的情况下(步骤S16的编号12),将Xx与该ID的分量结合(步骤S16的编号13)。与之相对,在缓存器中未存储该分量的情况下,将缓存器的容量扩张(步骤S16的编号19),制作输入了Xx值的新的分量(C0,g,0[S0,g,0])(步骤S16的编号17),并将其输入缓存器(步骤S16的编号18)。
下面,对于乘方运算的运算程序,说明从阶段1到阶段(H-1)的处理。图5是其它乘方运算的运算程序的流程图,表示表4所示的阶段1~阶段(H-1)的处理。在以下的说明中,变量B为保持阶段g的每组的缓存器的总数而使用。另外,变量L如下所示,为保持在阶段g的分量的ID的长度(除*外)而使用。
[数学式58]
另外,变量T为参照分量的ID而使用。在阶段1~最终阶段H,在制作各阶段的分量时需要参照前阶段的分量的ID。例如,当在阶段0制作C01101110这样的分量时,为了在阶段1可如下参照C01101110的ID,需要制作C****1110。
[数学式59]
另外,使参照位置错开L位,为了能够如下参照ID,也需要制作C0110****。
[数学式60]
变量T为进行这样的ID的参照而使用。
参照图5,首先,电子计算机进行B及L值的初始化(步骤S21)。并且,进行从阶段1到阶段(H-1)的每阶段的处理(后述的步骤S23~S26)(步骤S22),伴随该处理更新B及L的值(步骤S23)。
然后,电子计算机进行每组的处理(后述的步骤S25、步骤S26)(步骤S24),伴随该处理,以能够参照ID的下位L位的方式将T初始化(步骤S25),进行阶段H的各组及各缓存器的处理。
另外,电子计算机在对步骤25已初始化的T进行各缓存器的处理(步骤S26的编号7~编号23的循环(loop))时,为使ID的参照位置各错开L位,而更新T的值(步骤S26的编号22)。另外,进行阶段h、组g、缓存器b的缓存器的S的初始化(步骤S26的编号8)。并且,为制作Ch,g,b而逐次处理必要的前阶段的所有的分量(步骤S26的编号9~编号21)。另外,使用T参照前阶段的分量的ID(步骤S26的编号10)。
另外,计算机对与步骤S26的编号10中已参照的ID(NID)相对应的分量进行结合或输入(步骤S26的编号11~编号20)。但是,在ID为0时,不需要生成分量,因此,省略处理(步骤S26的编号11)。
另外,电子计算机如步骤S26的编号10~编号15那样探索与ID(NID)相同的ID的分量是否已存储于缓存器(步骤S26的编号12~编号17的环路)。在该分量存储于缓存器的情况下(步骤S26的编号13),在该ID的分量中结合前阶段的分量(步骤S26的编号14)。与之相对,在该分量未存储于缓存器的情况下,将缓存器的容量扩张(步骤S26的编号20),制作输入了Xx的值的新的分量(Ch,g,b[Sh,g,b])(步骤S26的编号18),并将其输入缓存器(编号S26的编号19)。
下面,对于乘方运算的运算程序,说明阶段H的处理。图6是其它乘方运算的运算程序的流程图,表示图4所示的阶段H的处理。电子计算机进行每组的处理(后述的步骤S32~步骤S35)(步骤S31),因此,伴随该处理,对T设定1(步骤S32)。
接着,电子计算机进行各输出的处理(后述的步骤S34、步骤S35)(步骤S33),因此,对标记flag设定1(步骤S34)。在作为最终阶段的阶段P,只要参照1位前阶段(H-1)的分量的ID即可,因此,在步骤S32对T设定1。另外,在进行各缓存器的处理(步骤S33~步骤S35的编号3~编号13的循环)时,为各错开1位ID的参照位置,而更新T的值(步骤S35的编号12)。
在最终阶段H的前阶段,未进行输入或结合的分量可忽视。但是,在最终阶段H必须向输出Y输入值。因此,在该算法中,为判别对输出Yg·E+e是否输入或结合阶段(H-1)的分量,而使用变量flag作为标记。在步骤S34将标记flag初始化,探索应对输出Yg·E+e输入或结合的阶段(H-1)的分量(步骤S35的编号5~编号10的循环),在该分量存在的情况下,将分量的值与输出Yg·E+e结合(步骤S35的编号7),或者输入分量的值变更标记flag的值(步骤S35的编号8)。与之相对,在该分量不存在的情况下(flag的值为初始值的情况下),向输出Yg·E+e输入1(步骤S35的编号11)。
通过这样进行乘方运算,可消减乘法运算次数,提高运算速度。
另外,该实施方式的幂乘法的运算如图3所示,作为运算处理电路也可以形成在半导体基板上,制成乘法处理用半导体器件。
<标量乘法运算> 下面,对本发明实施方式的标量乘法的运算方法及标量乘法的运算装置进行说明。在椭圆曲线密码中,多使用将相同的要素相加多次这样的标量乘法运算方式。但是,标量乘法运算由于进行每次250位级的大的数值量加法,因此,在普通加法运算时太耗费成本。本发明中公开使该标量乘法运算高速化的算法。以下,说明椭圆加法运算、标量乘法运算、二进制法、椭圆线上的有理点的弗罗贝纽斯映射、满足有理点的性质,并对本发明的实施方式进行详细说明。
(椭圆加法运算) 首先,对高速标量乘法算法进行说明。通常,有限域Fp(特征p的体)上的椭圆曲线由式(5)定义。
[数学式61] 将a、b所属的体Fp称作系数体,将变量x、y所属的体FPm称作定义体,E/Fp是指系数体为Fp的椭圆曲线,E(Fpm)是指定义体为Fpm(Fp的m次扩张域)的椭圆曲线。
将满足式(5)的(x,y)的所有组和无限远点O合并称作椭圆曲线E(x,y)上的有理点,在有理点P(x1,y1)和Q(x2,y2)中,定义如下的运算。将通过该运算生成有理点R(x3,y3)的方法称作椭圆加法运算。
[数学式62] x3=λ2-x1-x2(7) y3=λ(x1-x3)-y1 (8) 此时,即使与整数的加法运算中称为“0”这样的任意的有理点P进行椭圆加法运算,也可以将结果为P的有理点设为无限远点O。即,P+O=O+P=P。有理点P中,当与x轴对称的有理点-P进行椭圆加法运算时,成为无限远点O。将该-P称作P的逆元素。以下,以式(5)的椭圆曲线为例进行叙述。
(标量乘法运算) 标量乘法是指将相同的有理点通过椭圆加运算进行多次相加。例如,[n]A是指将n个A相加。另外,将式(5)的曲线的有理点的总数设为#E(Fpm)时,任意的有理点A具有如下性质。
[数学式63]
巧妙地利用该性质(巡回性)的是椭圆曲线密码。
(二进制法) 二进制法是如下高效地进行[n]A这样的标量乘法运算的手法。
表5 Algorithm 1(二进制法) InputA,n Output X1.

B←A2.if n=0,then output X3.else,then4. if(n & 1)=1,then X←X+B5. n←n>>16. if n=0,then output X7. B←B+B8. if(n & 1)=1,then X←X+B9. go to Step.5 10.end else 二进制法中,需要平均进行Flr(log2(n))次的椭圆2倍数运算(自身椭圆加法一次自身)、{Flr(log2(n))+1}/2次的椭圆加法运算。另外,》是向右位移的运算符,例如(1011)2》1为(101)2。另外,&表示逻辑积,例如(1011)2 & 1为1、(110)2 & 1为0。
(Window法) Window法是如下高效地进行标量乘法运算的方法。在此,说明窗口大小3的情况。首先,准备以下的分量。
[数学式64] [2]A,[3]A,[4]A,…,[7]A (9) 它们对应于以下的二进制。
[数学式65] 2=(010)2,3=(011)2,4=(100)2,…,7=(111)2 (10) 使用它们如下式进行例如[318]A这样的标量乘法运算。
[数学式66] [318]A=[(100111110)2]A={[23]([(100)2]A)[23]([(111)2]A)}[(110)2]A(11) 若除去用于准备分量的计算,则Window法需要平均进行Flr(log2(n))-w+1次的椭圆2倍数运算和[Flr(log2(n))+1/w]{1-(1/2)w}次的椭圆加法运算。
(椭圆曲线上的有理点的弗罗贝纽斯映射) E(Fpm)的椭圆曲线上的有理点P=(x,y)的弗罗贝纽斯映射如φ(P)那样表达,进行如下的运算。
[数学式67]
即,进行P的x和y分别乘p这样的运算。另外,x和y包含于有限域Fpm(Fpm的m次扩张域,m是1以上的整数),该情况下的pk乘(其中k为0以上的整数)远比以其它整数进行幂乘要快。
(有理点满足的性质) 椭圆曲线E(FPm)上的任意的有理点P=(x,y)必须满足下式(12)。
[数学式68]
此时,t=P+1-#E(FP),φ2是指进行两次弗罗贝纽斯映射,即, [数学式69]
这样的运算。在此,将式(12)进行变形整理如下。
[数学式70]

即,将对p个P进行加法运算(p倍数)是指相对于对P实施弗罗贝纽斯映射进行t倍数运算,对P实施2次弗罗贝纽斯映射的逆元素进行椭圆加法运算。另外,椭圆曲线E(FPm)上的任意的有理点P必须满足下式(15)。
[数学式71]
这是指 [数学式72] 下面,对进行本发明的标量乘法运算[n]A(其中A为E(FPm)上的任意的有理点)的情况进行说明。
<标量乘法运算的实施方式1> (根据Ψ进数展开(進展開)的运算) 考虑可高速运算的自身准同型映射(自己準同型写像)Ψ,如式(16)求成为与n倍数运算同型映射的Ψ进数展开的运算。
[数学式73] 使用其赋予下式。
[数学式74] 此时,Ψ1(A)是指执行i次运算Ψ,该运算为高速,因此,实际必要的计算为[ni]A的部分。
作为具体的例子,具有以(有理数满足的性质)的项介绍的使用了弗罗贝纽斯映射φ的φ进制展开。其将n进行p进数展开,且 [数学式75] 因此,成为 [数学式76] 在此,代入式(14)的右边时,成为 [数学式77]
式(18)的右边的求和的括号内为 [数学式78]

此时,在式(19)的iCk·tk·ni’大于p的情况下,将该系数再进行p进数展开。即,如果设为 [数学式79] 则,成为 [数学式80]



另外,在φ的指数2(i+j)-(k+1)大于m时,通过使用式(15),可得到 [数学式81]

(其中,T=Flr({2(i+j)-(k+1)}/m)),由此,将φ的指数保持在小于m。
以下,反复减少使用了这些这样的p进数展开和式(15)的φ指数部,在φk(其中,k为大于等于0小于m)的全部系数小于p的情况下,在式(17)中,可准备Ψ为φ的式子。即成为, [数学式82]
在式(17)中,由A[i]表示[ni]A的部分时,得到以下的算法。
[表6] Algoritbm 2 Input A,n Output C 1.将B←A,s←nを

进展开时的Ψ的最大指数,
2.
3.
4.else,then 5. 求式(17)のょぅにnの

进展开 6. for 0≤i≤s,do 7. if(ni & 1)=1,then A[i]←A[i]+B 8. ni←ni>>1 9. end for 10. for 1≤j≤t,do 11. B←B+B 12. for 0≤i≤s,do 13. if(ni & 1)=1,then A[i]←A[i]+B 14. ni←ni>>1 15. end for 16. end for 17. C←A[s] 18. for s-1≥j≥0,do 19. C←ψ(C),C←C+A[j] 20. end for 21. output C 22.end else 该方法需要t次的椭圆2倍数运算、(s+1)(t+1)/2的椭圆加法运算、s次的映射Ψ的运算、以及s次的椭圆加法运算。通过使用映射Ψ的运算,椭圆2倍数运算的次数减少,但椭圆加法运算的次数不变。为减少该椭圆加法运算的次数,考虑如下所示的计算法。
(标量乘法运算的实施方式1的具体的说明) 以下,改良上述的算法2。将s=(Ψ进数展开n时的Ψ的最大系数)及t=Flr(log2{max(ni)})分别设为5和4。另外,n0、n1、…、n5的二进制表达如下, n1=(1001)2,n0=(1110)2,(20a) n3=(1101)2,n2=(1110)2,(20b) n5=(1111)2,n4=(0101)2, (20c) 将标量乘法运算的系数n如下分隔并考虑(参照图7)。
[数学式83] n=(n5ψ+n4)ψ4+(n3ψ+n2)ψ2+(n1ψ+n0) (21) 而且,考虑G1={[n5]A,[n3]A,[n1]A}和G1={[n4]A,[n2]A,[n0]A}的两个组,并且看做如下的计算式。
[n1]A=[8]A+[1]A, [n0]A=[8]A+[4]A+[2]A, (22a) [n3]A=[8]A+[4]A+[1]A,[n2]A=[8]A+[4]A+[2]A, (22b) [n5]A=[8]A+[4]A+[2]A+[1]A,[n4]A=[4]A+[1]A(22c) 如式(20)和式(22),G1中,仅处于[n5]A的计算项为[2]A,G2中,仅处于[n4]A的计算项为[1]A,因此,将这些运算汇总设为C100时,为C100=Ψ([2]A)+[1]A。同样,G1中,处于[n1]A和[n3]A的计算项不存在,G2中,仅处于[n0]A和[n2]A的计算项为[8]A和[2]A,因此,将这些运算汇总为C011时,为C011=[8]A+[2]A。关于其它组合也相同,若如下考虑C001,C010,…,C111, [数学式84]

C111=ψ([8]A+[1]A)+[4]A(23c) 则如可下式那样计算[n]A。
[数学式85] R0=C100+C101+(C110+c111),(24a) R1=C010+C011+(C110+C111), R2=C001+C011+C101+C111 [n]A=ψ4(R2)+ψ2(R1)+R0(24b) 使用了式(22)的式(17)的计算需要3次椭圆2倍数运算及16从椭圆加法运算,但式(23)及式(24)的计算仅需要3次椭圆2倍数运算及14次椭圆加法运算。这样,在本发明的实施例中,可减少椭圆加法运算的次数。
(算法) 下面,进一步数学上说明本发明的实施方式。如图7,考虑行数r及列数c。此时,如下考虑标量乘法运算的系数n。
[数学式86] 而且,本发明的实施方式中,如下计算[n]A。
[数学式87]
Ti={y|(2i & y)=2i,1≤y<2r-1},0≤i<r 上述“数学式87”中从上起顺序为(26a)、(26b)、(26c)、(26d)、(26e)。
另外,|Sj1|≤t及|Ti|≤2r-1。在(实施方式1的具体的说明)的项的例中,Ψ=φ的情况下,式(15)的m为6,c=2,因此,r=Ceil(m/c)=3,必要的临时变量C1和Ri的个数如式(26)得知为7个(=2r-1)和3(=r)。式(26c)中的[2i]A,1≤i<t的准备需要3次(=t-1)的2倍数运算,C1,1≤1<2r的准备需要8次(=c·t)以下的椭圆加法运算。在此,t=4=Flr(log2(max(ni))。通过使用这些临时数据,如式(26c)、式(26d)及式(26e)所示,[n]A能够通过23次(=r(2r-1)+(r-1))以下的椭圆加法运算求得。而且,需要9次(=(c-1)(2r-1)+(r-1))的映射F的运算。
<标量乘法运算的实施方式2> 图8是本实施方式的标量乘法运算的运算程序的流程图,根据式(25)进行式(26e)的运算。电子计算机在标量乘法运算的系数n为0时(步骤S41的Y),输出无限远点O(步骤S42)并结束。在标量乘法运算的系数n不为0时(步骤S41的N),执行由式(25)表示的系数n的Ψ进数展开的运算(步骤S43)。
下面,求步骤S43所示的通过式(25)表示的n的Ψ进数展开。电子计算机对B
设定有理点A,通过Ψi的系数的最大值Flr(log2(max(ni))将二进制表达的最大位数设定为t。将有理点A的倍数设定为B[i],将C[i]和R[i]的初始值设为无限远点O(步骤S44)。
电子计算机在步骤S45的编号8~22求临时数据C。电子计算机首先对M=0进行设定(步骤S45的编号10),判定系数nij的逻辑积nij & 1是否为1,在为1的情况下,对M加2i(步骤S45的编号12)。接着,电子计算机进行通过nij》1使系数nij的位进行向右错开1位的位移(步骤S45的编号13)。电子计算机重复以上的运算直至i=0~r(步骤S45的编号11~编号14)。
然后,电子计算机判定M是否为0,在不为0的情况下,执行对临时数据C[M]加B[k]的运算(步骤S45的编号15)。电子计算机重复执行k=0~t以上的运算(步骤S45的编号9~编号16)。接着,电子计算机判定j是否为0(步骤S45的编号17),在j不为0的情况下,以k=1~2r重复将Ψ(C[k])代入临时数据C[k]的运算(步骤S45的编号18~编号20)。电子计算机重复执行以上的运算直至j=c-1~0(步骤S45的编号8~编号22)。
接着,电子计算机判定逻辑积2i & j是否为0,在不为0的情况下,执行对R[i]加C[j]的运算(步骤S46的编号25)。电子计算机重复执行该运算直至j=1~2r(步骤S46的编号24~编号26)。然后,以i=0~r重复执行以上的运算(步骤S46的编号23~编号27)。
接着,电子计算机将R[r-1]设为D(步骤S47的编号28),电子计算机将Ψc(D)置换为D,对D加R[i](步骤S47的编号30),重复该运算直至i=r-2~0(步骤S47的编号29~编号31)。然后,电子计算机输出D,(步骤S48的编号32)并结束。
这样,通过设定标量乘法运算处理用半导体器件,可实现运算速度的更高速化。另外,标量乘法运算处理用半导体器件不仅其自身可以制成为1个半导体器件,而且还可以组装入加密及解密处理用的半导体器件等其它的半导体器件的一部分。
另外,如以上的说明表明,<标量乘法运算的实施方式1>中所说明的标量乘法运算的运算方法与<乘方运算的实施方式1>中所说明的乘方运算的运算方法类似。即,在标量乘法运算中通过加法运算+的运算符结合临时数据。在乘方运算的运算方法中,通过乘法运算·的运算符结合临时数据。临时数据的运算方法仅运算符不同,如图2及图8所示,幂乘运算和标量乘法运算的计算方法都相同。
另外,在<幂乘的实施方式3>的项中,通过运算符·将Y0,Y1,…,Yn(Y)-1这样的(Y)个元素Y和分别根据集合{X0,X1,…,Xn(X)-1}进被赋予适当的数的n(x)个元素X的全部结合,各元素Y由通过运算符·结合的临时数据表示。而且,对下述方法进行了说明,即,各元素Y中包含的临时数据中,在多个元素Y中有公共的临时数据的组合的情况下,将该公共的临时数据结合,设定新的临时数据,使用该新的临时数据进行运算。
该临时数据的运算通过将运算符从乘法·置换为加法+,也可以直接适用于标量乘法运算。即,只要将标量乘法运算中的Fi项的系数[ni]Aを设为元素Y,将标量乘法运算中的自身准同型映射的展开项即Ψ0([ni]A)、Ψ1([n1]A)、…、ΨS([nS]A)设为元素X即可。因此,标量乘法运算可通过将运算符从乘法·置换成加法+而适用于<幂乘的实施方式4>、<幂乘的实施方式5>、<幂乘的实施方式6>的各项中说明的运算方法。
另外,图2、图4、图5、图6及图8的流程图,通过图3的半导体基板10上形成的电子计算机执行。运算部20读出存储于存储部30的程序,根据该程序执行运算处理。运算不20例如在初始设定时,读出从输入输出部40输入的数据、或存储于存储部30的规定区域的数据并执行运算。将运算结果存储于与变量对应的存储部30的规定存储区域。运算部20根据程序执行乘法运算处理、加法运算处理、由“for”或“if”表示的运算处理等,并将其运算结果存储在与存储部30的变量相对应的规定的存储区域,或将其运算结果作为输出数据进行存储。运算部20读出存储于存储部30的规定区域的运算结果,将其发送到输入输出部40,输出处理结果。
产业上的可利用性 本发明的运算方法和运算装置可高速运算例如幂乘法和标量乘法,可适用于明码文本数据的加密和解密的用途。
权利要求
1.一种乘方运算的运算方法,使用指数部n的p进数表达,即
[数学式1]
,通过弗罗贝纽斯映射将特征p、扩张次数m的扩张域Fpm的元素A的乘方运算An表示为
[数学式2]
该乘方运算的运算方法的特征在于,包括
以所述指数部n的p的规定次数的项、和比该项的次数高1次的高次的项或高1次以上的高次的多个项为一组,将所述指数部n分成多个组,并且,以最低次数归纳各组内的各项,来特定该最低次数的系数,对该系数进行p进数表示,按每位设定具有下述指标的临时数据的步骤,该指标表示在进行利用所述系数的元素A的乘方运算时的各组中的同一位是否存在值;
使用根据该临时数据确定为存在值的位中的乘数特定所述临时数据的值的步骤;和
将规定的所述临时数据彼此相乘的结果作为各组的利用所述系数的乘方运算的结果的步骤。
2.如权利要求1所述的乘方运算的运算方法,其特征在于,包括
在将规定的所述临时数据彼此相乘来运算各组的利用所述系数的乘方运算的结果时,特定公共地相乘的临时数据的组合的步骤;和
使用所述临时数据的组合运算各组的利用所述系数的乘方运算的结果的步骤。
3.一种标量乘法的运算方法,设特征p、有限域Fp的次数m的扩张域为Fpm,设有理点的总数为#E(Fpm),设无限远点为O,有限域Fp上的椭圆曲线由下式表示,
[数学式3]
任意的有理点A满足下式,
[数学式4]
将标量部[n]表示为ψ进数展开的
[数学式5]
该标量乘法的运算方法的特征在于,包括
以所述指数部i的映射ψ的规定次数的项、和比该项的次数高1次的高次的项或高1次以上的高次的多个项为一组,将所述映射F分成多个组,并以最低次数归纳各组内的各项来特定该最低次数的系数的步骤;
对该系数进行ψ进数表示,按每位设定具有下述指标的临时数据的步骤,该指标表示在进行利用所述系数的元素A的加法运算时的各组中的ψ进数表示的同一位是否存在值;和
利用将该临时数据彼此相加的结果来特定构成所述各系数的ψ进数的各[ni]A的步骤。
4.一种运算方法,具有多个不同的元素Y,在各所述元素Y利用多个不同的元素X通过运算符被结合的组进行表示的情况下,利用电子计算机运算所述各元素Y,该运算方法的特征在于,包括
设定所述各元素X,使所述元素X与所述各元素Y相关联的步骤;
对所述每个元素X设定临时数据,利用由所述运算符结合的所述临时数据表示所述各元素Y的步骤,其中,该临时数据为表示所述各元素Y是否具有同一元素X的指标;
在所述各元素Y中含有的临时数据中,在多个元素Y中有公共的临时数据的组合的情况下,将其公共的临时数据结合来设定新的临时数据的步骤;和
使用所述新的临时数据运算由所述各组构成的各元素Y的步骤。
5.如权利要求4所述的运算方法,其特征在于
在所述结合公共的临时数据而设定新的临时数据的步骤中,将所述多个元素Y分割成多个组,对每个所述被分割的组结合公共的临时数据来设定新的临时数据。
6.如权利要求4或5所述的运算方法,其特征在于
使用指数部n的p进数表达,即
[数学式6]
,通过弗罗贝纽斯映射将特征p、扩张次数m的扩张域Fpm的元素A的乘方运算An表示为
[数学式7]
所述运算符为乘法运算,所述多个元素Y通过由所述元素A的p进数表达的各系数ni决定的乘方的形式Ani(注Ani是指A的利用指数ni的乘方)给出,所述多个元素X从所述元素A的幂乘即A,A2,...,A2u(注A2u是指A的利用指数2u的乘方)、u=Flr(log2(max(ni)))和它们的弗罗贝纽斯映射选出。
7.如权利要求4或5所述的标量乘法的运算方法,其特征在于
设特征p、有限域Fp的次数m的扩张域为Fpm,设有理点的总数为#E(Fpm),设无限远点为O,有限域Fp上的椭圆曲线由下式表示,
[数学式8]
任意的有理点A满足下式,
[数学式9]
将作为系数部[ni]A的映射ψ表示为ψ进数展开的
[数学式10]
所述运算符为加法运算,所述多个元素Y通过由所述ψi项的系数[ni]决定的标量倍数的形式[ni]A和它们的ψ映射给出,所述多个元素X从A的标量倍数即A,[2]A,...,[2u]A、u=Flr(log2(max(ni)))和它们的ψ映射选出。
8.一种乘方运算的运算装置,使用指数部n的p进数表达,即
[数学式11]
,通过弗罗贝纽斯映射将特征p、扩张次数m的扩张域Fpm的元素A的乘方运算An表示为
[数学式12]
该乘方运算的运算装置的特征在于,包括
以所述指数部n的p的规定次数的项、和比该项的次数仅高1次的高次的项或高1次以上的高次的多个项为一组,将所述指数部n分成多个组,并且,以最低次数归纳各组内的各项来特定该最低次数的系数,p进数表示该系数,按每位设定具有下述指标的临时数据,该指标表示在进行利用所述系数的元素A的乘方运算时的各组中的同一位是否存在值,并对利用根据该临时数据确定为存在值的位的乘数所特定的临时数据的值进行存储的存储部;和
将规定的所述临时数据彼此相乘的结果作为各组的利用所述系数的乘方运算的结果进行存储的存储部。
9.如权利要求8所述的乘方运算的运算装置,其特征在于
具备存储部,该存储部在将规定的所述临时数据彼此相乘来运算各组的利用所述系数的乘方运算的结果时,特定公共地相乘的临时数据的组合,使用该临时数据的组合运算各组的利用所述系数的幂乘运算的结果并进行存储。
10.一种标量乘法运算的运算装置,设特征p、有限域Fp的次数m的扩张域为Fpm,设有理点的总数为#E(Fpm),设无限远点为O,有限域Fp上的椭圆曲线由下式表示,
[数学式13]
任意的有理点A满足下式,
[数学式14]
将标量部[n]表示为ψ进数展开的
[数学式15]
该标量乘法运算的运算装置的特征在于
以所述指数部i的映射ψ的规定次数的项、和比该项的次数高1次的高次的项或高1次以上的高次的多个项为一组,将所述映射F分成多个组,并以最低次数归纳各组内的各项来特定该最低次数的系数,
对该系数进行ψ进数表示,按每位设定具有下述指标的临时数据,该指标表示进行利用所述系数的元素A的加法运算时的各组中的ψ进数表示的同一位是否存在值,
利用将该临时数据彼此相加的结果来特定构成所述各系数的ψ进数的各[ni]A。
全文摘要
本发明提供一种可高速执行包括乘方运算和标量乘法等运算的运算方法及运算装置。在具有多个不同的元素Y,且各元素Y通过由运算符结合多个不同的元素X的组表示的情况下,利用电子计算机运算各元素Y,其中,设定各元素X,使元素X与各元素Y相关联,对每个元素X设定成为指标的临时数据,该指标表示各元素Y是否具有同一元素X,利用由运算法结合的所述临时数据表示各元素Y,在各元素Y中含有的临时数据中,在多个元素Y有公共的临时数据的组合的情况下,将其公共的临时数据结合,设定新的临时数据,使用该新的临时数据运算由各组构成的各元素Y。
文档编号G09C1/00GK101809638SQ200880108358
公开日2010年8月18日 申请日期2008年8月9日 优先权日2007年8月9日
发明者野上保之, 加藤英洋, 森川良孝, 根角健太 申请人:国立大学法人冈山大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1