CN101366232A - 同步标量乘法算法 - Google Patents

同步标量乘法算法 Download PDF

Info

Publication number
CN101366232A
CN101366232A CN200680045391.2A CN200680045391A CN101366232A CN 101366232 A CN101366232 A CN 101366232A CN 200680045391 A CN200680045391 A CN 200680045391A CN 101366232 A CN101366232 A CN 101366232A
Authority
CN
China
Prior art keywords
mentioned
bit
scalar
computing
multiplication
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
CN200680045391.2A
Other languages
English (en)
Other versions
CN101366232B (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.)
Maliki Innovation Co ltd
Original Assignee
Certicom 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 Certicom Corp filed Critical Certicom Corp
Publication of CN101366232A publication Critical patent/CN101366232A/zh
Application granted granted Critical
Publication of CN101366232B publication Critical patent/CN101366232B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • 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/20Manipulating the length of blocks of bits, e.g. padding or block truncation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Executing Machine-Instructions (AREA)
  • Catalysts (AREA)
  • Exhaust Gas Treatment By Means Of Catalyst (AREA)

Abstract

在计算椭圆曲线方案的点乘(例如kP和sQ)中,分别使用如蒙哥马利算法以达到加和kP+sQ的目的,在分别计算kP和sQ时,若干重复的运算可同时执行。本发明提供一种同步标量乘法算法可减少加倍和加和运算的总数,因而为多标量乘法提供一种高效的算法。P和Q算法的对中的元素被组合成单一对,且k和s的位在每一步中被作为位元对来评估。当k和s的位相等时,仅需要一个加倍运算和一个加和运算来计算当前位;当k和s的位不等时,仅需要一个加倍运算和两个加和运算。

Description

同步标量乘法算法
技术领域
【0001】本发明涉及密码学领域,且特别应用于椭圆曲线加密和及其标量乘法算法。
背景技术
【0002】在椭圆曲线算法中,点乘涉及一种一条椭圆曲线上的一点乘以一个整数的操作。众所周知,点乘占用椭圆曲线加密方案的大部分执行时间。
【0003】一种执行点乘以计算kP值的方法为蒙哥马利(Montgomery)算法,其中k为整数且P为一条椭圆曲线E上的点。在蒙哥马利算法的一种实施方法中,该整数k表示一系列的二进制的位。蒙哥马利标量乘法利用以(mP,(m+1)P)开始的序列和k的位来计算kP。该系数m为一任意整数,表示前一对的第一项中P的系数。在该序列中,每一对通过将前一对的一个分量加倍并加和两个分量而得到,其中这些操作的顺序取决于k的位的数值。该序列由一对起始对开始,并除了最高有效位之外针对k的每一位计算一个新的对。对所有的对而言,第二分量与第一分量相差P。这允许点加倍和点加和中利用更有效的规则。
【0004】在实践中,该序列以(P,2P)开始,这里P为第一项,2P为第二项,因此m=1。该整数k的最高有效位被丢弃,且从k的第二最高有效位至最低有效位,下一对按如下方式进行计算。
【0005】对每一步而言,如果当k的前位为零(0)(例如,对第二步而言,如果k的第二最高有效位为零),当前第一项为之前的第一项的两倍,且当前的第二项为之前的第一和第二项的和。然而,如果k的当前位为1,当前的第一项为之前的第一和第二项的和,且当前第二项为之前的第二项的两倍。
【0006】例如,以(mP,(m+1)P)开始,如果k的当前位为0,则在下一步中当前对为(2*mP,mP+(m+1)P)=(2mP,(2m+1)P)。或者,如果当前k位为1,则当前对为(mP+(m+1)P,2*(m+1)P)=((2m+1)P,(2m+2)P)。由此可知,每一步包括一个加倍运算和一个加和运算。该序列持续为每一当前位计算一个对,直到k的最后一位,且此时当前对的第一项(例如,计算得到的最后一对的第一项)包含kP的期望值。
【0007】图1所示为蒙哥马利算法的一个示例。在图1所示的示例中,k=45=1011012。该序列以(P,2P)开始,且从i=5至i=0,针对k的当前位运算得到一个新的对。
【0008】为说明上述使用的一般方法,请参照i=3步,这里k的当前位为1,且前一对为(2P,3P)(即,从i=4步)。由于当前位为1,当前的第一项按照2P+3P=5P计算得到,如图1的图表中i=3步所示。当前第二项由2*3P=6P计算得到,这在图表中也有示出。另一种计算项的方式是基于m值,在这步中等于2(即,在i=4步中的P的系数等于2)。因此,当前第一项按照(2*2+1)P=5P来计算得到,且当前的第二项按照(2*2+2)P=6P计算得到。在i=0步,由于k=45,如预期所料,45P的值对应于期望的kP值。
【0009】在某些椭圆曲线加密操作中,比如椭圆曲线数字签名算法(EllipticCurve Digital Signature Algorithm,ECDSA)验证,计算标量乘法的组合以得到kP+sQ,这里Q是该椭圆曲线E上的另一点,且s是另一标量。可以使用蒙哥马利算法来获得kP+sQ,然而,每一标量乘法需要分别完成,且两个结果值(即kP和sQ)将随后加和以获得同步乘法kP+sQ。因此,为获得kP+sQ,针对k和s的每一位都需要进行加倍运算和加和运算。
【0010】由于标量乘法占用椭圆曲线加密方案的大部分执行时间,上述蒙哥马利算法的在验证步骤中的使用将可能被认为是各种典型应用中较为低效的。
【0011】因此,本发明的一个目的为消除或缓解上述至少一个不足之处。
发明内容
【0012】提供一种在蒙哥马利算法中有特殊应用的同步点乘算法。与利用蒙哥马利算法分别逐点相乘相比较而言,该算法减少加倍运算的次数并在某些情况下减少加和运算的次数。
【0013】一方面,本发明提供一种在椭圆曲线密码系统中用于同步执行第一标量k乘以椭圆曲线E上的第一点P的第一乘法以及第二标量s乘以上述椭圆曲线E上的第二点Q的第二乘法的方法,该方法包括对于t位元对(ki,si),根据上述位元对(ki,si)中表示的值来同步执行上述第一、第二乘法中的至少一个重复的运算以由此减少上述乘法中每一步的数学运算的数量,这里t表示上述标量的总位数,i表示上述第一、第二标量正在被评估的当前位。
【0014】另一方面,本发明提供一种在椭圆曲线密码系统中用于同步执行第一标量k乘以椭圆曲线E上的第一点P的第一乘法以及第二标量s乘以上述椭圆曲线E上的第二点Q的第二乘法的方法,上述第一、第二标量具有不同的位长,上述方法包括:在上述第一、第二标量中较短的标量前补充v个零使得每个标量包含t位,这里t表示最大位长中的位的总数;丢弃上述第一标量k的最高有效位,并丢弃上述第二标量s的最高有效位;对包含未丢弃的填充零的v-1对位元对(ki,si)而言,对上述第一、第二标量中较长的标量执行蒙哥马利算法,这里i表示上述第一、第二标量正在被评估的当前位;对剩下的t-v-1对位元对(ki,si)而言,根据上述位元对(ki,si)中表示的值同步执行上述位元对(ki,si)的第一、第二乘法中至少一个重复的运算,以因此减少上述乘法中每一步的数学运算的数量。
附图说明
【0015】以下将以将结合附图的方式对本发明的一个实施例进行描述。
【0016】图1为说明蒙哥马利算法应用于标量乘法的一个实施方法的图表。
【0017】图2为一个密码通信系统。
【0018】图3为说明同步标量乘法算法的一个实施例的图表。
【0019】图4为说明该同步标量乘法算法另一实施例的图表。
具体实施方式
【0020】请参阅图2,一个加密通信系统用标号10来标示。该系统10具有第一通信器12和第二通信器14,可通过信道(communication channel)16相互通信。该信道16可为安全或非安全的。每一通信器分别具有一个密码模块18、20,用于执行密码操作。
【0021】更宜地,每一密码模块18、20能够执行椭圆曲线密码操作,比如一个或多个整数与在域Fq内该椭圆曲线上的一个或多个点的点乘法。这种密码运算包括,例如,椭圆曲线数字签名算法(ECDSA)以及执行该算法的步骤。在此所记载的实施例特别适用于ECDSA验证,这里计算kP+sQ组合的值,且此时P和Q无值表(pre-computed table)可查。
【0022】应当意识到在此所记载的实施例也可用于其它有关多点乘法的密码运算,且应该不限于此处所记载的ECDSA验证中的kP+sQ组合的运算。
【0023】当使用蒙哥马利算法分别计算kP和sQ时,申请人发现在计算kP和sQ中一些运算是重复的,且能由一项单一运算来执行。以下讨论一种同步标量乘法算法,其能减少加倍和加和运算的总次数因而提供高效的多标量乘法。
【0024】在当前的同步标量乘法算法中,在计算kP和sQ时所使用的对被组合以产生单一运算对(mP+nQ,(m+1)P+(n+1)Q)。该起始对中如果m=n=1,则该起始对为(P+Q,2(P+Q)),且k和s的最高有效位被丢弃。对该算法中所有的对而言,第二分量与第一分量相差P+Q。这允许在点加倍和点加和中利用更有效的规则。
【0025】在该实施例中,整数k和s由一系列二进制的位来表示。因此,在该同步算法的每一步,都涉及位元对(ki,Si),由k的一个位和s的一个位组成。每一步引入两位,且每一位由一个二进制的数表示,因此在本示例中可能的位元对为(0,0)、(1,1)、(0,1)和(1,0)。一般而言,每一标量有t位,且求值从i=t-1开始进行至i=0,例如,这里kt为最高有效位且k0为最低有效位。
【0026】当位元对为(0,0)和(1,1),针对k和s会执行类似的运算,这样P和Q的加倍运算和前一对的各项的加和运算可同步进行。因此,由于对P和Q操作仅需要一个加倍和一个加和,当位元对为(0,0)和(1,1)时当前kP+sQ的同步标量乘法需要这些加倍运算的一半和这些加和运算的一半。
【0027】当位元对为(0,0)时,P和Q的每个当前第一项需要对之前的第一项进行加倍运算,且每一第二项变成之前第一和第二项的和。因此,从(mP+nQ,(m+1)P+(n+1)Q)开始,当k和s的当前位均为0时,下一对为(2*(mP+nQ),mP+nQ+(m+1)P+(n+1)Q),可简化为:
情形1(0,0):(2mP+2nQ,(2m+1)P+(2n+1)Q);
这里m和n分别为上一步中P和Q的系数。
【0028】当位元对为(1,1)时,P和Q的每个当前第一项变成之前的第一和第二项的和,且每个第二项需要对之前的第二项进行加倍运算。因此,从(mP+nQ,(m+1)P+(n+1)Q)开始,当k和s的当前位均为1时。下一对为(mP+nQ+(m+1)P+(n+1)Q,2*((m+1)P+(n+1)Q),可简化为:
情形2(1,1):((2m+1)P+(2n+1)Q,(2m+2)P+(2n+2)Q);
这里m和n分别为上一步中P和Q的系数。
【0029】因此,在k的位和s的位相同时,在计算kP+sQ的序列中需要一半的运算次数来计算当前步,由此提高多点标量乘法的运算效率。
【0030】当位元对为(0,1)和(1,0)时,kP和sQ需要不同的运算,然而可避免某些重复,特别是重复的加倍运算。当位元对为(0,1)和(1,0)时,kP+sQ的同步标量乘法仅需要一半的加倍运算,因而需要整个运算的四分之三的操作。
【0031】当位元对为(0,1)时,P和Q的当前的第一项分别需要一个加倍和一个加和运算,且P和Q的当前的第二项需要相反的运算。申请人发现当前第一项可通过将之前的第一项加倍并加Q来计算,且当前第二项可通过将当前第一项加(P+Q)来计算,因而仅需要一个加倍和两个加和运算,可同时适应P和Q,。因此,从(mP+nQ,(m+1)P+(n+1)Q)开始,下一对(其中k的当前位为0,且s的当前位为1)为(2*(mP+nQ)+Q,2*(mP+nQ)+Q+(P+Q)),可简化为:
情形3(0,1):(2mP+2nQ,(2m+1)P+(2n+1)Q+Q);
这里m和n分别为上一步中P和Q的系数。
【0032】在位元对为(1,0)时,P和Q的当前的第一项分别需要一个加和和一个加倍运算,且P和Q的当前的第二项需要相反的运算。为同时适应P和Q,申请人发现当前第一项可通过将之前的第一项加倍并加P来计算,且当前第二项可通过将当前第一项加(P+Q)来计算,因而仅需要一个加倍和两个加和运算。因此,从(mP+nQ,(m+1)P+(n+1)Q)开始,下一对(其中k的当前位为1,且s的当前位为0)为(2*(mP+nQ)+Q,2*(mP+nQ)+Q+(P+Q)),可简化为:
情形4(1,0):(2mP+2nQ+P,(2m+1)P+P+(2n+1)Q);
这里m和n分别为上一步中P和Q的系数。
【0033】因此,在k的位和s的位不同的情况下,在计算kP+sQ的序列中需要四分之三的运算次数来计算当前步,由此提高多点标量乘法的运算效率。
【0034】该序列持续针对每一位元对计算下一位元对(评估上述哪种情形为所需),直到k和s的最低有效位,且就在此处当前对(例如计算得到的最后一对)包含作为其第一项的kP+sQ期望值。
【0035】上述实施例的一个示例如图3所示。在图3中所示的示例中,k=45=1011012、s=54=1101102,且k和s具有相同的位长,这里t=6。该序列从(P+Q,2P+2Q)开始,且从i=5至i=0而言,针对当前位元对按照如下方式计算一个新的对。
【0036】k的最高有效位和s的最高有效位被丢弃,且在i=4步进行第一次运算。在此步中,k的当前位为零(0),s的当前位为一(1),且之前对(即起始对)为(P+Q,2P+2Q)。由于当前位元对为(0,1),当前第一项通过将之前的第一项加倍并加上Q来计算,即2*P+2*Q+Q=2P+3Q,如图3的图表中i=4步所示。当前第二项通过当前的第一项加上(P+Q)来计算,即2P+3Q+(P+Q)=3P+4Q,这在上述图表中也有示出。另一种计算该项的方式是基于m和n的值,在这步中分别等于1和1(即在i=5中P和Q的系数)。因此,当前第一项按照2*1P+2*1Q+Q=2P+3Q计算,且当前的第二项按照(2*1+1)P+(2*1+1)Q+Q=3P+4Q来计算,与上文中已计算过的一样。
【0037】在i=3步中,k的当前位为一(1),s的当前位为零(0),且前一对为(2P+3Q,3P+4Q)。由于当前位元对为(1,0),当前的第一项通过将之前的第一项加倍并加上P来计算,即2*2P+2*3Q+P=5P+6Q,如图3的图表中i=3步所示。当前第二项通过将当前第一项加上(P+Q)来计算,即5P+6Q+(P+Q)=6P+7Q,这在上述图表中也有示出。应当意识到该对也可如上文所述基于m和n的值来计算。
【0038】在i=2步中,k的当前位为一(1),s的当前位为一(1),且前一对为(5P+6Q,6P+7Q)。由于当前位元对为(1,1),当前的第一项按照将之前的各项加和来计算,即5P+6P+6Q+7Q=11P+13Q,如图3的图表中i=2步所示。当前第二项通过将之前的第二项加倍来计算,即2*6P+2*7Q=12P+14Q,这在上述图表中也有示出。应当意识到该对也可如上文所述基于m和n的值来计算。
【0039】在i=1步中,k的当前位为零(0),s的当前位为零(0),且前一对为(11P+13Q,12P+14Q)。由于当前位元对为(0,1),当前的第一项通过将之前的第一项加倍并加上Q来计算,即2*11P+2*13Q+Q=22P+27Q,如图3的图表中i=1步所示。当前第二项通过将当前的第一项加上(P+Q)计算,即22P+27Q+(P+Q)=23P+28Q,这在上述图表中也有示出。应当意识到该对也可如上文所述基于m和n的值来计算。
【0040】最后在i=0步,k的当前位为一(1),s的当前位为零(0),且前一对为(22P+27Q,23P+28Q)。由于当前位元对为(1,0),当前的第一项通过将之前的第一项加倍并加上P来计算,即2*22P+2*27Q+P=45P+54Q,如图3的图表中i=1步所示。当前第二项通过将当前的第一项加上(P+Q)计算,即45P+54Q+(P+Q)=46P+54C,这在上述图表中也有示出。应当意识到该对也可如上文所述基于m和n的值来计算。
【0041】由于k=45、s=54,如预期所料,45P+54Q的值(即最后一对中的第一项)对应于期望的组合kP+sQ。
【0042】在图4中所示的另一实施例中,k和s的位长不同,这里k=5=1012、s=109=11011012。在这种情况下,k的前部补上了v个零,使得位长相等。如图表中所示,从i=6步至i=2步(即针对补上的零和k的第一项),蒙哥马利算法仅对Q执行操作(即对具有较长位长且因此无需补零的标量)。
【0043】因此,该序列从i=6步以(Q,2Q)开始。最高有效位被丢弃,因而,第一次运算在i=5步执行。由于i=5步中k的位为补上的零,因此仅考虑s的位。在这步中,s的位为一(1),且前一对(即第一对)为(Q,2Q)。由于s的位为一(1),当前的第一项按照将之前的项的加和来计算,即Q+2Q=3Q,如图4的图表中i=5步所示。当前的第二项按照将之前的第二项加倍来计算,即2(2Q)=4Q,这在上述图表中也有示出。应当意识到该对也可基于n的值来计算。
【0044】在i=4步中,k的位也为补上的零,因此,仅考虑s的位。在这步中,s的位为零(0),且前一对为(3Q,4Q)。由于s的位为零(0),当前的第一项按照将之前的第一项加倍计算,即2*3Q=6Q,如图4的图表中i=4步所示。当前的第二项按照将之前的各项加和来计算,即3Q+4Q=7Q,这在上述图表中也有示出。应当意识到该对也可基于n的值来计算。
【0045】在i=3步中,k的位为该序列补上的最后的零,因此,仅考虑s的位。在这步中,s位为一(1),且前一对为(6Q,7Q)。由于s位为一(1),当前的第一项按照将之前的各项加和来计算,即6Q+7Q=13Q,如图4的图表中i=3步所示。当前的第二项按照将之前的第二项加倍来计算,即2(7Q)=14Q,这在上述图表中也有示出。应当意识到该对也可基于n的值来计算。
【0046】在i=2步中,k的位不再为补上的零,而是实际数值。因此,该对为该同步乘法的第一对,k的第一位被丢弃,且该对(P,2P)被加到当前的Q值中。当前的Q值通过当前s的值和前一对来计算,s的值为一(1),前一对为(13P,14Q)。由于s的位为一(1),当前第一项的Q部分按照之前各项加和来计算,即13Q+14Q=27Q,如图4的图表中i=2步所示。当前第二项的Q部分按照将之前第二项加倍来计算,即2(14Q)=28Q,这在上述图表中也有示出。应当意识到该对也可基于n的值来计算。该对的完整值通过将当前的Q值加上(P,2P)来得到,如图表中所示其结果为(P+21Q,2P+28Q)。
【0047】下一步(即同步乘法部分的第二步)利用i=1步中的当前位元对(0,0),在这里,前一对为(P+21Q,2P+28Q)。由于当前位元对为(0,0),当前的第一项按照将之前的第一项加倍来计算,即2*P+2*27Q=2P+54Q,如图4的图表中i=1步所示。当前第二项按照将之前的各项加和来计算,即P+27Q+2P+28Q=3P+55Q,这在上述图表中也有示出。应当意识到该对也可基于m和n的值来计算。
【0048】最后,在i=0步中,当前位元对为(1,1),且前一对为(2P+54Q,3P+55Q)。由于当前位元对为(1,1),当前第一项按照将之前的各项加和来计算,即2P+54Q+3P+55Q=5P+109Q,如图4的图表中i=0步所示。当前的第二项通过将之前的第二项加倍来计算,即2*3P+2*55Q=6P+110Q,这在上述图表中也有示出。应当意识到该对也可基于m和n的值来计算。
【0049】由于k=5且s=109,如预期所料,5P+109Q的值(即最后一对的第一项)对应于期望组合kP+sQ。因此,本同步点乘算法对位长不同的整数而言也可轻易实现。
【0050】尽管本发明已参照一些具体的实施例来描述,但本领域的技术人员在不脱离本发明的精神与本发明的权利要求所记载的范围的前提下可作出各种修改。

Claims (15)

1.一种在椭圆曲线密码系统中用于同步执行第一标量k乘以椭圆曲线E上的第一点P的第一乘法以及第二标量s乘以上述椭圆曲线E上的第二点Q的第二乘法的方法,该方法包括对于t位元对(ki,si),根据上述位元对(ki,si)中表示的值来同步执行上述第一、第二乘法中的至少一个重复的运算以由此减少上述乘法中每一步的数学运算的数量,这里t表示上述标量的总位数,i表示上述第一、第二标量正在被评估的当前位。
2.如权利要求1所述的方法,进一步包括丢弃上述第一标量k的最高有效位和丢上述第二标量s的最高有效位。
3.如权利要求1所述的方法,其中上述第一、第二乘法在每一步中由运算对[mP+nQ,(m+1)P+(n+1)Q]来同时代表,其中m表示上述第一点P在之前运算对中的系数,n表示上述第二点Q在之前的运算对中的系数,且据此每一对中第二分量与第一分量相差(P+Q)。
4.如权利要求3所述的方法,其中当上述位元对(ki,si)当前等于(0,0)时,下一运算对为[2mP+2nQ,(2m+1)P+(2n+1)Q]。
5.如权利要求3所述的方法,其中当上述位元对(ki,si)当前等于(1,1)时,下一运算对为[(2m+1)P+(2n+1)Q,(2m+2)P+(2n+2)Q]。
6.如权利要求3所述的方法,其中当上述位元对(ki,si)当前等于(0,1)时,下一运算对为[2mP+2nQ+Q,(2m+1)P+(2n+1)Q]。
7.如权利要求3所述的方法,其中当上述位元对(ki,si)当前等于(1,0)时,下一运算对为[2mP+2nQ+P,(2m+1)P+P+(2n+1)Q]。
8.一种用于执行如权利要求1所述的同步点乘法的密码模块。
9.一种在椭圆曲线密码系统中用于同步执行第一标量k乘以椭圆曲线E上的第一点P的第一乘法以及第二标量s乘以上述椭圆曲线E上的第二点Q的第二乘法的方法,上述第一、第二标量具有不同的位长,上述方法包括:
在上述第一、第二标量中较短的标量前补充v个零使得每个标量包含t位,这里t表示最大位长中的位的总数;
丢弃上述第一标量k的最高有效位,并丢弃上述第二标量s的最高有效位;
针对包含未丢弃的填充零的v-1对位元对(ki,si),对上述第一、第二标量中较长的标量执行蒙哥马利算法,这里i表示上述第一、第二标量正在被评估的当前位;
针对剩下的t-v-1对位元对(ki,si),根据上述位元对(ki,si)中表示的值,同步执行上述位元对(ki,si)的第一、第二乘法中至少一个重复的运算,以因此减少上述乘法中每一步的数学运算的数量。
10.如权利要求9所述的方法,其中针对t-v-1对位元对,每一步中上述第一、第二乘法由运算对[mP+nQ,(m+1)P+(n+1)Q]来同时代表,其中m表示上述第一点P在之前运算对中的系数,n表示上述第二点Q在之前的运算对中的系数,且据此每一对中第二分量与第一分量相差(P+Q)。
11.如权利要求10所述的方法,其中针对上述t-v-1对位元对,当上述位元对(ki,si)当前等于(0,0)时,下一运算对为[2mP+2nQ,(2m+1)P+(2n+1)Q]。
12.如权利要求10所述的方法,其中针对上述t-v-1对位元对,当上述位元对(ki,si)当前等于(1,1)时,下一运算对为[(2m+1)P+(2n+1)Q,(2m+2)P+(2n+2)Q]。
13.如权利要求10所述的方法,其中针对上述t-v-1对位元对,当上述位元对(ki,si)当前等于(0,1)时,下一运算对为[2mP+2nQ+Q,(2m+1)P+(2n+1)Q]。
14.如权利要求10所述的方法,其中针对上述t-v-1对位元对,当上述位元对(ki,si)当前等于(1,0)时,下一运算对为[2mP+2nQ+P,(2m+1)P+P+(2n+1)Q]。
15.一种用于执行如权利要求9所述的同步点乘法的密码模块。
CN200680045391.2A 2005-11-03 2006-11-03 同步标量乘法算法 Active CN101366232B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US73271505P 2005-11-03 2005-11-03
US60/732,715 2005-11-03
PCT/CA2006/001805 WO2007051305A1 (en) 2005-11-03 2006-11-03 Simultaneous scalar multiplication method

Publications (2)

Publication Number Publication Date
CN101366232A true CN101366232A (zh) 2009-02-11
CN101366232B CN101366232B (zh) 2012-05-16

Family

ID=38005395

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680045391.2A Active CN101366232B (zh) 2005-11-03 2006-11-03 同步标量乘法算法

Country Status (9)

Country Link
US (3) US8045705B2 (zh)
EP (3) EP2293491B1 (zh)
JP (2) JP5073669B2 (zh)
CN (1) CN101366232B (zh)
AT (1) ATE507625T1 (zh)
CA (1) CA2626847A1 (zh)
DE (1) DE602006021601D1 (zh)
HK (1) HK1155293A1 (zh)
WO (1) WO2007051305A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8755517B2 (en) 2010-12-08 2014-06-17 Total Technology Solutions Co. Method for generic-point parallel elliptic curve scalar multiplication
US8804952B2 (en) 2012-12-26 2014-08-12 Umm Al-Qura University System and method for securing scalar multiplication against differential power attacks
US8861721B2 (en) 2012-12-26 2014-10-14 Umm Al-Qura University System and method for securing scalar multiplication against simple power attacks
CN106462482A (zh) * 2014-05-08 2017-02-22 高准公司 用于执行故障安全计算的方法
CN107533454A (zh) * 2015-05-06 2018-01-02 高通股份有限公司 用于固定执行流乘数再译码和标量乘法的方法和装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1775880A1 (en) * 2005-10-11 2007-04-18 STMicroelectronics S.r.l. Method of processing information to be confidentially transmitted
US8422685B2 (en) * 2008-02-26 2013-04-16 King Fahd University Of Petroleum And Minerals Method for elliptic curve scalar multiplication
US8548160B2 (en) * 2010-01-13 2013-10-01 Microsoft Corporation Determination of pairings on a curve using aggregated inversions
KR101524661B1 (ko) * 2014-04-03 2015-06-03 고려대학교 산학협력단 재배치를 통한 트리플-베이스 체인 기반 타원곡선 스칼라 곱셈을 위한 연산 장치 및 방법
US9645794B2 (en) * 2014-09-23 2017-05-09 Texas Instruments Incorporated Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography
US9590805B1 (en) * 2014-12-23 2017-03-07 EMC IP Holding Company LLC Ladder-based cryptographic techniques using pre-computed points
EP3376705A1 (en) * 2017-03-17 2018-09-19 Koninklijke Philips N.V. Elliptic curve point multiplication device and method in a white-box context
CN109117677A (zh) * 2018-09-21 2019-01-01 阿里巴巴集团控股有限公司 一种用于椭圆曲线多倍点运算的电路
WO2022146437A1 (en) * 2020-12-30 2022-07-07 Pqsecure Technologies, Llc High-performance systems to validate isogeny-based cryptography keys

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2252078C (en) * 1998-10-28 2009-02-17 Certicom Corp. Power signature attack resistant cryptographic system
JP3820909B2 (ja) * 2001-04-24 2006-09-13 ソニー株式会社 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム
JP2003131568A (ja) * 2001-10-26 2003-05-09 Hitachi Ltd 楕円曲線署名検証方法及び装置並びに記憶媒体
JP4067818B2 (ja) * 2001-12-10 2008-03-26 富士通株式会社 楕円曲線暗号装置、楕円曲線暗号プログラム及び楕円曲線暗号の演算方法
JP4203944B2 (ja) * 2002-01-28 2009-01-07 パナソニック株式会社 楕円曲線演算装置及び楕円曲線演算方法
JP4034585B2 (ja) * 2002-01-28 2008-01-16 松下電器産業株式会社 楕円曲線演算装置及び楕円曲線演算方法
JP3818193B2 (ja) 2002-03-27 2006-09-06 大阪瓦斯株式会社 カーボンナノチューブ含有炭素材料の製造方法
JP2004053814A (ja) * 2002-07-18 2004-02-19 Fujitsu Ltd 楕円曲線暗号装置及び楕円曲線暗号演算方法
AT412916B (de) 2002-07-19 2005-08-25 Avl List Gmbh Verfahren zur simulation des fahrverhaltens von fahrzeugen
CN100461668C (zh) * 2004-12-09 2009-02-11 中国电子科技集团公司第三十研究所 一种用于椭圆曲线密码算法芯片的倍点运算电路

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8755517B2 (en) 2010-12-08 2014-06-17 Total Technology Solutions Co. Method for generic-point parallel elliptic curve scalar multiplication
US8804952B2 (en) 2012-12-26 2014-08-12 Umm Al-Qura University System and method for securing scalar multiplication against differential power attacks
US8861721B2 (en) 2012-12-26 2014-10-14 Umm Al-Qura University System and method for securing scalar multiplication against simple power attacks
CN106462482A (zh) * 2014-05-08 2017-02-22 高准公司 用于执行故障安全计算的方法
CN106462482B (zh) * 2014-05-08 2020-04-14 高准公司 用于执行故障安全计算的方法
CN107533454A (zh) * 2015-05-06 2018-01-02 高通股份有限公司 用于固定执行流乘数再译码和标量乘法的方法和装置
CN107533454B (zh) * 2015-05-06 2019-01-01 高通股份有限公司 用于固定执行流乘数再译码和标量乘法的方法和装置

Also Published As

Publication number Publication date
US8284930B2 (en) 2012-10-09
CA2626847A1 (en) 2007-05-10
EP2293491A1 (en) 2011-03-09
HK1155293A1 (en) 2012-05-11
US20110261956A1 (en) 2011-10-27
CN101366232B (zh) 2012-05-16
EP1946480B1 (en) 2011-04-27
JP5073669B2 (ja) 2012-11-14
US20130003964A1 (en) 2013-01-03
JP2009515206A (ja) 2009-04-09
US8045705B2 (en) 2011-10-25
EP2509253A1 (en) 2012-10-10
EP1946480A1 (en) 2008-07-23
EP1946480A4 (en) 2010-04-07
EP2293491B1 (en) 2012-08-22
WO2007051305A1 (en) 2007-05-10
DE602006021601D1 (de) 2011-06-09
JP2012185517A (ja) 2012-09-27
EP2509253B1 (en) 2014-06-18
US8548163B2 (en) 2013-10-01
ATE507625T1 (de) 2011-05-15
US20070098154A1 (en) 2007-05-03

Similar Documents

Publication Publication Date Title
CN101366232B (zh) 同步标量乘法算法
US6782100B1 (en) Accelerated finite field operations on an elliptic curve
US20140344579A1 (en) Accelerated Verification of Digital Signatures and Public Keys
US8345864B1 (en) Elliptic curve cryptography scalar multiplication with on demand acceleration table generation
CA2233120C (en) Accelerated finite field operations on an elliptic curve
AU5964299A (en) Power signature attack resistant cryptography
EP1025673B1 (en) Accelerated signature verification on an elliptic curve
US6480606B1 (en) Elliptic curve encryption method and system
Krishna et al. Window method based cubic spline curve public key cryptography
JP4875686B2 (ja) 楕円曲線上の有限体演算の加速方法
Longa et al. Novel precomputation schemes for elliptic curve cryptosystems
Li et al. A novel algorithm for scalar multiplication in ecdsa
Samokhina et al. Code-based cryptosystems evolution
CN110752931A (zh) 一种sm2椭圆曲线公钥密码体制优化方法
US7190789B2 (en) Method and apparatus for finite field basis conversion
Wolf Efficient public key generation for multivariate cryptosystems
Zhang et al. An algorithm for judging and generating bilinear multivariate quadratic quasigroups
JP4105803B2 (ja) 楕円曲線演算装置
Chung et al. Threshold authenticated encryption scheme using labor-division signature
Nabi et al. Implementation and performance analysis of elliptic curve digital signature algorithm
Lee et al. Efficient Exponentiation in GF (pm) Using the Frobenius Map
Longa et al. Novel Precomputation Schemes for Elliptic Curve Cryptosystems
Yie Cryptanalysis of Elgamal type digital signature schemes using integer decomposition
JP2003513312A (ja) スカラーによる因子類の乗算のための方法
JP2002351313A (ja) 超楕円曲線演算方法及び装置

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
TR01 Transfer of patent right

Effective date of registration: 20191028

Address after: Voight, Ontario, Canada

Patentee after: BlackBerry Ltd.

Address before: Ontario, Canada

Patentee before: CERTICOM Corp.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240529

Address after: Ai Erlandubailin

Patentee after: Maliki Innovation Co.,Ltd.

Country or region after: Ireland

Address before: Voight, Ontario, Canada

Patentee before: BlackBerry Ltd.

Country or region before: Canada