CN101405988B - 用于安全地确定数据的方法 - Google Patents

用于安全地确定数据的方法 Download PDF

Info

Publication number
CN101405988B
CN101405988B CN2006800540319A CN200680054031A CN101405988B CN 101405988 B CN101405988 B CN 101405988B CN 2006800540319 A CN2006800540319 A CN 2006800540319A CN 200680054031 A CN200680054031 A CN 200680054031A CN 101405988 B CN101405988 B CN 101405988B
Authority
CN
China
Prior art keywords
instruction
register
auxiliary quantity
processor
content
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
Application number
CN2006800540319A
Other languages
English (en)
Other versions
CN101405988A (zh
Inventor
M·布劳恩
A·卡格尔
B·迈耶
S·皮卡
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Publication of CN101405988A publication Critical patent/CN101405988A/zh
Application granted granted Critical
Publication of CN101405988B publication Critical patent/CN101405988B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7266Hardware adaptation, e.g. dual rail logic; calculate add and double simultaneously
    • 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/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Signal Processing (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Executing Machine-Instructions (AREA)
  • Storage Device Security (AREA)

Abstract

本发明所基于的任务在于,说明一种用于安全地处理数据的方法,其中进一步提高了相对旁信道攻击的安全性。该任务尤其是由此被解决:确定用于指示协处理器的操作码,例如确定用于取决于位地交换寄存器内容的操作码。在这种情况下利用以下事实:基于协处理器的技术上的构造,从外部不能将寄存器内容例如从寄存器A向寄存器B的移位与从寄存器A向寄存器C的移位相区别。

Description

用于安全地确定数据的方法
技术领域
本发明涉及一种用于安全地确定数据的方法,在该方法中在第一处理器中将带密钥的数学运算应用到椭圆曲线的点上,其中该密钥可以用位序列(bi)被表示为二进制数。
背景技术
非对称的密码系统通过设立由私钥和公钥组成的密钥对如下保证提高的安全度:对于攻击者来说几乎不可能在有限的时间内解密私钥或者解密用公钥加密的消息。诸如基于椭圆曲线的这种密码系统的常见密码系统基于以下加密:该加密可在多项式时间(polynomielleZeit)中执行,但是该加密仅仅在指数时间中相对于以位为单位的密钥长度可被求逆(invertieren)。在基于椭圆曲线的系统中,现在应用n=160至192位的密钥长度,在基于RSA算法的系统中为此针对大致相同的安全水平而使用n=1024至1536位的长度。
因此,基于椭圆曲线的加密方法比在相当程度的可达到的安全性的情况下的其它加密方法更有效并且必需更小的带宽用于传输系统参数。
作为例子,这里概述了公知的、用于基于椭圆曲线在两个通信用户之间约定公用密钥的Diffie-Hellman方法。在这种情况下,第一通信用户A知道安全参数ra,而第二通信用户B知道安全参数rb。在这两个通信用户同意选用椭圆曲线和同意选用该椭圆曲线上的共同点P之后,通信用户A确定值:
Qa=ra*P
并且通信用户B确定值:
Qb=rb*P。
紧接其后,由通信用户A将值Qa传输给通信用户B,并且由通信用户B将值Qb传输给通信用户A。在另一标量乘法中,通信用户A现在确定公用密钥
K=ra*Qb=ra*rb*P
并且通信用户B确定同样的公用密钥
K=rb*Qa=rb*ra*P。
因此,标量乘法构成基于椭圆曲线的加密方法中的基本组成部分。特别有利的是应用椭圆曲线,因为可以仅仅以显著的计算花费来计算求逆运算,该求逆运算也就是由点Qa,b和P的认知来确定标量ra,b,使得Qa,b=ra,b*P适用。根据如今的认知水平,标量乘法可以在多项式时间中被计算,但是该标量乘法仅仅可以在指数时间中被求逆。
可是,公知的基于椭圆曲线的加密方法在所谓的旁信道攻击方面是易受攻击的。它们是对基于加密的求逆的攻击方法的替换方案,以便尽可能有效地破解加密所基于的算法。它们尤其可被用在诸如智能卡或软件狗(Dongle)的移动辅助装置中,秘密密钥材料被存储在所述移动辅助装置上,以便实现加密的消息交换或产生数字签名或者又解密消息。
攻击者利用相对应电路的数据线的相对较容易的可接近性,以便测量如电源(Strom)、电磁辐射的物理量,测量所感应的错误中的结果或者测量某些计算的运行时间。在根据简单的电源分析(SPA)或者通过借助存储示波器记录如电源的测量值来直接分析处理(Auswertung)测量值中以及在紧接着的统计学分析处理中,可以以有效的方式获得关于所基于的算法的信息,或者在最坏的情况下获得关于当前存在的密钥的信息。
应借助例子来详细阐述后者:一种用于进行加密的方法不仅针对基于椭圆曲线的算法而且针对基于RSA方法的这种算法规定应用数学运算。
在椭圆曲线的情况下,作为数学运算要执行标量乘法:
Q=k*P,
其中P是经过有限域K的椭圆曲线上的点,而k又是密钥或由其导出的量。
标量乘法的可能的实施方案可以通过在运算器上实施下列算法来进行,其中密钥k通过二进制表示(bi,i=n-1...0)来预先给出:
算法1:EC-椭圆曲线:Q=k*P
(1.1)Q←0
(1.2)i←n-1
(1.3)只要i>-1
(1.3.1)Q←2*Q
(1.3.2)如果bi=1,则Q←Q+P
(1.3.3)i←i-1
(1.4)交付Q
在简单的电源分析(SPA)的情况下,分析标量乘法的电源消耗的分布。标量乘法主要由加法和倍增组成。可是,这些运算在K中的初等运算的数量上明显不同,以致电源消耗也不同。因此,通过相对应的旁信道攻击可推断出单个位并且由此推断出k的二进制表示本身。
用于防御这种攻击的可能的步骤在于,使与各个位的值有关的能流(Stromfluss)和针对两个可能的位状态0和1的计算运行时间相适应,如下面所示的那样:
椭圆曲线E的点P由其x坐标和其y坐标给出。基于椭圆曲线E的曲线方程,对于一个x值最多存在两个不同的y值y1和y2,以致点(x,y1)和(x,y2)是椭圆曲线E上的点。因此,为了明确地确定椭圆曲线E上的点,除了x坐标之外仅仅还需要一个附加信息位。
在有限素域上的椭圆曲线E的情况下,例如y坐标的所谓的最低有效位(LSB)或者各个点的y坐标的符号足够作为附加信息。
在所谓的蒙哥马利梯形算法(Montgomery-Leiter-Algorithmus)中利用椭圆曲线的特性,该蒙哥马利梯形算法是一种用于在椭圆曲线上实施标量乘法的常用方法。蒙哥马利梯形算法能够被实施来使得仅仅点P的x坐标被用于计算点P的标量多倍(Vielfachen)的x坐标。因为如下面所示的蒙哥马利梯形算法同时是一种抵抗简单的电源分析的极好的方法,所以该算法常常在运行在嵌入式系统上的密码系统中被实施。
按照蒙哥马利梯形算法的后面所描述的方法,计算处于椭圆曲线上的点P的多倍k*P。
以二进制表示给出的标量k=(bn-1,...,bi,...,b0)以所谓的最高有效位(MSB,N1)开始逐位被执行。
算法2:EC-椭圆曲线:Q=k*P
蒙哥马利梯形:
(2.1)R←P,S←0
(2.2)i←n-1
(2.3)只要i>-1
(2.3.1)如果bi=1{S←S+R,R←2*R}
(2.3.2)否则{R←R+S,S←2*S}
(2.3.3)i←i-1
(2.4)交付R,S
(2.5)由点R、S和P重建k*P
在所示的例子中,与位无关地完全同样地执行加法和倍增。从运算顺序方面,因此不能推断出位序列。但是成问题的是转移指令(“如果”或“否则”),因为这些转移指令导致跳转到不同地址,该跳转使得不同的电源消耗可被察觉。
发明内容
因此,本发明所基于的任务在于说明一种用于安全地处理数据的方法,其中进一步提高了相对旁信道攻击的安全性。
按照本发明,该任务通过具有权利要求1的特征的方法来解决。本发明的有利的改进方案在从属权利要求中被说明。
按照本发明,在用于安全地确定第一处理器中的数据的方法中,具有密钥的数学运算被应用到椭圆曲线的点上,其中所述密钥可用位序列(bi)被表示为二进制数。该方法具有第一指令(x)和第二指令(y),该第一指令(x)在其它处理器中导致对至少一个寄存器内容的第一操作(X),该第二指令(y)在该其它处理器中导致第二操作(Y)。根据这两个指令(x,y)确定至少一个值(d)。第一辅助量(R)和第二辅助量(S)被初始化,即被配备有起始值。对于密钥的每个位(bi)顺序地执行下列步骤:
第一辅助量(R)被传送给该其它处理器的第一寄存器,并且第二辅助量(S)被传送给该其它处理器的第二寄存器。根据位(bi)的值和所述至少一个值(d)的值将指令分配给输出变量(A),使得或者第一指令(x)被分配或者第二指令(y)被分配。输出变量(A)被传输给该其它处理器的指令寄存器。
最后,确定在该其它处理器中被更新的第一辅助量(R)和第二辅助量(S)。在结束针对位(bi)的步骤之后,输出第一辅助量(R)和/或第二辅助量(S)并且由第一辅助量(R)和第二辅助量(S)确定数学运算的结果。
在本发明中,“其它处理器”在不排除该概念的一般性的情况下被理解为协处理器、尤其是密码协处理器。该其它处理器具有受限制的指令组并且在硬件技术上被保护来使得通过测量几乎不能识别:在协处理器中是执行等价的操作还是执行不等价的操作。
因此,本发明的特征尤其是在于,在该方法中,针对协处理器确定指令(所谓的操作码(Operationscode)),这些指令引起寄存器内容在协处理器之内的交换或者不交换。基于协处理器的技术构造,不能从外部将寄存器内容例如从寄存器A向寄存器B的移位与从寄存器A向寄存器C的移位相区别。因此,所描述的用于解决该任务的一般方法尤其是在于,不是确定包含要处理的辅助量的存储区上的地址,而是确定针对用于与位有关地交换寄存器内容的协处理器指令的操作码。在这种情况下利用以下事实:在协处理器中,寄存器内容的地址不起作用,因为这些辅助量已经被加载到协处理器的寄存器中并且这些寄存器隐含地通过相应的操作码被寻址。
就此而言,本发明的方法具有以下优点:明显提高保护免受(尤其是通过电源分析引起的)旁信道攻击的影响,因为两个寄存器的交换仅仅在协处理器之内进行并且所述交换或不交换基于两个操作码的发送,其实施在协处理器之内不能被区别。
作为本发明的其它重要的优点得到:避免了对于旁信道攻击尤其易受攻击的“如果-否则-分支”,其方式是通过计算两个操作码之间的差进行“如果-否则-分支”的隐含确定。
本发明的应用并不限于协处理器。因此,例如可能的是:将根据本发明的方法用于选择不同的、用于实施自我修改的程序的操作码,并且以这种方式实施隐含的“如果-否则-分支”。此外,本发明的方法可被转用到其它的快速取幂例行程序(Exponentiationsroutine)和标量乘法的实施上。
按照本发明的有利的扩展方案,第一指令(x)和第二指令(y)具有相同的汉明重量。因此,以有利的方式保证,也不能从外部通过旁信道攻击区别这两个指令(x,y)。
附图说明
下面借助实施例根据附图详细说明本发明。其中:
图1示出了将辅助量(R,S)分配到协处理器的不同寄存器的示意图,
图2示出了通过协处理器之内的操作码将辅助量(R,S)分配到协处理器的寄存器的示意图。
具体实施方式
借助按照现有技术的在算法2中所示的蒙哥马利梯形的流程可以认识到,在方法步骤(2.3.1)和(2.3.2)中根据位(bi)仅仅交换辅助量(R,S)。
(3.1)如果bi=1:{S←S+R,R←2*R}
(3.2)否则{R←R+S,S←2*S}
因此算法2通过以下方式被进一步简化:如果密钥位取值0,则辅助量在所执行的回路的开始处和结束处被交换。那么仅仅需要参考这两个转移地址中的一个,其中F1={S←S+R,R←2*R}:
(4.1)如果bi=1:F1
(4.2)否则{交换(R,S),F1,交换(R,S)}。
这种方法所基于的、蒙哥马利梯形算法的硬件技术上的实施方案在图1中被示出。两个辅助量(R)101和(S)102根据密钥位(bi)的值分别被移位到协处理器103的第一寄存器104或第二寄存器105中。如果密钥位例如具有值1,那么辅助量(R)101被移位到第一寄存器104中,106;并且辅助量(S)102被移位到第二寄存器105中,109。如果密钥位相反地取值0,那么辅助量(R)101被移位到第二寄存器105中,107;并且辅助量(S)102被移位到第一寄存器104中,108。
在协处理器103中,在这两种情况下执行函数F1,以致函数F1的结果必要时必须又一次被交换。
可是,所描述的方法具有以下缺点:总是还存在通过旁信道攻击引起的可检测性,因为根据位值,在复制时每个计算机字需要两个存储器访问。在较长的域元素的情况下需要多个访问,这明显地表现在电源消耗中。
按照本发明通过以下方式消除了该缺点:在协处理器之内执行辅助量(R,S)的交换。
该过程在图2中被示出。与相应的密钥位(bi)无关地,辅助量(R)201被移位到协处理器203的第一寄存器204中,206;并且第二辅助量(S)202被移位到协处理器203的第二寄存器205中,207。可是,根据相应的密钥位(bi),确定对于协处理器203的操作码并且将该操作码移位到协处理器的指令寄存器中。在密钥位的值为1的情况下,第一操作码被移位到指令寄存器中,以致第一寄存器204中的辅助量(R)被移位到第三寄存器212中,208;并且以致第二寄存器205中的辅助量(S)被移位到第四寄存器213中,211。在密钥位的值为0的情况下,相反地将第二操作码移位到指令寄存器中,以致第一寄存器204中的辅助量(R)被移位到第四寄存器213中,209;并且以致第二寄存器205中的辅助量(S)被移位到第三寄存器212中,210。
在另一实施例中,R、S、C是协处理器的内部的数据寄存器。上面所描述的、针对协处理器的指令序列能被表示为:
(5.1)如果bi=0,那么{交换(R,S)}
(5.2)否则{不交换(R,S)}。
借助第三数据寄存器C,指令序列也能被描述如下:
(6.1)如果bi=0,那么{C←R,R←S,S←C}
(6.2)否则,那么{C←R,R←S,R←C}
或者
(7.1)C←R,R←S
(7.2)如果bi=0,那么{S←C}
(7.3)否则,那么{R←C}。
在方法步骤(7.1)中进行的分配S←C和R←C没有导致电源消耗中的可测量的区别,可是与位有关的分支和以前一样不能被保护以防止旁信道攻击。在下面,通过操作码(x)描述了指令S←C并且通过操作码(y)描述了指令R←C,并且此外还假设在不限制一般性的情况下适用x<y。具有操作码的指令通过以下方式来由协处理器执行:将相对应的操作码写入协处理器的指令寄存器中。在该假设下,可以如下地描述指令序列:
(8.1)如果bi=0,那么{A←x}
(8.2)否则,那么{A←y}
(8.3)C←R,R←S
(8.4)将来自A的操作码写入指令寄存器中
唯一剩余的可测量的位相关性在上面描述的算法中通过分配操作码来引起。按照本发明,通过以下方式避免(8.1)和(8.2)中的转移指令:在指令(x)和(y)之间构成差d=y-x,以致转移指令的结果能如下地与位有关地被计算:
A=x+d·bi
该方法可以通过添加两个计算机字h和h′被进一步改善,其中这两个计算机字(h,h′)仅仅在计算机字h的最小有效位上被区分,该计算机字h是相应的密钥位bi。因此,在减法h-h′=bi情况下得到,并且所查找的操作码可以如下地被计算:
A=x+h·d-h′·d
该多项式被描述在下面的算法中:
(9.1)将bi旋转到字h的LSB上
(9.2)按照h′复制h并且删除h′的LSB
(9.3)A←x
(9.4)m←h*d
(9.5)A←A+m
(9.6)m←h′*d
(9.7)A←A-m
如果将该结果应用到在算法2中描述的蒙哥马利梯形算法中,则得到下面的算法:
(10.1)x←指令{S←C}//交换R、S的寄存器内容
(10.2)y←指令{R←C}//不交换R、S
(10.3)R←P,S←O
(10.4)d←y-x,其中x<y
(10.5)对于i←n-1至0执行
(10.6)将bi旋转到字h的LSB上
(10.7)按照h′复制h并且删除h′的LSB
(10.8)A←x
(10.9)m←h*d
(10.10)A←A+m
(10.11)m←h′*d
(10.12)A←A-m
(10.13)C←R,R←S
(10.14)将A加载到协处理器的指令寄存器中
(10.15)在协处理器中计算S←S+R,R←2*R
(10.16)C←R,R←S
(10.17)将A加载到协处理器的指令寄存器中
(10.18)结束
(10.19)由R、S和P重建k*P
在其它实施例中,描述了在英飞凌(Infineon)公司的芯片SLE66CX320P上使用例如协处理器ACE的情况下的根据本发明的实施方案。
密码协处理器ACE具有四个数据寄存器CR0、CR1、CR2和CR3以及操作数寄存器C。在该例子中,两个辅助量被加载到数据寄存器CR1和CR2中,这些数据寄存器CR1和CR2的内容现在应该被交换。秘密位为工作寄存器A的最小有效位(LSB),该工作寄存器A在该情况下具有8位的长度。
此外,密码协处理器ACE还具有指令move_CR1_C和move_CR2_c,借助这些指令将寄存器C的内容移位到寄存器CR1中或移位到寄存器CR2中。对于第一指令的操作码x为0x6b,并且对于第二指令的操作码y为0x73。因为两个操作码之间的差d为8,所以上述算法(9.4)中的乘法h·d通过移位指令来替换,并且该算法因此被简化。下列算法现在示出了针对第一或第二指令确定所希望的操作码,其中运算&表示逻辑“与”运算:
操作码的选择
(11.1)循环地将A向左旋转三位
(11.2)设置B←A+0x6b
(11.3)计算A←A & 0xf7(使第三低位渐隐)
(11.4)设置A←B-A
在步骤(11.1),通过移位指令将密钥以及因此将按照其应该被区别的位循环地向左旋转3位,这对应于与差8相乘。在步骤(11.2),操作码x的值被加上。在步骤(11.3),按照其应该被区别的位被删除并且剩余的部分紧接着在第四步(11.4)中又被减去。
下面的实施方案是可替换的解决方案,其中运算|表示逻辑“或”运算:
操作码的选择
(12.1)计算A & 0xfd(使第二最低位渐隐)
(12.2)设置A←A+1
(12.3)计算A & 0x03(使除了两个最低值的位之外的所有位渐隐)
(12.4)将A向左旋转三位
(12.5)计算A|0x63
在步骤(12.1)至(12.3)中的指令引起:根据密钥的最低有效位(应该根据该最低有效位被区别),如果该位具有值0,则给寄存器A分配值1;或者如果该位具有值1,则给寄存器A分配值2。在步骤(12.4),寄存器A的内容向左旋转3位,这对应于与8相乘。在步骤(12.5),确定操作码。所希望的操作码此后位于寄存器A中。
在应用算法12的条件下,两个寄存器的防止旁信道攻击的更安全的交换完整地进行:
(13.1)计算A & 0xfd(使第二最低位渐隐)
(13.2)设置A=A+1
(13.3)计算A & 0x03(使除了两个最低值的位之外的所有位渐隐)
(13.4)将A向左旋转三位
(13.5)计算A|0x63
(13.6)将ACE寄存器CR1向C移位
(13.7)将ACE寄存器CR2向CR1移位
(13.8)将操作码A写入协处理器ACE的指令寄存器中
在算法13中,来自算法12的用于确定密码协处理器的操作码的计算步骤与来自算法8的用于根据所给出的密钥位来交换协处理器的寄存器CR1和CR2的内容的步骤相组合。
本发明并不限于在此所描述的实施例。

Claims (10)

1.用于安全地确定数据的方法,在该方法中,在第一处理器中将带密钥的数学运算应用到椭圆曲线的点上,其中该密钥能用位序列bi被表示为二进制数,
-具有第一指令x和第二指令y,该第一指令x在其它处理器中导致对至少一个寄存器内容的第一操作X,该第二指令y在所述其它处理器中导致第二操作Y;
该方法包括步骤:
-根据两个指令x,y确定至少一个值d;
-初始化第一辅助量R和第二辅助量S;
-对于密钥的每个位bi顺序地执行下列步骤:
a)将第一辅助量R传送给所述其它处理器的第一寄存器,并且将第二辅助量S传送给所述其它处理器的第二寄存器,
b)根据位bi的值和所述至少一个值d的值将指令分配给输出变量A,使得
·或者第一指令x被分配,
·或者第二指令y被分配,
c)将所述输出变量A传输给所述其它处理器的指令寄存器,
d)确定在所述其它处理器中被更新的第一辅助量R和第二辅助量S,
-在结束针对位bi的步骤之后,输出第一辅助量R和/或第二辅助量S,并且由第一辅助量R和/或第二辅助量S确定数学运算的结果,
其中,所述第一辅助量R代表在有限域上的椭圆曲线上的点,并且在初始化的步骤中被分配有固定的点P,
其中,所述第二辅助量S代表在有限域上的椭圆曲线上的点,并且在初始化的步骤中被分配有值0。
2.按照权利要求1所述的方法,其中,对所述其它处理器的寄存器内容的第一操作X导致交换第一寄存器的内容和第二寄存器的内容,所述第一操作X被分配给第一指令x,并且其中,对所述其它处理器的寄存器内容的第二操作Y导致不交换第一寄存器的内容和第二寄存器的内容,所述第二操作Y被分配给第二指令y。
3.按照权利要求1或者2所述的方法,其中,所述数学运算包括标量乘法。
4.按照权利要求1或者2所述的方法,其中,在所述其它处理器中进行的、第一辅助量R和第二辅助量S的更新包括下列步骤:
-在第一运算操作中进行在椭圆曲线上的两个点的加法,
-并且,在第二运算操作中进行椭圆曲线上的点与系数2的标量乘法或与其本身的加法,
-并且确定所更新的第一辅助量和第二辅助量,使得根据位bi的值分别将第一运算操作的结果和第二运算操作的结果分配给两个辅助量R,S之一。
5.按照权利要求1或者2所述的方法,其中,所述值d为来自两个指令x,y之间的位表示的区别的差值。
6.按照权利要求5所述的方法,其中,在步骤b)中,根据当前位bi的值通过以下方式将差值d添加到第一指令x:
-构成第一计算机字h1,该第一计算机字h1包含在顺序处理中的当前位bi
-将第一计算机字h1与差值d相乘得到第一乘积m1;
-由所述第一乘积m1与所述第一指令x的加法确定第一中间值;
-由所述第一计算机字h1构成第二计算机字h2,其中在当前位bi的位置上的位被置为零;
-将第二计算机字h2与差值d相乘得到第二乘积m2;
-由将所述第二乘积m2从所述第一中间值中减去来确定输出变量A;
-使得
·或者第一指令x被分配给所述输出变量A,
·或者第二指令y被分配给所述输出变量A。
7.按照权利要求5所述的方法,其中,在步骤b根据位bi的值将所述差值d从第二指令y中减去,使得
·或者第一指令x被分配给所述输出变量A,
·或者第二指令y被分配给所述输出变量A。
8.按照权利要求1或者2所述的方法,其中,在顺序的处理中的当前的所述位bi是最低有效位LSB。
9.按照权利要求1或者2所述的方法,其中,
-第一指令x导致将所述其它处理器的第三寄存器的内容传送给所述其它处理器的第二寄存器,并且第二指令y导致将该第三寄存器的内容传送给所述其它处理器的第一寄存器,
-在步骤a)之后的另一步骤,用于将该第一寄存器的内容传送给该第三寄存器的指令和用于将该第二寄存器的内容传送给该第一寄存器的指令被传送给所述其它处理器的指令寄存器。
10.按照权利要求1或者2所述的方法,其中,第一指令x和第二指令y具有相同的汉明重量。
CN2006800540319A 2006-03-28 2006-12-19 用于安全地确定数据的方法 Expired - Fee Related CN101405988B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102006014353A DE102006014353B4 (de) 2006-03-28 2006-03-28 Verfahren zum sicheren Ermitteln von Daten
DE102006014353.1 2006-03-28
PCT/EP2006/069917 WO2007112791A1 (de) 2006-03-28 2006-12-19 Verfahren zum sicheren ermitteln von daten

Publications (2)

Publication Number Publication Date
CN101405988A CN101405988A (zh) 2009-04-08
CN101405988B true CN101405988B (zh) 2012-03-21

Family

ID=37913611

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800540319A Expired - Fee Related CN101405988B (zh) 2006-03-28 2006-12-19 用于安全地确定数据的方法

Country Status (8)

Country Link
US (1) US8369514B2 (zh)
EP (1) EP1999884B1 (zh)
JP (1) JP4909403B2 (zh)
KR (1) KR101338016B1 (zh)
CN (1) CN101405988B (zh)
DE (1) DE102006014353B4 (zh)
ES (1) ES2379100T3 (zh)
WO (1) WO2007112791A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621212B2 (en) 2009-12-22 2013-12-31 Infineon Technologies Ag Systems and methods for cryptographically enhanced automatic blacklist management and enforcement
US8611540B2 (en) * 2010-06-23 2013-12-17 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
US9400636B2 (en) 2011-02-11 2016-07-26 Infineon Technologies Ag Apparatus and method for calculating a result in a scalar multiplication
US8630411B2 (en) 2011-02-17 2014-01-14 Infineon Technologies Ag Systems and methods for device and data authentication
DE102011006000B4 (de) 2011-03-23 2015-01-15 Infineon Technologies Ag Signaturaktualisierung durch Codetransformation
US9087192B2 (en) * 2013-09-10 2015-07-21 Infineon Technologies Ag Electronic circuit and method for monitoring a data processing
FR3017476B1 (fr) * 2014-02-12 2017-06-09 Secure-Ic Sas Procede de contremesure pour un composant electronique mettant en œuvre un algorithme de cryptographie sur une courbe elliptique
WO2016053792A1 (en) 2014-10-03 2016-04-07 Cryptography Research, Inc. Exponent splitting for cryptographic operations
US9735953B2 (en) * 2015-03-06 2017-08-15 Qualcomm Incorporated Side channel analysis resistant architecture
FR3040511B1 (fr) * 2015-08-27 2017-09-08 Stmicroelectronics Rousset Verification de la sensibilite d'un circuit electronique executant un calcul d'exponentiation modulaire
FR3040512B1 (fr) 2015-08-27 2017-09-08 Stmicroelectronics Rousset Protection d'un calcul d'exponentiation modulaire
US20170192688A1 (en) 2015-12-30 2017-07-06 International Business Machines Corporation Lazy deletion of vaults in packed slice storage (pss) and zone slice storage (zss)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1380766A (zh) * 2001-04-16 2002-11-20 南相浩 密钥交换与密钥传递方案
CN1700637A (zh) * 2005-05-18 2005-11-23 上海迪申电子科技有限责任公司 一种新型的椭圆曲线密码协处理器

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0455756A (ja) * 1990-06-26 1992-02-24 Nippon Steel Corp 線材の超音波探傷装置
JPH0515526A (ja) * 1991-07-15 1993-01-26 Mitsubishi Electric Corp X線シミユレータ画像処理装置
DE69930334T2 (de) * 1998-01-28 2006-11-09 Hitachi, Ltd. IC-Karte ausgerüstet mit einer Verarbeitungsanlage für Elliptische-Kurven-Verschlüsselung
CA2258338C (en) * 1999-01-11 2009-02-24 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
US7092523B2 (en) * 1999-01-11 2006-08-15 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
DE10061998A1 (de) * 2000-12-13 2002-07-18 Infineon Technologies Ag Kryptographieprozessor
DE10156708B4 (de) * 2001-11-19 2005-09-29 Infineon Technologies Ag Verfahren und Vorrichtung zum Multiplizieren und Verfahren und Vorrichtung zum Addieren auf einer elliptischen Kurve
JP4067818B2 (ja) * 2001-12-10 2008-03-26 富士通株式会社 楕円曲線暗号装置、楕円曲線暗号プログラム及び楕円曲線暗号の演算方法
DE10202700A1 (de) * 2002-01-24 2003-08-07 Infineon Technologies Ag Vorrichtung und Verfahren zum Erzeugen eines Befehlscodes
EP1548687B1 (en) * 2002-12-18 2013-01-09 Fujitsu Limited Tamper-resistant elliptical curve encryption using secret key
JP4284320B2 (ja) 2003-08-06 2009-06-24 富士通株式会社 楕円曲線暗号装置,楕円曲線暗号方法および楕円曲線暗号プログラム
JP2006078943A (ja) * 2004-09-13 2006-03-23 Mitsuko Miyaji べき演算装置
KR20060081847A (ko) * 2005-01-10 2006-07-13 삼성전자주식회사 비밀키를 보호하는 스마트 카드 및 그것의 방법
DE102006006057B4 (de) * 2006-02-09 2007-12-27 Infineon Technologies Ag Datenverschlüsselungsvorrichtung und Verfahren zum Verschlüsseln von Daten
US7864951B2 (en) * 2006-07-10 2011-01-04 King Fahd University Of Petroleum And Minerals Scalar multiplication method with inherent countermeasures
DE102007001070B3 (de) * 2006-09-29 2008-04-30 Siemens Ag Verfahren zum verschlüsselten Datenausgleich eines Systems mit mindestens einem Datenträger und einem Lesegerät
US7961872B2 (en) * 2006-12-04 2011-06-14 Lsi Corporation Flexible hardware architecture for ECC/HECC based cryptography
US20080222417A1 (en) * 2007-03-06 2008-09-11 James Downes Method, System, And Apparatus For Nested Security Access/Authentication With Media Initiation
US20120079080A1 (en) * 2009-02-11 2012-03-29 Shervin Pishevar Apparatuses, Methods and Systems For An Interactive Proximity Display Tether With Remote Co-Play
JP5446678B2 (ja) * 2009-09-29 2014-03-19 富士通株式会社 楕円曲線暗号演算装置及び方法
US8775794B2 (en) * 2010-11-15 2014-07-08 Jpmorgan Chase Bank, N.A. System and method for end to end encryption

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1380766A (zh) * 2001-04-16 2002-11-20 南相浩 密钥交换与密钥传递方案
CN1700637A (zh) * 2005-05-18 2005-11-23 上海迪申电子科技有限责任公司 一种新型的椭圆曲线密码协处理器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Marc Joye等.The Montgomery Powering Ladder.《Cryptographic Hardware and Embedded Systems》.2003,291-302. *

Also Published As

Publication number Publication date
ES2379100T3 (es) 2012-04-20
EP1999884A1 (de) 2008-12-10
EP1999884B1 (de) 2012-02-22
KR101338016B1 (ko) 2013-12-09
WO2007112791A1 (de) 2007-10-11
US8369514B2 (en) 2013-02-05
JP2009531725A (ja) 2009-09-03
DE102006014353B4 (de) 2007-11-22
JP4909403B2 (ja) 2012-04-04
CN101405988A (zh) 2009-04-08
KR20080112333A (ko) 2008-12-24
DE102006014353A1 (de) 2007-10-04
US20100172490A1 (en) 2010-07-08

Similar Documents

Publication Publication Date Title
CN101405988B (zh) 用于安全地确定数据的方法
KR100373669B1 (ko) 비밀 정보의 처리 장치, 비밀 정보의 처리 프로그램을 기록한 기록 매체 및 처리 시스템
CN110710155A (zh) 渐进式密钥加密算法
CN103903047B (zh) 一种适用于rfid安全通信的椭圆曲线加密协处理器
EP2211265B1 (en) Elliptic curve arithmetic processing unit and elliptic curve arithmetic processing program and method
CN101268654B (zh) 用于对消息可靠加密或者解密的方法
US20030094499A1 (en) Information processing device
CN102638341A (zh) 用于计算标量乘法的结果的设备和方法
John et al. Connecting the dots: Privacy leakage via write-access patterns to the main memory
EP3930252A1 (en) Countermeasures for side-channel attacks on protected sign and key exchange operations
CN101416154A (zh) 安全解密方法
US20050154890A1 (en) Method for secure key exchange
TW201723804A (zh) 安全模指數處理器、方法、系統、及指令
US8321691B2 (en) EMA protection of a calculation by an electronic circuit
US7174016B2 (en) Modular exponentiation algorithm in an electronic component using a public key encryption algorithm
JP6356687B2 (ja) メッセージへの全単射アルゴリズムの適用によるコードの真正性を制御するための制御方法およびデバイス
KR20100099871A (ko) 데이터 보호를 위한 메모리, 이를 포함하는 메모리 시스템 및 이의 동작 방법
Fournaris et al. Trust management through hardware means: design concerns and optimizations
CN111709039B (zh) 一种XIP方式运行Flash中加密程序的方法及系统
AU2003252789B2 (en) Processing apparatus, program, or system of secret information
CN117336042A (zh) 密文解密方法、装置、存储介质及电子装置
JP2008224830A (ja) 耐タンパーベキ乗演算方法
JP2010271363A (ja) モンゴメリ乗算回路、rsa暗号回路、及び、icカード

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120321

Termination date: 20151219

EXPY Termination of patent right or utility model