如果我使用块密码为128位的块密码,如果我的数据不是128位的偶数倍,我该怎么办?我正在处理数据包,并且在加密数据时不想更改数据包的大小,但我的数据不是128的偶数倍?
AES分组密码是否允许处理最后一个短的块,而不会在加密后更改消息的大小?
这种细节取决于您使用的链接模式.链接模式定义了调用AES原语的次数.以及对于给定的输入消息的内容.最简单的链接模式包括简单地将输入数据分成连续的16字节块并独立地加密它们中的每一个; 这被称为ECB(作为"电子代码簿")并且已知它具有弱点(即,如果两个输入块相同,在"现实生活"数据中频繁出现,则两个相应的输出块将等于彼此也是,任何人都可以看到).
一些链接模式扩大了数据,即加密的消息将略大于输入消息.其他链接模式(例如CTR)则不然.几乎所有安全链接模式都需要处理"初始值",这是一段数据(通常与块大小相同),不需要保密,但必须为发送方和接收方都知道,并且必须是独特的对于每条消息.一些模式(例如CBC)需要均匀随机的 IV,而一些其他模式将满足于简单的计数器.通常将IV与加密消息一起发送.您还可以使用哈希函数从密钥本身派生IV.
这些事情很棘手,很难知道你是否做得对:安全无法测试; 弱密码系统编译和运行就像任何其他应用程序一样.建议不要设计自己的加密协议.完全没有.使用健壮的原语并不能保证结果是安全的.
| 归档时间: | 
 | 
| 查看次数: | 5078 次 | 
| 最近记录: |