假设发件人和收件人都已经拥有对方的公钥(证书)。发送方需要生成会话密钥来加密某些数据,并将加密后的数据发送给收件人。所有离线-没有交互步骤。但发件人必须经过认证。你能提出解决这个问题的著名的密钥管理协议吗?
我前几次问过这个问题,但被删除了。现在,我找到了确切的答案,并想公布它。
更新:我回答了我自己的问题,但如果有人发表评论或给出替代答案,那就太好了。我想强调的是,协议应该是离线的--像TLS这样的交互式协议不适合。如果没有TLS的离线协议--类似握手--在没有附加威胁/攻击(重播和其他)的情况下是不可能的,请指定最安全的协议及其所具有的威胁,但TSL不可能。对源进行身份验证是必要的。不可否认是可选的。
发布于 2013-09-29 12:24:28
在PKCS#7中有一个答案,在第11节.签名和信封的数据内容类型.下面,使用签名者的私钥加密意味着签名过程。
签名和封装的数据内容类型包括对一个或多个收件人的任意类型的加密内容加密密钥,以及对一个或多个签名者的双加密消息摘要。“双重加密”由一个签名者的私钥加密和一个内容加密密钥加密组成。
构建签名和信封数据的过程包括以下步骤:
1. A content-encryption key for a particular content-
encryption algorithm is generated at random.
2. For each recipient, the content-encryption key is
encrypted with the recipient's public key.
3. For each recipient, the encrypted content-
encryption key and other recipient-specific
information are collected into a RecipientInfo
value, defined in Section 10.2.
4. For each signer, a message digest is computed on
the content with a signer-specific message-digest
algorithm. (If two signers employ the same message-
digest algorithm, then the message digest need be
computed for only one of them.)
5. For each signer, the message digest and associated
information are encrypted with the signer's
private key, and the result is encrypted with the
content-encryption key. (The second encryption may
require that the result of the first encryption be
padded to a multiple of some block size; see
Section 10.3 for discussion.)
6. For each signer, the doubly encrypted message
digest and other signer-specific information are
collected into a SignerInfo value, defined in
Section 9.2.
7. The content is encrypted with the content-
encryption key. 收件人打开信封并分两步验证签名。首先,加密的内容加密密钥之一用接收者的私钥解密,加密的内容用恢复的内容加密密钥解密。第二,每个签名者的双加密消息摘要用恢复的内容加密密钥解密,结果用签名者的公钥解密,并将恢复的消息摘要与独立计算的消息摘要进行比较.“
https://crypto.stackexchange.com/questions/10614
复制相似问题