序列密码
序列密码
引言
- 序列密码又称流密码,它是将明文串逐位地加密成密文字符。并有实现简单、速度快、错误传播少等特点。
- 密码按加密形式可分为:
- 分组密码
- 序列密码
- 密码按密钥分为:
- 对称密码(私钥密码)
- 非对称密码(公钥密码)
- 加解密算法
- 明文序列:m=m1m2……mn……
- 密钥序列:k=k1k2……kn……
- 加密:ci=mi+ki,i=1,2,3,……
- 解密:mi=ci+ki,i=1,2,3,……
- 注:+模2加,0+0=0,0+1=1,1+0=1,1+1=0
- 例 m=101110011,
- c=m+k=111000110,
- m=c+k=101110011.
1949年,Shannon证明了“一次一密”密码体制是绝对安全的。如果序列密码使用的密钥是真正随机产生的,与消息流长度相同,则是“一次一密”体制。但缺点是密钥长度要求与明文长度相同,现实情况中不可能实现,故现实中常采用较短的种子密钥,利用密钥序列生成器产生一个伪随机序列。
序列密码的原理
分组密码与序列密码都属于对称密码,但两者有较大的不同:
- 分组密码将明文分组加密,序列密码处理的明文长度为1bit;
- 分组密码算法的关键是加密算法,序列密码算法的关键是密钥序列生成器。
- 序列密码分类
同步序列密码
- 密钥序列的产生仅由密钥源及密钥序列生成器决定,与明文消息和密文消息无关,称为同步序列密码。
- 缺点:如果传输过程中密文位被插入或删除,则接收方与放送方之间产生了失步,解密即失败。
自动同步序列密码
- 缺点:如果传输过程中密文位被插入或删除,则接收方与放送方之间产生了失步,解密即失败。
- 密钥序列的产生由密钥源、密钥序列生成器及固定大小的以往密文位决定,称为自同步序列密码(非同步密码)。
- 优点:如果密文位被删除或插入时,可以再失去同步一段时间后,自动重新恢复正确解密,只是一些固定长度的密文无法解密。
- 密钥序列生成器的要求(key generation)
- 种子密钥k的长度足够大,一般128bit以上,防止被穷举攻击;
- 密钥序列{ki}具有极大的周期性
现代密码机数据率高达10^8 bit/s,如果10年内不使用周期重复的{ki},则要求{ki}的周期T>=3*106或255; - 良好的统计特征。在一个周期内0、1游程的频率大抵相当;
- 用统计方法由{ki}提取KG的结构或K的信息在再计算上是不可信的。
- 满足混乱醒、扩散性