用于保护密码资产免受白盒攻击的系统和方法技术方案

技术编号:8660167 阅读:168 留言:0更新日期:2013-05-02 07:46
公开了一种抗白盒攻击者的数字签名生成(DSG)过程。这通过将特别选择的数据变换应用于算法的输入、输出和内部参数来实现。具体地,签名者的私钥不会清楚地出现在我们保护的实现中。我们的新白盒实现产生与由传统实现创建的签名兼容的签名;因此,我们的解决方案便于互操作性并可被用作传统实现的替代实现。具体地,我们描述了数字签名生成过程的密钥(d)和生成器域参数(通常用G或g表示)的变换,使得本发明专利技术的实施方式可产生签名的消息,在验证者看起来就像使用了密钥(d)而实际上没有使用密钥(d)。这使得对手不可能观察到密钥(d),因为实际上并没有使用密钥(d)。其他实施方式包括使对手难于通过观察生成数字签名的过程推算出密钥(d)的另外的保护。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及密码。更具体地,本专利技术涉及用于保护密码资产例如私钥和其他秘密参数的方法和系统。
技术介绍
在FIPS PUB 186-3 (美国商务部)和ANS X9.62-2005 (美国国家金融服务标准)的标准中描述了数字签名算法(DSA)和椭圆曲线数字签名算法(ECDSA),其全部内容通过引用并入本文。这些签名算法使用公钥密码来创建及验证数字消息上的数字签名。DSA和ECDSA中的签名者拥有私钥和公钥;私钥被用于生成数字签名(即对消息签名),公钥被第三方用来验证该签名。DSA和ECDSA广泛应用(例如,在ssh、SSL/TLS、加拿大邮政数字邮戳、DTCP、AACS、MS-DRM)并可被用于提供数据源认证、数据完整性和不可抵赖性。然而,对DSA和E⑶SA签名可能提供的任何保证总是受到这样的假设,即签名者的私钥保持私有(即私钥不会泄露至攻击者)。下面的引用文献提供了另外的背景信息,其全部内容通过引用并入本文:[I]美国国家金融服务标准(American National Standard for FinancialServices) , ANS X9.62-2005, Public Key Cryptography for the Financial ServicesIndustry, The Elliptic Curve Digital Signature Algorithm(ECDSA)(金融服务产业的公钥密码、椭圆曲线数字签名算法(E⑶SA)),2005年11月16日;[2]D.Hankerson, A.Menezes, S.Vanstone, Guide to Elliptic CurveCryptography (椭圆曲线密码指南),2003 ;[3]信息技术实验室、标准和技术国家局(Information TechnologyLaboratory, National Institute of Standards and Technology), FIPS PUB186-3,Digital Signature Standard(DSS)(数字签名标准(DSS)),2009 年 6 月;[4] Standards for Efficient Cryptography, SEC I !Elliptic CurveCryptography (高效密码标准、SECl:椭圆曲线密码),2.0版,2009年5月21日;[5]National Security Agency, NSA Suite B Cryptography, available fromhttp://www.nsa.gov/ia/programs/suiteb cryptography/ (可从 http://www.nsa.gov/ia/programs/suiteb cryptography/ 获得的国家安全局 NSA B 套密码)[6]Digital Transmission Content Protection Specification (数字传输内容保护规范),卷I (信息版),1.51修订版,2007年10月I日。DSA和E⑶SA的签名生成操作通常在计算机软件中实现,而这样的计算机软件在特定的计算装置(例如手机、机顶盒、智能卡)上运行。在许多应用中,这种操作发生在签名者控制之外的环境中一可能存在对手(即对手可能在当签名被计算时观察装置)。仅对签名生成的输入和输出进行分析的对手利用类似黑盒的方式有效地对该实现进行处理。DSA和E⑶SA被设计成抗这样的黑盒攻击者。然而,除了输入和输出之外常常还存在更多可用的信息。其他信息例如装置功率消耗、执行时间、电磁发射以及对数据错误的响应都会给攻击者提供关于软件执行的线索;已经证明这会泄露私钥的位并完全危及签名方案。一种更鲁棒的安全模型抗白盒攻击者。白盒攻击者对计算签名的软件执行具有完全可视性。抗白盒攻击者是高度理想的目标,但目前还没有提出DSA和ECDSA的任何白盒实现。作为该问题的实例,考虑用于保护音频/视频内容的DTCP协议。下述引文来自DTCP规范,如在上述参考文献[6]中限定的那样:4.3兼容装置的制造支持完全认证的所有兼容装置(即所有个体均无关品牌和模型地被制造)被分配有由DTLA生成的唯一的装置ID (XID)和装置EC-DSA公钥/私钥对。私钥必须以防止其公开的方式存储在装置内。DTLA还必须给兼容装置提供装置证书(XCERT)。该证书存储在兼容装置中并在认证过程中使用。此外,兼容装置需要存储实现密码协议所必需的其他常数和密钥。上文所强调的句子指出DTCP兼容装置必须采取步骤来保护其E⑶SA私钥。然而,这样的装置在完全认证协议期间必须利用其私钥来创建ECDSA签名。虽然看上去私钥可能通过以加密状态进行存储而受到了简单的保护,但实际上要执行签名操作,私钥会首先被解密以被使用,由此私钥可能被白盒攻击者提取。为了解决这个问题,所需要的是一种保护过程,其保持私钥机密并允许数字签名操作在不将私钥泄露给攻击者的情况下进行。
技术实现思路
本专利技术的目的是消除或减少现有的数字签名过程中的至少一个缺点。具体地,本专利技术的一个方面提出了更安全地保护签名者的密钥不被能够观察操作中的数字签名过程的对手推算出的过程。因此,本专利技术的方面提出了用于实现抗白盒攻击者的数字签名生成(DSG)过程的方法和系统。这通过将特别选择的数据变换应用于算法的输入、输出和内部参数来进行。具体地,签名者的私钥不会清楚地出现在我们保护的实现中。我们的新白盒实现产生与由传统实现创建的签名兼容的签名;因此,我们的解决方案便于互操作性并可被用作传统实现的替代实现。具体地,我们描述了数字签名生成过程的密钥(d)和生成器域参数(通常用G或g表示)的变换,使得本专利技术的实施方式可产生签名的消息,在验证者看起来就像使用了密钥(d)而实际上没有使用密钥(d)。这使得对手不可能观察到密钥(d),因为实际上并没有使用密钥(d)。其他实施方式包括使对手难于通过观察生成数字签名的过程推算出密钥(d)的另外的保护。本专利技术的一个方面提供了用于通过基于随机整数f变换d来产生变换的密钥(d )的方法和系统,变换的密钥J可与变换的生成器(例如(5或f)以及f本身一同使用来产生兼容的签名消息。根据该方面,变换的生成器根据生成器、f的逆对η求模来产生。DSG可稍稍进行修改以使用所述变换的生成器(例如.0或f)和5来代替所述生成器(G或g)和d,与包括f 一同在所述DSG过程中来产生数字签名,该数字签名可由所述验证过程使用公钥Q进行验证,就像在所述DSG过程中实际使用了 d和所述生成器一样。一方面,本专利技术提供了保护加密密钥(d)不被能够在利用d的加密数字签名生成(DSG)过程的执行期间观察计算设备A的对手B获得的计算机实现方法,该密钥(d)具有相应的加密公钥Q,其中,Q和d均涉及η阶生成器,其中,d存储且用于计算设备A上,所述DSG过程具有已知的利用Q的签名验证过程,所述方法包括:a)在I至η-1的间隔中选择随机整数f ;b)基于所述生成器和f的逆对η求模产生变换的生成器;c)通过基于f变换d产生变换的密钥(J );以及d)利用所述变换的生成器和J替代所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种保护加密密钥d不被能够在利用d的加密数字签名生成(DSG)过程的执行期间观察计算设备A的对手B获得的计算机实现方法,其中,d具有相应的加密公钥Q,Q和d均涉及η阶生成器,d存储于A上并在A上使用,所述DSG过程具有已知的利用Q的签名验证过程,所述方法包括: a)在I至η-1的间隔中选择随机整数f; b)基于所述生成器和f的逆对η求模产生变换的生成器; c)通过基于f变换d产生变换的密钥3;以及 d)利用所述变换的生成器和^替代所述生成器和d,连同包括f,在所述DSG过程中产生数字签名,所产生的数字签名能够通过使用Q的所述验证过程进行验证,就像在所述DSG过程中实际使用了 d和所述生成器一样。2.如权利要求1所述的方法,其中,所述步骤a、b和c以不能被B观察的一些方式执行,所述步骤d由A在能被B观察的情况下执行。3.如权利要求2所述的方法,其中,所述步骤a、b和c通过离线执行以不能被B观察的一些方式执行。4.如权利要求1至3中任一项所述的方法,其中,所述生成器为用于生成具有基数η的椭圆曲线群的椭圆曲线上的点G,其中,所述变换的生成器为所述椭圆曲线群中的另一点G ,其中步骤b)包括将f的逆对η求模的结果赋予Γ1,以及将使G本身增加Γ1倍的结果赋予δ ;以及其中步骤c)包 括将df modn的结果赋予J。5.如权利要求4所述的方法,其中,所述数字签名验证过程为用于对由私钥d持有者发起的对消息M的签名(r,S)进行验证的标准ECDSA数字签名验证过程,其中,所述步骤d)包括: i)在间隔[l,n-l]中选择随机整数[; ii)MEC—Multiply(k, Gj的结果赋予点R,其中,EC Multiply(k, G j表示使椭圆曲线点占本身增加[倍,; iii)将Rxmodn的结果赋予r,其中Rx为R的x坐标; iv)如果r=0,则再次从步骤i)开始,否则; V)将消息M上的哈希操作值赋予e ; vi)计算P+ 力的值以及将该值赋予s ; vii)如果s=0,则再次从步骤i)开始,否则; V)输出签名(r,s) 其中,消息M上的所述签名(r,s)等同于通过使用所述私钥d的所述标准E⑶SA过程生成的签名(r,s),除了实际的私钥d并没有被使用并因此在执行期间未被加载至存储器之外。6.如权利要求1至3中任一项所述的方法,其中,所述数字签名验证过程为用于对由私钥d持有者发起的对消息M的签名(r,s)进行验证的标准DSA数字签名验证过程,所述标准DSA数字签名验证过程利用域参数p、q和g,其中,所述生成器为g并且q=n,其中所述步骤b)包括将f的逆对q求模的结果赋予Γ1,以及将modi 的结果赋予蒼,其中对疒计算模q,其中步骤c)包括将df modq的结果赋予07.如权利要求6所述的方法,其中,所述步骤d)包括: i)在间隔[l,n-l]中选择随机整数务; ii)将fmod的结果赋予rp ; iii)将rpmod q的结果赋予r ; iv)如果r=0,则再次从步骤i)开始,否则; V)将消息M上的哈希操作值赋予e ; vi )计算8.如权利要求5或7所述的方法,其中,步骤vi)包括利用通过使用一系列查找表模糊的软件例程来计算ef modn的值,使得f的值不被加载至存储器并因此不会在计算期间泄露。9.如权利要求8所述的方法,其中,步骤vi)还包括利用通过使用一系列查找表模糊的软件例程来计算10.如权利要求8或9所述的方法,其中,软件例程包括在离线阶段构造的字方式的重新编码表。11.如权利要求5或7所述的方法,其中,哈希函数H由函数Hf替代,所述函数Hf因此产生值12.如权利要求1至11中任一项所述的方法,还包括在执行所述方法步骤的软件上执行的控制流和数据模糊。13.一种保护加密密钥d不被能够在利用d的加密数字签名生成(DSG)过程的执行期间观察计算设备A的对手B获得的计算机实现方法,其中,d具有相应的加密公钥Q,Q和d均涉及η阶生成器,其中,d存储于A上并且在A上使用,所述加密过程具有已知的利用Q的签名验证过程,所述方法包括: a)在I至η-1的间隔中选择随机整数f; b)基于所述生成器和f的逆对η求模产生变换的生成器; c)通过基于...

【专利技术属性】
技术研发人员:詹姆士·缪尔隋家元丹尼尔·艾利·穆多克菲利普·艾伦·埃森
申请(专利权)人:埃德图加拿大公司
类型:
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1