3.5 实际序列密码
利用 PRNG 构建密码流
许多 PNRG 都拥有良好的统计属性,这对强壮的序列密码而言是非常必要的。如果我们对密钥流序列进行统计检验,其输出结果的行为表现应该与抛硬币得到的位序列非常类似。因此,自然而然假设:PRNG 可以用来生成密钥流。但是,这些对序列密钥而言都不足够,因为对手 Oscar 也非常聪明。
利用 CSPRNG 构建密钥序列
密钥流不可预测意味着,给定密钥序列s_1, s_2,…s_n的前 n 位输出位, 不可能计算出位s_{n+1}, s_{n+2}, …。遗憾的是,相当一部分在密码学之外使用的伪随机数生成器都不是密码学安全的。因此,实际中我们需要使用专门设计的伪随机数生成器来生成密钥序列密码。