序列密码的工作原理


一次一密(One-time Pad,OTP)

OTP的特点:
  • 加解密操作相同——逐bit异或
  • 密钥流是真随机序列
  • 双方密钥流相同
OTP的优点:
  • 加解密速度非常快
  • 理论证明:OTP是无条件安全的。
OTP的缺点:
  • 双方实现长度长且相同的真随机密钥流是非常困难的。

OTP的优点和缺点折中一下就是序列密码

实用序列密码系统模型


  • 序列密码体制的安全强度完全取决于密钥流的安全性。
  • 实用的流密码以长度较短的初始密钥k经过密钥流生成器产生周期较长的伪随机序列。

分组密码与序列密码的对比



分组密码
序列密码
密钥编排(生成)
较简单
复杂
加密/解密
复杂
非常简单

序列密码的分类


同步序列密码:密钥流的产生完全独立于明文和密文

自同步序列密码:密钥流的产生依赖于固定长度的明文或密文
同步序列密码的同步要求:加解密双方要求位置完全同步

自同步序列密码的同步要求:

假设t=3,分析密文丢失对解密的影响。

反馈移位寄存器

序列密码的设计考虑

在设计密钥流生成方法时,需要考虑以下三个因素:
  • 种子密钥k应该易于分配和管理:k要比较短。
  • 密钥流生成方法应该易于快速实现:基本部件——反馈移位寄存器(FSR:Feedback Shift Register)。
  • 安全性:非线性部件
FSR(Feedback Shift Register)
移位寄存器(Shift Register)

基本概念:
级数:L,状态:L维向量
  • 是第j级存储单元的内容,且
  • 状态总数:

例:5级移位寄存器

反馈函数(Feedback function)
基本概念分类:
f是线性函数→LFSR。
f是非线性函数→NLFSR。

例:3级NLFSR



线性反馈移位寄存器

LFSR(Feedback Shift Register)



LFSR的表示方法
  • 结构图(如上图)
  • 线性反馈函数:
  • 联结多项式(也称为特征多项式):
例:4级LFSR结构图如下

反馈系数:
线性反馈函数:
联结多项式:

反馈值:
初态:

反馈值:
初态:

m序列定理:
的联结多项式为本原多项式,那么初态为任意一个非零状态时,均能产生周期为的输出序列,即序列。

A5-1序列密码算法

A5-1 序列密码算法的应用


A5序列加密算法被广泛应用于全球移动通信系统GSM中,用来保护用户手机与基站之间的语音通信.
A5结构图

划分成三部分:
  • 三个LFSR
  • 钟控部分
  • 输出函数
A5-1序列密码算法
  • LFSR算法使用3个级数为19、22和23的LFSR。记为第个LFSR的第k级寄存器的内容





  • 钟控方式——决定了在一个时钟周期内哪些寄存器有动作。
控制方式:择多原则。
钟控的值与寄存器动作方式的对应关系。

A5-1序列密码算法流程
Step 1:将三个LFSR的初态都设置为全零向量;
Step 2:(密钥参与)三个LFSR都规则动作64次,每次动作1步。实现将64bit的初始密钥通过异或操作加载到三个寄存器中。
Step 3:(帧序号参与)三个LFSR都规则动作22次,每次动作1步。实现将22bit的帧序列参与到密钥生成,从而保证每一帧的密钥流是不一样的
Step 4:三个LFSR以钟控方式连续动作100次,但弃用输出;
Step 5:三个LFSR以钟控方式连续动作228次,在每次动作后,将三个LFSR的最高级寄存器中的值进行异或,从而得到228-bit的密钥流KS;
Step 6:将KS用于加密或解密。

密钥流KS的使用