CN103339665B - 用于多位数除法或模变换的方法 - Google Patents
用于多位数除法或模变换的方法 Download PDFInfo
- Publication number
- CN103339665B CN103339665B CN201180065373.1A CN201180065373A CN103339665B CN 103339665 B CN103339665 B CN 103339665B CN 201180065373 A CN201180065373 A CN 201180065373A CN 103339665 B CN103339665 B CN 103339665B
- Authority
- CN
- China
- Prior art keywords
- iteration
- remainder
- multiplication
- montgomery multiplication
- divisor
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000006243 chemical reaction Methods 0.000 title description 5
- 230000009466 transformation Effects 0.000 claims description 11
- 238000000354 decomposition reaction Methods 0.000 claims description 3
- 239000000969 carrier Substances 0.000 claims 2
- 231100000279 safety data Toxicity 0.000 claims 2
- 238000013500 data storage Methods 0.000 abstract 3
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000002349 favourable effect Effects 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 101100514059 Escherichia coli (strain K12) modE gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- RNAMYOYQYRYFQY-UHFFFAOYSA-N 2-(4,4-difluoropiperidin-1-yl)-6-methoxy-n-(1-propan-2-ylpiperidin-4-yl)-7-(3-pyrrolidin-1-ylpropoxy)quinazolin-4-amine Chemical compound N1=C(N2CCC(F)(F)CC2)N=C2C=C(OCCCN3CCCC3)C(OC)=CC2=C1NC1CCN(C(C)C)CC1 RNAMYOYQYRYFQY-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/728—Methods 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 using Montgomery reduction
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种在便携式数据存储介质(10)中用于对有关安全的数据执行密码操作的方法,包括确定被除数(a)模除数(b)的余数(r)的步骤。在这种情况下,通过在数据存储介质(10)上的除法设备(54)迭代地确定余数(r)。每个迭代包括进行以除数(b)作为模数的蒙哥马利乘法,以及来自蒙哥马利乘法的输出值与从被除数(a)得到并且与相应的迭代相关联的系数(ai)的加法逻辑组合。在这种情况下,蒙哥马利乘法通过数据存储介质(10)上的乘法设备(35)进行,所述乘法设备优选地是适当的协处理器(35)。随后的迭代中的蒙哥马利乘法接收来自先前的迭代的结果作为输入值。
Description
技术领域
本发明涉及用于在便携式数据载体中对有关安全的数据执行密码操作的方法,并且涉及相应地配置的数据载体。
背景技术
在密码操作(例如数据的加密和解密、数字签名的生成或对其的验证)的框架下,存在重复使用的基本运算。这些运算特别是在例如RSA方法或DSA或ECDSA签名算法的计算的框架下的任意精度的乘法、任意精度的除法或模变换(modularreduction)。
用于重复进行模乘法(如例如当计算xdmodn形式的值时)的资源消耗已经通过使用所谓的蒙哥马利乘法(Montgomerymultiplication)被确切地减少,并且因此能够省略根据迄今已知方法而言是必要的任意精度的除法。蒙哥马利乘法在PeterL.Montgomery的MathematicsofComputation,vol.44,no.170,1985年4月,第519-521页的文章“ModularMultiplicationWithoutTrialDivision”中清楚地描述。为了进一步增加该效果,被配置用于执行密码操作的许多便携式数据载体包括用于执行这样的蒙哥马利乘法的对应的协处理器。
发明内容
本发明的目的是还减少用于在便携式数据载体上执行模变换的资源消耗。特别地,本发明给自身设定的目标是有效地确定除法a/b的余数r=amodb,特别是对相对大的除数b以及比除数b还要大得多的被除数a的情况下。
该目标通过具有独立权利要求的特征的方法和数据载体实现。在从属权利要求中阐述了有利的实施例和展开。
本发明的基本思想包括改写除法方法,从而使得单独的方法步骤可作为蒙哥马利乘法来执行,并且因此更有效地、可能另外地通过特定硬件来执行。
根据本发明的在便携式式数据介质中用于对有关安全的数据执行密码操作的一种方法包括确定被除数模除数的余数的步骤。在进行该步骤时,通过数据载体的除法设备迭代地确定余数。在每个迭代中,执行以除数作为模数的蒙哥马利乘法,以及蒙哥马利乘法的输出值与从被除数得到并且与相应的迭代相关联的系数的加法连接。这里通过数据载体的乘法设备执行蒙哥马利乘法。随后的迭代的蒙哥马利乘法接收先前的迭代的结果作为输入值。
因此,根据本发明用于对有关安全的数据执行密码操作的便携式数据载体包括处理器、存储器、用于执行蒙哥马利乘法的乘法设备以及除法设备。后者被配置以在密码操作的框架中确定被除数模除数的余数。除法设备特别地被配置以迭代地确定该余数。为了确定该余数,除法设备被配置以在每个迭代中通过乘法设备执行以除数作为模数的蒙哥马利乘法,以及执行蒙哥马利乘法的输出值与从被除数得到并且与相应的迭代相关联的系数的加法连接。乘法设备被配置以接收先前的迭代的结果作为输入值,用于执行随后的迭代的蒙哥马利乘法。
这使得还可以高效地执行模变换的同时避免运行时间密集的普通的任意精度的除法。也就是说,通过可以减少要执行的计算步骤的数目的事实,已经独立于使用的硬件取得了优势。这特别地对于任意大的被除数也成立。如以下所精确描述的,根据所述的系数、对被除数的适当的分解,以及根据本发明的方法的迭代过程,因此还特别允许在数据载体中使用关于输入和输出值限制的乘法设备。根据本发明,仅除数受到这样的限制的束缚。因此本方法特别是在除数已经很大,而被除数还大得多时有利地适用。
优选地,数据载体的乘法设备包括被配置以执行蒙哥马利乘法的协处理器。因此,根据本发明的方法可以通过以下事实而被额外地加速:即可以通过为蒙哥马利乘法优化的硬件执行该蒙哥马利乘法的步骤。由此可达到的将要执行的算法操作的简化、以及通过为此优化的硬件而特别有效地执行这些运算的一大部分两者组合的双重效果,使得本方法特别地有利。
如所提到的,在根据本发明的方法中,仅除数的大小受乘法设备的规格的限制。这样的限制是例如当使用执行蒙哥马利乘法的协处理器时可由协处理器处理的字的长度。被除数不受这些规格的制约,即方法或数据载体可以处理任意大的被除数。这使得根据本发明的方法优于特别是普通的蒙哥马利变换,普通的蒙哥马利变换仅可以处理均小于由最大协处理器长度规定的上限的被除数和除数两者。
数据载体的乘法设备可被配置以执行具有不同的输入和输出值的蒙哥马利乘法,即特别地,输入和输出值的大小可因设计原因而受限。一般输入和输出值在-M至M-1的范围内、或在0至2*M-1的范围内或在0至R-1的范围内。M在这里指示关于其执行蒙哥马利乘法的模数,并且R是与模数M互质且关于蒙哥马利乘法与M相关联的数。M小于R总是成立。以下为了简化表述,总是假定蒙哥马利乘法的输入和输出值非负且小于模数M或小于与M互质的数R。
关于根据本发明的方法,关于输入和输出值不同的蒙哥马利乘法的变型将被区分,但其不会从根本上改变根据本发明的方法,而只是在细节上改变。以下将详细地表述根据本发明的方法的对应的不同的实施例。
根据本发明的方法用于确定余数所需的迭代次数受被除数的大小与除数大小的比率限制,即受从被除数对于给定底的对数除以除数对于该底的对数得到的商限制。为了变换1024位数形式的被除数模512位数形式的除数,因此仅需要该方法的两个或三个迭代,即实质上仅需要512位数的两个或三个蒙哥马利乘法。
根据本发明的方法的不同的实施例通常具有以下共同的步骤:在第一步中,被除数被适当地分解。即,该被除数被表示为和的形式。这里和的被加数的数目对应于确定余数所需的迭代的次数。和的每个被加数由乘积构成,该乘积包括与相应的迭代相关联的系数,以及与迭代相关联的2的幂。如果该被除数被指定为a,则分解具有如下形式:
a=∑i=0,…,nai*(2N)i。
随后初始化要计算的余数(例如将被指定为r)。依赖于该实施例,例如:设定r:=0或r:=an。
在每个迭代中,随后执行以下的子步骤,其中,在每个子步骤中余数被相应地更新:在第一子步骤中,以除数作为模数执行蒙哥马利乘法。这里蒙哥马利乘法接收余数以及补偿因子作为输入值,并且输出更新的余数。当相对于模数M的两个值x和y的蒙哥马利乘法被指示为MMult(x,y,m)时,被描述的子步骤可以简述为如下:r:=MMult(r,m,b),其中m指示补偿因子且b指示呈现模的作用的除数。这里补偿因子m可以呈现例如如下形式m:=2N*Rmodb。这里R指示与蒙哥马利乘法相关联的R值。通过定义MMult(x,y,M):=x*y*R-1modM成立。这里M总是奇数,小于R且相对于R为素数,即R和M具有值1作为最大公约数。由于经由等式R*R-1-M*M’=1的可整除性条件,值R-1-和值M’-被限定在给定的M和R。
在第二子步骤中,余数与和迭代相关联的系数加法连接。由此得到的结果最终对除数取模变换,从而再次确定更新的余数。在第i次迭代中,该步骤可以例如如下表示:r:=r+aimodb。
两个子步骤的顺序是可变的,即存在本发明的实施例,其中在每个迭代中第二子步骤在第一子步骤之前执行。
通常更新的余数r在最后的迭代结束时给出寻求的值“amodb”。然而,在一些应用情境中,期望输出值“a*Rmodb”而不是值“amodb”。这可以由以上指示的实施例获取,其在例如r:=0的适当的余数r的初始化之后、在第一子步骤之前执行第二子步骤。
可以在完成最后的迭代之后采用最后的蒙哥马利乘法来从输出值“a*Rmodb”获得输出值“amodb”。该以除数作为模数的蒙哥马利乘法接收当前的余数以及值“1”作为输入,即r:=MMult(r,1,b)。
如所提到的,在被除数的和表达中,和的每个被加数由乘积构成,该乘积包括与各自的迭代相关联的系数,以及与该迭代相关联的2的幂。分别与迭代相关联的2的幂包括与迭代无关的基本的2的幂,其自身依赖于相关联的迭代再次升至更高的幂。基本的2的幂(2N)例如相应地在迭代i中升至i次幂(2N)i,如以上已经指出的。
基本的2的幂的大小依赖于各个实施例而受例如除数的大小、或关于蒙哥马利乘法的与模数相关联的R值的大小限制。即,例如(2N)<b或(2N)≤R成立,特别是(2N)=R,因为R通常是2自身的幂。
根据本方法,被除数的系数的大小也受限制,通常受模的大小或受关于蒙哥马利乘法的与模相关联的R值的大小限制。这里通常成立的是,限制基本的2的幂的大小的值还限制系数的大小,即对于(2N)<b,ai<b也成立,并且对于(2N)≤R,ai<R成立。
根据本发明的便携式数据载体特别可以是芯片卡、安全存储卡等。
附图说明
以下将通过示例的方式、参照附图描述本发明。其中示出:
图1,根据本发明的数据载体的优选实施例,以及
图2,根据本发明的方法的优选实施例的步骤。
参照图1,这里表示为芯片卡的数据载体10包括数据通信接口20、处理器30、协处理器35以及不同的存储器40、50和60。该数据载体10还可以另一设计存在。
数据载体10包括用于接触类型数据通信的接触板20,作为数据通信接口20。可选地或附加地,天线线圈(未示出)可被提供用于非接触的数据通信。
非易失性、非可重写ROM存储器40包括数据载体10的操作系统(OS)42,其控制数据载体10。至少部分操作系统42还可存储在非易失性、可重写的存储器50中。后者可作为例如闪存存在。
存储器50包括密码设备52,通过该设备可计算例如RSA方法的密码运算。此外,存储器50包括除法设备54。后者被配置以确定在由密码设备52计算的运算框架中,被除数对除数取模的余数。该除法设备54还可以是密码设备52的部分。将参照图2更精确地描述除法设备54的运作方式。存储器50可以包含更多的应用和数据,例如密钥或其部分。
协处理器35起到乘法设备35的作用。其被配置以进行蒙哥马利乘法。乘法设备35将基本由密码设备52和除法设备54使用,用于在密码操作的计算的框架中执行蒙哥马利乘法。可替换地,也可以使得在存储器40和50之一中,对应的乘法设备35作为软件设备可用。
易失性、可重写的RAM存储器60作为工作存储器服务于数据载体10。
在更精确地描述除法设备54的运作方式之前,将呈现描述整个情境的一些事实。
以下,被除数总是指定为a,奇数除数指定为b,被除数a模除数b的余数指定为r,即r=amodb,并且a和b的商指定为q,即q=a/b。总之,等式a=q*b+r成立(hold),其中总是满足0≤r<b。应理解,所有的值a、b、r、q以及以下出现的所有值都是整数。
具有对于模数M的输入值x、y的蒙哥马利乘法将被指示为MMult(x,y,M),并如下计算:MMult(x,y,M):=x*y*R-1modM。
这里M总是奇数,小于R并且相对于R为素数,即R和M具有值1作为最大公约数。由于经由等式R*R-1-M*M’=1的可整除性条件,值R-1、以及以下陈述的值M’限定在给定的M和R。
通常,假定输入值x和y小于模数M。然而,原则上也可以修改蒙哥马利乘法,使得输入值大于模数M,但仍小于值R。然后获得作为蒙哥马利乘法的输出的、然而仅值C:=MMult(x,y,M)<R,对此C≡x*y*R-1modM成立。
经典的蒙哥马利乘法如下计算,如上面提到的蒙哥马利的文章中描述的:输入两者均小于M的值x和y,在第一步中凭借法则K:=x*y*M’modR(M’=-M-1modR)形成中间值K。通常,R被给定为2的幂,R=2δ,从而数据载体内的计算模R仅对应于位移操作,且执行起来简单。在第二步,形成值W,其从法则W:=(x*y+k*M)/R计算出。当R是2的幂时,除以R也易于操作。可容易地示出该除法总是可能没有余数的。当现在设定了C:=W时,并且如果C≥M成立,也形成C:=C-M,可示出值C对应于蒙哥马利乘法的输出值。
在修改的蒙哥马利方法中,类似地对小于R的x和y形成值K:=x*y*M’modR,以及W:=(x*y+K*M)/R。当现在设定了C:=W时,并且如果C≥R成立,也形成C:=C-M,可示出C小于R,且C≡x*y*R-1modM。在特定的情况下,y=1,其甚至遵循C≤M。
然而,模必须总是奇数的事实不构成任何实质的限制。如果除数b充当模数,则应注意对于b=2t*b1,a=2t*a1+a0,其中0≤a<2t,以下成立:amodb=2t*(a1modb1)+a0,以及divb=a1divb1。即,为了简单起见,总可以假定b是奇数。
具体的蒙哥马利乘法的实施方式采用部分偏离以上所述的输入和输出值。例如,输入和输出值还可以位于-M至M-1的范围,或输出可以位于0至2*M-1的范围。在这两种情况下,可采用有条件的模数的加法或减法创建与以上所述相对应的情况。
在本发明中,假定被配置用于执行蒙哥马利乘法的乘法设备35可例如作为软件模块或作为协处理器使用。在协处理器的情况下,后者具有协处理器长度β,即其可以接受大小<2β的值。在很多情况下,对于蒙哥马利乘法采用R值,R=2δ,其中δ=β。在其它情况下,δ>β成立。
在以下描述的用于确定amodb余数的方法中,偶尔需要适当的补偿因子m1作为蒙哥马利乘法的输入值。该因子可以具有例如m1=R2modb的形式。这样的值可以通过以下简要概述的不同方式确定。
如果在数据载体10中快速任意精度的乘法可用,则可以借助离散牛顿迭代计算值R2/b以及来自于其的m1。值R2/b例如在根据巴雷特变换(Barrettreduction)的方法中充当输入值,通过该变换类似地可计算模的余数。
可选地,可以首先计算(对于小、合适的t)值2*Rmodb或2t*Rmodb,并且基于此,通过某些蒙哥马利乘法和求幂方法计算值m1=2δ*Rmodb。为了计算值2t*Rmodb,可使用如下的方法:作为输入值,使用除数b的位长度L,即,2L-1<b<2L<2δ=R成立。设定c:=2L-b,并且对于每个i=1,…,t+δ-L,执行循环c:=c+cmodb。该方法在值t+δ-L较小时是有利的。如果在数据载体10中没有模加法可用,则用法则序列c:=c+c取代运算c:=c+cmodb;如果c≥b,则设定c:=c-b。
如果b是密数(secretnumber),例如被执行密码操作的有关安全的数据的一部分,则必须保护请求“c≥b”的实施不受旁信道攻击。这对于由处理器(或者如果存在的话,对于协处理器)对有关安全的数据的任何部分或从其所得到的值或中间结果执行的其它操作也成立,这在以下不会总是再次阐述。
参照图2,以下将呈现用于确定被除数a对除数b取模的余数r的方法的不同的实施例。除法设备54这里被相应地配置以执行一个或多个这些方法。对于描述过的和要描述的辅助方法也成立,例如用于有效地确定合适的补偿因子m等的方法。优选地,数据载体10具有用于执行模加法/减法的设备。
在前两个实施例中,采用了蒙哥马利乘法,其输入和输出值由模数M限制。第三个实施例使用蒙哥马利乘法,其输入和输出值可以较大并且仅由值R限制。
根据第一实施例的方法接收奇数的除数b作为输入。后者可以被协处理器35所接受,即b<2β<2δ=R,其中2N<b,成立。N在这里是合适地选择的整数,例如满足2N<b的最大可能的倍数8、16或32。
使用被除数a作为又一个输入。a在第一步S1中以如下形式分解:a=∑i=0,…,nai*(2N)i,0≤ai<2N。
将被除数a分解成和优选地以下述方式实现:和的被加数的数目对应于确定余数所需的迭代的数目,这将在以下详细描述。和的每个被加数通常由乘积构成。该乘积包括与迭代相关联的、a的系数ai,以及与该迭代相关联的2的幂,这里是(2N)i。该2的幂由对迭代独立的基本的2的幂(这里是2N)产生,其又以依赖迭代的方式升至更高的幂,这里升至i的幂。
最后,该方法还接收补偿因子m1=R2modb作为输入值。该方法输出余数r=amodb作为输出值。
在第二步S2中,从补偿因子m1:m:=MMult(m1,2N,b)=2N*Rmodb确定适合的补偿因子m。可替换地,也可以直接使用m作为输入值而不是m1,从而在该方法中省略该步骤。
现在迭代地确定余数r。在每个迭代中,执行蒙哥马利乘法,具有除数b作为模数,并且具有蒙哥马利乘法的输出结果与系数ai的加法连接,系数ai从被除数a得到并且与相应的迭代相关联。随后的迭代的蒙哥马利乘法接收先前的迭代的结果作为输入值。通过乘法设备35、优选地通过对应的协处理器35执行每个蒙哥马利乘法。
具体地,根据本方法第一实施例的这些步骤如下执行:
根据第一实施例,凭借法则r:=an,在步骤S3初始化余数。
在步骤S4,最终实施了r的实际的迭代计算。每个迭代包括两个子步骤TS41和TS42:首先,在子步骤TS41中,蒙哥马利乘法以除数b作为模数,该蒙哥马利乘法接收当前的余数r和补偿因子m作为输入值,并且输出更新的余数r:r:=MMult(r,m,b)作为输出值。其次,在子步骤TS42中,余数r与和迭代相关联的系数ai的加法连接,以及对应的结果模除数b的模变换,从而获得更新的余数:r:=r+aimodb。
在最后的迭代结束时,输出余数r=amodb作为步骤S5中的结果。
这里将再次简要地描述该方法(算法3)。
输入奇数除数b<2β≤R,其中2N<b,
蒙哥马利因子m1=R2modb,
任意大的被除数a
输出r=amodb
方法
S1分解a=∑i=0,…,nai*(2N)i,其中0≤ai<2N
S2计算m:=MMult(m1,2N,b)=2N*Rmodb
S3设定r:=an
S4对于i=n-1,...,0:
TS41r:=MMult(r,m,b)
TS42r:=r+aimodb
S5输出r
该方法的正确性是显而易见的。如果在数据载体10中没有模加法,则必须用以下步骤代替子步骤TS42:r:=r+ai,如果(r≥b),r:=r–b。
引人注意并且对以下描述的更多的实施例也成立的是,仅除数b的大小,而非被除数a的大小由乘法设备35的规格限制,这里是协处理器长度β。被除数a可以是任意地大,并且可通过该方法通过从被除数a得到的系数ai变得可处理,所述系数ai被选择为使得从这些系数(例如从子步骤TS42)得到的结果继而可由乘法设备35在子步骤TS41中处理。根据所示第一实施例,系数ai至少受模数b的大小限制。
如果在将要执行的密码操作的具体应用情境中——例如在RSA-CTR计算的框架中——要求的不是值r,而是从其得出的值c:=a*Rmodb,这可以通过向根据第一实施例的上述方法添加又一个根据法则c:=MMult(r,m,b)的步骤而容易地获得。如果a代表RSA-CRT计算的基础且b是两个素数因子之一,则值c作为输入值进入RSA-CRT计算的两个部分(partial)求幂之一,所述两个部分求幂建立在蒙哥马利乘法上。
以下将解释如何可以用上述方法使得RSA-CRT算法加速。在RSA-CRT中,执行两个部分求幂xdpmodp和xdqmodq,其中x指示输入消息,p和q是模数的两个素数因子,并且dp=dmodp-1和dq=dmodq-1,所述数来自密指数d。例如,x的位长等于2048位,且p、q、dp和dq的位长等于1024位。然而为了能够执行部分求幂xdpmodp,必须首先计算xmodp。然后该值作为初始值进入求幂算法。该求幂算法自身包括优选实现为蒙哥马利乘法(特别是当硬件加速器支持蒙哥马利乘法时)的一系列模乘法。在这种情况下,值xmodp必须被转换为x*Rmodp=MMult(x,R2modp,p)。因此,为了提供用于部分求幂的最初的值,通常首先执行模变换xmodp,并且随后执行蒙哥马利乘法x*Rmodp=MMult(x,R2modp,p)。然而,模变换是昂贵的,例如当2048位的数必须用CPU被除以1024位的数时。在新方法中,相反,昂贵的任意精度除法和随后的蒙哥马利乘法仅仅由几个蒙哥马利乘法代替。
以下根据第二实施例呈现的方法相对第一实施例做了略微的修改。其不输出余数r自身,而是刚刚提到的值c:=a*Rmodb。如果仅仅要确定值c,该方法比第一实施例略好,而后者通常在计算r时是优选的。然而,从值c可以继而在一个步骤中通过利用法则r:=MMult(c,1,b)获得值r。需注意,以下的方法仅当Log2(a)-log2(b)比log2(R)-log2(b)大得多时,即a比R大得多时才具有优势。
对根据第二实施例的方法的输入实质上对应于第一实施例的输入:奇数除数b,其中b<2β≤2δ=R,且被除数a的形式为a=∑i=0,…,nai*(R)i,0≤ai<R,以及补偿因子m1=R2modb。与第一实施例相反,现在由值R直接指定基本的2的幂,其还限制被除数a的系数ai的大小。
如所提到的该方法的最后输出不是r=amodb,而是c=a*Rmodb。
值c的初始化通过步骤c:=0实现。
在值c的迭代确定时,与第一实施例相比,子步骤TS41和TS42互相交换。在每个迭代中,在第一子步骤中确定更新的值c。这通过函数T(c+ai)=c+aimodb实现。因此,与第一实施例的方法类似,在该子步骤中也执行与余数对应的值c与属于该迭代的系数ai的加法连接,以及对除数b的变换取模。需注意,函数T接受范围0至R+b-1中的值作为输入,并且输出小于b的值。当R基本上不大于b时,可以通过例如重复减去b实现函数T的计算。
在该迭代的第二子步骤中,随后实现蒙哥马利乘法:c:=MMult(c,m1,b)。在最后的迭代的结束输出值c。该方法的准确性也是显而易见的。
这里将再次简要地描述该方法(算法4)。
输入奇数的除数b<2β≤R,
蒙哥马利因子m1=R2modb,
任意大的被除数a
输出c=a*Rmodb
方法
(1)分解a=∑i=0,…,nai*(R)i,其中0≤ai<R
(2)设定c:=0
(3)对于i=n,...,0:
(3.1)c:=T(c+ai)=c+aimodb
(3.2)c:=MMult(c,m1,b)
(4)输出c
以下描述的第三实施例适于当可使用可以接受那些仅受值R限制的值作为输入和输出值的乘法设备35时,计算余数r=amodb。
这里同样采用了至少满足以下条件的补偿因子m作为输入值:0<m1<R且m1≡R2modb。可如上所述确定该值。可以如下特别有效地确定与2*Rmodb同余(congruent)值:
b的位长L被指定,即2L-1<b<2L≤R成立。基于此,计算值e:=(2L-b)*2β-L+1。可以容易地理解e≡2*Rmodb。随后从e计算m1经历与上面已经阐述的相同的考虑。
现在呈现的第三实施例基本上对应于以上描述的第二实施例。
作为输入,该方法接收奇数的除数b,其中b<R,2L-1<b<2L,a=∑i=0,…,nai*(R)i形式的被除数a,其中0≤ai<R,以及补偿因子m1≡R2modb。输出是值r=amodb,以及值c,其中0≤c<R以及c≡a*Rmodb成立。
通过c:=0初始化与第二方法中的值c对应的值c。
对于所有的i=n,…,0,执行包括两个描述的子步骤的迭代:跟随有模变换的加法连接,以及蒙哥马利乘法。这里第一子步骤具有形式:
c:=c+ai;只要(c≥R):c:=c–(2β-L*b)。
该子步骤最终传送与c+aimodb同余且小于R的值。由于根据前提条件ai<R<2*(2β-L*b)成立,因此c减去(2β-L*b)最多执行两次。
根据c:=MMult(c,m,b)与第二实施例类似的实现第二子步骤。
如果最终要输出r=amodb而不是c=a*Rmodb,则如所述再次添加步骤r:=MMult(c,1,b)。如果其导致r=b,则设定r:=0。
这里将再次简要地描述该方法(算法11)。
输入奇数的除数b<R,其中2L-1<b<2L
蒙哥马利因子m1<R,其中m1≡R2modb
任意大的被除数a
输出r=amodb以及数0≤c<R,其中c≡a*Rmodb
方法
(1)分解a=∑i=0,…,nai*(R)i其中0≤ai<R
(2)设定c:=0
(3)对于i=n,...,0:
(3.1)c:=c+ai
(3.2)只要(c≥R):c:=c–(2β-L*b)
(3.3)c:=MMult(c,m1,b)
(4)计算r:=MMult(c,1,b)
(5)如果(r=b):r:=0
(6)输出r和c
这里也容易看到正确性。特别地,其从蒙哥马利乘法的介绍性讨论得出,在与1的蒙哥马利乘法之后在结束时值r小于或等于b。
Claims (13)
1.一种在便携式数据载体(10)中用于对有关安全的数据执行密码操作的方法,包括确定被除数(a)模除数(b)的余数(r)的步骤,其特征在于,通过数据载体(10)的除法设备(54),通过在每个迭代中执行以除数(b)作为模数的蒙哥马利乘法(TS41)、以及执行蒙哥马利乘法的输出值与从被除数(a)得到并且与相应的迭代相关联的系数(ai)的加法连接(TS42)来迭代地确定余数(r),所述蒙哥马利乘法通过数据载体(10)的乘法设备(35)执行,并且随后的迭代的蒙哥马利乘法接收先前的迭代的结果作为输入值,其中
-将被除数(a)分解(S1)成和的形式,该和的被加数的数目对应于确定所述余数(r)所需的迭代的次数,并且该和的每个被加数由乘积构成,该乘积包括与相应的迭代相关联的系数(ai)和与该迭代相关联的2的幂;
-初始化(S3)所述余数(r);
-在每个迭代中执行(S4)以下子步骤,其中在每个子步骤中对应地更新余数(r):
-执行以除数(b)作为模数的蒙哥马利乘法(TS41),该蒙哥马利乘法接收所述余数(r)以及补偿因子(m)作为输入值,并且输出更新的余数(r);
-将余数(r)与和迭代相关联的系数(ai)加法连接(TS42),并且以除数(b)为模模变换该结果,从而确定更新的余数(r)。
2.根据权利要求1所述的方法,其特征在于所述乘法设备(35)包括协处理器,该协处理器执行蒙哥马利乘法。
3.根据权利要求1所述的方法,其特征在于仅除数(b)的大小受所述乘法设备(35)的规格限制,被除数(a)的大小不受所述乘法设备(35)的规格限制。
4.根据权利要求1至3中任一项所述的方法,其特征在于用于确定余数(r)的迭代次数受从被除数(a)对于给定底的对数除以除数(b)对于所述底的对数得到的商限制。
5.根据权利要求1所述的方法,其特征在于,如果在迭代中在执行蒙哥马利乘法(TS41)的子步骤之前执行加法连接(TS42)的子步骤,则最后执行以除数(b)作为模数的另一个蒙哥马利乘法,其接收余数(r)和值1作为输入,并且输出更新的余数(r)。
6.根据权利要求1至3中任一项或权利要求5所述的方法,其特征在于所述蒙哥马利乘法的输出值的大小受模数的大小、或受关于所述蒙哥马利乘法的与模数相关联的R值的大小限制。
7.根据权利要求1至3中任一项所述的方法,其特征在于与各自的迭代相关联的2的幂包括基本的2的幂,其自身依赖于相关联的迭代再次升至更高的幂。
8.根据权利要求7所述的方法,其特征在于基本的2的幂受除数(b)的大小、或受关于蒙哥马利乘法的与模数相关联的R值的大小限制。
9.根据权利要求1至3中任一项或权利要求5所述的方法,其特征在于被除数(a)的系数(ai)的大小受模数的大小、或受关于蒙哥马利乘法的与模数相关联的R值的大小限制。
10.一种用于对有关安全的数据执行密码操作的便携式数据载体(10),包括处理器(30)、存储器(40;50;60)、用于执行蒙哥马利乘法的乘法设备(35),以及被配置以在密码的操作的框架内确定被除数(a)模除数(b)的余数(r)的除法设备(54),其特征在于除法设备(54)被配置以在每个迭代中通过乘法设备(35)执行以除数(b)作为模数的蒙哥马利乘法,以及执行蒙哥马利乘法的输出值与从被除数(a)得到并且与相应的迭代相关联的系数(ai)的加法连接,来通过除法设备(54)迭代地确定余数(r),所述乘法设备(35)被配置以接收先前的迭代的结果作为输入值,用于执行随后的迭代的蒙哥马利乘法,其中
-将被除数(a)分解(S1)成和的形式,该和的被加数的数目对应于确定所述余数(r)所需的迭代的次数,并且该和的每个被加数由乘积构成,该乘积包括与相应的迭代相关联的系数(ai)和与该迭代相关联的2的幂;
-初始化(S3)所述余数(r);
-在每个迭代中执行(S4)以下子步骤,其中在每个子步骤中对应地更新余数(r):
-执行以除数(b)作为模数的蒙哥马利乘法(TS41),该蒙哥马利乘法接收所述余数(r)以及补偿因子(m)作为输入值,并且输出更新的余数(r);
-将余数(r)与和迭代相关联的系数(ai)加法连接(TS42),并且以除数(b)为模模变换该结果,从而确定更新的余数(r)。
11.根据权利要求10所述的数据载体(10),其特征在于所述乘法设备(35)被配置为协处理器。
12.根据权利要求10或11所述的数据载体(10),其特征在于所述乘法设备(35)被配置以执行其输入和输出值在-M至M-1的范围内、或在0至2*M-1的范围内、或在0至R-1的范围内的蒙哥马利乘法,其中M指示关于其执行蒙哥马利乘法的模数,并且其中R指示与模数M互质且关于蒙哥马利乘法与M相关联的数。
13.根据权利要求10至11中任一项所述的数据载体(10),其特征在于所述除法设备(54)被配置以执行根据权利要求1至9中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102010051853.0 | 2010-11-18 | ||
DE102010051853A DE102010051853A1 (de) | 2010-11-18 | 2010-11-18 | Verfahren zur Langzahldivision |
PCT/EP2011/005774 WO2012065730A1 (de) | 2010-11-18 | 2011-11-16 | Verfahren zur langzahldivision oder modulare reduktion |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103339665A CN103339665A (zh) | 2013-10-02 |
CN103339665B true CN103339665B (zh) | 2016-06-08 |
Family
ID=44992864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180065373.1A Active CN103339665B (zh) | 2010-11-18 | 2011-11-16 | 用于多位数除法或模变换的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9042543B2 (zh) |
EP (1) | EP2641241B1 (zh) |
CN (1) | CN103339665B (zh) |
DE (1) | DE102010051853A1 (zh) |
WO (1) | WO2012065730A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102011117219A1 (de) * | 2011-10-28 | 2013-05-02 | Giesecke & Devrient Gmbh | Bestimmen eines Divisionsrests und Ermitteln von Primzahlkandidaten für eine kryptographische Anwendung |
DE102011122273A1 (de) * | 2011-12-23 | 2013-06-27 | Giesecke & Devrient Gmbh | Vorrichtung und Verfahren zum Erzeugen von digitalen Bildern |
US11755288B2 (en) * | 2016-11-08 | 2023-09-12 | Koninklijke Philips N.V. | Secure transformation from a residue number system to a radix representation |
US11662978B2 (en) * | 2020-06-04 | 2023-05-30 | PUFsecurity Corporation | Modular operation circuit adopting iterative calculations |
TWI784406B (zh) * | 2020-06-04 | 2022-11-21 | 熵碼科技股份有限公司 | 採用迭代計算的模數運算電路 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5499299A (en) * | 1993-07-02 | 1996-03-12 | Fujitsu Limited | Modular arithmetic operation system |
US5513133A (en) * | 1992-11-30 | 1996-04-30 | Fortress U&T Ltd. | Compact microelectronic device for performing modular multiplication and exponentiation over large numbers |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100459732B1 (ko) * | 2002-12-30 | 2004-12-03 | 삼성전자주식회사 | 4-2 컴프레서를 이용한 몽고메리 모듈러 승산기 및 그승산 방법 |
FR2917198B1 (fr) * | 2007-06-07 | 2010-01-29 | Thales Sa | Operateur de reduction modulaire ameliore. |
CA2701855C (en) * | 2007-11-02 | 2016-10-11 | Certicom Corp. | Signed montgomery arithmetic |
US8433736B2 (en) * | 2009-02-27 | 2013-04-30 | George Mason Intellectual Properties, Inc. | Scalable Montgomery multiplication architecture |
US8583902B2 (en) * | 2010-05-07 | 2013-11-12 | Oracle International Corporation | Instruction support for performing montgomery multiplication |
-
2010
- 2010-11-18 DE DE102010051853A patent/DE102010051853A1/de not_active Withdrawn
-
2011
- 2011-11-16 CN CN201180065373.1A patent/CN103339665B/zh active Active
- 2011-11-16 EP EP11784430.8A patent/EP2641241B1/de active Active
- 2011-11-16 US US13/885,878 patent/US9042543B2/en active Active
- 2011-11-16 WO PCT/EP2011/005774 patent/WO2012065730A1/de active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5513133A (en) * | 1992-11-30 | 1996-04-30 | Fortress U&T Ltd. | Compact microelectronic device for performing modular multiplication and exponentiation over large numbers |
US5499299A (en) * | 1993-07-02 | 1996-03-12 | Fujitsu Limited | Modular arithmetic operation system |
Also Published As
Publication number | Publication date |
---|---|
EP2641241A1 (de) | 2013-09-25 |
US20130236006A1 (en) | 2013-09-12 |
CN103339665A (zh) | 2013-10-02 |
DE102010051853A1 (de) | 2012-05-24 |
US9042543B2 (en) | 2015-05-26 |
WO2012065730A1 (de) | 2012-05-24 |
EP2641241B1 (de) | 2018-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101255393B1 (ko) | 타원 곡선 점 곱셈 | |
CN103339665B (zh) | 用于多位数除法或模变换的方法 | |
US9401805B2 (en) | Encrypting device, encrypting method, and recording medium | |
KR101062558B1 (ko) | 암호화 기법 연산을 위한 컴퓨터 판독 가능한 저장 매체, 시스템 및 방법 | |
EP3059894A1 (en) | Modular multiplication using look-up tables | |
US9520995B2 (en) | Efficient prime-number check | |
US8428252B1 (en) | Using multiples above two with running totals in elliptic curve cryptography scalar multiplication acceleration tables | |
KR102653018B1 (ko) | 랜덤 넘버를 이용하여 나머지 연산을 수행하는 보안 프로세서 및 이의 동작 방법 | |
CN113434886B (zh) | 联合生成用于安全计算的数据元组的方法及装置 | |
US20020126838A1 (en) | Modular exponentiation calculation apparatus and modular exponentiation calculation method | |
KR20040067779A (ko) | 정보 처리방법 | |
Parihar et al. | Fast Montgomery modular multiplier for rivest–shamir–adleman cryptosystem | |
Vollala et al. | Efficient modular exponential algorithms compatible with hardware implementation of public‐key cryptography | |
CN106371803B (zh) | 用于蒙哥马利域的计算方法和计算装置 | |
US20240223368A1 (en) | A system and a method for performing operations | |
KR20130128701A (ko) | 모듈러 곱셈기 및 그것의 모듈러 곱셈 방법 | |
Yuan et al. | Memory‐constrained implementation of lattice‐based encryption scheme on standard Java Card platform | |
CN107040370B (zh) | 一种用于产生实施模幂运算的代码的装置 | |
US20140286488A1 (en) | Determining a Division Remainder and Ascertaining Prime Number Candidates for a Cryptographic Application | |
US9842086B2 (en) | Calculation device, calculation method, and program | |
WO2016102445A1 (en) | Electronic calculating device | |
Ambrose et al. | Randomised multi‐modulo residue number system architecture for double‐and‐add to prevent power analysis side channel attacks | |
KR101112570B1 (ko) | 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체 | |
NL2015911B1 (en) | Calculating device and method. | |
KR102510077B1 (ko) | 부채널 공격에 안전한 연산 장치 및 방법 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180223 Address after: Munich, Germany Patentee after: Jiejia de mobile safety Co., Ltd. Address before: Munich, Germany Patentee before: Giesecke & Devrient GmbH |