Encryption GnuGP多密钥加密的可扩展性问题

Encryption GnuGP多密钥加密的可扩展性问题,encryption,file-sharing,gnupg,Encryption,File Sharing,Gnupg,我想跟进这里发布的问题: 我已经为我构建的一个web应用程序实现了GnuGP解决方案,但我很快就陷入了可伸缩性问题,我不得不承认我有点卡住了。基本上,您可以使用多个公钥对文件进行加密,这样所有人都可以解密该文件。伟大的但是现在想象一下你和100个人共享这个文件,你是怎么做到的 我遇到的第一个限制是命令行限制,我不能在一行中输入100个公钥 第二个限制是每次我想添加一个新的人或撤销对某人的访问,我必须用101或99个密钥重新加密,这非常耗时 第三个限制更糟糕,假设我共享一个文件夹,每个新用户访问

我想跟进这里发布的问题:

我已经为我构建的一个web应用程序实现了GnuGP解决方案,但我很快就陷入了可伸缩性问题,我不得不承认我有点卡住了。基本上,您可以使用多个公钥对文件进行加密,这样所有人都可以解密该文件。伟大的但是现在想象一下你和100个人共享这个文件,你是怎么做到的

我遇到的第一个限制是命令行限制,我不能在一行中输入100个公钥

第二个限制是每次我想添加一个新的人或撤销对某人的访问,我必须用101或99个密钥重新加密,这非常耗时

第三个限制更糟糕,假设我共享一个文件夹,每个新用户访问该文件夹时都需要对文件夹中每个文件的所有用户重新加密

这一切似乎都很肮脏。。谁会有更好的解决方案


谢谢

为每个文件夹创建一个随机AES密钥,并使用该密钥加密文件,例如使用AES EAX。然后使用您要授予访问权限的人的公钥加密此密钥。如果您以后添加了一个人,请使用“admin”私钥解密,然后使用公钥对私钥进行加密。您可以使用文件名上的哈希(例如SHA-256)作为EAX密码的初始计数器


至于命令行工具,您最好对这些东西进行编程(例如,对于C/C++使用GnuPG本身,对于Java应用程序使用相关的Bouncy Castle)。

为每个文件夹创建一个随机AES密钥,并使用它来加密文件,例如使用AES EAX。然后使用您要授予访问权限的人的公钥加密此密钥。如果您以后添加了一个人,请使用“admin”私钥解密,然后使用公钥对私钥进行加密。您可以使用文件名上的哈希(例如SHA-256)作为EAX密码的初始计数器


至于命令行工具,您最好对这些东西进行编程(例如,在C/C++中使用GnuPG本身,在Java应用程序中使用相关的Bouncy Castle)。

注意GPG可能在内部做类似的事情,也许您可以看看协议,或者,如果有人对PGP/GnuPG有了更好的理解,也许可以修改这个答案。谢谢olwstead,这对文件夹是有用的,这是一个很好的方法。我要试一试。ThanksNote GPG可能会在内部做类似的事情,也许你可以看看协议,或者也许有人可以修改这个答案,谁对PGP/GnuPG有更好的理解。谢谢olwstead,这将适用于文件夹是的,这是一个很好的方法。我要试一试。谢谢