这是一个创建于 1360 天前的主题,其中的信息可能已经有所发展或是发生改变。
gpg 可以给不同的人发送同一份加密文件,这些人都可以用自己的密钥,解密这份文件。。开始还比较奇怪,这么神奇的加解密到底是怎么实现的,因为这就相当于一份加密文件有多个不同的解密密钥。
研究了一下,才大呼上当,原来如此:
- 先使用对称加密方法(比如 AES256)加密整个文件,对称加密的密钥假设为 sync_key ;
- 然后使用各个接收人(recipients)的公钥(pubkey1, pubkey2, ...),分别加密 sync_key,得到多个对称密钥的加密结果(sec_sync_key1, sec_sync_key2, ...)
- 将加密后的文档与多个加密后的对称密钥拼接起来
- 各个接收人解密时,只需用自己的私钥尝试解密出对称密钥即可
1 条回复 • 2021-03-08 12:23:17 +08:00
|
|
1
geelaw 2021-03-08 12:23:17 +08:00 via iPhone 5
这个东西是朴素的广播加密,也算不得“上当”。
在多个用户自行生成密钥时,更巧妙的工具叫做临场广播加密( ad hoc broadcast encryption )。
|