用于非对称加密的对策方法和设备的制作方法

文档序号:6592740阅读:173来源:国知局
专利名称:用于非对称加密的对策方法和设备的制作方法
技术领域
本发明涉及一种实现非对称私钥加密算法的电子元件中的对策方法,其抵抗旨在 发现该私钥的攻击。本发明还涉及一种实现所述方法的微电路设备和便携式设备,特别是 芯片卡。
背景技术
如图1所示,包含对私钥d的使用的非对称加密10的算法应用通常由微电路12 来实现以通过对该消息签名来认证消息M的传输或通过利用私钥破解该消息来保护加密 消息M的接收。私钥d例如被存储在包括存储器14和用于执行非对称加密算法10的微处 理器18的微电路12中,存储器14包括为此而提供的安全存储空间16。实现加密算法的微电路设备有时受到攻击,该攻击旨在确定它们使用的秘密数据 (例如所使用的密钥)以及一些情况下可能是消息本身中的信息。特别地,非对称加密算法 受到旨在当私钥被使用时发现该私钥的攻击。通过备用信道而进行的攻击构成使用加密算 法的软件或硬件实现的一些属性的主要密码分析技术族。在已知的通过备用信道进行的攻击之中,SPA (简单功耗分析)型攻击或DPA (差分 功耗分析)型攻击在于在执行非对称加密算法期间测量微电路的进入的和外出的电流和 电压,从而由此推断私钥。这个攻击族的可行性已经在P. Kocher, J. Jaffe和B. Jim所著的 标题为“Differential PowerAnalysis”的文章中得到证实,该文章特别地在Advances in Cryptology-Crypto 99 Proceedings 中公开,是 Computer Science Vol. 1666, M. Wiener, ed. , Springer-Verlag, 1999 中的讲稿。时间攻击分析执行一些操作的时间。这种对非对称加密算法的攻击在P. Kocher, N. Koblitz 所著的标题为"Timing attacks on implementations ofDiffie-Hellman, RSA, DSS, and other systems”的文章中有所描述,该文章特别地在Advances in Cryptology-Crypto 96,16th annual internationalcryptology conference,Aug. 18-22, 1996 Proceedings 中公开。通过故障注入而进行的攻击也是已知的,在这些攻击中,旨在于加密算法执行期 间自行导致故障的DFA(差分故障分析)攻击例如是通过干扰它所执行于其上的微电路来 进行的。这种干扰可能包括对微电路进行一次(或多次)短暂照亮或在其触点之一上生成 一个或多个电压峰值。这个干扰因而使之能够在一些条件下使用所产生的计算和行为差错 来获得想要的整个私钥或一部分私钥。特别地,在称为RSA (按照其作者Rivest,Shamir和Adleman)的非对称加密算法 的执行期间,执行针对模幂的原函数。原函数的高效实现通过对私钥d的二进制表示的每 个比特执行迭代来使用该二进制表示。在每次迭代中,所进行的计算和计算期间的实际能 量消耗取决于有关比特的值。因此,这种原函数的执行使得私钥对于上述攻击特别地脆弱。 同样,在利用椭圆曲线的非对称加密算法的适配的执行期间,执行针对纯量乘法的原函数。 原函数的高效实现通过对私钥d的二进制表示的每个比特执行迭代来使用该二进制表示。
5同样,在每次迭代中,计算期间的能量消耗取决于有关比特的值。因此,这种原函数的执行 也使得纯量值(其出于安全原因可能被私钥吸收)对于攻击特别地脆弱。为了防御这些特性不同的攻击,已经找到许多十分不同的解决方案。本发明具体 地涉及与实现非对称私钥加密算法的电子元件中的对策方法有关的那些方案,该对策方法 包括-生成保护参数,-利用加密算法的原函数从输入数据和保护参数中计算中间数据。这些算法通常利用所生成的保护参数来变换私钥,从而将原函数应用于变换后的 私钥并且组合利用中间数据所获得的结果。保护参数a通常是利用伪随机数据生成器20来生成的,以使得由加密算法10对 原函数的执行也是随机的并且与所使用的私钥不相关,例如通过一种通常称为掩蔽的技 术,该技术也可以被重新命名为用于变换或篡改数据的方法,因为其处理以与它们的使用 相反的方式被篡改,这是由微处理器18的对策部分22利用保护参数a来实现的。因此,加 密算法的中间数据以及所产生的可测量电流通过随机保护参数而被修改并且其观测并没 有使之能够找到私钥的真实值。另一方面,掩蔽不干扰实际算法,这因而在利用或不利用掩 蔽的情况下都提供相同的结果。这种方法例如在美国专利申请US 6 381 699中被描述。在该文件中,RSA型非对称加密领域中的实施例参考图3而被描述。在具有公钥 e和私钥d的RSA算法中,为了进行签名或破解,执行原函数在于从输入数据M和私钥d中 以下面的方式计算输出数据S S = Md mod N,其中N是RSA模数,两个秘密整数的乘积,并且e和d符合关系 e.d = (p(N) 函数<P ( )代表欧拉(Euler)指示函数。令[dy,d0]2是私钥d的二进制表示,这个计算可以以下面的方式执行S = 1对于从n_l至0变化的i S — S2modN如果屯=1,则S — SXM mod N文件US 6 381 699中描述的抵抗攻击的RSA算法的实施例包括第一步骤300,在 该步骤期间以下面的方式生成保护参数dl 生成随机选择的质数k,例如0<k<2128,然后 z = k.q>(n),然后di被随机选择,例如o<di <z并且pgcd(di,z) = i(pgcd是“最大公 约数”函数)。私钥因而以下面的方式被变换d2 = dX (dr'mod z)mod z。在收到输入数据M之后,在执行下面两个计算之前(步骤345和350)对dl和d2 执行新的变换-S0 = Mdl mod N(基于输入数据M和保护参数dl借助于中间数据&的原函数进 行计算),-S = S0d2 mod N(通过组合中间数据&和原函数对变换后的私钥d2的应用来计 算输出数据)。抵抗攻击的RSA算法的另一个实施例(更加简单但是也在文件US 6381 699中被描述)包括第一步骤,在该步骤期间保护数据dl被随机选择,例如0 < dl < d。私钥因而以下面的方式被变换d2 = d-dl。在收到输入数据M之后,在执行下面两个计算之前对dl和d2执行新的变换-S1=Mdl mod N(基于输入数据M和保护参数dl借助于中间数据S1的原函数进 行计算),-S2 = Md2 mod N, S = S1. S2 mod N(通过组合中间数据S1和原函数对变换后的私 钥d2的应用S2来计算输出数据)。在上述两种现有技术情形中的每一种中,私钥d被分成至少两个指数dl和d2,其 大小可以与d的相比较,以使得RSA算法通过强制模幂的至少两次执行而不是一次而变得 更加复杂。抵抗由备用信道进行的一些攻击的非对称加密算法因而被实现,但是是以增加 的实现复杂度为代价的,因为复杂度实际上加倍了。因此,可能希望提供一种抵抗上述类型的攻击的非对称加密方法,该方法的实现 较为简单。

发明内容
本发明的实施例涉及一种实现非对称私钥加密算法的电子元件中的对策方法,包 括-生成保护参数,_利用该加密算法的原函数从输入数据和保护参数中计算中间数据,还包括-将所述私钥的二进制表示分成几个二进制块,-利用所述保护参数变换每个二进制块,并且对于每个变换的二进制块利用所述 原函数执行中间计算,和-通过组合所述中间数据和所述中间计算来计算输出数据。因此,所述保护参数被用来变换二进制块而不是完整的私钥二进制表示。因此,保 护参数的二进制表示的大小可以明显低于私钥的二进制表示,即以二进制块大小的级别。 计算相应地被简化,因为即使原函数执行次数增加,执行也是在较小的二进制数据上操作 的。总之,相比传统的对策方法而言,非对称加密算法的执行可以在降低其复杂度的情况下 受到保护。根据一个实施例,所述对策方法包括划分所述私钥的二进制表示以使得每个二进 制块的大小大于或等于所述保护参数的二进制表示的大小。根据一个实施例,所述对策方法包括将所述私钥的二进制表示分成几个二进制 块,以使得该二进制块的大小之和大于所述私钥的二进制表示的大小。根据一个实施例,所述对策方法包括以迭代的方式随机确定每个二进制块的大小 以使得每个二进制块的值大于所述保护参数的值。根据一个实施例,所述对策方法包括-选择所述保护参数的二进制表示的大小k以使得存在一个整数u^ 2,例如η = k. u,其中η是所述私钥的二进制表示的大小,和-将所述私钥的二进制表示分成ufk比特二进制块。根据一个实施例,所述原函数是通过所述私钥而实现的输入数据的模幂,用于执行RSA或RSA CRT型加密算法。根据一个实施例,所述对策方法包括事先掩蔽RSA模数和所述输入数据。根据一个实施例,所述原函数是通过所述私钥而实现的输入数据的纯量乘法,用 于执行基于椭圆曲线的加密算法,其中所述输入数据是椭圆曲线上的预定点。根据一个实施例,所述对策方法包括事先掩蔽所述椭圆曲线上的预定点。根据一个实施例,所述对策方法还包括-在执行原函数之前,最初以可复制的方式生成至少一个验证参数,-在执行原函数期间或之后重新生成所述验证参数并且重新生成的该验证参数与 最初生成的验证参数相比较。根据一个实施例,重新生成和比较的步骤是当将原函数应用于变换后的二进制块 时在该原函数的每次迭代时执行的。根据一个实施例,所述对策方法包括如果重新生成和比较的步骤指示最初生成的 验证参数与重新生成的验证参数不同,则触发告警并至少扰乱所述私钥。根据一个实施例,所述保护参数和/或验证参数的生成包括-定义生成函数,其是通过对存储于存储器中的预定的至少一个秘密参数连续应 用仅能从这个秘密参数以及这个函数中确定的值的序列来实现的,-从所述序列的至少一个值中以可复制的方式生成所述保护参数和/或所述验证 参数。根据一个实施例,所述对策方法包括-定义多个函数,每个函数是通过对存储于存储器中的预定的至少一个相应秘密 参数连续应用仅能从相应秘密参数和相应函数中确定的相应值序列而实现的生成函数,-组合利用预定义关系而生成的多个值序列以生成新的值序列,-从这个序列的至少一个值中以可复制的方式生成所述保护参数和/或验证参数。根据一个实施例,所述对策方法包括-定义生成函数,其是通过对存储于存储器中的预定的至少一个秘密参数连续应 用仅能从该秘密参数和该函数中确定的值的序列来实现的,-组合利用加密算法的公共参数而生成的值的序列以生成新的值序列,-从这个序列的至少一个值以可复制的方式生成所述保护参数和/或验证参数。本发明的另一个实施例在于提供一种微电路设备,其包括用于实现非对称私钥加 密算法的对策方法的微处理器、用于存储所述私钥的至少一个安全存储器、以及用于生成 保护参数的数据生成器,该设备被配置成-利用所述加密算法的原函数从输入数据和所述保护参数中计算中间数据,-将所述私钥的二进制表示分成几个二进制块,-利用所述保护参数变换每个二进制块,并且对于每个变换后的二进制块利用所 述原函数执行中间计算,-通过组合所述中间数据和所述中间计算来计算输出数据。根据一个实施例,所述微处理器被配置成以迭代的方式随机确定每个二进制块的 大小,以使得每个二进制块的值大于所述保护参数的值。
8
根据一个实施例,所述数据生成器被配置成选择所述保护参数的二进制表示的大 小k,以使得存在一个整数u≥ 2,例如η = k. u,其中η是私钥的二进制表示大小,并且所述 微处理器被配置成将该私钥的二进制表示分成ufk比特二进制块。根据一个实施例,所述原函数是通过私钥而实现的输入数据的模幂,用于执行RSA 或RSA CRT型加密算法。根据一个实施例,所述原函数是通过私钥而实现的输入数据的纯量乘法,用于执 行基于椭圆曲线的加密算法,其中该输入数据是该椭圆曲线上的预定点。根据一个实施例,所述微电路设备还被配置成在执行所述原函数之前最初以可复 制的方式生成至少一个验证参数,在执行所述原函数期间或之后重新生成这个验证参数, 以及比较重新生成的验证参数和最初生成的验证参数。根据一个实施例,所述数据生成器被配置成通过以下操作生成所述保护参数和/ 或验证参数-定义生成函数,其是通过对存储于存储器中的预定的至少一个秘密参数连续应 用仅能从这个秘密参数以及这个函数中确定的值的序列来实现的,-从所述序列的至少一个值中以可复制的方式生成所述保护参数和/或所述验证参数。根据一个实施例,所述数据生成器被配置成-定义多个函数,每个函数是通过对存储于存储器中的预定的至少一个相应秘密 参数连续应用仅能从相应秘密参数和相应函数中确定的相应值序列而实现的生成函数,-组合利用预定义关系而生成的多个值序列以生成新的值序列,-从这个序列的至少一个值中以可复制的方式生成所述保护参数和/或验证参数。根据一个实施例,所述数据生成器被配置成-定义生成函数,其是通过对存储于存储器中的预定的至少一个秘密参数连续应 用仅能从该秘密参数和该函数中确定的值的序列来实现的,-组合利用加密算法的公共参数而生成的值的序列以生成新的值序列,-从这个序列的至少一个值以可复制的方式生成所述保护参数和/或验证参数。本发明的另一个实施例在于提供一种便携式设备,特别是芯片卡,其包括如前文 所述的微电路设备。


通过阅读下面结合(但不限于)附图所做出的详细描述,本发明的所述和其他目 的、优点和特征将变得明显,其中-图1,之前已描述,示意性地示出了传统的微电路设备的结构;-图2示意性地示出了根据本发明第一实施例的微电路设备的结构;-图3示意性地示出了包括图2的设备的芯片卡;-图4示出了由图2的设备实现的第一对策方法的连续步骤;-图5示出了由图2的设备实现的第二对策方法的连续步骤;-图6示出了由图2的设备实现的第三对策方法的连续步骤;
-图7示出了由图2的设备实现的第四对策方法的连续步骤;-图8示出了由图2的设备实现的第五对策方法的连续步骤;-图9示意性地示出了根据本发明第二实施例的微电路设备的结构;以及-图10示出了由图9的设备实现的对策方法的连续步骤。
具体实施例方式本发明的第一实施例图2所示的微电路设备12’包括(如图1所示)非对称加密算法应用10、具有用 于特别地存储旨在由应用10使用的私钥d的安全存储空间16的存储器14、微处理器18和 用于提供保护参数a的伪随机数据生成器20。它还包括对策部分22’,其将改进带入现有 对策,特别是之前描述过的对策部分22。此外,设备12’例如被集成到便携式设备中,特别是以安全芯片卡30的形式,如图 3所示。应当指出,尽管算法加密应用10和对策部分22’被显示成不同的,然而它们可能 实际上被适当地重叠成包含对策的非对称加密算法的同一个软件或硬件实现。与设备12相反,在设备12’中,对策部分22’包括-用于将私钥d的二进制表示分成几个二进制块Dlri,.. . ,D0的部分22’ a,所述二 进制块的大小的总和例如等于私钥的二进制表示的大小,私钥d的二进制表示的大小因而 可以写为dbin= DV1,...,DJ2,和-用于利用所述保护参数a变换每个二进制块Di并且对于每个变换后的二进制块 D’ i利用原函数执行中间计算的部分22’ b。更确切地说,生成器20可以被设计成生成保护参数a,该参数的二进制表示大小 最多等于私钥d的二进制表示大小的一半。同样,部分22’a可以被设计成将私钥的二进制 表示划分成使得每个二进制块的大小大于或等于该保护参数的二进制表示大小。非对称加 密算法应用10然后利用大小不超过dbin的一半的数据来执行原函数。这对于计算是非常 有利的。根据本发明的不同的对策方法可以通过图2的设备来实现。图4示出了实现对消息M进行模数N的RSA型加密的第一方法。通常,算法RSA 要求使用私钥d,其二进制表示的大小η例如等于η = 1024比特。如果(Ii是这个二进制表 示的比特,则 dbin = [Cllri,· · ·,d。]2。令S = Exp (M,D,N, S)是下面的原函数对于从j-Ι变化到0的i S — S2 mod N如果Di = 1,S — S. M mod N输出值S其中M和S分别是原函数的输入和输出数据,N是RSA模数并且D是大小j的二 进制指数,例如D = QV1, ...,DcJ2,其中Di是D的二进制值。在第一步骤100期间,伪随机数据生成器20生成保护参数a,其二进制表示的大小 k小于n,例如k = 32比特。
10
在第二可选步骤102期间,生成验证参数rl。验证参数rl例如通过应用预定函数 COMB来确定,具体地是组合由生成器20生成且保存于存储器中的值ν、保护参数a和算法 RSA的其他参数。在同一个可选步骤102期间,消息M和RSA模数N也可以利用函数g和h来变换N — h(N),贝IjM ^ g (M) mod N,其中g和 h 例如是通过 g(x) =x+r2.N 和 h(x) =r3.x,或 g(x) =r2.x 和 h(x) =χ而定义的函数,其中r2和r3可以是由生成器20生成且保存于存储器中的随机变量。然后,在求幂的步骤104期间,数据V被设为1,并且执行下面的计算V = Exp (M, a, N, V),其中V代表利用原函数Exp从输入数据M和保护参数a中计算的中间数据。在复位步骤106期间,输出数据S被设为1并且计数器i被设为n-1。然后,在测试步骤108期间,计数器i的值被测试。如果该值严格为正,则执行步骤 110,如果不是这样,则执行后随一最终步骤122的可选步骤120或直接执行最终步骤122。在步骤110期间,整数j例如被随机地确定,其证明了下面的条件(a)k<j<i,和(b) Cli. 2、(1η· 2jM+· · · +Cli^.. 2° > a。此外,如果j例如是i_j < k,则计数器i的值被分配给j。然后,在步骤112期间,计算值D = Cli. 2Η-ι· . . +屯_」.2°_a。值D代表通过 a来变换的私钥d的二进制块。然后,在步骤114期间,利用二进制块D执行下面的中间计 算S = Exp(M,D,N,S)。然后,在步骤116期间,将中间值V与在步骤114获得的值S以下面的方式相组 合S —S. V mod N。然后,值i-j在步骤118期间被分配给计数器i。然后,返回测试步骤108。当计数器i的值等于零并且假设可选步骤102已被执行,在步骤108之后进行可 选步骤120。在步骤120期间,参数rl再次利用函数COMB公共的和/或保存于存储器中的 由该函数使用的值而被计算。如果rl的值在步骤102与120之间改变,则可以推断在这两 个步骤之间发生了故障注入攻击。加密应用10发送告警。在步骤120期间,输出数据S也 根据被用来掩蔽输入数据M的函数g和h而被揭露。根据由加密应用10发送的告警,错误 地执行的逆变换(揭露)能够阻止故障注入攻击。最后,在最后一个步骤122期间,加密应用10输出值S。应当指出,上述第一方法涉及n+k次求幂迭代步骤104期间的k次迭代和步骤 108至118循环中的η次迭代。当k远小于η时(例如当k = 32而η = 1024),算法RSA 的对策的额外成本是很低的。它在任何情况下都远低于涉及至少2η次求幂迭代的现有技 术解决方案。图5示出了可由图2的设备实现并且也实现对消息M的模数N的RSA型加密的根 据本发明的第二对策方法。它是第一方法的变型,其中保护参数a的大小k被选择成存在
11一个整数U,例如n = k.u,值j(步骤110)固定于k并且不强制条件(b)。该对策方法因而 被简化。该第二方法的步骤200、202(可选)和204与之前描述的步骤100、102 (可选)和 104相同。然后,在复位步骤206期间,输出数据S被设为1并且计数器i被设为u-1。在 同一个步骤期间,私钥d的二进制表示被分成u个连续块Di,每个块大小为k,例如dbin = QV1, . . . ,D0J20 这样,对于任何 i,0 彡 i < u =Di =. . . ,DkiJ20 此外,计算二进制 进位数向量C,C = [Cu^1, CJ2并将它保存于存储器中。它是以下面的方式来计算的-C0 = O,-Ci = (Di-B-Ci^1)/2k0然后,在测试步骤208期间,计数器i的值被测试。如果该值严格为正,则执行步 骤210,如果不是这样,则执行后随最终步骤220的可选步骤218或直接执行最终步骤220。在步骤210期间,计算值D’ i = Di-B-Ci0对于算法的良好运算,如果i = u_l并 且如果Clri = 1,则这意味着D’ i远小于a并且在该情况下保持D’ i = Di。D’ i的值代表通 过a变换的私钥d的第i个二进制块。应当指出,该第二方法的优点之一是只需要存储向 量而不需要存储变换后的块D’ it)然后,在步骤212期间,利用二进制块D’ i执行下面的中间计算S = Exp(M,D,ρ N,S)。然后,在步骤214期间,以下面的方式组合中间值V和在步骤212获得的值S S —S. V mod N。然后,在步骤216期间将值i_j分配给计数器i。然后返回测试步骤208。步骤218至220等同于之前描述的步骤120和122。还应当指出,上述第二方法涉及n+k次求幂迭代。图6示出了可由图2的设备实现并且实现对消息M的模数N = p. q的RSA CRT (即 使用中国剩余定理的RSA算法)型加密的根据本发明的第三对策方法。通常,RSA CRT算 法构成RSA算法的可选方案用以执行签名或解密它快四倍。它定义了下列参数-dp = d mod(p-l),-dq = d mod(q-l),-A = mod q。它因而在于用两个执行上更简单的求幂计算来代替求幂计算S = Mdmod N,这两个 求幂计算由于相对于N:Sp = Mdp mod ρ和Sq = Mdq mod q的大小的ρ和q的大小而变得更 加简单。最后,利用下面的计算找到S:S = [ ((Sq-Sp). A mod q). p+Sp]mod N。该第三方法的步骤300和302 (可选)与之前描述的步骤100、200和102、202 (可
选)相同。然后,在求幂步骤304期间,数据Vp被设为1,并且执行下面的计算Vp = Exp (M, a, ρ, Vp),其中,Vp代表利用原函数Exp从输入数据M和保护参数a中计算的中间数据。在步骤304之后,在包括一系列循环步骤且对应于已描述的步骤106至118或206替模数N)的步骤306期间,执行计算Sp = Mdp modP。在求幂步骤308期间,数据Vq被设为1,并且执行下面的计算Vq = Exp (M, a, q, Vq),其中Vq代表利用原函数Exp从输入数据M和保护参数a中计算的中间数据。在步骤308之后,在包括一系列循环步骤且对应于已描述的步骤106至118或206 至216 (除了用dp代替指数d并且用ρ代替模数N)的步骤310期间,执行计算Sp = Mdp modP。执行步骤304至310的顺序并不是固定不变的。实际上,唯一重要的是它们是在 步骤302之后执行的,步骤304是在步骤306之前执行的,以及步骤308是在步骤310之前 执行的。在循环的输出处,即在步骤306和310结束时,执行后随有最终步骤314的可选步 骤312或直接执行最终步骤314。可选步骤312等于步骤120并且仅在已执行可选步骤302的情况下才被执行。在最终步骤314期间,加密算法10如之前指出的那样从Sp和Sq中计算S的值并 且输出这个值。现在将参考图7介绍可由图2的设备实现并且实现对消息M的椭圆曲线型加密的 根据本发明的第四对策方法。通常,也称为ECC (椭圆曲线密码算法)的非对称椭圆曲线加 密算法需要使用这样的私钥d 其大小η远小于针对同等安全级别的RSA算法所需要的。通 常,私钥d的二进制表示必须至少等于η = 160比特。在利用私钥d的ECC算法中,为了执行签名或解密,“执行原函数”在于从输入数据 P和私钥d中以下面的方式计算输出数据Q Q = d. P,其中P和Q是预定椭圆曲线在有限域GF (ρ)上的点,其中ρ是严格大于 3的质数(例如在域GF(13)中的椭圆曲线y2 = x3+10x+5),并且其中运算符“.”是纯量乘 法,在这里是点P乘以纯量d。令[Cllri,d0]2是私钥d的二进制表示,可以如下进行计算Q = O对于从n-1变化到0的i Q —2Q如果Cli = 1,则 Q —Q+P其中,“2Q”和“Q+P”分别是点加倍和点加法运算,它们的公式是通过所选椭圆曲 线和域GF(p)的阶数以常规方式被确定的并且不在这里详述。在下面的描述中,S ScalarMult (P,D,Q)是指下面的原函数对于从j-Ι变化到0的i Q —2Q如果di = 1,则 Q — Q+P输出值Q其中,P和Q分别是原函数的输入和输出数据,并且D是大小为j的二进制指数, 例如D = [Djm, ...,DcJ2,其中Di是D的二进制值。在第一步骤400期间,伪随机数据生成器20生成其二进制表示的大小k远小于η
13的保护参数a,例如k = 32比特。在第二可选步骤402期间,生成验证参数r。验证参数r例如是通过应用预定函数 COMB来确定的,特别是通过组合由生成器20生成且保存于存储器中的值ν、保护参数a和 算法ECC的其他参数。在这个可选步骤402期间,点P的坐标Px和Py也可以利用应用于该坐标的函数 g 来变换P — g(Px,Py)mod N。然后,在步骤404期间,数据V被设为0,并且执行下面的计算V = ScalarMult (P, a, V),其中,V代表利用原函数ScalarMult从输入数据P和保护参数a中计算的中间数据。在复位步骤406期间,输出数据Q被设为0并且计数器i被设为n-1。然后,在测试步骤408期间,计数器i的值被测试。如果该值严格为正,则执行步骤 410,如果不是这样则执行后随有最终步骤422的可选步骤420或直接执行最终步骤422。在步骤410期间,例如随机地确定整数j,其证明了下面的条件(a)k<j<i,和(b) Cli. 2、(1η· 2jM+· · · +d^j. 2° > a。此外,如果j是例如i_j < k,则计数器i的值被分配给j。然后,在步骤412期间,计算值D = Cli. 2^-1· . . +屯_」.2°_a。值D代表通过a 变换的私钥d的二进制块。然后,在步骤414期间,利用二进制块D执行下面的中间计算Q = ScalarMult (P,D,Q)。然后,在步骤416期间,以下面的方式组合中间值V和在步骤414获得的值Q Q — Q+V。然后,值i-j在步骤418期间被分配给计数器i。然后返回测试步骤408。当计数器i的值等于零并且假设已执行可选步骤402,在步骤408之后执行可选步 骤420,参数r利用函数COMB和由该函数使用的公共的和/或保存于存储器中的值而被再 次计算。如果r的值在步骤402与420之间改变,则可以推断在这两个步骤之间发生了故 障注入攻击。由加密应用10发送告警。在步骤420期间,输出数据Q也根据用于掩蔽输入 数据P的函数g而被揭露。根据由加密应用10发送的这个告警,错误地执行的逆变换(揭 露)可以阻止故障注入攻击。最后,在最后一个步骤422期间,加密应用10输出值Q。还应当指出,上述第四方法涉及n+k次纯量乘法迭代,即步骤404期间的k次迭代 和步骤408至418的循环中的η次迭代。当k远小于η (例如k = 32而η = 160或更大) 时,算法ECC的对策的额外成本非常低。它在任何情况下都远低于涉及至少2η次纯量乘法 迭代的现有技术解决方案。可选地,在步骤404期间,数据V被复位至0,并且执行下面的计 算V = ScalarMult (-P, a,V)。在这种情况下,在步骤412期间,计算D = φ. 2^(1,-1· 2JM+. . . +d^j. 2°+a的值。这构成了通过a实现的私钥d的另一个可能的变换。图8示出了可由图2的设备实现并且也实现椭圆曲线加密的根据本发明的第五对 策方法。它是第四方法的变型,其中保护参数a的大小k被选择成存在一个整数U,例如η=k. u, j的值(步骤410)保持在k并且不强制条件(b)。该对策方法因而被简化。该第五方法的步骤500、502 (可选)和504与之前描述的步骤400、402 (可选)和 404相同。然后,在复位步骤506期间,输出数据Q被设为0并且计数器i被设为U-I。在同一 步骤期间,私钥d的二进制表示被分成u个连续块Di,每个块大小为k,例如dbin= QV1,..., DJ2。这样,对于任何i,0彡i <u =Di = [c^h,...,Dki]2。此外,二进制进位数的向量 C, C= [Clri,CJ2被计算且保存于存储器中。它是通过以下方式来计算的—C。 = 0,-Ci = (Di-B-Ci^1)/2k0然后,在测试步骤508期间,计数器i的值被测试。如果该值严格为正,则执行步骤 510,如果不是这样,则执行后随有最终步骤520的可选步骤518或直接执行最终步骤520。在步骤510期间,计算值D’ i = Dra-Cp对于该算法的良好运算,如果i = u_l 并且如果Clri = 1,则这意味着D’ i小于a并且在该情况下保持D’ i = Di。D’ i的值代表通 过a变换的私钥d的第i个二进制块。应当指出,第二方法的优点之一是只需要存储二进 制进位数的向量C而不需要存储变换后的块D’ ”然后,在步骤512期间,利用二进制块D’ i执行下面的中间计算Q = ScalarMult (P, D,Q)。然后,在步骤514期间,将中间值V与在步骤512获得的值Q以下面的方式相组 合Q —Q+V。然后,值i-Ι在步骤516期间被分配给计数器i。然后返回测试步骤508。步骤518和520等同于之前描述的步骤420和422。还应当指出,上述第二方法涉及n+k次纯量乘法迭代。如针对第四方法那样,可选地,在步骤504期间,数据V被设为0,并且执行下面的 计算V = ScalarMult (-P, a, V)。在这种情况下,在步骤506期间,以下面的方式修改二进 制进位数向量的计算-C0 = O,-Ci = (Di+a+Ci_1)/2k0在这种情况下,在步骤510期间,计算值D’ i = Di+a+Ci。这构成通过a实现的私 钥d的另一种可能的变换。本发明的第二实施例图9所示的微电路设备12”包括(如图2所示的那样)算法加密应用10、含有安 全存储空间16的存储器14、微处理器18和对策部分22’。该设备例如被集成到便携式设 备中,特别是以安全芯片卡30的形式,如图3所示。然而,应当指出,尽管算法加密应用10 和对策部分22’被显示成不同的,然而它们实际上可以被适当地重叠成包含对策的加密算 法的同一个实现。如设备12’那样,设备12”的对策部分22’包括-用于将私钥d的二进制表示分成几个二进制块Dlri,.. . ,D0的部分22’ a,所述二 进制块的大小的总和例如等于该私钥的二进制表示的大小,和
-用于利用所述保护参数a变换每个二进制块Di并且对于每个变换后的二进制块 D’ i利用原函数执行中间计算的部分22’ b。与设备12’相反,在设备12”中,传统类型的伪随机数据生成器20被包括以下部 分的数据生成器20”所代替-用于将预定义函数F应用于至少一个预定秘密参数S以生成仅能从该秘密参数 和函数F中确定的值的序列的部分20”a,和-用于从这个序列中的至少一个值以可复制的方式提供至少一个保护参数a的部 分 20”b。部分20” a实际上是函数F的软件或硬件实现。秘密参数S被存储在安全存储器16中并且提供给生成器20”的部分20” a的输 入,而保护参数a在部分20”b的输出中被提供给对策部分22’。在这个第二实施例中,参数a因而不是上述现有技术文件中提到的传统意义下的 随机变量。它是从对于由生成器20”执行的函数F关于秘密参数S的计算中产生的确定性 结果,其中所述秘密参数可能对于其上设有微电路12’的芯片卡是适当的。所述秘密参数 例如是从设备30的公共数据中导出的。函数F至S的重复应用生成序列(An),该序列的元素是由生成器提供的保护参数 的源。整体上来讲,生成器可以按照实现于卡30中的对策应用来提供所需数目的来自序列 (An)的值的参数a。在已知生成函数F和该函数使用的初始确定性元素(参数S)的情况 下,这个序列(An)可以只是被复制的。每个保护参数a可以直接来自序列(An)中的元素An 换句话说,a = An。可选地, 元素An可能在提供参数a之前进行处理。例如,a可以是计算a = An XOR kn的结果,其中 kn是秘密变换常数。不可否认,如果序列是(An)循环的和/或在有限的元素集合中操作,则所生成的 值An的空间必须足够大来抵抗攻击。实际上,有关的空间越大,对策就越可靠。首先,将介绍根据本发明第二实施例的、可由生成器20”提供的值序列(An)的几 个非限制性例子。然后,将介绍这种值序列的几种可能的使用以特别地向之前参考图4至 8描述的非对称加密的五种对策应用提供保护参数。用于生成提供保护参数的值序列的函数的例子1)基于算术几何数列的函数如果值序列(An)是利用整数值函数F通过下面的关系式来定义的An+1 = F(An) = q.An+r,其中q和r是秘密参数,其利用序列的初始元素A0构成之前提到的秘密参数S,可 以提供来自算术几何数列的保护参数。该保护参数例如是序列(An)中的元素。如果r = 0,则它是几何序列,其用在确切的加密步骤中的项Ai可以利用秘密参数 q和A0以下面的方式来找到=Ai = q1. A00如果q = 1,则它是算数序列,其项Ai可以利用秘密参数r和A0以这样的方式找 到-Ai = r. i+A0。如果r不等于零并且q不等于1,则它是算数几何序列,其项Ai可以利用秘密参数 q、I^PA0 以这样的方式找到=Ai = Qi. A0+r. (Qi-I) / (q_l)。
16
序列(An)中的元素的空间也可以通过整数m利用下面的关系式来减小An+1 = F (An) modulo m = (q. An+r) modulo m。应当指出,如果m是质数,则这个序列采取有限域上的逆仿射变换组的形式GF (m) ={0,1,..., m-1}。也可以将m选择成2的乘方,从而生成具有固定数目比特的元素序列。例如,如果 希望生成具有k比特的参数Ai的序列,则选择m = 2k。优选地,m是秘密参数的一部分从而被保存在所述设备的安全存储器中。2)定义循环乘法组的函数令GC是具有m个元素的循环组,其值a作为生成器元素,并且乘法作为内部合成 法则GC = {a, a2,. . .,am}。值序列(An)可以以下面的方式来定义-起始元素A0被选择成作为对其应用k次组GC的内部合成法则的生成器元素a,-组GC的内部合成法则被应用k’次以从元素Ai到达元素Ai+1。由生成序列(An)的函数所使用的秘密参数S因而例如是生成器元素a和值k、k’ 和m。此外,像之前那样,所生成的保护参数例如是序列(An)的元素。3)定义Frobenius组的函数令GF(q)是有限域,其中阶数q是k比特的质数。这个有限域上的逆仿射变换组 是Frobenius组。Frobenius组的令人感兴趣的属性是没有任何非平凡的元素固定在不止
^fv 点—t ο在这个背景下,可用的仿射变换采取这样的函数形式y = f(x) = b.x+c,其中 b兴O并且运算是在域GF(q)中完成的。因此可以定义生成应用于预定秘密参数q、b、c和 A0的序列(An)的函数。通过选择例如q = 216+1,并且以十六进制记数b = 0x4cd3, c = 0x76bb, A0 = 0xef34,获得了开始于项 A1 = 0xc6cf 的序列,A2 = 0x8baf, A3 = 0x620d, A4 =0x0605,A5 = 0xe70c, A6 = 0x3049,A7 = 0xe069, A8 = 0x55ee,等等。4)来自具有线性反馈的移位寄存器(LFSR型寄存器)的函数这种函数选择例如16比特的秘密参数A。,以及例如具有相应16比特输出的LFSR 移位寄存器。如果LFSR寄存器的大小是m,则序列(An)的项At = m是利用下面的线性等式 通过之前的m个项来确定的At+m = am. At+ a ,At+1+. ..+Q1. At^1,其中 α 丨取值为 0 或 1。5)定义循环冗余校验(CRC)的计算的函数这种函数选择例如16比特的秘密参数A。,以及通常用于CRC计算中的相应的多项 式 CRC,例如多项式 CRC-16(X16+X15+X2+1)或 CRCCCITT V41 (X16+X12+X5+l)。序列(An)中的项 An+1是按照前一项An通过关系式An+1 = F(An)来确定的,其中F基于所选多项式进行CRC计
笪弁。6)值序列的组合实际上,可以计算几个值序列,每个例如是按照上述方法中的一个,并且然后利用 预定义函数进行组合以生成要用作保护参数的新的值序列。序列(An)因而按照另外两个 序列(A,n)和(八”11)、通过针对每个索引11计算411 = 11仏’11,八”11)而被生成。有关函数T可以是秘密值矩阵,A’ n和A”n的值因而分别涉及该矩阵的行和列。7)包含值序列和公共数据的组合
17
序列(An)可以也按照具有对策而并不保密的公共数据(例如在执行加密应用期 间所使用的数据)从第一个序列(A’n)中生成。在这些数据之中,按照应用,消息M(明文 或编码)、公钥e等可以被引用。用作保护参数的序列值因而利用组合所有这些数据的任何 函数COMB而被计算An = COMB (A,n,M,e,· · ·)。这种组合的优点是值序列(An)可以被用来不仅将保护参数馈送给加密算法的对 策应用还被用来检测故障注入攻击(特别是关于公共数据)。实际上,通过利用秘密参数重 新生成序列(A’ n),例如在加密算法执行结束时,但是在利用重新生成的保护参数然后使用 这个重新生成的序列(A’n)和在执行结束时出现的公共数据来执行初始变换的反向操作之 前,可以检查函数COMB的应用是否产生相同的值序列(An)以及公共数据是否已经在所述 执行期间受到影响。在根据本发明第二实施例的非对称加密对策方法中使用按照上述方法之一而生 成的值序列的例子1)第二实施例的一般原理通常,每次使用算法对策时,推荐由对策引入的随机变量的生成,如在使用伪随机 数据生成器20的第一实施例中所描述的那样。如参考图9所提到的,随机变量的生成可以 由来自利用至少一个秘密参数而获得的一个或多个值序列的参数的非随机生成来替代。图10示出了由根据图9的第二实施例的方法所执行的步骤的例子,该方法用于执 行具有对策的非对称加密算法,通过执行而使用T个保护参数. . . aT,所有保护参数都可 以从由部分20’ a生成的同一个值序列(An)中提取。在第一步骤期间,由生成器20”执行INIT,计数器i设为0。计数器i用于在另一 个复位未被执行的情况下将从复位步骤INIT起非对称加密算法被执行的次数保存在存储 器中。在这个步骤期间,值序列必须从中生成的(一个或多个)秘密参数S被定义。它 可以从前一次复位被保存,但是也可以基于复位时的新值而被生成。它例如从唯一标识数 据中生成,例如设备30的公共数据。它也可以从给定时刻的与微电路有关的可能是随机的 参数或物理现象中生成。在任何情况下,它以安全的方式被保存在存储器中以使得微电路 能够利用由部分20”a实现的函数随时生成相同的值序列(An)。复位步骤INIT可能在微电路生命周期中是唯一的,在制造商设计阶段被执行,或 多次再现,例如有规律地或每当计数器i到达值imax时。在具有对策的非对称加密算法的第一执行EXEl期间,生成器20”,具体地是部分 20”a,被调用一次或多次以将秘密参数S应用于预定义函数F,从而一次或多次生成值序列 (An)中的元素的数目T =A1,... Ατ。从这前T个元素中生成T个保护参数ai,...aT。例如,对于任意k,例如1彡k彡T,ak = Ak。可选地,如果在保存于安全存储器中的秘密参数S之中存在T个附加秘密值 Sec1, . . . SecT,则可以执行下面的附加计算对于任意k,例如 1 彡 k 彡 T,ak = Seck XOR Ak,或 ak = Seck ADD Ak,或 ak = Seck SUB Ak,从而变换(或篡改或掩蔽)所使用的参数。之后,在具有对策的加密算法的第i次执行EXEi期间,生成器20”,具体地是部分20”a,被再次调用一次或多次以将秘密参数S应用于预定义函数F,从而一次或多次生成值 序列(An)中的附加元素的数目T:AT(i_1)+1,...ATi。从这T个附加元素中生成T个保护参数 ai,...aT,如前文描述的那样。例如,对于任意k,例如1彡k彡T,ak = AT(i_1)+k。可选地,如果存在T个附加秘密参数Sec1, . . . SecT,则可以执行下面的附加计算对于任意k,例如 1 彡 k 彡 T,ak = Seck XOR At(i -D+k'或 = Seck ADDAt(i_1)+k,或 ak =Seck SUB AT(i_1)+k,从而变换(或篡改或掩蔽)所使用的参数。不管为生成作为保护参数的起源的值序列而使用哪种方法,知道该方法和该方法 使用的秘密值(包括之前或在存储器EEPROM中的微电路设备的生命周期步骤期间被载入 存储器中的初始参数A0),使之能够随时找到在设备寿命期间所生成且所使用的保护参数。 显然,这种特殊性能够使得故障排除被简单高效地执行并且改进对故障注入攻击的抵抗。用于生成值序列和保护参数所使用的方法的选择是由预期应用来指示的。2)第二实施例的一般原理对参考图4至8描述的五种方法的应用由图4、5和6的第一、第二和第三方法所使用以在步骤100、200、300期间生成保 护参数以及在步骤102、202、302期间生成参数v、r2、r3的方法可以是在第二实施例中推荐 的方法之一。此外,参数a、v、r2、r3可以具有相同的二进制大小并且来自同一个值序列(T =4)。此外,这些参数不必保存在存储器中,因为它们可以随时从通过一个或多个秘密参 数和函数F所确定的值序列中找到。因此,参数ν和rl、r2和r3可以在步骤120、218、312 找到而不必在执行求幂的期间被保存在存储器中。在步骤120、218、312中,保护参数也可 以被找到以检查其完整性在求幂期间被保持。同样,由图7和8的第四和第五方法所使用以在步骤400、500期间生成保护参数 以及在步骤402、502期间生成参数ν的方法可以是在第二实施例中推荐的方法之一。此 外,参数3和ν可以具有相同的二进制大小并且来自同一个值序列(T = 2)。此外,这些参 数因而可以不必被保存在存储器中,因为它们可以随时从通过一个或多个秘密参数和函数 F而确定的值序列中找到。在于重新生成这些参数的这个过程对于防止实现受到故障注入 攻击而言是有用的步骤。因此,参数ν和r可以在步骤420、518被找到而不必在执行纯量 乘法期间被保存在存储器中。在步骤420、518中,保护参数a也可以被找到以检查其完整 性以及用于生成它的参数的完整性在纯量乘法期间被保持。在上述方法的每一个中,可以在执行原函数计算循环期间增加附加的保护。验证 参数s按照上面推荐的方法之一被事先生成,该参数被添加至参数a和v、rl或a、V、rl、r2 和r3。在这个计算循环的每次迭代,例如在第一方法的步骤118,第二方法的步骤216,第三 方法的步骤306和310,第四方法的步骤418和第五方法的步骤516,s被找到并且借助于参 数s以确定性的方式从模数N(在RSA或RSSA CRT的情况下)、从私钥d等中提取根据消息 M的另一个基础b的表示或二进制表示的至少一部分中的多个部分。这多个部分然后被标 记成Ms、Ns、ds等,并且可能被组合以构成验证数据。这个保护的原理是检查在每次迭代, 验证数据的值不变。如果验证数据改变,则数据M、N、d等可以被扰乱从而不被发现并且可 以触发告警。除了 M、N和d之外的其他数据可以被使用,假设这些数据是在执行原函数期 间被使用的。很明显,之前描述的对策方法使之能够实现用于保护用来对抗备用信道的攻击的私钥的非对称加密应用,同时将计算时间的额外成本限制在相当公平的级别。
此外,应当指出,本发明不限于上述实施例,并且尽管已经介绍了许多变型,也可 以设想其他变型,特别是提供与已描述的有所不同的其他类型的私钥变换或与所考虑的有 所不同的其他非对称加密应用。
权利要求
一种实现非对称私钥(d)加密算法的电子元件中的对策方法,包括 生成(100;200;300;400;500)保护参数(a), 利用所述加密算法的原函数从输入数据和所述保护参数(a)中计算(104;204;304,308;404;504)中间数据,还包括 将所述私钥(d)的二进制表示分成(110;206;306,310;410;506)几个二进制块, 利用所述保护参数(a)变换(112;210;306,310;412;510)每个二进制块,并且针对每个变换后的二进制块利用所述原函数执行(114;212;306,310;414;512)中间计算,和 通过组合(116;214;306,310;416;514)所述中间数据和所述中间计算(114;212;306,310;414;512)来计算(106 122;206 220;306,310,312,314;406 422;506 520)输出数据。
2.根据权利要求1所述的电子元件中的对策方法,包括划分(110;206 ;306, 310 ;410 ; 506)所述私钥的二进制表示以使得每个二进制块(d)的大小大于或等于所述保护参数(a) 的二进制表示的大小。
3.根据权利要求1或2所述的电子元件中的对策方法,包括将所述私钥(d)的二进制 表示分成(110 ;206 ;306, 310 ;410 ;506)几个二进制块以使得所述二进制块的大小的总和 大于所述私钥的二进制表示的大小。
4.根据权利要求1至3中任一项所述的电子元件中的对策方法,包括以迭代的方式随 机地确定(110 ;410)每个二进制块的大小以使得每个二进制块的值大于所述保护参数(d) 的值。
5.根据权利要求1至3中任一项所述的电子元件中的对策方法,包括-选择所述保护参数(a)的二进制表示的大小k以使得存在一个整数2,例如n = 1^.11,其中11是所述私钥(d)的二进制表示的大小,和-将所述私钥的二进制大小分成(206 ;506)U个二进制块,每个二进制块具有k个比特。
6.根据权利要求1至5中任一项所述的电子元件中的对策方法,其中,所述原函数是通 过所述私钥(d)而实现的所述输入数据的模幂,用于执行RSA或RSA CRT型加密算法。
7.根据权利要求6所述的电子元件中的对策方法,包括事先掩蔽所述RSA模数和所述 输入数据的步骤(102;202;302)。
8.根据权利要求1至5中任一项所述的电子元件中的对策方法,其中,所述原函数是通 过所述私钥(d)而实现的所述输入数据的纯量乘法,用于执行基于椭圆曲线的加密算法, 其中所述输入数据是该椭圆曲线上的预定点。
9.根据权利要求8所述的电子元件中的对策方法,包括事先掩蔽所述椭圆曲线上的预 定点的步骤(402 ;502)。
10.根据权利要求1至9中任一项所述的电子元件中的对策方法,还包括-在所述原函数的任何执行之前,最初以可复制的方式生成(102 ;202 ;302 ;402 ;502) 至少一个验证参数,-在所述原函数的执行期间或之后,重新生成(120,118 ;218,216 ;312,306,310 ;420, 418 ;518,516)这个验证参数,并且将重新生成的验证参数与最初生成的验证参数相比较。
11.根据权利要求10所述的电子元件中的对策方法,其中,重新生成和比较的步骤 (118 ;216 ;306, 310 ;418 ;516)是在将所述原函数应用于变换后的二进制块时,在该原函数 的每次迭代时被执行的。
12.根据权利要求10或11所述的电子元件中的对策方法,包括如果重新生成和比较的 步骤指示所述最初生成的验证参数与所述重新生成的验证参数不同,则触发告警并且至少 扰乱所述私钥(d)。
13.根据权利要求1至12中任一项所述的电子元件中的对策方法,其中,生成(100, 102 ;200, 202 ;300, 302 ;400,402 ;500, 502)所述保护参数和/或所述验证参数包括-定义生成函数(20” a),其是通过对存储于存储器(16)中的预定的至少一个秘密参 数(S)连续应用只能从该秘密参数(S)和该函数(20”a)中确定的值的序列((An))来实现 的,_以可复制的方式从所述序列的至少一个值中生成所述保护参数(a)和/或验证参数。
14.根据权利要求13所述的电子元件中的对策方法,包括-定义多个函数,每个函数是通过对存储于存储器(16)中的预定的至少一个相应秘密 参数(S)连续应用仅能从相应秘密参数(S)和相应函数中确定的相应值序列((A’n),(A”n)) 而实现的生成函数,_组合利用预定义关系而生成的多个值序列((A’n),(A”n))以生成新的值序列((An)),-从这个新序列((An))的至少一个值中以可复制的方式生成所述保护参数(a)和/或 验证参数。
15.根据权利要求13所述的电子元件中的对策方法,包括-定义生成函数,其是通过对存储于存储器(16)中的预定的至少一个秘密参数(S)连 续应用仅能从该秘密参数(S)和该函数中确定的值的序列((A’ n))来实现的,-组合利用所述加密算法的公共参数而生成的值序列((A’n))以生成新的值序列 ((AJ),-从这个新序列((An))的至少一个值以可复制的方式生成所述保护参数(a)和/或验 证参数。
16.一种微电路设备(12’,12”),包括用于实现非对称私钥加密算法的对策方法的微 处理器(18)、用于存储所述私钥(d)的至少一个安全存储器(16)、以及用于生成保护参数 (a)的数据生成器(20,20”),该设备被配置成_利用所述加密算法的原函数从输入数据和所述保护参数(a)中计算(104 ;204 ;304, 308 ;404 ;504)中间数据,-将所述私钥的二进制表示分成(110 ;206 ;306,310 ;410 ;506)几个二进制块,-利用所述保护参数(a)变换(112 ;210 ;306, 310 ;412 ;510)每个二进制块,并且对于 每个变换后的二进制块利用所述原函数执行(114 ;212 ;306,310 ;414 ;512)中间计算,-通过组合(116 ;214 ;306, 310 ;416 ;514)所述中间数据和所述中间计算(114 ;212 ; 306,310 ;414 ;512)来计算(106-122 ;206-220 ;306,310,312,314 ;406-422 ;506-520)输出 数据。
17.根据权利要求16所述的微电路设备(12’,12”),其中,所述微处理器被配置成以迭 代的方式随机地确定(110;410)每个二进制块的大小以使得每个二进制块的值大于所述保护参数的值(d)。
18.根据权利要求16所述的微电路设备(12’,12”),其中,所述数据生成器(20,20") 被配置成选择所述保护参数(a)的二进制表示的大小k以使得存在一个整数u > 2,例如n =让.11,其中11是所述私钥(d)的二进制表示的大小,并且所述微处理器(18)被配置成将所 述私钥的二进制表示分成(206 ;506)U个二进制块,每个二进制块具有k个比特。
19.根据权利要求16至18中任一项所述的微电路设备(12’,12”),其中,所述原函数 是通过所述私钥(d)而实现的所述输入数据的模幂,用于执行RSA或RSA CRT型加密算法。
20.根据权利要求16至18中任一项所述的微电路设备(12’,12”),其中,所述原函数 是通过所述私钥(d)而实现的所述输入数据的纯量乘法,用于执行基于椭圆曲线的加密算 法,其中所述输入数据是所述椭圆曲线上的预定点。
21.根据权利要求16至20中任一项所述的微电路设备(12’,12”),还被配置成在所述 原函数的任何执行之前,最初以可复制的方式生成(102 ;202 ;302 ;402 ;502)至少一个验 证参数,在所述原函数的执行期间或之后重新生成(120,118 ;218,216 ;312,306,310 ;420, 418 ;518,516)这个验证参数,以及将重新生成的验证参数与最初生成的验证参数相比较。
22.根据权利要求16至21中任一项所述的微电路设备(12’,12”),其中,所述数据生 成器(20”)被配置成通过下列操作生成(100,102 ;200, 202 ;300, 302 ;400,402 ;500, 502) 所述保护参数和/或验证参数-定义生成函数(20” a),其是通过对存储于存储器(16)中的预定的至少一个秘密参 数(S)连续应用只能从该秘密参数(S)和该函数(20”a)中确定的值的序列((An))来实现 的,_以可复制的方式从所述序列的至少一个值中生成所述保护参数(a)和/或验证参数。
23.根据权利要求22所述的微电路设备(12’,12”),其中,所述数据生成器(20”)被 配置成-定义多个函数,每个函数是通过对存储于存储器(16)中的预定的至少一个相应秘密 参数(S)连续应用仅能从相应秘密参数(S)和相应函数中确定的相应值序列((A’n),(A”n)) 而实现的生成函数,_组合利用预定义关系而生成的多个值序列((A’n),(A”n))以生成新的值序列((An)),-从这个新序列((An))的至少一个值中以可复制的方式生成所述保护参数(a)和/或 验证参数。
24.根据权利要求22所述的微电路设备(12’,12”),其中,所述数据生成器(20”)被 配置成-定义生成函数,其是通过对存储于存储器(16)中的预定的至少一个秘密参数(S)连 续应用仅能从该秘密参数(S)和该函数中确定的值的序列((A’ n))来实现的,-组合利用所述加密算法的公共参数而生成的值序列((A’n))以生成新的值序列 ((AJ),-从这个新序列((An))的至少一个值以可复制的方式生成所述保护参数(a)和/或验 证参数。
25.一种便携式设备,特别是芯片卡(30),其包括根据权利要求16至24中任一项所述 的微电路设备(12’,12”)。
全文摘要
实现非对称私钥加密算法的电子元件中的对策方法,包括生成保护参数并利用原函数从保护参数中计算中间数据。该方法还包括将私钥的二进制表示分成几个二进制块,利用保护参数变换每个二进制块,并且对于每个变换后的二进制块利用原函数执行中间计算,并且通过组合中间数据和中间计算来计算输出数据。
文档编号G06F7/72GK101925875SQ200980102893
公开日2010年12月22日 申请日期2009年1月23日 优先权日2008年1月23日
发明者B·本蒂欧, B·菲克斯, S·内罗 申请人:英赛康特雷斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1