(57)【要約】【課題】セキュアメッセージングで利用するセッション鍵の秘匿性を高くし、通信の秘匿性を高める。【解決手段】第１の通信装置と第２の通信装置間でセキュアメッセージングコマンドを通信する通信システムの暗号化通信システムにおいて、第１の通信装置と第２の通信装置が、それぞれ、暗号化手段と、復号手段と、セッション鍵変更演算手段を備え、１つのセキュアメッセージングコマンドによるコマンド処理を行う都度、前記セッション鍵変更演算手段がセッション鍵を更新し、第１の通信装置と第２の通信装置が前記更新したセッション鍵を共有して暗号化通信を行う。【選択図】図１
2020092323.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信装置と第２の通信装置間でセキュアメッセージングコマンドを通信する通信システムの暗号化通信システムであって、
第１の通信装置と第２の通信装置が、それぞれ、暗号化手段と、復号手段と、セッション鍵変更演算手段を備え、
１つのセキュアメッセージングコマンドによるコマンド処理を行う都度、前記セッション鍵変更演算手段がセッション鍵を更新し、第１の通信装置と第２の通信装置が前記更新したセッション鍵を共有して暗号化通信を行う事を特徴とする暗号化通信システム。
【請求項２】
請求項１記載の暗号化通信システムであって、
前記第１の通信装置と第２の通信装置が第１の初期化セッション鍵と第２の初期化セッション鍵を共有し、第２の初期化セッション鍵を前記セキュアメッセージングコマンドによる最初のコマンド処理に用いる現用のセッション鍵とし、第１の初期化セッション鍵を旧セッション鍵とし、
前記セキュアメッセージングコマンドによるコマンド処理を行う都度、現用のセッション鍵と旧セッション鍵を演算することで新セッション鍵を作成し、現用のセッション鍵を旧セッション鍵にし、
新セッション鍵を、次のセキュアメッセージングコマンドによるコマンド処理を行う際に用いる現用のセッション鍵にして用いて暗号化通信を行う
事を特徴とする暗号化通信システム。
【請求項３】
請求項１記載の暗号化通信システムであって、
前記第１の通信装置と第２の通信装置が複数のセッション鍵を共有し、
１つのセキュアメッセージングコマンドによるコマンド処理を行う都度、第１の通信装置と第２の通信装置が、前記複数のセッション鍵から１つのセッション鍵を選ぶ情報を共有し、
次のセキュアメッセージングコマンドによるコマンド処理を行う際に、前記選んだ１つのセッション鍵にセッション鍵を更新して暗号化通信を行う
事を特徴とする暗号化通信システム。
【請求項４】
請求項１から３の何れか一項に記載の暗号化通信システムであって、
前記第１の通信装置と第２の通信装置が、前記セッション鍵を変更する複数の演算アルゴリズムを共有し、前記セッション鍵変更演算手段が前記複数の演算アルゴリズムを同期して切り替えて用いて前記セッション鍵を変更する
事を特徴とする暗号化通信システム。
【請求項５】
請求項１から４の何れか一項に記載の暗号化通信システムであって、前記第１の通信装置がＩＣカードアクセス装置であり、前記第２の通信装置がＩＣカードである事を特徴とする暗号化通信システム。
【請求項６】
第１の通信装置と第２の通信装置間でセキュアメッセージングコマンドを通信する通信システムの暗号化通信方法であって、
第１の通信装置と第２の通信装置が、それぞれ、暗号化手段と、復号手段と、セッション鍵変更演算手段を備え、
１つのセキュアメッセージングコマンドによるコマンド処理を行う都度、前記セッション鍵変更演算手段がセッション鍵を更新し、第１の通信装置と第２の通信装置が前記更新したセッション鍵を共有して暗号化通信を行う事を特徴とする暗号化通信方法。
【請求項７】
請求項６記載の暗号化通信方法であって、
前記第１の通信装置と第２の通信装置が第１の初期化セッション鍵と第２の初期化セッション鍵を共有し、第２の初期化セッション鍵を前記セキュアメッセージングコマンドによる最初のコマンド処理に用いる現用のセッション鍵とし、第１の初期化セッション鍵を旧セッション鍵とし、
前記セキュアメッセージングコマンドによるコマンド処理を行う都度、現用のセッション鍵と旧セッション鍵を演算することで新セッション鍵を作成し、現用のセッション鍵を旧セッション鍵にし、
新セッション鍵を、次のセキュアメッセージングコマンドによるコマンド処理を行う際に用いる現用のセッション鍵にして用いて暗号化通信を行う
事を特徴とする暗号化通信方法。
【請求項８】
請求項６記載の暗号化通信方法であって、
前記第１の通信装置と第２の通信装置が複数のセッション鍵を共有し、
１つのセキュアメッセージングコマンドによるコマンド処理を行う都度、第１の通信装置と第２の通信装置が、前記複数のセッション鍵から１つのセッション鍵を選ぶ情報を共有し、
次のセキュアメッセージングコマンドによるコマンド処理を行う際に、前記選んだ１つのセッション鍵にセッション鍵を更新して暗号化通信を行う
事を特徴とする暗号化通信方法。
【請求項９】
請求項６から８の何れか一項に記載の暗号化通信方法であって、
前記第１の通信装置と第２の通信装置が、前記セッション鍵を変更する複数の演算アルゴリズムを共有し、前記セッション鍵変更演算手段が前記複数の演算アルゴリズムを同期して切り替えて用いて前記セッション鍵を変更する
事を特徴とする暗号化通信方法。
【請求項１０】
請求項６から９の何れか一項に記載の暗号化通信方法であって、前記第１の通信装置がＩＣカードアクセス装置であり、前記第２の通信装置がＩＣカードである事を特徴とする暗号化通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信データのセキュアメッセージングで、よりセキュアな通信を実現する暗号化通信システム及び暗号化通信方法に関する。
【背景技術】
【０００２】
従来から、ＩＣカード等のＩＣチップとＩＣカードアクセス装置等との間でデータを送受信する際には、特許文献１の様に、第三者によるデータの傍受等によるデータの受信及び読み取りを回避するために、セッション鍵を用いたセキュアセッションを確立して行う暗号化通信が行われている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３４４４３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載された暗号化通信では、ＩＣカード側とＩＣカードアクセス装置側とが、共有する乱数をもとに、互いに同じセッション鍵を生成し、そのセッション鍵を用いたセキュアセッションを確立して暗号化通信を行う。しかし、第三者に通信が傍受され解析されセッション鍵を知られてしまうと、次の暗号化された通信の内容が知られてしまい、秘匿すべき通信内容が第三者に知られてしまう恐れがあった。
【０００５】
そこで、本発明の課題は、かかる従来の問題を解決し、セキュアメッセージングで利用するセッション鍵の秘匿性を高くし、通信の秘匿性を高めた暗号化通信システム及び暗号化通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明は、第１の通信装置と第２の通信装置間でセキュアメッセージングコマンドを通信する通信システムの暗号化通信システムであって、
第１の通信装置と第２の通信装置が、それぞれ、暗号化手段と、復号手段と、セッション鍵変更演算手段を備え、
１つのセキュアメッセージングコマンドによるコマンド処理を行う都度、前記セッション鍵変更演算手段がセッション鍵を更新し、第１の通信装置と第２の通信装置が前記更新したセッション鍵を共有して暗号化通信を行う事を特徴とする暗号化通信システムである。
【０００７】
本発明は、上記の構成により、１つのセキュアメッセージングコマンドによるコマンド処理を行う都度にセッション鍵を動的に更新することで、第三者に通信を傍受され解析されセッション鍵が知られたとしても、そのセッション鍵は次の通信では利用されないので、それでは通信内容が読み取れず、通信の秘匿性を高くしたセキュアメッセージングが行える暗号化通信システムが得られる効果がある。
【０００８】
また、本発明は、上記の暗号化通信システムであって、
前記第１の通信装置と第２の通信装置が第１の初期化セッション鍵と第２の初期化セッション鍵を共有し、第２の初期化セッション鍵を前記セキュアメッセージングコマンドによる最初のコマンド処理に用いる現用のセッション鍵とし、第１の初期化セッション鍵を旧セッション鍵とし、
前記セキュアメッセージングコマンドによるコマンド処理を行う都度、現用のセッション
鍵と旧セッション鍵を演算することで新セッション鍵を作成し、現用のセッション鍵を旧セッション鍵にし、
新セッション鍵を、次のセキュアメッセージングコマンドによるコマンド処理を行う際に用いる現用のセッション鍵にして用いて暗号化通信を行う
事を特徴とする暗号化通信システムである。
【０００９】
また、本発明は、上記の暗号化通信システムであって、
前記第１の通信装置と第２の通信装置が複数のセッション鍵を共有し、
１つのセキュアメッセージングコマンドによるコマンド処理を行う都度、第１の通信装置と第２の通信装置が、前記複数のセッション鍵から１つのセッション鍵を選ぶ情報を共有し、
次のセキュアメッセージングコマンドによるコマンド処理を行う際に、前記選んだ１つのセッション鍵にセッション鍵を更新して暗号化通信を行う
事を特徴とする暗号化通信システムである。
【００１０】
また、本発明は、上記の暗号化通信システムであって、
前記第１の通信装置と第２の通信装置が、前記セッション鍵を変更する複数の演算アルゴリズムを共有し、前記セッション鍵変更演算手段が前記複数の演算アルゴリズムを同期して切り替えて用いて前記セッション鍵を変更する
事を特徴とする暗号化通信システムである。
【００１１】
また、本発明は、上記の暗号化通信システムであって、前記第１の通信装置がＩＣカードアクセス装置であり、前記第２の通信装置がＩＣカードである事を特徴とする暗号化通信システムである。
【００１２】
また、本発明は、第１の通信装置と第２の通信装置間でセキュアメッセージングコマンドを通信する通信システムの暗号化通信方法であって、
第１の通信装置と第２の通信装置が、それぞれ、暗号化手段と、復号手段と、セッション鍵変更演算手段を備え、
１つのセキュアメッセージングコマンドによるコマンド処理を行う都度、前記セッション鍵変更演算手段がセッション鍵を更新し、第１の通信装置と第２の通信装置が前記更新したセッション鍵を共有して暗号化通信を行う事を特徴とする暗号化通信方法である。
【００１３】
また、本発明は、上記の暗号化通信方法であって、
前記第１の通信装置と第２の通信装置が第１の初期化セッション鍵と第２の初期化セッション鍵を共有し、第２の初期化セッション鍵を前記セキュアメッセージングコマンドによる最初のコマンド処理に用いる現用のセッション鍵とし、第１の初期化セッション鍵を旧セッション鍵とし、
前記セキュアメッセージングコマンドによるコマンド処理を行う都度、現用のセッション鍵と旧セッション鍵を演算することで新セッション鍵を作成し、現用のセッション鍵を旧セッション鍵にし、
新セッション鍵を、次のセキュアメッセージングコマンドによるコマンド処理を行う際に用いる現用のセッション鍵にして用いて暗号化通信を行う
事を特徴とする暗号化通信方法である。
【００１４】
また、本発明は、上記の暗号化通信方法であって、
前記第１の通信装置と第２の通信装置が複数のセッション鍵を共有し、
１つのセキュアメッセージングコマンドによるコマンド処理を行う都度、第１の通信装置と第２の通信装置が、前記複数のセッション鍵から１つのセッション鍵を選ぶ情報を共有し、
次のセキュアメッセージングコマンドによるコマンド処理を行う際に、前記選んだ１つのセッション鍵にセッション鍵を更新して暗号化通信を行う
事を特徴とする暗号化通信方法である。
【００１５】
また、本発明は、上記の暗号化通信方法であって、
前記第１の通信装置と第２の通信装置が、前記セッション鍵を変更する複数の演算アルゴリズムを共有し、前記セッション鍵変更演算手段が前記複数の演算アルゴリズムを同期して切り替えて用いて前記セッション鍵を変更する
事を特徴とする暗号化通信方法である。
【００１６】
また、本発明は、上記の暗号化通信方法であって、前記第１の通信装置がＩＣカードアクセス装置であり、前記第２の通信装置がＩＣカードである事を特徴とする暗号化通信方法である。
【発明の効果】
【００１７】
本発明によれば、１つのセキュアメッセージングコマンドによるコマンド処理を行う都度にセッション鍵を動的に更新する。すなわち、セッション毎ではなく、コマンドを送信する度にセッション鍵を変更することで、第三者に通信を傍受され解析されセッション鍵が知られたとしても、そのセッション鍵は次の通信では利用されない。そのため、セッション鍵が第三者に知られてしまった場合でも、データ漏洩をなくすことができ、秘匿性を高くしたセキュアメッセージングが行える暗号化通信システムが得られる効果がある。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施形態の暗号化通信システムの機能構成を示すブロック図である。
【図２】本発明の第１の実施形態の暗号化通信システムで用いるセキュアメッセージングコマンドのデータフォーマットを示す図である。
【図３】本発明の第１の実施形態の暗号化通信システムの動作を示すフローチャート（その１）である。
【図４】本発明の第１の実施形態の暗号化通信システムの動作を示すフローチャート（その２）である。
【図５】本発明の第１の実施形態の暗号化通信システムの動作を示すフローチャート（その３）である。
【図６】本発明の第１の実施形態の暗号化通信システムの動作を示すフローチャート（その４）である。
【図７】本発明の第２の実施形態の暗号化通信システムの機能構成を示すブロック図である。
【図８】本発明の第２の実施形態の暗号化通信システムで用いるセッション鍵群リストのデータ構造を示す図である。
【図９】本発明の第２の実施形態の暗号化通信システムの動作を示すフローチャート（その１）である。
【図１０】本発明の第２の実施形態の暗号化通信システムの動作を示すフローチャート（その２）である。
【図１１】本発明の第２の実施形態の暗号化通信システムの動作を示すフローチャート（その３）である。
【図１２】本発明の第２の実施形態の暗号化通信システムの動作を示すフローチャート（その４）である。
【図１３】本発明の第３の実施形態の暗号化通信システムの機能構成を示すブロック図である。
【図１４】本発明の第３の実施形態の暗号化通信システムで用いる演算鍵群リストのデータ構造を示す図である。
【図１５】本発明の第３の実施形態の暗号化通信システムの動作を示すフローチャート（その１）である。
【図１６】本発明の第３の実施形態の暗号化通信システムの動作を示すフローチャート（その２）である。
【図１７】本発明の第３の実施形態の暗号化通信システムの動作を示すフローチャート（その３）である。
【図１８】本発明の第３の実施形態の暗号化通信システムの動作を示すフローチャート（その４）である。
【発明を実施するための形態】
【００１９】
＜第１の実施形態＞
以下、本発明の第１の実施形態に係る暗号化通信システム及び暗号化通信方法について図１から図６を参照して説明する。
【００２０】
図１に示すように、本実施形態の暗号化通信システムは、ＩＣカード１００とＩＣカードアクセス装置２００を備えている。ＩＣカードアクセス装置２００とＩＣカード１００とが、暗号化通信によりデータを交換するセキュアメッセージング処理を行う暗号化通信システムである。
【００２１】
セキュアメッセージングを行うために、ＩＣカード１００は、暗号化手段１１０と復号手段１２０と、セッション鍵変更演算手段１３０を備え、ＩＣカードアクセス装置２００は、暗号化手段２１０と復号手段２２０とセッション鍵変更演算手段２３０と、初期化セッション鍵生成手段２４０を備える。
【００２２】
（ＩＣカードアクセス装置２００）
ＩＣカードアクセス装置２００は、ＩＣカード１００にセキュアメッセージングの暗号化通信を行うことで、ＩＣカード１００からデータを読み出し、又は、ＩＣカード１００に対してデータを書き込む。
【００２３】
（初期化セッション鍵生成手段２４０）
ＩＣカードアクセス装置２００の初期化セッション鍵生成手段２４０は、初期化セッション鍵Ｋ０とＫ１とを生成する。初期化セッション鍵Ｋ０とＫ１は、ＩＣカードアクセス装置２００とＩＣカード１００の間でのセキュアメッセージングにおいて、１つのコマンドの処理を行う都度に切り替えるセッション鍵を生成するための最初の種である。
【００２４】
本実施形態において、初期化セッション鍵Ｋ０とＫ１の生成の仕方については特に限定されない。例えば、初期化セッション鍵生成手段２４０は、乱数を発生させ、発生された乱数に基づいて初期化セッション鍵Ｋ０とＫ１を生成してもよい。
【００２５】
（暗号化手段２１０）
ＩＣカードアクセス装置２００とＩＣカード１００がセッション鍵を共有する以前の初期段階では、ＩＣカードアクセス装置２００の暗号化手段２１０が、初期化セッション鍵Ｋ０とＫ１を、ＩＣカード１００と共有するマスタ鍵ＭＫＥＹを用いて暗号化してＩＣカード１００に送信する。
【００２６】
ＩＣカードアクセス装置２００とＩＣカード１００がセッション鍵を共有した後では、ＩＣカードアクセス装置２００の暗号化手段２１０は、平文データをセッション鍵を用いて暗号化してコマンドの暗号化データ３２０を作成する。そして、ＩＣカードアクセス装置２００が、ヘッダ３１０とコマンドの暗号化データ３２０とメッセージ認証コードＭＡ
Ｃから成るセキュアメッセージングコマンド３００を作成してＩＣカード１００に送信する。
【００２７】
（セキュアメッセージングコマンド３００）
次に、ＩＣカードアクセス装置２００とＩＣカード１００との間で、セキュアメッセージング処理で通信するセキュアメッセージングコマンド３００の構成を説明する。
【００２８】
図２は、ＩＣカードアクセス装置２００からＩＣカード１００に送信するセキュアメッセージングコマンド３００の構成を説明する図である。図２の様に、セキュアメッセージングコマンド３００は、ヘッダ３１０と、コマンドの暗号化データ３２０と、メッセージ認証コードＭＡＣから成る。ヘッダ３１０は、そのセキュアメッセージングコマンド３００の機能を識別する情報を含むコードであり、また、ヘッダ３１０の特定のビットを使用して、そのコマンドがセキュアメッセージングコマンド３００であることを示す。
【００２９】
メッセージ認証コードＭＡＣは、ヘッダ３１０とコマンドの暗号化データ３２０をセッション鍵で暗号化し、セキュアメッセージングコマンド３００のヘッダ３１０やコマンドの暗号化データ３２０がＩＣカードアクセス装置２００とＩＣカード１００が通信する通信経路の中間で改ざんを検知する機能を持つ。
【００３０】
（復号手段２２０）
ＩＣカードアクセス装置２００の復号手段２２０は、ＩＣカード１００から受信したセキュアメッセージングコマンド３００のコマンドの暗号化データ３２０を、セッション鍵を用いて復号してＩＣカード１００のレスポンスデータの平文データを得る。
【００３１】
（セッション鍵変更演算手段２３０）
ＩＣカードアクセス装置２００は、ＩＣカード１００からセキュアメッセージングでレスポンスデータを受信した場合に、次に、セッション鍵変更演算手段２３０を用いて新しいセッション鍵を算出する。そして、次にＩＣカード１００に送信するセキュアメッセージングコマンドには、その新しいセッション鍵でデータを暗号化したセキュアメッセージングコマンド３００を作成して用いる。
【００３２】
詳しくは、セッション鍵変更演算手段２３０が、旧セッション鍵Ｋ０と現在のセッション鍵Ｋ１のＸＯＲ（排他的論理和）を演算し、その結果を新たなセッション鍵Ｋ２とする。そして、ＩＣカードアクセス装置２００は、ＩＣカード１００とのセキュアメッセージングで使用するセッション鍵をセッション鍵Ｋ２に変更する。こうして、セキュアメッセージングで１つのコマンドを処理する都度、セッション鍵をＫ１からＫ２、Ｋ３、Ｋ４へと更新してセキュアメッセージング処理を実施する。
【００３３】
（ＩＣカード１００の構成）
ＩＣカード１００は、集積回路が実装されたカードである。図１にＩＣカード１００の構成のブロック図を示す。ＩＣカード１００は、ＩＣカード１００全体の制御を行うマイクロプロセッサ等の制御手段１１と、暗号化処理に必要なべき乗剰余演算処理を行うことが可能なコプロセッサ１２と、通信手段１３と、記憶手段１４で構成されている。
【００３４】
（ＩＣカード１００の記憶手段１４）
図１のブロック図の様に、ＩＣカード１００の記憶手段１４は、ブートプログラムや各種固定データが記憶された固定記憶手段ＲＯＭと、各種データを一時的に記憶する一時記憶手段ＲＡＭと、電気的にデータの書換が可能で、プログラムデータ等を更新可能に記憶する不揮発性記憶手段のＥＥＰＲＯＭ(Electrically Erasable and Programmable ROM)、フラッシュメモリ等を備えて構成する。
【００３５】
記憶手段１４の記憶領域は、図１の様に、ファイル管理領域ＡＲ１、システム領域ＡＲ２及びユーザデータ領域ＡＲ３を備える。なお、記憶手段１４の記憶領域は、ファイル管理領域ＡＲ１、システム領域ＡＲ２及びユーザデータ領域ＡＲ３以外の領域が含まれていてもよい。
【００３６】
（ファイル管理領域ＡＲ１）
ファイル管理領域ＡＲ１は、システム領域ＡＲ２、ユーザデータ領域ＡＲ３に記憶されるデータをファイル単位で管理するファイル管理情報が記憶される領域である。
【００３７】
（システム領域ＡＲ２）
システム領域ＡＲ２は、ＯＳ（Operating System）と、セキュアメッセージングの暗号化手段１１０と、復号手段１２０と、セッション鍵変更演算手段１３０のプログラムが記憶され、また、各種設定情報などをはじめとするシステム情報が記憶される領域である。
【００３８】
（ユーザデータ領域ＡＲ３）
ユーザデータ領域ＡＲ３は、アプリケーションが使用するユーザデータが記憶される領域である。
【００３９】
（専用ファイルＤＦの階層構造）
図１のように、ユーザデータ領域ＡＲ３には、主ファイルＭＦ（Master File）の下に階層構造で接続する専用ファイルＤＦ（Dedicated File）を記憶する。専用ファイルＤＦは、下位のファイルをグループ化するためのファイルであり、専用ファイルＤＦの配下に基礎ファイルＥＦ（Elementary File）や他の専用ファイルＤＦを記憶する。
【００４０】
（基礎ファイルＥＦ）
専用ファイルＤＦの配下に構成される基礎ファイルＥＦはデータを格納するファイルであり、ＩＥＦ（Internal Elementary File：内部基礎ファイル）とＷＥＦ（作業基礎ファイル）との２つの種別に分けられる。
【００４１】
（作業基礎ファイルＷＥＦ）
作業基礎ファイルＷＥＦは、ＩＣカード１００から外部への出力が可能なファイルである。作業基礎ファイルＷＥＦには、ＩＣカード１００の個別ファイルを記憶する。
【００４２】
（内部基礎ファイルＩＥＦ）
ＩＣカード１００の内部基礎ファイルＩＥＦは、セキュリティ上、ＩＣカードアクセス装置２００から読出しができないファイルであり、ＩＣカード１００内においてのみ使用される。
【００４３】
内部基礎ファイルＩＥＦは、ＩＣカードアクセス装置２００がＩＣカード１００の作業基礎ファイルＷＥＦ内の個別ファイルを読み出すアクセス権を認証するためのセキュア通信用鍵情報や認証用鍵情報等の鍵情報を記憶し、その鍵情報を割り付けるキー区分を記憶する。ＩＣカードアクセス装置２００と共有するマスタ鍵ＭＫＥＹを内部基礎ファイルＩＥＦに記憶する。
【００４４】
（セキュアメッセージング処理）
次に、ＩＣカード１００とＩＣカードアクセス装置２００とがセキュアメッセージングコマンド３００を送受信して行うセキュアメッセージング処理を行うためにＩＣカード１００が有する手段について説明する。
【００４５】
ここで、ＩＣカードアクセス装置２００とＩＣカード１００は、１つのセキュアメッセージングコマンド３００によるコマンド処理を行う都度、同じアルゴリズムでセッション鍵を更新する。それにより、ＩＣカードアクセス装置２００とＩＣカード１００は互いに、セッション鍵を同じセッション鍵に更新して暗号化通信を行う。
【００４６】
（ＩＣカード１００のセキュアメッセージングの手段）
先ず、ＩＣカード１００の、セキュアメッセージング処理に用いる鍵とプログラム手段について説明する。先ず、ＩＣカード１００の内部基礎ファイルＩＥＦに、ＩＣカードアクセス装置２００と共有するマスタ鍵ＭＫＥＹを記憶する。また、ＩＣカード１００は、ＩＣカードアクセス装置２００との間でセキュアメッセージング処理を行うための、復号手段１２０と暗号化手段１１０とセッション鍵変更演算手段１３０を有する。
【００４７】
（復号手段１２０）
ＩＣカードアクセス装置２００とＩＣカード１００がセッション鍵を共有する以前の初期段階において、ＩＣカード１００は、ＩＣカードアクセス装置２００から初期化セッション鍵Ｋ０とＫ１の暗号化データを受信する。そして、ＩＣカード１００の復号手段１２０が、ＩＣカードアクセス装置２００と共有するマスタ鍵ＭＫＥＹを用いて暗号化データを復号して初期化セッション鍵Ｋ０とＫ１を得る。
【００４８】
ＩＣカードアクセス装置２００とＩＣカード１００がセッション鍵を共有した後では、ＩＣカード１００の復号手段１２０は、ＩＣカードアクセス装置２００から受信したセキュアメッセージングコマンド３００が含むコマンドの暗号化データ３２０を、セッション鍵を用いて復号してコマンドの平文データを得る。そして、ＩＣカード１００は、そのコマンドに従った処理を実行する。
【００４９】
（暗号化手段１１０）
ＩＣカード１００の暗号化手段１１０はセキュアメッセージング用の暗号化処理を行う。すなわち、ＩＣカード１００がＩＣカードアクセス装置２００からセキュアメッセージングコマンド３００を受信し、そのコマンドに従った処理を実行すると、ＩＣカード１００は先ず、その結果を報告するレスポンスの平文データを作成する。
【００５０】
そして、ＩＣカード１００の暗号化手段１１０が、セッション鍵を用いて、レスポンスデータの平文データを暗号化したレスポンスの暗号化データ３２０を作成する。また、暗号化手段１１０は、セキュアメッセージングコマンド３００のヘッダ３１０とレスポンスの暗号化データ３２０をセッション鍵で暗号化してメッセージ認証コードＭＡＣを作成する。そして、ＩＣカード１００が、そのレスポンスの暗号化データ３２０とメッセージ認証コードＭＡＣを含むセキュアメッセージングコマンド３００をＩＣカードアクセス装置２００に送信する。
【００５１】
（セッション鍵変更演算手段１３０）
ＩＣカード１００は、セキュアメッセージング処理において、ＩＣカードアクセス装置２００に向けてレスポンスデータのセキュアメッセージングコマンド３００を送信した後に、セッション鍵変更演算手段１３０を用いて以下の演算処理を行う。
【００５２】
すなわち、セッション鍵変更演算手段１３０が、次にＩＣカードアクセス装置２００から受信するコマンドの暗号化データを復号する際に用いる新しいセッション鍵を算出して、以前に用いたセッション鍵をその新しいセッション鍵に更新する。
【００５３】
（初期化セッション鍵の共有処理）
以下で、図３から図６を参照して、ＩＣカード１００とＩＣカードアクセス装置２００
とが行うセキュアメッセージング処理の手順を説明する。先ず、初期化セッション鍵をＩＣカード１００とＩＣカードアクセス装置２００間で共有する処理を行う。
【００５４】
初期化セッション鍵の共有方法には様々な手段があるが、ここではＩＣカードアクセス装置２００が生成した初期化セッション鍵をＩＣカード１００に送信して、ＩＣカードアクセス装置２００とＩＣカード１００がセッション鍵を共有する場合について図３を参照して説明する。
【００５５】
（ステップＳ１）
ＩＣカードアクセス装置２００は、乱数生成手段等の初期化セッション鍵生成手段２４０を用いて初期化セッション鍵Ｋ０と初期化セッション鍵Ｋ１を生成し、マスタ鍵ＭＫＥＹを用いて暗号化し、この２つの初期化セッション鍵Ｋ０とＫ１をセッション鍵復号コマンドに乗せてＩＣカード１００に送信する。
【００５６】
（ステップＳ２）
ＩＣカード１００は、このセッション鍵復号コマンドを受信すると、そのコマンドコードからセッション鍵復号コマンドであることを認識し、セッション鍵復号コマンドの受信のレスポンスデータをＩＣカードアクセス装置２００に返信する。
【００５７】
（ステップＳ３）
次に、ＩＣカード１００の復号手段１２０が、記憶手段１４に記憶されているマスタ鍵ＭＫＥＹを読み出し、このマスタ鍵ＭＫＥＹを用いて、セッション鍵復号コマンドの暗号化データから初期化セッション鍵Ｋ０とＫ１を復号して一時記憶手段ＲＡＭで記憶する。ここで用いられるマスタ鍵ＭＫＥＹは予めＩＣカードアクセス装置２００とＩＣカード１００間で共有しているものであり、ＩＣカードアクセス装置２００が暗号化に使用したマスタ鍵ＭＫＥＹと同じものである。
【００５８】
（セキュアメッセージングコマンドの通信手順）
次に、図４から図６を参照して、セキュアメッセージング処理によるセキュアメッセージングコマンド３００の通信手順を説明する。
【００５９】
（ステップＳ１１）
先ず、ＩＣカードアクセス装置２００の暗号化手段２１０が、ＩＣカード１００に送信するコマンドの平文データを、初期化セッション鍵Ｋ１を利用して暗号化しコマンドの暗号化データ３２０を作成する。例えば、ＩＣカード１００のファイルＡを選択するＳＥＬＥＣＴ  ＦＩＬＥコマンドの平文データを初期化セッション鍵Ｋ１を用いて暗号化したコマンドの暗号化データ３２０を作成する。
【００６０】
（ステップＳ１２）
次に、暗号化手段２１０が、ヘッダ３１０とコマンドの暗号化データ３２０をセッション鍵Ｋ１で暗号化してメッセージ認証コードＭＡＣを作成する。そして、ＩＣカードアクセス装置２００が、ヘッダ３１０とコマンドの暗号化データ３２０とメッセージ認証コードＭＡＣから成るセキュアメッセージングコマンド３００をＩＣカード１００に送信する。
【００６１】
（ステップＳ１３）
ＩＣカード１００の制御手段１１は、通信手段１３を用いてＩＣカードアクセス装置２００からコマンドデータを受信する受信処理を行う。
【００６２】
ＩＣカード１００は、コマンドデータが、セキュアメッセージングコマンド３００であ
る事を認識し復号手段１２０に制御を移す。
【００６３】
（ステップＳ１４）
復号手段１２０は、一時記憶手段ＲＡＭに記憶されているセッション鍵Ｋ１を用いて、コマンドの暗号化データ３２０を復号して、例えば、ＩＣカード１００のファイルＡを選択するＳＥＬＥＣＴ  ＦＩＬＥコマンドの平文データを得る。
【００６４】
（ステップＳ１５）
ＩＣカード１００は、復号したＳＥＬＥＣＴ  ＦＩＬＥコマンドに従ってＩＣカード１００のファイルＡを選択する処理を行う。
【００６５】
（ステップＳ１６）
次に、ＩＣカード１００の暗号化手段１１０が、レスポンスデータの平文データを初期化セッション鍵Ｋ１を用いて暗号化したレスポンスの暗号化データ３２０を作成する。
【００６６】
（ステップＳ１７）
次に、暗号化手段１１０が、ヘッダ３１０とレスポンスの暗号化データ３２０をセッション鍵Ｋ１で暗号化してメッセージ認証コードＭＡＣを作成する。そして、ＩＣカード１００は、ヘッダ３１０とレスポンスの暗号化データ３２０とメッセージ認証コードＭＡＣから成るセキュアメッセージングコマンド３００をＩＣカードアクセス装置２００に返信する。
【００６７】
（ステップＳ１８）
ＩＣカード１００は、次に、以下の演算処理でセッション鍵Ｋ２を導出する。すなわち、ＩＣカード１００は、一時記憶手段ＲＡＭで記憶しているセッション鍵Ｋ０とセッション鍵Ｋ１のＸＯＲ（排他的論理和）を演算し、その結果を新たなセッション鍵Ｋ２とする。そして、ＩＣカード１００は、一時記憶手段ＲＡＭで記憶するセッション鍵をセッション鍵Ｋ１とセッション鍵Ｋ２に置き換え、ＩＣカードアクセス装置２００とのセキュアメッセージンで使用するセッション鍵をセッション鍵Ｋ２に変更する。
【００６８】
（ステップＳ１９）
ＩＣカードアクセス装置２００は、ＩＣカード１００から受信したレスポンスがセキュアメッセージングコマンド３００である場合は、復号手段２２０に制御を移す。
【００６９】
復号手段２２０はＩＣカードアクセス装置２００が記憶しているセッション鍵Ｋ１を用いて、レスポンスの暗号化データ３２０を復号して、レスポンスデータの平文データを得る。
【００７０】
（ステップＳ２０）
ＩＣカードアクセス装置２００は、ＩＣカード１００から、セキュアメッセージングコマンド３００のレスポンスデータを受信した場合は、セッション鍵Ｋ０とセッション鍵Ｋ１のＸＯＲ（排他的論理和）を演算し、その結果を新たなセッション鍵Ｋ２とする。そして、ＩＣカードアクセス装置２００は、ＩＣカード１００とのセキュアメッセージングで使用するセッション鍵をセッション鍵Ｋ２に変更する。
【００７１】
（ステップＳ２１）
ＩＣカードアクセス装置２００は、暗号化手段２１０を用いて、次にＩＣカード１００に送信するコマンドの平文データを、セッション鍵Ｋ２を利用して暗号化しコマンドの暗号化データ３２０を作成する。例えば、選択したファイルＡに対して値を書き込むＷＲＩＴＥ  ＢＩＮＡＲＹコマンドの平文データをセッション鍵Ｋ２を用いて暗号化したコマン
ドの暗号化データ３２０を作成する。
【００７２】
（ステップＳ２２）
次に、暗号化手段２１０が、ヘッダ３１０とコマンドの暗号化データ３２０をセッション鍵Ｋ２で暗号化してメッセージ認証コードＭＡＣを作成する。そして、ＩＣカードアクセス装置２００が、ヘッダ３１０とコマンドの暗号化データ３２０とメッセージ認証コードＭＡＣから成るセキュアメッセージングコマンド３００をＩＣカード１００に送信する。
【００７３】
（ステップＳ２３）
ＩＣカード１００は、ＩＣカードアクセス装置２００からコマンドデータを受信し、コマンドデータが、セキュアメッセージングコマンド３００であるか否かを判定する。
【００７４】
（ステップＳ２４）
ＩＣカード１００は、受信したコマンドがセキュアメッセージングコマンド３００である場合は、復号手段１２０に制御を移す。
【００７５】
復号手段１２０は、先に演算して作成したセッション鍵Ｋ２を用いて、コマンドの暗号化データ３２０を復号して、例えば、選択したファイルＡに対して値を書き込むＷＲＩＴＥ  ＢＩＮＡＲＹコマンドの平文データを得る。
【００７６】
（ステップＳ２５）
ＩＣカード１００は、復号したＷＲＩＴＥ  ＢＩＮＡＲＹコマンドに従ってファイル書き込み処理を実行する。
【００７７】
（ステップＳ２６）
次に、ＩＣカード１００は、レスポンスデータの平文データをセッション鍵Ｋ２を用いて暗号化したレスポンスの暗号化データ３２０を作成する。
【００７８】
（ステップＳ２７）
次に、暗号化手段１１０が、ヘッダ３１０とレスポンスの暗号化データ３２０をセッション鍵Ｋ２で暗号化してメッセージ認証コードＭＡＣを作成する。そして、ＩＣカード１００は、ヘッダ３１０とレスポンスの暗号化データ３２０とメッセージ認証コードＭＡＣから成るセキュアメッセージングコマンド３００をＩＣカードアクセス装置２００に返信する。
【００７９】
（ステップＳ２８）
ＩＣカード１００は、次に、以下の演算処理でセッション鍵Ｋ３を導出する。すなわち、ＩＣカード１００は、セッション鍵Ｋ１とセッション鍵Ｋ２のＸＯＲ（排他的論理和）を演算し、その結果を新たなセッション鍵Ｋ３とする。そして、ＩＣカード１００は、一時記憶手段ＲＡＭで記憶するセッション鍵をセッション鍵Ｋ２とセッション鍵Ｋ３に置き換え、ＩＣカードアクセス装置２００とのセキュアメッセージンで使用するセッション鍵をセッション鍵Ｋ３に変更する。
【００８０】
（ステップＳ２９）
ＩＣカードアクセス装置２００は、ＩＣカード１００から受信したコマンドがセキュアメッセージングコマンド３００である場合は、復号手段２２０に制御を移す。
【００８１】
復号手段２２０はＩＣカードアクセス装置２００が記憶しているセッション鍵Ｋ２を用いて、コマンドの暗号化データ３２０を復号して、レスポンスデータの平文データを得る
。
【００８２】
（ステップＳ３０）
ＩＣカードアクセス装置２００は、ＩＣカード１００から受信したセキュアメッセージングコマンド３００がレスポンスデータであった場合は、セッション鍵Ｋ１とセッション鍵Ｋ２のＸＯＲ（排他的論理和）を演算し、その結果を新たなセッション鍵Ｋ３とする。そして、ＩＣカードアクセス装置２００は、ＩＣカード１００とのセキュアメッセージングで使用するセッション鍵をセッション鍵Ｋ３に変更する。
【００８３】
（ステップＳ３１）
ＩＣカードアクセス装置２００は、暗号化手段２１０を用いて、次にＩＣカード１００に送信するコマンドの平文データを、セッション鍵Ｋ３を利用して暗号化しコマンドの暗号化データ３２０を作成する。例えば、選択したファイルＡより値を読み出すＲＥＡＤ  ＢＩＮＡＲＹコマンドの平文データをセッション鍵Ｋ３を用いて暗号化したコマンドの暗号化データ３２０を作成する。
【００８４】
（ステップＳ３２）
次に、暗号化手段２１０が、ヘッダ３１０とコマンドの暗号化データ３２０をセッション鍵Ｋ３で暗号化してメッセージ認証コードＭＡＣを作成する。そして、ＩＣカードアクセス装置２００が、ヘッダ３１０とコマンドの暗号化データ３２０とメッセージ認証コードＭＡＣから成るセキュアメッセージングコマンド３００をＩＣカード１００に送信する。
【００８５】
（ステップＳ３３）
ＩＣカード１００は、ＩＣカードアクセス装置２００からコマンドデータを受信し、コマンドデータが、セキュアメッセージングコマンド３００であるか否かを判定する。
【００８６】
（ステップＳ３４）
ＩＣカード１００は、受信したコマンドがセキュアメッセージングコマンド３００である場合は、復号手段１２０に制御を移す。
【００８７】
復号手段１２０は、先に演算して作成したセッション鍵Ｋ２を用いて、コマンドの暗号化データ３２０を復号して、例えば、選択したファイルＡより値を読み出すＲＥＡＤ  ＢＩＮＡＲＹコマンドの平文データを得る。
【００８８】
（ステップＳ３５）
ＩＣカード１００は、復号したＲＥＡＤ  ＢＩＮＡＲＹコマンドに従ってファイルＡより値を読み出す処理を実行する。
【００８９】
（ステップＳ３６）
次に、ＩＣカード１００は、ファイルＡより読み出した値を返信するレスポンスデータの平文データをセッション鍵Ｋ３を用いて暗号化したレスポンスの暗号化データ３２０を作成する。
【００９０】
（ステップＳ３７）
次に、暗号化手段１１０が、ヘッダ３１０とレスポンスの暗号化データ３２０をセッション鍵Ｋ３で暗号化してメッセージ認証コードＭＡＣを作成する。そして、ＩＣカード１００は、ヘッダ３１０とレスポンスの暗号化データ３２０とメッセージ認証コードＭＡＣから成るセキュアメッセージングコマンド３００をＩＣカードアクセス装置２００に返信する。
【００９１】
（ステップＳ３８）
ＩＣカード１００は、次に、以下の演算処理でセッション鍵Ｋ４を導出する。すなわち、ＩＣカード１００は、セッション鍵Ｋ２とセッション鍵Ｋ３のＸＯＲ（排他的論理和）を演算し、その結果を新たなセッション鍵Ｋ４とする。そして、ＩＣカード１００は、一時記憶手段ＲＡＭで記憶するセッション鍵をセッション鍵Ｋ３とセッション鍵Ｋ４に置き換え、ＩＣカードアクセス装置２００とのセキュアメッセージンで使用するセッション鍵をセッション鍵Ｋ４に変更する。
【００９２】
（ステップＳ３９）
ＩＣカードアクセス装置２００は、ＩＣカード１００から受信したコマンドがセキュアメッセージングコマンド３００である場合は、復号手段２２０に制御を移す。
【００９３】
復号手段２２０はＩＣカードアクセス装置２００が記憶しているセッション鍵Ｋ３を用いて、レスポンスの暗号化データ３２０を復号して、レスポンスデータの平文データを得る。
【００９４】
（ステップＳ４０）
ＩＣカードアクセス装置２００は、ＩＣカード１００から受信したコマンドがレスポンスデータであった場合は、セッション鍵Ｋ２とセッション鍵Ｋ３のＸＯＲ（排他的論理和）を演算し、その結果を新たなセッション鍵Ｋ４とする。そして、ＩＣカードアクセス装置２００は、ＩＣカード１００とのセキュアメッセージングで使用するセッション鍵をセッション鍵Ｋ４に変更する。
【００９５】
こうして、本実施形態は、１つのセキュアメッセージングコマンド３００によるコマンド処理を行う都度にセッション鍵を動的に更新する。
【００９６】
ＩＣカードアクセス装置２００がＩＣカード１００のファイルのデータを読み書きする通信を行う際に、複数の通信を行いデータを読み書きする。その通信のセッション鍵が解析されて第三者に知られた場合でも、次のコマンドを送信する際のセッション鍵は、解析されたセッション鍵とは異なるセッション鍵に変更されているので、通信内容が第三者に知られる事が無い効果がある。それにより、セッション鍵が第三者に知られてしまった場合でも、データ漏洩をなくすことができ、秘匿性を高くしたセキュアメッセージングが行える効果がある。
【００９７】
＜第２の実施形態＞
本発明の第２の実施形態は、図７の様に構成する。第２の実施形態が第１の実施形態と相違する点は、ＩＣカードアクセス装置２００がセッション鍵群作成手段２５０を有し、セッション鍵群作成手段２５０が、図８の様なセッション鍵群リストを作成し、ＩＣカード１００に送信することで、ＩＣカードアクセス装置２００とＩＣカード１００がセッション鍵群を共有する点である。
【００９８】
そして、ＩＣカードアクセス装置２００とＩＣカード１００がセキュアメッセージングで１つのコマンドを処理する毎に、次のセキュアメッセージングで利用するセッション鍵を指定する情報をコマンドデータに加えて通信し、次のセキュアメッセージングは、更新したセッション鍵を用いて通信する。
【００９９】
例えば、セキュアメッセージングコマンド３００のコマンドデータに次のセキュアメッセージングで利用するセッション鍵を指定する、図８のセッション鍵群リストの番号を加えて、そのコマンドデータをセッション鍵で暗号化して暗号化データ３２０を作成する。
そして、ヘッダ３１０と暗号化データ３２０とメッセージ認証コードＭＡＣから成るセキュアメッセージングコマンド３００を通信する。
【０１００】
（セッション鍵群の共有処理）
以下で、図９を参照して、ＩＣカード１００とＩＣカードアクセス装置２００がセッション鍵群を共有する処理の手順を説明する。
【０１０１】
（ステップＳ４１）
ＩＣカードアクセス装置２００は、乱数生成手段等のセッション鍵群作成手段２５０を用いてセッション鍵Ｋ１〜Ｋ１８のセッション鍵群を作成し、マスタ鍵ＭＫＥＹを用いて暗号化し、この１８個のセッション鍵群Ｋ１〜Ｋ１８をセッション鍵群復号コマンドに乗せてＩＣカード１００に送信する。
【０１０２】
（ステップＳ４２）
ＩＣカード１００は、このセッション鍵群復号コマンドを受信すると、そのコマンドコードからセッション鍵群復号コマンドであることを認識し、セッション鍵群復号コマンドの受信のレスポンスデータをＩＣカードアクセス装置２００に返信する。
【０１０３】
（ステップＳ４３）
次に、ＩＣカード１００の復号手段１２０が、記憶手段１４に記憶されているマスタ鍵ＭＫＥＹを読み出し、このマスタ鍵ＭＫＥＹを用いて、セッション鍵群復号コマンドの暗号化データからセッション鍵Ｋ１〜Ｋ１８を復号して一時記憶手段ＲＡＭで記憶する。
【０１０４】
（セキュアメッセージングコマンドの通信手順）
次に、図１０から図１２を参照して、セキュアメッセージング処理によるセキュアメッセージングコマンド３００の通信手順を説明する。
【０１０５】
（ステップＳ５１）
先ず、ＩＣカードアクセス装置２００が、次に用いるセッション鍵の、例えば、図８のセッション鍵群リストのセッション鍵Ｋ１２を指定するリスト番号を選定する。
【０１０６】
次に、暗号化手段２１０が、ＩＣカード１００のファイルＡを選択するＳＥＬＥＣＴ  ＦＩＬＥコマンドの平文データに、次に用いるセッション鍵Ｋ１２のリスト番号を加え、そのデータを、第１のセッション鍵Ｋ１を利用して暗号化しコマンドの暗号化データ３２０を作成する。
【０１０７】
（ステップＳ５２）
次に、暗号化手段２１０が、ヘッダ３１０とコマンドの暗号化データ３２０をセッション鍵Ｋ１で暗号化してメッセージ認証コードＭＡＣを作成する。そして、ＩＣカードアクセス装置２００が、ヘッダ３１０とコマンドの暗号化データ３２０とメッセージ認証コードＭＡＣから成るセキュアメッセージングコマンド３００をＩＣカード１００に送信する。
【０１０８】
（ステップＳ５３〜Ｓ５４）
ＩＣカード１００は、第１の実施形態のステップＳ１３からＳ１４と同様な処理により、コマンドデータをセキュアメッセージングコマンド３００であると認識し復号手段１２０で復号し、ＳＥＬＥＣＴ  ＦＩＬＥコマンドの平文データと、次に用いるセッション鍵のリスト番号を得る。
【０１０９】
ＩＣカード１００は、次に用いるセッション鍵のリスト番号と、図８のセッション鍵群
リストから、次に用いるセッション鍵がセッション鍵Ｋ１２であると判定し、次に用いるセッション鍵Ｋ１２を用意する。
【０１１０】
（ステップＳ５５〜Ｓ５７）
ＩＣカード１００は、復号したＳＥＬＥＣＴ  ＦＩＬＥコマンドに従ってＩＣカード１００のファイルＡを選択する処理を行い、レスポンスデータのセキュアメッセージングコマンド３００をＩＣカードアクセス装置２００に返信する。
【０１１１】
（ステップＳ５８）
ＩＣカード１００は、ＩＣカードアクセス装置２００とのセキュアメッセージンで使用するセッション鍵を、次のセッション鍵Ｋ１２に変更する。
【０１１２】
（ステップＳ５９）
ＩＣカードアクセス装置２００の復号手段２２０が、ＩＣカードアクセス装置２００が記憶しているセッション鍵Ｋ１を用いて、コマンドの暗号化データ３２０を復号して、レスポンスデータの平文データを得る。
【０１１３】
（ステップＳ６０）
ＩＣカードアクセス装置２００は、ＩＣカード１００から受信したコマンドがレスポンスデータであった場合は、ＩＣカード１００とのセキュアメッセージンで使用するセッション鍵を、次のセッション鍵Ｋ１２に変更する。
【０１１４】
（ステップＳ６１）
ＩＣカードアクセス装置２００が、次に用いるセッション鍵の、例えば、図８のセッション鍵群リストのセッション鍵Ｋ５を指定するリスト番号を選定する。
【０１１５】
次に、暗号化手段２１０が、例えば、選択したファイルＡに対して値を書き込むＷＲＩＴＥ  ＢＩＮＡＲＹコマンドの平文データに、次に用いるセッション鍵Ｋ５のリスト番号を加え、そのデータを、セッション鍵Ｋ１２を利用して暗号化しコマンドの暗号化データ３２０を作成する。
【０１１６】
（ステップＳ６２）
次に、暗号化手段２１０が、ヘッダ３１０とコマンドの暗号化データ３２０をセッション鍵Ｋ１２で暗号化してメッセージ認証コードＭＡＣを作成する。そして、ＩＣカードアクセス装置２００が、ヘッダ３１０とコマンドの暗号化データ３２０とメッセージ認証コードＭＡＣから成るセキュアメッセージングコマンド３００をＩＣカード１００に送信する。
【０１１７】
（ステップＳ６３〜Ｓ６４）
ＩＣカード１００は、第１の実施形態のステップＳ２３からＳ２４と同様な処理により、コマンドデータをセキュアメッセージングコマンド３００であると認識し復号手段１２０で復号し、ＷＲＩＴＥ  ＢＩＮＡＲＹコマンドの平文データと、次に用いるセッション鍵のリスト番号を得る。
【０１１８】
ＩＣカード１００は、次に用いるセッション鍵のリスト番号と、図８のセッション鍵群リストから、次に用いるセッション鍵がセッション鍵Ｋ５であると判定し、次に用いるセッション鍵Ｋ５を用意する。
【０１１９】
（ステップＳ６５〜Ｓ６７）
ＩＣカード１００は、復号したＷＲＩＴＥ  ＢＩＮＡＲＹコマンドに従ってファイル書
き込み処理を実行し、レスポンスデータのセキュアメッセージングコマンド３００をＩＣカードアクセス装置２００に返信する。
【０１２０】
（ステップＳ６８）
ＩＣカード１００は、ＩＣカードアクセス装置２００とのセキュアメッセージンで使用するセッション鍵を、次のセッション鍵Ｋ５に変更する。
【０１２１】
（ステップＳ６９）
ＩＣカードアクセス装置２００の復号手段２２０が、ＩＣカードアクセス装置２００が記憶しているセッション鍵Ｋ１２を用いて、レスポンスの暗号化データ３２０を復号して、レスポンスデータの平文データを得る。
【０１２２】
（ステップＳ７０）
ＩＣカードアクセス装置２００は、ＩＣカード１００から受信したコマンドがレスポンスデータであった場合は、ＩＣカード１００とのセキュアメッセージンで使用するセッション鍵を、次のセッション鍵Ｋ５に変更する。
【０１２３】
（ステップＳ７１）
ＩＣカードアクセス装置２００が、次に用いるセッション鍵の、例えば、図８のセッション鍵群リストのセッション鍵Ｋ１７を指定するリスト番号を選定する。
【０１２４】
次に、暗号化手段２１０が、例えば、選択したファイルＡより値を読み出すＲＥＡＤ  ＢＩＮＡＲＹコマンドの平文データに、次に用いるセッション鍵Ｋ１７のリスト番号を加え、そのデータを、セッション鍵Ｋ５を利用して暗号化しコマンドの暗号化データ３２０を作成する。
【０１２５】
（ステップＳ７２）
次に、暗号化手段２１０が、ヘッダ３１０とコマンドの暗号化データ３２０をセッション鍵Ｋ５で暗号化してメッセージ認証コードＭＡＣを作成する。そして、ＩＣカードアクセス装置２００が、ヘッダ３１０とコマンドの暗号化データ３２０とメッセージ認証コードＭＡＣから成るセキュアメッセージングコマンド３００をＩＣカード１００に送信する。
【０１２６】
（ステップＳ７３〜Ｓ７４）
ＩＣカード１００は、第１の実施形態のステップＳ３３からＳ３４と同様な処理により、コマンドデータをセキュアメッセージングコマンド３００であると認識し復号手段１２０で復号し、ＲＥＡＤ  ＢＩＮＡＲＹコマンドの平文データと、次に用いるセッション鍵のリスト番号を得る。
【０１２７】
ＩＣカード１００は、次に用いるセッション鍵のリスト番号と、図８のセッション鍵群リストから、次に用いるセッション鍵がセッション鍵Ｋ１７であると判定し、次に用いるセッション鍵Ｋ１７を用意する。
【０１２８】
（ステップＳ７５〜Ｓ７７）
ＩＣカード１００は、復号したＲＥＡＤ  ＢＩＮＡＲＹコマンドに従ってファイルＡより値を読み出す処理を実行し、レスポンスデータのセキュアメッセージングコマンド３００をＩＣカードアクセス装置２００に返信する。
【０１２９】
（ステップＳ７８）
ＩＣカード１００は、ＩＣカードアクセス装置２００とのセキュアメッセージンで使用
するセッション鍵を、次のセッション鍵Ｋ１７に変更する。
【０１３０】
（ステップＳ７９）
ＩＣカードアクセス装置２００の復号手段２２０が、ＩＣカードアクセス装置２００が記憶しているセッション鍵Ｋ５を用いて、レスポンスの暗号化データ３２０を復号して、レスポンスデータの平文データを得る。
【０１３１】
（ステップＳ８０）
ＩＣカードアクセス装置２００は、ＩＣカード１００から受信したコマンドがレスポンスデータであった場合は、ＩＣカード１００とのセキュアメッセージンで使用するセッション鍵を、次のセッション鍵Ｋ１７に変更する。
【０１３２】
＜第３の実施形態＞
本発明の第３の実施形態は、図１３の様に構成する。第３の実施形態が第１及び第２の実施形態と相違する点は、ＩＣカードアクセス装置２００とＩＣカード１００がセッション鍵を変更する複数の演算アルゴリズムを共有して、その演算アルゴリズムを同期して切り替えてセッション鍵を変更する演算に用いることである。
【０１３３】
例えば、ＩＣカードアクセス装置２００とＩＣカード１００が、セッション鍵変更の演算１と演算２と演算３を共有し、演算１は、先に用いたセッション鍵と次に用いる演算鍵の排他的論理和（ＸＯＲ）を演算することで、次に用いるセッション鍵を演算する。
【０１３４】
演算２は、先に用いたセッション鍵と次に用いる演算鍵の論理積（ＡＮＤ）を演算することで、次に用いるセッション鍵を演算する。
【０１３５】
例えば、演算３は、先に用いた演算鍵と次に用いる演算鍵の排他的論理和（ＸＯＲ）を演算することで、次に用いるセッション鍵を演算する。
【０１３６】
そして、ＩＣカードアクセス装置２００とＩＣカード１００が、その演算アルゴリズムを選択して用いるセッション鍵変更演算切替手段２３１とセッション鍵変更演算切替手段１３１を有する。セッション鍵変更演算切替手段２３１とセッション鍵変更演算切替手段１３１は、同期してセッション鍵変更の複数の演算アルゴリズムを切り替えて用いて同じセッション鍵を算出する。
【０１３７】
ＩＣカードアクセス装置２００とＩＣカード１００がセキュアメッセージングで１つのコマンドを処理する毎に、次のセキュアメッセージングで利用するセッション鍵変更の演算を互いに同期して切り替えて、次に用いるセッション鍵を算出し、次のセキュアメッセージングは、更新したセッション鍵を用いて通信する。
【０１３８】
また、ＩＣカードアクセス装置２００が演算鍵群作成手段２５１を有し、演算鍵群作成手段２５１が、図１４の様な演算鍵群リストを作成し、ＩＣカード１００に送信して、ＩＣカードアクセス装置２００とＩＣカード１００が演算鍵群を共有する。セッション鍵変更演算切替手段２３１とセッション鍵変更演算切替手段１３１は、互いに同期して切り替える同じ演算鍵を用いて次に用いるセッション鍵を算出する。
【０１３９】
（演算鍵群の共有処理）
以下で、図１５を参照して、ＩＣカード１００とＩＣカードアクセス装置２００が演算鍵群を共有する処理の手順を説明する。
【０１４０】
（ステップＳ８１）
ＩＣカードアクセス装置２００は、乱数生成手段等の演算鍵群作成手段２５１を用いて演算鍵ＥＫ１〜ＥＫ１８の演算鍵群を作成し、マスタ鍵ＭＫＥＹを用いて暗号化し、この１８個の演算鍵群ＥＫ１〜ＥＫ１８を演算鍵群復号コマンドに乗せてＩＣカード１００に送信する。
【０１４１】
（ステップＳ８２）
ＩＣカード１００は、この演算鍵群復号コマンドを受信すると、そのコマンドコードから演算鍵群復号コマンドであることを認識し、演算鍵群復号コマンドの受信のレスポンスデータをＩＣカードアクセス装置２００に返信する。
【０１４２】
（ステップＳ８３）
次に、ＩＣカード１００の復号手段１２０が、記憶手段１４に記憶されているマスタ鍵ＭＫＥＹを読み出し、このマスタ鍵ＭＫＥＹを用いて、演算鍵群復号コマンドの暗号化データから演算鍵ＥＫ１〜ＥＫ１８を復号して一時記憶手段ＲＡＭで記憶する。
【０１４３】
（ステップＳ８４）
次に、ＩＣカード１００が、次に用いるセッション鍵Ｋ１を演算鍵ＥＫ１に設定する。
【０１４４】
（ステップＳ８５）
次に、ＩＣカードアクセス装置２００が、次に用いるセッション鍵Ｋ１を演算鍵ＥＫ１に設定する。
【０１４５】
（セキュアメッセージングコマンドの通信手順）
次に、図１６から図１８を参照して、セキュアメッセージング処理によるセキュアメッセージングコマンド３００の通信手順を説明する。
【０１４６】
（ステップＳ９１）
先ず、ＩＣカードアクセス装置２００が、例えば、図１４の演算群リストの演算鍵ＥＫ１２を指定するリスト番号を選定する。
【０１４７】
次に、暗号化手段２１０が、ＩＣカード１００のファイルＡを選択するＳＥＬＥＣＴ  ＦＩＬＥコマンドの平文データに、次に用いる演算鍵ＥＫ１２のリスト番号を加え、そのデータを、第１のセッション鍵Ｋ１を利用して暗号化しコマンドの暗号化データ３２０を作成する。
【０１４８】
（ステップＳ９２）
次に、暗号化手段２１０が、ヘッダ３１０とコマンドの暗号化データ３２０をセッション鍵Ｋ１で暗号化してメッセージ認証コードＭＡＣを作成する。そして、ＩＣカードアクセス装置２００が、ヘッダ３１０とコマンドの暗号化データ３２０とメッセージ認証コードＭＡＣから成るセキュアメッセージングコマンド３００をＩＣカード１００に送信する。
【０１４９】
（ステップＳ９３〜Ｓ９４）
ＩＣカード１００は、第１の実施形態のステップＳ１３からＳ１４と同様な処理により、コマンドデータをセキュアメッセージングコマンド３００であると認識し復号手段１２０で復号し、ＳＥＬＥＣＴ  ＦＩＬＥコマンドの平文データと、次に用いる演算鍵のリスト番号を得る。
【０１５０】
ＩＣカード１００は、次に用いる演算鍵のリスト番号と、図１４の演算鍵群リストから、次に用いる演算鍵が演算鍵ＥＫ１２であると判定し、次に用いる演算鍵ＥＫ１２を用意する。
【０１５１】
（ステップＳ９５〜Ｓ９７）
ＩＣカード１００は、復号したＳＥＬＥＣＴ  ＦＩＬＥコマンドに従ってＩＣカード１００のファイルＡを選択する処理を行い、レスポンスデータのセキュアメッセージングコマンド３００をＩＣカードアクセス装置２００に返信する。
【０１５２】
（ステップＳ９８）
ＩＣカード１００のセッション鍵変更演算切替手段１３１が、次に、以下の演算処理で次のセッション鍵Ｋ２を導出する。すなわち、セッション鍵変更演算切替手段１３１は、排他的論理和を行う演算１を選んで、セッション鍵Ｋ１と演算鍵ＥＫ１２のＸＯＲ（排他的論理和）を演算し、その結果を新たなセッション鍵Ｋ２とする。そして、ＩＣカード１００は、ＩＣカードアクセス装置２００とのセキュアメッセージンで使用するセッション鍵をセッション鍵Ｋ２に変更する。
【０１５３】
（ステップＳ９９）
ＩＣカードアクセス装置２００の復号手段２２０が、ＩＣカードアクセス装置２００が記憶しているセッション鍵Ｋ１を用いて、コマンドの暗号化データ３２０を復号して、レスポンスデータの平文データを得る。
【０１５４】
（ステップＳ１００）
ＩＣカードアクセス装置２００は、ＩＣカード１００から受信したコマンドがレスポンスデータであった場合は、セッション鍵変更演算切替手段２３１が、次にＩＣカード１００とのセキュアメッセージンで使用するセッション鍵Ｋ２を、以下の演算処理で導出する。
【０１５５】
すなわち、セッション鍵変更演算切替手段２３１は、ＩＣカード１００に同期してＩＣカード１００が使用したのと同じ演算１を選んで、セッション鍵Ｋ１と演算鍵ＥＫ１２のＸＯＲ（排他的論理和）を演算し、その結果を新たなセッション鍵Ｋ２とする。そして、ＩＣカードアクセス装置２００は、ＩＣカード１００とのセキュアメッセージンで使用するセッション鍵をセッション鍵Ｋ２に変更する。
【０１５６】
（ステップＳ１０１）
ＩＣカードアクセス装置２００が、次に用いる演算鍵の、例えば、図１４の演算鍵群リストの演算鍵ＥＫ５を指定するリスト番号を選定する。
【０１５７】
次に、暗号化手段２１０が、例えば、選択したファイルＡに対して値を書き込むＷＲＩＴＥ  ＢＩＮＡＲＹコマンドの平文データに、次に用いる演算鍵ＥＫ５のリスト番号を加え、そのデータを、セッション鍵Ｋ２を用いて暗号化しコマンドの暗号化データ３２０を作成する。
【０１５８】
（ステップＳ１０２）
次に、暗号化手段２１０が、ヘッダ３１０とコマンドの暗号化データ３２０をセッション鍵Ｋ２で暗号化してメッセージ認証コードＭＡＣを作成する。そして、ＩＣカードアクセス装置２００が、ヘッダ３１０とコマンドの暗号化データ３２０とメッセージ認証コードＭＡＣから成るセキュアメッセージングコマンド３００をＩＣカード１００に送信する。
【０１５９】
（ステップＳ１０３〜Ｓ１０４）
ＩＣカード１００は、第１の実施形態のステップＳ２３からＳ２４と同様な処理により
、コマンドデータをセキュアメッセージングコマンド３００であると認識し復号手段１２０で復号し、ＷＲＩＴＥ  ＢＩＮＡＲＹコマンドの平文データと、次に用いる演算鍵のリスト番号を得る。
【０１６０】
ＩＣカード１００は、次に用いる演算鍵のリスト番号と、図１４の演算鍵群リストから、次に用いる演算鍵が演算鍵ＥＫ５であると判定し、次に用いる演算鍵ＥＫ５を用意する。
【０１６１】
（ステップＳ１０５〜Ｓ１０７）
ＩＣカード１００は、復号したＷＲＩＴＥ  ＢＩＮＡＲＹコマンドに従ってファイル書き込み処理を実行し、レスポンスデータのセキュアメッセージングコマンド３００をＩＣカードアクセス装置２００に返信する。
【０１６２】
（ステップＳ１０８）
ＩＣカード１００のセッション鍵変更演算切替手段１３１が、次に、以下の演算処理で次のセッション鍵Ｋ３を導出する。すなわち、セッション鍵変更演算切替手段１３１は、論理積を行う演算２を選んで、セッション鍵Ｋ２と演算鍵ＥＫ５のＡＮＤ（論理積）を演算し、その結果を新たなセッション鍵Ｋ３とする。そして、ＩＣカード１００は、ＩＣカードアクセス装置２００とのセキュアメッセージンで使用するセッション鍵をセッション鍵Ｋ３に変更する。
【０１６３】
（ステップＳ１０９）
ＩＣカードアクセス装置２００の復号手段２２０が、ＩＣカードアクセス装置２００が記憶しているセッション鍵Ｋ２を用いて、レスポンスの暗号化データ３２０を復号して、レスポンスデータの平文データを得る。
【０１６４】
（ステップＳ１１０）
ＩＣカードアクセス装置２００は、ＩＣカード１００から受信したコマンドがレスポンスデータであった場合は、セッション鍵変更演算切替手段２３１が、次にＩＣカード１００とのセキュアメッセージンで使用するセッション鍵Ｋ３を、以下の演算処理で導出する。
【０１６５】
すなわち、セッション鍵変更演算切替手段２３１は、ＩＣカード１００に同期してＩＣカード１００が使用したのと同じ演算２を選んで、セッション鍵Ｋ２と演算鍵ＥＫ５のＡＮＤ（論理積）を演算し、その結果を新たなセッション鍵Ｋ３とする。そして、ＩＣカードアクセス装置２００は、ＩＣカード１００とのセキュアメッセージンで使用するセッション鍵をセッション鍵Ｋ３に変更する。
【０１６６】
（ステップＳ１１１）
ＩＣカードアクセス装置２００が、次に用いる演算鍵の、例えば、図１４の演算鍵群リストの演算鍵ＥＫ１７を指定するリスト番号を選定する。
【０１６７】
次に、暗号化手段２１０が、例えば、選択したファイルＡより値を読み出すＲＥＡＤ  ＢＩＮＡＲＹコマンドの平文データに、次に用いる演算鍵ＥＫ１７のリスト番号を加え、そのデータを、セッション鍵Ｋ３を用いて暗号化しコマンドの暗号化データ３２０を作成する。
【０１６８】
（ステップＳ１１２）
次に、暗号化手段２１０が、ヘッダ３１０とコマンドの暗号化データ３２０をセッション鍵Ｋ３で暗号化してメッセージ認証コードＭＡＣを作成する。そして、ＩＣカードアク
セス装置２００が、ヘッダ３１０とコマンドの暗号化データ３２０とメッセージ認証コードＭＡＣから成るセキュアメッセージングコマンド３００をＩＣカード１００に送信する。
【０１６９】
（ステップＳ１１３〜Ｓ１１４）
ＩＣカード１００は、第１の実施形態のステップＳ３３からＳ３４と同様な処理により、コマンドデータをセキュアメッセージングコマンド３００であると認識し復号手段１２０で復号し、ＲＥＡＤ  ＢＩＮＡＲＹコマンドの平文データと、次に用いる演算鍵のリスト番号を得る。
【０１７０】
ＩＣカード１００は、次に用いる演算鍵のリスト番号と、図１４のセッション鍵群リストから、次に用いる演算鍵が演算鍵ＥＫ１７であると判定し、次に用いる演算鍵ＥＫ１７を用意する。
【０１７１】
（ステップＳ１１５〜Ｓ１１７）
ＩＣカード１００は、復号したＲＥＡＤ  ＢＩＮＡＲＹコマンドに従ってファイルＡより値を読み出す処理を実行し、レスポンスデータのセキュアメッセージングコマンド３００をＩＣカードアクセス装置２００に返信する。
【０１７２】
（ステップＳ１１８）
ＩＣカード１００のセッション鍵変更演算切替手段１３１が、次に、以下の演算処理で次のセッション鍵Ｋ４を導出する。すなわち、セッション鍵変更演算切替手段１３１は、以前の演算鍵と排他的論理和を行う演算３を選んで、演算鍵ＥＫ５と演算鍵ＥＫ１７のＸＯＲ（排他的論理和）を演算し、その結果を新たなセッション鍵Ｋ４とする。そして、ＩＣカード１００は、ＩＣカードアクセス装置２００とのセキュアメッセージンで使用するセッション鍵をセッション鍵Ｋ４に変更する。
【０１７３】
（ステップＳ１１９）
ＩＣカードアクセス装置２００の復号手段２２０が、ＩＣカードアクセス装置２００が記憶しているセッション鍵Ｋ３を用いて、レスポンスの暗号化データ３２０を復号して、レスポンスデータの平文データを得る。
【０１７４】
（ステップＳ１２０）
ＩＣカードアクセス装置２００は、ＩＣカード１００から受信したコマンドがレスポンスデータであった場合は、セッション鍵変更演算切替手段２３１が、次にＩＣカード１００とのセキュアメッセージンで使用するセッション鍵Ｋ４を、以下の演算処理で導出する。
【０１７５】
すなわち、セッション鍵変更演算切替手段２３１は、ＩＣカード１００に同期してＩＣカード１００が使用したのと同じ演算３を選んで、演算鍵ＥＫ５と演算鍵ＥＫ１７のＸＯＲ（排他的論理和）を演算し、その結果を新たなセッション鍵Ｋ４とする。そして、ＩＣカードアクセス装置２００は、ＩＣカード１００とのセキュアメッセージンで使用するセッション鍵をセッション鍵Ｋ４に変更する。
【０１７６】
以上、本発明の好適な実施形態について説明したが、本発明は以上の実施形態に限定されず、ＩＣカードアクセス装置２００が送信するコマンドに使用するセッション鍵とＩＣカード１００が送信するレスポンスに使用するセッション鍵を異なるものにすることもできる。すなわち、ＩＣカードアクセス装置２００とＩＣカード１００が、コマンド送信時のセッション鍵とレスポンス送信時のセッション鍵を互いに同期させて切り替えて用いて通信する暗号化通信システムにも適用できる。
【０１７７】
また、本発明は、ＩＣカードアクセス装置２００とＩＣカード１００の間の暗号化通信システムに限定されず、携帯端末装置とＩＣカードアクセス装置２００との間で通信する暗号化通信システムにも適用でき、更に、携帯端末装置同士の暗号化通信システムにも適用できる。すなわち、本発明は２つの通信装置間でセキュアメッセージングコマンド３００を通信する通信システムの暗号化通信システムに適用することができる。
【符号の説明】
【０１７８】
１・・・暗号化通信システム
１１・・・制御手段
１２・・・コプロセッサ
１３・・・通信手段
１４・・・記憶手段
１００・・・ＩＣカード
１１０・・・暗号化手段
１２０・・・復号手段
１３０・・・セッション鍵変更演算手段
１３１・・・セッション鍵変更演算切替手段
２００・・・ＩＣカードアクセス装置
２１０・・・暗号化手段
２２０・・・復号手段
２３０・・・セッション鍵変更演算手段
２３１・・・セッション鍵変更演算切替手段
２４０・・・初期化セッション鍵生成手段
２５０・・・セッション鍵群作成手段
２５１・・・演算鍵群作成手段
３００・・・セキュアメッセージングコマンド
３１０・・・ヘッダ
３２０・・・コマンド／レスポンスの暗号化データ
ＡＲ１・・・ファイル管理領域
ＡＲ２・・・システム領域
ＡＲ３・・・ユーザデータ領域
ＤＦ・・・専用ファイル
ＥＦ・・・基礎ファイル
ＥＫ１、ＥＫ２、ＥＫ３〜ＥＫ１８・・・演算鍵
ＩＥＦ・・・内部基礎ファイル
Ｋ０、Ｋ１・・・初期化セッション鍵
Ｋ２、Ｋ３、Ｋ４〜Ｋ１８・・・セッション鍵
ＭＡＣ・・メッセージ認証コード
ＭＫＥＹ・・・マスタ鍵
ＲＡＭ・・・一時記憶手段
ＲＯＭ・・・固定記憶手段
ＷＥＦ・・・作業基礎ファイル
【図１】
2020092323.tif 000003
【図２】
2020092323.tif 000004
【図３】
2020092323.tif 000005
【図４】
2020092323.tif 000006
【図５】
2020092323.tif 000007
【図６】
2020092323.tif 000008
【図７】
2020092323.tif 000009
【図８】
2020092323.tif 000010
【図９】
2020092323.tif 000011
【図１０】
2020092323.tif 000012
【図１１】
2020092323.tif 000013
【図１２】
2020092323.tif 000014
【図１３】
2020092323.tif 000015
【図１４】
2020092323.tif 000016
【図１５】
2020092323.tif 000017
【図１６】
2020092323.tif 000018
【図１７】
2020092323.tif 000019
【図１８】
2020092323.tif 000020