所以我读过像这一个这样的堆栈溢出问题。不过,我想知道的是:我真的很喜欢我在BLAKE3上看到的东西。(我怀疑这个散列函数相对来说是未知的,但考虑到它的新特性,这并不奇怪。)然而,这也适用于BLAKE2 (也许BLAKE,我也不确定)。BLAKE3定义了第三种操作模式,derive_key。正如本文所指出的,它采用硬编码的上下文字符串和键材料,并使用该信息导出密钥。准确地说,我的问题是:假设我在一个具有BLAKE3实现的嵌入式系统中,并且我希望得到一个用于加密/解密的密钥。使用诸如RDRAND或RDSEED (x86)或RNDR (ARM)这样的体系结构级指令来生成这个关键材料,然后以这种方式导出密钥,会安全吗?
发布于 2020-09-19 13:10:44
使用诸如RDRAND或RDSEED (x86)或RNDR (ARM)这样的体系结构级指令来生成这个关键材料,然后以这种方式导出密钥,会安全吗?
您需要派生相同的密钥两次(例如,您使用密钥加密从Alice到Bob的数据,所以Alice和Bob都需要派生密钥;或者如果您使用加密存储的数据,那么您在存储数据时和检索数据时都需要派生密钥)?
如果是这样的话,那么RDRAND将不会给出相同的数据两次,因此您不会得到相同的密钥。
如果不是,也就是说,您只生成一次密钥(如果以后需要引用它,则存储它),那么它应该是安全的。另一方面,根本没有理由去使用密钥派生函数;只需调用RDRAND,并使用它作为您的密钥.
https://crypto.stackexchange.com/questions/84034
复制相似问题