(57)【要約】    【課題】ファイルシステムやキャッシュシステムを採用している電子機器においてＣＰＲＭ等の制御情報を利用できるようにする。    【解決手段】コントローラ２０３は不揮発性メモリ領域２０２に記憶されたファームウェアからなる制御プログラムは、予め定められた異なるメモリブロックＡ１、Ａ２、Ａ３、・・・Ａｎの読み出しアクセスがあったときに、状態１に遷移して、肯定応答を電子機器に送出する。状態１でメモリブロックＢの書き込みがあったときに、書き込みデータに秘密の情報を連結してハッシュ演算を施して揮発性メモリ２０４の所定のレジストリに内容データを書き込む。この後、状態２に遷移する。状態２で、メモリブロックＣの読み出しがあったときに、揮発性メモリ２０４に保管している演算結果に、第２不揮発性メモリ領域２０２に記憶されている特定のデータを結合して電子機器１００に供給する。【選択図】  図１０
2010117784.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた複数の異なるアドレスに順次に読み出しアクセスがあったときに予め定められたデータを読み出す要求があったと判別する判別手段を有する、取り外し可能な補助記憶装置。
【請求項２】
予め定められた複数の異なるアドレスと複数のファイル名とを対応付けたファイルシステムを介してファイルのアクセスを受ける請求項１記載の取り外し可能な補助記憶装置。
【請求項３】
上記判別手段が上述の要求があったと判別したときに肯定的な応答を読取装置に送信する請求項１または２記載の補助記憶装置。
【請求項４】
上記肯定的な応答を受け取った上記読取装置は補助記憶装置本体に対してチャレンジ・レスポンス認証用のチャレンジデータを送り、上記補助記憶装置本体は、レスポンスデータと関連して上記予め定められたデータを上記読取装置に送出する請求項３記載の補助記憶装置。
【請求項５】
上記予め定められたデータはユーザデータ領域以外の領域に記憶されている請求項１〜４のいずれかに記載の補助記憶装置。
【請求項６】
上記予め定められたデータはユーザデータ領域に記憶されている請求項１〜４のいずれかに記載の補助記憶装置。
【請求項７】
本体に着脱自在に結合されている補助記憶装置から予め定められたデータを読み取るときに、上記補助記憶装置の予め定められた複数の異なるアドレスに順次に読み出しアクセスを行う補助記憶装置用の読取装置。
【請求項８】
予め定められた複数の異なるアドレスと複数のファイル名とを対応付けたファイルシステムを介して上記補助記憶装置に記憶されているファイルのアクセスを行う請求項７記載の補助記憶装置用の読取装置。
【請求項９】
補助記憶装置と上記補助記憶装置を着脱可能に結合させる読取装置とを含む情報処理装置において、
上記読取装置は、上記補助記憶装置から予め定められたデータを読み取るときに、当該補助記憶装置の予め定められた複数の異なるアドレスに順次に読み出しアクセスを行い、
上記補助記憶装置は、上記予め定められた複数の異なるアドレスに順次に読み出しアクセスがあったときに上記予め定められたデータを読み出す要求があったと判別する判別手段を有し、上記判別手段の判別結果に基づいて上記予め定められたデータを上記読取装置に送信する情報処理装置。
【請求項１０】
プロセッサを、予め定められた複数の異なるアドレスに順次に読み出しアクセスがあったときに予め定められたデータを読み出す要求があったと判別する判別手段として機能させる、取り外し可能な補助記憶装置用プログラム。
【請求項１１】
プロセッサを、装置本体に着脱自在に結合されている補助記憶装置から予め定められたデータを読み取るときに、当該補助記憶装置の予め定められた複数の異なるアドレスに順次に読み出しアクセスを行うアクセス制御手段として機能させる読取装置用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、取り外し可能な不揮発性補助記憶装置のアクセス技術に関する。
【背景技術】
【０００２】
ＳＤメモリカード（商標）等の取り外し可能な不揮発性補助記憶装置（メモリカードとも呼ぶ）が、パーソナルコンピュータ、デジタルカメラ、携帯電話機、プリンタ、複写機、テレビジョン受像機、ゲーム機等の電子機器に広く利用されている。このような不揮発性補助記憶装置では、非ユーザデータ領域に制御情報、例えば、ＣＰＲＭ（Ｃｏｎｔｅｎｔ  Ｐｒｏｔｅｃｔｉｏｎ  ｆｏｒ  Ｒｅｃｏｒｄａｂｌｅ  Ｍｅｄｉａ）のメディアＩＤ等が保持され、認証や暗号等に用いられている。ところで、慣用的な電子機器、例えば携帯電話機は、一般的なファイルシステムおよびキャッシュシステムを採用しており、かつ、ＣＰＲＭ等の制御情報を取得する特別な仕組みを採用していないため、そのままでは、不揮発性補助記憶装置に保持されている制御情報を利用した認証や暗復号を行うことができない。
【０００３】
なお、この発明と関連する特許文献としては特許文献１がある。この特許文献は、ＣＰＲＭに基づく相互認証に成功した後にＳＤメモリカードのプロテクト領域に保持されているアプリケーション用の復号鍵を電子機器にコピーし、コピー後にＳＤメモリカードのアプリケーション用の復号鍵を削除して他の電子機器で不正に利用されないようにすることを提案している。
【０００４】
なお、上述の従来技術やその問題点は、この発明の背景の一部を説明するためにのみ説明している。この発明は上述の従来技術や問題点に限定されるものではない点に留意されたい。
【特許文献１】特開２００６−０７９４４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この発明は、以上の事情を考慮してなされたものであり、ファイルシステムやキャッシュシステムを採用している電子機器においてＣＰＲＭ等の制御情報を利用できるようにすることを目的としている。
【課題を解決するための手段】
【０００６】
この発明によれば、上述の目的を達成するために、特許請求の範囲に記載のとおりの構成を採用している。ここでは、発明を詳細に説明するのに先だって、特許請求の範囲の記載について補充的に説明を行なっておく。
【０００７】
すなわち、この発明の一側面によれば、上述の目的を達成するために、本体に取り外し可能な補助記憶装置に、予め定められた複数の異なるアドレスに順次に読み出しアクセスがあったときに予め定められたデータを読み出す要求があったと判別する判別手段を設けている。補助記憶装置は典型的には半導体素子、典型的にはフラッシュメモリを用いたものであるが、これに限定されず、ハードディスク等を用いたものでもよい。
【０００８】
この構成によれば、特定のデータの読み出しを通常のメモリアクセスに偽装させて間接的に指定することができる。読み出しアクセスのアドレスが異なっているのでキャッシュシステムに読み出しアクセスがブロックされない。
【０００９】
この構成において、予め定められた複数の異なるアドレスと複数のファイル名とを対応付けたファイルシステムを介してファイルのアクセスを受けることが好ましい。典型的には、補助記憶装置の制御プログラムが、予め定められた複数のファイル名の読み出しと予め定められたアドレスの読み出しとを対応付ける。
【００１０】
また、上記肯定的な応答を受け取った上記読取装置は補助記憶装置本体に対してチャレンジ・レスポンス認証用のチャレンジデータを送り、上記補助記憶装置本体は、レスポンスデータと関連して上記予め定められたデータを上記読取装置に送出することが好ましい。典型的には、チャレンジデータの転送は予め定められたアドレスへの偽装的な書き込みにより行われ、レスポンスデータ等は予め定められたアドレスからの偽装的な読み出しにより行われる。
【００１１】
予め定められたデータは、典型的には、ユーザデータ領域以外の領域に記憶されている。ＳＤメモリカード（商標）の場合、予め定められたデータは典型的にはメディアＩＤであるが、これに限定されない。
【００１２】
また、予め定められたデータはユーザデータ領域に記憶されてもよい。
【００１３】
また、この発明の他の側面によれば、補助記憶装置用の読取装置に、本体に着脱自在に結合されている補助記憶装置から予め定められたデータを読み取るときに、上記補助記憶装置の予め定められた複数の異なるアドレスに順次に読み出しアクセスを行うアクセス制御手段を設けている。読取装置は典型的には電子機器本体または電子機器のアダプタである。
【００１４】
この構成によれば、予め定められた複数の異なるアドレスに順次に読み出しアクセスがあったときに予め定められたデータを読み出す要求があったと判別する判別手段を含む補助記憶装置とともに使用して特定のデータの読み出しを通常のメモリアクセスにより間接的に指定することができる。読み出しアクセスのアドレスが異なっているのでキャッシュシステムに読み出しアクセスがブロックされない。
【００１５】
また、この発明のさらに他の側面によれば、補助記憶装置と上記補助記憶装置を着脱可能に結合させる読取装置とを含む情報処理装置において、上記読取装置は、上記補助記憶装置から予め定められたデータを読み取るときに、当該補助記憶装置の予め定められた複数の異なるアドレスに順次に読み出しアクセスを行い、上記補助記憶装置は、上記予め定められた複数の異なるアドレスに順次に読み出しアクセスがあったときに上記予め定められたデータを読み出す要求があったと判別する判別手段を有し、上記判別手段の判別結果に基づいて上記予め定められたデータを上記読取装置に送信するようにしている。
【００１６】
この構成によれば、特定のデータの読み出しを通常のメモリアクセスに偽装させて間接的に指定することができる。読み出しアクセスのアドレスが異なっているのでキャッシュシステムに読み出しアクセスがブロックされない。
【００１７】
なお、この発明は装置またはシステムとして実現できるのみでなく、方法としても実現可能である。また、そのような発明の一部をソフトウェアとして構成することができることはもちろんである。またそのようなソフトウェアをコンピュータに実行させるために用いるソフトウェア製品もこの発明の技術的な範囲に含まれることも当然である。
【００１８】
この発明の上述の側面および他の側面は特許請求の範囲に記載され以下実施例を用いて詳述される。
【発明の効果】
【００１９】
この発明によれば、特定のデータの読み出しを通常のメモリアクセスにより間接的に指定することができる。読み出しアクセスのアドレスが異なっているのでキャッシュシステムに読み出しアクセスがブロックされない。
【発明を実施するための最良の形態】
【００２０】
以下、この発明の実施例について説明する。
【００２１】
図１は、この実施例の情報処理システムを全体として示しており、この図において、電子機器１００はメモリカードインタフェース１００Ａを具備し、このメモリカードインタフェース１００Ａにメモリカード２００を着脱自在に装着する。電子機器１００は典型的には図２にも示すように携帯電話機１１０であるが、これに限定されず、種々の情報端末、家電製品、ＴＶゲーム機、携帯ゲーム機、デジタルカメラ、プリンタ、複写機等のオフィス製品、パーソナルコンピュータ、その他、ファイルシステムおよびキャッシュシステムを具備する製品であってよい。電子機器１００は典型的にはメモリカード２００に記憶されている制御情報をアクセスするための標準に対応する仕組み、例えばＣＰＲＭ対応の仕組みを具備しないが、付加的にそのような仕組みを伴ってもよい。メモリカード２００は典型的にはＳＤメモリカードであるが、これに限定されず、フラッシュメモリやハードディスクを具備する任意の形態の着脱可能な補助記憶装置であってよい。
【００２２】
この実施例では以下に説明するように異なるアドレスに対応付けられた異なるファイルをアクセスすることによりメモリカードの非ユーザデータ領域に記憶された制御データを読み出す。
【００２３】
図２は、電子機器１００（図１）の一例としての携帯電話機１１０を全体として示しており、この図において、携帯電話機１１０は、ＣＰＵ１０、ＲＡＭ１１、ＲＯＭ１２、メモリカードインタフェース１００Ａ、キーボードを含む入力部１３、液晶パネルを含む表示部１４、音声処理部１５、データ処理部１６、アンテナを含む無線送受信部１７、マイクロホン／スピーカ１８、バスシステム１９等を含んで構成される。
【００２４】
マイクロホン／スピーカ１８、音声処理部１５、および無線送受信部１７により通話が実現される。データ処理部１６はブラウザやメール処理等の各種の処理に伴う付随的なデータ処理を行う。入力部１３のキーボード等を用いて電話番号やテキストの入力が行われる。表示部１４の液晶パネルはテキスト、画像等の表示を行う。ＣＰＵ１０はＲＡＭ（主メモリ）１１とともにオペレーティングシステム等のシステムプログラムやミドルウェアプログラムやアプリケーションプログラムを実行する。アプリケーションプログラム（単にアプリケーションと呼ぶこともある）２０は破線で示すようにファイルシステム２１を用いてメモリカード２００をアクセスする。キャッシュシステム（キャッシュメモリともいう）２２は以前に読み出したデータを一時記憶する。キャッシュシステム２２は、メモリカードインタフェース１００Ａからメモリカード２００が挿入または離脱したときに初期化される。ＲＯＭ１２は典型的にはフラッシュメモリであり、ブートプログラム、オペラーティングシステム、ミドルウェアプログラム、アプリケーションプログラム、その他各種データを記憶する。ミドルウェアプログラム、アプリケーションプログラム、その他各種データは、メモリカード２００に記憶されてもよい。ファイルシステム２１は任意のものでよく、典型的にはＦＡＴ１６またはＦＡＴ３２であり、メモリカード２００はそれに対応した構造体（マスターブートレコード、そのパーティション情報、ＦＡＴ、ルートディレクトリ［ディレクトリ情報］等）を含む。
【００２５】
図３はメモリカード２００の構成例を示しており、典型的にはＳＤメモリカードであるが、これに限定されない。メモリカード２００は第１不揮発性メモリ領域２０１、第２不揮発性メモリ領域２０２、コントローラ２０３、揮発性メモリ２０４、外部インタフェース２０５を含む。これら各部はパッケージに封入されている。第１不揮発性メモリ領域（ユーザデータ領域とも呼ぶ）２０１は、外部インタフェース２０５およびコントローラ２０３を介して電子機器１００（図１参照。外部機器ともいう）からデータの保存場所としてアクセス可能なものである。第２不揮発性メモリ領域２０２は、ファイルシステム２１を介しては外部機器からデータの保存場所としてはアクセスできないものである。第２不揮発性メモリ領域２０２は、特別の標準に基づく認証によって書き込み可能なプロテクト領域と書き込み不可能なシステム領域を含む。コントローラ２０３は不揮発性メモリ領域２０２に記憶されたファームウェアにより各種の制御を行う。揮発性メモリ２０４は、バッファやレジスタ等を形成する。外部機器から送られた各種の指示や情報は外部インタフェース２０５を介してコントローラ２０３に送られ、演算処理を含む各種の処理が実行される。
【００２６】
第２不揮発性メモリ領域２０２は、ファイルシステム２１を実現する各種構造体およびテーブルを含む。
【００２７】
この例では、コントローラ２０３は不揮発性メモリ領域２０２に記憶されたファームウェアからなる制御プログラムは、以下のような動作を行う。なお、詳細は後述する。
（１）予め定められた異なるメモリブロックＡ１、Ａ２、Ａ３、・・・Ａｎの読み出しアクセスがあったときに、準備状態（状態１）に遷移して、肯定応答を電子機器（外部機器、または読出装置とも呼ぶ）に送出する。なお、初期状態では状態０である。
（２）準備状態（状態１）でメモリブロックＢの書き込みがあったときに、書き込みデータに秘密の情報を連結してハッシュ演算を施して揮発性メモリ２０４の所定のレジストリ（変数）に内容データを書き込む。この後、状態２に遷移する。
（３）状態２で、メモリブロックＣの読み出しがあったときに、揮発性メモリ２０４に保管している演算結果に、第２不揮発性メモリ領域２０２に記憶されている特定のデータ（典型的にはメモリカードに一意に割り当てられた固有のデータ）を結合して電子機器に供給する。
【００２８】
図４および図５は、電子機器１００（携帯電話機１１０）のデータの読み出し書き込みの動作例を示している。アプリケーションプログラム２０がオペレーティングシステム／ミドルウェア（単にオペレーティングシステムと呼ぶこともある）２１Ａのファイルアクセス用ＡＰＩを用いてメモリカード２００内のファイルを読み込む場合、典型的には、図４のように動作する。図４の右向きの矢印はすべて読み取り要求の発行であり、左向きの矢印は要求の完了および読み込んだデータの伝送である。下向きの矢印は、オペレーティングシステム／ミドルウェア２１Ａが以降のファイル読み取りを高速化するために用いるキャッシュシステム２２への書き込みである。
【００２９】
他方、読み込もうとしたファイルのデータが既にオペレーティングシステム／ミドルウェア２１Ａの管理するキャッシュシステム２２内に存在する場合には、図４ではなく図５のように動作する。図５の右向きの矢印は読み取り要求の発行であり、左向きの矢印は要求の完了および読み込んだデータの伝送、下向きの矢印はキャッシュシステム２２の検索、上向きの矢印はキャッシュシステム２２からのデータ転送である。この場合、アプリケーションプログラム２０が発行した読み取り要求は、メモリカード２００へは伝送されない。
【００３０】
図６〜図９は、アプリケーションプログラム２０によるメモリカード２００へのデータアクセスの基本的な動作例をそれぞれ示す。
【００３１】
図６はファイル読み出し準備の動作例を示し、その詳細は以下のとおりである。
［ステップ１］：アプリケーションプログラム２０はオペレーティングシステム２１Ａに対してファイル読み出し準備用のＡＰＩ呼び出しを行う（ｏｐｅｎシステムコール）。
［ステップ２］：オペレーティングシステム２１Ａはディレクトリ情報をキャッシュシステム２２において探索する。ディレクトリ情報が見つかればステップ５に進み、見つからなければステップ３に進む。
［ステップ３］：ディレクトリ情報をメモリカード（デバイスともいう）から読み込む（ｒｅａｄコマンド）。読み込むべきデータのアドレスはＬＢＡ（ロジカルブロックアドレス）と呼ばれる数値で指定される。つぎにステップ４に進む。
［ステップ４］：ディレクトリ情報をキャッシュシステム２２に保存する。
［ステップ５］：準備完了状態をアプリケーションに通知する。
【００３２】
図７はファイル読み出しの動作例を示し、その詳細は以下のとおりである。
［ステップ１］：アプリケーションプログラム２０はオペレーティングシステム２１Ａに対してファイル読み出しを要求する（ｒｅａｄシステムコール）。オペレーティングシステム２１Ａはディレクトリ情報を元にファイル内のデータの位置（アドレス）を算出する。
［ステップ２］：オペレーティングシステム２１Ａはファイル内のデータをキャッシュシステム２２において探索する。ファイル内のデータが見つかればステップ５に進み、見つからなければステップ３に進む。
［ステップ３］：ファイル内のデータをメモリカード（デバイスともいう）から読み込む（ｒｅａｄコマンド）。読み込むべきデータのアドレスはＬＢＡと呼ばれる数値で指定される。つぎにステップ４に進む。
［ステップ４］：ファイル内のデータをキャッシュシステム２２に保存する。
［ステップ５］：オペレーティングシステム２１Ａは読み込んだデータをアプリケーションに返す。
【００３３】
図８はファイル書き込み準備の動作例を示し、その詳細は以下のとおりである。
［ステップ１］：アプリケーションプログラム２０はオペレーティングシステム２１Ａに対してファイル書き込み準備用のＡＰＩ呼び出しを行う（ｏｐｅｎシステムコール）。
［ステップ２］：オペレーティングシステム２１Ａはディレクトリ情報をキャッシュシステム２２において探索する。ディレクトリ情報が見つかればステップ５に進み、見つからなければステップ３に進む。
［ステップ３］：ディレクトリ情報をメモリカード（デバイスともいう）から読み込む（ｒｅａｄコマンド）。読み込むべきデータのアドレスはＬＢＡと呼ばれる数値で指定される。つぎにステップ４に進む。
［ステップ４］：ディレクトリ情報をキャッシュシステム２２に保存する。
［ステップ５］：準備完了状態をアプリケーションに通知する。
【００３４】
図９はファイル書き込みの動作例を示し、その詳細は以下のとおりである。
［ステップ１］：アプリケーションプログラム２０はオペレーティングシステム２１Ａに対してファイル書き込みを要求する（ｗｒｉｔｅシステムコール）。オペレーティングシステム２１Ａはディレクトリ情報を元にファイル内のデータの位置（アドレス）を算出する。
［ステップ２］：オペレーティングシステム２１Ａはファイル内のデータをメモリカード（デバイスともいう）に書き込む（ｗｒｉｔｅコマンド）。書き込むアドレスはＬＢＡと呼ばれる数値で指定される。つぎにステップ４に進む。
［ステップ３］：書き込んだデータをキャッシュシステム２２に保存する。
［ステップ４］：オペレーティングシステム２１Ａは書き込み完了をアプリケーションプログラム２０に返す。
【００３５】
この実施例では、アプリケーションプログラム２０が、第２不揮発性メモリ領域２０２に記憶されている特定のデータ（典型的にはメモリカードに一意に割り当てられた固有のデータ）を取得する場合、予め定められた異なるファイルＦ＿Ａ１、Ｆ＿Ａ２、・・・、Ｆ＿Ａｎの読み出し要求を出力しこれら要求をオペレーティングシステム／ミドルウェア２１Ａに出力する。オペレーティングシステム／ミドルウェア２１Ａは、これらファイルの読み出し要求を受け取ったときには予め定められた異なるメモリブロックＡ１、Ａ２、・・・、Ａｎの読み出し要求をデバイスドライバ２３およびメモリカードインタフェース１００Ａを介してメモリカード２００に出力する。アプリケーションプログラム２０は、最後のファイルＦ＿Ａｎの読み出しに応じてＯＫメッセージ（肯定応答）が返されたら、チャレンジデータを内容とするファイルＦ＿Ｂの書き込み要求をオペレーティングシステム／ミドルウェア２１Ａに送る。オペレーティングシステム／ミドルウェア２１Ａは、これに応じてメモリブロックＢへの書き込みをデバイスドライバ２３およびメモリカードインタフェース１００Ａを介してメモリカード２００に出力する。この後、アプリケーションプログラム２０は、ファイルＦ＿Ｃの読み出し要求をオペレーティングシステム／ミドルウェア２１Ａに送る。オペレーティングシステム／ミドルウェア２１Ａは、これに応じて、メモリブロックＣの読み出し要求をデバイスドライバ２３およびメモリカードインタフェース１００Ａを介してメモリカード２００に出力する。アプリケーションプログラム２０はオペレーティングシステム／ミドルウェア２１ＡからファイルＦ＿ＣとしてメモリブロックＣのデータを受け取る。このデータは、チャレンジデータに秘密情報を結合したものをハッシュ演算したレスポンスデータに、上述の特定のデータを組み合わせたもの例えば連結したものである。アプリケーションプログラム２０は該当する、チャレンジデータ、秘密情報、ハッシュ関数を保持しており、受け取ったデータのレスポンス部分が、これらチャレンジデータ、秘密情報、ハッシュ関数から真正に生成されたものかどうかを検証し、検証が成功したら、特定のデータを真正なものとして取得する。
【００３６】
なお、Ａ１≠Ａ２≠・・・≠Ａｎ≠Ｂ≠Ｃであり、Ｆ＿Ａ１≠Ｆ＿Ａ２≠・・・≠Ｆ＿Ａｎ≠Ｆ＿Ｂ≠Ｆ＿Ｃである。
【００３７】
なお、アプリケーションプログラム２０が特定のデータの取り出しを要求したときに、オペレーティングシステム／ミドルウェア２１ＡがファイルＦ＿Ａ１、Ｆ＿Ａ２、・・・、Ｆ＿Ａｎ、Ｆ＿Ｂ、Ｆ＿Ｃの読み出しまたは書き込み要求を出力し、チャレンジ・レスポンスの認証を行って、真正な特定のデータを取得してアプリケーションプログラム２０へ返すようにしてもよい。
【００３８】
つぎに、この実施例の動作例を説明する。この例では、第２不揮発性メモリ領域２０２に記憶されている特別のデータ（補助記憶装置に一意に割り当てられた固有のデータ）の読み出しがアプリケーションプログラム２０等から指示されたときの動作を示す。
【００３９】
図１０は読み出しが成功したときの全体の流れを示し、図１１は読み出しが失敗したときに流れを示す。
【００４０】
図１０において、処理の詳細は以下のとおりである。
［ステップＳ１０］：電子機器（読取装置）１００からメモリカード２００に対して特定のメモリブロックＡ１、Ａ２、・・・、Ａｎの読取アクセスが順次に行われる。ただし、Ａ１≠Ａ２≠・・・≠Ａｎである。
［ステップＳ１１］：メモリカード２００の制御プログラムはステップ１０のメモリブロックの読取要求を判別して状態１に遷移する。
［ステップＳ１２］：状態１に遷移したのち、メモリブロックＡｎの読み出しデータとしてＯＫメッセージ（肯定応答）を返す。
［ステップＳ１３］：電子機器１００はＯＫメッセージを受信して確認する。
［ステップＳ１４］：電子機器１００はＯＫメッセージを成功裏に確認したのちメモリブロックＢにチャレンジ（例えば乱数）を書き込み要求する。ただし、Ａ１≠Ａ２≠・・・≠Ａｎ≠Ｂである。
［ステップＳ１５］：メモリカード２００の制御プログラムは、チャレンジに、電子機器１００と共有している秘密情報を連結してハッシュ関数でハッシュ値を演算し、このハッシュ値（レスポンスデータ）を揮発性メモリに記憶する。
［ステップＳ１６］：メモリカード２００の制御プログラムは状態２に遷移する。
［ステップＳ１７］：電子機器１００からメモリカード２００にメモリブロックＣの読み出し要求を行う。ただし、Ａ１≠Ａ２≠・・・≠Ａｎ≠Ｂ≠Ｃである。
［ステップＳ１８］：レスポンスデータに特定のデータ（例えばメディアＩＤ）を連結して電子機器１００に返す。
［ステップＳ１９］：電子機器１００はハッシュ値をチャレンジデータおよび秘密情報から計算し、レスポンスデータと比較し、一致したら、レスポンスデータとともに送られてきた特定のデータを真正なデータとして格納する。
【００４１】
なお、図１０において四角のノード１、２はそれぞれＯＫメッセージの確認の失敗、およびレスポンスデータの認証の失敗の処理を示す。電子機器１００はこれに基づいて失敗処理を行い（ステップＳ２０、Ｓ２１）、アプリケーションプログラムにエラーを返す（Ｓ２２）。
【００４２】
図１２は、以上の処理を実行する構成を模式的に示すものである。図１２において、電子機器１００は読取アクセスシーケンス処理部１１１、検証部１１２、データ記憶部１１３等を有する。メモリカード２００は判別部１２１、証明部１２２、データ記憶部１２３等を有する。、電子機器１００の読取アクセスシーケンス処理部１１１、検証部１１２、データ記憶部１１３は、電子機器１００（携帯電話機１１０）のハードウェア資源（ＣＰＵ、ＲＯＭ、ＲＡＭ等）およびソフトウェア１１４を協働させて実現される。ソフトウェア１１４は典型的にはオペレーティングシステム、ミドルウェア等であるが、これに限定されない。ソフトウェア１１４は各種記録媒体または通信手段を介して供給してよい。メモリカード２００の判別部１２１、証明部１２２、データ記憶部１２３は、メモリカード２００のハードウェア（コントローラ、各種メモリ等）とソフトウェア１２４とを協働させて実現される。ソフトウェア１２４は典型的には第２不揮発性メモリ２０２に記憶されている制御用のファームウェアであるが、これに限定されない。
【００４３】
電子機器１００の読取アクセスシーケンス処理部１１１は、メモリカード２００に対して特定のメモリブロックＡ１、Ａ２、・・・、Ａｎの読取アクセスを順次に行う（ステップＳ１０）。メモリカード２００の判別部１２１は、ステップ１０のメモリブロックの読取要求を判別して状態１に遷移し（ステップＳ１１）、メモリブロックＡｎの読み出しデータとしてＯＫメッセージ（肯定応答）を電子機器１００に返す（ステップＳ１２）。電子機器１００の検証部１１２は、ＯＫメッセージを成功裏に確認したのちメモリブロックＢにチャレンジ（例えば乱数）を書き込み要求する（ステップＳ１４）。メモリカード２００の証明部１２２は、チャレンジに、電子機器１００と共有している秘密情報を連結してハッシュ関数でハッシュ値を演算し、このハッシュ値（レスポンスデータ）をメモリ記憶部１２３に記憶する（ステップＳ１５）、状態２に遷移する（ステップＳ１６）。電子機器１００の検証部１１２がメモリカード２００にメモリブロックＣの読み出し要求を行い（ステップＳ１７）、これに応じて、メモリカード２００の証明部１２２がレスポンスデータに特定のデータ（例えばメディアＩＤ）を連結して電子機器１００に返す（ステップＳ１８）。電子機器１００の検証部１１２はハッシュ値をチャレンジデータおよび秘密情報から計算し、レスポンスデータと比較し、一致したら、レスポンスデータとともに送られてきた特定のデータを真正なデータとしてデータ記憶部１１３に格納する（ステップＳ１９）。このデータは例えばアプリケーションプログラム２０により用いられるが（例えば暗復号処理［メモリカード２００に格納されている暗号化済みコンテンツの復号、または暗号済み鍵の復号］、認証処理）、これに限定されない。
【００４４】
この実施例では、異なる複数のファイル名を用いた読み出し手順で特定のデータの取り出しをメモリカードに指示するようにしたので、この手順がキャッシュシステムにより阻止されることがない。
【００４５】
エラーが生じた場合には、キャッシュシステムに読取データが残存している場合もあるので、メモリカードの着脱を行い、キャッシュシステムをリセットするようにユーザに指示することが好ましい。メモリカード２００をメモリカードインタフェース１００Ａから挿脱するとメモリカードインタフェース１００Ａがこれを判別し、その検知信号によりキャッシュシステムをリセットする。
【００４６】
この実施例では、異なるアドレスを持つメモリブロックＡ１、Ａ２、Ａ３、…Ａｎ、Ｂ、Ｃに対応したファイルを用いることによって、ＯＳまたはミドルウェア内のファイルシステム用のキャッシュシステムがあっても、支障なく、特定のデータを取り出すことが可能となる。アドレス列（Ａ１，Ａ２，…，Ａｎ）を長くすることによってメモリカード内のコントローラを独自の動作状態に遷移させるための指示が確率的には偶然に発行されないようにできる。また、ハッシュ値などを用いたチャレンジ・レスポンス認証を用いて、通常のメモリカードを用いて偽のデータを電子機器（外部機器、読取装置）に引き渡すことを困難にできる。
【００４７】
以上で実施例の説明を終了する。
【００４８】
なお、この発明は特許請求の範囲の記載に基づいて決定されるものであり、実施例の具体的な構成、課題、および効果には限定されない。この発明は上述の実施例に限定されるものではなくその趣旨を逸脱しない範囲で種々変更が可能である。上述実施例では、メモリブロックＡ１、Ａ２、・・・、Ａｎの読み出しののちにチャレンジ・レスポンスの認証を行いつつ特定のデータを電子機器側に返すようにしたが、メモリブロックＡｎの読み出し時に特定のデータを返すようにしてもよい。特定のデータは典型的にはメディアＩＤであるが、メモリカードを一意に特定する任意の識別情報であってよく、また、メモリカードを一意に特定する識別情報でなくてもよい。例えば、一群のメモリカードまたはすべてのメモリカードに共通したデータでもよい。特定のデータは非ユーザデータ領域でなくユーザデータ領域に記憶されていてもよい。また、ファイル名に基づいてキャッシュする場合には、異なるファイルＦ＿Ａ１、Ｆ＿Ａ２、・・・、Ｆ＿Ａｎの読み出し要求に対して同一のメモリブロックＡの読み出し要求または異なるメモリブロックＡ１、Ａ２、・・・、Ａｎが順次にメモリカードに送られるようにして、これに基づいてメモリカードが特定のデータの読み出し指示であると判別してもよい。また、ＯＳ等が、読み出しアドレス（ファイル）のパターンがＡ１、Ａ２、・・・、Ａｎのシーケンス（Ｆ＿Ａ１、Ｆ＿Ａ２、・・・、Ｆ＿Ａｎのシーケンス）と一致するかどうかを監視し、合致しないと判断したら通常のファイルシステムとして通常の読み出しアドレス（ファイル情報）に基づいてメモリブロックをアクセスし、最終的にパターンが一致した時点でメモリブロックＡ１、Ａ２、・・・、Ａｎのアクセス要求をメモリカードに出力するようにしてもよい。キャッシュシステムに一時記憶されていないデータをアクセスするシーケンスであればよく、データアドレスで一時記憶される場合にはデータアドレスを異ならせ、ファイル名で一時記憶される場合にはファイル名を異ならせ、それらデータアドレスまたはファイル名に対応するデータアドレスのアクセスがあったときに補助記憶装置側で特定のデータの読み出し指示、またはこれに関連する準備的な指示であることを判別できればよい。
【図面の簡単な説明】
【００４９】
【図１】この発明の実施例の電子機器およびメモリカードからなる情報処理システムを全体として示す図である。
【図２】図１の電子機器の一例としての携帯電話機の構成例を説明するブロック図である。
【図３】図１のメモリカードの構成例を模式的に示す図である。
【図４】図１の情報処理システムにおける読み出しアクセスの態様（キャッシュデータなし）を説明する図である。
【図５】図１の情報処理システムにおける読み出しアクセスの態様（キャッシュデータあり）を説明する図である。
【図６】アプリケーションプログラムによるメモリカードへの読み出しの準備動作例を説明する図である。
【図７】アプリケーションプログラムによるメモリカードへの読み出し動作例を説明する図である。
【図８】アプリケーションプログラムによるメモリカードへの書き込みの準備動作例を説明する図である。
【図９】アプリケーションプログラムによるメモリカードへの書き込み動作例を説明する図である。
【図１０】実施例の動作例（成功した場合）を説明する図である。
【図１１】実施例の動作例（失敗した場合）を説明する図である。
【図１２】実施例の要部構成を模式的に示すブロック図である。
【符号の説明】
【００５０】
１０    ＣＰＵ
１１    ＲＡＭ
１２    ＲＯＭ
１３    入力部
１４    表示部
１５    音声処理部
１６    データ処理部
１７    無線送受信部
１８    マイクロホン／スピーカ
１９    バスシステム
２０    アプリケーションプログラム
２１    ファイルシステム
２１Ａ    オペレーティングシステム／ミドルウェア
２２    キャッシュシステム
２３    デバイスドライバ
１００    電子機器
１００Ａ    メモリカードインタフェース
１１０    携帯電話機
１１１    読取アクセスシーケンス処理部
１１２    検証部
１１３    データ記憶部
１１４    ソフトウェア
１２１    判別部
１２２    証明部
１２３    データ記憶部
１２４    ソフトウェア
２００    メモリカード
２０１    第１不揮発性メモリ領域
２０２    第２不揮発性メモリ領域
２０３    コントローラ
２０４    揮発性メモリ
２０５    外部インタフェース
【図１】
2010117784.tif 000003
【図２】
2010117784.tif 000004
【図３】
2010117784.tif 000005
【図４】
2010117784.tif 000006
【図５】
2010117784.tif 000007
【図６】
2010117784.tif 000008
【図７】
2010117784.tif 000009
【図８】
2010117784.tif 000010
【図９】
2010117784.tif 000011
【図１０】
2010117784.tif 000012
【図１１】
2010117784.tif 000013
【図１２】
2010117784.tif 000014