JP3696209B2 - シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器 - Google Patents
シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器 Download PDFInfo
- Publication number
- JP3696209B2 JP3696209B2 JP2003019732A JP2003019732A JP3696209B2 JP 3696209 B2 JP3696209 B2 JP 3696209B2 JP 2003019732 A JP2003019732 A JP 2003019732A JP 2003019732 A JP2003019732 A JP 2003019732A JP 3696209 B2 JP3696209 B2 JP 3696209B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- random number
- seed
- generation circuit
- data
- 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 - Lifetime
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
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computational Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Manipulation Of Pulses (AREA)
- Tests Of Electronic Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、シード生成回路、乱数生成回路、半導体集積回路、ICカード及び情報端末機器に関し、特に、デジタル論理回路によりコンパクトに構成することが可能でしかも真性度が高い乱数のシードを生成し、暗号アルゴリズムに用いても好適なシード生成回路及びこれを用いた乱数生成回路、半導体集積回路、ICカード及び情報端末機器に関する。
【0002】
【従来の技術】
確率過程を伴う現象のシミュレーションや各種のセキュリティーのために乱数列を用いる場合、時系列にみた乱数性だけではなく、時系列に並べられた乱数列から同一クロックで取得したデータにおける乱数性も重要である。なぜなら同一クロックで多数データサンプリングすることで、暗号情報を読み取る手口が存在し、その暗号データを乱数と演算処理することで、読み取られにくくする方法に乱数が使われるからである。
【0003】
擬似乱数生成回路は比較的小型であり、それにより得られた時系列のデータは、比較的高品質な乱数として用いることが可能である。しかし、電源を投入してシステムをオン(ON)した後に同一クロックで取得したデータを1回目、2回目・・と順番に並べたデータ自体においては、十分な乱数性が保証できない。
【0004】
図16は、この事情を説明するための概念図である。すなわち、擬似乱数生成回路を含むシステムをオンにする度に、「0」と「1」とが時系列に出力されて乱数列が生成されるものとする。この時、それぞれの乱数列を時系列(すなわち、同図の横軸方向)にみた場合の乱数性は良好である。しかし、これら乱数列から同一クロックで特定のデータをサンプリングした(同図の縦軸方向にみた)場合、そのデータ系列の乱数性は必ずしも良質とはいえない。例えば、図16に例示したように、同一クロックデータ列においては、「0」または「1」のいずれかの出現頻度が高いというような問題が生ずる。これは、擬似乱数の場合には、擬似乱数回路の「初期値」すなわち「シード」に依存して乱数列が決定されるからである。
【0005】
図17は、擬似乱数回路におけるシードの役割を説明するための概念図である。すなわち、同図(a)は、擬似乱数回路の一例であるリニア・フィードバック・シフトレジスタを用いた回路を表す。この回路においては、入力されたシードに応じて、データXが順次出力される。しかし、入力されるシードが固定されていれば、得られる乱数列(同図の横方向の列)も同一である。従って、これら乱数列から同一クロックでサンプリングされて得られる同一クロックデータ列(同図の縦方向の列)は、常に同じデータの配列となってしまう。
【0006】
仮に、これを「乱す」役割を有する何らかの回路を設けたとしても、同一クロックデータ列は良質の乱数にはなりにくい。すなわち、入力されるシードを毎回、書き換えたとしても、同図(c)に表したように、「0」と「1」とのバランスが1:1からずれたり、何らかの規則性や周期性が存在したりする場合が多い。これは、擬似乱数回路の同一クロックデータ列のランダム性は、入力されるシードのランダム性だけに依存するからである。つまり、擬似乱数回路の場合、入力されるシードのランダム性が極めて重要となる。
【0007】
起動時に書き換えられるシードが、ソフト的に書き換える場合も多いが、これでシード自身に常に違った乱数性を与えるのはほとんど不可能である。例えば、特許文献1には、「移動体端末の有する機能手段が発生する状態情報のうちで時間的に不規則に変化する再現性のない情報の一部を抽出してサンプルデータとする。サンプルデータをシード102として乱数生成部103に入力して、乱数104を発生する。」方法が開示されている。
【0008】
【特許文献1】
特開2002−215030号公報
【発明が解決しようとする課題】
しかし、特許文献1に開示された技術による場合、サンプルデータ自体にはランダム性はあっても、「0」と「1」のバランスを保つような仕組みや、周期性規則性が存在しないような仕組みが設けられていない。
【0009】
これに対して、擬似乱数回路においては、シードを常にランダムに書き換える機構が必要である。つまり、ハード的に出現する何らかのランダムネスを利用し、しかも「0」と「1」とのバランスが1:1からずれておらず、規則性や周期性を持たないランダムなシードを作り出す必要がある。
【0010】
熱雑音等の純粋物理現象で発生するランダム信号を利用して、乱数を作り、これをシードに利用する手段もあるが、一般的に大型の回路となってしまうため、例えば、半導体集積回路やICカードあるいは各種の情報端末機器などの小型のシステムに内蔵することが困難である。
【0011】
本発明は、かかる課題の認識に基づいてなされたものであり、その目的は、乱数性の高いシードを生成し、かつ小型の集積回路化が可能なシード生成回路及びこれを用いた乱数生成回路、半導体集積回路、ICカード及び情報端末機器を提供することにある。
【課題を解決するための手段】
上記目的を達成するため、本発明のシード生成回路は、連続的または断続的に発振する発振回路と、前記発振回路から出力されたデジタルデータ列における「0」と「1」との出現頻度を制御して時系列データとして出力する平滑回路と、前記時系列データのうちの複数のビットを用いた演算処理により、1ビットのシードを生成する真性化回路と、を備え、前記発振回路は、第1の排他的論理和演算回路と、第1の反転回路と、第2の排他的論理和演算回路と、第2の反転回路と、をこの順に直列接続し、前記第1の排他的論理和演算回路の入力の一端と前記第2の排他的論理和演算回路の入力の一端とにそれぞれデータを入力するものであり、前記第1及び第2の排他的論理和演算回路に入力されたデータが特定の組み合わせとなった場合のみ発振することを特徴とする。
【0012】
上記構成によれば、乱数性の高いシードを生成し、かつ小型の集積回路化が可能なシード生成回路を実現できる。
【0016】
一方、前記平滑回路は、擬似乱数を生成する擬似乱数生成手段と、前記発振回路から出力された前記デジタルデータ列と、前記擬似乱数生成手段により生成された前記擬似乱数と、の排他的論理和を演算して前記時系列データとして出力する論理演算手段と、を有するものとすることができる。
【0017】
また、前記平滑回路は、その出力において、前記発振回路から出力されたデジタルデータ列よりも「0」と「1」との出現頻度が1:1に近いものとすることが望ましい。
【0018】
一方、前記真性化回路は、前記演算処理を行う排他的論理和演算回路を有するものとすることができる。
【0019】
また、前記真性化回路は、前記複数のビットの組み合わせに応じて「0」及び「1」のいずれかを割り当てるテーブルに基づいて前記1ビットのシードを生成するものとすることもできる。
【0020】
一方、本発明の乱数生成回路は、上記いずれかのシード生成回路と、前記シード生成回路により生成された前記シードに基づいて擬似乱数を生成する擬似乱数生成回路と、を備えたことを特徴とする。
【0021】
上記構成によれば、乱数性の高いシードを生成し、かつ小型の集積回路化が可能な乱数生成回路を実現できる。
【0022】
ここで、デジタル入力値に対して一義的に決定されないデジタル出力値を与える不確定論理回路をさらに備え、前記擬似乱数を前記不確定論理回路に入力して、その出力を乱数として出力するものとすることができる。
【0023】
一方、本発明の半導体集積回路は、上記いずれかの乱数生成回路を備えたことを特徴とする。上記構成によれば、乱数性の高いシードを生成し、かつ小型の集積回路化が可能な半導体集積回路を実現できる。
【0024】
一方、本発明のICICカードは、上記の半導体集積回路を備えたことを特徴とする。上記構成によれば、コンパクトで高いレベルのセキュリティが得られしかも低コストのICカードを実現できる。
【0025】
一方、本発明の情報端末機器は、上記の半導体集積回路を備えたことを特徴とする。上記構成によれは、上記構成によれば、コンパクトで高いレベルのセキュリティ及び暗号処理技術が得られしかも低コストのICカードを実現できる。
【0026】
【発明の実施の形態】
以下、図面を参照しつつ、本発明の実施の形態について詳細に説明する。
【0027】
図1は、本発明の実施の形態にかかるシード生成回路の要部構成を表すブロック図である。すなわち、本実施形態のシード生成回路は、発振回路10と、平滑回路20と、を有する。
【0028】
発振回路10は、連続的または断続的(非連続的)に発振することによってランダム信号を発生する回路である。ランダム信号を作るのに発振を利用するのは、小型化が容易だからである。一方、平滑回路20は、発振回路10から出力されたランダム信号の「0」と「1」とのバランスをとり、かつその周期性や規則性を壊す回路である。このような構成により、「0」と「1」とのバランスを時系列的に一様にすることができる。さらに、時系列的に生成した多数ビットを使って、所定の演算処理により、1ビットのランダムな擬似乱数用のシードを生成することができる。
【0029】
図2は、発振回路10の具体例を表す模式図である。すなわち、本具体例の発振回路は、2つの入力X1、X2に対して、2つの出力Q1、Q2を与える。2つの入力X1、X2の値が同じ場合には、偶数インバータを備えたフリップフロップと等価の動作をする。一方、2つの入力X1、X2が異なる場合には、リング発振する回路である。従って、2つの入力X1、X2の値が同じ場合と異なる場合との割合が半々であれば、回路動作期間の半分の期間だけ発振する。
【0030】
またさらに、図2の回路は、単純な発振回路とは異なり、初期値Zの値によっても出力が異なる。すなわち、初期値Zが「1」の場合には、入力X1、X2がいずれも「1」の時には出力Q1、Q2はいずれも「0」となり、入力X1、X2がいずれも「0」の時には出力Q1は「1」、Q2は「0」となる。
【0031】
一方、初期値Zが「0」の場合には、入力X1、X2がいずれも「1」の時には出力Q1、Q2はいずれも「1」となり、入力X1、X2がいずれも「0」の時には出力Q1は「0」、Q2は「1」となる。
【0032】
このように、図2の具体例の発振回路10は、2つの入力X1、X2が異なる場合にのみ発振する点で、「断続的発振回路」であるといえる。連続的発振回路は、乱数データに周期性が残りやすいという点と、消費電流が大きいという点が弱点であり、断続的発振回路は、この点を改善した回路である。
【0033】
一方、図3は、発振回路10のもう一つの具体例を表す模式図である。すなわち、本具体例の発振回路は、3つのインバータを直列接続したリング発振器であり、「連続的発振回路」であるといえる。この場合、発振周波数は、概ねシステムクロックの10倍以上であることが望ましい。
【0034】
次に、本発明における平滑回路20について説明する。
【0035】
図4は、本発明における平滑回路20の基本的な構成を表すブロック図である。すなわち、平滑回路20は、擬似乱数出力手段20Aと、XOR(排他的論理和)演算手段20Bとを有する。擬似乱数出力手段20Aとしては、例えば、リニア・フィードバック・シフト・レジスタ(Linear Feedback Shift Resistor:LFSR)などを用いることができる。
【0036】
このようにして、発振回路10から得られたランダム信号と、擬似乱数出力とのXOR(排他的論理和)を取ることにより、ランダム信号の一様性を著しく改善することができる。ただしこの場合、発振回路10と擬似乱数出力20Aとの出力の間に相関性がないことが望ましい。以下、この点について詳述する。
【0037】
まず、独立した2つの回路からの出力をQ1、Q2とする。Q1、Q2には相関が無いとする。このとき、Q1における「1」の出現比率をp、Q2における「1」の出現比率をqとする。すると、Q1とQ2とをXORした出力Rが「1」となる出現比率rは、以下の式で与えられる。
【0038】
r=p+q−2pq (1)
XOR出力における「1」と「0」との出現比率の差は、次式により与えられる。
【0039】
|r−(1−r)|=|(1−2p)(1−2q)| (2)
Q1とQ2の出力における「1」と「0」の出現比率の差は、それぞれ、|1−2p|、|1−2q|であり、pとqはともに、0以上1以下なので、次式が得られる。
【0040】
|(1−2p)(1−2q)|<|1−2p|,|1−2q| (3)
これは、XORする前よりも、XORした後のほうが、「0」と「1」の出現比率の差が小さくなること、つまり「偏り」が小さくなることを表している。従って、複数個のデータを並列化してXORしていくと、単独の出力よりも「偏り」が小さくなる。例えば、出力が偏った回路が多数あっても、出力の「偏り」の小さいものが一つでも存在すれば、その一つの回路出力よりもさらに「偏り」が小さい出力が得られることになる。
【0041】
一方、相関がある場合には、次のようになる。すなわち、独立した2つの回路からの出力をQ1、Q2とする。Q1、Q2には何らかの理由で相関があるとする。このとき、Q1の1の出現比率をp、Q2のそれをqとする。Q1とQ2に相関がある場合には、Q1が「1」の場合に、Q2が「1」となる確率は、単純にqではなく、φの割合だけずれるとする。φが「1」からずれている度合いが相関性を表す。
【0042】
そうすると、出現確率は以下の如くとなる。
【0043】
Q1が「1」の場合に、Q2が「1」となる確率=pqφ
Q1が「1」の場合に、Q2が「0」となる確率=(1−q)φp
Q1が「0」の場合に、Q2が「1」となる確率=q(1−φp)
Q1が「0」の場合に、Q2が「0」となる確率=(1−q)(1−φp)
【0044】
Q1とQ2とをXORした出力Rについて、「1」(Q1とQ2が等しくない)の出現比率rは、次式により与えられる。
【0045】
r=(1−q)φp+q(1−φ) (4)
出力Rにおける「1」と「0」の出現比率の差は、次式により得られる。
【0046】
|r−(1−r)|=|1−2φp||1−2q| (5)
つまり、相関がある場合、Q1とQ2のXOR=Rでは、Q1、Q2の1の出現確率は、pとqだけでなく、相関の度合いφにも影響を受ける。そして、pとqがそれぞれ「0.5」に近い値の場合は、次式により表される。
【0047】
|r−(1−r)|=|1−φ| (6)
ここで相関性が無い場合はφが「1」となり、「0」と「1」は均一となる。逆に、相関が強くφが「0」または「2」程度になると、Rはほとんど全て「1」または「0」となってしまう。
【0048】
従って、平滑回路20においてXORを演算する場合には、その2つの入力Q1とQ2に相関性を持たせないようにする工夫が必要である。つまり、発振回路10と擬似乱数出力手段20Aとの間に相関性が生じないようにすることが望ましい。
【0049】
例えば、これら2つの回路に、同じクロックをダイレクトに入力しないことが望ましい。アナログ的な動作をする回路の場合には、Q1とQ2の出力端も別個にラッチすることが望ましい。発振回路10と擬似乱数出力手段20Aは、これらの点に気をつけて設計する必要がある。
【0050】
以上、平滑回路20が有する、一様化の作用について詳述した。
【0051】
一方、平滑回路20は、同一クロックデータ列における周期性を乱す作用も有する。すなわち、出力を時系列に並べると、FIPS140−2検定を通る乱数があるとする。しかし、このような乱数をもとにして、ある時間で発生した1ビットを単純にシードにするだけでは、同一クロックでのランダムネスが十分に得られない。そこで、本発明においては、時系列的に生成した多数ビットを使って1ビットの乱数データを作る。その典型的なものは、複数データの全てにXORを取ることである。つまり、時系列データをX1,X2,X3・・・Xnとした場合、次式により、n個の時系列データから1ビットの乱数データを作る。
【0052】
【数1】
これは、一様性に関して前述したものと同様の効果によって、「0」と「1」との出現確率の均一性(一様性)を向上する方法である。これは時系列での効果であるが、複数の時系列データから同一クロックでサンプリングして得られた同一クロックデータ列における乱数性を上げる効果もあることが分かる。この点について、以下に説明する。
【0053】
すなわち、前述したように、シードが固定である場合、LFSRの出力データにおいては、同一クロックでは常に同じデータが並ぶ。時系列データがX1,X2,X3・・・Xnの場合、同一クロックのデータに関する予測確率をそれぞれf1,f2,f3・・・fnとする。ここで予測確率は、「0」と「1」の出現確率をそれぞれ(0.5+fk),(0.5−fk)と定義することにする。LFSRの場合、全て予測可能なので、次式が与えられる。
【0054】
fk=±0.5(k=1,2….n) (8)
同一クロック配列が乱数性を持つことは、fkが「0」に近づくこと、つまり予測困難であることを意味する。
【0055】
いま、クロックの異なる二つの出力Xj,Xhを選び、このXORをXjhとする。
【0056】
【数2】
例えば、Xjの予測確率が「0.4」、Xhの予測確率が「0.3」である場合を考える。Xjhが「1」となるのは、Xj=1、Xh=1またはXj=0,Xh=1の場合である。従って、その確率は、0.9×(1−0.8)+(1−0.9)×0.8=0.26であり、予測確率fjhは「0.24」である。つまり、XjとXhの排他的論理和(XOR)の予測確率fjhは、Xj、Xhの予測確率fj,fhよりも小さい。つまり、排他的論理和をとることによって、予測困難性が上がっていることが分かる。これを一般的に表すと、XjとXh排他的論理和Xjhの予測確率fjhは、次式の如くとなる。
【0057】
fj,fhは、共に絶対値が「0.5」よりも小さいので、XjとXhの排他的論理和Xjhの予測確率fjhはXj, Xhの予測確率fj,fhよりも小さいことが一般的に証明できる。従って、排他的論理和をとる時系列のデータ数を重ねていくほど、同一クロックにおけるデータ列の予測確率が小さくなっていく。その結果として、複数の時系列データから同一クロックでサンプリングした同一クロックデータ列における周期性を低下させ、良質のシードを与えることができる。
【0058】
以上、平滑回路20について説明した。
次に、真性化回路30について説明する。
【0059】
図5は、真性化回路30の作用を説明するための模式図である。すなわち、真性化回路30は、平滑回路20から出力された乱数列を演算処理し、1ビットのシードを生成する。その具体的な構成については、以下に具体例を参照しつつ説明する。
【0060】
(第1の具体例)
図6は、本発明の第1の具体例にかかるシード生成回路を表すブロック図である。すなわち、このシード生成回路は、図2に表した発振回路10を備えている。前述したように、この発振回路10は、「断続的発振回路」であり、2つの入力X1、X2が異なる場合のみ、リング発振する。そして、これら2つの入力X1、X2の値が同じ場合と異なる場合が半々であれば、回路動作時の半分の時間だけ発振する。
【0061】
一方、平滑回路20は、擬似乱数出力手段20Aとして、13段のシフトレジスタを有するLFSRを設けることができる。そして、発振回路10とLFSRの出力とを平滑回路20においてXORを演算することにより、例示したような乱数列が得られる。
【0062】
一方、真性化回路30は、このように時系列的に生成される多数ビットのXORを演算することにより、1ビットのシードを生成する。この回路をnクロック分だけ動作させると、nビットの時系列データのXORがQに出力される。
【0063】
本具体例のシード生成回路の場合、必要な論理ゲート数は、周辺回路を含めても約50ゲート程度であり、回路規模は小さい。入力X1として、ロー(Low)レベルかハイ(High)レベルに固定した値を入力し、X2としては基準クロックを入力する。これにより、発振(不確定出力)と確定出力とを交互に繰り返す動作が実行される。この場合、クロックは、他の回路用のクロックと同期していても良く、または非同期でも良い。
【0064】
本具体例のシード生成回路を作製して64クロック分の時系列データのXOR出力を20000個(同一クロックデータ列)取得して、これを統計的な検定にかけた。図7は、この結果を表す一覧表である。すなわち、同図には、技術標準局(NIST)による検定規格FIPS140−2と、棄却率5%の一般検定の結果を表した。また、図7には、比較例として、熱雑音増幅型の物理乱数回路を用いた場合の結果と、16段のLFSRから得られた結果も表した。
【0065】
図7から分かるように、本具体例のシード生成回路によれば、同一クロックの1ビットのシード列(同一クロックデータ列)においても、FIPS140−2の検定だけでなく、棄却率5%の難解な一般検定もクリアする良好な乱数性が得られることが確認された。物理乱数回路の場合、時系列データと同一クロックデータ列とは基本的に同一である。一方、LFSRの場合は、シードが固定されているので同一クロックデータ列においてはいつも同じデータが並ぶため、当然ながら全ての検定は不合格となる。
【0066】
図8は、8個のシード生成回路について、システム起動後のクロック数と乱数データの各1ビットについて、一様性の改善の傾向を表すグラフ図である。同図から、クロック数が増すほど一様性が改善されることが確認された。なお、発振回路10は消費電流が比較的大きいので、ある程度のランダム性をもつ出力データが得られたら、そのデータを平滑回路20に受け渡し、発振回路10は停止させればよい。
【0067】
(第2の具体例)
図9は、本発明の第2の具体例にかかるシード生成回路を表す模式図である。本具体例においては、発振回路10として、図3に表したリング発振器を用いている。つまり、本具体例は、「連続的発振回路」を用いたシード生成回路であるといえる。この場合、発振回路の発振周波数は、概ねシステムクロックの10倍以上が望ましい。前述したように、発振回路10のリング発振回路は、他の回路と非同期とすることが望ましい。
【0068】
一方、平滑回路20は、擬似乱数生成回路20Aと、XOR演算手段20Bと、を有する。擬似乱数生成回路20Aは、11段のシフトレジスタからなるLFSRの最下位2ビットの論理積(AND)と、次位の1ビットの反転との論理和(OR)をとって、最上位の1ビットとXORしたものを最下位のシフトレジスタに戻す回路であり、非線形の擬似乱数生成回路であるといえる。
【0069】
リング発振器の出力と、擬似乱数生成回路20Aの出力と、をXOR演算手段20Bにおいて演算し、時系列に発生するランダムデータ列を得る。
【0070】
このランダムデータ列は、真性化回路30において処理され、1ビットのシードが得られる。真性化回路30においては、図示したように、データ列のうちで続いた2ビットが「01」または「10」というように、違った数字が並ぶ場合には、「1」に変換し、一方、続いた2ビットが「11」または「00」というふうに、同じ数字が並ぶ場合には、「0」に変換する処理を実行する。これを1ビットになるまで繰り返し、1ビットのシードを生成する。
【0071】
(第3の具体例)
次に、本発明の第3の具体例として、真性化回路30における処理の変型例を説明する。
【0072】
図10は、本具体例にかかるシード生成回路を表す模式図である。本具体例の場合、平滑回路20において、4の倍数すなわち4n個の時系列データを生成させておく(nは任意の数)。この時系列データを真性化回路30において4個のデータの組み合わせ毎にそれぞれ図示したように分類して、「0」または「1」に変換する。これをn回繰り返して1ビットを作る。
【0073】
このように、nビットを1ビットに変換するテーブル(変換表)を用意しておき、このテーブルに対応する変換を実行するための変換回路を論理回路で作製すれば真性化回路30が得られる。このとき、テーブルは、「0」と「1」とが等しい確率で変換されるように作られなければならない。それが満たされていれば、どんなテーブルでも良い。
【0074】
(第4の具体例)
次に、本発明の第4の具体例として、本発明のシード生成回路を備えた乱数生成回路について説明する。
【0075】
図11は、本具体例にかかる乱数生成回路を表す模式図である。すなわち、この乱数生成回路100は、シード生成回路110と、擬似乱数生成回路120と、不確定論理回路130と、を有する。
【0076】
シード生成回路110は、図1乃至図10に関して前述したような本発明のシード生成回路である。擬似乱数生成回路120は、例えば、LFSRなどを用いて擬似乱数を生成する回路である。
【0077】
一方、不確定論理回路130としては、本発明者が特願2002−183967号において開示した不確定論理回路を用いることかできる。この回路は、デジタル入力値に対して一義的に決定されないデジタル出力値を与える。すなわち、特定の入力信号の組み合わせに対して出力の「0」または「1」が不確定になる作用を有する。論理出力が不確定の場合、不確定論理回路10を構成する素子のその時々の物理的な要因によって、出力が変動する。この物理現象を利用することにより、一定の入力に対して、出力が変動する(不確定となる)デジタル回路が得られ、「0」と「1」とのランダムなデジタル信号列が得られる。
【0078】
本具体例の乱数生成回路100の場合、シード生成回路110により生成されたシードが擬似乱数生成回路120に入力されて擬似乱数が生成される。そして、擬似乱数生成回路120が持っている周期性を不確定論理回路130により壊す。この結果、得られる乱数の質がより高品質になる。不確定論理回路130を合体すると回路規模自体は凡そ2倍になるが、それでもせいぜい1000ゲート程度であるので、後に詳述するように、IC(半導体集積回路)、ICカード用チップ、小型携帯端末などに搭載可能である。
【0079】
(第5の具体例)
次に、本発明の第5の具体例として、本発明のシード生成回路を設けた半導体集積回路(IC)について説明する。
【0080】
図12は、本具体例の半導体集積回路の要部構成を表す模式図である。本具体例は、例えばICカードなどに搭載することができるICであり、演算部(MPU)、メモリ(RAM,ROM,EEPROM)、補助演算部(Co-processor)、乱数生成回路100を有する。ここで、補助演算部(Co-processor)は、暗号処理を実行する役割を有する。
【0081】
乱数生成回路100において、本発明のシード生成回路と、例えば通常の擬似乱数生成回路などを組み合わせることにより、高品質の乱数を生成させることができる。この乱数生成回路100を搭載することで、演算部(MPU)や暗号処理専用の補助演算部(Co-processor)が常に高品質の乱数を読み出して使うことができ、また、暗号鍵をICの消費電流信号から読み出すハッキング技術に対する対策として、乱数を使って消費電流の変化を撹乱させることにも使え、高度な暗号セキュリティが実現可能となる。
図13は、本具体例の半導体集積回路200の回路規模を説明するための概念図である。すなわち、本発明のシード生成回路と、通常の擬似乱数生成回路などとを組み合わせた乱数生成回路100、全てCMOS論理回路のみで構成できる。しかも論理ゲートの数は、わずか数100程度で済むので、各種のICに搭載可能である。その回路規模は、図13に例示した程度あるいはそれ以下であり、IC全体のサイズを大幅に増大させるという問題も生じない。
【0082】
本発明の乱数生成回路を搭載することで、高度な暗号セキュリティ機能が利用可能になる。またゲーム機やモンテカルロシュミレーション用の乱数にも用いることができる。
【0083】
(第6の具体例)
次に、本発明の第6の具体例として、本発明の乱数生成回路を搭載したICカード及び携帯型の情報端末機器について説明する。
【0084】
図14は、本具体例のICカード及び情報端末機器を表す模式図である。すわなち、同図において300は、本具体例のICカードまたは情報端末機器を表す。ICカードとしては、例えば、銀行の預金カードや各種のプリペイドカード、企業などにおける社員証、入門セキュリティカードなどを挙げることができる。また、情報端末器器としては、例えば、携帯電話や、その他の携帯型端末を挙げることができる。このような携帯型端末は、例えば、、ワードプロセッサ、表計算、スケジューラ、ゲーム、電子メールの送受信、静止画や動画の撮影、などの各種の機能のうちのいずれかを備えたものを挙げることができる。
【0085】
例えば、図15に表したような携帯電話300においても、本発明の乱数生成回路100を搭載することができる。またこれと類似した携帯型情報端末においても同様である。
【0086】
そして、本発明においては、シード生成回路と、通常の擬似乱数生成回路などとを組み合わせた乱数生成回路100を搭載することにより、非常に小型で消費電力も抑制しつつ高度な暗号セキュリティ機能を付加することができる。すなわち、乱数生成回路100を用いることにより、例えば、使用者の認証プロセスや、取り扱うデータの暗号化とその復元などをはじめとして、ゲーム機能に利用したり、モンテカルロシュミレーション用の乱数にも用いることができる。
以上、具体例を例示しつつ本発明の実施の形態について説明した。しかし、本発明は、上述した各具体例に限定されるものではない。
【0087】
例えば、本発明において用いる発振回路、平滑回路、真性化回路、擬似乱数生成回路及び不確定論理回路の具体的な構成に関しては、上記の具体例に限定されず、その機能あるいは作用が同様な全ての回路に置換したものも本発明の範囲に包含される。
【0088】
例えば、出力が不確定なフリップフロップを複数個、並列もしくは直列に並べた論理回路を擬似乱数生成回路として用いることもできる。
【0089】
また、本発明の乱数生成回路によって作られたデジタル乱数は、そのまま使用することもできるが、これをフィードバックシフトレジスタのシードとして用いることにより、新たな乱数を生成することもできる。
【0090】
【発明の効果】
以上詳述したように、本発明によれば、シード生成回路により、同一クロックデータ列に乱数性を持たせることが可能となり、これをシードに利用することで、同一クロックのデータ列においても高い乱数性を得ることができる。
【0091】
連続発信する発信回路、平滑回路、ならびに真性化回路の各単位回路ブロックを例えば図1の如く組み合わせることにより、同一クロックのデータ列が高い乱数性を持つことは、本発明以前には知られていなかった効果である。
【0092】
しかも、本発明によれば、このような高品質の乱数を、フリップフロップ型の論理回路などを利用することにより少ない論理ゲート数で構成できるので、小規模な回路で済む。
【0093】
すなわち、本発明によれば、真性度が高い乱数をコンパクト、低消費電力且つ低価格で実現できるようになり、例えばICカードや情報端末機器などに応用してセキュリティーの確実な安価なシステムを実現できる点で産業上のメリットは多大である。
【図面の簡単な説明】
【図1】本発明の実施の形態にかかるシード生成回路の要部構成を表すブロック図である。
【図2】発振回路10の具体例を表す模式図である。
【図3】発振回路10のもう一つの具体例を表す模式図である。
【図4】本発明における平滑回路20の基本的な構成を表すブロック図である。
【図5】真性化回路30の作用を説明するための模式図である。
【図6】本発明の第1の具体例にかかるシード生成回路を表すブロック図である。
【図7】第1具体例のシード生成回路を統計的な検定にかけた結果を表す一覧表である。
【図8】8個のシード生成回路について、システム起動後のクロック数と乱数データの各1ビットについて、一様性の改善の傾向を表すグラフ図である。
【図9】本発明の第2の具体例にかかるシード生成回路を表す模式図である。
【図10】本発明の具体例にかかるシード生成回路を表す模式図である。
【図11】本発明の具体例にかかる乱数生成回路を表す模式図である。
【図12】本発明の具体例の半導体集積回路の要部構成を表す模式図である。
【図13】本発明の具体例の半導体集積回路200の回路規模を説明するための概念図である。
【図14】本発明の具体例の情報端末機器を表す模式図である。
【図15】本発明の情報端末機器としての携帯型電話である。
【図16】同一クロックデータ列における乱数性を説明するための概念図である。
【図17】擬似乱数回路におけるシードの役割を説明するための概念図である。
【符号の説明】
100 乱数生成回路
110 シード生成回路
120 擬似乱数生成回路
130 不確定論理回路
200 半導体集積回路
300 ICカード及び情報端末機器
Claims (10)
- 連続的または断続的に発振する発振回路と、
前記発振回路から出力されたデジタルデータ列における「0」と「1」との出現頻度を制御して時系列データとして出力する平滑回路と、
前記時系列データのうちの複数のビットを用いた演算処理により、1ビットのシードを生成する真性化回路と、
を備え、
前記発振回路は、第1の排他的論理和演算回路と、第1の反転回路と、第2の排他的論理和演算回路と、第2の反転回路と、をこの順に直列接続し、前記第1の排他的論理和演算回路の入力の一端と前記第2の排他的論理和演算回路の入力の一端とにそれぞれデータを入力するものであり、
前記第1及び第2の排他的論理和演算回路に入力されたデータが特定の組み合わせとなった場合のみ発振することを特徴とするシード生成回路。 - 前記平滑回路は、
擬似乱数を生成する擬似乱数生成手段と、
前記発振回路から出力された前記デジタルデータ列と、前記擬似乱数生成手段により生成された前記擬似乱数と、の排他的論理和を演算して前記時系列データとして出力する論理演算手段と、
を有することを特徴とする請求項1記載のシード生成回路。 - 前記平滑回路は、その出力において、前記発振回路から出力されたデジタルデータ列よりも「0」と「1」との出現頻度が1:1に近いことを特徴とする請求項1または2に記載のシード生成回路。
- 前記真性化回路は、前記演算処理を行う排他的論理和演算回路を有することを特徴とする請求項1〜3のいずれか1つに記載のシード生成回路。
- 前記真性化回路は、前記複数のビットの組み合わせに応じて「0」及び「1」のいずれかを割り当てるテーブルに基づいて前記1ビットのシードを生成することを特徴とする請求項1〜4のいずれか1つに記載のシード生成回路。
- 請求項1〜5のいずれか1つに記載のシード生成回路と、
前記シード生成回路により生成された前記シードに基づいて擬似乱数を生成する擬似乱数生成回路と、
を備えたことを特徴とする乱数生成回路。 - デジタル入力値に対して一義的に決定されないデジタル出力値を与える不確定論理回路をさらに備え、
前記擬似乱数を前記不確定論理回路に入力して、その出力を乱数として出力することを特徴とする請求項6記載の乱数生成回路。 - 請求項6または7に記載の乱数生成回路を備えたことを特徴とする半導体集積回路。
- 請求項8記載の半導体集積回路を備えたことを特徴とするICカード。
- 請求項8記載の半導体集積回路を備えたことを特徴とする情報端末機器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003019732A JP3696209B2 (ja) | 2003-01-29 | 2003-01-29 | シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器 |
US10/761,326 US7395288B2 (en) | 2003-01-29 | 2004-01-22 | Seed generating circuit, random number generating circuit, semiconductor integrated circuit, IC card, and information terminal equipment |
US12/153,410 US8073889B2 (en) | 2003-01-29 | 2008-05-19 | Seed generating circuit, random number generating circuit, semiconductor integrated circuit, IC card, and information terminal equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003019732A JP3696209B2 (ja) | 2003-01-29 | 2003-01-29 | シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004234153A JP2004234153A (ja) | 2004-08-19 |
JP3696209B2 true JP3696209B2 (ja) | 2005-09-14 |
Family
ID=32949531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003019732A Expired - Lifetime JP3696209B2 (ja) | 2003-01-29 | 2003-01-29 | シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7395288B2 (ja) |
JP (1) | JP3696209B2 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2422691A (en) * | 2005-01-26 | 2006-08-02 | Marconi Comm Ltd | Pseudo-random number generator and method of operating thereof |
TWI307038B (en) * | 2005-12-27 | 2009-03-01 | Ind Tech Res Inst | Random number generator for radio frequency identifciation tag and seed number generator for generating a seed number for operation of the random number generator |
EP1840730A1 (en) * | 2006-03-31 | 2007-10-03 | Alain Schumacher | Method and apparatus for generating true random numbers |
US20090327382A1 (en) * | 2006-07-25 | 2009-12-31 | Nec Corporation | Pseudo-random number generation device, stream encryption device and program |
US7860912B1 (en) * | 2006-12-08 | 2010-12-28 | Nvidia Corporation | Random number generator with improved uniformity for networking |
US8781111B2 (en) * | 2007-07-05 | 2014-07-15 | Broadcom Corporation | System and methods for side-channel attack prevention |
US20090125706A1 (en) * | 2007-11-08 | 2009-05-14 | Hoover Russell D | Software Pipelining on a Network on Chip |
JP5171315B2 (ja) * | 2008-02-28 | 2013-03-27 | 株式会社東芝 | 乱数生成回路 |
US8131789B2 (en) * | 2008-03-28 | 2012-03-06 | Atmel Corporation | True random number generator |
JP2010039838A (ja) * | 2008-08-06 | 2010-02-18 | Mega Chips Corp | 乱数生成回路及びコンピュータシステム |
DE102008048292B4 (de) * | 2008-09-22 | 2012-07-12 | Siemens Aktiengesellschaft | Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge |
US10213164B2 (en) * | 2008-09-26 | 2019-02-26 | Qualcomm Incorporated | Method and apparatus for under-sampled acquisition and transmission of photoplethysmograph (PPG) data and reconstruction of full band PPG data at the receiver |
JP2010266417A (ja) * | 2009-05-18 | 2010-11-25 | Sony Corp | 半導体集積回路、情報処理装置、および情報処理方法、並びにプログラム |
KR102083271B1 (ko) * | 2012-07-31 | 2020-03-02 | 삼성전자주식회사 | 플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법 |
US9141338B2 (en) * | 2012-11-16 | 2015-09-22 | Arm Limited | Storage circuit with random number generation mode |
JP6034153B2 (ja) | 2012-11-21 | 2016-11-30 | 株式会社東芝 | 乱数生成回路 |
JP2014224879A (ja) | 2013-05-16 | 2014-12-04 | 株式会社メガチップス | 乱数生成装置、暗号処理装置、記憶装置及び情報処理システム |
US9298424B2 (en) * | 2013-05-24 | 2016-03-29 | SK Hynix Inc. | Random number generating device |
JP6386904B2 (ja) * | 2014-12-19 | 2018-09-05 | 株式会社メガチップス | 乱数生成装置及び乱数生成方法 |
US9875085B2 (en) | 2015-07-28 | 2018-01-23 | Sandisk Technologies Llc | Memory system and method of generating a seed value |
KR101728626B1 (ko) * | 2016-01-04 | 2017-04-19 | 성균관대학교산학협력단 | 수신기에서 pn 코드를 획득하는 방법 및 pn 코드를 획득하는 수신기 |
JP6472766B2 (ja) | 2016-03-16 | 2019-02-20 | 株式会社東芝 | 乱数生成回路 |
US11646867B2 (en) * | 2017-12-22 | 2023-05-09 | The Boeing Company | Systems and methods implementing countermeasures to phase tracking attacks on ring oscillator based entropy sources |
JP7317297B2 (ja) * | 2019-03-05 | 2023-07-31 | ブリルニクスジャパン株式会社 | 固体撮像装置、固体撮像装置の駆動方法、および電子機器 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03204721A (ja) | 1990-01-08 | 1991-09-06 | Hitachi Ltd | 乱数発生回路 |
JP3204721B2 (ja) | 1992-03-31 | 2001-09-04 | 大日本印刷株式会社 | スライス状肉製品の包装方法 |
US6285761B1 (en) * | 1998-03-04 | 2001-09-04 | Lucent Technologies, Inc. | Method for generating pseudo-random numbers |
JP2000066592A (ja) * | 1998-08-19 | 2000-03-03 | Syst Kogaku Kk | 乱数生成装置 |
JP3447976B2 (ja) | 1999-03-26 | 2003-09-16 | システム工学株式会社 | 故障判断機能を備えた乱数生成装置 |
US6631390B1 (en) * | 2000-03-06 | 2003-10-07 | Koninklijke Philips Electronics N.V. | Method and apparatus for generating random numbers using flip-flop meta-stability |
JP2002215030A (ja) | 2001-01-17 | 2002-07-31 | Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd | 乱数発生方法 |
US6862605B2 (en) * | 2001-08-15 | 2005-03-01 | Scott A. Wilber | True random number generator and entropy calculation device and method |
FR2847998B1 (fr) * | 2002-11-29 | 2005-01-21 | Thales Sa | Generateur d'alea numerique reposant sur un compresseur arithmetique |
-
2003
- 2003-01-29 JP JP2003019732A patent/JP3696209B2/ja not_active Expired - Lifetime
-
2004
- 2004-01-22 US US10/761,326 patent/US7395288B2/en active Active
-
2008
- 2008-05-19 US US12/153,410 patent/US8073889B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20040213407A1 (en) | 2004-10-28 |
US20080270501A1 (en) | 2008-10-30 |
JP2004234153A (ja) | 2004-08-19 |
US7395288B2 (en) | 2008-07-01 |
US8073889B2 (en) | 2011-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3696209B2 (ja) | シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器 | |
US6954770B1 (en) | Random number generator | |
EP1782181B1 (en) | Method and apparatus for generating random data | |
US8468186B2 (en) | Combination of values from a pseudo-random source | |
US20060069706A1 (en) | Random number generator and method for generating random numbers | |
US20050120065A1 (en) | Pseudorandom number generator for a stream cipher | |
US20130346459A1 (en) | Method for generating random numbers | |
KR20140110142A (ko) | 난수 발생기 | |
US11487505B2 (en) | Physical unclonable function based true random number generator, method for generating true random numbers, and associated electronic device | |
Yakut et al. | Secure and efficient hybrid random number generator based on sponge constructions for cryptographic applications | |
US20150193206A1 (en) | Method for generating an output of a random source of a random generator | |
AVAROĞLU et al. | A novel S-box-based postprocessing method for true random number generation | |
Garipcan et al. | DESSB-TRNG: A novel true random number generator using data encryption standard substitution box as post-processing | |
Shanta et al. | Design of a lightweight reconfigurable prng using three transistor chaotic map | |
JP4417389B2 (ja) | デジタルロジックを利用した乱数発生装置及び方法 | |
JP3803664B2 (ja) | 乱数生成回路、半導体集積回路、icカード及び情報端末機器 | |
Rubio et al. | The use of linear hybrid cellular automata as pseudorandom bit generators in cryptography | |
Caran | Comparative analysis between counter mode deterministic random bit generators and chaos-based pseudo-random number generators | |
Origines et al. | A Novel Pseudo-random number generator algorithm based on entropy source epoch timestamp | |
Wang et al. | Thermal noise random number generator based on SHA-2 (512) | |
Garipcan et al. | FPGA modeling of a novel fully-synthesizable and secure TRNG based on key-dependent s-box | |
Fischer et al. | True random number generators in configurable logic devices | |
Yu et al. | On designing PUF-based TRNGs with known answer tests | |
Dang et al. | A True Random Number Generator on FPGA with Jitter-Sampling by Ring Generator | |
CN113760221B (zh) | 基于物理不可复制功能的真随机数产生器以及相关方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040528 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040730 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050203 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050207 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050408 |
|
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: 20050617 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050628 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 3696209 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090708 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090708 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100708 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110708 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120708 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130708 Year of fee payment: 8 |
|
EXPY | Cancellation because of completion of term |