我有20个字节的数据需要加密并发送到蓝牙节点。主要问题是接收节点只接受20个字节的数据包。此外,我不能发送多个数据包,一个接一个,因为节点在接收到数据包后直接断开连接。然后,该节点连接到mesh网络,并将该分组推送到网络中的所有节点。
是否有方法使用AES设置加密的块大小?我的电气工程师说,AES128 CCM内置于他的固件编程IDE中,并且能够在他这方面做到这一点。我真的不相信他。
如果我不能用AES发送20个加密字节,有什么加密方法可以?
发布于 2017-09-19 12:32:00
把这个答案看作是对前一个答案的简化和扩展(从粗糙的僵化)
AES-128加密指定块大小为16字节.由于我正在加密20个字节,所以会添加填充,从而使我的输出总数达到32个字节,
您可以使用CTR模式,您可以使用没有任何填充。它有效地创建了一个流密码,所以如果您有20个字节的数据,输出就是20个字节的数据。
尽管您仍然需要salt/计数器和身份验证标记。不过,这取决于你的选择。您能使用隐式计数器吗?
有人已经提到了保存加密的格式,因此--如果您没有更多的空间用于salt /计数器,那么您只需使用一个常数salt,并且没有任何接受某些线程向量的身份验证标记。
https://crypto.stackexchange.com/questions/51618
复制相似问题