有限状态自动机
有限状态自动机是具有离散输入和输出(输入集和输出集均有限)的一种数学模型,由以下3部分组成:
① 有限状态集S={ si| i=1,2,…,l }。
② 有限输入字符集A1={ A(1)j| j=1,2,…,m}和有限输出字符集A2={A(2)k |k=1,2,…,n}。
③ 转移函数A(2)k=f1(si, A(1)j ),sh=f2(si, A(1)j)即在状态为si,输入为A(1)j时,输出为A(2)k,而状态转移为sh。
有限状态自动机可用有向图表示,称为转移图
转移图的顶点对应于自动机的状态,若状态si在输入A(1)i时转为状态sj,且输出一字符A(2)j,则在转移图中,从状态si到状态sj有一条标有(A(1)i, A(2)j)的弧线
如图所示,若输入序列为
A(1)1 A(1)2 A(1)1 A(1)3 A(1)3 A(1)1
初始状态为s1,
则,得到状态序列:
s1s2s2s3s2s1s2
输出字符序列:
A(2)1 A(2)1 A(2)2 A(2)1 A(2)3 A(2)1
密钥流产生器
密钥流产生器: 参数为k的有限状态自动机, 一个输出符号集Z、一个状态集∑、两个函数φ和ψ以及一个初始状态σ0组成。
状态转移函数φ:σi→σi+1,将当前状态σi变为一个新状态σi+1。
输出函数ψ:σi→zi,当前状态σi变为输出符号集中的一个元素zi。
大致如图:
关键在于:找出适当的状态转移函数φ和输出函数ψ,使得输出序列z满足密钥流序列z应满足的随机性条件,并且要求在设备上是节省的和容易实现的。
一般采用线性的φ和非线性的ψ,这样将能够进行深入的分析并可以得到好的生成器。