加密第二节_散列算法

加密第二节_散列算法

本节内容

  1. 散列函数(HASH函数)
  2. HMAC技术(哈希信息认证代码技术)

散列函数(HASH函数)

主流的散列算法有MD5和SHA-1,其主要任务是验证数据的完整性,经过散列函数计算获得的结果叫作散列值,该散列值一般被称为数据的指纹web

散列算法特色算法

  1. 固定大小:散列函数能够接收任意大小数据,并输出固定大小散列值,MD5获得的散列值大小是128bit,SHA-1获得的散列值大小是160bit
  2. 雪崩效应:原始数据只要修改,计算获得的散列值将会发生巨大变化
  3. 单向:只可能从原始数据计算获得散列值,不可能从散列值恢复数据
  4. 冲突避免:几乎不能找到另一个数据和当前数据计算的散列值相同,所以散列函数能确保数据的惟一性

散列算法用途:安全

  • 认证;
  • 使用数字签名保障数据与文档的完整性;
  • IPSec和路由协议的验证

HMAC技术(哈希信息认证代码技术)

  • 增长一个KEY一同作HASH;
  • 须要双方预先知道这个KEY;
  • 在保障完整性的基础上实现了源认证;
  • 消除了HASH易受中间人攻击的问题;基于存在的HASH函数;

举例:
OSPF的认证,路由器1使用明文和KEY一同作散列,获得散列值,再将该散列值和明文一同发给路由器2,路由器2将明文和相同的KEY作散列运算,获得散列值,进行对比,实现源认证和信息的完整性。函数

MD5:性能

  • 普遍使用的HASH算法;
  • 单向;
  • 冲突避免;
  • 128bit固定输出;
  • 不建议在新的运用中使用;
  • SHA-1和SHA-2提供了更高的安全性

HASH/HMAC使用指南:
避免使用MD5,使用更加安全的SHA-1和SHA-2,从性能考虑能够使用MD5,保护用于HMAC的预共享密钥。加密

相关文章
相关标签/搜索