流密码
• 一次一密(OTP): C=M⊕K, K 是随机密钥流思想: 用“伪随机”代替 “随机”
PRNG(伪随机序列生成器): {0,1}s→{0,1}n
种子是秘密密钥
• C = M⊕ PRNG(seed)
性质
• 数学性质较好:OTP 绝对保密 、伪随机有很长的研究历史
• 加密速度很快 : 基于异或
• 密钥流只能用一次 :已知明文攻击、PRNG的周期应该足够长
• 应用很广 :Network, DVD, 移动通信
密码学中对伪随机数的要求
• 随机性均匀分布:数列中每个数出现的频率相等或近似相等
• 不可预测性
密码分析者很难从数列前边的数预测出后边的数
伪随机数应用
• 相互认证:使用一次性随机数来防止重放攻击• 会话密钥的产生:用随机数作为会话密钥
• 公钥密码算法中密钥的产生:用随机数作为公钥密码算法中的密钥 、 以随机数来产生公钥密码算法中的密钥
LFSR
m-序列(m-sequence)
• 定义: 由LFSR产生的最大长度序列是m-序列• m-序列{zi}说明:
{zi} 的周期是:2的n次幂-1
满足Golomb 随机性检测 : 在一个周期内, 0和1的个数是2的n-1次幂-1及2的n-1次幂
实际应用中的非线性序列(用m-序列作为驱 动序列)
1. 非线性混合序列 2. 钟控序列
流密码设计目标
1. 长周期 2. 高线性复杂度 3. 统计性能好 4. 足够的“混乱”