如果一个纯文本首先使用密钥K1解密(使用AES解密算法),然后使用相同的K1加密,那么最终结果是否仍然是原始纯文本?
发布于 2017-03-26 07:38:26
如果您说的是一个块消息上的AES块密码,那么是的,K
是实际的128/192/256位密钥。对于给定的密钥,加密E(message, key)
和解密D(ciphertext, key)
函数是相互完善的逆函数。通过构造任何在单块消息m
上操作的块密码加密/解密函数(对于AES,一个块=128个-位=16个字节),您将始终同时拥有E(D(m,K),K) = m
和D(E(m,K),K) = m
。
这就是说,如果您在内部使用AES作为加密/解密的分组密码的安全模式(如openssl aes-[128|192|256]-cbc
)中使用了一些编写良好的工具,那么如果您只是简单地向工具提供一条纯文本消息并要求它用您的密钥解密所述消息,则这可能无法工作。
这是因为您的工具使用AES作为您的分组密码将为您作出各种假设,并做了更多的工作,而不仅仅是应用AES对每个块。具体地说:
发布于 2017-03-26 07:19:20
就加密例程而言,“解密”和“加密”这两个术语只是函数--它们通过一个函数运行一个输入来检索原始内容。一般来说,他们的做法正好相反--如果加密器向上翻转一点,解密器就会向下翻转。原文并不重要。
当您决定对任何文本运行“解密”例程时,它将在文本上运行相反的函数--但是由于您的输入实际上没有加密,您可能会得到一个绝对垃圾流。但再说一次,这不是重点。如果您加密这个垃圾输出,理论上您应该能够检索输入。
Tl博士:是的。这应该是可能的。
https://crypto.stackexchange.com/questions/45066
复制相似问题