admin 管理员组文章数量: 1086019
2024年6月19日发(作者:lambda function)
第21卷第2期 北京电子科技学院学报
2013年6月
V01.21No.2
Journal of Beijing Electronic Science and Technology Institute
Jun.2013
SHA一3获胜算法:Keccak评析
李梦东 邵鹏林2李小龙
1.北京电子科技学院信息安全系 北京100070
2.西安电子科技大学通信工程学院西安710070
摘 要:2012年10月初NIST确定SHA一3获胜算法为Keccak,为此该算法目前成为人们关注的
焦点。本文对Keccak算法的实现过程、性能特点、获胜理由和攻击现状等进行了简评。通过这
些介绍可达到初步了解Keccak的目的。
关键词:Hash函数;SHA一3;KeccakSponge
中图分类号-TN918 文献标识码:A 文章编号:1672—464X(2013)06一l8—06
众所周知,由于王小云及其后继者对于MD 认证加密等功能。
一
5、SHA一1等标准算法的攻击,美国NIST于
以下简述了Keccak算法过程,分析了算法
2007年启动了类似1997年AES算法征集活动
安全性能、实现性能等方面,介绍了Keccak的获
的SHA一3算法竞选。经过五年的三轮筛选过
胜理由,并对当前针对keccak的攻击方法的现
程,NIST于2012年10月初宣布SHA一3竞选的
最终获胜者是Keccakl】 。NIST对于Keccak的
状进行了概述。
评价是:具有良好的安全性和实现性能,特别是
1 Keccak算法简述
与SHA一2完全不同的设计方式,可避免已有的
攻击方式,而且能够提供SHA一2不具备的一些
Keccak整体结构为Sponge结构_2 (见图
性能。
1),Sponge结构即是针对一个固定置换_厂的迭代
Keccak在迭代结构上采用的是Sponge结
过程。置换输入/输出的二进制串称为状态,其
构,它与传统的MD迭代结构很不同,依赖于一 长度b=r+e,其中r称为比特率,与输入消息块
个固定的大置换。这为算法提供了良好的实用
长度相同,该部分比特称为外部状态;e称为容
性和可证明安全性,理论上可以证明该结构在理
量,该部分比特称为内部状态。算法的初始状态
想模型下与随机预言是不可区分的。Keceak的
为全零(图1中用方形框表示)。Keccak规定b
置换是基于比特级的操作,实现简单,软件实现
=
25・2 ,Z:0,1,2,…,6,因此b有{25,50,
性能与SHA一2类似,而硬件实现性能非常优
异。整个算法具有较大的安全余量和良好的适
100,200,400,800,1600}共7种规模,在提交
应性。Sponge结构可以容易地调整安全强度和
SHA一3的Keccak算法中b=1600bit。Sponge
处理速度之间的平衡,很方便地产生较大和较小
结构分为吸收(abstracting)和挤压(squeezing)两
的输出值,并且可定义修改的链接模式用以提供
个阶段。在吸收阶段,输入消息经过填充,分为
基金项目:本项目为北京电子科技学院重点实验室项目支持。
作者简介:李梦东,男,教授,硕士生导师,主要研究领域为密码学与纠错编码。
第21卷 SHA一3获胜算法:Keccak评析李梦东邵鹏林李小龙 .19.
长度为r的各块P 一,P 一,P ,每块分别与各
次置换的输入状态的r长外部状态异或,而C长
内部状态保持不变,形成作为本次置换_厂的输
入。在挤压阶段,根据所需的输出长度,从各次置
换的输出中分别提取z 一, 各子串,连接后形
成算法输出。实际上Sponge结构可以产生任意
长度的输出。
图2 Keccak的状态数组表示方式
按照NIST要求,算法输出长度分为224、
256、384和512bit,Keccak算法的消息块长度r
是根据输出长度变化的:Keccak一512时消息块
长度r为576bit;Keccak一384时r为832bit;Kec—
cak一256时r为1088bit;Keccak一224时
为1152bit。
Keccak的填充方式为:首先添加一个1,之
后添加数个0,最后添加一个1,即填充方式为
10…01,其中0的个数应使填充后的长度是消息
分组长度的最小整数倍。
啡 峙 嗨* 噌童
吸收 挤压
籀
图1 Sponge结构
Keccak算法中置换-厂的输入表示为
5 5 2 的三维比特数组 ][Y][ ](见图
2),称为状态数组。当b=1600时,数组大小为
5 5 64(z=6)。为了方便,算法将该数组分为
slice(各5 5 1bit)、plane(各5:l:1 2 zbit)、
sheet(各1%5 2 zbit)、lane(各1%1:l:2lbit)、
rOW(各5 1 lbit)和column(各1 5:l=lbit)单
元。置换就是分别这些单元的各比特进行12+
2z轮迭代运算。
置换 可视为SP结构,每一轮迭代的轮函
数为5个变换的复合:R=‘。 。仃。P。0,它们
进行分别对三维数组的不同方向进行变换,以达
到混淆和扩散的目的。这5个变换分别是:
:a Ex 3 Ey 3[ ]+-一a Exl Ey 3[ ]+∑:_100[ 一
1]Ey ]Ez3+∑:_=0n[ +1]Ey ]E 一1]。这一
变换是将每比特附近的两列(column)比特之和
迭加到该比特上( 和Y的坐标都是模5的);
E 3 Ey ̄Ez]卜 ]Ey J 】
其中。 <24,满足(: //0'/=( )矩阵元
素为GF(5)中元素,且 =Y=0时t=一1。这一
变换是针对每个z方向的lane的比特循环移位;
7r:。c cy 十—。 y’ ,( )=( )( ,),
其中矩阵元素为GF(5)中元素。这一变换是针
对每个 —Y平面的slice的比特移位;
:0[ ]卜 ]+(0[ +1]+1)a Ex+2]这是
针对每个 方向的row的非线性运算,等效为5
5的S盒;
‘:0—0+RC[i,],这一变换是加轮常数RC,逐
比特进行,且每轮i,的轮常数不同。
2 Keccak性能分析
2.1迭代结构
Keccak采用的Sponge结构具有可证明安全
性和良好的适应性。与多数具有明显压缩函数
・
2O・ 北京电子科技学院学报 2013年
结构的算法不同,Sponge结构采用大状态的固
定置换。在假设置换是理想的情况下,可证明该
结构与随机预言是不可区分的(indiferentia—
ble),区分复杂度的下界为2 (c即容量,也称
1088bit,以达到原象安全。在进入第三轮后
Keccak简化了填充方式。
2.4软件实现性能
NIST根据两组数据进行软件性能评测 j:
(a)eBASH。它是测试一般目的计算机上的实
为安全参数)。这就保证了算法具有抵抗一般
性攻击(即结构上的攻击)的能力。这种可证明
性与第三轮其他几种候选算法类似,都是将算法
安全性归结于置换或压缩函数的安全性之上。
现性能,分别在AMD64、X86、ARM—NEON、32
一
bit RISC不同类型机器上进行,并对不同级别
的长消息和短消息进行测试,主要指标为Cycle/
与此同时Sponge结构可以输出任意长度,适用
能力较强。
2.2置换
Keccak的置换中运算都是比特级的运算
(即逻辑运算),这些运算可使截断差分、积分攻
击等不易发生,并且便于硬件实现。除了加常数
运算 以外,其他运算都具有平移不变性即对称
性,这使算法具有良好的适用性和实现性能。在
安全性上, 是唯一的非线性部件,为一个可逆
的.s盒,代数次数仅为2,这将便于分析差分和
线性特性,便于加入防护措施以防止差分能量攻
击。但其逆.s盒具有不同性质;0是为了实现
slice之间的扩散性;7r是为了打乱水平和垂直
方向的规律性;加常数 是为了打破整个置换的
对称性,保证各轮的变换不同和防止不动点。
2.3整体安全性能
Keccak具有较大的安全余量 ]。碰撞和近
似碰撞的结果最能反映杂凑算法的安全性,Kec
cak的24轮中(当时)只发现5轮的近似碰撞。
区分攻击能够反映算法随机性的性能,评选当时
仅发现Keccak的12轮区分器。而针对Keceak
的原象攻击方面仅有很少轮数且复杂性很高的
结果。Keccak用同一个置换产生所有输出长度
的摘要输出,好处是易于实现简便变型算法,但
是为保证安全性,消息分块要随输出长度变化,
而且摘要越长,执行速度越慢。进入第二轮后,
Keccak进行了一些修改:由轮数12+z增至12+
2l;224bit输出对应的消息块长度从1024bit增
到1152bit,256bit输出的从1024bit增到
byte。对于长消息的测试结果为:Keccak一256
属于中等水平,和SHA一2类似,但比不上
BLAKE一512和所有尺寸的Skein。Keccak一
512属于低档水平;对于短消息的测试结果:
Keccak一256和Keccak一512基本都属于中等水
平;(b)XBX。它是测试嵌人式微处理器上的性
能,包含了8种平台,测试指标同时考虑使用面
积(RAM和ROM的个数)和速度性能,结果为:
Keccak一256为中上等(BLAKE最好,Skein其
次),但Keccak一512属于下等。不过由于Kec.
cak算法特点,可以利用未来将普遍采用的矢量
旋转指令(vector rotate instructions)来提高Kec.
cak一512的速度。
2.5硬件实现性能
NIST采用了ASIC和FPGA两种测试平
台 ,测试指标主要为throughout/area。测试结
果表明:Keccak是五个第三轮候选算法中唯一
一
个超过SHA一2的,这表明它的硬件性能很
好,而且能量损耗最小,具有和SHA一2相同的
每比特能量消耗量。
2.6应用方面
Keccak可以方便地实现MAC;可以作为流
密码使用,输出长度可灵活变化 ;其duplexing
模式,可以实现伪随机数发生器和认证加密。
3 NIST选择Keccak的理由
3.1 Keccak具有较大的安全余量
这意味着出现实际有效的攻击的可能性很
小。在第三轮的五个候选算法中,关于Groestl、
第21卷 SHA一3获胜算法:Keccak评析李梦东邵鹏林李小龙 .21.
BLAKE和Skein的攻击文章最多,这一方面说
明:可能由于Groestl采用AES部件,BLAKE和
NIST接受,如此则可进一步提高Keccak的适用
性。另外Keccak认证加密模式是一个较好的附
加性能,这是Sponge构造的非常自然的扩展。 Skein采用SHA一2类似的ARX部件,研究者易
于分析;另一方面也说明对于这些算法的研究比
较深入。而针对Keccak的分析文章相对较少,
关于JH的最少 。截止到目前的分析表明:
4 Keccak的攻击现状
当Keccak成为SHA一3获胜者之后,必然
会引起更多的关注和分析。目前关于Keccak的
BLAKE、Keccak和Skein的安全余量较大,而
Groestl和JH相对而言安全余量较少(已出现全
攻击方式主要有:利用差分技术的碰撞攻击和部
轮JH和90%轮Groestl的区分攻击)。
虽然与BLAKE、Groestl和Skein相比,Kec.
cak的分析还不够深入,但它也接受了一定量的
分析。Keccak基本上是个全新的和与以往非常
不一样的算法,与SHA一2完全无关。而
BLAKE和Skein的部件使用与SHA一2类似的
ARX运算,因此人们怀疑SHA一2的分析工具
将来很可能用于它们。而Keccak的新颖结构和
运算则不存在这样的隐患。(但仍需要对其新
颖结构和比特级运算进行深入分析。)
3.2 Keccak具有可接受的软件性能和优异的硬
件性能
Keccak面向硬件的设计,完全基于简单的
比特级运算和扩散,使其具有良好的性能和实现
效率。Keccak的软件性能大致与SHA~2相仿,
在第三轮五个候选算法中属于中上等水平,但其
硬件性能则是最优秀的,比SHA一2好很多,不
需要SHA一2所需的32bit或者64bit加法或者
密钥扩展过程。而且Keccak提供了良好的性能
权衡能力,可视情况在安全性、实现性能和简便
变型等方面进行取舍。
3.3 Keccak的适应能力强
Keccak成为获胜者,得益于它的十分简单
轻巧的设计,和可用于广泛环境的适应能力。
Sponge扩展方式使之易于分析为提高性能而改
变消息分组长度所产生的对安全性影响问题,可
以扩展输出长度以适用于诸如RSA全域杂凑函
数等场合。Keccak也可以提供800比特置换,
若从安全角度再进行深入研究的话,则可被
分碰撞攻击;利用Biclique等技术的原象或第二
原象攻击;零和区分攻击和旋转区分攻击等。
d.1碰撞和近似碰撞攻击
I.Dinur等 从已有的2轮低重量的状态差
分开始,反向扩展1轮产生目标状态差分,再由
目标差分算法从初始值开始进行正向1轮扩展,
产生了4轮Keccak一224实际碰撞,在PC机上
仅用时2—3分钟,产生4轮的Keccak一256实
际碰撞用时15—30分钟;产生5轮的近似碰撞
(只差5、10bit)耗时几天时间。2013年,I.Dinur
等 又采用目标内部差分算法提高了上述结
果,对5轮的Keccak一256产生了碰撞攻击,复
杂度为2“ 。并结合squeeze攻击产生了3轮的
Keccak一512实际性攻击,产生了4轮Keccak一
384的碰撞,复杂度为2M 。
J.Daemen等 提出了有效产生给定重量的
Keccak—f[1600]的所有差分路径的方法。利用
计算机程序搜索得到了重量为36时3轮的所有
差分轨迹,确认了A.Duc等_ l找到的重量为32
的3轮轨迹是最轻的;指出6轮的轨迹中重量没
有小于74的。提出了一种新技术将变换的性
质和差分轨迹重量相关连,在为恒等映射时,采
用有效的状态表示方法,构建了in—kernel
轨迹。
4.2原象攻击
Naya—Plasencia等 采用中间相遇的方法,
提出了2轮Keccak一224和Keccak一256的原
象和第二原象攻击,时间复杂度为2”,存储复杂
度为2扣。这是一种可以实际实现的攻击。
・
22・ 北京电子科技学院学报
4.3区分攻击(随机性攻击)
C.Boura等 采用零和子集划分的方式对
Keccak进行了区分攻击。零和攻击可以看作积
体的算法规格说明等内容将随后公布。
Keccak作为SHA一3的获胜者,已经引起人
们更广泛的关注,对它的分析日益增多。Keccak
基于比特级的置换将会受到更为深入地研究,将
与基于ARX、基于字节型S盒的置换进行充分
分攻击的推广,即是利用输入和输出的和为零的
子集进行区分攻击。他们针对Keccak的17轮、
19轮和20轮置换产生了零和划分,尺寸(复杂
度)分别为2” 、2¨ 和2 。在[1O]中他们又
比较。Sponge结构的特点和进一步应用也会受
到同样关注。
提出了针对全轮Keccak置换的零和划分,复杂
度为2幅 。可以看到这种攻击的复杂性是很
大的。
A.Duc等 找到了Keccak目前最好的(重
量最轻的)5轮差分路径,针对0变换的零核特
性,利用unalignedrebound技术,构造了8轮区分
器,复杂度为2 钾。这比零和区分器的复杂度
小很多。这里所谓“unaligned”是指:Keccak不
像存在截断差分的AES那样容易处理rebound
过程,因为其1个活跃行经过1轮后会影响多个
slice。
P.Morawiecki等_】 采用旋转攻击方法,提
出了5轮Keccak的区分攻击,复杂度仅为2 ,
但是对于更多轮数则遇到了较大困难。另外,这
一
攻击方式与其他区分攻击不同之处在于:可以
产生4轮原象攻击,复杂度为理论值减少2 倍。
5结束语
NIST的SHA一3征集活动是杂凑函数研究
的一件大事,类似当年AES征集活动,它有力促
进了整个领域的设计和分析水平。
进入第三轮的五个算法都是很优秀的算法,
具有各自的优势和特点,例如BLAKE和Skein
的安全余量也较大,其软件实现性能是这些算法
中最为突出的。NIST综合考虑了算法的各方面
因素,最终选定了Keccak作为SHA一3标准。
Keccak能够获胜,不仅是由于其安全性能良好,
更重要的是因为其新颖的结构设计、优秀的整体
实现性能和良好的适应能力。作为SHA一3的
最终标准,NIST允许其进行一些微小改动,其具
参考文献:
[1]G.Bertoni,et al,The Keccak Reference,Januar-
Y,201 1,http://Keccak.noekeon.org.
[2]G.Bertoni,J.Daemen et al,Cryptographic
sponge functions,January,2011,http://
sponge.noekeon.org/.
[3]Shu—jen Chang,et al,Third—Round Repoa of
the SHA——3 Cryptographic Hash Algorithm Com--
petition,November,2012,http://dx.doi.org/
10.6028/NIST.IR.7896.
[4]I.Dinur,O.Dunkelman and A.Shamir,New at—
tacks on Keccak一224 and Keccak一256,FSE’
2012,2012.
[5]I.Dinur,O.Dunkelman and A.Shamir,Collision
Attacks on Up to 5 Rounds of SHA——3Using Gen—-
eralized Intema1 Differentials,FSE’2013,2013.
[6]A.Duc,J.Guo,T.Peyrn and L.Wei,Unaligned
Rebound Attack:Application to Keccak,FSE’
2012,2012.
[7]J.Daemen and G Van Assche,Differential Propa—
gation analysis of Kecaak,FSE’2012,2012.
[8]M.Naya—Plasencia,A.Reock,and W.Meier,
Practical Analysis of Reduced—Round Keccak,
INDOCRYPT 2011,2011.
[9]C.Boura and A.Canteaut,Zero—Sum Distin-
guishers for Iterated Permutations and Application
to Keccak—f and Hamsi一256,SAC’
2010,2010.
[10]C.Boura,A.Canteaut and C.De Canniere,
第21卷 SHA一3获胜算法:Keccak评析李梦东邵鹏林李小龙 ・23・
Higher—order differential properties of Keccak tational cryptanalysis of round—red
uced Kec—
and Luffa,FSE’2011,2011 cak,FSE’2013,2013
[1 1]P.Morawiecki,J.Pieprzykand M.Srebrny,Ro—
A Short Review
on SHA一3 Winner:Keccak
Li Mengdong
Shao Penglin。Li Xiaolong
1.Department of Information Security,Beijing Electronic Science and
Technology Institute,Beijing 100070,China;
2.School of Telecommunication Engineering,Xidian University,Xian,710071,China
Abstract:Abstract:Since NIST claimed Keccak was the winner of SHA一3 Competition on October
2,
2012;this algorithm has become the focus of attentions.In this paper a brief discussion is given on
the
algorithmic procedures,properties,winning advantages and security status about Keccak.Through the
analysis,we can have a better understanding of Keccak.
Keywords:Hash Function;SHA一3;Keccak;Sponge
(责任编辑:王曼珠)
版权声明:本文标题:SHA-3获胜算法:Keccak评析 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1718755520a727061.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论