[Linux][2012-08-28] SHA 系列加密算法

安全散列算法(SHA)是一系列由美国国家安全局设计、美国国家标准与技术研究院发布的算法,用于计算数字消息对应的固定长度字符串(即消息摘要)。本文介绍了SHA家族的五种算法,包括SHA-1、SHA-224、SHA-256、SHA-384和SHA-512,并讨论了它们的安全性和应用情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文转发自:http://zh.wikipedia.org/wiki/SHA%E5%AE%B6%E6%97%8F

 

安全散列算法英语Secure Hash Algorithm

是一种能计算出一个数位讯息所对应到的,长度固定的字串(又称讯息摘要)的算法。且若输入的讯息不同,它们对应到不同字串的机率很高;而SHA是FIPS所认证的五种安全散列算法

这些算法之所以称作“安全”是基于以下两点(根据官方标准的描述):

1)由讯息摘要反推原输入讯息,从计算理论上来说是很困难的。

2)想要找到两组不同的讯息对应到相同的讯息摘要,从计算理论上来说也是很困难的。

任何对输入讯息的变动,都有很高的机率导致其产生的讯息摘要迥异。

SHA家族的五个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,由美国国家安全局(NSA)所设计,并由美国国家标准与技术研究院(NIST)发布;是美国的政府标准。后四者有时并称为SHA-2。SHA-1在许多安全协定中广为使用,包括TLSSSLPGPSSHS/MIMEIPsec,曾被视为是MD5(更早之前被广为使用的散列函数)的后继者。但SHA-1的安全性如今被密码学家严重质疑;虽然至今尚未出现对SHA-2有效的攻击,它的算法跟SHA-1基本上仍然相似;因此有些人开始发展其他替代的散列算法。缘于最近[哪时?]对SHA-1的种种攻击发表,“美国国家标准与技术研究院(NIST)开始设法经由公开竞争管道(类似高级加密标准AES的发展经过),发展一个或多个新的散列算法。”

 

SHA 所定义的长度

下表中的中继散列值(internal state)表示对每个资料区块压缩散列过后的中继值(internal hash sum)。详情请参见Merkle-Damgård construction

算法输出散列值长度 (bits)中继散列值长度 (bits)资料区块长度 (bits)最大输入讯息长度 (bits)一个Word长度 (bits)循环次数使用到的运算子碰撞攻击
SHA-0160160512264 − 13280+,and,or,xor,rotl
SHA-1160160512264 − 13280+,and,or,xor,rotl存在263 的攻击
SHA-256/224256/224256512264 − 13264+,and,or,xor,shr,rotr尚未出现
SHA-512/384512/38451210242128 − 16480+,and,or,xor,shr,rotr尚未出现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值