块加密装置、块加密方法以及程序转让专利
申请号 : CN201080048501.7
文献号 : CN102598574B
文献日 : 2014-12-17
发明人 : 峰松一彦
申请人 : 日本电气株式会社
摘要 :
权利要求 :
1.一种块加密装置,该块加密装置具备:
输入部,其将输入的数据分割为k个块,k为8的倍数;
R轮份的Feistel置换部,其使用按每个轮生成的加密密钥,将上述块的2个作为1组来实施Feistel置换并进行输出;
块置换部,其将从上述Feistel置换部输出的k个块作为输入,使用下述函数colorfunc(u,v)=vt if u1=ut,colorfunc(u,v)=vt+1 if u1≠ut来进行由第一颜色的矢线表示从偶数块向奇数块的迁移并由第二颜色的矢线表示从奇数块向偶数块的迁移的、相当于实施了对称的Type2分支涂色的2值de Bruiin图t表的块置换,其中,上述de Bruijn图表具有上述分割数k的一半的2 个节点,上述函数colorfunc(u,v)用于决定从节点u=(u1,u2,……,ut)朝向节点v=(v1,v2,……,vt)的矢线的颜色,并且,上述节点u和v由t比特的系列来表示,且t>2;以及输出部,其将通过上述R轮份的Feistel置换部和配置在上述Feistel置换部之间的R-1轮份的块置换部进行了置换后的k个块结合起来进行输出。
2.根据权利要求1所述的块加密装置,其中,
上述块置换部,以从上述Feistel置换部输出的中间文Y=(y[0],……,y[k-1])为输入,应用以下置换:
0~k-1的块编号i不足k/2,且:
·i mod 4为0的情况下,y[i]=z[2i+1 mod k]·i mod 4为1的情况下,y[i]=z[2i mod k]·i mod 4为2的情况下,y[i]=z[2i+3 mod k]·i mod 4为3的情况下,y[i]=z[2i-2 mod k]上述块编号i为k/2以上,且
·i mod 4为0的情况下,y[i]=z[2i+3 mod k]·i mod 4为1的情况下,y[i]=z[2i-2 mod k]·i mod 4为2的情况下,y[i]=z[2i+1 mod k]·i mod 4为3的情况下,y[i]=z[2i mod k]来输出轮输出文Z=(z[0],……z[k-1])。
3.根据权利要求1所述的块加密装置,其中,
取代相当于实施了上述对称的Type2分支涂色的2值de Bruijn图表的块置换,进行以下块置换:第一块置换,对从上述Feistel置换部输出的中间文Y,按每4个块交替进行右循环置换和左循环置换;和第二块置换,通过对第一块置换的结果进行k个块整体的右或左2个块循环置换,来输出轮输出文Z=(z[0],……,z[k-1])。
4.根据权利要求1所述的块加密装置,其中,
上述块的分割数k为8的倍数,
取代相当于实施了上述对称的Type2分支涂色的2值de Bruijn图表的块置换,上述块置换部进行以下块置换:针对具有上述分割数k的一半的4w个节点的次数2的图表的各节点(j=0,1,……,w-1),使第一颜色的矢线从节点4j向节点4j+1迁移,使第二颜色的矢线从节点4j向节点
4j+2迁移,
使第一颜色的矢线从节点4j+1向节点4j+2迁移,使第二颜色的矢线从节点4j+1向节点4j+1迁移,使第一颜色的矢线从节点4j+2向节点4(j+1)迁移,使第二颜色的矢线从节点4j+2向节点4j+3迁移,使第一颜色的矢线从节点4j+3向节点4j+3迁移,使第二颜色的矢线从节点4j+3向节点4(j+1)迁移,如上述这样的由第一颜色的矢线表示从偶数块向奇数块的迁移并由第二颜色的矢线表示从奇数块向偶数块的迁移的、相当于实施了对称的Type2分支涂色的有向图表的块置换,其中,w>1,节点4w视为节点0。
5.一种块加密方法,该块加密方法包括:
将输入的数据分割为k个块的步骤,k为8的倍数;
进行R轮份的Feistel置换的步骤,其中,在该R轮份的Feistel置换中,使用按每个轮生成的加密密钥,将上述块的2个作为1组来实施Feistel置换并进行输出;
进行块置换的步骤,在该块置换的步骤中,将由上述Feistel置换而输出的k个块作为输入,使用下述函数colorfunc(u,v)=vt if u1=ut,colorfunc(u,v)=vt+1 if u1≠ut来进行由第一颜色的矢线表示从偶数块向奇数块的迁移并由第二颜色的矢线表示从奇数块向偶数块的迁移的、相当于实施了对称的Type2分支涂色的2值de Bruijn图t表的块置换,其中,上述de Bruijn图表具有上述分割数k的一半的2 个节点,上述函数colorfunc(u,v)用于决定从节点u=(u1,u2,……,ut)朝向节点v=(v1,v2,……,vt)的矢线的颜色,并且,上述节点u和v由t比特的系列来表示,且t>2;以及将通过上述R轮份的Feistel置换和配置在上述Feistel置换之间的R-1轮份的块置换进行了置换后的k个块结合起来进行输出的步骤。
6.根据权利要求5所述的块加密方法,其中,
在上述进行块置换的步骤中,以上述Feistel置换后的中间文Y=(y[0],……,y[k-1])为输入,应用以下置换:
0~k-1的块编号i不足k/2,且:
·i mod 4为0的情况下,y[i]=z[2i+1 mod k]·i mod 4为1的情况下,y[i]=z[2i mod k]·i mod 4为2的情况下,y[i]=z[2i+3 mod k]·i mod 4为3的情况下,y[i]=z[2i-2 mod k]上述块编号i为k/2以上,且
·i mod 4为0的情况下,y[i]=z[2i+3 mod k]·i mod 4为1的情况下,y[i]=z[2i-2 mod k]·i mod 4为2的情况下,y[i]=z[2i+1 mod k]·i mod 4为3的情况下,y[i]=z[2i mod k]来输出轮输出文Z=(z[0],……z[k-1])。
7.根据权利要求5所述的块加密方法,其中,
取代相当于实施了上述对称的Type2分支涂色的2值de Bruijn图表的块置换,进行以下块置换:第一块置换,对上述Feistel置换后的中间文Y,按每4个块交替进行右循环置换和左循环置换;和第二块置换,通过对第一块置换的结果进行k个块整体的右或左2个块循环置换,来输出轮输出文Z=(z[0],……,z[k-1])。
8.根据权利要求5所述的块加密方法,其中,
上述块的分割数k为8的倍数,
取代相当于实施了上述对称的Type2分支涂色的2值de Bruijn图表的块置换,进行以下块置换:针对具有上述分割数k的一半的4w个节点的次数2的图表的各节点(j=0,1,……,w-1),使第一颜色的矢线从节点4j向节点4j+1迁移,使第二颜色的矢线从节点4j向节点
4j+2迁移,
使第一颜色的矢线从节点4j+1向节点4j+2迁移,使第二颜色的矢线从节点4j+1向节点4j+1迁移,使第一颜色的矢线从节点4j+2向节点4(j+1)迁移,使第二颜色的矢线从节点4j+2向节点4j+3迁移,使第一颜色的矢线从节点4j+3向节点4j+3迁移,使第二颜色的矢线从节点4j+3向节点4(j+1)迁移,如上述这样的由第一颜色的矢线表示从偶数块向奇数块的迁移并由第二颜色的矢线表示从奇数块向偶数块的迁移的、相当于实施了对称的Type2分支涂色的有向图表的块置换,其中,w>1,节点4w视为节点0。
说明书 :
块加密装置、块加密方法以及程序
技术领域
背景技术
置换的方式。Feistel置换是,将1个块分割为2个单位块A、B,将1个单位块A输入称为
轮函数(round function)的带密钥的非线性函数,并将该输出与另1个单位块B进行异或
逻辑处理后,对单位块进行调换(swap)并输出。具体来说,对于轮函数F和输入(A,B)来
输出(B,B+F(A))。将该处理重复规定的轮数,从而生成密文。
Network:GFN)。
m[1],......,m[k-1])的情况下,GFN的1轮为Block Perm(m[0],F(m[0])+m[1],m[2],
F(m[2])+m[3],......,F(m[k-2]),F(m[k-2])+m[k-1])。F是轮函数,Block Perm是将k
单位块的位置进行相互调换的置换。
及强伪随机置换的技术。
机数E(x)作为密文的置换,强伪随机置换E是在E满足伪随机置换的条件的基础上,针对
E的逆置换D,根据任意的密文y来输出不重复的伪随机数D(y)作为明文的置换。强伪随
机置换意味着具有现实中所能期望的最强安全性的块加密。
强伪随机性的块加密,所以,满足伪随机性和强伪随机性的轮数大多作为评价实际的块加
密的构造的好坏的指标来使用。
的轮数,能够削减整体的计算量。
线性变换,但是由于Mix在基于n比特块单位的调换的置换下,不存在不同的块间的影响,
所以无论什么情况下都不是安全的。Mix必须是包含块间的线性运算在内的置换。
单位的调换的置换Armenian Shuffle组合起来,从而实现Mix。
Encryption,14 International Workshop,FSE 2007,Luxembourg,Luxembourg,
March 16-28,2007,Revised Selected Papers.Lecture Notes in Computer Science
4593Springer 2007,pp.181-195.
Cryptology-ASIACRYPT 2000,6 International Conference on the Theory and
Application of Cryptology and Information Security,Kyoto,Japan,December
3-7,2000,Proceedings.Lecture Notes in Computer Science 1976Springer 2000,
pp.289-302.
Standards and Technology,1999.(http://csrc.nist.gov/archive/aes/round1/conf2/
papers/massey.pdf)
发明内容
(c[0],c[1],......,c[k-1])。考虑用k/2个节点的图表来表现该置换Block Perm。设s
=(k/2)-1,则对图表中的节点附加node=0,......,s这样的标签。设节点i表示m[2i]
和m[2i+1]。如非专利文献3“SAFER”所记载的那样,一般,如果Block Perm是进出次数2
即进入哪个节点的分支的数目都是2个,且从哪个节点出来的分支的数目也是2个的有向
图表,则通过对该图表上的分支进行4色涂色可以唯一进行表现。
为方便起见用粗线表示)分别各1个,并且进入各节点的2个分支也分别以红色和蓝色各
1个这样来进行涂色。以下,将这样的分支的涂色规则称为“Type-2分支涂色:(类型2分
支涂色)”。
分支与块m[2i’+1]向块c[2j’]的置换建立对应,由此,唯一确定置换Block Perm。相反,在给出Block Perm时,也唯一确定相对应的有向图表。另外,在非专利文献3“SAFER”中
将未进行分支涂色 的进出次数2的有向图表称为基干(skeleton)。
值(如果d=3,则为000,001,......,111)来表现。设某d比特值x的下位d-1比特值
为LS(x),用||来表示比特系列彼此之间的连接,则在图表B(d)中,从节点x出来的2个分
支进入节点LS(x)||0和LS(x)||1。
值。
Armenian Shuffle组合起来来实现线性变换Mix,由此表示某种安全性评价的最佳化。
法以及程序。
t
表的块置换,其中,上述de Bruijn图表具有上述分割数k的一半的2 个(其中,t>2)节
点,上述函数colorfunc(u,v)用于决定从节点u=(u1,u2,......,ut)朝向节点v=(v1,v2,......,vt)的矢线的颜色,并且,上述节点u和v由t比特的系列来表示;以及输出部,其将上述置换后的k个块结合起来进行输出。
置换的步骤,在该块置换的步骤中,使用上述函数colorfunc(u,v)来进行由第一颜色的矢线表示从偶数块向奇数块的迁移并由第二颜色的矢线表示从奇数块向偶数块的迁移的、相
当于实施了对称的Type2分支涂色的2值de Bruijn图表的块置换,其中,上述de Bruijn
t
图表具有上述分割数k的一半的2 个(其中,t>2)节点,上述函数colorfunc(u,v)用
于决定从节点u=(u1,u2,......,ut)朝向节点v=(v1,v2,......,vt)的矢线的颜色,并且,上述节点u和v由t比特的系列来表示;以及将上述置换后的k个块结合起来进行输出
的步骤。本方法与对输入的数据进行暗解码的计算机这样的特定的机械结合。
换中,使用按每个轮生成的加密密钥,将上述块的2个作为1组来实施Feistel置换;使用
上述函数colorfunc(u,v)来进行由第一颜色的矢线表示从偶数块向奇数块的迁移并由第
二颜色的矢线表示从奇数块向偶数块的迁移的、相当于实施了对称的Type2分支涂色 的2
值de Bruijn图表的块置换的处理,其中,上述de Bruijn图表具有上述分割数k的一半的
t
2 个(其中,t>2)节点,上述函数colorfunc(u,v)用于决定从节点u=(u1,u2,......,ut)朝向节点v=(v1,v2,......,vt)的矢线的颜色,并且,上述节点u和v由t比特的系
列来表示;以及将上述置换后的k个块结合起来进行输出的处理。另外,该程序能够记录在计算机能读取的存储介质中。也就是说,本发明能够具体实现为计算机程序产品。
与循环置换的情况相比,由涂色为2颜色的图表来表现的情况下的充分距离(sufficient
distance:SD)将大幅变小。
附图说明
(第一颜色)相对应)。
具体实施方式
t
的置换,其中,上述de Bruijn图表具有上述分割数k的一半的2 个(其中,t>2)节点,上
述函数colorfunc(u,v)决定从节点u=(u1,u2,......,ut)朝向节点v=(v1,v2,......,vt)的矢线的颜色,并且,上述节点u和v由t比特的系列来表示;以及输出部,其将上述置
换后的k个块结合起来进行输出。
行以下置换来实现,其中,该置换为,
构成的图。
作而实现。
(y[0],y[1],......,y[k-1])。
导出。各轮函数的密钥可以根据进行处理的第偶数个块的索引(0,2,......,k-2)的不同而不同,也可以相同。
(细线,采用二进制表现为0),针对从右附加1的节点LS(u)||1,将分支的颜色涂色为蓝色
(粗线,采用二进制表现为1)。
(3-1)
(2 )节点的图表来表现。并且,设s=(k/2)-1,对图表中的节点附加node=0,1,2,3这
样的标签。如果通过上述函数colorfunc来给出将分支涂色为2颜色的有向图表,则使从
某节点m朝向某节点n的红色的分支(细线)与从偶数块y[2m]向奇数块z[2n+1]的置换
建立对应,使从节点m’朝向节点n’的蓝色的分支与从奇数块y[2m’+1]向偶数块z[2n’]
的置换建立对应,由此唯一确定置换Block Perm。例如,图3[CdB0]的块置换与图1的块置
换部103中的块置换相对应,能够采用{1,2,7,4,3,0,5,6}这样的列表来表现。
为Z(图4的步骤A6)。
文X的内容更新为Z。重复该处理R轮次得到密文。另外,在本实施方式中,最后的第R轮
的块置换部103对安全性没有帮助,所以省略。因此,Feistel置换部102执行总计R次处
理,块置换部103执行总计R-1次处理。
为16(t=3(相当于k=16))、32(t=4(相当于k=32))的情况下的实施了对称的Type2
分支涂色的2值de Bruijn图表。
7[Perm1]中示出的置换部。
性所需的最小轮数。
幅地减少这一情况而导出的。这里,如果充分距离(SD)为N,则在节点间的移动中,最初的
2次和最后的移动为蓝色,并且不连续使用红色的分支,也就是说,在遵照红色的分支进行移动的下一个必需使用蓝色的分支这样的规则时,在任意的2个节点间存在长度N的路径。
换增大某程度k时,在置换和逆置换双方中,达成2Log k的充分距离。具体来说,基于图6
所示的2值de Bruijn图表B(4)的k=32的块置换虽然达成充分距离8,但是在另一方
面,在k=32的循环置换中,成为充分距离32。由此,能够将伪随机性和强伪随机性所需的轮数分别削减大约65%。
图表)。此外,在非专利文献3中,没有记载怎样才能够一般性地得到实施了对称的type2
分支涂色的2值deBruijn图表,而只是使8节点的2值de Bruijn图表B(3)稍稍变形并
进行适当的涂色,从而提出了分割数k=16的置换即Armenian Shuffle。
小。
更,所以将以下其不同点作为中心进行说明。
(以下,称为“步进石(stepping stone)图表(SS)”)来进行定义。
应。)。
环置换。
强伪随机性所需的最小轮数。这是根据能够将前面说明的充分距离(SD)设为大约k/4+8
的情况导出的。具体来说,基于步进石图表(SS)的k=32的置换达成充分距离16,另一方
面,在k=32的循环置换中,成为充分距离32。