如果我在散列前对随机生成的数字(例如256位)进行多次洗牌,即使黑客知道我何时生成这些数字,那么使PRNG密码安全是否可行呢?
注意:他们说PRNG不是密码安全的,因为生成依赖于生成器的状态,它有点确定性,而且不够随机。简单的移动256位PRNG (长度约为77-78个数字,即生成所有9s的概率接近于零)是否足以使其密码安全?
更具体地说,如果我使用Python的random.getrandbits()随机生成256位数字的长度,然后对其使用random.shuffle()几次,这能帮助密码安全吗?这能抵抗量子黑客吗?
发布于 2018-10-25 04:52:24
我想你要问的是,如果我使用一个非密码随机产生,它是否足以洗牌,然后哈希得到密码安全的东西。一般来说,答案肯定是否定的。首先,非加密随机调用通常具有非常低的熵。我假设random.shuffle()也是一个非密码函数,所以你将低熵随机性添加到低熵随机性中;结果仍然有很低的熵,可以强制执行。最后,你把结果打乱了。我在这里假设您希望使用加密散列函数。在这种情况下,在合理的建模下,如果哈希函数的输入有足够高的熵,那么就没有问题,否则就不是。我猜你不在这里。
在任何情况下,就像所有密码学一样,很难做到这一点,在你成为专家之前,你不应该尝试自己发明它。
https://crypto.stackexchange.com/questions/63437
复制相似问题