CN102098156A - 密码转换数据文本的改进或与之相关的改进 - Google Patents
密码转换数据文本的改进或与之相关的改进 Download PDFInfo
- Publication number
- CN102098156A CN102098156A CN2010105866106A CN201010586610A CN102098156A CN 102098156 A CN102098156 A CN 102098156A CN 2010105866106 A CN2010105866106 A CN 2010105866106A CN 201010586610 A CN201010586610 A CN 201010586610A CN 102098156 A CN102098156 A CN 102098156A
- Authority
- CN
- China
- Prior art keywords
- instruction
- bit
- sequence
- partly
- higher value
- 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.)
- Pending
Links
Images
Classifications
-
- 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
-
- 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/723—Modular exponentiation
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
Abstract
提供了一种密码转换数据文本c的方法。在密码学领域,在保持与传统方乘模幂相关的低存储需求的同时,需要减少密码转换数据文本所需的时间。一种密码转换数据文本c的方法包括步骤:根据下式产生数据文本c的整数表示m:m=cd。其中,d是预定指数。产生整数表示m的步骤包括:产生中间数序列,每一个中间数基于序列中较前的两个或更少的数。产生中间数序列包括:检索预存储的指令,以确定给定中间数基于序列中较前的哪两个或更少的数,以及确定产生所述给定中间数所需的每一个较前数的功能操作。
Description
技术领域
本发明涉及一种密码转换数据文本的方法和一种被配置为实现此方法的半导体器件。
背景技术
一种数据文本被密码转换的方法是通过求模幂(modular exponentiation)。
这种求幂涉及,确定当以指数e升幂为e次方的正整数底数y除以正指数时取其余数,即模z。
换句话说,该计算采用如下形式:
x=ye(mod z)
如上所述的模幂计算实现相对简单,即使相关的数非常大。
然而,确定其离散对数,即给定整数底数y、余数x和模数z来得到指数e是很困难的。这种方法的功能使得模幂算法在密码学中非常有用。
使用模幂算法的一个密码学的领域是公共密钥密码学,如RSA(Rivest,Shamir和Adleman)公共密钥密码学。
RSA密码学将模幂算法用于密码转换数据文本以便加密数据文本和解密数据文本。
RSA密码学首先包含密码产生的步骤,其包括公共密钥和私有密钥的确定。公共密钥可以是所有人已知的,并且被用于加密消息。利用公共密钥加密后的消息只能利用私有密钥来解密。
公共密钥包含模数z和公共加密指数e。私有密钥包括模数z和必须保密的私有解密指数d。
为了加密信息M,首先必须利用约定的可逆协议,如填充(padding)方案,将M转换为整数,即数据文本y。
第一密码转换,即加密转换,包含根据下式来产生数据文本y的整数表示x:
x=ye(mod z)
整数表示x是加密的密码文本,可以被传送给接收方。
预期的接收方可以通过对加密后的数据文本x执行第二密码转换,即解密转换,来恢复原始数据文本y。
第二密码转换包含利用私有解密指数d通过如下计算产生加密数据文本x的整数表示:
y=xd(mod z)
因而,可以从加密数据文本x中恢复原始数据文本y。
给定另一个整数表示,即原始数据文本y,通过逆转换约定的可逆协议,可以恢复原始消息M。
其它的密码相关任务,例如,约定密钥、构造数字签名和验证这样的签名也利用模幂算法,或使用其他数学结构中的求幂,例如在椭圆曲线上的点群。
这样的任务典型依赖于产生原始数据文本y的整数表示x,并且使用类似于在上述提及的第一密码转换的指数计算,即:
x=ye
在上述每一个情况下,指数计算,即x=ye,例如可以利用针对模幂算法的方乘(square-and-multiply)算法来计算。这种计算只需要两个单元的处理,即在前迭代和整数1。作为结果,只需要两个存储器单元。
然而,这样的计算需要大量计算操作,并因此需要受限的时间量来完成。
在很多情况下,完成计算操作所需的时间导致了用户可察觉的延时。
因此,需要减少完成计算操作所需的时间,以及因此完成如加密数据文本或解密数据文本的密码任务所需的时间。
提高产生整数表示x的速度的一种方法是在求幂计算中,即在计算x=ye中,利用无约束(unconstrained)的迭代。
然而,这样的方法需要存储大量迭代,这导致所需的存储器单元的数量变得异常的大。
因此,需要在保持与传统方乘模幂算法相关的低存储需求的同时,减少密码转换数据文本所需的时间。
发明内容
根据本发明的第一方面,提供了一种密码转换数据文本c的方法,所述方法包括步骤:根据下式产生数据文本c的整数表示m:
m=cd
其中
d是预定指数,
产生整数表示m的步骤包括:产生中间数序列,每一个中间数基于序列中较前两个或更少的数,产生中间数序列包括:检索预存储的指令,以确定给定中间数基于序列中较前的哪两个或更少的数,以及确定产生给定中间数所需的每一个较前数的功能操作。
使用预存储的指令来确定给定中间数基于序列中较前的哪两个或更少的数,是基于与在传统的方乘模幂算法相比较能够产生较少受限的中间数,并且因此减少了计算m=cd所需的计算操作量。
在需要不超过两个整数(即序列中较前的两个或更少的数)的存储的同时,获得了计算操作的减少并因此减小了密码转换数据文本c所花时间,因此保持了与传统方乘模幂算法相关的低存储需求。
优选地,产生整数表示m还包括步骤:导出并存储指令的列表,每一个指令对应于给定中间数的产生。
获取并存储指令的列表允许指令的定制,例如,根据指数的本质。
可选地,该方法包括在第一时间顺序序列中存储指令的列表,以及在第二时间逆序序列中检索该指令的列表。
这些步骤允许指令按时间顺序从例如期望的指数处开始,从而以时间逆序执行指令使整数增加到期望的指数。
在本发明方法的优选实施例中,导出并存储指令的列表包括从预定指数d导出指令。
从预定指数d导出指令意味着以时间逆序执行指令可以用于将整数增加到指数,并因此根据m=cd产生整数表示m。
优选地,从预定指数导出指令包括:
-将所述预定指数d的等效二进制值划分为第一和第二比特部分;
-针对第一和第二比特部分执行收敛运算序列以将每个比特部分降低到1;和
-在收敛运算序列的每一步骤处导出指令。
将指数d成第一和第二比特部分允许收敛运算序列的执行只利用两个存储器单元,并且能够在执行的同时保持了传统方乘模幂算法的低存储需求。
在本发明方法的另一优选实施例中,针对第一和第二比特部分执行收敛运算序列包括:
-识别具有较大值的比特部分;
-如果较大值比特部分是偶数,则将较大值比特部分减半;和
-如果较大值比特部分是奇数,则从较大值比特部分中减去较小值比特部分;和
-重复前述步骤,直至每一个比特部分为1。
这样的步骤导出指令的列表,与针对同样指数的传统方乘模幂算法的计算操作量相比较,所述指令列表具有更少的条目。
可选地,在收敛运算序列的每一步处导出指令包括:
-当较大值比特部分减半时,导出加倍指令;和
-当从较大值比特部分中减去较小值比特部分时,导出加法指令。
导出这样的指令确保当以时间逆序序列执行指令时,能够进行序列中较前的两个或更少数的期望功能操作。
有利地,导出加倍指令包括指示其中驻留了较大值比特部分的寄存器,以及导出加法指令包括指示其中主流了相应较大值比特部分和较小值比特部分的存储器单元。
这样的步骤确保了当以时间逆序序列中执行指令时,存储器单元或每一个存储器单元按期望操作。
在本发明方法的另一优选实施例中,产生中间数序列还包括:
(a)以数据文本c的等效二进制值来初始化第一和第二存储器单元;
(b)检索预存储的指令;
(c)根据检索到的指令来功能性地操作第一和第二存储器单元之一或二者,以产生中间数;和
(d)对指令的列表中的每一个指令,重复步骤(b)和(c)。
上述步骤在减少计算操作量的情况下将数据文本c提升到期望的指数d,即检索到的预存储指令,从而确定整数表示m。
本发明的方法还包括步骤:结合第一和第二存储器单元中的比特信息来产生整数表示m。这一步骤在确保对于整数表示m获得有意义的结果的同时,允许利用这两个存储器单元产生中间数的序列。
在本发明另一优选实施例中,针对第一和第二比特部分执行收敛运算序列还包括:如果较大值比特部分是奇数而较小值比特部分是偶数且比较大值比特部分小预定因子时,将较小值比特部分减半。
这一步骤增加了收敛运算序列收敛的速度,且因此在一系列指令中导致更少的预存储指令。更少的指令意味着更少的中间数,且因此也意味着数据文本c的更快密码转换。
本发明方法的另一优选实施例包括步骤,在将预定指数的等效二进制值划分为第一和第二比特部分之后,将m个随机比特添加到第一比特部分的最低有效位端,以及将m个随机比特添加到第二比特部分的最高有效位端。
将m个随机比特添加到第一比特部分的最低有效位端以及将m个随机比特添加到第二比特部分的最高有效位端允许在每次产生中间数序列时能够导出不同的指令列表。这随后在获得同样的结果(即产生整数表示m)的同时,在每一次中间数产生期间导致了不同的功能操作。
每次产生中间数序列时执行不同功能操作增加了解密步骤对于使用例如统计功率分析(SPA)对边信道攻击的抵抗。
在本发明的另一优选方法中,针对第一和第二比特部分执行收敛运算序列还包括:
-检查第一和第二比特部分是否彼此相等但不等于1;和
-如果两者均不等于1,补偿这种相等(equality)。
优选地,补偿这种相等包括从第一或第二比特部分减去随机数。
上述步骤确保了在第一和第二存储器单元中的数只在均等于1时才相等。
根据本发明的第二方面,提供了一种被配置为执行上文中所述方法步骤的半导体器件。
例如,当从嵌入了根据本发明的半导体器件的智能卡或护照中恢复加密数据时,本发明的半导体器件将与本发明的方法相关联的上述优点引入到数据文本的密码转换中。结果,与传统智能卡和护照相比较,当从此类设备中中恢复数据时,用户将感知到更短的延时。
可提供一种计算机程序,当其在计算机上运行时,使计算机执行这里披露的任何方法,或配置包括这里披露的半导体器件的任何设备。所述计算机程序可以是软件实现,且计算机可以被认为是任意合适的硬件,作为非限制性的示例,包括数字信号处理器、微控制器和在只读存储器(ROM)、可擦写可编程只读存储器(EPROM)或电子可擦写可编程只读存储器(EEPROM)上的实现。软件可以是汇编程序。
计算机程序可以被设置在计算机可读介质上,如盘或存储器件,或可体现为瞬时信号。这样的瞬时信号可以是网络下载,包括因特网下载。
附图说明
作为非限制性的示例,参照下述附图,对本发明方法的优选实施例进行简要描述,其中:
图1示意性地示出了根据本发明优选方法的密码转换数据文本的方法的各阶段示意图;
图2示出了根据图1所示方法导出指令列表的图示;
图3示出了根据图1所示方法产生整数表示m的图示;
图4示出了图1所示方法的存储器需求;
图5示出了图1所示方法中可选步骤的图示;
图6示出了图1所示方法中附加可选步骤的图示;和
图7示出了图1所示方法中其他期望步骤的图示。
具体实施方式
在图1中示意性地示出了根据本发明优选方法的密码转换数据文本的方法的各阶段。
更具体地,图1示出了计算数据文本的整数表示m中包含的三个阶段。
第一阶段包括步骤:导出和存储指令(即操作码)的列表。每一个指令对应于具体中间数的后续产生。
在本发明的优选方法中,从预定指数d导出每一个指令。
在本发明所示方法中,数据文本是加密密码文本c,因此需要密码解密转换。因此,预定指数d是私有解密指数。
在本发明的另一方法(未示出)中,预定指数可以是公共加密指数e,或者其它指数。
在图2中示意性示出了从解密指数d中导出指令。以时间顺序序列存储指令中,即按照导出指令的顺序。
这种导出包括将解密指数d的二进制等效值划分为第一比特部分x和第二比特部分y。
如图2所示,解密指数d由下式给出:
d=x*2k+y
其中
k是每一个比特部分x和y中的比特数。
指令的导出还包括针对第一和第二比特部分x和y执行收敛运算序列,以将每一个比特部分降低到1。
执行收敛运算序列包括识别具有较大值的比特部分x和y。
如果较大值比特部分是偶数,则将较大值比特部分减半,如图2中所示,将x转换为x/2。
以这种方式将较大值比特部分减半导出加倍指令,指示了其中驻留较大值比特部分的存储器单元(即寄存器R),即:
指令1:R1=2*R1
当检索到该指令时,指示了应当加倍第一存储器单元(即第一寄存器R1)中的比特部分应被加倍,且结果放置于第一寄存器R1,如从x/2到x的逆转换所示。
如果较大值比特部分是奇数,则从较大值比特部分中减去较小值比特部分,如图2中所示的从a到a-b的转换。
该操作导出加法指令,其指示驻留了每一个较大值比特部分和较小值比特部分的相应存储器单元(即寄存器),即:
指令n:R1=R1+R2
当检索到该指令时,指示了第一寄存器R1中的比特部分应该与第二寄存器R2中的第二比特部分相加,并且结果应放置于第一寄存器R1中。
重复减半或减法步骤的每一个,并且存储对应指令,直至每一个比特部分x和y为1。
产生密码文本c的整数表示m的第二阶段包括产生中间数序列。
产生中间数序列包括检索之前在第一阶段存储的指令。以时间逆序序列检索所述指令,即按照与导出相反的顺序。
在图3中示意性示出了产生中间数序列的步骤。
这些步骤包括以密码文本c的二进制等效值初始化第一和第二存储器单元,即第一和第二寄存器R1和R2。
如图3中所示,将密码文本c的每一个二进制表示提升(raise)到指数1。
因此,第一和第二寄存器R1和R2的每一个中的指数值等于第一阶段的比特部分x和y的值。
然后,检索预存储的指令被恢复,并且根据检索到的指令来功能性地操作第一和第二寄存器R1和R2之一或二者,以产生中间数。
第一预存储指令可以是加法指令,如从ca-b到ca的转换所示。
然而,由于指令与其中密码文本c被提升到的指数的加法相关,相加指数等同于将第一和第二寄存器R1和R2相乘。结果检索到的指令被解释为
指令n:R1=R1*R2
以计算ca。
预存储指令也可以是加倍指令,如从cx/2到cx的转换所示。
类似的,该指令与其中密码文本c被提升到的指数的加倍相关,加倍指数等同于相应寄存器的平方。作为结果,检索到的指令被解释为:
指令1:R1=R12
以计算cx。
对于每一个预存储指令重复检索预存储指令以及功能性操作第一和第二寄存器R1和R2的步骤。
因而,第一寄存器R1最终包含cx并且第二寄存器R2最终包含cy,如图3所示。
一旦到达这一阶段,在第三,即最后阶段,根据下式组合寄存器R1和R2每一个中的比特信息以给出整数表示m:
具体地,通过第一寄存器R1的k次平方产生整数表示m,例如,对于512比特长的数字,在将第一寄存器R1与第二寄存器R2相乘之前,是512次。
接下来,通过以时间逆序针对包含密码文本c的二进制表示的第一和第二寄存器执行每一个预存储指令,可以计算出整数表示m。
在RSA密码学解密的情况中,现在可通过在原始数据文本m逆向执行执行协商的可逆协议来确定原始消息M。
如图2和图3中图示,只需要两个存储器单元(即第一和第二寄存器R1和R2),以导出指令列表,并且执行指令以产生期望的中间数序列。
如果可以在例如半导体器件或芯片的计算设备中进行内置(inplace)计算,可保持如此的存储器需求。
当不能进行内置计算时,需要另外的第三存储器单元,即第三寄存器,如图4中示意性示出。
然而,在这样的情况下,传统的方乘模幂算法也需要另外的存储器单元,也如图4中所示。
因此,本发明的方法在不能进行内置计算的计算设备中,仍然能保持传统方乘模幂算法的低存储器需求。
此外,结合本发明的方法引入第三寄存器提供了能够更大程度放置计算结果的寄存器,并且因此使得根据本发明方法的解密更少受到SPA的边信道攻击的影响。
当针对第一和第二比特部分上执行收敛运算序列时,图5中示意性示出了可选过程。
该过程包括“预先减半”包含较小值比特部分的寄存器R1或R2。
具体地,该过程包括,如果较大值比特部分是奇数而较小值比特部分是偶数且比较大值比特部分小预定因子时,将较小值比特部分减半。
在本发明的优选实施例中,预定因子是8或更大。
统计分析表明,所期待步骤的数量在如此对分是两次时,需要偶数值变为奇数。
因而,如图5所示,如果较大值比特部分是奇数而较小值比特部分是偶数且比较大值比特部分小时,减半较小值比特部分,即转换t=s/2,减少了收敛寄存器所需要的步骤数量。
图6中示意性示出了本发明的方法的其他可选步骤。
其他可选步骤包括:在将预定指数d的二进制等效值划分为第一和第二比特部分x和y后,将m个随机比特添加到第一比特部分x的最低有效位端以计算x’,以及将m个随机比特添加到第二比特部分y的最高端以计算y’。
指令的导出包括针对修改后的第一和第二比特部分x’和y’以上文中描述的同样方式执行收敛运算序列。
如此包含m个随机比特使第一导出指令随机化,并将这种随机化贯穿到所有导出指令中。
在中间数的每一个产生过程中,当每次导出指令获取时可以添加不同的随机比特,以确保不同的功能操作,并且因此提供对于SPA的边信道攻击的有效抵抗。
解密指数d由下式给出:
d=2k-m.x’+y’
并且,因此如上所述,通过结合包含cx’和cy’的第一和第二寄存器R1和R2,可以利用下式计算整数表示m:
m=cd
优选地,本发明的方法包括在图7中示意性示出的其他过程。
当针对第一和第二比特部分执行收敛运算序列时,执行所述其他过程,包括:
检查第一和第二比特部分是否彼此相等并且不等于1;和
如果两个比特部分均不等于1,补偿这种相等。
检查第一和第二比特部分是否彼此相等并且不等于1可以包括检查一个比特部分是否是另外一个比特部分的两倍。
补偿这种相等包括从第一或第二比特部分减去随机数Δ。在图示的实施例中,从第一寄存器R1中减去随机数Δ。
上文中描述的步骤可以根据下式在密码转换明文数据文本m中实现,以产生密码文本c:
c=me
其中从预定的公共加密指数e导出指令。
然而,应注意到,典型情况下加密指数e比解密指数d短,因此计算加密文本c的速度上的任何提升(由于所需要的计算操作量的降低),与相应的解密过程相比不易察觉。
上述步骤也可以在约定密钥过程期间或当产生或验证数字签名时用于类似的密码转换数据文本m。
Claims (15)
1.一种密码转换数据文本c的方法,所述方法包括步骤:根据下式产生数据文本c的整数表示m:
m=cd
其中,
d是预定指数,
产生整数表示m的步骤包括:产生中间数序列,每一个中间数基于序列中较前两个或更少的数,产生中间数序列包括:检索预存储的指令,以确定给定中间数基于序列中较前的哪两个或更少的数,以及确定产生给定中间数所需的每一个较前数的功能操作。
2.根据权利要求1所述的方法,其中产生整数表示m还包括步骤:导出并存储指令的列表,每一个指令对应于给定中间数的产生。
3.根据权利要求2所述的方法,包括在第一时间顺序序列中存储指令的列表,以及在第二时间逆序序列中检索指令的列表。
4.根据权利要求2或权利要求3所述的方法,其中导出和存储指令的列表包括从预定指数d导出指令。
5.根据权利要求4所述的方法,其中从所述预定指数导出指令包括:
-将所述预定指数d的等效二进制值划分为第一和第二比特部分;
-针对第一和第二比特部分执行收敛运算序列以将每个比特部分减小到1;和
-在收敛运算序列的每一步骤处导出指令。
6.根据权利要求5所述的方法,其中针对第一和第二比特部分执行收敛运算序列包括:
-识别具有较大值的比特部分;
-如果较大值比特部分是偶数,则将所述较大值比特部分减半;和
-如果较大值比特部分是奇数,则从较大值比特部分中减去较小值比特部分;和
-重复前述步骤,直至每一个比特部分为1。
7.根据权利要求6所述的方法,其中在收敛运算序列的每一步处导出指令包括:
-当较大值比特部分减半时,导出加倍指令;和
-当从较大值比特部分中减去较小值比特部分时,导出加法指令。
8.根据权利要求7所述的方法,其中导出加倍指令包括指示其中驻留了较大值比特部分的存储器单元,并且导出加法指令包括指示分别驻留了较大值比特部分和较小值比特部分的相应存储器单元。
9.根据权利要求8所述的方法,其中产生中间数序列还包括:
(a)以数据文本c的等效二进制值来初始化第一和第二存储器单元;
(b)检索预存储的指令;
(c) 根据检索到的指令来功能性地操作第一和第二存储器单元之一或二者,以产生中间数;和
(d)对指令的列表中的每一个指令,重复步骤(b)和(c)的每一步。
10.根据权利要求9所述的方法,还包括步骤:结合第一和第二存储器单元中的比特信息来产生整数表示m。
11.根据权利要求6到10的任何一个所述的方法,其中针对第一和第二比特部分执行收敛运算序列还包括:如果较大值比特部分是奇数而较小值比特部分是偶数且比较大值比特部分小预定因子,将较小值比特部分减半。
12.根据权利要求5到11中任何一个所述的方法,还包括步骤:在将预定指数的等效二进制值划分为第一和第二比特部分之后,将m个随机比特添加到第一比特部分的最低有效位端,以及将m个随机比特添加到第二比特部分的最高有效位端。
13.根据权利要求6到12中任何一个所述的方法,其中针对第一和第二比特部分执行收敛运算序列还包括:
-检查第一和第二比特部分是否彼此相等但不等于1;和
-如果两者均不等于1,补偿这种相等。
14.根据权利要求13所述的方法,其中补偿这种相等包括从第一或第二比特部分之一中减去随机数。
15.一种被配置为执行权利要求1到14的任何一个所述的方法的半导体器件。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP09252767 | 2009-12-10 | ||
EP09252767.0 | 2009-12-10 | ||
EP10190972.9A EP2334006B1 (en) | 2009-12-10 | 2010-11-12 | Side-channel resistant modular exponentiation |
EP10190972.9 | 2010-11-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102098156A true CN102098156A (zh) | 2011-06-15 |
Family
ID=43733907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105866106A Pending CN102098156A (zh) | 2009-12-10 | 2010-12-09 | 密码转换数据文本的改进或与之相关的改进 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8548161B2 (zh) |
EP (1) | EP2334006B1 (zh) |
CN (1) | CN102098156A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105281898A (zh) * | 2014-07-23 | 2016-01-27 | 三星Sds株式会社 | 密钥生成装置及方法 |
CN109194676A (zh) * | 2018-09-21 | 2019-01-11 | 无锡润盟软件有限公司 | 数据流加密方法、数据流解密方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8976960B2 (en) | 2012-04-02 | 2015-03-10 | Apple Inc. | Methods and apparatus for correlation protected processing of cryptographic operations |
FR3040512B1 (fr) * | 2015-08-27 | 2017-09-08 | Stmicroelectronics Rousset | Protection d'un calcul d'exponentiation modulaire |
FR3040511B1 (fr) * | 2015-08-27 | 2017-09-08 | Stmicroelectronics Rousset | Verification de la sensibilite d'un circuit electronique executant un calcul d'exponentiation modulaire |
US20170228440A1 (en) * | 2016-02-10 | 2017-08-10 | Virdree BURNS | Method of facilitating pattern recognition through organizing data based on their sequencing relationship |
US11288581B2 (en) * | 2017-12-27 | 2022-03-29 | Sap Se | Subsymbolic encoding with preserved semantic relationships |
US11210824B2 (en) | 2020-05-21 | 2021-12-28 | At&T Intellectual Property I, L.P. | Integer-based graphical representations of words and texts |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5297206A (en) * | 1992-03-19 | 1994-03-22 | Orton Glenn A | Cryptographic method for communication and electronic signatures |
US20090238360A1 (en) * | 2008-03-24 | 2009-09-24 | Mathieu Ciet | Exponentiation ladder for cryptography |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5999627A (en) * | 1995-01-07 | 1999-12-07 | Samsung Electronics Co., Ltd. | Method for exponentiation in a public-key cryptosystem |
AU4904496A (en) * | 1995-03-10 | 1996-10-02 | Motorola, Inc. | Method and system for storing instructions in computer memory |
US6282290B1 (en) * | 1997-03-28 | 2001-08-28 | Mykotronx, Inc. | High speed modular exponentiator |
JP2001527673A (ja) * | 1997-05-04 | 2001-12-25 | フォートレス ユー アンド ティー リミティド | モントゴメリー乗算に基づくモジュラ乗算及び累乗の改善された装置と方法 |
US6223198B1 (en) * | 1998-08-14 | 2001-04-24 | Advanced Micro Devices, Inc. | Method and apparatus for multi-function arithmetic |
US6769090B1 (en) * | 2000-08-14 | 2004-07-27 | Virata Corporation | Unified technique for multi-rate trellis coding and decoding |
US6748412B2 (en) * | 2001-09-26 | 2004-06-08 | Intel Corporation | Square-and-multiply exponent processor |
DE10392560D2 (de) * | 2002-01-19 | 2005-05-12 | Pact Xpp Technologies Ag | Reconfigurierbarer Prozessor |
DE10202700A1 (de) * | 2002-01-24 | 2003-08-07 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Erzeugen eines Befehlscodes |
WO2005088440A1 (en) * | 2004-03-04 | 2005-09-22 | Philips Intellectual Property & Standards Gmbh | Method for the exponentiation or scalar multiplication of elements |
US7657029B2 (en) * | 2005-03-01 | 2010-02-02 | Microsoft Corporation | Systems and methods for generating random addition chains |
DE102006025673B9 (de) * | 2005-10-28 | 2010-12-16 | Infineon Technologies Ag | Rechenwerk zum Reduzieren einer Eingabe-Zahl bezüglich eines Moduls |
US7805479B2 (en) * | 2006-03-28 | 2010-09-28 | Michael Andrew Moshier | Scalable, faster method and apparatus for montgomery multiplication |
-
2010
- 2010-11-12 EP EP10190972.9A patent/EP2334006B1/en active Active
- 2010-12-09 CN CN2010105866106A patent/CN102098156A/zh active Pending
- 2010-12-10 US US12/965,689 patent/US8548161B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5297206A (en) * | 1992-03-19 | 1994-03-22 | Orton Glenn A | Cryptographic method for communication and electronic signatures |
US20090238360A1 (en) * | 2008-03-24 | 2009-09-24 | Mathieu Ciet | Exponentiation ladder for cryptography |
Non-Patent Citations (2)
Title |
---|
CIET M等: "(Virtually) Free Randomization Techniques for Elliptic Curve Cryptography", <ICISC 2003,LNCS 2936,SPINGER>, 10 October 2003 (2003-10-10), pages 348 - 359, XP007912842 * |
MELONI. N等: "New Point Addition Formulae for ECC Applications", <ARITHMETIC OF FINITE FIELDS,SPRINGER>, 21 June 2007 (2007-06-21) * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105281898A (zh) * | 2014-07-23 | 2016-01-27 | 三星Sds株式会社 | 密钥生成装置及方法 |
CN105281898B (zh) * | 2014-07-23 | 2020-06-16 | 三星Sds株式会社 | 密钥生成装置及方法 |
CN109194676A (zh) * | 2018-09-21 | 2019-01-11 | 无锡润盟软件有限公司 | 数据流加密方法、数据流解密方法 |
CN109194676B (zh) * | 2018-09-21 | 2020-11-27 | 无锡润盟软件有限公司 | 数据流加密方法、数据流解密方法 |
Also Published As
Publication number | Publication date |
---|---|
US8548161B2 (en) | 2013-10-01 |
EP2334006B1 (en) | 2016-03-23 |
EP2334006A1 (en) | 2011-06-15 |
US20110311041A1 (en) | 2011-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102098156A (zh) | 密码转换数据文本的改进或与之相关的改进 | |
CN109039640B (zh) | 一种基于rsa密码算法的加解密硬件系统及方法 | |
CN1326351C (zh) | 有限域离散对数密码系统的割圆多项式结构 | |
EP2104031A2 (en) | Data processing system and data processing method | |
JP4137385B2 (ja) | 公開鍵および秘密鍵による暗号化方法 | |
JP4662802B2 (ja) | 計算方法、計算装置及びコンピュータプログラム | |
GB2265285A (en) | Public key cryptographic method for communication and electronic signatures | |
CN102279840B (zh) | 一种适用于信息加密技术应用的素数族快速生成方法 | |
EP3276880A1 (en) | Efficient ecdsa signature and verification | |
US20020126838A1 (en) | Modular exponentiation calculation apparatus and modular exponentiation calculation method | |
CN105871552A (zh) | 双核并行rsa密码处理方法及协处理器 | |
Hwang et al. | An efficient decryption method for RSA cryptosystem | |
US7248692B2 (en) | Method of and apparatus for determining a key pair and for generating RSA keys | |
KR100508092B1 (ko) | 저전력 모듈로 곱셈을 수행하는 연산장치 | |
CN1466830A (zh) | 密码专用密钥的存储和复原方法及设备 | |
CN101567783B (zh) | 一种基于ⅱ型高斯基域的椭圆曲线加解密方法和装置 | |
CN1985458B (zh) | 增强的自然蒙哥马利指数掩蔽和恢复的方法和装置 | |
CN105373366B (zh) | 一种生成大素数的方法及装置 | |
CN1550975A (zh) | 蒙哥马利模数乘法器及其方法 | |
US8290151B2 (en) | Device and method for determining an inverse of a value related to a modulus | |
Xiao et al. | Improved RSA algorithm and application in digital signature | |
CN114513306B (zh) | 数据加密传输方法、系统 | |
CN117014208B (zh) | 数据加密方法、装置、系统、电子设备及存储介质 | |
Paar et al. | Public-key cryptosystems based on the discrete logarithm problem | |
CN114513306A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110615 |