我一直在研究一个在大量文件中使用非对称加密的系统。我目前正在使用带有 4096 位密钥的 RSA 来为每个文件加密一个 256 位随机生成的 AES 密钥,但性能有些欠缺,因为一项必需的操作是扫描所有文件(系统在使用大约 10,000)并确定哪些可以使用特定的私钥解密。虽然我不希望这个操作是即时的,但目前花费的时间太长(每秒处理约 2 个文件)。我考虑减少密钥长度,但即使将其降低到 2048 位也无法提供我需要的性能水平。512 位几乎可以削减它,但是现在可以轻松破解这样的密钥,这是不可能的。
任何人都可以向我指出一个更快但具有相似加密强度的系统的方向吗?它需要通过 Java JCA 提供者(例如 bouncycastle 之类的东西)来实现,以便巧妙地插入到我现有的应用程序中。我知道充气城堡支持 El Gamal,但我找不到任何关于这个算法有多强大的细节,或者它是否可能比 RSA 更快。我还听说椭圆曲线系统只需要相对较短的密钥(384 位等),但不知道在哪里可以找到其中一个的实现。