【发布时间】:2011-09-16 15:45:15
【问题描述】:
我正在为嵌入式系统开发 USB 引导加载程序,我的要求之一是通过 USB 进行的数据传输应该是安全的(请耐心等待,我是加密新手)。我决定用 AES 加密数据,但数据并不总是很好的 16 字节块,所以我需要填充它。 PKCS7 似乎是为 AES 填充数据时使用的标准方法(更不用说它非常简单),所以我想我想使用它。
我的问题是,我无法理解 PKCS7 是如何不丢失数据的。我举个例子来说明:
想象一个要加密的 16 字节缓冲区,其最后一个字符是 0x01。现在想象一个要加密的 15 字节缓冲区……这个缓冲区将用 0x01 填充。两个缓冲区都经过加密、传输、接收和解密后,接收端如何区分带填充的缓冲区和实际最后一个字符为0x01的缓冲区?
我觉得我在 PKCS7 规范中遗漏了一些东西。谁能帮我理解?提前致谢。
【问题讨论】:
标签: cryptography aes pkcs#7