序列密码原理、流程总结及A5-1序列算法介绍
序列密码的工作原理
一次一密(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的使用