(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2020-181438(P2020-181438A)
(43)【公開日】2020年11月5日
(54)【発明の名称】情報処理装置、プログラム、及び乱数生成方法
(51)【国際特許分類】
G06F 7/58 20060101AFI20201009BHJP
G09C 1/00 20060101ALI20201009BHJP
【FI】
G06F7/58 680
G09C1/00 650B
【審査請求】有
【請求項の数】25
【出願形態】OL
【全頁数】44
(21)【出願番号】特願2019-85022(P2019-85022)
(22)【出願日】2019年4月26日
(71)【出願人】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100067828
【弁理士】
【氏名又は名称】小谷 悦司
(74)【代理人】
【識別番号】100115381
【弁理士】
【氏名又は名称】小谷 昌崇
(74)【代理人】
【識別番号】100136353
【弁理士】
【氏名又は名称】高尾 建吾
(72)【発明者】
【氏名】菅原 崇彦
(72)【発明者】
【氏名】今川 雅之
(72)【発明者】
【氏名】水上 裕貴
(72)【発明者】
【氏名】楊 攀
(57)【要約】
【課題】再現不可能性を有する乱数を簡易に生成することが可能な情報処理装置を得る。
【解決手段】メモリ装置3は、データが記憶されたメモリコア44と、メモリコア44へのアクセスを制御するアクセス制御部51と、アクセス制御部51によるメモリコア44へのアクセス動作に伴う不安定要素に基づいて乱数を生成する乱数生成部52と、を備える。
【選択図】
図3
【特許請求の範囲】
【請求項1】
データが記憶された記憶部と、
前記記憶部へのアクセスを制御する制御部と、
前記制御部による前記記憶部へのアクセス動作に伴う不安定要素に基づいて乱数を生成する乱数生成部と、
を備える、情報処理装置。
【請求項2】
前記乱数生成部は、外部装置からのデータ読み出しコマンドの受信が完了してから、前記情報処理装置から前記外部装置へのデータ送信が開始されるまでの経過時間に基づいて、乱数を生成する、請求項1に記載の情報処理装置。
【請求項3】
クロックを生成するクロック生成部をさらに備え、
前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第1のカウンタを有し、
前記乱数生成部は、前記外部装置からのデータ読み出しコマンドの受信が完了してから、前記情報処理装置から前記外部装置へのデータ送信が開始されるまでの、前記第1のカウンタによるクロックのカウンタ値に基づいて、乱数を生成する、請求項2に記載の情報処理装置。
【請求項4】
前記乱数生成部は、外部装置からのデータ書き込みコマンドの受信が完了してから、前記記憶部へのデータ書き込みが完了するまでの経過時間に基づいて、乱数を生成する、請求項1〜3のいずれか一つに記載の情報処理装置。
【請求項5】
クロックを生成するクロック生成部をさらに備え、
前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第2のカウンタを有し、
前記乱数生成部は、前記外部装置からのデータ書き込みコマンドの受信が完了してから、前記記憶部へのデータ書き込みが完了するまでの、前記第2のカウンタによるクロックのカウンタ値に基づいて、乱数を生成する、請求項4に記載の情報処理装置。
【請求項6】
前記乱数生成部は、外部装置からのデータ消去コマンドの受信が完了してから、前記記憶部に記憶されているデータの消去が完了するまでの経過時間に基づいて、乱数を生成する、請求項1〜5のいずれか一つに記載の情報処理装置。
【請求項7】
クロックを生成するクロック生成部をさらに備え、
前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第3のカウンタを有し、
前記乱数生成部は、前記外部装置からのデータ消去コマンドの受信が完了してから、前記記憶部に記憶されているデータの消去が完了するまでの、前記第3のカウンタによるクロックのカウンタ値に基づいて、乱数を生成する、請求項6に記載の情報処理装置。
【請求項8】
前記乱数生成部は、前記記憶部からのデータ読み出しが開始されてから、前記記憶部からのデータ読み出しが完了するまでの経過時間に基づいて、乱数を生成する、請求項1〜7のいずれか一つに記載の情報処理装置。
【請求項9】
クロックを生成するクロック生成部をさらに備え、
前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第4のカウンタを有し、
前記乱数生成部は、前記記憶部からのデータ読み出しが開始されてから、前記記憶部からのデータ読み出しが完了するまでの、前記第4のカウンタによるクロックのカウンタ値に基づいて、乱数を生成する、請求項8に記載の情報処理装置。
【請求項10】
前記記憶部から読み出したデータの誤りを訂正する誤り訂正部をさらに備え、
前記乱数生成部は、前記誤り訂正部が誤り訂正処理を開始してから、前記誤り訂正部が誤り訂正処理を完了するまでの経過時間に基づいて、乱数を生成する、請求項1〜9のいずれか一つに記載の情報処理装置。
【請求項11】
クロックを生成するクロック生成部をさらに備え、
前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第5のカウンタを有し、
前記乱数生成部は、前記誤り訂正部が誤り訂正処理を開始してから、前記誤り訂正部が誤り訂正処理を完了するまでの、前記第5のカウンタによるクロックのカウンタ値に基づいて、乱数を生成する、請求項10に記載の情報処理装置。
【請求項12】
外部装置が接続される情報処理装置であって、
前記外部装置から前記情報処理装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成する乱数生成部
を備える、情報処理装置。
【請求項13】
前記乱数生成部は、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの特定のコマンドの受信を開始するまでの経過時間に基づいて、乱数を生成する、請求項12に記載の情報処理装置。
【請求項14】
クロックを生成するクロック生成部をさらに備え、
前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第6のカウンタを有し、
前記乱数生成部は、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの特定のコマンドの受信を開始するまでの、前記第6のカウンタによるクロックのカウンタ値に基づいて、乱数を生成する、請求項13に記載の情報処理装置。
【請求項15】
外部装置が接続される情報処理装置であって、
前記情報処理装置から前記外部装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成する乱数生成部
を備える、情報処理装置。
【請求項16】
前記乱数生成部は、前記情報処理装置の起動が完了してから、前記情報処理装置から前記外部装置へのアクセス動作が完了した後の所定のタイミングまでの経過時間に基づいて、乱数を生成する、請求項15に記載の情報処理装置。
【請求項17】
クロックを生成するクロック生成部をさらに備え、
前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第1のカウンタを有し、
前記乱数生成部は、前記情報処理装置の起動が完了してから、前記情報処理装置から前記外部装置へのアクセス動作が完了した後の所定のタイミングまでの、前記第1のカウンタによるクロックのカウンタ値に基づいて、乱数を生成する、請求項16に記載の情報処理装置。
【請求項18】
外部装置が接続される情報処理装置であって、
前記外部装置の内部動作に伴う不安定要素に基づいて乱数を生成する乱数生成部
を備える、情報処理装置。
【請求項19】
前記乱数生成部は、前記情報処理装置から前記外部装置へのデータ要求コマンドの送信が完了してから、前記情報処理装置が前記外部装置からのデータ受信を開始するまでの経過時間に基づいて、乱数を生成する、請求項18に記載の情報処理装置。
【請求項20】
クロックを生成するクロック生成部をさらに備え、
前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第2のカウンタを有し、
前記乱数生成部は、前記情報処理装置から前記外部装置へのデータ要求コマンドの送信が完了してから、前記情報処理装置が前記外部装置からのデータ受信を開始するまでの、前記第2のカウンタによるクロックのカウンタ値に基づいて、乱数を生成する、請求項19に記載の情報処理装置。
【請求項21】
前記クロック生成部は、前記クロックとして周波数拡散クロックを生成する、請求項3,5,7,9,11,14,17,20のいずれか一つに記載の情報処理装置。
【請求項22】
データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備える情報処理装置に搭載されるコンピュータを、前記制御部による前記記憶部へのアクセス動作に伴う不安定要素に基づいて乱数を生成する乱数生成手段として機能させるための、プログラム。
【請求項23】
外部装置が接続される情報処理装置に搭載されるコンピュータを、前記外部装置から前記情報処理装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成する乱数生成手段として機能させるための、プログラム。
【請求項24】
外部装置が接続される情報処理装置に搭載されるコンピュータを、前記情報処理装置から前記外部装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成する乱数生成手段として機能させるための、プログラム。
【請求項25】
外部装置が接続される情報処理装置に搭載されるコンピュータを、前記外部装置の内部動作に伴う不安定要素に基づいて乱数を生成する乱数生成手段として機能させるための、プログラム。
【請求項26】
データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備える情報処理装置において、前記制御部による前記記憶部へのアクセス動作に伴う不安定要素に基づいて乱数を生成する、乱数生成方法。
【請求項27】
外部装置が接続される情報処理装置において、前記外部装置から前記情報処理装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成する、乱数生成方法。
【請求項28】
外部装置が接続される情報処理装置において、前記情報処理装置から前記外部装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成する、乱数生成方法。
【請求項29】
外部装置が接続される情報処理装置において、前記外部装置の内部動作に伴う不安定要素に基づいて乱数を生成する、乱数生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、プログラム、及び乱数生成方法に関する。
【背景技術】
【0002】
乱数は、暗号アルゴリズムにおける鍵の生成等に用いられる。真性乱数に近い乱数を得るための手法の一つとして、抵抗又はダイオードにおいて発生する雑音を利用して乱数を生成する方式が実用化されている。しかしながら、この方式では、低レベルの雑音をアナログ増幅回路によって増幅する必要があるため、アナログ増幅回路の回路規模が大きくなり、結果として乱数生成回路の回路規模が全体として増大する。また、アナログ回路を用いて乱数生成回路を構成する場合には、回路設計の難易度が高くなる。従って、回路規模の増大及び回路設計の複雑化を回避するためには、計算によって生成可能なディジタル乱数の使用が望まれる。
【0003】
ディジタル乱数としては、擬似乱数が広く用いられている。擬似乱数は、乱数生成回路において、シード(初期値及びデータ)を用いた所定のアルゴリズムによって生成される。
【0004】
なお、下記特許文献1には、不確定論理回路と、不確定論理回路から出力されるディジタル値における「0」及び「1」の出現頻度を均等にするための一様化回路とを備える乱数生成回路が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第3604674号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
擬似乱数は計算によって生成されるため、初期値及びアルゴリズムが同一であれば、生成される擬似乱数の値も同一となる。従って、擬似乱数をセキュリティ用途で使用する場合には、攻撃者に初期値及びアルゴリズムを見破られることにより、セキュリティを破られる可能性がある。そのため、相互認証等の認証コードとして擬似乱数を使用することは、セキュリティの堅牢性の低下を招く。
【0007】
本発明はかかる事情に鑑みて成されたものであり、再現不可能性を有する乱数を簡易に生成することが可能な、情報処理装置、プログラム、及び乱数生成方法を得ることを目的とするものである。
【課題を解決するための手段】
【0008】
本発明の第1の態様に係る情報処理装置は、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部と、前記制御部による前記記憶部へのアクセス動作に伴う不安定要素に基づいて乱数を生成する乱数生成部と、を備えることを特徴とするものである。
【0009】
第1の態様に係る情報処理装置によれば、制御部による記憶部へのアクセス動作に伴う不安定要素に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0010】
本発明の第2の態様に係る情報処理装置は、第1の態様に係る情報処理装置において特に、前記乱数生成部は、外部装置からのデータ読み出しコマンドの受信が完了してから、前記情報処理装置から前記外部装置へのデータ送信が開始されるまでの経過時間に基づいて、乱数を生成することを特徴とするものである。
【0011】
第2の態様に係る情報処理装置によれば、乱数生成部は、外部装置からのデータ読み出しコマンドの受信が完了してから、情報処理装置から外部装置へのデータ送信が開始されるまでの経過時間に基づいて、乱数を生成する。当該経過時間は様々に変動するため、当該経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0012】
本発明の第3の態様に係る情報処理装置は、第2の態様に係る情報処理装置において特に、クロックを生成するクロック生成部をさらに備え、前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第1のカウンタを有し、前記乱数生成部は、前記外部装置からのデータ読み出しコマンドの受信が完了してから、前記情報処理装置から前記外部装置へのデータ送信が開始されるまでの、前記第1のカウンタによるクロックのカウンタ値に基づいて、乱数を生成することを特徴とするものである。
【0013】
第3の態様に係る情報処理装置によれば、乱数生成部は、外部装置からのデータ読み出しコマンドの受信が完了してから、情報処理装置から外部装置へのデータ送信が開始されるまでの、第1のカウンタによるクロックのカウンタ値に基づいて、乱数を生成する。クロック周期のばらつきに起因して当該カウンタ値は変動するため、当該カウンタ値に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0014】
本発明の第4の態様に係る情報処理装置は、第1〜第3のいずれか一つの態様に係る情報処理装置において特に、前記乱数生成部は、外部装置からのデータ書き込みコマンドの受信が完了してから、前記記憶部へのデータ書き込みが完了するまでの経過時間に基づいて、乱数を生成することを特徴とするものである。
【0015】
第4の態様に係る情報処理装置によれば、乱数生成部は、外部装置からのデータ書き込みコマンドの受信が完了してから、記憶部へのデータ書き込みが完了するまでの経過時間に基づいて、乱数を生成する。当該経過時間は様々に変動するため、当該経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0016】
本発明の第5の態様に係る情報処理装置は、第4の態様に係る情報処理装置において特に、クロックを生成するクロック生成部をさらに備え、前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第2のカウンタを有し、前記乱数生成部は、前記外部装置からのデータ書き込みコマンドの受信が完了してから、前記記憶部へのデータ書き込みが完了するまでの、前記第2のカウンタによるクロックのカウンタ値に基づいて、乱数を生成することを特徴とするものである。
【0017】
第5の態様に係る情報処理装置によれば、乱数生成部は、外部装置からのデータ書き込みコマンドの受信が完了してから、記憶部へのデータ書き込みが完了するまでの、第2のカウンタによるクロックのカウンタ値に基づいて、乱数を生成する。クロック周期のばらつきに起因して当該カウンタ値は変動するため、当該カウンタ値に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0018】
本発明の第6の態様に係る情報処理装置は、第1〜第5のいずれか一つの態様に係る情報処理装置において特に、前記乱数生成部は、外部装置からのデータ消去コマンドの受信が完了してから、前記記憶部に記憶されているデータの消去が完了するまでの経過時間に基づいて、乱数を生成することを特徴とするものである。
【0019】
第6の態様に係る情報処理装置によれば、乱数生成部は、外部装置からのデータ消去コマンドの受信が完了してから、記憶部に記憶されているデータの消去が完了するまでの経過時間に基づいて、乱数を生成する。当該経過時間は様々に変動するため、当該経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0020】
本発明の第7の態様に係る情報処理装置は、第6の態様に係る情報処理装置において特に、クロックを生成するクロック生成部をさらに備え、前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第3のカウンタを有し、前記乱数生成部は、前記外部装置からのデータ消去コマンドの受信が完了してから、前記記憶部に記憶されているデータの消去が完了するまでの、前記第3のカウンタによるクロックのカウンタ値に基づいて、乱数を生成することを特徴とするものである。
【0021】
第7の態様に係る情報処理装置によれば、乱数生成部は、外部装置からのデータ消去コマンドの受信が完了してから、記憶部に記憶されているデータの消去が完了するまでの、第3のカウンタによるクロックのカウンタ値に基づいて、乱数を生成する。クロック周期のばらつきに起因して当該カウンタ値は変動するため、当該カウンタ値に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0022】
本発明の第8の態様に係る情報処理装置は、第1〜第7のいずれか一つの態様に係る情報処理装置において特に、前記乱数生成部は、前記記憶部からのデータ読み出しが開始されてから、前記記憶部からのデータ読み出しが完了するまでの経過時間に基づいて、乱数を生成することを特徴とするものである。
【0023】
第8の態様に係る情報処理装置によれば、乱数生成部は、記憶部からのデータ読み出しが開始されてから、記憶部からのデータ読み出しが完了するまでの経過時間に基づいて、乱数を生成する。当該経過時間は様々に変動するため、当該経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0024】
本発明の第9の態様に係る情報処理装置は、第8の態様に係る情報処理装置において特に、クロックを生成するクロック生成部をさらに備え、前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第4のカウンタを有し、前記乱数生成部は、前記記憶部からのデータ読み出しが開始されてから、前記記憶部からのデータ読み出しが完了するまでの、前記第4のカウンタによるクロックのカウンタ値に基づいて、乱数を生成することを特徴とするものである。
【0025】
第9の態様に係る情報処理装置によれば、乱数生成部は、記憶部からのデータ読み出しが開始されてから、記憶部からのデータ読み出しが完了するまでの、第4のカウンタによるクロックのカウンタ値に基づいて、乱数を生成する。クロック周期のばらつきに起因して当該カウンタ値は変動するため、当該カウンタ値に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0026】
本発明の第10の態様に係る情報処理装置は、第1〜第9のいずれか一つの態様に係る情報処理装置において特に、前記記憶部から読み出したデータの誤りを訂正する誤り訂正部をさらに備え、前記乱数生成部は、前記誤り訂正部が誤り訂正処理を開始してから、前記誤り訂正部が誤り訂正処理を完了するまでの経過時間に基づいて、乱数を生成することを特徴とするものである。
【0027】
第10の態様に係る情報処理装置によれば、乱数生成部は、誤り訂正部が誤り訂正処理を開始してから、誤り訂正部が誤り訂正処理を完了するまでの経過時間に基づいて、乱数を生成する。当該経過時間は誤り訂正数等に応じて様々に変動するため、当該経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0028】
本発明の第11の態様に係る情報処理装置は、第10の態様に係る情報処理装置において特に、クロックを生成するクロック生成部をさらに備え、前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第5のカウンタを有し、前記乱数生成部は、前記誤り訂正部が誤り訂正処理を開始してから、前記誤り訂正部が誤り訂正処理を完了するまでの、前記第5のカウンタによるクロックのカウンタ値に基づいて、乱数を生成することを特徴とするものである。
【0029】
第11の態様に係る情報処理装置によれば、乱数生成部は、誤り訂正部が誤り訂正処理を開始してから、誤り訂正部が誤り訂正処理を完了するまでの、第5のカウンタによるクロックのカウンタ値に基づいて、乱数を生成する。クロック周期のばらつきに起因して当該カウンタ値は変動するため、当該カウンタ値に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0030】
本発明の第12の態様に係る情報処理装置は、外部装置が接続される情報処理装置であって、前記外部装置から前記情報処理装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成する乱数生成部を備えることを特徴とするものである。
【0031】
第12の態様に係る情報処理装置によれば、外部装置から情報処理装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0032】
本発明の第13の態様に係る情報処理装置は、第12の態様に係る情報処理装置において特に、前記乱数生成部は、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの特定のコマンドの受信を開始するまでの経過時間に基づいて、乱数を生成することを特徴とするものである。
【0033】
第13の態様に係る情報処理装置によれば、乱数生成部は、情報処理装置の起動が完了してから、情報処理装置が外部装置からの特定のコマンドの受信を開始するまでの経過時間に基づいて、乱数を生成する。当該経過時間は様々に変動するため、当該経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0034】
本発明の第14の態様に係る情報処理装置は、第13の態様に係る情報処理装置において特に、クロックを生成するクロック生成部をさらに備え、前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第6のカウンタを有し、前記乱数生成部は、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの特定のコマンドの受信を開始するまでの、前記第6のカウンタによるクロックのカウンタ値に基づいて、乱数を生成することを特徴とするものである。
【0035】
第14の態様に係る情報処理装置によれば、乱数生成部は、情報処理装置の起動が完了してから、情報処理装置が外部装置からの特定のコマンドの受信を開始するまでの、第6のカウンタによるクロックのカウンタ値に基づいて、乱数を生成する。クロック周期のばらつきに起因して当該カウンタ値は変動するため、当該カウンタ値に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0036】
本発明の第15の態様に係る情報処理装置は、外部装置が接続される情報処理装置であって、前記情報処理装置から前記外部装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成する乱数生成部を備えることを特徴とするものである。
【0037】
第15の態様に係る情報処理装置によれば、情報処理装置から外部装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0038】
本発明の第16の態様に係る情報処理装置は、第15の態様に係る情報処理装置において特に、前記乱数生成部は、前記情報処理装置の起動が完了してから、前記情報処理装置から前記外部装置へのアクセス動作が完了した後の所定のタイミングまでの経過時間に基づいて、乱数を生成することを特徴とするものである。
【0039】
第16の態様に係る情報処理装置によれば、乱数生成部は、情報処理装置の起動が完了してから、情報処理装置から外部装置へのアクセス動作が完了した後の所定のタイミングまでの経過時間に基づいて、乱数を生成する。当該経過時間は様々に変動するため、当該経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0040】
本発明の第17の態様に係る情報処理装置は、第16の態様に係る情報処理装置において特に、クロックを生成するクロック生成部をさらに備え、前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第1のカウンタを有し、前記乱数生成部は、前記情報処理装置の起動が完了してから、前記情報処理装置から前記外部装置へのアクセス動作が完了した後の所定のタイミングまでの、前記第1のカウンタによるクロックのカウンタ値に基づいて、乱数を生成することを特徴とするものである。
【0041】
第17の態様に係る情報処理装置によれば、乱数生成部は、情報処理装置の起動が完了してから、情報処理装置から外部装置へのアクセス動作が完了した後の所定のタイミングまでの、第1のカウンタによるクロックのカウンタ値に基づいて、乱数を生成する。クロック周期のばらつきに起因して当該カウンタ値は変動するため、当該カウンタ値に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0042】
本発明の第18の態様に係る情報処理装置は、外部装置が接続される情報処理装置であって、前記外部装置の内部動作に伴う不安定要素に基づいて乱数を生成する乱数生成部を備えることを特徴とするものである。
【0043】
第18の態様に係る情報処理装置によれば、外部装置の内部動作に伴う不安定要素に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0044】
本発明の第19の態様に係る情報処理装置は、第18の態様に係る情報処理装置において特に、前記乱数生成部は、前記情報処理装置から前記外部装置へのデータ要求コマンドの送信が完了してから、前記情報処理装置が前記外部装置からのデータ受信を開始するまでの経過時間に基づいて、乱数を生成することを特徴とするものである。
【0045】
第19の態様に係る情報処理装置によれば、乱数生成部は、情報処理装置から外部装置へのデータ要求コマンドの送信が完了してから、情報処理装置が外部装置からのデータ受信を開始するまでの経過時間に基づいて、乱数を生成する。当該経過時間は様々に変動するため、当該経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0046】
本発明の第20の態様に係る情報処理装置は、第19の態様に係る情報処理装置において特に、クロックを生成するクロック生成部をさらに備え、前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第2のカウンタを有し、前記乱数生成部は、前記情報処理装置から前記外部装置へのデータ要求コマンドの送信が完了してから、前記情報処理装置が前記外部装置からのデータ受信を開始するまでの、前記第2のカウンタによるクロックのカウンタ値に基づいて、乱数を生成することを特徴とするものである。
【0047】
第20の態様に係る情報処理装置によれば、乱数生成部は、情報処理装置から外部装置へのデータ要求コマンドの送信が完了してから、情報処理装置が外部装置からのデータ受信を開始するまでの、第2のカウンタによるクロックのカウンタ値に基づいて、乱数を生成する。クロック周期のばらつきに起因して当該カウンタ値は変動するため、当該カウンタ値に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0048】
本発明の第21の態様に係る情報処理装置は、第3、第5、第7、第9、第11、第14、第17、第20のいずれか一つの態様に係る情報処理装置において特に、前記クロック生成部は、前記クロックとして周波数拡散クロックを生成することを特徴とするものである。
【0049】
第21の態様に係る情報処理装置によれば、クロック生成部は周波数拡散クロックを生成する。周波数拡散クロックを生成することにより、クロック周期を意図的にばらつかせることができるため、乱数生成部によって再現不可能性を有する乱数を簡易に生成することが可能となる。
【0050】
本発明の第22の態様に係るプログラムは、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備える情報処理装置に搭載されるコンピュータを、前記制御部による前記記憶部へのアクセス動作に伴う不安定要素に基づいて乱数を生成する乱数生成手段として機能させるための、プログラムである。
【0051】
第22の態様に係るプログラムによれば、制御部による記憶部へのアクセス動作に伴う不安定要素に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0052】
本発明の第23の態様に係るプログラムは、外部装置が接続される情報処理装置に搭載されるコンピュータを、前記外部装置から前記情報処理装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成する乱数生成手段として機能させるための、プログラムである。
【0053】
第23の態様に係るプログラムによれば、外部装置から情報処理装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0054】
本発明の第24の態様に係るプログラムは、外部装置が接続される情報処理装置に搭載されるコンピュータを、前記情報処理装置から前記外部装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成する乱数生成手段として機能させるための、プログラムである。
【0055】
第24の態様に係るプログラムによれば、情報処理装置から外部装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0056】
本発明の第25の態様に係るプログラムは、外部装置が接続される情報処理装置に搭載されるコンピュータを、前記外部装置の内部動作に伴う不安定要素に基づいて乱数を生成する乱数生成手段として機能させるための、プログラムである。
【0057】
第25の態様に係るプログラムによれば、外部装置の内部動作に伴う不安定要素に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0058】
本発明の第26の態様に係る乱数生成方法は、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備える情報処理装置において、前記制御部による前記記憶部へのアクセス動作に伴う不安定要素に基づいて乱数を生成することを特徴とするものである。
【0059】
第26の態様に係る乱数生成方法によれば、制御部による記憶部へのアクセス動作に伴う不安定要素に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0060】
本発明の第27の態様に係る乱数生成方法は、外部装置が接続される情報処理装置において、前記外部装置から前記情報処理装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成することを特徴とするものである。
【0061】
第27の態様に係る乱数生成方法によれば、外部装置から情報処理装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0062】
本発明の第28の態様に係る乱数生成方法は、外部装置が接続される情報処理装置において、前記情報処理装置から前記外部装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成することを特徴とするものである。
【0063】
第28の態様に係る乱数生成方法によれば、情報処理装置から外部装置へのアクセス動作に伴う不安定要素に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【0064】
本発明の第29の態様に係る乱数生成方法は、外部装置が接続される情報処理装置において、前記外部装置の内部動作に伴う不安定要素に基づいて乱数を生成することを特徴とするものである。
【0065】
第29の態様に係る乱数生成方法によれば、外部装置の内部動作に伴う不安定要素に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【発明の効果】
【0066】
本発明によれば、再現不可能性を有する乱数を簡易に生成することが可能となる。
【図面の簡単な説明】
【0067】
【
図2】実施の形態1に係るホスト装置の構成を簡略化して示す図である。
【
図3】実施の形態1に係るメモリ装置の構成を簡略化して示す図である。
【
図4】実施の形態1に係るメモリシステムの動作を示すタイミングチャートである。
【
図5】実施の形態2に係るホスト装置の構成を簡略化して示す図である。
【
図6】実施の形態2に係るメモリ装置の構成を簡略化して示す図である。
【
図7】実施の形態2に係るメモリシステムの動作を示すタイミングチャートである。
【発明を実施するための形態】
【0068】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0069】
<実施の形態1>
図1は、メモリシステム1の構成を示す図である。
図1に示すようにメモリシステム1は、ホスト装置2と、ホスト装置2に着脱自在に接続されたメモリ装置3とを備えて構成されている。例えば、ホスト装置2はパーソナルコンピュータであり、メモリ装置3はフラッシュメモリ等のメモリカードである。但し、メモリ装置3は必ずしもホスト装置2に対して着脱自在に外部接続される外部メモリである必要はなく、メモリ装置3はホスト装置2の内蔵メモリであっても良い。
【0070】
本実施の形態1では、乱数の生成をメモリ装置3が実行する態様について説明する。
【0071】
図2は、本実施の形態に係るホスト装置2の構成を簡略化して示す図である。
図2に示すようにホスト装置2は、SoC(System On Chip)21とクロック生成部22とを備えて構成されている。SoC21は、バス31を介して相互に接続された、CPU32とメモリインタフェース33とを備えている。クロック生成部22は、SoC21の動作タイミングを規定するためのクロックK1を生成する。本実施の形態の例では、クロック生成部22は、クロックK1として、クロック周期がランダムに微変動する周波数拡散クロックを生成する。
【0072】
図3は、本実施の形態に係るメモリ装置3の構成を簡略化して示す図である。
図3に示すようにメモリ装置3は、ホストインタフェース41、クロック生成部42、メモリコントローラ43、及びメモリコア44を備えて構成されている。メモリコア44は、例えばNAND型フラッシュメモリを用いて構成されている。
【0073】
メモリコントローラ43は、アクセス制御部51と乱数生成部52とを備えている。アクセス制御部51は、誤り訂正回路61を有している。乱数生成部52は、カウンタ71,72を有している。アクセス制御部51及び乱数生成部52は、専用回路等を用いてハードウェアとして構成されていても良いし、CPU等を用いてソフトウェアとして構成されていても良い。乱数生成部52をソフトウェアとして構成する場合には、ROM等の記憶媒体から読み込んだ所定のプログラムをCPUが実行することにより、CPUが乱数生成部52として機能する。クロック生成部42は、メモリコントローラ43の動作タイミングを規定するためのクロックK2を生成する。本実施の形態の例では、クロック生成部42は、クロックK2として、クロック周期がランダムに微変動する周波数拡散クロックを生成する。ホスト装置2のクロックK1とメモリ装置3のクロックK2とは、互いに非同期である。
【0074】
図4は、本実施の形態に係るメモリシステム1の動作を示すタイミングチャートである。(a)は電源VCCを示し、(b)はクロックK1を示し、(c)はメモリインタフェース33が送受信するコマンド及びデータを示し、(d)はクロックK2を示し、(e)はホストインタフェース41が送受信するコマンド及びデータを示し、(f)はカウンタ71を示し、(g)はカウンタ72を示している。
【0075】
時刻T1において、メモリシステム1の電源VCCが投入されて起動が完了すると、ホスト装置2及びメモリ装置3は動作を開始する。ホスト装置2においては、クロック生成部22からSoC21へのクロックK1の供給が開始され、メモリ装置3においては、クロック生成部42からメモリコントローラ43へのクロックK2の供給が開始される。カウンタ71は、時刻T1から、クロックK2のカウント動作を開始する。
【0076】
時刻T2において、CPU32は、メモリコア44から所定のデータD1を読み出すための1回目の読み出しコマンドC1を発行し、当該読み出しコマンドC1をメモリインタフェース33に入力する。読み出しコマンドC1には、それが読み出しコマンドであることを示すコマンドIDと、読み出し対象のデータD1の所在を示すアドレス情報とが含まれる。メモリインタフェース33は、CPU32から入力された読み出しコマンドC1を、メモリ装置3に送信する。ホストインタフェース41は、ホスト装置2から受信した読み出しコマンドC1を、アクセス制御部51に入力する。
【0077】
時刻T3において、アクセス制御部51は読み出しコマンドC1をデコードしてメモリコア44にアクセスすることにより、メモリコア44から読み出し対象のデータD1を読み出す。カウンタ72は、時刻T3から、クロックK2のカウント動作を開始する。
【0078】
時刻T4において、誤り訂正回路61は、メモリコア44から読み出されたデータD1に対して所定の誤り訂正処理を実行する。誤り訂正処理後のデータD1は、ホストインタフェース41に入力される。
【0079】
時刻T5において、ホストインタフェース41は誤り訂正処理後のデータD1をホスト装置2に送信する。メモリインタフェース33は、メモリ装置3から受信したデータD1を、CPU32に入力する。また、カウンタ72は、時刻T5においてクロックK2のカウント動作を停止し、その時点でのカウンタ値を保持する。
【0080】
なお、ホスト装置2が読み出しコマンドC1の送信を完了した時刻T3から、ホスト装置2がメモリ装置3からのデータD1の受信を開始する時刻T5までの期間は、ホスト装置2がメモリ装置3からのデータD1を待機するレイテンシ期間となる。このレイテンシ期間においてメモリコントローラ43は、ホスト装置2にBUSY信号を継続して送信し、レイテンシ期間の終了直前にホスト装置2にREADY信号を送信する。
【0081】
時刻T6において、メモリインタフェース33は、メモリ装置3からのデータD1の受信を完了する。
【0082】
時刻T7において、CPU32は、2回目の読み出しコマンドC2を発行し、当該読み出しコマンドC2をメモリインタフェース33に入力する。メモリインタフェース33は、CPU32から入力された読み出しコマンドC2を、メモリ装置3に送信する。ホストインタフェース41は、ホスト装置2から受信した読み出しコマンドC2を、アクセス制御部51に入力する。
【0083】
時刻T8において、アクセス制御部51は読み出しコマンドC2をデコードしてメモリコア44にアクセスすることにより、メモリコア44から読み出し対象のデータD2を読み出す。カウンタ72は、その時点で保持しているカウンタ値に続けて、時刻T8からクロックK2のカウント動作を再開する。
【0084】
時刻T9において、誤り訂正回路61は、メモリコア44から読み出されたデータD2に対して所定の誤り訂正処理を実行する。誤り訂正処理後のデータD2は、ホストインタフェース41に入力される。
【0085】
時刻T10において、ホストインタフェース41は誤り訂正処理後のデータD2をホスト装置2に送信する。メモリインタフェース33は、メモリ装置3から受信したデータD2を、CPU32に入力する。また、カウンタ72は、時刻T10においてクロックK2のカウント動作を停止し、その時点でのカウンタ値を保持する。
【0086】
なお、上述した時刻T3〜T5と同様に、時刻T8〜T10もレイテンシ期間となる。このレイテンシ期間においてメモリコントローラ43は、ホスト装置2にBUSY信号を継続して送信し、レイテンシ期間の終了直前にホスト装置2にREADY信号を送信する。
【0087】
時刻T11において、メモリインタフェース33は、メモリ装置3からのデータD2の受信を完了する。
【0088】
時刻T12において、CPU32は、メモリ装置3に乱数W1の生成を要求するための乱数要求コマンドV1を発行し、当該乱数要求コマンドV1をメモリインタフェース33に入力する。メモリインタフェース33は、CPU32から入力された乱数要求コマンドV1を、メモリ装置3に送信する。ホストインタフェース41は、ホスト装置2から受信した乱数要求コマンドV1を、アクセス制御部51に入力する。カウンタ71は、時刻T12においてクロックK2のカウント動作を停止し、その時点でのカウンタ値を保持する。
【0089】
時刻T13において、ホストインタフェース41は、ホスト装置2からの乱数要求コマンドV1の受信を完了する。
【0090】
時刻T14において、アクセス制御部51は乱数要求コマンドV1をデコードして乱数生成部52に乱数生成命令を入力する。乱数生成部52は、その時点でのカウンタ71のカウンタ値とカウンタ72のカウンタ値とに基づいて、乱数W1を生成する。第1の例として乱数生成部52は、カウンタ71のカウンタ値とカウンタ72のカウンタ値とを配列することにより、乱数W1を生成する。例えば、カウンタ71のカウンタ値を上位ビットとし、カウンタ72のカウンタ値を下位ビットとして配列することにより、各カウンタ値のビット幅よりも大きいビット幅の乱数W1を生成する。第2の例として乱数生成部52は、カウンタ71のカウンタ値とカウンタ72のカウンタ値とを排他的論理和等によって合成することにより、乱数W1を生成する。第3の例として乱数生成部52は、カウンタ71,72のカウンタ値をシードとして用いて、SHA−1,SHA−2等の任意のハッシュ生成アルゴリズム、又は、AES等の任意の暗号アルゴリズムによって、予測不可能性が担保された乱数W1を生成する。当該第3の例は、上記第1の例又は上記第2の例と組み合わせて適用しても良い。乱数生成部52は、生成した乱数W1を、ホストインタフェース41を介してホスト装置2に送信する。
【0091】
なお、上述した時刻T3〜T5と同様に、時刻T13〜T14もレイテンシ期間となる。このレイテンシ期間においてメモリコントローラ43は、ホスト装置2にBUSY信号を継続して送信し、レイテンシ期間の終了直前にホスト装置2にREADY信号を送信する。
【0092】
時刻T15において、メモリインタフェース33は、メモリ装置3からの乱数W1の受信を完了する。メモリインタフェース33は、メモリ装置3から受信した乱数W1をCPU32に入力する。
【0093】
このように本実施の形態に係るメモリ装置3(情報処理装置)によれば、乱数生成部52は、アクセス制御部51(制御部)によるメモリコア44(記憶部)へのアクセス動作に伴う不安定要素に基づいて、乱数W1を生成する。これにより、再現不可能性を有する乱数W1を簡易に生成することが可能となる。
【0094】
また、本実施の形態に係るメモリ装置3によれば、乱数生成部52は、当該不安定要素として、ホスト装置2(外部装置)からの読み出しコマンドC1,C2の受信が完了した時点(T3,T8)から、メモリ装置3からホスト装置2へのデータD1の送信が開始される時点(T5,T10)までの経過時間に基づいて、乱数W1を生成する。当該経過時間は様々に変動するため、当該経過時間に基づいて乱数W1を生成することにより、再現不可能性を有する乱数W1を簡易に生成することが可能となる。
【0095】
また、本実施の形態に係るメモリ装置3によれば、乱数生成部52は、ホスト装置2(外部装置)からの読み出しコマンドC1,C2の受信が完了した時点(T3,T8)から、メモリ装置3からホスト装置2へのデータD1の送信が開始される時点(T5,T10)までの、カウンタ72(第1のカウンタ)によるクロックK2のカウンタ値に基づいて、乱数W1を生成する。温度や電源電圧等の周辺環境に起因してクロックK2のクロック周期はばらつき、また、クロックK2のクロック周期のばらつきに起因してカウンタ72のカウンタ値は変動する。従って、当該カウンタ値に基づいて乱数W1を生成することにより、再現不可能性を有する乱数W1を簡易に生成することが可能となる。
【0096】
また、本実施の形態に係るメモリ装置3によれば、乱数生成部52は、ホスト装置2からメモリ装置3へのアクセス動作に伴う不安定要素に基づいて、乱数W1を生成する。これにより、再現不可能性を有する乱数W1を簡易に生成することが可能となる。
【0097】
また、本実施の形態に係るメモリ装置3によれば、乱数生成部52は、当該不安定要素として、メモリ装置3の起動が完了した時点(時刻T1)から、メモリ装置3がホスト装置2からの乱数要求コマンドV1の受信を開始する時点(時刻T12)までの経過時間に基づいて、乱数W1を生成する。当該経過時間は、読み出しコマンドC1,C2の発行回数及び発行間隔等に起因して様々に変動するため、当該経過時間に基づいて乱数W1を生成することにより、再現不可能性を有する乱数W1を簡易に生成することが可能となる。
【0098】
また、本実施の形態に係るメモリ装置3によれば、乱数生成部52は、メモリ装置3の起動が完了した時点(時刻T1)から、メモリ装置3がホスト装置2からの乱数要求コマンドV1の受信を開始する時点(時刻T12)までの、カウンタ71(第6のカウンタ)によるクロックK2のカウンタ値に基づいて、乱数W1を生成する。温度や電源電圧等の周辺環境に起因してクロックK2のクロック周期はばらつき、また、クロックK2のクロック周期のばらつきに起因してカウンタ71のカウンタ値は変動する。従って、当該カウンタ値に基づいて乱数W1を生成することにより、再現不可能性を有する乱数W1を簡易に生成することが可能となる。
【0099】
また、本実施の形態に係るメモリ装置3によれば、クロック生成部42はクロックK2として周波数拡散クロックを生成する。これにより、クロックK2のクロック周期を意図的にばらつかせることができるため、乱数生成部52によって再現不可能性を有する乱数W1を簡易に生成することが可能となる。
【0100】
以下、上記実施の形態1に対する様々な変形例について説明する。これらの変形例は任意に組み合わせて適用することが可能である。
【0101】
<変形例1−1>
上記実施の形態1では、乱数生成部52はメモリコア44からのデータDの読み出し処理の所要時間に基づいて乱数W1を生成したが、メモリコア44へのデータDの書き込み処理の所要時間に基づいて乱数W1を生成しても良い。
【0102】
ホスト装置2は、データDの書き込みコマンドをメモリ装置3に送信する。乱数生成部52は、ホスト装置2からの書き込みコマンドの受信が完了してから、メモリコア44の指定アドレスへのデータDの書き込み処理が完了するまでの経過時間に基づいて、乱数W1を生成する。
【0103】
具体的には、乱数生成部52は、ホスト装置2からの書き込みコマンドの受信が完了した時点から、メモリコア44の指定アドレスへのデータDの書き込み処理が完了した時点までの、カウンタ72(第2のカウンタ)によるクロックK2のカウンタ値に基づいて、乱数W1を生成する。
【0104】
本変形例によれば、乱数生成部52は、ホスト装置2からの書き込みコマンドの受信が完了してから、メモリコア44へのデータDの書き込み処理が完了するまでの経過時間に基づいて、乱数W1を生成する。当該経過時間は様々に変動するため、当該経過時間に基づいて乱数W1を生成することにより、再現不可能性を有する乱数W1を簡易に生成することが可能となる。
【0105】
また、本変形例によれば、乱数生成部52は、ホスト装置2からの書き込みコマンドの受信が完了した時点から、メモリコア44へのデータDの書き込み処理が完了した時点までの、カウンタ72によるクロックK2のカウンタ値に基づいて、乱数W1を生成する。クロックK2のクロック周期のばらつきに起因して当該カウンタ値は変動するため、当該カウンタ値に基づいて乱数W1を生成することにより、再現不可能性を有する乱数W1を簡易に生成することが可能となる。
【0106】
<変形例1−2>
上記実施の形態1では、乱数生成部52はメモリコア44からのデータDの読み出し処理の所要時間に基づいて乱数W1を生成したが、メモリコア44に格納されている特定のデータDに対する消去処理の所要時間に基づいて乱数W1を生成しても良い。
【0107】
ホスト装置2は、データDの消去コマンドをメモリ装置3に送信する。乱数生成部52は、ホスト装置2からの消去コマンドの受信が完了してから、メモリコア44からのデータDの消去処理が完了するまでの経過時間に基づいて、乱数W1を生成する。
【0108】
具体的には、乱数生成部52は、ホスト装置2からの消去コマンドの受信が完了した時点から、メモリコア44からのデータDの消去処理が完了した時点までの、カウンタ72(第3のカウンタ)によるクロックK2のカウンタ値に基づいて、乱数W1を生成する。
【0109】
本変形例によれば、乱数生成部52は、ホスト装置2からの消去コマンドの受信が完了してから、メモリコア44からのデータDの消去処理が完了するまでの経過時間に基づいて、乱数W1を生成する。当該経過時間は様々に変動するため、当該経過時間に基づいて乱数W1を生成することにより、再現不可能性を有する乱数W1を簡易に生成することが可能となる。
【0110】
また、本変形例によれば、乱数生成部52は、ホスト装置2からの消去コマンドの受信が完了した時点から、メモリコア44からのデータDの消去処理が完了した時点までの、カウンタ72によるクロックK2のカウンタ値に基づいて、乱数W1を生成する。クロックK2のクロック周期のばらつきに起因して当該カウンタ値は変動するため、当該カウンタ値に基づいて乱数W1を生成することにより、再現不可能性を有する乱数W1を簡易に生成することが可能となる。
【0111】
<変形例1−3>
上記実施の形態1では、乱数生成部52は読み出しコマンドCの受信が完了してからデータDの送信が開始されるまでの経過時間に基づいて乱数W1を生成したが、メモリコア44へのアクセス所要時間のみに基づいて乱数W1を生成しても良い。
【0112】
乱数生成部52は、メモリコア44からのデータDの読み出しが開始されてから、メモリコア44からのデータDの読み出しが完了するまでの経過時間に基づいて、乱数W1を生成する。
【0113】
具体的には、乱数生成部52は、メモリアレイ44からのデータD1,D2の読み出しが開始された時点(時刻T3,T8)から、メモリアレイ44からのデータD1,D2の読み出しが完了した時点(時刻T4,T9)までの、カウンタ72(第4のカウンタ)によるクロックK2のカウンタ値に基づいて、乱数W1を生成する。
【0114】
本変形例によれば、乱数生成部52は、メモリアレイ44からのデータDの読み出しが開始されてから、メモリアレイ44からのデータDの読み出しが完了するまでの経過時間に基づいて、乱数W1を生成する。当該経過時間は様々に変動するため、当該経過時間に基づいて乱数W1を生成することにより、再現不可能性を有する乱数W1を簡易に生成することが可能となる。
【0115】
また、本変形例によれば、乱数生成部52は、メモリアレイ44からのデータDの読み出しが開始されてから、メモリアレイ44からのデータDの読み出しが完了するまでの、カウンタ72によるクロックK2のカウンタ値に基づいて、乱数W1を生成する。クロックK2のクロック周期のばらつきに起因して当該カウンタ値は変動するため、当該カウンタ値に基づいて乱数W1を生成することにより、再現不可能性を有する乱数W1を簡易に生成することが可能となる。
【0116】
<変形例1−4>
上記実施の形態1では、乱数生成部52は読み出しコマンドCの受信が完了してからデータDの送信が開始されるまでの経過時間に基づいて乱数W1を生成したが、誤り訂正処理の所要時間のみに基づいて乱数W1を生成しても良い。
【0117】
乱数生成部52は、誤り訂正回路61がデータDに対する誤り訂正処理を開始してから、誤り訂正回路61が当該誤り訂正処理を完了するまでの経過時間に基づいて、乱数W1を生成する。
【0118】
具体的には、乱数生成部52は、誤り訂正回路61がデータD1,D2に対する誤り訂正処理を開始した時点(時刻T4,T9)から、誤り訂正回路61が当該誤り訂正処理を完了した時点(時刻T5,T10)までの、カウンタ72(第5のカウンタ)によるクロックK2のカウンタ値に基づいて、乱数W1を生成する。
【0119】
本変形例によれば、乱数生成部52は、誤り訂正回路61(誤り訂正部)がデータDに対する誤り訂正処理を開始してから当該誤り訂正処理を完了するまでの経過時間に基づいて、乱数W1を生成する。当該経過時間は誤り訂正数等に応じて様々に変動するため、当該経過時間に基づいて乱数W1を生成することにより、再現不可能性を有する乱数W1を簡易に生成することが可能となる。
【0120】
また、本変形例によれば、乱数生成部52は、誤り訂正回路61がデータDに対する誤り訂正処理を開始してから当該誤り訂正処理を完了するまでの、カウンタ72によるクロックK2のカウンタ値に基づいて、乱数W1を生成する。クロックK2のクロック周期のばらつきに起因して当該カウンタ値は変動するため、当該カウンタ値に基づいて乱数W1を生成することにより、再現不可能性を有する乱数W1を簡易に生成することが可能となる。
【0121】
<実施の形態2>
本実施の形態2では、乱数の生成をホスト装置2が実行する態様について説明する。以下、上記実施の形態1との相違点を中心に説明する。
【0122】
図5は、本実施の形態に係るホスト装置2の構成を簡略化して示す図である。
図5に示すようにホスト装置2は、SoC21とクロック生成部22とを備えて構成されている。SoC21は、バス31を介して相互に接続された、CPU32、メモリインタフェース33、及び乱数生成部34を備えている。乱数生成部34は、カウンタ81,82を有している。乱数生成部34は、専用回路等を用いてハードウェアとして構成されていても良いし、CPU32(あるいは他のCPU)を用いてソフトウェアとして構成されていても良い。乱数生成部34をソフトウェアとして構成する場合には、ROM等の記憶媒体から読み込んだ所定のプログラムをCPU32が実行することにより、CPU32が乱数生成部34として機能する。
【0123】
図6は、本実施の形態に係るメモリ装置3の構成を簡略化して示す図である。
図6に示すようにメモリ装置3は、ホストインタフェース41、クロック生成部42、メモリコントローラ43、及びメモリコア44を備えて構成されている。メモリコントローラ43はアクセス制御部51を備えており、アクセス制御部51は誤り訂正回路61を有している。
【0124】
図7は、本実施の形態に係るメモリシステム1の動作を示すタイミングチャートである。(a)は電源VCCを示し、(b)はクロックK1を示し、(c)はメモリインタフェース33が送受信するコマンド及びデータを示し、(d)は乱数生成部34に入出力されるコマンド及び乱数を示し、(e)はカウンタ81を示し、(f)はカウンタ82を示し、(g)はクロックK2を示し、(h)はホストインタフェース41が送受信するコマンド及びデータを示している。
【0125】
時刻T1において、メモリシステム1の電源VCCが投入されて起動が完了すると、ホスト装置2及びメモリ装置3は動作を開始する。ホスト装置2においては、クロック生成部22からSoC21へのクロックK1の供給が開始され、メモリ装置3においては、クロック生成部42からメモリコントローラ43へのクロックK2の供給が開始される。カウンタ81は、時刻T1から、クロックK1のカウント動作を開始する。
【0126】
時刻T2において、CPU32は、メモリコア44から所定のデータD1を読み出すための1回目の読み出しコマンドC1を発行し、当該読み出しコマンドC1をメモリインタフェース33に入力する。メモリインタフェース33は、CPU32から入力された読み出しコマンドC1を、メモリ装置3に送信する。
【0127】
時刻T3において、メモリインタフェース33は、メモリ装置3への読み出しコマンドC1の送信を完了する。カウンタ82は、時刻T3から、クロックK1のカウント動作を開始する。また、ホストインタフェース41は、ホスト装置2から受信した読み出しコマンドC1を、アクセス制御部51に入力する。アクセス制御部51は、読み出しコマンドC1をデコードしてメモリコア44にアクセスすることにより、メモリコア44から読み出し対象のデータD1を読み出す。
【0128】
時刻T4において、誤り訂正回路61は、メモリコア44から読み出されたデータD1に対して所定の誤り訂正処理を実行する。誤り訂正処理後のデータD1は、ホストインタフェース41に入力される。
【0129】
時刻T5において、ホストインタフェース41は誤り訂正処理後のデータD1をホスト装置2に送信する。メモリインタフェース33は、メモリ装置3から受信したデータD1を、CPU32に入力する。また、カウンタ82は、時刻T5においてクロックK1のカウント動作を停止し、その時点でのカウンタ値を保持する。つまり、カウンタ82は、ホスト装置2がメモリ装置3からBUSY信号及びREADY信号を受信している期間(時刻T3〜T5)において、クロックK1のカウント動作を実行する。
【0130】
時刻T6において、メモリインタフェース33は、メモリ装置3からのデータD1の受信を完了する。
【0131】
時刻T7において、CPU32は、2回目の読み出しコマンドC2を発行し、当該読み出しコマンドC2をメモリインタフェース33に入力する。メモリインタフェース33は、CPU32から入力された読み出しコマンドC2を、メモリ装置3に送信する。
【0132】
時刻T8において、メモリインタフェース33は、メモリ装置3への読み出しコマンドC2の送信を完了する。カウンタ82は、その時点で保持しているカウンタ値に続けて、時刻T8からクロックK1のカウント動作を再開する。また、ホストインタフェース41は、ホスト装置2から受信した読み出しコマンドC2を、アクセス制御部51に入力する。アクセス制御部51は、読み出しコマンドC2をデコードしてメモリコア44にアクセスすることにより、メモリコア44から読み出し対象のデータD2を読み出す。
【0133】
時刻T9において、誤り訂正回路61は、メモリコア44から読み出されたデータD2に対して所定の誤り訂正処理を実行する。誤り訂正処理後のデータD2は、ホストインタフェース41に入力される。
【0134】
時刻T10において、ホストインタフェース41は誤り訂正処理後のデータD2をホスト装置2に送信する。メモリインタフェース33は、メモリ装置3から受信したデータD2を、CPU32に入力する。また、カウンタ82は、時刻T10においてクロックK1のカウント動作を停止し、その時点でのカウンタ値を保持する。
【0135】
時刻T11において、メモリインタフェース33は、メモリ装置3からのデータD2の受信を完了する。
【0136】
時刻T12において、CPU32は、カウント停止命令Zを乱数生成部34に入力する。カウンタ81は、時刻T12においてクロックK1のカウント動作を停止し、その時点でのカウンタ値を保持する。なお、CPU32によるカウント停止命令Zの発行タイミングは、メモリ装置3からのデータD2の受信が完了した後の任意のタイミングであって良い。一例として、カウント停止命令Zの発行タイミングは、ホスト装置2の初期化を行うためのメモリ装置3からのブートコードの読み出し手続きが開始されるタイミングと同時であっても良い。他の例として、カウント停止命令Zの発行タイミングは、ホスト装置2−メモリ装置3間の通信確立のためのキャリブレーション処理が完了した直後のタイミングであっても良い。
【0137】
時刻T13において、乱数生成部34は、その時点でのカウンタ81のカウンタ値とカウンタ82のカウンタ値とに基づいて、乱数W2を生成する。第1の例として乱数生成部34は、カウンタ81のカウンタ値とカウンタ82のカウンタ値とを配列することにより、乱数W2を生成する。例えば、カウンタ81のカウンタ値を上位ビットとし、カウンタ82のカウンタ値を下位ビットとして配列することにより、各カウンタ値のビット幅よりも大きいビット幅の乱数W2を生成する。第2の例として乱数生成部34は、カウンタ81のカウンタ値とカウンタ82のカウンタ値とを排他的論理和等によって合成することにより、乱数W2を生成する。第3の例として乱数生成部34は、カウンタ81,82のカウンタ値をシードとして用いて、SHA−1,SHA−2等の任意のハッシュ生成アルゴリズム、又は、AES等の任意の暗号アルゴリズムによって、予測不可能性が担保された乱数W2を生成する。当該第3の例は、上記第1の例又は上記第2の例と組み合わせて適用しても良い。
【0138】
このように本実施の形態に係るホスト装置2(情報処理装置)によれば、乱数生成部34は、ホスト装置2からメモリ装置3(外部装置)へのアクセス動作に伴う不安定要素に基づいて、乱数W2を生成する。これにより、再現不可能性を有する乱数W2を簡易に生成することが可能となる。
【0139】
また、本実施の形態に係るホスト装置2によれば、乱数生成部34は、当該不安定要素として、ホスト装置2の起動が完了してから、ホスト装置2からメモリ装置3へのアクセス動作が完了した後の所定のタイミング(カウント停止命令Zの発行タイミング)までの経過時間に基づいて、乱数W2を生成する。当該経過時間は、読み出しコマンドC1,C2の発行回数及び発行間隔等に起因して様々に変動するため、当該経過時間に基づいて乱数W2を生成することにより、再現不可能性を有する乱数W2を簡易に生成することが可能となる。
【0140】
また、本実施の形態に係るホスト装置2によれば、乱数生成部34は、ホスト装置2の起動が完了してから、ホスト装置2からメモリ装置3へのアクセス動作が完了した後の所定のタイミングまでの、カウンタ81(第1のカウンタ)によるクロックK1のカウンタ値に基づいて、乱数W2を生成する。温度や電源電圧等の周辺環境に起因してクロックK1のクロック周期はばらつき、また、クロックK1のクロック周期のばらつきに起因してカウンタ81のカウンタ値は変動する。従って、当該カウンタ値に基づいて乱数W2を生成することにより、再現不可能性を有する乱数W2を簡易に生成することが可能となる。
【0141】
また、本実施の形態に係るホスト装置2によれば、乱数生成部34は、メモリ装置3の内部動作に伴う不安定要素に基づいて、乱数W2を生成する。これにより、再現不可能性を有する乱数W2を簡易に生成することが可能となる。
【0142】
また、本実施の形態に係るホスト装置2によれば、乱数生成部34は、当該不安定要素として、ホスト装置2からメモリ装置3への読み出しコマンドC1,C2(データ要求コマンド)の送信が完了した時点(T3,T8)から、ホスト装置2がメモリ装置3からのデータD1,D2の受信を開始する時点(T5,T10)までの経過時間に基づいて、乱数W2を生成する。当該経過時間は様々に変動するため、当該経過時間に基づいて乱数W2を生成することにより、再現不可能性を有する乱数W2を簡易に生成することが可能となる。
【0143】
また、本実施の形態に係るホスト装置2によれば、乱数生成部34は、ホスト装置2からメモリ装置3への読み出しコマンドC1,C2の送信が完了した時点(T3,T8)から、ホスト装置2がメモリ装置3からのデータD1,D2の受信を開始する時点(T5,T10)までの、カウンタ82(第2のカウンタ)によるクロックK1のカウンタ値に基づいて、乱数W2を生成する。温度や電源電圧等の周辺環境に起因してクロックK1のクロック周期はばらつき、また、クロックK1のクロック周期のばらつきに起因してカウンタ82のカウンタ値は変動する。従って、当該カウンタ値に基づいて乱数W2を生成することにより、再現不可能性を有する乱数W2を簡易に生成することが可能となる。
【0144】
また、本実施の形態に係るホスト装置2によれば、クロック生成部22はクロックK1として周波数拡散クロックを生成する。これにより、クロックK1のクロック周期を意図的にばらつかせることができるため、乱数生成部34によって再現不可能性を有する乱数W2を簡易に生成することが可能となる。
【0145】
なお、上記実施の形態2では、乱数生成部34はメモリコア44からのデータDの読み出し処理の所要時間に基づいて乱数W2を生成したが、上記変形例1−1と同様に、メモリコア44へのデータDの書き込み処理の所要時間に基づいて乱数W2を生成しても良い。
【0146】
また、上記実施の形態2では、乱数生成部34はメモリコア44からのデータDの読み出し処理の所要時間に基づいて乱数W1を生成したが、上記変形例1−2と同様に、メモリコア44に格納されている特定のデータDに対する消去処理の所要時間に基づいて乱数W2を生成しても良い。
【0147】
また、上記実施の形態2では、乱数生成部34は読み出しコマンドCの送信が完了してからデータDの受信が開始されるまでの経過時間に基づいて乱数W2を生成したが、上記変形例1−3と同様に、メモリコア44へのアクセス所要時間のみに基づいて乱数W2を生成しても良い。
【0148】
また、上記実施の形態2では、乱数生成部34は読み出しコマンドCの送信が完了してからデータDの受信が開始されるまでの経過時間に基づいて乱数W2を生成したが、上記変形例1−4と同様に、誤り訂正処理の所要時間のみに基づいて乱数W2を生成しても良い。
【0149】
また、上記実施の形態1と上記実施の形態2とを組み合わせることにより、メモリ装置3による乱数W1の生成と、ホスト装置2による乱数W2の生成とを、ともに実行しても良い。
【0150】
ここに開示される要素の機能は、当該開示される要素を実行するように構成された、あるいは当該開示される機能を実行するようにプログラミングされた汎用プロセッサ、専用プロセッサ、集積回路、ASIC(「特定用途向け集積回路」)、従来の回路構成及び/またはそれらの組み合わせを含む回路構成あるいは処理回路構成が用いられて実装されてもよい。プロセッサは、それが、その中にトランジスタ及び他の回路構成を含むとき、処理回路構成あるいは回路構成として見なされる。本開示において、回路構成、ユニットあるいは手段は、挙げられた機能を実行するハードウェア、あるいは当該機能を実行するようにプログラミングされたハードウェアである。ハードウェアは、挙げられた機能を実行するようにプログラミングされた、あるいは当該機能を実行するように構成された、ここで開示されるいかなるハードウェアあるいは既知の他のものであってもよい。ハードウェアが、あるタイプの回路構成として見なされるかもしれないプロセッサであるとき、回路構成、手段あるいはユニットは、ハードウェアとソフトウェアの組み合わせ、ハードウェアを構成するために用いられるソフトウェア及び/またはプロセッサである。
【符号の説明】
【0151】
2 ホスト装置
3 メモリ装置
22,42 クロック生成部
34,52 乱数生成部
44 メモリコア
51 アクセス制御部
61 誤り訂正回路
71,72,81,82 カウンタ
【手続補正書】
【提出日】2020年8月26日
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
外部装置が接続される情報処理装置であって、
データが記憶された記憶部と、
前記記憶部へのアクセスを制御する制御部と、
乱数生成部と、
を備え、
前記乱数生成部は、前記外部装置からのデータ読み出しコマンドの受信が完了してから、前記情報処理装置から前記外部装置へのデータ送信が開始されるまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、情報処理装置。
【請求項2】
クロックを生成するクロック生成部をさらに備え、
前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第1のカウンタ及び第2のカウンタを有し、
前記乱数生成部は、前記外部装置からのデータ読み出しコマンドの受信が完了してから、前記情報処理装置から前記外部装置へのデータ送信が開始されるまでの、前記第1のカウンタによるクロックのカウンタ値である第1のカウンタ値と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの、前記第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成する、請求項1に記載の情報処理装置。
【請求項3】
外部装置が接続される情報処理装置であって、
データが記憶された記憶部と、
前記記憶部へのアクセスを制御する制御部と、
乱数生成部と、
を備え、
前記乱数生成部は、前記外部装置からのデータ書き込みコマンドの受信が完了してから、前記記憶部へのデータ書き込みが完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、情報処理装置。
【請求項4】
クロックを生成するクロック生成部をさらに備え、
前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第1のカウンタ及び第2のカウンタを有し、
前記乱数生成部は、前記外部装置からのデータ書き込みコマンドの受信が完了してから、前記記憶部へのデータ書き込みが完了するまでの、前記第1のカウンタによるクロックのカウンタ値である第1のカウンタ値と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの、前記第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成する、請求項3に記載の情報処理装置。
【請求項5】
外部装置が接続される情報処理装置であって、
データが記憶された記憶部と、
前記記憶部へのアクセスを制御する制御部と、
乱数生成部と、
を備え、
前記乱数生成部は、前記外部装置からのデータ消去コマンドの受信が完了してから、前記記憶部に記憶されているデータの消去が完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、情報処理装置。
【請求項6】
クロックを生成するクロック生成部をさらに備え、
前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第1のカウンタ及び第2のカウンタを有し、
前記乱数生成部は、前記外部装置からのデータ消去コマンドの受信が完了してから、前記記憶部に記憶されているデータの消去が完了するまでの、前記第1のカウンタによるクロックのカウンタ値である第1のカウンタ値と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの、前記第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成する、請求項5に記載の情報処理装置。
【請求項7】
外部装置が接続される情報処理装置であって、
データが記憶された記憶部と、
前記記憶部へのアクセスを制御する制御部と、
乱数生成部と、
を備え、
前記乱数生成部は、前記記憶部からのデータ読み出しが開始されてから、前記記憶部からのデータ読み出しが完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、情報処理装置。
【請求項8】
クロックを生成するクロック生成部をさらに備え、
前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第1のカウンタ及び第2のカウンタを有し、
前記乱数生成部は、前記記憶部からのデータ読み出しが開始されてから、前記記憶部からのデータ読み出しが完了するまでの、前記第1のカウンタによるクロックのカウンタ値である第1のカウンタ値と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの、前記第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成する、請求項7に記載の情報処理装置。
【請求項9】
外部装置が接続される情報処理装置であって、
データが記憶された記憶部と、
前記記憶部へのアクセスを制御する制御部と、
前記記憶部から読み出したデータの誤りを訂正する誤り訂正部と、
乱数生成部と、
を備え、
前記乱数生成部は、前記誤り訂正部が誤り訂正処理を開始してから、前記誤り訂正部が誤り訂正処理を完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、情報処理装置。
【請求項10】
クロックを生成するクロック生成部をさらに備え、
前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第1のカウンタ及び第2のカウンタを有し、
前記乱数生成部は、前記誤り訂正部が誤り訂正処理を開始してから、前記誤り訂正部が誤り訂正処理を完了するまでの、前記第1のカウンタによるクロックのカウンタ値である第1のカウンタ値と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの、前記第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成する、請求項9に記載の情報処理装置。
【請求項11】
外部装置が接続される情報処理装置であって、
乱数生成部を備え、
前記乱数生成部は、前記情報処理装置から前記外部装置へのデータ要求コマンドの送信が完了してから、前記情報処理装置が前記外部装置からのデータ受信を開始するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からのデータ受信を完了した後に所定の命令を発行するタイミングまでの第2の経過時間とに基づいて、乱数を生成する、情報処理装置。
【請求項12】
クロックを生成するクロック生成部をさらに備え、
前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第1のカウンタ及び第2のカウンタを有し、
前記乱数生成部は、前記情報処理装置から前記外部装置へのデータ要求コマンドの送信が完了してから、前記情報処理装置が前記外部装置からのデータ受信を開始するまでの、前記第1のカウンタによるクロックのカウンタ値である第1のカウンタ値と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からのデータ受信を完了した後にカウント停止命令を発行するタイミングまでの、前記第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成する、請求項11に記載の情報処理装置。
【請求項13】
前記クロック生成部は、前記クロックとして周波数拡散クロックを生成する、請求項2,4,6,8,10,12のいずれか一つに記載の情報処理装置。
【請求項14】
データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備え、外部装置が接続される情報処理装置に搭載されるコンピュータを、乱数生成手段として機能させるためのプログラムであって、
前記乱数生成手段は、前記外部装置からのデータ読み出しコマンドの受信が完了してから、前記情報処理装置から前記外部装置へのデータ送信が開始されるまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、プログラム。
【請求項15】
データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備え、外部装置が接続される情報処理装置に搭載されるコンピュータを、乱数生成手段として機能させるためのプログラムであって、
前記乱数生成手段は、前記外部装置からのデータ書き込みコマンドの受信が完了してから、前記記憶部へのデータ書き込みが完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、プログラム。
【請求項16】
データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備え、外部装置が接続される情報処理装置に搭載されるコンピュータを、乱数生成手段として機能させるためのプログラムであって、
前記乱数生成手段は、前記外部装置からのデータ消去コマンドの受信が完了してから、前記記憶部に記憶されているデータの消去が完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、プログラム。
【請求項17】
データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備え、外部装置が接続される情報処理装置に搭載されるコンピュータを、乱数生成手段として機能させるためのプログラムであって、
前記乱数生成手段は、前記記憶部からのデータ読み出しが開始されてから、前記記憶部からのデータ読み出しが完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、プログラム。
【請求項18】
データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部と、前記記憶部から読み出したデータの誤りを訂正する誤り訂正部とを備え、外部装置が接続される情報処理装置に搭載されるコンピュータを、乱数生成手段として機能させるためのプログラムであって、
前記乱数生成手段は、前記誤り訂正部が誤り訂正処理を開始してから、前記誤り訂正部が誤り訂正処理を完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、プログラム。
【請求項19】
外部装置が接続される情報処理装置に搭載されるコンピュータを、乱数生成手段として機能させるためのプログラムであって、
前記乱数生成手段は、前記情報処理装置から前記外部装置へのデータ要求コマンドの送信が完了してから、前記情報処理装置が前記外部装置からのデータ受信を開始するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からのデータ受信を完了した後に所定の命令を発行するタイミングまでの第2の経過時間とに基づいて、乱数を生成する、プログラム。
【請求項20】
データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備え、外部装置が接続される情報処理装置において、前記外部装置からのデータ読み出しコマンドの受信が完了してから、前記情報処理装置から前記外部装置へのデータ送信が開始されるまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、乱数生成方法。
【請求項21】
データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備え、外部装置が接続される情報処理装置において、前記外部装置からのデータ書き込みコマンドの受信が完了してから、前記記憶部へのデータ書き込みが完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、乱数生成方法。
【請求項22】
データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備え、外部装置が接続される情報処理装置において、前記外部装置からのデータ消去コマンドの受信が完了してから、前記記憶部に記憶されているデータの消去が完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、乱数生成方法。
【請求項23】
データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備え、外部装置が接続される情報処理装置において、前記記憶部からのデータ読み出しが開始されてから、前記記憶部からのデータ読み出しが完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、乱数生成方法。
【請求項24】
データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部と、前記記憶部から読み出したデータの誤りを訂正する誤り訂正部とを備え、外部装置が接続される情報処理装置において、前記誤り訂正部が誤り訂正処理を開始してから、前記誤り訂正部が誤り訂正処理を完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、乱数生成方法。
【請求項25】
外部装置が接続される情報処理装置において、前記情報処理装置から前記外部装置へのデータ要求コマンドの送信が完了してから、前記情報処理装置が前記外部装置からのデータ受信を開始するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からのデータ受信を完了した後に所定の命令を発行するタイミングまでの第2の経過時間とに基づいて、乱数を生成する、乱数生成方法。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0008
【補正方法】削除
【補正の内容】
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0009
【補正方法】削除
【補正の内容】
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0010
【補正方法】変更
【補正の内容】
【0010】
本発明の第
1の態様に係る情報処理装置は、
外部装置が接続される情報処理装置であって、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部と、乱数生成部と、を備え、前記乱数生成部は、前記外部装置からのデータ読み出しコマンドの受信が完了してから、前記情報処理装置から前記外部装置へのデータ送信が開始されるまでの
第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成することを特徴とするものである。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0011
【補正方法】変更
【補正の内容】
【0011】
第
1の態様に係る情報処理装置によれば、乱数生成部は、外部装置からのデータ読み出しコマンドの受信が完了してから、情報処理装置から外部装置へのデータ送信が開始されるまでの
第1の経過時間
と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する。当該
第1及び第2の経過時間は様々に変動するため、当該
第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0012
【補正方法】変更
【補正の内容】
【0012】
本発明の第
2の態様に係る情報処理装置は、第
1の態様に係る情報処理装置において特に、クロックを生成するクロック生成部をさらに備え、前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第1のカウンタ
及び第2のカウンタを有し、前記乱数生成部は、前記外部装置からのデータ読み出しコマンドの受信が完了してから、前記情報処理装置から前記外部装置へのデータ送信が開始されるまでの、前記第1のカウンタによるクロックのカウンタ値
である第1のカウンタ値と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの、前記第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成することを特徴とするものである。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0013
【補正方法】変更
【補正の内容】
【0013】
第
2の態様に係る情報処理装置によれば、乱数生成部は、外部装置からのデータ読み出しコマンドの受信が完了してから、情報処理装置から外部装置へのデータ送信が開始されるまでの、第1のカウンタによるクロックのカウンタ値
である第1のカウンタ値と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの、第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成する。クロック周期のばらつきに起因して当該
第1及び第2のカウンタ値は変動するため、当該
第1及び第2のカウンタ値に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0014
【補正方法】変更
【補正の内容】
【0014】
本発明の第
3の態様に係る情報処理装置は、
外部装置が接続される情報処理装置であって、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部と、乱数生成部と、を備え、前記乱数生成部は、前記外部装置からのデータ書き込みコマンドの受信が完了してから、前記記憶部へのデータ書き込みが完了するまでの
第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成することを特徴とするものである。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0015
【補正方法】変更
【補正の内容】
【0015】
第
3の態様に係る情報処理装置によれば、乱数生成部は、外部装置からのデータ書き込みコマンドの受信が完了してから、記憶部へのデータ書き込みが完了するまでの
第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する。当該
第1及び第2の経過時間は様々に変動するため、当該
第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0016
【補正方法】変更
【補正の内容】
【0016】
本発明の第
4の態様に係る情報処理装置は、第
3の態様に係る情報処理装置において特に、クロックを生成するクロック生成部をさらに備え、前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする
第1のカウンタ及び第2のカウンタを有し、前記乱数生成部は、前記外部装置からのデータ書き込みコマンドの受信が完了してから、前記記憶部へのデータ書き込みが完了するまでの、
前記第1のカウンタによるクロックのカウンタ値である第1のカウンタ値と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの、前記第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成することを特徴とするものである。
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】0017
【補正方法】変更
【補正の内容】
【0017】
第
4の態様に係る情報処理装置によれば、乱数生成部は、外部装置からのデータ書き込みコマンドの受信が完了してから、記憶部へのデータ書き込みが完了するまでの、
第1のカウンタによるクロックのカウンタ値である第1のカウンタ値と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの、第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成する。クロック周期のばらつきに起因して当該
第1及び第2のカウンタ値は変動するため、当該
第1及び第2のカウンタ値に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正12】
【補正対象書類名】明細書
【補正対象項目名】0018
【補正方法】変更
【補正の内容】
【0018】
本発明の第
5の態様に係る情報処理装置は、
外部装置が接続される情報処理装置であって、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部と、乱数生成部と、を備え、前記乱数生成部は、前記外部装置からのデータ消去コマンドの受信が完了してから、前記記憶部に記憶されているデータの消去が完了するまでの
第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成することを特徴とするものである。
【手続補正13】
【補正対象書類名】明細書
【補正対象項目名】0019
【補正方法】変更
【補正の内容】
【0019】
第
5の態様に係る情報処理装置によれば、乱数生成部は、外部装置からのデータ消去コマンドの受信が完了してから、記憶部に記憶されているデータの消去が完了するまでの
第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する。当該
第1及び第2の経過時間は様々に変動するため、当該
第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正14】
【補正対象書類名】明細書
【補正対象項目名】0020
【補正方法】変更
【補正の内容】
【0020】
本発明の第
6の態様に係る情報処理装置は、第
5の態様に係る情報処理装置において特に、クロックを生成するクロック生成部をさらに備え、前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする
第1のカウンタ及び第2のカウンタを有し、前記乱数生成部は、前記外部装置からのデータ消去コマンドの受信が完了してから、前記記憶部に記憶されているデータの消去が完了するまでの、
前記第1のカウンタによるクロックのカウンタ値である第1のカウンタ値と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの、前記第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成することを特徴とするものである。
【手続補正15】
【補正対象書類名】明細書
【補正対象項目名】0021
【補正方法】変更
【補正の内容】
【0021】
第
6の態様に係る情報処理装置によれば、乱数生成部は、外部装置からのデータ消去コマンドの受信が完了してから、記憶部に記憶されているデータの消去が完了するまでの、
第1のカウンタによるクロックのカウンタ値である第1のカウンタ値と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの、第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成する。クロック周期のばらつきに起因して当該
第1及び第2のカウンタ値は変動するため、当該
第1及び第2のカウンタ値に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正16】
【補正対象書類名】明細書
【補正対象項目名】0022
【補正方法】変更
【補正の内容】
【0022】
本発明の第
7の態様に係る情報処理装置は、
外部装置が接続される情報処理装置であって、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部と、乱数生成部と、を備え、前記乱数生成部は、前記記憶部からのデータ読み出しが開始されてから、前記記憶部からのデータ読み出しが完了するまでの
第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成することを特徴とするものである。
【手続補正17】
【補正対象書類名】明細書
【補正対象項目名】0023
【補正方法】変更
【補正の内容】
【0023】
第
7の態様に係る情報処理装置によれば、乱数生成部は、記憶部からのデータ読み出しが開始されてから、記憶部からのデータ読み出しが完了するまでの
第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する。当該
第1及び第2の経過時間は様々に変動するため、当該
第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正18】
【補正対象書類名】明細書
【補正対象項目名】0024
【補正方法】変更
【補正の内容】
【0024】
本発明の第
8の態様に係る情報処理装置は、第
7の態様に係る情報処理装置において特に、クロックを生成するクロック生成部をさらに備え、前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする
第1のカウンタ及び第2のカウンタを有し、前記乱数生成部は、前記記憶部からのデータ読み出しが開始されてから、前記記憶部からのデータ読み出しが完了するまでの、
前記第1のカウンタによるクロックのカウンタ値である第1のカウンタ値と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの、前記第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成することを特徴とするものである。
【手続補正19】
【補正対象書類名】明細書
【補正対象項目名】0025
【補正方法】変更
【補正の内容】
【0025】
第
8の態様に係る情報処理装置によれば、乱数生成部は、記憶部からのデータ読み出しが開始されてから、記憶部からのデータ読み出しが完了するまでの、
第1のカウンタによるクロックのカウンタ値である第1のカウンタ値と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの、第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成する。クロック周期のばらつきに起因して当該
第1及び第2のカウンタ値は変動するため、当該
第1及び第2のカウンタ値に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正20】
【補正対象書類名】明細書
【補正対象項目名】0026
【補正方法】変更
【補正の内容】
【0026】
本発明の第
9の態様に係る情報処理装置は、
外部装置が接続される情報処理装置であって、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部と、前記記憶部から読み出したデータの誤りを訂正する誤り訂正部と、乱数生成部と、を備え、前記乱数生成部は、前記誤り訂正部が誤り訂正処理を開始してから、前記誤り訂正部が誤り訂正処理を完了するまでの
第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成することを特徴とするものである。
【手続補正21】
【補正対象書類名】明細書
【補正対象項目名】0027
【補正方法】変更
【補正の内容】
【0027】
第
9の態様に係る情報処理装置によれば、乱数生成部は、誤り訂正部が誤り訂正処理を開始してから、誤り訂正部が誤り訂正処理を完了するまでの
第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する。当該
第1及び第2の経過時間は誤り訂正数等に応じて様々に変動するため、当該
第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正22】
【補正対象書類名】明細書
【補正対象項目名】0028
【補正方法】変更
【補正の内容】
【0028】
本発明の第
10の態様に係る情報処理装置は、第
9の態様に係る情報処理装置において特に、クロックを生成するクロック生成部をさらに備え、前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする
第1のカウンタ及び第2のカウンタを有し、前記乱数生成部は、前記誤り訂正部が誤り訂正処理を開始してから、前記誤り訂正部が誤り訂正処理を完了するまでの、
前記第1のカウンタによるクロックのカウンタ値である第1のカウンタ値と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの、前記第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成することを特徴とするものである。
【手続補正23】
【補正対象書類名】明細書
【補正対象項目名】0029
【補正方法】変更
【補正の内容】
【0029】
第
10の態様に係る情報処理装置によれば、乱数生成部は、誤り訂正部が誤り訂正処理を開始してから、誤り訂正部が誤り訂正処理を完了するまでの、
第1のカウンタによるクロックのカウンタ値である第1のカウンタ値と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの、第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成する。クロック周期のばらつきに起因して当該
第1及び第2のカウンタ値は変動するため、当該
第1及び第2のカウンタ値に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正24】
【補正対象書類名】明細書
【補正対象項目名】0030
【補正方法】削除
【補正の内容】
【手続補正25】
【補正対象書類名】明細書
【補正対象項目名】0031
【補正方法】削除
【補正の内容】
【手続補正26】
【補正対象書類名】明細書
【補正対象項目名】0032
【補正方法】削除
【補正の内容】
【手続補正27】
【補正対象書類名】明細書
【補正対象項目名】0033
【補正方法】削除
【補正の内容】
【手続補正28】
【補正対象書類名】明細書
【補正対象項目名】0034
【補正方法】削除
【補正の内容】
【手続補正29】
【補正対象書類名】明細書
【補正対象項目名】0035
【補正方法】削除
【補正の内容】
【手続補正30】
【補正対象書類名】明細書
【補正対象項目名】0036
【補正方法】削除
【補正の内容】
【手続補正31】
【補正対象書類名】明細書
【補正対象項目名】0037
【補正方法】削除
【補正の内容】
【手続補正32】
【補正対象書類名】明細書
【補正対象項目名】0038
【補正方法】変更
【補正の内容】
【0038】
本発明の第
11の態様に係る情報処理装置は、
外部装置が接続される情報処理装置であって、乱数生成部を備え、前記乱数生成部は、
前記情報処理装置から前記外部装置へのデータ要求コマンドの送信が完了してから、前記情報処理装置が前記外部装置からのデータ受信を開始するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からのデータ受信を完了した後に所定の命令を発行するタイミングまでの第2の経過時間とに基づいて、乱数を生成することを特徴とするものである。
【手続補正33】
【補正対象書類名】明細書
【補正対象項目名】0039
【補正方法】変更
【補正の内容】
【0039】
第
11の態様に係る情報処理装置によれば、乱数生成部は、
情報処理装置から外部装置へのデータ要求コマンドの送信が完了してから、情報処理装置が外部装置からのデータ受信を開始するまでの第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からのデータ受信を完了した後に所定の命令を発行するタイミングまでの第2の経過時間とに基づいて、乱数を生成する。当該
第1及び第2の経過時間は様々に変動するため、当該
第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正34】
【補正対象書類名】明細書
【補正対象項目名】0040
【補正方法】変更
【補正の内容】
【0040】
本発明の第
12の態様に係る情報処理装置は、第
11の態様に係る情報処理装置において特に、クロックを生成するクロック生成部をさらに備え、前記乱数生成部は、前記クロック生成部によって生成されたクロックをカウントする第1のカウンタ
及び第2のカウンタを有し、前記乱数生成部は、前記情報処理装置から前記外部装置へのデータ要求コマンドの送信が完了してから、前記情報処理装置が前記外部装置からのデータ受信を開始するまでの、前記第1のカウンタによるクロックのカウンタ値である第1のカウンタ値と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からのデータ受信を完了した後にカウント停止命令を発行するタイミングまでの、前記第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成することを特徴とするものである。
【手続補正35】
【補正対象書類名】明細書
【補正対象項目名】0041
【補正方法】変更
【補正の内容】
【0041】
第
12の態様に係る情報処理装置によれば、乱数生成部は、
情報処理装置から外部装置へのデータ要求コマンドの送信が完了してから、情報処理装置が外部装置からのデータ受信を開始するまでの、第1のカウンタによるクロックのカウンタ値である第1のカウンタ値と、情報処理装置の起動が完了してから、情報処理装置が外部装置からのデータ受信を完了した後にカウント停止命令を発行するタイミングまでの、第2のカウンタによるクロックのカウンタ値である第2のカウンタ値とに基づいて、乱数を生成する。クロック周期のばらつきに起因して当該
第1及び第2のカウンタ値は変動するため、当該
第1及び第2のカウンタ値に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正36】
【補正対象書類名】明細書
【補正対象項目名】0042
【補正方法】削除
【補正の内容】
【手続補正37】
【補正対象書類名】明細書
【補正対象項目名】0043
【補正方法】削除
【補正の内容】
【手続補正38】
【補正対象書類名】明細書
【補正対象項目名】0044
【補正方法】削除
【補正の内容】
【手続補正39】
【補正対象書類名】明細書
【補正対象項目名】0045
【補正方法】削除
【補正の内容】
【手続補正40】
【補正対象書類名】明細書
【補正対象項目名】0046
【補正方法】削除
【補正の内容】
【手続補正41】
【補正対象書類名】明細書
【補正対象項目名】0047
【補正方法】削除
【補正の内容】
【手続補正42】
【補正対象書類名】明細書
【補正対象項目名】0048
【補正方法】変更
【補正の内容】
【0048】
本発明の第
13の態様に係る情報処理装置は、
第2、第4、第6、第8、第10、第12のいずれか一つの態様に係る情報処理装置において特に、前記クロック生成部は、前記クロックとして周波数拡散クロックを生成することを特徴とするものである。
【手続補正43】
【補正対象書類名】明細書
【補正対象項目名】0049
【補正方法】変更
【補正の内容】
【0049】
第
13の態様に係る情報処理装置によれば、クロック生成部は周波数拡散クロックを生成する。周波数拡散クロックを生成することにより、クロック周期を意図的にばらつかせることができるため、乱数生成部によって再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正44】
【補正対象書類名】明細書
【補正対象項目名】0050
【補正方法】変更
【補正の内容】
【0050】
本発明の第
14の態様に係るプログラムは、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備え
、外部装置が接続される情報処理装置に搭載されるコンピュータを、乱数生成手段として機能させるためのプログラムであって、前記乱数生成手段は、前記外部装置からのデータ読み出しコマンドの受信が完了してから、前記情報処理装置から前記外部装置へのデータ送信が開始されるまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、プログラムである。
第14の態様に係るプログラムによれば、乱数生成手段は、外部装置からのデータ読み出しコマンドの受信が完了してから、情報処理装置から外部装置へのデータ送信が開始されるまでの第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する。当該第1及び第2の経過時間は様々に変動するため、当該第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
本発明の第15の態様に係るプログラムは、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備え、外部装置が接続される情報処理装置に搭載されるコンピュータを、乱数生成手段として機能させるためのプログラムであって、前記乱数生成手段は、前記外部装置からのデータ書き込みコマンドの受信が完了してから、前記記憶部へのデータ書き込みが完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、プログラムである。
第15の態様に係るプログラムによれば、乱数生成手段は、外部装置からのデータ書き込みコマンドの受信が完了してから、記憶部へのデータ書き込みが完了するまでの第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する。当該第1及び第2の経過時間は様々に変動するため、当該第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
本発明の第16の態様に係るプログラムは、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備え、外部装置が接続される情報処理装置に搭載されるコンピュータを、乱数生成手段として機能させるためのプログラムであって、前記乱数生成手段は、前記外部装置からのデータ消去コマンドの受信が完了してから、前記記憶部に記憶されているデータの消去が完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、プログラムである。
第16の態様に係るプログラムによれば、乱数生成手段は、外部装置からのデータ消去コマンドの受信が完了してから、記憶部に記憶されているデータの消去が完了するまでの第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する。当該第1及び第2の経過時間は様々に変動するため、当該第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
本発明の第17の態様に係るプログラムは、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備え、外部装置が接続される情報処理装置に搭載されるコンピュータを、乱数生成手段として機能させるためのプログラムであって、前記乱数生成手段は、前記記憶部からのデータ読み出しが開始されてから、前記記憶部からのデータ読み出しが完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、プログラムである。
第17の態様に係るプログラムによれば、乱数生成手段は、記憶部からのデータ読み出しが開始されてから、記憶部からのデータ読み出しが完了するまでの第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する。当該第1及び第2の経過時間は様々に変動するため、当該第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
本発明の第18の態様に係るプログラムは、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部と、前記記憶部から読み出したデータの誤りを訂正する誤り訂正部とを備え、外部装置が接続される情報処理装置に搭載されるコンピュータを、乱数生成手段として機能させるためのプログラムであって、前記乱数生成手段は、前記誤り訂正部が誤り訂正処理を開始してから、前記誤り訂正部が誤り訂正処理を完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する、プログラムである。
第18の態様に係るプログラムによれば、乱数生成手段は、誤り訂正部が誤り訂正処理を開始してから、誤り訂正部が誤り訂正処理を完了するまでの第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する。当該第1及び第2の経過時間は誤り訂正数等に応じて様々に変動するため、当該第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正45】
【補正対象書類名】明細書
【補正対象項目名】0051
【補正方法】削除
【補正の内容】
【手続補正46】
【補正対象書類名】明細書
【補正対象項目名】0052
【補正方法】削除
【補正の内容】
【手続補正47】
【補正対象書類名】明細書
【補正対象項目名】0053
【補正方法】削除
【補正の内容】
【手続補正48】
【補正対象書類名】明細書
【補正対象項目名】0054
【補正方法】変更
【補正の内容】
【0054】
本発明の第
19の態様に係るプログラムは、外部装置が接続される情報処理装置に搭載されるコンピュータを、
乱数生成手段として機能させるためのプログラムであって、前記乱数生成手段は、前記情報処理装置から前記外部装置へのデータ要求コマンドの送信が完了してから、前記情報処理装置が前記外部装置からのデータ受信を開始するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からのデータ受信を完了した後に所定の命令を発行するタイミングまでの第2の経過時間とに基づいて、乱数を生成する、プログラムである。
【手続補正49】
【補正対象書類名】明細書
【補正対象項目名】0055
【補正方法】変更
【補正の内容】
【0055】
第
19の態様に係るプログラムによれば、
乱数生成手段は、情報処理装置から外部装置へのデータ要求コマンドの送信が完了してから、情報処理装置が外部装置からのデータ受信を開始するまでの第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からのデータ受信を完了した後に所定の命令を発行するタイミングまでの第2の経過時間とに基づいて、乱数を生成する。当該第1及び第2の経過時間は様々に変動するため、当該第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正50】
【補正対象書類名】明細書
【補正対象項目名】0056
【補正方法】削除
【補正の内容】
【手続補正51】
【補正対象書類名】明細書
【補正対象項目名】0057
【補正方法】削除
【補正の内容】
【手続補正52】
【補正対象書類名】明細書
【補正対象項目名】0058
【補正方法】変更
【補正の内容】
【0058】
本発明の第
20の態様に係る乱数生成方法は、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備え、
外部装置が接続される情報処理装置において、前記外部装置からのデータ読み出しコマンドの受信が完了してから、前記情報処理装置から前記外部装置へのデータ送信が開始されるまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成することを特徴とするものである。
第20の態様に係る乱数生成方法によれば、外部装置からのデータ読み出しコマンドの受信が完了してから、情報処理装置から外部装置へのデータ送信が開始されるまでの第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する。当該第1及び第2の経過時間は様々に変動するため、当該第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
本発明の第21の態様に係る乱数生成方法は、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備え、外部装置が接続される情報処理装置において、前記外部装置からのデータ書き込みコマンドの受信が完了してから、前記記憶部へのデータ書き込みが完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成することを特徴とするものである。
第21の態様に係る乱数生成方法によれば、外部装置からのデータ書き込みコマンドの受信が完了してから、記憶部へのデータ書き込みが完了するまでの第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する。当該第1及び第2の経過時間は様々に変動するため、当該第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
本発明の第22の態様に係る乱数生成方法は、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備え、外部装置が接続される情報処理装置において、前記外部装置からのデータ消去コマンドの受信が完了してから、前記記憶部に記憶されているデータの消去が完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成することを特徴とするものである。
第22の態様に係る乱数生成方法によれば、外部装置からのデータ消去コマンドの受信が完了してから、記憶部に記憶されているデータの消去が完了するまでの第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する。当該第1及び第2の経過時間は様々に変動するため、当該第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
本発明の第23の態様に係る乱数生成方法は、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部とを備え、外部装置が接続される情報処理装置において、前記記憶部からのデータ読み出しが開始されてから、前記記憶部からのデータ読み出しが完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成することを特徴とするものである。
第23の態様に係る乱数生成方法によれば、記憶部からのデータ読み出しが開始されてから、記憶部からのデータ読み出しが完了するまでの第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する。当該第1及び第2の経過時間は様々に変動するため、当該第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
本発明の第24の態様に係る乱数生成方法は、データが記憶された記憶部と、前記記憶部へのアクセスを制御する制御部と、前記記憶部から読み出したデータの誤りを訂正する誤り訂正部とを備え、外部装置が接続される情報処理装置において、前記誤り訂正部が誤り訂正処理を開始してから、前記誤り訂正部が誤り訂正処理を完了するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成することを特徴とするものである。
第24の態様に係る乱数生成方法によれば、誤り訂正部が誤り訂正処理を開始してから、誤り訂正部が誤り訂正処理を完了するまでの第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からの乱数要求コマンドの受信を開始するまでの第2の経過時間とに基づいて、乱数を生成する。当該第1及び第2の経過時間は誤り訂正数等に応じて様々に変動するため、当該第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正53】
【補正対象書類名】明細書
【補正対象項目名】0059
【補正方法】削除
【補正の内容】
【手続補正54】
【補正対象書類名】明細書
【補正対象項目名】0060
【補正方法】削除
【補正の内容】
【手続補正55】
【補正対象書類名】明細書
【補正対象項目名】0061
【補正方法】削除
【補正の内容】
【手続補正56】
【補正対象書類名】明細書
【補正対象項目名】0062
【補正方法】変更
【補正の内容】
【0062】
本発明の第
25の態様に係る乱数生成方法は、
外部装置が接続される情報処理装置において、前記情報処理装置から前記外部装置へのデータ要求コマンドの送信が完了してから、前記情報処理装置が前記外部装置からのデータ受信を開始するまでの第1の経過時間と、前記情報処理装置の起動が完了してから、前記情報処理装置が前記外部装置からのデータ受信を完了した後に所定の命令を発行するタイミングまでの第2の経過時間とに基づいて、乱数を生成することを特徴とするものである。
【手続補正57】
【補正対象書類名】明細書
【補正対象項目名】0063
【補正方法】変更
【補正の内容】
【0063】
第
25の態様に係る乱数生成方法によれば、
情報処理装置から外部装置へのデータ要求コマンドの送信が完了してから、情報処理装置が外部装置からのデータ受信を開始するまでの第1の経過時間と、情報処理装置の起動が完了してから、情報処理装置が外部装置からのデータ受信を完了した後に所定の命令を発行するタイミングまでの第2の経過時間とに基づいて、乱数を生成する。当該第1及び第2の経過時間は様々に変動するため、当該第1及び第2の経過時間に基づいて乱数を生成することにより、再現不可能性を有する乱数を簡易に生成することが可能となる。
【手続補正58】
【補正対象書類名】明細書
【補正対象項目名】0064
【補正方法】削除
【補正の内容】
【手続補正59】
【補正対象書類名】明細書
【補正対象項目名】0065
【補正方法】削除
【補正の内容】
【手続補正60】
【補正対象書類名】明細書
【補正対象項目名】0098
【補正方法】変更
【補正の内容】
【0098】
また、本実施の形態に係るメモリ装置3によれば、乱数生成部52は、メモリ装置3の起動が完了した時点(時刻T1)から、メモリ装置3がホスト装置2からの乱数要求コマンドV1の受信を開始する時点(時刻T12)までの、カウンタ71(第
2のカウンタ)によるクロックK2のカウンタ値に基づいて、乱数W1を生成する。温度や電源電圧等の周辺環境に起因してクロックK2のクロック周期はばらつき、また、クロックK2のクロック周期のばらつきに起因してカウンタ71のカウンタ値は変動する。従って、当該カウンタ値に基づいて乱数W1を生成することにより、再現不可能性を有する乱数W1を簡易に生成することが可能となる。
【手続補正61】
【補正対象書類名】明細書
【補正対象項目名】0103
【補正方法】変更
【補正の内容】
【0103】
具体的には、乱数生成部52は、ホスト装置2からの書き込みコマンドの受信が完了した時点から、メモリコア44の指定アドレスへのデータDの書き込み処理が完了した時点までの、カウンタ72(第
1のカウンタ)によるクロックK2のカウンタ値に基づいて、乱数W1を生成する。
【手続補正62】
【補正対象書類名】明細書
【補正対象項目名】0108
【補正方法】変更
【補正の内容】
【0108】
具体的には、乱数生成部52は、ホスト装置2からの消去コマンドの受信が完了した時点から、メモリコア44からのデータDの消去処理が完了した時点までの、カウンタ72(第
1のカウンタ)によるクロックK2のカウンタ値に基づいて、乱数W1を生成する。
【手続補正63】
【補正対象書類名】明細書
【補正対象項目名】0113
【補正方法】変更
【補正の内容】
【0113】
具体的には、乱数生成部52は、メモリアレイ44からのデータD1,D2の読み出しが開始された時点(時刻T3,T8)から、メモリアレイ44からのデータD1,D2の読み出しが完了した時点(時刻T4,T9)までの、カウンタ72(第
1のカウンタ)によるクロックK2のカウンタ値に基づいて、乱数W1を生成する。
【手続補正64】
【補正対象書類名】明細書
【補正対象項目名】0118
【補正方法】変更
【補正の内容】
【0118】
具体的には、乱数生成部52は、誤り訂正回路61がデータD1,D2に対する誤り訂正処理を開始した時点(時刻T4,T9)から、誤り訂正回路61が当該誤り訂正処理を完了した時点(時刻T5,T10)までの、カウンタ72(第
1のカウンタ)によるクロックK2のカウンタ値に基づいて、乱数W1を生成する。
【手続補正65】
【補正対象書類名】明細書
【補正対象項目名】0140
【補正方法】変更
【補正の内容】
【0140】
また、本実施の形態に係るホスト装置2によれば、乱数生成部34は、ホスト装置2の起動が完了してから、ホスト装置2からメモリ装置3へのアクセス動作が完了した後の所定のタイミングまでの、カウンタ81(第
2のカウンタ)によるクロックK1のカウンタ値に基づいて、乱数W2を生成する。温度や電源電圧等の周辺環境に起因してクロックK1のクロック周期はばらつき、また、クロックK1のクロック周期のばらつきに起因してカウンタ81のカウンタ値は変動する。従って、当該カウンタ値に基づいて乱数W2を生成することにより、再現不可能性を有する乱数W2を簡易に生成することが可能となる。
【手続補正66】
【補正対象書類名】明細書
【補正対象項目名】0143
【補正方法】変更
【補正の内容】
【0143】
また、本実施の形態に係るホスト装置2によれば、乱数生成部34は、ホスト装置2からメモリ装置3への読み出しコマンドC1,C2の送信が完了した時点(T3,T8)から、ホスト装置2がメモリ装置3からのデータD1,D2の受信を開始する時点(T5,T10)までの、カウンタ82(第
1のカウンタ)によるクロックK1のカウンタ値に基づいて、乱数W2を生成する。温度や電源電圧等の周辺環境に起因してクロックK1のクロック周期はばらつき、また、クロックK1のクロック周期のばらつきに起因してカウンタ82のカウンタ値は変動する。従って、当該カウンタ値に基づいて乱数W2を生成することにより、再現不可能性を有する乱数W2を簡易に生成することが可能となる。