CN1809807A - 改进的求逆计算 - Google Patents

改进的求逆计算 Download PDF

Info

Publication number
CN1809807A
CN1809807A CNA2004800173109A CN200480017310A CN1809807A CN 1809807 A CN1809807 A CN 1809807A CN A2004800173109 A CNA2004800173109 A CN A2004800173109A CN 200480017310 A CN200480017310 A CN 200480017310A CN 1809807 A CN1809807 A CN 1809807A
Authority
CN
China
Prior art keywords
variable
mod
equipment
computer program
auxiliary
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
CNA2004800173109A
Other languages
English (en)
Other versions
CN1809807B (zh
Inventor
G·T·M·胡伯特
S·M·范里恩斯沃
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1809807A publication Critical patent/CN1809807A/zh
Application granted granted Critical
Publication of CN1809807B publication Critical patent/CN1809807B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/721Modular inversion, reciprocal or quotient calculation
    • 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/726Inversion; Reciprocal calculation; Division of elements of a finite field

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Lock And Its Accessories (AREA)
  • Organic Low-Molecular-Weight Compounds And Preparation Thereof (AREA)
  • Mold Materials And Core Materials (AREA)
  • Stored Programmes (AREA)

Abstract

一种椭圆曲线密码学求逆技术,利用对满足指定不变式的四个辅助变量U、V、R和S的MSW所进行的操作。

Description

改进的求逆计算
本发明涉及一种用于执行求逆运算的方法和用于执行求逆运算的设备。
椭圆曲线密码学(Elliptic Curve Cryptography ECC)包括在GF(P)或GF(2n)上椭圆曲线关系的计算的应用,并且要求在例如密码处理器中执行公开密钥算法期间重复地执行长整数乘法。
典型情况下,必须执行乘法运算数百次以便完成加密或解密运算,因此重要的是:用于执行这些运算的密码装置使用高速乘法器来迅速地执行长整型乘法。
ECC计算还要求求逆计算,即计算Z-1,以致积Z.Z-1=1 mod N。每个点相加和点复算要求这种计算。本算法在计算上是密集的。
另一种方式是在所谓的射影空间(Projective Space)中工作。这把求逆计算推迟到最后并且必须一次完成,但是作为权衡的是:大量地增加了乘法的次数。
这种密码算法日益用于例如智能卡之类的电子装置中,并且在这些应用中严重地限制了处理能力和功率消耗。
一种常规的计算方法是利用辅助变量对来工作的二进制GCD系统。一个辅助变量对的大小通过当是偶数时除以2或者当是奇数时作减法来加以缩小。
然而,在GCD系统中常常有必要通过加上模的半数来校正另一对辅助变量上的运算。
另一常规的计算方法是Kaliski系统,所述系统同样使用两个辅助变量对,一对辅助变量通过当是偶数时除以2或者当是奇数时作减法来缩小。
然而在此系统中,所要求的所有校正都被延迟到了第二阶段。
本发明的目的是提供更高效的求逆运算。
本发明的目的还在于提供具有较少运算的求逆过程。
本发明的目的还在于提供一种比在常规系统中更快完成的求逆运算。
依照一个方面,本发明提供了一种用于在具有至少两个辅助变量的密码计算中执行求逆运算的方法,所述方法包括移位变量,然后通过把该变量从较大变量中减去来实现缩小。
本发明的一个优点在于:大多数运算仅仅对辅助变量的最高有效字(Most Significant Words)进行。在多次这种计算之后,对完全的辅助变量进行多次乘法,这更为简单。
这些优点使得与常规方法相比减少了必要运算的次数,由此确保可以更迅速地实现计算。
因而由本发明所提供的显著益处在于:降低了用于完成整个计算操作所花费的时间。
此外,与常规的加密方法相比,保持了由本发明方法所提供的安全度。
优选地是,所述方法包括四个辅助变量U、V、R和S,它们满足不变式:
|S.V-R.U|=N
S.Y=U mod N
R.Y=V mod N.
优选地是,所述方法利用变量的最高有效字来进行运算。
因而本发明的优点在于更快地实现计算操作。
依照另一方面,本发明提供了可直接装入数字计算机内部存储器的计算机程序产品,包括用于当所述产品在计算机上运行时执行本发明方法的软件代码部分。
依照另一方面,本发明提供了可直接装入数字计算机内部存储器的计算机程序,包括用于当所述程序在计算机上运行时执行本发明方法的软件代码部分。
依照另一方面,本发明提供了具体化本发明的计算机程序的载波,所述载波可以包括电子信号。
依照另一方面,本发明提供了计算机程序产品或计算机程序或本发明的载波的电子分发。
依照另一方面,本发明提供了一种用于在具有至少两个辅助变量的密码计算中执行求逆运算的设备,所述设备包括用于移位变量的装置,和用于通过把该变量从较大变量中减去或加上来实现缩小的装置。
本发明的方法和设备适用于在GF(P)、GF(2n)上的计算,也适用于长整数除法。
为了可以更容易地理解本发明,现在仅以举例形式参考附图给出了描述,其中:
图1是本发明应用在智能卡中的框图;
图2是使本发明具体化的求逆运算的示意图;
图3是本发明的硬件实现方式;
图4是本发明的进一步详细的硬件实现方式;
图5是本发明另一求逆运算的示意图;
图6是本发明再一求逆运算的示意图;
图7是本发明进一步操作的示意图。
图1示出了本发明硬件实现方式的框图,包括具有以下组件的智能卡50:
●微控制器51,用于总控制经由接口与外界的通信。它设置RAM/ROM中数据的指针并且启动协处理器。
●到外界的接口,用于例如依照ISO-7816-3来与智能卡联系。
○只读存储器(Read Only Memory ROM)52,用于存储微控制器的程序。
○可编程只读存储器(闪存或EEPROM)53,用于非易失性存储数据或程序。
○RAM 54,用于存储易失性数据,例如用于存储在计算期间的中间结果。
○协处理器55,专用于执行ECC或RSA计算的特殊高速任务。当任务就绪时,把控制返回给微控制器。
在一个变式中,采用软件来实现本发明,其中微处理器、ALU提供加、减、移位运算,对控制器编程以提供控制逻辑,以及由移位寄存器来检测度。
在图e中示出了本发明如下所述的求逆运算。
因而这种在GF(p)上进行的计算方法包括如下运算:
R=Y-1 mod N
具有四个辅助变量U、V、S和R,其中
U=Y
V=N
S=1
R=0,
U和V总是正值。
辅助变量的度是用于表示它的相关位的数目。因而例如,如果U=111100,那么U的度=dU是6;
并且如果V=001110,那么V的度=dV是4。
所述运算包括对B取:
B=dU-dV(步骤S1);
并且,如果b<0,那么执行如下运算(步骤S2,S3):
(swap U,V)
(swap R,S)
(swap dU,dV)
b=-b
那么U=U-2b.V
    S=S-Sb.R
并且如果(U<0)
那么(步骤S4)U=-U
S=-S,
如果(R<0),那么R=R+N
如果(R>N),那么R=R-N。
因而,在每个循环迭代之后,以下不变式有效:
gcd(U,V)=gcd(Y,N)
SY=U mod N
RY=V mod N
|SV-RU|=N。
在每个步骤中,减小U的度,或者减小V的度。因此U和V变得越来越小,直到在最后步骤中U变为0(U=2bV)。
由于U=0,不变式gcd(U,V)=gcd(Y,N)意味着V=gcd(Y,N)=1,这是因为Y和N是互质的。
于是,RY=1 mod N,或者R=Y-1 mod N。
当U=0时,-N<R<2N
给出至多一个校正步骤即:加上或减去N。
在实践中,R表现得总是小于N,因而使得减去N从不出现。
此外,|SV|<2N和|RU|<2N是暂时的。
由于它们都是整数,所以
|S|<2N;
|V|<2N;
|R|2N;
|U|2N。
对于这些变量,只有大于N的一位要求表示它们。对于S和R,也需要符号位。
图2示出了依照本发明方法的硬件实现方式。
寄存器10、11、12和13保持变量U、V、S、R。加法器14、15执行加法、减法、求反和mod 2加法。V和R可以被在b位上移动。控制逻辑16控制所述过程。存在两个度检测器17、18,一个用于U而一个用于V。d减法器(dSubtractor)19给出差(b)。
最初,把Y载入U,把N载入V,把S设置为1并且把R设置为0。
然后过程开始。
当b<0时,U和V交换它们的内容,S和R亦如此,而b被求反。
两个加法器都被设置为用于减法,并且移位器被设置为在b位上移动。然后执行减法。当U是负的时,加法器被设置为对U和S求反。
只要U≠0就进行所述过程。
当U=0并且R<0或R>N时,把N装入S。然后计算R+N或R-N。
通常,操作数由多个字组成。然而,在一个变式中,可以通过只使用两个变量和4个辅助变量的、大小只有1个字的最高有效字来加速计算,同时保持不变式有效。这还节省了芯片面积和功率。结果被用作为用来对整个操作数进行随后计算的估计量。
图3示出了更详细的硬件实现方式。寄存器30到35,每个都具有1个字长的容量,保持UH、VH、uu、uv、vu和vv。
UH和VH最初被装入U和V的最高有效字。
U=uu.U0-uv.V0
V=vu.U0-vv.V0
S=uu.S0-uv.R0
P=vu.S0-vv.R0
uu、uv、vu和vv是适当大小的字。
操作从uu=1、vv=-1以及uv=vu=0开始,
U0=Y;
V0=N;
S0=1;
R0=0。
假定在多个步骤之后,这些等式仍然是正确的。在下一计算之后,这些等式仍然是正确的。由于它们在开始时是正确的,所以它们保持正确。
当计算U’=U-2bV和S’=S-2bR时,那么选择:
uu′=uu-2bvu
uv′=uv-2bvv
vu′=vu
vv′=vv。
当有必要计算U’=U+2bV并和S’=S+2bR时,那么选择:
uu′=uu+2bvu
uv′=uv+2bvv
vu′=vu
vv′-vv。
当要求时,交换uu和vu,uv和vv。
这交换了U和V以及R和S。
为了更新操作数,以把U的MSW加载到UH并且把V的MSW加载到VH开始。然后,
uu=1,vv=-1并且uv=uv=0。
然后进行多次计算,计算量取决于字的大小以及剩下多少有用的位。
由于VH被移位,所以用零来代替(未知的)右边的位,这样UH和VH变得越来越小。当几乎不剩下位时停止运算。符号的确定也变得不正确。
然后借助于uu...vv和U0...S0来计算U、V、S和R。
这给出了新的缩小值U和V,其仍然遵守不变式。
然后把U0设置为U,V0设置为V并且对S0和R0也这样做。再次设置uu=1,vv=-1并且uv=vu=0。
然后重复所述过程。每次U和V都变得越来越小,直到它们适于装入UH和VH寄存器。
然后计算不再是估算,而是确切的计算并且以正确结果结束。最后,只须重新计算R以便找到Y-1
在图1到4的方法的变式中,计算方法允许U和V为负值,并且当U是负的时除去校正步骤(参见图5)。
正数的度是在除去所有前导零之后位的数目,而负数的度是在除去所有前导一之后位的数目。
同样,辅助变量是:
U=Y;
V=N;
S=1;
R=0;
当U≠0时,并且
如果(b<0)那么实现:
{swap(U,V);swap(R,S)swap(dU,dV);b=-b};
如果(Sign(U)=Sign(V))
那么实现
{U=U-2b.V;S=S-2b.R;}
否则
{U=U+2b.V;S=S+2b.R;}
dU=degree(U);
如果(R<0),那么R=R+N;
如果(R>N),那么R=R-N.
图6示出了第二实施例,该实施例是在GF(2n)上的计算方法,主要区别在于:
α是多项式U、V、S和R的变量;
N是不可约多项式;
由于没有负值并且只存在mod 2的加法,所以此算法更为简单。
因而,在
U=Y;
V=N;
S=1;
R=0;
的情况下,
当(U>0)时,
b=dU-dV
如果(b<0){swap(U,V);swap(R,S);swap(dU,dV);b=-b;}
U=Uαb.V;
S=Sαb.R;
d=degree(U);
如果(R>N),R=RN。
因而,最初把Y载入U,把N载入V,把S设置为1并且把R设置为0。
然后过程开始(步骤S10-S12)。
当b<0时,U和V交换它们的内容,S和R亦如此,而b被求反。
两个加法器总是被设置为加上mod 2。移位器被设置为在b位上移动。然后执行加法。
只要U≠0就进行此过程。
当U=0并且R=R>N时,把N装入S,然后计算RN。
图7示出了第三实施例,其是用于长整数除法的计算方法,主要区别在于:
最初,把X载入U,把Y载入V,把S设置为0并且把R设置为1。
当U>0时,UV加法器被设置为用于减法,而RS加法器被设置为用于加法,或者相反,视情况而定。移位器被设置为在b位上移动。然后执行加法/减法操作。
只要U≠0并且b≥0就进行此过程。
当过程就绪并且U<0时,那么b被设置为0。然后执行一个加法/减法(U=U+V;S=S-R)。
然后U是余数R’,而S是商Q,X=Q.Y+R’,其中0≤R’<Y。

Claims (23)

1.一种用于在具有至少两个辅助变量的密码计算中执行求逆运算的方法,所述方法包括移位(S2)变量,然后通过把该变量从较大变量中减去来实现缩小(S3)。
2.如权利要求1所述的方法,其中所述变量具有相同的度。
3.如权利要求1或2所述的方法,包括更新多个附加变量以致不变式保持有效。
4.如前面权利要求中任何一个所述的方法,包括四个辅助变量U、V、R和S,它们满足不变式:
|S.V-R.U|=N
S.Y=U mod N
R.Y=V mod N。
5.如权利要求4所述的方法,包括逐步地减小U和V直到U=1。
6.如权利要求5所述的方法,包括实现操作R.Y=1 mod N或R=Y-1 mod N,视情况而定。
7.如前面权利要求中任何一个所述的方法,包括用所述变量的最高有效字来进行计算。
8.如前面权利要求中任何一个所述的方法,包括在GF(P)上提供求逆(S1-S4)。
9.如前面权利要求中任何一个所述的方法,包括在GF(2n)上提供求逆(S10-S12)。
10.如前面权利要求中任何一个所述的方法,包括提供用于长整数除法操作的方法。
11.一种可直接装入数字计算机内部存储器的计算机程序产品,包括用于当所述产品在计算机上运行时执行如权利要求1到10中任何一个或多个所述的方法的软件代码部分。
12.一种可直接装入数字计算机内部存储器的计算机程序,包括用于当所述程序在计算机上运行时执行如权利要求1到10中任何一个所述的方法的软件代码部分。
13.一种用于权利要求12的计算机程序的载波,所述载波可以包括电子信号。
14.权利要求11的计算机程序产品或权利要求12的计算机程序或权利要求13的载波的电子分发。
15.一种用于在具有至少两个辅助变量的密码计算中执行求逆运算的设备,所述设备包括用于移位变量(V,R)的装置,和用于通过把该变量从较大变量中减去或加上来实现缩小的装置(10-17)。
16.如权利要求15所述的设备,其中变量(V,R)在不移位的情况下具有相同的度。
17.如权利要求15或16所述的设备,包括用于更新多个附加变量以致不变式保持有效的装置。
18.如权利要求15到17中任何一个所述的设备,包括用于运算四个辅助变量U、V、R和S的装置(10-13),所述辅助变量满足不变式:
|S.V-R.U|=N
S.Y=U mod N
R.Y=V mod N。
19.如权利要求18所述的设备,包括用于逐步地减小U和V的大小直到U=1的装置(10,11)。
20.如权利要求19所述的设备,包括用于根据情况而实现操作R.Y=1 mod N或R=Y-1 mod N的装置。
21.如权利要求15到20中任何一个所述的设备,包括用于利用所述变量的最高有效字进行运算的装置。
22.一种用于基本上参考附图中的任何一个或多个附图所述、和/或如在其中所图示的密码计算来执行求逆运算的设备。
23.一种用于基本上参考附图中的任何一个或多个附图所述、和/或如在其中所图示的密码计算来执行求逆运算的方法。
CN2004800173109A 2003-06-21 2004-06-10 改进的求逆计算 Expired - Fee Related CN1809807B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0314562.0 2003-06-21
GBGB0314562.0A GB0314562D0 (en) 2003-06-21 2003-06-21 Improved inversion calculations
PCT/IB2004/001981 WO2004114123A2 (en) 2003-06-21 2004-06-10 Improved inversion calculations

Publications (2)

Publication Number Publication Date
CN1809807A true CN1809807A (zh) 2006-07-26
CN1809807B CN1809807B (zh) 2012-05-09

Family

ID=27637130

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800173109A Expired - Fee Related CN1809807B (zh) 2003-06-21 2004-06-10 改进的求逆计算

Country Status (8)

Country Link
US (1) US20070016635A1 (zh)
EP (1) EP1639448B1 (zh)
JP (1) JP2007520728A (zh)
CN (1) CN1809807B (zh)
AT (1) ATE360853T1 (zh)
DE (1) DE602004006126T2 (zh)
GB (1) GB0314562D0 (zh)
WO (1) WO2004114123A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103389965A (zh) * 2013-07-05 2013-11-13 福建升腾资讯有限公司 一种实现sm2密码体制的大整数求乘逆方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8020142B2 (en) * 2006-12-14 2011-09-13 Intel Corporation Hardware accelerator
JP7414675B2 (ja) 2020-09-11 2024-01-16 キオクシア株式会社 逆元演算装置及びメモリシステム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL121297A0 (en) * 1997-07-14 1998-02-22 L P K Information Integrity Lt A method and apparatus for the efficient execution of elliptic curve cryptographic operations
IL135247A0 (en) * 2000-03-23 2003-06-24 Cipherit Ltd Method and apparatus for the calculation of modular multiplicative inverses

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103389965A (zh) * 2013-07-05 2013-11-13 福建升腾资讯有限公司 一种实现sm2密码体制的大整数求乘逆方法
CN103389965B (zh) * 2013-07-05 2016-04-20 福建升腾资讯有限公司 一种实现sm2密码体制的大整数求乘逆方法

Also Published As

Publication number Publication date
GB0314562D0 (en) 2003-07-30
WO2004114123A2 (en) 2004-12-29
US20070016635A1 (en) 2007-01-18
EP1639448A2 (en) 2006-03-29
WO2004114123A3 (en) 2005-03-24
DE602004006126T2 (de) 2007-12-27
DE602004006126D1 (de) 2007-06-06
ATE360853T1 (de) 2007-05-15
CN1809807B (zh) 2012-05-09
EP1639448B1 (en) 2007-04-25
JP2007520728A (ja) 2007-07-26

Similar Documents

Publication Publication Date Title
CN1296817C (zh) 模乘方法及装置及模乘计算单元
CN1242321C (zh) 应用蒙哥马利算法的幂剩余运算器
CN1702613A (zh) 蒙哥马利模乘法器
CN1306390C (zh) 使用带符号的数位表示的乘法器
CN1287257C (zh) 用于算术表达式优化的方法和装置
CN1153129C (zh) 用于处理器定制操作的设备
CN1961284A (zh) 使用n位乘加操作实现不变量除数的整数除法的方法和系统
CN1259617C (zh) 一种加快rsa加/解密过程的方法及其模乘、模幂运算电路
CN1607518A (zh) 在Montgomery乘法内利用SIMD指令
CN1296813C (zh) 浮点存储方法及浮点运算装置
CN1728634A (zh) 伽罗瓦域中相乘的方法和设备与求逆设备及字节替换设备
CN1764881A (zh) 协助处理密码消息的指令
CN1684058A (zh) 处理器
CN1164039C (zh) 里德-所罗门编码装置
CN1630204A (zh) 具有矩阵转换技术的循环冗余码计算方法及系统
CN1530824A (zh) 用于执行蒙哥马利型模乘法的装置及方法
CN1806224A (zh) 用于防御微分功率分析攻击的方法
CN1739094A (zh) 防止隐蔽信道攻击的整数除法方法
CN1809807A (zh) 改进的求逆计算
CN1571952A (zh) 用于椭圆曲线上的点的通用计算方法
US20090028325A1 (en) Circuit arrangement for and method of performing an inversion operation in a cryptographic calculation
CN1326566A (zh) 对多个带符号的数据值执行算术运算的数据处理系统和方法
CN1536769A (zh) 随机序列产生设备、加密/解密设备及其方法和程序
CN2864808Y (zh) 椭圆曲线加密算法的协处理器
CN1313918C (zh) 在有限域中用于基转换的方法和设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: KONINKLIJKE PHILIPS ELECTRONICS N.V.

Effective date: 20071012

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20071012

Address after: Holland Ian Deho Finn

Applicant after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Applicant before: Koninklijke Philips Electronics N.V.

C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120509

Termination date: 20130610