Bouncy Castle API如何知道使用哪个密钥加密?

邦迪

我对Bouncy Castle API处理多个公钥以加密数据的过程感到好奇。例如,如果我有3个不同的客户端希望我加密数据并使用其公共密钥发送给他们以进行加密,如果我分别标记每个客户端的公共密钥-充气城堡如何确定应使用公共密钥对客户端1进行加密1,而不是公钥3(这将是客户端3的公钥)?

从描述的角度看,publicKeyEncryptedData附带有一个keyID标记,可以用来查找相应的私有密钥,但是我不明白它是如何选择正确的密钥进行加密的。

佩珀

没有。您必须指定所有收件人(即用于加密的证书)。使用PKCS#7进行加密时,该过程为:

  • 生成随机对称密钥(即AES256)
  • 用对称密钥加密数据
  • 用接收者的公钥加密对称密钥(如果X个接收者应该能够解密,然后X次加密对称密钥)
  • 将所有内容放到PKCS#7中(加密的对称密钥放在带有接收者身份的结构中。通常是用于对称密钥加密的证书的序列号和颁发者DN)

解密过程为:

  • 查找能够解密邮件的收件人。PKCS#7包含应该能够解密的所有收件人的序列号和发行者DN。现在在加密存储中查找具有序列号和具有相应私钥的发行人DN的证书。如果您在加密存储中拥有所有收件人的私钥,则使用哪个私钥都没有关系。
  • 使用私钥解密加密过程中使用的对称密钥
  • 使用对称密钥解密数据

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Bouncy Castle生成keyPair

来自分类Dev

Java:使用Bouncy Castle进行PGP加密

来自分类Dev

Bouncy Castle作为提供者与Bouncy Castle API的提供者

来自分类Dev

如何在Bouncy Castle中加载PuTTYgen密钥

来自分类Dev

如何在Bouncy Castle中加载PuTTYgen密钥

来自分类Dev

通过Bouncy Castle提取GPG密钥使用标志

来自分类Dev

通过Bouncy Castle提取GPG密钥使用标志

来自分类Dev

使用Bouncy Castle PGP从单个文件加载多个公共密钥

来自分类Dev

Bouncy Castle AES加密-以块形式提供输入

来自分类Dev

如何使用Bouncy Castle编辑Java中的密码套件列表

来自分类Dev

Bouncy Castle轻量级API中的CTR操作模式?

来自分类Dev

Bouncy Castle中可以使用哪些“安全” ECC曲线?

来自分类Dev

使用Bouncy Castle提供程序创建SSLContext实例

来自分类Dev

Bouncy Castle中可以使用哪些“安全” ECC曲线?

来自分类Dev

使用 Bouncy-Castle 库从证书中读取 SubjectAlternativeNames

来自分类Dev

Jasypt和Bouncy Castle的EncryptionOperationNotPossibleException

来自分类Dev

Bouncy Castle的OSX RSA解密

来自分类Dev

如何在Java密钥库中存储Bouncy Castle PGP密钥?

来自分类Dev

使用Bouncy Castle在C#中加密和使用AES在Python中解密的问题(EAX模式)

来自分类Dev

PGP密钥服务器和Bouncy Castle OpenPGP API Java

来自分类Dev

PGP密钥服务器和Bouncy Castle OpenPGP API Java

来自分类Dev

使用 Bouncy Castle 获取 PGP 加密和登录的字符串输出

来自分类Dev

强制使用错误的密钥解密文件-C#+ Bouncy Castle

来自分类Dev

Bouncy Castle加密的有效负载已从SAP PI破坏

来自分类Dev

具有OpenSSL密钥和Bouncy Castle的C#RSA实现

来自分类Dev

如何使用Bouncy Castle构建RFC 3161时间戳

来自分类Dev

如何使用Java中的Bouncy Castle从CSR文件确定公钥大小?

来自分类Dev

如何使用Java中的Bouncy Castle从CSR文件确定公钥大小?

来自分类Dev

如何在C#/ Bouncy Castle中创建PBKDF2-SHA256密码哈希

Related 相关文章

  1. 1

    使用Bouncy Castle生成keyPair

  2. 2

    Java:使用Bouncy Castle进行PGP加密

  3. 3

    Bouncy Castle作为提供者与Bouncy Castle API的提供者

  4. 4

    如何在Bouncy Castle中加载PuTTYgen密钥

  5. 5

    如何在Bouncy Castle中加载PuTTYgen密钥

  6. 6

    通过Bouncy Castle提取GPG密钥使用标志

  7. 7

    通过Bouncy Castle提取GPG密钥使用标志

  8. 8

    使用Bouncy Castle PGP从单个文件加载多个公共密钥

  9. 9

    Bouncy Castle AES加密-以块形式提供输入

  10. 10

    如何使用Bouncy Castle编辑Java中的密码套件列表

  11. 11

    Bouncy Castle轻量级API中的CTR操作模式?

  12. 12

    Bouncy Castle中可以使用哪些“安全” ECC曲线?

  13. 13

    使用Bouncy Castle提供程序创建SSLContext实例

  14. 14

    Bouncy Castle中可以使用哪些“安全” ECC曲线?

  15. 15

    使用 Bouncy-Castle 库从证书中读取 SubjectAlternativeNames

  16. 16

    Jasypt和Bouncy Castle的EncryptionOperationNotPossibleException

  17. 17

    Bouncy Castle的OSX RSA解密

  18. 18

    如何在Java密钥库中存储Bouncy Castle PGP密钥?

  19. 19

    使用Bouncy Castle在C#中加密和使用AES在Python中解密的问题(EAX模式)

  20. 20

    PGP密钥服务器和Bouncy Castle OpenPGP API Java

  21. 21

    PGP密钥服务器和Bouncy Castle OpenPGP API Java

  22. 22

    使用 Bouncy Castle 获取 PGP 加密和登录的字符串输出

  23. 23

    强制使用错误的密钥解密文件-C#+ Bouncy Castle

  24. 24

    Bouncy Castle加密的有效负载已从SAP PI破坏

  25. 25

    具有OpenSSL密钥和Bouncy Castle的C#RSA实现

  26. 26

    如何使用Bouncy Castle构建RFC 3161时间戳

  27. 27

    如何使用Java中的Bouncy Castle从CSR文件确定公钥大小?

  28. 28

    如何使用Java中的Bouncy Castle从CSR文件确定公钥大小?

  29. 29

    如何在C#/ Bouncy Castle中创建PBKDF2-SHA256密码哈希

热门标签

归档