CN1383648A - 用于对称密钥密码的替换盒 - Google Patents

用于对称密钥密码的替换盒 Download PDF

Info

Publication number
CN1383648A
CN1383648A CN01801888A CN01801888A CN1383648A CN 1383648 A CN1383648 A CN 1383648A CN 01801888 A CN01801888 A CN 01801888A CN 01801888 A CN01801888 A CN 01801888A CN 1383648 A CN1383648 A CN 1383648A
Authority
CN
China
Prior art keywords
arrangement
group
box
probability
bit
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.)
Granted
Application number
CN01801888A
Other languages
English (en)
Other versions
CN1193537C (zh
Inventor
P·L·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 CN1383648A publication Critical patent/CN1383648A/zh
Application granted granted Critical
Publication of CN1193537C publication Critical patent/CN1193537C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or 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/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/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一个输入数据块被加密转换成一个输出数据块;通过使用一个基于排列的S盒对输入数据块执行一个非线性操作。该S盒与一组至少两个排列相关。在每次使用S盒之前,一个排列被(伪)随机地从该组排列组中选择出,并用于该转换。

Description

用于对称密钥密码的替换盒
本发明涉及基于一组排列以替换盒(S盒)的形式使用非线性操作将一个输入数据块加密转换成一个输出数据块。
加密在数字音频和/或视频的版权保护领域的应用变得尤为重要。这些应用包括内容加密/解密和访问管理功能。对于这些应用,可以使用公知的分组密码DES。DES是一个包含16个循环的Feistel密码。在每一循环中,数据右半部的前32个比特被扩展成48个比特。使用调度算法从一个56比特的DES密钥计算出的一个48比特循环密钥被逐比特地与上述48比特模2相加。然后,S盒层对数据执行一个非线性操作。在DES中,S盒层包括八个并行6至4比特S盒,即每个S盒使用它的一个固定映射表将一个6比特的输入块转换成一个4比特的输出块。S盒层的输出是一个32比特的数据块,对其执行一个比特排列。S盒替换是DES中唯一的非线性操作,对其安全性产生很大贡献。DES的缺点在于其56比特的短密钥长度,现在认为它不足以提供更高的安全性。然而,通过使用与用于计算16个48比特循环密钥的一个不同的密钥调度算法相组合的一个更长的密钥,可以避免穷尽密钥搜索。在所公布的公开文献中对DES最强大的两种攻击是差分和线性密码分析,它们是可广泛应用于分组密码的普通攻击。已经表明不能通过修改密钥长度和/或密钥调度算法来增强DES对抗这些攻击的能力。然而,改变算法的循环函数(例如在S盒中)能够明显影响其对抗这些攻击的强度。
一个目的是设计具有优良加密特性的S盒。进一步的目的是这种S盒可以通过硬件和软件被有效地实现,允许在用户电子应用中的广泛使用。
为了满足本发明的目的,用于S盒的排列被从一组预定的排列中动态地选择。该组中的每一排列最好被选择以提供对抗已知攻击,尤其是差分和线性密码分析的最佳抵抗力。通过(伪)随机地选择排列,系统的加密性可以强于每个S盒仅包含一个固定排列的系统。可以快速有效地执行从一组中选择一个排列。
如在从属权利要求2中定义的方法,并且在从属权利要求3和6中被进一步地描述,一个排列的加密弱点通过该组中至少一个其它排列的相应强度来补偿。弱点例如可以通过具有一个预定最大概率的非普通差分和/或线性特性来反映。这种方法的优点在于在不对未知(循环)密钥进行假设的情况下,对手不能基于这些特性的差分或线性攻击。
如从属权利要求4中所定义的方法,弱点被完全补偿。
如从属权利要求10中所定义的方法,最好在一个循环密钥的控制下执行排列的选择。生成循环密钥的算法(即密钥调度算法)可以被选择以获得所需要的伪随机度。使用循环密钥进行选择的优点在于在计算循环密钥的过程中从组中选择排列。为了效率,通常并最好为每个密钥和必须使用这个密码处理(例如加密)的所有数据执行一次操作。以这种方式,该加密/解密算法可以与基于S盒的仅包括用于每个S盒的一个固定排列的系统同样有效。
参考附图中图示的实施例,本发明的这些和其它特征将很明显。
图1图示结合非线性操作的密码的一个循环;
图2图示循环函数的步骤;和
图3提供循环函数的S盒层的细节。
为了解释本发明,加密系统被描述为电子密码本(ECB)模式中的一个分组密码。本领域的技术人员将能够在其它模式中使用该系统。这些模式包括用于DES操作的标准FIPS模式,即操作的密码块链接(CBC)、密码反馈(CFB)和输出反馈(OFB)模式。另外,该系统也可以在用于伪随机数发生器、消息鉴别码(MAC)和操作检测码(MDC)的公知结构中使用。
该加密设备包括一个输入,用于获得一个数字输入块。数字输入块M可以是任意合适的长度。该设备还包括一个加密处理器,用于将数字输入块转换成一个数字输出块。有利地,数字输出块的长度与数字输入块基本相同。该设备包括一个输出,用于输出数字输出块。在一个优选实施例中,加密处理器通过合并数字输入块和密钥比特,生成非线性地取决于输入块和密钥的输出块,将数字输入块转换成数字输出块。为了获得密钥(或输入密钥调度器的一个初始密钥),该加密设备包括第二输入。显然,该加密设备可以使用常规计算机,例如PC,或使用一个专用加密/解密设备来实现。数字输入块可以通过各种方式来获得。例如通过通信网络,从数据存储介质,例如硬盘或软盘,或者由用户直接输入。类似地,数据输出块可以以各种方式被输出,例如通过一个通信网络、存储在一个数据存储介质上、或者显示给用户。为此,最好使用安全装置。加密处理器可以是一个常规处理器,例如在个人计算机中使用,但是也可以是一个专用加密处理器。处理器通常在一个合适程序(固件)的控制下操作以执行根据本发明的算法的步骤。这个计算机程序产品通常从一个后台存储器,例如硬盘或ROM加载。在已经在诸如CD-ROM的存储介质上或者通过诸如公共互联网的网络被分布之后,计算机程序产品可以被存储在后台存储器上。敏感信息,例如加密密钥最好以一种安全的方式被分布和存储。这些技术是公知的,不进行进一步的描述。加密设备可以部分或全部地在一个智能卡上实现。
由加密处理器执行的根据本发明的S盒的非线性操作将以作为一个示例性应用的分组密码中的循环函数f的形式被描述。本领域的技术人员完全能够使用其它加密系统和除了下面详细描述的密码之外的其它密码中的非线性函数。
标记和定义:
下述标记在示例性算法的描述中被使用。假设Z2 n是长度为n(n≥1)的所有二进制向量的组,和相加:Z2 n×Z2 n→Z2 n,它被定义为模2的坐标方式相加(也被称作异或,或XOR)。例如,(1,0,1,0)和(0,1,1,0)是Z2 4的元素,(1,0,1,0)(0,1,1,0)=(1,1,0,0)。如果n为7和x∈Z2 n,则x(L)∈Z2 n/2和x(R)∈Z2 n/2被分别定义为x的左半部和右半部。例如,如果x=(1,0,1,1,0,0,1,0)∈Z2 8,则x(L)=(1,0,1,1)∈Z2 4和x(R)=(0,0,1,0)∈Z2 4。符号‖被用于标识向量的级联,例如x=(x(L)‖x(R))。向量x∈Z2 n的元素(也称作比特)被从左到右从0到n-1排序,即x=(X0,X1,X2,...,Xn-1)。内积*:Z2 n×Z2 n→Z2被定义为x*y=∑i=0,1,...,n-1xiyi∈Z2,所有的x,y∈Z2 n
分组密码结构:
示例性的分组密码是一个Feistel密码并包括16个循环(类似于DES)。分组长度等于64比特和密钥长度等于128比特。在密钥K∈Z2 128期间将明文X∈Z2 64以电子密码本(ECB)模式加密成密文C∈Z2 64用C=E(K,X)表示。
循环函数用f表示并且是从Z2 40×Z2 32到Z2 32的一个映射。这个循环函数结合本发明的非线性S盒操作,下面将详细描述。循环函数的第一输入变量是循环密钥Ki∈Z2 40(其中i表示循环数,i=1,2,...,16)。这些循环密钥使用所谓的密钥调度算法根据128比特的密钥K计算出。可以使用任意合适的密钥调度算法,不详细描述。第二输入变量是循环i之后的中间结果的右半部。这个中间结果被表示为Xi∈Z2 64(i=0,1,...,16),X=:(x0 (R)‖x0 (L))。
使用这些标记,密文C∈Z2 64的计算包括下述步骤,如图1所示:
1.计算 X i ( R ) = X i - 1 ( L ) ⊕ f ( K i , X i - 1 ( R ) ) , 并设置 X i ( L ) = X i - 1 ( R ) , i=1,2,...,15。
2.计算X16 (L)=X15 (L)f(K16,X15 (R)),并设置X16 (R)=X15 (R)。密文被定义为C:=(X16 (L)‖X16 (R))。
图1A表示用于前十五个循环的密码结构(i=1,2,...,15)。图1B表示最后一个,第16个循环。注意与图1A的先前循环的相比,图1B中的不规则交换。这通常以Feistel结构来实现,因为在这种情况下,解密算法(即计算X=E-1(K,C))与加密算法相同(使用相反顺序的循环密钥)。没有加密上的意义。
循环函数:
图2表示循环函数f的优选实施例的整体方框图。首先,在步骤210,循环密钥的一部分,例如32个比特被相加给数据比特。接着,在步骤220,S盒执行一个非线性替换,最好提供一个对差分和线性密码分析的最佳(本地)抵抗。另外,最好使具有预定最大概率的非普通(本地)特性独立于(循环)密钥,如下面更详细地描述。最后,在步骤230,一个线性转换被用于提供在多个循环上的高度扩散。可以使用任意合适的线性转换。线性转换并非本发明的主题,将不进行详细描述。
Feistel结构不对循环函数的满射性进行任何限制。然而,循环函数对于固定(循环)密钥的每种选择最好是双射的。这避免了基于循环函数非一致性的攻击。
图3提供了根据本发明结合S盒的最佳结构的更多细节。在这一示例性系统中,循环函数f是从Z2 40×Z2 32到Z2 32的一个映射。第一输入变量是循环函数Ki∈Z2 40,第二变量是中间结果Xi-1的右半部。输出用f(Ki,Xi-1 (R))∈Z2 32表示。在该图中,Ki (1)∈Z2 32和Ki (2)∈Z2 8被定义为 K i = : ( K i ( 1 ) | | K i ( 2 ) ) . 在步骤210中,进行密钥相加,继之以步骤220,通过使用一个密钥相关替换盒(S盒)层。在这个例子中,S盒层包括八个更小的S盒(S0,S1,S2,...,S7),每个对数据块的1/8进行操作。S盒转换是从Z2 8×Z2 32到Z2 32的一个映射,循环I中的第一输入变量是循环密钥Ki (2),第二输入变量是密钥相加的结果,即Xi-1 (R)Ki (l)。S盒转换的32比特输出被表示为S(Ki (2),Xi-1 (R)Ki (l))。下面将给出这一映射的详细描述。最后,在步骤230,应用一个从Z2 32到Z2 32的合适的线性转换。输入是S(Ki (2),Xi-1 (R)Ki (l)),其输出用L(S(Ki (2),Xi-1 (R)Ki (l)))表示。使用这种标记,函数f表示为: f ( K i , X i - 1 ( R ) ) = L ( S ( K i ( 2 ) , X i - 1 ( R ) ⊕ K i ( 1 ) ) ) .
S盒:
根据本发明,S盒执行数据的替换。在在此所述的优选实施例中,S盒对一个4比特的子块进行操作。显然也可以使用其它长度的子块。根据本发明,对于每个S盒,使用一组至少两个预定排列,其中在每次使用S盒之前,以(伪)随机方式选择这些排列中的一个。最好将循环密钥用于这一选择。在优选实施例中,每个S盒与两个排列相关,其中循环密钥的一个预定比特被用于选择使用两个排列中的哪一个排列。使用较小的S盒,例如对4比特子块进行操作的S盒,通常将需要一行的并行S盒,每个S盒与一组相应的至少两个非线性排列相关。在对32比特块进行操作并使用4比特S盒的分组密码的优选实施例中,并行使用八个S盒,每个S盒包括两个排列。对于该实施例,使用下述标记。假设S盒转换的第一输入变量Ki (2)的比特用Kj (i)(j=0,1,...,7)表示,即Ki (2)=:(k0 (i),k1 (i),...,k7 (i)。向量Nj (i)∈Z2 4(j=0,1,...,7)被定义为Xi-1 (R)Ki (l)=:(N0 (i)‖N1 (i)‖...‖N7 (i))。S盒映射包括八个映射Sj的级联:Z2×Z2 4→Z2 4(j=0,1,...,7)。第一输入变量是密钥比特kj (i),它选择使用Sj的两个排列中的哪一个排列。第二输入变量是Nj (i),它是用于Sj的选定4比特排列的输入。这个排列的相应4比特输出也是S盒的输出,并被表示为Sj(kj (i)Nj (i))。使用这种标记,函数S被表示为:
S(Ki (2),Xi-1 (R)Ki (1)=(S0(k0 (i),N0 (i))‖S1(k1 (i),N1 (i)‖...‖S7(k7 (i),N7 (i))),
排列的差分和线性特性:
下述设计标准最好被用于各个排列:
1.对差分加密分析的抵抗力:XOR分布表中的最大非普通值等于一个预定最大值。假设为4比特排列,这个最大值为4,即每个非普通差分特性具有最多1/4的概率。差分特性的概念和XOR分布表是公知的。已经由Biham和Shamir于1990年首次公开描述,例如加密学期刊,1991年,卷4(1),3至72页“类似DES加密系统的差分加密分析(Differential Cryptoanalysis of DES-LikeCryptosystems)”。
2.对线性加密分析的抵抗力:线性近似表中的最大非普通绝对值等于一个预定最大值。假设为4比特的排列,这个最大值为4,即每个非普通线性特性具有1/4和3/4之间的概率。线性特性的概念和线性近似表是公知的。已经由Matsui首次公开描述。在E.Biham的“Matsui’s的线性加密分析(On Matsui’s LinearCryptoanalysis)”,EUROCRYPT’94,LNCS 950,Springer,1995,341至355页中给出了描述。
每个排列最好符合这两个规格。针对4比特非线性排列,上述标准被详细描述。可以证明这些标准对于4比特排列是最佳的,即不存在最大非普通XOR分布表值小于4的4比特排列,并且不存在其线性近似表中的最大非普通绝对值小于4的4比特排列。
符合上述标准的排列可以通过随机生成一个排列,并测试所生成的排列是否符合该标准来创建。也可以使用其它合适的技术,例如穷尽搜索直到发现一个合适的排列或使用(数学)构建方法。构建方法的一个具体例子是基于在具有2n个元素的有限域中的逆映射,零映射到其自身,并可以在K.Nyberg的“用于加密的差分均匀映射(Differentially uniform mappingsfor cryptography)”,EUROCRYPT’93,LNCS 765,Springer,1994,55至64页中发现。根据该方法构建的n比特S盒所满足的相应标准,其中n为偶数,如下给出:
1.对差分加密分析的抵抗力:XOR分布表中的最大非普通值等于4,即,每个非普通差分特性具有最大4/2n的概率。
2.对线性加密分析的抵抗力:线性近似表中的最大非普通绝对值等于2n/2,即每个非普通线性特性具有1/2-1/2n/2和1/2+1/2n/2之间的一个概率。
容易看出这些标准概括了上述用于4比特排列的标准。公知将任意可逆仿射映射(在Z2 n上)应用于一个n比特S盒的所有输入元素和/或所有输出元素并不影响其最大非普通XOR值或其线性近似表中的最大非普通绝对值。以这种方式,可以从单个S盒构建满足上述标准的多个S盒。
根据本发明,一个S盒与至少两个非线性排列相关。选择该组中的排列以便它们补偿彼此的弱点。这将针对差分和线性特性分别进行更详细地描述。其它标准将使用一个S盒来说明,例如具有下述两个排列的S0
N0 (i)
 K0 (i)  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
 0  b  7  5  9  1  8  3  e  4  d  0  a  f  c  2  6
 1  7  0  8  f  9  b  a  c  1  3  4  5  e  6  2  d
第0行和第1行表示两个排列的输出,对应于用列号定义的输入。在下文中,这两个排列将分别用P0和P1表示。输入和输出都用十六进制表示法给出。例如,如果选择第一个排列)即(K0 (i)=0),和N0 (i)=3,则输出等于9,即S0(0,3)=9。类似地,S0(1,3)=f。假设8个并行S盒,每个与专用于该盒的两个排列相关,需要产生总共16个不同的排列。这些排列每一个最好都符合上述标准。根据本发明,作为一组,属于一个S盒的排列也符合下面给出的至少一个标准,并且最好符合下面给出的两个标准。
一组排列的差分特性:
用于一个S盒的一组排列满足下述标准:
如果一个排列中的非普通差分特性具有最大概率,则这个差分特性在其它排列中的至少一个排列中具有较低的概率。
将理解以这种方式使一个排列中的弱点由一个其它排列的强度来补偿。较低的概率最好为零,最佳地补偿一个弱点。因此,用于一个S盒的一对4比特排列的最佳标准是:如果两个排列之一的非普通差分特性具有概率1/4,则这个差分特性在另一个排列中概率为零,即一个S盒的每个独立于非普通(循环)密钥的差分特性具有最大1/8的概率。
为了说明上述两个排列P0和P1符合该标准,它们的XOR分布表如下。在Pi的异或分布表中的行α和列β的条目(α,β∈Z2 4)表示为Xi α,β,并被定义为: X i α , β : = # { x ∈ Z 2 4 | P i ( x ) ⊕ P i ( x ⊕ α ) = β } , i = 0,1 .
即Xi α,β等于具有差值α的输入对的数目,差值α导致在相应排列Pi的输出对中的差值β。
P0的异或分布表:
  β
  α   0   1   2   3   4   5   6   7   8   9   a   b   c   d   e   f
  0   16   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
  1   0   0   0   2   2   0   0   0   0   4   2   0   4   2   0   0
  2   0   0   2   0   2   0   2   2   0   0   2   0   0   2   4   0
  3   0   0   4   0   0   0   0   0   0   2   0   2   0   2   4   2
  4   0   2   2   0   0   0   2   2   0   0   2   2   2   0   0   2
  5   0   0   2   2   0   0   4   0   4   0   2   2   0   0   0   0
  6   0   2   0   0   2   0   4   0   2   2   0   2   0   0   0   2
  7   0   0   2   0   2   4   0   0   2   0   0   0   2   2   0   2
  8   0   2   0   2   2   2   0   0   2   0   2   0   0   0   2   2
  9   0   0   0   2   0   2   2   2   0   2   0   0   2   2   0   2
  a   0   2   2   2   2   0   0   0   0   0   0   2   2   2   2   0
  b   0   4   0   0   0   0   0   4   2   0   2   0   0   2   0   2
  c   0   0   0   2   4   4   0   2   0   0   0   2   0   0   0   2
  d   0   0   0   2   0   0   0   2   2   2   0   2   4   0   2   0
  e   0   4   2   2   0   2   0   2   0   2   2   0   0   0   0   0
  f   0   0   0   0   0   2   2   0   2   2   2   2   0   2   2   0
对于一个给定(本地)差分特性的概率,即一个输入差值α导致一个输出差值β(表示为α→β)的概率可以通过将相应条目除以具有给定输入差值的输入对的总数来找到。对于4比特排列,输入对的这个总数等于16,所以α→β的概率等于Xi α,β/16。注意这些表中第一行和第一列中的条目表示普通特性,即概率为0→0,它对于排列始终保持。容易看出所有其它的(非普通)差分特性的概率小于或等于1/4,因为对于这两个排列,所有其它条目上的最大值等于4。
P1的异或分布表:
  β
  0   1   2   3   4   5   6   7   8   9   a   b   c   d   e   f
  0   16   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
  1   0   2   4   0   0   0   2   4   2   0   0   0   0   0   0   2
  2   0   0   0   2   0   2   2   2   0   0   0   2   2   0   0   4
  3   0   2   0   2   4   2   0   2   4   0   0   0   0   0   0   0
  4   0   0   2   2   0   2   2   0   2   0   0   2   0   0   2   2
  5   0   0   0   0   2   2   0   4   0   4   0   0   2   2   0   0
  6   0   2   0   4   2   0   0   0   0   0   2   0   2   2   2   0
  7   0   2   2   2   0   0   2   0   0   0   2   4   2   0   0   0
  8   0   2   0   2   0   0   2   2   2   0   2   0   2   2   0   0
  9   0   2   0   0   2   2   0   2   0   0   0   2   0   2   2   2
  a   0   0   0   2   2   2   2   0   0   2   2   2   2   0   0   0
  b   0   0   4   0   4   0   0   0   0   2   0   2   2   0   2   0
  c   0   0   2   0   0   0   2   0   4   4   2   0   0   0   2   0
  d   0   2   0   0   0   2   0   0   2   0   4   0   0   2   2   2
  e   0   0   0   0   0   2   2   0   0   2   0   2   0   4   2   2
  f   0   2   2   0   0   0   0   0   0   2   2   0   2   2   2   2
补偿效果例如可以通过针对两个排列考虑特性7→5看出。对于P0,7→5的概率等于X0 7,5/16=1/4,对于P1,这一概率等于X1 7,5/16=0。这种补偿最好为尽可能多的元素出现。在该例子中,对于最大异或差值为4的所有元素,这保持不变。使用用于生成和测试排列的公知技术,本领域的技术人员可以在几天内创建八对这样的排列用于4比特排列。另外,满足标准的一对不同的排列P0*和P1*可以从P0和P1构建出,例如通过将一个仿射转换应用于这两个排列的输出。这可以通过选择Z2上的一个非奇异4×4矩阵A和一个矢量b∈Z2 4并为所有的x∈Z2 4定义 P 0 * ( x ) : = P 0 ( x ) A ⊕ b P 1 * ( x ) : = P 1 ( x ) A ⊕ b . 很容易验证以这种方式可以构建322560对不同的(有序)排列,每个排列满足所有上述标准。注意这些转换之一是从Z2 4→Z2 4的恒等映射,即P0*=P0和P1*=P1
一组排列的线性特性:
用于一个S盒的一组排列满足下述标准:
如果一个排列中的非普通线性特性具有不同于1/2的最大绝对差值的概率,则在至少一个其它的排列中,这一线性特性具有接近于1/2的概率。
将理解以这种方式,一个排列中的弱点可以通过一个其它排列中的强度来补偿。一个其它排列中的对应概率最好等于1/2,最佳地补偿一个弱点。因此,对于用于一个S盒的一对4比特排列的最佳标准是:如果两个排列之一的线性特性的概率为1/4或3/4,则这一线性特性在另一排列中的概率为1/2,即S盒的每个独立于(循环)密钥的线性特性的概率在3/8和5/8之间。
为了说明上述两个排列P0和P1满足这一标准,它们的线性近似表如下。在Pi的线性近似表中的行α和列β的条目(α,β∈Z2 4)表示为Li α,β,并被定义为: L i α , β : = # { x ∈ Z 2 4 | x · α = P i ( x ) * β } - 8 , i = 0,1 .
即对于排列Pi,Li α,β表示输入数减8,对于该输入数,用α定义的输入比特的线性关系等于用β定义的相应输出比特的线性关系,这是对于4比特排列的理想数目(更普遍地,对于n比特排列,理想值为2n-1)。
P0的线性近似表:
  β
    iα     0     1     2     3     4     5     6     7     8     9     a     b     c     d     e   f
    0     8     0     0     0     0     0     0     0     0     0     0     0     0     0     0   0
    1     0     -2     0     2     2     0     2     0     4     2     4     2     2     0     -2   0
    2     0     -2     2     4     -2     0     0     -2     -2     0     0     -2     0     -2     2   -4
    3     0     0     -2     -2     0     -4     2     -2     -2     2     4     0     -2     -2     0   0
    4     0     -2     2     0     0     2     -2     0     0     2     2     4     -4     2     2   0
    5     0     4     2     2     -2     -2     0     4     0     0     2     -2     -2     2     0   0
    6     0     0     -4     0     -2     -2     -2     2     2     2     -2     2     0     0     0   -4
    7     0     2     0     2     4     -2     -4     -2     -2     0     -2     0     -2     0     -2   0
    8     0     -4     0     0     2     -2     2     2     0     -4     0     0     -2     2     -2   -2
    9     0     -2     0     -2     0     -2     -4     2     0     -2     0     -2     0     -2     4   2
    A     0     2     -2     0     4     2     2     0     2     0     0     -2     -2     0     4   -2
    B     0     0     2     -2     2     -2     0     0     -2     2     0     0     4     4     2   -2
 C  0  -2  -2  0  -2  0  0  -2  0  2  -2  -4  -2  4  0 2
 D  0  0  -2  -2  0  4  -2  2  -4  0  2  -2  0  0  -2 -2
 E  0  0  -4  4  0  0  0  0  -2  -2  2  2  2  2  2 2
 F  0  -2  0  2  2  0  2  4  -2  4  -2  0  0  -2  0 2
对于一个给定(本地)线性特性的概率,即用α定义的输入比特的线性关系等于用β定义的输出比特的线性关系(表示为α→β)的概率等于1/2+Li α,β/16。注意这些表中的第一行和第一列中的条目表示普通特性,即概率为零的0→0,它对于任何映射保持恒定。容易看出所有其它的(非普通)差分特性的概率在1/4和3/4之间,因为对于这两个排列,所有其它条目上的最小值和最大值分别等于负4和正4。
P1的线性近似表:
  β
  α   0   1   2   3   4   5   6   7   8   9   a   b   c   d   e   f
  0   8   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
  1   0   2   0   -2   2   0   2   -4   0   -2   0   2   -2   0   -2   -4
  2   0   -2   -2   0   2   -4   4   2   2   0   0   2   0   2   2   0
  3   0   -4   2   -2   -4   0   2   -2   -2   -2   0   0   2   2   0   0
  4   0   -2   2   4   0   2   2   0   4   -2   2   0   0   -2   -2   0
  5   0   0   2   2   -2   -2   0   0   0   0   -2   -2   -2   -2   4   -4
  6   0   0   0   0   2   2   -2   -2   2   -2   -2   2   4   0   4   0
  7   0   -2   -4   -2   0   2   0   -2   2   0   2   -4   -2   0   2   0
  8   0   0   0   4   2   2   2   -2   -4   0   0   0   -2   2   2   2
  9   0   -2   0   -2   0   2   0   2   0   -2   -4   2   -4   -2   0   2
  A   0   -2   2   0   0   2   -2   0   2   4   0   2   -2   4   0   -2
  B   0   0   -2   2   -2   -2   0   -4   2   2   -4   0   0   0   -2   2
  C   0   2   -2   0   -2   4   4   2   0   2   -2   0   2   0   0   -2
  D   0   0   -2   2   0   0   -2   2   0   -4   -2   -2   0   4   -2   -2
  E   0   4   0   0   -4   0   0   0   2   -2   2   2   -2   2   2   2
  F   0   -2   -4   2   -2   0   -2   0   -2   0   2   4   0   -2   0   -2
补偿效果例如可以通过针对两个排列考虑线性特性2→3看出。对于P0,2→3的概率等于 1 / 2 + L 0 2,3 / 16 = 3 / 4 ,对于P1,这一概率等于 1 / 2 + L 1 2,3 / 16 = 1 / 2 。这种补偿最好为尽可能多的元素出现。在该例子中,对于最大绝对值为4的所有元素,这保持不变。使用用于生成和测试排列的公知技术,本领域的技术人员可以在几天内创建八对这样的排列用于4比特排列。另外,满足标准的一对不同的排列P0*和P1*可以从P0和P1构建出,例如通过将一个仿射转换应用于这两个排列的输出。这可以通过选择Z2上的一个非奇异4×4矩阵A和一个矢量b∈Z2 4并为所有的x∈Z2 4定义 P 0 * ( x ) : = P 0 ( x ) A ⊕ b P 1 * ( x ) : = P 1 ( x ) A ⊕ b 。很容易验证以这种方式可以构建322560对不同的(有序)排列,每个排列对满足所有上述标准。注意这些转换之一是从Z2 4→Z2 4的恒等映射,即P0*=P0和P1*=P1

Claims (13)

1.一种用于将一个输入数据块加密转换成一个输出数据块的方法,该方法包括使用基于一个排列的一个S盒在输入数据块上执行非线性操作,其中该方法包括在每次使用S盒之前,(伪)随机地从与该S盒相关的一组预定的至少两个排列选择排列。
2.如权利要求1所述的方法,其中形成该组排列,以便该组中的一个排列的加密弱点被该组中的至少一个其它排列中的相应加密强度来至少部分地补偿。
3.如权利要求1所述的方法,其中数据块包括n个数据比特,并且该组排列的每个元素是一组2n个元素的一个排列,用Z2 n表示,其中该组中的每个排列的每个非普通差分特性具有最大pdiff的概率;该组排列由已被选择的排列形成,以便对于在任一排列中的概率为pdiff的每个非普通差分特性,这个差动特性在该组中的至少一个其它排列中具有低于Pdiff的概率。
4.如权利要求3所述的方法,其中差分特性在至少一个排列中具有等于零的概率。
5.如权利要求4所述的方法,其中n=4,和Pdiff=1/4。
6.如权利要求1的方法,其中数据块包括n个数据比特,该组排列的每个元素是一组2n个元素的一个排列,用Z2 n表示,其中该组中的每个排列的每个非普通线性特性具有最少1/2-plin和最多1/2+plin的概率,该组排列由被选择的排列形成,以便对于在任一排列中的概率为1/2-plin或1/2+plin的每个非普通线性特性,这个线性特性在该组中的至少一个其它排列中具有接近于1/2的概率。
7.如权利要求5所述的方法,其中线性特性在至少一个排列中具有等于1/2的概率。
8.如权利要求6所述的方法,其中n=4和plin=1/4。
9.如权利要求1所述的方法,其中该组排列由两个排列组成。
10.如权利要求1所述的方法,包括在一个加密密钥的控制下执行排列的选择。
11.如权利要求9和10所述的方法,其中在加密密钥的一个比特的控制下执行排列的选择。
12.一种计算机程序产品,其中操作该程序产品使一个处理器执行权利要求1的方法。
13.一种用于将一个输入数据块加密转换成一个输出数据块的系统,该方法系统包括:
-一个输入端,用于接收输入数据块;
-一个存储器,用于存储与一个S盒相关的一组预定的至少两个排列;
-一个加密处理器,用于使用基于一个排列的一个S盒对输入数据块执行一个非线性操作;操作该处理器,每次在使用S盒之前,(伪)随机地从与S盒相关的所存储的该组排列中选择排列;和
-一个输出端,用于输出处理后的输入数据块。
CNB018018882A 2000-07-04 2001-06-25 将输入数据块加密转换成输出数据块的方法和系统 Expired - Lifetime CN1193537C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP00202326 2000-07-04
EP00202326.5 2000-07-04

Publications (2)

Publication Number Publication Date
CN1383648A true CN1383648A (zh) 2002-12-04
CN1193537C CN1193537C (zh) 2005-03-16

Family

ID=8171736

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018018882A Expired - Lifetime CN1193537C (zh) 2000-07-04 2001-06-25 将输入数据块加密转换成输出数据块的方法和系统

Country Status (8)

Country Link
US (1) US7043016B2 (zh)
EP (1) EP1303941B1 (zh)
JP (1) JP4828082B2 (zh)
KR (1) KR100889465B1 (zh)
CN (1) CN1193537C (zh)
AU (1) AU2001269086A1 (zh)
TW (1) TW527811B (zh)
WO (1) WO2002003605A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101257383B (zh) * 2008-03-28 2010-06-09 中国科学院软件研究所 一种快速的s盒透明阶检测方法
CN101834719B (zh) * 2005-03-25 2012-06-27 索尼株式会社 加密处理装置用矩阵生成方法
CN101512618B (zh) * 2006-09-01 2012-12-05 索尼株式会社 共用密钥块密码处理装置和共用密钥块密码处理方法
CN103546282A (zh) * 2012-07-12 2014-01-29 黄宜豊 具有三维运算、反馈控制与动态替换盒设计的加密方法
CN104011709A (zh) * 2011-12-22 2014-08-27 英特尔公司 在256位数据路径中执行jh加密散列的指令
CN108170203A (zh) * 2018-02-02 2018-06-15 清华大学无锡应用技术研究院 用于可重构处理系统的查表算子及其配置方法

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577250B2 (en) * 2004-08-12 2009-08-18 Cmla, Llc Key derivation functions to enhance security
US7564970B2 (en) * 2004-08-12 2009-07-21 Cmla, Llc Exponential data transform to enhance security
US8077861B2 (en) * 2004-08-12 2011-12-13 Cmla, Llc Permutation data transform to enhance security
GB2379587B (en) * 2001-09-10 2003-08-20 Simon Alan Spacey A method and apparatus for securing electronic information
US20030068038A1 (en) * 2001-09-28 2003-04-10 Bedros Hanounik Method and apparatus for encrypting data
DE10149191C2 (de) * 2001-10-05 2003-12-18 Infineon Technologies Ag Verfahren und Vorrichtung zum Ermitteln von Ursprungsausgangsdaten aus Ursprungseingangsdaten auf der Basis einer kryptographischen Operation
IL147287A0 (en) * 2001-12-25 2002-08-14 Yissum Res Dev Co Method and apparatus for controlling atmospheric conditions
JP2005527853A (ja) * 2002-05-23 2005-09-15 アトメル・コーポレイション 高度暗号化規格(aes)のハードウェア暗号法エンジン
JP2006510067A (ja) * 2002-12-13 2006-03-23 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ラインドールのサブバイトファンクションの小さなハードウェア実現
JP2004212828A (ja) * 2003-01-08 2004-07-29 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US7415616B2 (en) * 2004-01-21 2008-08-19 National Institute Of Information And Communications Technology Cipher strength evaluation apparatus
KR100800468B1 (ko) * 2004-01-29 2008-02-01 삼성전자주식회사 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
KR20070093963A (ko) * 2004-09-24 2007-09-19 시냅틱 래버러토리즈 리미티드 대입 박스들
JP5050454B2 (ja) * 2006-09-01 2012-10-17 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US8750254B2 (en) 2006-12-21 2014-06-10 Palo Alto Research Center Incorporated Dynamic frame scheduling based on permutations of sub-channel identifiers
US9296600B2 (en) * 2007-07-11 2016-03-29 Stokely-Van Camp, Inc. Active sterilization zone for container filling
EP2051387A1 (en) * 2007-10-15 2009-04-22 CoreOptics, Inc., c/o The Corporation Trust Center Receiver, interleaving and deinterleaving circuit and method
KR100969961B1 (ko) 2007-12-20 2010-07-15 한국전자통신연구원 블록 암호 아리아의 치환 연산 장치 및 방법
JP2011512726A (ja) * 2008-01-31 2011-04-21 イルデト・コーポレート・ビー・ヴイ スマートカードの保護
CA2717622C (en) * 2008-03-05 2017-10-17 Irdeto B.V. White-box implementation
US8098816B2 (en) * 2008-10-17 2012-01-17 Qualcomm Incorporated Apparatus and method for evaluating a cipher structure's resistance to cryptanalysis
JP4687775B2 (ja) * 2008-11-20 2011-05-25 ソニー株式会社 暗号処理装置
KR101186335B1 (ko) 2008-12-15 2012-09-27 한국전자통신연구원 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법.
FR2941342B1 (fr) * 2009-01-20 2011-05-20 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve.
FR2949887B1 (fr) * 2009-09-04 2013-02-08 Oberthur Technologies Procede de traitement cryptographique de donnees
CN101719823B (zh) * 2009-10-30 2012-07-11 中国科学院软件研究所 一种实现密码算法中的s-盒线性变换的方法
KR101601684B1 (ko) * 2011-05-18 2016-03-09 한국전자통신연구원 부채널 공격에 대응하는 대칭키 암호 알고리즘 구현 방법
US9251374B2 (en) 2011-12-22 2016-02-02 Intel Corporation Instructions to perform JH cryptographic hashing
CN103888245A (zh) * 2012-12-20 2014-06-25 北京握奇数据系统有限公司 一种智能卡的s盒随机化方法和系统
US20150222421A1 (en) * 2014-02-03 2015-08-06 Qualcomm Incorporated Countermeasures against side-channel attacks on cryptographic algorithms
US9602273B2 (en) * 2015-05-06 2017-03-21 Nxp B.V. Implementing key scheduling for white-box DES implementation
CN108370311A (zh) 2015-12-15 2018-08-03 皇家飞利浦有限公司 计算设备和方法
CN105610585A (zh) * 2016-03-14 2016-05-25 北京三未信安科技发展有限公司 一种支持密码运算的微处理器、方法及系统
US10404667B2 (en) 2016-11-17 2019-09-03 Bank Of America Corporation Secure, autonomous file encryption and decryption
US11575504B2 (en) 2019-06-29 2023-02-07 Intel Corporation Cryptographic computing engine for memory load and store units of a microarchitecture pipeline
US11580234B2 (en) 2019-06-29 2023-02-14 Intel Corporation Implicit integrity for cryptographic computing
US20200145187A1 (en) * 2019-12-20 2020-05-07 Intel Corporation Bit-length parameterizable cipher
CN110807438B (zh) * 2019-11-11 2020-10-30 电子科技大学 一种基于空排列的生理信号非线性特征提取方法
CN111756521B (zh) * 2020-06-25 2022-05-27 桂林电子科技大学 基于Feistel-SP结构的密码S盒设计方法
US11669625B2 (en) 2020-12-26 2023-06-06 Intel Corporation Data type based cryptographic computing
US11610004B2 (en) * 2021-04-14 2023-03-21 Bank Of America Corporation System for implementing enhanced file encryption technique

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4972476A (en) * 1989-05-11 1990-11-20 Nathans Robert L Counterfeit proof ID card having a scrambled facial image
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
KR0153758B1 (ko) * 1995-12-26 1998-11-16 양승택 입출력 변화 공격과 선형 공격에 안전한 대치회로 생성기 및 생성방법
JPH10153955A (ja) * 1996-11-25 1998-06-09 Nippon Signal Co Ltd:The 暗号装置
KR100389902B1 (ko) * 1997-06-23 2003-09-22 삼성전자주식회사 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법
US6182216B1 (en) * 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
GB2329557B (en) * 1997-09-19 2002-05-01 Motorola As Method and apparatus for viterbi decoding of punctured codes
US6038317A (en) * 1997-12-24 2000-03-14 Magliveras; Spyros S. Secret key cryptosystem and method utilizing factorizations of permutation groups of arbitrary order 2l
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block
US6075865A (en) * 1998-07-01 2000-06-13 Tecsec Incorporated Cryptographic communication process and apparatus
US6334197B1 (en) * 1998-08-17 2001-12-25 Hughes Electronics Corporation Turbo code interleaver with near optimal performance
US7346161B2 (en) * 2000-01-26 2008-03-18 Fujitsu Limited Method and apparatus for designing cipher logic, and a computer product
EP1307993B1 (en) * 2000-08-03 2005-06-29 Koninklijke Philips Electronics N.V. Linear transformation for symmetric-key ciphers

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101834719B (zh) * 2005-03-25 2012-06-27 索尼株式会社 加密处理装置用矩阵生成方法
CN101512618B (zh) * 2006-09-01 2012-12-05 索尼株式会社 共用密钥块密码处理装置和共用密钥块密码处理方法
CN101257383B (zh) * 2008-03-28 2010-06-09 中国科学院软件研究所 一种快速的s盒透明阶检测方法
CN104011709A (zh) * 2011-12-22 2014-08-27 英特尔公司 在256位数据路径中执行jh加密散列的指令
CN104011709B (zh) * 2011-12-22 2018-06-05 英特尔公司 在256位数据路径中执行jh加密散列的指令
CN103546282A (zh) * 2012-07-12 2014-01-29 黄宜豊 具有三维运算、反馈控制与动态替换盒设计的加密方法
CN103546282B (zh) * 2012-07-12 2016-10-05 黄宜豊 具有三维运算、反馈控制与动态替换盒设计的加密方法
CN108170203A (zh) * 2018-02-02 2018-06-15 清华大学无锡应用技术研究院 用于可重构处理系统的查表算子及其配置方法
CN108170203B (zh) * 2018-02-02 2020-06-16 清华大学 用于可重构处理系统的查表算子及其配置方法

Also Published As

Publication number Publication date
WO2002003605A1 (en) 2002-01-10
US20020027987A1 (en) 2002-03-07
EP1303941B1 (en) 2012-12-19
CN1193537C (zh) 2005-03-16
US7043016B2 (en) 2006-05-09
JP4828082B2 (ja) 2011-11-30
KR100889465B1 (ko) 2009-03-20
TW527811B (en) 2003-04-11
KR20020041810A (ko) 2002-06-03
EP1303941A1 (en) 2003-04-23
JP2004502965A (ja) 2004-01-29
AU2001269086A1 (en) 2002-01-14

Similar Documents

Publication Publication Date Title
CN1193537C (zh) 将输入数据块加密转换成输出数据块的方法和系统
Ali et al. A new chaos based color image encryption algorithm using permutation substitution and Boolean operation
Guesmi et al. A new efficient medical image cipher based on hybrid chaotic map and DNA code
Zhang et al. A plaintext-related image encryption algorithm based on chaos
Wang et al. A novel chaotic algorithm for image encryption utilizing one-time pad based on pixel level and DNA level
Sheela et al. Image encryption based on modified Henon map using hybrid chaotic shift transform
Wang et al. A novel color image encryption scheme using DNA permutation based on the Lorenz system
Zhen et al. Chaos-based image encryption scheme combining DNA coding and entropy
ur Rehman et al. Selective encryption for gray images based on chaos and DNA complementary rules
Norouzi et al. A novel image encryption based on row-column, masking and main diffusion processes with hyper chaos
Wang et al. A new compound mode of confusion and diffusion for block encryption of image based on chaos
Xu et al. A novel image encryption algorithm based on bit-plane matrix rotation and hyper chaotic systems
Fouda et al. A fast chaotic block cipher for image encryption
US6891950B1 (en) Extended key generator, encryption/decryption unit, extended key generation method, and storage medium
Singh et al. Image encryption and analysis using dynamic AES
Gan et al. A novel image encryption algorithm based on LFT based S-boxes and chaos
Kou et al. Image encryption for Offshore wind power based on 2D-LCLM and Zhou Yi Eight Trigrams
JPH11509940A (ja) データブロックおよび鍵を非線形的に結合する暗号方法および装置
Devaraj et al. An image encryption scheme using dynamic S-boxes
Liu et al. Hierarchical bit-level image encryption based on chaotic map and feistel network
Pashakolaee et al. Hyper-chaotic Feeded GA (HFGA): a reversible optimization technique for robust and sensitive image encryption
Awad et al. New chaotic permutation methods for image encryption
Elkhalil et al. Image encryption using the new two-dimensional Beta chaotic map
Singh et al. Improvement of image transmission using chaotic system and elliptic curve cryptography
Li et al. Plaintext-dependent selective image encryption scheme based on chaotic maps and DNA coding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20050316