CN114270774B - 非线性反馈移位寄存器 - Google Patents

非线性反馈移位寄存器 Download PDF

Info

Publication number
CN114270774B
CN114270774B CN202080059362.1A CN202080059362A CN114270774B CN 114270774 B CN114270774 B CN 114270774B CN 202080059362 A CN202080059362 A CN 202080059362A CN 114270774 B CN114270774 B CN 114270774B
Authority
CN
China
Prior art keywords
gate
logic gate
taps
stage
maximum length
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202080059362.1A
Other languages
English (en)
Other versions
CN114270774A (zh
Inventor
A·约翰逊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN114270774A publication Critical patent/CN114270774A/zh
Application granted granted Critical
Publication of CN114270774B publication Critical patent/CN114270774B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Logic Circuits (AREA)
  • Executing Machine-Instructions (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Shift Register Type Memory (AREA)

Abstract

本发明提供一种使用非线性反馈移位寄存器(NLFSR)生成n级至少接近最大长度的伪随机序列的方法和系统,其中最大长度为2n‑1。该方法可以包括:在最大长度线性反馈移位寄存器中选择n个抽头,其中n需要两个以上抽头;以及针对所选择的n级寄存器,使用仅第一逻辑门和第二逻辑门的反馈逻辑运算生成伪随机序列。两个合适的非端抽头是用于第一逻辑门的输入,第一逻辑门的输出和端抽头是用于第二逻辑门的输入,并且第二逻辑门的输出用作对n级寄存器的第一级的反馈。

Description

非线性反馈移位寄存器
背景技术
本发明涉及反馈移位(shift)寄存器,更具体地,涉及具有最大或接近最大长度序列的非线性反馈移位寄存器。
在数字电子电路领域中,线性反馈移位寄存器(LFSR)是用于生成2n-1个伪随机比特序列的装置。LFSR具有包括密码术的许多应用,例如其中它们被用于密钥流生成器、数据压缩、错误检测和校正等。
LFSR是移位寄存器,其输入位是其先前状态的线性函数。最常用的单个位的线性函数是异或(XOR),并且移位寄存器具有由整个移位寄存器值的一些位的XOR驱动的输入位。LFSR的硬件和软件实现方式都是常见的。
影响下一状态的比特位置称为抽头(taps)。LFSR的最右位称为输出位。在Fibonacci LFSR中,抽头与输出比特顺序异或,然后反馈到最左边的比特中。最右边位置中的比特序列被称为输出流。最大长度LFSR产生n序列,因为它循环通过移位寄存器内所有可能的2n-1个状态,除了所有位为零的状态之外。还有可能使用XNOR,从而产生等效多项式计数器。
在LFSR中用于反馈的抽头的布置可以在有限域算术中表示为多项式模2,其中,多项式的系数必须是1或0,称为反馈多项式。
具有最大时段的LFSR可以使用二进制字段上的原语生成器多项式来构造。如果对应的反馈多项式是原语(其中抽头的数量是偶数,并且抽头的集合是集合互质(setwiseco-prime)),则LFSR是最大长度。
下面是显示用于n高达24位的反馈多项式的表,可从该反馈多项式构造最大长度的LFSR。对于给定的LFSR长度,可以有一个以上的最大长度抽头序列。
多项式中的“+1”不对应于抽头;它对应于第一位的输入。项的幂(powers)与从左侧计数的抽头位相关。具有四个项加一的LFSR需要四个抽头并且因此需要三个XOR门。
现在参考图1,示出了示例8级LFSR 100。寄存器的8位101-108被示为从1-8编号,其中第8位是最右输出位108。在所示实施例中,根据多项式x8+x6+x5+x4+1,示出的8位寄存器具有从4、5、6和8位的抽头。每个抽头使用XOR门111、112、113提供线性反馈。反馈120被输入到第一比特101。
调适为顶部-底部混合LFSR产生器,其中顶部LFSR分接头与最后分接头异或,且将结果馈送到顶部分接头之后的级中。底部抽头与最后抽头异或,并且结果被馈送到移位寄存器的第一级。顶部-底部混合LFSR发生器可以用于将4个抽头减少到3个抽头(两个XOR),如下:
{8,7,-6}
{12,9,-4}
{13,12,-11}
{14,13,-11}
{16,14,-7}
{19,18,-11}
{24,23,-19}
其中,第一数量是级的数量,第二数量是顶部LFSR抽头,并且第三数量(指示为负数)是底部LFSR抽头。
在一些情况下,通过两个XOR,混合LFSR可以生成2n–1的序列。然而,这需要访问移位寄存器的中间和结束以插入数据。
LFSR的缺点是它们的线性复杂度等于它们的阶数(order)。最近,已经设计了非线性反馈移位寄存器(NLFSR)。NLFSR是LFSR的泛化,其中当前状态是先前状态的非线性函数。因此,在NLFSR中,重入比特不仅仅是寄存器比特的简单XOR运算。这将寄存器从Galois、Fibonacci和其他预定抽头的刚性中释放,但是然后必须确保锁定不会发生,并且寄存器不会稳定到模式中。
NLFSR的问题在于找到用于构建具有保证长周期的NLFSR的系统程序。
Elena Dubrova(称为“Dubrova”)的Royal Institute of Technology(KTH),Forum 120,164 40Kista,Sweden的“A List of Maximum Period NLFSRs”(最大周期NLFSR列表)列出了使用多个XOR和一个AND门提供最大长度序列的NLFSR。呈现n位NLFSR的完整列表,其中周期为2n-1,n<25,用于具有代数度(algebraic degree)二的三种不同类型的反馈函数。
Dubrova使用许多布置,其中一个是三个XOR并且一个AND门用于在最大长度LFSR中需要4个抽头的位寄存器,即,在范围n中的n={8,12,13,14,16,19,24}小于或等于24。Dubrova还使用其他安排:三个XOR和两个AND门;五个XOR和一个AND门;五个XOR和两个AND门。对于n=8的情况,Dubrova示出:具有15个示例的三个XOR和一个AND门;具有18个示例的三个XOR和两个AND门;以及具有9个示例的五个XOR和一个AND门。
现在参考图2,示出了由Dubrova提出的示例8级NLFSR200,其给出了最大长度序列,该最大长度序列仅是她提出的具有三个XOR和一个AND门的15个选项的示例中的一个。寄存器的8位201-208被示为从1-8编号,其中第8位是最右输出位208。所示的8位寄存器具有4、5和8位的抽头(T4、T5、T8)。非线性反馈220提供有三个XOR211至213和一个AND门214,如下:T8 XOR T5 XOR T4 XOR(T5 AND T4)。在Dubrova的符号中,其中,她对抽头编号(7…0),这是“0,3,4,(3,4)”。
所解决的问题是最小化在逻辑反馈中使用的门的数量,同时在使用反馈移位寄存器的伪随机数发生器中保持最大长度序列。
反馈移位寄存器还可以用于使用布尔可满足性表示的问题中。例如,LFSR序列用于解决哈米尔顿算子循环问题。最小化表示LFSR的条款数量简化了问题的解决。
发明内容
本公开的实施例包括用于使用非线性反馈移位寄存器(NLFSR)来生成对于n个级具有至少接近最大长度的伪随机序列的方法和系统,其中最大长度是2n-1。该方法可以包括:在最大长度线性反馈移位寄存器中选择n个抽头,其中n需要两个以上抽头;以及针对所选择的n级寄存器,使用仅第一逻辑门和第二逻辑门的反馈逻辑运算生成伪随机序列,其中,两个合适的非端抽头是针对所述第一逻辑门的输入,所述第一逻辑门的输出和端抽头是针对所述第二逻辑门的输入,以及所述第二逻辑门的输出用作对所述n级寄存器的第一级的反馈。
在实施例中,第一逻辑门可以选自由OR门和NAND门组成的组,并且第二逻辑门是XOR门。在其他实施例中,第一逻辑门是AND门,并且第二逻辑门是XNOR门。
在实施例中,对于一些n,利用两个合适的非端抽头获得最大长度序列,而对于一些其他n,利用两个合适的非端抽头获得接近最大长度序列。
在实施例中,该方法可以包括通过基于级数n标识提供n级寄存器的至少接近最大长度序列的对组合来获得一个或多个合适的非端抽头对。在实施例中,获得一对或多对非端抽头可以包括:确定包括第一非端抽头A和第二非端抽头B的第一合适的非端抽头对;以及获得第二合适的非端抽头对作为所述n级寄存器中所述第一合适的非端抽头对的镜像,其中抽头序列[n,A,B]镜像到[n,n-B,n-A]。
在实施例中,获得一对或多对非端抽头包括使用在三个抽头上操作的搜索程序:端抽头和两个非端抽头,使用除了全零之外的逻辑操作的每个组合,受到1和0同样可能的优化限制。在实施例中,搜索程序将寄存器初始化为除全零之外的值,并且至多运行寄存器2n次,直到生成为重复的寄存器状态,其中序列的长度是从看到状态的第一时机到看到状态的第二时机的多个状态。
在实施例中,对于一组抽头的近最大长度序列,搜索程序可以确定目前看到的状态的数量是否是2n-1或更多。如果所见的状态的数量是2n-1或更多,则发现的最长序列是针对该抽头集合可能的最长序列。如果所看到的状态的数量小于2n-1,则选择新状态,再次生成序列,并测量长度;搜索程序重复这些步骤,直到看到所有状态或未看到状态的数量小于所找到的最长序列的长度。
本公开的实施例包括用于针对n个级生成具有至少接近最大长度的伪随机序列的NLFSR,其中最大长度是2n-1。NLFSR包括n级寄存器,n在最大长度线性反馈移位寄存器中需要两个以上抽头;具有两个输入的第一逻辑门,每个输入连接到n级寄存器的非端抽头;以及具有两个输入的第二逻辑门,第一输入连接到第一逻辑门的输出,并且第二输入连接到n级寄存器的端抽头,其中第二逻辑门的输出用作对n级寄存器的第一级的反馈。
本公开的实施例包括用于针对8个阶段生成具有最大长度的伪随机序列的NLFSR,其中最大长度是255。NLFSR包括:8级寄存器;第一逻辑门,其第一输入端连接8级寄存器的第一非端抽头A,其第二输入端连接8级寄存器的第二非端抽头B;以及第二逻辑门,具有连接到所述第一逻辑门的输出和所述8级寄存器的端抽头的输入。将第二逻辑门的输出用作对8级寄存器的第一级的反馈,并且第一和第二非端抽头处于从由A=4、B=3;A=5,B=1;A=5,B=4;以及A=7,B=3构成的组中选择的位置。
本公开的实施例包括用于针对n个级生成具有最大长度的伪随机序列的NLFSR,其中最大长度是4095。NLFSR包括:12级寄存器;第一逻辑门,其第一输入端与该12级寄存器的第一非端抽头A相连,其第二输入端与该12级寄存器的第二非端抽头B相连;以及第二逻辑门,其具有连接到第一逻辑门的输出和12级寄存器的端抽头的输入。将第二逻辑门的输出用作对12级寄存器的第一级的反馈,并且第一非端抽头和第二非端抽头处于从由A=7、B=4;并且A=8,B=5构成的组中选择的位置。
以上概述并不旨在描述本公开的每个所示实施例或每个实现方式。
附图说明
包括在本公开中的附图被结合到说明书中并且形成说明书的一部分。它们示出了本公开的实施方式,并且与描述一起用于解释本公开的原理。附图仅是对典型实施例的说明,而并不限制本公开。
图1是示出了8级LFSR的示意性电路图。
图2是示出具有提供最大长度序列的非线性反馈布置的8级NLFSR的示意性电路图。
图3是根据本公开的实施例的用于提供NLFSR的方法的示例性实施例的流程图。
图4是根据本公开第一实施方式的广义级NLFSR的示意性电路图。
图5是根据本公开的第二实施例的镜像广义级NLFSR的示意性电路图。
图6是根据本公开的第三实施例的补充(complement)广义级NLFSR的示意性电路图。
图7是根据本公开的第四实施例的另一补充广义级NLFSR的示意性电路图。
图8是根据图4的第一实施例的8级NLFSR的示意性电路图。
图9是根据图5的第二实施例的8级NLFSR的示意性电路图。
图10是根据图6的第三实施例的8级NLFSR的示意性电路图。
图11是根据图7的第四实施例的8级NLFSR的示意性电路图。
图12A至图12C是示出根据本公开的实施方式的图8、图10和图11的寄存器的更多细节的示意性电路图。
图13是根据本公开的实施方式的系统的示例性实施方式的框图。
图14是可以实现本公开的实施方式的计算机系统的实施方式的框图。
虽然在此描述的实施例服从不同修改和替代形式,但是其细节已经通过举例在附图中示出并且将被详细描述。然而,应当理解,所描述的特定实施例不应被视为限制性的。相反,本发明旨在覆盖落入本公开的精神和范围内的所有修改、等同物和替代物。
具体实施方式
所描述的方法和系统提供了具有最大或接近最大长度序列的非线性反馈移位寄存器(NLFSR),用于为具有n个级的一些寄存器生成伪随机序列,所述n个级在线性反馈移位寄存器(LFSR)中需要两个以上抽头以用于最大长度,通常是四个或更多个抽头。LFSR中的四个抽头使用三个XOR门。
最大长度序列为2n-1,其中缺失状态全为0,或者对于补充逻辑运算全为1。在本说明书中,接近最大被定义为偏离最大长度小于4%。
已经测试了该方法和系统,直到n=24,并且对于在LFSR中的线性反馈布置中对于最大长度序列需要两个以上抽头的n级寄存器组的n=8和n=12,使用所描述的非线性反馈来实现最大长度序列。然而,对于n>24,也可存在LFSR中的最大长度序列需要两个以上抽头的其他n级寄存器,并且所描述的布置也可用于n的这些较大值。
所描述的两个门的非线性反馈安排可以由其他n级寄存器使用,这些其他n级寄存器要求两个以上抽头用于LFSR中的最大长度序列,但可以仅给出近最大长度序列。这些还可用作简化反馈中仅两个门的非线性反馈布置。
提供简化的逻辑运算作为NLFSR中的反馈,NLFSR提供具有最大或接近最大长度序列的最小数目的门。代替LFSR的三个XOR门,在NLFSR的反馈逻辑操作中使用单个XOR门和单个OR门。仅一个或和仅一个异或门的逻辑反馈将两个选择的非端抽头的逻辑或和与端抽头异或作为到第一级的反馈。XOR和OR的替代是在等效逻辑操作中使用XNOR和NOR。
作为在所描述的NLFSR中的单个XOR门和单个OR门的等效替代方案,其互补安排可以使用单个XNOR门和单个AND门、或单个XOR门和单个NAND门。补充安排采取相反的输入。
补充图覆盖略微不同但正如有用的序列。原始电路的最大长度的缺失状态全为0,因为0XOR(0OR 0)=0,所以寄存器保持为全0。该补充电路具有全部1作为缺失状态,如1XOR(1NAND 1)=1XOR(0)=1。
可以在XOR(=XNOR)的输出上或在AND=(NAND)的输出上进行反转。其他变型利用触发器元件移位寄存器的反相输出、Q条输出中的一个或多个来提供反相。
多种布置可用于等效逻辑布置,以计算相同的操作,例如T8 XOR(!T4NAND!T5),例如,以及!T4和!T5信号可直接从触发器的Q条输出产生。所描述的寄存器旨在覆盖具有其逻辑操作中的两个门的所有等同物。
考虑仅一个或门和仅一个异或门的逻辑反馈,对于n个级(编号1至n),异或门的输入是级n的输出和或门的输出,其中,或门的输入是两个合适的级y1、y2(y1<n)),(y2<n))的输出,并且y1不等于y2),并且其中,级1的输入是异或门的输出。
现在参考图3,在流程图中示出用于提供NLFSR的所述方法300的示例性实施例。
在实施例中,方法300通过选择n作为寄存器中的级的数量而开始。这在步骤301处示出,在最大长度线性反馈移位寄存器中n需要两个以上抽头。正常斐波那契LFSR需要4个或更多个抽头,但是可以通过混合LFSR利用3个抽头来实现,因此n需要多于2个抽头。
对于选择的n级寄存器,方法300使用仅一个或门和仅一个异或门的反馈逻辑项,取两个非端抽头的逻辑或,并且输出与端抽头异或以用于反馈到第一级。这在步骤302处示出。在实施例中,相同的逻辑操作与XNOR门和NOR门一起使用。在其他实施例中,方法300可以使用仅一个XNOR和仅一个AND的互补布置或者仅一个XOR和仅一个NAND的互补布置。这在步骤303中示出。
方法300继续测试候选非端抽头对的不同组合以通过使用三个抽头搜索合适的非端抽头对来确定提供n级寄存器的最大或接近最大长度序列的对组合:端抽头和候选非端抽头对,使用受到1和0同样可能的优化限制的三个位的每个逻辑运算。这在步骤304中示出。如果1比0更可能作为用于所有可能输入的输出,则输出通常将具有比0更多的1,因此计数器不能覆盖几乎所有状态。
对于n级寄存器,则将存在(n-1)*(n-2)/2个可能性来考虑。待搜索的可能对的数目可以被确定为:选择用于XOR的最后抽头,选择用于第一OR输入的n-1个其他抽头中的一个,选择用于第二输入的n-2个剩余抽头中的一个,并且将可能性除以2,因为OR输入的顺序无关紧要。
该寄存器可以被初始化为除了所有0000之外的值(或针对抽头的补充安排的所有1111)并且可以最多2n次运行该寄存器,直到它生成之前已经看到的寄存器状态。序列的长度是从看到重复状态的第一时机(occasion)到第二时机的状态数。
如果已经达到除了1(所有0000)之外的所有可能的2n个状态,并且找到的最后新状态之后是第一状态,则这是最大长度序列。
对于近最大长度序列,可以确定到目前为止看到的状态的数量是否是2n-1或更多。如果是,则从不同开始状态生成的任何其他序列不能那么长。如果不是,则将选择到目前为止未见的状态并且将再次生成序列。这个序列的长度将被测量,并且该过程将被重复,直到所有状态被看见或未看见状态的数目小于迄今为止发现的最长序列的长度。
方法300继续获得一对或多对非端抽头。这在步骤305中示出。对于每个合适的非端抽头对,方法300可以将另一合适的非端抽头对标识为n级寄存器中的抽头的镜像,其中抽头序列[n,A,B]镜像到[n,n-B,n-A]。这在步骤306处示出。
方法300通过在寄存器的反馈逻辑布置中使用合适的一对非端抽头继续。这在步骤307中示出。
图4至7示出根据本公开的实施例的具有反馈逻辑操作的广义n级NLFSR 400、500、600、700。n限于n级寄存器,在LFSR中的线性反馈布置中,对于最大长度序列,需要两个以上的抽头,并且例如,使用图3的方法300,找出合适的非端抽头。
现在参考图4,示出具有仅一个OR 411和仅一个XOR门412的所描述的逻辑反馈的第一实施方式的示例寄存器400,对于n个级,在寄存器中从左到右编号“1”401至“n”404。
或门411的输入是两个合适的级“A”402和“B”403的输出,其中,A、B<n和A<B,并且其中,A和B是合适的非端抽头。XOR门412的输入是级n 404的输出和OR门411的输出。级1401的输入420是XOR门412的输出。
现在参考图5,示出了对于n个级(在寄存器中从左到右编号“1”501至“n”504)具有仅一个OR 511和仅一个XOR门512的所描述的逻辑反馈的第二实施例的示例寄存器500。第二实施例是第一实施例的逻辑布置的镜像或相反。
或门511的输入是两个镜像合适级“n-B”502和“n-A”503的输出。XOR门512的输入是级n 504的输出和OR门511的输出。级1501的输入520是XOR门512的输出。
现在参见图6,示出了具有第一实施例的补充的第三实施例的示例寄存器600。具体地,示出的是对于在寄存器中从左到右编号“1”601至“n”604的n个级的仅一个AND 611和仅一个XNOR门612的描述的逻辑反馈。
AND门611的输入是两个合适的级“A”602和“B”603的输出,其中,A、B<n和A≠B,并且其中,A和B是合适的非端抽头。用于XNOR门612的输入是级n604的输出和AND门611的输出。级1601的输入620是XNOR门612的输出。
现在参考图7,示出了具有第一实施例的另一个补充的第四实施例的示例寄存器700。具体地,示出的是对于在寄存器中从左到右编号“1”701至“n”704的n个级的仅一个NAND 711和仅一个XOR门712的描述的逻辑反馈。
与非门711的输入是两个合适的级“A”702和“B”703的输出,其中,A、B<n和A≠B,并且其中,A和B是合适的非端抽头。XOR门712的输入是级n 704的输出和NAND门711的输出。级1701的输入720是XOR门712的输出。
还可以使用图5的镜像实施例的补充安排。换言之,还可以使用图6和图7的互补布置的镜像布置。
在具有n高达24的n级寄存器的示例中,集合n={8,12,13,14,16,19,24}是LFSR中需要四个抽头的寄存器。然而,n可以扩展到高于24。
从2至24位的最大长度LFSR的现有分接头的实例如下。应注意,具有8位、12位、13位、14位、16位和24位的产生器需要4个分接头,且这些寄存器为所描述的方法和装置的焦点,但所公开的方法和装置也可应用于具有其他位的产生器。
{2,1}
{3,2}
{4,3}
{5,3}
{6,5}
{7,6}
{8,6,5,4}
{9,5}
{10,7}
{11,9}
{12,11,8,6}
{13,12,10,9}
{14,13,11,9}
{15,14}
{16,14,13,11}
{17,14}
{18,11}
{19,18,17,14}
{20,17}
{21,19}
{22,21}
{23,18}
{24,23,21,20}
在本说明书中,抽头由寄存器中的数字指代,其中输入第一级为1并且末级为n。在描述两个连续寄存器输入的情况下,则使用A1至An和B1至Bn。
现在参考图8,示出的是具有所描述的图4的第一实施方式的逻辑反馈的示例8级寄存器800。使用所描述的逻辑反馈实现8级寄存器800的最大长度的合适的抽头如下:
n=8a=3b=4,长度=255;
n=8a=1b=5,长度=255;
n=8a=4b=5,长度=255;
n=8a=3b=7,长度=255。
图8示出了A=4 804和B=5 805的示例合适的非端抽头。或门811的输入是两个合适的级A=4 804和B=5 805的输出。XOR门812的输入是级n=8 808的输出和OR门811的输出。级1801的输入820是XOR门812的输出。
其中,A1-A8为8级移位寄存器的当前状态,B1-B8为对应的下一状态:
B1=(A4 OR A5)XOR A8
B2=A1
B3=A2
B4=A3
B5=A4
B6=A5
B7=A6
B8=A7
所示实施例需要一个OR门和一个XOR门。分接头需要被适当地选择,但是当它们可操作时,它们可以产生2n-1的序列。对于8级寄存器,它可以在重复之前生成最大255值。
已经获得一组抽头,可以通过镜像或反转来生成其他抽头:例如,给定T8 XOR(T5OR T4),然后存在T8 XOR(T3 OR T4),如在图9中所详述的。
现在参见图9,示出了示例8级寄存器900,其具有图5的第二实施例的所描述的逻辑反馈,作为图8的实施例的镜像。示例镜像的合适的非端抽头是n-B=3 903和n-A=4904。或门911的输入是镜像3 903和4 904的输出。XOR门912的输入是级n=8 908的输出和OR门911的输出。级1 901的输入920是XOR门912的输出。
现在参见图10,示出的是具有补充布置的图6的第三实施例的所描述的逻辑反馈的示例8级寄存器1000。图10示出了图8的寄存器的补充。
图10使用如图8中所使用的A=4 1004和B=5 1005的示例合适的非端抽头。AND门1011的输入是两个合适的级A=4 1004和B=5 1005的输出。用于XNOR门1012的输入是级n=81008的输出和OR门1011的输出。级1 1001的输入1020是XNOR门1012的输出。
T8 XNOR(T5 AND T4)的这种互补布置也可以被镜像以提供T8 XNOR(T3 AND T4)。
现在参见图11,示出了具有替代互补布置的图7的第四实施例的描述的逻辑反馈的示例8级寄存器1100。图11示出了图8的寄存器的另一个补充。
图11使用如图8中使用的A=4 1104和B=5 1105的示例合适的非端抽头。与非门1111的输入是两个合适的级A=4 1104和B=5 1105的输出。XOR门1112的输入是级n=81108的输出和OR门1111的输出。级1 1101的输入1120是XOR门1112的输出。
T8 XOR(T5 NAND T4)的这种互补布置也可以被镜像以提供T8 XOR(T3 NAND T4)。
存在用于8位寄存器的第二合适的抽头对,并且逻辑运算是:
T8 XOR(T7 OR T3)
具有如下镜像:
T8 XOR(T5 OR T1)
以及补充如下
T8 XNOR(T7 AND T3)
T8 XNOR(T5 AND T1)
T8 XOR(T7 NAND T3)
T8 XOR(T5 NAND T1)
12级寄存器实现最大长度如下:
n=12a=4b=7,长度=4095;
n=12a=5b=8,长度=4095。
对于12级计数器,所描述的方法具有5和8的示例合适的非端抽头对:
B1=(A5或A8)XOR A12
B2=A1
B3=A2
B4=A3
B5=A4
B6=A5
B7=A6
B8=A7
B9=A8
B10=A9
B11=A10
B12=A11
合适的8和5对的12级寄存器逻辑运算是:
T12 XOR(T8或T5)或逻辑等效T12 XNOR(T8 NOR T5)
具有如下镜像:
T12 XOR(T7 OR T4)或逻辑等效T12 XNOR(T7 NOR T4)
以及补充如下
T12 XNOR(T8 AND T5)
T12 XNOR(T7 AND T4)
T12 XOR(T8 NAND T5)
T12 XOR(T7 NAND T4)
LFSR还可以用于使用布尔可满足性表示的问题中。例如,LFSR序列用于解决哈米尔顿算子循环问题。最小化表示LFSR的条款数量简化了问题的解决。
表达式(A4 OR A5)XOR A8可以编码为连接正常形式的仅6个子句,例如,所有这些6个子句必须是真的:
A8|!A4|B1
A8|!A5|B1
!A8|A4|A5|B1
A8|A4|A5|!B1
!A8|A4|!B1
!A8|A5|!B1
下表总结了为n=8和n=12发现的提供最大长度序列的合适抽头。
/>
图12A、图12B和图12C分别更详细地示出图8、图10和图11的寄存器800、1000和1100。
现在参考图12A,示出了图8800的寄存器,其具有由D型触发器1201-1208提供的八个级。每个触发器1201-1208具有时钟输入(CLK)1211、数据输入(D)1212以及输出(Q)1213、反相输出
图12A示出了具有非端抽头804和805、端抽头808的寄存器800,以及由或门811和XOR门812提供的反馈逻辑运算。还示出了寄存器输出1215。
现在参见图12B,示出的是具有由D型触发器1221-1228提供的八个级的第一互补布置的图10 1000的寄存器。每个触发器1221-1228具有时钟输入(CLK)1231、数据输入(D)1232、以及输出(Q)1233、反相输出
图12B示出了具有非端抽头1004和1005、端抽头1008的寄存器1000,以及由XNOR门1012和AND门1011提供的反馈逻辑操作。还示出了寄存器输出1235。
现在参考图12C,示出了具有由D型触发器1241-1248提供的八个级的第二互补布置的图11所示的寄存器1100。每个触发器1241-1248具有时钟输入(CLK)1251、数据输入(D)1252、以及输出(Q)1253、反相输出
图12C示出了具有非端抽头1104和1105、端抽头1108以及由XOR门1112和NAND门1111提供的反馈逻辑操作的寄存器1100。还示出了寄存器输出1255。
所描述的两个门的非线性反馈安排可以由其他n级寄存器使用,这些其他n级寄存器要求两个以上抽头用于LFSR中的最大长度序列,但可以仅给出近最大长度序列。由于仅两个门的非线性反馈布置是简化的反馈布置,因此这些也可以是有用的。
已经发现以下抽头和近最大长度序列。
长度8135(与8191相比):
对于n=13:A=7,B=3;A=8,B=4和镜像A=10,B=6;A=9,B=5
长度16244(与16383相比)
对于n=14:A=6,B=1并且镜像A=13,B=8
长度63724(与65535相比)
对于n=16:A=12,B=1并且镜像A=15,B=4
长度508357(与524287相比)
对于n=19:A=12,B=3和镜像A=16,B=7
长度16570233(与16777215相比)
对于n=24:A=20,B=3和镜像A=21,B=4
长度66542149(与67108863相比)
对于n=26:A=9,B=2和镜像A=24,B=17
长度133072290(与134217727相比)
对于n=27:A=16,B=4和镜像A=23,B=11
在一些情况下,混合LFSR可以利用两个XOR生成2n–1的序列。然而,这具有需要访问移位寄存器的中间和结束以插入数据的缺点。所描述的NLFSR仅需要访问末端以插入数据(尽管数据是从寄存器中间的抽头读取的)。
根据测试,以下提供了具有2个抽头的最长非最大长度序列的实例,在括号中具有3(混合)或4个抽头的最大可能。
{8,5}:217(255)
{12,11}:3255(4095)
{13,10}:8001(8191)
{14,13}:11811(16383)
{16,9}:63457(65535)
{19,12}520065(524287)
{19,13}520065(524287)
{24,19}16766977(16777215)
以及镜像(反向):
{8,3}:217(255)
{12,1}:3255(4095)
{13,3}:8001(8191)
{14,1}:11811(16383)
{16,7}:63457(65535)
{19,6}520065(524287)
{19,7}520065(524287)
{24,5}16766977(16777215)
以前,最小值是两个XOR门以及具有如上给出的很少抽头的最长非最大长度序列。所描述的方法提供仅具有一个OR门和一个XOR门的最大长度序列或近最大长度序列。
对于小的门计数,所描述的方法给出了循环长度的有用增加。
Dubrova的现有技术NLFSR包括以下,其中逗号之间的数字是XOR运算的抽头,并且括号内是AND运算。
0,1,6,(4,5)
x0 XOR x1 XOR x5 XOR(x4 AND x5)
0,3,4,(3,4)
x0 XOR x3 XOR x4 XOR(x3 AND x4)。
0,3,8,(3,9)
x0 XOR x3 XOR x8 XOR(x3 AND x9)
0,4,7,(4,7)
x0 XOR x4 XOR x7 XOR(x4 AND x7)
Dubrova在另一个方向上使用移位寄存器,并且将第一个抽头作为抽头0,所以这可以通过将每个数字x替换为n-x来转换。
这给Dubrova提供了:
A8 XOR A5 XOR A4 XOR(A5 AND A4)
与所述方法相比:
A8 XOR(A5 OR A4)
所描述的方法使用一个OR和一个XOR的更简单的逻辑函数,而不是3个XOR和1个AND。
A XOR B XOR C XOR(B AND C)
可以简化如下:
ABC
000=0
001=1
010=1
011=1
100=1
101=0
110=0
111=0
这与:A XOR(B或C)相同
尽管它们在逻辑上是相等的,但对于本领域技术人员而言Dubrova并不明显的是,这种简化是可能的。Dubrova的抽头通常不能简化为所描述的方法的抽头,除了以下形式的那些:n,a,b,(a,b)
少数几个可以简化为所描述的方法,但是这并不是显而易见的。在n=8的情况下,她列出了42个抽头集合,其中仅2个抽头集合可以简化为所描述的方法,并且她不将那些抽头集合标注为特殊的。在n=12的情况下,她列出了36个抽头集合,其中仅1个可以被简化为所描述的方法,并且她不注意到该集合是特殊的。
该简化是所描述的方法的关键,并且为了这是可能的,必须选择适当的分接头。
参考图13,框图示出了包括用于提供具有最大长度序列1310的非线性NLFSR安排的系统的计算机系统1300。
计算机系统1300可以包括至少一个处理器1301、硬件模块、或用于执行所描述的组件的功能的电路,所述组件可以是在至少一个处理器上执行的软件单元。可以提供运行并行处理线程的多个处理器,从而能够并行处理组件的功能中的一些或全部。存储器1302可以被配置为向至少一个处理器1301提供计算机指令1303,以执行组件的功能。
用于提供非线性NLFSR布置1310的系统可包含用于选择n的选择组件1311,其中n在最大长度线性反馈移位寄存器中需要两个以上分接头。
系统1310包括反馈安排组件1312,该反馈安排组件用于安排仅一个或门和仅一个异或门的反馈逻辑运算、取两个合适的非端抽头的逻辑或并且与该端抽头进行异或以用于反馈到第一级或补充逻辑运算。第一补充逻辑运算仅具有NAND门和XOR门,其中,逻辑运算采用两个合适的非端抽头的逻辑NAND和与端抽头的逻辑XOR用于反馈到第一级。第二补充逻辑运算仅具有AND门和仅XNOR门,其中,逻辑运算采用两个合适的非端抽头的逻辑AND,并且逻辑XNOR与端抽头用于反馈到第一级。
系统1310可以包括测试组件1313,用于通过测试两个非端抽头的不同组合以确定提供n级寄存器的最大长度序列的对组合,来获得一个或多个合适的非端抽头对。测试组件1313可以包括在三个抽头上操作的搜索程序1314:端抽头和两个非端抽头,使用受制于1和0同样可能的优化限制的逻辑操作的每个组合。系统1310可以包括合适的抽头对输出组件1315,用于输出合适的非端抽头对以供在反馈布置组件1312中使用。
系统1310可以包括镜像组件1316,用于将一个合适的非端抽头对取并且得到另一个合适的非端抽头对作为n级寄存器中的抽头的镜像,其中抽头序列[n,A,B]镜像到[n,n-B,n-A]。
图14描绘了根据本发明的实施方式的图13的计算机系统1300的组件的框图。应当理解,图14仅提供一个实现方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。可以对所描绘的环境做出许多修改。
计算机系统1300可包括全部通过通信结构1418互连的一个或多个处理器1402、一个或多个计算机可读RAM1404、一个或多个计算机可读ROM1406、一个或多个计算机可读存储介质1408、设备驱动器1412、读/写驱动器或接口1414、以及网络适配器或接口1416。通信结构1418可以利用被设计用于在处理器(诸如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任何其他硬件组件之间传递数据和/或控制信息的任何架构来实现。
一个或多个操作系统1410和应用程序1411(诸如用于提供NLFSR安排1310的系统)被存储在一个或多个计算机可读存储介质1408上,以供一个或多个处理器1402经由一个或多个相应的RAM 1404(其通常包括高速缓存存储器)来执行。在所示实施例中,根据本发明的实施例,计算机可读存储介质1408中的每可以是内部硬盘的磁盘存储设备、CD-ROM、DVD、记忆棒、磁带、磁盘、光盘、诸如RAM、ROM、EPROM、闪存的半导体存储设备、或者能够存储计算机程序和数字信息的任何其他计算机可读存储介质。
计算机系统1300还可以包括用于从一个或多个便携式计算机可读存储介质1426读取和写入一个或多个便携式计算机可读存储介质1426的R/W驱动器或接口1414。计算机系统1300上的应用程序1411可存储在一个或多个便携式计算机可读存储介质1426上,经由相应的R/W驱动器或接口1414读取并加载到相应的计算机可读存储介质1408中。
计算机系统1300还可包括网络适配器或接口1416,诸如TCP/IP适配器卡或无线通信适配器。计算机系统1300上的应用程序1411可经由网络(例如,互联网、局域网或其他广域网或无线网络)和网络适配器或接口1416从外部计算机或外部存储装置下载到计算装置。程序可以从网络适配器或接口1416加载到计算机可读存储介质1408中。网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和边缘服务器。
计算机系统1300还可以包括显示屏1420、键盘或小键盘1422、以及计算机鼠标或触摸板1424。设备驱动器1412与显示屏1420接口以用于成像,与键盘或小键盘1422,与计算机鼠标或触摸板1424,和/或与显示屏1420接口以用于字母数字字符输入和用户选择的压力感测。设备驱动器1412、R/W驱动器或接口1414、以及网络适配器或接口1416可以包括存储在计算机可读存储介质1408和/或ROM 1406中的硬件和软件。
本发明可以是任何可能的技术细节集成度的系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储媒质(或多个媒质)。
计算机可读存储媒体可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储媒质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储媒质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储媒体不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输媒体传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储媒质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储媒质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储媒质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个方框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者方框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
根据本发明的第一方面,提供了一种使用具有最大或接近最大长度序列的非线性反馈移位寄存器(NLFSR)来生成n个级的伪随机序列的方法,其中最大长度是2n-1,该方法包括:选择n,其中n在最大长度线性反馈移位寄存器中需要两个以上的抽头;以及对于所选的n级寄存器,使用仅一个或门和仅一个XOR门的反馈逻辑运算,其中逻辑运算采用两个合适的非端抽头的逻辑OR和与端抽头的逻辑XOR用于反馈到第一级,或等效的XNOR门和NOR门逻辑运算,或补充逻辑运算。
该方法提供了在NLFSR中的简单双门逻辑运算的优点,该NLFSR为通常需要两个以上抽头的n级寄存器提供最大或接近最大长度的序列。该方法在提供长伪随机序列的同时最小化对寄存器不需要中间反馈的门的数量。
补充逻辑运算可以是仅非与(NAND)门和仅异或门,其中逻辑运算采用两个合适的非端抽头的逻辑NAND和与端抽头的逻辑XOR用于反馈到第一级。另一个补充逻辑运算可以仅具有一个AND门和仅一个XNOR门,其中,逻辑运算采用两个合适的非端抽头的逻辑AND和逻辑XNOR与端抽头的逻辑AND以用于反馈到第一级。
对于一些n,用两个合适的非端抽头或补充排列获得最大长度序列,而对于一些其他n,用两个合适的非端抽头或补充排列获得最佳近最大长度序列。
根据本发明的另一方面,提供一种具有最大或近似最大长度序列的非线性反馈移位寄存器(NLFSR),用于生成n个级的伪随机序列,其中,最大长度为2n-1,该NLFSR包括:n级寄存器,其中,n要求最大长度线性反馈移位寄存器中的两个以上的抽头;仅一个或门和仅一个异或门的反馈逻辑运算,取两个合适的非端抽头的逻辑或和与所述端抽头的异或,用于反馈到所述第一级,或等效的XNOR门和NOR门逻辑运算,或补充逻辑运算,其中所述合适的非端抽头提供所述n级寄存器的最大或接近最大长度的序列。
补充逻辑运算可以是仅NAND门和仅XOR门,其中,逻辑运算采用两个合适的非端抽头的逻辑NAND和与端抽头的逻辑XOR用于反馈到第一级。另一个补充逻辑运算可以仅具有一个AND门和仅一个XNOR门,其中,逻辑运算采用两个合适的非端抽头的逻辑AND和逻辑XNOR与端抽头的逻辑AND以用于反馈到第一级。另一种补充。
对于一些n,用两个合适的非端抽头或补充排列获得最大长度序列,而对于一些其他n,用两个合适的非端抽头或补充排列获得最佳近最大长度序列。
根据本发明的另一方面,提供一种具有最大长度序列的非线性反馈移位寄存器(NLFSR),用于生成n个级的伪随机序列,其中最大长度为2n-1,包括:n级寄存器,其中n为8或12,每个寄存器在最大长度线性反馈移位寄存器中需要两个以上的抽头;以及仅一个或门和仅一个异或门的逻辑反馈运算,取两个合适的非端抽头A、B的逻辑或,以及与所述端抽头的逻辑异或反馈到所述第一级,或者等效的XNOR门和NOR门逻辑运算,或者补充逻辑运算,其中所述合适的非端抽头提供所述n级寄存器的最大长度序列;其中,两个合适的非端抽头取自下组:对于n=8:A=4,B=3;A=5,B=1;以及镜像A=5,B=4;A=7,B=3;对于n=12:A=7,B=4;以及镜像A=8,B=5。
8级和12级寄存器的NLFSR用定义的非端抽头提供最大长度序列。
补充逻辑运算仅具有NAND门和XOR门,其中,逻辑运算采用两个合适的非端抽头A、B的逻辑NAND以及与端抽头的逻辑XOR用于反馈到第一级。另一补充逻辑运算仅具有一个AND门和仅一个XNOR门,其中逻辑运算采用两个合适的非端抽头A、B和逻辑XNOR的逻辑AND与端抽头用于反馈到第一级。
根据本发明的另一方面,提供一种为非线性反馈移位寄存器(NLFSR)提供最大或接近最大长度序列以生成n级伪随机序列的方法,其中最大长度为2n-1,该方法包括:选择n,其中n在最大长度线性反馈移位寄存器中需要两个以上抽头;对于选择的n级寄存器,使用仅一个或门和仅一个异或门的反馈逻辑运算,取两个合适的非端抽头的逻辑或和与端抽头的异或,用于反馈到第一级,或等效的XNOR门和NOR门逻辑运算,或补充逻辑运算;以及通过测试两个非端抽头的不同组合以确定提供n级寄存器的最大或接近最大长度序列的对组合来获得一个或多个合适的非端抽头对。
该方法可以包括获得一对合适的非端抽头并获得另一对合适的非端抽头作为n级寄存器中的抽头的镜像,其中抽头序列[n,A,B]镜像到[n,n-B,n-A]。
获得一对或多对非端抽头可以包括使用在三个抽头上操作的搜索程序:端抽头和两个非端抽头,使用除了全零之外的逻辑操作的每个组合,受到1和0同样可能的优化限制。
搜索程序可以将寄存器初始化为除全零或全1以外的值以用于补充逻辑操作,并且至多运行寄存器2n次,直到生成寄存器状态为重复,序列的长度是从看到状态的第一时机到看到状态的第二时机的状态的数量。
对于近最大长度序列,搜索程序可以:确定到目前为止看到的状态的数量是否是2n-1或更多;如果是,则找到的最长序列是针对该抽头集合可能的最长序列;如果不是,则选择未看见的状态,并再次生成序列和测量长度;可以重复这些步骤,直到看见所有状态或未看见状态的数目小于发现的最长序列的长度。
补充逻辑运算仅具有NAND门和XOR门,其中,逻辑运算采用两个合适的非端抽头的逻辑NAND和与端抽头的逻辑XOR用于反馈到第一级。另一补充逻辑运算仅具有一个AND门和仅一个XNOR门,其中逻辑运算采用两个合适的非端抽头的逻辑AND和逻辑XNOR与端抽头的逻辑AND以用于反馈到第一级。
根据本发明的另一方面,提供了一种为非线性反馈移位寄存器(NLFSR)提供最大或接近最大长度序列以生成n个级的伪随机序列的系统,其中最大长度为2n-1,该系统包括:选择模块,用于选择n,其中n在最大长度线性反馈移位寄存器中需要两个以上抽头;反馈设置模块,用于设置仅一个或门和一个异或门的反馈逻辑运算,将两个合适的非端抽头的逻辑或和与端抽头异或后反馈到第一级,或等效的XNOR门和NOR门逻辑运算,或补充逻辑运算;以及测试组件,用于通过测试两个非端抽头的不同组合以确定提供所述n级寄存器的最大或接近最大长度序列的对组合,来获得一个或多个合适的非端抽头对。
该系统可以包括镜像组件,用于将合适的一对非端抽头作为n级寄存器中的抽头的镜像,获得合适的另一对非端抽头作为n级寄存器中的抽头的镜像,其中抽头序列[n,A,B]镜像到[n,n-B,n-A]。
用于获得一个或多个合适的非端抽头对的测试组件可以包括搜索程序,该搜索程序在三个抽头上操作:端抽头和两个非端抽头,使用逻辑操作的每个组合(除了全零),受到1和0同样可能的优化限制。
搜索程序可以被配置为将表示寄存器的变量初始化为除全零或全1以外的值以用于补充逻辑操作,并且至多运行寄存器2n次,直至生成寄存器状态,该寄存器状态是重复,序列的长度是从看到状态的第一时机到看到状态的第二时机的状态的数量。
搜索程序可以被配置为,对于近最大长度序列:确定到目前为止看到的状态的数量是否是2n-1或更多;如果是,则找到的最长序列是针对该抽头集合可能的最长序列;如果不是,则选择未看见的状态并且再次产生序列和测量长度;并且重复这些步骤,直到看见所有状态或未看见状态的数目小于发现的最长序列的长度。
补充逻辑运算仅具有NAND门和XOR门,其中,逻辑运算采用两个合适的非端抽头的逻辑NAND和与端抽头的逻辑XOR用于反馈到第一级。另一补充逻辑运算仅具有一个AND门和仅一个XNOR门,其中逻辑运算采用两个合适的非端抽头的逻辑AND和逻辑XNOR与端抽头的逻辑AND以用于反馈到第一级。
根据本发明的另一方面,提供了一种用于提供非线性反馈移位寄存器(NLFSR)的方法,该非线性反馈移位寄存器具有用于生成n个级的伪随机序列的最大或接近最大长度序列,其中,最大长度是2n-1,该计算机程序产品包括计算机可读存储媒质,该计算机可读存储媒质具有与其实施的程序指令,这些程序指令可由处理器执行以致使该处理器:选择n,其中n在最大长度线性反馈移位寄存器中需要两个以上抽头;对于选择的n级寄存器,只使用一个或门和一个异或门的反馈逻辑运算,取两个合适的非端抽头的逻辑或和与端抽头的异或,反馈到第一级,或等效的XNOR门和NOR门逻辑运算,或补充逻辑运算;以及通过测试两个非端抽头的不同组合以确定提供n级寄存器的最大或接近最大长度序列的对组合来获得一个或多个合适的非端抽头对。

Claims (25)

1.一种使用非线性反馈移位寄存器(NLFSR)来生成对于n个级具有至少接近最大长度的伪随机序列的方法,其中,最大长度是2n-1,所述方法包括:
选择n,其中,n要求最大长度线性反馈移位寄存器中的两个以上的抽头;以及
使用仅第一逻辑门和第二逻辑门的反馈逻辑运算为所选择的n级寄存器生成伪随机序列,
其中,两个合适的非端抽头是所述第一逻辑门的输入,
其中,所述第一逻辑门的输出和端抽头是所述第二逻辑门的输入,并且
其中,所述第二逻辑门的输出用作对所述n级寄存器的第一级的反馈。
2.根据权利要求1所述的方法,其中,所述第一逻辑门选自由OR门和NAND门组成的组,其中,所述第二逻辑门是XOR门。
3.根据权利要求1所述的方法,其中,所述第一逻辑门是AND门,并且所述第二逻辑门是XNOR门。
4.根据权利要求1所述的方法,其中:
对于一些n,通过两个合适的非端抽头获得最大长度序列,并且
对于其他一些n,使用两个合适的非端抽头获得接近最大长度的序列。
5.根据权利要求1所述的方法,所述方法进一步包括:
通过基于级数n识别提供所述n级寄存器的至少接近最大长度序列的对组合,来获得一个或多个合适的非端抽头对。
6.根据权利要求5所述的方法,其中,获得所述一对或多对非端抽头包括:
确定包括第一非端抽头A和第二非端抽头B的第一合适的非端抽头对;以及
获得第二合适的非端抽头对作为所述n级寄存器中所述第一合适的非端抽头对的镜像,其中抽头序列[n,A,B]镜像到[n,n-B,n-A]。
7.根据权利要求5所述的方法,其中,获得所述一对或多对非端抽头包括使用在三个抽头上操作的搜索程序:所述端抽头和两个非端抽头,使用除了全零之外的逻辑操作的每个组合,受到1和0同样可能的优化限制。
8.根据权利要求7所述的方法,其中,所述搜索程序将所述寄存器初始化为除全零以外的值,并且运行所述寄存器最多2n次,直至生成为重复的寄存器状态,其中,所述序列的长度是从看到状态的第一时机到看到所述状态的第二时机的多个状态。
9.根据权利要求8所述的方法,其中,对于一组抽头的近最大长度序列,所述搜索程序:
确定到目前为止看到的状态的数量是否是2n-1或更多;
如果所见的状态的数量是2n-1或更多,则发现的最长序列是针对该抽头集合可能的最长序列;
如果所看到的状态的数量小于2n-1,则选择新状态,再次生成序列,并测量长度;以及
重复这些步骤,直到看到所有状态或未看见状态的数目小于发现的最长序列的长度。
10.一种用于生成对于n个级具有至少接近最大长度的伪随机序列的非线性反馈移位寄存器NLFSR,其中,最大长度是2n-1,包括:
n级寄存器,其中在最大长度线性反馈移位寄存器中n需要两个以上抽头;
第一逻辑门,具有两个输入端,每个输入端连接至所述n级寄存器的非端抽头;以及具有两个输入端的第二逻辑门,第一输入端连接至该第一逻辑门的输出端并且第二输入端连接至该n级寄存器的端抽头,
其中所述第二逻辑门的输出用作对所述n级寄存器的第一级的反馈。
11.根据权利要求10所述的NLFSR,其中所述第一逻辑门选自由OR门及NAND门组成的群组,且所述第二逻辑门为XOR门。
12.根据权利要求10所述的NLFSR,其中所述第一逻辑门是AND门,且所述第二逻辑门是XNOR门。
13.根据权利要求10所述的NLFSR,其中:
对于一些n,通过两个合适的非端抽头获得最大长度序列,并且
对于其他一些n,使用两个合适的非端抽头获得接近最大长度的序列。
14.一种用于生成8级最大长度的伪随机序列的非线性反馈移位寄存器NLFSR,其中,所述最大长度是255,包括:
8级寄存器;
第一逻辑门,具有连接到所述8级寄存器的第一非端抽头A的第一输入和连接到所述8级寄存器的第二非端抽头B的第二输入;以及
第二逻辑门,具有连接至所述第一逻辑门的输出和所述8级寄存器的端抽头的输入,其中,所述第二逻辑门的输出用作对所述8级寄存器的第一级的反馈,
其中,所述第一非端抽头和所述第二非端抽头位于从由以下各项组成的组中选择的位置处:
A=4,B=3;A=5,B=1;A=5,B=4;以及A=7,B=3。
15.根据权利要求14所述的NLFSR,其中所述第一逻辑门是NAND门且所述第二逻辑门是XOR门。
16.根据权利要求14所述的NLFSR,其中所述第一逻辑门是AND门,且所述第二逻辑门是XNOR门。
17.一种非线性反馈移位寄存器NLFSR,用于生成具有12级的最大长度的伪随机序列,其中,所述最大长度是4095,所述非线性反馈移位寄存器包括:
12级寄存器;
第一逻辑门,具有连接到所述12级寄存器的第一非端抽头A的第一输入和连接到所述12级寄存器的第二非端抽头B的第二输入;以及
第二逻辑门,具有连接至所述第一逻辑门的输出和所述12级寄存器的端抽头的输入,
其中,所述第二逻辑门的输出被用作对所述12级寄存器的第一级的反馈,
其中,所述第一非端抽头和所述第二非端抽头位于从由以下各项组成的组中选择的位置处:
A=7,B=4;以及A=8,B=5。
18.根据权利要求17所述的NLFSR,其中所述第一逻辑门是NAND门且所述第二逻辑门是XOR门。
19.根据权利要求17所述的NLFSR,其中所述第一逻辑门是AND门,且所述第二逻辑门是XNOR门。
20.一种用于提供非线性反馈移位寄存器(NLFSR)的系统,所述非线性反馈移位寄存器具有用于生成n个级的伪随机序列的最大或接近最大长度序列,其中,最大长度是2n-1,所述系统包括:
处理器;以及
计算机可读存储介质,所述计算机可读存储介质通信地耦接至所述处理器并且存储程序指令,所述程序指令在由所述处理器执行时使所述处理器执行一种方法,所述方法包括:
选择n,其中,n要求最大长度线性反馈移位寄存器中的两个以上的抽头;以及
使用仅第一逻辑门和第二逻辑门的反馈逻辑运算为所选择的n级寄存器生成伪随机序列,
其中,两个合适的非端抽头是所述第一逻辑门的输入,
其中,所述第一逻辑门的输出和端抽头是所述第二逻辑门的输入,并且其中所述第二逻辑门的输出用作对所述n级寄存器的第一级的反馈。
21.根据权利要求20所述的系统,其中,所述第一逻辑门选自由OR门和NAND门组成的组,其中,所述第二逻辑门是XOR门。
22.根据权利要求20所述的系统,其中,所述第一逻辑门是AND门,并且所述第二逻辑门是XNOR门。
23.根据权利要求20所述的系统,其中:
对于一些n,通过两个合适的非端抽头获得最大长度序列,并且
对于其他一些n,使用两个合适的非端抽头获得接近最大长度的序列。
24.根据权利要求20所述的系统,其中,由所述处理器执行的所述方法进一步包括:
通过基于级数n识别提供所述n级寄存器的至少接近最大长度序列的对组合,来获得一个或多个合适的非端抽头对。
25.根据权利要求24所述的系统,其中,获得所述一对或多对非端抽头包括:
确定包括第一非端抽头A和第二非端抽头B的第一合适的非端抽头对;以及
获得第二合适的非端抽头对作为所述n级寄存器中所述第一合适的非端抽头对的镜像,其中抽头序列[n,A,B]镜像到[n,n-B,n-A]。
CN202080059362.1A 2019-08-28 2020-08-13 非线性反馈移位寄存器 Active CN114270774B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/553,460 2019-08-28
US16/553,460 US11048476B2 (en) 2019-08-28 2019-08-28 Non-linear feedback shift register
PCT/IB2020/057618 WO2021038356A1 (en) 2019-08-28 2020-08-13 Non-linear feedback shift register

Publications (2)

Publication Number Publication Date
CN114270774A CN114270774A (zh) 2022-04-01
CN114270774B true CN114270774B (zh) 2023-11-21

Family

ID=74681224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080059362.1A Active CN114270774B (zh) 2019-08-28 2020-08-13 非线性反馈移位寄存器

Country Status (6)

Country Link
US (2) US11048476B2 (zh)
JP (1) JP2022546033A (zh)
CN (1) CN114270774B (zh)
DE (1) DE112020003328T5 (zh)
GB (1) GB2601941B (zh)
WO (1) WO2021038356A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11048476B2 (en) 2019-08-28 2021-06-29 International Business Machines Corporation Non-linear feedback shift register
CN116166222B (zh) * 2023-04-24 2023-07-11 上海米硅科技有限公司 一种伪随机二进制序列发生装置及校验装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049608A (en) * 1996-12-31 2000-04-11 University Technology Corporation Variable length nonlinear feedback shift registers with dynamically allocated taps
CN104238995A (zh) * 2013-06-21 2014-12-24 中国人民解放军信息工程大学 一种非线性反馈移位寄存器
CN106254062A (zh) * 2016-10-12 2016-12-21 中国人民解放军信息工程大学 序列密码实现装置及其序列密码实现方法
CN107276537A (zh) * 2017-06-06 2017-10-20 电子科技大学 一种具有降低峰值噪声功能的扩频操作电路

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3911330A (en) 1974-08-27 1975-10-07 Nasa Nonlinear nonsingular feedback shift registers
US6353842B1 (en) 1999-11-23 2002-03-05 Janusz Rajski Method for synthesizing linear finite state machines
US7206797B2 (en) 2003-04-14 2007-04-17 M-Systems Flash Disk Pioneers Ltd. Random number slip and swap generators
DE102004013480B4 (de) * 2004-03-18 2013-01-24 Infineon Technologies Ag Zufallszahlengenerator und Verfahren zum Erzeugen von Zufallszahlen
IL188089A (en) * 2007-12-12 2013-02-28 Nds Ltd Bit generator
DE102009000322A1 (de) 2009-01-20 2010-07-22 Robert Bosch Gmbh Nichtlinear rückgekoppeltes Schieberegister sowie Verfahren zur nichtlinearen Signaturbildung
US20130191427A1 (en) 2010-03-22 2013-07-25 Astrium Limited Pseudo-noise generator
CN102176693A (zh) 2011-03-04 2011-09-07 南京航空航天大学 非线性循环移位寄存器
US8949299B2 (en) 2011-08-01 2015-02-03 Syntest Technologies, Inc. Method and apparatus for hybrid ring generator design
US8983068B2 (en) 2013-03-06 2015-03-17 Infineon Technologies Ag Masked nonlinear feedback shift register
CN107113163B (zh) 2014-12-17 2021-01-22 瑞典爱立信有限公司 流加密技术
US10084593B2 (en) * 2015-01-20 2018-09-25 Ternarylogic Llc Apparatus for unconventional non-linear feedback shift registers (NLFSRs)
US11048476B2 (en) 2019-08-28 2021-06-29 International Business Machines Corporation Non-linear feedback shift register
US10977003B2 (en) 2019-08-28 2021-04-13 International Business Machines Corporation Linear feedback shift register with near-maximal length sequences

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049608A (en) * 1996-12-31 2000-04-11 University Technology Corporation Variable length nonlinear feedback shift registers with dynamically allocated taps
CN104238995A (zh) * 2013-06-21 2014-12-24 中国人民解放军信息工程大学 一种非线性反馈移位寄存器
CN106254062A (zh) * 2016-10-12 2016-12-21 中国人民解放军信息工程大学 序列密码实现装置及其序列密码实现方法
CN107276537A (zh) * 2017-06-06 2017-10-20 电子科技大学 一种具有降低峰值噪声功能的扩频操作电路

Also Published As

Publication number Publication date
GB202202639D0 (en) 2022-04-13
CN114270774A (zh) 2022-04-01
DE112020003328T5 (de) 2022-04-21
GB2601941A (en) 2022-06-15
GB2601941B (en) 2023-04-26
US20210263708A1 (en) 2021-08-26
US11561768B2 (en) 2023-01-24
WO2021038356A1 (en) 2021-03-04
US20210064343A1 (en) 2021-03-04
JP2022546033A (ja) 2022-11-02
US11048476B2 (en) 2021-06-29

Similar Documents

Publication Publication Date Title
Blackman et al. Scrambled linear pseudorandom number generators
US7970809B2 (en) Mixed radix conversion with a priori defined statistical artifacts
US10007488B2 (en) Secured pseudo-random number generator
Cheng et al. High-speed parallel CRC implementation based on unfolding, pipelining, and retiming
CN114270774B (zh) 非线性反馈移位寄存器
US9218158B2 (en) N-valued shift registers with inverter reduced feedback logic functions
US20080016432A1 (en) Error Correction in Multi-Valued (p,k) Codes
US20110064214A1 (en) Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
US7865806B2 (en) Methods and apparatus in finite field polynomial implementations
US20160112069A1 (en) Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
Deshpande et al. Fast and efficient hardware implementation of HQC
US9298423B2 (en) Methods and systems for determining characteristics of a sequence of n-state symbols
Canto et al. Reliable constructions for the key generator of code-based post-quantum cryptosystems on FPGA
US20050135621A1 (en) System and method for determining the nth state of linear feedback shift registers
JP2019186939A (ja) グループ誤りを用いる誤り検出
US10977003B2 (en) Linear feedback shift register with near-maximal length sequences
US7865807B2 (en) Multi-valued check symbol calculation in error detection and correction
US10084593B2 (en) Apparatus for unconventional non-linear feedback shift registers (NLFSRs)
US7383295B2 (en) Selective sequence generation method and apparatus
JP5101253B2 (ja) ランダムエラー発生装置、m系列発生回路及びその設計方法
Jetzek Galois Fields, Linear Feedback Shift Registers and Their Applications
Vivelid Nonlinear feedback shift registers and generating of binary de Bruijn sequences
Alioto et al. On the suitability of digital maps for integrated pseudo-RNGs
JP6386904B2 (ja) 乱数生成装置及び乱数生成方法
US20100299579A1 (en) Methods and Systems for Error-Correction in Convolutional and Systematic Convolutional Decoders in Galois Configuration

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant