5.4 密钥衍生函数

本文深入探讨了密钥衍生函数(KDF)在加密技术中的关键作用,包括其如何从主密钥或密码生成对称密钥,以及与哈希函数的区别。介绍了几种常见的KDF算法,如bcrypt、PBKDF2、scrypt和HKDF,并讨论了它们在保护用户密码免受强力攻击中的应用。

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

不对称的加密算法定义密钥的性质以及生成密钥的方法,因为密钥需要相互关联。例如,RSA密钥生成算法是确定性的。

对称的加密算法只定义密钥长度。密钥由用户来生成。有多种算法生成密钥,其中一种是KDF。

密钥衍生函数(KDF) 是用于从一些密值(例如主密钥、密码)中衍生对称密钥的确定性算法。有多种类型的KDF,例如bcrypt、crypt、PBKDF2、scrypt、HKDF等。如要学习更多KDF的相关知识,请访问https://en.wikipedia.org/wiki/Key_derivation_function

为了从一个密值生成多个密钥,可以对一个数执行拼接(concatenate)和递增(increment)运算。

基于密码的密钥衍生函数用一个密码生成一个对称密钥。由于在实践中,用户通常使用较弱的密码,基于密码的密钥衍生函数 比较慢,占用了大量内存,使其难以启动强力攻击和其他攻击。基于密码的密钥衍生函数使用广泛,因为难以记住密钥,且存储也有风险——有可能被盗。 PBKDF2是一个基于密码的密钥衍生函数的例子。

主密钥或者密码难以使用强力攻击破解;因此,如果你想从主密钥或者密码生成一个对称密钥,可以使用不以密码为基础的密钥衍生函数,例如HKDF。HKDF比PBKDF2快得多。

为什么使用KDF,而不使用哈希函数?

哈希功能的输出可以当作对称密钥加密技术使用。所以你肯定在奇怪为什么需要KDF。如果使用的是主密钥、密码或者强密码,那么使用一个哈希函数就行了。例如,HKDF仅使用哈希函数生成密钥。但是如果不能保证用户使用强密码,最好使用哈希函数衍生的密码。


来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=558

'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646208", container: s }); })();
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646147", container: s }); })();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值