gpt4 book ai didi

encryption - 当加密不是 block 大小的偶数倍的数据时,我必须发送完整的最后一个 block 吗?

转载 作者:行者123 更新时间:2023-12-04 02:28:28 24 4
gpt4 key购买 nike

如果我使用的是 AES 等 block 大小为 128 位的 block 密码,如果我的数据不是 128 位的偶数倍,我该怎么办?我正在处理数据包,并且不想在加密时更改数据包的大小,但我的数据不是 128 的偶数倍?

AES 分组密码是否允许在加密后不更改消息大小的情况下处理最后一个较短的分组?

最佳答案

这种细节取决于您使用的链接模式。链接模式定义了调用 AES 原语的次数。以及关于什么,对于给定的输入消息。最简单的链接模式是将输入数据简单地拆分为连续的 16 字节 block ,并独立加密每个 block ;这被称为ECB(作为“电子密码本”)并且已知有弱点(即,如果两个输入 block 相同,在“现实生活”数据中很常见,那么这两个相应的输出 block 也将彼此相等,任何人都可以看到)。

某些链接模式会放大数据,即加密的消息会比输入的消息略大。其他链接模式(例如 CTR)没有。几乎所有的安全链接模式都需要处理一个“初始值”,它是一段不需要保密的数据(通常与 block 大小相同),但必须为发送方和接收方所知,并且必须是不同的对于每条消息。某些模式(例如 CBC)需要一个均匀随机 IV,而其他一些模式会使用简单的计数器。通常将 IV 与加密消息一起发送。您还可以使用散列函数从 key 本身导出 IV。

这些事情很棘手,而且很难知道你是否做对了:安全性无法测试;弱密码系统可以像任何其他应用程序一样编译和运行。不建议设计自己的加密协议(protocol)。完全没有。使用健壮的原语并不能保证结果是安全的。

关于encryption - 当加密不是 block 大小的偶数倍的数据时,我必须发送完整的最后一个 block 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2845706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com