CN103119888A - 用于不安全环境中的块密码处理的装置和方法 - Google Patents
用于不安全环境中的块密码处理的装置和方法 Download PDFInfo
- Publication number
- CN103119888A CN103119888A CN201180045342XA CN201180045342A CN103119888A CN 103119888 A CN103119888 A CN 103119888A CN 201180045342X A CN201180045342X A CN 201180045342XA CN 201180045342 A CN201180045342 A CN 201180045342A CN 103119888 A CN103119888 A CN 103119888A
- Authority
- CN
- China
- Prior art keywords
- look
- data
- displacement
- xor
- key
- 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.)
- Pending
Links
Images
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/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
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/043—Masking or blinding of tables, e.g. lookup, substitution or mapping
-
- 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)
- Emergency Protection Circuit Devices (AREA)
Abstract
提供通过使用诸如在例如具有在编译时已知或未知的密码密钥的“白盒”模型中实现的AES的块型密码增加诸如解密、加密或数字签名的密码算法的安全性的方法和装置。该方法可安全地用于受信任的环境中,特别是用于使密码密钥安全。这里,通过使得所有这些表具有相同尺寸并且不可区分,并进一步通过掩蔽这些表的输出值,针对攻击保护这种算法的查找表特性,一般地,这里,表实施置换功能或逻辑异或运算。
Description
对于相关申请的交叉引用
本申请要求在2010年8月20日提交的美国专利申请No.12/806,768的优先权。在这里加入该申请的全部内容作为参考。
技术领域
本发明涉及数据安全和加密,更特别地,涉及提高计算机实现的密码处理和算法的安全性。
背景技术
密码算法广泛用于消息的加密、鉴别、加密签名和识别。公知的DES(数据加密标准)已被长时间使用,并被Triple-DES更新,该Triple-DES已在许多应用中被AES(高级加密标准)替代。
DES、Triple-DES和AES是示例性的对称块密码。块密码在通常为64或128位但有时更长的明码文和密码文的块上操作。流密码是其它主要类型的密码,并且,一次1位或字节(有时是一个词)地在明码文和密码文的流上操作。通过块密码,特定的明码文块将总是通过使用相同的密钥被加密成相同的密码文块。但是,与流密码相反,相同的明码文位或字节将在每次被加密时被加密到不同的位或字节。由此,在用于块密码的ECB(电子代码书)模式中,各明码文块被独立地加密。
AES被美国政府批准为加密标准。与DES不同,它是替代置换网络。AES能够迅速地在计算机软件和硬件实现两者中执行、实现起来相对容易并且需要很少的存储器。AES具有128位的固定的块尺寸和为128、192或256位的密钥尺寸。由于128位的固定的块尺寸,因此AES在4×4阵列的字节上操作。它使用密钥扩展等,并且与大多数块密码类似,使用一组加密和解密轮次(迭代)。每轮次包含相同的处理。使用多个轮次能够提高安全性。这种类型的块密码在各轮次中使用替代盒或s盒。该操作在密码中提供非线性,并明显地提高安全性。
注意,这些块密码是对称的密码,从而意味着,除了通常用于密钥调度的较小差异以外,对于加密和解密使用相同的算法和密钥。大多数现在的密码的典型的情况是,安全性取决于(秘密)密钥而不是算法。s盒或替代盒被引入DES中,并且接收n位输入并提供m位输出。m和n的值随密码改变。输入位以本领域公知的特定方式规定s盒中的条目。
为了实现AES(具有128位的块和10轮次),在运算上包含以下运算:(1)11个AddRoundKey运算(1个在10轮次之前);(2)10个Sub-Byte运算;(3)10个ShiftRow运算和(4)9个Mix-Column运算。第1~9轮次中的每轮次包含运算(1)~(4),这里,来自一个运算的输出被输入到下一运算,并且,来自运算(4)的输出被输入到运算(1)。轮次10包含运算(1)~(3),这里,来自运算(3)的输出是使用的输出。如果攻击人员具有访问实现密码的系统的特权,那么AES的运算实现对于恢复密钥的攻击人员不能提供更多的安全性。
许多加密算法主要与产生抵抗攻击人员的解码的加密数据有关,该攻击人员只能与仅作为“黑盒”(输入输出)模型的加密算法交互作用,并且,由于缺少系统访问等,不能看到算法或存储器内容的内部工作。黑盒模型适于受信任方对于编码和解码加密材料均控制计算系统的应用。
但是,加密的许多应用不允许攻击人员不能访问算法的内部工作的假定。例如,加密的数字媒体常常需要在完全由对手(攻击人员)控制的计算系统上被解密。存在许多可松弛黑盒模型的程度。极端的松弛被称为“白盒”模型。在白盒模型中,假定攻击人员完全能够访问执行加密的系统,包括能够直接看到存储器的状态和程序执行等。在这种模型中,可在存储器中看到或者从中提取加密密钥,因此,隐藏指示密钥的运算的方式是十分重要的。
公开“White-Box Cryptography in an AES implementation”Lecture Notes in Computer Science Vol.2595,Revised Papers fromthe 9th Annual International Workshop on Selected Areas inCryptography pp.250-270(2002)by Chow et al.公开了如下的AES的实现,即通过使用表格查找以掩盖在AES中执行的运算,从而掩盖查找表格内的密钥,并且掩盖另外可用于AES的运算实现的中间状态信息。
Chow et al.(对于他的在计算机代码编译时间已知密钥的“白盒”实现)使用160个单独的表格以实现11个AddRoundKey运算和10个SubByte运算(10轮次,每轮次16个表,这里,每个表用于16字节长-128比特-AES块的1字节)。这160个表嵌入特定的AES密钥,使得来自包含这些表的查找的输出嵌入一般源自AES算法的AddRoundKey和SubByte运算的数据,除了该数据包含使得更加难以确定这些表的哪些部分代表从AES密钥导出的轮次密钥信息的输入/输出置换以外。
Chow et al.使用1008个单独的表以实现9个MixColumn运算(在AES的第10轮次中不存在MixColumn运算)。一种类型的这些表实现一个字节与AES MixColumn多项式(按规范)的乘法,并且,另一类型实现MixColumn的逻辑XOR(异或)部分。各表在9个轮次中被使用一次。
Chow et al.方案是更加聪明的,但已受到几次攻击。Chow et al.的给定块密码加密处理的白盒实现将块密码(以及其密钥)分解成一组表查找。然后通过使用置换功能掩蔽表查找。(这里使用的置换指的是以预定的方式改变数据字节或词中的位的次序的双射运算)。这一点在Chow et al.中被解释,并且,该方法可扩展到任何块密码。
Olivier Billet et al.“Cryptanalysis of a White Box AESImplementation”in SAC2004,LNCS3357pp.227-240,2005公开了最近和最有力的这些扩展。要进行攻击必需处理的基本运算的细节。这意味着攻击人员必须区分一组运算以提取每轮次的运算、MixColumn运算等。
发明内容
意图是阻止这种攻击的本方法及其相关的装置包括构建AES(或包含任何块密码算法的其它加密算法)实现作为各自不可相互区分并被掩蔽的一组基本表运算。由此,攻击人员迷失于或者受困于体现密码的计算机代码(对于被动攻击)和/或计算机代码执行路径(对于主动攻击)。也可在被设计为实施密码处理的硬件(基于电路)装置中实现该方法。
以上提到的Billet等攻击是分解成一组基本问题以逐步获得关于被用于隐藏密码运算和密钥的掩蔽的信息的处理。当掩蔽已知时,则很容易恢复密码密钥本身。
只要攻击人员能够将构成AES算法的轮次的表重新分组,Billet等攻击使得攻击人员能够恢复输出变换的非线性部分。例如,Billet等表示如何从Billet等恢复在诸如图1所示的MixColumn“盒”10中使用的函数Q的非线性部分,并且表示四个输入字节和四个输出字节之间的盒10中的四个映射中的一个。输入字节是x0、x1、x2和x3,输出字节是y0、y1、y2和y3。每个这种盒由具有各输出置换Q的四个8位到8位置换构成。因此,在第一阶段中,为了能够计算包含于一个AES轮次中的表,恢复在存储器中出现的表中的每一个的角色,以构建一个轮次的运算的以下组合。
本密码处理的目的是使得该任务更难。事实上,在AES的当前已知的版本中,一些表比其它的表大,并且,一些运算不是“白盒”。图1中的MixColumn表具有8×32个元素而不是其它表的8×8元素的尺寸。并且,与其它的表的输出相反,某些表的输出在逻辑上为被XOR(异或)。
由于由此这些运算是可区分的,因此能够使白盒环境中的攻击人员确定什么时候完成AES轮次以及什么开始新的一个。
本方法的目的是,使这些表构建为均具有严格相同的尺寸,由此针对这种攻击急剧强化。由于AES密码算法的计算的结构,可使用尺寸为8位输入×4位输出(具有128字节的尺寸)、16位输入×8位输出(65K字节)或32位输入×16位输出(8G字节)的表。示例性的选择是各自具有尺寸为8位(1字节)×4位(四位组)的表。以下给出的处理具有8×4表尺寸,但是,处理很容易被一般化为其它的表尺寸。注意,这些表用于置换和逻辑运算;它们不是AES密码的“S盒”替代运算特性。
这里加入共有的美国专利申请公开US2009/0252327A1“Combination White Box/Black Box Cryptographic Processes andApparatus”Ciet et al.和US2010/0054461A1“Systems and Methods forImplementing Block Cipher Algorithms on Attacker-ControlledSystems”Ciet et al.的全部内容作为参考。
附图说明
图1表示现有技术中的AES MixColumn运算中的映射。
图2以图示的方式表示XOR运算表或“盒”
图3表示置换盒。
图4A、图4B表示分解的图3的置换。
图5表示XOR表的孪生。
图6表示图5表的一般形式。
图7表示完成的XOR表。
图8A、图8B和图8C表示掩蔽置换。
图9表示计算系统。
图10表示图9系统的细节。
具体实施方式
以上描述的类型的表输入数据字节,但返回数据四位组(四位组是半个字节)。以AES密码为例,本发明的发明人确定对于AES算法来说两种类型的8×4表是足够的:
(a)实现8位输入(2个四位组)与4位(1个四位组)输出的表由此在输出侧被限于1个四位组。在这种情况下,为了代表输入数据的1字节的置换功能,需要两个8×4表。
(b)在掩蔽的四位组上实现逻辑XOR运算的表。这些表输入两个掩蔽四位组,逐位地计算两个四位组的逻辑XOR,并返回单个掩蔽的四位组。
具有根据本发明的相同尺寸表不意味着表是不可区分的。甚至通过使用输入和输出置换掩蔽表,那么情况也更是如此。本发明的发明人已识别区分攻击人员可使用的表的第一种方式。因此,即使所有的包含的表具有相同的尺寸,它们也很容易被区分。事实上,XOR运算表是分组定律的表。由此,对于任何四位组,存在唯一的四位组,使得通过“盒”(表)的输出为0。(术语“盒”指的是表或在表中体现的逻辑或算术运算,而不是制“白盒”环境)。也对于组[1,24-1]内的任何值验证该特性(区分符),它们是XOR运算表的其它可能的输出。
该后一特性确保XOR运算表的各输出确切地具有16个预先图像。(加密中的预先图像是映射到特定的输出的一个或者多个值)。由此,如果在计算内使用XOR运算表,那么攻击人员能够通过使用已知的预先图像攻击检测它们,并能够获得关于包含这些表的结构的实现的有用的信息。
本发明的发明人还识别了区分这两种类型的表的第二种方式(特性)。代表置换的一半的各8×4表必然具有作为置换的第二部分的“孪生”表。如果A和B的联结表C为C[i]=A[i]||[i]并且A、B和C接收相同的输入,并且,对于任何输入,表C的输出是A和B输出的联结,并且,C是置换,那么特定表A的“孪生”是表B,这里,“||”表示联结。因此,给定特定的XOR运算表A,它未必具有存在于任何特定的密码算法中的孪生表B。但事实上能够构建这种表B。因此,在本处理中,对于各XOR运算表A构建这种附加的表B,并且,使用这些附加的表B。注意,为了节约软件实施例中的计算机代码,可对于两个这种XOR运算表构建输入和输出置换,使得它们孪生。
代表XOR运算的8×4表没有上面解释的这种孪生,原因是它输入两个四位组并返回单个四位组。由此,先验的,在一组8×4表中,很容易从其它的表区分XOR运算表,并且,这不希望地关于表的类型向攻击人员给出实现的信息。
以下是用于隐藏作为置换的一部分或作为XOR运算表的表的性质以挫败这两种区分表的方式的在计算上有效的方法。使由X表示的数据字节为表示为X0和X1的两个四位组的联结,它在代数上表达为:
X0||X1。
这里,输入X0和X1的XOR运算表由图2中的盒12代表。
使输入字节X(X0||X1)上的表示为P的置换的结果为表示为P0、P1的两个置换的联结,因此,P0(X0||X1)和P1(X0||X1)表达为:
P0(X0||X1)||P1(X0||X1)
这里,P0和P1被应用到X上而不是仅应用于X的一部分上。
还通过图3所示的尺寸8×8的盒14代表置换P。如上面解释的那样,置换可被分解成分别在图4A、图4B中表示的两个子表P016和P118。
以下描述构建用于XOR运算的孪生表,以挫败第二种区分表的方式。如上面解释的那样,算法中的XOR运算表不具有被定义(见上)为当与XOR运算表相关时进行置换的任何孪生表。但是,很容易地实现这种表的构建。事实上,存在作为XOR表的孪生的许多表。例如,图5所示的表示为Q的函数20为它们中的一个。在图6中表示这种表22的一般形式,这里,F是表示为的函数,该函数以字节(X0,X1)为输入并且输出并且是双射。
以下描述使得XOR表不可区分,由此挫败第一种区分的方式。这包括隐藏关于XOR运算表的预先图像的数量的特性。假定存在作为在上面描述并且在图7中表示的完整的XOR运算表24的置换。为了隐藏从XOR运算表制作其上部,在第一步骤中,计算分别表示为M和R的两个置换,使得对于所有的四位组X0和X1,存在以下关系:
字母M表示“掩蔽”,原因是该置换掩蔽表实际上是XOR运算表。从例如预定的一组置换选择图8A所示的置换M26。一般在计算机源代码被编译成目标(可执行)代码时执行该选择。从表示为M-1的M的逆反置换,用完成的XOR运算表计算M-1的成分。现在存在图8B所示的两个置换M-127和Q28,它们组合成图8C中的置换R29。有利地,单独地取得的这些置换均不具有使得攻击人员能够从随机的置换区分它们的任何特定的特性。
在掩蔽的第二步骤中,掩蔽XOR运算表的输出。事实上,对于安全性来说,从不在计算中暴露正确的数据一般会更好。要这样做,可应用两种方法:
(a)第一方法包括计算4×4随机置换,并用第二置换的上部构成它。
(b)第二方法包括计算8×8随机置换,并用整个第二置换构成它。
在两种情况下,均重新使用最后的计算的置换的逆反。事实上,目标是具有可链接的一组置换。
因此,根据本发明,能够通过使用这些表的上述的构成来代表AES的白盒实现或类似的密码算法的任何表作为一组不可区分的表查找。
得到的密码处理被表达(以计算代码或硬件)为各自具有尺寸8×4的表的一组不可区分表查找。这使得攻击人员很难检索什么与完整的轮次对应以进行其攻击,原因是他难以确定什么时候各轮次开始或结束。当在该处理中在希望时添加增加复杂性的几个“无用”运算(各自包含附加的置换),并且这些附加和无用的表不能与有用的表相互区分时,尤其如此。这些附加的置换通过使得密码算法的一些轮次比其它轮次长提高安全性。在另一实施例中,可在各轮次内在每个字节的基础上添加这种类型的附加的运算。
本方法可扩展到使用诸如18×8或32×16的其它尺寸的表的密码处理。但是,8×4表可能是优选的。
图9表示根据本发明的解密的计算装置(系统)30的框图相关部分。例如,它是计算机、移动电话、智能电话、个人数字助理或类似的设备或者这些设备的一部分,并且其包含在体现密码(例如,加密或解密)处理的以上的例子的一个实施例软件(计算机代码)中执行的常规的硬件部件。该代码可为例如C或C++计算机语言的形式,或者其功能可以由固件或硬件(电路)逻辑的形式被表达;考虑以上的公开,编写这种代码或者设计这种逻辑会是日常工作。
计算机代码在常规上被存储于与处理器38相关的代码存储器(计算可读存储介质,例如,ROM)40(作为目标代码或源代码)中以供处理器38执行。待加密或解密或另外被处理的到来的消息(数据)在端口32上被接收,并被存储于计算机可读存储介质(存储器,例如,RAM)36中,在这里,它与处理器38耦合。处理器38在软件分割模块42中在常规上将消息分成适当的尺寸的块。处理器38中的其它的软件(代码)模块包括实施以上阐述的块密码密码算法功能的算法模块46。
用于存储表的计算机可读存储介质(存储器)52以及用于例如解密或加密的输入数据的得到的输出数据的第三存储设备58也与处理器38耦合。存储位置36、52、58可处于一个或更多个常规的物理存储器装置(诸如半导体RAM或其变体或硬盘驱动器)中。
在图9的各种元件之间以常规的方式承载电信号。在图9中没有示出得到的加密或解密的消息的随后的常规的使用。
图10表示一个实施例中的计算装置的其它细节。图10示出可用于实现本发明的实施例中的处理功能的典型的常规的计算系统60,并表示图9系统的其它的细节。例如,这种类型的计算系统可被用于计算机服务器或用户(客户机)计算机或其它计算设备中。本领域技术人员可以想到如何通过使用其它的计算机系统或结构实现本发明的实施例。计算系统60可代表例如台式、膝上型或笔记本计算机、手持计算设备(个人数字助理(PDA)、蜂窝式电话、掌上型计算机等)、大型机、服务器、客户机或给定的应用或环境所希望的或者适当的任何其它类型的特殊用途或通用计算设备。计算系统60可包括一个或更多个处理器,诸如处理器64(与图9中的处理器38等同)。可通过使用诸如例如微处理器、微控制器或其它控制逻辑的一般用途或特殊用途处理引擎实现处理器64。在本例子中,处理器64与总线62或其它通信介质连接。
计算系统60还可包括用于存储由处理器64执行的信息和指令的诸如随机存取存储器(RAM)或其它动态存储器的主存储器68(与存储器36、52、58等同)。主存储器68还可被用于在执行由处理器64执行的指令的过程中存储暂时变量或其它中间信息。计算系统60可类似地包括与总线62耦合的用于存储用于处理器64的静态信息和指令的只读存储器(ROM)或其它静态存储设备。
计算系统60还可包括可包含例如介质驱动器62和/或可去除存储接口80的信息存储系统70。介质驱动器72可包含用于支持固定或可去除存储介质的驱动器或其它机构,固定或可去除存储介质诸如快擦写存储器、硬盘驱动器、软盘驱动器、磁带驱动器、光盘驱动器、紧致盘(CD)或数字万用盘(DVD)驱动器(R或RW)或其它可去除或固定介质驱动器。存储介质78可包含例如硬盘、软盘、磁带、光盘、CD或DVD或可由介质驱动器72读写的其它固定或可去除介质。如这些例子所示,存储介质78可包含其中存储有特定的计算机软件或数据的计算机可读存储介质。
在替代性实施例中,信息存储系统70可包含用于允许计算机程序或其它指令或数据被加载到计算系统60中的其它类似的部件。这种部件可包含例如可去除存储单元82和接口80,诸如程序盒和盒接口、可去除存储器(例如,快擦写存储器或其它可去除存储器模块)和存储器插槽、以及允许将软件和数据从可去除存储单元78传送到计算系统60的其它可去除存储单元82和接口80。
计算系统60还可包含通信接口84(与图9中的端口32等同)。通信接口84可被用于允许在计算系统60和外部设备之间传送软件和数据。通信接口84的例子可包含调制解调器、网络接口(诸如以太网或其它网络接口卡(NIC))、通信端口(诸如例如USB端口)、PCMCIA插槽和卡等。通过通信接口84传送的软件和数据采用可以为电子、电磁、光学的信号或能够被通信接口84接收的其它信号的形式。这些信号通过信道88被提供给通信接口84。该信道88可承载信号,并且可通过使用无线介质、导线或电缆、光纤或其它通信介质被实现。信道的某些例子包含电话线、蜂窝式电话链路、RF链路、网络接口、局域和广域网和其它通信信道。
在本公开中,可一般使用术语“计算机程序产品”和“计算机可读介质”等以表示诸如例如存储器68、存储设备78或存储单元82的介质。计算机可读介质的这些和其它形式可存储供处理器64使用以导致处理器执行指定动作的一个或更多个指令。这些指令,统称为“计算机程序代码”(可以按计算机程序的形式被分组或者以其它的方式分组),当被执行时使得计算系统60能够执行本发明的实施例的功能。注意,代码可直接导致处理器执行指定动作、被编译以执行指定动作和/或与其它软件、硬件和/或固件元件(例如,用于执行标准功能的库)组合以执行指定动作。
在通过使用软件实现元件的实施例中,可通过使用例如可去除存储驱动器74、驱动器72或通信接口84将软件存储于计算机可读介质中或加载到计算系统60中。控制逻辑(在本例子中,为软件指令或计算机程序代码),当被处理器64执行时,导致处理器64执行这里描述的本发明的实施例的功能。
本公开是解释性的,不是限制性的。考虑本公开,其它的修改对于本领域技术人员来说是十分明显的,并且要落入所附的权利要求的范围内。
Claims (40)
1.一种方法,包括以下动作:
接收输入数据;
在第一计算机可读存储器中存储接收的数据;
在处理器中向存储的数据应用块密码处理,该处理器完成以下操作:
向数据应用各自包含相同尺寸的查找表的多个置换运算;
应用各自包含尺寸与置换查找表相同的查找表并进一步具有掩蔽的输出的多个异或运算,和
在第二计算机可读存储器中存储从块密码处理得到的数据。
2.根据权利要求1的方法,其中,各查找表接收一个数据字节作为输入并且输出数据字节的一半。
3.根据权利要求1的方法,其中,各查找表的尺寸为8位输入和4位输出。
4.根据权利要求3的方法,其中,各查找表的尺寸为16位输入和8位输出。
5.根据权利要求1的方法,其中,各查找表的尺寸为32位输入和16位输出。
6.根据权利要求1的方法,其中,块密码处理符合高级加密标准。
7.根据权利要求1的方法,其中,处理掩盖包含密码处理的密钥的数据。
8.根据权利要求1的方法,其中,密码处理是加密、解密或计算数字签名中的一种。
9.根据权利要求1的方法,其中,向异或运算查找表的输入也被掩蔽。
10.根据权利要求1的方法,其中,置换和异或运算各自在逐位的基础上被执行。
11.根据权利要求1的方法,还包括以下动作:
对于异或运算查找表中的至少一个提供相应的孪生查找表;
提供多个轮次的密码处理;和
在轮次中的至少一个中使用孪生查找表。
12.根据权利要求11的方法,其中,包含孪生查找表的特定的轮次包含比其它轮次多的运算。
13.根据权利要求11的方法,其中,对于数据的各字节,轮次的长度不同。
14.根据权利要求1的方法,其中,对于各异或查找表,数据通过置换被掩蔽。
15.根据权利要求14的方法,其中,数据通过作为第一置换和异或运算的计算的第二置换被掩蔽。
16.根据权利要求14的方法,其中,置换包含两个4要素×4要素置换。
17.根据权利要求14的方法,其中,置换包含8要素×8要素置换。
18.根据权利要求1的方法,其中,用于密码处理的密钥在处理的运行时是已知的。
19.根据权利要求1的方法,其中,密码处理的密钥在处理的代码编译时间是已知的。
20.一种非暂时性计算机可读介质,其存储用于执行权利要求1的方法的计算机代码。
21.一种计算装置,被编程为执行权利要求1的方法。
22.一种装置,包括:
适于接收输入数据的端口;
与端口耦合并适于存储接收的数据的第一计算机可读存储器;
与第一计算机可读存储器耦合并向存储的数据应用块密码处理的处理器,该处理器完成以下操作:
向数据应用各自包含相同尺寸的查找表的多个置换运算;
应用各自包含尺寸与置换查找表相同的查找表并进一步具有掩蔽的输出的多个异或运算,和
在与处理器耦合的第二计算机可读存储器中存储从块密码处理得到的数据。
23.根据权利要求22的装置,其中,各查找表接收一个数据字节作为输入并且输出数据字节的一半。
24.根据权利要求22的装置,其中,各查找表的尺寸为8位输入和4位输出。
25.根据权利要求22的装置,其中,各查找表的尺寸为16位输入和8位输出。
26.根据权利要求22的装置,其中,各查找表的尺寸为32位输入和16位输出。
27.根据权利要求22的装置,其中,块密码处理符合高级加密标准。
28.根据权利要求22的装置,其中,该处理掩盖包含密码处理的密钥的数据。
29.根据权利要求22的装置,其中,密码处理是加密、解密或计算数字签名中的一种。
30.根据权利要求22的装置,其中,向异或运算查找表的输入也被掩蔽。
31.根据权利要求22的装置,其中,置换和异或运算各自在逐位的基础上被执行。
32.根据权利要求22的装置,该处理器还完成以下操作:
对于异或运算查找表中的至少一个提供相应的孪生查找表;
提供多个轮次的密码处理;和
在轮次中的至少一个中使用孪生查找表。
33.根据权利要求32的装置,其中,包含孪生查找表的特定的轮次包含比其它轮次多的运算。
34.根据权利要求32的装置,其中,对于数据的各字节,轮次的长度不同。
35.根据权利要求22的装置,其中,对于各异或查找表,数据通过置换被掩蔽。
36.根据权利要求35的装置,其中,数据通过作为第一置换和异或运算的计算的第二置换被掩蔽。
37.根据权利要求35的装置,其中,置换包含两个4要素×4要素置换。
38.根据权利要求35的装置,其中,置换包含8要素×8要素置换。
39.根据权利要求22的装置,其中,用于密码处理的密钥在处理的运行时是已知的。
40.根据权利要求22的装置,其中,密码处理的密钥在处理的代码编译时是已知的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/806,768 US8644500B2 (en) | 2010-08-20 | 2010-08-20 | Apparatus and method for block cipher process for insecure environments |
US12/806,768 | 2010-08-20 | ||
PCT/US2011/046483 WO2012024086A1 (en) | 2010-08-20 | 2011-08-03 | Apparatus and method for block cipher process for insecure environments |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103119888A true CN103119888A (zh) | 2013-05-22 |
Family
ID=44583403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180045342XA Pending CN103119888A (zh) | 2010-08-20 | 2011-08-03 | 用于不安全环境中的块密码处理的装置和方法 |
Country Status (10)
Country | Link |
---|---|
US (1) | US8644500B2 (zh) |
EP (1) | EP2606603A1 (zh) |
KR (1) | KR20130041353A (zh) |
CN (1) | CN103119888A (zh) |
AU (1) | AU2011292312B2 (zh) |
BR (1) | BR112013004010A2 (zh) |
CA (1) | CA2807636A1 (zh) |
DE (1) | DE112011102765T5 (zh) |
SE (1) | SE1350203A1 (zh) |
WO (1) | WO2012024086A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105007256A (zh) * | 2014-03-20 | 2015-10-28 | 恩智浦有限公司 | 用于在非信任平台上执行安全功能的安全模块 |
CN109478995A (zh) * | 2016-07-12 | 2019-03-15 | 捷德移动安全有限责任公司 | 白盒加密算法实现 |
CN109962768A (zh) * | 2017-12-26 | 2019-07-02 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于白盒aes的航电系统加解密方法 |
CN112002210A (zh) * | 2014-11-10 | 2020-11-27 | 捷德移动安全有限责任公司 | 用于测试并且加固软件应用的方法 |
CN113940028A (zh) * | 2019-03-29 | 2022-01-14 | 爱迪德技术有限公司 | 实现白盒密码的方法和装置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8644500B2 (en) | 2010-08-20 | 2014-02-04 | Apple Inc. | Apparatus and method for block cipher process for insecure environments |
US9274976B2 (en) * | 2010-11-05 | 2016-03-01 | Apple Inc. | Code tampering protection for insecure environments |
US9641337B2 (en) * | 2014-04-28 | 2017-05-02 | Nxp B.V. | Interface compatible approach for gluing white-box implementation to surrounding program |
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 |
US9665699B2 (en) * | 2015-03-13 | 2017-05-30 | Nxp B.V. | Implementing padding in a white-box implementation |
US10015009B2 (en) * | 2015-11-25 | 2018-07-03 | Nxp B.V. | Protecting white-box feistel network implementation against fault attack |
US10171234B2 (en) * | 2015-12-16 | 2019-01-01 | Nxp B.V. | Wide encoding of intermediate values within a white-box implementation |
EP3300291A1 (en) | 2016-09-27 | 2018-03-28 | Gemalto SA | Method to counter dca attacks of order 2 and higher |
FR3061822B1 (fr) | 2017-01-10 | 2019-05-10 | Safran Identity & Security | Procede de chiffrement ou de dechiffrement d'un n-uplet de donnees avec un n-uplet de cles secretes predeterminees |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101040474A (zh) * | 2004-08-12 | 2007-09-19 | Cmla有限公司 | 为提高安全性的置换数据变换 |
CN101536398A (zh) * | 2006-11-17 | 2009-09-16 | 皇家飞利浦电子股份有限公司 | 用于白盒实现的加密方法 |
CN101569131A (zh) * | 2006-12-22 | 2009-10-28 | 爱特梅尔公司 | 密钥保护机制 |
CN101641905A (zh) * | 2006-11-15 | 2010-02-03 | 塞尔蒂卡姆公司 | 隐式证书验证 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6518896B1 (en) * | 2000-01-15 | 2003-02-11 | Sony Electronics, Inc. | Multiple symbol length lookup table |
JP2002261751A (ja) * | 2001-03-02 | 2002-09-13 | Hitachi Ltd | 暗号処理方法 |
US7577250B2 (en) * | 2004-08-12 | 2009-08-18 | Cmla, Llc | Key derivation functions to enhance security |
US8306216B2 (en) * | 2007-01-11 | 2012-11-06 | Irdeto B.V. | Method and system for tracking or identifying copy of implementation of computational method, and computation system |
US8165286B2 (en) | 2008-04-02 | 2012-04-24 | Apple Inc. | Combination white box/black box cryptographic processes and apparatus |
US8175265B2 (en) | 2008-09-02 | 2012-05-08 | Apple Inc. | Systems and methods for implementing block cipher algorithms on attacker-controlled systems |
US8644500B2 (en) | 2010-08-20 | 2014-02-04 | Apple Inc. | Apparatus and method for block cipher process for insecure environments |
-
2010
- 2010-08-20 US US12/806,768 patent/US8644500B2/en active Active
-
2011
- 2011-08-03 KR KR1020137006977A patent/KR20130041353A/ko active IP Right Grant
- 2011-08-03 EP EP11741738.6A patent/EP2606603A1/en not_active Withdrawn
- 2011-08-03 CA CA2807636A patent/CA2807636A1/en not_active Abandoned
- 2011-08-03 DE DE112011102765T patent/DE112011102765T5/de not_active Withdrawn
- 2011-08-03 WO PCT/US2011/046483 patent/WO2012024086A1/en active Application Filing
- 2011-08-03 BR BR112013004010A patent/BR112013004010A2/pt not_active IP Right Cessation
- 2011-08-03 CN CN201180045342XA patent/CN103119888A/zh active Pending
- 2011-08-03 SE SE1350203A patent/SE1350203A1/sv not_active Application Discontinuation
- 2011-08-03 AU AU2011292312A patent/AU2011292312B2/en not_active Ceased
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101040474A (zh) * | 2004-08-12 | 2007-09-19 | Cmla有限公司 | 为提高安全性的置换数据变换 |
CN101641905A (zh) * | 2006-11-15 | 2010-02-03 | 塞尔蒂卡姆公司 | 隐式证书验证 |
CN101536398A (zh) * | 2006-11-17 | 2009-09-16 | 皇家飞利浦电子股份有限公司 | 用于白盒实现的加密方法 |
CN101569131A (zh) * | 2006-12-22 | 2009-10-28 | 爱特梅尔公司 | 密钥保护机制 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105007256A (zh) * | 2014-03-20 | 2015-10-28 | 恩智浦有限公司 | 用于在非信任平台上执行安全功能的安全模块 |
CN105007256B (zh) * | 2014-03-20 | 2018-08-24 | 恩智浦有限公司 | 用于在非信任平台上执行安全功能的安全模块 |
CN112002210A (zh) * | 2014-11-10 | 2020-11-27 | 捷德移动安全有限责任公司 | 用于测试并且加固软件应用的方法 |
CN112002210B (zh) * | 2014-11-10 | 2024-05-31 | 捷德移动安全有限责任公司 | 用于测试并且加固软件应用的方法 |
CN109478995A (zh) * | 2016-07-12 | 2019-03-15 | 捷德移动安全有限责任公司 | 白盒加密算法实现 |
CN109962768A (zh) * | 2017-12-26 | 2019-07-02 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于白盒aes的航电系统加解密方法 |
CN109962768B (zh) * | 2017-12-26 | 2022-03-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于白盒aes的航电系统加解密方法 |
CN113940028A (zh) * | 2019-03-29 | 2022-01-14 | 爱迪德技术有限公司 | 实现白盒密码的方法和装置 |
CN113940028B (zh) * | 2019-03-29 | 2024-03-15 | 爱迪德技术有限公司 | 实现白盒密码的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20120045050A1 (en) | 2012-02-23 |
CA2807636A1 (en) | 2012-02-23 |
AU2011292312B2 (en) | 2014-09-11 |
DE112011102765T5 (de) | 2013-09-19 |
WO2012024086A1 (en) | 2012-02-23 |
AU2011292312A1 (en) | 2013-03-14 |
BR112013004010A2 (pt) | 2016-06-28 |
KR20130041353A (ko) | 2013-04-24 |
SE1350203A1 (sv) | 2013-05-20 |
US8644500B2 (en) | 2014-02-04 |
EP2606603A1 (en) | 2013-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103119888A (zh) | 用于不安全环境中的块密码处理的装置和方法 | |
US10097342B2 (en) | Encoding values by pseudo-random mask | |
EP2924677B1 (en) | Splitting s-boxes in a white-box implementation to resist attacks | |
US8966279B2 (en) | Securing the implementation of a cryptographic process using key expansion | |
US9274976B2 (en) | Code tampering protection for insecure environments | |
EP2922234A1 (en) | Protecting a white-box implementation against attacks | |
Muir | A tutorial on white-box AES | |
US9602273B2 (en) | Implementing key scheduling for white-box DES implementation | |
US9455833B2 (en) | Behavioral fingerprint in a white-box implementation | |
US10461924B2 (en) | Format-preserving cipher | |
US8699702B2 (en) | Securing cryptographic process keys using internal structures | |
EP2922235B1 (en) | Security module for secure function execution on untrusted platform | |
US9485226B2 (en) | Method for including an implicit integrity or authenticity check into a white-box implementation | |
EP3125462A1 (en) | Balanced encoding of intermediate values within a white-box implementation | |
US11436946B2 (en) | Encryption device, encryption method, decryption device, and decryption method | |
EP3477889B1 (en) | Using white-box in a leakage-resilient primitive | |
US20150312223A1 (en) | Realizing authorization via incorrect functional behavior of a white-box implementation | |
EP2960891B1 (en) | Method for introducing dependence of white-box implementationon a set of strings | |
CN113098675B (zh) | 基于多项式完全同态的二进制数据加密系统及方法 | |
EP2940917B1 (en) | Behavioral fingerprint in a white-box implementation | |
EP2363974A1 (en) | Variable table masking for cryptographic processes | |
EP2940677A1 (en) | Method for including an implicit integrity or authenticity check into a white-box implementation | |
EP2940919B1 (en) | Realizing authorization via incorrect functional behavior of a white-box implementation | |
CN114254372B (zh) | 数据加密处理方法、系统及电子设备 | |
EP2940918B1 (en) | Interface compatible approach for gluing white-box implementation to surrounding program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130522 |