例 9 5.1Hash函数的概念
5.1 Hash函数的概念
Hash函数的概念 Hash函数的性质 迭代型Hash函数的一般结构
迭代型Hash函数的一般结构 Hash函数的概念 Hash函数的性质
Hash函数的概念 ·基本定义 ■哈希函数H是一公开函数:用于将任意长的消息m映射为较短 的、固定长度的一个值h(m。 。应用领域 ■数字签名 ■消息完整性检测
Hash函数的概念 基本定义 哈希函数H是一公开函数:用于将任意长的消息m映射为较短 的、固定长度的一个值h(m)。 应用领域 数字签名 消息完整性检测
Hash函数的性质 。Hash函数的目的是为需要认证的消息产生一个“数字指纹”。为 了能够实现对消息的认证,它必须具备以下性质: ()函数的输入可以是任意长;函数的输出是固定长。 (3)对任意给定的x,计算hc)比较容易。 (4)对任意给定的Hash值z,找到满足(x)=z的x在计算上是不可行 的—单向性(one-way)。 (⑤)已知x,找到y0yx)满足(y)=h(c)在计算上是不可行的一抗弱 碰撞性(weak collision resistance)。 (6)找到任意两个不同的输入x,y,使(y)=h(c)在计算上是不可行 的—抗强碰撞性(strong collision resistance)
Hash函数的性质 Hash函数的目的是为需要认证的消息产生一个“数字指纹”。为 了能够实现对消息的认证,它必须具备以下性质: (1)函数的输入可以是任意长;函数的输出是固定长。 (3)对任意给定的x,计算h(x)比较容易。 (4)对任意给定的Hash值z,找到满足h(x)=z的x在计算上是不可行 的——单向性(one-way)。 (5)已知x,找到y(y≠x)满足h(y)=h(x)在计算上是不可行的——抗弱 碰撞性(weak collision resistance)。 (6)找到任意两个不同的输入x, y,使h(y)=h(x)在计算上是不可行 的——抗强碰撞性(strong collision resistance)
Hash函数的性质 ●碰撞性 ■对于两个不同的消息x和y,如果它们的Hash值相同,则发生了 碰撞。 ■实际上,可能的消息是无限的,可能的Has值是有限的,不同 的消息会产生相同的Hash值,即碰撞是存在的。 。要求 ■不能按要求找到一个碰撞(计算安全)
Hash函数的性质 碰撞性 对于两个不同的消息x和y,如果它们的Hash值相同,则发生了 碰撞。 实际上,可能的消息是无限的,可能的Hash值是有限的,不同 的消息会产生相同的Hash值,即碰撞是存在的。 要求 不能按要求找到一个碰撞(计算安全)
Hash函数的性质 。Hash与加密的对比 Hello,world. NhbXBsZSBzZW50ZW5jZS A sample sentence to E B0byBzaG93IEVuY3J5cHR show encryption. pb24KsZSBzZ Hello,world. NhbXBsZSBzZW50ZW5jZS A sample sentence to B0byBzaG93IEVuY3J5cHR show encryption. pb24KsZSBzZ 加密是双向的,需要使用密钥 This is a clear text that can easily read without using 52f21cf7c7034a20 the key.The sentence is 17a21e17e061a863 longer than the text above. Hash是单向的,没有解hash
Hash函数的性质 Hash与加密的对比 Hello, world. A sample sentence to show encryption. E NhbXBsZSBzZW50ZW5jZS B0byBzaG93IEVuY3J5cHR pb24KsZSBzZ k Hello, world. A sample sentence to show encryption. D NhbXBsZSBzZW50ZW5jZS B0byBzaG93IEVuY3J5cHR pb24KsZSBzZ k 加密是双向的,需要使用密钥 h 52f21cf7c7034a20 17a21e17e061a863 This is a clear text that can easily read without using the key. The sentence is longer than the text above. • Hash是单向的,没有解hash
迭代型Hash函数的一般结构 。1979年,Merklez基于压缩函数f提出了一个Hash函数的一般结构。 ■函数的输入m被分为L个分组m,m1,,mL-1,每个分组的长度为 b比特。 ■如果最后一个分组的长度不够的话,需对其进行填充,最后一个 分组还包括消息m的长度值。 110 1m1 1mL-1 CV。=IW CV=CV-1,m-1),1≤iL h(m)=CVL
迭代型Hash函数的一般结构 1979年,Merkle基于压缩函数f提出了一个Hash函数的一般结构。 函数的输入m被分为L个分组m0 , m1 , …, mL-1,每个分组的长度为 b比特。 如果最后一个分组的长度不够的话,需对其进行填充,最后一个 分组还包括消息m的长度值。 CV0 =IV CVi =f(CVi-1 , mi-1 ), 1≤i≤L h(m)=CVL
迭代型Hash函数的一般结构 ·压缩函数f ■函数的输入:上一轮(第i1轮)输出的n比特值CV1一链接变量, 和在本轮(第轮)要输入的b比特消息分组。 ■函数的输出:为n比特值CV,CV又将作为下一轮的输入。 ■算法开始时还需要对链接变量指定一个比特长的初始值IV,最 后一轮输出的链接变量CV,就是最终产生的Hash值
迭代型Hash函数的一般结构 压缩函数f 函数的输入:上一轮(第i-1轮)输出的n比特值CVi-1——链接变量, 和在本轮(第i轮)要输入的b比特消息分组。 函数的输出:为n比特值CVi,CVi又将作为下一轮的输入。 算法开始时还需要对链接变量指定一个n比特长的初始值IV,最 后一轮输出的链接变量CVL就是最终产生的Hash值
例 9 5.2Hash函数MD5
5.2 Hash函数MD5
Hash函数MD5 网 9 算法描述 MD5压缩函数
MD5压缩函数 Hash函数MD5 算法描述