Cryptography 数据的公钥加密/解密

Cryptography 数据的公钥加密/解密,cryptography,public-key-encryption,pgp,Cryptography,Public Key Encryption,Pgp,使用PGP加密某些数据时,不提供密码。PGP的对称算法部分使用的密码是什么 这是使用AES 256加密的小字符串的输出 -----BEGIN PGP MESSAGE----- Version: BCPG v1.39 hI4D+UDEMBpnd50QAf9bWG97E9FfnSKB/WpVcBtLJqk5f/Ih9YZTUDULDZpSE0TP ObJnCs91okOv6/BtDRDZ84ChF5pOZezb5+aL3TW5AfwK3gJ7nPTlmZOm5Kf7qOfB n307xpn0qRw

使用PGP加密某些数据时,不提供密码。PGP的对称算法部分使用的密码是什么

这是使用AES 256加密的小字符串的输出

-----BEGIN PGP MESSAGE-----
Version: BCPG v1.39

hI4D+UDEMBpnd50QAf9bWG97E9FfnSKB/WpVcBtLJqk5f/Ih9YZTUDULDZpSE0TP
ObJnCs91okOv6/BtDRDZ84ChF5pOZezb5+aL3TW5AfwK3gJ7nPTlmZOm5Kf7qOfB
n307xpn0qRw395y1mfOm10TsMpaCkbSvwjhqPi8hRMM17y29OsqGLstZdeAaNTGt
0mwB7EiZti4jOUF3/SCNnn2vA9hVc6o6c0l0h5vQOF0L+eL1Pmhg8RcFT4kHRnI/
A+Ad4hsbOxD1vvzZHx2iETkt1JmNTHmOOY5Cw/n+sFlU9JzZpzAtqwUjjnyN8NjQ
6NbpwL6gebTJCVTNW2c=
=kI32
-----END PGP MESSAGE-----

Old: Public-Key Encrypted Session Key Packet(tag 1)(142 bytes)
        New version(3)
        Key ID - 0xF940C4301A67779D
        Pub alg - ElGamal Encrypt-Only(pub 16)
        ElGamal g^k mod p(511 bits) - 5b 58 6f 7b 13 d1 5f 9d 22 81 fd 6a 55 70 1b 4b 26 a9 39 7f f2 21 f5 86 53 50 35 0b 0d 9a 52 13 44 cf 39 b2 67 0a cf 75 a2 43 af eb f0 6d 0d 10 d9 f3 80 a1 17 9a 4e 65 ec db e7 e6 8b dd 35 b9 
        ElGamal m * y^k mod p(508 bits) - 0a de 02 7b 9c f4 e5 99 93 a6 e4 a7 fb a8 e7 c1 9f 7d 3b c6 99 f4 a9 1c 37 f7 9c b5 99 f3 a6 d7 44 ec 32 96 82 91 b4 af c2 38 6a 3e 2f 21 44 c3 35 ef 2d bd 3a ca 86 2e cb 59 75 e0 1a 35 31 ad 
                -> m = sym alg(1 byte) + checksum(2 bytes) + PKCS-1 block type 02

New: Symmetrically Encrypted and MDC Packet(tag 18)(108 bytes)
        Ver 1
        Encrypted data [sym alg is specified in pub-key encrypted session key]
                (plain text + MDC SHA1(20 bytes))
我知道AES 256值9隐藏在第一个数据包标记1中,但密钥在哪里?由于公钥用于加密,因此在要加密的公钥中没有隐藏的密钥。而且,我认为RFC4880实际上从未指定在哪里获取密钥


我是否遗漏了公钥加密的一些要点?

随机生成的会话密钥存储在第一个数据包中:


原始数据从不使用公钥算法直接加密;而是使用随机生成的会话密钥。如果您对多个收件人进行加密,则相同的会话密钥将分别对每个收件人进行加密。

您不需要密钥,因为任何人都可以使用公钥。在这种情况下,公钥用于加密用于加密其余数据的随机AES密钥。只有在解密过程中,您才需要私钥来检索加密的AES密钥,当然还有数据。这当然是接收方的公钥/私钥对。

我刚刚意识到,我将指令中的会话密钥误解为数据包,而不是密钥。

从哪里检索?我在这两个数据包中都没有看到它,除非它的m或KUSALY共享密钥是由其中一方生成的——让我们称它们为Alice,并使用另一方的公钥Bob进行加密。要获取会话密码,您需要对方的Bob私钥并解密共享会话密钥Alice正在为Bob加密数据,她需要他的私钥calccrypt:加密总是使用公钥执行,使用私钥解密,除非您加密的实际上是签名,这是用来显示你有私钥密码的:呃,Alice万一会生成会话密钥-希望使用安全的RG。使用公钥加密后,只有相应的私钥才能用于解密对称会话密钥,从而解密数据。因此,Alice,此时无法从邮件中检索会话密钥。想必您的收件人没有广泛共享他们的私钥…因为有两种方法可以轻松获得m-在加密机加密时出现,或在解密机解密时出现…另一个问题上的精彩片段;m包含随机生成的会话密钥,以及算法指示器和crc,用于指示传输中的任何潜在错误。您可能需要查看,尤其是第5.1节,然后继续阅读。如果您没有得到所需的答案,可能是一个很好的访问地点。
... Public-Key Encrypted Session Key Packet ...