文章横幅PC版
文章横幅iPad版
文章横幅手机版

哈希算法原理和用途

TIME:2018-09-27 14:28  click: 943 次 来源: 未知

1.数字签名

消息摘要是通过单向函数把随意长度的明文变换成确定长度的输出,该输出也叫做Hash数字签名值。不同的明文生成的摘要都不一样,而相同的明文它的摘要肯定是一致的。这样,摘要就成为明文是不是完整的“指纹”。

因消息摘要通常比消息本身小得多,所以对消息摘要操作数字签名在处理上比直接签名消息本身高效很多,所以数字签名一般是对消息摘要操作。

用于数字签名的Hash函数有以下属性。

1)给定消息M和对它的Hash值的私钥签名,不可能找到另外一个不同的消息M",使得它们的Hash值相同,也就是不可能有一样的签名。当有争议时,需向仲裁者提供的资料包括收到的消息M和签名S(M),从而可通过验证签名来证实确实发送过消息。

2)已知消息的Hash值Y,要伪造一个消息M使它的Hash值与Y相等在计算上是不行的。当出现争议时,需给仲裁者提供收到的消息M与签名Sig(M),从而可验证M是否是伪造的。

3)要找到两个消息使它们的Hash值一样是不行的。当存在争议时,需提供给仲裁者的是收到的消息M和签名Sig(M),从而可验证M是否是伪造的。

基于Hash函数的数字签名,其优点是:

·对Hash值进行签名可得到更短的签名;

·计算更快;

·更易管理签名,签名集中在一个分组中,不会存在多个分组签名。

2.生成程序或文档的“数字指纹”

Hash函数可把随意长度的输入变换为确定长度的输出,不一样的输入对应着不同的输出,因此可以基于Hah函数变换得到程序或文档的Hash值输出,即“数字指纹”。对比“数字指纹”与放在安全地方的原有“指纹”,可发现病毒或入侵者对程序或文档的修改。即用Hash函数生成数据的Hash值,并与保存的原有数值比较,如果相等,说明数据是完整的;否则,表明数据已被篡改过。这是为了确保数据的完整性,完成消息认证,保证消息不被未授权者非法修改。

3.用于安全存储口令

基于Hash函数生成口令的Hash值,然后在系统中保存用户的ID和他的口令的Hash值,而不是口令本身,可帮助改善系统的安全性,因此此时系统保存的是口令的Hash值。当用户进入系统时要求输入口令,系统再次计算用户输入口令的Hash值并和保存的数值比较,当两个数值相等时,说明用户的口令是正确的,允许用户进入系统,否则将被系统拒绝。

上一篇:密钥的分类_密钥有哪些 下一篇:软件数字签名原理及应用