1、Hash函数在信息安全中的重要运用Hash函数在信息安全中的重要运用LTMD4 (message digest) = d9130a8164549fe818874806e1c7014b 2、MD5 MD5(RFC 1321)是 Rivest 于1991年对MD4的改进版本。它对输入仍以512位分组,其输出是4个32位字的级联,与 MD4 相同。MD5比MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好。MD5散列例子:MD5 () = d41d8cd98f00b204e9800998ecf8427e MD5 (a) = 0cc175b9c0f1b6a831c399e26
2、9772661 MD5 (abc) = 900150983cd24fb0d6963f7d28e17f72 MD5 (message digest) = f96b697d7cb7938d525a2f31aaf161d0 3、SHA1 SHA1是由NIST NSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA1散列的例子:SHA1 (abc) = a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d SHA1 (abcdbcdecdefdefgefghfghighijhijk
3、ijkljklmklmnlmnomnopnopq) = 84983e44 1c3bd26e baae4aa1 f95129e5 e54670f1 MD5 和 SHA1 可以说是目前应用最广泛的Hash算法,而它们都是以 MD4 为基础设计的。三、函数特性1、单向性(one-way),从预映射,能够简单迅速的得到散列值,而在计算上不可能构造一个预映射,使其散列结果等于某个特定的散列值,即构造相应的M=H-1(h)不可行。这样,散列值就能在统计上唯一的表征输入值,因此,密码学上的 Hash 又被称为消息摘要(message digest),就是要求能方便的将消息进行摘要,但在摘要中无法得到比摘要本
4、身更多的关于消息的信息。2、是抗冲突性(collision-resistant),即在统计上无法产生2个散列值相同的预映射。给定M,计算上无法找到M,满足H(M)=H(M) ,此谓弱抗冲突性;计算上也难以寻找一对任意的M和M,使满足H(M)=H(M) ,此谓强抗冲突性。要求强抗冲突性主要是为了防范所谓生日攻击(birthday attack),在一个10人的团体中,你能找到和你生日相同的人的概率是2.4%,而在同一团体中,有2人生日相同的概率是11.7%。类似的,当预映射的空间很大的情况下,算法必须有足够的强度来保证不能轻易找到相同生日的人。四、应用举例1、文件校验MD5 Hash算法的数字指
5、纹特性,使它成为目前应用最广泛的一种文件完整性校验算法,它常被用在下面的2种情况下:第一是文件传送后的校验,将得到的目标文件计算 md5 checksum,与源文件的md5 checksum 比对,由两者 md5 checksum 的一致性,可以从统计上保证2个文件的每一个码元也是完全相同的。这可以检验文件传输过程中是否出现错误,更重要的是可以保证文件在传输过程中未被恶意篡改。一个很典型的应用是ftp服务,用户可以用来保证多次断点续传,特别是从镜像站点下载的文件的正确性。第二是用作保存二进制文件系统的数字指纹,以便检测文件系统是否未经允许的被修改。不少系统管理/系统安全软件都提供这一文件系统完
6、整性评估的功能,在系统初始安装完毕后,建立对文件系统的基础校验和数据库,因为散列校验和的长度很小,它们可以方便的被存放在容量很小的存储介质上。此后,可以定期或根据需要,再次计算文件系统的校验和,一旦发现与原来保存的值有不匹配,说明该文件已经被非法修改,或者是被病毒感染,或者被木马程序替代。下面是一款MD5校验工具的使用:2、数字签名运用非对称加密体系与hash函数结合实现数字签名,也就是应用自己的私钥对散列值进行加密所得到的结果就是“数字签名”。电子邮件中实现数字签名过程如下图:发件人:收件人:3、PKI公钥基础设施(PKI)是一种运用公钥的概念与技术来实施并提供安全服务的具有普遍适用性的网络
7、安全基础设施。而Hash函数在PKI中有着极其重要的地位。运用Hash函数进行数据源认证和数据的完整性验证,还可以获得消息摘要。消息摘要有两个基本属性:两个不同的报文难以生成相同的消息摘要;难以对一个指定的摘要生成一个报文,只能由报文推算出消息摘要。一台自动取款机(ATM)不需要解密一个消费者的个人标识数字(PIN码)。磁条卡将顾客的代码单向地加密成一段HASH值,一旦插卡时,ATM机将计算用户PIN码的HASH值并产生一个结果,然后再将这段结果与用户卡上的HASH值比较。使用这种方法,PIN码是安全的,即使那些维护修理ATM机的人员也无法获取用户的信息。4、网站和系统安全在设计网站程序时,常
8、常要涉及到将数据加密后存入数据库的问题,比如系统用户注册后的用户名和密码存放,后台管理员用户和密码的存放,如果采用明码存放于数据库中,一旦数据库被别人恶意下载并打开后,就能直接看到用户名和密码,从而造成系统用户信息的泄漏,为系统带来灭顶之灾。针对以上问题,解决的办法一般是将数据加密后再存入数据库,常见的是将用户名明码存放,将密码加密后存放。当然,对于加密的算法也有一定的要求,那就是加密信息应该是单向、不可逆的,不能够被其他算法还原。所以运用了hash函数的md5算法在网站信息安全中起到了重要的作用。如以下ASP网站中, md5.asp为md5算法函数的子程序,对于需要加密的数据,可以通过文件包
9、含和调用md5()函数来实现数据传输前、存储前的加密。内部md5函数举例:数据库加密过的字段:在UNIX系统中用户的密码就是以MD5(或其它类似的算法)经加密后存储在文件系统中。当用户登录的时候,系统把用户输入的密码计算成MD5值,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。五、hash的作用意义散列算法长期以来一直在计算机科学中大量应用,对于计算机安全、网络安全有突出贡献,随着现代密码学的发展,单向散列函数已经成为信息安全领域中一个重要的结构模块,我们有理由深入研究其设计理论和应用方法。参考文献:【1】网络安全技术纵览(一) 天极网 【2】应用密码学,Bruce Schneier著,吴世忠等译。【3】中国PKI论坛【4】张辉岳绿盟安全月刊【5】MIT Laboratory for Computer Science and RSA Data Security, Inc. R. Rivest April 1992
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1