我想用零知识架构来加密一些用户数据。我参考了bitwarden的实现,但有些部分不明白。
首先,我想使用 argon2 而不是 pbkdf2 来导出密钥,因为 argon2 似乎更安全,因为它可以抵抗并行暴力。
第二,HKDF将主密钥(256bit)拉伸到512bit的目的是什么,为什么不能直接使用主密钥来加密生成的对称密钥?
第三,我可以直接使用主密钥来加密用户数据,而不是生成新的对称密钥并用它来加密用户数据吗?
第四,为什么主密码哈希仅通过 1 次迭代创建,而不是 100,000 次?
根据我的理解,以下是我的答案:
我不太确定他们的原因,但我相信这些可能是一些可能性。