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

xiaoxiao2020-9-10  7

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

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

【专利附图】

【附图说明】
[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]

【权利要求】
1. 一种生成用于椭圆曲线Diffie-Hellman(ECDH)密钥交换协议的公钥而不在所述公 钥的计算期间公开私钥的方法,所述方法包括以下步骤: 生成随机数; 将所述随机数解译为线性变换随机数;以及 使用变换后的数字来生成公钥。
2. 根据权利要求1所述的方法,其中所述线性变换为P = mod?,其中,kjPk2 是两个实例特定的、编译时间随机值并且是 < 的元素。
3. 根据权利要求2所述的方法,其中生成公钥的步骤计算了: G =灸,一 1 G , V1 =治,以及% -心)^:以及然后Q = Α+υ2。
4. 根据权利要求2所述的方法,其中k2 = 0。
5. 根据权利要求4所述的方法,其中生成公钥的步骤计算了: (5 =七―1G,V1 = #,以及然后 Q = A+G。
6. 根据权利要求1所述的方法,其中生成随机数的步骤生成两个随机数&和r2。
7. 根据权利要求6所述的方法,其中线性变换所述随机数的步骤包括以下步骤:首先 对随机数^和r2应用线性变换,然后对其应用第二变换。
8. 根据权利要求7所述的方法,其中所述线性变换为,P1 =A1A +&2m〇d ?以及 乙=A2^2+/T22Inod'其中kn,k 12, k21,k22是实例特定的、编译时间随机挑选的数字,并且 众]1,灸]2,众21,々22 6 〇
9. 根据权利要求8所述的方法,其中所述第二变换是对变换随机数^和卩2进行的t2,并 且被定义为4 =G+Qmod 2'以及& 二G+2?)mod 2'
10. 根据权利要求9所述的方法,其中Γι被选择用于计算所述公钥。
11. 根据权利要求10所述的方法,其中生成公钥的步骤计算了:
?以及 "丨2 =(左丨 1 -左12)6丨1 以及 δ = + "口。
12. 根据权利要求9所述的方法,其中r2被选择用于计算所述公钥。
13. 根据权利要求12所述的方法,其中生成公钥的步骤计算了:
以及 ?兔一以,及 Q = u2,022 +U22。
14. 根据权利要求7所述的方法,其中所述线性变换为j A以及纟,其中, kn和k21是实例特定的、编译时间随机挑选的数字,并且H1 eZ;:,因此,η =<巧,以及 r2=02。
15. 根据权利要求14所述的方法,其中对变换随机数?jP P2的第二变换被定义为 心=G +P2)mod 2'以及& =G +2P2)mod 2'
16. 根据权利要求15所述的方法,其中Γι被选择用于计算所述公钥。
17. 根据权利要求16所述的方法,其中生成公钥的步骤计算了:
_以及
18. 根据权利要求15所述的方法,其中r2被选择用于计算所述公钥。19. 根据权利要求18所述的方法,其中生成公钥的步骤计算了:
?以及 5
20. 根据权利要求1所述的方法,进一步包括以下步骤:从另一参与方接收公钥,以及 使用所述变换随机数从其得出共享机密。
21. 根据权利要求3所述的方法,进一步包括以下步骤:从另一参与方接收公钥,以及 使用所述变换随机数从其得出共享机密。
22. 根据权利要求21所述的方法,其中得出所述共享机密的步骤计算了点 么,二;以及& = &⑷-以及然后P =么2 +么3,其中所述共 享机密为Z = Xp,其中Xp是P的横坐标,参与方A使用其变换随机数和参与方B的公钥。
23. 根据权利要求5所述的方法,进一步包括以下步骤:从另一参与方接收公钥,以及 使用所述变换随机数从其得出共享机密。
24. 根据权利要求23所述的方法,其中得出所述共享机密的步骤计算了点 么以及& = &么以及然后Z3 = L +2,其中所述共享机密为Z = xP,其中Xp是 P的横坐标,参与方A使用其变换随机数和参与方B的公钥。
25. 根据权利要求11所述的方法,进一步包括以下步骤:从另一参与方接收公钥,以及 使用所述变换随机数从其得出共享机密。
26. 根据权利要求25所述的方法,其中得出所述共享机密的步骤计算了:
.以及 3 么13 = ⑷-1⑷)?,以及然后户=4,2 +么",其中所述共享机密为Z = xP,其中Xp是P的 横坐标,参与方A使用其变换随机数和参与方B的公钥。
27. 根据权利要求13所述的方法,进一步包括以下步骤:从另一参与方接收公钥,以及 使用所述变换随机数从其得出共享机密。
28. 根据权利要求27所述的方法,其中得出所述共享机密的步骤计算了:
.以及 5 么23二(h⑷-h⑷)i2,以及然后p = + 6?,其中所述共享机密为Z = xP,其中Xp是P 的横坐标,参与方A使用其变换随机数和参与方B的公钥。
29. 根据权利要求17所述的方法,进一步包括以下步骤:从另一参与方接收公钥,以及 使用所述变换随机数从其得出所述共享机密。
30. 根据权利要求29所述的方法,其中得出所述共享机密的步骤计算了:
;以及然后P二A12+?,其 中所述共享机密为Z = xP,其中Xp是P的横坐标,参与方A使用其变换随机数和参与方B的 公钥。
31. 根据权利要求19所述的方法,进一步包括以下步骤:从另一参与方接收公钥,以及 使用所述变换随机数从其得出所述共享机密。
32. 根据权利要求31所述的方法,其中得出所述共享机密的步骤计算了:
.以及然后 P + 2%其中所述共享机密为Z = Xp,其中Xp是P的横坐标,参与方A使用其变换随机 数和参与方B的公钥。
33. 根据权利要求1、3、4、11、13、17、19、22、24、26、28、30和32中任一项所述的方法,其 中一些值是离线计算的。
【文档编号】H04L9/00GK104396181SQ201280069449
【公开日】2015年3月4日 申请日期:2012年2月9日 优先权日:2012年2月9日
【发明者】Sk·Md·M·拉曼, J·穆伊尔 申请人:爱迪德加拿大公司

最新回复(0)