JP2010039838A - 乱数生成回路及びコンピュータシステム - Google Patents

乱数生成回路及びコンピュータシステム Download PDF

Info

Publication number
JP2010039838A
JP2010039838A JP2008203173A JP2008203173A JP2010039838A JP 2010039838 A JP2010039838 A JP 2010039838A JP 2008203173 A JP2008203173 A JP 2008203173A JP 2008203173 A JP2008203173 A JP 2008203173A JP 2010039838 A JP2010039838 A JP 2010039838A
Authority
JP
Japan
Prior art keywords
random number
number generation
digital
digital data
data string
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
JP2008203173A
Other languages
English (en)
Inventor
Takahiko Sugawara
崇彦 菅原
Ken Yukimatsu
健 雪松
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.)
MegaChips Corp
Original Assignee
MegaChips Corp
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 MegaChips Corp filed Critical MegaChips Corp
Priority to JP2008203173A priority Critical patent/JP2010039838A/ja
Publication of JP2010039838A publication Critical patent/JP2010039838A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】真性度の高いディジタル乱数を生成することが可能な乱数生成回路を得る。
【解決手段】乱数生成回路4は、不定値のディジタルデータ列D10を出力する、不確定論理回路20と、ディジタルデータ列D10をデータとして用いて、所定の乱数生成アルゴリズムに基づいてディジタル乱数D1を生成する、乱数生成部21とを備える。
【選択図】図2

Description

本発明は、乱数生成回路及びコンピュータシステムに関する。
乱数は、暗号アルゴリズムにおける鍵の生成等に用いられる。真性乱数に近い乱数を得るための手法の一つとして、抵抗又はダイオードにおいて発生する雑音を利用して乱数を生成する方式が実用化されている。しかしながら、この方式では、低レベルの雑音をアナログ増幅回路によって増幅する必要があるため、アナログ増幅回路の回路規模が大きくなり、結果として乱数生成回路の回路規模が全体として増大する。従って、回路規模の増大を回避するためには、計算によって生成可能なディジタル乱数の使用が望まれる。
ディジタル乱数としては、疑似乱数が広く用いられている。疑似乱数は、乱数生成回路において、初期値(seed)とデータとを用いた所定のアルゴリズムによって生成される。
なお、下記特許文献1には、不確定論理回路と、不確定論理回路から出力されるディジタル値における「0」及び「1」の出現頻度を均等にするための一様化回路とを備える乱数生成回路が開示されている。
特許第3604674号公報
疑似乱数は計算によって生成されるため、初期値及びアルゴリズムが同一であれば、生成される疑似乱数の値も同一となる。従って、疑似乱数をセキュリティ用途で使用する場合には、攻撃者に初期値及びアルゴリズムを見破られることにより、セキュリティを破られる可能性がある。
本発明はかかる事情に鑑みて成されたものであり、真性度の高いディジタル乱数を生成することが可能な乱数生成回路、及びそれを用いたコンピュータシステムを得ることを目的とする。
本発明の第1の態様に係る乱数生成回路は、不定値の第1のディジタルデータ列を出力する、第1の不確定論理回路と、前記第1のディジタルデータ列をデータとして用いて、所定の乱数生成アルゴリズムに基づいてディジタル乱数を生成する、乱数生成部とを備えることを特徴とするものである。
第1の態様に係る乱数生成回路によれば、第1の不確定論理回路は、不定値の第1のディジタルデータ列を出力する。そして、乱数生成部は、不定値の第1のディジタルデータ列をデータとして用いて、ディジタル乱数を生成する。従って、不確定論理回路の出力をそのままディジタル乱数とする場合や、乱数生成部が固定値のディジタルデータをデータとして用いてディジタル乱数を生成する場合と比較すると、生成されるディジタル乱数の真性度を高めることができる。
本発明の第2の態様に係る乱数生成回路は、第1の態様に係る乱数生成回路において特に、前記乱数生成部は、前記第1のディジタルデータ列をさらに初期値として用いて、前記ディジタル乱数を生成することを特徴とするものである。
第2の態様に係る乱数生成回路によれば、乱数生成部は、不定値の第1のディジタルデータ列を初期値及びデータとして用いて、ディジタル乱数を生成する。従って、乱数生成部が固定値のディジタルデータを初期値として用いてディジタル乱数を生成する場合と比較すると、生成されるディジタル乱数の真性度を高めることができる。
本発明の第3の態様に係る乱数生成回路は、第1又は第2の態様に係る乱数生成回路において特に、前記第1の不確定論理回路は複数であり、複数の前記第1の不確定論理回路がパラレルに接続されることにより、前記第1のディジタルデータ列の各ビットがパラレルに出力されることを特徴とするものである。
第3の態様に係る乱数生成回路によれば、不確定論理回路は、それを構成する素子の特性によって、出力値が「0」又は「1」に偏る場合がある。そのような場合であっても、複数の第1の不確定論理回路をパラレルに接続することにより、不確定論理回路を構成する素子の特性は各第1の不確定論理回路毎に異なるため、第1のディジタルデータ列の各ビットには、「0」に偏るものと「1」に偏るものとが混在することとなる。その結果、第1のディジタルデータ列の真性度をさらに高めることができる。
本発明の第4の態様に係る乱数生成回路は、第1又は第2の態様に係る乱数生成回路において特に、一つの前記第1の不確定論理回路から、前記第1のディジタルデータ列の各ビットがシリアルに出力されることを特徴とするものである。
第4の態様に係る乱数生成回路によれば、第1の不確定論理回路が第1のディジタルデータ列の各ビットをシリアルに出力することにより、第1の不確定論理回路は一つのみで足りる。従って、複数の第1の不確定論理回路をパラレルに接続する場合と比較すると、回路規模の削減と消費電力の低減とを図ることができる。
本発明の第5の態様に係る乱数生成回路は、第1、第3、及び第4のいずれか一つの態様に係る乱数生成回路において特に、不定値の第2のディジタルデータ列を出力する、第2の不確定論理回路をさらに備え、前記乱数生成部は、前記第2のディジタルデータ列を初期値として用いて、前記ディジタル乱数を生成することを特徴とするものである。
第5の態様に係る乱数生成回路によれば、第2の不確定論理回路は、不定値の第2のディジタルデータ列を出力する。そして、乱数生成部は、不定値の第1のディジタルデータをデータとして用いて、かつ、不定値の第2のディジタルデータ列を初期値として用いて、ディジタル乱数を生成する。従って、乱数生成部が固定値のディジタルデータを初期値として用いてディジタル乱数を生成する場合と比較すると、生成されるディジタル乱数の真性度を高めることができる。
本発明の第6の態様に係る乱数生成回路は、第5の態様に係る乱数生成回路において特に、前記第2の不確定論理回路は複数であり、複数の前記第2の不確定論理回路がパラレルに接続されることにより、前記第2のディジタルデータ列の各ビットがパラレルに出力されることを特徴とするものである。
第6の態様に係る乱数生成回路によれば、不確定論理回路は、それを構成する素子の特性によって、出力値が「0」又は「1」に偏る場合がある。そのような場合であっても、複数の第2の不確定論理回路をパラレルに接続することにより、不確定論理回路を構成する素子の特性は各第2の不確定論理回路毎に異なるため、第2のディジタルデータ列の各ビットには、「0」に偏るものと「1」に偏るものとが混在することとなる。その結果、第2のディジタルデータ列の真性度をさらに高めることができる。
本発明の第7の態様に係る乱数生成回路は、第5の態様に係る乱数生成回路において特に、一つの前記第2の不確定論理回路から、前記第2のディジタルデータ列の各ビットがシリアルに出力されることを特徴とするものである。
第7の態様に係る乱数生成回路によれば、第2の不確定論理回路が第2のディジタルデータ列の各ビットをシリアルに出力することにより、第2の不確定論理回路は一つのみで足りる。従って、複数の第2の不確定論理回路をパラレルに接続する場合と比較すると、回路規模の削減と消費電力の低減とを図ることができる。
本発明の第8の態様に係る乱数生成回路は、第5〜第7のいずれか一つの態様に係る乱数生成回路において特に、前記第2の不確定論理回路は、前記第2のディジタルデータ列として、ハイレベルの固定出力値と、ハイレベル又はローレベルの不定出力値とを交互に出力することを特徴とするものである。
第8の態様に係る乱数生成回路によれば、第2の不確定論理回路からは、第2のディジタルデータ列として、ハイレベルの固定出力値と、ハイレベル又はローレベルの不定出力値とが交互に出力される。そのため、第2のディジタルデータ列の各ビットが全てローレベルになるという事態が発生する可能性はない。従って、乱数生成部において、初期値の全ビットがローレベルとなることによりデータがそのままディジタル乱数として出力されてしまうという事態が発生することを、予め回避することができる。
本発明の第9の態様に係る乱数生成回路は、不定値のディジタルデータ列を出力する、不確定論理回路と、前記ディジタルデータ列を初期値として用いて、所定の乱数生成アルゴリズムに基づいてディジタル乱数を生成する、乱数生成部とを備えることを特徴とするものである。
第9の態様に係る乱数生成回路によれば、不確定論理回路は、不定値のディジタルデータ列を出力する。そして、乱数生成部は、不定値のディジタルデータ列を初期値として用いて、ディジタル乱数を生成する。従って、不確定論理回路の出力をそのままディジタル乱数とする場合や、乱数生成部が固定値のディジタルデータを初期値として用いてディジタル乱数を生成する場合と比較すると、生成されるディジタル乱数の真性度を高めることができる。
本発明の第10の態様に係る乱数生成回路は、第9の態様に係る乱数生成回路において特に、前記乱数生成部は、前記ディジタルデータ列をさらにデータとして用いて、前記ディジタル乱数を生成することを特徴とするものである。
第10の態様に係る乱数生成回路によれば、乱数生成部は、不定値のディジタルデータ列を初期値及びデータとして用いて、ディジタル乱数を生成する。従って、乱数生成部が固定値のディジタルデータをデータとして用いてディジタル乱数を生成する場合と比較すると、生成されるディジタル乱数の真性度を高めることができる。
本発明の第11の態様に係る乱数生成回路は、第9又は第10の態様に係る乱数生成回路において特に、前記不確定論理回路は複数であり、複数の前記不確定論理回路がパラレルに接続されることにより、前記ディジタルデータ列の各ビットがパラレルに出力されることを特徴とするものである。
第11の態様に係る乱数生成回路によれば、不確定論理回路は、それを構成する素子の特性によって、出力値が「0」又は「1」に偏る場合がある。そのような場合であっても、複数の不確定論理回路をパラレルに接続することにより、不確定論理回路を構成する素子の特性は各不確定論理回路毎に異なるため、ディジタルデータ列の各ビットには、「0」に偏るものと「1」に偏るものとが混在することとなる。その結果、ディジタルデータ列の真性度をさらに高めることができる。
本発明の第12の態様に係る乱数生成回路は、第9又は第10の態様に係る乱数生成回路において特に、一つの前記不確定論理回路から、前記ディジタルデータ列の各ビットがシリアルに出力されることを特徴とするものである。
第12の態様に係る乱数生成回路によれば、不確定論理回路がディジタルデータ列の各ビットをシリアルに出力することにより、不確定論理回路は一つのみで足りる。従って、複数の不確定論理回路をパラレルに接続する場合と比較すると、回路規模の削減と消費電力の低減とを図ることができる。
本発明の第13の態様に係る乱数生成回路は、第9〜第12のいずれか一つの態様に係る乱数生成回路において特に、前記不確定論理回路は、前記ディジタルデータ列として、ハイレベルの固定出力値と、ハイレベル又はローレベルの不定出力値とを交互に出力することを特徴とするものである。
第13の態様に係る乱数生成回路によれば、不確定論理回路からは、ディジタルデータ列として、ハイレベルの固定出力値と、ハイレベル又はローレベルの不定出力値とが交互に出力される。そのため、ディジタルデータ列の各ビットが全てローレベルになるという事態が発生する可能性はない。従って、乱数生成部において、初期値の全ビットがローレベルとなることによりデータがそのままディジタル乱数として出力されてしまうという事態が発生することを、予め回避することができる。
本発明の第14の態様に係るコンピュータシステムは、ホストコンピュータと、前記ホストコンピュータに接続可能なメモリ装置とを備え、前記ホストコンピュータは、不定値の第1のディジタルデータ列を出力する、第1の不確定論理回路と、前記第1のディジタルデータ列を、データ及び初期値の少なくとも一方として用いて、第1の乱数生成アルゴリズムに基づいて第1のディジタル乱数を生成する、第1の乱数生成部とを有し、前記メモリ装置は、不定値の第2のディジタルデータ列を出力する、第2の不確定論理回路と、前記第2のディジタルデータ列を、データ及び初期値の少なくとも一方として用いて、第2の乱数生成アルゴリズムに基づいて第2のディジタル乱数を生成する、第2の乱数生成部とを有し、前記第1の乱数生成アルゴリズムと前記第2の乱数生成アルゴリズムとは互いに異なることを特徴とするものである。
第14の態様に係るコンピュータシステムによれば、ホストコンピュータは、真性度の高い第1のディジタル乱数を用いて、メモリ装置の認証を行うことができる。また、メモリ装置は、真性度の高い第2のディジタル乱数を用いて、ホストコンピュータの認証を行うことができる。その結果、ホストコンピュータ及びメモリ装置において、精度の高い相互認証を行うことができる。また、ホストコンピュータの第1の乱数生成部が使用する第1の乱数生成アルゴリズムと、メモリ装置の第2の乱数生成部が使用する第2の乱数生成アルゴリズムとは、互いに異なる。従って、ホストコンピュータとメモリ装置とで同一の乱数生成アルゴリズムを使用する場合と比較すると、セキュリティ性を高めることができる。また、ホストコンピュータにおいては、ホストコンピュータに適した乱数生成アルゴリズムを採用することが可能となり、メモリ装置においては、メモリ装置に適した乱数生成アルゴリズムを採用することが可能となる。
本発明によれば、真性度の高いディジタル乱数を生成することが可能となる。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
図1は、本発明の実施の形態に係るコンピュータシステム1の構成を概略的に示すブロック図である。コンピュータシステム1は、ホストコンピュータ2と、ホストコンピュータ2に接続されたメモリ装置3とを備えて構成されている。メモリ装置3は、例えば、ホストコンピュータ2に着脱自在なメモリカードである。
ホストコンピュータ2は、乱数生成回路4、認証回路5、暗号化回路6,11、及び復号化回路7,10を有している。暗号化回路6,11は共通の回路として構成しても良く、復号化回路7,10は共通の回路として構成しても良い。メモリ装置3は、復号化回路8,13、暗号化回路9,12、乱数生成回路14、及び認証回路15を有している。復号化回路8,13は共通の回路として構成しても良く、暗号化回路9,12は共通の回路として構成しても良い。
乱数生成回路4は、ディジタル乱数D1を生成して出力する。ディジタル乱数D1は、暗号化回路6に入力される。暗号化回路6は、ディジタル乱数D1を暗号化することにより、暗号化されたディジタル乱数D2を生成して出力する。ディジタル乱数D2は、復号化回路8に入力される。復号化回路8は、ディジタル乱数D2を復号化することにより、ディジタル乱数D1を出力する。ディジタル乱数D1は、暗号化回路9に入力される。暗号化回路9は、ディジタル乱数D1を暗号化することにより、暗号化されたディジタル乱数D3を生成して出力する。ディジタル乱数D3は、復号化回路7に入力される。復号化回路7は、ディジタル乱数D3を復号化することにより、ディジタル乱数D1を出力する。認証回路5は、乱数生成回路4から入力されたディジタル乱数D1と、復号化回路7から入力されたディジタル乱数D1とを比較する。そして、認証回路5は、両者が互いに等しい場合には、メモリ装置3は正規のメモリ装置であると判定し、両者が等しくない場合には、メモリ装置3は不正なメモリ装置であると判定する。
乱数生成回路14は、ディジタル乱数D4を生成して出力する。ディジタル乱数D4は、暗号化回路12に入力される。暗号化回路12は、ディジタル乱数D4を暗号化することにより、暗号化されたディジタル乱数D5を生成して出力する。ディジタル乱数D5は、復号化回路10に入力される。復号化回路10は、ディジタル乱数D5を復号化することにより、ディジタル乱数D4を出力する。ディジタル乱数D4は、暗号化回路11に入力される。暗号化回路11は、ディジタル乱数D4を暗号化することにより、暗号化されたディジタル乱数D6を生成して出力する。ディジタル乱数D6は、復号化回路13に入力される。復号化回路13は、ディジタル乱数D6を復号化することにより、ディジタル乱数D5を出力する。認証回路15は、乱数生成回路14から入力されたディジタル乱数D4と、復号化回路13から入力されたディジタル乱数D4とを比較する。そして、認証回路15は、両者が互いに等しい場合には、ホストコンピュータ2は正規のホストコンピュータであると判定し、両者が等しくない場合には、ホストコンピュータ2は不正なホストコンピュータであると判定する。
図2は、図1に示した乱数生成回路4の第1の構成例を示すブロック図である。乱数生成回路4は、不確定論理回路20と乱数生成部21とを有している。不確定論理回路20及び乱数生成部21には、共通のクロック信号Cが入力される。不確定論理回路20は、クロック信号Cに基づいて、不定値のディジタルデータ列D10を生成して出力する。不確定論理回路20の具体的な構成については後述する。
乱数生成部21は、任意の乱数生成アルゴリズムに基づいて、ディジタル乱数D1を生成する。ディジタル乱数D1を生成するにあたり、乱数生成部21は、データと初期値とを使用する。但し、乱数生成アルゴリズムによっては、初期値を使用しないものもある。
乱数生成部21が疑似乱数生成アルゴリズムを用いる場合には、データ及び初期値の双方が使用される。乱数生成部21がハッシュ関数を用いる場合には、データのみが使用され、初期値は使用されない。乱数生成部21が共通鍵方式の暗号化アルゴリズムを用いる場合には、暗号モードによって、初期値を使用するものと使用しないものとがある。具体的には、RC4又はMisty等のストリーム暗号においては、データ及び初期値の双方が使用される。また、AES、カメリア、又はDES等のブロック暗号においては、ECBモードでは、データのみが使用され、初期値は使用されない。一方、CBCモード又はCTRモード等のその他のモードでは、データ及び初期値の双方が使用される。
図2に示した乱数生成回路4においては、乱数生成部21は、固定値であるディジタルデータ列D11を初期値として用い、不確定論理回路20から入力された不定値のディジタルデータ列D10をデータとして用いて、ディジタル乱数D1を生成する。
図3は、図2に示した不確定論理回路20の第1の例を示す図である。図3の(A)には、不確定論理回路20の構成を示しており、図3の(B)には、図3の(A)に示した構成に対応する入力波形及び出力波形を示している。図3の(A)に示すように、不確定論理回路20は、2個のNAND回路を用いたRSフリップフロップとして構成されている。2個のNAND回路には、クロック信号Cが共通に入力されており、一方のNAND回路から出力Qが得られる。図3の(B)に示すように、クロック信号Cがローレベルの時には、出力Qはハイレベルの固定値となる。一方、クロック信号Cがハイレベルの時には、出力Qはハイレベル又はローレベルの不定値となる。その結果、不定値のディジタルデータ列D10が得られる。
図4は、図2に示した不確定論理回路20の第2の例を示す図である。図4の(A)には、不確定論理回路20の構成を示しており、図4の(B)には、図4の(A)に示した構成に対応する入力波形及び出力波形を示している。図4の(A)に示すように、不確定論理回路20は、2個のNOR回路を用いたRSフリップフロップとして構成されている。2個のNOR回路には、クロック信号Cが共通に入力されており、一方のNOR回路から出力Qが得られる。図4の(B)に示すように、クロック信号Cがハイレベルの時には、出力Qはローレベルの固定値となる。一方、クロック信号Cがローレベルの時には、出力Qはハイレベル又はローレベルの不定値となる。その結果、不定値のディジタルデータ列D10が得られる。
図5は、図1に示した乱数生成回路4の第2の構成例を示すブロック図である。図5に示した乱数生成回路4においては、乱数生成部21は、不確定論理回路20から入力された不定値のディジタルデータ列D10をデータ及び初期値の双方として用いて、ディジタル乱数D1を生成する。
図6は、図1に示した乱数生成回路4の第3の構成例を示すブロック図である。乱数生成回路4は、不確定論理回路20,22と乱数生成部21とを有している。不確定論理回路20,22及び乱数生成部21には、共通のクロック信号Cが入力される。不確定論理回路22は、クロック信号Cに基づいて、不定値のディジタルデータ列D12を生成して出力する。不確定論理回路22の構成は、図3,4に示した構成と同様である。図6に示した乱数生成回路4においては、乱数生成部21は、不確定論理回路20から入力された不定値のディジタルデータ列D10をデータとして用い、不確定論理回路22から入力された不定値のディジタルデータ列D12を初期値として用いて、ディジタル乱数D1を生成する。
図7は、図1に示した乱数生成回路4の第4の構成例を示すブロック図である。乱数生成回路4は、不確定論理回路22と乱数生成部21とを有している。図7に示した乱数生成回路4においては、乱数生成部21は、固定値であるディジタルデータ列D13をデータとして用い、不確定論理回路22から入力された不定値のディジタルデータ列D12を初期値として用いて、ディジタル乱数D1を生成する。
図8は、図1に示した乱数生成回路4の第5の構成例を示すブロック図である。図8に示した乱数生成回路4においては、乱数生成部21は、不確定論理回路22から入力された不定値のディジタルデータ列D12をデータ及び初期値の双方として用いて、ディジタル乱数D1を生成する。
図9は、図2,5,6に示した不確定論理回路20の第1の構成例を示す図である。不確定論理回路20は、ディジタルデータ列D10のビット数に応じて、複数の不確定論理回路201,202,203,204,・・・を有している。クロック信号Cに対して複数の不確定論理回路201,202,203,204,・・・がパラレルに接続されることにより、ディジタルデータ列D10の各ビットD101,D102,D103,D104,・・・がパラレルに出力される。
図10は、図2,5,6に示した不確定論理回路20の第2の構成例を示す図である。不確定論理回路20は、ディジタルデータ列D10のビット数に関わらず、1個のみ設けられている。不確定論理回路20からは、ディジタルデータ列D10の各ビットD101,D102,D103,D104,・・・がシリアルに出力される。
図11は、図6〜8に示した不確定論理回路22の第1の構成例を示す図である。不確定論理回路22は、ディジタルデータ列D12のビット数に応じて、複数の不確定論理回路221,222,223,224,・・・を有している。クロック信号Cに対して複数の不確定論理回路221,222,223,224,・・・がパラレルに接続されることにより、ディジタルデータ列D12の各ビットD121,D122,D123,D124,・・・がパラレルに出力される。
図12は、図6〜8に示した不確定論理回路22の第2の構成例を示す図である。不確定論理回路22は、ディジタルデータ列D12のビット数に関わらず、1個のみ設けられている。不確定論理回路22からは、ディジタルデータ列D12の各ビットD121,D122,D123,D124,・・・がシリアルに出力される。
図13は、図1に示した乱数生成回路14の構成例を示すブロック図である。乱数生成回路14は、不確定論理回路30,31と乱数生成部31とを有している。不確定論理回路30,32及び乱数生成部31には、共通のクロック信号Cが入力される。不確定論理回路30は、クロック信号Cに基づいて、不定値のディジタルデータ列D30を生成して出力する。不確定論理回路32は、クロック信号Cに基づいて、不定値のディジタルデータ列D32を生成して出力する。不確定論理回路30,32の構成は、図3,4に示した構成と同様である。図13に示した乱数生成回路14においては、乱数生成部31は、不確定論理回路30から入力された不定値のディジタルデータ列D30をデータとして用い、不確定論理回路32から入力された不定値のディジタルデータ列D32を初期値として用いて、任意の乱数生成アルゴリズムに基づいてディジタル乱数D4を生成する。なお、乱数生成回路14は、図2,5,7,8に示したような構成であっても良い。また、不確定論理回路30,32に関しても、図9〜12に示したような構成を採用することができる。
ホストコンピュータ2の乱数生成回路4と、メモリ装置3の乱数生成回路14とは、互いに異なる乱数生成アルゴリズムを使用しても良い。例えば、ホストコンピュータ2においては多数の論理ゲートを使用可能であるため、乱数生成回路4の乱数生成部21には、回路規模が比較的大きくなるハッシュ関数又はブロック暗号のアルゴリズムを用いる。一方、メモリ装置3においては製造コストを重視することにより、乱数生成回路14の乱数生成部31には、回路規模が比較的小さいストリーム暗号のアルゴリズムを用いる。
図14は、不確定論理回路の変形例を示す回路図である。図14に示したような構成によっても、RSフリップフロップの禁止入力を活用することによって、不定値のディジタルデータ列を得ることができる。
なお、本発明に係る乱数生成回路は、ホストコンピュータとメモリ装置との相互認証に使用する乱数を生成するための乱数生成回路としてのみならず、例えば、平文を暗号化する際に使用する乱数を生成するための、一般的な乱数生成回路として使用することもできる。
<まとめ>
図2,5,6に示した乱数生成回路4によれば、不確定論理回路20は、不定値のディジタルデータ列D10を出力する。そして、乱数生成部21は、不定値のディジタルデータ列D10をデータとして用いて、ディジタル乱数D1を生成する。従って、不確定論理回路の出力をそのままディジタル乱数とする場合や、乱数生成部が固定値のディジタルデータをデータとして用いてディジタル乱数を生成する場合と比較すると、生成されるディジタル乱数D1の真性度を高めることができる。
図5に示した乱数生成回路4によれば、乱数生成部21は、不定値のディジタルデータ列D10を初期値及びデータとして用いて、ディジタル乱数D1を生成する。従って、乱数生成部21が固定値のディジタルデータ列D11を初期値として用いてディジタル乱数D1を生成する場合(図2)と比較すると、生成されるディジタル乱数D1の真性度を高めることができる。
不確定論理回路20は、それを構成する素子の特性によって、出力値が「0」又は「1」に偏る場合がある。そのような場合であっても、図9に示した構成のように、複数の不確定論理回路201,202,203,204,・・・をパラレルに接続することにより、ディジタル乱数D1におけるデータの偏りを解消することができる。つまり、不確定論理回路201,202,203,204,・・・を構成する素子の特性は各不確定論理回路毎に異なるため、ディジタルデータ列D10の各ビットD101,D102,D103,D104,・・・には、「0」に偏るものと「1」に偏るものとが混在することとなる。その結果、出力値の偏りが解消されることにより、ディジタルデータ列D10の真性度、ひいてはディジタル乱数D1の真性度を、さらに高めることができる。
一方、図10に示した構成によれば、不確定論理回路20がディジタルデータ列D10の各ビットD101,D102,D103,D104,・・・をシリアルに出力することにより、不確定論理回路20は一つのみで足りる。従って、複数の不確定論理回路201,202,203,204,・・・をパラレルに接続する場合(図9)と比較すると、回路規模の削減と消費電力の低減とを図ることができる。
図6に示した乱数生成回路4によれば、不確定論理回路22は、不定値のディジタルデータ列D12を出力する。そして、乱数生成部21は、不定値のディジタルデータD10をデータとして用いて、かつ、不定値のディジタルデータ列D12を初期値として用いて、ディジタル乱数D1を生成する。従って、乱数生成部21が固定値のディジタルデータ列D11を初期値として用いてディジタル乱数D1を生成する場合(図2)と比較すると、生成されるディジタル乱数D1の真性度を高めることができる。
不確定論理回路22は、それを構成する素子の特性によって、出力値が「0」又は「1」に偏る場合がある。そのような場合であっても、図11に示した構成のように、複数の不確定論理回路221,222,223,224,・・・をパラレルに接続することにより、ディジタル乱数D1におけるデータの偏りを解消することができる。つまり、不確定論理回路221,222,223,224,・・・を構成する素子の特性は各不確定論理回路毎に異なるため、ディジタルデータ列D12の各ビットD121,D122,D123,D124,・・・には、「0」に偏るものと「1」に偏るものとが混在することとなる。その結果、出力値の偏りが解消されることにより、ディジタルデータ列D12の真性度、ひいてはディジタル乱数D1の真性度を、さらに高めることができる。
一方、図12に示した構成によれば、不確定論理回路22がディジタルデータ列D12の各ビットD121,D122,D123,D124,・・・をシリアルに出力することにより、不確定論理回路22は一つのみで足りる。従って、複数の不確定論理回路221,222,223,224,・・・をパラレルに接続する場合(図11)と比較すると、回路規模の削減と消費電力の低減とを図ることができる。
図6〜8に示した不確定論理回路22には、図3に示した、NAND回路を用いた構成を採用するのが望ましい。図3に示した構成によれば、不確定論理回路22からは、ディジタルデータ列D12として、ハイレベルの固定出力値と、ハイレベル又はローレベルの不定出力値とが交互に出力される。そのため、ディジタルデータ列D12の各ビットが全てローレベルになるという事態が発生する可能性はない。従って、乱数生成部21において、初期値の全ビットがローレベルとなることによりデータ(D10,D13,又はD12)がそのままディジタル乱数D1として出力されてしまうという事態が発生することを、予め回避することができる。
図6〜8に示した乱数生成回路4によれば、不確定論理回路22は、不定値のディジタルデータ列D12を出力する。そして、乱数生成部21は、不定値のディジタルデータ列D12を初期値として用いて、ディジタル乱数D1を生成する。従って、不確定論理回路の出力をそのままディジタル乱数とする場合や、乱数生成部が固定値のディジタルデータを初期値として用いてディジタル乱数を生成する場合と比較すると、生成されるディジタル乱数D1の真性度を高めることができる。
図8に示した乱数生成回路4によれば、乱数生成部21は、不定値のディジタルデータ列D12を初期値及びデータとして用いて、ディジタル乱数D1を生成する。従って、乱数生成部21が固定値のディジタルデータ列D13をデータとして用いてディジタル乱数D1を生成する場合(図7)と比較すると、生成されるディジタル乱数D1の真性度を高めることができる。
本実施の形態に係るコンピュータシステム1によれば、ホストコンピュータ2は、真性度の高いディジタル乱数D1を用いて、メモリ装置3の認証を行うことができる。また、メモリ装置3は、真性度の高いディジタル乱数D4を用いて、ホストコンピュータ2の認証を行うことができる。その結果、ホストコンピュータ2及びメモリ装置3において、精度の高い相互認証を行うことができる。
また、ホストコンピュータ2の乱数生成部21が使用する乱数生成アルゴリズムと、メモリ装置3の乱数生成部31が使用する乱数生成アルゴリズムとを、互いに異ならせた場合には、ホストコンピュータ2とメモリ装置3とで同一の乱数生成アルゴリズムを使用する場合と比較すると、セキュリティ性を高めることができる。しかも、ホストコンピュータ2においては、ホストコンピュータ2に適した乱数生成アルゴリズムを採用することが可能となり、メモリ装置3においては、メモリ装置3に適した乱数生成アルゴリズムを採用することが可能となる。
本発明の実施の形態に係るコンピュータシステムの構成を概略的に示すブロック図である。 図1に示した乱数生成回路の第1の構成例を示すブロック図である。 図2に示した不確定論理回路の第1の例を示す図である。 図2に示した不確定論理回路の第2の例を示す図である。 図1に示した乱数生成回路の第2の構成例を示すブロック図である。 図1に示した乱数生成回路の第3の構成例を示すブロック図である。 図1に示した乱数生成回路の第4の構成例を示すブロック図である。 図1に示した乱数生成回路の第5の構成例を示すブロック図である。 図2,5,6に示した不確定論理回路の第1の構成例を示す図である。 図2,5,6に示した不確定論理回路の第2の構成例を示す図である。 図6〜8に示した不確定論理回路の第1の構成例を示す図である。 図6〜8に示した不確定論理回路の第2の構成例を示す図である。 図1に示した乱数生成回路の構成例を示すブロック図である。 不確定論理回路の変形例を示す回路図である。
符号の説明
1 コンピュータシステム
2 ホストコンピュータ
3 メモリ装置
4,14 乱数生成回路
20,22,30,32,201〜204,221〜224 不確定論理回路
21,31 乱数生成部

Claims (14)

  1. 不定値の第1のディジタルデータ列を出力する、第1の不確定論理回路と、
    前記第1のディジタルデータ列をデータとして用いて、所定の乱数生成アルゴリズムに基づいてディジタル乱数を生成する、乱数生成部と
    を備える、乱数生成回路。
  2. 前記乱数生成部は、前記第1のディジタルデータ列をさらに初期値として用いて、前記ディジタル乱数を生成する、請求項1に記載の乱数生成回路。
  3. 前記第1の不確定論理回路は複数であり、
    複数の前記第1の不確定論理回路がパラレルに接続されることにより、前記第1のディジタルデータ列の各ビットがパラレルに出力される、請求項1又は2に記載の乱数生成回路。
  4. 一つの前記第1の不確定論理回路から、前記第1のディジタルデータ列の各ビットがシリアルに出力される、請求項1又は2に記載の乱数生成回路。
  5. 不定値の第2のディジタルデータ列を出力する、第2の不確定論理回路をさらに備え、
    前記乱数生成部は、前記第2のディジタルデータ列を初期値として用いて、前記ディジタル乱数を生成する、請求項1,3,4のいずれか一つに記載の乱数生成回路。
  6. 前記第2の不確定論理回路は複数であり、
    複数の前記第2の不確定論理回路がパラレルに接続されることにより、前記第2のディジタルデータ列の各ビットがパラレルに出力される、請求項5に記載の乱数生成回路。
  7. 一つの前記第2の不確定論理回路から、前記第2のディジタルデータ列の各ビットがシリアルに出力される、請求項5に記載の乱数生成回路。
  8. 前記第2の不確定論理回路は、前記第2のディジタルデータ列として、ハイレベルの固定出力値と、ハイレベル又はローレベルの不定出力値とを交互に出力する、請求項5〜7のいずれか一つに記載の乱数生成回路。
  9. 不定値のディジタルデータ列を出力する、不確定論理回路と、
    前記ディジタルデータ列を初期値として用いて、所定の乱数生成アルゴリズムに基づいてディジタル乱数を生成する、乱数生成部と
    を備える、乱数生成回路。
  10. 前記乱数生成部は、前記ディジタルデータ列をさらにデータとして用いて、前記ディジタル乱数を生成する、請求項9に記載の乱数生成回路。
  11. 前記不確定論理回路は複数であり、
    複数の前記不確定論理回路がパラレルに接続されることにより、前記ディジタルデータ列の各ビットがパラレルに出力される、請求項9又は10に記載の乱数生成回路。
  12. 一つの前記不確定論理回路から、前記ディジタルデータ列の各ビットがシリアルに出力される、請求項9又は10に記載の乱数生成回路。
  13. 前記不確定論理回路は、前記ディジタルデータ列として、ハイレベルの固定出力値と、ハイレベル又はローレベルの不定出力値とを交互に出力する、請求項9〜12のいずれか一つに記載の乱数生成回路。
  14. ホストコンピュータと、
    前記ホストコンピュータに接続可能なメモリ装置と
    を備え、
    前記ホストコンピュータは、
    不定値の第1のディジタルデータ列を出力する、第1の不確定論理回路と、
    前記第1のディジタルデータ列を、データ及び初期値の少なくとも一方として用いて、第1の乱数生成アルゴリズムに基づいて第1のディジタル乱数を生成する、第1の乱数生成部と
    を有し、
    前記メモリ装置は、
    不定値の第2のディジタルデータ列を出力する、第2の不確定論理回路と、
    前記第2のディジタルデータ列を、データ及び初期値の少なくとも一方として用いて、第2の乱数生成アルゴリズムに基づいて第2のディジタル乱数を生成する、第2の乱数生成部と
    を有し、
    前記第1の乱数生成アルゴリズムと前記第2の乱数生成アルゴリズムとは互いに異なる、コンピュータシステム。
JP2008203173A 2008-08-06 2008-08-06 乱数生成回路及びコンピュータシステム Pending JP2010039838A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008203173A JP2010039838A (ja) 2008-08-06 2008-08-06 乱数生成回路及びコンピュータシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008203173A JP2010039838A (ja) 2008-08-06 2008-08-06 乱数生成回路及びコンピュータシステム

Publications (1)

Publication Number Publication Date
JP2010039838A true JP2010039838A (ja) 2010-02-18

Family

ID=42012303

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008203173A Pending JP2010039838A (ja) 2008-08-06 2008-08-06 乱数生成回路及びコンピュータシステム

Country Status (1)

Country Link
JP (1) JP2010039838A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011117929A1 (ja) * 2010-03-26 2011-09-29 富士通株式会社 乱数生成器、暗号化装置、及び認証装置
JP2014222420A (ja) * 2013-05-13 2014-11-27 株式会社メガチップス 半導体記憶装置及びデータ処理システム
JP2018092174A (ja) * 2017-12-22 2018-06-14 株式会社メガチップス 乱数生成装置、記憶装置及び情報処理システム
JP2023530779A (ja) * 2020-07-17 2023-07-19 フィステク テクノロジーズ トゥルー ランダム アーゲー 真正乱数生成器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408073B1 (en) * 1998-10-27 2002-06-18 Winbond Electronics Corp. Scramble circuit to protect data in a read only memory
JP2003029929A (ja) * 2001-07-12 2003-01-31 Koden Electronics Co Ltd データ入力装置およびデータ表示装置
JP2003173254A (ja) * 2001-09-26 2003-06-20 Toshiba Corp 乱数生成回路
JP2004234153A (ja) * 2003-01-29 2004-08-19 Toshiba Corp シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408073B1 (en) * 1998-10-27 2002-06-18 Winbond Electronics Corp. Scramble circuit to protect data in a read only memory
JP2003029929A (ja) * 2001-07-12 2003-01-31 Koden Electronics Co Ltd データ入力装置およびデータ表示装置
JP2003173254A (ja) * 2001-09-26 2003-06-20 Toshiba Corp 乱数生成回路
JP2004234153A (ja) * 2003-01-29 2004-08-19 Toshiba Corp シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011117929A1 (ja) * 2010-03-26 2011-09-29 富士通株式会社 乱数生成器、暗号化装置、及び認証装置
JP5273294B2 (ja) * 2010-03-26 2013-08-28 富士通株式会社 乱数生成器、暗号化装置、及び認証装置
US9015218B2 (en) 2010-03-26 2015-04-21 Fujitsu Limited Random number generator, encryption device, and authentication device
JP2014222420A (ja) * 2013-05-13 2014-11-27 株式会社メガチップス 半導体記憶装置及びデータ処理システム
JP2018092174A (ja) * 2017-12-22 2018-06-14 株式会社メガチップス 乱数生成装置、記憶装置及び情報処理システム
JP2023530779A (ja) * 2020-07-17 2023-07-19 フィステク テクノロジーズ トゥルー ランダム アーゲー 真正乱数生成器
JP7377393B2 (ja) 2020-07-17 2023-11-09 フィステク テクノロジーズ トゥルー ランダム アーゲー 真正乱数生成器

Similar Documents

Publication Publication Date Title
US20200244434A1 (en) Differential power analysis resistant encryption and decryption functions
US10142103B2 (en) Hardware assisted fast pseudorandom number generation
EP3577642B1 (en) Methods and devices for protecting data
US20070174374A1 (en) Pseudorandom number generator and pseudorandom number generation program
Acosta et al. Embedded electronic circuits for cryptography, hardware security and true random number generation: an overview
JP6386198B1 (ja) 暗号化装置及び復号装置
US10326589B2 (en) Message authenticator generating apparatus, message authenticator generating method, and computer readable recording medium
JP6714735B2 (ja) ランダムコード発生装置
US20120314857A1 (en) Block encryption device, block decryption device, block encryption method, block decryption method and program
CN111066077B (zh) 加密装置、加密方法、解密装置以及解密方法
JP6533553B2 (ja) 暗号化/復号装置及びその電力解析保護方法
US10148434B2 (en) Random number generating device, cipher processing device, storage device, and information processing system
JP2017187724A (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
US20170365191A1 (en) Iterative encryption and random generation and serialization of cryptographic functions
JP6287785B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
JP2003318883A (ja) 鍵生成装置、暗号化復号化装置およびデータ受信装置
JP2010039838A (ja) 乱数生成回路及びコンピュータシステム
CN111373464B (zh) 加密装置、加密方法、解密装置以及解密方法
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
Kumar et al. BEAN: a lightweight stream cipher
Zalukhu et al. Enhancing Text Messages with a Combination of Vigenère Cipher and One Time Pad Using Random Key LFSR
JP2015050708A (ja) 動的暗号化鍵生成システム
Huang et al. A true random-number encryption method employing block cipher and PRNG
JP2005204128A (ja) 個別鍵生成装置及びプログラム
Stanciu et al. Pseudo-random generator using PUF circuits and Salsa stream cipher

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20110621

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130208