我正在尝试使用 block 来实现 RSA 加密,以减少大位长度解密的运行时间。我的程序现在的样子,它可以工作,但会读取单个字符并解密它们。正如您可能想象的那样,大位长度的运行时间很长。
有没有一种方法可以轻松地使用 block 实现解密,以便对于这些大位长度更快地工作。如果简单可行的话,带有实现的代码示例会很好。谢谢。
最佳答案
根据您的描述,您似乎正在使用以下加密方案:
for i=0 to length(input):
output(RSA_encrypt(key, input[i]))
这不是一个安全的加密方案。您似乎在寻求一种方法来做类似的事情
for i=0 to blocks(input):
output(RSA_encrypt(key, block(i, input)))
这同样不安全。基于 RSA 的安全加密方案通常涉及使用 RSA 加密唯一的 session key ,然后使用对称密码(例如 AES)加密消息。例如,参见RSAES-OAEP 。不要尝试自己实现它,因为您很可能会出错。相反,请使用信誉良好的加密库。
永远记住加密规则:
- 永远不要设计自己的加密货币。
- 切勿实现自己的加密货币。
- 任何人都可以设计自己无法破解的加密货币。
关于java - 使用 block 的 RSA 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23177996/