加密处理装置、加密处理方法和程序.pdf

上传人:a**** 文档编号:6229030 上传时间:2019-05-23 格式:PDF 页数:75 大小:9.23MB
返回 下载 相关 举报
摘要
申请专利号:

CN201280014184.6

申请日:

2012.02.20

公开号:

CN103621007A

公开日:

2014.03.05

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):H04L 9/06申请公布日:20140305|||实质审查的生效IPC(主分类):H04L 9/06申请日:20120220|||公开

IPC分类号:

H04L9/06; G09C1/00

主分类号:

H04L9/06

申请人:

索尼公司

发明人:

渋谷香士; 三津田敦司; 秋下彻; 五十部孝典; 白井太三; 樋渡玄良

地址:

日本东京都

优先权:

2011.03.28 JP 2011-069185; 2011.09.22 JP 2011-207705

专利代理机构:

北京集佳知识产权代理有限公司 11227

代理人:

王萍;李春晖

PDF下载: PDF下载
内容摘要

为了实现由于对回合密钥提供的控制而非常安全的加密处理装置,本发明的一个方面包括:加密处理单元,其将要进行数据处理的数据的配置位划分成多行并且然后进行输入,然后对各行数据重复执行应用回合函数的数据转换处理作为回合运算;以及密钥安排单元,其将回合密钥输出到加密处理单元中的回合运算执行单元。密钥安排单元是替换型密钥安排单元,其将先前保存的秘密密钥划分成多个单位并生成多个回合密钥,并且密钥安排单元以不存在固定序列重复的设置将所生成的多个回合密钥输出到在加密处理单元中顺序地执行的回合运算执行单元。由于所述结构,实现了非常安全并且对相关密钥攻击或类似攻击具有强抵抗性的加密处理配置。

权利要求书

权利要求书
1.  一种加密处理装置,包括:
加密处理部,被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及
密钥安排部,被配置成将回合密钥输出到所述加密处理部中的回合计算执行单元;
其中,所述密钥安排部是替换型密钥安排部,所述替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据;
并且其中,所述多个回合密钥或根据所述回合密钥配置数据的组合生成的多个回合密钥被输出到在所述加密处理部中顺序执行的回合计算执行单元,以使得不重复恒定序列。

2.  根据权利要求1所述的加密处理装置,其中,所述密钥安排部以关于所述回合计算执行单元的多个回合为单位而改变与所述回合计算执行单元对应的所述多个回合密钥的输入序列。

3.  根据权利要求1所述的加密处理装置,其中,所述加密处理部包括:F函数执行单元,被配置成输入被划分成多行的数据并且包括非线性转换处理和线性转换处理;以及计算单元,被配置成执行对所述F函数执行单元的输出应用回合密钥的计算。

4.  根据权利要求1所述的加密处理装置,其中,所述密钥安排部将预先存储的秘密密钥划分成多个部分,并且生成位数与输入到所述回合计算执行单元的回合密钥相同的多个回合密钥。

5.  根据权利要求1所述的加密处理装置,其中,所述密钥安排部将预先存储的秘密密钥划分成多个部分并生成位数小于输入到所述回合计算执行单元的回合密钥的多个回合密钥,并且执行所述多个回合密钥配置数据的多个组合,并生成位数与输入到所述回合计算执行单元的回合密钥相同的回合密钥。

6.  根据权利要求1所述的加密处理装置,其中,所述密钥安排部关于在所述加密处理部中顺序地执行的回合计算执行单元,并列输出被并行地应用于所述回合计算执行单元的多个回合密钥。

7.  根据权利要求1所述的加密处理装置,其中,所述密钥安排部包括至少一个选择器,所述至少一个选择器被配置成执行与所述回合计算执行单元对应的密钥选择提供处理。

8.  根据权利要求1所述的加密处理装置,其中,所述密钥安排部通过对所述多个回合密钥或所述回合密钥配置数据进行分类来设置多个组,并且以所设置的组为单位来执行与所述回合计算执行单元对应的密钥提供序列的控制处理。

9.  根据权利要求8所述的加密处理装置,其中,所述密钥安排部包括以所述组为单位的选择器。

10.  根据权利要求1所述的加密处理装置,其中,所述加密处理部执行用于将作为输入数据的明文转换为密文的加密处理,或执行用于将作为所述输入数据的密文转换为明文的解密处理。

11.  一种要在加密处理装置中执行的加密处理方法,所述加密处理方法包括:
加密处理步骤,其中,加密处理部被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及
密钥安排步骤,其中,密钥安排部被配置成将回合密钥输出到所述加密处理部中的回合计算执行单元;
其中,所述密钥安排部是替换型密钥安排部,所述替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据;
并且其中,所述多个回合密钥或根据所述回合密钥配置数据的组合生成的多个回合密钥以使得不重复恒定序列的设置被输出到在所述加密处理部中顺序执行的回合计算执行单元。

12.  一种在加密处理装置中执行加密处理的程序,所述程序包括:
加密处理步骤,其中,加密处理部被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及
密钥安排步骤,其中,密钥安排部被配置成将回合密钥输出到所述加密处理部中的回合计算执行单元;
其中,所述密钥安排部是替换型密钥安排部,所述替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据;
并且其中,所述多个回合密钥或根据所述回合密钥配置数据的组合生成的多个回合密钥以使得不重复恒定序列的设置被输出到在所述加密处理部中顺序执行的回合计算执行单元。

说明书

说明书加密处理装置、加密处理方法和程序
技术领域
本公开涉及一种加密处理装置、加密处理方法和程序。更具体地,这涉及用于执行共享密钥加密的加密处理装置、加密处理方法和程序。
背景技术
随着信息社会继续发展,用于安全地保护所使用的信息的信息安全技术的必要性增加。信息安全技术的一种配置元素是加密技术,并且各种产品和系统当前在使用加密技术。
尽管存在各种类型的加密处理算法,但是基本技术之一称为共享密钥块加密。根据共享密钥块加密,用于加密的密钥和用于解密的密钥是共享项。在加密处理和解密处理中,根据这些共享密钥生成多个密钥,并且以具有特定块单位(诸如64位、128位、256位等)的块数据单位重复执行数据转换处理。
作为先前美国标准的DES(数据加密标准)和作为当前美国标准的AES(高级加密标准)已知为代表性的共享密钥块加密算法。继续提出其它各种共享密钥块加密,并且索尼公司在2007年提出的CLEFIA也是共享密钥块加密。
这些种类的共享密钥块加密算法主要配置有:加密处理部,包括用于重复地执行输入数据的转换的回合函数执行单元;以及密钥安排部,用于生成要在关于回合函数单元的各个回合处施加的回合密钥。密钥安排部首先基于作为秘密密钥的主密钥(master key)而生成位数增加的扩展密钥,并且基于所生成的扩展密钥而生成要在关于加密处理部的各个回合函数单元处施加的回合密钥(secondary key)。
用于重复地执行包括线性转换单元和非线性转换单元的回合函数的配置被认为是这些种类的算法的具体配置。代表性的结构包括例如Feistel结构和一般化Feistel结构。Feistel结构和一般化Feistel结构包括下述结构:其通过重复包括作为数据转换函数的F函数的简单回合函数而将明文 转换成密文。由F函数执行线性转换处理和非线性转换处理。此外,NPL1和NPL2是公开了应用Feistel结构的加密处理的文献的示例。
相反,正涌现各种新的技术,诸如不法地执行加密算法的分析或密钥的分析以执行密码分析的技术。这种技术的一个示例是相关密钥攻击。尽管考虑了各种对策来处理这些种类的攻击,当前状态是这些对策是不够的。
引用列表
非专利文献
NPL1:K.Nyberg,"Generalized Feistel Networks",ASIACRYPT96,SpringerVerlag,1996,pp.91-104.
NPL2:Yuliang Zheng,Tsutomu Matsumoto,Hideki Imai:On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses.CRYPTO1989:461-480.
NPL3:索尼公司,"The 128-bit Blockcipher CLEFIA Algorithm Specification",Revision1.0,2007.
NPL4:Aoki,Ichikawa,Kanda,Matsui,Moriai,Nakajima,Tokita,"128-bit Block Encryption Camellia Algorithm Specification",Version2.0,2001.
NPL5:GOST 28147-89:Encryption,Decryption,and Message Authentication Code(MAC)Algorithms,RFC5830.
NPL6:3rd Generation Partnership Project,Technical Specification Group Services and System Aspects,3G Security,Specification of the 3GPP Confidentiality and Integrity Algorithms;Document2:KASUMI Specification,V9.0.0,2009.
发明内容
技术问题
本公开是考虑到例如先前描述的情形的结果,并且目的是提供具有高安全性水平的加密处理装置、加密处理方法和程序,其使得诸如相关密钥 攻击的不法密码分析是困难的。
问题的解决方案
本公开的第一方面是一种加密处理装置,其包括:
加密处理部,被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及
密钥安排部,被配置成将回合密钥输出到加密处理部中的回合计算执行单元;
其中,密钥安排部是替换型密钥安排部,该替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据;
并且其中,多个回合密钥或者根据回合密钥配置数据的组合生成的多个回合密钥被输出到在加密处理部中顺序地执行的回合计算执行单元,以使得不重复恒定的序列。
关于根据本公开的加密处理装置的实施例,密钥安排部以关于回合计算执行单元的多个回合为单位而改变与回合计算执行单元对应的多个回合密钥的输入序列。
关于根据本公开的加密处理装置的实施例,加密处理部包括:F函数执行单元,被配置成输入被划分成多行的数据并且包括非线性转换处理和线性转换处理;以及计算单元,被配置成执行对F函数执行单元的输出应用回合密钥的计算。
关于根据本公开的加密处理装置的实施例,密钥安排部将预先存储的秘密密钥划分成多个部分,并且生成位数与输入到回合计算执行单元的回合密钥相同的多个回合密钥。
关于根据本公开的加密处理装置的实施例,密钥安排部将预先存储的秘密密钥划分成多个部分并生成位数比输入到回合计算执行单元的回合密钥小的多个回合密钥,并且执行多个回合密钥配置数据的多个组合,并生成位数与输入到回合计算执行单元的回合密钥相同的回合密钥。
关于根据本公开的加密处理装置的实施例,密钥安排部关于在加密处理部中顺序地执行的回合计算执行单元,并列输出被并行地应用于回合计 算执行单元的多个回合密钥。
关于根据本公开的加密处理装置的实施例,密钥安排部包括至少一个选择器,该至少一个选择器被配置成执行与回合计算执行单元对应的密钥选择提供处理。
关于根据本公开的加密处理装置的实施例,密钥安排部通过对多个回合密钥或回合密钥配置数据进行分类来设置多个组,并且以所设置的组为单位来执行与回合计算执行单元对应的密钥提供序列的控制处理。
关于根据本公开的加密处理装置的实施例,密钥安排部包括以组为单位的选择器。
关于根据本公开的加密处理装置的实施例,加密处理部执行用于将作为输入数据的明文转换为密文的加密处理,或执行用于将作为输入数据的密文转换为明文的解密处理。
此外,本公开的第二方面是一种要在加密处理装置中执行的加密处理方法,该加密处理方法包括:
加密处理步骤,其中,加密处理部被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及
密钥安排步骤,其中,密钥安排部被配置成将回合密钥输出到加密处理部中的回合计算执行单元;
其中,密钥安排部是替换型密钥安排部,该替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据;
并且其中,多个回合密钥或者根据回合密钥配置数据的组合生成的多个回合密钥以使得不重复恒定的序列的设置被输出到在加密处理部中顺序地执行的回合计算执行单元。
此外,本公开的第三方面是用于在加密处理装置中执行加密处理的程序,该程序包括:
加密处理步骤,其中,加密处理部被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及
密钥安排步骤,其中,密钥安排部被配置成将回合密钥输出到加密处 理部中的回合计算执行单元;
其中,密钥安排部是替换型密钥安排部,该替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据;
并且其中,多个回合密钥或者根据回合密钥配置数据的组合生成的多个回合密钥以使得不重复恒定的序列的设置被输出到在加密处理部中顺序地执行的回合计算执行单元。
此外,根据本公开的程序是例如通过例如记录介质而被提供到能够执行各种程序代码的信息处理装置或计算机系统的程序。通过利用信息处理装置或计算机系统中的程序执行单元执行这种程序而通过程序实现处理。
本公开的其它目的、特征和优点将通过基于稍后描述的本发明的实施例和附图的详细描述而变得清楚。此外,关于本说明书的系统是多个装置的逻辑组合配置,因此装置的各种配置不限于容纳在同一物理单元内。
本发明的有利效果
根据本公开的实施例,通过提供对回合密钥的控制来实现具有高安全性水平的加密处理装置。
具体地,包括:加密处理部,被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及密钥安排部,被配置成将回合密钥输出到加密处理部中的回合计算执行单元;其中,密钥安排部是替换型密钥安排部,该替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据;并且其中,多个回合密钥被输出到在加密处理部中顺序地执行的回合计算执行单元,以使得不重复恒定的序列。根据本配置,实现了对例如重复密钥攻击或其它攻击具有高抵抗水平的、具有高安全性水平的加密处理配置。
附图说明
图1是描述与k位的密钥长度对应的n位共享密钥块加密算法的图。
图2是描述与图1所示的对应于k位的密钥长度的n位共享密钥块加密算法对应的解密算法的图。
图3是描述密钥安排部与数据加密部之间的关系的图。
图4是描述数据加密部的示例配置的图。
图5是描述SPN结构回合函数的示例的图。
图6是描述Feistel结构回合函数的示例的图。
图7是描述扩展Feistel结构的示例的图。
图8是描述扩展Feistel结构的示例的图。
图9是描述非线性转换单元的示例配置的图。
图10是描述线性转换处理单元的示例配置的图。
图11是描述密钥安排部(扩展密钥生成单元)的图。
图12是描述密钥安排部(扩展密钥生成单元)的图。
图13是描述块加密GOST的示例配置的图。
图14是描述作为GOST数据结构的Feistel结构的图。
图15是描述可以提供任意秘密密钥差别Δ的攻击的图。
图16是描述如下情况的图:其中,当存在替换型密钥安排部时,每个回合密钥差别Δi以每m位被划分成秘密密钥差别Δ。
图17是描述通过提供平均差别(d,d)而使得F函数的输入差别变为零的图。
图18是描述类型2一般化Feistel结构的示例的图。
图19是描述F函数之后的XOR(异或)的示例配置的图。
图20是描述F函数之后的XOR的示例配置的图。
图21是描述如下示例配置的图:其中,当密钥是2n位时,秘密密钥K以每(n/2)位被划分成四个相等部分,并且在每四个回合进行更换(shuffle)的同时被提供。
图22是描述如下示例配置的图:其中,秘密密钥K以每(n/4)位被划分成八个相等部分,并且在每四个回合进行更换的同时提供两个(n/4)位的部分。
图23是描述如下示例配置的图:其中,当长度是4n位时,秘密密钥K以每(n/2)位被划分成八个相等部分,并且在每八个回合进行更换的 同时被提供。
图24是描述如下示例配置的图:其中,当密钥是2n位时,秘密密钥K以每(n/4)位被划分成八个相等部分,并且在每四个回合进行更换的同时提供两个(n/4)位的部分。
图25是描述如下示例配置的图:其中,秘密密钥以每(n/4)位被划分成八个相等部分,其中,这八个相等部分中的四个在左侧F函数的回合密钥RKr,0中使用,并且剩余四个在右侧F函数的回合密钥RKr,1中使用。
图26是描述如下模型的图:其中,具有4个数据行的一般化Feistel结构中的循环移位被改变为回合置换(具有4个数据行的一般化Feistel结构+)。
图27是描述关于具有4个数据行的一般化Feistel结构,应用与图25类似的更换技术的示例的图。
图28是示出当秘密密钥是(5n/4)位并且一个回合所需的回合密钥是(n/2)位时,密钥安排部的配置方法的图。
图29是描述当简单按顺序输入回合密钥时的示例配置的图。
图30是描述当简单按顺序输入回合密钥时的示例配置的图。
图31是描述对于具有一般化Feistel结构的n位块加密,使用与一个回合对应的回合密钥的配置的图,其中该一般化Feistel结构具有划分数为d的d个数据行。
图32是描述如下示例配置的图:其中,秘密密钥是n位,通过将n位秘密密钥划分成四个相等部分而生成n/4位的回合密钥,并且这些回合密钥对于每个回合一次输入两个。
图33是描述如下示例配置的图:其中,秘密密钥是(5/4)n位,通过将n位的秘密密钥划分成五个相等部分而生成n/4位的回合密钥,并且这些回合密钥对于每个回合一次输入两个。
图34是描述如下示例配置的图:其中,秘密密钥是n位,通过将(5/4)n位的秘密密钥划分成五个相等部分而生成n/4位的回合密钥,并且这些回合密钥对于每个回合一次输入两个。
图35是描述如下示例配置的图:其中,以多个回合为单位改变密钥选择序列。
图36是描述被设置为使得以四个回合为单位执行的替换处理每次均不同的回合密钥提供的示例配置的图。
图37是描述如下示例配置的图:其中,以多个回合为单位改变密钥选择序列。
图38是描述如下示例配置的图:其中,每三个回合执行替换,并且在三个回合中使用六个密钥。
图39是描述如下示例配置的图:其中,以多个回合为单位改变密钥选择序列。
图40是描述作为选择器的回合密钥提供配置的图。
图41是描述作为选择器的回合密钥提供配置的图。
图42是描述作为选择器的回合密钥提供配置的图。
图43是示出作为加密处理装置的IC模块700的示例配置的图。
具体实施方式
在下文中,将参照附图详细描述与本公开有关的加密处理装置、加密处理方法和程序。将根据以下项进行描述。
1.共享密钥块加密概况
2.密钥安排部的配置和处理概况
3.关于密钥安排部的攻击和对这些攻击的先前对策的示例
4.可以获得相对于相关密钥攻击的安全性的密钥安排部的替换类型
5.密钥安排部的密钥替换类型的各种配置示例(变型)
6.加密处理装置的配置示例
7.本公开的配置的结论
[1.共享密钥块加密概况]
首先,将描述共享密钥块加密的概况。
(1-1.共享密钥块加密)
以下定义规定哪些在此表示共享密钥块加密(下文中,块加密)。
块加密获得作为输入的明文P和密钥K,并且输出密文C。明文和密 文的位长称为块大小,其被记作n。n是作为通常针对每种块加密算法预先确定的一个值的任意整数值。块长度是n的块加密的这种情况有时称为n位块加密。
密钥的位长被表示为k。密钥具有任意整数值。共享密钥块加密算法可以支持一个或多个密钥大小。例如,对于某种块加密算法A,块大小是n=128,因此支持密钥大小为k=128、k=192或k=256的配置是可能的。
明文P:n位
密文C:n位
密钥K:k位
图1示出了与k位的密钥长度对应的n位共享密钥块加密算法E的图。
与加密算法E对应的解密算法D可以被定义为加密算法E的逆函数E-1,其接收作为输入的密文C和密钥K并且输出明文P。图2示出了与图1所示的加密算法E对应的解密算法D的图。
(1-2.内部配置)
考虑作为被划分成两个部分的块加密。一个是“密钥安排部”,密钥K被输入到该“密钥安排部”,并且该“密钥安排部”通过根据某些先前确定的步骤扩展位长而输出扩展密钥K’(位长k’),另一个是“数据加密部”,该“数据加密部”接收明文P和从密钥安排部扩展的密钥K’,执行数据转换,并且输出密文C。
在图3中示出了这两个部分之间的关系。
(1-3.数据加密部)
在以下实施例中使用的数据加密部可以被划分成称为回合函数的处理单位。回合函数接收两个单位的数据作为输入,在内部进行处理,并且输出一个单位的数据。输入数据的一部分是当前被加密的n位数据,其导致来自对于某个回合的回合函数的输出被提供作为下一回合的输入的配置。输入数据的其它部分用作从密钥安排器输出的扩展密钥的一部分的数据,并且该密钥数据被称为回合密钥。另外,回合函数的总数被称为总回合数,并且是对于每种加密算法预先确定的值。这里,总回合数被表示为R。
当从数据加密部的输入侧来看时,其中,第一回合的输入数据被指定 为X1,在第i回合的回合函数中输入的数据被指定为Xi,并且回合密钥被指定为RKi,数据加密部的概况如图4所示。
(1-4.回合函数)
回合函数根据块加密算法而可以具有各种形式。回合函数可以通过由该加密算法(结构)采用的结构来分类。这里作为示例所使用的典型结构是SPN结构、Feistel结构和扩展Feistel结构。
(A)SPN结构回合函数
该结构对回合密钥和所有n位输入数据应用线性转换处理、非线性转换和XOR计算。每个计算的顺序不是特别确定的。图5示出了SPN结构回合函数的示例。
(B)Feistel结构
n位输入数据被划分成n/2位数据的两个单位。以该数据的一个部分和回合密钥作为输入来应用函数(F函数),并且对输出和数据的另一部分进行XOR计算。对该数据的两侧进行更换的结果变为输出数据。尽管存在F函数的各种类型的内部配置,但是这些基本上与具有与回合密钥数据的XOR计算、非线性计算和线性转换的组合的SPN结构类似地来实现。图6示出了Feistel结构回合函数的示例。
(C)扩展Feistel结构
关于Feistel结构的等于两个的数据划分数被扩展为具有扩展Feistel结构的三个或更多个划分的格式。如果划分数被表示为d,则可以根据d定义各种扩展Feistel结构。由于F函数输入和输出的大小相对较小,因此这适合于小实现。图7示出了d=4并且在一个回合内并行应用两个F函数的扩展Feistel结构的示例。另外,图8示出了d=8并且在一个回合内应用一个F函数的扩展Feistel结构的示例。
(D)具有d个数据行的一般化Feistel结构
对于划分数d是偶数的扩展Feistel结构,在一个回合内并行应用d/2个F函数。
另外,循环移位用作回合之间的替换。
注意,图7、18和20示出了具有4个数据行的一般化Feistel结构。
(1-5.非线性转换处理单元)
对于非线性转换处理单元,实现成本趋向于随着输入数据的大小增加而增加。为了避开这一点,使用了多种配置:其中,相应数据被划分成多个单位,并且对该数据进行非线性转换。例如,当输入大小被指定为ms位时,这些配置以每s位划分m个数据单位,并且对输入和输出是s位的该数据执行非线性转换。这些s位的单位中的非线性转换称为S盒。图9示出了示例。
(1-6.线性转换处理单元)
线性转换处理单元可以被定义为考虑其性质的矩阵。矩阵的元素一般可以以各种方式(诸如GF(28)的体元素和GF(2)的元素)来表示。图10示出了由m×m矩阵定义的线性转换处理单元的示例,其将ms位的输入和输出定义为GF(2S)。
[2.密钥安排部的配置和处理概况]
在描述本公开的加密处理之前,将描述作为初步配置的密钥安排部的配置和处理概况。
密钥安排部是如图11所示的函数,其(扩展密钥生成单元)输入k位的秘密密钥K并且通过某种确定的转换生成k’位扩展密钥(回合密钥)K’。
一般地,k<k’,并且当数据加密部重复执行称为回合函数的非线性计算时,提供到每个回合函数的回合密钥被指定为m位,并且回合函数重复次数被指定为R,k’=m×R。该设置如图12所示。
例如,关于共享密钥块加密AES,
当k=128时,
m=128并且R=11,
因此k’=1408。
当k=192时,
m=128并且R=13,
因此k’=1664。
期望以下特性(特性1至3)来保证密钥安排部中的安全性。
(特性1)不存在等同密钥
此外,关于秘密密钥K0是输入时的扩展密钥K0’和当秘密密钥K1 (≠K0)是输入时的扩展密钥K1’,当K0’=K1’时,K0和K1被称为等同密钥。
(特性2)具有对相关密钥攻击(related key attack)的充分抵抗性
一般攻击使用明文与由某种固定秘密密钥得到的密文之间的数据偏差(差别、线性度等),然而相关密钥攻击使用明文与由多个秘密密钥得到的密文之间的数据偏差。
例如,这些攻击是假设两个秘密密钥的值是未知的但是秘密密钥之间的差别是已知的而执行的。
还存在假设攻击者自由选择秘密密钥之间的差别的强烈攻击。期望甚至在该假设下也实现安全性水平。
在正常差别攻击(没有考虑相关密钥的差别攻击)的情况下,攻击者例如仅使用多个明文P和由未知的秘密密钥K加密的密文C(=E(K,P))的组合,并且推出该未知的秘密密钥K。
然而,在相关密钥差别攻击的情况下,除了多个明文P和由未知秘密密钥K加密的密文C(=E(K,P))的组合之外,关于未知秘密密钥K,攻击者还使用多个明文P’和由攻击者添加了任意指定的秘密密钥差别ΔK的K(+)ΔK加密的密文C’(E(K(+)ΔK,P’)的组合,来推出未知秘密密钥K。
注意,(+)表示XOR算子。
因此,对于相关密钥差别攻击,攻击者可以使用的信息较大,因此攻击者的强度比正常差别攻击的强度大。
(特性3)具有对滑动攻击(slide attack)的充分抵抗性
例如,当滑动值被取作与当来自秘密密钥K0的输入的回合密钥被指定为RK1,RK2,...,RKR并且来自秘密密钥K1的输入的回合密钥被指定为RK2,RK3,...,RKR+1时一样时,存在丢失安全性水平的可能。
关于实现问题,在密钥安排部中还期望以下特性(4至9)。
(特性4)实现是简单的
(特性5)用于根据秘密密钥生成扩展密钥的设置时间短
(特性6)可以在进行中(on the fly)生成扩展密钥
(特性7)尽可能地共享加密密钥安排部和解密密钥安排部
(特性8)尽可能地共享数据加密部和数据解密部
(特性9)容易支持秘密密钥长度的改变
从安全性和实现的角度来看,安排单元优选地以良好平衡的方式满足这些特性。
[3.关于密钥安排部的攻击和对这些攻击的先前对策的示例]
接下来,将描述关于密钥安排部的攻击和对这些攻击的先前对策的示例。
对于每种类型的共享密钥块加密,存在密钥安排部的各种设计。
数据加密部与密钥安排部的安全性水平和实现性能存在很深的关系,但是一般认为与数据加密部类似,在安全性水平与实现性能之间存在折中关系。
复杂非线性函数被引入到密钥安排部中的加密示例包括CLEFIA(NPL3:索尼公司,"The 128-bit Blockcipher CLEFIA Algorithm Specification",第1.0版,2007)和Camellia(NPL4:Aoki,Ichikawa,Kanda,Matsui,Moriai,Nakajima,Tokita,"128-bit Block Encryption Camellia Algorithm Specification",第2.0版,2001)等。这些具有对攻击方法(诸如在密钥安排部中发生的相关密钥攻击)的高安全性水平,但是实现成本比较高,并且存在当特别是以硬件实现时电路规模变得非常大的问题。另外,AES是具有密钥安排部的加密的示例,其中,已引入了比较简单的非线性函数以提高实现性能,但是已知AES对相关密钥攻击(对于192位和256位密钥的情况)是脆弱的。
此外,作为用于进一步提高实现性能的技术示例的技术涉及仅具有线性函数的配置而不使用非线性函数。在这些技术内,将秘密密钥数据划分成多个部分并且仅对其进行替换的密钥安排部不需要特别地以硬件实现的多个电路,因此具有高水平的实现性能。这种密钥安排部被称为替换型密钥安排部。
尽管替换型密钥安排部具有高水平的实现性能,但是存在具有关于其安全性水平的问题的许多方法。
例如,如图13所示,关于块加密GOST(NPL5:GOST28147-89:Encryption,Decryption,and Message Authentication Code(MAC)Algorithms,RFC5830)的密钥安排部具有下述结构:其将4n位的秘密 密钥K以每(n/2)位划分成八个相等部分并且按顺序将这些部分指定为回合密钥。
由于密钥安排部可以仅被配置为对于每个回合的选择器而没有相对于秘密密钥K的任何计算,因此这具有需要以硬件实现的电路数量非常小的特征。
然而,如图14所示,GOST数据结构采用Feistel结构并且在回合密钥的每个F函数之前执行XOR,因此已知这对于相关密钥攻击是脆弱的,并且还已知攻击将成功的实际概率为1。
(成功概率为1的对GOST的相关密钥攻击)
根据秘密密钥K0获得的回合密钥被指定为RK01,RK02,...,和RK0R,并且根据秘密密钥K1获得的回合密钥被指定为RK11,RK12,...,RK1R。此时,秘密密钥K0与秘密密钥K1之间的差别被指定为秘密密钥差别Δ,并且每个回合密钥之间的差别被指定为回合密钥差别Δ1,Δ2,...,和ΔR。
这里,如图15所示,假设攻击者可以提供任意秘密密钥差别Δ。此时,关于将复杂非线性函数引入到密钥安排部中的CLEFIA、Camellia等,每个回合密钥差别Δi不是唯一预定的,因此关于数据加密部的攻击是困难的。
然而,如图16所示,根据具有替换型密钥安排部的情况,每个回合密钥差别Δi是以每m位来划分秘密密钥差别Δ。关于例如GOST,当Δ=(d,d,d,d,d,d,d,d)(Δ是4n位,并且d是(n/2)位,因此当在GOST的情况下n=64时,其分别变为256位和32位)时,所有回合密钥差别Δi等于d。
此时,当采用Feistel结构并且在每个回合(R1,R2,R3,…)中提供给每个F函数的回合密钥之前执行XOR时,通过如图17所示提供(d,d)作为明文差别而使得到F函数的输入差别为零。当到F函数的输入差别为零时,输出差别总是零,因此到下一回合函数的输入差别是(d,d)。
差别(d,d)对于所有回合函数类似地传播,因此密文差别总是(d,d)。
为此,当根据到GOST的明文P和秘密密钥K的输入获得的密文被指定为C时,
秘密密钥K(+)(d,d,d,d,d,d,d,d),
明文P(+)(d,d),
被输入以获得密文C’,其以概率1得到C’=C(+)(d,d)。
获得这种等同性的概率被称为使用相关密钥攻击的识别攻击的成功概率。需要说明,该概率关于抵抗相关密钥攻击强的块加密实际上是充分小的。
另外,例如,关于如图18所示的称为类型2一般化Feistel结构的结构类型,当在使用替换型密钥安排部的F函数之前对回合密钥执行XOR时,这类似地导致以概率1转变的相关密钥攻击的配置。
KASUMI(NPL6:3rd Generation Partnership Project,Technical Specification Group Services and System Aspects,3G Security,Specification of the 3GPP Confidentiality and Integrity Algorithms;Document2:KASUMI Specification,V9.0.0,2009)是具有其它种类的替换型密钥安排部的加密的示例。
然而,尽管KASUMI中的密钥安排部具有高水平的实现性能,但是还已知其对相关密钥攻击是脆弱的。
[4.可以获得对相关密钥攻击的安全性的密钥安排部的替换类型]
考虑到前述问题,在下文中,将描述可以获得对相关密钥攻击的安全性水平而没有高实现成本的替换型密钥安排部的配置方法。
本方法首先将秘密密钥K划分成多个相等部分,并且根据以下技术将其提供到数据加密部:
(技术1)回合密钥插入位置的改变:取代如现有技术中一样在F函数之前(例如,如图14和图18所示的位置)对回合密钥执行XOR,在F函数之后(例如,图19和图20所示的位置)进行XOR。
(技术2)回合密钥生成替换的改变:根据数据加密部的结构,使用对相关密钥攻击安全的替换方法生成回合密钥。
通过以此方式配置密钥安排部可以获得以下优点。
(优点1)高实现性能
与通过使用替换型密钥安排部的现有技术类似,可以预期高水平的实现性能。存在以下特别进步:当以硬件实现时,可以减小所需电路的数量。
(优点2)通过改变回合密钥的插入位置而增加安全性水平
对于图19和图20所示的配置,通过在F函数之后而不是在F函数之前对回合密钥执行XOR,即使使用替换型密钥安排部,也可以防止如现有技术GOST一样相关密钥攻击以概率1成功。
另外,这些实现技术的使用还导致数据加密部的实现性能提高。
(优点3)通过改变回合密钥的替换方法而提高安全性水平
与根据现有技术的方法不同,取代按顺序来提供所划分的秘密密钥,以更换后的序列来适当地提供这些秘密密钥,以便具有对相关密钥攻击的抵抗性。
该序列与秘密密钥K的位长和划分数以及数据加密部的结构关联,因此需要针对每个数据加密部结构来设计密钥安排部。
关于如图19所示的每个回合执行一个F函数的Feistel结构,一个回合密钥的长度是(n/2)位,并且当密钥是2n位时,秘密密钥K被划分成(n/2)位的4个相等部分,并且这些部分以每四个回合更换地提供。
图21示出了该设置。
将描述如图21所示的回合密钥的提供处理。
秘密密钥K是2n位的密钥数据。
该2n位的秘密密钥K被划分成四个相等部分,并且生成四个回合密钥K1、K2、K3和K4。
四个回合密钥K1、K2、K3和K4是(n/2)位的密钥数据。
这四个回合密钥K1、K2、K3和K4在每个单位以不同的序列来使用,其中,一个单位是四个回合。
图21示出了前四个回合:关于R1至R4,按以下序列输入和应用回合密钥K1至K4。
回合R1:回合密钥K1
回合R2:回合密钥K2
回合R3:回合密钥K3
回合R4:回合密钥K4
接下来的四个回合:关于R5至R8,按以下序列输入和应用回合密钥K1至K4。
回合R5:回合密钥K3
回合R6:回合密钥K1
回合R7:回合密钥K4
回合R8:回合密钥K2
接下来的四个回合:关于R9至R12,按以下序列输入和应用回合密钥K1至K4。
回合R9:回合密钥K4
回合R10:回合密钥K3
回合R11:回合密钥K2
回合R12:回合密钥K1
以此方式,以四个回合为单位,应用对于每个单位不同的回合密钥输入序列。
另外,可以以小于回合密钥长度的单位来进行划分,因此还可以将2n位的秘密密钥K以每(n/4)位划分成八个相等部分,并且在以每四个回合进行更换的同时提供这些(n/4)位的数据单位中的两个。
这样的示例是图22所示的配置。
将描述图22所示的回合密钥的提供处理。
秘密密钥K是2n位的密钥数据。
该2n位的秘密密钥K被划分成八个相等部分,并且生成八个密钥K1、K2、K3、K4、K5、K6、K7和K8。
八个密钥K1至K8是(n/4)位的密钥数据。
由选自这八个密钥K1至K8的两个密钥的组合数据构成的(n/2)位的回合密钥:KxKy以在每个单位不同的序列来使用,其中,一个单位是四个回合。
前四个回合如图22所示:关于R1至R4,按以下序列输入和应用作为密钥数据K1至K8的组合的回合密钥KxKy。
回合R1:回合密钥K1K2
回合R2:回合密钥K3K4
回合R3:回合密钥K5K6
回合R4:回合密钥K7K8
接下来的四个回合:关于R5至R8,按以下序列输入和应用作为密钥数据K1至K8的组合的回合密钥KxKy。
回合R5:回合密钥K3K4
回合R6:回合密钥K2K7
回合R7:回合密钥K1K6
回合R8:回合密钥K5K8
接下来的四个回合:关于R9至R12,按以下序列输入和应用作为密钥数据K1至K8的组合的回合密钥KxKy。
回合R9:回合密钥K2K7
回合R10:回合密钥K4K5
回合R11:回合密钥K3K6
回合R12:回合密钥K1K8
以此方式,以四个回合为单位,应用对每个单位不同的回合密钥输入序列。
另外,当长度是4n位时,将秘密密钥K以每(n/2)位划分成八个相等部分,并且在以每八个回合进行更换的同时提供这些部分。
这样的示例是图23所示的配置。
将描述如图23所示的回合密钥的提供处理。
秘密密钥K是4n位的密钥数据。
该4n位的秘密密钥K被划分成八个相等部分,并且生成八个回合密钥K1、K2、K3、K4、K5、K6、K7和K8。
八个回合密钥K1至K8是(n/2)位的密钥数据。
以对于每个单位不同的序列来使用这八个回合密钥K1至K8,其中,一个单位是八个回合。
前八个回合如图23所示:关于R1至R8,按以下序列输入和应用回合密钥。
回合R1:回合密钥K1
回合R2:回合密钥K2
回合R3:回合密钥K3
回合R4:回合密钥K4
回合R5:回合密钥K5
回合R6:回合密钥K6
回合R7:回合密钥K7
回合R8:回合密钥K8
接下来的八个回合:关于R9至R16,按以下序列输入和应用回合密钥。
回合R9:回合密钥K2
回合R10:回合密钥K5
回合R11:回合密钥K1
回合R12:回合密钥K4
回合R13:回合密钥K8
回合R14:回合密钥K6
回合R15:回合密钥K3
回合R16:回合密钥K7
以此方式,以八个回合为单位,应用对每个单位不同的回合密钥输入序列。
另外,如图20所示,关于在一个回合中同时执行两个F函数的、具有4个数据行的一般化Feistel结构,回合密钥是(n/4)位的两个单位。当秘密密钥K是2n位时,其以每(n/4)位被划分成八个相等部分,并且在每四个回合进行更换的同时提供(n/4)位的两个单位。
图24中示出了该配置的示例。
将描述如图24所示的回合密钥的提供处理。
秘密密钥K是2n位的密钥数据。
该2n位的秘密密钥K被划分成八个相等部分,并且生成八个回合密 钥K1、K2、K3、K4、K5、K6、K7和K8。
八个回合密钥K1至K8是(n/4)位的密钥数据。
以对每个单位不同的序列使用选自这八个回合密钥K1至K8的两个回合密钥,其中,一个单位是四个回合。
前四个回合如图24所示:关于R1至R4,按以下序列输入和应用两个回合密钥。
回合R1:回合密钥K1和回合密钥K2
回合R2:回合密钥K3和回合密钥K4
回合R3:回合密钥K5和回合密钥K6
回合R4:回合密钥K7和回合密钥K8
接下来的四个回合:关于R5至R8,按以下序列输入和应用两个回合密钥:
回合R5:回合密钥K5和回合密钥K1
回合R6:回合密钥K2和回合密钥K6
回合R7:回合密钥K7和回合密钥K3
回合R8:回合密钥K4和回合密钥K8
接下来的四个回合:关于R9至R12,按以下序列输入和应用两个回合密钥。
回合R9:回合密钥K7和回合密钥K5
回合R10:回合密钥K1和回合密钥K3
回合R11:回合密钥K4和回合密钥K2
回合R12:回合密钥K6和回合密钥K8
以此方式,以四个回合为单位,应用对每个单位不同的回合密钥输入序列。
另外,作为用于进一步提高实现效率的技术,在关于左侧F函数的回合密钥RKr,0中使用来自以每(n/4)位被划分成八个部分单位中的四个单位,并且在关于右侧F函数的回合密钥RKr,1中使用剩余四个单位。
图25中示出了该配置的示例。
将描述如图25所示的回合密钥的提供处理。
秘密密钥K是2n位的密钥数据。
该2n位的秘密密钥K被划分成八个相等部分,并且生成八个回合密钥K1、K2、K3、K4、K5、K6、K7和K8。
八个回合密钥K1至K8是(n/4)位的密钥数据。
以对于每个单位不同的序列使用选自这八个回合密钥K1至K8的两个回合密钥,其中,一个单位是四个回合。
根据该示例,关于具有4个数据行的Feistel结构,在每个回合中对左侧F函数应用回合密钥K1至K4,并且关于具有4个数据行的Feistel结构,对于每个回合对右侧F函数应用回合密钥K5至K8。
前四个回合如图25所示:关于R1至R4,按以下序列输入和应用两个回合密钥。
回合R1:回合密钥K1和回合密钥K5
回合R2:回合密钥K2和回合密钥K6
回合R3:回合密钥K3和回合密钥K7
回合R4:回合密钥K7和回合密钥K8
接下来的四个回合:关于R5至R8,按以下序列输入和应用两个回合密钥:
回合R5:回合密钥K2和回合密钥K5
回合R6:回合密钥K4和回合密钥K8
回合R7:回合密钥K1和回合密钥K6
回合R8:回合密钥K3和回合密钥K7
接下来的四个回合:关于R9至R12,按以下序列输入和应用两个回合密钥。
回合R9:回合密钥K4和回合密钥K5
回合R10:回合密钥K3和回合密钥K7
回合R11:回合密钥K2和回合密钥K8
回合R12:回合密钥K1和回合密钥K6
以此方式,以四个回合为单位,应用对每个单位不同的回合密钥输入序列。
根据图25所示的配置,取代以每四个回合为单位对所有八个回合密钥K1至K8的输入顺序进行更换,以这些当中的四个,也就是说,
回合密钥:K1至K4
回合密钥:K5至K8
以四个回合密钥为单位来执行这些回合密钥的输入顺序的更换。
根据该配置,可以进一步降低替换型密钥安排部中所需的选择器的成本。
另外,关于如图26所示的具有4个数据行的一般化Feistel结构,例如,对于循环移位被修改为回合置换的模型(具有4个数据行的一般化Feistel+),关于本方法的密钥安排部也是有效的。
将描述如图26所示的、关于具有4个数据行的一般化Feistel结构循环移位被修改为回合置换的模型(具有4个数据行的一般化Feistel+)。
图26所示的配置的基本配置是如下配置:关于d行的一般化Feistel结构,n位的输入数据以每n/d位被划分成d个单位,其中,作为基本配置,对这些单位执行F函数处理和XOR处理,并且对F函数的输出执行利用回合密钥的计算的配置。
此时,
输入到F函数的数据序列被指定为F函数输入侧数据序列,
并且在XOR中使用的数据序列被指定为XOR数据序列。
在每个序列(每行)中传递的n/d位的数据再次进一步被划分成d/2个单位(在该情况下,划分不需要为等分)。
根据以下规则来分配对于每个序列(每行)再次被划分成d/2个单位的数据。
(1)F函数输入数据序列总是被分配给对于下一回合函数的XOR数据序列
(2)XOR数据序列总是被分配给对于下一回合函数的F函数输入数据序列
(3)被划分成d/2个单位的数据序列被分配给对于d/2位置的下一 回合函数的数据序列,而在它们之间没有任何重叠。
在这样的分配之后,被划分成d/2个单位的数据被组合为一个数据单位。
这被重复所需要的次数。
关于该循环移位已被修改为回合置换的模型(具有4个数据行的一般化Feistel+),根据本方法的密钥安排部也是有效的。
具体地,作为与图25类似的更换技术的图27所示的配置是适当示例。
也就是说,在关于左侧F函数的回合密钥RKr,0中使用来自以每(n/4)位被划分成八个相等部分的秘密密钥K的四个单位,并且在关于右侧F函数的回合密钥RKr,1中使用剩余四个单位。
将描述如图27所示的回合密钥的提供处理。
秘密密钥K是2n位的密钥数据。
该2n位的秘密密钥K被划分成八个相等部分,并且生成八个回合密钥K1、K2、K3、K4、K5、K6、K7和K8。
八个回合密钥K1至K8是(n/4)位的密钥数据。
以对每个单位不同的序列使用选自这八个回合密钥K1至K8的两个回合密钥,其中,一个单位是四个回合。
根据本示例,关于循环移位已被修改为回合置换的具有4个数据行的一般化Feistel+结构,在每个回合中对两个F函数应用选自回合密钥K1至K8的回合密钥中的两个。
前四个回合如图27所示:关于R1至R4,按以下序列输入和应用两个回合密钥。
回合R1:回合密钥K1和回合密钥K5
回合R2:回合密钥K2和回合密钥K6
回合R3:回合密钥K3和回合密钥K7
回合R4:回合密钥K7和回合密钥K8
接下来的四个回合:关于R5至R8,按以下序列输入和应用两个回合密钥。
回合R5:回合密钥K2和回合密钥K5
回合R6:回合密钥K4和回合密钥K8
回合R7:回合密钥K1和回合密钥K6
回合R8:回合密钥K3和回合密钥K7
接下来的四个回合:关于R9至R12,按以下序列输入和应用两个回合密钥。
回合R9:回合密钥K4和回合密钥K5
回合R10:回合密钥K3和回合密钥K7
回合R11:回合密钥K2和回合密钥K8
回合R12:回合密钥K1和回合密钥K6
以此方式,以四个回合为单位,应用对每个单位不同的回合密钥输入序列。
接下来,示出了在当秘密密钥的位长不是一个回合所需的回合密钥的位长的整数倍的情况下,对于替换型密钥安排部的示例配置。
例如,图28示出了当秘密密钥是(5n/4)位并且一个回合所需的回合密钥是(n/2)位时密钥安排部的配置方法。
根据该配置,首先,执行该配置的替换和扩展以使得其变为一个回合所需的回合密钥的位长的整数倍。此后,采用按顺序进行提供的配置。
将描述如图28所示的回合密钥的提供处理。
秘密密钥K是(5/4)n位的密钥数据。
首先,替换型密钥安排部基于该(5/4)n位的密钥数据生成与回合密钥的位长相等的五个回合密钥K1、K2、K3、K4和K5,
作为应用于每个回合的回合密钥而输入的、选自这些回合密钥K1至K5的两个回合密钥被应用于两个F函数。
前五个回合如图28所示:关于R1至R5,按以下序列输入和应用两个回合密钥。
回合R1:回合密钥K3和回合密钥K4
回合R2:回合密钥K1和回合密钥K2
回合R3:回合密钥K3和回合密钥K4
回合R4:回合密钥K5和回合密钥K5
回合R5:回合密钥K1和回合密钥K2
关于接下来的五个回合R6至R10以及后续的五个回合R11至R15,按类似序列输入和应用两个回合密钥。
将进行先前描述的优点“(优点3)通过改变回合密钥的替换方法来提高安全性水平”的详细描述。
首先,将进行差别概率、有效F函数和最小有效F函数数量的定义。
差别攻击是使用以高概率从某种输入差别传播到某种输出差别的攻击。也就是说,当考虑安全性时,需要指示不包含以高概率传播的输入差别和输出差别的、输入差别和输出差别的组合。
相关密钥差别攻击是使用以高概率从某种输入差别和某种秘密密钥差别传播到某种输出差别的类似攻击。也就是说,当考虑安全性时,需要指示不包含以高概率传播的输入差别、秘密密钥差别和输出差别的,输入差别、秘密密钥差别和输出差别的组合。某种输入差别传播到某种输出差别的这种概率以及某种输入差别和某种秘密密钥差别传播到某种输出差别的概率是差别概率的定义。如之前所述,存在关于GOST的该差别概率为1的情况。
已知这样的差别概率仅根据为其提供非零输入差别的非线性函数(F函数)而减小。为其提供该非零输入差别的非线性函数(F函数)是有效F函数的定义。有效F函数的数量与相对于差别攻击的安全性水平密切相关,因此可以认为如果存在关于某种输入差别的多个有效F函数,则这样是充分安全的。
如果确定了一个输入差别,则可以确定有效F函数的数量。根据刚才所述的,应理解,需要根据当考虑相对于差别攻击的安全性时所提供的输入差别的种类而确定应该指示多少有效F函数。关于每种这样的输入差别的有效F函数的数量的最小值是最小有效F函数数量的定义。
例如,关于如图20所示的在XOR中使用关于回合密钥的F函数的输出的、具有4个数据行的一般化Feistel结构,以下(表1)示出了当采用根据现有技术的方法以使得回合密钥如图29所示按顺序简单输入时,与考虑了相关密钥差别之后的回合数对应的最小有效F函数数量。
[表1]

在该方法的情况下,应理解,例如,对于保证相对于相关密钥差别攻击的安全性所需的有效F函数的数量是七的加密,需要至少28回合。
例如在诸如图20所示的具有4个数据行的一般化Feistel结构中的、如图24所示的根据本公开的处理,也就是说,关于替换型密钥安排部,(表2)示出了关于以预定回合单位执行改变输入密钥序列的处理的配置,考虑到相关密钥差别时相应的最小有效F函数数量和回合数。
[表2]

根据先前描述的表2,应理解,对于保证相对于相关密钥差别攻击的安全性所需的有效F函数的数量是例如七的加密,需要至少15回合。
根据先前的表1,对于保证相对于相关密钥差别攻击的安全性所需的有效F函数的数量是七的加密,需要至少28回合。
根据本公开的处理,也就是说,关于替换型密钥安排部,应理解,与通过实现以预定回合单位执行改变输入密钥序列的处理的配置的现有技术方法相比,回合数减少了13。
以此方式,根据本公开的处理,也就是说,关于替换型密钥安排部,应理解,与通过实现以预定回合单位执行用于改变输入密钥序列的处理的配置、不执行这种密钥更换的现有技术方法相比,可以保证较大数量的有效F函数。
类似地,考虑如图26所示的具有4个数据行的一般化Feistel+结构的模型,其中,具有4个数据行的一般化Feistel结构中的循环移位被修改为回合置换。
当关于该配置采用简单按顺序(图30)输入回合密钥的现有技术方法时,考虑到相关密钥差别的情况下的相应最小有效F函数数量和回合数与先前描述的(表1)中的值相同。
在该方法的情况下,应理解,对于保证相对于相关密钥差别攻击的安全性所需的有效F函数的数量是例如七的加密,需要至少28回合。
另外,关于在诸如图26所示的具有4个数据行的一般化Feistel+结构中的、如图24所示的根据本发明实现密钥安排部的配置的情况,以下(表3)示出了考虑到相关密钥差别的情况下的相应最小有效F函数数量和回合数。
[表3]


根据先前描述的表3,应理解,对于保证相对于相关密钥差别攻击的安全性所需的有效F函数的数量是例如七的加密,需要至少15回合。
根据先前的表1,对于保证相对于相关密钥差别攻击的安全性所需的有效F函数的数量是七的加密,需要至少28回合。
根据本公开的处理,也就是说,关于替换型密钥安排部,应理解,与通过实现以预定回合单位执行改变输入密钥序列的处理的配置的现有技术方法相比,回合数减少了13。
以此方式,根据本公开的处理,也就是说,关于替换型密钥安排部,应理解,与通过实现以预定回合单位执行改变输入密钥序列的处理的配置、不执行这种密钥更换的现有技术方法相比,可以保证较大数量的有效F函数,并且以较少的回合数实现具有高安全性的加密处理配置。
[5.密钥安排部的密钥替换类型的各种配置示例(变型)]
接下来,将描述密钥安排部的密钥替换类型的各种配置示例(变型)。
关于具有d个数据行的一般化Feistel结构的n位块加密,其中d表示划分数,如图31所示,一般用于一个回合的(n/d)位回合密钥的数量是(d/2)个单位。
因此,需要对于一个回合的总数为(n/d)×(d/2)=(n/2)位的回合密钥数据。
例如,当应用如先前描述的图18所示的具有4个数据行的一般化Feistel结构(d=4)时,需要各自在每个回合单位输入两个(n/4)位的回合密钥以实现回合密钥输入处理。
根据构成生成回合密钥的基础的秘密密钥的长度而执行如以下所述的回合密钥的生成和输入。
当秘密密钥是n位时,通过将n位的秘密密钥划分成四个相等部分而生成n/4位的回合密钥,并且例如如图32所示,每个回合分别输入两个回合密钥。
当秘密密钥是(5/4)n位时,通过将n位的秘密密钥划分成五个相等部分而生成n/4位的回合密钥,并且例如如图33和图34所示,每个回合分别输入两个回合密钥。
例如,关于使用来自将n位的秘密密钥划分成如图32所示的四个相等部分的四个回合密钥K1、K2、K3和K4的配置,每两个回合执行密钥替换,也就是说,每两个回合改变密钥提供序列。
将描述如图32所示的回合密钥的提供处理。
秘密密钥K是n位的密钥数据。
通过将该n位的秘密密钥K划分成四个相等部分而生成四个回合密钥K1、K2、K3和K4。
四个回合密钥K1、K2、K3和K4是(n/4)位的密钥数据。
以在每个单位不同的序列来使用这四个回合密钥K1、K2、K3和K4,其中,一个单位是四个回合。
前两个回合如图21所示:关于R1至R2,按以下序列输入和应用回合密钥K1至K4中的两个。
回合R1:回合密钥K1和回合密钥K2
回合R2:回合密钥K3和回合密钥K4
接下来的两个回合:关于R3至R4,按以下序列输入和应用回合密钥K1至K4。
回合R3:回合密钥K3和回合密钥K1
回合R4:回合密钥K4和回合密钥K2
接下来的两个回合:关于R5至R6,按以下序列输入和应用回合密钥K1至K4。
回合R5:回合密钥K4和回合密钥K3
回合R6:回合密钥K2和回合密钥K1
接下来的两个回合:关于R7至R8,按以下序列输入和应用回合密钥K1至K4。
回合R7:回合密钥K2和回合密钥K4
回合R8:回合密钥K1和回合密钥K3
接下来的两个回合:关于R9至R10,按以下序列输入和应用回合密钥K1至K4。
回合R9:回合密钥K1和回合密钥K2
回合R10:回合密钥K3和回合密钥K4
另外,关于使用来自当划分(5/4)n位的秘密密钥K时的五个相等部分的五个回合密钥K1、K2、K3、K4和K5的、如图33所示的配置,由于在这五个密钥K1至K5的五个密钥选择之后执行密钥替换,因此在五个回合内执行两次密钥替换。也就是说,每五个回合改变密钥提供序列两次。
将描述如图33所示的回合密钥的提供处理。
秘密密钥K是(5/4)n位的密钥数据。
首先,替换型密钥安排部基于该(5/4)n位的密钥数据而生成与回合密钥的位长对应的五个回合密钥K1、K2、K3、K4和K5。
作为应用于每个回合的回合密钥的输入,选自这些回合密钥K1至K5的两个回合密钥被应用于两个F函数。
前五个回合如图33所示:关于R1至R5,按以下序列输入和应用两个回合密钥。
回合R1:回合密钥K1和回合密钥K2
回合R2:回合密钥K3和回合密钥K4
回合R3:回合密钥K5和回合密钥K5
回合R4:回合密钥K2和回合密钥K3
回合R5:回合密钥K3和回合密钥K4
接下来的五个回合:关于R6至R10,按类似序列输入和应用两个回合密钥。
此外,图33所示的关于密钥提供处理配置的密钥提供序列产生与关于图28所描述的相同的结果。
也就是说,在任一情况下,按K1、K2、K3、K4、K5、K5、K5、K1、K2、K3…的顺序执行密钥提供。
以此方式,关于用于替换型密钥安排部的密钥提供处理,关于对于例 如m个回合需要密钥替换的次数是m’(>1)的设置,配置可执行改变密钥选择序列的处理,而不执行多于两次密钥替换。
例如,图33所示的密钥提供处理序列和图34所示的密钥提供处理序列是完全相同的。
也就是说,前五个回合:关于R1至R5,按以下序列输入和应用两个回合密钥。
回合R1:回合密钥K1和回合密钥K2
回合R2:回合密钥K3和回合密钥K4
回合R3:回合密钥K5和回合密钥K5
回合R4:回合密钥K2和回合密钥K3
回合R5:回合密钥K3和回合密钥K4
接下来的五个回合:关于R6至R10,按类似序列输入和应用两个回合密钥。
另外,取代对所划分的密钥提供顺序进行更换并将其按顺序输入到回合函数中作为密钥替换处理,可以通过以多个回合为单位改变选择顺序而获得完全相同的效果。例如,先前参照图24描述的回合密钥提供配置和图35所示的密钥提供处理序列是完全相同的。
也就是说,前四个回合:关于R1至R4,按以下序列输入和应用两个回合密钥。
回合R1:回合密钥K1和回合密钥K2
回合R2:回合密钥K3和回合密钥K4
回合R3:回合密钥K5和回合密钥K6
回合R4:回合密钥K7和回合密钥K8
接下来的四个回合:关于R5至R8,按以下序列输入和应用两个回合密钥:
回合R5:回合密钥K5和回合密钥K1
回合R6:回合密钥K2和回合密钥K6
回合R7:回合密钥K7和回合密钥K3
回合R8:回合密钥K4和回合密钥K8
接下来的四个回合:关于R9至R12,按以下序列输入和应用两个回合密钥:
回合R9:回合密钥K7和回合密钥K5
回合R10:回合密钥K1和回合密钥K3
回合R11:回合密钥K4和回合密钥K2
回合R12:回合密钥K6和回合密钥K8
以此方式,参照图24描述的回合密钥提供配置和图35所示的密钥提供处理序列是在每个单位应用不同的回合密钥输入序列的配置,其中,一个单位是四个回合。
(多种类型的密钥替换)
根据先前参照图24描述的配置,当密钥长度是2n位并且被划分成八个相等部分时,每四个回合执行相同形式的密钥替换。
相反,以四个回合为单位执行的替换处理可被设置为每次为不同的形式,诸如例如图36所示的。
以下是根据图36所示的配置的密钥提供序列。前四个回合:关于R1至R4,按以下序列输入和应用两个回合密钥。
回合R1:回合密钥K1和回合密钥K2
回合R2:回合密钥K3和回合密钥K4
回合R3:回合密钥K5和回合密钥K6
回合R4:回合密钥K7和回合密钥K8
接下来的四个回合:关于R5至R8,按以下序列输入和应用两个回合密钥:
回合R5:回合密钥K5和回合密钥K1
回合R6:回合密钥K2和回合密钥K6
回合R7:回合密钥K7和回合密钥K3
回合R8:回合密钥K4和回合密钥K8
接下来的四个回合:关于R9至R12,按以下序列输入和应用两个回合密钥:
回合R9:回合密钥K8和回合密钥K5
回合R10:回合密钥K7和回合密钥K3
回合R11:回合密钥K1和回合密钥K2
回合R12:回合密钥K4和回合密钥K6
以此方式,直到第1回合至第4回合和第5回合至第8回合,图36所示的密钥提供序列与图24所示的密钥提供序列相同,但是序列从第9回合开始不同。
这是由于尽管关于图24所示的设置由替换型密钥安排部执行的密钥替换(也就是说,密钥更换处理)是以4个回合为单位以相同设置执行的配置,但是根据图36所示的配置,替换型密钥安排部执行的密钥替换(也就是说,密钥更换处理)以4个回合为单位以不同设置来执行。
另外,取代对所划分的密钥的顺序进行更换并且将其按顺序输入到回合函数中,可以通过改变密钥的选择序列而获得类似的效果。例如,先前参照图36所述的回合密钥提供配置与图37所示的密钥提供处理序列是完全相同的。
(密钥的部分选择)
如之前所述,根据图24和图36所示的配置,被划分成八个相等部分的八个密钥在四个回合期间一次输入一个。
如图38所示的、每三个回合执行替换、在三个回合期间仅使用六个密钥的配置也是可能的。
以下是根据图38所示的配置的密钥提供序列。前三个回合:关于R1至R3,按以下序列输入和应用两个回合密钥。
回合R1:回合密钥K1和回合密钥K2
回合R2:回合密钥K3和回合密钥K4
回合R3:回合密钥K5和回合密钥K6
接下来的三个回合:关于R4至R6,按以下序列输入和应用两个回合密钥。
回合R4:回合密钥K7和回合密钥K3
回合R5:回合密钥K8和回合密钥K1
回合R6:回合密钥K2和回合密钥K4
接下来的三个回合:关于R7至R9,按以下序列输入和应用两个回合密钥。
回合R7:回合密钥K6和回合密钥K8
回合R8:回合密钥K5和回合密钥K7
回合R9:回合密钥K3和回合密钥K1
接下来的三个回合:关于R10至R12,按以下序列输入和应用两个回合密钥。
回合R10:回合密钥K4和回合密钥K5
回合R11:回合密钥K2和回合密钥K6
回合R12:回合密钥K8和回合密钥K7
该示例指定了以3个回合为单位重复相同模式的密钥替换的配置。
另外,取代对密钥的顺序进行更换并且将其按顺序输入到回合函数中,可以通过改变密钥的选择序列而获得完全相同的效果。例如,参照例如图38描述的回合密钥提供配置与图39所示的密钥提供处理序列完全相同。
(实现效率)
根据本公开的回合密钥提供方法与根据现有技术的方法的类似之处在于,由于由替换型密钥安排部来执行处理,因此实现效率高。
例如,如图40所示,当构成生成回合密钥的基础的秘密密钥K的长度是2n位时,每个回合从来自八个密钥部分的密钥K1至K8选择两个回合密钥。
这里,密钥K1至K8中的两个如关于先前描述的图27那样被分类,
K1、K2、K3和K4
K5、K6、K7和K8
设置具有这些回合密钥中的四个回合密钥的两组,
因此,通过实现以预定回合数为单位的密钥替换的配置,也就是说,以这些组为单位来执行密钥提供序列的改变,可以进一步提高某些实现形式的实现效率。
具体地,如图41所示,指定了包括替换型密钥安排部的两个选择器的配置,并且四个先前描述的回合密钥的组,关于每个选择器,也就是说,
K1、K2、K3和K4
K5、K6、K7和K8
指定执行来自这些回合密钥的组的输出密钥选择的配置。
当设计诸如先前关于图24所述的密钥安排部时,需要如图40中一样用于从八个选择一个的两个选择器,但是通过实现如图27所示的替换型密钥安排部的配置,例如,这些变为如图41中一样用于从四个选择一个的两个小选择器。
类似地,取代替换从划分(5/4)n位的密钥所得的五个相等部分的全部五个,通过设计替换以使得可以使用输入数量为三的选择器而提高了实现效率。
具体地,如图42所示,
根据(5/4)n位的秘密密钥K生成n/4位的回合密钥K1、K2、K、K4和K5,
是下述配置:其中,第一选择器执行K1、K2和K3的密钥选择,而第二选择器执行K3、K4和K5的密钥选择。
[6.加密处理装置的配置示例]
最终,将描述执行根据先前描述的实施例的加密处理的加密处理装置的实际示例。
用于执行根据先前描述的实施例的加密处理的加密处理装置可以被安装在执行加密处理的各种信息处理装置中。具体地,这可以关于各种紧急情况来使用,其中,由诸如PC、TV、记录器、播放器、通信装置、RFID、智能卡、传感器网络装置、电池/电池认证模块、健康和医疗装置、独立网络装置等的装置来执行加密处理以及数据处理和通信处理。
图43示出了作为根据本公开的执行加密处理的装置示例的IC模块700的示例配置。先前描述的处理可以在诸如PC、IC卡、读取器-写入器等的各种信息处理装置中执行,并且图43所示的IC模块700可以配置在这些各种装置中。
图43所示的CPU(中央处理单元)701是执行各种程序(诸如加密 处理的开始和终止、数据传送和接收的控制、各个配置元件之间的数据传输控制等)的处理器。存储器702由存储固定数据(诸如CPU701执行的程序、计算参数等)的ROM(只读存储器)和用作关于CPU701的处理而执行的程序和在程序的处理期间任意改变的参数的工作区域和存储区的RAM(随机存取存储器)构成。另外,存储器702可以用作用于应用于在加密处理期间应用的转换矩阵和转换表(替换表)的数据以及用于在加密处理期间所需的密钥数据的存储区域。此外,数据存储区域期望被配置为具有防篡改结构的存储器。
加密处理部703根据应用先前描述的加密处理配置(也就是说,例如,一般化Feistel结构或Feistel结构)的共享密钥块加密处理算法而执行加密处理和解密处理。
此外,这里所示的示例使用作为单独模型的加密处理装置,取代提供这些种类的独立加密处理模块,可以实现如下配置:其中,加密处理程序可以存储在例如ROM中,并且CPU701读出并执行存储在ROM中的程序。
随机数生成器704执行在加密处理期间所需的密钥的生成期间所需的随机数生成处理。
传送/接收单元705是与外部装置执行数据通信的数据通信处理单元,执行与IC模块(诸如,例如读取器-写入器)的数据通信,并且执行在IC模块内生成的密文的输出、来自外部读取器-写入器的数据的输入等。
此外,先前描述的实施例中所描述的加密处理装置不仅适用于用于对作为输入数据的明文进行加密的加密处理,而且还适用于用于将作为输入数据的密文解码回明文的解密处理。
关于加密处理和解密处理这两种处理,可以应用先前实施例中所描述的配置。
[7.本公开的配置的结论]
因此,已参照具体实施例详细描述了本公开的实施例。然而,对本领域技术人员来说明显的是,在不背离本公开的范围和精神的情况下,可进行实施例的各种修改和替换。也就是说,通过实施例示例性地公开了本发明,并且不应解释为限制性的。应参考权利要求来确定本公开的范围。
此外,本说明书中公开的技术可以采用以下配置。
(1)一种加密处理装置,包括:
加密处理部,被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及
密钥安排部,被配置成将回合密钥输出到所述加密处理部中的回合计算执行单元;
其中,所述密钥安排部是替换型密钥安排部,所述替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据;
并且其中,所述多个回合密钥或根据所述回合密钥配置数据的组合生成的多个回合密钥被输出到在所述加密处理部中顺序执行的回合计算执行单元,以使得不重复恒定序列。
(2)根据(1)所述的加密处理装置,其中,所述密钥安排部以关于所述回合计算执行单元的多个回合为单位而改变与所述回合计算执行单元对应的所述多个回合密钥的输入序列。
(3)根据(1)或(2)所述的加密处理装置,其中,所述加密处理部包括:F函数执行单元,被配置成输入被划分成多行的数据并且包括非线性转换处理和线性转换处理;以及计算单元,被配置成执行对所述F函数执行单元的输出应用回合密钥的计算。
(4)根据(1)至(3)中任一项所述的加密处理装置,其中,所述密钥安排部将预先存储的秘密密钥划分成多个部分,并且生成位数与输入到所述回合计算执行单元的回合密钥相同的多个回合密钥。
(5)根据(1)至(4)中任一项所述的加密处理装置,其中,所述密钥安排部将预先存储的秘密密钥划分成多个部分并生成位数小于输入到所述回合计算执行单元的回合密钥的多个回合密钥,并且执行所述多个回合密钥配置数据的多个组合,并生成位数与输入到所述回合计算执行单元的回合密钥相同的回合密钥。
(6)根据(1)至(5)中任一项所述的加密处理装置,其中,所述密钥安排部关于在所述加密处理部中顺序地执行的回合计算执行单元,并列输出被并行地应用于所述回合计算执行单元的多个回合密钥。
(7)根据(1)至(6)中任一项所述的加密处理装置,其中,所述 密钥安排部包括至少一个选择器,所述至少一个选择器被配置成执行与所述回合计算执行单元对应的密钥选择提供处理。
(8)根据(1)至(7)中任一项所述的加密处理装置,其中,所述密钥安排部通过对所述多个回合密钥或所述回合密钥配置数据进行分类来设置多个组,并且以所设置的组为单位来执行与所述回合计算执行单元对应的密钥提供序列的控制处理。
(9)根据(1)至(8)中任一项所述的加密处理装置,其中,所述密钥安排部包括以所述组为单位的选择器。
(10)根据(1)至(9)中任一项所述的加密处理装置,其中,所述加密处理部执行用于将作为输入数据的明文转换为密文的加密处理,或执行用于将作为输入数据的密文转换为明文的解密处理。
此外,在先前描述的装置和系统中执行的处理方法和执行该处理的程序包括在本公开的配置中。
另外,本说明书中描述的处理的一部分可以以硬件、软件或者两者的组合来执行。当通过软件执行该处理时,记录处理序列的程序在装配有专用硬件的计算机内的存储器中安装并执行,或者程序可以在能够执行各种处理的通用计算机中安装并执行。例如,程序可以被预先记录到记录介质上。除了从记录介质安装到计算机之外,程序可以经由诸如LAN(局域网)或因特网的网络来接收,并且可以被安装到诸如内部硬盘的记录介质。
此外,在本说明书中公开的各种处理不仅可以根据本公开以时间顺序来执行,而且还可以根据需要或根据执行处理的装置的处理性能而并行地或者单独地来执行。另外,关于本说明书的系统是多个装置的逻辑组合配置,因此装置的各种配置不限于被容纳在同一物理单元内。
工业应用性
如之前所述,根据本公开的实施例,通过对回合密钥的提供控制来实现具有高安全性水平的加密处理装置。
具体地,包括:加密处理部,被配置成将要进行数据处理的数据的配置位划分成多行并输入,以及对每行数据重复地执行应用回合函数的数据转换处理作为回合计算;以及密钥安排部,被配置成将回合密钥输出到加密处理部中的回合计算执行单元,其中,密钥安排部是替换型密钥安排部, 该替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥,其中,所生成的多个回合密钥以使得不重复恒定序列的设置被输出到在加密处理部中顺序地执行的回合计算执行单元。根据本配置,实现了对例如重复密钥攻击或其它攻击具有高抵抗水平的、具有高安全性水平的加密处理配置。
附图标记列表
700 IC模块
701 CPU(中央处理单元)
702 存储器
703 加密处理部
704 随机数生成器
705 传送/接收单元
权利要求书(按照条约第19条的修改)
1.一种加密处理装置,包括:
加密处理部,被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及
密钥安排部,被配置成将回合密钥输出到所述加密处理部中的回合计算执行单元;
其中,所述密钥安排部是替换型密钥安排部,所述替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据;
并且其中,所述多个回合密钥或根据所述回合密钥配置数据的组合生成的多个回合密钥被输出到在所述加密处理部中顺序执行的回合计算执行单元,以使得不重复恒定序列;
并且其中,通过对所述多个回合密钥或所述回合密钥配置数据进行分类来设置多个组,并且执行与所述回合计算执行单元对应的密钥提供序列的控制以使得对每个组不同。
2.根据权利要求1所述的加密处理装置,其中,所述密钥安排部以关于所述回合计算执行单元的多个回合为单位而改变与所述回合计算执行单元对应的所述多个回合密钥的输入序列。
3.根据权利要求1所述的加密处理装置,其中,所述加密处理部包括:F函数执行单元,被配置成输入被划分成多行的数据并且包括非线性转换处理和线性转换处理;以及计算单元,被配置成执行对所述F函数执行单元的输出应用回合密钥的计算。
4.根据权利要求1所述的加密处理装置,其中,所述密钥安排部将预先存储的秘密密钥划分成多个部分,并且生成位数与输入到所述回合计算执行单元的回合密钥相同的多个回合密钥。
5.根据权利要求1所述的加密处理装置,其中,所述密钥安排部将预先存储的秘密密钥划分成多个部分并生成位数小于输入到所述回合计算执行单元的回合密钥的多个回合密钥,并且执行所述多个回合密钥配置数据的多个组合,并生成位数与输入到所述回合计算执行单元的回合密钥相同的回合密钥。
6.根据权利要求1所述的加密处理装置,其中,所述密钥安排部关于在所述加密处理部中顺序地执行的回合计算执行单元,并列输出被应用于所述回合计算执行单元的多个回合密钥。
7.根据权利要求1所述的加密处理装置,其中,所述密钥安排部包括至少一个选择器,所述至少一个选择器被配置成执行与所述回合计算执行单元对应的密钥选择提供处理。
8.根据权利要求1所述的加密处理装置,其中,所述密钥安排部包括与每个组对应的各个选择器。
9.根据权利要求1所述的加密处理装置,其中,所述加密处理部执行用于将作为输入数据的明文转换为密文的加密处理,或执行用于将作为所述输入数据的密文转换为明文的解密处理。
10.一种要在加密处理装置中执行的加密处理方法,所述加密处理方法包括:
加密处理步骤,其中,加密处理部被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及
密钥安排步骤,其中,密钥安排部被配置成将回合密钥输出到所述加密处理部中的回合计算执行单元;
其中,所述密钥安排部是替换型密钥安排部,所述替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据;
并且其中,所述多个回合密钥或根据所述回合密钥配置数据的组合生成的多个回合密钥以使得不重复恒定序列的设置被输出到在所述加密处理部中顺序执行的回合计算执行单元;
并且其中,通过对所述多个回合密钥或所述回合密钥配置数据进行分类来设置多个组,并且执行与所述回合计算执行单元对应的密钥提供序列的控制以使得对每个组不同。
11.一种在加密处理装置中执行加密处理的程序,所述程序包括:
加密处理步骤,其中,加密处理部被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及
密钥安排步骤,其中,密钥安排部被配置成将回合密钥输出到所述加密处理部中的回合计算执行单元;
其中,所述密钥安排部是替换型密钥安排部,所述替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据;
并且其中,所述多个回合密钥或根据所述回合密钥配置数据的组合生成的多个回合密钥以使得不重复恒定序列的设置被输出到在所述加密处理部中顺序执行的回合计算执行单元;
并且其中,通过对所述多个回合密钥或所述回合密钥配置数据进行分类来设置多个组,并且执行与所述回合计算执行单元对应的密钥提供序列的控制以使得对每个组不同。
12.根据权利要求1所述的加密处理装置,具有由所述加密处理部和所述密钥安排部构成的一般化Feistel结构。
13.根据权利要求1所述的加密处理装置,具有由所述加密处理部和所述密钥安排部构成的具有4个系列的一般化Feistel结构。
14.根据权利要求1所述的加密处理装置,具有由所述加密处理部和所述密钥安排部构成的类型2一般化Feistel结构。
15.一种信息处理装置,包括:
处理器,被配置成执行程序;
存储器,被配置成存储所述程序;
加密处理部,被配置成将要进行数据处理的数据的配置位划分成多行并输入,并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算;以及
密钥安排部,被配置成将回合密钥输出到所述加密处理部中的回合计算执行单元;
其中,所述密钥安排部是替换型密钥安排部,所述替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据;
并且其中,所述多个回合密钥或根据所述回合密钥配置数据的组合生成的多个回合密钥被输出到在所述加密处理部中顺序执行的回合计算执行单元,以使得不重复恒定序列;
并且其中,通过对所述多个回合密钥或所述回合密钥配置数据进行分类来设置多个组,并且执行与所述回合计算执行单元对应的密钥提供序列的控制以使得对每个组不同。

加密处理装置、加密处理方法和程序.pdf_第1页
第1页 / 共75页
加密处理装置、加密处理方法和程序.pdf_第2页
第2页 / 共75页
加密处理装置、加密处理方法和程序.pdf_第3页
第3页 / 共75页
点击查看更多>>
资源描述

《加密处理装置、加密处理方法和程序.pdf》由会员分享,可在线阅读,更多相关《加密处理装置、加密处理方法和程序.pdf(75页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103621007 A (43)申请公布日 2014.03.05 CN 103621007 A (21)申请号 201280014184.6 (22)申请日 2012.02.20 2011-069185 2011.03.28 JP 2011-207705 2011.09.22 JP H04L 9/06(2006.01) G09C 1/00(2006.01) (71)申请人 索尼公司 地址 日本东京都 (72)发明人 渋谷香士 三津田敦司 秋下彻 五十部孝典 白井太三 樋渡玄良 (74)专利代理机构 北京集佳知识产权代理有限 公司 11227 代理人 王萍 李春晖 (5。

2、4) 发明名称 加密处理装置、 加密处理方法和程序 (57) 摘要 为了实现由于对回合密钥提供的控制而非常 安全的加密处理装置, 本发明的一个方面包括 : 加密处理单元, 其将要进行数据处理的数据的配 置位划分成多行并且然后进行输入, 然后对各行 数据重复执行应用回合函数的数据转换处理作 为回合运算 ; 以及密钥安排单元, 其将回合密钥 输出到加密处理单元中的回合运算执行单元。密 钥安排单元是替换型密钥安排单元, 其将先前保 存的秘密密钥划分成多个单位并生成多个回合密 钥, 并且密钥安排单元以不存在固定序列重复的 设置将所生成的多个回合密钥输出到在加密处理 单元中顺序地执行的回合运算执行单元。。

3、由于所 述结构, 实现了非常安全并且对相关密钥攻击或 类似攻击具有强抵抗性的加密处理配置。 (30)优先权数据 (85)PCT国际申请进入国家阶段日 2013.09.18 (86)PCT国际申请的申请数据 PCT/JP2012/053933 2012.02.20 (87)PCT国际申请的公布数据 WO2012/132623 JA 2012.10.04 (51)Int.Cl. 权利要求书 2 页 说明书 27 页 附图 43 页 按照条约第 19 条修改的权利要求书 2 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书27页 附图43页 按照条约第19条修改。

4、的权利要求书2页 (10)申请公布号 CN 103621007 A CN 103621007 A 1/2 页 2 1. 一种加密处理装置, 包括 : 加密处理部, 被配置成将要进行数据处理的数据的配置位划分成多行并输入, 并且对 各行数据重复执行应用回合函数的数据转换处理作为回合计算 ; 以及 密钥安排部, 被配置成将回合密钥输出到所述加密处理部中的回合计算执行单元 ; 其中, 所述密钥安排部是替换型密钥安排部, 所述替换型密钥安排部被配置成通过将 预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据 ; 并且其中, 所述多个回合密钥或根据所述回合密钥配置数据的组合生成的多个回。

5、合密 钥被输出到在所述加密处理部中顺序执行的回合计算执行单元, 以使得不重复恒定序列。 2. 根据权利要求 1 所述的加密处理装置, 其中, 所述密钥安排部以关于所述回合计算 执行单元的多个回合为单位而改变与所述回合计算执行单元对应的所述多个回合密钥的 输入序列。 3.根据权利要求1所述的加密处理装置, 其中, 所述加密处理部包括 : F函数执行单元, 被配置成输入被划分成多行的数据并且包括非线性转换处理和线性转换处理 ; 以及计算单 元, 被配置成执行对所述 F 函数执行单元的输出应用回合密钥的计算。 4. 根据权利要求 1 所述的加密处理装置, 其中, 所述密钥安排部将预先存储的秘密密 钥。

6、划分成多个部分, 并且生成位数与输入到所述回合计算执行单元的回合密钥相同的多个 回合密钥。 5. 根据权利要求 1 所述的加密处理装置, 其中, 所述密钥安排部将预先存储的秘密密 钥划分成多个部分并生成位数小于输入到所述回合计算执行单元的回合密钥的多个回合 密钥, 并且执行所述多个回合密钥配置数据的多个组合, 并生成位数与输入到所述回合计 算执行单元的回合密钥相同的回合密钥。 6. 根据权利要求 1 所述的加密处理装置, 其中, 所述密钥安排部关于在所述加密处理 部中顺序地执行的回合计算执行单元, 并列输出被并行地应用于所述回合计算执行单元的 多个回合密钥。 7. 根据权利要求 1 所述的加密。

7、处理装置, 其中, 所述密钥安排部包括至少一个选择器, 所述至少一个选择器被配置成执行与所述回合计算执行单元对应的密钥选择提供处理。 8. 根据权利要求 1 所述的加密处理装置, 其中, 所述密钥安排部通过对所述多个回合 密钥或所述回合密钥配置数据进行分类来设置多个组, 并且以所设置的组为单位来执行与 所述回合计算执行单元对应的密钥提供序列的控制处理。 9. 根据权利要求 8 所述的加密处理装置, 其中, 所述密钥安排部包括以所述组为单位 的选择器。 10. 根据权利要求 1 所述的加密处理装置, 其中, 所述加密处理部执行用于将作为输入 数据的明文转换为密文的加密处理, 或执行用于将作为所述。

8、输入数据的密文转换为明文的 解密处理。 11. 一种要在加密处理装置中执行的加密处理方法, 所述加密处理方法包括 : 加密处理步骤, 其中, 加密处理部被配置成将要进行数据处理的数据的配置位划分成 多行并输入, 并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算 ; 以及 密钥安排步骤, 其中, 密钥安排部被配置成将回合密钥输出到所述加密处理部中的回 合计算执行单元 ; 权 利 要 求 书 CN 103621007 A 2 2/2 页 3 其中, 所述密钥安排部是替换型密钥安排部, 所述替换型密钥安排部被配置成通过将 预先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数。

9、据 ; 并且其中, 所述多个回合密钥或根据所述回合密钥配置数据的组合生成的多个回合密 钥以使得不重复恒定序列的设置被输出到在所述加密处理部中顺序执行的回合计算执行 单元。 12. 一种在加密处理装置中执行加密处理的程序, 所述程序包括 : 加密处理步骤, 其中, 加密处理部被配置成将要进行数据处理的数据的配置位划分成 多行并输入, 并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算 ; 以及 密钥安排步骤, 其中, 密钥安排部被配置成将回合密钥输出到所述加密处理部中的回 合计算执行单元 ; 其中, 所述密钥安排部是替换型密钥安排部, 所述替换型密钥安排部被配置成通过将 预先存储的秘密。

10、密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据 ; 并且其中, 所述多个回合密钥或根据所述回合密钥配置数据的组合生成的多个回合密 钥以使得不重复恒定序列的设置被输出到在所述加密处理部中顺序执行的回合计算执行 单元。 权 利 要 求 书 CN 103621007 A 3 1/27 页 4 加密处理装置、 加密处理方法和程序 技术领域 0001 本公开涉及一种加密处理装置、 加密处理方法和程序。 更具体地, 这涉及用于执行 共享密钥加密的加密处理装置、 加密处理方法和程序。 背景技术 0002 随着信息社会继续发展, 用于安全地保护所使用的信息的信息安全技术的必要性 增加。信息安全技术的一。

11、种配置元素是加密技术, 并且各种产品和系统当前在使用加密技 术。 0003 尽管存在各种类型的加密处理算法, 但是基本技术之一称为共享密钥块加密。根 据共享密钥块加密, 用于加密的密钥和用于解密的密钥是共享项。在加密处理和解密处理 中, 根据这些共享密钥生成多个密钥, 并且以具有特定块单位 (诸如 64 位、 128 位、 256 位等) 的块数据单位重复执行数据转换处理。 0004 作为先前美国标准的 DES(数据加密标准) 和作为当前美国标准的 AES(高级加密 标准) 已知为代表性的共享密钥块加密算法。继续提出其它各种共享密钥块加密, 并且索尼 公司在 2007 年提出的 CLEFIA 。

12、也是共享密钥块加密。 0005 这些种类的共享密钥块加密算法主要配置有 : 加密处理部, 包括用于重复地执行 输入数据的转换的回合函数执行单元 ; 以及密钥安排部, 用于生成要在关于回合函数单元 的各个回合处施加的回合密钥。 密钥安排部首先基于作为秘密密钥的主密钥 (master key) 而生成位数增加的扩展密钥, 并且基于所生成的扩展密钥而生成要在关于加密处理部的各 个回合函数单元处施加的回合密钥 (secondary key) 。 0006 用于重复地执行包括线性转换单元和非线性转换单元的回合函数的配置被认为 是这些种类的算法的具体配置。代表性的结构包括例如 Feistel 结构和一般化。

13、 Feistel 结 构。Feistel 结构和一般化 Feistel 结构包括下述结构 : 其通过重复包括作为数据转换函 数的 F 函数的简单回合函数而将明文转换成密文。由 F 函数执行线性转换处理和非线性转 换处理。此外, NPL1 和 NPL2 是公开了应用 Feistel 结构的加密处理的文献的示例。 0007 相反, 正涌现各种新的技术, 诸如不法地执行加密算法的分析或密钥的分析以执 行密码分析的技术。这种技术的一个示例是相关密钥攻击。尽管考虑了各种对策来处理这 些种类的攻击, 当前状态是这些对策是不够的。 0008 引用列表 0009 非专利文献 0010 NPL1:K.Nyber。

14、g,“Generalized Feistel Networks“,ASIACRYPT96,SpringerVerl ag,1996,pp.91-104. 0011 NPL2:Yuliang Zheng,Tsutomu Matsumoto,Hideki Imai:On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses. CRYPTO1989:461-480. 0012 NPL3:索尼公司,“The 128-bit Blockcipher CLEFIA Algor。

15、ithm Specification 说 明 书 CN 103621007 A 4 2/27 页 5 “,Revision1.0,2007. 0013 NPL4:Aoki,Ichikawa,Kanda,Matsui,Moriai,Nakajima,Tokita,“128-bit Block Encryption Camellia Algorithm Specification“,Version2.0,2001. 0014 NPL5:GOST 28147-89:Encryption,Decryption,and Message Authentication Code(MAC)Algorithms。

16、,RFC5830. 0015 NPL6:3rd Generation Partnership Project,Technical Specification Group Services and System Aspects,3G Security,Specification of the 3GPP Confidentiality and Integrity Algorithms;Document2:KASUMI Specification,V9.0.0,2009. 发明内容 0016 技术问题 0017 本公开是考虑到例如先前描述的情形的结果, 并且目的是提供具有高安全性水平 的加密处理装置。

17、、 加密处理方法和程序, 其使得诸如相关密钥攻击的不法密码分析是困难 的。 0018 问题的解决方案 0019 本公开的第一方面是一种加密处理装置, 其包括 : 0020 加密处理部, 被配置成将要进行数据处理的数据的配置位划分成多行并输入, 并 且对各行数据重复执行应用回合函数的数据转换处理作为回合计算 ; 以及 0021 密钥安排部, 被配置成将回合密钥输出到加密处理部中的回合计算执行单元 ; 0022 其中, 密钥安排部是替换型密钥安排部, 该替换型密钥安排部被配置成通过将预 先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据 ; 0023 并且其中, 多个回合密钥或者根。

18、据回合密钥配置数据的组合生成的多个回合密钥 被输出到在加密处理部中顺序地执行的回合计算执行单元, 以使得不重复恒定的序列。 0024 关于根据本公开的加密处理装置的实施例, 密钥安排部以关于回合计算执行单元 的多个回合为单位而改变与回合计算执行单元对应的多个回合密钥的输入序列。 0025 关于根据本公开的加密处理装置的实施例, 加密处理部包括 : F 函数执行单元, 被 配置成输入被划分成多行的数据并且包括非线性转换处理和线性转换处理 ; 以及计算单 元, 被配置成执行对 F 函数执行单元的输出应用回合密钥的计算。 0026 关于根据本公开的加密处理装置的实施例, 密钥安排部将预先存储的秘密密。

19、钥划 分成多个部分, 并且生成位数与输入到回合计算执行单元的回合密钥相同的多个回合密 钥。 0027 关于根据本公开的加密处理装置的实施例, 密钥安排部将预先存储的秘密密钥划 分成多个部分并生成位数比输入到回合计算执行单元的回合密钥小的多个回合密钥, 并且 执行多个回合密钥配置数据的多个组合, 并生成位数与输入到回合计算执行单元的回合密 钥相同的回合密钥。 0028 关于根据本公开的加密处理装置的实施例, 密钥安排部关于在加密处理部中顺序 地执行的回合计算执行单元, 并列输出被并行地应用于回合计算执行单元的多个回合密 钥。 说 明 书 CN 103621007 A 5 3/27 页 6 002。

20、9 关于根据本公开的加密处理装置的实施例, 密钥安排部包括至少一个选择器, 该 至少一个选择器被配置成执行与回合计算执行单元对应的密钥选择提供处理。 0030 关于根据本公开的加密处理装置的实施例, 密钥安排部通过对多个回合密钥或回 合密钥配置数据进行分类来设置多个组, 并且以所设置的组为单位来执行与回合计算执行 单元对应的密钥提供序列的控制处理。 0031 关于根据本公开的加密处理装置的实施例, 密钥安排部包括以组为单位的选择 器。 0032 关于根据本公开的加密处理装置的实施例, 加密处理部执行用于将作为输入数据 的明文转换为密文的加密处理, 或执行用于将作为输入数据的密文转换为明文的解密。

21、处 理。 0033 此外, 本公开的第二方面是一种要在加密处理装置中执行的加密处理方法, 该加 密处理方法包括 : 0034 加密处理步骤, 其中, 加密处理部被配置成将要进行数据处理的数据的配置位划 分成多行并输入, 并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算 ; 以及 0035 密钥安排步骤, 其中, 密钥安排部被配置成将回合密钥输出到加密处理部中的回 合计算执行单元 ; 0036 其中, 密钥安排部是替换型密钥安排部, 该替换型密钥安排部被配置成通过将预 先存储的秘密密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据 ; 0037 并且其中, 多个回合密钥或者根据回。

22、合密钥配置数据的组合生成的多个回合密钥 以使得不重复恒定的序列的设置被输出到在加密处理部中顺序地执行的回合计算执行单 元。 0038 此外, 本公开的第三方面是用于在加密处理装置中执行加密处理的程序, 该程序 包括 : 0039 加密处理步骤, 其中, 加密处理部被配置成将要进行数据处理的数据的配置位划 分成多行并输入, 并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算 ; 以及 0040 密钥安排步骤, 其中, 密钥安排部被配置成将回合密钥输出到加密处理部中的回 合计算执行单元 ; 0041 其中, 密钥安排部是替换型密钥安排部, 该替换型密钥安排部被配置成通过将预 先存储的秘密。

23、密钥划分成多个部分而生成多个回合密钥或回合密钥配置数据 ; 0042 并且其中, 多个回合密钥或者根据回合密钥配置数据的组合生成的多个回合密钥 以使得不重复恒定的序列的设置被输出到在加密处理部中顺序地执行的回合计算执行单 元。 0043 此外, 根据本公开的程序是例如通过例如记录介质而被提供到能够执行各种程序 代码的信息处理装置或计算机系统的程序。 通过利用信息处理装置或计算机系统中的程序 执行单元执行这种程序而通过程序实现处理。 0044 本公开的其它目的、 特征和优点将通过基于稍后描述的本发明的实施例和附图的 详细描述而变得清楚。 此外, 关于本说明书的系统是多个装置的逻辑组合配置, 因此。

24、装置的 说 明 书 CN 103621007 A 6 4/27 页 7 各种配置不限于容纳在同一物理单元内。 0045 本发明的有利效果 0046 根据本公开的实施例, 通过提供对回合密钥的控制来实现具有高安全性水平的加 密处理装置。 0047 具体地, 包括 : 加密处理部, 被配置成将要进行数据处理的数据的配置位划分成多 行并输入, 并且对各行数据重复执行应用回合函数的数据转换处理作为回合计算 ; 以及密 钥安排部, 被配置成将回合密钥输出到加密处理部中的回合计算执行单元 ; 其中, 密钥安排 部是替换型密钥安排部, 该替换型密钥安排部被配置成通过将预先存储的秘密密钥划分成 多个部分而生成。

25、多个回合密钥或回合密钥配置数据 ; 并且其中, 多个回合密钥被输出到在 加密处理部中顺序地执行的回合计算执行单元, 以使得不重复恒定的序列。 根据本配置, 实 现了对例如重复密钥攻击或其它攻击具有高抵抗水平的、 具有高安全性水平的加密处理配 置。 附图说明 0048 图 1 是描述与 k 位的密钥长度对应的 n 位共享密钥块加密算法的图。 0049 图 2 是描述与图 1 所示的对应于 k 位的密钥长度的 n 位共享密钥块加密算法对应 的解密算法的图。 0050 图 3 是描述密钥安排部与数据加密部之间的关系的图。 0051 图 4 是描述数据加密部的示例配置的图。 0052 图 5 是描述 。

26、SPN 结构回合函数的示例的图。 0053 图 6 是描述 Feistel 结构回合函数的示例的图。 0054 图 7 是描述扩展 Feistel 结构的示例的图。 0055 图 8 是描述扩展 Feistel 结构的示例的图。 0056 图 9 是描述非线性转换单元的示例配置的图。 0057 图 10 是描述线性转换处理单元的示例配置的图。 0058 图 11 是描述密钥安排部 (扩展密钥生成单元) 的图。 0059 图 12 是描述密钥安排部 (扩展密钥生成单元) 的图。 0060 图 13 是描述块加密 GOST 的示例配置的图。 0061 图 14 是描述作为 GOST 数据结构的 F。

27、eistel 结构的图。 0062 图 15 是描述可以提供任意秘密密钥差别 的攻击的图。 0063 图 16 是描述如下情况的图 : 其中, 当存在替换型密钥安排部时, 每个回合密钥差 别 i以每 m 位被划分成秘密密钥差别 。 0064 图 17 是描述通过提供平均差别 (d, d) 而使得 F 函数的输入差别变为零的图。 0065 图 18 是描述类型 2 一般化 Feistel 结构的示例的图。 0066 图 19 是描述 F 函数之后的 XOR(异或) 的示例配置的图。 0067 图 20 是描述 F 函数之后的 XOR 的示例配置的图。 0068 图 21 是描述如下示例配置的图 。

28、: 其中, 当密钥是 2n 位时, 秘密密钥 K 以每 (n/2) 位被划分成四个相等部分, 并且在每四个回合进行更换 (shuffle) 的同时被提供。 0069 图 22 是描述如下示例配置的图 : 其中, 秘密密钥 K 以每 (n/4) 位被划分成八个相 说 明 书 CN 103621007 A 7 5/27 页 8 等部分, 并且在每四个回合进行更换的同时提供两个 (n/4) 位的部分。 0070 图 23 是描述如下示例配置的图 : 其中, 当长度是 4n 位时, 秘密密钥 K 以每 (n/2) 位被划分成八个相等部分, 并且在每八个回合进行更换的同时被提供。 0071 图 24 是。

29、描述如下示例配置的图 : 其中, 当密钥是 2n 位时, 秘密密钥 K 以每 (n/4) 位被划分成八个相等部分, 并且在每四个回合进行更换的同时提供两个 (n/4) 位的部分。 0072 图 25 是描述如下示例配置的图 : 其中, 秘密密钥以每 (n/4) 位被划分成八个相等 部分, 其中, 这八个相等部分中的四个在左侧 F 函数的回合密钥 RKr, 0中使用, 并且剩余四个 在右侧 F 函数的回合密钥 RKr, 1中使用。 0073 图 26 是描述如下模型的图 : 其中, 具有 4 个数据行的一般化 Feistel 结构中的循 环移位被改变为回合置换 (具有 4 个数据行的一般化 Fe。

30、istel 结构 +) 。 0074 图 27 是描述关于具有 4 个数据行的一般化 Feistel 结构, 应用与图 25 类似的更 换技术的示例的图。 0075 图 28 是示出当秘密密钥是 (5n/4) 位并且一个回合所需的回合密钥是 (n/2) 位时, 密钥安排部的配置方法的图。 0076 图 29 是描述当简单按顺序输入回合密钥时的示例配置的图。 0077 图 30 是描述当简单按顺序输入回合密钥时的示例配置的图。 0078 图 31 是描述对于具有一般化 Feistel 结构的 n 位块加密, 使用与一个回合对应的 回合密钥的配置的图, 其中该一般化 Feistel 结构具有划分数。

31、为 d 的 d 个数据行。 0079 图 32 是描述如下示例配置的图 : 其中, 秘密密钥是 n 位, 通过将 n 位秘密密钥划 分成四个相等部分而生成 n/4 位的回合密钥, 并且这些回合密钥对于每个回合一次输入两 个。 0080 图 33 是描述如下示例配置的图 : 其中, 秘密密钥是 (5/4) n 位, 通过将 n 位的秘密 密钥划分成五个相等部分而生成 n/4 位的回合密钥, 并且这些回合密钥对于每个回合一次 输入两个。 0081 图 34 是描述如下示例配置的图 : 其中, 秘密密钥是 n 位, 通过将 (5/4) n 位的秘密 密钥划分成五个相等部分而生成 n/4 位的回合密钥。

32、, 并且这些回合密钥对于每个回合一次 输入两个。 0082 图 35 是描述如下示例配置的图 : 其中, 以多个回合为单位改变密钥选择序列。 0083 图 36 是描述被设置为使得以四个回合为单位执行的替换处理每次均不同的回合 密钥提供的示例配置的图。 0084 图 37 是描述如下示例配置的图 : 其中, 以多个回合为单位改变密钥选择序列。 0085 图 38 是描述如下示例配置的图 : 其中, 每三个回合执行替换, 并且在三个回合中 使用六个密钥。 0086 图 39 是描述如下示例配置的图 : 其中, 以多个回合为单位改变密钥选择序列。 0087 图 40 是描述作为选择器的回合密钥提供。

33、配置的图。 0088 图 41 是描述作为选择器的回合密钥提供配置的图。 0089 图 42 是描述作为选择器的回合密钥提供配置的图。 0090 图 43 是示出作为加密处理装置的 IC 模块 700 的示例配置的图。 说 明 书 CN 103621007 A 8 6/27 页 9 具体实施方式 0091 在下文中, 将参照附图详细描述与本公开有关的加密处理装置、 加密处理方法和 程序。将根据以下项进行描述。 0092 1. 共享密钥块加密概况 0093 2. 密钥安排部的配置和处理概况 0094 3. 关于密钥安排部的攻击和对这些攻击的先前对策的示例 0095 4. 可以获得相对于相关密钥攻。

34、击的安全性的密钥安排部的替换类型 0096 5. 密钥安排部的密钥替换类型的各种配置示例 (变型) 0097 6. 加密处理装置的配置示例 0098 7. 本公开的配置的结论 0099 1. 共享密钥块加密概况 0100 首先, 将描述共享密钥块加密的概况。 0101 (1-1. 共享密钥块加密) 0102 以下定义规定哪些在此表示共享密钥块加密 (下文中, 块加密) 。 0103 块加密获得作为输入的明文 P 和密钥 K, 并且输出密文 C。明文和密文的位长称为 块大小, 其被记作 n。n 是作为通常针对每种块加密算法预先确定的一个值的任意整数值。 块长度是 n 的块加密的这种情况有时称为 。

35、n 位块加密。 0104 密钥的位长被表示为 k。密钥具有任意整数值。共享密钥块加密算法可以支持一 个或多个密钥大小。例如, 对于某种块加密算法 A, 块大小是 n=128, 因此支持密钥大小为 k=128、 k=192 或 k=256 的配置是可能的。 0105 明文 P : n 位 0106 密文 C : n 位 0107 密钥 K : k 位 0108 图 1 示出了与 k 位的密钥长度对应的 n 位共享密钥块加密算法 E 的图。 0109 与加密算法 E 对应的解密算法 D 可以被定义为加密算法 E 的逆函数 E-1, 其接收作 为输入的密文 C 和密钥 K 并且输出明文 P。图 2 。

36、示出了与图 1 所示的加密算法 E 对应的解 密算法 D 的图。 0110 (1-2. 内部配置) 0111 考虑作为被划分成两个部分的块加密。一个是 “密钥安排部” , 密钥 K 被输入到该 “密钥安排部” , 并且该 “密钥安排部” 通过根据某些先前确定的步骤扩展位长而输出扩展密 钥 K (位长 k ) , 另一个是 “数据加密部” , 该 “数据加密部” 接收明文 P 和从密钥安排部扩 展的密钥 K , 执行数据转换, 并且输出密文 C。 0112 在图 3 中示出了这两个部分之间的关系。 0113 (1-3. 数据加密部) 0114 在以下实施例中使用的数据加密部可以被划分成称为回合函。

37、数的处理单位。 回合 函数接收两个单位的数据作为输入, 在内部进行处理, 并且输出一个单位的数据。 输入数据 的一部分是当前被加密的 n 位数据, 其导致来自对于某个回合的回合函数的输出被提供作 为下一回合的输入的配置。 输入数据的其它部分用作从密钥安排器输出的扩展密钥的一部 分的数据, 并且该密钥数据被称为回合密钥。另外, 回合函数的总数被称为总回合数, 并且 说 明 书 CN 103621007 A 9 7/27 页 10 是对于每种加密算法预先确定的值。这里, 总回合数被表示为 R。 0115 当从数据加密部的输入侧来看时, 其中, 第一回合的输入数据被指定为 X1, 在第 i 回合的回。

38、合函数中输入的数据被指定为 Xi, 并且回合密钥被指定为 RKi, 数据加密部的概况 如图 4 所示。 0116 (1-4. 回合函数) 0117 回合函数根据块加密算法而可以具有各种形式。 回合函数可以通过由该加密算法 (结构) 采用的结构来分类。这里作为示例所使用的典型结构是 SPN 结构、 Feistel 结构和 扩展 Feistel 结构。 0118 (A) SPN 结构回合函数 0119 该结构对回合密钥和所有 n 位输入数据应用线性转换处理、 非线性转换和 XOR 计 算。每个计算的顺序不是特别确定的。图 5 示出了 SPN 结构回合函数的示例。 0120 (B) Feistel 。

39、结构 0121 n 位输入数据被划分成 n/2 位数据的两个单位。以该数据的一个部分和回合密钥 作为输入来应用函数 (F 函数) , 并且对输出和数据的另一部分进行 XOR 计算。对该数据的 两侧进行更换的结果变为输出数据。尽管存在 F 函数的各种类型的内部配置, 但是这些基 本上与具有与回合密钥数据的 XOR 计算、 非线性计算和线性转换的组合的 SPN 结构类似地 来实现。图 6 示出了 Feistel 结构回合函数的示例。 0122 (C) 扩展 Feistel 结构 0123 关于Feistel结构的等于两个的数据划分数被扩展为具有扩展Feistel结构的三 个或更多个划分的格式。如果。

40、划分数被表示为 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、 1。

41、8 和 20 示出了具有 4 个数据行的一般化 Feistel 结构。 0128 (1-5. 非线性转换处理单元) 0129 对于非线性转换处理单元, 实现成本趋向于随着输入数据的大小增加而增加。为 了避开这一点, 使用了多种配置 : 其中, 相应数据被划分成多个单位, 并且对该数据进行非 线性转换。例如, 当输入大小被指定为 ms 位时, 这些配置以每 s 位划分 m 个数据单位, 并且 对输入和输出是s位的该数据执行非线性转换。 这些s位的单位中的非线性转换称为S盒。 图 9 示出了示例。 0130 (1-6. 线性转换处理单元) 0131 线性转换处理单元可以被定义为考虑其性质的矩阵。 。

42、矩阵的元素一般可以以各种 方式 (诸如 GF(28) 的体元素和 GF(2) 的元素) 来表示。图 10 示出了由 mm 矩阵定义的线 性转换处理单元的示例, 其将 ms 位的输入和输出定义为 GF(2S)。 0132 2. 密钥安排部的配置和处理概况 0133 在描述本公开的加密处理之前, 将描述作为初步配置的密钥安排部的配置和处理 说 明 书 CN 103621007 A 10 8/27 页 11 概况。 0134 密钥安排部是如图 11 所示的函数, 其 (扩展密钥生成单元) 输入 k 位的秘密密钥 K 并且通过某种确定的转换生成 k 位扩展密钥 (回合密钥) K 。 0135 一般地,。

43、 k1) 的设置, 配置可执行改变密钥选择序列的处理, 而不执行多 于两次密钥替换。 0450 例如, 图 33 所示的密钥提供处理序列和图 34 所示的密钥提供处理序列是完全相 同的。 0451 也就是说, 前五个回合 : 关于 R1 至 R5, 按以下序列输入和应用两个回合密钥。 0452 回合 R1 : 回合密钥 K1 和回合密钥 K2 0453 回合 R2 : 回合密钥 K3 和回合密钥 K4 0454 回合 R3 : 回合密钥 K5 和回合密钥 K5 说 明 书 CN 103621007 A 24 22/27 页 25 0455 回合 R4 : 回合密钥 K2 和回合密钥 K3 04。

44、56 回合 R5 : 回合密钥 K3 和回合密钥 K4 0457 接下来的五个回合 : 关于 R6 至 R10, 按类似序列输入和应用两个回合密钥。 0458 另外, 取代对所划分的密钥提供顺序进行更换并将其按顺序输入到回合函数中作 为密钥替换处理, 可以通过以多个回合为单位改变选择顺序而获得完全相同的效果。 例如, 先前参照图 24 描述的回合密钥提供配置和图 35 所示的密钥提供处理序列是完全相同的。 0459 也就是说, 前四个回合 : 关于 R1 至 R4, 按以下序列输入和应用两个回合密钥。 0460 回合 R1 : 回合密钥 K1 和回合密钥 K2 0461 回合 R2 : 回合密。

45、钥 K3 和回合密钥 K4 0462 回合 R3 : 回合密钥 K5 和回合密钥 K6 0463 回合 R4 : 回合密钥 K7 和回合密钥 K8 0464 接下来的四个回合 : 关于 R5 至 R8, 按以下序列输入和应用两个回合密钥 : 0465 回合 R5 : 回合密钥 K5 和回合密钥 K1 0466 回合 R6 : 回合密钥 K2 和回合密钥 K6 0467 回合 R7 : 回合密钥 K7 和回合密钥 K3 0468 回合 R8 : 回合密钥 K4 和回合密钥 K8 0469 接下来的四个回合 : 关于 R9 至 R12, 按以下序列输入和应用两个回合密钥 : 0470 回合 R9 。

46、: 回合密钥 K7 和回合密钥 K5 0471 回合 R10 : 回合密钥 K1 和回合密钥 K3 0472 回合 R11 : 回合密钥 K4 和回合密钥 K2 0473 回合 R12 : 回合密钥 K6 和回合密钥 K8 0474 以此方式, 参照图 24 描述的回合密钥提供配置和图 35 所示的密钥提供处理序列 是在每个单位应用不同的回合密钥输入序列的配置, 其中, 一个单位是四个回合。 0475 (多种类型的密钥替换) 0476 根据先前参照图 24 描述的配置, 当密钥长度是 2n 位并且被划分成八个相等部分 时, 每四个回合执行相同形式的密钥替换。 0477 相反, 以四个回合为单位。

47、执行的替换处理可被设置为每次为不同的形式, 诸如例 如图 36 所示的。 0478 以下是根据图 36 所示的配置的密钥提供序列。前四个回合 : 关于 R1 至 R4, 按以 下序列输入和应用两个回合密钥。 0479 回合 R1 : 回合密钥 K1 和回合密钥 K2 0480 回合 R2 : 回合密钥 K3 和回合密钥 K4 0481 回合 R3 : 回合密钥 K5 和回合密钥 K6 0482 回合 R4 : 回合密钥 K7 和回合密钥 K8 0483 接下来的四个回合 : 关于 R5 至 R8, 按以下序列输入和应用两个回合密钥 : 0484 回合 R5 : 回合密钥 K5 和回合密钥 K1。

48、 0485 回合 R6 : 回合密钥 K2 和回合密钥 K6 0486 回合 R7 : 回合密钥 K7 和回合密钥 K3 0487 回合 R8 : 回合密钥 K4 和回合密钥 K8 说 明 书 CN 103621007 A 25 23/27 页 26 0488 接下来的四个回合 : 关于 R9 至 R12, 按以下序列输入和应用两个回合密钥 : 0489 回合 R9 : 回合密钥 K8 和回合密钥 K5 0490 回合 R10 : 回合密钥 K7 和回合密钥 K3 0491 回合 R11 : 回合密钥 K1 和回合密钥 K2 0492 回合 R12 : 回合密钥 K4 和回合密钥 K6 0493 以此方式, 直到第 1 回合至第 4 回合和第 5 回合至第 8 回合, 图 36 所示的密钥提 供序列与图 24 所示的密钥提供序列相同, 但是序列从第 9 回合开始不同。 0494 这是由于尽管关于图 24 所示的设置由替换型密钥安排部执行的密钥替换 (也就 是说, 密钥更换处理) 是以 4 个回合为单位以相同设置执行的配置, 但是根据图 36 所示的配 置, 替换型密钥安排部执行的密钥替换 (也就是说, 密钥更换处理) 以4个回合为单。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1