JPWO2011117929A1 - 乱数生成器、暗号化装置、及び認証装置 - Google Patents
乱数生成器、暗号化装置、及び認証装置 Download PDFInfo
- Publication number
- JPWO2011117929A1 JPWO2011117929A1 JP2012506670A JP2012506670A JPWO2011117929A1 JP WO2011117929 A1 JPWO2011117929 A1 JP WO2011117929A1 JP 2012506670 A JP2012506670 A JP 2012506670A JP 2012506670 A JP2012506670 A JP 2012506670A JP WO2011117929 A1 JPWO2011117929 A1 JP WO2011117929A1
- Authority
- JP
- Japan
- Prior art keywords
- random number
- output
- unit
- input
- circuit
- 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.)
- Granted
Links
- 230000004044 response Effects 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 42
- 238000000034 method Methods 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 20
- 230000008859 change Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 16
- 230000002159 abnormal effect Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 230000010355 oscillation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
-
- 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)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Tests Of Electronic Circuits (AREA)
- Storage Device Security (AREA)
Abstract
真性度の高い乱数を生成するときの電力消費量とノイズ生成量とを低減する。このために、乱数生成器に、排他的論理和回路と、乱数判定部と、乱数生成指示禁止部と備える。排他的論理和回路は、複数のデジタル回路の各々の出力の排他的論理和を得る。また、乱数判定部は、該複数のデジタル回路の各々に対し、乱数の生成の指示に応じて生成される出力が乱数であるか否かの判定を行う。そして、乱数生成指示禁止部は、該複数のデジタル回路のうち該指示に応じて生成される出力が乱数でないと該乱数判定部が判定したものに対する乱数の生成の指示を禁止する。
Description
本明細書で議論される実施態様は、乱数の生成技術に関する。
情報化社会の発展に伴い、電子決済や住民基本台帳ネットワークなどの、情報ネットワークを利用したサービスが今後普及すると予想される。これらのサービスを安全に運用するためには情報セキュリティ技術が必須である。
情報セキュリティの基盤技術として、様々な暗号方式が利用されている。暗号方式は、公開鍵暗号方式と共通鍵暗号方式に大別される。公開鍵暗号方式とは、情報の暗号化と復号とで異なる鍵を用いる方式であり、暗号化に用いる鍵(公開鍵)を一般に公開する一方で、暗号文の復号に用いる鍵(秘密鍵)を受信者のみの秘密情報とすることで安全性を保つ方式である。これに対し、共通鍵暗号方式とは、情報の暗号化と復号とで共通の鍵(秘密鍵)を用いる方式であり、この秘密鍵を送信者及び受信者を除く第三者には秘密の情報とすることで安全性を保つ方式である。
これらの暗号方式の安全性は、秘密鍵の安全性に依存している。つまり、秘密鍵が何らかの手段で第三者に予測されてしまうと、暗号方式の安全性は崩壊する。そこで、秘密鍵は、第三者の予測を不可能にするために、乱数を用いて生成されることが一般的である。
乱数は、その生成法によって、擬似乱数と真性乱数(物理乱数)との2つに大別される。
擬似乱数とは、確定的な計算によって作り出された数列の一部分のことであり、擬似乱数生成アルゴリズムに、シード(seed)と呼ばれる種を初期値として与えることによって生成される、擬似的な乱数である。擬似乱数は、その生成手法(擬似乱数生成アルゴリズム)が分かってしまうと理論的には予測可能であり、内部の初期値(前述したシード)も分かってしまうと、先に計算しておくこともできてしまう。このため、秘密鍵の生成に擬似乱数を用いることは、暗号の安全性に問題が生じることがある。しかしながら、擬似乱数は計算により生成されるので、擬似乱数の生成に専用の装置は必須ではなく、汎用の演算装置等でも生成が可能という利点がある。
擬似乱数とは、確定的な計算によって作り出された数列の一部分のことであり、擬似乱数生成アルゴリズムに、シード(seed)と呼ばれる種を初期値として与えることによって生成される、擬似的な乱数である。擬似乱数は、その生成手法(擬似乱数生成アルゴリズム)が分かってしまうと理論的には予測可能であり、内部の初期値(前述したシード)も分かってしまうと、先に計算しておくこともできてしまう。このため、秘密鍵の生成に擬似乱数を用いることは、暗号の安全性に問題が生じることがある。しかしながら、擬似乱数は計算により生成されるので、擬似乱数の生成に専用の装置は必須ではなく、汎用の演算装置等でも生成が可能という利点がある。
一方、真性乱数(物理乱数)とは、例えば電子デバイス中の熱雑音のように、本質的にランダムな性質を有する物理現象を利用することによって生成される乱数である。このようにして生成される乱数には、再現性がなく、誰にも予測することが不可能であるので、真性乱数を用いて生成した秘密鍵を用いて行う暗号化は、安全性が高い。
ところで、電子決済や住民基本台帳ネットワークなどのサービスを利用する際におけるエンドユーザ側のデバイスとして、スマートカードが知られている。
スマートカードは、IC(集積回路)チップを搭載したカードである。このICチップ内部のメモリ領域には、ユーザに与えられた秘密鍵が格納されている。スマートカードのICチップには、暗号化機能やデジタル署名/認証機能などの各種機能を提供する演算処理装置が搭載されているものもある。これらの機能が使用される際には、ユーザの秘密鍵が用いられる。
スマートカードは、IC(集積回路)チップを搭載したカードである。このICチップ内部のメモリ領域には、ユーザに与えられた秘密鍵が格納されている。スマートカードのICチップには、暗号化機能やデジタル署名/認証機能などの各種機能を提供する演算処理装置が搭載されているものもある。これらの機能が使用される際には、ユーザの秘密鍵が用いられる。
前述したように、これらの秘密鍵は真性乱数を用いて生成することが、安全上望ましい。そこで、上述したスマートカードのような小型機器に、乱数を生成するための専用の乱数生成器を備えることが行われている。
このような乱数生成器のひとつに、ラッチ回路やフリップフロップ回路等のデジタル回路におけるメタステーブルを利用するものが提案されている。
まず、メタステーブルについて、図1A及び図1Bを用いて説明する。
まず、メタステーブルについて、図1A及び図1Bを用いて説明する。
図1Aには、RSラッチの回路構成例が図解されている。このRSラッチ10は、NAND(否定論理積)ゲート11及び12を用いて構成されている。
このRSラッチ10の入力は負論理である。
このRSラッチ10の入力は負論理である。
なお、本明細書では、電位の異なる2値の論理レベルにおけるハイ・レベルを値「1」と表現し、ロー・レベルを値「0」と表現することとする。また、図面においては、負論理の信号を信号名の上にオーバーバーを付すことで表現しているが、本明細書においては、負論理の信号を“#”で表記するものとする。従って、例えば、RSラッチ10のセット入力は“#S”と表記し、RSラッチ10のリセット入力は“#R”と表記する。
NANDゲート11の2つの入力には、それぞれ、セット入力“#S”と、NANDゲート12の出力とが入力される。また、NANDゲート12の2つの入力には、それぞれ、リセット入力“#R”と、NANDゲート11の出力とが入力される。また、NANDゲート11の出力がRSラッチ10の出力Qとなる。なお、NANDゲート12の出力からは、出力“#Q”が出力される。
図1Bは、このRSラッチ10の真理値表である。なお、この真理値表においては、セット入力S及びリセット入力Rを正論理で表記している。
真理値表からも分かるように、RSラッチ10は、入力S=0且つ入力R=0のときには、出力値はそのまま保持されるので、Q=Qとなり、“#Q”=“#Q”となる。また、RSラッチ10は、入力S=0且つ入力R=1のときには出力値はリセットされて、Q=0となり、“#Q”=1となる。更に、RSラッチ10は、入力S=1且つ入力R=0のときには出力値はセットされて、Q=1、“#Q”=0となる。
真理値表からも分かるように、RSラッチ10は、入力S=0且つ入力R=0のときには、出力値はそのまま保持されるので、Q=Qとなり、“#Q”=“#Q”となる。また、RSラッチ10は、入力S=0且つ入力R=1のときには出力値はリセットされて、Q=0となり、“#Q”=1となる。更に、RSラッチ10は、入力S=1且つ入力R=0のときには出力値はセットされて、Q=1、“#Q”=0となる。
RSラッチ10は、以上の入力の組み合わせのいずれかであれば、出力の論理は安定している。ところが、RSラッチ10は、入力S=1且つ入力R=1のときには、Q=“#Q”=1となってしまう。つまり、この場合には、本来は反対の論理を示すはずであるQの論理値と“#Q”の論理値とが、揃って「1」となってしまう。このとき、RSラッチ10の出力は、どちらも、中間電位の不安定な状態となっている。このような、デジタル回路としては異常である不安定な状態が、メタステーブル(metastable)と呼ばれている。一般的には、このようなメタステーブルの状態を回避するために、RSラッチ10に対するS=1且つR=1の入力は禁止される。
次に、このようなRSラッチ10のメタステーブルを用いた乱数生成器について、図2A及び図2Bを用いて説明する。
まず、図2Aについて説明する。図2Aは、RSラッチ10を用いた乱数生成器の回路構成の第一の例である。
まず、図2Aについて説明する。図2Aは、RSラッチ10を用いた乱数生成器の回路構成の第一の例である。
この乱数生成器20は、RSラッチ10のセット入力“#S”及びリセット入力“#R”の両方に同一の値Aを入力するように構成したものである。ここで、この乱数生成器20の出力である、RSラッチ10の出力Q及び出力“#Q”を、それぞれ、B及びCとする。
この乱数生成器20は、入力A=0のときは、出力B及び出力Cはどちらも1となり、この状態で出力の値は安定している。ところが、ここで、値Aを0から1に変化させると、出力Bが1であって出力Cが0である状態と、出力Bが0であって出力Cが1である状態とが生じて、出力が不定となる。これは、RSラッチ10がメタステーブルの状態に置かれており、その出力が不確定の状態になっているためである。乱数生成器20は、この不確定性を乱数生成に利用する。
次に図2Bについて説明する。図2Bは、この乱数生成器20の入出力波形例であり、入力Aとして、0と1との交番信号(クロック信号)を入力した場合の出力Bの波形を描いたものである。
この出力Bの波形に注目すると、入力Aが0から1へと変化するとき(すなわち、クロック信号の立ち上がり時)において、RSラッチ10がメタステーブルの状態に陥り、出力Bの値は安定しない状態となる。このメタステーブルの状態は、クロック信号の立ち上がり時からある一定の時間Tdの期間継続し、その後、出力Bの値は、0及び1のうちのどちらかに収束するが、そのどちらに収束するかは不定である。乱数生成器20は、このメタステーブルの状態の後に収束する出力Bの値を、乱数の生成結果とする。
このような、デジタル回路のメタステーブルを利用して乱数を生成する手法は広く知られている。しかしながら、このような構成を有する乱数生成器20を実装しても、実際には乱数を発生しない場合も少なくない。
まず、RSラッチ10を構成するNANDゲート11とNANDゲート12とのドライブ能力に差があると、出力値が2値のうちの一方に偏ってしまう。このため、乱数を生成するには、この両者のドライブ能力ほぼ同一である必要がある。
更に、入力信号Aは、NANDゲート11とNANDゲート12とに同時に入力される必要があり、この入力信号Aの入力タイミングが異なれば、出力値に偏りが生じてしまう。つまり、NANDゲート11とNANDゲート12とに入力信号Aが到着する時刻のずれ(スキュー)が小さい必要がある。
このように、RSラッチ10の個体差に起因して乱数生成器20が乱数を発生しない場合がある。しかしながら、上述した要件を満たすことのできるRSラッチ10を得ることは容易ではない。例えば、あるFPGA(Field Programmable Gate Array )に実装されていた64個のRSラッチ10の各々を用いて乱数生成器20を構成したところ、実際に乱数を発生させたものはわずか4個(確率1/16)であった。
次に図3について説明する。図3は、RSラッチ10を用いた乱数生成器の回路構成の第二の例である。
図3の乱数生成器30は、n個(nは2以上の整数)のRSラッチ10−1、…、10−nとXOR(排他的論理和)ゲート31とを備えて構成されている。
図3の乱数生成器30は、n個(nは2以上の整数)のRSラッチ10−1、…、10−nとXOR(排他的論理和)ゲート31とを備えて構成されている。
RSラッチ10−1、…、10−nは、各々のセット入力“#S”及びリセット入力“#R”に同一のクロック信号が入力される。XORゲート31は、RSラッチ10−1、…、10−nの各々の出力Qが入力されて、その排他的論理和を、乱数生成器30での乱数の生成結果として出力する。
このように、乱数生成器30では、n個のRSラッチ10−1、…、10−nを使用して図2Aの乱数生成器20をn個構成し、これらの出力の排他的論理和を求めて1ビットに集約して、乱数生成器30での乱数の生成結果としている。このようにすることで、前述したような原因によって乱数を生成しない乱数生成器20が含まれていても、真性度の高い乱数を得ることができる。
この図3の乱数生成器30のように多数のラッチを実装した上で、各ラッチのメタステーブルを利用して乱数の生成を行う手法は、少ない回路規模で真性度の高い乱数を得ることができることもあり、広く利用されている。
なお、乱数生成器30をICチップ上に実装する場合に、RSラッチ10−1、…、10−nをICチップ上で分散して配置する手法が採られることがある。RSラッチ10−1、…、10−nをICチップ上で集中配置すると、その配置位置の周辺に配置された他の回路から発せられるノイズがRSラッチ10−1、…、10−nの各々に対し与える影響は同様のものになる。これに対し、上述のような分散配置を行うと、RSラッチ10−1、…、10−nの各々が受けるICチップ上の様々な回路から発せられるノイズの影響が異なるものとなるので、得られる乱数の真性度の向上が期待できる。RSラッチ10−1、…、10−nのICチップ上での分散配置は、このような理由により行われている。
なお、この他の背景技術として、デジタル入力値に対して一義的に決定されないデジタル出力値を得ると共に、このデジタル出力値における「0」と「1」の出現頻度を均等にするという乱数生成の技術も知られている。
前述したように、これらの秘密鍵は、真性乱数を用いて生成することが安全上望ましい。しかしながら、上述したスマートカードのような小型機器に真性乱数を生成するための専用の乱数生成器を備えるには、幾つかの問題点がある。すなわち、このような小型機器では、使用できるハードウェアリソースが限られている。また、このような小型機器では、電源電圧も低いことが多いため、消費電力の低い乱数生成器が求められる。更には、このような小型機器に搭載されるICチップはそのサイズが小さいため、チップ上に構成される他の回路に影響を及ぼさないように、発生するノイズが少ない乱数生成器であることが望ましい。つまり、スマートカードなどの小型機器では、低ノイズ・低消費電力で高品質な乱数(予測が困難である乱数)を生成する乱数生成器が求められる。
図3に構成を図解した乱数生成器30を、前述したようにRSラッチ10−1、…、10−nのICチップ上で分散配置して実装すると、今度は、RSラッチ10−1、…、10−nがメタステーブルの状態で発生させるノイズの他の回路への影響が問題となる。
メタステーブルによって発生するノイズは、発振回路が発生させるものに比べれば格段に小さい。また、前述したように、RSラッチ10−1、…、10−nのうちメタステーブルとなって実際に乱数を発生するものはそのうちの一部のみである。このような事情から、RSラッチ10−1、…、10−nをICチップ上で分散配置したときにRSラッチ10−1、…、10−nが発するノイズの影響は、大きな問題としては把握されていなかった。
ここで図4について説明する。図4は、図3の乱数生成器30の入出力波形の観測例である。
図4において、上側の波形は乱数生成器30に入力されるクロック信号の観測波形であり、下側の波形は、乱数生成器30の出力(すなわち、生成された乱数)の観測波形である。
図4において、上側の波形は乱数生成器30に入力されるクロック信号の観測波形であり、下側の波形は、乱数生成器30の出力(すなわち、生成された乱数)の観測波形である。
この図4における下側の観測波形に注目すると、乱数生成器30の出力が発振のような異常状態となっており、また、この下側の観測波形の山谷のタイミングが、上側の観測波形とほぼ一致していることが分かる。つまり、この発振様の異常状態を発信源とするノイズが、入力のクロック信号にまで影響を及ぼしていることが、この観測波形から推定される。乱数生成器30に入力されるクロック信号にノイズが多く含まれると、そのノイズがクロック信号の伝送線を経る等して届くことで、他の回路が誤動作する可能性がある。
乱数生成器30の出力がこのような発振様の異常状態を呈する原因について、図5A、図5B、及び図5Cを用いて説明する。
図5Aは、図2Aの乱数生成器20であって、実際に乱数を発生するものについての入出力波形の例である。
図5Aは、図2Aの乱数生成器20であって、実際に乱数を発生するものについての入出力波形の例である。
図5Aにおいて、上段の波形は、入力Aの信号波形であり、クロック信号が入力されている。また、中段及び下段の波形は、どちらも出力Bの信号波形である。但し、中段の波形を出力する乱数生成器20は、下段の波形を出力する乱数生成器20とは、使用されているRSラッチ10についてのメタステーブルの状態の継続時間Tdが異なっている。
このように、図3の乱数生成器30を構成するn個の乱数生成器20のうち実際に乱数を生成するものの間では、メタステーブルの状態の継続時間Tdが異なっている。
次に図5Bについて説明する。図5Bも、図2Aの乱数生成器20ではあるが、実際には乱数を発生しないものについての入出力波形の例である。なお、この例は、入力Aが0から1へと変化すると、使用されているRSラッチ10がメタステーブルの状態となるが、その後に出力Bが常に0となってしまう乱数生成器20についてのものである。
次に図5Bについて説明する。図5Bも、図2Aの乱数生成器20ではあるが、実際には乱数を発生しないものについての入出力波形の例である。なお、この例は、入力Aが0から1へと変化すると、使用されているRSラッチ10がメタステーブルの状態となるが、その後に出力Bが常に0となってしまう乱数生成器20についてのものである。
図5Bにおいて、上段の波形は、入力Aの信号波形であり、クロック信号が入力されている。また、中段及び下段の波形は、どちらも出力Bの信号波形である。但し、図5Bの波形例と同様に、中段の波形を出力する乱数生成器20と、下段の波形を出力する乱数生成器20との間で、使用されているRSラッチ10についてのメタステーブルの状態の継続時間Tdが異なっている。
このように、図3の乱数生成器30を構成するn個の乱数生成器20のうち実際に乱数を生成しないものの間でも、メタステーブルの状態の継続時間Tdが異なっている。
次に図5Cについて説明する。図5Cは、図3の乱数生成器30の各部の信号波形例である。なお、この波形例は、4個のRSラッチ10−1〜10−4を備えて乱数生成器30が構成されている場合のものである。
次に図5Cについて説明する。図5Cは、図3の乱数生成器30の各部の信号波形例である。なお、この波形例は、4個のRSラッチ10−1〜10−4を備えて乱数生成器30が構成されている場合のものである。
図5Cにおいて、最上段である一番目の波形は、入力Aの信号波形であり、クロック信号が入力されている。また、二番目から五番目の波形は、それぞれ、RSラッチ10−1、10−2、10−3、及び10−4の出力Bの信号波形であり、メタステーブルの状態の継続時間Tdが互いに異なっている様子を表現している。そして、最下段である六番目の波形は、乱数生成器30により生成された乱数を表している、XORゲート31の出力信号の波形である。
このように、RSラッチ10−1、10−2、10−3、及び10−4のメタステーブルの状態の継続時間Tdが互いに異なっていると、XORゲート31の出力信号が発振様の異常状態を呈することが分かる。
以上のように、図3の乱数生成器30では、乱数を生成する・生成しないに関わらず、各RSラッチ10−1、…、10−nのメタステーブルの状態の継続時間Tdの違いが前述の異常状態を生じさせ、その結果としてノイズを発生させることになる。また、この各RSラッチ10−1、…、10−nのメタステーブルの状態自体も当然ノイズ源となり得る。従って、このような動作を行わせるRSラッチ10−1、…、10−nをICチップ上で分散配置すれば、他の回路の誤動作を誘引しかねない。
また、前述したように、図3の乱数生成器30では、RSラッチ10−1、…、10−nのうちで実際には乱数を発生しないものでもメタステーブルの状態を生じさせているが、このための電力消費は乱数の生成には全く寄与しておらず、無駄である。このような電力消費の無駄は、スマートカードのような前述した小型機器では深刻な問題である。
本発明は上述した問題に鑑みてなされたものであり、その解決しようとする課題は、真性度の高い乱数を生成するときの電力消費量とノイズ生成量とを低減することである。
本発明は上述した問題に鑑みてなされたものであり、その解決しようとする課題は、真性度の高い乱数を生成するときの電力消費量とノイズ生成量とを低減することである。
本明細書で後述する乱数生成器に、排他的論理和回路と、乱数判定部と、乱数生成指示禁止部とを有するというものがある。ここで、排他的論理和回路は、複数のデジタル回路の各々の出力の排他的論理和を得る。また、乱数判定部は、該複数のデジタル回路の各々に対し、乱数の生成の指示に応じて生成される出力が乱数であるか否かの判定を行う。そして、乱数生成指示禁止部は、該複数のデジタル回路のうち該指示に応じて生成される出力が乱数でないと該乱数判定部が判定したものに対する乱数の生成の指示を禁止する。
また、本明細書で後述する暗号化装置に、上述した乱数生成器と、暗号化処理部とを有するというものがある。ここで、暗号化処理部は、該乱数生成器が生成した乱数列を暗号鍵として用いて、情報の暗号化処理を行う。
また、本明細書で後述する復号装置に、本明細書で後述する暗号化装置に、上述した乱数生成器と、通信部と、復号処理部と、認証処理部とを有するというものがある。ここで、通信部は、認証対象装置との間で通信を行って各種の情報の授受を行う。また、復号処理部は、暗号化されている情報に対し、正規の認証対象装置との間で共有されている所定の暗号鍵を用いて復号処理を施す。そして、認証処理部は、該復号処理部による復号処理によって得られた情報に基づいて該認証対象装置に対する認証処理を行う。この構成において、該通信部は、該乱数生成器が生成した乱数列を該認証対象装置へ送信したときに該乱数列を受信した該認証対象装置から送られてくる、該乱数列に対して該認証対象装置で施された暗号化処理により得られた暗号化情報を受信する。また、該復号処理部は、該通信部が受信した暗号化情報に対して該復号処理を施す。そして、該認証処理部は、該認証処理において、該通信部が受信した暗号化情報に対して該復号処理部が該復号処理を施して得られた復号情報が、該認証対象装置へ送信した乱数列と一致するか否かの判定を行う。ここで、該復号情報と該欄数列とが一致すると判定したときには、該認証処理部は、該認証対象装置が正規のものであるとの認証結果を得る。
本明細書で後述する乱数生成器は、少ない電力消費量及び少ないノイズ生成量で、真性度の高い乱数を生成することができる。
まず図6について説明する。図6は、本実施形態に係る乱数生成器の回路構成例が図解されている。
この乱数生成器100は、n個(nは2以上の整数)の乱数生成回路110−1、…、110−n、XORゲート120、マルチプレクサ130、乱数判定部140、及び判定結果保持部150を備えて構成されている。
この乱数生成器100は、n個(nは2以上の整数)の乱数生成回路110−1、…、110−n、XORゲート120、マルチプレクサ130、乱数判定部140、及び判定結果保持部150を備えて構成されている。
乱数生成回路110−1、…、110−nは、それぞれ、2入力のNANDゲート111−1a、111−1b、…、111−na、111−nbと、2入力のAND(論理積)ゲート112−1、…、112−nと、を備えて構成されているデジタル回路である。なお、乱数生成回路110−1、…、110−nは構成が同一である。そこで、ここでは、乱数生成回路110−1の構成についてのみ説明する。
乱数生成回路110−1において、NANDゲート111−1aの2つの入力には、それぞれ、ANDゲート112−1の出力と、NANDゲート111−1bの出力とが接続されている。また、NANDゲート111−1bの2つの入力には、それぞれ、ANDゲート112−1の出力と、NANDゲート111−1aの出力とが接続されている。
つまり、NANDゲート111−1aとNANDゲート111−1bとでRSラッチ回路が構成されており、このRSラッチ回路のセット入力及びリセット入力の両方に、ANDゲート112−1の出力信号が入力されるように構成されている。そして、NANDゲート111−1aの出力が、この乱数生成回路110−1の出力となっている。
乱数生成回路110−1は以上のように構成されている。つまり、乱数生成回路110−1は、図2Aの乱数生成器20と同一の回路構成を備えているのである。
ANDゲート112−1は、乱数生成回路110−1内の上述したRSラッチ回路のセット入力及びリセット入力へのクロック信号の入力のゲーティングを行うためのものである。このANDゲート112−1の動作をより具体的に説明する。
ANDゲート112−1は、乱数生成回路110−1内の上述したRSラッチ回路のセット入力及びリセット入力へのクロック信号の入力のゲーティングを行うためのものである。このANDゲート112−1の動作をより具体的に説明する。
ANDゲート112−1は、その一方の入力に、他の回路から送られてくるクロック信号(例えば図2Bにおける入力信号Aのような、0と1との交番信号)が入力され、その他方の入力に、後述する判定結果保持部150のn個の出力のうちの1つが入力される。ANDゲート112−1は、この2つの入力の論理積を求めて出力する。従って、ANDゲート112−1は、判定結果保持部150からの入力が1である期間は、他の回路から送られてくるクロック信号を出力して、上述したRSラッチ回路のセット入力及びリセット入力の両方に入力する。すなわち、ANDゲート112−1は、判定結果保持部150からの入力が1である期間は、他の回路から送られてくるクロック信号を、上述したRSラッチ回路に入力する。
一方、ANDゲート112−1は、判定結果保持部150からの入力が0である期間は、クロック信号の論理とは無関係に0を出力して、上述したRSラッチ回路のセット入力及びリセット入力の両方に入力する。ANDゲート112−1は、判定結果保持部150からの入力が0である期間は、このようにして、上述したRSラッチ回路に0を入力することで、乱数生成回路110−1に対する、乱数の生成の指示を禁止する。
XORゲート120は、上述した構成を各自備えている乱数生成回路110−1、…、110−nの出力の排他的論理和を求めて出力する排他的論理和回路である。
マルチプレクサ130は、乱数生成回路110−1、…、110−nの各々の出力信号のうちのいずれかを、乱数判定回路140から送られてくる選択指示信号I_SELによる選択指示に従ってひとつずつ選択し、選択された信号を出力する選択部である。マルチプレクサ130により選択された出力信号は乱数判定部140に送られる。
マルチプレクサ130は、乱数生成回路110−1、…、110−nの各々の出力信号のうちのいずれかを、乱数判定回路140から送られてくる選択指示信号I_SELによる選択指示に従ってひとつずつ選択し、選択された信号を出力する選択部である。マルチプレクサ130により選択された出力信号は乱数判定部140に送られる。
乱数判定部140は、判定結果保持部150を制御して、乱数生成回路110−1、…、110−nの各々に対し、乱数の生成の指示を与える。より具体的には、乱数判定部140は、乱数生成回路110−1、…、110−nの上述したRSラッチ回路の各々に対し、当該RSラッチ回路がメタステーブル状態となって出力を不定状態(乱数)とするような入力(このような入力を「不定状態入力」と称することとする)を、乱数の生成の指示として入力する。そして、乱数生成回路110−1、…、110−nのうち乱数の生成の指示を与えたものの出力、すなわち、前述した不定状態入力を入力したRSラッチ回路の出力が、乱数であるか否かを、乱数判定部140は判定し、その判定結果を判定結果保持部150に出力する。
判定結果保持部150は、乱数生成回路110−1、…、110−nにひとつずつ対応付けられているn個のDフリップフロップ(以下、「D−FF」と称することとする)150−1、…、150−nを備えて構成されている。D−FF150−1、…、150−nは、その各々の入力に、乱数判定部140からのn個の出力が1つずつ入力されており、その出力、すなわち、乱数判定部140による判定結果の保持を行う。また、D−FF150−1、…、150−nの各々の出力は、判定結果保持部150の出力として、それぞれ、乱数生成回路110−1、…、110−nの各々のANDゲート112−1、…、112−nに入力される。
なお、D−FF150−1、…、150−nを、n個のDラッチで置き換えて判定結果保持部150を構成することもできる。一般に、DラッチはDフリップフロップよりも回路規模が小さいので、Dラッチで判定結果保持部150を構成することにより、乱数生成器100の回路規模が小さくなる。
以上のように構成されている図6の乱数生成器100の動作について説明する。
まず、この乱数生成器100に対して電力の供給が開始されると、判定結果保持部150のD−FF150−1、…、150−nは、リセットされ、初期値として0が格納されるものとする。すると、このとき、ANDゲート112−1、…、11−nの出力はいずれも0となって、乱数生成回路110−1、…、110−nの出力は1となる。その後、D−FF150−1、…、150−nの格納値が0である限り、乱数生成回路110−1、…、110−nの出力は不変(値1)のまま保持される。
まず、この乱数生成器100に対して電力の供給が開始されると、判定結果保持部150のD−FF150−1、…、150−nは、リセットされ、初期値として0が格納されるものとする。すると、このとき、ANDゲート112−1、…、11−nの出力はいずれも0となって、乱数生成回路110−1、…、110−nの出力は1となる。その後、D−FF150−1、…、150−nの格納値が0である限り、乱数生成回路110−1、…、110−nの出力は不変(値1)のまま保持される。
電力供給開始時における以上の初期化動作が完了すると、次に、乱数判定部140は、乱数生成回路110−1、…、110−nの各々に対し、乱数の生成の指示に応じて生成される出力が乱数であるか否かの判定を行う。そして、乱数判定部140は、この判定結果を判定結果保持部150に保持させる。なお、このために乱数判定部140が行う動作は、乱数生成回路110−1、…、110−nの各々に対して同一であるので、ここでは、乱数生成回路110−1に対して乱数判定部140が行う動作のみを詳細に説明する。
まず、乱数判定部140は、マルチプレクサ130を制御して乱数生成回路110−1の出力を選択させると共に、D−FF150−1に1を格納する。すると、このとき、ANDゲート112−1は、他の回路から送られてくるクロック信号を出力するようになり、このクロック信号が、乱数生成回路110−1が備えているRSラッチ回路におけるセット入力とリセット入力とに入力される。
ここで、ANDゲート112−1から入力されるクロック信号が0から1へと変化すると、ANDゲート112−1の出力も0から1へと変化し、不定状態入力を乱数生成回路110−1のRSラッチ回路に入力するようになる。つまり、ANDゲート112−1は、このとき、乱数の生成の指示を乱数生成回路110−1に与えることになって、乱数生成回路110−1が有するRSラッチ回路はメタステーブルの状態に陥り、出力の値が安定しない状態となる。
その後、ANDゲート112−1から入力されるクロック信号の立ち上がりから一定の時間Tdの期間継続すると、乱数生成回路110−1の出力(すなわちRSラッチ回路の出力)が、0及び1のうちのどちらかに収束する。この出力は、マルチプレクサ130を経て乱数判定部140に入力される。
乱数判定部140は、乱数生成回路110−1のRSラッチ回路に不定状態入力を入力しているときにおける、そのRSラッチ回路の該メタステーブル状態を経た後の出力の観測を行う。なお、この観測は、ANDゲート112−1から入力されるクロック信号の所定クロック数分繰り返される。
このとき、乱数判定部140は、クロック信号の当該所定クロック数分に亘り繰り返して観測された当該出力において、出力の論理が所定回数連続して変化しない状態が生じているか否かを判定する。ここで、乱数判定部140は、出力の論理が当該所定回数連続して変化しない状態が当該観測の結果に含まれている場合には、乱数生成回路110−1のRSラッチ回路の出力は乱数ではない(すなわち、このRSラッチ回路は乱数を生成しない)との判定を下す。一方、乱数判定部140は、当該観測の結果において、出力の論理が当該所定回数連続するまでに変化していた場合には、乱数生成回路110−1のRSラッチ回路の出力は乱数である(すなわち、このRSラッチ回路は乱数を生成する)との判定を下す。
次に、乱数判定部140は、乱数生成回路110−1のRSラッチ回路の出力が乱数ではないと判定した場合には、判定結果保持部150のD−FF150−1に0を格納する。ANDゲート112−1は、D−FF150−1で保持されているこの判定結果を受け取ると、この判定結果をそのまま出力する。つまり、ANDゲート112−1は、D−FF150−1で保持されている値が0である場合には、この値をそのまま乱数生成回路110−1に与える。従って、このときの乱数生成回路110−1の出力は1となる。その後、D−FF150−1の格納値が0である限り、ANDゲート112−1から乱数生成回路110−1への入力値が0である状態が継続されるので、乱数生成回路110−1の出力は不変(値1)のまま保持される。つまり、判定結果保持部150のD−FF150−1に0が格納された場合には、ANDゲート112−1は、乱数生成回路110−1に対する乱数の生成の指示を禁止する動作を行う。
その一方で、乱数判定部140は、乱数生成回路110−1のRSラッチ回路の出力は乱数であると判定した場合には、D−FF150−1に格納されている値1をそのまま維持する。従って、この場合には、乱数生成回路110−1のRSラッチ回路による乱数の生成が継続される。
乱数判定部140は、マルチプレクサ130と判定結果保持部150とを以上のように制御して、乱数の生成の指示に応じて乱数生成回路110−1のRSラッチ回路で生成される出力が乱数であるか否かの判定動作と、その判定結果の保持動作とを行う。乱数判定部140は、マルチプレクサ130を制御して乱数生成回路110−1、…、110−nの各々の出力の選択をひとつずつ切り換えながら、上述した動作を、乱数生成回路110−1、…、110−nの各々に対して順次行う。
その後、乱数生成回路110−1、…、110−nの各々に対しての上述した動作が完了すると、乱数判定部140は、自身動作を停止させると共にマルチプレクサ130の動作も停止させてそれ以上の電力消費を抑制する。すると、その後は、乱数生成回路110−1、…、110−nのうち、乱数の生成の指示に応じて生成される出力が乱数であると乱数判定部140が判定したもののみが乱数の生成動作を行い、その出力がXOR120に入力されるようになる。その一方、乱数生成回路110−1、…、110−nのうち、乱数の生成指示に応じて生成される出力が乱数ではないと乱数判定部140が判定したものに対しては、RSラッチ回路をメタステーブル状態とする不定状態入力が禁止され、値1を常に出力させる。この結果、乱数生成回路110−1、…、110−nのうち乱数の生成指示に応じて生成される出力が乱数でないと乱数判定部140が判定したもののRSラッチ回路をメタステーブル状態とすることで発生するノイズが抑えられ、また、電力消費も抑制される。
ここで図7について説明する。図7は、図6の乱数生成器100の入出力波形の観測例である。
図7において、上側の波形は乱数生成器100に入力されるクロック信号の観測波形であり、下側の波形は、乱数生成器100の出力(すなわち、生成された乱数)の観測波形である。
図7において、上側の波形は乱数生成器100に入力されるクロック信号の観測波形であり、下側の波形は、乱数生成器100の出力(すなわち、生成された乱数)の観測波形である。
この図7の波形を図4の波形と対比すると、図6の乱数生成器100では、図3の乱数生成器30に対して、発振様の異常状態が格段に減少していることが分かり、また、これに伴い、クロック信号に影響を与えるノイズも顕著に減少していることが分かる。
ここで、図6の乱数生成器100によるノイズ及び消費電力の削減効果の定量的な見積もりを試みる。
あるFPGAでは、実装したRSラッチ回路のうち、乱数を発生させることのできたものは、全体の1/16であった。つまり、図6の乱数生成器100では、実装したRSラッチ回路のうちの15/16について、乱数の生成動作を停止させることになる。従って単純に考えると、図6の乱数生成器100は、従来のもの(例えば図3の乱数生成器30)に比べ、ノイズの発生量は約1/16になることが期待される。
あるFPGAでは、実装したRSラッチ回路のうち、乱数を発生させることのできたものは、全体の1/16であった。つまり、図6の乱数生成器100では、実装したRSラッチ回路のうちの15/16について、乱数の生成動作を停止させることになる。従って単純に考えると、図6の乱数生成器100は、従来のもの(例えば図3の乱数生成器30)に比べ、ノイズの発生量は約1/16になることが期待される。
次に、消費電力について検討する。RSラッチ回路の消費電力をαと仮定し、D型フリップフロップ回路の消費電力をRSラッチの2倍である2αと仮定する。RSラッチを128個実装することを想定すると、従来のもの(例えば図3の乱数生成器30)の消費電力は、128個のRSラッチ回路の消費電力を考慮して、128αとなる。これに対し、図6の乱数生成器100による消費電力は、乱数を生成する8個のRSラッチ回路と、8個のRSラッチ回路の入力に接続されている8個のD型フリップフロップ回路の消費電力を考慮して、8α+8×2α=24αとなる。従って、24α/128α=3/16より、図6の乱数生成器100は、従来のものに比べて、消費電力が約3/16になることが期待される。
また、図6の乱数生成器100は、乱数生成回路110−1、…、110−nに対する乱数の生成の指示を禁止する場合には、判定結果保持部150のD−FF150−1、…、150−nには値0が格納されるように構成されている。また、D−FF150−1、…、150−nは、この値0を、乱数生成回路110−1、…、110−nのANDゲート112−1、…、112−nに出力している。更に、このとき、ANDゲート112−1、…、112−nは、D−FF150−1、…、150−nからの入力値が0である場合には、値0を、乱数生成回路110−1、…、110−nのRSラッチ回路に出力している。
D−FF150−1、…、150−nは、電位の異なる2値の論理レベルにおけるロー・レベルの電位(すなわち値0)を出力する方が、ハイ・レベルの電位(すなわち値1)を出力するよりも消費電力が少ない。また、ANDゲート112−1、…、112−nも同様であり、電位の異なる2値の論理レベルにおけるロー・レベルの電位を出力する方が、ハイ・レベルの電位を出力するよりも消費電力が少ない。ここで、メタステーブル状態を利用してRSラッチ回路に乱数を生成させても、実際には乱数を発生させないものの方が、乱数を発生させるものよりも格段に多いことは先に説明した。従って、乱数の生成指示の禁止に、D−FF150−1、…、150−nの出力に値1ではなく値0を割り当て、また、ANDゲート112−1、…、112−nの出力にも値1ではなく値0を割り当てたことで、図6の乱数生成器100の電力消費が削減される。
次に、図6の乱数生成器100の用途について説明する。
乱数の生成を必要とする機能として代表的なものに暗号機能があり、この乱数生成器100は、この暗号機能を利用する電子機器に用いることができる。暗号機能を利用する電子機器の具体例としては、前述したスマートカードがあり、乱数生成器100は、このスマートカードで利用することができる。また、無線通信の秘匿を保証するために、携帯電話装置や無線インターネット接続の端末装置などにも暗号機能が求められており、このような電子機器でも乱数生成器100を利用することができる。更に、近年では、印刷装置に使用するインクカートリッジ、電池駆動の電子機器用の専用電池、ゲーム機のプログラムが収められているプログラムカートリッジなどといった電子機器についての模造品が出回っている。これらの模造品の広範な流通を阻止するために、正規の製品に対する認証機能が利用されることがある。この認証機能の実現に乱数の生成が用いられることがあり、乱数生成器100は、このような認証機能を利用する電子機器に用いることもできる。
乱数の生成を必要とする機能として代表的なものに暗号機能があり、この乱数生成器100は、この暗号機能を利用する電子機器に用いることができる。暗号機能を利用する電子機器の具体例としては、前述したスマートカードがあり、乱数生成器100は、このスマートカードで利用することができる。また、無線通信の秘匿を保証するために、携帯電話装置や無線インターネット接続の端末装置などにも暗号機能が求められており、このような電子機器でも乱数生成器100を利用することができる。更に、近年では、印刷装置に使用するインクカートリッジ、電池駆動の電子機器用の専用電池、ゲーム機のプログラムが収められているプログラムカートリッジなどといった電子機器についての模造品が出回っている。これらの模造品の広範な流通を阻止するために、正規の製品に対する認証機能が利用されることがある。この認証機能の実現に乱数の生成が用いられることがあり、乱数生成器100は、このような認証機能を利用する電子機器に用いることもできる。
ここで図8について説明する。図8は、図6の乱数生成器100を備えた電子機器200の構成例を図解したものである。この電子機器200は、暗号化装置として機能させることができ、また、認証装置としても機能させることができる。
この電子機器200は、図6に図解した乱数生成器100と、CPU300、暗号演算器400、ROM500、RAM600、及び通信部700とを備えて構成されている。なお、これらの各構成要素はバスライン800にいずれも接続されており、CPU300による管理の下で各種のデータを相互に授受することができるように構成されている。
CPU(Central Processing Unit )300は、この電子機器200の各構成要素の動作を管理する中央演算部である。
暗号演算器400は、各種の情報の暗号化処理や、暗号化されているデータの復号処理を行う。なお、本実施形態では、暗号演算器400は、公開鍵コプロセッサ410と共通鍵コプロセッサ420とを備えている。ここで、公開鍵コプロセッサ410は、代表的な公開鍵暗号方式であるRSA暗号や楕円曲線暗号等を用いて暗号化及び復号の処理を行う。また、共通鍵コプロセッサ420は、代表的な共通鍵暗号方式であるAES暗号等を用いて暗号化及び復号の処理を行う。なお、暗号演算器400を電子機器200に備える代わりに、暗号演算器400により行われる暗号化及び復号の処理を、CPU300に行わせることに構成してもよい。
暗号演算器400は、各種の情報の暗号化処理や、暗号化されているデータの復号処理を行う。なお、本実施形態では、暗号演算器400は、公開鍵コプロセッサ410と共通鍵コプロセッサ420とを備えている。ここで、公開鍵コプロセッサ410は、代表的な公開鍵暗号方式であるRSA暗号や楕円曲線暗号等を用いて暗号化及び復号の処理を行う。また、共通鍵コプロセッサ420は、代表的な共通鍵暗号方式であるAES暗号等を用いて暗号化及び復号の処理を行う。なお、暗号演算器400を電子機器200に備える代わりに、暗号演算器400により行われる暗号化及び復号の処理を、CPU300に行わせることに構成してもよい。
ROM(Read Only Memory)500には、CPU300により実行される制御プログラムや、暗号演算器400が暗号化や復号の処理において使用する固有のパラメータが予め格納されている不揮発性半導体メモリである。CPU300は、電子機器200への電力供給が開始されたときに、この制御プログラムをROM500から読み出してその実行を開始することで、電子機器200の各構成要素の動作管理を行えるようになる。
RAM(Random Access Memory)600は、CPU300や暗号演算器400が各種の処理を行う際に、必要に応じて作業用記憶領域として使用する揮発性半導体メモリである。
通信部700は、各種のデータの送受信を行って、同一の構成を有する他の電子機器200との間で、各種のデータの授受を行う。
この電子機器200を暗号化装置として機能させる場合、乱数生成器100は、暗号演算器400が情報の暗号化処理を行うときにおける暗号鍵の生成に用いられる。なお、暗号化処理に用いた暗号鍵は例えばRAM600に格納して保持しておくようにし、その後に暗号演算器400が暗号化情報に対して行う復号処理に使用する。
この電子機器200を暗号化装置として機能させる場合、乱数生成器100は、暗号演算器400が情報の暗号化処理を行うときにおける暗号鍵の生成に用いられる。なお、暗号化処理に用いた暗号鍵は例えばRAM600に格納して保持しておくようにし、その後に暗号演算器400が暗号化情報に対して行う復号処理に使用する。
なお、乱数生成器100で生成される乱数列を暗号鍵の生成に用いる際に、生成された乱数列の乱数としての真性度を更に向上させるために、後処理(Post Processing )を行ってもよい。このために行われる後処理の一例として、線形フィードバックシフトレジスタ(LFSR)の使用を挙げることができる。LFSRは、排他的論理和回路で帰還をかけたシフトレジスタによって構成されるカウンタであり、乱数列を入力すると、乱数列が圧縮されて、乱数としての真性度を向上させた乱数列が得られることが知られている。従って、LFSRの出力から得られる乱数列を用いて暗号鍵の生成を行うようにすることで、より真性度の高い乱数列を暗号鍵とすることが可能になる。なお、LFSRは、専用のハードウェアを構成して用いるようにしてもよく、また、CPU300を用いてソフトウェアにより実現するようにしてもよい。
また、この電子機器200を用いて、前述した認証機能を提供することができる。
また、この電子機器200を用いて、前述した認証機能を提供することができる。
装置間で行われる認証の手順について説明する。なお、ここでは、装置Cを認証対象装置として装置Pを認証装置とし、装置Cが正規のものであるか否かを装置Pが検証する場合を例にして認証の手順を説明する。
認証装置である装置Pと認証対象装置である装置Cとの各々には、図8の電子機器200と同一の構成要素を備えておくようにする。また、装置Pと正規の装置Cとの間では、共通の暗号鍵(秘密鍵)Kを事前に共有しておくようにし、例えば、この暗号鍵Kを装置P及び装置Cの各々のROM500に予め格納しておく。
認証を行う場合には、まず、装置Pが乱数生成器100を用いて乱数rを生成し、生成した乱数rを、通信部700を用いて装置Cへ送信する。装置Cは、通信部700を用いて乱数rを受信すると、この乱数rに対し、装置Pとの間で共有している暗号鍵Kを用いて暗号演算器400で暗号化処理を行い、得られた暗号化情報を、通信部700を用いて装置Pに返信する。装置Pは、この暗号化情報の返信を、通信部700を用いて受信すると、装置Cとの間で共有している暗号鍵Kを用いて、受信した暗号化情報を暗号演算器400で復号処理を施す。そして、この復号処理により得られた情報が、装置Cへ送信した乱数rと一致するか否かを、装置PのCPU300が判定する。ここで、復号処理により得られた情報が乱数rと一致した場合には、装置Cが正規のものであるとの認証結果を装置PのCPU300が得る。一方、復号処理により得られた情報が乱数rと一致しなかった場合には、装置Cが正規のものではないとの認証結果を装置PのCPU300が得る。
以上のプロセスを、装置Pと装置Cとで行うことで、装置Cの認証を装置Pで行うことができる。なお、以上のプロセスを行うための専用のハードウェアを装置P及び装置Cに備えるようにしてもよい。
なお、上記の手順において装置Cから装置Pへ返信される暗号化情報の収集結果を利用して装置Cに成りすます攻撃(「リプレイアタック」等)を考慮すると、この認証機能に使用する乱数rは、乱数としての真性度が高いものを使用することが好ましい。
なお、以上までに説明した実施形態に関し、更に以下の付記を開示する。
(付記1)
複数のデジタル回路の各々の出力の排他的論理和を得る排他的論理和回路と、
該複数のデジタル回路の各々に関して、乱数の生成の指示に応じて生成される出力が乱数であるか否かの判定を行う乱数判定部と、
該複数のデジタル回路のうち該指示に応じて生成される出力が乱数でないと該乱数判定部が判定したデジタル回路に対する乱数の生成の指示を禁止する乱数生成指示禁止部と、を有することを特徴とする乱数生成器。
(付記2)
該複数のデジタル回路は複数のRSラッチ回路であり、
該乱数生成部は、該RSラッチ回路をメタステーブル状態とする入力を乱数の生成の指示として該RSラッチ回路に入力したときの該RSラッチ回路の出力が乱数であるか否かの判定を、該複数のRSラッチ回路の各々に対して行う、
ことを特徴とする付記1に記載の乱数生成回路。
(付記3)
該乱数判定部は、該RSラッチ回路をメタステーブル状態とする入力を入力しているときにおける該RSラッチ回路の該メタステーブル状態を経た後の出力の観測を繰り返し、観測された出力の論理が所定回数連続して変化しないときには、該RSラッチ回路の出力は乱数ではないとの判定を下すことを特徴とする付記2に記載の乱数生成器。
(付記4)
該乱数生成指示禁止部は、出力が乱数ではないと該乱数判定部が判定したデジタル回路に対し、該デジタル回路の出力の論理を不変のまま保持する値の入力を継続するようにして、乱数の生成の指示を禁止することを特徴とする付記1に記載の乱数生成器。
(付記5)
該乱数判定部の判定結果を保持する判定結果保持部を更に有しており、
該乱数生成指示禁止部は、該判定結果保持部が保持している該乱数判定部の判定結果を該判定結果保持部から受け取り、出力が乱数ではないと該乱数判定部が判定したデジタル回路に対し該受け取った判定結果を与えるようにして、該デジタル回路の出力の論理を不変のまま保持する値の入力を継続する、
ことを特徴とする付記4に記載の乱数生成器。
(付記6)
該複数のデジタル回路の各々の出力をひとつずつ選択して出力する選択部を更に有しており、
該判定結果保持部は、該複数のデジタル回路にひとつずつ対応付けられており、該乱数判定部の判定結果を保持する複数のD型フリップフロップ回路を備えており、
該乱数判定部は、該選択部により出力が選択されたデジタル回路に対して該判定を行い、該判定結果を、該判定結果保持部における該デジタル回路に対応付けられているD型フリップフロップ回路に保持させる、
ことを特徴とする付記5に記載の乱数生成器。
(付記7)
該判定結果保持部における、出力が乱数ではないと該乱数判定部が判定したデジタル回路に対応付けられているD型フリップフロップ回路は、電位の異なる2値の論理レベルにおけるロー・レベルの電位を、該乱数生成指示禁止部に出力することを特徴とする付記6に記載の乱数生成器。
(付記8)
該乱数生成指示禁止部は、クロック信号と該D型フリップフロップ回路の出力との論理積を得る論理積回路を備えており、該論理積回路の出力を、該D型フリップフロップ回路に対応付けられているデジタル回路に入力するようにして、出力が乱数ではないと該乱数判定部が判定したデジタル回路に対する、該デジタル回路の出力の論理を不変のまま保持する値の入力を継続することを特徴とする付記7に記載の乱数生成器。
(付記9)
該複数のデジタル回路の各々の出力をひとつずつ選択して出力する選択部を更に有しており、
該判定結果保持部は、該複数のデジタル回路にひとつずつ対応付けられており、該乱数判定部の判定結果を保持する複数のD型ラッチ回路を備えており、
該乱数判定部は、該選択部により出力が選択されたデジタル回路に対して該判定を行い、該判定結果を、該判定結果保持部における該デジタル回路に対応付けられているD型ラッチ回路に保持させる、
ことを特徴とする付記5に記載の乱数生成器。
(付記10)
付記1から9のうちのいずれか一項に記載の乱数生成器と、
該乱数生成器が生成した乱数列を暗号鍵として用いて、情報の暗号化処理を行う暗号化処理部と、
を有することを特徴とする暗号化装置。
(付記11)
付記1から9のうちのいずれか一項に記載の乱数生成器と、
認証対象装置との間で通信を行って各種の情報の授受を行う通信部と、
暗号化されている情報に対し、正規の認証対象装置との間で共有されている所定の暗号鍵を用いて復号処理を施す復号処理部と、
該復号処理部による復号処理によって得られた情報に基づいて該認証対象装置に対する認証処理を行う認証処理部と、
を有し、
該通信部は、該乱数生成器が生成した乱数列を該認証対象装置へ送信したときに該乱数列を受信した該認証対象装置から送られてくる、該乱数列に対して該認証対象装置で施された暗号化処理により得られた暗号化情報を受信し、
該復号処理部は、該通信部が受信した暗号化情報に対して該復号処理を施し、
該認証処理部は、該認証処理において、該通信部が受信した暗号化情報に対して該復号処理部が該復号処理を施して得られた復号情報が、該認証対象装置へ送信した乱数列と一致するか否かの判定を行い、該復号情報と該欄数列とが一致すると判定したときに、該認証対象装置が正規のものであるとの認証結果を得る、
ことを特徴とする認証装置。
(付記1)
複数のデジタル回路の各々の出力の排他的論理和を得る排他的論理和回路と、
該複数のデジタル回路の各々に関して、乱数の生成の指示に応じて生成される出力が乱数であるか否かの判定を行う乱数判定部と、
該複数のデジタル回路のうち該指示に応じて生成される出力が乱数でないと該乱数判定部が判定したデジタル回路に対する乱数の生成の指示を禁止する乱数生成指示禁止部と、を有することを特徴とする乱数生成器。
(付記2)
該複数のデジタル回路は複数のRSラッチ回路であり、
該乱数生成部は、該RSラッチ回路をメタステーブル状態とする入力を乱数の生成の指示として該RSラッチ回路に入力したときの該RSラッチ回路の出力が乱数であるか否かの判定を、該複数のRSラッチ回路の各々に対して行う、
ことを特徴とする付記1に記載の乱数生成回路。
(付記3)
該乱数判定部は、該RSラッチ回路をメタステーブル状態とする入力を入力しているときにおける該RSラッチ回路の該メタステーブル状態を経た後の出力の観測を繰り返し、観測された出力の論理が所定回数連続して変化しないときには、該RSラッチ回路の出力は乱数ではないとの判定を下すことを特徴とする付記2に記載の乱数生成器。
(付記4)
該乱数生成指示禁止部は、出力が乱数ではないと該乱数判定部が判定したデジタル回路に対し、該デジタル回路の出力の論理を不変のまま保持する値の入力を継続するようにして、乱数の生成の指示を禁止することを特徴とする付記1に記載の乱数生成器。
(付記5)
該乱数判定部の判定結果を保持する判定結果保持部を更に有しており、
該乱数生成指示禁止部は、該判定結果保持部が保持している該乱数判定部の判定結果を該判定結果保持部から受け取り、出力が乱数ではないと該乱数判定部が判定したデジタル回路に対し該受け取った判定結果を与えるようにして、該デジタル回路の出力の論理を不変のまま保持する値の入力を継続する、
ことを特徴とする付記4に記載の乱数生成器。
(付記6)
該複数のデジタル回路の各々の出力をひとつずつ選択して出力する選択部を更に有しており、
該判定結果保持部は、該複数のデジタル回路にひとつずつ対応付けられており、該乱数判定部の判定結果を保持する複数のD型フリップフロップ回路を備えており、
該乱数判定部は、該選択部により出力が選択されたデジタル回路に対して該判定を行い、該判定結果を、該判定結果保持部における該デジタル回路に対応付けられているD型フリップフロップ回路に保持させる、
ことを特徴とする付記5に記載の乱数生成器。
(付記7)
該判定結果保持部における、出力が乱数ではないと該乱数判定部が判定したデジタル回路に対応付けられているD型フリップフロップ回路は、電位の異なる2値の論理レベルにおけるロー・レベルの電位を、該乱数生成指示禁止部に出力することを特徴とする付記6に記載の乱数生成器。
(付記8)
該乱数生成指示禁止部は、クロック信号と該D型フリップフロップ回路の出力との論理積を得る論理積回路を備えており、該論理積回路の出力を、該D型フリップフロップ回路に対応付けられているデジタル回路に入力するようにして、出力が乱数ではないと該乱数判定部が判定したデジタル回路に対する、該デジタル回路の出力の論理を不変のまま保持する値の入力を継続することを特徴とする付記7に記載の乱数生成器。
(付記9)
該複数のデジタル回路の各々の出力をひとつずつ選択して出力する選択部を更に有しており、
該判定結果保持部は、該複数のデジタル回路にひとつずつ対応付けられており、該乱数判定部の判定結果を保持する複数のD型ラッチ回路を備えており、
該乱数判定部は、該選択部により出力が選択されたデジタル回路に対して該判定を行い、該判定結果を、該判定結果保持部における該デジタル回路に対応付けられているD型ラッチ回路に保持させる、
ことを特徴とする付記5に記載の乱数生成器。
(付記10)
付記1から9のうちのいずれか一項に記載の乱数生成器と、
該乱数生成器が生成した乱数列を暗号鍵として用いて、情報の暗号化処理を行う暗号化処理部と、
を有することを特徴とする暗号化装置。
(付記11)
付記1から9のうちのいずれか一項に記載の乱数生成器と、
認証対象装置との間で通信を行って各種の情報の授受を行う通信部と、
暗号化されている情報に対し、正規の認証対象装置との間で共有されている所定の暗号鍵を用いて復号処理を施す復号処理部と、
該復号処理部による復号処理によって得られた情報に基づいて該認証対象装置に対する認証処理を行う認証処理部と、
を有し、
該通信部は、該乱数生成器が生成した乱数列を該認証対象装置へ送信したときに該乱数列を受信した該認証対象装置から送られてくる、該乱数列に対して該認証対象装置で施された暗号化処理により得られた暗号化情報を受信し、
該復号処理部は、該通信部が受信した暗号化情報に対して該復号処理を施し、
該認証処理部は、該認証処理において、該通信部が受信した暗号化情報に対して該復号処理部が該復号処理を施して得られた復号情報が、該認証対象装置へ送信した乱数列と一致するか否かの判定を行い、該復号情報と該欄数列とが一致すると判定したときに、該認証対象装置が正規のものであるとの認証結果を得る、
ことを特徴とする認証装置。
10、10−1、10−n RSラッチ
11、12、111−1a、111−1b、111−na、111−nb
NANDゲート
20、30、100 乱数生成器
31、120 XORゲート
110−1、110−n 乱数生成回路
112−1、112−n ANDゲート
130 マルチプレクサ
140 乱数判定部
150 判定結果保持部
150−1、150−n Dフリップフロップ
200 電子機器
300 CPU
400 暗号演算器
410 公開鍵コプロセッサ
420 共通鍵コプロセッサ
500 ROM
600 RAM
700 通信部
800 バスライン
11、12、111−1a、111−1b、111−na、111−nb
NANDゲート
20、30、100 乱数生成器
31、120 XORゲート
110−1、110−n 乱数生成回路
112−1、112−n ANDゲート
130 マルチプレクサ
140 乱数判定部
150 判定結果保持部
150−1、150−n Dフリップフロップ
200 電子機器
300 CPU
400 暗号演算器
410 公開鍵コプロセッサ
420 共通鍵コプロセッサ
500 ROM
600 RAM
700 通信部
800 バスライン
Claims (7)
- 複数のデジタル回路の各々の出力の排他的論理和を得る排他的論理和回路と、
該複数のデジタル回路の各々に関して、乱数の生成の指示に応じて生成される出力が乱数であるか否かの判定を行う乱数判定部と、
該複数のデジタル回路のうち該指示に応じて生成される出力が乱数でないと該乱数判定部が判定したデジタル回路に対する乱数の生成の指示を禁止する乱数生成指示禁止部と、
を有することを特徴とする乱数生成器。 - 該複数のデジタル回路は複数のRSラッチ回路であり、
該乱数生成部は、該RSラッチ回路をメタステーブル状態とする入力を乱数の生成の指示として該RSラッチ回路に入力したときの該RSラッチ回路の出力が乱数であるか否かの判定を、該複数のRSラッチ回路の各々に対して行う、
ことを特徴とする請求項1に記載の乱数生成回路。 - 該乱数判定部は、該RSラッチ回路をメタステーブル状態とする入力を入力しているときにおける該RSラッチ回路の該メタステーブル状態を経た後の出力の観測を繰り返し、観測された出力の論理が所定回数連続して変化しないときには、該RSラッチ回路の出力は乱数ではないとの判定を下すことを特徴とする請求項2に記載の乱数生成器。
- 該乱数生成指示禁止部は、出力が乱数ではないと該乱数判定部が判定したデジタル回路に対し、該デジタル回路の出力の論理を不変のまま保持する値の入力を継続するようにして、乱数の生成の指示を禁止することを特徴とする請求項1に記載の乱数生成器。
- 該乱数判定部の判定結果を保持する判定結果保持部を更に有しており、
該乱数生成指示禁止部は、該判定結果保持部が保持している該乱数判定部の判定結果を該判定結果保持部から受け取り、出力が乱数ではないと該乱数判定部が判定したデジタル回路に対し該受け取った判定結果を与えるようにして、該デジタル回路の出力の論理を不変のまま保持する値の入力を継続する、
ことを特徴とする請求項4に記載の乱数生成器。 - 請求項1から5のうちのいずれか一項に記載の乱数生成器と、
該乱数生成器が生成した乱数列を暗号鍵として用いて、情報の暗号化処理を行う暗号化処理部と、
を有することを特徴とする暗号化装置。 - 請求項1から5のうちのいずれか一項に記載の乱数生成器と、
認証対象装置との間で通信を行って各種の情報の授受を行う通信部と、
暗号化されている情報に対し、正規の認証対象装置との間で共有されている所定の暗号鍵を用いて復号処理を施す復号処理部と、
該復号処理部による復号処理によって得られた情報に基づいて該認証対象装置に対する認証処理を行う認証処理部と、
を有し、
該通信部は、該乱数生成器が生成した乱数列を該認証対象装置へ送信したときに該乱数列を受信した該認証対象装置から送られてくる、該乱数列に対して該認証対象装置で施された暗号化処理により得られた暗号化情報を受信し、
該復号処理部は、該通信部が受信した暗号化情報に対して該復号処理を施し、
該認証処理部は、該認証処理において、該通信部が受信した暗号化情報に対して該復号処理部が該復号処理を施して得られた復号情報が、該認証対象装置へ送信した乱数列と一致するか否かの判定を行い、該復号情報と該欄数列とが一致すると判定したときに、該認証対象装置が正規のものであるとの認証結果を得る、
ことを特徴とする認証装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/002228 WO2011117929A1 (ja) | 2010-03-26 | 2010-03-26 | 乱数生成器、暗号化装置、及び認証装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2011117929A1 true JPWO2011117929A1 (ja) | 2013-07-04 |
JP5273294B2 JP5273294B2 (ja) | 2013-08-28 |
Family
ID=44672528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012506670A Active JP5273294B2 (ja) | 2010-03-26 | 2010-03-26 | 乱数生成器、暗号化装置、及び認証装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9015218B2 (ja) |
EP (1) | EP2551837B1 (ja) |
JP (1) | JP5273294B2 (ja) |
WO (1) | WO2011117929A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5870675B2 (ja) * | 2011-12-20 | 2016-03-01 | 富士通株式会社 | 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置 |
JP6167876B2 (ja) * | 2013-11-28 | 2017-07-26 | 富士通株式会社 | 電子回路、電子機器及び認証システム |
US9459835B2 (en) | 2014-01-15 | 2016-10-04 | HGST Netherlands B.V. | Random number generator by superparamagnetism |
FR3019361B1 (fr) | 2014-03-28 | 2017-05-19 | Airbus Helicopters | Procede de detection et de visualisation des obstacles artificiels d'un aeronef a voilure tournante |
FR3026490B1 (fr) * | 2014-09-30 | 2016-12-23 | Sagem Defense Securite | Procede d'identification de l'existence d'une panne, procede d'identification d'un equipement relais en panne, procede d'identification du type de panne et systeme d'alimentation associe |
NL2014743B1 (en) * | 2015-04-30 | 2017-01-18 | Ubiqu B V | A first entity, a second entity, an intermediate node, methods for setting up a secure session between a first and second entity, and computer program products. |
JP6321723B2 (ja) * | 2015-06-04 | 2018-05-09 | 株式会社クァンタリオン | 放射性同位元素の自然崩壊を利用した唯一性を実現する装置 |
WO2016194382A1 (ja) * | 2015-06-04 | 2016-12-08 | 典平 露崎 | 放射性同位元素の自然崩壊を利用した唯一性を実現する装置 |
WO2018236854A1 (en) * | 2017-06-21 | 2018-12-27 | Massachusetts Institute Of Technology | ACOUSTIC DIAGNOSTIC SYSTEM AND METHOD FOR SUPERCONDUCTING DEVICES OPERATING IN GAS OR LIQUID |
CN109558111B (zh) * | 2018-10-16 | 2023-09-29 | 北京理工雷科空天信息技术有限公司 | 基于d触发器亚稳态特性的真随机数生成装置 |
US10824396B2 (en) * | 2019-01-28 | 2020-11-03 | Nuvoton Technology Corporation | Random number generator based on meta-stability of shorted back-to-back inverters |
RU2741865C1 (ru) * | 2020-07-17 | 2021-01-29 | Комаров Юрий Олимпиевич | Генератор истинно случайных чисел |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7249108B1 (en) * | 1997-07-15 | 2007-07-24 | Silverbrook Research Pty Ltd | Validation protocol and system |
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 |
US7113966B2 (en) * | 2001-07-25 | 2006-09-26 | Koninklijke Philips Electronics N.V. | Method and apparatus for decorrelating a random number generator using a pseudo-random sequence |
JP2003131867A (ja) * | 2001-08-15 | 2003-05-09 | Syst Kogaku Kk | 乱数生成装置 |
JP3604674B2 (ja) * | 2001-09-26 | 2004-12-22 | 株式会社東芝 | 乱数生成回路 |
US7219112B2 (en) * | 2001-11-20 | 2007-05-15 | Ip-First, Llc | Microprocessor with instruction translator for translating an instruction for storing random data bytes |
US20030236802A1 (en) * | 2002-06-20 | 2003-12-25 | Koninklijke Philips Electronics N.V. | Method and apparatus for generating a random number using the meta-stable behavior of latches |
US7302458B2 (en) * | 2003-03-14 | 2007-11-27 | Nxp B.V. | Method and apparatus for choosing a combination of logic for generating random numbers using a difference signal |
US7356552B2 (en) * | 2003-03-14 | 2008-04-08 | Nxp B.V. | VLSI implementation of a random number generator using a plurality of simple flip-flops |
US7827223B2 (en) * | 2004-04-22 | 2010-11-02 | Fortress Gb Ltd. | Accelerated throughput synchronized word stream cipher, message authenticator and zero-knowledge output random number generator |
JP2010039838A (ja) * | 2008-08-06 | 2010-02-18 | Mega Chips Corp | 乱数生成回路及びコンピュータシステム |
-
2010
- 2010-03-26 JP JP2012506670A patent/JP5273294B2/ja active Active
- 2010-03-26 WO PCT/JP2010/002228 patent/WO2011117929A1/ja active Application Filing
- 2010-03-26 EP EP10848323.1A patent/EP2551837B1/en not_active Not-in-force
-
2012
- 2012-09-25 US US13/626,221 patent/US9015218B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2011117929A1 (ja) | 2011-09-29 |
EP2551837A4 (en) | 2014-12-24 |
EP2551837A1 (en) | 2013-01-30 |
US9015218B2 (en) | 2015-04-21 |
US20130022197A1 (en) | 2013-01-24 |
JP5273294B2 (ja) | 2013-08-28 |
EP2551837B1 (en) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5273294B2 (ja) | 乱数生成器、暗号化装置、及び認証装置 | |
KR101727130B1 (ko) | 암호화 키를 획득하기 위한 디바이스 및 방법 | |
JP5333669B2 (ja) | 個体別情報生成装置及び個体別情報生成方法 | |
US7659837B2 (en) | Operation processing apparatus, operation processing control method, and computer program | |
KR101987141B1 (ko) | 난수 발생기 | |
US20160267266A1 (en) | Electronic circuit, authentication system, and authentication method | |
US8879733B2 (en) | Random bit stream generator with guaranteed minimum period | |
KR20100127789A (ko) | 디지털 제어 오실레이터를 기반으로한 디지털 난수 생성기 | |
US11646867B2 (en) | Systems and methods implementing countermeasures to phase tracking attacks on ring oscillator based entropy sources | |
JP6533553B2 (ja) | 暗号化/復号装置及びその電力解析保護方法 | |
JP6167876B2 (ja) | 電子回路、電子機器及び認証システム | |
JP2013131868A (ja) | 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置 | |
KR20120038104A (ko) | 랜덤 데이터 생성 장치 및 그 방법 | |
CN109842488A (zh) | 用于物理芯片内的密钥生成组件 | |
Hazari et al. | FPGA IP obfuscation using ring oscillator physical unclonable function | |
JP2014224879A (ja) | 乱数生成装置、暗号処理装置、記憶装置及び情報処理システム | |
Rahman et al. | Design and security-mitigation of custom and configurable hardware cryptosystems | |
KR102197744B1 (ko) | 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치 | |
Upadhyay et al. | Cryptanalysis of hardware based stream ciphers and implementation of GSM stream cipher to propose a novel approach for designing n-bit LFSR stream cipher | |
US20190243960A1 (en) | Electronic apparatus with clock authentication function and authentication method of clock signal | |
Hernandez-Becerrjl et al. | A parallel authenticated encryption sharing scheme based on cellular automata | |
JP4849140B2 (ja) | データ変換装置、演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム | |
Likhithashree et al. | Design of Power-Efficient Ring Oscillator based Physically Unclonable Functions for FPGA | |
Nagamalli et al. | Design and Implementation of Linear Feedback shift Register based physical unclonable function | |
US10129249B1 (en) | Randomizing state transitions for one-time authentication tokens |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20130416 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130429 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5273294 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |