我正在研究加密数据传输的问题,我们在解密时遇到“损坏的填充块”大约200次失败。该方案与加密电子邮件非常相似(并且设计用于相当大量的数据:每个单元高达1 GB):
接收器将
现在,平均大约200次中的1次,随机字节将导致数据不可解密:我们在解密结束时得到“pad block corrupted”。相同的字节序列将始终工作或始终导致失败。看起来加密数据的内容没有任何区别(但我仍然在这个领域留下了一些测试)。
有关如何避免失败的任何建议?
答案 0 :(得分:1)
是的,Victor Sorokin是对的。会话密钥中的前导零在传输中被删除。
RSA加密是纯粹的数学函数,它会丢弃任何前导零。当会话密钥被解密时,必须重新填充前导零,以便密钥获得原始长度和值。有填充方案,但必须在双方使用。
Bouncycastle常见问题解答添加了一些细节,请参阅此处的问题4: http://www.bouncycastle.org/wiki/display/JA1/Frequently+Asked+Questions