首页 文章

揭示纯文本的长度?

提问于
浏览
1

如果我刚刚用CBC和Rijndael将一些纯文本加密成密文,那么告诉全世界原始纯文本的长度是x字节是不安全的吗?它似乎总是与密文的长度相同,所以,我认为没关系,但是它有一些块模式或密码吗?

4 回答

  • 0

    您应该使用PKCS5填充方案 . 此方案始终填充额外信息,包括已添加的额外字节数 . 在解密时,检查最后一个块以查看应丢弃多少字节 .

    有关原始邮件长度的信息很难抑制 . 即使使用填充到块大小,也可以推断原始消息的长度为n,n-1,n-2,...或n块大小为1个字节 . 大多数加密协议很少或根本没有努力隐藏明文长度 .

  • 5

    输出的长度并不总是相同 . 但是,如果明文的长度相似,则由于填充(密码/ AES是分组密码),密文的长度可以相同http://en.wikipedia.org/wiki/Padding_(cryptography)

    如果你告诉世界明文的长度,它会削弱你的安全性,所以除非有一个很好的理由,否则我会反对它 .

    另请看一下CBC的工作原理:

    http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29

  • 0

    纯文本的长度通常与密文不同 . 纯文本在加密前填充 . 如果您发送两个不同消息中的一个“是”或“否”,则发送原始长度可能不是一个好主意 . 如果您的所有消息长度相同,则可以发布该长度 .

  • 0

    Rijndael是一个分组密码,因此纯文本将填充到一个完整的块 . (这可能会被您的加密层隐藏) .

    因此加密的消息文本长度将指示纯文本长度 .

    如果您按消息长度泄漏信息,则必须自己填充 . 实际上,发送消息可能会泄漏信息,因此当您没有任何要发送的内容时,您需要发送无操作消息 .

相关问题