JP4546339B2 - 乱数生成装置及び乱数生成方法 - Google Patents

乱数生成装置及び乱数生成方法 Download PDF

Info

Publication number
JP4546339B2
JP4546339B2 JP2005189942A JP2005189942A JP4546339B2 JP 4546339 B2 JP4546339 B2 JP 4546339B2 JP 2005189942 A JP2005189942 A JP 2005189942A JP 2005189942 A JP2005189942 A JP 2005189942A JP 4546339 B2 JP4546339 B2 JP 4546339B2
Authority
JP
Japan
Prior art keywords
data
random number
quality evaluation
stirring
quality
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.)
Expired - Fee Related
Application number
JP2005189942A
Other languages
English (en)
Other versions
JP2007011579A5 (ja
JP2007011579A (ja
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2005189942A priority Critical patent/JP4546339B2/ja
Priority to US11/279,082 priority patent/US7788307B2/en
Publication of JP2007011579A publication Critical patent/JP2007011579A/ja
Publication of JP2007011579A5 publication Critical patent/JP2007011579A5/ja
Application granted granted Critical
Publication of JP4546339B2 publication Critical patent/JP4546339B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は乱数を生成する乱数生成装置及び乱数生成方法に関するものである。
従来、デジタルイメージング機器や遊戯機器等、様々な機器における各種信号処理に乱数が使われていた。また近年、各種機器類のネットワーク化が進むとともにセキュリティ機能が実装されるようになってきたのに伴って、より一層乱数が使われる場面が増えてきた。
特にセキュリティ機能を実装する際に使われる乱数の場合には、安全性向上の重要な要素として、良質な乱数を豊富にもつ必要があった。そしてこの場合、乱数に必要な要素として前後関係からの予測困難性、配列の不規則性、十分に長い周期性、一様性等が従来以上に求められるようになっている。
そこで例えば特許文献1では、乱数生成装置の内部の乱数発生器で発生した乱数を外部に出力しながら乱数生成装置に内蔵した検定回路により検定を行い、検定終了後に検定結果を追って出力する技術が開示されている。
特開2003−29963号公報
しかしながら上記従来例では乱数生成装置から外部へ出力された乱数の品質が十分であるか否かは、上記検定回路による検定が済むまでわからなかった。即ち、品質の保証が出来ていない乱数をも出力してしまう可能性が有った。
例えば、乱数を使用するアプリケーションが高品質の乱数を必須とする場合には、装置外部で所定量の乱数をバッファリングし、装置内部の検定回路による検定結果を確認してから、そのバッファリングした乱数を使うか否かの判定をする等の必要があった。
本発明はかかる事情に鑑みてなされたものであり、確実に品質の保証された乱数を出力することができる乱数出力装置とその方法を提供することを目的とする。
上記の目的を達成するために、本発明による乱数出力装置は、データを保持する保持手段と、前記保持手段に保持されたデータを攪拌する攪拌手段と、前記保持手段に保持されたデータの乱数としての品質を評価する品質評価手段と、前記品質評価手段による評価に応じて、データの出力を制御する出力制御手段とを備えることを特徴とする。
本発明によれば、装置外部へ、品質が保証された乱数を確実に出力することができる。
(第1の実施例)
図1は本発明を実施した乱数生成装置のブロック図を示したものである。同図において1は品質が保証された乱数を出力する乱数生成装置、2はデータ保持部内のデータの初期値を設定するための初期値設定部、3はデータを保持しておくためのデータ保持部、4はデータ保持部3に保持されたデータを取り出し撹拌するための撹拌部、5はデータ保持部3より得られるデータの品質を評価する品質評価部、6はデータ保持部3から得られるデータの出力を品質評価部5による品質評価結果に応じて制御する出力制御部である。
101は初期値設定部2から出力された初期値を示すデータ、102は撹拌部4によって撹拌されたデータ、103はデータ101とデータ102から選択されデータ保持部3に入力するデータ、104、105、112はデータ保持部3から取り出されたデータ、106は設定された攪拌回数を示すパラメータ、108は品質評価部5によって決定された更なる撹拌回数を示すパラメータ、107は撹拌回数パラメータ105、108から選択された撹拌回数を示すパラメータ、109は設定された撹拌回数終了を示す撹拌終了信号、110、113は品質評価部5によって決定された乱数出力を制御するための出力制御信号、111は品質が保証された乱数データである。
また、7は初期値データ101とデータ102のうち一方を選択するスイッチ、8は撹拌回数パラメータ106、108のうち一方を選択するスイッチである。
以下、図1を用いて本発明の乱数生成装置における乱数生成動作を詳細に説明する。
まず、初期値設定部2により初期値データ101が出力される。初期値データ101の生成方法には様々な方法があるが、ここでは擬似乱数発生器による初期値データの生成とする。なお生成方法はこれに限らず、物理乱数発生器でも可能である。
この段階ではデータの撹拌がまだ行なわれていないため、最初、スイッチ7は、初期値データ101とデータ102のうち、初期値データ101を選択する。選択された初期値データ101は、データ103としてデータ保持部3に一時的に保持される。
次にデータ保持部3から取り出されたデータ105は、撹拌部4で撹拌される。撹拌部4は、データ105をハッシュ関数、ブロック暗号化等を用いて必要なビット数毎に撹拌処理する。ハッシュ関数、ブロック暗号化等を用いて攪拌処理をすることにより、データ105は、そのビット間の不規則性が増加し、またエントロピーの高いデータ列となる。
攪拌処理とは、攪拌されるデータ中のビット配列の不規則性を増加させる処理であって、乱数としての品質を向上させる処理である。それを満たす処理ならば、前記ハッシュ関数、ブロック暗号化などの処理に限らない。
このようにして、撹拌部4はまず一度データ105を撹拌後データ102として出力する。このデータ102は、スイッチ7によりデータ保持部に書き込まれるデータ103として選択される。このようにして所定量のデータがデータ保持部3から読み出され、撹拌部4により撹拌された後、再びデータ保持部3に書き込まれる。
データ保持部3へのデータの書き込みは、上述したデータ保持部3からのデータの読み出しと同じ順序で、行なっていく。
撹拌部4には、所定の撹拌回数を示す撹拌回数パラメータ106及び、品質評価部5から出力され攪拌回数を示す撹拌回数パラメータ108から、選択された撹拌回数パラメータ107が与えられる。最初は撹拌回数パラメータ106が選択される。撹拌部4は、撹拌回数パラメータ106が示す回数だけ、データの撹拌を行なう。
ここで攪拌回数とは、データ保持部3からデータが取り出され、攪拌部4でデータがハッシュ関数、ブロック暗号化等を用いて攪拌され、その攪拌後、データ102をデータ保持部3に書き込むまでを、1回の攪拌回数としている。
このようにして所定回数分のデータの撹拌が終わると、撹拌部4は、撹拌終了信号109を出力する。
続いて品質評価部5は、攪拌された乱数104を、所定量毎に、処理することにより乱数の品質評価を行なう。
上記品質評価部5が行なう品質評価は様々な基準があるが、ここでは代表的なものとしてFIPS PUB 140−2に記載されている乱数検定を行なう。
以下に乱数の品質評価(検定)の内容(検定項目)1〜4を示す。
1.The mono bit test
連続するランダムな20000ビット中の‘1’の数をXとしたとき
9725<X<10275 ・・・(1)
2.The long runs test
連続するランダムな20000ビット中の‘1’or‘0’の最長連続ビット数をXとしたとき
X<26 ・・・(2)
3.The runs test
連続するランダムな20000ビット中の‘1’or‘0’の連続ビット数をi、度数をXiとしたとき
2315<X1<2685 ・・・(3)
1114<X2<1386 ・・・(4)
527 <X3<723 ・・・(5)
240 <X4<384 ・・・(6)
103 <X5<209 ・・・(7)
103 <X6<209 ・・・(8)
4.The poker test
連続するランダムな20000ビットを4ビット毎に5000に区切り、その値(0〜15)の度数をf(i)とし、
X=(16/5000)*(Σi[f(i)]^2)−5000としたとき
2.16<X<46.17 ・・・(9)
乱数品質評価部5はこのような乱数検定を行い、上記検定項目の1〜4までの全てを合格した場合に、出力制御信号110、113により乱数の出力を許可する。
出力制御部6は、上記出力許可を得た後、攪拌されたデータ112を所望のデータ量だけ読み出し、乱数データ111として外部に出力することができる。なお、この出力制御部6は単純に攪拌データの塊を読み出すだけではなく、別の読み出しを行なうことも可能である。
特に、出力制御部6は、上記出力許可を得た後、攪拌されたデータ112をランダムに読み出して合成した後に、乱数データ111として出力することができる。こうすることにより、さらにビット間の不規則性が増加し、エントロピーの高いデータ列が得られる。
図4はこのようなデータ保持部3からのデータの読み出しを示したものである。ここでは4KBのデータ保持部3が用意されており、1バイト単位でデータの読み出し及び書き込みができるようになっている。
このデータ保持部3から8バイト分のデータを読み出す場合、最初に、アドレス0x103から1バイト分のデータがデータ保持部3から読み出される。続いて同様にアドレス0xb59から1バイト分のデータが読み出される。このとき、データ保持部3からデータを読み出す際の12ビットのアドレスはランダムに選ばれるが、各アドレスを一回ずつ読み出し、かつ、同じアドレスを二度は読み出さずに全アドレスを一巡するようになっている。このようなランダムなアドレス指定は、例えば公知のM系列の乱数生成器により乱数を発生させればよい。M系列の乱数は0x000のデータは使えないほか、乱数品質が低いが、ここでは12ビット分のアドレスが一通り重複なく1度ずつ選ばれれば十分なので、機能としては特に問題無い。
なお、出力制御部6は、検定前に合成した乱数データを品質評価部5に出力してもよい。そうすることにより検定に合格する確率が高くなる。
検定項目1〜4までのうち、一項目でも検定に合格しなければ、品質評価部5は、出力制御信号110により乱数の出力を許可しない。更にこの場合は、データ105の撹拌を続けて行い、乱数の品質を向上させる。
ところでデータの撹拌回数と乱数の品質の関係は、上記検定項目1を例にとると図3に示されるようになっている。撹拌回数が増える毎にデータ104に‘1’が現れる数Xは実線で示されるように推移していく。Xの推移は、ばらつきがあるものの、概ね点線で示される範囲に90%以上入っており、式(1)を満たすためには15回程度の撹拌を続ければよい。そこで撹拌部に設定される撹拌回数パラメータ106には15を設定すれば90%以上の確率で検定項目1に合格する。
なお、攪拌部に設定される攪拌回数パラメータ106には、ほぼ100%、検定項目1を合格するであろう攪拌回数を設定してもよい。
もし品質評価部5で基準を満たさない場合は、Xの値に応じて更なる撹拌回数パラメータ108を設定する。
設定方法の一つとしては、ほぼ100%、検定項目1を合格するであろう攪拌回数と、品質評価部5で基準を満たさなかった攪拌回数との差分の回数を設定する。そして攪拌部4ではその差分の回数だけ攪拌を繰り返す。そして十分な乱数品質が得られた後、出力制御部6から、乱数データ111が出力されることになる。
このようにパラメータの設定をすることにより、2回の品質評価でほぼ確実に検定に合格することができる。
次に図2は、本発明を実施した乱数生成装置における乱数生成の動作を示すフローチャートである。同図に従って本発明の乱数生成装置における乱数生成フローを説明する。
ステップS201において、初期値設定部2は、データ保持部に保持するためのデータの初期値を設定する。
ステップS202において、攪拌部4は、データ保持部3から受け取ったデータを撹拌する。
ステップS203において、攪拌部4は撹拌回数をカウントし、設定された撹拌回数に達していない場合ステップS202に戻り、データを再攪拌する。攪拌回数が設定された撹拌回数に達している場合は、後述するステップS204に進む。
ステップS204において、品質評価部5は、攪拌されたデータの品質評価を行なう。
ステップS205において、品質評価の結果が基準に達していない場合、攪拌部4はデータ撹拌を続け、基準に達していれば後述するS206へ進む。
ステップS206において、出力制御部6は、ステップS205において品質評価の結果が基準に達した乱数データを出力する。
ステップS207において、品質評価部5は、あと何回撹拌すれば良いかを算出し、更なるデータ撹拌回数を決定する。
また、本実施例では初期値が設定され攪拌部4で攪拌を行なうが、攪拌を行なう前に初期値データを品質評価部5で品質の評価を行なってもよい。
また、品質評価部5による品質評価は多量の乱数を扱わなければならないため、処理に時間がかかる。よって、所望の乱数品質を得られればできるだけ少ない処理で済んだ方がよい。品質評価部5がFIPS PUB 140−2に記載されている複数の乱数の品質評価を行なう場合、基本的にデータ撹拌の回数を増やすと乱数の品質は単調に向上していくものと考えられる。よって、品質評価部5は前回不合格だった項目の検定のみ行なう。
以上説明したようにデータ保持部に保持されたデータの品質評価を行い、あらかじめ設定された基準を満たした場合のみ乱数出力を許可することで、誤って品質の低い乱数が出力されることがなくなる。
(第2の実施例)
本発明の第2の実施例においては、品質評価部5が、十分な品質が得られるのに必要な攪拌回数をあらかじめ設定された確率に応じて決定することで、データ撹拌及び品質評価のオーバーヘッドを最適化する。
まずデータの撹拌について説明する。データの撹拌にかかる時間は、データ保持部3のサイズ、撹拌使用する関数等、様々な要因に依存する。よって、攪拌回数は所望の乱数品質を得られればできるだけ少ない方がよい。
検定項目1を例にとって説明すると式(1)は以下のように変形できる。
X’<275(ただしX’=|X−10000|)・・・(10)
データの撹拌回数とこのX’の推移は図5に示される。図5によると、データの撹拌回数を増やすことによって概ね単調に乱数品質が向上していくものと考えられる。しかし乱数品質の向上スピードは、初期値の設定方法や使用するハッシュ関数のアルゴリズムによってばらつきがある。図5に示すように撹拌回数とX’の減少していくカーブがA,Bのように幅をもつとすると、基準値を満たすまでに必要なデータの撹拌回数はAでは26回、Bでは18回となり8回程度差がある。
そこで品質評価部5では過去の攪拌回数の記録を保持しており、その結果から各検定項目について基準を満たすのに必要なデータの撹拌回数を確率別に算出する。そして、品質評価部5は、所望の確率で検定を合格する撹拌回数を出力するようにする。例えば、最初に品質評価部5は、60%の確率で検定を合格する撹拌回数を撹拌回数パラメータ106として設定する。次に、攪拌部4による所定の撹拌回数が終わった後、品質評価部5は、基準の品質に満たないと判定した場合、ほぼ100%検定を合格する撹拌回数を撹拌回数パラメータ108として設定する。こうすることにより、データの撹拌回数を最適化できる。
図6は本発明の第2の実施例における乱数生成のフローチャートを示すものである。
同図に従って本発明の第2の実施例における乱数生成装置による乱数生成フローを説明する。
ステップS601において、初期値設定部2は、データ保持部に保持するためのデータの初期値を設定する。
ステップS602において、品質評価部5は、初期値データと攪拌に使用するハッシュ関数やブロック暗号化のアルゴリズムから、品質評価に合格することができる攪拌回数を確率別に算出する。
ステップS603において、攪拌部4は、確率別に算出された回数分データの撹拌を行なう。
ステップS604において、攪拌部4は、撹拌回数をカウントし、品質評価部5によって設定された撹拌回数に達していない場合、ステップS603に戻り、データの再撹拌を行なう。攪拌回数が設定された撹拌回数に達している場合、後述するステップS605に進む。
ステップS605において、品質評価部5は、攪拌された乱数の品質評価を行なう。
ステップS606において、攪拌部4は、品質評価の結果が基準に達していない場合、データの撹拌を続け、基準に達していれば後述するS607へ進む。
ステップS607において、出力制御部6は、ステップS606において品質評価の結果が基準に達した乱数データを出力する。
ステップS608において、品質評価の結果が基準に達していないとき品質評価部5は、あと何回撹拌すれば良いかを算出し、更なるデータ撹拌回数を決定する。
また、ハッシュ関数やブロック暗号化など、データ撹拌に使う関数が複数ある場合、通常はデータ撹拌の度にランダムに関数を選択し、乱数の耐タンパー性を向上させる。しかし緊急にデータを撹拌する必要がある場合には、処理時間の短い撹拌手段としてハッシュ関数を選択するようにしてもよい。こうすることによって、データ撹拌のオーバーヘッドを状況に合わせて対応させることができる。
また、出力制御部6では、データ保持部3から所定ビットのデータを取り出し、合成した乱数データ112を品質評価部5に出力してもよい。
また、実施例1同様に、品質評価部5は、FIPS PUB 140−2に記載されている複数の乱数の品質評価を行なう場合、前回不合格だった検定項目のみ行なうようにする。
以上説明したように、品質評価部5はあらかじめ設定されたパラメータやデータ撹拌の緊急性の自動的な判断等からデータ撹拌の手段、回数及び品質評価の頻度、項目等を対応させることができるので、データ撹拌処理のシステムのパフォーマンスに与えるオーバーヘッド削減に効果がある。
(第3の実施例)
第3の実施例では、乱数データを乱数生成装置外部に出力した後の動作制御についても述べる。本実施例では、乱数データを乱数生成装置外部に出力した直後、初期値設定部はデータ保持部の少なくとも一部に固定値を書き込む。データ保持部から取り出したデータの品質を意図的に低下させることによりデータ保持部に保持されたデータの撹拌を強制的に行なわせる。
図7は本実施例を実施した乱数生成装置のブロック図を示したものである。同図において第1の実施例と同様なものは説明を省略する。114は初期値設定部2の初期値を固定値にするか変動値にするかを選択する初期値選択信号、115は外部からの乱数出力読み出し信号である。
図7を使って本実施例の乱数生成装置における乱数生成動作を詳細に説明する。本実施例では、攪拌部4によって十分な乱数の品質を得るまでは第1の実施例と同様であるので、省略する。
本実施例では、品質評価部5で十分な乱数品質が得られた後、出力制御部6は外部からの乱数出力読み出し信号115により乱数データ111の出力が開始される。出力制御部6は乱数データ111を出力した後、あらかじめ設定された一定量の乱数を出力するまで初期値設定部2に対して初期値選択信号114を出力する。初期値設定部2は、初期値選択信号114に応じて、初期値を擬似乱数発生器から生成された変動値から、固定値に変更し、この初期値を表す初期値データ101を出力する。
スイッチ7は、乱数の出力を開始した後は、データ保持部3に書き込むデータ103として、初期値設定部2からの出力される初期値データ101を選択する。このようにして乱数データ111を出力した後はデータ保持部3に固定値が書き込まれていく。この初期値選択信号114の出力に応じた固定値の書き込み動作は、出力制御部6から出力される乱数データ111が設定量を超えるまで行われる。
次に出力制御部6から出力される乱数データ111が設定量を超えた場合、品質評価部5は、データ保持部にあるデータ104を再度評価する。乱数データ111を外部に出力した後はデータ保持部3には固定値が書き込まれているため、データ保持部3から取り出したデータ104の品質は低下している。そして品質評価の基準を下回れば更なる撹拌回数パラメータ106により、データの撹拌の回数が設定される。そして攪拌部4は、設定された回数のデータ撹拌を行なう。その後、再度、品質評価部5は攪拌部4で攪拌されたデータ104を評価する。
このようにして再び乱数データの品質の確保され、乱数データが出力可能な状態になる。
図8は本実施例を実施した乱数生成装置における乱数生成のフローチャートを示すものである。同図に従って本実施例の乱数生成装置における乱数生成フローを説明する。
ステップS801において、初期値設定部2は、データ保持部に保持するためのデータの初期値を設定する。
ステップS802において、品質評価部5は、初期値データと攪拌に使用するハッシュ関数やブロック暗号化のアルゴリズムから、品質評価に合格することができる攪拌回数を確率別に算出する。
ステップS803において、攪拌部4は、確率別に算出された回数分データの撹拌を行なう。
ステップS804において、攪拌部4は、撹拌回数をカウントし、品質評価部5によって設定された撹拌回数に達していない場合、ステップS803に戻り、データの再撹拌を行なう。攪拌回数が設定された撹拌回数に達している場合、後述するステップS805に進む。
ステップS805において、品質評価部5は、攪拌された乱数の品質評価を行なう。
ステップS806において、攪拌部4は、品質評価の結果が基準に達していない場合、データの撹拌を続け、基準に達していれば後述するS808へ進む。
ステップS807において、品質評価の結果が基準に達していない場合、品質評価部5はあと何回撹拌すれば良いかを算出し、更なるデータ撹拌回数を決定する。
ステップS808において、品質評価の結果が基準に達している場合、出力制御部6は外部からの要請による乱数データの出力開始を待つ。
ステップS809において、乱数データの出力を開始した直後、出力制御部6は、あらかじめ設定された量の乱数データを出力したかを判断する。
ステップS810において、ステップS809で出力制御部6から出力される乱数データが設定量に達するまでは、初期値設定部はデータ撹拌の初期値を固定値に設定し、固定値をデータ保持部に書き込む。出力した乱数データが設定量を超えた場合、ステップS805に戻る。
以上説明したように乱数データを乱数生成装置外部に出力後はデータ保持部に固定値を書き込み、データ保持部から取り出したデータの品質を意図的に低下させることによりデータ保持部に保持されたデータの再撹拌を行なうことができ、常に品質が高く耐タンパー性の高い乱数データを出力できるようになる。
(第4の実施例)
図9は本発明の第4の実施例における乱数生成装置のブロック図を示したものである。同図において第3の実施例と同様なものは説明を省略する。第3の実施例では、データ攪拌の初期値を設定量だけ固定値としていたが、本実施例では装置外部から品質評価の要求が有るまで初期値を固定値とするものである。
116は外部から乱数生成装置1に入力する、品質評価を要求する信号である。品質評価要求信号116は品質評価部6に入力する。
図9を使って本発明の第4の実施例における乱数生成装置における乱数生成動作を詳細に説明する。なお、第3の実施例と同様の動作は省略する。
出力制御部6が乱数データ111の出力を開始した後、乱数生成装置1の外部から入力する品質評価要求信号116により品質評価の要求があれば、品質評価部6で品質評価を行なう。品質評価の要求があるまでは、第3の実施例と同様に、初期値設定部2は、初期値を固定値に設定し、初期値データ101として固定値を出力する。
以下第1の実施例と同様に品質評価部5の評価結果に応じて更なる撹拌回数パラメータ106を生成し、撹拌部4が所定の回数分データの撹拌を行なう。品質評価部5は品質評価を行い、十分な品質が得られるまでデータの撹拌を行なう。
このようにして再び乱数データの品質の確保され、乱数データが出力可能な状態になる。
図10は本発明の第4の実施例における乱数生成装置における乱数生成の動作を示すフローチャートである。同図においてS1009以外は第3の実施例と同様なので説明を省略する。
ステップS1009において、乱数データの出力を開始した直後、外部から品質評価の要求がきたかを判定する。乱数データの出力を開始した直後から品質評価の要求が来るまではデータ撹拌の初期値を固定値に設定し、固定値をデータ保持部に書き込み続ける。そして品質評価の要求が来た場合はステップS1005に戻り、再び品質評価を行い、品質が低下して基準を下回っていれば再び更なる撹拌回数を決定し、データの撹拌を行なう。
以上説明したように、乱数データを乱数生成装置外部に出力した後は、データ保持部に固定値を書き込み、データ保持部から取り出したデータの品質を意図的に低下させておく。品質評価部は、外部からの品質評価の要求が来たら品質評価を行なうことにより、外部アプリケーションが乱数を必要としない時にデータ撹拌を行なうことができるので、データ撹拌、品質評価のオーバーヘッドをシステムのパフォーマンスに影響を与えず、常に品質が高く耐タンパー性の高い乱数データを出力できる。
なお、上記各実施例における品質評価部5による評価として、FIPS PUB 140−2に適合させる為に1〜4の検定項目を利用することを説明したが、本発明ではこれに限らず、例えば検定項目3のみを検定項目とする場合等に適用しても良い。また、検定項目を任意に選択、設定できるようにしても良い。
本発明第1の実施例における乱数生成装置の機能ブロックを示した図である。 本発明第1の実施例の乱数生成アルゴリズムを示したフローチャートを示した図である。 本発明の実施形態における乱数撹拌回数と検定項目1の評価値の推移を示した図である。 本発明の実施形態におけるデータ保持部からのデータ読み出しの様子を示した図である。 本発明の実施形態におけるデータ撹拌回数と乱数評価値の推移のばらつきを示した図である。 本発明第2の実施例の乱数生成アルゴリズムを示したフローチャートを示した図である。 本発明第3の実施例における乱数生成装置の機能ブロックを示した図である。 本発明第3の実施例の乱数生成アルゴリズムを示したフローチャートを示した図である。 本発明第4の実施例における乱数生成装置の機能ブロックを示した図である。 本発明第4の実施例の乱数生成アルゴリズムを示したフローチャートを示した図である。
符号の説明
1 乱数生成装置
2 初期値設定部
3 データ保持部
4 データ攪拌部
5 品質評価部
6 出力制御部

Claims (12)

  1. データを保持する保持手段と、
    前記保持手段に保持されたデータに対してハッシュ関数またはブロック暗号処理を施すことにより、該データを攪拌する攪拌手段と、
    前記保持手段に保持されたデータの乱数としての品質を評価する品質評価手段と、
    前記品質評価手段による評価結果が合格だった場合に該データを出力する出力制御手段とを備え
    前記品質評価手段は、品質評価の結果が不合格だった場合には、前記攪拌手段に対して前記保持手段に保持されたデータをm回(m>0)攪拌するよう指示することを特徴とする乱数生成装置。
  2. 前記品質評価手段による乱数の検定項目が複数ある場合、前記品質評価手段は、更なる攪拌の後、該攪拌の前に十分な評価結果が得られなかった検定項目のみ品質評価を行なうことを特徴とする請求項に記載の乱数生成装置。
  3. 前記品質評価手段は、前記拌手段がn回(n>0)の拌を行なった後にデータの品質を評価するものであって、前記品質評価手段は、前記n回に満たないi回目(i<j<n)の攪拌後の評価結果と、j回目の攪拌後の評価結果を保持し、これら評価結果に基づいて、攪拌回数mを決定することを特徴とする請求項に記載の乱数生成装置。
  4. 前記出力制御手段がデータを出力した場合に、前記データ保持部の少なくとも一部に固定値を書き込むことを特徴とする請求項に記載の乱数生成装置。
  5. 前記品質評価手段が前記乱数生成装置外部から品質評価の要求があるまで、前記データ保持部の少なくとも一部に固定値を書き込むことを特徴とする請求項記載の乱数生成装置。
  6. 前記品質評価手段は、前記拌手段がn(n>0)回の拌を行なった後にデータの品質を評価することを特徴とする請求項1記載の乱数生成装置。
  7. 前記乱数生成装置は、品質評価に合格する攪拌回数を確率別に算出することによって前記攪拌回数を定めることを特徴とする請求項に記載の乱数生成装置。
  8. 前記出力制御手段は、前記乱数生成装置外部からのデータの要求に応じて、該装置外部へデータの出力を行なうことを特徴とする請求項1記載の乱数生成装置。
  9. 前記品質評価手段は、前記乱数生成装置外部からの品質評価の要求に応じて、品質評価を行なうことを特徴とする請求項1に記載の乱数生成装置。
  10. 所定の保持手段に保持されたデータに対してハッシュ関数またはブロック暗号処理を施すことにより、該データを攪拌する攪拌工程と、
    前記攪拌工程によって攪拌されたデータの乱数としての品質を評価する品質評価工程と、
    前記品質評価工程による評価結果が合格だった場合に該データを出力する出力制御工程を備え
    前記品質評価工程は、品質評価の結果が不合格だった場合には、前記攪拌工程に対して前記保持手段に保持されたデータをm回(m>0)攪拌するよう指示することを特徴とする乱数生成方法。
  11. 前記品質評価工程は、前記拌工程がn(n>0)回の拌を行なった後にデータの品質を評価することを特徴とする請求項10記載の乱数生成方法。
  12. 前記品質評価工程は、乱数の品質を評価する複数の検定を行なうことを特徴とする請求項10記載の乱数生成方法。
JP2005189942A 2005-06-29 2005-06-29 乱数生成装置及び乱数生成方法 Expired - Fee Related JP4546339B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005189942A JP4546339B2 (ja) 2005-06-29 2005-06-29 乱数生成装置及び乱数生成方法
US11/279,082 US7788307B2 (en) 2005-06-29 2006-04-07 Method and apparatus for generating random number

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005189942A JP4546339B2 (ja) 2005-06-29 2005-06-29 乱数生成装置及び乱数生成方法

Publications (3)

Publication Number Publication Date
JP2007011579A JP2007011579A (ja) 2007-01-18
JP2007011579A5 JP2007011579A5 (ja) 2008-08-07
JP4546339B2 true JP4546339B2 (ja) 2010-09-15

Family

ID=37591012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005189942A Expired - Fee Related JP4546339B2 (ja) 2005-06-29 2005-06-29 乱数生成装置及び乱数生成方法

Country Status (2)

Country Link
US (1) US7788307B2 (ja)
JP (1) JP4546339B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8050404B2 (en) * 2008-12-29 2011-11-01 Nortel Networks Limited Bandwidth efficient method and system for obscuring the existence of encryption in a communications channel
WO2010134197A1 (ja) * 2009-05-22 2010-11-25 株式会社 東芝 乱数生成回路およびこれを用いた暗号回路
US9201629B2 (en) 2013-03-14 2015-12-01 International Business Machines Corporation Instruction for performing a pseudorandom number seed operation
US8873750B2 (en) * 2013-03-14 2014-10-28 International Business Machines Corporation Instruction for performing a pseudorandom number generate operation
JP6176076B2 (ja) * 2013-11-22 2017-08-09 富士通株式会社 物理乱数生成装置、物理乱数生成方法、及び物理乱数生成システム
JP6323065B2 (ja) * 2014-02-26 2018-05-16 セイコーエプソン株式会社 マイクロコンピューター及び電子機器
JP6170476B2 (ja) * 2014-08-07 2017-07-26 日本電信電話株式会社 ハッシュ評価サーバ、ハッシュ評価システム及びハッシュ評価方法
JP2016178574A (ja) * 2015-03-23 2016-10-06 日本電気株式会社 復号装置、受信装置、送受信システムおよび復号方法
US10168994B2 (en) * 2017-04-11 2019-01-01 Intel Corporation Random number generator including entropy source
CN109656514B (zh) * 2017-10-11 2023-08-15 华邦电子股份有限公司 随机数产生系统及其随机数产生方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002268875A (ja) * 2001-03-12 2002-09-20 Nec Corp 乱数生成装置
JP2003131867A (ja) * 2001-08-15 2003-05-09 Syst Kogaku Kk 乱数生成装置
JP2004109420A (ja) * 2002-09-18 2004-04-08 Sony Corp 乱数生成装置及び乱数生成方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623545A (en) * 1995-08-31 1997-04-22 National Semiconductor Corporation Automatic data generation for self-test of cryptographic hash algorithms in personal security devices
KR100198451B1 (ko) * 1996-12-07 1999-06-15 이계철 비선형 함수를 이용한 의사 난수 발생방법 및장치
US6792438B1 (en) * 2000-03-31 2004-09-14 Intel Corporation Secure hardware random number generator
US7243117B2 (en) * 2001-02-07 2007-07-10 Fdk Corporation Random number generator and probability generator
JP3487300B2 (ja) 2001-07-17 2004-01-13 Fdk株式会社 1ビット乱数発生装置および多数ビット乱数発生装置ならびに確率発生装置
US7546327B2 (en) * 2003-12-22 2009-06-09 Wells Fargo Bank, N.A. Platform independent randomness accumulator for network applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002268875A (ja) * 2001-03-12 2002-09-20 Nec Corp 乱数生成装置
JP2003131867A (ja) * 2001-08-15 2003-05-09 Syst Kogaku Kk 乱数生成装置
JP2004109420A (ja) * 2002-09-18 2004-04-08 Sony Corp 乱数生成装置及び乱数生成方法

Also Published As

Publication number Publication date
US20070005672A1 (en) 2007-01-04
JP2007011579A (ja) 2007-01-18
US7788307B2 (en) 2010-08-31

Similar Documents

Publication Publication Date Title
JP4546339B2 (ja) 乱数生成装置及び乱数生成方法
JP4619117B2 (ja) 暗号用シード値生成方法およびシステム
KR100601706B1 (ko) Drm 시스템에 있어서 시스템 키를 공유하고 생성하는방법 및 장치
CN100416445C (zh) 用于将机密捆绑到具有硬件变化容限的计算机系统的系统
EP2434682A1 (en) Cryptographic apparatus and memory system
US8230234B2 (en) Semiconductor memory devices that are resistant to power attacks and methods of operating semiconductor memory devices that are resistant to power attacks
JP2018073245A (ja) 検査装置、検査システム、情報処理装置、検査方法およびコンピュータプログラム
JP2003536110A (ja) ウォーターマーク検出器
JP2008011202A (ja) フィルムグレイン処理回路
US7256715B1 (en) Data compression using dummy codes
CN114390317B (zh) 面向流式传输视频的加密方法及系统
JP4327169B2 (ja) 暗号化装置
JP4928795B2 (ja) 情報記録装置、画像形成装置、情報記録方法及び情報記録プログラム
JP2005512139A (ja) データ符号化
US8800017B2 (en) Method and apparatus for copy protecting a digital electronic device
JP2006318091A (ja) 乱数生成装置
CN113836955A (zh) 一种扫描枪输出配置方法、系统、电子设备及存储介质
EP1039370B1 (en) Modulo address generator and a method for implementing modulo addressing
WO2020121527A1 (ja) 学習識別装置、学習識別方法、及び、学習識別プログラム
JP4719068B2 (ja) 集積回路検査装置
JP2007183514A (ja) 情報処理装置及びプログラム
JPH10262041A (ja) 入力ビット列暗号化装置及び方法
JP4689539B2 (ja) データ処理装置およびその方法
CN102301413A (zh) 影像信号处理装置、影像信号处理系统及影像信号处理方法
JP4797680B2 (ja) 情報処理装置及び情報処理方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080625

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080625

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100223

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100423

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100629

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100701

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees