我正在为嵌入式系统开发USB引导加载程序,我的一个要求是USB上的数据传输应该是安全的(请耐心等待,我是加密的新手).我决定用AES加密数据,但数据并不总是很好的16字节块,所以我需要填充它.似乎PKCS7是填充AES数据时使用的标准方法(更不用说它非常简单了),所以我想我想使用它.
我遇到的问题是,我无法理解PKCS7如何不丢失数据.让我用一个例子来说明:
想象一下要加密的16字节缓冲区,其最后一个字符是0x01.现在想象一个15字节的缓冲区要加密......这个缓冲区将用0x01填充.在对两个缓冲区进行加密,传输,接收和解密之后,接收器如何区分缓冲区与填充区和实际最后一个字符为0x01的缓冲区之间的区别?
我觉得我在PKCS7规范中遗漏了一些东西.谁能帮我理解?提前致谢.