- 1 密钥延伸
密钥延伸
编辑密匙延伸,英文key stretching,是一种密码学的密钥推导操作,旨在通过确保需要更多的资源(时间、内存)来尝试所有的可能性,从而使弱密钥(通常是密码)更加安全。 最先进的是 Argon2。 PBKDF2、bcrypt 或 scrypt 也符合公认的技术规则,尽管它们有众所周知的缺点。
拉伸技术通常按如下方式工作:将初始密钥输入算法,生成改进的拉伸密钥。 这必须足够大,以至于无法通过暴力攻击找到它(128 位的长度通常就足够了)。 拉伸算法必须是安全的,也就是说,必须没有已知的方法可以更轻松地从初始密钥计算出改进的密钥。
想要找到拉伸密钥的攻击者有两个选择:要么尝试改进密钥的所有可能性(如果密钥足够长,几乎不可能),要么通过拉伸每个字符来尝试原始密钥的所有可能字符组合。 当初始密钥是密码时,攻击者通常会进行如下操作:首先他将尝试常用密码列表中的每个单词,然后是字典中的每个单词,最后是每个可能的字符组合,长度递增,直到在他的计算能力和时间允许的情况下。 拉伸密钥并不能阻止这种方法,但攻击者必须在每个试用密码上花费更多时间,因为他必须拉伸它。
如果攻击者使用与用户相同级别的硬件,则每次尝试将花费与用户延长密钥相同的时间(这个时间通常是一秒的数量级)。 即使攻击者拥有更多的计算资源,密匙延伸也会显着减慢攻击速度,因为用户的计算机只需计算一次拉伸函数来处理密码,而攻击者必须为他们尝试的每个可能的密码计算它。
有几种方法可以执行密匙延伸。 除了上面提到的算法,例如 Argon2,还可以重复使用加密哈希函数或分组密码。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/335713/