我是否可以从一个随机生成的密钥中生成,比如说通过带有预定义IVs的HKDF生成另外三个密钥,例如。“苹果”、“香蕉”、“梨”的沙-256?
我的用例是一个应用程序,它在一开始生成一个键,它使用HKDF为每个单独的DB创建每一个其他键,而每一代的IV是DB名称的SHA-256。因此,每个应用程序都有不同的主键,但是DBs的IVs是相同的。
这个纸说IV必须是随机的,但可以是公开的,但我不确定这是否意味着两个应用程序不能对不同的主键使用相同的IV,或者对于一个主密钥生成的密钥生成程序,我不能使用一个IV两次(这当然会产生相同的密钥)。
发布于 2021-08-16 23:39:29
HKDF不使用任何IV。HKDF在提取时使用盐类,在扩展阶段使用Info字段。Salt和Info字段都是可选的。
如果您已经有一个随机生成的秘密,那么您只需要HKDF-展开,在这种情况下,盐是不使用。您可以跳过HKDF-提取,只要您使用128个bit+键,只要您不使用该密钥任何其他(域分离)。
Info字段用于为特定实体和/或目的派生密钥。在您的示例中,Info字段可以由"apple“、”香蕉“或"pear”的ASCII编码组成。
通常不需要散列Info字段,因为它是HMAC (HKDF内部)消息输入的一部分。这样做的唯一原因是如果标签和输出都很大,因为在这种情况下,信息将被哈希函数多次处理。
salt也可以用来区分键(最好用于salt >= 256位),但是通常如果需要新的会话键(使用相同的Info字段),则需要刷新输入键材料。
https://crypto.stackexchange.com/questions/93584
复制相似问题