流密码的基本概念
- 流密码是将明文划分成字符(如单个字母),或其编码的基本单元(如0,1),每一字符分别与**流对应字符“作用”,从而进行加密。解密时以同步产生的**流实现。
- 流密码强度完全依赖于**流产生器所生成序列的随机性和不可预测性
- 核心问题是**流生成器的设计
- 保持收发两端**流的精确同步是实现可靠解密的关键

流密码的分类
-
同步流密码SSC
-
定义
- 若σi与明文消息无关,则**流将独立于明文。(σi是生成**流的一个关键参数)。否则称为自同步流密码。
- 由于滚动**zi=f(k,σi)与明文字符无关,因而密文字符xi=Dzi(yi)也不依赖于此前的明文字符。因此可将同步流密码的加密器分成**流产生器和加密变换器两部分
有限状态自动机
**流产生器
- 一般可看成一个参数为k的FA(有限状态自动机),由一个输出符号集Z、一个状态及Σ、两个函数φ和ψ、以及一个初始状态σ0组成。状态转移函数φ:σi→σi+1,输出函数ψ:σi→zi
- 这种**流产生器设计及关键在于找出适当的状态转移函数φ和输出函数ψ,使输出序列z满足**流序列z应满足的几个条件,并且在设备上是节省的和容易实现的。为了实现这一目标,必须采用非线性函数。
- 由于非线性有限自动机理论不完善,常采用线性的φ和非线性的ψ。

常见的两种**流产生器
线性反馈移位寄存器(LFSR)
- 移位寄存器是流密码产生**流的一个主要组成部分。
结构
- GF(2)上一个n级反馈移位寄存器由n个二元存储器与一个反馈函数f(a1,a2,,...,an)组成

共有2n种可能状态,每一时刻的钻沟通可用n维向量(a1,a2,......,an)表示,其中ai是第i级存储器的内容。

反馈表达式


输出序列满足
性质

- LFSR输出序列性质完全尤其反馈函数决定
- n级LFRS状态数最多有2n个
- 状态周期≤2n−1
- 输出序列周期=状态周期,≤2n−1
LFSR的一元多项式表示
多说无益,数论知识有点点多,直接上例题


m序列的伪随机性
- 如果**流是周期的,要完全做到随机性是困难的。严格地说,这样的序列不可能做到随机,只能要求截获比周期短的一段时不会泄露更多信息,这样的序列称为伪随机序列。
- 游程:
-
二元有限域上的自相关函数

定义中的和式表示序列{ai}与{ai+τ}(序列{ai向后平移τ位得到)在一个周期内对应位相同的位数与对应位不同的位数之差。


非线性序列



常见的**流生成器设计

祖冲之密码(ZUC)
-
ZUC作用
- 4G国际标准。算法包括:
- 密码算法
- 基于ZUC的机密性算法128-EEA3,用于
数据保密
- 基于ZUC的完整性算法128-EIA3,用于
完整性保护
祖冲之密码是面向32位字的序列密码算法



祖冲之密码结构图
## ZUC优缺点

相关文章: