CN106209346B - 白盒密码技术交错查找表 - Google Patents

白盒密码技术交错查找表 Download PDF

Info

Publication number
CN106209346B
CN106209346B CN201610325814.1A CN201610325814A CN106209346B CN 106209346 B CN106209346 B CN 106209346B CN 201610325814 A CN201610325814 A CN 201610325814A CN 106209346 B CN106209346 B CN 106209346B
Authority
CN
China
Prior art keywords
dimensional
white
tables
identified
lookup table
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
Application number
CN201610325814.1A
Other languages
English (en)
Other versions
CN106209346A (zh
Inventor
简·胡格布鲁格
W·P·A·J·米歇尔斯
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.)
NXP BV
Original Assignee
NXP BV
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 NXP BV filed Critical NXP BV
Publication of CN106209346A publication Critical patent/CN106209346A/zh
Application granted granted Critical
Publication of CN106209346B publication Critical patent/CN106209346B/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/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/06Cryptographic 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
    • 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/04Masking or blinding
    • H04L2209/043Masking or blinding of tables, e.g. lookup, substitution or mapping
    • 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)
  • Storage Device Security (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Abstract

一种产生密码函数的白盒实施方案的方法,包括:由处理器使用二维查找表的网络创建密码函数的白盒实施方案;识别使用共同索引的二维查找表;以及将所述所识别的二维查找表重写为三维表。

Description

白盒密码技术交错查找表
技术领域
本文中所公开的各种示例性实施例大体上涉及白盒密码技术中使用的交错查找表,其中所述交错查找表提高了执行速度。
背景技术
因特网向用户提供对数字内容的方便且广泛的访问。因为因特网是强大的分布通道,所以许多用户装置力求直接访问因特网。用户装置可包括个人计算机、膝上型计算机、机顶盒、启用因特网的媒体播放器、移动电话、智能电话、平板计算机、移动无线热点,或能够访问因特网的任何其它装置。使用因特网作为用于有版权内容的分布媒体对保护内容提供者的利益产生有力的挑战。用户装置越来越多地使用加载有合适的软件的处理器来渲染(重放)例如音频和/或视频等数字内容。重放软件的控制是一种强制执行内容所有者的利益(包括可使用所述内容所依据的条款)的方式。先前许多用户装置是封闭系统。如今越来越多的平台部分开放。可假定一些用户具有对于提供对内容的访问的硬件和软件的完全控制及访问权,以及大量时间和资源来攻击和绕过任何内容保护机构。其结果是,内容提供者必须跨越对于其中并非所有用户或用户装置可信任的团体敌对的网络将内容递送到合法用户。
可调用安全软件应用来实行例如用于保护和验证数字内容的密码函数等各种函数。为了对抗攻击,这些算法必须模糊(隐藏)以便防止算法的逆向工程和修改或禁止获得用户特定安全信息。因此,可由如实施安全软件的处理器的指令集限定的各种函数实行安全软件应用的函数。举例来说,一种使这些函数模糊的方式是通过使用查找表。
内容提供者必须跨越对其中并非所有用户或装置可信任的团体敌对的网络将内容递送到合法用户。这已促使白盒密码技术的开发。在白盒密码情境中,假定用户具有对于提供对内容的访问的硬件和软件的完全控制,以及无限量的时间和资源来攻击和绕过任何内容保护机构。强制执行可使用内容所依据的条款的安全软件代码应该是防篡改的。数字版权管理是安全软件应用的常见应用。用于分布到用户装置的受保护内容的数字版权管理中的一般方法是使用例如DES(数据加密标准)、AES (高级加密标准)或使用其它已知加密方案对数字内容进行加密,且使用解密密钥恢复数字内容。这些解密密钥必须受到保护以防止对受保护材料的未授权的访问。
在数字版权管理情境中,攻击者具有对于强制执行对受保护内容的管理和访问的软件的完全控制。因此,攻击者可修改软件并且还搜寻以获得用于对受保护内容进行加密的密码密钥。这些密钥可通过分析软件来发现。
关于密钥分布,媒体播放器必须从许可证数据库检索解密密钥以便重放媒体。媒体播放器随后必须将此解密密钥存储在存储器中某处以用于经加密内容的解密。这为攻击者留下用于对密钥进行攻击的两种选择。首先,攻击者可逆向工程化许可证数据库存取函数,从而允许攻击者从所有许可证数据库检索资产密钥。在此情况下,攻击者并不需要理解密码函数的内部工作。第二,攻击者可观察内容解密期间存储器的存取,因此攻击者可检索解密密钥。在这两种情况中,密钥均被视为受到威胁。
数字版权管理(DRM)和其它安全软件的广泛使用已导致需要力图使对软件的窜改变得复杂的安全的防篡改软件。存在用于增加软件应用的防篡改能力的各种技术。这些技术中的大多数技术是基于通过在软件应用的控制和数据路径两者中添加随机性和复杂性的掩饰来隐藏应用的嵌入知识。其背后的想法是,仅通过代码检查来提取信息变得更加困难。因此,较难以寻找(例如)处置安全应用的存取和准许控制的代码且随后对其进行改变。
如本文所使用,白盒密码技术包括在其中攻击者具有对于运行白盒密码软件的系统的完全控制的环境中执行密码函数的安全软件应用。因此,攻击者可修改输入和输出,跟踪软件的操作,对任何时间软件所使用的存储器进行取样和监视,乃至修改所述软件。因此,需要以防止揭露安全功能性中使用的机密信息的方式实行安全功能。可以不同方式实施白盒密码功能。这些方法包括:混淆软件代码;使用混淆机密信息的使用的复杂数学函数;使用查找表;使用有限状态机;或实行密码函数但隐藏那些安全功能所需的机密信息的任何其它方法。白盒实施方案还可包含包括反调试和防篡改特性的组件。
相对于硬件实施方案优选密码算法的软件实施方案,存在若干原因。如此(例如)可能是因为软件解决方案在密钥泄露的情况下是可更新的,因为其具有较低成本,或因为应用开发者对其中实施白盒系统的硬件没有影响。
发明内容
各种示例性实施例的简要概述在下文呈现。在以下概述中可以做出一些简化和省略,所述概述意图突出且引入各种示例性实施例的一些方面,但不限制本发明的范围。足以允许本领域的一般技术人员产生且使用发明性概念的示例性实施例的详细描述将跟随在稍后的章节中。
各种实施例涉及一种产生密码函数的白盒实施方案的方法,包括:由处理器使用二维查找表的网络创建密码函数的白盒实施方案;识别使用共同索引的二维查找表;以及将所识别的二维查找表重写为三维表。
描述各种实施例,其中密码函数为高级加密标准函数。
描述各种实施例,其中密码函数为数据加密标准函数。
描述各种实施例,其中将所识别的二维查找表重写为三维表包括使所识别的二维查找表中的数据交错。
描述各种实施例,其中所述方法为编译程序。
描述各种实施例,其另外包括重复以下步骤:由处理器使用二维查找表的网络创建密码函数的白盒实施方案;识别使用共同索引的二维查找表;以及将所识别的二维查找表重写为三维表直至已经识别使用共同索引的所有二维查找表为止。
其它实施例涉及一种非暂时性机器可读存储媒体,其以用于产生密码函数的白盒实施方案的指令编码,所述非暂时性机器可读存储媒体包括:用于使用二维查找表的网络创建密码函数的白盒实施方案的指令;用于识别使用共同索引的二维查找表的指令;以及用于将所识别的二维查找表重写为三维表的指令。
描述各种实施例,其中密码函数为高级加密标准函数。
描述各种实施例,其中密码函数为数据加密标准函数。
描述各种实施例,其中将所识别的二维查找表重写为三维表包括使所识别的二维查找表中的数据交错。
描述各种实施例,其中用于产生密码函数的白盒实施方案的指令为编译程序。
描述各种实施例,其另外包括重复用于重复以下步骤的指令:使用二维查找表的网络创建密码函数的白盒实施方案;用于识别使用共同索引的二维查找表的指令;以及用于将所识别的二维查找表重写为三维表直至已经识别使用共同索引的所有二维查找表为止的指令。
其它实施例涉及一种用于产生密码函数的白盒实施方案的装置,包括:存储器;以及与存储器通信的处理器,所述处理器被配置成:使用二维查找表的网络创建密码函数的白盒实施方案;识别使用共同索引的二维查找表;以及将所识别的二维查找表重写为三维表。
描述各种实施例,其中密码函数为高级加密标准函数。
描述各种实施例,其中密码函数为数据加密标准函数。
描述各种实施例,其中将所识别的二维查找表重写为三维表包括使所识别的二维查找表中的数据交错。
描述各种实施例,其中所述处理器另外被配置成重复以下步骤:使用二维查找表的网络创建密码函数的白盒实施方案;识别使用共同索引的二维查找表;以及将所识别的二维查找表重写为三维表直至已经识别使用共同索引的所有二维查找表为止。
其它实施例涉及一种控制提供实施密码函数的白盒实施方案的应用的服务器的方法,包括:接收来自用户的对于实施密码函数的白盒实施方案的应用的请求;以及向用户提供实施密码函数的白盒实施方案的应用,其中所述应用是通过以下操作创建:使用二维查找表的网络创建密码函数的白盒实施方案;识别使用共同索引的二维查找表;以及将所识别的二维查找表重写为三维表。
附图说明
为了更好地理解各种示例性实施例,参看附图,其中:
图1示出用于改进查找表软件实施方案的执行速度的方法;以及
图2示出用于提供用户装置安全内容以及处理所述安全内容的软件应用的系统。
为了便于理解,相同参考标号用于表示具有基本上相同或类似结构和/或基本上相同或类似功能的元件。
具体实施方式
描述和图式示出本发明的原理。因此将了解,本领域的技术人员将能够设计各种布置,尽管本文中未明确地描述或示出所述布置,但其体现本发明的原理且包括于其范围内。此外,本文中所引述的所有例子主要明确地意图用于教学目的以辅助读者理解本发明的原理,以及由发明人所提供的概念以深化本领域,且其不应解释为限于此类特定所引述例子及条件。另外,除非另外指明(例如,“或另外”或“或在替代方案中”),否则如本文所使用的术语“或”指代非排斥性或(即,和/或)。并且,本文所描述的各种实施例不一定相互排斥,因为一些实施例可与一个或多个其它实施例组合从而形成新的实施例。
相对于硬件实施方案优选密码算法的软件实施方案存在若干原因。如此(例如)可能是因为软件解决方案在密钥泄露的情况下是可更新的,因为其具有较低成本,或因为应用开发者对其中实施白盒系统的硬件没有影响。
以下论文中提出针对高级加密标准(AES)和数据加密标准(DES) 的白盒实施方案的基于表的方法:Stanley Chow、Philip Eisen、Harold Johnson和Paul C.Van Oorschot的“白盒密码技术和AES实施方案(White-Box Cryptography and an AESImplementation)”,密码术的选定领域(Selected Areas in Cryptography):第9届年度国际研讨会(9th Annual International Workshop),SAC 2002,St.John’s,Newfoundland,加拿大, 2002年8月15-16日,下文称为“Chow 1”;以及Stanley Chow、Phil Eisen、 HaroldJohnson和Paul C.van Oorschot的“用于DRM应用的白盒DES 实施方案(A White-Box DESImplementation for DRM Applications)”,数字版权管理(Digital RightsManagement):ACM CCS-9研讨会,DRM 2002,Washington,D.C.,美国,2002年11月18日,下文称为“Chow 2”。Chow 1和Chow 2公开使用基于表的方法来隐藏密码密钥的方法,其是通过以随机双映射对其表进行编码与借助将其另外推出到所含应用中来延伸密码边界结合而实现。
如所提到,对于许多密码操作,希望具有白盒实施方案。本发明可应用(例如)于对称和不对称密码操作。并且,本发明可应用于块密码、流密码、消息验证方案、签名方案等。应注意,本发明还可应用于散列函数。后者在散列函数用作构建块的情况下尤其有用,所述构建块处理例如机密密钥、机密数据等机密信息。举例来说,本发明可应用于键合散列消息验证码(HMAC或KHMAC)中使用的散列函数。众所周知的块密码包括:高级加密标准(AES)、安全且快速的加密例程、(SAFER,以及变体SAFER+和SAFER++)、Blowfish、数据加密标准(DES)等。众所周知的流密码为RC4。此外,任何块密码可使用例如密码反馈 (CFB)、计数器模式(CTR)等适当操作模式而用作流密码。
输入消息可表示例如经加密内容数据,例如多媒体数据,包括音频和/或视频数据。经加密内容数据还可包括经加密软件,例如表示例如计算机游戏或办公室应用等某一计算机应用的经加密计算机代码。输入消息还可表示用于在另一密码操作中使用的密钥。后者可(例如)在密钥交换协议中使用,其中根据本发明的白盒实施方案加密和/或解密表示新密钥的数据。输入数据还可为(例如)纯用户数据等纯数据。后者在消息验证方案中尤其有利。根据本发明的白盒实施方案可具有所述实施方案可仅用于加密、仅用于解密,但非用于两者的特性。举例来说,此特性可在实施方案使用非双射查找表的情况下实现,所述非双射查找表例如是具有比输出位多的输入位的查找表。因此,如果用户仅具有白盒解密子,那么他可验证MAC代码但不创建新MAC。这加强了此消息验证方案的抗抵赖特性。
可使用多个基本块实施白盒实施方案。所述多个基本块在一些块建立于先前块中的一个或多个的输出的意义上是互连的。基本块可在例如微处理器等通用计算机芯片上运行的软件中实施。举例来说,基本块可使用多个计算机指令,包括算术指令,其一起实施基本块的功能性。可使用的所述基本块的广泛使用的实施方案是查找表。举例来说,Chow 1和Chow 2采用此方法来实施AES和DES块密码。查找表实施方案包括针对可能的输入值列举输出值的列表。所述输入值可在查找表中为显式的。在所述情形中,查找表实施方案可通过在输入值的列表中搜索特定输入而将特定输入映射到特定输出。当发现特定输入时,随后还发现特定输出。举例来说,特定输出可存储在特定输入旁。优选地,输入值不显式地存储,而是仅隐式地存储。举例来说,如果可能输入为例如数字或位串的连续范围,那么查找表可限于存储输出值的列表。特定输入数字可例如映射到存储在所述数字所指示的位置处的特定输出。
举例来说,可通过针对函数的可能输入计算其输出值且将输出存储在列表中来创建函数的查找表。如果所述函数取决于多个输入,那么可针对所述多个输入的所有可能组合计算和存储输出。查找表尤其适合于实施非线性函数,其以不规则方式将输入映射到输出。可另外使白盒实施方案模糊,如下文阐释,方式是通过将固定模糊输入编码和固定输出编码应用到其查找表中的一个或多个。随后完全预先评估应用固定模糊输入编码和输出编码的结果。使用此技术,查找表将被具有相同尺寸的模糊查找表代替,所述模糊查找表采用相同数目的输入位且产生相同数目的输出位。此模糊过程中使用的输入编码和输出编码在最终白盒实施方案中不是显式的。
查找表的网络被布置成当其呈现有输入消息时计算输出消息。通常,输入消息由若干输入查找表操作。若干另外的查找表可采用来自输入查找表中的一个或多个和/或来自所述输入的输入。其它另外的查找表可采用输入消息、输入查找表的输出和所述另外的查找表的输出的任何组合中的输入。最后,退出查找表的某一集合(即,至少一个)产生输出消息的全部或部分作为输出。以此方式,出现查找表的网络,所述查找表的网络统一计算从输入消息到输出消息的映射。
所使用的密钥可为密码密钥,且可包含足够的熵来承受预见的强行攻击。应注意,在白盒实施方案中,密钥通常非显式地存在于实施方案中。这将导致密钥通过实施方案的检查而被发现的风险。通常,密钥仅隐式地存在。已知各种方式来在密码系统中隐藏密钥。通常,至少使用部分评估的方法,其中在某一程度上评估需要密钥输入的基本块使得其并不取决于输入的消息。举例来说,其中输入值、掩码值(其并不取决于输入的消息,例如来自替换盒(S盒)的值)和密钥值需要进行异或运算的基本操作可通过对密钥值和所述掩码值一起预先进行异或运算来部分评估。以此方式,所述操作仍取决于密钥值,但密钥值并不显式地存在于实施方案中。实际上,仅密钥值与掩码值之间的异或存在于实施方案中。应注意,隐藏密钥的较复杂的方式和/或另外的方式与本发明的实施例兼容。
如上文所描述,白盒实施方案可借助于表查找的网络实施密码函数。举例来说,这些查找表可为半字节(4位值)的16乘16条目的二维表。所述表接收字节作为输入。所述字节的第一半字节为二维表的一个方向中的索引,且第二半字节为另一方向中的索引。密码函数可包括数千的在上面执行查找的表使得一个查找的结果用作相继查找的索引。查找表的网络的组织和表的内容确定密码函数和所述密码函数使用的机密密钥。
使用表查找的白盒密码技术的问题是与其中未尝试隐藏密钥的无保护实施方案相比执行速度较慢。这是归因于在无对数据的任何空间定位的情况下存取的大量表查找的缘故。这导致许多数据高速缓冲存储器未中,且因此减慢执行速度。空间定位是计算机系统中发生的一种类型的可预测行为。展现强空间定位的系统是用于通过使用例如使用高速缓冲存储器的技术进行性能优化的候选者。
为了改进白盒实施方案的执行速度,白盒实施方案可被重写使得具有共同索引运算元的一组二维表合并为三维表且接着使所述数据交错使得很可能来自所述组二维表的必需的数据将位于所得三维表的一个高速缓冲存储线中。这改进了空间定位且因此改进了性能。
现将描述实施三维表的实施例。将借助于C代码描述实施例。这可为例如密码函数的所需白盒实施方案的片段:
char T1[16][16]={t1_1,t1_2,t1_3,....,t1_256};
char T2[16][16]={t2_1,t2_2,t2_3,....,t2_256};
char T3[16][16]={t3_1,t3_2,t3_3,....,t3_256};
V1=T1[V4][V5];
V2=T2[V4][V6];
V3=T3[V4][V7];
在此代码中,T1、T2和T3是三个16乘16表。常数t1_1……t1_256 是存储在表T1中的值。同样,常数t2_1..t2_256是存储在表T2中的值,且常数t3_1……t3_256是存储在表T3中的值。值V1、V2和V3分别是来自表T1、T2和T3的输出值,其基于索引值V4、V5、V6和V7。值V4、V5、V6和V7可从先前表输出。
本文中所描述的实施例利用白盒实施方案中存在许多组具有共同索引的表查找的事实。在上文描述的例子代码中,具有值V4的第一索引为共同索引。因此,代码可重写为:
char T1_3[16][16][3]={{t1_1,t2_1,t3_1},{t1_2,t2_2,t3_2},...};
V1=T1_3[V4][V5][0];
V2=T1_3[V4][V6][1];
V3=T1_3[V4][V7][2];
所述重写保持功能性但改变了数据存储在存储器中的方式。变换之后,来自三个表T1、T2和T3的数据可在如所示的新阵列T1_3中交错。输出值V1、V2和V3中的每一个现从单一表T1_3确定。这可改进特殊定位且因此改进执行性能。
为了理解为何空间定位得以改进,评估如何针对三个查找在存储器中存取地址。与评估V1、V2和V3相关联的表查找的地址为:
地址(T1_3)+48*V4+3*V5+0;
地址(T1_3)+48*V4+3*V6+1;以及
地址(T1_3)+48*V4+3*V7+2。
这些地址值采用如C编程语言所使用的行主要次序。三维表还可在使用列主要排序时写入。
因为V5、V6和V7在范围0到15中且表元素为字节,所以三个地址位置除彼此之外至多为47字节。因为许多数据高速缓冲存储器具有 32或64字节的高速缓冲存储线,所以很可能所述三个地址中的2或3 个正存取相同高速缓冲存储线。较多查找存取相同高速缓冲存储线意味着需要从存储器提取较少高速缓冲存储线。这改进执行速度。
如早先所提到,所述表通常存储半字节值。这使得有可能将两个表条目填充在一个字节中。这有效地将半字节的16x16阵列转变为字节的 16x8阵列。这增大了在使表交错之后将存取相同高速缓冲存储线的概率。
当共同索引为一组表查找中的第二索引时,这些表可经转置使得在转置之后第一索引变为共同索引。在此之后,可应用表的重写。
上文描述的实施例已使用移动电话的应用处理器在白盒实施方案中实施,导致执行时间减少约30%。
图1示出用于改进查找表软件实施方案的执行速度的方法。方法 100开始于105处。接下来,密码函数的开发者可使用二维查找表创建白盒实施方案110。所述查找表可用如上文所描述的输入和输出编码而变模糊以使得攻击者更难获得白盒实施方案使用的密码密钥或其它机密信息。接下来,密码函数的开发者分析对查找表的调用以识别使用共同索引在时间上彼此接近而执行的查找表115。当这些查找表在时间上彼此接近时,更可能所需要的值在重写所述表之后同时存储在高速缓冲存储器中,因此增大执行速度。如以上实施例中所示出,三个不同查找表 T1、T2和T3各自以V4为第一索引而被调用。可识别使用共同索引的更多或更少的查找表。接下来,密码函数的开发者可将所识别的二维表重写为单一三维表120。以上实施例示出三个表T1、T2和T3重写为三维表T1_3。第三索引的范围将基于所组合的表的数目。所述方法接着可结束125。
密码函数的白盒实施方案可包括数百或数千的查找表和相关联查找表调用。因此,方法100可重复多次以按需要将尽可能多的二维表重写为三维表。此外,密码函数的白盒实施方案的开发者可使用用于产生白盒实施方案的基于计算机的工具。这些基于计算机的工具可扩展以包括上文针对将二维查找表重写为三维查找表描述的方法。这些基于计算机的工具可如下文所描述在计算机上实施为软件。
上述实施例是针对密码函数的白盒实施方案。这些实施例可扩展以包括使用查找表的网络实施的其它类型的函数。这些函数可为软件中实施的函数。
本文中所描述的实施例可在编译程序中实施,所述编译程序将高阶语言编译为机器代码以用于在处理器上执行。在此情况下,编译程序将高阶语言代码转换为查找表的网络,所述查找表的网络随后可另外编译为机器代码。
图2示出用于向用户装置提供安全内容和处理所述安全内容的软件应用的系统。所述系统包括内容服务器200、应用服务器220、用户装置 250、252,和数据网络240。用户装置250、252可请求经由数据网络240 访问内容服务器200提供的安全内容。数据网络可以为提供用户装置 250、252与内容服务器200和应用服务器220之间的连接性的任何数据网络。用户装置250、252可以是多个装置中的一个,例如,机顶盒、媒体拖缆、数字视频记录器、平板计算机、移动电话、膝上型计算机、便携式媒体装置、智能手表、台式计算机、媒体服务器等。
用户的访问请求可首先需要下载可用于处理内容服务器200提供的安全内容的软件应用。所述软件应用可从应用服务器220下载。软件应用可使用上文描述的技术修改以将若干二维表重写为三维表以及如上文描述而操作。一旦用户装置250、252安装了软件应用,用户装置接着就可从内容服务器200下载安全内容,且使用所下载的软件应用访问所述安全内容。举例来说,所下载的软件应用可执行从内容服务器接收的经加密内容的解密。在其它实施例中,软件应用可执行其它安全操作,例如,加密、数字签名产生和检验等。
内容服务器200可控制对提供给用户装置250、252的安全内容的访问。因此,当内容服务器200接收针对安全内容的请求时,内容服务器200可将安全内容发射到发出请求的用户装置。同样,应用服务器220 可控制对提供给用户装置250、252的软件应用的访问。因此当内容服务器200接收对于软件应用的请求时,应用服务器220可将软件应用发射到发出请求的用户装置。在将软件应用或安全内容提供给用户装置之前,请求软件应用或安全内容的用户装置也可以通过相应的服务器来验证。可替换的是,用户可将对于安全内容的请求直接发送到应用服务器,应用服务器随后将软件应用发射到用户装置。
内容服务器200可以包括经由一个或多个系统总线208互连的处理器202、存储器204、用户接口206、网络接口210以及内容存储装置212。应理解,在一些方面中,图2构成抽象图并且装置200的组件的实际组织可能比所示更加复杂。
处理器202可以是能够执行存储在存储器204或存储装置212中的指令的任何硬件装置。因此,处理器可以包括微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或其它类似装置。
存储器204可以包括各种存储器,例如,L1、L2或L3高速缓冲存储器或系统存储器。因此,存储器204 可以包括静态随机存取存储器 (SRAM)、动态RAM(DRAM)、快闪存储器、只读存储器(ROM),或其它类似存储器装置。
用户接口206可以包括一个或多个装置以使得能够与例如管理员等用户通信。举例来说,用户接口206可以包括显示器、鼠标和键盘以用于接收用户命令。
网络接口210可以包括用于使得能够与其它硬件装置通信的一个或多个装置。举例来说,网络接口210可以包括网络接口卡(NIC),其被配置成根据以太网协议通信。另外,网络接口210可实施TCP/IP堆栈以用于根据TCP/IP协议通信。用于网络接口210的各种替代的或另外的硬件或配置将是显而易见的。
内容存储装置212可以包括一个或多个机器可读内容存储媒体,例如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储媒体、光学存储媒体、快闪存储器装置或类似存储媒体。在各种实施例中,内容存储装置212可存储将提供给用户的内容。
应用服务器220包括如同在内容服务器200中的那些的元件,并且内容服务器200中的相同的元件的描述适用于应用服务器220。并且,内容存储装置212被应用存储装置232代替。另外,应注意,内容服务器和应用服务器可以在单个服务器上实施。并且,此类服务器可以在分布式计算机系统上实施以及在上云计算机系统上实施。
根据本发明的实施例的方法可在计算机系统上实施为计算机实施的方法。用于根据本发明的方法的可执行码可存储在计算机程序媒体上。计算机程序媒体的例子包括存储器装置、光学存储装置、集成电路、服务器、在线软件等。此计算机系统还可包括其它硬件元件,包括存储装置、用于利用外部系统以及在计算机系统的元件之间发射数据的网络接口。
在本发明的一个实施例中,计算机程序可包括适于当计算机程序在计算机上运行时执行根据本发明的方法的所有步骤的计算机程序代码。优选地,计算机程序体现在非暂时性计算机可读媒体上。
根据本发明的创建白盒实施方案的遮蔽码的方法可在计算机上实施为计算机实施的方法。用于根据所述实施例的方法的可执行码可存储在计算机程序媒体上。在此方法中,计算机程序可包括适于当计算机程序在计算机上运行时执行所述方法的所有步骤的计算机程序代码。计算机程序体现在非暂时性计算机可读媒体上。举例来说,图1的方法可在类似于图2的内容服务器200或应用服务器220的计算机系统的计算机系统上实施。举例来说,图1的方法可在类似于图2的内容服务器200 或应用服务器220的计算机系统的计算机系统上实施。
在处理器上运行以实施本发明的实施例的特定软件的任何组合构成特定专门机器。
如本文所使用,术语“非暂时性机器可读存储媒体”将理解为排除暂时传播信号但包括所有形式的易失性和非易失性存储器。此外,如本文所使用,术语“处理器”将理解为包括多种装置,例如微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC),和其它类似处理装置。当软件在处理器上实施时,所述组合变为单一特定机器。
尽管已经特定参考各种示例性实施例的特定示例性方面详细地描述所述各种示例性实施例,但应理解,本发明能够容许其它实施例且其细节能够容许各种显而易见的方面的修改。如本领域的技术人员显而易见的,可以实现变化和修改同时保持在本发明的精神和范围内。因此,上述公开内容、描述和图式仅出于示意性目的并且并不以任何方式限制本发明,本发明仅由权利要求书限定。

Claims (12)

1.一种产生密码函数的白盒实施方案的方法,其特征在于,包括:
由处理器使用二维查找表的网络创建密码函数的白盒实施方案;
识别使用共同索引的二维查找表;以及
将所述所识别的二维查找表重写为三维表,其中,增加的第三维对应于所述所识别的二维查找表,
并且其中,所述方法另外包括重复以下步骤:由处理器使用二维查找表的网络创建密码函数的白盒实施方案;识别使用共同索引的二维查找表;以及将所述所识别的二维查找表重写为三维表直至已经识别使用共同索引的所有二维查找表为止。
2.根据权利要求1所述的方法,其特征在于,所述密码函数为高级加密标准函数。
3.根据权利要求1所述的方法,其特征在于,所述密码函数为数据加密标准函数。
4.根据权利要求1所述的方法,其特征在于,将所述所识别的二维查找表重写为三维表包括使所述所识别的二维查找表中的数据交错。
5.根据权利要求1所述的方法,其特征在于,所述方法为编译程序。
6.一种用于产生密码函数的白盒实施方案的装置,其特征在于,包括:
存储器;以及
与所述存储器通信的处理器,所述处理器被配置成:
使用二维查找表的网络创建密码函数的白盒实施方案;
识别使用共同索引的二维查找表;以及
将所述所识别的二维查找表重写为三维表,其中,增加的第三维对应于所述所识别的二维查找表,
并且其中,所述处理器另外被配置成重复以下步骤:使用二维查找表的网络创建密码函数的白盒实施方案;识别使用共同索引的二维查找表;以及将所述所识别的二维查找表重写为三维表直至已经识别使用共同索引的所有二维查找表为止。
7.根据权利要求6所述的装置,其特征在于,所述密码函数为高级加密标准函数。
8.根据权利要求6所述的装置,其特征在于,所述密码函数为数据加密标准函数。
9.根据权利要求6所述的装置,其特征在于,将所述所识别的二维查找表重写为三维表包括使所述所识别的二维查找表中的数据交错。
10.一种控制提供实施密码函数的白盒实施方案的应用的服务器的方法,其特征在于,包括:
接收来自用户的对于实施密码函数的白盒实施方案的所述应用的请求;以及
向所述用户提供实施密码函数的白盒实施方案的所述应用,其中所述应用是通过以下操作创建的:
使用二维查找表的网络创建密码函数的所述白盒实施方案,
识别使用共同索引的二维查找表,以及
将所述所识别的二维查找表重写为三维表,其中,增加的第三维对应于所述所识别的二维查找表,
并且其中,所述方法另外包括重复以下步骤:由处理器使用二维查找表的网络创建密码函数的白盒实施方案;识别使用共同索引的二维查找表;以及将所述所识别的二维查找表重写为三维表直至已经识别使用共同索引的所有二维查找表为止。
11.根据权利要求10所述的方法,其特征在于,所述密码函数为高级加密标准函数。
12.根据权利要求10所述的方法,其特征在于,所述密码函数为数据加密标准函数。
CN201610325814.1A 2015-06-01 2016-05-17 白盒密码技术交错查找表 Active CN106209346B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/727,413 US10505709B2 (en) 2015-06-01 2015-06-01 White-box cryptography interleaved lookup tables
US14/727,413 2015-06-01

Publications (2)

Publication Number Publication Date
CN106209346A CN106209346A (zh) 2016-12-07
CN106209346B true CN106209346B (zh) 2021-04-27

Family

ID=57397174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610325814.1A Active CN106209346B (zh) 2015-06-01 2016-05-17 白盒密码技术交错查找表

Country Status (2)

Country Link
US (1) US10505709B2 (zh)
CN (1) CN106209346B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2950229B1 (en) * 2014-05-28 2018-09-12 Nxp B.V. Method for facilitating transactions, computer program product and mobile device
CN107291913B (zh) * 2017-06-27 2019-03-15 武汉斗鱼网络科技有限公司 超文本标记语言网页加载方法及装置
CN108134673B (zh) * 2017-12-29 2021-08-13 北京梆梆安全科技有限公司 一种生成白盒库文件的方法及装置
US20200313850A1 (en) * 2019-03-29 2020-10-01 Irdeto Canada Corporation Method and apparatus for implementing a white-box cipher
JP7383985B2 (ja) * 2019-10-30 2023-11-21 富士電機株式会社 情報処理装置、情報処理方法及びプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101884195A (zh) * 2007-09-13 2010-11-10 耶德托公司 内容的密码处理
CN102043664A (zh) * 2009-10-20 2011-05-04 索尼公司 信息处理设备和系统、功能管理方法和计算机程序
CN102461058A (zh) * 2009-03-10 2012-05-16 爱迪德有限责任公司 具有输入相关编码的白盒密码系统
CN102484581A (zh) * 2009-06-19 2012-05-30 耶德托公司 使用中间数据更改的具有可配置密钥的白盒密码系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040025083A1 (en) * 2002-07-31 2004-02-05 Murthi Nanja Generating test code for software
DE10319435B4 (de) 2003-04-25 2018-07-26 Whitecryption Corporation Verfahren zur Verarbeitung von Daten zum Schutz eines Softwareprogramms vor Rekonstruktion
WO2007105126A2 (en) * 2006-03-10 2007-09-20 Koninklijke Philips Electronics N.V. Method and system for obfuscating a cryptographic function
JP5496663B2 (ja) * 2006-07-12 2014-05-21 イルデト・コーポレート・ビー・ヴイ デジタルデータ処理装置の耐改竄性
EP2044723A2 (en) * 2006-07-12 2009-04-08 Koninklijke Philips Electronics N.V. Verifying authenticity of an execution environment
US8443329B2 (en) * 2008-05-16 2013-05-14 Solido Design Automation Inc. Trustworthy structural synthesis and expert knowledge extraction with application to analog circuit design
US8175265B2 (en) * 2008-09-02 2012-05-08 Apple Inc. Systems and methods for implementing block cipher algorithms on attacker-controlled systems
EP2362573A1 (en) * 2010-02-19 2011-08-31 Irdeto B.V. Device and method for establishing secure trust key
US8966279B2 (en) * 2010-12-21 2015-02-24 Apple Inc. Securing the implementation of a cryptographic process using key expansion
WO2013104969A1 (en) * 2012-01-09 2013-07-18 Koninklijke Philips N.V. Virtual machine device having key driven obfuscation and method
US20150172050A1 (en) * 2013-12-12 2015-06-18 Nxp B.V. Random data from gnss signals and secure random value provisioning for secure software component implementations
US9576116B2 (en) * 2013-12-26 2017-02-21 Nxp B.V. Secure software components anti-reverse-engineering by table interleaving
US9363244B2 (en) * 2014-04-28 2016-06-07 Nxp B.V. Realizing authorization via incorrect functional behavior of a white-box implementation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101884195A (zh) * 2007-09-13 2010-11-10 耶德托公司 内容的密码处理
CN102461058A (zh) * 2009-03-10 2012-05-16 爱迪德有限责任公司 具有输入相关编码的白盒密码系统
CN102484581A (zh) * 2009-06-19 2012-05-30 耶德托公司 使用中间数据更改的具有可配置密钥的白盒密码系统
CN102043664A (zh) * 2009-10-20 2011-05-04 索尼公司 信息处理设备和系统、功能管理方法和计算机程序

Also Published As

Publication number Publication date
US10505709B2 (en) 2019-12-10
US20160350560A1 (en) 2016-12-01
CN106209346A (zh) 2016-12-07

Similar Documents

Publication Publication Date Title
EP3174238B1 (en) Protecting white-box feistel network implementation against fault attack
JP5249053B2 (ja) データ処理システムの完全性
US10097342B2 (en) Encoding values by pseudo-random mask
US9602273B2 (en) Implementing key scheduling for white-box DES implementation
CN106888081B (zh) 白盒实施方案内中间值的宽编码
CN106953723B (zh) 防止dfa攻击的拆分和合并方法
US10700849B2 (en) Balanced encoding of intermediate values within a white-box implementation
CN106209346B (zh) 白盒密码技术交错查找表
US20160350520A1 (en) Diversifying Control Flow of White-Box Implementation
US9485226B2 (en) Method for including an implicit integrity or authenticity check into a white-box implementation
EP2922235B1 (en) Security module for secure function execution on untrusted platform
CN107273724B (zh) 为白盒实施方案的输入和输出加水印
US20160182472A1 (en) Binding White-Box Implementation To Reduced Secure Element
CN105978680B (zh) 一种加密钥的加密运算方法
US9639674B2 (en) Using single white-box implementation with multiple external encodings
US9338145B2 (en) Security patch without changing the key
US10567159B2 (en) CMAC computation using white-box implementations with external encodings
EP3267618B1 (en) Equality check implemented with secret sharing
EP2940920B1 (en) Security patch without changing the key

Legal Events

Date Code Title Description
C06 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