Hash函数 |
您所在的位置:网站首页 › 哈希函数消息认证过程 › Hash函数 |
概念
将任意长度的输入变换为固定长度的输出的不可逆的单向密码体制 Hash函数在数字签名和消息完整性检测等方面有着广泛的应用 Hash函数同时是一种具有压缩特性的单向函数,其像通常称为数字指纹,消息摘要或散列值。 散列值的生成过程可以表示为 h = H(M) 其中h是定长的散列值,H是哈希函数,M是一个变长消息 散列函数主要用于消息认证和数字签名,因此需要具备以下特性 H可应用于任意长度的消息 H产生定长的输出 对任意给定的消息x,计算H(x)比较容易,用硬件软件均可实现 单向性:对任意给定的散列值h,找到满足H(x) = h 的x在计算上是不可行的 抗弱碰撞性:对任意给定的消息x,找到x != y并且H(x) = H(y)的消息y在计算上是不可行的 抗强碰撞性:找到任何满足H(x) = H(y) 的偶对(x,y)在计算上是不可行的性质2是哈希函数的基本特性,性质3是哈希函数的可用性,性质4,5,6是哈希函数为满足不同应用而需具备的基本安全性质 应用 数字签名由于消息散列值通常比消息本身短的多,因此对消息散列值进行数字签名在处理上比对消息本身进行签名要高效的多。 生成程序或文档的数字指纹hash函数可以用来保证消息的完整性。首先,通过哈希函数变换得到程序或文档的散列值,然后将散列值存储,对程序或文档进行定时的检测,与已存储的散列值进行比较,以此来实现完整性验证。 用于安全传输和用户口令用于保存用户登陆口令(密码),通过用户id及口令生成相应的散列值,然后保存,用户在进入系统输入口令时,生成散列值与存储的散列值进行比较,这样可以确保用户口令不被管理员或攻击者获取到 哈希算法![]() 消息认证的作用主要有两个:一个是验证信息来源的真实性,一般称之为信息源认证;另一个是验证消息的完整性 消息认证码(MAC)利用消息和双放共享的密钥通过认证函数来生成一个固定长度的短数据块,并将该数据块附加在消息后 比如发送方A和接收方B共享密钥K,若A向B发送消息M,则MAC = C(K,M) ,其中C是认证函数,MAC是消息认证码 ![]() (a)为明文传输,(b)为先计算MAC后,将MAC数据块附加在M信息后进行加密传输,(c)为先将M进行加密,再生成MAC,并附在消息块后进行传输 基于哈希的消息认证码HMAC是实际应用中使用最多的方案,如SSL就使用HMAC来实现消息认证功能 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |