我正在解决加密数据传输的问题,我们在解密时遇到“损坏的垫块”失败大约 200 次。该方案与加密电子邮件非常相似(并且设计用于相当大量的数据:每单位最多 1 GB):
- 生成随机 256 字节用作会话密钥。
- 使用接收者的公钥加密会话密钥
- 使用会话密钥作为 AES 的密钥参数,使用 CBC AES PKCS#7 填充加密数据。
然后接收器将
- 使用他的私钥解密会话密钥。
- 使用会话密钥解密数据。
现在,平均大约 200 次中的 1 次,随机字节将导致数据不可解密:我们在解密结束时得到“填充块损坏”。相同的字节序列要么总是有效,要么总是导致失败。似乎要加密的数据内容没有任何区别(但我仍然在这方面进行了一些测试)。
关于如何避免失败的任何建议?