序列密码
- 1、概述
- 1.1序列密码的分类
- 1.1.1同步序列密码
- 1.1.2自同步序列密码
- 2、序列密码的组成
- 2.1密钥序列生成器KG
- 2.2有限状态自动机
- 3、LFSR
1、概述
采用一个短的种子密钥来控制某种算法获得长的密钥序列的办法,用以提供加解密,这个种子密钥的长度较短,存储、分配都比较容易。
察罕俄国密钥序列的密钥发生器就是序列密码的关键。
分组密码与序列密码的区别在于有无记忆性,分组密码无记忆性,序列密码又记忆性,里面有一个记忆元件。
1.1序列密码的分类
分为同步序列密码和自同步序列密码两大类。
同步序列密码中,密钥序列的产生独立于明文消息和密文消息。因此可以将同步序列密码的加密器分成密钥流生成器和加密变换器两个部分。其中同步序列密码的加密变换可以有很多选择,只要保证变换是可逆的就可以。
1.1.1同步序列密码
同步序列密码的关键是密钥流生成器,一般可以看成一个参数为k的有限状态自动机,由一个输出序列z,一个状态集,两个函数(状态转移函数和输出函数)和一个初始状态组成。
输出函数是指,将当前状态变成输出序列中的一个元素。
关键在于找出适当的状态转移函数和输出函数,采用线性的状态转移函数和非线性的输出函数,将能够进行深入的分析并可以得到优良的密钥流生成器。
所以,可以将这一类生成器分成驱动部分和非线性组合部分。
驱动部分控制密钥流生成器的状态转移,并为非线性组合部分提供统计性能好的序列;而非线性组合部分要利用这些序列组合出满足要求的密钥流序列。
目前流行实用的密钥流生成器如下:
1.1.2自同步序列密码
自同步序列密码又称为非同步序列密码,其中产生的密钥序列是主密钥和固定大小的前序密钥序列的函数。
其中,g是通过状态和主密钥k生成密钥序列z的函数,h是通过密钥序列z和明文m生成密文c的函数。其加解密如下图:
解密映射仅与固定长度的密文字符有关,因此密文位在被删除或者插入的时候可以进行自同步。
2、序列密码的组成
2.1密钥序列生成器KG
KG输入的种子密钥k是较短的。
一般的KG结构如图所示:
f一般由m序列生成器构成,提供若干周期大、统计特性好的序列x(称为驱动序列)
F是把f产生的多条驱动序列综合在一起的一些非线性编码手段,目的是有效地破坏和掩盖多条驱动序列中存在地规律或关系,提高线性复杂度。
2.2有限状态自动机
有限状态自动机是具有离散输入和输出的一种数学模型,由有限状态集、有限输入字符集和有限输出字符集以及转移函数组成。
可以用有向图表示转移,转移图。
3、LFSR
移位寄存器是序列密码产生密钥流的一个主要组成部分。GF(2)上的一个n级反馈移位寄存器由n个二元存储器和一个反馈函数f组成。
链接: link
LFSR因其实现简单、速度快、有较为成熟的理论等优点成为构造密钥流生成器的重要的部件之一。