(57)【要約】【課題】外部機器とメモリカード内コントローラの間で専用コマンドを設けることなく、安全性を高めた、不揮発性メモリへのデータの書込み／読出しができるメモリカードを実現すること。【解決手段】本発明のメモリカード１００は、不揮発性メモリ１１０と、コントローラ１０１を備える。コントローラ１０１は、不揮発性メモリ１１０内の特定アドレスに外部機器１２７からの命令を受け取るためのメモリ領域を確保する手段と、上記不揮発性メモリ１１０内の特定アドレスを記憶する手段とを有し、上記確保したメモリ領域に格納された外部機器からの命令を読出す。【選択図】図１
2006011816.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリとコントローラを備えたメモリカードにおいて、
上記コントローラは、上記不揮発性メモリ内の特定アドレスに外部機器からの命令を受け取るためのメモリ領域を確保する手段と、上記不揮発性メモリ内の特定アドレスを記憶する手段とを有し、所定の時間ごとに上記確保した特定アドレスのメモリ領域に格納された上記命令を読出すことを特徴とするメモリカード。
【請求項２】
請求項１記載のメモリカードにおいて、
前記コントローラは、前記特定アドレスのメモリ領域に、前記外部機器から受けた命令に対する応答を書込むことを特徴とするメモリカード。
【請求項３】
請求項１記載のメモリカードにおいて、
前記コントローラからの命令によりデータの処理を行うＩＣカード機能ユニットを備え、
該ＩＣカード機能ユニットは、前記特定アドレスのメモリ領域に、前記外部機器から受けた命令に対する応答を書込むことを特徴とするメモリカード。
【請求項４】
外部機器からの命令により所定の機能を実行するメモリカードにおいて、
当該メモリカードが実行するプログラムを格納するとともに、上記プログラムを実行させるため外部機器から受けた命令を伝達する命令伝達領域を有する不揮発性メモリと、
上記命令伝達領域から命令を読出し上記プログラムを実行させるコントローラとを備えることを特徴とするメモリカード。
【請求項５】
外部機器からの命令により所定の機能を実行するメモリカードにおいて、
当該メモリカードが実行するプログラムを格納するとともに、上記プログラムを実行させるため外部機器からの命令とこれに対する応答を伝達する命令伝達用フォルダを有する不揮発性メモリと、
上記不揮発性メモリ内に上記命令伝達用フォルダを作成するフォルダ作成手段と、上記作成した命令伝達用フォルダのアドレスを記憶しておくアドレス記憶手段と、上記命令伝達用フォルダから外部機器からの命令を読出すとともに該命令に対する応答を書込む読出し／書込み手段とを有するコントローラと、
を備えることを特徴とするメモリカード。
【請求項６】
外部機器からの命令により所定の機能を実行するメモリカードにおいて、
当該メモリカードが実行するプログラムを格納する不揮発性メモリと、
上記プログラムを実行させるため外部機器からの命令とこれに対する応答を伝達する命令伝達用記憶部と、該命令伝達用記憶部から外部機器からの命令を読出すとともに該命令に対する応答を書込む読出し／書込み手段とを有するコントローラと、
を備えることを特徴とするメモリカード。
【請求項７】
外部機器からの命令によりデータを暗号化するメモリカードにおいて、
データを暗号化するプログラムと暗号化したデータを格納するとともに、上記プログラムを実行させるため外部機器から受けた命令を伝達する命令伝達領域を有する不揮発性メモリと、
上記命令伝達領域から命令を読出しデータを暗号化するコントローラと、
該コントローラからの命令により、データを暗号化するために用いた鍵を保存用鍵を用いて暗号化して格納するＩＣカード機能ユニットとを備えることを特徴とするメモリカード。
【請求項８】
請求項７記載のメモリカードにおいて、
前記コントローラは、データを暗号化するために用いる鍵を生成する鍵生成手段と、上記鍵を用いてデータを暗号化するデータ暗号処理手段とを有し、
前記ＩＣカード機能ユニットは、データを暗号化するために用いた鍵を保存用鍵を用いて暗号化する鍵暗号処理手段と、保存用鍵を用いて暗号化した鍵を格納する鍵格納手段とを有することを特徴とするメモリカード。
【請求項９】
所定のプログラムを格納するメモリカードに対し、外部機器から該プログラムを実行させるためのデータ処理プログラムにおいて、
上記メモリカード内に外部機器から受けた命令を伝達する命令伝達用フォルダを作成するステップと、
上記作成した命令伝達用フォルダに外部機器からの命令を書込むステップと、
上記命令伝達用フォルダに書込まれた外部機器からの命令を読出すステップと、
上記読出した命令に従い上記プログラムを実行するステップと、
を備えることを特徴とするデータ処理プログラム。
【請求項１０】
請求項９記載のデータ処理プログラムにおいて、
前記メモリカードが、前記作成した命令伝達用フォルダのアドレスを記憶するステップと、前記命令伝達用フォルダに、前記外部機器からの命令に対する応答を書込むステップと、
前記外部機器が、上記応答を読出すステップと、
を備えることを特徴とするデータ処理プログラム。
【請求項１１】
所定のプログラムを格納するメモリカードを外部機器に接続して該プログラムを実行するデータ処理方法において、
上記外部機器から上記メモリカードに対する命令を伝達する命令伝達用フォルダを作成し、
上記外部機器は上記命令伝達用フォルダに命令を書込み、
上記メモリカードは上記命令伝達用フォルダに書込まれた外部機器からの命令を読出し、
上記メモリカードは上記読出した命令に従い上記プログラムを実行する、
ことを特徴とするデータ処理方法。
【請求項１２】
請求項１１記載のデータ処理方法において、
前記メモリカードは、前記作成した命令伝達用フォルダのアドレスを記憶し、前記命令伝達用フォルダに、前記外部機器からの命令に対する応答を書込むとともに、
前記外部機器は、上記応答を読出す、
ことを特徴とするデータ処理方法。
【請求項１３】
請求項１１記載のデータ処理方法において、
前記プログラムはデータを暗号化するものであって、
データを暗号化するために用いる鍵を生成し、
上記鍵を用いてデータを暗号化し、
データを暗号化するために用いた鍵を保存用鍵を用いて暗号化し、
保存用鍵を用いて暗号化した鍵を前記メモリカード内のＩＣカード機能ユニットに格納する、
ことを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部機器からの命令で暗号化処理などのプログラムを実行するメモリカード、データ処理プログラムおよびデータ処理方法に関する。
【背景技術】
【０００２】
従来、不揮発性メモリとコントローラを備えたメモリカードは、外部機器とコントローラを介してデータをやり取りし、データを不揮発性メモリへ格納することが可能となっている。また、コントローラを備えていることで、不揮発性メモリへのデータの記録／読出しの安全性を高めることができる（例えば特許文献１）。
【０００３】
外部機器からメモリカードに命令する際、外部機器のドライバがメモリカードを扱うためのファイル管理用の専用コマンドを備えており、外部機器のドライバは、この専用コマンドを用いメモリカードのコントローラに対し命令を送信していた。
【０００４】
特許文献１には、安全性を高めつつ、フラッシュメモリへのデータの記録／読出しができるメモリカードを実現する場合でも、外部機器とメモリカード内のコントローラの間で専用コマンドを設けている。
【０００５】
【特許文献１】特開２００３−２５６２８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示される構成では、メモリカードが新機能（プログラム）を備えた場合、外部機器のドライバは前記新機能を利用するために、新しい専用コマンドを備える必要がある。よって、メモリカードの機能が変わる毎に、外部機器のドライバも新たな機能に対応したインターフェースが必要となる。
【０００７】
また、従来、メモリカードの構成だと、外部機器から見える（認識できる）のは、コントローラと不揮発性メモリだけで、ＩＣカード機能ユニットは見えない。よって、外部機器の命令は、メモリカード内のコントローラに対してのみであり、ＩＣカード機能ユニットに対する命令は備えておらず、外部機器はＩＣカード機能ユニットに対し命令を送ることはできない。
【０００８】
本発明の目的は、外部機器とメモリカード内コントローラの間で専用コマンドを設けることなく、安全性を高めた、不揮発性メモリへのデータの書込み／読出しができるメモリカードを実現することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明のメモリカードは、不揮発性メモリとコントローラを備え、コントローラは、不揮発性メモリ内の特定アドレスに外部機器からの命令を受け取るためのメモリ領域を確保する手段と、上記不揮発性メモリ内の特定アドレスを記憶する手段とを有し、所定の時間ごとに上記確保した特定アドレスのメモリ領域に格納された命令を読出す構成とした。
【００１０】
上記目的を達成するため、本発明のメモリカードは、当該メモリカードが実行するプログラムを格納するとともに、プログラムを実行させるため外部機器から受けた命令を伝達する命令伝達領域を有する不揮発性メモリと、命令伝達領域から命令を読出しプログラムを実行させるコントローラとを備える。
【００１１】
さらに不揮発性メモリ内に命令伝達用フォルダを作成するフォルダ作成手段と、作成した命令伝達用フォルダのアドレスを記憶しておくアドレス記憶手段と、命令伝達用フォルダから外部機器からの命令を読出すとともに該命令に対する応答を書込む読出し／書込み手段とを有する。
【００１２】
また本発明のメモリカードは、データを暗号化するプログラムと暗号化したデータを格納するとともに、プログラムを実行させるため外部機器から受けた命令を伝達する命令伝達領域を有する不揮発性メモリと、命令伝達領域から命令を読出しデータを暗号化するコントローラと、コントローラからの命令により、データを暗号化するために用いた鍵を保存用鍵を用いて暗号化して格納するＩＣカード機能ユニットとを備える。
【００１３】
また、所定のプログラムを格納するメモリカードに対し、外部機器から該プログラムを実行させるためのデータ処理プログラムにおいて、メモリカード内に外部機器から受けた命令を伝達する命令伝達用フォルダを作成するステップと、作成した命令伝達用フォルダに外部機器からの命令を書込むステップと、命令伝達用フォルダに書込まれた外部機器からの命令を読出すステップと、読出した命令に従い上記プログラムを実行するステップとを備える。
【００１４】
また、所定のプログラムを格納するメモリカードを外部機器に接続して該プログラムを実行するデータ処理方法において、外部機器からメモリカードに対する命令を伝達する命令伝達用フォルダを作成し、外部機器は命令伝達用フォルダに命令を書込み、メモリカードは命令伝達用フォルダに書込まれた外部機器からの命令を読出し、メモリカードは読出した命令に従い上記プログラムを実行する。
【発明の効果】
【００１５】
本発明により、外部機器とメモリカードの間で専用コマンドを設けることなく、既存のインターフェースを用いて、不揮発性メモリへのデータの書込み／読出しを安全に実行させることができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態について図面を用いて詳細に説明する。本発明に係わるメモリカードを用いたデータ処理方法として、電子メール処理の場合を例示して説明する。
【実施例１】
【００１７】
図２は、本発明に係るメモリカードを用いた電子メール利用のシステム全体の構成を示す図である。メモリカード１００はクライアント端末２００に接続され、クライアント端末２００は、通信ネットワーク（例えば電話ネットワーク、専用ネットワーク、インターネット）２２０を介してメールサーバ２１０に接続される。
【００１８】
図１は、本発明に係わるメモリカードの一実施例を示すブロック図である。メモリカード１００は、コントローラ１０１と、不揮発性メモリ１１０と、ＩＣカード機能ユニット１１４を備える。
【００１９】
コントローラ１０１は、演算処理部１０２と、暗号処理部Ａ１０４と、認証処理部Ａ１０５と、バッファＲＡＭ１０８と、メール鍵生成部１０９と、命令伝達用アドレス記憶部１２５とを有する。命令伝達用アドレス記憶部１２５は、外部機器１２７からの命令を受け取る不揮発性メモリ１１０内の命令伝達用フォルダ１２４のアドレスを記憶する。さらに、外部機器１２７と接続する外部接続部１０３と、不揮発性メモリ１１０と接続するメモリ接続部１０６と、ＩＣカード機能ユニット１１４と接続するＩＣカード接続部１０７を有する。
【００２０】
不揮発性メモリ１１０は、個人認証プログラム１１１と、メーラープログラム１１２と、メールデータ１１３と、外部機器１２７からの命令をメモリインタフェースを用いて受け取るための命令伝達用フォルダ１２４とを有する。
【００２１】
ＩＣカード機能ユニット１１４は、ＩＣカードの機能を有するユニットで、耐タンパ性を有しているため、容易に内部を観察することができない。すなわち、ＩＣカードにおいては、内部に格納されている機密データは、電流解析・物理解析・故障解析などの様々な攻撃により不正に読出されることは非常に困難である、という特徴を利用している。これに機密性の高いデータを格納しておき、特定の手続き（認証用のパスワードや鍵データによる照合）を行わないと内部データにアクセスすることができない構成である。
【００２２】
ＩＣカード機能ユニット１１４は、演算処理部１２６と、コントローラ１０１のＩＣカード接続部１０７に接続する接続部１１５と、暗号処理部Ｂ１１６と、認証処理部Ｂ１１７と、記憶部１１８を有する。記憶部１１８には、ディレクトリ１１９ａ〜１１９ｄを設け、各ディレクトリ内に、秘密鍵１２０と、公開鍵リスト１２１と、保存用鍵リスト１２２と、メール鍵リスト１２３を格納する。
【００２３】
図３は、ＩＣカード機能ユニット１１４の備える記憶部１１８内のディレクトリ１１９ｂに格納されている公開鍵リスト１２１の例を示す図である。メールの宛先となる相手のメールアドレス３００と、その相手の公開鍵３０１を対応付けて格納している。
【００２４】
図４は、ＩＣカード機能ユニット１１４の備える記憶部１１８内のディレクトリ１１９ｃに格納されている保存用鍵リスト１２２の例を示す図である。保存用鍵４０１は、メール本文を暗号化するために用いるメール鍵をＩＣカード機能ユニット内に保存する際に暗号化して保存するために用いる。保存用鍵４０１は、メールを振り分けて保存するためのフォルダ毎に内容を変えて管理するために、各フォルダ４００に対応付けて格納している。また、フォルダ単位で該フォルダに格納されているデータの読出し、または書き換えを制限するためのコピーコントロール情報４０２を、各フォルダ４００に対応付けて保存用鍵４０１と共に格納している。
【００２５】
図５は、ＩＣカード機能ユニット１１４の備える記憶部１１８内のディレクトリ１１９ｄに格納されているメール鍵リスト１２３の例を示す図である。メール本文を暗号化するために用いるメール鍵５０１を、メールの宛先および差出人のメールアドレス５００に対応付けて格納している。メール鍵５０１は保存用鍵４０１にて暗号化されて格納される。
【００２６】
図６は、メモリカード内のコントローラ１０１とＩＣカード機能ユニット１１４との間でやり取りされる電文構成の一具体例を示す図である。図６に示すように、かかる電文としては、メール送信時のメール鍵受渡電文ａ６００と、メール鍵受渡応答電文ａ６０３と、メール受信時のメール鍵受渡電文ｂ６０５と、メール鍵受渡応答電文ｂ６０７と、メール読出し時の読出し要求電文ａ６０９と、読出し要求応答電文ａ６１１とがあり、それぞれ電文識別符号もしくは電文識別符号に情報データを付加した構成をなしている。
【００２７】
送信時のメール鍵受渡電文ａ６００は、コントローラ１０１からＩＣカード機能ユニット１１４に対し、メールを暗号化するために用いたメール鍵５０１と、メールの宛先となるメールアドレスを送出する電文である。メール鍵受渡電文ａ６００であることを示す電文識別符号６２０に、メールの宛先となるメールアドレス６２１と、コントローラ１０１とＩＣカード機能ユニット１１４の間で行われる相互認証により生成されるセッション鍵２を用い暗号化したメール鍵６２２と、メール鍵受渡電文ａ６００に付加した情報の信憑性を確保するための署名データ６２３が付加された構成をなしている。
【００２８】
これに対するメール鍵受渡応答電文ａ６０３は、メール鍵受渡電文ａ６００の応答としてＩＣカード機能ユニット１１４からコントローラ１０１に対して送出する電文である。メール鍵受渡応答電文ａ６０３であることを示す電文識別符号６３０に、公開鍵３０１を用い暗号化したメール鍵５０１を更に前記セッション鍵２を用い暗号化したメール鍵６３１と、メール鍵受渡応答電文ａ６０３に付加した情報の信憑性を確保するための署名データ６３２が付加された構成をなしている。
【００２９】
受信時のメール鍵受渡電文ｂ６０５は、コントローラ１０１からＩＣカード機能ユニット１１４に対し、メールを暗号化するために用いたメール鍵５０１と、メールの差出人となるメールアドレスを送出する電文である。メール鍵受渡電文ｂ６０５であることを示す電文識別符号６４０に、メールの差出人となるメールアドレス６４１と、コントローラ１０１とＩＣカード機能ユニット１１４の間で行われる相互認証により生成されるセッション鍵２を用い暗号化したメール鍵６４２と、メール鍵受渡電文ｂ６０５に付加した情報の信憑性を確保するための署名データ６４３が付加された構成をなしている。
【００３０】
これに対するメール鍵受渡応答電文ｂ６０７は、メール鍵受渡電文ｂ６０５の応答としてＩＣカード機能ユニット１１４からコントローラ１０１に対して送出する電文である。メール鍵受渡応答電文ｂ６０７であることを示す電文識別符号６５０に、メール鍵受渡応答電文ｂ６０７の信憑性を確保するための署名データ６５１が付加された構成をなしている。
【００３１】
読出し要求電文６０９は、コントローラ１０１からＩＣカード機能ユニット１１４に対し、メモリカード１００内に格納されている暗号化されたメールデータ、及びメールデータの暗号化に用いたメール鍵を読出すために用いる電文である。読出し要求電文６０９であることを示す電文識別符号６６０に、前記セッション鍵２を用い暗号化したメールアドレス６６１と、読出し要求電文６０９の信憑性を確保するための署名データ６６２が付加された構成をなしている。
【００３２】
これに対する読出し要求応答電文６１１は、読出し要求電文６０９の応答としてＩＣカード機能ユニット１１４からコントローラ１０１に対して送出する電文である。読出し要求応答電文６１１であることを示す電文識別符号６７０に、前記セッション鍵２を用い暗号化したメール鍵６７１と、読出し要求応答電文６１１に付加した情報の信憑性を確保するための署名データ６７２が付加された構成をなしている。
【００３３】
なお、各電文６００、６０３、６０５、６０７、６０９、６１１に付加されている署名データは、各電文に付加した情報の信憑性を確保するために用いられており、改ざんされる恐れが少ない場合は省略しても良い。
【００３４】
次に本実施例を電子メールに適用した場合の動作を、図７〜図１３を用いて説明する。図７は、クライアント端末２００にメモリカード１００を接続して、クライアント端末２００とメモリカード１００との間でデータをやり取りする際に、どの様な順序で行うかを示すフロー図である。クライアント端末２００としては、たとえばＰＤＡ、携帯電話機、その他の携帯式情報処理装置、本システム専用の情報処理装置など、様々な形態の情報処理装置を採用することができる。
【００３５】
なお、利用者がクライアント端末２００にメモリカード１００を接続した後や、メーラープログラム１１２を起動した後に、クライアント端末２００とメモリカード１００との間のデータのやり取りを中止する場合や、メーラープログラム１１２を終了する場合もあり、図７に示すフローの途中のステップでも処理を終了することができる。しかしこの途中終了については図示せず、説明も省略する。
【００３６】
ステップＳ７００では、クライアント端末２００にメモリカード１００を、外部接続部１０３を介し接続する。ステップＳ７０１では、クライアント端末２００は、メモリカード１００内の不揮発性メモリ１１０内に格納されているデータを表示する。予め、不揮発性メモリ１１０内に格納されているデータには、夫々に属性を付与しておく。安全性を確保する必要のあるデータは、“隠しファイル”属性を付与しておく。それにより、クライアント端末２００は、データに付与されている前記属性を判定し、“隠しファイル”属性が付与されているデータは表示しない。メモリカード１００は、不揮発性メモリ１１０に格納されている個人認証プログラム１１１以外のデータを“隠しファイル”属性としておく。これによりクライアント端末２００は、メモリカード内のデータ情報として、個人認証プログラム１１１のみを表示する。図８は、その表示の一具体例を示すものである。
【００３７】
ステップＳ７０２では、利用者はクライアント端末２００より個人認証プログラム１１１を実行する。個人認証としてパスワード、生体認証などを用いる。ステップＳ７０３において、クライアント端末２００と利用者との間で個人認証を行う。認証に成功した場合には、ステップＳ７０４において、不揮発性メモリ１１０に格納されている“隠しファイル”属性となっているデータを“アクセス可能”属性とする。これによりクライアント端末２００は、メモリカード内のデータ情報として、“アクセス可能”属性となったデータとして、メーラープログラム１１２、及びメールデータ１１３を表示する。図９はその表示の一具体例を示すものである。
【００３８】
ステップＳ７０５において、利用者はクライアント端末２００よりメーラープログラム１１２を実行する。ステップＳ７０６において、起動したメーラープログラムは初期化処理を行い、メモリカード１００内の不揮発性メモリ１１０内にメール処理に必要なフォルダ１１３を作成させる。
【００３９】
また、前記メーラープログラム１１２は、メーラープログラム１１２からメモリカード１００への命令と、メモリカード１００からメーラープログラム１１２への前記命令に対する応答をやり取りするためのフォルダ１２４を作成させる。それに従い、メモリカード１００内のコントローラ１０１は、上記フォルダ１２４を不揮発性メモリ１１０内に作成するとともに、該フォルダ１２４のアドレスを命令伝達用アドレス記憶部１２５にて記憶しておく。この時、例えば、特定のフォルダ名でフォルダを作成した場合に、メモリカード１００内のコントローラ１０１が該フォルダのアドレスを記憶するようにしても良い。本実施例では、メーラープログラムからの命令とメモリカードからの命令に対する応答をやり取りするためのフォルダを命令伝達用フォルダ１２４と呼ぶ。その後、利用者は実行したメーラープログラムを用いメール処理を始める。
【００４０】
図１０及び図１１は、利用者がメーラープログラムを用いメールを送信する場合の処理手順の一具体例を示すフローチャートである。
【００４１】
ステップＳ１０００で、利用者は、メーラープログラム１１２を用いメールを作成し、ステップＳ１００１において送信を実行する。ステップＳ１００２において、メーラープログラム１１２は、命令伝達用フォルダ１２４に相互認証の実行を命令するデ−タを書込む。メモリカード１００内のコントローラ１０１は、定期的に命令伝達用フォルダ１２４のアドレスを監視している。そして、命令伝達用フォルダにメーラープログラム１１２からの命令が書込まれた場合、その内容を相互認証の実行を命令するものと解釈し、ステップＳ１００３において、メーラープログラム１１２とコントローラ１０１との間で相互認証を実行する。相互認証に成功すると、メーラープログラム１１２とコントローラ１０１との間で、セッションごとに異なる共通のセッション鍵１を保持する。
【００４２】
メーラープログラム１１２は、セッション鍵１を保持すると、ステップＳ１００４において、セッション鍵１を用いて送信予定のメールデータを暗号化して、ステップＳ１００５において、不揮発性メモリ１１０内の特定のアドレス領域１１３に格納する。
【００４３】
一方コントローラ１０１は、前記相互認証が成功するとセッション鍵１を保持し、暗号化された前記メールデータが格納される不揮発性メモリ１１０内の特定のアドレス領域１１３を監視し、前記メールデータが格納されたのを確認すると、ステップＳ１００６において、コントローラ１０１内のバッファＲＡＭ１０８上にて、セッション鍵１を用いて復号化する。
【００４４】
この時、前記メールデータが不揮発性メモリ１１０内の特定のアドレス領域１１３に格納されたことを確認できない場合は、メーラープログラム１１２は、命令伝達用フォルダ１２４にメールの暗号化を命令するデ−タを書込み、コントローラ１０１が、定期的に命令伝達用フォルダ１２４のアドレスを監視することで、命令を伝達させても良い。
【００４５】
コントローラ１０１は、セッション鍵１を用いメールデータを復号化させると、メールデータより宛先となるメールアドレスを取得する。その後ステップＳ１００７において、コントローラ１０１は鍵生成部１０９を用いて、メールデータを暗号化させるためのメール鍵を生成する。ステップＳ１００８で生成したメール鍵を用いてメールデータを暗号化する。
【００４６】
ステップＳ１００９で、コントローラ１０１はＩＣカード機能ユニット１１４に対し相互認証を要求し、これを実行する。相互認証が成功すると、コントローラ１０１とＩＣカード機能ユニット１１４との間でセッションごとに異なる共通のセッション鍵２を保持する。
【００４７】
コントローラ１０１はセッション鍵２を保持すると、ステップＳ１０１０において、セッション鍵２を用いて前記メール鍵を暗号化する。ステップＳ１０１１において、ＩＣカード機能ユニット１１４に向けて、暗号化したメール鍵を前記メールアドレスと共に、メール鍵受渡電文ａ６００を用いて送信する。この時、電文６００に付加するデータとして、前記メール鍵データと前記メールアドレスとを、セッション鍵２を用いて暗号化したデータを付加しても良い。
【００４８】
ＩＣカード機能ユニット１１４は、上記メール鍵受渡電文ａ６００を受け取ると、ステップＳ１０１２において、前記メールアドレスより対応付けられた公開鍵Ａを、公開鍵リスト１２１より検索し取得する。またステップＳ１１００において、電文６００に付加されたデータを、セッション鍵２を用いて復号化する。
【００４９】
ステップＳ１１０１において、復号化した前記メール鍵を、前記公開鍵Ａを用いて暗号化する。またステップＳ１１０２において、保存用鍵リスト１２２より、対応するフォルダ名から保存用鍵を検索し取得する。ステップＳ１１０３において、同じく復号化した前記メール鍵を保存用鍵で暗号化し、ステップＳ１１０４において、メール鍵リスト１２３に加え保存する。
【００５０】
ステップＳ１１０５において、前記公開鍵Ａを用いて暗号化した前記メール鍵を、前記セッション鍵２で暗号化する。ステップＳ１１０６において、メール鍵受渡応答電文ａ６０３を用い、コントローラ１０１に対し、前記公開鍵Ａで暗号化し更にセッション鍵２で暗号化したメール鍵を送信する。
【００５１】
コントローラ１０１は、ステップＳ１１０７において、前記メール鍵で暗号化されたメールデータを不揮発性メモリ１１０内のメールデータ内に格納する。ステップＳ１１０８において、ＩＣカード機能ユニット１１４より、前記メール鍵受渡応答電文ａ６０３を受け取ると、電文６０３に付加されたデータを、セッション鍵２を用いて復号化する。
【００５２】
この時、メールデータ内を複数のフォルダを作成しておき、メールの差出人、または宛先などのメールデータ内の情報を用いメールデータを仕分けして保存しても良い。例えば、図９に示す受信フォルダ９０１や、送信フォルダ９０２がそれに当る。
【００５３】
コントローラ１０１は、ステップＳ１１０９において、前記公開鍵Ａを用いて暗号化された前記メール鍵と、前記メール鍵を用いて暗号化されたメールデータを、前記セッション鍵１を用いて暗号化する。ステップＳ１１１０において、前記セッション鍵１を用いて暗号化したメール鍵とメールデータを不揮発性メモリ１１０内の、特定のアドレス領域に格納する。
【００５４】
メーラープログラム１１２は、ステップＳ１１１１において、命令伝達用フォルダ１２４を監視し、前記セッション鍵１を用いて暗号化したメール鍵とメールデータが格納されたのを確認すると、前記セッション鍵１を用いて、暗号化されたメール鍵とメールデータを復号化する。そして、ステップＳ１１１２にて、メール鍵を付加したメールデータをメールサーバ２１０に送出する。
【００５５】
図１２は、利用者がメーラープログラムを用いメールを受信する場合の処理手順の一具体例を示すフローチャートである。
【００５６】
ステップＳ１２００とステップＳ１２０１では、図１０と同様の動作により、メーラープログラム１１２とコントローラ１０１との間で、セッション鍵１を取得する。
【００５７】
ステップＳ１２０２において、利用者はメーラープログラム１１２より受信を実行し、メーラープログラム１１２は、メールサーバ２１０よりメールを受信する。この時、メール鍵とメールデータが暗号化されたメールを受信した場合、ステップＳ１２０３において、セッション鍵１を用いて前記メール鍵とメールデータを暗号化する。そしてステップＳ１２０４において、不揮発性メモリ１１０内の特定のアドレス領域に格納する。
【００５８】
コントローラ１０１は、命令伝達用フォルダ１２４を監視し、前記セッション鍵１を用いて暗号化したメール鍵とメールデータが格納されたのを確認すると、ステップＳ１２０５において、バッファＲＡＭ１０８上にて、前記セッション鍵１を用いて復号化する。復号化したメールデータから、そのメールデータより差出人となるメールアドレスを取得する。
【００５９】
ステップＳ１２０６において、コントローラ１０１はＩＣカード機能ユニット１１４に対し相互認証を要求し、両者の間で相互認証を実行する。相互認証が成功すると、コントローラ１０１とＩＣカード機能ユニット１１４との間でセッションごとに異なる共通のセッション鍵２を保持する。
【００６０】
コントローラ１０１は、ステップＳ１２０７において、セッション鍵２を用いて前記メール鍵を暗号化する。ステップＳ１２０８において、ＩＣカード機能ユニット１１４に向けて、暗号化したメール鍵を前記メールアドレスと共に、メール鍵受渡電文ｂ６０５を用いて送信する。この時、電文６０５に付加するデータとして、前記メール鍵データと前記メールアドレスとを、セッション鍵２を用いて暗号化したデータを付加しても良い。
【００６１】
ＩＣカード機能ユニット１１４は、ステップＳ１２０９において、上記メール鍵受渡電文ｂ６０５を受け取ると、電文６０５に付加されたデータを、セッション鍵２を用いて復号化する。
【００６２】
またステップＳ１２１０において、保存用鍵リスト１２２より、対応するフォルダ名から保存用鍵を検索し取得する。ステップＳ１２１１において、同じく復号化した前記メール鍵を保存用鍵で暗号化し、ステップＳ１２１２において、メール鍵リスト１２３に加え保存する。
【００６３】
ステップＳ１２１３において、コントローラ１０１に対して、メール鍵保存完了を通知するメール鍵受渡応答電文ｂ６０７を送信する。
【００６４】
コントローラ１０１は、ステップＳ１２１４において、ＩＣカード機能ユニット１１４より前記メール鍵受渡応答電文ｂ６０７を受信すると、前記メール鍵で暗号化されたメールデータを不揮発性メモリ１１０内のメールデータ内に格納する。この時、メールデータ内を複数のフォルダを作成しておき、メールの差出人または宛先などのメールデータ内の情報を用いメールデータを仕分けして保存しても良い。
【００６５】
コントローラ１０１は、ステップＳ１２１５において、メール受信の完了を通知するデータを特定のアドレス領域に格納する。メーラープログラム１１２は、前記命令伝達用フォルダ１２４を監視し、コントローラ１０１より、メール受信完了の通知が格納されたのを確認すると、メール受信処理を終了する。
【００６６】
図１３は、利用者がメーラープログラムを用いメールを閲覧する場合の処理手順の一具体例を示すフローチャートである。
【００６７】
ステップＳ１３００とステップＳ１３０１では、図１０と同様の動作により、メーラープログラム１１２とコントローラ１０１との間で、セッション鍵１を取得する。
【００６８】
ステップＳ１３０２において、不揮発性メモリ１１０内に格納されているメールデータより読出したいメールデータを、特定のアドレス領域に格納する。
【００６９】
コントローラ１０１は、命令伝達用フォルダ１２４を監視し、メールデータが格納されたのを確認すると、ステップＳ１３０３において、ＩＣカード機能ユニット１１４に対し相互認証を要求し、両者の間で相互認証を実行する。相互認証が成功すると、コントローラ１０１とＩＣカード機能ユニット１１４との間でセッションごとに異なる共通のセッション鍵２を保持する。
【００７０】
ステップＳ１３０４において、コントローラ１０１は、前記セッション鍵２を用いて閲覧するメールデータのメールアドレスを暗号化し、ＩＣカード機能ユニット１１４に向けて読出し要求電文６０９を用いて送信する。
【００７１】
ＩＣカード機能ユニット１１４は、ステップＳ１３０５において、上記読出し要求電文６０９を受け取ると、電文６０９に付加されたメールアドレスを復号化し、対応付けられたメール鍵５０１を検索し取得する。
【００７２】
ステップＳ１３０６において、メールアドレスに対応付けられたフォルダ名より保存用鍵を検索し取得し、取得した保存用鍵４０１を用いて前記メール鍵５０１を復号化する。この時、ステップＳ１３０７において、保存用鍵４０１に対応付けられたコピーコントロール情報４０２を判定する。コピーコントロール情報４０２がデータの読出しが可能であれば、ステップＳ１３０８において、秘密鍵１２０を用いてメール鍵５０１を復号化する。
【００７３】
ＩＣカード機能ユニット１１４は、ステップＳ１３０９において、前記セッション鍵２を用いてメール鍵５０１を暗号化する。ステップＳ１３１０において、前記暗号化したメール鍵５０１を、コントローラ１０１に向け、読出し要求応答電文６１１を用いて送出する。
【００７４】
コントローラ１０１は、ＩＣカード機能ユニット１１４からの上記読出し要求応答電文６１１を受信し、ステップＳ１３１１において、受信したメール鍵５０１を、セッション鍵２を用いて復号した後、前記メール鍵５０１とメールデータと前記コピーコントロール情報を、セッション鍵１を用いて暗号化する。ステップＳ１３１２において、不揮発性メモリ１１０内の特定のアドレス領域に、前記暗号化されたメール鍵５０１とメールデータを格納する。
【００７５】
メーラープログラム１１２は、命令伝達用フォルダ１２４を監視し、前記暗号化したメール鍵とメールデータが格納されたのを確認すると、ステップＳ１３１３において、暗号化されたメール鍵とメールデータをセッション鍵１を用いて復号化する。
【００７６】
さらにステップＳ１３１４において、前記コピーコントロール情報を判定し、読出し可能な場合、前記メール鍵を用いてメールデータを復号化し、ステップＳ１３１５において、復号化したメールデータを表示する。
【実施例２】
【００７７】
図１４は、本発明に係るメモリカード１００の他の実施例を示すブロック図である。
【００７８】
メモリカード１００とメーラープログラム１１２との間で、命令を伝達するための方法として、図１に示したメモリカード１００の構成とは別に、コントローラ１０１内に不揮発性メモリ１１０とは別の命令伝達用記憶部１４００を備える構成である。クライアント端末２００は、前記命令伝達用記憶部１４００に命令を書込むドライバを持つ。
【００７９】
図１５は、図１４における前記命令伝達用記憶部１４００に命令を書込むドライバをクライアント端末２００にロードするためのメモリカード１００の構成例を示す図である。メモリカード１００は、不揮発性メモリ１１０内に、前記命令伝達用記憶部１４００に命令を書込むドライバ１５０１と、前記ドライバ１５０１をクライアント端末２００にロードするドライバロードプログラム１５００を備える。コントローラ１０１は、図７のステップＳ７０２において、利用者がクライアント端末２００より個人認証プログラム１１１を実行した時、前記個人認証プログラム１１１が前記ドライバロードプログラム１５００を実行し、前記ドライバロードプログラム１５００は、不揮発性メモリ１１０内のドライバ１５０１をクライアント端末２００へロードする。
【００８０】
図１６は、メーラープログラム１１２が、メモリカード１００内のコントローラ１０１に対し命令をする場合の、メーラープログラム１１２の構成例を示す図である。メーラープログラム１１２は、メモリカード１００のコントローラ１０１と認証処理を行う認証処理部１６００と、メモリカード１００に送信するデータを暗号化するための暗号処理部１６０１と、メモリカード１００内の前記命令伝達用記憶部１４００に命令を伝達するための命令伝達部１６０２と、メーラープログラム１１２が定期的にメモリカード１００からの応答を取得するための応答取得部１６０３を備える。
【００８１】
図１７は、クライアント端末２００にロードされたドライバ１５０１が、メモリカード内のコントローラ１０１に対し命令をする場合の、前記命令伝達用記憶部１４００に命令を書込むドライバ１５０１の構成例を示す図である。前記ドライバ１５０１は、メモリカード１００のコントローラ１０１と認証処理を行う認証処理部１７００と、メモリカード１００に送信するデータを暗号化するための暗号処理部１７０１と、メモリカード１００内の前記命令伝達用記憶部１４００に命令を伝達するための命令伝達部１７０２と、メーラープログラム１１２が定期的にメモリカード１００からの応答を取得するための応答取得部１７０３を備える。
【００８２】
本実施例により、前記命令伝達用記憶部１４００に命令を書込むドライバを持たないクライアント端末２００であっても、メモリカード１００に格納されているドライバ１５０１を取得して、新たな命令を発することができる。
【００８３】
上記実施例では、本発明のメモリカードを電子メールに利用した場合を例に説明した。しかし、これは本発明の説明のための１つの例示であり、文書ビューアー及び文書編集プログラムを用いて文書ファイルの閲覧及び編集に利用する場合、または画像ビューアー及び画像編集プログラムを用いて画像ファイルの閲覧及び編集に利用する場合などにおいても、本発明が適用できることはいうまでもない。
【図面の簡単な説明】
【００８４】
【図１】本発明に係わるメモリカードの一実施例を示すブロック図。
【図２】図１のメモリカードを用いた電子メール利用のシステム全体の構成図。
【図３】図１における公開鍵リスト１２１の例を示す図。
【図４】図１における保存用鍵リスト１２２の例を示す図。
【図５】図１におけるメール鍵リスト１２３の例を示す図。
【図６】図１におけるコントローラ１０１とＩＣカード機能ユニット１１４との間の電文構成の一例を示す図。
【図７】図２におけるクライアント端末２００とメモリカード１００との間のデータ処理を示すフローチャート。
【図８】図１のメモリカードに格納されたデータの表示の一例を示す図。
【図９】図１のメモリカードに格納されたデータの表示の一例を示す図。
【図１０】図２においてメールを送信する場合のフローチャートの一例。
【図１１】図２においてメールを送信する場合のフローチャートの一例。
【図１２】図２においてメールを受信する場合のフローチャートの一例。
【図１３】図２においてメールを閲覧する場合のフローチャートの一例。
【図１４】本発明に係るメモリカードの他の実施例を示すブロック図。
【図１５】図１４に関連しクライアント端末にドライバ１５０１をロードするためのメモリカードの構成例を示す図。
【図１６】図１４におけるメーラプログラム１１２の構成例を示す図。
【図１７】図１５におけるドライバ１５０１の構成例を示す図。
【符号の説明】
【００８５】
１００…メモリカード、１０１…コントローラ、１０２…演算処理部、１０４…暗号処理部Ａ、１０９…鍵生成部、１１０…不揮発性メモリ、１１２…メーラープログラム、１１４…ＩＣカード機能ユニット、１１６…暗号処理部Ｂ、１１８…記憶部、１２４…命令伝達用フォルダ、１２５…命令伝達用アドレス記憶部、１２６…演算処理部、１２７…外部機器、２００…クライアント端末、１４００…命令伝達用記憶部、１５０１…ドライバ。
【図１】
2006011816.tif 000003
【図２】
2006011816.tif 000004
【図３】
2006011816.tif 000005
【図４】
2006011816.tif 000006
【図５】
2006011816.tif 000007
【図６】
2006011816.tif 000008
【図７】
2006011816.tif 000009
【図８】
2006011816.tif 000010
【図９】
2006011816.tif 000011
【図１０】
2006011816.tif 000012
【図１１】
2006011816.tif 000013
【図１２】
2006011816.tif 000014
【図１３】
2006011816.tif 000015
【図１４】
2006011816.tif 000016
【図１５】
2006011816.tif 000017
【図１６】
2006011816.tif 000018
【図１７】
2006011816.tif 000019