【问题标题】:What is the entropy of XORed CSPRNG bytes with low entropy hash?具有低熵哈希的 XORed CSPRNG 字节的熵是多少?
【发布时间】:2018-04-27 03:46:23
【问题描述】:

假设我从 CSPRNG 中取出 256 位,并假设它是完美的 256 位熵。叫这个兰特。

那么假设我取了 ASCII 文本“密码”的 sha256。调用此哈希。

现在我们 XOR rand 和 hash。称之为混合。

mixed的熵小于rand吗?

如果有,是否有计算其熵的公式?

下面的例子:作为rand和weak_hash函数的混合熵是多少

#!/usr/bin/python3
import hashlib, os

def main():
    rand = int(os.urandom(32).hex(),16)
    weak_hash = int(hashlib.sha256(b'password').digest().hex(),16)
    mixed = ("%064x" % (rand ^ weak_hash))
    print(mixed)

main()

【问题讨论】:

  • AIUI 如果 XOR 的输入之一具有完美熵,则输出也具有完美熵。如果你有关于弱输入的四位的信息,那么你就不能说关于异或输出的这四位。

标签: cryptography entropy


【解决方案1】:

您正在描述一次性便笺簿。如果密钥流:CSPRNG 的输出是完全随机的,那么密文也将与随机无法区分。

当然,CSPRNG 的输出不是完全随机的。但是,如果 CSPRNG 具有足够的熵,那么您将拥有与流密码相同的安全性,它模仿一次性密码。

所以输出 (mixed) 将与 CSPRNG 一样随机,只要 CSPRNG 没有进入先前遇到的状态。基本上只有在熵源失败时才会发生这种情况。

【讨论】:

    猜你喜欢
    • 2021-10-16
    • 2020-10-03
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    相关资源
    最近更新 更多