首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何指定NIST SP 800-108 KBKDF

如何指定NIST SP 800-108 KBKDF
EN

Cryptography用户
提问于 2014-04-26 15:30:52
回答 1查看 4.5K关注 0票数 5

也许有些奇怪的问题,但如果我想指定一个符合NISTSP800-108的协议。这列出了一整套基于键的密钥派生函数,其中包含了一组非常松散的参数。

我应该如何识别使用的KDF?本文档中的KDF似乎既没有名称、OID,也没有ASN.1模块。世界上是否有符合这些描述并有名称/OID/ASN.1的兼容的KDF?

还是我必须自己做这项工作,然后根据可用的测试向量测试自己?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2014-04-26 16:58:42

背景

当定义与NIST SP 800-108兼容的协议时,您只需要选择合适的选项,这些选项与您的协议都能很好地工作。

如果需要与特定的预先存在的协议兼容,您可能需要查看NIST SP 800-135 Rev1,它定义了特定于应用程序的密钥派生函数。值得注意的是,一些NIST SP 800-135 Rev1密钥派生函数是有效的NIST SP 800-108,并选择了特定的选项。

识别KDF的最佳方法是实际列出来自NIST SP 800-108 KBKDF的所有适用选项。(使用的三种功能(CTR、FB、管道);组件的顺序、标签的内容以及标签是否以零结束等等)最好用清晰的示例说明协议规范,这些示例显示了密钥派生中使用的NIST SP 800-108函数(或底层MAC函数的替代显示调用)的对应性。

测试NIST SP 800-108实现

推荐的测试方法是通过CAVP (加密算法验证程序)。测试需要很长的时间,并将由CST (认证测试实验室)进行,这需要花费大量的资金。但是您可以非常具体地选择要测试的内容(从相当大的选项空间),如果您通过测试,您将得到一个算法验证证书

对于大多数常见的选项,成本较低、速度更快的方法可能是针对来自NIST/CAVP的现有非官方测试向量进行测试。

如果该实现不仅需要符合FIPS,而且还需要有美国政府认证(FIPS 140-2),那么就需要为适用的算法提供算法证书。

如果您需要一组用于KBKDF“实例化”的测试向量,一种方法是首先确保使用上述机制之一实现的正确性,以及使用“似乎正确”的实现来生成正式测试向量,并将测试向量附加到协议规范中。

KBKDFVS (KBKDF验证系统)中解释了测试向量中使用的顺序、元素大小等的确定方法。

用于反馈模式的参数KBKDFVS用于(从KBKDFVS提取):

  1. IUT 支持的伪随机函数
    1. 列出CMAC AES 128,192,256
    2. CMAC TDES 2,3
    3. HMAC SHA1,SHA224,SHA256,SHA384,SHA512

  2. L-派生键控材料K0的长度(以字节为单位)-输入所有应用程序:
    1. 支持的完整块长度的最小和最大值。
    2. 支持的部分块长度的最小和最大值

  3. 支持生成K:的方法(S)
    1. SP80056A
    2. 56B 800-56B
    3. 90A 800-90A
    4. 核准的RNG
    5. N/A -超出算法实现范围

  4. IUT是否支持用作输入的计数器?如果是,计数器i. 的二进制表示的长度是多少?
    1. 8位。
    2. 16位
    3. 24位
    4. 32位

  5. IUT是否支持在迭代变量和/或固定输入数据之后出现的计数器?

其他模式的信息(即)计数器和双管道相似。这些信息不足以对所有已知的KDF函数进行编码,但已经是一个良好的开端。

终于解决了你的问题

  • 通过指定NIST SP 800-108的选项来确定KDF。您还应该有允许正确实现的示例(可能还有测试向量)。
  • 名称为NIST SP 800-108和所使用模式的名称(或部分)。
  • 我也不知道OID/ASN.1是否适用。(但也许有人已经为他们的NIST SP 800-108实现定义了一些东西。没有涵盖NIST SP 800-108所有可能选项的OID/ASN.1 )。
  • 如果协议需要OID或ASN.1模块,那么现在可能最容易定义自己的模块。
  • SP 800-108的实现可能可以使用CAVP或非官方CAVP测试向量进行测试。
  • KBKDFVS可以是一个很好的例子,可以看到NIST如何在测试向量的上下文中指定参数。也许你可以用类似的方法和术语来描述协议?

香港

备注:根据您使用HKDF的方式,您经常使用NIST SP 800-108NIST SP 800-56C:HKDF“只扩展”可视为NIST SP 800-108 KBKDF的一个变体。NIST SP 800-56C基本上是试图用NIST术语定义完整的HKDF (并添加AES-CMAC)。

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

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

复制
相关文章

相似问题

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