IOS开发者学习笔记

图解密码技术学习-第七章 单向散列函数

2016-09-11  本文已影响180人  JMasche

为什么要有单向散列函数

什么是单向散列函数

单向散列值的性质

相关术语

因为单向散列函数里有很多术语指的其实是一个东西,所以有必要做出说明。

单向散列函数的实际应用

单向散列函数使用的算法

单向散列函数SHA-1

整体流程

  1. 填充
    将消息填充处理,使其长度为512比特的整数倍。
  2. 计算W0 - W79
    将每个512比特分组计算得出80个32比特的值(W0 - W79)。
  3. 分组处理
    针对输入分组进行80个步骤的处理,计算出5个32比特的值(A-E),作为SHA-1的内部状态。
  4. 单步处理

详细处理过程

说实话太复杂,暂时也用不上,此处省略。。。。。很多字。

对单向散列函数的攻击

  1. 攻击的概率计算涉及到生日攻击方法。
    • 所谓的生日攻击就是:随机选出N个人,其中任意两个人的生日相同的概率大于二分之一,请问N为多少?
  1. 将生日问题转化成一般问题:假设一年为Y天,那么N人中生日相同的概率大于二分之一,N至少为多少?
    当Y非常大时,结果类似等于 N = 根号Y
  2. 找出任意散列值相同的文件的概率大于二分之一,其中Y天数就是散列值的组合数量。假设散列值的比特长度为M ,则N = 2的M次方开平方根。
  3. 假设160比特的散列值,暴力破解需要2160次,而生日攻击只需要280次。

单向散列函数无法解决的问题

单向散列函数只能解决篡改问题,无法解决伪装问题。也就是说此技术无法判断出,发送消息的人是否是正确的。

上一篇 下一篇

猜你喜欢

热点阅读