首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将香港发展基金的扩展阶段连在一起是否正确?

将香港发展基金的扩展阶段连在一起是否正确?
EN

Cryptography用户
提问于 2023-04-18 12:23:16
回答 1查看 41关注 0票数 3

我希望从主键为许多客户端派生会话密钥。假设我以以下方式为客户端n派生了一个键:

master_key =HKDF-萃取物(盐,IKM)

key_client_n =香港发展基金-扩展(master_key,info_client_n,L)

然后,我为客户机n生成会话密钥:

key_client_n_session_0 =香港发展基金-扩展(key_client_n,0,L)

key_client_n_session_1 =香港发展基金-扩展(key_client_n,1,L)

这安全吗?使用香港发展基金的方法是否正确?我正在连接两个阶段的扩展以生成会话密钥。

EN

回答 1

Cryptography用户

发布于 2023-04-18 17:30:49

这安全吗?

安全适用于系统,而不是单独使用算法。

使用香港发展基金的方法是否正确?

似乎是这样的,是的。

HKDF将Info参数指定为字符串,它们指的是一个八进制字符串。目前您已经指定了一个数字值。但是,您还应该指定一种将其转换为八进制字符串的方法。

您还没有指定info编码,但这并不难,您可以使用"client" | 64 bit client number作为客户端密钥,"session" | 64 bit client number用于会话密钥。标签"client""session"可以使用ASCII进行编码。该数字可以按网络顺序编码为64位无符号值。

我们经常使用多个会话密钥,例如一个用于发送和一个用于接收,可能用于MAC生成或密钥确认(确认双方都有预期的密钥而不必发送特定的消息,例如通过会话记录的MAC )。您也可以为此添加一些上下文,例如"session_send""session_receive" (等)。而不是现在的标签。

大小显然应该与客户端和/或会话的可能数量相关联。不过,这需要防止对手故意增加会话计数器;64位或更大的值将需要较少的安全性假设。

因此,虽然不是不正确,但我不认为它是完整的。

我正在连接两个阶段的扩展以生成会话密钥。

一般都没问题。

对于一个系统来说,除了对键控材料的依赖外,使用双棘轮以提供前向安全性可能更有意义。

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

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

复制
相关文章

相似问题

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