CN103081398A - 用于保护密码资产免受白盒攻击的系统和方法 - Google Patents

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

Info

Publication number
CN103081398A
CN103081398A CN2010800659447A CN201080065944A CN103081398A CN 103081398 A CN103081398 A CN 103081398A CN 2010800659447 A CN2010800659447 A CN 2010800659447A CN 201080065944 A CN201080065944 A CN 201080065944A CN 103081398 A CN103081398 A CN 103081398A
Authority
CN
China
Prior art keywords
maker
signature
digital signature
instruction
conversion
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.)
Granted
Application number
CN2010800659447A
Other languages
English (en)
Other versions
CN103081398B (zh
Inventor
詹姆士·缪尔
隋家元
丹尼尔·艾利·穆多克
菲利普·艾伦·埃森
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.)
Ai Dide Technology Co., Ltd.
Original Assignee
Irdeto Canada Corp
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 Irdeto Canada Corp filed Critical Irdeto Canada Corp
Publication of CN103081398A publication Critical patent/CN103081398A/zh
Application granted granted Critical
Publication of CN103081398B publication Critical patent/CN103081398B/zh
Active 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/002Countermeasures against attacks on cryptographic mechanisms
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • 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/16Obfuscation or hiding, e.g. involving white box

Landscapes

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

Abstract

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

Description

用于保护密码资产免受白盒攻击的系统和方法
相关申请的交叉引用
这是本发明的首次申请。
技术领域
本发明一般涉及密码。更具体地,本发明涉及用于保护密码资产例如私钥和其他秘密参数的方法和系统。
背景技术
在FIPS PUB 186-3(美国商务部)和ANS X9.62-2005(美国国家金融服务标准)的标准中描述了数字签名算法(DSA)和椭圆曲线数字签名算法(ECDSA),其全部内容通过引用并入本文。这些签名算法使用公钥密码来创建及验证数字消息上的数字签名。DSA和ECDSA中的签名者拥有私钥和公钥;私钥被用于生成数字签名(即对消息签名),公钥被第三方用来验证该签名。
DSA和ECDSA广泛应用(例如,在ssh、SSL/TLS、加拿大邮政数字邮戳、DTCP、AACS、MS-DRM)并可被用于提供数据源认证、数据完整性和不可抵赖性。然而,对DSA和ECDSA签名可能提供的任何保证总是受到这样的假设,即签名者的私钥保持私有(即私钥不会泄露至攻击者)。
下面的引用文献提供了另外的背景信息,其全部内容通过引用并入本文:
[1]美国国家金融服务标准(American National Standardfor Financial Services),ANS X9.62-2005,Public KeyCryptography for the Financial Services Industry,The EllipticCurve Digital Signature Algorithm(ECDSA)(金融服务产业的公钥密码、椭圆曲线数字签名算法(ECDSA)),2005年11月16日;
[2]D.Hankerson,A.Menezes,S.Vanstone,Guide toElliptic Curve Cryptography(椭圆曲线密码指南),2003;
[3]信息技术实验室、标准和技术国家局(InformationTechnology Laboratory,National Institute of Standards andTechnology),FIPS PUB 186-3,Digital Signature Standard(DSS)(数字签名标准(DSS)),2009年6月;
[4]Standards for Efficient Cryptography,SEC 1:EllipticCurve Cryptography(高效密码标准、SEC1:椭圆曲线密码),2.0版,2009年5月21日;
[5]National Security Agency,NSA Suite B Cryptography,available from http://www.nsa.gov/ia/programs/suitebcryptography/(可从http://www.nsa.gov/ia/programs/suiteb  cryptography/获得的国家安全局NSA B套密码)
[6]Digital Transmission Content Protection Specification(数字传输内容保护规范),卷1(信息版),1.51修订版,2007年10月1日。
DSA和ECDSA的签名生成操作通常在计算机软件中实现,而这样的计算机软件在特定的计算装置(例如手机、机顶盒、智能卡)上运行。在许多应用中,这种操作发生在签名者控制之外的环境中——可能存在对手(即对手可能在当签名被计算时观察装置)。
仅对签名生成的输入和输出进行分析的对手利用类似黑盒的方式有效地对该实现进行处理。DSA和ECDSA被设计成抗这样的黑盒攻击者。然而,除了输入和输出之外常常还存在更多可用的信息。其他信息例如装置功率消耗、执行时间、电磁发射以及对数据错误的响应都会给攻击者提供关于软件执行的线索;已经证明这会泄露私钥的位并完全危及签名方案。
一种更鲁棒的安全模型抗白盒攻击者。白盒攻击者对计算签名的软件执行具有完全可视性。抗白盒攻击者是高度理想的目标,但目前还没有提出DSA和ECDSA的任何白盒实现。
作为该问题的实例,考虑用于保护音频/视频内容的DTCP协议。下述引文来自DTCP规范,如在上述参考文献[6]中限定的那样:
4.3兼容装置的制造
支持完全认证的所有兼容装置(即所有个体均无关品牌和模型地被制造)被分配有由DTLA生成的唯一的装置ID(XID)和装置EC-DSA公钥/私钥对。私钥必须以防止其公开的方式存储在装置内。DTLA还必须给兼容装置提供装置证书(XCERT)。该证书存储在兼容装置中并在认证过程中使用。此外,兼容装置需要存储实现密码协议所必需的其他常数和密钥。
上文所强调的句子指出DTCP兼容装置必须采取步骤来保护其ECDSA私钥。然而,这样的装置在完全认证协议期间必须利用其私钥来创建ECDSA签名。虽然看上去私钥可能通过以加密状态进行存储而受到了简单的保护,但实际上要执行签名操作,私钥会首先被解密以被使用,由此私钥可能被白盒攻击者提取。为了解决这个问题,所需要的是一种保护过程,其保持私钥机密并允许数字签名操作在不将私钥泄露给攻击者的情况下进行。
发明内容
本发明的目的是消除或减少现有的数字签名过程中的至少一个缺点。具体地,本发明的一个方面提出了更安全地保护签名者的密钥不被能够观察操作中的数字签名过程的对手推算出的过程。
因此,本发明的方面提出了用于实现抗白盒攻击者的数字签名生成(DSG)过程的方法和系统。这通过将特别选择的数据变换应用于算法的输入、输出和内部参数来进行。具体地,签名者的私钥不会清楚地出现在我们保护的实现中。我们的新白盒实现产生与由传统实现创建的签名兼容的签名;因此,我们的解决方案便于互操作性并可被用作传统实现的替代实现。具体地,我们描述了数字签名生成过程的密钥(d)和生成器域参数(通常用G或g表示)的变换,使得本发明的实施方式可产生签名的消息,在验证者看起来就像使用了密钥(d)而实际上没有使用密钥(d)。这使得对手不可能观察到密钥(d),因为实际上并没有使用密钥(d)。其他实施方式包括使对手难于通过观察生成数字签名的过程推算出密钥(d)的另外的保护。
本发明的一个方面提供了用于通过基于随机整数f变换d来产生变换的密钥
Figure BDA00002212287300041
的方法和系统,变换的密钥
Figure BDA00002212287300042
可与变换的生成器(例如
Figure BDA00002212287300044
)以及f本身一同使用来产生兼容的签名消息。根据该方面,变换的生成器根据生成器、f的逆对n求模来产生。DSG可稍稍进行修改以使用所述变换的生成器(例如
Figure BDA00002212287300045
Figure BDA00002212287300046
)和
Figure BDA00002212287300047
来代替所述生成器(G或g)和d,与包括f一同在所述DSG过程中来产生数字签名,该数字签名可由所述验证过程使用公钥Q进行验证,就像在所述DSG过程中实际使用了d和所述生成器一样。
一方面,本发明提供了保护加密密钥(d)不被能够在利用d的加密数字签名生成(DSG)过程的执行期间观察计算设备A的对手B获得的计算机实现方法,该密钥(d)具有相应的加密公钥Q,其中,Q和d均涉及n阶生成器,其中,d存储且用于计算设备A上,所述DSG过程具有已知的利用Q的签名验证过程,所述方法包括:
a)在1至n-1的间隔中选择随机整数f;
b)基于所述生成器和f的逆对n求模产生变换的生成器;
c)通过基于f变换d产生变换的密钥
Figure BDA00002212287300048
以及
d)利用所述变换的生成器和
Figure BDA00002212287300049
替代所述生成器和d,连同包括f在所述DSG过程中产生数字签名,所产生的数字签名可由所述验证过程使用Q进行验证,就像在所述DSG过程中实际使用了d和所述生成器一样。
另一方面,提供了保护加密密钥(d)不被能够在利用d的加密数字签名生成(DSG)过程的执行期间观察计算设备A的对手B获得的计算机实现方法,该密钥(d)具有相应的加密公钥Q,其中,Q和d均涉及n阶生成器,其中,d存储且用于计算设备A上,所述加密过程具有已知的利用Q的签名验证过程,所述方法包括:
a)在1至n-1的间隔中选择随机整数f;
b)基于所述生成器和f的逆对n求模产生变换的生成器;
c)通过基于f变换d产生变换的密钥
Figure BDA00002212287300051
以及
d)产生在机器可读媒介中实施的计算机程序产品,所述机器可读媒介存储机器可执行指令,使得当机器可执行指令由A执行时,A利用所述变换的生成器和
Figure BDA00002212287300052
替代所述生成器和d,连同增加f在所述DSG过程中产生数字签名,所产生的数字签名可由所述验证过程使用Q进行验证,就像在所述DSG过程中实际使用了d和所述生成器一样。
另一方面,本发明提供了包括有形计算机可读媒介的计算机程序产品,所述有形计算机可读媒介存储计算机可读指令,当计算机可读指令由处理器执行时使所述处理器实现保护加密密钥(d)不被能够在利用d的加密数字签名生成(DSG)过程的执行期间观察计算设备A的对手B获得的计算机实现方法,该密钥(d)具有相应的加密公钥Q,其中,Q和d均涉及n阶生成器,其中,d存储于计算设备A上并且在计算设备A上使用,所述加密过程具有已知的利用Q的签名验证过程,所述计算机可读指令包括:
a)用于在1至n-1的间隔中选择随机整数f的指令;
b)用于基于f的逆对n求模来计算所述生成器的变换的生成器值的指令;
c)用于通过基于f计算d的变换值
Figure BDA00002212287300053
的指令;以及
d)存储f值,所述变换的生成器和
Figure BDA00002212287300054
以安全的方式用于变换的加密过程的后续使用,所述变换的加密过程使用f、所述变换的生成器和
Figure BDA00002212287300055
产生数字签名,所产生的数字签名可由所述验证过程使用Q进行验证,就像在所述加密过程中实际使用了d和所述生成器一样。
另一方面,本发明提供了包括有形计算机可读媒介的计算机程序产品,所述有形计算机可读媒介存储计算机可读指令,当计算机可读指令由计算设备(A)执行时使所述计算设备在消息M上产生数字签名(r,s),所述数字签名可通过用于对据称由私钥d持有者发起的对消息M的签名(r,s)进行验证的标准ECDSA数字签名验证过程验证,其中,所述私钥d具有相应的加密公钥Q,其中,Q和d均涉及n阶生成器,所述签名产生并且保护d不被能够在所述计算机可读指令的执行期间观察A的对手获得,所述计算机可读指令包括:
i)用于在间隔[1,n-1]中选择随机整数
Figure BDA00002212287300061
的指令;
ii)用于将
Figure BDA00002212287300062
的结果赋予点R的指令,其中,
Figure BDA00002212287300063
表示使椭圆曲线点
Figure BDA00002212287300064
本身增加倍,所述椭圆曲线点
Figure BDA00002212287300066
已通过使用先前在1至n-1的间隔中选择的随机整数f基于所述生成器G的变换被预先生成;
iii)用于将Rx modn的结果赋予r的指令,其中Rx为R的x坐标;
iv)用于如果r=0则再次回到i)的指令,否则;
v)用于将消息M上的哈希操作值赋予e的指令;
vi)用于计算
Figure BDA00002212287300067
的值以及将该值赋予s的指令,其中是基于f被预先确定的d的变换值;
vii)用于如果s=0则再次回到i)的指令,否则;
v)用于将数字签名的消息M连同签名(r,s)传输至第三方用于验证的指令;以及
其中,所述消息M上的所述签名(r,s)等同于由标准ECDSA过程通过使用私钥d生成的签名(r,s),除了私钥d实际并没有被使用并因此在执行过程中未被加载至存储器之外。
另一方面,本发明提供了包括有形计算机可读媒介的计算机产品,所述有形计算机可读媒介存储计算机可读指令,当计算机可读指令由计算设备(A)执行时使所述计算设备使用离线变换的值进行签名从而在消息M上产生数字签名(r,s),如本文所公开的那样。
通过参照附图阅读下面对本发明的具体实施方式的描述,对于本领域技术人员而言,本发明的其他方面和特征将变得显而易见。
附图说明
下面将参照附图通过仅示例对本发明的实施方式进行描述,在附图中:
图1是示出数字签名生成的一般过程的流程图;
图2是示出数字签名验证的一般过程的流程图;
图3是示出ECDSA签名生成的步骤的流程图;
图4是示出根据本发明的实施方式的预备程序的步骤的流程图;
图5是示出根据本发明实施方式生成ECDSA签名的过程的步骤的流程图;
图6是示出根据本发明实施方式的创建用于使这样的ECDSA签名生成过程更鲁棒的过程的步骤的流程图;
图7是示出本发明的实施方式可在其上执行的计算机系统的简化示例。
具体实施方式
一般而言,本发明提供了用于保护数字签名生成过程中的密码资产的方法和系统,其中密码资产包括私钥、秘密参数等。
在图1中示出了一般的数字签名生成过程,其中,通过使用签名生成算法104利用私钥(d)对消息(m)进行签名以产生数字签名(S)。
在图2中示出了一般的数字签名验证过程,其中,对据称已由私钥(d)的持有者签名的消息(m)上的数字签名(S)通过利用签名验证算法(206)使用持有者的公钥(Q)进行验证。上述过程的有利之处在于,任何人都可使用公钥(Q)来验证签名,该过程将根据实际上是否由私钥(d)的持有者签名来接受或拒绝208签名。
本发明的一个方面提供了一种方法和系统,其可产生签名(S)并且保护与现存的验证过程兼容的d。换言之,本发明的实施方式将在计算设备A上产生S,计算设备A上可能存在对手B,对手B积极地尝试通过观察签名生成过程来获取d,其可由206通过使用Q进行验证而不需要验证者改变过程206。
在下文中,我们描述了根据本发明的实施方式的用于将DSA或ECDSA签名生成实现转换成抗白盒攻击者的实现的示例性过程。
应注意,我们使用的用语“光滑(smooth )”指的是传统的、未受保护的签名生成实现(易受白盒攻击的实现),我们使用的用语“鲁棒(robust)”指的是根据本发明的实施方式的受保护的实现。
符号
下面我们使用在参考文献[2]中描述的类似符号定义一些与椭圆曲线密码学(ECC)相关的用语和符号:
光滑的ECDSA
这里我们概述未受保护的ECDSA签名生成操作,其遵循ANSX9.62[1]的描述。
在使用ECDSA之前,必须选择特定的椭圆曲线、密码哈希函数(H)和生成器点G;该信息(有时被称为域参数)一般被认为是非秘密的。
下面给出使用ECDSA对消息签名的传统(即光滑)过程:
Figure BDA00002212287300091
仅在步骤2中使用椭圆曲线运算来计算点R;步骤3和5中的操作为普通运算模n。应注意,仅在步骤5使用私钥d。
在图3中示出该过程。如上所述的步骤1在该图中被标记为块304。类似地,如上所述的步骤2在该图中被标记为块306。应注意,对本领域技术人员显而易见的是,步骤2不包括整数乘法,而是包括椭圆曲线乘法,因为G为椭圆曲线点。在步骤2中,R被赋予(用←表示)当G使其本身增加k倍时所产生的点,在本文中用符号EC_Multiply(k,G)(EC_乘法(k,G))来表示这类椭圆曲线乘法。如上所述的步骤3被标记为块308和判断310,其包括将Rx modn的结果赋予r,其中Rx为R的x坐标,假设r为非零,否则过程返回步骤1。如图3的块312所示,步骤4包括将当哈希函数被应用于消息时所产生的值赋予e;哈希函数应用于消息被表示为H(M)。如上所述的步骤5被标记为块314和判断316,其包括将k-1(e+dr)+dmodn的结果赋予值s,导致签名S=(r,s)的输出318。
在上述签名生成过程中,实际上存在必须被保护的两个高度敏感值:
1.私钥d
2.每条消息秘密k
d必须被保护是清楚的。然而,如果k的值被泄露,则对手可从k推算出d。当哈希函数已知时,可从消息M确定e。因此,如果对手获得k,则对手可通过用以下等式对n求模,从所产生的M上的签名(r,s)获得私钥:
s=k-1(e+dr)
这里在单个等式中仅d是未知的。因此,d可被求解。这是潜在的安全问题。
因此,对执行传统DSG过程的计算设备A进行观察的对手B可通过监视对随机数生成器的调用并注意值k的选择来简单地得到私钥d。可替换地,对手B可观察在设备A上执行的指令来计算kG并由此得到k。
鲁棒的ECDSA
我们现在讨论根据本发明的实施方式的用于创建ECDSA签名生成的鲁棒实现的示例性过程。
在对手B不能观察的一些方式中,例如在离线安装阶段,根据一个实施方式,我们执行预备过程。该预备过程包括在间隔[1,n-1]中选择秘密数f。f将被用于保护私钥d。根据一个实施方式,调用两个变换过程(均涉及f)来产生具有以下值的变换的(或模糊的)密钥以及变换的(或模糊的)生成器:
Figure BDA00002212287300101
·其中对f-1计算模n
·
其中,在选择f之后
Figure BDA00002212287300103
Figure BDA00002212287300104
即可离线计算。
根据一个实施方式,在图5中示出该预备过程。在图4的流程图中,输入为已知的生成器(在此情况下为G)和私钥d。过程从选择(504)随机整数f开始,其中f在间隔[1,n-1]内。在506中通过对f的逆计算模n(表示为f-1)来确定变换的生成器
Figure BDA00002212287300105
然后执行f-1和G的椭圆曲线乘法。然后,在508中将fd modn的值赋予变换(或模糊)的密钥输出为随机整数f、变换(或模糊)的密钥
Figure BDA00002212287300107
和变换(或模糊)的生成器
Figure BDA00002212287300108
所有这三个值将被用于鲁棒ECDSA签名生成过程的实施方式中,如下文所讨论的那样。
这里是根据本发明的一个实施方式的鲁棒签名过程的基本步骤:
Figure BDA00002212287300111
从上文中可以看出,包括鲁棒ECDSA签名生成过程的实施方式利用变换的生成器
Figure BDA00002212287300112
Figure BDA00002212287300113
来替代生成器G和d并且还包括f(参见步骤5),在所述ECDSA签名生成过程中产生数字签名S=(r,s),该数字签名可由传统的ECDSA验证过程通过使用Q来验证,就像是d和生成器G实际上用于ECDSA签名生成过程一样。简言之,在步骤5中通过用ef替代e以使过程包括f。通过以这种方式在步骤5中利用f——以及回想到f用于离线实现的变换来产生
Figure BDA00002212287300114
Figure BDA00002212287300115
——所产生的签名与传统过程形成的签名完全兼容。
在图5中示出根据本发明实施方式的上述过程的流程图。如上所述的过程700的步骤1在该图中被标记为块604。类似地,如上所述的步骤2在该图中被标记为块606。应注意,对于本领域技术人员显而易见的是,由于
Figure BDA00002212287300116
为曲线上的点,所以步骤2不包括整数乘法而是包括椭圆曲线乘法。因此,R被赋予当
Figure BDA00002212287300117
使其本身增加
Figure BDA00002212287300118
倍时所产生的点。如上所述的步骤3被标记为块608和判断610,其包括将Rx modn的结果赋予值r,其中Rx为R的x坐标,假设r为非零,否则过程返回步骤1。如图6的块612所示,步骤4包括将当哈希函数H被应用于消息(由H(M)表示)时所产生的值赋予e。如上所述的步骤5被标记为块614和判断616,其包括将
Figure BDA00002212287300119
的结果赋予值s,导致签名S=(r,s)的输出618。
这种类型的签名生成产生与常规的ECDSA完全兼容的签名(即由我们的鲁棒实现创建的任何签名(r,s)也可通过光滑的实现创建)。
分析
本发明的实施方式旨在实现以下两个目的:
1.阻止攻击者能通过学习每条消息随机数
Figure BDA00002212287300121
的值来推算私钥。如上所述,如果攻击者学习了每条消息的秘密值k,则能够使用传统的DSG来从消息M及其签名(r,s)计算密钥d。如下面将阐述的那样,这并不是的情况。
2.阻止攻击者学习d。d为密钥。应注意,在没有其他形式的保护的情况下,在白盒环境下对手可能在签名算法的执行过程中观察
Figure BDA00002212287300123
的值。因此,实施方式通过对
Figure BDA00002212287300124
应用另外的数据变换来向
Figure BDA00002212287300125
增加另一层保护。然而,在以下意义中值
Figure BDA00002212287300126
本身不会泄露关于d的任何信息:假设x为
Figure BDA00002212287300127
的值。对于间隔[1,n-1]中的每个整数d都存在一个值f,使得
Figure BDA00002212287300128
以等于x(即,使f等于xd-1 modn)。因此,攻击者就不能仅使用
Figure BDA00002212287300129
的值来排除d的任何可能的值。
为了达到上述目的,似乎没有必要使用另外的资源来尝试为步骤2中R的计算增加进一步的保护。下面将该声明合理化。
考虑在步骤2中使用的三个值:R、
Figure BDA000022122873001210
假设这些值对对手已知。还假设攻击者了解G的值因为其常出现在公开可用的标准中。由于
Figure BDA000022122873001211
对手可能尝试计算f-1,因此从该等式计算出的f将与上述目的2相矛盾。然而,该计算意味着对ECDLP求解,这被假设成不可实行的。因此,我们确信对手不能从G和
Figure BDA000022122873001212
计算f。
此外,关于上述目的1,
Figure BDA000022122873001213
的知识不会以与传统ECDSA中k的知识相同的方式暴露密钥d。这是由于从和签名(r,s)计算d的任务意味着以下等式对n求模:
Figure BDA000022122873001215
然而,与传统的DSG不同,上述等式包括两个未知值:d和f(即我们有一个等式和两个未知数)。因此,即使其学习了
Figure BDA000022122873001216
因为d和f都是未知的,所以对手不能从该等式中提取d。
虽然上述实施方式以使上述过程比传统DSG更鲁棒的方式修改了DSG,上述改进的系统可通过使攻击者更难学习f而变得更鲁棒。因此,本发明的实施方式执行选择f以及以不会被B观察到的一些方式产生变换的值
Figure BDA00002212287300131
Figure BDA00002212287300132
的预备步骤。以不会被B观察到的方式执行这些步骤的一种方式为离线执行这些步骤。离线指的是从时间或空间上A都不会被B观察到,或完全在另一不同的计算设备上执行。例如,在A为智能卡或机顶盒的情况下,离线包括在所述装置发货之前。在A为个人计算机的情况下,这些步骤可在另一计算机上执行,并通过一些安全媒介提供给A。可替换地,这些步骤可通过利用安全硬件而以不会被B观察到的方式执行。
此外,在优选的实施方式中,利用另外的模糊技术使对手难于从对步骤5的计算(即
Figure BDA00002212287300133
)观察中推算出f和
Figure BDA00002212287300134
的值。根据一个实施方式,步骤5通过执行以下过程来计算。首先,我们创建两个乘法函数(其可采用使用一系列查找表进行模糊的软件例程的形式):
mult_by_f(…),mult_by_dhat(…)
根据一个实施方式包括在离线阶段构造的字方式的重新编码表,这些函数将采用多精度整数x作为输入(即32位字的数组)并分别返回xf modn和
Figure BDA00002212287300135
根据一个实施方式,这两个函数如下将被用于执行步骤5的计算:
5.1:e_f←mult_by_f(e)
5.2:dhat_r←mult_by_dhat(r)
5.3:tmp←e_f+dhat_r mod n
5.4:
Figure BDA00002212287300136
DSA
应注意,出于说明的目的,我们主要聚焦于ECDSA。然而,ECDSA和DSA密切相关。我们认为,本领域技术人员应能够容易地将上述与ECDSA签名生成相关的详细的解释和示例应用于DSA签名生成。然而,我们现在根据本发明的实施方式对该过程进行简要概括。
这里,我们概括未受保护的DSA签名生成过程,其遵循FIPS PUB186-3[3]中的描述。
在使用DSA之前,必须选择某些域参数:质数p、质数q(除以p-1)、q阶生成器g对p求模。域参数一般被认为是非秘密的。
这里是你如何使用DSA对消息签名:
Figure BDA00002212287300141
应注意,上述运算操作全部为模运算(即运算模p或运算模q)。
在上述签名生成期间,实际上必须保护的有两个高度敏感值:
1.私钥d
2.每条消息秘密k
d必须被保护是清楚的。如果k的值被泄露,则对手可通过以下等式对q求模,从k和所产生的M上的签名(r,s)获得私钥d:
s=k-1(e+dr)
鲁棒签名生成
下面描述用于创建DSA签名生成的鲁棒实现的一个实施方式。
与上述类似,以对手B不能观察的一些方式,例如在离线安装阶段,我们在间隔[1,q-1]中选择秘密数f。f将被用于保护私钥d。根据一个实施方式,调用两个变换过程(均涉及f)来产生具有值f的变换(或模糊)密钥以及变换(或模糊)生成器:
·其中对f-1计算模q
·
在选择f之后
Figure BDA00002212287300152
Figure BDA00002212287300153
即可离线计算。下面为根据本发明的实施方式的鲁棒DSA签名过程的基本步骤:
Figure BDA00002212287300154
这种类型的签名生成产生与常规的DSA完全兼容的签名(即由我们的鲁棒实现创建的任何签名(r,s)还可通过光滑的实现创建)。
进一步的保护
无论实现上述哪个实施方式,控制流变换和数据变换均可被应用于实现签名生成操作的源代码,从而使对手难以通过观察执行DSG过程的计算装置的操作来推算出敏感参数例如
Figure BDA00002212287300155
或f。图7为示出根据本发明的一个实施方式通过模糊生成签名的软件来进一步保护参数的示例性过程的流程图。因此,实现上述过程700的源代码可通过应用控制流变换702和数据变换704产生更鲁棒的实现来得到进一步的保护。
控制流变换702通过使用多个函数控制流来将给定程序的控制流映射成新的控制流形式,并包括如2004年8月17日发布的美国专利第6,779,114号中描述的示例性控制流变换,其全部内容通过引用并入本文。数据变换704包括使用数学映射函数,该映射函数将数据操作和位置转换至替换的数学空间,其示例在2003年7月15日发布的美国专利第6,594,761号、2005年1月11日发表的美国专利第6,842,862号以及2005年7月28日公开的美国专利公开第US-2005-0166191A1号中描述,这些专利的全部内容通过引用并入本文。
在另一实施方式中,为了提供对f的另一级别的保护,我们以另一种方式计算ef modn(在步骤5中所使用的)。因为值e等于输入消息M的哈希值,本发明的实施方式包括将与fmodn的乘法操作并入哈希计算。应理解,这取决于所使用的哈希函数的性质,但可假设合适的哈希函数,在上述实施方式中哈希函数H由函数Hf替代,函数Hf因此产生值
Figure BDA00002212287300161
此外,在步骤5中,用
Figure BDA00002212287300162
替代项ef,使得用
Figure BDA00002212287300163
替代
应理解,本发明可在任何给定的计算机系统上实践。在图7中用方框图示出了本发明可在其上执行的计算机系统的简化示例。该计算机系统110包括显示器112、键盘114、计算机116和外部装置118。
计算机116可包括一个或多个处理器或微处理器,例如中央处理单元(CPU)120。CPU 120执行算术运算和控制函数以执行存储于内存储器122、优选地随机存取存储器(RAM)和/或只读存储器(ROM)以及可能的辅助存储器124中的软件。辅助存储器124可例如包括大容量存储器、硬盘驱动器、软盘驱动器、磁带驱动器、光盘驱动器、程序盒式存储器和盒式存储器接口例如视频游戏装置中使用的那些、可移除的存储芯片例如EPROM或PROM等、或本领域已知的类似存储介质。辅助存储器124可物理地位于计算机116之内,或如图7所示位于计算机116之外。
计算机系统110还可包括其它类似装置以允许装载计算机程序或其它指令。这类装置可例如包括通信接口126,通信接口126允许软件和数据在计算机系统110与外部系统之间传递。通信接口126的示例可包括调制解调器、网络接口如以太网卡、串行或并行通信端口。通过通信接口126传递的软件和数据为信号形式,其可以是电信号、电磁信号和光信号或能够由通信接口126接收的其他信号。当然,可在单个计算机系统110上设置多个接口。
至计算机116的输入和来自计算机116的输出通过输入/输出(I/O)接口128进行。该I/O接口128管理显示器112、键盘114、外部装置118和计算机系统110的其他上述部件。
以这些用语来描述本发明仅出于方便的目的。对于本领域技术人员而言清楚的是,本发明可用于其他计算机或控制系统110。因此用语计算机设备旨在包括具有计算机或处理器控制的各种各样的装置,包括电话、移动电话、电视、电视机顶盒、销售点计算机、自动提款机、笔记本电脑、服务器、个人数字助理和汽车。上述计算机设备可包括另外的部件,或省略参照图7所讨论的部件中的一些。
此外,应理解,“离线”部分可在不同于执行签名操作的计算设备的计算设备上执行。此外,执行验证过程的计算设备通常与执行数字签名过程的计算设备不同,签名后的消息常通过一些媒介来传输。所以本发明的一方面提出了一种系统,其包括用于生成并传输数字签名的签名计算机设备以及用于验证该签名的验证计算机设备。此外,一个实施方式可包括用于执行选择f以及基于f产生变换密钥和变换生成器的预备步骤的另外的计算机设备。
在以上描述中,出于解释的目的,列出了很多内容来提供对本发明的实施方式的透彻理解。然而,对于本领域人员显而易见的是,这些具体内容不是实践本发明所需的。在其他示例中,以方框图的形式示出了众所周知电子结构和电路以避免使本发明不清楚。例如,具体内容并不用于说明本文所述的本发明的实施方式是否实现为软件例程、硬件电路、固件或其组合。
本发明的实施方式可被表示成存储在机器可读媒介(也称为计算机可读媒介、处理器可读媒介或具有计算机可读程序代码的计算机可用媒介)中的软件产品。机器可读媒介可以是任何合适的有形媒介,包括磁、光或电存储媒介,包括磁盘、光盘只读存储器(CD-ROM)、存储装置(易失或非易失)或类似存储机构。机器可读媒介可包含多个指令组、编码序列、配置信息或其他数据,当其执行时使处理器执行根据本发明的实施方式的方法步骤。本领域技术人员应理解,实现所述的本发明所必需的其他指令和操作也可存储在机器可读媒介上。从机器可读媒介运行的软件可与执行上述任务的电路连接。
本发明的上述实施方式旨在作为示例。本领域技术人员可对特定的实施方式进行改变、修改和更改而不背离本发明的范围,本发明的范围仅由所附的权利要求限定。

Claims (20)

1.一种保护加密密钥d不被能够在利用d的加密数字签名生成(DSG)过程的执行期间观察计算设备A的对手B获得的计算机实现方法,其中,d具有相应的加密公钥Q,Q和d均涉及n阶生成器,d存储于A上并在A上使用,所述DSG过程具有已知的利用Q的签名验证过程,所述方法包括:
a)在1至n-1的间隔中选择随机整数f;
b)基于所述生成器和f的逆对n求模产生变换的生成器;
c)通过基于f变换d产生变换的密钥
Figure FDA00002212287200011
以及
d)利用所述变换的生成器和
Figure FDA00002212287200012
替代所述生成器和d,连同包括f,在所述DSG过程中产生数字签名,所产生的数字签名能够通过使用Q的所述验证过程进行验证,就像在所述DSG过程中实际使用了d和所述生成器一样。
2.如权利要求1所述的方法,其中,所述步骤a、b和c以不能被B观察的一些方式执行,所述步骤d由A在能被B观察的情况下执行。
3.如权利要求2所述的方法,其中,所述步骤a、b和c通过离线执行以不能被B观察的一些方式执行。
4.如权利要求1至3中任一项所述的方法,其中,所述生成器为用于生成具有基数n的椭圆曲线群的椭圆曲线上的点G,其中,所述变换的生成器为所述椭圆曲线群中的另一点
Figure FDA00002212287200013
其中步骤b)包括将f的逆对n求模的结果赋予f-1,以及将使G本身增加f-1倍的结果赋予
Figure FDA00002212287200014
以及其中步骤c)包括将df modn的结果赋予
Figure FDA00002212287200015
5.如权利要求4所述的方法,其中,所述数字签名验证过程为用于对由私钥d持有者发起的对消息M的签名(r,s)进行验证的标准ECDSA数字签名验证过程,其中,所述步骤d)包括:
i)在间隔[1,n-1]中选择随机整数
Figure FDA00002212287200021
ii)将
Figure FDA00002212287200022
的结果赋予点R,其中,
Figure FDA00002212287200023
表示使椭圆曲线点
Figure FDA00002212287200024
本身增加
Figure FDA00002212287200025
倍,;
iii)将Rx modn的结果赋予r,其中Rx为R的x坐标;
iv)如果r=0,则再次从步骤i)开始,否则;
v)将消息M上的哈希操作值赋予e;
vi)计算
Figure FDA00002212287200026
的值以及将该值赋予s;
vii)如果s=0,则再次从步骤i)开始,否则;
v)输出签名(r,s)
其中,消息M上的所述签名(r,s)等同于通过使用所述私钥d的所述标准ECDSA过程生成的签名(r,s),除了实际的私钥d并没有被使用并因此在执行期间未被加载至存储器之外。
6.如权利要求1至3中任一项所述的方法,其中,所述数字签名验证过程为用于对由私钥d持有者发起的对消息M的签名(r,s)进行验证的标准DSA数字签名验证过程,所述标准DSA数字签名验证过程利用域参数p、q和g,其中,所述生成器为g并且q=n,其中所述步骤b)包括将f的逆对q求模的结果赋予f-1,以及将
Figure FDA00002212287200027
的结果赋予其中对f-1计算模q,其中步骤c)包括将df modq的结果赋予
Figure FDA00002212287200029
7.如权利要求6所述的方法,其中,所述步骤d)包括:
i)在间隔[1,n-1]中选择随机整数
Figure FDA000022122872000210
ii)将
Figure FDA000022122872000211
的结果赋予rp
iii)将rp mod q的结果赋予r;
iv)如果r=0,则再次从步骤i)开始,否则;
v)将消息M上的哈希操作值赋予e;
vi)计算
Figure FDA000022122872000212
的值以及将该值赋予s;
vii)如果s=0,则再次从步骤i)开始,否则;
v)输出签名(r,s)
其中,消息M上的所述签名(r,s)等同于通过使用所述私钥d的所述标准DSA过程生成的签名(r,s),除了私钥d实际并没有被使用并因此在步骤d的执行期间未被加载至存储器之外。
8.如权利要求5或7所述的方法,其中,步骤vi)包括利用通过使用一系列查找表模糊的软件例程来计算ef modn的值,使得f的值不被加载至存储器并因此不会在计算期间泄露。
9.如权利要求8所述的方法,其中,步骤vi)还包括利用通过使用一系列查找表模糊的软件例程来计算
Figure FDA00002212287200031
的值,使得f和
Figure FDA00002212287200032
的值均不被加载至存储器并因此不会在计算期间泄露。
10.如权利要求8或9所述的方法,其中,软件例程包括在离线阶段构造的字方式的重新编码表。
11.如权利要求5或7所述的方法,其中,哈希函数H由函数Hf替代,所述函数Hf因此产生值其中,用
Figure FDA00002212287200034
替代项ef,从而用
Figure FDA00002212287200035
替代步骤iv)中的
Figure FDA00002212287200036
12.如权利要求1至11中任一项所述的方法,还包括在执行所述方法步骤的软件上执行的控制流和数据模糊。
13.一种保护加密密钥d不被能够在利用d的加密数字签名生成(DSG)过程的执行期间观察计算设备A的对手B获得的计算机实现方法,其中,d具有相应的加密公钥Q,Q和d均涉及n阶生成器,其中,d存储于A上并且在A上使用,所述加密过程具有已知的利用Q的签名验证过程,所述方法包括:
a)在1至n-1的间隔中选择随机整数f;
b)基于所述生成器和f的逆对n求模产生变换的生成器;
c)通过基于f变换d产生变换的密钥
Figure FDA00002212287200041
以及
d)产生在机器可读媒介中实施的计算机程序产品,所述机器可读媒介存储机器可执行指令,所述机器可执行指令在由A执行时使A利用所述变换的生成器和
Figure FDA00002212287200042
替代所述生成器和d,连同添加f,在所述DSG过程中产生数字签名,所产生的数字签名能够通过使用Q的所述验证过程进行验证,就像在所述DSG过程中实际使用了d和所述生成器一样。
14.如权利要求13所述的方法,其中,所述数字签名验证过程为用于对由私钥d持有者发起的对消息M的签名(r,s)进行验证的标准ECDSA数字签名验证过程;以及
其中,所述生成器为用于生成具有基数n的椭圆曲线群的椭圆曲线上的点G,其中,所述变换的生成器为所述椭圆曲线群中的另一点
Figure FDA00002212287200043
其中步骤b)包括将f的逆对n求模的结果赋予f-1,以及将使G本身增加f-1倍的结果赋予
Figure FDA00002212287200044
以及其中步骤c)包括将dfmodn的结果赋予
15.如权利要求13所述的方法,其中,所述数字签名验证过程为用于对由私钥d持有者发起的对消息M的签名(r,s)进行验证的标准DSA数字签名验证过程,所述标准DSA数字签名验证过程利用域参数p、q和g,其中,所述生成器为g并且q=n,其中所述步骤b)包括将f的逆对q求模的结果赋予f-1,以及将
Figure FDA00002212287200046
的结果赋予
Figure FDA00002212287200047
其中对f-1计算模q,其中步骤c)包括将df modq的结果赋予
16.一种包括有形计算机可读媒介的计算机程序产品,所述有形计算机可读媒介存储计算机可读指令,所述计算机可读指令在由处理器执行时使所述处理器实现保护加密密钥d不被能够在利用d的加密过程的执行期间观察计算设备A的对手B获得的方法,其中,d具有相应的加密公钥Q,Q和d均涉及n阶生成器,d存储于A上并在A上使用,所述加密过程具有已知的利用Q的表达过程,所述计算机可读指令包括:
a)用于在1至n-1的间隔中选择随机整数f的指令;
b)用于基于f的逆对n求模来计算所述生成器的变换的生成器值的指令;
c)用于基于f计算d的变换值
Figure FDA00002212287200051
的指令;以及
d)以安全的方式存储f的值,所述变换的生成器和用于变换的加密过程的后续使用,所述变换的加密过程使用f、所述变换的生成器和来产生数字签名,所产生的数字签名能够通过使用Q的所述表达过程进行验证,就像在所述加密过程中实际使用了d和所述生成器一样。
17.一种包括有形计算机可读媒介的计算机程序产品,所述有形计算机可读媒介存储计算机可读指令,所述计算机可读指令在由计算设备A执行时使所述计算设备在消息M上产生数字签名(r,s),所述数字签名可通过用于对据称由私钥d持有者发起的对消息M的签名(r,s)进行验证的标准ECDSA数字签名验证过程进行验证,其中,所述私钥d具有相应的加密公钥Q,Q和d均涉及n阶生成器,所述签名产生并且保护d不被能够在所述计算机可读指令的执行期间观察A的对手所获得,所述计算机可读指令包括:
i)用于在间隔[1,n-1]中选择随机整数
Figure FDA00002212287200054
的指令;
ii)用于将
Figure FDA00002212287200055
的结果赋予点R的指令,其中,
Figure FDA00002212287200056
表示使椭圆曲线点
Figure FDA00002212287200057
本身增加
Figure FDA00002212287200058
倍,所述椭圆曲线点
Figure FDA00002212287200059
已通过使用先前在1至n-1的间隔中选择的随机整数f基于所述生成器G的变换被预先生成;
iii)用于将Rx mod n的结果赋予r的指令,其中Rx为R的x坐标;
iv)用于如果r=0则再次回到i)的指令,否则;
v)用于将消息M上的哈希操作值赋予e的指令;
vi)用于计算
Figure FDA000022122872000510
的值以及将该值赋予s的指令,其中
Figure FDA000022122872000511
是基于f被预先确定的d的变换值;
vii)用于如果s=0则再次回到i)的指令,否则;
v)用于将数字签名的消息M连同签名(r,s)传输至第三方用于验证的指令;以及
其中,所述消息M上的所述签名(r,s)等同于由标准ECDSA过程使用私钥d生成的签名(r,s),除了实际的私钥d并没有被使用并因此在执行期间未被加载至存储器之外。
18.一种包括有形计算机可读媒介的计算机产品,所述有形计算机可读媒介存储计算机可读指令,所述计算机可读指令在由计算设备A执行时使所述计算设备使用离线变换的值进行签名从而在消息M上产生数字签名(r,s),如本文所公开的那样。
19.通过如本文所教导或所要求保护的任何方法和系统实现的机顶盒。
20.通过如本文所教导或所要求保护的任何方法和系统实现的计算机设备。
CN201080065944.7A 2010-03-31 2010-03-31 用于保护密码资产免受白盒攻击的系统和方法 Active CN103081398B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CA2010/000486 WO2011120125A1 (en) 2010-03-31 2010-03-31 System and method for protecting cryptographic assets from a white-box attack

Publications (2)

Publication Number Publication Date
CN103081398A true CN103081398A (zh) 2013-05-01
CN103081398B CN103081398B (zh) 2016-04-06

Family

ID=44711254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080065944.7A Active CN103081398B (zh) 2010-03-31 2010-03-31 用于保护密码资产免受白盒攻击的系统和方法

Country Status (7)

Country Link
US (1) US9009481B2 (zh)
EP (1) EP2553866B1 (zh)
JP (1) JP5697180B2 (zh)
KR (1) KR101712850B1 (zh)
CN (1) CN103081398B (zh)
CA (1) CA2792787C (zh)
WO (1) WO2011120125A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721134A (zh) * 2014-12-18 2016-06-29 恩智浦有限公司 使用带有多个外部编码的单个白盒实现
CN106712965A (zh) * 2017-01-17 2017-05-24 数安时代科技股份有限公司 数字签名方法、装置以及密码设备
CN109478279A (zh) * 2016-07-29 2019-03-15 区块链控股有限公司 区块链实现的方法和系统
CN109495270A (zh) * 2017-09-13 2019-03-19 恩智浦有限公司 数字签名生成中的临时乱数到消息的结合
CN112002210A (zh) * 2014-11-10 2020-11-27 捷德移动安全有限责任公司 用于测试并且加固软件应用的方法
CN113498591A (zh) * 2018-12-21 2021-10-12 01公报实验室公司 一种密码系统和方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013116916A1 (en) 2012-02-09 2013-08-15 Irdeto Canada Corporation System and method for generating and protecting cryptographic keys
EP2634993B1 (en) * 2012-03-01 2017-01-11 Certicom Corp. Devices and methods for connecting client devices to a network
JP6366595B2 (ja) * 2012-11-12 2018-08-01 クリプトグラフィ リサーチ, インコーポレイテッド 耐グリッチ性暗号離散対数ベースの署名のための方法及びシステム
SG10201405852QA (en) 2014-09-18 2016-04-28 Huawei Internat Pte Ltd Encryption function and decryption function generating method, encryption and decryption method and related apparatuses
GB201418815D0 (en) * 2014-10-22 2014-12-03 Irdeto Bv Providing access to content
EP3340094B1 (en) * 2016-12-22 2021-04-28 Mastercard International Incorporated Method for renewal of cryptographic whiteboxes under binding of new public key and old identifier
FR3063857B1 (fr) * 2017-03-08 2020-02-14 Safran Identity & Security Procede de signature electronique d'un document avec une cle secrete predeterminee
EP3376705A1 (en) * 2017-03-17 2018-09-19 Koninklijke Philips N.V. Elliptic curve point multiplication device and method in a white-box context
GB201707168D0 (en) * 2017-05-05 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
FR3066845B1 (fr) * 2017-05-24 2019-06-14 Idemia Identity And Security Procede de signature electronique d'un document avec une cle secrete predeterminee
CN109104272A (zh) * 2017-06-20 2018-12-28 上海策链信息科技有限公司 私钥保存方法、系统及计算机可读存储介质
EP3493460A1 (en) * 2017-12-01 2019-06-05 Gemalto Sa Cryptography device having secure provision of random number sequences
EP3493456A1 (en) 2017-12-01 2019-06-05 Gemalto Sa Cryptography device having improved security against side-channel attacks
EP3713148B1 (en) 2019-03-22 2022-08-03 Giesecke+Devrient Mobile Security GmbH White-box ecc implementation
WO2021025631A1 (en) * 2019-08-05 2021-02-11 Securify Bilisim Teknolojileri Ve Guvenligi Egt. Dan. San. Ve Tic. Ltd. Sti. A method for generating digital signatures
EP4154142A4 (en) * 2020-05-19 2023-10-25 Visa International Service Association SYSTEMS AND METHODS FOR BINDING A WHITEBOX DEVICE
CN114338039A (zh) * 2021-12-28 2022-04-12 上海市数字证书认证中心有限公司 白盒处理后的椭圆曲线签名方法和系统
FR3133251B1 (fr) * 2022-03-03 2024-03-22 Idemia France Procédé de signature cryptographique d’une donnée, dispositif électronique et programme d’ordinateur associés
CN115473633B (zh) * 2022-08-24 2024-05-31 武汉大学 一种多方协同产生sm2数字签名的方法及装置
WO2024072529A1 (en) * 2022-09-30 2024-04-04 Microsoft Technology Licensing, Llc Low-cost, high-security solutions for digital signature algorithm

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1534922A (zh) * 1998-06-23 2004-10-06 生成加密签名以及与产品副本一起使用此类签名的技术
US20050002532A1 (en) * 2002-01-30 2005-01-06 Yongxin Zhou System and method of hiding cryptographic private keys
US7397916B2 (en) * 2000-12-08 2008-07-08 Cloakware Corporation System and method for protecting computer software from a white box attack
CN101547099A (zh) * 2009-05-07 2009-09-30 张键红 基于椭圆曲线的自认证签名方法与装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU7957998A (en) 1997-06-09 1999-01-25 Intertrust, Incorporated Obfuscation techniques for enhancing software security
US7599491B2 (en) * 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
US6594761B1 (en) 1999-06-09 2003-07-15 Cloakware Corporation Tamper resistant software encoding
US6779114B1 (en) 1999-08-19 2004-08-17 Cloakware Corporation Tamper resistant software-control flow encoding
AU762650B2 (en) 1999-09-29 2003-07-03 Hitachi Limited Device, program or system for processing secret information
US7020778B1 (en) 2000-01-21 2006-03-28 Sonera Smarttrust Oy Method for issuing an electronic identity
JP2003098962A (ja) 2001-09-20 2003-04-04 Hitachi Ltd 楕円曲線スカラー倍計算方法及び装置並びに記録媒体
JP3676280B2 (ja) 2001-10-16 2005-07-27 株式会社エヌ・ティ・ティ・データ 電子署名装置およびicカード、ならびにその電子署名プログラム
JP2004253950A (ja) 2003-02-19 2004-09-09 Toyo Commun Equip Co Ltd 事前計算による電子署名高速生成方法および装置
US7966499B2 (en) 2004-01-28 2011-06-21 Irdeto Canada Corporation System and method for obscuring bit-wise and two's complement integer computations in software
KR101298562B1 (ko) * 2004-07-23 2013-08-22 데이터 시큐어리티 시스템즈 솔루션스 피티이 엘티디 일회용 사설키를 사용하여 디지털 서명을 구현하기 위한시스템 및 방법
DE102005024609A1 (de) * 2005-05-25 2006-11-30 Siemens Ag Bestimmung einer modularen Inversen
CA2542556C (en) 2005-06-03 2014-09-16 Tata Consultancy Services Limited An authentication system executing an elliptic curve digital signature cryptographic process
US8280039B2 (en) 2005-12-28 2012-10-02 Panasonic Corporation Signature generating device, signature generating method and signature generating program
SG174833A1 (en) * 2006-11-15 2011-10-28 Certicom Corp Implicit certificate verification
US8165286B2 (en) 2008-04-02 2012-04-24 Apple Inc. Combination white box/black box cryptographic processes and apparatus
JP5446678B2 (ja) 2009-09-29 2014-03-19 富士通株式会社 楕円曲線暗号演算装置及び方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1534922A (zh) * 1998-06-23 2004-10-06 生成加密签名以及与产品副本一起使用此类签名的技术
US7397916B2 (en) * 2000-12-08 2008-07-08 Cloakware Corporation System and method for protecting computer software from a white box attack
US20050002532A1 (en) * 2002-01-30 2005-01-06 Yongxin Zhou System and method of hiding cryptographic private keys
CN101547099A (zh) * 2009-05-07 2009-09-30 张键红 基于椭圆曲线的自认证签名方法与装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112002210A (zh) * 2014-11-10 2020-11-27 捷德移动安全有限责任公司 用于测试并且加固软件应用的方法
CN112002210B (zh) * 2014-11-10 2024-05-31 捷德移动安全有限责任公司 用于测试并且加固软件应用的方法
CN105721134A (zh) * 2014-12-18 2016-06-29 恩智浦有限公司 使用带有多个外部编码的单个白盒实现
CN105721134B (zh) * 2014-12-18 2019-07-23 恩智浦有限公司 使用带有多个外部编码的单个白盒实现
CN109478279A (zh) * 2016-07-29 2019-03-15 区块链控股有限公司 区块链实现的方法和系统
CN109478279B (zh) * 2016-07-29 2023-11-24 区块链控股有限公司 区块链实现的方法和系统
CN106712965A (zh) * 2017-01-17 2017-05-24 数安时代科技股份有限公司 数字签名方法、装置以及密码设备
CN106712965B (zh) * 2017-01-17 2020-02-18 数安时代科技股份有限公司 数字签名方法、装置以及密码设备
CN109495270A (zh) * 2017-09-13 2019-03-19 恩智浦有限公司 数字签名生成中的临时乱数到消息的结合
CN113498591A (zh) * 2018-12-21 2021-10-12 01公报实验室公司 一种密码系统和方法

Also Published As

Publication number Publication date
US9009481B2 (en) 2015-04-14
WO2011120125A1 (en) 2011-10-06
US20130024699A1 (en) 2013-01-24
KR20130024897A (ko) 2013-03-08
EP2553866A1 (en) 2013-02-06
CA2792787C (en) 2017-07-25
JP5697180B2 (ja) 2015-04-08
CN103081398B (zh) 2016-04-06
EP2553866A4 (en) 2017-06-28
EP2553866B1 (en) 2018-11-21
KR101712850B1 (ko) 2017-03-07
CA2792787A1 (en) 2011-10-06
JP2013524263A (ja) 2013-06-17

Similar Documents

Publication Publication Date Title
CN103081398B (zh) 用于保护密码资产免受白盒攻击的系统和方法
US11233659B2 (en) Method of RSA signature or decryption protected using a homomorphic encryption
KR101098701B1 (ko) 암호체계의 설계를 위한 아이소지니의 사용
CN107968710B (zh) Sm9数字签名分离交互生成方法及系统
JP2013539295A (ja) メッセージ復元を伴うデジタル署名の認証された暗号化
CN109818752B (zh) 信用评分生成方法、装置、计算机设备和存储介质
CN116346328A (zh) 一种数字签名方法、系统、设备及计算机可读存储介质
Hwang et al. A Lightweight Certificate-Based Aggregate Signature Scheme Providing Key Insulation.
WO2016193731A1 (en) Authentication methods, systems, devices, servers and computer program products
EP3166013B1 (en) Modular exponentiation using randomized addition chains
Wu et al. A publicly verifiable PCAE scheme for confidential applications with proxy delegation
KR100953716B1 (ko) Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체
KR101112570B1 (ko) 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체
KR20090080842A (ko) Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체
WO2011033642A1 (ja) 署名生成装置及び署名検証装置
Wang Signer‐admissible strong designated verifier signature from bilinear pairings
JP2004222332A (ja) ユーザが電子商取引/情報サービス提供者の正当性をチェックできるようにする方法
Tai et al. Weak-keys in public key cryptosystems based on discrete logarithms
Kaur et al. Survey of Security Algorithms in Cloud
Shingari et al. Achieving data integrity by forming the digital signature using RSA and SHA-1 algorithm
KR101259934B1 (ko) Rsa 암호 알고리즘 교육을 위한 학습 시스템 및 자가학습 방법
Yun et al. The convertible undeniable multi-signature scheme suitable for digital copyright protection
Yoon et al. Vulnerability of user identification and key agreement protocol with user anonymity
Yoon et al. Robust User Password Change Scheme based on the Elliptic Curve Cryptosystem
Nayak Review on multisignature schemes based upon DLP

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: IRDETO B. V.

Free format text: FORMER OWNER: IRDETO CANADA CORP.

Effective date: 20150521

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150521

Address after: Holland Hoofddorp

Applicant after: Ai Dide Technology Co., Ltd.

Address before: Ontario, Canada

Applicant before: Irdeto Canada Corporation

C14 Grant of patent or utility model
GR01 Patent grant