CN101371285A - 加密处理装置、加密处理方法及计算机程序 - Google Patents

加密处理装置、加密处理方法及计算机程序 Download PDF

Info

Publication number
CN101371285A
CN101371285A CNA200780002463XA CN200780002463A CN101371285A CN 101371285 A CN101371285 A CN 101371285A CN A200780002463X A CNA200780002463X A CN A200780002463XA CN 200780002463 A CN200780002463 A CN 200780002463A CN 101371285 A CN101371285 A CN 101371285A
Authority
CN
China
Prior art keywords
factor
scalar
advantage
processing
carry out
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
CNA200780002463XA
Other languages
English (en)
Other versions
CN101371285B (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 CN101371285A publication Critical patent/CN101371285A/zh
Application granted granted Critical
Publication of CN101371285B publication Critical patent/CN101371285B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

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

Abstract

公开了一种用于在超椭圆曲线密码体系处理中执行高速操作的设备和方法。在亏格g的超椭圆曲线密码体系中,当权重等于亏格g的标准因数是标量乘处理的对象因数,则确定该标准因数是否可划分成被定义为权重小于亏格g的θ因数。如果所述标准因数是可划分的,则通过划分该标准因数生成θ因数,并且标量乘执行部分使用该θ因数来执行标量乘。利用这一安排,标量乘通过减少的计算量被高速地执行,高速的加密处理操作因而被执行。

Description

加密处理装置、加密处理方法及计算机程序
技术领域
本发明涉及加密处理装置、加密处理方法和计算机程序。更具体地,本发明涉及用于在超椭圆曲线密码体系中执行高速标量乘(scalarmultiplication)计算的加密处理装置、加密处理方法和计算机程序。
背景技术
目前,随着网络通信和电子交易的进展,保持通信中的安全性成为一个重要问题。保持安全性的一种方法是密码术,并执行基于各种加密技术的通信。
例如,在一个执行认证过程的目前可用的系统中,或者对发送和接收的数据进行加密和解密时,加密处理模块被嵌入到诸如IC卡之类的紧凑型设备中,数据发送和接收在IC卡和作为数据读写设备的读写器之间进行。
越来越多的执行加密处理的IC卡在诸如站台的检票口之类的各种大门处或购物商场处被使用,并且对于IC卡的紧凑型设计和高速处理的需求在增长。
加密方法主要分为共同密钥(common key)方法和公钥(public key)方法。共同密钥方法也称为对称密码体系,并且共同密钥由发送方和接收方共享。典型的共同密钥方法之一是DES(数据加密标准)。DES算法的特征是加密处理和解密处理使用本质上相同的算法来执行。
和共同密钥方法相比,发送方和接收方在公钥方法或非对称密码体系中使用不同的密钥。与使用加密处理和解密处理共用的密钥的共同密钥加密方法不同,公钥加密方法允许特定的人持有被保密的私密密钥(secretkey),并具有超过共同密钥加密方法的密钥管理优势。但是,公钥加密方法在数据处理速度上比共同密钥加密方法慢,并且一般应用于处理少量数据的很多应用,例如私密密钥或数字签名的递送。典型的公钥加密方法包括RSA(Rivest-Shamir-Adleman)加密和椭圆曲线密码体系(ECC)。
椭圆曲线密码体系使用素数域上的椭圆曲线y2=x3+ax+b(4a3+27b2≠0)或2的扩域上的椭圆曲线y2+xy=x3+ax2+b(b≠0)。包含添加了无穷点(0)的曲线上的这些点的集合形成加法系统中的有限群,并且无穷点(0)充当恒等元素(identity element)。有限群上的加法系统用“+”表示。有限群上两个不同的点P和Q相加P+Q称为“点的相加”,点P和点P相加P+P=2P称为“点的加倍”。点P相加k次P+P+...+P=kP称为“点的标量乘”。
点的标量乘被认为由点的相加和点的加倍组成。素数域上的椭圆曲线上的点的相加、点的加倍操作和点的标量乘,2的扩域上的椭圆曲线上的仿射坐标系统(x,y),以及投影坐标(X,Y,Z)在用于公钥密码体系的IEEE PI363/D13标准规范中被描述。
椭圆曲线密码体系的一般化方法之一是由Koblitz和Cantor提出的超椭圆曲线密码体系(HECC:Hyper Elliptic Curve Cryptography)。超椭曲线圆密码体系描述于非专利文献1和非专利文献2。
有限域由Fq表示,其中q=pn,且p为素数因子。在椭圆曲线密码体系(ECC)中,令P表示定义在有限域Fq上的椭圆曲线上的点,令Q表示作为标量乘结果的点kP(k∈Z),则通过Q确定k的问题化为离散对数问题。另一方面,令D1表示作为超椭圆曲线密码体系(HECC)中点的形式和(formal sum)的因子(因数(divisor)),令D2表示由标量乘kD1定义的因数,则通过k确定D2的问题化为超椭圆曲线密码体系中的雅可比簇(Jacobian variety)上的离散对数问题,并且难点在于对离散对数问题的数学求解。众所周知,超椭圆曲线密码体系(HECC)展现数学加密的难度,因而希望超椭圆曲线密码体系作为公钥加密的一种加密方法是有效的。
在超椭圆曲线中,代表曲线特性的值是亏格(genus)g。定义在有限域Fq上的亏格为g的超椭圆曲线C由以下等式来定义:
y2+h(x)y=f(x)
其中,h(x),f(x)∈Fq[x],f(x)是至多阶数为g的多项式(若p为奇素数则h=0),并且f(x)是阶数为2g+1的首项系数为一的多项式。
若假设超椭圆曲线密码体系的定义域的算术尺寸(比特长度)具有与椭圆曲线密码体系的安全级别相同的安全级别,则Hasse原理显示:超椭圆曲线密码体系的算术尺寸变为椭圆曲线密码体系的算术尺寸的1/g倍。小的算术尺寸提供实现上的优势,这是超椭圆曲线密码体系的优点之一。
接下来,描述超椭圆曲线的要点。如前面所讨论的,令D1表示作为超椭圆曲线密码体系中点的形式和的因子(因数),令D2表示由标量乘kD1定义的因数,则作为超椭圆曲线密码体系中的雅可比簇上的离散对数问题,通过k确定D2的问题被用作公钥密码体系。
这里,因子(因数)为多个有理点(rational point)的形式和,并写成以下形式:
[公式1]
D = Σ i m i P i
半约化(semi reduced)因数写成如下以下形式:
[公式2]
D = Σ i m i P i - ( Σ i m i ) P ∞ , m i ≥ 0
这里,Pi=(xi,yi),并且若i≠j,则Pi≠Pj
另外,∑mi被称为权重。此外,具有的权重小于亏格g的半约化因数被称为约化因数。
超椭圆曲线密码体系中的任一半约化因数D可利用V∈Fq[x]写成D=(U,V)。这被称为Mumford表达式。
[公式3]
U = Π ( x - x i ) m i
V(xi)=yi
V(x)2+V(x)h(x)-f(x)≡0mod U(x),degV<degU
利用Mumford表达式,亏格2的任一约化因数可被表示为一组系数为有限域上的元素的二阶或更低阶数的多项式,即,
(U,V)=(x2+u1x+u0,v1x+v0)。
利用Mumford表达式,亏格3的任一约化因数被写成一组阶数小于等于三阶的多项式,所述多项式的系数为有限域Fq上的元素,即
(U,V)=(x3+u1x2+u0,v2x2+v1x+v0)。
下文中除非另外指明,否则“因数”指约化因数。
在亏格g的超椭圆曲线密码体系中,因数的权重小于等于亏格(g)。在后面的说明书的描述中,权重等于亏格g的因数被称为标准因数,权重小于亏格(g)的因数被称为θ因数。
例如,在亏格2的情况下,θ因数指示具有权重1的因数,
在亏格3的情况下,
θ因数指示具有权重1和2的因数。
更具体地,Mumford表达式被列出如下。
(1)具有亏格2的θ因数:(U,V)=(x+u,v)
(2)具有亏格3(权重1)的θ因数:(U,V)=(x+u0,v0)
(3)具有亏格3(权重2)的θ因数:(U,V)=(x2+u1x+u0,v1x+v0)
接下来,描述在超椭圆曲线密码体系中使用的因数的标量乘。因数的标量乘是利用加倍运算和被称为加法算法的因数加法的组合来计算的。在后面的讨论中,描述主要的加法算法。
首先给出的实用算法是由Cantor提出的算法。该算法在非专利文献1和非专利文献2中描述。该算法适用于任何类型的超椭圆曲线上的因数,但Cantor算法的缺点在于与椭圆曲线相比算法复杂且需要大量计算。
Harley提出了一种具有较少计算量的算法,其中通过被限制在亏格3的超椭圆曲线密码体系上的Cantor算法根据权重来划分因数,并在每种情况下优化因数(非专利文献3和非专利文献4)。该算法被称为Harley算法或Explicit Formulae(显式公式),并且该算法(亏格3、定义域和坐标系统的曲线)的扩展已被积极研究(非专利文献5)。
由于在Harley算法中情况分类是根据输入因数的权重来进行的,因此有限域上的计算代价依据输入的是标准因数还是θ因数而变得不同。如上所述,θ因数在权重上小于标准因数。更具体而言,由于因数的Mumford表达式中多项式的阶数(即权重)更低,因此相加和加倍运算的计算代价变得更低(非专利文献8)。
这里,令[MFCADD]定义所有标准因数的相加,
并令[TADD]定义标准因数和θ因数的相加,
并且如果亏格2的超椭圆曲线密码体系中定义域为F(2n),
则标准因数的相加[MFCADD]的计算代价变为I+25M,标准因数和θ因数的相加[TADD]的计算代价变为I+11M,并且TDD在速度上高14M(非专利文献8)。这里,I和M表示有限域F(2n)上的逆元素运算(inverse element calculation)和乘运算,I+25M意味着需要一次逆元素运算和25次乘运算,I+11M意味着需要一次逆元素运算和14次乘运算。
有理点的1/2倍乘(1/2 time multiplication)(二等分(halving))已在超椭圆曲线密码体系中提出。当计算有理点的标量乘时,在所公开的处理中使用相加和二等分运算,而不是相加和加倍运算。超椭圆曲线密码体系的二等分运算一般以快于加倍运算的速度来执行,结果,使用二等分运算的标量乘变快。
类似地,在超椭圆曲线密码体系中,可以使用1/2倍乘(二等分运算)而不是使用加倍运算来计算因数的标量乘。1/2倍乘(二等分运算)算法最初在具有定义域F(2n)的超椭圆曲线密码体系(非专利文献7)中提出,但是如今,将1/2倍乘(二等分运算)算法应用到亏格2和有限域F(2n)的超椭圆曲线密码体系的安排已被提出(非专利文献10)。
下面描述超椭圆曲线密码体系中因数的标量乘。
(a)二进制模式
首先,描述作为标量乘算法的基本二进制算术算法。
(1)因数的标量乘是利用超椭圆相加和超椭圆加倍操作的组合来计算的。作为在关于因数D(D=dD)的标量乘中应用的乘子的标量值:d的二进制表示法为:
d=(dn-1,.....,d0)
其中dn-1=1,dn-2,...,0=1或0。
(2)二进制方法的特点在于从高比特开始每一比特D被加倍,并且若di=1,则加上基点。下面描述二进制(从左到右)方法的算法1。
[公式4]
算法1 二进制(从左到右)运算
Figure A200780002463D00131
(b)旁道攻击(side channel attack)和始终加倍(double-and-always)方法
一种利用加密技术的实施中的缺陷来得知私密信息的方法被称为旁道攻击(SCA)。作为SCA而出名的有利用与私密信息相关的计算的处理时间来攻击的时间攻击(TA)(非专利文献11)和利用私密信息和功率消耗之间的关联来攻击的功率攻击(非专利文献12),如简单功率分析(SPA)或差分功率分析(DPA)。
SPA是通过直接测量取决于私密密钥的比特信息的计算中消耗的功率的波形来澄清私密信息的实施攻击。为了在算法中包含SPA,该算法与私密密钥的比特信息和功率波形不得有任何关联(TA鲁棒性是计算时间)。作为椭圆曲线密码体系(ECC)和超椭圆曲线密码体系(HECC)中提出的TA和SPA的补救措施之一,始终加倍并相加技术(非专利文献13)可以利用。不同于二进制方法,在该算法中,总是执行虚拟(dummy)相加以便算术时间和功率波形可以每比特值di不同。
[公式5]
算法2 始终加倍并相加运算
Figure A200780002463D00141
(c)同步运算
众所周知,两个标量乘的运算kP+1Q利用下面的同步运算技术而不是分别计算kP和1Q可以被有效地执行(非专利文献14)。令(kn-1,.....,k0)和(1n-1,.....,10)表示k和1的二进制展开,则同步运算变为如下所述。
[公式6]
算法3 同步相乘
Figure A200780002463D00142
图1示出利用前面讨论过的θ因数(即权重小于亏格(g)的因数)的因数标量乘运算技术的现有技术,该技术旨在取得θ因数的高速标量乘。
基于θ因数的因数标量乘的计算方法包括两个步骤。这两个步骤包括首先生成θ因数作为基点的步骤(S11),然后使用θ因数来执行标量乘的步骤(S12)。
在超椭圆曲线密码体系中使用的大多数因数是具有等于亏格g的权重和g的标准因数(非专利文献6)。因此,若因数是随机生成的,则成为θ因数的概率为O(1/q),权重q表示有限域上的元素个数。例如,在亏格2的情况下,q在加密应用中变得大约像2080一样大,并且若因数是随机选择的,则成为θ因数的概率十分小。但是在固定点处的基点的标量乘的情况下,θ因数可以是故意生成的,一种生成θ因数的方法在下面被描述为算法4。
[算法4]
1.在有限域Fq上随机选择g0(1≤g0≤g)个元素,以生成g0个超椭圆曲线上的点Pi(i=1,...,g0)。令xi(i=1,...,g0)表示每个随机选择的元素,则对应于xi的y坐标被确定,使得该元素接下来被置于超椭圆曲线上。
2.令D0=(U(x),V(x))表示基点的因数。
(a)U(x)=(x-x1)(x-x2)...(x-xg0)
(b)确定V(x)=vg0-1xg0-1+vg0-2xg0-2+...+v0的系数vi。例如,若所有Pi互不相同,则利用同步公式V(xi)=yi(i=1...g0)来确定vi
例如,通过将利用上述算法4生成的θ因数设置为基点,作为具有SPA鲁棒性的标量乘的始终加倍方法通过以下算法5来执行。
[公式7]
算法5
如前面讨论的那样,由于θ因数和标准因数的相加在计算量上小于所有标准因数的相加,因此标量乘可以被高速地计算(专利文献1和非专利文献8)。
为了高速计算标量乘,θ因数的选择是有效的。但是,根据超椭圆曲线密码体系中标量乘的应用,可使用固定因数的标量乘或随机因数的标量乘。与标准因数的标量乘相比,使用θ因数的高速操作产生极高的速度,但是存在一个问题,即可以通过在因数被事先选择和准备的固定点的标量乘中选择θ因数作为因数来执行高速操作,而若要求选择任意因数则由于采用标准因数的可能性增加,无法执行高速操作。若在未施加存储限制的环境中考虑软件实施,则使用加窗方法(window method)的高速技术适用于其中标准因数被用作基点的方法。另一方面,若θ因数被用作基点,则加窗方法仅在窗尺寸小时适用(非专利文献9)。在可获得足够存储量的环境中,使用标准因数的方法比使用θ因数的方法具有更多优势。
专利文献1:日本未实审专利申请公布No.2005-258228
非专利文献1:N.Koblitz.Hyperelliptic curve cryptosystems.J.Cryptology,vol.1,No.3,pp.139-150,1989.
非专利文献2:D.G.Cantor.Computing in the Jacobian of hyperelliptic curve.Math.Comp.,Vol.48,No.177,pp.95-101,1987.
非专利文献3:R.Harley.Adding.text.
http://crystal.inria.fr/~Harley/hyper/,2000.
非专利文献4:R.Harley,Doubling.c.http://crystal.inria.fr/~Harley/hyper/,2000.
非专利文献5:H.Cohen and G.Frey.Handbook of Elliptic and HyperellipticCurve Cryptography.Chapman & Hall/CRC,2005.
非专利文献6:N.Nagao.Improving group law algorithms for Jacobians ofhyperelliptic curves.ANTS-IV,LNCS 1838,pp.439-448,Springer-Verlag,2000.
非专利文献7:E.Knudsen.Elliptic Scalar Multiplication Using Point Halving.ASIAC RYPTO′99,LNCS 1716,pp.135-149,Springer-Verlag,1999.
非专利文献8:M.Katagi,I.Kitamura,T.Akishita,and T.Takagi,"NovelEfficient Implementations of Hyperelliptic Curve Cryptosystems UsingDegenerate Divisors",WISA 2004,LNCS 3325,pp.345-359,Springer-Verlag2004.
非专利文献9:M.Katagi,T.Akishita,I.Kitamura,and T.Takagi,"SomeImproved Algorithms for Hyperelliptic Curve Cryptosystems Using DegenerateDivisors",ICISC 2044,LNCS 3506,pp.296-312,Springer-Verlag 2004.
非专利文献10:I.Kitamura,M.Katagi,and T.Takagi,A Complete DivisorClass Halving Algorithm for Hyperelliptic Curve Cryptosystems of Genus Two.ACISP 2005,LNCS 3574,pp.146-157,2005.
非专利文献11:C.Kocher,Timing Attacks on Implementations of Diffie-Hellman,RSA,DSS,and Other Systems,CRYPTO′96,LNCS 1109,pp.104-113,1996.
非专利文献12:C.Kocher,J.Jaffe,and B.Jun,Differential Power Analysis,CRYPTO′99,LNCS 1666,pp.388-397,Springer-Verlag,1999.
非专利文献13:J.-S.Coron,Resistance against Differential Power Analysis forElliptic Curve Cryptosystems,CHES′99,LNCS1717,pp.292-302,Springer-Verlag,1999.
非专利文献14:D.Hankerson,J.L.Hernadez,and A.Menezes,"SoftwareImplementation of Elliptic Curve Cryptography over BinaryFields",CHES2000,LNCS 1965,pp.1-24,Springer-Verlag,2000.
发明内容
【本发明要解决的问题】
与当前进展到实用阶段的椭圆曲线密码体系(ECC)相比,从ECC延伸出来的超椭圆曲线密码体系(HECC)已被积极地研究,以在学会水平上发展高速算法和高速算法的实现方法。超椭圆曲线密码体系(HECC)的标量乘的算术时间与椭圆曲线密码体系(ECC)非常接近,仍有待进一步缩短。
本发明是考虑到上述情形而开发的,本发明的一个目的是提供用于缩短超椭圆曲线密码体系(HECC)的标量乘的算术时间并高速执行超椭圆曲线密码体系(HECC)处理的加密处理装置、加密处理方法和计算机程序。
更具体地,本发明的一个目的是提供利用任一通过划分被分为θ因数的标准因数而选择的因数,来高速执行标量乘的加密处理装置、加密处理方法和计算机程序。通过本发明的方法,过去只在固定的输入因数上使用的高速技术适用于随机的输入因数,并且超椭圆曲线密码体系的标量乘可以被加速。此外,由于采用标准因数作为基点,因此使用标准因数的标量乘高速技术也适用于未在加密处理装置上施加内存限制的环境,结果,提高了灵活性。
【解决问题的手段】
根据本发明的第一个方面,用于执行基于超椭圆曲线密码体系的加密处理的加密处理装置包括:因数控制部分,所述因数控制部分用于对作为标量乘对象的因数执行控制处理;以及标量乘执行部分,所述标量乘执行部分使用在因数控制部分的控制下确定的因数来运行标量乘处理,其中若权重等于亏格g的标准因数是亏格g的超椭圆曲线密码体系中标量乘处理的对象因数,则因数控制部分确定该标准因数是否可划分成被定义为权重小于亏格g的θ因数;并且,若标准因数是可划分的,则执行控制处理以令标量乘执行部分使用通过划分标准因数而生成的θ因数来执行标量乘处理。
此外,根据本发明的加密处理装置的一个实施例,因数控制部分可以充当基点发生器并执行处理以生成可划分成θ因数的标准因数作为基点,其中标量乘执行部分使用通过划分作为基点的标准因数而设置的θ因数来执行标量乘处理。
此外,根据本发明的加密处理装置的一个实施例,因数控制部分可以确定作为标量乘处理的对象被输入的随机因数是否可划分成θ因数,并执行控制处理,以在随机因数可划分的情况下令标量乘执行部分使用通过划分标准因数而生成的θ因数来执行标量乘处理,在随机因数不可划分的情况下则令标量乘执行部分使用标准因数来执行标量乘处理。
此外,根据本发明的加密处理装置的一个实施例,因数控制部分可以确定作为标量乘处理的对象被输入的随机因数是否可划分成θ因数,在输入因数是不可划分的情况下,重复输入因数重复加倍运算处理和确定加倍运算结果因数是否可划分成θ因数的可划分性确定处理,并在检测到加倍运算结果因数可划分成θ因数的情况下执行控制处理以令标量乘执行部分使用通过划分加倍运算结果因数而生成的θ因数来执行标量乘处理。
此外,根据本发明的加密处理装置的一个实施例,标量乘执行部分可以在使用通过划分加倍运算结果因数而设置的θ因数来执行标量乘处理之后,对二等分运算重复等于加倍运算次数的次数,以计算输入因数的标量乘。
此外,根据本发明的加密处理装置的一个实施例,充当密钥发生器的因数控制部分可以执行生成可划分成θ因数的标准因数作为密钥数据的生成处理,并将生成的密钥数据存储到存储器中,并且标量乘执行部分可以使用通过划分作为密钥数据的标准因数而设置的θ因数来执行标量乘处理。
此外,根据本发明的加密处理装置的一个实施例,因数控制部分可以在存储器上存储通过划分作为标准因数的密钥数据而设置的θ因数。
此外,根据本发明的加密处理装置的一个实施例,标量乘执行部分可以在亏格2的超椭圆曲线密码体系中使用两个θ因数P1和P2来执行由kD=kP1+kP2表示的标准因数D的标量乘kD的变换处理,以便利用同步运算操作运用θ因数P1和P2来执行标量乘处理。
此外,根据本发明的加密处理装置的一个实施例,标量乘执行部分可以在亏格2的超椭圆曲线密码体系中使用两个θ因数P1和P2来执行由kD=k1P1+k2P2-(k1-k)P1-(k2-k)P2表示的标准因数D的标量乘kD的变换处理(k1和k2为奇数和偶数),以便利用同步运算操作运用θ因数P1和P2来执行标量乘处理。
此外,根据本发明的加密处理装置的一个实施例,标量乘执行部分可以在亏格2的超椭圆曲线密码体系中使用两个θ因数P1和P2来执行由kP1+(k+1)P2-P2或kP1+(k-1)P2+P2表示的标准因数D的标量乘kD的变换处理,以便运用θ因数P1和P2来执行标量乘处理。
此外,根据本发明的加密处理装置的一个实施例,标量乘执行部分可以在亏格3的超椭圆曲线密码体系中使用两个θ因数P1和P2来执行由kP1+(k+1)P2-P2或kP1+(k-1)P2+P2表示的标准因数D的标量乘kD的变换处理,以便利用同步运算操作运用θ因数P1和P2来执行标量乘处理。
此外,根据本发明的加密处理装置的一个实施例,标量乘执行部分可以在亏格4的超椭圆曲线密码体系中使用两个θ因数P1和P2来执行由kP1+(k+1)P2-P2或kP1+(k-1)P2+P2表示的标准因数D的标量乘kD的变换处理,以便利用同步运算操作运用θ因数P1和P2来执行标量乘处理。
此外,根据本发明的加密处理装置的一个实施例,标量乘执行部分可以在亏格g的超椭圆曲线密码体系中使用同步运算操作通过被划分成三个θ因数的标准因数来执行标量乘处理。
此外,根据本发明的加密处理装置的一个实施例,在亏格3的超椭圆曲线密码体系中,标量乘执行部分可以使用三个权重为1的θ因数P1、P2和P3来将标准因数D的标量乘kD划分成kP1+(k+1)P2-P2或kP1+(k-1)P2+P2或kP3,以便使用同步运算操作和始终加倍并相加运算操作运用θ因数P1,P2和P3来执行标量乘处理。
此外,根据本发明的加密处理装置的一个实施例,标量乘执行部分可以在亏格g的超椭圆曲线密码体系中通过将标准因数划分成至少两个θ因数来使用同步运算操作执行标量乘处理。
根据本发明的第二个方面,用于执行基于超椭圆曲线密码体系的加密处理的加密处理装置的加密处理方法包括:因数控制部分的因数控制步骤,所述因数控制步骤用于对作为标量乘对象的因数执行控制处理;以及标量乘执行部分的标量乘步骤,所述标量乘步骤使用在因数控制部分的控制下确定的因数来运行标量乘处理,其中因数控制步骤包括:如果亏格g的超椭圆曲线密码体系中的权重等于亏格g的标准因数是标量乘处理的对象因数,则确定标准因数是否可划分成被定义为权重小于亏格g的θ因数;并且,若标准因数是可划分的,则执行控制处理以令标量乘执行部分使用通过划分标准因数而生成的θ因数来执行标量乘处理。
此外,根据本发明的加密处理方法的一个实施例,因数控制步骤可包括执行基点生成处理以生成可划分成θ因数的标准因数作为基点,并且标量乘步骤包括使用通过划分作为基点的标准因数而设置的θ因数来执行标量乘处理。
此外,根据本发明的加密处理方法的一个实施例,因数控制步骤可包括确定作为标量乘处理的对象被输入的随机因数是否可划分成θ因数,以及执行控制处理,以在随机因数可划分的情况下令标量乘执行部分使用通过划分标准因数而生成的θ因数来执行标量乘处理,在随机因数不可划分的情况下则令标量乘执行部分使用标准因数来执行标量乘处理。
此外,根据本发明的加密处理方法的一个实施例,因数控制步骤可包括确定作为标量乘处理的对象被输入的随机因数是否可划分成θ因数,在输入因数是不可划分的情况下,对输入因数重复加倍运算处理和确定加倍运算结果因数是否可划分成θ因数的可划分性确定处理,以及在检测到加倍运算结果因数可划分成θ因数的情况下执行控制处理以令标量乘执行部分使用通过划分加倍运算结果因数而生成的θ因数来执行标量乘处理。
此外,根据本发明的加密处理方法的一个实施例,标量乘步骤可包括在使用通过划分加倍运算结果因数而设置的θ因数来执行标量乘处理之后,对二等分运算重复等于加倍运算次数的次数,以计算输入因数的标量乘。
此外,根据本发明的加密处理方法的一个实施例,因数控制步骤可包括执行生成可划分成θ因数的标准因数作为密钥数据的生成处理,以及将生成的密钥数据存储到存储器中,并且标量乘步骤可包括使用通过划分作为密钥数据的标准因数而设置的θ因数来执行标量乘处理。
此外,根据本发明的加密处理方法的一个实施例,因数控制步骤可包括在存储器上存储通过划分作为标准因数的密钥数据而设置的θ因数。
此外,根据本发明的加密处理方法的一个实施例,标量乘步骤可包括在亏格2的超椭圆曲线密码体系中使用两个θ因数P1和P2来执行由kD=kP1+kP2表示的标准因数D的标量乘kD的变换处理,以便利用同步运算操作运用θ因数P1和P2来执行标量乘处理。
此外,根据本发明的加密处理方法的一个实施例,标量乘步骤可包括在亏格2的超椭圆曲线密码体系中使用两个θ因数P1和P2来执行由kD=k1P1+k2P2-(k1-k)P1-(k2-k)P2表示的标准因数D的标量乘kD的变换处理(k1和k2为奇数和偶数),以便利用同步运算操作运用θ因数P1和P2来执行标量乘处理。
此外,根据本发明的加密处理方法的一个实施例,标量乘步骤可包括在亏格2的超椭圆曲线密码体系中使用两个θ因数P1和P2来执行由kP1+(k+1)P2-P2或kP1+(k-1)P2+P2表示的标准因数D的标量乘kD的变换处理,以便运用θ因数P1和P2来执行标量乘处理。
此外,根据本发明的加密处理方法的一个实施例,标量乘步骤可包括在亏格3的超椭圆曲线密码体系中使用两个θ因数P1和P2来执行由kP1+(k+1)P2-P2或kP1+(k-1)P2+P2表示的标准因数D的标量乘kD的变换处理,以便利用同步运算操作运用θ因数P1和P2来执行标量乘处理。
此外,根据本发明的加密处理方法的一个实施例,标量乘步骤可包括在亏格4的超椭圆曲线密码体系中使用两个θ因数P1和P2来执行由kP1+(k+1)P2-P2或kP1+(k-1)P2+P2表示的标准因数D的标量乘kD的变换处理,以便利用同步运算操作运用θ因数P1和P2来执行标量乘处理。
此外,根据本发明的加密处理方法的一个实施例,标量乘步骤可包括在亏格g的超椭圆曲线密码体系中使用同步运算操作通过被划分成三个θ因数的标准因数来执行同步标量乘处理。
此外,根据本发明的加密处理方法的一个实施例,在亏格3的超椭圆曲线密码体系中,标量乘步骤可包括运用三个权重为1的θ因数P1,P2和P3来将标准因数D的标量乘kD划分成kP1+(k+1)P2-P2或kP1+(k-1)P2+P2或kP3,以便使用同步运算操作和始终加倍并相加运算操作运用θ因数P1、P2和P3来执行标量乘处理。
此外,根据本发明的加密处理方法的一个实施例,标量乘步骤可包括在亏格g的超椭圆曲线密码体系中通过将标准因数划分成至少两个θ因数来使用同步运算操作执行标量乘处理。
在本发明的第三个方面中,一种用于执行基于超椭圆曲线密码体系的加密处理的加密处理装置的计算机程序包括:因数控制部分的因数控制步骤,所述因数控制步骤用于对作为标量乘对象的因数执行控制处理;以及标量乘执行部分的标量乘步骤,所述标量乘步骤使用在因数控制部分的控制下确定的因数来运行标量乘处理,其中因数控制步骤包括:如果亏格g的超椭圆曲线密码体系中的权重等于亏格g的标准因数是标量乘处理的对象因数,则确定标准因数是否可划分成被定义为权重小于亏格g的θ因数;并且,若标准因数是可划分的,则执行控制处理以令标量乘执行部分使用通过划分标准因数而生成的θ因数来执行标量乘处理。
另外,本发明的计算机程序可以在记录介质中按计算机可读格式被提供,或经由通信介质被提供到执行各种程序代码的计算机系统中,其中所述记录介质例如可以是CD、FD、MO等,并且其中所述通信介质可以是网络。通过以计算机可读格式提供程序,计算机系统可以响应于该程序来执行处理。
通过下面结合本发明的实施例和附图的本发明的详细描述,本发明的其他目的、特征和优点将变得明显。在说明书中,术语系统指多个装置的逻辑集合,包含多个单元的每个装置不一定包含在同一外壳中。
【优点】
根据本发明的结构,标量乘的对象因数在对超椭圆曲线密码体系的因数D的标量乘中被控制,高速标量乘因而被执行。更具体而言,若权重等于亏格g的标准因数是标量乘的对象因数,则关于标准因数是否可划分成被定义为权重小于亏格g的因数的θ因数的确定被执行,若标准因数是可划分的,则通过划分标准因数来生成θ因数,标量乘执行部分使用θ因数来执行标量乘,高速标量乘通过减少的计算量被执行,高速的加密处理操作因而被执行。
附图说明
图1例示了作为θ因数的因数标量乘的算术序列;
图2例示了在本发明的加密处理装置中执行因数标量乘的加密处理器;
图3例示了标准因数和θ因数之间的关系;
图4例示了输入固定的标准因数的情况下加密处理器的结构和处理;
图5是例示了由因数控制部分执行的基点生成处理的具体处理示例的流程图;
图6例示了响应于作为执行标量乘的输入因数被输入的随机标准因数,加密处理器的处理和结构;
图7是例示了作为标准因数划分确定处理器的因数控制部分的处理的流程图;
图8是例示了在确定随机输入因数不可被划分成θ因数的情况下,通过将输入因数加倍到输入标准因数变得可被2划分的程度来执行的标量乘处理的流程图;
图9例示了执行如下处理的加密处理器的结构,所述处理把即将成为公钥的因数设置为可划分成θ因数的因数;
图10是详细地例示了如下密钥生成处理的序列的流程图,所述处理中,即将成为公钥的因数被设为可划分成θ因数的因数;
图11例示了公知的DH(Diffie-Hellman)密钥共享算法;
图12例示了被配置成使得可划分成θ因数的因数事先作为公钥而生成的DH(Diffie-Hellman)密钥共享算法;
图13是如下方法的流程图,其中标准因数D的标量乘kD被划分成两个θ因数P1和P2,并使用同步运算技术来计算kP1+kP2作为被划分的θ因数的标量乘;
图14是如下方法的流程图,其中标准因数D被划分成P1和P2,并使用同步运算技术来计算标准因数D的标量乘kD即k1P1+k2P2-(k1-k)P1-(k2-k)P2
图15是例示了由标量乘执行部分执行的计算方法的流程图,其中k1=k,k2=k+1,k2和k1是一对奇偶标量;
图16是例示了图15的处理流程的步骤S623中k和k+1的带符号的二进制展开的具体处理序列的流程图;
图17例示了作为根据本发明来执行加密处理算术操作的加密处理设备的IC模块的结构。
具体实施方式
如下所述,详细描述加密处理装置、加密处理方法和计算机程序。结合下列各项来提供描述。
(1)本发明的加密处理概要
(2)本发明的加密处理装置的具体结构和处理示例
(2-1)通过θ因数P1,P2,...,Pi来表示标准因数D的处理(i≤g)
(2-2)使用θ因数P1,P2,...,Pi来计算标量乘kD的处理
(3)本发明的加密处理的高速操作的验证
(4)加密处理装置的结构
【(1)本发明的加密处理概要】
本发明涉及被应用到作为椭圆曲线密码体系的一般化形式的超椭圆曲线密码体系(HECC)的高速计算技术。如前所述,超椭圆曲线中代表曲线特性的值是亏格g。定义在有限域Fq(q=pn,且p为素数)上的亏格G的超椭圆曲线C由以下等式来定义:
y2+h(x)y=f(x)
这里,h(x),f(x)∈Fq[x],f(x)是至多阶数为g的多项式(若p为奇素数则h=0),并且f(x)是阶数为2g+1的首一多项式。
如前所述,在超椭圆曲线密码体系中,点的形式和被称为因数,并且在亏格g的超椭圆曲线密码体系中,因数的权重小于等于亏格(g)。权重等于亏格(g)的因数被称为标准因数,权重小于亏格(g)的因数被称为θ因数。
通过允许利用将标准因数划分成θ因数,来执行标量乘,本发明使标量乘可以通过所选任意因数来高速地执行。
参考图2来描述由本发明的加密处理装置执行的标量乘操作。如图2所示,执行因数标量乘的本发明的加密处理装置的加密处理器100包括因数控制部分101和标量乘执行部分102。
因数控制部分101执行使用θ因数P1,P2,...,Pi(i≤g)来表示因数D的处理。
标量乘执行部分102执行使用作为与标准因数D相对应的转化数据的θ因数P1,P2,...,Pi来计算标量乘kD处理。
如前所述,由于θ因数和标准因数的相加在算术尺寸上大于多个标准因数的相加,因此,标量乘的使用结果导致高速标量乘。下面详细描述本发明的标量乘操作。
【(2)本发明的加密处理装置的具体结构和处理示例】
如下,图2所示的标量乘执行部分102的处理和因数控制部分101的处理,即,以下两个处理:
(2-1)通过θ因数P1,P2,...,Pi来表示标准因数D的处理(i≤g)
(2-2)使用θ因数P1,P2,...,Pi来计算标量乘kD的处理
相继被描述。
【(2-1)通过θ因数P1,P2,...,Pi来表示标准因数D的处理(i≤g)】
首先,描述图2的因数控制部分101的处理,即,通过θ因数P1,P2,...,Pi来表示标准因数D的处理(i≤g)。
首先,参考图3来描述标准因数和θ因数之间的关系。一般地,在亏格g的超椭圆曲线密码体系中,标准因数D常常可以划分成g个或更少的θ因数。
如前所述,亏格2的任一约化因数D通过Mumford被表示为一组系数为有限域Fq上的元素的二阶或更低阶的多项式,即:
(U,V)=(x2+u1x+u0,v1x+v0)。
此外,亏格3的任一约化因数通过Mumford被表示为一组系数为有限域Fq上的元素的三阶或更低阶的多项式,即:
(U,V)=(x3+u2x2+u1x+u0,v2x2+v1x+v0)。
在因数的Mumford表示法D(U,V)中,U表示权重g,即,一元g阶多项式。
若在标准因数D(U,V)中,U在定义曲线的有限域Fq上有解,则标准因数D常常可以划分成θ因数。另一方面,若U在有限域Fq上无解,即不可约(irresducible),则标准因数D不能划分成θ因数。
另外,若通过生成并添加多个随机θ因数而生成的因数具有等于亏格g的权重g,则该因数成为标准因数。通过这种方式,权重等于亏格g的标准因数和权重小于亏格g的θ因数常常利用彼此来表示。
权重1的因数在亏格(g)=2和3的每一个中成为θ因数,但是由于生成权重1的随机θ因数等价于在超椭圆曲线上寻找点,因此生成这种θ因数很简单。此外,权重小于亏格(g)的因数可以通过添加多个权重为1的θ因数来生成。
通过标准因数来表示θ因数的处理利用上述关系来描述。该处理可能依据标量乘kD的因数(D)是固定的还是标量乘kD的因数(D)是任意因数(随机因数)而不同。在椭圆曲线密码体系(ECC)和从椭圆曲线密码体系(ECC)推广的超椭圆曲线密码体系(HECC)中,作为点或因数的标量乘的输入因数是固定的还是随机的是根据将被执行的加密应用来确定的。
例如,
(a)作为通过固定的输入因数来运行标量乘的算法,密钥生成算法或DSA的签名生成算法可以利用。
(b)作为通过随机的输入因数来运行标量乘的算法,DH(Diffie-Hellman)密钥交换算法和ElGamal型加密算法可以利用。
此外,DSA的签名生成算法描述于非专利文献[IEEE1363/D13 MainDocument中的ECSVDP-DH]。另外,DH密钥交换算法描述于非专利文献[IEEE1363/D13 Main Document中的ECSP-DSA和ECVP-DSA]。
下面参考图4来描述参考图2讨论过的本发明的加密处理装置的加密处理器100的具体结构。输入固定标准因数作为执行标量乘的输入因数的加密处理器的结构和处理是参考图4和5来描述的,输入随机标准因数作为执行标量乘的输入因数的加密处理器的结构和处理是参考图6和7来描述的。
首先,参考图4和图5来描述输入固定标准因数作为执行标量乘的输入因数的加密处理器的结构和处理。当固定标准因数作为执行标量乘的输入因数被输入时,加密处理部件110中的因数控制部分111充当基点发生器。标量乘执行部分112响应于输入因数来执行标量乘,所述输入因数作为基点由作为基点发生器的因数控制部分111生成。如所示,[k]表示标量,kD表示标量乘结果。
这里,因数作为由作为基点发生器的因数控制部分111生成的基点是不可划分成θ因数的标准因数。参考图5的流程图来描述由因数控制部分111执行的具体基点生成处理。
因数控制部分111的基点生成处理是根据图5的流程图来执行的,因此基点作为不可划分成θ因数的标准因数而生成。首先,在步骤S101中,g0(g0≤g)个随机点在超椭圆曲线C上生成。接下来在步骤S102中,具有权重i(这里i小于亏格g,例如i=1)的θ因数基于在步骤S101中选择的点而生成,并且在步骤S103中,在生成的权重为i的θ因数上执行相加操作以生成标准因数D。标准因数D是权重等于亏格(g)的标准因数。
接着,在步骤S104中,生成的标准因数D被评估。更具体而言,确定生成的标准因数D的阶数是否具有大到足够在加密中使用的素数r。若确定的答案为是,则在步骤S103的θ因数的相加操作中生成的标准因数D被确定为基点,并且完成基点生成处理。
另一方面,若在步骤S104的标准因数D的评估步骤中确定标准因数D的阶数不具有大到足够在加密中使用的素数r,则处理返回步骤S101以执行用于在曲线上选择随机点的选择步骤。这里要选择的点与前面选择的点不同。下文中,重复步骤S101-S104直到在步骤S104的标准因数D的评估步骤中获得如下标准因数D,所述标准因数D具有大到足够在加密中使用的素数r作为阶数。
若在步骤S104的标准因数D的评估步骤中确定标准因数D的阶数具有大到足够使用的素数r,则该标准因数D被确定为基点,并因此完成基点生成处理。在该处理中生成的标准因数成为通过θ因数的相加操作生成的标准因数。
超椭圆曲线具有亏格3的情况下,U在生成的标准因数D=(U,V)中为二阶多项式x2+u1x+u0,ui∈Fq,并且若U可以被因式分解并表示为U=(x-p1)(x-p2),则标准因数D可以用两个权重为1的θ因数P1=(x-p1,V(p1))和P2=(x-p2,V(p2))来表示。
若权重为2的因数Q1和Q2在亏格为3的超椭圆曲线中生成并且加法D=Q1+Q2导致权重3,则D被用作基点。
图4的标量乘执行部分112根据参考图5讨论的处理来输入由作为基点发生器的因数控制部分111生成的基点,并运用标量k执行标量乘。结果,输出标量乘结果[kD]。此外,标量乘通过被划分的θ因数来高速地执行。稍后将详细描述这一处理。
接下来,参考图6和图7来讨论输入随机标准因数作为执行标量乘的输入因数的加密处理器的结构和处理。当随机标准因数作为执行标量乘的输入因数被输入时,加密处理部件120中的因数控制部分121充当如图6所示的标准因数划分确定处理器。标量乘执行部分122输入由作为标准因数划分确定处理器的因数控制部分121生成的因数。如所示,[k]表示标量并且kD表示标量乘结果。
由于输入因数是并非特定因数的随机因数,因此作为标准因数划分确定处理器的因数控制部分121确定输入因数是否可划分成θ因数,并执行控制处理以修改标量乘执行部分122的计算处理。
若U像前面参考图3讨论过的那样在定义曲线的有限域Fq上有解,则标准因数D常常可划分成至少两个θ因数。另一方面,若U在有限域Fq上无解,即不可约,则标准因数不能被划分成θ因数。作为标准因数划分确定处理器的因数控制部分121确定输入因数是否可划分成θ因数,并执行控制处理以基于确定结果来修改标量乘执行部分122的计算处理。
下面参考图7的流程图来描述作为标准因数划分确定处理器的因数控制部分121的处理。在步骤S201中,随机输入因数[D=(U,V)]被输入,并且因数控制部分121在步骤S202中确定输入随机因数是否可划分成θ因数。为了划分该因数,普通因式分解算法是关于g阶多项式的(对于因式分解算法,参考文章[H.Cohen,"A course in Computational AlgebraicNumber Theory",Graduate Texts in Mathematics 138,Spring])。
步骤S202中的处理——即对输入因数是否可划分成θ因数的确定——等价于在定义曲线的有限域为F(2n)的情况下,对系数为F(2n)的二阶多项式U能否被因式分解的确定。为了确定因式分解是否可能,简单地确定值Tr(u0/u1 2)是否为零,其中U=x2+u1x+u0。这里,Tr()表示求迹(trace)运算。对于有限域F(2n),求迹运算量T被认为非常小,因此可忽略。此外,(u0/u1 2)通过两次乘运算和有限域的一次逆元素运算来执行,因此很容易计算。此外,由于迹值根据其定义只取0或1,因此迹值以1/2的概率被划分成θ因数。
若在步骤S202中确定输入因数不能被划分成θ因数,则处理前进到步骤S203,其中标量乘执行部分122执行控制处理以计算标准因数的标量乘。
另一方面,若在步骤S202中确定输入因数可划分成θ因数,则处理前进到步骤S204,其中标量乘执行部分122执行控制处理,以使用通过划分标准因数生成的θ因数来执行高速标量乘。
响应于作为标准因数划分确定处理器的因数控制部分121的确定结果,图6的标量乘执行部分122使用标准因数来执行标量乘或者使用通过划分标准因数生成的θ因数来执行高速标量乘。稍后将详细描述这一处理。
参考图6和图7来讨论的响应于输入因数而执行的标量乘操作呈现两个问题。一个问题是由于因数不总是可划分的因数,因此图7的步骤S203中异常处理情况频繁出现。由于标准因数的标量乘比θ因数的标量乘花费更长的处理时间,因此这可能是标量乘中的瓶颈。取决于曲线的定义域和亏格,图7的步骤202中确定因数是否可划分成θ因数的处理步骤可能是耗时的处理。
在本发明的安排中,下述方法的使用克服了这两个问题。克服问题的方法(a)和(b)被描述如下。
(a)使用因数加倍操作的处理
(b)将如下因数用作公钥的处理,所述因数是可被划分成θ因数的因数
(a)使用因数加倍操作的处理
第一个方法是在亏格2和定义域F(2n)的设置中,若确定随机输入因数不可被划分成θ因数,则重复加倍随机输入因数直到输入因数可以被2划分,参考图8的流程图来描述该处理的详细序列。
若标准因数D=(U,V)限于亏格2和定义域F(2n)的因数,则该因数是否可被划分是通过很小的计算量来计算的。首先,在步骤S221中,因数D=(U,V)被输入,并且在步骤S222中,对因数D是否可被划分成θ因数的确定被执行。
若确定输入因数不可被划分成θ因数,则处理前进到步骤S231来加倍该输入因数。指示迭代次数的变量i加1以设置i=i+1。若i小于预定的最大迭代次数imax,则在步骤S222中确定加倍的D=2D是否可被划分成θ因数。
此外,步骤S222中对于因数是否可划分的确定等价于对系数为有限域F(2n)的二阶多项式U能否被因式分解的确定,如前所述。为了确定因式分解是否可能,简单地确定值Tr(u0/u1 2)是否为零,其中U=x2+u1x+u0。由于迹值根据其定义只取0或1,因此迹值以1/2的概率被划分成θ因数。若加倍运算被执行多次,则期待因数以较高的概率被划分。
步骤S231中对输入因数进行加倍的处理和步骤S222中确定输入因数是否可被划分成θ因数的确定处理被重复执行。若在步骤S232中确定达到加倍运算设置的最大允许迭代次数(imax),则处理前进到步骤S233,并且图6的标量乘执行部分122执行控制处理,以执行标准因数的标量乘。
若在步骤S222中确定在输入因数D的加倍运算操作中生成的因数可划分成θ因数,则在标准因数D在步骤S223中被划分成θ因数之后,标量乘执行部分122在步骤S224中使用θ因数来执行标量乘。
但是,标量乘的结果可能不是对原始输入因数的标量乘的结果。更具体而言,由于在步骤S231中标量乘是在通过执行多次加倍运算操作而产生的因数上执行的,因此所得的值需要被转化以回到对原始输入因数的标量乘的结果。该处理对应于步骤S225和步骤S234。
首先,在步骤S225中,确定对输入因数的加倍运算的迭代次数(i)是否为0。若i=0,则标量乘的结果被确定为在原始输入因数D上执行的标量乘的结果,并且处理前进到步骤S226,其中该结果作为标量乘结果被输出。
若在步骤S225中确定对输入因数的加倍运算的迭代次数(i)不为0,则此时获得的标量乘的结果不被确定为对原始输入因数D的标量乘的结果,并且处理前进到步骤S234,其中该结果被二等分。然后,指示加倍运算的迭代次数的变量(i)减1,即,i=i-1。此外,处理返回步骤S225,其中确定加倍运算的迭代次数是否变为0。
重复步骤S225和步骤S234中的处理直到i=0,当达到i=0时,此刻的标量乘结果被确定为原始输入因数D的标量乘结果,并且处理前进到步骤S226,其中该结果作为标量乘结果被输出。
即使输入因数是随机因数,在大多数情况下,上述处理也将输入因数转化成可划分成θ因数的因数,从而允许执行高速标量乘。(b)将如下因数用作公钥的处理,所述因数是可被划分成θ因数的因数
接下来,描述将如下因数用作公钥的处理,所述因数是可被划分成θ因数的因数。该处理在生成私密密钥和公钥的密钥生成算法中将变为公钥的因数W的限制设为可划分成θ因数的因数。很多情况下,密钥生成算法不需要在实时基础上执行。
利用如下安排,即确定因数是否可划分成θ因数的耗时的划分可能性确定处理事先在密钥生成处理中被执行,随后在运用了公钥的加密处理的标量乘处理中通过对可划分成θ因数的公钥的先验认识(priorrecognition)来高速地执行处理。
本发明的加密处理装置中的加密处理器是参考图9来描述的。如图9所示,加密处理部件130中的因数控制部分131充当密钥发生器,从而生成例如公钥W。这里生成的公钥对应于标准因数,并由可划分成θ因数的标准因数组成,生成的公钥被存储到存储器133上。
标量乘执行部分132输入由装置中的或作为用户充当密钥发生器的因数控制部分131生成的因数,即,输入公钥W’,然后执行标量乘。如所示,[k]表示标量,kW’表示标量乘的结果。
此外,由装置中的或作为用户充当密钥发生器的因数控制部分131生成的因数,即公钥W’,在存储器133上被存储为一组θ因数Pi。通过执行该处理,由任意用户或装置生成的公钥W’已被划分成θ因数,并且在运用了公钥W’的标量乘的运行中,将对应于公钥W’的标准因数划分成θ因数的处理可以省略,因此高速标量乘处理被执行。
通过这种方式,利用如下安排,即确定因数是否可划分成θ因数的耗时的划分可能性确定处理事先在密钥生成处理中被执行,随后在运用了公钥的加密处理的标量乘处理中通过对可划分成θ因数的公钥的先验认识来高速地执行处理。利用这一安排,利用被划分的θ因数的标量乘处理在除了亏格2和有限域F(2n)以外的不允许划分确定的情况下被执行。参考图10来详细描述用于将变为公钥的因数设为可划分成θ因数的因数的密钥生成处理序列。
属于预定基点的阶数r的随机数s在步骤S251中生成,且公钥W=sG在步骤S252中生成。G为基点。此外,这里生成的公钥对应于作为超椭圆曲线密码体系(HECC)中点的形式和的因数D。接下来,在步骤S253中,确定作为因数来生成的公钥W是否可划分成θ因数。该处理与前面讨论过的图7的流程中的步骤S202相同,并通过验证系数为有限域F(2n)的二阶多项式U是否可被因式分解来执行。
若在步骤S253中确定作为因数来生成的公钥W可划分成θ因数,则将对应于公钥W的因数划分成θ因数的处理在步骤S254中执行,并且在步骤S255中将公钥W存储为一组θ因数Pi
若在步骤S253中确定作为因数来生成的公钥W不可划分成θ因数,则处理返回步骤S251以重新开始随机数生成处理。结果,只有可划分成θ因数的因数被设为公钥W。
此外,通过在步骤S255中执行将公钥W存储为一组θ因数Pi的处理,在运用了公钥W的标量乘的执行中,将对应于公钥W的标准因数划分成θ因数的处理可以省略,因此高速标量乘处理被执行。
已知的DH(Diffie-Hellman)密钥共享算法和通过上述密钥生成处理将可划分成θ因数的因数用作公钥的DH(Diffie-Hellman)密钥共享算法被互相比较并讨论。
首先,参考图11来描述公知的DH(Diffie-Hellman)密钥共享算法。图11示出在可相互通信的A和B之间运行的公知DH(Diffie-Hellman)密钥共享算法的序列。公开以下信息作为公共信息:
超椭圆曲线:C
基点:G,以及
基点的阶数:r。
首先,A使用随机数生成私密信息,在步骤S301中计算基点G的标量乘aG,在步骤S302中生成A的公钥WA,并在步骤S303中将生成的公钥WA发送给B。
类似地,B在步骤S304中使用随机数生成私密信息B,在步骤S305中计算基点G的标量乘bG,生成B的公钥WB,并在步骤S306中将生成的公钥WB发送给A。
在步骤S307中,A使用B的公钥WB来计算共享私密信息Z=aWB并且B使用A的公钥WA来计算共享私密信息Z=bWA。此外,Z的计算对应于因数(公钥)的标量乘。
另一方面,参考图12来讨论如下DH(Diffie-Hellman)密钥共享算法,其中通过前面参考图10讨论过的密钥生成处理来事先生成可划分成θ因数的因数作为公钥。同图11一样,图12示出在可相互通信的A和B之间运行的DH(Diffie-Hellman)密钥共享算法的序列。公开以下信息作为公共信息:
超椭圆曲线:C
基点:G,以及
基点的阶数:r。
图12所示A的步骤S35a和B的步骤S35b的每一个的处理步骤是参考图10讨论过的密钥生成处理的公钥生成处理,这些步骤被执行以事先生成公钥作为可划分成θ因数的因数。
A在其存储器上存储公钥WA=P1+P2,B在其存储器上存储公钥WB=Q1+Q2,P1,P2,Q1和Q2为θ因数。
首先,A在步骤S351中从其存储器中取出已生成的公钥WA=P1+P2并在步骤S352中将公钥WA=P1+P2发送给B。
类似地,B在步骤S353中从其存储器中取出已生成的公钥WB=Q1+Q2并在步骤S354中将公钥WB=Q1+Q2发送给A。
在步骤S355中,A使用B的公钥WB=Q1+Q2来计算共享私密信息Z=aWB,并且B使用A的公钥WA=P1+P2来计算共享私密信息Z=bWA。于是Z的计算对应于因数(公钥)的标量乘,该标量乘可以通过将P1,P2,Q1和Q2作为θ因数来应用而被执行,并且高速标量乘被执行。
【(2-2)使用θ因数P1,P2,...,Pi来计算标量乘kD的处理】
接下来,详细描述由图2的加密处理装置中的标量乘执行部分102执行的处理。
如上所述,本发明的加密处理装置使用θ因数来高速执行因数D的标量乘kD的计算处理。运用了θ因数的标量乘处理包括多种技术。(处理示例A)-(处理示例D)的四种技术被相继描述如下。
[处理示例A]在亏格(g)2的超椭圆曲线密码体系中,将标准因数D的标量乘kD划分成两个θ因数P1和P2,并使用同步运算操作来计算kP1+kP2的方法。
[处理示例B]在亏格(g)2的超椭圆曲线密码体系中,将标准因数D划分成两个θ因数P1和P2,并使用同步运算操作来将标准因数D的标量乘kD计算为k1P1+k2P2-(k1-k)P1-(k2-k)P2的方法。
[处理示例C]在亏格(g)3的超椭圆曲线密码体系中,将标准因数D的标量乘kD划分成三个θ因数P1,P2和P3(每个θ因数权重为1),使用同步运算操作来计算kP1+(k+1)P2-P2或kP1+(k-1)P2+P2,并且并列地使用始终加倍并相加操作来计算kP3的方法。
[处理示例D]在亏格(g)4的超椭圆曲线密码体系中,将标准因数D的标量乘kD划分成四个θ因数P1,P2,P3和P4(每个θ因数权重为1),将产生的θ因数修改为kP1+(k+1)P2-P2或kP3+(k+1)P4-P4,并且并列地执行(处理示例B)的方法的方法。
[处理示例A]在亏格(g)2的超椭圆曲线密码体系中,将标准因数D的标量乘kD划分成两个θ因数P1和P2,并使用同步运算操作来计算kP1+kP2的方法。
首先,图13是例示了在亏格(g)2的超椭圆曲线密码体系中,将标准因数D的标量乘kD划分成两个θ因数P1和P2,并使用同步运算操作来计算kP1+kP2的方法的流程图。图13的流程图是由图2的加密处理器100中的标量乘执行部分102执行的处理。图4的加密处理部件110中的标量乘执行部分112,或图6的加密处理部件120中的标量乘执行部分122,或图9的加密处理部件130中的标量乘执行部分132响应于待运行的加密算法来执行处理。
首先,在步骤S501中,标量乘执行部分输入标量[k],并输入来自因数控制部分或存储器的θ因数P1和P2。作为替代,标量乘执行部分可输入来自因数控制部分的可划分成θ因数的标准因数,并执行将标准因数划分成θ因数的处理。将标准因数划分成θ因数的处理可由因数控制部分或标量乘执行部分执行。
接着,在步骤S502中确定是否要求SPA(简单功率分析)鲁棒性。此外,可以将SPA鲁棒性的必要性作为响应于待执行的加密处理算法的设置信息事先存储在存储器中,并响应于运行算法的识别信息来执行从存储器中读取和确定设置信息的处理。可以设置指示SPA鲁棒性是否必要的固定信息。这种情况下,确定步骤被省略。
若在步骤S502中确定SPA鲁棒性没有必要,则处理前进到步骤S503,其中算法6作为运用了θ因数的标量乘处理算法被执行。若确定SPA鲁棒性有必要,则处理前进到步骤S504,其中算法7作为运用了θ因数的标量乘处理算法被执行。因此在步骤S505中输出由算法之一产生的标准因数的标量乘结果kD=kP1+kP2
算法6和算法7如下所述。
[公式8]
算法6
Figure A200780002463D00371
[公式9]
算法7
Figure A200780002463D00372
上述算法6和算法7的每一个使用权重小于亏格(g)的θ因数来执行kP1+kP2的标量乘,结果输出标准因数的标量乘结果。更具体而言,
kD=kP1+kP2
根据上述公式,标准因数的标量乘结果被输出。如前所述,使用θ因数特征计算的处理比直接使用标准因数的标量乘代价低,从而高速地提供计算结果。
更具体而言,如前所述,令[MFCADD]定义标准因数的相加,并令[TADD]定义标准因数和θ因数的相加,如果亏格2的超椭圆曲线密码体系中定义域为F(2n),则标准因数的相加[MFCADD]的计算代价为I+25M,标准因数和θ因数的相加[TADD]的计算代价为I+11M,并且TDD快14M。这里,I和M表示有限域F(2n)上的逆元素运算和乘运算,I+25M意味着需要一次逆元素运算和25次乘运算,I+11M意味着需要一次逆元素运算和11次乘运算。
通过这种方式来使用θ因数,可以执行高速标量乘,并快速获得加密处理结果。
[处理示例B]在亏格(g)2的超椭圆曲线密码体系中,将标准因数D划分成两个θ因数P1和P2,并使用同步运算操作来将标准因数D的标量乘kD计算为k1P1+k2P2-(k1-k)P1-(k2-k)P2的方法。
接下来,描述在亏格(g)2的超椭圆曲线密码体系中,将标准因数D划分成两个θ因数P1和P2,并使用同步运算操作来将标准因数D的标量乘kD计算为k1P1+k2P2-(k1-k)P1-(k2-k)P2的方法。
图14是该方法的处理的流程图。图14的流程是与图2的加密处理器100中的标量乘执行部分102执行的。此外,图4的加密处理部件110中的标量乘执行部分112,或图6的加密处理部件120中的标量乘执行部分122,或图9的加密处理部件130中的标量乘执行部分132响应于待运行的加密算法来执行处理。
首先,在步骤S601中,标量乘执行部分输入标量[k],并输入来自因数控制部分或存储器的θ因数P1和P2。作为替代,标量乘执行部分可输入来自因数控制部分的可划分成θ因数的标准因数,并执行将标准因数划分成θ因数的处理。将标准因数划分成θ因数的处理可由因数控制部分或标量乘执行部分执行。
接着,在步骤S602中,待计算的标准因数D的标量乘kD被转化成
kD=kP1+kP2
  =k1P1+k2P2-(k1-k)P1-(k2-k)P2
在步骤S602中,标量乘执行部分使用大到约为k的一对任意奇偶数标量k1和k2来将kP1+kP2转化成k1P1+k2P2-(k1-k)P1-(k2-k)P2的格式。在下一步骤S603中,对k1和k2进行带符号的二进制扩展(展开)k1=(k1,n- 1,.....,k1,0)和k2=(k2,n-1,.....,k2,0),使得第i对(k1,i,k2,i)中的一个为0,该对的另一个为1或—1。更具体而言,该对是(0,1),(0,—1),(1,0)和(—1,0)这些组合之一。
此外在步骤S604中,根据在步骤S603中展开的k1和k2利用同步运算操作来计算kP1+kP2。最后在步骤S605中,尚未被计算的项(k1-k)P1+(k2-k)P2在修正时被计算并添加,并且在步骤S606中,正确的结果,即
kD=kP1+kP2
  =k1P1+k2P2-(k1-k)P1-(k2-k)P2
被输出。
[标量乘方法B的修正B1]
描述参考图14讨论过的使用θ因数的标量乘的修正技术。
若k1和k2为k1=k,k2=k+1或k2=k-1,换言之,k1=k且|k1-k2|=1,则图14的步骤S605中修正的计算量减少,因此可以高速有效地执行标量乘。该计算技术的方法是参考图15的流程图来描述的。
图15的处理流程是由标量乘执行部分利用与图14的流程一起讨论过的标量乘——即利用大到约为k的一对任意奇偶数的标量k2和k1——来执行的计算处理序列,k1=k和k2=k+1。此外,若k2=k-1,则适用相同的处理。
首先,在步骤S621中,标量乘执行部分输入标量[k],并输入来自因数控制部分或存储器的θ因数P1和P2。作为替代,标量乘执行部分可输入来自因数控制部分的可划分成θ因数的标准因数,并执行将标准因数划分成θ因数的处理。将标准因数划分成θ因数的处理可由因数控制部分或标量乘执行部分执行。
接着,在步骤S622中,待计算的标准因数D的标量乘kD被转化成
kD=kP1+kP2
  =k1P1+(k+1)P2-P2
此外,该公式转化将k1和k2设为k1=k且k2=k+1,并等价于前面参考图14讨论过的转化公式,即等于k1P1+k2P2-(k1-k)P1-(k2-k)P2。在上述公式中,k1和k2成对地为k1=k和k2=k+1,k1P1+k2P2-(k1-k)P1-(k2-k)P2=kP1+(k+1)P2-P2
接着,在步骤S623中,k1=k和k2=k+1被二进制展开。更具体而言,k和k+1被二进制展开使得一对任意i比特为(0,1)或(0,—1)。稍后将参考图16来描述这一展开算法。
在下一步骤S624中,使用被二进制展开的k和k+1根据同步运算操作来计算kP1+(k+1)P2。该算法作为算法8被描述如下。
[公式10]
算法8
Figure A200780002463D00401
上述算法8是运用θ因数使用同步运算操作的标量乘的运算法则。此外,尚未被计算的项-P2在步骤S625中被计算然后被添加用于修正,最后在步骤S625中,正确的结果,即
kD=kP1+kP2
  =k1P1+(k+1)P2-P2
被输出。
下面参考图16来描述图15的处理流程的步骤S623中k和k+1的带符号的二进制展开的具体序列。首先,在步骤S651中,k被0,1二进制展开。
接着,在步骤S652中,标量k根据转化处理
k→k+1
被转化。该转化处理将二进制展开的k的每一比特从0翻转为1和从1翻转为0。接着,若被翻转的值为1,则1用—1来取代,且1被设为k的最高有效比特。该处理导致步骤S653中k+1的带符号的二进制展开。
例如,k=53处的二进制展开为(110101),且比特翻转的展开变为(001010)。若1用—1来取代,则100(—1)0(—1)0产生,并且该值变成作为k+1的54。该转化处理从关系k+1=2n-((2n-1)-k)中显而易见。
通过这种方式,在根据图15的处理流程运用θ因数的标量乘中,转化公式
kD=kP1+kP2
  =kP1+(k+1)P2-P2
成立,并被替换成前面参考图14讨论过的转化公式
kD=kP1+kP2
  =k1P1+k2P2-(k1-k)P1-(k2-k)P2
标量乘是利用通过更简单的公式转化的参考图14讨论过的转化公式来执行的,因此更有效且更高速的计算被执行。
此外,在亏格3的超椭曲线圆密码体系中,若标准因数D为D=Q1+Q2,Q1和Q2被表示为权重2的因数,则该技术还同等地适用于亏格3的超椭曲线圆密码体系。一般地,如果亏格g的标准因数D可划分成θ因数,则该技术适用。
[处理示例C]在亏格(g)3的超椭圆曲线密码体系中,将标准因数D的标量乘kD划分成三个θ因数P1,P2和P3(每个θ因数权重为1),使用同步运算操作来计算kP1+(k+1)P2-P2或kP1+(k-1)P2+P2,并且并列地使用始终加倍并相加操作来计算kP3的方法。
下面讨论的是在亏格(g)3的超椭圆曲线密码体系中,将标准因数D的标量乘kD划分成三个θ因数P1,P2和P3(每个θ因数权重为1),使用同步运算操作来计算kP1+(k+1)P2-P2或kP1+(k-1)P2+P2,并且并列地使用始终加倍并相加操作来计算kP3的方法。
一般地,很难通过与前述方法B相同的方式将k修改成三个不同的值,并将这三个不同值k1,k2和k3带符号地二进制展开成
k1=(k1,n-1,.....,k1,0),
k2=(k2,n-1,.....,k2,0),
k3=(k3,n-1,.....,k3,0),
使得每个被展开数据的第i组(k1,i,k2,1,k3,1)中的一个为1或—1,剩下的数据为0。这种情况下,可以通过有效地组合前面讨论的[标量乘方法B的修正B1]和始终加倍并相加方法(算法5)来对这三个θ因数有效地进行标量乘。该标量乘算法被称为算法9并描述如下。
[公式11]
算法9
Figure A200780002463D00421
上述算法是通过有效地组合前面讨论的[标量乘方法B的修正B1]和始终加倍并相加方法(算法5)来对三个θ因数有效地进行标量乘的算法,它基于θ因数来执行高速的计算操作。
[处理示例D]在亏格(g)4的超椭圆曲线密码体系中,将标准因数D的标量乘kD划分成四个θ因数P1,P2,P3和P4(每个θ因数权重为1),将产生的θ因数修改为kP1+(k+1)P2-P2或kP3+(k+1)P4-P4,并且并列地执行(处理示例B)的方法的方法。
接下来讨论在亏格(g)4的超椭圆曲线密码体系中,将标准因数D的标量乘kD划分成四个θ因数P1,P2,P3和P4(每个θ因数权重为1),将产生的θ因数修改为kP1+(k+1)P2-P2或kP3+(k+1)P4-P4,并且并列地执行(处理示例B)的方法的算法,该算法被称为算法10。
[公式12]
算法10
Figure A200780002463D00431
算法10是这样的运算法则,其中kD=kP1+kP2+kP3+kP4被设置并被划分成kP1+(k+1)P2-P2和kP3+(k+1)P4-P4,并且标量乘是运用了前面讨论过的[标量乘方法B的修正B1]来并列地执行的。与基于标准因数的相互(mutual)计算相比,运用了θ因数的算法在涉及少量计算的情况下高速地提供计算结果。
【(3)本发明的加密处理的高速操作的验证】
首先在固定因数的标量乘中,本发明的安排允许被划分的θ因数的基点作为域参数被存储在存储器上,并允许标量乘执行部分使用θ因数来运行标量乘的同步运算操作。
例如,本安排使用上述各种θ因数来应用标量乘处理示例A-D,从而消除了耗时的相互标准因数计算,取而代之在运用θ因数的情况下使用高速计算处理并加速了处理。通过运用前面讨论的[标量乘方法B的修正B1]执行标量乘,甚至更高速的处理是可能的。若标量乘的计算模式总是恒定的,则算术处理时间和算术处理功耗中不出现差别,并且带有对作为算术序列分析的SPA和TA分析的鲁棒性保证的安全而高速的计算被执行。
例如,前面讨论的算法2作为运用未被划分的标准因数执行标量乘的方法是已知技术,将连同前述[标量乘方法B的修正B1]一起被讨论的算法8作为本发明的一种方法与已知技术在计算量上作比较。
令[MFCADD]表示所有标准因数的相加,
[MFCDBL]表示标准因数的加倍运算,
[TADD]定义标准因数和θ因数的相加,并且
[TDBL]表示θ因数的加倍运算,
超椭曲线圆密码体系的亏格(g)为2,且定义域为F(2n),作为已知技术的算法2的情况与作为本发明的方法的算法8的情况下的计算量如下:
算法2:(n-1)*(MFCDBL+MFCADD)
算法8:(n-1)*(MFCDBL+TADD)+TDBL+TADD
对于n=160比特,MFCDBL,MFCADD,TADD和TDBL的计算量为:
MFCDBL=I+27M,
MFCADD=I+25M,
TADD=I+11M,并且
TDBL=I+7M
其中I=6M。另外,I和M表示有限域F(2n)上的逆元素运算和乘运算。这种情况下,
算法2:(n-1)*(MFCDBL+MFCADD),
=(160-1)*((I+27M)+(I+25M))
算法8:(n-1)*(MFCDBL+TADD)+TDBL+TADD
=(160-1)*((I+27M)+(I+11M)+(I+7M)+(I+11M)
算法8在计算量上比算法2低大约22%,因此执行高速的计算操作。
作为超椭曲线圆密码体系的密钥生成处理和超椭曲线圆密码体系的签名生成算法DSA之一被超椭曲线圆密码体系取代的一种方法,本发明的安排适用于具有SPA鲁棒性的固定因数的标量乘。
类似地,根据本发明,对于输入的标准因数成为θ因数的划分可能性确定是像前面参考图6和图7讨论的那样在任意(随机)因数的标量乘中确定的,并且输入的标准因数若可划分则被划分成θ因数,然后高速地执行标量乘。通过这一安排,标量乘执行部分执行高速计算,并且标量乘的计算模式变得恒定,此外因数的相加运算处理变为包含θ因数的相加运算的处理。算术处理时间和算术处理功耗中不出现差别,并且带有对作为算术序列分析的SPA和TA分析的鲁棒性保证的安全而高速的计算被执行。
另一方面,将输入的标准因数划分成θ因数的处理在计算量上依据定义的超椭圆曲线的亏格g和定义域而不同。
但是,若采用前面参考图9和图10来讨论的“只生成可划分成因数的公钥的方法”,则将克服划分标准因数的处理步骤中的瓶颈,并取得像固定因数的标量乘一样高的处理速度。
此外,采用前面参考图8来讨论的“在亏格2和定义域F(2n)的不可划分的因数的情况下加倍因数直到该因数可被二等分的方法”,对于输入的标准因数D成为θ因数的划分可能性确定在输入的标准因数D被加倍的情况下重复,从而多次加倍输入的标准因数D,在加倍的标准因数D被划分成θ因数之后执行标量乘,因此与没有因数划分的标量乘相比,执行了高速计算。
对标准因数进行加倍运算并通过被划分成θ因数的标准因数来执行标量乘的技术与直接在标准因数上执行标量乘的已知技术在计算量方面被验证。
像前面参考算法2作为直接在标准因数上执行标量乘的已知技术来描述的那样,计算量为
n*(MFCDBL+MFCADD)。
另一方面,标准因数的加倍运算以及通过被划分成θ因数的标准因数来执行标量乘的本发明的序列(图8的处理序列)的计算量如下所述。这里,由于对因数是否可划分的确定服从1/2的概率,因此图8的步骤S222和S231中的处理是通过平均值来估计的。这里,令Tr表示有限域F(2n)上的求迹运算,Hf表示一半求迹(half Trace)运算,并令MFCHLV表示1/2计算。图8的处理步骤中的计算估计如下:
步骤S222和S231:2I+4M+2Tr+MFCDBL
步骤S223:3M+Hf
步骤S224:TDBL+TADD+(n-1)(MFCDBL+TADD)
步骤S234:MFCFHLV
在固定因数的计算估计中I=6M,Hf=0.5M,Tr=0M和MFCHLV=28M的情况下,期待根据图8的流程来执行的处理产生比已知技术(算法2)高20%的高速操作。
此外,用超椭圆曲线取代密钥交换算法ECDH的方法适用于具有SPA鲁棒性的任意因数的标量乘。
此外,要求SPA鲁棒性和DPA鲁棒性的任意因数的标量乘是E1Gamal方法的解码处理。例如,在作为ECC而出名的DPA措施中,由于(#J)D=0,因此利用随机数R和雅可比簇的阶数#J将任意因数的标量乘kD修改为kD=(k+R#J)D,并通过利用随机数R掩盖的私密信息k来执行标量乘作为DPA措施,所述ECC在题为[J.-S.Coron,Resistance againstDifferential Power Analysis for Elliptic Curve Cryptosystems,CHES′99,LNCS1717,pp.292-302,Springer-Verlag,1999]的文章中被描述。该措施使用符合上述本发明的因数标量乘来允许甚至更高速的计算。
更具体而言,因数的标量乘kD通过θ因数Pn被转化成
kD=(k+R#J)P1+(k+1+R#J)P2-P2
并且标量乘通过处理示例A-D的因数的高速标量乘技术之一被执行。另外,因数的标量乘kD通过不同的随机数R1和R2被转化成
kD=(k+R1#J)P1+(k+1+R2#J)P2-P2
并且标量乘通过处理示例A-D的因数的高速标量乘技术之一被执行。
根据本发明的方法,即使当响应于标准因数的输入来执行标量乘时,使用θ因数的高速计算也通过被划分成θ因数的标准因数被执行,因此标量乘响应于随机输入的因数在θ因数上被执行,并超椭曲线圆密码体系的标量乘被加快。此外,由于采用标准因数作为基点,因此使用标准因数的现有高速标量乘技术也可以在未对加密处理装置施加存储限制的环境中使用,因此保证了更强的灵活性。
【(4)加密处理装置的结构】
最后,图17例示可作为运行上述加密处理的设备的IC模块200的结构。上述处理可由PC、IC卡、读写器以及各种其他信息处理装置的任一个来执行,并且图17的IC模块200可以实现为这些装置的任一个。
图17的CPU(中央处理单元)201是执行加密处理的开始和结束、数据发送和接收控制、单元之间的数据转移控制以及各种其他程序的处理器。存储器202包括ROM(只读存储器)和RAM(随机存取存储器),ROM存储作为计算参数的固定数据和将被CPU201执行的程序,RAM存储在CPU201的处理中运行的程序和必要时响应于程序的运行而改变的参数并被用作工作区域等。
此外,将被存储到存储器202上的计算运行程序包括标量乘的相加和加倍运算的运行序列以及用于上述基点的设置处理的程序。此外,存储器202可充当加密处理所需的密钥数据等的存储区域。例如,存储器202可用作可被划分成θ因数的公钥数据的存储区域。该数据等的存储区域优选地被安排成防篡改的存储器。
加密部件203执行包含上述标量乘的加密处理、解密处理等。这里,加密处理装置被示为单独的模块,但是除了单独的加密处理模块,加密处理程序可被存储到ROM上,并且CPU201可以读取并运行ROM存储的程序。
随机数发生器204在加密处理中要求的密钥的生成中执行所需随机数的生成处理。
收发器205是与外界执行数据通信的数据通信处理器,并且例如与诸如读写器之类的IC模块执行数据通信,从而输出在ID模块中生成的加密文本,或输入来自诸如读写器之类的外部设备的数据。
已参考特定实施例描述了本发明。但是,对于本领域技术人员来讲,只要不脱离本发明的范围,显然可以对实施例进行修改和变更。换言之,本发明的实施例仅出于示例性目的被公开,并且不应通过限制方式来解释。本发明的范围仅由所附权利要求来限定。
说明书中描述的一系列方法可以利用硬件、软件或二者的组合来执行。若利用软件来执行这些方法,则包含方法步骤的程序可被安装到执行各种处理的通用计算机或专用硬件所包含的计算机中的存储器上。
例如,程序可以预安装到诸如硬盘或ROM(只读存储器)之类的记录介质上。作为替代,程序可以暂时或永久地存储(记录)到诸如软盘、CD-ROM(致密光盘只读存储器)、MO(磁光)盘、DVD(数字万用盘)、磁盘和半导体存储器之类的可移除记录介质中。
另外,程序可以从上述可移除记录介质被安装到计算机,以无线方式从下载站点被发送到计算机,经由诸如LAN(局域网)和因特网之类的网络以有线方式被转移到计算机,并且计算机接收这样的被发送程序并将程序安装到诸如内部硬盘之类的记录介质。
依据执行处理的每个设备的吞吐量,在说明书中描述的上述方法不仅可以按上述时间序列执行,还可以并列或分开地执行。在本说明书中,术语系统指代多个装置的逻辑集合,并且每个装置不一定位于单个外壳中。
工业适用性
根据本发明的结构,标量乘的对象因数在对超椭曲线圆密码体系的因数D的标量乘中被控制,高速标量乘因而被执行。更具体而言,若权重等于亏格g的标准因数是标量乘的对象因数,则对于标准因数是否可划分成被定义为权重小于亏格g的因数的θ因数的确定被执行,并且若标准因数可划分,则通过划分标准因数来生成θ因数,标量乘执行部分利用θ因数来执行标量乘,高速标量乘通过减少的计算量被执行,高速的加密处理操作因而被执行。

Claims (31)

1.一种用于执行基于超椭圆曲线密码体系的加密处理的加密处理装置包括:
因数控制部分,用于对作为标量乘对象的因数执行控制处理;以及
标量乘执行部分,用于使用在所述因数控制部分的控制下确定的因数来执行标量乘处理,
其中,如果亏格g的超椭圆曲线密码体系中权重等于所述亏格g的标准因数是所述标量乘处理的对象因数,则所述因数控制部分确定所述标准因数是否可划分成被定义为权重小于亏格g的θ因数,并且,如果所述标准因数是可划分的,则执行控制处理以令所述标量乘执行部分使用通过划分所述标准因数而生成的θ因数来执行所述标量乘处理。
2.根据权利要求1所述的加密处理装置,其中,所述因数控制部分充当基点发生器,并执行处理以生成可划分成θ因数的标准因数作为基点,
其中所述标量乘执行部分使用通过划分作为基点的标准因数而设置的θ因数,来执行所述标量乘处理。
3.根据权利要求1所述的加密处理装置,其中,所述因数控制部分确定作为所述标量乘处理的对象被输入的随机因数是否可划分成θ因数,并执行控制处理,以在所述随机因数可划分的情况下,令所述标量乘执行部分使用通过划分所述标准因数而生成的θ因数来执行所述标量乘处理,并在所述随机因数不可划分的情况下,令所述标量乘执行部分使用所述标准因数来执行所述标量乘处理。
4.根据权利要求1所述的加密处理装置,其中所述因数控制部分确定作为所述标量乘处理的对象被输入的随机因数是否可划分成θ因数,
如果所述输入因数是不可划分的,则对所述输入因数重复加倍运算处理和确定加倍运算结果因数是否可划分成θ因数的可划分性确定处理,
并且,如果检测到所述加倍运算结果因数可划分成θ因数,则执行控制处理以令所述标量乘执行部分使用通过划分所述加倍运算结果因数而生成的θ因数来执行所述标量乘处理。
5.根据权利要求4所述的加密处理装置,其中,所述标量乘执行部分在使用通过划分加倍运算结果因数而设置的θ因数来执行所述标量乘处理之后,重复二等分运算,重复次数等于加倍运算的次数,以计算所述输入因数的标量乘。
6.根据权利要求1所述的加密处理装置,其中,充当密钥发生器的所述因数控制部分执行生成可划分成θ因数的标准因数作为密钥数据的生成处理,并将所生成的密钥数据存储到存储器中,并且
其中,所述标量乘执行部分使用通过划分作为密钥数据的标准因数而设置的θ因数来执行所述标量乘处理。
7.根据权利要求6所述的加密处理装置,其中,所述因数控制部分在所述存储器上存储通过划分作为标准因数的所述密钥数据而设置的θ因数。
8.根据权利要求1所述的加密处理装置,其中,所述标量乘执行部分在亏格2的超椭圆曲线密码体系中,使用两个θ因数P1和P2来执行由kD=kP1+kP2表示的标准因数D的标量乘kD的变换处理,以便使用同步运算操作应用θ因数P1和P2来执行所述标量乘处理。
9.根据权利要求1所述的加密处理装置,其中,所述标量乘执行部分在亏格2的超椭圆曲线密码体系中,使用两个θ因数P1和P2来执行由kD=k1P1+k2P2-(k1-k)P1-(k2-k)P2表示的标准因数D的标量乘kD的变换处理,其中k1和k2为奇数和偶数,以便使用同步运算操作应用θ因数P1和P2来执行所述标量乘处理。
10.根据权利要求1所述的加密处理装置,其中,所述标量乘执行部分在亏格2的超椭圆曲线密码体系中,使用两个θ因数P1和P2来执行由kP1+(k+1)P2-P2或kP1+(k-1)P2+P2表示的标准因数D的标量乘kD的变换处理,以便应用θ因数P1和P2来执行所述标量乘处理。
11.根据权利要求1所述的加密处理装置,其中,所述标量乘执行部分在亏格3的超椭圆曲线密码体系中,使用两个θ因数P1和P2来执行由kP1+(k+1)P2-P2或kP1+(k-1)P2+P2表示的标准因数D的标量乘kD的变换处理,以便使用同步运算操作应用θ因数P1和P2来执行所述标量乘处理。
12.根据权利要求1所述的加密处理装置,其中,所述标量乘执行部分在亏格4的超椭圆曲线密码体系中,使用两个θ因数P1和P2来执行由kP1+(k+1)P2-P2或kP1+(k-1)P2+P2表示的标准因数D的标量乘kD的变换处理,以便使用同步运算操作应用θ因数P1和P2来执行所述标量乘处理。
13.根据权利要求1所述的加密处理装置,其中,所述标量乘执行部分在亏格g的超椭圆曲线密码体系中,使用同步运算操作,利用将标准因数划分成三个θ因数,来执行所述标量乘处理。
14.根据权利要求1所述的加密处理装置,其中,在亏格3的超椭圆曲线密码体系中,所述标量乘执行部分使用三个权重为1的θ因数P1、P2和P3来将标准因数D的标量乘kD划分成kP1+(k+1)P2-P2或kP1+(k-1)P2+P2或kP3,以便使用同步运算操作和始终加倍并相加运算操作应用θ因数P1,P2和P3来执行所述标量乘处理。
15.根据权利要求1所述的加密处理装置,其中,所述标量乘执行部分在亏格g的超椭圆曲线密码体系中,通过将所述标准因数划分成至少两个θ因数来使用同步运算操作执行所述标量乘处理。
16.一种用于执行基于超椭圆曲线密码体系的加密处理的加密处理装置的加密处理方法,包括:
因数控制部分的因数控制步骤,用于对作为标量乘对象的因数执行控制处理;以及
标量乘执行部分的标量乘步骤,用于使用在所述因数控制部分的控制下确定的因数来运行标量乘处理,
其中,所述因数控制步骤包括:如果亏格g的超椭圆曲线密码体系中权重等于亏格g的标准因数是标量乘处理的对象因数,则确定所述标准因数是否可划分成被定义为权重小于亏格g的θ因数,并且,如果所述标准因数是可划分的,则执行控制处理以令所述标量乘执行部分使用通过划分所述标准因数而生成的θ因数来执行所述标量乘处理。
17.根据权利要求16所述的加密处理方法,其中,所述因数控制步骤包括执行基点生成处理以生成可划分成θ因数的标准因数作为基点,
其中,所述标量乘步骤包括使用通过划分作为基点的标准因数而设置的θ因数来执行所述标量乘处理。
18.根据权利要求16所述的加密处理方法,其中,所述因数控制步骤包括确定作为标量乘处理的对象被输入的随机因数是否可划分成θ因数,以及执行控制处理,以在所述随机因数可划分的情况下,令所述标量乘执行部分使用通过划分标准因数而生成的θ因数来执行所述标量乘处理,并在所述随机因数不可划分的情况下,令所述标量乘执行部分使用所述标准因数来执行所述标量乘处理。
19.根据权利要求16所述的加密处理方法,其中,所述因数控制步骤包括确定作为标量乘处理的对象被输入的随机因数是否可划分成θ因数,
如果所述输入因数是不可划分的,则对所述输入因数重复加倍运算处理和确定加倍运算结果因数是否可划分成θ因数的可划分性确定处理,
并且,如果检测到所述加倍运算结果因数可划分成θ因数,则执行控制处理以令所述标量乘执行部分使用通过划分所述加倍运算结果因数而生成的θ因数来执行所述标量乘处理。
20.根据权利要求19所述的加密处理方法,其中,所述标量乘步骤包括在使用通过划分加倍运算结果因数而设置的θ因数来执行所述标量乘处理之后,重复二等分运算,重复次数等于加倍运算的次数,以计算所述输入因数的标量乘。
21.根据权利要求16所述的加密处理方法,其中,所述因数控制步骤包括执行生成可划分成θ因数的标准因数作为密钥数据的生成处理,以及将所生成的密钥数据存储到存储器中,并且
其中,所述标量乘步骤包括使用通过划分作为密钥数据的标准因数而设置的θ因数来执行所述标量乘处理。
22.根据权利要求21所述的加密处理方法,其中,所述因数控制步骤包括在所述存储器上存储通过划分作为标准因数的所述密钥数据而设置的θ因数。
23.根据权利要求16所述的加密处理方法,其中,所述标量乘步骤包括在亏格2的超椭圆曲线密码体系中,使用两个θ因数P1和P2来执行由kD=kP1+kP2表示的标准因数D的标量乘kD的变换处理,以便使用同步运算操作应用θ因数P1和P2来执行所述标量乘处理。
24.根据权利要求16所述的加密处理方法,其中,所述标量乘步骤包括在亏格2的超椭圆曲线密码体系中,使用两个θ因数P1和P2来执行由kD=k1P1+k2P2-(k1-k)P1-(k2-k)P2表示的标准因数D的标量乘kD的变换处理,其中k1和k2为奇数和偶数,以便使用同步运算操作应用θ因数P1和P2来执行所述标量乘处理。
25.根据权利要求16所述的加密处理方法,其中,所述标量乘步骤包括在亏格2的超椭圆曲线密码体系中,使用两个θ因数P1和P2来执行由kP1+(k+1)P2-P2或kP1+(k-1)P2+P2表示的标准因数D的标量乘kD的变换处理,以便应用θ因数P1和P2来执行所述标量乘处理。
26.根据权利要求16所述的加密处理方法,其中,所述标量乘步骤包括在亏格3的超椭圆曲线密码体系中,使用两个θ因数P1和P2来执行由kP1+(k+1)P2-P2或kP1+(k-1)P2+P2表示的标准因数D的标量乘kD的变换处理,以便使用同步运算操作应用θ因数P1和P2来执行所述标量乘处理。
27.根据权利要求16所述的加密处理方法,其中,所述标量乘步骤包括在亏格4的超椭圆曲线密码体系中,使用两个θ因数P1和P2来执行由kP1+(k+1)P2-P2或kP1+(k-1)P2+P2表示的标准因数D的标量乘kD的变换处理,以便使用同步运算操作应用θ因数P1和P2来执行所述标量乘处理。
28.根据权利要求16所述的加密处理方法,其中,所述标量乘步骤包括在亏格g的超椭圆曲线密码体系中,使用同步运算操作,利用将标准因数划分成三个θ因数,来执行同步标量乘处理。
29.根据权利要求16所述的加密处理方法,其中,在亏格3的超椭圆曲线密码体系中,所述标量乘步骤包括应用三个权重为1的θ因数P1,P2和P3来将标准因数D的标量乘kD划分成kP1+(k+1)P2-P2或kP1+(k-1)P2+P2或kP3,以便使用同步运算操作和始终加倍并相加运算操作应用θ因数P1、P2和P3来执行所述标量乘处理。
30.根据权利要求16所述的加密处理方法,其中,所述标量乘步骤包括在亏格g的超椭圆曲线密码体系中,通过将所述标准因数划分成至少两个θ因数来使用同步运算操作执行所述标量乘处理。
31.一种用于执行基于超椭圆曲线密码体系的加密处理的加密处理装置的计算机程序,包括:
因数控制部分的因数控制步骤,用于对作为标量乘对象的因数执行控制处理;以及
标量乘执行部分的标量乘步骤,用于使用在所述因数控制部分的控制下确定的因数来运行标量乘处理,
其中,所述因数控制步骤包括:如果亏格g的超椭圆曲线密码体系中权重等于亏格g的标准因数是标量乘处理的对象因数,则确定所述标准因数是否可划分成被定义为权重小于亏格g的θ因数,并且,如果所述标准因数是可划分的,则执行控制处理以令所述标量乘执行部分使用通过划分所述标准因数而生成的θ因数来执行所述标量乘处理。
CN200780002463XA 2006-01-16 2007-01-04 加密处理装置、加密处理方法 Expired - Fee Related CN101371285B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006007104A JP4513752B2 (ja) 2006-01-16 2006-01-16 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP007104/2006 2006-01-16
PCT/JP2007/050008 WO2007080825A1 (ja) 2006-01-16 2007-01-04 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
CN101371285A true CN101371285A (zh) 2009-02-18
CN101371285B CN101371285B (zh) 2010-09-08

Family

ID=38256231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780002463XA Expired - Fee Related CN101371285B (zh) 2006-01-16 2007-01-04 加密处理装置、加密处理方法

Country Status (6)

Country Link
US (1) US20100183142A1 (zh)
EP (1) EP1975907A1 (zh)
JP (1) JP4513752B2 (zh)
KR (1) KR20080086476A (zh)
CN (1) CN101371285B (zh)
WO (1) WO2007080825A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8243919B2 (en) * 2007-03-07 2012-08-14 Research In Motion Limited Method and apparatus for performing elliptic curve scalar multiplication in a manner that counters power analysis attacks
US7991162B2 (en) * 2007-09-14 2011-08-02 University Of Ottawa Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields
WO2009090750A1 (ja) * 2008-01-18 2009-07-23 Mitsubishi Electric Corporation 暗号パラメータ設定装置及び鍵生成装置及び暗号システム及びプログラム及び暗号パラメータ設定方法及び鍵生成方法
FR2935503A1 (fr) * 2008-08-28 2010-03-05 St Microelectronics Rousset Protection d'un algorithme de chiffrement
US8542820B2 (en) * 2009-02-05 2013-09-24 Infineon Technologies Ag Apparatus for calculating a result of a scalar multiplication
JP5446678B2 (ja) * 2009-09-29 2014-03-19 富士通株式会社 楕円曲線暗号演算装置及び方法
KR101297966B1 (ko) * 2011-12-14 2013-08-19 (주)엠씨씨 이.씨.씨. 알고리즘을 이용한 암호화 방법
CN103684763A (zh) * 2012-09-19 2014-03-26 北京握奇数据系统有限公司 基于rsa算法的数据加密方法、装置及智能卡
US9590805B1 (en) * 2014-12-23 2017-03-07 EMC IP Holding Company LLC Ladder-based cryptographic techniques using pre-computed points
EP4024755B1 (en) * 2021-08-26 2024-03-20 Irdeto B.V. Secured performance of an elliptic curve cryptographic process

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2791496B1 (fr) * 1999-03-26 2001-10-19 Gemplus Card Int Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique
FR2791497B1 (fr) * 1999-03-26 2001-05-18 Gemplus Card Int Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique
US7149693B2 (en) * 2003-07-31 2006-12-12 Sony Corporation Automated digital voice recorder to personal information manager synchronization
JP4599859B2 (ja) * 2004-03-12 2010-12-15 ソニー株式会社 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
JP4752313B2 (ja) * 2004-09-30 2011-08-17 ソニー株式会社 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
JP2006145945A (ja) * 2004-11-22 2006-06-08 Sony Corp 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
CN101371285B (zh) 2010-09-08
WO2007080825A1 (ja) 2007-07-19
EP1975907A1 (en) 2008-10-01
JP4513752B2 (ja) 2010-07-28
US20100183142A1 (en) 2010-07-22
JP2007187957A (ja) 2007-07-26
KR20080086476A (ko) 2008-09-25

Similar Documents

Publication Publication Date Title
CN101371285B (zh) 加密处理装置、加密处理方法
KR101154695B1 (ko) 암호 처리 연산 장치
Koziel et al. Low-resource and fast binary edwards curves cryptography
JP4752313B2 (ja) 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
US20080044013A1 (en) Koblitz Exponentiation with Bucketing
US8300810B2 (en) Method for securely encrypting or decrypting a message
Imran et al. Lopez dahab based elliptic crypto processor (ECP) over gf (2 163) for low-area applications on FPGA
Harb et al. FPGA implementation of the ECC over GF (2m) for small embedded applications
Rashid et al. An optimized architecture for binary huff curves with improved security
Azarderakhsh et al. EdSIDH: supersingular isogeny Diffie-Hellman key exchange on Edwards curves
US7177422B2 (en) Elliptic curve encryption processing method, elliptic curve encryption processing apparatus, and program
Gutub et al. Serial vs. parallel elliptic curve crypto processor designs
Zode et al. Optimization of elliptic curve scalar multiplication using constraint based scheduling
EP1578054A1 (en) Cryptography-processing method, cryptography-processing apparatus and computer program
JP2004163687A (ja) 楕円曲線暗号装置、楕円曲線暗号プログラム
Li et al. FPGA implementations of elliptic curve cryptography and Tate pairing over a binary field
Kalaiarasi et al. A parallel elliptic curve crypto-processor architecture with reduced clock cycle for FPGA platforms
Sghaier et al. High speed and efficient area optimal ate pairing processor implementation over BN and BLS12 curves on FPGA
Al-Haija et al. Cost-effective design for binary Edwards elliptic curves crypto-processor over GF (2N) using parallel multipliers and architectures
Zhang et al. A high performance pseudo-multi-core ECC processor over GF (2 163)
Clancy Analysis of FPGA-based hyperelliptic curve cryptosystems
Awano et al. Asic coprocessor for 254-bit prime-field pairing based on general purpose arithmetic unit on quadratic extension field
Peng et al. Multi-core FPGA implementation of ECC with homogeneous Co-Z coordinate representation
Gövem et al. A fast and compact FPGA implementation of elliptic curve cryptography using lambda coordinates
Realpe-Muñoz et al. High-performance elliptic curve cryptoprocessors over GF (2^ m) GF (2 m) on Koblitz curves

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100908

Termination date: 20130104