メモリカード、データ処理プログラムおよびデータ処理方法
【課題】外部機器とメモリカード内コントローラの間で専用コマンドを設けることなく、安全性を高めた、不揮発性メモリへのデータの書込み/読出しができるメモリカードを実現すること。
【解決手段】本発明のメモリカード100は、不揮発性メモリ110と、コントローラ101を備える。コントローラ101は、不揮発性メモリ110内の特定アドレスに外部機器127からの命令を受け取るためのメモリ領域を確保する手段と、上記不揮発性メモリ110内の特定アドレスを記憶する手段とを有し、上記確保したメモリ領域に格納された外部機器からの命令を読出す。
【解決手段】本発明のメモリカード100は、不揮発性メモリ110と、コントローラ101を備える。コントローラ101は、不揮発性メモリ110内の特定アドレスに外部機器127からの命令を受け取るためのメモリ領域を確保する手段と、上記不揮発性メモリ110内の特定アドレスを記憶する手段とを有し、上記確保したメモリ領域に格納された外部機器からの命令を読出す。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外部機器からの命令で暗号化処理などのプログラムを実行するメモリカード、データ処理プログラムおよびデータ処理方法に関する。
【背景技術】
【0002】
従来、不揮発性メモリとコントローラを備えたメモリカードは、外部機器とコントローラを介してデータをやり取りし、データを不揮発性メモリへ格納することが可能となっている。また、コントローラを備えていることで、不揮発性メモリへのデータの記録/読出しの安全性を高めることができる(例えば特許文献1)。
【0003】
外部機器からメモリカードに命令する際、外部機器のドライバがメモリカードを扱うためのファイル管理用の専用コマンドを備えており、外部機器のドライバは、この専用コマンドを用いメモリカードのコントローラに対し命令を送信していた。
【0004】
特許文献1には、安全性を高めつつ、フラッシュメモリへのデータの記録/読出しができるメモリカードを実現する場合でも、外部機器とメモリカード内のコントローラの間で専用コマンドを設けている。
【0005】
【特許文献1】特開2003−256282号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
特許文献1に開示される構成では、メモリカードが新機能(プログラム)を備えた場合、外部機器のドライバは前記新機能を利用するために、新しい専用コマンドを備える必要がある。よって、メモリカードの機能が変わる毎に、外部機器のドライバも新たな機能に対応したインターフェースが必要となる。
【0007】
また、従来、メモリカードの構成だと、外部機器から見える(認識できる)のは、コントローラと不揮発性メモリだけで、ICカード機能ユニットは見えない。よって、外部機器の命令は、メモリカード内のコントローラに対してのみであり、ICカード機能ユニットに対する命令は備えておらず、外部機器はICカード機能ユニットに対し命令を送ることはできない。
【0008】
本発明の目的は、外部機器とメモリカード内コントローラの間で専用コマンドを設けることなく、安全性を高めた、不揮発性メモリへのデータの書込み/読出しができるメモリカードを実現することにある。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本発明のメモリカードは、不揮発性メモリとコントローラを備え、コントローラは、不揮発性メモリ内の特定アドレスに外部機器からの命令を受け取るためのメモリ領域を確保する手段と、上記不揮発性メモリ内の特定アドレスを記憶する手段とを有し、所定の時間ごとに上記確保した特定アドレスのメモリ領域に格納された命令を読出す構成とした。
【0010】
上記目的を達成するため、本発明のメモリカードは、当該メモリカードが実行するプログラムを格納するとともに、プログラムを実行させるため外部機器から受けた命令を伝達する命令伝達領域を有する不揮発性メモリと、命令伝達領域から命令を読出しプログラムを実行させるコントローラとを備える。
【0011】
さらに不揮発性メモリ内に命令伝達用フォルダを作成するフォルダ作成手段と、作成した命令伝達用フォルダのアドレスを記憶しておくアドレス記憶手段と、命令伝達用フォルダから外部機器からの命令を読出すとともに該命令に対する応答を書込む読出し/書込み手段とを有する。
【0012】
また本発明のメモリカードは、データを暗号化するプログラムと暗号化したデータを格納するとともに、プログラムを実行させるため外部機器から受けた命令を伝達する命令伝達領域を有する不揮発性メモリと、命令伝達領域から命令を読出しデータを暗号化するコントローラと、コントローラからの命令により、データを暗号化するために用いた鍵を保存用鍵を用いて暗号化して格納するICカード機能ユニットとを備える。
【0013】
また、所定のプログラムを格納するメモリカードに対し、外部機器から該プログラムを実行させるためのデータ処理プログラムにおいて、メモリカード内に外部機器から受けた命令を伝達する命令伝達用フォルダを作成するステップと、作成した命令伝達用フォルダに外部機器からの命令を書込むステップと、命令伝達用フォルダに書込まれた外部機器からの命令を読出すステップと、読出した命令に従い上記プログラムを実行するステップとを備える。
【0014】
また、所定のプログラムを格納するメモリカードを外部機器に接続して該プログラムを実行するデータ処理方法において、外部機器からメモリカードに対する命令を伝達する命令伝達用フォルダを作成し、外部機器は命令伝達用フォルダに命令を書込み、メモリカードは命令伝達用フォルダに書込まれた外部機器からの命令を読出し、メモリカードは読出した命令に従い上記プログラムを実行する。
【発明の効果】
【0015】
本発明により、外部機器とメモリカードの間で専用コマンドを設けることなく、既存のインターフェースを用いて、不揮発性メモリへのデータの書込み/読出しを安全に実行させることができる。
【発明を実施するための最良の形態】
【0016】
以下、本発明の実施形態について図面を用いて詳細に説明する。本発明に係わるメモリカードを用いたデータ処理方法として、電子メール処理の場合を例示して説明する。
【実施例1】
【0017】
図2は、本発明に係るメモリカードを用いた電子メール利用のシステム全体の構成を示す図である。メモリカード100はクライアント端末200に接続され、クライアント端末200は、通信ネットワーク(例えば電話ネットワーク、専用ネットワーク、インターネット)220を介してメールサーバ210に接続される。
【0018】
図1は、本発明に係わるメモリカードの一実施例を示すブロック図である。メモリカード100は、コントローラ101と、不揮発性メモリ110と、ICカード機能ユニット114を備える。
【0019】
コントローラ101は、演算処理部102と、暗号処理部A104と、認証処理部A105と、バッファRAM108と、メール鍵生成部109と、命令伝達用アドレス記憶部125とを有する。命令伝達用アドレス記憶部125は、外部機器127からの命令を受け取る不揮発性メモリ110内の命令伝達用フォルダ124のアドレスを記憶する。さらに、外部機器127と接続する外部接続部103と、不揮発性メモリ110と接続するメモリ接続部106と、ICカード機能ユニット114と接続するICカード接続部107を有する。
【0020】
不揮発性メモリ110は、個人認証プログラム111と、メーラープログラム112と、メールデータ113と、外部機器127からの命令をメモリインタフェースを用いて受け取るための命令伝達用フォルダ124とを有する。
【0021】
ICカード機能ユニット114は、ICカードの機能を有するユニットで、耐タンパ性を有しているため、容易に内部を観察することができない。すなわち、ICカードにおいては、内部に格納されている機密データは、電流解析・物理解析・故障解析などの様々な攻撃により不正に読出されることは非常に困難である、という特徴を利用している。これに機密性の高いデータを格納しておき、特定の手続き(認証用のパスワードや鍵データによる照合)を行わないと内部データにアクセスすることができない構成である。
【0022】
ICカード機能ユニット114は、演算処理部126と、コントローラ101のICカード接続部107に接続する接続部115と、暗号処理部B116と、認証処理部B117と、記憶部118を有する。記憶部118には、ディレクトリ119a〜119dを設け、各ディレクトリ内に、秘密鍵120と、公開鍵リスト121と、保存用鍵リスト122と、メール鍵リスト123を格納する。
【0023】
図3は、ICカード機能ユニット114の備える記憶部118内のディレクトリ119bに格納されている公開鍵リスト121の例を示す図である。メールの宛先となる相手のメールアドレス300と、その相手の公開鍵301を対応付けて格納している。
【0024】
図4は、ICカード機能ユニット114の備える記憶部118内のディレクトリ119cに格納されている保存用鍵リスト122の例を示す図である。保存用鍵401は、メール本文を暗号化するために用いるメール鍵をICカード機能ユニット内に保存する際に暗号化して保存するために用いる。保存用鍵401は、メールを振り分けて保存するためのフォルダ毎に内容を変えて管理するために、各フォルダ400に対応付けて格納している。また、フォルダ単位で該フォルダに格納されているデータの読出し、または書き換えを制限するためのコピーコントロール情報402を、各フォルダ400に対応付けて保存用鍵401と共に格納している。
【0025】
図5は、ICカード機能ユニット114の備える記憶部118内のディレクトリ119dに格納されているメール鍵リスト123の例を示す図である。メール本文を暗号化するために用いるメール鍵501を、メールの宛先および差出人のメールアドレス500に対応付けて格納している。メール鍵501は保存用鍵401にて暗号化されて格納される。
【0026】
図6は、メモリカード内のコントローラ101とICカード機能ユニット114との間でやり取りされる電文構成の一具体例を示す図である。図6に示すように、かかる電文としては、メール送信時のメール鍵受渡電文a600と、メール鍵受渡応答電文a603と、メール受信時のメール鍵受渡電文b605と、メール鍵受渡応答電文b607と、メール読出し時の読出し要求電文a609と、読出し要求応答電文a611とがあり、それぞれ電文識別符号もしくは電文識別符号に情報データを付加した構成をなしている。
【0027】
送信時のメール鍵受渡電文a600は、コントローラ101からICカード機能ユニット114に対し、メールを暗号化するために用いたメール鍵501と、メールの宛先となるメールアドレスを送出する電文である。メール鍵受渡電文a600であることを示す電文識別符号620に、メールの宛先となるメールアドレス621と、コントローラ101とICカード機能ユニット114の間で行われる相互認証により生成されるセッション鍵2を用い暗号化したメール鍵622と、メール鍵受渡電文a600に付加した情報の信憑性を確保するための署名データ623が付加された構成をなしている。
【0028】
これに対するメール鍵受渡応答電文a603は、メール鍵受渡電文a600の応答としてICカード機能ユニット114からコントローラ101に対して送出する電文である。メール鍵受渡応答電文a603であることを示す電文識別符号630に、公開鍵301を用い暗号化したメール鍵501を更に前記セッション鍵2を用い暗号化したメール鍵631と、メール鍵受渡応答電文a603に付加した情報の信憑性を確保するための署名データ632が付加された構成をなしている。
【0029】
受信時のメール鍵受渡電文b605は、コントローラ101からICカード機能ユニット114に対し、メールを暗号化するために用いたメール鍵501と、メールの差出人となるメールアドレスを送出する電文である。メール鍵受渡電文b605であることを示す電文識別符号640に、メールの差出人となるメールアドレス641と、コントローラ101とICカード機能ユニット114の間で行われる相互認証により生成されるセッション鍵2を用い暗号化したメール鍵642と、メール鍵受渡電文b605に付加した情報の信憑性を確保するための署名データ643が付加された構成をなしている。
【0030】
これに対するメール鍵受渡応答電文b607は、メール鍵受渡電文b605の応答としてICカード機能ユニット114からコントローラ101に対して送出する電文である。メール鍵受渡応答電文b607であることを示す電文識別符号650に、メール鍵受渡応答電文b607の信憑性を確保するための署名データ651が付加された構成をなしている。
【0031】
読出し要求電文609は、コントローラ101からICカード機能ユニット114に対し、メモリカード100内に格納されている暗号化されたメールデータ、及びメールデータの暗号化に用いたメール鍵を読出すために用いる電文である。読出し要求電文609であることを示す電文識別符号660に、前記セッション鍵2を用い暗号化したメールアドレス661と、読出し要求電文609の信憑性を確保するための署名データ662が付加された構成をなしている。
【0032】
これに対する読出し要求応答電文611は、読出し要求電文609の応答としてICカード機能ユニット114からコントローラ101に対して送出する電文である。読出し要求応答電文611であることを示す電文識別符号670に、前記セッション鍵2を用い暗号化したメール鍵671と、読出し要求応答電文611に付加した情報の信憑性を確保するための署名データ672が付加された構成をなしている。
【0033】
なお、各電文600、603、605、607、609、611に付加されている署名データは、各電文に付加した情報の信憑性を確保するために用いられており、改ざんされる恐れが少ない場合は省略しても良い。
【0034】
次に本実施例を電子メールに適用した場合の動作を、図7〜図13を用いて説明する。図7は、クライアント端末200にメモリカード100を接続して、クライアント端末200とメモリカード100との間でデータをやり取りする際に、どの様な順序で行うかを示すフロー図である。クライアント端末200としては、たとえばPDA、携帯電話機、その他の携帯式情報処理装置、本システム専用の情報処理装置など、様々な形態の情報処理装置を採用することができる。
【0035】
なお、利用者がクライアント端末200にメモリカード100を接続した後や、メーラープログラム112を起動した後に、クライアント端末200とメモリカード100との間のデータのやり取りを中止する場合や、メーラープログラム112を終了する場合もあり、図7に示すフローの途中のステップでも処理を終了することができる。しかしこの途中終了については図示せず、説明も省略する。
【0036】
ステップS700では、クライアント端末200にメモリカード100を、外部接続部103を介し接続する。ステップS701では、クライアント端末200は、メモリカード100内の不揮発性メモリ110内に格納されているデータを表示する。予め、不揮発性メモリ110内に格納されているデータには、夫々に属性を付与しておく。安全性を確保する必要のあるデータは、“隠しファイル”属性を付与しておく。それにより、クライアント端末200は、データに付与されている前記属性を判定し、“隠しファイル”属性が付与されているデータは表示しない。メモリカード100は、不揮発性メモリ110に格納されている個人認証プログラム111以外のデータを“隠しファイル”属性としておく。これによりクライアント端末200は、メモリカード内のデータ情報として、個人認証プログラム111のみを表示する。図8は、その表示の一具体例を示すものである。
【0037】
ステップS702では、利用者はクライアント端末200より個人認証プログラム111を実行する。個人認証としてパスワード、生体認証などを用いる。ステップS703において、クライアント端末200と利用者との間で個人認証を行う。認証に成功した場合には、ステップS704において、不揮発性メモリ110に格納されている“隠しファイル”属性となっているデータを“アクセス可能”属性とする。これによりクライアント端末200は、メモリカード内のデータ情報として、“アクセス可能”属性となったデータとして、メーラープログラム112、及びメールデータ113を表示する。図9はその表示の一具体例を示すものである。
【0038】
ステップS705において、利用者はクライアント端末200よりメーラープログラム112を実行する。ステップS706において、起動したメーラープログラムは初期化処理を行い、メモリカード100内の不揮発性メモリ110内にメール処理に必要なフォルダ113を作成させる。
【0039】
また、前記メーラープログラム112は、メーラープログラム112からメモリカード100への命令と、メモリカード100からメーラープログラム112への前記命令に対する応答をやり取りするためのフォルダ124を作成させる。それに従い、メモリカード100内のコントローラ101は、上記フォルダ124を不揮発性メモリ110内に作成するとともに、該フォルダ124のアドレスを命令伝達用アドレス記憶部125にて記憶しておく。この時、例えば、特定のフォルダ名でフォルダを作成した場合に、メモリカード100内のコントローラ101が該フォルダのアドレスを記憶するようにしても良い。本実施例では、メーラープログラムからの命令とメモリカードからの命令に対する応答をやり取りするためのフォルダを命令伝達用フォルダ124と呼ぶ。その後、利用者は実行したメーラープログラムを用いメール処理を始める。
【0040】
図10及び図11は、利用者がメーラープログラムを用いメールを送信する場合の処理手順の一具体例を示すフローチャートである。
【0041】
ステップS1000で、利用者は、メーラープログラム112を用いメールを作成し、ステップS1001において送信を実行する。ステップS1002において、メーラープログラム112は、命令伝達用フォルダ124に相互認証の実行を命令するデ−タを書込む。メモリカード100内のコントローラ101は、定期的に命令伝達用フォルダ124のアドレスを監視している。そして、命令伝達用フォルダにメーラープログラム112からの命令が書込まれた場合、その内容を相互認証の実行を命令するものと解釈し、ステップS1003において、メーラープログラム112とコントローラ101との間で相互認証を実行する。相互認証に成功すると、メーラープログラム112とコントローラ101との間で、セッションごとに異なる共通のセッション鍵1を保持する。
【0042】
メーラープログラム112は、セッション鍵1を保持すると、ステップS1004において、セッション鍵1を用いて送信予定のメールデータを暗号化して、ステップS1005において、不揮発性メモリ110内の特定のアドレス領域113に格納する。
【0043】
一方コントローラ101は、前記相互認証が成功するとセッション鍵1を保持し、暗号化された前記メールデータが格納される不揮発性メモリ110内の特定のアドレス領域113を監視し、前記メールデータが格納されたのを確認すると、ステップS1006において、コントローラ101内のバッファRAM108上にて、セッション鍵1を用いて復号化する。
【0044】
この時、前記メールデータが不揮発性メモリ110内の特定のアドレス領域113に格納されたことを確認できない場合は、メーラープログラム112は、命令伝達用フォルダ124にメールの暗号化を命令するデ−タを書込み、コントローラ101が、定期的に命令伝達用フォルダ124のアドレスを監視することで、命令を伝達させても良い。
【0045】
コントローラ101は、セッション鍵1を用いメールデータを復号化させると、メールデータより宛先となるメールアドレスを取得する。その後ステップS1007において、コントローラ101は鍵生成部109を用いて、メールデータを暗号化させるためのメール鍵を生成する。ステップS1008で生成したメール鍵を用いてメールデータを暗号化する。
【0046】
ステップS1009で、コントローラ101はICカード機能ユニット114に対し相互認証を要求し、これを実行する。相互認証が成功すると、コントローラ101とICカード機能ユニット114との間でセッションごとに異なる共通のセッション鍵2を保持する。
【0047】
コントローラ101はセッション鍵2を保持すると、ステップS1010において、セッション鍵2を用いて前記メール鍵を暗号化する。ステップS1011において、ICカード機能ユニット114に向けて、暗号化したメール鍵を前記メールアドレスと共に、メール鍵受渡電文a600を用いて送信する。この時、電文600に付加するデータとして、前記メール鍵データと前記メールアドレスとを、セッション鍵2を用いて暗号化したデータを付加しても良い。
【0048】
ICカード機能ユニット114は、上記メール鍵受渡電文a600を受け取ると、ステップS1012において、前記メールアドレスより対応付けられた公開鍵Aを、公開鍵リスト121より検索し取得する。またステップS1100において、電文600に付加されたデータを、セッション鍵2を用いて復号化する。
【0049】
ステップS1101において、復号化した前記メール鍵を、前記公開鍵Aを用いて暗号化する。またステップS1102において、保存用鍵リスト122より、対応するフォルダ名から保存用鍵を検索し取得する。ステップS1103において、同じく復号化した前記メール鍵を保存用鍵で暗号化し、ステップS1104において、メール鍵リスト123に加え保存する。
【0050】
ステップS1105において、前記公開鍵Aを用いて暗号化した前記メール鍵を、前記セッション鍵2で暗号化する。ステップS1106において、メール鍵受渡応答電文a603を用い、コントローラ101に対し、前記公開鍵Aで暗号化し更にセッション鍵2で暗号化したメール鍵を送信する。
【0051】
コントローラ101は、ステップS1107において、前記メール鍵で暗号化されたメールデータを不揮発性メモリ110内のメールデータ内に格納する。ステップS1108において、ICカード機能ユニット114より、前記メール鍵受渡応答電文a603を受け取ると、電文603に付加されたデータを、セッション鍵2を用いて復号化する。
【0052】
この時、メールデータ内を複数のフォルダを作成しておき、メールの差出人、または宛先などのメールデータ内の情報を用いメールデータを仕分けして保存しても良い。例えば、図9に示す受信フォルダ901や、送信フォルダ902がそれに当る。
【0053】
コントローラ101は、ステップS1109において、前記公開鍵Aを用いて暗号化された前記メール鍵と、前記メール鍵を用いて暗号化されたメールデータを、前記セッション鍵1を用いて暗号化する。ステップS1110において、前記セッション鍵1を用いて暗号化したメール鍵とメールデータを不揮発性メモリ110内の、特定のアドレス領域に格納する。
【0054】
メーラープログラム112は、ステップS1111において、命令伝達用フォルダ124を監視し、前記セッション鍵1を用いて暗号化したメール鍵とメールデータが格納されたのを確認すると、前記セッション鍵1を用いて、暗号化されたメール鍵とメールデータを復号化する。そして、ステップS1112にて、メール鍵を付加したメールデータをメールサーバ210に送出する。
【0055】
図12は、利用者がメーラープログラムを用いメールを受信する場合の処理手順の一具体例を示すフローチャートである。
【0056】
ステップS1200とステップS1201では、図10と同様の動作により、メーラープログラム112とコントローラ101との間で、セッション鍵1を取得する。
【0057】
ステップS1202において、利用者はメーラープログラム112より受信を実行し、メーラープログラム112は、メールサーバ210よりメールを受信する。この時、メール鍵とメールデータが暗号化されたメールを受信した場合、ステップS1203において、セッション鍵1を用いて前記メール鍵とメールデータを暗号化する。そしてステップS1204において、不揮発性メモリ110内の特定のアドレス領域に格納する。
【0058】
コントローラ101は、命令伝達用フォルダ124を監視し、前記セッション鍵1を用いて暗号化したメール鍵とメールデータが格納されたのを確認すると、ステップS1205において、バッファRAM108上にて、前記セッション鍵1を用いて復号化する。復号化したメールデータから、そのメールデータより差出人となるメールアドレスを取得する。
【0059】
ステップS1206において、コントローラ101はICカード機能ユニット114に対し相互認証を要求し、両者の間で相互認証を実行する。相互認証が成功すると、コントローラ101とICカード機能ユニット114との間でセッションごとに異なる共通のセッション鍵2を保持する。
【0060】
コントローラ101は、ステップS1207において、セッション鍵2を用いて前記メール鍵を暗号化する。ステップS1208において、ICカード機能ユニット114に向けて、暗号化したメール鍵を前記メールアドレスと共に、メール鍵受渡電文b605を用いて送信する。この時、電文605に付加するデータとして、前記メール鍵データと前記メールアドレスとを、セッション鍵2を用いて暗号化したデータを付加しても良い。
【0061】
ICカード機能ユニット114は、ステップS1209において、上記メール鍵受渡電文b605を受け取ると、電文605に付加されたデータを、セッション鍵2を用いて復号化する。
【0062】
またステップS1210において、保存用鍵リスト122より、対応するフォルダ名から保存用鍵を検索し取得する。ステップS1211において、同じく復号化した前記メール鍵を保存用鍵で暗号化し、ステップS1212において、メール鍵リスト123に加え保存する。
【0063】
ステップS1213において、コントローラ101に対して、メール鍵保存完了を通知するメール鍵受渡応答電文b607を送信する。
【0064】
コントローラ101は、ステップS1214において、ICカード機能ユニット114より前記メール鍵受渡応答電文b607を受信すると、前記メール鍵で暗号化されたメールデータを不揮発性メモリ110内のメールデータ内に格納する。この時、メールデータ内を複数のフォルダを作成しておき、メールの差出人または宛先などのメールデータ内の情報を用いメールデータを仕分けして保存しても良い。
【0065】
コントローラ101は、ステップS1215において、メール受信の完了を通知するデータを特定のアドレス領域に格納する。メーラープログラム112は、前記命令伝達用フォルダ124を監視し、コントローラ101より、メール受信完了の通知が格納されたのを確認すると、メール受信処理を終了する。
【0066】
図13は、利用者がメーラープログラムを用いメールを閲覧する場合の処理手順の一具体例を示すフローチャートである。
【0067】
ステップS1300とステップS1301では、図10と同様の動作により、メーラープログラム112とコントローラ101との間で、セッション鍵1を取得する。
【0068】
ステップS1302において、不揮発性メモリ110内に格納されているメールデータより読出したいメールデータを、特定のアドレス領域に格納する。
【0069】
コントローラ101は、命令伝達用フォルダ124を監視し、メールデータが格納されたのを確認すると、ステップS1303において、ICカード機能ユニット114に対し相互認証を要求し、両者の間で相互認証を実行する。相互認証が成功すると、コントローラ101とICカード機能ユニット114との間でセッションごとに異なる共通のセッション鍵2を保持する。
【0070】
ステップS1304において、コントローラ101は、前記セッション鍵2を用いて閲覧するメールデータのメールアドレスを暗号化し、ICカード機能ユニット114に向けて読出し要求電文609を用いて送信する。
【0071】
ICカード機能ユニット114は、ステップS1305において、上記読出し要求電文609を受け取ると、電文609に付加されたメールアドレスを復号化し、対応付けられたメール鍵501を検索し取得する。
【0072】
ステップS1306において、メールアドレスに対応付けられたフォルダ名より保存用鍵を検索し取得し、取得した保存用鍵401を用いて前記メール鍵501を復号化する。この時、ステップS1307において、保存用鍵401に対応付けられたコピーコントロール情報402を判定する。コピーコントロール情報402がデータの読出しが可能であれば、ステップS1308において、秘密鍵120を用いてメール鍵501を復号化する。
【0073】
ICカード機能ユニット114は、ステップS1309において、前記セッション鍵2を用いてメール鍵501を暗号化する。ステップS1310において、前記暗号化したメール鍵501を、コントローラ101に向け、読出し要求応答電文611を用いて送出する。
【0074】
コントローラ101は、ICカード機能ユニット114からの上記読出し要求応答電文611を受信し、ステップS1311において、受信したメール鍵501を、セッション鍵2を用いて復号した後、前記メール鍵501とメールデータと前記コピーコントロール情報を、セッション鍵1を用いて暗号化する。ステップS1312において、不揮発性メモリ110内の特定のアドレス領域に、前記暗号化されたメール鍵501とメールデータを格納する。
【0075】
メーラープログラム112は、命令伝達用フォルダ124を監視し、前記暗号化したメール鍵とメールデータが格納されたのを確認すると、ステップS1313において、暗号化されたメール鍵とメールデータをセッション鍵1を用いて復号化する。
【0076】
さらにステップS1314において、前記コピーコントロール情報を判定し、読出し可能な場合、前記メール鍵を用いてメールデータを復号化し、ステップS1315において、復号化したメールデータを表示する。
【実施例2】
【0077】
図14は、本発明に係るメモリカード100の他の実施例を示すブロック図である。
【0078】
メモリカード100とメーラープログラム112との間で、命令を伝達するための方法として、図1に示したメモリカード100の構成とは別に、コントローラ101内に不揮発性メモリ110とは別の命令伝達用記憶部1400を備える構成である。クライアント端末200は、前記命令伝達用記憶部1400に命令を書込むドライバを持つ。
【0079】
図15は、図14における前記命令伝達用記憶部1400に命令を書込むドライバをクライアント端末200にロードするためのメモリカード100の構成例を示す図である。メモリカード100は、不揮発性メモリ110内に、前記命令伝達用記憶部1400に命令を書込むドライバ1501と、前記ドライバ1501をクライアント端末200にロードするドライバロードプログラム1500を備える。コントローラ101は、図7のステップS702において、利用者がクライアント端末200より個人認証プログラム111を実行した時、前記個人認証プログラム111が前記ドライバロードプログラム1500を実行し、前記ドライバロードプログラム1500は、不揮発性メモリ110内のドライバ1501をクライアント端末200へロードする。
【0080】
図16は、メーラープログラム112が、メモリカード100内のコントローラ101に対し命令をする場合の、メーラープログラム112の構成例を示す図である。メーラープログラム112は、メモリカード100のコントローラ101と認証処理を行う認証処理部1600と、メモリカード100に送信するデータを暗号化するための暗号処理部1601と、メモリカード100内の前記命令伝達用記憶部1400に命令を伝達するための命令伝達部1602と、メーラープログラム112が定期的にメモリカード100からの応答を取得するための応答取得部1603を備える。
【0081】
図17は、クライアント端末200にロードされたドライバ1501が、メモリカード内のコントローラ101に対し命令をする場合の、前記命令伝達用記憶部1400に命令を書込むドライバ1501の構成例を示す図である。前記ドライバ1501は、メモリカード100のコントローラ101と認証処理を行う認証処理部1700と、メモリカード100に送信するデータを暗号化するための暗号処理部1701と、メモリカード100内の前記命令伝達用記憶部1400に命令を伝達するための命令伝達部1702と、メーラープログラム112が定期的にメモリカード100からの応答を取得するための応答取得部1703を備える。
【0082】
本実施例により、前記命令伝達用記憶部1400に命令を書込むドライバを持たないクライアント端末200であっても、メモリカード100に格納されているドライバ1501を取得して、新たな命令を発することができる。
【0083】
上記実施例では、本発明のメモリカードを電子メールに利用した場合を例に説明した。しかし、これは本発明の説明のための1つの例示であり、文書ビューアー及び文書編集プログラムを用いて文書ファイルの閲覧及び編集に利用する場合、または画像ビューアー及び画像編集プログラムを用いて画像ファイルの閲覧及び編集に利用する場合などにおいても、本発明が適用できることはいうまでもない。
【図面の簡単な説明】
【0084】
【図1】本発明に係わるメモリカードの一実施例を示すブロック図。
【図2】図1のメモリカードを用いた電子メール利用のシステム全体の構成図。
【図3】図1における公開鍵リスト121の例を示す図。
【図4】図1における保存用鍵リスト122の例を示す図。
【図5】図1におけるメール鍵リスト123の例を示す図。
【図6】図1におけるコントローラ101とICカード機能ユニット114との間の電文構成の一例を示す図。
【図7】図2におけるクライアント端末200とメモリカード100との間のデータ処理を示すフローチャート。
【図8】図1のメモリカードに格納されたデータの表示の一例を示す図。
【図9】図1のメモリカードに格納されたデータの表示の一例を示す図。
【図10】図2においてメールを送信する場合のフローチャートの一例。
【図11】図2においてメールを送信する場合のフローチャートの一例。
【図12】図2においてメールを受信する場合のフローチャートの一例。
【図13】図2においてメールを閲覧する場合のフローチャートの一例。
【図14】本発明に係るメモリカードの他の実施例を示すブロック図。
【図15】図14に関連しクライアント端末にドライバ1501をロードするためのメモリカードの構成例を示す図。
【図16】図14におけるメーラプログラム112の構成例を示す図。
【図17】図15におけるドライバ1501の構成例を示す図。
【符号の説明】
【0085】
100…メモリカード、101…コントローラ、102…演算処理部、104…暗号処理部A、109…鍵生成部、110…不揮発性メモリ、112…メーラープログラム、114…ICカード機能ユニット、116…暗号処理部B、118…記憶部、124…命令伝達用フォルダ、125…命令伝達用アドレス記憶部、126…演算処理部、127…外部機器、200…クライアント端末、1400…命令伝達用記憶部、1501…ドライバ。
【技術分野】
【0001】
本発明は、外部機器からの命令で暗号化処理などのプログラムを実行するメモリカード、データ処理プログラムおよびデータ処理方法に関する。
【背景技術】
【0002】
従来、不揮発性メモリとコントローラを備えたメモリカードは、外部機器とコントローラを介してデータをやり取りし、データを不揮発性メモリへ格納することが可能となっている。また、コントローラを備えていることで、不揮発性メモリへのデータの記録/読出しの安全性を高めることができる(例えば特許文献1)。
【0003】
外部機器からメモリカードに命令する際、外部機器のドライバがメモリカードを扱うためのファイル管理用の専用コマンドを備えており、外部機器のドライバは、この専用コマンドを用いメモリカードのコントローラに対し命令を送信していた。
【0004】
特許文献1には、安全性を高めつつ、フラッシュメモリへのデータの記録/読出しができるメモリカードを実現する場合でも、外部機器とメモリカード内のコントローラの間で専用コマンドを設けている。
【0005】
【特許文献1】特開2003−256282号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
特許文献1に開示される構成では、メモリカードが新機能(プログラム)を備えた場合、外部機器のドライバは前記新機能を利用するために、新しい専用コマンドを備える必要がある。よって、メモリカードの機能が変わる毎に、外部機器のドライバも新たな機能に対応したインターフェースが必要となる。
【0007】
また、従来、メモリカードの構成だと、外部機器から見える(認識できる)のは、コントローラと不揮発性メモリだけで、ICカード機能ユニットは見えない。よって、外部機器の命令は、メモリカード内のコントローラに対してのみであり、ICカード機能ユニットに対する命令は備えておらず、外部機器はICカード機能ユニットに対し命令を送ることはできない。
【0008】
本発明の目的は、外部機器とメモリカード内コントローラの間で専用コマンドを設けることなく、安全性を高めた、不揮発性メモリへのデータの書込み/読出しができるメモリカードを実現することにある。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本発明のメモリカードは、不揮発性メモリとコントローラを備え、コントローラは、不揮発性メモリ内の特定アドレスに外部機器からの命令を受け取るためのメモリ領域を確保する手段と、上記不揮発性メモリ内の特定アドレスを記憶する手段とを有し、所定の時間ごとに上記確保した特定アドレスのメモリ領域に格納された命令を読出す構成とした。
【0010】
上記目的を達成するため、本発明のメモリカードは、当該メモリカードが実行するプログラムを格納するとともに、プログラムを実行させるため外部機器から受けた命令を伝達する命令伝達領域を有する不揮発性メモリと、命令伝達領域から命令を読出しプログラムを実行させるコントローラとを備える。
【0011】
さらに不揮発性メモリ内に命令伝達用フォルダを作成するフォルダ作成手段と、作成した命令伝達用フォルダのアドレスを記憶しておくアドレス記憶手段と、命令伝達用フォルダから外部機器からの命令を読出すとともに該命令に対する応答を書込む読出し/書込み手段とを有する。
【0012】
また本発明のメモリカードは、データを暗号化するプログラムと暗号化したデータを格納するとともに、プログラムを実行させるため外部機器から受けた命令を伝達する命令伝達領域を有する不揮発性メモリと、命令伝達領域から命令を読出しデータを暗号化するコントローラと、コントローラからの命令により、データを暗号化するために用いた鍵を保存用鍵を用いて暗号化して格納するICカード機能ユニットとを備える。
【0013】
また、所定のプログラムを格納するメモリカードに対し、外部機器から該プログラムを実行させるためのデータ処理プログラムにおいて、メモリカード内に外部機器から受けた命令を伝達する命令伝達用フォルダを作成するステップと、作成した命令伝達用フォルダに外部機器からの命令を書込むステップと、命令伝達用フォルダに書込まれた外部機器からの命令を読出すステップと、読出した命令に従い上記プログラムを実行するステップとを備える。
【0014】
また、所定のプログラムを格納するメモリカードを外部機器に接続して該プログラムを実行するデータ処理方法において、外部機器からメモリカードに対する命令を伝達する命令伝達用フォルダを作成し、外部機器は命令伝達用フォルダに命令を書込み、メモリカードは命令伝達用フォルダに書込まれた外部機器からの命令を読出し、メモリカードは読出した命令に従い上記プログラムを実行する。
【発明の効果】
【0015】
本発明により、外部機器とメモリカードの間で専用コマンドを設けることなく、既存のインターフェースを用いて、不揮発性メモリへのデータの書込み/読出しを安全に実行させることができる。
【発明を実施するための最良の形態】
【0016】
以下、本発明の実施形態について図面を用いて詳細に説明する。本発明に係わるメモリカードを用いたデータ処理方法として、電子メール処理の場合を例示して説明する。
【実施例1】
【0017】
図2は、本発明に係るメモリカードを用いた電子メール利用のシステム全体の構成を示す図である。メモリカード100はクライアント端末200に接続され、クライアント端末200は、通信ネットワーク(例えば電話ネットワーク、専用ネットワーク、インターネット)220を介してメールサーバ210に接続される。
【0018】
図1は、本発明に係わるメモリカードの一実施例を示すブロック図である。メモリカード100は、コントローラ101と、不揮発性メモリ110と、ICカード機能ユニット114を備える。
【0019】
コントローラ101は、演算処理部102と、暗号処理部A104と、認証処理部A105と、バッファRAM108と、メール鍵生成部109と、命令伝達用アドレス記憶部125とを有する。命令伝達用アドレス記憶部125は、外部機器127からの命令を受け取る不揮発性メモリ110内の命令伝達用フォルダ124のアドレスを記憶する。さらに、外部機器127と接続する外部接続部103と、不揮発性メモリ110と接続するメモリ接続部106と、ICカード機能ユニット114と接続するICカード接続部107を有する。
【0020】
不揮発性メモリ110は、個人認証プログラム111と、メーラープログラム112と、メールデータ113と、外部機器127からの命令をメモリインタフェースを用いて受け取るための命令伝達用フォルダ124とを有する。
【0021】
ICカード機能ユニット114は、ICカードの機能を有するユニットで、耐タンパ性を有しているため、容易に内部を観察することができない。すなわち、ICカードにおいては、内部に格納されている機密データは、電流解析・物理解析・故障解析などの様々な攻撃により不正に読出されることは非常に困難である、という特徴を利用している。これに機密性の高いデータを格納しておき、特定の手続き(認証用のパスワードや鍵データによる照合)を行わないと内部データにアクセスすることができない構成である。
【0022】
ICカード機能ユニット114は、演算処理部126と、コントローラ101のICカード接続部107に接続する接続部115と、暗号処理部B116と、認証処理部B117と、記憶部118を有する。記憶部118には、ディレクトリ119a〜119dを設け、各ディレクトリ内に、秘密鍵120と、公開鍵リスト121と、保存用鍵リスト122と、メール鍵リスト123を格納する。
【0023】
図3は、ICカード機能ユニット114の備える記憶部118内のディレクトリ119bに格納されている公開鍵リスト121の例を示す図である。メールの宛先となる相手のメールアドレス300と、その相手の公開鍵301を対応付けて格納している。
【0024】
図4は、ICカード機能ユニット114の備える記憶部118内のディレクトリ119cに格納されている保存用鍵リスト122の例を示す図である。保存用鍵401は、メール本文を暗号化するために用いるメール鍵をICカード機能ユニット内に保存する際に暗号化して保存するために用いる。保存用鍵401は、メールを振り分けて保存するためのフォルダ毎に内容を変えて管理するために、各フォルダ400に対応付けて格納している。また、フォルダ単位で該フォルダに格納されているデータの読出し、または書き換えを制限するためのコピーコントロール情報402を、各フォルダ400に対応付けて保存用鍵401と共に格納している。
【0025】
図5は、ICカード機能ユニット114の備える記憶部118内のディレクトリ119dに格納されているメール鍵リスト123の例を示す図である。メール本文を暗号化するために用いるメール鍵501を、メールの宛先および差出人のメールアドレス500に対応付けて格納している。メール鍵501は保存用鍵401にて暗号化されて格納される。
【0026】
図6は、メモリカード内のコントローラ101とICカード機能ユニット114との間でやり取りされる電文構成の一具体例を示す図である。図6に示すように、かかる電文としては、メール送信時のメール鍵受渡電文a600と、メール鍵受渡応答電文a603と、メール受信時のメール鍵受渡電文b605と、メール鍵受渡応答電文b607と、メール読出し時の読出し要求電文a609と、読出し要求応答電文a611とがあり、それぞれ電文識別符号もしくは電文識別符号に情報データを付加した構成をなしている。
【0027】
送信時のメール鍵受渡電文a600は、コントローラ101からICカード機能ユニット114に対し、メールを暗号化するために用いたメール鍵501と、メールの宛先となるメールアドレスを送出する電文である。メール鍵受渡電文a600であることを示す電文識別符号620に、メールの宛先となるメールアドレス621と、コントローラ101とICカード機能ユニット114の間で行われる相互認証により生成されるセッション鍵2を用い暗号化したメール鍵622と、メール鍵受渡電文a600に付加した情報の信憑性を確保するための署名データ623が付加された構成をなしている。
【0028】
これに対するメール鍵受渡応答電文a603は、メール鍵受渡電文a600の応答としてICカード機能ユニット114からコントローラ101に対して送出する電文である。メール鍵受渡応答電文a603であることを示す電文識別符号630に、公開鍵301を用い暗号化したメール鍵501を更に前記セッション鍵2を用い暗号化したメール鍵631と、メール鍵受渡応答電文a603に付加した情報の信憑性を確保するための署名データ632が付加された構成をなしている。
【0029】
受信時のメール鍵受渡電文b605は、コントローラ101からICカード機能ユニット114に対し、メールを暗号化するために用いたメール鍵501と、メールの差出人となるメールアドレスを送出する電文である。メール鍵受渡電文b605であることを示す電文識別符号640に、メールの差出人となるメールアドレス641と、コントローラ101とICカード機能ユニット114の間で行われる相互認証により生成されるセッション鍵2を用い暗号化したメール鍵642と、メール鍵受渡電文b605に付加した情報の信憑性を確保するための署名データ643が付加された構成をなしている。
【0030】
これに対するメール鍵受渡応答電文b607は、メール鍵受渡電文b605の応答としてICカード機能ユニット114からコントローラ101に対して送出する電文である。メール鍵受渡応答電文b607であることを示す電文識別符号650に、メール鍵受渡応答電文b607の信憑性を確保するための署名データ651が付加された構成をなしている。
【0031】
読出し要求電文609は、コントローラ101からICカード機能ユニット114に対し、メモリカード100内に格納されている暗号化されたメールデータ、及びメールデータの暗号化に用いたメール鍵を読出すために用いる電文である。読出し要求電文609であることを示す電文識別符号660に、前記セッション鍵2を用い暗号化したメールアドレス661と、読出し要求電文609の信憑性を確保するための署名データ662が付加された構成をなしている。
【0032】
これに対する読出し要求応答電文611は、読出し要求電文609の応答としてICカード機能ユニット114からコントローラ101に対して送出する電文である。読出し要求応答電文611であることを示す電文識別符号670に、前記セッション鍵2を用い暗号化したメール鍵671と、読出し要求応答電文611に付加した情報の信憑性を確保するための署名データ672が付加された構成をなしている。
【0033】
なお、各電文600、603、605、607、609、611に付加されている署名データは、各電文に付加した情報の信憑性を確保するために用いられており、改ざんされる恐れが少ない場合は省略しても良い。
【0034】
次に本実施例を電子メールに適用した場合の動作を、図7〜図13を用いて説明する。図7は、クライアント端末200にメモリカード100を接続して、クライアント端末200とメモリカード100との間でデータをやり取りする際に、どの様な順序で行うかを示すフロー図である。クライアント端末200としては、たとえばPDA、携帯電話機、その他の携帯式情報処理装置、本システム専用の情報処理装置など、様々な形態の情報処理装置を採用することができる。
【0035】
なお、利用者がクライアント端末200にメモリカード100を接続した後や、メーラープログラム112を起動した後に、クライアント端末200とメモリカード100との間のデータのやり取りを中止する場合や、メーラープログラム112を終了する場合もあり、図7に示すフローの途中のステップでも処理を終了することができる。しかしこの途中終了については図示せず、説明も省略する。
【0036】
ステップS700では、クライアント端末200にメモリカード100を、外部接続部103を介し接続する。ステップS701では、クライアント端末200は、メモリカード100内の不揮発性メモリ110内に格納されているデータを表示する。予め、不揮発性メモリ110内に格納されているデータには、夫々に属性を付与しておく。安全性を確保する必要のあるデータは、“隠しファイル”属性を付与しておく。それにより、クライアント端末200は、データに付与されている前記属性を判定し、“隠しファイル”属性が付与されているデータは表示しない。メモリカード100は、不揮発性メモリ110に格納されている個人認証プログラム111以外のデータを“隠しファイル”属性としておく。これによりクライアント端末200は、メモリカード内のデータ情報として、個人認証プログラム111のみを表示する。図8は、その表示の一具体例を示すものである。
【0037】
ステップS702では、利用者はクライアント端末200より個人認証プログラム111を実行する。個人認証としてパスワード、生体認証などを用いる。ステップS703において、クライアント端末200と利用者との間で個人認証を行う。認証に成功した場合には、ステップS704において、不揮発性メモリ110に格納されている“隠しファイル”属性となっているデータを“アクセス可能”属性とする。これによりクライアント端末200は、メモリカード内のデータ情報として、“アクセス可能”属性となったデータとして、メーラープログラム112、及びメールデータ113を表示する。図9はその表示の一具体例を示すものである。
【0038】
ステップS705において、利用者はクライアント端末200よりメーラープログラム112を実行する。ステップS706において、起動したメーラープログラムは初期化処理を行い、メモリカード100内の不揮発性メモリ110内にメール処理に必要なフォルダ113を作成させる。
【0039】
また、前記メーラープログラム112は、メーラープログラム112からメモリカード100への命令と、メモリカード100からメーラープログラム112への前記命令に対する応答をやり取りするためのフォルダ124を作成させる。それに従い、メモリカード100内のコントローラ101は、上記フォルダ124を不揮発性メモリ110内に作成するとともに、該フォルダ124のアドレスを命令伝達用アドレス記憶部125にて記憶しておく。この時、例えば、特定のフォルダ名でフォルダを作成した場合に、メモリカード100内のコントローラ101が該フォルダのアドレスを記憶するようにしても良い。本実施例では、メーラープログラムからの命令とメモリカードからの命令に対する応答をやり取りするためのフォルダを命令伝達用フォルダ124と呼ぶ。その後、利用者は実行したメーラープログラムを用いメール処理を始める。
【0040】
図10及び図11は、利用者がメーラープログラムを用いメールを送信する場合の処理手順の一具体例を示すフローチャートである。
【0041】
ステップS1000で、利用者は、メーラープログラム112を用いメールを作成し、ステップS1001において送信を実行する。ステップS1002において、メーラープログラム112は、命令伝達用フォルダ124に相互認証の実行を命令するデ−タを書込む。メモリカード100内のコントローラ101は、定期的に命令伝達用フォルダ124のアドレスを監視している。そして、命令伝達用フォルダにメーラープログラム112からの命令が書込まれた場合、その内容を相互認証の実行を命令するものと解釈し、ステップS1003において、メーラープログラム112とコントローラ101との間で相互認証を実行する。相互認証に成功すると、メーラープログラム112とコントローラ101との間で、セッションごとに異なる共通のセッション鍵1を保持する。
【0042】
メーラープログラム112は、セッション鍵1を保持すると、ステップS1004において、セッション鍵1を用いて送信予定のメールデータを暗号化して、ステップS1005において、不揮発性メモリ110内の特定のアドレス領域113に格納する。
【0043】
一方コントローラ101は、前記相互認証が成功するとセッション鍵1を保持し、暗号化された前記メールデータが格納される不揮発性メモリ110内の特定のアドレス領域113を監視し、前記メールデータが格納されたのを確認すると、ステップS1006において、コントローラ101内のバッファRAM108上にて、セッション鍵1を用いて復号化する。
【0044】
この時、前記メールデータが不揮発性メモリ110内の特定のアドレス領域113に格納されたことを確認できない場合は、メーラープログラム112は、命令伝達用フォルダ124にメールの暗号化を命令するデ−タを書込み、コントローラ101が、定期的に命令伝達用フォルダ124のアドレスを監視することで、命令を伝達させても良い。
【0045】
コントローラ101は、セッション鍵1を用いメールデータを復号化させると、メールデータより宛先となるメールアドレスを取得する。その後ステップS1007において、コントローラ101は鍵生成部109を用いて、メールデータを暗号化させるためのメール鍵を生成する。ステップS1008で生成したメール鍵を用いてメールデータを暗号化する。
【0046】
ステップS1009で、コントローラ101はICカード機能ユニット114に対し相互認証を要求し、これを実行する。相互認証が成功すると、コントローラ101とICカード機能ユニット114との間でセッションごとに異なる共通のセッション鍵2を保持する。
【0047】
コントローラ101はセッション鍵2を保持すると、ステップS1010において、セッション鍵2を用いて前記メール鍵を暗号化する。ステップS1011において、ICカード機能ユニット114に向けて、暗号化したメール鍵を前記メールアドレスと共に、メール鍵受渡電文a600を用いて送信する。この時、電文600に付加するデータとして、前記メール鍵データと前記メールアドレスとを、セッション鍵2を用いて暗号化したデータを付加しても良い。
【0048】
ICカード機能ユニット114は、上記メール鍵受渡電文a600を受け取ると、ステップS1012において、前記メールアドレスより対応付けられた公開鍵Aを、公開鍵リスト121より検索し取得する。またステップS1100において、電文600に付加されたデータを、セッション鍵2を用いて復号化する。
【0049】
ステップS1101において、復号化した前記メール鍵を、前記公開鍵Aを用いて暗号化する。またステップS1102において、保存用鍵リスト122より、対応するフォルダ名から保存用鍵を検索し取得する。ステップS1103において、同じく復号化した前記メール鍵を保存用鍵で暗号化し、ステップS1104において、メール鍵リスト123に加え保存する。
【0050】
ステップS1105において、前記公開鍵Aを用いて暗号化した前記メール鍵を、前記セッション鍵2で暗号化する。ステップS1106において、メール鍵受渡応答電文a603を用い、コントローラ101に対し、前記公開鍵Aで暗号化し更にセッション鍵2で暗号化したメール鍵を送信する。
【0051】
コントローラ101は、ステップS1107において、前記メール鍵で暗号化されたメールデータを不揮発性メモリ110内のメールデータ内に格納する。ステップS1108において、ICカード機能ユニット114より、前記メール鍵受渡応答電文a603を受け取ると、電文603に付加されたデータを、セッション鍵2を用いて復号化する。
【0052】
この時、メールデータ内を複数のフォルダを作成しておき、メールの差出人、または宛先などのメールデータ内の情報を用いメールデータを仕分けして保存しても良い。例えば、図9に示す受信フォルダ901や、送信フォルダ902がそれに当る。
【0053】
コントローラ101は、ステップS1109において、前記公開鍵Aを用いて暗号化された前記メール鍵と、前記メール鍵を用いて暗号化されたメールデータを、前記セッション鍵1を用いて暗号化する。ステップS1110において、前記セッション鍵1を用いて暗号化したメール鍵とメールデータを不揮発性メモリ110内の、特定のアドレス領域に格納する。
【0054】
メーラープログラム112は、ステップS1111において、命令伝達用フォルダ124を監視し、前記セッション鍵1を用いて暗号化したメール鍵とメールデータが格納されたのを確認すると、前記セッション鍵1を用いて、暗号化されたメール鍵とメールデータを復号化する。そして、ステップS1112にて、メール鍵を付加したメールデータをメールサーバ210に送出する。
【0055】
図12は、利用者がメーラープログラムを用いメールを受信する場合の処理手順の一具体例を示すフローチャートである。
【0056】
ステップS1200とステップS1201では、図10と同様の動作により、メーラープログラム112とコントローラ101との間で、セッション鍵1を取得する。
【0057】
ステップS1202において、利用者はメーラープログラム112より受信を実行し、メーラープログラム112は、メールサーバ210よりメールを受信する。この時、メール鍵とメールデータが暗号化されたメールを受信した場合、ステップS1203において、セッション鍵1を用いて前記メール鍵とメールデータを暗号化する。そしてステップS1204において、不揮発性メモリ110内の特定のアドレス領域に格納する。
【0058】
コントローラ101は、命令伝達用フォルダ124を監視し、前記セッション鍵1を用いて暗号化したメール鍵とメールデータが格納されたのを確認すると、ステップS1205において、バッファRAM108上にて、前記セッション鍵1を用いて復号化する。復号化したメールデータから、そのメールデータより差出人となるメールアドレスを取得する。
【0059】
ステップS1206において、コントローラ101はICカード機能ユニット114に対し相互認証を要求し、両者の間で相互認証を実行する。相互認証が成功すると、コントローラ101とICカード機能ユニット114との間でセッションごとに異なる共通のセッション鍵2を保持する。
【0060】
コントローラ101は、ステップS1207において、セッション鍵2を用いて前記メール鍵を暗号化する。ステップS1208において、ICカード機能ユニット114に向けて、暗号化したメール鍵を前記メールアドレスと共に、メール鍵受渡電文b605を用いて送信する。この時、電文605に付加するデータとして、前記メール鍵データと前記メールアドレスとを、セッション鍵2を用いて暗号化したデータを付加しても良い。
【0061】
ICカード機能ユニット114は、ステップS1209において、上記メール鍵受渡電文b605を受け取ると、電文605に付加されたデータを、セッション鍵2を用いて復号化する。
【0062】
またステップS1210において、保存用鍵リスト122より、対応するフォルダ名から保存用鍵を検索し取得する。ステップS1211において、同じく復号化した前記メール鍵を保存用鍵で暗号化し、ステップS1212において、メール鍵リスト123に加え保存する。
【0063】
ステップS1213において、コントローラ101に対して、メール鍵保存完了を通知するメール鍵受渡応答電文b607を送信する。
【0064】
コントローラ101は、ステップS1214において、ICカード機能ユニット114より前記メール鍵受渡応答電文b607を受信すると、前記メール鍵で暗号化されたメールデータを不揮発性メモリ110内のメールデータ内に格納する。この時、メールデータ内を複数のフォルダを作成しておき、メールの差出人または宛先などのメールデータ内の情報を用いメールデータを仕分けして保存しても良い。
【0065】
コントローラ101は、ステップS1215において、メール受信の完了を通知するデータを特定のアドレス領域に格納する。メーラープログラム112は、前記命令伝達用フォルダ124を監視し、コントローラ101より、メール受信完了の通知が格納されたのを確認すると、メール受信処理を終了する。
【0066】
図13は、利用者がメーラープログラムを用いメールを閲覧する場合の処理手順の一具体例を示すフローチャートである。
【0067】
ステップS1300とステップS1301では、図10と同様の動作により、メーラープログラム112とコントローラ101との間で、セッション鍵1を取得する。
【0068】
ステップS1302において、不揮発性メモリ110内に格納されているメールデータより読出したいメールデータを、特定のアドレス領域に格納する。
【0069】
コントローラ101は、命令伝達用フォルダ124を監視し、メールデータが格納されたのを確認すると、ステップS1303において、ICカード機能ユニット114に対し相互認証を要求し、両者の間で相互認証を実行する。相互認証が成功すると、コントローラ101とICカード機能ユニット114との間でセッションごとに異なる共通のセッション鍵2を保持する。
【0070】
ステップS1304において、コントローラ101は、前記セッション鍵2を用いて閲覧するメールデータのメールアドレスを暗号化し、ICカード機能ユニット114に向けて読出し要求電文609を用いて送信する。
【0071】
ICカード機能ユニット114は、ステップS1305において、上記読出し要求電文609を受け取ると、電文609に付加されたメールアドレスを復号化し、対応付けられたメール鍵501を検索し取得する。
【0072】
ステップS1306において、メールアドレスに対応付けられたフォルダ名より保存用鍵を検索し取得し、取得した保存用鍵401を用いて前記メール鍵501を復号化する。この時、ステップS1307において、保存用鍵401に対応付けられたコピーコントロール情報402を判定する。コピーコントロール情報402がデータの読出しが可能であれば、ステップS1308において、秘密鍵120を用いてメール鍵501を復号化する。
【0073】
ICカード機能ユニット114は、ステップS1309において、前記セッション鍵2を用いてメール鍵501を暗号化する。ステップS1310において、前記暗号化したメール鍵501を、コントローラ101に向け、読出し要求応答電文611を用いて送出する。
【0074】
コントローラ101は、ICカード機能ユニット114からの上記読出し要求応答電文611を受信し、ステップS1311において、受信したメール鍵501を、セッション鍵2を用いて復号した後、前記メール鍵501とメールデータと前記コピーコントロール情報を、セッション鍵1を用いて暗号化する。ステップS1312において、不揮発性メモリ110内の特定のアドレス領域に、前記暗号化されたメール鍵501とメールデータを格納する。
【0075】
メーラープログラム112は、命令伝達用フォルダ124を監視し、前記暗号化したメール鍵とメールデータが格納されたのを確認すると、ステップS1313において、暗号化されたメール鍵とメールデータをセッション鍵1を用いて復号化する。
【0076】
さらにステップS1314において、前記コピーコントロール情報を判定し、読出し可能な場合、前記メール鍵を用いてメールデータを復号化し、ステップS1315において、復号化したメールデータを表示する。
【実施例2】
【0077】
図14は、本発明に係るメモリカード100の他の実施例を示すブロック図である。
【0078】
メモリカード100とメーラープログラム112との間で、命令を伝達するための方法として、図1に示したメモリカード100の構成とは別に、コントローラ101内に不揮発性メモリ110とは別の命令伝達用記憶部1400を備える構成である。クライアント端末200は、前記命令伝達用記憶部1400に命令を書込むドライバを持つ。
【0079】
図15は、図14における前記命令伝達用記憶部1400に命令を書込むドライバをクライアント端末200にロードするためのメモリカード100の構成例を示す図である。メモリカード100は、不揮発性メモリ110内に、前記命令伝達用記憶部1400に命令を書込むドライバ1501と、前記ドライバ1501をクライアント端末200にロードするドライバロードプログラム1500を備える。コントローラ101は、図7のステップS702において、利用者がクライアント端末200より個人認証プログラム111を実行した時、前記個人認証プログラム111が前記ドライバロードプログラム1500を実行し、前記ドライバロードプログラム1500は、不揮発性メモリ110内のドライバ1501をクライアント端末200へロードする。
【0080】
図16は、メーラープログラム112が、メモリカード100内のコントローラ101に対し命令をする場合の、メーラープログラム112の構成例を示す図である。メーラープログラム112は、メモリカード100のコントローラ101と認証処理を行う認証処理部1600と、メモリカード100に送信するデータを暗号化するための暗号処理部1601と、メモリカード100内の前記命令伝達用記憶部1400に命令を伝達するための命令伝達部1602と、メーラープログラム112が定期的にメモリカード100からの応答を取得するための応答取得部1603を備える。
【0081】
図17は、クライアント端末200にロードされたドライバ1501が、メモリカード内のコントローラ101に対し命令をする場合の、前記命令伝達用記憶部1400に命令を書込むドライバ1501の構成例を示す図である。前記ドライバ1501は、メモリカード100のコントローラ101と認証処理を行う認証処理部1700と、メモリカード100に送信するデータを暗号化するための暗号処理部1701と、メモリカード100内の前記命令伝達用記憶部1400に命令を伝達するための命令伝達部1702と、メーラープログラム112が定期的にメモリカード100からの応答を取得するための応答取得部1703を備える。
【0082】
本実施例により、前記命令伝達用記憶部1400に命令を書込むドライバを持たないクライアント端末200であっても、メモリカード100に格納されているドライバ1501を取得して、新たな命令を発することができる。
【0083】
上記実施例では、本発明のメモリカードを電子メールに利用した場合を例に説明した。しかし、これは本発明の説明のための1つの例示であり、文書ビューアー及び文書編集プログラムを用いて文書ファイルの閲覧及び編集に利用する場合、または画像ビューアー及び画像編集プログラムを用いて画像ファイルの閲覧及び編集に利用する場合などにおいても、本発明が適用できることはいうまでもない。
【図面の簡単な説明】
【0084】
【図1】本発明に係わるメモリカードの一実施例を示すブロック図。
【図2】図1のメモリカードを用いた電子メール利用のシステム全体の構成図。
【図3】図1における公開鍵リスト121の例を示す図。
【図4】図1における保存用鍵リスト122の例を示す図。
【図5】図1におけるメール鍵リスト123の例を示す図。
【図6】図1におけるコントローラ101とICカード機能ユニット114との間の電文構成の一例を示す図。
【図7】図2におけるクライアント端末200とメモリカード100との間のデータ処理を示すフローチャート。
【図8】図1のメモリカードに格納されたデータの表示の一例を示す図。
【図9】図1のメモリカードに格納されたデータの表示の一例を示す図。
【図10】図2においてメールを送信する場合のフローチャートの一例。
【図11】図2においてメールを送信する場合のフローチャートの一例。
【図12】図2においてメールを受信する場合のフローチャートの一例。
【図13】図2においてメールを閲覧する場合のフローチャートの一例。
【図14】本発明に係るメモリカードの他の実施例を示すブロック図。
【図15】図14に関連しクライアント端末にドライバ1501をロードするためのメモリカードの構成例を示す図。
【図16】図14におけるメーラプログラム112の構成例を示す図。
【図17】図15におけるドライバ1501の構成例を示す図。
【符号の説明】
【0085】
100…メモリカード、101…コントローラ、102…演算処理部、104…暗号処理部A、109…鍵生成部、110…不揮発性メモリ、112…メーラープログラム、114…ICカード機能ユニット、116…暗号処理部B、118…記憶部、124…命令伝達用フォルダ、125…命令伝達用アドレス記憶部、126…演算処理部、127…外部機器、200…クライアント端末、1400…命令伝達用記憶部、1501…ドライバ。
【特許請求の範囲】
【請求項1】
不揮発性メモリとコントローラを備えたメモリカードにおいて、
上記コントローラは、上記不揮発性メモリ内の特定アドレスに外部機器からの命令を受け取るためのメモリ領域を確保する手段と、上記不揮発性メモリ内の特定アドレスを記憶する手段とを有し、所定の時間ごとに上記確保した特定アドレスのメモリ領域に格納された上記命令を読出すことを特徴とするメモリカード。
【請求項2】
請求項1記載のメモリカードにおいて、
前記コントローラは、前記特定アドレスのメモリ領域に、前記外部機器から受けた命令に対する応答を書込むことを特徴とするメモリカード。
【請求項3】
請求項1記載のメモリカードにおいて、
前記コントローラからの命令によりデータの処理を行うICカード機能ユニットを備え、
該ICカード機能ユニットは、前記特定アドレスのメモリ領域に、前記外部機器から受けた命令に対する応答を書込むことを特徴とするメモリカード。
【請求項4】
外部機器からの命令により所定の機能を実行するメモリカードにおいて、
当該メモリカードが実行するプログラムを格納するとともに、上記プログラムを実行させるため外部機器から受けた命令を伝達する命令伝達領域を有する不揮発性メモリと、
上記命令伝達領域から命令を読出し上記プログラムを実行させるコントローラとを備えることを特徴とするメモリカード。
【請求項5】
外部機器からの命令により所定の機能を実行するメモリカードにおいて、
当該メモリカードが実行するプログラムを格納するとともに、上記プログラムを実行させるため外部機器からの命令とこれに対する応答を伝達する命令伝達用フォルダを有する不揮発性メモリと、
上記不揮発性メモリ内に上記命令伝達用フォルダを作成するフォルダ作成手段と、上記作成した命令伝達用フォルダのアドレスを記憶しておくアドレス記憶手段と、上記命令伝達用フォルダから外部機器からの命令を読出すとともに該命令に対する応答を書込む読出し/書込み手段とを有するコントローラと、
を備えることを特徴とするメモリカード。
【請求項6】
外部機器からの命令により所定の機能を実行するメモリカードにおいて、
当該メモリカードが実行するプログラムを格納する不揮発性メモリと、
上記プログラムを実行させるため外部機器からの命令とこれに対する応答を伝達する命令伝達用記憶部と、該命令伝達用記憶部から外部機器からの命令を読出すとともに該命令に対する応答を書込む読出し/書込み手段とを有するコントローラと、
を備えることを特徴とするメモリカード。
【請求項7】
外部機器からの命令によりデータを暗号化するメモリカードにおいて、
データを暗号化するプログラムと暗号化したデータを格納するとともに、上記プログラムを実行させるため外部機器から受けた命令を伝達する命令伝達領域を有する不揮発性メモリと、
上記命令伝達領域から命令を読出しデータを暗号化するコントローラと、
該コントローラからの命令により、データを暗号化するために用いた鍵を保存用鍵を用いて暗号化して格納するICカード機能ユニットとを備えることを特徴とするメモリカード。
【請求項8】
請求項7記載のメモリカードにおいて、
前記コントローラは、データを暗号化するために用いる鍵を生成する鍵生成手段と、上記鍵を用いてデータを暗号化するデータ暗号処理手段とを有し、
前記ICカード機能ユニットは、データを暗号化するために用いた鍵を保存用鍵を用いて暗号化する鍵暗号処理手段と、保存用鍵を用いて暗号化した鍵を格納する鍵格納手段とを有することを特徴とするメモリカード。
【請求項9】
所定のプログラムを格納するメモリカードに対し、外部機器から該プログラムを実行させるためのデータ処理プログラムにおいて、
上記メモリカード内に外部機器から受けた命令を伝達する命令伝達用フォルダを作成するステップと、
上記作成した命令伝達用フォルダに外部機器からの命令を書込むステップと、
上記命令伝達用フォルダに書込まれた外部機器からの命令を読出すステップと、
上記読出した命令に従い上記プログラムを実行するステップと、
を備えることを特徴とするデータ処理プログラム。
【請求項10】
請求項9記載のデータ処理プログラムにおいて、
前記メモリカードが、前記作成した命令伝達用フォルダのアドレスを記憶するステップと、前記命令伝達用フォルダに、前記外部機器からの命令に対する応答を書込むステップと、
前記外部機器が、上記応答を読出すステップと、
を備えることを特徴とするデータ処理プログラム。
【請求項11】
所定のプログラムを格納するメモリカードを外部機器に接続して該プログラムを実行するデータ処理方法において、
上記外部機器から上記メモリカードに対する命令を伝達する命令伝達用フォルダを作成し、
上記外部機器は上記命令伝達用フォルダに命令を書込み、
上記メモリカードは上記命令伝達用フォルダに書込まれた外部機器からの命令を読出し、
上記メモリカードは上記読出した命令に従い上記プログラムを実行する、
ことを特徴とするデータ処理方法。
【請求項12】
請求項11記載のデータ処理方法において、
前記メモリカードは、前記作成した命令伝達用フォルダのアドレスを記憶し、前記命令伝達用フォルダに、前記外部機器からの命令に対する応答を書込むとともに、
前記外部機器は、上記応答を読出す、
ことを特徴とするデータ処理方法。
【請求項13】
請求項11記載のデータ処理方法において、
前記プログラムはデータを暗号化するものであって、
データを暗号化するために用いる鍵を生成し、
上記鍵を用いてデータを暗号化し、
データを暗号化するために用いた鍵を保存用鍵を用いて暗号化し、
保存用鍵を用いて暗号化した鍵を前記メモリカード内のICカード機能ユニットに格納する、
ことを特徴とするデータ処理方法。
【請求項1】
不揮発性メモリとコントローラを備えたメモリカードにおいて、
上記コントローラは、上記不揮発性メモリ内の特定アドレスに外部機器からの命令を受け取るためのメモリ領域を確保する手段と、上記不揮発性メモリ内の特定アドレスを記憶する手段とを有し、所定の時間ごとに上記確保した特定アドレスのメモリ領域に格納された上記命令を読出すことを特徴とするメモリカード。
【請求項2】
請求項1記載のメモリカードにおいて、
前記コントローラは、前記特定アドレスのメモリ領域に、前記外部機器から受けた命令に対する応答を書込むことを特徴とするメモリカード。
【請求項3】
請求項1記載のメモリカードにおいて、
前記コントローラからの命令によりデータの処理を行うICカード機能ユニットを備え、
該ICカード機能ユニットは、前記特定アドレスのメモリ領域に、前記外部機器から受けた命令に対する応答を書込むことを特徴とするメモリカード。
【請求項4】
外部機器からの命令により所定の機能を実行するメモリカードにおいて、
当該メモリカードが実行するプログラムを格納するとともに、上記プログラムを実行させるため外部機器から受けた命令を伝達する命令伝達領域を有する不揮発性メモリと、
上記命令伝達領域から命令を読出し上記プログラムを実行させるコントローラとを備えることを特徴とするメモリカード。
【請求項5】
外部機器からの命令により所定の機能を実行するメモリカードにおいて、
当該メモリカードが実行するプログラムを格納するとともに、上記プログラムを実行させるため外部機器からの命令とこれに対する応答を伝達する命令伝達用フォルダを有する不揮発性メモリと、
上記不揮発性メモリ内に上記命令伝達用フォルダを作成するフォルダ作成手段と、上記作成した命令伝達用フォルダのアドレスを記憶しておくアドレス記憶手段と、上記命令伝達用フォルダから外部機器からの命令を読出すとともに該命令に対する応答を書込む読出し/書込み手段とを有するコントローラと、
を備えることを特徴とするメモリカード。
【請求項6】
外部機器からの命令により所定の機能を実行するメモリカードにおいて、
当該メモリカードが実行するプログラムを格納する不揮発性メモリと、
上記プログラムを実行させるため外部機器からの命令とこれに対する応答を伝達する命令伝達用記憶部と、該命令伝達用記憶部から外部機器からの命令を読出すとともに該命令に対する応答を書込む読出し/書込み手段とを有するコントローラと、
を備えることを特徴とするメモリカード。
【請求項7】
外部機器からの命令によりデータを暗号化するメモリカードにおいて、
データを暗号化するプログラムと暗号化したデータを格納するとともに、上記プログラムを実行させるため外部機器から受けた命令を伝達する命令伝達領域を有する不揮発性メモリと、
上記命令伝達領域から命令を読出しデータを暗号化するコントローラと、
該コントローラからの命令により、データを暗号化するために用いた鍵を保存用鍵を用いて暗号化して格納するICカード機能ユニットとを備えることを特徴とするメモリカード。
【請求項8】
請求項7記載のメモリカードにおいて、
前記コントローラは、データを暗号化するために用いる鍵を生成する鍵生成手段と、上記鍵を用いてデータを暗号化するデータ暗号処理手段とを有し、
前記ICカード機能ユニットは、データを暗号化するために用いた鍵を保存用鍵を用いて暗号化する鍵暗号処理手段と、保存用鍵を用いて暗号化した鍵を格納する鍵格納手段とを有することを特徴とするメモリカード。
【請求項9】
所定のプログラムを格納するメモリカードに対し、外部機器から該プログラムを実行させるためのデータ処理プログラムにおいて、
上記メモリカード内に外部機器から受けた命令を伝達する命令伝達用フォルダを作成するステップと、
上記作成した命令伝達用フォルダに外部機器からの命令を書込むステップと、
上記命令伝達用フォルダに書込まれた外部機器からの命令を読出すステップと、
上記読出した命令に従い上記プログラムを実行するステップと、
を備えることを特徴とするデータ処理プログラム。
【請求項10】
請求項9記載のデータ処理プログラムにおいて、
前記メモリカードが、前記作成した命令伝達用フォルダのアドレスを記憶するステップと、前記命令伝達用フォルダに、前記外部機器からの命令に対する応答を書込むステップと、
前記外部機器が、上記応答を読出すステップと、
を備えることを特徴とするデータ処理プログラム。
【請求項11】
所定のプログラムを格納するメモリカードを外部機器に接続して該プログラムを実行するデータ処理方法において、
上記外部機器から上記メモリカードに対する命令を伝達する命令伝達用フォルダを作成し、
上記外部機器は上記命令伝達用フォルダに命令を書込み、
上記メモリカードは上記命令伝達用フォルダに書込まれた外部機器からの命令を読出し、
上記メモリカードは上記読出した命令に従い上記プログラムを実行する、
ことを特徴とするデータ処理方法。
【請求項12】
請求項11記載のデータ処理方法において、
前記メモリカードは、前記作成した命令伝達用フォルダのアドレスを記憶し、前記命令伝達用フォルダに、前記外部機器からの命令に対する応答を書込むとともに、
前記外部機器は、上記応答を読出す、
ことを特徴とするデータ処理方法。
【請求項13】
請求項11記載のデータ処理方法において、
前記プログラムはデータを暗号化するものであって、
データを暗号化するために用いる鍵を生成し、
上記鍵を用いてデータを暗号化し、
データを暗号化するために用いた鍵を保存用鍵を用いて暗号化し、
保存用鍵を用いて暗号化した鍵を前記メモリカード内のICカード機能ユニットに格納する、
ことを特徴とするデータ処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2006−11816(P2006−11816A)
【公開日】平成18年1月12日(2006.1.12)
【国際特許分類】
【出願番号】特願2004−187976(P2004−187976)
【出願日】平成16年6月25日(2004.6.25)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成18年1月12日(2006.1.12)
【国際特許分類】
【出願日】平成16年6月25日(2004.6.25)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]