首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用HKDF派生2键

使用HKDF派生2键
EN

Cryptography用户
提问于 2014-06-22 13:41:07
回答 2查看 1.8K关注 0票数 1

我有一个使用256位主密钥的加密方案,其中两个单独的密钥(一个用于AES-256-CTR加密,一个用于HMAC- that 256)是使用HKDF导出的。不过,我不知道如何在不搞砸的情况下利用香港发展基金,所以我直截了当地说:

  1. 仅仅使用SHA-512作为散列算法来获得512位的输出并将其拆分为2是安全的吗?
  2. 我知道使用盐并不是强制性的,但使用它真的可以提高安全性吗?
  3. 我知道这可能是个愚蠢的主意,但是.盐可以是用于加密的IV吗?
EN

回答 2

Cryptography用户

回答已采纳

发布于 2014-06-22 15:08:50

  1. 是。您可以在不同的HKDF-expand值下使用两次info,或者一次使用更长的输出长度。
  2. 视情况而定。如果使用安全的RNG生成256位主密钥,则没有必要使用salt .OTOH,如果它来自于熵较小的东西,比如密码,那么拥有唯一的盐类将确保派生密钥的唯一性,即使主键恰好与两个用户或会话匹配。
  3. 也许不是一个好主意,但它是否安全取决于IV是如何选择的。HKDF假设该盐不是攻击者选择的.如果攻击者能影响IV,那就绝对不是。OTOH,如果已知的IV完全独立于密钥,那么它应该是安全的,因为CTR不会对IV提出任何超越唯一性的要求。尽管如此,如果您可以创建另一个随机数作为一个盐类,那么这样做就更简单了。如果你不能确定盐不是攻击者控制的,最好把它完全排除在外。
票数 4
EN

Cryptography用户

发布于 2014-06-23 07:16:01

虽然答案已经被接受了,但我将添加一个关于事物的不同看法的答案。

1.使用SHA-512作为散列算法来获得512位的输出并将其拆分为2,安全吗?

这是安全的,但这不是香港发展基金-扩展应该用来。HKDF-展开的思想是两次调用它,每个键一次,使用info元素来区分两者(例如,info可以是密钥名的ASCII编码)。请注意,香港国防军应该有一个相对较短的运行时间。

2.我知道使用盐并不是强制性的,但使用它是否确实提高了安全性?

虽然它不是必需的,但最好使用盐。因此,除非有一些重要的原因不这样做--如对确定性协议的要求或随机数生成器的不可用性,请这样做。相对来说,KBKDF算法有salt参数是不寻常的,但是作者似乎认为这很重要;请参阅下面的引文。

3.我知道这可能是个愚蠢的主意,但是.盐可以是用于加密的IV吗?

你可以,但我会敦促你独立生成它使用HKDF-展开,见答案(1)。

引用第2部分(参见RFC的3.1 ):

然而,我们强调,使用salt大大增加了HKDF的强度,确保了散列函数的不同用途之间的独立性,支持“独立于源”的提取,并加强了支持HKDF设计的分析结果。

票数 4
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/17830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档