CN1879138A - 密码处理装置、密码处理方法及其计算机程序 - Google Patents

密码处理装置、密码处理方法及其计算机程序 Download PDF

Info

Publication number
CN1879138A
CN1879138A CNA2005800012597A CN200580001259A CN1879138A CN 1879138 A CN1879138 A CN 1879138A CN A2005800012597 A CNA2005800012597 A CN A2005800012597A CN 200580001259 A CN200580001259 A CN 200580001259A CN 1879138 A CN1879138 A CN 1879138A
Authority
CN
China
Prior art keywords
matrix
square mds
linear transformation
function
cryptographic processing
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
CNA2005800012597A
Other languages
English (en)
Other versions
CN100511331C (zh
Inventor
白井太三
P·巴特
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 CN1879138A publication Critical patent/CN1879138A/zh
Application granted granted Critical
Publication of CN100511331C publication Critical patent/CN100511331C/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Error Detection And Correction (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Lock And Its Accessories (AREA)

Abstract

本发明实现一种增加分析其密钥的难度的高安全性密码处理装置及其方法。在多个舍入上重复执行具有非线性变换部分和线性变换部分的SPN型F函数的Feistel型公用密钥分组密码处理中,与多个舍入的每一个相对应的F函数的线性处理通过应用正方MDS(最大可分开距离)矩阵的线性变换处理来实现。本发明使用一种设置:至少在连续偶数舍入中和连续奇数舍入中设置的正方MDS矩阵的逆矩阵中所包括的任意m个列向量构成正方MDS矩阵。此结构实现密码处理,从而提高公用密钥分组中对线性密码分析攻击的抵抗力。

Description

密码处理装置、密码处理方法及其计算机程序
技术领域
密码处理装置、密码处理方法及其计算机程序,特别是涉及对已知为解密分析处理和密码分析攻击处理的线性分析和差分分析能力具有提高的抵抗力的密码处理装置、密码处理方法及其计算机程序。
背景技术
近来,随着网络通信和电子商务的发展,通信中的安全保证成为关键问题。保证安全的一种方法是密码技术,且当前实际上正在进行使用各种密码技术的通信。
例如,实际使用了一种系统,其中将密码处理模块嵌入在诸如IC卡之类的小设备中,在IC卡和用作数据读和写的设备的读出器/写入器之间执行数据发送和接收,执行发送/接收数据的认证处理或加密/解密。
在密码处理中存在各种算法,它们被广泛地划分成其中设置不同加密密钥和解密密钥(例如,公用密钥和秘密密钥)的一个密码系统和其中将公钥设置为加密解密和解密密钥的公用密钥密码系统。
在公用密钥密码系统中存在各种算法。其中一种是其中将公用密钥用作基础来产生多个密钥,然后用产生的多个密钥对各分组单位(64比特、128比特等)重复执行数据变换处理的系统。应用这种密钥产生方法和数据变换处理的典型算法是公用密钥分组密码方法。
作为一种典型的公用密钥分组密码处理的算法,例如,存在一种作为美国联邦标准加密并被广泛地用于各种领域的DES(数据加密标准)算法。
以DES为典型的任何公用密钥分组密码处理的方法能主要被划分成舍入(round)函数部分,用于执行输入数据的变换,和密钥调度部分,用于产生要应用于舍入函数(F函数)部分的各舍入中的密钥。要应用于舍入函数的各舍入中的舍入密钥(子密钥)在输入一个主密钥(主键)的密钥调度部分中产生,并被应用于各舍入函数部分中。
然而,在这种公用密钥密码处理中,通过密码分析泄漏密钥已成为问题。作为典型的密码分析技术或攻击技术,已知有差分分析(也称为差分密码分析方法或差分密码分析攻击),其中,通过分析许多输入数据(明文)及其输出数据(密文)来分析各舍入函数中的应用密钥,和根据明文和相应的密文进行分析的线性分析(也称为线性密码分析方法或线性密码分析攻击)。
通过密码分析装置易于分析密钥是指密码处理的低安全性。在传统的DES算法中,存在一个问题:因为要应用于舍入函数(F函数)部分中的线性变换部分中的处理(变换矩阵)在各级舍入中相等,密码分析易于进行,因此导致易于分析密钥。
发明内容
由本发明解决的问题
考虑到上述问题作出本发明,且其目的在于提供一种实现高度抗线性分析和差分分析的公用密钥分组密码算法、密码处理方法及其计算机程序。
解决问题的手段
本发明的第一方面是针对用于执行Feistel型公用密钥分组密码处理的密码处理装置,它配置成在多个舍入上执行具有非线性变换部分和线性变换部分的SPN型F函数,其中与多个舍入的每一个相对应的F函数的线性变换部分具有对m个非线性变换部分的每一个输出的n比特执行线性变换处理(作为应用正方MDS(最大可分开距离)矩阵的线性变换处理)的配置,且至少在连续偶数舍入中和在连续奇数舍入中应用不同正方MDS矩阵La、Lb,且由从构成正方MDS矩阵的逆矩阵La -1、Lb -1的列向量任意选择的m个列向量组成的矩阵是线性无关的。
另外,在本发明的密码处理的一个实施例中,密码处理的特征在于由从构成正方MDS矩阵的逆矩阵La -1、Lb -1的列向量任意选择的m个列向量组成的矩阵是正方MDS矩阵。
另外,在本发明的密码处理的一个实施例中,其算法的特征在于Feistel型公用密钥分组密码处理的算法是舍入数2r的密码算法,且F函数的线性变换部分配置成执行将q(2≤q<r)种不同正方MDS矩阵依次并重复地应用于所有r个偶数舍入和所有r个奇数舍入中的线性变换处理。
另外,在本发明的密码处理的一个实施例中,密码处理装置的特征在于要应用于F函数的线性变换部分中的多个正方MDS矩阵中的每一个为由从构成多个正方MDS矩阵的列向量任意选择的m个列向量组成的且线性无关的正方MDS矩阵。
另外,在本发明的密码处理装置的一个实施例中,密码处理装置的特征在于要应用于F函数的线性变换部分中的多个正方MDS矩阵中的每一个为使得由从构成多个正方MDS矩阵的列向量任意选择的m个列向量组成的矩阵也组成一个正方MDS矩阵的正方MDS矩阵。
另外,在本发明的密码处理装置的一个实施例中,密码处理装置的特征在于要应用于F函数的线性变换部分中的多个正方MDS矩阵中的每一个由从包括构成多个正方MDS矩阵的所有元素的正方MDS矩阵选择的行向量组成的矩阵M’提取的列向量组成的矩阵形成。
本发明的第二方面是执行Feistel型公用密钥分组密码处理的密码方法,其特征在于,在多个舍入上重复地执行用于执行非线性变换处理和线性变换处理的SPN型F函数,与多个舍入相对应的F函数的线性变换处理执行从m个非线变换部分输出的n比特,总共mn比特的线性变换处理,作为应用正方MDS(最大可分离距离)矩阵的线性变换处理,至少在连续偶数舍入中和连续奇数舍入中应用不同的正方MDS矩阵La -1、Lb -1,且对正方MDS矩阵进行线性变换处理,以使由从构成正方MDS矩阵的逆矩阵La -1、Lb -1的列向量任意选择的m个列向量组成的矩阵是线性无关的。
另外,在本发明的密码处理方法的一个实施例中,密码处理装置的特征在于,对正方MDS矩阵进行线性变换处理,以使由从构成逆矩阵La -1、Lb -1的列向量任意选择的m个列向量组成的矩阵是正方MDS矩阵。
另外,在本发明的密码处理方法的一个实施例中,Feistel型公用密钥分组密码处理的算法的特征在于是舍入数2r的密码算法,其中,F函数的线性变换处理是通过将q(2≤q<r)种不同正方MDS矩阵依次并重复地应用于所有r个偶数舍入和所有r个奇数舍入中执行线性变换处理。
另外,在本发明的密码处理方法的一个实施例中,密码处理方法的特征在于,应用于F函数中的线性变换处理的多个不同正方MDS矩阵中的每一个是由从构成多个正方MDS矩阵的列向量任意选择的m个列向量组成的正方MDS矩阵并且是线性无关的。
另外,在本发明的密码处理方法的一个实施例中,密码处理方法的特征在于要应用于F函数的线性变换处理的多个不同正方MDS矩阵中的每一个是正方MDS矩阵,使得从构成多个正方MDS矩阵的列向量任意选择的m个列向量组成的矩阵也是正方MDS矩阵。
另外,在本发明的密码处理方法的一个实施例中,密码处理方法的特征在于要应用于F函数的线性变换处理的多个不同正方MDS矩阵中的每一个是由从在包括构成多个正方MDS矩阵的所有元素的正方MDS矩阵中选择的行向量所组成的矩阵M’选择的列向量组成的矩阵形成的。
本发明的第三个方面是用于执行Feistel型公用密钥分组密码处理的计算机程序,它包括在多个舍入上重复执行进行非线性变换处理和线性变换处理的SPN型F函数的步骤,其中与多个舍入中的每一个相对应的F函数的线性变换处理是执行从m个非线变换部分输出的n比特,总共mn比特的线性变换处理,作为应用正方MDS(最大可分离距离)矩阵的线性变换处理的线性变换步骤。在线性变换步骤中,至少在连续偶数舍入中和连续奇数舍入中应用不同的正方MDS矩阵La、Lb,且各正方MDS矩阵是这样:使得由从构成正方MDS矩阵的逆矩阵La -1、Lb -1的列向量任意选择的m个列向量组成的矩阵是线性无关的。
注意,本发明的计算机程序是能通过存储媒体和通信媒体中任一种以计算机可读形式(例如,CD、FD、MO的存储媒体等或网络等的通信媒体)向例如能执行各种程序代码的计算机系统提供的计算机程序。通过以计算机可读的形式提供这一程序,在计算机系统上实现与程序相应的处理。
本发明的其它目的、特征和优点将从如附图中所描绘的本发明的较佳实施例的下列说明中明显地看出。注意,在此说明书中,系统是具有多个设备的逻辑组合的结构的系统,但不限于在相同的揭示中具有其自己的设备的系统。
根据本发明的配置,在多个舍入上重复执行具有非线性变换部分的SPN型F函数的Feistel型公用密钥分组密码处理中,密码处理如下配置:执行与多个舍入中每一个相对应的F函数的线性变换处理作为应用正方MDS(最大可分离距离)矩阵的线性变换处理。且它配置成对正方MDS矩阵执行线性变换处理,其中应用至少在连续偶数舍入和在连续奇数舍入中不同的正方MDS矩阵La、Lb,且由从构成正方MDS矩阵的逆矩阵La -1、Lb -1的列向量任意选择的m个列向量组成的矩阵是线性无关的或形成正方MDS矩阵。因此,对公用密钥分组密码的线性密码分析攻击的抵抗力增强且分析加密密钥等的难度增加;因此,实现了高安全性密码处理。
另外,根据本发明的配置,在其中在多个舍入上重复执行具有非线性变换部分和线性变换部分的SPN型F函数的Feistel型公用密钥分组密码处理的处理中,执行与多个舍入中每一个相对应的F函数的线性变换处理作为应用正方MDS(最大可分离距离)矩阵的线性变换处理,同时该处理配置成应用至少在连续偶数舍入中和连续奇数舍入中不同的正方MDS矩阵,且这些正方MDS矩阵本身配置成呈现线性无关或形成正方MDS矩阵。因此,可以通过不出现有源S盒(S-box)确保同时差对消,从而放大整个密码函数中的有源S盒(S-box)的最小数,它是对公用密钥分组密码中的差分密码分析攻击的抵抗力的指数之一。此配置提高对线性密码分析和差分密码分析攻击的抵抗力并实现更高安全性的密码处理。
附图简要说明
图1为示出具有Feistel结构的典型公用密钥分组密码的配置。
图2A和2B为解释设置为舍入函数部分的F函数的结构。图2A为示出一个舍入中的F函数120的输入和输出的图。图2B为示出F函数120的结构的细节的图。
图3为示出要应用于线性变换处理的一个例子的图。
图4为解释m=8且n=8的128比特分组密码中三级的同时差对消。
图5为解释通过对正方MDS矩阵执行线性变换产生F函数输出差ΔYi的图。
图6为解释m=8且n=8的128比特分组密码中五级的同时差对消。
图7为解释公用密钥分组密码处理中任意级的同时差对消的定义。
图8示出正方MDS矩阵的一个例子。
图9为解释作为根据本发明的公用密钥分组密码算法中各舍入的F函数的线性变换矩阵的正方MDS矩阵的设置例子的图。
图10为解释作为根据本发明的公用密钥分组密码算法中各舍入的F函数的线性变换矩阵的正方MDS矩阵的处理的流程图。
图11为将产生实现对于差分密码分析攻击的提高的抵抗力的正方MDS矩阵的处理例子a1解释成正方MDS矩阵(要在各舍入的F函数中设置的线性变换矩阵)的产生技术的流程图。
图12为将产生实现对于差分密码分析攻击的提高的抵抗力的正方MDS矩阵的处理例子a2解释成正方MDS矩阵(要在各舍入的F函数中设置的线性变换矩阵)的产生技术的流程图。
图13为将产生实现对于差分密码分析攻击的提高的抵抗力的正方MDS矩阵的处理例子a3解释成正方MDS矩阵(要在各舍入的F函数中设置的线性变换矩阵)的产生技术的流程图。
图14为解释产生正方MDS矩阵(要在各舍入的F函数中设置的线性变换矩阵)的处理例子a3的具体技术的图。
图15为解释将产生实现对于线性密码分析攻击的提高的抵抗力的正方MDS矩阵的处理例子b1解释成正方MDS矩阵(要在各舍入的F函数中设置的线性变换矩阵)的产生技术的流程图。
图16为解释将产生实现对于线性密码分析攻击的提高的抵抗力的正方MDS矩阵的处理例子解释成正方MDS矩阵(要在各舍入的F函数中设置的线性变换矩阵)的产生技术的流程图。
图17为解释将产生实现对于差分密码分析攻击的提高的抵抗力的正方MDS矩阵的处理例子解释成正方MDS矩阵(要在各舍入的F函数中设置的线性变换矩阵)的产生技术的流程图。
图18为将IC模块的配置的一个例子显示为用于执行根据本发明的密码处理的密码处理装置的图。
最佳实施例
下面将解释本发明的密码处理装置、密码处理方法及其计算机程序的细节。将以如下项的次序给出解释。
1.公用密钥分组密码算法中的差分分析处理
2.公用密钥分组密码算法中的线性分析
3.根据本发明的密码算法
(3-a)产生实现对于差分密码分析攻击的提高的抵抗力的正方MDS矩阵并将它们设置到F函数的例子
(3-b)产生实现对于线性密码分析攻击的提高的抵抗力的正方MDS矩阵并将它们设置到F函数的例子
(3-c)产生实现对于差分密码分析攻击和线性密码分析攻击的提高的抵抗力的正方MDS矩阵并将它们设置到F函数的例子。
[1.公用密钥分组密码算法中的差分分析处理]
首先,将使用公用密钥分组密码处理的通用模块解释以DES(数据加密标准)密码处理为典型的公用密钥分组密码算法中的差分分析处理的要点。
公用密钥分组密码处理的算法主要能划分成用于执行输入数据的变换的舍入函数部分和用于产生要应用于舍入部分的各舍入中的密钥的密钥调度部分。应用于舍入函数中的各舍入中的密钥(子密钥)由输入一个主密钥(主键)的密钥调度部分根据它产生,并被应用于各舍入。在此共用密钥密码系统的典型系统中,存在作为美国联邦标准系统的DES(数据加密标准)。
下面将参照图1解释称为Feistel结构的典型的公用密钥分组密码处理的结构。
Feistel结构具有通过简单重复变换函数将明文变换成密文的配置。明文的长度设置为2mn(2xmxn)比特。这里,m和n都是整数。首先将2mn比特的明文划分成两个输入数据:mn比特的PL(明文左)101和mn比特的PR(明文右),并把它们用作输入值。
Feistel结构通过重复称为舍入函数的基本结构来表达,且各舍入中所包括的数据变换函数称为F函数120。图1示出由重复r级的F函数(舍入函数)120组成的示例配置。
例如,在第一舍入中,将从密钥产生单元(图1中未示出)输入的mn比特输入数据x和mn比特舍入密钥K1103输入F函数120,该函数在其中进行数据变换处理后输出具有mn比特的数据Y。异或部分104对该输出和来自上级的其它输入数据执行异或运算,并将mn比特的运算结果输出至下一舍入函数。密码处理通过应用此处理(即,F函数重复预定舍入数(r))来完成并输出密文的划分的数据CL(密文左)和数据CR(密文右)。上述配置导致以下事实:为了译码Feistel结构,只需将插入舍入密钥的序列反转,而不必配置反函数。
将参照图2解释设置成各舍入的函数的F函数120的结构。图2A为示出一个舍入中F函数120的输入和输出的图。图2B为示出F函数120的结构的细节的图。如图2B中所示,F函数120具有由非线性变换层和线性变换层一起组成的所谓的SPN型结构。
如图2B中所示,SPN型F函数120具有多个用于执行非线性变换处理的S盒121。对来自上级舍入函数部分的mn比特个输入值x以及从密钥调度部分输入的舍入密钥Ki执行异或运算,并将其输出输入至各执行n比特非线性变换处理的多(m)个S盒。各S盒执行应用例如换算表的非线性变换处理。
将mn比特输出值Z(来自S盒121的输出数据)输入至用于执行线性变换处理的线性变换部分122,它执行线性变换处理,例如交换比特位置的处理等,并输出mn比特输出值Y。对输出值Y以及来自上级的输入数据进行异或运算,并将其结果分配给下一舍入的F函数的输入值。
在图2中所示的F函数120中,输入/输出的比特长度为mxn(m,n:整数),非线性变换层具有一种配置,其中平行排列各用作输入和输入为n比特的非线性变换层的m个S盒121,且作为线性变换层的线性变换部分122根据第m个方阵执行线性变换处理,所述方阵具有在由第n个不可约分(irreducible)的多项式定义的扩展域GF(2n)上的元素作为其元素。
图3示出要应用于线性变换部分122中的线性变换处理的方阵的一个例子。图3中所示的方阵125是n=8且m=8的一个例子。对从应用预定方阵125的非线性变换部分(S盒121)输出的mn比特数据z[1],z[2],...,z[m]进行线性变换,并确定Y[1],Y[2],...,Y[m]作为F函数(舍入函数)输出的输出。注意,在2的预定扩展域GF(2n)上执行各数据的矩阵的元素的线性运算。
因为至今使用的Feistel型密码对所有级的F函数使用相同的线性变换层,存在在差传播时多个差同时对消的特性。如背景技术中所述,作为典型的密码分析技术,已知一种差分分析(或差分解密技术),其中通过分析许多输入数据(明文)及其输出数据(密文)来分析用于各舍入函数的应用密钥。在诸如DES密码算法之类的传统公用密钥分组密码处理中,因为要应用于F函数120的线性变换部分122中的处理(变换矩阵)被设置为在各级的舍入中相等,所以易于进行差分分析,从而易于密钥的分析。
下面将参照图4解释在传播差时同时对消多个差。在本说明中,当表达差时,差通过添加符号△(三角)来表示。
图4为解释在m=8且n=8的128比特块密码中三级的差同时消除。注意,在该图中,64比特数据应按每字节划分,每一个应表达成向量,且每一元素应以十六进制来表示。
在具有三级结构的F函数中差同时对消例如基于下列数据状态1-4的设置机构而发生。由下述机构产生的数据状态是能通过设置许多差输入数据来产生的数据状态,即,这能在分析所谓的差分分析中的密钥(舍入密钥)来产生。
(状态1)
假设输入至舍入i的差的左半部分由全部零的输入差(ΔXi-1=(00,00,00,00,00,00,00,00))构成,而其右半部分由除了输入至仅一个S盒的输入以外的全部零的输入差(ΔXi-1=(34,00,00,00,00,00,00,00))构成。此数据状态指示通过设置许多差输入数据,能在舍入i中获取这一数据状态。
(ΔXi-1=(34,00,00,00,00,00,00,00))中的8个元素与对应于F函数中构成的相应的m个S盒(m=8)的输入差相对应。差(34)被输入第一S盒(图4中的(S1)),且(00)是第二-第八个盒的输入差。
这里,具有零(00)的输入差的S盒的输出差为零(00)。至于该差数据,具有零(00)的输入差的S盒不产生效果,因此被称为无效果的S盒,即无效S盒。另一方面,具有非零的输入差(在图4的例子中,差=34)的S盒产生与非零的输入差相对应的非线性变换结果,因此被称为有效S盒。
在图4的例子中,产生输入非零的输入差(34)的一个有效S盒(S1)的输出差(b7)。其它无效S盒S2-S8分别根据0的输入差(00)产生输出差(00),并提供它们作为线性变换部分的差输入。
(状态2)
从具有非0的输入差的S盒(下文称为有效S盒)到舍入i的输出差在线性转变层中传播,并从F函数输出(输出值=ΔYi),按照原样成为下一舍入的输入差ΔXi+1
图4中的线性变换是对各舍入中共有的某特定方阵125执行线性变换,例如,如图5所示,以输出ΔYi=(98,c4,b4,d3,ac,72,0f,32)作为舍入i的F函数输出差。从图5中示出线性变换结构能理解将输出差ΔYi=(98,c4,b4,d3,ac,72,0f,32)确定为只取决于来自一个有效S盒(S1)的输出元素Z[1]=b7的值。
这一作为此舍入i的F函数输出差的ΔYi=(98,c4,b4,d3,ac,72,0f,32)和全部零的输入差(ΔXi-1=(00,00,00,00,00,00,00,00))一起在图4中所示的异或部分131中进行异或(XOR)运算。对下一舍入i+1的运算结果给出为ΔXi+1
因为对作为舍入i的F函数输出差的ΔYi=(98,c4,b4,d3,ac,72,0f,32)和全部零的输入差ΔXi-1=(00,00,00,00,00,00,00,00)的异或(XOR)运算的结果为ΔYi,到下一舍入i+1的输入差ΔXi+1变得等于ΔYi=(98,c4,b4,d3,ac,72,0f,32)。
(状态3)
来自舍入i+1的输出差ΔYi+1只有在舍入i中的有效S盒的位置上具有非零值。此数据状态指示:通过设置许多差输入数据,能取得这一数据状态。
即,ΔYi+1=(ad,00,00,00,00,00,00,00),且输出差ΔYi+1只有在具有非零差值(与舍入i相似)的S盒(第一S盒(S1))的位置上具有非零值。另外,很清楚ad≠00。
(状态4)
如图4中所示,在舍入i+2中的有效S盒(S1)的输出差与舍入i中的有效S盒(S1)的输出差一致的情况下,舍入i+2中的有效S盒(S1)的输出差变为b7并与有效S盒(S1)的输出差(b7)一致。此数据状态指示:通过设置许多差输入数据,能获得这一数据状态。
当这一数据状态出现时,舍入i+2中的有效S盒(S1)的输出差ΔYi+2=(98,c4,b4,d3,ac,72,0f,32)将与先前的仅一个舍入-舍入i的F函数的输出差ΔYi=(98,c4,b4,d3,ac,72,0f,32)相一致。
结果,异或部分133将对相同值的ΔXi+1=ΔYi=(98,c4,b4,d3,ac,72,0f,32)和ΔYi+2=(98,c4,b4,d3,ac,72,0f,32)执行异或运算,并输出全部零的值作为异或运算的结果。
结果,来自产生到下一级(舍入i+3)的输出差的前一级(舍入i+2)的左输入差ΔXi+3变成ΔXi+3=(00,00,00,00,00,00,00,00)。
到此舍入i+3的左输入ΔXi+3=(00,00,00,00,00,00,00,00)由全零组成,就象到舍入i的左输入差ΔXi-1=(00,00,00,00,00,00,00,00),且可能在舍入i+3和后面的舍入中也重复与舍入i至i+2相同的处理。
结果,出现一个问题:与舍入数的增加相比,有效S盒的数量将不增加,对差分密码分析攻击的鲁棒性将不增加那么多。
在公用密钥分组密码中,已知整个密码函数中的有效S盒的最小数是对差分密码分析攻击的鲁棒性指标中的一个。有效S盒的最小数越大,则确定对差分密码分析的抵抗力越高。
如上所述,差分分析(差分密码攻击)是通过设置许多具有一定差的输入数据(明文)及它们的输出数据(密文)来分析各舍入函数中的应用密钥并分析此对应性的技术。如果在此差分分析中能减少有效S盒的数量,将变得易于分析并将减少分析处理的数量。
虽然参照上述图4的例子,只有第一S盒(S1)是有效S盒的图形的出现状态,对于其它S盒(S2-S8),通过设置差分分析的输入数据,其中将各S盒设置为有效盒的设置也是可能的。
因此,通过进行象这样的差分分析过程,可以分析各S盒的非线性变换处理,并进一步分析为F函数输入的舍入密钥。
为了增加对这样的差分分析的抵抗力,需要总是维持有效S盒的数量为大的状态,即,大的有效S盒的最小数。
在参照图4所述的例子中,在从右到左的方向上被给予输入的F函数的情况中,即,当只认为舍入i和舍入i+2是有效S盒计算处理的目标舍入时,有效S盒的数量只是2,在从左到中的方向上被给予输入的F函数中,舍入i+1中的有效S盒的数量为8,但有效S盒的数量通过同时差对消而变成0,从而各S盒通过差分分析的非线性变换处理的分析处理变得容易。
图4中所示的公用密钥分组密码算法是:应用于相应的舍入中的线性变换部分中的线性变换矩阵相等,且此特定配置导致可能由仅仅两个有效S盒(特别在从右到左的方向上被给予输入的F函数中)引起同时差对消。因此,存在一个问题:与舍入数的增加相比,有效S盒的最小数将不完全增加,对差分密码分析攻击的鲁棒性不增加那么多。
下面,类似地,在其中将相同的线性变换矩阵用于所有级(舍入)的F函数的配置中,将参照图6解释在5个舍入上的同时差对消的出现机制。
图6为解释m=8且n=8的128比特块密码中五级的同时差对消。注意,在图中,64比特数据可以通过对一个字节划分它而表示成向量且各元素应以十六进制来表示。
例如根据数据状态1-7的下列设置机制,再现具有五级配置的F函数中的同时差对消。由下述机制产生的数据状态是能通过设置许多差输入数据来产生的数据状态,且该数据状态可以在所谓的差分分析中分析密钥(舍入密钥)来产生。
(状态1)
使对舍入I的输入差的左半部分由全部零的输入差组成(ΔXi-1=(00,00,00,00,00,00,00,00))构成,而其右半部分由除了输入至仅一个S盒的输入以外的全部零的输入差(ΔXi-1=(34,00,00,00,00,00,00,00))构成。此数据状态指示通过设置许多差输入数据,能在舍入i中获取这一数据状态。
(ΔXi-1=(34,00,00,00,00,00,00,00))的8个元素与F函数中构成的相应m个S盒(m=8)的输入差相对应。差(34)被输入第一S盒(图6中的(S1)),且(00)是第二-第八个盒的输入差。
如上所述,具有零(00)的输入差的S盒的输出差为零(00)。至于输出差,具有零的输入差的S盒不执行任何运算,因此被称为无效果的S盒,即无效S盒。另一方面,具有非零的输入差(在图6的例子中,差=34)的S盒产生与非零的输入差相对应的非线性变换结果作为输出差,因此被称为有效S盒。
在图6的例子中,产生输入的非零的输入差(34)的一个有效S盒(S1)的输出差(b7)。其它无效S盒S2-S8根据0的输入差(00)产生输出差(00),并分配它们作为线性变换部分的差输入。
(状态2)
从具有非0的输入差的S盒(下文称为有效S盒)到舍入i的输出差(图4的例子中,差=34)散布在线性转变层中,并从F函数输出(输出值=ΔYi),按照原样成为下一舍入的输入差ΔXi+1
在图6中,对每一舍入中共有的某特定方阵125执行线性变换,例如,如图5所示,输出ΔYi=(98,c4,b4,d3,ac,72,0f,32)作为舍入i的F函数输出差而被输出。
作为舍入i的F函数输出差的ΔYi=(98,c4,b4,d3,ac,72,0f,32)和全部零的输入差(ΔXi-1=(00,00,00,00,00,00,00,00))一起在图6中所示的异或部分141中进行异或(XOR)运算,且运算结果变成输入至下一舍入i+1的输入差。
因为对作为舍入i的F函数输出差的ΔYi=(98,c4,b4,d3,ac,72,0f,32)和全部零的输入差(ΔXi-1=(00,00,00,00,00,00,00,00))的异或(XOR)运算的结果为ΔYi,输入至下一舍入i+1的输入差ΔXi+1变成ΔXi+1=ΔYi=(98,c4,b4,d3,ac,72,0f,32)。
(状态3)
来自舍入i+1的F函数的输出差ΔYi+1只有在舍入i中的有效S盒的位置上具有非零值。此数据状态指示:通过设置许多差输入数据,能取得这一数据状态。
即,ΔYi+1为ΔYi+1=(34,00,00,00,00,00,00,00),且如舍入i只有在具有非零差值(在图6中的例子中,差=34)的S盒(第一S盒(S1))的位置上具有非零值。
(状态4)
到舍入i+2的F函数的输入是在异或部分142中对相同的数据ΔXi=(34,00,00,00,00,00,00,00)和ΔYi+1=(34,00,00,00,00,00,00,00)的异或运算的结果,并成为由全零构成的输入,ΔXi+2=(00,00,00,00,00,00,00,00)。结果,来自舍入i+2的F函数的输出差也变成由全零构成的输出差,ΔYi+2=(00,00,00,00,00,00,00,00)。
(状态5)
至舍入i+3的F函数的输入是在异或部分143中对为全零的舍入i+2的F函数输出差的ΔXi+1=(98,c4,b4,d3,ac,72,0f,32)和ΔYi+2=(00,00,00,00,00,00,00,00)的异或运算的结果,并成为到舍入i+3的F函数的输入ΔXi+3=ΔXi+1=(98,c4,b4,d3,ac,72,0f,32)。
(状态6)
舍入i+3的F函数输出差变成ΔYi+3=(43,00,00,00,00,00,00,00)。在异或部分144中对这些差以及由全零构成的ΔXi+2=(00,00,00,00,00,00,00,00)的异或运算导致ΔXi+4=ΔYi+3=(43,00,00,00,00,00,00,00),它变成舍入i+4的F函数输入差。
(状态7)
当舍入i+4中的有效S盒(S1)的输出差与舍入i中的有效S盒(S1)的输出差一致时,舍入i+4中的有效S盒(S1)的输出差变成b7,如图6中所示,并与舍入i中的有效S盒(S1)的输出差(b7)一致。这一数据状态指示,通过设置许多差输入数据,能取得这一数据状态。
当这一数据状态出现时,舍入i+4中的有效S盒(S1)的输出差ΔYi+4=(98,c4,b4,d3,ac,72,0f,32)将与先前的仅一个舍入-舍入i+2的异或部分143的输出差ΔXi+3=(98,c4,b4,d3,ac,72,0f,32)相一致。
结果,在异或部分145中,将对相同值的ΔXi+3=(98,c4,b4,d3,ac,72,0f,32)和ΔYi+4=(98,c4,b4,d3,ac,72,0f,32)执行异或运算,并输出全部零的值作为异或运算的结果。
因此,将到下一级(舍入i+5)的输出差设置为ΔXi+5=(00,00,00,00,00,00,00,00)。
对此舍入i+5的左输入ΔXi+3=(00,00,00,00,00,00,00,00)由全零组成,就象对舍入i的左输入ΔXi-1=(00,00,00,00,00,00,00,00),且可能在舍入i+5和后面的舍入中也重复与舍入i至i+4相同的处理。
结果,出现一个问题:与舍入数的增加相比,有效S盒的数量不增加,对差分密码分析攻击的鲁棒性不增加那么多。
如上所述,差分分析(差分密码攻击)是通过设置许多具有一定差的输入数据(明文)及它们的输出数据(密文)来分析各舍入函数中的应用密钥并分析此对应性的技术。在此差分分析中,如果能减少有效S盒的数量,将成为易于分析并将能减少分析处理的数量。
在参照图6所述的例子中,在从右到左的方向上被给予输入的F函数的情况中,即,当只认为舍入i、舍入i+2和舍入i+4是有效S盒计算处理的目标舍入时,有效S盒的数量只是2,即,舍入i=1、舍入i+2=0和舍入i+4=1的和。在从左到中的方向上被给予输入的F函数的情况中,即,在只认为舍入i+1、舍入i+3是目标舍入的情况下,虽然有效S盒的数量为8,舍入i+5中的有效S盒的数量因为同时差对消而变成0;因此,从而通过差分分析和密码分析处理F函数的输入舍入密钥对各S盒所进行的非线性变换处理的分析变得相对容易。
虽然参照图6的例子呈现只有第一S盒(S1)是有效S盒的图形的出现状态,对于其它S盒(S2-S8),差分分析的输入数据的设置使得能将其它S盒中任何一个设置为有效盒,因此,这一差分分析处理的执行将使得能分析各S盒的非线性变换处理并进一步分析输入至F函数的舍入密钥。
虽然参照图4和图6解释了在三和五舍入的情况中同时差对消的出现,如果将这些情况推广成任意舍入数来定义同时差对消,给出下列定义。参见图7,将解释任意舍入数中的同时差对消的定义。图7示出执行Feistel结构的公用密钥分组密码处理的Feistel结构的只一个(i,i+2,i+4,...,i+2j)系列舍入。
“定义”
在舍入I中的Feistel结构的输入差的一半由0组成(在图7中,ΔXi=(00,00,00,00,00,00,00,00))并对它们中每一个和舍入i+2j的F函数的输出差的每一个进行异或部分中的异或运算的处理中,将异或运算的结果变为0(在图7中,ΔXi+2j+1=(00,00,00,00,00,00,00,00))的情况称为同时差对消。
此时,舍入i,i+2,i+4,...,i+2k的F函数中存在的有效S盒被称为引起同时差对消的有效S盒。将向量A的非零元素的数量定义为汉明权重hw(A),能通过下列等式表达引起同时差对消的有效S盒数“a”。
[等式1]
a = Σ j = 0 k hw ( ΔX i + 2 j )
在上述三个舍入和五个舍入的例子中,引起同时差对消的有效S盒的数量为两个,即,a=2。
如上所述,对公用密钥分组密码中的差分密码分析攻击的鲁棒性指标中的一个是整个密码函数中的有效S盒的最小数,且确定有效S框的最小数越大,对差分密码分析的抵抗力变得越高。
然而,在如DES算法中将相同的线性变换矩阵用于所有级F函数的配置中,可能只有两个有效S盒引起同时差对消,如能从参照图4和图6所作的解释中理解的那样。存在一个问题:因为这种特性的呈现,有效S盒的最小数不充分增加,对差分分析攻击的鲁棒性没有被增强那么多。
[2.公用解密块密码算法中的线性分析处理]
如上所述,差分分析处理需要分析的执行者来准备具有恒定差的输入数据(明文)并分析其相应的输出数据(密文)。对于线性分析处理,不必准备具有恒定差的输入数据(明文)且根据其数量等于或大于预定数量的输入数据(明文)及其相应的输出数据(密文)执行分析。
如上所述,在公用密钥分组密码算法中,准备作为非线变换部分的S盒且在输入数据(明文)及其相应的输出数据(密文)之间没有线性关系。在线性分析中,通过线性逼近此S盒的输入/输出,分析许多数据(明文)和相应输出数据(密文)的构成比特值之间的线性关系,并缩小所采用的候选密钥的范围来进行分析。在线性分析中,不必准备具有特定差的输入数据,且只有通过准备大量明文及它们相应的密文才有可能分析。
[3.根据本发明的密码算法]
下面将解释本发明的密码算法。本发明的密码算法具有提高对上述线性分析攻击、差分分析攻击等的抵抗力的结构,即具有提高密钥分析中的难度并增强安全性的结构。
关于本发明的密码算法的一个特征在于:通过设置多个不同的正方MDS(最大可分离距离)矩阵来构成算法,而不是象传统DES算法那样将共同处理(变换矩阵)应用于各舍入的F函数的线性变换部分的结构。具体来说,该算法配置成执行线性变换处理,应用至少在连续偶数舍入中和连续奇数舍入中不同的正方MDS矩阵。
关于本发明的密码算法实现一种结构,通过该结构,利用正方MDS(最大可分离距离)矩阵的特性,基于少数量的有效S盒的同时差对消不出现或至少较少可能出现,使得有效S盒的最小数被放大并实现了对差分密码分析攻击更有鲁棒性的公用密钥分组密码处理。另选地,本发明实现一种使作为已知明文密码分析攻击而执行的具有线性分析的困难性的结构。
本发明的密码算法应用一种称为具有参照图1和2所述的SPN型F函数的Feistel结构的典型公用密钥分组密码结构,即应用一种通过在多个舍入上简单重复具有非线性转变部分和线性转变部分的SPN型F函数将明文变换成密文或将密文变换成明文的结构。
例如,假设明文的长度为2mn(这里,m和n均为整数)。该结构将2mn比特的明文划分为各mn比特的两个数据PL(明文左和明文右),并将它们用作输入值执行各舍入中的F函数。F函数是具有由连接在一起的由S盒组成的非线性变换部分和线性变换部分组成的SPN型的F函数。
在本发明的配置中,作为用于要应用于F函数中的线性变换部分中的线性变换处理的矩阵,从多个不同正方MDS(最大可分离距离)矩阵选择的矩阵被设置成要应用于各舍入的F函数的线性变换部分中。具体来说,应用了至少在连续偶数舍入中和在连续奇数舍入中不同的正方MDS矩阵。
将解释正方MDS矩阵。正方MDS矩阵是满足下列(a)和(b)的特性的矩阵。(a)矩阵为正方矩阵。(b)包括在矩阵中的所有子矩阵都不是零,即det(子矩阵)≠0。
满足上述(a)和(b)的条件的矩阵被称为正方MDS矩阵。在公用密钥分组密码的各舍入中执行的到F函数的输入/输出位的长度为mxn比特(m,n:整数)。图8示出在用各具有n比特输入/输出的m个S盒构成在F函数中配置的非线性变换部分,且该线性变换部分根据各具有由第n个不可约分多项式定义的2的扩展域GF(2n)上的元素作为其元素的第m个方阵来执行线性变换处理。图8中所示的正方MDS矩阵的一个例子是n=8且m=8的正方MDS矩阵的一个例子。
由汉明权重hw(A)指定向量中的非零元素的数量,由M指定第m个正方MDS矩阵,并由x指定输入至正方MDS矩阵的输入向量,满足上述(a)和(b)的正方MDS矩阵满足下列不等式(方程式1):
hw(x)+hw(Mx)≥m+1............(方程式1)
上述表达式(方程式1)指示用正方MDS矩阵(M)线性变换的输出数据Mx的非零元素hw(x)的总数加上用正方MDS矩阵(M)线性变换的输入数据x的非零元素hw(Mx)的总数大于正方MDS矩阵的阶数m。
另外,因为正方MDS代码(最大可分离代码)的生成矩阵的标准形式的右半部分满足上述条件,给出正方MDS矩阵的名称。
已知,即使在单个矩阵被包含在所有F函数的传统配置中,将正方MDS矩阵用作线性变换矩阵使得与使用正方MDS矩阵以外的矩阵的情况相比能将有效S盒的最小数维持在较高的水平。
本发明提出一种将满足正方MDS矩阵的条件的矩阵用于各舍入的F函数并进一步为各舍入设置不同矩阵的方法。明确地说,应用了至少在连续偶数舍入中和连续奇数舍入中不同的正方MDS矩阵。
下面将解释配置的多个例子,在每一例子中,在级数2r(r为整数)的Feistel型公用密钥分组密码中使得对差分密码分析攻击的抵抗力更高。
在下列说明中,MLTj表示要应用于级数2r(舍入数)Feistel型公用密钥分组密码结构中的第j级的F函数的线性变换部分中的线性变换矩阵。
在本发明的配置中,作为用于要应用于级数2r(舍入数)的Feistel型公用密钥分组密码结构中的各级的F函数的线性变换部分中的线性变换处理的矩阵,从多个不同的正方MDS(最大可分离距离)矩阵选择的矩阵被设置为要应用于各舍入的F函数的线性变换部分中选择的矩阵。具体来说,应用至少在连续偶数舍入中和连续奇数舍入中的不同的正方MDS矩阵。
具体来说,产生符合级数(舍入数)2r的Feistel型公用密钥分组密码结构的q个正方MDS矩阵L1,L2,...,Lq(q≤r)。然后,作为用于要应用于级数2r(舍入数)的Feistel型公用密钥分组密码结构中的奇数级的F函数的线性变换部分中的线性变换处理的矩阵,重复设置q个正方MDS矩阵,从其上一级的F函数指定L1,L2,...,Lq,L1,L2,...。另外,对于偶数级的F函数,重复设置q个正方MDS矩阵,从其下一级的F函数指定L1,L2,...,Lq,L1,L2,...。
图9示出应用于此设置的一个配置例子。作为将三种不同的正方MDS矩阵安排q=3(即舍入数12)的Feistel型公用密钥分组密码结构中的配置例子,即在将结构定义成级数2r=12(即r=6)的Feistel型公用密钥分组密码结构的情况中,要设置在各舍入的F函数的线性变换部分中的正方MDS矩阵(L1,L2,L3)如图9中所示。
图9的配置是将2mn比特的明文划分成各mn比特的两个数据PL(明文左)和PR(明文右)并将它们用作输入值在各舍入中执行F函数的结构。第一舍入的函数以及其它舍入的函数是各具有由连接在一起的由S盒组成的非线性变换部分和线性变换部分组成的SPN型的F函数。
图9的设置例属于r=6且q=3,其中各F函数中所示的符号Ln表示正方MDS矩阵402。即,L1,L2和L3表示三种相互不同的正方MDS矩阵,每一矩阵是要应用于各F函数的线性变换部分中的线性变换处理的正方MDS矩阵。
将参照图10说明线性变换矩阵MLTj的设置处理顺序。
[步骤S21]
选择等于或小于舍入数2r的一半r即q满足q≤r的数q。这里,q为等于或大于2的整数。
[步骤S22]
产生q个GF(2n)上的第m个正方MDS矩阵L1,L2,...,Lq。将在下面的章节中详细说明q个GF(2n)上的第m个正方MDS矩阵L1,L2,...,Lq
在步骤S22中产生q个GF(2n)上的第m个正方MDS矩阵L1,L2,...,Lq后,执行下列正方MDS矩阵设置处理。
[步骤S23]
将级数2i-1(1≤i≤r)的线性变换矩阵MLT2i-1设置为L(i-1modq)+1
[步骤S24]
将级数2i(1≤i≤r)的线性变换矩阵MLT2j设置为MLT2r-2i+1
例如,在图9中所示的示例配置的情况中,即,在密码处理装置具有12级(r=6)且q=3的情况中,设置将为:MLT1=L1,MLT2=L3,MLT3=L2,MLT4=L2,MLT5=L3,MLT6=L1,MLT7=L1,MLT8=L3,MLT9=L2,MLT10=L1,MLT11=L3,MLT12=L1
因此,本发明的密码处理装置使用下列结构。产生符合级数(舍入数)2r的Feistel型公用密钥分组密码结构的q个正方MDS矩阵,其中q≤r。对于奇数级的F函数,重复设置q个正方MDS矩阵,从上一级的F函数顺序指定L1,L2,...,Lq,L1,L2,...,而对于偶数级的F函数,重复设置q个正方MDS矩阵,从下一级的F函数顺序指定L1,L2,...,Lq,L1,L2,...。
接着,将对图10的处理流程中的步骤22中q个GF(2n)上的第m个正方MDS矩阵L1,L2,...,Lq并将它们设置至F函数的细节进行说明。将随下列项给出说明。
(3-a)产生实现对差分密码分析攻击的提高的抵抗力的正方MDS矩阵并将它们设置到F函数的例子
(3-b)产生实现对线性密码分析攻击的提高的抵抗力的正方MDS矩阵并将它们设置到F函数的例子
(3-c)产生实现对差分密码分析攻击和线性密码分析攻击的提高的抵抗力的正方MDS矩阵并将它们设置到F函数的例子。
(3-a)产生实现对差分密码分析攻击的提高的抵抗力的正方MDS矩阵并将它们设置到F函数的例子。首先,作为产生实现对差分密码分析攻击的提高的抵抗力的正方MDS矩阵并将它们设置到F函数的例子,将说明三个处理例子a1,a2和a3。
(处理例子a1)
将说明实现对差分密码分析攻击的提高的抵抗力的正方MDS矩阵并将它们设置到F函数的第一例。首先,将参照图11中所示的流程图对正方MDS矩阵的产生处理给出说明。
[步骤S101]
指定输入:由q指定必需的正方MDS矩阵数,由n指定扩展阶(order)并由m指定矩阵大小,在GF(2n)上随机产生q个第m个正方MDS矩阵L1,L2,...,Lq。图11中的流程图示出对正方MDS矩阵数q=6,扩展阶n=8,和矩阵大小m=8的处理例子。
[步骤S102]
核查从q个第m个正方MDS矩阵L1,L2,...,Lq中所包括的qm列向量中取得的任意qm列向量是不是无线无关的。如果该程流通过核查,则流程进入步骤S103;否则,流程返回至步骤S101。
[步骤S103]
输出q个第m个正方MDS矩阵L1,L2,...,Lq作为要应用于舍入数2r的Feistel型公用密钥分组密码的正方MDS矩阵。
虽然上述处理,产生q个第m个正方MDS矩阵L1,L2,...,Lq。这里,q满足q≤r。
根据以上参照图10所述的[步骤S23]和[步骤S24]的处理,以此方式产生的q个第m个正方MDS矩阵L1,L2,...,Lq被设置为要应用于级数(舍入数)2r的Feistel型公用密钥分组密码结构中的各级的F函数的线性变换部分中的线性变换处理的矩阵。即,对于偶数级,从上级F函数依次并重复地将q个正方MDS矩阵指定为L1,L2,...,Lq,L1,L2,...,从下级的F函数依次并重复地将q个正方MDS矩阵指定为L1,L2,...,Lq,L1,L2,...。
因此,分别以相反的次序排列偶数舍入的正方MDS矩阵和奇数舍入的正方MDS矩阵,从而确保除了替换密钥的序列的处理以外,加密处理和解密处理相同。
此配置确保下列。(a)各F函数的线性变换矩阵为正方MDS矩阵。(b)来自密码函数中的奇数舍入中的至少连续q个F函数中所包括的线性变换矩阵的任意m个列向量是线性无关的。(c)来自其中的偶数舍入中的至少连续q个F函数中所包括的线性变换矩阵的任意m个列向量是线性无关的。因为确保方面(a)-(c),由小于或等于m个有效S盒引起的同时差对消不发生。因此,在整个密码函数中的有效S盒数的最小数将增加。
因此,此处理例子使得能放大整个密码函数中的有效S盒数的最小数,即对公用密钥分组密码中的差分密码分析攻击的鲁棒性指标之一。结果,在尝试差分分析(差分密码分析攻击)时有效S盒数将增加并将增加分析的难度。因此,实现难以分析密钥的高安全性密码处理。
(处理例a2)
将说明实现对差分密码分析攻击的提高的抵抗力的正方MDS矩阵并将它们设置到F函数的第二例。首先,将参照图12中所示的流程图对正方MDS矩阵的产生处理给出说明。
[步骤S201]
指定输入:由q指定必需的正方MDS矩阵数,由n指定扩展阶并由m指定矩阵大小,在GF(2n)上随机产生q个第m个正方MDS矩阵L1,L2,...,Lq。图12中的流程图示出对正方MDS矩阵数q=6,扩展阶n=8,和矩阵大小m=8的处理例子。
[步骤S202]
核查由从q个第m个正方MDS矩阵L1,L2,...,Lq中所包括的qm列中任意选择的m列所组成的矩阵是不是正方MDS矩阵。如果该流程通过核查,则流程进入步骤S203;否则,流程返回至步骤S201。这里,如上所述,正方MDS矩阵指满足下列特性的矩阵。(a)它是方阵。(b)矩阵中所包括的所有子矩阵的行列式不为0,即det(子矩阵)≠0。
[步骤S203]
输出q个第m个正方MDS矩阵L1,L2,...,Lq作为要应用于舍入数2r的Feistel型公用密钥分组密码的正方MDS矩阵。
虽然上述处理,产生q个第m个正方MDS矩阵L1,L2,...,Lq。这里,q满足q≤r。
在图11的处理顺序中所述的上述处理例中的正方MDS矩阵产生处理中,由在步骤S102中从q个第m个正方MDS矩阵L1,L2,...,Lq中所包括的qm列取得的任意m列组成的矩阵的线性无关性被确定。在此处理例a2中的正方MDS矩阵产生处理中,核查从q个第m个正方MDS矩阵L1,L2,...,Lq中所包括的qm列取出的任意m列组成的矩阵是正方MDS矩阵。即,将执行服务器核查。
与前述处理例a1相似,根据前面参照图10所述的[步骤23]和[步骤S24]的处理,将由按图12中所示的处理顺序的正方MDS矩阵产生处理产生的q个第m个正方MDS矩阵L1,L2,...,Lq设置为要应用于级数2r(舍入数)Feistel型公用密钥分组密码结构中的各级的F函数的线性变换部分的线性变换处理中矩阵。即,对于偶数级,依次从上级F函数重复地将q个正方MDS矩阵指定为L1,L2,...,Lq,L1,L2,...,依次从下级的F函数重复地将q个正方MDS矩阵指定为L1,L2,...,Lq,L1,L2,...。
因此,分别以互相相反的次序排列偶数舍入的正方MDS矩阵和偶数舍入的正方MDS矩阵,从而确保除了替换密钥的序列的处理以外,加密处理和解密处理相同。
此配置确保下列:
(a)各F函数的线性变换矩阵为正方MDS矩阵。
(b)从奇数舍入中的至少连续q个F函数中所包括的线性变换矩阵的任意m个列向量构成正方MDS矩阵。
(c)从偶数舍入中的至少连续q个F函数中所包括的线性变换矩阵的任意m个列向量构成正方MDS矩阵。
因此,在具有多个级的舍入数的Feistel型公用密钥分组密码结构中,确保在连续2q-1舍入中不出现由等于或小于m个有效S盒引起的同时差对消。另外,确保下列。
(d)通过“a”(a≤m)有效S盒从正方MDS矩阵的特性获取的差值中的非零元素的数量变成等于或大于m+1-a。因此,整个密码函数中的有效S盒的数量的最小值增加了。
因此,通过此处理例子,可以放大整个密码函数中的有效S盒的数量的最小数(对公用密钥分组密码中的差分密码分析攻击的鲁棒性指标之一),结果在尝试差分分析(差分密码分析攻击)的情况中有效S盒的数量将增加且分析的难度将增强。因此,实现了难以分析密钥的高安全性密码处理。
(处理例a3)
将说明实现对差分密码分析攻击具有增加的抵抗力的正方MDS矩阵的产生并将它们设置到F函数的第三个例子。将参照图3的流程图说明正方MDS矩阵的产生处理。
[步骤S301]
指定输入:由q指定必需的正方MDS矩阵数,由n指定扩展阶并由m指定矩阵大小,在GF(2n)上产生一个第qm正方MDS矩阵。图1中所示的流程图示出对MDS矩阵数q=6,扩展阶n=8,和矩阵大小m=8的处理例子。
[步骤S302]
从一个第qm正方MDS矩阵M任意选择和提取m行并组成具有m行,qm列的矩阵M’。
[步骤S303]
将m行,qm列的矩阵M’中所包括的qm列向量任意地划分成各由m个列向量组成的q组,而任一列向量不出现在两个或两个以上组中。从各组中所包括的列向量中输出第m正方矩阵L1,L2,...,Lq作为要应用于舍入数2r的Feistel型公用密钥分组密码的正方MDS矩阵。
虽然上述处理,产生q个第m个正方MDS矩阵L1,L2,...,Lq。这里,q满足q≤r。
将参照图14更详细地说明处理例a3中的正方MDS矩阵产生技术3。
[步骤S301]
在GF(2n)上产生一个第qm正方MDS矩阵M。如图14中所示,产生qmxqm的正方MDS矩阵。注意,在此步骤S301中所产生的矩阵M的阶(order)可大于qm(阶)。
[步骤S302]
如图14中所示,从一个第qm正方MDS矩阵M任意选择和提取m列并组成具有m行,qm列的矩阵M’。注意,虽然图中的例子显示为其中选择和提取连续m行的例子,可以通过选择和提取其间具有将构成第m个正方MDS矩阵M的间隙的任意m行。
[步骤S303]
将m行和qm列的矩阵M’中所包括的qm列向量划分成各具有m个列向量的x组,而没有任一列向量出现在两个或两个以上组中,并从各组中包括的列向量中产生第m方阵L1,L2,...,Lx
象前述的处理例a1和a2一样,根据前面参照图10所述的[步骤S23]和[步骤S24]的处理,将通过按照参照图13和14所述的处理顺序的正方MDS矩阵产生处理产生的q个第m个正方MDS矩阵L1,L2,...,Lq设置为要应用于级数2r(舍入数)Feistel型公用密钥分组密码结构中的各级的F函数的线性变换部分的线性变换处理中矩阵。即,对于奇数级,依次从上级F函数重复地将q个正方MDS矩阵指定为L1,L2,...,Lq,L1,L2,...,对于偶数级,依次从下级的F函数重复地将q个正方MDS矩阵指定为L1,L2,...,Lq,L1,L2,...。
因此,分别以相反的次序排列偶数舍入的正方MDS矩阵和偶数舍入的正方MDS矩阵,从而确保除了替换密钥的序列的处理以外,加密处理和解密处理相同。
此配置确保下列:(a)各F函数的线性变换矩阵为正方MDS矩阵。(b)密码函数中的奇数舍入中的至少连续q个F函数中所包括的线性变换矩阵的任意m个列向量是线性无关的。(c)来自密码函数中的偶数舍入中的至少连续q个F函数中所包括的线性变换矩阵的任意m个列向量是线性无关的。因为确保了这些方面(a)至(c),所以确保在具有多个级的舍入数的Feistel型公用密钥分组密码结构中的连续2q-1舍入中不出现由等于或小于m个有效S盒引起的同时差对消。另外,确保下列。(d)通过“a”(a≤m)有效S盒从正方MDS矩阵的特性获取的差值中的非零元素的数量变成等于或大于m+1-a。因此,整个密码函数中的有效S盒的数量的最小数增加。
处理例a3特别产生一个效果的情况是这样的情况:上述处理例a1和a2的矩阵确定处理系统中所花费的时间变得巨大,因此难以在现实的时间内确定矩阵。即使在该情况下如果使用此处理例a3的正方MDS矩阵产生技术在相对短时间内也将可能矩阵产生处理。
这是因为在处理例a3中可以将能处理的系统应用于实时中足够大的m和r,例如,用于产生具有Reed-Solomon代码的矩阵的产生方法。
同样在此处理例a3中,如上所述,可以放大整个密码函数中的有效S盒的数量的最小数(对公用密钥分组密码中的差分密码分析攻击的鲁棒性指标之一)。结果,在尝试差分分析(差分密码分析攻击)时,有效S盒的数量将增加且分析的难度将增强。因此,实现了难以分析密钥的高安全性密码处理。
[(3-b)实现产生对差分密码分析攻击具有提高的抵抗力的正方MDS矩阵并将它们设置到F函数的例子]
接着,将说明两个处理例子b1、b2,作为产生对差分密码分析攻击具有提高的抵抗力的正方MDS矩阵并将它们设置到F函数的例子。
(处理例子b1)
将说明产生对差分密码分析攻击具有提高的抵抗力的正方MDS矩阵并将它们设置到F函数的第一个例子。将参照图15中所示的流程图说明正方MDS矩阵的产生处理。
[步骤S401]
指定输入:由q指定必需的正方MDS矩阵数,由n指定扩展阶并由m指定矩阵大小,在GF(2n)上随机产生一个第qm正方MDS矩阵M1,M2,...,Mq。图14中所示的流程图示出对正方MDS矩阵数q=6,扩展阶n=8,和矩阵大小m=8的处理例子。
[步骤S402]
核查从计算q个第m个正方MDS矩阵M1,M2,...,Mq的逆矩阵M1 -1,M2 -1,...,Mq -1后两个相邻逆矩阵中所包括的2m行向量中取得的任意m行向量是不是无线无关的。图15中的tR表示行向量的转置向量。如果该程流通过核查,则流程进入步骤S403;否则,流程返回至步骤S401。这里,应将矩阵M1 -1,Mq -1认作相邻矩阵。
[步骤S403]
输出q个第m个正方MDS矩阵L1,L2,...,Lq作为要应用于舍入数2r的Feistel型公用密钥分组密码的正方MDS矩阵。
通过以上处理,产生q个第m个正方MDS矩阵L1,L2,...,Lq。这里,q满足q≤r。
根据前面参照图10所述的[步骤S23]和[步骤S24]的处理,以此方式产生的q个第m个正方MDS矩阵L1,L2,...,Lq被设置为要应用于级数(舍入数)2r的Feistel型公用密钥分组密码结构中的各级的F函数的线性变换部分中的线性变换处理的矩阵。即,对于奇数级,从上级F函数依次并重复地将q个正方MDS矩阵指定为L1,L2,...,Lq,L1,L2,...,对于偶数级,从下级的F函数依次并重复地将q个正方MDS矩阵指定为L1,L2,...,Lq,L1,L2,...。
以此方式,分别以相反的次序排列偶数舍入的正方MDS矩阵和偶数舍入的正方MDS矩阵,从而确保除了替换密钥的序列的处理以外,加密处理和解密处理相同。
此配置确保下列。(a)各F函数的线性变换矩阵为正方MDS矩阵。(b)密码函数中连续奇数舍入中包括的逆矩阵中的以及其中连续偶数舍入所包括的逆矩阵中的m个列向量是线性无关的。这些特性使得在线性密码分析攻击中通过线性逼近的分析中的困难性会增加,并实现分析难度增加的,即难以分析密钥的高安全性密码处理。
(处理例子b2)
将解释产生对差分密码分析攻击具有提高的抵抗力的正方MDS矩阵并将它们设置到F函数的第二例子。将参照图16中所示的流程图给出正方MDS矩阵的产生处理的说明。
[步骤S501]
指定输入:由q指定必需的正方MDS矩阵数,由n指定扩展阶并由m指定矩阵大小,在GF(2n)上随机产生q个第m个正方MDS矩阵M1,M2,...,Mq。图16中的流程图示出对正方MDS矩阵数q=6,扩展阶n=8,和矩阵大小m=8的处理例子。
[步骤S502]
核查从计算q个第m个正方MDS矩阵M1,M2,...,Mq的逆矩阵M1 -1,M2 -1,...,Mq -1后两个相邻逆矩阵中所包括的2m行向量中取得的任意m行向量是否构成正方MDS矩阵。图16中的tR表示行向量的转置向量。如果该程流通过核查,则流程进入步骤S503;否则,流程返回至步骤S401。这里,应将矩阵M1 -1,Mq -1认作相邻矩阵。正方MDS矩阵是满足下列(a)和(b)的特性的矩阵。(a)矩阵为正方矩阵。(b)包括在矩阵中的所有子矩阵都不是零,即det(子矩阵)≠0。
[步骤S503]
输出q个第m个正方MDS矩阵L1,L2,...,Lq作为要应用于舍入数2r的Feistel型公用密钥分组密码的正方MDS矩阵。
通过以上处理,产生q个第m个正方MDS矩阵L1,L2,...,Lq。这里,q满足q≤r。
在上述处理例b1中的正方MDS矩阵产生处理中,当在步骤S402中从q个第m个正方MDS矩阵M1,M2,...,Mq的的逆矩阵M1 -1,M2 -1,...,Mq -1中所包括的qm列向量取得的任意m列向量时,所确定的是线性无关性。在此处理例b2中的正方MDS矩阵产生处理中,核查从q个第m个正方MDS矩阵M1,M2,...,Mq的逆矩阵M1 -1,M2 -1,...,Mq -1中所包括的qm列向量取得的任意m列向量是否构成正方MDS矩阵。即,将执行服务器核查。
象前述的处理例b1一样,根据前面参照图10所述的[步骤S23]和[步骤S24]的处理,将通过按照参照图16中所示的处理顺序的正方MDS矩阵产生处理产生的q个第m个正方MDS矩阵L1,L2,...,Lq设置为要应用于级数2r(舍入数)Feistel型公用密钥分组密码结构中的各级的F函数的线性变换部分的线性变换处理中矩阵。即,对于奇数级,依次从上级F函数重复地将q个正方MDS矩阵指定为L1,L2,...,Lq,L1,L2,...,对于偶数级,依次从下级的F函数重复地将q个正方MDS矩阵指定为L1,L2,...,Lq,L1,L2,...。
因此,分别以相反的次序排列偶数舍入的正方MDS矩阵和偶数舍入的正方MDS矩阵,从而确保除了替换密钥的序列的处理以外,加密处理和解密处理相同。
此配置确保下列:(a)各F函数的线性变换矩阵为正方MDS矩阵。(b)来自密码函数中的连续奇数舍入中所包括的线性变换矩阵和其中的连续偶数舍入中包括的线性变换矩阵的逆矩阵的任意m个列向量构成正方MDS矩阵。这些特性使得在线性密码分析攻击中通过线性逼近的分析中的困难性会增加,并实现分析难度增加的,即难以分析密钥的高安全性密码处理。
[(3-c)实现产生对差分密码分析攻击具有提高的抵抗力的正方MDS矩阵并将它们设置到F函数的例子]
接着,将说明产生对差分密码分析攻击具有提高的抵抗力的正方MDS矩阵并将它们设置到F函数的一个例子。
通过应用先前参照图10-13说明的处理,即,通过应用上述处理例子a1(图11)至a3(图13)中任何一个设置要应用于线性处理部分中的线性变换的正方MDS矩阵,来实现对差分密码分析攻击具有抵抗力的密码算法。另外,通过应用先前参照图10、图14和图15说明的处理,即,通过应用上述处理例子b1(图14)至b2(图15)中任何一个设置要应用于线性处理部分中的线性变换的正方MDS矩阵,来实现对差分密码分析攻击具有抵抗力的密码算法。
使用实现对差分密码分析攻击具有提高的抵抗力的正方MDS矩阵的算法是通过设置通过执行处理例子a1(图11)至a3(图12)之一和处理例子b1(图14)和b2(图15)之一所产生的正方MDS矩阵作为要应用于级数(舍入数)2r的Feistel型公用密钥分组密码结构中的各级的F函数的线性变换部分的线性变换处理的矩阵来实现的。
即,q个正方MDS矩阵通过下列组合中任何一个来产生:处理例a1和处理例b1;处理例a1和处理例b2;处理例a2和处理例b1;处理例a2和处理例b2;处理例a3和处理例b1;处理例a3和处理例b2;并被设置为要应用于级数(舍入数)2r的Feistel型公用密钥分组密码结构中的各级的F函数的线性变换部分的线性变换处理的矩阵。即,对于奇数级,从上级F函数依次并重复地将q个正方MDS矩阵指定为L1,L2,...,Lq,L1,L2,...,对于偶数级,从下级的F函数依次并重复地将q个正方MDS矩阵指定为L1,L2,...,Lq,L1,L2,...。通过这一设置,可以实现对差分密码分析攻击和线性密码分析攻击具有提高的抵抗力的密码处理。
将参照图17说明用于实施实现对差分密码分析攻击和线性密码分析攻击具有提高的抵抗力的密码处理的正方MDS矩阵的产生处理的一个例子。此处理是上述处理例子a2和处理例子b2的组合。
[步骤S601]
指定输入:由q指定必需的正方MDS矩阵数,由n指定扩展阶并由m指定矩阵大小,在GF(2n)上随机产生q个第m个正方MDS矩阵。图17中的流程图示出对正方MDS矩阵数q=6,扩展阶n=8,和矩阵大小m=8的处理例子。
[步骤S602]
当从q个第m个正方MDS矩阵M1,M2,...,Mq中所包括的qm列中取得m个列时,核查它们是否构成正方MDS矩阵。如果该程流通过核查,则流程进入步骤S603;否则,流程返回至步骤S601。这里,正方MDS矩阵意味着满足下列特性的矩阵。(a)它是正方矩阵。(b)包括在矩阵中的任何子矩阵的行列式,即det(子矩阵)≠0。
[步骤S603]
计算q个第m个正方MDS矩阵M1,M2,...,Mq的逆矩阵M1 -1,M2 -1,...,Mq -1,并核查从两个相邻逆矩阵中所包括的2m行向量取得的任意m行向量是否构成正方MDS矩阵。图17中的tR表示行向量的转置向量。如果流程通过核查,则流程进入步骤S604;否则流程返回步骤S601。这里,应将矩阵M1-1、Mq-1认作相邻矩阵。
[步骤S604]
输出q个第m个正方MDS矩阵L1,L2,...,Lq作为要应用于舍入数2r的Feistel型公用密钥分组密码的正方MDS矩阵。
通过以上处理,产生q个第m个正方MDS矩阵L1,L2,...,Lq。这里,q满足q≤r。
根据前面参照图10所述的[步骤S23]和[步骤S24]的处理,将通过遵循图17中所示的处理顺序的正方MDS矩阵产生处理而产生的q个第m个正方MDS矩阵L1,L2,...,Lq被设置为要应用于级数(舍入数)2r的Feistel型公用密钥分组密码结构中的各级的F函数的线性变换部分的线性变换处理中的矩阵。即,对于奇数级,依次从上级F函数重复地将q个正方MDS矩阵指定为L1,L2,...,Lq,L1,L2,...,对于偶数级,依次从下级的F函数重复地将q个正方MDS矩阵指定为L1,L2,...,Lq,L1,L2,...。
因此,分别以相反的次序排列偶数舍入的正方MDS矩阵和奇数舍入的正方MDS矩阵,从而确保除了替换密钥的序列的处理以外,加密处理和解密处理相同。
此配置确保下列(a)到(c)各方面:(a)各F函数的线性变换矩阵为正方MDS矩阵。(b)密码函数中奇数舍入中至少连续q个F函数中所包括的线性变换矩阵的任意m个列向量构成正方MDS矩阵。(c)密码函数中偶数舍入中至少连续q个F函数中所包括的线性变换矩阵的任意m个列向量构成正方MDS矩阵。因为确保这些方面(a)-(c),在具有多个步骤的舍入数的Feistel型公用密钥分组密码结构中,确保在连续2q-1个舍入中,由小于或等于m个有效S盒的贡献引起的同时差对消不发生。另外,(d)从正方MDS矩阵的特性,确保通过“a”(a≤m)有效S盒获得的差值中的非零元素的数量变成等于或大于m+1-a。因此,在整个密码函数中的有效S盒的数量的最小数增加。另外,确保下列。(e)密码函数中来自连续奇数舍入中所包括的线性变换矩阵的逆矩阵的和连续偶数舍入中所包括的线性变换矩阵的任意m个列向量构成正方MDS矩阵。这些特性使得在线性密码分析攻击中通过线性逼近的分析中的难度增加,且实现分析难度增加的,即难以分析密钥的高安全性密码处理。
因此,通过此处理例子,差分密码分析攻击和线性密码分析攻击中的难度均增加,并实现了难以分析密钥的高安全性密码处理。如上所述,图17中所示的例子是通过组合上述处理例子a2和处理例子b2产生正方MDS矩阵的例子。然而,能采用其它产生。即,通过组合下列对之一来产生q个正方MDS矩阵:处理例子a1和处理例子b1,处理例子a1和处理例子b2,处理例子a2和处理例子b1,处理例子a3和处理例子b1,处理例子a3和处理例子b2。对于奇数级,重复指定q个正方MDS矩阵为从上一级的F函数指定L1,L2,...,Lq,L1,L2,...,而对于偶数级的F函数,重复指定q个正方MDS矩阵为从下一级的F函数指定L1,L2,...,Lq,L1,L2,...,作为要应用于级数(舍入数)2r Feistel型公用密钥分组密码结构中的各级的F函数的线性变换部分中的矩阵。从而能实现在差分密码分析攻击中和线性密码分析攻击中的难度增加和其密钥难以分析的高安全性密码处理。
虽然至今为止的说明假设:线性变换矩阵是在GF(2n)上定义的mxm的矩阵并且被用于从mn比特至mn比特的数据变换运算中,即使在使用在GF(2)上定义的mnxmn矩阵的情况下也能有效地取得与差分密码分析攻击和线性密码分析攻击相似的效果。实际上,可以使GF(2n)上的任意矩阵与显示相同变换的GF(2)上的矩阵一一对应。因此,可以说GF(2)上的矩阵显示更一般的表示。GF(2)上的矩阵具有mn列和mn行,它是GF(2n)情况中的n倍。因此,GF(2n)上的矩阵的第一列与GF(2)上的矩阵的第一至第n列相对应,且GF(2n)上的矩阵的第一行与其第一至第n行相对应。即,第i行对应于第[(i-1)+1]至第[(i-1)+n]行,且第i列对应于第[(i-1)+1]至第[(i-1)+n]列。因此,为了做提取GF(2n)上的列或行的运算,如果使用在GF(2)上定义的矩阵,需要做相应地提取与GF(2)上的列或行相对应的n行或n列的运算。提取GF(2)上的m行或列的运算要求在GF(2)上提取m次n行或列,结果能获得mnxmn矩阵。上述协调使得能将矩阵容易地扩展至在GF(2)上定义的矩阵。
最后,图18示出作为用于执行密码处理的密码处理装置的IC模块600的示例配置。在各种信息处理装置(例如,PC、IC卡、读出器/写入器等)中可执行上述处理,且图18中所示的IC模块600能用作这些各种装置的组成件。
图18中所示的CPU(中央处理器)是用于执行诸如启动密码处理、结束它、控制数据的发送/接收、控制配置部分之间的数据传输之类的各种程序的处理器,并执行各种程序。存储器602由用于存储CPU 601执行的程序或作为操作参数的固定数据的ROM,用作在CPU 601的处理中所执行的程序的存储区和工作区等的RAM(随机存取存储器),处理程序中参数一直变化。存储器602还能用作密码处理等所需的密钥数据的存储区。最好数据等的存储区构成具有防篡改结构的存储器。
密码处理部分603按照例如上述Feistel型公用密钥分组密码处理执行加密、解密等。虽然显示其中将密码处理装置制成单个模块的例子,它可以配置成例如将密码程序存储在ROM中,且CPU 601读取并执行存储在ROM中的程序而不提供这种独立的密码模块。
随机数产生器604执行生成产生密码处理所需的密钥所必需的随机数的处理。
发送/接收部分605是用于执行外部数据通信的数据通信部分,它与例如读出器-写入器等进行数据通信,和IC模块,从外部读出器写入器等输出在IC模块中产生的密文或将数据等输入其中。
在上述中,参照特定实施例详细说明本发明。然而,很明显本领域的技术人员能不偏离本发明的范围和精神实现实施例的修改和替换。即,本发明以图解的形式被公开,应严格加以解释。为了判断本发明的要点,应考虑专利权利要求一栏。
注意,说明中所述的系列处理可以通过硬件、软件或通过它们的组合来实现。当通过软件执行处理时,记录处理顺序的程序可以通过将其安装在计算机中的独占硬件中的内置存储器中来执行,或能通过将其安装在能执行各种处理的通用计算机中来执行。
例如,能将程序预先记录在作为记录媒体的硬盘或ROM(只读存储器)上。另选地,可以将程序临时或永久存储在诸如软盘、CD-ROM(光盘只读存储器)、MO(磁光)盘、DVD(数字通用盘)、磁盘和半导体存储器之类的可移动记录媒体中。这种可移动记录媒体能作为所谓的软件包来提供。
除了如上所述将程序从可移动记录媒体安装在计算机中以外,能采用下列方案。将程序从下载地点无线传输至计算机,或通过诸如LAN(局域网)和因特网之类的网络由电缆传输至计算机,而计算机接收正在以此方式传输的程序并将其安装在记录媒体(例如内部硬盘)中。
注意,根据执行处理的装置的处理能力在说明书所写的各种处理可能并行地或分别地执行,或按需要以按照说明书中的时序来执行。注意,在本说明书中,系统是具有多个设备的逻辑组合的结构的系统,而不限于在相同的外壳中各具有其自己的设备的系统。
如上所述,根据本发明的配置,在为多个舍入重复执行具有非线性变换部分和线性变换部分的SPN型F函数的Feistel型公用密钥分组密码处理中,配置成执行下列。在分别执行与多个舍入中每一个相对应的F函数的线性变换处理作为应用至少在连续奇数舍入中和连续偶数舍入中不同的正方MDS(最大可分离距离)矩阵,正方MDS矩阵La、Lb的线性变换处理并执行对正方MDS矩阵的线性变换处理时,其中应用了至少在连续奇数舍入中和连续偶数舍入中不同的正方MDS矩阵,且由从构成正方MDS矩阵的逆矩阵La -1、Lb -1的列向量任意选择的m个列向量组成的矩阵是线性无关的,或组成正方MDS矩阵。结果,提高了对公用密钥分组密码中的线性密码分析攻击的抵抗力,并增加了分析加密密钥等的难度,从而实现了高安全性密码处理。因此,本发明能应用于提高找到密钥的分析难度并具有高安全性所需的密码处理装置。
另外,根据本发明的配置,在多个舍入上重复执行具有非线性变换部分和线性变换部分的SPN型F函数的Feistel型公用密钥分组密码处理中,配置成执行与多个舍入中每一个相对应的F函数的线性变换处理,作为应用正方MDS(最大可分离距离)矩阵同时应用至少在连续偶数舍入中和在连续奇数舍入中不同的MDS矩阵的线性变换处理,其中,这些正方MDS矩阵显示线性无关性或组成正方MDS矩阵。因此,确保通过有效S盒的同时差对消不出现,并且可以放大整个密码函数中的有源S盒的最小数,它是对公用密钥分组密码中的差分密码分析攻击的鲁棒性的指数之一。通过此配置,提高对线性密码分析和差分密码分析攻击的抵抗力,从而实现更高安全性的密码处理。因此,可以将本发明应用于增加分析密钥的难度并具有高安全性所需的密码处理装置。

Claims (13)

1.一种用于执行Feistel型公用密钥分组密码处理的密码处理装置,具有:
在多个舍入上重复执行具有非线性变换部分和线性变换部分的SPN型F函数的结构,其中
与多个舍入的每一个相对应的F函数的线性变换部分的每一个被配置成对从m个非线性变换部分的每一个输出的n比特的输入执行线性变换处理,作为应用正方MDS(最大可分开距离)矩阵的线性变换处理,至少在连续奇数舍入中和在连续偶数舍入中应用不同的正方MDS矩阵La、Lb,且
由从构成正方MDS矩阵的逆矩阵La -1、Lb -1的列向量任意选择的m个列向量组成的矩阵是线性无关的。
2.如权利要求1所述的用于执行Feistel型公用密钥分组密码处理的密码处理装置,其特征在于,
由从构成所述逆矩阵La -1、Lb -1的列向量任意选择的m个列向量组成的矩阵是正方MDS矩阵。
3.如权利要求1所述的用于执行Feistel型公用密钥分组密码处理的密码处理装置,其特征在于,
Feistel型公用密钥分组密码处理的算法是舍入数2r的密码算法,且
F函数的线性变换部分被配置成执行将q(2≤q<r)种不同的正方MDS矩阵依次并重复地应用于所有r个偶数舍入和所有r个奇数舍入中的线性变换。
4.如权利要求1所述的用于执行Feistel型公用密钥分组密码处理的密码处理装置,其特征在于,
要应用于F函数的线性变换部分中的多个不同的正方MDS矩阵中的每一个是由从构成多个正方MDS矩阵的列向量任意选择的m个列向量组成的且线性无关的正方MDS矩阵。
5.如权利要求1所述的用于执行Feistel型公用密钥分组密码处理的密码处理装置,其特征在于,
要应用于F函数的线性变换部分中的多个不同的正方MDS矩阵中的每一个是使得由从构成多个正方MDS矩阵的列向量任意选择的m个列向量组成的矩阵也是一个正方MDS矩阵的正方MDS矩阵。
6.如权利要求1所述的用于执行Feistel型公用密钥分组密码处理的密码处理装置,其特征在于,
要应用于F函数的线性变换部分中的多个不同的正方MDS矩阵中的每一个由从包括构成多个正方MDS矩阵的所有元素的正方MDS矩阵M选择的行向量组成的矩阵M’提取的行向量组成的矩阵组成。
7.一种用于执行Feistel型公用密钥分组密码处理的密码处理方法,包括下列步骤:
在多个舍入上重复地执行用于实行非线性变换处理和线性变换处理的SPN型F函数;并且
在与多个舍入中每一个相对应的F函数的变换处理中,执行从m个非线变换部分输出的n比特,总共mn比特的线性变换,作为应用正方MDS(最大可分离距离)矩阵的线性变换处理;其中,
对正方MDS矩阵的线性变换处理使得至少在连续偶数舍入中和连续奇数舍入中应用不同的正方MDS矩阵La、Lb,由从构成正方MDS矩阵的逆矩阵La -1、Lb -1的列向量任意选择的m个列向量组成的矩阵是线性无关的且构成一个正方MDS矩阵。
8.如权利要求7所述的用于执行Feistel型公用密钥分组密码处理的密码处理方法,其特征在于,
通过正方MDS矩阵的线性变换处理,以使由从构成所述逆矩阵La -1、Lb -1的列向量任意选择的m个列向量组成的矩阵是正方MDS矩阵。
9.如权利要求7所述的用于执行Feistel型公用密钥分组密码处理的密码处理方法,其特征在于,
Feistel型公用密钥分组密码处理的算法是舍入数2r的密码算法,且,
F函数的线性变换处理执行依次并重复地应用q(2≤q<r)种不同的正方MDS矩阵的线性变换处理。
10.如权利要求7所述的用于执行Feistel型公用密钥分组密码处理的密码处理方法,其特征在于,
应用于F函数中的线性变换处理的多个不同的正方MDS矩阵中的每一个使得由从构成多个正方MDS矩阵的列向量任意选择的m个列向量组成的矩阵是线性无关的并构成正方MDS矩阵。
11.如权利要求7所述的用于执行Feistel型公用密钥分组密码处理的密码处理方法,其特征在于,
要应用于F函数的线性变换处理的多个不同的正方MDS矩阵中的每一个是正方MDS矩阵,使得从构成多个正方MDS矩阵的列向量任意选择的m个列向量组成的矩阵成为正方MDS矩阵。
12.如权利要求7所述的用于执行Feistel型公用密钥分组密码处理的密码处理方法,其特征在于,
要应用于F函数的线性变换处理的多个不同的正方MDS矩阵中的每一个是由从在包括构成多个正方MDS矩阵的所有元素的正方MDS矩阵M中选择的行向量所组成的矩阵M’提取的列向量组成的矩阵构成的。
13.一种执行如权利要求7所述的Feistel型公用密钥分组密码处理的计算机程序,包括下列步骤:
在多个舍入上执行进行非线性变换处理和线性变换处理的SPN型F函数的步骤,其中
与多个舍入中的每一个相对应的F函数的线性变换处理是执行从m个非线变换部分输出的n比特,总共mn比特的线性变换处理,作为应用正方MDS(最大可分离距离)矩阵的线性变换处理的线性变换步骤,且
在所述线性变换步骤中,以这样的方式通过正方MDS矩阵执行线性变换,使得至少在连续偶数舍入中和连续奇数舍入中应用不同的正方MDS矩阵,且由从构成正方MDS矩阵的逆矩阵La -1、Lb -1的列向量任意选择的m个列向量组成的矩阵是线性无关的。
CNB2005800012597A 2004-09-03 2005-08-30 密码处理装置、密码处理方法及其计算机程序 Expired - Fee Related CN100511331C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP256465/2004 2004-09-03
JP2004256465A JP4561252B2 (ja) 2004-09-03 2004-09-03 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
CN1879138A true CN1879138A (zh) 2006-12-13
CN100511331C CN100511331C (zh) 2009-07-08

Family

ID=36000066

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800012597A Expired - Fee Related CN100511331C (zh) 2004-09-03 2005-08-30 密码处理装置、密码处理方法及其计算机程序

Country Status (10)

Country Link
US (4) US7747011B2 (zh)
EP (3) EP1788542B1 (zh)
JP (1) JP4561252B2 (zh)
KR (1) KR101091749B1 (zh)
CN (1) CN100511331C (zh)
BR (1) BRPI0506365B1 (zh)
ES (3) ES2879845T3 (zh)
HK (1) HK1096758A1 (zh)
RU (1) RU2383934C2 (zh)
WO (1) WO2006025416A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011075902A1 (zh) * 2009-12-24 2011-06-30 华南理工大学 一种基于线性几何的群组密钥管理方法
CN103427986A (zh) * 2013-08-22 2013-12-04 中国科学院信息工程研究所 获取分组密码活跃s盒个数下界的方法
CN105912938A (zh) * 2016-04-01 2016-08-31 青岛大学 一种求多元素逆元的计算方法及计算系统

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4622222B2 (ja) * 2003-09-30 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4561252B2 (ja) * 2004-09-03 2010-10-13 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4622807B2 (ja) 2005-03-25 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US7970133B2 (en) * 2006-01-19 2011-06-28 Rockwell Collins, Inc. System and method for secure and flexible key schedule generation
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP2008058830A (ja) 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5023624B2 (ja) * 2006-09-01 2012-09-12 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4967544B2 (ja) * 2006-09-01 2012-07-04 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2010044251A (ja) * 2008-08-13 2010-02-25 Hitachi Ltd ハッシュ値生成装置、プログラム及びハッシュ値生成方法
JP5578422B2 (ja) * 2010-07-21 2014-08-27 日本電気株式会社 暗号化通信システム、送信装置、受信装置、暗号化/復号化方法およびそれらのプログラム
US20120079462A1 (en) * 2010-09-24 2012-03-29 SoftKrypt LLC Systems and methods of source software code obfuscation
MY150357A (en) * 2010-11-04 2013-12-31 Mimos Berhad A method for linear transformation in substitution-permutation networks symmetric-key block cipher
JP5682527B2 (ja) * 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
CN105453482B (zh) * 2013-08-02 2019-06-21 日本电气株式会社 认证加密设备、认证加密方法以及用于认证加密的程序
JP5772934B2 (ja) * 2013-12-02 2015-09-02 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
CN103701584B (zh) * 2013-12-10 2017-01-18 中国船舶重工集团公司第七0九研究所 一种对称密码中二进制线性扩散结构的设计方法
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)
KR20190037980A (ko) 2017-09-29 2019-04-08 한밭대학교 산학협력단 퍼베이시브 컴퓨팅을 위한 효과적인 초경량 블록 암호 시스템
JP7244060B2 (ja) * 2019-02-20 2023-03-22 Necソリューションイノベータ株式会社 ブロック暗号装置、ブロック暗号方法およびプログラム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3499810B2 (ja) * 2000-03-06 2004-02-23 株式会社東芝 暗号化装置、暗号化方法及び暗号化装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体並びに復号装置、復号方法及び復号装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体
US7305085B2 (en) * 2000-06-30 2007-12-04 Kabushiki Kaisha Toshiba Encryption apparatus and method, and decryption apparatus and method based on block encryption
JP3505482B2 (ja) * 2000-07-12 2004-03-08 株式会社東芝 暗号化装置、復号装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒体
US20020021801A1 (en) * 2000-07-13 2002-02-21 Takeshi Shimoyama Computing apparatus using an SPN structure in an F function and a computation method thereof
JP4216445B2 (ja) * 2000-07-13 2009-01-28 株式会社東芝 パラメータ決定装置、パラメータ決定方法、および暗号化/復号装置
JP3901959B2 (ja) * 2000-07-13 2007-04-04 富士通株式会社 Feistel構造とSPN構造とを組み合わせた演算装置および演算方法
JP3907976B2 (ja) * 2000-07-13 2007-04-18 富士通株式会社 F関数内部にspn構造を用いた演算装置および演算方法
JP2003098959A (ja) * 2001-09-21 2003-04-04 Toshiba Corp 暗号処理装置
US20030233557A1 (en) * 2002-06-13 2003-12-18 Zimmerman Thomas Guthrie Electronic signature verification method and apparatus
US20040088588A1 (en) * 2002-10-31 2004-05-06 International Business Machines Corporation Limited resource access while power-on-password is active
JP2004245988A (ja) 2003-02-13 2004-09-02 Sony Corp データ処理装置、その方法およびそのプログラムと線形変換回路および暗号化回路
JP4622222B2 (ja) * 2003-09-30 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4466108B2 (ja) * 2004-02-13 2010-05-26 株式会社日立製作所 証明書発行方法および証明書検証方法
JP4561252B2 (ja) * 2004-09-03 2010-10-13 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4622807B2 (ja) 2005-03-25 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2007199156A (ja) 2006-01-24 2007-08-09 Sony Corp 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
US8146139B2 (en) * 2006-06-30 2012-03-27 Samsung Electronics Co., Ltd. System and method of user authentication using handwritten signatures for an MFP
JP4882598B2 (ja) 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP2008058830A (ja) 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5682525B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5652363B2 (ja) 2011-03-28 2015-01-14 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5682526B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 データ処理装置、およびデータ処理方法、並びにプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011075902A1 (zh) * 2009-12-24 2011-06-30 华南理工大学 一种基于线性几何的群组密钥管理方法
CN103427986A (zh) * 2013-08-22 2013-12-04 中国科学院信息工程研究所 获取分组密码活跃s盒个数下界的方法
CN103427986B (zh) * 2013-08-22 2016-08-24 中国科学院信息工程研究所 获取分组密码活跃s盒个数下界的方法
CN105912938A (zh) * 2016-04-01 2016-08-31 青岛大学 一种求多元素逆元的计算方法及计算系统
CN105912938B (zh) * 2016-04-01 2019-02-12 青岛大学 一种求多元素逆元的计算方法及计算系统

Also Published As

Publication number Publication date
WO2006025416A1 (ja) 2006-03-09
CN100511331C (zh) 2009-07-08
EP2375624A2 (en) 2011-10-12
ES2879845T3 (es) 2021-11-23
JP4561252B2 (ja) 2010-10-13
KR20070058370A (ko) 2007-06-08
RU2383934C2 (ru) 2010-03-10
KR101091749B1 (ko) 2011-12-08
US8275127B2 (en) 2012-09-25
HK1096758A1 (en) 2007-06-08
EP1788542B1 (en) 2012-07-18
EP2375625B1 (en) 2021-06-16
US7747011B2 (en) 2010-06-29
EP1788542A1 (en) 2007-05-23
EP2375624B1 (en) 2021-03-17
BRPI0506365A (pt) 2006-10-31
US8767956B2 (en) 2014-07-01
ES2860689T3 (es) 2021-10-05
US9240885B2 (en) 2016-01-19
ES2391639T3 (es) 2012-11-28
US20140247937A1 (en) 2014-09-04
US20110026706A1 (en) 2011-02-03
EP1788542A4 (en) 2008-01-16
EP2375625A2 (en) 2011-10-12
EP2375625A3 (en) 2015-05-06
US20090103714A1 (en) 2009-04-23
EP2375624A3 (en) 2015-05-06
JP2006072054A (ja) 2006-03-16
RU2006114754A (ru) 2007-11-10
US20120324243A1 (en) 2012-12-20
BRPI0506365B1 (pt) 2019-01-15

Similar Documents

Publication Publication Date Title
CN1879138A (zh) 密码处理装置、密码处理方法及其计算机程序
CN1203431C (zh) 公用密钥加密装置
CN1305296C (zh) 信息处理装置及其控制方法、计算机程序和存储介质
CN1285191C (zh) 公共密钥签字的方法和系统
CN1312630A (zh) 基于分块加密方式的加密装置与方法及译码装置与方法
CN1199180C (zh) 用于在音频数据中插入附加信息的系统
CN1200392C (zh) 信息处理方法
CN1275846A (zh) 数据加密装置和方法
CN1822538A (zh) 加密方法,加密装置,解密方法和解密装置
CN1871568A (zh) 程序执行设备
CN1871810A (zh) 认证系统和远隔分散保存系统
CN1977250A (zh) 进行加密或解密的计算机系统和计算机程序
CN1656733A (zh) 块密码实现方式中的s-box加密
CN1921382A (zh) 一种基于aes算法的加解密方法及加解密器
CN1656555A (zh) 鉴别通信系统、鉴别通信设备和鉴别通信方法
CN1714377A (zh) 用于生成伪随机数的方法及伪随机数生成器
CN1248365A (zh) 高速灵活的加密系统的方法及设备
CN1941699A (zh) 密码方法、主机系统、可信平台模块和计算机安排
CN1808526A (zh) 数据变换装置和数据变换方法
CN1276364C (zh) 数据管理设备,数据管理方法以及计算机程序
CN1701294A (zh) 计算单元及以加密操作数执行算术运算之方法
CN1728634A (zh) 伽罗瓦域中相乘的方法和设备与求逆设备及字节替换设备
CN1198284A (zh) 数据隐藏和抽取方法
CN1596522A (zh) 加密装置、解密装置、密钥生成装置、版权保护系统和密码通信装置
CN1273902C (zh) 调试系统,微处理器,以及调试器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1096758

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1096758

Country of ref document: HK

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: 20090708