CN102396010A - 有限域运算装置、有限域运算方法、程序以及记录介质 - Google Patents

有限域运算装置、有限域运算方法、程序以及记录介质 Download PDF

Info

Publication number
CN102396010A
CN102396010A CN2010800164035A CN201080016403A CN102396010A CN 102396010 A CN102396010 A CN 102396010A CN 2010800164035 A CN2010800164035 A CN 2010800164035A CN 201080016403 A CN201080016403 A CN 201080016403A CN 102396010 A CN102396010 A CN 102396010A
Authority
CN
China
Prior art keywords
finite field
poly
arithmetic element
computing
field operations
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
CN2010800164035A
Other languages
English (en)
Other versions
CN102396010B (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of CN102396010A publication Critical patent/CN102396010A/zh
Application granted granted Critical
Publication of CN102396010B publication Critical patent/CN102396010B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04L9/3073Public 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 involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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
    • 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
    • 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/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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/7209Calculation via subfield, i.e. the subfield being GF(q) with q a prime power, e.g. GF ((2**m)**n) via GF(2**m)

Landscapes

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

Abstract

有效地对将有限域上的对于K个有限域GF(pm)的元R(i,k)∈GF(pm)的运算设为e(R(i,0),...,R(i,K-1))的情况下的运算∏i=0 N-1e(R(i,0),...,R(i,K-1))进行运算。在表示有限域GF(pm)的d次扩散域的多项式poly(R(i,0),...,R(i,K-1))之间进行乘算,并对该乘算结果进行累积乘算,其中该多项式是在进行对于各i的运算e(R(i,0),...,R(i,K-1))的过程中分别得到的。该多项式poly(R(i,0),...,R(i,K-1))是来自所输入的有限域GF(pm)的元的映射,至少一部分项的系数为0。对不同的i的组合执行相同的处理,并使用该结果来进行运算∏i=0 N-1e(R(i,0),...,R(i,K-1))。

Description

有限域运算装置、有限域运算方法、程序以及记录介质
技术领域
本发明涉及密码技术,尤其涉及有限域上的运算技术。
背景技术
随着利用了配对(pairing)的密码方式的实用化,近年来广泛地进行用于有效地安装配对的研究。配对是2输入1输出的双线型函数。在当前的密码技术中,使用式(1)的配对,该配对将在有限域GF(pm)(p是质数、m是1以上的整数)上定义的椭圆曲线上的两个点P(x1,y1),Q(x2,y2)(x1,y1,x2,y2∈GF(pm))作为输入,输出有限域GF(pm)的扩散域GF(pd·m)的一个元ηT(P,Q)∈GF(3d·m)。
e(P(x1,y1),Q(x2,y2))→ηT(P,Q)      ...(1)
作为用于以多项式时间计算配对的算法,最初提出的算法是用于计算Tate配对的Miller算法。之后,提出了与Miller算法相比减少了一半的回归次数的ηT配对算法,还提出了改进ηT配对算法(例如,参照非专利文献1),其消除了ηT配对算法所包含的立方根运算,从而实现了进一步的高速化。以下,表示改进ηT配对算法的概要。
<改进ηT配对运算算法>
[准备]
Eb:Eb表示Y2=X3-X+b(b∈{-1,1})。Eb是在有限域GF(3m)上定义的超特异椭圆曲线。
σ:σ表示成为以有限域GF(3m)的元作为系数的不可约多项式σ2+1=0的根的不定元。
ρ:ρ表示成为以有限域GF(3m)的元作为系数的ρ3-ρ-b=0的根的不定元。
[输入]P(x1,y1),Q(x2,y2)(x1,y1,x2,y2∈GF(3m))
[输出]ηT(P,Q)∈GF(36m)
[计算方法]
步骤1:y1=-y1∈GF(3m)(包括b=1的情况)
步骤2:u=x1+x2+b∈GF(3m)
步骤3:c=b
步骤4:f=-y1·u+y2·σ+y1·ρ∈GF(36m)
步骤5:从j=0起到(m-1)/2为止,一边对j进行加1一边重复步骤5-1~步骤5-8。
步骤5-1:u=x1+x2+c∈GF(3m)
步骤5-2:g=-u2+y1·y2·σ-u·ρ-ρ2∈GF(36m)
步骤5-3:f=f·g∈GF(36m)
步骤5-4:f=f3∈GF(36m)
步骤5-5:y1=-y1∈GF(3m)
步骤5-6:x2=x2 9∈GF(3m)
步骤5-7:y2=y2 9∈GF(3m)
步骤5-8:c=(c-b)mod3∈GF(3)
步骤6:ffinalpow∈GF(36m)输出[finalpow=(33m-1)(3m+1)(3m-3(m+1)/2+1)]
此外,在非专利文献2中公开了,在ηT配对运算中应用了作为循环变换的一种的“循环展开(Loop Unrolling)”技术的算法。“循环展开”是如下的技术:通过减少在每次循环的重复时发生的循环结束条件的判定处理,从而提高执行速度。在非专利文献2的方法中,在1次循环中执行在基本的算法中通过2次循环执行的处理,减少了一半的循环重复次数,从而减少了一半的循环结束条件的判定处理。
现有技术文献
非专利文献
非专利文献1:Beuchat,J.-L.;Shirase,M.;Takagi,T.;Okamoto,″AnAlgorithm for the ηT Pairing Calculation in Characteristic Three and its HardwareImplementation″,Proceedings of the 18th IEEE Symposium on ComputerArithmetic,Institute of Electrical and Electronics Engineers,25-27June 2007,pp.97-104
非专利文献2:Beuchat,J.-L.;Brisebarre,N.;Detrey,J.;Okamoto,E.;Shirase,M.;Takagi,T.,″Algorithms and Arithmetic Operators for Computing theηT Pairing in Characteristic Three″,IEEE transactions on computers,Institute ofElectrical and Electronics Engineers,Nov.2008,Volume 57,Issue 11,pp.1454-1468
发明内容
发明要解决的课题
在上述的引用文献1、2中公开的技术仅仅是用于有效地计算1个配对的方式,没有公开有效地计算多个配对的积的方式。
即,没有公开如下的方式:在将以有限域GF(pm)上定义的椭圆曲线上的2个点P(X1[i],Y1[i]),Q(X2[i],Y2[i])(X1[i],Y1[i],X2[i],Y2[i]∈GF(pm))作为输入、输出有限域GF(pm)的扩散域GF(pd·m)的1个元ηT(P[i],Q[i])∈GF(3d·m)的配对设为式(2)的情况下,有效地计算对于N≥2的式(3)。
e(P(X1[i],Y1[i]),Q(X2[i],Y2[i]))→ηT(P[i],Q[i])    ...(2)
i=0 N-1e(P(X1[i],Y1[i]),Q(X2[i],Y2[i]))            ...(3)
因此,在使用引用文献1、2等以往的方式来进行式(3)的计算的情况下,对各i=0,...,N-1分别独立地进行式(2)的计算,并对通过各自的计算而得到的运算结果ηT(P[i],Q[i])进行相乘,从而得到式(3)的运算结果。例如,在使用“循环展开”技术的情况下,“循环展开”的对象仅仅是用于计算对各i∈{0,...,N-1}分别独立地进行的式(2)的循环处理(回归处理),没有公开如下的运算方式:协作执行对于不同的i的配对运算。
这不限定于配对,在如下的情况下也相同:在输入N·K个(N≥2,K≥1)有限域GF(pm)的元R(i,k)∈GF(pm)(i∈{0,...,N-1},k∈{0,...,K-1}、p是质数、m是1以上的整数)、将在有限域上对于K个有限域GF(pm)的元R(i,0),...,R(i,K-1)∈GF(pm)〔i∈{0,...,N-1}的运算设为式(4)的情况下,计算式(5)的运算。
e(R(i,0),...,R(i,K-1))                  ...(4)
i=0 N-1e(R(i,0),...,R(i,K-1))         ...(5)
图1是用于说明用于计算式(5)的以往方法的概念图。图1是N=6,i=0,...,5时的例子。
如图1所例示,在通过以往方法计算式(5)的情况下,对各i分别独立地执行由有限域GF(pm)运算或扩散域GF(pm)运算构成的多个运算(虚线所包围的运算)。然后,在扩散域GF(pm)上对通过这些运算关于各i分别独立地得到的运算结果e(R(i,0),...,R(i,K-1))进行相乘,从而得到式(5)的运算结果。
但是,存在如下的空间:通过考虑对于不同的i的式(4)的运算的协作方法,从而能够进一步有效地对式(5)的运算进行运算。
本发明鉴于这样的观点而完成,其目的在于,提供如下的技术:有效地对将有限域上的对于K个有限域GF(pm)的元R(i,0),...,R(i,K-1)∈GF(pm)的运算设为e(R(i,0),...,R(i,K-1))的情况下的运算∏i=0 N-1e(R(i,0),...,R(i,K-1))进行运算。
用于解决课题的手段
在本发明中,输入N·K个(N≥2,K≥1)有限域GF(pm)的元R(i,k)∈GF(pm)[i∈{0,...,N-1},k∈{0,...,K-1},p是质数,m是1以上的整数],有限域运算单元进行将有限域上对于K个有限域GF(pm)的元R(i,0),...,R(i,K-1)∈GF(pm)的运算设为e(R(i,0),...,R(i,K-1))的情况下的运算∏i=0 N-1e(R(i,0),...,R(i,K-1)),并输出该运算结果。
上述有限域上的运算e(R(i,0),...,R(i,K-1))分别在一部分中包括有限域GF(pm)的d次扩散域GF(pd·m)(d≥2)上的扩散域运算。该扩散域运算是,将依赖于所输入的1个以上的有限域GF(pm)的元R(i,k)∈{R(i,0),...,R(i,K-1)}的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i,k)∈{R(i,0),...,R(i,K-1)}映射到表示d次扩散域GF(pd·m)的元的多项式poly(R(i,0),...,R(i,K-1))∈GF(pd·m)的运算。其中,多项式poly(R(i,0),...,R(i,K-1))∈GF(pd·m)是项数d的多项式,并且是其中一部分项h∈{0,...,d-1}的系数ah被设为依赖于1个以上的有限域GF(pm)的元R(i,k)的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i,k)、预先决定的一部分项r∈{0,...,d-1}(r≠h)的系数ar预先被设为0∈GF(pm)的多项式。即,该多项式poly(R(i,0),...,R(i,K-1))∈GF(pd·m)的至少一部分系数必然成为0。
此外,上述有限域运算单元的第一运算单元对任意的i1∈{0,...,N-1}输入依赖于1个以上的有限域GF(pm)的元R(i1,k)的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i1,k),进行对其的上述扩散域运算,并输出由此得到的多项式poly(R(i1,0),...,R(i1,K-1))∈GF(pd·m)。上述有限域运算单元的第二运算单元对任意的i2∈{0,...,N-1}(i2≠i1)输入依赖于1个以上的有限域GF(pm)的元R(i2,k)的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i2,k),进行对其的上述扩散域运算,并输出由此得到的多项式poly(R(i2,0),...,R(i2,K-1))∈GF(pd·m)。然后,上述有限域运算单元的第三运算单元被输入多项式poly(R(i1,0),...,R(i1,K-1))和多项式poly(R(i2,0),...,R(i2,K-1)),并计算这些多项式的积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))∈GF(pd·m),并输出该积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))∈GF(pd·m)。
然后,将由集合{0,...,N-1}所包含的L个[L是偶数]互相不同的多个元构成的子集合的各元分别各选择一次作为i1或i2,分别对所选择的i1和i2的组执行一次由第一运算单元和第二运算单元和第三运算单元进行的处理,从而执行包括分别与L/2个所述组对应的上述处理的循环处理,并且使用通过各自的处理而得到的积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))来计算∏i=0 N-1poly(R(i,0),...,R(i,K-1))∈GF(pd·m)。
如上所述,各个多项式poly(R(i1,0),...,R(i1,K-1))∈GF(pd·m)和多项式poly(R(i2,0),...,R(i2,K-1))∈GF(pd·m)的至少一部分系数必然成为0。通过先计算这样的多项式之间的积,从而不需要进行对于系数为0的运算,削减积的运算量。
发明效果
在本发明中,能够有效地对将有限域上的对于K个有限域GF(pm)的元R(i,0),...,R(i,K-1)∈GF(pm)的运算设为e(R(i,0),...,R(i,K-1))的情况下的运算∏i=0 N-1e(R(i,0),...,R(i,K-1))进行运算。
附图说明
图1是用于说明用于计算式(5)的以往方法的概念图。
图2A是用于说明本方式的有限域运算装置的基本结构的方框图。图2B是用于说明有限域运算单元所包括的四个GF(d·m)运算单元的结构的方框图。
图3是用于说明实施方式的有限域运算装置的处理的概要的图。
图4是用于说明运算单元的运算的特征的图。
图5是用于说明第一实施方式的有限域运算单元的基本结构的方框图。
图6是用于说明第一实施方式的有限域运算单元的基本结构的方框图。
图7是用于说明第一实施方式的处理的图。
图8是用于说明第一实施方式的处理的图。
图9是用于说明第一实施方式的处理的图。
图10是用于说明第一实施方式的处理的图。
图11是用于例示N为5以上的奇数时的处理的图。
图12是用于说明第二实施方式的有限域运算单元的基本结构的方框图。
图13是用于说明第二实施方式的有限域运算单元的基本结构的方框图。
图14是用于说明第二实施方式的处理的图。
图15是用于说明第二实施方式的处理的图。
图16是用于例示N为5以上的奇数时的处理的图。
图17是用于说明第三实施方式的有限域运算单元的基本结构的方框图。
图18是用于说明第三实施方式的有限域运算单元的基本结构的方框图。
图19是用于说明第三实施方式的处理的图。
图20是用于说明第三实施方式的处理的图。
具体实施方式
以下,参照附图来说明本方式的实施方式。
【定义】
首先,对在本方式中使用的用语和符号进行定义。
p:p表示正的质数。p的具体例是2或3等。
m:m表示1以上的整数。m的具体例是奇数或3以上的质数,在密码技术中,使用m=97,167,193,239,353,509等的情况较多。
d:d表示2以上的整数。
L:L表示正的偶数。
N:N表示2以上的整数。
K:K表示1以上的整数。
i:i表示集合{0,...,N-1}的元素。
k:k表示集合{0,...,K-1}的元素。
GF(p):GF(p)表示位数(元素数目)p的有限域。由于位数p为质数,因此GF(p)是质数域。有限域GF(p)例如能够由将p设为除数的式(6)的余数构成。此外,有限域GF(p)上的运算例如能够容易由将p设为除数的余数运算构成。例如,能够通过(β·γ)mod p来实现有限域GF(p)上的积β·γ∈GF(p),能够通过(β+γ)mod p来实现有限域GF(p)上的加算β+γ∈GF(p)。
βmod p    ...(6)
GF(pm):在m≥2的情况下,GF(pm)表示将有限域GF(p)扩散了m次的位数pm的扩散域。在m=1的情况下,GF(pm)表示成为GF(pm)=GF(p)的质数域。
另外,将有限域GF(p)扩散了m次的扩散域GF(pm)能够由多项式构成,该多项式是将以有限域GF(p)作为系数的不可约多项式的根设为不定元、将有限域GF(p)的元设为系数的项数m的一个变量或者多个变量的多项式。例如,在通过一个变量多项式来构成扩散域GF(pm)的情况下,扩散域GF(pm)是式(7)的多项式,该多项式将以有限域GF(p)作为系数的m次不可约多项式ipoly(ω)=0的根设为ω∈GF(pm),将有限域GF(p)的元设为κ0,...,κm-1∈GF(p)。此外,将有限域GF(p)的元映射到扩散域GF(pm)的元的具体的映射例子是distortion映射。其中,“系数”是也包括常数项的系数的概念。
κ01·ω+...+κm-1·ωm-1∈GF(pm)    ...(7)
此外,扩散域GF(pm)上的加算能够通过表示扩散域GF(pm)的多项式之间的加算来实现。其中,该多项式之间的加算中的系数之间的加算成为有限域GF(p)上的加算。例如,κ01·ω+...+κm-1·ωm-1∈GF(pm)与v0+v1·ω+...+vm-1·ωm-1∈GF(pm)(v0,...,vm-1∈GF(p))的加算结果成为{(κ0+v0)+(κ1+v1)·ω+...+(κm-1+vm-1)·ωm-1}∈GF(pm)。其中,(κ0+v0)∈GF(p),(κ1+v1)∈GF(p),...,(κm-1+vm-1)∈GF(p)。
此外,扩散域GF(pm)上的乘算能够通过取得余数来实现,该余数是对表示扩散域GF(pm)的多项式之间的乘算结果、将以该多项式的不定元为根的不可约多项式设为除数的余数。例如,κ01·ω+...+κm-1·ωm-1∈GF(pm)与v0+v1·ω+...+vm-1·ωm-1∈GF(pm)的乘算能够通过对(κ01·ω+...+κm-1·ωm-1)·(v0+v1·ω+...+vm-1·ωm-1)取得将不可约多项式ipoly(ω)设为除数的余数来实现。具体地,将ipoly(ω)=0代入到(κ01·ω+...+κm-1·ωm-1)·(v0+v1·ω+...+vm-1·ωm-1)而得到的m次以下的多项式成为扩散域GF(pm)上的积。
GF(pd·m):GF(pd·m)是将有限域GF(pm)扩散了d次的d次扩散域。有限域GF(pm)的d次扩散域GF(pd·m)能够由将以有限域GF(pm)作为系数的不可约多项式的根设为不定元、将有限域GF(pm)的元设为系数的项数d的一个变量或者多个变量的多项式构成。在上述中,由于表示了通过一个变量多项式来构成扩散域的例子,在这里表示通过两个变量多项式来构成6次扩散域的例子。
如果将以有限域GF(pm)作为系数的不可约多项式ipoly1(σ)=0的根设为σ∈GF(p6m)、将以有限域GF(pm)作为系数的ipoly2(ρ)=0的根设为ρ∈GF(p6m),则有限域GF(p6m)的元能够通过将有限域GF(pm)的元作为系数a5,...,a0∈GF(pm)的式(8)的多项式来表现。其中,p=3时的ipoly1(σ)=0的具体例是σ2+1=0,ipoly2(σ)=0的具体例是ρ3-ρ-b=0(b∈{-1,1})。其中,将有限域GF(pm)的元映射到扩散域GF(p6m)的元的具体的映射例子是distortion映射。
a0+a1·ρ+a2·ρ2+a3·σ+a4·ρ·σ+a5·ρ2·σ∈GF(p6m)    ...(8)
此外,d次扩散域GF(pd·m)上的加算能够通过表示d次扩散域GF(pd·m)的多项式之间的加算来实现。其中,该多项式之间的加算中的系数之间的加算成为有限域GF(pm)上的加算。例如,a0+a1·ρ+a2·ρ2+a3·σ+a4·ρ·σ+a5·ρ2·σ∈GF(p6m)与v0+a1·ρ+v2·ρ2+v3·σ+v4·ρ·σ+v5·ρ2·σ∈GF(p6m)(v5,...,v0∈GF(pm))的加算结果是{(a0+v0)+(a1+v1)·ρ+(a2+v2)·ρ2+(a3+v3)·σ+(a4+v4)·ρ·σ+(a5+v5)·ρ2·σ}∈GF(p6m)。其中,(a0+v0)∈GF(pm),(a1+v1)∈GF(pm),...,(a5+v5)∈GF(pm)。
此外,d次扩散域GF(pd·m)上的乘算能够通过对表示d次扩散域GF(p m)的多项式之间的乘算结果取得将以该多项式的不定元为根的不可约多项式设为除数的余数来实现。例如,a0+a1·ρ+a2·ρ2+a3·σ+a4·ρ·σ+a5·ρ2·σ∈GF(p6m)与v0+a1·ρ+v2·ρ2+v3·σ+v4·ρ·σ+v5·ρ2·σ∈GF(p6m)的乘算能够通过对(a0+a1·ρ+a2·ρ2+a3·σ+a4·ρ·σ+a5·ρ2·σ)·(v0+a1·ρ+v2·ρ2+v3·σ+v4·ρ·σ+v5·ρ2·σ)取得将不可约多项式ipoly1(σ)或ipoly2(ρ)设为除数的余数来实现。具体地,将ipoly1(σ)=0或ipoly2(ρ)=0代入到(a0+a1·ρ+a2·ρ2+a3·σ+a4·ρ·σ+a5·ρ2·σ)·(v0+a1·ρ+v2·ρ2+v3·σ+v4·ρ·σ+v5·ρ2·σ)而得到的6次以下的多项式成为扩散域GF(p6m)上的积。
另外,以下说明的各处理中的、多项式的输入和多项式的运算和多项式的输出可以是包括不定元和系数的多项式本身的输入、运算和输出,也可以是由用于确定多项式的系数构成的向量的输入、运算和输出。
R(i,k):R(i,k)表示有限域GF(pm)的元。
E:E表示在有限域GF(pm)上定义的椭圆曲线。被定义成,对由满足仿射(affine)坐标版的式(9)的Weierstrass方程式(其中,A1,A2,A3,A4,A6∈GF(pm))的X,Y∈GF(pm)构成的点(X,Y)的集合附加被称为无限远点的特别的点O的集合。
Y2+A1·X·Y+A3·y=X3+A2·X2+A4·X+A6       ...(9)
Eb:Eb表示在有限域GF(3m)上定义的超特异椭圆曲线。
Y2=X3-X+b(b∈{-1,1})                      ...(10)
e(R(i,0),...,R(i,K-1)):e(R(i,0),...,R(i,K-1))表示在有限域上对于K个有限域GF(pm)的元R(i,0),...,R(i,K-1)∈GF(pm)的运算。K=4时的e(R(i,0),...,R(i,K-1))具体例是,将R(i,0),R(i,1),R(i,2),R(i,3)分别设为在有限域GF(pm)上定义的椭圆曲线E上的两个点P(X1[i],Y1[i])和点Q(X2[i],Y2[i])的各仿射坐标点X1[i],Y1[i],X2[i],Y2[i]∈GF(pm)的配对运算e(P(X1[i],Y1[i]),Q(X2[i],Y2[i]))。此外,配对运算e(P(X1[i],Y1[i]),Q(X2[i],Y2[i]))的具体例子是,Tate配对或ηT配对或改进ηT配对等的秩数(characteristic)3(p=3)的配对运算、或者位数2(p=2)的配对运算。
【概要】
下面,说明本方式的概要。
<结构>
图2A是用于表示本方式的有限域运算装置1的基本结构的方框图。图2B是用于说明有限域运算单元20所包括的四个GF(pd·m)运算单元22-1~4的结构的方框图。
如图2A所例示,本方式的有限域运算装置1具有:输入单元10、有限域运算单元20、以及输出单元30。有限域运算单元20具有:用于进行有限域GF(pm)上的运算的1个以上的GF(pm)运算单元21-1~α11≥1)、用于进行有限域GF(pd·m)上的运算的4个以上的GF(pd·m)运算单元22-1~α22≥4)、控制单元23、以及存储器24。另外,有限域运算装置1通过由具备CPU(中央处理单元)、RAM(随机存取存储器)、ROM(只读存储器)、输入输出接口等的公知的计算机读入规定的程序来构成。即,GF(pm)运算单元21-1~α1、GF(pd·m)运算单元22-1~α2以及控制单元23是由CPU读入规定的程序而构筑的功能单元,存储器24是RAM、高速缓冲存储器、寄存器、硬盘等。此外,有限域运算单元20的至少一部分也可以由集成电路来构成。
<处理>
下面,说明本方式的有限域运算装置1的处理的概要。
图3是用于说明本方式的有限域运算装置1的处理的概要的图。此外,图4是用于说明运算单元22-3的运算的特征的图。其中,图3表示N=6时的一例,图4表示d=6时的一例,但这些并非用于限定本发明。此外,以下不逐一进行说明,但是,在控制单元23的控制下执行在有限域运算装置1中执行的各处理。此外,从各运算单元输出的数据逐一存储在存储器24中。在存储器24中存储的数据根据需要而从运算单元读出,并被利用于该运算单元中的运算。
如果开始进行在有限域运算装置1中的处理,则首先,对其输入单元10输入N·K个有限域GF(pm)的元R(i,k)∈GF(pm),这些元R(i,k)∈GF(pm)被发送到有限域运算单元20。有限域运算单元20进行将在有限域上对于K个有限域GF(pm)的元R(i,0),...,R(i,K-1)∈GF(pm)的运算设为e(R(i,0),...,R(i,K-1))情况下的运算∏i=0 N-1e(R(i,0),...,R(i,K-1)),并将该运算结果发送到输出单元30。输出单元30输出所发送的运算结果。
[运算e(R(i,0),...,R(i,K-1))所包括的扩散域运算]
有限域上的运算e(R(i,0),...,R(i,K-1))分别在一部分中包括有限域GF(pm)的d次扩散域GF(pd·m)(d≥2)上的扩散域运算。该扩散域运算是,将依赖于所输入的1个以上的有限域GF(pm)的元R(i,k)∈{R(i,0),...,R(i,K-1)}的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i,k)∈{R(i,0),...,R(i,K-1)}映射到表示d次扩散域GF(pd·m)的元的多项式poly(R(i,0),...,R(i,K-1))∈GF(pd·m)的运算。即,该扩散域运算是从有限域GF(pm)到d次扩散域GF(pd·m)的映射。
此外,在通过该扩散域运算而得到的多项式poly(R(i,0),...,R(i,K-1))∈GF(pd·m)中,一部分项h∈{0,...,d-1}的系数ah被设为依赖于一个以上的有限域GF(pm)的元R(i,k)的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i,k),预先决定的一部分项r∈{0,...,d-1}(r≠h)的系数ar预先被设为0∈GF(pm)。这里,由于表示d次扩散域GF(pd·m)的元的多项式poly(R(i,0),...,R(i,K-1))∈GF(pd·m)的项数为2以上(d≥2),因此,能够将有限域的元映射到一部分项的系数被预先设为0∈GF(pm)的多项式。
另外,这样的扩散域运算的具体例子是,上述的“改进ηT配对运算算法”在6次扩散域GF(36m)上的运算。即,上述的扩散域运算的具体例是以下的式(11)或式(12)的运算。
f=-y1·u+y2·σ+y1·ρ∈GF(36m)      ...(11)
g=-u2+y1·y2·σ-u·ρ-ρ2∈GF(36m)  ...(12)
另外,这些运算是p=3,d=6,K=4情况下的例子,在该运算中,将R(i,0),R(i,1),R(i,2),R(i,3)分别设为超特异椭圆曲线Eb(式(10))上的两个点P(X1,Y1)和点Q(X2,Y2)的各仿射坐标点X1,Y1,X2,Y2∈GF(3m),将该各仿射坐标点X1,Y1,X2,Y2或者其像分别设为x1,y1,x2,y2∈GF(3m),设为u=x1+x2+c∈GF(3m),将不可约多项式设为σ2+1=0和ρ3-ρ-b=0。
如上所述,表示有限域GF(pm)的6次扩散域GF(p6m)的元的多项式的项数最大值是6,在多项式“f=-y1·u+y2·σ+y1·ρ∈GF(36m)”中,不定元p2,ρ·σ,ρ2·σ∈GF(p6m)的项的系数预先被设为0,在多项式“g=-u2+y1·y2·σ-u·ρ-ρ2∈GF(36m)”中,不定元ρ·σ,ρ2·σ∈GF(ρ6m)的项的系数预先被设为0(参照式(8))。即,能够如以下的式(13)、(14)那样表现式(11)(12)。
f=-y1·u+y1·ρ+0·ρ2+y2·σ+0·ρ·σ+0·ρ2·σ∈GF(36m)    ...(13)
g=-u2-u·ρ-ρ2+y1·y2·σ+0·ρ·σ+0·ρ2·σ∈GF(36m)       ...(14)
此外,如下所示的distortion映射也是具有上述特征的扩散域运算的一例。
-x 2+ρ∈GF(36m)  ...(15)
y2·σ∈GF(36m)   ...(16)
能够如以下的式(17)(18)那样表现式(15)(16)。
-x2+ρ+0·ρ2+0·σ+0·ρ·σ+0·ρ2·σ∈GF(p6m)    ...(17)
0+0·ρ+0·ρ2+y2·σ+0·ρ·σ+0·ρ2·σ∈GF(p6m)  ...(18)
在将位数pm的有限域GF(pm)的元映射到位数更大的位数pd·m(d≥2)的d次扩散域GF(3d·m)的运算中,同样的例子存在多个。
[有限域运算单元20的运算]
上述的运算e(R(i,0),...,R(i,K-1))所包括的扩散域运算由有限域运算单元20所包括的图2B所示的GF(pd·m)运算单元22来执行。
首先,对该GF(pd·m)运算单元22的运算单元22-1(第一运算单元)输入依赖于1个以上的有限域GF(pm)的元R(i1,k)(i1∈{0,...,N-1})的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i1,k)。其中,“依赖于1个以上的有限域GF(pm)的元R(i1,k)的有限域GF(pm)上的像”是由有限域运算单元20的任一GF(pm)运算单元21进行的运算结果。该具体例是,上述的“改进ηT配对运算算法”在有限域GF(3m)上的运算结果。即,“依赖于1个以上的有限域GF(pm)的元R(i1,k)的有限域GF(pm)上的像”的具体例是以下的运算结果。
y1=-y1∈GF(3m)         ...(19)
u=x1+x2+b∈GF(3m)      ...(20)
u=x1+x2+c∈GF(3m)      ...(21)
y1=-y1∈GF(3m)         ...(22)
x2=x2 9∈GF(3m)         ...(23)
y2=y2 9∈GF(3m)         ...(24)
其中,这些运算结果是,在将R(i,0),R(i,1),R(i,2),R(i,3)分别设为超特异椭圆曲线Eb(式(10))上的两个点P(X1,Y1)和点Q(X2,Y2)的各仿射坐标点X1,Y1,X 2,Y 2∈GF(3m)、将该各仿射坐标点X1,Y1,X2,Y2或者其像分别设为x1,y1,x2,y2∈GF(3m)情况下的例子。同样的有限域GF(pm)上的运算存在多个。
运算单元22-1进行对于依赖于1个以上的有限域GF(pm)的元R(i1,k)(i1∈{0,...,N-1})的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i1,k)的、上述的扩散域运算,并输出通过该运算而得到的式(25)的多项式。
poly(R(i1,0),...,R(i1,K-1))∈GF(pd·m)       ...(25)
接着,对该GF(pm)运算单元22的运算单元22-2(第二运算单元)输入依赖于1个以上的有限域GF(pm)的元R(i2,k)(i2∈{0,...,N-1}(i2≠i1))的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i2,k)。其中,“依赖于1个以上的有限域GF(pm)的元R(i2,k)的有限域GF(pm)上的像”是由有限域运算单元20的任一GF(pm)运算单元21进行的运算结果。运算单元22-2进行对其的上述的扩散域运算,并输出通过该运算而得到的式(26)的多项式。
poly(R(i2,0),...,R(i2,K-1))∈GF(pd·m)       ...(26)
接着,对该GF(pd·m)运算单元22的运算单元22-3(第三运算单元)输入上述的多项式poly(R(i1,0),...,R(i1,K-1))和多项式poly(R(i2,0),...,R(i2,K-1))。运算单元22-3求这些多项式的式(27)的积,并输出该积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))∈GF(pd·m)。
poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))∈GF(pd·m)...(27)
另外,本方式的运算单元22-3求积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1)),而不进行将多项式poly(R(i1,0),...,R(i1,K-1))的预先被设为0∈GF(pm)的项、以及/或者多项式poly(R(i2,0),...,R(i2,K-1))的预先被设为0∈GF(pm)的项作为被运算符的运算。在图4的例子中,从运算单元22-1输出poly(R(i1,0),...,R(i1,K-1))=a0[i1]+a1[i1]·ρ+a2[i1]·ρ2+a3[i1]·σ+0·ρ·σ+0·ρ2·σ,从运算单元22-2输出poly(R(i2,0),...,R(i2,K-1))=a0[i2]+a1[i2]·ρ+a2[i2]·ρ2+a3[i2]·σ+0·ρ·σ+0·ρ2·σ,运算单元22-3求这些多项式在6次扩散域GF(p6m)上的积。在该例子中,各多项式的不定元ρ·σ和ρ2·σ的系数被预先决定为0,不进行将不定元ρ·σ和ρ2·σ的系数作为被运算符的运算。如此,在本方式中,通过在一部分项的系数被预先设定为0的多项式之间进行乘算,从而削减运算量。
控制单元23分别将由集合{0,...,N-1}的L个[L是偶数]不同的元构成的子集合的各元分别设为一次i1或者i2,并且,一边改变i1和i2,一边使执行循环处理(横的循环),该循环处理执行L/2次运算单元22-1~22-3的一连串处理。换而言之,控制单元23每一次作为i1或i2分别选择由集合{0,...,N-1}所包含的L个[L是偶数]互相不同的多个元构成的子集合的各元,并使分别对所选择的i1和i2的组执行一次运算单元22-1~22-3的一连串的处理,使执行包括分别与L/2个上述组(i1,i2)对应的上述一连串的处理的循环处理。此外,控制单元23根据需要使执行多次循环处理(纵的循环),该循环处理执行L/2次该一连串处理。其中,在N是偶数、L=N、上述子集合是集合{0,...,N-1}的情况下,本方式的效果变得最大。
在图3的例子中,执行多次(j=1,2,...)循环处理(横的循环),该循环处理由与i=0和i=1对应的该一连串的处理(步骤S11-j)、与i=2和i=3对应的该一连串的处理(步骤S12-j)、与i=4和i=5对应的该一连串的处理(步骤S13-j)构成。
通过各自的上述一连串处理而从运算单元22-3输出的积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))被输入到运算单元22-4(第四运算单元)。运算单元22-4使用该积来求式(28),并输出该∏i=0 N-1poly(R(i,0),...,R(i,K-1))。例如,在N≥4时,运算单元22-4使用通过各自的上述一连串处理而从运算单元22-3输出的积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值,求∏i=0 N-1poly(R(i,0),...,R(i,K-1))∈GF(pd·m)。
i=0 N-1poly(R(i,0),...,R(i,K-1))∈GF(pd·m)    ...(28)
另外,运算单元22-4也可以将通过各自的上述一连串处理而从运算单元22-3输出的积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))逐一存储在存储器24,并在所有的该积的计算结束之后,统一计算这些积的乘算值。但是,从节约存储器24的容量的观点出发,期望运算单元22-4在每次执行了上述一连串的处理时,对前一个乘算值(初始值为乘法单位元1)乘上从运算单元22-3输出的积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1)),从而求乘算值。换而言之,期望在每次执行了上述一连串的处理时,更新之前得到的积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值。
【第一实施方式】
下面,说明本发明的第一实施方式。
本方式是将本发明应用到改进ηT配对运算算法的g的运算部分的例子。
即,在本方式中,K=4、p=3、d=6,m是1以上的奇数,N是4以上的偶数,L=N,有限域GF(pm)的元R(i,0),R(i,1),R(i,2),R(i,3)分别是在有限域GF(pm)上定义的椭圆曲线E上的两个点P(X1[i],Y1[i])和点Q(X2[i],Y2[i])的各仿射坐标点X1[i],Y1[i],X2[i],Y2[i]∈GF(pm),运算e(R(i,0),...,R(i,K-1))是配对运算e(P(X1[i],Y1[i]),Q(X2[i],Y2[i])),运算∏i=0 N-1e(R(i,0),...,R(i,K-1))是多个配对运算∏i=0 N-1e(P(X1[i],Y1[i]),Q(X2[i],Y2[i]))。此外,在本方式中,作为椭圆曲线而使用式(10)的超特异椭圆曲线Eb(可以是b=-1,也可以是b=1)。此外,本方式的扩散域运算是求表示有限域GF(3m)的6次扩散域GF(36m)的元的式(29)的多项式的运算,其中,将对输入单元输入的各仿射坐标点X1[i],Y1[i],X2[i],Y2[i]或者其像分别设为x1[i],y1[i],x2[i],y2[i],设为u[i]=x1[i]+x2[i]+c∈GF(3m),将以有限域GF(3m)的元作为系数的不可约多项式σ2+1=0的根设为不定元σ,将不可约多项式ρ3-ρ-b=0的根设为不定元ρ。
g[i]=-{u[i]}2+y1[i]·y2[i]·σ-u[i]·ρ-ρ2∈GF(36m)    ...(29)
<结构>
图5和图6是用于说明第一实施方式的有限域运算单元120的基本结构的方框图。
在第一实施方式的有限域运算装置中,将图2A所例示的有限域运算单元20置换为图5和图6的有限域运算单元120。以下,仅说明有限域运算单元120的结构。
如图5和图6所例示,本方式的有限域运算单元120具有:用于进行有限域GF(3m)上的运算的GF(3m)运算单元121-1~4、用于进行有限域GF(3m)的6次扩散域GF(36m)上的运算的GF(36m)运算单元122-1~9、控制单元23、存储器124、以及用于进行有限域GF(3)上的运算的GF(3)运算单元125。
另外,有限域运算装置120是具有具备了CPU、RAM、ROM等的公知或者专用的计算机和特别的程序的特别的装置。即,GF(3m)运算单元121-1~4、GF(36m)运算单元122-1~9、GF(3)运算单元125以及控制单元123是由CPU读入规定的程序而构筑的功能单元,存储器124是RAM、高速缓冲存储器、寄存器、硬盘等。此外,有限域运算单元120的至少一部分也可以由集成电路来构成。
<处理>
图7至图10是用于说明第一实施方式的处理的图。以下,使用这些图来说明本方式的处理。
首先,对输入单元10(图2A)输入构成多个配对运算∏i=0 N-1e(P(X1[i],Y1[i]),Q(X2[i],Y2[i]))的各配对运算e(P(X1[i],Y1[i]),Q(X2[i],Y2[i]))的输入值、即超特异椭圆曲线Eb上的两个点P(X1[i],Y1[i])和点Q(X2[i],Y2[i])的各仿射坐标点X1[i],Y1[i],X2[i],Y2[i]∈GF(3m)(i∈{0,...,N-1}),并存储在有限域运算单元120(图5和图6)的存储器124。以下,将在存储器124中存储的X1[i],Y1[i],X2[i],Y2[i]∈GF(3m)表述为x1[i],y1[i],x2[i],y2[i]∈GF(3m)(步骤S101)。
[b=1时的处理(S102~S105)]
在使用b=1的超特异椭圆曲线Eb的情况下,执行步骤S102~S105的处理。在使用b=-1的超特异椭圆曲线Eb的情况下,不执行步骤S102~S105的处理。
首先,控制单元23设定为i=0,并将该设定内容存储在存储器124(步骤S102)。接着,GF(3m)运算单元121-1从存储器124读取y1[i],进行有限域GF(3m)上的式(30)的运算,并将该运算结果作为新的y1[i]而存储在存储器124(步骤S103)。
y1[i]={-y1[i]}∈GF(3m)         ...(30)
接着,控制单元123判定是否为i=N-1(步骤S104)。这里,如果不是i=N-1,则控制单元123将i+1设定为新的i,并将该设定内容存储在存储器124后将处理返回到步骤S103(步骤S105)。另一方面,如果是i=N-1,则结束b=1时的处理(S102~S105)(b=1时的处理(S102~S105)的说明结束)。
接着,GF(36m)运算单元122-7(构成第五运算单元)从存储器124读取x1[0],y1[0],x2[0],y2[0]∈GF(3m),进行6次扩散域GF(36m)上的式(31)的运算,并将该运算结果f∈GF(36m)存储在存储器124(步骤S106)。
f=-y1[0]·(x1[0]+x2[0]+b)+y2[0]·σ+y1[0]·ρ∈GF(36m)    ...(31)
接着,GF(36m)运算单元122-7从存储器124读取x1[1],y1[1],x2[1],y2[1]∈GF(3m),进行6次扩散域GF(36m)上的式(32)的运算,并将该运算结果f′∈GF(36m)存储在存储器124。然后,GF(36m)运算单元122-8从存储器124读取运算结果f和f′,进行6次扩散域GF(36m)上的式(33)的运算,并将该运算结果作为新的f∈GF(36m)而存储在存储器124(步骤S107)。
f′=-y1[1]·(x1[1]+x2[1]+b)+y2[1]·σ+y1[1]·ρ∈GF(36m)    ...(32)
f=f·f′∈GF(36m)    ...(33)
接着,控制单元123设定为i=2,并将该设定内容存储在存储器124(步骤S108)。
接着,GF(36m)运算单元122-7从存储器124读取x1[i],y1[i],x2[i],y2[i]∈GF(3m),进行6次扩散域GF(36m)上的式(34)的运算,并将该运算结果作为新的f′∈GF(36m)而存储在存储器124(步骤S109)。
f′=-y1[i]·(x1[i]+x2[i]+b)+y2[i]·σ+y1[i]·ρ∈GF(36m)    ...(34)
接着,GF(36m)运算单元122-8(构成第五运算单元)从存储器124读取运算结果f和f′,进行6次扩散域GF(36m)上的式(35)的运算,并将该运算结果作为新的f∈GF(36m)而存储在存储器124(步骤S110)。
f=f·f′∈GF(36m)    ...(35)
接着,控制单元123判定是否为i=N-1(步骤S111)。这里,如果不是i=N-1,则控制单元123将i+1设定为新的i,并将该设定内容存储在存储器124后将处理返回到步骤S109(步骤S113)。另一方面,如果是i=N-1,则控制单元123将b设为c的初始值(c=b),并将该设定内容存储在存储器124(步骤S112)。
另外,到在步骤S111中判定为i=N-1为止在步骤S106~S110中执行的处理相当于如下处理:在b=-1的情况下设为x1[i]=X1[i],y1[i]=Y1[i],x2[i]=X2[i],y2[i]=Y2[i],将b=1的情况下设为x1[i]=X1[i],y1[i]=-Y1[i],x2[i]=X2[i],y2[i]=Y2[i],进行f=∏i=0 N-1(-y1[i]·(x1[i]+x2[i]+b)+y2[i]·σ+y1[i]·ρ)∈GF(36m)的运算,并输出该f。
接着,控制单元123设定为j=0,并将该设定内容存储在存储器124(步骤S114)。然后,控制单元123设定为i=0,并将该设定内容存储在存储器124(步骤S115)。
接着,GF(3m)运算单元121-2从存储器124读取x1[i],x2[i],c,在有限域GF(3m)上进行式(36)的运算,并将该运算结果u[i]存储在存储器124(步骤S116)。
u[i]=x1[i]+x2[i]+c∈GF(3m)    ...(36)
接着,控制单元123判定是否为i=N-1(步骤S117)。这里,如果不是i=N-1,则控制单元123将i+1设定为新的i,并将该设定内容存储在存储器124后将处理返回到步骤S116(步骤S118)。
另一方面,如果是i=N-1,GF(36m)运算单元122-1(第一运算单元)从存储器124读取y1[0],y2[0],u[0]∈GF(3m)(i1=0),进行式(37)的运算,并将该运算结果g[0]∈GF(36m)存储在存储器124(步骤S119)。
g[0]=-{u[0]}2+y1[0]·y2[0]·σ-u[0]·ρ-ρ2∈GF(36m)    ...(37)
此外,GF(36m)运算单元122-2(第二运算单元)从存储器124读取y1[1],y2[1],u[1]∈GF(3m)(i2=1),进行式(38)的运算,并将该运算结果g[1]∈GF(36m)存储在存储器124(步骤S120)。
g[1]=-{u[1]}2+y1[1]·y2[1]·σ-u[1]·ρ-ρ2∈GF(36m)    ...(38)
接着,GF(36m)运算单元122-3(第三运算单元)从存储器124读取g[0]和g[1]∈GF(36m),进行式(39)的运算,并将该运算结果g∈GF(36m)存储在存储器124(步骤S121)。其中,GF(36m)运算单元122-3求积g[0]·g[1]∈GF(36m),而不进行将g[0]的预先被设为0∈GF(pm)的项和/或g[1]的预先被设为0∈GF(pm)的项作为被运算符的运算。
g=g[0]·g[1]∈GF(36m)    ...(39)
接着,GF(3m)运算单元121-1从存储器124读取y1[0],进行有限域GF(3m)上的式(40)的运算,并将该运算结果作为新的y1[0]而存储在存储器124(步骤S122)。
y1[0]={-y1[0]}∈GF(3m)    ...(40)
接着,GF(3m)运算单元121-3从存储器124读取x2[0],进行有限域GF(3m)上的式(41)的运算,并将该运算结果作为新的x2[0]而存储在存储器123(步骤S123)。另外,该运算例如使用Frobenius映射来进行(对以下的3χ乘算(χ是1以上的整数)也相同)。
x2[0]={x2[0]}9∈GF(3m)    ...(41)
接着,运算单元121-3从存储器124读取y2[0],进行有限域GF(3m)上的式(42)的运算,并将该运算结果作为新的y2[0]而存储在存储器123(步骤S124)。
y2[0]={y2[0]}9∈GF(3m)    ...(42)
接着,GF(3m)运算单元121-1从存储器124读取y1[1],进行有限域GF(3m)上的式(43)的运算,并将该运算结果作为新的y1[1]而存储在存储器124(步骤S125)。
y1[1]={-y1[1]}∈GF(3m)    ...(43)
接着,GF(3m)运算单元121-3从存储器124读取x2[1],进行有限域GF(3m)上的式(44)的运算,并将该运算结果作为新的x2[1]而存储在存储器123(步骤S126)。
x2[1]={x2[1]}9∈GF(3m)    ...(44)
接着,GF(3m)运算单元121-3从存储器124读取y2[1],进行有限域GF(3m)上的式(45)的运算,并将该运算结果作为新的y2[1]而存储在存储器123(步骤S127)。
y2[1]={y2[1]}9∈GF(3m)    ...(45)
接着,控制单元123设定为i=2,并将该设定内容存储在存储器124(步骤S128)。
接着,GF(36m)运算单元122-1(第一运算单元)从存储器124读取y1[i],y2[i],u[i]∈GF(3m)(i1=i),进行式(46)的运算,并将该运算结果g[i]∈GF(36m)存储在存储器124(步骤S129)。
g[i]=-{u[i]}2+y1[i]·y2[i]·σ-u[i]·ρ-ρ2∈GF(36m)    ...(46)
接着,GF(36m)运算单元122-2(第二运算单元)从存储器124读取y1[i+1],y2[i+1],u[i+1]∈GF(3m)(i2=i+1),进行式(47)的运算,并将该运算结果g[i+1]∈GF(36m)存储在存储器124(步骤S130)。
g[i+1]=-{u[i+1]}2+y1[i+1]·y2[i+1]·σ-u[i+1]·ρ-ρ2∈GF(36m) ...(47)
接着,GF(36m)运算单元122-3(第三运算单元)从存储器124读取g[i]和g[i+1]∈GF(36m),进行式(48)的运算,并将该运算结果g[i]·g[i+1]∈GF(36m)存储在存储器124(步骤S131)。其中,GF(36m)运算单元122-3求积g[i]·g[i+1]∈GF(36m),而不进行将g[i]的预先被设为0∈GF(pm)的项和/或g[i+1]的预先被设为0∈GF(pm)的项作为被运算符的运算。
g[i]·g[i+1]∈GF(36m)    ...(48)
接着,GF(36m)运算单元122-3(第四运算单元)从存储器124读取g,g[i]·g[i+1]∈GF(36m),进行式(49)的运算,并将该运算结果作为新的g∈GF(36m)而存储在存储器124(步骤S132)。
g=g·g[i]·g[i+1]∈GF(36m)    ...(49)
如此,本方式的GF(36m)运算单元122-3(第四运算单元)在每次执行GF(36m)运算单元122-1(第一运算单元)、GF(36m)运算单元122-2(第二运算单元)和GF(36m)运算单元122-3(第三运算单元)的“一连串的处理”时,求从GF(36m)运算单元122-3(第三运算单元)输出的积g[i]·g[i+1]的乘算值。如上所述,由此能够节约存储器124的容量。
接着,GF(3m)运算单元121-1从存储器124读取y1[i],进行有限域GF(3m)上的式(50)的运算,并将该运算结果作为新的y1[i]而存储在存储器124(步骤S133)。
y1[i]={-y1[i]}∈GF(3m)    ...(50)
接着,GF(3m)运算单元121-3从存储器124读取x2[i],进行有限域GF(3m)上的式(51)的运算,并将该运算结果作为新的x2[i]而存储在存储器123(步骤S134)。
x2[i]={x2[i]}9∈GF(3m)    ...(51)
接着,运算单元121-3从存储器124读取y2[i],进行有限域GF(3m)上的式(52)的运算,并将该运算结果作为新的y2[i]而存储在存储器123(步骤S135)。
y2[i]={y2[i]}9∈GF(3m)    ...(52)
接着,GF(3m)运算单元121-1从存储器124读取y1[i+1],进行有限域GF(3m)上的式(53)的运算,并将该运算结果作为新的y1[i+1]而存储在存储器124(步骤S136)。
y1[i+1]={-y1[i+1]}∈GF(3m)...(53)
接着,GF(3m)运算单元121-3从存储器124读取x2[i+1],进行有限域GF(3m)上的式(54)的运算,并将该运算结果作为新的x2[i+1]而存储在存储器123(步骤S137)。
x2[i+1]={x2[i+1]}9∈GF(3m)...(54)
接着,GF(3m)运算单元121-3从存储器124读取y2[i+1],进行有限域GF(3m)上的式(55)的运算,并将该运算结果作为新的y2[i+1]而存储在存储器123(步骤S138)。
y2[i+1]={y2[i+1]}9∈GF(3m)...(55)
接着,控制单元123判定是否为i=N-2(步骤S139)。这里,如果不是i=N-2,则控制单元123将i+2设定为新的i,并将该设定内容存储在存储器124后将处理返回到步骤S129(步骤S140)。
另一方面,如果是i=N-2,则GF(3)运算单元125从存储器124读出c,进行式(56)的运算,并将该运算结果作为新的c存储在存储器124(步骤S141)。
c=(c-b)mod 3    ...(56)
接着,GF(36m)运算单元122-5(第十运算单元)从存储器124读取f,g,进行式(57)的运算,并将该运算结果作为新的f存储在存储器124(步骤S142)。
f=f·g∈GF(36m) ...(57)
接着,GF(36m)运算单元122-5(第十一运算单元)从存储器124读取f,进行式(58)的运算,并将该运算结果作为新的f存储在存储器124(步骤S143)。
f=f3∈GF(36m)   ...(58)
另外,步骤S141~S143的处理在每次执行“循环处理(步骤S115~S140)”时执行,在该“循环处理”中执行N/2次GF(36m)运算单元122-1(第一运算单元)和GF(36m)运算单元122-2(第二运算单元)和GF(36m)运算单元122-3(第三运算单元)的“一连串的处理”。
接着,控制单元123判定是否为j=(m-1)/2(步骤S144)。这里,如果不是j=(m-1)/2,则控制单元123将j+1设定为新的j,并将该设定内容存储在存储器124后将处理返回到步骤S115(步骤S145)。另一方面,如果是j=(m-1)/2,则“循环处理(步骤S115~S140)”结束。即,在m=1的情况下,执行N/2次上述“一连串的处理”的“循环处理(步骤S115~S140)”仅执行一次,在m≥3的情况下,执行N/2次上述“一连串的处理”的“循环处理(步骤S115~S140)”执行多次。
如果该“循环处理”结束,则GF(36m)运算单元122-9从存储器124读取f,进行式(59)的运算(步骤S146),并输出该运算结果output∈GF(36m)(步骤S147)。该运算结果output∈GF(36m)是多个配对运算∏i=0 N-1e(P(X1[i],Y1[i]),Q(X2[i],Y2[i]))的运算结果。然后,该运算结果output∈GF(36m)从输出单元30(图2A)输出。
output=ffinalpow∈GF(36m)    ...(59)
〔finalpow=(33m-1)(3m+1)(3m-3(m+1)/2+1)〕
<第一实施方式的特征>
如以上说明的那样,在本方式中,求分别用于计算构成多个配对运算∏i=0 N-1e(P(X1[i],Y1[i]),Q(X2[i],Y2[i]))的各配对运算e(P(X1[i],Y1[i]),Q(X2[i],Y2[i]))的、式(60)(61)的多项式,求这些多项式的积式(62),并使用这些积来计算式(63)(步骤S119~S121,步骤S129~S132)。
g[i]=-{u[i]}2+y1[i]·y2[i]·σ-u[i]·ρ-ρ2∈GF(36m)    ...(60)
g[i+1]=-{u[i+1]}2+y1[i+1]·y2[i+1]·σ-u[i+1]·ρ-ρ2∈GF(36m)  ...(61)
g[i]·g[i+1]∈GF(36m)      ...(62)
g=∏i=0 N-1g[i]∈GF(36m)  ...(63)
这里,在用于表示6次扩散域GF(36m)的式(60)(61)的多项式中,不定元ρ·σ,ρ2·σ∈GF(p6m)的项的系数预先被设为0。通过先计算这样的多项式之间的积,从而不需要进行系数预先被设为0的项的运算,因此能够削减乘算次数。
[本方式的算法(b=1时)的乘算数]
以下,同时记载本方式的算法和乘算数。其中,《θM》表示θ次的乘算,《θC》表示θ次的立方运算。
INPUT:x1[i],y1[i],x2[i],y2[i]∈GF(3m)
for i=0 to N-1
y1[i]={-y1[i]}
end for
f=-y1[0]·(x1[0]+x2[0]+b)+y2[0]·σ+y1[0]·ρ《1M》
f′=-y1[1]·(x1[1]+x2[1]+b)+y2[1]·σ+y1[1]·ρ《1M》
f=f·f′  《6M》
for i=2 to N-1
f′=-y1[i]·(x1[i]+x2[i]+b)+y2[i]·σ+y1[i]·ρ《1M》
f=f·f′  《15M》
end for
c=b
for j=0 to(m-1)/2
for i=0 to N-1
u[i]=x1[i]+x2[i]+c
end for
g[0]=-{u[0]}2+y1[0]·y2[0]·σ-u[0]·ρ-ρ2《2M》  ...(64)
g[1]=-{u[1]}2+y1[1]·y2[1]·σ-u[1]·ρ-ρ2《2M》  ...(65)
g=g[0]·g[1]《6M》...(66)
y1[0]={-y1[0]}
x2[0]={x2[0]}9《2C》
y2[0]={y2[0]}9《2C》
y1[1]={-y1[1]}
x2[1]={x2[1]}9《2C》
y2[1]={y2[1]}9《2C》
for i=2 to N-2 step 2
g[i]=-{u[i]}2+y1[i]·y2[i]·σ-u[i]·ρ-ρ22M》  ...(67)
g[i+1]=-{u[i+1]}2+y1[i+1]·y2[i+1]·σ-u[i+1]·ρ-ρ2
                                           《2M》...(68)
g[i]·g[i+1]《6M》...(69)
g=g·g[i]·g[i+1]《15M》...(70)
y1[i]={-y1[i]}
x2[i]={x2[i]}9《2C》
y2[i]={y2[i]}9《2C》
y1[i+1]={-y1[i+1]}
x2[i+1]={x2[i+1]}9《2C》
y2[i+1]={y2[i+1]}9《2C》
end for
c=(c-b)mod 3
f=f·g  《15M》
f=f3《6C》
end for
Return output=ffinalpow
如以上那样,在本方式中,通过式(64)(65)求g[0],g[1]之后,通过式(66)求这些多项式的积,通过式(67)(68)求g[i],g[i+1]之后,通过式(70)求这些多项式的积。由此,与每次求出g[i]时将运算结果累积乘算为g=g·g[i]的情况相比,能够大幅削减运算量。即,由于g[0],g[1],g[i],g[i+1]是一部分项的系数为0的多项式,因此这些多项式之间的乘算数为6M即可。但是,在每次求出g[i]时将运算结果累积乘算为g=g·g[i]的情况下,由于除了第一次的g的所有的项的系数可能成为0以外,因此用于累积乘算的乘算数成为15M。例如,如果仅比较式(67)~(70)的乘算次数,则在本申请的方法中需要2M+2M+6M+15M=25M的运算,相对于此,在每次求出g[i]时将该运算结果累积乘算为g=g·g[i]的情况下,需要(2M+15M)×2=34M的运算。如此,通过以如本方式的顺序进行运算,能够大幅削减乘算次数。
[扩展了以往技术的算法(b=1时)的乘算数]
如上所述,在引用文献1、2中没有公开有效地对多个配对的积进行计算的方法。以下表示,假设将引用文献1的改进ηT配对运算算法单纯地扩展到多个配对的计算,与本方式相比,也无法削减运算量。
以下,表示将引用文献1的改进ηT配对运算算法单纯地扩展到多个配对的计算的算法。另外,以下的叙述仅用于明确本方式的特征,并不表示,在提出本申请时能够容易对以下的比较用的算法进行发明。
INPUT:x 1[i],y1[i],x2[i],y2[i]∈GF(3m)
for i=0 to N-1
y1[i]={-y1[i]}
end for
f=-y1[0]·(x1[0]+x2[0]+b)+y2[0]·σ+y1[0]·ρ《1M》
f′=-y1[1]·(x1[1]+x2[1]+b)+y2[1]·σ+y1[1]·ρ《1M》
f=f·f′  《6M》
for i=2 to N-1
f′=-y1[i]·(x1[i]+x2[i]+b)+y2[i]·σ+y1[i]·ρ《1M》
f=f·f′  《15M》
end for
c=b
for j=0 to(m-1)/2
for i=0 to N-1
u[i]=x1[i]+x2[i]+c
end for
g[0]=-{u[0]}2+y1[0]·y2[0]·σ-u[0]·ρ-ρ2《2M》...(71)
y1[0]={-y1[0]}
x2[0]={x2[0]}9《2C》
y2[0]={y2[0]}9《2C》
g[1]=-{u[1]}2+y1[1]·y2[1]·σ-u[1]·ρ-ρ2《2M》...(72)
g=g[0]·g[1]《6M》...(73)
y1[1]={-y1[1]}
x2[1]={x2[1]}9《2C》
y2[1]={y2[1]}9《2C》
for i=2to N-1
g=g·(-{u[i]}2+y1[i]·y2[i]·σ-u[i]·ρ-ρ2)《14M》...(74)
y1[i]={-y1[i]}
x2[i]={x2[i]}9《2C》
y2[i]={y2[i]}9《2C》
end for
c=(c-b)mod 3
f=f·g  《15M》
f=f3    《6C》
end for
Return output=ffinalpow
如以上那样,在将引用文献1的改进ηT配对运算算法单纯地扩展到多个配对的计算的情况下,在式(74)中对各i需要进行14M的运算,对2个i需要进行28M的运算。
[使用了循环展开的算法(b=1时)的乘算数]
如上所述,在引用文献2中没有公开有效地对多个配对的积进行计算的方法。但是,在引用文献2中公开了使用了循环展开的算法。以下表示,将引用文献2的使用了循环展开的算法的想法扩展到多个配对的计算,与本方式相比,也无法削减运算量。
上述的多项式-{u[i]}2+y1[i]·y2[i]·σ-u[i]·ρ-ρ2不仅需要对与各i对应的不同的配对分别进行计算,而且在各个配对的“j=0to(m-1)/2”的循环中需要计算{(m-1)/2}+1次。在本方式的方法中,分别求对应于与各i对应的不同的配对的多项式-{u[i]}2+y1[i]·y2[i]·σ-u[i]·ρ-ρ2,并求这些多项式的积。相对于此,引用文献2的循环展开的想法是,求在1个配对的“j=0to(m-1)/2”的循环中计算出多次的多项式-{u[i]}2+y1[i]·y2[i]·σ-u[i]·ρ-ρ2的积。
以下,表示将引用文献2的循环展开的想法扩展到多个配对的计算的算法(未公开)。另外,以下的叙述仅用于明确本方式的特征,并不表示,在提出本申请时能够容易对以下的比较用的算法进行发明。
INPUT:x1[i],y1[i],x2[i],y2[i]∈GF(3m)
for i=0to N-1
y1[i]={-y1[i]}
end for
f=-y1[0]·(x1[0]+x2[0]+b)+y2[0]·σ+y1[0]·ρ《1M》
f′=-y1[1]·(x1[1]+x2[1]+b)+y2[1]·σ+y1[1]·ρ《1M》
f=f·f′  《6M》
for i=2 to N-1
f′=-y1[i]·(x1[i]+x2[i]+b)+y2[i]·σ+y1[i]·ρ《1M》
f=f·f′  《15M》
end for
c=b
for j=0to(m-1)/4
for i=0to N-1
u[i]=x1[i]+x2[i]+c
end for
g1[0]=-{u[0]}2+y1[0]·y2[0]·σ-u[0]·ρ-ρ2《2M》...(75)
g1[0]={g1[0]}3...(76)
y1[0]={-y1[0]}
x2[0]={x2[0]}9《2C》
y2[0]={y2[0]}9《2C》
g2[0]=-{u[0]}2+y1[0]·y2[0]·σ-u[0]·ρ-ρ2《2M》...(77)
g=g1[0]·g2[0]《6M》...(78)
y1[0]={-y1[0]}
x2[0]={x2[0]}9《2C》
y2[0]={y2[0]}9《2C》
for i=1 to N-1
g1[i]=-{u[i]}2+y1[i]·y2[i]·σ-u[i]·ρ-ρ2《2M》...(79)
g1[i]={g1[i]}3...(80)
y1[i]={-y1[i]}
x2[i]={x2[i]}9《2C》
y2[i]={y2[i]}9《2C》
g2[i]=-{u[i]}2+y1[i]·y2[i]·σ-u[i]·ρ-ρ2《2M》...(81)
g2[i]·g2[i]《6M》...(82)
g=g·g2[i]·g2[i]《15M》...(83)
y1[i+1]={-y1[i+1]}
x2[i+1]={x2[i+1]}9《2C》
y2[i+1]={y2[i+1]}9《2C》
end for
c=(c-b)mod 3
f=f·g  《15M》
f=f3《6C》
end for
Return output=ffinalpow
如以上那样,在该算法中,对相同的i=0通过式(75)(77)求g1[0],g2[0]之后,通过式(74)求这些多项式的积,对相同的i=1,...,N-1通过式(75)(77)求g1[i],g2[i]之后,通过式(82)求这些多项式的积。但是,在该算法中,在式(76)(80)中需要进行立方运算。这需要基于如下的处理:本来在每一次“j=0to(m-1)/2”的循环中需要进行一次f=f3的运算,在使用了循环展开的算法中,在一个循环内实现对于j的两个循环,在循环内必须对i=0,...,N-1分别执行与一次的f=f3对应的式(76)(80)的立方运算。
在本方式的算法中,由于该立方运算作为f=f3在“j=0to(m-1)/2”的循环外统一执行,因此与将循环展开的想法扩展到多个配对的计算的算法相比,能够削减运算量。
【第一实施方式的变形例】
第一实施方式是N为4以上的偶数时的方式。在第一实施方式的变形例中,说明N为5以上的奇数时的处理。
图11是用于例示N为5以上的奇数时的处理。在该变形例中,设为L=N-1。以下,仅说明与第一实施方式的不同点。
在第一实施方式的变形例中,在第一实施方式中说明的步骤S138的处理之后,控制单元123判定是否为i=(N-1)-2(步骤S159)。这里,如果不是i=(N-1)-2,则控制单元123将i+2设定为新的i,并将该设定内容存储在存储器124后将处理返回到步骤S129(步骤S140)。
另一方面,如果是i=(N-1)-2,首先,控制单元123将i+2设定为新的i,并将该设定内容存储在存储器124(步骤S160)。
接着,GF(36m)运算单元122-1从存储器124读取y1[i],y2[i],u[i]∈GF(3m),进行式(84)的运算,并将该运算结果g[i]∈GF(36m)存储在存储器124(步骤S161)。
g[i]=-{u[i]}2+y1[i]·y2[i]·σ-u[i]·ρ-ρ2∈GF(36m)  ...(84)
接着,GF(36m)运算单元122-3从存储器124读取g,g[i]∈GF(36m),进行式(85)的运算,并将该运算结果作为新的g∈GF(36m)存储在存储器124(步骤S162)。之后,执行在第一实施方式中说明的步骤S141以后的处理。
g=g·g[i]∈GF(36m)   ...(85)
【第二实施方式】
下面,说明本发明的第二实施方式。
第一实施方式是将本发明应用到改进ηT配对运算算法的g的运算部分的例子。在第二实施方式中,将本发明应用到改进ηT配对运算算法的f和g的两个运算部分。由此,能够进一步削减运算量。
即,在本方式中,K=4、p=3、d=6,m是1以上的奇数,N是4以上的偶数,W=N,有限域GF(pm)的元R(i,0),R(i,1),R(i,2),R(i,3)分别是在有限域GF(pm)上定义的椭圆曲线E上的两个点P(X1[i],Y1[i])和点Q(X2[i],Y2[i])的各仿射坐标点X1[i],Y1[i],X2[i],Y2[i]∈GF(pm),运算e(R(i,0),...,R(i,K-1))是配对运算e(P(X1[i],Y1[i]),Q(X2[i],Y2[i])),运算∏i=0 N-1e(R(i,0),...,R(i,K-1))是多个配对运算∏i=0 N-1e(P(X1[i],Y1[i]),Q(X2[i],Y2[i]))。此外,在本方式中,作为椭圆曲线而使用式(10)的超特异椭圆曲线Eb(可以是b=-1,也可以是b=1)。此外,本方式的扩散域运算是求表示有限域GF(3m)的6次扩散域GF(36m)的元的式(86)(87)的多项式的运算,其中,将对输入单元输入的各仿射坐标点X1[i],Y1[i],X2[i],Y2[i]或者其像分别设为x1[i],y1[i],x2[i],y2[i],设为u[i]=x1[i]+x2[i]+c∈GF(3m),将以有限域GF(3m)的元作为系数的不可约多项式σ2+1=0的根设为不定元σ,将不可约多项式ρ3-ρ-b=0的根设为不定元ρ。以下,以与第一实施方式的不同点为中心进行说明,并省略与第一实施方式共同的事项。
f[i]=-y1[i]·(x1[i]+x2[i]+b)+y2[i]·σ+y1[i]·ρ∈GF(36m)  ...(86)
g[i]=-{u[i]}2+y1[i]·y2[i]·σ-u[i]·ρ-ρ2∈GF(36m)       ...(87)
<结构>
图12和图13是用于说明第二实施方式的有限域运算单元220的基本结构的方框图。
在第二实施方式的有限域运算装置中,将图2A所例示的有限域运算单元20置换为图12和图13的有限域运算单元220。以下,仅说明有限域运算单元220的结构。
如图12和图13所例示,本方式的有限域运算单元220具有:用于进行有限域GF(3m)上的运算的GF(3m)运算单元121-1~4、用于进行有限域GF(3m)的6次扩散域GF(36m)上的运算的GF(36m)运算单元122-1~5,9、GF(36m)运算单元222-1~5、控制单元23、存储器124、以及用于进行有限域GF(3)上的运算的GF(3)运算单元125。
另外,有限域运算装置220是具有具备了CPU、RAM、ROM等的公知或者专用的计算机和特别的程序的特别的装置。例如,GF(36m)运算单元222-1~5是由CPU读入规定的程序而构筑的功能单元。此外,有限域运算单元220的至少一部分也可以由集成电路来构成。
<处理>
图14和图15是用于说明第二实施方式的处理的图。以下,使用这些图来说明本方式的处理。
首先,执行在第一实施方式中说明的步骤S101~S105的处理。其中,与第一实施方式相同地,在b=-1时,不需要进行步骤S102~S105的处理。
接着,GF(36m)运算单元222-1(第一运算单元或者第六运算单元)从存储器124读取x 1[0],y 1[0],x 2[0],y 2[0]∈GF(3m)(i3=0),进行6次扩散域GF(36m)上的式(88)的运算,并将该运算结果f[0]∈GF(36m)存储在存储器124(步骤S206)。
f[0]=-y1[0]·(x1[0]+x2[0]+b)+y2[0]·σ+y1[0]·ρ∈GF(36m)    ...(88)
接着,GF(36m)运算单元222-1(第二运算单元或者第七运算单元)从存储器读取x1[1],y1[1],x2[1],y2[1]∈GF(3m)(i4=1),进行6次扩散域GF(36m)上的式(89)的运算,并将该运算结果f[1]∈GF(36m)存储在存储器124(步骤S207)。
f[1]=-y1[1]·(x1[1]+x2[1]+b)+y2[1]·σ+y1[1]·ρ∈GF(36m)    ...(89)
接着,GF(36m)运算单元222-3(第三运算单元或者第八运算单元)从存储器124读取运算结果f[0]和f[1]∈GF(36m),进行式(90)的运算,并将该运算结果f∈GF(36m)存储在存储器124(步骤S208)。其中,GF(36m)运算单元222-3求积f[0]·f[1]∈GF(36m),而不进行将f[0]的预先被设为0∈GF(pm)的项和/或f[1]的预先被设为0∈GF(pm)的项作为被运算符的运算。
f=f[0]·f[1]∈GF(36m)    ...(90)
接着,控制单元123设定为i=2,并将该设定内容存储在存储器124(步骤S209)。
接着,GF(36m)运算单元222-1从存储器124读取y1[i],y2[i],x2[i],y2[i]∈GF(3m)(i3=i),进行式(91)的运算,并将该运算结果g[i]∈GF(36m)存储在存储器124(步骤S210)。
f[i]=-y1[i]·(x1[i]+x2[i]+b)+y2[i]·σ+y1[i]·ρ∈GF(36m)...(91)
此外,GF(36m)运算单元222-2从存储器124读取y1[i+1],y2[i+1],x2[i+1],y2[i+1]∈GF(3m)(i4=i+1),进行式(92)的运算,并将该运算结果f[i+1]∈GF(36m)存储在存储器124(步骤S211)。
f[i+1]=-y1[i+1]·(x1[i+1]+x2[i+1]+b)+y2[i+1]·σ+y1[i+1]·ρ∈GF(36m)  ...(92)
接着,GF(36m)运算单元222-3从存储器124读取运算结果f[i]和f[i+1]∈GF(36m),进行式(93)的运算,并将该运算结果f[i]·f[i+1]∈GF(36m)存储在存储器124(步骤S212)。其中,GF(36m)运算单元222-3求积f[i]·f[i+1]∈GF(36m),而不进行将f[i]的预先被设为0∈GF(pm)的项和/或f[i+1]的预先被设为0∈GF(pm)的项作为被运算符的运算。
f[i]·f[i+1]∈GF(36m)...(93)
接着,GF(36m)运算单元222-4(第四运算单元或者第九运算单元)从存储器124读取f,f[i]·f[i+1]∈GF(36m),进行式(94)的运算,并将该运算结果作为新的f∈GF(36m)而存储在存储器124(步骤S213)。
f=f·f[i]·f[i+1]∈GF(36m)  ...(94)
接着,控制单元123判定是否为i=N-2(步骤S214)。这里,如果不是i=N-2,则控制单元214将i+2设定为新的i,并将该设定内容存储在存储器124后将处理返回到步骤S210(步骤S215)。
另一方面,如果是i=N-2,则执行第一实施方式的步骤S112以后的处理。
<第二实施方式的特征>
如以上说明的那样,在本方式中,除了进行在第一实施方式中说明的g[i]和g[i+1]的运算之外,求式(95)(96),求这些多项式的积式(97),并使用该积来计算式(98)(步骤S206~S208、步骤S210~S213)。
f[i]=-y1[i]·(x1[i]+x2[i]+b)+y2[i]·σ+y1[i]·ρ∈GF(36m)  ...(95)
f[i+1]=-y1[i+1]·(x1[i+1]+x2[i+1]+b)+y2[i+1]·σ+y1[i+1]·ρ∈GF(36m)...(96)
f[i]·f[i+1]∈GF(36m)        ...(97)
f=∏i=0 N-1f[i]∈GF(36m)    ...(98)
这里,在表示6次扩散域GF(36m)的式(95)(96)的多项式中,不定元ρ2,ρ·σ,ρ2·σ∈GF(p6m)的项的系数被预先设为0。通过先计算这样的多项式之间的积,从而不需要进行系数被预先设为0的项的运算,因此能够削减乘算次数。
【第二实施方式的变形例】
第二实施方式是N为4以上的偶数时的方式。在第二实施方式的变形例中,说明N为5以上的奇数时的处理。
图16是用于例示N为5以上的奇数时的处理。在该变形例中,设为L=N-1。以下,仅说明与第二实施方式的不同点。
在第二实施方式的变形例中,在第二实施方式中说明的步骤S213的处理之后,控制单元123判定是否为i=(N-1)-2(步骤S254)。这里,如果不是i=(N-1)-2,则控制单元123将i+2设定为新的i,并将该设定内容存储在存储器124后将处理返回到步骤S210(步骤S215)。
另一方面,如果是i=(N-1)-2,首先,控制单元123将i+2设定为新的i,并将该设定内容存储在存储器124(步骤S255)。
接着,GF(36m)运算单元222-1从存储器124读取y1[i],y2[i],x2[i],y2[i]∈GF(3m)(i3=i),进行式(99)的运算,并将该运算结果g[i]∈GF(36m)存储在存储器124(步骤S256)。
f[i]=-y1[i]·(x1[i]+x2[i]+b)+y2[i]·σ+y1[i]·ρ∈GF(36m)  ...(99)
接着,GF(36m)运算单元222-4从存储器124读取f,f[i]∈GF(36m),进行式(100)的运算,并将该运算结果作为新的f∈GF(36m)存储在存储器124(步骤S257)。之后,执行在第一实施方式中说明的步骤S112以后的处理。
f=f·f[i]∈GF(36m)  ...(100)
【第三实施方式】
下面,说明本发明的第三实施方式。
第一实施方式是将本发明应用到改进ηT配对运算算法的g的运算部分的例子。在第二实施方式中,将本发明仅应用到改进ηT配对运算算法的f的运算部分。
即,在本方式中,K=4、p=3、d=6,m是1以上的奇数,N是4以上的偶数,L=N,有限域GF(pm)的元R(i,0),R(i,1),R(i,2),R(i,3)分别是在有限域GF(pm)上定义的椭圆曲线E上的两个点P(X1[i],Y1[i])和点Q(X2[i],Y2[i])的各仿射坐标点X1[i],Y1[i],X2[i],Y2[i]∈GF(pm),运算e(R(i,0),...,R(i,K-1))是配对运算e(P(X1[i],Y1[i]),Q(X2[i],Y2[i])),运算∏i=0 N-1e(R(i,0),...,R(i,K-1))是多个配对运算∏i=0 N-1e(P(X1[i],Y1[i]),Q(X2[i],Y2[i]))。此外,在本方式中,作为椭圆曲线而使用式(10)的超特异椭圆曲线Eb(可以是b=-1,也可以是b=1)。此外,本方式的扩散域运算是求表示有限域GF(3m)的6次扩散域GF(36m)的元的式(101)的多项式的运算,其中,将对输入单元输入的各仿射坐标点X1[i],Y1[i],X2[i],Y2[i]或者其像分别设为x1[i],y1[i],x2[i],y2[i],设为u[i]=x1[i]+x2[i]+c∈GF(3m),将以有限域GF(3m)的元作为系数的不可约多项式σ2+1=0的根设为不定元σ,将不可约多项式ρ3-ρ-b=0的根设为不定元ρ。以下,以与第一实施方式的不同点为中心进行说明,对与第一实施方式共同的事项,省略其说明。
f[i]==-y1[i]·(x1[i]+x2[i]+b)+y2[i]·σ+y1[i]·ρ∈GF(36m)  ...(101)
<结构>
图17和图18是用于说明第三实施方式的有限域运算单元320的基本结构的方框图。
在第三实施方式的有限域运算装置中,将图2A所例示的有限域运算单元20置换为图17和图18的有限域运算单元320。以下,仅说明有限域运算单元320的结构。
如图17和图18所例示,本方式的有限域运算单元320具有:用于进行有限域GF(3m)上的运算的GF(3m)运算单元121-1~4、用于进行有限域GF(3m)的6次扩散域GF(36m)上的运算的GF(36m)运算单元122-1~5,9、GF(36m)运算单元322-1,2、控制单元23、存储器124、以及用于进行有限域GF(3)上的运算的GF(3)运算单元125。
另外,有限域运算装置320是具有具备了CPU、RAM、ROM等的公知或者专用的计算机和特别的程序的特别的装置。例如,GF(36m)运算单元322-1,2是由CPU读入规定的程序而构筑的功能单元。此外,有限域运算单元320的至少一部分也可以由集成电路来构成。
<处理>
图19和图20是用于说明第三实施方式的处理的图。以下,使用这些图来说明本方式的处理。
首先,执行在第二实施方式中说明的步骤S101~S105、S206~S215的处理(图14和图15)、以及在第一实施方式中说明的步骤S112~S118的处理。其中,与第一实施方式相同地,在b=-1时,不进行步骤S102~S105的处理。在步骤S117的判定中判定为i=N-1的情况下,接着,GF(36m)运算单元322-1从存储器124读取y1[0],y2[0],u[0]∈GF(3m)(i1=0),进行式(102)的运算,并将该运算结果g∈GF(36m)存储在存储器124(步骤S319)。
g=-{u[0]}2+y1[0]·y2[0]·σ-u[0]·ρ-ρ2∈GF(36m)  ...(102)
接着,GF(36m)运算单元322-1从存储器124读取y1[1],y2[1],u[1]∈GF(3m)(i1=1),进行式(103)的运算,并将该运算结果g′∈GF(36m)存储在存储器124。然后,GF(36m)运算单元322-2从存储器124读取运算结果g,g′∈GF(36m),进行式(104)的运算,并将该运算结果作为新的g而存储在存储器124(步骤S321)。
g′=-{u[1]}2+y1[1]·y2[1]·σ-u[1]·ρ-ρ2∈GF(36m)  ...(103)
g=g·g′∈GF(36m)  ...(104)
接着,控制单元123设定为i=2,并将该设定内容存储在存储器124(步骤S128)。
接着,GF(36m)运算单元322-1从存储器124读取y1[i],y2[i],u[i]∈GF(3m)(i1=i),进行式(105)的运算,并将该运算结果作为新的g′∈GF(36m)而存储在存储器124(步骤S329)。
g′=-{u[i]}2+y1[i]·y2[i]·σ-u[i]·ρ-ρ2∈GF(36m)  ...(105)
接着,GF(36m)运算单元322-2从存储器124读取运算结果g,g′∈GF(36m),进行式(106)的运算,并将该运算结果作为新的g而存储在存储器124(步骤S330)。
g=g·g′∈GF(36m)  ...(106)
之后,执行第一实施方式的步骤S133以后的处理。
【其他的变形例】
另外,本发明不限定于上述的实施方式。例如,在上述的各实施方式中,表示了设为i1=0,i2=1,设为i1=i,i2=i+1,设为i3=0,i4=1,设为i3=i,i4=i+1的例子。但是,也可以使用其他的i1,i2,i3,i4∈{0,..,N-1},只要i1与i2不同,i3与i4不同即可。即,也可以是,分别将由集合{0,...,N-1}的L个[L是偶数]不同的元构成的子集合的各元分别设为一次i1或者i2,一边改变i1和i2,一边执行循环处理,该循环处理执行L/2次第一运算单元和第二运算单元和第三运算单元的一连串处理,而且,分别将由集合{0,...,N-1}的W个[W是正的偶数]不同的元构成的子集合的各元分别设为一次i3或者i4,一边改变i3和i4,一边执行W/2次第六运算单元和第七运算单元和第八运算单元的一连串处理。换而言之,将由集合{0,...,N-1}所包含的L个[L是偶数]互相不同的多个元构成的子集合的各元分别各选择一次作为i1或i2,并分别对所选择的i1和i2的组执行一次第一运算单元和第二运算单元和第三运算单元的第一处理,从而执行分别与L/2个上述组(i1,i2)对应的第一处理,而且,将由集合{0,...,N-1}所包含的W个[W是正的偶数]互相不同的多个元构成的子集合的各元分别各选择一次作为i3或i4,并分别对所选择的i3和i4的组执行一次第六运算单元和第七运算单元和第八运算单元的第二处理,从而执行分别与W/2个上述组(i3,i4)对应的第二处理。
此外,在上述的各实施方式中,说明了N为4以上的偶数并设为L=N、W=N、或者N为5以上的奇数并设为L=N-1、W=N-1的结构。但是,也可以将小于N的其他正的偶数设为L或W。在这种情况下,通过对如图11的步骤S161、S162或者图16的步骤S256、S257所示的累积乘算进行重复,从而能够执行针对成为不应用本发明的方法的i的处理。此外,也可以是L≠W。此外,N也可以是2或3。这种情况下,不需要进行图7的步骤S108~S111,S113、图9的步骤S128~S140、图11的步骤S128~S159、图15的步骤S209~S215、图16的步骤S209~S215、S254的处理。
此外,在上述的各实施方式中,设为预先设定b等的参数,但也可以是对装置输入这些参数的结构。
此外,在上述的各实施方式中,求积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1)),而不进行将多项式poly(R(i1,0),...,R(i1,K-1))的预先被设为0∈GF(pm)的项和/或多项式poly(R(i2,0),...,R(i2,K-1))的预先被设为0∈GF(pm)的项作为被运算符的运算。但是,也可以进行将这些多项式的预先被设为0∈GF(pm)的项的一部分作为被运算的运算。
此外,在上述的各实施方式中,将本发明应用到秩数3的改进ηT配对运算算法,但是也可以将本发明应用到其他的秩数3的配对运算、秩数2的配对运算、其他秩数的配对运算。
此外,上述的各种处理不仅根据记载以时间序列执行,而且也可以根据执行处理的装置的处理能力或者根据需要而并行地或者单独地执行。此外,在不脱离本发明的宗旨的范围内能够进行适当的变更是不言而喻的。
此外,通过计算机实现上述结构的情况下,通过程序记述各装置应具有的功能的处理内容。而且,通过由计算机执行该程序,从而在计算机上实现上述处理功能。
记述了该处理内容的程序能够记录在可由计算机读取的记录介质。作为可由计算机读取的记录介质,例如可以是磁记录装置、光盘、光磁记录介质、半导体存储器等。
此外,例如通过对记录了程序的DVD、CD-ROM等可移动记录介质进行贩卖、转让、租借等,从而进行该程序的流通。而且,也可以是如下的结构:将该程序存储到服务器计算机的存储装置,并经由网络从服务器计算机对其他的计算机转发该程序,从而使该程序流通。
执行这样的程序的计算机例如,首先将在可移动性记录介质中记录的程序或从服务器计算机转发的程序临时存储到自身的存储装置。然后,在执行处理时,该计算机读取在自身的存储介质中存储的程序,并执行按照所读取的程序的处理。此外,作为该程序的其他的实施方式,也可以是由计算机从可移动性记录介质直接读取程序,并执行按照该程序的处理,进一步也可以是,每当从服务器计算机对该计算机转发程序时,依次执行按照所获得的程序的处理。此外,也可以是,不从服务器计算机对该计算机转发程序,而是仅通过该执行指示与结果取得来实现处理功能的结构,即通过所谓的ASP(Application Service Provider,应用服务提供商)型的服务来执行上述的处理的结构。
工业上的可利用性
作为本发明的工业上的利用领域,可例示使用内积术语密码等的多个配对运算的密码技术领域。
标号说明
1有限域运算装置
10输入单元
30输出单元
20、120、220、320有限域运算单元

Claims (46)

1.一种有限域运算装置,具有:
输入单元,输入N·K个(N≥2,K≥1)有限域GF(pm)的元R(i,k)∈GF(pm),其中,i∈{0,...,N-1},k∈{0,...,K-1},p是质数,m是1以上的整数;
有限域运算单元,进行将有限域上对于K个所述有限域GF(pm)的元R(i,0),...,R(i,K-1)∈GF(pm)的运算设为e(R(i,0),...,R(i,K-1))的情况下的运算∏i=0 N-1e(R(i,0),...,R(i,K-1));以及
输出单元,输出所述有限域运算单元的运算结果,
所述有限域上的运算e(R(i,0),...,R(i,K-1))分别在一部分中包括有限域GF(pm)的d次扩散域GF(pd·m)(d≥2)上的扩散域运算,
所述扩散域运算是,将依赖于所输入的1个以上的有限域GF(pm)的元R(i,k)∈{R(i,0),...,R(i,K-1)}的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i,k)∈{R(i,0),...,R(i,K-1)}映射到表示d次扩散域GF(pd·m)的元的多项式poly(R(i,0),...,R(i,K-1))∈GF(pd·m)的运算,
所述多项式poly(R(i,0),...,R(i,K-1))∈GF(pd·m)是项数d的多项式,并且是其中一部分项h∈{0,...,d-1}的系数ah被设为依赖于所述1个以上的有限域GF(pm)的元R(i,k)的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i,k)、预先决定的一部分项r∈{0,...,d-1}(r≠h)的系数ar预先被设为0∈GF(pm)的多项式,
所述有限域运算单元包括:
第一运算单元,对任意的i1∈{0,...,N-1}输入依赖于1个以上的有限域GF(pm)的元R(i1,k)的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i1,k),并进行对其的所述扩散域运算,从而得到多项式poly(R(i1,0),...,R(i1,K-1))∈GF(pd·m);
第二运算单元,对任意的i2∈{0,...,N-1}(i2≠i1)输入依赖于1个以上的有限域GF(pm)的元R(i2,k)的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i2,k),并进行对其的所述扩散域运算,从而得到多项式poly(R(i2,0),...,R(i2,K-1))∈GF(pd·m);
第三运算单元,输入所述多项式poly(R(i1,0),...,R(i1,K-1))和所述多项式poly(R(i2,0),...,R(i2,K-1)),并计算这些多项式的积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))∈GF(pd·m);
控制单元,将由集合{0,...,N-1}所包含的L个互相不同的多个元构成的子集合的各元分别各选择一次作为i1或i2,并且使分别对所选择的i1和i2的组执行一次由所述第一运算单元和所述第二运算单元和所述第三运算单元进行的第一处理,从而使执行包括分别与L/2个所述组对应的所述第一处理的循环处理,其中,L是偶数;以及
第四运算单元,使用分别通过所述第一处理而得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))来计算∏i=0 N-1poly(R(i,0),...,R(i,K-1))∈GF(pd·m)。
2.如权利要求1所述的有限域运算装置,其中,
所述第三运算单元求所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1)),而不进行将所述多项式poly(R(i1,0),...,R(i1,K-1))的预先被设为0∈GF(pm)的项和/或所述多项式poly(R(i2,0),...,R(i2,K-1))的预先被设为0∈GF(pm)的项作为被运算符的运算。
3.如权利要求1或2所述的有限域运算装置,其中,
N是偶数,L=N,所述子集合是集合{0,...,N-1}。
4.如权利要求1或2所述的有限域运算装置,其中,
所述控制单元使执行多次循环处理,该循环处理执行L/2次所述第一处理。
5.如权利要求3所述的有限域运算装置,其中,
所述控制单元使执行多次循环处理,该循环处理执行L/2次所述第一处理。
6.如权利要求1或2所述的有限域运算装置,其中,
N≥4,
所述第四运算单元使用分别通过所述第一处理而得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值来求∏i=0 N-1poly(R(i,0),...,R(i,K-1))∈GF(pd·m)。
7.如权利要求3所述的有限域运算装置,其中,
N≥4,
所述第四运算单元使用分别通过所述第一处理而得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值来求∏i=0 N-1poly(R(i,0),...,R(i,K-1))∈GF(pd·m)。
8.如权利要求4所述的有限域运算装置,其中,
N≥4,
所述第四运算单元使用分别通过所述第一处理而得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值来求∏i=0 N-1poly(R(i,0),...,R(i,K-1))∈GF(pd·m)。
9.如权利要求5所述的有限域运算装置,其中,
N≥4,
所述第四运算单元使用分别通过所述第一处理而得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值来求∏i=0 N-1poly(R(i,0),...,R(i,K-1))∈GF(pd·m)。
10.如权利要求6所述的有限域运算装置,其中,
所述第四运算单元在每次执行所述第一处理时,更新之前得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值。
11.如权利要求7所述的有限域运算装置,其中,
所述第四运算单元在每次执行所述第一处理时,更新之前得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值。
12.如权利要求8所述的有限域运算装置,其中,
所述第四运算单元在每次执行所述第一处理时,更新之前得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值。
13.如权利要求9所述的有限域运算装置,其中,
所述第四运算单元在每次执行所述第一处理时,更新之前得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值。
14.如权利要求1所述的有限域运算装置,其中,
K=4,
所述有限域GF(pm)的元R(i,0),R(i,1),R(i,2),R(i,3)分别是在有限域GF(pm)上定义的椭圆曲线上的两个点P(X1[i],Y1[i])和点Q(X2[i],Y2[i])的各仿射坐标点X1[i],Y1[i],X2[i],Y2[i]∈GF(pm),
所述运算e(R(i,0),...,R(i,K-1))是配对运算e(P(X1[i],Y1[i]),Q(X2[i],Y2[i])),
所述运算∏i=0 N-1e(R(i,0),...,R(i,K-1))是多个配对运算∏i=0 N-1e(P(X1[i],Y1[i]),Q(X2[i],Y2[i]))。
15.如权利要求14所述的有限域运算装置,其中,
p=3,d=6,
所述椭圆曲线是Y2=X3-X+b,其中b∈{-1,1},
所述扩散域运算是求表示有限域GF(3m)的6次扩散域GF(36m)的元的多项式poly(x1[i],y1[i],x2[i],y2[i])=-{u[i]}2+y1[i]·y2[i]·σ-u[i]·ρ-ρ2∈GF(36m)的运算,其中,将对所述输入单元输入的各仿射坐标点X1[i],Y1[i],X2[i],Y2[i]或者其像分别设为x1[i],y1[i],x2[i],y2[i],设为u[i]=x1[i]+x2[i]+c∈GF(3m),将以有限域GF(3m)的元作为系数的不可约多项式σ2+1=0的根设为不定元σ,将不可约多项式ρ3-ρ-b=0的根设为不定元ρ,
所述控制单元将c的初始值设为b,在每次执行循环处理时将(c-b)mod 3设为新的c,其中该循环处理执行L/2次所述第一处理,
所述多项式poly(R(i1,0),...,R(i1,K-1))是g[i1]=-{u[i1]}2+y1[i1]·y2[i1]·σ-u[i1]·ρ-ρ2∈GF(36m),
所述多项式poly(R(i2,0),...,R(i2,K-1))是g[i2]=-{u[i2]}2+y1[i2]·y2[i2]·σ-u[i2]·ρ-ρ2∈GF(36m),
所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))是g[i1]·g[i2]∈GF(36m),
所述第四运算单元使用分别通过所述第一处理而得到的所述积g[i1]·g[i2]来计算g=∏i=0 N-1poly(R(i,0),...,R(i,K-1))∈GF(3d·m)。
16.如权利要求15所述的有限域运算装置,其中,
所述第三运算单元求所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1)),而不进行将所述多项式poly(R(i1,0),...,R(i1,K-1))的预先被设为0∈GF(pm)的项和/或所述多项式poly(R(i2,0),...,R(i2,K-1))的预先被设为0∈GF(pm)的项作为被运算符的运算。
17.如权利要求15所述的有限域运算装置,其中,
所述控制单元在每次进行所述第一处理时,执行更新处理,在该更新处理中,将-y1[i1]设为新的y1[i1],将{x2[i1]}9设为新的x2[i1],将{y2[i1]}9设为新的y2[i1],将-y1[i2]设为新的y1[i2],将{x2[i2]}9设为新的x2[i2],将{y2[i2]}9设为新的y2[i2],
所述控制单元使执行多次循环处理,该循环处理执行L/2次所述第一处理。
18.如权利要求15至17的任一项所述的有限域运算装置,其中,
所述有限域运算单元还具有:
第五运算单元,在b=-1时设为x1[i]=X1[i],y1[i]=Y1[i],x2[i]=X2[i],y2[i]=Y2[i],在b=1时设为x1[i]=X1[i],y1[i]=-Y1[i],x2[i]=X2[i],y2[i]=Y2[i],并进行f=∏i=0 N-1(-y1[i]·(x1[i]+x2[i]+b)+y2[i]·σ+y1[i]·ρ)∈GF(36m)的运算,
所述第五运算单元的处理是,在最初执行所述第一处理之前执行的处理。
19.如权利要求18所述的有限域运算装置,其中,
所述有限域运算单元包括:
第十运算单元,将由所述第五运算单元得到的f与由所述第四运算单元得到的g的积f·g∈GF(36m)设为新的f;以及
第十一运算单元,将由所述第十运算单元得到的f的立方值f3∈GF(36m)设为新的f,
所述第十运算单元和所述第十一运算单元的处理在每次执行所述循环处理时执行。
20.如权利要求18所述的有限域运算装置,其中,
N≥4,
所述第五运算单元包括:
第六运算单元,对任意的i3∈{0,...,N-1},进行f[i3]=-y1[i3]·(x1[i3]+x2[i3]+b)+y2[i3]·σ+y1[i3]·ρ∈GF(36m)的运算;
第七运算单元,对任意的i4∈{0,...,N-1}(i4≠i3),进行f[i4]=-y1[i4]·(x1[i4]+x2[i4]+b)+y2[i4]·σ+y1[i4]·ρ∈GF(36m)的运算;
第八运算单元,输入f[i3]和f[i4],计算这些多项式的积f[i3]·f[i4]∈GF(3 m);
第二控制单元,将由集合{0,...,N-1}所包含的W个互相不同的多个元构成的子集合的各元分别各选择一次作为i3或i4,并且使执行W/2次第二处理,该第二处理是由所述第六运算单元和所述第七运算单元和所述第八运算单元分别对所选择的i3和i4的组进行的处理,其中W是正的偶数;以及
第九运算单元,使用分别通过所述第二处理而得到的所述积f[i3]·f[i4]的乘算值来计算f=∏i=0 N-1(-y1[i]·(x1[i]+x2[i]+b)+y2[i]·σ+y1[i]·ρ)∈GF(36m)。
21.如权利要求20所述的有限域运算装置,其中,
所述有限域运算单元包括:
第十运算单元,将由所述第五运算单元得到的f与由所述第四运算单元得到的g的积f·g∈GF(36m)设为新的f;以及
第十一运算单元,将由所述第十运算单元得到的f的立方值f3∈GF(36m)设为新的f,
所述第十运算单元和所述第十一运算单元的处理在每次执行所述循环处理时执行。
22.如权利要求14所述的有限域运算装置,其中,
p=3,d=6,
所述椭圆曲线是Y2=X3-X+b,其中b∈{-1,1},
所述扩散域运算是求表示有限域GF(3m)的6次扩散域GF(36m)的元的多项式poly(x1[i],y1[i],x2[i],y2[i])=-y1[i]·(x1[i]+x2[i]+b)+y2[i]·σ+y1[i]·ρ∈GF(36m)的运算,其中,将对所述输入单元输入的各仿射坐标点X 1[i],Y 1[i],X 2[i],Y2[i]或者其像分别设为x1[i],y1[i],x2[i],y2[i],将以有限域GF(3m)的元作为系数的不可约多项式σ2+1=0的根设为不定元σ,将不可约多项式ρ3-ρ-b=0的根设为不定元ρ。
23.一种有限域运算方法,用于具有输入单元和有限域运算单元和输出单元的有限域运算装置,该有限域运算方法具有:
(A)对所述输入单元输入N·K个(N≥2,K≥1)有限域GF(pm)的元R(i,k)∈GF(pm)的步骤,其中,i∈{0,...,N-1},k∈{0,...,K-1},p是质数,m是1以上的整数;
(B)所述有限域运算单元进行将有限域上对于K个所述有限域GF(pm)的元R(i,0),...,R(i,K-1)∈GF(pm)的运算设为e(R(i,0),...,R(i,K-1))的情况下的运算∏i=0 N-1e(R(i,0),...,R(i,K-1))的步骤;以及
(C)从所述输出单元输出在步骤(B)中的运算结果的步骤,
所述有限域上的运算e(R(i,0),...,R(i,K-1))分别在一部分中包括有限域GF(pm)的d次扩散域GF(pd·m)(d≥2)上的扩散域运算,
所述扩散域运算是,将依赖于所输入的1个以上的有限域GF(pm)的元R(i,k)∈{R(i,0),...,R(i,K-1)}的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i,k)∈{R(i,0),...,R(i,K-1)}映射到表示d次扩散域GF(pd·m)的元的多项式poly(R(i,0),...,R(i,K-1))∈GF(pd·m)的运算,
所述多项式poly(R(i,0),...,R(i,K-1))∈GF(pd·m)是项数d的多项式,并且是其中一部分项h∈{0,...,d-1}的系数ah被设为依赖于所述1个以上的有限域GF(pm)的元R(i,k)的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i,k)、预先决定的一部分项r∈{0,...,d-1}(r≠h)的系数ar预先被设为0∈GF(pm)的多项式,
所述步骤(B)包括:
(B-1)针对任意的i1∈{0,...,N-1},对所述有限域运算单元的第一运算单元输入依赖于1个以上的有限域GF(pm)的元R(i1,k)的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i1,k),该第一运算单元进行对其的所述扩散域运算,从而得到多项式poly(R(i1,0),...,R(i1,K-1))∈GF(pd·m)的步骤;
(B-2)针对任意的i2∈{0,...,N-1}(i2≠i1),对所述有限域运算单元的第二运算单元输入依赖于1个以上的有限域GF(pm)的元R(i2,k)的有限域GF(pm)上的像和/或有限域GF(pm)的元R(i2,k),该第二运算单元进行对其的所述扩散域运算,从而得到多项式poly(R(i2,0),...,R(i2,K-1))∈GF(pd·m)的步骤;
(B-3)对所述有限域运算单元的第三运算单元输入所述多项式poly(R(i1,0),...,R(i1,K-1))和所述多项式poly(R(i2,0),...,R(i2,K-1)),该第三运算单元计算这些多项式的积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))∈GF(pd·m);以及
(B-4)所述有限域运算单元的第四运算单元使用通过包括所述步骤(B-1)、(B-2)、(B-3)的第一处理而得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))来计算∏i=0 N-1poly(R(i,0),...,R(i,K-1))∈GF(pd·m)的步骤,
将由集合{0,...,N-1}所包含的L个互相不同的多个元构成的子集合的各元分别各选择一次作为i1或i2,并且分别对所选择的i1和i2的组执行一次所述第一处理,从而执行包括分别与L/2个所述组对应的所述第一处理的循环处理,其中L是偶数,
所述步骤(B-4)包括使用分别与L/2个所述组对应的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))来计算∏Ii=0 N-1poly(R(i,0),...,R(i,K-1))∈GF(pd·m)的步骤。
24.如权利要求23所述的有限域运算方法,其中,
所述步骤(B-3)包括,求所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1)),而不进行将所述多项式poly(R(i1,0),...,R(i1,K-1))的预先被设为0∈GF(pm)的项和/或所述多项式poly(R(i2,0),...,R(i2,K-1))的预先被设为0∈GF(pm)的项作为被运算符的运算的步骤。
25.如权利要求23或24所述的有限域运算方法,其中,
N是偶数,L=N,所述子集合是集合{0,...,N-1}。
26.如权利要求23或24所述的有限域运算方法,其中,
执行多次循环处理,该循环处理执行L/2次所述第一处理。
27.如权利要求25所述的有限域运算方法,其中,
执行多次循环处理,该循环处理执行L/2次所述第一处理。
28.如权利要求23或24所述的有限域运算方法,其中,
N≥4,
所述步骤(B-4)包括使用分别通过所述第一处理而得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值来求∏i=0 N-1poly(R(i,0),...,R(i,K-1))∈GF(pd·m)的步骤。
29.如权利要求25所述的有限域运算方法,其中,
N≥4,
所述步骤(B-4)包括使用分别通过所述第一处理而得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值来求∏i=0 N-1poly(R(i,0),...,R(i,K-1))∈GF(pd·m)的步骤。
30.如权利要求26所述的有限域运算方法,其中,
N≥4,
所述步骤(B-4)包括使用分别通过所述第一处理而得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值来求∏i=0 N-1poly(R(i,0),...,R(i,K-1))∈GF(pd·m)的步骤。
31.如权利要求27所述的有限域运算方法,其中,
N≥4,
所述步骤(B-4)包括使用分别通过所述第一处理而得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值来求∏i=0N-1poly(R(i,0),...,R(i,K-1))∈GF(pd·m)的步骤。
32.如权利要求28所述的有限域运算方法,其中,
所述步骤(B-4)包括在每次执行所述第一处理时,更新之前得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值的步骤。
33.如权利要求29所述的有限域运算方法,其中,
所述步骤(B-4)包括在每次执行所述第一处理时,更新之前得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值的步骤。
34.如权利要求30所述的有限域运算方法,其中,
所述步骤(B-4)包括在每次执行所述第一处理时,更新之前得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值的步骤。
35.如权利要求31所述的有限域运算方法,其中,
所述步骤(B-4)包括在每次执行所述第一处理时,更新之前得到的所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))的乘算值的步骤。
36.如权利要求23所述的有限域运算方法,其中,
K=4,
所述有限域GF(pm)的元R(i,0),R(i,1),R(i,2),R(i,3)分别是在有限域GF(pm)上定义的椭圆曲线上的两个点P(X1[i],Y1[i])和点Q(X2[i],Y2[i])的各仿射坐标点X 1[i],Y 1[i],X 2[i],Y2[i]∈GF(pm),
所述运算e(R(i,0),...,R(i,K-1))是配对运算e(P(X1[i],Y1[i]),Q(X2[i],Y2[i])),
所述运算∏i=0 N-1e(R(i,0),...,R(i,K-1))是多个配对运算∏i=0 N-1e(P(X1[i],Y1[i]),Q(X2[i],Y2[i]))。
37.如权利要求36所述的有限域运算方法,其中,
p=3,d=6,
所述椭圆曲线是Y2=X3-X+b,其中b∈{-1,1},
所述扩散域运算是求表示有限域GF(3m)的6次扩散域GF(36m)的元的多项式poly(x1[i],y1[i],x2[i],y2[i])=-{u[i]}2+y1[i]·y2[i]·σ-u[i]·ρ-ρ2∈GF(36m)的运算,其中,将对所述输入单元输入的各仿射坐标点X1[i],Y1[i],X2[i],Y2[i]或者其像分别设为x1[i],y1[i],x2[i],y2[i],设为u[i]=x1[i]+x2[i]+c∈GF(3m),将以有限域GF(3m)的元作为系数的不可约多项式σ2+1=0的根设为不定元σ,将不可约多项式ρ3-ρ-b=0的根设为不定元ρ,
将c的初始值设为b,在每次执行循环处理时将(c-b)mod 3设为新的c,其中该循环处理执行L/2次所述第一处理,
所述多项式poly(R(i1,0),...,R(i1,K-1))是g[i1]=-{u[i1]}2+y1[i1]·y2[i1]·σ-u[i1]·ρ-ρ2∈GF(36m),
所述多项式poly(R(i2,0),...,R(i2,K-1))是g[i2]=-{u[i2]}2+y1[i2]·y2[i2]·σ-u[i2]·ρ-ρ2∈GF(36m),
所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1))是g[i1]·g[i2]∈GF(36m),
所述步骤(B-4)包括使用分别通过所述第一处理而得到的所述积g[i1]·g[i2]来计算g=∏i=0 N-1poly(R(i,0),..,R(i,K-1))∈GF(3d·m)的步骤。
38.如权利要求37所述的有限域运算方法,其中,
所述步骤(B-3)包括求所述积poly(R(i1,0),...,R(i1,K-1))·poly(R(i2,0),...,R(i2,K-1)),而不进行将所述多项式poly(R(i1,0),...,R(i1,K-1))的预先被设为0∈GF(pm)的项和/或所述多项式poly(R(i2,0),...,R(i2,K-1))的预先被设为0∈GF(pm)的项作为被运算符的运算的步骤。
39.如权利要求37所述的有限域运算方法,其中,
在每次进行所述第一处理时,执行更新处理,在该更新处理中,将-y1[i1]设为新的y1[i1],将{x2[i1]}9设为新的x2[i1],将{y2[i1]}9设为新的y2[i1],将-y1[i2]设为新的y1[i2],将{x2[i2]}9设为新的x2[i2],将{y2[i2]}9设为新的y2[i2],
执行多次循环处理,该循环处理执行L/2次所述第一处理。
40.如权利要求37至39的任一项所述的有限域运算方法,其中,
所述步骤(B)还包括:
(B-5)在b=-1时设为x1[i]=X1[i],y1[i]=Y1[i],x2[i]=X2[i],y2[i]=Y2[i],在b=1时设为x1[i]=X1[i],y1[i]=-Y1[i],x2[i]=X2[i],y2[i]=Y2[i],所述有限域运算单元的第五运算单元进行f=∏i=0 N-1(-y1[i]·(x1[i]+x2[i]+b)+y2[i]·σ+y1[i]·ρ)∈GF(36m)的运算的步骤,
所述步骤(B-5)在最初执行所述第一处理之前执行。
41.如权利要求40所述的有限域运算方法,其中,
所述步骤(B)包括:
(B-10)所述有限域运算单元的第十运算单元将在所述步骤(B-5)中得到的f与在所述步骤(B-4)中得到的g的积f·g∈GF(36m)设为新的f的步骤;以及
(B-11)所述有限域运算单元的第十一运算单元将在所述步骤(B-6)中得到的f的立方值f3∈GF(36m)设为新的f的步骤,
所述步骤(B-10)和所述步骤(B-11)的处理在每次执行所述循环处理时执行。
42.如权利要求40所述的有限域运算方法,其中,
N≥4,
所述步骤(B-5)包括:
(B-6)所述有限域运算单元的第六运算单元对任意的i3∈{0,...,N-1},进行f[i3]=-y1[i3]·(x1[i3]+x2[i3]+b)+y2[i3]·σ+y1[i3]·ρ∈GF(36m)的运算的步骤;
(B-7)所述有限域运算单元的第七运算单元对任意的i4∈{0,...,N-1}(i4≠i3),进行f[i4]=-y1[i4]·(x1[i4]+x2[i4]+b)+y2[i4]·σ+y1[i4]·ρ∈GF(36m)的运算的步骤;
(B-8)所述有限域运算单元的第八运算单元被输入f[i3]和f[i4],计算这些多项式的积f[i3]·f[i4]∈GF(3d·m)的步骤;以及
(B-9)所述有限域运算单元的第九运算单元使用通过包括所述步骤(B-6)和所述步骤(B-7)和所述步骤(B-8)的第二处理而得到的所述积f[i3]·f[i4]的乘算值来计算仁∏i=0 N-1(-y1[i]·(x1[i]+x2[i]+b)+y2[i]·σ+y1[i]·ρ)∈GF(36m)的步骤,
将由集合{0,...,N-1}所包含的W个互相不同的多个元构成的子集合的各元分别各选择一次作为i3或i4,并且分别对所选择的i3和i4的组执行一次所述第二处理,从而执行分别与W/2个上述组(i3,i4)对应的第二处理,其中W是正的偶数。
43.如权利要求42所述的有限域运算方法,其中,
所述步骤(B)包括:
(B-10)所述有限域运算单元的第十运算单元将在所述步骤(B-5)中得到的f与在所述步骤(B-4)中得到的g的积f·g∈GF(36m)设为新的f的步骤;以及
(B-11)所述有限域运算单元的第十一运算单元将在所述步骤(B-6)中得到的f的立方值f3∈GF(36m)设为新的f的步骤,
所述步骤(B-10)和所述步骤(B-11)的处理在每次执行所述循环处理时执行。
44.如权利要求36所述的有限域运算方法,其中,
p=3,d=6,
所述椭圆曲线是Y2=X3-X+b,其中b∈{-1,1},
所述扩散域运算是求表示有限域GF(3m)的6次扩散域GF(36m)的元的多项式poly(x1[i],y1[i],x2[i],y2[i])=-y1[i]·(x1[i]+x2[i]+b)+y2[i]·σ+y1[i]·ρ∈GF(36m)的运算,其中,将对所述输入单元输入的各仿射坐标点X1[i],Y1[i],X2[i],Y2[i]或者其像分别设为x1[i],y1[i],x2[i],y2[i],将以有限域GF(3m)的元作为系数的不可约多项式σ2+1=0的根设为不定元σ,将不可约多项式ρ3-ρ-b=0的根设为不定元ρ。
45.一种程序,用于使计算机作为权利要求1的有限域运算装置发挥作用。
46.一种计算机可读取的记录介质,存储有用于使计算机作为权利要求1的有限域运算装置发挥作用的程序。
CN201080016403.5A 2009-04-24 2010-04-23 有限域运算装置、有限域运算方法、程序以及记录介质 Active CN102396010B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009106029 2009-04-24
JP2009-106029 2009-04-24
PCT/JP2010/057281 WO2010123117A1 (ja) 2009-04-24 2010-04-23 有限体演算装置、有限体演算方法、プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
CN102396010A true CN102396010A (zh) 2012-03-28
CN102396010B CN102396010B (zh) 2014-10-22

Family

ID=43011231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080016403.5A Active CN102396010B (zh) 2009-04-24 2010-04-23 有限域运算装置、有限域运算方法、程序以及记录介质

Country Status (6)

Country Link
US (1) US8488780B2 (zh)
EP (1) EP2423905B1 (zh)
JP (1) JP5269188B2 (zh)
KR (1) KR101301139B1 (zh)
CN (1) CN102396010B (zh)
WO (1) WO2010123117A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106330429A (zh) * 2016-08-24 2017-01-11 中国信息安全测评中心 Sm4算法的s盒的生成方法及装置
CN107533539A (zh) * 2015-05-12 2018-01-02 日本电信电话株式会社 矩阵三角化装置、矩阵三角化方法以及程序

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9800407B2 (en) * 2013-08-30 2017-10-24 Qualcomm Incorporated Methods and apparatuses for prime number generation and storage
JP6067596B2 (ja) * 2014-01-20 2017-01-25 日本電信電話株式会社 ペアリング演算装置、マルチペアリング演算装置、プログラム
JP6023728B2 (ja) * 2014-01-20 2016-11-09 日本電信電話株式会社 マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1648967A (zh) * 2004-01-07 2005-08-03 三星电子株式会社 加密装置、加密方法及其存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69322376T2 (de) * 1993-05-05 1999-05-06 Zunquan Liu Einrichtung und Verfahren zur Datenverschlüsselung
JP4181724B2 (ja) * 2000-03-03 2008-11-19 日本電気株式会社 証明付再暗号シャッフル方法と装置、再暗号シャッフル検証方法と装置、入力文列生成方法と装置及び記録媒体
JP4630117B2 (ja) * 2005-04-25 2011-02-09 日本電信電話株式会社 マルチペアリング演算方法、ペアリング比較方法、それらを用いた装置、およびプログラム
WO2007080633A1 (ja) * 2006-01-11 2007-07-19 Mitsubishi Denki Kabushiki Kaisha 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号演算装置及び楕円曲線暗号パラメータ生成プログラム及び楕円曲線暗号演算プログラム
JP4856599B2 (ja) * 2007-07-25 2012-01-18 日本電信電話株式会社 ペアリング演算装置、プログラム
JP5349261B2 (ja) * 2009-04-23 2013-11-20 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1648967A (zh) * 2004-01-07 2005-08-03 三星电子株式会社 加密装置、加密方法及其存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JEAN-LUC BEUCHAT ET AL: "An Algorithm for the eta_T Pairing Calculation in Characteristic Three and its Hardware Implementation", 《INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH》, 23 March 2007 (2007-03-23), pages 1 - 11, XP061002082 *
MASAAKI SHIRASE ET AL: "Universal I T Pairing Algorithm over Arbitrary Extension Degree", 《INFORMATION SECURITY APPLICATIONS》, 27 August 2007 (2007-08-27), pages 1 - 15 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107533539A (zh) * 2015-05-12 2018-01-02 日本电信电话株式会社 矩阵三角化装置、矩阵三角化方法以及程序
CN107533539B (zh) * 2015-05-12 2021-05-07 日本电信电话株式会社 矩阵三角化装置、矩阵三角化方法以及记录介质
CN106330429A (zh) * 2016-08-24 2017-01-11 中国信息安全测评中心 Sm4算法的s盒的生成方法及装置
CN106330429B (zh) * 2016-08-24 2019-08-06 中国信息安全测评中心 Sm4算法的s盒的生成方法及装置

Also Published As

Publication number Publication date
JP5269188B2 (ja) 2013-08-21
EP2423905B1 (en) 2016-03-16
KR101301139B1 (ko) 2013-09-03
US20120033805A1 (en) 2012-02-09
JPWO2010123117A1 (ja) 2012-10-25
WO2010123117A1 (ja) 2010-10-28
US8488780B2 (en) 2013-07-16
CN102396010B (zh) 2014-10-22
EP2423905A1 (en) 2012-02-29
KR20120038395A (ko) 2012-04-23
EP2423905A4 (en) 2013-10-16

Similar Documents

Publication Publication Date Title
Shantz From Euclid's GCD to Montgomery multiplication to the great divide
Bernstein et al. On the correct use of the negation map in the Pollard rho method
Granger et al. Hardware and software normal basis arithmetic for pairing-based cryptography in characteristic three
CN102396010B (zh) 有限域运算装置、有限域运算方法、程序以及记录介质
CN101371285B (zh) 加密处理装置、加密处理方法
Jafri et al. Towards an optimized architecture for unified binary huff curves
Chabrier et al. On-the-fly multi-base recoding for ECC scalar multiplication without pre-computations
US8014520B2 (en) Exponentiation ladder for cryptography
Knežević et al. Signal processing for cryptography and security applications
Kim et al. LFSR multipliers over GF (2m) defined by all-one polynomial
Chavan et al. A review on solving ECDLP over large finite field using parallel Pollard’s rho (ρ) method
Realpe-Muñoz et al. High-performance elliptic curve cryptoprocessors over GF (2^ m) GF (2 m) on Koblitz curves
JP2007526513A (ja) 要素の累乗またはスカラー乗算の方法
Venkatasubramani et al. Fast computation of scalar multiplication over binary edwards curve processor against side channel attack
Hakuta et al. Some properties of τ-adic expansions on hyperelliptic Koblitz curves
Trujillo-Olaya et al. Half-matrix normal basis multiplier over GF ($ p^{m} $)
Li et al. A DNA sticker algorithm for parallel reduction over finite field GF (2ˆn)
JP3604126B2 (ja) 循環窓加算装置、その方法及びそのプログラム記録媒体
Baczyńska-Wilkowska Comparison of Traditional and Elliptic Curves Digital Signatures Providing the Same Security Level
Kasianchuk et al. Theoretical Bases for Reducing the Time Complexity of the Rabin Cryptosystem
Arunachalamani et al. High Radix Design for Montgomery Multiplier in FPGA platform
Zhang et al. Improving ECDLP Computation in Characteristic 2
Dhumal et al. Sparse linear algebra in function field sieve
Ezzouak et al. Optimizing the computing of pairing with Miller’s algorithm
Jeon et al. Cellular automata architecture for elliptic curve cryptographic hardware

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