使用FIPS 1402库在Java中创建OpenPGP消息的加密
我目前正在升级一个生成OpenPGP消息的应用程序,使其符合FIPS 140-2标准。目前,我生成使用RSA/AES-256加密的PGP消息,这两种加密都是使用BouncyCastle及其OpenPGP提供程序批准的算法。我不再能够使用BouncyCastly,因为它不是FIPS 140-2验证,所以我正在查看RSA的BSAFE库
该库没有高级抽象,无法让您直接生成OpenPGP消息。有人知道有一个库可以使用现有的JCE提供程序(比如我的BSAFE库)生成OpenPGP消息吗?我真的很想避免自己实现OpenPGP规范,因为这似乎相当耗时。或者,对格式化我的加密文件的其他方法有什么建议吗
提前感谢您的任何意见
# 1 楼答案
FIPS 140-2不适用于SSL、PGP、S/MIME或SSH等协议。这些是使用RSA和AES等加密算法的安全协议。(然而,商业加密软件供应商不太可能指出这种区别)
FIPS 140-2列出了批准的算法。它还规定了实现这些算法的“加密模块”的测试标准。但是,它没有说明这些算法的应用
所以,你可以使用BouncyCastle的PGP提供商。与其将Bouncy Castle安装为加密提供商,不如安装FIPS 140-2认证的实现。Bouncy Castle的PGP将为其基础加密算法使用首选加密提供商。你可以用同样的方式使用他们的S/MIME支持
# 2 楼答案
S/MIME(加密消息语法)和OpenPGP之间存在重大差异
http://mozilla-enigmail.org/forum/viewtopic.php?t=67
主要是,S/MIME以证书的形式交换密钥(必须使用证书颁发机构,限制为1024位,1年后过期),而OpenPGP使用PGP密钥(可以对等交换,或者使用免费的密钥服务器,或者托管您自己的密钥服务器)
# 3 楼答案
经过大量研究,如果不亲自实现OpenPGP格式,似乎无法做到这一点。然而,加密消息语法似乎是一个合适的替代品