下面的文章讨论了RSA用于文件加密的方法:
加密的文件是JPEG图像。我的问题是:如果我们以类似的方式加密更大的文件,比如10 MB,并且能够用现代的i7处理器达到可接受的加密速度,该怎么办?
注意:我认识到RSA并不意味着以这种方式进行文件加密,而且混合加密方案更合适(用会话密钥加密数据,然后用RSA密钥加密会话密钥)。请务必容忍我,并假设我们必须加密一个大文件与RSA。我只是想了解这样做的实际影响和限制,我意识到混合加密在这里更合适。
发布于 2020-04-14 01:10:14
不,你需要私钥。您可以使用公钥加密的次数没有实际限制。不过,我要确保填充中的随机性至少是128位。还要注意的是,使用私钥解密多次使算法更容易受到侧信道攻击(这通常依赖统计信息)。此外,它不允许您为每次解密使用PIN或密码来保护私钥。
对,对,对。
RSA密钥大小非常重要,因为较大的密钥大小将极大地影响性能。此外,RSA密钥大小增长非常快,如果您需要更多的密钥强度。这类操作当然非常慢,特别是在私钥操作方面。
由于填充要求,用于明文的块大小与用于密文(即输入总是小于输出)的块大小不同。普通文本的块大小通常比不太安全的PKCS#1 v1.5填充时的密钥大小小11,并且与OAEP的哈希值不同。密文的块大小与模数的大小相同(以字节为单位)。
当涉及到加密速度时,填充类型通常不是什么大问题。RSA私钥操作相当慢,与它们相比,解填充不会花费太多时间。然而,填充的生成依赖于安全的随机数生成器。随机数生成可以是快速的,但它也可能阻止或减缓系统的其他手段。
请注意,性能只是避免使用RSA进行直接加密的原因之一。与明文相比,密文的扩展是另一个重要原因。如前所述,要求私钥可用于批处理操作很可能会使其处于危险之中。
发布于 2020-04-28 15:39:07
正如您所指出的,您应该使用目标接收方的RSA公钥来加密辅助密钥,该密钥可以用于更快的流分组密码(如AES )。接收方使用相应的私钥派生辅助密钥,并继续将文件解密为AES中的明文。
我们尝试用河豚和TWOFISH加密非常大的文件,但这也是令人无法接受的缓慢。问题始终是用户群体的管理。例如,要处理健康信息隐私,您还必须使用可以审计的技术。我们尝试了一种新的方法:在密码的同时发布解密代码,并依靠客户端浏览器来完成繁重的工作。这具有不需要分发支持软件的优点。谷歌RedTitan REDWRAP。大文件演示会给你一个速度的想法。
https://crypto.stackexchange.com/questions/79946
复制相似问题