首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows 8/Server 2012:通过FIPS-140-2,尽管AES-GCM的IV != 96位长?

Windows 8/Server 2012:通过FIPS-140-2,尽管AES-GCM的IV != 96位长?
EN

Cryptography用户
提问于 2013-06-07 18:04:59
回答 1查看 2.4K关注 0票数 12

背景

微软认证Windows 7/8以及Server 2008 R2和2012符合FIPS-140-2标准.实际上,他们只认证了一个小的密码核心,bcrypt.dll (库,它与密钥派生函数bcrypt无关)。微软的FIPS-140-2架构是详见.此外,他们的FIPS-140-2AES证书上的NIST的上市是证书#2216,详见此.从清单中可以看到,GCM模式下的AES是用注释IV Lengths Tested: ( 8 , 1024 )96BitIV_SupportedGMAC_Supported进行测试的。我确实看到其他供应商在他们的FIPS证书中也有一个附加的标志/注释OtherIVLen_Supported,这是MSFT自己的FIPS证书所缺乏的。

问题

我们用bcrypt.dll (托管在AES GCM纸上)中的测试向量,在GCM模式下测试AES。我们发现,当使用不是96位的IVs时,Windows的bcrypt.dll会抛出一个错误(NT_STATUS = An invalid parameter was passed to a service or function.)。因此,测试向量5、11、17和6、12、18基本上失败,因为这两组分别使用了64位和480位的IVs。结果是

问题

我知道IV大小!= 96位意味着额外的处理,但是尽管IV大小为64和480位失败,它们如何才能清除认证呢?还是只有96位的IV才是传递所需的IV长度?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2013-06-29 14:28:32

答案是肯定的,即使您没有实现所有已批准的加密原语,或者没有实现这些原语的所有可能选项,也可以获得FIPS认证。

当您进行FIPS测试时,他们要求您填写一份“信息表”,询问您声称要实现的密码系统的详细信息。这些包括关于您实现哪些原语的问题(例如,您是否执行GCM )。如果您声称支持GCM,那么您必须声明您实现了GCM的哪些部分。例如,您可以声称支持GCM加密,但不支持解密,或者支持128位和256位密钥,但不支持192位(例如)。至于IV,您可以声称支持96位,也可以要求支持一系列IV大小(在0到1024位之间的任何地方,请以8的倍数)。

因此,当微软申请对其组件进行FIPS验证时,他们声称只支持96位IVs。

但是,从证书列表中的NIST列表(直接从Information复制,并准确列出认证的实现有哪些限制)中的总结来看,这并不是显而易见的。为实现这一目标,它们在全球气候变化管理项下列出:

IV测试长度:(8,1024 )

对于一个天真的读者来说,这似乎表明微软声称支持在8到1024范围内的IV,而NIST测试了它们,但是事实并非如此。NIST有一个单独的标志‘OtherIVLen_ support’;除非声明了这一点,否则您实际上只能获得96位的支持。在Microsoft条目中没有提到该标志,因此Microsoft并不声称支持这些IV长度。

确切地说,NIST希望您知道这一点(如果您不熟悉NIST信息表单的内部结构),我不知道。OtherIVLen_Supported标志甚至在“描述字段的图例”标题中都没有提到。

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

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

复制
相关文章

相似问题

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