密码学简介(二)

散列函数

散列函数,也叫杂凑函数,实际就是哈希(Hash)函数,“散列函数”是信息安全领域惯用的译法。

不论从概念还是从形式上看,它跟数据结构课程上讲的哈希函数的确如出一辙:基于任意输入都产生定长的输出,且好的散列函数值域会分布得尽量平均。

然而,信息安全领域使用的散列函数却有着诸多安全方面的要求。像针对字符串的每个字节不断乘以一个素数并取模的那种哈希函数,在数据结构领域用于构造关联数组已经相当好了,但在信息安全领域却远远不合格。除任意输入,定长输出之外,信息安全领域中使用的散列函数还有以下要求(设H是散列函数):

(1)单向性:已知内容(常称为“报文”)x,计算h = H(x)相对容易;而已知散列值h1,要寻找给定的内容x1,使H(x1) = h1则非常困难;

(2)抗冲突性:已知报文x,寻找另外一个报文y,使得H(x) = H(y)非常困难。最好能做到:随便找一对x,y,使H(x) = H(y)都非常困难。一般前者称为弱抗冲突性,后者称为强抗冲突性。

此外,一个好的散列函数也应该具有本文(一)中曾经提到的“雪崩效应”。

常见的散列函数包括MD5,SHA系列等。

MD5可针对任意输入产生128bit(16字节)的输出。SHA是一组散列函数的统称,包括SHA-0、SHA-1、SHA-2等,产生160到512bit之间的散列值。

<
  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值