如何定义一个PRG是否安全?
PRG是将一个从{0,1}s中随机 抽取的字符串k映射到{0,1}n上的算法。
当然,由于{0,1}s的数量(2^s)远远小于{0,1}n的数量(2^n),PRG又是一一映射,因此G(k)只是{0,1}n的极小一部分。
因此,如果G(k)的分布和真正的{0,1}n上的均匀分布无法分辨(indistinguishable),就称 PRG是一种安全的算法。因为在这种情况下,G(k)的每一位和其他位都是独立的,无法根据几位推测出另一位。
如何让G(k)伪装成{0,1}n上的均匀分布?
检验标准:找不到对于G有效的分辨算法A。
何为分辨算法A?
判断一个{0,1}n是否是随机生成的
A(x)={
10A think x is randomA think x is not random(56) (56) A ( x ) = { 1 A t h i n k x i s r a n d o m 0 A t h i n k x i s n o t r a n d o m
何为有效的分辨算法?
衡量指标:advantange