Encryption 如何生成AES-ECB加密密钥给出了明文和散列的例子?

Encryption 如何生成AES-ECB加密密钥给出了明文和散列的例子?,encryption,hash,cryptography,aes,Encryption,Hash,Cryptography,Aes,我的问题是,假设你有一些AES-ECB加密的散列,你想解码它。还将为您提供一组示例明文和哈希。例如: 我想要:给定哈希的未知\u明文\u哈希 我有一堆已知的明文和散列,它们用相同的密钥加密。它们(显然)都与给定的哈希不完全相同 如果你能帮忙,请告诉我。这不是出于恶意目的,只是为了了解加密和AES系统是如何工作的。如果您知道所有加密哈希都是用同一个密钥加密的,您可以首先尝试使用明文和加密哈希对查找该密钥。最明显的方法是只取一个明文,首先对其进行散列,然后尝试所有可能的密钥对其进行加密,直到它与您知

我的问题是,假设你有一些AES-ECB加密的散列,你想解码它。还将为您提供一组示例明文和哈希。例如:

我想要:给定哈希的未知\u明文\u哈希 我有一堆已知的明文和散列,它们用相同的密钥加密。它们(显然)都与给定的哈希不完全相同


如果你能帮忙,请告诉我。这不是出于恶意目的,只是为了了解加密和AES系统是如何工作的。

如果您知道所有加密哈希都是用同一个密钥加密的,您可以首先尝试使用明文和加密哈希对查找该密钥。最明显的方法是只取一个明文,首先对其进行散列,然后尝试所有可能的密钥对其进行加密,直到它与您知道的加密散列匹配。如果您正在查找的密钥只是许多可能的AES密钥之一,则设置为失败,因为尝试所有密钥需要花费太长时间

假设您能够以某种方式恢复AES密钥,您可以解密一个没有明文的哈希,然后开始查找明文。
你对明文的了解越多,猜测就越容易。你可以把解密后的散列放入谷歌,看看它会吐出什么,查询已知散列的数据库,或者以最有教育意义的方式进行猜测如果散列足够强且明文足够随机,则此步骤将再次失败。

如果您知道所有加密的散列都是使用相同的密钥加密的,则可以首先尝试使用成对的明文和加密的散列来查找该密钥。最明显的方法是只取一个明文,首先对其进行散列,然后尝试所有可能的密钥对其进行加密,直到它与您知道的加密散列匹配。如果您正在查找的密钥只是许多可能的AES密钥之一,则设置为失败,因为尝试所有密钥需要花费太长时间

假设您能够以某种方式恢复AES密钥,您可以解密一个没有明文的哈希,然后开始查找明文。
你对明文的了解越多,猜测就越容易。你可以把解密后的散列放入谷歌,看看它会吐出什么,查询已知散列的数据库,或者以最有教育意义的方式进行猜测如果散列足够强且明文足够随机,则此步骤将再次失败。

这在计算上不可行。也就是说,你不能这样做

像AES这样的现代加密算法可以抵抗您所描述的

在这种情况下,攻击者可以通过反复询问受害者是否能够成功解密攻击者生成的猜测来解密单个消息。通过巧妙地选择连续猜测,攻击者可以用一百万次左右的尝试解密消息,这是一个相对较小的数字。但即使在这种情况下,攻击者也无法恢复密钥


另外,密码不会生成散列。他们输出密文。散列函数(也称为消息摘要)生成散列。

这在计算上是不可行的。也就是说,你不能这样做

像AES这样的现代加密算法可以抵抗您所描述的

在这种情况下,攻击者可以通过反复询问受害者是否能够成功解密攻击者生成的猜测来解密单个消息。通过巧妙地选择连续猜测,攻击者可以用一百万次左右的尝试解密消息,这是一个相对较小的数字。但即使在这种情况下,攻击者也无法恢复密钥


另外,密码不会生成散列。他们输出密文。散列函数(也称为消息摘要)生成散列。

对于任何值得尊敬的分组密码(AES是值得尊敬的分组密码),解密密文块(而不是“散列”)的唯一方法是知道密钥,从一堆明文-密文对中找到密钥的唯一方法是猜测一个密钥,看看它是否将一个已知明文映射到相应的密文上。如果您对钥匙的选择有一定的了解(例如,宠物名字的SHA-256),这可能会起作用;但是,如果密钥是从所有可能的AES密钥集中随机选择的,那么产生显著成功概率所需的猜测次数是如此之多,以至于你会陷入手工操作的宇宙时代。

对于任何值得尊敬的分组密码(而AES是值得尊敬的分组密码),解密密文块(而不是“散列”)的唯一方法是知道密钥,而从一堆明文-密文对中找到密钥的唯一方法是猜测密钥并查看它是否将已知明文映射到相应的密文。如果您对钥匙的选择有一定的了解(例如,宠物名字的SHA-256),这可能会起作用;但是如果钥匙是从所有可能的AES钥匙中随机选择的,那么产生显著成功概率所需的猜测次数是如此之多,以至于你会陷入手工操作的宇宙时代。

正如其他人所指出的,现代加密算法是专门为抵御这种攻击而设计的。即使是一个相当弱的加密算法,比如微型加密算法,也需要超过800万选择的明文来完成类似的工作。像AES、Blowfish等更好的算法需要的远不止这些

到目前为止,还没有针对AES的实际攻击

如果你有兴趣学习