JP2022546033A - 非線形フィードバック・シフト・レジスタ - Google Patents

非線形フィードバック・シフト・レジスタ Download PDF

Info

Publication number
JP2022546033A
JP2022546033A JP2022513040A JP2022513040A JP2022546033A JP 2022546033 A JP2022546033 A JP 2022546033A JP 2022513040 A JP2022513040 A JP 2022513040A JP 2022513040 A JP2022513040 A JP 2022513040A JP 2022546033 A JP2022546033 A JP 2022546033A
Authority
JP
Japan
Prior art keywords
gate
taps
logic gate
stage
logic
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.)
Pending
Application number
JP2022513040A
Other languages
English (en)
Inventor
ジョンソン、アンドリュー
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 JP2022546033A publication Critical patent/JP2022546033A/ja
Pending legal-status Critical Current

Links

Images

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

nのステージ数に対して少なくとも略最大長の擬似ランダム・シーケンスを生成するための非線形フィードバック・シフト・レジスタ(NLFSR)を使用するための方法およびシステムが提供され、ここで、最大長は2n-1である。この方法は、nを選択することであり、nが、最大長線形フィードバック・シフト・レジスタでは3つ以上のタップを必要とする、選択することと、選択されたnステージ・レジスタに対して、第1の論理ゲートと第2の論理ゲートのみのフィードバック論理演算を使用して擬似ランダム・シーケンスを生成することとを含むことができる。2つの適切な非エンド・タップが、第1の論理ゲートへの入力であり、第1の論理ゲートの出力およびエンド・タップが、第2の論理ゲートへの入力であり、第2の論理ゲートの出力が、nステージ・レジスタの第1のステージへのフィードバックとして使用される。

Description

本発明は、フィードバック・シフト・レジスタに関し、より具体的には、最大長シーケンスまたは略最大長シーケンスをもつ非線形フィードバック・シフト・レジスタに関する。
デジタル電子回路の分野において、線形フィードバック・シフト・レジスタ(LFSR)は、2-1個の擬似ランダム・ビットのシーケンスを生成するためのデバイスである。LFSRには、例えば暗号を含む多数の用途があり、LFSRは、キー・ストリーム発生器、データ圧縮、誤り検出および訂正などで使用される。
LFSRは、入力ビットが前の状態の線形関数であるシフト・レジスタである。単一ビットの最も一般に使用される線形関数は排他的論理和(XOR)であり、シフト・レジスタは、シフト・レジスタ値全体のうちの一部のビットのXORによって駆動される入力ビットを有する。LFSRのハードウェア実装とソフトウェア実装の両方が一般的である。
次の状態に影響を与えるビット位置はタップと呼ばれる。LFSRの右端のビットは出力ビットと呼ばれる。フィボナッチLFSRでは、タップは、出力ビットと順次XORされ、次いで、左端のビットにフィードバックされる。右端位置のビットのシーケンスは出力ストリームと呼ばれる。最大長のLFSRは、すべてのビットがゼロである状態を除いて、シフト・レジスタ内のすべての可能な2-1状態を循環するとき、nシーケンスをもたらす。同等の多項式カウンタをもたらすXNORを使用することも可能である。
LFSRのフィードバックのためのタップの配置は、有限体演算において、フィードバック多項式と呼ばれる、多項式の係数が1または0でなければならない多項式mod2として表現することができる。
最大周期をもつLFSRは、2進数フィールド上に原始生成多項式を使用して構築することができる。対応するフィードバック多項式が原始であり、タップの数が偶数であり、タップのセットがセットワイズコプライム(setwise co-prime)である場合、LFSRは最大長である。
以下は、最大長LFSRを構築することができる24ビットまでのnビットに対するフィードバック多項式を示す表である。所与のLFSR長に対して、2つ以上の最大長タップ・シーケンスがあり得る。
Figure 2022546033000002
多項式の「+1」はタップに対応せず、第1のビットへの入力に対応する。項の累乗は、左から数えて、タップされたビットに関連する。4つの項に加えて1つの項をもつLFSRは、4つのタップを必要とし、それゆえに、3つのXORゲートを必要とする。
次に、図1を参照すると、示されているのは、例示の8ステージ(段)LFSR100である。レジスタの8ビット101~108が、1~8の番号で示されており、第8のビットは右端の出力ビット108である。図示の実施形態では、図示の8ビット・レジスタは、多項式x+x+x+x+1に従って、4、5、6、および8ビットからのタップを有する。タップの各々は、XORゲート111、112、113を使用して、線形フィードバックを行う。フィードバック120は、第1のビット101に入力される。
適応は、トップ・ボトム・ハイブリッドLFSR発生器であり、トップLFSRタップがラスト・タップとXORされ、その結果がトップ・タップの後のステージに送り込まれる。ボトム・タップがラスト・タップとXORされ、その結果がシフト・レジスタの第1のステージに送り込まれる。トップ・ボトム・ハイブリッドLFSR発生器は、以下のように4タップを3タップ(2つのXOR)に減少させるために使用することができる。
{8,7,-6}
{12,9,-4}
{13,12,-11}
{14,13,-11}
{16,14,-7}
{19,18,-11}
{24,23,-19}
ここで、最初の数字はステージの数であり、第2の数字はトップLFSRタップであり、第3の数字(負として示されている)はボトムLFSRタップである。
2つのXORを用いて、いくつかの場合には、ハイブリッドLFSRは、2-1のシーケンスを生成することができる。しかしながら、これは、データを挿入するために、シフト・レジスタの中央とエンドの両方へのアクセスを必要とする。
LFSRには、線形複雑性が次数に等しいという欠点がある。最近になって、非線形フィードバック・シフト・レジスタ(NLFSR)が設計された。NLFSRは、LFSRの一般化であり、現在の状態が前の状態の非線形関数である。そのため、NLFSRでは、リエントラント・ビットは、レジスタ・ビットの単純なXOR演算のみではなくそれ以上のものである。これにより、レジスタは、ガロア、フィボナッチ、および他の事前定義されたタップの硬直から解放されるが、そのとき、ロックアップが生じないこと、およびレジスタがパターンに落ち着かないことを確認することが必要である。
NLFSRに関する問題は、長周期が保証されたNLFSRを構築するための系統的な手順を見いだすことである。
“A List of Maximum Period NLFSRs” Royal Institute of Technology (KTH), Forum 120, 164 40 Kista,Sweden by Elena Dubrova(「Dubrova」と呼ぶ)は、多数のXORおよび1つのANDゲートを使用する最大長シーケンスを提供するNLFSRをリストしている。代数次数2をもつ3つの異なるタイプのフィードバック関数について、周期2-1、n<25のnビットNLFSRの完全なリストが提示されている。
Dubrovaは多くの配置を使用しており、それらのうちの1つは、最大長LFSRにおいて4つのタップを必要とするビット・レジスタ、すなわち、nが24以下の範囲においてn={8,12,13,14,16,19,24}では3つのXORおよび1つのANDゲートである。Dubrovaはまた、他の配置、すなわち、3つのXORと2つのANDゲート、5つのXORと1つのANDゲート、5つのXORと2つのANDゲートを使用している。n=8の場合について、Dubrovaは、15個の例により3つのXORと1つのANDゲート、18個の例により3つのXORと2つのANDゲート、および9つの例により5つのXORと1つのANDゲートを示している。
次に、図2を参照すると、示されているのは、Dubrovaによって提案された例示の8ステージNLFSR200であり、それは、Dubrovaが3つのXORと1つのANDゲートを用いて提案している15個のオプションの例のうちのただ単に1つである最大長シーケンスを提供する。レジスタの8つのビット201~208が、1~8の番号で示されており、第8のビットは右端の出力ビット208である。図示の8ビット・レジスタは、4、5、および8ビットからのタップ(T4、T5、T8)を有する。非線形フィードバック220は、以下のように、すなわち、T8 XOR T5 XOR T4 XOR (T5 AND T4)のように、3つのXOR211~213と1つのANDゲート214を備える。タップに番号を付けるDubrovaの表記(7・・・0)では、これは、「0,3,4,(3,4)」である。
対処される問題は、フィードバック・シフト・レジスタを使用する擬似乱数発生器の最大長シーケンスを維持しながら、論理フィードバックで使用されるゲートの数を最小化することである。
フィードバック・シフト・レジスタは、ブール充足可能性を使用して表現される問題にも使用することができる。例えば、LFSRシーケンスは、ハミルトン閉路問題を解決するために使用される。LFSRを表すための節の数を最小化すると、問題の解決が簡単になる。
本開示の実施形態は、nのステージ数に対して少なくとも略最大長の擬似ランダム・シーケンスを生成するための非線形フィードバック・シフト・レジスタ(NLFSR)を使用するための方法およびシステムを含み、ここで、最大長は2-1である。この方法は、nを選択することであり、nが、最大長線形フィードバック・シフト・レジスタでは3つ以上のタップを必要とする、選択することと、選択されたnステージ・レジスタに対して、第1の論理ゲートと第2の論理ゲートのみのフィードバック論理演算を使用して擬似ランダム・シーケンスを生成することとを含むことができ、2つの適切な非エンド・タップが、第1の論理ゲートへの入力であり、第1の論理ゲートの出力およびエンド・タップが、第2の論理ゲートへの入力であり、第2の論理ゲートの出力が、nステージ・レジスタの第1のステージへのフィードバックとして使用される。
実施形態において、第1の論理ゲートは、ORおよびNANDゲートからなる群から選択することができ、第2の論理ゲートはXORゲートである。他の実施形態では、第1の論理ゲートはANDゲートであり、第2の論理ゲートはXNORゲートである。
実施形態において、あるnに対して、最大長シーケンスが、2つの適切な非エンド・タップで取得され、他のあるnに対して、略最大長シーケンスが、2つの適切な非エンド・タップで取得される。
実施形態において、この方法は、ステージ数nに基づいて、nステージ・レジスタの少なくとも略最大長シーケンスを提供するペアの組合せを識別することによって、非エンド・タップの1つまたは複数の適切なペアを取得することを含むことができる。実施形態において、非エンド・タップの1つまたは複数の適切なペアを取得することは、第1の非エンド・タップAおよび第2の非エンド・タップBを含む非エンド・タップの第1の適切なペアを決定することと、非エンド・タップの第2の適切なペアを、nステージ・レジスタの非エンド・タップの第1の適切なペアのミラーとして取得することであり、タップ・シーケンス[n,A,B]が[n,n-B,n-A]にミラーリングする、取得することとを含むことができる。
実施形態において、非エンド・タップの1つまたは複数の適切なペアを取得することは、3つのタップ、すなわち、エンド・タップおよび2つの非エンド・タップに関して動作し、すべてゼロを除いて、1および0が同程度に確からしいという最適化制限に従う論理演算のすべての組合せを使用する検索プログラムを使用することを含む。実施形態において、検索プログラムは、レジスタをすべてゼロ以外の値に初期化し、繰り返しであるレジスタ状態が生成されるまで、レジスタをせいぜい2回実行し、シーケンスの長さは、ある状態が見られた第1の機会からその状態が見られた第2の機会までの状態の数である。
実施形態において、タップのセットに対する略最大長シーケンスでは、検索プログラムは、これまでに見られた状態の数が2n-1以上であるかどうかを決定することができる。見られた状態の数が2n-1以上である場合、見いだされた最長シーケンスが、タップのそのセットで可能な最長のものである。見られた状態の数が2n-1未満である場合、新しい状態が選ばれ、シーケンスが再び生成され、長さが測定され、検索プログラムは、すべての状態が見られるか、または見られていない状態の数が見いだされた最長シーケンスの長さ未満になるまで、これらのステップを繰り返す。
本開示の実施形態は、nのステージ数に対して少なくとも略最大長の擬似ランダム・シーケンスを生成するためのNLFSRを含み、ここで、最大長は2-1である。NLFSRは、nステージ・レジスタであり、nが、最大長線形フィードバック・シフト・レジスタでは3つ以上のタップを必要とする、nステージ・レジスタと、2つの入力を有する第1の論理ゲートであり、各入力が、nステージ・レジスタの非エンド・タップに接続される、第1の論理ゲートと、2つの入力を有する第2の論理ゲートであり、第1の入力が、第1の論理ゲートの出力に接続され、第2の入力が、nステージ・レジスタのエンド・タップに接続される、第2の論理ゲートとを含み、第2の論理ゲートの出力が、nステージ・レジスタの第1のステージへのフィードバックとして使用される。
本開示の実施形態は、8ステージに対して最大長の擬似ランダム・シーケンスを生成するためのNLFSRを含み、ここで、最大長は255である。NLFSRは、8ステージ・レジスタと、8ステージ・レジスタの第1の非エンド・タップAに接続された第1の入力と、8ステージ・レジスタの第2の非エンド・タップBに接続された第2の入力とを有する第1の論理ゲートと、第1の論理ゲートの出力に接続された入力と、8ステージ・レジスタのエンド・タップに接続された入力とを有する第2の論理ゲートとを含む。第2の論理ゲートの出力は、8ステージ・レジスタの第1のステージへのフィードバックとして使用され、第1の非エンド・タップおよび第2の非エンド・タップは、A=4とB=3、A=5とB=1、A=5とB=4、およびA=7とB=3からなる群から選択された位置にある。
本開示の実施形態は、nのステージ数に対して最大長の擬似ランダム・シーケンスを生成するためのNLFSRを含み、ここで、最大長は4095である。NLFSRは、12ステージ・レジスタと、12ステージ・レジスタの第1の非エンド・タップAに接続された第1の入力と、12ステージ・レジスタの第2の非エンド・タップBに接続された第2の入力とを有する第1の論理ゲートと、第1の論理ゲートの出力に接続された入力と、12ステージ・レジスタのエンド・タップに接続された入力とを有する第2の論理ゲートとを含む。第2の論理ゲートの出力は、12ステージ・レジスタの第1のステージへのフィードバックとして使用され、第1の非エンド・タップおよび第2の非エンド・タップは、A=7とB=4、およびA=8とB=5からなる群から選択された位置にある。
上述の概要は、本開示の各々の図示の実施形態またはすべての実施態様を説明するように意図されていない。
本開示に含まれる図面は、本明細書に組み込まれ、本明細書の一部を形成する。それらは、本開示の実施形態を示し、説明とともに、本開示の原理を説明するのに役立つ。図面は、典型的な実施形態を単に例示しており、本開示を限定しない。
8ステージLFSRを示す概略回路図である。 最大長シーケンスを提供する非線形フィードバック構成を有する8ステージNLFSRを示す概略回路図である。 本開示の実施形態による、NLFSRを提供するための方法の例示の実施形態の流れ図である。 本開示の第1の実施形態による、一般化ステージNLFSRの概略回路図である。 本開示の第2の実施形態による、ミラー一般化ステージNLFSRの概略回路図である。 本開示の第3の実施形態による、補数一般化ステージ(complement generalized stage)NLFSRの概略回路図である。 本開示の第4の実施形態による、別の補数一般化ステージNLFSRの概略回路図である。 図4の第1の実施形態による8ステージNLFSRの概略回路図である。 図5の第2の実施形態による8ステージNLFSRの概略回路図である。 図6の第3の実施形態による8ステージNLFSRの概略回路図である。 図7の第4の実施形態による8ステージNLFSRの概略回路図である。 本開示の実施形態による、図8のレジスタのさらに多くの詳細を示す概略回路図である。 本開示の実施形態による、図10のレジスタのさらに多くの詳細を示す概略回路図である。 本開示の実施形態による、図11のレジスタのさらに多くの詳細を示す概略回路図である。 本開示の実施形態によるシステムの例示の実施形態のブロック図である。 本開示の実施形態を実施することができるコンピュータ・システムの一実施形態のブロック図である。
本明細書に記載の実施形態は、様々な変更および代替形態の対象になるが、その明細は、例として図面に示されており、詳細に説明されることになる。しかしながら、説明される特定の実施形態は限定の意味でとられるべきでないことを理解されたい。それどころか、その意図は、本開示の趣旨および範囲内にあるすべての変更、均等物、および代替を包含するものである。
記載の方法およびシステムは、線形フィードバック・シフト・レジスタ(LFSR)では最大長のために3つ以上のタップ、通常、4つ以上のタップを必要とするnのステージ数を有するレジスタに関して、擬似ランダム・シーケンスを生成するための最大長シーケンスまたは略最大長シーケンスをもつ非線形フィードバック・シフト・レジスタ(NLFSR)を提供する。LFSRの4つのタップは、3つのXORゲートを使用する。
最大長シーケンスは2-1であり、ここで、欠落状態(missing state)は、すべて0であり、または補数論理演算では、すべて1である。この説明における略最大は、最大長から4%未満のずれとして定義される。
この方法およびシステムはn=24までテストされており、最大長シーケンスは、LFSRの線形フィードバック構成の最大長シーケンスでは3つ以上のタップを必要とするnステージ・レジスタのグループのn=8およびn=12に対して、記載の非線形フィードバックを使用して達成される。しかしながら、LFSRの最大長シーケンスに3つ以上のタップを必要とする他のnステージ・レジスタは、n>24に対しても存在する可能性があり、記載の構成は、nのこれらのより大きい値に対しても使用することができる。
2つのゲートの記載の非線形フィードバック構成は、LFSRの最大長シーケンスでは3つ以上のタップを必要とする他のnステージ・レジスタで使用することができるが、略最大長シーケンスしか提供しない可能性がある。これらは、簡単化されたフィードバックでの2つのゲートのみの非線形フィードバック構成としても有用であり得る。
簡単化された論理演算が、最大長シーケンスまたは略最大長シーケンスを最小数のゲートに与えるNLFSRのフィードバックとして提供される。LFSRの3つのXORゲートの代わりに、単一のXORゲートと単一のORゲートが、NLFSRのフィードバック論理演算で使用される。1つのみのORと1つのみのXORゲートの論理フィードバックは、第1のステージへのフィードバックとして、2つの選択された非エンド・タップの論理ORと、エンド・タップとのXORとを使用する。XORおよびORの代替は、同等の論理演算でXNORおよびNORを使用するものである。
記載のNLFSRの単一のXORゲートと単一のORゲートの同等な代替として、単一のXNORゲートと単一のANDゲートまたは単一のXORゲートと単一のNANDゲートの補数構成を使用することができる。補数構成は反転入力をとる。
補数図は、わずかに異なるが同じように有用なシーケンスをカバーする。オリジナルの回路の最大長の欠落状態は、すべて0であり、0 XOR (0 OR 0)=0であるので、レジスタはすべて0のままである。補数回路は、1 XOR (1 NAND 1)=1 XOR (0)=1であるので、欠落状態としてすべて1を有する。
反転は、XOR(=XNOR)の出力またはAND=(NAND)の出力で行うことができる。他の変形は、フリップ・フロップ要素シフト・レジスタの反転出力、すなわち、Qバー出力のうちの1つまたは複数を利用して、反転を行う。
多種多様な構成が、例えば、T8 XOR (!T4 NAND!T5)などの同じ演算を計算するための同等な論理構成に使用することができ、!T4および!T5信号は、フリップ・フロップのQバー出力から直接生成することができる。記載のレジスタは、論理演算に2つのゲートを有するすべての均等物を包含するように意図される。
1つのみのORゲートと1つのみのXORゲートの論理フィードバックを考えると、nのステージ数(1からnの番号を付けられた)では、XORゲートへの入力は、ステージnの出力およびORゲートの出力であり、ORゲートへの入力は、2つの適切なステージ(y1、y2の出力(y1<n)、(y2<n)、およびy1はy2と等しくない)であり、ステージ1への入力はXORゲートの出力である。
次に、図3を参照すると、NLFSRを提供するための記載の方法300の例示の実施形態が、流れ図で示される。
実施形態において、方法300は、レジスタのステージ数としてnを選択することによって開始する。これが、ステップ301に示される。nは、最大長線形フィードバック・シフト・レジスタでは3つ以上のタップを必要とする。通常のフィボナッチLFSRは、4つ以上のタップを必要とするが、ハイブリッドLFSRによって3つのタップで実装することができ、そのため、nは3つ以上のタップを必要とする。
選択されたnステージ・レジスタでは、方法300は、第1のステージへのフィードバックのために、2つの非エンド・タップの論理ORをとり、エンド・タップとXORされて出力される、1つのみのORゲートと1つのみのXORゲートのフィードバック論理項を使用する。これが、ステップ302に示される。実施形態において、同じ論理演算が、XNORゲートとNORゲートにより使用される。他の実施形態では、方法300は、1つのみのXNORと1つのみのANDの補数構成、または1つのみのXORと1つのみのNANDの補数構成を使用することができる。これが、ステップ303に示される。
方法300は、非エンド・タップの候補ペアの様々な組合せをテストすることによって、1および0が同程度に確からしいという最適化制限に従う3ビットのすべての論理演算を使用し、3つのタップ、すなわち、エンド・タップと非エンド・タップの候補ペアとを使用して非エンド・タップの適切なペアを捜すことによって、nステージ・レジスタの最大長シーケンスまたは略最大長シーケンスを提供するペアの組合せを決定することに続く。これが、ステップ304に示される。すべての可能な入力に対する出力として、1が0よりも多い可能性がある場合、出力は、一般に、0よりも1が多いことになり、そのため、カウンタは、ほとんどすべての状態をカバーできるとは限らない。
nステージ・レジスタでは、そのとき、考慮すべき(n-1)*(n-2)/2の可能性があることになる。捜されるべき可能なペアの数は、XORの最後のタップを選択し、第1のOR入力のためにn-1個の他のタップのうちの1つを選択し、第2の入力のためにn-2個の残りのタップのうちの1つを選択し、OR入力の順序は問題とならないので可能性を2で除算することとして決定することができる。
レジスタは、すべて0000(またはタップの補数構成ではすべて1111)以外の値に初期化することができ、レジスタをせいぜい2回、以前に見られたレジスタ状態を生成するまで実行することができる。シーケンスの長さは、繰り返される状態が見られた第1の機会から第2の機会までの状態の数である。
すべての可能な2個の状態が1個(すべて0000)を除いて達せられており、見いだされた最後の新しい状態の後に最初の状態が続く場合、これは、最大長シーケンスである。
略最大長シーケンスでは、これまでに見られた状態の数が2n-1以上であるかどうかを決定することができる。そうである場合、異なる開始状態から生成された他のシーケンスはそれほど長くなることはできない。そうでない場合、これまでに見られなかった状態が選ばれることになり、シーケンスが再び生成されることになる。このシーケンスの長さが測定されることになり、プロセスは、すべての状態が見られるか、または見られていない状態の数がこれまでに見いだされた最長シーケンスの長さ未満になるまで、繰り返されることになる。
方法300は、非エンド・タップの1つまたは複数の適切なペアを取得することによって続く。これが、ステップ305に示される。非エンド・タップの各々の適切なペアに対して、方法300は、非エンド・タップの別の適切なペアをnステージ・レジスタにおけるタップのミラーとして識別することができ、タップ・シーケンス[n,A,B]は、[n,n-B,n-A]にミラーリングする。これが、ステップ306に示される。
方法300は、レジスタのフィードバック論理構成において非エンド・タップの適切なペアを使用することによって続く。これが、ステップ307に示される。
図4から図7は、本開示の実施形態による、フィードバック論理演算を有する一般化されたnステージNLFSR400、500、600、700を示す。nは、LFSRの線形フィードバック構成において最大長シーケンスに3つ以上のタップを必要とするnステージ・レジスタに制限され、nステージ・レジスタに対して、適切な非エンド・タップが、例えば図3の方法300を使用して見いだされる。
次に、図4を参照すると、示されているのは、レジスタの左から右に「1」401から「n」404の番号が付けられたnのステージ数に関して、1つのみのOR411と1つのみのXORゲート412の記載の論理フィードバックの第1の実施形態による例示のレジスタ400である。
ORゲート411への入力は、2つの適切なステージ「A」402および「B」403の出力であり、ここで、A,B<nおよびA≠Bであり、ここで、AおよびBは適切な非エンド・タップである。XORゲート412への入力は、ステージn 404の出力およびORゲート411の出力である。ステージ1 401への入力420は、XORゲート412の出力である。
次に、図5を参照すると、示されているのは、レジスタの左から右に「1」501から「n」504の番号が付けられたnのステージ数に関して、1つのみのOR511と1つのみのXORゲート512の記載の論理フィードバックを有する第2の実施形態による例示のレジスタ500である。第2の実施形態は、第1の実施形態の論理構成のミラーまたは逆である。
ORゲート511への入力は、2つのミラーの適切なステージ「n-B」502および「n-A」503の出力である。XORゲート512への入力は、ステージn 504の出力およびORゲート511の出力である。ステージ1 501への入力520は、XORゲート512の出力である。
次に、図6を参照すると、示されているのは、第1の実施形態の補数の第3の実施形態による例示のレジスタ600である。具体的には、示されているのは、レジスタの左から右に「1」601から「n」604の番号が付けられたnのステージ数に関して、1つのみのAND611と1つのみのXNORゲート612の記載の論理フィードバックである。
ANDゲート611への入力は、2つの適切なステージ「A」602および「B」603の出力であり、ここで、A,B<nおよびA≠Bであり、ここで、AおよびBは適切な非エンド・タップである。XNORゲート612への入力は、ステージn 604の出力およびANDゲート611の出力である。ステージ1 601への入力620は、XNORゲート612の出力である。
次に、図7を参照すると、示されているのは、第1の実施形態の別の補数の第4の実施形態による例示のレジスタ700である。具体的には、示されているのは、レジスタの左から右に「1」701から「n」704の番号が付けられたnのステージ数に関して、1つのみのNAND711と1つのみのXORゲート712の記載の論理フィードバックである。
NANDゲート711への入力は、2つの適切なステージ「A」702および「B」703の出力であり、ここで、A,B<nおよびA≠Bであり、ここで、AおよびBは適切な非エンド・タップである。XORゲート712への入力は、ステージn 704の出力およびNANDゲート711の出力である。ステージ1 701への入力720は、XORゲート712の出力である。
図5のミラーの実施形態の補数構成がさらに使用されてもよい。言い換えれば、図6および図7の補数構成のミラー構成がさらに使用されてもよい。
nが24までのnステージ・レジスタの例では、セットn={8,12,13,14,16,19,24}は、LFSRで4つのタップが必要とされるレジスタである。しかしながら、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のステージを1として、およびエンドのステージをnとして、レジスタ内の番号によって参照される。2つの連続するレジスタ入力が記述される場合、A1からAnおよびB1からBnが使用される。
次に、図8を参照すると、示されているのは、図4の第1の実施形態の記載の論理フィードバックを有する例示の8ステージ・レジスタ800である。記載の論理フィードバックを使用して、8ステージ・レジスタ800の最大長を達成する適切なタップは、以下の通りである。
n=8 a=3 b=4,長さ=255、
n=8 a=1 b=5,長さ=255、
n=8 a=4 b=5,長さ=255、
n=8 a=3 b=7,長さ=255。
図8は、A=4 804およびB=5 805の例示の適切な非エンド・タップを示す。ORゲート811への入力は、2つの適切なステージA=4 804およびB=5 805の出力である。XORゲート812への入力は、ステージn=8 808の出力およびORゲート811の出力である。ステージ1 801への入力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
図示の実施形態は、1つのORゲートと1つのXORゲートを必要とする。タップは、適切に選ばれる必要があるが、動作可能である場合、2-1のシーケンスを生成することができる。8ステージ・レジスタでは、それは、繰り返しの前に最大255個の値を生成することができる。
タップの1つのセットを取得すると、他のセットは、ミラーリングまたはリバーシングによって生成することができ、例えば、T8 XOR(T5 OR T4)が与えられると、図9に詳述されるように、T8 XOR(T3 OR T4)が存在する。
次に、図9を参照すると、示されているのは、図8の実施形態のミラーとしての図5の第2の実施形態の記載の論理フィードバックを有する例示の8ステージ・レジスタ900である。例示のミラーリングされた適切な非エンド・タップは、n-B=3 903およびn-A=4 904である。ORゲート911への入力は、ミラー3 903および4 904の出力である。XORゲート912への入力は、ステージn=8 908の出力およびORゲート911の出力である。ステージ1 901への入力920は、XORゲート912の出力である。
次に、図10を参照すると、示されているのは、補数構成の図6の第3の実施形態の記載の論理フィードバックを有する例示の8ステージ・レジスタ1000である。図10は、図8のレジスタの補数を示す。
図10は、A=4 1004およびB=5 1005の図8で使用されている例示の適切な非エンド・タップを使用する。ANDゲート1011への入力は、2つの適切なステージA=4 1004およびB=5 1005の出力である。XNORゲート1012への入力は、ステージn=8 1008の出力およびORゲート1011の出力である。ステージ1 1001への入力1020は、XNORゲート1012の出力である。
T8 XNOR (T5 AND T4)のこの補数構成をさらにミラーリングして、T8 XNOR (T3 AND T4)を提供することができる。
次に、図11を参照すると、示されているのは、代替の補数構成の図7の第4の実施形態の記載の論理フィードバックを有する例示の8ステージ・レジスタ1100である。図11は、図8のレジスタの別の補数を示す。
図11は、A=4 1104およびB=5 1105の図8で使用されている例示の適切な非エンド・タップを使用する。NANDゲート1111への入力は、2つの適切なステージA=4 1104およびB=5 1105の出力である。XORゲート1112への入力は、ステージn=8 1108の出力およびORゲート1111の出力である。ステージ1 1101への入力1120は、XORゲート1112の出力である。
T8 XOR(T5 NAND T4)のこの補数構成をさらにミラーリングして、T8 XOR(T3 NAND T4)を提供することができる。
8ビット・レジスタのタップの第2の適切なペアがあり、論理演算は、
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=12 a=4 b=7, 長さ=4095、
n=12 a=5 b=8, 長さ=4095。
12ステージ・カウンタでは、記載の方法は、5および8のタップの例示の適切な非エンド・ペアを有する。
B1=(A5 OR 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 OR 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に対して見いだされた適切なタップを要約している。
Figure 2022546033000003
図12A、図12B、および図12Cは、それぞれ、図8、図10、および図11のレジスタ800、1000、および1100をより詳細に示す。
次に、図12Aを参照すると、示されているのは、8つのステージがDタイプ・フリップ・フロップ1201~1208によって設けられた図8のレジスタ800である。各フリップ・フロップ1201~1208は、クロック入力(CLK)1211、データ入力(D)1212、出力(Q)1213、および反転出力
Figure 2022546033000004

1214を有する。
図12Aは、非エンド・タップ804および805と、エンド・タップ808と、ORゲート811およびXORゲート812によって行われるフィードバック論理演算とを有するレジスタ800を示す。レジスタ出力1215も示される。
次に、図12Bを参照すると、示されているのは、8つのステージがDタイプ・フリップ・フロップ1221~1228によって設けられた図10のレジスタ1000である。各フリップ・フロップ1221~1228は、クロック入力(CLK)1231、データ入力(D)1232、出力(Q)1233、および反転出力
Figure 2022546033000005

1234を有する。
図12Bは、非エンド・タップ1004および1005と、エンド・タップ1008と、XNORゲート1012およびANDゲート1011によって行われるフィードバック論理演算とを有するレジスタ1000を示す。レジスタ出力1235も示される。
次に、図12Cを参照すると、示されているのは、8つのステージがDタイプ・フリップ・フロップ1241~1248によって設けられた図11のレジスタ1100である。各フリップ・フロップ1241~1248は、クロック入力(CLK)1251、データ入力(D)1252、出力(Q)1253、および反転出力
Figure 2022546033000006

1254を有する。
図12Cは、非エンド・タップ1104および1105と、エンド・タップ1108と、XORゲート1112およびNANDゲート1111によって行われるフィードバック論理演算とを有するレジスタ1100を示す。レジスタ出力1255も示される。
2つのゲートの記載の非線形フィードバック構成は、LFSRの最大長シーケンスでは3つ以上のタップを必要とする他のnステージ・レジスタで使用することができるが、略最大長シーケンスしか提供しない可能性がある。これらは、さらに、2つのゲートのみの非線形フィードバック構成が簡単化されたフィードバック構成であるので有用であり得る。
以下のタップおよび略最大長シーケンスが見いだされている。
長さ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は、2つのXORを用いて2-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)
以前には、上述で提供したように、最小は2つのXORゲートであり、最も長い非最大長シーケンスは少数のタップによるものであった。記載の方法は、1つのみのORゲートと1つの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は、他の方向のシフト・レジスタを使用し、第1のタップをタップ0として取っており、そのため、これは、各数xをn-xと取り替えることによって変換することができる。
これにより、Dubrovaは、
記載の方法の
A8 XOR (A5 OR A4)
と比較して、
A8 XOR A5 XOR A4 XOR (A5 AND A4)
として与えられる。
記載の方法は、3つのXORと1つのANDの代わりに、1つのORと1つのXORのより簡単な論理関数を使用する。
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 OR C)と同じである。
それらは論理上等価であるが、この単純化が可能であることは、当業者のDubrovaには明らかでなかった。Dubrovaのタップは、一般に、n,a,b,(a,b)の形式のものを除いて、記載の方法のものに簡単化することができない。
それらのいくつかは記載の方法に簡単化することができるが、これは明らかではない。n=8では、Dubrovaは、タップの42セットをリストしており、そのうちの2つのみが記載の方法に簡単化することができ、Dubrovaは、それらを特別のものとして言及していない。n=12では、Dubrovaは、タップの36セットをリストしており、そのうちの1つのみが記載の方法に簡単化することができ、Dubrovaは、そのセットを特別のものとして言及していない。
簡易化は、記載の方法にとってキーであり、これが可能となるように、適正なタップが選ばれなければならない。
図13を参照すると、ブロック図は、最大長シーケンス1310をもつ非線形NLFSR構成を提供するためのシステムを含むコンピュータ・システム1300を示す。
コンピュータ・システム1300は、少なくとも1つのプロセッサ1301、ハードウェア・モジュール、または少なくとも1つのプロセッサで実行するソフトウェア・ユニットとすることができる記載の構成要素の機能を実行するための回路を含むことができる。並行処理スレッドを実行する多数のプロセッサが備えられてもよく、それにより、構成要素の機能の一部またはすべての並行処理が可能になる。メモリ1302は、構成要素の機能を実行するために、少なくとも1つのプロセッサ1301にコンピュータ命令1303を提供するように構成することができる。
非線形NLFSR構成を提供するためのシステム1310は、nを選択するための選択構成要素1311を含むことができ、ここで、nは、最大長線形フィードバック・シフト・レジスタでは3つ以上のタップを必要とする。
システム1310は、第1のステージへのフィードバックのために、2つの適切な非エンド・タップの論理ORと、エンド・タップとのXORとをとる、1つのみのORゲートと1つのみのXORゲートのフィードバック論理演算、または補数論理演算を構成するためのフィードバック構成要素1312を含む。第1の補数論理演算は、1つのみのNANDゲートと1つのみのXORゲートのものであり、論理演算は、第1のステージへのフィードバックのために、2つの適切な非エンド・タップの論理NANDと、エンド・タップとの論理XORとをとる。第2の補数論理演算は、1つのみのANDゲートと1つのみのXNORゲートのものであり、論理演算は、第1のステージへのフィードバックのために、2つの適切な非エンド・タップの論理ANDと、エンド・タップとの論理XNORとをとる。
システム1310は、nステージ・レジスタの最大長シーケンスを提供するペアの組合せを決定するために、2つの非エンド・タップの様々な組合せをテストすることによって、非エンド・タップの1つまたは複数の適切なペアを取得するためのテスト構成要素1313を含むことができる。テスト構成要素1313は、3つのタップ、すなわち、エンド・タップおよび2つの非エンド・タップに関して動作し、1および0が同程度に確からしいという最適化制限に従う論理演算のすべての組合せを使用する検索プログラム1314を含むことができる。システム1310は、フィードバック構成要素1312で使用する適切な非エンド・タップ・ペアを出力するための適切タップ・ペア出力構成要素1315を含むことができる。
システム1310は、非エンド・タップの1つの適切なペアをとり、そして、nステージ・レジスタのタップのミラーとして非エンド・タップの別の適切なペアを取得するためのミラー構成要素1316を含むことができ、ここで、タップ・シーケンス[n,A,B]は、[n,n-B,n-A]にミラーリングする。
図14は、本発明の一実施形態による、図13のコンピュータ・システム1300の構成要素のブロック図を示す。図14は、1つの実施態様の例のみを提供し、異なる実施形態を実施することができる環境に関する制限を意味しないことを理解されたい。図示の環境への多くの変更を行うことができる。
コンピュータ・システム1300は、1つまたは複数のプロセッサ1402、1つまたは複数のコンピュータ可読RAM1404、1つまたは複数のコンピュータ可読ROM1406、1つまたは複数のコンピュータ可読ストレージ媒体1408、デバイス・ドライバ1412、読み取り/書き込みドライブまたはインタフェース1414、およびネットワーク・アダプタまたはインタフェース1416を含むことができ、すべては通信ファブリック1418を介して相互接続される。通信ファブリック1418は、プロセッサ(マイクロプロセッサ、通信およびネットワーク・プロセッサなどのような)、システム・メモリ、周辺デバイス、およびシステム内の他のハードウェア構成要素の間でデータまたは制御情報あるいはその両方を渡すように設計された任意のアーキテクチャで実装することができる。
1つまたは複数のオペレーティング・システム1410、およびNLFSR構成1310を提供するためのシステムなどのアプリケーション・プログラム1411は、それぞれのRAM1404(一般にキャッシュ・メモリを含む)のうちの1つまたは複数を介してプロセッサ1402のうちの1つまたは複数で実行するためにコンピュータ可読ストレージ媒体1408のうちの1つまたは複数に格納される。図示の実施形態では、コンピュータ可読ストレージ媒体1408の各々は、本発明の実施形態に従って、内蔵ハード・ドライブの磁気ディスク・ストレージ・デバイス、CD-ROM、DVD、メモリ・スティック、磁気テープ、磁気ディスク、光ディスク、半導体ストレージ・デバイス、例えば、RAM、ROM、EPROM、フラッシュ・メモリなど、またはコンピュータ・プログラムおよびデジタル情報を格納することができる任意の他のコンピュータ可読ストレージ媒体とすることができる。
コンピュータ・システム1300は、1つまたは複数のポータブル・コンピュータ可読ストレージ媒体1426から読み取り、それに書き込むために、読み取り/書き込みドライブまたはインタフェース1414をさらに含む。コンピュータ・システム1300上のアプリケーション・プログラム1411は、ポータブル・コンピュータ可読ストレージ媒体1426のうちの1つまたは複数に格納され、それぞれの読み取り/書き込みドライブまたはインタフェース1414を介して読み取られ、それぞれのコンピュータ可読ストレージ媒体1408にロードされ得る。
コンピュータ・システム1300は、TCP/IPアダプタ・カードまたは無線通信アダプタなどのネットワーク・アダプタまたはインタフェース1416をさらに含むことができる。コンピュータ・システム1300上のアプリケーション・プログラム1411は、外部コンピュータまたは外部ストレージ・デバイスからコンピューティング・デバイスにネットワーク(例えば、インターネット、ローカル・エリア・ネットワークまたは他のワイド・エリア・ネットワークまたは無線ネットワーク)およびネットワーク・アダプタまたはインタフェース1416を介してダウンロードすることができる。ネットワーク・アダプタまたはインタフェース1416から、プログラムは、コンピュータ可読ストレージ媒体1408にロードされ得る。ネットワークは、銅線、光ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、およびエッジ・サーバを含むことができる。
コンピュータ・システム1300は、ディスプレイ・スクリーン1420、キーボードまたはキーパッド1422、およびコンピュータ・マウスまたはタッチパッド1424をさらに含むことができる。デバイス・ドライバ1412は、イメージングのためのディスプレイ・スクリーン1420、キーボードもしくはキーパッド1422、コンピュータ・マウスもしくはタッチパッド1424、または英数字入力およびユーザ選択の圧力感知のためのディスプレイ・スクリーン1420、あるいはその組合せにインタフェースする。デバイス・ドライバ1412、読み取り/書き込みドライブまたはインタフェース1414、およびネットワーク・アダプタまたはインタフェース1416は、ハードウェアと、コンピュータ可読ストレージ媒体1408またはROM1406あるいはその両方に格納されたソフトウェアとを含むことができる。
本発明は、統合の任意の可能な技術的詳細レベルにおけるシステム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する1つのコンピュータ可読ストレージ媒体(または複数の媒体)を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスで使用するための命令を保持および格納することができる有形のデバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、限定はしないが、電子ストレージ、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または前述のものの任意の適切な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストには、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラマブル読出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、および前述のものの適切な組合せが含まれる。本明細書で使用されるコンピュータ可読ストレージ媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通って伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通して伝送される電気信号などのそれ自体一過性信号であると解釈されるべきではない。
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはその組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含むことができる。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、またはSMALLTALK(R)、C++などのようなオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータで、部分的にユーザのコンピュータで、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータでおよび部分的にリモート・コンピュータで、または完全にリモート・コンピュータもしくはサーバで実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続されてもよく、または接続が外部コンピュータに対して行われてもよい(例えば、インターネット・サービス・プロバイダを使用してインターネットを通して)。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人専用にすることによってコンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照して本明細書に記載されている。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実現され得ることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実施するための手段を作り出すように、コンピュータ、またはマシンを作るための他のプログラマブル・データ処理装置のプロセッサに提供され得る。これらのコンピュータ可読プログラム命令はまた、命令が格納されたコンピュータ可読ストレージ媒体が流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作の態様を実施する命令を含む製品を構成するように、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せに、特定の方法で機能するように指示することができるコンピュータ可読ストレージ媒体に格納されてもよい。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令が流れ図またはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実施するように、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他のデバイスで実行させて、コンピュータ実装プロセスを生じさせることができる。
図における流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能、および動作を示す。これに関しては、流れ図またはブロック図の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または一部を表すことができる。いくつかの代替の実施態様では、ブロックに記された機能は、図に記された順序から外れて行われてもよい。例えば、連続して示された2つのブロックは、実際には、1つのステップとして遂行され、同時に、実質的に同時に、部分的または全体的に時間的にオーバーラップして実行されてもよく、またはブロックは、時には、関連する機能に応じて逆の順序で実行されてもよい。ブロック図または流れ図あるいはその両方の各ブロック、およびブロック図または流れ図あるいはその両方のブロックの組合せは、指定された機能または動作を実行するかあるいは専用ハードウェア命令とコンピュータ命令の組合せを実行する専用ハードウェア・ベース・システムで実施され得ることにも留意されたい。
本発明の第1の態様によれば、nのステージ数に対して擬似ランダム・シーケンスを生成するための最大長シーケンスまたは略最大長シーケンスをもつ非線形フィードバック・シフト・レジスタ(NLFSR)を使用するための方法が提供され、ここで、最大長は2-1であり、この方法は、nを選択することであり、nが、最大長線形フィードバック・シフト・レジスタでは3つ以上のタップを必要とする、選択することと、選択されたnステージ・レジスタに対して、1つのみのORゲートと1つのみのXORゲートのフィードバック論理演算を使用することであり、論理演算が、第1のステージへのフィードバックのために、2つの適切な非エンド・タップの論理ORと、エンド・タップとの論理XORをとり、または同等のXNORゲートとNORゲート論理演算を行い、または補数論理演算を行う、使用することとを含む。
この方法は、通常3つ以上のタップを必要とするnステージ・レジスタに対して、最大長シーケンスまたは略最大長シーケンスを提供するNLFSRにおいて簡単な2ゲート論理演算の利点を提供する。この方法は、長い擬似ランダム・シーケンスを提供しながら、レジスタへの中間フィードバックを必要とすることなくゲートの数を最小にする。
補数論理演算は、1つのみのnot-AND(NAND)ゲートと1つのみのXORゲートのものとすることができ、論理演算は、第1のステージへのフィードバックのために、2つの適切な非エンド・タップの論理NANDと、エンド・タップとの論理XORとをとる。別の補数論理演算は、1つのみのANDゲートと1つのみのXNORゲートのものとすることができ、論理演算は、第1のステージへのフィードバックのために、2つの適切な非エンド・タップの論理ANDと、エンド・タップとの論理XNORとをとる。
あるnに対して、最大長シーケンスが、2つの適切な非エンド・タップまたは補数構成で取得され、他のあるnに対して、最良の略最大長シーケンスが、2つの適切な非エンド・タップまたは補数構成で取得される。
本発明の別の態様によれば、nのステージ数に対して擬似ランダム・シーケンスを生成するための最大長シーケンスまたは略最大長シーケンスをもつ非線形フィードバック・シフト・レジスタ(NLFSR)が提供され、ここで、最大長は2-1であり、非線形フィードバック・シフト・レジスタ(NLFSR)は、nステージ・レジスタであり、nが、最大長線形フィードバック・シフト・レジスタでは3つ以上のタップを必要とする、nステージ・レジスタを含み、1つのみのORゲートと1つのみのXORゲートのフィードバック論理演算が、第1のステージへのフィードバックのために、2つの適切な非エンド・タップの論理ORと、エンド・タップとの論理XORをとり、または同等のXNORゲートとNORゲート論理演算を行い、または補数論理演算を行い、適切な非エンド・タップが、nステージ・レジスタの最大長シーケンスまたは略最大長シーケンスを提供する。
補数論理演算は、1つのみのNANDゲートと1つのみのXORゲートのものとすることができ、論理演算は、第1のステージへのフィードバックのために、2つの適切な非エンド・タップの論理NANDと、エンド・タップとの論理XORとをとる。別の補数論理演算は、1つのみのANDゲートと1つのみのXNORゲートのものとすることができ、論理演算は、第1のステージへのフィードバックのために、2つの適切な非エンド・タップの論理ANDと、エンド・タップとの論理XNORとをとる。別の補数。
あるnに対して、最大長シーケンスが、2つの適切な非エンド・タップまたは補数構成で取得され、他のあるnに対して、最良の略最大長シーケンスが、2つの適切な非エンド・タップまたは補数構成で取得される。
本発明の別の態様によれば、nのステージ数に対して擬似ランダム・シーケンスを生成するための最大長シーケンスをもつ非線形フィードバック・シフト・レジスタ(NLFSR)が提供され、ここで、最大長は2-1であり、非線形フィードバック・シフト・レジスタ(NLFSR)は、nが8または12であるnステージ・レジスタであり、各々が最大長線形フィードバック・シフト・レジスタでは3つ以上のタップを必要とする、nステージ・レジスタを含み、1つのみのORゲートと1つのみのXORゲートの論理フィードバック演算が、第1のステージへのフィードバックのために、2つの適切な非エンド・タップA、Bの論理ORと、エンド・タップとの論理XORをとり、または同等のXNORゲートとNORゲート論理演算を行い、または補数論理演算を行い、適切な非エンド・タップが、nステージ・レジスタの最大長シーケンスを提供し、2つの適切な非エンド・タップが、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は、定義された非エンド・タップにより最大長シーケンスを提供する。
補数論理演算は、1つのみのNANDゲートと1つのみのXORゲートのものであり、論理演算は、第1のステージへのフィードバックのために、2つの適切な非エンド・タップA、Bの論理NANDと、エンド・タップとの論理XORとをとる。別の補数論理演算は、1つのみのANDゲートと1つのみのXNORゲートのものであり、論理演算は、第1のステージへのフィードバックのために、2つの適切な非エンド・タップA、Bの論理ANDと、エンド・タップとの論理XNORとをとる。
本発明の別の態様によれば、nのステージ数に対して擬似ランダム・シーケンスを生成するための最大長シーケンスまたは略最大長シーケンスをもつ非線形フィードバック・シフト・レジスタ(NLFSR)を提供するための方法が提供され、ここで、最大長は2-1であり、この方法は、nを選択することであり、nが、最大長線形フィードバック・シフト・レジスタでは3つ以上のタップを必要とする、選択することと、選択されたnステージ・レジスタに対して、1つのみのORゲートと1つのみのXORゲートのフィードバック論理演算を使用することと、第1のステージへのフィードバックのために、2つの適切な非エンド・タップの論理ORと、エンド・タップとの論理XORをとり、または同等のXNORゲートとNORゲート論理演算を行い、または補数論理演算を行うことと、nステージ・レジスタの最大長シーケンスまたは略最大長シーケンスを提供するペアの組合せを決定するために、2つの非エンド・タップの様々な組合せをテストすることによって、非エンド・タップの1つまたは複数の適切なペアを取得することとを含む。
この方法は、非エンド・タップの1つの適切なペアを取得し、nステージ・レジスタのタップのミラーとして非エンド・タップの別の適切なペアを取得することであり、タップ・シーケンス[n,A,B]は、[n,n-B,n-A]にミラーリングする、取得することを含むことができる。
非エンド・タップの1つまたは複数の適切なペアを取得することは、3つのタップ、すなわち、エンド・タップおよび2つの非エンド・タップに関して動作し、すべてゼロを除いて、1および0が同程度に確からしいという最適化制限に従う論理演算のすべての組合せを使用する検索プログラムを使用することを含むことができる。
検索プログラムは、レジスタを、すべてゼロ、または補数論理演算ではすべて1以外の値に初期化し、ある状態が見られた第1の機会からその状態が見られた第2の機会までの状態の数であるシーケンスの長さでの繰り返しであるレジスタ状態が生成されるまで、レジスタをせいぜい2回実行することができる。
略最大長シーケンスでは、検索プログラムは、これまでに見られた状態の数字が2n-1以上であるかどうかを決定することができ、そうである場合、見いだされた最長シーケンスは、タップのそのセットで可能な最長のものであり、そうでない場合、見られていない状態が選ばれ、シーケンスが再び生成され、長さが測定され、これらのステップは、すべての状態が見られるか、または見られていない状態の数が見いだされた最長シーケンスの長さ未満になるまで、繰り返すことができる。
補数論理演算は、1つのみのNANDゲートと1つのみのXORゲートのものであり、論理演算は、第1のステージへのフィードバックのために、2つの適切な非エンド・タップの論理NANDと、エンド・タップとの論理XORとをとる。別の補数論理演算は、1つのみのANDゲートと1つのみのXNORゲートのものであり、論理演算は、第1のステージへのフィードバックのために、2つの適切な非エンド・タップの論理ANDと、エンド・タップとの論理XNORとをとる。
本発明のさらなる態様によれば、nのステージ数に対して擬似ランダム・シーケンスを生成するための最大長シーケンスまたは略最大長シーケンスをもつ非線形フィードバック・シフト・レジスタ(NLFSR)を提供するためのシステムが提供され、ここで、最大長は2-1であり、このシステムは、nを選択するための選択構成要素であり、nが、最大長線形フィードバック・シフト・レジスタでは3つ以上のタップを必要とする、選択構成要素と、1つのみのORゲートと1つのみのXORゲートのフィードバック論理演算を構成し、第1のステージへのフィードバックのために、2つの適切な非エンド・タップの論理ORと、エンド・タップとのXORをとり、または同等のXNORゲートとNORゲート論理演算を行い、または補数論理演算を行うフィードバック構成要素と、nステージ・レジスタの最大長シーケンスまたは略最大長シーケンスを提供するペアの組合せを決定するために、2つの非エンド・タップの様々な組合せをテストすることによって、非エンド・タップの1つまたは複数の適切なペアを取得するためのテスト構成要素とを含む。
このシステムは、非エンド・タップの1つの適切なペアをとり、nステージ・レジスタのタップのミラーとして非エンド・タップの別の適切なペアを取得するためのミラー構成要素を含むことができ、ここで、タップ・シーケンス[n,A,B]は、[n,n-B,n-A]にミラーリングする。
非エンド・タップの1つまたは複数の適切なペアを取得するためのテスト構成要素は、3つのタップ、すなわち、エンド・タップおよび2つの非エンド・タップに関して動作し、すべてゼロを除いて、1および0が同程度に確からしいという最適化制限に従う論理演算のすべての組合せを使用する検索プログラムを含むことができる。
検索プログラムは、レジスタを表す変数を、すべてゼロ、または補数論理演算ではすべて1以外の値に初期化し、ある状態が見られた第1の機会からその状態が見られた第2の機会までの状態の数であるシーケンスの長さでの繰り返しであるレジスタ状態が生成されるまで、レジスタをせいぜい2回実行するように構成することができる。
検索プログラムは、略最大長シーケンスでは、これまでに見られた状態の数が2n-1以上であるかどうかを決定し、そうである場合、見いだされた最長シーケンスは、タップのそのセットで可能な最長のものであり、そうでない場合、見られていない状態が選ばれ、シーケンスが再び生成され、すべての状態が見られるか、または見られていない状態の数が見いだされた最長シーケンスの長さ未満になるまで、これらのステッを繰り返すように構成することができる。
補数論理演算は、1つのみのNANDゲートと1つのみのXORゲートのものであり、論理演算は、第1のステージへのフィードバックのために、2つの適切な非エンド・タップの論理NANDと、エンド・タップとの論理XORとをとる。別の補数論理演算は、1つのみのANDゲートと1つのみのXNORゲートのものであり、論理演算は、第1のステージへのフィードバックのために、2つの適切な非エンド・タップの論理ANDと、エンド・タップとの論理XNORとをとる。
本発明のさらなる態様によれば、nのステージ数に対して擬似ランダム・シーケンスを生成するための最大長シーケンスまたは略最大長シーケンスをもつ非線形フィードバック・シフト・レジスタ(NLFSR)を提供するための方法が提供され、ここで、最大長は2-1であり、コンピュータ・プログラム製品は、プログラム命令が具現されるコンピュータ可読ストレージ媒体を含み、プロセッサにより実行可能なプログラム命令により、プロセッサが、nを選択することであり、nが、最大長線形フィードバック・シフト・レジスタでは3つ以上のタップを必要とする、選択することと、選択されたnステージ・レジスタに対して、1つのみのORゲートと1つのみのXORゲートのフィードバック論理演算を使用し、第1のステージへのフィードバックのために、2つの適切な非エンド・タップの論理ORと、エンド・タップとのXORをとり、または同等のXNORゲートとNORゲート論理演算を行い、または補数論理演算を行うことと、nステージ・レジスタの最大長シーケンスまたは略最大長シーケンスを提供するペアの組合せを決定するために、2つの非エンド・タップの様々な組合せをテストすることによって、非エンド・タップの1つまたは複数の適切なペアを取得することとを行う。

Claims (25)

  1. nのステージ数に対して少なくとも略最大長の擬似ランダム・シーケンスを生成するための非線形フィードバック・シフト・レジスタ(NLFSR)を使用するための方法であって、ここで、最大長は2-1であり、前記方法が、
    nを選択することであり、nが、最大長線形フィードバック・シフト・レジスタでは3つ以上のタップを必要とする、前記選択することと、
    前記選択されたnステージ・レジスタに対して、第1の論理ゲートと第2の論理ゲートのみのフィードバック論理演算を使用して擬似ランダム・シーケンスを生成することと
    を含み、
    2つの適切な非エンド・タップが、前記第1の論理ゲートへの入力であり、
    前記第1の論理ゲートの出力およびエンド・タップが、前記第2の論理ゲートへの入力であり、
    前記第2の論理ゲートの出力が、前記nステージ・レジスタの第1のステージへのフィードバックとして使用される、方法。
  2. 前記第1の論理ゲートが、ORおよびNANDゲートからなる群から選択され、前記第2の論理ゲートがXORゲートである、請求項1に記載の方法。
  3. 前記第1の論理ゲートがANDゲートであり、前記第2の論理ゲートがXNORゲートである、請求項1に記載の方法。
  4. あるnに対して、最大長シーケンスが、2つの適切な非エンド・タップで取得され、
    他のあるnに対して、略最大長シーケンスが、2つの適切な非エンド・タップで取得される、請求項1に記載の方法。
  5. 前記方法が、
    ステージ数nに基づいて、前記nステージ・レジスタの少なくとも略最大長シーケンスを提供するペアの組合せを識別することによって、非エンド・タップの1つまたは複数の適切なペアを取得すること
    をさらに含む、請求項1に記載の方法。
  6. 前記非エンド・タップの1つまたは複数の適切なペアを取得することが、
    第1の非エンド・タップAおよび第2の非エンド・タップBを含む非エンド・タップの第1の適切なペアを決定することと、
    非エンド・タップの第2の適切なペアを、前記nステージ・レジスタの前記非エンド・タップの第1の適切なペアのミラーとして取得することであり、タップ・シーケンス[n,A,B]が[n,n-B,n-A]にミラーリングする、前記取得することと
    を含む、請求項5に記載の方法。
  7. 前記非エンド・タップの1つまたは複数の適切なペアを取得することが、3つのタップ、すなわち、前記エンド・タップおよび2つの非エンド・タップに関して動作し、すべてゼロを除いて、1および0が同程度に確からしいという最適化制限に従う論理演算のすべての組合せを使用する検索プログラムを使用することを含む、請求項5に記載の方法。
  8. 前記検索プログラムが、前記レジスタをすべてのゼロ以外の値に初期化し、繰り返しであるレジスタ状態が生成されるまで、前記レジスタをせいぜい2回実行し、シーケンスの長さは、ある状態が見られた第1の機会から前記状態が見られた第2の機会までの状態の数である、請求項7に記載の方法。
  9. タップのセットに対する略最大長シーケンスでは、前記検索プログラムは、
    これまでに見られた状態の数が2n-1以上であるかどうかを決定し、
    前記見られた状態の数が2n-1以上である場合、見いだされた最長シーケンスが、タップのそのセットで可能な最長のものであり、
    前記見られた状態の数が2n-1未満である場合、新しい状態が選ばれ、前記シーケンスが再び生成され、前記長さが測定され、
    すべての前記状態が見られるか、または見られていない状態の数が、見いだされた前記最長シーケンスの長さ未満になるまで、これらのステップを繰り返す、請求項8に記載の方法。
  10. nのステージ数に対して少なくとも略最大長の擬似ランダム・シーケンスを生成するための非線形フィードバック・シフト・レジスタ(NLFSR)であって、ここで、最大長は2-1であり、前記NLFSRが、
    nステージ・レジスタであり、nが、最大長線形フィードバック・シフト・レジスタでは3つ以上のタップを必要とする、nステージ・レジスタと、
    2つの入力を有する第1の論理ゲートであり、各入力が前記nステージ・レジスタの非エンド・タップに接続される、前記第1の論理ゲートと、
    2つの入力を有する第2の論理ゲートであり、第1の入力が、前記第1の論理ゲートの出力に接続され、第2の入力が、前記nステージ・レジスタのエンド・タップに接続される、前記第2の論理ゲートと
    を含み、
    前記第2の論理ゲートの出力が、前記nステージ・レジスタの第1のステージへのフィードバックとして使用される、NLFSR。
  11. 前記第1の論理ゲートが、ORゲートおよびNANDゲートからなる群から選択され、前記第2の論理ゲートがXORゲートである、請求項10に記載のNLFSR。
  12. 前記第1の論理ゲートがANDゲートであり、前記第2の論理ゲートがXNORゲートである、請求項10に記載のNLFSR。
  13. あるnに対して、最大長シーケンスが、2つの適切な非エンド・タップで取得され、
    他のあるnに対して、略最大長シーケンスが、2つの適切な非エンド・タップで取得される、請求項10に記載のNLFSR。
  14. 8ステージに対して最大長の擬似ランダム・シーケンスを生成するための非線形フィードバック・シフト・レジスタ(NLFSR)であって、ここで、前記最大長が255であり、前記NLFSRが、
    8ステージ・レジスタと、
    前記8ステージ・レジスタの第1の非エンド・タップAに接続された第1の入力と、前記8ステージ・レジスタの第2の非エンド・タップBに接続された第2の入力とを有する第1の論理ゲートと、
    前記第1の論理ゲートの出力に接続された入力と、前記8ステージ・レジスタのエンド・タップに接続された入力とを有する第2の論理ゲートと
    を含み、
    前記第2の論理ゲートの出力が、前記8ステージ・レジスタの第1のステージへのフィードバックとして使用され、
    前記第1の非エンド・タップおよび前記第2の非エンド・タップが、A=4とB=3、A=5とB=1、A=5とB=4、およびA=7とB=3からなる群から選択された位置にある、NLFSR。
  15. 前記第1の論理ゲートがNANDゲートであり、前記第2の論理ゲートがXORゲートである、請求項14に記載のNLFSR。
  16. 前記第1の論理ゲートがANDゲートであり、前記第2の論理ゲートがXNORゲートである、請求項14に記載のNLFSR。
  17. 12ステージに対して最大長の擬似ランダム・シーケンスを生成するための非線形フィードバック・シフト・レジスタ(NLFSR)であって、ここで、前記最大長が4095であり、前記NLFSRが、
    12ステージ・レジスタと、
    前記12ステージ・レジスタの第1の非エンド・タップAに接続された第1の入力と、前記12ステージ・レジスタの第2の非エンド・タップBに接続された第2の入力とを有する第1の論理ゲートと、
    前記第1の論理ゲートの出力に接続された入力と、前記12ステージ・レジスタのエンド・タップに接続された入力とを有する第2の論理ゲートと
    を含み、
    前記第2の論理ゲートの出力が、前記12ステージ・レジスタの第1のステージへのフィードバックとして使用され、
    前記第1の非エンド・タップおよび前記第2の非エンド・タップが、A=7とB=4、およびA=8とB=5からなる群から選択された位置にある、NLFSR。
  18. 前記第1の論理ゲートがNANDゲートであり、前記第2の論理ゲートがXORゲートである、請求項17に記載のNLFSR。
  19. 前記第1の論理ゲートがANDゲートであり、前記第2の論理ゲートがXNORゲートである、請求項17に記載のNLFSR。
  20. nのステージ数に対して擬似ランダム・シーケンスを生成するための最大長シーケンスまたは略最大長シーケンスを非線形フィードバック・シフト・レジスタ(NLFSR)に提供するためのシステムであって、ここで、最大長が2-1であり、前記システムが、
    プロセッサと、
    前記プロセッサに通信可能に結合され、プログラム命令を格納するコンピュータ可読ストレージ媒体であり、前記プログラム命令が、前記プロセッサによって実行されると、前記プロセッサに、
    nを選択することであり、nが、最大長線形フィードバック・シフト・レジスタでは3つ以上のタップを必要とする、前記選択することと、
    前記選択されたnステージ・レジスタに対して、第1の論理ゲートと第2の論理ゲートのみのフィードバック論理演算を使用して擬似ランダム・シーケンスを生成することと
    を含む方法を実行させる、前記コンピュータ可読ストレージ媒体と
    を含み、
    2つの適切な非エンド・タップが、前記第1の論理ゲートへの入力であり、
    前記第1の論理ゲートの出力およびエンド・タップが、前記第2の論理ゲートへの入力であり、
    前記第2の論理ゲートの出力が、前記nステージ・レジスタの第1のステージへのフィードバックとして使用される、システム。
  21. 前記第1の論理ゲートが、ORおよびNANDゲートからなる群から選択され、前記第2の論理ゲートがXORゲートである、請求項20に記載のシステム。
  22. 前記第1の論理ゲートがANDゲートであり、前記第2の論理ゲートがXNORゲートである、請求項20に記載のシステム。
  23. あるnに対して、最大長シーケンスが、2つの適切な非エンド・タップで取得され、
    他のあるnに対して、略最大長シーケンスが、2つの適切な非エンド・タップで取得される、請求項20に記載のシステム。
  24. 前記プロセッサによって実行される前記方法が、
    ステージ数nに基づいて、前記nステージ・レジスタの少なくとも略最大長シーケンスを提供するペアの組合せを識別することによって、非エンド・タップの1つまたは複数の適切なペアを取得すること
    をさらに含む。請求項20に記載のシステム。
  25. 前記非エンド・タップの1つまたは複数の適切なペアを取得することが、
    第1の非エンド・タップAおよび第2の非エンド・タップBを含む非エンド・タップの第1の適切なペアを決定することと、
    非エンド・タップの第2の適切なペアを、前記nステージ・レジスタの前記非エンド・タップの前記第1の適切なペアのミラーとして取得することであり、タップ・シーケンス[n,A,B]が[n,n-B,n-A]にミラーリングする、前記取得することと
    を含む、請求項24に記載のシステム。
JP2022513040A 2019-08-28 2020-08-13 非線形フィードバック・シフト・レジスタ Pending JP2022546033A (ja)

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 (1)

Publication Number Publication Date
JP2022546033A true JP2022546033A (ja) 2022-11-02

Family

ID=74681224

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022513040A Pending JP2022546033A (ja) 2019-08-28 2020-08-13 非線形フィードバック・シフト・レジスタ

Country Status (6)

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

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 上海米硅科技有限公司 一种伪随机二进制序列发生装置及校验装置

Family Cites Families (18)

* 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
US6049608A (en) * 1996-12-31 2000-04-11 University Technology Corporation Variable length nonlinear feedback shift registers with dynamically allocated taps
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
CN104238995B (zh) 2013-06-21 2017-03-15 中国人民解放军信息工程大学 一种非线性反馈移位寄存器
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)
CN106254062B (zh) * 2016-10-12 2019-03-26 中国人民解放军信息工程大学 序列密码实现装置及其序列密码实现方法
CN107276537A (zh) * 2017-06-06 2017-10-20 电子科技大学 一种具有降低峰值噪声功能的扩频操作电路
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

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
CN114270774B (zh) 2023-11-21
US11048476B2 (en) 2021-06-29

Similar Documents

Publication Publication Date Title
Blackman et al. Scrambled linear pseudorandom number generators
US10007488B2 (en) Secured pseudo-random number generator
Cusick et al. Stream ciphers and number theory
Svensson et al. The matching problem in general graphs is in quasi-NC
Cheng et al. High-speed parallel CRC implementation based on unfolding, pipelining, and retiming
US11561768B2 (en) Non-linear feedback shift register
WO2009100104A1 (en) Cryptographic system incorporating a digitally generated chaotic numerical sequence
EP0240546A1 (en) RANDOM SEQUENCE GENERATORS.
US20130346459A1 (en) Method for generating random numbers
Cardell et al. Binomial representation of cryptographic binary sequences and its relation to cellular automata
Gupta et al. Coupled variable‐input LCG and clock divider‐based large period pseudo‐random bit generator on FPGA
US10977003B2 (en) Linear feedback shift register with near-maximal length sequences
Szmidt Nonlinear feedback shift registers and Zech’s logarithms
JP5101253B2 (ja) ランダムエラー発生装置、m系列発生回路及びその設計方法
Soloveychik et al. Symmetric pseudo-random matrices
US20160211971A1 (en) Apparatus for Unconventional Non-Linear Feedback Shift Registers (NLFSRs)
US7383295B2 (en) Selective sequence generation method and apparatus
Formenti et al. An enumeration algorithm for binary coprime polynomials with nonzero constant term
Spencer Pseudorandom Bit Generators from Enhanced Cellular Automata.
JP2014164342A (ja) 擬似乱数生成回路および擬似乱数生成方法
Li et al. An algorithm for constructing a minimal register with non-linear update generating a given sequence
Vivelid Nonlinear feedback shift registers and generating of binary de Bruijn sequences
Wang et al. The autocorrelation properties of single cycle polynomial T-functions
Bingham et al. Hybrid one-dimensional reversible cellular automata are regular
Jabir et al. A graph-based unified technique for computing and representing coefficients over finite fields

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240521