(57)【特許請求の範囲】
【請求項１】
第１の情報処理装置と第２の情報処理装置とを備え、両者間で所定の暗号化プロトコルに基づいた暗号通信が可能な情報処理システムであって、
前記第１の情報処理装置は、
複数Ｎ通り（Ｎ≧２）の暗号化プロトコルに基づく暗号通信を行う機能を有し、前記Ｎ通りの暗号化プロトコルのうち、前記第２の情報処理装置から指定された暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設し、開設された暗号通信路を介して前記第２の情報処理装置との間で暗号通信を行う第１の暗号通信処理部と、
暗号鍵を格納するための複数の格納場所を有し、これら複数の格納場所に、前記複数Ｎ通りの暗号化プロトコルのそれぞれに用いられる暗号鍵を格納した第１の暗号鍵格納部と、
を有し、
前記第２の情報処理装置は、
前記複数Ｎ通りの暗号化プロトコルのうちの少なくとも１つの特定の暗号化プロトコルに基づく暗号通信を行う機能を有し、当該特定の暗号化プロトコルに基づく暗号通信を行うために開設された暗号通信路を介して前記第１の情報処理装置との間で暗号通信を行う第２の暗号通信処理部と、
前記特定の暗号化プロトコルに用いられる暗号鍵を格納した第２の暗号鍵格納部と、
前記第１の情報処理装置に対して、暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドを与える暗号通信路開設指示部と、
を有し、
前記暗号通信路開設コマンドには、前記特定の暗号化プロトコルを指定するためのプロトコル指定情報と、前記特定の暗号鍵を指定するための暗号鍵指定情報と、が含まれており、
前記第１の暗号通信処理部は、前記暗号通信路開設コマンドに含まれている前記プロトコル指定情報によって指定された暗号化プロトコルおよび前記暗号通信路開設コマンドに含まれている前記暗号鍵指定情報によって指定された暗号鍵を利用して暗号通信を行うための暗号通信路を開設し、
前記第１の暗号鍵格納部には、前記Ｎ通りの暗号化プロトコルに対応づけられたＮ個の格納ゾーンが設定されており、第ｉ番目（１≦ｉ≦Ｎ）の格納ゾーンに所属する格納場所には、第ｉ番目の暗号化プロトコルに用いる暗号鍵が格納されており、
前記暗号通信路開設コマンドには、特定の暗号鍵の格納場所を示す格納場所指定情報が含まれており、
前記第１の暗号通信処理部は、前記格納場所指定情報を、プロトコル指定情報および暗号鍵指定情報の双方の役割を兼ねた情報として認識し、前記格納場所指定情報によって示された格納場所に格納されている暗号鍵を用いて、前記格納場所指定情報によって示された格納場所が所属する格納ゾーンに対応する暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設し、
前記第１の暗号鍵格納部には、キーバージョン番号によって特定される複数の格納場所が用意されており、個々の格納ゾーンは、１つもしくは複数の格納場所によって構成され、
前記暗号通信路開設コマンドには、格納場所指定情報として特定のキーバージョン番号が含まれており、
前記第１の暗号通信処理部は、前記キーバージョン番号によって特定される格納場所に格納されている暗号鍵を用いて、前記キーバージョン番号によって示された格納場所が所属する格納ゾーンに対応する暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設することを特徴とする情報処理システム。
【請求項２】
請求項１に記載の情報処理システムにおいて、
個々の格納ゾーンが、１つの格納場所もしくは連続するキーバージョン番号を有する複数の格納場所によって構成され、個々の格納ゾーンがキーバージョン番号の固有の数値範囲に対応づけられていることを特徴とする情報処理システム。
【請求項３】
請求項１または２に記載の情報処理システムにおいて、
第１の暗号鍵格納部の各格納場所には、それぞれキーＩＤによって特定される複数の格納庫が用意されており、これら複数の格納庫の全部もしくは一部に、それぞれ別個の暗号鍵が格納されており、
第１の暗号通信処理部は、暗号通信路開設コマンドに含まれるキーバージョン番号によって特定される格納場所内の格納庫のうち、当該格納場所が所属する格納ゾーンに対応する暗号化プロトコルによって予め定められている所定のキーＩＤによって特定される格納庫に格納されている暗号鍵を利用して暗号通信路を開設することを特徴とする情報処理システム。
【請求項４】
第１の情報処理装置と第２の情報処理装置とを備え、両者間で所定の暗号化プロトコルに基づいた暗号通信が可能な情報処理システムであって、
前記第１の情報処理装置は、
複数Ｎ通り（Ｎ≧２）の暗号化プロトコルに基づく暗号通信を行う機能を有し、前記Ｎ通りの暗号化プロトコルのうち、前記第２の情報処理装置から指定された暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設し、開設された暗号通信路を介して前記第２の情報処理装置との間で暗号通信を行う第１の暗号通信処理部と、
暗号鍵を格納するための複数の格納場所を有し、これら複数の格納場所に、前記複数Ｎ通りの暗号化プロトコルのそれぞれに用いられる暗号鍵を格納した第１の暗号鍵格納部と、
を有し、
前記第２の情報処理装置は、
前記複数Ｎ通りの暗号化プロトコルのうちの少なくとも１つの特定の暗号化プロトコルに基づく暗号通信を行う機能を有し、当該特定の暗号化プロトコルに基づく暗号通信を行うために開設された暗号通信路を介して前記第１の情報処理装置との間で暗号通信を行う第２の暗号通信処理部と、
前記特定の暗号化プロトコルに用いられる暗号鍵を格納した第２の暗号鍵格納部と、
前記第１の情報処理装置に対して、暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドを与える暗号通信路開設指示部と、
を有し、
前記暗号通信路開設コマンドには、前記特定の暗号化プロトコルを指定するためのプロトコル指定情報と、前記特定の暗号鍵を指定するための暗号鍵指定情報と、が含まれており、
前記第１の暗号通信処理部は、前記暗号通信路開設コマンドに含まれている前記プロトコル指定情報によって指定された暗号化プロトコルおよび前記暗号通信路開設コマンドに含まれている前記暗号鍵指定情報によって指定された暗号鍵を利用して暗号通信を行うための暗号通信路を開設し、
前記第１の暗号鍵格納部の各格納場所には、暗号化演算に用いられる鍵値データと、暗号アルゴリズムの種別を示す種別情報と、を含む暗号鍵が格納されており、
前記暗号通信路開設コマンドには、特定の暗号鍵の格納場所を示す格納場所指定情報が含まれており、
前記第１の暗号通信処理部は、前記格納場所指定情報を、プロトコル指定情報および暗号鍵指定情報の双方の役割を兼ねた情報として認識し、前記格納場所指定情報によって示された格納場所に格納されている暗号鍵に含まれている鍵値データを用いて、当該暗号鍵に含まれている種別情報によって示された暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設することを特徴とする情報処理システム。
【請求項５】
請求項４に記載の情報処理システムにおいて、
第１の暗号鍵格納部の各格納場所には、暗号化演算に用いられる鍵値データと、暗号アルゴリズムの種別を示す種別情報と、前記鍵値データの長さを示す鍵長と、を含む暗号鍵が格納されており、
第１の暗号通信処理部は、前記鍵長に基づいて、暗号鍵から鍵値データの抽出を行うことを特徴とする情報処理システム。
【請求項６】
請求項４または５に記載の情報処理システムにおいて、
第１の暗号鍵格納部の各格納場所には、それぞれキーＩＤによって特定される複数の格納庫が用意されており、これら複数の格納庫の全部もしくは一部に、それぞれ別個の暗号鍵が格納されており、同一の格納場所に属する複数の格納庫に格納されている暗号鍵には、同一の種別情報が含まれており、
第１の暗号通信処理部は、暗号通信路開設コマンドに含まれる暗号鍵指定情報によって特定される格納場所内のいずれかの格納庫に格納されている暗号鍵に含まれる種別情報によって示された暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設することを特徴とする情報処理システム。
【請求項７】
第１の情報処理装置と第２の情報処理装置とを備え、両者間で所定の暗号化プロトコルに基づいた暗号通信が可能な情報処理システムであって、
前記第１の情報処理装置は、
複数Ｎ通り（Ｎ≧２）の暗号化プロトコルに基づく暗号通信を行う機能を有し、前記Ｎ通りの暗号化プロトコルのうち、前記第２の情報処理装置から指定された暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設し、開設された暗号通信路を介して前記第２の情報処理装置との間で暗号通信を行う第１の暗号通信処理部と、
暗号鍵を格納するための複数の格納場所を有し、これら複数の格納場所に、前記複数Ｎ通りの暗号化プロトコルのそれぞれに用いられる暗号鍵を格納した第１の暗号鍵格納部と、
を有し、
前記第２の情報処理装置は、
前記複数Ｎ通りの暗号化プロトコルのうちの少なくとも１つの特定の暗号化プロトコルに基づく暗号通信を行う機能を有し、当該特定の暗号化プロトコルに基づく暗号通信を行うために開設された暗号通信路を介して前記第１の情報処理装置との間で暗号通信を行う第２の暗号通信処理部と、
前記特定の暗号化プロトコルに用いられる暗号鍵を格納した第２の暗号鍵格納部と、
前記第１の情報処理装置に対して、暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドを与える暗号通信路開設指示部と、
を有し、
前記暗号通信路開設コマンドには、前記特定の暗号化プロトコルを指定するためのプロトコル指定情報と、前記特定の暗号鍵を指定するための暗号鍵指定情報と、が含まれており、
前記第１の暗号通信処理部は、前記暗号通信路開設コマンドに含まれている前記プロトコル指定情報によって指定された暗号化プロトコルおよび前記暗号通信路開設コマンドに含まれている前記暗号鍵指定情報によって指定された暗号鍵を利用して暗号通信を行うための暗号通信路を開設し、
前記暗号通信路開設コマンドには、特定の暗号化プロトコルに基づく暗号通信路の開設を指示する文字列を示すコマンド文字列情報と、特定の暗号鍵の格納場所を示す格納場所指定情報と、が含まれており、
前記第１の暗号通信処理部は、前記コマンド文字列情報をプロトコル指定情報として認識し、前記格納場所指定情報を暗号鍵指定情報として認識することにより、前記格納場所指定情報によって示された格納場所に格納されている暗号鍵を用いて、前記コマンド文字列情報に対応する暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設することを特徴とする情報処理システム。
【請求項８】
請求項７に記載の情報処理システムにおいて、
第１の暗号鍵格納部の各格納場所には、それぞれキーＩＤによって特定される複数の格納庫が用意されており、これら複数の格納庫の全部もしくは一部に、それぞれ別個の暗号鍵が格納されており、
第１の暗号通信処理部は、暗号通信路開設コマンドに含まれる暗号鍵指定情報によって特定される格納場所内の格納庫のうち、暗号通信路開設コマンドに含まれるコマンド文字列情報に対応する暗号化プロトコルによって予め定められている所定のキーＩＤによって特定される格納庫に格納されている暗号鍵を利用して暗号通信路を開設することを特徴とする情報処理システム。
【請求項９】
請求項１〜８のいずれかに記載の情報処理システムにおいて、
第２の暗号通信処理部が、少なくとも、第１の暗号通信処理部に暗号通信機能が備わっている複数Ｎ通りの暗号化プロトコルのうちの複数Ｍ通り（Ｍ≦Ｎ）の暗号化プロトコルに基づく暗号通信を行う機能を有し、前記Ｍ通りの暗号化プロトコルから選択された特定の暗号化プロトコルに基づく暗号通信を行うために開設された暗号通信路を介して第１の情報処理装置との間で暗号通信を行い、
第２の暗号鍵格納部が、暗号鍵を格納するための複数の格納場所を有し、これら複数の格納場所に、第１の情報処理装置の第１の暗号鍵格納部に格納されている「前記Ｍ通りの暗号化プロトコルのそれぞれに用いられる暗号鍵」と同一の暗号鍵が格納されており、
暗号通信路開設指示部が、前記Ｍ通りの暗号化プロトコルから特定の暗号化プロトコルを選択し、前記第１の情報処理装置に対して、選択された暗号化プロトコルに基づく暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドを与えることを特徴とする情報処理システム。
【請求項１０】
請求項１〜９のいずれかに記載の情報処理システムにおける第１の情報処理装置として機能するＩＣカードもしくはその他の情報処理装置。
【請求項１１】
請求項１〜９のいずれかに記載の情報処理システムにおける第２の情報処理装置として機能するスマートフォンもしくはその他の情報処理装置。
【請求項１２】
請求項１〜９のいずれかに記載の情報処理システムにおける第１の情報処理装置または第２の情報処理装置としてコンピュータを機能させるプログラム。
【請求項１３】
第１の情報処理装置と第２の情報処理装置との間で、所定の暗号化プロトコルに基づいた暗号通信を行う暗号通信方法であって、
前記第１の情報処理装置が、複数Ｎ通り（Ｎ≧２）の暗号化プロトコルに基づく暗号通信を行うプログラムを実行可能な状態に準備するプログラム準備段階と、
前記第１の情報処理装置が、暗号鍵を格納するための複数の格納場所に、前記複数Ｎ通りの暗号化プロトコルのそれぞれに用いられる暗号鍵を格納する暗号鍵格納段階と、
前記第２の情報処理装置が、前記第１の情報処理装置に対して、前記プログラム準備段階で準備された前記Ｎ通りの暗号化プロトコルから選択された特定の暗号化プロトコルに基づいて、前記暗号鍵格納段階で特定の格納場所に格納された特定の暗号鍵を用いた暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドを送信する暗号通信路開設指示段階と、
前記第１の情報処理装置が、受信した前記暗号通信路開設コマンドに基づいて、前記特定の暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設する暗号通信路開設段階と、
前記第１の情報処理装置および前記第２の情報処理装置が、開設された暗号通信路を介して暗号通信を行う暗号通信段階と、
を有し、
前記暗号通信路開設指示段階では、前記特定の暗号化プロトコルを指定するためのプロトコル指定情報と、前記特定の暗号鍵を指定するための暗号鍵指定情報と、を含んだ暗号通信路開設コマンドを送信し、
前記暗号通信路開設段階では、前記暗号通信路開設コマンドに含まれている前記プロトコル指定情報によって指定された暗号化プロトコルおよび前記暗号通信路開設コマンドに含まれている前記暗号鍵指定情報によって指定された暗号鍵を利用して暗号通信を行うための暗号通信路を開設し、
前記暗号鍵格納段階において、暗号化演算に用いられる鍵値データと、暗号アルゴリズムの種別を示す種別情報と、を含む暗号鍵を格納し、
前記暗号通信路開設指示段階において、特定の暗号鍵の格納場所を示す格納場所指定情報を含んだ暗号通信路開設コマンドを送信し、
前記暗号通信路開設段階において、前記格納場所指定情報を、プロトコル指定情報および暗号鍵指定情報の双方の役割を兼ねた情報として認識し、前記格納場所指定情報によって示された格納場所に格納されている暗号鍵に含まれている鍵値データを用いて、当該暗号鍵に含まれている種別情報によって示された暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設することを特徴とする暗号通信方法。
【請求項１４】
第１の情報処理装置と第２の情報処理装置との間で、所定の暗号化プロトコルに基づいた暗号通信を行う暗号通信方法であって、
前記第１の情報処理装置が、複数Ｎ通り（Ｎ≧２）の暗号化プロトコルに基づく暗号通信を行うプログラムを実行可能な状態に準備するプログラム準備段階と、
前記第１の情報処理装置が、暗号鍵を格納するための複数の格納場所に、前記複数Ｎ通りの暗号化プロトコルのそれぞれに用いられる暗号鍵を格納する暗号鍵格納段階と、
前記第２の情報処理装置が、前記第１の情報処理装置に対して、前記プログラム準備段階で準備された前記Ｎ通りの暗号化プロトコルから選択された特定の暗号化プロトコルに基づいて、前記暗号鍵格納段階で特定の格納場所に格納された特定の暗号鍵を用いた暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドを送信する暗号通信路開設指示段階と、
前記第１の情報処理装置が、受信した前記暗号通信路開設コマンドに基づいて、前記特定の暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設する暗号通信路開設段階と、
前記第１の情報処理装置および前記第２の情報処理装置が、開設された暗号通信路を介して暗号通信を行う暗号通信段階と、
を有し、
前記暗号通信路開設指示段階では、前記特定の暗号化プロトコルを指定するためのプロトコル指定情報と、前記特定の暗号鍵を指定するための暗号鍵指定情報と、を含んだ暗号通信路開設コマンドを送信し、
前記暗号通信路開設段階では、前記暗号通信路開設コマンドに含まれている前記プロトコル指定情報によって指定された暗号化プロトコルおよび前記暗号通信路開設コマンドに含まれている前記暗号鍵指定情報によって指定された暗号鍵を利用して暗号通信を行うための暗号通信路を開設し、
前記暗号通信路開設指示段階において、特定の暗号化プロトコルに基づく暗号通信路の開設を指示する文字列を示すコマンド文字列情報と、特定の暗号鍵の格納場所を示す格納場所指定情報と、を含んだ暗号通信路開設コマンドを送信し、
前記暗号通信路開設段階において、前記コマンド文字列情報をプロトコル指定情報として認識し、前記格納場所指定情報を暗号鍵指定情報として認識することにより、前記格納場所指定情報によって示された格納場所に格納されている暗号鍵を用いて、前記コマンド文字列情報に対応する暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設することを特徴とする暗号通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２組の情報処理装置の間で所定の暗号化プロトコルに基づいた暗号通信を行う情報処理システムおよび暗号通信方法に関し、特に、ＩＣカードと別な装置との間で暗号通信を行うのに適した暗号通信技術に関する。
【背景技術】
【０００２】
２組の情報処理装置間の通信の安全性を確保するためには、両者間にセキュアな暗号通信路を開設し、この暗号通信路を介して暗号通信を行うことが欠かせない。特に、スマートフォンやＩＣカードなどの携帯型の情報処理装置では、紛失によって悪意をもった者の手に渡る可能性があるため、十分なセキュリティ対策を講じておく必要がある。
【０００３】
最近は、スマートフォンをはじめとする携帯型端末装置が普及しており、これらの端末装置には、通常、ＳＩＭカードやＵＩＭカードと呼ばれているＩＣカードが装着されている。そしてこのＩＣカードと端末装置、あるいは、このＩＣカードと外部のサーバ装置との間で、所定の通信路を介して情報のやりとりが行われる。このとき、当該情報が機密性を有するものである場合には、セキュアな通信路を開設して暗号化された情報のやりとりを行う必要がある。
【０００４】
このような事情から、ＩＣカードと外部装置との間にセキュアな通信路を開設して暗号通信を行う様々な方法が提案されている。たとえば、下記の特許文献１には、所定の変換アルゴリズムに基づくデータ変換処理機能を有するプロキシ装置を介した通信を行うことにより、機密情報の漏洩を防止する技術が開示されている。また、特許文献２には、インターネットを介してＩＣカードとサーバ装置との間で情報のやりとりを行う際に、公開鍵暗号方式を利用した暗号化通信を行う技術が開示されており、特許文献３には、そのような暗号化通信の最中に、セキュリティに関わる異常発生が検知された場合に、速やかにシステム復旧処理を行う技術が開示されている。一方、特許文献４には、サーバ装置側に、ＩＣカードと１対１に対応するＩＣカード対応領域を設け、このＩＣカード対応領域と利用者端末装置との間にセキュアな通信路を設定してサーバ装置とＩＣカードとを一体化する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−０５５９６１号公報
【特許文献２】特開２００２−２１７８９５号公報
【特許文献３】特開２００６−１９０２２２号公報
【特許文献４】特開２０１０−０７３１８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
２組の情報処理装置の間にセキュアな暗号通信路を開設するためには、両方の装置に、共通の暗号化プロトコルに基づいた暗号通信処理機能をもたせる必要がある。すなわち、送信側では所定の暗号鍵および所定の暗号化プロトコルを用いて、送信対象となる情報を暗号化して送り出し、受信側では、受信した暗号化情報を、送信側と同じ暗号鍵および暗号化プロトコルを用いて復号することになる。このため、２組の情報処理装置には、予め、特定の暗号鍵および暗号化プロトコルを用いた暗号通信処理機能が組み込まれることになる。
【０００７】
しかしながら、近年、情報処理装置の通信相手は多様化してきており、１つのＩＣカードが、種々の状況に応じて、複数の相手と通信するケースも少なくない。たとえば、スマートフォンに装着されたＩＣカード（ＳＩＭカードやＵＩＭカード）の場合、スマートフォン内の複数のアプリケーションプログラムとの間で情報のやりとりを行うケースも少なくない。この場合、ハードウェア上は、ＩＣカードとスマートフォンとの間の二者通信ということになるが、ソフトウェア上は、ＩＣカード側のプログラム（通常、ＳＤ（Security Domain）と呼ばれるプログラム）とスマートフォン側の個々のアプリケーションプログラムとの間の個別の通信が行われることになる。
【０００８】
一方、最近は、より安全性の高い暗号化プロトコルが推奨されるようになってきており、実際に利用されている暗号化プロトコルの種類も多岐にわたっている。したがって、実用上は、１つのＩＣカードに、予め、複数通りの暗号化プロトコルに基づく暗号通信機能をもたせておき、当該ＩＣカードと通信を行う外部装置の都合に応じて（たとえば、スマートフォン内のアプリケーションプログラムの都合に応じて）、その都度、任意の暗号化プロトコルを選択して暗号通信を行うことができるようにするのが好ましい。
【０００９】
しかしながら、従来の一般的なシステム、特にＩＣカードに対して通信を行うシステムでは、１つのＩＣカードに複数通りの暗号化プロトコルに基づく暗号通信機能をもたせておき、その都度、任意の暗号化プロトコルを選択して暗号通信を行うことは困難である。これは、現在普及しているＩＣカードが、国際的な仕様に準拠して設計されており、このような仕様に対応させる上では、複数通りの暗号化プロトコルの中から任意の１つを選択して利用することが困難であったためである。
【００１０】
そこで本発明は、２組の情報処理装置の間に、複数通りの暗号化プロトコルの中から選択された任意の暗号化プロトコルに基づく暗号通信路を開設して、両者間でセキュアな通信を可能にする情報処理システムおよび暗号通信方法を提供することを目的とする。また、本発明は、特に、相互に通信を行う２組の情報処理装置のうちの一方がＩＣカードである場合に、ＩＣカードについての国際的な仕様に準拠した方法で、特定の暗号化プロトコルの選択をＩＣカード側に伝達する具体的な方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
(1)   本発明の第１の態様は、第１の情報処理装置と第２の情報処理装置とを備え、両者間で所定の暗号化プロトコルに基づいた暗号通信が可能な情報処理システムにおいて、
第１の情報処理装置には、
複数Ｎ通り（Ｎ≧２）の暗号化プロトコルに基づく暗号通信を行う機能を有し、このＮ通りの暗号化プロトコルのうち、第２の情報処理装置から指定された暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設し、開設された暗号通信路を介して第２の情報処理装置との間で暗号通信を行う第１の暗号通信処理部と、
暗号鍵を格納するための複数の格納場所を有し、これら複数の格納場所に、複数Ｎ通りの暗号化プロトコルのそれぞれに用いられる暗号鍵を格納した第１の暗号鍵格納部と、
を設け、
第２の情報処理装置には、
上記Ｎ通りの暗号化プロトコルのうちの少なくとも１つの特定の暗号化プロトコルに基づく暗号通信を行う機能を有し、当該特定の暗号化プロトコルに基づく暗号通信を行うために開設された暗号通信路を介して第１の情報処理装置との間で暗号通信を行う第２の暗号通信処理部と、
上記特定の暗号化プロトコルに用いられる暗号鍵を格納した第２の暗号鍵格納部と、
第１の情報処理装置に対して、暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドを与える暗号通信路開設指示部と、
を設け、
暗号通信路開設コマンドには、上記特定の暗号化プロトコルを指定するためのプロトコル指定情報と、上記特定の暗号鍵を指定するための暗号鍵指定情報と、を含ませるようにし、
第１の暗号通信処理部は、暗号通信路開設コマンドに含まれているプロトコル指定情報によって指定された暗号化プロトコルおよび暗号通信路開設コマンドに含まれている暗号鍵指定情報によって指定された暗号鍵を利用して暗号通信を行うための暗号通信路を開設するようにしたものである。
【００１２】
(2)   本発明の第２の態様は、上述した第１の態様に係る情報処理システムにおいて、
第１の暗号鍵格納部には、Ｎ通りの暗号化プロトコルに対応づけられたＮ個の格納ゾーンが設定されており、第ｉ番目（１≦ｉ≦Ｎ）の格納ゾーンに所属する格納場所には、第ｉ番目の暗号化プロトコルに用いる暗号鍵が格納されており、
暗号通信路開設コマンドには、特定の暗号鍵の格納場所を示す格納場所指定情報が含まれており、
第１の暗号通信処理部は、上記格納場所指定情報を、プロトコル指定情報および暗号鍵指定情報の双方の役割を兼ねた情報として認識し、上記格納場所指定情報によって示された格納場所に格納されている暗号鍵を用いて、上記格納場所指定情報によって示された格納場所が所属する格納ゾーンに対応する暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設するようにしたものである。
【００１３】
(3)   本発明の第３の態様は、上述した第２の態様に係る情報処理システムにおいて、
第１の暗号鍵格納部には、キーバージョン番号によって特定される複数の格納場所が用意されており、個々の格納ゾーンは、１つもしくは複数の格納場所によって構成され、
暗号通信路開設コマンドには、格納場所指定情報として特定のキーバージョン番号が含まれており、
第１の暗号通信処理部は、キーバージョン番号によって特定される格納場所に格納されている暗号鍵を用いて、キーバージョン番号によって示された格納場所が所属する格納ゾーンに対応する暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設するようにしたものである。
【００１４】
(4)   本発明の第４の態様は、上述した第３の態様に係る情報処理システムにおいて、
個々の格納ゾーンが、１つの格納場所もしくは連続するキーバージョン番号を有する複数の格納場所によって構成され、個々の格納ゾーンがキーバージョン番号の固有の数値範囲に対応づけられているようにしたものである。
【００１５】
(5)   本発明の第５の態様は、上述した第３または第４の態様に係る情報処理システムにおいて、
第１の暗号鍵格納部の各格納場所には、それぞれキーＩＤによって特定される複数の格納庫が用意されており、これら複数の格納庫の全部もしくは一部に、それぞれ別個の暗号鍵が格納されており、
第１の暗号通信処理部は、暗号通信路開設コマンドに含まれるキーバージョン番号によって特定される格納場所内の格納庫のうち、当該格納場所が所属する格納ゾーンに対応する暗号化プロトコルによって予め定められている所定のキーＩＤによって特定される格納庫に格納されている暗号鍵を利用して暗号通信路を開設するようにしたものである。
【００１６】
(6)   本発明の第６の態様は、上述した第１の態様に係る情報処理システムにおいて、
第１の暗号鍵格納部の各格納場所には、暗号化演算に用いられる鍵値データと、暗号アルゴリズムの種別を示す種別情報と、を含む暗号鍵が格納されており、
暗号通信路開設コマンドには、特定の暗号鍵の格納場所を示す格納場所指定情報が含まれており、
第１の暗号通信処理部は、上記格納場所指定情報を、プロトコル指定情報および暗号鍵指定情報の双方の役割を兼ねた情報として認識し、上記格納場所指定情報によって示された格納場所に格納されている暗号鍵に含まれている鍵値データを用いて、当該暗号鍵に含まれている種別情報によって示された暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設するようにしたものである。
【００１７】
(7)   本発明の第７の態様は、上述した第６の態様に係る情報処理システムにおいて、
第１の暗号鍵格納部の各格納場所には、暗号化演算に用いられる鍵値データと、暗号アルゴリズムの種別を示す種別情報と、上記鍵値データの長さを示す鍵長と、を含む暗号鍵が格納されており、
第１の暗号通信処理部は、上記鍵長に基づいて、暗号鍵から鍵値データの抽出を行うようにしたものである。
【００１８】
(8)   本発明の第８の態様は、上述した第６または第７の態様に係る情報処理システムにおいて、
第１の暗号鍵格納部の各格納場所には、それぞれキーＩＤによって特定される複数の格納庫が用意されており、これら複数の格納庫の全部もしくは一部に、それぞれ別個の暗号鍵が格納されており、同一の格納場所に属する複数の格納庫に格納されている暗号鍵には、同一の種別情報が含まれており、
第１の暗号通信処理部は、暗号通信路開設コマンドに含まれる暗号鍵指定情報によって特定される格納場所内のいずれかの格納庫に格納されている暗号鍵に含まれる種別情報によって示された暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設するようにしたものである。
【００１９】
(9)   本発明の第９の態様は、上述した第１の態様に係る情報処理システムにおいて、
暗号通信路開設コマンドには、特定の暗号化プロトコルに基づく暗号通信路の開設を指示する文字列を示すコマンド文字列情報と、特定の暗号鍵の格納場所を示す格納場所指定情報と、が含まれており、
第１の暗号通信処理部は、上記コマンド文字列情報をプロトコル指定情報として認識し、上記格納場所指定情報を暗号鍵指定情報として認識することにより、上記格納場所指定情報によって示された格納場所に格納されている暗号鍵を用いて、上記コマンド文字列情報に対応する暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設するようにしたものである。
【００２０】
(10)  本発明の第１０の態様は、上述した第９の態様に係る情報処理システムにおいて、
第１の暗号鍵格納部の各格納場所には、それぞれキーＩＤによって特定される複数の格納庫が用意されており、これら複数の格納庫の全部もしくは一部に、それぞれ別個の暗号鍵が格納されており、
第１の暗号通信処理部は、暗号通信路開設コマンドに含まれる暗号鍵指定情報によって特定される格納場所内の格納庫のうち、暗号通信路開設コマンドに含まれるコマンド文字列情報に対応する暗号化プロトコルによって予め定められている所定のキーＩＤによって特定される格納庫に格納されている暗号鍵を利用して暗号通信路を開設するようにしたものである。
【００２１】
(11)  本発明の第１１の態様は、上述した第１〜第１０の態様に係る情報処理システムにおいて、
第２の暗号通信処理部が、少なくとも、第１の暗号通信処理部に暗号通信機能が備わっている複数Ｎ通りの暗号化プロトコルのうちの複数Ｍ通り（Ｍ≦Ｎ）の暗号化プロトコルに基づく暗号通信を行う機能を有し、上記Ｍ通りの暗号化プロトコルから選択された特定の暗号化プロトコルに基づく暗号通信を行うために開設された暗号通信路を介して第１の情報処理装置との間で暗号通信を行い、
第２の暗号鍵格納部が、暗号鍵を格納するための複数の格納場所を有し、これら複数の格納場所に、第１の情報処理装置の第１の暗号鍵格納部に格納されている「上記Ｍ通りの暗号化プロトコルのそれぞれに用いられる暗号鍵」と同一の暗号鍵が格納されており、
暗号通信路開設指示部が、上記Ｍ通りの暗号化プロトコルから特定の暗号化プロトコルを選択し、第１の情報処理装置に対して、選択された暗号化プロトコルに基づく暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドを与えるようにしたものである。
【００２２】
(12)  本発明の第１２の態様は、上述した第１〜第１１の態様に係る情報処理システムにおける第１の情報処理装置を、ＩＣカードもしくはその他の情報処理装置によって構成したものである。
【００２３】
(13)  本発明の第１３の態様は、上述した第１〜第１１の態様に係る情報処理システムにおける第２の情報処理装置を、スマートフォンもしくはその他の情報処理装置によって構成したものである。
【００２４】
(14)  本発明の第１４の態様は、上述した第１〜第１１の態様に係る情報処理システムにおける第１の情報処理装置または第２の情報処理装置を、コンピュータにプログラムを組み込むことにより構成したものである。
【００２５】
(15)  本発明の第１５の態様は、第１の情報処理装置と第２の情報処理装置との間で、所定の暗号化プロトコルに基づいた暗号通信を行う暗号通信方法において、
第１の情報処理装置が、複数Ｎ通り（Ｎ≧２）の暗号化プロトコルに基づく暗号通信を行うプログラムを実行可能な状態に準備するプログラム準備段階と、
第１の情報処理装置が、暗号鍵を格納するための複数の格納場所に、上記Ｎ通りの暗号化プロトコルのそれぞれに用いられる暗号鍵を格納する暗号鍵格納段階と、
第２の情報処理装置が、第１の情報処理装置に対して、プログラム準備段階で準備されたＮ通りの暗号化プロトコルから選択された特定の暗号化プロトコルに基づいて、暗号鍵格納段階で特定の格納場所に格納された特定の暗号鍵を用いた暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドを送信する暗号通信路開設指示段階と、
第１の情報処理装置が、受信した暗号通信路開設コマンドに基づいて、上記特定の暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設する暗号通信路開設段階と、
第１の情報処理装置および第２の情報処理装置が、開設された暗号通信路を介して暗号通信を行う暗号通信段階と、
を行うようにし、
暗号通信路開設指示段階では、上記特定の暗号化プロトコルを指定するためのプロトコル指定情報と、上記特定の暗号鍵を指定するための暗号鍵指定情報と、を含んだ暗号通信路開設コマンドを送信し、
暗号通信路開設段階では、暗号通信路開設コマンドに含まれているプロトコル指定情報によって指定された暗号化プロトコルおよび暗号通信路開設コマンドに含まれている暗号鍵指定情報によって指定された暗号鍵を利用して暗号通信を行うための暗号通信路を開設するようにしたものである。
【００２６】
(16)  本発明の第１６の態様は、上述した第１５の態様に係る暗号通信方法において、
暗号鍵格納段階において、Ｎ通りの暗号化プロトコルに対応づけられたＮ個の格納ゾーンを設定し、第ｉ番目（１≦ｉ≦Ｎ）の格納ゾーンに所属する格納場所には、第ｉ番目の暗号化プロトコルに用いる暗号鍵を格納し、
暗号通信路開設指示段階において、特定の暗号鍵の格納場所を示す格納場所指定情報を含んだ暗号通信路開設コマンドを送信し、
暗号通信路開設段階において、上記格納場所指定情報を、プロトコル指定情報および暗号鍵指定情報の双方の役割を兼ねた情報として認識し、上記格納場所指定情報によって示された格納場所に格納されている暗号鍵を用いて、上記格納場所指定情報によって示された格納場所が所属する格納ゾーンに対応する暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設するようにしたものである。
【００２７】
(17)  本発明の第１７の態様は、上述した第１５の態様に係る暗号通信方法において、
暗号鍵格納段階において、暗号化演算に用いられる鍵値データと、暗号アルゴリズムの種別を示す種別情報と、を含む暗号鍵を格納し、
暗号通信路開設指示段階において、特定の暗号鍵の格納場所を示す格納場所指定情報を含んだ暗号通信路開設コマンドを送信し、
暗号通信路開設段階において、上記格納場所指定情報を、プロトコル指定情報および暗号鍵指定情報の双方の役割を兼ねた情報として認識し、上記格納場所指定情報によって示された格納場所に格納されている暗号鍵に含まれている鍵値データを用いて、当該暗号鍵に含まれている種別情報によって示された暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設するようにしたものである。
【００２８】
(18)  本発明の第１８の態様は、上述した第１５の態様に係る暗号通信方法において、
暗号通信路開設指示段階において、特定の暗号化プロトコルに基づく暗号通信路の開設を指示する文字列を示すコマンド文字列情報と、特定の暗号鍵の格納場所を示す格納場所指定情報と、を含んだ暗号通信路開設コマンドを送信し、
暗号通信路開設段階において、上記コマンド文字列情報をプロトコル指定情報として認識し、上記格納場所指定情報を暗号鍵指定情報として認識することにより、上記格納場所指定情報によって示された格納場所に格納されている暗号鍵を用いて、上記コマンド文字列情報に対応する暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設するようにしたものである。
【発明の効果】
【００２９】
本発明に係る情報処理システムでは、２組の情報処理装置のうちの少なくとも第１の情報処理装置に、複数Ｎ通りの暗号化プロトコルに基づく暗号通信を行う機能をもたせ、第２の情報処理装置から第１の情報処理装置に対して与える暗号通信路開設コマンドに含ませたプロトコル指定情報によって特定の暗号化プロトコルを指定するようにしたため、複数通りの暗号化プロトコルの中から選択された任意の暗号化プロトコルに基づく暗号通信路を開設して、両者間でセキュアな通信を行うことが可能になる。
【００３０】
特に、第１の実施形態に係る発明は、２組の情報処理装置のうちの一方がＩＣカードである場合に適しており、暗号通信路開設コマンドに暗号鍵の格納場所を示す格納場所指定情報を含ませ、当該格納場所が所属する格納ゾーンによって暗号化プロトコルを指定する方法を採用しているため、ＩＣカードについての国際的な仕様に準拠した暗号通信路開設コマンドを用いて、特定の暗号化プロトコルの選択をＩＣカード側に伝達することが可能になる。
【００３１】
同様に、第２の実施形態に係る発明も、２組の情報処理装置のうちの一方がＩＣカードである場合に適しており、暗号通信路開設コマンドに暗号鍵の格納場所を示す格納場所指定情報を含ませ、特定の暗号鍵に含まれている種別情報によって暗号化プロトコルを指定する方法を採用しているため、ＩＣカードについての国際的な仕様に準拠した暗号通信路開設コマンドを用いて、特定の暗号化プロトコルの選択をＩＣカード側に伝達することが可能になる。
【００３２】
また、第３の実施形態に係る発明も、２組の情報処理装置のうちの一方がＩＣカードである場合に適しており、暗号通信路開設コマンドに含まれるコマンド文字列情報によって暗号化プロトコルを指定する方法を採用しているため、ＩＣカードについての国際的な仕様に準拠した暗号通信路開設コマンドを用いて、特定の暗号化プロトコルの選択をＩＣカード側に伝達することが可能になる。
【図面の簡単な説明】
【００３３】
【図１】一般的なスマートフォン１０，ＳＩＭカード１１，外部サーバ２０の間の情報通信の態様を示すブロック図である。
【図２】図１に示すＳＩＭカード１１と、スマートフォン１０もしくは外部サーバ２０と、の間で暗号通信を行うためのプログラム構成の一例を示すブロック図である。
【図３】図２に示す鍵テーブルの具体例を示す図である。
【図４】図３に示す鍵テーブルに格納されている暗号鍵Ｋｅｙの一般的なデータ構造および当該暗号鍵を用いた暗号通信路開設コマンドのデータ構造の概要を示す図である。
【図５】図２に示すＳＩＭカード１１（第１の情報処理装置）と、スマートフォン１０（第２の情報処理装置）と、の間でやりとりされる種々のコマンドおよびこれに対する応答の具体例を示すダイアグラムである。
【図６】本発明に係る情報処理システムの基本構成を示すブロック図である。
【図７】本発明に係る情報処理システムの別な基本構成を示すブロック図である。
【図８】本発明に係る情報処理システムの更に別な基本構成を示すブロック図である。
【図９】本発明の第１の実施形態に用いられる鍵テーブルＴ１のゾーン構成の一例を示す図である。
【図１０】本発明の第１の実施形態に用いられる暗号通信路開設コマンドＣＭＤのデータ構造の一例を示す図である。
【図１１】本発明の第２の実施形態に用いられる暗号鍵Ｋｅｙのデータ構造の一例を示す図である。
【図１２】本発明の第３の実施形態に用いられる暗号通信路開設コマンドＣＭＤのデータ構造の一例を示す図である。
【図１３】本発明の第３の実施形態におけるコマンド文字列情報と暗号アルゴリズムの種別情報との対応関係を示す表である。
【図１４】本発明に係る暗号通信方法の基本手順を示す流れ図である。
【発明を実施するための形態】
【００３４】
以下、本発明を図示する実施形態に基づいて説明する。
【００３５】
＜＜＜  §１．  ＩＣカードに対する従来の一般的な通信形態  ＞＞＞
本発明は、２組の情報処理装置の間で所定の暗号化プロトコルに基づく暗号通信を行う技術に係り、特に、ＩＣカードと別な装置との間で暗号通信を行うのに適した暗号通信技術に関するものである。そこで、ここでは、まず、ＩＣカードに対する従来の一般的な通信形態を簡単に説明しておくことにする。
【００３６】
図１は、一般的なスマートフォン１０，ＳＩＭカード１１，外部サーバ２０の間の情報通信の態様を示すブロック図である。通常、スマートフォン１０は、内部にＳＩＭカード１１を装着した状態で利用され、必要に応じて、外部サーバ２０と所定の通信路（インターネットや電話回線）を介して交信することになる。ここで、ＳＩＭカード１１（ＵＩＭカードとも呼ばれる）は、Java Card（商標）やGlobalPlatform （登録商標）など、事実上の標準となっている国際的な仕様に準拠したＩＣカードであり、外部装置との交信は、当該外部装置から与えられるコマンドと、これに対する応答という形式で行われる。
【００３７】
ＳＩＭカード１１に着目すると、スマートフォン１０も外部サーバ２０も、いずれも外部装置ということになり、これら外部装置との間の交信は、所定の通信路を介して行われる。図１には、スマートフォン１０と外部サーバ２０との間の通信路しか示されていないが、実際には、ＳＩＭカード１１とスマートフォン１０との間やＳＩＭカード１１と外部サーバ２０との間にも通信路が形成される。本発明は、これらの通信路として暗号通信路を開設する技術に関するものである。
【００３８】
図２は、図１に示すＳＩＭカード１１と、スマートフォン１０もしくは外部サーバ２０と、の間で暗号通信を行うためのプログラム構成の一例を示すブロック図である。本発明は、ＩＣカードに限らず、一般的な２組の情報処理装置の間で暗号通信を行う場合に広く適用できる技術であり、一般論として、任意の情報処理装置間での通信に利用可能である。したがって、図２には、第１の情報処理装置１００と第２の情報処理装置２００との間に通信路を開設して相互に交信を行う例が示されている。
【００３９】
ただ、上述したとおり、本発明は、ＩＣカードに対する暗号通信を行うのに特に適した技術であり、ここでは、第１の情報処理装置１００がスマートフォン１０に装着されたＳＩＭカード１１であり、第２の情報処理装置２００が当該スマートフォン１０（もしくは、外部サーバ２０でもよい）である場合について、以下の説明を行うことにする。
【００４０】
ＳＩＭカード１１をはじめとするＩＣカードには、通常、複数のアプリケーションプログラムが組み込まれる。図２の第１の情報処理装置１００（ＳＩＭカード１１）には、２組のアプリケーションプログラムＡＰ１，ＡＰ２が組み込まれた状態が示されている。また、ＩＣカードには、通常、少なくとも１組のＳＤプログラム（Security Domain プログラム）が組み込まれている。このＳＤプログラムは、分類上はアプリケーションプログラムの一種であるが、ＯＳプログラムと協働して、ＩＣカード全体の動作や、他のアプリケーションプログラムを管理する役割を果たす。
【００４１】
具体的には、一般的なＳＤプログラムには、次のような機能が組み込まれている。
＜機能１＞ＩＣカードのライフサイクル管理
＜機能２＞アプリケーションプログラムのライフサイクル管理
＜機能３＞アプリケーションインスタンスのライフサイクル管理
＜機能４＞アプリケーションプログラムのロード
＜機能５＞アプリケーションインスタンスの生成（インストール）
＜機能６＞アプリケーションプログラムやインスタンスの削除
＜機能７＞アプリケーション向け発行データの書込み
＜機能８＞データの読出し
＜機能９＞セキュアな通信路の確保
上記各機能のうち、本発明に直接関連する機能は「機能９：セキュアな通信路の確保」であり、一般に「ＳＣＰ：Secure Channel Protocol」と呼ばれる所定の暗号化プロトコルに基づいて、外部装置（図２に示す例の場合は、第２の情報処理装置２００）との間にセキュアな暗号通信路を開設して暗号通信を行う機能である。このような機能を実現するため、ＳＤプログラム内には、暗号通信路開設ルーチンＲ１と鍵テーブルＴ１とが組み込まれている。
【００４２】
一方、第２の情報処理装置２００にも、これに応じた暗号通信を行う機能をもったアプリケーションプログラムＡＰ３が用意されており、暗号通信路開設ルーチンＲ２と鍵テーブルＴ２とが組み込まれている。たとえば、第２の情報処理装置２００がスマートフォン１０の場合、アプリケーションプログラムＡＰ３は、このスマートフォン１０にインストールされたアプリケーションプログラムの１つである。
【００４３】
第１の情報処理装置１００側の暗号通信路開設ルーチンＲ１と、第２の情報処理装置２００側の暗号通信路開設ルーチンＲ２とは、両装置間にセキュアな暗号通信路を開設し、同一の暗号化プロトコルに基づいた暗号通信を行うためのルーチンであり、鍵テーブルＴ１と鍵テーブルＴ２には、同一の暗号鍵が収容されている。したがって、図示の例の場合、ＳＤプログラムとアプリケーションプログラムＡＰ３とによって、第１の情報処理装置１００と第２の情報処理装置２００との間に、同一の暗号鍵を用いた同一の暗号化プロトコルに基づく暗号通信を行うための暗号通信路が開設されることになる。
【００４４】
ＩＣカードに対する暗号通信に利用される暗号化プロトコルとしては、ＳＣＰ０１，ＳＣＰ０２などのプロトコルが古くから利用されてきている。ただ、これらのプロトコルで用いられている「Triple-DES」という暗号アルゴリズムには危殆化の問題が指摘されており、近年は、ＡＥＳ（Advanced Encryption Standard）なる規格に基づく暗号アルゴリズムを利用したＳＣＰ０３なるプロトコルも、GlobalPlatform （登録商標）に準拠した仕様として普及し始めている。また、３ＧＰＰ／ＥＴＳＩなどの標準化団体を中心に策定されたＳＣＰ８０，ＳＣＰ８１などのプロトコルの利用も普及してきている。
【００４５】
また、ＩＣカードに組み込まれるＳＤプログラム用の鍵テーブルＴとしては、図３に例示するような鍵空間を用いる仕様が一般化している。図示の鍵テーブルＴは、縦方向にキーバージョン番号（key version number）、横方向にキーＩＤ（key ID）を定義したマトリックスによって構成されており、キーバージョン番号については、０ｘ０１〜０ｘ７Ｆの範囲内のアドレス空間が割り当てられ、キーＩＤについては、０ｘ００〜０ｘ７Ｆの範囲内のアドレス空間が割り当てられている（アドレス先頭の０ｘは、以下の数値が１６進数であることを示す）。
【００４６】
個々の暗号鍵は、この鍵テーブルＴのいずれかのセルに格納されることになり、キーバージョン番号とキーＩＤとの組み合わせにより特定される。たとえば、キーバージョン番号「０ｘ０１」とキーＩＤ「０ｘ０１」との組み合わせにより、暗号鍵ＫｅｙＡが特定されることになる。図には、個々の暗号鍵の格納例として、ＫｅｙＡ〜ＫｅｙＲが特定のセルに格納された状態が示されている。もちろん、暗号鍵はすべてのセルに格納する必要はなく、必要な暗号鍵が所定のセルに格納されていれば足りる。
【００４７】
ある１つの暗号化プロトコルでは、ある１つのキーバージョン番号が指定され、当該キーバージョン番号をもったセルに格納されている１つもしくは複数の暗号鍵を利用した暗号化処理もしくは復号処理が実行される。図示の例の場合、キーバージョン番号「０ｘ０１」，「０ｘ２０」，「０ｘ２１」，「０ｘ２２」，「０ｘ７Ｅ」，「０ｘ７Ｆ」の各行に何らかの暗号鍵が格納されている状態が示されている。図示の例の場合、いずれのキーバージョン番号についても、キーＩＤ「０ｘ０１」，「０ｘ０２」，「０ｘ０３」の３箇所のセルにそれぞれ暗号鍵が格納されている。
【００４８】
これは、いずれのキーバージョン番号も、３つの異なる暗号鍵を用いる暗号化プロトコル（たとえば、上述したＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３など）に対応したものになっているためである。たとえば、キーバージョン番号「０ｘ２０」が指定された場合、キーＩＤ「０ｘ０１」，「０ｘ０２」，「０ｘ０３」の各セルに格納されている３つの暗号鍵ＫｅｙＤ，ＫｅｙＥ，ＫｅｙＦが暗号化処理もしくは復号処理に利用されることになる。別言すれば、特定の暗号化プロトコルに基づく暗号化処理もしくは復号処理には、同一のキーバージョン番号をもつ１つもしくは複数の暗号鍵が利用されることになる。もちろん、合計５個の暗号鍵を必要とする暗号化プロトコルのためには、同一のキーバージョン番号をもつ５個のセルにそれぞれ暗号鍵を用意することになる。
【００４９】
一方、図４(a) は、図３に示す鍵テーブルＴの個々のセルに格納されている暗号鍵ＫｅｙＡ〜ＫｅｙＲの一般的なデータ構造を示す図である。図示された暗号鍵Ｋｅｙのデータ構造は、上述したＩＣカードについての国際的な標準仕様として定められた暗号鍵Ｋｅｙの標準フォーマットを示すものであり、先頭から順に、種別情報（key type）Ａ，鍵長（key length）Ｌ，鍵値データ（key value）Ｖを並べたものになっている。ここで、種別情報（key type）Ａは、「ＡＥＳ」，「ＤＥＳ」，「ＲＳＡ」など、当該暗号鍵Ｋｅｙを用いることを想定している暗号化プロトコルが採用する暗号アルゴリズムの種別を含む情報であり、鍵長（key length）Ｌは、後続する鍵値データ（key value）Ｖのデータ長（byte）を示す情報であり、最後の鍵値データ（key value）Ｖは、暗号化演算に用いられる鍵値データそのものである。
【００５０】
また、図４(b) は、暗号通信路開設コマンドＣＭＤのデータ構造の概要を示す図である。実際のコマンドは、ＩＳＯなどの規格（たとえば、ISO7816-4）に準拠した、より複雑なデータ構造を有するものになるが、説明の便宜上、図４(b) には、本発明の説明に必要な情報のみを抽出した概念的なデータ構造を示すことにする。図示の例は、上述した暗号化プロトコルＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３を採用する場合に用いられている暗号通信路の開設コマンドを示しており、暗号通信路の開設を指示する文字列「INITIALIZE UPDATE」なるコマンド文字列情報（実際には、コマンド「INITIALIZE UPDATE」を意味するインストラクションバイト情報であるが、以下、便宜上、INITIALIZE UPDATE」なる文字列として説明する）と、特定の暗号鍵の格納場所を示す格納場所指定情報（実際には、特定のキーバージョン番号）と、所定の乱数とによって構成されている。
【００５１】
たとえば、図３に示す鍵テーブルＴに格納されている３つの暗号鍵ＫｅｙＤ，ＫｅｙＥ，ＫｅｙＦを用いた暗号通信路を開設する場合には、文字列「INITIALIZE UPDATE」に「０ｘ２０」なるキーバージョン番号を後続させ、更にその後ろに所定の乱数を後続させた暗号通信路開設コマンドＣＭＤがＩＣカードに与えられる。この暗号通信路開設コマンドＣＭＤの最後に付加される乱数は、外部装置がＩＣカードを正規の交信相手であることを認証するために利用される。別言すれば、暗号通信路開設コマンドＣＭＤは、ＩＣカードに対して、暗号通信路の開設処理を実行する指示コマンドとしての役割とともに、所定の乱数に応じた認証コードを返信するよう求める認証コマンドとしての役割も果たす。
【００５２】
図５は、図２に示すＳＩＭカード１１（第１の情報処理装置１００）に組み込まれたＳＤプログラムと、スマートフォン１０（第２の情報処理装置２００）に組み込まれたアプリケーションプログラムＡＰ３と、の間でやりとりされる種々のコマンドおよびこれに対する応答の具体例を示すダイアグラムである。ステップＳ１〜Ｓ６に示すとおり、いずれもスマートフォン１０側からＳＩＭカード１１側に所定のコマンドを送信し、当該コマンドに対する応答（レスポンス）をＳＩＭカード１１側からスマートフォン１０側へと返信する、という形態で、両者間の情報のやりとりが行われる。この例の場合、ステップＳ１〜Ｓ４までの情報のやりとりは、暗号化されていない通常の通信路を介して行われるが、ステップＳ５，Ｓ６の情報のやりとりは、ＳＤプログラムによって開設された暗号通信路を介して行われる。
【００５３】
まず、ステップＳ１は、スマートフォン１０側からＳＩＭカード１１側に「SELECTコマンド」を送信するプロセスである。この「SELECTコマンド」は、特定のチャネル番号を指定して、ＳＩＭカード１１側のＳＤプログラムを選択するコマンドである。ＳＩＭカード１１側では、当該チャネル番号と当該ＳＤプログラムとが対応づけられ、以後、同じチャネル番号をもつコマンドが与えられると、当該ＳＤプログラムによって処理されることになる。「SELECTコマンド」が正常に受理されると、ＳＩＭカード１１側からスマートフォン１０側に応答が返される。
【００５４】
続く、ステップＳ２は、「GET DATAコマンド」を送信するプロセスである。なお、ステップＳ２以降のコマンドには、ステップＳ１と同じチャネル番号が付与されており、ＳＩＭカード１１側では、ＳＤプログラムによって処理される。この「GET DATAコマンド」は、前述したＳＤプログラムの「機能８：データの読出し」に基づいて、所定のデータをＳＩＭカード１１側からスマートフォン１０側に読み出すためのコマンドであり、読出対象となるデータを特定する情報が付加されている。ＳＤプログラムは、当該コマンドに応じて、ＳＩＭカード１１内のメモリから指定されたデータを読出し、これを当該コマンドに対する応答としてスマートフォン１０側へと返信する。
【００５５】
GlobalPlatform （登録商標）の仕様では、ＳＤプログラムが前述した「機能１〜機能７」を行う場合は、暗号通信路（機能９によって開設されたセキュアな通信路）を介して情報のやりとりを実行することが必須とされているが、「機能８：データの読出し」については暗号通信路の開設は必須にはなっていない。図５のステップＳ２のプロセスは、暗号通信路の開設前にデータの読出処理が行われた例を示すものである。
【００５６】
続く、ステップＳ３，Ｓ４は、暗号通信路の開設準備を行うプロセスである。まず、ステップＳ３では、「INITIALIZE UPDATEコマンド」の送信が行われる。このコマンドは、図４(b) に示すデータ構造をもつ暗号通信路開設コマンドＣＭＤであり、前述したとおり、「INITIALIZE UPDATE」なるコマンド文字列情報に、キーバージョン番号および乱数を付加した形態をもつ。このコマンドは、スマートフォン１０が、ＳＩＭカード１１を正規の交信相手であることを認証するための認証コマンドとしての役割も果たす。
【００５７】
すなわち、「INITIALIZE UPDATEコマンド」を受信したＳＩＭカード１１（ＳＤプログラム）は、鍵テーブルＴ１から、指定されたキーバージョン番号に対応する暗号鍵を取り出し、暗号化処理の準備を行うとともに、与えられた乱数に対して所定のアルゴリズムに基づく演算を施し、演算結果を当該コマンドに対する応答として返信する。スマートフォン１０（アプリケーションプログラムＡＰ３）は、返信されてきた演算結果が、与えた乱数に対する正しい演算結果であるか否かを検証し、正しい演算結果であった場合に、現在交信中のＳＩＭカード１１を正規の交信相手であると認証する。
【００５８】
続くステップＳ４では、「EXTERNAL AUTHENTICATEコマンド」の送信が行われる。このコマンドは、ＳＩＭカード１１がスマートフォン１０を正規の交信相手であることを認証するための認証コマンドである。スマートフォン１０は、ステップＳ３の応答により返信されてきたデータに対して所定のアルゴリズムに基づく演算を施し、演算結果を「EXTERNAL AUTHENTICATE」なるコマンド文字列情報に付加してＳＩＭカード１１に送信する。ＳＩＭカード１１（ＳＤプログラム）は、「EXTERNAL AUTHENTICATEコマンド」によって送信されてきた演算結果が、正しい演算結果であるか否かを検証し、正しい演算結果であった場合に、現在交信中のスマートフォン１０を正規の交信相手であると認証する。
【００５９】
このステップＳ３，Ｓ４による相互認証の具体的なプロセスは、一般に利用されている公知の技術であるため、ここでは詳しい説明は省略する。こうして、ＳＩＭカード１１とスマートフォン１０との間での相互認証が完了すると、両者間に暗号通信路が開設され、図の破線より下に示されたステップＳ５以降のコマンドは、この暗号通信路を介して与えられることになる。すなわち、ステップＳ５以降のコマンドは、所定の暗号化プロトコルに基づいて暗号化され、「ＳＣＰ：Secure Channel Protocol」により保護されたコマンドとして送信される。
【００６０】
なお、現行の規格では、暗号通信路の開設時（「EXTERNAL AUTHENTICATEコマンド」の処理時）に、ＳＣＰについてレベルを設定することが可能である。具体的には、「レベル１：コマンド改竄検知用のチェックコード付与」と「レベル２：コマンド改竄検知用のチェックコード付与＋コマンドデータフィールドの暗号化」とが定められており、ステップＳ５以降にやりとりされるコマンドには、開設時に設定されたレベルが適用されることになる。このようなＳＣＰレベルの設定を行った場合、レベル２の設定が行われたときにのみ、ステップＳ５以降のコマンドのデータフィールドに対して暗号化が行われることになる。
【００６１】
上述したように、GlobalPlatform （登録商標）の仕様では、ＳＤプログラムに「機能１〜機能７」を実行させる指示を与えるコマンドについては、ＳＣＰにより保護されたコマンドとして送信することが必須となっている。したがって、たとえば、ＳＤプログラムにアプリケーションプログラムをロードさせたり、インストールさせたりする処理を実行させるためのコマンドは、図示のステップＳ５，Ｓ６のように、ＳＣＰにより保護されたコマンドとして、暗号化された状態で送信されることになる。なお、ステップＳ５，Ｓ６の例では、コマンドに対する応答については、ＳＣＰによる保護を行わず、平文のまま通常の通信路を介して返信するようにしているが、必要があれば、これらの応答についても、暗号通信路を介して返信するようにしてもよい。
【００６２】
＜＜＜  §２．  本発明に係る情報処理システムの基本構成  ＞＞＞
上述した§１では、図５を参照しながら、ＳＩＭカード１１とスマートフォン１０との間に暗号通信路を開設する手順を説明した。ここで開設される暗号通信路は、ハードウェアとしては通常の通信路と変わりはない。しかしながら、この暗号通信路を介して送受信されるデータは、ソフトウェアによって所定の暗号化プロトコルに基づく暗号化が施されるため、万一、漏洩したとしても、必要なセキュリティが確保されることになる。
【００６３】
結局、「暗号通信路の開設」とは、送信側において、所定の暗号化プロトコルに基づく暗号化処理の準備を完了させ、受信側において、所定の暗号化プロトコルに基づく復号処理の準備を完了させた状態ということができる。そのためには、送信側と受信側とにおいて、共通の暗号化プロトコルを用い、共通の暗号鍵を用いることが前提となる。このような事情から、従来は、ＩＣカードにＳＤプログラムを組み込む際に、特定の暗号化プロトコルを選択し、当該ＳＤプログラムについては、専ら、この選択された特定の暗号化プロトコルを用いた「暗号通信路の開設」が行われるような設定を行っていた。
【００６４】
このため、本来は、ＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３なる３通りの暗号化プロトコルに対応しているＳＤプログラムであっても、ＩＣカードにインストールする時点で、いずれか１つの暗号化プロトコルを選択し、インストール後は、当該選択された暗号化プロトコルに基づく暗号通信路のみが開設されるようにする、という運用が行われている。もちろん、暗号鍵については、図３に例示するような鍵テーブルＴを用意しておき、暗号通信路の開設時にキーバージョン番号による指定を行うことにより、複数とおりの暗号鍵の中から任意の暗号鍵を選択して用いることが可能であるが、暗号化プロトコルについては、複数とおりのプロトコルから任意のプロトコルを選択して用いることはできず、選択の多様性は失われてしまう。
【００６５】
最近は、暗号化プロトコルの種類も多岐にわたっている。具体的には、ＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３，ＳＣＰ１０，ＳＣＰ８０，ＳＣＰ８１などの暗号化プロトコルが実際に利用されており、今後も様々な暗号化プロトコルの提唱が見込まれている。また、ＩＣカードの通信相手も多様化してきており、１つのＩＣカードが、種々の状況に応じて、複数の相手と通信するケースも少なくない。
【００６６】
たとえば、スマートフォンには、複数のアプリケーションプログラムがインストールされるのが一般的であり、スマートフォンに装着されたＩＣカードは、複数のアプリケーションプログラムとの間で情報のやりとりを行うケースも少なくない。この場合、ＩＣカード側のＳＤプログラムが、特定の暗号化プロトコルのみにしか対応していないと、スマートフォン側のアプリケーションプログラムの自由度が低下せざるを得ない。
【００６７】
本発明は、このような問題に対処するために提案されたものであり、２組の情報処理装置の間に、複数通りの暗号化プロトコルの中から選択された任意の暗号化プロトコルに基づく暗号通信路を開設して、両者間でセキュアな通信を可能にする技術を提供するものである。以下、図６を参照しながら、本発明に係る情報処理システムの基本構成を説明する。
【００６８】
図６に示す情報処理システムは、第１の情報処理装置１００と第２の情報処理装置２００Ａとを備え、両者間で所定の暗号化プロトコルに基づいた暗号通信が可能な情報処理システムである。ここでは、§１で述べた例と同様に、第１の情報処理装置１００として、ＳＩＭカード１１を用い、第２の情報処理装置２００Ａとして、当該ＳＩＭカード１１を装着する相手となるスマートフォン１０Ａを用いた例について、以下の説明を行うことにする。
【００６９】
図示のとおり、第１の情報処理装置１００には、暗号通信路を開設する処理を行う第１の暗号通信処理部１１０と暗号鍵を格納する第１の暗号鍵格納部１２０とが設けられており、第１の暗号通信処理部１１０は、第１の暗号鍵格納部１２０に格納されている暗号鍵を用いて、暗号通信路を開設する処理を行う。ここに示す実施例の場合、第１の暗号通信処理部１１０は、実際には、ＳＩＭカード１１にインストールされたＳＤプログラムの機能として実現されることになり、第１の暗号鍵格納部１２０は、このＳＤプログラムによって管理されるＳＩＭカード１１に内蔵されたメモリの一部分の領域として実現されることになる。
【００７０】
一方、第２の情報処理装置２００Ａには、第１の暗号通信処理部１１０が開設した暗号通信路を利用して暗号通信を行う第２の暗号通信処理部２１０Ａと、暗号鍵を格納する第２の暗号通信処理部２２０Ａと、第１の暗号通信処理部１１０に対して暗号通信路の開設を指示する暗号通信路開設指示部２３０Ａとが設けられている。後述するように、暗号通信路開設指示部２３０Ａから第１の暗号通信処理部１１０に対して、暗号通信路開設コマンドＣＭＤが送信されると、第１の暗号通信処理部１１０は、当該コマンドに基づいて暗号通信路を開設する処理を行う。その後、第２の暗号通信処理部２１０Ａは、第２の暗号通信処理部２２０Ａに格納されている暗号鍵を用いて、当該暗号通信路を介した暗号通信を行うことになる。
【００７１】
ここに示す実施例の場合、第２の暗号通信処理部２１０Ａおよび暗号通信路開設指示部２３０Ａは、実際には、スマートフォン１０Ａにインストールされたアプリケーションプログラムの機能として実現されることになり、第２の暗号通信処理部２２０Ａは、スマートフォン１０Ａに内蔵されたメモリの一部分の領域として実現されることになる。
【００７２】
結局、本発明に係る第１の情報処理装置１００は、ＩＣカードもしくはその他の情報処理装置を構成するコンピュータに、ＳＤプログラム等の専用プログラムを組み込むことによって実現され、本発明に係る第２の情報処理装置２００Ａは、スマートフォンもしくはその他の情報処理装置を構成するコンピュータに、所定のプログラムを組み込むことによって実現されることになる。
【００７３】
続いて、上記各構成要素の機能について、更に詳しい説明を行う。まず、第１の暗号通信処理部１１０は、複数Ｎ通り（Ｎ≧２）の暗号化プロトコルに基づく暗号通信を行う機能を有しており、第２の情報処理装置２００Ａから、このＮ通りの暗号化プロトコルのうちの特定のプロトコルを指定した暗号通信路開設コマンドＣＭＤが与えられた場合に、指定された特定の暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設し、開設された暗号通信路を介して第２の情報処理装置２００Ａとの間で暗号通信を行うことができる。
【００７４】
図６には、第１の暗号通信処理部１１０のブロック内に、第１の暗号化プロトコルＰ１，第２の暗号化プロトコルＰ２，...，第Ｎの暗号化プロトコルＰＮが用意されている状態が示されている。これら各暗号化プロトコルＰ１〜ＰＮは、実際には、第１の情報処理装置１００（ＳＩＭカード１１）にインストールされたＳＤプログラムの機能として用意される。
【００７５】
上述したとおり、従来は、ＳＤプログラムをインストールする際に、特定の暗号化プロトコルを１つだけ選択し、インストール後は、当該選択された暗号化プロトコルに基づく暗号通信路のみが開設されるようにする運用が採られていた。これに対して、本発明の場合、ＳＤプログラムをインストールする際に、複数Ｎ通りの暗号化プロトコルにそれぞれ対応した暗号化処理および復号処理が実行できるような運用が採られる。たとえば、ＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３なる３通りの暗号化プロトコルに対応しているＳＤプログラムをインストールする場合、これら３通りすべてのプロトコルを利用可能な態様でインストールが行われる（Ｎ＝３の場合）。そして、第１の暗号通信処理部１１０が実際に暗号通信路を開設する際には、これら３通りのうち、指定された１つの暗号化プロトコルを選択し、選択した暗号化プロトコルに基づく暗号通信路の開設を行うことになる。
【００７６】
一方、第１の暗号鍵格納部１２０は、暗号鍵を格納するための複数の格納場所を有し、これら複数の格納場所に、上記Ｎ通りの暗号化プロトコルのそれぞれに用いられる暗号鍵を格納している構成要素である。図６には、第１の暗号鍵格納部１２０内に４組の格納場所Ｌ１１〜Ｌ１４が設けられ、これら各格納場所Ｌ１１〜Ｌ１４にそれぞれ暗号鍵Ｋｅｙｓ１１〜Ｋｅｙｓ１４が格納されている状態が示されている。これら各格納場所Ｌ１１〜Ｌ１４は、実際には、それぞれが図３に示す鍵テーブルＴの１行分のセルに相当するものであり、暗号鍵を「Ｋｅｙｓ」と複数形にしているのは、複数の暗号鍵によって構成されていることを示すためである。
【００７７】
たとえば、格納場所Ｌ１１に格納されている暗号鍵Ｋｅｙｓ１１は、図３に示す鍵テーブルＴにおいて、キーバージョン番号「０ｘ０１」に対応する格納場所に格納されている３組の暗号鍵ＫｅｙＡ，ＫｅｙＢ，ＫｅｙＣに相当する。このように、本発明にいう「暗号鍵」は、必ずしも１つの暗号鍵である必要はなく、ある特定の暗号化プロトコルに用いられる複数の暗号鍵の集合体も含む概念である。
【００７８】
続いて、第２の情報処理装置２００Ａ（スマートフォン１０Ａ）側の構成要素についての説明を行う。まず、第２の暗号通信処理部２１０Ａは、第１の暗号通信処理部１１０に用意されている複数Ｎ通りの暗号化プロトコルのうちの少なくとも１つの特定の暗号化プロトコルに基づく暗号通信を行う機能を有し、当該特定の暗号化プロトコルに基づく暗号通信を行うために開設された暗号通信路を介して第１の暗号通信処理部１１０との間で暗号通信を行う構成要素である。図に示す例の場合、第２の暗号通信処理部２１０Ａは、第１の暗号化プロトコルＰ１のみに対応しており、この第１の暗号化プロトコルＰ１を上記特定の暗号化プロトコルとして、暗号通信を行う機能を有している。
【００７９】
第２の暗号鍵格納部２２０Ａは、上記特定の暗号化プロトコルに用いられる特定の暗号鍵を格納する構成要素であり、図示の例の場合は、第１の暗号化プロトコルＰ１に用いられる暗号鍵として、暗号鍵Ｋｅｙｓ１３が格納されている。この暗号鍵Ｋｅｙｓ１３は、第１の暗号鍵格納部１２０の格納場所Ｌ１３に格納されている暗号鍵Ｋｅｙｓ１３と同一のものである。
【００８０】
このように、第２の暗号通信処理部２１０Ａは、第１の暗号通信処理部１１０に用意されているＮ通りの暗号化プロトコルのうちの少なくとも１つと同じ暗号化プロトコルに基づく暗号通信機能を有しており、第２の暗号鍵格納部２２０Ａには、第１の暗号鍵格納部１２０のいずれかの格納場所に格納されている暗号鍵と同一の暗号鍵が格納されていることになる。したがって、第１の情報処理装置１００と第２の情報処理装置２００Ａとは、同一の暗号鍵を用いて同一の暗号化プロトコルに基づく暗号通信路を確保し、当該暗号通信路を介した暗号通信によって情報のやりとりを行うことができる。
【００８１】
暗号通信路開設指示部２３０Ａは、このような暗号通信路の開設を指示するための暗号通信路開設コマンドＣＭＤを第１の情報処理装置１００に与える構成要素である。本発明の特徴は、この暗号通信路開設コマンドＣＭＤに、特定の暗号化プロトコルを指定するためのプロトコル指定情報を含ませるようにした点にある。すなわち、本発明で用いられる暗号通信路開設コマンドＣＭＤには、第２の暗号通信処理部２１０Ａが対応している特定の暗号化プロトコルを指定するためのプロトコル指定情報と、当該特定の暗号化プロトコルに用いる特定の暗号鍵を指定するための暗号鍵指定情報と、が含まれている。
【００８２】
このような暗号通信路開設コマンドＣＭＤを受信した第１の暗号通信処理部１１０は、当該暗号通信路開設コマンドＣＭＤに含まれているプロトコル指定情報によって指定された暗号化プロトコルおよび当該暗号通信路開設コマンドＣＭＤに含まれている暗号鍵指定情報によって指定された暗号鍵を利用して、暗号通信を行うための暗号通信路を開設する処理を行うことになる。
【００８３】
たとえば、図示の例の場合、第２の暗号通信処理部２１０Ａは、第１の暗号化プロトコルＰ１に基づく暗号通信機能を有しており、第２の暗号鍵格納部２２０Ａには、当該プロトコルＰ１に用いるための暗号鍵Ｋｅｙｓ１３が格納されている。したがって、暗号通信路開設指示部２３０Ａは、第１の暗号化プロトコルＰ１を指定するプロトコル指定情報と、暗号鍵Ｋｅｙｓ１３を指定する暗号鍵指定情報と、を含んだ暗号通信路開設コマンドＣＭＤを第１の暗号通信処理部１１０に送信することになる。そして、そのような暗号通信路開設コマンドＣＭＤを受信した第１の暗号通信処理部１１０は、指定された第１の暗号化プロトコルＰ１および指定された暗号鍵Ｋｅｙｓ１３を利用して、暗号通信路の開設処理を行う。かくして、第１の情報処理装置１００と第２の情報処理装置２００Ａとの間で、第１の暗号化プロトコルＰ１および暗号鍵Ｋｅｙｓ１３を利用した暗号通信が実行される。
【００８４】
本発明に係る情報処理システムの利点は、第１の情報処理装置１００が、複数Ｎ通りの暗号化プロトコルに基づく暗号通信機能を有しているため、必要に応じて、用いる暗号化プロトコルを適宜変更することができる点である。図７は、本発明に係る情報処理システムの別な基本構成を示すブロック図である。図６に示す情報処理システムと図７に示す情報処理システムとの相違は、前者の第２の情報処理装置２００Ａが、後者では第２の情報処理装置２００Ｂに置き換えられている点のみである。
【００８５】
ここでは、この図７に示す例において、第２の情報処理装置２００Ｂが、スマートフォン１０Ｂである場合を考えてみよう。別言すれば、図６に示す情報処理システムにおけるＳＩＭカード１１をスマートフォン１０Ａから抜き取り、これを別なスマートフォン１０Ｂに差し替えたものが、図７に示す情報処理システムということになる。
【００８６】
第２の情報処理装置２００Ｂには、第１の暗号通信処理部１１０が開設した暗号通信路を利用して暗号通信を行う第２の暗号通信処理部２１０Ｂと、暗号鍵を格納する第２の暗号鍵格納部２２０Ｂと、第１の暗号通信処理部１１０に対して暗号通信路の開設を指示する暗号通信路開設指示部２３０Ｂとが設けられている。これら各構成要素２１０Ｂ，２２０Ｂ，２３０Ｂの基本的な機能は、図６に示す各構成要素２１０Ａ，２２０Ａ，２３０Ａの基本的な機能と全く同じである。
【００８７】
ただ、第２の暗号通信処理部２１０Ｂは、第１の暗号化プロトコルＰ１ではなく、第２の暗号化プロトコルＰ２のみに対応しており、この第２の暗号化プロトコルＰ２を特定の暗号化プロトコルとして、暗号通信を行う機能を有している。一方、第２の暗号鍵格納部２２０Ｂには、第２の暗号化プロトコルＰ２に用いる特定の暗号鍵として、２通りの暗号鍵Ｋｅｙｓ１１およびＫｅｙｓ１２が、鍵テーブルＴ２の形で格納されている。これらの暗号鍵Ｋｅｙｓ１１，Ｋｅｙｓ１２は、第１の暗号鍵格納部１２０の格納場所Ｌ１１，Ｌ１２に格納されている暗号鍵Ｋｅｙｓ１１，Ｋｅｙｓ１２と同一のものであり、実際には、前述したとおり、複数の暗号鍵の集合体によって構成されている。
【００８８】
暗号通信路開設指示部２３０Ｂは、前述した暗号通信路開設指示部２３０Ａと同様に、暗号通信路の開設を指示するための暗号通信路開設コマンドＣＭＤを第１の情報処理装置１００に与える構成要素である。暗号通信路開設コマンドＣＭＤには、第２の暗号通信処理部２１０Ｂが対応している特定の暗号化プロトコルを指定するためのプロトコル指定情報と、当該特定の暗号化プロトコルに用いる特定の暗号鍵を指定するための暗号鍵指定情報と、が含まれている。
【００８９】
具体的には、図示の例の場合、第２の暗号通信処理部２１０Ｂは、第２の暗号化プロトコルＰ２に基づく暗号通信機能を有しており、第２の暗号鍵格納部２２０Ｂには、当該プロトコルＰ２に用いるための暗号鍵Ｋｅｙｓ１１，Ｋｅｙｓ１２が格納されているので、暗号通信路開設指示部２３０Ｂは、第２の暗号化プロトコルＰ２を指定するプロトコル指定情報と、暗号鍵Ｋｅｙｓ１１もしくはＫｅｙｓ１２のいずれかを指定する暗号鍵指定情報と、を含んだ暗号通信路開設コマンドＣＭＤを第１の暗号通信処理部１１０に送信することになる。
【００９０】
そのような暗号通信路開設コマンドＣＭＤを受信した第１の暗号通信処理部１１０は、指定された第２の暗号化プロトコルＰ２および指定された暗号鍵Ｋｅｙｓ１１もしくはＫｅｙｓ１２を利用して、暗号通信路の開設処理を行う。かくして、第１の情報処理装置１００と第２の情報処理装置２００Ｂとの間で、第２の暗号化プロトコルＰ２および暗号鍵Ｋｅｙｓ１１もしくはＫｅｙｓ１２を利用した暗号通信が実行される。もちろん、第２の暗号鍵格納部２２０Ｂに、より多数の暗号鍵を用意しておけば、暗号鍵指定情報によって指定可能な暗号鍵のバリエーションはより豊富になる。
【００９１】
結局、図６に示す実施例と図７に示す実施例とを参照すれば、全く同一のＳＩＭカード１１（第１の情報処理装置１００）が、互いに異なる暗号化プロトコルを利用した暗号通信機能をもった２組のスマートフォン１０Ａ，１０Ｂ（第２の情報処理装置２００Ａ，２００Ｂ）のいずれに対しても暗号通信を行う機能をもつことになり、当該ＳＩＭカード１１は、スマートフォン１０Ａに装着して用いることもできるし、スマートフォン１０Ｂに装着して用いることもできる。すなわち、ＳＩＭカード１１は、複数Ｎ通りの暗号化プロトコルの中から選択された任意の暗号化プロトコルに基づく暗号通信路を開設して、セキュアな通信を行うことが可能になる。
【００９２】
図８は、本発明に係る情報処理システムの更に別な基本構成を示すブロック図である。図６に示す情報処理システムと図８に示す情報処理システムとの相違は、前者の第２の情報処理装置２００Ａが、後者では第２の情報処理装置２００Ｃに置き換えられている点のみである。
【００９３】
ここでも、この図８に示す例において、第２の情報処理装置２００Ｃが、スマートフォン１０Ｃである場合を考えてみる。別言すれば、図６に示す情報処理システムにおけるＳＩＭカード１１をスマートフォン１０Ａから抜き取り、これを別なスマートフォン１０Ｃに差し替えたものが、図８に示す情報処理システムということになる。
【００９４】
第２の情報処理装置２００Ｃには、第１の暗号通信処理部１１０が開設した暗号通信路を利用して暗号通信を行う第２の暗号通信処理部２１０Ｃと、暗号鍵を格納する第２の暗号鍵格納部２２０Ｃと、第１の暗号通信処理部１１０に対して暗号通信路の開設を指示する暗号通信路開設指示部２３０Ｃとが設けられている。これら各構成要素２１０Ｃ，２２０Ｃ，２３０Ｃの基本的な機能は、図６に示す各構成要素２１０Ａ，２２０Ａ，２３０Ａの基本的な機能と全く同じである。
【００９５】
ただ、第２の暗号通信処理部２１０Ｃは、少なくとも、第１の暗号通信処理部１１０に暗号通信機能が備わっている複数Ｎ通りの暗号化プロトコルのうちの複数Ｍ通り（Ｍ≦Ｎ）の暗号化プロトコルに基づく暗号通信を行う機能を有しており、当該Ｍ通りの暗号化プロトコルから選択された特定の暗号化プロトコルに基づく暗号通信を行うために開設された暗号通信路を介して第１の情報処理装置１００との間で暗号通信を行うことができる。
【００９６】
Ｍ＝Ｎに設定した場合、第２の暗号通信処理部２１０Ｃは、第１の暗号化プロトコルＰ１に基づく暗号通信路、第２の暗号化プロトコルＰ２に基づく暗号通信路、...、第Ｎの暗号化プロトコルＰＮに基づく暗号通信路のすべてを用いた暗号通信を行うことが可能になる。一方、Ｍ＜Ｎに設定した場合は、第１の暗号通信処理部１１０が対応可能ないくつかの暗号化プロトコルについて、第２の暗号通信処理部２１０Ｃは対応できないことになる。
【００９７】
図８には、便宜上、第１の暗号通信処理部１１０が対応可能なＮ通りのプロトコルのうち、第１の暗号化プロトコルＰ１〜第Ｍの暗号化プロトコルＰＭについては、第２の暗号通信処理部２１０Ｃも対応可能であるが、第（Ｍ＋１）の暗号化プロトコルＰ（Ｍ＋１）〜第Ｎの暗号化プロトコルＰＮについては、第２の暗号通信処理部２１０Ｃは対応できないという例が示されている。このように、第１の暗号通信処理部１１０は対応可能であるが、第２の暗号通信処理部２１０Ｃは対応できない暗号化プロトコルがいくつかあったとしても、暗号通信路開設指示部２３０Ｃにより、第２の暗号通信処理部２１０Ｃが対応可能ないずれかの暗号化プロトコル（図８の例の場合は、第１の暗号化プロトコルＰ１〜第Ｍの暗号化プロトコルＰＭ）を指定するプロトコル指定情報を含む暗号通信路開設コマンドＣＭＤを送信するようにすれば支障は生じない。
【００９８】
なお、第２の暗号通信処理部２１０Ｃに、第１の暗号通信処理部１１０が対応できない暗号化プロトコルが格納されていても、第１の情報処理装置１００に対しては、当該暗号化プロトコルを指定する暗号通信路開設コマンドＣＭＤを送信しないようにすれば支障は生じない。要するに、暗号通信路開設指示部２３０Ｃは、第１の暗号通信処理部１１０および第２の暗号通信処理部２１０Ｃの双方が対応可能な暗号化プロトコルを指定するプロトコル指定情報を含む暗号通信路開設コマンドＣＭＤを送信するようにすればよい。
【００９９】
一方、第２の暗号鍵格納部２２０Ｃは、暗号鍵を格納するための複数の格納場所を有し、これら複数の格納場所には、第１の情報処理装置１００の第１の暗号鍵格納部１２０に格納されている「第２の暗号通信処理部２１０Ｃが対応可能なＭ通りの暗号化プロトコルのそれぞれに用いられる暗号鍵」と同一の暗号鍵が格納されている。たとえば、図示の例は、第１の暗号鍵格納部１２０に格納されている４組の暗号鍵のうち、Ｋｅｙｓ１１，Ｋｅｙｓ１２，Ｋｅｙｓ１３の３組が、第２の暗号通信処理部２１０Ｃが対応可能なＭ通りの暗号化プロトコルのいずれかに用いられる暗号鍵になっている。したがって、第２の暗号鍵格納部２２０Ｃには、これら３組の暗号鍵Ｋｅｙｓ１１，Ｋｅｙｓ１２，Ｋｅｙｓ１３が、鍵テーブルＴ２として格納されている。これらの暗号鍵Ｋｅｙｓ１１，Ｋｅｙｓ１２，Ｋｅｙｓ１３は、第１の暗号鍵格納部１２０の格納場所Ｌ１１，Ｌ１２，Ｌ１３に格納されている各暗号鍵と同一のものであり、実際には、前述したとおり、複数の暗号鍵の集合体によって構成されている。
【０１００】
暗号通信路開設指示部２３０Ｃは、前述した暗号通信路開設指示部２３０Ａと同様に、暗号通信路の開設を指示するための暗号通信路開設コマンドＣＭＤを第１の情報処理装置１００に与える構成要素である。すなわち、暗号通信路開設指示部２３０Ｃは、第２の暗号通信処理部２１０Ｃが対応しているＭ通りの暗号化プロトコルから特定の暗号化プロトコルを選択し、第１の情報処理装置１００に対して、選択された暗号化プロトコルに基づく暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドＣＭＤを与える処理を行う。前述したとおり、この暗号通信路開設コマンドＣＭＤには、上記Ｍ通りの暗号化プロトコルから選択された特定の暗号化プロトコルを指定するためのプロトコル指定情報と、当該特定の暗号化プロトコルに用いる特定の暗号鍵を指定するための暗号鍵指定情報と、が含まれている。
【０１０１】
具体的には、図示の例の場合、第２の暗号通信処理部２１０Ｃは、Ｍ通りの暗号化プロトコルに基づく暗号通信機能を有しており、第２の暗号鍵格納部２２０Ｃには、これらの各プロトコルに用いるための暗号鍵Ｋｅｙｓ１１，Ｋｅｙｓ１２，Ｋｅｙｓ１３が格納されているので、暗号通信路開設指示部２３０Ｃは、Ｍ通りの暗号化プロトコルのうちの１つを指定するプロトコル指定情報と、暗号鍵Ｋｅｙｓ１１，Ｋｅｙｓ１２，Ｋｅｙｓ１３のうち、当該指定された暗号化プロトコルに利用可能ないずれかの暗号鍵を指定する暗号鍵指定情報と、を含んだ暗号通信路開設コマンドＣＭＤを第１の暗号通信処理部１１０に送信することになる。
【０１０２】
そのような暗号通信路開設コマンドＣＭＤを受信した第１の暗号通信処理部１１０は、指定された特定の暗号化プロトコルおよび指定された特定の暗号鍵を利用して、暗号通信路の開設処理を行う。かくして、第１の情報処理装置１００と第２の情報処理装置２００Ｃとの間で、特定の暗号化プロトコルおよび特定の暗号鍵を利用した暗号通信が実行される。
【０１０３】
通常、スマートフォンには、複数のアプリケーションプログラムがインストールされ、当該スマートフォンに装着されたＩＣカード（ＳＩＭカード）は、これら複数のアプリケーションプログラムとの間で情報のやりとりを行うことになる。しかも、スマートフォンにインストールされた個々のアプリケーションプログラムが、互いに異なる暗号化プロトコルを前提とした暗号通信機能をもっていることも少なくない。
【０１０４】
図８に示す情報処理システムは、このようなケースに適用する上で最適な実施例である。たとえば、スマートフォン１０Ｃに、複数Ｍ個のアプリケーションプログラムがインストールされており、第１〜第Ｍのアプリケーションプログラムが、それぞれ第１〜第Ｍの暗号化プロトコルＰ１〜ＰＭに基づく暗号通信機能を有していた場合、図８に示す第２の暗号通信処理部２１０Ｃは、これらＭ個のアプリケーションプログラムの各暗号通信機能によって実現されることになり、第２の暗号鍵格納部２２０Ｃには、これらＭ個のアプリケーションプログラムの各暗号通信機能に用いるための暗号鍵が格納されていることになる。
【０１０５】
この場合、スマートフォン１０Ｃにインストールされている第１のアプリケーションプログラムがＳＩＭカード１１と交信する際には、暗号通信路開設指示部２３０Ｃによって、第１の暗号化プロトコルＰ１を指定するプロトコル指定情報と、これに用いる特定の暗号鍵を指定する暗号鍵指定情報と、を含んだ暗号通信路開設コマンドＣＭＤを第１の暗号通信処理部１１０に送信すればよい。同様に、スマートフォン１０Ｃにインストールされている第２のアプリケーションプログラムがＳＩＭカード１１と交信する際には、暗号通信路開設指示部２３０Ｃによって、第２の暗号化プロトコルＰ２を指定するプロトコル指定情報と、これに用いる特定の暗号鍵を指定する暗号鍵指定情報と、を含んだ暗号通信路開設コマンドＣＭＤを第１の暗号通信処理部１１０に送信すればよい。
【０１０６】
このように、図８に示す情報処理システムでは、スマートフォン１０Ｃにインストールされている個々のアプリケーションプログラムが、それぞれ独自の暗号化プロトコルに基づいてＳＩＭカード１１との間に暗号通信路を開設し、暗号通信を行うことが可能になる。ＳＩＭカード１１は、スマートフォン１０Ｃ内の各アプリケーションプログラムが対応している複数Ｍ通りの暗号化プロトコルの中から、個々のアプリケーションプログラムごとに選択された任意の暗号化プロトコルに基いて暗号通信路を開設し、セキュアな通信を行うことが可能になる。
【０１０７】
＜＜＜  §３．  ＩＣカードの仕様を考慮した具体的な実施形態  ＞＞＞
§２で説明したとおり、本発明に係る情報処理システムの特徴は、第１の情報処理装置１００に、複数Ｎ通りの暗号化プロトコルに基づく暗号通信を行う機能をもたせ、第２の情報処理装置２００から第１の情報処理装置１００に対して与える暗号通信路開設コマンドＣＭＤに含ませたプロトコル指定情報によって特定の暗号化プロトコルを指定するようにした点にある。
【０１０８】
ただ、暗号通信を行う２組の情報処理装置のうちの一方がＩＣカードである場合、本発明を適用する際に固有の工夫を施す必要がある。これは、§１で述べたとおり、現在普及している一般的なＩＣカードは、Java Card（商標）やGlobalPlatform （登録商標）などの国際的な仕様に準拠させることが事実上不可欠になっているため、当該仕様に準拠した形式で、「複数Ｎ通りの暗号化プロトコルのうち、どの暗号化プロトコルに基づく暗号通信路を開設するのか」を指定するプロトコル指定情報を、ＩＣカードへ伝達する必要があるためである。
【０１０９】
たとえば、暗号化プロトコルＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３を採用した場合、ＩＣカードに与える暗号通信路開設コマンドＣＭＤの書式は、GlobalPlatform （登録商標）の仕様によれば、図４(b) に示すような形式にする必要がある。したがって、当該仕様に準拠する限り、この暗号通信路開設コマンドＣＭＤに、特定の暗号化プロトコルを指定するプロトコル指定情報をそのまま付加することはできない。
【０１１０】
たとえば、「INITIALIZE UPDATE，（キーバージョン番号），（乱数），（プロトコル指定情報）」のような書式をもった暗号通信路開設コマンドＣＭＤを用いることができれば、（プロトコル指定情報）の部分に、たとえば、「ＳＣＰ０２」のような文字列を置くことにより、暗号化プロトコルＳＣＰ０２が指定されたことをＩＣカード側に伝達することが可能である。しかしながら、上記書式をもった暗号通信路開設コマンドＣＭＤは、GlobalPlatform （登録商標）の仕様には準拠しないものになってしまうため、実用上、利用することができない。
【０１１１】
そこで、この§３では、上記事情に鑑みて、GlobalPlatform （登録商標）等の国際的な仕様に準拠しつつ、暗号通信路を開設する際に、ＩＣカード側にプロトコル指定情報を伝達することができる具体的な実施形態を述べることにする。
【０１１２】
＜３−１．第１の実施形態＞
暗号化プロトコルＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３を採用した場合、ＩＣカードに与える暗号通信路開設コマンドＣＭＤの書式を図４(b) に示すような形式にすれば、仕様に準拠したものになる。そこで、第１の実施形態では、このような書式における「キーバージョン番号」の部分にプロトコル指定情報を含ませてしまう、という方法を採用する。
【０１１３】
そのために、まず、鍵テーブルに格納ゾーンを設定する。図６に示すように、ＳＩＭカード１１には、鍵テーブルＴ１が含まれている。この鍵テーブルＴ１は、実際には、図３に例示したように、縦方向にキーバージョン番号（key version number）、横方向にキーＩＤ（key ID）を定義したマトリックスによって構成されたアドレス空間を構成する。
【０１１４】
そこで、この鍵テーブルＴ１に、たとえば、図９(a) に示すようなＮ個の格納ゾーンＺ１〜ＺＮを設定してみる。各格納ゾーンは、図のマトリックスにおける１行もしくは複数行の領域によって構成される。たとえば、第１番目の格納ゾーンＺ１は、キーバージョン番号「０ｘ０１」で特定される１行分のゾーンであり、第ｉ番目の格納ゾーンＺｉは、キーバージョン番号「０ｘ２０〜０ｘ２２」で特定される３行分のゾーンであり、第Ｎ番目の格納ゾーンＺＮは、キーバージョン番号「０ｘ７Ｅ〜０ｘ７Ｆ」で特定される２行分のゾーンである。
【０１１５】
こうして、Ｎ個の格納ゾーンを設定したら、これらＮ個の格納ゾーンＺ１〜ＺＮを、それぞれ図６の第１の暗号通信処理部１１０に示されているＮ通りの暗号化プロトコルＰ１〜ＰＮに対応づける。そして、第ｉ番目（１≦ｉ≦Ｎ）の格納ゾーンＺｉに所属する格納場所には、第ｉ番目の暗号化プロトコルＰｉに用いる暗号鍵を格納する。
【０１１６】
図９(b) は、このようなゾーン設定の結果をまとめた表である。このような表は、ＳＩＭカード１１側の第１の暗号通信処理部１１０内に格納しておくようにする。また、必要に応じて、スマートフォン１０Ａ側の暗号通信路開設指示部２３０Ａ内にも格納しておくようにする。
【０１１７】
図示のとおり、第１番目の格納ゾーンＺ１は、キーバージョン番号の数値範囲「０ｘ０１」で特定される１行分のゾーンであり、第１番目の暗号化プロトコルＰ１が対応づけられている。図９(a) に示す例では、この格納ゾーンＺ１に暗号鍵ＫｅｙＡ〜ＫｅｙＣが格納されているが、これらの暗号鍵はいずれも第１番目の暗号化プロトコルＰ１に用いる暗号鍵ということになる。
【０１１８】
同様に、第ｉ番目の格納ゾーンＺｉは、キーバージョン番号の数値範囲「０ｘ２０〜０ｘ２２」で特定される３行分のゾーンであり、第ｉ番目の暗号化プロトコルＰｉが対応づけられている。図９(a) に示す例では、この格納ゾーンＺｉに暗号鍵ＫｅｙＤ〜ＫｅｙＬが格納されているが、これらの暗号鍵はいずれも第ｉ番目の暗号化プロトコルＰｉに用いる暗号鍵ということになる。また、第Ｎ番目の格納ゾーンＺＮは、キーバージョン番号の数値範囲「０ｘ７Ｅ〜０ｘ７Ｆ」で特定される２行分のゾーンであり、第Ｎ番目の暗号化プロトコルＰＮが対応づけられている。図９(a) に示す例では、この格納ゾーンＺＮに暗号鍵ＫｅｙＭ〜ＫｅｙＲが格納されているが、これらの暗号鍵はいずれも第Ｎ番目の暗号化プロトコルＰＮに用いる暗号鍵ということになる。
【０１１９】
鍵テーブルＴ１上に上述のようなゾーン設定を行えば、キーバージョン番号が特定されれば格納ゾーンが定まり、格納ゾーンが定まれば、対応づけられた暗号化プロトコルが定まることになる。すなわち、キーバージョン番号は、用いる暗号鍵を指定する暗号鍵指定情報としての役割を果たすだけでなく、用いる暗号化プロトコルを指定するプロトコル指定情報としての役割も兼ねることになる。これは、暗号通信路開設コマンドＣＭＤによってキーバージョン番号を指定すれば、暗号化プロトコルの指定も併せて行うことができることを意味する。
【０１２０】
図１０は、この第１の実施形態に用いられる暗号通信路開設コマンドＣＭＤのデータ構造の一例を示す図である。図１０(a) は、GlobalPlatform （登録商標）の仕様に準拠した暗号通信路開設コマンドＣＭＤの基本的なデータ構造を示すものである。図示のとおり、暗号通信路開設コマンドＣＭＤは、先頭から順に、「コマンド文字列情報」、「格納場所指定情報」、「乱数」を並べたものになる。
【０１２１】
ここで、「コマンド文字列情報」は、当該コマンドＣＭＤを識別するための文字列であり、たとえば、暗号化プロトコルＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３に基づく暗号通信路を開設するコマンドの場合は、前述したように、「INITIALIZE UPDATE」なる文字列が用いられる。続く「格納場所指定情報」は、暗号通信路の開設に用いる特定の暗号鍵を指定するための暗号鍵指定情報であり、図６に示す第１の暗号鍵格納部１２０内における特定の暗号鍵の格納場所を指定する情報である。図９に示すような鍵テーブルＴ１を用いて暗号鍵を格納する場合、「格納場所指定情報」は「キーバージョン番号」によって構成される。最後の「乱数」は、前述したとおり、スマートフォン１０ＡがＳＩＭカード１１を正規の交信相手として認証するために利用されるデータである。
【０１２２】
したがって、暗号化プロトコルＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３に基づく暗号通信路を開設する場合、暗号通信路開設コマンドＣＭＤの書式は、図１０(b) に示すようなものになる（図４(b) に示すものと同じ）。図１０(c) は、「キーバージョン番号」および「乱数」の部分に具体的なデジタルデータを入れた例を示す。この例におけるキーバージョン番号「０ｘ２１」は、図９(a) に示す鍵テーブルＴ１内の格納場所（キーバージョン番号で特定される１行分のセル）を指定する格納場所指定情報であり、後続する乱数「０ｘ１２３４ＡＢＣＤ」は、認証演算に用いられるデータである。
【０１２３】
図１０(c) に示すキーバージョン番号「０ｘ２１」により、図９(a) に示す鍵テーブルＴ１における「０ｘ２１」の行（暗号鍵の格納場所）が特定される。しかも、図９(b) に示す表を参照すれば、「０ｘ２１」が所属する数値範囲「０ｘ２０〜０ｘ２２」は、第ｉ番目の格納ゾーンＺｉに対応し、第ｉ番目の暗号化プロトコルＰｉが対応づけられていることが認識できる。結局、図１０(c) に示す暗号通信路開設コマンドＣＭＤにおけるキーバージョン番号「０ｘ２１」は、直接的には、ＩＣカードに対して、暗号鍵の格納場所（図９(a) のテーブルＴ１における特定の行）を指定する格納場所指定情報であるが、実際には、ＩＣカードに対して、特定の暗号化プロトコルを指定するプロトコル指定情報としての役割と、特定の暗号鍵を指定する暗号鍵指定情報としての役割とを兼ねることになる。
【０１２４】
ここでは、より具体的に、３通りの暗号化プロトコルＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３について、第１の格納ゾーンＺ１がプロトコルＳＣＰ０１に対応づけられ、第ｉの格納ゾーンＺｉがプロトコルＳＣＰ０２に対応づけられ、第Ｎの格納ゾーンＺＮがプロトコルＳＣＰ０３に対応づけられていたものとしよう。この場合、第１の格納ゾーンＺ１に格納されている暗号鍵ＫｅｙＡ〜ＫｅｙＣは、暗号化プロトコルＳＣＰ０１に用いる暗号鍵であり、第ｉの格納ゾーンＺｉに格納されている暗号鍵ＫｅｙＤ〜ＫｅｙＬは、暗号化プロトコルＳＣＰ０２に用いる暗号鍵であり、第Ｎの格納ゾーンＺＮに格納されている暗号鍵ＫｅｙＭ〜ＫｅｙＲは、暗号化プロトコルＳＣＰ０３に用いる暗号鍵ということになる。
【０１２５】
このような前提で、スマートフォン１０ＡからＳＩＭカード１１に対して、図１０(c) に示すような暗号通信路開設コマンドＣＭＤを送信すれば、これを受信した第１の暗号通信処理部１１０は、次のような方法で、特定の暗号鍵を用いて、特定の暗号化プロトコルに基づく暗号通信路を開設することができる。まず、第１の暗号通信処理部１１０は、先頭の文字列「INITIALIZE UPDATE」によって、当該コマンドが暗号通信路開設コマンドＣＭＤであることを認識する。そして、続くキーバージョン番号「０ｘ２１」に基づいて、図９(b) に示すテーブルを参照することにより、当該キーバージョン番号「０ｘ２１」に対応する格納ゾーンＺｉを認識し、対応づけられた暗号化プロトコルＰｉ（上例の場合、暗号化プロトコルＳＣＰ０２）を認識する。
【０１２６】
そこで、第１の暗号通信処理部１１０は、暗号化プロトコルＳＣＰ０２に基づく暗号通信路を開設するための処理（ＳＤプログラムとして予め組み込まれているルーチン）を実行する。当該プロトコルでは、キーＩＤ「０ｘ０１〜０ｘ０３」で特定される３つの暗号鍵を用いることが予め定められているので、鍵テーブルＴ１から、キーバージョン番号「０ｘ２１」、キーＩＤ「０ｘ０１〜０ｘ０３」で特定されるセルに格納されている３組の暗号鍵ＫｅｙＧ，ＫｅｙＨ，ＫｅｙＩを読出し、当該３組の暗号鍵を用いて暗号通信路を開設する。
【０１２７】
もちろん、スマートフォン１０Ａ側では、３組の暗号鍵ＫｅｙＧ，ＫｅｙＨ，ＫｅｙＩを用いて、暗号化プロトコルＳＣＰ０２に基づく暗号通信路を開設することを指示するための暗号通信路開設コマンドＣＭＤを送信したわけだから、スマートフォン１０Ａは、これらの情報を参照することにより、当該３組の暗号鍵を用いて暗号化プロトコルＳＣＰ０２に基づく暗号通信を行うことができる。かくして、両者間での暗号通信が開始される。
【０１２８】
結局、図６に示す情報処理システムにおいて、第１の実施形態を実施するには、第１の暗号鍵格納部１２０には、まず、Ｎ通りの暗号化プロトコルに対応づけられたＮ個の格納ゾーンＺ１〜ＺＮを設定しておき、第ｉ番目（１≦ｉ≦Ｎ）の格納ゾーンＺｉに所属する格納場所には、第ｉ番目の暗号化プロトコルＰｉに用いる暗号鍵を格納しておくようにする。また、暗号通信路開設指示部２３０Ａが送信する暗号通信路開設コマンドＣＭＤには、特定の暗号鍵の格納場所を示す格納場所指定情報を含ませておくようにする。
【０１２９】
そして、当該暗号通信路開設コマンドＣＭＤを受信した第１の暗号通信処理部１１０は、当該暗号通信路開設コマンドＣＭＤに含まれている格納場所指定情報を、プロトコル指定情報および暗号鍵指定情報の双方の役割を兼ねた情報として認識し、上記格納場所指定情報によって示された格納場所に格納されている暗号鍵を用いて、上記格納場所指定情報によって示された格納場所が所属する格納ゾーンに対応する暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設する処理を行うようにすればよい。
【０１３０】
図９に示す実施例は、第１の暗号鍵格納部１２０に、鍵テーブルＴ１の形式で暗号鍵を格納した例である。この例の場合、キーバージョン番号によって特定される複数の格納場所（鍵テーブルＴ１を構成する個々の行）が用意されており、個々の格納ゾーンは、１つもしくは複数の格納場所（鍵テーブルＴ１上での１行もしくは複数行）によって構成されている。この実施例の場合、暗号通信路開設コマンドＣＭＤには、図１０に示すように、格納場所指定情報として特定のキーバージョン番号を含ませておくようにする。そうすれば、第１の暗号通信処理部１１０は、このキーバージョン番号によって特定される格納場所（鍵テーブルＴ１の特定の行）に格納されている暗号鍵を用いて、当該キーバージョン番号によって示された格納場所が所属する格納ゾーンに対応する特定の暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設する処理を行うことができる。
【０１３１】
なお、ゾーン設定を行う場合、図９に示す例のように、個々の格納ゾーンを、１つの格納場所（鍵テーブル上の１行）もしくは連続するキーバージョン番号を有する複数の格納場所（鍵テーブル上で連続する複数行）によって構成するようにし、個々の格納ゾーンがキーバージョン番号の固有の数値範囲に対応づけられているようにするのが好ましい。もちろん、１つの格納ゾーンを、とびとびの格納場所（とびとびの行）の集合体として設定することも可能であるが、図９(a) に示すような連続した格納場所（連続した行）の集合体によって個々の格納ゾーンを構成しておけば、図９(b) に示すような数値範囲として個々の格納ゾーンを特定することができるため、格納ゾーンの認識処理が容易になる。
【０１３２】
また、図９に示す実施例の場合、第１の暗号鍵格納部１２０の各格納場所（鍵テーブル上の各行）には、それぞれキーＩＤによって特定される複数の格納庫（鍵テーブル上の各セル）が用意されており、これら複数の格納庫の全部もしくは一部に、それぞれ別個の暗号鍵が格納されている。これは、暗号化プロトコルＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３のように、複数の暗号鍵を必要とする暗号化プロトコルに対応するための配慮である。
【０１３３】
このように、１つの格納場所（鍵テーブル上の１行）に複数の格納庫（鍵テーブル上の各セル）を用意し、個々の格納庫にそれぞれ別個の暗号鍵を格納できるようにしておけば、複数の暗号鍵を必要とする暗号化プロトコルに対応することが可能になる。この場合、第１の暗号通信処理部１１０は、暗号通信路開設コマンドＣＭＤに含まれるキーバージョン番号によって特定される格納場所（鍵テーブル上の特定の行）内の格納庫（当該特定の行に所属する各セル）のうち、当該格納場所が所属する格納ゾーンに対応する暗号化プロトコルによって予め定められている所定のキーＩＤによって特定される格納庫に格納されている暗号鍵を利用して暗号通信路を開設することになる。
【０１３４】
たとえば、暗号化プロトコルＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３の場合、３組の暗号鍵が用いられるので、予めキーＩＤ「０ｘ０１〜０ｘ０３」で特定される３つの暗号鍵を用いることを定めておけばよい。そうすれば、暗号化プロトコルＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３が指定された場合には、キーＩＤ「０ｘ０１〜０ｘ０３」で特定されるセルに格納されている３組の暗号鍵を読出して利用することができる。
【０１３５】
このように、第１の実施形態は、２組の情報処理装置のうちの一方がＩＣカードである場合に適しており、暗号通信路開設コマンドＣＭＤに暗号鍵の格納場所を示す格納場所指定情報を含ませ、当該格納場所が所属する格納ゾーンによって暗号化プロトコルを指定する方法を採用しているため、ＩＣカードについての国際的な仕様に準拠した暗号通信路開設コマンドを用いて、特定の暗号化プロトコルの選択をＩＣカード側に伝達することが可能になる。
【０１３６】
＜３−２．第２の実施形態＞
ここで述べる第２の実施形態は、ＩＣカードの国際的な仕様として定められている暗号鍵の標準のデータ構造を利用して、ＩＣカードに対してプロトコル指定情報を伝達するようにしたものである。図９(a) に示す鍵テーブルＴ１の個々の格納庫（セル）には、それぞれ別個の暗号鍵Ｋｅｙが格納されている。図１１は、このような暗号鍵Ｋｅｙについて、国際的な仕様として定められているデータ構造を示す図である。
【０１３７】
すなわち、この仕様によると、個々の暗号鍵Ｋｅｙを構成するデータは、図１１(a) に示すような形式にすることが定められている。具体的には、暗号鍵Ｋｅｙは、先頭から順に、「種別情報（key type）Ａ」、「鍵長（key length）Ｌ」、「鍵値データ（key value）Ｖ」を並べたものになる。ここで、「鍵値データＶ」は、暗号鍵の本体部をなす部分であり、暗号化演算に用いられるデータそのものに相当する。「鍵長Ｌ」は、この「鍵値データＶ」の長さを示すためのバイト数の単位をもつデータであり、この「鍵長Ｌ」に基づいて、暗号鍵Ｋｅｙから「鍵値データＶ」の抽出を行うことができる。そして、先頭の「種別情報Ａ」は、当該暗号鍵を利用する暗号アルゴリズムの種別を示す種別情報であり、たとえば、「ＡＥＳ」，「ＤＥＳ」，「ＲＳＡ」などの種別を含む情報によって構成される。
【０１３８】
図１１(b) ，(c) は、このような仕様に基づく暗号鍵Ｋｅｙの具体的なデータ例を示す図である。図１１(b) は、図９(a) に示す鍵テーブルＴ１において、キーバージョン番号「０ｘ０１」で特定される格納場所に格納された３組の暗号鍵ＫｅｙＡ，ＫｅｙＢ，ＫｅｙＣのデータの実例を示している。ここで、暗号鍵ＫｅｙＡ，ＫｅｙＢ，ＫｅｙＣは、それぞれキーＩＤ「０ｘ０１」，「０ｘ０２」，「０ｘ０３」で特定される格納庫（セル）に格納されている。一方、図１１(c) は、図９(a) に示す鍵テーブルＴ１において、キーバージョン番号「０ｘ２１」で特定される格納場所に格納された３組の暗号鍵ＫｅｙＧ，ＫｅｙＨ，ＫｅｙＩのデータの実例を示している。ここで、暗号鍵ＫｅｙＧ，ＫｅｙＨ，ＫｅｙＩは、それぞれキーＩＤ「０ｘ０１」，「０ｘ０２」，「０ｘ０３」で特定される格納庫（セル）に格納されている。
【０１３９】
図１１(b) に示す３組の暗号鍵ＫｅｙＡ，ＫｅｙＢ，ＫｅｙＣは、いずれも「種別情報Ａ」欄が「ＡＥＳ」となっており、暗号アルゴリズムとして、ＡＥＳ（Advanced Encryption Standard）なる暗号方式を採用する暗号化プロトコルに用いる暗号鍵であることを示している。一方、図１１(c) に示す３組の暗号鍵ＫｅｙＧ，ＫｅｙＨ，ＫｅｙＩは、いずれも「種別情報Ａ」欄が「ＤＥＳ」となっており、暗号アルゴリズムとして、ＤＥＳ（Data Encryption Standard）なる暗号方式を採用する暗号化プロトコルに用いる暗号鍵であることを示している。いずれも、「鍵長Ｌ」は１６バイトであり、「鍵値データＶ」は１６バイトのデータによって構成されている。
【０１４０】
前述したとおり、ＩＣカードにＳＤプログラムをインストールする際、従来は、インストール時点で、いずれか１つの暗号化プロトコルを選択し、インストール後は、当該選択された暗号化プロトコルに基づく暗号通信路のみが開設されるようにする、という運用が行われている。このような運用を行う上では、暗号鍵Ｋｅｙに「種別情報Ａ」をもたせておく必要はないが、仕様上は、「種別情報Ａ」を含む暗号鍵Ｋｅｙを用いることになっている。
【０１４１】
ここで述べる第２の実施形態は、このような事情を考慮し、この暗号鍵Ｋｅｙに含まれる「種別情報Ａ」を利用してＩＣカード側にプロトコル指定情報を伝達する、という方法を採用する。
【０１４２】
すなわち、この第２の実施形態では、第１の暗号鍵格納部１２０の各格納場所に、暗号化演算に用いられる鍵値データＶと、暗号アルゴリズムの種別を示す種別情報Ａと、を含む暗号鍵Ｋｅｙを格納しておくようにし、暗号通信路開設指示部２３０Ａが送信する暗号通信路開設コマンドＣＭＤには、図１０に示すように、特定の暗号鍵の格納場所を示す格納場所指定情報（具体的には、キーバージョン番号）を含ませておくようにする。図１１に示す例の場合、第１の暗号鍵格納部１２０の各格納場所には、暗号化演算に用いられる鍵値データＶと、暗号アルゴリズムの種別を示す種別情報Ａと、鍵値データＶの長さを示す鍵長Ｌと、を含む暗号鍵Ｋｅｙが格納されており、鍵長Ｌに基づいて、暗号鍵Ｋｅｙから適切な長さをもった鍵値データＶの抽出を行うことができるようになっている。
【０１４３】
一方、この暗号通信路開設コマンドＣＭＤを受信した第１の暗号通信処理部１１０は、格納場所指定情報（キーバージョン番号）を、プロトコル指定情報および暗号鍵指定情報の双方の役割を兼ねた情報として認識し、当該格納場所指定情報によって示された格納場所に格納されている暗号鍵に含まれている鍵値データＶを用いて、当該暗号鍵に含まれている種別情報Ａによって示された暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設する処理を行うようにする。
【０１４４】
なお、図９に示す実施例の場合、第１の暗号鍵格納部１２０の各格納場所（鍵テーブル上の各行）には、それぞれキーＩＤによって特定される複数の格納庫（鍵テーブル上の各セル）が用意されており、これら複数の格納庫の全部もしくは一部に、それぞれ別個の暗号鍵が格納されている。これは、暗号化プロトコルＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３のように、複数の暗号鍵を必要とする暗号化プロトコルに対応するための配慮である。
【０１４５】
このように、複数の暗号鍵を必要とする暗号化プロトコルに対応させる場合、同一の格納場所（鍵テーブルの同一行）に属する複数の格納庫（鍵テーブル上の各セル）に格納されている暗号鍵には、同一の種別情報Ａが含まれるようにする。これは、同一の格納場所に属する複数の格納庫に格納されている暗号鍵は、同一の暗号化プロトコルに用いられる暗号鍵であるため、暗号アルゴリズムの種別を示す種別情報Ａも当然同一にすべきためである。
【０１４６】
たとえば、図１１(b) に示す３組の暗号鍵ＫｅｙＡ〜ＫｅｙＣは、いずれもキーバージョン番号「０ｘ０１」で特定される同一の格納場所に格納された暗号鍵であり、同一の暗号化プロトコルに用いられる暗号鍵である。したがって、これらの暗号鍵には、「ＡＥＳ」なる同一の種別情報Ａが含まれている。同様に、図１１(c) に示す３組の暗号鍵ＫｅｙＧ〜ＫｅｙＩは、いずれもキーバージョン番号「０ｘ２１」で特定される同一の格納場所に格納された暗号鍵であり、同一の暗号化プロトコルに用いられる暗号鍵である。したがって、これらの暗号鍵には、「ＤＥＳ」なる同一の種別情報Ａが含まれている。
【０１４７】
したがって、第１の暗号通信処理部１１０が、暗号通信路を開設する際に、どの暗号化プロトコルが指定されているかを認識するには、暗号通信路開設コマンドＣＭＤに含まれる暗号鍵指定情報（キーバージョン番号）によって特定される格納場所内のいずれの格納庫に格納されている暗号鍵に含まれる種別情報Ａを参照してもかまわない。
【０１４８】
たとえば、図１０(c) に示すような暗号通信路開設コマンドＣＭＤが与えられた場合、第１の暗号通信処理部１１０は、当該暗号通信路開設コマンドＣＭＤに含まれるキーバージョン番号「０ｘ２１」によって特定される格納場所（鍵テーブルＴ１上のキーバージョン番号「０ｘ２１」に対応する行）内のいずれかの格納庫（セル）に格納されている暗号鍵Ｋｅｙを読出し、そこに含まれている種別情報Ａを参照することにより、どの暗号化プロトコルが指定されているかを認識することができる。具体的には、キーバージョン番号「０ｘ２１」に対応する行には、図１１(c) に示す３組の暗号鍵ＫｅｙＧ，ＫｅｙＨ，ＫｅｙＩが格納されているが、いずれも種別情報Ａは「ＤＥＳ」になっているので、どの暗号鍵を参照した場合も、種別情報Ａが「ＤＥＳ」であることを認識することができ、指定された暗号化プロトコルを認識することができる。
【０１４９】
なお、種別情報Ａとして格納されている情報は、あくまでも「暗号アルゴリズム」の種別を示す情報であって、「暗号化プロトコル」を示す情報ではない。しかも、「暗号アルゴリズム」と「暗号化プロトコル」との対応関係は、必ずしも１対１ではない。すなわち、特定の「暗号化プロトコル」は、特定の「暗号アルゴリズム」を利用した暗号化を行う手順であるが、特定の「暗号アルゴリズム」を利用した暗号化を行うプロトコルは１つだけとは限らない。具体例を挙げれば、たとえば、暗号化プロトコルＳＣＰ０１と暗号化プロトコルＳＣＰ０２とは、具体的な手順が異なるプロトコルであるが、いずれも「暗号アルゴリズム」としては「ＤＥＳ」（実際には、Triple-DES）を用いている。
【０１５０】
したがって、第１の暗号通信処理部１１０が対応しているＮ通りの暗号化プロトコルの中に、暗号アルゴリズムとして「ＤＥＳ」を用いるものが複数存在した場合には、第１の暗号通信処理部１１０は、種別情報Ａが「ＤＥＳ」であることを認識しただけでは、１つの暗号化プロトコルを特定することはできない。具体的には、第１の暗号通信処理部１１０が、暗号化プロトコルＳＣＰ０１と暗号化プロトコルＳＣＰ０２との双方に対応していた場合、図１１(c) に示す暗号鍵ＫｅｙＧ〜ＫｅｙＩに基づいて暗号アルゴリズムが「ＤＥＳ」である旨が特定されたとしても、指定された暗号化プロトコルが、「ＳＣＰ０１」であるのか「ＳＣＰ０２」であるのかを特定することができない。
【０１５１】
このような問題を避けるためには、第１の暗号通信処理部１１０が対応するＮ通りの暗号化プロトコルの中には、同一の暗号アルゴリズムを用いるものは１つだけしか含まれないような設定を行うようにすればよい。たとえば、暗号アルゴリズム「ＤＥＳ」を用いる暗号化プロトコルとして「ＳＣＰ０１」を設定し、暗号アルゴリズム「ＡＥＳ」を用いる暗号化プロトコルとして「ＳＣＰ０３」を設定し、暗号アルゴリズム「ＲＳＡ」を用いる暗号化プロトコルとして「ＳＣＰ１０」を設定し、第１の暗号通信処理部１１０が合計３通りの暗号化プロトコルに対応するような設定を行った場合、種別情報Ａが「ＤＥＳ」，「ＡＥＳ」，「ＲＳＡ」のいずれかであるかを認識することにより、１つの暗号化プロトコルを特定することが可能になる。
【０１５２】
このように第２の実施形態に係る発明は、２組の情報処理装置のうちの一方がＩＣカードである場合に適しており、暗号通信路開設コマンドＣＭＤに暗号鍵の格納場所を示す格納場所指定情報を含ませ、特定の暗号鍵に含まれている種別情報Ａによって暗号化プロトコルを指定する方法を採用しているため、ＩＣカードについての国際的な仕様に準拠した暗号通信路開設コマンドを用いて、特定の暗号化プロトコルの選択をＩＣカード側に伝達することが可能になる。
【０１５３】
＜３−３．第３の実施形態＞
ここで述べる第３の実施形態は、ＩＣカードの国際的な仕様として定められているコマンド文字列情報を利用して、ＩＣカードに対してプロトコル指定情報を伝達するようにしたものである。
【０１５４】
図１２は、ＩＣカードに関する仕様として定められている暗号通信路開設コマンドＣＭＤのデータ構造を示す図である。当該仕様によれば、暗号通信路開設コマンドＣＭＤは、図示のとおり、先頭から順に、「コマンド文字列情報」、「格納場所指定情報」、「乱数」を並べたものになる。
【０１５５】
前述したように、先頭の「コマンド文字列情報」は、当該コマンドが暗号通信路を開設するコマンドであることを示すための文字列である。続く「格納場所指定情報」は、暗号通信路の開設に用いる特定の暗号鍵を指定するための暗号鍵指定情報であり、図９に示すような鍵テーブルＴ１を用いて暗号鍵を格納する場合は「キーバージョン番号」によって構成される。最後の「乱数」は、前述したとおり、スマートフォン１０ＡがＳＩＭカード１１を正規の交信相手として認証するために利用されるデータである。
【０１５６】
ここで、「コマンド文字列情報」に着目すると、GlobalPlatform （登録商標）や３ＧＰＰ／ＥＴＳＩなどの国際的な仕様では、暗号化プロトコルに応じて、複数通りの文字列が定められている。具体的には、暗号化プロトコルＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３については、図１２(b) に示すように、「INITIALIZE UPDATE」なる文字列を先頭におく暗号通信路開設コマンドＣＭＤが定義されており、暗号化プロトコルＳＣＰ８０については、図１２(c) に示すように、「ENVELOPE」なる文字列を先頭におく暗号通信路開設コマンドＣＭＤが定義されており、暗号化プロトコルＳＣＰ１０については、図１２(d) に示すように、「MANAGE SECURITY ENVIRONMENT」なる文字列を先頭におく暗号通信路開設コマンドＣＭＤが定義されている（前述したとおり、これら各コマンドＣＭＤのデータ構造は、便宜上、本発明の説明に必要な情報のみを抽出した概念的なデータ構造であり、実際のデータ構造それ自体を示すものではない）。
【０１５７】
図１３は、このようなコマンド文字列情報と暗号アルゴリズムの種別情報との対応関係を示す表であり、暗号化プロトコルＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３，ＳＣＰ１０，ＳＣＰ８０のそれぞれについて、用いる暗号アルゴリズムの種別とコマンド文字列情報とが示されている。なお、この表における「ＳＣＰｘｘ」は、現時点では、GlobalPlatform （登録商標）による仕様化はなされていないが、今後、策定される可能性のある暗号化プロトコルを示している。
【０１５８】
結局、GlobalPlatform （登録商標）等の国際的な仕様に準拠した暗号通信路開設コマンドＣＭＤには、特定の暗号化プロトコルに基づく暗号通信路の開設を指示する文字列を示すコマンド文字列情報と、特定の暗号鍵の格納場所を示す格納場所指定情報と、が含まれているので、コマンド文字列情報の部分を利用すれば、ＩＣカードに対して、特定の暗号化プロトコルを指定するためのプロトコル指定情報を伝達することが可能である。
【０１５９】
すなわち、第１の暗号通信処理部１１０は、暗号通信路開設コマンドＣＭＤに含まれるコマンド文字列情報をプロトコル指定情報として認識し、暗号通信路開設コマンドＣＭＤに含まれる格納場所指定情報を暗号鍵指定情報として認識することにより、当該格納場所指定情報によって示された格納場所に格納されている暗号鍵を用いて、当該コマンド文字列情報に対応する暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設することができる。
【０１６０】
もちろん、暗号通信路開設コマンドＣＭＤに含まれる「コマンド文字列情報」は、必ずしも特定の「暗号化プロトコル」に１対１対応しているわけではない。たとえば、「INITIALIZE UPDATE」なる文字列を示すコマンド文字列情報は、図１３の表に示されているとおり、現時点では、３通りの暗号化プロトコルＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３に共通して用いられる情報であり、今後策定される新たな暗号化プロトコルにも用いられる可能性がある。
【０１６１】
したがって、第１の暗号通信処理部１１０が対応しているＮ通りの暗号化プロトコルの中に、「INITIALIZE UPDATE」なるコマンド文字列情報を用いるものが複数存在した場合には、第１の暗号通信処理部１１０は、コマンド文字列情報が「INITIALIZE UPDATE」であることを認識しただけでは、１つの暗号化プロトコルを特定することはできない。具体的には、第１の暗号通信処理部１１０が、暗号化プロトコルＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３に対応していた場合、「INITIALIZE UPDATE」なるコマンド文字列情報をもった暗号通信路開設コマンドＣＭＤを受信しても、指定された暗号化プロトコルが、「ＳＣＰ０１」であるのか「ＳＣＰ０２」であるのか「ＳＣＰ０３」であるのかを特定することができない。
【０１６２】
このような問題を避けるためには、第１の暗号通信処理部１１０が対応するＮ通りの暗号化プロトコルの中には、同一のコマンド文字列情報を用いるものは１つだけしか含まれないような設定を行うようにすればよい。たとえば、コマンド文字列情報「INITIALIZE UPDATE」を用いる暗号化プロトコルとして「ＳＣＰ０１」を設定し、コマンド文字列情報「ENVELOPE」を用いる暗号化プロトコルとして「ＳＣＰ８０」を設定し、コマンド文字列情報「MANAGE SECURITY ENVIRONMENT」を用いる暗号化プロトコルとして「ＳＣＰ１０」を設定し、第１の暗号通信処理部１１０が合計３通りの暗号化プロトコルに対応するような設定を行った場合、コマンド文字列情報が、「INITIALIZE UPDATE」，「ENVELOPE」，「MANAGE SECURITY ENVIRONMENT」のいずれかであるかを認識することにより、１つの暗号化プロトコルを特定することが可能になる。
【０１６３】
なお、図９に示す実施例の場合、第１の暗号鍵格納部１２０の各格納場所（鍵テーブル上の各行）には、それぞれキーＩＤによって特定される複数の格納庫（鍵テーブル上の各セル）が用意されており、これら複数の格納庫の全部もしくは一部に、それぞれ別個の暗号鍵が格納されている。これは、複数の暗号鍵を必要とする暗号化プロトコルに対応するための配慮である。
【０１６４】
このように、１つの格納場所（鍵テーブル上の１行）に複数の格納庫（鍵テーブル上の各セル）を用意し、個々の格納庫にそれぞれ別個の暗号鍵を格納できるようにしておけば、複数の暗号鍵を必要とする暗号化プロトコルに対応することが可能になる。この場合、第１の暗号通信処理部１１０は、暗号通信路開設コマンドＣＭＤに含まれるキーバージョン番号によって特定される格納場所（鍵テーブル上の特定の行）内の格納庫（当該特定の行に所属する各セル）のうち、暗号通信路開設コマンドＣＭＤに含まれるコマンド文字列情報に対応する暗号化プロトコルによって予め定められている所定のキーＩＤによって特定される格納庫に格納されている暗号鍵を利用して暗号通信路を開設することになる。
【０１６５】
たとえば、暗号化プロトコルＳＣＰ０１の場合、３組の暗号鍵が用いられるので、予めキーＩＤ「０ｘ０１〜０ｘ０３」で特定される３つの暗号鍵を用いることを定めておけばよい。そうすれば、暗号化プロトコルＳＣＰ０１が指定された場合には、キーＩＤ「０ｘ０１〜０ｘ０３」で特定されるセルに格納されている３組の暗号鍵を読出して利用することができる。
【０１６６】
このように第３の実施形態に係る発明は、２組の情報処理装置のうちの一方がＩＣカードである場合に適しており、暗号通信路開設コマンドに含まれるコマンド文字列情報によって暗号化プロトコルを指定する方法を採用しているため、ＩＣカードについての国際的な仕様に準拠した暗号通信路開設コマンドを用いて、特定の暗号化プロトコルの選択をＩＣカード側に伝達することが可能になる。
【０１６７】
＜＜＜  §４．  方法発明としての実施形態  ＞＞＞
最後に、本発明を暗号通信方法という方法発明として把握した場合の実施形態を述べておく。図１４は、本発明に係る暗号通信方法の基本手順を示す流れ図である。この暗号通信方法は、第１の情報処理装置と第２の情報処理装置との間で、所定の暗号化プロトコルに基づいた暗号通信を行う暗号通信方法であり、図示のとおり、プログラム準備段階Ｓ１１，暗号鍵格納段階Ｓ１２，暗号通信路開設指示段階Ｓ１３，暗号通信路開設段階Ｓ１４，暗号通信段階Ｓ１５という各段階によって構成される。なお、この図１４の流れ図における各ステップを示すブロックの右側の記載は、当該ステップが、図６に示す第１の情報処理装置１００によって実行される手順であるのか、第２の情報処理装置２００Ａによって実行される手順であるのかを示している。
【０１６８】
ステップＳ１１のプログラム準備段階は、第１の情報処理装置１００が、複数Ｎ通り（Ｎ≧２）の暗号化プロトコルに基づく暗号通信を行うプログラムを実行可能な状態に準備する段階である。具体的には、第１の情報処理装置１００が、ＳＩＭ１１のようなＩＣカードからなる場合、暗号通信機能はＳＤプログラムによって実現される。したがって、このステップＳ１１のプログラム準備段階は、ＳＤプログラムをインストールする処理によって行われる。従来は、ＳＤプログラムをインストールする際に、１つの暗号化プロトコルを選択し、当該ＳＤプログラムについては、専ら、この選択された特定の暗号化プロトコルを用いた「暗号通信路の開設」が行われるようにしていたが、本発明の場合、ＳＤプログラムのインストール時に、複数Ｎ通りの暗号化プロトコルに基づく暗号通信が可能になるようにする。
【０１６９】
ステップＳ１２の暗号鍵格納段階は、第１の情報処理装置１００が、暗号鍵を格納するための複数の格納場所に、複数Ｎ通りの暗号化プロトコルのそれぞれに用いられる暗号鍵を格納する段階である。具体的には、第１の暗号鍵格納部１２０に、図３に示すような鍵テーブルＴが格納されることになる。
【０１７０】
ステップＳ１３の暗号通信路開設指示段階は、第２の情報処理装置２００Ａが、第１の情報処理装置１００に対して、ステップＳ１１のプログラム準備段階で準備されたＮ通りの暗号化プロトコルから選択された特定の暗号化プロトコルに基づいて、ステップＳ１２の暗号鍵格納段階で特定の格納場所に格納された特定の暗号鍵を用いた暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドＣＭＤを送信する段階である。この暗号通信路開設指示段階では、特定の暗号化プロトコルを指定するためのプロトコル指定情報と、特定の暗号鍵を指定するための暗号鍵指定情報と、を含んだ暗号通信路開設コマンドＣＭＤが送信されることになる。
【０１７１】
ステップＳ１４の暗号通信路開設段階は、第１の情報処理装置１００が、受信した暗号通信路開設コマンドＣＭＤに基づいて、特定の暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設する段階である。すなわち、暗号通信路開設コマンドＣＭＤに含まれているプロトコル指定情報によって指定された暗号化プロトコルおよび暗号通信路開設コマンドＣＭＤに含まれている暗号鍵指定情報によって指定された暗号鍵を利用して暗号通信を行うための暗号通信路を開設する処理が行われる。ここで、暗号通信路を開設する処理とは、実際には、特定の暗号鍵を用いて特定の暗号化プロトコルにより、送信データを暗号化し、受信データを復号するための準備を行う処理ということになる。
【０１７２】
ステップＳ１５の暗号通信段階は、第１の情報処理装置１００および第２の情報処理装置２００Ａが、ステップＳ１４で開設された暗号通信路を介して暗号通信を行う段階である。実際には、送信時には、送信データを暗号化して送信し、受信時には、受信データを復号して取り込む処理が行われる。
【０１７３】
§３では、この流れ図に示す手順のうち、ステップＳ１３の暗号通信路開設指示段階の処理を行う場合に、GlobalPlatform （登録商標）等の国際的な仕様に準拠しつつ、ＩＣカード（第１の情報処理装置１００）側にプロトコル指定情報を伝達することができる具体的な実施形態を３通り述べた。ここでは、この３通りの実施形態を、暗号通信方法という方法発明として把握して説明する。
【０１７４】
まず、第１の実施形態では、ステップＳ１２の暗号鍵格納段階において、Ｎ通りの暗号化プロトコルに対応づけられたＮ個の格納ゾーンを設定し、第ｉ番目（１≦ｉ≦Ｎ）の格納ゾーンＺｉに所属する格納場所には、第ｉ番目の暗号化プロトコルＰｉに用いる暗号鍵を格納する処理を行い、ステップＳ１３の暗号通信路開設指示段階において、特定の暗号鍵の格納場所を示す格納場所指定情報（キーバージョン番号）を含んだ暗号通信路開設コマンドＣＭＤを送信する。そして、ステップＳ１４の暗号通信路開設段階において、暗号通信路開設コマンドＣＭＤに含まれている格納場所指定情報（キーバージョン番号）を、プロトコル指定情報および暗号鍵指定情報の双方の役割を兼ねた情報として認識し、当該格納場所指定情報（キーバージョン番号）によって示された格納場所に格納されている暗号鍵を用いて、当該格納場所指定情報（キーバージョン番号）によって示された格納場所が所属する格納ゾーンに対応する暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設すればよい。
【０１７５】
一方、第２の実施形態では、ステップＳ１２の暗号鍵格納段階において、暗号化演算に用いられる鍵値データＶと、暗号アルゴリズムの種別を示す種別情報Ａと、を含む暗号鍵を格納し、ステップＳ１３の暗号通信路開設指示段階において、特定の暗号鍵の格納場所を示す格納場所指定情報（キーバージョン番号）を含んだ暗号通信路開設コマンドＣＭＤを送信する。そして、ステップＳ１４の暗号通信路開設段階において、暗号通信路開設コマンドＣＭＤに含まれている格納場所指定情報（キーバージョン番号）を、プロトコル指定情報および暗号鍵指定情報の双方の役割を兼ねた情報として認識し、当該格納場所指定情報（キーバージョン番号）によって示された格納場所に格納されている暗号鍵に含まれている鍵値データＶを用いて、当該暗号鍵に含まれている種別情報Ａによって示された暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設すればよい。
【０１７６】
最後に、第３の実施形態では、ステップＳ１３の暗号通信路開設指示段階において、特定の暗号化プロトコルに基づく暗号通信路の開設を指示する文字列を示すコマンド文字列情報と、特定の暗号鍵の格納場所を示す格納場所指定情報（キーバージョン番号）と、を含んだ暗号通信路開設コマンドＣＭＤを送信する。そして、ステップＳ１４の暗号通信路開設段階において、暗号通信路開設コマンドＣＭＤに含まれているコマンド文字列情報をプロトコル指定情報として認識し、暗号通信路開設コマンドＣＭＤに含まれている格納場所指定情報（キーバージョン番号）を暗号鍵指定情報として認識することにより、当該格納場所指定情報（キーバージョン番号）によって示された格納場所に格納されている暗号鍵を用いて、当該コマンド文字列情報に対応する暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設すればよい。
【符号の説明】
【０１７７】
１０，１０Ａ〜１０Ｃ：スマートフォン
１１：ＳＩＭカード
２０：外部サーバ
１００：第１の情報処理装置
１１０：第１の暗号通信処理部
１２０：第１の暗号鍵格納部
２００，２００Ａ〜２００Ｃ：第２の情報処理装置
２１０Ａ〜２１０Ｃ：第２の暗号通信処理部
２２０Ａ〜２２０Ｃ：第２の暗号鍵格納部
２３０Ａ〜２３０Ｃ：暗号通信路開設指示部
Ａ：種別情報
ＡＰ１〜ＡＰ３：アプリケーションプログラム
ＣＭＤ：暗号通信路開設コマンド
Ｋｅｙ，ＫｅｙＡ〜ＫｅｙＲ：暗号鍵
Ｋｅｙｓ，Ｋｅｙｓ１１〜Ｋｅｙｓ１４：暗号鍵群
Ｌ：鍵長
Ｌ１１〜Ｌ１４：格納場所
Ｐ１，Ｐ２，Ｐｉ，ＰＮ，ＰＭ：暗号化プロトコル
Ｒ１，Ｒ２：暗号通信路開設ルーチン
Ｓ１〜Ｓ６：ダイアグラムの各ステップ
Ｓ１１〜Ｓ１５：流れ図の各ステップ
Ｔ，Ｔ１，Ｔ２：鍵テーブル
Ｖ：鍵値データ
Ｚ１，Ｚｉ，ＺＮ：格納ゾーン
【図１】
0006540381.tif 000002
【図２】
0006540381.tif 000003
【図３】
0006540381.tif 000004
【図４】
0006540381.tif 000005
【図５】
0006540381.tif 000006
【図６】
0006540381.tif 000007
【図７】
0006540381.tif 000008
【図８】
0006540381.tif 000009
【図９】
0006540381.tif 000010
【図１０】
0006540381.tif 000011
【図１１】
0006540381.tif 000012
【図１２】
0006540381.tif 000013
【図１３】
0006540381.tif 000014
【図１４】
0006540381.tif 000015