(57)【特許請求の範囲】
【請求項１】
記憶装置に格納されたプログラムを実行する情報処理装置であって、
記憶装置が着脱自在に装着されるインターフェース手段と、
前記インターフェース手段に装着された記憶装置に格納されているプログラムを実行する制御手段と、
前記プログラムと独立して動作し、前記インターフェース手段に装着された記憶装置からのデータの読み出し時間に基づいて前記記憶装置の真偽を判定する認証手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記認証手段は、
認証用の基準値を格納する記憶部と、
前記インターフェース手段に装着された記憶装置に対して読み出し要求を行い、前記読み出し要求に応じて前記記憶装置から得られた値を格納する読み出し部と、
前記読み出し部に格納されている値を、前記読み出し部による読み出し要求がされてから所定の時間内に認証値として取得し、前記記憶部に記憶されている基準値と前記認証値とを比較する比較手段と、
を備え、
前記認証手段は、前記比較手段の比較結果に応じて前記記憶装置の真偽を判定することを特徴とする情報処理装置。
【請求項３】
請求項１または２に記載の情報処理装置であって、
前記認証手段は、前記インターフェース手段に装着された記憶装置の真偽を判定する論理回路を備えることを特徴とする情報処理装置。
【請求項４】
請求項１または２に記載の情報処理装置であって、
前記認証手段は、前記インターフェース手段に装着された記憶装置の真偽を判定するための認証プログラムを格納するＲＯＭを備えることを特徴とする情報処理装置。
【請求項５】
装着された記憶装置に格納されたプログラムを情報処理装置において実行する情報処理システムであって、
前記情報処理装置は、
記憶装置が着脱自在に装着されるインターフェース手段と、
前記インターフェース手段に装着された記憶装置に格納されているプログラムを実行する制御手段と、
前記プログラムと独立して動作し、前記インターフェース手段に装着された記憶装置からのデータの読み出し時間に基づいて前記記憶装置の真偽を判定する認証手段と、
を備えることを特徴とする情報処理システム。
【請求項６】
プログラムを格納した記憶装置が着脱自在に装着される情報処理装置において前記記憶装置を認証する認証方法であって、
(a) 前記情報処理装置が備える記憶部に認証用の基準値を格納する工程と、
(b) 前記プログラムから独立して動作する読み取り部によって前記記憶装置からの値の読み出し要求を行う工程と、
(c) 前記(b)工程において前記記憶装置から読み出された値を受信バッファに格納する工程と、
(d) 前記(b)工程における読み出し要求を行ってから所定の時間内に、前記受信バッファに格納されている値を認証値として取得する工程と、
(e) 前記(a)工程において前記記憶部に格納された基準値と前記(d)工程において取得された認証値とを比較する工程と、
(f) 前記(e)工程における比較結果に基づいて前記記憶装置の真偽を判定する工程と、
を有し、
前記所定の時間は前記記憶装置が真である場合の読み出し時間に応じて決定されることを特徴とする認証方法。
【請求項７】
請求項６に記載の認証方法であって、
(g) 少なくとも前記(b)工程を実行する前に、前記記憶装置の固定位置に固定値を格納する工程をさらに有し、
前記(a)工程において前記記憶部は前記固定値と同じ値を前記基準値として格納し、
前記(b)工程における読み出し要求は前記(g)工程において前記固定値を格納した前記固定位置から値を読み出す要求であることを特徴とする認証方法。
【請求項８】
請求項６に記載の認証方法であって、
前記(a)工程は、
(a-1) 前記記憶装置の所定の位置に格納された値を読み出す工程と、
(a-2) 前記(a-1)工程において読み出された値を基準値として前記記憶部に格納する工程と、
を有し、
前記(b)工程における読み出し部は、前記所定の位置からの読み出し要求を行うことを特徴とする認証方法。
【請求項９】
請求項８に記載の認証方法であって、
前記(a-1)工程における値の読み出しは、前記読み出し部によって実行され、
前記(a-1)工程において読み出された値は、前記読み出し部による読み出し要求を行ってから前記所定の時間内に前記記憶装置から得られた値であることを特徴とする認証方法。
【請求項１０】
請求項６に記載の認証方法であって、
(h) 前記記憶装置から値の読み出しが行われたことを検出して、そのとき読み出された値と前記値の前記記憶装置における格納位置とを取得する工程をさらに有し、
前記(a)工程における前記記憶部は、前記(h)工程において取得された値を前記基準値として格納し、
前記(b)工程における前記読み出し部は、前記(h)工程において取得された格納位置からの読み出し要求を行うことを特徴とする認証方法。
【請求項１１】
請求項８ないし１０のいずれかに記載の認証方法であって、
前記(b)工程は、前記(a)工程が実行された後において、前記記憶装置から読み出される値が格納される受信バッファと前記記憶部とが参照され、前記受信バッファに格納されている値と、前記記憶部に格納されている基準値とが不一致であることが確認されてから実行されることを特徴とする認証方法。
【請求項１２】
請求項６ないし１１のいずれかに記載の認証方法であって、
(i) 前記所定の時間を変更する工程をさらに有し、
前記(b)工程は、前記(i)工程が実行されるたびに実行されることを特徴とする認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、着脱自在に装着される記憶装置を情報処理装置において認証する技術に関する。
【背景技術】
【０００２】
ゲーム機本体（情報処理装置）にゲームプログラムを格納したメモリカード（記憶装置）を装着して、ゲーム機本体において当該ゲームプログラムを実行するような情報処理システムが知られている。このようなシステムでは、不正にコピーされたゲームプログラムが不正に使用されることを防止する必要がある。したがって、従来より、様々なセキュリティ技術が提案されており、例えば、そのようなセキュリティ技術が特許文献１に記載されている。
【０００３】
【特許文献１】特開２００７−１３３８９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、一般に、ソフトウェアで実現されるセキュリティ機能は、ゲームプログラムとともに容易にコピーされ回避されるという問題があり、ハードウェアで実現されるセキュリティ機能は、システム全体のコスト上昇を招くという問題があった。
【０００５】
本発明は、上記課題に鑑みなされたものであり、システム全体のコスト上昇を抑制しつつ、記憶装置の認証を行うことを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するため、請求項１の発明は、記憶装置に格納されたプログラムを実行する情報処理装置であって、記憶装置が着脱自在に装着されるインターフェース手段と、前記インターフェース手段に装着された記憶装置に格納されているプログラムを実行する制御手段と、前記プログラムと独立して動作し、前記インターフェース手段に装着された記憶装置からのデータの読み出し時間に基づいて前記記憶装置の真偽を判定する認証手段とを備えることを特徴とする。
【０００７】
また、請求項２の発明は、請求項１の発明に係る情報処理装置であって、前記認証手段は、認証用の基準値を格納する記憶部と、前記インターフェース手段に装着された記憶装置に対して読み出し要求を行い、前記読み出し要求に応じて前記記憶装置から得られた値を格納する読み出し部と、前記読み出し部に格納されている値を、前記読み出し部による読み出し要求がされてから所定の時間内に認証値として取得し、前記記憶部に記憶されている基準値と前記認証値とを比較する比較手段とを備え、前記認証手段は、前記比較手段の比較結果に応じて前記記憶装置の真偽を判定することを特徴とする。
【０００８】
また、請求項３の発明は、請求項１または２の発明に係る情報処理装置であって、前記認証手段は、前記インターフェース手段に装着された記憶装置の真偽を判定する論理回路を備えることを特徴とする。
【０００９】
また、請求項４の発明は、請求項１または２の発明に係る情報処理装置であって、前記認証手段は、前記インターフェース手段に装着された記憶装置の真偽を判定するための認証プログラムを格納するＲＯＭを備えることを特徴とする。
【００１０】
また、請求項５の発明は、装着された記憶装置に格納されたプログラムを情報処理装置において実行する情報処理システムであって、前記情報処理装置は、記憶装置が着脱自在に装着されるインターフェース手段と、前記インターフェース手段に装着された記憶装置に格納されているプログラムを実行する制御手段と、前記プログラムと独立して動作し、前記インターフェース手段に装着された記憶装置からのデータの読み出し時間に基づいて前記記憶装置の真偽を判定する認証手段とを備えることを特徴とする。
【００１１】
また、請求項６の発明は、プログラムを格納した記憶装置が着脱自在に装着される情報処理装置において前記記憶装置を認証する認証方法であって、(a)前記情報処理装置が備える記憶部に認証用の基準値を格納する工程と、(b)前記プログラムから独立して動作する読み取り部によって前記記憶装置からの値の読み出し要求を行う工程と、(c)前記(b)工程において前記記憶装置から読み出された値を受信バッファに格納する工程と、(d)前記(b)工程における読み出し要求を行ってから所定の時間内に、前記受信バッファに格納されている値を認証値として取得する工程と、(e)前記(a)工程において前記記憶部に格納された基準値と前記(d)工程において取得された認証値とを比較する工程と、(f)前記(e)工程における比較結果に基づいて前記記憶装置の真偽を判定する工程とを有し、前記所定の時間は前記記憶装置が真である場合の読み出し時間に応じて決定されることを特徴とする。
【００１２】
また、請求項７の発明は、請求項６の発明に係る認証方法であって、(g)少なくとも前記(b)工程を実行する前に、前記記憶装置の固定位置に固定値を格納する工程をさらに有し、前記(a)工程において前記記憶部は前記固定値と同じ値を前記基準値として格納し、前記(b)工程における読み出し要求は前記(g)工程において前記固定値を格納した前記固定位置から値を読み出す要求であることを特徴とする。
【００１３】
また、請求項８の発明は、請求項６の発明に係る認証方法であって、前記(a)工程は、(a-1)前記記憶装置の所定の位置に格納された値を読み出す工程と、(a-2)前記(a-1)工程において読み出された値を基準値として前記記憶部に格納する工程とを有し、前記(b)工程における読み出し部は、前記所定の位置からの読み出し要求を行うことを特徴とする。
【００１４】
また、請求項９の発明は、請求項８の発明に係る認証方法であって、前記(a-1)工程における値の読み出しは、前記読み出し部によって実行され、前記(a-1)工程において読み出された値は、前記読み出し部による読み出し要求を行ってから前記所定の時間内に前記記憶装置から得られた値であることを特徴とする。
【００１５】
また、請求項１０の発明は、請求項６の発明に係る認証方法であって、(h)前記記憶装置から値の読み出しが行われたことを検出して、そのとき読み出された値と前記値の前記記憶装置における格納位置とを取得する工程をさらに有し、前記(a)工程における前記記憶部は、前記(h)工程において取得された値を前記基準値として格納し、前記(b)工程における前記読み出し部は、前記(h)工程において取得された格納位置からの読み出し要求を行うことを特徴とする。
【００１６】
また、請求項１１の発明は、請求項８ないし１０のいずれかの発明に係る認証方法であって、前記(b)工程は、前記(a)工程が実行された後において、前記記憶装置から読み出される値が格納される受信バッファと前記記憶部とが参照され、前記受信バッファに格納されている値と、前記記憶部に格納されている基準値とが不一致であることが確認されてから実行されることを特徴とする。
【００１７】
また、請求項１２の発明は、請求項６ないし１１のいずれかの発明に係る認証方法であって、(i)前記所定の時間を変更する工程をさらに有し、前記(b)工程は、前記(i)工程が実行されるたびに実行されることを特徴とする。
【発明の効果】
【００１８】
請求項１ないし５に記載の発明では、記憶装置が着脱自在に装着されるインターフェース手段と、インターフェース手段に装着された記憶装置に格納されているプログラムを実行する制御手段と、プログラムと独立して動作し、インターフェース手段に装着された記憶装置からのデータの読み出し時間に基づいて記憶装置の真偽を判定する認証手段とを備えることにより、認証を容易に実現できる。
【００１９】
請求項３に記載の発明では、インターフェース手段に装着された記憶装置の真偽を判定する論理回路を備えることにより、記憶装置との独立性が高く、改変される危険性も低いため、セキュリティが向上する。
【００２０】
請求項４に記載の発明では、インターフェース手段に装着された記憶装置の真偽を判定するための認証プログラムを格納するＲＯＭを備えることにより、記憶装置のプログラムとの独立を確保しつつ、回路で実現する場合に比べてコストを抑制することができる。
【００２１】
請求項６ないし１２に記載の発明では、情報処理装置が備える記憶部に認証用の基準値を格納する工程と、プログラムから独立して動作する読み取り部によって記憶装置からの値の読み出し要求を行う工程と、記憶装置から読み出された値を受信バッファに格納する工程と、読み出し要求を行ってから所定の時間内に、受信バッファに格納されている値を認証値として取得する工程と、記憶部に格納された基準値と取得された認証値とを比較する工程と、比較結果に基づいて記憶装置の真偽を判定する工程とを有し、所定の時間は記憶装置が真である場合の読み出し時間に応じて決定されることにより、コストを抑制しつつ、認証を行うことができる。
【００２２】
請求項７に記載の発明では、少なくとも認証を実行する前に、記憶装置の固定位置に固定値を格納するとともに、記憶部は固定値と同じ値を基準値として格納する。そして、認証のための読み出し要求は固定値を格納した固定位置から値を読み出す要求とすることにより、認証のための読み出しを行うタイミングにかかわらず、一回読み出すだけで、真偽判定が可能である。
【００２３】
請求項８に記載の発明では、記憶装置の所定の位置に格納された値を読み出し、読み出された値を基準値として記憶部に格納し、当該所定の位置からの読み出し要求により取得された値と基準値とを比較することにより認証を行うことにより、記憶装置および情報処理装置に共通の固定値を予め格納しておく必要がない。
【００２４】
請求項１０に記載の発明では、記憶装置から値の読み出しが行われたことを検出して、そのとき読み出された値と当該値の記憶装置における格納位置とを取得し、取得した値を基準値として格納するとともに、取得された格納位置からの読み出し要求により認証のための認証値となる値を取得することにより、認証のための読み出しを一回行うだけで認証が可能である。また、記憶装置および情報処理装置に共通の固定値を予め格納しておく必要がない。
【００２５】
請求項１１に記載の発明では、基準値の取得が実行された後において、記憶装置から読み出される値が格納される受信バッファと記憶部とが参照され、受信バッファに格納されている値と、記憶部に格納されている基準値とが不一致であることが確認されてから認証を実行することにより、受信バッファに格納されている値がクリアされているか否かを確認してから認証を行うため、誤って認証に成功することが防止される。したがって、セキュリティレベルが向上する。
【００２６】
請求項１２に記載の発明では、所定の時間を変更する工程をさらに有し、当該所定の時間の変更が実行されるたびに認証を行うことにより、記憶装置のレイテンシを検出することができ、認証の確実性が向上する。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の好適な実施の形態について、添付の図面を参照しつつ、詳細に説明する。
【００２８】
＜１．  第１の実施の形態＞
図１は、本発明に係る情報処理システム１００を示す図である。図１に示すように、情報処理システム１００は情報処理装置１および記憶装置７を備え、情報処理装置１に装着された記憶装置７に格納されたプログラム３を、情報処理装置１において実行するシステムとして構成されている。
【００２９】
なお、図１に示す記憶装置８は、情報処理システム１００における正規品である記憶装置７を模した模倣品（不正規品あるいは非ライセンス品）であり、記憶装置７に格納されているプログラム３に相当するプログラム９を格納している。詳細は後述するが、情報処理システム１００は、正規品である記憶装置７と、不正規品である記憶装置８とを見分けて（真偽を判定して）、情報処理装置１がプログラム９を実行することのないように構成されている。
【００３０】
また、記憶装置７の模倣品として製造される記憶装置８は、情報処理装置１に装着可能となることを意図してその形状等が設計されている。以下の説明において、記憶装置２とは、情報処理装置１に装着されている記憶装置７または記憶装置８であって、記憶装置７であるか記憶装置８であるかが未だ判定されていないもの（真偽不明の状態のもの）を指すものとする。
【００３１】
また、図１において詳細を図示していないが、記憶装置７は、プログラム３を格納する記憶部と、記憶部へのアクセスを制御する制御部と、記憶部から読み出された値が一時的に格納されるバッファとを備えている。
【００３２】
記憶装置７の制御部は、情報処理装置１から読み取りコマンドを受信すると、記憶部の指定位置（読み取りコマンドに含まれるアドレス値によって指定される位置）に格納されている値をバッファに格納する。そして、当該バッファに格納された値が、記憶装置７から読み出された値として情報処理装置１に転送される。
【００３３】
記憶装置７の記憶部を構成する不揮発性の記憶素子は、情報処理システム１００が保証する速度で読み出し可能な記憶素子である。以下の説明では、記憶装置７のレイテンシを「時間Ｔ」とする。
【００３４】
一方、不正規品である記憶装置８もプログラム９を格納する記憶部と、記憶部へのアクセスを制御する制御部と、記憶部から読み出された値が一時的に格納されるバッファとを備えている。しかし、記憶装置８では、記憶部を構成する不揮発性の記憶素子として、安価な記憶素子が採用されている場合が多い。このような安価な記憶素子を用いた記憶装置８は、アクセス速度が遅い等、記憶装置７に比べてハードウェア性能が劣るものである。以下の説明では、記憶装置８のレイテンシを「時間ＴＸ」とし、Ｔ＜ＴＸであるとして説明する。
【００３５】
図２は、第１の実施の形態における情報処理装置１の構成を示す図である。図２に示すように、情報処理装置１は、制御部１０、操作部１１、表示部１２、インターフェース部１３および認証部１４を備え、これらの構成がバス配線１９を介して互いに接続されている。このような構成により、情報処理装置１は、一般的なコンピュータとしての機能を有している。
【００３６】
なお、情報処理装置１は、図２に示す構成の他に、大容量のデータを記憶するハードディスクや、音声を再生するスピーカ、紙媒体にデータを印刷するプリンタ等の各種ハードウェアを備えていてもよい。すなわち、情報処理装置１は、プログラム３あるいはプログラム４を実行することによって提供されるアプリケーションを実現するためのハードウェアを適宜備えている。
【００３７】
制御部１０は、各種データの演算を行うＣＰＵ１５と、プログラム４が格納されたＲＯＭ１６と、ＣＰＵ１５の一時的なワーキングエリアとして使用されるＲＡＭ１７とを備えている。図２において、便宜上、ＣＰＵ１５、ＲＯＭ１６およびＲＡＭ１７はいずれも１つの装置から構成されているかのように図示しているが、もちろん複数の装置が協働してそれぞれを構成していてもよい。
【００３８】
ＣＰＵ１５は、ＲＯＭ１６に格納されたプログラム４を実行するとともに、インターフェース部１３に装着された記憶装置７に格納されているプログラム３を実行する。
【００３９】
ＲＯＭ１６は、読み取り専用の不揮発性の記憶素子からなる記憶装置であり、先述のように、プログラム４が格納される。プログラム４としては、主にＢＩＯＳやＯＳ等の基本プログラムが該当するが、もちろんこれに限定されるものではなく、アプリケーションプログラムが含まれていてもよい。本実施の形態における情報処理システム１００では、プログラム４は情報処理装置１側において提供されるプログラムであり、例えば、記憶装置２から転送されるプログラム（プログラム３またはプログラム９）を含まないものとして説明する。
【００４０】
ＲＡＭ１７は、比較的高速にデータの読み書きが可能な揮発性の記憶素子からなる記憶装置であり、ＣＰＵ１５によってアクセスされる。制御部１０がプログラム３を実行する際には、プログラム３の一部又は全部がＲＡＭ１７にロードされ、ＣＰＵ１５によって実行される。
【００４１】
本実施の形態における情報処理システム１００では、記憶装置７が情報処理装置１に装着されたときに（より詳しくはロード処理が実行されたときに）、プログラム３の一部であるライブラリ（関数）が情報処理装置１によって読み出されＲＡＭ１７に格納される。そして、ＲＡＭ１７上に読み出されたライブラリをＣＰＵ１５が使用しつつ、適宜、記憶装置７にアクセスすることによって、プログラム３が実行される。
【００４２】
このようなアーキテクチャを採用することにより、情報処理装置１は、プログラム３の全部を記憶装置７に格納したままで実行する場合に比べて、記憶装置７へのアクセス回数を減らすことができ、プログラム３の実行速度を向上させることが可能となる。また、プログラム３に特化したライブラリを準備してプログラム３自体に含めておくことによって、プログラム３の実行効率が向上する。
【００４３】
記憶装置８も、記憶装置７と同様に、情報処理装置１からのロード要求に応じて、格納しているプログラム９の一部であるライブラリを情報処理装置１に転送する。
【００４４】
先述のように、記憶装置８の記憶部は、記憶装置７の記憶部よりもアクセス速度が遅い記憶素子で構成されている。以下、情報処理装置１から要求されたデータを記憶装置８が読み出す場合を例に、アクセス速度の遅い記憶素子を用いた記憶装置８が情報処理装置１において使用可能となる仕組みについて説明する。
【００４５】
記憶装置８では、情報処理装置１からの読み出し要求に応じて制御部が記憶部からデータを読み出そうとしても、所定の時間内（情報処理装置１にデータを渡すときまで）に、記憶装置８のバッファに所望のデータを格納することができない。そして、記憶装置８のバッファへの格納が間に合わなかった場合、たまたまそのとき記憶装置８のバッファ上に格納されていた残余のデータが情報処理装置１に渡される。この残余のデータは、当該読み出し要求以前の処理で読み出されたデータであるため、一般に当該読み出し要求によって要求されているデータではない。したがって、記憶装置８に対して通常の読み出し要求を実行すると、情報処理装置１は誤ったデータを取得することとなり、所望したデータを得ることはできない。
【００４６】
しかし、情報処理装置１から記憶装置８に対する読み出し要求は、記憶装置７に対する読み出し要求と同様に、予め情報処理装置１に転送されたライブラリを実行する形で実行される。
【００４７】
そこで、プログラム９のライブラリでは、プログラム３における読み出し要求（通常の読み出し要求）を行う前段階として、当該読み出し要求で所望されるデータを予め記憶装置８のバッファに読み出しておく処理を実行するように、プログラム３のライブラリを改変している。以下、通常の読み出し処理の前段階として実行される処理を「プレ読み出し処理」と称する。
【００４８】
より具体的には、記憶装置７からの読み出し処理を行うライブラリ（プログラム３におけるライブラリ）は、プログラム９では、記憶装置８に対するプレ読み出し処理と、それに続く読み出し処理とを行うライブラリとして書き換えられている。すなわち、当該ライブラリに、プレ読み出し処理を行う部分が、いわゆるパッチとして当てられたように、プログラム３が改変されている。
【００４９】
情報処理システム１００は、記憶装置２の装着後、瞬時に認証が完了するわけではない。そのため、記憶装置８に格納されているプログラム９も、記憶装置８が情報処理装置１に装着されたときに、先述のように、その一部がＲＡＭ１７にロードされる。したがって、記憶装置７ではなく記憶装置８が装着された場合であっても、記憶装置８であることが判明するまでの間、制御部１０（ＣＰＵ１５）は、情報処理システム１００の設計者の意に反して、プログラム９の一部を実行することとなる。
【００５０】
装着されている記憶装置２が記憶装置８であると認識していない情報処理装置１の制御部１０が、ＲＡＭ１７に格納されているライブラリ（記憶装置８由来のライブラリ）を実行すると、まず、記憶装置８に対して、プレ読み出し処理を実行させる独自のコマンド（以下、「プレ読み出しコマンド」と称する）を発行することとなる。
【００５１】
なお、このプレ読み出しコマンドには、引き続き実行される読み出し処理において所望されるデータの記憶装置８におけるアドレスが含まれている。このアドレスは、本来、記憶装置７のアドレスとして与えられるものであるが、本実施の形態では、記憶装置８が記憶装置７と同じアドレスに同じデータを格納するように設計されているものと想定しているため、そのままの値を用いる例で説明する。ただし、記憶装置８におけるデータの格納状況に応じて、例えば、記憶装置７におけるアドレスをオフセットさせて用いていてもよい。
【００５２】
情報処理装置１からプレ読み出しコマンドを受信した記憶装置８の制御部は、当該コマンドに含まれるアドレスに基づいて、所望のデータを記憶装置８の記憶部から読み出して、記憶装置８のバッファに格納する。
【００５３】
この間、情報処理装置１は、プレ読み出し処理に続く読み出し処理を開始することなく待機している。このような情報処理装置１側の待機時間は、プレ読み出し処理に、記憶装置８側の読み出し完了を確認する処理（例えばレディ・ビジー処理等）を含めるか、あるいは、記憶装置８のレイテンシ（時間ＴＸ）に応じて充分なウェイト処理を含める等によって容易に設けることができる。
【００５４】
そして、記憶装置８のバッファに所望のデータが格納された時点で、引き続き、通常の読み出し処理が実行される。すなわち、情報処理装置１から読み出しコマンドが発行され、記憶装置８の制御部が当該コマンドに応じて、指定されたアドレスに格納されているデータを記憶部から読み出してバッファに格納する。
【００５５】
先述のように、読み出し要求に対して、情報処理装置１には記憶装置８のバッファに格納されているデータが渡される。通常の読み出し要求がされたとき、既に実行されたプレ読み出し処理によって記憶装置８のバッファには所望のデータが格納されている。したがって、バッファに格納されているデータが、プレ読み出し処理で格納された残余のデータであるか、その後の読み出し処理で格納された所望のデータであるかに関わらず、結局、情報処理装置１は所望のデータを得ることができるのである。
【００５６】
このように、記憶装置８は、プログラム３を改変したプログラム９を予め情報処理装置１に転送することにより、本来の情報処理装置１が保証するレイテンシ内でアクセスを完了する必要がないように構成されている。これによって、不正規品である記憶装置８の製造業者は、記憶装置８の記憶部としてアクセス速度の遅い記憶素子を採用して、製造コストを抑制している。
【００５７】
図２に戻って、操作部１１は、ボタン、キーボード、マウス、コントローラ、ジョイスティック、タッチパネル等の各種ハードウェアから構成されており、ユーザが情報処理装置１に対して指示を入力するために使用される。ユーザが操作部１１を操作することにより指示を入力した際には、操作部１１からバス配線１９を介して制御部１０（ＣＰＵ１５）に対してハードウェア割り込み信号が伝達される。
【００５８】
表示部１２は、例えば、液晶ディスプレイやＣＲＴ、ランプ、ＬＥＤ等であり、制御部１０からの制御信号に応じて、各種データや状態を表示する。なお、表示部１２としては、情報処理装置１にケーブル等で外部接続されるテレビ受像器であってもよい。
【００５９】
インターフェース部１３は、記憶装置７と接続されるコネクタ等から構成され、当該コネクタには記憶装置７が着脱自在に装着される。すなわち、インターフェース部１３に記憶装置７が装着されることによって、情報処理装置１は記憶装置７との間でデータ通信が可能となり、情報処理装置１は記憶装置７を自らが備える記憶装置として使用することが可能となる。
【００６０】
また、情報処理装置１に装着可能となることを意図し、記憶装置７の模倣品として製造される記憶装置８も同様にインターフェース部１３に適合するように製造される。したがって、先述のように、インターフェース部１３には記憶装置８を装着することも可能である。
【００６１】
図３は、第１の実施の形態における認証部１４を示す図である。本実施の形態における認証部１４は、ＲＯＭ１４０、タイミングジェネレータ１４１、遅延回路１４２、読み取り部１４３および比較回路１４４を備える。また、認証部１４は、制御部１０とは別に設けられる独立したハードウェア（論理回路）として構成されており、プログラム３（プログラム９）と独立して動作する。そして、認証部１４は、インターフェース部１３に装着された記憶装置２からのデータの読み出し時間に基づいて記憶装置２の真偽（記憶装置７であるか記憶装置８であるかの別）を判定する機能を有する。
【００６２】
ＲＯＭ１４０には認証用の基準値１４５が格納される。本実施の形態における基準値１４５は、例えば情報処理装置１の製造段階で予めＲＯＭ１４０に格納される。すなわち、本実施の形態における基準値１４５は、情報処理装置１において一定の値（固定値）である。ＲＯＭ１４０に格納された基準値１４５は、必要に応じて比較回路１４４によって読み出される。
【００６３】
タイミングジェネレータ１４１は、コマンド発行回路１４６を駆動するタイミングを決定して、コマンド発行回路１４６にタイミング信号を出力する機能を有する。言い換えれば、タイミングジェネレータ１４１は、コマンド発行回路１４６に対して、コマンド発行の許可を与える。
【００６４】
タイミングジェネレータ１４１からコマンド発行回路１４６に向けて出力されたタイミング信号は、同時に遅延回路１４２および受信バッファ１４７にも伝達される。タイミングジェネレータ１４１がタイミング信号を出力するタイミングを決定する手法は後述する。
【００６５】
遅延回路１４２は、タイミングジェネレータ１４１から伝達されるタイミング信号を、所定の時間ｔだけ遅延させて比較回路１４４に向けて出力する回路である。以下、遅延回路１４２から比較回路１４４に向けて出力される信号を「遅延信号」と称する。
【００６６】
本実施の形態における時間ｔは、記憶装置７のレイテンシ（時間Ｔ）に応じて予め決定されている固定の値である。時間ｔは、情報処理システム１００の保証値として決定される値であるが、例えば記憶装置７のレイテンシが２３０マイクロ秒程度であれば、時間ｔはそれよりも大きい値（ただし大きすぎない値であって、例えば２５０マイクロ秒程度）に決定される。
【００６７】
なお、時間ｔは、記憶装置８のレイテンシ（時間ＴＸ）よりも小さい値であることが好ましい。時間ＴＸは不正規品である記憶装置８の性能に関するパラメータであるから、厳密には不知の値である。しかし、一般に供給されている安価な記憶素子を用いた場合、あるいは市場に流通している模倣品（記憶装置８）に基づいて、予め、ある程度の数値範囲として予測することは可能である。したがって、本実施の形態における情報処理システム１００では、Ｔ＜ｔ＜ＴＸとなるように、時間ｔを決定する。
【００６８】
読み取り部１４３は、コマンド発行回路１４６および受信バッファ１４７から構成される。
【００６９】
コマンド発行回路１４６は、タイミングジェネレータ１４１から伝達されるタイミング信号に応じて、インターフェース部１３に装着されている記憶装置２に対して読み取り要求を行う（読み取りコマンドを発行する）。
【００７０】
受信バッファ１４７は、コマンド発行回路１４６が発行した読み取りコマンドに対するレスポンス（記憶装置２から読み出された値）を受信値１４８として格納する。
【００７１】
本実施の形態における読み取り部１４３において、受信バッファ１４７に格納されている値は、タイミングジェネレータ１４１から伝達されるタイミング信号によって初期値にクリアされる。この初期値は記憶装置２から受信される値ではないが、便宜上、この初期値も含めて「受信値１４８」と称する。受信値１４８の初期値は、ＲＯＭ１４０に格納される基準値１４５とは異なる値として予め設定されているものとする。
【００７２】
このように本実施の形態における情報処理装置１では、コマンド発行回路１４６が読み取りコマンドを発行すると同時に受信バッファ１４７に格納されている受信値１４８が初期値にクリアされる。そして、当該読み取りコマンドに応じて何らかの値が記憶装置２から得られると、得られた値によって初期値が上書きされ、新たな受信値１４８として格納される。
【００７３】
情報処理装置１は、制御部１０とは別に、独立して動作する認証部１４を備えていることにより、制御部１０からの直接的な制御を受けることなく、記憶装置２からの値（受信値１４８として格納する値）の読み出しを行う。
【００７４】
なお、認証部１４は、受信値１４８となる値を記憶装置２から読み出す機能を最小限備えていればよいので、コマンド発行回路１４６は読み取りコマンドのみを発行し、その他のコマンド（例えば書き込みコマンドや消去コマンド等）を発行する必要はない。また、本実施の形態では、受信値１４８となる値の記憶装置２における格納位置（アドレス）は予め決められているので、読み取りコマンドにセットされるアドレスは固定の値でよい。すなわち、コマンド発行回路１４６は任意の信号を出力する機能を備えている必要はなく、タイミング信号が入力されたタイミングに応じて、固定の出力信号を、インターフェース部１３を介して、記憶装置２に向けて送信する回路として構成されていれば充分である。
【００７５】
比較回路１４４は、遅延回路１４２から遅延信号が伝達されると、ＲＯＭ１４０から基準値１４５を取得するとともに、受信バッファ１４７から受信値１４８を認証値として取得する。そして、取得した基準値１４５と認証値とを比較して、これらが一致したか否かを示す信号（以下、「判定信号」と称する）を制御部１０に出力する。
【００７６】
詳細は後述するが、本実施の形態における情報処理システム１００において、基準値１４５と認証値とが一致する場合とは、記憶装置２が正規品の記憶装置７であると判定されたことを意味する。一方、基準値１４５と認証値とが一致しない場合とは、記憶装置２が不正規品の記憶装置８であると判定されたことを意味する。すなわち、認証部１４は、ＲＯＭ１４０に記憶されている基準値１４５と認証値とを比較し、その比較結果に基づいて記憶装置２の真偽を判定する機能を有している。
【００７７】
以上が情報処理システム１００の構成および機能の説明である。
【００７８】
次に、プログラム３（あるいはプログラム９）を格納した記憶装置２が着脱自在に装着される情報処理装置１において記憶装置２を認証する認証方法について説明する。
【００７９】
図４は、第１の実施の形態における認証方法を示す流れ図である。
【００８０】
なお、第１の実施の形態では、図４に示す各工程が実行される前に、情報処理装置１が備えるＲＯＭ１４０に認証用の基準値１４５を格納する工程と、記憶装置７の固定位置に基準値１４５と同じ値（固定値）を格納する工程とが既に実行されているものとする。例えば、これらの値は、これらの装置が出荷される際に既に格納されているものとする。また、記憶装置７に格納されている固定値が誤って書き換えられると、正常な認証が行えなくなるため、固定値は書き換え不可（読み取り専用）とされていることが好ましい。
【００８１】
まず、情報処理装置１に電源が投入されると、情報処理装置１は制御部１０のＣＰＵ１５がＲＯＭ１６に格納されているプログラム４に従って制御を開始することによって動作を開始する。
【００８２】
このようにして動作を開始した情報処理装置１は、インターフェース部１３を監視することによって記憶装置２が検出されたか否かを監視する（ステップＳ１）。また、認証部１４による認証を行うか否かについても監視する（ステップＳ３）。そして、これらを監視しつつ、必要なプログラムを実行する（ステップＳ１１）。
【００８３】
なお、ステップＳ１１におけるプログラムは、情報処理装置１においてそのとき実行可能な全てのプログラムを含むものであり、プログラム４に限られるものではなく、プログラム３やプログラム９が実行される場合もある。
【００８４】
情報処理装置１の動作が開始され、ステップＳ１１によってプログラムが順次実行されているときに、記憶装置２が検出されると、制御部１０はステップＳ１においてＹｅｓと判定し、初期設定（ステップＳ２）を実行する。
【００８５】
なお、ステップＳ１においてＹｅｓと判定されるのは、情報処理装置１の電源投入時に既に記憶装置２が装着されていたときと、記憶装置２が装着されていない状態から新たに記憶装置２が装着されたときである。すなわち、装着された状態の記憶装置２に対して、１回だけステップＳ２が実行される。
【００８６】
ステップＳ２の初期設定では、情報処理装置１の制御部１０が、インターフェース部１３に装着されている記憶装置２に対して、格納しているプログラムをロードするように要求する。装着されている記憶装置２が記憶装置７である場合には、このロード要求に応じて、記憶装置７からプログラム３のロードが行われ、プログラム３の一部を構成するライブラリが制御部１０のＲＡＭ１７に転送される。一方、装着されている記憶装置２が記憶装置８である場合にも、このロード要求に応じて、記憶装置８からプログラム９のロードが行われ、プログラム９の一部を構成するライブラリが制御部１０のＲＡＭ１７に転送される。
【００８７】
このように初期設定（ステップＳ２）が実行されることによって、必要なライブラリがＲＡＭ１７に転送される。そして、以後、これらのライブラリをＣＰＵ１５が使用することにより、プログラム３（あるいはプログラム９）が実行可能となる。
【００８８】
情報処理装置１の動作が開始され、ステップＳ１１によってプログラムが順次実行されているときに、所定の条件が満たされると、認証部１４がステップＳ３においてＹｅｓと判定する。本実施の形態では、当該条件の判定を認証部１４のタイミングジェネレータ１４１が行う。
【００８９】
ここで、認証は、記憶装置２が装着されていない状態で行う必要はないので、本実施の形態におけるタイミングジェネレータ１４１が認証を行うと判定する条件（ステップＳ３においてＹｅｓと判定する条件）の１つは、記憶装置２がインターフェース部１３に装着されていることである。
【００９０】
また、認証は、一旦装着された記憶装置２に対して、少なくとも１回行うべきであり、かつ、定期的に複数回行ってもよい。本実施の形態におけるタイミングジェネレータ１４１が認証を行うと判定する条件の１つは、ステップＳ２が実行された後であって、かつ、前回の認証から所定の時間（予めセットされた時間）が経過したことである。ただし、認証を行った回数情報を保持しておき、予め決められた回数の認証をクリアした場合には、以後、当該記憶装置２に対する認証を行わないように構成してもよい。
【００９１】
また、認証は、制御部１０によるプログラム３の実行を妨害しないタイミングで行うことが好ましい。特に、認証部１４による認証は記憶装置２に対するアクセスを伴うため、制御部１０によるアクセスと認証部１４によるアクセスとが干渉しないように実行する必要がある。したがって、本実施の形態におけるタイミングジェネレータ１４１が認証を行うと判定する条件の１つは、制御部１０が記憶装置２にアクセスしていないことである。そして、制御部１０が記憶装置２にアクセスしていないタイミングは、タイミングジェネレータ１４１がバス配線１９上の各種信号を監視することにより検出可能である。
【００９２】
本実施の形態では、タイミングジェネレータ１４１が制御部１０に対してハードウェア割り込み信号を送信することによって、いわば制御部１０に対して認証を行うための許可を求める。これに対して制御部１０から許可信号が得られた場合に、タイミングジェネレータ１４１は、制御部１０が記憶装置２にアクセスしていないと判定する。
【００９３】
すなわち、本実施の形態では、インターフェース部１３に記憶装置２が装着されており、装着されている記憶装置２に対してステップＳ２が実行された後において、所定の時間が経過するたびにタイミングジェネレータ１４１が制御部１０に対してハードウェア割り込み信号を送信する。そして、当該ハードウェア割り込み信号に対して制御部１０から許可信号が送信された場合に、タイミングジェネレータ１４１は認証を行う（ステップＳ３においてＹｅｓ）と判定する。
【００９４】
なお、制御部１０において、情報処理装置１が備えるハードウェア（操作部１１や認証部１４）からのハードウェア割り込み信号に対する処理は、通常、情報処理装置１のＢＩＯＳやＯＳ（すなわちプログラム４）に基づいて行われる。したがって、認証部１４がハードウェア割り込み信号によって、制御部１０に対して認証を行う許可を求めるように構成したとしても、記憶装置８のプログラム９による影響（例えば、いかなる場合も認証を許可しない等の制御）を受ける危険性は低い。
【００９５】
図４に戻って、タイミングジェネレータ１４１が認証を行うと判定すると（ステップＳ３においてＹｅｓ）、タイミングジェネレータ１４１が、読み取り部１４３（コマンド発行回路１４６および受信バッファ１４７）と遅延回路１４２にタイミング信号を出力する。
【００９６】
このタイミング信号に応じて、受信バッファ１４７に格納されている値が初期値にクリアされる（受信値１４８が初期化される）。また、コマンド発行回路１４６が、記憶装置２の固定位置に格納されている固定値を読み取るための、読み取りコマンドを記憶装置２に向けて発行することにより、読み取り部１４３が読み出し要求を行う（ステップＳ４）。すなわち、情報処理装置１は、プログラム３（プログラム９）から独立して動作する読み取り部１４３によって記憶装置２からの値の読み出し要求を行う。
【００９７】
読み取り部１４３による読み出し要求は、制御部１０による読み出し要求と異なるところはない。したがって、この読み取りコマンドを受信した記憶装置２の制御部は、当該コマンドに含まれるアドレス（固定位置）からデータ（固定値）を読み出して、記憶装置２のバッファに格納する。
【００９８】
認証方法としては、情報処理装置と記憶装置との間で、共通のパスワード（固定値）を記憶しておいて照合する方法が広く提案されている。しかし、パスワードも他のデータ（プログラム本体）と同じく情報であるため、記憶装置においてプログラムとパスワードとを同等に格納していれば、プログラムをコピーするのと同じ要領でパスワードもコピーされてしまうおそれが高い。このような不正コピーを防止しようとすれば、プログラムとは別に、パスワードをより高度にガードする仕組みが記憶装置に必要となり、正規品の記憶装置におけるコスト上昇を招くこととなる。しかも、例え、パスワードを何らかの方法でガードしていたとしても、一旦、ガードが破られ、パスワードがコピーされると、その後は、まったく不正規品を区別することができなくなるという問題もある。
【００９９】
したがって、プログラム３を模しているプログラム９には、固定値も含まれている（コピーされている）危険性が高く、そのような場合には、記憶装置２に固定値が格納されているか否かだけでは、記憶装置７と記憶装置８とを区別することはできない。本実施の形態における情報処理システム１００は、記憶装置８の固定位置にも基準値１４５と同じ値（固定値）が格納されているものとして以下の処理を行う。
【０１００】
情報処理装置１の認証部１４は、遅延回路１４２がタイミング信号を遅延させることによって時間ｔが経過するまで待機しつつ（ステップＳ７）、その間に、記憶装置２から固定値を受信したか否かを監視する（ステップＳ５）。時間ｔ内に、ステップＳ４における読み出し要求に対する値を記憶装置２から受信すると、その値が受信値１４８として受信バッファ１４７に格納される（ステップＳ６）。
【０１０１】
記憶装置２として、正規品の記憶装置７が装着されていた場合、時間Ｔ＜時間ｔであるから、記憶装置７は読み出し部１４３による読み出し要求に対する値を時間ｔ内に記憶部から読み出してバッファに格納することが可能である。したがって、記憶装置２として、正規品の記憶装置７が装着されていた場合には、読み取り部１４３による読み出し要求によって要求された値が、ステップＳ６によって正しくバッファに格納される。すなわち、記憶装置２のレイテンシが時間ｔ内であれば、所望した固定値が受信値１４８として格納される。
【０１０２】
一方、記憶装置２として、不正規品の記憶装置８が装着されていた場合、時間ｔ＜時間ＴＸであるから、記憶装置８は読み出し部１４３による読み出し要求に対する値を時間ｔ内に読み出してバッファに格納することができない。また、認証部１４は記憶装置２から転送されたライブラリから独立して動作しているため、例え記憶装置８が装着されている場合でも、ステップＳ４における読み出し要求の前に、プレ読み出し処理を行うことができない。したがって、記憶装置８は、例え固定値を正確にコピーして格納していたとしても、読み取り部１４３から所望されたときに、当該固定値をバッファに格納する処理が間に合わず、かつ、予め格納しておくこともできない。したがって、記憶装置８は、読み取り部１４３に対して、値の保証されない、バッファ上の残余のデータを受け渡すこととなり、これが受信バッファ１４７に受信値１４８として格納される。すなわち、記憶装置２のレイテンシが時間ｔ内でなければ、所望した固定値が受信値１４８として格納されない。
【０１０３】
なお、本実施の形態は、情報処理装置１と記憶装置７との間では、レディ・ビジー機能を実現していない。したがって、認証部１４と模倣品である記憶装置８との間でもレディ・ビジー処理は行われず、記憶装置８がレディ状態になったか否かにかかわらず、記憶装置８のバッファから情報処理装置１側に残余のデータ（固定値と異なる値）が取得される。一方、このような機能を持たせていた場合、時間ｔ内に記憶装置８がレディとなることはないので、時間ｔ内に記憶装置８からデータを受信することはなくなる。その場合でも、情報処理装置１側の受信バッファ１４７には、受信値１４８として初期値が格納されているため、やはり、固定値とは異なる値が受信値１４８となる。
【０１０４】
時間ｔが経過して（ステップＳ７においてＹｅｓ）、遅延回路１４２が遅延信号を比較回路１４４に向けて出力すると、比較回路１４４が基準値１４５をＲＯＭ１４０から取得する。また、その時点で受信バッファ１４７に格納されている受信値１４８を認証値として受信バッファ１４７から取得する（ステップＳ８）。すなわち、情報処理装置１は、ステップＳ４における読み出し要求を行ってから所定の時間内に、受信バッファ１４７に格納されている受信値１４８を認証値として取得する。
【０１０５】
次に、比較回路１４４によって取得した基準値１４５と取得した認証値とを比較し（ステップＳ９）、比較回路１４４からの出力信号（比較結果）に応じて、装着されている記憶装置２が正規品（記憶装置７）であるか、不正規品（記憶装置８）であるかを判定する（ステップＳ１０）。
【０１０６】
装着されている記憶装置２が記憶装置７である場合、時間ｔ内に固定値が得られ、この固定値が受信値１４８として格納されている。この場合、ステップＳ８において取得される認証値は固定値であるから、ＲＯＭ１４０に格納されていた基準値１４５と一致する。すなわち、比較回路１４４からの出力信号が、基準値１４５と認証値との一致を示している場合、ステップＳ１０ではＹｅｓと判定される。この場合、情報処理システム１００は処理を終了することなく、プログラムの実行を継続する（ステップＳ１１）。
【０１０７】
一方、装着されている記憶装置２が記憶装置８である場合、時間ｔ内に固定値を得ることができず、この固定値と異なる値が受信値１４８として格納されている。したがって、取得された認証値は固定値とは異なるので、ＲＯＭ１４０に格納されていた基準値１４５と一致しない。すなわち、比較回路１４４からの出力信号が、基準値１４５と認証値との不一致を示している場合、ステップＳ１０ではＮｏと判定される。この場合、情報処理システム１００は処理を終了し、プログラム９の実行を停止する。
【０１０８】
以上のように、本実施の形態における情報処理装置１は、記憶装置２が着脱自在に装着されるインターフェース部１３と、インターフェース部１３に装着された記憶装置２に格納されているプログラム３，９を実行する制御部１０と、プログラム３，９と独立して動作し、インターフェース部１３に装着された記憶装置２からのデータの読み出し時間に基づいて記憶装置２の真偽を判定する認証部１４とを備えることにより、正規品である記憶装置７のハードウェア構成を変更することなく、記憶装置２のハードウェア特性に基づく認証を容易に実現できる。
【０１０９】
また、認証部１４は、インターフェース部１３に装着された記憶装置２の真偽を判定する比較回路１４４を備えることにより、記憶装置２との独立性が高く、改変される危険性も低いため、セキュリティが向上する。
【０１１０】
なお、先述のように、本実施の形態では認証を実行する条件が整う限り、認証部１４による認証が何回でも行われる（特に回数制限は設けていない）。一方で、図４から明らかなように、基準値１４５と認証値とが一致しない事態（認証失敗）が１回でも発生すると、情報処理システム１００における処理を終了する。しかし、認証失敗の回数制限を予め設けておき、当該回数制限を超えるまでは処理を続行するように構成してもよい。また、この場合、回数制限以内であっても、警告等を表示するようにしてもよい。
【０１１１】
また、記憶装置７に格納される固定値はプログラム３，４が実行される過程で書き換えられることのない値であればよい。したがって、認証のためだけに格納される値でなくてもよく、例えば、ＣＰＵ１５によって実行される指令の一部であってもよい。
【０１１２】
＜２．  第２の実施の形態＞
第１の実施の形態における認証部１４は、主に回路（ハードウェア）で構成されていたが、その一部をプログラムで実現することも可能である。
【０１１３】
図５は、第２の実施の形態における情報処理装置１ａの認証部１４ａを示す図である。また、図６は、第２の実施の形態における認証部１４ａが備える機能ブロックをデータの流れとともに示す図である。
【０１１４】
なお、第２の実施の形態における情報処理装置１ａは、認証部１４の代わりに認証部１４ａを備えている点を除いて、ほぼ第１の実施の形態における情報処理装置１と同様の構成を備えている。以下の説明では、第１の実施の形態と同様の構成については同符号を付し、適宜説明を省略する。
【０１１５】
認証部１４ａは、図５に示すように、基準値１４５を格納するＲＯＭ１４０ａと、ＣＰＵ１５０と、ＲＡＭ１５１とを備えている。
【０１１６】
ＲＯＭ１４０ａは、第１の実施の形態におけるＲＯＭ１４０と同様に基準値１４５を格納する。また、インターフェース部１３に装着された記憶装置２の真偽を判定するためのプログラム１４９を格納する。
【０１１７】
ＣＰＵ１５０は、ＲＡＭ１５１を一時的なワーキングエリアとして使用しつつ、主にプログラム１４９に従って動作する。図６に示す、タイミング決定部１５２、読み取り部１５３、比較部１５４および判定部１５５は、ＣＰＵ１５０がプログラム１４９に従って（プログラム３，９から独立して）動作することにより実現される機能ブロックである。
【０１１８】
タイミング決定部１５２は、制御部１０との間でデータのやり取りを行いつつ、認証部１４ａによる認証を行うタイミングを決定し、読み取り部１５３および比較部１５４に伝達する機能を有する。
【０１１９】
読み取り部１５３は、タイミング決定部１５２から認証部１４ａによる認証を行うタイミングが通知されると、読み取りコマンドを生成して記憶装置２に向けて送信する。読み取り部１５３から発行される読み取りコマンドは、記憶装置２の固定位置から固定値を読み出すためのコマンドである。また、当該読み取りコマンドに応じて記憶装置２から得られた値に基づいて認証値情報１５６を生成し、ＲＡＭ１５１に転送する。
【０１２０】
比較部１５４は、タイミング決定部１５２から認証部１４ａによる認証を行うタイミングが通知されると、時間ｔだけ待機した後、基準値１４５をＲＯＭ１４０ａから取得するとともに、その時点で認証値情報１５６が生成されていればＲＡＭ１５１から認証値情報１５６を取得する。さらに、比較部１５４は、基準値１４５と認証値情報１５６の値とを比較し、その比較結果（一致・不一致）に基づいて比較結果情報１５７を生成し、ＲＡＭ１５１に転送する。
【０１２１】
判定部１５５は、比較結果情報１５７に基づいて、記憶装置２の真偽を判定し、その判定結果を制御部１０に伝達する。
【０１２２】
なお、第２の実施の形態における認証部１４ａによる認証方法は、第１の実施の形態における認証方法と同様に実現できるため、説明を省略する。
【０１２３】
このように第２の実施の形態における情報処理システム１００は、情報処理装置１ａを備えることにより、第１の実施の形態における情報処理システム１００と同様の効果を得ることができる。
【０１２４】
また、情報処理装置１ａは、インターフェース部１３に装着された記憶装置２の真偽を判定するためのプログラム１４９を記憶するＲＯＭ１４０ａを備えることにより、記憶装置２のプログラム３，９との独立を確保しつつ、認証を行うことができる。すなわち、第１の実施の形態における情報処理装置１のように認証部１４をハードウェア回路で実現する場合に比べて、コストを抑制できる。
【０１２５】
＜３．  第３の実施の形態＞
第１の実施の形態では、制御部１０のハードウェア構成と、認証部１４のハードウェア構成とが別々（独立）に設けられていた。しかし、記憶装置８に格納されているプログラム９（ＲＡＭ１７に転送されるライブラリ）の影響を受けることなく認証が行われるならば、これらの構成は一部兼用されてもよい。
【０１２６】
図７は、第３の実施の形態における情報処理装置１ｂの制御部１０ｂおよび認証部１４ｂを示す図である。
【０１２７】
第３の実施の形態における情報処理装置１ｂは、制御部１０の代わりに制御部１０ｂを備えるとともに、認証部１４の代わりに認証部１４ｂを備える点が、第１の実施の形態における情報処理装置１と異なっている。以下の説明では、第１の実施の形態と同様の構成については同符号を付し、適宜説明を省略する。
【０１２８】
制御部１０ｂは、ＣＰＵ１５の他に、ＲＯＭ１６ｂ、ＲＡＭ１７ｂおよびコマンド発行回路１８を備えている。ＲＯＭ１６ｂは第１の実施の形態におけるＲＯＭ１６と同様にプログラム４を格納するとともに、基準値１４５を格納している。
【０１２９】
また、ＲＡＭ１７ｂは、第１の実施の形態におけるＲＡＭ１７の機能に加えて、記憶装置２から受信した値を受信値１４８として格納する機能を有している。すなわち、ＲＡＭ１７ｂは、第１の実施の形態における受信バッファ１４７の機能を有している。
【０１３０】
コマンド発行回路１８は、ＣＰＵ１５からの制御に応じて、ＣＰＵ１５によって指定されたコマンドを生成し、当該コマンドを示すコマンド信号をインターフェース部１３に伝達する。すなわち、本実施の形態におけるＣＰＵ１５はコマンド信号の生成を行わず、コマンド信号を生成するための専用のハードウェアであるコマンド発行回路１８を制御してコマンド信号を生成させる。このように、専用のハードウェアでコマンド信号を生成するこにより、情報処理装置１ｂはコマンド信号を発行する速度が向上する。
【０１３１】
また、コマンド発行回路１８は、認証部１４ｂ（タイミングジェネレータ１４１ｂ）から指定されたコマンドを、ＣＰＵ１５に指定された場合と同様に生成し、当該コマンドを示すコマンド信号をインターフェース部１３に伝達する機能も有している。ただし、認証部１４ｂがコマンド発行回路１８に指定するコマンドは読み取りコマンドに限定されており、かつ、当該読み取りコマンドに含まれるアドレス（値を読み出す記憶装置２の位置を示す）は、第１の実施の形態と同様に「固定位置（固定値が格納されている位置）」に限定されている。
【０１３２】
なお、コマンド発行回路１８からインターフェース部１３に伝達されたコマンド信号は記憶装置２に向けて送信される。そして、記憶装置２の制御部によって解析され、当該コマンドが記憶装置２において実行される。
【０１３３】
本実施の形態における認証部１４ｂは、タイミングジェネレータ１４１ｂ、遅延回路１４２および比較回路１４４ｂを備えている。
【０１３４】
タイミングジェネレータ１４１ｂは、第１の実施の形態におけるタイミングジェネレータ１４１と同様に、認証を行うタイミングを決定して、タイミング信号を遅延回路１４２に伝達する。また、タイミング信号を出力するのと同時に、制御部１０ｂのコマンド発行回路１８に、記憶装置２の固定位置に格納されている固定値を読み出すためのコマンドを発行するように、指定信号を伝達する。この指定信号には、発行するべきコマンドが読み取りコマンドであることを示す信号と、読み出す固定値の格納位置（固定位置）を示す信号とが含まれている。
【０１３５】
遅延回路１４２は、タイミングジェネレータ１４１ｂからのタイミング信号を時間ｔだけ遅延させてから、遅延信号を比較回路１４４ｂに伝達する。
【０１３６】
比較回路１４４ｂは、遅延回路１４２から遅延信号が入力されると、ＲＯＭ１６ｂから基準値１４５を取得するとともに、ＲＡＭ１７ｂから受信値１４８を認証値として取得する。そして、取得した基準値１４５と認証値とを比較し、比較結果をＣＰＵ１５に伝達する。
【０１３７】
なお、第３の実施の形態における情報処理装置１ｂによる認証方法は、第１の実施の形態における認証方法と同様に実現できるため、説明を省略する。
【０１３８】
以上のように、第３の実施の形態における情報処理装置１ｂのように、制御部１０ｂが備えるＲＯＭ１６ｂ、ＲＡＭ１７ｂおよびコマンド発行回路１８を、第１の実施の形態におけるＲＯＭ１４０、読み取り部１４３（コマンド発行回路１４６および受信バッファ１４７）と同様に使用することによって、第１の実施の形態と同様の効果を得ることができる。
【０１３９】
情報処理システム１００として、情報処理装置が専用のゲーム機本体であり、記憶装置が当該ゲーム機本体用のゲームプログラムを格納したメモリカードである場合を想定すると、情報処理装置において最も利用頻度の高いプログラムは記憶装置に格納されていることになる。このような情報処理システム１００では、情報処理装置が汎用コンピュータであってゲームのみならず様々な情報を処理する場合に比べて、記憶装置へのアクセス頻度が高く、記憶装置へのコマンドの発行頻度が高いという事情がある。
【０１４０】
このようなゲーム機本体では、頻度の高い処理（記憶装置へのアクセス処理）を高速化させるために、専用のコマンド発行回路を備えた構成が採用される。したがって、情報処理装置１ｂのように、制御部１０ｂがハードウェアとしてのコマンド発行回路１８を既に備えている場合には、認証部１４ｂのように、当該コマンド発行回路１８を認証に使用してハードウェアを兼用することにより、コストを抑制することができる。すなわち、本実施の形態における情報処理装置１ｂのように構成することは、情報処理装置として専用のゲーム機本体を想定した場合に、特に効果的である。
【０１４１】
＜４．  第４の実施の形態＞
上記実施の形態における情報処理システム１００では、予め、情報処理装置１，１ａ，１ｂに基準値１４５を格納しておくとともに、記憶装置７の固定位置に基準値１４５と等しい値（固定値）を格納しておく必要があった。しかし、本発明はこのような構成に限定されるものではない。
【０１４２】
図８は、第４の実施の形態における情報処理装置１ｃの制御部１０ｃを示す図である。
【０１４３】
第４の実施の形態における情報処理装置１ｃは、制御部１０ｂの代わりに制御部１０ｃを備える点が、第３の実施の形態における情報処理装置１ｂと異なっている。以下の説明では、第３の実施の形態と同様の構成については同符号を付し、適宜説明を省略する。
【０１４４】
第４の実施の形態における制御部１０ｃは、第３の実施の形態におけるＲＯＭ１６ｂの代わりに第１の実施の形態におけるＲＯＭ１６を備えている。
【０１４５】
また、制御部１０ｃは、第３の実施の形態におけるＲＡＭ１７ｂの代わりにＲＡＭ１７ｃを備えている。制御部１０ｃでは、コマンド発行回路１８が発行した読み取りコマンドに応じて記憶装置２から受信された値が、ＲＡＭ１７ｃに受信値１４８として格納される。すなわち、ＲＡＭ１７ｃの所定の格納領域が、記憶装置２から取得されるデータ（値）の受信バッファとして使用される。さらに、ＲＡＭ１７ｃは遅延回路１４２ｃから伝達される複写信号（後述）に応じて、そのとき格納されている受信値１４８を複写して新たに基準値１４５として格納する機能も有している。
【０１４６】
認証部１４ｃのタイミングジェネレータ１４１ｃは、認証を行うか否かを判定するための所定の条件（以下、「第１条件」と称する）を検出して、第１タイミング信号を生成し、遅延回路１４２ｃに出力する。本実施の形態における第１条件は、第１の実施の形態においてタイミングジェネレータ１４１が認証を行うか否かを判定するために検出する条件と同じ条件とするが、もちろんこれに限定されるものではない。本実施の形態における第１条件は、制御部１０ｃの動作を妨害しないタイミングを決定するものであればどのような条件が選択されてもよい。
【０１４７】
また、タイミングジェネレータ１４１ｃは、比較を行うための所定の条件（以下、「第２条件」と称する）を検出して、第２タイミング信号を生成して遅延回路１４２ｃに出力する。第２条件については後述する。
【０１４８】
さらに、タイミングジェネレータ１４１ｃは、第１タイミング信号または第２タイミング信号を遅延回路１４２ｃに出力した場合には、当該出力と同時に、記憶装置２の固定位置に格納されている固定値を読み出すためのコマンドを発行するように、制御部１０ｃのコマンド発行回路１８に指定信号を伝達する。この指定信号には、発行するべきコマンドが読み取りコマンドであることを示す信号と、読み出す固定値の格納位置（固定位置）を示す信号とが含まれている。ただし、指定信号は固定の信号であり、状況に応じて変化することのない信号である。
【０１４９】
なお、本実施の形態では、タイミングジェネレータ１４１ｃが直接指定信号をコマンド発行回路１８に出力するように説明するが、例えば、タイミングジェネレータ１４１ｃが指定信号を出力するすべきタイミングだけを割り込み信号等でＣＰＵ１５に通知し、これに応じて、ＣＰＵ１５が指定信号を生成してコマンド発行回路１８に出力するように構成してもよい。ただし、この場合のＣＰＵ１５の動作は、ライブラリ（プログラム９の一部）に従って実現されるものでないことが好ましい。例えば、タイミングジェネレータ１４１ｃから通知を受けた場合には、プログラム４に含まれるライブラリによってＣＰＵ１５が指定信号を出力するように構成することが好ましい。
【０１５０】
遅延回路１４２ｃは、入力された第１タイミング信号を所定の時間ｔだけ遅延させることにより複写信号を生成し、制御部１０ｃに伝達する。先述のように、複写信号が伝達されると、制御部１０ｃのＲＡＭ１７ｃにおいて、そのときＲＡＭ１７ｃに格納されている受信値１４８が新たに基準値１４５として格納される。すなわち、詳細は後述するが、遅延回路１４２ｃが複写信号を制御部１０ｃに伝達することにより、第４の実施の形態における情報処理装置１ｃにおいて、基準値１４５を格納する工程が行われる。なお、第１タイミング信号に応じて生成される複写信号は、比較を行うための前段階として、基準値１４５を格納するタイミングを決定するための信号であるため、比較回路１４４ｂには伝達されない。
【０１５１】
また、遅延回路１４２ｃは、入力された第２タイミング信号を所定の時間ｔだけ遅延させることにより遅延信号を生成し、比較回路１４４ｂに伝達する。第２タイミング信号に応じて生成される遅延信号は、比較回路１４４ｂによる比較（認証）を実行させる信号であるため、制御部１０ｃには伝達されない。
【０１５２】
以上が第４の実施の形態における情報処理装置１ｃの構成および機能の説明である。次に、情報処理装置１ｃを用いた情報処理システム１００における認証方法を説明する。
【０１５３】
図９および図１０は、第４の実施の形態における認証方法を示す流れ図である。
【０１５４】
なお、第１の実施の形態では、図９および図１０に示す各工程が実行される前に、記憶装置７の固定位置に固定値（変更されない値であればよい）を格納する工程が既に実行されているものとする。また、図９に示すステップＳ２１，Ｓ２２，Ｓ２３，Ｓ２９の各工程は、図４に示すステップＳ１，Ｓ２，Ｓ３，Ｓ１１の各工程とほぼ同様の工程であるため、ここでは説明を省略する。
【０１５５】
第１条件が満たされたことを検出し、認証を行うと判定すると（ステップＳ２３においてＹｅｓ）、タイミングジェネレータ１４１ｃは第１タイミング信号を遅延回路１４２ｃに伝達する。また、この第１タイミング信号を出力すると同時に、タイミングジェネレータ１４１ｃは制御部１０ｃのコマンド発行回路１８に指定信号を伝達する。この指定信号に応じて、コマンド発行回路１８が記憶装置２に対して読み取りコマンドを発行することにより、読み出し要求を行う（ステップＳ２４）。
【０１５６】
ステップＳ２４において発行される読み取りコマンドには、記憶装置２において、固定値が格納された固定位置を示す情報が含まれている。したがって、この読み取りコマンドに応じて、記憶装置２の記憶部の固定位置から値（固定値）が読み出され、記憶装置２のバッファに格納され、インターフェース部１３を介してＲＡＭ１７ｃに格納される。
【０１５７】
情報処理装置１ｃの認証部１４ｃは、遅延回路１４２ｃが第１タイミング信号を遅延させることによって時間ｔが経過するまで待機しつつ（ステップＳ２７）、その間に、記憶装置２から固定値を受信したか否かを監視する（ステップＳ２５）。時間ｔ内に、ステップＳ２４における読み出し要求に対する値を記憶装置２から受信すると、その値が受信値１４８としてＲＡＭ１７ｃに格納される（ステップＳ２６）。
【０１５８】
記憶装置２として、正規品の記憶装置７が装着されていた場合、時間Ｔ＜時間ｔであるから、記憶装置７はステップＳ２４の読み出し要求に対する値を時間ｔ内に記憶部から読み出してバッファに格納することが可能である。したがって、記憶装置２として、正規品の記憶装置７が装着されていた場合には、読み出し要求によって要求された値が、ステップＳ２６によって正しくバッファに格納される。すなわち、記憶装置２のレイテンシが時間ｔ内であれば、ステップＳ２６が実行されることにより所望した固定値が受信値１４８として格納される。
【０１５９】
一方、記憶装置２として、不正規品の記憶装置８が装着されていた場合、時間ｔ＜時間ＴＸであるから、記憶装置８はステップＳ２４の読み出し要求に対する値を時間ｔ内に読み出してバッファに格納することができない。また、認証部１４ｃは記憶装置２から転送されたライブラリから独立して動作しているため、例え記憶装置８が装着されている場合でも、ステップＳ２４における読み出し要求の前に、プレ読み出し処理を行うことができない。したがって、記憶装置８は、例え固定値を正確にコピーして記憶部に格納していたとしても、当該固定値をバッファに格納する処理が間に合わず、かつ、予め格納しておくこともできない。したがって、記憶装置８は、ステップＳ２４の読み出し要求に対して、値の保証されない、バッファ上の残余のデータを受け渡すこととなり、これがＲＡＭ１７ｃに受信値１４８として格納される。すなわち、記憶装置２のレイテンシが時間ｔ内でなければ、所望した固定値が受信値１４８として格納されない。
【０１６０】
タイミングジェネレータ１４１ｃが指定信号を伝達してから時間ｔが経過すると（ステップＳ２７においてＹｅｓ）、遅延回路１４２ｃが複写信号を生成して、当該複写信号を制御部１０ｃとタイミングジェネレータ１４１ｃとに出力する。
【０１６１】
制御部１０ｃは、この複写信号に応じて、そのときＲＡＭ１７ｃに格納されている受信値１４８を、新たに基準値１４５としてＲＡＭ１７ｃに格納する（ステップＳ２８）。
【０１６２】
このように本実施の形態における情報処理システム１００では、認証を行うときには、少なくとも認証値を取得するための読み出し要求（後述するステップＳ３２）が実行される前に、ステップＳ２８によって基準値１４５の格納が行われる。
【０１６３】
なお、ステップＳ２４における読み出し要求に対して正常に読み出しが行われ、記憶装置２に格納されていた固定値が正常に受信値１４８として格納されていれば、ステップＳ２８によって基準値１４５は固定値と等しい値となる。一方、ステップＳ２４における読み出し要求に対して正常な読み出しが行われず、記憶装置２に格納されていた固定値が正常に受信値１４８として格納されていなければ、ステップＳ２８が実行されることによって基準値１４５は保証されない値（一般に固定値と異なる値）となる。
【０１６４】
複写信号を受け取ることにより、タイミングジェネレータ１４１ｃは、制御部１０ｃにおいて認証用の基準値１４５のＲＡＭ１７ｃへの格納が行われたことを検出し、比較を行うタイミングを監視する状態となる（ステップＳ３１）。
【０１６５】
なお、図示の都合上、図９および図１０では、ステップＳ２４ないしＳ２８およびステップＳ３１ないしＳ３８が実行されている間、ステップＳ２９（プログラムの実行）が実行されていないかのように示している。しかし、ステップＳ２４ないしＳ２８およびステップＳ３１ないしＳ３８の各工程は制御部１０ｃとは独立して動作する認証部１４ｃの動作であり、ステップＳ２９は制御部１０ｃの動作である。したがって、ステップＳ２４ないしＳ２８およびステップＳ３１ないしＳ３８の各工程が認証部１４ｃによって実行されている間においても、制御部１０ｃはプログラムの実行を行うことが可能である。本実施の形態では、ステップＳ２４ないしＳ２８およびステップＳ３１ないしＳ３８の各工程と、ステップＳ２９の工程とは、適宜、並行して実行されており、ステップＳ３１によって認証部１４ｃが待機状態にある間もプログラムの実行（ステップＳ２９）は行われている。
【０１６６】
情報処理システム１００では、正常に読み出しが行われなかった（読み出しが間に合わなかった）場合であっても、何らかの値が取得される。この値は、そのときたまたまバッファ等に残留していた値であり、一般に、それまでの処理で読み出された値である。したがって、基準値１４５として読み出した値（固定値とは限らない）が、ＲＡＭ１７ｃに受信値１４８として残留していたり、記憶装置２のバッファに残留している間に認証値を取得しようとすると、読み出しに失敗しているにも関わらず、認証に成功する事態を招くおそれがある。
【０１６７】
ＲＡＭ１７ｃは情報処理装置１ｃ側の構成であるため、ＲＡＭ１７ｃ上の受信値１４８は、第１の実施の形態における受信バッファ１４７のように、適当なタイミングで初期値によって上書きすることも可能である。例えば、ステップＳ２８を実行して受信値１４８を基準値１４５として格納した後に、受信値１４８を初期値で上書きしておく等が考えられる。しかし、一般に、記憶装置２のバッファ上に残留する値を情報処理装置１ｃから直接クリアすることはできない。
【０１６８】
そこで、タイミングジェネレータ１４１ｃは、制御部１０ｃがステップＳ２９を実行する過程で、これらの値が他の値で更新されるタイミングを検出してから、認証値の取得を行うようにステップＳ３１において第２条件を監視している。
【０１６９】
本実施の形態における第２条件は、ＣＰＵ１５からコマンド発行回路１８に対する読み取り要求がされたこととする。この読み取り要求はプログラム３（プログラム９）によって要求されるため正常に実行される。したがって、プログラム３（プログラム９）が所望する値（一般に固定値とは異なる値）が記憶装置２から取得され、この値に受信値１４８が更新される。またこのときには、記憶装置２のバッファにもこの値が格納されていることが期待される。
【０１７０】
なお、第２条件としては、ＲＡＭ１７ｃに格納されている受信値１４８と基準値１４５との不一致検出等を第２条件としてもよい。すなわち、現実に受信値１４８が他の値でクリアされたことを検出してから認証値の取得を行うようにしてもよい。また、詳細は省略したが、第２条件には、当然ながら、ＣＰＵ１５によるプログラムの実行を妨げないことも含まれる。
【０１７１】
ステップＳ３１によって認証部１４ｃが待機状態にあるときに、制御部１０ｃが記憶装置２に対して読み取り要求を行うと、タイミングジェネレータ１４１ｃは、第２タイミング信号を遅延回路１４２ｃに出力するとともに、指定信号をコマンド発行回路１８に出力する。この指定信号により、コマンド発行回路１８が記憶装置２に対して読み取りコマンドを発行し、固定位置に格納されている固定値の読み出し要求を行う（ステップＳ３２）。
【０１７２】
なお、ステップＳ３３ないしＳ３８の各工程は、図４に示した第１の実施の形態におけるステップＳ５ないしＳ１０の各工程とほぼ同じであるため説明を省略する。
【０１７３】
以上のように、第４の実施の形態における情報処理システム１００においても上記実施の形態と同様の効果を得ることができる。
【０１７４】
また、記憶装置２の所定の位置（固定位置）に格納された値を読み出し（ステップＳ２４）、ステップＳ２４において読み出された値を基準値１４５としてＲＡＭ１７ｃに格納する（ステップＳ２８）。そして、認証値を取得する際にも、同じく固定位置からの読み出し要求を行って（ステップＳ３２）、認証値を取得する（ステップＳ３６）。このように構成することによって、記憶装置７および情報処理装置１ｃに共通の固定値を予め格納しておく必要がない。
【０１７５】
なお、本実施の形態では、ステップＳ２３において認証を行うと判定した場合に、必ず、ステップＳ２４が実行され基準値１４５の取得が実行されるように構成した。しかし、認証を複数回行う場合（ステップＳ３７を１回実行しただけで、真偽を判定しない場合）であっても、基準値１４５の取得は一度だけで充分である。したがって、このような場合には、例えば、基準値１４５を取得する処理を初期設定（ステップＳ２２）において実行するように構成してもよい。
【０１７６】
＜５．  第５の実施の形態＞
第４の実施の形態では、基準値１４５となる値の読み出しを、独立して動作する認証部１４ｃによって実行し、これによって読み出され格納された値は、当該読み出し要求を行ってから所定の時間内に記憶装置２から得られた値である。しかし、基準値１４５は、装着されている記憶装置２が記憶装置７であるか記憶装置８であるかに関わらず、必ず、正しい固定値を読み出して格納するように構成してもよい。
【０１７７】
図１１は、第５の実施の形態における情報処理装置１ｄの認証部１４ｄを示す図である。第５の実施の形態における情報処理装置１ｄは、認証部１４ｃの代わりに認証部１４ｄを備える点が第４の実施の形態における情報処理装置１ｃと異なっている。
【０１７８】
第５の実施の形態における認証部１４ｄは、タイミングジェネレータ１４１ｄ、遅延回路１４２、比較回路１４４ｂおよびバッファ１５８を備えている。
【０１７９】
タイミングジェネレータ１４１ｄは、制御部１０ｃがプログラムを実行する過程で生じる記憶装置２への読み出し要求（読み取りコマンド）を監視し、読み取りコマンドを検出した場合には、当該読み取りコマンドに含まれるアドレス（当該読み出し要求により取得される値の格納位置）を取得してバッファ１５８にアドレス値１５９として格納する。そして、検出した読み取りコマンドに応じて、記憶装置２から得られた値を基準値１４５として格納するようにＲＡＭ１７ｃを制御する。
【０１８０】
また、タイミングジェネレータ１４１ｄは、認証を行うか否かを判定し、認証を行うと判定した場合には、タイミング信号を遅延回路１４２に出力する。なお、本実施の形態におけるタイミングジェネレータ１４１ｄは、第４の実施の形態における第２条件と同様の条件によって認証を行うか否かを判定するが、もちろんこれに限定されるものではない。
【０１８１】
さらに、タイミングジェネレータ１４１ｄは、タイミング信号を出力すると同時に、バッファ１５８に格納されているアドレス値１５９を取得して、当該アドレス値１５９で示される位置から値を読み出すよう指定信号を生成し、コマンド発行回路１８に出力する。すなわち、本実施の形態におけるタイミングジェネレータ１４１ｄは指定信号に含めるアドレスとして任意の値を指定できるように構成されている。
【０１８２】
図１１に示すように、第５の実施の形態における認証部１４ｄは、遅延回路１４２ｃの代わりに、第１および第３の実施の形態における認証部１４，１４ｂと同様の遅延回路１４２を備えている。すなわち、本実施の形態における遅延回路１４２は、タイミングジェネレータ１４１ｄからのタイミング信号を時間ｔだけ遅延させることにより遅延信号を生成し、比較回路１４４ｂに出力する。
【０１８３】
以上が本実施の形態における情報処理装置１ｄの構成および機能の説明である。次に、第５の実施の形態における情報処理システム１００の認証方法について説明する。
【０１８４】
図１２および図１３は、第５の実施の形態における認証方法を示す流れ図である。なお、図１２に示すステップＳ４１，Ｓ４２，Ｓ４７，Ｓ４８の各工程は、図９に示す第４の実施の形態におけるステップＳ２１，Ｓ２２，Ｓ２３，Ｓ２９の各工程とほぼ同じ工程であるので説明を省略する。ただし、ステップＳ４７においてＹｅｓと判定されるための条件は、後述するステップＳ４６が既に実行されていることも条件となる。
【０１８５】
認証部１４ｄ（タイミングジェネレータ１４１ｄ）が、制御部１０ｃがステップＳ４８を実行（プログラムを実行）する過程で生じる読み出し要求を検出すると、読み取りコマンドからアドレスを取得して、バッファ１５８にアドレス値１５９として格納する（ステップＳ４４）。
【０１８６】
次に、タイミングジェネレータ１４１ｄは、受信値１４８がＲＡＭ１７ｃに格納されるまで待機する（ステップＳ４５）。
【０１８７】
制御部１０ｃがプログラムを実行する過程で生じる読み出し要求に対しては、例え記憶装置８が装着されている場合であっても、当該読み出し要求によって要求された値が、当該読み出し要求によって指定されるアドレスから読み出される。したがって、記憶装置２の当該アドレスに格納されている値が受信値１４８となる。
【０１８８】
ステップＳ４３で検出した読み出し要求に対して、記憶装置２から得られた値が受信値１４８としてＲＡＭ１７ｃに格納されると、格納された受信値１４８を基準値１４５としてＲＡＭ１７ｃに新たに格納する（ステップＳ４６）。これにより、認証用の基準値１４５の格納が完了する。
【０１８９】
ステップＳ４６が完了した後、ステップＳ４７においてＹｅｓと判定されると、タイミングジェネレータ１４１ｄはタイミング信号を遅延回路１４２に出力する。これと同時に、タイミングジェネレータ１４１ｄはバッファ１５８からアドレス値１５９を取得して、指定信号を生成し、コマンド発行回路１８に出力する。この指定信号に応じて、コマンド発行回路１８が読み取りコマンドを記憶装置２に発行することにより読み出し要求を行う（ステップＳ５１）。
【０１９０】
ステップＳ５１において発行される読み取りコマンドには、基準値１４５となった値を読み出したときのアドレス値１５９が指定されているため、当該読み出し要求に対して、正常に読み出しが行われれば、基準値１４５となっている値と同じ値が記憶装置２から得られるはずである。一方、記憶装置２のレイテンシが低く、ステップＳ５１における読み出し要求に対する読み出しが間に合わなかった場合には、基準値１４５となった値を正しく読み出すことができず、基準値１４５と異なる値が受信値１４８として記憶装置２から得られるはずである。
【０１９１】
以下、ステップＳ５２ないしＳ５７の各工程は、図１０に示す第４の実施の形態におけるステップＳ３３ないしＳ３８の各工程と同様であるため説明を省略する。
【０１９２】
以上のように、第５の実施の形態における情報処理装置１ｄのように構成しても、上記実施の形態と同様の効果を得ることができる。
【０１９３】
また、本実施の形態では、基準値１４５を取得する際には、制御部１０ｃがプログラムを実行する過程で生じる読み出し要求を検出して、当該読み出し要求における受信値１４８を基準値１４５として格納しておくとともに、当該読み出し要求におけるアドレスを認証値を取得する際のアドレスとして格納しておく。これにより、第４の実施の形態における認証方法のように、認証を行うための読み出し要求（ステップＳ２４，Ｓ３２）を２回行う必要がなくなる。また、認証に用いる値の格納位置を限定する必要もない。
【０１９４】
＜６．  第６の実施の形態＞
上記実施の形態では、時間ｔ（認証のための読み取りコマンドを発行してから基準値と認証値との比較を行うまでの時間を決定する際の基準となる時間）は一定であった。しかし、認証を行うたびにこれを変更するように構成してもよい。
【０１９５】
第６の実施の形態における情報処理装置１は、基準値１４５と認証値との比較結果と、このときの時間ｔとを関連付けて認証履歴情報として保存する。そして、認証を行うたびに、認証履歴情報を参照しつつ、時間ｔを変更する。すなわち、第６の実施の形態における情報処理システム１００では、基準値１４５と認証値とが不一致であっても、直ちに、記憶装置２が記憶装置８であると判定することはない。
【０１９６】
例えば、時間ｔの初期値を、時間ｔ＜時間Ｔを満たす値から認証を開始し、認証を行うたびに、順次、所定値Δｔだけ時間ｔの値を増加させる。このように構成すると、記憶装置２のレイテンシ（時間τ）＜時間ｔとなった時点で、基準値１４５と認証値とが一致するようになる。
【０１９７】
すなわち、第６の実施の形態における情報処理装置１は、時間ｔを変更することによって記憶装置２のレイテンシ（時間τ）を検出する機能を有する。そして、τ≒Ｔであれば、装着されている記憶装置２が正規品の記憶装置７であると判定する。一方、τ≠Ｔであれば、装着されている記憶装置２が不正規品の記憶装置８であると判定する。
【０１９８】
上記実施の形態における情報処理装置１では、記憶装置８のレイテンシ（時間ＴＸ）をある程度、予測して時間ｔを決定する必要があった。しかし、第６の実施の形態における情報処理装置１は、不正業者によって製造される記憶装置８のレイテンシが不明であっても、時間ｔを変更することによって、記憶装置７と記憶装置８との性能差を検出して、これらを見分ける（認証する）ことが可能である。
【０１９９】
＜７．  変形例＞
以上、本発明の実施の形態について説明してきたが、本発明は上記実施の形態に限定されるものではなく様々な変形が可能である。
【０２００】
例えば、第２の実施の形態における認証部１４ａは、制御部１０とハードウェアが兼用されてもよい。すなわち、プログラム４がマイクロプログラムとしてのプログラム１４９を含んでおり、ＣＰＵ１５が、ＲＡＭ１７を一時的なワーキングエリアとして使用しつつ、ＲＯＭ１６に格納されたプログラム４（プログラム１４９）に従って動作することにより、タイミング決定部１５２、読み取り部１５３、比較部１５４および判定部１５５に相当する機能ブロックが実現されていてもよい。その場合には、さらにハードウェア構成を減らすことができるため、情報処理装置１の製造コストを抑制できる。
【０２０１】
また、第６の実施の形態における情報処理装置１において、時間ｔの初期値を、時間Ｔ，ＴＸ＜時間ｔを満たす値から認証を開始し、認証を行うたびに（比較結果が不一致となるたびに）、順次、所定値Δτだけ時間ｔの値を減少させてもよい。このように構成した場合、時間ｔ＜時間τとなった時点で、基準値１４５と認証値とが一致しなくなり、記憶装置２のレイテンシを検出することができる。
【０２０２】
また、上記実施の形態に示した各工程はあくまでも例示であって、これに限定されるものではない。例えば、同様の効果が得られるのであれば、各工程における処理内容や各工程の順序が適宜変更されてもよい。
【図面の簡単な説明】
【０２０３】
【図１】本発明に係る情報処理システムを示す図である。
【図２】第１の実施の形態における情報処理装置１の構成を示す図である。
【図３】第１の実施の形態における認証部を示す図である。
【図４】第１の実施の形態における認証方法を示す流れ図である。
【図５】第２の実施の形態における情報処理装置の認証部を示す図である。
【図６】第２の実施の形態における認証部が備える機能ブロックをデータの流れとともに示す図である。
【図７】第３の実施の形態における情報処理装置の制御部および認証部を示す図である。
【図８】第３の実施の形態における情報処理装置の制御部および認証部を示す図である。
【図９】第４の実施の形態における認証方法を示す流れ図である。
【図１０】第４の実施の形態における認証方法を示す流れ図である。
【図１１】第５の実施の形態における情報処理装置の認証部を示す図である。
【図１２】第５の実施の形態における認証方法を示す流れ図である。
【図１３】第５の実施の形態における認証方法を示す流れ図である。
【符号の説明】
【０２０４】
１，１ａ，１ｂ，１ｃ，１ｄ  情報処理装置
１０，１０ｂ，１０ｃ  制御部
１００  情報処理システム
１１  操作部
１２  表示部
１３  インターフェース部
１４，１４ａ，１４ｂ，１４ｃ，１４ｄ  認証部
１５，１５０  ＣＰＵ
１６，１６ｂ，１４０，１４０ａ  ＲＯＭ
１７，１７ｂ，１７ｃ，１５１  ＲＡＭ
１４１，１４１ｂ，１４１ｃ，１４１ｄ  タイミングジェネレータ
１４２，１４２ｃ  遅延回路
１４３，１５３  読み取り部
１４４，１４４ｂ  比較回路
１４５  基準値
１８，１４６  コマンド発行回路
１４７  受信バッファ
１４８  受信値
１５２  タイミング決定部
１５４  比較部
１５５  判定部
１５６  認証値情報
１５７  比較結果情報
１５８  バッファ
１５９  アドレス値
２，７，８  記憶装置
３，４，９  プログラム
【図１】
0005055482.tif 000002
【図２】
0005055482.tif 000003
【図３】
0005055482.tif 000004
【図４】
0005055482.tif 000005
【図５】
0005055482.tif 000006
【図６】
0005055482.tif 000007
【図７】
0005055482.tif 000008
【図８】
0005055482.tif 000009
【図９】
0005055482.tif 000010
【図１０】
0005055482.tif 000011
【図１１】
0005055482.tif 000012
【図１２】
0005055482.tif 000013
【図１３】
0005055482.tif 000014