ComSec作业六:Hash

在这里插入图片描述

11.1

需求描述
输入长度可变 H H H 可应用于任意大小的数据块
输出长度固定 H H H 产生定长的输出
效率对任意给定的 x x x,计算$ H ( x ) $比较容易,用硬件和软件均可实现
单向性对于任意给定的Hash吗h,找到满足 $H ( y ) = h $的 y y y在计算上是不可行的
弱抗碰撞性对于任何给定的分块 x x x,找到满足 y ≠ x y y\neq xy y=xy
强抗碰撞性找到任何满足 H ( x ) = H ( y ) 的偶对 (x,y) 在计算上是不可行的
伪随机性$H $的输出满足伪随机测试标准

11.2

  • 弱抗碰撞是指攻击者对于给定的Hash值h,试图找到 H ( y ) = h H ( y ) = h H(y)=h y y y。对于 m m m位的Hash值,穷举攻击的规模是 2 m 2^m 2m
  • 强抗碰撞是指攻击者试图找到两个消息或数据块x和y,满足$H ( x ) = H ( y ) $。对于m位的Hash值,穷举攻击的规模是 2 m / 2 2^{m/2} 2m/2

11.3

哈希函数使用压缩函数作为基本构建块,并涉及压缩函数的重复应用。
压缩函数将一个较长的,固定长度的输入处理后,返回一个较短的,固定长度的输出。Hash函数是一种基于压缩函数的不断重复压缩输入的分组和前次压缩处理的结果,直到整个消息都被压缩完毕的过程,最后的输出作为整个消息的hash值。在这个过程中,任意长度的消息被破碎成一定长度的分组,分组的长度取决于压缩函数。并且出于安全的角度,对未填充满的分组作相应的数据填充。

11.7

海绵结构与其他迭代Hash函数的结构相似,在海绵函数中,输入消息被分块为固定长度的分组。每个分组逐次作为每轮迭代的输入,同时上轮迭代的输出也反馈至下轮的迭代中,最终产生一组输出块。海绵函数允许输入长度和输出长度都可变。

海绵函数由三组参数定义:
$f = $内部函数,用于处理每轮的输入分组
$r = $输入分组的位长度,称其为位速率(bitrate)
$pad = $填充算法

海绵函数允许输入长度和输出长度都可变,可以用于设计Hash函数、伪随机数发生器、以及其他密码函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值