CN101512618A - 数据变换装置和数据变换方法、以及计算机程序 - Google Patents

数据变换装置和数据变换方法、以及计算机程序 Download PDF

Info

Publication number
CN101512618A
CN101512618A CNA2007800321049A CN200780032104A CN101512618A CN 101512618 A CN101512618 A CN 101512618A CN A2007800321049 A CNA2007800321049 A CN A2007800321049A CN 200780032104 A CN200780032104 A CN 200780032104A CN 101512618 A CN101512618 A CN 101512618A
Authority
CN
China
Prior art keywords
nonlinear transformation
data
bit
mentioned
input
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
CNA2007800321049A
Other languages
English (en)
Other versions
CN101512618B (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 CN101512618A publication Critical patent/CN101512618A/zh
Application granted granted Critical
Publication of CN101512618B publication Critical patent/CN101512618B/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/002Countermeasures against attacks on cryptographic mechanisms
    • 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

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

实现安装效率以及安全性较高的非线性变换处理结构。执行应用了第一级非线性变换部、线性变换部以及第二级非线性变换部的数据变换,其中,上述第一级非线性变换部利用多个较小的S盒(S-box)执行非线性变换,上述线性变换部输入来自第一级非线性变换部的所有输出并执行应用了进行最优扩散变换的矩阵的数据变换,上述第二级非线性变换部由执行分割线性变换部的输出数据得到的各分割数据的非线性变换处理的多个小型非线性变换部构成。通过本结构,能够不使关键路径过大而实现适当的数据扩散,实现安装效率以及安全性较高的结构。

Description

数据变换装置和数据变换方法、以及计算机程序
技术领域
本发明涉及一种数据变换装置和数据变换方法、以及计算机程序。更详细地说,例如涉及一种进行能够应用于共用密钥块密码处理、哈希(hash)函数等中的非线性变换处理的数据变换装置和数据变换方法、以及计算机程序。
背景技术
最近,随着网络通信、电子商务的发展,确保通信中的安全成为重要的问题。确保安全的方法之一是密码技术,现在实际进行着使用了各种加密方法的通信。
例如实际应用了如下系统:在IC卡等小型装置中嵌入密码处理模块,在IC卡与作为数据读取写入装置的读写器之间进行数据的发送接收,进行认证处理、或者发送接收数据的加密、解密。
在密码处理算法中存在各种算法,大致分类为公开密钥密码方式和共用密钥密码方式,其中,上述公开密钥密码方式将加密密钥和解密密钥设定为不同的密钥、例如公开密钥和私人密钥,上述共用密钥密码方式将加密密钥和解密密钥设定为共用的密钥。
在共用密钥密码方式中也存在各种算法,其中之一是如下的方式:以共用密钥为基础生成多个密钥,使用所生成的多个密钥来反复执行块单位(64比特、128比特等)的数据变换处理。应用了这种密钥生成方式和数据变换处理的算法的代表性的方式是共用密钥块密码方式。
作为代表性的共用密钥块密码的算法,例如已知有过去作为美国标准密码的DES(Data Encryption Standard:数据加密标准)算法、当前的作为美国标准密码的AES(Advanced EncryptionStandard:高级加密标准)算法等。
这种共用密钥块密码的算法主要由密码处理部和密钥调度部构成,其中,上述密码处理部具有反复执行输入数据的变换的循环函数执行部,上述密钥调度部生成在循环函数部的各循环中应用的循环密钥。密钥调度部根据作为私人密钥的主密钥(master key),首先生成增加比特数的扩展密钥,根据所生成的扩展密钥生成在密码处理部的各循环函数部中应用的循环密钥(副密钥)。
作为执行这种算法的具体结构,已知有反复执行具有线性变换部和非线性变换部的循环函数的结构。例如在代表性的结构中存在Feistel结构。Feistel结构具有如下结构:通过作为数据变换函数的循环函数(F函数)的简单的重复,将明文变换为密文。在循环函数(F函数)中执行线性变换处理和非线性变换处理。此外,作为记载了应用Feistel结构的密码处理的文献,例如存在非专利文献1、非专利文献2。
在该共用密钥块密码处理、例如哈希函数等中利用非线性变换处理执行数据变换。在非线性变换中能够应用被称为S盒(S-box)的非线性变换函数。S盒是块密码、哈希函数的结构要素,是决定其安全性、安装性能的非常重要的函数。S盒一般为n-bit输入、m-bit输出的非线性变换函数。输入输出比特数相同、并且输入输出一一对应的S盒被称为双射型S盒。
在密码处理的非线性变换中应用S盒的情况下,所应用的S盒的性质对密码的安全性产生较大的影响。即,例如已知有差分分析、线性分析等各种密码攻击,通过这种密码攻击来分析密钥、算法的困难性越高,密码的安全性越高。该安全性根据在块密码、哈希函数中利用的S盒的性质而有很大不同。
例如,一般因为在整个密码算法、密码处理中应用的循环函数自身的输入输出大小较大(例如64比特、128比特等),因此难以对其进行严密的安全性评价。但是,S盒的输入输出大小一般较小。例如是8-bit输入输出左右,能够进行严密的安全性评价。已知有为了提高密码算法整体的安全性而要求在S盒中至少具有以下特性:
(1)最大差分概率足够小
(2)最大线性概率足够小
(3)进行布尔多项式表现时的布尔代数次数足够大
(4)将输入输出进行多项式表现时的项数足够多。
(1)主要决定对差分攻击的抵抗性,(2)主要决定对线性攻击的抵抗性,(3)主要决定对高阶差分攻击的抵抗性,(4)主要决定对插值攻击的抵抗性。并且,为了提高安全性,S盒的输入输出的比特相关性较低、使输入变化1比特时输出的变化为1/2左右等很重要。
另外,对S盒除了要求安全性以外,还要求较高的安装性能。例如,在利用软件执行密码处理、哈希函数的安装结构中,通常进行设为如下结构的安装:在存储器中保持表示对于输入的输出的表,通过被称为查表(表安装)的方法执行非线性变换处理,因此该结构的安装性能不怎么依赖于S盒的内部结构。然而,在硬件安装中,例如构成用于根据输入值算出特定的输出的电路。该电路结构根据所应用的S盒而发生较大变化,从而对电路规模产生影响。
非专利文献1:K.Nyberg,“Generalized Feistel networks”,ASIACRYPT’96,Springer Verlag,1996,pp.91--104.
非专利文献2:Yuliang Zheng,Tsutomu Matsumoto,HidekiImai:On the Construction of Block Ciphers Provably Secure andNot Relying on Any Unproved Hypotheses.CRYPTO 1989:461-480
发明内容
发明要解决的问题
本发明是鉴于上述问题点而完成的,其目的在于提供一种对执行在密码处理、哈希函数等中利用的非线性变换处理的S盒的结构进行改进来提高对各种密码攻击的抵抗性的结构、即提高了安全性的数据变换装置和数据变换方法、以及计算机程序。
用于解决问题的方案
本发明的第一侧面在于一种数据变换装置,其特征在于,具有:第一级非线性变换部,其由多个小型非线性变换部构成,该多个小型非线性变换部对分割输入数据得到的各分割数据执行非线性变换处理的;线性变换部,其输入来自构成上述第一级非线性变换部的多个小型非线性变换部的所有输出并执行线性变换;以及第二级非线性变换部,其由多个小型非线性变换部构成,该多个小型非线性变换部对分割上述线性变换部的输出数据得到的各分割数据执行非线性变换处理的,其中,上述线性变换部是如下结构:利用具有与上述输入数据的比特大小相同大小的要素的矩阵运算执行数据变换,在矩阵是m×m矩阵的情况下,执行应用了具有至少m以上的分支数的高分支数的矩阵的数据变换处理。
并且,在本发明的数据变换装置的一个实施方式中,其特征在于,在上述输入数据是n比特数据的情况下,上述第一非线性变换部由k个小型非线性变换部构成,其中,上述k个小型非线性变换部分别输入作为输入数据的n比特数据的分割数据即n/k比特并输出作为非线性变换处理结果的n/k比特,上述线性变换部是如下结构:输入上述k个小型非线性变换部所输出的总计n比特的数据,通过应用了高分支数的矩阵的数据变换处理来生成n比特的输出,上述第二非线性变换部是具有k个小型非线性变换部的结构,上述k个小型非线性变换部分别输入从上述线性变换部输出的n比特数据的分割数据即n/k比特并输出作为非线性变换处理结果的n/k比特。
并且,在本发明的数据变换装置的一个实施方式中,其特征在于,上述线性变换部是执行应用了MDS(Maximum DistanceSeparable)矩阵的数据变换处理的结构,其中,上述MDS矩阵执行最优扩散变换ODM(Optimal Diffusion Mappings)处理。
并且,在本发明的数据变换装置的一个实施方式中,其特征在于,在上述输入数据是n比特数据的情况下,上述线性变换部是执行应用了由在GF(2)上定义的n次既约多项式p(x)定义的扩展域GF(2n)上的矩阵的数据变换处理的结构。
并且,在本发明的数据变换装置的一个实施方式中,其特征在于,上述数据变换装置是执行n比特输入输出的非线性变换处理的S盒,包含在上述第一级非线性变换部和上述第二级非线性变换部中的多个小型非线性变换部由执行比特数少于n比特的非线性变换处理的小型S盒构成。
并且,在本发明的数据变换装置的一个实施方式中,其特征在于,上述数据变换装置是执行伴随有非线性变换处理的密码处理的结构。
并且,在本发明的数据变换装置的一个实施方式中,其特征在于,上述密码处理是共用密钥块密码处理。
并且,本发明的第二侧面在于一种数据变换方法,在数据变换装置中执行,其特征在于,具有以下步骤:第一级非线性变换步骤,在第一级非线性变换部中,应用多个小型非线性变换部对分割输入数据得到的各分割数据执行非线性变换处理;线性变换步骤,在线性变换部中,输入来自构成上述第一级非线性变换部的多个小型非线性变换部的所有输出并执行线性变换;以及第二级非线性变换步骤,在第二级非线性变换部中,应用多个小型非线性变换部对分割上述线性变换部的输出数据得到的各分割数据执行非线性变换处理,其中,上述线性变换步骤是如下步骤:利用具有与上述输入数据的比特大小相同大小的要素的矩阵运算执行数据变换,在矩阵是m×m矩阵的情况下,执行应用了具有至少m以上的分支数的高分支数的矩阵的数据变换处理。
并且,本发明的第三侧面在于一种计算机程序,使数据变换装置执行数据变换处理,其特征在于,具有以下步骤:第一级非线性变换步骤,在第一级非线性变换部中,应用多个小型非线性变换部对分割输入数据得到的各分割数据执行非线性变换处理;线性变换步骤,在线性变换部中,输入来自构成上述第一级非线性变换部的多个小型非线性变换部的所有输出并执行线性变换;以及第二级非线性变换步骤,在第二级非线性变换部中,应用多个小型非线性变换部对分割上述线性变换部的输出数据得到的各分割数据执行非线性变换处理,其中,上述线性变换步骤是如下步骤:利用具有与上述输入数据的比特大小相同大小的要素的矩阵运算执行数据变换,在矩阵是m×m矩阵的情况下,执行应用了具有至少m以上的分支数的高分支数的矩阵的数据变换处理。
此外,本发明的计算机程序例如是能够通过以计算机可读形式提供对的存储介质、通信介质、例如CD、FD、MO等记录介质、或者网络等通信介质对执行各种程序代码的计算机系统提供的计算机程序。通过以计算机可读的形式提供这种程序,在计算机系统上实现与程序相应的处理。
通过基于后述的本发明的实施例、附图的更详细的说明,本发明的进一步的其它目的、特征、优点会更清楚。此外,在本说明书中的系统是多个装置的逻辑集合结构,并不限于各结构的装置在同一壳体内。
发明的效果
根据本发明的一个实施例的结构,例如将在共用密钥块密码处理、哈希函数等处理中执行的非线性变换处理设为进行应用了第一级非线性变换部、线性变换部以及第二级非线性变换部的数据变换的结构,其中,上述第一级非线性变换部利用多个较小的S盒(S-box)执行非线性变换,上述线性变换部输入来自第一级非线性变换部的所有输出并执行线性变换,上述第二级非线性变换部由执行分割线性变换部的输出数据得到的各分割数据的非线性变换处理的多个小型非线性变换部构成,在线性变换部中设为执行应用了进行最优扩散变换的矩阵的数据变换的结构,因此能够不使从数据的输入起直到输出的关键路径过大,而能够实现适当的数据扩散,实现对各种密码攻击的抵抗性较强的安全性较高的数据变换。
附图说明
图1是表示共用密钥块密码算法的基本结构的图。
图2是说明图1所示的共用密钥块密码处理部E10的内部结构的图。
图3是说明图2所示的密码处理部12的详细结构的图。
图4是说明作为循环函数执行部的一个结构例的SPN结构循环函数的图。
图5是说明作为循环函数执行部的一个结构例的Feistel(菲斯特尔)结构的图。
图6是说明作为循环函数执行部的一个结构例的扩展Feistel结构的图。
图7是说明非线性变换处理部的具体例的图。
图8是说明线性变换处理部的具体例的图。
图9是说明CRYPTON ver.0.5的S盒的结构的图。
图10是说明CRYPTON ver.1.0的S盒的结构的图。
图11是说明Whirlpool的S盒的结构的图。
图12是说明FOX的S盒的结构的图。
图13是表示本发明的一个实施例所涉及的作为非线性变换处理结构的n比特输入输出S盒的结构例的图。
图14是说明本发明的一个实施例所涉及的执行具体的8比特输入输出的非线性变换的S盒的结构例的图。
图15是说明本发明的一个实施例所涉及的执行具体的8比特输入输出的非线性变换的S盒的结构例的图。
图16是说明本发明的一个实施例所涉及的执行具体的8比特输入输出的非线性变换的S盒的结构例的图。
图17是说明本发明的一个实施例所涉及的执行具体的8比特输入输出的非线性变换的S盒的结构例的图。
图18是说明本发明的一个实施例所涉及的执行非线性变换的S盒的结构例的图。
图19是表示本发明所涉及的作为装置例的密码处理装置结构例的图。
具体实施方式
下面,详细说明本发明的数据变换装置和数据变换方法、以及计算机程序。按照以下项目进行说明。
1.共用密钥块密码的概要
2.密码攻击的概要
3.由多个小型S盒的组合构成的非线性变换处理结构
(3-1)关于由多个小型S盒的组合构成的非线性变换处理结构的有效性
(3-2)以往的由多个小型S盒的组合构成的非线性变换处理结构和问题点
(3-3)本发明所涉及的由多个小型S盒的组合构成的非线性变换处理结构
4.密码处理装置的结构例
[1.共用密钥块密码的概要]
首先,说明可应用本发明的共用密钥块密码的概要。在本说明书中设为共用密钥块密码(以下为块密码)是指以下定义的块密码。
块密码输入明文P和密钥K,输出密文C。将明文和密文的比特(bit)长度称为块大小,在此用n表示。n可取任意的整数值,但是通常在每个块密码算法中是预先决定的一个值。有时也将块长度为n的块密码称为n比特块密码。
用k表示密钥的比特长度。密钥可取任意的整数值。共用密钥块密码算法与一个或多个密钥大小对应。例如,某个块密码算法A可以是块大小n=128、与密钥的比特长度k=128或k=192或k=256的各种密钥大小对应的结构。
将明文[P]、密文[C]、密钥[K]各自比特大小表示为如下。
明文P:n比特
密文C:n比特
密钥K:k比特
图1示出与k比特的密钥长度对应的n比特共用密钥块密码算法E的图。如图1所示,共用密钥块密码处理部E10输入n比特的明文P和k比特的密钥K,执行预先决定的密码算法,输出n比特的密文C。此外,图1仅示出从明文生成密文的加密处理。从密文生成明文的解密处理一般使用密码处理部E10的反函数。但是,根据密码处理部E10的结构,在解密处理中也能够应用同样的共用密钥块密码处理部E10,能够通过密钥的输入顺序等顺序的变更来进行解密处理。
参照图2说明图1所示的共用密钥块密码处理部E10的内部结构。能够将块密码分为两个部分考虑。一个是密钥调度部11,另一个是密码处理部12,其中,上述密钥调度部11以密钥K为输入,通过某个决定的步骤扩展输入密钥K的比特长度,从而输出扩展密钥K’(比特长度k’),上述密码处理部12接受明文P和从密钥调度部11输入的扩展密钥K’,以明文P为输入,执行应用了扩展密钥K’的密码处理,执行用于生成密文C的数据的变换。此外,如之前所说明的那样,根据密码处理部12的结构,有时在将密文恢复为明文的数据解密处理中也能够应用密码处理部12。
接着,参照图3说明图2所示的密码处理部12的详细结构。如图3所示,密码处理部12具有反复执行应用了循环函数执行部20的数据变换的结构。即,能够以称为循环函数执行部20的处理单位来分割密码处理部12。循环函数执行部20接受前级的循环函数执行部的输出Xi和根据扩展密钥而生成的循环密钥RKi这两个数据作为输入,在内部执行数据变换处理,将输出数据Xi+1输出到下一个循环函数执行部。此外,在第一循环中输入是明文或对明文的初始化处理数据。另外,最终循环的输出为密文。
在图3所示的例子中,密码处理部12是如下结构:具有r个循环函数执行部20,反复进行r次循环函数执行部中的数据变换来生成密文。将循环函数的重复次数称为循环数。在图示的例子中循环数为r。
各循环函数执行部的输入数据Xi是加密过程中的n比特数据,提供某个循环中的循环函数的输出Xi+1作为下一个循环的输入。各循环函数执行部的另一个输入数据使用从密钥调度输出的基于扩展密钥K’的数据。将输入到各循环函数执行部、在循环函数的执行中应用的密钥称为循环密钥。在图中将在第i循环中应用的循环密钥表示为RKi。扩展密钥K’例如构成为r个循环的循环密钥RK1~RKr的连接数据。
图3所示的结构是从密码处理部12的输入侧看、将第一循环的输入数据表示为X0、将从第i循环函数输出的数据表示为Xi、将循环密钥表示为RKi的密码处理部12的结构。此外,根据该密码处理部12的结构,例如可以是如下结构:将所应用的循环密钥的应用顺序设定为与加密处理相反,将密文输入到密码处理部12来输出解密文。
图3所示的密码处理部12的循环函数执行部20可采用各种方式。循环函数能够根据其密码算法所采用的结构(structure)进行分类。作为代表性的结构存在如下结构:
(a)SPN(Substitution Permutation Network:置换组合网路)结构;
(b)Feistel结构;
(c)扩展Feistel结构。
下面,参照图4~图6说明这些具体结构。
(a)SPN结构循环函数
首先,参照图4说明作为循环函数执行部20的一个结构例的SPN结构循环函数。SPN结构循环函数执行部20a具有连接了非线性变换层(S层)与线性变换层(P层)的、所谓的SP型的结构。如图4所示,由异或运算部21、非线性变换处理部22、线性变换处理部23等构成,其中,上述异或运算部21对所有n比特的输入数据执行与循环密钥之间的异或(XOR)运算,上述非线性变换处理部22输入异或运算部21的运算结果,执行输入数据的非线性变换,上述线性变换处理部23输入非线性变换处理部22中的非线性变换处理结果,执行对输入数据的线性变换处理。将线性变换处理部23的线性变换处理结果输出到下一个循环。在最终循环中输出为密文。此外,在图4所示的例子中,示出了异或运算部21、非线性变换处理部22、线性变换处理部23的处理顺序,但是并不限定这些处理部的顺序,也可以是以其它的顺序进行处理的结构。
(b)Feistel结构
接着,参照图5说明作为循环函数执行部20的一个结构例的Feistel(菲斯特尔)结构。如图5所示,Feistel结构将来自前一循环的作为输入(在第一循环中是输入文)的n比特的输入数据分割为n/2比特的两个数据,在各循环中进行替换并且执行处理。
如图所示,在应用了具有Feistel结构的循环函数执行部20b的处理中,将一个n/2比特数据和循环密钥输入到F函数部30。F函数部30与上述的SPN结构同样地具有连接了非线性变换层(S层)与线性变换层(P层)的、所谓的SP型的结构。
将来自前一循环的n/2比特数据和循环密钥输入到F函数部30的异或运算部31并进行异或(XOR)处理。并且,将该结果数据输入到非线性变换处理部32来执行非线性变换,并且,将该非线性变换结果输入到线性变换处理部33来执行线性变换。输出该线性变换结果作为F函数处理结果数据。
并且,将该F函数输出与从前一循环输入的另一个n/2比特输入输入到异或运算部34,执行异或运算(XOR),将执行结果设定为下一个循环中的F函数的输入。此外,将被设定为图示的第i循环的F函数输入的n/2比特应用在与下一个循环的F函数输出的异或运算中。这样,Feistel结构在各循环中交替地替换输入并且执行应用了F函数的数据变换处理。
(c)扩展Feistel结构
接着,参照图6说明作为循环函数执行部20的一个结构例的扩展Feistel结构。之前参照图5所说明的Feistel结构将n比特的明文分割为两个并分配为各n/2比特来执行处理。即,是设为分割数:d=2的处理。此外,该分割数也被称为数据序列数。
在扩展Feistel结构中,是将该数据序列数(分割数)d设为3以上的任意整数的设定。能够定义与数据序列数(分割数)d的值相应的各种扩展Feistel结构。在图6所示的例子中,数据序列数(分割数)d=4,对各序列输入n/4比特的数据。在各循环中执行一个以上的作为循环函数的F函数。图示的例子是在一个循环中进行两个F函数部的循环运算的结构例。
F函数部41、42的结构与之前参照图5所说明的F函数部30的结构相同,是执行循环密钥与输入值之间的异或运算、以及非线性变换处理、线性变换处理的结构。此外,调整输入到各F函数部的循环密钥使得比特数与输入比特一致。在图示的例子中,输入到各F函数部41、42的循环密钥为n/4比特。对构成扩展密钥的循环密钥进一步进行比特分割而生成这些密钥。此外,在将数据序列数(分割数)设为d时,输入到各序列的数据是n/d比特,输入到各F函数的密钥的比特数也被调整为n/d比特。
此外,在图6所示的扩展Feistel结构中,是将数据序列数(分割数)设为d、在各循环中并行地执行d/2个F函数的结构例,但是扩展Feistel结构可以是在各循环中执行一个以上d/2个以下的F函数的结构。
如参照图4~图6所说明的那样,共用密钥块密码中的密码处理部12的循环函数执行部20可采用如下结构:
(a)SPN(Substitution Permutation Network)结构;
(b)Feistel结构;
(c)扩展Feistel结构。
这些循环函数执行部都具有连接了非线性变换层(S层)与线性变换层(P层)的、所谓的SP型的结构。即,具有执行非线性变换处理的非线性变换处理部和执行线性变换处理的线性变换处理部。下面,说明这些变换处理结构。
(非线性变换处理部)
参照图7说明非线性变换处理部的具体例。如图7所示,具体地说,非线性变换处理部50是并列m个被称为S盒(S-box)51的s比特输入s比特输出的非线性变换表而得到的,将ms比特的输入数据以每s比特进行分割并分别输入到对应的S盒(S-box)51中进行数据变换。在各S盒51中,例如执行应用了变换表的非线性变换处理。
如果所输入的数据的大小变大,则安装方面的成本有变高的趋势。如图7所示,为了避免这种趋势,多采用如下结构:将处理对象数据X分割为多个单位,对各个单位实施非线性变换。例如,在将输入大小设为ms比特时,分割为各s比特的m个数据,对m个S盒(S-box)51分别输入s比特,例如执行应用了变换表的非线性变换处理,合成m个这些各S比特输出,得到ms比特的非线性变换结果。
(线性变换处理部)
参照图8说明线性变换处理部的具体例。线性变换处理部将输入值、例如作为来自S盒的输出数据的ms比特的输出值作为输入值X而输入,对该输入实施线性变换而输出ms比特的结果。线性变换处理例如执行输入比特位置的替换处理等线性变换处理,输出ms比特的输出值Y。线性变换处理例如对输入应用线性变换矩阵来进行输入比特位置的替换处理。该矩阵的一例是图8所示的线性变换矩阵。
在线性变换处理部中应用的线性变换矩阵的要素是扩展域:GF(28)的域的要素、GF(2)的要素等,一般能够构成为应用了各种表现的矩阵。图8表示具有ms比特输入输出、由在GF(2s)上定义的m×m矩阵定义的线性变换处理部的一个结构例。
[2.密码攻击的概要]
作为对上述的共用密钥块密码的密码攻击、即所应用的密钥的分析或者算法的分析方法,已知各种方法。下面说明该密码攻击的概要。依次说明下面的各攻击。
(2-1)差分攻击
(2-2)线性攻击
(2-3)高阶差分攻击
(2-4)插值攻击
(2-1)差分攻击
作为共用密钥密码的攻击法之一存在差分解读法(Differential Cryptanalysis)。例如在文献“E.Biham,A.Shamir,‘Differential Cryptanalysis of DES-like Cryptosystems,’Journalof Cryptology,Vol.4,No.1,pp.3-72,1991.”中记载了差分解读法。
该攻击法是如下的攻击法:对某个密码观测被称为差分值的数据的传播,在以高概率发生该差分值的传播的情况下,能够进行攻击、即能够进行密钥的估计。将该被称为差分值的数据的传播概率称为差分概率。
当对n比特输入输出的函数f定义输入为x(n-bit)、输入差分值为Δx(n-bit)、输出差分值为Δy(n-bit)时,将对于函数f的输入差分值Δx、输出差分值Δy的差分概率DPf(Δx,Δy)定义为如下。
[式1]
ΔP f ( Δx , Δy ) = # { x ∈ { 0,1 } n | f ( x ) ⊕ f ( x ⊕ Δx ) = Δy } 2 n
另外,将对于函数f的最大差分概率MDPf定义为如下。
[式2]
MDP f = max Δx ≠ 0 , Δy DP f ( Δx , Δy )
这些值是根据函数f唯一求出的值,最大差分概率MDPf较大的函数f是对差分攻击的抵抗性较弱的函数。因此,希望在设计密码时设计函数f以使MDPf尽可能小。
(2-2)线性攻击
作为共用密钥密码的攻击法之一还存在线性解读法(LinearCryptanalysis)。例如在文献“M.Matsui,‘Linear CryptanalysisMethod for DES Cipher,’EUROCRYPT’93,LNCS 765,pp.386-397,1994.”中记载了线性解读法。
该攻击法是如下的攻击法:对某个密码观测输入的特定比特的异或与输出的特定比特的异或之间的相关性,在发现较强的相关关系的情况下,能够进行攻击、即能够进行密钥的估计。将该输入输出的特定比特的相关系数称为线性概率。
在对n比特输入输出的函数f定义输入为x(n-bit)、输入掩模值为Γx(n-bit)、输出掩模值为Γy(n-bit)时,将对于函数f的输入掩模值Γx、输出掩模值Γy的线性概率LPf(Γx,Γy)定义为如下。
[式3]
LP f ( Γx , Γy ) = ( 2 · # { x ∈ { 0,1 } n | x · Γx = f ( x ) · Γy } 2 n - 1 ) 2
其中,在上式中[·]表示n比特向量之间的内积运算。
[式4]
x · y = ⊕ i = 1 n ( x i · y i )
另外,将对于函数f的最大线性概率MLPf定义为如下。
[式5]
MLP f = max Γx , Γy ≠ 0 LP f ( Γx , Γy )
这些值是根据函数f唯一求出的值,最大线性概率MLPf较大的函数f是对线性攻击的抵抗性较弱的函数。因此,希望在设计密码时设计函数f以使MLPf尽可能小。
(2-3)高阶差分攻击
作为共用密钥密码的攻击法之一还存在高阶差分攻击法(Higher Order Differential Attack)。例如在文献“L.R.Knudsen、‘Truncated and Higher Order Differentials.’FSE’94、LNCS 1008,pp.196-211”中记载了高阶差分攻击法。
该攻击法是利用了密码算法所具有的代数性质的攻击法,是如下的攻击法:在用明文的所有比特对密文进行布尔多项式表现时,在对于明文的特定数量比特该布尔代数次数小于某个次数的情况下,能够进行攻击、即能够进行密钥的估计。
(2-4)插值攻击
作为共用密钥密码的攻击法之一还存在插值攻击法(Interpolation Attack)。例如在文献“T.Jakobsen and L.R.Knudsen,‘The Interpolation Attack on Block Cipher,’FSE’97,LNC S1267,pp.28-40,1997.”中记载了插值攻击。
该攻击法是利用了密码算法所具有的代数性质的攻击法,是如下的攻击法:在将加密函数表现为多项式函数时其项数较少的情况下,通过复原包含密钥值的加密函数来进行攻击。
[3.由多个小型S盒的组合构成的非线性变换处理结构]
(3-1)关于由多个小型S盒的组合构成的非线性变换处理结构的有效性
如上所述,共用密钥块密码是通过循环函数的重复来进行密码处理的结构。该共用密钥块密码处理是反复执行循环函数的结构,在循环函数中执行线性变换处理和非线性变换处理。在非线性变换处理中,例如如参照图7所说明的那样,执行应用了S-box(S盒)的非线性变换处理。除了上述的共用密钥块密码处理之外,例如在哈希函数等数据变换中也能够在非线性变换处理中应用S盒。
如之前所说明的那样,该S盒的输入输出大小一般比较小,能够进行严密的安全性评价,作为为了提高密码、哈希算法整体的安全性而要求S盒具有的特性,已知以下的特性:
(1)最大差分概率足够小
(2)最大线性概率足够小
(3)进行布尔多项式表现时的布尔代数次数足够大
(4)将输入输出进行多项式表现时的项数足够多。
(1)主要决定对差分攻击的抵抗性,(2)主要决定对线性攻击的抵抗性,(3)主要决定对高阶差分攻击的抵抗性,(4)主要决定对插值攻击的抵抗性。并且,为了提高安全性,S盒的输入输出的比特相关性较低、使输入变化1比特时输出的变化为1/2左右等很重要。
另外,对S盒除了要求安全性以外,还要求较高的安装性能。例如,在利用软件执行密码处理、哈希函数的安装结构中,通常进行设为如下结构的安装:在存储器中保持表示对于输入的输出的表,通过被称为查表(表安装)的方法执行非线性变换处理,因此该结构的安装性能不怎么依赖于S盒的内部结构。然而,在硬件安装中,例如构成用于根据输入值来算出特定的输出的电路。该电路结构根据所应用的S盒而发生较大变化,因而对电路规模产生影响。
如上所述,作为为了维持密码算法、哈希算法的安全性而要求S盒具有的特性,存在如下特性:
(1)最大差分概率足够小
(2)最大线性概率足够小
(3)进行布尔多项式表现时的布尔代数次数足够大
(4)将输入输出进行多项式表现时的项数足够多,
作为高效地生成满足这种要求的S盒的方法,通常已知使用扩展域上的乘方函数的方法。在该方法中如果适当地选择扩展域的次数和乘方的指数,则能够生成特性优良的S盒。
实际上在设n-bit输入输出S盒的输入为x、输出为y、并分别为扩展域GF(2n)的基的情况下,在以
[式6]
y=x2′+1
  〔t为任意整数〕
y=x-1
提供y=f(x)的情况下,通常已知在最大差分概率、最大线性概率这点上能够构成最适合的S盒。
作为用这种方法构成的S盒的例子,列举出在AES、Camellia、MISTY中应用的S盒等。
关于AES、Camellia的S盒,也能够设为GF((24)2)上的逆元函数来构成S盒,因此可以说从安全性的观点出发特性非常好,并且具有非常高的硬件安装性能。
然而,近年来,关于这种S盒,也被指出与利用其特征性的代数性质的攻击法、其过于均匀的扩散性有关的问题点等。
根据上述的问题点考虑不具有特征性的代数性质的S盒的构成法,考虑通过如下的方法来生成S盒的方法以使S盒不具有较强的代数结构:通过随机、或以其为基准的方法来选择要素。当通过这种方法生成S盒时,多数情况下不具有特征性的代数结构,并且不进行如扩展域上的乘方函数那样的均匀的扩散,因此可以说针对如上所述的问题采取了对策。
然而,由于存在2n阶乘个n-bit输入输出的双射S盒的数,因此实际上用随机生成n-bit输入输出的S盒并逐个检查其特性的方法,当n变大到某种程度时,难以高效地生成特性优良的S盒。
另外,在完全随机地选择S盒的要素的情况下,在硬件中安装时也仅能够主要使用被称为表安装的方法,因此安装效率大幅降低。
根据这种问题进行了如下试验:随机地生成具有较小的大小的输入输出的S盒,组合多个S盒来生成更大的S盒。例如,可认为
CRYPTON ver.0.5、
CRYPTON ver.1.0、
Whirlpool、
FOX
等的S盒等是根据这种方法而生成的S盒。下面,说明它们的具体的结构例及其问题点。
(3-2)以往的由多个小型S盒的组合构成的非线性变换处理结构和问题点
下面,对以下的各结构说明以往的由多个小型S盒的组合构成的非线性变换处理结构和问题点:
(a)CRYPTON ver.0.5、
(b)CRYPTON ver.1.0、
(c)Whirlpool、
(d)FOX。
(a)CRYPTON ver.0.5
例如,CRYPTON ver.0.5的S盒具有图9所示的结构。具有如下结构:S盒[S40]101、S盒[S41]102、S盒[S42]103是4比特输入输出的S盒,将这三个S盒与异或运算部111~113组合,对输入8比特进行非线性变换从而得到输出8比特。此外,在图中示出的S盒的标记[S4n]中,4表示是4比特输入输出的S盒,n是S盒的标识符。S盒[S40]101、S盒[S41]102、S盒[S42]103都是4比特输入输出的S盒,是分别执行不同的非线性变换处理的不同的S盒。
该结构由于采用所谓的3级Feistel结构,因此导致布尔代数次数变低,并且关键路径(critical path)较长。即,是从输入起直到得到最终输出为止必须通过三个较小的S盒的结构。因而,具有安装性能不太高的特征。
(b)CRYPTON ver.1.0
另外,CRYPTON ver.1.0的S盒具有图10所示的结构。由S盒[S40]121、S盒[S41]122、执行S盒[S41]122的逆变换的S盒[S41 -1]123、执行S盒[S40]121的逆变换的S盒[S40 -1]124、以及利用比特运算执行线性变换处理的比特运算部131、132构成。
在S盒[S40]121中对输入8比特的上位4比特执行非线性变换之后,输入到比特运算部131进行线性变换,将其结果输入到S盒[S41 -1]123并输出非线性变换结果。关于下位4比特,在S盒[S41]122中执行非线性变换之后,输入到比特运算部131进行线性变换,将其结果输入到S盒[S40 -1]123并输出非线性变换结果。
该结构必须从1-bit要素8×8的矩阵、即64比特的空间中选择在中间使用的比特运算部131中的比特运算,因此很难进行该选择。即,在非线性变换中,要求设为从非线性变换对象的输入8比特得到基本上没有偏置的作为与各输入8比特对应的非线性变换结果的输出8比特的结构,从而存在如下问题:难以进行用于使在中间级的比特运算部131、132中应用的矩阵成为满足该要求的矩阵的选择。
(c)Whirlpool
另外,Whirlpool的S盒设为如图11那样的结构。具有如下结构:使用S盒[S40]141、144、执行S盒[S40]的逆变换的S盒[S40 -1]142、145、以及S盒[S41]143,通过异或运算部151~153来结合这些S盒。
在该结构中,所需的较小的S盒数多达5个,并且关键路径较长。即,是从输入起直到最终输出为止必须通过三个较小的S盒的结构,存在安装性能不太高的问题。
(d)FOX
并且,FOX的S盒设为图12所示的结构。具有如下结构:使用三种4比特输入输出S盒161~163、4比特输入输出OR电路171、172,通过异或运算部来连接它们。
在该结构中,所需的较小的S盒数较少为3个,但是整体上异或运算部(XOR)的数量较多,关键路径也较长。为了从输入得到最终输出必须通过三个较小的S盒。因此,存在安装性能不太高的问题。
(3-3)本发明所涉及的由多个小型S盒的组合构成的非线性变换处理结构
接着,说明本发明所涉及的由多个小型S盒的组合构成的非线性变换处理结构。如上所述,关于由多个小型S盒的组合构成的非线性变换处理结构,已经提出多个类型,但是分别具有关键路径较长的问题点、线性变换矩阵的设定困难等问题点。
首先,说明下面理解按照本发明的非线性变换处理结构所需的以下的术语:
(a)分支数以及最优扩散层、
(b)扩展域上的矩阵运算。
(a)分支数以及最优扩散层
首先,说明分支数以及最优扩散变换(Optimal DiffusionMappings)。
对从n×a比特数据向n×b比特数据的映射
θ:{0,1}na→{0,1}nb
将分支数Bn(θ)定义为如下。
[式7]
B n ( θ ) = min α ≠ 0 { hw n ( α ) + hw n ( θ ( α ) ) }
其中,设minα≠0{Xα}表示满足α≠0的所有Xα中的最小值,设hwn(Y)是在按每n比特分割表示比特列Y时n比特的数据都返回不是0的(非零)要素数的函数。此时,将分支数B(θ)为b+1那样的映射θ定义为最优扩散变换(Optimal Diffusion Mappings)。另外,以后将满足ODM的矩阵定义为MDS(Maximum DistanceSeparable:最大距离可分)矩阵。
(b)扩展域上的矩阵运算
将在扩展域GF(2n)上进行的矩阵运算称为扩展域上的矩阵运算,其中,利用在基础域GF(2)上定义的n次既约多项式p(x)制作扩展域GF(2n)。
例如,
[式8]
y 0 y 1 = a 0,0 a 0,1 a 1,0 a 1,1 x 0 x 1
考虑上述矩阵运算。
在上述矩阵运算中,输出y0、y1分别被表现为
y=a0,0x0+a0,1x1
y1=a1,0x0+a1,1x1
此时考虑a0,0、x0等变量都是扩展域GF(2n)上的基,在扩展域GF(2n)上进行所有运算。将利用这种方法进行矩阵运算的方法称为扩展域上的矩阵运算。
本发明所涉及的非线性变换处理结构实现了如下的非线性变换处理结构:解决了上述的以往的由多个小型S盒的组合构成的非线性变换处理结构中的问题点、即关键路径较长的问题点、线性变换矩阵的设定困难等问题点。
在本发明的结构中,为了高效地生成难以在扩展域GF(2n)上进行简单的表现、并且具有较高的安装性能(特别是硬件)的n-bit输入输出的双射S盒,而在较小的S盒的组合位置组合分支数较高的具有与较小的S盒的输入输出大小相同大小的要素的矩阵运算,来实现作为较大的S盒的非线性变换处理结构。具体地说,分支数较高的矩阵运算表示对于m×m矩阵具有m以上的分支数的矩阵。
作为分支数较高的矩阵,例如选择执行上述的最优扩散变换的MDS(Maximum Distance Separable)矩阵。MDS矩阵是构成矩阵的任意的小矩阵为正则矩阵的矩阵。此外,正则矩阵是具有逆矩阵的矩阵,当设矩阵为A、逆矩阵为A-1时,
AA-1=A-1A=E
其中,E是单位矩阵,上式成立的具有逆矩阵A-1的矩阵A是正则矩阵。
图13示出本发明的一个实施例所涉及的作为非线性变换处理结构的n比特输入输出S盒的结构例。图13所示的结构是由4个n/2比特输入输出的双射S盒201~204、以及线性变换处理部211构成的执行n比特输入输出的非线性变换处理的结构,其中,上述线性变换处理部211由在扩展域GF(2n/2)上定义的2×2MDS(Maximum Distance Separable)矩阵构成。
是如下结构:输入n比特以上位n/2比特、下位n/2比特分别输入到n/2比特输入输出的双射S盒[S0]201、S盒[S1]202,在各S盒中进行非线性变换处理之后,输入到由在扩展域GF(2n/2)上定义的2×2MDS矩阵构成的线性变换处理部211,进行基于MDS矩阵的线性变换处理之后,线性变换结果的n比特以上位n/2比特、下位n/2比特分别输入到n/2比特输入输出的双射S盒[S2]203、S盒[S3]204,在各S盒中进行非线性变换处理,从而得到作为输出结果的n比特。
当如在图13所示的线性变换处理部211中应用的MDS矩阵那样利用分支数较高的扩散变换矩阵时,保证将前级的较小的S盒[S0]201、S盒[S1]202的输出非常均衡地配置为后级的较小的S盒[S2]203、S盒[S3]204的输入,因此能够生成整体特性优良的较大的S盒。另外,根据较小的S盒的输入输出大小(n/2)唯一地决定在线性变换处理部211中应用的相当于扩散变换矩阵的MDS矩阵的要素的大小,因此即使较大的S盒的输入输出大小(n)变大,由于限定了可选择的矩阵的空间,因此也能够容易地检查该矩阵的分支数。
在图13所示的结构中的线性变换处理部211中应用的作为扩散变换矩阵的MDS矩阵的要素的大小是n/2比特,由于是2×2的矩阵,因此要素数为4个,即使检查整个矩阵,该数也为2n/2×4种左右,因此能够容易地检查整个矩阵。其中,设矩阵运算是利用在GF(2)上定义的n次既约多项式p(x)制作的扩展域GF(2n)上的矩阵运算。
当用该方法生成S盒时,考虑到限定为图13所示的结构中的输入输出大小n/2比特的较小的S盒201~204能够进行简单的代数表现,因此在扩展域GF(2n)上的要素看起来是随机的。因此,可以认为难以在GF(2n)上进行简单的代数表现。另外,期待不像扩展域上的乘方运算那样进行均匀的扩散。
并且,如果适当地选择矩阵,则能够以简单的运算以及较短的路径构成S盒,因此,可以说与以n-bit随机生成的S盒、以往的组合较小的S盒而构成的S盒相比,安装效率更高。
参照图14~图17说明应用了图13所示的结构的执行具体的8比特输入输出的非线性变换的S盒的结构例。
图14的(a)、图15的(a)所示的结构相同,是表示应用了图13所示的结构的作为执行具体的8比特输入输出的非线性变换的S盒的一个结构例的8比特S盒300的结构的图。图14的(b)表示作为图14的(a)所示的8比特S盒300的结构要素的4个4比特输入输出S盒301~304的变换表。在该表中使用的数值是16进制数。是表示对于输入:x=0~F(16进制数)的各S盒301~304的输出值的表。另外,在图15的(c)中示出使用分支数较高的扩散变换、具体地说为最优扩散变换[ODM]即MDS矩阵(matrix)311作为图15的(a)(=图14的(a))所示的线性变换处理部311的具体例。
说明图14的(a)所示的执行8比特输入输出的非线性变换的S盒的处理。首先,将作为8比特S盒300的输入的x(8-bit)按1/2、即每4-bit分割为x[0]、x[1]。接着将x[0]输入到4-bit输入输出的S盒[S40]301,将x[1]输入到4-bit输入输出的S盒[S41]302,得到作为各S盒301、302中的非线性变换结果的输出w[0]、w[1]。S盒[S40]301、S盒[S41]302是随机选择的4比特S盒,设为按照图14的(b)的表的变换处理来执行非线性变换。
此外,S盒[S40]301、S盒[S41]302是满足最大差分概率足够低、最大线性概率足够低等S盒应该满足的所有性质那样的S盒。另外,由于这些S盒是4-bit输入输出,因此能够实现搜索满足这种性质的S盒。
将S盒[S40]301、S盒[S41]302的输出w[0]、w[1]输入到利用最优扩散变换[ODM]即MDS矩阵(matrix)执行线性变换的线性变换处理部311,作为MDS矩阵(matrix)的线性变换结果输出z[0]、z[1]。在线性变换处理部311中通过由在GF(2)上定义的4次既约多项式:p(x)=x4+x+1制作的扩展域GF(24)上的矩阵运算来执行线性变换,输出z[0]、z[1]。作为线性变换处理部311的MDS矩阵(matrix)执行基于具有由GF(2)上的4次既约多项式定义的扩展域GF(24)上的基作为要素的由2×2的4个要素构成的矩阵的线性变换处理。
图15的(c)示出矩阵运算的具体处理。在应用了图15的(c)所示的2×2的MDS矩阵的情况下,根据输入w[0]、w[1],如下算出输出z[0]、z[1]。
z[0]=w[0](XOR)w[1]×2
z[1]=w[0]×2(XOR)w[1]
将作为最优扩散变换[ODM]即MDS矩阵(matrix)的线性变换结果而得到的8比特数据中的上位4比特z[0]输入到4-bit输入输出的S盒[S42]303,将下位4比特z[1]输入到4-bit输入输出的S盒[S43]304,在这些4比特S盒中执行非线性变换,得到输出y[0]、y[1]。S盒[S42]303、S盒[S43]304与S盒[S40]301、S盒[S41]302相同,分别是随机选择的特性优良的4比特S盒,执行按照图14的(b)所示的表的数据变换。最后将结合S盒[S42]303、S盒[S43]304所输出的4比特数据y[0]和y[1]得到的8比特数据设为8比特输入输出的S盒300的最终输出y(8-bit)。
图16的(a)所示的结构与图14的(a)所示的结构相同是应用了图13所示的结构的执行具体的8比特输入输出的非线性变换的8比特S盒320的一个结构例,图16的(b)表示作为图16的(a)所示的8比特S盒320的结构要素的4个4比特输入输出S盒321~324的变换表。在该表中使用的数值是16进制数。是表示对于输入:x=0~F(16进制数)的各S盒321~324的输出值的表。另外,在图17的(c)中示出使用最优扩散变换[ODM]即MDS矩阵(matrix)331作为图17的(a)(=图16的(a))所示的线性变换处理部331的具体例。
关于图16、图17所示的结构例,
4比特输入输出S盒321~324执行按照图16的(b)所示的表的非线性变换、
线性变换处理部331进行按照图17的(c)的变换处理、
这些处理不同。
在线性变换处理部331中,通过由在GF(2)上定义的4次既约多项式:p(x)=x4+x+1制作的扩展域GF(24)上的矩阵运算来执行线性变换,输出z[0]、z[1]。作为线性变换处理部311的MDS矩阵(matrix)执行基于具有由4次既约多项式定义的以2为模的扩展域GF(24)上的基作为要素的由2×2的4个要素构成的矩阵的线性变换处理。
图17的(c)示出矩阵运算的具体处理。在应用了图17的(c)所示的2×2的MDS矩阵的情况下,根据输入w[0]、w[1],如下地算出输出z[0]、z[1]。
z[0]=w[0](XOR)w[1]
z[1]=w[0](XOR)w[1]×2
图14~图17所示的例子是执行8比特输入输出的非线性变换处理的S盒,在线性变换处理部311、331中应用的MDS矩阵的要素的大小都是n/2比特,由于是2×2的矩阵,因此要素数为4个,即使检查整个矩阵,该数也为2n/2×4种左右,因此能够容易地检查整个矩阵,如上所述,当用该方法生成S盒时,考虑到限定为较小的S盒能够进行简单的代数表现,因此在扩展域GF(2n)上的要素看起来是随机的,能够认为难以在GF(2n)上进行简单的代数表现。另外,不像扩展域上的乘方运算那样进行均匀的扩散。另外,在用于从输入得到输出的路径上仅存在两个较小的S盒,如果适当地选择矩阵,则能够以简单的运算以及较短的路径构成S盒,因此与以n-bit随机生成的S盒、以往的组合较小的S盒而构成的S盒相比,安装效率更高。
在图13~图17所示的结构例中,是将输入n比特进行二分割并将上位n/2比特、下位n/2比特分别输入到n/2比特输入输出的S盒的结构,另外,是将来自线性变换处理部的输出n比特的上位n/2比特、下位n/2比特分别输入到n/2比特输入输出的S盒[S2]从而得到非线性变换处理结果的结构,但是将输入比特分割输入的较小的S盒数并不限于两个,也可以是其它的数。图18示出利用将输入n比特进行四分割来进行每n/4比特的非线性变换处理的较小的n/4比特输入输出S盒的n比特S盒400的结构例。
图18所示的n比特S盒400的结构是由8个n/4比特输入输出的双射S盒401~408、以及线性变换处理部421构成的执行n比特输入输出的非线性变换处理的结构,其中,上述线性变换处理部421由作为分支数较高的扩散变换的最优扩散变换[ODM]即在扩展域GF(2n/4)上定义的4×4MDS(Maximum DistanceSeparable)矩阵构成。
是如下结构:将输入n比特以每n/4比特进行分割,并分别输入到n/4比特输入输出的双射S盒[S0]401、S盒[S1]402、S盒[S2]403、S盒[S3]404,在各S盒中进行非线性变换处理之后,输入到由在扩展域GF(2n/4)上定义的4×4MDS矩阵构成的线性变换处理部421,进行基于MDS矩阵的线性变换处理之后,将线性变换结果的n比特的每n/4比特分别输入到n/4比特输入输出的S盒[S0]405、S盒[S1]406、S盒[S2]407、S盒[S3]408,在各S盒中进行非线性变换处理,得到作为输出结果的n比特。
在图18所示的线性变换处理部421中应用的扩散变换也是最优扩散变换[ODM]即MDS矩阵,保证将前级的四个较小的S盒的输出非常均衡地配置为后级的较小的S盒的输入,因此能够生成整体特性优良的较大的S盒。
概述由上述的执行按照本发明的非线性变换处理的S盒构成的数据变换装置的结构。本发明的数据变换装置的特征在于具有以下结构。即,具有:第一级非线性变换部,其由执行分割输入数据得到的各分割数据的非线性变换处理的多个小型非线性变换部(较小的S盒)构成;线性变换部,其输入来自构成第一级非线性变换部的多个小型非线性变换部的所有输出并执行线性变换;以及第二级非线性变换部,其由执行分割线性变换部的输出数据得到的各分割数据的非线性变换处理的多个小型非线性变换部(较小的S盒)构成,其中,线性变换部是如下结构:利用具有与输入数据的比特大小相同大小的要素的矩阵运算来执行数据变换,在矩阵是m×m矩阵的情况下,执行应用了具有至少m以上的分支数的高分支数的矩阵的数据变换处理。
具体地说,在输入数据是n比特数据的情况下,第一非线性变换部由k个小型非线性变换部构成,该k个小型非线性变换部分别输入作为输入数据的n比特数据的分割数据即n/k比特,输出作为非线性变换处理结果的n/k比特,线性变换部是输入k个小型非线性变换部所输出的总计n比特的数据,通过应用了高分支数的矩阵的数据变换处理来生成n比特的输出的结构,第二非线性变换部是如下结构:具有k个小型非线性变换部,该k个小型非线性变换部分别输入作为从线性变换部输出的n比特数据的分割数据的n/k比特,输出作为非线性变换处理结果的n/k比特。
在此,线性变换部是执行应用了MDS(Maximum DistanceSeparable)矩阵的数据变换处理的结构,上述MDS矩阵执行分支数为m以上的扩散变换、例如最优扩散变换ODM(OptimalDiffusion Mappings),并且,具体地说,在输入数据是n比特数据的情况下,是执行应用了由在GF(2)上定义的n次既约多项式p(x)定义的扩展域GF(2n)上的矩阵的数据变换处理的结构。
此外,本发明所涉及的数据变换装置可具体化为执行之前所说明的共用密钥块密码处理的装置,例如,能够在进行应用了
(a)SPN(Substitution Permutation Network)结构、
(b)Feistel结构、
(c)扩展Feistel结构
这些结构的密码处理的装置中的非线性变换部中应用上述数据变换装置。此外,除了密码处理以外,还能够在哈希函数等进行非线性变换的运算装置中应用本发明的结构。
[4.密码处理装置的结构例]
最后,在图19中示出以作为密码处理装置的IC模块700作为执行按照上述的实施例的数据变换处理的装置例的结构例。例如能够在PC、IC卡、读写器、其它各种信息处理装置中执行上述处理,图19所示的IC模块700能够构成在这些各种设备中。
图19所示的CPU(Central processing Unit:中央处理单元)701是执行密码处理的开始、结束、数据的发送接收的控制、各结构部间的数据传送控制、其它各种程序的处理器。存储器702由ROM(Read-Only-Memory:只读存储器)、RAM(RandomAccess Memory:随机存取存储器)等构成,其中,上述ROM保存CPU 701所执行的程序、或运算参数等固定数据,上述RAM作为在CPU 701的处理中执行的程序以及在程序处理中适当变化的参数的保存区域、工作区域而使用。另外,存储器702能够作为密码处理中所需的密钥数据、在密码处理中应用的变换表(置换表)、在变换矩阵中应用的数据等的保存区域而使用。此外,数据保存区域优选构成为具有耐损害(tamper)结构的存储器。
密码处理部703例如执行按照应用了上述各种密码处理结构、即
(a)SPN(Substitution Permutation Network)结构、
(b)Feistel结构、
(c)扩展Feistel结构
这些各结构中的任一个结构的共用密钥块密码处理算法的密码处理、解密处理,并且执行应用了哈希函数的运算处理等。
另外,作为执行与上述的实施例对应的非线性变换处理的结构、即n比特输入输出S盒的结构,密码处理部703具有执行如下非线性变换处理的结构:利用执行小于n的输入输出比特的非线性变换的较小的S盒执行非线性变换,将其结果输入到MDS矩阵等分支数较高的扩散变换矩阵并执行应用了矩阵的变换,对其变换结果进一步应用执行小于n的输入输出比特的非线性变换的较小的S盒来执行非线性变换而得到n比特的非线性变换结果。
此外,在此,示出将密码处理单元设为单独的模块的例子,但是也可以不设置这种独立的密码处理模块,而构成为例如将密码处理程序保存到ROM中,由CPU 701读取ROM保存程序来执行。
随机数产生器704执行在密码处理所需的密钥的生成等中所必需的随机数的产生处理。
发送接收部705是执行与外部的数据通信的数据通信处理部,例如执行与读写器等IC模块之间的数据通信,执行在IC模块内生成的密文的输出、或者来自外部读写器等设备的数据输入等。
该IC模块700具有执行处理的结构,上述处理为应用了按照上述的实施例的作为非线性变换处理部的S盒的处理、即应用了具有参照图13~图18所说明的结构的S盒的非线性变换处理。
以上,参照特定的实施例详细说明了本发明。然而,在不脱离本发明的要旨的范围内本领域技术人员可进行该实施例的修改、代用是显而易见的。即,以例示的形式公开了本发明,并不是限定性地解释本发明。要判断本发明的要旨,需要参考权利要求书范围一栏。
此外,在说明书中说明的一系列处理能够通过硬件、或软件、或两者的合成结构来执行。在通过软件执行处理的情况下,能够将记录了处理顺序的程序安装到嵌入在专用硬件中的计算机内的存储器中来执行、或者将程序安装到可执行各种处理的通用计算机中执行。
例如,可将程序预先记录在作为记录介质的硬盘、ROM(Read Only Memory)中。或者,可将程序暂时或永久性地保存(记录)在软盘、CD-ROM(Compact Disc Read Only Memory:光盘只读存储器)、MO(Magneto optical:磁光)盘、DVD(DigitalVersatile Disc:数字多功能光盘)、磁盘、半导体存储器等可移动记录介质中。能够将这种可移动记录介质作为所谓的封装软件进行提供。
此外,除了从如上所述的可移动记录介质将程序安装到计算机之外,还能够从下载站点无线传送到计算机、或通过称为LAN(Local Area Network:局域网)、因特网的网络而有线传送到计算机,在计算机中接收这样传送过来的程序并安装到内置的硬盘等记录介质中。
此外,说明书中记载的各种处理,不仅按照记载以时间序列执行,也可以根据执行处理的装置的处理能力或需要来并行或单独地执行。另外,在本说明书中系统是多个装置的逻辑集合结构,并不限于各结构的装置在同一壳体内。
产业上的可利用性
如上所述,根据本发明的一个实施例的结构,例如将在共用密钥块密码处理、哈希函数等处理中执行的非线性变换处理设为进行应用了第一级非线性变换部、线性变换部以及第二级非线性变换部的数据变换的结构,其中,上述第一级非线性变换部利用多个较小的S盒(S-box)执行非线性变换,上述线性变换部输入来自第一级非线性变换部的所有输出,执行线性变换,上述第二级非线性变换部由执行分割线性变换部的输出数据得到的各分割数据的非线性变换处理的多个小型非线性变换部构成,在线性变换部中设为执行应用了进行最优扩散变换的矩阵的数据变换的结构,因此能够不使从数据的输入起直到输出的关键路径过大,而实现适当的数据扩散,实现对各种密码攻击的抵抗性较强的安全性较高的数据变换。
权利要求书(按照条约第19条的修改)
1.(修改后)一种数据变换装置,其特征在于,具有:
第一级非线性变换部,其由多个小型非线性变换部构成,该多个小型非线性变换部不进行来自外部的密钥输入而对分割输入数据得到的各分割数据执行非线性变换处理;
线性变换部,其输入来自构成上述第一级非线性变换部的多个小型非线性变换部的所有输出并执行线性变换;以及
第二级非线性变换部,其由多个小型非线性变换部构成,该多个小型非线性变换部不进行来自外部的密钥输入而对分割上述线性变换部的输出数据得到的各分割数据执行非线性变换处理,
其中,上述线性变换部是如下结构:利用具有与上述输入数据的比特大小相同大小的要素的矩阵运算来执行数据变换,在矩阵是m×m矩阵的情况下,执行应用了具有至少m以上的分支数的高分支数的矩阵的数据变换处理。
2.根据权利要求1所述的数据变换装置,其特征在于,
在上述输入数据是n比特数据的情况下,
上述第一非线性变换部由k个小型非线性变换部构成,其中,上述k个小型非线性变换部分别输入作为输入数据的n比特数据的分割数据即n/k比特并输出作为非线性变换处理结果的n/k比特,
上述线性变换部是如下结构:输入由上述k个小型非线性变换部所输出的总计n比特的数据,通过应用了高分支数的矩阵的数据变换处理来生成n比特的输出,
上述第二非线性变换部是具有k个小型非线性变换部的结构,其中,上述k个小型非线性变换部分别输入从上述线性变换部输出的n比特数据的分割数据即n/k比特并输出作为非线性变换处理结果的n/k比特。
3.根据权利要求1所述的数据变换装置,其特征在于,
上述线性变换部是执行应用了MDS(Maximum DistanceSeparable)矩阵的数据变换处理的结构,其中,上述MDS矩阵执行最优扩散变换(ODM(Optimal Diffusion Mappings))处理。
4.根据权利要求1所述的数据变换装置,其特征在于,
在上述输入数据是n比特数据的情况下,上述线性变换部是执行应用了由在GF(2)上定义的n次既约多项式p(x)定义的扩展域GF(2n)上的矩阵的数据变换处理的结构。
5.根据权利要求1所述的数据变换装置,其特征在于,
上述数据变换装置是执行n比特输入输出的非线性变换处理的S盒,
包含在上述第一级非线性变换部和上述第二级非线性变换部中的多个小型非线性变换部由执行比特数少于n比特的非线性变换处理的小型S盒构成。
6.根据权利要求1至5中的任一项所述的数据变换装置,其特征在于,
上述数据变换装置是执行伴随有非线性变换处理的密码处理的结构。
7.根据权利要求6所述的数据变换装置,其特征在于,
上述密码处理是共用密钥块密码处理。
8.(修改后)一种数据变换方法,在数据变换装置中执行,其特征在于,具有以下步骤:
第一级非线性变换步骤,在第一级非线性变换部中,应用多个小型非线性变换部,不进行来自外部的密钥输入而对分割输入数据得到的各分割数据执行非线性变换处理;
线性变换步骤,在线性变换部中,输入来自构成上述第一级非线性变换部的多个小型非线性变换部的所有输出并执行线性变换;以及
第二级非线性变换步骤,在第二级非线性变换部中,应用多个小型非线性变换部,不进行来自外部的密钥输入而对分割上述线性变换部的输出数据得到的各分割数据执行非线性变换处理,
其中,上述线性变换步骤是如下步骤:利用具有与上述输入数据的比特大小相同大小的要素的矩阵运算来执行数据变换,在矩阵是m×m矩阵的情况下,执行应用了具有至少m以上的分支数的高分支数的矩阵的数据变换处理。
9.(修改后)一种计算机程序,使数据变换装置执行数据变换处理,其特征在于,具有以下步骤:
第一级非线性变换步骤,在第一级非线性变换部中,应用多个小型非线性变换部,不进行来自外部的密钥输入而对分割输入数据得到的各分割数据执行非线性变换处理;
线性变换步骤,在线性变换部中,输入来自构成上述第一级非线性变换部的多个小型非线性变换部的所有输出并执行线性变换;以及
第二级非线性变换步骤,在第二级非线性变换部中,应用多个小型非线性变换部,不进行来自外部的密钥输入而对分割上述线性变换部的输出数据得到的各分割数据执行非线性变换处理,
其中,上述线性变换步骤是如下步骤:利用具有与上述输入数据的比特大小相同大小的要素的矩阵运算执行数据变换,在矩阵是m×m矩阵的情况下,执行应用了具有至少m以上的分支数的高分支数的矩阵的数据变换处理。

Claims (9)

1.一种数据变换装置,其特征在于,具有:
第一级非线性变换部,其由多个小型非线性变换部构成,该多个小型非线性变换部对分割输入数据得到的各分割数据执行非线性变换处理;
线性变换部,其输入来自构成上述第一级非线性变换部的多个小型非线性变换部的所有输出并执行线性变换;以及
第二级非线性变换部,其由多个小型非线性变换部构成,该多个小型非线性变换部对分割上述线性变换部的输出数据得到的各分割数据执行非线性变换处理,
其中,上述线性变换部是如下结构:利用具有与上述输入数据的比特大小相同大小的要素的矩阵运算来执行数据变换,在矩阵是m×m矩阵的情况下,执行应用了具有至少m以上的分支数的高分支数的矩阵的数据变换处理。
2.根据权利要求1所述的数据变换装置,其特征在于,
在上述输入数据是n比特数据的情况下,
上述第一非线性变换部由k个小型非线性变换部构成,其中,上述k个小型非线性变换部分别输入作为输入数据的n比特数据的分割数据即n/k比特并输出作为非线性变换处理结果的n/k比特,
上述线性变换部是如下结构:输入由上述k个小型非线性变换部所输出的总计n比特的数据,通过应用了高分支数的矩阵的数据变换处理来生成n比特的输出,
上述第二非线性变换部是具有k个小型非线性变换部的结构,其中,上述k个小型非线性变换部分别输入从上述线性变换部输出的n比特数据的分割数据即n/k比特并输出作为非线性变换处理结果的n/k比特。
3.根据权利要求1所述的数据变换装置,其特征在于,
上述线性变换部是执行应用了MDS(Maximum DistanceSeparable)矩阵的数据变换处理的结构,其中,上述MDS矩阵执行最优扩散变换(ODM(Optimal Diffusion Mappings))处理。
4.根据权利要求1所述的数据变换装置,其特征在于,
在上述输入数据是n比特数据的情况下,上述线性变换部是执行应用了由在GF(2)上定义的n次既约多项式p(x)定义的扩展域GF(2n)上的矩阵的数据变换处理的结构。
5.根据权利要求1所述的数据变换装置,其特征在于,
上述数据变换装置是执行n比特输入输出的非线性变换处理的S盒,
包含在上述第一级非线性变换部和上述第二级非线性变换部中的多个小型非线性变换部由执行比特数少于n比特的非线性变换处理的小型S盒构成。
6.根据权利要求1至5中的任一项所述的数据变换装置,其特征在于,
上述数据变换装置是执行伴随有非线性变换处理的密码处理的结构。
7.根据权利要求6所述的数据变换装置,其特征在于,
上述密码处理是共用密钥块密码处理。
8.一种数据变换方法,在数据变换装置中执行,其特征在于,具有以下步骤:
第一级非线性变换步骤,在第一级非线性变换部中,应用多个小型非线性变换部对分割输入数据得到的各分割数据执行非线性变换处理;
线性变换步骤,在线性变换部中,输入来自构成上述第一级非线性变换部的多个小型非线性变换部的所有输出并执行线性变换;以及
第二级非线性变换步骤,在第二级非线性变换部中,应用多个小型非线性变换部对分割上述线性变换部的输出数据得到的各分割数据执行非线性变换处理,
其中,上述线性变换步骤是如下步骤:利用具有与上述输入数据的比特大小相同大小的要素的矩阵运算来执行数据变换,在矩阵是m×m矩阵的情况下,执行应用了具有至少m以上的分支数的高分支数的矩阵的数据变换处理。
9.一种计算机程序,使数据变换装置执行数据变换处理,其特征在于,具有以下步骤:
第一级非线性变换步骤,在第一级非线性变换部中,应用多个小型非线性变换部对分割输入数据得到的各分割数据执行非线性变换处理;
线性变换步骤,在线性变换部中,输入来自构成上述第一级非线性变换部的多个小型非线性变换部的所有输出并执行线性变换;以及
第二级非线性变换步骤,在第二级非线性变换部中,应用多个小型非线性变换部对分割上述线性变换部的输出数据得到的各分割数据执行非线性变换处理,
其中,上述线性变换步骤是如下步骤:利用具有与上述输入数据的比特大小相同大小的要素的矩阵运算执行数据变换,在矩阵是m×m矩阵的情况下,执行应用了具有至少m以上的分支数的高分支数的矩阵的数据变换处理。
CN2007800321049A 2006-09-01 2007-08-29 共用密钥块密码处理装置和共用密钥块密码处理方法 Expired - Fee Related CN101512618B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP238227/2006 2006-09-01
JP2006238227A JP2008058830A (ja) 2006-09-01 2006-09-01 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
PCT/JP2007/066732 WO2008026624A1 (en) 2006-09-01 2007-08-29 Data conversion device, data conversion method, and computer program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201210050602.9A Division CN102594546B (zh) 2006-09-01 2007-08-29 信息处理装置

Publications (2)

Publication Number Publication Date
CN101512618A true CN101512618A (zh) 2009-08-19
CN101512618B CN101512618B (zh) 2012-12-05

Family

ID=39135906

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201210050602.9A Expired - Fee Related CN102594546B (zh) 2006-09-01 2007-08-29 信息处理装置
CN2007800321049A Expired - Fee Related CN101512618B (zh) 2006-09-01 2007-08-29 共用密钥块密码处理装置和共用密钥块密码处理方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201210050602.9A Expired - Fee Related CN102594546B (zh) 2006-09-01 2007-08-29 信息处理装置

Country Status (6)

Country Link
US (1) US8787568B2 (zh)
EP (1) EP2058783A4 (zh)
JP (1) JP2008058830A (zh)
CN (2) CN102594546B (zh)
TW (1) TW200830233A (zh)
WO (1) WO2008026624A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101951314A (zh) * 2010-10-12 2011-01-19 北京航空航天大学 对称密码加密中s-盒的设计方法
WO2011153666A1 (zh) * 2010-06-11 2011-12-15 中国科学院软件研究所 一种s盒构造方法及s盒
CN107707343A (zh) * 2017-11-08 2018-02-16 贵州大学 加解密一致的sp网络结构轻量级lbt分组密码实现方法

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4561252B2 (ja) * 2004-09-03 2010-10-13 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP2010044251A (ja) * 2008-08-13 2010-02-25 Hitachi Ltd ハッシュ値生成装置、プログラム及びハッシュ値生成方法
US8363828B2 (en) * 2009-02-09 2013-01-29 Intel Corporation Diffusion and cryptographic-related operations
WO2011036745A1 (ja) * 2009-09-24 2011-03-31 株式会社東芝 鍵スケジュール装置および方法
KR101646705B1 (ko) 2009-12-01 2016-08-09 삼성전자주식회사 에스-박스를 구현한 암호화 장치
US8675865B2 (en) * 2010-09-24 2014-03-18 Intel Corporation Method and apparatus for a high bandwidth stream cipher
US20120079462A1 (en) * 2010-09-24 2012-03-29 SoftKrypt LLC Systems and methods of source software code obfuscation
FR2966953B1 (fr) 2010-11-02 2015-08-28 St Microelectronics Rousset Procede de contremesure cryptographique par derivation d'une donnee secrete
CN102006161B (zh) * 2010-12-02 2012-06-27 北京航空航天大学 一种对称密钥加密的非线性变换方法及其实现装置
JP5605197B2 (ja) * 2010-12-09 2014-10-15 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5682525B2 (ja) * 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5682526B2 (ja) * 2011-03-28 2015-03-11 ソニー株式会社 データ処理装置、およびデータ処理方法、並びにプログラム
JP5481455B2 (ja) * 2011-09-27 2014-04-23 株式会社東芝 暗号処理装置
US10142099B2 (en) * 2013-01-11 2018-11-27 Qualcomm Incorporated Method and apparatus for a computable, large, variable and secure substitution box
JP2014240921A (ja) * 2013-06-12 2014-12-25 株式会社東芝 暗号装置、暗号処理方法及び暗号処理プログラム
WO2016132506A1 (ja) * 2015-02-19 2016-08-25 三菱電機株式会社 疑似乱数生成装置及び疑似乱数生成プログラム
WO2016173882A1 (en) * 2015-04-30 2016-11-03 Koninklijke Philips N.V. Cryptographic device for calculating a block cipher
US10608814B2 (en) * 2015-05-17 2020-03-31 Gideon Samid Equivoe-T: Transposition equivocation cryptography
US11038668B2 (en) * 2015-05-17 2021-06-15 Gideon Samid Transposition encryption alphabet method (TEAM)
CN107425963A (zh) * 2017-05-09 2017-12-01 上海众人网络安全技术有限公司 一种密码墙的构建方法及系统
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
US20230297693A1 (en) * 2020-09-02 2023-09-21 Nec Corporation Information processing apparatus, information processing method, and non-transitory computer readable medium storing program
JPWO2022254511A1 (zh) * 2021-05-31 2022-12-08

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2927079B2 (ja) 1991-10-02 1999-07-28 松下電器産業株式会社 データ暗号化方法およびデータ暗号化装置
US5838794A (en) * 1996-01-11 1998-11-17 Teledyne Electronic Technologies Method and apparatus for inter-round mixing in iterated block substitution systems
JP3782210B2 (ja) * 1997-06-30 2006-06-07 日本電信電話株式会社 暗号装置
WO1999038143A1 (fr) * 1998-01-27 1999-07-29 Nippon Telegraph And Telephone Corporation Convertisseur de donnees et support d'enregistrement sur lequel est enregistre un programme d'execution de conversion de donnees
EP1059760A4 (en) * 1998-02-24 2002-09-18 Otkrytoe Aktsionernoe Obschest BLOCK ENCRYPTION OF DISCRETE DATA
JP3499810B2 (ja) * 2000-03-06 2004-02-23 株式会社東芝 暗号化装置、暗号化方法及び暗号化装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体並びに復号装置、復号方法及び復号装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体
DE60139280D1 (de) * 2000-03-09 2009-08-27 Nippon Telegraph & Telephone Blockverschlüsselungseinrichtung unter Verwendung von Hilfsumwandlungen
WO2002003605A1 (en) * 2000-07-04 2002-01-10 Koninklijke Philips Electronics N.V. Substitution-box for symmetric-key ciphers
JP2003098959A (ja) * 2001-09-21 2003-04-04 Toshiba Corp 暗号処理装置
EP1480371A1 (en) 2003-05-23 2004-11-24 Mediacrypt AG Device and method for encrypting and decrypting a block of data
JP4622222B2 (ja) * 2003-09-30 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4561252B2 (ja) 2004-09-03 2010-10-13 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011153666A1 (zh) * 2010-06-11 2011-12-15 中国科学院软件研究所 一种s盒构造方法及s盒
CN101951314A (zh) * 2010-10-12 2011-01-19 北京航空航天大学 对称密码加密中s-盒的设计方法
CN101951314B (zh) * 2010-10-12 2012-06-20 北京航空航天大学 对称密码加密中s-盒的设计方法
CN107707343A (zh) * 2017-11-08 2018-02-16 贵州大学 加解密一致的sp网络结构轻量级lbt分组密码实现方法
CN107707343B (zh) * 2017-11-08 2020-10-16 贵州大学 加解密一致的sp网络结构轻量级分组密码实现方法

Also Published As

Publication number Publication date
CN102594546A (zh) 2012-07-18
CN102594546B (zh) 2015-04-22
US20100002872A1 (en) 2010-01-07
TWI343551B (zh) 2011-06-11
TW200830233A (en) 2008-07-16
EP2058783A4 (en) 2017-04-19
EP2058783A1 (en) 2009-05-13
CN101512618B (zh) 2012-12-05
JP2008058830A (ja) 2008-03-13
WO2008026624A1 (en) 2008-03-06
US8787568B2 (en) 2014-07-22

Similar Documents

Publication Publication Date Title
CN101512618B (zh) 共用密钥块密码处理装置和共用密钥块密码处理方法
CN101512620B (zh) 密码处理装置和密码处理方法
CN101496080B (zh) 密码处理装置、密码处理算法构建方法和密码处理方法
CN101512619B (zh) 密码处理装置和密码处理方法
CN101553856B (zh) 密码处理装置和密码处理方法
CN101162557B (zh) 密码处理装置和密码处理方法
CN101536062B (zh) 密码处理装置和密码处理方法
CN100511331C (zh) 密码处理装置、密码处理方法及其计算机程序
CN101176134B (zh) 信息处理装置
CN101371286B (zh) 密码处理装置和密码处理方法
JP5682525B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
CN104639314A (zh) 基于aes加密/解密算法的装置和流水控制方法
CN101375323A (zh) 密码处理装置、密码处理装置制造装置及方法、以及计算机程序
JP5680016B2 (ja) 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
CN105027181A (zh) 加密数据运算系统、装置以及程序
JP5772934B2 (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121205