序列产生器和伪随机序列的产生方法

文档序号:7908214阅读:346来源:国知局
专利名称:序列产生器和伪随机序列的产生方法
技术领域
本发明涉及序列产生器和通信系统中数字数据的安全传输。特别地,本发明涉及适用于通信系统中快速加密数字数据的安全密码伪随机序列的产生。
背景技术
很多密码系统的安全性取决于不可预测的数值的产生,这些数值必须有足够的长度和随机性。线性反馈移位寄存器(LFSR)是众所周知的广泛用于伪随机序列的产生的基本元件,所产生的伪随机序列具有较长的周期和较好的统计特性。
但是,按照线性反馈移位寄存器的方法产生的各子序列之间存在一种线性关系。因此,线性反馈移位寄存器的初始值和生成多项式可以通过联立线性方程式的求解来估计,这些线性方程式是从由线性反馈移位寄存器的方法产生的伪随机序列的子序列中得到的。
为了避免这一线性问题,采用一种组合函数,它的输入来自几个并列线性反馈移位寄存器的输出,该函数用于消除由线性反馈移位寄存器产生的原始序列的线性。通常,该组合函数作为一个固定函数来使用。因此,由该组合函数定义的映射是一对一的映射,以及对于施加于组合函数上的同样的输入,将获得同样的输入。如果在伪随机序列和每个线性反馈移位寄存器的输出序列之间存在相关性,这样的产生器将受到分治法(divide-and-conquer)的影响。一种解决方法是可以使用数据加密标准(DES)使输出随机化,但是这需要大量的硬件支持,因此并不经济。
通常情况下,因为基于线性反馈移位寄存器的伪随机序列产生器不安全的密码措施会引发很多问题,因此必须使用大量的硬件来保证其可靠性。

发明内容
本发明的目的是提供一种安全密码伪随机序列产生器,来克服或至少是改善上面提出的问题。
按照本发明的第一方面,提供一种序列产生器,包括多个线性反馈移位寄存器,用来产生多个二进制序列;多个非线性函数,以所述二进制序列作为输入以用来产生多个第二二进制序列;至少第一和第二转换器;和一个控制器,该控制器包括一个用来控制所述第一和第二转换器的移位寄存器,第一转换器选择所述第二二进制序列中的一个序列作为移位寄存器的第一比特,第二转换器选择所述第二二进制序列中的一个序列作为输出。
按照本发明的第二方面,提供一种用于产生伪随机数字的序列产生器,它用于随机数字的产生或者应用于一种序列密码装置(engine)中,它包括序列产生器,用来产生多个第一二进制序列;至少第一和第二非线性函数产生器,它们以所述多个第一二进制序列作为其输入,第一产生器用来产生多个第二二进制序列,第二产生器用来产生多个第三二进制序列;至少第一和第二转换器;和一个控制器,该控制器包括一个输入和至少第一和第二输出,用来控制所述第一和第二转换器,第一转换器用来选择所述第二二进制序列中的一个序列作为该控制器的输入,第二转换器用来选择所述第三二进制序列中的一个序列作为一个输出。
优选地,序列产生器包括多个反馈移位寄存器,各用来产生一个二进制序列。
优选地,非线性函数产生器包括多个布尔函数,每个布尔函数以多个第一二进制序列作为输入以及用于产生二进制序列。
优选地,转换器是多路转换器。
优选地,控制器包括一个移位寄存器,该控制器的输入是该寄存器的第一比特,该控制器的输出为沿该寄存器的位置处(position)的输出。
按照本发明的第三方面,提供一种产生伪随机序列的方法,用于随机数字的产生或者应用于一种产生密码装置中,该方法包括产生多个第一二进制序列,将多个非线性函数应用于所述多个第一二进制序列,以得到不相关的第二二进制序列,以及随机地从第二二进制序列中选出一个序列作为输出序列。
优选地,非线性函数被设置为提供多个第一和第二二进制序列之间的一对多的对应关系。
优选地,非线性函数是布尔函数。
优选地,通过将多个第二二进制序列中的一个序列应用到一个移位寄存器,来随机地选择输出序列。
在本发明的安全密码伪随机序列产生器中,一种周期序列产生器产生第一二进制数据序列。一对函数产生器产生第二非线性不相关的数据序列。一对多路转换器随机地从函数产生器中选择输出。一个控制器将信号有选择地提供到多路转换器。一个多路转换器向控制器提供输入信号,另一个多路转换器提供输出信号。
周期序列产生器包括多个线性反馈移位寄存器(LFSRs)。每个线性反馈移位寄存器产生独立的二进制比特输出序列。该输出被输入到函数产生器以提高复杂性。该函数产生器包括两组成叠的非线性组合函数,这些函数都由布尔函数构成。函数产生器的输出为多比特宽度(bit width)。经过多路转换器来动态选择多比特输出中的一个比特。该装置提供了改进的不相关的二进制序列以避免太多的统计分析造成的影响。
多路转换器包括两组转换器,它们决定二进制序列输出。由从控制器接收的信号来激活转换器。一个多路转换器向控制器提供信号,另一个多路转换器提供序列输出。
控制器是一个简单的寄存器,用于产生激活信号。从控制器输出的激活信号将回送到多路转换器,以便计算它的输入信号并控制和选择输出序列。


根据下面仅给出的示例的描述,本发明更多的方面将变得更加清楚。仅通过示例并参考下面的

本发明的具体实施例,其中图1是按照本发明的安全密码伪随机序列产生器的方框图;图2是周期序列产生器的方框图;
图3示出了线性反馈移位寄存器;图4是函数产生器的方框图;图5是控制器的方框图。
具体实施例方式
本发明的优选实施例提供了一种可以产生可靠随机序列的安全密码伪随机序列产生器。
如图1所示,按照本发明的优选实施例的一种伪随机序列产生器,包括周期序列产生器11,周期序列产生器11的输出N被输入到第一和第二函数产生器12和13。第一和第二函数产生器12和13的输出M1和M2分别被输入到第一和第二多路转换器(MUXs)14和15。控制器16有两个输出K1和K2,各作为多路转换器14和15的第二输入。第一MUX14的输出作为控制器16的输入。第二MUX15的输出作为伪随机序列产生器的输出17。
如图2所示,周期序列产生器11由n个线性反馈移位寄存器(LFSRs)18组成,它提供n比特输出N。优选实施例中包括12个线性反馈移位寄存器,可提供12比特的输出N。LFSR18通常的结构如图3所示。优选实施例中,LFSR18包括n个单元S,但对本领域技术人员来说显而易见的可以替换为包括更多或更少的单元。n个LFSR18的长度是两两互质的(pairwise relatively prime),从而使周期序列产生器11的输出具有 周期,其中Li是第i个LFSR的长度。LFSR18的单元S的初始内容带有伪随机序列产生器的密钥。周期序列产生器11的n比特输出N被输入到函数产生器12和13。
如图4所示,函数产生器12和13包括m个n比特的布尔函数19,它产生两个m比特的输出M1和M2。优选实施例中包括8个12比特布尔函数19,它产生两个8比特的输出。
函数产生器12和13的输出M1和M2被分别输入到多MUX14和15。第一MUX14根据控制器16的输入将m比特的输入M1中的一个比特,作为它的输出。同样,第二多路转换器15根据控制器16的输入将m比特的输入M2中的一个比特作为它的输出。
如图5所示,控制器16由一个包括k个存储单元20的移位寄存器构成。优选实施例中为10个存储单元20。第一MUX14的输出在每个时钟周期被输出到控制器16的第一存储单元(R1)20。控制器16的第一输出K1输入到第一MUX 14,控制器16的第二输出K2输入到第二多MUX 15。可以任意选择用于输出K1和K2的存储单元。
第二MUX 15的输出作为伪随机序列产生器的输出17。
通过选择非线性函数19的一个输出,从LFSR 18的输出(即非线性函数19的输入)到输出17的映射不是一对一的映射,而是一对多的映射。这消除了LFSR 18“子产生器”的输出序列和伪随机序列产生器输出之间的相关性。因此本发明提供了一种改进的安全密码伪随机序列产生器,它能用于随机数字的产生,或者应用于一个序列密码装置中。
权利要求
1.一种序列产生器,包括多个线性反馈移位寄存器,用来产生多个二进制序列,多个非线性函数,以所述二进制序列作为其输入,以用来产生多个第二二进制序列,至少第一和第二转换器,一个控制器,它包括一个移位寄存器,用来控制所述第一和第二转换器,
2.第一转换器用来选择所述多个第二二进制序列中的一个序列作为移位寄存器的第一比特,第二转换器用来选择所述多个第二二进制序列中的一个序列作为输出。一种用于产生伪随机序列的序列产生器,用于随机数字的产生,或者应用于一种序列密码装置中,其中包括一个序列产生器,用来产生多个第一二进制序列,至少第一和第二非线性函数产生器,以所述多个第一二进制序列作为其输入,第一产生器用来产生多个第二二进制序列,第二产生器用来产生多个第三二进制序列,至少第一和第二转换器,一个控制器,包括一个输入及至少第一和第二输出,该控制器用来控制所述第一和第二转换器,第一转换器用来选择所述多个第二二进制序列中的一个序列作为该控制器的输入,第二转换器用来选择所述多个第三二进制序列中的一个序列作为一个输出。
3.如权利要求2所述的序列产生器,其特征在于该序列产生器包括多个反馈移位寄存器,各用来产生一个二进制序列。
4.如权利要求2所述的序列产生器,其特征在于非线性函数产生器包括多个布尔函数,每个布尔函数以多个第一二进制序列作为输入,以产生一个二进制序列。
5.如权利要求2所述的序列产生器,其特征在于转换器是多路转换器。
6.如权利要求2所述的序列产生器,其特征在于控制器包括一个移位寄存器,该控制器的输入为该寄存器的第一比特,该控制器的输出为沿该寄存器位置处的输出。
7.一种用于产生伪随机序列的方法,用于随机数字的产生,或者应用于一种序列密码装置中,其中包括产生多个第一二进制序列,将多个非线性函数应用于所述多个第一二进制序列以获得不相关的多个第二二进制序列,随机地从多个第二二进制序列中选择一个序列作为一个输出序列。
8.如权利要求7所述的方法,其特征在于非线性函数提供多个第一和第二二进制序列之间一对多的对应关系。
9.如权利要求7所述的方法,其特征在于非线性函数是布尔函数。
10.如权利要求7所述的方法,其特征在于通过将多个第二二进制序列中的一个序列应用于一个移位寄存器中来随机地选择输出序列。
全文摘要
一种产生伪随机序列的序列产生器,用于随机数字的产生或应用于一种序列密码装置中,该序列产生器包括多个线性反馈移位寄存器,用来产生多个二进制序列;多个非线性函数,以二进制序列作为其输入,以用来产生多个第二二进制序列;还具有至少两个转换器和一个控制器,控制器包括一个移位寄存器,用来控制所述第一和第二转换器。第一转换器用来选择多个第二二进制序列中的一个序列作为移位寄存器的第一比特,第二转换器用来选择所述多个第二二进制序列中的一个序列作为序列产生器的输出。
文档编号H04L9/26GK1496055SQ03122609
公开日2004年5月12日 申请日期2003年2月12日 优先权日2002年2月12日
发明者郑利明, 陈志光 申请人:香港城市大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1