【发布时间】:2020-12-26 19:08:35
【问题描述】:
我正在尝试加密比特流数据或基本上像这样 [1,0,1,1,1,0,0,1,1,0,1,1,0,1] 的二进制数据列表python使用AES加密,块大小为128bit,问题是我希望输出也是二进制数据,并且与原始二进制数据列表大小相同,这可能吗?我该怎么做?
【问题讨论】:
标签: python encryption aes pycrypto
我正在尝试加密比特流数据或基本上像这样 [1,0,1,1,1,0,0,1,1,0,1,1,0,1] 的二进制数据列表python使用AES加密,块大小为128bit,问题是我希望输出也是二进制数据,并且与原始二进制数据列表大小相同,这可能吗?我该怎么做?
【问题讨论】:
标签: python encryption aes pycrypto
是的,基本上有两种方式:
您有一个与数据相关的唯一值(例如,如果它们按顺序提供,那么您可以创建一个序列号)然后您可以简单地将唯一值用作随机数,然后在计数器模式下使用 AES 加密。计数器模式不会扩展数据,但如果没有提供随机数,它是不安全的。请注意,解密时确实需要随机数。
您使用格式保留加密或 FPE,例如 NIST 定义的 FF1 和 FF3。这种方法存在一些问题:
这些方案都没有明显地提供数据的完整性或真实性,并且根据定义它们会泄漏明文的大小。
【讨论】: