发布时间:2025-11-16 21:54:19 点击量:
HASH GAME - Online Skill Game GET 300
1 1 概念概念散列函数散列函数(又称杂凑函数又称杂凑函数)是将任意长度的输入消息是将任意长度的输入消息MM映射成一个固定长度散列值映射成一个固定长度散列值h h的特殊函数:的特殊函数:h hH(M)H(M)其中其中MM是变长的输入消息,是变长的输入消息,h hH(M)H(M)是定长的散列值是定长的散列值(或称为消息摘要或称为消息摘要)散列函数散列函数H H是公开的,散列值在信源处被附加在消息上,是公开的,散列值在信源处被附加在消息上,接收方通过重新计算散列值来确认消息未被篡改接收方通过重新计算散列值来确认消息未被篡改由于函数本身公开,传送过程中对散列值需要另外的由于函数本身公开,传送过程中对散列值需要另外的加密保护加密保护(如果没有对散列值的保护,篡改者可以在如果没有对散列值的保护,篡改者可以在修改消息的同时修改散列值,从而使散列值的认证功修改消息的同时修改散列值,从而使散列值的认证功能失效能失效)一一 单向散列函数的概念与性质单向散列函数的概念与性质1 12 2 性性质质 散列函数要具有单向性,必须满足如下特性:散列函数要具有单向性,必须满足如下特性:给定给定MM,很容易计算,很容易计算h h;给定给定h h,根据,根据H(M)=hH(M)=h,反推,反推MM很难;很难;给定给定MM,要找到另一个消息,要找到另一个消息MM,并满足,并满足H(M)=H(M)H(M)=H(M)是很难的。
是很难的单向散死函数是从全体消息集合到一个肯有固单向散死函数是从全体消息集合到一个肯有固定长度的消息摘要的变换定长度的消息摘要的变换带密钥的哈希函数可用于认证、密钥共享、软带密钥的哈希函数可用于认证、密钥共享、软件保护等方面件保护等方面一一 单向散列函数的概念与性质单向散列函数的概念与性质2 21 1 安全散列函数安全散列函数 Ron Ron RiVestRiVest于于19901990年提出了一个称为年提出了一个称为MD4MD4的散列函的散列函数它的设计没有基于任何假设和密码体制,这种数它的设计没有基于任何假设和密码体制,这种直接构造的方法受到人们的广泛关注直接构造的方法受到人们的广泛关注不久,它的一些缺点也被提出为了增强安全性和不久,它的一些缺点也被提出为了增强安全性和克服克服MD4MD4的缺陷,的缺陷,RivestRivest于于19911991年对年对MD4MD4作了六点改作了六点改进,并将改进后的算法称为进,并将改进后的算法称为MD5MD5MD5MD5曾经是使用最曾经是使用最普遍的安全散列算法普遍的安全散列算法二二 MD5与与SHA-1算法算法3 32 2 安全散列函数安全散列函数 随着对随着对MD5MD5分析的深入,从密码分析和强力攻击的分析的深入,从密码分析和强力攻击的角度来看,角度来看,MD5MD5也被认为是易受攻击的。
因此,有也被认为是易受攻击的因此,有必要用一个具有更长散列码和更能抗击已知密码分必要用一个具有更长散列码和更能抗击已知密码分析攻击的散列函数来代替现在流行的析攻击的散列函数来代替现在流行的MD5MD5目前,目前,已经有两个散列码长度为已经有两个散列码长度为160160比特的替代者比特的替代者SHA-1SHA-1和和RiPEMD-160RiPEMD-160安全散列算法安全散列算法SHASHA是由美国国家标准和技术协会是由美国国家标准和技术协会(NIST)(NIST)提出的,并作为联邦信息处理标准在提出的,并作为联邦信息处理标准在19931993年年公布公布19951995年又发布了年又发布了个修订版个修订版FIPS PUB180-1FIPS PUB180-1,通常称为,通常称为SHA-1SHA-1SHASHA是基于是基于MD4MD4算法的算法的二二 MD5与与SHA-1算法算法4 43 MD53 MD5与与SHA-1SHA-1描述描述MD5(Message Digest)是MD4的改进,它是由RSA公钥密码算法的首们发明人Ron Rivest设计的对输入的任意长度的消息将产生128位长度的散列值。
SHA1算法的输入为不超过264比特长的任意消息,输出为一个160比特长的消息摘要二二 MD5与与SHA-1算法算法5 54 MD54 MD5和和RIPEMD-160RIPEMD-160的比的比较较SHA-1SHA-1在许多方面都与在许多方面都与MD5MD5和和RIPEMD-160RIPEMD-160相似,因相似,因为这为这3 3个算法都是由个算法都是由MD4MD4导出的导出的设计指标设计指标MD5MD5SHA-1SHA-1RIPEMD-160RIPEMD-160消息摘要长度消息摘要长度128128比特比特160160比特比特160160比特比特分组长度分组长度512512比特比特512512比特比特512512比特比特步骤数步骤数64(464(4个个1616步循步循环环)80(480(4个个2020步循步循环环)160(5160(5对对1616步循步循环环)消息最大长度消息最大长度2 26464-1-1比特比特2 26464-1-1比特比特基本逻辑函数基本逻辑函数4 44 45 5加法常数个数加法常数个数64644 49 9数据存储方式数据存储方式低位字节优先低位字节优先高位字节优先高位字节优先低位字节优先低位字节优先二二 MD5与与SHA-1算法算法6 65 5 优优缺点比缺点比较较 从上面的设计指标和目前的分析结果来看,它们之问的优缺点比较如从上面的设计指标和目前的分析结果来看,它们之问的优缺点比较如下:下:(1)(1)抗强力攻击的能力:对于弱碰撞攻击,这抗强力攻击的能力:对于弱碰撞攻击,这3 3个算法都是无懈可击的。
个算法都是无懈可击的MD5MD5很容易遭遇强碰撞的生日攻击,而很容易遭遇强碰撞的生日攻击,而SHA-1SHA-1和和RIPEMD-160RIPEMD-160目前在这方目前在这方面是安全的面是安全的(2)(2)抗密码分析攻击的能力:对抗密码分析攻击的能力:对MD 5MD 5的密码分析已经取得了很大的进的密码分析已经取得了很大的进展展RIPEMD-160RIPEMD-160设计时就考虑了如何对抗己知密码分析的攻击设计时就考虑了如何对抗己知密码分析的攻击SHA-1SHA-1也有很高的抗密码分析攻击的能力一般来说,也有很高的抗密码分析攻击的能力一般来说,RIPEMD-160 RIPEMD-160 应该比应该比SHA-1SHA-1有更强的抗密码分析攻击的能力有更强的抗密码分析攻击的能力(3)(3)计算速度;计算速度;3 3个算法的主要运算都是模个算法的主要运算都是模232232加法和按位逻辑运算,因加法和按位逻辑运算,因而都易于在而都易于在3232位的结构上实现,但位的结构上实现,但SHA-1SHA-1和和RIPEMD-160RIPEMD-160的迭代次数较多,的迭代次数较多,复杂性较高,因此速度较复杂性较高,因此速度较MD5MD5慢些。
慢些(4)(4)存储方式存储方式:三个算法在低位字节优先与高位字节优先方面都没有明三个算法在低位字节优先与高位字节优先方面都没有明显的优势显的优势二二 MD5与与SHA-1算法算法7 71 消息认证的概述 网络系统安全一般要考虑两个方面:一方面,加网络系统安全一般要考虑两个方面:一方面,加网络系统安全一般要考虑两个方面:一方面,加网络系统安全一般要考虑两个方面:一方面,加密保护传送的信息,使其可以抵抗被动攻击;另一方密保护传送的信息,使其可以抵抗被动攻击;另一方密保护传送的信息,使其可以抵抗被动攻击;另一方密保护传送的信息,使其可以抵抗被动攻击;另一方面,就是要能防止对手对系统进行主动攻击,如伪造、面,就是要能防止对手对系统进行主动攻击,如伪造、面,就是要能防止对手对系统进行主动攻击,如伪造、面,就是要能防止对手对系统进行主动攻击,如伪造、篡改信息等认证是对抗主动攻击的主要手段,它对篡改信息等认证是对抗主动攻击的主要手段,它对篡改信息等认证是对抗主动攻击的主要手段,它对篡改信息等认证是对抗主动攻击的主要手段,它对于开放的网络中的各种信息系统的安全性有重要作用于开放的网络中的各种信息系统的安全性有重要作用。
于开放的网络中的各种信息系统的安全性有重要作用于开放的网络中的各种信息系统的安全性有重要作用认证可分为认证可分为认证可分为认证可分为实体认证实体认证实体认证实体认证和和和和消息认证消息认证消息认证消息认证三三 消息认证消息认证8 82 消息认证的目的验证信息的来源是真实的,而不是伪造的,验证信息的来源是真实的,而不是伪造的,此为此为消息源认证消息源认证验证验证消息的完整性消息的完整性,即验证信息在传送或,即验证信息在传送或存储过程中是否被篡改存储过程中是否被篡改三三 消息认证消息认证9 93 消息认证码消息认证码(消息认证码(消息认证码(消息认证码(MACMAC,Messages Authentication Messages Authentication CodesCodes),是与密钥相关的的单向散列函数,也称),是与密钥相关的的单向散列函数,也称),是与密钥相关的的单向散列函数,也称),是与密钥相关的的单向散列函数,也称为消息鉴别码或是消息校验和为消息鉴别码或是消息校验和为消息鉴别码或是消息校验和为消息鉴别码或是消息校验和MACMAC与与与与单向散列函数单向散列函数单向散列函数单向散列函数一样,但是还包括一个密钥。
一样,但是还包括一个密钥一样,但是还包括一个密钥一样,但是还包括一个密钥不同的密钥会产生不同的散列函数,这样就能在不同的密钥会产生不同的散列函数,这样就能在不同的密钥会产生不同的散列函数,这样就能在不同的密钥会产生不同的散列函数,这样就能在验验验验证发送证发送证发送证发送者的消息没有经过篡改的同时,验证是由哪者的消息没有经过篡改的同时,验证是由哪者的消息没有经过篡改的同时,验证是由哪者的消息没有经过篡改的同时,验证是由哪一个发送者发送的一个发送者发送的一个发送者发送的一个发送者发送的三三 消息认证消息认证1010消息认证码的实现过程三三 消息认证消息认证1111Any Question?1212。