CN105191206B - 电子块密码设备、方法和相应的计算机可读存储介质 - Google Patents

电子块密码设备、方法和相应的计算机可读存储介质 Download PDF

Info

Publication number
CN105191206B
CN105191206B CN201480024514.9A CN201480024514A CN105191206B CN 105191206 B CN105191206 B CN 105191206B CN 201480024514 A CN201480024514 A CN 201480024514A CN 105191206 B CN105191206 B CN 105191206B
Authority
CN
China
Prior art keywords
replacement
box
layer
input
block 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
Application number
CN201480024514.9A
Other languages
English (en)
Other versions
CN105191206A (zh
Inventor
W.P.A.J.米奇伊尔斯
P.M.H.M.A.戈里斯森
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN105191206A publication Critical patent/CN105191206A/zh
Application granted granted Critical
Publication of CN105191206B publication Critical patent/CN105191206B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • 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
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Abstract

一种用于加密或解密数字数据的消息块的电子块密码设备,包括:存储单元,其以查找表形式存储多个替换盒,该多个替换盒一起形成块密码的替换层,该替换层被布置成取得替换层输入并将其变换成替换层输出,至少一个替换盒被布置成接收相同替换层中多于一个的另外替换盒的输出中的至少一部分输出的组合作为输入;控制单元,其被配置成通过对数字数据的消息块应用块密码轮的序列来对该消息块应用块密码,块密码轮之一包括替换层。

Description

电子块密码设备、方法和相应的计算机可读存储介质
技术领域
本发明涉及用于加密或解密数字数据的消息块的电子块密码设备,包括:以查找表形式存储多个替换盒的存储单元,这多个替换盒一起形成块密码的替换层,该替换层被布置成取得替换层输入并将其变换成替换层输出;以及控制单元,其被配置成通过对数字数据的消息块应用块密码轮序列来对该消息块应用块密码,块密码轮之一包括替换层。
本发明进一步涉及电子块密码方法和对应的软件。
背景技术
块密码是在密码学中经常使用的本原。块密码是一种用于在密码密钥的控制下加密或解密数字数据的消息块的算法。块密码在某一预定块尺寸(常规地,位尺寸)的数字数据的消息块上运算。常用的块尺寸包括64、128、192和256位。所述运算是确定性双射(并且因此可逆的)运算。已知的块密码包括DES和AES。
例如,内容分发系统可以在分发之前加密内容以对抗盗版。经加密的内容可以在较不安全的通道(比如说因特网)上分发,而用于加密的密钥可以使用更安全的工具(比如说DRM系统)分发。然而,甚至密钥的分发也不是没有风险的。甚至DRM实现方式也可以被破解以恢复它们的秘密,例如,它们的秘密密钥。出于这种原因和其他原因,存在对可以防范逆向工程的安全加密/解密本原的期望。
一种保护密钥(例如,在DRM实现方式中使用的密钥,比如说主密钥)的方式可以是使用块密码的实现方式。白盒密码是块密码的软件实现方式,其中秘密密钥被“实例化”。在一种实现方式中将密钥实例化固定了该密钥并通过关于密钥的部分评估(partialevaluation)将密钥嵌入在该实现方式中;密钥输入变成不必要的。取决于密钥的计算被评估,只要在不知道消息块输入的情况下是可能的。典型地,可以计算密钥编排,并且轮密钥可以与其他步骤结合。通常,轮密钥可以与替换层结合,即,通过将轮密钥添加到替换层中的替换盒的输出来结合。
接下来,该实现方式被混淆。典型地,这是通过将实例化的密码表达为表网络并且编码该网络的表来完成的。目的是从白盒密码恢复实例化的密钥的努力至少与对底层密码的黑盒(例如暴力)攻击一样大。
一个理想的解决方案是将密码实现为一个大的查找表。然而,这对于实际块密码来说是不可行的。2002年在Computer Science 2003中的Digital Rights Management ofthe Lecture Notes一书中发表的 S. Chow、P. Eisen、H. Johnson和P.C. van Oorschot的“A White-Box DES Implementation for DRM Applications”中介绍了接近这种理想的白盒策略。计算,特别是块密码,可以被实现为查找表的网络,其被随机化,使得密钥信息遍布整个网络。可以使每个构成块看似独立于密钥。所以,对手被迫分析整个网络以便获得秘密的密钥信息。通过对在表中写出的变换预先考虑并附加混淆变换,表的网络的混淆是可能的。按照这种方式,每个单独的表格被随机化,而所有混淆变换的组合取消。在Chow、Eisen和van Oorschot的“White-Box Cryptography and an AES Implementation”中给出了另一示例。
在白盒密码术中,块密码在软件中实现,使得即使攻击者能完全访问该实现方式的情况下他也难以提取密钥。然而,发明人发现,特定种类的块密码、所谓的替换-线性变换网络在这方面有弱点,这使得它们难以使用传统的白盒技术来保障安全。详情参见WilMichiels、Paul Gorissen和Henk D. L. Hollmann的论文“Cryptanalysis of a GenericClass of White-Box Implementations”。该问题涉及SLT(替换-线性变换)型密码的组织方式,即使用比如Chow等人所使用的白盒技术的上述类型的块密码的任何白盒实现方式将是脆弱的。
发明内容
有利的是具有一种改进的块密码。
提供了一种电子块密码设备,该电子块密码设备被布置成加密或解密数字数据的消息块。该块密码设备包括存储单元和控制单元。
替换层不是完全并行的,因为至少一个替换盒被布置成接收相同替换层中多于一个的另外替换盒的输出中的至少一部分输出的组合作为输入。这意味着按照以上描述的方式无法消除对该层的输入-输出编码,比如在白盒中使用的。更一般地,认为不期望的是,块密码部分可以以这样的直接方式被分析。
块密码也非常适合于用在比如相同申请在2012年12月21日提交的题为“Computing device configured with a table network”的序列号为61/740726的美国专利申请中描述的系统中。此外,与一般的块密码相比,自动化软件混淆系统当用在所描述的类型的软件实现块密码上时通常更有效。
实际上,按照与上述线性变换-层方法不同的方式,从较小的非线性函数(S-盒)创建大的非线性函数,这更适合用于在白盒攻击上下文中的实现方式。替换盒是被布置成取得数字输入并将其变换成数字输出的查找表。优选地,s-盒是非线性的。
通过以下操作也获得非并行性:使至少一个替换盒被布置成使得所述至少一个替换盒的数字输出的第一部分被用作与所述至少一个替换盒在相同替换层中的另外替换盒的输入的一部分并且使得所述至少一个替换盒的数字输出的第二部分被用作相同替换层中又另外不同的替换盒的输入的一部分。
在实施例中,替换层包括多个子层,多个子层中的第一子层被布置成接收替换层输入作为输入,接下来的子层被布置成接收先前替换层的输出作为输入,并且所述接下来的子层之一是被布置成产生替换层输出的最后子层。已经发现,使用多个子层是一种确保扩散发生在替换层内的高效方式。
块密码设备可以包括在或用在诸如移动电话之类的移动电子设备中。块密码设备可以包括在或用在机顶盒、计算机等等中。
本发明的一方面涉及一种用于加密或解密数字数据的消息块的电子块密码方法。根据本发明的方法可以作为计算机实现的方法在计算机上实现,或者在专用硬件中实现,或者在二者的组合中实现。用于根据本发明的方法的可执行代码可以被存储在计算机程序产品上。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等等。优选地,计算机程序产品包括被存储在计算机可读介质上的用于在所述程序产品在计算机上执行时执行根据本发明的方法的非暂时性程序代码装置。
在优选的实施例中,计算机程序包括适于在计算机程序在计算机上运行时执行根据本发明的方法的所有步骤的计算机程序代码装置。优选地,计算机程序被体现在计算机可读介质上。
附图说明
根据下文描述的实施例,本发明的这些和其他方面是显而易见的并且将参照这些实施例而被阐明。在附图中,
图1a是图示了块密码的框图,
图1b是图示了块密码的轮的框图,
图2-4和图5a是图示了替换层的框图,
图5b是图示了包括编码的替换层的框图,
图6是图示了计算设备的框图,
应注意,不同的图中具有相同附图标记的项目具有相同的结构特征或相同的功能,或者是相同的信号。在已解释了这样的项目的功能和/或结构情况下,在详细描述中不必对其重复解释。
具体实施方式
尽管本发明易受许多不同形式的实施例的影响,但是在附图中示出并将在本文中详细描述一个或多个特定的实施例,应理解本公开将被认为是本发明的原理的示范并且而不旨在将本发明限于所示出和描述的特定实施例。
图1a以示意性的形式示出了块密码。块密码包括多个轮;所示出的是块密码轮112、114和116。轮的数目取决于块密码的设计。例如,有时使用8个、12个或16个轮。典型地,轮的数目是8或更高。还示出了数字数据的消息输入块110。消息输入块典型地是二进制数据并且具有固定块尺寸。常见的块尺寸是64、128、192和256,特别地128是方便的选择。作为输入而接收的消息块可以是被划分的字,比如说每个是8位字节或每个是4位的半字节等等。在轮的最后,产生块尺寸的消息输出块120。
从消息块110开始,顺序地应用轮112-116,每个轮产生块尺寸的中间结果。在图1a的情况下,应用第一轮112以产生第一中间结果,然后对第一中间结果应用轮114以产生第二中间结果,等等。第一中间数据块仅取决于块密码输入,并且每个下一个中间数据块取决于前一个中间数据块;典型地,轮114-116仅取决于它接收的作为输入且可能地作为轮密钥的中间结果。
通常所有块密码轮使用相同的算法,但是有时第一轮和最后一轮出于各种实际原因而在某种程度上不同。这些轮通常是不同的,因为它们使用不同的轮密钥。可以使用密钥编排从密码学密钥导出轮密钥。如果块密码是以混淆的方式被实现的,则轮密钥可以是固定的,并且轮被部分地评估。例如,在许多块密码(比如说AES)中,有可能将轮密钥加与替换层相结合。块密码常规地被实现在电子块密码设备中。
轮可以包括替换层和线性变换层。在替换层运算中,替换盒(S-盒)被应用到数据块。线性变换层对整个数据块应用线性变换。
为了获得安全的块密码,人们理应实现接近伪随机函数的置换EK(双射);然而,加密函数也应当是可高效地实现的。非线性函数只能针对小字尺寸高效地实现;它们通常由查找表来实现并且这些表具有随着块尺寸而呈指数增大的尺寸。线性函数可以针对大的块尺寸而被高效地实现,但不是很安全。诸如AES和3DES之类的流行的块密码将这两种可能性组合:块密码轮包括密钥-加步骤和两个层。这些层中的第一层由称作S-盒的一组替换盒指定。S-盒是在比如说k位的小字上(典型地,字尺寸是一字节或半字节)的非线性函数。输入被分成k-位字,并且每个字被馈送至S-盒。在AES和DES中,层不在不同字的位之间而仅在相同字的位之间创建依赖性。第二层执行线性函数。线性函数在完整的n-位数据块上运算。因此,该层在不同字的位之间创建依赖性。这样的块密码被称作替换-线性变换网络。
图1b公开了SLT密码的块密码轮的可能实现方式,比如说用作图1a中的块密码轮。
示出了轮输入130。轮输入是块尺寸宽度的数字数据,比如说二进制数据。所示的轮输入是作为若干轮输入字132-136而被给出的。每个字具有替换盒的尺寸,比如说4位或8位。轮具有替换层140。替换层140包括s-盒 142-146。每个S-盒实现了轮输入字到轮输入字的函数。这些函数典型地是非线性的。比如说相对于异或(XOR)运算非线性。对于输入块130中的每一个字,可以使用不同的s-盒。也可以针对所有字都使用相同的S-盒。注意,在应用替换层140之前,可以添加轮密钥,比如说块尺寸的轮密钥与轮输入130的xor。然而,将假定已使用部分评估将轮密钥并入替换层140中。
在替换层中的S-盒 142-146的组合结果上,比如说结果被连结,应用线性变换150,比如说矩阵运算。线性运算可以由多个线性组合构成,比如说字的移位等,如在AES中那样。线性变换150的结果是轮输出160,这里被示为多个轮输出字162-166。
替换层140取替换层输入130(在这种情况下是块尺寸的,在这种情况下是中间结果)作为输入,并通过将多个字替换成其他字将它变换成替换层输出。S-盒可以是查找表。替换层140是完全并行的,每个S-盒仅取决于恰好一个轮输入字;每个S-盒产生一个轮输出字作为输出。轮输出字不被再次用在该替换层中。换言之,替换层140不具有被布置成接收相同替换层中多于一个的另外替换盒的输出中的至少一部分输出的组合作为输入的替换盒。
典型地,实现图1a和图1b的块密码的设备包括执行在设备处存储的适当的软件的微处理器;例如,该软件可能已被下载并存储在对应的存储器中,例如,诸如RAM之类的易失性存储器或诸如闪存之类的非易失性存储器(未示出)。
通常在数学符号中,在SLT网络中,通过经由线性变换150混合m个小的(优选地高)非线性的函数(S-盒)S1, S2,…,Sm(142-146)的n个输出位,由S1, S2,…,Sm形成n位上的非线性函数。
图1b示出了典型的SLT网络的结构。轮的输入130被分成相等尺寸的k位字x1,x2,…,xm(注意:n=mk),被示为132-136。常见的字长是4至8位(例如,对于3DES是6位,并且对于AES是8位)。将输入与轮密钥(在图1b中未被单独示出)进行XOR运算,并将该运算的结果馈送至m个S-盒 S1, S2,…,Sm(142-146),即字132被馈送至S-盒 142,字134被馈送至S-盒136,输入130的每个字被馈送至对应的S-盒。例如,字i被馈送至S-盒 Si。可以从k到k位在单该函数中组合轮密钥加函数⊕Ki和Si。用Ti标记该函数。接下来,线性变换150被应用到S-盒的输出。线性变换可以被表示为与矩阵M相乘。结果给出了轮的输出。轮输出可以被用作下一轮的输入,可以被用作块密码的输出,或者可以被处理并用作到块密码的输出;例如,可以在不同于先前轮的最终轮中应用最终轮密钥加或最终置换。
发明人发现,通常图1a和1b所示类型的SLT块密码在推导它们的已混淆实现方式(特别地比如白盒实现方式)方面具有弱点。本文中示出了更适合用于已混淆实现方式的替换层。
替换层通过连续的替换盒将输入块变换成输出块。一些替换盒提供替换层输出的一部分,例如,输出盒的一些位被直接用作替换层输出的一部分;这些盒可以被称作输出盒。层中的一些替换盒从替换层输入接收输入,可以将这些盒称作输入盒。优选地,替换层输出的每个部分是从该层中的s-盒的输出获得的;优选地,替换层输入的每个部分被用作用于该层中的s-盒的输入。
如果替换层将被用在SLT网络中,则替换层应当是可逆的。而且,这样的替换层的输入和输出尺寸等于块尺寸。然而,如果替换层被用在不同的结构中,例如以代替诸如DES之类的Feistel型网络中的替换层,则既不需要该层是可逆的,也不需要输入和输出尺寸等于块尺寸。事实上,甚至可能有:替换层输入的尺寸甚至不等于(典型地大于)替换层输出。
注意,如本文描述的替换层具有以下优点:编码的非线性部分不能与输入/输出编码的仿射部分隔离。这样的分离在SLT密码中是尤其成问题的,因为它直接导致对这些密码的攻击。然而,这样的弱点在任何块密码中都是不期望的,尤其是在它们要在白盒攻击模型的上下文中被实现的情况下。
在图2-4、5a和5b中,示出了不遭受这种弱点的替换层的示例。通过用以下所示的替换层代替替换层140,这些替换层可以被直接用在图1a和1b所示的SLT密码中。接下来,甚至可能去除线性变换150,在这种情况下一些或所有轮仅包含替换层以及可能的轮密钥加。这可以例如在替换层具有完全扩散的情况下进行。建立这个的一种方式是:要求替换层输出的每个位取决于替换层输入的每个位。确保这一点的一个准则是:要求对于替换层输出中的每个位位置x和替换层输入中的每个输入位位置y,存在两个替换层输入w1和w2,所述两个替换层输入w1和w2仅在位位置y上不同并且具有以下性质:针对w1和w2的替换层输出至少在位位置x上不同。理想地,这种性质应当适用于每个轮密钥,但是出于实践目的,如果它对于一个轮密钥来说成立就可以满足了,比如说随机挑选的,或甚至是固定的,比如全部为0。
在更高级的应用中,还可能要求满足雪崩准则(翻转输入(比如说轮输入)中的任何位给出了翻转输出中的任何位的½的概率,加或减概率裕度)。
参见例如Işıl Vergili and Melek Yücel的论文“Avalanche and BitIndependence Properties for the Ensembles of Randomly Chosen n x n S-Boxes”;关于雪崩准则的定义参见例如第2.1节。雪崩准则被认为是块密码的重要密码学性质,这也就是说输入明文中少量的位差异导致改变的雪崩,即,导致大量的密文位差异。更正式地,如果每当一个输入位改变时平均二分之一的输出位改变,函数就满足雪崩准则。完全满足雪崩准则的这种定义并不现实,误差区间是被允许的。雪崩准则可以被用在块密码层面以及S-盒层面。
通常可以如同由较小的S-盒创建的大S-盒那样低地使用替换层。大的S-盒接下来可以按照与较小的S-盒类似的方式被用在替换-线性变换网络中,但是也可以被用在Feistel网络中,或者一般地被用作替换盒的代替物。以这种方式,还可以创建块密码,对于该块密码来说存在更安全的已混淆实现方式。因此,获得新的方法用于从小的S-盒创建n位上的非线性函数。这种非线性函数更适合已混淆实现方式。在图2-4、5a-5b中,不使用如图1b所示的S-盒的并行(parallel)应用,而是S-盒的联网应用。也就是说,取代直接将所有S-盒的输出馈送至线性变换150,将S-盒的一部分的输出的部分用作到其他S-盒的输入。
在图中,将s-盒描述为方框,朝向s-盒的箭头描绘了到该s-盒的至少1位的输入,远离s-盒的箭头描绘了至少1位的输出。
图2示出了替换层200。示出了替换层输入202和替换层输出204。替换层200具有第一子层210和第二子层220。第一子层210包括替换盒212-216,并且第二子层220包括替换盒222-226。
第一子层210中的每个替换盒从替换层输入202接收其全部或部分输入。第一子层210中的第一替换盒212仅从替换层输入202接收输入,第一子层210中的每个下一个替换盒从前一个替换盒以及从替换层输入202两者接收输入。例如,替换盒212从替换层输入202接收比如说8位的输入。替换盒214从替换层输入202接收比如说4位的输入,并从替换层212的输出接收比如说也是4位的输入。
在实施例中,每个替换盒取得偶数个输入位,从前一个输出接收一半并且从层输入202接收一半(除了从层输入202取得所有输入的第一个以外)。但是这些数目在需要时是可以变化的,比如说有的可以从前一个输出取得2位或1位,而其他的可以取得除了1以外的全部,等等。
第二层220中的每个替换盒从第一层210中的对应s-盒接收输入。第一替换盒226仅从第一层210中的对应s-盒 216接收输入;每个下一个替换盒从第一层210中的对应s-盒和第二层220中的前一个s-盒接收输入。
第一层210中的s-盒的输入一起构成层输入202。第二层220的输出一起构成了层输出204。
注意,第二层中除了s-盒 226以外的所有替换盒都接收相同替换层中多于一个的另外替换盒的输出中的至少一部分输出的组合作为输入,即第一子层210中的一个s-盒和相同子层中的前一个s-盒。该特征阻止了对s-盒应用的白盒编码的一类简化。
还要注意的是,第二子层中每个s-盒的输出取决于第一子层中每个s-盒的输入。该特征使得非常有可能的是,特别是对于较大的s-盒,替换层也会造成完全扩散(每个输出位取决于每个输入位)。S-盒优选地被选作非线性函数。例如,可以采用AES s-盒或随机非线性函数;可能地,其中添加轮密钥。
作为示例,可以取大于或等于32的2的幂(比如说128)作为块尺寸,并且还将其用于输入202的尺寸。每个s-盒可以接收更小的2的幂作为输入和输出,比如4或8位。当s-盒取得输入或向多于一个源发送输出时,输入或输出在两个源上被等分,比如说最大和最小有效半部(其他划分是可能的)。
图2还示出了长依赖性链的性质。例如,存在具有以下性质的第一替换盒(212)、第二替换盒(214)、第三替换盒(224)和第四替换盒(222):第四替换盒从第三替换盒的输出接收输入,第三替换盒从第二替换盒的输出接收输入,第二替换盒从第一替换盒的输出接收输入。这使得比如对于差分或线性密码分析来说通过S-盒的链接不规则性尤其困难。
图3示出了替换层300。示出了替换层输入302和替换层输出304。替换层300具有第一子层310和第二子层320。第一子层310包括替换盒312-316,并且第二子层320包括替换盒322-326。
第一子层310中的每个替换盒从替换层输入302接收其全部输入。第二子层320中的每个替换盒从替换层310中的替换盒的输出接收其全部输入。第二子层320中的每个替换盒从至少两个其他替换盒或更多个接收输入。例如,第一层和第二层中可以存在8个s-盒,每个s-盒在输出中有8位。第二层中的每个s-盒从第一层中的每个s-盒接收1位,使得第一子层310的每个输出是被确实使用的输出。
图3的替换层不具有图2的长链性质,但是它具有以下性质:替换层包括具有以下性质的第一替换盒(312)、第二替换盒(314)、第三替换盒(324)和第四替换盒(322):第四替换盒和第三替换盒二者均从第一替换盒和第二替换盒的输出接收输入。
图4示出了图2的变形,其中使用了3个子层。示出了替换层400,所述替换层400接收替换层输入402并产生替换层输出404。替换层400包括具有替换盒412-416的第一子层410、具有替换盒422-426的第二子层420以及具有替换盒432-436的第三子层430。子层的数目可以增加到大于3或甚至达到比如说32(或更高)或64。这样的替换层可以在没有线性扩散层150的情况下使用。
注意,图2、图3和图4所示的所有替换层每当个体s-盒可逆时都是可逆的。
图5a示出了图2的在s-盒中包括轮密钥的版本。在该示例中,轮字的尺寸k=8。所使用的S-盒的数目由p给出。S-盒的网络包括左(第一)层和右(第二)层。在左层中,S-盒 Ti(其中i<p)的输出字节被分成两个半字节(以其他方式将字节分成两个字也是可能的)。一个半字节被作为到右层的S-盒 Tp+I的输入给出,并且另一个半字节被馈送至左层中的下一个S-盒 Si+1
优选地,网络的每个输出位受网络的每个输入位影响。这种性质(扩散性质)是在SLT密码中引入线性变换层的原因。为了实现或至少接近该性质,网络中存在从左层中的每个S-盒到右层中的每个S-盒的路径。
考虑在以上章节中给出的S-盒 T1,T2,…,T2p的网络。通过取p=3,可以构造16位上的非线性双射函数F。为了实现该函数,需要6个查找表:每个Ti一个查找表。这些查找表包括28个行,其中每一行包含一个字节。因此,存储要求是1,536字节。相比之下,如果利用单一查找表实现任意的16位S-盒 G,这将要求查找表包括216个行,其中每行包括2个字节。这意味着131,072字节的存储要求。更一般地,对于F的存储要求是2p∙28,而对于G的存储要求是24+4p。因此,F的存储要求随p线性增长并且G的存储要求随p呈指数增长。
图5a接受尺寸为k(p+1)/2的输入,假定所有输入/输出分割都是在两个k/2尺寸的部分中。如果期望以2的幂作为输入,则应当选择k和(p+1)作为2的幂数。
可以采用由图5a的构造获得的替换层来以各种方式从F构造n位上的块密码。我们约束我们自己来说明可以如何构造块密码的单一轮。完整的块密码是简单地通过将若干这样的轮排序而获得的。选择p,使得F成为n位上的函数,或者选择p使得F成为l位上的函数,其中l整除n,即对于某个r,n=l∙r。生成r个这样的函数(由F1,F2,…,Fr表示)。可以构造如图1a和1b所描绘的SLT网络,其中S-盒 142-146由Fi给出并且m=r。获得的密码比标准SLT密码更适合在白盒攻击模型的上下文中的已混淆实现方式,并且尤其适合白盒实现方式。
图5b中已混淆实现方式对能完全访问该实现方式的攻击者隐藏了密钥。本身已知的用于这么做的技术如下:首先将要被混淆的函数表达为表网络,即,由表的网络来计算该函数,其中每个表接收网络输入(例如,块密码输入)的一部分或其他表的输出作为输入,并产生块密码输出和/或到其他表的输入作为输出。接下来,通过对表应用编码来混淆表。通过保证输出和输入上的编码取消,确保整个网络计算相同的函数,而这种准时性分布在整个网络上。由于替换网络已经是表网络,这种技术非常适合本文描述的替换网络。
在图5a的网络中利用查找表实现了S-盒 Ti。接下来通过编码这些查找表(其包含密钥)的输入和输出来混淆这些查找表。分别用双射函数fi和gi编码表Ti的输入和输出,对应于将表Ti代替。因此,在其中并入了输入解码和输出解码。为了看到编码的应用实现混淆,观察:对查找表的输入编码改变了它的行的顺序,以及对输出的编码改变了行的值。
以不影响总体实现方式的功能的方式来应用编码。这是通过以下操作来进行的:选择表的输入编码,使得它与利用网络中的在先表格已在表的输入数据上进行的编码匹配。图5b中图示了这一点。
如果对SLT密码应用类似的混淆技术,则得到的实现方式不是安全的:已知用于从这样的已混淆实现方式中提取密钥的若干攻击。所有这些攻击都利用了针对SLT密码的典型的并且不存在于图5b所限定的密码中的弱点。
图6示出了块密码设备600,包括存储设备610、计算机处理器650和I/O设备660。存储设备610存储查找表(示出的是查找表621和622)和计算机代码655。查找表对应于可能地编码形式的替换盒,比如说白盒形式的替换盒。I/O设备660可以是用于在网络上接收和发送消息的网络设备。
在操作中,I/O设备660可以接收已编码消息。从接收到的消息中提取消息块。处理器650在计算机代码655的控制下对消息块应用块密码。例如,处理器650可以如查找表中表达的那样对消息块应用替换层。例如,存储设备610可以存储表,该表指示哪个查找表需要应用到什么数据。在替换层之后,处理器650可以应用线性变换。后者可以以代码表达而不是以表的形式表达。但是变换也可以以表网络的形式被存储。后者在白盒攻击模型的上下文中是优选的。以这种方式,处理器650应用若干轮,每个利用替换层。如果密钥已被并入替换层中,则轮中不需要轮密钥加。当完成了块密码并且已执行了所有轮时,处理器650能访问接收到的消息块的解密版本。当所有块都被解密时,处理器650可以处理该结果,比如说如果它是加密内容则显示它,等等。
反之,当需要发送已加密通信时,处理器650对明文文本块应用块密码来获得加密的消息块。有时可以逆向应用相同的块密码以执行相反的功能,在这种情况下是加密。然而,在白盒攻击模型的上下文中,可能优选的是对于加密和解密有不同的实现方式。
注意,不需要在存储设备610中显式地存储密码学密钥。相反,将密钥嵌入块密码本身中。由于混淆编码和替换层的性质,该密钥难以提取。
在用于加密或解密数字数据的消息块的电子块密码方法中,存在存储步骤和应用步骤。存储步骤包括:以查找表的形式存储多个替换盒,所述多个替换盒一起形成块密码的替换层,替换层被布置成取得替换层输入并将其变换成替换层输出,至少一个替换盒被布置成接收相同替换层中多于一个的另外替换盒的输出中的至少一部分输出的组合作为输入。在应用步骤中,通过对数字数据的消息块应用块密码轮序列来对该消息块应用块密码,块密码轮之一包括替换层。
如本领域技术人员将清楚的,执行该方法的许多不同方式是可能的。根据本发明的方法是可以使用软件来执行的,该软件包括用于使处理器系统执行该方法的指令。软件可以仅包括由系统的特定子实体采取的那些步骤。该软件可以被存储在合适的存储介质中,比如硬盘、软盘、存储器等等。该软件可以作为信号沿着导线或无线或使用例如因特网的数据网络被发送。可以使该软件适用于下载和/或适用于在服务器上的远程使用。
将领会到,本发明还扩展到适于将本发明付诸实践的计算机程序,特别是在载体上或载体中的计算机程序。该程序可以具有源代码、目标代码、代码中间源和目标代码的形式:,比如部分编译形式,或适合于用在根据本发明的方法的实现方式中的任何其他形式。涉及计算机程序产品的一个实施例包括与阐述的方法中的至少一个方法的每个处理步骤相对应的计算机可执行指令。这些指令可以被细分成子例程和/或被存储在可以被静态地或动态地链接的一个或多个文件中。涉及计算机程序产品的另一实施例包括与阐述的系统和/或产品中的至少一个的每个装置相对应的计算机可执行指令。
应注意,上述实施例例证说明而非限制本发明,并且本领域技术人员将能够设计出许多可替换的实施例。
在权利要求中,置于圆括号之间的任何附图标记都不应被理解为限制权利要求。动词“包括”及其变形的使用不排除权利要求中阐述的那些元件或步骤以外的元件或步骤的存在。元件前面的冠词“一”不排除多个这样的元件的存在。可以借助包括若干不同元件的硬件以及借助适当地编程的计算机来实现本发明。在列举了若干装置的设备权利要求中,这些装置中的若干个可以由同一项硬件来体现。在互不相同的从属权利要求中阐述某些措施的起码事实不表示不能使用这些措施的组合来获利。
附图标记的列表
100 块密码
110 消息输入块
112-116 块密码轮
120 消息输出块
130 轮输入
132-136 轮输入字
140 替换层
142-146 替换盒
150 线性变换
160 轮输出
162-166 轮输出字
200 替换层
202 替换层输入
204 替换层输出
210 第一子层
220 第二子层
212-226 替换盒
300 替换层
302 替换层输入
304 替换层输出
310 第一子层
320 第二子层
312-326 替换盒
400 替换层
402 替换层输入
404 替换层输出
410 第一子层
420 第二子层
430 第三子层
412-436 替换盒
600 计算设备
610 存储设备
621, 622 查找表
650 计算机处理器
655 计算机代码
660 I/O设备

Claims (12)

1.一种用于利用块密码的白盒实现方式加密或解密数字数据的消息块的电子块密码设备,所述块密码具有轮,轮包括替换层和线性变换层,
- 所述替换层由多个非线性替换盒形成,所述替换层被布置成取得替换层输入并将其变换成替换层输出,所述多个替换盒中的至少一个替换盒(222; 332)被布置成接收相同替换层中所述多个替换盒中的多于一个的另外替换盒(212, 224; 312, 314, 316)的输出中的至少一部分输出的组合作为输入,
所述电子块密码设备包括:
- 存储单元,其以实现所述白盒块密码的查找表形式存储所述多个非线性替换盒,其中通过将替换层中的替换盒的输入和输出编码来混淆替换层中的替换盒,
- 控制单元,其被配置成通过对数字数据的消息块应用块密码轮的序列来对所述消息块应用块密码的白盒实现方式,块密码轮之一包括替换层。
2.如权利要求1所述的电子块密码设备,其中所述多个替换盒中的至少一个替换盒(212; 312)被布置成使得所述至少一个替换盒(212; 312)的数字输出的第一部分被用作与所述至少一个替换盒(212; 312)在相同替换层中的另外替换盒(222; 332)的输入的一部分,并且使得所述至少一个替换盒(212; 312)的数字输出的第二部分被用作用于相同替换层中的又另外不同的替换盒(214; 324, 326)的输入的一部分。
3.如权利要求1所述的电子块密码设备,其中所述替换层包括多个子层(210, 220;310, 320; 410, 420, 430),所述多个子层中的第一子层(210; 310; 410)被布置成接收替换层输入作为输入,接下来的子层(220; 320; 420, 430)被布置成接收先前替换层的输出作为输入,并且所述接下来的子层之一是被布置成产生替换层输出的最后子层(220;320; 430)。
4.如权利要求3所述的电子块密码设备,其中第一子层中的第一替换盒(212)仅从替换层输入接收输入,并且第一子层中的第二替换盒(214)从替换层输入以及从第一替换盒(212)的输出两者接收输入。
5.如前述权利要求中任一项所述的电子块密码设备,其中所述替换层包括具有以下性质的第一替换盒(212)、第二替换盒(214)、第三替换盒(224)和第四替换盒(222):第四替换盒从第三替换盒的输出接收输入,第三替换盒从第二替换盒的输出接收输入,第二替换盒从第一替换盒的输出接收输入。
6.如权利要求1-4中任一项所述的电子块密码设备,其中所述替换层包括具有以下性质的第一替换盒(312)、第二替换盒(314)、第三替换盒(324)和第四替换盒(322):第四替换盒和第三替换盒二者均从第一替换盒和第二替换盒的输出接收输入。
7.如权利要求5所述的电子块密码设备,其中,
- 第一替换盒和第二替换盒从替换层输入接收它们相应的输入的一部分,和/或
- 第三替换盒和第四替换盒产生替换层输出的一部分作为它们相应的输出的部分。
8.如权利要求1-4中任一项所述的电子块密码设备,其被配置成从消息块开始,产生与消息块相同数据尺寸的中间数据块的序列,并且每个下一个中间数据块取决于前一个中间数据块。
9.如权利要求8所述的电子块密码设备,其中替换层接收中间数据块作为替换层输入并产生下一个中间数据块作为输出。
10.如权利要求1-4中任一项所述的电子块密码设备,其中所述块密码轮序列根据密码学轮密钥来变换消息块,所述轮密钥被并入块密码轮的替换层中。
11.一种用于利用块密码的白盒实现方式加密或解密数字数据的消息块的电子块密码方法,所述块密码具有轮,轮包括替换层和线性变换层,
- 所述替换层由多个非线性替换盒形成,所述替换层被布置成取得替换层输入并将其变换成替换层输出,所述多个替换盒中的至少一个替换盒(222; 332)被布置成接收相同替换层中所述多个替换盒中的多于一个的另外替换盒(212, 224; 312, 314, 316)的输出中的至少一部分输出的组合作为输入,
所述电子块密码方法包括:
- 以实现所述白盒块密码的查找表的形式存储所述多个非线性替换盒,其中通过将替换层中的替换盒的输入和输出编码来混淆替换层中的替换盒,
- 通过对数字数据的消息块应用块密码轮序列来对所述消息块应用块密码的白盒实现方式,块密码轮之一包括替换层。
12.一种其上存储计算机可执行指令的计算机可读存储介质,所述计算机可执行指令当在计算机上执行时,使得所述计算机执行权利要求11的所有步骤。
CN201480024514.9A 2013-05-01 2014-04-17 电子块密码设备、方法和相应的计算机可读存储介质 Active CN105191206B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP13166098.7 2013-05-01
EP13166098 2013-05-01
PCT/EP2014/057953 WO2014177400A1 (en) 2013-05-01 2014-04-17 Electronic block cipher device suitable for obfuscation

Publications (2)

Publication Number Publication Date
CN105191206A CN105191206A (zh) 2015-12-23
CN105191206B true CN105191206B (zh) 2019-05-28

Family

ID=48325411

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480024514.9A Active CN105191206B (zh) 2013-05-01 2014-04-17 电子块密码设备、方法和相应的计算机可读存储介质

Country Status (7)

Country Link
US (1) US9998279B2 (zh)
EP (1) EP2992637A1 (zh)
JP (1) JP6415542B2 (zh)
CN (1) CN105191206B (zh)
BR (1) BR112015027293A2 (zh)
RU (1) RU2666281C2 (zh)
WO (1) WO2014177400A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9641337B2 (en) * 2014-04-28 2017-05-02 Nxp B.V. Interface compatible approach for gluing white-box implementation to surrounding program
US10110373B2 (en) * 2015-02-13 2018-10-23 Global Integrity, Inc. System and method for manipulating both the plaintext and ciphertext of an encryption process prior to dissemination to an intended recipient
US10020932B2 (en) * 2015-11-13 2018-07-10 Nxp B.V. Split-and-merge approach to protect against DFA attacks
EP3467808B1 (en) 2016-05-23 2020-04-08 Sony Corporation Encryption device, encryption method, decryption device, and decryption method
US10243937B2 (en) * 2016-07-08 2019-03-26 Nxp B.V. Equality check implemented with secret sharing
US10218497B2 (en) * 2016-08-31 2019-02-26 Intel Corporation Hybrid AES-SMS4 hardware accelerator
US10673616B2 (en) 2017-01-11 2020-06-02 Qualcomm Incorporated Lightweight mitigation against first-order probing side-channel attacks on block ciphers
EP3413500A1 (en) * 2017-06-09 2018-12-12 Koninklijke Philips N.V. Device and method to compute a block cipher
CN107453866A (zh) * 2017-08-03 2017-12-08 致象尔微电子科技(上海)有限公司 一种对数据进行加密的方法
US11632231B2 (en) * 2020-03-05 2023-04-18 Novatek Microelectronics Corp. Substitute box, substitute method and apparatus thereof

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3012732B2 (ja) * 1992-02-20 2000-02-28 富士通エフ・アイ・ピー株式会社 ブロック暗号処理装置
CA2327911A1 (en) 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
JP4142322B2 (ja) * 2002-03-29 2008-09-03 株式会社 エヌティーアイ 暗号化装置及び情報処理装置並びに情報処理方法
ATE400936T1 (de) * 2004-09-24 2008-07-15 Synaptic Lab Ltd S-boxen
WO2008059420A2 (en) * 2006-11-17 2008-05-22 Koninklijke Philips Electronics N.V. Cryptographic method for a white-box implementation
WO2010102960A1 (en) * 2009-03-10 2010-09-16 Irdeto B.V. White-box cryptographic system with input dependent encodings
WO2010146139A1 (en) 2009-06-19 2010-12-23 Irdeto B.V. White-box cryptographic system with configurable key using intermediate data modification
PL2520041T3 (pl) 2009-12-30 2016-09-30 Sposób generowania tabeli korelacji dla białej skrzynki kryptograficznej
KR101334040B1 (ko) * 2010-01-20 2013-11-28 한국전자통신연구원 대칭키 암호화 시스템의 마스킹 연산 방법 및 장치
KR20120089396A (ko) 2010-11-16 2012-08-10 삼성전자주식회사 암호화 장치 및 그 암호화 방법
US8718280B2 (en) 2010-12-17 2014-05-06 Apple Inc. Securing keys of a cipher using properties of the cipher process
US9460281B2 (en) * 2011-03-31 2016-10-04 Irdeto B.V. Method of securing non-native code
RU2467389C1 (ru) * 2011-06-07 2012-11-20 Антон Андреевич Краснопевцев Способ защиты программно-информационного обеспечения от несанкционированного использования
CN104919750B (zh) 2012-12-21 2017-06-06 皇家飞利浦有限公司 计算关于函数‑输入值的数据函数的计算设备和方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
The Khazad legacy-level block cipher;Paulo S L M Barreto ,Vincent Rijmen;《https://www.researchgate.net/publication/228924670_The_Khazad_legacy-level_block_cipher》;20000131;第252-258页
White-Box Cryptography and an AES Implementation;Stanley ChowPhilip EisenHarold JohnsonPaul C. Van Oorschot;《Selected Areas in Cryptography 》;20030217;正文第10-11页
White-Box Cryptography and an AES Implementation;Stanley ChowPhilip EisenHarold JohnsonPaul C. Van Oorschot;《Selected Areas in Cryptography 》;20030217;第252-258页

Also Published As

Publication number Publication date
RU2666281C2 (ru) 2018-09-06
BR112015027293A2 (pt) 2017-07-25
RU2015151343A3 (zh) 2018-03-21
EP2992637A1 (en) 2016-03-09
US20160050065A1 (en) 2016-02-18
JP2016520866A (ja) 2016-07-14
JP6415542B2 (ja) 2018-10-31
US9998279B2 (en) 2018-06-12
CN105191206A (zh) 2015-12-23
WO2014177400A1 (en) 2014-11-06
RU2015151343A (ru) 2017-06-06

Similar Documents

Publication Publication Date Title
CN105191206B (zh) 电子块密码设备、方法和相应的计算机可读存储介质
CN110999201B (zh) 密码设备和方法
US10790962B2 (en) Device and method to compute a block cipher
JP6517436B2 (ja) 暗号化デバイス及び符号化デバイス
EP3477889B1 (en) Using white-box in a leakage-resilient primitive
CN109039596A (zh) 利用加扰电路的白盒实施方案
CN105184115A (zh) 用于将隐式完整性或可信性检查包括到白箱实现中的方法
CN105022937A (zh) 用于将白箱实现紧附到周围程序的接口兼容方式
EP3413509A1 (en) Cmac computation using white-box implementations with external encodings
JP6890589B2 (ja) 計算デバイス及び方法
CN105024808A (zh) 无需改变密钥的安全性补丁

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