加密处理装置、加密处理方法和程序的制作方法

文档序号:7989280阅读:148来源:国知局
加密处理装置、加密处理方法和程序的制作方法
【专利摘要】为了实现由于对回合密钥提供的控制而非常安全的加密处理装置,本发明的一个方面包括:加密处理单元,其将要进行数据处理的数据的配置位划分成多行并且然后进行输入,然后对各行数据重复执行应用回合函数的数据转换处理作为回合运算;以及密钥安排单元,其将回合密钥输出到加密处理单元中的回合运算执行单元。密钥安排单元是替换型密钥安排单元,其将先前保存的秘密密钥划分成多个单位并生成多个回合密钥,并且密钥安排单元以不存在固定序列重复的设置将所生成的多个回合密钥输出到在加密处理单元中顺序地执行的回合运算执行单元。由于所述结构,实现了非常安全并且对相关密钥攻击或类似攻击具有强抵抗性的加密处理配置。
【专利说明】加密处理装置、加密处理方法和程序
【技术领域】
[0001]本公开涉及一种加密处理装置、加密处理方法和程序。更具体地,这涉及用于执行共享密钥加密的加密处理装置、加密处理方法和程序。
【背景技术】
[0002]随着信息社会继续发展,用于安全地保护所使用的信息的信息安全技术的必要性增加。信息安全技术的一种配置元素是加密技术,并且各种产品和系统当前在使用加密技术。
[0003]尽管存在各种类型的加密处理算法,但是基本技术之一称为共享密钥块加密。根据共享密钥块加密,用于加密的密钥和用于解密的密钥是共享项。在加密处理和解密处理中,根据这些共享密钥生成多个密钥,并且以具有特定块单位(诸如64位、128位、256位等)的块数据单位重复执行数据转换处理。
[0004]作为先前美国标准的DES (数据加密标准)和作为当前美国标准的AES (高级加密标准)已知为代表性的共享密钥块加密算法。继续提出其它各种共享密钥块加密,并且索尼公司在2007年提出的CLEFIA也是共享密钥块加密。
[0005]这些种类的共享密钥块加密算法主要配置有:加密处理部,包括用于重复地执行输入数据的转换的回合函数执行单元;以及密钥安排部,用于生成要在关于回合函数单元的各个回合处施加的回合密钥。密钥安排部首先基于作为秘密密钥的主密钥(master key)而生成位数增加的扩展密钥,并且基于所生成的扩展密钥而生成要在关于加密处理部的各个回合函数单元处施加的回合密钥(secondary key)。
[0006]用于重复地执行包括线性转换单元和非线性转换单元的回合函数的配置被认为是这些种类的算法的具体配置。代表性的结构包括例如Feistel结构和一般化Feistel结构。Feistel结构和一般化Feistel结构包括下述结构:其通过重复包括作为数据转换函数的F函数的简单回合函数而将明文转换成密文。由F函数执行线性转换处理和非线性转换处理。此外,NPLl和NPL2是公开了应用Feistel结构的加密处理的文献的示例。
[0007]相反,正涌现各种新的技术,诸如不法地执行加密算法的分析或密钥的分析以执行密码分析的技术。这种技术的一个示例是相关密钥攻击。尽管考虑了各种对策来处理这些种类的攻击,当前状态是这些对策是不够的。
[0008]引用列表
[0009]非专利文献
[0010]NPLl:K.Nybergj"Generalized Feistel Networks",ASIACRYPT96,SpringerVerlag,1996,pp.91-104.[0011]NPL2:Yuliang Zheng, Tsutomu Matsumotoj Hideki Ima1:0n the Constructionof Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses.CRYPT01989:461-480.[0012]NPL3:索尼公司,〃The 128-bit Blockcipher CLEFIA Algorithm Specification",Revisionl.0, 2007.[0013]NPL4:Aokij Ichikawa, Kandaj Matsuij Moriaij Nakajimaj Tokitaj "128-bit BlockEncryption Camellia Algorithm Specification^, Version2.0,2001.[0014]NPL5:GOST 28147-89:Encryption, Decryption, and Message AuthenticationCode (MAC) Algorithms,RFC5830.[0015]NPL6:3rd Generation Partnership Project,Technical SpecificationGroup Services and System Aspects,3G Security,Specification of the3GPP Confidentiality and Integrity Algorithms;Document2:KASUMISpecification, V9.0.0,2009.
【发明内容】

[0016]技术问题
[0017]本公开是考虑到例如先前描述的情形的结果,并且目的是提供具有高安全性水平的加密处理装置、加密处理方法和程序,其使得诸如相关密钥攻击的不法密码分析是困难的。
[0018]问题的解决方案
[0019]本公开的第一方面是一种加密处理装置,其包括:
[0020]加密处理部,被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及
[0021]密钥安排部,被配置成将回合密钥输出到加密处理部中的回合计算执行单元;
[0022]其中,密钥 安排部是替换型密钥安排部,该替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据;
[0023]并且其中,多个回合密钥或者根据回合密钥配置数据的组合生成的多个回合密钥被输出到在加密处理部中顺序地执行的回合计算执行单元,以使得不重复恒定的序列。
[0024]关于根据本公开的加密处理装置的实施例,密钥安排部以关于回合计算执行单元的多个回合为单位而改变与回合计算执行单元对应的多个回合密钥的输入序列。
[0025]关于根据本公开的加密处理装置的实施例,加密处理部包括:F函数执行单元,被配置成输入被划分成多行的数据并且包括非线性转换处理和线性转换处理;以及计算单元,被配置成执行对F函数执行单元的输出应用回合密钥的计算。
[0026]关于根据本公开的加密处理装置的实施例,密钥安排部将预先存储的秘密密钥划分成多个部分,并且生成位数与输入到回合计算执行单元的回合密钥相同的多个回合密钥。
[0027]关于根据本公开的加密处理装置的实施例,密钥安排部将预先存储的秘密密钥划分成多个部分并生成位数比输入到回合计算执行单元的回合密钥小的多个回合密钥,并且执行多个回合密钥配置数据的多个组合,并生成位数与输入到回合计算执行单元的回合密钥相同的回合密钥。
[0028]关于根据本公开的加密处理装置的实施例,密钥安排部关于在加密处理部中顺序地执行的回合计算执行单元,并列输出被并行地应用于回合计算执行单元的多个回合密钥。[0029]关于根据本公开的加密处理装置的实施例,密钥安排部包括至少一个选择器,该至少一个选择器被配置成执行与回合计算执行单元对应的密钥选择提供处理。
[0030]关于根据本公开的加密处理装置的实施例,密钥安排部通过对多个回合密钥或回合密钥配置数据进行分类来设置多个组,并且以所设置的组为单位来执行与回合计算执行单元对应的密钥提供序列的控制处理。
[0031]关于根据本公开的加密处理装置的实施例,密钥安排部包括以组为单位的选择器。
[0032]关于根据本公开的加密处理装置的实施例,加密处理部执行用于将作为输入数据的明文转换为密文的加密处理,或执行用于将作为输入数据的密文转换为明文的解密处理。
[0033]此外,本公开的第二方面是一种要在加密处理装置中执行的加密处理方法,该加密处理方法包括:
[0034]加密处理步骤,其中,加密处理部被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及
[0035]密钥安排步骤,其中,密钥安排部被配置成将回合密钥输出到加密处理部中的回合计算执行单元;
[0036]其中,密钥安排部是替换型密钥安排部,该替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据;
[0037]并且其中,多个回合密钥或者根据回合密钥配置数据的组合生成的多个回合密钥以使得不重复恒定的序列的设置被输出到在加密处理部中顺序地执行的回合计算执行单
J Li ο
[0038]此外,本公开的第三方面是用于在加密处理装置中执行加密处理的程序,该程序包括:
[0039]加密处理步骤,其中,加密处理部被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及
[0040]密钥安排步骤,其中,密钥安排部被配置成将回合密钥输出到加密处理部中的回合计算执行单元;
[0041]其中,密钥安排部是替换型密钥安排部,该替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据;
[0042]并且其中,多个回合密钥或者根据回合密钥配置数据的组合生成的多个回合密钥以使得不重复恒定的序列的设置被输出到在加密处理部中顺序地执行的回合计算执行单
J Li ο
[0043]此外,根据本公开的程序是例如通过例如记录介质而被提供到能够执行各种程序代码的信息处理装置或计算机系统的程序。通过利用信息处理装置或计算机系统中的程序执行单元执行这种程序而通过程序实现处理。
[0044]本公开的其它目的、特征和优点将通过基于稍后描述的本发明的实施例和附图的详细描述而变得清楚。此外,关于本说明书的系统是多个装置的逻辑组合配置,因此装置的各种配置不限于容纳在同一物理单元内。
[0045]本发明的有利效果
[0046]根据本公开的实施例,通过提供对回合密钥的控制来实现具有高安全性水平的加密处理装置。
[0047]具体地,包括:加密处理部,被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及密钥安排部,被配置成将回合密钥输出到加密处理部中的回合计算执行单元;其中,密钥安排部是替换型密钥安排部,该替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据;并且其中,多个回合密钥被输出到在加密处理部中顺序地执行的回合计算执行单元,以使得不重复恒定的序列。根据本配置,实现了对例如重复密钥攻击或其它攻击具有高抵抗水平的、具有高安全性水平的加密处理配置。
【专利附图】

【附图说明】
[0048]图1是描述与k位的密钥长度对应的η位共享密钥块加密算法的图。
[0049]图2是描述与图1所示的对应于k位的密钥长度的η位共享密钥块加密算法对应的解密算法的图。
[0050]图3是描述密钥安排部与数据加密部之间的关系的图。
[0051]图4是描述数据加密部的示例配置的图。
[0052]图5是描述SPN结构回合函数的示例的图。
[0053]图6是描述Feistel结构回合函数的示例的图。
[0054]图7是描述扩展Feistel结构的示例的图。
[0055]图8是描述扩展Feistel结构的示例的图。
[0056]图9是描述非线性转换单元的示例配置的图。
[0057]图10是描述线性转换处理单元的示例配置的图。
[0058]图11是描述密钥安排部(扩展密钥生成单元)的图。
[0059]图12是描述密钥安排部(扩展密钥生成单元)的图。
[0060]图13是描述块加密GOST的示例配置的图。
[0061]图14是描述作为GOST数据结构的Feistel结构的图。
[0062]图15是描述可以提供任意秘密密钥差别Λ的攻击的图。
[0063]图16是描述如下情况的图:其中,当存在替换型密钥安排部时,每个回合密钥差别Ai以每m位被划分成秘密密钥差别Λ。
[0064]图17是描述通过提供平均差别(d,d)而使得F函数的输入差别变为零的图。
[0065]图18是描述类型2 —般化Feistel结构的示例的图。
[0066]图19是描述F函数之后的XOR (异或)的示例配置的图。
[0067]图20是描述F函数之后的XOR的示例配置的图。
[0068]图21是描述如下示例配置的图:其中,当密钥是2n位时,秘密密钥K以每(n/2)位被划分成四个相等部分,并且在每四个回合进行更换(shuffle)的同时被提供。
[0069]图22是描述如下示例配置的图:其中,秘密密钥K以每(n/4)位被划分成八个相等部分,并且在每四个回合进行更换的同时提供两个(n/4)位的部分。
[0070]图23是描述如下示例配置的图:其中,当长度是4n位时,秘密密钥K以每(n/2)位被划分成八个相等部分,并且在每八个回合进行更换的同时被提供。
[0071]图24是描述如下示例配置的图:其中,当密钥是2n位时,秘密密钥K以每(n/4)位被划分成八个相等部分,并且在每四个回合进行更换的同时提供两个(n/4)位的部分。
[0072]图25是描述如下示例配置的图:其中,秘密密钥以每(n/4)位被划分成八个相等部分,其中,这八个相等部分中的四个在左侧F函数的回合密钥RKy中使用,并且剩余四个在右侧F函数的回合密钥RKu中使用。
[0073]图26是描述如下模型的图:其中,具有4个数据行的一般化Feistel结构中的循环移位被改变为回合置换(具有4个数据行的一般化Feistel结构+)。
[0074]图27是描述关于具有4个数据行的一般化Feistel结构,应用与图25类似的更换技术的示例的图。
[0075]图28是示出当秘密密钥是(5n/4)位并且一个回合所需的回合密钥是(n/2)位时,密钥安排部的配置方法的图。
[0076]图29是描述当简单按顺序输入回合密钥时的示例配置的图。
[0077]图30是描述当简单按顺序输入回合密钥时的示例配置的图。
[0078]图31是描述对于具有一般化Feistel结构的η位块加密,使用与一个回合对应的回合密钥的配置的图,其中该一般化Feistel结构具有划分数为d的d个数据行。
[0079]图32是描述如下示例配置的图:其中,秘密密钥是η位,通过将η位秘密密钥划分成四个相等部分而生成n/4位的回合密钥,并且这些回合密钥对于每个回合一次输入两个。
[0080]图33是描述如下示例配置的图:其中,秘密密钥是(5/4) η位,通过将η位的秘密密钥划分成五个相等部分而生成n/4位的回合密钥,并且这些回合密钥对于每个回合一次输入两个。
[0081]图34是描述如下示例配置的图:其中,秘密密钥是η位,通过将(5/4) η位的秘密密钥划分成五个相等部分而生成n/4位的回合密钥,并且这些回合密钥对于每个回合一次输入两个。
[0082]图35是描述如下示例配置的图:其中,以多个回合为单位改变密钥选择序列。
[0083]图36是描述被设置为使得以四个回合为单位执行的替换处理每次均不同的回合密钥提供的示例配置的图。
[0084]图37是描述如下示例配置的图:其中,以多个回合为单位改变密钥选择序列。
[0085]图38是描述如下示例配置的图:其中,每三个回合执行替换,并且在三个回合中使用六个密钥。
[0086]图39是描述如下示例配置的图:其中,以多个回合为单位改变密钥选择序列。
[0087]图40是描述作为选择器的回合密钥提供配置的图。
[0088]图41是描述作为选择器的回合密钥提供配置的图。
[0089]图42是描述作为选择器的回合密钥提供配置的图。
[0090]图43是示出作为加密处理装置的IC模块700的示例配置的图。【具体实施方式】
[0091]在下文中,将参照附图详细描述与本公开有关的加密处理装置、加密处理方法和程序。将根据以下项进行描述。
[0092]1.共享密钥块加密概况
[0093]2.密钥安排部的配置和处理概况
[0094]3.关于密钥安排部的攻击和对这些攻击的先前对策的示例
[0095]4.可以获得相对于相关密钥攻击的安全性的密钥安排部的替换类型
[0096]5.密钥安排部的密钥替换类型的各种配置示例(变型)
[0097]6.加密处理装置的配置示例
[0098]7.本公开的配置的结论
[0099][1.共享密钥块加密概况]
[0100]首先,将描述共享密钥块加密的概况。
[0101](1-1.共享密钥块加密)
[0102]以下定义规定哪些在此表示共享密钥块加密(下文中,块加密)。
[0103]块加密获得作为输入的明文P和密钥K,并且输出密文C。明文和密文的位长称为块大小,其被记作η。η是作为通常针对每种块加密算法预先确定的一个值的任意整数值。块长度是η的块加密的这种情况有时称为η位块加密。
[0104]密钥的位长被表示为k。密钥具有任意整数值。共享密钥块加密算法可以支持一个或多个密钥大小。例如,对于某种块加密算法A,块大小是n=128,因此支持密钥大小为k=128、k=192或k=256的配置是可能的。
[0105]明文P:n位
[0106]密文C:n位
[0107]密钥K:k位
[0108]图1示出了与k位的密钥长度对应的η位共享密钥块加密算法E的图。
[0109]与加密算法E对应的解密算法D可以被定义为加密算法E的逆函数Ε—1,其接收作为输入的密文C和密钥K并且输出明文P。图2示出了与图1所示的加密算法E对应的解密算法D的图。
[0110](1-2.内部配置)
[0111]考虑作为被划分成两个部分的块加密。一个是“密钥安排部”,密钥K被输入到该“密钥安排部”,并且该“密钥安排部”通过根据某些先前确定的步骤扩展位长而输出扩展密钥K’(位长k’),另一个是“数据加密部”,该“数据加密部”接收明文P和从密钥安排部扩展的密钥K’,执行数据转换,并且输出密文C。
[0112]在图3中示出了这两个部分之间的关系。
[0113](1-3.数据加密部)
[0114]在以下实施例中使用的数据加密部可以被划分成称为回合函数的处理单位。回合函数接收两个单位的数据作为输入,在内部进行处理,并且输出一个单位的数据。输入数据的一部分是当前被加密的η位数据,其导致来自对于某个回合的回合函数的输出被提供作为下一回合的输入的配置。输入数据的其它部分用作从密钥安排器输出的扩展密钥的一部分的数据,并且该密钥数据被称为回合密钥。另外,回合函数的总数被称为总回合数,并且是对于每种加密算法预先确定的值。这里,总回合数被表示为R。
[0115]当从数据加密部的输入侧来看时,其中,第一回合的输入数据被指定为X1,在第i回合的回合函数中输入的数据被指定为Xi,并且回合密钥被指定为RKi,数据加密部的概况如图4所示。
[0116](1-4.回合函数)
[0117]回合函数根据块加密算法而可以具有各种形式。回合函数可以通过由该加密算法(结构)采用的结构来分类。这里作为示例所使用的典型结构是SPN结构、Feistel结构和扩展Feistel结构。
[0118](A) SPN结构回合函数
[0119]该结构对回合密钥和所有η位输入数据应用线性转换处理、非线性转换和XOR计算。每个计算的顺序不是特别确定的。图5示出了 SPN结构回合函数的示例。
[0120](B) Feistel 结构
[0121]η位输入数据被划分成n/2位数据的两个单位。以该数据的一个部分和回合密钥作为输入来应用函数(F函数),并且对输出和数据的另一部分进行XOR计算。对该数据的两侧进行更换的结果变为输出数据。尽管存在F函数的各种类型的内部配置,但是这些基本上与具有与回合密钥数据的XOR计算、非线性计算和线性转换的组合的SPN结构类似地来实现。图6示出了 Feistel结构回合函数的示例。
[0122](C)扩展 Feistel 结构
[0123]关于Feistel结构的等于两个的数据划分数被扩展为具有扩展Feistel结构的三个或更多个划分的格式。如果划分数被表示为d,则可以根据d定义各种扩展Feistel结构。由于F函数输入和输出的大小相对较小,因此这适合于小实现。图7示出了 d=4并且在一个回合内并行应用两个F函数的扩展Feistel结构的示例。另外,图8示出了 d=8并且在一个回合内应用一个F函数的扩展Feistel结构的示例。
[0124](D)具有d个数据行的一般化Feistel结构
[0125]对于划分数d是偶数的扩展Feistel结构,在一个回合内并行应用d/2个F函数。
[0126]另外,循环移位用作回合之间的替换。
[0127]注意,图7、18和20示出了具有4个数据行的一般化Feistel结构。
[0128](1-5.非线性转换处理单元)
[0129]对于非线性转换处理单元,实现成本趋向于随着输入数据的大小增加而增加。为了避开这一点,使用了多种配置:其中,相应数据被划分成多个单位,并且对该数据进行非线性转换。例如,当输入大小被指定为ms位时,这些配置以每s位划分m个数据单位,并且对输入和输出是s位的该数据执行非线性转换。这些s位的单位中的非线性转换称为S盒。图9示出了示例。
[0130](1-6.线性转换处理单元)
[0131]线性转换处理单元可以被定义为考虑其性质的矩阵。矩阵的元素一般可以以各种方式(诸如GF(28)的体元素和GF(2)的元素)来表示。图10示出了由mXm矩阵定义的线性转换处理单元的示例,其将ms位的输入和输出定义为GF (2s)。
[0132][2.密钥安排部的配置和处理概况]
[0133]在描述本公开的加密处理之前,将描述作为初步配置的密钥安排部的配置和处理概况。
[0134]密钥安排部是如图11所示的函数,其(扩展密钥生成单元)输入k位的秘密密钥K并且通过某种确定的转换生成k’位扩展密钥(回合密钥)K’。
[0135]一般地,k〈k’,并且当数据加密部重复执行称为回合函数的非线性计算时,提供到每个回合函数的回合密钥被指定为m位,并且回合函数重复次数被指定为R,k’ =mXR。该设置如图12所示。
[0136]例如,关于共享密钥块加密AES,
[0137]当k=128 时,
[0138]m=128 并且 R=ll,
[0139]因此k’ =1408。
[0140]当k=192 时,
[0141]m=128 并且 R=13,
[0142]因此k’ =1664。
[0143]期望以下特性(特性I至3)来保证密钥安排部中的安全性。
[0144](特性I)不存在等同密钥
[0145]此外,关于秘密密钥KO是输入时的扩展密钥K0’和当秘密密钥Kl (古K0)是输入时的扩展密钥κgamma,当κο’ =Kr时,Ko和κι被称为等同密钥。
[0146](特性2)具有对相关密钥攻击(relatedkey attack)的充分抵抗性
[0147]—般攻击使用明文与由某种固定秘密密钥得到的密文之间的数据偏差(差别、线性度等),然而相关密钥攻击使用明文与由多个秘密密钥得到的密文之间的数据偏差。
[0148]例如,这些攻击是假设两个秘密密钥的值是未知的但是秘密密钥之间的差别是已知的而执行的。
[0149]还存在假设攻击者自由选择秘密密钥之间的差别的强烈攻击。期望甚至在该假设下也实现安全性水平。
[0150]在正常差别攻击(没有考虑相关密钥的差别攻击)的情况下,攻击者例如仅使用多个明文P和由未知的秘密密钥K加密的密文C (=E(K, P))的组合,并且推出该未知的秘密密钥K。
[0151]然而,在相关密钥差别攻击的情况下,除了多个明文P和由未知秘密密钥K加密的密文C (=E (K, P))的组合之外,关于未知秘密密钥K,攻击者还使用多个明文P’和由攻击者添加了任意指定的秘密密钥差别ΛΚ的Κ(+) Λ K加密的密文C’ (Ε(Κ(+) Λ K,P’)的组合,来推出未知秘密密钥K。
[0152]注意,(+ )表示XOR算子。
[0153]因此,对于相关密钥差别攻击,攻击者可以使用的信息较大,因此攻击者的强度比正常差别攻击的强度大。
[0154](特性3)具有对滑动攻击(slideattack)的充分抵抗性
[0155]例如,当滑动值被取作与当来自秘密密钥KO的输入的回合密钥被指定为RK1, RK2,..., RKe并且来自秘密密钥Kl的输入的回合密钥被指定为RK2, RK3,RKE+1时一样时,存在丢失安全性水平的可能。
[0156]关于实现问题, 在密钥安排部中还期望以下特性(4至9)。[0157](特性4)实现是简单的
[0158](特性5)用于根据秘密密钥生成扩展密钥的设置时间短
[0159](特性6)可以在进行中(onthe fly)生成扩展密钥
[0160](特性7)尽可能地共享加密密钥安排部和解密密钥安排部
[0161](特性8)尽可能地共享数据加密部和数据解密部
[0162](特性9)容易支持秘密密钥长度的改变
[0163]从安全性和实现的角度来看,安排单元优选地以良好平衡的方式满足这些特性。
[0164][3.关于密钥安排部的攻击和对这些攻击的先前对策的示例]
[0165]接下来,将描述关于密钥安排部的攻击和对这些攻击的先前对策的示例。
[0166]对于每种类型的共享密钥块加密,存在密钥安排部的各种设计。
[0167]数据加密部与密钥安排部的安全性水平和实现性能存在很深的关系,但是一般认为与数据加密部类似,在安全性水平与实现性能之间存在折中关系。
[0168]复杂非线性函数被引入到密钥安排部中的加密示例包括CLEFIA (NPL3:索尼公司,"The 128-bit Blockcipher CLEFIA Algorithm Specification",第 1.0 版,2007)和 Camellia (NPL4:Aoki, Ichikawa, Kanda, Matsui, Moriai, Nakajima, Tokita, 〃128-bitBlock Encryption Camellia Algorithm Specification",第 2.0 版,2001)等。这些具有对攻击方法(诸如在密钥 安排部中发生的相关密钥攻击)的高安全性水平,但是实现成本比较高,并且存在当特别是以硬件实现时电路规模变得非常大的问题。另外,AES是具有密钥安排部的加密的示例,其中,已引入了比较简单的非线性函数以提高实现性能,但是已知AES对相关密钥攻击(对于192位和256位密钥的情况)是脆弱的。
[0169]此外,作为用于进一步提高实现性能的技术示例的技术涉及仅具有线性函数的配置而不使用非线性函数。在这些技术内,将秘密密钥数据划分成多个部分并且仅对其进行替换的密钥安排部不需要特别地以硬件实现的多个电路,因此具有高水平的实现性能。这种密钥安排部被称为替换型密钥安排部。
[0170]尽管替换型密钥安排部具有高水平的实现性能,但是存在具有关于其安全性水平的问题的许多方法。
[0171]例如,如图13 所示,关于块加密 G0ST(NPL5:G0ST28147-89:Encryption, Decryption, and Message Authentication Code (MAC) Algorithms, RFC5830)的密钥安排部具有下述结构:其将4n位的秘密密钥K以每(n/2)位划分成八个相等部分并且按顺序将这些部分指定为回合密钥。
[0172]由于密钥安排部可以仅被配置为对于每个回合的选择器而没有相对于秘密密钥K的任何计算,因此这具有需要以硬件实现的电路数量非常小的特征。
[0173]然而,如图14所示,GOST数据结构采用Feistel结构并且在回合密钥的每个F函数之前执行X0R,因此已知这对于相关密钥攻击是脆弱的,并且还已知攻击将成功的实际概率为I。
[0174](成功概率为I的对GOST的相关密钥攻击)
[0175]根据秘密密钥KO获得的回合密钥被指定为RKO1, RKO2,...,和RK0K,并且根据秘密密钥Kl获得的回合密钥被指定为RKl1, RKl2,RK1K。此时,秘密密钥KO与秘密密钥Kl之间的差别被指定为秘密密钥差别△,并且每个回合密钥之间的差别被指定为回合密钥差别 A1, Λ2,...,和 Λκ。
[0176]这里,如图15所示,假设攻击者可以提供任意秘密密钥差别Λ。此时,关于将复杂非线性函数引入到密钥安排部中的CLEFIA、Camellia等,每个回合密钥差别Λ i不是唯一预定的,因此关于数据加密部的攻击是困难的。
[0177]然而,如图16所示,根据具有替换型密钥安排部的情况,每个回合密钥差别八1是以每m位来划分秘密密钥差别Δ。关于例如GOST,当Δ= (d, d, d, d, d, d,d,d) ( Λ是4η位,并且d是(n/2)位,因此当在GOST的情况下n=64时,其分别变为256位和32位)时,所有回合密钥差别\等于(1。
[0178]此时,当采用Feistel结构并且在每个回合(Rl,R2, R3,…)中提供给每个F函数的回合密钥之前执行XOR时,通过如图17所示提供(d,d)作为明文差别而使得到F函数的输入差别为零。当到F函数的输入差别为零时,输出差别总是零,因此到下一回合函数的输入差别是(d, d)。
[0179]差别(d,d)对于所有回合函数类似地传播,因此密文差别总是(d,d)。
[0180]为此,当根据到GOST的明文P和秘密密钥K的输入获得的密文被指定为C时,
[0181]秘密密钥K ( + ) (d, d, d, d, d, d, d, d),
[0182]明文P ( + ) (d, d),
[0183]被输入以获得密文C’,其以概率I得到C’ =C ( + ) (d,d)。
[0184]获得这种等同性的概率被称为使用相关密钥攻击的识别攻击的成功概率。需要说明,该概率关于抵抗相关密钥攻击强的块加密实际上是充分小的。
[0185]另外,例如,关于如图1`8所示的称为类型2—般化Feistel结构的结构类型,当在使用替换型密钥安排部的F函数之前对回合密钥执行XOR时,这类似地导致以概率I转变的相关密钥攻击的配置。
[0186]KASUMI (NPL6: 3rd Generation Partnership Project, TechnicalSpecification Group Services and System Aspects, 3G Security, Specificationof the 3GPP Confidentiality and Integrity Algorithms;Document2:KASUMISpecification, V9.0.0,2009)是具有其它种类的替换型密钥安排部的加密的示例。
[0187]然而,尽管KASUMI中的密钥安排部具有高水平的实现性能,但是还已知其对相关密钥攻击是脆弱的。
[0188][4.可以获得对相关密钥攻击的安全性的密钥安排部的替换类型]
[0189]考虑到前述问题,在下文中,将描述可以获得对相关密钥攻击的安全性水平而没有高实现成本的替换型密钥安排部的配置方法。
[0190]本方法首先将秘密密钥K划分成多个相等部分,并且根据以下技术将其提供到数据加密部:
[0191](技术I)回合密钥插入位置的改变:取代如现有技术中一样在F函数之前(例如,如图14和图18所示的位置)对回合密钥执行X0R,在F函数之后(例如,图19和图20所示的位置)进行X0R。
[0192](技术2)回合密钥生成替换的改变:根据数据加密部的结构,使用对相关密钥攻击安全的替换方法生成回合密钥。
[0193]通过以此方式配置密钥安排部可以获得以下优点。[0194](优点I)高实现性能
[0195]与通过使用替换型密钥安排部的现有技术类似,可以预期高水平的实现性能。存在以下特别进步:当以硬件实现时,可以减小所需电路的数量。
[0196](优点2)通过改变回合密钥的插入位置而增加安全性水平
[0197]对于图19和图20所示的配置,通过在F函数之后而不是在F函数之前对回合密钥执行X0R,即使使用替换型密钥安排部,也可以防止如现有技术GOST —样相关密钥攻击以概率I成功。
[0198]另外,这些实现技术的使用还导致数据加密部的实现性能提高。
[0199](优点3)通过改变回合密钥的替换方法而提高安全性水平
[0200]与根据现有技术的方法不同,取代按顺序来提供所划分的秘密密钥,以更换后的序列来适当地提供这些秘密密钥,以便具有对相关密钥攻击的抵抗性。
[0201]该序列与秘密密钥K的位长和划分数以及数据加密部的结构关联,因此需要针对每个数据加密部结构来设计密钥安排部。
[0202]关于如图19所示的每个回合执行一个F函数的Feistel结构,一个回合密钥的长度是(n/2)位,并且当密钥是2n位时,秘密密钥K被划分成(n/2)位的4个相等部分,并且这些部分以每四个回合更换地提供。
[0203]图21不出了该设置。
[0204]将描述如图21所示的回合密钥的提供处理。
[0205]秘密密钥K是2n位的密钥数据。
[0206]该2n位的秘密密钥K被划分成四个相等部分,并且生成四个回合密钥Kl、K2、K3和K4。
[0207]四个回合密钥K1、K2、K3和Κ4是(n/2)位的密钥数据。
[0208]这四个回合密钥K1、K2、K3和K4在每个单位以不同的序列来使用,其中,一个单位是四个回合。
[0209]图21示出了前四个回合:关于Rl至R4,按以下序列输入和应用回合密钥Kl至Κ4。
[0210]回合Rl:回合密钥Kl
[0211]回合R2:回合密钥Κ2
[0212]回合R3:回合密钥Κ3
[0213]回合R4:回合密钥Κ4
[0214]接下来的四个回合:关于R5至R8,按以下序列输入和应用回合密钥Kl至Κ4。
[0215]回合R5:回合密钥Κ3
[0216]回合R6:回合密钥Kl
[0217]回合R7:回合密钥Κ4
[0218]回合R8:回合密钥Κ2
[0219]接下来的四个回合:关于R9至R12,按以下序列输入和应用回合密钥Kl至Κ4。
[0220]回合R9:回合密钥Κ4
[0221]回合R10:回合密钥Κ3
[0222]回合Rll:回合密钥Κ2
[0223]回合R12:回合密钥Kl[0224]以此方式,以四个回合为单位,应用对于每个单位不同的回合密钥输入序列。
[0225]另外,可以以小于回合密钥长度的单位来进行划分,因此还可以将2η位的秘密密钥K以每(n/4)位划分成八个相等部分,并且在以每四个回合进行更换的同时提供这些(n/4)位的数据单位中的两个。
[0226]这样的示例是图22所示的配置。
[0227]将描述图22所示的回合密钥的提供处理。
[0228]秘密密钥K是2n位的密钥数据。
[0229]该2n位的秘密密钥K被划分成八个相等部分,并且生成八个密钥Kl、K2、K3、K4、K5、K6、K7 和 Κ8。
[0230]八个密钥Kl至Κ8是(n/4)位的密钥数据。
[0231]由选自这八个密钥Kl至K8的两个密钥的组合数据构成的(n/2)位的回合密钥:KxKy以在每个单位不同的序列来使用,其中,一个单位是四个回合。
[0232]前四个回合如图22所示:关于Rl至R4,按以下序列输入和应用作为密钥数据Kl至K8的组合的回合密钥KxKy。
[0233]回合Rl:回合密钥K1K2
[0234]回合R2:回合密钥K3K4
[0235]回合R3:回合密钥K5K6
[0236]回合R4:回合密钥K7K8
[0237]接下来的四个回合:关于R5至R8,按以下序列输入和应用作为密钥数据Kl至K8的组合的回合密钥KxKy。
[0238]回合R5:回合密钥K3K4
[0239]回合R6:回合密钥K2K7
[0240]回合R7:回合密钥K1K6
[0241]回合R8:回合密钥K5K8
[0242]接下来的四个回合:关于R9至R12,按以下序列输入和应用作为密钥数据Kl至K8的组合的回合密钥KxKy。
[0243]回合R9:回合密钥K2K7
[0244]回合R10:回合密钥K4K5
[0245]回合Rll:回合密钥K3K6
[0246]回合R12:回合密钥K1K8
[0247]以此方式,以四个回合为单位,应用对每个单位不同的回合密钥输入序列。
[0248]另外,当长度是4n位时,将秘密密钥K以每(n/2)位划分成八个相等部分,并且在以每八个回合进行更换的同时提供这些部分。
[0249]这样的示例是图23所示的配置。
[0250]将描述如图23所示的回合密钥的提供处理。
[0251]秘密密钥K是4n位的密钥数据。
[0252]该4n位的秘密密钥K被划分成八个相等部分,并且生成八个回合密钥K1、K2、K3、Κ4、Κ5、Κ6、Κ7 和 Κ8。
[0253]八个回合密钥Kl至Κ8是(n/2)位的密钥数据。[0254]以对于每个单位不同的序列来使用这八个回合密钥Kl至K8,其中,一个单位是八个回合。
[0255]前八个回合如图23所示:关于Rl至R8,按以下序列输入和应用回合密钥。
[0256]回合Rl:回合密钥Kl
[0257]回合R2:回合密钥Κ2
[0258]回合R3:回合密钥Κ3
[0259]回合R4:回合密钥Κ4
[0260]回合R5:回合密钥Κ5
[0261]回合R6:回合密钥Κ6
[0262]回合R7:回合密钥Κ7
[0263]回合R8:回合密钥Κ8
[0264]接下来的八个回合:关于R9至R16,按以下序列输入和应用回合密钥。
[0265]回合R9:回合密钥Κ2
[0266]回合RlO:回合密钥Κ5
[0267]回合Rll:回合密钥Kl
[0268]回合Rl2:回合密钥Κ4
[0269]回合Rl3:回合密钥Κ8
[0270]回合R14:回合密钥Κ6
[0271]回合R15:回合密钥Κ3
[0272]回合R16:回合密钥Κ7
[0273]以此方式,以八个回合为单位,应用对每个单位不同的回合密钥输入序列。
[0274]另外,如图20所示,关于在一个回合中同时执行两个F函数的、具有4个数据行的一般化Feistel结构,回合密钥是(n/4)位的两个单位。当秘密密钥K是2n位时,其以每(n/4)位被划分成八个相等部分,并且在每四个回合进行更换的同时提供(n/4)位的两个单位。
[0275]图24中示出了该配置的示例。
[0276]将描述如图24所示的回合密钥的提供处理。
[0277]秘密密钥K是2n位的密钥数据。
[0278]该2n位的秘密密钥K被划分成八个相等部分,并且生成八个回合密钥K1、K2、K3、Κ4、Κ5、Κ6、Κ7 和 Κ8。
[0279]八个回合密钥Kl至Κ8是(n/4)位的密钥数据。
[0280]以对每个单位不同的序列使用选自这八个回合密钥Kl至K8的两个回合密钥,其中,一个单位是四个回合。
[0281]前四个回合如图24所示:关于Rl至R4,按以下序列输入和应用两个回合密钥。
[0282]回合Rl:回合密钥Kl和回合密钥K2
[0283]回合R2:回合密钥K3和回合密钥K4
[0284]回合R3:回合密钥K5和回合密钥K6
[0285]回合R4:回合密钥K7和回合密钥K8
[0286]接下来的四个回合:关于R5至R8,按以下序列输入和应用两个回合密钥:[0287]回合R5:回合密钥K5和回合密钥Kl
[0288]回合R6:回合密钥K2和回合密钥K6
[0289]回合R7:回合密钥K7和回合密钥K3
[0290]回合R8:回合密钥K4和回合密钥K8
[0291]接下来的四个回合:关于R9至R12,按以下序列输入和应用两个回合密钥。
[0292]回合R9:回合密钥K7和回合密钥K5
[0293]回合RlO:回合密钥Kl和回合密钥K3
[0294]回合Rll:回合密钥K4和回合密钥K2
[0295]回合Rl2:回合密钥K6和回合密钥K8
[0296]以此方式,以四个回合为单位,应用对每个单位不同的回合密钥输入序列。
[0297]另外,作为用于进一步提高实现效率的技术,在关于左侧F函数的回合密钥RKr,。中使用来自以每(n/4)位被划分成八个部分单位中的四个单位,并且在关于右侧F函数的回合密钥RKu中使用剩余四个单位。
[0298]图25中示出了该配置的示例。
[0299]将描述如图25所示的回合密钥的提供处理。
[0300]秘密密钥K是2n位的密钥数据。
[0301]该2n位的秘密密钥K被划分成八个相等部分,并且生成八个回合密钥K1、K2、K3、Κ4、Κ5、Κ6、Κ7 和 Κ8。
[0302]八个回合密钥Kl至Κ8是(n/4)位的密钥数据。
[0303]以对于每个单位不同的序列使用选自这八个回合密钥Kl至K8的两个回合密钥,其中,一个单位是四个回合。
[0304]根据该示例,关于具有4个数据行的Feistel结构,在每个回合中对左侧F函数应用回合密钥Kl至K4,并且关于具有4个数据行的Feistel结构,对于每个回合对右侧F函数应用回合密钥K5至K8。
[0305]前四个回合如图25所示:关于Rl至R4,按以下序列输入和应用两个回合密钥。
[0306]回合Rl:回合密钥Kl和回合密钥K5
[0307]回合R2:回合密钥K2和回合密钥K6
[0308]回合R3:回合密钥K3和回合密钥K7
[0309]回合R4:回合密钥K7和回合密钥K8
[0310]接下来的四个回合:关于R5至R8,按以下序列输入和应用两个回合密钥:
[0311]回合R5:回合密钥K2和回合密钥K5
[0312]回合R6:回合密钥K4和回合密钥K8
[0313]回合R7:回合密钥Kl和回合密钥K6
[0314]回合R8:回合密钥K3和回合密钥K7
[0315]接下来的四个回合:关于R9至R12,按以下序列输入和应用两个回合密钥。
[0316]回合R9:回合密钥K4和回合密钥K5
[0317]回合RlO:回合密钥K3和回合密钥K7
[0318]回合Rll:回合密钥K2和回合密钥K8
[0319]回合R12:回合密钥Kl和回合密钥K6[0320]以此方式,以四个回合为单位,应用对每个单位不同的回合密钥输入序列。
[0321]根据图25所示的配置,取代以每四个回合为单位对所有八个回合密钥Kl至K8的输入顺序进行更换,以这些当中的四个,也就是说,
[0322]回合密钥:K1至K4
[0323]回合密钥:K5至Κ8
[0324]以四个回合密钥为单位来执行这些回合密钥的输入顺序的更换。
[0325]根据该配置,可以进一步降低替换型密钥安排部中所需的选择器的成本。
[0326]另外,关于如图26所示的具有4个数据行的一般化Feistel结构,例如,对于循环移位被修改为回合置换的模型(具有4个数据行的一般化Feistel+),关于本方法的密钥安排部也是有效的。
[0327]将描述如图26所示的、关于具有4个数据行的一般化Feistel结构循环移位被修改为回合置换的模型(具有4个数据行的一般化Feistel+)。
[0328]图26所示的配置的基本配置是如下配置:关于d行的一般化Feistel结构,η位的输入数据以每n/d位被划分成d个单位,其中,作为基本配置,对这些单位执行F函数处理和XOR处理,并且对F函数的输出执行利用回合密钥的计算的配置。
[0329]此时,
[0330]输入到F函数的数据序列被指定为F函数输入侧数据序列,
[0331]并且在XOR中使用的数据序列被指定为XOR数据序列。
[0332]在每个序列(每行)中传递的n/d位的数据再次进一步被划分成d/2个单位(在该情况下,划分不需要为等分)。
[0333]根据以下规则来分配对于每个序列(每行)再次被划分成d/2个单位的数据。
[0334](I)F函数输入数据序列总是被分配给对于下一回合函数的XOR数据序列
[0335](2) XOR数据序列总是被分配给对于下一回合函数的F函数输入数据序列
[0336](3)被划分成d/2个单位的数据序列被分配给对于d/2位置的下一回合函数的数据序列,而在它们之间没有任何重叠。
[0337]在这样的分配之后,被划分成d/2个单位的数据被组合为一个数据单位。
[0338]这被重复所需要的次数。
[0339]关于该循环移位已被修改为回合置换的模型(具有4个数据行的一般化Feistel+),根据本方法的密钥安排部也是有效的。
[0340]具体地,作为与图25类似的更换技术的图27所示的配置是适当示例。
[0341]也就是说,在关于左侧F函数的回合密钥RKy中使用来自以每(n/4)位被划分成八个相等部分的秘密密钥K的四个单位,并且在关于右侧F函数的回合密钥RKy中使用剩余四个单位。
[0342]将描述如图27所示的回合密钥的提供处理。
[0343]秘密密钥K是2n位的密钥数据。
[0344]该2n位的秘密密钥K被划分成八个相等部分,并且生成八个回合密钥K1、K2、K3、Κ4、Κ5、Κ6、Κ7 和 Κ8。
[0345]八个回合密钥Kl至Κ8是(n/4)位的密钥数据。
[0346]以对每个单位不同的序列使用选自这八个回合密钥Kl至K8的两个回合密钥,其中,一个单位是四个回合。
[0347]根据本示例,关于循环移位已被修改为回合置换的具有4个数据行的一般化Feistel+结构,在每个回合中对两个F函数应用选自回合密钥Kl至K8的回合密钥中的两个。
[0348]前四个回合如图27所示:关于Rl至R4,按以下序列输入和应用两个回合密钥。
[0349]回合Rl:回合密钥Kl和回合密钥K5
[0350]回合R2:回合密钥K2和回合密钥K6
[0351]回合R3:回合密钥K3和回合密钥K7
[0352]回合R4:回合密钥K7和回合密钥K8
[0353]接下来的四个回合:关于R5至R8,按以下序列输入和应用两个回合密钥。
[0354]回合R5:回合密钥K2和回合密钥K5
[0355]回合R6:回合密钥K4和回合密钥K8
[0356]回合R7:回合密钥Kl和回合密钥K6
[0357]回合R8:回合密钥K3和回合密钥K7
[0358]接下来的四个回合:关于R9至R12,按以下序列输入和应用两个回合密钥。
[0359]回合R9:回合密钥K4和回合密钥K5
[0360]回合RlO:回合密钥K3和回合密钥K7
[0361]回合Rll:回合密钥K2和回合密钥K8
[0362]回合R12:回合密钥Kl和回合密钥K6
[0363]以此方式,以四个回合为单位,应用对每个单位不同的回合密钥输入序列。
[0364]接下来,示出了在当秘密密钥的位长不是一个回合所需的回合密钥的位长的整数倍的情况下,对于替换型密钥安排部的示例配置。
[0365]例如,图28示出了当秘密密钥是(5n/4)位并且一个回合所需的回合密钥是(n/2)位时密钥安排部的配置方法。
[0366]根据该配置,首先,执行该配置的替换和扩展以使得其变为一个回合所需的回合密钥的位长的整数倍。此后,采用按顺序进行提供的配置。
[0367]将描述如图28所示的回合密钥的提供处理。
[0368]秘密密钥K是(5/4) η位的密钥数据。
[0369]首先,替换型密钥安排部基于该(5/4) η位的密钥数据生成与回合密钥的位长相等的五个回合密钥Κ1、Κ2、Κ3、Κ4和Κ5,
[0370]作为应用于每个回合的回合密钥而输入的、选自这些回合密钥Kl至Κ5的两个回合密钥被应用于两个F函数。
[0371]前五个回合如图28所示:关于Rl至R5,按以下序列输入和应用两个回合密钥。
[0372]回合Rl:回合密钥Κ3和回合密钥Κ4
[0373]回合R2:回合密钥Kl和回合密钥Κ2
[0374]回合R3:回合密钥Κ3和回合密钥Κ4
[0375]回合R4:回合密钥Κ5和回合密钥Κ5
[0376]回合R5:回合密钥Kl和回合密钥Κ2
[0377]关于接下来的五个回合R6至RlO以及后续的五个回合Rll至R15,按类似序列输入和应用两个回合密钥。
[0378]将进行先前描述的优点“(优点3)通过改变回合密钥的替换方法来提高安全性水平”的详细描述。
[0379]首先,将进行差别概率、有效F函数和最小有效F函数数量的定义。
[0380]差别攻击是使用以高概率从某种输入差别传播到某种输出差别的攻击。也就是说,当考虑安全性时,需要指示不包含以高概率传播的输入差别和输出差别的、输入差别和输出差别的组合。
[0381]相关密钥差别攻击是使用以高概率从某种输入差别和某种秘密密钥差别传播到某种输出差别的类似攻击。也就是说,当考虑安全性时,需要指示不包含以高概率传播的输入差别、秘密密钥差别和输出差别的,输入差别、秘密密钥差别和输出差别的组合。某种输入差别传播到某种输出差别的这种概率以及某种输入差别和某种秘密密钥差别传播到某种输出差别的概率是差别概率的定义。如之前所述,存在关于GOST的该差别概率为I的情况。
[0382]已知这样的差别概率仅根据为其提供非零输入差别的非线性函数(F函数)而减小。为其提供该非零输入差别的非线性函数(F函数)是有效F函数的定义。有效F函数的数量与相对于差别攻击的安全性水平密切相关,因此可以认为如果存在关于某种输入差别的多个有效F函数,则这样是充分安全的。
[0383]如果确定了一个输入差别,则可以确定有效F函数的数量。根据刚才所述的,应理解,需要根据当考虑相对于差别攻击的安全性时所提供的输入差别的种类而确定应该指示多少有效F函数。关于每种这样的输入差别的有效F函数的数量的最小值是最小有效F函数数量的定义。
[0384]例如,关于如图20所示的在XOR中使用关于回合密钥的F函数的输出的、具有4个数据行的一般化Feistel结构,以下(表I)示出了当采用根据现有技术的方法以使得回合密钥如图29所示按顺序简单输入时,与考虑了相关密钥差别之后的回合数对应的最小有效F函数数量。
[0385][表 I]
[0386]^^ι 回合数 w^Fwmmm
__^PvjL___Jt_
Iδ?4
5OI 174
3OI Il4 5OI?5 6— I215...................................................................................................................0J...................................................................................................................1..............................................................1..............................................................................................................................................£...............................................................1JLIJmm....................................................ο...............................................................................................................................................................................1.......................................?........................................................................................................c...............................................................1IIJ 135
9— 2246...............................................................P2I256
11— 2I— 26— 6
_jI27I
_ιI287..................................................14.............................................................................................................3.............................................................1..................................29.........................................................................................7...............................................................153I307
[0387]在该方法的情况下,应理解,例如,对于保证相对于相关密钥差别攻击的安全性所需的有效F函数的数量是七的加密,需要至少28回合。
[0388]例如在诸如图20所示的具有4个数据行的一般化Feistel结构中的、如图24所示的根据本公开的处理,也就是说,关于替换型密钥安排部,(表2)示出了关于以预定回合单位执行改变输入密钥序列的处理的配置,考虑到相关密钥差别时相应的最小有效F函数数量和回合数。
[0389][表2]
[0390]....................................................................^ m..................ι..................................................................................................M
iOI U7
-1πS
5I188.........................................................................................................4...................................................................................................................................................................................................................................1..........................................................................................................................1...........................................................................19...............................................................................................................................................................................................9.......................................................................................................................................................................................................................................1..........................................................................................................^...............................................................g....................................................................................................................................................................................................20...............................................................................................................................................................................................9..............................................................................................................................8II 2311
^^I2412
10~~25
114I2612
1242713
135I2814
PII2915
157I3016
[0391]根据先前描述的表2,应理解,对于保证相对于相关密钥差别攻击的安全性所需的有效F函数的数量是例如七的加密,需要至少15回合。
[0392]根据先前的表1,对于保证相对于相关密钥差别攻击的安全性所需的有效F函数的数量是七的加密,需要至少28回合。
[0393]根据本公开的处理,也就是说,关于替换型密钥安排部,应理解,与通过实现以预定回合单位执行改变输入密钥序列的处理的配置的现有技术方法相比,回合数减少了 13。
[0394]以此方式,根据本公开的处理,也就是说,关于替换型密钥安排部,应理解,与通过实现以预定回合单位执行用于改变输入密钥序列的处理的配置、不执行这种密钥更换的现有技术方法相比,可以保证较大数量的有效F函数。
[0395]类似地,考虑如图26所示的具有4个数据行的一般化Feistel+结构的模型,其中,具有4个数据行的一般化Feistel结构中的循环移位被修改为回合置换。
[0396]当关于该配置采用简单按顺序(图30)输入回合密钥的现有技术方法时,考虑到相关密钥差别的情况下的相应最小有效F函数数量和回合数与先前描述的(表1)中的值相同。
[0397]在该方法的情况下,应理解,对于保证相对于相关密钥差别攻击的安全性所需的有效F函数的数量是例如七的加密,需要至少28回合。
[0398]另外,关于在诸如图26所示的具有4个数据行的一般化Feistel+结构中的、如图24所示的根据本发明实现密钥安排部的配置的情况,以下(表3)示出了考虑到相关密钥差另IJ的情况下的相应最小有效F函数数量和回合数。
[0399][表3]
[0400]
【权利要求】
1.一种加密处理装置,包括: 加密处理部,被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及 密钥安排部,被配置成将回合密钥输出到所述加密处理部中的回合计算执行单元; 其中,所述密钥安排部是替换型密钥安排部,所述替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据; 并且其中,所述多个回合密钥或根据所述回合密钥配置数据的组合生成的多个回合密钥被输出到在所述加密处理部中顺序执行的回合计算执行单元,以使得不重复恒定序列。
2.根据权利要求1所述的加密处理装置,其中,所述密钥安排部以关于所述回合计算执行单元的多个回合为单位而改变与所述回合计算执行单元对应的所述多个回合密钥的输入序列。
3.根据权利要求1所述的加密处理装置,其中,所述加密处理部包括:F函数执行单元,被配置成输 入被划分成多行的数据并且包括非线性转换处理和线性转换处理;以及计算单元,被配置成执行对所述F函数执行单元的输出应用回合密钥的计算。
4.根据权利要求1所述的加密处理装置,其中,所述密钥安排部将预先存储的秘密密钥划分成多个部分,并且生成位数与输入到所述回合计算执行单元的回合密钥相同的多个回合密钥。
5.根据权利要求1所述的加密处理装置,其中,所述密钥安排部将预先存储的秘密密钥划分成多个部分并生成位数小于输入到所述回合计算执行单元的回合密钥的多个回合密钥,并且执行所述多个回合密钥配置数据的多个组合,并生成位数与输入到所述回合计算执行单元的回合密钥相同的回合密钥。
6.根据权利要求1所述的加密处理装置,其中,所述密钥安排部关于在所述加密处理部中顺序地执行的回合计算执行单元,并列输出被并行地应用于所述回合计算执行单元的多个回合密钥。
7.根据权利要求1所述的加密处理装置,其中,所述密钥安排部包括至少一个选择器,所述至少一个选择器被配置成执行与所述回合计算执行单元对应的密钥选择提供处理。
8.根据权利要求1所述的加密处理装置,其中,所述密钥安排部通过对所述多个回合密钥或所述回合密钥配置数据进行分类来设置多个组,并且以所设置的组为单位来执行与所述回合计算执行单元对应的密钥提供序列的控制处理。
9.根据权利要求8所述的加密处理装置,其中,所述密钥安排部包括以所述组为单位的选择器。
10.根据权利要求1所述的加密处理装置,其中,所述加密处理部执行用于将作为输入数据的明文转换为密文的加密处理,或执行用于将作为所述输入数据的密文转换为明文的解密处理。
11.一种要在加密处理装置中执行的加密处理方法,所述加密处理方法包括: 加密处理步骤,其中,加密处理部被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及 密钥安排步骤,其中,密钥安排部被配置成将回合密钥输出到所述加密处理部中的回合计算执行单元;其中,所述密钥安排部是替换型密钥安排部,所述替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据; 并且其中,所述多个回合密钥或根据所述回合密钥配置数据的组合生成的多个回合密钥以使得不重复恒定序列的设置被输出到在所述加密处理部中顺序执行的回合计算执行单元。
12.一种在加密处理装置中执行加密处理的程序,所述程序包括: 加密处理步骤,其中,加密处理部被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及密钥安排步骤,其中,密钥安排部被配置成将回合密钥输出到所述加密处理部中的回合计算执行单元; 其中,所述密钥安排部是替换型密钥安排部,所述替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据; 并且其中,所述多个回合密钥或根据所述回合密钥配置数据的组合生成的多个回合密钥以使得不重复恒定序 列的设置被输出到在所述加密处理部中顺序执行的回合计算执行单元。
【文档编号】H04L9/06GK103621007SQ201280014184
【公开日】2014年3月5日 申请日期:2012年2月20日 优先权日:2011年3月28日
【发明者】渋谷香士, 三津田敦司, 秋下彻, 五十部孝典, 白井太三, 樋渡玄良 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1