线性反馈移位寄存器的制作方法

文档序号:7621807阅读:314来源:国知局

专利名称::线性反馈移位寄存器的制作方法
技术领域
:本发明是有关于一种提供加密码(encryption)与解密码(decryption)的装置,特别是针对于使用找寻表(look-uptable)或是(sub-table)次表的线性反馈移位寄存器,本发明有完整详细的说明。在现代的通讯与电脑系统中,安全措施是一个很重要的因素。为了增加系统的安全措施,必须从事信息的加密码与解密码。在传送信息之前,数据传送器必须先将数据(可称作明码文本)加密码,再来传送加密码信息(可称作密码文本)至接收器。此接收器在此原始的明码文本信息被复原以及被了解之前必须将密码文本解密码。在安全措施系统中通常使用的元件为线性反馈移位寄存器(linearfeedbackshiftregister,以下简称LFSR),其是使用在加密码与解密码两种系统中。每一个LFSR可以由LFSR多项式(亦可称作输入多项式)来表示。图1是LFSR功能方块图,并可由下列的LFSR或输入多项式表示x31+x7+x5+x3+x2+x+1(1)在本范例中,LFSR将输入样本(inputpattern)的第32、第8、第6、第4、第3、第2与第1位元作XOR运算,产生一个输出位元。然后,此输入样本左移一个位元,并且此原始输入样本的最小有效位元就由此输出位元来代替而产生一个新的修正后的输入样本。LFSR继续将修正后的输入样本作相同的运算而产生下一个新的输出位元。此运算最后将全部的明码文本信息加密码或者将全部的密码文本信息解密码为止。很明显的,已知的LFSR运算是以串行的形式在一个运算周期产生1个位元的输出(亦即是一个LFSR位移产生1个输出位元)。而已知的LFSR有下列的缺点。首先,已知的串行输出形式的LFSR在高速系统之下,其传输速率并不能够满足这些系统。如先前所述,因为LFSR为串行形式,其传输速率为一个运算周期产生1个位元的输出,这些已知的LFSR不能够满足许多高速系统其一个运算周期或时间必需产生8个或更多位元的输出。为了增加这些LFSR的输出速度,便产生了已知的并行的输出(亦即每个周期时间8位元或16位元)。然而,并行输出增加了电路的复杂性并且增加LFSR的设计与制造成本。通常,用来并行运作的电路会太大并且在经济效益的考虑上很难被实现。第二,为了要增加安全措施系统,周期性的改变LFSR多项式是所期望的。不幸的,如果没有花费成本以及资源来再设计,已知的LFSR并不能够适应可更改的LFSR多项式。举例来说,已知的LFSR运用组合的逻辑电路(randomlogic)。然而,当LFSR多项式改变时原本的硬件逻辑电路就必须重新的设计才能适应LFSR多项式的改变。此再设计花费的成本及资源是相当高的。所以,必须要有一个较为弹性的方式来实现LFSR以克服上述所显露出的缺点。本发明的目的是提供一个合适的线性反馈寄存器,其可以在一周期或者一次产生超过1个位元的输出(提供并行的输出)。本发明的另一目的是提供一个合适的线性反馈寄存器,其可以适应LFSR多项式的改变,而不需重新设计逻辑电路。本发明的另一目的是提供一个合适的线性反馈寄存器,其可以在成本效率的考量下执行。而本发明将线性移位寄存器分为多级的计算,而每一级的计算均用存储器来实现,上一级计算的结果(即上一个级存储器的输出)将作为下一个级的存储器的定址地址。最后一级的存储器则是用来求出其前一级的所有存储器其输出作XOR运算后的结果,同时输出需要的位元数输出,并可将明码文本加密码成为密码文本或者将密码文本解密码成为明码文本,以实现本发明。本发明提供了一种线性反馈移位寄存器用于加密码与解密码系统。此线性反馈移位寄存器用以在每一周期产生k位元的输出,该线性反馈移位寄存器提供n阶的一LFSR多项式其有复数个系数,该线性反馈移位寄存器包括一存储器单元用以储存所述LFSR多项式中的系数与一输入样本经计算后的结果,该存储器有一输入端用以接收输入样本,以及一与该LFSR多项式相符合的一输出端。根据输入样本及储存在存储器中的内容,此移位寄存器可产生所希望的并行输出结果。本发明提供了一种将数据选择性的加密码与解密码的方法,其中包括步骤提供n阶的一LFSR多项式的复数个系数给一线性反馈移位寄存器;提供线性反馈移位寄存器一存储器单元,用以储存LFSR多项式的系数与一输入样本经过计算后的结果,存储器单元有一输入端用以接收输入样本;以及根据输入样本,提供符合LFSR多项式的一输出端。在本发明的技术方案中较好的是,该存储器单元可以包含复数个存储器区块,各存储器区块产生一并行位元并形成k位元的输出。所述复数个存储器区块可以是由k个存储器所构成。其中存储器单元大小为2(n+1)×1。其中复数个存储器区块可以包括至少二级的存储器区块。较好的是,当该LFSR多项式被分割为m个次多项式时,该线性反馈移位寄存器包括一第1级存储器区块与一第2级存储器区块,该第1级存储器区块包括m个存储器,其中m为该LFSR多项式被分割为次多项式的数目,该第2级存储器区块包括k个存储器,其中k为该线性反馈移位寄存器每次所产生的位元数目。较好的是,线性反馈移位寄存器中的第1级存储器区块的各存储器接收一输入样本当作一输入地址。线性反馈移位寄存器的第2级存储器区块的各存储器接收第1级存储器区块的存储器的输出并执行一XOR(异或)运算。线性反馈移位寄存器还包括一输入处用以在每一周期从该存储器单元接收k位元的输出。线性反馈移位寄存器每一周期向高位元处位移k位元,其中k是大于1,并且k是表示第2级存储器区块的存储器的数目。而且,在上述的方法中,较好的是提供k位元的输出用以作为线性反馈移位寄存器的输入。且其中的存储器单元包含复数个存储器区块,各存储器区块产生一并行位元并形成k位元的输出。存储器区块可以是由k个存储器所构成。存储器单元大小可以为2(n+1)×1。复数个存储器包括至少二级的存储器区块。上述方法还包括每一周期向高位元处位移k位元,其中k是大于1,并且k是表示第2级存储器区块的存储器的数目。采用本发明的技术方案,能够在不增加电路成本的情况下提高系统的传输速率,同时在不用投入新的成本和进行新的设计的情况下,就可以适合LFSR多项式的改变,具有应用范围更广、系统速度更高、更便于使用的特点。为让本发明的上述目的、特征、和优点能更明显易懂,下面将举较佳实施例,并配合附图,作详细说明如下图1是已有技术的线性反馈移位寄存器的示图;图2为本发明可以执行加密码/解密码系统的方块图;图3为图2中的加密引擎的更详细的示意图;图4为图2中的解密引擎的更详细的示意图;图5为本发明在图3或图4中的更详细的移位寄存器实体图;图6A为图5的LFSR用一个LFSR多项式为范例的方块图;图6B与6C为图6A的LFSR的运算范例;以及图7与图8为多级LFSR。下面所给出的描述、详细的细节是为了提供对本发明的更好的理解,其目的为解释但并不用以限制本发明。然而熟悉此技艺的人士,可以用其他实例来达成本发明的详细的细节。大家都知道的细节或者已有技术数据处理技术,硬件装置及电路则将被省略,并不会使本发明的描述不清楚。加密码与解密码系统10图2为本发明可以执行加密码/解密码系统10的方块图。加密码/解密码系统10包括加密引擎12与解密引擎11。加密引擎12接收明码文本16,并且根据加密密钥18来将明码文本16加密码以及已定义的加密算法来产生密码文本20。解密引擎11接收密码文本20,并且根据解密密钥22来将密码文本20解密码以及已定义的解密演算法来复原为明码文本16。用来加密码的加密密钥18和用来解密码的解密密钥22可以是相同的也可以是不相同的。本发明的LFSR可以执行任一个加密引擎12或解密引擎11,其图2与图3为更详细的视图。图3为图2内的加密引擎12的更详细的绘示图。加密引擎12包括移位寄存器40与代换电路44(可称作S-盒子(S-BOX))。移位寄存器40包括接收加密密钥18的输入端以及产生已经定义输出讯号位元数的输出端(亦即k个位元)。移位寄存器40可以根据本发明的指导来组合。代换电路44包括接收移位寄存器40的输出的第一输入端,接收k位元明码文本16的第二输入端以及产生k位元密码文本20的输出端。每一次由代换电路44所产生的密码文本20的位元数目都是依据移位寄存器40的输出位元数目来决定。实际上密码文本20的位元数目可以大于k,在本实施例中LFSR输出的位元数目则为k位元。代替电路44的运行是众所皆知的技术,其是由以加密算法为基础产生的映象表(mappingtable)所构成。在动作方面,移位寄存器40根据原始的输入产生k位元的输出,而此k个位元的输出将作为代替电路44的一个输入用来产生k个位元的加密码文本,同时这k个移位寄存器的输出位元也将反馈至移位寄存器40。这样,移位寄存器40内的原始输入将被左移k个位元,同时后面k个低位元(LSB)就被移位寄存器40输出的k个位元所取代。使用新的移位寄存器输入(亦即将原始输入左移k个位元,同时后面k个低位元是由移位寄存器40的输出所取代),移位寄存器40产生另外的k位元的输出,并且S盒子44产生新的k位元密码文本20。重复此步骤直到所有的明码文本16都被加密码为密码文本20为止。图4为图2内的解密引擎11的更详细的视图。解密引擎11包括移位寄存器40A与代换电路44A(可称作S-盒子(S-BOX))。移位寄存器40A包括接收解密密钥22的输入端以及产生已经定义位元数输出讯号的输出端(亦即k个位元)。移位寄存器40A可以根据本发明的指导来组合。代换电路44A包括接收移位寄存器40A的输出的第一输入端,接收k位元的密码文本20的第二输入端以及产生k位元的明码文本16的输出端。每一次由代换电路44A所产生的明码文本16的位元数目都是依据移位寄存器40A的输出位元数目来决定。代替电路44A的执行是众所皆知的技艺,其是由已经定义好的映象表在加密算法为基础之下所形成。在动作方面,移位寄存器40A根据原始输入产生k个位元的输出,此k个位元的输出将作为代替电路44A的一个输入,用来产生k个位元解密码文本,同时移位寄存器40A的这k个输出位元将反馈至移位寄存器40A。这样,移位寄存器40A内的原始输入将被左移k个位元,同时后面k个低位元(LSB)就被移位寄存器40A的输出所取代。使用新的移位寄存器输入(亦即原始输入被左移k个位元,同时后面k个低位元是由移位寄存器40A的输出所取代),移位寄存器40A产生另外的k位元的输出,并且S盒子44A产生新的k位元明码文本16。重复此步骤直到所有的密码文本20都被解密码为明码文本16为止。导出一般式或者第n个输出等式一般式(generalexpression)或者第n个输出多项式将被推导出。此处,″+″的符号其实是代表XOR(异或)的运算。假设LFSR多项式为f(x)=Σi=0naixi-----(2)]]>输入样本为{bn,bn-1,bn-2..............b2,b1,b0}并且当输入样本反馈至LFSR时其输出次序为{dk,dk-1,dk-2,.........d2,d1,d0},{an,an-1,an-2..............a2,a1,a0}则为LFSR的系数。然后可以导出下列的结果d0=Σi=0..aibi-------(3)]]>d1=Σi=0n-1ai+1bi+a0d0]]>=Σi=0n-1ai+1bi+a0Σi=0naibi]]>=Σi=0n-1(ai+1+a0ai)bi+a0anbn]]>=Σi=0nd1ibi-----(4)]]>其中在i≤n-1之下d1i=(ai+1+a0ai)d1n=a0and2=Σi=0n-2ai+2bi+a1d0+a0d1]]>=Σi=0n-2ai+2bi+a1Σi=0naibi+a0Σi=1nd1ibi]]>=Σi=0n-2(ai+2+a1ai+a0d1i)bi+a1(an-1bn-1+anbn)+a0d1nbn+a0d1n-1bn-1]]>=Σi=0n-2(ai+2+a1ai+a0d1i)bi+(a1an-1+a0d1n-1)bn-1+(a1an+a0d1n)bn]]>=Σi=0nd2ibi------(5)]]>其中在i≤n-2之下d2i=(ai+2+a1ai+a0d1i)d2n-1=a1an-1+a0d1n-1d2n=(a1an+a0d1n)d3=Σi=0n-3ai+3bi+a2d0+a1d1+a0d2]]>=Σi=0n-3ai+3bi+a2Σi=0naibi+a1Σi=0nd1ibi+a0Σi=0nd2ibi]]>=Σi=0n-3(ai+3+a2ai+a1d1i+a0d2i)bi+a2(an-2bn-2+an-1bn-1+anbn)]]>+a1(d1nbn+d1n-1bn-1+d1n-2bn-2)+a0(d2nbn+d2n-1bn-1+d2n-2bn-2)=Σi=0n-3(ai+3+a2ai+a1d1i+a0d2i)bi+(a2an-2+a1d1n-2+a0nd2n-2)bn-2]]>+(a2an-1+a1d1n-1+a0d2n-1)bn-1+(a2an+a1d1n+a0d2n)=Σi=0nd3ibi-----(6)]]>其中在i≤n-3之下d3i=(ai+3+a2ai+a1d1i+a0d2i),d3n-2=a2an-2+a1d1n-2+a0d2n-2d3n-1=a2an-1+a1d1n-1+a0d2n-1d3n=a2an+a1d1n+a0d2n从以上的推导,第m个输出为dm=Σi=0ndmibi=[dmndmn-1......dm1dm0]bnbn-1..b1b0-----(7)]]>其中dmLFSR的第m个輸出dmiLFSR的第m个输出位元的輸出多項式的第i个系数,此系数是結合a0,a1.....an的結果bi輸入样本由上面所描述,输出顺序{dk,dk-1,dk-2,.........d2,d1,d0}中的每个位元可由一个多项式来表示,此多项式称为该位元的输出多项式,并且此输出多项示的系数是LFSR多项式的系数{an,an-1,an-2..............a2,a1,a0}经由不同的线性组合后的结果。当LFSR多项式的系数知道了以后,执行(7)的等式,就可以得到所有输出位元的输出多项式的系数。在输出顺序的第m个位元的获得是由将所提供的输入样本{bn,bn-1,bn-2..............b2,b1,b0}带入符合第m个输出位元的输出多项式。故若在一个运算周期需输出k个位元的LFSR系统中可以根据上述的等示(7)而推导出k个输出多项式,当接收到任一个输入样本,只需将此输入样本代入这k个输出多项式中,便可在一个运算周期中,得到k个位元的输出,对于如何以存储器来实现符合之上述概念的LFSR,以下段落予以说明。适应性本发明使用一个或多个存储器来代替逻辑电路执行LFSR,使本发明可以适应LFSR多项式的调整改变。本发明可以使用存储器单元来执行上述的等式(7),使得设计者可以经由改变存储器单元的内容来适应多项式的改变。存储器单元的大小为2(n+1)×1,其中(n+1)代表地址总线宽度,1代表数据总线宽度,n代表LFSR多项式的阶数。一个输入样本,像是{bn,bn-1,bn-2..............b2,b1,b0},是用来作存储器单元的定址。举例来说,输入样本{0,0,0,..,0}被当作存储器单元的地址,而储存在{0,0,0,..,0}位置内的数据则被存取。更进一步说明,当输入样本{0,0,0,..,1}被当作存储器单元的地址,而储存在{0,0,0,..,1}位置内的数据则被存取。以类似的形式,2(n+1)的位置可以用适合的地址来存取。在例子中,设计者可以使用上述的等式(7)来计算所有的dm值,然后根据下列的对应将这些值储存起来,当接收到任一个输入样本时,便可以根据下列的对应输出其所对应的的第m个输出位元dm(0,0,0,...,0)储存在位址(0,0,0,...,0)dm(0,0,0,...,1)储存在位址(0,0,0,...,1)................dm(1,1,1,...,1)储存在位址(1,1,1,...,1)其中dm(0,0,0...,0)指当输入样本为(0,0,0...,0)时第m个输出位元的值,dm(0,0,0...,1)指当输入样本为(0,0,0...,1)时第m个输出位元的值,以此类推,dm(1,1,1...,1)指当输入样本为(1,1,1...,1)时第m个输出位元的值。也就是当第m个位元的输出方程式被推导出来之后,即当等式(7)的所有系数被推导出来之后dm(0,0,0...,0)表示将(0,0,0...,0)此输入样本代入等式(7)后所计算出的值,dm(0,0,0...,1)表示将(0,0,0...,1)此输入样本代入等式(7)后所计算出的值,于此类推,dm(1,1,1...,1)表示将(1,1,1...,1)此输入样本代入等式(7)后所计算出的值。而对于一个必须在一个周期内输出k个位元的LFSR来说,根据前面的描述,对于每个输出位元均有一相对的输出方程式,总共有k个输出方程式,假设这k个输出方程式为d0(x)、d1(x)....dk(x),其中x指输入样本(bn,bn-1...b1,b0),根据上一段的描述,每一个输出方程式均可用一个2n+1×1的存储器来实现,所以对一个要在一个周期输出k个位元的LFSR而言,总共需k个2n+1×1的存储器,而每个存储器用来实现一条相对应的输出方程式。如何解决N很大时的问题假设存储器单元的地址总线宽度为(n+1),输出数据宽度为k。假设输入样本提供{bn,bn-1,bn-2..............b2,b1,b0}给存储器单元。一般来说,当LFSR的多项式阶数(n)增加时,存储器单元变为更困难以及更耗成本来执行。举例来说,一些电路其设计n等于16可能会太大并且不适合的,然而对于另外的电路设计,n大于或者等于16是适合的。本发明分割原始的LFSR多项式成为次多项式来定址n很大时的问题。发明人确认输出多项式dm有下列的特征dm=Σi=0ndmibi=Σj=0t-1dmjbj+Σl=1t+p-1dm1b1+.....+Σr=n-p+1ndmrbr]]>=Σi=0zgi]]>=dmndmn-1...dmn-p+1bnbn-1..bn-p+1+..+dmt-1dmt-2...dm0bt-1bt-2..b0---(9)]]>其中gi代表每一个次多项式的结果;z代表原始的多项式被分割成为次多项式的数目。其中z与n的关系式如下(n+1)=z*p+qq<z其中p表示(n+1)除以z的商,q表示(n+1)除以z的余数。根据方程式(9),首先必须决定原始的LFSR要被分割成为多少次多项式,也就是说z值必须先由设计者决定,当z值决定之后,每个次多项式便可以被推导出,根据等式(9),第一级的存储器其内容为每个次多项式的结果,而第二级的存储器其内容为储存在第一级各次多项式结果作XOR之后的结果,详细的实现方式将在下列描述中作说明。一个移位寄存器实施例图5所示为根据本发明实施例的图3的移位寄存器40或是图4的移位寄存器40A的方块图。首先输入样本{bn,bn-1,bn-2..............b2,b1,b0}被分为z段,每段的宽度为p,假设其q为0。否则其前面(z-1)段的宽度皆为p,最后一段为t。其中p、q、t、z与n的关系式如下(n+1)=z*p+q如果q=0则t=0,如果q≠0则t=(n+1)-(z-1)*P。每一段的宽度为图5第1级存储器74的地址总线宽度。举例来说,假设z段如下B0=(bn,bn-1,...,bn-p+1)B1=(bn-p,...,bn-2p+1).......Bz-1=(bx-1,bx-1,...,b0)其中B0、B1....Bz-2其宽度均为p,而Bz-1的宽度为x。当q=0,x等于p,否则x等于t,由等式(9)中得到的每个输出位元的输出方程式可以被分割成z个次多项式,(z式由设计者决定),如果要并行输出k个位元,则此k个输出位元的相对输出方程式可以表示成下列的等式d0=Σi=0nd0ibi=Σj=0t-1d10jbj+Σl=1t+p-1d201b1+...Σr=n-p+1ndz0rbr=Σx=0z-1g0x]]>d1=Σi=0nd1ibi=Σj=0t-1d11jbj+Σl=1t+p-1d211b1+...Σr=n-p+1ndz1rbr=Σx=0z-1g1x]]>.......dk-1=Σi=0ndk-1ibi=Σj=0t-1d1k-1jbj+Σl=1t+p-1d2k-11b1+...Σr=n-p+1ndzk-1rbr=Σx=0z-1gk-1x]]>dk-1dk-2..d1d0=dk-1ndk-1n-1....dk-11dk-1n-p+1..d0nd0n-1....d01d0n-p+1bnbn-1...bn-p+1+...+dk-1t-1dk-1t-2....dk-10..d0t-1d0t-2....d00bt-1bt-2...b0]]>=s0.0s1.0...sk-1.0+s0.1s1.1...sk-1.1+.....+s0.z-1st.z-1...sk-1.z-1-----(10)]]>其中gmn是指若将第m个输出位元的输出多项式分割成z段时其第n个次多项式的结果。p、t、z与n的关系如下(n+1)=z*p+qq<z并且假如q不等于0,t=(n+1)-(z-1)*p,否则t等于0。移位寄存器40或40A包括第1级存储器区块70与第2级存储器区块80。第1级存储器区块70包括许多的存储器或表74(即是存储器10,存储器11,......,存储器1z-1)。存储器74(z)的数目完全依照原始多项式被分割次多项式的数目来决定。在第一级的存储器区块70内的每个存储器74其内容为根据(10)计算的结果存储器10用来实现运算式dk-1ndk-1n-1....dk-1n-p+1..d0nd0n-1....d0n-p+1bnbn-1...bn-p+1,]]>存储器11用来实现运算式dk-1n-pdk-1n-p-1....dk-1n-2p+1..d0n-pd0n-p-1....d0n-2p+1bnbn-1...bn-p+1,]]>于此类推,存储器1z-1用来实现运算式dk-1t-1dk-1t-2....dk-10..d0t-1d0t-2....d00bt-1....b0,]]>而详细的内容为,假设用存储器10为例子,存储器10的地址宽度为p而输出总线宽度为k,则其地址(0,0,0,..0)内所含的内容为将(bn,bn-1,...bn-p+1)=(0,0,0,..0)时代入上列的运算式所得的结果(s0,0,s1,0,...sk-1,0)。而地址(0,0,0,..1)内所含的内容为将(bn,bn-1,..bn-p+1)=(0,0,0,..1)时代入上列的运算式所得的结果(s0,0,s1,0,...sk-1,0)。其余的地址内容也是用相同的方式得到。而地址(1,1,1,..1)内所含的内容为将(bn,bn-1,..bn-p+1)=(1,1,1,..1)时代入上列的运算式所得的结果(s0,0,s1,0,..sk-1,0)。而至于其他在存储器70内的每个存储器,其内容也是用同样的方式推导出。z和n之间的关系(原始多项式的阶数)为(n+1)=z*p+qq<z如先前所述,p为(n+1)除以z的商数,q为(n+1)除以z的余数。每一个次多项式是首先要被决定的。假如q不等于0,前面(z-1)个存储器大小皆为(2p×K),第1级存储器区块70的最后一个存储器大小为(2t×K),其中t=(n+1)-(z-1)*p。假如q为0,则所有z个第1级存储器区块70存储器74大小为(2p×K),K表示并行输出的位元数。输入样本60分割为z段而每一段相对应于符合的第1级存储器区块70的存储器74都是一个输入地址。B0表示存储器10的输入地址,Bz-1表示存储器1z-1的输入地址。第2级存储器区块80包括许多的存储器84(亦即是存储器20,.....,存储器2z-1)每一个都有地址总线宽度z位元的数目并且输出一位元的数据总线宽度,z是第1级存储器区块70存储器74的数目。举例来说,第2级80的k个存储器其所储存的内容为将第1级存储器区块70的存储器74输出作XOR运算之后的值。每一个存储器84都有地址总线宽度z,并且输出一位元的数据总线宽度。每一个存储器84大小为(2z×1)。第2级存储器区块80允许在同时产生k位元(并行处理)。举例来说,存储器20包括一个输入端用以接收地址位元S00,...,S0z-1,并且经由基本原则产生输出位元d0。存储器2k-1包括一个输入端用以接收地址位元Sk-10,...,Sk-1z-1,并且经由基本原则产生输出位元dk-1。根据等式(10),每一个di输出是经过一个存储器的执行。存储器可以包括一个第1级与一个第2级,而每一个级又可以有一个或者更多的次存储器(sub-memory)。每一个输出di需要第1级存储器区块70的z个存储器74及第二级存储器区块80中的一个存储器84。假如在同时有k个输出位元产生,在q=0时,在第1级存储器区块需要z个(2p×k)的存储器。在q不等于0,第1级需要(z-1)个存储器,每一个存储器大小为(2p×k)以及一个存储器其大小为(2t×k)。图6A所示为图5的移位寄存器用一个LFSR多项式为范例的方块图。LFSR112包括一个第1级存储器区块118与一个第2级存储器区块124。第1级存储器区块118包括一个第一存储器134与一个第二存储器138。第2级存储器区块124包括一个第一存储器144与一个第二存储器148。一个第三存储器154。假设输入样本114为{b4,b3,b2,b1,b0},并且其LFSR多项示为f(x)=x4+x2+x+1,LFSR多项示为4阶(亦即n=4),LFSR112一次(亦即一次运算、周期或者位移)产生3位元的输出。每一周期输出的位元数(k)为3。d2、d1与d0的输出多项式可表示如下(使用等式(2)-(7))d0=x4+x2+x+1d1=x4+x3+x2d2=x3+x2+x每一个输出多项式的系数为{d04,d03,d02,d01,d00}={1,0,1,1,1}{d14,d13,d12,d11,d10}={1,1,1,0,0}{d24,d23,d22,d21,d20}={0,1,1,1,0}假设每一个输出多项式分割为二个次多项式(亦即z=2),因为(4+1)=2*2+1,根据等式(10),p=2,q=1,因为q不等于0,t=(n+1)-(z-1)*p=(4+1)-(2-1)*2=3。输出顺序可表示为d2d1d0=101101b4b3+111100110b2b1b0=m0+m1]]>其中m0=101101b4b3=s2,0s1,0s0,0,m1=111100110b2b1b0=s2,1s1,1s0,1]]>当二级存储器区块(118,124)被利用,由上述等式(9),第1级存储器区块118包括一个(2p×k)=22×3大小的第一存储器134(即存储器10)与一个(2t×k)=23×3大小的第二存储器138(即存储器11)。再者,输入样本114被分割成二段B0={b4,b3}与B1={b2,b1,b0}。B0段与B1段各别为存储器134(存储器10)与存储器138(存储器11)的输入地址。第一存储器134接收b4与b3为输入地址,根据基本原则产生输出位元S00,S10与S20。第二存储器138接收b2b1与b0为输入地址,根据基本原则产生输出位元S01,S11与S21。表1为第一存储器134在阵列m0(matrixm0)的内含,其内含为将{b4,b3}的各种可能组合代入阵列运算式m0所得到的结果。表2为第二存储器138在阵列m1的内含,其内含为将{b2,b1,b0}的各种可能组合代入阵列运算式m1所得到的结果表1存储器10在阵列m0的内含表2存储器11在阵列m1的内含第2级存储器区块124,因为k=3与z=2,需要三个存储器(144,148,154),每一个存储器需要的大小为22×1。存储器(144,148,154)是用来执行XOR,其输入是由第1级存储器区块118的存储器(134,138)的结果所提供。每一个存储器(144,148,154)内含都相同,如表3所示(亦即,存储器2i,i=2,1,0)表3存储器2i的内含,i=2,1,0然而,存储器(144,148,154)接收不同的输入地址。第一存储器144接收S00与S01输入地址产生输出位元d0。第二存储器148接收S10与S11输入地址产生输出位元d1。第三存储器154接收S20与S21输入地址产生输出位元d2。图6B与6C所示为图6A以11100当作b4,...,b0在每一级的结果范例。图6B为第一运算周期。首先一个AND(逻辑“与”)运算在下列之间被执行b4,b3与d04,d03;b4,b3与d14,d13;以及b4,b3与d24,d23。然后,每一个AND运算再执行XOR运算产生S00,S10,S20的输出。第二,一个AND运算在下列之间被执行b2,b1,b0与d02,d01,d00;b2,b1,b0与d12,d11,d10;以及b2,b1,b0与d22,d21,d20;。然后,每一个AND运算再执行XOR运算产生S01,S11,S21的输出。第三XOR运算下列之间被执行S00,S01产生d0;S10,S11产生d1;以及S20,S21产生d2。新的位元d0-d2左移至b4...b0。新的样本位元b4...b0再经由上述的AND与XOR运算产生下一个新的位元d0-d2再成为新的样本。而图6C则为下一个运算周期。再另外一个实体范例,其LFSR多项式为x15+x14+x11+x10+x7+x6+x3+x2+1,且并行的输出k个输出位元,LFSR多项式可根据上述等式(9)被分割为二个次多项式(P1与P2),P1为x15+x14+x11+x10,P2为x7+x6+x3+x2+1。根据P1与P2以及前面例子的推导,可以推导出在第一级与第二级内各个存储器的内容。根据前述,第1级存储器区块需要二个(28×k)的存储器,第2级存储器区块需要k个(22×1)的存储器。在特殊的应用上,假如在第1级存储器区块其存储器仍然太大而不能满足需求,有下列两种方法可以解决这一个问题,第一种方法为可依照(9)等式所描述将LFSR多项式分割为更多的次多项式,也就是可以调整z值来改变所需存储器的大小。举例来说,原始的多项式可分割为五个次多项式(P1,P2,P3,P4与P5)P1为x15+x14P2为x11+x10P3为x7P4为x6P5为x3+x2+1此时,第1级存储器区块需要四个(23×k)的存储器以及一个(24×k)的存储器,第2级存储器区块需要k个(25×1)的存储器。另外一种解决在第一级内存储器过大的方法则是把次多项式P1与P2再分割为次次多项式(P11,P12,P21,P22)。此时,提供三级存储器区块的结构。图7与图8示出此实例。假设相同的LFSR多项式x15+x14+x11+x10+x7+x6+x3+x2+1根据本发明所指导,若将其分割为二个次多项式,则此二个次多项式P1与P2分别为P1为x15+x14+x11+x10以及P2为x7+x6+x3+x2+1将原始多项式分割为二个次多项式是根据以下的变数z,p与q(如上描述)原始的多项式x15+x14+x11+x10+x7+x6+x3+x2+1有16项(第13,12,9,8,5,4,1次方项为0)。因为多项式分割为二个次多项式所以z=2,其p(n+1除以z的商数)等于(15+1)/2=8,其q(n+1除以z的余数)等于0。因为q=0,每一个次多项式有p=8项。产生两次多项式P1与P2的一般规则为即是将原始多项式f(x)从最高阶的项计算到最低阶的项,每8项形成一组或是次多项式。要注意的是,P1为最高的8项以及P2为最低的8项。根据上述,第一级需要2个(28×k)的存储器,第二级需要k个(22×1)的存储器。此结构在图7中示出,而存储器10处理多项式P1,存储器11处理多项式P2。假如(28×k)在用途上依旧太大,则电路设计者可依照本发明所指导,以三级的结构分割次多项式(P1,P2)为更多个次次多项式(sub-sub-polynomial)以下的范例中说明如何执行三级的结构。假设P1,P2可以表示为P1为x15+x14+0x13+0x12+x11+x10+0x9+0x8以及P2为x7+x6+0x5+0x4+x3+x2+0x+1在多级的执行上,每一个次多项式(P1,P2)可被视为个别的多项式。举例来说,当P1分割为二个次次多项式(P11,P12)以上述分割原始多项式相同的方式来分割。P11与P12表示如下P11为x15+x14+0x13+0x12以及P12为x11+x10+0x9+0x8图8为将存储器10当成二级的存储器。因为每一个多项式的阶数为多项式的项数减一,P1的项数为8,P1的阶数为7(即n=7)。P1分割为二个次次多项式(亦即z=2)运用先前描述的原理,(7+1)=2*4+0。所以p=4,q=0。若将存储器10用一个二级的存储器来取代,因为z=2,第11级需要2个存储器。因为k=3第12级需要3个存储器。因为p=4,q=0,k=3。第11级每一个存储器需要(2p×k)=(24×3)的大小,第12级每一个存储器需要(2z×1)=(22×1)的大小。根据上述范例的说明,当原始多项式分割为次多项式的数目被决定之后,级的数目,每一级所需要的存储器数量,以及存储器的大小,而这些变数,均可根据本发明的指导而推导出来,在特别的用途上都可以被适当的修改并且将资源作最好的使用。电路设计者可以分析所赋予的多项式,根据上述等式(9),并且评估在每一个特别的用途上其级的数目,每一级的存储器,以及存储器的大小(原始多项式每一个可能的分割方式会产生不同的次多项式)。假如一个特别的用途其在成本效率的设计上不适当,可重复上面所叙述,将原始多项式分割成不同的次多项式。如此,具成本效率,快速且适当的移位寄存器可以根据本发明所指导而被了解。并且,LFSR所使用的存储器允许设计者更改LFSR多项式。综上所述,虽然本发明已以较佳实施例形式揭示于上,然其并非用以限定本发明,任何熟习此技术者,在不脱离本发明的精神和范围内,应可作出各种的更动与修饰,因此本发明的保护范围应以所附的专利要求范围为准。权利要求1.一种线性反馈移位寄存器用以在每一周期产生k位元的输出,该线性反馈移位寄存器提供n阶的一LFSR多项式其有复数个系数,该线性反馈移位寄存器包括一存储器单元用以储存所述LFSR多项式中的所述系数与一输入样本经计算后的结果,该存储器有一输入端用以接收所述输入样本,以及一与该LFSR多项式相符合的一输出端。2.如权利要求1所述的线性反馈移位寄存器,其特征在于该存储器单元包含复数个存储器区块,各所述存储器区块产生一并行位元并形成k位元的输出。3.如权利要求2所述的线性反馈移位寄存器,其特征在于中所述复数个存储器区块是由k个存储器所构成。4.如权利要求1所述的线性反馈移位寄存器,其特征在于所述存储器单元大小为2(n+1)×1。5.如权利要求2所述的线性反馈移位寄存器,其特征在于所述复数个存储器区块包括至少二级的存储器区块。6.如权利要求1所述的线性反馈移位寄存器,其特征在于当该LFSR多项式被分割为m个次多项式时,该线性反馈移位寄存器包括一第1级存储器区块与一第2级存储器区块,该第1级存储器区块包括m个存储器,其中m为该LFSR多项式被分割为次多项式的数目,该第2级存储器区块包括k个存储器,其中k为该线性反馈移位寄存器每次所产生的位元数目。7.如权利要求6所述的线性反馈移位寄存器,其特征在于所述第1级存储器区块的各所述存储器接收一输入样本当作一输入地址。8.如权利要求6所述的线性反馈移位寄存器,其特征在于所述第2级存储器区块的各所述存储器,是接收所述第1级存储器区块的所述存储器的输出并执行一XOR运算。9.如权利要求1所述的线性反馈移位寄存器,其特征在于所述线性反馈移位寄存器更包括一输入处用以在每一周期从该存储器单元接收k位元的输出。10.如权利要求9所述的线性反馈移位寄存器,其特征在于所述线性反馈移位寄存器每一周期向高位元处位移k位元,其中k是大于1,并且k是表示所述第2级存储器区块的所述存储器的数目。11.一种将一笔数据,作选择性的加密码与解密码的方法,其特征在于提供n阶的一LFSR多项式的复数个系数给一线性反馈移位寄存器;提供所述线性反馈移位寄存器一存储器单元,用以储存所述LFSR多项式的所述系数与一输入样本经过计算后的结果,所述存储器单元有一输入端用以接收所述输入样本;以及根据所述输入样本,提供符合所述LFSR多项式的一输出端。12.如权利要求11所述的方法,其特征在于还包括提供k位元的输出用以作为所述线性反馈移位寄存器的输入。13.如权利要求11所述的方法,其特征在于还包括所述存储器单元包含复数个存储器区块,各所述存储器区块产生一并行位元并形成k位元的输出。14.如权利要求13所述的方法,其特征在于所述存储器区块是由k个存储器所构成。15.如权利要求11所述的方法,其特征在于所述存储器单元大小为2(n+1)×1。16.如权利要求13所述的方法,其特征在于所述复数个存储器包括至少二级的存储器区块。17.如权利要求11所述的方法,其特征在于还包括将所述LFSR多项式被分割为m个次多项式。18.如权利要求17所述的方法,其特征在于还包括提供所述线性反馈移位寄存器一第1级存储器区块与一第2级存储器区块,所述第1级存储器区块包括m个存储器,其中m为所述LFSR多项式被分割为次多项式的数目,所述第2级存储器区块包括k个存储器,其中k为所述线性反馈移位寄存器每次所产生的位元数目。19.如权利要求12所述的方法,其特征在于还包括每一周期向高位元处位移k位元,其中k是大于1,并且k是表示所述第2级存储器区块的所述存储器的数目。全文摘要一个移位寄存器使用在提供加密码与解密码的系统。此移位寄存器是由一个n阶线性反馈移位寄存器多项式提供系数。此移位寄存器包括一个存储器用以储存线性反馈移位寄存器多项式的系数与接收的输入样本经过计算后的结果,此存储器有一输入端用以接收输入样本,以及一符合线性反馈移位寄存器多项式的输出。文档编号H04L1/00GK1378361SQ01110250公开日2002年11月6日申请日期2001年4月4日优先权日2001年4月4日发明者谢宗贤,徐荣富申请人:华邦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1