【问题标题】:AES 128 bit encryption of bitstream data in pythonpython中比特流数据的AES 128位加密
【发布时间】: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】:

    是的,基本上有两种方式:

    1. 您有一个与数据相关的唯一值(例如,如果它们按顺序提供,那么您可以创建一个序列号)然后您可以简单地将唯一值用作随机数,然后在计数器模式下使用 AES 加密。计数器模式不会扩展数据,但如果没有提供随机数,它是不安全的。请注意,解密时确实需要随机数。

    2. 您使用格式保留加密或 FPE,例如 NIST 定义的 FF1 和 FF3。这种方法存在一些问题:

      1. 如果输入数据量很小(您的情况似乎如此),这些算法就会出现问题;
      2. FF1 和 FF3 的实现通常很难找到;
      3. 如果您有两个唯一的位值,那么它们将产生相同的密文。

    这些方案都没有明显地提供数据的完整性或真实性,并且根据定义它们会泄漏明文的大小。

    【讨论】:

    猜你喜欢
    • 2011-01-19
    • 2021-06-25
    • 2019-08-17
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多