JP2005518047A - オーバラッピングワードカウントを通じてのオンラインランダム性のテスト - Google Patents
オーバラッピングワードカウントを通じてのオンラインランダム性のテスト Download PDFInfo
- Publication number
- JP2005518047A JP2005518047A JP2003570243A JP2003570243A JP2005518047A JP 2005518047 A JP2005518047 A JP 2005518047A JP 2003570243 A JP2003570243 A JP 2003570243A JP 2003570243 A JP2003570243 A JP 2003570243A JP 2005518047 A JP2005518047 A JP 2005518047A
- Authority
- JP
- Japan
- Prior art keywords
- random
- predetermined
- bit
- generated
- exponential
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
Abstract
本発明は乱数発生器によって生成された乱数をリアルタイムにてテストする方法及び装置に係る。乱数が生成される度に、一度に1つのkビット重複ブロックに指数カウント演算が施される。このカウント動作においては、前のkビットブロックからの最も左のビットを脱落し、新たなランダムビットをこの右に加えることで、新たなkビットブロックが形成され、こうしてブロックのサイズが維持される。このkビットの二進値を用いて、オーバラッピングカウント動作のためのアキュムレータが選択される。これら指数平均の全ての出力を所定の許容範囲と比較することで、乱数発生器によって生成されたビットが十分にランダムであるか否か決定される。
Description
本発明は、乱数発生器の分野、より詳細には、生成された乱数の統計的特性をリアルタイムにて分析するデジタルデータ処理装置及び方法に関する。
スマートカードは典型的にはクレジットカードと同サイズのプラスチックカードから成り、その上に埋設された多様のトランザクションを可能にするためにマイクロプロセッサを含む。このカードは、他のインタフェース、つまり、カード読出し端末との間で情報を交換するための、多様な暗号アルゴリズムを遂行するための暗号モジュール(encryption module)を含む。この暗号モジュールを介して、カードからの信号はカードの外側の複数の金属接点(metal contacts)に導かれるが、これらはカード読出し端末の類似の接点と物理的に接触する。
暗号モードの際には、幾つかの形態の暗号法において、乱数発生器が、意図された受信端のみが正当な送信端によって送信されたメッセージ(つまり、音声或いはデータ)を理解するできるようにするために用いられる。ただし、不当な受信者及び不当な送信者による、メッセージの暗号化において用いられる乱数の生成プロセスの破壊(breaking)はより巧妙化しており、安全な通信のために予測不能な乱数を生成することの要請は一層大きくなっている。
不正者によるセキュリティの破壊に加えて、乱数発生器は動作の最中に非ランダムな数(non-random numbers)を生成することがある。乱数発生器がある時間期間に渡って一連の1及び0を生成する場合、典型的には、乱数発生器のハードウェア要素内には、熱が生成される。例えば、1なるビットを生成するためには、0なるビットよりも多くの電力が消費される。1なるビットの長いシーケンスが生成された場合、この電気回路は熱くなる。この回路がそれが熱いときに1なるビットを生成した場合、この回路は、”ラッチアップ(latch up)”し、1なるビットのみを生成することとなる。この回路が熱いとき、0なるビットが生成された場合は、異なる効果が発生する。この場合は、1なるビットの長いサブシーケンスは極めて稀れとなり、これは非ランダム性(non-random property)を与える。暗号アプリケーションの場合、これらの任意の非ランダム性は致命的な結果、つまりセキュリティの破壊をもたらしかねない。従って、ランダム性のテストを行うときは、ハードウェアの不正な変更(hardware tampering)と要素の故障(component failure)の両方を検出することが必要となる。
本発明は、生成された乱数が不当な者による暗号解析に対してより強くなるように、オンラインランダム性のテスト(on-line randomness test)を行うための方法及び装置を提供することで、上述の問題を克服し、特別の利点を提供することに向けられる。
本発明の一つの態様によると、乱数を生成する際にランダム性をテストする方法が提供される。この方法は、二進ビットのランダムシーケンスを生成するステップと、所定のkビットブロック毎にオーバラッピングカウント演算を施すことで、可能な各kビット長のブロックに対する発生の平均数を計算するステップと、各kビットブロックに対する発生の頻度が所定の許容範囲内にあるか否かを決定するステップと、を含む。この方法は、更に、これら所定のkビットブロックの少なくとも一つの発生の頻度が所定の許容範囲の外にある場合は、それら生成されたランダムシーケンスは十分にランダムではない旨通知するステップと、これら所定のkビットブロックの少なくとも一つの発生の頻度がこの所定の許容範囲の外にある場合は、乱数の新たな組を生成するステップを含む。
本発明のもう一つの態様によると、乱数発生器の出力をテストする方法が提供される。この方法は、(a)乱数発生器を用いて一連のビットを生成するステップと、(b)可能な各所定のkビットブロックに関して、所定の時間において、オーバラッピングカウント演算を遂行及び追跡するステップと、(c)追跡されたオーバラッピングカウント演算の各々に対して、指数平均Aを、所定の時間において計算するステップと、(d)計算された指数平均を所定の許容範囲と比較するステップと、(e)計算された指数平均が所定の許容範囲内に収まる場合は、生成された二進数は十分にランダムであることを決定するステップと、を含む。この方法は、更に、上述のステップ(a)から(d)を、これら計算された指数平均が前記所定の許容範囲から所定の回数より多く外れるまで繰り返すステップと、ステップ(d)におけるテストに閾値の値より多く繰返して失敗した場合、非ランダムな数が生成された旨通知するステップと、ステップ(d)におけるテストに所定の回数より多く繰返して失敗した場合、新たなセットの乱数を生成するステップ、とを含む。
本発明の更にもう一つの態様においては、乱数のシーケンスのランダム性をテストする装置が提供される。この装置は、 二進ビットの実質的にランダムなシーケンスを生成するための乱数発生器ユニットと、このランダム発生器ユニットの出力に接続され、生成されたランダムシーケンスが十分に予測不能であるか否かを検出するための検出器ユニットとを備える。所定のkビットブロック毎に、オーバラッピング指数カウント演算を施すことで、各可能なkビットブロックの発生の平均数が計算され、これら指数アキュムレータAのいずれかの出力がその所定の許容範囲の外にある場合は、生成されたランダムシーケンスはランダムではないと決定される。この装置は、更に、これらランダム発生器ユニット及び検出器ユニットの出力に接続され、生成されたランダムシーケンスが十分にランダムであると決定された場合、生成されたランダムシーケンスを下流のアプリケーションに向けて通過させるためのスイッチユニットと、指数アキュムレータAのいずれかの値がその所定の許容範囲の外にある場合、警告信号を送信するための手段を備える。
さらにもう一つの態様においては、本発明は、特定の用途に合わせて、ハードウェア、ソフトウェア、或いはハードウェアとソフトウェアの組合せにて実現される。
さらにもう一つの態様においては、本発明は、単純な、信頼性の高く、かつ、安価な装置として実現される。
さらにもう一つの態様においては、本発明は、スマートカード内に埋設された乱数発生器の機密性を増加させる。
これら及び更なる長所が以下の詳細な説明を添付の図面を参照しながら読むことで一層明白となるものである。
以下の説明においては、本発明の完全な理解が得られるように、制限ではなく解説の目的で、特定のアーキテクチャ、インタフェース、技術等が具体的に詳細に説明される。ただし、当業者においては明らかなように、本発明は、これら個々の細部とは離れた他の態様として実現することもできる。単純かつ明快さの目的で、公知のデバイス、回路、及び方法の詳細な説明は、本発明の説明が不要な詳細のためにかえって妨げられないように省かれている。
図1は、本発明の一つの実施例による生成された乱数の幾つかの統計量をリアルタイムにてテストするため乱数発生システム10の機能ブロック図である。システム10は、乱数発生モジュール(RG)12、検出器14、及びスイッチ16を備える。乱数発生モジュール(RG)12は、一連の乱数を出力する。乱数の発生は当分野において周知であり、様々なやり方にて遂行できることに注意する。検出器14は、RG12によって出力された乱数を、それらのランダム性について所定の基準(後に説明する)に従ってテストし、それらがテストに合格した場合は、スイッチ16は、それら生成された乱数が、下流アプリケーション、例えば、RG12によって供給されたこれら乱数を用いる、任意の回路、システム、プロセス、アプリケーション等に送られることを許す。スイッチ16は、検出器14の制御下で、生成された乱数が十分にランダムではないと判断された場合には、生成された乱数の送信を停止するために不能にされる。スイッチ16は、暗号(cryptography)システム、オーディオ或いはビデオ雑音発生器、コンピュータプログラム、或いは他のデバイス及びプロセスへの入力を表す。例えば、乱数発生システム(random number generating system)10は、暗号プロトコル(cryptographic protocols)において、公知のDiffie-Hellman機密共有プロトコルにおけるやり方と同様に、送信端と受信端との間の機密通信(confidential communication)に対する暗号キーを確立するために用いられる機密データを提供する。これら乱数は、意図された受信者が送信されたメッセージの内容を理解できるようするために、メッセージのセグメントの暗号化或いは解読のための暗号キーを生成するために用いることが考えられる。暗号化された信号の形成に加えて、本発明による技術による乱数のテストは、そこにおいて乱数が利用される他の実現、つまり、ギャンブリング、シミュレーション、統計的サンプリング等に用いることもできる。
乱数発生器は、1つ或いは複数の乱数が与えられたとき、生成されたランダムシーケンスの任意の他のビットが50%以上の確率にて予測することが不可能な場合は安全であると見なされる。従って、本発明の基本原理は、1つ或いは複数の乱数が与えられたとき、RGモジュール12をテストすることを伴う。より具体的には、生成されたランダムシーケンスの出力が、検出器14によって分析され、生成された乱数が無許可の者によって予測不能であることが確保される。
以下では、乱数シーケンスの統計的特性のテストに関して図2及び3を参照しながら詳細に説明する。
図2の説明に移るが、これら乱数は、本発明の一つの実施例に従って、RGモジュール12が動作している最中に、それら生成された乱数が適切であることを確保するためにリアルタイムにてテストされる。本発明は、例えば、スマートカードのように、デバイス内にマイクロプロセッサとランダムシーケンス発生器が組み込まれている場合は、ソフトウェアとして容易に実現することができ、これらテストのためには、数行の追加コードと僅かなメモリが要求されるのみである。乱数のテストは、指数平均アキュムレータを初期化することから開始される。図2に示されるように、RGモジュール12によって生成されたランダム値の連続するストリームには、オーバラッピングカウント動作(overlapping count operation)が施されるが、この動作においては指数平均計算(exponential-average computation)の遂行を助けるために、予めセットされたビットのブロックkが、リングバッファ内に入れられる。ランダムシーケンスの各kビットブロックに対する発生の平均数は、対応するアキュムレータAには1を加え、他のアキュムレータには0を加え、同時に、これらの全てを一定のファクタα(後に説明)だけ低減することによって一度に更新される。こうして、本発明は、全ての可能な異なるkビットブロックに対する発生の頻度を含む複数のアキュムレータを用いる。各アキュムレータには、初期値が割当てられることに注意する。例えば、k=3の場合、ランダムシーケンスの第一のブロックは(0、1、1)、対応する二進値は3となる。kの値は、単に解説の目的で、3とセットされることに注意する。こうして、図面に示されるkの値は、本発明の範囲に制限を課すものではないことに注意する。このランダムシーケンスの第二のブロックは(1、1、0)、対応する二進値は6となる。(1、0、1)なるこのランダムシーケンスの第三のブロックについては、対応する二進値は5となる。新たなビットが生成される度に、前に集められたこれらビットのブロックは右にシフトされ、最も左のビットは脱落され、新たなビットが右に加えられる。こうして、kビットのオーバラッピングブロック(overlapping blocks)が決定され、これらを用いて、各kビットブロックに対して発生の数を計算するために用
いられるアキュムレータが選択される。
いられるアキュムレータが選択される。
この実施例においては、新たなkビットブロックが生成され、対応する二進インデックス値(binary indexing value)が計算され、指定された(indexed)アキュムレータAが更新される度に、生成された乱数が十分にランダムであるか否か、つまり、ブロック発生の数が概ね等しいか否か、決定される。つまり、全ての可能なk−ビットワードが、そのシーケンス内に概ね同一の頻度にて現れることが要求される。これを達成するために、各アキュムレータの値はある所定の範囲値と比較される。任意のアキュムレータの値が、この指数平均計算の際に、この所定の範囲から外れた場合、それら生成された乱数は、無許可の者によって予測可能であると見なされる。
本発明は、ランダムシーケンスをリアルタイムにてテストすることを目指すために、古いブロックのカウンティング値は、低減された或いは零なる寄与を有することを必要とされることに注意する。つまり、 ランダムシーケンスの統計的特性を評価するためのテストは絶えず実行され、このため、これらカウンタは定期的にクリアされることを必要とされる。本発明の教示から逸脱することなく用いることができる様々なカウンティング方法が存在するが、ただし、好ましくは、後の説明するように、オーバラッピングカウンティング動作(overlapping counting operation)の際には指数平均法(exponential averaging)が用いられる。
アキュムレータAが平均発生値(average occurrence value)を得るために用いられるものとすると、乱数が生成される度に、0と1との間とされる係数α(0<α<1)がアキュムレータAに乗算され、次にインジケータ値(indicator value)bが加えられる。つまり、Anew=α・Aold+bが計算される。この計算アプリケーション(counting applications)においては、事象が発生した場合は、b=1とセットされ、他の場合は0とセットされる。有効な平均化効果(averaging effects)を得るためには、αに対する値は、1に接近するように選択される。つまり、α=1−1/n、n>>1とされる。この場合は、logα≒−1/nとなり、平均化されたビットの半減期(half-life)は、k≒n・log2≒0.30103・nとなる。nビットの後、最も古いビットの重みは、(1-1/n)n≒1/e≒0.367879となる。ここでeは、自然対数の底(オイラー定数)であり、このため、この項nはビットの自然寿命(natural life)と呼ばれる。仮に、全ての値が1である場合は、アキュムレータ値は、1+α+α2+...=1/(1-α)=nとなり、他方、全てのビットが0の場合は、アキュムレータ値は0となる。指数平均(exponential average)の期待値(expected value)は、個々のビットの期待値の指数平均:つまり、1/2+1/2α+1/2α2+...=n/2となることに注意する。1が1ビットおきに現れた場合は、アキュムレータ値は、1+α2+α4+...=1/(1-α2)とα+α3+α5+...=α/(1-α2)との間で交互し、これらは、1/2アパート[n/(2n-1)]に非常に接近するが、この平均値も、(1+α)/2(1-α2)=n/2となることに注意する。
上述のように、指数平均化は、アキュムレータはある0<α<1なるファクタにて低減するため、カウンタをクリアする働きを有し、このため、アキュムレータが動作モードの際に決して大きくなりすぎることは決してない。各アキュムレータに対していったん指数平均が遂行されると、この指数平均の値が、後に説明するやり方にて得られる所定の許容範囲と比較される。
シーケンスRが真にランダムである場合は、長さnのシーケンス内のある特定のk‐ビットブロックに対する発生の数は、μ=n/2k+1、δ=√n/2k+1を有する正規分布に接近することが容易にわかる。単一のバイアスのないランダムビットの標準偏差はδ=1/2であることに注意する。こうして、標準モーメンタム(standard momentum)の二乗D2は、以下のような線形関数となる:
D2(bo+αb1+α2b2+...)=D2(b0)+αD2(b1)+α2D2(b2)+...=1/4+1/4α+1/4α2+.. =n/4
従って、ランダムな0/1ビットのパラメータα=1-1/n(自然寿命n)を有する指数平均の標準偏差はδ=√n/2となり、これは、n個の要素の算術平均の標準偏差と等しくなる。
D2(bo+αb1+α2b2+...)=D2(b0)+αD2(b1)+α2D2(b2)+...=1/4+1/4α+1/4α2+.. =n/4
従って、ランダムな0/1ビットのパラメータα=1-1/n(自然寿命n)を有する指数平均の標準偏差はδ=√n/2となり、これは、n個の要素の算術平均の標準偏差と等しくなる。
ランダムシーケンスのテストにおいては、ブロック発生の数(number of block occurrences)は、大体同一であるべきであることに注意する。ここで”大体(roughly)”とは、n個のサンプルを考えた場合、それらのブロックの発生(block occurrences)は、 [n/2k+1−c・√n/2k+1、n/2k+1+c・√n/2k+1 ] の範囲内に入るべきことを意味する。ここで、定数cは、全てのシーケンスの内のなんパーセントが、その区間に入るかを制御し、c/2=1とした場合は68.3%が、c/2=2とした場合は95.5%が、そしてc/2=3とした場合は99.7%が、その区間内に入るべきことを期待される。k及びnの値は、オペレータによって、複雑さとテストの強力さとの間の良好なトレードオフが得られるように、選択することも、或いは予め固定することもできる。非ランダム性をテストするために用いられる[n/2k+1−c・√n/2k+1、n/2k+1+c・√n/2k+1 ] の所定の範囲は、乱数の良好な既知のソースを用いての広範なシミュレーションに基づいて決定される。
指数平均アキュムレータが所定の範囲から外れた場合、これは、そのシーケンスは、不規則なワード分布(irregular word distribution)示すことを示唆する。この場合は、ユーザに、そのシーケンスがランダムではないこと、或いは無許可の者による不当な暗号解析を受け易いことを知らせる警告が送くられる。代替として、テストに繰返して何度失敗したらユーザに通知を送るかの閾値を設定することもできる。こうして、指数平均が限界内に入るか否かのテストが、セットのランダムシーケンスに関して開始され、生成されたランダムシーケンスが許容範囲内に収まるか否か決定される。この許容範囲は、オペレータによって、生成されたランダムシーケンスが無許可の者にとって予測不能であるか否かを決定できるようにセットされる。加えて、ランダム性をテストするための更なるステップを、計算された指数平均値の、所定の許容範囲上の分布に基づいて達成(遂行)することもできる。つまり、指数平均値は、所定の許容範囲内に一様に分布することを要求される。指数平均値が計算される度に、それが、許容範囲のどの部分に落ちるか、例えば、それが、許容範囲の左半分に落ちるか、或いは右半分に落ちるか、監視される。左半分内に落ちる頻度が右半分に落ちる頻度と概ね等しい場合、このパラメータは、生成された乱数が予測不能であるとの指標として用いることができる。
図3は、本発明によるランダムシーケンスの統計的品質(ランダム性)をテストするための動作ステップを解説する流れ図である。長方形の要素は、コンピュータソフトウェアインストラクションを示し、菱形の要素は、長方形のブロックによって表されるコンピュータソフトウェアインストラクションの実行に影響を与えるコンピュータソフトウェアインストラクションを表す。代替として、これら処理及び判定ブロックは、機能的に等価な回路、例えば、デジタル信号プロセッサ回路或いは特定用途向け集積回路(ASIC)によって遂行されるステップを表すものと考えることもできる。多くのお決まりのプログラム要素、例えば、ループ及び変数の初期化及び一時的数値変数(temporary variables)の使用は示されていないことに注意する。当業者においては理解できるように、特に示されてない限り、ここで説明されるこれらステップの特定の順番は単に解説のためのものであり、本発明の精神から逸脱することなく変更することが可能である。
最初に、ステップ100において、(式1内の)k、n及びcに対する値が事前に固定されか、或いはオペレータによって予め選択され、カウンタがリセットされる。次に、ステップ110において、k-ビットブロックが得られ、その後、ステップ120において、指数平均カウンティングが遂行される。新たなランダムビットが生成される度に、前に集められたビットのブロックが右にシフトされ、最も左のビットは脱落され、新たなビットが右に付加される。結果としての、二進数としてのブロックを用いて、2k個のアキュムレータの中から、(比較のための)アキュムレータAが割り出される(指定される)。ステップ140において、その指数平均アキュムレータの値がステップ100において選択された許容範囲の外にある場合は、ステップ160において、そのランダムシーケンス内に不規則な分布(irregular distribution)が発生したことが決定され、カウンタが1だけ増分される。発生しない場合は、ステップ150においてカウンタがリセットされ、ステップ110に戻る。ステップ180において不規則な分布が所定の閾値回数よりも多く発生した場合は、ステップ200においてこのような失敗に関する通知がなされる。代替として、それら生成された乱数を破棄し、新たな乱数を生成するための全プロセスを開始することもできる。
上述の様々なステップは、これらをアプリケーションプログラム内に組み込まれたファンクション内にプログラミングすることで実現することができる。当分野において通常の知識を有するプログラマであれば、これらは、通常のプログラミング技術を用いて、C、Visual Basic、Java(登録商標)、Perl、C++等の言語にて、実現できるものである。一つの実施例においては、図3に示される方法は、(Cプログラミング言語を用いて)実現される:
付録 MS Visual Cコード
上では本発明の幾つかの好ましい実施例について解説されたが、当業者においては理解できるように、本発明の真の範囲から逸脱することなく、様々な変更及び修正や、説明された要素の、同等物での置換が可能である。加えて、多くの修正を、本発明の中心範囲から逸脱することなく、本発明の教示に従って、特定の状況に合わせて、行うことも可能である。従って、本発明は、本発明を実施するために考えられる最良の形態として開示された上述の特定の実施例に限定されるものでなく、本発明は、添付のクレームの範囲に入る全ての形態を包含するものである。
付録 MS Visual Cコード
上では本発明の幾つかの好ましい実施例について解説されたが、当業者においては理解できるように、本発明の真の範囲から逸脱することなく、様々な変更及び修正や、説明された要素の、同等物での置換が可能である。加えて、多くの修正を、本発明の中心範囲から逸脱することなく、本発明の教示に従って、特定の状況に合わせて、行うことも可能である。従って、本発明は、本発明を実施するために考えられる最良の形態として開示された上述の特定の実施例に限定されるものでなく、本発明は、添付のクレームの範囲に入る全ての形態を包含するものである。
10 システム
12 乱数発生器(RG)
14 検出器
16 スイッチ
12 乱数発生器(RG)
14 検出器
16 スイッチ
Claims (25)
- 乱数を生成する際にランダム性をテストする方法であって、
二進ビットのランダムシーケンスを生成するステップと、
前記生成されたダンダムシーケンスに関して、一度に所定のkビットブロック区間について指数オーバラッピングカウント演算を施すことで、これら所定の各ブロックに対する発生の平均数を計算するステップと、
前記指数オーバラッピングカウント演算の出力を所定の許容範囲と比較することで、前記生成されたランダムシーケンスが十分にランダムであるか否か決定するステップと、
を含むことを特徴とする方法。 - 更に、前記指数オーバラッピングカウント演算の出力が前記所定の許容範囲の間に入る場合は、前記生成されたシーケンスは十分にランダムであるものと決定するステップを含むことを特徴とする請求項1記載の方法。
- 更に、前記指数カウント演算の出力が前記所定の許容範囲の外にある場合は、前記生成されたランダムシーケンスが十分にランダムではない旨通知するステップを含むことを特徴とする請求項1記載の方法。
- 更に、前記指数カウント演算の出力が前記所定の許容範囲の外にある場合は、ランダムシーケンスの新たな組を生成するステップを含むことを特徴とする請求項3記載の方法。
- 前記指数平均カウント演算(A)は式:
Anew = α・Aold + b
に従って更新され、
ここで、α=1−1/nであり、αは0と1の間の値(0<α<1)であり、bはkビットブロックの二進値が発生した場合は1であり発生しなかった場合は0であることを特徴とする請求項1記載の方法。 - 指数オーバラッピングカウント演算は、新たなランダムビットが生成される度に、前記所定のkビットブロックから最も左のビットを脱落させ、前記新たなビットを前記所定のkビットブロックの右に付加することで遂行されることを特徴とする請求項1記載の方法。
- 前記所定の許容範囲は:
[n/2k+1−c・√n/2k+1、n/2k+1+c・√n/2k+1 ]
として定義され、cは所望のセキュリティ閾値レベルが達成されるように選択されることを特徴とする請求項5記載の方法。 - 乱数発生器の出力をテストする方法であって、
(a)前記乱数発生器を用いて二進ビットの連続ストリームを生成するステップと、
(b)所定のkビットブロックに関して、各ビットに対する所定の時間期間において、オーバラッピング指数カウント演算を遂行及び追跡することで、対応する頻度値を得るステップと、
(c)全ての前記計算された指数平均値を所定の許容範囲と比較するステップと、
(d)前記計算された指数平均値のいずれかが前記所定の許容範囲の外にある場合、前記生成された二進数はランダムでないことを決定するステップと、
を含むことを特徴とする方法。 - 更に、前記ステップ(a)から(c)を、前記計算された指数平均値のいずれかが前記所定の許容範囲の外にあるようになるまで繰り返すステップを含むことを特徴とする請求項8記載の方法。
- 更に、前記計算された指数平均が前記所定の許容範囲から所定の回数より多く繰返して外れた場合、非ランダムな数が生成された旨通知するステップを含むことを特徴とする請求項9記載の方法。
- 更に、前記計算された指数平均が前記所定の許容範囲から所定の閾値の値より多く繰返して外れた場合、乱数の新たな組を生成するステップを含むことを特徴とする請求項9記載の方法。
- 前記乱数発生器がスマートカード内に埋設されることを特徴とする請求項8記載の方法。
- 前記指数平均演算(A)は式:
Anew = α・Aold + b
によって定義され、
ここで、α=1−1/nであり、αは0と1の間の値(0<α<1)であり、bは前記kビットブロックの二進値が前記ステップ(b)において発生した場合は1であり発生しなかった場合は0であることを特徴とする請求項8記載の方法。 - 前記オーバラッピングカウント演算は、新たなランダムビットが生成される度に、前記所定のkビットブロックから最も左のビットを脱落させ、前記新たなビットを前記所定のkビットブロックの右に付加することで遂行されることを特徴とする請求項8記載の方法。
- 前記所定の許容範囲は
[n/2k+1−c・√n/2k+1、n/2k+1+c・√n/2k+1 ]
として定義され、cは所望のセキュリティ閾値レベルが達成されるように選択されることを特徴とする請求項13記載の方法。 - 乱数シーケンスのランダム性をテストする装置であって、
二進ビットの実質的にランダムなシーケンスを生成するランダム発生器ユニットと、
前記ランダム発生器ユニットの出力に結合され、前記生成されたランダムシーケンスが十分にランダムであるか否かを検出する検出器ユニットとを備え、
前記生成されたダンダムシーケンスに関して、所定のkビットブロック区間毎に指数オーバラッピングカウント演算を施すことで、各所定のブロックに対する発生の平均数が計算され、前記指数オーバラッピングカウント演算の出力が所定の許容範囲の外にある場合は、前記生成されたランダムシーケンスは十分にランダムではないと決定されることを特徴とする装置。 - 更に、前記ランダム発生器ユニット及び前記検出器ユニットの出力に結合され、前記生成されたランダムシーケンスが十分にランダムであると決定された場合、前記生成されたランダムシーケンスを下流のアプリケーションに向けて通過させるためのスイッチユニットを備えることを特徴とする請求項16記載の装置。
- 更に、前記指数オーバラッピングカウント演算の出力が前記所定の許容範囲の外にある場合、警告信号を送信するための手段を備えることを特徴とする請求項16記載の装置。
- 前記指数オーバラッピングカウント演算Aは式:
Anew = α・Aold + b
に従って計算され、
ここで、α=1−1/nであり、αは0と1の間の値(0<α<1)であり、bは前記kビットブロックの二進値が発生した場合は1であり発生しなかった場合は0であり、Aoldは、オペレータによって初期設定されることを特徴とする請求項16記載の装置。 - 前記所定の許容範囲は
[n/2k+1−c・√n/2k+1、n/2k+1+c・√n/2k+1 ]
として定義され、cは所望のセキュリティ閾値レベルが達成されるように選択されることを特徴とする請求項19記載の方法。 - その上に格納されたインストラクションのシーケンスを表すデータを含むマシーンにて読出し可能な媒体であって、前記インストラクションのシーケンスが、プロセッサによって実行された場合、そのプロセッサに対して
二進ビットの乱数のストリームを生成させ、
所定のkビットブロックに関して各ビットに対する所定の時間期間において指数オーバラッピングカウント演算を計算及び追跡することで、対応する二進値を得させ、
全ての前記計算された指数平均を所定の許容範囲と比較することで、前記生成された二進数が十分にランダムであるか決定させる
ことを特徴とするマシーンにて読出し可能な媒体。 - 前記計算された前記指数平均が前記所定の許容範囲の外にある場合、前記生成された二進数は十分にランダムではないことを特徴とする請求項21記載のマシーンにて読出し可能な媒体。
- 前記指数平均は式
Anew = α・Aold + b
によって定義され、
ここで、α=1−1/nであり、αは0と1の間の値(0<α<1)であり、bは前記kビットブロックの二進値が発生した場合は1であり発生しなかった場合は0であることを特徴とする請求項21記載のマシーンにて読出し可能な媒体。 - オーバラッピングカウント演算は、新たなランダムビットが生成される度に、前記所定のkビットブロックから最も左のビットを脱落させ、前記新たなビットを前記所定のkビットブロックの右に付加することで遂行されることを特徴とする請求項21記載のマシーンにて読出し可能な媒体。
- 前記所定の許容範囲は
[n/2k+1−c・√n/2k+1、n/2k+1+c・√n/2k+1 ]
として定義され、cは所望のセキュリティ閾値レベルが達成されるように選択される、ことを特徴とする請求項23記載のマシーンにて読出し可能な媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/081,910 US20030158876A1 (en) | 2002-02-21 | 2002-02-21 | On-line randomness test through overlapping word counts |
PCT/IB2003/000390 WO2003071416A2 (en) | 2002-02-21 | 2003-02-05 | On-line randomness test through overlapping word counts |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005518047A true JP2005518047A (ja) | 2005-06-16 |
Family
ID=27733318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003570243A Pending JP2005518047A (ja) | 2002-02-21 | 2003-02-05 | オーバラッピングワードカウントを通じてのオンラインランダム性のテスト |
Country Status (6)
Country | Link |
---|---|
US (1) | US20030158876A1 (ja) |
EP (1) | EP1479002A2 (ja) |
JP (1) | JP2005518047A (ja) |
CN (1) | CN1802629A (ja) |
AU (1) | AU2003205958A1 (ja) |
WO (1) | WO2003071416A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008130856A (ja) * | 2006-11-22 | 2008-06-05 | Hitachi Ulsi Systems Co Ltd | 半導体装置と検証方法 |
JP2008176744A (ja) * | 2007-01-22 | 2008-07-31 | Sony Corp | 平均値算出装置、平均値算出方法およびプログラム |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7219112B2 (en) * | 2001-11-20 | 2007-05-15 | Ip-First, Llc | Microprocessor with instruction translator for translating an instruction for storing random data bytes |
US7149764B2 (en) | 2002-11-21 | 2006-12-12 | Ip-First, Llc | Random number generator bit string filter |
US20060064448A1 (en) * | 2001-11-20 | 2006-03-23 | Ip-First, Llc. | Continuous multi-buffering random number generator |
US7136991B2 (en) * | 2001-11-20 | 2006-11-14 | Henry G Glenn | Microprocessor including random number generator supporting operating system-independent multitasking operation |
US7028059B2 (en) * | 2002-06-24 | 2006-04-11 | Sun Microsystems, Inc. | Apparatus and method for random number generation |
US7139785B2 (en) * | 2003-02-11 | 2006-11-21 | Ip-First, Llc | Apparatus and method for reducing sequential bit correlation in a random number generator |
JP4298588B2 (ja) * | 2004-05-31 | 2009-07-22 | 株式会社リコー | 情報検出装置および情報検出方法 |
US7925684B2 (en) * | 2007-02-16 | 2011-04-12 | Infineon Technologies Ag | Method and apparatus for distributing random elements |
KR20090012528A (ko) * | 2007-07-30 | 2009-02-04 | 삼성전자주식회사 | 난수 발생 장치의 자발적인 온라인 테스트 장치 및 방법 |
US8805905B2 (en) * | 2007-09-18 | 2014-08-12 | Seagate Technology Llc | On-line randomness test for restart random number generators |
US8676870B2 (en) | 2007-09-18 | 2014-03-18 | Seagate Technology Llc | Active test and alteration of sample times for a ring based random number generator |
US8635260B2 (en) * | 2009-12-02 | 2014-01-21 | Seagate Technology Llc | Random number generator incorporating channel filter coefficients |
US8583711B2 (en) * | 2009-12-02 | 2013-11-12 | Seagate Technology Llc | Random number generation system with ring oscillators |
CN102520908B (zh) * | 2011-12-20 | 2015-04-29 | 大唐微电子技术有限公司 | 一种伪随机数生成器及伪随机数生成方法 |
KR20180055299A (ko) | 2016-11-16 | 2018-05-25 | 삼성전자주식회사 | 난수 생성기의 랜덤성 시험 장치 및 방법 |
KR102073474B1 (ko) * | 2018-05-24 | 2020-02-04 | 홍익대학교 산학협력단 | 비트스트림의 임의성을 검증하는 방법 및 그 시스템 |
CN109617653A (zh) * | 2018-12-06 | 2019-04-12 | 四川长虹电器股份有限公司 | 序列测试的优化实现方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5675649A (en) * | 1995-11-30 | 1997-10-07 | Electronic Data Systems Corporation | Process for cryptographic key generation and safekeeping |
CA2217916A1 (en) * | 1996-10-09 | 1998-04-09 | Dew Engineering And Development Limited | Random number generator and method for same |
US6675126B2 (en) * | 2001-03-27 | 2004-01-06 | Kabushiki Kaisha Toyota Chuo Kenkyusho | Method, computer program, and storage medium for estimating randomness of function of representative value of random variable by the use of gradient of same function |
US6675113B2 (en) * | 2002-03-26 | 2004-01-06 | Koninklijke Philips Electronics N.V. | Monobit-run frequency on-line randomness test |
-
2002
- 2002-02-21 US US10/081,910 patent/US20030158876A1/en not_active Abandoned
-
2003
- 2003-02-05 AU AU2003205958A patent/AU2003205958A1/en not_active Abandoned
- 2003-02-05 CN CN03804332.7A patent/CN1802629A/zh active Pending
- 2003-02-05 WO PCT/IB2003/000390 patent/WO2003071416A2/en not_active Application Discontinuation
- 2003-02-05 JP JP2003570243A patent/JP2005518047A/ja active Pending
- 2003-02-05 EP EP03702841A patent/EP1479002A2/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008130856A (ja) * | 2006-11-22 | 2008-06-05 | Hitachi Ulsi Systems Co Ltd | 半導体装置と検証方法 |
JP2008176744A (ja) * | 2007-01-22 | 2008-07-31 | Sony Corp | 平均値算出装置、平均値算出方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2003071416A3 (en) | 2003-11-13 |
WO2003071416A2 (en) | 2003-08-28 |
EP1479002A2 (en) | 2004-11-24 |
CN1802629A (zh) | 2006-07-12 |
US20030158876A1 (en) | 2003-08-21 |
AU2003205958A1 (en) | 2003-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005518047A (ja) | オーバラッピングワードカウントを通じてのオンラインランダム性のテスト | |
Blömer et al. | A new CRT-RSA algorithm secure against bellcore attacks | |
Hellekalek et al. | Empirical evidence concerning AES | |
Acosta et al. | Embedded electronic circuits for cryptography, hardware security and true random number generation: an overview | |
WO1999059286A1 (en) | Private key validity and validation | |
CN106030605B (zh) | 数字值处理装置及方法 | |
Dubrova et al. | CRC-PUF: A machine learning attack resistant lightweight PUF construction | |
Kuznetsov et al. | Code-based electronic digital signature | |
JP2005518046A (ja) | 自己相関を利用したランダム性のテスト | |
Sunar | True random number generators for cryptography | |
JP2005521156A (ja) | モノビットラン頻度オンラインランダム性テスト | |
CN108449183A (zh) | 一种使用量子随机数的非对称加密方法 | |
Fernández-Hernández et al. | Analysis and recommendations for MAC and key lengths in delayed disclosure GNSS authentication protocols | |
Krishna et al. | Key generation for plain text in stream cipher via bi-objective evolutionary computing | |
Mengdi et al. | Overview of randomness test on cryptographic algorithms | |
US7295674B2 (en) | On-line randomness test for detecting irregular pattern | |
US11921623B2 (en) | Device and method for testing a sequence generated by a random number generator | |
KR20140037155A (ko) | 코드 보안 검사를 위한 방법 및 회로 장치 | |
Croock et al. | Adaptive key generation algorithm based on software engineering methodology | |
Philip et al. | Chaos for stream cipher | |
Paillier | Evaluating differential fault analysis of unknown cryptosystems | |
US10514892B2 (en) | Apparatus and method for detecting integrity violation | |
Heßeling et al. | Reversible network covert channel by payload modulation in streams of decimal sensor values | |
JP4955415B2 (ja) | 複数の乱数列を用いた情報通信装置及び情報通信方法 | |
Acosta Jiménez et al. | Embedded electronic circuits for cryptography, hardware security and true random number generation: an overview |