我需要安全地生成RSA密钥对,为了进一步处理它,我需要访问私有指数。
在RSA密钥对生成方面,FIPS 140-2和FIPS 186-4有什么不同?
如果我正确理解,在FIPS 140-2兼容的环境中生成RSA密钥对将永远不会显示RSA密钥对的私有部分,因为它受到加密模块的保护。
FIPS 186-4是关于验证RSA密钥对是否正确生成并满足素数和指数的要求。
因此,如果我想安全地生成RSA密钥对,并且我想以明文形式访问它的私有部分,我需要使用FIPS 186-4兼容的生成和验证。
我说的对吗?我能正确理解这些吗?
发布于 2015-03-14 12:23:30
FIPS 140-2指定适用于RSA (和其他)密钥生成环境的条件,并为生成本身引用FIPS 186-4。
最近几个Java卡智能卡可以在内部生成每个FIPS 186-4的RSA-2048密钥对,使用安全策略和FIPS 140-2级3级证书来证明这一点。这是在撰写本报告时排名第一的那个。在该智能卡的Java Card虚拟机中,一个简单的Java Card applet运行程序可以生成这样的RSA密钥,并导出私钥,如果您想要的话,这是非常清楚的。该密钥将用于FIPS批准的算法(certs# 1506-1507),并根据FIPS 186-4生成,并由FIPS 140-2级3级证书证明。这不足以假装密钥是在FIPS 140-2兼容的环境中生成的,因为安全政策提到
但是,Java Card applet可以“安全地生成RSA密钥对(具有)访问私有指数的权限,以便进一步处理它”(正如所问的那样),用于某些进程的定义,如主公钥(密钥托管的一种形式)下的私钥加密。我不排除可以获得该applet的FIPS 140-2验证,这样就可以正确地判断RSA密钥对是在FIPS 140-2验证环境中生成的。
https://crypto.stackexchange.com/questions/24389
复制相似问题