Encryption 使用多个密钥进行加密/解密
是否可以对数据进行加密,以便使用多个不同的密钥对其进行解密 例如: 我已经用密钥1加密了数据,但我希望能够用密钥2、3和4解密Encryption 使用多个密钥进行加密/解密,encryption,gnupg,encryption-asymmetric,Encryption,Gnupg,Encryption Asymmetric,是否可以对数据进行加密,以便使用多个不同的密钥对其进行解密 例如: 我已经用密钥1加密了数据,但我希望能够用密钥2、3和4解密 这可能吗?是的,可能。谷歌“多方加密”作为一个开始 顺便说一句,这里并没有把它们放进去,而是用它们的软件包 --马库斯克 关于如何做到这一点的草图,请考虑一下。加密消息包括: 有效载荷,用一次性pad加密 一次性键盘,用键盘1加密 一次性键盘,用键盘2加密 一次性键盘,用键盘加密 持有密钥i的接收者只需用密钥解密pad副本,然后解密有效负载 然而,这只是一个证据,
这可能吗?是的,可能。谷歌“多方加密”作为一个开始 顺便说一句,这里并没有把它们放进去,而是用它们的软件包 --马库斯克 关于如何做到这一点的草图,请考虑一下。加密消息包括:
- 有效载荷,用一次性pad加密
- 一次性键盘,用键盘1加密
- 一次性键盘,用键盘2加密
- 一次性键盘,用键盘加密
doc.txt
。爱丽丝可以用她的私钥解密。Bob还可以使用他的私钥解密
gpg --encrypt --recipient alice@example.com \
--recipient bob@example.com doc.txt
该功能在《用户指南》中标题为“的章节中有详细介绍。多(两个以上)密钥RSA可能是这样的-我不是数学家,因此该算法不一定是安全的,我只想介绍一下
m=p*q*r;p、 q,r是大素数
fi(m)=(p-1)(q-1)(r-1)
d==(e1*e2*e3*…*ei)^(-1)(mod fi(m));e1…ei是任意数,计算d以满足方程
y1==x^e1(m型)
y2==y1^e2(模m)
y3==y2^e3(模m)
x==yi^d(模m)
例如,此算法可用于提高洋葱路由器的速度。是的,这是可能的
是可以对多个收件人进行加密。此外,当你认为你可能希望能够阅读你发送给某人的邮件,并且要做到这一点,你需要在收件人列表中,这似乎是合乎逻辑的
命令行
以下是如何通过gpg
命令行执行此操作(如中所述):
GUI客户端
您的GUI必须为多人提供加密方式
机制
有一个关于信息安全的问题:
GPG使用对称密钥对文件加密一次,然后放置一个头
识别目标密钥对和密钥的加密版本
对称密钥
[…]当加密到多个收件人时,此
头被多次放置,提供了一个唯一加密的版本
为每个收件人使用相同的对称密钥
PGP客户端通常使用称为“会话密钥”的对称密钥加密实际数据。然后使用每个“收件人密钥”(即使用-r/--recipient指定的密钥)对会话密钥进行加密。这有时被称为是一个错误。现在,我相信GnuPG默认使用256位会话密钥和AES将明文数据加密到该AES-256会话密钥,在本例中,您的接收方密钥是您的RSA/DSA/ECDSA/等非对称密钥
这样做的一个原因是,像AES这样的对称密码算法通常比像RSA这样的非对称密码算法快得多。因此,GnuPG只需要使用RSA加密约256位(会话密钥),并且可以使用AES使用该会话密钥加密数据(数据大小随您的需要而定!)。英特尔机器甚至有一个内置指令,用于在硬件中执行算法的某些步骤,这使得GnuPG在加密/解密数据方面更加敏捷
这样做的另一个原因是,它允许对多方加密PGP加密的文档,而无需将文档的大小增加一倍。请注意,当您为一个加密文档指定多个收件人(例如,gpg-ea-r Alice-r Bob-o ciphertext.asc
)时,存储的加密文档(ciphertext.asc)的大小不是您刚刚将其加密到Alice的两倍
另请参见中的
--show session key
参数,以便能够仅解密会话密钥,例如,允许第三方解密加密给您的文档,而无需将您的私钥或明文数据传输给他们。同上。知道如何做到这一点很酷,但我在上面找不到隐藏的个人主页。@Mitch,这可能就是我们的答案!(如果是/不太感谢的话,请测试并推荐!)@MarkusQ,请参阅上面我对Mitch的问候。测试/如果可以,谢谢!:-)因此,这会产生一个加密文件,可以使用任意一个私钥读取,而不是每个密钥读取一个文件?@user8675309,是的。数据由公共对称密钥加密。只有对称密钥由每个收件人的公钥加密。它不是为每个收件人重新加密整个数据。这可能很糟糕,一旦你知道一次性密码,你就有了一个已知的纯文本,以及其他密钥的加密值。使用这些信息,你可以更容易地找出其他密钥是什么。谷歌搜索“多方加密”的结果不多。“广播加密”也包含了这种情况,你可能会有更好的运气。@Kibbee:密钥不是秘密的,它们是公开的。因此,更容易发现它们是什么并不重要。(这些方案只用于只能用于加密而不能用于解密的密钥。)我非常确定,实际的实现不会使用共享的一次性pad(它需要与纯文本和加密文本一样大,从而使消息大小加倍),而是实际使用共享的对称加密密钥(通常是muc)
gpg --encrypt \
--recipient alice@example.com \
--recipient bob@example.com \
clear-message.txt