JP2004157168A - 乱数生成装置 - Google Patents

乱数生成装置 Download PDF

Info

Publication number
JP2004157168A
JP2004157168A JP2002320035A JP2002320035A JP2004157168A JP 2004157168 A JP2004157168 A JP 2004157168A JP 2002320035 A JP2002320035 A JP 2002320035A JP 2002320035 A JP2002320035 A JP 2002320035A JP 2004157168 A JP2004157168 A JP 2004157168A
Authority
JP
Japan
Prior art keywords
random number
shift register
output
pseudo
number generation
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
JP2002320035A
Other languages
English (en)
Inventor
Masato Meya
正人 女屋
Haruaki Tamaoki
晴朗 玉置
Akira Iketani
昭 池谷
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.)
MATHEMATICAL DESIGN RES INST
MATHEMATICAL DESIGN RESEARCH INSTITUTE
Sanyo Electric Co Ltd
Sanyo Semicon Device Co Ltd
Original Assignee
MATHEMATICAL DESIGN RES INST
MATHEMATICAL DESIGN RESEARCH INSTITUTE
Sanyo Electric Co Ltd
Sanyo Semicon Device Co Ltd
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 MATHEMATICAL DESIGN RES INST, MATHEMATICAL DESIGN RESEARCH INSTITUTE, Sanyo Electric Co Ltd, Sanyo Semicon Device Co Ltd filed Critical MATHEMATICAL DESIGN RES INST
Priority to JP2002320035A priority Critical patent/JP2004157168A/ja
Priority to TW092130446A priority patent/TWI240201B/zh
Priority to US10/533,256 priority patent/US20060123072A1/en
Priority to EP03770125A priority patent/EP1564927A1/en
Priority to PCT/JP2003/014055 priority patent/WO2004040838A1/ja
Publication of JP2004157168A publication Critical patent/JP2004157168A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/583Serial finite field implementation, i.e. serial implementation of finite field arithmetic, generating one new bit or trit per step, e.g. using an LFSR or several independent LFSRs; also includes PRNGs with parallel operation between LFSR and outputs
    • 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
    • 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/588Random number generators, i.e. based on natural stochastic processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Abstract

【課題】暗号化アルゴリズム等に用いられる乱数生成装置において、より安全性の高い乱数を生成する。
【解決手段】乱数生成装置10は、複数の異なる疑似乱数系列の乱数を出力可能な疑似乱数生成部12と、物理乱数を生成する物理乱数発生器14と、物理乱数発生器14の生成した物理乱数に基づいて疑似乱数生成部12の出力する乱数の疑似乱数系列を切り替える切替部16と、を備え、疑似乱数生成部12の出力を出力乱数とする。複数の異なる疑似乱数系列を物理乱数によって切り替えて出力するため、従来の疑似乱数のみを用いた乱数生成装置に比べて乱数の予測性を低減することができる。また、物理乱数を直接的な出力乱数としては用いないため、仮に外部から物理乱数生成手段に何らかの操作が加えられたとしても、出力乱数の予測性に対する影響は従来装置に比べてかなり小さくなる。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、乱数生成装置に関し、特に暗号化アルゴリズムに好適な乱数生成装置に関する。
【0002】
【従来の技術】
暗号化アルゴリズム等では、セキュリティの確保のために、しばしば乱数が用いられる。その場合の乱数としては、一般的に、M系列(Maximum length code:最長符号系列)等に代表される疑似乱数が用いられてきた。M系列符号は、公知の線形シフトレジスタ符号発生器によって生成することができる。
【0003】
また、上記疑似乱数以外の乱数として、原子核の崩壊現象がランダムとなることや電気雑音等の自然現象を利用して生成される物理乱数が知られている。暗号化アルゴリズム等においても、上記疑似乱数に替えて、この物理乱数を利用する場合もある(例えば、特許文献1参照。)
【0004】
【特許文献1】
特開2000−66592公報
【0005】
【発明が解決しようとする課題】
しかしながら、M系列等に代表される疑似乱数は、必ずしも安全性の高い乱数とは言えず、セキュリティ確保の面からは好ましくないところがある。疑似乱数は、一定の算術プロセスあるいは関数の組み合わせから生成されるため、同じ初期条件を与えれば同一の値となり、乱数の推定が可能となるからである。
【0006】
また、一般的に物理乱数は微弱な信号であるため、暗号化アルゴリズム等で使用するためには、通常、増幅器によって利用可能なレベルに増幅される。ところが、これら全体は電界や磁界によって影響を受ける場合があり、それらの意図的または意図せざる印加によって乱数の発生確率が操作され、安全性が低下してしまう場合があった。
【0007】
【課題を解決するための手段】
本発明にかかる乱数生成装置は、複数の異なる疑似乱数系列の乱数パターンを出力可能な疑似乱数生成手段と、物理乱数を生成する物理乱数生成手段と、上記物理乱数生成手段の生成した物理乱数に基づいて上記疑似乱数生成手段の出力する乱数の疑似乱数系列を切り替える切替手段と、を備える。すなわち、上記本発明にかかる乱数生成装置によれば、複数の異なる疑似乱数を物理乱数によって切り替えて出力するため、従来の疑似乱数のみを用いた乱数生成装置に比べて乱数の予測性を低減することができる。また、物理乱数を直接的な出力乱数としては用いていないため、仮に外部から物理乱数生成手段に何らかの操作が加えられたとしても、出力乱数の予測性に対する影響は従来装置に比べてかなり小さくなる。
【0008】
上記本発明にかかる乱数生成装置は、種々の形態によって実現することができる。例えば、上記本発明にかかる乱数生成装置は、上記疑似乱数生成手段が、線形シフトレジスタ符号発生器を含み、上記切替手段が、上記線形シフトレジスタ符号発生器への帰還入力値の反転/非反転を、上記物理乱数生成手段によって生成された物理乱数に基づいて切り替えるよう、構成することができる。
【0009】
また、上記本発明にかかる乱数生成装置は、上記疑似乱数生成手段は、線形シフトレジスタ符号発生器を含み、上記切替手段は、上記線形シフトレジスタ符号発生器からの出力値の反転/非反転を、上記物理乱数生成手段によって生成された物理乱数に基づいて切り替えるよう、構成することができる。
【0010】
また、上記本発明にかかる乱数生成装置は、上記疑似乱数生成手段が、線形シフトレジスタ符号発生器を含み、該線形シフトレジスタ符号発生器のタップの異なる組み合わせに基づく複数の帰還入力値を生成し、上記切替手段が、上記生成された複数の帰還入力値のうち該線形シフトレジスタ符号発生器に帰還入力する帰還入力値を、上記物理乱数生成手段で生成された物理乱数に基づいて切り替えるよう、構成することができる。
【0011】
また、上記本発明にかかる乱数生成装置は、上記疑似乱数生成手段が、所定のタップの組み合わせに基づく第一の帰還入力値を生成する線形シフトレジスタ符号発生器と、該第一の帰還入力値を受け取り上記線形シフトレジスタ符号発生器と同期して所定ビット数ビットシフトを行いその出力を第二の帰還入力値とするフリップフロップと、を含み、上記切替手段が、上記第一または第二の帰還入力値のうち上記線形シフトレジスタ符号発生器に帰還入力する帰還入力値を、上記物理乱数生成手段で生成された物理乱数に基づいて切り替えるよう、構成することができる。
【0012】
また、上記本発明にかかる乱数生成装置では、上記線形シフトレジスタ符号発生器の符号列を検出する検出手段を備え、上記切替手段は、有効なまたは切り替えによって有効となる疑似乱数系列の乱数が上記検出された符号列によっては生成不能である場合には、該疑似乱数系列以外の疑似乱数系列に切り替えるのが好適である。これにより、線形シフトレジスタ符号発生器において有効な疑似乱数系列に対して疑似乱数の生成されない符号列となるのが抑制される。
【0013】
また、上記本発明にかかる乱数生成装置では、上記線形シフトレジスタ符号発生器の符号列を検出する検出手段と、有効なまたは切り替えによって有効となる疑似乱数系列の乱数が上記検出された符号列によっては生成不能である場合には、上記符号列のビット値のうち少なくとも一つを反転させるのが好適である。このような構成によっても、線形シフトレジスタ符号発生器において有効な疑似乱数系列に対して疑似乱数の生成されない符号列となるのが抑制される。
【0014】
【発明の実施の形態】
実施の形態1. 図1は本実施形態にかかる乱数生成装置10の構成図、図2は乱数生成装置10によって生成される二つのM系列の巡回パターンを示す図、また図3は物理乱数発生器14の構成図である。
【0015】
乱数生成装置10は、疑似乱数生成部12、物理乱数発生器14、および切替部16を含む。このうち疑似乱数生成部12は、少なくとも一つの線形シフトレジスタ符号発生器を含み、複数の異なる疑似乱数系列(例えば、M系列等)の乱数パターンを出力することができる。本実施形態では、縦続して接続された複数のフリップフロップを含むシフトレジスタ18と、所定の複数のタップ位置からの出力値の排他的論理和を出力するEXORゲート20と、が設けられており、これらにより、M系列の乱数を出力する線形シフトレジスタ符号発生器が構成されている。図1の例では、シフトレジスタ18は、17個のフリップフロップを有しクロック(CK)に応じてビットシフトする17段シフトレジスタとして構成され、入力側より第3番目と第17番目のフリップフロップからのタップ出力(Q出力;Q3,Q17)に基づいて帰還入力値(シフトレジスタ18のD1入力;「1」(ハイレベル)または「0」(ローレベル))が生成される。
【0016】
一般的な線形シフトレジスタ符号発生器では、EXORゲート20の出力がそのままシフトレジスタ18に帰還入力されるが、本実施形態では、EXORゲート20の出力は切替部16を経由してシフトレジスタ18に入力される。切替部16は、物理乱数発生器14からの物理乱数出力(バイナリコード)に基づいて、帰還入力値となるEXORゲート20からの出力値の反転/非反転を切り替える。すなわち、この物理乱数出力は、切替制御信号と言うことができる。図1の例では、切替部16は、EXORゲートとして構成される。EXORゲートは、二つの入力値が不一致であるときに「1」を出力し、一致するときに「0」を出力する。したがって、物理乱数出力値が「1」であるときは、切替部16においてEXORゲート20の出力値は反転され、他方、物理乱数出力値が「0」であるときは、反転されない。つまり、切替部16は、物理乱数出力値に応じて、EXORゲート20からの出力値を反転して帰還入力値とするか、あるいは反転させずにそのまま帰還入力値とするかを、切り替えていることになる。
【0017】
このような切替部16の動作により、疑似乱数生成部12は、異なる二つの疑似乱数系列を生成することができる。図1の例では、物理乱数出力値が「0」であるときは切替部16において帰還入力値は反転されないから、疑似乱数生成部12においてクロック信号(CK)に基づいて217−1サイクルで循環的に変化するM系列1−1(図2(a))が生成され、他方、物理乱数出力値が「1」であるときは、切替部16において帰還入力値が反転されるから、同じくクロック信号に基づいて217−1サイクルで循環的に変化するM系列1−2(図2(b))が生成される。なお、M系列1−1とM系列1−2とは、変化のパターンは同一であるが、符号が互いに逆となっており、異なる疑似乱数系列として取り扱うことができる。これにより、切替部16に与える切替信号が物理乱数で制御されるので、一方の疑似乱数系列を生成するシフトレジスタの途中情報を用いて、他方の疑似乱数系列から一方の疑似乱数系列に切り替えることにより、予測不可能な疑似乱数系列となる。また、二つの疑似乱数系列の「0」と「1」の頻度がそれぞれ216−1および216と、216および216−1の対称比率になるので、二つの疑似乱数系列を物理乱数によって切り替え制御すれば、「0」と「1」の頻度分布状態が理想状態に近づくという効果もある。
【0018】
図3に示すように、物理乱数発生器14は、物理乱数発生源14a、増幅回路14bおよび二値化回路14cを備える。このうち、物理乱数発生源14aは、自然現象に基づいてランダムに変化する信号を生じうるものであり、例えば、上記特許文献1に開示されるような、接合を含む電流路に生じる雑音信号を生じる半導体素子を含むものとすることができる。なお、これには限られず、放射性物質の崩壊を利用したもの等もこの物理乱数発生源14aとして用いることができる。物理乱数発生源14aにて生じた信号は、増幅回路14bにおいて増幅され、さらに二値化回路14cにおいて二値化処理される。二値化回路14cは、所定のサンプリングタイミングで、増幅された信号の振幅と所定の閾値とを比較し、例えば、増幅された信号の振幅が所定の閾値より高いときには「1」を、逆に低いときには「0」を出力する。こうして物理乱数発生器14により、「1」または「0」を示す所定電圧の物理乱数出力値が生成される。なお、二値化回路14cにおける閾値のレベルは任意に設定することができるが、通常は「1」および「0」の発生確率がほぼ1対1となるように設定される。なお、二値化回路14cにおいて、単に、増幅された信号の振幅を所定の閾値と比較して出力信号を発生するようにしてもよい。
【0019】
このように、本実施形態にかかる乱数発生装置10では、二つの異なる疑似乱数系列のうちどちらを出力するかを、物理乱数によって切り替えるだけではなく、シフトレジスタの途中情報を有効に利用して二つの疑似乱数系列の帰還状態を変化させている。こうすることで、疑似乱数のみを用いた場合に比べて、乱数の予測が難しくなる。また、物理乱数を直接的な出力乱数としては用いないため、仮に外部から物理乱数生成手段に何らかの操作が加えられたとしても、出力乱数の予測性に対する影響は従来装置に比べてかなり小さくなる。
【0020】
実施の形態2. 図4は本実施形態にかかる乱数生成装置30の構成図である。乱数生成装置30は、疑似乱数生成部32、物理乱数発生器14、および切替部36を含む。なお、ここでは、上記実施形態と同じ構成要素については同じ符号を付し、重複する部分の説明は省略する。
【0021】
本実施形態にかかる疑似乱数生成部32では、線形シフトレジスタ符号発生器からの出力値を、切替部36によって反転または非反転して出力乱数とする。図4の例では、シフトレジスタ18およびEXORゲート20を含む典型的な線形シフトレジスタ符号発生器が構成されており、シフトレジスタ18の所定ビット(例えば第17番目のビット)のQ出力およびQb出力(Q出力の反転出力)がそれぞれ切替部36に入力される。
【0022】
切替部36は、二つのANDゲート36a,36bを備えており、そのうち一方のANDゲート36aには、Qb出力と物理乱数発生器14からインバータ36cを介して物理乱数出力が入力され、もう一方のANDゲート36bには、Q出力と物理乱数発生器14からの物理乱数出力が入力される。そして、これら二つのANDゲート36a,36bの出力がORゲート36dに入力され、このORゲート36dの出力が出力乱数となる。
【0023】
この切替部36により、物理乱数出力に応じてQ出力あるいはQb出力のうちいずれか一方が有効となる。すなわち物理乱数出力値が「1」のときは、ANDゲート36aの出力値は必ず「0」となり、かつANDゲート36bの出力値はQb出力値と同じになるので、乱数出力値はQb出力値と同じになる。逆に物理乱数出力値が「0」のときは、ANDゲート36bの出力値は必ず「0」となり、かつANDゲート36aの出力値はQ出力値と同じになるので、乱数出力値はQ出力値と同じになる。すなわち、切替部36の作用により、物理乱数出力値が「1」であるときは、Q出力値を反転した値が出力乱数となり、逆に物理乱数出力が「0」であるときは、Q出力値がそのまま出力乱数となっている。したがって、本実施形態にかかる乱数生成装置30も、上記実施の形態1と同様に、図2に示した二つの乱数系列(M系列1−1,1−2)を、物理乱数によって切り替えて出力することができる。すなわち、このような構成によっても、上記実施の形態1と同様の効果が得られる。
【0024】
実施の形態3. 図5は本実施形態にかかる乱数生成装置40の構成図、また図6は、乱数生成装置40によって生成される二つのM系列の巡回パターンを示す図である。乱数生成装置40は、疑似乱数生成部42、物理乱数発生器14、および切替部46を含む。なお、ここでも、上記実施形態と同じ構成要素については同じ符号を付し、重複する部分の説明は省略する。
【0025】
本実施形態にかかる疑似乱数生成部42では、線形シフトレジスタ符号発生器のタップの異なる組み合わせに基づく二種類の帰還入力値を生成することができる。そして、EXORゲート20bの出力の通過/遮断を物理乱数によって決定している。具体的には、図5の例では、線形シフトレジスタ符号発生器として、シフトレジスタ18と、異なるタップ出力の組み合わせについてそれぞれ排他的論理和を出力する複数のEXORゲート20a,20b,20cとが設けられる。EXORゲート20aは、シフトレジスタ18の入力側より第3番目と第17番目のタップ出力(Q3,Q17)の排他的論理和を出力し、EXORゲート20bは、シフトレジスタ18の入力側より第1番目と第2番目のタップ出力(Q1,Q2)の排他的論理和を出力する。EXORゲート20aの出力は直接EXORゲート20cに入力されるが、EXORゲート20bの出力はANDゲート(切替部)46を介してEXORゲート20cに入力される。ANDゲート46には、物理乱数発生器14からの物理乱数出力が入力される。
【0026】
この構成では、物理乱数出力値が「1」である場合には、ANDゲート46の出力値はEXORゲート20bの出力値と同じになるから、EXORゲート20cからは、シフトレジスタ18への帰還入力値として、EXORゲート20aの出力値とEXORゲート20bの出力値との排他的論理和が出力されることになる。他方、物理乱数出力値が「0」である場合には、ANDゲート46の出力値は必ず「0」となるから、EXORゲート20cからの出力値は、EXORゲート20aの出力値と同じになる。つまり、物理乱数出力値が「0」であるときはタップ出力(Q3,Q17)に基づく帰還入力値が有効となるから、疑似乱数生成部12においてM系列3−1(図6(a))が生成され、他方、物理乱数出力値が「1」であるときは、タップ出力(Q1,Q2,Q3,Q17)に基づく帰還入力値が有効となるから、M系列3−2(図6(b))が生成される。このように、本実施形態にかかる乱数生成装置40も、二つの乱数系列(M系列3−1,3−2)を、物理乱数によって切り替えて出力することができる。
【0027】
実施の形態4. 図7は本実施形態にかかる乱数生成装置50の構成図、また図8は、乱数生成装置50によって生成される三つのM系列の巡回パターンを示す図である。乱数生成装置50は、疑似乱数生成部52、物理乱数発生器14、および切替部56を含む。なお、ここでは、上記実施形態と同じ構成要素については同じ符号を付し、重複する部分の説明は省略する。
【0028】
本実施形態にかかる疑似乱数生成部52では、線形シフトレジスタ符号発生器のタップの異なる組み合わせに基づく三種類の帰還入力値を生成することができる。そして、それら三種類の帰還入力値のうちどれを有効とするかを、物理乱数によって決定している。具体的には、図7の例では、線形シフトレジスタ符号発生器として、シフトレジスタ18と、異なるタップ出力の組み合わせに基づく入力値の排他的論理和を出力する複数のEXORゲート20a,20b,20c,20dとが設けられる。EXORゲート20aは、シフトレジスタ18の入力側より第3番目と第17番目のタップ出力(Q3,Q17)の排他的論理和を出力し、EXORゲート20bは、シフトレジスタ18の入力側より第1番目と第2番目のタップ出力(Q1,Q2)の排他的論理和を出力し、またEXORゲート20cは、シフトレジスタ18の入力側より第4番目と第7番目のタップ出力(Q4,Q7)の排他的論理和を出力する。EXORゲート20aの出力は直接EXORゲート20dに入力されるが、EXORゲート20b,20cの出力は、それぞれANDゲート56b,56cおよびORゲート56dを介してEXORゲート20dに入力される。またANDゲート56b,56cには、三分周器56aからの出力が入力される。
【0029】
本実施形態では、三分周器56a、ANDゲート56b,56cおよびORゲート56dが、切替部56として機能する。この構成において、公知の構成を有する三分周器56aは、物理乱数発生器14からの物理乱数出力をクロックとして、そのQ1出力値およびQ2出力値を、「0」,「0」(パターン1)、「0」,「1」(パターン2)、「1」,「0」(パターン3)の三パターンで巡回的に更新する。そしてパターン1、すなわちQ1出力値:「0」、Q2出力値:「0」のときは、ORゲート56dの出力値は「0」となり、この場合には、EXORゲート20aの出力値が、シフトレジスタ18に帰還入力値として入力される。同様にパターン2、すなわちQ1出力値:「1」、Q2出力値:「0」のときは、ORゲート56dの出力値は、EXORゲート20bの出力値と同じになる。したがってこの場合には、EXORゲート20dからは、シフトレジスタ18への帰還入力値として、EXORゲート20aの出力値とEXORゲート20bの出力値との排他的論理和が出力される。またパターン3、すなわちQ1出力値「1」,Q2出力値:「0」のときは、ORゲート56dの出力値は、EXORゲート20cの出力と同じ値となる。したがってこの場合には、EXORゲート20dからは、シフトレジスタ18への帰還入力値として、EXORゲート20aの出力値とEXORゲート20cの出力値との排他的論理和が出力される。つまり、物理乱数出力が更新されるたびに、疑似乱数生成部12において、[1]EXORゲート20aに入力されるタップ出力(Q3,Q17)に基づく帰還入力値が有効となるM系列4−1(図8(a))、[2]EXORゲート20a,20bに入力されるタップ出力(Q1,Q2,Q3,Q17)に基づく帰還入力値が有効となるM系列4−2(図8(b))、および[3]EXORゲート20a,20cに入力されるタップ出力(Q3,Q4,Q7,Q17)に基づく帰還入力値が有効となるM系列4−3(図8(c))が生成される。このように、本実施形態にかかる乱数生成装置50は、三つの乱数系列(M系列4−1,4−2,4−3)を、物理乱数によって切り替えて出力することができる。
【0030】
実施の形態5. 図9は本実施形態にかかる乱数生成装置60の構成図、また図10は、乱数生成装置60によって生成される二つのM系列の巡回パターンを示す図である。乱数生成装置60は、疑似乱数生成部62、物理乱数発生器14、および切替部66を含む。なお、ここでも、上記実施形態と同じ構成要素については同じ符号を付し、重複する部分の説明は省略する。
【0031】
本実施形態にかかる疑似乱数生成部62は、帰還入力を得るタップ(帰還入力の元となるタップ)は同一とし、シフトレジスタのビット数を変更するように構成されており、該シフトレジスタのビット数の変更を物理乱数によって決定している。具体的には、図9の例では、線形シフトレジスタ符号発生器として、15段のシフトレジスタ68と、縦続に配置された二つのフリップフロップ62a,62bと、所定のタップ出力の組み合わせについて排他的論理和を出力するEXORゲート20eとが設けられる。EXORゲート20eは、シフトレジスタ68の入力側より第1番目と第15番目のタップ出力(Q1,Q15)の排他的論理和を出力する。EXORゲート20eの出力は、前段側のフリップフロップ62aと、ANDゲート66aとに入力される。
【0032】
切替部66は、二つのANDゲート66a,66bを備えており、そのうち一方のANDゲート66aには、EXORゲート20eの出力と物理乱数発生器14からの物理乱数出力が入力され、もう一方のANDゲート66bには、Q出力と物理乱数発生器14からインバータ66cを介して物理乱数出力が入力される。そして、これら二つのANDゲート66a,66bの出力がORゲート66dに入力され、このORゲート66dの出力がシフトレジスタ68に入力される。
【0033】
この切替部66により、物理乱数出力に応じて、EXORゲート20eの出力あるいはフリップフロップ62bの出力のうちいずれか一方が有効となる。すなわち物理乱数出力値が「0」のときは、ANDゲート66aの出力値は必ず「0」となり、かつANDゲート66bの出力値はフリップフロップ62bの出力値と同じになるから、ORゲート66dの出力値はフリップフロップ62bの出力値と同じになる。逆に物理乱数出力値が「1」のときは、ANDゲート66bの出力は必ず「0」となり、かつANDゲート66aの出力値はEXORゲート20eの出力値と同じになるから、ORゲート66dの出力値はEXORゲート20eの出力値と同じ値となる。すなわち、切替部66の作用により、物理乱数出力値が「0」であるときは、フリップフロップ62a,62bもシフトレジスタの一部として機能することになり、これらを含めた17段のシフトレジスタによって、タップ出力(Q3,Q17)に基づく帰還入力値が有効となるM系列5−1(図10(a))が生成される。他方、物理乱数出力が「1」であるときは、フリップフロップ62a,62bは無効となり、15段のシフトレジスタ68によって、タップ出力(Q1,Q15)に基づく帰還入力値が有効となるM系列5−2(図10(b))が生成される。このように、本実施形態にかかる乱数発生装置60は、段数の異なる二つのシフトレジスタによって発生される乱数系列(M系列5−1,5−2)を、物理乱数によって切り替えて出力することができる。
【0034】
実施の形態6. 図11は本実施形態にかかる乱数生成装置70の構成図である。乱数生成装置70は、疑似乱数生成部72、物理乱数発生器14、および切替部16を含む。本実施形態の疑似乱数生成部72は、シフトレジスタ78(18)内に後述する検出回路78aが設けられている点を除いては実施の形態1の疑似乱数生成部12と同じであり、図2に示すM系列1−1,1−2を生成することができる。なお、ここでも、上記実施形態と同じ構成要素については同じ符号を付し、重複する部分の説明は省略する。
【0035】
線形シフトレジスタ符号発生器は、シフトレジスタ内の符号列によっては、M系列符号を生成できない。例えば、シフトレジスタの全ビットの値が「0」である場合にはM系列1−1を生成することができないし、また、シフトレジスタの全ビットが「1」である場合にはM系列1−2を生成することができない。一の疑似乱数系列の符号のみを生成する従来の一般的な線形シフトレジスタ符号発生器では、例えば初期値をそのような符号列としないように留意すれば十分であったが、上記実施形態のように、生成される疑似乱数系列が動作中に変更される場合には、有効な疑似乱数系列に対してシフトレジスタ内の符号列が該系列を生じないものとならないようにするための対策を講じておくのが望ましい。そのために、本実施形態にかかる乱数生成装置70は、上記実施の形態1にかかる乱数生成装置10に、検出回路78a,78b、ANDゲート82a,82b、フリップフロップ84a,84b、およびフリップフロップ80を付加した構成となっている。
【0036】
上記付加的な構成要素について説明する。物理乱数発生器14からの出力(物理乱数出力)は、フリップフロップ80に入力される。なお、本実施形態でも、物理乱数出力値「0」はM系列1−1(図2(a))を、また「1」はM系列1−2(図2(a))を示すものとして規定されている。検出回路78aは、シフトレジスタ78の全ビットの値が「1」であるときに、ANDゲート82aに「1」を出力する(例えば全ビットの値の論理積を出力する)。また検出回路78bは、シフトレジスタ78の全ビットの値が「0」であるときに、ANDゲート82bに「1」を出力する(例えば全ビットの反転値の論理積を出力する)。ANDゲート82aには、検出回路78aの出力とフリップフロップ80のQ出力とが入力され、その出力はフリップフロップ84aに入力される。ANDゲート82bには、検出回路78bの出力とフリップフロップ80のQb出力とが入力され、その出力はフリップフロップ84bに入力される。そして、フリップフロップ84aの出力はリセット信号(R入力)として、またフリップフロップ84bの出力はセット信号(S入力)として、フリップフロップ80に入力される。なお、図11の例では、検出回路78a,78bはシフトレジスタ78に内蔵されているが、これらをシフトレジスタ78の外部に接続してもよい。
【0037】
上記構成において、シフトレジスタ78の全ビットの値が「1」であるときに、物理乱数出力値が「0」から「1」に変化すると、フリップフロップ80の値は「1」となり、Q出力値が「1」となる。また、検出回路78aの出力値は「1」であるから、ANDゲート82aの出力値は「1」となる。そして、フリップフロップ84aの値が「1」となって、フリップフロップ80にリセット信号が入力される。したがって、この場合、フリップフロップ80の値は「1」から「0」に変更される。すなわち上記構成によれば、シフトレジスタ78においてM系列1−1(図2(a))の符号が生じない状態(すなわち全ビットの値が「0」)となるのを防止することができる。
【0038】
一方、シフトレジスタ78の全ビットの値が「0」であるときに、物理乱数出力値が「1」から「0」に変化すると、フリップフロップ80の値が「0」となり、Qb出力値が「1」となる。また、検出回路78bの出力値は「1」であるから、ANDゲート82bの出力値は「1」となる。そして、フリップフロップ84bの値が「1」となって、フリップフロップ80にセット信号が入力される。したがって、この場合、フリップフロップ80の値は「0」から「1」に変更される。すなわち上記構成によれば、シフトレジスタ78においてM系列1−2(図2(b))の符号が生じない状態(すなわち全ビットの値が「1」)となるのを防止することができる。
【0039】
なお、フリップフロップ84a,84bの出力により、シフトレジスタ78の少なくとも一つのビットの値を変化させるようにしても同様の効果が得られる。例えば、フリップフロップ84aの出力を、シフトレジスタ78内を構成する少なくとも一つのフリップフロップのリセット信号とすれば、当該フリップフロップ(ビット)の値が「0」となるので、M系列1−1の符号を生じない状態となるのを防止することができる。また、フリップフロップ84bの出力をシフトレジスタ78内を構成するいずれかのフリップフロップのリセット信号とすれば、当該フリップフロップ(ビット)の値が「1」となるので、M系列1−2の符号を生じない状態となるのを防止することができる。
【0040】
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態で示した構成には限定されず、種々の等価回路によっても実施可能である。上記実施形態では、疑似乱数が、17段または15段のシフトレジスタを有する線形シフトレジスタ符号発生器によって生成される数種類のM系列符号である場合を例示したが、これには限定されず、それ以外の段数のシフトレジスタあるいはタップの組み合わせに基づくM系列であってもよい。また、上記実施の形態6は、上記実施の形態1を基礎としたものを例示的に示したが、他の実施形態に対しても同様に適用可能であることは言うまでもない。また、上記実施の形態1,3〜6では、シフトレジスタの最終段のフリップフロップからの出力を乱数出力としたが、他のフリップフロップからの出力を乱数出力としてもよいし、シフトレジスタに入力される帰還値を乱数出力としてもよい。
【0041】
【発明の効果】
本発明によれば、複数の疑似乱数系列のうちどれを有効とするかを物理乱数によって切り替えるため、その予測が難しく暗号化アルゴリズム等への適用に際してより安全性の高い乱数を生成することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1にかかる乱数生成装置の構成図である。
【図2】本発明の実施の形態1にかかる乱数生成装置によって生成される疑似乱数系列の一例を示す図である。
【図3】本発明の実施の形態にかかる物理乱数発生器の構成図である。
【図4】本発明の実施の形態2にかかる乱数生成装置の構成図である。
【図5】本発明の実施の形態3にかかる乱数生成装置の構成図である。
【図6】本発明の実施の形態3にかかる乱数生成装置によって生成される疑似乱数系列の一例を示す図である。
【図7】本発明の実施の形態4にかかる乱数生成装置の構成図である。
【図8】本発明の実施の形態4にかかる乱数生成装置によって生成される疑似乱数系列の一例を示す図である。
【図9】本発明の実施の形態5にかかる乱数生成装置の構成図である。
【図10】本発明の実施の形態5にかかる乱数生成装置によって生成される疑似乱数系列の一例を示す図である。
【図11】本発明の実施の形態6にかかる乱数生成装置の構成図である。
【符号の説明】
10,30,40,50,60,70 乱数生成装置、12,32,42,52,62,72 疑似乱数生成部、14 物理乱数発生器、16,36,46,56,66 切替部、18,78 シフトレジスタ、20,20a,20b,20c,20d,20e EXORゲート、62a,62b フリップフロップ、78a、78b 検出回路。

Claims (7)

  1. 複数の異なる疑似乱数系列の乱数パターンを出力可能な疑似乱数生成手段と、
    物理乱数を生成する物理乱数生成手段と、
    前記物理乱数生成手段の生成した物理乱数に基づいて前記疑似乱数生成手段の出力する乱数の疑似乱数系列を切り替える切替手段と、
    を備える乱数生成装置。
  2. 前記疑似乱数生成手段は、線形シフトレジスタ符号発生器を含み、
    前記切替手段は、前記線形シフトレジスタ符号発生器への帰還入力値の反転/非反転を、前記物理乱数生成手段によって生成された物理乱数に基づいて切り替えることを特徴とする請求項1に記載の乱数生成装置。
  3. 前記疑似乱数生成手段は、線形シフトレジスタ符号発生器を含み、
    前記切替手段は、前記線形シフトレジスタ符号発生器からの出力値の反転/非反転を、前記物理乱数生成手段によって生成された物理乱数に基づいて切り替えることを特徴とする請求項1に記載の乱数生成装置。
  4. 前記疑似乱数生成手段は、線形シフトレジスタ符号発生器を含み、該線形シフトレジスタ符号発生器のタップの異なる組み合わせに基づく複数の帰還入力値を生成し、
    前記切替手段は、前記生成された複数の帰還入力値のうち該線形シフトレジスタ符号発生器に帰還入力する帰還入力値を、前記物理乱数生成手段で生成された物理乱数に基づいて切り替えることを特徴とする請求項1に記載の乱数生成装置。
  5. 前記疑似乱数生成手段は、所定のタップの組み合わせに基づく第一の帰還入力値を生成する線形シフトレジスタ符号発生器と、該第一の帰還入力値を受け取り前記線形シフトレジスタ符号発生器と同期して所定ビット数ビットシフトを行いその出力を第二の帰還入力値とするフリップフロップと、を含み、
    前記切替手段は、前記第一または第二の帰還入力値のうち前記線形シフトレジスタ符号発生器に帰還入力する帰還入力値を、前記物理乱数生成手段で生成された物理乱数に基づいて切り替えることを特徴とする請求項1に記載の乱数生成装置。
  6. 請求項2〜5のうちいずれか一つに記載の乱数生成装置であって、
    前記線形シフトレジスタ符号発生器の符号列を検出する検出手段を備え、
    前記切替手段は、有効な疑似乱数系列の乱数が前記検出された符号列によっては生成不能である場合には、該疑似乱数系列以外の疑似乱数系列に切り替えることを特徴とする乱数生成装置。
  7. 請求項2〜5のうちいずれか一つに記載の乱数生成装置であって、
    前記線形シフトレジスタ符号発生器の符号列を検出する検出手段と、
    有効な疑似乱数系列の乱数が前記検出された符号列によっては生成不能である場合には、前記符号列のビット値のうち少なくとも一つを反転させることを特徴とする乱数生成装置。
JP2002320035A 2002-11-01 2002-11-01 乱数生成装置 Pending JP2004157168A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2002320035A JP2004157168A (ja) 2002-11-01 2002-11-01 乱数生成装置
TW092130446A TWI240201B (en) 2002-11-01 2003-10-31 Random number generating device
US10/533,256 US20060123072A1 (en) 2002-11-01 2003-11-04 Random number generation device
EP03770125A EP1564927A1 (en) 2002-11-01 2003-11-04 Random number generation device
PCT/JP2003/014055 WO2004040838A1 (ja) 2002-11-01 2003-11-04 乱数生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002320035A JP2004157168A (ja) 2002-11-01 2002-11-01 乱数生成装置

Publications (1)

Publication Number Publication Date
JP2004157168A true JP2004157168A (ja) 2004-06-03

Family

ID=32211834

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002320035A Pending JP2004157168A (ja) 2002-11-01 2002-11-01 乱数生成装置

Country Status (5)

Country Link
US (1) US20060123072A1 (ja)
EP (1) EP1564927A1 (ja)
JP (1) JP2004157168A (ja)
TW (1) TWI240201B (ja)
WO (1) WO2004040838A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006116082A (ja) * 2004-10-21 2006-05-11 Daito Giken:Kk 遊技台
KR100737651B1 (ko) * 2005-02-03 2007-07-09 산요덴키가부시키가이샤 난수 생성 회로
JP2022082405A (ja) * 2020-11-20 2022-06-01 株式会社東芝 バイアスされたランダムビットストリームを生成するためのシステム及び方法並びに量子通信システム及び方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101870249B1 (ko) * 2012-01-25 2018-06-22 삼성전자주식회사 디더 제어 회로와 이를 포함하는 장치들
US11757632B2 (en) * 2018-12-19 2023-09-12 Micron Technology, Inc. Generating a random value based on a noise characteristic of a memory cell
US11586418B2 (en) * 2020-01-17 2023-02-21 Macronix International Co., Ltd. Random number generator, random number generating circuit, and random number generating method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6025611Y2 (ja) * 1980-04-21 1985-08-01 ニコ−電子株式会社 乱数発生回路
US4852023A (en) * 1987-05-12 1989-07-25 Communications Satellite Corporation Nonlinear random sequence generators
US5297207A (en) * 1993-05-24 1994-03-22 Degele Steven T Machine generation of cryptographic keys by non-linear processes similar to processes normally associated with encryption of data
US5365585A (en) * 1993-08-30 1994-11-15 Motorola, Inc. Method and apparatus for encryption having a feedback register with selectable taps
JP3421950B2 (ja) * 1993-12-01 2003-06-30 インヴィジメール テクノロジーズ リミテッド 非決定論的ミクスチャー発生器ストリーム暗号化システム
US6324558B1 (en) * 1995-02-14 2001-11-27 Scott A. Wilber Random number generator and generation method
JP3277139B2 (ja) * 1997-03-13 2002-04-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 入力ビット列暗号化装置及び方法
US6253223B1 (en) * 1999-06-08 2001-06-26 General Instrument Corporation Robust random number generator
US7028059B2 (en) * 2002-06-24 2006-04-11 Sun Microsystems, Inc. Apparatus and method for random number generation

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006116082A (ja) * 2004-10-21 2006-05-11 Daito Giken:Kk 遊技台
JP4533721B2 (ja) * 2004-10-21 2010-09-01 株式会社大都技研 遊技台
KR100737651B1 (ko) * 2005-02-03 2007-07-09 산요덴키가부시키가이샤 난수 생성 회로
JP2022082405A (ja) * 2020-11-20 2022-06-01 株式会社東芝 バイアスされたランダムビットストリームを生成するためのシステム及び方法並びに量子通信システム及び方法
JP7214772B2 (ja) 2020-11-20 2023-01-30 株式会社東芝 バイアスされたランダムビットストリームを生成するためのシステム及び方法並びに量子通信システム及び方法

Also Published As

Publication number Publication date
WO2004040838A1 (ja) 2004-05-13
US20060123072A1 (en) 2006-06-08
TWI240201B (en) 2005-09-21
TW200421170A (en) 2004-10-16
EP1564927A1 (en) 2005-08-17

Similar Documents

Publication Publication Date Title
Golic New methods for digital generation and postprocessing of random data
US8150900B2 (en) Random number generation based on logic circuits with feedback
EP1782181B1 (en) Method and apparatus for generating random data
JP3696209B2 (ja) シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器
US9405510B2 (en) Random number generator
TWI758688B (zh) 隨機數產生器
JPH02128218A (ja) 乱数発生器
US20130346459A1 (en) Method for generating random numbers
US9465585B2 (en) Method for detecting a correlation
JP4288057B2 (ja) 乱数生成装置
Durga et al. Design and synthesis of LFSR based random number generator
Fujieda On the feasibility of TERO-based true random number generator on Xilinx FPGAs
Lin et al. A new method of true random number generation based on Galois ring oscillator with event sampling architecture in FPGA
Reddy et al. BHARKS: Built-in hardware authentication using random key sequence
US20150193206A1 (en) Method for generating an output of a random source of a random generator
Jin et al. A dynamically reconfigurable entropy source circuit for high-throughput true random number generator
JP2004157168A (ja) 乱数生成装置
JP4417389B2 (ja) デジタルロジックを利用した乱数発生装置及び方法
Rudra et al. Designing stealthy trojans with sequential logic: A stream cipher case study
Choe et al. A self-timed ring based TRNG with feedback structure for FPGA implementation
US20150193205A1 (en) Method for generating an output of a random source of a random generator
Bhaskar et al. A survey on implementation of random number generator in FPGA
JP5356362B2 (ja) 乱数生成回路
Garipcan et al. A gigabit TRNG with novel lightweight post-processing method for cryptographic applications
Jayasinghe et al. FPGA Based Countermeasures Against Side channel Attacks on Block Ciphers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090630