JPWO2005124537A1 - 乱数生成装置、生成方法、生成器評価方法、および乱数使用方法 - Google Patents
乱数生成装置、生成方法、生成器評価方法、および乱数使用方法 Download PDFInfo
- Publication number
- JPWO2005124537A1 JPWO2005124537A1 JP2006514628A JP2006514628A JPWO2005124537A1 JP WO2005124537 A1 JPWO2005124537 A1 JP WO2005124537A1 JP 2006514628 A JP2006514628 A JP 2006514628A JP 2006514628 A JP2006514628 A JP 2006514628A JP WO2005124537 A1 JPWO2005124537 A1 JP WO2005124537A1
- Authority
- JP
- Japan
- Prior art keywords
- random number
- number generation
- parameter
- randomness
- generated
- 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
- 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
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)
- Storage Device Security (AREA)
- Credit Cards Or The Like (AREA)
Abstract
非接触ICカードに搭載された場合のように、外部の影響を受けやすい環境においても乱数性が確保された乱数の生成を目的とする。乱数を生成する乱数生成手段と、乱数生成手段に乱数生成用のパラメータを与える乱数生成制御手段と、生成された乱数の乱数性を判定する乱数性判定手段とを備え、生成された乱数の乱数性があらかじめ定められた条件を満足しないとき、乱数生成制御手段が乱数生成用パラメータを更新して乱数生成手段に乱数の再生成を行わせる。
Description
本発明は乱数の生成方式に係り、さらに詳しくは、例えば非接触で電源の供給を受ける非接触ICカードに搭載され、外部からの影響を受けやすい乱数生成装置、および乱数生成方法などに関する。
本発明が対象とするICカードにおけるデータ処理装置では乱数を使用する場合が多い。ICカードは住民基本台帳やクレジットカードなどに代表される個人の認証のために使用されることが多く、認証機能では主に公開鍵暗号が使用されており、乱数が鍵の生成などに使用される。従来は、例えばソフトウェアを使用した擬似乱数が用いられているが、この場合には乱数の元になるシードの取得方法によっては生成する乱数に偏りが発生したり、一度生成された擬似乱数から次の乱数を生成する場合に値が予測されてしまうというような危険性が指摘されている。そのような問題点を回避するためにシードの取得方法を工夫して値が予測されにくくする方法や、熱雑音などの物理現象を利用した乱数生成器を搭載することなどが検討されている。
従来の乱数生成器によって生成された乱数の乱数性評価を行う場合には、乱数生成器単体の状態、すなわち乱数マクロのみに電源と信号を与えることによって生成された乱数の乱数性が評価されていた。しかしながら乱数生成器の動作は電源電圧などの動作条件や、サンプリング間隔などに影響され、発生する乱数に偏りが発生することがある。特に非接触ICカードでは、電磁波によってアンテナから供給される電源を使用するために、比較的に不安定な電源条件で動作することになり、またICカードとカードリーダライタとの位置関係にも影響を受ける可能性がある。
その結果、単体での評価で発生する乱数の乱数性が確認された乱数生成器を使用しても、電磁波によってアンテナから供給される電源を使用し、電源が不安定な非接触ICカードに搭載された状態などにおいては、乱数性が確保されているとは必ずしも判断できない場合があるという問題点があった。
このようなICカードなどにおける乱数の使用について次のような従来技術がある。
特開平03−294987号公報 「ICカードシステム」
特開2002−268874号公報 「乱数シード生成回路及びこれを備えたドライバ、並びに、SDメモリカードシステム」
特開2002−32732号公報 「可搬情報処理装置における擬似乱数取得方法」
特許文献1には、大容量の不揮発性メモリに複数個の乱数を格納する構成のICカードを用いてセキュリティ機能、およびメモリ機能を活用した新しいサービスを提供できるシステムが開示されている。
特許文献2には、カウンタのカウント値(乱数シード)をラッチするラッチに対する取込み信号を出力するパワーオンリセット回路の取込み信号の出力時点がまちまちとなるため、乱数シードを電源が投入されるたびに異なるものとできる乱数シード生成回路が開示されている。
特許文献3には、あらかじめ発生させた多数の乱数を、例えば不揮発性メモリに記憶させておき、乱数を必要とするときにメモリを参照することによって乱数を取得するまでの待ち時間を大幅に短縮できる乱数取得方法が開示されている。
しかしながらこのような従来技術においても、乱数生成器が非接触ICカードに搭載された場合などにおいて、外部からの影響によって生成された乱数の乱数性が充分に確保される可能性がないという問題点を解決することはできない。
本発明の第1の目的は、非接触ICカードに搭載された場合などのように、外部の影響を受けやすい環境においても乱数性が確保された乱数を生成する乱数生成装置、および生成方法を提供することである。
第2の目的は、ICカードに搭載される場合などのように、比較的短いビット長の乱数を生成する乱数生成器の評価方法、およびそのような乱数生成器によって生成された乱数の効果的な使用方法を提供することである。
本発明の乱数生成装置は、乱数を生成する乱数生成手段と、乱数生成手段に乱数を生成するためのパラメータを与える乱数生成制御手段と、生成された乱数の乱数性を判定する乱数性判定手段とを備えるものであり、生成された乱数の乱数性があらかじめ定められた条件を満足しないとき、乱数生成制御手段が前述のパラメータを更新して乱数生成手段に乱数の再生成を行わせるように動作する。
本発明の乱数生成方法では、乱数生成のためのパラメータをメモリから読出し、そのパラメータを用いて乱数を生成し、生成された乱数の乱数性があらかじめ定められた条件を満足するか否かを判定し、条件を満足しないとき乱数生成のためのパラメータを更新し、更新されたパラメータを用いて乱数を生成し、生成された乱数の乱数性判定以降を繰り返す方法が用いられる。
これによって乱数性の確保された乱数の生成が可能となり、そのような乱数を用いたデータ処理が可能となる。
次に本発明の乱数生成器評価方法は、20000ビットより小さいビット数の乱数を生成する乱数生成器を評価する方法であり、乱数生成器による乱数生成と、生成された乱数のメモリへの格納を繰返し、該メモリに格納された乱数の合計ビット数が20000ビットを超えたとき、該20000ビット以上のサンプルを対象として乱数性を判定し、該乱数性判定結果に応じて乱数生成器の評価を行う方法が用いられる。これによって、例えばFIPS140で規定されているような統計的判定方法を用いた乱数生成器の評価が可能となる。
次に本発明の乱数生成器評価方法は、20000ビットより小さいビット数の乱数を生成する乱数生成器を評価する方法であり、乱数生成器による乱数生成と、生成された乱数のメモリへの格納を繰返し、該メモリに格納された乱数の合計ビット数が20000ビットを超えたとき、該20000ビット以上のサンプルを対象として乱数性を判定し、該乱数性判定結果に応じて乱数生成器の評価を行う方法が用いられる。これによって、例えばFIPS140で規定されているような統計的判定方法を用いた乱数生成器の評価が可能となる。
次に本発明の乱数使用方法は、バイト長単位で使用される乱数の使用方法であり、生成した乱数をバイト単位でのデータ読み書き可能な不揮発性メモリに格納し、乱数を演算に使用するとき、必要なバイト長単位の未使用の乱数を該不揮発性メモリから読出して使用する方法が用いられる。これによってハードウェア的に同じ乱数が使用されることが制限され、乱数が予測される危険性を軽減することができる。
図1は、本発明の乱数生成装置の原理的な構成ブロック図である。同図において乱数生成装置1は少なくとも乱数生成部2、乱数生成制御部3、および乱数性判定部4を備える。
乱数生成部2は乱数を生成するものであり、乱数生成制御部3は乱数生成部2に対して乱数を生成するためのパラメータを与えるものであり、乱数性判定部4は生成された乱数の乱数性を判定するものである。そして乱数生成部2によって生成された乱数の乱数性があらかじめ定められた条件を満足しないと乱数性判定部4によって判定されたとき、乱数生成制御部3は前述のパラメータを更新して乱数生成部2に乱数の再生成を行わせる。
本発明においては、乱数生成装置1の起動時に乱数生成のために使用されるべき前述のパラメータとしてのデフォルトパラメータを記憶するパラメータ記憶部をさらに備え、乱数生成制御部3が乱数生成装置1の起動時にそのデフォルトパラメータを乱数生成部2に与えることもできる。
またこのパラメータ記憶部は、前述のパラメータとして前述のデフォルトパラメータを用いて生成された乱数の乱数性があらかじめ定められた条件を満たさないときに、乱数生成制御部3が前述のパラメータ更新において用いるべき更新用パラメータをさらに記憶することもでき、またパラメータ記憶部は生成された乱数が0と1のいずれに偏る可能性があるかを示す乱数性情報に対応させて、前述の更新用パラメータを複数個記憶するとともに、乱数性判定部4が判定結果として生成された乱数が0と1のいずれに偏っているかを示す判定情報を乱数生成制御部3に与え、乱数生成制御部3が与えられた判定情報に対応してパラメータ記憶部に記憶されている更新用パラメータを選択することもできる。
さらに乱数生成部2によって再生成された乱数の乱数性が前述の条件を満足したときには、乱数生成制御部3がパラメータ記憶部に格納されているデフォルトパラメータを該乱数の再生成に用いられたパラメータに書き換えることもできる。
また本発明においては乱数生成装置1は、非接触で外部から電源の供給を受けるICカードに搭載されることもできる。
次に本発明の乱数生成方法においては、乱数生成のためのパラメータをメモリから読出し、そのパラメータを用いて乱数を生成し、生成された乱数の乱数性があらかじめ定められた条件を満足しているか否かを判定し、その条件を満足しないときには乱数生成のためのパラメータとして更新用パラメータを読出し、その更新用パラメータを用いて乱数を生成し、生成された乱数の乱数性判定以降を繰り返す方法が用いられる。
次に本発明の乱数生成方法においては、乱数生成のためのパラメータをメモリから読出し、そのパラメータを用いて乱数を生成し、生成された乱数の乱数性があらかじめ定められた条件を満足しているか否かを判定し、その条件を満足しないときには乱数生成のためのパラメータとして更新用パラメータを読出し、その更新用パラメータを用いて乱数を生成し、生成された乱数の乱数性判定以降を繰り返す方法が用いられる。
また本発明において乱数を生成するための計算機によって使用されるプログラムとして、乱数生成のためのパラメータをメモリから読み出す手順と、該パラメータを用いて乱数を生成する手順と、生成された乱数の乱数性があらかじめ定められた条件を満足するか否かを判定する手順と、該条件を満足しないとき、乱数生成のためのパラメータとして更新用パラメータを読み出す手順と、該更新用パラメータを用いて乱数を生成し、該生成された乱数の乱数性の判定以降を繰り返す手順とを計算機に実行させるプログラムが用いられる。
次に本発明の乱数生成器評価方法は、20000ビットより小さいビット数の乱数を生成する乱数生成器の評価方法であり、乱数生成器による乱数の生成と、生成された乱数のメモリへの格納を繰返し、メモリに格納された乱数の合計ビット数が20000ビットを超えたとき、20000ビット以上のサンプルを対象として乱数性を判定し、その判定結果に応じて乱数生成器の評価を行うものである。
さらに本発明の乱数の使用方法は、バイト長単位で使用される乱数の使用方法であり、生成した乱数をバイト単位でのデータ読み書きが可能な不揮発性メモリに格納し、乱数を演算に使用するとき、必要なバイト長単位の未使用の乱数を該不揮発性メモリから読み出して使用する方法が用いられる。
図2は本発明におけるICカードの基本的な構成ブロック図である。同図においてICカード10は、ICカード10内での乱数生成を制御する乱数生成制御部11、乱数を生成する乱数生成器12、生成された乱数の乱数性を判定する乱数性判定部13、生成された乱数を用いて必要な演算を行う演算部14、乱数生成に用いられるパラメータなどを格納する不揮発性メモリ15、および外部機器との間の通信を行い、電力の供給を受けるため通信・電源制御部16を備えている。
図2において乱数生成制御部11は、デフォルト補正テーブルパラメータ設定部20、補正テーブルパラメータ更新部21、および乱数生成器制御回路22を備えている。また不揮発性メモリ(強誘電体RAM)15は、デフォルト補正テーブルパラメータ格納部23、補正テーブルパラメータ格納部24、および乱数データ格納部25を備えている。
ここで、本発明の請求の範囲1における乱数生成手段は乱数生成器制御回路22、および乱数生成器12に相当し、乱数生成制御手段はデフォルト補正テーブルパラメータ設定部20および補正テーブルパラメータ更新部21に相当し、また請求の範囲2などにおけるパラメータ記憶手段は、デフォルト補正テーブルパラメータ格納部23および補正テーブルパラメータ格納部24に相当する。
ICカード10の起動時には、乱数生成器12による乱数生成はデフォルト補正テーブルパラメータを乱数生成用のパラメータとして実行される。すなわちデフォルト補正テーブルパラメータ格納部23から読み出されたデフォルトパラメータが、デフォルト補正テーブルパラメータ設定部20によって乱数生成器制御回路22に対して設定され、乱数生成器制御回路22によって乱数生成器12の動作が制御される。生成された乱数に対しては、乱数性判定部13によってその乱数性を示すデータ、例えば0、または1の乱数内での出現回数が予め定められた条件を満足しているか否かが判定され、満足している時には終了フラグが乱数生成制御部11と演算部14とに通知され、生成された乱数は乱数データ格納部25に格納され、そのまま演算部14によって演算に使用される。
条件を満足していない時には、例えばエラーフラグによってその乱数を使用できないことが演算部14と乱数生成制御部11に通知される。乱数生成制御部11内の補正テーブルパラメータ更新部21は、不揮発性メモリ15内の補正テーブルパラメータ格納部24に格納されている補正テーブルパラメータを、デフォルト補正テーブルパラメータの代わりに乱数生成器制御回路22に設定し、その結果に対応して乱数生成器12によって再び乱数が生成され、再生成された乱数を対象として乱数性判定部13によって乱数性が定められた条件を満足しているか否かが判定され、満足している場合にはその乱数は乱数データ格納部25に格納されるとともに、演算部14によってその乱数を使用した演算が実行される。そして乱数の再生成に使用された補正テーブルパラメータの値が不揮発性メモリ15のデフォルト補正テーブルパラメータ格納部23に上書きされて、デフォルト補正テーブルパラメータの更新が行われる。
再生成された乱数も予め定められた条件を満足しない場合には、前述と同様にパラメータの更新が行われ、乱数の再生成以後の動作が実行される。このように乱数の再生成が行われる場合には、デフォルト補正テーブルパラメータ格納部23の格納内容は、その乱数性が条件を満足する乱数が生成された時点で上書きされて更新され、ICカード10の再起動後にはその更新されたデフォルト補正テーブルパラメータが再起動直後の乱数生成に使用されることになる。なお、補正テーブルパラメータを不揮発性メモリに格納することにより、外部からの補正テーブルパラメータの追加・更新が容易に可能となる。
図3はICカードの第1の実施例の構成ブロック図である。同図を図2の基本構成図と比較すると通信・電源制御部16の代わりに非接触通信部27が備えられている点と、乱数生成器12が熱雑音発生素子29、増幅器30、およびサンプリング回路31によって構成され、乱数性判定部13がカウンタ33、比較判定回路34、および乱数格納バッファ35によって構成されている点が異なっている。
非接触通信部27は非接触ICカードリーダ/ライタとの間で通信を行うと同時に、リーダ/ライタからの電磁波を受信してICカード用の直流電源を生成し、ICカード10を起動するとともに、各部のリセットを行うためのパワーオンリセット信号の生成を行うものである。非接触で電力の供給を受けるため、電源条件が必ずしも安定ではなく、生成される乱数の乱数性が問題となる可能性がそれだけ大きいと言える。
乱数生成器12を構成する熱雑音発生素子29、増幅器30、およびサンプリング回路31は、乱数生成制御部11内の乱数生成器制御回路22によって制御され、乱数発生を行うものであるが、その動作についてはさらに後述する。
また乱数性判定部13内のカウンタ33は、生成された乱数の乱数性を判定するために生成された乱数内の0、または1の出現回数をカウントするものであり、比較判定回路34はその出現回数が予め定められた条件を満足しているか否かを判定するものであり、乱数格納バッファ35は生成された乱数を一時的に格納するものであるが、これらの動作についてもさらに後述する。
図4はICカードの第2の実施例の構成ブロック図である。同図において、第1の実施例を示す図3の非接触通信部27の代わりに、接触通信・電源制御部37が備えられている点が第1の実施例と異なっている。この接触通信・電源制御部37は、接触型ICカードリーダ/ライタとの間で通信を行うと同時に、リーダ/ライタ側から接触状態で電源とクロックの供給を受け、外部からのリセット信号を受けることによってICカードの動作が開始される。したがって電源条件は図3で説明した非接触通信部27を用いる第1の実施例におけるより安定しており、乱数生成に用いられるパラメータ、すなわち補正テーブルパラメータの値も第1の実施例とは異なったものとなる可能性がある。例えばICカードリーダ/ライタとの間で接触通信と非接触通信の両方を行うことができるコンビカードの場合などは、接触/非接触の条件に応じて補正テーブルパラメータの値を設定することもできる。
図5はICカードの第3の実施例の構成ブロック図である。同図において通信・電源制御部16は、図2の基本回路と同様であり、図3の非接触通信部27、または図4の接触通信・電源制御部37のいずれを用いても良い。この第3の実施例においては、第1、第2の実施例とは異なり、不揮発性メモリ15の内部に設けられていた補正テーブルパラメータ格納部24が、読出専用メモリ(ROM)37の内部の補正テーブルパラメータ格納部38として実現されており、不揮発性メモリ15より集積度の大きいROMに多くの補正テーブルパラメータを格納し、不揮発性メモリ15の使用容量を削減することが可能となる。
図6はICカードの第4の実施例の構成ブロック図である。同図を、例えば第1の実施例を示す図3と比較すると、乱数生成器制御回路22が乱数生成器の電源を制御するための電源制御用カウンタ45、乱数生成器による乱数の出力を制御するための出力制御用カウンタ46、乱数生成器内のサンプリング回路31によるサンプリング周波数を設定するためのサンプリング周波数設定レジスタ47、および乱数の再生成を行う時に再生成フラグが格納される再生成フラグ格納部48を備えており、また乱数生成器12の内部に電源制御回路41を備えている点が異なっている。
図7は、例えば図6の第4の実施例における、乱数生成制御部11による乱数生成器12の制御方式の説明図である。同図における制御動作を図8から図10に示される補正テーブルパラメータを用いて説明する。
乱数生成制御部11に対しては、例えば図6の通信・電源制御部16からパワーオンリセット(PONRST)信号と、クロック(CLK)信号とが与えられ、例えば16ビットの電源制御用カウンタ45は、コントロールレジスタ49に対して入力された補正テーブルパラメータとしてのt0のカウントを開始する。
図8はこの乱数生成のための補正テーブルパラメータの説明図である。同図においてICカードの電源Vcが投入されてからt0時間後、乱数生成器12の電源Vrを投入するものとし、またその電源が投入されてから、時間t1の経過後に乱数生成器の出力が安定してから乱数生成を行うためのサンプリングを開始し、そのサンプリング終了後に乱数生成器12の電源Vrをオフするものとし、乱数生成のためのサンプリングの周波数をfとして乱数を生成するものとする。
図9は、例えば図2の補正テーブルパラメータ格納部24に格納されている補正テーブルパラメータの格納形式を示す。図8に対応して時間t0、t1、およびサンプリング周波数fの組が、一般に複数組格納されている。
図10は図9における、例えば1行分の補正テーブルパラメータのデータフォーマットの例である。図8における時間t0とt1との値を、例えば10msに設定するものとし、クロックの周波数を3.57MHzとすると、t0とt1とに対応するカウント回数は35,700回となり、t0とt1との格納領域として16ビットずつが必要である。またサンプリング周波数としては、例えば50kHz、100kHz、250kHzなどいくつかの周波数を設定しておき、その中から選択して補正テーブルパラメータとして組み合わせることとすれば、例えば周波数fの格納領域として4ビットを用意することにより、16段階のサンプリング周波数の設定が可能となる。図10における補正テーブルパラメータの格納領域の全体の長さを64ビットとすれば、リザーブとして28ビットが残される。
なお図8において時間t0、およびt1が充分大きくなく、またサンプリング周波数fが大きい場合などは生成される乱数が0または1に偏りやすくなる。このような乱数生成器の特性を事前に評価し、図9に格納されている補正テーブルパラメータの組に対応して乱数生成器の特性、すなわち0と1のいずれの発生率が多くなるかの特性(乱数性の判定情報)を事前に調べ、補正テーブルパラメータに対応してその判定結果を格納しておくことが有効である。これによって生成された乱数の乱数性判定結果に応じて乱数性を改善するための補正テーブルパラメータの選択が可能となる。すなわち、生成された乱数が0に偏っていた場合には、1の発生率が多くなる補正テーブルパラメータを選択して乱数の再生成を行うことになる。
図7において補正テーブルパラメータ、すなわちt0、t1、およびfの値は、コントロールレジスタ49を介してそれぞれ電源制御用カウンタ45、出力制御用カウンタ46、サンプリング周波数設定レジスタ47に与えられる。
乱数生成器12側ではパワーオンリセットの後にカウンタ45のカウント値がt0に相当するカウント値に達した時点で乱数生成器12の電源がオンとされ、熱雑音発生素子29の出力が増幅器30によって増幅され、サンプリング回路31に与えられる。その後カウンタ46が時間t1に相当する回数だけカウントを行った時点でサンプリング回路31が増幅器30の出力のサンプリングを開始し、サンプリング周波数設定レジスタ47によって設定された周波数を用いてサンプリングを行い、出力SOUTを乱数性判定部13に出力する。
図11は、乱数性判定部13の動作を説明するためのブロック図である。乱数性判定部13は、乱数生成器12から出力された乱数が格納される乱数格納バッファ35、乱数生成器12の出力のうちの0または1のいずれかの生成回数をカウントするカウンタ33、カウンタ33の出力と乱数生成制御部11から与えられる乱数性判定のための比較値が設定されたレジスタ51の内容とを比較して、乱数性の判定を行うための比較判定回路34を備える。比較判定回路34による判定結果は、乱数生成制御部11に対してフィードバックされ、乱数生成器12から出力された乱数が使用可能か否かが通知される。
図11で乱数生成器12によって生成された乱数の乱数性判定方法について説明する。この乱数性判定の規格の1つとして、米国立標準技術研究所による規格FIPS(フェデラル・インフォメーション・プロセシング・スタンダーズ)140がある。この規格における乱数性判定のためのテストとしてモノビット(monobit)テスト、ポーカー(poker)テスト、ラン(runs)テスト、ロングラン(long runs)テストなどいくつかのテスト方法が規定されている。
本実施形態では、そのようなテストの1つとしてのモノビットテストを基準の考え方として、生成された乱数の乱数性を判定するものとする。このモノビットテストでは、20000ビットのサンプルストリームのうちの1の数をカウントし、その数Xが次式を満足するときテストに合格するものとされている。
9654 <X< 10346
しかしながら、本実施形態のようにICカードに搭載された乱数生成器では、生成される乱数の長さはせいぜい1024ビット程度であり、この1024ビットをモノビットテストの20000ビットに対応させて、1024ビットの中の1または0のいずれかの発生数Xが次式を満足するときにテストに合格したものと判定する。
しかしながら、本実施形態のようにICカードに搭載された乱数生成器では、生成される乱数の長さはせいぜい1024ビット程度であり、この1024ビットをモノビットテストの20000ビットに対応させて、1024ビットの中の1または0のいずれかの発生数Xが次式を満足するときにテストに合格したものと判定する。
495 <X< 529
そこで図11において、乱数生成器12によって生成された乱数を対象として1または0の数をカウンタ33でカウントした時に、そのカウント値が比較値設定レジスタ51に設定されている495から529の間に入っていることが比較判定回路34によって判定された場合、生成された乱数が使用可能なものと判定される。
そこで図11において、乱数生成器12によって生成された乱数を対象として1または0の数をカウンタ33でカウントした時に、そのカウント値が比較値設定レジスタ51に設定されている495から529の間に入っていることが比較判定回路34によって判定された場合、生成された乱数が使用可能なものと判定される。
図12は以上で説明した本実施形態における乱数生成処理の全体フローチャートである。同図において処理が開始されると、まずステップS1で不揮発性メモリ15内のデフォルト補正テーブルパラメータ格納部23からパラメータの初期設定値としてt0、t1、およびfの値が読み出され、ステップS2でt0の設定値を用いて乱数生成器12に対する電源制御信号が図7の電源制御用カウンタ45を介して生成され、ステップS3でt1の設定値を用いて出力制御用カウンタ46を介してサンプリング回路31に対する出力制御信号が生成され、またfの設定値を用いてサンプリング周波数設定レジスタ47を介してサンプリング周波数制御信号が生成され、サンプリング回路31に与えられる。
その結果としてステップS4で乱数生成器12から乱数が出力され、ステップS5で乱数性判定部13によって前述のような方法で乱数性が判定され、その判定結果が乱数生成制御部11に通知されるが、乱数性判定結果がOKである場合にはステップS6で乱数の再生成を行っていないか、すなわち例えばデフォルトのパラメータを使った乱数生成時に乱数性が不適切と判定され、他のパラメータを用いた乱数再生成を行っていないかが判定され、行っていない場合にはステップS7でその乱数が不揮発性メモリ15の乱数データ格納部25に格納されて、その後ICカードにおける処理が継続される。
ステップS5で乱数性判定結果がNGである場合には、ステップS8で不揮発性メモリ15内の補正テーブルパラメータ格納部24から新しいパラメータ、すなわち設定値t0’、t1’、f’が選択され、乱数生成制御部11内の補正テーブルパラメータ更新部21によって乱数生成器制御回路22に対してその新しい設定値が与えられ、また再生成フラグ格納部48に再生成フラグが立てられ、ステップS2以降の処理が行われる。
またステップS6で乱数の再生成を行っていないかの判定がNG、すなわち乱数の再生成が行われている場合には、ステップS9で不揮発性メモリ15のデフォルト補正テーブルパラメータ格納部23に最新の補正テーブルパラメータ、すなわち現時点で出力された乱数の生成に用いられた補正テーブルパラメータが上書きされて、再生成フラグ格納部48の再生成フラグが落とされた後、ステップS7で乱数の格納が行われる。
次に本実施形態における乱数使用方法として、例えば図2の不揮発性メモリ15の乱数データ格納部25にあらかじめ多くの乱数を格納しておき、演算に使用した乱数は、例えば消去して、その再使用を防止し、同一の乱数が使用されることをハードウェア的に制御する方法を用いることができる。
不揮発性メモリ15として、バイト単位でのデータ格納と消去が可能な強誘電体メモリを使用し、あらかじめ多数の乱数を生成してそのデータをメモリに格納し、使用された乱数の格納部をアクセス不可とする。すべての乱数データが使用された後に乱数の再生成と格納を行うことにより、ICカードの処理において乱数が予測される危険性を低減することができる。
最後に本実施形態における乱数生成器自体の評価について図13を用いて説明する。この乱数生成器自体の評価では、前述のようにICカードに搭載された乱数生成器が1024ビット程度の乱数を生成するものであり、これに対して前述のようにFIPS140に規定された、例えばモノビットテストでは20000ビットのサンプルに対する乱数性が判定されるために、図13のICカードにおいても1024ビットの乱数生成を繰返し、合計20000ビットの乱数が生成された時点でその20000ビットをサンプルとして乱数性の判定を行い、これによって乱数生成器自体の評価を行うものとする。
すなわち図13において、例えば演算部14から乱数生成制御部11に対して乱数生成器自体の評価の開始コマンドが発行されることで処理が開始され、乱数生成制御部11によってデフォルトの補正テーブルパラメータが乱数生成器制御回路22に設定された後に乱数生成器12が起動され、生成された乱数は乱数データ格納部25に格納される。乱数生成器12は同じパラメータを使用して乱数生成を繰返し、20000ビット以上の乱数が乱数データ格納部25に格納された時点で乱数性判定部13が起動され、乱数性判定部13は、例えばFIPS140に規定されているモノビットテストによって、あるいはポーカーテスト、ランテスト、ロングランテストのいずれかによって乱数性を判定し、判定結果を演算部14に通知する。このような乱数生成器自体の評価は、乱数生成器12の単体マクロと制御/判定回路に対する評価であり、基本的には非接触での電力供給など、乱数生成器が外部から影響を受ける要因を排除して行われ、デフォルト補正テーブルパラメータを用いた乱数生成器12の動作自体の評価が行われる。
以上の説明では、補正テーブルパラメータとして、例えば図8で説明したようにカード電源の立ち上がりから乱数生成器電源の立ち上がりまでの時間t0、乱数生成器電源の立ち上がりから乱数生成器の動作が安定するまでの安定時間t1、および乱数を取得するためのサンプリング周波数fの3つが規定されているが、例えば乱数生成器の電源電圧、すなわち電源電圧Vrの値そのものをパラメータとして乱数生成を行うこともできる。
また乱数性の判定については、FIPS140のモノビットテストに準じて判定を行うものとしたが、ポーカーテスト、ランテスト、またはロングランテストに準じた判定を行うこともできる。
さらに図12で説明したように、不揮発性メモリに保存されているデフォルト補正テーブルパラメータは、パラメータが更新されて生成された乱数に対する乱数性判定結果がOKの時にはその更新が行われるものとした。これは最新の通信環境に対応するパラメータをデフォルト補正テーブルパラメータとして次の乱数生成器起動時に使用するためであるが、通信条件が頻繁に変化するような使用方法などにおいては、デフォルト補正テーブルパラメータの更新を行わない実施形態も当然考えられる。
本発明は、乱数生成器が搭載されたICカードを用いる全ての産業において利用することが可能であり、また必ずしもICカードだけでなく、外部からの影響を受けやすい環境で使用される乱数生成器を利用する全ての産業において利用可能である。
Claims (14)
- 乱数を生成する乱数生成手段と、
該乱数生成手段に乱数を生成するためのパラメータを与える乱数生成制御手段と、
該生成された乱数の乱数性を判定する乱数性判定手段とを備え、
生成された乱数の乱数性があらかじめ定められた条件を満足しないとき、前記乱数生成制御手段が前記乱数生成のためのパラメータを更新して乱数生成手段に乱数の再生成を行わせることを特徴とする乱数生成装置。 - 請求の範囲1記載の乱数生成装置において、
該乱数生成装置の起動時に乱数生成のために使用されるべき前記パラメータとしてのデフォルトパラメータを記憶するパラメータ記憶手段をさらに備え、
前記乱数生成制御手段が、該乱数生成器の起動時に該デフォルトパラメータを前記乱数生成手段に与えることを特徴とする乱数生成装置。 - 請求の範囲2記載の乱数生成装置において、
前記パラメータ記憶手段が、前記デフォルトパラメータを用いて生成された乱数の乱数性が前記あらかじめ定められた条件を満足しないとき、前記乱数生成制御手段による前記パラメータ更新に用いられるべき更新用パラメータをさらに記憶することを特徴とする乱数生成装置。 - 請求の範囲3記載の乱数生成装置において、
前記パラメータ記憶手段が、0と1のいずれに乱数が偏る可能性があるかを示す乱数性情報に対応させて前記更新用パラメータを複数個記憶するとともに、
前記乱数性判定手段が、生成された乱数が0と1のいずれに偏っているかを示す判定情報を前記乱数生成制御手段に与え、該乱数生成制御手段が該与えられた判定情報と前記乱数性情報とに対応してパラメータ記憶手段に記憶されている更新用パラメータを選択することを特徴とする乱数生成装置。 - 請求の範囲2記載の乱数生成装置において、
前記乱数生成手段によって再生成された乱数の乱数性が前記あらかじめ定められた条件を満足したとき、前記乱数生成制御手段が前記パラメータ記憶手段に格納されているデフォルトパラメータを該乱数再生成に用いられたパラメータに書き換えることを特徴とする乱数生成装置。 - 請求の範囲2記載の乱数生成装置において、
前記パラメータ記憶手段が不揮発性メモリによって構成されることを特徴とする乱数生成装置。 - 請求の範囲1記載の乱数生成装置において、
前記乱数の再生成が行われるとき、該再生成を示すフラグを格納する再生成フラグ格納手段をさらに備えることを特徴とする乱数生成装置。 - 請求の範囲1記載の乱数生成装置において、
前記乱数生成のためのパラメータが、前記乱数生成手段に対する電源電圧印加後の経過時間、および乱数生成のためのサンプリングの周波数を含むことを特徴とする乱数生成装置。 - 請求の範囲1記載の乱数生成装置が、非接触で外部から電源の供給を受けるICカードに搭載されることを特徴とする乱数生成装置。
- 乱数生成のためのパラメータをメモリから読出し、
該パラメータを用いて乱数を生成し、
該生成された乱数の乱数性があらかじめ定められた条件を満足するか否かを判定し、
該条件を満足しないとき、乱数生成のためのパラメータとして更新用パラメータを読出し、
該更新用パラメータを用いて乱数を再生成し、該再生成された乱数の乱数性判定以降を繰り返すことを特徴とする乱数生成方法。 - 乱数を生成する計算機によって使用されるプログラムであって、
乱数生成のためのパラメータをメモリから読出す手順と、
該パラメータを用いて乱数を生成する手順と、
該生成された乱数の乱数性があらかじめ定められた条件を満足するか否かを判定する手順と、
該条件を満足しないとき、乱数生成のためのパラメータとして更新用パラメータを読出す手順と、
該更新用パラメータを用いて乱数を再生成し、該再生成された乱数の乱数性判定以降を繰り返す手順とを計算機に実行させるプログラム。 - 20000ビットより小さいビット数の乱数を生成する乱数生成器の評価方法であって、
該乱数生成器による乱数の生成と、該生成された乱数のメモリへの格納とを繰返し、
該メモリに格納された乱数の合計ビット数が20000ビットを超えたとき、該20000ビット以上のサンプルを対象として乱数性の判定を行い、
該乱数性の判定結果に応じて前記乱数生成器の評価を行うことを特徴とする乱数生成器評価方法。 - バイト長単位で使用される乱数の使用方法であって、
生成した乱数をバイト単位でのデータ読み書き可能な不揮発性メモリに格納し、
乱数を演算に使用するとき、必要なバイト長単位の未使用の乱数を該不揮発性メモリから読み出して使用することを特徴とする乱数使用方法。 - 請求の範囲13記載の乱数使用方法において、
前記不揮発性メモリが強誘電体メモリによって構成されることを特徴とする乱数使用方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2004/008611 WO2005124537A1 (ja) | 2004-06-18 | 2004-06-18 | 乱数生成装置,生成方法,生成器評価方法、および乱数使用方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2005124537A1 true JPWO2005124537A1 (ja) | 2008-04-17 |
Family
ID=35509884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006514628A Pending JPWO2005124537A1 (ja) | 2004-06-18 | 2004-06-18 | 乱数生成装置、生成方法、生成器評価方法、および乱数使用方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20070067375A1 (ja) |
EP (1) | EP1758020A4 (ja) |
JP (1) | JPWO2005124537A1 (ja) |
WO (1) | WO2005124537A1 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102005042135B3 (de) * | 2005-09-05 | 2006-08-31 | Infineon Technologies Ag | Vorrichtung und Verfahren mit Computerprogramm zur Zufallszahlenerzeugung mit Schiefenregelung und algorithmischer Nachbearbeitung |
US7945790B2 (en) * | 2006-12-04 | 2011-05-17 | Intel Corporation | Low-cost pseudo-random nonce value generation system and method |
JP2008171034A (ja) * | 2007-01-05 | 2008-07-24 | Hitachi Ltd | プログラムの作成支援装置、その作成支援プログラム及びその作成支援方法 |
US8316069B2 (en) * | 2007-10-12 | 2012-11-20 | Sanyo Semiconductor Co., Ltd. | Semiconductor integrated circuit with a random number generation circuit wherein the rise and all times are variably controlled |
US8332448B2 (en) * | 2007-10-12 | 2012-12-11 | Sanyo Semiconductor Co., Ltd. | Semiconductor integrated circuit having a random number and oscillator circuit for variably controlling stored data |
TWI362611B (en) * | 2007-12-12 | 2012-04-21 | Phison Electronics Corp | Random number generator and random number generating method thereof |
US9292259B2 (en) * | 2008-08-06 | 2016-03-22 | Cassy Holdings Llc | Uncertainty random value generator |
KR101104985B1 (ko) * | 2009-11-06 | 2012-01-16 | 양창근 | 난수 생성 방법 및 시스템 |
CN103874983B (zh) * | 2011-10-11 | 2018-06-08 | 英特尔公司 | 用于众包自动数据收集的自动代码产生 |
KR20130080203A (ko) * | 2012-01-04 | 2013-07-12 | 삼성전자주식회사 | 셀 상태들의 비대칭 특성을 고려한 프로그램 데이터를 생성하는 방법 및 그것을 이용한 메모리 시스템 |
EP2822218A1 (en) * | 2012-03-02 | 2015-01-07 | Sony Corporation | Information processing device, information processing method, and program |
EP2822217A4 (en) * | 2012-03-02 | 2015-11-11 | Sony Corp | INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD, AND PROGRAM |
KR101373283B1 (ko) | 2012-04-23 | 2014-03-11 | 한국전자통신연구원 | 비휘발성 메모리를 이용한 이중 트랙 방식의 난수 발생 방법 및 이를 위한 장치 |
JP5759932B2 (ja) * | 2012-05-24 | 2015-08-05 | 株式会社エヌ・ティ・ティ・データ | 鍵データ生成装置、鍵データ生成方法、及びプログラム |
KR101443575B1 (ko) | 2013-04-29 | 2014-09-23 | 한국전자통신연구원 | 이진 난수열을 정수 난수로 변환하는 장치 및 방법 |
KR102198499B1 (ko) * | 2013-12-31 | 2021-01-05 | 주식회사 아이씨티케이 홀딩스 | 디지털 값 처리 장치 및 방법 |
KR101557761B1 (ko) * | 2014-02-12 | 2015-10-06 | 한국전자통신연구원 | 실난수 발생기의 출력 수열 안정화 장치 및 방법 |
JP6388235B2 (ja) * | 2014-05-21 | 2018-09-12 | パナソニックIpマネジメント株式会社 | データ生成装置およびデータ生成方法 |
US10216484B2 (en) * | 2014-06-10 | 2019-02-26 | Texas Instruments Incorporated | Random number generation with ferroelectric random access memory |
US10096379B2 (en) | 2014-10-24 | 2018-10-09 | Megachips Corporation | Memory device and method for testing reliability of memory device |
JP2016085337A (ja) * | 2014-10-24 | 2016-05-19 | 株式会社メガチップス | 半導体装置、半導体記憶装置、及び半導体装置の信頼性テスト方法 |
JP6453610B2 (ja) * | 2014-10-24 | 2019-01-16 | 株式会社メガチップス | 記憶装置、及び記憶装置の信頼性テスト方法 |
JP6367108B2 (ja) * | 2014-12-19 | 2018-08-01 | ローム株式会社 | 擬似乱数生成装置 |
JP2022096222A (ja) | 2020-12-17 | 2022-06-29 | 富士通株式会社 | 乱数生成プログラムおよび乱数生成方法 |
JP2023025621A (ja) * | 2021-08-10 | 2023-02-22 | ルネサスエレクトロニクス株式会社 | 半導体装置および乱数の生成方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07182145A (ja) * | 1993-12-22 | 1995-07-21 | Ricoh Co Ltd | 乱数の初期値生成装置 |
JP3496547B2 (ja) * | 1998-12-16 | 2004-02-16 | 株式会社デンソー | 車両盗難防止装置 |
JP3447976B2 (ja) * | 1999-03-26 | 2003-09-16 | システム工学株式会社 | 故障判断機能を備えた乱数生成装置 |
JP2001005384A (ja) * | 1999-06-24 | 2001-01-12 | Matsushita Electric Ind Co Ltd | 乱数生成方法 |
JP2002268874A (ja) * | 2001-03-07 | 2002-09-20 | Toshiba Corp | 乱数シード生成回路及びこれを備えたドライバ、並びに、sdメモリカードシステム |
JP2003131867A (ja) * | 2001-08-15 | 2003-05-09 | Syst Kogaku Kk | 乱数生成装置 |
US6993543B2 (en) * | 2002-04-22 | 2006-01-31 | Koninklijke Philips Electronics N.V. | Gap histogram on-line randomness test |
-
2004
- 2004-06-18 WO PCT/JP2004/008611 patent/WO2005124537A1/ja not_active Application Discontinuation
- 2004-06-18 JP JP2006514628A patent/JPWO2005124537A1/ja active Pending
- 2004-06-18 EP EP04746113A patent/EP1758020A4/en not_active Withdrawn
-
2006
- 2006-11-20 US US11/601,775 patent/US20070067375A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP1758020A4 (en) | 2008-11-26 |
EP1758020A1 (en) | 2007-02-28 |
WO2005124537A1 (ja) | 2005-12-29 |
US20070067375A1 (en) | 2007-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPWO2005124537A1 (ja) | 乱数生成装置、生成方法、生成器評価方法、および乱数使用方法 | |
FI112713B (fi) | Suojattu muistikortti, johon on ohjelmoitu ohjattu ja suojattu pääsynvalvonta | |
CN101243451B (zh) | 保护嵌入式存储器的访问的方法和装置 | |
US8250288B2 (en) | Flash memory storage system and controller and data protection method thereof | |
JPH02210590A (ja) | データを記憶し処理するための携帯可能なデータ担体 | |
JP2000222176A (ja) | 乱数生成回路、当該乱数生成回路を内蔵する非接触icカード及びリーダ/ライタ、並びに、当該乱数生成回路を内蔵する装置のテスト方法 | |
US20070299894A1 (en) | Random number generating apparatus, random number generating control method, memory access control apparatus, and communication apparatus | |
US8019927B2 (en) | Electronic tag system having bank status and controlling method thereof | |
KR101783526B1 (ko) | Ic 카드, 전자 장치 및 휴대 가능 전자 장치 | |
EP1421478A1 (en) | Method and apparatus for linking converted applet files | |
JP2007004456A (ja) | 携帯可能電子装置及び携帯可能電子装置のデータ出力方法 | |
KR20070018986A (ko) | 난수 생성 장치, 생성 방법, 생성기 평가 방법 및 난수사용 방법 | |
JP5278813B2 (ja) | リアルタイムクロックおよび電子機器のセキュリティ設定方法 | |
JP2006195901A (ja) | 半導体装置 | |
JP4460850B2 (ja) | Icカードとicカードの処理方法 | |
JP2005531842A (ja) | 不揮発性メモリへの書き込み方法およびこの方法を実現するシステム | |
US20070274302A1 (en) | Data Storage Device, Memory Managing Method, and Program | |
JP3882628B2 (ja) | メモリ制御装置及びシリアルメモリ | |
JP2004185419A (ja) | 携帯可能電子媒体と、その携帯可能電子媒体の発行システム、処理方法及び発行方法 | |
GB2263348A (en) | Securing program code. | |
JP2004334745A (ja) | Icカード | |
KR20000068374A (ko) | 메인 파일과 보조 파일간의 링크를 생성하는 수단을 구비하는 보안 모듈 | |
JP4810108B2 (ja) | Icカードとその制御方法 | |
KR101258837B1 (ko) | Ic 칩 및 이에 대한 데이터 기록 방법 | |
JP2010191577A (ja) | Icカード、セキュリティシステム及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080730 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081111 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090113 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090210 |