CN105721135B - 使用替换盒实施加密操作的方法 - Google Patents
使用替换盒实施加密操作的方法 Download PDFInfo
- Publication number
- CN105721135B CN105721135B CN201510958687.4A CN201510958687A CN105721135B CN 105721135 B CN105721135 B CN 105721135B CN 201510958687 A CN201510958687 A CN 201510958687A CN 105721135 B CN105721135 B CN 105721135B
- Authority
- CN
- China
- Prior art keywords
- input
- box
- data
- output
- replacement box
- 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
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- 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
-
- 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
-
- 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
- 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
-
- 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/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
一种使用替换盒实施加密操作的方法,包括:指定针对替换盒的自等价函数的集合;确定所述替换盒在自等价函数的所述集合之上的最小多样化数;将所述最小多样化数与阈值进行比较;当所述最小多样化数大于或等于阈值时,利用选择的替换盒实施加密操作。
Description
技术领域
本文公开的各个示例性实施例总体涉及执行防攻击的加密函数的安全软件和硬件组件。
背景技术
因特网向用户提供对于数字内容方便且无所不在的访问。由于因特网是强大的分布通道,因此许多用户设备力图直接访问因特网。用户设备可以包括个人计算机、膝上型计算机、机顶盒、因特网使能的媒体播放器、移动电话、智能电话、平板、移动热点或能够访问因特网的其它设备。将因特网用作对于加密内容的分布介质产生了需要保护内容提供者的利益的强制性挑战。越来越多地,用户设备使用装载了用于渲染(回放)数字内容(诸如音频和/或视频)的合适软件的处理器而操作。回放软件的控制是加强内容所有者的利益的一种方式,其包括内容可以被使用的条款和条件。之前,许多用户设备是封闭系统。目前,越来越多的平台是部分开放的。假设一些用户可以获得完全控制并访问提供对内容的访问的硬件和软件,并具有大量时间和资源来攻击和绕过任何内容保护机制。结果,为了向合法用户传递内容,内容提供者必须经过不利网络将内容传递到不是所有用户或用户设备都能被信任的社区。
可以调用安全软件应用以执行各种函数,诸如用于保护认证数字内容的加密函数(cryptographic function)。为了抵御攻击,这些算法必须被打乱(隐藏)以防止对算法的逆向工程和修改,或者禁止获得针对用户的安全信息。因此,可以通过由实施安全软件的处理器的指令集定义的各种函数来执行安全软件应用的函数。例如,模糊这些函数的一种方式是使用查找表。
为了向合法用户传递内容,内容提供者必须经过不利网络将内容传递到不是所有用户或用户设备都能被信任的社区。这导致了白箱加密的开发。在白箱加密场景中,假设用户具有对提供对内容的访问的硬件和软件的完全控制、以及无限量的时间和资源来攻击和绕过任何内容保护机制。加强内容可以被使用的条款和条件的安全软件密码应该是防窜改的。数字版权管理是安全软件应用的一种公共应用。用于保护分布给用户设备的内容的数字版权管理的普遍方式是:使用例如DES(数字加密标准)、AES(高级加密标准)或使用其它已知加密方案来对数字内容进行加密,并使用解密密钥来恢复数字内容。必须保护这些解密密钥以防止对受保护材料的非授权访问。
依赖加密的数字版权管理的弱点的两个主要方面包括:容可以被使用的条款和条件进行加强的软件模块以及密钥分布和处理。通常,软件模块对内容将被使用的条款和条件进行加强。目的在于绕过这些条款和条件的攻击者可以尝试通过篡改软件模块的程序代码来实现绕过。
关于密钥分布,媒体播放器必须从许可数据库检索解密密钥以回放媒体。媒体播放器之后必须将该解密密钥存储在存储器中的某个位置以对加密的内容进行解密。这为攻击者留下了攻击密钥的两种选择。首先,攻击者可以对许可数据库访问函数进行逆向工程,这样使得攻击者能够从所有的许可数据库检索资产密钥。在此情况下,攻击者不需要理解加密函数的内部工作。第二,攻击者可以观察在内容解密期间对存储器的访问,从而攻击者可以检索解密密钥。在两种情况下,密钥都被视为缺乏抵抗力。
对DRM和其它安全软件的广泛使用已经提出了针对试图使对软件的篡改复杂化的安全、防篡改软件的需要。存在用于提高软件应用的防篡改性能的各种技术。这些技术中的大多数基于通过在软件应用的控制和数据路径两者中添加随机和复杂的掩饰来隐藏嵌入在应用中的知识。该构思来源于这样让仅通过密码检查来提取信息的操作变得更加困难。因此,更加难以找到例如处理对安全应用的访问和许可控制的密码并最终改变它。
如在本文中所使用的,白箱加密包括在攻击者对运行白箱加密软件的系统具有完全或至少充足的控制的环境下,执行加密函数的安全软件应用。因此,攻击者能够修改输入和输出,跟踪软件的操作,对在任何时间被软件使用的存储器进行采样和监视,甚至修改软件。因此,需要以防止公开在安全功能性中使用的秘密信息的方式来执行安全功能。
对于为什么有些人相比于硬件实施更喜欢加密算法的软件实施,存在各种原因。这些原因例如:由于在密钥泄漏的情况下,软件方案是可以更新的;由于其成本更低;或者由于应用开发者不能对实施有白箱系统的硬件进行操作。然而,白箱实施可以实现在软件和硬件中。
已知的白箱实施可以在以下文献中找到:Chow,S.,Eisen,P.,Johnson,H.,vanOorschot,P.C.的White-Box Cryptography and an AES Implementation,Proceedingsof the 9th Annual Workshop on Selected Areas in Cryptography,250-270,2002;以及Chow,S.,Eisen,P.,Johnson,H.,van Oorschot,P.C.的A White-Box DES Implementationfor DRM Applications,Proceedings of the 2nd ACM Workshop on Digital RightsManagement 1-15,2002。
发明内容
虽然所附权利要求针对特征的特定组合,但是应理解,本公开的范围还包括本文公开的任意新颖特征或特征的新颖组合。
在单独实施例的上下文中描述的特征还可以被提供为单个实施例中的组合。反之,为了简洁在单个实施例中描述的各个特征还可以被单独提供或者以任意合适的子组合提供。
各种示例性实施例涉及一种使用替换盒实施加密操作的方法,包括:指定针对所述替换盒的自等价函数的集合;确定所述替换盒在自等价函数的所述集合之上的最小多样化数;将所述最小多样化数与阈值进行比较;当所述最小多样化数大于或等于阈值时,利用选择的替换盒包括和实施加密操作。
描述了各种实施例,其中一种使用替换盒执行加密操作的方法包括:接收输入数据;使用与所述替换盒相关联的自等价函数的输入函数来对输入数据进行编码;将所述替换盒应用于编码的数据以产生输出数据,其中,所述替换盒具有大于或等于预定阈值的最小多样化数;以及使用与所述替换盒相关联的自等价函数的输出函数来对输出数据进行解码。
描述了各种实施例,其中一种使用替换盒执行加密操作的方法包括:接收输入数据;使用与所述替换盒相关联的自等价函数的输入函数来分割输入数据;将所述替换盒应用于分割的数据以产生输出数据,其中,所述替换盒具有大于或等于预定阈值的最小多样化数;以及组合输出数据。
附图说明
为了更好地理解各种示例性实施例,将参照附图,其中:
图1示出实施第一加密方法的流程图;
图2示出实施第二加密方法的流程图;
图3示出用于识别具有高于预定阈值的最小多样化数的替换盒(S-box)的方法;以及
图4A至图4C示出实施本文描述的加密方法的系统。
为了便于理解,使用相同附图标记来指定具有基本相同或相似结构和/或基本相同或相似功能的元件。
具体实施方式
已经证明白箱加密难以保护对对称密文的S-box布局的输入。一般来讲,已知攻击集中于固定的编码,该固定编码应用于在上文提到的Chow的两篇论文中公开的白箱实施中的S-box的输入。抵御这些攻击的一种方法可以参考Michiels的美国专利公开No.2012/0002807(“Michiels 1”)。该第一方面通过利用可变编码对输入进行编码来操作。抵御这些攻击的另一方法可以参考Michiels的美国专利申请No.14/219,606(“Michiels 2”)。该第二方法通过使用分割函数将输入分割为块来操作。这两种方法都通过针对S-box构建自等价的集合V=V1×V2来操作,其中,Vi是仿射函数的集合。Michiels 1和Michiels 2都使用了这些自等价。这可以通过定义S-box的自等价的集和V=V1×V2来说明,意味着(其中,S是S-box函数)。V1中的函数是仿射的,并且V2中的函数也可以是仿射的,但是并不必须是仿射的。来自V1的函数用于将S-box的输入映射到不同值。可以使用任何合适的方式来确定仿射自等价分割函数。例如,参照A.Biryukov,C.DeCanniere,A.Braeken和B.Preneel的论文“A Toolbox for Cryptanalysis:Linear andAffine Equivalence Algorithms”,Proceedings of Eurocrypt,2003,pp.33-50(“Biryukov”)中的描述。
现在将进一步描述第一和第二方法。在Michiels 1中,对S-box输入进行可变编码。如果(α,β)是AES S-box的仿射自等价,则在S(x)=y的情况下,将α(x)作为S-box的输入得到输出β(y)。使仿射自等价从1递增。之后,在执行期间,可以对S-box输入执行αi-编码,其中,指数i的选择(即,仿射自等价的选择)是取决于计算的。在附加计算跟踪中,保持跟踪(编码形式的)值i。在S-box之后,该值i用于补偿已用于S-box输入的可变编码。
在Michiels 2中,可对到S-box的输入使用各种分割函数αn。分割函数αn提供表示数据值的不同方式。通常,分割函数αn也是双向单射的,虽然这并不是必须的。
自等价分割函数的集合可以用于分割输入。例如,如果x是到S-box的输入并且y是输出,则在到S-box的输入αn(x)得到输出βn(y)的情况下,函数α和β的对是自等价的。这种函数有利于分割到S-box的输入,因为如果选择了β函数从而它们的组合得到输出值y或y的已知函数,则当等价α函数被用于分割输入时,易于在破坏可能被攻击者谋划的固定编码的同时从S-box获得期望的输出。
使用与S-box的自等价仿射函数的有效性随着每个输入值可以映射到的输出值的数量而增加。当使用自等价时,如果V1具有恒定点,则发生脆弱性,其中,如果针对所有的函数f∈V1,点f(x)都是相同的,则点x被称为恒定点。针对V1存在恒定点是这些方法的可能被攻击者利用的弱点,这是因为针对该x的值编码变为固定。
这些方法的有效性随着每个值x可以映射的值D(x)的数量而增加。我们将D(x)称为x的多样化数(diversification number)。形式上,这表示D(x)=|{f(x)|f∈V1}|。因此,D(x)(多样化数)应该尽可能地大,即,尽可能接近V1的域的大小。
因此,目的在于在置换-仿射-变换网络中(或者在包括这种网络以用作构建块的密文中)构建不会受到上述弱点影响(即,不具有任何恒定点)的S-box,并且其具有针对到网络的所有输入值的尽可能地接近输入值的域的大小的最小多样化数,虽然在实际中可以容忍更小的值,诸如5那么小的值。
在某种程度上更加形式化地,以上要求可以换句话来说:期望在置换-仿射-变换网络中(或者在包括这种网络以用作构建块的密文中)构建n比特S-box,使得其包括自等价的集合其中,α、β具有下文讨论的某些附加性质,从而输入值的最小多样化数接近S的域大小(通常为2n)。
此外,期望集合V1包括仿射函数,并且集合V2包括具有以下性质之一(或两者)的函数:
a)与V1相似,其仅包括仿射函数;或者
b)存在m,使得对于每个(α,β)∈V,我们可以在V中找到m-1个其他函数对,其中,这些对的右手侧与一些仿射函数h进行“异或”运算,或者更精确地说,针对所有(α,β)∈V,存在Γ∈Vn-1,其中,Γi=(αi,βi),使得
现在将描述使用密文的加密系统的实施例的示例,该加密系统使用具有上述性质的具有高最小多样化数的S-box。密文是法伊斯特尔(Feistel)密文。Feistel密文具有以下结构。输入被分割为等价大小的两部分。这些部分被表示为左侧(L0)和右侧(R0)。当加密时,执行r+1次循环,其中,对于循环i=0,1,…,r,计算以下方程:
Li+1=Ri
这里,F是循环函数,K0,K1,…,Kn是循环密钥。当解码时,反转所述处理。这意味着执行r+1次循环,其中,对于循环r-i,其中,i=r,r-1,…,0,计算以下方程:
Ri=Li+1
这里,Feistel密文是本领域公知的。Feistel密文的一个重要性质在于循环函数F不需要是可逆的。
提出的密文还可以具有例如16次循环以及128的块大小。循环函数F可以被定义为置换-仿射-变换网络。这种网络可以连续包含:(i)密钥添加运算;(ii)扩展运算符;(iii)S-box层;(iv)矩阵乘法。形式上地,以上循环函数可以写作:
在该定义中,表示将其64比特输入与64比特密钥K进行“异或”的函数。这是64比特运算,因为如上所述,Feistel密文用于将128比特状态一分为二并对每一半执行运算。扩展函数E通过在每个字节之后添加1个比特来扩展其输入。M是某个任意64×72比特矩阵(但是在密文规定中它是固定的)。S8是包括应用S-box 8次的S-box层,其中,S-box是9比特S-boxS:29→29,其将在下文中阐述。S-box层S8将其72个比特分割成9比特的字,并将S-boxS应用于这8个字中的每个字。
现在将阐述具有上述性质的S-box以实现高最小多样化数。通过在由固定-仿射-映射(该映射描述于AES规定中)跟随的GF(28)中的乘法倒置而给出AES S-box。然而,S-box可以仅被描述为乘法倒置,即,S(x)=x-1。此外,在GF(29)而不是GF(28)中采用该倒置。由于扩展运算子E,到S-box S的每个输入从1开始,这意味着输入被确保为非零。因此,S-box具有S:29\{0}→\29\{0}。此外,集V可以被描述为:
其中c≠0
其定义了针对S的自等价的集合。容易验证:S的域中的每个元素的多样化数(即,除了0之外的每个9比特值)等于29-1。因此,S-box具有受欢迎的性质,即,具有非常接近的集合V1的域的大小的多样化数(更精确地说,小于所述域的大小的多样化数)
图1示出实施加密方法的流程图。方法100开始于105,之后接收输入数据(110)。输入数据可以是明文数据或加密数据。如果加密函数是加密函数,则输入数据将是明文。如果加密函数是解密函数,则输入数据可以是加密数据。接着,方法100使用自仿射函数分割数据(115)。该分割不是固定分割,并且可以如Michiels 2中描述的那样应用。方法100之后将S-box应用于分割数据以产生输出数据,其中,S-box具有比预定阈值大的最小多样化数(120)。例如,预定阈值可以是5。在一些实施(诸如许多白箱实施)中,S-box可以与加密密钥融合。接着,方法100组合输出数据(125)。组合将对应于使用的分割。方法可以随后在130结束。方法100对应于包括和重复多次循环的更复杂的加密函数中的单次循环。此外,方法100还可以操作于将被加密/解密的数据的一部分,并且在此情况下,方法100可以针对将被加密/解密的数据的每部分而重复。
图2示出实施第二加密方法的流程图。方法200开始于205,之后接收输入数据(210)。输入数据可以是明文数据或加密数据。如果加密函数是加密函数,则输入数据将是明文。如果加密函数是解密函数,则输入数据可以是加密数据。接着,方法200使用自仿射函数对输入数据进行编码(215)。该编码不是固定编码,并且可以如Michiels 1中描述的那样应用。方法200之后将S-box应用于编码数据以产生输出数据,其中,S-box具有比预定阈值大的最小多样化数(220)。在一些实施(诸如许多白箱实施)中,S-box可以与加密密钥融合。接着,方法200对输出数据进行解码(225)。解码将对应于使用的编码。方法可以随后在230结束。方法200对应于包括和重复多次循环的更复杂的加密函数中的单次循环。此外,方法200还可以操作于将被加密/解密的数据的一部分,并且在此情况下,方法200可以针对将被加密/解密的数据的每部分而重复。
图3示出用于识别具有高于预定阈值的最小多样化数的S-box的方法。方法300可以开始于305。接着,方法300选择S-box(310)。S-box是将用于加密函数中的替换盒。之后,方法300将确定针对S-box的自仿射函数的集。可以如在上文提到的Biryukov中描述的那样实现该操作。还可以使用确定针对S-box的自仿射函数的集的任何其它方法。接着,方法300确定针对输入的自仿射函数的每个输入的多样化数(320)。自仿射函数对的输入函数是如上所述的应用于S-box的输入的函数α或V1。这些输入函数将具有输入域。在该输入域中的每个值将具有多样化数,多样化数指示针对该值的输入函数在输出域中的不同元素的数量。这可以通过例如以下操作来实现:将每个输入域值输入到输入函数中,并且随后确定在经过针对每个输入的函数之后得到的唯一输出值的数量。之后,方法300可以确定针对先前确定的自仿射函数的集的最小多样化数(325)。接着,方法300可以将最小多样化数与阈值进行比较(330)。当最小多样化数大于或等于阈值时,方法300随后可以使用S-box来执行加密函数(335)。加密函数可以是使用S-box的任何类型的加密函数。方法随后可以在340结束。在S-box不具有任何自仿射函数(除明显的识别函数以外)的情况下,或者在最小多样化数小于阈值的情况下,方法300可以结束。
服务或内容提供者或者其它类型的提供者可以创建或获得实施本文描述的发明的程序密码。示意性地,这种密码可以包含与本文描述的S-box和/或循环函数的对称密钥密文。密码可以在提供者的控制下存储在服务器上。服务器可以将密码存储在非暂时性机器可读存储介质中。基于来自用户的请求,提供者可以允许用户下载密码;密码可以由用户存储在非暂时性机器可读存储介质中。在下载之前,非暂时性机器可读存储介质处于第一状态,之后下载将非暂时机器可读存储介质变换为第二状态。下载的处理还可以在服务器的非暂时性机器可读存储介质中创建状态变换。随后,相同或另一提供者(这里称为“第二提供者”,然而第二提供者可以是第一提供者)可以创建或者获得使用对称密钥密文加密的信息(诸如金融信息、娱乐内容、游戏内容等)。第二提供者可以允许相同用户下载加密的信息。该加密信息或加密信息的部分可以被用户存储在非暂时性机器可读存储介质上,从而将这种非暂时性机器可读存储介质从第一状态变换为第二状态。用户可以使用已经下载的对称密钥密文对信息解密,并将该信息用于娱乐、游戏、金融计划等。因此,可以实现提供者和用户之间的安全信息或内容的交换。
如在图4A至图4D中所示。在图4A中,用户设备401(可以是计算机、智能电话、智能卡等,如在下文进一步列出)包含处于第一状态的非暂时性可读机器可读存储设备403(为了方便,在图4A至图4D的讨论中将其称为“存储器”)。提供者设备402(示意性地可以是服务器或计算机)具有处于第一状态的存储器404,其包含以对称密钥密文形式描述的本发明的实施例。用户设备401向提供者设备402发送请求500。用户设备401可以是具有存储器和处理器的能够接收对称密钥密文的任何设备。随后,在图4B中,提供者设备402向用户401发送对称密钥密文的拷贝(诸如由附图标记501所示的传输)。用户设备401存储对称密钥密文导致存储器403从第一状态变换为第二状态。此外,从提供者存储器404检索对称密钥密文导致存储器404中(由于用于检索对称密钥密文的处理)的各种状态改变。现在,用户设备401可以向相同提供者设备402或另一提供者设备602发送请求。在图4C中,请求被发送到另一提供者设备602,但是提供者设备402也可能是请求的接收方。在图4D中,提供者设备602向用户设备401提供利用对称密钥密文加密的信息503(如上所述,诸如金融信息、娱乐内容、游戏内容或其它信息)。在存储器403(或在用户的控制在不同存储器)中存储加密信息导致该存储器从第一状态变换为第二状态。随后,用户设备401使用处理器408对加密信息进行解密并使用该信息。在一些实施例中,用户设备401可以是两个设备,其中之一接收对称密钥密文,而另一个接收加密信息。设备的链接使得解密能够通过例如从最初接收到对称密钥的设备到另一设备的这种对称密钥的安全传输,而发生在这两个设备的一个或另一个上。
甚至在用户设备401的控制被试图推导对称密钥或密文的敌方掌控的情况下,本文描述的处理也可以发挥有利作用。即使在各种不利情况下,加密信息的发送方(和用户)也可以获得加强的安全性。
本发明的实施例可以应用于各种加密方法和装置,包括例如对称和非对称加密操作和装置。本发明可以应用于哈希函数。在哈希函数用于密钥哈希消息鉴别码(HMAC或KHMAC)的情况下,后者尤其有用。根据本发明实施例的方法可以实施在计算机上作为计算机实施的方法,或者实施在专用硬件中,或者实施在两者的组合中。根据本发明的方法的可执行代码可以存储在非暂时性机器可读存储介质上。这种介质的示例包括存储器设备、光学存储设备、集成电路、服务器、线上软件、智能卡、专用计算机、处理器等。
在本发明的实施例中,计算机程序可以包括适于当计算机程序运行在计算机上时执行根据本发明的方法的步骤的程序代码。优选地,计算机程序实施在非暂时性机器可读存储介质上。
此外,由于白箱加密通常非常复杂和/或被打乱,因此编写起来非常枯燥。因此,根据本发明实施例的以自动方式创建加密系统的方法是有利的。
根据本发明实施例的创建加密系统的方法可以实施在计算机上作为计算机实施的方法,或者实施在专用硬件中,或者实施在两者的组合中。根据本发明的方法的可执行代码可以存储在非暂时性机器可读存储介质上。在这种方法中,计算机程序可以包括适于当计算机程序运行在计算机上时执行本方法的所有步骤的程序代码。
实现根据本发明实施例的创建加密系统的方法的算法可以实施在计算机上作为计算机实施的方法,或者实施在专用硬件中,或者实施在两者的组合中。根据本发明的方法的可执行代码可以存储在非暂时性机器可读存储介质上。在这种方法中,计算机程序可以包括适于当计算机程序运行在计算机上时执行本算法的所有步骤的程序代码。
在处理器上运行的用于实施本发明实施例的特定软件的任何组合构成专用机器。
本发明的实施例的实施例的硬件系统实施可以包括实施白箱实施的基本块的硬件元件。这些硬件元件可以包括例如查找表或有限状态机。这些硬件元件可以相互连接已全面地执行这种白箱实施。
如本文所使用的,术语“非暂时性机器可读存储介质”将被理解为不包括暂时性传播信号,而是包括易失性和非易失性存储器的所有形式。
如本文所使用的,术语“处理器”将被理解为包含各种设备,诸如微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)和其它类似处理设备。当软件被实施在处理器上时,组合可以成为单个专用机器。
本领域技术人员将理解,本文的任何框图可以表示实施本发明原理的示意性电路的概念图。
虽然已经参照特定示例性方面详细描述了各示例性实施例,但是应理解,本发明能够具有其它实施例,并且其细节能够在各种明显方面修改。本领域技术人员将容易理解,在维持在本发明精神和范围内的前提下,可以进行变化和修改。因此,以上公开、描述和附图仅仅是示意性的,而不以任何方式限制仅由权利要求限定的本发明。
参照特定示意性示例描述各示意性实施例。选择示意性示例以帮助本领域普通技术人员形成对各实施例的清楚理解并进行实践。然而,系统、结构和设备的范围可以被构建为具有一个或多个实施例,并且可以根据一个或多个实施例实施的方法的范围不以任何方式被限制为所呈现的特定示意性示例。相反,本领域普通技术人员将认识到,基于本描述,可以实施根据各实施例的许多其它配置、布置和方法。
对于在描述本发明时使用的关于扩展方位的指定(诸如顶、底、上、下),将理解,参照相应附图给出这些指定,并且如果在制造或操作期间设备的方位改变,则可以应用其它位置关系。如上所述,为了清楚而非限制描述了这些位置关系。
已经参照特定实施例并且参照特定附图描述了本发明的实施例,但是本发明不限于此,相反,本发明仅由权利要求阐述。描述的附图仅仅是示意性的而非限制的。在附图中,为了示意性目的,各元件的尺寸可以被夸大并且不按照特定比例画出。本发明意在包括在相关容差和组件性质及其操作模式方面的不重要的变化。意图覆盖本发明的不完美的实践。
在本描述和权利要求中使用术语“包括”的情况下,其不排除其它元件或步骤。在当指代单个名词时使用不定冠词或定冠词(例如“一”、“一个”或“该”)时,其包括该名词的复数,除非上下文另有明确阐述。因此,术语“包括”不应被解释为限制于其后所列出的项目;其不排除其它元件或步骤,并且因此表述“包括项目A和B的设备”的范围不应被限制为仅包括组件A和B的设备。该表述指明针对本发明,设备的相关组件仅是A和B。
Claims (17)
1.一种使用替换盒实施加密操作的方法,包括:
指定针对替换盒S(x)的自等价函数α(x)、β(y)的集合,其中α(x)输入到替换盒,S(x)=y时替换盒的输出为β(y),x为替换盒的输入而y是替换盒的输出;
确定所述替换盒在自等价函数的所述集合之上的最小多样化数,其中多样化数指示针对每个输入的输入函数在输出域中的不同元素的数量;
将所述最小多样化数与阈值进行比较;以及
当所述最小多样化数大于或等于阈值时,利用选择的替换盒实施加密操作。
2.如权利要求1所述的方法,其中:
所述自等价函数的集合包括针对所述替换盒的输入函数的集合和输出函数的集合;
确定替换盒的最小多样化数还包括:确定针对每个输入函数的每个输入的多样化数;以及
在针对每个输入函数的每个输入的多样化数中确定最小多样化数。
3.如权利要求1所述的方法,其中,所述加密操作包括:
接收输入数据;
使用所述自等价函数对输入数据进行编码;
将编码的输入数据输入到所述替换盒中以获得输出数据;
使用所述输出函数对所述输出数据进行解码。
4.权利要求3所述的方法,其中,对输入数据进行编码还包括:
基于具有关联标识符的输入数据选择所述自等价函数的集合中的一个;以及
将所述关联标识符安全地向对输出数据进行解码的解码器传输。
5.权利要求4所述的方法,其中,对输出数据进行解码还包括:使用由安全传输的标识符识别的自等价函数对输出数据进行解码。
6.权利要求1所述的方法,其中,所述自等价函数的输入函数是仿射的。
7.权利要求6所述的方法,其中,所述自等价函数的输出函数是仿射的。
8.权利要求2所述的方法,其中,所述加密操作包括:
接收输入数据;
使用所述自等价函数分割输入数据;
将分割的输入数据输入到所述替换盒中以获得输出数据;以及
组合所述输出数据。
9.权利要求1所述的方法,其中,所述阈值是5。
10.一种使用替换盒执行加密操作的方法,包括:
接收输入数据;
使用与所述替换盒S(x)相关联的自等价函数α(x)、β(y)的输入函数来对输入数据进行编码,其中α(x)输入到替换盒,S(x)=y时替换盒的输出为β(y),x为替换盒的输入而y是替换盒的输出;
将所述替换盒应用于编码的数据以产生输出数据,其中,所述替换盒具有大于或等于预定阈值的最小多样化数,并且,其中多样化数指示针对每个输入的输入函数在输出域中的不同元素的数量;以及
使用与所述替换盒相关联的自等价函数的输出函数来对输出数据进行解码。
11.权利要求10所述的方法,其中,所述预定阈值是5。
12.权利要求10所述的方法,其中,对输入数据进行编码还包括:
基于具有关联标识符的输入数据选择所述输入函数中的一个;以及
将所述关联标识符安全地向对输出数据进行解码的解码器传输。
13.权利要求12所述的方法,其中,对输出数据进行解码还包括:使用由安全传输的标识符识别的输出函数对输出数据进行解码。
14.一种使用替换盒执行加密操作的方法,包括:
接收输入数据;
使用与所述替换盒S(x)相关联的自等价函数α(x)、β(y)的输入函数来分割所述输入数据,其中α(x)输入到替换盒,S(x)=y时替换盒的输出为β(y),x为替换盒的输入而y是替换盒的输出;
将所述替换盒应用于分割的数据以产生输出数据,其中,所述替换盒具有大于或等于预定阈值的最小多样化数,并且,其中多样化数指示针对每个输入的输入函数在输出域中的不同元素的数量;以及
组合所述输出数据。
15.权利要求14所述的方法,其中,所述预定阈值是5。
16.权利要求14所述的方法,其中:
分割所述输入数据还包括:基于所述输入数据使用N个输入函数来将所述输入数据分割成N个分割的输入数据;以及
将分割的输入数据输入到替换盒以获得输出数据还包括:将N个编码的输入数据输入到所述替换盒以获得N个输出数据。
17.权利要求16所述的方法,其中,组合输出数据还包括:组合所述N个输出数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/577,342 | 2014-12-19 | ||
US14/577,342 US9819486B2 (en) | 2014-12-19 | 2014-12-19 | S-box in cryptographic implementation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105721135A CN105721135A (zh) | 2016-06-29 |
CN105721135B true CN105721135B (zh) | 2019-11-29 |
Family
ID=54770911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510958687.4A Active CN105721135B (zh) | 2014-12-19 | 2015-12-18 | 使用替换盒实施加密操作的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9819486B2 (zh) |
EP (1) | EP3035585B1 (zh) |
CN (1) | CN105721135B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102014016548A1 (de) * | 2014-11-10 | 2016-05-12 | Giesecke & Devrient Gmbh | Verfahren zum Testen und zum Härten von Softwareapplikationen |
US10205710B2 (en) * | 2015-01-08 | 2019-02-12 | Intertrust Technologies Corporation | Cryptographic systems and methods |
DE102015014038A1 (de) * | 2015-10-30 | 2017-05-04 | Giesecke & Devrient Gmbh | Alternative Darstellung des Krypto-Algorithmus DES |
FR3078464A1 (fr) * | 2018-02-26 | 2019-08-30 | Stmicroelectronics (Rousset) Sas | Procede et circuit de mise en oeuvre d'une table de substitution |
US11218291B2 (en) * | 2018-02-26 | 2022-01-04 | Stmicroelectronics (Rousset) Sas | Method and circuit for performing a substitution operation |
FR3078463A1 (fr) * | 2018-02-26 | 2019-08-30 | Stmicroelectronics (Rousset) Sas | Procede et dispositif de realisation d'operations en table de substitution |
WO2019190411A1 (en) * | 2018-03-29 | 2019-10-03 | Agency For Science, Technology And Research | Method and system for generating a keccak message authentication code (kmac) based on white-box implementation |
US11632231B2 (en) * | 2020-03-05 | 2023-04-18 | Novatek Microelectronics Corp. | Substitute box, substitute method and apparatus thereof |
KR20210153423A (ko) * | 2020-06-10 | 2021-12-17 | 한국전자통신연구원 | 곱셉 역원 연산 회로, 장치 및 방법 |
CN113162755B (zh) * | 2021-02-03 | 2022-12-20 | 北京信息科学技术研究院 | 一种轻量级8比特s盒的构造方法及其电路 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6031911A (en) * | 1996-07-18 | 2000-02-29 | Entrust Technologies, Ltd. | Practical S box design |
CN101764686A (zh) * | 2010-01-11 | 2010-06-30 | 石家庄开发区冀科双实科技有限公司 | 一种用于网络与信息安全的加密方法 |
CN101938349A (zh) * | 2010-10-01 | 2011-01-05 | 北京航空航天大学 | 一种适用于硬件实现的s盒及其电路实现方法 |
CN102006161A (zh) * | 2010-12-02 | 2011-04-06 | 北京航空航天大学 | 一种对称密钥加密的非线性变换方法及其实现装置 |
CN102013974A (zh) * | 2010-11-30 | 2011-04-13 | 北京航空航天大学 | 基于随机变化的非线性步骤的加密方法 |
CN102185692A (zh) * | 2011-04-25 | 2011-09-14 | 北京航空航天大学 | 基于aes加密算法的多模式可重构加密方法 |
CN103368725A (zh) * | 2012-04-06 | 2013-10-23 | 中国科学院软件研究所 | 一种g0类s盒构造方法及其电路 |
CN103378968A (zh) * | 2012-04-16 | 2013-10-30 | 中国科学院软件研究所 | 一种g1类s盒构造方法及其电路 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10319435B4 (de) | 2003-04-25 | 2018-07-26 | Whitecryption Corporation | Verfahren zur Verarbeitung von Daten zum Schutz eines Softwareprogramms vor Rekonstruktion |
CN102461058B (zh) | 2009-03-10 | 2015-06-03 | 耶德托公司 | 具有输入相关编码的白盒密码系统 |
US9584310B2 (en) | 2014-03-19 | 2017-02-28 | Nxp B.V. | Protecting a white-box implementation against attacks |
-
2014
- 2014-12-19 US US14/577,342 patent/US9819486B2/en active Active
-
2015
- 2015-11-30 EP EP15197131.4A patent/EP3035585B1/en active Active
- 2015-12-18 CN CN201510958687.4A patent/CN105721135B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6031911A (en) * | 1996-07-18 | 2000-02-29 | Entrust Technologies, Ltd. | Practical S box design |
CN101764686A (zh) * | 2010-01-11 | 2010-06-30 | 石家庄开发区冀科双实科技有限公司 | 一种用于网络与信息安全的加密方法 |
CN101938349A (zh) * | 2010-10-01 | 2011-01-05 | 北京航空航天大学 | 一种适用于硬件实现的s盒及其电路实现方法 |
CN102013974A (zh) * | 2010-11-30 | 2011-04-13 | 北京航空航天大学 | 基于随机变化的非线性步骤的加密方法 |
CN102006161A (zh) * | 2010-12-02 | 2011-04-06 | 北京航空航天大学 | 一种对称密钥加密的非线性变换方法及其实现装置 |
CN102185692A (zh) * | 2011-04-25 | 2011-09-14 | 北京航空航天大学 | 基于aes加密算法的多模式可重构加密方法 |
CN103368725A (zh) * | 2012-04-06 | 2013-10-23 | 中国科学院软件研究所 | 一种g0类s盒构造方法及其电路 |
CN103378968A (zh) * | 2012-04-16 | 2013-10-30 | 中国科学院软件研究所 | 一种g1类s盒构造方法及其电路 |
Also Published As
Publication number | Publication date |
---|---|
US20160182227A1 (en) | 2016-06-23 |
US9819486B2 (en) | 2017-11-14 |
CN105721135A (zh) | 2016-06-29 |
EP3035585B1 (en) | 2020-03-25 |
EP3035585A1 (en) | 2016-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105721135B (zh) | 使用替换盒实施加密操作的方法 | |
CN105187364B (zh) | 保护白盒实现方案不受攻击 | |
CN105049400B (zh) | 在白盒实现方案中拆分s盒以防止攻击 | |
CN105024803B (zh) | 白箱实现中的行为指纹 | |
CN105184115B (zh) | 用于将隐式完整性或可信性检查包括到白箱实现中的方法 | |
US10015009B2 (en) | Protecting white-box feistel network implementation against fault attack | |
CN105024992B (zh) | 在单个白箱实现中实现使用相关安全性设置 | |
EP2922235B1 (en) | Security module for secure function execution on untrusted platform | |
CN105095695B (zh) | 经由白箱实现的不正确功能行为实现授权 | |
CN106888081A (zh) | 白盒实施方案内中间值的宽编码 | |
CN107273724B (zh) | 为白盒实施方案的输入和输出加水印 | |
CN105022937B (zh) | 用于将白箱实现紧附到周围程序的接口兼容方法 | |
CN105718763A (zh) | 将白盒实现与精简安全单元绑定 | |
CN106209346B (zh) | 白盒密码技术交错查找表 | |
CN109726565A (zh) | 在抗泄漏原语中使用白盒 | |
CN105978680A (zh) | 在白盒实现方案中实现填充 | |
EP2960891B1 (en) | Method for introducing dependence of white-box implementationon a set of strings | |
CN105281893B (zh) | 用于引入白箱实现对串集合的依赖性的方法 | |
CN105024808B (zh) | 无需改变密钥的安全性补丁 | |
CN114430321B (zh) | 基于dfa自适应安全的黑盒可追踪密钥属性加密方法及装置 | |
EP3267618B1 (en) | Equality check implemented with secret sharing | |
Broadnax et al. | Towards Efficient Software Protection Obeying Kerckhoffs's Principle using Tamper-proof Hardware. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |