Hash函数在信息安全中的重要运用.docx

上传人:b****5 文档编号:4427838 上传时间:2022-12-01 格式:DOCX 页数:6 大小:249.29KB
下载 相关 举报
Hash函数在信息安全中的重要运用.docx_第1页
第1页 / 共6页
Hash函数在信息安全中的重要运用.docx_第2页
第2页 / 共6页
Hash函数在信息安全中的重要运用.docx_第3页
第3页 / 共6页
Hash函数在信息安全中的重要运用.docx_第4页
第4页 / 共6页
Hash函数在信息安全中的重要运用.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

Hash函数在信息安全中的重要运用.docx

《Hash函数在信息安全中的重要运用.docx》由会员分享,可在线阅读,更多相关《Hash函数在信息安全中的重要运用.docx(6页珍藏版)》请在冰豆网上搜索。

Hash函数在信息安全中的重要运用.docx

Hash函数在信息安全中的重要运用

Hash函数在信息安全中的重要运用

LT

MD4("messagedigest")=d9130a8164549fe818874806e1c7014b

2、MD5

MD5(RFC1321)是Rivest于1991年对MD4的改进版本。

它对输入仍以512位分组,其输出是4个32位字的级联,与MD4相同。

MD5比MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好。

MD5散列例子:

MD5("")=d41d8cd98f00b204e9800998ecf8427e

MD5("a")=0cc175b9c0f1b6a831c399e269772661

MD5("abc")=900150983cd24fb0d6963f7d28e17f72

MD5("messagedigest")=f96b697d7cb7938d525a2f31aaf161d0

3、SHA1

SHA1是由NISTNSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。

SHA1散列的例子:

SHA1("abc")=a9993e364706816aba3e25717850c26c9cd0d89d

SHA1("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq")

=84983e441c3bd26ebaae4aa1f95129e5e54670f1

MD5和SHA1可以说是目前应用最广泛的Hash算法,而它们都是以MD4为基础设计的。

三、函数特性

1、单向性(one-way),从预映射,能够简单迅速的得到散列值,而在计算上不可能构造一个预映射,使其散列结果等于某个特定的散列值,即构造相应的M=H-1(h)不可行。

这样,散列值就能在统计上唯一的表征输入值,因此,密码学上的Hash又被称为"消息摘要(messagedigest)",就是要求能方便的将"消息"进行"摘要",但在"摘要"中无法得到比"摘要"本身更多的关于"消息"的信息。

2、是抗冲突性(collision-resistant),即在统计上无法产生2个散列值相同的预映射。

给定M,计算上无法找到M',满足H(M)=H(M'),此谓弱抗冲突性;计算上也难以寻找一对任意的M和M',使满足H(M)=H(M'),此谓强抗冲突性。

要求"强抗冲突性"主要是为了防范所谓"生日攻击(birthdayattack)",在一个10人的团体中,你能找到和你生日相同的人的概率是2.4%,而在同一团体中,有2人生日相同的概率是11.7%。

类似的,当预映射的空间很大的情况下,算法必须有足够的强度来保证不能轻易找到"相同生日"的人。

四、应用举例

1、文件校验

MD5Hash算法的"数字指纹"特性,使它成为目前应用最广泛的一种文件完整性校验算法,它常被用在下面的2种情况下:

第一是文件传送后的校验,将得到的目标文件计算md5checksum,与源文件的md5checksum比对,由两者md5checksum的一致性,可以从统计上保证2个文件的每一个码元也是完全相同的。

这可以检验文件传输过程中是否出现错误,更重要的是可以保证文件在传输过程中未被恶意篡改。

一个很典型的应用是ftp服务,用户可以用来保证多次断点续传,特别是从镜像站点下载的文件的正确性。

第二是用作保存二进制文件系统的数字指纹,以便检测文件系统是否未经允许的被修改。

不少系统管理/系统安全软件都提供这一文件系统完整性评估的功能,在系统初始安装完毕后,建立对文件系统的基础校验和数据库,因为散列校验和的长度很小,它们可以方便的被存放在容量很小的存储介质上。

此后,可以定期或根据需要,再次计算文件系统的校验和,一旦发现与原来保存的值有不匹配,说明该文件已经被非法修改,或者是被病毒感染,或者被木马程序替代。

下面是一款MD5校验工具的使用:

2、数字签名

运用非对称加密体系与hash函数结合实现数字签名,也就是应用自己的私钥对散列值进行加密所得到的结果就是“数字签名”。

电子邮件中实现数字签名过程如下图:

发件人:

收件人:

3、PKI

公钥基础设施(PKI)是一种运用公钥的概念与技术来实施并提供安全服务的具有普遍适用性的网络安全基础设施。

而Hash函数在PKI中有着极其重要的地位。

运用Hash函数进行数据源认证和数据的完整性验证,还可以获得消息摘要。

消息摘要有两个基本属性:

两个不同的报文难以生成相同的消息摘要;难以对一个指定的摘要生成一个报文,只能由报文推算出消息摘要。

一台自动取款机(ATM)不需要解密一个消费者的个人标识数字(PIN码)。

磁条卡将顾客的代码单向地加密成一段HASH值,一旦插卡时,ATM机将计算用户PIN码的HASH值并产生一个结果,然后再将这段结果与用户卡上的HASH值比较。

使用这种方法,PIN码是安全的,即使那些维护修理ATM机的人员也无法获取用户的信息。

4、网站和系统安全

在设计网站程序时,常常要涉及到将数据加密后存入数据库的问题,比如系统用户注册后的用户名和密码存放,后台管理员用户和密码的存放,如果采用明码存放于数据库中,一旦数据库被别人恶意下载并打开后,就能直接看到用户名和密码,从而造成系统用户信息的泄漏,为系统带来灭顶之灾。

针对以上问题,解决的办法一般是将数据加密后再存入数据库,常见的是将用户名明码存放,将密码加密后存放。

当然,对于加密的算法也有一定的要求,那就是加密信息应该是单向、不可逆的,不能够被其他算法还原。

所以运用了hash函数的md5算法在网站信息安全中起到了重要的作用。

如以下ASP网站中,md5.asp为md5算法函数的子程序,对于需要加密的数据,可以通过文件包含和调用md5()函数来实现数据传输前、存储前的加密。

内部md5函数举例:

数据库加密过的字段:

在UNIX系统中用户的密码就是以MD5(或其它类似的算法)经加密后存储在文件系统中。

当用户登录的时候,系统把用户输入的密码计算成MD5值,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。

通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。

这不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。

五、hash的作用意义

散列算法长期以来一直在计算机科学中大量应用,对于计算机安全、网络安全有突出贡献,随着现代密码学的发展,单向散列函数已经成为信息安全领域中一个重要的结构模块,我们有理由深入研究其设计理论和应用方法。

参考文献:

【1】网络安全技术纵览

(一)  天极网  

【2】应用密码学,BruceSchneier著,吴世忠等译。

【3】中国PKI论坛

【4】张辉岳《绿盟安全月刊》

【5】MITLaboratoryforComputerScienceandRSADataSecurity,Inc.

R.RivestApril1992

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1