首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >帮助理解sp80056a中的KDM以及"FixedInfo“的用法。

帮助理解sp80056a中的KDM以及"FixedInfo“的用法。
EN

Cryptography用户
提问于 2019-06-06 10:55:39
回答 2查看 88关注 0票数 0

有人能帮助我理解密钥派生方法(SP800 56A CH5.8)背后的逻辑吗?这是我的共识,如果有任何错误请纠正我。

  1. Alice和Bob可以通过任何公开密码方法(RSA、ECC、DL等)对单个密钥对;
  2. 基于密钥交换协议( ECDH),Alice和Bob可以获得它们之间的共享秘密Z,并使用Z作为AES密钥进行后续通信。
  3. 如果他们愿意的话,他们可以根据自己的意愿生成新的共享秘密Z--这被命名为短暂的ECDH。

好的,我的问题是:这里我并不真正理解密钥派生方法(SP800 56A CH5.8)应用程序场景--它看起来是基于通用密钥协议方案(比如ECDH),这个KDM引入了一个"FixedInfo“(它可以是一个可读的文本,也可以是一些十六进制字符串)概念。

关于这个"FixedInfo“是如何工作的,我没有找到细节:

它是否使用一些哈希来处理"FixedInfo“,然后派生新的秘密密钥?

这是否意味着每次都要为Alice和Bob申请一个新的FixedInfo?

无论如何,添加这个"FixedInfo“看起来并不能增强安全性,如果与短暂的ECDH相比-从我的观点来看.

--自我更新:经过一些研究,我有一个解释,但我不确定这是否正确或者从计算的角度来看,这会节省计算能力?

EN

回答 2

Cryptography用户

回答已采纳

发布于 2019-07-03 13:31:24

有几个原因,你会想要做in 800-56A的关键衍生在现实生活场景中。

  1. 计算和通信成本--虽然双方确实可以就每一次使用协商一个新的Diffie-Hellman共享秘密Z并使用它来派生会话密钥,但通常这个过程在计算上是昂贵的,并且需要双方之间的通信。更节省的方法是进行一次密钥交换以商定共享的秘密,然后进行密钥派生以获得用于各种目的的共享密钥。
  2. 共享秘密不是加密密钥--最有可能的情况是,各方商定的共享秘密不适合用作加密密钥。通常,与DH商定的秘密太长,而且(当被视为位字符串时)并不是均匀分布的。例如,\mathbb{F}_p^\ast上的Diffie-Hellman进程的结果是一个长度为4096位的数字。人们不能直接将其作为AES密钥使用,因为它太长,并且只使用其中的一部分作为密钥是一个非常糟糕的想法。因此,我们需要做熵提取,这归结为关键推导。
  3. 许多派生密钥是必需的-通常,我们需要多个密钥在一个系统。例如,我们可能需要对称加密会话密钥,可能需要HMAC密钥来保护完整性,等等。好的做法是在每次使用中使用不同的加密密钥。为了从一个“主秘密”Z中得到不同密码密钥的所需数目,我们需要密钥派生。接下来是FixedInfo参数,它允许参数化密钥派生过程,并将键绑定到它们的使用中。例如,FixedInfo将包含有关各方的信息(以便为不同的各方分离密钥派生)、目的(以便将加密密钥与MAC密钥分开)、会话(因此用于不同会话的密钥是不同的)。

密钥派生方法的一个值得注意的缺点是,如果“主机密”Z被泄露,那么所有派生密钥也需要被视为已泄露。另一方面,任何派生密钥的折中并不构成其他派生密钥或主密钥的折衷。

票数 1
EN

Cryptography用户

发布于 2019-07-03 07:33:27

几天前,我并没有收到关于这个问题的良好反馈。总之,我有一些想法,也许可以在这里录下来。

我认为引入这种"FixedInfo“的动机实际上是提供了一种短暂的ECDH实现。

这意味着对于每个通信会话,对方不需要重新生成ECC密钥,而只需要添加少量的"salt“("salt”可以是一个低熵明文密码或高熵随机数据),然后得到一个新的共享密钥。

等待更专业的更新..。

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

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

复制
相关文章

相似问题

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