CN101944992A - 用于加密和解密数据块的设备和方法 - Google Patents

用于加密和解密数据块的设备和方法 Download PDF

Info

Publication number
CN101944992A
CN101944992A CN2010102948886A CN201010294888A CN101944992A CN 101944992 A CN101944992 A CN 101944992A CN 2010102948886 A CN2010102948886 A CN 2010102948886A CN 201010294888 A CN201010294888 A CN 201010294888A CN 101944992 A CN101944992 A CN 101944992A
Authority
CN
China
Prior art keywords
value
encryption
key
input
module
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
CN2010102948886A
Other languages
English (en)
Other versions
CN101944992B (zh
Inventor
帕斯卡尔·君诺德
瑟基·瓦登纳
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.)
Nagravision SARL
Original Assignee
Nagravision SA
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 Nagravision SA filed Critical Nagravision SA
Publication of CN101944992A publication Critical patent/CN101944992A/zh
Application granted granted Critical
Publication of CN101944992B publication Critical patent/CN101944992B/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/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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Semiconductor Memories (AREA)
  • Facsimile Transmission Control (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种用于加密和解密数据块的设备和方法。基于主密钥R而将数据X的块加密或者解密为数据Y的方法使用几个串联连接的模块,每个模块使用从主密钥R导出的子密钥RA,该方法包括:输入初始值X0L与X0R并混合这些值以形成X1,通过RA的RAH与X1混合而获得值X2,通过把X2应用到替换层而获得值X3,替换层包括各自包含常数表的替换盒,通过基于值X3使用多排列类型的扩散盒而获得值X4,通过将RA的RAL与X4混合而获得值X5,通过对X5应用替换层获得值X6,通过将RAH与X6混合而获得值X7,将X7与X0L与X0R混合以获得X8L与X8R,X8L与X8R表示输出值X8,该方法使用至少两个模块,对于每个模块,从主密钥R产生新RA,第一模块的X0是X的一部分,X8L与X8H形成输出Y。

Description

用于加密和解密数据块的设备和方法
本专利申请是优先权日为2003年5月23日、国际申请日为2004年5月19日、申请号为200480014205.X、发明名称为“用于加密和解密数据块的设备和方法”的发明专利申请的分案申请,其在此全部引入作为参考。
技术领域
本发明涉及一种用于加密和解密被称为块密码的数据块的设备和方法,输入块与输出块的大小是相同的。
背景技术
所述操作是使用密钥来控制的,所述密钥或者可以具有和所述块一样的大小,或者可以具有不同的大小,通常是较大的大小。
本发明涉及与不对称方法相对的对称加密/解密方法。所述对称方法的特点在于,使用相同的密钥去加密和解密数据,而不对称方法使用第一密钥加密数据,以及使用第二密钥解密数据。
众所周知的方法是DES(56位密钥)、CAST(128位密钥)、Blowfish(448位密钥)、Twofish(256位密钥)和Rijndael(又被称为AES,256位密钥)。根据所考虑的应用,它们具有它们自己的优缺点。
已经公布了几个描述这些方法的专利。专利US 5,214,703描述了称为IDEATM的方法,其是基于对于64位块长度的8.5循环操作加密过程,每个循环使用从主密钥导出的6个子密钥。核心是由使用加法模(modulo)216、乘法模216+1和逐位异-或运算的Lai-Massey方案组成的。
对于加密方法的两个主要要求是相对于任何形式的密码分析的健壮性和计算速度。对于健壮性的一个关键因素是由扩散效应实现的,即当在输入数据中一个位改变时,以不可预测的方式影响所有输出位。
所述计算速度主要是由所需要的数学和逻辑操作的类型决定的。较复杂的操作(除法、乘法)可能延长执行加密过程的时间。
发明内容
本发明的目的是提出一种提供与高运行速度相结合的高级别安全性的新的加密方法。
这个目的是由基于主密钥R而将数据X的块加密或者解密为数据Y的方法来实现的,该方法使用几个串联连接的模块,每个模块使用从主密钥R导出的子密钥RA,并且包括以下步骤:
-输入至少两个初始值X0L与X0R,
-混合所述至少两个值X0L与X0R以形成混合的值X1,
-通过将所述子密钥RA的第一部分RAH与所述值X1混合而获得值X2,
-通过把所述值X2应用到替换层(substitution layer)而获得值X3,所述替换层包括至少一个替换盒(substitution box)(sbox),每个替换盒包含至少一个常数表,对于所述常数表,输入作为指针,所指向的常数作为输出,
-通过基于值X3使用多排列(multi-permutation)类型的扩散盒(diffusion box)而获得值X4,
-通过将所述子密钥RA的第二部分RAL与所述值X4混合而获得值X5,
-通过对所述值X5应用替换层而获得值X6,
-通过将所述子密钥RA的第一部分RAH与所述值X6混合而获得值X7,
-使将所述值X7与初始的至少两个值X0L与X0R混合以获得至少两个值X8L与X8R,X8L与X8R表示所述模块的输出值X8,
所述方法使用至少两个模块,其中对于每个模块,新的子密钥RA是从主密钥R产生的,所述第一模块的初始值X0是所述输入数据X的部分,最后的模块的输出值X8L与X8H形成输出数据Y,并且所述方法还包括以下步骤:在把所述值X8L和X8R应用到下一个模块的输入X0R与X0L之前,对所述值X8L或者X8R中的至少一个应用正形性函数(orthomorphism function)。
所述方法的两个主要部分是替换层与多排列矩阵。
所述替换层的目的是把输入值变换为没有简单代数关系的输出值。这就是为什么最快的方式是使用包含常数的查找表,其可以实现期望的混淆结果。
由于在这个实施例中输入数据具有32位的长度,因此,常数的数量将是232个值,每个值是32位长。
根据优选实施例,所述输入数据被分成8位长的组,由此将常数的数量减少到256个字节。
然后32位或者64位的输入数据被分成8位的字节,并且被应用于替换盒以获得8位的输出。所述输入数据被用作地址指针,以及所指向的常数是所述输出。
根据所述实现方法,所述常数表对于所有输入数据(32位或者64位)的组都是一样。在另一个实施例中,所述常数表对于所述输入数据的每个组是不同的。
在这个表中存储的常数是由等于表宽度的多个比特所编码的、全部不同的固定排列的数字。
所述方法的第二个主要部分是多排列矩阵。所述多排列矩阵是方阵,所述方阵具有每个可能的方形子矩阵有不同于零的行列式的属性;所述矩阵的元素是有限域的元素。所述混合操作包括用输入元素的矢量乘所述矩阵,产生被定义为所述输出的矢量。
附图说明
图1示出了在64位形式中的主模块的框图;
图2示出了包括具有两个模块的例子的主要过程;
图3示出了在64位形式中的主模块的内部部分;
图4示出了在128位形式中的主模块的框图;
图5示出了正形性函数的框图;
图6示出了用于产生所述替换盒的子***;
图7示出了在128位形式中的主模块的内部部分;
图8示出了在128位形式中包括具有两个模块的例子的主要过程;和
图9示出了所述替换盒的另一种形式。
具体实施方式
图1示出了所述加密(或者解密)处理的构架,其表示模块MOD。以每个为32位的两个部分X0L和X0R所表示的64位的输入数据X0首先在混合单元MX内被混合以获得X1值。所述混合单元是为了提供两倍于32位数据的32位映像(image)。这可以用不同的方法实现,例如使用异或(XOR)函数、通过模的相加、或者通过使用任何组法则。
下一步骤通过块f32说明,所述块f32具有32位输入X1和32位输出X7、以及使用子密钥RA。这个块的详细描述是参照图3给出的(见下文)。
所述块f32的输出X7被应用于和两个输入X0L和X0H相连接的两个混合块MX。
所产生的数据X8L和X8R表示所述模块MOD的两个64位输出X8。
图2示出了使用至少两个模块MOD的整个处理。所述输入数据X首先被应用于分离模块SP,所述分离模块把所述64位输入X转换为两个输出值X0L1和X0R1,每个是32位长。
所述分离模块SP的功能可以用不同的方式实现,例如选择低位的比特用于X0L1和高位的比特用于X0R1,或者每个奇比特用于X0L1和偶比特用于X0R1。可以使用对所述输入数据X进行划分的其它方法,只要X的所有位被包括在X0L1和X0R1内。
所述输出X0L1和X0R1然后用作第一模块MOD1中的输入。所述第一模块在使用第一个子密钥RA1的同时处理所述数据。对于X0L1和X0R1的处理与根据图1描述的相同。所述第一模块MOD1的输出是两个输出X8L1和X8R1。正形性函数被应用于所述输出中的一个,例如图2上示出的X8L1。由所述正形性函数得到的所述输出称为X0L2。由通过第一个模块MOD1的处理得到的另一个值X8R1以及由所述正形性函数得到的输出X0L2被用作第二处理模块MOD2中的输入。所述第二模块MOD2将基于第二个子密钥RA2处理其输入数据。所述第二模块的输出在图2上被称为X8L2和X8R2。组合这些输出以形成在组合器(assembler)模块AS内的加密数据Y。所述模块AS具有与所述分离模块SP相同的功能,但是逆向地工作。应当注意,重构输出Y的方式可以不同于所述分离模块SP,但是目的是相同的。X8L2和X8R2的所有位将出现在所述输出Y中。
图3详细地示出了图1的块f32的功能。在所述块中,32位长度数据X1是输入。所述数据通过分离块SPMU被分成8位长度的块(X1a、X1b、X1c、X1d),还在图3中被表示为X1′。所述块具有和关于图2的块SP所描述的功能相同的功能。这些8位块的每一个与所述子密钥RA的第一部分RAH混合,以获得值X2a、X2b、X2c、X2d(形成所述值X2)。这个混合操作和关于图1的块MX所描述的混合操作是相同的。
所述两个子密钥RAH和RAL的产生是通过所述分离模块SP进行的。所述模块具有与在图1中描述的模块相同的功能。
这些值X2a至X2d的每一个被应用到替换层,替换层包括至少一个替换盒(sbox),每个替换盒包含常数表,对于所述常数表,输入作为指针,所指向的常数作为输出。所述输出数据在图3上称为X3a、X3b、X3c、X3d(形成所述值X3)。
产生所述常数表的一种方法是使用伪随机发生器。其将删除所有重复的值,以使得在所述表中的每个常数是唯一的。
所述数据被输入(4,4)多排列类型的扩散盒Mu4中。所述扩散盒的输出数据分别称为X4a、X4b、X4c、X4d(形成所述值X4)。所述扩散盒包括用输入向量(X4a、X4b、X4c、X4d)乘方阵4x4Mu4,方阵4x4Mu4的元素属于具有256个元素的有限域;这些元素被表示为Mu(i,j),其中i是指行标、而j是指列标。用矢量(X4a、X4b、X4c、X4d)乘所述矩阵Mu4的结果是矢量(Y4a、Y4b、Y4c、Y4d),其中这些值如下面这样获得:
Y4a=Mu4(1,1)*×4a+Mu4(1,2)*×4b+Mu4(1,3)*×4c+Mu4(1,4)*×4d
Y4b=Mu4(2,1)*×4a+Mu4(2,2)*×4b+Mu4(2,3)*×4c+Mu4(2,4)*×4d
Y4c=Mu4(3,1)*×4a+Mu4(3,2)*×4b+Mu4(3,3)*×4c+Mu4(3,4)*×4d
Y4d=Mu4(4,1)*×4a+Mu4(4,2)*×4b+Mu4(4,3)*×4c+Mu4(4,4)*×4d
这里“+”表示在有限域中加法,“*”表示其乘法。选择Mu4的元素,以使得估计上述四个表达式所需要的计算的量是最小的。与常数“1”(此后被表示为“单位元(identity)”)相乘的数量因此被选择为尽可能地大。
所述数据然后与所述子密钥RA的第二部分RAL混合,以获得值X5a、X5b、X5c、X5d(形成所述值X5)。
这些值X5a至X5d的每个然后被应用到替换块(sbox),以获得值X6a、X6b、X6c、X6d(形成所述值X6)。这些值与所述子密钥RA的第一部分RAH混合,以获得新的值X7a、X7b、X7c、X7d(形成所述值X7)。
然后,这些值X7a、X7b、X7c、X7d被组合以在所述组合器模块AS内形成输出数据X7,如关于图2所描述的那样。所述数据对应于在图1中的块f32的输出数据X7。
在加密处理期间,所述主密钥R分为几个子密钥,每个模块MOD一个子密钥。在图3的例子中,第一子密钥RA1结合所述模块MOD1被使用,以及第二子密钥RA2结合所述模块MOD2被使用。
为了基于数据Y和密钥R获得数据X,应用与参照图3所描述的处理相同的处理,仅有的区别是以相反次序产生所述子密钥。所述子密钥RA2于是应用于第一模块MOD1,以及所述子密钥RA1应用于第二模块MOD2。
根据本发明的一般原理,串联连接的模块MOD的数量不限于两个模块。为了获得好的健壮性,经验表明,为了获得可以适用于加密处理的结果,9个循环是最佳的。为了获得更好的健壮性,所述数量可以扩大至12或者更多。
图4描述了被设计用于处理128位长度数据的模块MOD64的实施例。所述输入X0LL和X0LR在混合单元MX内被混合在一起以形成输出值X1L,并且以同样的方式,所述值X0RL和X0RR被混合在一起以形成所述值X1R。
下一步以层f64说明,所述层f64具有两个32位输入X1L和X1R,以及具有两个32位输出X7L和X7R,以及使用子密钥RA。这个块的详细描述是参照图7给出的(见下文)。
这些输出的每一个在相同的混合单元MX内与所述模块MOD64的两个输入数据混合。在本例子中,所述输出值X7L分别与输入X0LL和X0LR混合,以及所述输出值X7R分别与输入X0RL和X0RR混合。其它混合组合也是可能的,例如以交叉配置将所述输出值X7L与X0LL和X0RR混合。
图5是所述正形性函数的实施例的示例。所述输入数据标记为ZI,以及所述输出数据标记为ZO。所述数据长度对于这个功能不是个问题。所述输入数据ZI首先分为与分离模块SP相同大小的两个值ZL和ZR。然后所述两个值通过所谓的MX混合单元被混合,以及所述单元的输出被应用于所述组合器单元AS。另一个分离值ZR不用改变直接被应用于组合器模块AS。所述模块包括两个输入,以及组合这些数据以形成输出值ZO。这个模块与所述分离模块SP相反地工作。这个实施例的特殊性是,所述组合器模块的输入相对于所述分离模块SP的输出是交叉的。所述分离模块SP的右边输出ZR被应用到所述组合器模块AS的左边输入,以及在与所述分离模块SP的另一个输出混合之后,所述分离模块SP的左边输出ZL被应用到所述组合器模块AS的右边输入。
至于所考虑的替换盒,存在有执行所述功能的不同可能。我们先前已经描述了唯一基于常数表的方法。减少表大小的第一步是分离所述输入,以及把所述部分应用到更小的表中。
图3的例子示出了通过8位数据长度而工作的替换盒,由此嵌入了256个常数的表。
在某些情况下,特别是其中存储器大小成问题的情况下,要寻求其它的选择。这种选择参考图6和9被描述。
图3示出了所述替换盒的子***Cbox,所述子***包括被分为两个输入CL和CR的一个输入C、以及两个输出CL′和CR′。
所述子***的中心是所述模块TA,其包括2(n/2)个元素的常数表,每个元素具有n/2个位,其中n是输入值C的长度。
对于具有8位长度的输入,常数表包括16(24)个元素,每个元素是4位长度。这些元素是在考虑每个元素有唯一值的情况下随机产生的。
图9描述了如何使用所述模块Cbox来建立替换盒。所述输入值CI首先分成两个部分CL1和CR1,以及被应用于第一模块Cboxl,如参照图3描述的那样。所述模块Cboxl的输出被发送到下一模块Cbox2。所述第一模块的其中一个输出,在此情况下是CL1′,在应用到第二模块CVBox2之前,被给到正形性函数OR。
所述替换盒的运行通常使用至少两个子***Cbox,每个子***具有不同的常数表TA。在所说明的例子中,所述替换盒是使用三个子***Cbox形成的,所述最后子***的输出不具有根据本实施例的正形性函数OR。
图7是在图3中描述的实施例的另一种形式,被设计用于64位长度的数据。设计用于32位的所述结构大部分被复制来处理64位的数据。所述输入数据X1被分成具有8位长度的元素(X1a至X1h)的矢量,以及以和关于图3描述的相同方式而被处理。主要区别在于扩散盒Mu8,所述扩散盒是具有256个元素的有限域的8×8个元素的方阵。所述矩阵的元素被表示为Mu8(i,j),其中i表示行标,j表示列标。对于输入向量(X3a,...,X3h),通过矩阵Mu8的相乘以下列方式给出了输出矢量(Y3a,...,Y3h)(“+”是加法,“*”是在有限域中的乘法):
Y3a=Mu8(1,1)*×3a  +Mu8(1,2)*×3b  +Mu8(1,3)*×3c+Mu8(1,4)*×3d+Mu8(1,5)*×3e+Mu8(1,6)*×3f+Mu8(1,7)*×3g+Mu8(1,8)*×3h;
Y3b=Mu8(2,1)*×3a+Mu8(2,2)*×3b+Mu8(2,3)*×3c+Mu8(2,4)*×3d+Mu8(2,5)*×3e+Mu8(2,6)*×3f+Mu8(2,7)*×3g+Mu8(2,8)*×3h;
Y3c=Mu8(3,1)*×3a+Mu8(3,2)*×3b+Mu8(3,3)*×3c+Mu8(3,4)*×3d+Mu8(3,5)*×3e+Mu8(3,6)*×3f+Mu8(3,7)*×3g+Mu8(3,8)*×3h;
Y3d=Mu8(4,1)*×3a+Mu8(4,2)*×3b+Mu8(4,3)*×3c+Mu8(4,4)*×3d+Mu8(4,5)*×3e+Mu8(4,6)*×3f+Mu8(4,7)*×3g+Mu8(4,8)*×3h;
Y3e=Mu8(5,1)*×3a+Mu8(5,2)*×3b+Mu8(5,3)*×3c+Mu8(5,4)*×3d+Mu8(5,5)*×3e+Mu8(5,6)*×3f+Mu8(5,7)*×3g+Mu8(5,8)*×3h;
Y3f=Mu8(6,1)*×3a+Mu8(6,2)*×3b+Mu8(6,3)*×3c+Mu8(6,4)*×3d+Mu8(6,5)*×3e+Mu8(6,6)*×3f+Mu8(6,7)*×3g+Mu8(6,8)*×3h;
Y3g=Mu8(7,1)*×3a+Mu8(7,2)*×3b+Mu8(7,3)*×3c+Mu8(7,4)*×3d+Mu8(7,5)*×3e+Mu8(7,6)*×3f+Mu8(7,7)*×3g+Mu8(7,8)*×3h;
Y3h=Mu8(8,1)*×3a+Mu8(8,2)*×3b+Mu8(8,3)*×3c+Mu8(8,4)*×3d+Mu8(8,5)*×3e+Mu8(8,6)*×3f+Mu8(8,7)*×3g+Mu8(8,8)*×3h;
图8描述了使用所述模块MOD64的两个循环的运行的全部处理。所述分离模块SP把所述128位长度输入数据X划分为四个部分,即X0LL1、X0LR1、X0RL1和X0RR1(形成所述值X0)。然后,在被用作下一个模块MOD64-2的输入之前,所述模块MOD64-1的结果中的两个部分被应用于正形性函数OR。
关于所述模块MOD64的输出的正形性函数OR的位置不是确定的。其可以根据所述方法的实现来选择两个左输出或者两个右输出。
所述输出Y是直接从最后的模块MOD64获得的,在这些输出的一个中没有正形性函数OR。
在使用多于两个的模块MOD64的情况下,所述正形性函数OR被设置在每个模块MOD64之间。即使在优选实施例中,无论模块的数量,所述正形性函数OR的位置都是相同的,然而,在另一个实施例中,所述正形性函数OR的位置可以被改变成连接到所述模块MOD64的不同的输出。

Claims (11)

1.一种基于主密钥R而将数据X的块加密或者解密为数据Y的方法,该方法用于加密和解密被称为块密码的数据块,其中输入块与输出块的大小是相同的,所述方法使用至少两个串联连接的主模块(MOD),每个主模块(MOD)使用从所述主密钥(R)得到的子密钥(RA),包括以下步骤:
-输入至少两个初始值X0L与X0R,
-混合所述至少两个值X0L与X0R以形成混合的值X1,
-通过将所述子密钥RA的第一部分RAH与所述值X1混合而获得值X2,
-通过把所述值X2应用到替换层而获得值X3,所述替换层包括至少一个替换盒(sbox),每个替换盒包含常数表,对于所述表,输入作为指针,以及所指向的常数作为输出,通过使用伪随机发生器来产生所述常数表,
-通过基于值X3使用多排列类型的扩散盒而获得值X4,
-通过将所述子密钥RA的第二部分RAL与所述值X4混合而获得值X5,
-通过对所述值X5应用替换块而获得值X6,
-通过将所述子密钥RA的第一部分RAH与所述值X6混合而获得值X7,
-将所述值X7与所述初始的至少两个值X0L与X0R混合以获得至少两个值X8L与X8R,X8L与X8R表示所述模块的输出值X8,
其中对于每个主模块(MOD),新的子密钥(RA)是从主密钥(R)产生的,第一主模块的初始值X0L和X0R是所述输入数据X的子集,最后的主模块的输出值X8L与X8H形成所述输出数据Y,以及所述方法还包括以下步骤:在把所述值X8L和X8R应用到下一个主模块的输入X0R与X0L之前,对所述值X8L或者X8R中的至少一个应用正形性函数。
2.根据权利要求1的加密或者解密方法,其中所述输入数据是64位长度的,以及所述输入数据X被分成两个32位长度的初始值X0L与X0H,并且所述两个输出值X8L与X8H形成所述输出数据Y。
3.根据权利要求1的加密或者解密方法,其中所述输入数据是128位长度的,以及所述输入数据X被分成四个32位长度的初始值X0LL、X0LR、X0RL与X0RR,以及所述四个输出值X8LL、X8LR、X8RL与X8RR形成128位的输出数据Y,所述值X1的第一部分X1L是通过将所述值X0LL与X0LR混合而获得的,以及所述值X1的第二部分X1R是通过将所述值X0RL与X0RR混合而获得的,所述值X7的第一部分X7L与所述四个初始值X0LL、X0LR、X0RL和X0RR中的两个进行混合,以及所述值X7的第二部分X7R与所述初始值X0LL、X0LR、X0RL和X0RR中的另两个部分进行混合。
4.根据权利要求1的加密或者解密方法,其中所述替换层包括几个替换盒(sbox),每个盒具有8位输入和8位输出,所述替换层的输入被分成8位长度的部分。
5.根据权利要求4的加密或者解密方法,其中所述替换盒(sbox)的常数表(TA)包含对于给定输入的唯一输出。
6.根据权利要求4的加密或者解密方法,其中用于每个替换盒(sbox)的常数表是相同的。
7.根据权利要求4的加密或者解密方法,其中用于每个替换盒(sbox)的常数表是不同的。
8.根据权利要求4的加密或者解密方法,其中所述替换盒(sbox)的常数表是在每个主模块运行中被改变的。
9.根据权利要求1的加密或者解密方法,其中所述数据长度是64位,以及所述扩散盒是矩阵函数Y3=M*X4,所述变元M定义4*4的加法、与常数的乘法、或者单位元,所述变元M中的至少一行和一列包括三个单位元。
10.根据权利要求9的加密或者解密方法,其中所述变元M的剩余的行和剩余的列包括两个单位元。
11.根据权利要求1的加密或者解密方法,其中所述数据长度是128位,以及所述扩散盒是矩阵函数Y3=N*X3,所述变元N定义8*8的加法、与常数的乘法、或者单位元,所述变元N中的至少一行和一列包括七个单位元。
CN2010102948886A 2003-05-23 2004-05-19 用于加密和解密数据块的设备和方法 Expired - Lifetime CN101944992B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03011696.6 2003-05-23
EP03011696A EP1480371A1 (en) 2003-05-23 2003-05-23 Device and method for encrypting and decrypting a block of data

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNA200480014205XA Division CN1795638A (zh) 2003-05-23 2004-05-19 用于加密和解密数据块的设备和方法

Publications (2)

Publication Number Publication Date
CN101944992A true CN101944992A (zh) 2011-01-12
CN101944992B CN101944992B (zh) 2012-03-21

Family

ID=33041000

Family Applications (2)

Application Number Title Priority Date Filing Date
CNA200480014205XA Pending CN1795638A (zh) 2003-05-23 2004-05-19 用于加密和解密数据块的设备和方法
CN2010102948886A Expired - Lifetime CN101944992B (zh) 2003-05-23 2004-05-19 用于加密和解密数据块的设备和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNA200480014205XA Pending CN1795638A (zh) 2003-05-23 2004-05-19 用于加密和解密数据块的设备和方法

Country Status (27)

Country Link
US (1) US7499542B2 (zh)
EP (2) EP1480371A1 (zh)
JP (1) JP4663635B2 (zh)
KR (1) KR101050670B1 (zh)
CN (2) CN1795638A (zh)
AP (1) AP1969A (zh)
AT (1) ATE427598T1 (zh)
AU (1) AU2004240359B2 (zh)
BR (1) BRPI0411139A (zh)
CA (1) CA2525591C (zh)
CY (1) CY1109170T1 (zh)
DE (1) DE602004020333D1 (zh)
DK (1) DK1627489T3 (zh)
EA (1) EA008183B1 (zh)
ES (1) ES2323702T3 (zh)
HK (1) HK1082335A1 (zh)
HR (1) HRP20090287T1 (zh)
IL (1) IL171933A (zh)
MA (1) MA27811A1 (zh)
MX (1) MXPA05012481A (zh)
NO (1) NO335894B1 (zh)
NZ (1) NZ543947A (zh)
PL (1) PL1627489T3 (zh)
PT (1) PT1627489E (zh)
SI (1) SI1627489T1 (zh)
WO (1) WO2004105305A1 (zh)
ZA (1) ZA200509275B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104022872A (zh) * 2014-04-09 2014-09-03 广州赛意信息科技有限公司 数据加密方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7152165B1 (en) * 1999-07-16 2006-12-19 Intertrust Technologies Corp. Trusted storage systems and methods
AU6104800A (en) 1999-07-16 2001-02-05 Intertrust Technologies Corp. Trusted storage systems and methods
KR100639764B1 (ko) 2005-04-25 2006-10-30 이병관 블록암호화방법
US20090144561A1 (en) * 2005-07-11 2009-06-04 Davidson Jack W Method and System for Software Protection Using Binary Encoding
US7602906B2 (en) * 2005-08-25 2009-10-13 Microsoft Corporation Cipher for disk encryption
DE602006008600D1 (de) * 2006-06-29 2009-10-01 Incard Sa Verfahren zur Diversifizierung eines Schlüssels auf einer Chipkarte
JP2008058830A (ja) * 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5485694B2 (ja) * 2006-11-17 2014-05-07 イルデト・コーポレート・ビー・ヴイ ホワイトボックス実施のための暗号化方法
KR101580879B1 (ko) * 2007-05-22 2015-12-30 이르데토 비.브이. 암호 키 데이터를 갱신하는 시스템 및 방법, 서버 시스템, 암호 키 갱신들을 제공하는 방법 및 컴퓨터 판독가능 기록매체
US20080304664A1 (en) * 2007-06-07 2008-12-11 Shanmugathasan Suthaharan System and a method for securing information
CN101321058B (zh) * 2007-06-07 2010-12-15 管海明 一种用于编码和译码数字消息的方法和***
US8369515B2 (en) * 2010-03-18 2013-02-05 Chiou-Haun Lee Cryptographic method of multilayer diffusion in multidimension
CN103546282B (zh) * 2012-07-12 2016-10-05 黄宜豊 具有三维运算、反馈控制与动态替换盒设计的加密方法
JP5772934B2 (ja) * 2013-12-02 2015-09-02 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
EP3674952B1 (en) * 2015-03-26 2022-06-15 Nagravision S.A. Method and system for searching for at least a specific datum in a user unit
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
RU2632119C9 (ru) * 2016-06-02 2017-11-22 Андрей Валерьевич Менячихин Устройство для построения ортоморфизмов, использующее парные разности

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4850019A (en) * 1985-11-08 1989-07-18 Nippon Telegraph And Telephone Corporation Data randomization equipment
JP3225440B2 (ja) * 1990-05-18 2001-11-05 アスコム テック エージー デジタル信号ブロックの変換装置およびその使用方法
US5623549A (en) * 1995-01-30 1997-04-22 Ritter; Terry F. Cipher mechanisms with fencing and balanced block mixing
US5727062A (en) * 1995-07-06 1998-03-10 Ritter; Terry F. Variable size block ciphers
US5675653A (en) * 1995-11-06 1997-10-07 Nelson, Jr.; Douglas Valmore Method and apparatus for digital encryption
CA2164768C (en) * 1995-12-08 2001-01-23 Carlisle Michael Adams Constructing symmetric ciphers using the cast design procedure
US6189095B1 (en) * 1998-06-05 2001-02-13 International Business Machines Corporation Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
US6269163B1 (en) * 1998-06-15 2001-07-31 Rsa Security Inc. Enhanced block ciphers with data-dependent rotations
JP3679936B2 (ja) * 1998-11-27 2005-08-03 東芝ソリューション株式会社 暗復号装置及び記憶媒体
US6694025B1 (en) * 1999-06-02 2004-02-17 Koninklijke Philips Electronics N.V. Method and apparatus for secure distribution of public/private key pairs
JP2003509881A (ja) * 1999-09-03 2003-03-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 記録された電子出版資料からのマスター鍵の復元方法
JP3499810B2 (ja) * 2000-03-06 2004-02-23 株式会社東芝 暗号化装置、暗号化方法及び暗号化装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体並びに復号装置、復号方法及び復号装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体
KR100855890B1 (ko) * 2000-08-03 2008-09-03 코닌클리케 필립스 일렉트로닉스 엔.브이. 대칭-키 암호에 대한 선형 변환

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104022872A (zh) * 2014-04-09 2014-09-03 广州赛意信息科技有限公司 数据加密方法
CN104022872B (zh) * 2014-04-09 2015-03-25 广州赛意信息科技有限公司 数据加密方法

Also Published As

Publication number Publication date
DE602004020333D1 (de) 2009-05-14
JP2007527028A (ja) 2007-09-20
PT1627489E (pt) 2009-06-17
AU2004240359B2 (en) 2009-08-27
AU2004240359A1 (en) 2004-12-02
ZA200509275B (en) 2007-03-28
CA2525591A1 (en) 2004-12-02
NO20055404L (no) 2005-11-18
CA2525591C (en) 2012-10-09
CN1795638A (zh) 2006-06-28
NO335894B1 (no) 2015-03-16
IL171933A0 (en) 2006-04-10
ES2323702T3 (es) 2009-07-23
BRPI0411139A (pt) 2006-07-11
WO2004105305A9 (en) 2006-01-05
MA27811A1 (fr) 2006-03-01
KR101050670B1 (ko) 2011-07-19
PL1627489T3 (pl) 2009-08-31
CN101944992B (zh) 2012-03-21
HK1082335A1 (en) 2006-06-02
MXPA05012481A (es) 2006-01-30
NZ543947A (en) 2007-05-31
AP2005003445A0 (en) 2005-12-31
EA008183B1 (ru) 2007-04-27
EP1627489A1 (en) 2006-02-22
EA200501623A1 (ru) 2006-06-30
HRP20090287T1 (en) 2009-07-31
ATE427598T1 (de) 2009-04-15
IL171933A (en) 2010-11-30
US20040247117A1 (en) 2004-12-09
DK1627489T3 (da) 2009-07-13
WO2004105305A1 (en) 2004-12-02
US7499542B2 (en) 2009-03-03
AP1969A (en) 2009-03-11
EP1627489B1 (en) 2009-04-01
EP1480371A1 (en) 2004-11-24
CY1109170T1 (el) 2014-07-02
SI1627489T1 (sl) 2009-08-31
JP4663635B2 (ja) 2011-04-06
KR20060014417A (ko) 2006-02-15

Similar Documents

Publication Publication Date Title
CN101944992B (zh) 用于加密和解密数据块的设备和方法
TWI394418B (zh) A cryptographic processing device, a cryptographic processing method, and a non-temporary computer readable recording medium
CN101779412B (zh) 用于数据加密的伪随机生成的密码学方法和设备、及消息的密码学散列
CN103078734B (zh) 解密处理装置、方法和信息处理装置
US8577032B2 (en) Common key block encryption device, common key block encryption method, and program
JP5023624B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
CN103444124A (zh) 加密处理装置、加密处理方法和程序
US20070064933A1 (en) Method of symmetric key data encryption
CN107332657A (zh) 一种基于区块链数字签名的加密方法及***
CN105916141A (zh) 一种自同步的祖冲之加解密算法的实现***及其方法
JP2014119512A (ja) 暗号化処理回路及び復号処理回路とその方法並びにそのプログラム
CN102598574B (zh) 块加密装置、块加密方法以及程序
Chawla A 3D RGB Axis-based Color-oriented Cryptography
JP5223245B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
Nakahara Jr Key-Shedule Analysis of AES Candidates
JP2006325269A (ja) 暗号方式
Abusukhon INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET)
JP2002116692A (ja) 暗号化方法,暗号通信方法,暗号文作成装置,暗号通信システム及び記録媒体

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

Granted publication date: 20120321

CX01 Expiry of patent term