当前位置:首页 >资讯 >SHA-256算法——目前最安全的Hash函数之一


SHA-256算法单向Hash函数是密码学和信息安全领域非常重要的基本算法。它是一种将任何长消息转换为短消息摘要的算法。

SHA安全加密标准是美国NIST和NSA共同开发的最安全的压缩算法之一。该算法于1993年5月11日被美国NIST和NSA设定为加密标准。为了提高Hash函数的安全性能,先后发布了改进的Hash密码算法

SHA-1.SHA-224.SHA-256.SHA-384和SHA-512。然而,随着2004年中国密码专家王晓云教授研究小组宣布破解MD5.SHA-1等加密算法,随着密码研究的深入和计算机技术的快速发展,美国政府计划从2010年开始停止使用SHA-1,并全面推广SHA-256.SHA-384和SHA-512。

安全分析SHA-256算法

Hash函数的安全性很大程度上取决于抗强碰撞能力,即攻击者发现两个涓涓M和M'(M≠M'),使H(M)=HM'。因此,评估Hash函数的安全性取决于攻击者能否在现有条件下找到该函数的一对碰撞。目前,Hash函数攻击的现有方法包括生日攻击、彩虹表攻击、差异攻击等。

生日攻击

生日攻击是一种攻击任何类型Hash函数的方法。在攻击原理上,它不使用Hash函数的结构和任何代数的弱性质,而只依赖于Hash值的长度。因此,抵抗生日攻击最有效的方法是Hash值必须有足够的长度。

生日攻击步骤

发送方用私钥对256位的Hash值进行加密,并将加密结果附上新闻后提交给接收者,攻击者可按以下步骤进行攻击:

1)攻击者生成了2128个不同的新闻变形,每个新闻变形与原始新闻M具有相同的含义,攻击者伪造了另一个假新闻M,并生成了2128个假新闻,目的是试图用假新闻取代真实新闻。

2)与上述两个集合相比,找出一对具有相同Hash值的消息Mi和M'j。根据生日悖论原理,攻击者发现碰撞的概率大于0.5。如果找不到,重新伪造消息,生成2128个变形,直到发现碰撞。

3)攻击者将消息Mi(与伪造消息M'j具有相同的Hash值)提交A签名,然后将签名与伪造消息M'j一起发送给接收者。

差分攻击

差分攻击是破译迭代Hash函数最有效的方法之一。其基本方法是利用明确的输入差对输出差的影响,利用高概率的继承或消除差的继承来产生最终相同的输出。Hash函数的安全性最终取决于是否能找到函数的整体碰撞。由于SHA-256算法具有迭代结构,根据迭代算法的雪崩效应,随着轮数的增加,相应的整体碰撞复杂性将急剧上升,这使得很难找到整体碰撞,直到现有的攻击找不到SHA-256。因此,SHA-256算法被认为是目前最安全的HAsh函数之一。