(57)【要約】【課題】真性度の高いディジタル乱数を生成することが可能な乱数生成回路を得る。【解決手段】乱数生成回路４は、不定値のディジタルデータ列Ｄ１０を出力する、不確定論理回路２０と、ディジタルデータ列Ｄ１０をデータとして用いて、所定の乱数生成アルゴリズムに基づいてディジタル乱数Ｄ１を生成する、乱数生成部２１とを備える。【選択図】図２
2010039838.tif 000002
【特許請求の範囲】
【請求項１】
不定値の第１のディジタルデータ列を出力する、第１の不確定論理回路と、
前記第１のディジタルデータ列をデータとして用いて、所定の乱数生成アルゴリズムに基づいてディジタル乱数を生成する、乱数生成部と
を備える、乱数生成回路。
【請求項２】
前記乱数生成部は、前記第１のディジタルデータ列をさらに初期値として用いて、前記ディジタル乱数を生成する、請求項１に記載の乱数生成回路。
【請求項３】
前記第１の不確定論理回路は複数であり、
複数の前記第１の不確定論理回路がパラレルに接続されることにより、前記第１のディジタルデータ列の各ビットがパラレルに出力される、請求項１又は２に記載の乱数生成回路。
【請求項４】
一つの前記第１の不確定論理回路から、前記第１のディジタルデータ列の各ビットがシリアルに出力される、請求項１又は２に記載の乱数生成回路。
【請求項５】
不定値の第２のディジタルデータ列を出力する、第２の不確定論理回路をさらに備え、
前記乱数生成部は、前記第２のディジタルデータ列を初期値として用いて、前記ディジタル乱数を生成する、請求項１，３，４のいずれか一つに記載の乱数生成回路。
【請求項６】
前記第２の不確定論理回路は複数であり、
複数の前記第２の不確定論理回路がパラレルに接続されることにより、前記第２のディジタルデータ列の各ビットがパラレルに出力される、請求項５に記載の乱数生成回路。
【請求項７】
一つの前記第２の不確定論理回路から、前記第２のディジタルデータ列の各ビットがシリアルに出力される、請求項５に記載の乱数生成回路。
【請求項８】
前記第２の不確定論理回路は、前記第２のディジタルデータ列として、ハイレベルの固定出力値と、ハイレベル又はローレベルの不定出力値とを交互に出力する、請求項５〜７のいずれか一つに記載の乱数生成回路。
【請求項９】
不定値のディジタルデータ列を出力する、不確定論理回路と、
前記ディジタルデータ列を初期値として用いて、所定の乱数生成アルゴリズムに基づいてディジタル乱数を生成する、乱数生成部と
を備える、乱数生成回路。
【請求項１０】
前記乱数生成部は、前記ディジタルデータ列をさらにデータとして用いて、前記ディジタル乱数を生成する、請求項９に記載の乱数生成回路。
【請求項１１】
前記不確定論理回路は複数であり、
複数の前記不確定論理回路がパラレルに接続されることにより、前記ディジタルデータ列の各ビットがパラレルに出力される、請求項９又は１０に記載の乱数生成回路。
【請求項１２】
一つの前記不確定論理回路から、前記ディジタルデータ列の各ビットがシリアルに出力される、請求項９又は１０に記載の乱数生成回路。
【請求項１３】
前記不確定論理回路は、前記ディジタルデータ列として、ハイレベルの固定出力値と、ハイレベル又はローレベルの不定出力値とを交互に出力する、請求項９〜１２のいずれか一つに記載の乱数生成回路。
【請求項１４】
ホストコンピュータと、
前記ホストコンピュータに接続可能なメモリ装置と
を備え、
前記ホストコンピュータは、
不定値の第１のディジタルデータ列を出力する、第１の不確定論理回路と、
前記第１のディジタルデータ列を、データ及び初期値の少なくとも一方として用いて、第１の乱数生成アルゴリズムに基づいて第１のディジタル乱数を生成する、第１の乱数生成部と
を有し、
前記メモリ装置は、
不定値の第２のディジタルデータ列を出力する、第２の不確定論理回路と、
前記第２のディジタルデータ列を、データ及び初期値の少なくとも一方として用いて、第２の乱数生成アルゴリズムに基づいて第２のディジタル乱数を生成する、第２の乱数生成部と
を有し、
前記第１の乱数生成アルゴリズムと前記第２の乱数生成アルゴリズムとは互いに異なる、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数生成回路及びコンピュータシステムに関する。
【背景技術】
【０００２】
乱数は、暗号アルゴリズムにおける鍵の生成等に用いられる。真性乱数に近い乱数を得るための手法の一つとして、抵抗又はダイオードにおいて発生する雑音を利用して乱数を生成する方式が実用化されている。しかしながら、この方式では、低レベルの雑音をアナログ増幅回路によって増幅する必要があるため、アナログ増幅回路の回路規模が大きくなり、結果として乱数生成回路の回路規模が全体として増大する。従って、回路規模の増大を回避するためには、計算によって生成可能なディジタル乱数の使用が望まれる。
【０００３】
ディジタル乱数としては、疑似乱数が広く用いられている。疑似乱数は、乱数生成回路において、初期値（ｓｅｅｄ）とデータとを用いた所定のアルゴリズムによって生成される。
【０００４】
なお、下記特許文献１には、不確定論理回路と、不確定論理回路から出力されるディジタル値における「０」及び「１」の出現頻度を均等にするための一様化回路とを備える乱数生成回路が開示されている。
【０００５】
【特許文献１】特許第３６０４６７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
疑似乱数は計算によって生成されるため、初期値及びアルゴリズムが同一であれば、生成される疑似乱数の値も同一となる。従って、疑似乱数をセキュリティ用途で使用する場合には、攻撃者に初期値及びアルゴリズムを見破られることにより、セキュリティを破られる可能性がある。
【０００７】
本発明はかかる事情に鑑みて成されたものであり、真性度の高いディジタル乱数を生成することが可能な乱数生成回路、及びそれを用いたコンピュータシステムを得ることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の態様に係る乱数生成回路は、不定値の第１のディジタルデータ列を出力する、第１の不確定論理回路と、前記第１のディジタルデータ列をデータとして用いて、所定の乱数生成アルゴリズムに基づいてディジタル乱数を生成する、乱数生成部とを備えることを特徴とするものである。
【０００９】
第１の態様に係る乱数生成回路によれば、第１の不確定論理回路は、不定値の第１のディジタルデータ列を出力する。そして、乱数生成部は、不定値の第１のディジタルデータ列をデータとして用いて、ディジタル乱数を生成する。従って、不確定論理回路の出力をそのままディジタル乱数とする場合や、乱数生成部が固定値のディジタルデータをデータとして用いてディジタル乱数を生成する場合と比較すると、生成されるディジタル乱数の真性度を高めることができる。
【００１０】
本発明の第２の態様に係る乱数生成回路は、第１の態様に係る乱数生成回路において特に、前記乱数生成部は、前記第１のディジタルデータ列をさらに初期値として用いて、前記ディジタル乱数を生成することを特徴とするものである。
【００１１】
第２の態様に係る乱数生成回路によれば、乱数生成部は、不定値の第１のディジタルデータ列を初期値及びデータとして用いて、ディジタル乱数を生成する。従って、乱数生成部が固定値のディジタルデータを初期値として用いてディジタル乱数を生成する場合と比較すると、生成されるディジタル乱数の真性度を高めることができる。
【００１２】
本発明の第３の態様に係る乱数生成回路は、第１又は第２の態様に係る乱数生成回路において特に、前記第１の不確定論理回路は複数であり、複数の前記第１の不確定論理回路がパラレルに接続されることにより、前記第１のディジタルデータ列の各ビットがパラレルに出力されることを特徴とするものである。
【００１３】
第３の態様に係る乱数生成回路によれば、不確定論理回路は、それを構成する素子の特性によって、出力値が「０」又は「１」に偏る場合がある。そのような場合であっても、複数の第１の不確定論理回路をパラレルに接続することにより、不確定論理回路を構成する素子の特性は各第１の不確定論理回路毎に異なるため、第１のディジタルデータ列の各ビットには、「０」に偏るものと「１」に偏るものとが混在することとなる。その結果、第１のディジタルデータ列の真性度をさらに高めることができる。
【００１４】
本発明の第４の態様に係る乱数生成回路は、第１又は第２の態様に係る乱数生成回路において特に、一つの前記第１の不確定論理回路から、前記第１のディジタルデータ列の各ビットがシリアルに出力されることを特徴とするものである。
【００１５】
第４の態様に係る乱数生成回路によれば、第１の不確定論理回路が第１のディジタルデータ列の各ビットをシリアルに出力することにより、第１の不確定論理回路は一つのみで足りる。従って、複数の第１の不確定論理回路をパラレルに接続する場合と比較すると、回路規模の削減と消費電力の低減とを図ることができる。
【００１６】
本発明の第５の態様に係る乱数生成回路は、第１、第３、及び第４のいずれか一つの態様に係る乱数生成回路において特に、不定値の第２のディジタルデータ列を出力する、第２の不確定論理回路をさらに備え、前記乱数生成部は、前記第２のディジタルデータ列を初期値として用いて、前記ディジタル乱数を生成することを特徴とするものである。
【００１７】
第５の態様に係る乱数生成回路によれば、第２の不確定論理回路は、不定値の第２のディジタルデータ列を出力する。そして、乱数生成部は、不定値の第１のディジタルデータをデータとして用いて、かつ、不定値の第２のディジタルデータ列を初期値として用いて、ディジタル乱数を生成する。従って、乱数生成部が固定値のディジタルデータを初期値として用いてディジタル乱数を生成する場合と比較すると、生成されるディジタル乱数の真性度を高めることができる。
【００１８】
本発明の第６の態様に係る乱数生成回路は、第５の態様に係る乱数生成回路において特に、前記第２の不確定論理回路は複数であり、複数の前記第２の不確定論理回路がパラレルに接続されることにより、前記第２のディジタルデータ列の各ビットがパラレルに出力されることを特徴とするものである。
【００１９】
第６の態様に係る乱数生成回路によれば、不確定論理回路は、それを構成する素子の特性によって、出力値が「０」又は「１」に偏る場合がある。そのような場合であっても、複数の第２の不確定論理回路をパラレルに接続することにより、不確定論理回路を構成する素子の特性は各第２の不確定論理回路毎に異なるため、第２のディジタルデータ列の各ビットには、「０」に偏るものと「１」に偏るものとが混在することとなる。その結果、第２のディジタルデータ列の真性度をさらに高めることができる。
【００２０】
本発明の第７の態様に係る乱数生成回路は、第５の態様に係る乱数生成回路において特に、一つの前記第２の不確定論理回路から、前記第２のディジタルデータ列の各ビットがシリアルに出力されることを特徴とするものである。
【００２１】
第７の態様に係る乱数生成回路によれば、第２の不確定論理回路が第２のディジタルデータ列の各ビットをシリアルに出力することにより、第２の不確定論理回路は一つのみで足りる。従って、複数の第２の不確定論理回路をパラレルに接続する場合と比較すると、回路規模の削減と消費電力の低減とを図ることができる。
【００２２】
本発明の第８の態様に係る乱数生成回路は、第５〜第７のいずれか一つの態様に係る乱数生成回路において特に、前記第２の不確定論理回路は、前記第２のディジタルデータ列として、ハイレベルの固定出力値と、ハイレベル又はローレベルの不定出力値とを交互に出力することを特徴とするものである。
【００２３】
第８の態様に係る乱数生成回路によれば、第２の不確定論理回路からは、第２のディジタルデータ列として、ハイレベルの固定出力値と、ハイレベル又はローレベルの不定出力値とが交互に出力される。そのため、第２のディジタルデータ列の各ビットが全てローレベルになるという事態が発生する可能性はない。従って、乱数生成部において、初期値の全ビットがローレベルとなることによりデータがそのままディジタル乱数として出力されてしまうという事態が発生することを、予め回避することができる。
【００２４】
本発明の第９の態様に係る乱数生成回路は、不定値のディジタルデータ列を出力する、不確定論理回路と、前記ディジタルデータ列を初期値として用いて、所定の乱数生成アルゴリズムに基づいてディジタル乱数を生成する、乱数生成部とを備えることを特徴とするものである。
【００２５】
第９の態様に係る乱数生成回路によれば、不確定論理回路は、不定値のディジタルデータ列を出力する。そして、乱数生成部は、不定値のディジタルデータ列を初期値として用いて、ディジタル乱数を生成する。従って、不確定論理回路の出力をそのままディジタル乱数とする場合や、乱数生成部が固定値のディジタルデータを初期値として用いてディジタル乱数を生成する場合と比較すると、生成されるディジタル乱数の真性度を高めることができる。
【００２６】
本発明の第１０の態様に係る乱数生成回路は、第９の態様に係る乱数生成回路において特に、前記乱数生成部は、前記ディジタルデータ列をさらにデータとして用いて、前記ディジタル乱数を生成することを特徴とするものである。
【００２７】
第１０の態様に係る乱数生成回路によれば、乱数生成部は、不定値のディジタルデータ列を初期値及びデータとして用いて、ディジタル乱数を生成する。従って、乱数生成部が固定値のディジタルデータをデータとして用いてディジタル乱数を生成する場合と比較すると、生成されるディジタル乱数の真性度を高めることができる。
【００２８】
本発明の第１１の態様に係る乱数生成回路は、第９又は第１０の態様に係る乱数生成回路において特に、前記不確定論理回路は複数であり、複数の前記不確定論理回路がパラレルに接続されることにより、前記ディジタルデータ列の各ビットがパラレルに出力されることを特徴とするものである。
【００２９】
第１１の態様に係る乱数生成回路によれば、不確定論理回路は、それを構成する素子の特性によって、出力値が「０」又は「１」に偏る場合がある。そのような場合であっても、複数の不確定論理回路をパラレルに接続することにより、不確定論理回路を構成する素子の特性は各不確定論理回路毎に異なるため、ディジタルデータ列の各ビットには、「０」に偏るものと「１」に偏るものとが混在することとなる。その結果、ディジタルデータ列の真性度をさらに高めることができる。
【００３０】
本発明の第１２の態様に係る乱数生成回路は、第９又は第１０の態様に係る乱数生成回路において特に、一つの前記不確定論理回路から、前記ディジタルデータ列の各ビットがシリアルに出力されることを特徴とするものである。
【００３１】
第１２の態様に係る乱数生成回路によれば、不確定論理回路がディジタルデータ列の各ビットをシリアルに出力することにより、不確定論理回路は一つのみで足りる。従って、複数の不確定論理回路をパラレルに接続する場合と比較すると、回路規模の削減と消費電力の低減とを図ることができる。
【００３２】
本発明の第１３の態様に係る乱数生成回路は、第９〜第１２のいずれか一つの態様に係る乱数生成回路において特に、前記不確定論理回路は、前記ディジタルデータ列として、ハイレベルの固定出力値と、ハイレベル又はローレベルの不定出力値とを交互に出力することを特徴とするものである。
【００３３】
第１３の態様に係る乱数生成回路によれば、不確定論理回路からは、ディジタルデータ列として、ハイレベルの固定出力値と、ハイレベル又はローレベルの不定出力値とが交互に出力される。そのため、ディジタルデータ列の各ビットが全てローレベルになるという事態が発生する可能性はない。従って、乱数生成部において、初期値の全ビットがローレベルとなることによりデータがそのままディジタル乱数として出力されてしまうという事態が発生することを、予め回避することができる。
【００３４】
本発明の第１４の態様に係るコンピュータシステムは、ホストコンピュータと、前記ホストコンピュータに接続可能なメモリ装置とを備え、前記ホストコンピュータは、不定値の第１のディジタルデータ列を出力する、第１の不確定論理回路と、前記第１のディジタルデータ列を、データ及び初期値の少なくとも一方として用いて、第１の乱数生成アルゴリズムに基づいて第１のディジタル乱数を生成する、第１の乱数生成部とを有し、前記メモリ装置は、不定値の第２のディジタルデータ列を出力する、第２の不確定論理回路と、前記第２のディジタルデータ列を、データ及び初期値の少なくとも一方として用いて、第２の乱数生成アルゴリズムに基づいて第２のディジタル乱数を生成する、第２の乱数生成部とを有し、前記第１の乱数生成アルゴリズムと前記第２の乱数生成アルゴリズムとは互いに異なることを特徴とするものである。
【００３５】
第１４の態様に係るコンピュータシステムによれば、ホストコンピュータは、真性度の高い第１のディジタル乱数を用いて、メモリ装置の認証を行うことができる。また、メモリ装置は、真性度の高い第２のディジタル乱数を用いて、ホストコンピュータの認証を行うことができる。その結果、ホストコンピュータ及びメモリ装置において、精度の高い相互認証を行うことができる。また、ホストコンピュータの第１の乱数生成部が使用する第１の乱数生成アルゴリズムと、メモリ装置の第２の乱数生成部が使用する第２の乱数生成アルゴリズムとは、互いに異なる。従って、ホストコンピュータとメモリ装置とで同一の乱数生成アルゴリズムを使用する場合と比較すると、セキュリティ性を高めることができる。また、ホストコンピュータにおいては、ホストコンピュータに適した乱数生成アルゴリズムを採用することが可能となり、メモリ装置においては、メモリ装置に適した乱数生成アルゴリズムを採用することが可能となる。
【発明の効果】
【００３６】
本発明によれば、真性度の高いディジタル乱数を生成することが可能となる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００３８】
図１は、本発明の実施の形態に係るコンピュータシステム１の構成を概略的に示すブロック図である。コンピュータシステム１は、ホストコンピュータ２と、ホストコンピュータ２に接続されたメモリ装置３とを備えて構成されている。メモリ装置３は、例えば、ホストコンピュータ２に着脱自在なメモリカードである。
【００３９】
ホストコンピュータ２は、乱数生成回路４、認証回路５、暗号化回路６，１１、及び復号化回路７，１０を有している。暗号化回路６，１１は共通の回路として構成しても良く、復号化回路７，１０は共通の回路として構成しても良い。メモリ装置３は、復号化回路８，１３、暗号化回路９，１２、乱数生成回路１４、及び認証回路１５を有している。復号化回路８，１３は共通の回路として構成しても良く、暗号化回路９，１２は共通の回路として構成しても良い。
【００４０】
乱数生成回路４は、ディジタル乱数Ｄ１を生成して出力する。ディジタル乱数Ｄ１は、暗号化回路６に入力される。暗号化回路６は、ディジタル乱数Ｄ１を暗号化することにより、暗号化されたディジタル乱数Ｄ２を生成して出力する。ディジタル乱数Ｄ２は、復号化回路８に入力される。復号化回路８は、ディジタル乱数Ｄ２を復号化することにより、ディジタル乱数Ｄ１を出力する。ディジタル乱数Ｄ１は、暗号化回路９に入力される。暗号化回路９は、ディジタル乱数Ｄ１を暗号化することにより、暗号化されたディジタル乱数Ｄ３を生成して出力する。ディジタル乱数Ｄ３は、復号化回路７に入力される。復号化回路７は、ディジタル乱数Ｄ３を復号化することにより、ディジタル乱数Ｄ１を出力する。認証回路５は、乱数生成回路４から入力されたディジタル乱数Ｄ１と、復号化回路７から入力されたディジタル乱数Ｄ１とを比較する。そして、認証回路５は、両者が互いに等しい場合には、メモリ装置３は正規のメモリ装置であると判定し、両者が等しくない場合には、メモリ装置３は不正なメモリ装置であると判定する。
【００４１】
乱数生成回路１４は、ディジタル乱数Ｄ４を生成して出力する。ディジタル乱数Ｄ４は、暗号化回路１２に入力される。暗号化回路１２は、ディジタル乱数Ｄ４を暗号化することにより、暗号化されたディジタル乱数Ｄ５を生成して出力する。ディジタル乱数Ｄ５は、復号化回路１０に入力される。復号化回路１０は、ディジタル乱数Ｄ５を復号化することにより、ディジタル乱数Ｄ４を出力する。ディジタル乱数Ｄ４は、暗号化回路１１に入力される。暗号化回路１１は、ディジタル乱数Ｄ４を暗号化することにより、暗号化されたディジタル乱数Ｄ６を生成して出力する。ディジタル乱数Ｄ６は、復号化回路１３に入力される。復号化回路１３は、ディジタル乱数Ｄ６を復号化することにより、ディジタル乱数Ｄ５を出力する。認証回路１５は、乱数生成回路１４から入力されたディジタル乱数Ｄ４と、復号化回路１３から入力されたディジタル乱数Ｄ４とを比較する。そして、認証回路１５は、両者が互いに等しい場合には、ホストコンピュータ２は正規のホストコンピュータであると判定し、両者が等しくない場合には、ホストコンピュータ２は不正なホストコンピュータであると判定する。
【００４２】
図２は、図１に示した乱数生成回路４の第１の構成例を示すブロック図である。乱数生成回路４は、不確定論理回路２０と乱数生成部２１とを有している。不確定論理回路２０及び乱数生成部２１には、共通のクロック信号Ｃが入力される。不確定論理回路２０は、クロック信号Ｃに基づいて、不定値のディジタルデータ列Ｄ１０を生成して出力する。不確定論理回路２０の具体的な構成については後述する。
【００４３】
乱数生成部２１は、任意の乱数生成アルゴリズムに基づいて、ディジタル乱数Ｄ１を生成する。ディジタル乱数Ｄ１を生成するにあたり、乱数生成部２１は、データと初期値とを使用する。但し、乱数生成アルゴリズムによっては、初期値を使用しないものもある。
【００４４】
乱数生成部２１が疑似乱数生成アルゴリズムを用いる場合には、データ及び初期値の双方が使用される。乱数生成部２１がハッシュ関数を用いる場合には、データのみが使用され、初期値は使用されない。乱数生成部２１が共通鍵方式の暗号化アルゴリズムを用いる場合には、暗号モードによって、初期値を使用するものと使用しないものとがある。具体的には、ＲＣ４又はＭｉｓｔｙ等のストリーム暗号においては、データ及び初期値の双方が使用される。また、ＡＥＳ、カメリア、又はＤＥＳ等のブロック暗号においては、ＥＣＢモードでは、データのみが使用され、初期値は使用されない。一方、ＣＢＣモード又はＣＴＲモード等のその他のモードでは、データ及び初期値の双方が使用される。
【００４５】
図２に示した乱数生成回路４においては、乱数生成部２１は、固定値であるディジタルデータ列Ｄ１１を初期値として用い、不確定論理回路２０から入力された不定値のディジタルデータ列Ｄ１０をデータとして用いて、ディジタル乱数Ｄ１を生成する。
【００４６】
図３は、図２に示した不確定論理回路２０の第１の例を示す図である。図３の（Ａ）には、不確定論理回路２０の構成を示しており、図３の（Ｂ）には、図３の（Ａ）に示した構成に対応する入力波形及び出力波形を示している。図３の（Ａ）に示すように、不確定論理回路２０は、２個のＮＡＮＤ回路を用いたＲＳフリップフロップとして構成されている。２個のＮＡＮＤ回路には、クロック信号Ｃが共通に入力されており、一方のＮＡＮＤ回路から出力Ｑが得られる。図３の（Ｂ）に示すように、クロック信号Ｃがローレベルの時には、出力Ｑはハイレベルの固定値となる。一方、クロック信号Ｃがハイレベルの時には、出力Ｑはハイレベル又はローレベルの不定値となる。その結果、不定値のディジタルデータ列Ｄ１０が得られる。
【００４７】
図４は、図２に示した不確定論理回路２０の第２の例を示す図である。図４の（Ａ）には、不確定論理回路２０の構成を示しており、図４の（Ｂ）には、図４の（Ａ）に示した構成に対応する入力波形及び出力波形を示している。図４の（Ａ）に示すように、不確定論理回路２０は、２個のＮＯＲ回路を用いたＲＳフリップフロップとして構成されている。２個のＮＯＲ回路には、クロック信号Ｃが共通に入力されており、一方のＮＯＲ回路から出力Ｑが得られる。図４の（Ｂ）に示すように、クロック信号Ｃがハイレベルの時には、出力Ｑはローレベルの固定値となる。一方、クロック信号Ｃがローレベルの時には、出力Ｑはハイレベル又はローレベルの不定値となる。その結果、不定値のディジタルデータ列Ｄ１０が得られる。
【００４８】
図５は、図１に示した乱数生成回路４の第２の構成例を示すブロック図である。図５に示した乱数生成回路４においては、乱数生成部２１は、不確定論理回路２０から入力された不定値のディジタルデータ列Ｄ１０をデータ及び初期値の双方として用いて、ディジタル乱数Ｄ１を生成する。
【００４９】
図６は、図１に示した乱数生成回路４の第３の構成例を示すブロック図である。乱数生成回路４は、不確定論理回路２０，２２と乱数生成部２１とを有している。不確定論理回路２０，２２及び乱数生成部２１には、共通のクロック信号Ｃが入力される。不確定論理回路２２は、クロック信号Ｃに基づいて、不定値のディジタルデータ列Ｄ１２を生成して出力する。不確定論理回路２２の構成は、図３，４に示した構成と同様である。図６に示した乱数生成回路４においては、乱数生成部２１は、不確定論理回路２０から入力された不定値のディジタルデータ列Ｄ１０をデータとして用い、不確定論理回路２２から入力された不定値のディジタルデータ列Ｄ１２を初期値として用いて、ディジタル乱数Ｄ１を生成する。
【００５０】
図７は、図１に示した乱数生成回路４の第４の構成例を示すブロック図である。乱数生成回路４は、不確定論理回路２２と乱数生成部２１とを有している。図７に示した乱数生成回路４においては、乱数生成部２１は、固定値であるディジタルデータ列Ｄ１３をデータとして用い、不確定論理回路２２から入力された不定値のディジタルデータ列Ｄ１２を初期値として用いて、ディジタル乱数Ｄ１を生成する。
【００５１】
図８は、図１に示した乱数生成回路４の第５の構成例を示すブロック図である。図８に示した乱数生成回路４においては、乱数生成部２１は、不確定論理回路２２から入力された不定値のディジタルデータ列Ｄ１２をデータ及び初期値の双方として用いて、ディジタル乱数Ｄ１を生成する。
【００５２】
図９は、図２，５，６に示した不確定論理回路２０の第１の構成例を示す図である。不確定論理回路２０は、ディジタルデータ列Ｄ１０のビット数に応じて、複数の不確定論理回路２０１，２０２，２０３，２０４，・・・を有している。クロック信号Ｃに対して複数の不確定論理回路２０１，２０２，２０３，２０４，・・・がパラレルに接続されることにより、ディジタルデータ列Ｄ１０の各ビットＤ１０１，Ｄ１０２，Ｄ１０３，Ｄ１０４，・・・がパラレルに出力される。
【００５３】
図１０は、図２，５，６に示した不確定論理回路２０の第２の構成例を示す図である。不確定論理回路２０は、ディジタルデータ列Ｄ１０のビット数に関わらず、１個のみ設けられている。不確定論理回路２０からは、ディジタルデータ列Ｄ１０の各ビットＤ１０１，Ｄ１０２，Ｄ１０３，Ｄ１０４，・・・がシリアルに出力される。
【００５４】
図１１は、図６〜８に示した不確定論理回路２２の第１の構成例を示す図である。不確定論理回路２２は、ディジタルデータ列Ｄ１２のビット数に応じて、複数の不確定論理回路２２１，２２２，２２３，２２４，・・・を有している。クロック信号Ｃに対して複数の不確定論理回路２２１，２２２，２２３，２２４，・・・がパラレルに接続されることにより、ディジタルデータ列Ｄ１２の各ビットＤ１２１，Ｄ１２２，Ｄ１２３，Ｄ１２４，・・・がパラレルに出力される。
【００５５】
図１２は、図６〜８に示した不確定論理回路２２の第２の構成例を示す図である。不確定論理回路２２は、ディジタルデータ列Ｄ１２のビット数に関わらず、１個のみ設けられている。不確定論理回路２２からは、ディジタルデータ列Ｄ１２の各ビットＤ１２１，Ｄ１２２，Ｄ１２３，Ｄ１２４，・・・がシリアルに出力される。
【００５６】
図１３は、図１に示した乱数生成回路１４の構成例を示すブロック図である。乱数生成回路１４は、不確定論理回路３０，３１と乱数生成部３１とを有している。不確定論理回路３０，３２及び乱数生成部３１には、共通のクロック信号Ｃが入力される。不確定論理回路３０は、クロック信号Ｃに基づいて、不定値のディジタルデータ列Ｄ３０を生成して出力する。不確定論理回路３２は、クロック信号Ｃに基づいて、不定値のディジタルデータ列Ｄ３２を生成して出力する。不確定論理回路３０，３２の構成は、図３，４に示した構成と同様である。図１３に示した乱数生成回路１４においては、乱数生成部３１は、不確定論理回路３０から入力された不定値のディジタルデータ列Ｄ３０をデータとして用い、不確定論理回路３２から入力された不定値のディジタルデータ列Ｄ３２を初期値として用いて、任意の乱数生成アルゴリズムに基づいてディジタル乱数Ｄ４を生成する。なお、乱数生成回路１４は、図２，５，７，８に示したような構成であっても良い。また、不確定論理回路３０，３２に関しても、図９〜１２に示したような構成を採用することができる。
【００５７】
ホストコンピュータ２の乱数生成回路４と、メモリ装置３の乱数生成回路１４とは、互いに異なる乱数生成アルゴリズムを使用しても良い。例えば、ホストコンピュータ２においては多数の論理ゲートを使用可能であるため、乱数生成回路４の乱数生成部２１には、回路規模が比較的大きくなるハッシュ関数又はブロック暗号のアルゴリズムを用いる。一方、メモリ装置３においては製造コストを重視することにより、乱数生成回路１４の乱数生成部３１には、回路規模が比較的小さいストリーム暗号のアルゴリズムを用いる。
【００５８】
図１４は、不確定論理回路の変形例を示す回路図である。図１４に示したような構成によっても、ＲＳフリップフロップの禁止入力を活用することによって、不定値のディジタルデータ列を得ることができる。
【００５９】
なお、本発明に係る乱数生成回路は、ホストコンピュータとメモリ装置との相互認証に使用する乱数を生成するための乱数生成回路としてのみならず、例えば、平文を暗号化する際に使用する乱数を生成するための、一般的な乱数生成回路として使用することもできる。
【００６０】
＜まとめ＞
図２，５，６に示した乱数生成回路４によれば、不確定論理回路２０は、不定値のディジタルデータ列Ｄ１０を出力する。そして、乱数生成部２１は、不定値のディジタルデータ列Ｄ１０をデータとして用いて、ディジタル乱数Ｄ１を生成する。従って、不確定論理回路の出力をそのままディジタル乱数とする場合や、乱数生成部が固定値のディジタルデータをデータとして用いてディジタル乱数を生成する場合と比較すると、生成されるディジタル乱数Ｄ１の真性度を高めることができる。
【００６１】
図５に示した乱数生成回路４によれば、乱数生成部２１は、不定値のディジタルデータ列Ｄ１０を初期値及びデータとして用いて、ディジタル乱数Ｄ１を生成する。従って、乱数生成部２１が固定値のディジタルデータ列Ｄ１１を初期値として用いてディジタル乱数Ｄ１を生成する場合（図２）と比較すると、生成されるディジタル乱数Ｄ１の真性度を高めることができる。
【００６２】
不確定論理回路２０は、それを構成する素子の特性によって、出力値が「０」又は「１」に偏る場合がある。そのような場合であっても、図９に示した構成のように、複数の不確定論理回路２０１，２０２，２０３，２０４，・・・をパラレルに接続することにより、ディジタル乱数Ｄ１におけるデータの偏りを解消することができる。つまり、不確定論理回路２０１，２０２，２０３，２０４，・・・を構成する素子の特性は各不確定論理回路毎に異なるため、ディジタルデータ列Ｄ１０の各ビットＤ１０１，Ｄ１０２，Ｄ１０３，Ｄ１０４，・・・には、「０」に偏るものと「１」に偏るものとが混在することとなる。その結果、出力値の偏りが解消されることにより、ディジタルデータ列Ｄ１０の真性度、ひいてはディジタル乱数Ｄ１の真性度を、さらに高めることができる。
【００６３】
一方、図１０に示した構成によれば、不確定論理回路２０がディジタルデータ列Ｄ１０の各ビットＤ１０１，Ｄ１０２，Ｄ１０３，Ｄ１０４，・・・をシリアルに出力することにより、不確定論理回路２０は一つのみで足りる。従って、複数の不確定論理回路２０１，２０２，２０３，２０４，・・・をパラレルに接続する場合（図９）と比較すると、回路規模の削減と消費電力の低減とを図ることができる。
【００６４】
図６に示した乱数生成回路４によれば、不確定論理回路２２は、不定値のディジタルデータ列Ｄ１２を出力する。そして、乱数生成部２１は、不定値のディジタルデータＤ１０をデータとして用いて、かつ、不定値のディジタルデータ列Ｄ１２を初期値として用いて、ディジタル乱数Ｄ１を生成する。従って、乱数生成部２１が固定値のディジタルデータ列Ｄ１１を初期値として用いてディジタル乱数Ｄ１を生成する場合（図２）と比較すると、生成されるディジタル乱数Ｄ１の真性度を高めることができる。
【００６５】
不確定論理回路２２は、それを構成する素子の特性によって、出力値が「０」又は「１」に偏る場合がある。そのような場合であっても、図１１に示した構成のように、複数の不確定論理回路２２１，２２２，２２３，２２４，・・・をパラレルに接続することにより、ディジタル乱数Ｄ１におけるデータの偏りを解消することができる。つまり、不確定論理回路２２１，２２２，２２３，２２４，・・・を構成する素子の特性は各不確定論理回路毎に異なるため、ディジタルデータ列Ｄ１２の各ビットＤ１２１，Ｄ１２２，Ｄ１２３，Ｄ１２４，・・・には、「０」に偏るものと「１」に偏るものとが混在することとなる。その結果、出力値の偏りが解消されることにより、ディジタルデータ列Ｄ１２の真性度、ひいてはディジタル乱数Ｄ１の真性度を、さらに高めることができる。
【００６６】
一方、図１２に示した構成によれば、不確定論理回路２２がディジタルデータ列Ｄ１２の各ビットＤ１２１，Ｄ１２２，Ｄ１２３，Ｄ１２４，・・・をシリアルに出力することにより、不確定論理回路２２は一つのみで足りる。従って、複数の不確定論理回路２２１，２２２，２２３，２２４，・・・をパラレルに接続する場合（図１１）と比較すると、回路規模の削減と消費電力の低減とを図ることができる。
【００６７】
図６〜８に示した不確定論理回路２２には、図３に示した、ＮＡＮＤ回路を用いた構成を採用するのが望ましい。図３に示した構成によれば、不確定論理回路２２からは、ディジタルデータ列Ｄ１２として、ハイレベルの固定出力値と、ハイレベル又はローレベルの不定出力値とが交互に出力される。そのため、ディジタルデータ列Ｄ１２の各ビットが全てローレベルになるという事態が発生する可能性はない。従って、乱数生成部２１において、初期値の全ビットがローレベルとなることによりデータ（Ｄ１０，Ｄ１３，又はＤ１２）がそのままディジタル乱数Ｄ１として出力されてしまうという事態が発生することを、予め回避することができる。
【００６８】
図６〜８に示した乱数生成回路４によれば、不確定論理回路２２は、不定値のディジタルデータ列Ｄ１２を出力する。そして、乱数生成部２１は、不定値のディジタルデータ列Ｄ１２を初期値として用いて、ディジタル乱数Ｄ１を生成する。従って、不確定論理回路の出力をそのままディジタル乱数とする場合や、乱数生成部が固定値のディジタルデータを初期値として用いてディジタル乱数を生成する場合と比較すると、生成されるディジタル乱数Ｄ１の真性度を高めることができる。
【００６９】
図８に示した乱数生成回路４によれば、乱数生成部２１は、不定値のディジタルデータ列Ｄ１２を初期値及びデータとして用いて、ディジタル乱数Ｄ１を生成する。従って、乱数生成部２１が固定値のディジタルデータ列Ｄ１３をデータとして用いてディジタル乱数Ｄ１を生成する場合（図７）と比較すると、生成されるディジタル乱数Ｄ１の真性度を高めることができる。
【００７０】
本実施の形態に係るコンピュータシステム１によれば、ホストコンピュータ２は、真性度の高いディジタル乱数Ｄ１を用いて、メモリ装置３の認証を行うことができる。また、メモリ装置３は、真性度の高いディジタル乱数Ｄ４を用いて、ホストコンピュータ２の認証を行うことができる。その結果、ホストコンピュータ２及びメモリ装置３において、精度の高い相互認証を行うことができる。
【００７１】
また、ホストコンピュータ２の乱数生成部２１が使用する乱数生成アルゴリズムと、メモリ装置３の乱数生成部３１が使用する乱数生成アルゴリズムとを、互いに異ならせた場合には、ホストコンピュータ２とメモリ装置３とで同一の乱数生成アルゴリズムを使用する場合と比較すると、セキュリティ性を高めることができる。しかも、ホストコンピュータ２においては、ホストコンピュータ２に適した乱数生成アルゴリズムを採用することが可能となり、メモリ装置３においては、メモリ装置３に適した乱数生成アルゴリズムを採用することが可能となる。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施の形態に係るコンピュータシステムの構成を概略的に示すブロック図である。
【図２】図１に示した乱数生成回路の第１の構成例を示すブロック図である。
【図３】図２に示した不確定論理回路の第１の例を示す図である。
【図４】図２に示した不確定論理回路の第２の例を示す図である。
【図５】図１に示した乱数生成回路の第２の構成例を示すブロック図である。
【図６】図１に示した乱数生成回路の第３の構成例を示すブロック図である。
【図７】図１に示した乱数生成回路の第４の構成例を示すブロック図である。
【図８】図１に示した乱数生成回路の第５の構成例を示すブロック図である。
【図９】図２，５，６に示した不確定論理回路の第１の構成例を示す図である。
【図１０】図２，５，６に示した不確定論理回路の第２の構成例を示す図である。
【図１１】図６〜８に示した不確定論理回路の第１の構成例を示す図である。
【図１２】図６〜８に示した不確定論理回路の第２の構成例を示す図である。
【図１３】図１に示した乱数生成回路の構成例を示すブロック図である。
【図１４】不確定論理回路の変形例を示す回路図である。
【符号の説明】
【００７３】
１  コンピュータシステム
２  ホストコンピュータ
３  メモリ装置
４，１４  乱数生成回路
２０，２２，３０，３２，２０１〜２０４，２２１〜２２４  不確定論理回路
２１，３１  乱数生成部
【図１】
2010039838.tif 000003
【図２】
2010039838.tif 000004
【図３】
2010039838.tif 000005
【図４】
2010039838.tif 000006
【図５】
2010039838.tif 000007
【図６】
2010039838.tif 000008
【図７】
2010039838.tif 000009
【図８】
2010039838.tif 000010
【図９】
2010039838.tif 000011
【図１０】
2010039838.tif 000012
【図１１】
2010039838.tif 000013
【図１２】
2010039838.tif 000014
【図１３】
2010039838.tif 000015
【図１４】
2010039838.tif 000016