会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑安全 / 密码学 / 用于生成和保护密码密钥的系统和方法

用于生成和保护密码密钥的系统和方法

阅读:1217发布:2020-09-28

IPRDB可以提供用于生成和保护密码密钥的系统和方法专利检索,专利查询,专利分析的服务。并且在本公开中提供了Diffie-Hellman密钥协商的实现方式,其在体现于软件中时,抵制了由白盒攻击者在软件执行期间对密码学上敏感的参数的提取。教导了四个实施例,其使得在公钥的生成和共享机密的计算期间提取敏感参数是困难的。实施例将变换随机数用于得出公钥和共享机密。针对Diffie-Hellman实现方式的传统攻击模型仅考虑了黑盒攻击,其中攻击者只分析实现方式的输入和输出。相比之下,白盒攻击描述了一种更强有力类型的攻击者,其在软件正被执行时具有到软件实现方式中的完全可见性。,下面是用于生成和保护密码密钥的系统和方法专利的具体信息内容。

1.一种生成用于椭圆曲线Diffie-Hellman(ECDH)密钥交换协议的公钥而不在所述公钥的计算期间公开私钥的方法,所述方法包括以下步骤:生成随机数;

将所述随机数解译为线性变换随机数;以及使用变换后的数字来生成公钥。

2.根据权利要求1所述的方法,其中所述线性变换为 其中,k1和k2是两个实例特定的、编译时间随机值并且是 的元素。

3.根据权利要求2所述的方法,其中生成公钥的步骤计算了:以及 以及然后Q=U1+U2。

4.根据权利要求2所述的方法,其中k2=0。

5.根据权利要求4所述的方法,其中生成公钥的步骤计算了:以及然后Q=U1+G。

6.根据权利要求1所述的方法,其中生成随机数的步骤生成两个随机数r1和r2。

7.根据权利要求6所述的方法,其中线性变换所述随机数的步骤包括以下步骤:首先对随机数r1和r2应用线性变换,然后对其应用第二变换。

8.根据权利要求7所述的方法,其中所述线性变换为, 以及其中k11,k12,k21,k22是实例特定的、编译时间随机挑选的数字,并且

9.根据权利要求8所述的方法,其中所述第二变换是对变换随机数 和 进行的t2,并且被定义为 以及

10.根据权利要求9所述的方法,其中r1被选择用于计算所述公钥。

11.根据权利要求10所述的方法,其中生成公钥的步骤计算了:以及

以及

12.根据权利要求9所述的方法,其中r2被选择用于计算所述公钥。

13.根据权利要求12所述的方法,其中生成公钥的步骤计算了:以及

以及

14.根据权利要求7所述的方法,其中所述线性变换为: 以及 其中,k11和k21是实例特定的、编译时间随机挑选的数字,并且 因此, 以及

15.根据权利要求14所述的方法,其中对变换随机数 和 的第二变换被定义为以及

16.根据权利要求15所述的方法,其中r1被选择用于计算所述公钥。

17.根据权利要求16所述的方法,其中生成公钥的步骤计算了:以及

18.根据权利要求15所述的方法,其中r2被选择用于计算所述公钥。

19.根据权利要求18所述的方法,其中生成公钥的步骤计算了:以及

20.根据权利要求1所述的方法,进一步包括以下步骤:从另一参与方接收公钥,以及使用所述变换随机数从其得出共享机密。

21.根据权利要求3所述的方法,进一步包括以下步骤:从另一参与方接收公钥,以及使用所述变换随机数从其得出共享机密。

22.根据权利要求21所述的方法,其中得出所述共享机密的步骤计算了点以及 以及然后 其中所述共

享机密为Z=xP,其中xP是P的横坐标,参与方A使用其变换随机数和参与方B的公钥。

23.根据权利要求5所述的方法,进一步包括以下步骤:从另一参与方接收公钥,以及使用所述变换随机数从其得出共享机密。

24.根据权利要求23所述的方法,其中得出所述共享机密的步骤计算了点以及 以及然后 其中所述共享机密为Z=xP,其中xP是P的横坐标,参与方A使用其变换随机数和参与方B的公钥。

25.根据权利要求11所述的方法,进一步包括以下步骤:从另一参与方接收公钥,以及使用所述变换随机数从其得出共享机密。

26.根据权利要求25所述的方法,其中得出所述共享机密的步骤计算了:以及

以及然后 其中所述共享机密为Z=xP,其中xP是P的横坐标,参与方A使用其变换随机数和参与方B的公钥。

27.根据权利要求13所述的方法,进一步包括以下步骤:从另一参与方接收公钥,以及使用所述变换随机数从其得出共享机密。

28.根据权利要求27所述的方法,其中得出所述共享机密的步骤计算了:以及

以及然后 其中所述共享机密为Z=xP,其中xP是P的横坐标,参与方A使用其变换随机数和参与方B的公钥。

29.根据权利要求17所述的方法,进一步包括以下步骤:从另一参与方接收公钥,以及使用所述变换随机数从其得出所述共享机密。

30.根据权利要求29所述的方法,其中得出所述共享机密的步骤计算了:以及 以及然后 其

中所述共享机密为Z=xP,其中xP是P的横坐标,参与方A使用其变换随机数和参与方B的公钥。

31.根据权利要求19所述的方法,进一步包括以下步骤:从另一参与方接收公钥,以及使用所述变换随机数从其得出所述共享机密。

32.根据权利要求31所述的方法,其中得出所述共享机密的步骤计算了:以 及 以 及 然 后

其中所述共享机密为Z=xP,其中xP是P的横坐标,参与方A使用其变换随机数和参与方B的公钥。

33.根据权利要求1、3、4、11、13、17、19、22、24、26、28、30和32中任一项所述的方法,其中一些值是离线计算的。

说明书全文

用于生成和保护密码密钥的系统和方法

技术领域

[0001] 本发明涉及生成和保护密码密钥的方法,并且尤其涉及在白盒攻击环境中生成和保护密码密钥的方法。

背景技术

[0002] 传统上,密码实现方式被设计为仅抵制黑盒攻击。这些攻击是在对手企图通过仅分析输入和输出来推断出实现方式内部的密码密钥的情况下的攻击。在黑盒攻击中,假设对手已知他们设为目标的密码算法的族(例如AES、DES、RSA等),但对他们来说所有其他细节(例如执行时间、功率消耗、存储器入口)是不可得的。本质上,黑盒攻击者将实现方式看待为数学函数。然而,白盒攻击者是一种更加强有力类型的对手,并且他们能够分析实现方式的所有部分。白盒攻击者能够知晓在实现方式内部运行的一切,而不是仅研究输入和输出。例如,如果攻击者正把目标设为在如PC或者移动电话上运行的密码软件,则他们能够在调试器内运行该软件并在其运行期间检查存储器和寄存器值。由于密码密钥能够在存储器中观察到,因此密码算法的常规软件实现方式相对于白盒攻击者是完全不安全的。近来已经提出了抵制白盒攻击的密码算法的新的实现方式(例如,AES[1]、DES[2]、ECDSA[3]、SHA[4]);然而,尚不存在用于保护密钥协商算法(诸如迪菲-赫尔曼(Diffie-Hellman)[5])的的任何提议。
[0003] 本文公开的系统和方法提供了用于实限抵制白盒攻击的密钥协商方案的技术。

发明内容

[0004] 本发明的目的在于提供用于在诸如Diffie-Hellman的密钥协商方案的实现方式中保护密码密钥和其他敏感参数不受白盒攻击者影响的方法。
[0005] 椭圆曲线Diffie-Hellman(ECDH)是传统的Diffie-Hellman(DH)的一种变体,其中由椭圆曲线上的点所定义的代数群中完成计算。在文件“SEC1:EllipticCurve Cryptography,Version2.0”[8]中以及“Suite B Implementer′s guide to NIST SP800-56A”[7]中定义了ECDH。关于椭圆曲线密码学以及ECDH的介绍信息可以在Hankerson、Menezes和Vanstone所著的“Guilde to Elliptic Curve Cryptography”[9]中找到。在更高级别,ECDH起作用如下:双方交换公钥,并将公钥与其各自的私钥进行组合以得出共享的机密。虽然其各自的私钥并不相同,但作为ECDH基础的数学保证了每一方都将得出相同的共享机密。私钥通常只是随机数,而对应的公钥是使用数学运算从私钥所计算的,该数学运算是在计算上容易求值的,而反向运算却是在计算上高代价的。
[0006] ECDH被用于多种密码协议,包括传输层安全(TLS),其被用于保护互联网网页浏览,以及完全认证协议,其是数字传输内容保护(DTCP)系统[10]的一部分。使用ECDH所建立的共享密钥可以被用于在终端方(end-party)之间建立安全通道(即,将对称密钥密码学用于消息保密性和验证)。位于终端方之间的记录和分析在ECDH期间所交换的信息的任意攻击者将无法恢复共享密钥,除非他们执行广泛被认为不可实行的一些计算。然而,在一些应用中,攻击者并不位于终端方之间;而是,他们能够观察终端方之一处发生的ECDH计算。这是DTCP中的潜在的关注问题。
[0007] DTCP是一种数字版权管理(DRM)方案并且通常被用于对家庭网络中的视频内容进行强制许可。例如,用户可能希望将视频从其机顶盒流送到个人设备,如便携式电脑(laptop)或移动电话。如果与该视频内容相关联的版权准许该行为,则机顶盒将对个人设备发起ECDH以得出共享密钥;该共享密钥被用于在视频内容被传送至其将被播放的个人设备时加密该视频内容。如果攻击者能够确定该共享密钥,则攻击者将能够记录该视频流并在DRM系统外部对其进行解密,从而使其免于任何限制。在这种情况下,如果合法用户有动机将视频内容从DRM系统中释放,则他们可能充当攻击者。用户能够通过使用调试器和其他工具来观察在他们的个人设备上发生的计算。因此之故,恶意用户可以被建模为白盒攻击者。这导致了以下问题:能否在不将共享机密暴露给攻击者的情况下在白盒环境中计算ECDH共享机密?
[0008] 在本公开中,提供了对白盒攻击有抵制性的四个ECDH实施例;这些实施例可以被用于创建软件实现方式,该软件实现方式能够在不友好的执行环境中得出密码密钥并建立信任。虽然我们的描述集中于Diffie-Hellman的椭圆曲线变体,但本领域技术人员将理解这些实施例能够容易地适应任何Diffie-Hellman方案;这尤其包括其中基础代数群是有限域的子集的Diffie-Hellman方案。
[0009] 这四个实施例生成和操纵变换随机数。变换随机数是原始随机数的模糊形式或掩饰形式。在每一个实施例中,由 或 表示的变换随机数被用于生成ECDH公钥。同样的变换随机数然后被用于生成共享机密。使用该变换随机数所生成的得到的公钥,将与使用原始随机数所将会生成的公钥相同。此性质也适用于共享机密的生成。为了实现这一点,一些辅助的椭圆曲线点必须被预先计算并在计算中被利用。
[0010] 在第一个实施例中,我们生成使用由两个实例特定的、编译时间随机数k1和k2所定义的线性变换来生成变换随机数 ,该随机数k1和k2从区间l至n-l选择,其中n表示基础椭圆曲线组的大小。在第二个实施例中,我们使用由一个实例特定的、编译时间随机数k1所定义的线性变换来生成变换随机数 ,该随机数k1从区间l至n-l选择。这种方法与第一实施例相似,除了仅有一个编译时间随机数被用于生成变换随机数 。在第三实施例中,通过向第一实施例中生成的变换随机数 应用伪码-哈达玛(pseudo-Hadamard)变换[11]来生成变换随机数 。在第四实施例中,通过向第二实施例中生成的变换随机数 应用pseudo-Hadamard变换来生成变换随机数 。

附图说明

[0011] 将参照附图根据以下详细描述进一步理解本发明,其中:
[0012] 图1图 示 了 根 据 本 公 开 的 第 一 实 施 例 的 用 于 白 盒 椭 圆 曲 线Diffie-Hellman(WB-ECDH)的公钥生成。
[0013] 图2图 示 了 根 据 本 公 开 的 第 一 实 施 例 的 用 于 白 盒 椭 圆 曲 线Diffie-Hellman(WB-ECDH)的共享机密生成。
[0014] 图3图 示 了 根 据 本 公 开 的 第 二 实 施 例 的 用 于 白 盒 椭 圆 曲 线Diffie-Hellman(WB-ECDH)的公钥生成。
[0015] 图4图 示 了 根 据 本 公 开 的 第 二 实 施 例 的 用 于 白 盒 椭 圆 曲 线Diffie-Hellman(WB-ECDH)的共享机密生成。
[0016] 图5图 示 了 根 据 本 公 开 的 第 三 实 施 例 的 用 于 白 盒 椭 圆 曲 线Diffie-Hellman(WB-ECDH)的公钥生成。
[0017] 图6图 示 了 根 据 本 公 开 的 第 三 实 施 例 的 用 于 白 盒 椭 圆 曲 线Diffie-Hellman(WB-ECDH)的共享机密生成。
[0018] 图7图 示 了 根 据 本 公 开 的 第 四 实 施 例 的 用 于 白 盒 椭 圆 曲 线Diffie-Hellman(WB-ECDH)的公钥生成。
[0019] 图8图 示 了 根 据 本 公 开 的 第 四 实 施 例 的 用 于 白 盒 椭 圆 曲 线Diffie-Hellman(WB-ECDH)的共享机密生成。

具体实施方式

[0020] 用于描述优选实施例的符号
[0021] 本公开之内使用了下列符号来描述本公开的实施例。
[0022]
[0023]
[0024] 椭圆曲线Diffie-Hellman方案
[0025] ECDH是由NSA在其Suite B密码准则[6]中所推荐的。更准确的说,Suite B推荐使用临时统一ECDH(EU-ECDH)以及单程ECDH(OP-ECDH)。这两种ECDH方案都在Suite B制订人指导[7]中被描述。在临时统一方案中,各参与方在每次其想要计算新的共享机密时都生成临时密钥对。在单程方案中,临时密钥对仅由一个参与方生成;另一参与方使用静态密钥对,该静态密钥对可以在许多共享机密的计算中被重复使用。该制订人指导说明了EU-ECDH相比OP-ECDH是优选的;然而,存在一些不能使用EU-ECDH的情况。这是例如在存储和转发(store-and-forward)通信系统中,其中一个参与方不可用于贡献临时公钥的情况。在类似于此的情况下,可以使用OP-ECDH。
[0026] 敏感参数的暴露
[0027] 在EU-ECDH和OP-ECDH方案两者中,存在两个主要的计算阶段:密钥对生成和共享机密计算。每一个阶段中所需要的步骤均在制订人指导[7]中被详细描述;然而,那些步骤中的计算将敏感参数泄露给白盒攻击者。
[0028] 在[7]中用于密钥对生成的过程规定了密钥对(私钥dA和公钥QA)是基于随机数r如下生成的:dA=r+1,以及QA=dAG。注意,“dAG”表示通过将生成器G与其自身相加dA次所形成的椭圆曲线点。用于共享机密计算的过程规定了共享机密Z被计算为椭圆曲线点P的x坐标,该点P被定义如下:P=dAQB=(r+1)QB,其中dA是参与方A的私钥,而QB是参与方B的公钥。
[0029] 在参与方A的设备上直接实现密钥对生成和共享机密计算将在该设备的存储器中暴露该机密的密钥dA。对于产生dA=r+1,QA=dAG,和P=dAQB的计算来说,这是明显的。这样,检查参与方A的设备的存储器转录(memory-dump)的白盒攻击者将能够推导出私钥dA,以及共享机密Z。为了相对于抗白盒攻击者保持安全性,为密钥对生成和共享机密计算所执行的计算必须被保护。
[0030] 优选实施例的详细描述
[0031] 图1图示了根据本公开的第一实施例的,用于我们所提出的白盒椭圆曲线Diffie-Hellman(WB-ECDH)实现方式的密钥对生成的过程。图2图示了共享机密计算的过程。
[0032] 密钥对的生成。每一个静态和临时的私钥d和公钥Q都将通过使用适当的域参数D来生成,该域参数D必须从Suite B椭圆曲线和域参数(参见[7]的附录A)的列表中所规定的两个域参数集合之一中来选择。此后,我们假设域参数已被适当的选择。
[0033] 目标:计算Q=dG而不在一个参与方的机器的存储器内部公开d,其中Q=dG=(r+1)G,r是随机数,Q是公钥,并且可以根据特定的ECDH方案(EU-ECDH或OP-ECDH)来表示Qe,A,Qe,B或者Qs,B中的任意一个。d是私钥,并且类似地,其可以表示de,A,de,B或者ds,B中的任意一个。
[0034] 变换随机数:在本实施例中,随机数r的变换t被表示为 ,并且被定义为其中k1和k2是两个实例特定、编译时间随机数,并且 (注意, 表示范围l到n-l中与域参数n互质的整数的集合)。因此, 且
重要的是注意,在密钥对生成中使用的随机比特生成器(RBG)的输
出被解译为产生变换随机数。这意味着变换t(r)不必由该实现方式所明确应用——通过其中解译RBG的输出的方式来暗示该变换。
[0035] 预先计算:一旦实例特定的、编译时间随机数k1和k2被选择,两个辅助椭圆曲线点被预先计算: 以及 这两个点在其中该实现方式未受到白盒攻击的线下设立阶段期间(例如,在编译时间)被计算。
[0036] 密钥对生成的步骤如下:
[0037] 输入:无。
[0038] 输出:
[0039] 1.状态:从密钥对生成过程返回的状态。该状态将指示成功(SUCCESS)或错误(ERROR)。
[0040] 2. 变换随机数。
[0041] 3.Q:生成的公钥。
[0042] 过程:
[0043] 1、设N=len(n)(即,设N等于域参数n的比特长度)。检查N有效,即N=256或N=384(对Suite B来说仅有的有效长度)。
[0044] 2、如果N无效,则返回ERROR指示。
[0045] 3、设requested_security_strength=与N相关联的安全强度(当使用P-256时为128或者当使用P-384时为192)。
[0046] 4、从生成了变换随机数 的具有requested_security_strength或更高的安全强度的随机比特生成器(RBG)获得N比特的字符串(b’1,b’2,...,b’N)。如果返回了ERROR指示,则返回该ERROR指示。
[0047] 5、计算 (调用预先计算 )。
[0048] 6、计算Q=U1+U2(调用预先计算 )。
[0049] 7、返回SUCCESS、和Q。
[0050] 验证:可以表明的是,先前的过程产生了与[7]中所给出的原始过程相兼容的公钥。该原始过程产生了公钥Q=(r+1)G;对于新的过程,我们有:
[0051]
[0052] 成本:在我们提出的密钥对生成过程中,椭圆曲线计算的成本如下。需要三次椭圆曲线点乘法,其中的两次是离线并且一次是在线。需要一次椭圆曲线点加法。
[0053] 共享机密计算。参与方A通过使用适当的域参数D、参与方B的公钥(QB)、及其变换随机数 来计算共享机密Z,该共享机密Z是椭圆曲线点的x坐标。参与方B以类似的方式通过使用参与方A的公钥及其自己的变换随机数来计算该共享机密。我们继续如下:
[0054] 目标:计算P=(rA+1)QB,而不在参与方A的机器的存储器内部公开rA(参与方A的随机数)。
[0055] 预先计算:让k1(A)和k2(A)表示参与方A的实例特定的、编译时间随机数。参与方A应当预先计算整数值 和t=k1(A)-k2(A)modn。这两个值在其中该实现方式未受到白盒攻击的线下设立阶段期间(例如,在编译时间)被计算。如果参与方B的公钥是预先已知的,如在OP-ECDH的情况下,则可以进行进一步的预先计算。当进行OP-ECDH时,应当线下计算椭圆曲线点 和
[0056] 共享机密计算的步骤如下:
[0057] 输入:
[0058] 1、 参与方A的变换随机数(调用 )。
[0059] 2、QB:另一参与方(参与方B)的公钥。
[0060] 输出:共享机密Z或错误指示符。
[0061] 过程:
[0062] 1、计算点 和
[0063] 2、计算
[0064] 3、如果P=O,则该点处于无穷大,输出错误指示符。
[0065] 4、Z=xP,其中xP是P的x坐标。
[0066] 验证:可以表明的是,图2中所概述的先前过程产生了与[7]中所给出的原始过程相兼容的共享机密。该原始过程产生了等于(rA+1)QB的共享机密;对于新的过程,我们有:
[0067]
[0068] 成本:在我们提出的共享机密计算过程中,椭圆曲线计算的成本如下。需要三次椭圆曲线点乘法。对于OP-ECDH而言,点乘法中的两次是离线的并且一次是在线的;对于EU-ECDH而言,全部三次点乘法均是在线的。需要一次椭圆曲线点加法。
[0069] 本公开的第二实施例是第一实施例的简化版本。参照图3和图4来描述第二实施例。该设计中的主要关注问题是计算效率。
[0070] 密钥对生成。我们现在描述密钥对生成。
[0071] 目标:计算Q=dG,而不在一个参与方的机器的存储器中公开d。
[0072] 变换随机数:在这个实施例中,随机数r的变换被定义为其中k1是从集合 中选择的实例特定的、编译时间随机数。因而, 并且
[0073] 预先计算:一旦选择了实例特定的、编译时间随机数k1,就可以预先计算辅助椭圆曲线点: 如在第一实施例中那样,该点应当在其中该实现方式未受到白盒攻击的线下设立阶段期间(例如,在编译时间)被计算。
[0074] 密钥对生成的步骤如下:
[0075] 输入和输出与第一实施例的输入和输出相同。
[0076] 过程:
[0077] 1、步骤1、2和3与第一实施例相同。
[0078] 4、从生成了变换随机数 的具有requested_security_strength或更高的安全强度的随机比特生成器(RBG)获得N比特的字符串(b’1,b’2,...,b’N)。如果返回了ERROR指示,则返回该ERROR指示。
[0079] 5、计算 (调用预先计算 )。
[0080] 6、计算Q=U1+G。
[0081] 7、返回SUCCESS、和Q。
[0082] 验证:以下恒等式序列表明了先前过程产生了与[7]中所给出的原始过程相兼容的公钥:
[0083]
[0084] 成本:用于密钥对生成的椭圆曲线计算的成本现在如下。需要两次椭圆曲线点乘法(一次在线并且一次离线),需要一次椭圆曲线点加法。
[0085] 共享机密计算:我们从参与方A的角度解释共享机密计算。参与方A将使用适当的域参数D、另一个参与方的公钥(QB)、及其变换随机数 来计算Z,Z是椭圆曲线点P的x坐标。
[0086] 目标:计算P=(rA+1)QB,而不在参与方A的机器的存储器内部公开rA。
[0087] 预先计算:让k1(A)表示参与方A的实例特定的、编译时间随机数。参与方A应当预-1先计算整数值s=k1(A) modn。这个值应当在其中该实现方式未受到白盒攻击的线下设立阶段期间(例如,在编译时间)被计算。如果参与方B的公钥是预先已知的,如在OP-ECDH的情况下,则可以进行进一步的预先计算。当进行OP-ECDH时,应当线下计算椭圆曲线点[0088] 步骤如下:
[0089] 输入:
[0090] 1、 参与方A的变换随机数(调用 )。
[0091] 2、QB:另一参与方(参与方B)的公钥。
[0092] 输出:共享机密Z或错误指示。
[0093] 过程:
[0094] 1、计算点 以及
[0095] 2、计算
[0096] 3、若P=O,则该点处于无穷大,输出错误指示符。
[0097] 4、Z=xP,其中xP是P点的x坐标。
[0098] 验证:可以表明的是,图4中所概述的先前过程产生了与[7]中所给出的原始过程相兼容的共享机密。考虑以下恒等式序列:
[0099]
[0100] 成本:用于共享机密计算的椭圆曲线计算的成本如下。需要两次椭圆曲线点乘法。对于OP-ECDH而言,一次点乘法是离线的并且一次是在线的。对于EU-ECDH而言,两次点乘法均是在线的。需要一次椭圆曲线点加法(对于OP-ECDH和EU-ECDH两者而言)。
[0101] 第二实施例是第一实施例的简化版本。从第一实施例中去除了一个实例特定随机数,这降低了椭圆曲线计算的数量,但有可能牺牲安全强度。这种方法适用于计算效率是主要关注问题的那些应用。
[0102] 参照图5和6来描述第三实施例。
[0103] 密钥对生成:第三实施例是第一实施例的增强版本,其中安全强度是主要关注问题。本实施例的计算成本更高。
[0104] 目标:计算Q=dG,而不在一个参与方的机器的存储器内部公开d。
[0105] 变换随机数:在这个方法中,随机比特生成器生成两个变换随机数 和 其以组合方式编码两个随机数r1和r2。得到的公钥Q可以通过使用r1或r2中的任一个来生成,并且可以在密钥对生成过程内的运行时间来做出这个选择。因此,我们提出的过程可以计算Q=dG=(r1+1)G或者Q=dG=(r2+1)G。由RBG输出的值 和 被解译为由两层变换所产生。一层与第一实施例的相同变换技术相对应;即,使用从集合 中取出的实例特定的、编译时间随机数的线性变换。第二层是pseudo-Hadamard变换[11],其保证了r1和r2只能从 和 两者的组合中恢复。
[0106] 更准确地,和 被解译如下:
[0107]
[0108] 我们将 和 解译为是对值 和 应用的pseudo-Hadamard变换的结果。注意,N等于域参数n的比特长度,并且 和 是对r1和r2分别进行编码的变换值。为了从 和 恢复 我们计算 并且为了恢复 我们计算 和 的定义为:
[0109]
[0110] 这里,k11,k12,k21,k22是从集合 中取出的实例特定的、编译时间随机数。如在第一实施例中那样,我们有 和
[0111] 预先计算:一旦选择了实例特定的、编译时间随机数k11,k12,k21,k22,就预先 计 算两 组辅 助 椭圆 曲线 点, 和如在第一实施例中那样,这些点应当在其中该
实现方式未受到白盒攻击的线下设立阶段期间(例如,在编译时间)被计算。
[0112] 密钥对生成的步骤如下:
[0113] 输入和输出与第一实施例的输入和输出相同。
[0114] 过程:
[0115] 1、步骤1、2和3与第一实施例相同。
[0116] 4、从生成了变换随机数 和 的具有requested_security_strength2或更高的安全强度的随机比特生成器(RBG)获得N比特的字符串(b’11,b’12,...,b’1N)和(b’21,b’22,...,b’2N)。如果返回了ERROR指示,则返回该ERROR指示。
[0117] 5、如果(“r1”被选择),则:
[0118] a.计算
[0119] b.计算 (调用预先计算 和U12)。
[0120] 6、如果(“r2”被选泽),则:
[0121] c.计算
[0122] d.计算 (调用预先计算 和U22)。
[0123] 7、返回SUCCESS、 和Q。
[0124] 验证:该过程在图5中被图示,并且其可以被验证的是,得到的Q等于(r1+1)G或(r2+1)G,如下:
[0125]
[0126] 共享机密计算:从参与方A的角度解释共享机密计算。参与方A将使用适当的域参数D、另一参与方的公钥(QB)、及其自己的变换随机数 来计算Z。
[0127] 目标:在不在参与方A的机器的存储器内部公开r1(A)和r2(A)的情况下,计算P=(r1(A)+1)QB或者P=(r2(A)+1)QB,其取决于将r1(A)+1还是r2(A)+1选择为参与方A的私钥。
[0128] 预先计算:让k11(A),k12(A),k21(A),k22(A)表示参与方A的实例特定的、编译时间随机数。参与方A应当预先计算整数值 和这些值应当在其中该实现方式未受到白盒攻击的线下设立阶段期间(例如,在编
译时间)被计算。如果参与方B的公钥是预先已知的,如在OP-ECDH的情况下,
则可以进行进一步的预先计算。当进行OP-ECDH时,应当线下计算椭圆曲线点
以及
[0129] 步骤如下:
[0130] 输入:
[0131] 1、 参与方A的变换随机数。
[0132] 2、QB:另一参与方(参与方B)的公钥。
[0133] 输出:共享机密Z或错误指示。
[0134] 过程:
[0135] 1、如果(“r1”被选择),则:
[0136] A.计算 以及(调用预先计算s1)。
[0137] B.
[0138] C.如果P=O,则该点处于无穷大,输出错误指示符。
[0139] D.Z=xP,其中xP是P的x坐标。
[0140] 2、如果(“r2”被选择),则:
[0141] A.计算 以及(调用预先计算s2)。
[0142] B.
[0143] C.如果P=O,则该点处于无穷大,输出错误指示符。
[0144] D.Z=xp,其中xP是P的x坐标。
[0145] 验证:该过程在图6中被图示。该过程的正确性可以如下被验证:
[0146]
[0147] 第三实施例可以对白盒攻击者最具抵制力。在这个实施例中,两个随机数的使用使得对于攻击者而言更难以跟随程序的执行路径。此外,两次变换被用来掩饰该随机数。结果,计算效率被降低。第三实施例适于安全强度是主要关注问题的那些应用。
[0148] 参照图7和8来描述第四实施例。
[0149] 密钥对生成:第四实施例是第二实施例的增强版本。
[0150] 目标:计算Q=dG,而不在一个参与方的机器的存储器内部公开d。
[0151] 变换随机数:如在第三实施例中进行的那样,第四实施例使用随机比特生成器来生成两个变换随机数 和 其以组合方式编码两个随机数r1和r2。得到的公钥Q可以是通过使用r1或r2中的任一个所生成的,并且可以在密钥对生成过程内的运行时间做出这个选择。由RBG输出的值 和 被解译为是由两层变换所产生的。一层与第二实施例的变换技术相对应;即,使用从集合 中取出的实例特定的、编译时间随机数的线性变换。第二层是pseudo-Hadamard变换,如第三实施例中那样。
[0152] 更准确的,和 被解译如下:
[0153]
[0154] 我们将 和 解译为是对值 和 应用的pseudo-Hadamard变换的结果。注意,N等于域参数n的比特长度,并且 和 是对r1和r2分别进行编码的变换值。为了从 和 恢复我们计算 并且为了恢复 我们计算 和 的定义为:
[0155]
[0156] 这里,k11,k21是从集合 中取出的实例特定的、编译时间随机数。如在第二实施例中那样,我们有 和
[0157] 预先计算:一旦选择了实例特定的、编译时间随机数k11,k21,就预先计算两组辅助椭曲线点: 和 如在第一实施例中那样,这些点应当在其中该实现方式未受到白盒攻击的线下设立阶段期间(例如,在编译时间)被计算。
[0158] 密钥对生成的步骤如下:
[0159] 输入和输出与第三实施例的输入和输出相同。
[0160] 过程:
[0161] 1、步骤1、2和3与第一实施例相同。
[0162] 4、从生成了变换随机数 和 的具有requested_security_strength或更高的安全强度的随机比特生成器(RBG)获得N比特的字符串(b’11,b’12,...,b’1N)和(b’21,b’22,...,b’2N)。如果返回了ERROR指示,则返回该ERROR指示。
[0163] 5、如果(“r1”被选择),则:
[0164] a.计算
[0165] b.计算 (调用预先计算 )。
[0166] 6、如果(“r2”被选泽),则:
[0167] c.计算
[0168] d.计算 (调用预先计算 )。
[0169] 7、返回SUCCESS、 和Q。
[0170] 验证:该计算过程在图7中被图示。其正确性可以被验证如下:
[0171]
[0172] 共享机密计算:如之前那样,我们从参与方A的角度解释共享机密计算。参与方A将使用适当的域参数D、另一参与方的公钥(QB)、及其自己的变换随机数 来计算Z。
[0173] 目标:在不在参与方A的机器的存储器内部公开r1(A)和r2(A)的情况下,计算P=(r1(A)+1)QB或者P=(r2(A)+1)QB,其取决于将r1(A)+1还是r2(A)+1选择为参与方A的私钥。
[0174] 预先计算:让k11(A),k21(A)表示参与方A的实例特定的、编译时间随机数。参与方A应当预先计算整数值 和 这些值应当在其中该实现方式未受到白盒攻击的线下设立阶段期间(例如,在编译时间)被计算。如果参与方B的公钥是预先已知的,如在OP-ECDH的情况下,则可以进行进一步的预先计算。当进行OP-ECDH时,应当线下计算椭圆曲线点 和
[0175] 共享机密计算的步骤如下:
[0176] 输入:
[0177] 1、 参与方A的变换随机数。
[0178] 2、QB:另一参与方(参与方B)的公钥。
[0179] 输出:共享机密Z或错误指示。
[0180] 过程:
[0181] 1、如果(“r1”被选择),则:
[0182] A.计算 和
[0183] B.计算
[0184] C.如果P=O,则该点处于无穷大,输出错误指示符。
[0185] D.Z=xP,其中xP是P的x坐标。
[0186] 2、如果(“r2”被选择),则:
[0187] A.计算 以及
[0188] B.计算
[0189] C.如果P=O,则该点处于无穷大,输出错误指示符。
[0190] D.Z=xP,其中xP是P的x坐标。
[0191] 验证:该计算过程在图8中被图示。其正确性可以被验证如下:
[0192]
[0193] 第四实施例试图在安全性和计算效率之间达到折衷。
[0194] 表格A示出了所提出的白盒ECDH设计实施例间的计算比较。表格A允许四个实施例在其计算成本方面进行排列。这些实施例可以按安全强度的降序近似排列为实施例3、实施例1、实施例4、实施例2。
[0195] 上在不偏离权利要求中所限定的发明公开的范围的情况下,可以对以上描述的特定实施例做出许多修改、变化和改编。
[0196] 表格A:所提出的白盒ECDH设计方法间的计算比较
[0197]
[0198] 参考文献:
[0199] [1]S.Chow,P.Eisen,H.Johnson,P.C.Van Oorschot,“White-Box Cryptography and an AES Implementation”,In Nyberg,K.,Heys,H.M.,eds.:Selected Areas in Cryptography 2002(SAC 2002),Lecture Notes in Computer Science(LNCS),Volume2595,Springer Verlag,pp.250-270,2003.
[0200] [2]S.Chow,P.Eisen,H.Johnson,P.C.Van Oorschot,“A White-Box DES Implementation for DRM Applications”,In Proceedings of ACM CCS-9 Workshop DRM,Springer,pp.1-15,2002.
[0201] [3]WB ECDSA,International Patent Application No.PCT/CA2010/000486filed March 31,2010.
[0202] [4]WB SHA,International Patent Application No.PCT/CA2011/050172 filed March 31,2011.
[0203] [5]W.Diffie,M.Hellman,“New Directions in Cryptography”,IEEE Transactions on Information Theory,Vol.22,Issue.6,pp.644-654,Nov 1976.[0204] [6]NSA Suite B Cryptography,Available from http://www.nsa.gov/ia/programs/suiteb_cryptography/
[0205] [7]Suite B Implementer’s Guide to NIST SP 800-56A:National institute of Standards and Technology(NIST),July,2009.(Available at http://www.nsa.gov/ia/_files/SuiteB_Implementer_G-113808.pdf)
[0206] [8]Standards for Efficient Cryptography;“SEC 1:Elliptic Curve Cryptography,Version 2.0 ″,Contact:Daniel R.L.Brown,Certicom Research,2009Certicom Corp,May 2009.
[0207] [9]D.Hankerson,A.Menezes,S.Vanstone,“Guide to Elliptic Curve Cryptography”,Springer-Verlag Publication,ISBN 0-387-95273-X,2004.
[0208] [10]Hitachi Ltd.,Intel Corporation,Panasonic Corporation,Sony Corporation,Toshiba Corporation,“Digital Transmission Content Protection Specification Volume 1(Informational Version)”,Revision 1.7,December,2011.[0209] [11]James L.Massey.“SAFER K-64:A Byte-Oriented Block-Ciphering Algorithm”,In Ross Anderson,ed.:Fast Software Encryption’93,Lecture Notes in Computer Science,Volume 809,Springer Verlag,pp.1-17,1994.
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用