保密密钥控制的可逆电路和相应的数据处理方法转让专利

申请号 : CN03827033.1

文献号 : CN1826753B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 乔万·戈利克

申请人 : 意大利电信股份公司

摘要 :

一种组合的依据密钥的网络(46),适合于对数据处理设备的总线上和存储器中的数据进行加密/解密,其包括多个层,其中每个层包括多个对很小的块大小进行操作的基本构建块(2)。通用构建块(2)作用于小数量的输入数据比特,该输入数据比特被分成分别为m和n个比特的两个组。原样传送到输出的m个输入比特被用来由多路复用器电路从2mk个密钥比特中选择k个比特;所述k个比特接着被用于选择(n×n)比特的可逆变换(Rk),所述可逆变换作用于剩余的n个输入比特,以产生相应的n个输出比特。在构建块中的密钥比特的总数因此是2mk,其可以容易地被构造得大于m+n。除了所述可逆变换RK由其反函数Rk-1所代替之外,逆的构建块是相同的。

权利要求 :

1.一种组合的依据密钥的网络(46),用于把字大小为N的输入数字数据(42)加密/解密为相同字大小的输出数字数据(44),其包括至少两个层(48),每个层至少包括构建块(2),每个构建块(2)适用于对具有字大小n+m的输入比特块(14,16)进行操作,用于产生输出比特块(18,19),所述字大小n+m小于或等于所述字大小N,其特征在于,所述构建块(2)包括:-多路复用器电路(4),其适用于在控制输入(12)上接收所述输入比特块的第一部分m(14),并适用于在所述多路复用器电路(4)的k比特输出(10)上从2mk个密钥比特中选择k个比特,所述第一部分(14)的比特被原样传送到所述构建块(2)的输出(19);和-变换电路(6),适用于根据借助于所述选择的k个比特(10)而在所述变换电路(6)中实现的多个可逆变换(Rk)之中选择的可逆变换(Rk),把所述输入比特块的第二部分n(16)变换为变换的比特(18),其中每个层(48)包括至少两个构建块(2),并且其中所述可逆变换(Rk)使得所述可逆变换(Rk)的每个输出比特是n个输入数据比特和所述k个密钥比特的非线性函数,具有包括至少一个包含所述输入比特决的所述第二部分(16)与所述密钥比特的二进制乘积的代数范数形式。

2.根据权利要求1的网络,其中相邻的层(48)是借助于固定的比特排列块(40)而被连接的。

3.根据权利要求2的网络,包括多个相同类型的固定比特排列块(40)。

4.根据权利要求2的网络,包括至少两个不同类型的固定比特排列块(40)。

5.根据权利要求2的网络,其中在所述输入比特块的所述第一部分(19)中的比特在下一层中被用作要变换的比特(16)。

6.根据权利要求2的网络,对于每个构建块(2),包括用于如果m>=2则从先前层中的至少两个构建块中提取所述输入比特块的所述第一部分(14)的装置。

7.根据权利要求2的网络,其中对于每个构建块(2),如果n>=2,则所述输入比特块的所述第二部分(16)是从先前层中的至少两个构建块中提取的。

8.根据权利要求1的网络,其中密钥比特的数量k等于或大于所述输入比特块的第二部分的数量n。

9.根据权利要求1的网络,其中所述多路复用器电路(4)包括查找表,其内容由所述密钥定义。

10.根据权利要求1的网络,其中所述变换电路(6)包括异或门与受控交换器。

11.根据权利要求10的网络,其中每个异或门具有两个输入比特与一个输出比特,所述两个输入比特中的一个是密钥比特,以及每个受控交换器具有两个输入比特、两个输出比特以及用于确定所述输入比特是否被交换的一个控制比特,所述控制比特是密钥比特。

12.根据权利要求11的网络,其中所述多路复用器电路(4)具有两个控制比特(36)、四个3比特输入(32)以及一个3比特输出(34),以及所述变换电路(6)包括两个异或门(26,28)与一个受控交换器(30)。

13.根据权利要求12的网络,其中所述3比特输出(34)的三个比特分别被连接到每个异或门(26,28)的第一输入比特以及所述受控交换器(30)的控制比特。

14.根据权利要求13的网络,其中每个异或门(26,28)的第二输入比特被连接到所述输入比特块的所述第二部分(16)的一个比特。

15.根据权利要求14的网络,其中所述异或门(26,28)的输出比特被连接到所述受控交换器(30)的两个输入比特。

16.根据权利要求15的网络,包括用于从所述受控交换器(30)的两个输出比特产生所述变换电路(6)的变换的比特(18)的装置。

17.根据权利要求1的网络,包括多个相同类型的构建块(2)。

18.根据权利要求1的网络,包括至少两个不同类型的构建块(2)。

19.根据权利要求1的网络,其中相邻的层(48)是借助于实现可逆线性函数的块(40′)而被连接的。

20.根据权利要求1的网络,其中字大小为N的两个附加的输入和输出密钥分别与所述输入数字数据(42)和所述输出数字数据(44)进行逐位异或。

21.根据权利要求1的网络,包括用于借助于密钥扩展算法从具有比特大小为K的保密密钥比特中产生在每个层中具有比特大小为K′的所述密钥比特的装置,其中K<K′。

22.根据权利要求21的网络,其中所述K个保密密钥比特首先通过使用线性码、借助于线性变换而被扩展为K′个密钥比特,以使得K″个扩展的密钥比特的任何子集是线性无关的,其中K″<=K。

23.根据权利要求22的网络,其中具有比特大小K′的所述扩展的密钥被用作对块大小为K′的另一组合的依据密钥的网络的输入,所述另一组合的依据密钥的网络是由满足以下条件的固定的随机产生的密钥所参数化的,所述条件是每个多路复用器实现平衡的二进制查找表。

24.根据权利要求23的网络,其中在所述另一组合的依据密钥的网络的每两个层之后产生的K′个比特被用作来自在所述组合的网络(46)的多层内的多路复用器电路的所述密钥比特。

25.根据权利要求23的网络,其中所述另一组合的依据密钥的网络包括多个层,每个层包括多个简化的构建块(50),每个构建块(50)包括:-具有一个输入(58)的多路复用器(54),其接收被原样传递到输出(y3)的一个控制比特(X3),该控制比特(X3)用于在1比特输出(60)上从两个密钥比特(52)中选择一个比特;

-受控交换器(56),其具有两个输入比特(x1,x2)、两个输出比特(y1,y2)以及被连接到所述多路复用器(60)的输出的一个控制比特,所述控制比特确定所述输入比特(x1,x2)是否被交换。

26.一种用于把字大小为N的输入数字数据(42)加密/解密为相同字大小的输出数字数据(44)的方法,包括:a)把所述输入数字数据(42)划分为比特块(14,16),每个比特块具有小于所述字大小N的字大小n+m,每个比特块被分成第一部分m(14)与第二部分n(16);

b)对于每个比特块:

b1)借助于所述第一部分m(14)的比特寻址包含2mk个密钥比特的查找表(4),用于从2mk个密钥比特中选择k个比特,把所述第一部分m(14)的比特原样传送到第一部分的变换的比特(19);

b2)借助于所述选择的k个比特(10),从多个可逆变换(Rk)之中选择可逆变换(Rk);

b3)把所述可逆变换(Rk)应用于所述第二部分n(16)的比特,由此产生第二部分的变换的比特(18);

c)把来自每个块的变换的比特聚集成所述输出数字数据(44),

其中所述可逆变换(Rk)使得所述可逆变换(Rk)的每个输出比特是n个输入数据比特和所述k个密钥比特的非线性函数,具有包括至少一个包含所述比特块的所述第二部分(16)与所述密钥比特的二进制乘积的代数范数形式。

27.根据权利要求26的方法,其中对包括所述第一部分(19)与第二部分(18)的先前变换的比特的比特块重复所述步骤b)。

28.根据权利要求27的方法,其中在步骤b)的每次重复之前,将固定的比特排列(40)应用于所述先前变换的比特。

29.根据权利要求27的方法,其中在步骤b)的每次重复之前,将可逆线性函数(40′)应用于所述先前变换的比特。

30.一种数据处理设备,包括中央处理单元(CPU)、易失性或者非易失性存储器和至少的数据、指令或地址总线,其特征在于,所述设备至少包括根据权利要求1至25中的任何一个所实现的组合的依据密钥的网络(46),用于对所述数据、指令或者地址总线上的数字数据和/或所述存储器中的数字数据进行加密/解密。

31.一种用于存储和播放版权数字数据的多媒体设备,其特征在于,所述设备至少包括根据权利要求1至25中的任何一个所实现的组合的依据密钥的网络(46),用于对所述版权数字数据进行加密/解密。

说明书 :

技术领域

本发明涉及一种数据处理方法和系统,特别地涉及一种用于加密和解密数据的密钥控制的可逆电路。

由保密密钥参数控制的可逆变换是这样数学实体,其用于为了提供数据机密性而加密和解密敏感数据。所述变换应该使得在不知道所使用的保密密钥的情况下,从变换的输出数据恢复初始输入数据在计算上是不可行的,特别地,应该是不可能从多个已知的输入/输出对中重构所述保密密钥。另外,其应该能够相对容易地以软件和/或硬件实现。

背景技术

块密码和流密码是两种普通类型的这种变换。块密码是对以连续符号的块安排的数字数据进行操作的块变换,而流密码是对数字数据序列进行操作的顺序变换,典型地在一个时间处理一个符号。分别作为在J.Daemen和V.Rijmen的Rijndael的设计:AES—The AdvancedEncryption Standard,Berlin:Springer Verlag,2002,以及在1977年1月的National Bureau of Standards,“Data Encryption Standard”,Federal Information Processing Standard Publication 46中的AES和DES来说明块密码的例子。
通过诸如块密码或流密码的保密密钥或者信息鉴别码来进行处理的加密功能可以在微电子数据处理设备上以软件实现,所述设备诸如是集成电路芯片卡,其包含诸如微处理器的中央处理单元(CPU)、一个或多个诸如随机存取存储器(RAM)的易失性存储器、以及一个或多个诸如电可擦除可编程只读存储器(EEPROM)、闪速存储器和只读存储器(ROM)的非易失性存储器。在所述加密函数执行期间,依靠所述保密密钥的敏感数据在连接所述CPU和所述存储器的数据总线上发送,以及被存储在所述系统中的RAM中。在这个实施例中,除输出数据外,所述敏感信息是保密密钥本身和依靠所述保密密钥的所有中间数据。即使对于反篡改(tamper-resistant)芯片,其中基础的集成电路由特定物理手段保护,诸如保护层和各种传感器与检测器,所述敏感信息也可以通过各种边信道(side channel)而被泄漏,所述边信道诸如定时测量、功率分析测量、电磁辐射和微探测。
文献US 5,850,452说明了一种用于通过在包括控制单元与数据总线的可编程电路中的数据比特的排列(permutation)来进行数字置乱(scrambling)的方法,其中数据总线在所述控制单元与几个存储器电路之间传输数据。
尽管,对于加密函数,从已知的输入/输出数据重构保密密钥应当在计算上是不可行的,但是,这也不必是透露在执行期间产生的中间数据的情形。因此,需要通过使用有时被称为数据置乱的专用加密/解密技术来保护在数据总线上与在存储器中的敏感数据。这对于防止探测攻击是尤其有效的。探测攻击是入侵性的边信道技术,包括把导体微探针引进反篡改芯片的某些点,以监控与分析在这些点的电信号,从而恢复关于保密密钥的敏感信息。在这方面,潜在地最易受攻击的点是那些对应于可能传送或者包含保密信息的内部链路或者存储器的点,所述内部链路或者存储器的硬件实现具有规则的、可识别的结构,诸如是在数据处理设备中的数据总线与RAM。
文献US 5,943,421包含对数据处理设备的描述,其中在存储器(包括RAM)中存储的数据是加密与压缩的。所述设备使用用于加密/压缩与解密/解压缩的硬件单元,其对其它组件是透明的。
仅在数据或者指令总线上对数据进行加密/解密可以通过使用快速流密码而实现,所述快速流密码可能通过逐位异或(XOR)操作来组合数据序列与密钥流序列,密钥流序列是快速集中随机或者伪随机数发生器的输出序列,例如US 2003/0005313与US 2003/0005314中说明的那样。
回想如果两个比特相等,则两个比特的异或等于0,否则等于1。更确切地说,每次数据块都是与密钥流块逐位异或的。应当注意,伪随机数发生器是顺序电路而不是组合电路。然而,这种解决方案不适合于分别对存储在存储器中的数据或者从存储器中读出的数据进行加密或者解密,因为相同密钥流块必须用于解密与加密在给定存储器中特定位置的数据。所述可逆变换还可以依据所述存储器位置的地址,然而也可以加密所述地址,以使数据有效地存储在存储器位置中,其地址是原始逻辑地址的加密版本。
对于在存储器中数据的加密/解密,已经建议使用块密码的硬件实现,其需要大量的门以及引起长的延迟。文献US 2002/0166058 A1包含对在集成电路芯片卡上实现的数据处理设备的描述,其中存储在诸如RAM的存储器中的地址与数据二者是由实现在可编程硬件中的16个循环的DES型的块密码来加密/解密的。
已经建议了经典的块密码的一些简化,例如具有减少的循环次数以及减少的块大小。原则上,所述简化还可以用于加密/解密数据总线和地址总线。然而,这些简化不能够结合足够多的保密密钥比特以抵抗一些众所周知的结构攻击,诸如中间相遇(meet-in-the-middle)攻击,尤其是在所述块大小是相对小的情况下。应当注意,在经典的块密码中,保密密钥比特典型地是与各个循环的输出比特逐位异或的。为了增加保密密钥比特的数量,还建议使用保密密钥控制的比特排列,但是他们不提供满意的保密等级,并且如果需要的块大小是小的话,则保密密钥比特的数量就是小的。
在E.Brier、H.Handschuh和C.Tymen的“Fast primitives forinternal data scrambling in tamper resistant hardware”Cryptographic Hardware and Embedded Systems——CHES 2001,Lecture Notes in Computer Science,vol.2162,pp.16-27,2001中建议了一些用于实现保密密钥控制的比特排列的逻辑电路,用于数据置乱来防止对集成电路芯片卡的探测攻击。
总之,对于加密/解密在存储器中的数据的当前解决方案不是令人满意的,尤其是在所述块大小是小的,诸如16比特或者更少的情况下。
因此,需要对于依据保密密钥的可逆逻辑电路的新设计,其适合于在门的数量方面为小规模的而在引起延迟的方面为高速的硬件实现。其应当能够结合相对多的保密密钥比特,以及对小的且可能变化的块大小进行操作。

发明内容

考虑到上述内容,本发明的目的是提供一种用于设计保密密钥控制的可逆逻辑电路的新方法与设备,其适合于对在数据处理设备的总线上与存储器中的数据进行加密/解密。
根据本发明,所述目的是借助于具有在后面的权利要求中阐述的特征的组合的网络(network)来实现的。本发明还涉及相应的加密/解密数字数据的方法。
所建议的解决方案具有迭代的与粒状(granular)的结构,即包含多个层,其中每个层包括多个对很小的块大小进行操作的基本构建(building)块。
通用构建块作用于小数量的输入数据比特,其被分成分别为m和n比特的两个组。原样传送到输出的m个输入比特被用来由多路复用器电路从2mk个密钥比特中选择k个比特;所述k个比特接着用于选择(n×n)比特的可逆变换Rk,其作用于剩余的n个输入比特,以产生相应的n个输出比特。在所述构建块中的密钥比特的总数因此是2mk,其可以容易地被构造得比m+n大。除了所述可逆变换Rk由其反函数Rk-1代替之外,逆的构建块是相同的。
每个块因此能够结合大数量的保密密钥比特,具有少量的门与短的延迟。构建块以层而被安排,所述层可以通过固定比特排列而被连接。

附图说明

图1是根据本发明实现的保密密钥控制的逻辑电路的通用构建块的方框图;
图2是根据本发明实现的保密密钥控制的逻辑电路的阵列结构的框图;
图3是连接相邻的层的块的第一实施例的框图;
图4是连接相邻的层的块的第二实施例的框图;
图5是根据本发明实现的构建块的特定实施例的框图;和
图6是根据本发明实现的构建块的简化实施例的框图。

具体实施方式

根据本发明的保密密钥控制的可逆逻辑电路是组合的网络,其包括多个层,每个层包括多个基本构建块,每个块实现依据密钥的可逆变换。
图1中示出了通用构建块2。其作用于小数量的输入数据比特,所述输入数据比特被分成分别为m个控制比特和n个变换的比特的两个组,例如m+n<=16。由输出19原样采用的m个控制比特14被用于由多路复用器电路4从2mk个保密密钥比特中选择k个比特,多路复用器电路4具有m个控制比特12、2m个k比特的输入8和一个k比特输出10。所述多路复用器电路4可以被实现为m×k的查找表,即k个(二进制)m×1的查找表,其内容是由所述保密密钥定义的。
所选择的k个比特(即所述多路复用器4的输出10)被用于选择(n×n)比特的可逆变换Rk(图1的块6),其作用于剩余n个输入比特16,因此称为变换的比特,以产生相应的n个输出比特18。用于通用块的所述可逆变换Rk的集合可以是任意的,并且优选地其必须是由具有n+k个输入比特与n个输出比特的逻辑电路容易实现的。应当注意,在构建块中的保密密钥比特的总数因此是2mk,其可以容易地被构造得(远)大于块大小m+n。
除了可逆变换Rk由其反函数Rk-1所代替之外,逆的构建块具有相同的电路结构。
图2示出了组合的网络46,其包括多个层48,每个层包括多个基本构建块2。
所述网络46对N个输入比特42进行操作,在每个层48中,N个比特被分为小的块,以及每个块由基本构建块2所变换。每个层48由此是多个构建块的并行组合。在均匀的(uniform)设计中,所有的构建块是相同类型的,不过,构建块的不同实现可以用在单个组合的网络中。
所述层48是由固定的比特排列块40连接的,为了获得更高的安全性,其优选地满足以下两个扩散(diffusion)特性。在逆的组合的网络中,必须使用逆的比特排列。如果m=n,那么所使用的比特排列可以是与其逆排列相等的。
第一属性是在每个层中的控制比特被用作在下一个层中的变换的比特。在每个层中,所述控制比特的数量因此不能超过变换的比特的数量,这样,在均匀的设计中,m<=n。
第二属性是,对于每个构建块,控制比特与变换的比特二者是从在先前层中的最大可能数量的构建块中提取的。在均匀的设计中,所述数量等于控制比特的min(m,N/(m+n))与变换的比特的min(n,N/(m+n))。
作为选择,仅部分地满足第二属性的要求,也就是,控制比特与变换的比特是从先前层中的大数量(不是最大可能的数量)的构建块中提取的,这是可以接受的。
图3示出了固定的比特排列块40的可能的实施例,其中N=8以及每个层两个块,并且参数m=n=2。所述第一和第二属性在图3示出的实施例中被验证。
在均匀的设计中,连接相邻的层48的所有块40是相同类型的,然而,在单个组合的网络46中可以实现块40的不同实施例。
对于数据置乱,即,对于数据处理设备中的总线和存储器的加密/解密,相对小的层数可以是足够的,例如3个到5个。
为了加密安全性,还建议了多个理想的附加准则。
首先,每个层48的构建块2的数量应该至少是2个。
第二,所述可逆变换Rk应该是这样的,以使得Rk的每个输出比特是n个输入数据比特和k个密钥比特的非线性函数,具有包括至少一个涉及输入数据和密钥比特二者的二进制乘积的代数范数形式(algebraic norm form)。例如,这是由图5示出的可逆变换满足的,这将之后被详细说明。
更确切地说,对于图5的方案,对于输出比特y1和y2的代数范数形式是:
y1=k1k1·k3k2·k3x1k3·x1k3·x2
y2=k2k2·k3k1·k3x2k3·x2k3·x1
其中,密钥比特k1和k2用于异或门26、28,密钥比特k3用于控制交换器(switch)30。这里“”表示异或操作,以及“·”表示二进制乘积操作。
在每个层中的变换的比特与控制输入比特由此非线性地结合在一起。
所述第二准则意味着,n>=2,因为一个二进制变量的仅有的可逆函数是单位矩阵(identity)和二进制补函数(complement function),这样,单个密钥比特必须与输入比特进行异或,以获得输出比特。如果k=n,并且所述密钥比特与n个输入数据比特进行逐位异或,如用于DES的通常的Feistel结构中的那样,则所述准则是不被满足的。
第三,可逆变换Rk应该满足香农类型准则,即,在已知n个输出比特时由均匀使用的随机的k个密钥比特所提供的n个输入比特的不确定性是最大可能的,即,n个比特。对于此,k>=n是必要的。通过将n个密钥比特的子集与n个输入数据比特进行逐位异或,可以容易地满足第三准则,如图5中实现的那样。
实现所述依据密钥的可逆变换Rk的简单类型的逻辑电路仅包括两个输入比特的XOR和(受控的)交换器,其中交换器具有两个输入比特、两个输出比特以及用于确定所述输入比特是否被交换的一个控制比特。明显地,可以通过使用两个并行的多路复用器来实现交换器,然而仅一个多路复用器足以实现XOR。在这里以及在本说明书的全文中,除非特别规定,多路复用器具有2个输入比特、1个控制比特和1个输出比特。对于每个XOR,两个输入比特的其中一个是密钥比特,然而对于每个交换器,控制比特是密钥比特。
密钥比特通过下面的方式合并到所述电路中,所述方式即,没有等同的密钥,也就是说,密钥比特的不同组合产生不同的可逆变换。由于所述参数n和k是小的,因此,进行检查不成问题。对于每个固定的密钥,这种可逆变换是仿射的(affine),以及非线性是由所述密钥比特依据控制输入数据比特来实现的。对于n=3,应当注意,2个输入比特的所有24个可逆变换必须是仿射的。
如果所述电路仅包含密钥控制的交换器,则不满足香农类型准则。
图5示出了根据上面所述类型的构建块20的基本的具体例子,具有参数(m,n,k)=(2,2,3)。
两个输入比特x3、x4用于控制多路复用器24,并且原样传送到输出y3,y4。输入比特x3、x4借助于多路复用器电路24从十二个密钥比特中选择三个比特,多路复用器电路24具有两个控制比特36、四个3比特输入32和一个3比特输出34。
3比特输出34用于控制块38,块38实现可逆变换Rk的,把输入比特x1和x2变换为置乱的输出比特y1与y2。块38包括两个异或门26和28,每个门具有两个输入比特和一个输出比特,并且具有一个控制交换器30,控制交换器30具有2个输入比特、2个输出比特和用于确定所述输入比特是否被交换的1个控制比特。
受控制的交换器30可以通过使用两个并行的多路复用器而被实现,然而仅一个多路复用器足以实现所述两个异或门26、28的每一个。
图5示出的构建块20可以通过使用深度为4的13个多路复用器电路而被实现,其中深度被定义为从输入到输出的最长路径上的门的数量。所结合的保密密钥比特的总数是12。
所述构建块20可以容易地用于定义具体的均匀类型的数据置乱函数。例如,对于N=16的输入比特,每个层包含4个这种块,由此具有总共52个多路复用器和结合有48个密钥比特。因此,五个这种层结合有240个密钥比特,并且可以由具有210个多路复用器和深度20的电路来实现。所产生的网络结合有相对大量的密钥比特,而具有很小的大小和深度,对于诸如N<=16的相对小的N来说,这不可能由从简化的经典块密码和密钥控制的比特排列所产生的网络来实现。另外,显著地改善了其密码安全性。
为了进一步增加安全性,用于数据置乱的保密密钥对于在数据处理设备上加密函数的每次新的执行而被刷新。这样,用于数据置乱的保密密钥本身很少暴露于诸如功率分析攻击的边信道攻击。如此,还对功率分析攻击提供了某种程度的抵抗。
保密密钥优选地是由在相同设备上实现的随机数发生器产生的。可选地,但是较不安全地,其可以由伪随机数发生器根据保密种子以及无需是保密的或者是随机的某些附加信息而被产生,但是时常被刷新。
所建议的构建块还可以用于设计通常适合于硬件实现的高速的和小的块密码。为此目的,优选地使用例如N≥64的较大的块大小,以及增加层数,即循环的数量。由于每个层的大小与延迟显著地小于块密码的通常的迭代结构,因此,所述循环数量可以大几倍。例如,对于图5的构建块以及N=128,循环数量可以大约是32乃至更大。
不同于数据置乱函数,对于块密码的加密或者解密函数不必仅在一个微处理器周期中执行,这样,其可以由逻辑电路与寄存器的组合来实现。例如,组合的几个层可以由逻辑电路实现。由于每个层的小的延迟,因此,流水线(pipelined)架构是非常快速的。
对于加密安全性,所述层应该满足如上所述的三个所希望的附加准则。与此无关的是,建议了关于在层之间的连接的两个附加要求。
首先,除了称作循环密钥的用于各个循环中的保密密钥之外,还应该有大小为N的两个附加的输入和输出保密密钥分别与输入和输出比特进行逐位异或。
第二,考虑到诸如块密码的线性密码分析的统计学密码分析方法,建议在层之间使用非常简单的可逆线性函数,代替仅使用比特排列。特别地,如果每个层的变换的比特与控制数据比特的总数相等,则建议使用如上面说明的那样所设计的比特排列,以及然后把到每个层的输入的每个变换的数据比特与来自先前层的不同的变换的数据比特进行异或。这通常不增加层的延迟。图4示出了用于连接相邻的层、实现可逆线性函数的块40′的实施例。对于m=n=2与N=8的情况,示出的块40′实现了8比特可逆线性变换。
在根据本发明实现的组合的网络中,每个循环的密钥比特的数量,即所述循环密钥的比特大小典型地大于块大小。这对于数据置乱应用是很大的优点,在所述应用中,块大小与循环数量二者都是相对小的。
例如,图5示出的构建块对于每个输入比特需要有三个密钥比特。由于对于块密码应用增加了循环数量,因此,需要的密钥比特的总数大于通常的块密码设计。这些密钥比特可以由密钥扩展算法从存储在RAM中的较少数量的保密密钥比特中产生,所述算法可以是基于修改的构建块的,以下将进行说明。
密钥扩展算法迭代地产生循环密钥,其本身可以通过逻辑电路与寄存器的组合而以硬件被实现,这样,并非所有的循环密钥都必须存储在RAM中。
实现密钥扩展算法的修改的构建块如下操作。让K与K′分别表示保密密钥与循环密钥的比特大小。K个保密密钥比特首先通过使用适当的线性码由线性变换扩展成K′个密钥比特中,以使得K″个扩展的密钥比特的任何子集是线性无关的,其中K″不是小的(K″<=K)。在纠错码的术语中,这两个线性码的最短距离应该至少是K″+1。
所获得的扩展的密钥然后用作对块大小为K′的组合的网络的输入,所述网络是由满足以下附加条件的固定的随机生成的密钥所参数化的,所述附加条件是,在所述网络中的每个多路复用器块实现平衡的二进制查找表,即二进制查找表包含相等数量的0和1。在所述组合的网络的每两个层之后产生的K′个比特与所述K′个输入比特一起连续地用作循环密钥。由于当和用于块密码本身的组合的网络相比时所述层数由此加倍,因此,可以简化用于密钥扩展的构建块。
图6示出了简化的构建块50的可能实施例,其中参数(m,n,k)=(1,2,1)。这种构建块是通过从图5示出的构建块中删除2个异或块与1个控制输入而获得的。
一个输入比特x3用于控制多路复用器54,以及原样被传送到输出y3。输入比特x3借助于多路复用器电路54从两个密钥比特中选择一个比特,所述多路复用器电路54具有一个控制比特58、两个1比特输入52与一个1比特输出60。
所述1比特输出60用于控制块56,块56实现简单的可逆变换Rk,把输入比特x1和x2变换为输出比特y1与y2。块56包括一个受控交换器,其具有两个输入比特、两个输出比特与用于确定所述输入比特是否被交换的一个控制比特。
可选地,如果允许连续的循环密钥的各部分是彼此比特排列的,则K′个循环密钥比特可以在所述组合的网络的每个层之后产生。在所述迭代算法中,每个循环是可逆的变换,这样,满足这样的理想准则,即,如果到第一循环的输入是均匀随机的,则每个循环密钥是均匀随机的。
密钥扩展算法可以用下列方式通过仅使用线性变换而被简化。K个保密密钥比特首先通过使用适当的线性码由线性变换扩展成2K′个密钥比特,如上所述,以使得不存在线性相关扩展的密钥比特的小的子集。所述扩展的2K ′个比特然后被用作用于开始两个循环的循环密钥,而之后的连续循环密钥对是通过把固定的比特排列应用于扩展的密钥比特而产生的。
所建议的块密码的设计的一个实施例是对存储在存储器中的版权数字数据的加密/解密,例如用于多媒体应用,其中所述存储器诸如是EEPROM或者闪存。