java pgp加密_java – 用于Yubico OpenPGP智能卡的PGP数据加密

你的问题有点困惑,但我很确定你想使用与智能卡上的RSA私钥相对应的RSA公钥来创建PGP加密的消息,然后使用智能卡上的RSA私钥(帮助)解密它们. PGP(像其他一切)使用混合加密,所以相关部分中的PGP加密消息包括:

>使用适当的对称算法(如TDES或AES)使用随机生成的工作密钥加密实际消息,称为K

>工作密钥K加上由RSA使用收件人的公开密钥加密的一些元数据和由原来的PKCS#1标准定义的填充,现在正式称为RSAES-PKCS1-v1_5,但是仍然被广泛地称为PKCS1.

您不需要执行加密步骤,因为执行标准的任何软件都可以执行加密步骤,包括GnuPG或BouncyCastle的bcpg库.如果你想自己做,可能是使用假的K测试数据,没有真实的消息,你需要做填充和RSA模幂运算;在Java中,至少Oracle或openjdk Java与标准的加密提供程序,您可以使用通常使用.getInstance(“RSA / ECB / PKCS1Padding”)获取的javax.crypto.Cipher.

“PKCS1”加密填充(用于RSA)如该文档的第52页底部和第53页的顶部所述,尽管不是格式与current OpenPGP spec(及更早版本)相同,但是引用和有效地相同到near-current PKCS#1 spec(和更早),所有这些都说是:

>一个字节00

>一个字节02

>足够的字节非零随机,使结果正确的长度和安全

>一个字节00

>“明文”,PGP加密实际上是the PGP spec规定的工作对称密钥K格式.

注意段落开始

In case of the AES algorithm

似乎是一个不同的选择,而不是PGP AFAICS,在上一页描述

By option (announced in Extended capabilities) the card supports the decryption of a plain

text with an AES-key stored in a special DO (D5). This is useful if no certificate or public

key exists and the external world has a common secret with the card.

所以忽略它.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值