解密处理装置、方法和信息处理装置的制作方法

文档序号:7550754阅读:211来源:国知局
专利名称:解密处理装置、方法和信息处理装置的制作方法
技术领域
本发明涉及一种密码处理装置、密码处理算法构建方法和密码处理方法、以及计算机程序。更详细地说,涉及一种执行Feistel型共用密钥块密码处理的密码处理装置、密码处理算法构建方法和密码处理方法、以及计算机程序。
背景技术
最近,随着网络通信、电子商务的发展,确保通信中的安全成为重要的问题。确保安全的方法之一是密码技术,现在实际进行着使用了各种加密方法的通信。例如实际应用有如下的系统:在IC卡等小型装置中嵌入密码处理模块,在IC卡与作为数据读取写入装置的读写器之间进行数据的发送接收,进行认证处理或者发送接收数据的加密、解密。在密码处理算法中存在各种算法,大致分类为公开密钥密码方式和共用密钥密码方式,其中,上述公开密钥密码方式将加密密钥和解密密钥设定为不同的密钥、例如公开密钥和私人密钥,上述共用密钥密码方式将加密密钥和解密密钥设定为共用的密钥。在共用密钥密码方式中也存在各种算法,其中之一是如下的方式:以共用密钥为基础生成多个密钥,使用所生成的多个密钥来反复执行块单位(64比特、128比特等)的数据变换处理。应用了这种密钥生成方式和数据变换处理的算法的代表方式是共用密钥块密码方式。作为代表的共用密钥块密码的算法,例如存在作为美国标准密码的DES (DataEncryption Standard:数据加密标准)算法,在各种领域中广泛使用。以DES为代表的共用密钥块密码的算法主要可分为循环函数部和密钥调度部,其中,上述循环函数部执行输入数据的变换,上述密钥调度部生成在循环函数(F函数)部的各循环中应用的密钥。根据一个主密钥(Master key),将其输入到密钥调度部来生成在循环函数部的各循环中应用的,在各循环函数部中应用该循环密钥(副密钥)。作为执行应用了这种循环函数的算法的具体结构,已知有Feistel结构。Feistel结构具有如下结构:通过简单的反复被称为循环函数的变换函数,将明文变换为密文。作为记载有应用了 Feistel结构的密码处理的文献,例如存在非专利文献1、非专利文献2。但是,例如在应用Feistel结构的共用密钥密码处理中,由密码分析引起的密钥的泄漏成为问题。作为密码分析或者攻击方法的代表方法,已知有差分分析(也称为差分解读法或者差分攻击)、线性分析(也称为线性解读法或者线性攻击),其中,上述差分分析通过多次分析具有某个差分的输入数据(明文)及其输出数据(密文)来分析各循环函数中的应用密钥,上述线性分析根据明文和对应的密文进行分析。
利用密码分析容易分析密钥是指其密码处理的安全性较低。在现有的密码算法中,在循环函数(F函数)部的线性变换部中应用的处理(变换矩阵)在各级的循环中相同,因此容易进行分析,其结果导致容易分析密钥。作为应对这种问题的结构,提出在Feistel结构的循环函数(F函数)部的线性变换部中配置两个以上不同的矩阵的结构。该技术被称为扩散矩阵切换机构(DSM diffusionSwitching Mechanism,下面为DSM)。通过该DSM能够提高对差分攻击、线性攻击的抵抗性。该扩散矩阵切换机构(DSM)被表示为对于通常的具有两个数据序列的Feistel结构的应用结构。另一方面,与这种一般的具有两个数据序列的Feistel结构不同,存在具有三个以上数据序列的扩展型Feistel结构。但是,并没有公开在这种具有三个以上数据序列的扩展型Feistel结构中应用上述扩散矩阵切换机构(DSM)来提高对差分攻击、线性攻击的抵抗性的结构。非专利文 献 I:K.Nyberg, “Generalized Feistelnetworks”,AS IACRYPT ^ 96,Springer Verlagj 1996,pp.91 104.
非专利文献2:Yuliang Zheng, Tsutomu Matsumotoj Hideki Ima1:0n theConstruction of Block Ciphers Provably Secure and Not Relying on Any UnprovedHypotheses.CRYPT01989:461-480

发明内容
发明要解决的问题本发明是鉴于上述问题点而完成的,其目的在于提供一种实现对线性分析、差分分析的抵抗性较高的共用密钥块密码算法的密码处理装置、密码处理算法构建方法和密码处理方法、以及计算机程序。更具体地说,本发明的目的在于提供如下的密码处理装置、密码处理算法构建方法和密码处理方法、以及计算机程序:在扩展具有两个数据序列的Feistel结构得到的Feistel结构、即例如具有三个、四个等两个以上的任意数据序列的扩展型Feistel结构中,设定应用了多个不同的线性变换矩阵的循环函数部,实现对线性分析、差分分析的抵抗性较高的共用密钥块密码算法。用于解决问题的方案本发明的第一侧面在于,一种密码处理装置,其特征在于,具有密码处理部,该密码处理部执行将SP型F函数反复多次循环的Feistel型共用密钥块密码处理,其中,上述SP型F函数执行包括非线性变换处理和线性变换处理的数据变换处理,上述密码处理部是执行应用了将数据序列数:d设为d ^ 3的整数的扩展Feistel结构的密码处理的结构,具有在各循环的F函数中执行的线性变换处理中选择性地应用至少两个以上的多个不同的矩阵的结构,上述两个以上的多个不同的矩阵是满足以下条件的多个不同的矩阵:从基于线性变换矩阵的与数据序列对应的最小分支数中选择的全部数据序列中的最小分支数为预先决定的值以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列进行输入的F函数中,具有在对扩展Feistel结构的各数据序列进行输入的F函数中反复配置上述多个不同的矩阵的结构。并且,在本发明的密码处理装置的一个实施方式中,其特征在于,在上述密码处理部中利用的上述多个不同的矩阵是满足以下条件的多个不同的矩阵:从根据线性变换矩阵而算出的与数据序列对应的最小分支数[BkD(s(i))]中选择的全部数据序列中的最小分支数[BkD]为3以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列s(i)进行输入的连续的k个(其中,k为2以上的整数)F函数中。并且,在本发明的密码处理装置的一个实施方式中,其特征在于,在上述密码处理部中利用的上述多个不同的矩阵是满足以下条件的多个不同的矩阵:从根据线性变换矩阵而算出的与数据序列对应的最小分支数[B2D(s(i))]中选择的全部数据序列中的最小分支数[B2d]为3以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列s(i)进行输入的连续的两个F函数中。并且,在本发明的密码处理装置的一个实施方式中,其特征在于,在上述密码处理部中利用的上述多个不同的矩阵是·足以下条件的多个不同的矩阵:从根据线性变换矩阵而算出的与数据序列对应的最小分支数[B2Wi))]中选择的全部数据序列中的最小分支数[B2I为3以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列s(i)进行输入的连续的两个F函数中。并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密码处理部具有如下结构:在将上述多个不同的矩阵设为η个(其中,η为2以上的整数)不同的矩阵..Mlri时,在对扩展Feistel结构的各数据序列进行输入的F函数中依次反复配置这些不同的矩阵IM1、..Μη_10并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密码处理部是执行应用了在一个循环中仅执行一个F函数的扩展Feistel结构的密码处理的结构。并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密码处理部是执行应用了在一个循环中并行地执行多个F函数的扩展Feistel结构的密码处理的结构。并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密码处理部是如下结构:在设为a ^ 2的任意的整数、X ^ I的任意的整数时,执行应用了数据序列数:d=2ax的扩展Feistel结构的密码处理,所述扩展Feistel结构利用了由上述多个不同的矩阵执行不同的线性变换处理的a种F函数,在一个循环中均等地执行所有种类(a种类)的F函数各X个。并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密码处理部具备:F函数执行部,其执行在一个循环中并行地执行的ax个F函数;以及控制部,其执行对上述F函数执行部的数据输入输出控制。并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述密码处理部具备:多个F函数执行部,其利用上述多个不同的矩阵执行不同的线性变换处理;以及控制部,其根据设定而变更上述多个F函数执行部的利用顺序,其中,上述控制部是选择性地执行(a)、(bl)、(b2)中的任一个的密码处理的结构,其中,上述(a)、(bl)、(b2)为(a)通过设为数据序列数d=3的Feistel结构进行的密码处理、或者(bl)是设为数据序列数d彡3的任意数的扩展Feistel结构,在各循环中仅允许执行一个F函数的密码处理、或者(b2)是设为数据序列数d彡3的任意数的扩展Feistel结构,在各循环中允许并行执行多个F函数的密码处理。并且,在本发明的密码处理装置的一个实施方式中,其特征在于,上述控制部是根据成为加密或解密处理的对象的数据的比特长度来选择要执行的处理方式的结构。并且,本发明的第二侧面在于,一种密码处理方法,在密码处理装置中执行密码处理,其特征在于,具有密码处理步骤,在密码处理部中执行将SP型F函数反复多次循环的Feistel型共用密钥块密码处理,其中,上述SP型F函数执行包括非线性变换处理和线性变换处理的数据变换处理,上述密码处理步骤是执行应用了将数据序列数:d设为d > 3的整数的扩展Feistel结构的密码处理的步骤,具有运算步骤,在该运算步骤中,执行在各循环的F函数中执行的线性变换处理中选择性地应用了至少两个以上的多个不同的矩阵的运算,在上述运算步骤中应用的多个不同的矩阵是满足以下条件的多个不同的矩阵:从基于线性变换矩阵的与数据序列对应的最小分支数中选择的全部数据序列中的最小分支数为预先决定的值以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列进行输入的F函数中,上述运算步骤是在对扩展Feistel结构的各数据序列进行输入的F函数中执行基于上述多个不同的矩阵的线性变换运算的步骤。并且,在本发明的密码处理方法的一个实施方式中,其特征在于,上述多个不同的矩阵是满足以下条件的多个不同的矩阵:从根据线性变换矩阵而算出的与数据序列对应的最小分支数[BkD(s(i))]中选择的全部数据序列中的最小分支数[BkD]为3以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列s(i)进行输入的连续的k个(其中,k为2以上的整数)F函数中。并且,在本发明的密码处理方法的一个实施方式中,其特征在于,上述多个不同的矩阵是满足以下条件的多个不同的矩阵:从根据线性变换矩阵而算出的与数据序列对应的最小分支数[B2D(s(i))]中选择的全部数据序列中的最小分支数[B211]为3以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列s(i)进行输入的连续的两个F函数中。并且,在本发明的密码处理方法的一个实施方式中,其特征在于,上述多个不同的矩阵是满足以下条件的多个不同的矩阵:从根据线性变换矩阵而算出的与数据序列对应的最小分支数[B2Wi))]中选择的全部数据序列中的最小分支数[B2I为3以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列s(i)进行输入的连续的两个F函数中。并且,在本发明的密码处理方法的一个实施方式中,其特征在于,在将上述多个不同的矩阵设为η个(其中,η为2以上的整数)不同的矩阵IMp.时,上述运算步骤是在对扩展Feistel结构的各数据序列进行输入的F函数中依次反复执行这些不同的矩阵MpMp..Mlri的步骤。并且,在本发明的密码处理方法的一个实施方式中,其特征在于,上述密码处理步骤是执行应用了在一个循环中仅执行一个F函数的扩展Feistel结构的密码处理的步骤。并且,在本发明的密码处理方法的一个实施方式中,其特征在于,上述密码处理步骤是执行应用了在一个循环中并行地执行多个F函数的扩展Feistel结构的密码处理的步骤。并且,在本发明的密码处理方法的一个实施方式中,其特征在于,上述密码处理步骤是如下的步骤:在设为a ^ 2的任意的整数、X ^ I的任意的整数时,执行应用了数据序列数:d=2ax的扩展Feistel结构的密码处理,所述扩展Feistel结构利用了由上述多个不同的矩阵执行不同的线性变换处理的a种F函数,在一个循环中均等地执行所有种类(a种类)的F函数各X个。并且,在本发明的密码处理方法的一个实施方式中,其特征在于,上述密码处理步骤是应用F函数执行部,按照控制部的控制来执行密码处理的步骤,其中,上述F函数执行部执行在一个循环中并行地执行的ax个F函数,上述控制部执行对上述F函数执行部的数据输入输出控制。并且,在本发明的密码处理方法的一个实施方式中,其特征在于,在上述密码处理步骤中,利用由上述多个不同的矩阵执行不同的线性变换处理的多个F函数执行部和根据设定而变更上述多个F函数执行部的利用顺序的控制部来执行密码处理,通过上述控制部的控制,选择性地执行(a)、(bl)、(b2)中的任一个的密码处理,其中,上述(a)、(bl)、(b2)为(a)通过设为数据序列数d=3的Feistel结构进行的密码处理、或者(bl)是设为数据序列数d彡3的任意数的扩展Feistel结构,在各循环中仅允许执行一个F函数的密码处理、或者(b2)是设为数据序列数d彡3的任意数的扩展Feistel结构,在各循环中允许并行执行多个F函数的密码处理。并且,在本发明的密码处理方法的一个实施方式中,其特征在于,上述控制部根据成为加密或解密处理的对象的数据的比特长度来选择要执行的处理方式。并且,本发明的第三侧面在于,一种密码处理算法构建方法,在信息处理装置中构建密码处理算法,其特征在于,具有以下步骤:矩阵决定步骤,在应用了将数据序列数:d设为d彡3的整数的扩展Feistel结构的密码处理算法的结构中,信息处理装置中的控制部决定在各循环的F函数中执行的线性变换处理中应用的至少两个以上的多个不同的矩阵;以及矩阵设定步骤,上述控制部在对扩展Feistel结构的各数据序列进行输入的F函数中反复配置在上述矩阵决定步骤中决定的多个不同的矩阵,其中,上述矩阵决定步骤是执行以下处理的步骤:作为上述两个以上的多个不同的矩阵,将满足从基于线性变换矩阵的与数据序列对应的最小分支数中选择的全部数据序列中的最小分支数为预先决定的值以上的条件的多个不同的矩阵决定为应用矩阵,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列进行输入的F函数中。并且,本发明的第四侧面在于,一种计算机程序,使密码处理装置执行密码处理,其特征在于,具有密码处理步骤,使密码处理部执行将SP型F函数反复多次循环的Feistel型共用密钥块密码处理,其中,上述SP型F函数执行包括非线性变换处理和线性变换处理的数据变换处理,上述密码处理步骤是执行应用了将数据序列数:d设为d ^ 2的整数的扩展Feistel结构的密码处理的步骤,包括运算步骤,在该运算步骤中,执行在各循环的F函数中执行的线性变换处理中选择性地应用了至少两个以上的多个不同的矩阵的运算,在上述运算步骤中应用的多个 不同的矩阵是满足以下条件的多个不同的矩阵:从基于线性变换矩阵的与数据序列对应的最小分支数中选择的全部数据序列中的最小分支数为预先决定的值以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列进行输入的F函数中,上述运算步骤是在对扩展Feistel结构的各数据序列进行输入的F函数中执行基于上述多个不同的矩阵的线性变换运算的步骤。并且,本发明的第五侧面在于,一种计算机程序,在信息处理装置中构建密码处理算法,其特征在于,具有以下步骤:矩阵决定步骤,在应用了将数据序列数:d设为d > 2的整数的扩展Feistel结构的密码处理算法的结构中,使信息处理装置中的控制部决定在各循环的F函数中执行的线性变换处理中应用的至少两个以上的多个不同的矩阵;以及矩阵设定步骤,使上述控制部在对扩展Feistel结构的各数据序列进行输入的F函数中反复配置在上述矩阵决定步骤中决定的多个不同的矩阵,其中,上述矩阵决定步骤是执行以下处理的步骤:作为上述两个以上的多个不同的矩阵,将满足从基于线性变换矩阵的与数据序列对应的最小分支数中选择的全部数据序列中的最小分支数为预先决定的值以上的条件的多个不同的矩阵决定为应用矩阵,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列进行输入的F函数中。并且,本发明的第六侧面在于,一种信息处理装置,包括:有形存储单元,用于存储密码处理所需的密钥数据;处理器,用于执行各种程序以及控制密码处理的开始和结束;以及密码处理装置,用于进行密码处理,所述密码处理装置具有密码处理部,该密码处理部执行将SP型F函数反复多次循环的Feistel型共用密钥块密码处理,其中,上述SP型F函数执行包括非线性变换处理和线性变换处理的数据变换处理,上述密码处理部是执行应用了将数据序列数:d设为d ^ 3的整数的扩展Feistel结构的密码处理的结构,具有在各循环的F函数中执行的线性变换处理中选择性地应用至少两个以上的多个不同的矩阵的结构,其中,上述两个以上的多个不同的矩阵是满足以下条件的多个不同的矩阵:从基于线性变换矩阵的与数据序列对应的最小分支数中选择的全部数据序列中的最小分支数为预先决定的值以上,其中,上 述线性变换矩阵包含在对扩展Feistel结构的各数据序列进行输入的F函数中,具有在对扩展Feistel结构的各数据序列进行输入的F函数中反复配置上述多个不同的矩阵的结构。此外,本发明的计算机程序例如是以计算机可读形式提供的能够通过存储介质、通信介质、例如CD、FD、M0等记录介质、或网络等通信介质来对可执行各种程序代码的计算机系统提供的计算机程序。通过以计算机可读形式提供这种程序,在计算机系统上实现与程序相应的处理。通过基于后述的本发明的实施例、附图的更详细的说明,本发明的进一步的其它目的、特征、优点会更清楚。此外,在本说明书中的系统是多个装置的逻辑集合结构,并不限于各结构的装置在同一壳体内。发明的效果根据本发明的一个实施例的结构,在将具有非线性变换部和线性变换部的SP型F函数反复执行多个循环的Feistel型共用密钥块密码处理中,在将具有两个数据序列的Feistel结构扩展得到的Feistel结构、即具有例如三个、四个等两个以上的任意的数据序列的扩展型Feistel结构中,通过设定应用了多个不同的线性变换矩阵的循环函数部来实现扩散矩阵切换机构(DSM),能够构建对线性分析、差分分析的抵抗性较高的共用密钥块密码算法以及执行密码处理。根据本发明的一个实施例的结构,在执行应用了将数据序列数:d设为d > 2的整数的扩展Feistel结构的密码处理的结构中,具有在各循环的F函数中执行的线性变换处理中选择性地应用至少两个以上的多个不同的矩阵的结构,作为两个以上多个不同的矩阵设定为满足从基于线性变换矩阵的与数据序列对应的最小分支数中选择的全部数据序列中的最小分支数为预先决定的值以上的条件的多个不同的矩阵,由此实现扩散矩阵切换机构(DSM),能够构建对线性分析、差分分析的抵抗性较高的共用密钥块密码算法以及执行密码处理,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列进行输入的F函数中。并且,根据本发明的一个实施例的结构,在利用由多个不同的矩阵执行不同的线性变换处理的a(a彡2)种F函数执行应用了数据序列数:d=2ax的扩展Feistel结构(x^ I)的密码处理的结构中,设为在一个循环中均等地执行所有种类(a种类)的F函数各X个的结构,因此实现没有设置多余的电路的小型密码处理装置。并且,根据本发明的一个实施例的结构,设为构成由多个不同的矩阵执行不同的线性变换处理的多个F函数执行部、并根据设定来变更多个F函数执行部的利用顺序的结构,由此实现能够选择性地执行(a)、(bl)、(b2)中的任一个的密码处理的密码处理装置,其中,上述(a)、(bl)、( b2)为(a)通过设为数据序列数为d=2的Feistel结构进行的密码处理、或者(bl)是设为数据序列数为d彡2的任意数的扩展Feistel结构,在各循环中仅允许执行一个F函数的密码处理、或者(b2)是设为数据序列数为d彡2的任意数的扩展Feistel结构,在各循环中允许并行执行多个F函数的密码处理。


图1是表示具有Feistel结构的代表性的共用密钥块密码的结构的图。图2是说明作为循环函数部设定的F函数的结构的图。图3是说明利用了两个不同的线性变换矩阵的Feistel型密码算法的图。图4是说明利用了三个不同的线性变换矩阵的Feistel型密码算法的图。图5是说明扩展Feistel结构的定义的图。图6是表示具有7个数据序列(d=7)的扩展Feistel结构例的图。图7是说明扩展Feistel结构的各结构部以及各结构部的输入输出数据的定义的图。图8是说明对于扩展Feistel结构的类型I的DSM应用的图。图9是说明对于扩展Feistel结构的类型2的DSM应用的图。图10是说明对于扩展Feistel结构的类型I的DSM应用的图。图11是说明对于扩展Feistel结构的类型2的DSM应用的图。图12是说明提高了扩展Feistel结构的安装效率的结构的图。图13是说明提高了扩展Feistel结构的安装效率的硬件结构例的图。图14是说明用于有效安装三种F函数的配置例的图。图15是表示设为数据序列d=2的Feistel结构的2mn比特的块密码结构的图。图16是表示满足扩散矩阵切换机构(DSM)的数据序列数d=4的扩展Feistel结构的图。图17是说明能够执行不同比特数的块密码的电路共用结构的图。图18是说明应用了三种F函数F1、F2、F3的F函数的数据序列d=2的Feistel结构的图。图19是说明执行三种F函数F1、F2、F3的密码处理装置的结构例的图。图20是表示作为本发明所涉及的执行密码处理的密码处理装置的IC模块的结构例的图。
具体实施例方式下面,详细说明本发明的密码处理装置和密码处理方法、以及计算机程序。按照以下项目进行说明。1.具有SP型F函数的Feistel结构2.分支数运算函数和抵抗性评价函数2-1.分支数运算函数:Branch O2-2.对差分攻击的抵抗性评价指标2-3.对线性攻击的抵抗性评价指标3.对于具有两个数据序列的Feistel结构的DSM的设定方法4.扩展Feistel结构中的DSM的设定4-1.关于扩展Feistel结构4-2.在扩展Feistel结构中用于提高对差分攻击的抵抗性的结构4-2-1.使最小分支数B211的值为3以上的F函数中的矩阵选择结构4-2-2.使最小分支数BkD的值为3以上的F函数中的矩阵选择结构4-3.在扩展Feistel结构中用于提高对线性攻击的抵抗性的结构4-3-1.使最小分支数B;的值为3以上的F函数中的矩阵选择结构5.对于具有特定形式的扩展Feistel结构的DSM的利用结构5-1.对于扩展Feistel结构的类型I的DSM的应用5-2.对于扩展Feistel结构的类型2的DSM的应用6.扩展Feistel结构的各类型的有效S_box数与基于F函数中的线性变换矩阵的最小分支数之间的关系式的证明6-1.扩展Feistel结构的类型I的有效S_box数与基于F函数中的线性变换矩阵的最小分支数之间的关系式的证明6-2.扩展Feistel结构的类型2的有效s-box数与基于F函数中的线性变换矩阵的最小分支数之间的关系式的证明7.基于F函数的设定以及利用处理的方法的安装中的改进结构7-1.扩展Feistel的类型2的有效的F函数配置方法7-2.Feistel结构与扩展Feistel结构中的部件的共用化8.本发明的密码处理以及密码算法构建处理的归纳9.密码处理装置的结构例[1.具有SP型F函数的Feistel结构]
首先,说明具有SP型F函数的Feistel结构。作为共用密钥块密码的设计,已知有Feistel结构。Feistel结构具有如下结构:通过被称为循环函数的基本处理单位的重复,将明文变换为密文。参照图1说明Feistel结构的基本结构。在图1中示出具有r个循环的循环数=r的具有两个数据序列的Feistel结构的例子。此外,循环数r是在设计阶段决定的参数,例如是能够根据所输入的密钥的长度而改变的值。在图1所示的Feistel结构中,将作为加密对象而输入的明文的长度设为2mn比特。其中,m、n都是整数。首先,将2mn比特的明文分割为mn比特的两个输入数据Pl(Plain-Left:左明文)101、Pk(Plain-Right:右明文)102,并将其设为输入值。以被称为循环函数的基本处理单位的重复来表现Feistel结构,各循环中所包含的数据变换函数被称为F函数120。在图1的结构中,示出有F函数(循环函数)120重复了 r级的结构例。例如在第一个循环中,将mn比特的输入数据X和从密钥生成部(未图示)输入的mn比特的循环密钥1103输入到F函数120,在F函数120中进行数据变换处理之后输出mn比特的数据Y。在异或部104中对输出与来自另一方前级的输入数据(第I级的情况下是输入数据!\)进行异或运算,并向下一个循环函数输出mn比特的运算结果。应用该处理、即仅反复应用F函数决定的循环数(r)来完成加密处理,输出密文的分割数据Q(Cipher-Left:左密码)、CK(Cipher-Right:右密码)。通过以上结构得出Feistel结构的解密处理只要使插入循环密钥的顺序反转即可、不需要构成反函数。参照图2说明设定为各循环的函数的F函数120的结构。图2的(a)是表示对一个循环中的F函数120的输入以及输出的图,图2的(b)是表示F函数120的详细结构的图。如图2的(b)所示,F函数120具有连接了非线性变换层(S层)和线性变换层(P层)的所谓的SP型结构。 图2所示的F函数120是输入输出比特长度具有mXn (m、η为整数)比特的设定的函数。在SP型F函数内部中,首先执行密钥数据Ki与数据Xi之间的异或,然后应用非线性变换层(S层),接着应用线性变换层(P层)。具体地说,在非线性变换层(S层)中排列了 m个被称为S盒(S-box) 121的η比特输入η比特输出的非线性变换表,将mn比特的数据以每η比特进行分割、并分别输入到对应的S盒(S-box) 121来变换数据。在各S盒中例如执行应用了变换表的非线性变换处理。线性变换层(P层)由线性变换部122构成,对线性变换部122输入来自S盒121的作为输出数据的mn比特的输出值Z,线性变换部122对该输入实施线性变换而输出mn比特的结果。线性变换部122执行输入比特位置的替换处理等线性变换处理,输出mn比特的输出值Y。该输出值Y与来自前级的输入数据进行异或,被设为下一个循环的F函数的输入值。此外,在下面说明的本实施例的结构中,将在作为线性变换层(P层)的线性变换部122中执行的线性变换定义为应用在GF(2)上定义的mnXmn矩阵而进行的线性变换,另夕卜,将包含在第i个循环中的矩阵称为乂。此外,将在本发明中说明的结构中的作为非线性变换部的S盒和线性变换都设为双射。
[2.分支数运算函数和抵抗性评价函数]接着,说明为了理解本发明而需要的分支数运算函数和抵抗性评价函数。(2-1.分支数运算函数:Branch O)将作为在线性变换部122中执行的线性变换的例子的最优扩散变换(OptimalDiffusion Mappings)的分支数运算函数:Branch O定义为如下,其中,上述线性变换部122作为上述F函数内的线性变换层(P层)。对于进行从nXa比特数据向nXb比特数据的线性变换的映射,Θ:{0,l}na— {0,l}nb将分支数:Branchn( Θ )定义为如下。Branchn ( Θ ) = min α 0 {hwn ( a ) +hwn ( θ (α ))}其中,将mina#{Xa}设为表示满足α古O的所有Xa中的最小值的Xa,将hwjY)设为在将比特列Y按每η比特进行分割来表示时η比特的数据都返回不是O的(非零)元素的数的函数。此外,此时,将Branchn( Θ )为b+1那样的映射Θ定义为最优扩散变换。(2-2.对差分攻击的抵抗性评价指标)在应用Feistel结构的共用密钥密码处理中,由密码分析引起的密钥的泄漏成为问题。作为密码分析或者攻击方 法的代表方法,已知有差分分析(也称为差分解读法或者差分攻击)、线性分析(也称为线性解读法或者线性攻击),其中,上述差分分析通过多次分析具有某个差分(△ 的输入数据(明文)及其输出数据(密文)来分析各循环函数中的应用密钥,上述线性分析根据明文与对应的密文进行分析。作为实现对差分攻击的抵抗性的指标,能够应用包含在表现差分的连接关系的差分路径中的差分有效S盒的最小数。差分路径是对除了加密函数中的密钥数据以外的所有数据部分指定特定的差分值而得到的。差分值并不是自由决定的,而是变换处理前后的差分值互相关联。在线性变换处理的前后,一对一地决定输入差分与输出差分之间的关系。在非线性变换的前后,不是一对一地决定输入差分与输出差分之间的关系,而是导入概率的概念。设为能够事先计算对于某个输入差分和输出差分的概率。将对于所有输出的概率全部相加为I。在具有SP型F函数的Feistel结构中,非线性变换仅为由S盒进行处理的部分。因而,在这种情况下,具有O以外的概率的差分路径是从对明文(输入)的差分值开始直到密文(输出)的差分值为止的差分数据的集合,在所有的S盒前后提供的差分值具有O以外的概率。设为将具有O以外的概率的某个差分路径的输入到S盒的差分值不是O的S盒称为差分有效S盒。已知将具有O以外的概率的所有差分路径的有效S盒数之中最小的数称为最小差分有效S盒数,该数值作为对差分攻击的安全性指标。此外,所有差分值为O那样的差分路径概率为1,作为攻击没有意义,因此以后不予考虑。在本发明的一个实施例中,具有通过保证该最小差分有效S盒数较大来提高对差分攻击的安全性的结构。(2-3.对线性攻击的抵抗性评价指标)并且,作为实现对线性攻击的抵抗性的指标,能够应用包含在表现线性掩模的连接关系的线性路径(多被称为线性近似,但是为了与差分对应,在此使用称为“路径”的词语)中的线性有效S盒的最小数。线性路径是对除了加密函数中的密钥数据以外的所有数据部分指定特定的线性掩模值而得到的。线性掩模值并不是自由决定的,而是变换处理前后的线性值互相关联。在线性变换处理的前后,一对一地决定输入线性掩模值与输出线性掩模值之间的关系。在非线性变换的前后,不是一对一地决定输入线性掩模值与输出线性掩模值之间的关系,而是导入概率的概念。对于输入线性掩模值,存在能够输出的一个以上的线性掩模值的集合,能够事先计算各线性掩模值被输出的概率。对所有输出的概率全部相加为I。在具有SP型F函数的Feistel结构中,非线性变换仅为由S盒进行处理的部分。因而,在这种情况下,具有O以外的概率的线性路径是从对明文(输入)的线性值开始直到密文(输出)的线性值为止的线性掩模值数据的集合,在所有的S盒前后提供的线性值是具有O以外的概率的线性值。设为将具有O以外的概率的某个线性路径的输入到S盒的线性值不是O的S盒称为线性有效S盒。将具有O以外的概率的所有线性路径的有效S盒数之中最小的数称为最小线性有效S盒数,已知该数值作为对线性攻击的安全性指标。此外,所有线性掩模值为O那样的线性路径概率为1,作为攻击没有意义,因此以后不予考虑。在本发明的一个实施例中,通过保证该最小线性有效S盒数较大来提高对线性攻击的安全性。[3.对于具有两个数据序列的Feistel结构的DSM的设定方法]如之前所说明的那样,在应用了 Feistel结构的密码处理中,作为提高对上述的差分攻击、线性攻击的抵抗性的结构,提出应用扩散矩阵切换机构(DSM: D i ffu s i onSwitching Mechanism,下面是DSM)的结构。DSM是在Feistel结构的循环函数(F函数)部的线性变换部中配置两个以上不同的矩阵的结构。通过该DSM能够保证最小线性有效S盒数较大,能够提高对差 分攻击、线性攻击的抵抗性。关于该DSM,说明其概要。在Feistel结构中,在应用了扩散矩阵切换机构(DSM)的情况下,在构成Feistel结构的循环函数(F函数)部的线性变换部(P层)中应用的矩阵为多个不同的矩阵。例如,如图1所示的r个循环的Feistel结构的各循环中的应用矩阵不是设定为全部相同的线性变换矩阵,而是按照特定的规则排列至少两种以上的矩阵。例如,图3示出通过两个线性变换矩阵M0、M1来实现扩散矩阵切换机构(DSM)的Feistel结构例,图4示出通过三个线性变换矩阵Mc^MpM2来实现扩散矩阵切换机构(DSM)的Feistel结构例。在图3所示的Feistel结构例中,两个线性变换矩阵Mc^M1由不同的矩阵构成。另夕卜,在图4所示的Feistel结构例中,三个线性变换矩阵Mc^MpM2由不同的矩阵构成。为了实现扩散矩阵切换机构(DSM),所应用的矩阵需要满足规定的条件。该条件之一是与上述分支数(Branch)有关的限制。下面,说明该限制。在Feistel结构中的循环函数部的线性变换所应用的多个不同的矩阵McTMn各自的分支数中,将应用矩阵中的分支数的最小值:ΒΛ与所应用的多个矩阵的关联矩阵对应的分支数的最小值:B2d、B3d、B;定义为如下。[数I]
权利要求
1.一种解密处理装置,其特征在于, 具有解密处理部,该解密处理部执行将SP型F函数反复多次循环的Feistel型共用密钥块密码的解密处理,其中,上述SP型F函数执行包括非线性变换处理和线性变换处理的数据变换处理, 上述解密处理部是执行应用了将数据序列数:d设为d ^ 3的整数的扩展Feistel结构的解密处理的结构,具有在各循环的F函数中执行的线性变换处理中选择性地应用至少两个以上的多个不同的矩阵的结构, 其中,上述两个以上的多个不同的矩阵是满足以下条件的多个不同的矩阵:从基于线性变换矩阵的与数据序列对应的最小分支数中选择的全部数据序列中的最小分支数为预先决定的值以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列进行输入的F函数中, 具有在对扩展Feistel结构的各数据序列进行输入的F函数中反复配置上述多个不同的矩阵的结构。
2.根据权利要求1所述的解密处理装置,其特征在于, 在上述解密处理部中利用的上述多个不同的矩阵是满足以下条件的多个不同的矩阵:从根据线性变换矩阵而算出的与数据序列对应的最小分支数[BkD(s(i))]中选择的全部数据序列中的最小分支数[BkD]为3以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列s (i)进行输入的连续的k个F函数中,其中,k为2以上的整数。
3.根据权利要求1所述的解密处理装置,其特征在于, 在上述解密处理部中利用的上述多个不同的矩阵是满足以下条件的多个不同的矩阵:从根据线性变换矩阵而算出的与`数据序列对应的最小分支数[B2D(s(i))]中选择的全部数据序列中的最小分支数[B2d]为3以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列s (i)进行输入的连续的两个F函数中。
4.根据权利要求1所述的解密处理装置,其特征在于, 在上述解密处理部中利用的上述多个不同的矩阵是满足以下条件的多个不同的矩阵:从根据线性变换矩阵而算出的与数据序列对应的最小分支数[B2Wi))]中选择的全部数据序列中的最小分支数[B2I为3以上,其中,上述线性变换矩阵包含在对扩展F eistel结构的各数据序列s (i)进行输入的连续的两个F函数中。
5.根据权利要求1所述的解密处理装置,其特征在于, 上述解密处理部具有如下结构: 当将上述多个不同的矩阵设为η个不同的矩阵ΜρΜρ.-Mlri时, 在对扩展Feistel结构的各数据序列进行输入的F函数中依次反复配置这些不同的矩阵M。^、..Mlri,其中,η为2以上的整数。
6.根据权利要求广5中的任一项所述的解密处理装置,其特征在于, 上述解密处理部是执行应用了在一个循环中仅执行一个F函数的扩展Feistel结构的解密处理的结构。
7.根据权利要求广5中的任一项所述的解密处理装置,其特征在于, 上述解密处理部是执行应用了在一个循环中并行地执行多个F函数的扩展Feistel结构的解密处理的结构。
8.根据权利要求广5中的任一项所述的解密处理装置,其特征在于, 上述解密处理部是如下结构: 在设为a ^ 2的任意的整数、X ^ I的任意的整数时,执行应用了数据序列数:d=2ax的扩展Feistel结构的解密处理,其中,所述扩展Feistel结构利用了由上述多个不同的矩阵执行不同的线性变换处理的a种F函数, 在一个循环中均等地执行所有种类即a种类的F函数各X个。
9.根据权利要求8所述的解密处理装置,其特征在于, 上述解密处理部具备: F函数执行部,其执行在一个循环中并行地执行的ax个F函数;以及 控制部,其执行对上述F函数执行部的数据输入输出控制。
10.根据权利要求广5中的任一项所述的解密处理装置,其特征在于, 上述解密处理部具备: 多个F函数执行部,其利用上述多个不同的矩阵执行不同的线性变换处理;以及 控制部,其根据设定而变更上述多个F函数执行部的利用顺序, 其中,上述控制部是选择性地执行(a)、(bl)、(b2)中的任一个的解密处理的结构,其中,上述(a)、(bl)、(b2)为 (a)通过设为数据序列数d=3的Feistel结构进行的解密处理、或者(bl)是设为数据序列数d ^ 3的任意数的扩展Feistel结构,在各循环中仅允许执行一个F函数的解密处理、或者 (b2)是设为数据序列数d ^ 3的任意数的扩展Feistel结构,在各循环中允许并行执行多个F函数的解密处理。
11.根据权利要求10所述的解密处理装置,其特征在于, 上述控制部是根据成为加密或解密处理的对象的数据的比特长度来选择要执行的处理方式的结构。
12.—种解密处理方法,在解密处理装置中执行解密处理,其特征在于, 具有解密处理步骤,在解密处理部中执行将SP型F函数反复多次循环的Feistel型共用密钥块密码的解密处理,其中,上述SP型F函数执行包括非线性变换处理和线性变换处理的数据变换处理, 上述解密处理步骤是执行应用了将数据序列数:d设为d ^ 3的整数的扩展Feistel结构的解密处理的步骤,具有运算步骤,在该运算步骤中,执行在各循环的F函数中执行的线性变换处理中选择性地应用了至少两个以上的多个不同的矩阵的运算, 在上述运算步骤中应用的多个不同的矩阵是满足以下条件的多个不同的矩阵:从基于线性变换矩阵的与数据序列对应的最小分支数中选择的全部数据序列中的最小分支数为预先决定的值以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列进行输入的F函数中, 上述运算步骤是在对扩展Feistel结构的各数据序列进行输入的F函数中执行基于上述多个不同的矩阵的线性变换运算的步骤。
13.根据权利要求12所述的解密处理方法,其特征在于, 上述多个不同的矩阵是满足以下条件的多个不同的矩阵:从根据线性变换矩阵而算出的与数据序列对应的最小分支数[BkD(s(i))]中选择的全部数据序列中的最小分支数[BkD]为3以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列s(i)进行输入的连续的k个F函数中,其中,k为2以上的整数。
14.根据权利要求12所述的解密处理方法,其特征在于, 上述多个不同的矩阵是满足以下条件的多个不同的矩阵:从根据线性变换矩阵而算出的与数据序列对应的最小分支数[B2D(s(i))]中选择的全部数据序列中的最小分支数[B211]为3以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列s(i)进行输入的连续的两个F函数中。
15.根据权利要求12所述的解密处理方法,其特征在于, 上述多个不同的矩阵是满足以下条件的多个不同的矩阵:从根据线性变换矩阵而算出的与数据序列对应的最小分支数[B2Wi))]中选择的全部数据序列中的最小分支数[B;]为3以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列s(i)进行输入的连续的两个F函数中。
16.根据权利要求12所述的解密处理方法,其特征在于, 在将上述多个不同的矩阵设为η个不同的矩阵凡、Mp..Mlri时, 上述运算步骤是在对扩展Feistel结构的各数据序列进行输入的F函数中依次反复执行这些不同的矩阵Mc^M1、..Mlri的步骤,其中,η为2以上的整数。
17.根据权利要求12 16中的任一项所述的解密处理方法,其特征在于, 上述解密处理步骤是执行应用了在一个循环中仅执行一个F函数的扩展Feistel结构的解密处理的步骤。
18.根据权利要求12 16中的任一项所述的解密处理方法,其特征在于, 上述解密处理步骤是执行应用了在一个循环中并行地执行多个F函数的扩展Feistel结构的解密处理的步骤。
19.根据权利要求12 16中的任一项所述的解密处理方法,其特征在于, 上述解密处理步骤是如下的步骤: 在设为a ^ 2的任意的整数、X ^ I的任意的整数时,执行应用了数据序列数:d=2ax的扩展Feistel结构的解密处理,其中所述扩展Feistel结构利用了由上述多个不同的矩阵执行不同的线性变换处理的a种F函数, 在一个循环中均等地执行所有种类即a种类的F函数各X个。
20.根据权利要求19所述的解密处理方法,其特征在于, 上述解密处理步骤是应用F函数执行部,按照控制部的控制来执行解密处理的步骤,其中,上述F函数执行部执行在一个循环中并行地执行的ax个F函数,上述控制部执行对上述F函数执行部的数据输入输出控制。
21.根据权利要求12 16中的任一项所述的解密处理方法,其特征在于, 在上述解密处理步骤中, 利用由上述多个不同的矩阵执行不同的线性变换处理的多个F函数执行部和根据设定而变更上述多个F函数执行部的利用顺序的控制部来执行解密处理,通过上述控制部的控制,选择性地执行(a)、(bl)、(b2)中的任一个的解密处理,其中,上述(a)、(bl)、(b2)为 (a)通过设为数据序列数d=3的Feistel结构进行的解密处理、或者(bl)是设为数据序列数d ^ 3的任意数的扩展Feistel结构,在各循环中仅允许执行一个F函数的解密处理、或者 (b2)是设为数据序列数d ^ 3的任意数的扩展Feistel结构,在各循环中允许并行执行多个F函数的解密处理。
22.根据权利要求21所述的解密处理方法,其特征在于, 上述控制部根据成为加密或解密处理的对象的数据的比特长度来选择要执行的处理方式。
23.一种信息处理装置,包括: 存储器,用于存储解密处理所需的密钥数据;以及 解密处理装置,用于进行解密处理,所述解密处理装置具有解密处理部,该解密处理部执行将SP型F函数反复多次循 环的Feistel型共用密钥块密码的解密处理,其中,上述SP型F函数执行包括非线性变换处理和线性变换处理的数据变换处理, 上述解密处理部是执行应用了将数据序列数:d设为d ^ 3的整数的扩展Feistel结构的解密处理的结构,具有在各循环的F函数中执行的线性变换处理中选择性地应用至少两个以上的多个不同的矩阵的结构, 其中,上述两个以上的多个不同的矩阵是满足以下条件的多个不同的矩阵:从基于线性变换矩阵的与数据序列对应的最小分支数中选择的全部数据序列中的最小分支数为预先决定的值以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列进行输入的F函数中, 具有在对扩展Feistel结构的各数据序列进行输入的F函数中反复配置上述多个不同的矩阵的结构。
24.根据权利要求23所述的信息处理装置,其特征在于, 在上述解密处理部中利用的上述多个不同的矩阵是满足以下条件的多个不同的矩阵:从根据线性变换矩阵而算出的与数据序列对应的最小分支数[BkDWS(i))]中选择的全部数据序列中的最小分支数[BkD]为3以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列s (i)进行输入的连续的k个F函数中,其中,k为2以上的整数。
25.根据权利要求23所述的信息处理装置,其特征在于, 在上述解密处理部中利用的上述多个不同的矩阵是满足以下条件的多个不同的矩阵:从根据线性变换矩阵而算出的与数据序列对应的最小分支数[b2D(sα))]中选择的全部数据序列中的最小分支数[B2d]为3以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列s (i)进行输入的连续的两个F函数中。
26.根据权利要求23所述的信息处理装置,其特征在于, 在上述解密处理部中利用的上述多个不同的矩阵是满足以下条件的多个不同的矩阵:从根据线性变换矩阵而算出的与数据序列对应的最小分支数[B2Wi))]中选择的全部数据序列中的最小分支数[B2I为3以上,其中,上述线性变换矩阵包含在对扩展Feistel结构的各数据序列s (i)进行输入的连续的两个F函数中。
27.根据权利要求23所述的信息处理装置,其特征在于, 上述解密处理部具有如下结构: 当将上述多个不同的矩阵设为η个不同的矩阵ΜρΜρ.-Mlri时,在对扩展Feistel结构的各数据序列进行输入的F函数中依次反复配置这些不同的矩阵M。^、..Mlri,其中,η为2以上的整数。
28.根据权利要求23 27中的任一项所述的信息处理装置,其特征在于, 上述解密处理部是执行应用了在一个循环中仅执行一个F函数的扩展Feistel结构的解密处理的结构。
29.根据权利要求23 27中的任一项所述的信息处理装置,其特征在于, 上述解密处理部是执行应用了在一个循环中并行地执行多个F函数的扩展Feistel结构的解密处理的结构。
30.根据权利要求23 27中的任一项所述的信息处理装置,其特征在于, 上述解密处理部是如下结构: 在设为a ^ 2的任意的整数、X ^ I的任意的整数时,执行应用了数据序列数:d=2ax的扩展Feistel结构的解密 处理,其中,所述扩展Feistel结构利用了由上述多个不同的矩阵执行不同的线性变换处理的a种F函数, 在一个循环中均等地执行所有种类即a种类的F函数各X个。
31.根据权利要求30所述的信息处理装置,其特征在于, 上述解密处理部具备: F函数执行部,其执行在一个循环中并行地执行的ax个F函数;以及 控制部,其执行对上述F函数执行部的数据输入输出控制。
32.根据权利要求23 27中的任一项所述的信息处理装置,其特征在于, 上述解密处理部具备: 多个F函数执行部,其利用上述多个不同的矩阵执行不同的线性变换处理;以及 控制部,其根据设定而变更上述多个F函数执行部的利用顺序, 其中,上述控制部是选择性地执行(a)、(bl)、(b2)中的任一个的解密处理的结构,其中,上述(a)、(bl)、(b2)为 (a)通过设为数据序列数d=3的Feistel结构进行的解密处理、或者(bl)是设为数据序列数d ^ 3的任意数的扩展Feistel结构,在各循环中仅允许执行一个F函数的解密处理、或者 (b2)是设为数据序列数d ^ 3的任意数的扩展Feistel结构,在各循环中允许并行执行多个F函数的解密处理。
33.根据权利要求32所述的信息处理装置,其特征在于, 上述控制部是根据成为加密或解密处理的对象的数据的比特长度来选择要执行的处理方式的结构。
全文摘要
本发明提供了一种解密处理装置、方法和信息处理装置。实现应用了扩散矩阵切换机构(DSM)的扩展Feistel型共用密钥块密码处理结构。在应用了将数据序列数d设为d≥2的整数的扩展Feistel结构的密码处理结构中,在F函数部的线性变换处理中选择性地应用多个不同的多个矩阵。作为矩阵,选择满足从基于线性变换矩阵的与数据序列对应的最小分支数中选择的全部数据序列中的最小分支数为预先决定的值以上的条件的多个不同的矩阵,其中上述线性变换矩阵包含在输入到扩展Feistel结构的各数据序列的F函数中。根据本发明,实现对基于DSM的线性分析、差分分析的抵抗性较高的共用密钥块密码。
文档编号H04L9/06GK103078734SQ20131002089
公开日2013年5月1日 申请日期2007年7月17日 优先权日2006年7月28日
发明者白井太三, 涩谷香士 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1