CN101061526A - 密码处理运算装置 - Google Patents

密码处理运算装置 Download PDF

Info

Publication number
CN101061526A
CN101061526A CNA2005800399114A CN200580039911A CN101061526A CN 101061526 A CN101061526 A CN 101061526A CN A2005800399114 A CNA2005800399114 A CN A2005800399114A CN 200580039911 A CN200580039911 A CN 200580039911A CN 101061526 A CN101061526 A CN 101061526A
Authority
CN
China
Prior art keywords
data
calculated
factor
basic point
scalar
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.)
Granted
Application number
CNA2005800399114A
Other languages
English (en)
Other versions
CN101061526B (zh
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of CN101061526A publication Critical patent/CN101061526A/zh
Application granted granted Critical
Publication of CN101061526B publication Critical patent/CN101061526B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • G09C1/02Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system by using a ciphering code in chart form
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/10Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及密码处理运算装置及方法,其在超椭圆密码处理中实现安全且高速的运算。将基于超椭圆曲线密码的标量倍算处理中的基点D、和作为标量倍算的执行算法的窗口法中事先计算数据设为比超椭圆曲线的亏格g(genus)小的加权(weight)的因子即退化因子,通过退化因子+非退化因子的加法处理执行应用了窗口法的标量倍算处理中的加法处理。根据本结构,实现高速运算,进而实现以也不会损害相对于运算中的密钥解析等作为一体方式的SPA解析的耐性的安全且高速的运算。

Description

密码处理运算装置
                        技术领域
本发明涉及密码处理运算方法、及密码处理装置、以及计算机程序。更详细地说,涉及实现超椭圆曲线密码的标量倍算的高速化的密码处理运算方法、及密码处理装置、以及计算机程序。
                        背景技术
目前,伴随网络通信、电子商务的发展,通信中确保安全成为重要的问题。确保安全的一个方法是密码技术,目前,正在进行使用了各种密码化方法的通信。
例如在IC卡等小型装置中埋入密码处理模块,在IC卡和作为数据读取写入装置的读写器之间进行数据的送收信,进行认证处理、或送收信数据的密码化、译码化的系统正在实用化。
执行密码处理的例如IC卡例如在车站的检票等各种门或消费中心等中被广泛应用,小型化及处理的迅速化的要求逐渐变得严格。
密码化方式大地区分为公共密钥方式、公开密钥方式。公共密钥方式称为对称密码方式,发信者、收信者保有公共的密钥。作为公共密钥方式的代表的方法,有DES(Data Encryption Standard)。DES算法的特征可用大致相同的算法执行密码化和译码化。
相对于该公共密钥密码,使发信者和收信者的密钥不同的结构是公开密钥方式或非对称密码方式。在公开密钥密码方式中,与密码化、译码化实用公共密钥的公共密钥密码方式不同,需要确保秘密的秘密密钥最好特定的一个人具有,因此,对密钥的管理是有利的。但是,公开密钥密码方式与公共密钥密码方式相比,数据处理速度慢,通常多用于密码密钥的配送、数字署名等数据量少的对象。公开密钥密码方式的代表的已知有RSA(Rivest-Shamit-Adieman)密码及椭圆曲线密码(ECC:Elliptic Curve Cryptography)。
椭圆曲线密码(Elliptic Curve Cryptography)使用素体上的椭圆曲线y2=x3+ax+b(4a3+27b2≠0)及2扩大体上的椭圆曲线y2+xy=x3+ax2+b(b≠0)等。在这些曲线上的点上加上无限远点(O)的集合与加法相关,没有有限组,无线远点(O)为其单位元。下面,用+表示该有限组上的点的加法。将该有限组上不同的两个点P、Q的加法P+Q称为“点的加法”,将点P和点P的加法P+P=2P称作“点的加倍”。另外,将求取点P加上k次的点P+P+...+P=kP的运算称作“点的标量倍算”。
点的标量倍算已知可使用点的加法及点的加倍构成。素体上的椭圆曲线及2扩大体上的椭圆曲线上的仿射坐标系(x,y)及投影坐标(X,Y,Z)的点的加法、点的加倍法、及点的标量倍算法被记载于IEEE P1363/D13 Standard Specifications for Public KeyCryptography中。
作为将椭圆曲线密码常规化的方式,有Koblitz Cantor提案的超椭圆曲线密码(HECC:Hyper Elliptic Curve Cryptography)方式。对于超椭圆曲线密码方式,例如非特许文献1、非特许文献2中有记载。
椭圆曲线密码中,将由有限体Fq上定义的椭圆曲线上的点设为P,将标量倍算的点kP(k∈Z)设为Q时,从Q求k的问题可回归离散对数问题。另一方面,超椭圆曲线密码中,将点的形式的和即因子(divisor)设为D1,将由标量倍算kD1定义的因子设为D2时,从k求D2的问题作为超椭圆曲线的雅可比多样体上的离散对数问题,可作为公开密钥密码使用。
超椭圆曲线上,具有曲线特征的值为亏格(genus)g。将p设为素数,将n设为正整数,q=pn。此时,有限体Fq上定义的亏格g的超椭圆曲线C由以下的方程式定义。
y2+h(x)y=f(x)
在此,h(x),f(x)∈Fq[x],f(x)是次数2g+1的monic多项式。
相对于超椭圆曲线C上的点P=(x、y),opposite的点-P作为(x、y+h(x))定义。将P=-P的点称作分歧点(ramificationpoint)。
超椭圆曲线密码的定义体的运算大小(位长)在假设与椭圆曲线密码同等的安全性时,与椭圆曲线的定义体的运算大小相比,已知1/g减小。运算尺寸小有实际上的优点,列举超椭圆曲线密码的优点之一。
其次,对超椭圆曲线密码的基本事项进行说明。如上所述,超椭圆曲线密码中,将作为点的形式的和的因子(divisor)设为D1,将由标量倍算kD1定义的因子设为D2时,从k求D2的问题作为超椭圆曲线的雅可比多样体上的离散对数问题,可作为公开密钥密码使用。
在此,因子(divisor)可用以下的形式表现。
数1
D = Σ i m i P i - ( Σ i m i ) P ∞ , m i ≥ 0
其中,相对于Pi=(xi、yi)且i≠j,Pi≠Pj。将该形式的因子的表现称为半简化因子(semi reduced divisor)。
另外,将∑Mi称作D的加权(weight)。另外,将加权(weight)为亏格g以下的半简化因子称作简化因子(reduced divisor)。
超椭圆曲线的雅可比(Jacobi)多样体上的任意半简化因子D可使用下记的多项式U、V∈Fq[x]作为D=(U、V)表现。将其称作芒福德(Mumford)表现。需要说明的是,芒福德(Mumford)表现例如记载于非特许文献3。
数2
U = Π ( x - x i ) m i
V(xi)=yi
V(x)2+V(x)h(x)-f(x)≡0 mod U(x),degV<degU
亏格(genus)2的任意简化因子D使用芒福德(Mumford)表现时,可将有限体Fq上的元作为系数具有2次以下的多项式组即:
(U、V)=(x2+U1x+U0、V1x+V0)表现。
另外,亏格(genus)3的任意简化因子D使用芒福德(Mumford)表现时,可将有限体Fq上的元作为系数具有3次以下的多项式组即:
(U、V)=(x3+U2x2+U1x+U0、V2x2+V1x+V0)表现。
需要说明的是,以下在明细书中,因子D只要没有特别限定,则为简化因子(reduced divisor)。即,是加权(weight)为亏格g以下的作为半简化因子的简化因子(reduced divisor)。
另外,将简化因子(reduced divisor)中除去加权(weight)与亏格g相等的因子、即简化因子(reduced divisor)中加权(weight)比亏格g小的因子称作退化因子(degenerate divisor)。
例如,
亏格g=2时,退化因子为加权(weight)=1的因子
亏格g=3时,退化因子为加权(weight)=1,2的因子
在亏格g=2时和亏格g=3时,将退化因子(degenerate divisor)用芒福德(Mumford)表现表示时,如下表现。
(I)亏格2的退化因子(weight1):(U、V)=(x+u、v)
(II)亏格3的退化因子(Weight1):(U、V)=(x+u0、v0)
(III)亏格3的退化因子(Weight2):(U、V)=(x2+u1x+u0、v1x+v0)
其次,对超椭圆曲线密码中使用的因子标量倍算进行说明。因子的标量倍算可通过将被称为加法算法的因子的加法和加倍组合计算。下面,对主要的加法算法进行说明。
最初提案的实用的算法为Cantor算法。该算法例如记载于非特许文献1、非特许文献2。该算法是可对所谓的亏格的超椭圆曲线上的因子应用的算法,但与椭圆曲线相比,存在算法复杂,计算量大的缺点。
Harley提案了限定在亏格2的超椭圆曲线,分为因子的weight的情况,通过在各情况下进行最优化,进一步减少计算量的算法。接受该研究,近年来正在进行超椭圆曲线密码(HECC)中运算算法的改良、扩张的研究。
Harley的算法是以定义体为素体,亏格g的曲线、因子的表现用Mumford表现。作为该算法计算量改善的研究例例如列举非特许文献4、非特许文献5、非特许文献6等。另外,有关在2扩大体的情况下将定义体扩张的处理例,非特许文献7、非特许文献8中已报告。另外,有关亏格3的情况的Harley对算法的扩张处理,非特许文献9、非特许文献20中已报告。另外,通过因子的表现上使用扩张Mumford表现、weighted、Coordinate消减计算量的研究有非特许文献11、非特许文献12、非特许文献6、非特许文献13。
参照图1及图2对Harley算法的处理进行说明。图1(A)是表示亏格2时的因子的加法D1+D2的处理例的图。需要说明的是,因子D1+D2分别为D1=(U1、V1)、D2=(U2、V2)。首先,通过因子的加权(weight)的值进行情况区分。即,通过[D1+D2]的各加权(weihgt)的值,进行以下情况的区分:
(1)weight2+weight2
(2)weight2+weight1
(3)例外处理
其次,在weight2彼此相加,即(1)weight2+weight2的情况下,对于因子D1=(U1、V1)、D2=(U2、V2)而言,若最大公约数gcd(U1、U2)=1,则两个因子D1=(U1、V1)、D2=(U2、V2)含有彼此相同或相对(opposite)的点。该情况下,进行根据(1a)HarLeyADD即华莱算法的加法处理。(1a)HarLeyADD的处理例如是非特许文献7中所示的被称为Most FreqUent Case的处理。该Most FreqUent Case在亏格2时的因子的加法D1+D2处理中是高准确率产生的事例。
亏格2的加法处理中由Most Frequent Case执行的HarleyADD的处理如以下的图表1[Table1]所示。
数3
           Table 1 Harley ADD(genus 2)
Figure A20058003991100121
该(1a)HarleyADD的处理以非常高的概率进行。其它例外处理进行的概率非常低。在不能满足Most Frequent Case条件的情况下,即在不能对因子D1=(U1、V1)、D2=(U2、V2)满足最大公约数gCD(U1、U2)=1的情况下,进行(1b)例外处理2。
(2)weight2+weight1的情况也相同,检查是否gCD(U1、U2)=1,在满足gCD(U1、U2)=1的情况下,执行(2a)ExHarADD2+1→2,在不能满足gCD(U1、U2)=1的情况下,进行(2b)例外处理3。
(2a)ExHarADD2+1→2的算法如非特许文献8所示。(2a)ExHarADD2+1→2的处理如以下的图表3[Table3]所示。
数4
            Table 3 ExHarADD2-1→2(genus 2)
Figure A20058003991100131
(3)例外处理1在上述(1)、(2)以外的情况分为weight的情况。
图1(B)表示亏格2时的加倍的流程。加倍是D+D=2D的处理。与加法的情况相同,因子D的weight通过
(4)weight2、
(5)weight1、
(6)weight0
进行分别不同的处理。
(4)weight2的情况下,检查因子是否含有分歧点,若不含有,则进行(4a)HarleyDBL的处理。在因子含有分歧点时,进行(4b)例外处理6。
(4a)HarleyDBL的处理算法例如在非特许文献7中作为MostFrequent Case表示。HarleyDBL的处理算法如以下的图表2[Table2]所示。
数5
            Table 2 HarleyDBL(genus 2)
Figure A20058003991100141
其次,参照图2对亏格3时的加法、加倍进行说明。亏格3的情况,与亏格2的情况相比,基本的考虑方法也相同,但亏格3的情况下,用于因子最大的weight为3,故分情况的数与亏格2相比,具有非常多的特征。
图2(A)的加法中,因子D1、D2分别为D1=(U1、V1)、D2=(U2、V2)。首先,利用因子的加权(weihgt)的值进行情况区分。即,通过[D1+D2]的各加权(weihgt)的值,进行以下情况的区分:
(1)weight3+weight3
(2)weight3+weight2
(3)weight3+weight1
(4)例外处理7
另外,在(1)weight3+weight3的情况下,就因子D1=(U1、V1)、D2=(U2、V2)而言,在满足最大公约数gCD(U1、U2)=1时,执行(1a)HarLeyADD。其是亏格3的加法处理中最高概率产生的事例、即Most FreqUent Case。
亏格3的加法处理中作为Most Frequent Case的HarleyADD例如示于非特许文献9、10。亏格3的加法处理中作为Most FrequentCase的HarleyADD的算法如以下的图表[Table4]所示。
数6
                         Table 4 Harley ADD(genus 3)
Input:D1=(u1,v1),deg u1=3,D2=(u2,v2),(deg u2=3Output:D3=(u3,v3)=D1+D2
  123456789 Compute r=res(u1,u2):Compute almost inverse inv≡r/u1 mod u2:Compute s′-rs≡inv(v1+v2)mod u2:Compute s=(s′/r)and make s monic:Compute z=su1:Compute u3-(s(z+w4h)-w5(f+hv1+v1)/u1)/u2:Compute v3=-(w3z+h+v1)mod u3:Compute u3=(f+hv+v2)/u3:Compute v3=v32x2+v31x+v30≡v3+h mod u3     14M4M11M1I+8M6M16M8M8M3M
 total HarleyADD     1I+78M
同样,在(2)weight3+weight2的情况下,就因子D1=(U1、V1)、D2=(U2、V2)而言,在满足最大公约数gCD(U1、U2)=1时,执行(2a)ExHarADD3+2→3。在不满足最大公约数gCD(U1、U2)=1时,执行(2b)例外处理9。
同样,在(3)weight3+weight3的情况下,就因子D1=(U1、V1)、D2=(U2、V2)而言,在满足最大公约数gCD(U1、U2)=1时,执行(3a)ExHarADD3+1→3。在不满足最大公约数gCD(U1、U2)=1时,执行(3b)例外处理10。
各算法未明确示于文献等中,因此,导出定义体为F2 n时的公式。作为其结果的ExHarADD3+1→3及ExHarADD3+2→3的算法如以下的图表[TabLe6]、[TabLe7]所示。
数7
                Table 6 ExHarADD3+1→3 (genus 3)
 Input:D1=(u1,v1),deg u1=3,D2=(u2,v2),deg u2=1Output:D3=(u3,v3)=D1+D2
  12345 Computo r=res(u1,u2):w0←u20 2,w1←w0(u+12+u20),w2←u20u11,r←w1+w2+u10.Compute inverse of u1 mod u2:inv←1/r.Compute s0=inv(v1+v2)mod u2:z0←w0v12,s0←inv(v10+v20+u20v11+z0).Compute u3=(f+hv+v2)/(u1u2),v=s0u1+v1:u32←s0 2+s0+u20+u12+f6t0←f6+s0 2+u12,t1←u12t0,t2←u20u32,t3←h2s0,u31←t1+t2+t3+u11+v12+f5,t4←u20(t6+v12+f5+t3+u11),t5←v12(v12+u12+h2),t6←u12(u12(f6+u12)+f5),u30←w0u32+t4+t6+u12t0+s0h1+t6+u10+f4+v11.Compute v3=v32x2+v31x+v30≡s0u1+v1+h mod u3:v32←v12+h2+s0(u12+u32)+u32,v31←v11+h2+s0(u11+u31)+u31,v30←v10+h2+s0(u10+u30)+u30. 3M1I3M12M3M
 total ExHarADD3+1→3   1I+21M
数8
          Table 7ExHarADD3+2→3,ExHarADD3+2→2(genus 3)
Figure A20058003991100161
图2(B)表示亏格3时的加倍的流程。加倍是D+D=2D的处理。与加法的情况相同,因子D的weight通过(4)weight3、(5)weight2、(6)weight1、(7)weight0进行分别不同的处理。
(4)weight3的情况下,检查因子是否含有分歧点,若不含有,则进行(4a)HarleyDBL的处理。在因子含有分歧点时,进行(4b)例外处理6。
(4a)HarleyDBL的处理算法例如在非特许文献9、10中作为Most Frequent Case表示。HarleyDBL的处理算法如以下的图表5[Table5]所示。
数9
              Table 5 HarleyDBL(genus 3)
Figure A20058003991100171
亏格2、3的各HarleyADD、HarLeyDBL称为Most freqUentCase,当随机产生因子,进行加法或加倍时,以非常高的概率进行HarleyADD、HarLeyDBL处理。需要说明的是,该HarleyADD、HarLeyDBL为most frequent Case的说明例如在非特许文献14中进行说明。
根据非特许文献14,该most frequent Case以外的处理的概率为O(1/q)。在此,q为定义体的要素数,在安全的密码用途中,由于qg为需要160bit程度的大的数,故现实中看尝试为只产生HarleyDBL的状况。
因此,在使用Harley算法或其改良算法将超椭圆曲线密码(HECC)的加法算法例如作为IC卡等密码处理运算装置安装时,多有只安装HarLeyADD、HarLeyDBL,而不安装有关其它的概率几乎不会产生的负载例外处理的运算的安装的情况。该情况下,例外处理例中,应用执行不需要区分weight的情况的Cantor的算法的结构等方法。亏格越高,复杂的例外处理的负担越是增大,因此,非特许文献9、10中对该安装方法进行说明。
其次,对超椭圆曲线(HECC)算法的因子的标量倍算进行说明。超椭圆曲线密码(HECC)算法中,因子的标量倍算可通过将超椭圆加法和超椭圆加倍的组合计算。作为标量倍算的算法,以基本的binary法和double-and-add-always法为例举例说明。
如上所述,椭圆曲线密码中,以有限体Fq上定义的椭圆曲线上的点为P,以标量倍算的点kP(k∈Z)为Q时,由Q求取k的问题可回归离散对数问题。另一方面,超椭圆曲线密码中,以作为点的形式和的因子(divisor)为D1,以由标量倍算kD1定义的因子为D2时,由D2求取k的问题作为超椭圆曲线中的雅可比多样体上的离散对数问题,可作为公开密钥密码使用。
相对于因子,将作为应用于标量倍算(D=dD)的乘数的标量值:d的二进制数表现设为D=(DL-1、.....、D0),其中,DL-1=1、DL-2...0=1or0。
作为标量倍算的算法,如下所示基本的binary法的运算算法[算法1]。
数10
binary法(Algorithml)
  Input D0Output D=dD0
  D←D0for i from l-2 to 0{D←2D  //2倍算HarleyDBLif di=1 then D←D+D0  //加算HarleyADD}returnD
其次,对double-and-add-always法的运算算法进行说明。
将利用密码技术的安装方法的不良情况了解秘密信息的方法称作旁路攻击法(Side Channel Attack、SCA)。SCA中有利用与密码信息相关的运算的处理时间进行攻击的时序攻击法(TA:TimingAttack)、及利用密码信息和功率消耗量的相关关系进行攻击的简单功率解析(SPA:Simple Power Analysis)、及差分功率解析(DAP:Differential Power Analysis)这样的功率攻击等。时序攻击法(TA)在非特许文献15中有说明,功率攻击在非特许文献16中有说明。
简单功率解析(SPA)是通过直接观测有利于密码密钥的位信息的运算的功率消耗的波性来明确秘密信息的安装攻击。为提高密码处理算法的SPA的耐性,例如需要将其设为不会产生密码密钥的位信息和功率波性相关关系的算法。另外,为提高相对于时序攻击法(TA)的耐性,例如将其设定为不会产生密码密钥的位信息和运算时间的相关关系的算法是有效的。
作为相对于超椭圆曲线密码(ECC)、及超椭圆曲线密码(HECC)的时序攻击法(TA)、及相对于功率攻击(SPA)的对策结构,已知double-and-add-always法是有效的。有关该double-and-add-always法的详细在非特许文献17中有说明。该算法与上述的binary法的运算算法不同,其为总是进行虚拟(Dummy)的加法,使得运算时间及功率波性不会因作为乘数的标量d的结构bit的值而不同的结构。
作为标量倍算的算法,下面表示基本的double-and-add-always法的运算算法[算法2]。
数11
double-and-add-always法(Algorithm2)
  Input D0Output D=dD0
  D[0]←D0for i from l-2 to 0{D[0]←2D[0]  //2倍算HarleyDBLD[1]←D[0]+D0  //加算HarleyADDD[0]←D[di]}return D[0]
其次,对基点的生成处理进行说明。在将标量倍算的计算用于密码技术时,输入所需的因子D0可分为如下两个类型:
(1)事先决定的因子的情况
(2)事先未决定的随机产生的因子的情况。
在此,(1)事先决定的因子的情况下的输入因子称为基点。
通常的基点的生成算法如下所示。
(a)随机选择定义体Fq上的元,生成g个超椭圆曲线上的点Pi(i=1、...、g)。
(a1)将随机选择的各元设为x坐标xi(i=1...g),之后,求出为在超椭圆曲线上设置而与xi对应的y坐标。
(b)以基点的因子为D0=(U(x)、V(x))。
决定(b1)U(x)=(x-x1)(x-x2)...(x-xg)、(b2)V(x)=Vg-1xg-1+Vg-2xg-2+...+V0的系数Vi。例如生成的点完全不同的情况下,可从V(xi)=yi求取Vi
(c)通过上述算法生成的因子为weitght g的因子。
在将标量倍算的计算用于密码技术时,生成输入所需的因子D0、即生成基点时,在应用事先决定的因子的情况下,可通过上述的处理(a)~(c)求取用于weight g的基点的因子。
非特许文献1:N.Koblitz.Hyperelliptic curve cryptosystems.J.Cryptology,vol.1,No.3,pp.139-150,1989.
非特许文献2:D.G.Cantor.Computing in the Jacobian ofhyperelliptic curve.Math.Comp.,Vol.48,No.177,pp.95-101,1987
非特许文献3:「D.Mumford,Tata lectures on theta II,Progressin Mathematics,no.43,Birkhauser,1984.」
非特许文献4:K.Matsuo,J.Chao,and S.Tsujii.Fast Genus twohyperelliptic curve cryptosystems.Technical Report ISEC2001-31,IEICE Japan,2001.
非特许文献5:M.Takahashi.Improving Harley algorithms forJacobians of genus 2 hyperelliptic curves.SCIS2002.(Japanese).
非特许文献6:T.Lange.Inversion-free arithmetic on genus 2hyperelliptic curves.Cryptology ePrint Archive,2002/147,IACR,2002.
非特许文献7:T.Sugizaki,K.Matsuo,J.Chao,and S.Tsujii.Anextension of Harley addition algtorithm for hyperelliptic curves overfinite fields of characteristic two.ISEC2002-9,IEICE,2001
非特许文献8:T.Lange,Efficient arithmetic on genus 2hyperelliptic curves over finite fields via expiicit formulae.Cryptology ePrint Archive,2002/121,IACR,2002.
非特许文献9:J.Kuroki,M.Gonda,K.Masuo,J.Chao and S.Tsujii.Fast genus three hyperellipitc curve cryptosystems.SCIS2002
非特许文献10:J.Pelzl,T.Wollinger,J.Guajardo,and C.Paar.Hyperelliptic curve Cryptosystems:Closing the Performance Gap toElliptic Curves.Cryptology ePrint Archive,2003/026,IACR,2003.
非特许文献11:Y.Miyamoto,H.Doi,K.Matsuo,J.Chao andS.Tsujii.A fast addition algorithm of genus two hyperelliptic curves.SCIS2002.(Japanese).
非特许文献12:N.Takahashi,H.Morimoto and A.Miyaji.Efficient exponentiation on genus two hyperelliptic curves(II).ISEC2002-145,IEICE,2003.(Japanese)
非特许文献13:T.Lange.Weighed coordinate on genus 2hyperellipitc curve.Cryptology ePrint Archive,2002/153,IACR,2002.
非特许文献14:N.Nagao.Improving group law algorithms forJacobians of hyperelliptic curves.ANTS-IV,LNCS 1838,pp.439-448,Springer-Verlag,2000.
非特许文献15:C.Kocher,Timing Attacks on Implementationsof Diffie-Hellman,RSA,DSS,and Other Systems,CRYPTO′96,LNCS 1109,pp.104-113,1996
非特许文献16:C.Kocher,J.Jaffe,and B.Jun,DifferentialPower Analysis,CRYPTO′99,LNCS 1666,pp.388-397,Springer-Verlag,1999
非特许文献17:J.-S.Coron,Resistance against DifferentialPower Analysis for Elliptic Curve Cryptosystems,CHES′99,LNCS1717,pp.292-302,Springer-Verlag,1999
目前,相对于进入实用相的椭圆曲线密码(ECC)算法,作为其扩张概念的超椭圆曲线密码(HECC)算法目前在学会水平对高速算法及其安装方法正在进行研究。超椭圆曲密码(HECC)的标量倍算的运算时间不超过接近椭圆曲线密码(ECC)的程度,期望更高速化。
                      发明内容
本发明是鉴于上述问题而构成的,其目的在于,提供缩短超椭圆曲线密码(HECC)的标量倍算的运算时间,实现可高速处理的超椭圆曲线密码(HECC)运算处理的密码处理运算方法、及密码处理装置、以及计算机程序。
本发明的目的在于,提供密码处理运算方法、及密码处理装置、以及计算机程序,其结构为在亏格g的超椭圆曲线上将比亏格g小的加权(weight)的因子(退化因子)作为基点选择,应用窗口法执行标量倍算,将窗口法中应用的事先计算数据用退化因子表现,可将标量倍算中加法运算处理全部作为退化因子+非退化因子的加法处理执行,由此实现安全性高的高速运算处理。
更具体地说,本发明的目的在于,提供密码处理运算方法、及密码处理装置、以及计算机程序,在亏格g=2的曲线中有效地探索基点D和5D为加权(weight)=1的退化因子,通过进行将他们设为事先计算退化因子D、5D的窗口法的标量倍算处理,实现运算的高速化。另外,在亏格3的曲线中,有效地探索基点D和3D为加权(weight)=2的退化因子,通过进行将他们设为事先计算退化因子D、3D的窗口法的标量倍算处理,实现运算的高速化。
本发明第一方面提供密码处理运算方法,其执行基于超椭圆曲线密码的密码处理运算,其特征在于,具有:
生成基点的基点生成步骤,所述基点是基于超椭圆曲线密码的标量倍算处理中作为输入因子的基点、和作为标量倍算的执行算法的窗口法中事先计算数据中除基点以外的一个以上的事先计算数据成为比超椭圆曲线的亏格g(genus)小的加权(weight)g0(1≤g0<g)的因子即退化因子;
事先计算退化因子数据生成步骤,基于所述基点生成步骤中生成的基点将窗口法中的事先计算数据作为只由退化因子构成的数据计算;
运算处理步骤,应用所述事先计算退化因子数据生成步骤中生成的事先计算退化因子数据执行应用了窗口法的标量倍算处理,将标量倍算中的加法处理作为含有所述事先计算退化因子的加法处理执行。
另外,本发明的密码处理运算方法的一实施方式中,其特征在于,所述运算处理步骤具有:作为有关相对于因子D的标量倍算D=dD乘数d的展开处理,执行基于所述窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开的展开处理步骤;对所述展开处理步骤中生成的wNAF展开处理数据执行对应所述事先计算退化因子数据的运算的步骤。
另外,本发明的密码处理运算方法的一实施方式中,其特征在于,所述运算处理步骤具有:作为有关相对于因子D的标量倍算D=dD乘数d的展开处理,执行基于所述窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开的展开处理步骤;在基于所述展开处理步骤中生成的wNAF展开处理数据决定的事先计算数据中含有所述事先计算退化因子数据以外的数据时,变换所述wNAF展开数据,生成只由所述事先计算退化因子数据构成的变换wNAF展开数据的展开处理数据变换步骤;对所述展开处理数据变换步骤中生成的变换wNAF展开处理数据执行对应所述事先计算退化因子数据的运算的步骤。
另外,本发明的密码处理运算方法的一实施方式中,其特征在于,所述基点生成步骤是如下步骤,将基点D、和作为标量倍算的执行算法的窗口法中事先计算数据中除基点以外的一个以上的事先计算数据nD(其中,n为1以外的整数)作为成为比超椭圆曲线的亏格g(genus)小的加权(weight)g0(1≤g0<g=)的因子即退化因子的设定生成基点。
另外,本发明的密码处理运算方法的一实施方式中,其特征在于,所述密码处理运算方法是执行亏格g(genus)=2的超椭圆曲线中的标量倍算处理的方法,所述基点生成步骤是生成基点,使得基点D和5D成为加权(weight)1的退化因子的步骤,所述运算处理步骤具有:作为有关相对于因子D的标量倍算D=dD的乘数d的展开处理,将基于所述窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开作为窗口尺寸=3执行的展开处理步骤;在基于所述展开处理步骤中生成的wNAF展开处理数据决定的事先计算数据中含有所述退化因子D、5D以外的数据时,变换所述wNAF展开数据,生成只由所述退化因子D、5D构成的变换wNAF展开数据的展开处理数据变换步骤;在所述展开处理数据变换步骤中生成的变换wNAF展开数据中对应所述退化因子D、5D,执行以标量倍算处理中的加法处理为含有退化因子D、5D的加法处理的运算的步骤。
另外,本发明的密码处理运算方法的一实施方式中,其特征在于,所述密码处理运算方法是执行亏格g(genus)=3的超椭圆曲线的标量倍算处理的方法,所述基点生成步骤是生成基点,使得基点D、3D成为加权(weight)2的退化因子,所述运算处理步骤具有:作为有关相对于因子D的标量倍算D=dD的乘数d的展开处理,将基于所述窗口法的展开处理即wNAF(width-wNon-AdjacentForm)展开作为窗口尺寸=2执行的展开处理步骤;在所述展开处理数据中生成的wNAF展开数据中对应所述退化因子D、3D,执行以标量倍算处理中的加法处理为含有退化因子D、3D的加法处理的运算的步骤。
本发明第二方面提供密码处理装置,其执行基于超椭圆曲线密码的密码处理运算,其特征在于,具有:
生成基点的基点生成单元,所述基点是以基于超椭圆曲线密码的标量倍算处理中作为输入因子的基点、和作为标量倍算的执行算法的窗口法中事先计算数据中除基点以外的一个以上的事先计算数据为比超椭圆曲线的亏格g(genus)小的加权(weight)g0(1≤g0<g)的因子即退化因子;
事先计算退化因子数据生成单元,其基于所述基点生成单元中生成的基点将窗口法中的事先计算数据作为只由退化因子构成的数据计算;
运算处理单元,应用所述事先计算退化因子数据生成单元中生成的事先计算退化因子数据执行应用了窗口法的标量倍算处理,将标量倍算中的加法处理作为含有所述事先计算退化因子的加法处理执行。
另外,本发明的密码处理装置的一实施方式中,其特征在于,所述密码处理装置还具有,作为有关相对于因子D的标量倍算D=dD乘数d的展开处理,执行基于所述窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开的展开处理装置,所述运算处理装置为对所述展开处理装置中生成的wNAF展开处理数据执行对应所述事先计算退化因子数据的运算的结构。
另外,本发明的密码处理装置的一实施方式中,其特征在于,所述密码处理装置具有:作为有关相对于因子D的标量倍算D=dD乘数d的展开处理,执行基于所述窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开的展开处理装置;在基于所述展开处理装置中生成的wNAF展开处理数据决定的事先计算数据中含有所述事先计算退化因子数据以外的数据时,变换所述wNAF展开数据,生成只由所述事先计算退化因子数据构成的变换wNAF展开数据的展开处理数据变换装置,所述运算处理装置为对所述展开处理数据变换装置中生成的变换wNAF展开处理数据执行对应所述事先计算退化因子数据的运算的结构。
另外,本发明的密码处理装置的一实施方式中,其特征在于,所述基点生成装置是如下结构,将基点D、和作为标量倍算的执行算法的窗口法中事先计算数据中除基点以外的一个以上的事先计算数据nD(其中,n为1以外的整数)作为成为比超椭圆曲线的亏格g(genus)小的加权(weight)g0(1≤g0<g)的因子即退化因子的设定生成基点。
另外,本发明的密码处理装置的一实施方式中,其特征在于,所述密码处理装置是执行亏格g(genus)=2的超椭圆曲线中的标量倍算处理的结构,所述基点生成装置是生成基点,使得基点D和5D成为加权(weight)1的退化因子的结构,具有:作为有关相对于因子D的标量倍算D=dD的乘数d的展开处理,将基于所述窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开作为窗口尺寸=3执行的展开处理装置;在基于所述展开处理单元中生成的wNAF展开处理数据决定的事先计算数据中含有所述退化因子D、5D以外的数据时,变换所述wNAF展开数据,生成只由所述退化因子D、5D构成的变换wNAF展开数据的展开处理数据变换装置;在所述展开处理数据变换装置中生成的变换wNAF展开数据中对应所述退化因子D、5D,执行以标量倍算处理中的加法处理为含有退化因子D、5D的加法处理的运算处理装置。
另外,本发明的密码处理装置的一实施方式中,其特征在于,所述密码处理装置是执行亏格g(genus)=3的超椭圆曲线的标量倍算处理的结构,所述基点生成单元是生成基点,使得基点D、3D成为加权(weight)2的退化因子,具有:作为有关相对于因子D的标量倍算D=dD的乘数d的展开处理,将基于所述窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开作为窗口尺寸=2执行的展开处理装置;在所述展开处理数据中生成的wNAF展开数据中对应所述退化因子D、3D,执行以标量倍算处理中的加法处理为含有退化因子D、3D的加法处理的运算处理装置。
另外,本发明第三方面提供计算机程序,其在计算机中执行基于超椭圆曲线密码的密码处理运算,其特征在于,具有:
生成基点的基点生成步骤,所述基点是以基于超椭圆曲线密码的标量倍算处理中作为输入因子的基点、和作为标量倍算的执行算法的窗口法中事先计算数据中除基点以外的一个以上的事先计算数据为比超椭圆曲线的亏格g(genus)小的加权(weight)g0(1≤g0<g)的因子即退化因子;
事先计算退化因子数据生成步骤,其基于所述基点生成步骤中生成的基点将窗口法中的事先计算数据作为只由退化因子构成的数据计算;
运算处理步骤,其是应用所述事先计算退化因子数据生成步骤中生成的事先计算退化因子数据执行应用了窗口法的标量倍算处理的步骤,将标量倍算中的加法处理作为含有所述事先计算退化因子的加法处理执行。
另外,本发明的计算机程序例如是相对于可执行各种程序编码的计算机程序,可通过用计算机可读的方式提供的存储介质、通信介质、例如CD及FD、MO等举例介质、或网络等通信介质提供的计算机程序。通过以计算机可读的方式提供这样的程序,在计算机程序中实现对应程序的处理。
本发明的再其它目的、特征及优点通过基于后述的本发明的实施例及附图的更详细的说明明了。需要说明的是,本明细书中,系统是多个装置的理论上的集合结构,各构成的装置不限于同一框体内。
根据本发明的结构,进行以基于超椭圆曲线密码的标量倍算处理中的基点、和作为标量倍算的执行算法的窗口法中事先计算数据中除基点以外的一个以上的事先计算数据为比超椭圆曲线的亏格g(genus)小的加权(weight)g0(1≤g0<g=的因子即退化因子的设定,通过含有事先算出的退化因子的加法处理执行应用了窗口法的标量倍算处理的加法处理,由于为以上结构,故可实现高速运算,并且,由于未混入不含退化因子的加法处理,故不会产生加法处理时间的运算处理时间及伴随运算处理的功率消耗的差异,而能够以不会损害相对于作为运算序列的解析的SPA、TA解析的耐性的安全实现高速的运算。
再有,根据本发明的结构,作为有关相对于因子D的标量倍算D=dD的乘数d的展开处理,执行基于所述窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开,在基于展开处理中生成的wNAF展开处理数据决定的事先计算数据中含有所述退化数据以外的数据时,变换所述wNAF展开数据,生成只由退化因子数据构成的变换wNAF展开数据,在变换的wNAF展开数据中对应退化因子,将标量倍算处理中的加法处理作为非退化因子+退化因子的加法处理执行,由于为上述结构,故能够以不会损害相对于作为运算序列的解析的SPA、TA解析的耐性的安全实现高速的运算。
                    附图说明
图1是对亏格2的超椭圆曲线密码的标量倍算中的加法处理、加倍处理的算法进行说明的图;
图2是对亏格3的超椭圆曲线密码的标量倍算中的加法处理、加倍处理的算法进行说明的图;
图3是表示对执行退化因子的生成及标量倍算处理时的整体序列进行说明的流程图;
图4是说明超椭圆曲线密码运算处理中的作为退化因子的基点设定处理顺序的流程图;
图5是对应用窗口法执行标量倍算处理时的整体序列进行说明的图;
图6是对在亏格(g)2的超椭圆曲线中检测D、5D成为退化因子即加权=1的基点D的处理做详细说明的图;
图7是表示说明在亏格(g)2的超椭圆曲线中检测D、5D成为退化因子即加权=1的基点D的处理顺序的流程图;
图8是说明用于应用退化因子D、5D实现相对于简单功率分析(SPA)具有耐性的窗口法(window法)进行的标量倍算的概率的wNAF展开、wNAF(1、5)的处理的图;
图9是对在亏格(g)2的曲线中检测基点D和5D两者成为加权(weight)=1的退化因子,并只应用检测到的退化因子D、5D变换wNAF展开数据,并且应用变换后的wNAF展开数据执行标量倍算的处理整体序列进行说明的图;
图10是对亏格(g)3的超椭圆曲线中检测d、3D成为退化因子、即加权=2的基点D的处理做详细说明的图;
图11是说明亏格(g)3的超椭圆曲线中检测d、3D成为退化因子、即加权=2的基点D的处理的顺序的流程图;
图12是对在亏格(g)3的曲线中检测基点D和3D两者成为加权(weight)=2的退化因子,并只应用检测到的退化因子D、3D生成wNAF展开数据,执行标量倍算的处理的整体序列进行说明的图;
图13是表示本发明的密码处理装置的功能结构的块图;
图14是表示执行本发明的密码处理运算的作为密码处理执行器件例的IC模块的构成例的图。
                    具体实施方式
下面,对本发明的密码处理装置及密码处理运算方法、以及计算机程序进行详细说明。需要说明的是,说明根据如下项目进行。
1、作为本发明基础技术的超椭圆曲线密码算法的高速化手法
(1A)将退化因子作为基点应用的处理例
(1B)应用窗口(Window)法的处理例
2、将作为本发明处理例的退化因子作为基点设定,且应用了窗口(Window)法的处理例
3、密码处理装置的功能构成
4、电子署名生成及验证算法的本发明的应用例
5、密码处理装置的硬件构成例
[1.作为本发明基础技术的超椭圆曲线密码算法的高速化手法]
首先,作为本发明基础技术的超椭圆曲线密码算法的高速化手法,对一下两种手法进行说明。
(1A)将退化因子应用于基点的处理例
(1B)应用了窗口(Window)法的处理例
(1A)将退化因子作为基点应用的处理例
首先,对将退化因子作为基点应用的处理例进行说明。需要说明的是,本手法是本申请专利申请人先申请的专利申请即特愿2004-71707中公开的手法。
本手法是有关将椭圆曲线密码常规化的超椭圆曲线密码(HECC:Hyper Elliptic Curve CryptogrAphy)的高速化运算手法。如上所述,超椭圆曲线中,带曲线特征的值是亏格(genus)g。以p为素数,以n为正整数,q=pn。此时,在有限体Fq上定义的亏格g的超椭圆曲线C用下记方程式定义。
y2+h(x)y=fx
在此,h(x)、f(x)∈Fq[x]、f(x)是次数2g+1的monic多项式。
相对于超椭圆曲线C上的电P=(x、y)相对的点-p被作为(x、y+h(x))定义。将p=-P的点称作分歧点(rAmificAtion point)。
在假设与椭圆曲线密码同等的安全性时,可知超椭圆曲线密码的定义体的运算规模(位长)与椭圆曲线的定义体的运算规模相比,小至1/g。运算规模小有执行上的优点,自谦超椭圆曲线密码的优点之一例举例。
如上所述,在超椭圆曲密码中,若将作为点形式的和的因子(divisor)设为D1,将由标量倍算kD1定义的因子设为D2时,自D2求取k的问题作为超椭圆曲线的雅可比多样体上的离散对数问题,可作为公开密钥密码使用。
因子(divisor)如上所述,可用以下形式表现。
数12
D = Σ i m i P i - ( Σ i m i ) P ∞ , m i ≥ 0
其中,相对于Pi=(xi、yi)且i≠j,Pi≠Pj。将该形式的因子称作半简化因子(semi reduced divisor)。另外,将∑mi称作D的加权(weight)。进而将加权(weight)为亏格g以下的半简化因子称作简化因子(reduced divisor)。
超椭圆曲线的雅可比(JAcobi)多样体上的任意半简化因子D可使用下记的多项式U、V∈Fq[x]作为D(U、V)表现。将其称作芒福德(Mumford)表现。
数13
U = Π ( x - x i ) m i
V(xi)=yi
V(x)2+V(x)h(x)-f(x)≡0 mod U(x),degV<deg U
亏格(genus)2的任意简化因子D使用芒福德(Mumford)表现时,可将有限体Fq上的元作为系数具有的二次以下的多项式的组即
(U、V)=(x2+u1x+u0、v1x+v0)表现。
另外,亏格(genus)3的任意简化因子D使用芒福德(Mumford)表现时,可将有限体Fq上的元作为系数具有的二次以下的多项式的组即
(U、V)=(x3+u2x2+u1x+u0、v2x2+v1x+v0)表现。
需要说明的是,作为其它因子的表现,有变形Mumford表现、Weighted CoordinAte。变形Mumford表现相当于用ECC(椭圆曲线密码)所说的投影(projective)坐标,Mumford表现(U、V)为常数Z倍,用(U、V、Z)表现。
Weighted CoordinAte也相同,是通过对Mumford表现设定多个常数(Z1、Z2),用(U、V、Z1、Z2)表现的方法。都作为用于消减下述的HArley的算法的计算量的手法使用。
如上所述,在密码技术使用标量倍算的计算时,输入所需的因子D0可分为下记两种类型:即
(1)事先决定的因子的情况
(2)事先未决定的随机产生的因子的情况
在此,在应用(1)事先决定的因子的情况下,该输入因子为基点。
另外,如上所述,本发明的说明中,因子D是作为加权(weight)为亏格g以下的半简化因子的简化因子(reduced divisor)。另外,将除加权(weight)与亏格g相等的参数以外的因子、即简化因子(reduced divisor)中加权(weight)比亏格g小的因子称作退化因子(degenerAte divisor)。
例如
亏格g=2时,退化因子为加权(weight)=1的因子
亏格g=3时,退化因子为加权(weight)=1、2的因子。
在亏格g=2时和亏格g=3时,若使用芒福德(Mumford)表现表示退化因子(degenerAte divisor),则如下表示。
(I)亏格2的退化因子:(U、V)=(x+u、v)
(II)亏格3的退化因子(Weight1):(U、V)=(x+u0、v0)
(III)亏格3的退化因子(Weight2):(U、V)=(x2+u1x+u0、v1x+v0)
如上所述,通常的基点的生成算法通过如下处理执行。
(A)将定义体Fq上的元随机选择g个,生成g个超椭圆曲线上的点Pi(i=1、...、g)。
(A1)将随机选择的各元设为x坐标xi(i=1...g),求取电影的y坐标,使其之后施加于超椭圆曲线上。
(b)将基点的因子设为D0=(U(x)、V(x))。
决定(b1)U(x)=(x-x1)(x-x2)...(x-xg)
(b2)V(x)=Vg-1xg-1+vg-1xg-2+...+v0的系数vi。例如生成的点完全不同时,可自V(x)=y1求取vi
(c)通过上述算法生成的因子为weight g的因子。
这样,在亏格g的超椭圆曲线中生成决定的现有的算法及昂至通常生成加权(weight)=g的因子。
将作为本愿特许申请人的先愿特许已申请的特愿2004-71707中所说明的退化因子应用于基点的处理例是在亏格g的超椭圆曲线上生成比g小的加权(weight)=g0的因子,即退化因子(degenArAtedivisor),将其作为基点设定,进行处理。
应用本处理例,参照图3对执行标量倍算处理时的整体序列进行说明。在将退化因子(degenArAte divisor)用于基点的标量倍算处理例中,首先,在步骤S101中,在亏格g的超椭圆曲线上生成比g小的加权(weight)=g0的因子,即退化因子(D0)。即,生成
亏格g=2时,加权(weight)=1的因子
亏格g=3时,加权(weight)=1、2的因子
其次,在步骤S102中,二进制展开应用于标量倍算(D=Dd0)的作为乘数的标量值:d。在步骤S103中,执行应用了二进制展开的标量值:d和在步骤S101中生成的退化因子(D0)的标量倍算运算处理(D=Dd0)。标量倍算运算处理(D=Dd0)例如应用上述的binAry法及double-And-AlwAys法执行。
对步骤S101中执行的处理即亏格g的超椭圆曲线中生成比g小的加权(weight)=g0的退化因子(D0)的处理进行详细说明。
本处理中,将亏格g的超椭圆曲线的基点设定为g0<g成立的加权(weight)=g0的退化因子。通过进行应用了该退化因子的基点的设定,使超椭圆曲线密码的标量倍算高速化。
应用了亏格g的超椭圆曲线的超椭圆曲线密码中应用的因子多数情况下是具有与亏格g相同的weight的因子。即,是不为退化因子的因子。在随机生成因子时,成为退化因子的概率在将有限体的元数设为q时为O(1/q)的概率。例如在亏格2的情况下,考虑q用于密码用途时,成为280程度的大的值,因此,在随机选择因子时,成为退化因子的概率非常小。但是,在固定点的基点的标量倍算时,可有意地制作退化因子。参照图4对生成退化因子的方法进行说明。
在亏格g的超椭圆曲线中将加权(weight)=g的因子作为基点生成的现有算法中,执行选择g个超椭圆曲线上的点的处理,与之相对,在本处理例的基点生成算法中,执行选择g0个超椭圆曲线上的点的处理。但是,g0为满足1≤g0<g的值。根据本处理例的基点生成按照以下的处理顺序执行。
(步骤S121)
将作为定义体的有限体Fq上的元随机选择g个,生成g0个超椭圆曲线上的点Pi(i=1、...、g)。
(1)将随机选择的各元作为x坐标xi(i=1...g0),然后求出对应于xi的y坐标,以使其处于超椭圆曲线上。
(步骤S122)
将基点的因子设为D0=(U(x)、V(x))。
(1)U(x)=(x-x1)(x-x2)...(x-xg0)
(2)V(x)=Vg0-1xg0-1+vg0-2xg0-2+...+v0的系数vi。例如生成的点完全不同时,可自V(xi)=yi(I=1...g0)求取vi
通过执行上述的步骤,在亏格g的超椭圆曲线上作为基点生成加权(weight)比g小的加权(weight)=g0的因子。
例如在亏格g=3的超椭圆曲线的情况下,基点根据现有手法而通常使用weight3的因子,与之相对,在应用了根据本处理例的基点设定算法的情况下,将比亏格g=3小的加权、即加权(weight)=1或加权(weight)=2的因子设为基点。
另外,在亏格g=2的超椭圆曲线的情况下,基点根据现有手法而通常使用weihgt2的因子,与之相对,在应用了本处理例的基点设定算法时,将比亏格g=2小的加权、即加权(weight)=1的因子设为基点。
应用参照图4说明的算法,在亏格g的超椭圆曲线上作为基点生成比g小的加权(weight)=g0即因子时,在应用该因子执行的标量倍算中,标量倍算执行算法中使用的加法公式与应用了具有等同于现有的亏格g的加权的接地的情况不同。
即,在基点选择比亏格g小的加权(weight)的因子时,标量倍算中的加法不是HArleyADD,而成为“比weight g的因子+g小的weight的因子的加法”。就用于该“比weight g的因子+g小的weight的因子的加法”的计算成本而言,用于表现因子的多项式的次数减少,故与HArleyADD相比,计算量减少,可缩短标量倍算的处理时间。
在将退化因子设于基点时,作为相对于简单功率解析(SPA)具有耐性的标量倍算的算法,下面表示基本的double-and-add-always法的运算算法(算法3)。
数14
double-and-add-always法(Algorithm3)
  Input D0Output D=dD0
  D[0]←D0  //设置退化因子for i from l-2 to 0{D[0]←2D[0]  //加倍HarleyDBLD[1]←D[0]+D0  //加法与退化因子相加D[0]←D[di]}return D[0]
在本处理例中,执行根据上述算法的运算。通常,与退化因子的相加由于与不是退化因子的参数之间的相加相比,计算量减少,故与有意不制作退化因子的情况相比,可高速运算标量倍算。
(1B)应用了窗口(Window)法的处理例。
其次,对应用了作为本发明基础技术的超椭圆曲线密码算法的高速化手法处理的另一处理例即窗口(Window)法的处理例进行说明。
作为使用了窗口(Window)法的简单电流解析具有耐性的方法,例如记载于“K.OkeyA And T.TAkAgi,The Width-w NAF MethodProvides SmAll Memory And FAst Elliptic ScAlAr MultiplicAtionsSecure AgAinst Side ChAnnel AttAcks,CT-RSA 2003,LNCS 2612,pp328-343,Springer-VerlAg,2003”。另外,超椭圆曲线密码是将椭圆曲线密码常规化的方式,应用了该窗口法的高速化手法可无间隙地应用。
参照图0,对应用窗口法执行标量倍算处理时的整体序列进行说明。
窗口法有多种。最基本的是将作为相对于因子D的标量倍算[D=dD]中应用的乘数设定的标量值:d二进制表现展开,以规定的框数分割二进制表现数据的最上位位~最下位位,生成分割块,并将设于各分割块的乘数d的构成位和被乘数D的乘法数据dD事先计算并图表化保持,在进行实际的标量倍算处理时,通过参照图表取得事先计算数据,省略运算,实现高速化。
例如在作为标量倍算[D=dD]中应用的乘数设定的标量值:d=2674...223(10进制表现)时,该二进制展开例如按照d=1110101001...00101110011的方式表现。
该情况下,从尚未设定例如每三位的窗口(窗口尺寸:w=3)。
[111]、[010]、[100]...
若将这些各构成位和因子D的乘法结果预先计算记录于图表中,则不执行运算而只是提取记录于图表中的事先计算数据,可使运算简化,并进行高速化处理。另外,提案将事先计算并图表化的数据进行各种组合。
作为消减记录于图表中的事先计算数据的方式,有NAF展开方式。其将乘数(d)NAF(Non-AdjAcent form)展开(=带非邻接型符号的二进制数展开)。NAF展开是将乘数(d)按照不为0的位(1或-1)不连续的方式带符号二进制表现的展开处理,不为0的位数最小。
在NAF展开中,为对乘数d的二进制展开数据变换连续的[1]数据部,而进行0,1,-1的位数据即带非邻接型符号的二进制数展开。
另外,作为消减事先计算并图表化的数据的方式,已提出wNFA(width-wNon-AdjAcent Form)法。其详细记载于上述的“[K.OkeyA And T.TAkAgi,The Width-w NAF Method Provides SmAllMemory And FAst Elliptic ScAlAr MultiplicAtions Secure AgAinstSide ChAnnel AttAcks,CT-RSA 2003,LNCS 2612,pp328-343,Springer-VerlAg,2003]”中。
在wNAF展开方式中,为事先计算作为规定框数的数值块中与被乘数(D)相乘的值例如±D、±3D、±0D、...±(2w-1)D,将其保持于图表中的形式。对乘数d的二进制展开数据执行数据变换,将由规定框数(窗口尺寸)构成的数值块分别设定为:
|00..0x|00..0x|00..0x|...
其中,x为奇数(±1、±3..)。
通过进行这样的设定,可将保持于图表的事先计算数据设为±D、±3D、±0D、...±(2w-1)D这样限定的数据,可消减事先计算数据。
根据图0所示的流程,对应用了窗口法(wNAF法)的标量倍算处理的整体序列进行说明。在步骤S101中,在开关g的超椭圆曲线中随机生成因子。此时的生成因子不能作为选择退化因子的因子生成处理执行。因此,多数情况g生成相等的加权(weight)的因子。将该生成因子设为基点。
其次,在步骤S102中,计算上述的事先计算数据。在此,作为窗口尺寸:w,应用带符号的奇数1,3...2w-1,作为事先计算数据,将这些带符号奇数和基点因子D的乘法值即±D、±3D、±0D、...±(2w-1)D的各乘法值作为事先计算数据计算,保持于存储器中。
其次,在步骤S103中,将作为标量倍算[D=dD]中应用的乘数设定的标量值:dwNAF展开。WNAF展开如上所述,是将作为乘数设定的标量值:d分割为成为
|00..0x|00..0x|00..0x|...
其中,x为奇数(±1、±3..)
的分割块的处理,在此,将标量值:d在由利用带±符号的奇数构成的固定宽度窗口尺寸(规定框数)构成的块中展开。
标量值:d的wNAF展开的算法[算法4]如下所示。
数15
wNAF展开(Algorithm4)
Figure A20058003991100361
其次,在步骤S104中,执行标量倍算[D=dD]的运算处理。该运算处理中,执行应用了wNAF展开后的标量值:d和步骤S102中已事先计算的乘法值计算数据:±D、±3D、±0D、...±(2w-1)D的运算处理。
标量倍算[D=dD]的运算算法[算法0]如下所示。
数16
标量倍算(Algorithm5)
Figure A20058003991100371
本处理例中,通过进行步骤S103的wNAF展开,将标量值:d作为由带符号奇数1,3,...2w-1和0所示的块数据展开。与二进制展开标量值的情况相同,标量值中显示的非零的数越少,越能够消减标量倍算的计算值。本处理例是能够将非零的频率减小到最少的方法。另外,展开的图形通常为DD..DAD...DA的图形(D为因子的加倍,A为因子的加法),因此成为对简单功率解析(SPA)具有耐性的方式。另外,步骤S104中执行的标量倍算由于图形本身具有SPA耐性,故如二进制展开的情况的double-and-add-always法,其具有不伴随虚拟运算的特征。
[2.将作为本发明处理例的退化因子作为基点设定,且应用了窗口(window)法的处理例]
其次,作为本发明的处理例,对将退化因子作为基点设定,且应用了窗口法(wNAF)的处理例进行说明。上述的两个超椭圆曲线密码算法的高速化手法即:
(1A)将退化因子应用于基点的处理例
(1B)应用了窗口(Window)法的处理例
分别通过不同的手法实现超椭圆曲线密码算法的高速化。
上述的窗口(Window)法应用没有退化因子的基点作为固定因子实现高速化。该窗口(Window)法中,只要能够将上述的处理例[(1A)将退化因子应用于基点的处理例]中说明的退化因子作为基点使用,则可将应用了上述的[(1B)应用了窗口(Window)法的处理例]中说明的在图0的步骤S104的处理中执行的加法处理、具体而言上述的标量倍算[D=dD]的运算算法[算法0]的加法运算处理(2.2)的步骤执行的加法处理作为应用了退化因子的加法运算执行。含有退化因子的加法与不含退化因子的加法相比,可高速运算,因此实现应用了窗口(Window)法的处理的更高速化。
但是,在[(1B)应用了窗口(Window)法的处理例]中,为将退化因子作为基点应用,成为相对于密码解析安全的处理结构,而需要进行使上述的窗口法的应用例中说明的图0的步骤S102的处理中计算的事先计算点:D~(2w-1)D(其中,w为window size)的因子全部为退化因子的设定。
将基点D以外的因子即事先计算数据设定为不是退化因子的因子,也可以应用窗口(Window)法,但这样的处理结构会导致相对于各种攻击的脆弱化,是不优选的。即,在执行将这样应用了作为基点的退化因子的加法处理和退化因子之外的因子的加法处理混合的运算处理的结构的情况下,标量倍算[dD]的计算中进行的因子的加法处理在包含基点D使和不包含时功率消耗及计算时间明显不同,从而可能损害对简单功率解析(SPA)及时序攻击(TA)的安全性。
因此,为成为维持对攻击的耐性的结构,事前计算点需要全部为退化因子,但将基点作为退化因子D设定时,整体检索并发现事前计算点例如所有±D、±3D、±0D、...±(2w-1)D为退化因子的基点在技术上是非常困难的。这是由于,因为退化因子在整体因子中的存在概率非常低,所有多个因子同时为退化因子的概率更低。
例如考虑亏格(genus)=2的曲线时,雅可比多样体的位数因HAsse的定理而存在#J~q2程度。在亏格g=2的曲线中,具有不到g=2的加权(weight)=1的退化因子只是高的q个,因此,从雅可比多样体中随机选择两个因子使两者都为退化因子的概率为1/q2。Q在用于密码时,为280程度这样大的数,因此,即使使因子随机产生而整体检索,也极难容易发现。亏格(Genus)=3时也相同。
因此,在上述的[(1B)应用窗口(Window)法的处理例]中,为使用退化因子的基点而使其扩张,其应该作为事先点具有,需要构筑有效地发现基点和基点的奇数倍全部成为退化因子这样的基点的方法。
在本发明中,提出具体解决上述课题的以下两个处理例A、B。
(处理例A)在亏格(g)2的曲线上,有效地检索基点D和0D两者成为极其(weight)=1的退化因子,只应用检索到的退化因子D、0D,变换wNAF展开数据,应用变换后的wNAF展开数据执行标量倍算。
(处理例B)在亏格(g)3的曲线上,有效地检索基点D和3D两者成为极其(weight)=2的退化因子,只应用检索到的退化因子D、3D,变换wNAF展开数据,应用变换后的wNAF展开数据执行标量倍算。
下面,对这些两个处理例(处理例A)、(处理例B)顺序进行说明。
[(处理例A)亏格(g)2的曲线上,有效地检索基点D和0D两者成为极其(weight)=1的退化因子,只应用检索到的退化因子D、0D,变换wNAF展开数据,应用变换后的wNAF展开数据执行标量倍算的处理]
首先,对在亏格(g)2的超椭圆曲线上,应用窗口(Window)法,同时将退化因子D作为基点设定,基于全部退化因子可计算地设定窗口法的事先计算数据,可将标量倍算的加法处理全部作为非退化因子+退化因子的加法处理执行的构成例进行说明。
在本处理例中,在亏格(g)2的超椭圆曲线上,有效地检测基点[D]和[0D]都成为退化因子即加权=1的退化因子这样的因子,应用这些D、0D,变换wNAF展开数据,应用只由退化因子构成的变换wNAF展开数据,执行标量倍算。
如上所述,在亏格g=2的曲线中,具有g=2不到的加权(weight)=1的退化因子大量只存在q个,因此,从雅可比多样体中随机选择两个因子,两者作为退化因子的概率都为1/q2,通过进行随机检索处理,不能准确地检索基点D、0D同时成为退化因子的基点D。
本处理例中,实现D、0D都成为退化因子的基点D的有效地检索。另外,在标量倍算的处理中,作为事先计算因子,只准备了D、0D,因此,应用这些D、0D计算窗口法中所需的全部事先计算因子。本处理例A由以下三个处理构成。
(处理A1)有效地看到基点D和0D为weight1的退化因子的D的处理。
(处理A2)应用退化因子D、0D,变换wNAF展开数据,生成只由退化因子构成的变换wNAF展开数据的处理。
(处理A3)应用了只是由退化因子D、0D表现的事先计算数据的标量倍算运算处理。
下面,按照(处理A1)~(处理A3)的顺序对各处理做详细说明。
(处理A1)有效地看到基点D和0D为weight1的退化因子的D的处理
基点D和0D两者为退化因子即都为加权(w)=1的因子的检索处理作为应用了使用以D为基点计算0D之前的HArley的公式导出w(D)=w(0D)=1的D条件的方法的处理执行。需要说明的是,w(D)=w(0D)=1是指因子D、0D都为加权(w)=1。
如上所述,HArley的算法使用定义体为素体,亏格2的曲线、因子表现使用Mumford表现。亏格(genus)2的任意简化因子D使用芒福德(Mumford)表现时,可将有限体Fq上的元作为系数具有的二次以下的多项式的组即:
(U、V)=(x2+u1x+u0、v1x+v0)表现。
为了使用HArley的公式导出w(D)=w(0D)=1的D的条件,考虑计算D~0D的加法链(Addition chAin)。在此,将D、2D、4D因子的Mumford表现设为:
D=(x+u,v)
2D=(x2+u1x+u0,v1x+v0)
4D=(x2+w1x+w0,z1x+z0)。
此时,与D→2D、2D→4D、4D→0D的计算处理电影的HArley公式为:
D→2D:ExHArDBL1→2(TAble 8)
2D→4D:HArleyDBL(TAble 2)
4D→0D:ExHArADD2+1→1
上述的各HArley公式中,4D→0D:ExHArADD2+1→1作为因子D、4D的加法处理执行,作为先参照图1说明的亏格g=2的HArley算法的处理中的处理,与weight1+weight2的加法处理相当,因此,对应的公式是图1所示的ExHArADD2+1→1或例外处理3。
上述的各HArley公式中,
D→2D:ExHArDBL1→2
2D→4D:HArleyDBL
的各算法示于以下的图表[TAble8]、[TAble2]。
数17
Table 8 ExHarDBL1→2(genus 2)
Figure A20058003991100421
数18
Table 2 HarleyDBL(genus 2)
Figure A20058003991100422
从基点D,用其标量倍计算的0D可通过上述处理,即D→2D→4D→0D计算,应用该计算处理过程中求出的关系式,检测D、0D为退化因子即加权=1的基点D。参照图6对基点D的检索处理做详细说明。
(步骤1)
因子2D的Mumford表现即:
2D=(x2+u1x+u0,v1x+v0)
的Mumford表现中的参数:u1、u0、v1、v0用应用于D的Mumford表现[D=(x+u,v)]的u、v表现。
如图6所示的步骤1(step1)所示,
设为:
u1=u1(u,v)
u0=u0(u,v)
v1=u1(u,v)
v0=u0(u,v)。
从D→2D的处理中应用的公式即如上所示的图表8中所示的[ExHArDBL1→2]公式导出的关系式示于以下(式1)。
数19
u1=0,
u0=u2
v 1 = u 4 + f 3 u 2 + f 1 + h 1 v u 2 + h 1 u + h 0 ,
v 0 = u 4 + f 3 u 2 + f 1 + h 1 v u 2 + h 1 u + h 0 u + v .
...(式1)
(步骤2)
因子4D的Mumford表现
4D=(x2+w1x+w0,z1x+z0)的w1、w0、z1、z0用应用于D的Mumford表现[D=(x+u,v)]的u、v表现。
如图6所示的步骤1(step2)所示,
设为:
w1=w1(u,v)
w0=w0(u,v)
z1=z1(u,v)
z0=z0(u,v)。
从2D→4D的处理中应用的公式即图表8中所示的[HArleyDBL]公式中导出TAble2所示的step1的r、step3的t1、t0和u1、u0、v1、v0的关系式,用u1、u0、v1、v0、t1、t0、r表现w1、w0、z1、z0。导出的关系式示于以下的(式2)。
数20
t 1 = ( h 0 + u 0 + u 1 ( h 1 + u 1 ) ) ( f 3 + v 1 + u 1 2 ) + ( h 1 + u 1 ) ( v 0 + v 1 ( v 1 + h 1 ) )
t 0 = ( u 1 ( h 0 + u 0 + u 1 ( h 1 + u 1 ) ) + u 0 ( h 1 + u 1 ) ) ( f 3 + v 1 + u 1 2 )
+ ( h 0 + u 0 + u 1 ( h 1 + u 1 ) ) ( v 0 + v 1 ( v 1 + h 1 ) )
r=u0(u0+h0+h1(h1+u1))+h0(h0+u0+u1(h1+u1))
w 1 = 1 rt 1 ( 1 + 1 rt 1 )
w 0 = r t 1 ( t 0 t 1 ( 1 + t 0 r ) + h 1 + u 1 )
z 1 = ( t 1 r + t 0 r ) ( u 1 + w 1 + u 0 + w 0 ) + t 1 r ( u 1 + w 1 ) + t 0 r ( u 0 + w 0 )
( t 1 r ( u 1 + w 1 ) + 1 ) w 1 + v 1 + h 1
z 0 = t 0 r ( u 0 + w 0 ) + ( t 1 r ( u 1 + w 1 ) + 1 ) w 0 + v 0 + h 0
                                         ...(式2)
另外,通过代入上述(步骤1)的结果,只用应用于D的Mumford表现的u、v表现w1、w0、z1、z0
(步骤3)
使用0D=D+4D为weight1的条件导出只有u的1变量方程式。
计算D+4D的方程式为ExHArADD1+2→1。这如上所述,在先说明的图1的HArley的加法公式的分歧处理中,因子D、4D的加法处理相当于weight1+weight2的加法处理,因此,对应的公式是图1所示的ExHArADD2+1→20或例外处理3。
ExHArADD2+1→2的算法示于以下的图表[TAble3]。
数21
Table 3 ExHarADD2-1→2(genus 2)
Figure A20058003991100451
从上述图表3(TAble3)表明,由于没有ExHArADD2+1→2的输出成为退化因子(加权=1)的分歧,故要求出输出成为退化因子的条件,需要考虑例外处理3。在例外处理3中,0D成为退化因子即加权=1的因子的条件为D及4D满足以下的[条件]的情况。即:
[条件]
满足
D=P-P
4D=-P+Q-2P的情况。
该情况下,导出以下两个条件。对应该两个条件,成立有关基点D的u、v的两个方程式。
(条件1)
w1(u、v)×u+w0(u、v)=0
...(式3a)
(条件2)
Z1(u、v)×u+Z0(u、v)=v+h(u)
...(式4a)
将对应条件1、2的方程式分别设为(式3)、(式4)。该条件1,2是图6的步骤3(step3)所示的条件。
上述式3a、式4a分别是有关应用于作为D的Mumford表现的D=(x+u、v)的u、v的方程式。但是,通过以下所述的方法,上述式3、式4a都可变形为有关u的1变量方程式。
即,从超椭圆曲线的定义式到v2是v2=h(u)v+f(u)。
使用该式时,可将v的二次之后的式变形为v的一次式。通过重复上述变形,可降低v的次数。使用其形式上表现式3a时,可变形为:G1(u、v)=a1(u)+b1(u)v=0的形式。另外,将G的共扼多项式定义为G1(u、v)=a1(u)+b1(u)(v+h(u))时,为N1=G1×G1'=a1 2+a1b1h+b1 2f,最终可作为只有u的1变量方程式导出下记(式3b)、即N1(u)=0
...(式3b)。
式4a中也进行同样的处理。将同样导出的u的1变量方程式设为:
N2(u)=0
...(式4b)。
上述式(式3b)、(式4b)中的N1、N2具体地沿上述的步骤计算时,分别成为03次、72次的u的多项式。已知1变量的有限次数的多项式方程式通常用多项式时间解。对这些各多项式求u的解。(步骤4)
在步骤3求出的两个方程式的解具有公共解时,将该公共解设为因子的u。
基于计算的u,将u代入超椭圆曲线的式v2+h(u)=f(u),求v。
基于计算的u、v决定作为基点D的退化因子:D=(x-u、v)。
这样计算的基点:D为加权为1的退化因子,另外,对0D也能够保证加权=1的退化因子。
参照图7所示的流程图,说明生成退化因子D、0D的处理顺序。首先,在步骤S201中,输入超椭圆曲线的参数。如上所述,超椭圆曲线中,具有曲线特征的值为亏格(genus)g。以p为素数,以n为正整数,q=PN。次式,有限体Fq上定义的亏格g的超椭圆曲线C由以下的方程式定义。
y2+h(x)y=f(x)
在此,h(x),f(x)∈Fq[x],f(x)为次数2g+1的monic多项式。
在此,将超椭圆曲线的方程式设为:
y2+h(x)=f(x)、
h(x)=x2+b1x+h0
f(x)=x5+f3x3+f1x+f0
这样,亏格g=2的超椭圆曲线作为参数通过设定h1,h0,f3,f1,f0来定义。
在步骤S202中,使用5D=D+4D为weight1的条件,从只有u的1变量方程式、即上述的式
N1(u)=0...(式3b)
N2(u)=0...(式4b)
求取公共解(u)。
这如上所述,在作为因子D、4D的加法处理执行的0D=D+4D的处理中,图1所示的例外处理3中是从作为0D为退化因子即加权=1的因子的条件设定的[条件]导出的式。即,
从[条件]
D=P-P
4D=-P+Q-2P
导出下记的条件式即:
(条件1)
w1(u、v)×u+w0(u、v)=0
...(式3a)
(条件2)
Z1(u、v)×u+Z0(u、v)=v+h(u)
...(式4a)
进而应用超椭圆曲线的定义式v2=h(u)v+f(u),进行将式3a、式4a的v的二次之后的式全部变形为v的一次式的处理,由此降低v的次数,将式3a变形为G1(u、v)=a1(u)+b1(u)v=0的形式,进而将G的共扼多项式定义为G1(u、v)=a1(u)+b1(u)(v+h(u)),由此,作为N1=G1×G1'=a1 2+a1b1h+b1 2f,最终作为只有u的1变量方程式导出N1(u)=0...(式3b),通过进行同样的处理,导出N2(u)=0...(式4b)。
在步骤S202中,从这些式
N1(u)=0...(式3b)
N2(u)=0...(式4b)
求出公共解(u)。
在这些式中不存在公共解时(步骤S203:No),返回步骤S201,再设定参数:h1,h0,f3,f1,f0,执行公共解(u)的计算。
计算公共解(u)(步骤S203:Yes)时,前进到步骤S204,代入超椭圆曲线的式:v2+h(u)=f(u),求取v。进而在步骤S200中,基于计算的u、v,决定作为基点的退化因子D=(x-u、v)。
(处理A2)应用退化因子D、0D,变换wNAF展开数据,生成只由退化因子过程的变换wNAF展开数据的处理
通过进行上述的处理,在亏格(g)=2的超椭圆曲线上,可检测出作为成为加权(weight)=1的退化因子的基点D、0D。其次,对应用这些因子D、0D进行保持对简单功率解析(SPA)等解析攻击的耐性的wNAF(width-wNon-Adjacent form)展开数据的生成的处理进行说明。
Wnaf展开如上述的窗口法的处理中所说明,是将标量倍运算处理[D=dD]中应用的标量值[d]分割为由规定框数构成的分割块的处理,是将作为乘数设定的标量值:d分割为
|00..0x|00..0x|00..0x|..
其中,x为奇数(±1,±3..)的分割块的处理。
只是在由上述的处理检测到的退化因子D、0D中,不能进行有SPA耐性的标量倍算。例如,在上述的窗口法(wNAF)中,在将标量值[d]的分割块尺寸(框数)设为2时,作为基于对应|01|、|03|、|0(-1)|、|0(-3)|的块值的计算数据,需要将±D,±3D各值作为事先计算数据保存于图表中。
另外,将标量值[d]的分割块尺寸(框数)设为3时,作为基于对应|001|、|003|、|005|、|007|、|00(-1)|、|00(-3)|、|00(-5)|、|00(-7)|的块值的计算数据,需要将±D、±3D、±5D、±7D各值作为事先计算数据保存于图表中。
但是,在本处理例中,通过上述的处理生成的退化因子只是D、0D,因此,例如在将标量值[d]的分割块尺寸(框数)设为3时,不能计算需要作为事先计算数据的±D、±3D、±5D、±7D的一部分,在该状态下,不能执行上述的窗口法。例如,也可以将D、0D以外所需的3D、7D等分别计算,作为事先计算值应用,但该情况下,如上素数那样将这些值设定为退化因子之外的因子的可能性非常高,在标量倍算中执行的加法运算中混入了含有退化因子的加法处理和只有非退化因子的加法处理。该情况下,由于这些运算引起的功率消耗、时间等明显不同,从而存在相对于简单功率解析(SPA)等的各种攻击的脆弱性产生的问题。
在本处理例中,应用由上述的处理检测到的退化因子D、0D实现具有相对于简单功率解析(SPA)等的解析攻击的耐性的窗口法(window)法进行的标量倍算。
在此,将用于应用退化因子D、0D实现具有相对于简单功率解析(SPA)的耐性的窗口法(window)法进行的标量倍算的改良的wNAF展开称作wNAF(1,0)。wNAF(1,0)作为伴随现有的wNAF展开数据的变换处理的处理执行,并进行相对于现有的wNAF展开数据应用变换表的变换处理。wNAF展开数据的变换处理通过图8所示的处理步骤实现。
首先,在步骤S231中,在应用了之前的[(1B)应用了窗口(window)法的处理例]中利用与参照图0说明的步骤S103的处理相同的处理进行常规的wNAF展开。
即,wNAF展开作为乘数设定的标量值:d。wNAF展开如上所述,是将作为乘数设定的标量值:d分割为
|00..0x|00..0x|00..0x|..
其中,x为奇数(±1,±3..)
的分割块的处理。
在此,对窗口尺寸=3的处理例进行说明。将乘数d作为窗口尺寸=3wNAF展开。作为应保持于图表中的事先计算数据[dD],选择±D,±3,±5D,±7D。
其次,在步骤S232中,将应保持于图表中的事先计算数据即±D,±3,±5D,±7D变换为只是应用可利用使用图8(b)所示的变换表计算的退化因子D、0D表现的±1、±5的表现形式。
图8(b)所示的变换表具有以下结构。
变换为应用于+D计算的分割块[001]→[001](无变换)
变换为应用于+3D计算的分割块[003]→[011]
变换为应用于+5D计算的分割块[005]→[005](无变换)
变换为应用于+7D计算的分割块[007]→[015]
变换为应用于-D计算的分割块[00(-1)]→[00(-1)](无变换)
变换为应用于-3D计算的分割块[00(-3)]→[0(-1)(-1)]
变换为应用于-5D计算的分割块[00(-5)]→[00(-5)](无变换)
变换为应用于-7D计算的分割块[00(-7)]→[0(-1)(-5)],
通过进行该变换表的变换,将应保持于图表的事先计算数据即[±D,±3,±5D,±7D]变换为只应用了可由退化因子D、0D表现的±1、±5的表现形式。
通过进行上述的处理,应保持于图表的事先计算数据即[±D,±3,±5D,±7D]变换为只应用了可由退化因子D、0D表现的±1、±5的表现形式。标量倍算D=D通过应用该表现形式,利用含有应用了退化因子D、0D的加法处理即只由退化因子进行的加法处理的运算处理实现。
(处理A3)应用了只由退化因子D、0D表现的事先计算数据的标量倍算运算处理
其次,对利用上述处理将应保持于图表中的事先计算数据即[±D,±3,±5D,±7D]设为只应用了退化因子D、0D的变换数据,并应用这些数据执行的标量倍算处理[D=dD]的算法进行说明。
本处理例中的标量倍算算法[算法7]如下所示。
数22
标量倍算(Algorithm7)
在上述算法中,δ是d[i]=0时为0,相对于其以外的d[i]为1的函数。[~]表示δ的位反转,δ为1时为0,δ为0时为1。
上述的算法中,只用预先已检测出的退化因子D、5D表现±D,±3,±5D,±7D,标量倍算算法中产生的加法处理全部作为退化因子+非退化因子的加法处理实现。进而在变换后的图表中2nd位为0时,进行虚拟运算。因此,可进行高速化运算,另外,由于没有混入非退化因子的加法处理,故退化因子和非退化因子的运算处理时间及伴随运算处理的功率消耗不会产生差异,而能够以也不会损害相对于作为运算序列的解析的SPA、TA解析的耐性的安全实现高速的运算。
参照图9所示的流程图说明在上述的亏格(g)2曲线中,检索基点D和5D两者为加权(weight)=1的退化因子,只应用检索到的退化因子D、5D变换wNAF展开数据,应用变换后的Wnaf展开数据执行标量倍算的处理的整体序列。
首先,在图9的标量S251中,检测基点[D]和[5D]都为退化因子即加权=1的退化因子这样的因子。该退化因子检测处理先通过参照图6说明的处理求取。即,在图1所示的例外处理3中,基于作为5D为退化因子即加权=1的因子的条件设定的[条件]和超椭圆曲线的定义式:v2=h(u)v+f(u),从上述的
N1(u)=0...(式3b)
N2(u)=0...(式4b)
求出公共解(u),从求出的u代入超椭圆曲线的式:v2+h(u)=f(u),求取v,进而基于计算的u、v作为决定作为决定的退化因子D=(x-u、v)的处理执行。
在步骤S252中,基于在步骤S251中计算的决定D,事先计算另一个退化因子5D。计算处理可通过
D→2D:ExHarDBL1→2(Table 8)
2D→4D:HarleyDBL(Table 2)
4D→5D:ExHarADD2+1→1
上述计算处理工序执行。
在步骤S253中,wNAF展开作为标量倍算d=dD的乘算数据的标量值d,进而生成应用并变换在步骤S251、S252中计算wNAF展开数据的退化因子D、5D的变换wNAF展开数据。即,在窗口尺寸=3时,通过通常的wNAF展开处理生成只用退化因子D、5D表现作为事先计算数据所需要的[±D,±3,±5D,±7D]的变换wNAF展开数据。变换处理应用之前参照图8所说明的变换表,执行根据变换表的变换处理。
最后,在步骤S254中,执行标量倍算D=dD。该标量倍算中,作为应用了只由退化因子D、5D表现的事先计算数据的标量倍算运算处理执行,且作为根据先说明的算法[算法7]的处理执行,在该标量倍算中,通常的wNAF应用处理中将需要的事先计算数据即[±D,±3,±5D,±7D]变更为只应用了退化因子D、5D的处理,标量倍算算法中产生的加法处理全部作为退化因子的加法处理实现。因此,可进行高速化运算,例外,由于没有混入非退化因子的加法处理,故退化因子和非退化因子的运算处理时间及伴随运算处理的功率消耗不会产生差异,而能够以也不会损害相对于作为运算序列的解析的SPA、TA解析的耐性的安全实现高速的运算。
[(处理B)在亏格(g)3的曲线上,有效地检测决定D和3D两者成为加权(weight)=2的退化因子,只应用检测到的退化因子D、3D变换wNAF展开数据,应用变换了的wNAF展开数据执行标量倍算的处理]
其次,对在亏格(g)3的曲线上,有效地检测决定D和3D两者成为加权(weight)=2的退化因子,只应用检测到的退化因子D、3D变换wNAF展开数据,应用变换了的wNAF展开数据执行标量倍算的处理进行说明。
在本处理例中,在亏格(g)3的超椭圆曲线上,有效地检测决定[D]和[3D]都成为退化因子即加权=2的退化因子这样的因子,应用这些D、3D变换wNAF展开数据,应用只由退化因子构成的变换wNAF展开数据执行标量倍算。
如上所述,由于进行随机的检索处理,从而肯定不能整体检索决定D、3D同时成为退化因子的基点D。在本处理例中,实现D、3D都成为退化因子的基点D的有效地检索。例外,在标量倍算的处理中,准备D、3D作为事先检索因子,应用这些D、3D计算窗口法中所需的全部事前检索因子。在亏格(g)3的情况下,由于不必如亏格(g)2的情况那样进行变换,故只要D、3D就足够了。本处理例A由以下三个处理构成。
(处理B1)有效地发现基点D和3D为weight 2的因子的处理
基点D和3D两者为退化因子即都为加权(w)=2的因子的检索处理作为应用了使用以D为基点计算3D之前的HArley的公式导出w(D)=w(3D)=2的D条件的方法的处理执行。需要说明的是,w(D)=w(3D)=3是指因子D、3D都为加权(w)=2。
为导出w(D)=w(3D)=2的D的条件,考虑计算D~3D的加法链(andition chain)。在此,将2D的因子的Mumford表现设为:
D=(x2+u21x+u20,v21x+v20)
2D=(x3+u12x2+u11x+u10,v12x2+v11x+v10)。
此时,对应D→2D、2D→3D的计算处理的Harley公式为:
D→2D:ExHarDBL2→3(TablE 9)
2D→3D:ExHarADD2+3→2(TablE 7)。
将上述的各Harley公式:
D→2D:ExHarDBL2→3(TablE 9)
2D→3D:ExHarADD2+3→2(TablE 7)的各算法示于以下的图表[TablE9]、[TablE7]。
数23
Table 9 ExHarDBL2→3(genus 3)
数24
Table 7 ExHarADD3+2→3,ExHarADD3+2→2(genus 3)
Figure A20058003991100551
从基点D利用其标量倍计算的3D可通过上述处理即D→2D→3计算,应用该计算处理过程中求取的函数式检测D、3D成为退化因子即加权=2的基点D。参照图10详细说明基点D的检测处理。
(步骤1)
因子2D的Mumford表现:
2D=(x3+u12x2+u11x+u10,v12x2+v11x+v10)的u12、u11、u10、v12、v11、v10用应用于D的Mumford表[D=(x2+u21x+u20,v21x+v20)]的u21、u20、v21、v20表现。
如图10所示的步骤(step1)所示,
设为:
u12=u12(u21、u20、v21、v20)
u11=u11(u21、u20、v21、v20)
u10=u10(u21、u20、v21、v20)
v12=v12(u21、u20、v21、v20)
v11=v11(u21、u20、v21、v20)
v10=v10(u21、u20、v21、v20)。
从D→2D的处理中应用的公式即之前所示的图表9中所示的[ExHarDBL2→3]公式导出的关系式示于以下的(式5)。
数25
u 12 = s 1 + s 1 2
u 11 = f 5 + s 0 + s 1 h 2 + u 21 2 + s 1 u 21
u 10 = s 0 h 2 + s 0 2 + s 1 h 1 + v 21 + f 4 + s 1 u 20 + s 0 u 21 + u 21 s 1 h 2 + s 1 u 21 2
v 12 = h 2 + s 0 + s 1 u 21 + s 1 + s 1 3
v 11 = v 21 + h 1 + s 0 u 21 + s 1 u 20 + f 5 + s 0 + s 1 h 2 + u 21 2 + s 1 u 21
+ s 1 f 5 + s 0 s 1 + s 1 2 h 2 + s 1 u 21 2 + s 1 2 u 21
v 10 = s 0 u 20 + v 20 + h 0 + s 0 h 2 + s 0 2 + s 1 h 1 + v 21 + f 4 + s 1 u 20
+ s 0 u 21 + u 21 s 1 h 2 + s 1 u 21 2 + s 1 s 0 h 2 + s 1 s 0 2 + s 1 2 h 1
+ s 1 v 21 + s 1 f 4 + s 1 2 u 20 + s 0 s 1 u 21 + u 21 s 1 2 h 2 + s 1 2 u 21 2
...(式5)
上述(式5)中的s1,s0,r是由以下的式(式6)给予的(u21、u20、v21、v20)函数。
数26
s 1 = ( u 20 h 1 v 21 + h 1 f 2 + u 21 2 f 2 + u 20 3 h 2 + h 2 u 21 2 + u 20 h 2 f 3
+ u 20 h 2 2 v 21 + u 20 h 2 u 21 4 + u 21 3 h 2 f 4 + u 21 2 h 2 f 3 + u 21 4 h 2 f 5
+ u 21 h 2 f 2 + h 0 u 21 2 f 5 + h 0 h 2 v 21 + u 20 h 2 u 21 2 f 5 + h 1 u 21 v 20
+ h 1 u 21 f 3 + h 1 u 21 3 f 5 + h 1 h 2 v 20 + h 1 u 21 2 f 4 + u 21 7 + h 1 u 20 2 u 21
+ h 1 2 v 21 + h 1 u 21 5 + u 21 2 v 21 2 + u 21 3 u 20 2 + u 21 3 v 20 + u 20 u 21 2 v 21
+ u 20 u 21 2 f 4 + u 21 4 f 4 + u 21 4 v 21 + u 21 3 f 3 + u 21 5 f 5 + u 21 6 h 2
+ h 0 u 21 4 + h 0 u 20 2 + h 0 f 3 + v 20 v 21 2 + v 20 f 2 + h 0 v 20 + u 21 2 h 2 2 v 21
+ u 21 h 1 v 21 2 + u 21 2 h 2 u 20 2 + u 21 h 2 2 v 20 ) / r
s 0 = ( h 0 u 20 2 u 21 + u 21 2 h 1 u 20 2 + u 20 2 v 20 + u 20 2 f 3 + u 21 2 h 1 f 3
+ u 21 4 h 1 f 5 + u 21 h 1 2 v 21 + u 21 6 h 1 + u 20 h 2 v 21 2 + u 20 h 2 u 21 2 f 4
+ h 0 v 21 2 + h 0 u 21 5 + u 20 2 h 2 v 21 + u 20 h 2 2 v 20 + u 21 3 h 2 2 v 21
+ u 21 2 h 2 v 21 2 + u 21 3 h 2 u 20 2 + u 21 4 h 2 f 4 + u 21 3 h 2 f 3 + u 21 5 h 2 f 5
+ u 21 h 1 f 2 + h 0 h 1 v 21 + h 0 h 2 v 20 + u 20 h 1 v 20 + u 21 3 v 21 2 + u 21 3 f 2
+ u 21 4 v 20 + u 21 5 f 4 + u 21 5 v 21 + u 21 4 f 3 + u 21 6 f 5 + h 0 f 2 + u 21 h 1 v 21 2
+ u 21 2 h 1 v 20 + u 21 3 h 1 f 4 + u 20 h 1 f 3 + u 21 8 + u 21 2 h 2 f 2 + h 0 u 21 3 f 5
+ u 21 h 1 h 2 v 20 + u 20 3 h 1 + h 0 u 21 2 u 21 + h 0 u 21 2 f 4 + h 0 u 21 f 3 + u 20 4
+ u 20 h 1 u 21 4 + u 20 u 21 2 v 20 + u 20 u 21 2 f 3 + u 20 u 21 4 f 5 + h 0 u 21 v 20
+ u 20 h 1 u 21 2 f 5 + u 21 2 h 2 2 u 20 + u 20 h 2 f 2 + u 20 3 u 21 2 + u 20 u 21 6
+ u 20 2 u 21 2 f 5 + h 0 u 21 h 2 v 21 + u 21 7 h 2 ) / r
r=u21u21u21h0+(h2h0+h1u20)u21u21+(u20u20h2+(h0+h1h2)u20+h1h0)u21
   +h0h0+u20h1h1+u20u20u20+u20u20h2h2
...(式6)
(步骤2)
使用3D=D+2D成为weight2的条件,求取检索的方程式[t1=0]。为导出3D=D+2D成为weight2的条件,而对2D→3D:ExHarADD3+2→3(Tabl7)的算法进行考察。在上述的图表7(Table 7)的步骤3中,在t1=0时,作为由步骤6求取的3D的Mumford表现的u3的多项式次数为2次即weight2。因此,t1=0是3D=D+2D成为weight2的条件。
如图10中步骤2所示,
作为t1=t1(u12、u11、u10、v12、v11、v10、u21、u20、v21、v20),设为由D、2D的Mumford表现:
D=(x2+u21x+u20,v21x+v20)
2D=(x3+u12x2+u11x+u10,v12x2+v11x+v10)
的系数得到的函数。
t1=t1(u12、u11、u10、v12、v11、v10、u21、u20、v21、v20)作为以下的式(式7)表示。
数27
t 1 = u 11 v 20 + u 10 v 11 + u 20 v 20 + u 21 2 v 10 + u 21 u 20 u 11 + u 11 v 10 + u 11 v 12 u 20
+ u 20 2 v 12 + u 10 v 21 + u 21 u 12 v 20 + u 20 u 12 v 21 + u 20 u 12 v 11 + u 21 2 v 20 + u 20 v 10
+ u 21 u 20 v 21 + u 21 u 12 v 10 + u 10 v 12 u 21
...(式7)
再有,整理上述式(式7),变换成只有D的Mumford表现:
D=(x2+u21x+u20,v21x+v20)
的系数(u21、u20、v21、v20)的式。该式变换应用步骤1中求出的关系式,即:
u12=u12(u21、u20、v21、v20)
u11=u11(u21、u20、v21、v20)
u10=u10(u21、u20、v21、v20)
v12=v12(u21、u20、v21、v20)
v11=v11(u21、u20、v21、v20)
v10=v10(u21、u20、v21、v20)。
求取这样求出的条件式:
t1=t1(u21、u20、v21、v20)=0。
(步骤3)
其次,如图10的步骤3所示,用超椭圆曲线上的电:PP(x1,y1)、Q(x2,y2)表现步骤2中求出的条件式:t1=t1(u21、u20、v21、v20)=0中含有的参数(u21、u20、v21、v20)。
如上所述,亏格(genus)3的任意简化因子D使用芒福德(Mumford)表现时,可将有限体Fq上的元作为函数具有的三次以下的多项式的组即:(U、V)=(x3+u2x2+u1x+u0、v2x2+v1x+v0)表现,亏格g的超椭圆曲线C用以下的方程式y2+h(x)y=f(x)定义。在此,h(x),f(x)∈Fq[x],f(x)是次数2g+1的monic多项式。基于这些芒福德(Mumford)表现的定义,用超椭圆曲线上的点:P(x1,y1)、Q(x2,y2)表现t1=t1(u21、u20、v21、v20)=0中含有的参数(u21、u20、v21、v20)时,设定图10的步骤3所示的关系式即以下的式(式8)所示的关系式。
u21=x1+x2
u20=x1x2
v21=(y1+y2)/(x1+x2)
v20=v21x1+y1
...(式8)
基于上述式(式8),从条件式t1=t1(u21、u20、v21、v20)=0得到下记式(式9)
t1=t1(x1、x2、y1、y2)=0
...(式9)。
(步骤4)
其次,如图10的步骤4所示,在步骤2中求出的条件式:t1=t1(x1、x2、y1、y2)=0中,尝试将x1、y1设为常数,作为有关x2、y2的方程式,进一步进行降低y2的次数的处理。这是与之前亏格2的情况下说明的(式3b)的生成处理相同的处理,通过使用超椭圆曲线的定义式:y2+h(x)y=f(x),可降低y2的次数。若使用该参数形式上表现式9,则可变形为G3(x2,y2)=a3(x2)+b3(x2)y2=0的形式。例外,若将共扼多项式定义为G3'=a3(x2)+b3(x2)(y2+h(x2)),则成为N3=G×G′=a2+abh+b2f,最终作为只有x2的方程式可导出下记的(式10)即N3(x2)=0...(式10)。
(步骤5)
若上述式N3(x2)=0(式10)能够具有解x2,则基于上述的式(式8)即:
u21=x1+x2
u20=x1x2
v21=(y1+y2)/(x1+x2)
v20=v21x1+y1
可求出因子D=(x2+u21x+u20,v21x+v20)。
具体而言,当根据上述步骤导出有关x2的1变量多项式时,可得到29次的多项式。与先说明的亏格(g)=2的情况相同,可知1常数的预先次数的多项式方程式通常用多项式时间解出。基于这些多项式求取x2的解。
(步骤6)
算出N3(x2)=0的解x2之后,将x2的代入超椭圆曲线的定义式:y2+h(x)y=f(x),求取y2
进而从超椭圆曲线上的点:P(x1,y1)、Q(x2,y2)求取基点D即:
D=(x2+u21x+u20,v21x+v20)。
这样算出的基点:D是加权为2的退化因子,例外,即使是3D,也能够保证是加权=2的退化因子。
参照图11所示的流程图,对生成退化因子D、3D的处理顺序进行说明。首先,在步骤S301中,输入超椭圆曲线的参数。如上所述,超椭圆曲线中具有曲线特征的值为亏格(genus)g。以p为素数,以n为正整数,q=PN。此时,有限体Fq上定义的亏格g的超椭圆曲线C由以下方程式定义:
y2+h(x)y=f(x)。在此,h(x),f(x)∈Fq[x],f(x)是次数2g+1的monic多项式。
在此,将超椭圆曲线的方程式设为:
y2+h(x)=f(x)、
h(x)=x3+h2x2+h1x+h0
f(x)=x7+f5x5+f4x4+f3x3+f2x2+f1x+f0
这样,亏格g=3的超椭圆曲线通过设定h2,h1,h0,f5,f4,f3,f2,f1,f0作为参数来定义。
在步骤S302中,随机生成超椭圆曲线上的点P(x1,y1),将其代入方程式:N3(x2,x1,y1)=0。
N3(x2,x1,y1)=0如上所述,在2D→3D:ExHarADD3+2→3(TablE7)的算法即上述的图表7(Table7)的步骤3中,由于t1=0是将3D=D+2D设为weight2的条件,故其是导出的式,基于芒福德(Mumford)表现的定义,用超椭圆曲线上的点:P(x1,y1)、Q(x2,y2)表现t1=t1(u21、u20、v21、v20)=0中所含的参数(u21、u20、v21、v20),
将u21=x1+x2
u20=x1x2
v21=(y1+y2)/(x1+x2)
v20=v21x1+y1
条件式作为t1=t1(x1、x2、y1、y2)=0设定,进而尝试将x2、y2设为常数,作为有关x2、y2的方程式,使用超椭圆曲线定义式:y2+h(x)y=f(x),降低y2的次数,将t1=t1(x1、x2、y1、y2)=0变形为G3(x2,y2)=a3(x2)+b3(x2)y2=0的形式,进而将G3的共扼多项式定义为G3'=a3(x2)+b3(x2)(y2+h(x2)),是作为N3=G×G′=a2+abh+b2f生成的式。
进而在步骤S303中,根据最终只有x2的方程式即上述的式(式10)N3(x2)=0,从N3=G×G′=a2+abh+b2f求解x2
式:N3(x2)=0中不存在解时(步骤S304:No),返回步骤S302,再设定参数:h2,h1,h0,f5,f4,f3,f2,f1,f0,执行解(x2)的计算。
当算出解(x2)时,前进到步骤S305,将x2代入超椭圆曲线的式:y2+h(x)=f(x)。进而在步骤S306、步骤S307中,从超椭圆曲线上的点:P(x1,y1)、Q(x2,y2)求取基点D即D=(x2+u21x+u20,v21x+v20)。
这样算出的基点:D为加权为2的退化因子,例外,对于3D,也能够保证为加权=2的退化因子。
(处理B2)应用了只由退化因子D、3D表现的事先计算数据的标量倍算运算处理
其次,对只应用退化因子D、3D,使用事先计算数据[±D,±3]的标量倍算处理[D=dD]的算法。例外,该处理例中,窗口法(wNAF)中为窗口尺寸=2的处理例,wNAF法中所需的事先计算数据为[±D,±3],成为可直接从上述的处理中求出的退化因子D、3D中计算的值。因此,如上述的处理例即作为亏格2窗口尺寸=3的情况,不需要应用了变换表的变换处理。
本处理例中标量倍算算法[算法8]如下所示。
数28
标量倍算(Algorithm8)
Input:wNAFd[i],基点D,事先计算因子D,3DOutput.dD
1.D←d[n]P2.For i from n-1 to 02.1.D←2D2.2.If d[i]≠0 then D←D+d[i]D3.Return D
在上述算法中,与上述的现有窗口法(wNAF)中所说明的算法(算法6)的差异在于,输入(input)两个退化因子D、3D,步骤2.2的加法处理作为退化因子+非退化因子的加法处理执行。这样,在标量倍算算法中产生的加法处理全部作为含有退化因子的加法处理实现。因此,由于可进行高速化运算,还不会混入只有非退化因子的加法处理,因此,退化因子和非退化因子的运算处理时间及伴随运算处理的功率消耗不会产生差异,而能够以也不会损害相对于作为运算序列的解析的SPA、TA解析的耐性的安全实现高速的运算。
参照图12所示的流程图对在上述的亏格(g)3的曲线中,检测基点D和3D两者成为加权(weight)=2的退化因子,将检测到的退化因子D、3D作为输入值,执行标量倍算的处理的整体序列进行说明。
首先,在图12的步骤S351中,检测基点[D]和[3D]都成为退化因子即加权=2的退化因子这样的因子。该退化因子的检测处理通过先参照图10、图11所说明的处理求取。即,在2D→3D:ExHarADD3+2→3(TablE 7)的算法的步骤3中作为如下处理执行,即:由于T1=0是以3D=D+2D为wEIgHT2的条件,故求取使导出的式:N3(x2)=0成立的解(x2),从求出的x2,代入超椭圆曲线的式:y2+H(x)=f(x),求取y2,从超椭圆曲线上的点:P(x1,y1)、Q(x2,y2)求取基点D即D=(x2+u21x+u20,v21x+v20)。
在步骤S352中,基于步骤S351中算出的基点D事先计算另一个退化因子3D。计算处理可通过下记计算处理工序执行:
D→2D:ExHarDBL1→2(TablE 8)
2D→3D:ExHarADD3+2→3(TablE 7)。
在步骤S353中,wNAF展开作为标量倍算d=dD的乘算数据的标量值d。
最后,在步骤S354中执行标量倍算D=dD。在该标量倍算中,作为应用了只是由退化因子D、3D表现的事先计算数据的标量倍算运算处理执行,并作为根据先说明的算法[算法8]的处理执行。
在现有的wNAF应用处理运算中,执行应用了退化因子之外的因子即加权=3的因子的加法,但本处理例的标量倍算的加法处理作为只应用了退化因子D、3D的加法处理即全部退化因子+非退化因子的加法处理实现。因此,由于可进行高速化运算,且还不会混入非退化因子进行的加法处理,因此,退化因子和非退化因子的运算处理时间及伴随运算处理的功率消耗不会产生差异,而能够以也不会损害相对于作为运算序列的解析的SPA、TA解析的耐性的安全实现高速的运算。
以上将作为本发明处理例的退化因子作为基点设定,且作为应用了窗口(window)法的处理例,对下记两个处理例的各处理进行说明,即:
(处理例A)在亏格(g)2的曲线上有效地检测基点D和5D两者成为加权(weight)=1的退化因子,只应用检测到的退化因子D、5D,变换wNAF展开数据,应用变换了的wNAF展开数据执行标量倍算。
(处理例B)在亏格(g)3的曲线上有效地检测基点D和3D两者成为加权(weight)=2的退化因子,只应用检测到的退化因子D、3D,应用wNAF展开数据执行标量倍算。
如上所述,通过进行本发明的处理,可在超椭圆曲线密码的标量倍算中使用使用了退化因子的具有SPA耐性的window法。通过进行该处理,从而与已有的方法相比,可进行标量倍算的高速处理。下面表示现有的处理和本发明的处理的计算量的比较数据。
首先,对于进行亏格2时的160bit的d的标量倍算的情况的计算值,表示上述的
(本发明处理例A)
在亏格(g)2的曲线中,有效地检测基点D和5D两者成为加权(weight)=1的退化因子,只应用检测到的退化因子D、5D变换wNAF展开数据,应用变换了的wNAF展开数据执行标量倍算的处理、和将现有法A=(1A)退化因子应用于基点的处理例、应用了现有法B=(1B)窗口法(wNAF)的处理例(窗口尺寸=2)的计算成本的比较数据。
现有法A:318I+6028M
现有法B:239I+6293M
本发明处理例A:267I+5477M
上记中,I表示有限体的元的除法所需的成本,M表示有限体的元的乘法所需的成本。是该数字越小计算量越小的高效的方法。这些计算量的估价以上述的说明中应用的计算算法1~9的因子的加法公式的计算量算出。各方式的标量倍算公式中,现有法A对应算法3(Algorithm3),现有法B对应算法5(Algorithm5),本发明处理例A对应算法7(Algorithm7)。
例如现有法A的计算成本可计算为:
(I+7M)+(I+27M)+158×{(I+27M)+(I+11M)}=318I+6028M。
I和M是因安装的计算机而不同的参数,但在此若I=4M,则本发明处理例A(计算成本=267I+5477M)与现有法A(计算成本=318I+6028M)相比,期待提高10%程度。同样,将现有法B(计算成本=239I+6293M)和本发明处理例A(计算成本=267I+5477M)相比时,提高约10%。需要说明的是,在现有法B和本发明处理例A的比较中,进行将用于保持的事先计算数据数设为相同的处理彼此的比较。即,现有法B中是window size=2的算法(事先计算数据=D、3D)的比较数据,本发明处理例A中是window size=3的算法(事先计算数据=D、5D,其中,为退化因子)的比较数据。
其次,对于进行亏格3时的160bit的d的标量倍算的情况的计算值,表示上述的
(本发明处理例B)
在亏格(g)3的曲线中,有效地检测基点D和3D两者成为加权(weight)=2的退化因子,只应用检测到的退化因子D、3D变换wNAF展开数据,应用变换了的wNAF展开数据执行标量倍算的处理、和将现有法A=(1A)退化因子(weight2)应用于基点的处理例、应用了现有法B=(1B)窗口法(wNAF)的处理例(窗口尺寸=2)的计算成本的比较数据。
现有法A:318I+21111M
现有法B:239I+19119M
本发明处理例A:239I+17003M
这些计算量的估价都以上述的说明中应用的计算算法1~9的因子的加法公式的计算量算出。各方式的标量倍算公式中,现有法A对应算法3(Algorithm3),现有法B对应算法5(Algorithm5),本发明处理例A对应算法8(Algorithm8)。
与亏格2的情况相同,当换算为I=4M时,本发明处理例B(计算成本=239I+17003M)与现有法A(计算成本=318I+21111M)相比,期待提高20%程度。同样,将现有法B(计算成本=239I+19119M)和本发明处理例A(计算成本=267I+17003M)相比时,提高约11%。需要说明的是,在将两者进行的比较中,两者都为window size=2的算法(事先计算数据=D、3D)的比较数据。
如以上所说明,根据本发明,在亏格g的超椭圆曲线中,将比g小的加权(weight)因子作为基点使用,进而将窗口法中应用的事先计算数据用退化因子表现,成为将标量倍算的加法运算处理全部通过退化因子+非退化因子的加法处理执行的结构,因此,加法处理实现高速化,且将加法处理只定为退化因子+非退化因子的运算,从而不会混入非退化因子的加法处理,也不会损害运算处理中的功率消耗及处理时间的偏差的检测引起的相对于攻击(SPA、TA)的耐性,而实现安全性高的可高速处理的结构。
使用超椭圆曲线上的因子运算的密码处理运算中,处理负荷大的运算是因子的标量倍算。通过由上述的本发明的处理将标量倍算高速化,可大幅度改善超椭圆曲线密码的处理。
如上所述,超椭圆曲线密码(HECC)是将超椭圆曲线密码(ECC)常规化的概念,目前,对于使用用于各种领域的椭圆曲线密码(ECC)的密码处理,具体而言为署名处理、密码数据的生成、译码处理、密码密钥公用处理、认证处理等均可应用本发明。通过将椭圆曲线密码(ECC)的运算处理中的标量倍算的不分取代为上述的标量倍算,可进行运算的高速化。
[3.密码处理装置的功能结构]
图13是表示本发明的密码处理装置的功能结构的框图。密码处理装置100是执行基于超椭圆曲线密码的密码处理运算的密码处理装置100,将比超椭圆曲线的亏格g(genus)小的加权(weight)g0(其中,1≤g0<g)的因子即退化因子作为基点生成,进而具有基点生成部101,其为计算窗口法中应用的事先计算数据,而将必要的基点以外的一个以上的因子例如上述的处理例A中为5D、处理例B中为3D也成为退化因子这样的设定的因子D作为基点生成。
事先计算数据生成部102起到基于基点生成部101中生成的基点D计算事先计算退化因子数据、例如3D、5D等退化因子的事先退化因子数据生成装置的作用。
密码处理装置100还具有:执行作为相对于因子D的标量倍算[D=dD]中应用的乘数设定的标量值:d的wNAF展开处理的展开处理部103;对展开处理部103的展开数据进一步执行基于变换表的变换处理,生成只有退化因子的表现的wNAF展开数据的展开处理数据变换部104;执行含有作为基点的因子的标量倍算处理的运算处理部105。
基点生成部101是如下结构,将作为定义体的有限体Fq上的元随机选择g0个,生成g0个超椭圆曲线上的点PI(I=1、...、g0),决定U(x)=(x-x1)(x-x2)...(x-xg0)、V(x)=vg0-1xg0-1+vg0-2xg0-2+...+v0的系数vI,执行决定基点的因子:D0=(U(x)、V(x))的处理。
基点生成部101例如在超椭圆曲线的亏格g(genus)=2时,将成为加权(weight)1的退化因子作为基点生成。在超椭圆曲线的亏格g(genus)=3时,将成为加权(weight)1或2的退化因子作为基点生成。基点生成部101执行如下处理,为计算窗口法中应用的事先计算数据,将需要的基点以外的一个以上的因子例如上述处理例A中为5D、处理例B中为3D也成为退化因子的因子D作为基点生成。
事先计算数据生成部102基于基点生成部101中生成的基点D计算事先计算数据3D、5D等窗口法中应用的事先计算数据。在上述的处理例A(亏格(g)=2)中,作为窗口尺寸=3,事先算出5D。5D是退化因子。另外,在处理例B(亏格(g)=3)中,作为窗口尺寸=2,事先算出3D,3D是退化因子。
展开处理部103执行作为相对于因子D的标量倍算[D=dD]中应用的乘数设定的标量值:d的wNAF展开处理。即,对乘数d的二进制展开数据执行数据变换,将由规定的框数(窗口尺寸)构成的数值块分别设为:
|00..0x|00..0x|00..0x|..
其中,x为奇数(±1,±3..)。
展开处理数据变换部104对展开处理部103的展开数据进一步执行基于变换表的变换处理,生成只有退化因子的表现的wNAF展开数据的展开数据。需要说明的是,在上述的处理例A中应用,而处理例B中是不需要的。在处理例A中,窗口尺寸=3,在现有的wNAF法中,需要将、±D、±3D、±5D、±7D各值作为事先计算数据保存于图表中,该情况下,在处理例A中,只是将D、5D作为退化因子事先计算,因此,需要将其它需要的事先计算数据变换为由D、5D表现的形式。另一方面,在上述的处理例B中,窗口尺寸=2,需要将、±D、±3D作为事先计算数据保存于图表中,该情况下,在处理例B中,将D、5D作为退化因子事先计算,因此,不用其它需要的事先计算数据,且不需要进行wNAF展开数据的变换。
运算处理部105执行标量倍算处理。该处理例如为根据先说明的算法7(处理例A)或算法8(处理例8)的运算处理。在现有的wNAF应用处理运算中,执行应用了退化因子以外的因子即与亏格(g)相等的加权的因子的加法,但本处理例的标量倍算中的加法处理执行具有比亏格(g)小的加权的因子即退化因子+非退化因子的加法处理。因此,可进行高速化运算,另外,由于未混入只有非退化因子的加法处理,故退化因子和非退化因子的运算处理时间及伴随运算处理的功率消耗不会产生差异,而能够以也不会损害相对于作为运算序列的解析的SPA、TA解析的耐性的安全实现高速的运算。
[4.电子署名生成及验证算法的本发明的应用例]
下面,作为可应用本发明的处理的具体的密码处理算法的例子,对应用了椭圆曲线密码的电子署名生成及作为验证算法的ECDSA(EC-Digital Signature Algorithm)的标量倍算中应用本发明的运算手法的情况进行说明。根据IEEE1363,利用ECDSA进行的署名生成、验证通过以下的序列执行。
(1)输入
(1-1)椭圆曲线的频域参数及基点G(位数r)
(1-2)署名者的秘密密钥s
(1-3)平文M
(2)密钥生成
(2-1)相对秘密密钥将W=sG设为公开密钥
(3)署名生成
(3-1)生成随机整数0<u<r
(3-2)计算V=uG=(xv、yv)
(3-3)将xv变换为整数,设为i
(3-4)计算c=i mod r。若c=0,则前进向step3-1
(3-5)f=h(M)、h为hash函数
(3-6)计算D=u-1(f+sC)MoD r,若d=0,则前进向step3-1
(3-7)将(c、d)设为相对于平文M的署名
(4)署名验证
(4-1)检查0<C<r、0<D<r。在没有时,输出invalid
(4-2)计算H=D-1MoD r、H1=fH MoD r、H2=CH MoD r
(4-3)计算P=(xP、yP)=H1G+H2W。若P=O,则输出invalid
(4-4)将xp变换为整数,设为i
(4-5)计算C′=i mod r
(4-6)若C′=C,则输出valid。若不这样,则输出invalid。
上述算法中,是可应用下记的处理使用了超椭圆曲线的本提案法的位置。
(2-1)相对密密钥将W=sG设为公开密钥
(3-2)计算V=uG=(xv、yv)
(4-3)计算P=(xP、yP)=H1G+H2W。若P=O,则输出invalid
这些各步骤(2-1)、(3-2)、(4-3)中的运算处理、W=sG、V=uG、P=(xP、yP)=H1G+H2W中的H1G的运算处理是因子标量倍算处理,可实现应用本发明得到的高速化。
[5.密码处理装置的硬件构成例]
最后,图14表示作为执行上述的密码处理的器件的IC模块200的构成例。上述的处理例如可在IC卡、读写器、其它各种信息处理装置中执行,图14所示的IC模块200可构成这些各种设备。
图14所示的CPU(Central processing Unit)201是执行密码处理的开始及结束、数据的收发控制、各结构部间的数据传输控制、其它各种程序的处理器。存储器202由存储CPU201执行的程序、或作为运算参数的固定数据的ROM(Read-Only-Memory);作为CPU201的处理中执行的程序、及程序处理中适宜变化的参数的存储区域、工件区域使用的RAM(Random Access Memory)等构成。
需要说明的是,存储器202中存储的运算执行程序作为含有上述的基点的设定处理、作为标量倍算的加法、加倍的执行序列的程序设定。另外,存储器202可作为密码处理所需要的密钥数据等存储区域使用。数据等存储区域优选作为具有耐冲击结构的存储器构成。
密码处理部203执行含有上述的标量倍算处理的密码处理、译码处理等。需要说明的是,在此示例的以密码处理装置为个别模块的例子,但也可以为如下结构,不设置这样独立的密码处理模块,而例如将密码处理程序存储于ROM中,CPU201读出并执行ROM存储程序。
随机数发生器204执行密码处理所需的密钥的生成等中所需的随机数的产生处理。
发送接收部205是执行与外部进行的数据通信的数据通信处理部,例如执行与读写器等IC模块进行的数据通信,并执行在IC模块内生成的密码文的输出、或来自外部读写器等设备的数据输入等。
以上参照特定的实施例对本发明做了详细说明。但是,在不脱离本发明主旨的范围内,从业者可进行该实施例的修正或代用是自不必说的。即,在示例的方式中公开了本发明,这不应是限定地解释。为判断本发明的主旨,应参照权利要求的范围一栏。
需要说明的是,明细书中所说明的一系列处理可通过硬件、软件或两者的复合结构执行。在用软件执行处理时,可将记录有处理序列的程序安装到已装入专用硬件中的计算机内的存储器中执行、或可将程序安装到可执行各种处理的通用计算机中执行。
例如,可将程序预先记录到作为记录介质的硬盘及ROM(ReadOnly Memory)中。或可将程序暂时或永久地存储(记录)到软盘、CD-ROM(Compact Disc Read Only Memory)、MO(Magnetooptical)盘、DVD(Digital Versatile Disc)、磁盘、半导体存储器等可移动记录介质中。这样的移动记录介质能够作为所谓的软件包提供。
需要说明的是,程序除从上述的移动移动记录介质安装到计算机中之外,还可以从下载位置无线传输到计算机中,或经由LAN(LocalArea Network)、因特网这样的网络有线传送到计算机中,计算机可接受这样传送来的程序,将其安装到硬盘等记录介质中。
需要说明的是,明细书中记载的各种处理不仅根据记载按时系列执行,而且还可以根据执行处理的装置的处理能力或需要并列或个别地执行。另外,本明细书中,系统是指多个装置的理论上的集合结构,不限于各构成装置位于同一框体内。
产业上的可利用性
根据本发明的结构,将基于超椭圆曲线密码的标量倍算处理中的基点D、和作为标量倍算的执行算法的窗口法中的事先计算数据中除去基点的一个以上的事先计算数据设为比超椭圆曲线的亏格g(genus)小的加权(weight)g0(其中,1≤g0<g=的因子即退化因子,并利用事先算出的退化因子+非退化因子的加法处理执行应用了窗口法的标量倍算处理的加法处理,由于为以上的构成,故实现了高速运算,同时还不会混入只有非退化因子的加法处理,因此,退化因子和非退化因子的运算处理时间及伴随运算处理的功率消耗不会产生差异,而能够以也不会损害相对于作为运算序列的解析的SPA、TA解析的耐性的安全实现高速的运算,可在IC卡等进行要求高速性、安全性的密码处理运算的设备、器件等中应用本发明。
再有,根据本发明的结构,作为有关相对于因子D的标量倍算D=dD的乘数d的展开处理,执行基于窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开,在基于在展开处理中生成的wNAF展开处理数据决定的事先计算数据中含有退化因子数据以外的数据时,变化wNAF展开数据,生成只由退化因子数据构成的变化wNAF展开数据,使退化因子数据对应变化wNAF展开数据,将标量倍算中的加法处理作为退化因子+非退化因子的加法处理执行,由于为以上结构,故能够以作为运算序列的解析的相对于SPA、TA解析的不损害耐性的安全实现高速的运算,从而可在IC卡等进行要求高速性、安全性的密码处理运算的设备、器件等中应用本发明。

Claims (13)

1、一种密码处理运算方法,执行基于超椭圆曲线密码的密码处理运算,其特征在于,具有:
基点生成步骤,生成基点,所述基点是基于超椭圆曲线密码的标量倍算处理中作为输入因子的基点、和作为标量倍算的执行算法的窗口法中事先计算数据中除基点以外的一个以上的事先计算数据成为比超椭圆曲线的亏格g(genus)小的加权(weight)g0(1≤g0<g)的因子即退化因子;
事先计算退化因子数据生成步骤,基于所述基点生成步骤中生成的基点,将窗口法中的事先计算数据作为只由退化因子构成的数据计算;
运算处理步骤,应用所述事先计算退化因子数据生成步骤中生成的事先计算退化因子数据,执行应用了窗口法的标量倍算处理,将标量倍算中的加法处理作为含有所述事先计算退化因子的加法处理来执行。
2、如权利要求1所述的密码处理运算方法,其特征在于,
所述运算处理步骤具有:
展开处理步骤,作为有关对因子D的标量倍算D=dD的乘数d的展开处理,执行基于所述窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开;
运算步骤,对所述展开处理步骤中生成的wNAF展开处理数据,执行对应所述事先计算退化因子数据的运算。
3、如权利要求1所述的密码处理运算方法,其特征在于,
所述运算处理步骤具有:
展开处理步骤,作为有关对因子D的标量倍算D=dD的乘数d的展开处理,执行基于所述窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开;
展开处理数据变换步骤,在基于所述展开处理步骤中生成的wNAF展开处理数据决定的事先计算数据中含有所述事先计算退化因子数据以外的数据时,变换所述wNAF展开数据,生成只由所述事先计算退化因子数据构成的变换wNAF展开数据;
运算步骤,对所述展开处理数据变换步骤中生成的变换wNAF展开处理数据,执行对应所述事先计算退化因子数据的运算。
4、如权利要求1所述的密码处理运算方法,其特征在于,
所述基点生成步骤是如下步骤,将基点D、和作为标量倍算的执行算法的窗口法中事先计算数据中除基点以外的一个以上的事先计算数据nD(其中,n为1以外的整数)作为成为比超椭圆曲线的亏格g(genus)小的加权(weight)g0(1≤g0<g)的因子即退化因子的设定来生成基点。
5、如权利要求1所述的密码处理运算方法,其特征在于,
所述密码处理运算方法是执行亏格g(genus)=2的超椭圆曲线中的标量倍算处理的方法,
所述基点生成步骤是生成基点,使得基点D和5D成为加权(weight)1的退化因子的步骤,
所述运算处理步骤具有:
展开处理步骤,作为有关对因子D的标量倍算D=dD的乘数d的展开处理,将基于所述窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开作为窗口尺寸=3来执行;
展开处理数据变换步骤,在基于所述展开处理步骤中生成的wNAF展开处理数据决定的事先计算数据中含有所述退化因子D、5D以外的数据时,变换所述wNAF展开数据,生成只由所述退化因子D、5D构成的变换wNAF展开数据;
运算步骤,对所述展开处理数据变换步骤中生成的变换wNAF展开数据,对应所述退化因子D、5D,执行以标量倍算处理中的加法处理为含有退化因子D、5D的加法处理的运算。
6、如权利要求1所述的密码处理运算方法,其特征在于,
所述密码处理运算方法是执行亏格g(genus)=3的超椭圆曲线的标量倍算处理的方法,
所述基点生成步骤是生成基点,使得基点D、3D成为加权(weight)2的退化因子的步骤,
所述运算处理步骤具有:
展开处理步骤,作为有关对因子D的标量倍算D=dD的乘数d的展开处理,将基于所述窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开作为窗口尺寸=2来执行;
运算步骤,对所述展开处理步骤中生成的wNAF展开数据,对应所述退化因子D、3D,执行以标量倍算处理中的加法处理为含有退化因子D、3D的加法处理的运算。
7、一种密码处理装置,执行基于超椭圆曲线密码的密码处理运算,其特征在于,具有:
基点生成单元,生成基点,所述基点是基于超椭圆曲线密码的标量倍算处理中作为输入因子的基点、和作为标量倍算的执行算法的窗口法中事先计算数据中除基点以外的一个以上的事先计算数据成为比超椭圆曲线的亏格g(genus)小的加权(weight)g0(1≤g0<g)的因子即退化因子;
事先计算退化因子数据生成单元,基于所述基点生成单元中生成的基点,将窗口法中的事先计算数据作为只由退化因子构成的数据来计算;
运算处理单元,应用所述事先计算退化因子数据生成单元中生成的事先计算退化因子数据,执行应用了窗口法的标量倍算处理,将标量倍算中的加法处理作为含有所述事先计算退化因子的加法处理来执行。
8、如权利要求7所述的密码处理装置,其特征在于,
所述密码处理装置还具有:
展开处理单元,作为有关对因子D的标量倍算D=dD的乘数d的展开处理,执行基于所述窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开,
所述运算处理单元构成为对所述展开处理单元中生成的wNAF展开处理数据,执行对应所述事先计算退化因子数据的运算。
9、如权利要求7所述的密码处理装置,其特征在于,
所述密码处理装置还具有:
展开处理单元,作为有关对因子D的标量倍算D=dD的乘数d的展开处理,执行基于所述窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开;和
展开处理数据变换单元,在基于所述展开处理单元中生成的wNAF展开处理数据决定的事先计算数据中含有所述事先计算退化因子数据以外的数据时,变换所述wNAF展开数据,生成只由所述事先计算退化因子数据构成的变换wNAF展开数据,
所述运算处理单元构成为对所述展开处理数据变换单元中生成的变换wNAF展开数据,执行对应所述事先计算退化因子数据的运算。
10、如权利要求7所述的密码处理装置,其特征在于,
所述基点生成单元是如下结构,将基点D、和作为标量倍算的执行算法的窗口法中事先计算数据中除基点以外的一个以上的事先计算数据nD(其中,n为1以外的整数)作为成为比超椭圆曲线的亏格g(genus)小的加权(weight)g0(1≤g0<g)的因子即退化因子的设定来生成基点。
11、如权利要求7所述的密码处理装置,其特征在于,
所述密码处理装置是执行亏格g(genus)=2的超椭圆曲线中的标量倍算处理的装置,
所述基点生成单元是生成基点,使得基点D和5D成为加权(weight)1的退化因子的单元,
所述密码处理装置具有:
展开处理单元,作为有关对因子D的标量倍算D=dD的乘数d的展开处理,将基于所述窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开作为窗口尺寸=3来执行;
展开处理数据变换单元,在基于所述展开处理单元中生成的wNAF展开处理数据决定的事先计算数据中含有所述退化因子D、5D以外的数据时,变换所述wNAF展开数据,生成只由所述退化因子D、5D构成的变换wNAF展开数据;
运算处理单元,对所述展开处理数据变换单元中生成的变换wNAF展开数据,对应所述退化因子D、5D,执行以标量倍算处理中的加法处理为含有退化因子D、5D的加法处理的运算。
12、如权利要求7所述的密码处理装置,其特征在于,
所述密码处理装置是执行亏格g(genus)=3的超椭圆曲线的标量倍算处理的装置,
所述基点生成单元是生成基点,使得基点D、3D成为加权(weight)2的退化因子的单元,
所述密码处理装置具有:
展开处理单元,作为有关对因子D的标量倍算D=dD的乘数d的展开处理,将基于所述窗口法的展开处理即wNAF(width-wNon-Adjacent Form)展开作为窗口尺寸=2来执行;
运算处理单元,对所述展开处理单元中生成的wNAF展开数据,对应所述退化因子D、3D,执行以标量倍算处理中的加法处理为含有退化因子D、3D的加法处理的运算。
13、一种计算机程序,使计算机执行基于超椭圆曲线密码的密码处理运算,其特征在于,具有:
基点生成步骤,生成基点,所述基点是基于超椭圆曲线密码的标量倍算处理中作为输入因子的基点、和作为标量倍算的执行算法的窗口法中事先计算数据中除基点以外的一个以上的事先计算数据成为比超椭圆曲线的亏格g(genus)小的加权(weight)g0(1≤g0<g)的因子即退化因子;
事先计算退化因子数据生成步骤,基于所述基点生成步骤中生成的基点,将窗口法中的事先计算数据作为只由退化因子构成的数据来计算;
运算处理单元,应用所述事先计算退化因子数据生成步骤中生成的事先计算退化因子数据,执行应用了窗口法的标量倍算处理,将标量倍算中的加法处理作为含有所述事先计算退化因子的加法处理来执行。
CN2005800399114A 2004-11-22 2005-11-15 密码处理运算装置 Expired - Fee Related CN101061526B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP337186/2004 2004-11-22
JP2004337186A JP2006145945A (ja) 2004-11-22 2004-11-22 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
PCT/JP2005/020967 WO2006054559A1 (ja) 2004-11-22 2005-11-15 暗号処理演算装置

Publications (2)

Publication Number Publication Date
CN101061526A true CN101061526A (zh) 2007-10-24
CN101061526B CN101061526B (zh) 2012-07-18

Family

ID=36407102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800399114A Expired - Fee Related CN101061526B (zh) 2004-11-22 2005-11-15 密码处理运算装置

Country Status (6)

Country Link
US (1) US7957527B2 (zh)
EP (1) EP1816624A4 (zh)
JP (1) JP2006145945A (zh)
KR (1) KR101154695B1 (zh)
CN (1) CN101061526B (zh)
WO (1) WO2006054559A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101371285B (zh) * 2006-01-16 2010-09-08 索尼株式会社 加密处理装置、加密处理方法
CN110199339A (zh) * 2017-01-20 2019-09-03 日本电信电话株式会社 秘密计算系统、秘密计算装置、秘密计算方法、程序
CN107204856B (zh) * 2017-08-01 2019-10-22 北京智慧云测科技有限公司 一种检测椭圆曲线算法漏洞的方法及装置

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4599859B2 (ja) * 2004-03-12 2010-12-15 ソニー株式会社 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
JP4682852B2 (ja) * 2006-01-16 2011-05-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
FR2899702A1 (fr) * 2006-04-10 2007-10-12 France Telecom Procede et dispositif pour engendrer une suite pseudo-aleatoire
US8050403B2 (en) 2007-03-06 2011-11-01 Research In Motion Limited Method and apparatus for generating a public key in a manner that counters power analysis attacks
US8160245B2 (en) * 2007-03-07 2012-04-17 Research In Motion Limited Methods and apparatus for performing an elliptic curve scalar multiplication operation using splitting
WO2008106793A1 (en) * 2007-03-06 2008-09-12 Research In Motion Limited Power analysis attack countermeasure for the ecdsa
US8391479B2 (en) 2007-03-07 2013-03-05 Research In Motion Limited Combining interleaving with fixed-sequence windowing in an elliptic curve scalar multiplication
JP5094882B2 (ja) * 2008-01-18 2012-12-12 三菱電機株式会社 暗号パラメータ設定装置及び鍵生成装置及び暗号システム及びプログラム及び暗号パラメータ設定方法及び鍵生成方法
US7991154B2 (en) * 2008-05-14 2011-08-02 Univeristy of Castilla-La Mancha Exponentiation method using multibase number representation
US8369517B2 (en) * 2008-08-12 2013-02-05 Inside Secure Fast scalar multiplication for elliptic curve cryptosystems over prime fields
JP5225115B2 (ja) 2009-01-15 2013-07-03 株式会社東芝 Naf変換装置
US8457305B2 (en) * 2009-11-13 2013-06-04 Microsoft Corporation Generating genus 2 curves from invariants
WO2011146775A1 (en) 2010-05-19 2011-11-24 Dionex Corporation Functionalized substrates with aromatic stacking properties
JP5488718B2 (ja) 2010-12-27 2014-05-14 富士通株式会社 暗号処理装置、暗号処理方法、およびプログラム
WO2012112553A1 (en) 2011-02-14 2012-08-23 Dionex Corporation Nanometer size chemical modified materials and uses
FR2997780B1 (fr) * 2012-11-07 2016-01-22 Inside Secure Procede de cryptographie comprenant une operation d'exponentiation modulaire
WO2015013440A1 (en) * 2013-07-23 2015-01-29 Battelle Memorial Institute Systems and methods for securing real-time messages
US9645794B2 (en) 2014-09-23 2017-05-09 Texas Instruments Incorporated Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography
CN111756538B (zh) * 2020-06-28 2023-10-13 哈尔滨理工大学 一种基于素数预处理的ecc标量乘法器的实现方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212277B1 (en) * 1998-03-05 2001-04-03 Matsushita Electric Industrial Co., Ltd. Elliptic curve transformation device, utilization device and utilization system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101371285B (zh) * 2006-01-16 2010-09-08 索尼株式会社 加密处理装置、加密处理方法
CN110199339A (zh) * 2017-01-20 2019-09-03 日本电信电话株式会社 秘密计算系统、秘密计算装置、秘密计算方法、程序
CN110199339B (zh) * 2017-01-20 2022-07-12 日本电信电话株式会社 秘密计算系统、秘密计算装置、秘密计算方法、记录介质
CN107204856B (zh) * 2017-08-01 2019-10-22 北京智慧云测科技有限公司 一种检测椭圆曲线算法漏洞的方法及装置

Also Published As

Publication number Publication date
US7957527B2 (en) 2011-06-07
KR101154695B1 (ko) 2012-06-08
CN101061526B (zh) 2012-07-18
EP1816624A4 (en) 2008-12-17
US20070291937A1 (en) 2007-12-20
KR20070085269A (ko) 2007-08-27
JP2006145945A (ja) 2006-06-08
WO2006054559A1 (ja) 2006-05-26
EP1816624A1 (en) 2007-08-08

Similar Documents

Publication Publication Date Title
CN101061526A (zh) 密码处理运算装置
CN1922643A (zh) 加密系统、加密装置、解密装置、程序和集成电路
CN1148643C (zh) 模幂运算装置
CN1265280C (zh) 扩展整数的计算域的范围
CN1224909C (zh) 数字作品保护系统
CN1977250A (zh) 进行加密或解密的计算机系统和计算机程序
CN1129066C (zh) 处理器及其运算方法以及数据处理器
CN101080897A (zh) 鉴别系统、鉴别方法、证明器件、验证器件及其程序和记录介质
CN1157020C (zh) 提高了安全性的密码处理装置
CN1200392C (zh) 信息处理方法
CN1478234A (zh) 用于有效地执行线性变换的方法和装置
CN1668995A (zh) 用于改善伪随机数发生器的输出的不可预测性的方法
CN1312630A (zh) 基于分块加密方式的加密装置与方法及译码装置与方法
CN1620756A (zh) 滤波装置、接收装置、发送装置、扩频调制装置、伪随机数序列的输出装置、滤波方法、接收方法、发送方法、扩频调制方法、伪随机数序列的输出方法及程序
CN1961274A (zh) 未授权内容检测系统
CN1898621A (zh) 内容输出设备、内容分发服务器及密钥发布中心
CN1841443A (zh) 计算方法、计算设备以及计算机程序
CN1726669A (zh) 数据分割方法和使用异或运算的装置
CN1380742A (zh) 用于数据接收器的前端处理器以及非线性失真均衡方法
CN1200571C (zh) 正交变换、逆正交变换方法及装置、编码、解码方法及装置
CN1645791A (zh) Rsa公开密钥生成装置、rsa解密装置及rsa署名装置
CN1280726A (zh) 优化椭圆曲线密码计算的变换方法
CN1267816C (zh) 信息安全装置,质数生成装置,和质数生成方法
CN1910850A (zh) 事件顺序证明方法
CN1918844A (zh) 基于保密共享方案的保密信息管理方案

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120718

Termination date: 20151115

EXPY Termination of patent right or utility model