重复使用密码派生密钥 Argon2

问题描述 投票:0回答:1

我的程序定期保存加密数据。我使用

Argon2id
从密码中获取密钥。重复这样做时,不应重复使用
nonce
,因为这就是
nonce
这个词所代表的意思。

但是数据修改后保存数据时是否可以重用派生键呢?这在某种程度上似乎是错误的,因为它与通过重复使用不应该做的随机数来重复生成此密钥相同。然而,在保存时从密码重新生成新密钥需要在整个会话期间存储密码,并且需要大量计算。

encryption argon2-ffi
1个回答
0
投票

您正在使用 Argon2 作为基于密码的密钥派生函数。在这种情况下,它的作用是以计算上困难的方式从密码生成密钥,以便攻击者不能简单地尝试多个候选密码。 salt 的作用是确保选择相同密码的两个不同用户最终不会得到相同的密钥。它还可以防止攻击,因为我们的攻击者无法从候选密码目录中预先计算任何有用的内容,因为他们必须在每次计算中混合盐。

因此,您应该为每个用户使用随机盐,但重复使用该用户的盐是可以的。

如果您担心使用派生密钥来加密多个明文,您可以为每个明文生成一个随机密钥,将该密钥包装在派生密钥中,并将包装后的密钥与密文一起存储。或者,您可以使用 HKDF 等方法为每个具有唯一或随机消息 ID 的明文派生一个新密钥。

© www.soinside.com 2019 - 2024. All rights reserved.