Hash函数分析方法综述

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Hash函数分析方法综述报告人:吴双信息安全国家重点实验室中科院软件所2010年12月21日主要内容Hash函数简介不依赖算法的通用方法针对结构的分析方法针对具体运算的分析方法展望Hash函数的定义Hash函数的概念来源于计算机学中的Hash表密码学中的Hash函数是将任意长度的消息压缩为固定长度摘要的函数,是密码学中重要的基本模块Thisisaninputtoacrypto-graphichashfunction.Theinputisaverylongstring,thatisreducedbythehashfunctiontoastringoffixedlength.Thereareadditionalsecurityconditions:itshouldbeveryhardtofindaninputhashingtoagivenvalue(apreimage)ortofindtwocollidinginputs(acollision).1A3FD4128A198FB3CA345932hHash函数简介Hash函数的定义Hash函数的安全要求抗原象抗第二原象抗碰撞Hash函数简介Hash函数的安全要求Hash函数的安全要求(n比特输出)?h(x)hxh(x)h?h(x’)h?h?==原象pre-image碰撞collision2n2n2n/2h(x’)h(x)h第二原象2ndpre-imageHash函数简介Hash函数的安全要求Hash函数的用途数字签名—破坏代数结构,抗碰撞,抗原象消息认证—伪随机性保护口令、确认保密信息—抗原象伪随机序列生成器(PRNG)、密钥生成函数(KDF)—伪随机性Hash函数简介Hash函数的用途对Hash函数的攻击寻找原象、第二原象可以进行伪造攻击(恢复密钥、伪造签名)寻找碰撞消息对可以进行欺诈攻击(代表不同意义的消息具有相同摘要)构造区分器伪随机性不够好会影响消息认证、密钥生成函数的安全性Hash函数简介对Hash函数的攻击主要内容Hash函数简介不依赖算法的通用方法针对结构的分析方法针对具体运算的分析方法展望穷举攻击这里指利用穷举的方法寻找某个函数的原象对给定y求m使得F(m)=y,若F()的值域为n比特二进制空间,复杂度为2n当n较小时,穷举是最直接有效的方法穷举攻击的优点:易并行处理(不可小视)当前,10万美元的硬件可以达到264的计算能力。成功案例:伪造X.509证书(MD5碰撞)适当的时候,可以将其他问题转化为原象问题不依赖算法的通用方法穷举攻击穷举攻击不依赖算法的通用方法穷举攻击M0M1Mi-1MiY0Y1Yj-1Yj生日攻击不依赖算法的通用方法生日攻击及其推广生日攻击Hash函数碰撞攻击的生日攻击界一般认为,对于n比特输出的理想Hash函数,碰撞攻击的复杂度上界为O(2n/2)对于随机选取的2n/2个消息,找到一对碰撞的概率较高,约0.39对于随机选取的2n+1/2个消息,找到一对碰撞的概率约0.63不依赖算法的通用方法生日攻击及其推广生日攻击生日攻击的时间空间复杂度随机选r=2n/2个消息,计算摘要并将摘要值作为索引存储(Hash表)。时间复杂度为r次Hash函数调用,r-1次查表,r个单元的存储空间因此时间和空间复杂度都是O(2n/2)空间复杂度O(1)的生日攻击利用Floyd链表找圈算法时间复杂度仍然是O(2n/2)不依赖算法的通用方法生日攻击及其推广H(x)xHcollision多碰撞攻击不依赖算法的通用方法生日攻击及其推广中间相遇技术问题:对于{0,1}n上的集合A、B,两者元素个数分别为r和s,问在这两个集合中找到一个公共元素的概率和复杂度是多少?将其中一个集合的元素建立Hash表,然后用另一个集合的元素去查表,找到公共元素的概率为rs/2n建表的时间和空间复杂度与集合大小相同,查表的时间复杂度与另一个集合大小相同于是中间相遇的时间复杂度为r+s,空间复杂度为min{r,s}不依赖算法的通用方法生日攻击及其推广中间相遇技术空间复杂度为O(1)的中间相遇攻击要求获取两个集合中一个元素的复杂度为O(1),如果这条不满足,则这种方法不成立同样是利用Floyd链表找圈算法不同的是,迭代函数利用一个固定算法根据输入计算出一个指示比特的值用来决定将输入映射到A集合还是B集合找到一个圈的入口,如果它的两个父节点的指示比特不同,则攻击成功(50%概率)时间复杂度为O(r+s)不依赖算法的通用方法生日攻击及其推广一般化生日攻击不依赖算法的通用方法生日攻击及其推广主要内容Hash函数简介不依赖算法的通用方法针对结构的分析方法针对具体运算的分析方法展望对MD结构的通用攻击MD结构简介针对结构的分析方法对MD结构的通用攻击H0M1FM2FMiFMnFHnM1M2Mi…………消息填充对MD结构的通用攻击长度扩展攻击在已碰撞的消息对后面增加消息块来构造新的碰撞对多碰撞攻击MD结构的多碰撞代价远远低于构造随机函数的多碰撞长消息第二原象攻击通过可扩展消息构造对长消息的第二原象攻击集群攻击攻击者选择摘要h,给定前缀P,攻击者构造出后缀S使得H(P||S)=h(指定前缀第二原象)木马消息攻击攻击者给定后缀S,被攻击者选择前缀P并计算h=H(P||S),攻击者得到h以后构造出P||S的第二原象针对结构的分析方法对MD结构的通用攻击主要内容Hash函数简介不依赖算法的通用方法针对结构的分析方法针对具体运算的分析方法展望差分分析介绍不考虑算法运算中的具体值,而是考虑两个不同值在运算的过程中,两者的异或差分的变化规律分析算法具体实现中使用的基本运算的差分特性来构造的攻击分析异或、模加、布尔函数、S盒等的差分传播特性针对具体运算的分析方法差分分析差分分析介绍差分路径的概念差分顺序传播的轨迹针对具体运算的分析方法差分分析压缩函数V0V1V2V3V4……Vn-1Vn压缩函数V’0V’1V’2V’3V’4……V’n-1V’nMM’=压缩函数……差分路径差分分析介绍压缩函数……差分路径针对具体运算的分析方法差分分析差分分析介绍针对具体运算的分析方法差分分析差分分析介绍如何理解独立性假设从数学上来讲,独立性假设是错误的密码学和数学区别:密码算法的攻击者关心的是什么?不是对概率和复杂度的精确计算,而是要进行实际的(practical)攻击精确计算概率太困难(密码算法都会破坏代数结构)对hash函数而言,目标是要找到碰撞对、原象因此在对概率和复杂度的计算上独立性假设是已知的最合理的假设,实验结果往往也和理论估计值接近只需要对目标算法的强度有一个大致的把握实际攻击是否能成功与概率计算的精确程度无关针对具体运算的分析方法差分分析比特级差分分析针对的对象:布尔函数、循环移位、模加、异或等。这些运算的差分特征的各比特之间具有一定的独立性对于布尔函数而言,它的差分特征各比特之间完全独立,因此分析一个比特的情况就足够了对于模加而言,由于进位的存在,比特差分之间有可能会互相影响针对具体运算的分析方法差分分析比特级差分分析针对具体运算的分析方法差分分析循环区分器针对具体运算的分析方法循环区分器字节级分析针对的对象:使用S盒、MDS扩散结构的字节级算法如AES等S盒具有差分均匀性,不存在高概率差分特征,可以抵抗传统的差分分析S盒使得差分特征比特之间的代数关系变得复杂,对代数攻击也有一定抵抗作用针对具体运算的分析方法差分分析字节级分析积分攻击考虑不同运算对各种集合的影响,而不考虑对单个值的影响截断差分将S盒的多个差分特征进行捆绑,作为截断差分特征,极大提高差分特征的概率反弹攻击利用S盒的差分特征预计算表,对截断差分路径进行拼接,并利用迭代状态和消息中的自由度找到满足连接段差分路径的解,再让截断差分路径从中间向两端传播针对具体运算的分析方法差分分析针对密钥扩展的攻击很多Hash函数可以看做是基于分组密码构造的,如MD4、MD5、SHA1等虽然它们并不是基于已经存在的分组密码构造的但是它们拥有与分组密码类似的结构具有类似密钥扩展的消息扩展针对具体运算的分析方法针对密钥扩展的攻击局部碰撞利用密钥扩展算法存在的周期特性轮数较少的局部碰撞路径可以利用密钥中差分出现的周期性进行传递对SHA0、SHA1的攻击中都使用了这种方法由于使用了5个迭代寄存器,SHA-0存在6轮局部碰撞路径利用周期性的消息扩展算法,局部碰撞需要的消息差分将重复出现,于是可以将若干局部碰撞组合得到整个算法的差分路径针对具体运算的分析方法针对密钥扩展的攻击连接-切割技术(spliceandcut)利用密钥扩展和迭代结构进行的原象攻击将迭代过程的首位相接,然后从特定部位断开,同时选择不同的消息字然后进行中间相遇成功地对多个基于分组密码的hash函数进行了理论上的原象攻击全轮MD5的原象攻击全轮Tiger的原象攻击针对具体运算的分析方法针对密钥扩展的攻击起点匹配点逆向处理密钥扩展的技巧首先假设各子密钥之间独立,求得它们的具体值以后再考虑它们之间是否满足扩展关系可以用来推导类AES结构的差分路径对MD5、SHA0、SHA1等的另一种原象攻击技术针对具体运算的分析方法针对密钥扩展的攻击主要内容Hash函数简介不依赖算法的通用方法针对结构的分析方法针对具体运算的分析方法展望展望SHA-3竞赛带动hash函数分析技术飞速革新反弹攻击、循环区分器、连接-切割技术等有效的分析手段都是这一时期提出未来的研究热点方向反弹攻击的改进和更广泛的应用布尔函数遭遗弃,ARX结构差分特性难以把握,需要更多更深入有效的研究分析各种新结构可能会带来的通用攻击方法谢谢

1 / 38
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功