CN109726565B - 在抗泄漏原语中使用白盒 - Google Patents
在抗泄漏原语中使用白盒 Download PDFInfo
- Publication number
- CN109726565B CN109726565B CN201811265684.2A CN201811265684A CN109726565B CN 109726565 B CN109726565 B CN 109726565B CN 201811265684 A CN201811265684 A CN 201811265684A CN 109726565 B CN109726565 B CN 109726565B
- Authority
- CN
- China
- Prior art keywords
- input
- box
- white
- output
- encryption
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 37
- 230000006870 function Effects 0.000 claims description 60
- 238000004891 communication Methods 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 description 18
- 238000004590 computer program Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 6
- 238000013478 data encryption standard Methods 0.000 description 6
- 241001074639 Eucalyptus albens Species 0.000 description 5
- 230000000873 masking effect Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 229920002430 Fibre-reinforced plastic Polymers 0.000 description 2
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000011151 fibre-reinforced plastic Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 208000033986 Device capturing issue Diseases 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种用于在N轮次中使用加密函数的白盒实施方案来实施伪随机函数(pseudo‑random function;PRF)的方法,方法包括:接收PRF的输入;接收第一轮次中的加密密钥;使用加密函数的白盒实施方案和加密密钥对输入消息进行加密以产生第一输出,输入消息是基于输入的一部分的M个可能输入消息中的一个;对于每一后续轮次:使用加密函数的白盒实施方案和第i个加密密钥对另外的输入消息进行加密以产生第i个输出,另外的输入消息是基于输入的另一部分的M个可能输入消息中的一个,其中第i个加密密钥是来自前一轮次的输出,其中加密函数的白盒实施方案仅产生用于M个可能输入消息的正确输出且产生用于不为M个可能输入消息中的一个的输入消息的非正确输出。
Description
技术领域
本文中所公开的各种示例性实施例大体上涉及在抗泄漏原语中使用白盒实施方案。
背景技术
安全软件的广泛使用已增加了对力图使篡改所述软件复杂化的安全、防篡改软件的需求。存在各种用于增加软件应用的防篡改性的技术。这些技术中的大多数是基于通过在软件应用的控制和数据路径两者中添加随机性和复杂性的遮罩来隐藏应用程序的嵌入知识。这背后的想法是仅仅通过代码检测来提取信息变得更难。因而更难找到例如处理对安全应用程序的访问和许可控制的代码并因此改变代码。
如本文中所使用,白盒加密包括一种安全软件应用程序,其在攻击者对运行白盒加密软件的***具有完全控制的环境中执行加密函数。因此,攻击者可修改输入和输出、追踪软件操作、取样和监测软件在任何时间所使用的存储器,甚至修改软件。因此,需要以防止安全功能性中所使用机密信息公开的方式执行安全功能。白盒加密函数可以各种方式实施。这些方法包括:对软件代码进行混淆;使用对机密信息的使用进行混淆的复杂数学函数;使用查找表;使用有限状态机;或实施加密函数但隐藏那些安全功能所需的机密信息的任何其它方法。白盒实施方案可还包含组件,所述组件包括防调试和防篡改特性。
相对于硬件实施方案,偏好加密算法的软件实施方案存在若干原因。这可能是例如,因为软件解决方案在密钥泄露的情况下可再生,因为其具有较低成本,或因为应用程序开发者对其中实施白盒***的硬件没有影响。
发明内容
各种示例性实施例的简要概述在下文呈现。在以下概述中可做出一些简化和省略,其旨在突出并介绍各种示例性实施例的一些方面,但不限制本发明的范围。足以允许本领域的普通技术人员作出且使用本发明概念的示例性实施例的详细描述将在稍后章节中呈现。
各种实施例涉及一种用于在N轮次中使用加密函数的白盒实施方案来实施伪随机函数(PRF)的方法,所述方法包括:接收PRF的输入;接收第一轮次中的加密密钥;使用加密函数的白盒实施方案和加密密钥对输入消息进行加密以产生第一输出,所述输入消息是基于输入的一部分的M个可能输入消息中的一个;对于每一后续轮次:使用加密函数的所述白盒实施方案和第i个加密密钥对另外的输入消息进行加密以产生第i个输出,所述另外的输入消息是基于输入的另一部分的M个可能输入消息中的一个,其中所述第i个加密密钥是来自前一轮次的输出,其中所述加密函数的白盒实施方案仅产生用于M个可能输入消息的正确输出,且产生用于不为M个可能输入消息中的一个的输入消息的非正确输出。
另外的各种实施例涉及一种利用在N轮次中使用加密函数的白盒实施方案来实施伪随机函数(PRF)的指令所编码的非暂时性机器可读存储介质,所述指令包括:用于接收PRF的输入的指令;用于接收第一轮次中的加密密钥的指令;用于使用加密函数的白盒实施方案和加密密钥对输入消息进行加密以产生第一输出的指令,所述输入消息是基于输入的一部分的M个可能输入消息中的一个;对于每一后续轮次:用于使用加密函数的白盒实施方案和第i个加密密钥对另外的输入消息进行加密以产生第i个输出的指令,所述另外的输入消息是基于输入的另一部分的M个可输入消息中的一个,其中所述第i个加密密钥是来自前一轮次的输出,其中所述加密函数的白盒实施方案仅产生用于M个可能输入消息的正确输出且产生用于不为M个可能输入消息中的一个的输入消息的非正确输出。
另外的各种实施例涉及一种在N轮次中使用加密函数的白盒实施方案的伪随机函数(PRF)装置,所述装置包括:存储器;以及与存储器通信的处理器,所述处理器配置成:接收PRF的输入;接收第一轮次中的加密密钥;使用加密函数的白盒实施方案和加密密钥对输入消息进行加密以产生第一输出,所述输入消息是基于输入的一部分的M个可能输入消息中的一个;对于每一后续轮次:使用加密函数的白盒实施方案和第i个加密密钥对另外的输入消息进行加密以产生第i个输出,所述另外的输入消息是基于输入的另一部分的M个可能输入消息中的一个,其中所述第i个加密密钥是来自前一轮次的输出,其中所述加密函数的白盒实施方案仅产生用于M个可能输入消息的正确输出,且产生用于不为M个可能输入消息中的一个的输入消息的非正确输出。
描述各种实施例,其中加密函数是AES。
描述各种实施例,其中加密函数的白盒实施方案使用置换盒(S盒),且其中用非正确值置换与不为M个可能输入消息中的一个的输入消息相关联的S盒的条目。
描述各种实施例,其中加密函数的白盒实施方案的非正确输出没有用于不为M个可能输入消息中的一个的输入消息的输出。
描述各种实施例,其中加密函数的白盒实施方案使用置换盒(S盒),且其中将与不为M个可能输入消息中的一个的输入消息相关联的S盒的条目从S盒去除。
附图说明
为了更好地理解各种示例性实施例,做出对随附图式的参考,其中:
图1示出实施PRF的加密链;
图2示出其中可增加每次加密的明文数目以便减少迭代的次数的实施例;
图3描绘用于实施PRF的两层方法的这类第一层;
图4示出计算一轮AES的输出字节的查找表实施方案;以及
图5和6示出到对图4的各种步骤应用编码,其中将计算拆分成两个半字节以执行所述计算。
为了便于理解,相同的附图标号已用于指代具有大体上相同或类似结构和/或大体上相同或类似功能的元件。
具体实施方式
描述和图式说明本发明的原理。因而将了解,本领域的技术人员将能够设计各种布置,尽管本文中未明确地描述或示出所述布置,但其体现本发明的原理且包括在本发明范围内。此外,本文中所例举的所有例子主要明确地旨在用于教学目的以辅助读者理解本发明的原理以及由发明人所提供的概念,从而深化所属领域,且所有例子不应解释为限于这类特定例举的例子和条件。另外,如本文中所使用,术语“或”指非排他性或(即,和/或)除非另外指明(例如“否则”或“或在替代方案中”)。并且,本文中所描述的各种实施例不必相互排他,因为一些实施例可与一个或多个其它实施例组合以形成新的实施例。
设计加密算法(如AES和DES)以便在黑盒攻击模型中确保安全。这意味着假设攻击者最多具有对算法的输入/输出的访问。在攻击者具有对实施加密算法的装置的访问的情况下,这种攻击模型并不是很实际。攻击者可例如窃取装置,通过因特网对其远程地访问,或诱使装置所有者在其上安装恶意软件。甚至可以是装置所有者是攻击者的情况,如在许多DRM应用中。在这些情况下,攻击者可能试图攻击加密实施方案的实施方案。在灰盒攻击模型中,我们假设攻击者对这一实施方案仅具有受限访问。也就是说,他可以观测如功率消耗和定时的边信道信息,并且他可能将一些错误引入计算中。这种攻击模型是(例如)智能卡的实际模型。
甚至更强的攻击模型是白盒模型。此处,假设攻击者具有对实施方案具有完全访问和完全控制。攻击者可(例如)观测中间结果并随意将其改变。如果将算法实施于在开放式应用程序处理器上运行的软件中,那么白盒攻击模型便是一种实际的模型。一个例子是使用主机卡仿真(Host Card Emulation;HCE)在移动电话上运行的付费应用程序。我们将白盒实施方案称为旨在向白盒攻击者隐藏密钥的加密算法的软件实施方案。
众所周知,用于在灰盒场景中提取密钥的强有力的方法是收集算法的多次执行的功率消耗信息且对其执行分析。这些攻击的例子是差分功耗分析(Differential PowerAnalysis;DPA)和相关功耗分析(Correlation Power Analysis;CPA)。可通过经由例如掩蔽和添加噪声来强化实施方案,从而保护免受这些攻击。可替代地,可以攻击者不能收集到足够迹线以成功引发攻击的方式来使用漏泄实施方案。在由Goldreich、Goldwasser和Micali限定的伪随机函数(PRF)中采用这种方法。在这种方法中,实施加密链,其中每一加密可仅具有两个可能的明文作为输入。图1示出实施PRF的加密链。更精确地,其限定由密钥k索引且在如下n位数x上评估的伪随机函数Fk(x)。将输入x拆分成n位,且对于每一i(其中i=1,2,...,n),我们限定2个明文和/>PRF包括n次迭代。在第一次迭代中,依据x中的第一位是0还是1,应用具有密钥k且具有明文/>1201或/>1251的加密算法E 110,如AES。在迭代i>1中,再次应用E,但密钥115现在由在迭代i-1中所计算的密文给出。依据x的位i是否等于0或1而再次从/>120i或/>125i中选择明文。将第n次迭代的结果限定为Fk(x)的结果。
已表明,在差分功耗分析(DPA)和选择明文分析(CPA)中用以从功率迹线中提取密钥的分析技术对于从白盒实施方案中提取密钥也非常有效。此处,其并不使用执行的功率迹线,而是包含在算法的执行上的精确、无噪声信息的迹线。这种信息可以是在执行期间的中间值、堆栈值或所访问的地址。对于DPA和CPA,设计者也可试图强化白盒实施方案以免受这些攻击。然而,也可在协议层级上对这些攻击进行计数,如图1中所描绘。本文中所公开的实施例描述可如何进行这种计数。
应注意,将图1的方法直接应用于白盒内容中并不起作用。也就是说,先前所公开的防DCA攻击的实施方案并非仅通过将图1中的所有加密由白盒实施方案置换所得。原因在于,加密算法在灰盒环境中仅应用于有效输入,而在白盒环境中,攻击者能够用任何输入(包括无效输入)馈入加密算法。以此方式,攻击者仍能够收集充足迹线来引发成功的攻击。
用于攻击白盒实施方案的强有力的方法是分析对计算迹线的收集,其中计算迹线含有白盒攻击者可从执行中提取的信息。例子是中间值、堆栈值或存储地址。本文中所公开的实施例描述一种用于应对这类型攻击的方法。
为了保护免受DCA类攻击,可在抗泄漏建构中使用白盒实施方案,其中所述实施方案仅在极有限数量的输入上运行。这种建构的例子在图1中给出。然而,如果直接实施这种方法,那么这并不提供足够安全性。尽管对于适当用途,所述特性对于给定起始密钥k成立,但白盒仅应用于有限数量的所选输入,白盒攻击者可改变此选择以便获得足够不同计算迹线以成功引发攻击。
为解决这一问题,本文中所描述的实施例在每一迭代i中使用块密文E的白盒实施方案WBi,所述方案仅计算子集中明文而非完全域GF(2n)的正确结果,其中:
·Vi至少含有可作为白盒实施方案的输入给出的明文的所选子集Pi。对于图1的PRF,这意味着
·Vi较小-优选地,|Pi|=|Vi|。如果|Pi|<|Vi|,那么优选地,子集Vi-Pi便使得攻击者不容易猜到其元素。注意,来自Vi的任何元素都为DCA类攻击者给出候选计算迹线。
·如果明文在Vi之外,那么白盒实施方案便返回非正确值,或其完全不对值进行计算。在后一种情况下,尤其优选的是|Vi|接近于|Pi|,这是因为攻击者可随后易于检查他是否拥有Vi中他可以用于获得计算迹线的元素。
代替在每一迭代中使用白盒实施方案,白盒实施方案的使用可限于迭代的子集。然而,至少第一次迭代应使用白盒实施方案。在第一次迭代之后,白盒实施方案将使其使得密钥能够被改变。这可以例如通过将白盒实施方案与密钥调度算法的白盒实施方案合并来进行。
在相关发明Michiels等人的美国专利第9,363,244号中,也提出为用户提供对消息空间的子集仅正确地起作用的白盒实施方案,所述专利出于所有目的如同充分地并入本文中而以引用的方式并入本文中。然而,此处,其用于分离的白盒实施方案中以使用单个密钥实现多个授权权利(谁可以访问什么)。此处,其用于一起形成抗泄漏PRF的白盒实施方案链。美国专利第9,363,244号的实施例将不会自动地抗DCA,这是因为如果现场没有其它对策,那么用户可加密/解密的消息空间便含有典型足够的消息来引发DCA攻击。
已提出针对图1的结构的若干变型。举例来说,图2示出其中可增加每次加密的明文数目以便减少迭代的次数的实施例。举例来说,每一阶段可具有与来自前述轮次的密钥的不同值一起使用的16个不同的明文。也可能运用两层方法,其中加密的第一层计算加密的第二层的明文。图3描绘用于实施PRF的两层方法的这类第一层。在图2中,每一迭代使用2m个明文和m位消息来指示2m个明文中的哪一个在迭代中加密。此外,第一次加密得到密钥作为输入。现在,图3示出用于导出2^m个明文(在所有迭代中再使用)以及用作图2中的输入的密钥的可能算法。方法如下。在每一迭代中,执行两个加密305,一个具有明文消息0 325且一个具有明文消息1 330。两个加密在第一次迭代中以主密钥k作为密钥。迭代i>1使用加密的输出,其中以来自迭代i-1的输入0作为两个加密的密钥。在图2的LRP中使用的明文是以1作为输入消息的加密的输出320i。也就是说,具有迭代i的输入1的加密给出第i个明文320i。具有输入1的最后一个加密的输出k′315用作图2的LRP的密钥。从而,通过改变主密钥,其维持图3的加密仅在两种可能的输入上操作的情况。然而,这对于图2中的加密不再真实,这是因为通过改变主密钥而显著改变图3的输出320i。这隐含如果本文中描述的用于实施LRP的实施例待应用于此2阶方法,那么其将仅应用于第一阶段(即图3)。
对于图2和图3的变型两者,本文中所描述的实施例可用以产生防DCA白盒实施方案。然而,在图3的变型中,本文中所描述的实施例仅应用于第一层中的加密。
在以下论文中提出针对高级加密标准(AES)和数据加密标准(DES)的白盒实施方案的基于表的方法:由Stanley Chow、Philip Eisen、Harold Johnson和Paul C.VanOorschot在2002年8月15-16日在加拿大纽芬兰岛圣约翰SAC 2002第9年度“选定区域的加密术”国际研讨会(Selected Areas in Cryptography:9th Annual InternationalWorkshop,SAC2002)的“White-Box Crytography and an AES Implementation(白盒加密术和AES实施方案)”,所述论文在下文中称为“Chow 1”;以及由Stanley Chow、Phil Eisen、Harold Johnson和Paul C.Van Oorschot在2002年11月18日在美国华盛顿特区数字权限管理:DRM 2002 ACM CCS-9研讨会(Digital Rights Management:ACM CCS-9 Workshop,DRM2002)的“A White-Box DES Implementation for DRM Applications(用于DRM应用的白盒DES实施方案)”,所述论文在下文中称为“Chow 2”。Chow 1和Chow 2公开了使用基于表的方法,通过将随机双映射编码表与通过将加密边界推送到包括应用中而延伸加密边界相组合来隐藏加密密钥的方法。
白盒实施方案可使用多个基本块来实施。多个基本块为互连的,在这个意义上,一些块针对先前块中的一个或多个的输出来构建。基本块可例如作为计算机芯片在硬件中实施。基本块可使用开关板、状态机或用于在计算机硬件中实施功能的任何其它合适的建构。基本块也可实施在运行于通用计算机芯片(例如,微处理器)上的软件中。举例来说,基本块可使用多个计算机指令,包括算术指令,它们一起实施基本块的功能性。可在软硬件中使用的基本块的广泛使用实施方案是查找表。举例来说,Chow 1和Chow 2采用这种方法来实施AES和DES块密文。查找表实施方案包括列出可能的输入值、输出值的列表。查找表中的输入值可以是明确的。在所述情况下,通过在输入值的列表中搜索特定输入,查找表实施方案可以将特定输入映射到特定输出。当发现特定输入时,也会接着发现特定输出。举例来说,特定输出可存储在特定输入旁边。优选地,输入值未明确存储,而仅是隐含存储。举例来说,如果可能的输入是(例如数字或位串的)连续范围,那么查找表可限于存储输出值的列表。举例来说,特定输入数字可映射到存储在由所述数字所指示的位置处的特定输出。另外,有限状态机或代码混淆可用以实施白盒实施方案。
举例来说,通过计算其可能输入的函数的输出值并在列表中存储所述输出,可产生函数的查找表。如果函数取决于多个输入,那么便可计算并存储多个输入的所有可能组合的输出。查找表尤其适合于实施非线性函数,所述非线性函数以无规律方式将输入映射到输出。通过将固定混淆输入编码和固定输出编码应用于白盒实施方案的查找表中的一个或多个,可另外对所述白盒实施方案进行另外混淆,如下文所解释。随后,充分预评估应用固定混淆输入编码和输出编码的结果。使用此技术,查找表将由采用相同维度的混淆查找表替代,其采用相同数量的输入位并产生相同数量的输出位。用于这类混淆中的输入编码和输出编码在最终的白盒实施方案中是不明确的。
基本块的网络被布置成在向其呈现输入消息时计算输出消息。通常,通过数个基本输入块对输入消息进行操作。数个另外的基本块可从基本输入块中的一个或多个提取输入和/或从其输入提取。又另外的基本块可以采用输入消息、基本输入块的输出以及另外基本块的输出的任何组合的输入。最后,基本出口块的一些集合(即至少一个)作为全部或部分输出消息产生。以此方式,显现共同计算从输入消息到输出消息的映射的基本块网络。
所使用的密钥可以是加密密钥,并且可含有足够的熵来承受预见的强行攻击。应注意,在白盒实施方案中,密钥通常并不明确地存在于实施方案中。这将降低通过检测实施方案发现密钥的风险。通常,该密钥仅隐含存在。在加密***中隐藏密钥的各种方式是已知的。通常,至少使用局部评估的方法,其中,需要密钥输入的基本块被评估为到目前为止其并不取决于输入消息。举例来说,其中输入值、不取决于输入消息的掩蔽值(例如,来自置换盒(S盒)的值),以及需要进行异或运算(XORed)的密钥值的基本运算可以通过对密钥值和掩蔽值一起预先进行异或运算来进行部分评估。以此方式,运算仍然取决于密钥值,尽管所述密钥值不明确存在于实施方案中。实际上,仅有在密钥值与掩蔽值之间的异或存在于实施方案中。注意,隐藏密钥的更复杂的方式和/或另外的方式与本发明的实施例兼容。
即使白盒实施方案实现了其完美隐藏密钥的目标,但这仍留给攻击者盗用密钥功能性的选择。举例来说,他可以将白盒实施方案剥离到含有应用之外并在其内容之外使用。此问题已由Chow等人在其对白盒加密术的第一份公开案中指出。为了处理此问题,其引入外部编码。这意味着替代实施加密算法Enc,白盒实施方案实施函数也就是说,假设输入是由F编码且替代直接对Enc进行计算,其计算其中将输出编码G至于其顶部的此输出。对输入的编码和对输出的解码在编程中的其他处进行。从而,在已知编码函数F和G的情况下,将白盒实施方案剥离其应用几乎没有价值。我们注意到,F和G无需同时存在。我们也可以仅使用F或仅使用G将白盒粘附到应用。
现在,将描述Chow等人基于表的白盒实施方案的简化版本的一实施例。下文,以两个步骤来论述此简化实施方案。在第一步骤中,其表明AES如何被实施为查找表网络,且在第二步骤2中,混淆这一查找表网络。此白盒实施方案可随后用以实施本文中所描述的实施例。
AES对16字节的数据块进行运算。将这些数据块写成4×4字节矩阵,称作状态。AES的一轮次包括以下操作:AddRoundKey、SubBytes、ShiftRows和MixColumns。AddRoundKey对每一S盒输入的密钥字节进行异或运算。这可以经由各自用输入字节的相关半字节对密钥字节的半字节进行异或运算的两个查找表来实施。S盒运算S可直接由字节到字节查找表来实施。使yi,j作为S盒运算的输出。ShiftRows运算仅为yi,j的索引重新编号。为易于呈现,此处省略此操作。在MixColumns步骤中,轮次的输出字节zi,j经由针对一些常数αl,r的GF(28)中的代数表达式根据输出字节y1,j、y2,j、y3,j和y4,j来计算。
图4示出计算AES的一轮次的输出字节的查找表实施方案。现针对每一字节到字节函数Ui,j,l(x)=αl,i·Si,j(x)(其中i,j,l=1,2,...,16)401、402、403、404来限定查找表,其中输入是密钥k 420的字节与输入x 425的字节的异或运算415。随后可通过对这些查找表的结果进行异或运算410、411、412来计算任何输出字节zl,j405,即 注意,U的索引i、j、l可解释为“一轮次的输入字节i、j对所述轮次的输出字节l、j的影响”。这些字节异或运算410、411、412可再次经由对两个半字节进行异或运算的异或运算表来实施。这限定了在AES轮次中作为查找表网络对任何输出字节zl,j405的计算,这是第一步骤的目的。
在图4中所描绘的实施方案中,密钥k还未隐藏。使nibi(b)作为字节b的半字节i。密钥字节可由随机选择的双射半字节函数编码。也就是说,将密钥字节ki,j的两个半字节分别编码为随机选择的双射函数gi,j,1和gi,j,2的gi,j,1(nib1(ki,j))和gi,j,2(nib2(ki,j))。用其中这些半字节作为输入给定的异或运算表将这些编码的逆合并。这描绘在图5和6中。类似方法应用于网络中的所有半字节,除了在输入明文和输出密文中的那些以外。也就是说,任何内部半字节都由随机选择的双射函数编码,其中用产生半字节的查询表将编码步骤合并,且用消耗半字节的查询表将解码步骤合并。不将所述方法应用于明文和密文的原因是为了保持功能性完好,即为了保持与AES的顺应性。
除这些半字节编码以外,线性编码也可应用于U-表。8到8位查询表Ui,j,l的输出由8位线性映射L来编码。与针对所有U-表相同来选择此编码。通过将下一轮次的U表与解码其输入的线性映射L-1合并从而在下一轮次中去除线性编码L。
现在描述如何构建图1中所描绘的抗泄漏PRF的白盒版本的一实施例。也就是说,我们展示此PRF可如何实施以使得其变为防白盒DCA攻击。实验表明,为利用DCA破坏上文所论述的白盒实施方案,需要迹线16。因此,将白盒实施方案直接用作PRF并没有为我们给出防DCA解决方案。
使ej作为其中1在位置j处且0在所有其它位置处的128位单元向量,其中计数开始于位置1处。随后针对所有i=1,2,...,128限定Pi={0,e1}。所述实施例可通过在实施方案WBi的任何白盒的第一轮次的U表中去除除了以下的所有条目来实施:
与用于与第一输入字节相关的U-表的输入字节值0和1相关联的条目;以及
与用于所有其它U-表的输入字节值0相关联的条目。
随后攻击者可仅使用白盒来执行针对0和e1且不针对其它输入的加密。
替代去除U-表中的几乎所有条目(这隐含着针对不同于0和e1的输入,我们不能运行白盒实施方案),这些条目也可被设定成非正确值。在所述情况下,可获得针对不同输入的白盒实施方案,但其产生错误结果。与这些错误结果相关联的计算迹线将仅向DCA攻击添加噪声。
在图1中,WB1的密钥是主密钥,且WBi+1的密钥由WBi的输出给出。在上文所述的白盒实施方案中,密钥由任意半字节编码来编码。对于主密钥,这并不是问题。主密钥可以只经由其全部加密的11轮次密钥来存储。现在考虑任何下一白盒实施方案。
第一选择方案如下。如果白盒实施方案WBi不具有外部输出编码,那么所述输出便可只用作密钥调度算法的输入。这给出11个非编码轮次密钥。如果省略对WBi+1中的密钥字节的编码,那么这便产生图1的实施方案。
第二种且更稳定的选择是对由WBi计算的密钥进行外部编码。
如果AES密钥调度算法也以与以上例子中的AES白盒实施方案相类似的方式使用白盒实施方案来实施,那么便可通过将解码操作与白盒密钥调度算法的第一表合并而对此编码进行补偿。如果白盒密钥调度算法也具备由逐半字节双射函数给出的外部输出编码,那么这便产生如图5和6中所描述的白盒实施方案中所期望的输入。
相对于硬件实施方案,偏好加密算法的软件实施方案存在若干原因。这可能是例如,因为软件解决方案在密钥泄漏的情况下可再生,因为其具有较低成本,或因为应用程序开发者对其中实施白盒***的硬件没有影响。虽然对以下实施例的描述涉及在处理器上运行的软件实施方案,但应注意,这些实施例也可部分或完全地在硬件中实施。所描述的查找表和有限状态机可在硬件中实施以执行所描述的各种函数。
根据本发明的实施例的方法可在计算机上实施为计算机实施的方法。用于根据本发明的方法的可执行码可以存储在计算机程序媒体上。计算机程序媒体的例子包括存储器装置、光学存储装置、集成电路、服务器、在线软件等。因此,白盒***可包括实施白盒计算机程序的计算机。这类***还可包括其它硬件元件,包括存储装置、用于与外部***以及在白盒***的元件之间传输数据的网络接口。
在本发明的一实施例中,计算机程序可包括适于当所述计算机程序在计算机上运行时,执行根据本发明的一种方法的所有步骤的计算机程序代码。优选地,计算机程序实施于非暂时性计算机可读介质上。
另外,因为白盒加密术往往非常复杂和/或混淆的,所以难以由人类写入。因此,具有以自动化的方式形成根据本发明的实施例的加密***的方法是有利的。
形成根据本发明的加密***的方法可在计算机上或在专用硬件中或两者的组合中实施为计算机实施的方法。用于根据本发明的方法的可执行码可以存储在计算机程序媒体上。在这种方法中,计算机程序可包括适于当计算机程序在计算机上运行时,执行所述方法的所有步骤的计算机程序代码。所述计算机程序在非暂时性计算机可读介质上实施。
本文所述的加密***可以实施在例如移动电话、平板、计算机、机顶盒、智能TV等用户装置上。例如电视网络、视频流服务、金融机构、音乐流式服务等内容提供方可向用户装置提供软件以从内容提供方接收已加密内容。软件可具有如上所述被嵌入在其中的加密密钥并且也可包括如上所述的绑定串。随后,内容提供方可向用户装置发送已加密内容,所述用户装置可随后使用所供应的软件解密并使用所述内容。
在处理器上运行以实施本发明的实施例的特定软件的任何组合构成特定专用机器。
如本文中所使用,术语“非暂时性机器可读存储介质”将理解为排除暂时传播的信号但包括所有形式的易失性和非易失性存储器。另外,如本文中所使用,术语“处理器”将理解为涵盖多种装置,如微处理器、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application-specific integrated circuit,ASIC)和其它类似处理装置。当软件在处理器上实施时,所述组合变为单一特定机器。
本领域的技术人员应了解,本文中的任何框图表示体现本发明原理的说明性电路的概念视图。
尽管已具体参考各种示例性实施例的特定示例性方面来详细地描述各种示例性实施例,但应理解,本发明能够容许其它实施例,且能够容许在各种显而易见的方面修改本发明的细节。如本领域的技术人员显而易见,可以实现变化和修改同时保持在本发明的精神和范围内。因此,前述公开内容、描述和附图仅出于说明性目的且不以任何方式限制本发明,本发明仅由权利要求书限定。
Claims (10)
1.一种用于在N轮次中使用加密函数的白盒实施方案来实施伪随机函数PRF的方法,其特征在于,包括:
接收所述PRF的输入;
在第一轮次中接收加密密钥;
使用所述加密函数的所述白盒实施方案和所述加密密钥对输入消息进行加密以产生第一输出,所述输入消息是基于所述输入的一部分的M个可能输入消息中的一个,其中,M小于可能输入消息的总数;
对于每一后续轮次:
使用所述加密函数的所述白盒实施方案和第i个加密密钥对另外的输入消息进行加密以产生第i个输出,所述另外的输入消息是基于所述输入的另一部分的M个可能输入消息中的一个,其中所述第i个加密密钥是来自前一轮次的所述输出,
其中,在所述第一轮次和所述每一后续轮次中,所述加密函数的所述白盒实施方案仅产生用于所述M个可能输入消息的正确输出,且产生用于不为所述M个可能输入消息中的一个的输入消息的非正确输出。
2.根据权利要求1所述的方法,其特征在于,所述加密函数是AES。
3.根据权利要求1所述的方法,其特征在于,所述加密函数的所述白盒实施方案使用置换盒S盒,且其中用非正确值置换与不为所述M个可能输入消息中的一个的输入消息相关联的所述S盒的条目。
4.根据权利要求1所述的方法,其特征在于,所述加密函数的所述白盒实施方案的所述非正确输出没有用于不为所述M个可能输入消息中的一个的输入消息的输出。
5.根据权利要求4所述的方法,其特征在于,所述加密函数的所述白盒实施方案使用置换盒S盒,且其中将与不为所述M个可能输入消息中的一个的输入消息相关联的所述S盒的条目从所述S盒去除。
6.一种利用在N轮次中使用加密函数的白盒实施方案来实施伪随机函数PRF的指令所编码的非暂时性机器可读存储介质,其特征在于,包括:
用于接收所述PRF的输入的指令;
用于在第一轮次中接收加密密钥的指令;
用于使用所述加密函数的所述白盒实施方案和所述加密密钥对输入消息进行加密以产生第一输出的指令,所述输入消息是基于所述输入的一部分的M个可能输入消息中的一个,其中,M小于可能输入消息的总数;
对于每一后续轮次:
用于使用所述加密函数的所述白盒实施方案和第i个加密密钥对另外的输入消息进行加密以产生第i个输出的指令,所述另外的输入消息是基于所述输入的另一部分的M个可能输入消息中的一个,其中所述第i个加密密钥是来自前一轮次的所述输出,
其中,在所述第一轮次和所述每一后续轮次中,所述加密函数的所述白盒实施方案仅产生用于所述M个可能输入消息的正确输出,且产生用于不为所述M个可能输入消息中的一个的输入消息的非正确输出。
7.一种在N轮次中使用加密函数的白盒实施方案的伪随机函数PRF装置,其特征在于,包括:
存储器;以及
与所述存储器通信的处理器,所述处理器配置成:
接收所述PRF的输入;
在第一轮次中接收加密密钥;
使用所述加密函数的所述白盒实施方案和所述加密密钥对输入消息进行加密以产生第一输出,所述输入消息是基于所述输入的一部分的M个可能输入消息中的一个,其中,M小于可能输入消息的总数;
对于每一后续轮次:
使用所述加密函数的所述白盒实施方案和第i个加密密钥对另外的输入消息进行加密以产生第i个输出,所述另外的输入消息是基于所述输入的另一部分的M个可能输入消息中的一个,其中所述第i个加密密钥是来自前一轮次的所述输出,
其中,在所述第一轮次和所述每一后续轮次中,所述加密函数的所述白盒实施方案仅产生用于所述M个可能输入消息的正确输出,且产生用于不为所述M个可能输入消息中的一个的输入消息的非正确输出。
8.根据权利要求7所述的装置,其特征在于,所述加密函数的所述白盒实施方案使用置换盒S盒,且其中用非正确值置换与不为所述M个可能输入消息中的一个的输入消息相关联的所述S盒的条目。
9.根据权利要求7所述的装置,其特征在于,所述加密函数的所述白盒实施方案的所述非正确输出没有用于不为所述M个可能输入消息中的一个的输入消息的输出。
10.根据权利要求9所述的装置,其特征在于,所述加密函数的所述白盒实施方案使用置换盒S盒,且其中将与不为所述M个可能输入消息中的一个的输入消息相关联的所述S盒的条目从所述S盒去除。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/795,890 | 2017-10-27 | ||
US15/795,890 US10630462B2 (en) | 2017-10-27 | 2017-10-27 | Using white-box in a leakage-resilient primitive |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109726565A CN109726565A (zh) | 2019-05-07 |
CN109726565B true CN109726565B (zh) | 2024-04-16 |
Family
ID=63244453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811265684.2A Active CN109726565B (zh) | 2017-10-27 | 2018-10-26 | 在抗泄漏原语中使用白盒 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10630462B2 (zh) |
EP (1) | EP3477889B1 (zh) |
CN (1) | CN109726565B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7383985B2 (ja) * | 2019-10-30 | 2023-11-21 | 富士電機株式会社 | 情報処理装置、情報処理方法及びプログラム |
US11216433B2 (en) * | 2019-12-12 | 2022-01-04 | Google Llc | Encrypted search with no zero-day leakage |
US11632231B2 (en) * | 2020-03-05 | 2023-04-18 | Novatek Microelectronics Corp. | Substitute box, substitute method and apparatus thereof |
WO2021201779A1 (en) * | 2020-03-31 | 2021-10-07 | Agency For Science, Technology And Research | Method and system for generating a hash-based message authentication code (hmac) based on white-box implementation |
CN113541942B (zh) * | 2021-07-12 | 2022-06-07 | 西安电子科技大学 | 基于arx白盒分组密码的数字内容加解密方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105049400A (zh) * | 2014-03-19 | 2015-11-11 | 恩智浦有限公司 | 在白盒实现方案中拆分s盒以防止攻击 |
CN105187364A (zh) * | 2014-03-19 | 2015-12-23 | 恩智浦有限公司 | 保护白盒实现方案不受攻击 |
CN105591734A (zh) * | 2015-04-24 | 2016-05-18 | 桂林电子科技大学 | 一种基于查表的白盒密码非线性编码保护方法 |
CN107005404A (zh) * | 2014-11-10 | 2017-08-01 | 德国捷德有限公司 | 加固的白盒实现1 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769165B2 (en) | 2005-10-14 | 2010-08-03 | Microsoft Corporation | Semi-public white-box cipher |
EP2506174B1 (en) * | 2011-03-30 | 2019-01-09 | Irdeto B.V. | Enabling a software application to be executed on a hardware device |
US9363244B2 (en) | 2014-04-28 | 2016-06-07 | Nxp B.V. | Realizing authorization via incorrect functional behavior of a white-box implementation |
EP3089398B1 (en) | 2015-04-30 | 2017-10-11 | Nxp B.V. | Securing a cryptographic device |
-
2017
- 2017-10-27 US US15/795,890 patent/US10630462B2/en active Active
-
2018
- 2018-08-13 EP EP18188653.2A patent/EP3477889B1/en active Active
- 2018-10-26 CN CN201811265684.2A patent/CN109726565B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105049400A (zh) * | 2014-03-19 | 2015-11-11 | 恩智浦有限公司 | 在白盒实现方案中拆分s盒以防止攻击 |
CN105187364A (zh) * | 2014-03-19 | 2015-12-23 | 恩智浦有限公司 | 保护白盒实现方案不受攻击 |
CN107005404A (zh) * | 2014-11-10 | 2017-08-01 | 德国捷德有限公司 | 加固的白盒实现1 |
CN105591734A (zh) * | 2015-04-24 | 2016-05-18 | 桂林电子科技大学 | 一种基于查表的白盒密码非线性编码保护方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190132116A1 (en) | 2019-05-02 |
CN109726565A (zh) | 2019-05-07 |
EP3477889B1 (en) | 2021-03-24 |
EP3477889A1 (en) | 2019-05-01 |
US10630462B2 (en) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726565B (zh) | 在抗泄漏原语中使用白盒 | |
US10097342B2 (en) | Encoding values by pseudo-random mask | |
EP1997265B1 (en) | Integrity of a data processing system using white-box for digital content protection | |
US9838198B2 (en) | Splitting S-boxes in a white-box implementation to resist attacks | |
US9455833B2 (en) | Behavioral fingerprint in a white-box implementation | |
US11818245B2 (en) | Cryptographic device and method | |
US10790962B2 (en) | Device and method to compute a block cipher | |
CN101491001A (zh) | 数字数据处理单元的防篡改 | |
Lee et al. | A masked white-box cryptographic implementation for protecting against differential computation analysis | |
US10700849B2 (en) | Balanced encoding of intermediate values within a white-box implementation | |
CN107273724B (zh) | 为白盒实施方案的输入和输出加水印 | |
US9485226B2 (en) | Method for including an implicit integrity or authenticity check into a white-box implementation | |
US9641337B2 (en) | Interface compatible approach for gluing white-box implementation to surrounding program | |
CN106209346B (zh) | 白盒密码技术交错查找表 | |
EP2960891B1 (en) | Method for introducing dependence of white-box implementationon a set of strings | |
EP2940917B1 (en) | Behavioral fingerprint in a white-box implementation | |
US9338145B2 (en) | Security patch without changing the key | |
EP2940677A1 (en) | Method for including an implicit integrity or authenticity check into a white-box implementation | |
EP2940920B1 (en) | Security patch without changing the key | |
Kim et al. | POSTER: Stopping Run-Time Countermeasures in Cryptographic Primitives | |
EP2940918B1 (en) | Interface compatible approach for gluing white-box implementation to surrounding program | |
Rigot | Útoky na white-box AES |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |