使用散列算法(如SHA-256)加密的文件是否与对称算法(如AES)一样安全?
这是使用密码的方法(这是最简单的例子,请不要建议优化,这只是一个概念):
hash(password+counter+seed)生成与文件内容相同长度的随机二进制数据。当然,对于每个新文件(如GUID),种子必须是唯一的。
问题不在于SHA-256或AES有多安全,或者密码有多安全。假设我们有一个完美的哈希算法,一个完美的对称算法和一个完美的密码。
问题是为什么上面描述的加密作为对称算法更容易破解。
发布于 2022-11-28 13:23:10
为什么加密(在问题中)比对称算法更容易破解?
这个问题使用它的哈希算法来生成流密码的密钥流。这是一种对称加密算法,与标准对称加密算法一样安全,如果直接使用密码作为密钥的话。但是,它比一种精确指定和实现的对称加密算法安全得多,该算法应该使用基于记忆硬密码的密钥派生函数(如Argon2 )将密码转换为密钥。
对于理想的†哈希,破解问题密码的唯一方法是猜测密码。证明这只是一个技术上的问题。但是“密码”的使用意味着一些低熵的东西,SHA-256的使用使它成为密码破解的梦想,因为它非常适合GPU、FPGA和ASIC。密码将以极高的速度进行测试,除非明文本质上是随机的。
†在某种意义上可以被随机神谕或伪随机函数家族的任意公共成员同化。对于安全性来说,具有抗冲突或抗预映像的哈希是不够的。虽然SHA-256不是作为随机oracle或PRF设计的,但是在这些用途中它是不间断的(当它的长度扩展属性不重要时,这就是当前的情况)。
发布于 2022-11-28 13:03:18
问题是:计数器+种子不是秘密的,只有密码是,所以你的方案只有你的密码是安全的。
假设您的密码是随机的,它使用小写、大写字母和数字。(共62个可能性状)。
对于128位安全性(如AES-128),您的随机密码必须长约22个字母。
对于192位安全性(如AES-192),它必须有33个左右的随机字母长。
对于256位安全(如AES-256),它必须是大约44个随机字母长.
如果您使用较短的密码,则您的方案将比标准对称密码更容易破解。
https://crypto.stackexchange.com/questions/103015
复制相似问题