CN101952870A - 数据转换器、数据转换方法以及计算机程序 - Google Patents

数据转换器、数据转换方法以及计算机程序 Download PDF

Info

Publication number
CN101952870A
CN101952870A CN2009801057930A CN200980105793A CN101952870A CN 101952870 A CN101952870 A CN 101952870A CN 2009801057930 A CN2009801057930 A CN 2009801057930A CN 200980105793 A CN200980105793 A CN 200980105793A CN 101952870 A CN101952870 A CN 101952870A
Authority
CN
China
Prior art keywords
data
data segment
processing
computing
xor
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
CN2009801057930A
Other languages
English (en)
Other versions
CN101952870B (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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of CN101952870A publication Critical patent/CN101952870A/zh
Application granted granted Critical
Publication of CN101952870B publication Critical patent/CN101952870B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

实现一种获得高效数据扩散的数据转换算法。例如,在其中对于将包含被排列的1字节的数据块的长方形数据矩阵划分为两部分而得到的两个数据段实施多种处理的配置中,通过实施对于所述数据段之一的线性转换处理、所述两个数据段之间的异或运算、对于所述数据段之一的移位处理、以及所述两个数据段之间的交换处理,实现了具有低运算开销的高效数据扰乱。此外,通过包括对于所述数据段的非线性转换或密钥适用运算,实现了具有高安全等级的加密处理。

Description

数据转换器、数据转换方法以及计算机程序
技术领域
本发明涉及数据转换器、数据转换方法以及计算机程序。更具体地,本发明涉及实现了高效数据扩散或加密处理的数据转换器、数据转换方法以及计算机程序。
背景技术
在通过逐块地对输入数据实施数据转换处理来加密输入数据的块密码、哈希函数等中,希望具有对于输入数据的高数据扰乱能力。例如,执行如下的处理,其中:输入数据被划分为固定大小(比如字节)的数据块,并在字节数据块相互影响的同时重复实施比如线性转换处理和非线性转换处理等多种运算以扰乱数据。
例如,作为美国加密标准而为人所知的AES(高级加密标准,Advanced Encryption Standard)算法是用于通过如下方式对数据进行扰乱的算法:将输入数据划分为字节数据块,将数据块排列成正方形或长方形矩阵,以及重复比如逐行处理或逐列处理(更具体地,非线性转换处理和线性转换处理)等多种处理。
将参照图1描述一具体示例。在要经受转换处理的数据是8×16=128比特的数据的情况下,如图1(a)中所示,由于1字节数据块包含8比特,因此正方形矩阵由字节数据块a1、a2、a3、......、a16来配置,以及数据转换是通过重复对数据块的多种运算处理来执行的,所述运算处理比如:
逐行的运算,例如,对于比如(a1,a2,a3,a4)的每行的运算处理,或者
逐列的运算,例如,对于比如(a1,a5,a9,a13)的每列的运算处理,
更具体地,比如非线性转换处理、线性转换处理、移位处理和使用密钥的异或运算等多种处理。
如图1(a)中所示,已知当对字节数据块排列成的正方形矩阵实施逐行或逐列的处理时,高效扰乱是可达到的。然而,仅在要经受转换处理的输入数据是特定比特数量的数据(比如,图1(a)中示出的8×16=128比特的数据)的情况下,才允许配置包含1字节的数据块的正方形矩阵。更具体地,仅在如下情况下配置正方形矩阵:
比特数量=8×(n)2比特的情况(其中n是自然数),
以字节而言,
字节数量=(n)2字节的情况(其中n是自然数)。
128比特等于比特数=8×(4)2比特,以及如图1(a)中所示,允许128比特配置包含4×4=16个1字节数据块的正方形矩阵。
然而,在要经受转换的数据例如是256比特的情况下,由于有256=8×32成立,即256无法表示为256=8×(n)2比特,因此不能配置包含字节数据块的正方形矩阵。
在该情况下,如图1(b)中所示,将32个包含8比特的字节数据块a1、a2、a3、......、a32排列成长宽比为2∶1的长方形矩阵,以及通过对该长方形矩阵重复逐行处理或逐列处理来实施扰乱。然而,存在如下问题:即使无所谓以与正方形矩阵的情况下相同的步骤来对图1(b)中示出的长方形矩阵执行扰乱时用于运算的时间和花费均增加,但是扰乱能力却并未得到提高。
以下将参照图2及其后面的图描述在包含字节数据块的正方形矩阵(正方形状态)的情况下和在包含字节数据块的长方形矩阵(长方形状态)的情况下的扰乱处理的示例。
(A)对于正方形矩阵(正方形状态)的处理的示例
以下将参照图2及其后面的图描述对于128比特的数据的数据转换处理中的扰乱处理。128比特的数据被划分为1字节(8比特)的数据块。在此,16个1字节的数据块分别由a1至a16表示。
如通过图2中的正方形数据矩阵(正方形状态)11所示,16个1字节的数据块[a1至a16]被存储成4×4的矩阵。下文中,存储成正方形矩阵的数据被称为正方形状态。
在AES块密码算法中,定义了多种对于正方形状态的运算,以及通过重复施加所定义的运算实现了加密。在AES中定义的运算包括图2中示出的以下四种。
(1)非线性转换处理(SUB)
通过逐字节地使每个1字节的数据块经受非线性转换S(x)来更新值的运算,
其中,如图2(1)中所示,在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
bi=S(ai)
i=1,2,…,16
例如,在AES密码中,该运算对应于使用S-box的非线性转换。
(2)移位处理(SHIFT)
使每行都经受轮换移位运算的处理。一行与另一行的移位量是不同的,并且在AES的情况下,如图2(2)中所示,第一行中的1字节的数据块不被轮换移位,而第二行中的1字节的数据块、第三行中的1字节的数据块以及第四行中的1字节的数据块分别被向右轮换移位了1个1字节的数据块、2个1字节的数据块以及3个1字节的数据块。
(3)线性转换处理(MAT)
通过对于4×4矩阵[M]的运算来更新值的运算(假定将每列中的4个1字节的数据块看作一个向量)。
在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
t(bi,bi+4,bi+8,bi+12)=Mt(ai,ai+4,ai+8,ai+12)
i=1,2,3,4
此外,t()表示通过将矩阵中的行列互换形成的转置矩阵。即,上述表达式含义如下。
[数学表达式1]
b i b i + 4 b i + 8 b i + 12 = M a i a i + 4 a i + 8 a i + 12
(4)密钥适用运算处理(KADD)
执行每个1字节的数据块与从密钥编排部输出的回合密钥[ki]之间的异或运算的运算。
在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
bi=ai(XOR)ki
i=1,2,…,16
此外,在上述表达式中,(XOR)表示异或运算。
以预定顺序实施的上述(1)至(4)的运算的组合配置一个回合运算。对于输入数据重复实施该回合运算以产生输出数据,例如加密数据,以及随后输出该数据。如图3中所示,回合运算例如由按如下序列实施的数据转换处理的组合来配置:(1)非线性转换处理(SUB)→(2)移位处理(SHIFT)→(3)线性转换处理(MAT)→(4)密钥适用运算处理(KADD);并多次重复实施该回合运算以将输入数据转换为输出数据,即加密数据。
图4是用于描述在对于正方形状态实施回合运算的第一至第三回合(R1至R3)的情况下的数据扰乱示例的图示,所述回合运算是由按如下顺序实施的数据转换处理来配置的:(1)非线性转换处理(SUB)→(2)移位处理(SHIFT)→(3)线性转换处理(MAT)→(4)密钥适用运算处理(KADD)。
图4示出初始状态下的正方形状态21的左上角处的1字节的数据块31通过每个回合运算中的如下处理影响了正方形状态中所包括的哪些1字节的数据块:(1)非线性转换处理(SUB),(2)移位处理(SHIFT),(3)线性转换处理(MAT)和(4)密钥适用运算处理(KADD)。即,图4图示了正方形状态中的1字节的数据块31的构成比特的影响如何扩散到其它1字节的数据块。
讨论输入数据的初始状态下的正方形状态21的左上角处的1字节的数据块31(用黑色标记)。直到第一回合(R1)中的非线性转换处理(SUB)和移位处理(SHIFT)为止,1字节的数据块31不影响正方形状态中其它1字节的数据块的运算结果。
然而,当完成第一回合中的线性转换处理(MAT)时,1字节的数据块31影响了正方形状态的最左侧列中的4个1字节的数据块。于是称该状态是左上角处的1字节的数据块31的构成比特的影响扩散到正方形状态的最左侧列中所包括的4个1字节的数据块的状态。
此后,直到密钥适用运算(KADD)和第二回合中的非线性转换处理(SUB)为止,该影响并不进一步扩散,但是通过接下来的移位处理(SHIFT),纵向对齐的4个1字节的数据块被横向扩散,从而在每列中都包括1个被1字节的数据块31影响的1字节的数据块。
然后,通过紧接在该移位处理后的线性转换处理(MAT),该影响扩散到了配置正方形状态的所有的16个1字节的数据块。
在该情况下,通过两个回合的回合运算的处理,1个1字节的数据块影响了配置正方形状态的所有的1字节的数据块。此外,在图4中,虽然作为示例描述了左上角处的1字节的数据块31的影响,但是正方形状态的任意位置处的任何1字节的数据块都以同样方式影响其它1字节的数据块,并且1字节的数据块的影响用两个回合波及所有其它1字节的数据块,即,1字节的数据块的影响用两个回合扩散到了所有其它1字节的数据块。高速广泛的扩散处理显示了高的数据扰乱能力,并被用作加密数据的隐蔽性或效率的评价要素。
在图4中示出的示例中,1个1字节的数据块要用两个回合来影响配置正方形状态的所有的1字节的数据块。估计影响整个正方形状态的运算开销。因为要用两个回合来影响整个正方形状态,所以需要两个非线性转换处理(SUB)、两个移位处理(SHIFT)、两个线性转换处理(MAT)以及两个密钥适用运算处理(KADD)。
作为指标,运算所需的硬件门的总数被认为表示实质复杂度。在该情况下,移位处理(SHIFT)运算只通过电路的连接就可实现,所以不需要通过门,因此移位处理(SHIFT)的运算开销被认为是0。
因此,在图4中示出的正方形状态中,可以估计直到1个1字节的数据块影响配置正方形状态的所有的1字节的数据块为止的两个回合的回合运算所需的运算开销如下:
2SUB+2MAT+2KADD
此外,为了实施这些运算处理,使用逻辑电路、处理程序等,并且所需的运算电路或处理的速度取决于逻辑电路、处理程序等的配置。因此难于评价绝对效率,但是可以使用上述运算所需的逻辑电路中门的数量作为评价指标。
作为逻辑电路实施方案的示例,每个运算所需的门的数量对应于以下的门数量:
SUB运算=约3200至4800个门
MAT运算=约800至1200个门
KADD运算=约320个门
因此,在图4中示出的示例中,可以确定直到1个1字节的数据块影响配置正方形状态的所有的1字节的数据块为止的两个回合的回合运算所需的运算开销是如下的计算开销:
2SUB+2MAT+2KADD=9000至13000个门=9K个门至13K个门
较低的计算开销允许减小用于实施加密处理、哈希处理等的装置所需的电路尺寸,并且允许高速处理。
(B)对于长方形矩阵(长方形状态)的处理的示例
接下来,以下将参照图5及后面的图描述对于256比特的数据的数据转换处理中的扰乱处理。下文中,将描述设计原理与AES类似的算法[Rijndael]中的转换处理中的扰乱的示例。
256比特的数据被划分为1字节(8比特)的数据块。在此,32个1字节的数据块分别由a1至a32来表示。如由图5中的长方形数据矩阵(长方形状态)51所示,32个1字节的数据块[a1至a32]被存储成4×8的矩阵。下文中,存储成长方形矩阵的数据被称为长方形状态。
在[Rijndael]算法中,扩展到将此前参照图2至图4描述的、用于正方形状态中的非线性转换处理(SUB)、移位处理(SHIFT)、线性转换处理(MAT)和密钥适用运算处理(KADD)施加给长方形状态的运算被如下定义。
在[Rijndael]算法中定义的运算包括图5中示出的以下四种。
(1)非线性转换处理(W-SUB)
通过逐字节地使每个1字节的数据块经受非线性转换S(x)来更新值的运算,
其中,如图5(1)中所示,在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
bi=S(ai)
i=1,2,…,32
(2)移位处理(W-SHIFT)
使每行都经受轮换移位运算的处理。一行与另一行的移位量不同,以及在Rijndael的情况下,如图5(2)中所示,第一行中的1字节的数据块不被轮换移位,而第二行中的1字节的数据块、第三行中的1字节的数据块以及第四行中的1字节的数据块分别被向右轮换移位了1个1字节的数据块、3个1字节的数据块以及4个1字节的数据块。
(3)线性转换处理(W-MAT)
通过对于4×4矩阵[M]的运算来更新值的运算(假定将每列中的4个1字节的数据块看作一个向量)。
在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
t(bi,bi+8,bi+16,bi+24)=Mt(ai,ai+8,ai+16,ai+24)
i=1,2,3,…,8
此外,t()表示通过将矩阵中的行列互换形成的转置矩阵。
(4)密钥适用运算处理(W-KADD)
执行每个1字节的数据块与从密钥编排部输出的回合密钥[ki]之间的异或运算的运算。
在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
bi=ai(XOR)ki
i=1,2,…,32
此外,在上述表达式中,(XOR)表示异或运算。
以预定顺序实施的上述(1)至(4)的运算的组合配置一个回合运算。对于输入数据重复实施该回合运算以产生输出数据,例如加密数据,以及随后输出该数据。如图6中所示,该回合运算例如由按如下序列实施的数据转换处理的组合来配置:(1)非线性转换处理(W-SUB)→(2)移位处理(W-SHIFT)→(3)线性转换处理(W-MAT)→(4)密钥适用运算处理(W-KADD);以及多次重复实施该回合运算以将输入数据转换为输出数据,即加密数据。
图7是用于描述在对长方形状态实施回合运算的第一至第三回合(R1至R3)的情况下的数据扰乱的示例的图示,所述回合运算是由按如下顺序实施的数据转换处理来配置的:(1)非线性转换处理(W-SUB)→(2)移位处理(W-SHIFT)→(3)线性转换处理(W-MAT)→(4)密钥适用运算处理(W-KADD)。
讨论输入数据的初始状态下的长方形状态61的左上角处的1字节的数据块71(用黑色标记)。与上述正方形状态的情况一样,显然在两个回合之后1字节的数据块71就影响了16个1字节的数据块。此外,显然,影响的范围通过第三回合中的移位处理(W-SHIFT)得到扩大,并且,通过第三回合中紧接在移位处理(W-SHIFT)后的线性转换处理(W-MAT),1字节的数据块71影响了所有的32个1字节的数据块。
在该情况下,通过三个回合的回合运算的处理,1个1字节的数据块影响了配置长方形状态的所有的1字节的数据块。此外,在图7中,虽然作为示例描述了左上角处的1字节的数据块71的影响,但是长方形状态的任意位置处的任何1字节的数据块都以同样方式影响其它1字节的数据块,并且1字节的数据块的影响用三个回合波及所有其它1字节的数据块,即,1字节的数据块的影响用三个回合扩散到了所有其它1字节的数据块。
接下来,与先前的正方形状态的示例的情况(参照图4)一样,计算在门的数量方面的运算开销。在图7中示出的示例中,作为直到1个1字节的数据块影响了配置长方形状态的所有的1字节的数据块为止的3个回合的回合运算所需的运算开销,需要三次W-SUB、W-SHIFT、W-MAT和W-KADD运算。此外,如上所述,移位运算(W-SHIFT)可以被看作0;因此可以估计该情况下的运算开销如下:
3(W-SUB)+3(W-MAT)+3(W-KADD)
W-SUB、W-MAT和W-KADD的运算开销分别是SUB、MAT和KADD的运算开销的两倍高。因此,在长方形状态中,通过基于在先前的第六页第一至第三行中描述的门的数量的计算,直到1个1字节的数据块影响了配置长方形状态的所有的1字节的数据块为止的3个回合的回合运算所需的运算开销是26K个门至38K个门。
如上所述,在如参照图2至图4所述的、作为1字节的数据块的数据被排列成正方形矩阵以执行回合运算的情况下,扰乱是可以用相对低的计算开销来实现的,但是在被设计为与不允许被排列成正方形矩阵的256比特的输入/输出对应的、如图5至图7中所述的使用长方形矩阵的处理中,产生了计算开销增加的问题。
发明内容
提出本发明以解决上述问题,并且本发明的目标是:在实施长方形矩阵中的数据扰乱的加密处理、哈希处理、数据扩散处理等中,提供降低运算开销并实现高效扩散的数据转换器、数据转换方法和计算机程序。
本发明的第一方面提供一种数据转换器,其包括:
数据转换部,执行重复进行回合运算的数据转换处理,所述数据转换部被配置为在所述回合运算中实施以下处理:
对于两个数据段之一的线性转换处理,所述两个数据段是将长方形数据矩阵划分为两部分而得到的,所述长方形数据矩阵是通过排列大小相等的数据块来配置的;
所述两个数据段之间的异或运算;
对于所述数据段之一的移位处理;以及
所述两个数据段之间的交换处理。
进一步地,在根据本发明的数据转换器的一个实施例中,所述大小相等的数据块是1字节的数据块,并且所述数据转换部被配置为在所述回合运算中执行对于所述两个数据段的处理,所述两个数据段是将所述长方形数据矩阵划分为两部分而得到的,所述长方形数据矩阵是通过排列所述1字节的数据块来配置的。
进一步地,在根据本发明的数据转换器的一个实施例中,所述数据转换部被配置为在所述回合运算中进一步实施:对于所述数据段之一的非线性转换处理;以及对于所述数据段之一的密钥适用运算处理。
进一步地,在根据本发明的数据转换器的一个实施例中,所述密钥适用运算是在所述数据段之一的配置数据和加密密钥数据之间的异或运算。
进一步地,在根据本发明的数据转换器的一个实施例中,所述数据转换部利用所述异或运算的结果来作为所述数据段之一的更新数据。
进一步地,在根据本发明的数据转换器的一个实施例中,在实施所述移位处理时,所述数据转换部实施如下移位处理:对于包括在具有m行和2n列数据的长方形矩阵中的、要经受所述移位处理的、具有m行和n列的数据段,在满足m≤n的关系的情况下,在所述移位处理前属于同一列的数据块被移位,以使得在所述移位处理后属于不同的列;以及在满足m>n的关系的情况下,在所述移位处理前属于同一列的数据块被移位,以使得这些数据块在所述移位处理后的任意列中的块数包含在(m/n)-1以上、(m/n)+1以下的范围内。
进一步地,在根据本发明的数据转换器的一个实施例中,所述数据转换部对于所述两个数据段都实施所述移位处理。
进一步地,在根据本发明的数据转换器的一个实施例中,在所述回合运算中,所述数据转换部对于所述数据段中的一个数据段A实施非线性转换和移位处理,以更新所述数据段A,并且进一步对于更新的数据段A实施线性转换处理并在所述线性转换处理的结果和另一数据段B之间实施异或运算,从而利用该异或运算的结果作为所述数据段B的更新数据,并且进一步在所述数据段A和所述数据段B之间实施所述交换处理,并且随后在所述数据段A和密钥数据之间实施异或运算。
进一步地,在根据本发明的数据转换器的一个实施例中,在所述回合运算中,所述数据转换部对于所述数据段中的一个数据段A实施非线性转换处理、移位处理和线性转换处理,以更新所述数据段A,并且进一步在更新的数据段A和另一数据段B之间实施异或运算,从而利用该异或运算的结果作为数据段B的更新数据,并且进一步在所述数据段A和所述数据段B之间实施所述交换处理,并且随后在所述数据段A和密钥数据之间实施异或运算。
进一步地,在根据本发明的数据转换器的一个实施例中,在所述回合运算中,所述数据转换部对于所述数据段中的一个数据段A实施非线性转换处理和线性转换处理,并且在其结果和另一数据段B之间实施异或运算,从而利用该异或运算的结果作为所述数据段B的更新数据,并且进一步在所述数据段A和所述数据段B之间实施所述交换处理,并且对于所述数据段A实施移位处理,并且随后在所述数据段A和密钥数据之间实施异或运算。
进一步地,在根据本发明的数据转换器的一个实施例中,在所述回合运算中,所述数据转换部对于所述数据段中的一个数据段A实施非线性转换处理、移位处理和线性转换处理,并且进一步在其结果和另一数据段B之间实施异或运算,从而利用该异或运算的结果作为所述数据段A的更新数据,并且进一步在所述数据段A和所述数据段B之间实施交换处理,并且随后在所述数据段A和密钥数据之间实施异或运算。
进一步地,在根据本发明的数据转换器的一个实施例中,在所述回合运算中的线性转换处理中,所述数据转换部被配置为每个回合都选择和使用多个不同矩阵中的一个矩阵。
进一步地,在根据本发明的数据转换器的一个实施例中,所述数据转换部被配置为借助于使用DSM(扩散交换机制,Diffusion SwitchingMechanism)的处理来选择和使用多个不同矩阵中的一个矩阵。
本发明的第二方面提供一种通过数据转换器实施的数据转换方法,所述方法包括:
在数据转换部中通过重复回合运算来执行数据转换的数据转换步骤,所述数据转换步骤在所述回合运算中实施以下处理:
对于两个数据段之一的线性转换处理,所述两个数据段是将长方形数据矩阵划分为两部分而得到的,所述长方形数据矩阵是通过排列大小相等的数据块来配置的;
所述两个数据段之间的异或运算;
对于所述数据段之一的移位处理;以及
所述两个数据段之间的交换处理。
进一步地,在根据本发明的数据转换方法的一个实施例中,所述大小相等的数据块是1字节的数据块,并且所述数据转换部被配置为在所述回合运算中执行对于所述两个数据段的处理,所述两个数据段是将长方形数据矩阵划分为两部分而得到的,所述长方形数据矩阵是通过排列1字节的数据块来配置的。
进一步地,在根据本发明的数据转换方法的一个实施例中,所述数据转换步骤被配置为在所述回合运算中进一步实施:对于所述数据段之一的非线性转换处理;以及对于所述数据段之一的密钥适用运算处理。
进一步地,在根据本发明的数据转换方法的一个实施例中,所述密钥适用运算是在所述数据段之一的配置数据和加密密钥数据之间的异或运算。
进一步地,在根据本发明的数据转换方法的一个实施例中,所述数据转换步骤利用所述异或运算的结果来作为所述数据段之一的更新数据。
进一步地,在根据本发明的数据转换方法的一个实施例中,在实施所述移位处理时,所述数据转换步骤实施如下移位处理:对于包括在具有m行和2n列数据的长方形矩阵中的、要经受所述移位处理的、具有m行和n列的数据段,在满足m≤n的关系的情况下,在所述移位处理前属于同一列的数据块被移位,以使得在所述移位处理后属于不同的列;以及在满足m>n的关系的情况下,在所述移位处理前属于同一列的数据块被移位,以使得这些数据块在所述移位处理后的任意列中的块数包含在(m/n)-1以上、(m/n)+1以下的范围内。
进一步地,在根据本发明的数据转换方法的一个实施例中,所述数据转换步骤对于所述两个数据段都实施所述移位处理。
进一步地,在根据本发明的数据转换方法的一个实施例中,在所述回合运算中,所述数据转换步骤对于所述数据段中的一个数据段A实施非线性转换和移位处理,以更新所述数据段A,并且进一步对于更新的数据段A实施线性转换处理并在该线性转换处理的结果和另一数据段B之间实施异或运算,从而利用该异或运算的结果作为所述数据段B的更新数据,并且进一步在所述数据段A和所述数据段B之间实施所述交换处理,并随后在所述数据段A和密钥数据之间实施异或运算。
进一步地,在根据本发明的数据转换方法的一个实施例中,在所述回合运算中,所述数据转换步骤对于所述数据段中的一个数据段A实施非线性转换处理、移位处理和线性转换处理,以更新数据段A,并且进一步在更新的数据段A和另一数据段B之间实施异或运算,从而利用该异或运算的结果作为所述数据段B的更新数据,并且进一步在所述数据段A和所述数据段B之间实施所述交换处理,并且随后在所述数据段A和密钥数据之间实施异或运算。
进一步地,在根据本发明的数据转换方法的一个实施例中,在所述回合运算中,所述数据转换步骤对于所述数据段中的一个数据段A实施非线性转换处理和线性转换处理,并且在其结果和另一数据段B之间实施异或运算,从而利用该异或运算的结果作为所述数据段B的更新数据,并且进一步在所述数据段A和所述数据段B之间实施所述交换处理,并且对于所述数据段A实施移位处理,并且随后在所述数据段A和密钥数据之间实施异或运算。
进一步地,在根据本发明的数据转换方法的一个实施例中,在所述回合运算中,所述数据转换步骤对于所述数据段中的一个数据段A实施非线性转换处理、移位处理和线性转换处理,并且进一步在其结果和另一数据段B之间实施异或运算,从而利用该异或运算的结果作为所述数据段A的更新数据,并且进一步在所述数据段A和所述数据段B之间实施所述交换处理,并且随后在所述数据段A和密钥数据之间实施异或运算。
进一步地,在根据本发明的数据转换方法的一个实施例中,所述数据转换步骤被配置为每个回合都选择和使用多个不同矩阵中的一个矩阵。
进一步地,在根据本发明的数据转换方法的一个实施例中,所述数据转换步骤被配置为借助于使用DSM(扩散交换机制,Diffusion SwitchingMechanism)的处理来选择和使用多个不同矩阵中的一个矩阵。
本发明的第三方面提供一种在数据转换器中实施数据转换处理的计算机程序,所述计算机程序包括:
在数据转换部中通过重复回合运算来执行数据转换的数据转换步骤,所述数据转换步骤是在所述回合运算中实施如下处理的步骤:
对于两个数据段之一的线性转换处理,所述两个数据段是将长方形数据矩阵划分为两部分而得到的,所述长方形数据矩阵是通过排列大小相等的数据块来配置的;
所述两个数据段之间的异或运算;
对于所述数据段之一的移位处理;以及
所述两个数据段之间的交换处理。
此外,根据本发明的程序例如是被允许提供给通用系统的程序,所述通用系统能够通过以计算机可读格式的存储介质或通信介质实施多种程序代码。该程序以计算机可读格式提供,从而根据该程序的处理在计算机系统上实施。
根据以下对本发明示例性实施例的描述或基于附图的更详细的描述,本发明更多的目标、特征或优点将会变得明显。此外,在本说明书中,“系统”指的是多个装置的逻辑上的集合配置,而不论各个构成装置是否包含在一个壳体内。
根据本发明的示例性实施例,例如,在其中对于将长方形数据矩阵(包含排列的1字节的数据块)划分为两部分而得到的两个数据段实施多种处理以执行数据转换的配置中,通过实施对于所述数据段之一的线性转换处理、所述两个数据段之间的异或运算、对于所述数据段之一的移位处理以及所述两个数据段之间的交换处理,实现了低运算开销的高效数据扰乱。此外,通过包括对于所述数据段的非线性转换或密钥适用运算,实现了高安全等级的加密处理。
附图说明
图1是描述如下配置的图示:在该配置中,输入数据被划分为1字节的数据块,以及这些1字节的数据块被排列成正方形或长方形矩阵并经受其中重复进行逐行处理或逐列处理的数据扰乱。
图2是描述AES块密码算法中对于正方形状态的运算示例的图示。
图3是描述AES块密码算法中的回合运算的图示。
图4是描述通过对于正方形状态的回合运算实现的数据扩散示例的图示。
图5是描述对于长方形数据矩阵(长方形状态)的运算示例的图示。
图6是描述对于长方形数据矩阵(长方形状态)的回合运算示例的图示。
图7是描述通过对于长方形状态的回合运算实现的数据扩散示例的图示。
图8是描述对于长方形状态的一半数据段的处理示例的图示。
图9是描述对于长方形状态的回合运算处理示例的图示。
图10是描述通过对于长方形状态的回合运算的处理实现的数据扩散示例的图示。
图11是描述通过对于长方形状态的回合运算实现的数据扩散示例的图示。
图12是描述本发明的第一示例性实施例中的回合运算的配置示例的图示。
图13是描述在本发明的第一示例性实施例中的回合运算中实施的数据处理示例的图示。
图14是描述通过本发明的第一示例性实施例中的回合运算的处理实现的数据扩散示例的图示。
图15是描述通过本发明的第一示例性实施例中的回合运算的处理实现的数据扩散示例的图示。
图16是描述本发明的第二示例性实施例中的回合运算的配置示例的图示。
图17是描述本发明的第二示例性实施例中的回合运算中实施的数据处理示例的图示。
图18是描述通过本发明的第二示例性实施例中的回合运算的处理实现的数据扩散示例的图示。
图19是描述通过本发明的第二示例性实施例中的回合运算的处理实现的数据扩散示例的图示。
图20是描述本发明的第三示例性实施例中的回合运算的配置示例的图示。
图21是描述本发明的第三示例性实施例中的回合运算中实施的数据处理示例的图示。
图22是描述通过本发明的第三示例性实施例中的回合运算的处理实现的数据扩散示例的图示。
图23是描述通过本发明的第三示例性实施例中的回合运算的处理实现的数据扩散示例的图示。
图24是描述本发明的第四示例性实施例中的回合运算的配置示例的图示。
图25是描述本发明的第四示例性实施例中的回合运算中实施的数据处理示例的图示。
图26是描述通过本发明的第四示例性实施例中的回合运算的处理实现的数据扩散示例的图示。
图27是描述对于长方形状态的左半部和右半部的数据段都施加示例性实施例1中的移位处理(H-SHIFT)的处理的算法的图示。
图28是描述对于如下广义形式的数据转换处理的图示:其中总共包含有2nm个1字节的数据块的数据是包含有a1至a2mn的2nm个1字节的数据块、具有m行和2n列的长方形状态。
图29是描述对于如下广义形式的数据转换处理的图示:其中总共包含有2nm个1字节的数据块的数据是包含有a1至a2mn的2nm个1字节的数据块、具有m行和2n列的长方形状态。
图30是描述通过对于如下广义化的长方形状态的示例性实施例1实现的数据扩散示例的图示:其中长方形状态的一半数据段不是正方形状态。
图31是描述通过对于如下广义化的长方形状态的示例性实施例2实现的数据扩散示例的图示:其中长方形状态的一半数据段不是正方形状态。
图32是描述通过对于如下广义化的长方形状态的示例性实施例3实现的数据扩散示例的图示:其中长方形状态的一半数据段不是正方形状态。
图33是描述通过对于如下广义化的长方形状态的示例性实施例4实现的数据扩散示例的图示:其中长方形状态的一半数据段不是正方形状态。
图34是描述通过对于如下广义化的长方形状态的示例性实施例4实现的数据扩散示例的图示:其中长方形状态的一半数据段不是正方形状态。
图35是作为根据本发明的实施处理的数据转换器的集成电路(IC)模块的配置示例的图示。
具体实施方式
以下将参照附图详细描述根据本发明的数据转换器、数据转换方法和计算机程序。
在例如输入/输出配置包含256比特等的数据的矩阵(即,8比特的1字节的多个数据块)的情况下,本发明提出了对于不配置正方形矩阵的多个比特的数据高效实施数据扰乱过程的配置,所述不配置正方形矩阵的多个比特的数据,即,更具体地,不满足以下情况的多个比特(或多个字节)的数据:
比特数量=8×(n)2的情况(其中n是自然数),
以字节而言,
字节数量=(n)2的情况(其中n是自然数)。
如先前参照图1至图7所述,不配置正方形矩阵的多个比特的数据配置图1(b)中示出的长方形矩阵,并且对于该数据执行处理。本发明提出了在使用这样的长方形状态的处理中降低运算开销并且实现充分的扰乱能力的技术。
例如,一个特定示例被配置为:对于将长方形数据矩阵(包含排列的大小相等的数据块,例如1字节的数据块)划分为两部分而得到的两个数据段,仅对其中之一执行比如非线性转换、线性转换和密钥加法的运算,并且随后执行低运算开销的异或(XOR)运算、交换(SWAP)运算等。在该配置中,以低通量实现了充分的扰乱能力。当应用本发明中提出的配置时,降低了运算负担以得到充分的扩散性能,并且允许用小电路尺寸以高速执行加密处理、哈希处理、扰乱处理等。
如上所述,在比如AES或Rijndael等算法中,重复实施包括多个运算的组合的回合运算。该回合运算包括非线性转换处理(SUB,W-SUB)、移位处理(SHIFT,W-SHIFT)、线性转换处理(MAT,W-MAT)和密钥适用运算处理(KADD,W-KADD)。
在这些处理中,非线性转换处理(SUB,W-SUB)和线性转换处理(MAT,W-MAT)是相对繁重的处理,即高运算开销的处理。因此,可认为,在允许减少高运算开销的处理的情况下,能够降低总的运算开销。
上述Rijndael算法是对于长方形状态的所有数据执行非线性转换处理(W-SUB)、线性转换处理(W-MAT)等的算法,但是本发明的一个示例性实施例被配置为不是对于长方形状态的所有数据,而是仅对于将长方形状态划分为两部分而得到的两个数据段之一执行非线性转换处理、线性转换处理或密钥适用运算处理,并且通过处理开销相对低的运算(比如移位处理或交换运算)将这一个数据段的影响扩散到其余数据,从而实现充分的扩散性。
此外,在本说明书中,对于由1字节的数据块配置的长方形数据矩阵(长方形状态)的所有数据的处理、以及对于将长方形数据矩阵(长方形状态)划分为两部分而得到的两个数据段之一执行的处理,将通过以下标记来加以区分地描述。对于长方形状态的所有数据的处理以标记[W-]来表示,比如,例如非线性转换处理(W-SUB)或线性转换处理(W-MAT),而对于一半数据段的处理以标记[H-]来表示,比如,例如非线性转换处理(H-SUB)或线性转换处理(H-MAT)。
图8图示了对于将长方形状态(由4×8=32个1字节的数据块(256比特)配置)划分为两部分而得到的两个数据段的处理,即以下处理示例:
(1)非线性转换处理(H-SUB)
(2)线性转换处理(H-MAT)
(3)密钥适用运算(H-KADD)
此外,图8图示了其中仅对于长方形状态的左半部数据段施加上述运算的示例。在使左半部数据段经受运算和使右半部数据段经受运算的两种情况下,均产生等价的运算减少效果。
图8中示出的每种运算如以下所详细描述的。
(1)非线性转换处理(H-SUB)
通过逐字节地使长方形状态的左半部数据段的每个1字节的数据块经受非线性转换S(x)来更新值的运算,
其中,如图8(1)中所示,在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
当i=1至4,9至12,17至20,25至28,则bi=S(ai),
否则,bi=ai
如上所述,右半部数据段没有变化。
(2)线性转换处理(H-MAT)
通过对于4×4矩阵[M]的运算来更新对于长方形状态的左半部数据段的每个1字节的数据块的值的运算(假定将每列中的4个1字节的数据块看作一个向量)。
在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
t(bi,bi+8,bi+16,bi+24)=Mt(ai,ai+8,ai+16,ai+24)
其中i=1,2,3,4,
t(bi,bi+8,bi+16,bi+24)=t(ai,ai+8,ai+16,ai+24)
i=5,6,7,8
如上所述,对于长方形状态的左半部数据段的每个1字节的数据块实施使用矩阵[M]的线性转换,而右半部数据段没有变化。
此外,t()表示通过将矩阵中的行列互换形成的转置矩阵。
(3)密钥适用运算处理(H-KADD)
执行长方形状态的左半部数据段的每个1字节的数据块和从密钥编排部输出的回合密钥[ki]之间的异或运算的运算。
在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
当i=1至4,9至12,17至20,25至28,则bi=ai(XOR)ki
否则,bi=ai
如上所述,右半部数据段没有变化。
此外,在上述表达式中,(XOR)表示异或运算。
因而,对于长方形状态的左半部数据的每个1字节的数据块实施非线性转换处理(H-SUB)、线性转换处理(H-MAT)和密钥适用运算(H-KADD),并且对于其它数据实施处理开销相对低的运算(比如移位和交换)的组合以实现充分的扩散性,从而实现高性能的置换函数。此外,在一般的加密算法中,通常根据非线性转换处理(H-SUB)的处理规模来定义密钥适用运算处理(H-KADD)。
作为目标,例如,在数据转换或加密处理(其中如图8中所示,对于4×8=32个1字节的数据块(256比特)重复实施回合处理)被配置为在每个回合中实施一个非线性转换处理(H-SUB)和一个线性转换处理(H-MAT)(二者均为对于长方形状态的一半数据段的1字节的数据块的运算)的情况下,希望允许将数据转换或加密处理配置为使得用五个回合的回合运算影响所有的32个1字节的数据块。
这是因为,在先前参照图5至图7描述的、其中对于整个长方形状态实施非线性转换处理(W-SUB)或线性转换处理(W-MAT)的配置中,允许1个1字节的数据块用三个回合的回合运算影响长方形状态的所有的1字节的数据块,所以即使允许1个1字节的数据块用六个回合,是使用非线性转换处理(H-SUB)或线性转换处理(H-MAT)的回合运算(假定具有前述配置的一半开销)的三个回合的两倍,也没有效率优势。因此,希望的是以下配置:其中允许1个1字节的数据块用五个回合影响长方形状态的所有的1字节的数据块。
首先,将讨论被配置为执行一个回合的回合运算的数据扩散,该回合运算包括对于将上述长方形状态划分为两部分而得到的两个数据段的以下处理与对于长方形状态的所有数据的移位处理(W-SHIFT)的组合:
(1)非线性转换处理(H-SUB)
(2)线性转换处理(H-MAT)
(3)密钥适用运算(H-KADD)
即,如图9中所示,对于由nm个1字节的数据块(其中2n≠m)配置的长方形状态(具有2n列×m行)实施由如下(1)至(4)的处理配置的回合运算作为一个回合的运算:
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)
(2)对于长方形状态的所有数据的移位处理(W-SHIFT)
(3)对于长方形状态的一半数据段的线性转换处理(H-MAT)
(4)对于长方形状态的一半数据段的密钥适用运算处理(H-KADD)
此外,移位处理(W-SHIFT)是与上述[Rijndael]算法中的移位处理(W-SHIFT)相同的处理,以及是使每行都经受轮换移位运算的处理,以及是如下的处理:其中如图5(2)中所示,第一行中的1字节的数据块不被轮换移位,而第二行中的1字节的数据块、第三行中的1字节的数据块以及第四行中的1字节的数据块分别被向右轮换移位了1个1字节的数据块、3个1字节的数据块以及4个1字节的数据块。
将参照图10描述在实施这样的回合运算的情况下的数据扩散示例。讨论输入数据的初始状态下的长方形状态100的左上角处的1字节的数据块101(用黑色标记)。根据该图可理解到,在两个回合的回合运算之后,长方形状态100的左上角处的1字节的数据块101的构成比特的影响波及(即扩散到)左半部数据段中3/4的1字节的数据块以及右半部数据段中1个1字节的数据块,以及在三个回合之后,该影响波及左半部数据段中所有的1字节的数据块以及右半部数据段中7个1字节的数据块。
然而,输入数据的初始状态下的长方形状态100的左上角处的1字节的数据块101未在三个回合中影响长方形状态100的所有的1字节的数据块。
接下来,图11中图示了在相同处理中长方形状态100的右半部数据段的左上角处的1字节的数据块(即,最上边的行中左起第五个1字节的数据块)的影响。
讨论输入数据的初始状态下的长方形状态100的最上边的行中左起第五个1字节的数据块102(用黑色标记)。根据该图可理解到,直到实施了三个回合的回合运算之后为止,1字节的数据块102根本没有影响其它数据。这是因为对于右半部数据段实施的处理仅仅是移位处理(W-SHIFT),而最上边的行中的1字节的数据块没有被移位,所以它们没有被移动。
此外,只要数据位于右半部数据段中,该数据就不会被选择作为经受非线性转换处理(H-SUB)、线性转换处理(H-MAT)和密钥适用运算(H-KADD)的目标,所以没有扩展所影响的范围。因此,即使不停地重复回合处理,也无法影响其它字节。这不是作为在加密处理中使用的函数所希望的属性。
因而,如图9中所示,在其中实施由如下(1)至(4)的运算配置的回合运算作为一个回合的运算的配置中,没有实施充分的扩散,所以该配置并不优选地适用于加密处理、哈希处理、数据扩散处理等。
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)
(2)对于长方形状态的所有数据的移位处理(W-SHIFT)
(3)对于长方形状态的一半数据段的线性转换处理(H-MAT)
(4)对于长方形状态的一半数据段的密钥适用运算(H-KADD)
下文中,鉴于该问题,以下将描述根据本发明的、回合数量少而具有充分扩散性能的算法。
[示例性实施例1]
在图12中图示本发明的第一示例性实施例中的回合运算的配置。示例性实施例1中的回合运算的处理顺序如下:
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(3)对于长方形状态的一半数据段执行线性转换处理并且随后在这一半数据段和另一半数据段之间执行异或运算(XOR)的处理(MAT-XOR)
(4)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(5)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)
(1)至(5)的这些处理配置回合运算。
当概括示例性实施例1的回合运算处理时,数据转换器的数据转换部实施以下回合运算。对于将长方形状态划分为两部分而得到的两个数据段中的一个数据段A实施非线性转换处理和移位处理以便更新数据段A,以及进一步地,对于更新的数据段A实施线性转换处理,并且在更新的数据段A和另一数据段B之间实施异或运算,随后利用该异或运算的结果作为数据段B的更新数据,以及在数据段A和B之间的交换处理之后,在数据段A和密钥数据之间实施异或运算。这样的回合处理被实施。
此外,在该示例性实施例中,虽然描述了其中选择长方形状态的左半部数据段并且对于左半部数据段实施主要运算(比如非线性转换处理(H-SUB))的配置,但是也可以使用其中对于右半部数据段实施主要运算的配置。换言之,在以下将描述的处理中,即使这些处理是对于右半部数据段而不是左半部数据段来执行的,也得到一样的效果。
以下将详细描述每个处理。
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)
该处理是与先前参照图8描述的处理相同的处理,是通过逐字节地使长方形状态的左半部数据段的每个1字节的数据块经受非线性转换S(x)来更新值的运算。
如图8(1)中所示,在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
当i=1至4,9至12,17至20,25至28,则bi=S(ai)
否则bi=ai
如上所述,右半部数据段没有变化。
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)
将参照图13(A)描述该移位处理(H-SHIFT)。仅对长方形状态的左半部数据段的每行中的1字节的数据块进行移位,移位量(0至(n-1))行与行并不相同。例如,如在先前参照图2描述的对于正方形状态的移位处理的情况下一样,第一行中的1字节的数据块不被轮换移位,而第二行中的1字节的数据块、第三行中的1字节的数据块以及第四行中的1字节的数据块分别被向右轮换移位了1个1字节的数据块、2个1字节的数据块以及3个1字节的数据块。
(3)对于长方形状态的一半数据段执行线性转换处理并且随后在这一半数据段和另一半数据段之间执行异或运算(XOR)的处理(MAT-XOR)
该线性转换和异或运算(MAT-XOR)将参照图13(B)来描述。
通过使用预设的线性转换矩阵[M]来执行4×4矩阵的运算(假定将长方形状态的左半部数据段的每列中的数据看作一个向量),以及在4×4矩阵的运算结果和右半部数据段的对应列中的数据之间执行异或运算(XOR),并利用该异或运算(XOR)的结果作为右半部数据段的更新数据。左半部数据段没有更新。
在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
(3-1)左半部数据段
t(bi,bi+8,bi+16,bi+24)=t(ai,ai+8,ai+16,ai+24)
i=1,2,3,4
(3-2)右半部数据段
t(bi+4,bi+12,bi+20,bi+28)=[Mt(ai,ai+8,ai+16,ai+24)](XOR)t(ai+4,ai+12,ai+20,ai+28)
i=1,2,3,4
此外,t()表示通过将矩阵中的行列互换形成的转置矩阵。
即,通过使用左半部数据段的左起第一列中的数据和预设的线性转换矩阵[M]来执行4×4矩阵的运算,并利用在4×4矩阵的运算的结果和右半部数据段的左起第一列中的(长方形状态中左起第五列中的)数据之间实施的异或运算(XOR)的结果来作为右半部数据段的左起第一列中的(长方形状态中左起第五列中的)数据的更新数据。下文中,以同样方式,通过使用左半部数据段的左起第二列中的数据和预设的线性转换矩阵[M]来执行4×4矩阵的运算,并利用在4×4矩阵的运算的结果和右半部数据段的左起第二列中的(长方形状态中左起第六列中的)数据之间实施的异或运算(XOR)的结果来作为右半部数据段的左起第二列中的(长方形状态中左起第六列中的)数据的更新数据。下文中执行同样的处理。
(4)将长方形状态的两个一半数据段互换的交换处理(SWAP)
将参照图13(C)描述交换处理(SWAP)。如图中所示,该处理是将长方形状态的左半部数据段和右半部数据段互换的处理。
(5)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)
该处理是与先前参照图8(3)描述的处理相同的处理。在每个1字节的数据块和从密钥编排部输出的回合密钥[ki]之间执行异或运算。
在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
当i=1至4,9至12,17至20,25至28,则bi=ai(XOR)ki
否则bi=ai
如上所述,右半部数据段没有变化。
此外,在上述表达式中,(XOR)表示异或运算。
如图12中所示,本发明的第一示例性实施例中的回合运算是由如下(1)至(5)的处理来配置的:
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(3)对于长方形状态的一半数据段执行线性转换处理并且随后在这一半数据段和另一半数据段之间执行异或运算(XOR)的处理(MAT-XOR)
(4)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(5)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)
换言之,作为配置一个回合运算的处理,这些处理按如下序列来实施:[H-SUB]→[H-SHIFT]→[MAT-XOR]→[SWAP]→[H-KADD]。
通过重复实施该回合运算来执行输入数据的加密、哈希处理或扩散处理。将参照图14描述示例性实施例1中的数据扩散示例。
在图14中,讨论输入数据的初始状态下的长方形状态200的左上角处的1字节的数据块201(用黑色标记)。在配置该回合运算的每个处理中,被1字节的数据块201的构成比特改变的1字节的数据块用黑色标记。
根据该图可理解到,在两个回合的回合运算之后,1字节的数据块201的构成比特的影响波及包括左半部数据段的所有的1字节的数据块和右半部数据段的4个1字节的数据块在内的总共20个1字节的数据块,并且在完成三个回合时,该影响波及长方形状态200的所有32个1字节的数据块。此外,虽然该图图示长方形状态200的左上角处的1字节的数据块201的影响的扩散,但是左半部数据段中所包括的任何1字节的数据块都具有相同的扩散其影响的属性。
接下来,以下将参照图15描述在相同处理中长方形状态200的右半部数据段的左上角处的1字节的数据块202(即最上边的行中左起第五个1字节的数据块)的影响。
在该算法中,在第一回合中的处理中必然实施一次交换处理[SWAP],所以右半部数据段中的数据被移动到左半部数据段。在数据被移动到左半部数据段之后,则执行与参照图14描述的对于长方形状态的左上角处的1字节的数据块201的处理相同的处理。因此,这样,在三个回合之后影响了所有数据。因此,1字节的数据块202的影响用总共四个回合波及长方形状态的所有的1字节的数据块。右半部数据段中所包括的任何1字节的数据块都具有相同的属性。
因而,在该示例性实施例中,作为配置一个回合运算的处理,以下(1)至(5)的处理(即按[H-SUB]→[H-SHIFT]→[MAT-XOR]→[SWAP]→[H-KADD]的序列的这些处理)被实施,以实现高效的扰乱能力:
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(3)对于长方形状态的一半数据段执行线性转换处理并且随后在这一半数据段和另一半数据段之间执行异或运算(XOR)的处理(MAT-XOR)
(4)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(5)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)
以下将讨论该示例性实施例中的运算开销。估计配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块所需的运算开销。如参照图14和图15所描述的,配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块最多需要四个回合。
因此,直到配置长方形状态的1个1字节的数据块影响了配置长方形状态的所有的1字节的数据块为止,最多需要四次的非线性转换处理(H-SUB)、移位处理(H-SHIFT)、线性转换和异或运算处理(MAT-XOR)、交换处理(SWAP)和密钥适用运算处理(H-KADD)。
如上所述,为了实施这些运算处理,使用逻辑电路、处理程序等,并且所需的运算电路或处理的速度取决于逻辑电路、处理程序等的配置。因此,难以评价绝对效率,但是可以使用上述运算所需的逻辑电路中门的数量作为评价指标。
例如,如上所述,作为用于128比特的正方形状态的逻辑电路实施方案示例,每个运算所需的门的数量对应于门的以下数量:
SUB运算=约3200至4800个门
MAT运算=约800至1200个门
KADD运算=约320个门
对于256比特的长方形状态的处理的运算开销可以如下来计算。
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)的运算开销等于对于上述128比特的正方形状态的非线性转换处理(SUB)的运算开销
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)的运算开销是0,因为其不需要通过门
(3)对于长方形状态的一半数据段执行线性转换处理并且随后在这一半数据段和另一半数据段之间执行异或运算(XOR)的处理(MAT-XOR)的运算开销等于如下处理的运算开销:该处理包括对于128比特的正方形状态的线性转换处理(MAT)和密钥适用运算处理(KADD)
(4)将长方形状态的两个一半数据段互换的交换处理(SWAP)的运算开销是0,因为其不需要通过门
(5)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)的运算开销等于对于128比特的正方形状态的密钥适用运算处理(KADD)的运算开销
运算开销以该方式来估计。
因此,在该示例性实施例中,配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块所需的运算开销可以如下来估计:
运算开销=4SUB+4MAT+8KADD
上述用于每个运算的门的数量为
SUB运算=约3200至4800个门
MAT运算=约800至1200个门
KADD运算=约320个门
当运算开销基于上述用于每个运算的门的数量来计算时,运算开销如下:
运算开销=4SUB+4MAT+8KADD=19K个门至27K个门
该运算开销优于先前作为对于长方形状态的处理示例描述的算法[Rijndael]中的转换处理所需的运算开销(26K个门至38K个门),从而通过实施根据该示例性实施例的处理实现了对于长方形状态的更高效的扩散。更具体地,可实现在处理速度、减小装置等方面的改进,并且在扩散性方面的改进允许在加密数据的安全等级或隐蔽等级方面的改进。
[示例性实施例2]
接下来,图16中图示出本发明的第二示例性实施例中的回合运算的配置。示例性实施例2中的回合运算的处理顺序如下:
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(3)对于长方形状态的一半数据段的线性转换处理(H-MAT)
(4)在长方形状态的一半数据段和另一半数据段之间执行异或运算(XOR)的处理(XOR)
(5)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(6)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)
(1)至(6)的这些处理配置回合运算。
当概括示例性实施例2的回合运算处理时,数据转换器的数据转换部实施以下回合运算。对于将长方形状态划分为两部分而得到的两个数据段中的一个数据段A实施非线性转换处理和移位处理,并进一步地实施线性转换处理以便更新数据段A,以及进一步地在更新的数据段A和另一数据段B之间实施异或运算,并利用该异或运算的结果作为数据段B的更新数据,并且在数据段A和B之间的交换处理之后,对于数据段A实施与密钥数据的异或运算处理。这样的回合处理被实施。
此外,在该示例性实施例中,虽然描述了其中选择长方形状态的左半部数据段并对于左半部数据段实施主要运算处理(比如非线性转换处理(H-SUB))的配置,但是也可以使用其中对于右半部数据段实施主要运算的配置。换言之,在以下将描述的处理中,即使处理是对于右半部数据段而非左半部数据段执行的,也得到一样的效果。
以下将详细描述每个处理。
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)
这些处理与示例性实施例1中描述的处理相同。
如图8(1)中所示,在(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)中,在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
当i=1至4,9至12,17至20,25至28,则bi=S(ai)
否则bi=ai
如上所述,右半部数据段没有变化。
如参照图13(A)所描述的,在(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)中,以行与行不同的移位量(0至(n-1))对每行中的1字节的数据块进行移位。例如,就像在先前参照图2描述的对于正方形状态的移位处理的情况下,第一行中的1字节的数据块不被轮换移位,而第二行中的1字节的数据块、第三行中的1字节的数据块以及第四行中的1字节的数据块分别被向右轮换移位了1个1字节的数据块、2个1字节的数据块以及3个1字节的数据块。
(3)对于长方形状态的一半数据段的线性转换处理(H-MAT)
该处理与先前参照图8(2)描述的处理相同,并且是通过对于4×4矩阵[M]的运算来更新对于长方形状态的左半部数据段的每个1字节的数据块的值的运算(假定将每列中的4个1字节的数据块看作一个向量)。
在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
t(bi,bi+8,bi+16,bi+24)=Mt(ai,ai+8,ai+16,ai+24)
i=1,2,3,4,
t(bi,bi+8,bi+16,bi+24)=t(ai,ai+8,ai+16,ai+24)
i=5,6,7,8。
如上所述,对于长方形状态的左半部数据段的每个1字节的数据块实施使用矩阵[M]的线性转换,右半部数据段没有变化。
此外,t()表示通过将矩阵中的行列互换形成的转置矩阵。
(4)在长方形状态的一半数据段和另一半数据段之间执行异或运算(XOR)的处理(XOR)
将参照图17描述异或运算(XOR)处理。在长方形状态的左半部数据段中的一列中的数据和长方形状态的右半部数据段中的对应列中的数据之间的异或运算(XOR)被执行,并利用该异或运算(XOR)的结果作为右半部数据段的更新数据。左半部数据段不更新。
在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
(3-1)左半部数据段
t(bi,bi+8,bi+16,bi+24)=t(ai,ai+8,ai+16,ai+24)
i=1,2,3,4,
(3-2)右半部数据段
t(bi+4,bi+12,bi+20,bi+28)=t(ai,ai+8,ai+16,ai+24)(XOR)t(ai+4,ai+12,ai+20,ai+28)
i=1,2,3,4
此外,t()表示通过将矩阵中的行列互换形成的转置矩阵。
即,在左半部数据段的左起第一列中的数据和右半部数据段的左起第一列中的(长方形状态中左起第五列中的)数据之间的异或运算(XOR)被实施,并且利用该异或运算(XOR)的结果来作为右半部数据段的左起第一列中的(长方形状态中左起第五列中的)数据的更新数据。下文中,以同样方式,在左半部数据段的左起第二列中的数据和右半部数据段的左起第二列中的(长方形状态中左起第六列中的)数据之间的异或运算(XOR)被实施,并且利用该异或运算(XOR)的结果来作为右半部数据段的左起第二列中的(长方形状态中左起第六列中的)数据的更新数据。下文中执行同样的处理。
(5)将长方形状态的两个一半数据段互换的交换处理(SWAP)
该交换处理(SWAP)是与先前在示例性实施例1中描述的处理相同的处理,并且是如图13(C)中所示的将长方形状态的两个一半数据段互换的处理。
(6)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)
该处理是与先前参照图8(3)描述的处理相同的处理,并且在该处理中,在长方形状态的右半部数据段的每个1字节的数据块和从密钥编排部输出的回合密钥[ki]之间执行异或运算。
在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
当i=1至4,9至12,17至20,25至28,则bi=ai(XOR)ki
否则bi=ai
如上所述,右半部数据段没有变化。
此外,在上述表达式中,(XOR)表示异或运算。
如图16中所示,本发明的第二示例性实施例中的回合运算是由如下(1)至(6)的处理来配置的:
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(3)对于长方形状态的一半数据段的线性转换处理(H-MAT)
(4)在长方形状态的一半数据段和另一半数据段之间执行异或运算(XOR)的处理(XOR)
(5)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(6)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)
换言之,作为配置一个回合运算的处理,这些处理按如下序列来实施:[H-SUB]→[H-SHIFT]→[H-MAT]→[XOR]→[SWAP]→[H-KADD]。
通过重复实施该回合运算来执行输入数据的加密、哈希处理或扩散处理。将参照图18描述示例性实施例2中的数据扩散示例。
在图18中,讨论输入数据的初始状态下的长方形状态220的左上角处的1字节的数据块221(用黑色标记)。在配置该回合运算的每个处理中,由1字节的数据块221的构成比特改变的1字节的数据块用黑色标记。
根据该图可理解到,在实施两个回合的回合运算之后,1字节的数据块221的构成比特的影响波及长方形状态的所有的1字节的数据块。此外,虽然该图图示长方形状态220的左上角处的1字节的数据块221的影响的扩散,但是左半部数据段中所包括的任何1字节的数据块都具有相同的扩散其影响的属性。
接下来,参照图19,以下将描述在示例性实施例2的处理中长方形状态220的右半部数据段的左上角处的1字节的数据块222(即,最上边的行中左起第五个1字节的数据块)的影响。
在该算法中,在第一回合中的处理中必然实施一次交换处理[SWAP],所以右半部数据段中的数据被移动到左半部数据段。在数据被移动到左半部数据段之后,则执行与参照图18描述的对于长方形状态的左上角处的1字节的数据块221的处理相同的处理。因此,这样,在两个回合之后影响了所有数据。因此,1字节的数据块222用总共三个回合影响了长方形状态的所有的1字节的数据块。右半部数据段中所包括的任何1字节的数据块都具有相同的属性。因而,示例性实施例2实现比示例性实施例1更高效的扰乱能力。
因而,在该示例性实施例中,作为配置一个回合运算的处理,实施以下(1)至(6)的处理(即按[H-SUB]→[H-SHIFT]→[H-MAT]→[XOR]→[SWAP]→[H-KADD]序列的这些处理),以实现高效的扰乱能力:
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(3)对于长方形状态的一半数据段的线性转换处理(H-MAT)
(4)在长方形状态的一半数据段和另一半数据段之间执行异或运算(XOR)的处理(XOR)
(5)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(6)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)
以下将讨论该示例性实施例中的运算开销。估计配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块所需的运算开销。如参照图18和19所描述的,配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块最多需要三个回合。
因此,直到配置长方形状态的1个1字节的数据块影响了配置长方形状态的所有的1字节的数据块为止,最多需要三次的非线性转换处理(H-SUB)、移位处理(H-SHIFT)、线性转换处理(H-MAT)、异或运算处理(XOR)、交换处理(SWAP)和密钥适用运算处理(H-KADD)。
对于256比特的长方形状态的处理的运算开销可以如下来计算:
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)的运算开销等于对于上述128比特的正方形状态的非线性转换处理(SUB)的运算开销
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)的运算开销是0,因为其不需要通过门
(3)对于长方形状态的一半数据段的线性转换处理(H-MAT)的运算开销等于对于128比特的正方形状态的线性转换处理(MAT)的运算开销
(4)在长方形状态的一半数据段和另一半数据段之间执行异或运算(XOR)的处理(XOR)的运算开销等于对于128比特的正方形状态的密钥适用运算处理(KADD)的运算开销
(5)将长方形状态的两个一半数据段互换的交换处理(SWAP)的运算开销是0,因为其不需要通过门
(6)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)的运算开销等于对于128比特的正方形状态的密钥适用运算处理(KADD)的运算开销
运算开销以该方式来估计。
因此,在该示例性实施例中,配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块所需的运算开销可以如下来估计:
运算开销=3SUB+3MAT+6KADD
上述用于每个运算的门的数量为
SUB运算=约3200至4800个门
MAT运算=约800至1200个门
KADD运算=约320个门
当运算开销基于上述用于每个运算的门的数量来计算时,运算开销如下:
运算开销=3SUB+3MAT+6KADD=14K个门至20K个门
该运算开销优于先前作为对于长方形状态的处理示例描述的算法[Rijndael]中的转换处理所需的运算开销(26K个门至38K个门),从而通过实施根据该示例性实施例的处理实现了对于长方形状态的更高效的扩散。更具体地,可实现在处理速度、减小装置等方面的改进,并且在扩散性方面的改进允许在加密数据的安全等级或隐蔽等级方面的改进。
[示例性实施例3]
接下来,在图20中图示本发明的第三示例性实施例中的回合运算的配置。示例性实施例3中的回合运算的处理顺序如下:
(1)非线性转换&线性转换&异或运算处理(SUB-MAT-XOR):通过使用线性转换矩阵[M]执行4×4矩阵的运算来实施线性转换(假定将对于长方形状态的一半数据段的每列中的数据执行非线性转换(SUB)的结果看作向量),并且对4×4矩阵的运算的结果执行与右半部数据段的对应列中的数据的异或运算(XOR),并且利用该异或运算(XOR)的结果作为右半部数据段的更新数据
(2)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(3)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(4)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)
(1)至(4)的这些处理配置回合运算。
当概括示例性实施例3的回合运算处理时,数据转换器的数据转换部实施以下回合运算。对于将长方形状态划分为两部分而得到的两个数据段中的一个数据段A实施非线性转换处理和线性转换处理,并且在数据段A和另一数据段B之间实施异或运算,并且利用该异或运算的结果作为数据段B的更新数据,并且进一步地,在数据段A和B之间的交换处理之后,在数据段A和密钥数据之间实施移位处理和异或运算处理。这样的回合处理被实施。
此外,在该示例性实施例中,虽然描述了其中选择长方形状态的左半部数据段并且对于左半部数据段实施主要运算处理(比如非线性转换&线性转换&异或运算处理(SUB-MAT-XOR))的配置,但是也可以使用其中对于右半部数据段实施主要运算的配置。换言之,在以下将描述的处理中,即使这些处理是对于右半部数据段而不是左半部数据段来执行的,也得到一样的效果。
在上述处理中,以下处理与先前在示例性实施例1和2中描述的处理相同,因此将不再更多地描述。
(2)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(3)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(4)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)
以下将参照图21描述(1)非线性转换&线性转换&异或运算处理(SUB-MAT-XOR)。
通过使用线性转换矩阵[M]执行4×4矩阵的运算来实施线性转换(假定将对于长方形状态的一半数据段的每列中的数据执行非线性转换(SUB)的结果看作向量),并且在4×4矩阵的运算的结果和右半部数据段的对应列中的数据之间执行异或运算(XOR),并且利用该异或运算(XOR)的结果作为右半部数据段的更新数据。左半部数据段没有更新。
在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
(1-1)左半部数据段
t(bi,bi+8,bi+16,bi+24)=t(ai,ai+8,ai+16,ai+24)
i=1,2,3,4
(1-2)右半部数据段
t(bi+4,bi+12,bi+20,bi+28)=[Mt(S(ai),S(ai+8),S(ai+16),S(ai+24))](XOR)t(ai+4,ai+12,ai+20,ai+28)
i=1,2,3,4
此外,t()表示通过将矩阵中的行列互换形成的转置矩阵。
即,在对于左半部数据段的左起第一列中的数据执行了非线性转换(SUB)之后,使用预设的线性转换矩阵[M]执行4×4矩阵的运算,并利用在4×4矩阵的运算的结果和右半部数据段的左起第一列中的(长方形状态中左起第五列中的)数据之间执行异或运算(XOR)的结果来作为右半部数据段中左起第一列中的(长方形状态中左起第五列中的)数据的更新数据。下文中,以同样方式,在使左半部数据段的左起第二列中的数据经受非线性转换(SUB)之后,使用预设的线性转换矩阵[M]执行4×4矩阵的运算,并且在4×4矩阵的运算的结果和右半部数据段的左起第二列中的(长方形状态中左起第六列中的)数据之间执行异或运算(XOR),并利用该异或运算的结果来作为右半部数据段中左起第二列中的(长方形状态中左起第六列中的)数据的更新数据。下文中执行相同的处理。
如图20中所示,本发明的第三示例性实施例中的回合运算是由以下(1)至(4)的处理来配置的:
(1)非线性转换&线性转换&异或运算处理(SUB-MAT-XOR):通过使用线性转换矩阵[M]执行4×4矩阵的运算来实施线性转换(假定将对于长方形状态的一半数据段的每列中的数据执行非线性转换(SUB)的结果看作向量),并且在4×4矩阵的运算的结果和右半部数据段的对应列中的数据之间执行异或运算(XOR),并且利用该异或运算(XOR)的结果作为右半部数据段的更新数据
(2)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(3)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(4)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)
换言之,作为配置一个回合运算的处理,这些处理按如下序列来实施:[SUB-MAT-XOR]→[SWAP]→[H-SHIFT]→[H-KADD]。
通过重复实施该回合运算来执行输入数据的加密、哈希处理或扩散处理。将参照图22描述示例性实施例3中的数据扩散示例。
在图22中,讨论输入数据的初始状态下的长方形状态230的左上角处的1字节的数据块231(用黑色标记)。在配置该回合运算的每个处理中,被1字节的数据块231的构成比特改变的1字节的数据块用黑色标记。
根据该图可理解到,在完成两个回合的回合运算之后,1字节的数据块231的影响波及包括左半部数据段的所有的1字节的数据块和右半部数据段的4个1字节的数据块在内的总共20个1字节的数据块,并且在完成三个回合时,该影响波及长方形状态230的所有的1字节的数据块。此外,虽然该图图示长方形状态230的左上角处的1字节的数据块231的影响的扩散,但是左半部数据段中所包括的任何1字节的数据块都具有相同的扩散其影响的属性。
接下来,参照图23,以下将描述在示例性实施例3的处理中长方形状态230的右半部数据段的左上角处的1字节的数据块232(即,最上边的行中左起第五个1字节的数据块)的影响。
在该算法中,如在上述示例性实施例1和2的情况下一样,在第一回合中的处理中必然实施一次交换处理[SWAP],所以右半部数据段中的数据被移动到左半部数据段。在数据被移动到左半部数据段之后,则执行与参照图22描述的对于长方形状态的左上角处的1字节的数据块231的处理相同的处理。因此,这样,在三个回合之后影响所有数据。因此,1字节的数据块232用总共四个回合影响了长方形状态的所有的1字节的数据块。右半部数据段中所包括的任何1字节的数据块都具有相同的扩散其影响的属性。
此外,在示例性实施例3的方式中,不执行如下处理:用各个运算处理(比如非线性转换处理(SUB)或使用矩阵[M]的线性转换处理(MAT))中的输出信息重写输入信息。换言之,在图20中示出的回合运算处理的(1)非线性转换&线性转换&异或运算处理(SUB-MAT-XOR)中,对于数据段A实施非线性转换处理和移位处理以及线性转换处理,但是不通过该结果的数据来更新数据段A。
因此,例如,重复实施图20中示出的回合运算以生成加密结果,并且在解密该加密结果的算法中,允许数据被恢复而不使用非线性转换或矩阵运算的逆运算。因此,当实施整个数据置换处理的反函数时,不需要实施非线性转换处理(SUB)或使用矩阵[M]的线性转换处理(MAT)的反函数,从而示例性实施例3具有使装置减小或实施成本降低的效果。因而,示例性实施例3具有等于上述示例性实施例1中的扰乱能力的扰乱能力,并且具有更优的实施特性。
在该示例性示例中,实施以下(1)至(4)的处理(即按[SUB-MAT-XOR]→[SWAP]→[H-SHIFT]→[H-KADD]的序列的这些处理)作为配置一个回合运算的处理,以实现高效的扰乱能力:
(1)非线性转换&线性转换&异或运算处理(SUB-MAT-XOR):通过使用线性转换矩阵[M]执行4×4矩阵的运算来实施线性转换(假定将对于长方形状态的一半数据段的每列中的数据执行非线性转换(SUB)的结果看作向量),并且在4×4矩阵的运算的结果和右半部数据段的对应列中的数据之间执行异或运算(XOR),并且利用该异或运算(XOR)的结果作为右半部数据段的更新数据
(2)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(3)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(4)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算处理(H-KADD)
以下将讨论该示例性实施例中的运算开销。估计配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块所需的运算开销。如参照图22和23所描述的,配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块最多需要四个回合。
因此,直到配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块为止,最多需要四次的非线性转换&线性转换&异或运算处理(SUB-MAT-XOR)、交换处理(SWAP)、移位处理(H-SHIFT)和密钥适用运算的处理(H-KADD)。
对于256比特的长方形状态的处理的运算开销可以如下来计算。
(1)非线性转换&线性转换&异或运算处理(SUB-MAT-XOR)的运算开销等于对于上述128比特的正方形状态执行全部非线性转换处理(SUB)、线性转换处理(MAT)和密钥适用运算处理(KADD)的运算开销
(2)将长方形状态的两个一半数据段互换的交换处理(SWAP)的运算开销是0,因为其不需要通过门
(3)对于长方形状态的一半数据段的移位处理(H-SHIFT)的运算开销是0,因为其不需要通过门
(4)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算处理(H-KADD)的运算开销等于对于128比特的正方形状态的密钥适用运算处理(KADD)的运算开销
运算开销以该方式来估计。
因此,在该示例性实施例中,配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块所需的运算开销可以如下来估计:
运算开销=4SUB+4MAT+8KADD
上述用于每个运算的门的数量为
SUB运算=约3200至4800个门
MAT运算=约800至1200个门
KADD运算=约320个门
当运算开销基于上述用于每个运算的门的数量来计算时,运算开销如下:
运算开销=4SUB+4MAT+8KADD=19K个门至27K个门
该运算开销优于先前作为对于长方形状态的处理示例描述的算法[Rijndael]中的转换处理所需的运算开销(26K个门至38K个门),从而通过实施根据该示例性实施例的处理实现了对于长方形状态的更高效的扩散。更具体地,可实现在处理速度、减小装置等方面的改进,并且在扩散性方面的改进允许在加密数据的安全等级或隐蔽等级方面的改进。
[示例性实施例4]
接下来,在图24中图示本发明的第四示例性实施例中的回合运算的配置。示例性实施例4中的回合运算的处理顺序如下:
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(3)对于长方形状态的一半数据段的线性转换处理(H-MAT)
(4)在长方形状态的一半数据段和另一半数据段之间执行异或运算(XOR)的处理(XOR2)
(5)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(6)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)
(1)至(6)的这些处理配置回合运算。
当概括示例性实施例4的回合运算处理时,数据转换器的数据转换部实施以下回合运算。对于将长方形状态划分为两部分而得到的两个数据段中的一个数据段A实施非线性转换处理、移位处理和线性转换处理,并且实施与另一数据段B的异或运算,并且利用该异或运算的结果作为数据段A的更新数据,并且在数据段A和B之间的交换处理之后,在数据段A和密钥数据之间实施异或运算处理。这样的回合处理被实施。
此外,在该示例性实施例中,虽然描述了其中选择长方形状态的左半部数据段并且对于左半部数据段实施主要运算处理(比如非线性转换处理(H-SUB))的配置,但是也可以使用其中对于右半部数据段实施主要运算的配置。换言之,在以下将描述的处理中,即使这些处理是对于右半部数据段而不是左半部数据段来执行的,也得到一样的效果。
在示例性实施例4的算法中,(1)非线性转换处理(H-SUB)、(2)移位处理(H-SHIFT)、(3)线性转换处理(H-MAT)、(5)交换处理(SWAP)和(6)密钥适用处理(H-KADD)的这些处理与先前参照图16描述的示例性实施例2中的(1)至(6)的处理中的相应处理相同,且仅有处理(4)是不同的。
在示例性实施例2中的(4)异或运算(XOR)中,更新长方形状态的右半部数据段被更新而不更新左半部数据段,但是在示例性实施例4中,实施其中不更新长方形状态的右半部数据段而更新左半部数据段的处理。
将参照图25描述该示例性实施例中在长方形状态的一部分数据段和另一部分数据段之间执行异或运算(XOR)的处理(XOR2)。
执行在长方形状态的左半部数据段中的一列中的数据和长方形状态的右半部数据段中的对应列中的数据之间的异或运算(XOR),并利用该异或运算(XOR)的结果作为左半部数据段的更新数据。右半部数据段没有更新。
在1字节的输入ai和转换处理后的1字节的输出bi之间的关系是:
(3-1)左半部数据段
t(bi,bi+8,bi+16,bi+24)=t(ai,ai+8,ai+16,ai+24)(XOR)t(ai+4,ai+12,ai+20,ai+28)
i=1,2,3,4
(3-2)右半部数据段
t(bi+4,bi+12,bi+20,bi+28)=t(ai,ai+12,ai+20,ai+28)
i=1,2,3,4
此外,t()表示通过将矩阵中的行列互换形成的转置矩阵。
即,实施在左半部数据段的左起第一列中的数据和右半部数据段的左起第一列中的(长方形状态中左起第五列中的)数据之间的异或运算(XOR),并利用该异或运算(XOR)的结果来作为左半部数据段的左起第一列中的数据的更新数据。下文中,以同样方式,在左半部数据段的左起第二列中的数据和右半部数据段的左起第二列中的(长方形状态中左起第六列中的)数据之间实施异或运算(XOR),并利用该异或运算(XOR)的结果来作为左半部数据段的左起第二列中的数据的更新数据。下文中执行同样的处理。
如图24中所示,本发明的第四示例性实施例中的回合运算是由以下(1)至(6)的处理来配置的:
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(3)对于长方形状态的一半数据段的线性转换处理(H-MAT)
(4)在长方形状态的一半数据段和另一半数据段之间执行异或运算(XOR)的处理(XOR2)
(5)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(6)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)
换言之,作为配置一个回合运算的处理,这些处理按如下序列来实施:[H-SUB]→[H-SHIFT]→[H-MAT]→[XOR2]→[SWAP]→[H-KADD]。
通过重复实施该回合运算来执行输入数据的加密、哈希处理或扩散处理。将参照图26描述示例性实施例4中的数据扩散示例。
在图26中,讨论输入数据的初始状态下的长方形状态240的左上角处的1字节的数据块241(用黑色标记)。在配置该回合运算的每个处理中,由1字节的数据块241的构成比特改变的1字节的数据块用黑色标记。
根据该图可理解到,在完成四个回合的回合运算时,1字节的数据块241的构成比特的影响波及长方形状态的所有的1字节的数据块。此外,虽然该图图示长方形状态240的左上角处的1字节的数据块24的影响的扩散,但是左半部数据段中所包括的任何1字节的数据块都具有相同的扩散其影响的属性。
此外,关于在右半部数据段中所包括的数据的影响,如在先前描述的示例性实施例1至3的情况下一样,第一回合中的处理中必然实施一次交换处理[SWAP],从而右半部数据段与左半部数据段之间的互换得以实施,并且在右半部数据段上的数据被移动到左半部数据段之后,则按图26中示出的顺序实施后面的处理,结果,在完成4+1=5个回合时影响长方形状态的所有的1字节的数据块。右半部数据段中所包括的任何1字节的数据块都具有相同的属性。
作为示例性实施例4的特性,在给定回合中输入的一半数据段在先前的回合中没有更新,因此,当数据被适当地存储时,允许下一回合中的处理在启动时不必等待先前回合中的处理完成。通过这样的处理允许高速处理。更具体地,示例性实施例4具有其中允许处理紧接在异或运算[XOR2]之前并行实施的配置。
因而,在该示例性实施例中,实施以下(1)至(6)的处理(即按[H-SUB]→[H-SHIFT]→[H-MAT]→[XOR2]→[SWAP]→[H-KADD]的序列的这些处理)作为配置一个回合运算的处理,以实现高效的扰乱能力:
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(3)对于长方形状态的一半数据段的线性转换处理(H-MAT)
(4)在长方形状态的一半数据段和另一半数据段之间执行异或运算(XOR)的处理(XOR2)
(5)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(6)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)
以下将讨论该示例性实施例中的运算开销。估计配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块所需的运算开销。如参照图26所描述的,配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块最多需要五个回合。
因此,直到配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块为止,最多需要五次的非线性转换处理(H-SUB)、移位处理(H-SHIFT)、线性转换处理(H-MAT)、异或运算处理(MAT-XOR2)、交换处理(SWAP)和密钥适用运算处理(H-KADD)。
对于256比特的长方形状态的处理的运算开销可以如下来计算:
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)的运算开销等于对于上述128比特的正方形状态的非线性转换处理(SUB)的运算开销
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)的运算开销是0,因为其不需要通过门
(3)对于长方形状态的一半数据段的线性转换处理(H-MAT)的运算开销等于对于128比特的正方形状态的线性转换处理(MAT)的运算开销
(4)在长方形状态的一半数据段和另一半数据段之间执行异或运算(XOR)的处理(XOR)的运算开销等于对于128比特的正方形状态的密钥适用运算处理(KADD)的运算开销
(5)将长方形状态的两个一半数据段互换的交换处理(SWAP)的运算开销是0,因为其不需要通过门
(6)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算处理(H-KADD)的运算开销等于对于128比特的正方形状态的密钥适用运算处理(KADD)的运算开销
运算开销以该方式来估计。
因此,在该示例性实施例中,配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块所需的运算开销可以如下来估计:
运算开销=5SUB+5MAT+10KADD
上述用于每个运算的门的数量为
SUB运算=约3200至4800个门
MAT运算=约800至1200个门
KADD运算=约320个门
当运算开销基于上述用于每个运算的门的数量来计算时,运算开销如下:
运算开销=5SUB+5MAT+10KADD=23K个门至33K个门
该运算开销优于先前作为对于长方形状态的处理示例描述的算法[Rijndael]中的转换处理所需的运算开销(26K个门至38K个门),从而通过实施根据该示例性实施例的处理实现了对于长方形状态的更高效的扩散。更具体地,可实现在处理速度、减小装置等方面的改进,并且在扩散性方面的改进允许在加密数据的安全等级或隐蔽等级方面的改进。
[关于移位处理(SHIFT)的广义化配置]
在上述示例性实施例1至4中,描述了其中实施如下[H-SHIFT]的示例:在[H-SHIFT]中仅对于长方形状态的左半部数据段执行移位处理。如以上已描述的,在移位处理(SHIFT)中,将各行中的1字节的数据块以各自不同的值轮换移位,而在本发明的示例性实施例1至4中实施的移位处理(H-SHIFT)所需的属性如下。
*属于同一列的1字节的数据块被移位,以便在移位运算后可靠地属于不同的列。
当满足上述属性时,移位运算不一定是基于轮换的移位运算。
此外,即使在每个示例性实施例中所描述的移位处理(H-SHIFT)都具有其中对于长方形状态的两个数据段都实施移位运算的配置,也得到在每个上述示例性实施例中所描述的效果。如上所述,允许假定移位处理的运算开销是0,所以即使要经受该处理的目标增加,运算开销也不增加。
图27图示了如下处理的算法:在该处理中对于长方形状态的左半部数据段和右半部数据段都执行上述示例性实施例1中的移位处理(H-SHIFT)。在长方形状态的一半数据段和另一半数据段分别是[SL]和[SR]的情况下,回合运算的算法包括以下处理:
(1)对于长方形状态的一半数据段[SL]的非线性转换处理(H-SUB)
(2)对于长方形状态的一半数据段[SL]和[SR]的移位处理(H-SHIFT)
(3)对于长方形状态的一半数据段[SL]执行线性转换处理并随后执行与另一半数据段[SR]的异或运算(XOR)的处理(MAT-XOR)
(4)将长方形状态的两个一半数据段[SL]和[SR]互换的交换处理(SWAP)
(5)在长方形状态的一半数据段[SL]和回合密钥[ki]之间执行异或运算(XOR)的处理(H-KADD)
即使用这样的配置,也得到了与示例性实施例1中的上述扩散效果相同的效果。该配置也应用到示例性实施例2、3和4,并且可以不是对于在每个示例性实施例中所描述的那侧上的一半数据段而是对于另一半数据段执行该移位处理。此外,对于左半部数据段和右半部数据段的移位处理的模式可以是相同的或者彼此不同的。
[关于示例性实施例1至4的广义化配置]
在上述示例性实施例1、2、3和4中,描述了对于具有4行×8列的长方形状态(由总共32个1字节的数据块配置并包含32字节(256比特)的数据)的处理示例。
本发明不限于上述示例性实施例,并可应用于具有多种配置的长方形状态。更具体地,本发明可应用于具有偶数(2n)个列(从而被允许划分为左部分和右部分)和任意(m)个行的长方形状态(2n≠m)。
例如,如图28中所示,在具有包含2mn个1字节的数据块a1至a2mn的2n列和m行的长方形状态中,对于总共包含2mn个1字节的数据块的数据,执行通过在上述示例性实施例1至4中描述的多种转换处理(比如非线性转换(H-SUB))的转换。在包括在长方形状态中的作为转换结果的1字节的数据块是b1至b2mn的情况下,每个示例性实施例中定义的每个处理被允许用如图29中所示的以下表达式表示为广义形式。
(1)非线性转换处理(H-SUB)
当1≤i mod 2n≤n,则bi=S(ai)
否则bi=ai
其中S()表示非线性转换处理。
(2)线性转换和异或运算(MAT-XOR)
对于i=1...n    
t(bi,bi+2n,...,bi+2(m-1)n)=t(ai,ai+2n,...,ai+2(m-1)n)
t(bi+n,bi+3n,...,bi+(2m-1)n)=[Mt(ai,ai+2n,...,ai+2(m-1)n)](XOR)t(ai+n,ai+3n,...,ai+(2 m-1)n)
其中t()表示转置矩阵,
[M]是线性转换矩阵,
(XOR)是异或运算。
(3)线性转换处理(H-MAT)
当i=1...n,则t(bi,bi+2n,...,bi+2(m-1)n)=Mt(ai,ai+2n,...,ai+2(m-1)n)
否则t(bi+n,bi+2n,...,bi+(2m-1)n)=t(ai+n,ai+3n,...,ai+(2m-1)n)
其中t()表示转置矩阵,
[M]是线性转换矩阵。
(4)密钥适用运算(H-KADD)
当1≤i mod 2n≤n,则bi=ai(XOR)ki
否则bi=ai
其中(XOR)是异或运算,
ki是密钥数据。
(5)异或运算处理(XOR)
对于i=1...n
t(bi,bi+2n,...,bi+2(m-1)n)=t(ai,ai+2n,...,ai+2(m-1)n)
t(bi+n,bi+3n,...,bi+(2m-1)n)=t(ai,ai+2n,...,ai+2(m-1)n)(XOR)t(ai+n,ai+3n,...,ai+(2m-1)n)
其中t()表示转置矩阵,
(XOR)是异或运算。
(6)非线性转换&线性转换&异或运算处理(SUB-MAT-XOR)
对于i=1...n
t(bi,bi+2n,...,bi+2(m-1)n)=t(ai,ai+2n,...,ai+2(m-1)n)
t(bi+n,bi+3n,...,bi+(2m-1)n)=[Mt(S(ai),S(ai+2n),...,S(ai+2(m-1)n)](XOR)t(ai+n,ai+3n,...,ai+(2m-1)n)
其中t()表示转置矩阵,
[M]是线性转换矩阵,
(XOR)是异或运算。
因而,在上述示例性实施例中描述的每个处理被允许通过对于长方形状态(具有包含2mn个1字节的数据块a1至a2mn的2n列和m行)的运算中的输入[a1至a2mn]和输出[b1至b2mn]的关系式来定义为如上所述的广义形式。
此外,关于移位处理(H-SHIFT),在上述示例性实施例中,虽然描述了其中长方形状态的一半数据段是正方形状态的示例,但是在具有任意形状的长方形状态的情况下,一半数据段并不限于正方形状态。因此,以下将描述也包括这样的情况的移位处理(H-SHIFT)的广义形式的定义。
在具有m行和2n列的长方形状态中,作为对于要经受移位处理(H-SHIFT)的一半数据段(具有m行和n列)的移位处理(H-SHIFT)所需的处理规则包括如下规则。
*在满足m≤n的关系的情况下:在具有m行和2n列的长方形状态中,属于要经受移位处理(H-SHIFT)的一半数据段(具有m行和n列)中同一列的1字节的数据块被移位,以便确保在移位处理后属于不同的列。
*在满足m>n的关系的情况下:属于要经受移位处理(H-SHIFT)的一半数据段(具有m行和n列)中同一列中的1字节的数据块被移位,以使得这些数据块在移位处理后的任意列中的块数包含在(m/n)-1以上、(m/n)+1以下的范围内。
换言之,在实施移位处理时,实施移位处理以使得:对于包括在具有m行和2n列数据的长方形矩阵中的、要经受移位处理(H-SHIFT)的、具有m行和n列的一半数据段,在满足m≤n的关系的情况下,在移位处理前属于同一列的1字节的数据块被移位,以便属于不同的列,且在满足m>n的关系的情况下,在位移处理前属于同一列的1字节的数据块被移位,以使得这些数据块在移位处理后的任意列中的块数包含在(m/n)-1以上、(m/n)+1以下的范围内。
在具有m行和2n列的长方形状态中,根据上述规则执行对于要经受移位处理(H-SHIFT)的一半数据段(具有m行和n列)的移位处理(H-SHIFT)。当执行根据这些规则的处理时,保证某一列中的数据被高效地扩散到多个列。
[示例性实施例1至4的广义化]
在上述示例性实施例1至4中,虽然描述了其中长方形状态的一半数据段是正方形状态的示例,但是如上所述,本发明不仅可应用于具有这样特定形状的长方形状态,也可应用于具有任意形状的长方形状态,只要该长方形状态包括允许被划分为两部分的偶数列。以下将介绍数据扩散示例,其中示例性实施例1至4中的每个都是在长方形状态的一半数据段不是正方形状态的情况下应用的。
(示例性实施例1的广义化的示例)
图30图示了在如下情况下的数据扩散示例:其中对于其一半数据段不是正方形状态的广义化的长方形状态310实施先前在示例性实施例1中描述的回合运算。讨论具有4行12列的48字节的长方形状态310的左上角处的1字节的数据块311(用黑色标记)。在配置该回合运算的每个处理中,由1字节的数据块311的构成比特改变的1字节的数据块用黑色标记。
示例性实施例1的回合运算算法是这样的处理:实施以下(1)至(5)的处理(即按[H-SUB]→[H-SHIFT]→[MAT-XOR]→[SWAP]→[H-KADD]序列的这些处理)作为配置一个回合运算的处理:
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(3)对于长方形状态的一半数据段执行线性转换处理并随后在这一半数据段和另一半数据段之间执行异或运算(XOR)的处理(MAT-XOR)
(4)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(5)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算(XOR)的处理(H-KADD)
根据该图可理解到,在完成四个回合的回合运算时,1字节的数据块311的影响波及长方形状态310中的所有48个1字节的数据块。此外,虽然该图图示长方形状态310的左上角处的1字节的数据块311的影响的扩散,但是左半部数据段中所包括的任何1字节的数据块都具有相同的扩散其影响的属性。
此外,关于包括在右半部数据段中的数据的影响,如在上述示例性实施例的情况下一样,一个回合中的处理中必然实施一次交换[SWAP]运算,从而左半部数据段与右半部数据段之间的互换得以实施,并且在右半部数据段上的数据被移动到左半部数据段之后,则以图30中示出的顺序实施后面的处理,结果,在完成4+1=5个回合时影响长方形状态的所有的1字节的数据块。右半部数据段中所包括的任何1字节的数据块都具有相同的属性。
作为结果,配置长方形状态的1个1字节的数据块被允许最多用五个回合影响配置长方形状态的所有的1字节的数据块。配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块所需的运算开销可以如下来估计:
运算开销=7.5SUB+7.5MAT+15KADD
当基于上述门的数量来计算运算开销时,运算开销如下:
运算开销=7.5SUB+7.5MAT+15KADD
=35K个门至50K个门
在先前作为对于长方形状态的处理示例描述的算法[Rijndael]被扩展到4×12的状态的模式中,需要四个回合,以及上述转换处理所需的运算开销优于12SUB+12MAT+12KADD(52K个门至76K个门),从而通过实施根据该示例性实施例的处理实现了对于长方形状态的更高效的扩散。更具体地,可实现在处理速度、减小装置等方面的改进,并且在扩散性方面的改进允许在加密数据的安全等级或隐蔽等级方面的改进。
(示例性实施例2的广义化的示例)
图31图示了在如下情况下的数据扩散示例:其中对于其一半数据段不是正方形状态的广义化的长方形状态320实施先前在示例性实施例2中描述的回合运算。讨论具有4行12列的48字节的长方形状态320的左上角处的1字节的数据块321(用黑色标记)。在配置该回合运算的每个处理中,由1字节的数据块321的构成比特改变的1字节的数据块用黑色标记。
示例性实施例2的回合运算算法是这样的处理:实施以下(1)至(6)的处理(即按[H-SUB]→[H-SHIFT]→[H-MAT]→[XOR]→[SWAP]→[H-KADD]序列的这些处理)作为配置一个回合运算的处理:
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(3)对于长方形状态的一半数据段的线性转换处理(H-MAT)
(4)在长方形状态的一半数据段和另一半数据段之间执行异或运算(XOR)的处理(XOR)
(5)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(6)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算(XOR)的处理(H-KADD)
根据图31可理解到,在完成三个回合的回合运算时,1字节的数据块321的影响波及长方形状态320中的所有48个1字节的数据块。此外,虽然该图图示长方形状态320的左上角处的1字节的数据块321的影响的扩散,但是左半部数据段中所包括的任何1字节的数据块都具有相同的扩散其影响的属性。
此外,关于包括在右半部数据段中的数据的影响,如在上述示例性实施例的情况下一样,一个回合中的处理中必然实施一次交换[SWAP]运算,从而左半部数据段与右半部数据段之间的互换得以实施,并且在右半部数据段上的数据被移动到左半部数据段之后,则以图31中示出的顺序实施后面的处理,结果,在完成3+1=4个回合时影响长方形状态的所有的1字节的数据块。右半部数据段中所包括的任何1字节的数据块都具有相同的属性。
作为结果,配置长方形状态的1个1字节的数据块被允许最多用四个回合影响配置长方形状态的所有的1字节的数据块。配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块所需的运算开销可以如下来估计:
运算开销=6SUB+6MAT+12KADD
当基于上述门的数量来计算运算开销时,运算开销如下:
运算开销=6SUB+6MAT+12KADD
=28K个门至40K个门
该运算开销优于在先前作为对于长方形状态的处理示例描述的算法[Rijndael]被扩展到4×12的状态的模式中所需的运算开销(52K个门至76K个门),从而通过实施根据该示例性实施例的处理实现了对于长方形状态的更高效的扩散。更具体地,可实现在处理速度、减小装置等方面的改进,并且在扩散性方面的改进允许在加密数据的安全等级或隐蔽等级方面的改进。
(示例性实施例3的广义化的示例)
图32图示了在如下情况下的数据扩散示例:其中对于其一半数据段不是正方形状态的广义化的长方形状态330实施先前在示例性实施例3中描述的回合运算。讨论具有4行12列的48字节的长方形状态330的左上角处的1字节的数据块331(用黑色标记)。在配置该回合运算的每个处理中,由1字节的数据块331的构成比特改变的1字节的数据块用黑色标记。
示例性实施例3的回合运算算法是这样的处理:实施以下(1)至(4)的处理(即按[SUB-MAT-XOR]→[SWAP]→[H-SHIFT]→[H-KADD]序列的这些处理)作为配置一个回合运算的处理:
(1)非线性转换&线性转换&异或运算处理(SUB-MAT-XOR):通过使用线性转换矩阵[M]执行4×4矩阵的运算来实施线性转换(假定将对于长方形状态的一半数据段的每列中的数据执行非线性转换(SUB)的结果看作向量),并在4×4矩阵的运算的结果和右半部数据段的对应列中的数据之间执行异或运算(XOR),并利用该异或运算(XOR)的结果作为右半部数据段的更新数据
(2)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(3)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(4)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)
根据图32可理解到,在完成四个回合的回合运算时,1字节的数据块331的影响波及长方形状态330中的所有48个1字节的数据块。此外,虽然该图图示长方形状态330的左上角处的1字节的数据块331的影响的扩散,但是左半部数据段中所包括的任何1字节的数据块都具有相同的扩散其影响的属性。
此外,关于包括在右半部数据段中的数据的影响,如在上述示例性实施例的情况下一样,一个回合中的处理中必然实施一次交换[SWAP]运算,从而左半部数据段与右半部数据段之间的互换得以实施,并且在右半部数据段上的数据被移动到左半部数据段之后,则以图32中示出的顺序实施后面的处理,结果,在完成4+1=5个回合时影响长方形状态的所有的1字节的数据块。右半部数据段中所包括的任何1字节的数据块都具有相同的属性。
作为结果,配置长方形状态的1个1字节的数据块被允许最多用五个回合影响配置长方形状态的所有的1字节的数据块。配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块所需的运算开销可以如下来估计:
运算开销=7.5SUB+7.5MAT+15KADD
当基于上述门的数量来计算运算开销时,运算开销如下:
运算开销=7.5SUB+7.5MAT+15KADD
=25K个门至50K个门
该运算开销优于在先前作为对于长方形状态的处理示例描述的算法[Rijndael]被扩展到4×12的状态的模式中所需的运算开销(52K个门至76K个门),从而通过实施根据该示例性实施例的处理实现了对于长方形状态的更高效的扩散。更具体地,可实现在处理速度、减小装置等方面的改进,并且在扩散性方面的改进允许在加密数据的安全等级或隐蔽等级方面的改进。
(示例性实施例4的广义化的示例)
图33和34图示了在如下情况下的数据扩散示例:其中对于其一半数据段不是正方形状态的广义化的长方形状态340实施先前在示例性实施例4中描述的回合运算。讨论具有4行12列的48字节的长方形状态340的左上角处的1字节的数据块341(用黑色标记)。在配置该回合运算的每个处理中,由1字节的数据块341的构成比特改变的1字节的数据块用黑色标记。
示例性实施例4的回合运算算法是这样的处理:实施以下(1)至(6)的处理(即按[H-SUB]→[H-SHIFT]→[H-MAT]→[XOR2]→[SWAP]→[H-KADD]序列的这些处理)作为配置一个回合运算的处理:
(1)对于长方形状态的一半数据段的非线性转换处理(H-SUB)
(2)对于长方形状态的一半数据段的移位处理(H-SHIFT)
(3)对于长方形状态的一半数据段的线性转换处理(H-MAT)
(4)在长方形状态的一半数据段和另一半数据段之间执行异或运算(XOR)的处理(XOR2)
(5)将长方形状态的两个一半数据段互换的交换处理(SWAP)
(6)在回合密钥[ki]和长方形状态的一半数据段之间执行异或运算的处理(H-KADD)
根据图33和图34可理解到,在完成六个回合的回合运算时,1字节的数据块341的影响波及长方形状态340中的所有48个1字节的数据块。此外,虽然这些图图示长方形状态340的左上角处的1字节的数据块341的影响的扩散,但是左半部数据段中所包括的任何1字节的数据块都具有相同的扩散其影响的属性。
此外,关于包括在右半部数据段中的数据的影响,如在上述示例性实施例的情况下一样,一个回合中的处理中必然实施一次交换[SWAP]运算,从而左半部数据段与右半部数据段之间的互换得以实施,并且在右半部数据段上的数据被移动到左半部数据段之后,则以图33和图34中示出的顺序实施后面的处理,结果,在完成6+1=7个回合时影响长方形状态的所有的1字节的数据块。右半部数据段中所包括的任何1字节的数据块都具有相同的属性。
作为结果,配置长方形状态的1个1字节的数据块被允许最多用七个回合影响配置长方形状态的所有的1字节的数据块。配置长方形状态的1个1字节的数据块影响配置长方形状态的所有的1字节的数据块所需的运算开销可以如下来估计:
运算开销=10.5SUB+10.5MAT+21KADD
当基于上述门的数量来计算运算开销时,运算开销如下:
运算开销=10.5SUB+10.5MAT+21KADD
=50K个门至70K个门
该运算开销优于在先前作为对于长方形状态的处理示例描述的算法[Rijndael]被扩展到4×12的状态的模式中所需的运算开销(52K个门至76K个门),从而通过实施根据该示例性实施例的处理实现了对于长方形状态的更高效的扩散。更具体地,可实现在处理速度、减小装置等方面的改进,并且在扩散性方面的改进允许在加密数据的安全等级或隐蔽等级方面的改进。
[关于改变回合运算中的处理的顺序]
在上述示例性实施例中,回合运算中的处理顺序被描述为一个序列。即示例性实施例1、2、3和4中的回合运算以如下序列来实施:
示例性实施例1
[H-SUB]→[H-SHIFT]→[MAT-XOR]→[SWAP]→[H-KADD]
示例性实施例2
[H-SUB]→[H-SHIFT]→[H-MAT]→[XOR]→[SWAP]→[H-KADD]
示例性实施例3
[SUB-MAT-XOR]→[SWAP]→[H-SHIFT]→[H-KADD]
示例性实施例4
[H-SUB]→[H-SHIFT]→[H-MAT]→[XOR2]→[SWAP]→[H-KADD]
然而,回合运算中的顺序不限于此,并且在回合运算中实施的处理的顺序可以被改变。例如,很容易利用任何其它处理作为回合中的第一处理从而改变回合的结果,由此来将该回合看作具有不同的回合配置。
例如,在示例性实施例1或示例性实施例2中,即使非线性转换处理[H-SUB]和移位处理[H-SHIFT]在序列中的位置互换也不影响扩散性,并且在任意示例性实施例中,即使将密钥适用运算[H-KADD]插入任何位置也不影响扩散性。因此,在不改变该模式中所描述的扩散性的情况下可以改变处理的顺序,并且这样的配置包括在本发明的范围中。
[DSM的应用]
在上述示例性实施例中,作为在线性转换处理[H-MAT]中使用的矩阵,共用的固定矩阵[M]被允许在每个回合中使用,而非其中不同回合可以使用不同矩阵作为矩阵[M]的配置。在其中应用了所谓DSM(扩散交换机制,Diffusion Switching Mechanism)的配置中,允许进一步改进安全等级。
以下将描述在示例性实施例2中应用DSM的情况下的示例。如以上参照图16所述,示例性实施例2中的回合运算是重复实施由如下多个处理配置的回合运算的处理:
[H-SUB]→[H-SHIFT]→[H-MAT]→[XOR]→[SWAP]→[H-KADD]
通过给定回合中的线性转换处理[H-MAT],对于长方形状态的左半部数据段中所包括的每列通过线性转换矩阵[M]执行矩阵运算的结果被存储在该列中。由线性转换处理[H-MAT]更新的左半部数据段通过交换[SWAP]处理被移动到右半部数据段。
DSM具有这样的配置:其中在下一回合中的线性转换处理[H-MAT]中,存储此时对于长方形状态的左半部数据段中所包括的每列通过线性转换矩阵[M]执行矩阵运算的结果,并且通过紧接在该线性转换处理[H-MAT]之后的异或运算处理[XOR]进行左半部数据段与右半部数据段的异或运算。
根据刚完成上述异或运算处理[XOR]后的右半部数据段中所包括的每列中的数据,显然,两个矩阵运算的结果被加到每一列。当配置长方形状态的一个列的向量由t(X,Y,Z,W)表示时,允许建立以下广义表达式。
[数学表达式2]
W X Y Z = M a b c d ⊕ M e f g h = M a ⊕ e b ⊕ f c ⊕ g d ⊕ h
在该情况下,(a,b,c,d)是列向量的元素,被输入到前一回合中的线性转换处理[H-MAT]中的矩阵之中,而(e,f,g,h)是列向量的元素,被输入到下一回合中的线性转换处理[H-MAT]中的矩阵之中。
此时,关注包括在(a,b,c,d,e,f,g,h)中的非零元素的数量和包括在作为结果数据的(W,X,Y,Z)中的非零元素的数量之间的关系。例如,在a=e≠0,b=c=d=f=g=0的情况下,显然,W=X=Y=Z=0成立。尽管两个元素a和e不是0,但在运算结果中不包括非零元素,从而出现包括在输入/输出中的非零元素的总数是2的情况。
在置换函数中,所希望的是:给定的数据影响尽可能多的数据,并且防止包括在输入/输出中的非零元素的总数位于尽可能低的水平。这是应对差分攻击或线性攻击的措施。
作为应对这样的漏洞的措施,应用其中使用多个不同的矩阵(例如两个矩阵[M1]和[M2])而非一个固定的矩阵作为在所有回合中使用的线性转换矩阵[M]的所谓DSM(扩散交换机制,Diffusion SwitchingMechanism)是有效的。此外,使用DSM的加密算法被描述于例如由本专利申请的申请人在日本待审专利申请公开第2007-199156号中。
准备两个矩阵M1和M2,并且布置这两个矩阵以便恒定满足以下关系式。
[数学表达式3]
W X Y Z = M 1 a b c d ⊕ M 2 e f g h
或者,
[数学表达式3]
W X Y Z = M 2 a b c d ⊕ M 1 e f g h
布置两个矩阵[M1]和[M2]以便恒定满足上述两个关系之一。
通过布置两个矩阵[M1]和[M2]得到的矩阵M1|M2的分支数量被设定为3或更多,或者,通过布置通过转置其逆矩阵得到的矩阵而产生的矩阵tM1-1|tM2-1的分支数被设定为3或更多。可使用两个关系都满足的配置。这在维持非零元素的数量很少的同时防止了上述状态,并且获得改进对差分攻击或线性攻击的抵抗的效果。此外,因为在示例性实施例4中得出了相同的关系式,所以在应用上述DSM配置时可期待相同的效果。
[3.数据转换器的配置]
最后,图35中图示作为实施根据上述示例性实施例的处理的装置的IC模块700的配置示例。允许上述处理在例如PC(个人电脑)、IC卡、读取装置/写入装置和任何其它各种信息处理装置中实施。此外,允许每个处理通过使用硬件电路或者配置逻辑电路的程序或者这二者来实施。实施这些处理的示例例如是图35中示出的IC模块700,以及这样IC模块700被允许安装在多种装置中。
图35中示出的CPU(中央处理单元)701是实施加密处理的启动或停止、数据发送/接收的控制、部件之间的数据传送控制或任何其它各种程序的处理器。存储器702是由如下器件配置的:存储由CPU 701执行的程序或固定数据(比如运算参数)的ROM(只读存储器)、用作在CPU701的处理中执行的程序和在程序处理中按需要改变的参数的存储区域或工作区域的RAM(随机存取存储器)等。此外,允许存储器702用作加密处理所需的密钥数据、在加密处理中使用的转换表(替换表)、在转换矩阵中使用的数据等的存储区域。此外,数据存储区域优选地被配置为具有防篡改配置的存储器。
数据转换部703包括例如实施上述多种加密处理的处理部,所述处理即以下处理:
(1)非线性转换处理(H-SUB)
(2)线性转换和异或运算(MAT-XOR)
(3)线性转换处理(H-MAT)
(4)密钥适用运算处理(H-KADD)
(5)异或运算处理(XOR)(XOR2)
(6)非线性转换&线性转换&异或运算处理(SUB-MAT-XOR)
此外,通过硬件、软件或它们的组合来实施这些处理。
此外,在该情况下,虽然描述了其中加密处理装置是单个模块的示例,但是可以不布置这样的独立加密处理模块,以及,例如,加密处理程序可以被存储在ROM中,而CPU 701可以读出在ROM中存储的程序以执行该程序。
随机数生成器704实施密钥生成等所需的随机数生成处理,其是加密处理所需的。
发送/接收部705是实施与外部(例如IC模块,比如读取装置/写入装置等)的数据通信的数据通信处理部,发送/接收部705实施在IC模块中生成的密码文本的输出或来自比如外部读取装置/写入装置等装置的数据输入等。
在前文中,已经针对特定示例性实施例详细描述了本发明。然而,显然本领域技术人员可以对这些示例性实施例做出修改或替换,而不脱离本发明的范围。即,本发明是以示意性示例的形式公开的,而不应以限制方式解读。应参照权利要求以确定本发明的范围。
此外,可以通过硬件或软件或其组合来实施本说明书中所描述的处理。在通过软件实施这些处理的情况下,允许将记录有处理序列的程序安装到被并入专用硬件中的计算机中的存储器中并执行,或者允许将该程序安装到能够实施多种处理的通用计算机上并执行。例如,该程序可以被事先记录在记录介质上。除了将程序从记录介质安装到计算机中以外,还可以通过网络(比如互联网)接收程序并将其安装到比如内置硬盘的记录介质中。
此外,本说明书中描述的各种处理不仅可以按根据说明书的时间序列来实施,也可以根据实施这些处理的装置的处理性能或者在需要时并行或单独地实施。另外,在本说明书中,“系统”指的是多个装置的逻辑集合配置,而不论各构成装置是否包含在一个壳体内。
工业实用性
如上所述,根据本发明的示例性实施例的配置,例如,在其中对于将长方形数据矩阵(由排列的1字节的数据块配置)划分为两部分而得到的两个数据段实施多种处理以执行数据转换的配置中,实施对于所述数据段之一的线性转换处理、所述两个数据段之间的异或运算处理、对于所述数据段之一的移位处理以及所述两个数据段之间的交换处理,从而具有较低运算开销的高效数据扰乱是可实现的。此外,通过包括对于数据段的非线性转换或密钥适用运算,实现了具有高安全等级的加密处理。

Claims (27)

1.一种数据转换器,包括
数据转换部,执行重复进行回合运算的数据转换处理,所述数据转换部被配置为在所述回合运算中实施以下处理:
对于两个数据段之一的线性转换处理,所述两个数据段是将长方形数据矩阵划分为两部分而得到的,所述长方形数据矩阵是通过排列大小相等的数据块来配置的;
所述两个数据段之间的异或运算处理;
对于所述数据段之一的移位处理;以及
所述两个数据段之间的交换处理。
2.根据权利要求1所述的数据转换器,其中
所述大小相等的数据块是1字节的数据块,并且所述数据转换部被配置为在所述回合运算中执行对于所述两个数据段的处理,所述两个数据段是将所述长方形数据矩阵划分为两部分而得到的,所述长方形数据矩阵是通过排列所述1字节的数据块来配置的。
3.根据权利要求1所述的数据转换器,其中
所述数据转换部被配置为在所述回合运算中进一步实施以下处理:
对于所述数据段之一的非线性转换处理;以及
对于所述数据段之一的密钥适用运算处理。
4.根据权利要求3所述的数据转换器,其中
所述密钥适用运算是在所述数据段之一的配置数据和加密密钥数据之间的异或运算。
5.根据权利要求1所述的数据转换器,其中
所述数据转换部利用所述异或运算的结果来作为所述数据段之一的更新数据。
6.根据权利要求1所述的数据转换器,其中
在实施所述移位处理时,所述数据转换部实施如下移位处理:
对于包括在具有m行和2n列数据的长方形矩阵中的、要经受所述移位处理的、具有m行和n列的数据段,在满足m≤n的关系的情况下,在所述移位处理前属于同一列的数据块被移位,以使得在所述移位处理后属于不同的列;以及
在满足m>n的关系的情况下,在所述移位处理前属于同一列的数据块被移位,以使得这些数据块在所述移位处理后的任意列中的块数包含在(m/n)-1以上、(m/n)+1以下的范围内。。
7.根据权利要求1所述的数据转换器,其中
所述数据转换部对于所述两个数据段都实施所述移位处理。
8.根据权利要求1所述的数据转换器,其中
在所述回合运算中,所述数据转换部对于所述数据段中的一个数据段A实施非线性转换和移位处理,以更新所述数据段A,并进一步对于更新的数据段A实施线性转换处理并在所述线性转换处理的结果和另一数据段B之间实施异或运算,从而利用该异或运算的结果作为所述数据段B的更新数据,并进一步在所述数据段A和所述数据段B之间实施所述交换处理,并随后在所述数据段A和密钥数据之间实施异或运算。
9.根据权利要求1所述的数据转换器,其中
在所述回合运算中,所述数据转换部对于所述数据段中的一个数据段A实施非线性转换处理、移位处理和线性转换处理,以更新所述数据段A,并进一步在更新的数据段A和另一数据段B之间实施异或运算,从而利用该异或运算的结果作为数据段B的更新数据,并进一步在所述数据段A和所述数据段B之间实施所述交换处理,并随后在所述数据段A和密钥数据之间实施异或运算。
10.根据权利要求1所述的数据转换器,其中
在所述回合运算中,所述数据转换部对于所述数据段中的一个数据段A实施非线性转换处理和线性转换处理,并在其结果和另一数据段B之间实施异或运算,从而利用该异或运算的结果作为所述数据段B的更新数据,并进一步在所述数据段A和所述数据段B之间实施所述交换处理,并且对于所述数据段A实施移位处理,并随后在所述数据段A和密钥数据之间实施异或运算。
11.根据权利要求1所述的数据转换器,其中
在所述回合运算中,所述数据转换部对于所述数据段中的一个数据段A实施非线性转换处理、移位处理和线性转换处理,并进一步在其结果和另一数据段B之间实施异或运算,从而利用该异或运算的结果作为所述数据段A的更新数据,并进一步在所述数据段A和所述数据段B之间实施交换处理,并随后在所述数据段A和密钥数据之间实施异或运算。
12.根据权利要求1所述的数据转换器,其中
在所述回合运算中的线性转换处理中,所述数据转换部被配置为每个回合都选择和使用多个不同矩阵中的一个矩阵。
13.根据权利要求12所述的数据转换器,其中
所述数据转换部被配置为借助于使用DSM(扩散交换机制)的处理来选择和使用多个不同矩阵中的一个矩阵。
14.一种通过数据转换器实施的数据转换方法,包括:
在数据转换部中通过重复回合运算来执行数据转换的数据转换步骤,所述数据转换步骤在所述回合运算中实施以下处理:
对于两个数据段之一的线性转换处理,所述两个数据段是将长方形数据矩阵划分为两部分而得到的,所述长方形数据矩阵是通过排列大小相等的数据块来配置的;
所述两个数据段之间的异或运算处理;
对于所述数据段之一的移位处理;以及
所述两个数据段之间的交换处理。
15.根据权利要求14所述的数据转换方法,其中
所述大小相等的数据块是1字节的数据块,并且所述数据转换部被配置为在所述回合运算中执行对于所述两个数据段的处理,所述两个数据段是将长方形数据矩阵划分为两部分而得到的,所述长方形数据矩阵是通过排列1字节的数据块来配置的。
16.根据权利要求14所述的数据转换方法,其中
所述数据转换步骤被配置为在所述回合运算中进一步实施以下处理:
对于所述数据段之一的非线性转换处理;以及
对于所述数据段之一的密钥适用运算处理。
17.根据权利要求16所述的数据转换方法,其中
所述密钥适用运算是在所述数据段之一的配置数据和加密密钥数据之间的异或运算。
18.根据权利要求14所述的数据转换方法,其中
所述数据转换步骤利用所述异或运算的结果来作为所述数据段之一的更新数据。
19.根据权利要求14所述的数据转换方法,其中
在实施所述移位处理时,所述数据转换步骤实施如下移位处理:
对于包括在具有m行和2n列数据的长方形矩阵中的、要经受所述移位处理的、具有m行和n列的数据段,在满足m≤n的关系的情况下,在所述移位处理前属于同一列的数据块被移位,以使得在所述移位处理后属于不同的列;以及
在满足m>n的关系的情况下,在所述移位处理前属于同一列的数据块被移位,以使得这些数据块在所述移位处理后的任意列中的块数包含在(m/n)-1以上、(m/n)+1以下的范围内。
20.根据权利要求14所述的数据转换方法,其中
所述数据转换步骤对于所述两个数据段都实施所述移位处理。
21.根据权利要求14所述的数据转换方法,其中
在所述回合运算中,所述数据转换步骤对于所述数据段中的一个数据段A实施非线性转换和移位处理,以更新所述数据段A,并进一步对于更新的数据段A实施线性转换处理并在该线性转换处理的结果和另一数据段B之间实施异或运算,从而利用该异或运算的结果作为所述数据段B的更新数据,并进一步在所述数据段A和所述数据段B之间实施所述交换处理,并随后在所述数据段A和密钥数据之间实施异或运算。
22.根据权利要求14所述的数据转换方法,其中
在所述回合运算中,所述数据转换步骤对于所述数据段中的一个数据段A实施非线性转换处理、移位处理和线性转换处理,以更新数据段A,并进一步在更新的数据段A和另一数据段B之间实施异或运算,从而利用该异或运算的结果作为所述数据段B的更新数据,并进一步在所述数据段A和所述数据段B之间实施所述交换处理,并随后在所述数据段A和密钥数据之间实施异或运算。
23.根据权利要求14所述的数据转换方法,其中
在所述回合运算中,所述数据转换步骤对于所述数据段中的一个数据段A实施非线性转换处理和线性转换处理,并在其结果和另一数据段B之间实施异或运算,从而利用该异或运算的结果作为所述数据段B的更新数据,并进一步在所述数据段A和所述数据段B之间实施所述交换处理,并且对于所述数据段A实施移位处理,并随后在所述数据段A和密钥数据之间实施异或运算。
24.根据权利要求14所述的数据转换方法,其中
在所述回合运算中,所述数据转换步骤对于所述数据段中的一个数据段A实施非线性转换处理、移位处理和线性转换处理,并进一步在其结果和另一数据段B之间实施异或运算,从而利用该异或运算的结果作为所述数据段A的更新数据,并进一步在所述数据段A和所述数据段B之间实施所述交换处理,并随后在所述数据段A和密钥数据之间实施异或运算。
25.根据权利要求14所述的数据转换方法,其中
在所述回合运算中的线性转换处理中,所述数据转换步骤被配置为每个回合都选择和使用多个不同矩阵中的一个矩阵。
26.根据权利要求25所述的数据转换方法,其中
所述数据转换步骤被配置为借助于使用DSM(扩散交换机制)的处理来选择和使用多个不同矩阵中的一个矩阵。
27.一种在数据转换器中实施数据转换处理的计算机程序,所述计算机程序包括:
在数据转换部中通过重复回合运算来执行数据转换的数据转换步骤,所述数据转换步骤是在所述回合运算中实施如下处理的步骤:
对于两个数据段之一的线性转换处理,所述两个数据段是将长方形数据矩阵划分为两部分而得到的,所述长方形数据矩阵是通过排列大小相等的数据块来配置的;
所述两个数据段之间的异或运算处理;
对于所述数据段之一的移位处理;以及
所述两个数据段之间的交换处理。
CN200980105793.0A 2008-01-21 2009-01-21 数据转换器和数据转换方法 Expired - Fee Related CN101952870B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008010548A JP5272417B2 (ja) 2008-01-21 2008-01-21 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP2008-010548 2008-01-21
PCT/JP2009/050855 WO2009093601A1 (ja) 2008-01-21 2009-01-21 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
CN101952870A true CN101952870A (zh) 2011-01-19
CN101952870B CN101952870B (zh) 2014-01-22

Family

ID=40901109

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980105793.0A Expired - Fee Related CN101952870B (zh) 2008-01-21 2009-01-21 数据转换器和数据转换方法

Country Status (5)

Country Link
US (2) US8379843B2 (zh)
EP (1) EP2234090A4 (zh)
JP (1) JP5272417B2 (zh)
CN (1) CN101952870B (zh)
WO (1) WO2009093601A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857412A (zh) * 2012-10-12 2013-01-02 南京恩瑞特实业有限公司 一种新型的数据快速转换算法
CN104618092A (zh) * 2015-01-05 2015-05-13 浪潮(北京)电子信息产业有限公司 一种信息加密方法及系统
CN107196638A (zh) * 2017-05-19 2017-09-22 郑州云海信息技术有限公司 监控电平转换器两端数据的方法、系统及电平转换器
CN108270599A (zh) * 2016-12-30 2018-07-10 北京亿阳信通科技有限公司 一种基于snmp协议的数据解析处理方法及系统

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8369515B2 (en) * 2010-03-18 2013-02-05 Chiou-Haun Lee Cryptographic method of multilayer diffusion in multidimension
CN101848078A (zh) * 2010-04-30 2010-09-29 中国科学院软件研究所 一种密钥流序列扰动方法及加密方法
JP5449063B2 (ja) * 2010-07-06 2014-03-19 日本電信電話株式会社 Rijndael型192bitブロック暗号化装置、方法、及びそのプログラム
JP5755970B2 (ja) * 2011-08-26 2015-07-29 株式会社東芝 演算装置
US10795766B2 (en) 2012-04-25 2020-10-06 Pure Storage, Inc. Mapping slice groupings in a dispersed storage network
US10621044B2 (en) 2012-04-25 2020-04-14 Pure Storage, Inc. Mapping slice groupings in a dispersed storage network
US9380032B2 (en) 2012-04-25 2016-06-28 International Business Machines Corporation Encrypting data for storage in a dispersed storage network
US9460171B2 (en) 2013-11-08 2016-10-04 International Business Machines Corporation Processing data in data migration
JP6187624B1 (ja) * 2016-03-17 2017-08-30 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
US11095428B2 (en) * 2018-07-24 2021-08-17 Duality Technologies, Inc. Hybrid system and method for secure collaboration using homomorphic encryption and trusted hardware
US20220129592A1 (en) * 2020-10-22 2022-04-28 Seagate Technology Llc Cartridge data storage with information-theoretic security

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1164912A (zh) * 1995-09-05 1997-11-12 三菱电机株式会社 数据变换装置及数据变换方法
EP1172963A2 (en) * 2000-07-13 2002-01-16 Fujitsu Limited Computing apparatus using an SPN structure in an F function and a computation method thereof
US6578061B1 (en) * 1999-01-19 2003-06-10 Nippon Telegraph And Telephone Corporation Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
CN1647139A (zh) * 2002-05-23 2005-07-27 三菱电机株式会社 数据变换装置和数据变换方法
CN1734527A (zh) * 2000-03-09 2006-02-15 三菱电机株式会社 数据变换装置和数据变换方法
EP1052611B1 (en) * 1998-01-27 2006-05-31 Nippon Telegraph and Telephone Corporation Data converter and recording medium on which program for executing data conversion is recorded
CN101206816A (zh) * 2006-12-15 2008-06-25 索尼株式会社 运算处理装置、运算处理控制方法以及计算机程序

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4622222B2 (ja) * 2003-09-30 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4622807B2 (ja) * 2005-03-25 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2007199156A (ja) 2006-01-24 2007-08-09 Sony Corp 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1164912A (zh) * 1995-09-05 1997-11-12 三菱电机株式会社 数据变换装置及数据变换方法
EP1052611B1 (en) * 1998-01-27 2006-05-31 Nippon Telegraph and Telephone Corporation Data converter and recording medium on which program for executing data conversion is recorded
US6578061B1 (en) * 1999-01-19 2003-06-10 Nippon Telegraph And Telephone Corporation Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
CN1734527A (zh) * 2000-03-09 2006-02-15 三菱电机株式会社 数据变换装置和数据变换方法
EP1172963A2 (en) * 2000-07-13 2002-01-16 Fujitsu Limited Computing apparatus using an SPN structure in an F function and a computation method thereof
CN1647139A (zh) * 2002-05-23 2005-07-27 三菱电机株式会社 数据变换装置和数据变换方法
CN101206816A (zh) * 2006-12-15 2008-06-25 索尼株式会社 运算处理装置、运算处理控制方法以及计算机程序

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857412A (zh) * 2012-10-12 2013-01-02 南京恩瑞特实业有限公司 一种新型的数据快速转换算法
CN104618092A (zh) * 2015-01-05 2015-05-13 浪潮(北京)电子信息产业有限公司 一种信息加密方法及系统
CN108270599A (zh) * 2016-12-30 2018-07-10 北京亿阳信通科技有限公司 一种基于snmp协议的数据解析处理方法及系统
CN108270599B (zh) * 2016-12-30 2021-05-11 北京亿阳信通科技有限公司 一种基于snmp协议的数据解析处理方法及系统
CN107196638A (zh) * 2017-05-19 2017-09-22 郑州云海信息技术有限公司 监控电平转换器两端数据的方法、系统及电平转换器

Also Published As

Publication number Publication date
EP2234090A1 (en) 2010-09-29
US20130083920A1 (en) 2013-04-04
WO2009093601A1 (ja) 2009-07-30
US8379843B2 (en) 2013-02-19
CN101952870B (zh) 2014-01-22
US20110243319A1 (en) 2011-10-06
JP2009175167A (ja) 2009-08-06
EP2234090A4 (en) 2017-07-12
JP5272417B2 (ja) 2013-08-28
US8824671B2 (en) 2014-09-02

Similar Documents

Publication Publication Date Title
CN101952870B (zh) 数据转换器和数据转换方法
CN101496080B (zh) 密码处理装置、密码处理算法构建方法和密码处理方法
Zhen et al. Chaos-based image encryption scheme combining DNA coding and entropy
Yaghouti Niyat et al. Color image encryption based on hybrid chaotic system and DNA sequences
Fu et al. A novel chaos-based bit-level permutation scheme for digital image encryption
Wang et al. A novel image encryption algorithm based on genetic recombination and hyper-chaotic systems
Chen et al. A fast image encryption scheme with a novel pixel swapping-based confusion approach
CN103444124B (zh) 加密处理装置、加密处理方法
CN101496342B (zh) 加密装置、程序及方法
CN101834719B (zh) 加密处理装置用矩阵生成方法
Zhang et al. Image encryption algorithm based on quantum chaotic map and DNA coding
CN103503362B (zh) 数据处理装置、数据处理方法以及程序
CN102594546A (zh) 信息处理装置
CN103258312B (zh) 具有快速密钥流生成机制的数字图像加密方法
JP2007199156A (ja) 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
Ghebleh et al. A novel efficient image encryption scheme based on chained skew tent maps
Wang et al. A new chaotic image encryption algorithm based on L-shaped method of dynamic block
Hussain True-chaotic substitution box based on Boolean functions
Wang et al. Bit-level image encryption algorithm based on random-time S-Box substitution
CN107633474B (zh) 一种具有快速密钥流生成过程的混沌彩色图像加密方法
Xiang et al. A new perturbation-feedback hybrid control method for reducing the dynamic degradation of digital chaotic systems and its application in image encryption
CN107171782A (zh) 一种基于可逆逻辑电路的aes私密日志加密方法
Souyah et al. A review on different image encryption approaches
Chen et al. An efficient diffusion scheme for chaos-based digital image encryption
CN107886463A (zh) 一种基于Chen系统和细胞自动机的数字图像加密方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Free format text: FORMER OWNER: TETSU IWATA

Effective date: 20120413

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20120413

Address after: Tokyo, Japan, Japan

Applicant after: Sony Corp

Address before: Tokyo, Japan, Japan

Applicant before: Sony Corp

Co-applicant before: Yan Tianzhe

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140122

Termination date: 20160121

EXPY Termination of patent right or utility model