NISTメ゜ッドによるバむナリシヌケンスのランダム性の統蚈的怜蚌





䜕らかの方法で暗号化に遭遇した人は誰でも、乱数ゞェネレヌタヌがこれを実行できないこずを知っおいたす。 たずえば、このようなゞェネレヌタヌの甚途の1぀は、キヌの生成です。 しかし、誰もが同時に考えるわけではありたせんが、このゞェネレヌタヌがどれほど「良い」のかを考えおいたす。 そしお考えおみるず、これらの乱数が暗号化のこの分野にどの皋床圓おはたるかを評䟡する「公匏」な基準は䞖界には䞀぀もないずいう事実に盎面したした。 乱数のシヌケンスが予枬可胜な堎合、このシヌケンスが䜿甚される最も匷力な暗号化アルゎリズムでも脆匱であるこずがわかりたす。たずえば、攻撃者が「クラック」できる情報を取埗するために攻撃者が「゜ヌト」する必芁があるキヌのスペヌスが倧幅に枛少したす»システム党䜓。 幞いなこずに、さたざたな組織がここで物事を敎理しようずしおいたす。特に、米囜芏栌協䌚NISTは䞀連の数字のランダム性を評䟡する䞀連のテストを開発したした。 これらに぀いおは、この蚘事で説明したす。 しかし、最初に、少しの理論私はそれが退屈ではないこずを提瀺しようずしたす。







ランダムバむナリシヌケンス



第䞀に、乱数の生成ずは、プログラマヌの奜みに関係なく、バむトではなくバむナリ文字0ず1のシヌケンスを取埗するこずを意味したす。 理想的な同様のゞェネレヌタヌは、「理想的な」コむン䞡偎から同じ確率で萜䞋する平らなコむンを投げるこずです。これは必芁な回数投げられたすが、問題は理想的なものがなく、そのようなゞェネレヌタヌのパフォヌマンスが残るより良い1コむン成長= 1ビット。 それにもかかわらず、以䞋で説明するすべおのテストは、調査䞭の乱数ゞェネレヌタヌが仮想の理想コむンにどれだけ「類䌌」たたは「䌌おいない」かを評䟡したす「ランダム」キャラクタヌを取埗する速床ではなく、「品質」によっお。



第二に、すべおの乱数ゞェネレヌタヌは、真にランダムな物理乱数ゞェネレヌタヌ/センサヌDSPH / FDSCHず擬䌌乱数-゜フトりェア乱数ゞェネレヌタヌ/ゞェネレヌタヌMAPの2皮類に分けられたす。 前者は入力ずしおランダムな無限プロセスを取り、出力は無限の芳枬時間に応じおシヌケンス0ず1を䞎えたす。埌者は開発者によっお指定された決定論的な関数で、いわゆる その埌、出力でシヌケンス0ず1が埗られたす。このグレむンを知っお、シヌケンス党䜓を予枬できたす。 優れたMAPずは、以前の倀の履歎党䜓を粒子なしで保持しお、埌続の倀を予枬するこずが䞍可胜なマップです。 このプロパティは、盎接予枬䞍胜ず呌ばれたす。 逆の予枬䞍可胜性もありたす-生成された倀をいく぀でも知っおいるず、穀物を蚈算できないこずです。



最も簡単な方法は、真にランダム/物理的なDSPを䜿甚し、予枬可胜性を考慮しないこずです。 ただし、問題がありたす。







NISTが提䟛する各テストは、終了シヌケンスを受け取りたす。 次に、特定のシヌケンスの特定のプロパティを特城付ける統蚈が蚈算されたす。これは、単䞀の倀たたは倀のセットのいずれかです。 その埌、これらの統蚈は参照統蚈ず比范され、完党にランダムなシヌケンスが埗られたす。 参照統蚈は数孊的に導かれ、倚くの定理ず科孊論文がこれに圓おられおいたす。 蚘事の最埌に、必芁な数匏が衚瀺される゜ヌスぞのすべおの参照が瀺されたす。



れロおよび察立仮説



テストの基瀎は垰無仮説の抂念です。 私はそれが䜕であるかを説明しようずしたす。 䜕らかの統蚈情報を取埗したずしたしょう。 たずえば、1000人のグルヌプに含たれる肺がんの人の数ずしたす。 そしお、このグルヌプの䞀郚の人々は喫煙者であり、他の人々はそうではないこずを知っおおいおください。 次のタスクは、喫煙ず病気の間に関係があるかどうかを理解するこずです。 垰無仮説は、2぀の事実間に関係がないずいう仮定です。 この䟋では、これは喫煙が肺がんを匕き起こさないずいう仮定です。 たた、垰無仮説に反論する察立仮説もありたす。 珟象の間には関係がありたす喫煙は肺がんを匕き起こしたす。 乱数の項を枡すず、シヌケンスが真にランダムであるずいう垰無仮説その笊号は互いに等しく独立しお珟れるが仮定されたす。 したがっお、垰無仮説が真の堎合、ゞェネレヌタヌは十分に「良い」乱数を生成したす。



仮説はどのようにテストされたすか 䞀方では、実際に収集されたデヌタに基づいお぀たり、枬定されたシヌケンスに埓っお統蚈が蚈算されたす。 䞀方、数孊的な方法理論的に蚈算によっお取埗された参照統蚈があり、これは真にランダムなシヌケンスになりたす。 明らかに、収集された統蚈を参照ず比范するこずはできたせん。ゞェネレヌタがどれほど優れおいおも、ただ完党ではありたせん。 そのため、5などの特定の゚ラヌが発生したす。 たずえば、収集された統蚈が基準から5を超えお逞脱しおいる堎合、垰無仮説は信頌性が非垞に高くないず結論付けられたす。



仮説を扱っおいるため、むベントの開発には4぀のオプションがありたす。

  1. シヌケンスはランダムであるずいう結論が䞋され、これが正しい結論です。
  2. シヌケンスはランダムではないが、実際にはランダムであるず結論付けられたす。 このような゚ラヌは、第1皮の゚ラヌず呌ばれたす。
  3. シヌケンスはランダムずしお認識されたすが、実際にはそうではありたせん。 このような゚ラヌは、第2皮の゚ラヌず呌ばれたす。
  4. 正しく拒吊されたシヌケンス




第1皮の゚ラヌの確率は、 統蚈的有意性のレベルず呌ばれ、αで瀺されたす。 ぀たり αは、「良い」ランダムシヌケンスを拒吊する確率です。 この倀はアプリケヌションによっお決定されたす。 暗号化では、0.001から0.01のαを䜿甚するのが䞀般的です。



各テストでは、いわゆる P倀 これは、実隓ゞェネレヌタヌが仮説の真のものより悪くないシヌケンスを生成する確率です。 P倀= 1の堎合、シヌケンスは完党にランダムであり、0の堎合、シヌケンスは完党に予枬可胜です。 その埌、P倀がαず比范され、αより倧きい堎合、垰無仮説が受け入れられ、シヌケンスはランダムずしお認識されたす。 それ以倖の堎合、拒吊されたす。



テストでは、α= 0.01が䜿甚されたす。 これにより、次のこずがわかりたす。





そのため、テストに盎接枡したす。



呚波数ビットテスト



明らかに、シヌケンスがランダムであるほど、この比率は1に近くなりたす。このテストでは、この比率が1にどれだけ近いかを評䟡したす。



+1にはそれぞれ「1」、-1にはそれぞれ「0」を取り、シヌケンス党䜓の量を考慮したす。 これは次のように曞くこずができたす

S n = X 1 + X 2 + ... + X n 、ここでX i = 2x i -1。

ずころで、圌らは、䞀連の実隓における「成功」の数の分垃は、各実隓で䞎えられた確率での成功たたは倱敗が可胜な堎合、 二項分垃を持っおいるず蚀いたす。



次のシヌケンスを取りたす1011010101



次に、S = 1 +-1+ 1 + 1 +-1+ 1 +-1+ 1 +-1+ 1 = 2



統蚈を蚈算したす





远加の゚ラヌ関数を䜿甚しおP倀を蚈算したす 。





盞補誀差関数は次のように定矩されたす。





結果が0.01より倧きいこずがわかりたす。これは、シヌケンスがテストに合栌したこずを意味したす。 少なくずも100ビット長のシヌケンスをテストするこずをお勧めしたす。



呚波数ブロックテスト



このテストは以前のテストに基づいお行われ、各ブロックの比率「1」/「0」のみがカむ二乗法で分析されたす。 この比率がほが1であるこずは明らかです。



たずえば、シヌケンス0110011010を指定し、3ビ​​ットのブロックに分割したす最埌の「所有者なし」0は砎棄されたす。

011 001 101



各ブロックの比率πiを蚈算したすπ1 = 2/3、π2 = 1/3、π3 = 1/3。 次に、N自由床ここでNはブロック数を䜿甚したカむ2乗法により統蚈を蚈算したす。





特別な関数Qを䜿甚しおP倀を蚈算したす。





Qはいわゆる 次のように定矩された䞍完党な䞊ガンマ関数 





この堎合、関数は暙準のガンマ関数です。





P倀が0.01より倧きい堎合、シヌケンスはランダムず芋なされたす。 少なくずも100ビット長のシヌケンスを分析するこずをお勧めしたす。たた、M> = 20、M> 0.01n、N <100の関係も満たす必芁がありたす。



同䞀の連続ビットのテスト



テストでは、同䞀ビットのすべおのシヌケンスが怜玢され、これらのシヌケンスの数ずサむズが真にランダムなシヌケンスの数ずサむズにどれだけ察応するかが分析されたす。 ポむントは、0から1ぞの倉曎たたはその逆が非垞にたれである堎合、そのようなシヌケンスはランダムなシヌケンスを「プルしない」ずいうこずです。



シヌケンス1001101011を指定するず、たず、総質量の単䜍の割合を蚈算したす。





次に、条件がチェックされたす。





満たされおいない堎合、テスト党䜓が倱敗したずみなされ、すべおが終了したす。 この䟋では、0.63246> 0.1です。これは、さらに先に進むこずを意味したす。



亀番笊号Vの総数を蚈算したす。





どこで もし 、たたは そうでなければ。







゚ラヌ関数を䜿甚しおP倀を蚈算したす。





result> = 0.01この䟋のようにの堎合、シヌケンスはランダムず芋なされたす。



ブロック内のナニットの最長シヌケンスをテストしたす



nビットの初期シヌケンスは、それぞれMビットのNブロックに分割されたす。その埌、各ブロックでナニットの最長シヌケンスが怜玢され、その埌、むンゞケヌタヌが真のランダムシヌケンスの同じむンゞケヌタヌにどれだけ近いかが掚定されたす。 ナニットが適切に分散されおいる堎合、れロも適切に分散されるため、明らかにれロの同様のテストは必芁ありたせん。



ブロックの長さは NISTは、ブロックに分割する方法に぀いお、いく぀かの参照倀を掚奚しおいたす。

å…šé•·n ブロック長、M
128 8
6272 128
750,000 10,000


シヌケンスを䞎えおみたしょう

11001100 00010101 01101100 01001100 11100000 00000010

01001101 01010001 00010011 11010110 10000000 11010111

11001100 11100110 11011000 10110010



8ビットのブロックに分割しM = 8、その埌、各ブロックのナニットの最倧シヌケンスを蚈算したす。

ブロックする ナニット長
11001100 2
00010101 1
01101100 2
01001100 2
11100000 3
00000010 1
01001101 2
01010001 1
00010011 2
11010110 2
10,000,000 1
11010111 3
11001100 2
11100110 3
11011000 2
10110010 2


次に、次の衚に基づいお、さたざたな長さの統蚈を怜蚎したす。

v i M = 8 M = 128 M = 10000
v 0 ≀1 le4 LE10
v 1 2 5 11
v 2 3 6 12
v 3 ≥4 7 13
v 4 8 14
v 5 ≥9 15
v 6 ≥16


この衚の䜿甚方法M = 8であるため、察応する1列のみを確認したす。 v iを考慮したす。

v 0 = { 最倧のブロック数。 長さ≀1 } = 4

v 1 = { 最倧のブロック数。 長さ= 2 } = 9

v 2 = { 最倧のブロック数。 長さ= 3 } = 3

v 3 = { 最倧のブロック数。 長さ≥4 } = 0



ã‚«ã‚€2乗を蚈算したす。





KずRの倀がそのようなテヌブルに基づいお取埗される堎合

M K R
8 3 16
128 5 49
10,000 6 75


理論的確率πiは定数で䞎えられたす。 たずえば、K = 3およびM = 8の堎合、π0 = 0.2148、π1 = 0.3672、π2 = 0.2305、π3 = 0.1875を取るこずをお勧めしたす。 他のKおよびMの倀は[2]に蚘茉されおいたす。





次に、P倀を蚈算したす。





この䟋のように、0.01より倧きい堎合、シヌケンスはかなりランダムず芋なされたす。



バむナリマトリックスランクテスト



このテストでは、元のシヌケンスで構成される行列を分析したす。぀たり、元のバむナリシヌケンスから構築された互いに玠な郚分行列のランクを蚈算したす。 このテストは、コバレンコの研究[6]に基づいおおり、科孊者は0ず1で構成されるランダム行列を調査したした。圌は、行列M x QがランクRここでR = 0,1,2、 ...分M、Q。 これらの確率は次ず等しいです







NISTでは、M = Q = 32を䜿甚するこずをお勧めしたす。たた、シヌケンスの長さはn = M ^ 2 * Nになりたす。しかし、たずえば、M = Q = 3を䜿甚したす。 わずかな誀差で、匏を単玔化でき、これらの確率は等しくなりたす。



















したがっお、シヌケンス01011001001010101101を指定するず、2぀のマトリックスに十分な数のマトリックスに「分解」したす。





行列のランクを決定したす。R1 = 2、R 2 = 3であるこずがわかりたす。テストには3぀の数字が必芁です。

ã‚«ã‚€2乗を蚈算したす。





P倀を蚈算したす





結果が0.01より倧きい堎合、シヌケンスはランダムず芋なされたす。 NISTは、シヌケンスの合蚈の長さを38MQ以䞊にするこずを掚奚しおいたす。



スペクトルテスト



実隓シヌケンスは、呚波数ピヌクを識別するためにスペクトル分解が行われる離散信号ず芋なされたす。 明らかに、そのようなピヌクは呚期的な成分の存圚を瀺したすが、これは腞ではありたせん。 芁するに、テストは95の障壁を超えるピヌクを明らかにし、これらのピヌクの割合が5を超えるかどうかを確認したす。



ご想像のずおり、離散フヌリ゚倉換を䜿甚しお、シヌケンスを呚期成分の合蚈ずしお衚したす。 次のようになりたす。





ここで、x kは+1に察応する初期シヌケンスであり、-1は-1に察応したす。Xjは耇玠振幅の取埗倀です耇玠ずは、振幅ず䜍盞の実数倀の䞡方を含むこずを意味したす。



ここで呚波数はどこですか 答えは、指数関数を䞉角関数で衚珟できるずいうこずです。





私たちのテストでは、興味深いのは䜍盞ではなく、振幅の絶察倀です。 そしお、これらの絶察倀を蚈算するず、それらは察称的であるこずがわかりたすこれは、耇雑な倀から実際の倀ぞの移行におけるよく知られた事実です。情報。



このすべおを䟋で瀺したす。 シヌケンス1001010011を䞎えたす。

次に、x = {1、-1、-1、1、1、-1、1、-1、-1、1、1}。



䟋えば、GNU Octaveプログラムでフヌリ゚分解を行う方法は次のずおりです。

octave:1> x = [1, -1, -1, 1, -1, 1, -1, -1, 1, 1] x = 1 -1 -1 1 -1 1 -1 -1 1 1 octave:2> abs(fft(x)) ans = 0.0000 2.0000 4.4721 2.0000 4.4721 2.0000 4.4721 2.0000 4.4721 2.0000
      
      



察称性が芳察されるこずがわかりたす。 したがっお、0、2、4.4721、2、4.4721の5぀の倀で十分です。



次に、匏によっお境界倀を蚈算したす





これは、シヌケンスが真にランダムな堎合、ピヌクの95がこの境界を超えおはならないこずを意味したす。



ピヌクの制限数を蚈算したす。これはT未満である必芁がありたす。





次に、分解の結果を芋お、4぀のピヌクすべおが境界倀よりも小さいこずを確認したす。 次に、この違いを評䟡したす。





P倀を蚈算したす





刀明したのは0.01より倧きいため、ランダム性の仮説が受け入れられたす。 はい、テストには少なくずも1000ビットを䜿甚するこずをお勧めしたす。



重耇しないパタヌンのテスト



実隓シヌケンスは、同じ長さのブロックに分割されたす。 䟋

1010010010 1110010110







各ブロックで、たずえば「001」などのパタヌンを探したす。 互いに玠ずいう蚀葉は、パタヌンがシヌケンス内にある堎合、次の比范では芋぀かったパタヌンのビットをキャプチャしないこずを意味したす。 怜玢の結果、i番目のブロックごずに、芋぀かったケヌスの数に等しい数W iが芋぀かりたす。



したがっお、ブロックの堎合、W 1 = 2およびW 2 = 1です。

101 001 001 0

111 001 0110



シヌケンスが本圓にランダムであるかのように、数孊的期埅倀ず分散を蚈算したす。 以䞋は公匏です。 ここで、N = 2ブロック数、M = 10ブロック長、m = 3サンプル長。











ã‚«ã‚€2乗を蚈算したす。







䞍完党なガンマ関数を介しお最終的なP倀を蚈算したす。







P倀が0.1より倧きいこずがわかりたす。これは、シヌケンスがかなりランダムであるこずを意味したす。



1぀のテンプレヌトのみを評䟡したした。 実際、パタヌンのすべおの組み合わせをチェックする必芁があり、さらに、これらのパタヌンのさたざたな長さに぀いおもチェックする必芁がありたす。 どちらが必芁かは特定の芁件に基づいお決定されたすが、通垞は9たたは10が必芁です。意味のある結果を埗るには、N <100およびM> 0.01 * nを䜿甚する必芁がありたす。



亀差する亀差パタヌンのテスト



このテストは、テンプレヌトが芋぀かったずきに、怜玢りィンドりがテンプレヌトの長さではなく、1ビットだけシフトされるずいう点で、前のテストず異なりたす。 蚘事を煩雑にしないために、この方法による蚈算の䟋を瀺したせん。 それは完党に䌌おいたす。



ナニバヌサルマりアヌテスト



このテストでは、シヌケンス内のパタヌンの間隔を評䟡したす。 テストの意味は、シヌケンスがどれだけ圧瞮可胜であるかを理解するこずですもちろん、可逆圧瞮を意味したす。 シヌケンスの圧瞮率が高いほど、ランダム性は䜎くなりたす。 このテストのアルゎリズムは、Habr圢匏では非垞に扱いにくいため、省略したす。



線圢難易床テスト



このテストは、実隓シヌケンスが線圢フィヌドバックシフトレゞスタたたはLFSR、線圢フィヌドバックシフトレゞスタから取埗されたずいう仮定に基づいおいたす。 これは、無限シヌケンスを取埗するためのよく知られた方法です。ここでは、次の各ビットは、レゞスタに「座っおいる」ビットの特定の関数ずしお取埗されたす。 LFSRの欠点は、垞に有限の期間があるこずです。 シヌケンスは必然的に遅かれ早かれ繰り返されたす。 LFSRが長いほど、ランダムシヌケンスは良くなりたす。



初期シヌケンスは長さMの等しいブロックに分割されたす。次に、各ブロックに぀いお、Berlekamp – Masseyアルゎリズム[10]を䜿甚しお、その線圢耇雑床L i が怜出されたす。 LFSRの長さ。 次に、芋぀かったすべおのL iに぀いお、6自由床のカむ2乗分垃が掚定されたす。 䟋を瀺したす。



ブロック1101011110001M = 13が䞎えられ、Berlekamp-MasseyアルゎリズムがL = 4を䞎えたずしたす。これが正しいこずを確認しおください。 実際、このブロックでは、次の各ビットが1番目ず2番目のビット1から番号付けされたの合蚈モゞュロ2ずしお取埗されるこずは容易に掚枬できたす。

x 5 = x 1 + x 2 = 1 + 1 = 0

x 6 = x 2 + x 3 = 1 + 0 = 1

x 7 = x 3 + x 4 = 1 + 0 = 1

など



匏を䜿甚しお期埅倀を蚈算したす





各ブロックに぀いお、T iの倀を蚈算したす。





次に、セットTに基づいお、次のようにセットv 0 、...、v 6を蚈算したす。





7぀の可胜な結果がありたす。぀たり、自由床7-1 = 6のカむ2乗を蚈算したす。



テストの確率πiはハヌドコヌドされおおり、それぞれ0.010417、0.03125、0.125、0.5、0.25、0.0625、0.020833です。 より倚くの自由床のπiは、[2]で䞎えられる匏によっお蚈算できたす。



P倀を蚈算する





結果が0.01より倧きい堎合、シヌケンスはランダムず芋なされたす。 実際のテストでは、n> = 10 ^ 6およびMを500から5000の範囲にするこずをお勧めしたす。



サブシヌケンステスト



元のシヌケンス内の長さ「m」ビットのすべおの皮類のシヌケンスを芋぀ける頻床が分析されたす。 さらに、各サンプルは個別に怜玢されたす。 芋぀かったサンプルを別のサンプルに「重ねる」こずができたす。 明らかに、すべおの皮類のサンプルの数は2 mです。 シヌケンスが十分に倧きくランダムである堎合、これらのサンプルのそれぞれを芋぀ける確率は同じです。 ちなみに、m = 1の堎合、このテストは既に説明した比率「0」たたは「1」のテストに「瞮退」したす。



テストは[8]および[11]に基づいおいたす。 サンプルの発生頻床が真にランダムなシヌケンスの同じ頻床にどの皋床察応するかを特城付ける2぀のむンゞケヌタヌ∇ψ2 mおよび∇2ψ2 m が蚘述されおいたす。 䟋でアルゎリズムを瀺したす。



長さn = 10のシヌケンス0011011101ず、m = 3を指定したす。



最初に、3぀の新しいシヌケンスが圢成されたす。各シヌケンスは、シヌケンスのm-1個の最初のビットをその末尟に远加するこずによっお取埗されたす。 刀明した

次に、長さm、m-1、m-2のすべおのブロックの出珟頻床をそれぞれ芋぀けたす。

匏を䜿甚しお必芁な統蚈を蚈算したす。





代替





次に











合蚈倀





したがっお、䞡方のP倀は0.01より倧きいため、シヌケンスはランダムずしお認識されたす。



近䌌゚ントロピヌ



近䌌゚ントロピヌ法は、最初は医孊、特に心臓病で最初に蚌明されたした。 䞀般に、叀兞的な定矩によれば、゚ントロピヌはカオスの尺床です。それが高いほど、予枬䞍可胜な珟象が増えたす。 良くも悪くも、それは文脈に䟝存したす。 暗号化で䜿甚されるランダムシヌケンスの堎合、高い゚ントロピヌを持぀こずが重芁です。これは、すでにあるものに基づいお埌続のランダムビットを予枬するこずが困難であるこずを意味したす。 しかし、たずえば、ランダムな倀に぀いお、特定の期間で枬定された心拍数をずる堎合、状況は異なりたす心拍数の倉動性が䜎いほど、心臓発䜜やその他の䞍快な珟象が少ないこずを蚌明する倚くの研究たずえば[12]がありたす。 明らかに、人間の心臓は䞀定の頻床で錓動するこずはできたせん。 ただし、心臓発䜜で死亡する人もいれば、そうでない人もいたす。 したがっお、近䌌゚ントロピヌの方法により、珟象の出珟が実際にランダムであるかどうかを掚定できたす。



具䜓的には、このテストでは、特定の長さmのすべおの皮類のサンプルの出珟頻床を蚈算し、次に同様の頻床を蚈算したすが、すでに長さm + 1のサンプルに぀いお蚈算したす。 次に、頻床分垃がカむ二乗基準分垃ず比范されたす。 前のテストず同様に、サンプルが重耇する堎合がありたす。



䟋を瀺したす。 シヌケンス0100110101長さn = 10が䞎えられ、m = 3を取るずしたす。



たず、最初のm-1ビットでシヌケンスを補完したす。 0100110101 01になりたす。



8぀のさたざたなブロックのそれぞれの発生を蚈算したす。 それは刀明したす

k 000 = 0、k 001 = 1、k 010 = 3、k 011 = 1、k 100 = 1、k 101 = 3、k 110 = 1、k 111 = 0



匏C i m = k i / nに埓っお察応する呚波数を蚈算したす。

C 000 3 = 0、C 001 3 = 0.1、C 010 3 = 0.3、C 011 3 = 0.1、C 100 3 = 0.1、C 101 3 = 0.3、C 110 3 = 0.1、C 111 3 = 0



同様に、長さm + 1 = 4のサブナニットの出珟頻床を考慮したす。 すでに2 4 = 16がありたす

0011 4 =0100 4 =0110 4 =1001 4 =1101 4 = 0.1、0101 4 = 0.2、1010 4 = 0.3 その他の呚波数= 0。



φ3ずφ4を蚈算したす自然察数であるこずに泚意しおください











ã‚«ã‚€2乗を蚈算したす。





P倀





結果の倀は0.01より倧きいため、シヌケンスはランダムずしお認識されたす。



环積量テスト



元のシヌケンスの各れロビットを-1、各シングルビットを+1ずしお、合蚈を蚈算したす。 盎芳的には、シヌケンスがランダムであればあるほど、この量はれロになる傟向が速くなりたす。 䞀方、100個のれロず100個のナニットが連続しお䞎えられおいるずしたす00000 ... 001111 ... 11。 ここで合蚈は0になりたすが、 このようなシヌケンスをランダムに「手は䞊がりたせん」ず呌ぶこずは明らかです。 したがっお、より深い基準が必芁です。 そしお、この基準は郚分的な量です。 最初の芁玠から量を埐々に怜蚎したす。

S 1 = x 1

S 2 = x 1 + x 2 S 3 = x 1 + x 2 + x 3 ...

S n = x 1 + x 2 + x 3 + ... + x n



次は、これらの合蚈の数z =最倧です。



最埌に、P倀は次の匏に埓っお考慮されたすその導出に぀いおは、[9]を参照。





どこで









ここで、Ίは暙準正芏確率倉数の分垃関数です。 暙準正芏分垃はよく知られたガりス分垃鐘の圢であり、数孊的な期埅倀は0、分散は1であるこずを思い出しおください。次のようになりたす。





結果のP倀が0.01より倧きい堎合、シヌケンスはランダムず芋なされたす。



ちなみに、このテストには2぀のモヌドがありたす。最初に調べたモヌドず、2番目に、最埌の芁玠から量が蚈算されたす。



ランダム偏差テスト



このテストは前のテストに䌌おいたす同様の方法で、正芏化されたシヌケンスの郚分的な合蚈぀たり、-1ず1で構成されるが考慮されたす。 シヌケンス0110110101が䞎えられ、Siが1からi番目の芁玠たでの郚分和であるずしたす。 シヌケンスSiの最初ず最埌に「0」を远加した埌、これらのポむントをグラフに描画したす。これは、さらなる蚈算の敎合性のために必芁です。



グラフが氎平軞ず亀差する点に泚意しおください-これらの点は、シヌケンスをいわゆるものに分割したす。 サむクル 。 ここには、{0、-1、0}、{0、1、0}および{0、1、2、1、2、1、2、0}の3぀のサむクルがありたす。 さらに、これらのサむクルのそれぞれは、異なる状態を連続的にずるず蚀われおいたす 。 たずえば、最初のサむクルは、状態「0」を2回、状態「-1」を1回ずしたす。 このテストでは、-4から4の状態が重芁です。これらの状態のすべおの発生を次の衚にリストしたす。

状態x サむクル番号1 サむクル番号2 サむクル番号3
-4 0 0 0
-3 0 0 0
-2 0 0 0
-1 1 0 0
1 0 1 3
2 0 0 3
3 0 0 0
4 0 0 0


この衚に基づいお、別の衚を䜜成したす。特定の状態をずるサむクルの数は氎平に移動したす。

状態x 䞀床も 1回 2回 3回 4回 5回
-4 3 0 0 0 0 0
-3 3 0 0 0 0 0
-2 3 0 0 0 0 0
-1 2 1 0 0 0 0
1 1 1 0 1 0 0
2 2 0 0 1 0 0
3 3 0 0 0 0 0
4 3 0 0 0 0 0


次に、8぀の状態のそれぞれに぀いお、統蚈のカむ2乗が次の匏で蚈算されたす。





ここで、v k xは特定の状態のテヌブル内の倀、Jはサむクル数3がありたす、πkxは状態「x」が真にランダムな分垃でk回発生する確率です既知。



たずえば、x = 1の堎合、次のようになりたす。





残りのxの πの倀に぀いおは、 [2]を参照しおください。



P倀を蚈算したす





0.01より倧きい堎合、ランダム性に぀いお結論が出されたす。 その結果、8぀のP倀を蚈算する必芁がありたす。 0.01を超えるものもあれば、少ないものもありたす。 この堎合、シヌケンスの最終決定は他のテストに基づいお行われたす。



任意の偏差のテストのバリ゚ヌション



前のテストずほずんど同じですが、より広い条件セットが䜿甚されたす-9、-8、-7、-6、-5、-4、-3、-2、-1、+ 1、+ 2、+ 3、+ 4、+ 5、+ 6、+ 7、+ 8、+ 9。 ただし、䞻な違いは、ここではP倀がガンマ関数igamcずカむ2乗ではなく、誀差関数erfcによっお蚈算されるこずです。 正確な匏に぀いおは、読者は゜ヌス文曞を参照できたす。



以䞋は、トピックを掘り䞋げたいかどうかを確認できる゜ヌスのリストです。



  1. csrc.nist.gov/groups/ST/toolkit/rng/stats_tests.html
  2. csrc.nist.gov/groups/ST/toolkit/rng/documents/SP800-22rev1a.pdf
  3. 䞭倮極限定理
  4. Anant P. Godbole and Stavros G. Papastavridis、ed、Runs and patterns in probability遞択された論文。 ドルドレヒトKluwer Academic、1994
  5. Pal Revesz、ランダムおよび非ランダム環境でのランダムりォヌク。 シンガポヌル1990幎ワヌルドサむ゚ンティフィック
  6. I. N.コバレンコ、確率論ずその応甚、1972
  7. O. Chrysaphinou、S。Papastavridis、「䞀連の独立した詊隓におけるパタヌンの重耇出珟数の限界定理」。確率理論および関連分野、Vol。 79、1988
  8. IJグッド、「サンプリング数の連続テストおよびランダム性のその他のテスト」ケンブリッゞ、1953
  9. A. Rukhin、「ランダム性をテストするための近䌌゚ントロピヌ」、Journal of Applied Probability、2000
  10. Burlekampアルゎリズム-マッセむ
  11. DE Knuth、コンピュヌタヌプログラミングの芞術。 å·» 1998幎2および3
  12. www.ncbi.nlm.nih.gov/pubmed/8466069



All Articles