Home
Services
Shop
Pages
About Us
Services Details
Shop Details
Blog Details
Contact
Blog
(+86) 13108958693
Mon-Fri: 17:00 - 22:00 Sat/Sun: 09:00 - 22:00
(+86) 13108958693
Mon-Fri: 17:00 - 22:00 Sat/Sun: 09:00 - 22:00
扫一扫加站长微信
您的鼓励是我最大的动力
微信打赏
2元
4元
10元
微信
支付宝
首页
标准&法规
ISO-21434
R155
R156
密码工具
对称密码
非对称密码
摘要函数
消息认证码
数字签名
数字证书
随机数
密钥
软件安全
AUTOSAR
QNX
Linux
硬件安全
SecureZone
HSM
TEE
攻击手段
Dos 攻击
中间人攻击
...
...
防御措施
最小权限原则
安全启动
安全升级
安全通信
安全诊断
安全日志
防火墙
安全测试
模糊测试
渗透测试
漏洞扫描
关于
扫一扫加站长微信
您的鼓励是我最大的动力
2元
4元
10元
微信
支付宝
摘要函数
主页
密码工具
对称密码
对称密码介绍
DES
Triple DES
AES
Rabbit
RC4
异或
非对称密码
非对称密码介绍
RSA
SM2
ECC
摘要函数算法
> 摘要函数介绍 <
MD4
MD5
SHA
SM3
CRC
消息认证码
消息认证码介绍
CMAC
HMAC
数字签名
数字签名介绍
RSA-Signature
ECDSA
数字证书
数字证书介绍
X.509
X.509 证书解析
X.509 证书生成
X.509 证书验证
SSL
SSL 证书解析
...
...
...
CSR 生成
随机数
随机数介绍
PRNG
TRNG
密钥
密钥介绍
Diffie-Hellman 密钥交换
口令
摘要函数 ——
获取消息的“指纹”
介绍:
摘要函数也称之为
单项散列函数(one-way hash function)
,其中包含一个输入称为
消息(message)
,一个输出称为
散列值(hash value)
。单向散列函数可以 根据消息的内容计算出散列值,而散列值就可以用来检查消息的完整性。
这里的消息不一定是人类能够读懂的文字,也可以是图像文件或者声音文件。单向散列函数不需要知道消息实际代表的含义。无论任何消息,单向散列函数都会将它作为单纯的比特序列来处理, 即根据比特序列计算出散列值。
散列值的长度和消息的长度无关。无论消息是1比特,还是100MB,甚至是100GB,单向散列函数都会计算出固定长度的散列值。以SHA-256单向散列函数为例,它所计算出的散列值的长度永远 是256比特(32字节)。
单向散列函数的特性
根据任意长度的消息计算出固定长度的散列值
首先,单向散列函数的输入必须能够是任意长度的消息。其次,无论输入多长的消息,单向散列函数必须都能够生成长度很短的散列值,如果消息越长生成的散列值也越长的话就不好 用了。从使用方便的角度来看,散列值的长度最好是短且固定的。
能够快速计算出散列值
计算散列值所花费的时间必须要短。尽管消息越长,计算散列值的时间也会越长,但如果不能在现实的时间内完成计算就没有意义了。
消息不同散列值也不同
如果单向散列函数计算出的散列值没有发生变化,那么消息很容易就会被篡改,这和单向散列函数也就无法被用于完整性的检查。两个不同的消息产生同一个散列值的情况称为
碰 撞(collision)
。如果要将单向散列函数用于完整性的检查,则需要确保在事实上不可能被人为地发现碰撞。
难以发现碰撞的性质称为
抗碰撞性(collision resistance)
。密码技术中所使用的单向散列函数,都需要具备抗碰撞性。
当给定某条消息的散列值时,单向散列函数必须确保
要找到和该条消息具有相同散列值的另外一条消息是非常困难的
。这一性质称为
弱抗碰撞性
。单向散列函数都必须具备弱抗碰撞性。
和弱抗碰撞性相对的,还有
强抗碰撞性
。所谓强抗碰撞性,是指
要找到散列值相同的两条不同的消息是非常困难的
这一性质。在这里,散列值可以是任意值。
能够快速计算出散列值
单向散列函数必须具备
单向性(one-way)
。单向性指的是无法通过散列值反算出消息的性质。根据消息计算散列值可以很容易,但这条单行路是无法反过来走的。
正如同将玻璃砸得粉碎很容易,但却无法将碎片还原成完整得玻璃一样,根据消息计算出散列值很容易,但根据散列值却无法反算出消息。
在这里需要注意的一点是,尽管单向散列函数所产生的散列值是和原来的消息完全不同的比特序列,但是单向散列函数并不是一种加密,因此无法通过解密将散列值还原成原来的消息。
+