有限状态自动机(Finite State Machine,FSM或者Finite State Automaton,FSA),也称为有限自动机,表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。有限状态自动机包含有限个状态,一定状态下的输入会产生状态的转移和输出。有限状态集、输入字符集、输出字符集、转移函数、输出函数为有限状态自动机的主要构件。
有限状态机一般用一个多元组表示,例如六元组(∑,Γ,S,s0,δ,ω),其中
●∑是有限输入字符集;
●Γ是有限输出字符集;
●S是非空有限状态集;
●s0是初始状态,为S中的元素;
●δ:S×∑→S是状态转移函数;
●ω:S×∑→Γ是输出函数。
可以使用多种类型的状态转移表描述转移函数和输出函数,从而表示有限状态机。也可用有向图表示有限状态机,称为状态转移图(或转移图)。状态转移图的顶点对应自动机的状态,边对应输入、输出有序对。
【例3-4】 设S={s1,s2,s3},∑={σ1,σ2,σ3},Γ={γ1,γ2,γ3},表3-2给出了此有限状态机的状态转移表,图3-7为对应的状态转移图。(www.xing528.com)
表3-2 状态转移表
图3-7 状态转移图
【例3-5】 在例3-4中,若输入字符序列为σ1σ2σ1σ3σ3σ1,初始状态为s1,则得到的状态序列为
s1s2s2s3s2s1s2
输出字符序列为
γ1γ1γ2γ1γ3γ1
流密码的关键是密钥流生成器,由图3-5和图3-6知,可以将密钥流生成器看做有限状态自动机,其输入字符集为种子密钥k*。对于同步密钥流生成器,函数f为状态转移函数,h为输出函数。对于自同步密钥流生成器,状态为前t个时刻的密文字序列,状态转移函数为密文字序列在时间为t的窗口内的滑动,即若si=(ci-t,ci-t+1,…,ci-1),则si+1=δ(si)=(ci-t+1,ci-t+2,…,ci)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。