CN106105093B - 用于抵制旁信道信息泄露的椭圆曲线点相乘的方法和装置 - Google Patents
用于抵制旁信道信息泄露的椭圆曲线点相乘的方法和装置 Download PDFInfo
- Publication number
- CN106105093B CN106105093B CN201580013768.5A CN201580013768A CN106105093B CN 106105093 B CN106105093 B CN 106105093B CN 201580013768 A CN201580013768 A CN 201580013768A CN 106105093 B CN106105093 B CN 106105093B
- Authority
- CN
- China
- Prior art keywords
- value
- multiplier
- scope
- integer
- elliptic curve
- 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.)
- Expired - Fee Related
Links
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/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
-
- 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/3066—Public 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
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7257—Random modification not requiring correction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/72—Signcrypting, i.e. digital signing and encrypting simultaneously
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种特征涉及用于产生数字签名的椭圆曲线EC点相乘。在一个方面中,在椭圆曲线上选择阶数(n)的基点(P)的标量乘数(k)以供与EC点相乘一起使用。接着从经限制值的范围内随机地产生整数值(r),以使得无关于在所述范围内获得的具体值(r),使用与所述整数乘数(r)及所述阶数(n)的乘积进行求和的所述标量乘数(k)执行的EC点相乘程序消耗独立于所述标量乘数(k)的值的装置资源,进而缩减或消除旁信道泄漏。此可通过针对r确定值的所述范围来达成,以使得k+(r*n)的最高有效位的位位置对于具体椭圆曲线将为平坦且固定的。
Description
相关申请案的交叉参考
本申请案主张2014年4月4日在美国专利商标局申请的美国非临时专利申请案第14/245,732号的优先权及权益,所述非临时专利申请案的整个内容以引用的方式并入本文中。
技术领域
各种特征涉及椭圆曲线密码学,特别是用于产生数字签名或其类似者的椭圆曲线点相乘程序。
背景技术
椭圆曲线(EC)点相乘为在接受乘数k(有时被称作d)的EC密码学内所使用的程序,意图对乘数k保密。可将EC点相乘用作(例如)用以产生用于确保在线交易安全的数字签名的程序的部分。攻击者可使用各种技术通过利用旁信道泄漏来获得关于机密乘数k的信息。举例来说,由执行EC点相乘的装置消耗的功率量或由执行所述运算的装置花费的时间量可潜在地揭露关于k的信息。具体来说,问题可伴随常规EC点相乘程序出现,这是因为涉及零的某些运算比使用其它值的运算消耗较少资源,从而可能导致关于k的信息的泄漏。用于处理此泄漏的一项技术为将n(其中n为基点的阶数)的随机倍数与k相加。也就是说,使用k+(r*n)而非仅使用k,其中r为随机数。然而,此技术不确保涉及零的运算将与关于其它值的运算消耗相同的时间量,且因此信息泄露仍可能发生。
因此,需要提供经改进的用于产生数字签名或出于其它目的EC点相乘程序。
发明内容
一种用于可由装置操作的椭圆曲线点相乘的方法包含:在椭圆曲线上获得阶数(n)的基点(P)的标量乘数(k)以供与对经表示为一系列位的值进行操作的椭圆曲线点相乘程序一起使用;针对整数乘数(r)确定值的范围,以使得无关于在值的所述范围内获得的具体值(r),使用与整数乘数(r)及阶数(n)的乘积进行求和的标量乘数(k)执行的椭圆曲线点相乘程序消耗独立于标量乘数(k)的值的装置资源;从值的所述范围内获得整数乘数(r);及使用标量乘数(k)、整数乘数(r)及阶数(n)执行至少一个椭圆曲线点相乘程序。
在另一方面中,一种装置包含经配置以进行以下操作的处理电路:在椭圆曲线上获得阶数(n)的基点(P)的标量乘数(k)以供与对经表示为一系列位的值进行操作的椭圆曲线点相乘程序一起使用;针对整数乘数(r)确定值的范围,以使得无关于在值的所述范围内获得的具体值(r),使用与整数乘数(r)及阶数(n)的乘积进行求和的标量乘数(k)执行的椭圆曲线点相乘程序消耗独立于标量乘数(k)的值的装置资源;从值的所述范围内获得整数乘数(r);及使用标量乘数(k)、整数乘数(r)及阶数(n)执行至少一个椭圆曲线点相乘程序。
在又一方面中,一种装置包含:用于在椭圆曲线上获得阶数(n)的基点(P)的标量乘数(k)以供与对经表示为一系列位的值进行操作的椭圆曲线点相乘程序的装置一起使用;用于针对整数乘数(r)确定值的范围以使得无关于在值的所述范围内获得的具体值(r),使用与整数乘数(r)及阶数(n)的乘积进行求和的标量乘数(k)执行的椭圆曲线点相乘程序消耗独立于标量乘数(k)的值的装置资源的装置;用于从在值的所述范围内获得整数乘数(r)的装置;及用于使用标量乘数(k)、整数乘数(r)及阶数(n)执行至少一个椭圆曲线点相乘程序的装置。
在再又一方面中,一种机器可读存储媒体具有在由至少一个处理电路执行时使得所述至少一个处理电路执行以下操作的一或多个指令:在椭圆曲线上获得阶数(n)的基点(P)的标量乘数(k)以供与对经表示为一系列位的值进行操作的椭圆曲线点相乘程序一起使用;针对整数乘数(r)确定值的范围,以使得无关于在值的所述范围内获得的具体值(r),使用与整数乘数(r)及阶数(n)的乘积进行求和的标量乘数(k)执行的椭圆曲线点相乘程序消耗独立于标量乘数(k)的值的装置资源;从值的所述范围内获得整数乘数(r);及使用标量乘数(k)、整数乘数(r)及阶数(n)执行至少一个椭圆曲线点相乘程序。
附图说明
图1说明受到旁信道攻击的示范性椭圆曲线密码学(ECC)系统;
图2说明受到旁信道攻击的另一示范性ECC系统,其中所述系统包含基于ECC的智能卡读取器;
图3说明供与易受旁信道攻击影响的EC点相乘一起使用的示范性重编码程序;
图4说明供与易受旁信道攻击影响的EC点相乘一起使用的另一示范性重编码程序;
图5提供供与基本上消除某些种类的旁信道攻击的EC点相乘一起使用的示范性程序的概述;
图6进一步说明图5的示范性程序的方面;
图7进一步说明图5的示范性程序的另外方面;
图8说明使用缩减或基本上消除某些种类的旁信道攻击的组件的示范性ECC处理装置;
图9概括供与图8的装置一起使用的示范性程序;
图10提供供与图8的装置一起使用的额外示范性程序;
图11说明示范性处理系统,其中可并入各种系统的组件及图1至10的装置。
具体实施方式
在以下描述中,给出特定细节以提供对本发明的各个方面的透彻理解。然而,所属领域的一般技术人员应理解,可以在不具有这些特定细节的情况下实践所述方面。举例来说,可用框图展示电路以便避免以不必要的细节混淆所述方面。在其它状况下,可不详细展示熟知的电路、结构及技术以便不混淆本发明的方面。
本文中使用词语“示范性”意味“充当实例、例子或说明”。本文中描述为“示范性”的任何实施方案或方面未必应解释为比本发明的其它方面优选或有利。同样,术语“方面”不要求本发明的所有方面包含所论述的特征、优点或操作模式。
概述
若干新颖特征涉及供与椭圆曲线(EC)点相乘及EC密码学(ECC.)一起使用的装置及方法。所述新颖特征可用于用于产生、处理或验证数字签名的装置中,但适用于广泛范围的系统、设备及装置中且用以达成多种目标。
在一个方面中,在椭圆曲线上选择阶数(n)的基点(P)的标量乘数(k)以供与对经表示为一系列位的值进行操作的EC点相乘程序一起使用。接着从经限制的值的范围内随机地或伪随机地产生整数乘数(r),以使得无关于在所述范围内获得的具体值(r),使用k+(r*n)执行的EC点相乘程序将消耗独立于标量乘数(k)的值的装置资源,即,时间及功率消耗将为一致的。可通过规定值r的范围达成此,以使得无关于在所述范围内获得的具体值r,k'=k+(r*n)的最高有效位的位位置在EC点相乘程序期间对于具体椭圆曲线将为平坦且固定。可通过以下操作来规定值r的范围:基于RL=floor(mrecip*2(j-m-1))+1)确定值的范围的下端(RL),其中mrecip为EC点相乘程序的模量的近似倒数(其中,在本文中的所述实例中,模量为基点的阶数(n)),m为表示阶n的值中的位的数目,且j为表示k'的值中的位的数目;及接着基于RU=floor(mrecip*2(j-m)-2)确定值的范围的上端(RU)。接着通过(例如)在所述范围内随机地或伪随机地选择一值而从此范围内获得整数乘数r。(应注意,所述值r在本文中被称作“整数乘数”以将其与标量乘数k区分开。可替代地使用其它术语或符号。)
由于EC点相乘的基本运算(“加倍”及“相加”)的序列在这些实例中为固定的(且经应用于任何具体ECC曲线的固定数目周期),因此上述的程序使得简单的功率分析及时序攻击相当困难。简单的功率分析可与信号平均组合以获取较多信息,但此由具有不同k'值的几乎每一轨迹阻挠。应注意,在一些ECC程序中,引入随机值可有助于差分功率分析,但其在此处为不确定的,这是由于攻击者将不知道r。
示范性硬件环境及程序
图1说明受到旁信道攻击的示范性ECC系统100。简单来说,消息102由ECC签名装置106处理,所述ECC签名装置106可采用使用私钥104的EC曲线相乘程序。经签名消息108接着经由通常不安全的信道109传送,其中由使用公钥110的签章验证装置112处理所述经签名消息108以产生是/否验证114。此类系统可易受旁信道攻击装置或系统116影响,所述旁信道攻击装置或系统116(例如)通过监测由电源122提供的功率信号120以获得功率签名及时序信息来监测与ECC签名装置106相关联的功率及时序信息118。如果由签名装置106采用的ECC程序易受旁信道攻击影响(即,ECC签名装置泄漏信息),那么攻击者或其它实体(例如,黑客)可能会获得私钥。
图2说明受到旁信道攻击的另一示范性ECC系统200,其中遭受攻击的系统为收纳一或多个智能卡204的基于ECC的智能卡读取器206。此外,可从电源222提供的功率信号220获得功率及时序信息218以供旁信道攻击系统分析,该旁信道攻击系统在此实例中包含功率测量示波器216及旁信道计算机/分析器217。又另外,在此实例中,电磁感应(EMI)信号、声学信号等可由适合的传感器或检测器221获得219以供计算机/分析器217分析。可针对通用串行总线(USB)装置、智能电话等安装类似攻击。
例如图1及2中展示的旁信道攻击的旁信道攻击由ECC系统采用的EC点相乘程序中的弱点部分地启用。一般来说,EC点相乘涉及用于沿着椭圆曲线重复点的标量相加的程序,且可用于ECC中以(例如)产生陷门函数,即可容易地在一个方向上予以计算但在没有一或多个密钥或其它类型的特殊信息的情况下难以在相反方向上予以计算的函数。EC点相乘可用于产生及处理数字签名,例如根据EC数字签名算法(ECDSA)产生且由例如图1及2的系统的系统利用的签名。对于另外的信息,参见(例如)美国国家标准X9.62-2005,Public KeyCryptography for the Financial Services Industry,The Elliptic Curve DigitalSignature Algorithm(ECDSA),2005年11月16日。
更具体来说,ECC为基于有限域上的椭圆曲线的一种类型的公钥密码学。在这点上,椭圆曲线可与满足等式y2=x3+ax+b(其中a及b为恒定值(满足某些条件))的点P=(x,y)的集合以及“无穷远点”相关联。点P乘数目k的EC点相乘可经定义或表示为将点P与其自身相加k次数的结果,即kP=P+P+...+P。在k及n的值足够大的情况下,此形式的标量相乘充当用于签名及验证数据(即产生数字签名等)的密码过程。在这点上,EC点相乘利用从Q=kP(给定已知值Q及P)确定k的明显难解性(其中在文献中,P有时被称作产生器且由G标示。)在此难解性的情况下,所述值kP可用作公钥;而k可用作私钥。
为执行点相乘,ECC可采用点相加及点加倍。简单来说,点相加(addition)或“相加(add)”涉及沿着椭圆曲线的投射版本取得两个点及确定穿过两个点的线在曲线上的又另一地点处与曲线相交的相交点。相交点的负值表示相加的结果。点加倍(doubling)或“加倍(double)”与点相加类似,除了投射椭圆曲线上的单个点处的正切经利用以提供切线,所述切线接着在曲线上的另一位置处与曲线相交。视需要可通过使用点相加及点加倍(例如通过实施“加倍及相加”)来执行点相乘。
因此,EC点相乘可被看作是接受乘数k及基点P的计算或过程。通常通过将k的值表示为位序列(例如,二进制值、位串或二进制向量)来实施,以使得当解译为二进制数时,所述值等于乘数。在这点上,起初可将变量Z设置为加法单位元,其对于椭圆曲线为前述的无穷远点,或起初可将变量Z设置为其它适当值,例如由第一位对确定的值。(应注意,Z实际上为具有大整数x及y坐标的元组。)接着可基于乘数k的位重新设置或修改Z。可通过检查从最高有效位到最低有效位的k来执行此操作。对于给定的位,如果其为0,那么Z:=2Z。如果其为1,那么Z:=2Z+P。当已经处理k的所有位时,接着Z的当前值表示结果。通常,乘数k为意图对其进行保护以预防黑客或其它恶意实体的机密值。如所指出,存在若干旁信道机制,关于计算以及秘钥k的信息可通过所述若干旁信道机制泄漏。
就涉及前述的点加倍及点相加来说,其中k的位为0的情形仅产生加倍操作。其中k的位为1的情形产生加倍及相加。因此相加的数目等于k中的1位的数目。相加运算需要时间来在处理系统内执行,且因此关于运算的持续期间及时序的信息可使用(例如)图1及2的旁信道连接系统来揭露k中的1位的数目。此外,加倍及相加运算通常采用不同量的功率来在处理系统内执行,且因此观测功率使用(例如,在示波器上)可直接揭露k的每一位。已开发密码技术以使得相加的数目恒定,但即使在此预防措施的情况下,所消耗的功率可取决于机器级指令中的1位的数目。如果多次重复所述计算,那么可有可能提取关于k的信息,即,信息的旁信道泄漏仍可能发生。
图3说明一项用于处理这些问题中的至少一些的技术,其中重编码乘数以缩减泄漏。展示重编码的说明性实例300,所述说明性实例300进行操作以将乘数k的位分成“时间上两组”以产生可被看作是k的以4为基数的表示。在所述实例中,可为二进制系列或二进制向量的输入串k 302在时间上被分成两组以产生“以4为基数”的串304。应注意,出于清楚起见,借助于所述图中单独的“以4为基数”的串304展示此分组,但应理解,无需计算或存储单独串。后续运算可仅通过一次采用两位而直接对二进制串302进行操作。此外,在以下实例中,为简单起见,每2位对被视为数字。在步骤306处,在串k内从右到左进行,处理系统通过重复地从不为1、2或3的任何数字减去4且接着将1与左边的数字相加而一次两位地重编码k。也就是说,如果2位数字为1、2或3,那么在重编码期间不管所述2位数字。如果2位数字并非1、2或3,那么重复从当前数字减去4且将1与左边的数字(视需要产生新数字)相加直到当前数字为-4、1、2或3为止。k的经重编码版本的结果被称作所述图中的k'。
处理系统还基于基点P预计算四个工作值:3*P、2*P、1*P、-4*P,其分别作为值312、314、316及318予以存储。所述系统在320处还将Z初始化为由第一位对确定的值。接着,在322处,在k'内从左到右进行,所述处理系统基于k'使用Z:=2*(2*Z)+d*P计算用于Z的新值,其中d为k'的当前数字。也就是说,在k'内处理从左到右一次一个数字地进行。如果当前数字值为d(且回顾d将为至4、1、2或3而非0),那么处理系统通过使用用于d*P的经预计算值(即,3*P、2*P、1*P及-4*P)计算新的值。最终串经标示为Q,324。此重编码程序使得Q的每一数字与两次加倍及一次相加相关联,从而接着使得攻击者难以从功率轨迹直接读取数字,在所述功率轨迹中,加倍及相加彼此显得不同。尽管此程序有助于缩减旁信道泄漏,但仍存在改进的空间,这是由于当产生k'时有时需要产生附加数字,且因此程序的时序(例如,其持续期间)可能会泄漏恶意实体可能利用的信息。此外,此程序不阻碍取决于逐步运算中的零及一的数字的统计攻击。
图4说明另一项用于缩减泄漏的技术。图4的所述技术400涉及将n的随机倍数、基点的阶数与k相加以产生k'=k+r*n,其中r为随机数。也就是说,在401处,所述处理系统随机地产生值r且接着预计算表示r*n的二进制串值403。输入串402对应于位串k。接着在方框405处将用于k及r*n的值相加以通过分组位对而产生串k'=k+r*n,其可再次被看作是以4为基数的串,如所展示。此后,处理可如结合图3大体上所描述进行,其中串k'404经重编码以产生新的串k”408,所述k”408接着用于使用点相乘逻辑422基于在410处使用P经预计算且存储在方框412、414、416及418处的值从经初始化Z值420产生Q值424。图4的所述技术通常可基于从噪音获取k而阻止攻击,这是因为对于样本的任何合理的数目,同一k'将仅出现若干次(这是因为其并有随机分量r)。然而,如同上文参考图3所论述的重编码技术,图4的程序不确保具有相同大小k的例项将在相同时间中运行,这是由于重编码可将附加数字与k”相加。
图5提供可由ECC装置操作以基本上缩减或消除困扰图3及4的泄漏形式的技术的概述。图5的重编码技术500还涉及将n的随机倍数、基点的阶数与k相加,但随机倍数r经限制在值的范围内,以使得无关于所获得的具体值r,k+r*n的二进制系列表示的最高有效位的位位置在EC点相乘程序期间对于具体椭圆曲线将保持平坦且固定,以便消耗独立于标量乘数(k)的值的装置资源,即,不管k如何,时间及功率消耗将为一致的。也就是说,在步骤502处,ECC处理系统通过(例如)在椭圆曲线上选择具有阶数(n)的基点(P)的标量乘数(k)而产生或以其它方式获得或取得私钥以供与EC点相乘程序一起使用。应注意,本文中,“获得”广泛地涵盖(例如)产生、取得、接收、检索或执行任何其它合适的对应的动作。在步骤504处,所述处理系统从值的经限制的范围内随机地产生整数乘数r,以使得,如所指出,k+r*n的向量表示的最高有效位的位位置在EC点相乘程序(例如相加及加倍)期间对于具体椭圆曲线将保持平坦且固定,以便基本上消除可能另外发生的旁信道泄漏。在步骤506处,所述处理系统接着使用k+r*n(或其经重编码版本)执行EC点相乘程序以(例如)产生公钥及/或产生且处理采用此类密钥的数字签名。
图5的示范性处理技术提供基本上恒定的运行时间,其中加倍及相加的序列为恒定的。在此技术的情况下,即使攻击者成功使得受害者多次重复相同EC点相乘计算,计算的每一例项仍高概率地使用不同k'(即,k+r*n或其经重编码版本),从而使得统计攻击较困难。在这点上,首先应注意,如果(未经重编码k的)最高有效位的固定位置m为平坦(其中最低有效位经编号为零(或等效地在常用术语中,乘数具有奇数位)),那么重编码程序始终产生m/2数字。图5的程序的重要方面为产生随机值r,以使得k'=k+r*n的最高有效位的位位置对于具体椭圆曲线始终为平坦且固定(假定k<n)。因而,加倍及相加运算的序列将不取决于k。此外,k'存在非常多的可能值,且由于攻击者将不知道r,因此攻击者安装统计攻击来从噪音获取信号将相当困难。
处于清楚且简洁地描述程序,本文中的描述在下文将忽略以词语表示ECC的“大数字”且计算机算术对词语起作用的事实。在记住所述限制条件的情况下,在使用大数字算术的密码系统中,存在与模量(即,基点的阶数)相关联的许多方面:其以位为单位的长度、用于蒙哥马利乘法(Montgomery multiplication)的一些特殊值,等。在实践中,一般提前计算这些方面且将这些方面放入与所涉及的模量相关联的数据结构中。当二进制点正好在最左边位的左边时,可将额外值与此组经预计算值:模量的近似词语大小的倒数相加。此值将在1与2之间,包含1及2。(应注意,此处经界定的精确倒数不能等于1,但其可充分地接近,以使得当经圆整为词语时,所述值四舍五入为精确的1。)本文中,所述模量的此近似倒数在本文中被称作:“mrecip”。出于阐释简单起见,本文中的描述对待mrecip如同其为浮点值一般,但所属领域的技术人员可使用整数连同缩放信息以表示所述值。本文中,m为表示n的二进制值或向量中的位的数目。因此,n*mrecip大致等于2m。
只要2(j-1)<=k+r*n<=2j-1,k'中的(且因此经重编码乘数中的)位的数目将为j(其中j必须为奇数)。如果略微较强不等式2(j-1)<=r*n<2j-n同样成立,那么此不等式将必然成立,这是由于k<n。将所有项乘以mrecip*2-m产生mrecip*2-m*2(j-1)<=mrecip*2-m*r*n<mrecip*2-m*2j-mrecip*2-m*n。应注意,n*mrecip*2-m大致为1,且简化一获得mrecip*2(j-m-1)<=r<mrecip*2(j-m)-1。在实践中,将存在某一四舍五入误差,且因此,出于安全性,在略微较窄范围中随机地(或伪随机地)选择r:floor(mrecip*2(j-m-1))+1..floor(mrecip*2(j-m))-2(其中floor(x)为表示不超过x的最大整数的函数。)。举例来说,如果k'比n多具有24位,那么j-m-1为23且j-m为24。因此,即使mrecip接近于1,r将粗略地在223与224之间,且将存在约八百万个可能的r值,因此相同r值将仅非常罕见地出现。
因此,如图6中所展示,用于获得用于k+(r*n)中的整数乘数(r)的说明性程序通过处理系统在步骤602处选择或以其它方式确定用于将阶数(n)表示为二进制值的位(m)的数目而开始。在步骤604处,处理系统选择或确定用于将k+r*n表示为二进制值的位(j)的数目。在步骤606处,处理系统确定用于限制(r)的值的范围的下端(RL),其中:RL=floor(mrecip*2(j-m-1))+1)且其中,如所解释,mrecip为基点(P)的阶数(n)的近似倒数。在步骤608处,处理系统确定用于限制(r)的值的范围的上端(RU),其中:RU=floor(mrecip*2(j-m-1))-2)。在步骤610处,处理系统从所述范围:RL .. RU内随机地或伪随机地产生r。r的值接着用于产生k'=k+(r*n)。
图7进一步说明图5到6的程序。图7的程序700在701处开始,其中随机乘数r从前述经限制的值的范围内随机地产生,且接着计算r*n。也就是说,从所述范围内随机地或伪随机地获得r:floor(mrecip*2(j-m-1))+1 .. floor(mrecip*2(j-m)-2。为了促进此,可预计算mrecip的值。在703处存储所得二进制值r*n。输入串702对应于位串k。在方框705处使k及r*n的值相加以通过分组位对而产生串k'=k+r*n,其可再次被看作是四进制串。然而,借助于如所描述来限制或限定r,k'的最高有效位对于具体椭圆曲线为平坦且固定。实际上,如所展示,两个最高有效位707及709分别为0及1。此后,处理可如上文结合图4大体上所描述进行,其中串k'经重编码以产生串k”。然而,此外,借助于限制r,k”的最高有效位对于具体椭圆曲线同样为平坦且固定,且如所展示,两个最高有效位711及713为0及1。串k”接着用于使用点相乘逻辑722基于在710处经预计算且存储在方框712、714、716及718处的四个值(3*P、2*P、1*P及-4*P)从经初始化Z值720产生Q 724。
由于基本EC点相乘逻辑运算的序列为加倍、加倍、相加(对于任何具体ECC曲线为固定数目个周期),因此图7的程序使得简单功率分析及时序攻击为困难的。如上文所指出,简单功率分析可与信号平均组合以获取较多信息,但此由具有不同k'值的几乎每一轨迹阻挠。应再次注意,在一些ECC程序中,引入随机值可有助于差分功率分析,在此处其为不确定的,这是由于攻击者将不知道r。
示范性设备、系统及方法
图8说明具有处理电路802的示范性椭圆曲线密码学(ECC)处理装置800,所述处理电路802提供EC点相乘控制器804、数字签名产生器806(可从其获得至少一个数字签名)及数字签名验证器808。在此实例中,EC点相乘控制器804包含标量乘数(k)选择控制器,其可操作以在椭圆曲线上获得阶数(n)的基点(P)的标量乘数(k)以供与对于经表示为一系列位的值进行操作的EC点相乘程序一起使用。整数乘数(r)范围确定控制器812可操作以针对经限定的整数乘数(r)确定值的范围,以使得无关于在所述范围内获得的具体值(r),使用与整数乘数(r)及阶数(n)的乘积进行求和的标量乘数(k)执行的EC点相乘程序消耗独立于标量乘数(k)的值的处理资源。范围确定控制器812可操作以:通过确定RL=floor(mrecip*2(j-m-1))+1)来确定值的范围的下端(RL),其中mrecip为n的近似倒数,m为表示n的值中的位的数目,j为表示k+(r*n)的值中的位的数目;及还通过确定RU=floor(mrecip*2(j-m)-2)来确定值的范围的上端(RU),如已经解释。整数乘数(r)产生控制器814可操作以获得整数乘数(r),以使得使用与整数乘数(r)及阶数(n)的乘积进行求和的标量乘数(k)执行的EC点相乘程序消耗独立于标量乘数(k)的值的处理资源,此可通过从由范围确定控制器812确定的值的范围内随机地或伪随机地选择值r来完成。
求和控制器816可操作以将整数乘数(r)应用于阶数(n)以产生整数乘数(r)与阶数(n)的乘积(r*n)且接着将标量乘数(k)与整数乘数(r)及阶数(n)的乘积进行求和以产生标量乘数(k)与整数乘数(r)及阶数(n)的乘积的总和,例如,k+r*n。重编码控制器818接着可操作以重编码与整数乘数(r)及阶数(n)的乘积进行求和的标量乘数(k)以产生经重编码值,例如,以重编码k+r*n。可(例如)如图3的方框306中所展示且如上文所描述但使用k+r*n(其中限制r)执行重编码,以使得无关于所选择的具体值(r),k+r*n的最高有效位的位位置在重编码期间对于具体椭圆曲线为平坦且固定的。因而,至少就涉及时间及功率来说,重编码运算不应展现任何旁信道泄漏。Z初始化控制器820可操作以起初设置标量值Z以供与EC点相乘逻辑控制器822一起使用,如上文所论述。预计算控制器824可操作以基于P预计算值以用于基于经重编码值使用EC点相乘逻辑控制器822处理Z。举例来说,预计算控制器824可针对如图7中所展示且如上文所论述的-4*P、1*P、2*P及3*P预计算值。预计算控制器还可预计算mrecip的值以供范围确定控制器812使用。EC点相乘逻辑控制器822接着可应用基于P的经预计算值(从预计算控制器获得)以基于经重编码总和k+r*n(从重编码控制器获得)的值处理值Z(从Z初始化控制器获得)以产生输出值Q。可(例如)如图3的方框322中大体上所展示且如上文所描述但基于经重编码值执行Q的产生,其中再次,最高有效位的位位置对于具体椭圆曲线为平坦且固定的。
数字签名产生器806及数字签名验证器808可至少部分地基于由EC点相乘控制器804产生或以其它方式获得的k、P及Q值或通过使用由EC点相乘控制器产生或以其它方式获得的其它值产生及/或验证数字签名。在一些实例中,数字签名产生器及数字签名验证器可利用或併有EC点相乘控制器(例如EC点相乘逻辑控制器822)的组件中的一些,且可使用由预计算控制器824预计算的值中的一些。
因此,处理装置800及其各种组件提供:用于在椭圆曲线上获得阶数(n)的基点(P)的标量乘数(k)以供与对经表示为一系列位的值进行操作的椭圆曲线点相乘程序一起使用的装置;用于确定值的范围以使得无关于在所述范围内获得的具体值(r),使用与整数乘数(r)及阶数(n)的乘积进行求和的标量乘数(k)执行的椭圆曲线点相乘程序消耗独立于标量乘数(k)的值的装置资源的装置;用于从值的所述范围内获得整数乘数(r)的装置;及使用标量乘数(k)、整数乘数(r)及阶数(n)执行至少一个椭圆曲线点相乘程序的装置。处理装置800还提供用于针对经限定的整数乘数(r)确定值的范围以使得无关于在所述范围内获得的具体值(r),与整数乘数(r)及阶数(n)的乘积进行求和的标量乘数(k)的最高有效位的位位置对于具体椭圆曲线为平坦且固定的装置。
图9说明可由图8的ECC处理装置800或其它经适当配备的装置执行的方法或程序900。在步骤902处,获得椭圆曲线上的阶数(n)的基点(P)的标量乘数(k)以供与对经表示为一系列位的值进行操作的EC点相乘程序一起使用。在步骤904处,确定用于整数乘数(r)的值的范围,以使得无关于在所述范围内获得的具体值(r),使用与整数乘数(r)及阶数(n)的乘积进行求和的标量乘数(k)执行的EC点相乘程序消耗独立于标量乘数(k)的值的装置资源。在步骤905处,从值的所述范围内获得整数乘数(r)。在步骤906处,使用标量乘数(k)、整数乘数(r)及阶数(n)执行至少一个EC点相乘程序。
图10说明可由图8的ECC处理装置800或其它经适当配备的装置执行的额外方法或程序1000。在此实例中,在步骤1002处,针对经限定或限制的整数乘数(r)确定值的范围,以使得无关于在所述范围内获得的具体值(r),与整数乘数(r)及阶数(n)的乘积进行求和的标量乘数(k)(即,k+r*n)的最高有效位的位位置对于具体椭圆曲线为平坦且固定。在步骤1004处,通过随机或伪随机选择从所述范围内选择或以其它方式获得整数乘数(r)。在步骤1006处,将整数乘数(r)应用于阶数(n)以产生其乘积(即,r*n)且接着将标量乘数(k)应用于r*n以产生其总和(即,k+r*n)。换句话说,在步骤1006处,将整数乘数(r)应用于阶数(n)以产生整数乘数(r)及阶数(n)的乘积(r*n)且接着将标量乘数(k)应用于整数乘数(r)及阶数(n)的乘积以产生整数乘数(r)及阶数(n)的乘积与标量乘数(k)的总和(即,k+r*n)。在步骤1008处,k+r*n经重编码以产生k的经重编码值。换句话说,在步骤1008处,与整数乘数(r)及阶数(n)的乘积进行求和的标量乘数(k)经重编码以产生经重编码值。在步骤1010处,使用经重编码值及值Z应用EC点相乘逻辑以产生值Q,其中基于基点(P)的经预计算值经应用以基于k的经重编码值处理Z。在步骤1012处,基于k、P及Q获得至少一个数字签名。
图11说明其中可实施图1到10的组件及方法的整个系统或设备1100。根据本发明的各个方面,可运用包含一或多个处理电路1104(例如图8的处理电路)的处理系统1114实施元件、或元件的任何部分,或元件的任何组合。举例来说,设备1100可为连接到因特网的交易服务器的组件或可为移动通信系统的无线装置(例如,用户装备(UE)或平板计算机)的组件。处理电路1104的实例包含微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑装置(PLD)、状态机、门控逻辑、离散硬件电路及经配置以执行贯穿本发明描述的各种功能的其它合适的硬件。也就是说,如在设备1100中使用的处理电路1104可用于实施上文所描述的且在图3到7及/或9到10中所说明的过程(例如用以产生或验证数字签名的过程)中的任何一或多者。具体来说,处理电路1104可经配置以:在椭圆曲线上获得阶数(n)的基点(P)的标量乘数(k)以供与对经表示为一系列位的值进行操作的椭圆曲线点相乘程序一起使用;从经设置的值的范围内获得整数乘数(r),以使得无关于在所述范围内获得的具体值(r),使用与整数乘数(r)及阶数(n)的乘积进行求和的标量乘数(k)执行的椭圆曲线点相乘程序消耗独立于标量乘数(k)的值的处理资源;及使用标量乘数(k)、整数乘数(r)及阶数(n)执行至少一个椭圆曲线点相乘程序。
在图11的实例中,可运用一般由总线1102表示的总线架构实施处理系统1114。总线1102可取决于处理系统1114的特定应用及总体设计限制而包含任何数目个互连总线及桥接器。总线1102链接包含一或多个处理电路(一般由处理电路1104表示)的各种电路、存储器存储装置1105及机器可读媒体或计算机可读媒体(一般由机器可读1106表示)。总线1102还可将所属领域中熟知的且因此将不再进一步描述的各种其它电路链接在一起,各种其它电路例如定时源、外围设备、电压调节器及功率管理电路。总线接口1108在总线1102与收发器1110之间提供接口。收发器1110提供用于经由发射媒体与各种其它设备通信的装置。取决于设备的性质,还可提供用户接口1112(例如,小键盘、显示器、扬声器、麦克风、操纵杆)。
处理器或处理电路1104负责管理总线1102及一般处理,包含执行存储在机器可读媒体1106上的软件。所述软件在由处理器1104执行时使得处理系统1114执行本文中针对任何具体设备描述的各种功能。机器可读媒体1106还可用于存储由处理器1104在执行软件时操纵的数据。具体来说,机器可读存储媒体1106可具有在由处理电路1104执行时使得处理电路1104进行以下操作的一或多个指令:在椭圆曲线上获得阶数(n)的基点(P)的标量乘数(k)以供与对经表示为一系列位的值进行操作的椭圆曲线点相乘程序一起使用;确定值的范围,以使得无关于在所述范围内获得的具体值(r),使用与整数乘数(r)及阶数(n)的乘积进行求和的标量乘数(k)执行的椭圆曲线点相乘程序消耗独立于标量乘数(k)的值的处理资源;从值的所述范围内获得整数乘数(r);及使用标量乘数(k)、整数乘数(r)及阶数(n)执行至少一个椭圆曲线点相乘程序。
处理系统中的一或多个处理器1104可执行软件。软件应被广泛地解释为意味着指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用程序、软件应用程序、软件包、例程、子例程、对象、可执行代码、执行线程、步骤、功能等,而不管其是被称作软件、固件、中间件、微码、硬件描述语言还是其它者。处理器可执行必要任务。代码段可以表示步骤、功能、子程序、程序、例程、子例程、模块、软件包、类别,或者指令、数据结构或程序语句的任何组合。一个代码段可通过传递及/或接收信息、数据、自变量、参数或存储器内容耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可经由包含存储器共享、消息传递、令牌传递、网络传输等任何合适的手段传递、转发或传输。
软件可驻留在计算机可读或机器可读媒体1106上。如所指出,机器可读媒体1106可为非暂时性机器可读媒体。举例来说,非暂时性机器可读媒体包含磁性存储装置(例如,硬盘、软盘、磁条)、光盘(例如,压缩光盘(CD)或数字多功能光盘(DVD))、智能卡、闪存装置(例如,卡、棒或钥匙形驱动器(key drive))、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器、可移除式磁盘、硬盘、CD-ROM及用于存储可由计算机存取且读取的软件及/或指令的任何其它合适的媒体。术语“机器可读媒体”、“计算机可读媒体”及/或“处理器可读媒体”可包含但不限于非暂时性媒体,例如,便携式或固定存储装置、光学存储装置及能够存储、含有或携带指令及/或数据的各种其它媒体。因此,本文中所描述的各种方法可完全或部分地由可存储于“机器可读媒体”、“计算机可读媒体”及/或“处理器可读媒体”中且可由一或多个处理器、机器及/或装置执行的指令及/或数据实施。举例来说,机器可读媒体还可包含载波、传输线,及用于传输可由计算机存取及读取的软件及/或指令的任何其它合适的媒体。机器可读媒体1106可驻留在处理系统1114中、位于处理系统1114外部,或跨越包含处理系统1114的多个实体分布。机器可读媒体1106可体现在计算机程序产品中。举例来说,计算机程序产品可包含封装材料中的计算机可读媒体。取决于具体应用及强加于整个系统上的总体设计限制,所属领域的技术人员将认识到如何最好地实施本发明中呈现的所描述功能性。
图中所说明的组件、步骤、特征及/或功能中的一或多者可重新布置及/或组合成单个组件、步骤、特征或功能或体现在若干组件、步骤或功能中。在不脱离本发明的情况下,还可以添加额外的元件、组件、步骤及/或功能。图中所说明的设备、装置及/或组件可经配置以执行图中所描述的方法、特征或步骤中的一或多者。本文中所描述的算法还可有效地实施于软件中及/或嵌入于硬件中。
结合本文中所揭示的实例描述的各种说明性逻辑块、模块、电路、元件及/或组件可运用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文中所描述的功能的任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算组件的组合,例如DSP与微处理器的组合、多个微处理器的组合、一或多个微处理器与DSP核心的结合,或任何其它此类配置。
因此,在本发明的一个方面中,例如图8中所说明的处理电路可为经专门设计及/或经硬连线以执行图3到7及/或10到11中所描述的算法、方法及/或步骤的专用处理器(例如,ASIC))。因此,此专用处理器(例如,ASIC)可为用于执行图3到7及/或10到11中所描述的算法、方法及/或步骤的装置的一个实例。机器可读存储媒体可存储在由专用处理器(例如,ASIC)执行时使得专用处理器执行本文中所描述的算法、方法及/或步骤的指令。
并且,应注意,本发明的各方面可在本文中描述为某一过程,所述过程描绘为流程图表、流程图、结构图或方框图。尽管流程图表可将操作描述为依序过程,但许多操作可并行或同时执行。另外,可重新布置操作的次序。过程在其操作完成时终止。过程可对应于方法、功能、步骤、子例程、子程序等。当过程对应于功能时,过程的终止对应于功能返回到调用功能或主功能。
所属领域的技术人员将进一步了解,结合本文中所揭示的方面描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的此可互换性,上文已大体上就其功能性来说描述了各种说明性组件、块、模块、电路及步骤。此功能性是实施为硬件还是软件取决于具体应用及强加于整个系统的设计限制。
本文中所描述的本发明的各种特征可在不脱离本发明的情况下实施于不同系统中。应注意,本发明的前述方面仅为实例,且不应解释为限制本发明。本发明的各方面的描述既定是说明性的,且不限制权利要求书的范围。因而,本发明的教示可容易应用于其它类型的设备,且许多替代方案、修改及变化对于所属领域的技术人员将显而易见。
Claims (32)
1.一种可由装置操作的用于抵制旁信道信息泄露的椭圆曲线点相乘的方法,其包括:
在椭圆曲线上获得阶数n的基点P的标量乘数k以供与对经表示为一系列位的值进行操作的椭圆曲线点相乘程序一起使用;
针对整数乘数r确定值的范围,以足以确保无论在值的所述范围内获得的所述整数乘数r的具体值为多少,由所述装置使用与所述整数乘数r及所述阶数n的乘积进行求和的所述标量乘数k执行的椭圆曲线点相乘程序都消耗独立于所述标量乘数k的值的装置资源;
从值的所述范围内获得整数乘数r;及
使用所述标量乘数k、所述整数乘数r及所述阶数n执行至少一个椭圆曲线点相乘程序,同时消耗独立于所述标量乘数k的所述值的所述装置资源。
2.根据权利要求1所述的方法,其中针对所述整数乘数r确定值的所述范围包括确定值的所述范围,以足以确保无论在值的所述范围内获得的所述整数乘数r的所述具体值为多少,与所述整数乘数r及所述阶数n的所述乘积进行求和的所述标量乘数k的最高有效位的位位置对于具体椭圆曲线都为平坦且固定的。
3.根据权利要求2所述的方法,其中针对所述整数乘数r确定值的所述范围包括:
通过确定RL=floor(mrecip*2(j-m-1))+1)来确定值的所述范围的下端RL,其中mrecip为所述阶数n的近似倒数,m为表示所述阶数n的值中的位的数目,j为表示所述标量乘数k与所述整数乘数r及所述阶数n的所述乘积的总和的值(k+(r*n))中的位的数目;及
通过确定RU=floor(mrecip*2(j-m)-2)来确定值的所述范围的上端RU。
4.根据权利要求1所述的方法,其中使用随机及伪随机选择中的一或多者执行从值的所述范围内获得所述整数乘数r。
5.根据权利要求1所述的方法,其进一步包括重编码与所述整数乘数r及所述阶数n的所述乘积进行求和的所述标量乘数k以产生经重编码值。
6.根据权利要求5所述的方法,其进一步包括通过应用基于P的经预计算值以基于所述经重编码值处理值Z而使用所述经重编码值及值Z来应用椭圆曲线点相乘逻辑。
7.一种用于椭圆曲线点相乘的装置,其包括:
处理电路,其经配置以:
在椭圆曲线上获得阶数n的基点P的标量乘数k以供与对经表示为一系列位的值进行操作的椭圆曲线点相乘程序一起使用;
针对整数乘数r确定值的范围,以足以确保无论在值的所述范围内获得的所述整数乘数r的具体值为多少,由所述装置使用与所述整数乘数r及所述阶数n的乘积进行求和的所述标量乘数k执行的椭圆曲线点相乘程序都消耗独立于所述标量乘数k的值的装置资源;
从值的所述范围内获得整数乘数r;及
使用所述标量乘数k、所述整数乘数r及所述阶数n执行至少一个椭圆曲线点相乘程序,同时消耗独立于所述标量乘数k的所述值的所述装置资源。
8.根据权利要求7所述的装置,其中所述处理电路进一步经配置以针对所述整数乘数r确定值的所述范围,以足以确保无论在值的所述范围内获得的所述整数乘数r的所述具体值为多少,与所述整数乘数r及所述阶数n的所述乘积进行求和的所述标量乘数k的最高有效位的位位置对于具体椭圆曲线都为平坦且固定的。
9.根据权利要求8所述的装置,其中所述处理电路经配置以通过以下操作来针对所述整数乘数r确定值的所述范围:
通过确定RL=floor(mrecip*2(j-m-1))+1)来确定值的所述范围的下端RL,其中mrecip为所述阶数n的近似倒数,m为表示所述阶数n的值中的位的数目,j为表示所述标量乘数k与所述整数乘数r及所述阶数n的所述乘积的总和的值(k+(r*n))中的位的数目;及
通过确定RU=floor(mrecip*2(j-m)-2)来确定值的所述范围的上端RU。
10.根据权利要求7所述的装置,其中处理电路进一步经配置以使用随机及伪随机选择中的一或多者从值的所述范围内获得所述整数乘数r。
11.根据权利要求7所述的装置,其中处理电路进一步经配置以重编码与所述整数乘数r及所述阶数n的所述乘积进行求和的所述标量乘数k以产生经重编码值。
12.根据权利要求11所述的装置,其中处理电路进一步经配置以通过应用基于P的经预计算值以基于所述经重编码值处理值Z而使用所述经重编码值及值Z来应用椭圆曲线点相乘逻辑。
13.根据权利要求7所述的装置,其中所述处理电路包含用以在所述椭圆曲线上获得阶数n的所述基点P的所述标量乘数k的标量乘数选择控制器。
14.根据权利要求7所述的装置,其中所述处理电路包含用以针对所述整数乘数r确定值的所述范围的整数乘数范围确定控制器。
15.根据权利要求7所述的装置,其中所述处理电路包含用以使用随机及伪随机选择中的一或多者从值的所述范围内获得所述整数乘数r的整数乘数产生控制器。
16.根据权利要求7所述的装置,其中所述处理电路包含用以使用所述标量乘数k、所述整数乘数r及所述阶数n执行至少一个椭圆曲线点相乘程序的椭圆曲线点相乘逻辑控制器。
17.根据权利要求7所述的装置,其中所述处理电路包含用以重编码与所述整数乘数r及所述阶数n的所述乘积进行求和的所述标量乘数k以产生经重编码值的重编码控制器。
18.根据权利要求7所述的装置,其中所述处理电路包含用以将所述整数乘数r应用于所述阶数n以产生所述整数乘数r及所述阶数n的乘积(r*n)且接着对所述标量乘数k与所述整数乘数r及所述阶数n的所述乘积进行求和以产生所述标量乘数k与所述整数乘数r及所述阶数n的所述乘积的总和的求和控制器。
19.根据权利要求7所述的装置,其中所述处理电路包含用以设置标量值Z以供与所述椭圆曲线点相乘一起使用的Z初始化控制器。
20.根据权利要求19所述的装置,其中所述处理电路包含用以基于P预计算值以用于基于经重编码值处理Z的预计算控制器。
21.一种用于椭圆曲线点相乘的装置,其包括:
用于在椭圆曲线上获得阶数n的基点P的标量乘数k以供与对经表示为一系列位的值进行操作的椭圆曲线点相乘程序一起使用的装置;
用于针对整数乘数r确定值的范围以足以确保无论在值的所述范围内获得的所述整数乘数r的具体值为多少,由所述装置使用与所述整数乘数r及所述阶数n的乘积进行求和的所述标量乘数k执行的椭圆曲线点相乘程序都消耗独立于所述标量乘数k的值的装置资源的装置;
用于从值的所述范围内获得整数乘数r的装置;及
用于使用所述标量乘数k、所述整数乘数r及所述阶数n执行至少一个椭圆曲线点相乘程序,同时消耗独立于所述标量乘数k的所述值的所述装置资源的装置。
22.根据权利要求21所述的装置,其中所述用于针对所述整数乘数r确定值的所述范围的装置包括用于确定值的所述范围以足以确保无论在值的所述范围内获得的所述整数乘数r的所述具体值为多少,与所述整数乘数r及所述阶数n的所述乘积进行求和的所述标量乘数k的最高有效位的位位置对于具体椭圆曲线都为平坦且固定的装置。
23.根据权利要求22所述的装置,其中所述用于针对所述整数乘数r确定值的所述范围的装置包括:
用于通过确定RL=floor(mrecip*2(j-m-1))+1)来确定值的所述范围的下端RL的装置,其中mrecip为所述阶数n的近似倒数,m为表示所述阶数n的值中的位的数目,j为表示所述标量乘数k与所述整数乘数r及所述阶数n的所述乘积的总和的值(k+(r*n))中的位的数目;及
用于通过确定RU=floor(mrecip*2(j-m)-2)来确定值的所述范围的上端RU的装置。
24.根据权利要求21所述的装置,其中所述用于从值的所述范围内获得所述整数乘数r的装置包含用于执行随机及伪随机选择中的一或多者的装置。
25.根据权利要求21所述的装置,其进一步包括用于重编码与所述整数乘数r及所述阶数n的所述乘积进行求和的所述标量乘数k以产生经重编码值的装置。
26.根据权利要求25所述的装置,其进一步包括用于通过应用基于P的经预计算值以基于所述经重编码值处理值Z而使用所述经重编码值及值Z来应用椭圆曲线点相乘逻辑的装置。
27.一种非暂时性机器可读存储媒体,其具有在由装置中的至少一个处理电路执行时使得所述至少一个处理电路进行以下操作的一或多个指令:
在椭圆曲线上获得阶数n的基点P的标量乘数k以供与对经表示为一系列位的值进行操作的椭圆曲线点相乘程序一起使用;
针对整数乘数r确定值的范围,以足以确保无论在值的所述范围内获得的所述整数乘数r的具体值为多少,由所述装置使用与所述整数乘数r及所述阶数n的乘积进行求和的所述标量乘数k执行的椭圆曲线点相乘程序都消耗独立于所述标量乘数k的值的装置资源;
从值的所述范围内获得整数乘数r;及
使用所述标量乘数k、所述整数乘数r及所述阶数n执行至少一个椭圆曲线点相乘程序,同时消耗独立于所述标量乘数k的所述值的所述装置资源。
28.根据权利要求27所述的非暂时性机器可读存储媒体,其进一步包括用以致使所述处理电路进行以下操作的指令:针对所述整数乘数r确定值的所述范围,以足以确保无论在值的所述范围内获得的所述整数乘数r的所述具体值为多少,与所述整数乘数r及所述阶数n的所述乘积进行求和的所述标量乘数k的最高有效位的位位置对于具体椭圆曲线都为平坦且固定的。
29.根据权利要求28所述的非暂时性机器可读存储媒体,其进一步包括用以致使所述处理电路通过以下操作来针对所述整数乘数r确定值的所述范围的指令:
通过确定RL=floor(mrecip*2(j-m-1))+1)来确定值的所述范围的下端RL,其中mrecip为所述阶数n的近似倒数,m为表示所述阶数n的值中的位的数目,j为表示所述标量乘数k与所述整数乘数r及所述阶数n的所述乘积的总和的值(k+(r*n))中的位的数目;及
通过确定RU=floor(mrecip*2(j-m)-2)来确定值的所述范围的上端RU。
30.根据权利要求27所述的非暂时性机器可读存储媒体,其进一步包括用以致使所述处理电路进行以下操作的指令:使用随机及伪随机选择中的一或多者从值的所述范围内获得所述整数乘数r。
31.根据权利要求27所述的非暂时性机器可读存储媒体,其进一步包括用以致使所述处理电路进行以下操作的指令:重编码与所述整数乘数r及所述阶数n的所述乘积进行求和的所述标量乘数k以产生经重编码值。
32.根据权利要求31所述的非暂时性机器可读存储媒体,其进一步包括用以致使所述处理电路进行以下操作的指令:通过应用基于P的经预计算值以基于所述经重编码值处理值Z而使用所述经重编码值及值Z来应用椭圆曲线点相乘逻辑。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/245,732 | 2014-04-04 | ||
US14/245,732 US9391773B2 (en) | 2014-04-04 | 2014-04-04 | Elliptic curve point multiplication procedure resistant to side-channel information leakage |
PCT/US2015/023683 WO2015153670A1 (en) | 2014-04-04 | 2015-03-31 | Elliptic curve point multiplication procedure resistant to side-channel information leakage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106105093A CN106105093A (zh) | 2016-11-09 |
CN106105093B true CN106105093B (zh) | 2018-03-27 |
Family
ID=52988445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580013768.5A Expired - Fee Related CN106105093B (zh) | 2014-04-04 | 2015-03-31 | 用于抵制旁信道信息泄露的椭圆曲线点相乘的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9391773B2 (zh) |
EP (1) | EP3126959B1 (zh) |
JP (1) | JP6110577B1 (zh) |
KR (1) | KR101787672B1 (zh) |
CN (1) | CN106105093B (zh) |
WO (1) | WO2015153670A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102014222825A1 (de) * | 2014-11-07 | 2016-05-12 | Ihp Gmbh - Innovations For High Performance Microelectronics / Leibniz-Institut Für Innovative Mikroelektronik | Vorrichtung und Verfahren zur Multiplikation zur Erschwerung von Seitenkanalangriffen |
US9813232B2 (en) * | 2015-03-17 | 2017-11-07 | Cypress Semiconductor Corporation | Device and method for resisting non-invasive attacks |
EP3376705A1 (en) * | 2017-03-17 | 2018-09-19 | Koninklijke Philips N.V. | Elliptic curve point multiplication device and method in a white-box context |
US10505744B2 (en) * | 2017-06-29 | 2019-12-10 | Intel Corporation | Technologies for robust computation of elliptic curve digital signatures |
KR102507861B1 (ko) * | 2018-04-19 | 2023-03-09 | 삼성에스디에스 주식회사 | 부채널 공격에 안전한 연산 장치 및 방법 |
US11848942B2 (en) | 2018-12-10 | 2023-12-19 | Mercedes-Benz Group AG | Method for detecting intrusion in distributed field bus of a network and system thereof |
US11296879B2 (en) * | 2019-10-04 | 2022-04-05 | Atakama LLC | Encrypted search |
IT201900025567A1 (it) | 2019-12-24 | 2021-06-24 | St Microelectronics Srl | Procedimento per eseguire operazioni di crittografia in un dispositivo di elaborazione, corrispondenti dispositivo di elaborazione e prodotto informatico |
IT202000000886A1 (it) | 2020-01-17 | 2021-07-17 | St Microelectronics Srl | Procedimento per eseguire operazioni di crittografia su dati in un dispositivo di elaborazione, corrispondenti dispositivo di elaborazione e prodotto informatico |
EP4235400B1 (en) * | 2020-01-28 | 2024-07-24 | Quside Technologies S.L. | Computer-implemented method for deciding whether a random number is larger or smaller than a given threshold |
IT202000006475A1 (it) | 2020-03-27 | 2021-09-27 | St Microelectronics Srl | Procedimento per eseguire operazioni di crittografia su dati in un dispositivo di elaborazione, corrispondenti dispositivo di elaborazione e prodotto informatico |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103282950A (zh) * | 2010-12-27 | 2013-09-04 | 三菱电机株式会社 | 运算装置、运算装置的椭圆标量乘法方法、椭圆标量乘法程序、运算装置的剩余运算方法、剩余运算程序、运算装置的零判定方法以及零判定程序 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2252078C (en) | 1998-10-28 | 2009-02-17 | Certicom Corp. | Power signature attack resistant cryptographic system |
US7379546B2 (en) | 2004-03-03 | 2008-05-27 | King Fahd University Of Petroleum And Minerals | Method for XZ-elliptic curve cryptography |
US7404089B1 (en) * | 2005-06-03 | 2008-07-22 | Pitney Bowes Inc. | Method and system for protecting against side channel attacks when performing cryptographic operations |
EP1946205B1 (en) | 2005-10-18 | 2010-04-14 | Telecom Italia S.p.A. | A method for scalar multiplication in elliptic curve groups over prime fields for side-channel attack resistant cryptosystems |
US8243919B2 (en) * | 2007-03-07 | 2012-08-14 | Research In Motion Limited | Method and apparatus for performing elliptic curve scalar multiplication in a manner that counters power analysis attacks |
US20080275932A1 (en) * | 2007-03-07 | 2008-11-06 | Research In Motion Limited | Integer Division In A Manner That Counters A Power Analysis Attack |
US8160245B2 (en) * | 2007-03-07 | 2012-04-17 | Research In Motion Limited | Methods and apparatus for performing an elliptic curve scalar multiplication operation using splitting |
WO2009024520A1 (en) * | 2007-08-17 | 2009-02-26 | International Business Machines Corporation | Method and system for atomicity for elliptic curve cryptosystems |
US7991162B2 (en) * | 2007-09-14 | 2011-08-02 | University Of Ottawa | Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields |
JP4837058B2 (ja) * | 2009-03-10 | 2011-12-14 | 株式会社東芝 | 演算装置及びプログラム |
KR20140046568A (ko) * | 2012-10-05 | 2014-04-21 | 한국전자통신연구원 | 단순 전력 파형 분석 및 오류 주입 분석을 방지하는 타원곡선 암호화 방법 및 그 시스템 |
-
2014
- 2014-04-04 US US14/245,732 patent/US9391773B2/en active Active
-
2015
- 2015-03-31 WO PCT/US2015/023683 patent/WO2015153670A1/en active Application Filing
- 2015-03-31 EP EP15717339.4A patent/EP3126959B1/en not_active Not-in-force
- 2015-03-31 CN CN201580013768.5A patent/CN106105093B/zh not_active Expired - Fee Related
- 2015-03-31 JP JP2016556929A patent/JP6110577B1/ja not_active Expired - Fee Related
- 2015-03-31 KR KR1020167027289A patent/KR101787672B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103282950A (zh) * | 2010-12-27 | 2013-09-04 | 三菱电机株式会社 | 运算装置、运算装置的椭圆标量乘法方法、椭圆标量乘法程序、运算装置的剩余运算方法、剩余运算程序、运算装置的零判定方法以及零判定程序 |
Non-Patent Citations (5)
Title |
---|
《Efficient Comb Elliptic Curve Multiplication Methods Resistant to Power Analysis》;Min Feng et al;《INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH》;20050708;第1-31页 * |
《Exponent Recoding and Regular Exponentiation Algorithms》;Marc Joye et al;《PROGRESS IN CRYPTOLOGY - AFRICACRYPT 2009》;20090625;第334-349页 * |
《Improved Fixed-Base Comb Method for Fast Scalar Multiplication》;Nashwa A.F. Mohamed et al;《PROGRESS IN CRYPTOLOGY - AFRICACRYPT 2012》;20120712;第342-359页 * |
《Resistance Against Differential Power Analysis For Elliptic Curve Cryptosystems》;J.-S. Coron;《LECTURE NOTES IN COMPUTER SCIENCE》;19990813;第292-302页 * |
《Securing elliptic curve point multiplication against side-channel attacks》;Bodo Moller;《INFORMATION SECURITY》;20011003;第324-334页 * |
Also Published As
Publication number | Publication date |
---|---|
KR20160120346A (ko) | 2016-10-17 |
US20150288520A1 (en) | 2015-10-08 |
KR101787672B1 (ko) | 2017-11-15 |
US9391773B2 (en) | 2016-07-12 |
JP2017511902A (ja) | 2017-04-27 |
JP6110577B1 (ja) | 2017-04-05 |
WO2015153670A1 (en) | 2015-10-08 |
CN106105093A (zh) | 2016-11-09 |
EP3126959A1 (en) | 2017-02-08 |
EP3126959B1 (en) | 2018-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106105093B (zh) | 用于抵制旁信道信息泄露的椭圆曲线点相乘的方法和装置 | |
US10721056B2 (en) | Key processing method and device | |
CN106464483B (zh) | 用于电子部件实现椭圆曲线密码算法的应对方法、电子电路和电子系统 | |
US9680647B2 (en) | Method of using a token in cryptography | |
WO2012090284A1 (ja) | 演算装置、演算装置の楕円スカラー倍算方法、楕円スカラー倍算プログラム、演算装置の剰余演算方法、剰余演算プログラム、演算装置のゼロ判定方法およびゼロ判定プログラム | |
US11902432B2 (en) | System and method to optimize generation of coprime numbers in cryptographic applications | |
TW201629829A (zh) | 用於加密操作之指數分拆技術 | |
TWI512610B (zh) | 利用模數的特殊形式之模組約化 | |
Hu et al. | The analysis and investigation of multiplicative inverse searching methods in the ring of integers modulo m | |
CN109889328A (zh) | 基于直接匿名证明的装置和方法 | |
Dong et al. | sDPF-RSA: Utilizing floating-point computing power of GPUs for massive digital signature computations | |
Park et al. | Efficient Parallel Implementation of Matrix Multiplication for Lattice‐Based Cryptography on Modern ARM Processor | |
CN103580869B (zh) | 一种crt-rsa签名方法及装置 | |
CN108512665A (zh) | 在椭圆曲线密码系统中生成椭圆曲线点 | |
Jahani et al. | Efficient big integer multiplication and squaring algorithms for cryptographic applications | |
Greuet et al. | On using RSA/ECC coprocessor for ideal lattice-based key exchange | |
Aljuffri et al. | Multi-bit blinding: A countermeasure for RSA against side channel attacks | |
Rijneveld | Practical post-quantum cryptography | |
CN104298897A (zh) | 基于混沌技术的嵌入式版权认证方法及专用处理器 | |
CN103973446B (zh) | 用于验证电子签名的方法和数据处理设备 | |
Knežević et al. | Signal processing for cryptography and security applications | |
Seo et al. | Optimized Karatsuba squaring on 8‐bit AVR processors | |
Li et al. | Parallel and Regular Algorithm of Elliptic Curve Scalar Multiplication over Binary Fields | |
CN105406970B (zh) | 签名的方法及装置、验证签名的方法及装置 | |
Antonov | Random number generator based on multiplicative convolution transform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180327 Termination date: 20190331 |