序列密码就是对密文进行逐一的加密或者解密
和分组密码比起来,分组密码是一组一组加密,序列密码就是逐个加密
序列密码的安全性能主要取决于密钥流或者密钥流产生器的特性。
优点:实现简单、加密和解密速度快、安全性能较好、没有或少有差错传播
序列密码的基本结构
1.同步序列密码
同步序列密码的原理:
种子密钥k经过由安全信道传送给收、发双方后,由密钥流产生器生成加密和解密所需要的密钥流,而加、解密本身就是简单的模2加法运算。
同步序列密码的特点:
① 密钥流仅仅依赖于种子密钥和密钥流产生器的结构,而与明文流(或密文流)无关。
② 如果密钥流完全随机产生且长度至少和明文流一样长,则可实现绝对安全的“一次一密”。但实际上,这很难做到。
③ 无差错传播。因为密钥流独立于密文流,所以一个密文的传输错误不会影响下一个密文的解密。
④ 为了保障接收端能够正确解密,要求收、发双方必须严格同步。
2.自同步序列密码
自同步序列密码的简介:
与同步序列密码需要收、发双方严格同步不同,自同步序列密码能够依靠自身的能力“自动地”实现收、发双方的同步,因而是一种不需要外部同步的序列密码系统。
自同步序列密码的特点:
① 密钥流不仅依赖于种子密钥和密钥流产生器的结构,还与密文流(或明文流)有关。初始向量IV在这里相当于初始密文的作用,要求收、发双方必须相同。
② 自同步。解密只取决于先前特定数量的密文字符,因此,即使出现删除、插入等非法攻击,收方最终都能够自动重建同步解密,因而收、发双方不再需要外部同步。
③ 有差错传播。因为密钥流与密文流有关,所以一个密文的传输错误会影响下面有限个密文的解密。
密钥流产生器
密钥流产生器是决定序列密码安全性能的主要因素,因而线性反馈寄存器是密钥流产生器最基本也是最重要的部件。
1.线性反馈移位寄存器
定义:如果将移位寄存器的某些级的输出通过异或(模2加)运算函数运算后反馈回它的第一级输入端,便构成了线性反馈移位寄存器。
如果n级线性反馈移位寄存器产生的输出序列的周期为2^n-1,则称为m序列产生器。m序列不仅周期长,而且伪随机特性好,这正是序列密码的密钥流所需要的特性。
2.基于LFSR的密钥流产生器