(57)【特許請求の範囲】
【請求項１】
外部装置との間で暗号通信を行う機能を有する情報処理装置であって、
前記外部装置から与えられる暗号通信路開設コマンドに基づいて、前記外部装置との間に所定の暗号アルゴリズムを利用した暗号通信路を開設し、前記外部装置に対して暗号通信を行う暗号通信処理部と、
前記暗号通信を行う際の暗号処理に利用する鍵値データと、当該暗号処理に利用する暗号アルゴリズムを示す種別情報と、を含む暗号鍵を、複数通り収容可能な鍵テーブルを格納する鍵テーブル格納部と、
前記外部装置から与えられる書込コマンドに基づいて、前記鍵テーブルに新たな暗号鍵を書き込む暗号鍵書込処理を実行する暗号鍵書込処理部と、
前記鍵テーブルに収容されている複数通りの暗号鍵のうちのデフォルト暗号鍵を特定するためのデフォルト情報を設定し、これを保持するデフォルト情報設定部と、
複数通りの暗号アルゴリズムについて、セキュリティ強度の順位を示すセキュリティ強度順位リストを格納した順位リスト格納部と、
を備え、
前記暗号通信処理部は、前記暗号通信路開設コマンドに、前記鍵テーブルに収容されている特定の暗号鍵を指定する暗号鍵指定情報が含まれていた場合には、指定された当該特定の暗号鍵を用いて暗号通信路を開設し、前記暗号鍵指定情報が含まれていなかった場合には、前記デフォルト情報で特定されるデフォルト暗号鍵を用いて暗号通信路を開設し、
前記デフォルト情報設定部は、前記暗号鍵書込処理部が新たな暗号鍵の書き込みを行う際に、書込対象となる暗号鍵に含まれている種別情報によって示される暗号アルゴリズムの前記セキュリティ強度順位リスト上での順位が所定の採用条件を満たしているか否かを確認し、当該採用条件を満たしていることを前提として、前記書込対象となる暗号鍵をデフォルト暗号鍵として特定するためのデフォルト情報を設定することを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
鍵テーブルが、複数通りの暗号鍵を、それぞれ固有のキーバージョン番号に対応づけて収容しており、
デフォルト情報設定部が、特定のキーバージョン番号をデフォルト情報として設定し、
暗号通信処理部が、暗号通信路開設コマンドに、特定の暗号鍵を示すキーバージョン番号が暗号鍵指定情報として含まれていた場合には、当該キーバージョン番号に対応づけられた暗号鍵を用いて暗号通信路を開設し、特定の暗号鍵を示すキーバージョン番号が含まれていなかった場合には、前記デフォルト情報として設定されているキーバージョン番号に対応づけられたデフォルト暗号鍵を用いて暗号通信路を開設することを特徴とする情報処理装置。
【請求項３】
請求項２に記載の情報処理装置において、
鍵テーブルが、１つのキーバージョン番号に対応づけて、複数組の暗号鍵を収容しており、
暗号通信処理部が、暗号通信路開設コマンドに、特定の暗号鍵を示すキーバージョン番号が暗号鍵指定情報として含まれていた場合には、当該キーバージョン番号に対応づけられた複数組の暗号鍵を用いて暗号通信路を開設し、特定の暗号鍵を示すキーバージョン番号が含まれていなかった場合には、デフォルト情報として設定されているキーバージョン番号に対応づけられた複数組のデフォルト暗号鍵を用いて暗号通信路を開設することを特徴とする情報処理装置。
【請求項４】
請求項１〜３のいずれかに記載の情報処理装置において、
デフォルト情報設定部には、セキュリティ強度順位リストに関する所定の基準順位が設定されており、
前記デフォルト情報設定部が、書込対象となる暗号鍵に含まれている種別情報によって示される暗号アルゴリズムの前記セキュリティ強度順位リスト上での順位が、前記基準順位以上となることを採用条件とすることを特徴とする情報処理装置。
【請求項５】
請求項４に記載の情報処理装置において、
デフォルト情報設定部が、暗号鍵書込処理部によって最初の暗号鍵の書込処理が実行されようとしたときに、書込対象となる暗号鍵に含まれている種別情報によって示される暗号アルゴリズムの順位をセキュリティ強度順位リスト上で確認し、確認された順位が所定の基準順位以上であった場合には前記書込処理を許可し、確認された順位が所定の基準順位未満であった場合には前記書込処理を禁止する判定処理を行い、
暗号鍵書込処理部が、デフォルト情報設定部によって書込処理が許可された場合には、前記最初の暗号鍵の書込処理を実行し、デフォルト情報設定部によって書込処理が禁止された場合には、前記最初の暗号鍵の書込処理を実行せずに、当該暗号鍵の書込コマンドを与えた外部装置に対して、エラーを示すレスポンスを返す処理を行い、
デフォルト情報設定部が、鍵テーブルに最初に書き込まれた暗号鍵をデフォルト暗号鍵とするデフォルト情報の設定を行うことを特徴とする情報処理装置。
【請求項６】
請求項５に記載の情報処理装置において、
暗号鍵書込処理部が、
外部装置から暗号鍵の書込コマンドが与えられたときに、鍵テーブルを参照することにより暗号鍵の書き込みが既に行われているか否かを判断し、
暗号鍵の書き込みが行われていないときには、デフォルト情報設定部によって書込処理が許可されたことを実行条件として前記書込コマンドを実行し、書込処理が禁止された場合は前記書込処理を実行せずに外部装置に対してエラーを示すレスポンスを返す処理を行い、
暗号鍵の書き込みが既に行われていたときには、前記実行条件に関わらず、前記書込コマンドを実行することを特徴とする情報処理装置。
【請求項７】
請求項５に記載の情報処理装置において、
暗号鍵書込処理部が、
未書込／書込済のいずれか２値の状態を示す書込フラグを有し、最初の暗号鍵の書込処理が実行されたときに、前記書込フラグを未書込の状態から書込済の状態に書き替える処理を行い、
外部装置から暗号鍵の書込コマンドが与えられたときに、
前記書込フラグが未書込の状態のときには、デフォルト情報設定部によって書込処理が許可されたことを実行条件として前記書込コマンドを実行し、書込処理が禁止された場合は前記書込コマンドを実行せずに外部装置に対してエラーを示すレスポンスを返す処理を行い、
前記書込フラグが書込済の状態のときには、前記実行条件に関わらず、前記書込コマンドを実行することを特徴とする情報処理装置。
【請求項８】
請求項４に記載の情報処理装置において、
デフォルト情報設定部が、暗号鍵書込処理部によって新たな暗号鍵の書込処理が実行されたときに、デフォルト情報が未設定であった場合には、書込対象となった暗号鍵に含まれる種別情報によって示される暗号アルゴリズムの順位をセキュリティ強度順位リスト上で確認し、確認された順位が所定の基準順位以上であった場合には、書込対象となった暗号鍵をデフォルト暗号鍵とするデフォルト情報の設定を行い、確認された順位が所定の基準順位未満であった場合には、デフォルト情報を未設定の状態のままとする処理を行い、
暗号通信処理部が、外部装置から暗号通信路開設コマンドが与えられたときに、前記暗号通信路開設コマンドに暗号鍵指定情報が含まれておらず、かつ、デフォルト情報設定部にデフォルト情報が設定されていなかった場合には、前記暗号通信路開設コマンドを実行せずに前記外部装置に対してエラーを示すレスポンスを返す処理を行うことを特徴とする情報処理装置。
【請求項９】
請求項８に記載の情報処理装置において、
デフォルト情報設定部が、暗号鍵書込処理部によって新たな暗号鍵の書込処理が実行されたときに、デフォルト情報が設定済であった場合には、デフォルト情報の設定をそのままの状態とすることを特徴とする情報処理装置。
【請求項１０】
請求項４〜９のいずれかに記載の情報処理装置において、
デフォルト情報設定部が、外部装置から与えられる基準順位設定コマンドに基づいて、セキュリティ強度順位リストに関する基準順位を新規設定もしくは更新設定する機能を有することを特徴とする情報処理装置。
【請求項１１】
請求項１〜３のいずれかに記載の情報処理装置において、
デフォルト情報設定部が、暗号鍵書込処理部によって新たな暗号鍵の書込処理が実行されたときに、書込対象となった暗号鍵に含まれる種別情報によって示される第１の暗号アルゴリズムの順位と、その時点で設定されているデフォルト情報によって特定されるデフォルト暗号鍵に含まれる種別情報によって示される第２の暗号アルゴリズムの順位とを、セキュリティ強度順位リスト上で比較し、第１の暗号アルゴリズムの順位が第２の暗号アルゴリズムの順位よりも高い場合には、書込対象となった暗号鍵を新たなデフォルト暗号鍵とするデフォルト情報の更新設定を行うことを特徴とする情報処理装置。
【請求項１２】
請求項１１に記載の情報処理装置において、
デフォルト情報設定部が、暗号鍵書込処理部によって新たな暗号鍵の書込処理が実行されたときに、その時点ではまだデフォルト情報が設定されていない場合には、書込対象となった暗号鍵をデフォルト暗号鍵とするデフォルト情報の新規設定を行うことを特徴とする情報処理装置。
【請求項１３】
請求項１〜１２のいずれかに記載の情報処理装置において、
順位リスト格納部が、外部装置から与えられる順位リスト設定コマンドに基づいて、セキュリティ強度順位リストを新規設定もしくは更新設定する機能を有することを特徴とする情報処理装置。
【請求項１４】
請求項１〜１３のいずれかに記載の情報処理装置において、
複数の管理プログラムが組み込まれており、個々の管理プログラムおよび必要に応じてＯＳプログラムの一部によって、それぞれ暗号通信処理部と、鍵テーブル格納部と、暗号鍵書込処理部と、デフォルト情報設定部と、順位リスト格納部と、が構築されており、
外部装置からコマンドが与えられたときに、前記コマンドに含まれるプログラム選択情報に基づいて特定の管理プログラムの選択が行われ、選択された管理プログラムによって構築された構成要素により、前記コマンドの処理が行われることを特徴とする情報処理装置。
【請求項１５】
請求項１４に記載の情報処理装置において、
複数の管理プログラムに共通して利用される共通セキュリティ強度順位リストを格納した共通順位リスト格納部を更に有し、
個々の管理プログラムによって構築される個別の順位リスト格納部が、前記共通セキュリティ強度順位リストの情報を取捨選択して個別セキュリティ強度順位リストを作成する機能を有し、
個々の管理プログラムによって構築される個別のデフォルト情報設定部が、前記個別セキュリティ強度順位リストを用いて、採用条件を満たしているか否かを確認することを特徴とする情報処理装置。
【請求項１６】
請求項１〜１５のいずれかに記載の情報処理装置において、
順位リスト格納部が、各暗号アルゴリズムについてのセキュリティ強度の順位を示すリストに代えて、各暗号アルゴリズムを利用して実行される暗号処理の具体的な手順を定める暗号化プロトコルについてのセキュリティ強度の順位を示すリストをセキュリティ強度順位リストとして格納しており、
暗号鍵書込処理部が、外部装置から与えられる書込コマンドに基づいて、鍵テーブルに新たな暗号鍵を書き込む暗号鍵書込処理を実行するときに、書込対象となる暗号鍵を利用して実行される暗号化プロトコルを認識する機能を有し、
デフォルト情報設定部が、書込対象となる暗号鍵についての暗号アルゴリズムの順位に代えて暗号化プロトコルの順位を用いて採用条件を満たしているか否かの確認を行うことを特徴とする情報処理装置。
【請求項１７】
請求項１〜１６のいずれかに記載の情報処理装置において、
セキュリティ強度順位リスト、共通セキュリティ強度順位リスト、個別セキュリティ強度順位リストの中に、複数の暗号アルゴリズムもしくは複数の暗号化プロトコルを同順位に収容するリストが含まれていることを特徴とする情報処理装置。
【請求項１８】
請求項１〜１７のいずれかに記載の情報処理装置において、
デフォルト情報設定部が、開設された暗号通信路に対するセキュリティ脅威を検知する機能を有し、現デフォルト情報によって特定される現デフォルト暗号鍵を利用して開設中の暗号通信路に対するセキュリティ脅威が所定の警戒レベル以上となったときに、セキュリティ強度順位リスト上での順位が、前記現デフォルト暗号鍵に関する順位に近い別な暗号鍵を新たなデフォルト暗号鍵とするデフォルト情報の更新設定を行うことを特徴とする情報処理装置。
【請求項１９】
請求項１〜１８のいずれかに記載の情報処理装置において、
デフォルト情報設定部が、外部装置から与えられるデフォルト情報設定コマンドに基づいて、デフォルト情報を新規設定もしくは更新設定する機能を有することを特徴とする情報処理装置。
【請求項２０】
請求項１〜１９のいずれかに記載の情報処理装置によって構成されるＳＩＭカードであって、外部装置としてのスマートフォンもしくは外部サーバとの間で暗号通信を行う機能を有するＳＩＭカード。
【請求項２１】
請求項１〜１９のいずれかに記載の情報処理装置として、コンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、特に、外部装置との間に暗号通信路を開設して暗号通信を行う機能を備えた情報処理装置に関する。
【背景技術】
【０００２】
情報処理装置が外部装置との間で情報のやりとりを行う場合、通信の安全性を確保するために、両者間にセキュアな暗号通信路を開設し、この暗号通信路を介して暗号通信を行うことが欠かせない。特に、スマートフォンやＩＣカードなどの携帯型の情報処理装置では、紛失によって悪意をもった者の手に渡る可能性があるため、十分なセキュリティ対策を講じておく必要がある。
【０００３】
最近は、スマートフォンをはじめとする携帯型端末装置が普及しており、これらの端末装置には、通常、ＳＩＭカードやＵＩＭカードと呼ばれているＩＣカードが装着されている。そしてこのＩＣカードと端末装置、あるいは、このＩＣカードと外部のサーバ装置との間で、所定の通信路を介して情報のやりとりが行われる。このとき、当該情報が機密性を有するものである場合には、セキュアな通信路を開設して暗号化された情報のやりとりを行う必要がある。
【０００４】
このような事情から、ＩＣカードと外部装置との間にセキュアな通信路を開設して暗号通信を行う様々な方法が提案されている。たとえば、下記の特許文献１には、所定の変換アルゴリズムに基づくデータ変換処理機能を有するプロキシ装置を介した通信を行うことにより、機密情報の漏洩を防止する技術が開示されている。また、特許文献２には、インターネットを介してＩＣカードとサーバ装置との間で情報のやりとりを行う際に、公開鍵暗号方式を利用した暗号化通信を行う技術が開示されており、特許文献３には、そのような暗号化通信の最中に、セキュリティに関わる異常発生が検知された場合に、速やかにシステム復旧処理を行う技術が開示されている。
【０００５】
一方、特許文献４には、サーバ装置側に、ＩＣカードと１対１に対応するＩＣカード対応領域を設け、このＩＣカード対応領域と利用者端末装置との間にセキュアな通信路を設定してサーバ装置とＩＣカードとを一体化する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−０５５９６１号公報
【特許文献２】特開２００２−２１７８９５号公報
【特許文献３】特開２００６−１９０２２２号公報
【特許文献４】特開２０１０−０７３１８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
情報処理装置と外部装置との間にセキュアな暗号通信路を開設するためには、両方の装置に、共通の暗号アルゴリズムおよび共通の暗号鍵を用いた暗号通信処理機能をもたせる必要がある。すなわち、送信側では所定の暗号鍵および所定の暗号アルゴリズムを用いて、送信対象となる情報を暗号化して送り出し、受信側では、受信した暗号化情報を、送信側と同じ暗号鍵および暗号アルゴリズムを用いて復号することになる。このため、情報処理装置および外部装置には、予め、特定の暗号鍵および特定の暗号アルゴリズムを用いた暗号通信処理機能が組み込まれることになる。
【０００８】
しかしながら、近年、情報処理装置の通信相手は多様化してきており、１つのＩＣカードが、種々の状況に応じて、複数の相手と通信するケースも少なくない。たとえば、スマートフォンに装着されたＩＣカード（ＳＩＭカードやＵＩＭカード）の場合、外部装置としてのスマートフォンには複数のアプリケーションプログラムが組み込まれているため、これら複数のアプリケーションプログラムとの間で情報のやりとりを行う必要が生じる。この場合、ハードウェア上は、ＩＣカードとスマートフォンとの間の二者通信ということになるが、ソフトウェア上は、ＩＣカード側のプログラムとスマートフォン側の個々のアプリケーションプログラムとの間の個別の通信が行われることになる。
【０００９】
このような事情から、最近は、異なる暗号アルゴリズムに基づく複数通りの暗号化プロトコルに対応した情報処理装置や、複数通りの暗号鍵の中の任意の暗号鍵を用いて暗号処理を実行可能な情報処理装置が一般化してきている。たとえば、１つのＩＣカードに、予め、複数通りの暗号鍵を格納しておけば、当該ＩＣカードと通信を行う外部装置の都合に応じて（たとえば、スマートフォン内のアプリケーションプログラムの都合に応じて）、その都度、任意の暗号鍵を選択して暗号通信を行うことができるようになる。
【００１０】
現在、広く普及しているJava Card（商標）やGlobalPlatform （登録商標）などの仕様に準拠したＩＣカードでは、ＳＤ（Security Domain）と呼ばれる管理プログラムによって、外部装置との間の暗号通信処理が実行される。この管理プログラムは、ＯＳの管理下にインストールされるアプリケーションプログラムのひとつであるが、暗号通信処理を始めとして、様々な管理機能を有している。
【００１１】
このGlobalPlatform （登録商標）の仕様に準拠したＩＣカードでは、複数通りの暗号鍵を鍵テーブルに書き込むことが可能であり、実際に暗号通信路を開設する際には、外部装置から与えられる暗号通信路開設コマンドによって、これら複数通りの暗号鍵の中から、特定の暗号鍵の指定を受けることになる。管理プログラムは、指定された特定の暗号鍵を用いて暗号通信路の開設処理を行う。ただ、暗号通信路開設コマンドによって暗号鍵の指定がなされなかったケースも考慮して、鍵テーブルに最初に書き込まれた暗号鍵をデフォルト暗号鍵に設定する仕様が定められており、暗号鍵の指定がなされていない暗号通信路開設コマンドが与えられた場合には、デフォルト暗号鍵を用いた暗号通信路の開設処理が行われる。
【００１２】
このように、デフォルト暗号鍵を設定しておく仕様を採用すれば、暗号通信路を開設するたびに、毎回、特定の暗号鍵を指定する手間を省くことができるため、手順を簡略化することができる。しかしながら、暗号鍵の選択は、暗号アルゴリズムの選択を意味し、特定の暗号鍵を選択すると、当該暗号鍵の利用を想定した特定の暗号アルゴリズムが選択されることになる。しかも、各暗号アルゴリズムは、それぞれセキュリティ強度が異なっており、セキュリティの高い暗号アルゴリズムもあれば、セキュリティの低い暗号アルゴリズムもある。当然ながら、デフォルト暗号鍵によって選択される暗号アルゴリズムのセキュリティ強度が低いと、開設される暗号通信路のセキュリティ強度も低くならざるを得ない。
【００１３】
もちろん、情報処理装置と外部装置との間でやり取りされる情報が、それほど機密性を有していない情報であれば、セキュリティ強度の低い暗号通信路を介した通信を行っても問題はない。したがって、セキュリティ強度の低い暗号通信路を開設するために、意図的に、暗号通信路開設コマンドによって特定の暗号鍵（セキュリティ強度の低い暗号アルゴリズムによって利用される暗号鍵）を選択するのであれば問題はない。
【００１４】
しかしながら、「暗号通信路開設時における暗号鍵の指定作業が面倒」という単純な理由で、暗号通信路開設コマンドによる暗号鍵の指定を省略してしまう場合も少なくない。実際には、上記単純な理由で、暗号鍵の指定を省略してしまうケースが大半であると予想される。したがって、デフォルト暗号鍵（GlobalPlatform （登録商標）の仕様の場合、鍵テーブルに最初に書き込まれた暗号鍵）によって選択される暗号アルゴリズムのセキュリティ強度が低いと、大半の暗号通信がセキュリティ強度の低い暗号通信路を介して行われることになってしまう。
【００１５】
そこで本発明は、複数通りの暗号鍵を選択的に利用して暗号通信路を開設する機能を有する情報処理装置において、選択指示がなかったときに利用されるデフォルト暗号鍵に基づいて開設される暗号通信路のセキュリティ強度をできるだけ高めることを目的とする。
【課題を解決するための手段】
【００１６】
(1)   本発明の第１の態様は、外部装置との間で暗号通信を行う機能を有する情報処理装置において、
外部装置から与えられる暗号通信路開設コマンドに基づいて、外部装置との間に所定の暗号アルゴリズムを利用した暗号通信路を開設し、外部装置に対して暗号通信を行う暗号通信処理部と、
暗号通信を行う際の暗号処理に利用する鍵値データと、当該暗号処理に利用する暗号アルゴリズムを示す種別情報と、を含む暗号鍵を、複数通り収容可能な鍵テーブルを格納する鍵テーブル格納部と、
外部装置から与えられる書込コマンドに基づいて、鍵テーブルに新たな暗号鍵を書き込む暗号鍵書込処理を実行する暗号鍵書込処理部と、
鍵テーブルに収容されている複数通りの暗号鍵のうちのデフォルト暗号鍵を特定するためのデフォルト情報を設定し、これを保持するデフォルト情報設定部と、
複数通りの暗号アルゴリズムについて、セキュリティ強度の順位を示すセキュリティ強度順位リストを格納した順位リスト格納部と、
を設け、
暗号通信処理部は、暗号通信路開設コマンドに、鍵テーブルに収容されている特定の暗号鍵を指定する暗号鍵指定情報が含まれていた場合には、指定された当該特定の暗号鍵を用いて暗号通信路を開設し、暗号鍵指定情報が含まれていなかった場合には、デフォルト情報で特定されるデフォルト暗号鍵を用いて暗号通信路を開設し、
デフォルト情報設定部は、暗号鍵書込処理部が新たな暗号鍵の書き込みを行う際に、書込対象となる暗号鍵に含まれている種別情報によって示される暗号アルゴリズムのセキュリティ強度順位リスト上での順位が所定の採用条件を満たしているか否かを確認し、当該採用条件を満たしていることを前提として、書込対象となる暗号鍵をデフォルト暗号鍵として特定するためのデフォルト情報を設定するようにしたものである。
【００１７】
(2)   本発明の第２の態様は、上述した第１の態様に係る情報処理装置において、
鍵テーブルが、複数通りの暗号鍵を、それぞれ固有のキーバージョン番号に対応づけて収容しており、
デフォルト情報設定部が、特定のキーバージョン番号をデフォルト情報として設定し、
暗号通信処理部が、暗号通信路開設コマンドに、特定の暗号鍵を示すキーバージョン番号が暗号鍵指定情報として含まれていた場合には、当該キーバージョン番号に対応づけられた暗号鍵を用いて暗号通信路を開設し、特定の暗号鍵を示すキーバージョン番号が含まれていなかった場合には、デフォルト情報として設定されているキーバージョン番号に対応づけられたデフォルト暗号鍵を用いて暗号通信路を開設するようにしたものである。
【００１８】
(3)   本発明の第３の態様は、上述した第２の態様に係る情報処理装置において、
鍵テーブルが、１つのキーバージョン番号に対応づけて、複数組の暗号鍵を収容しており、
暗号通信処理部が、暗号通信路開設コマンドに、特定の暗号鍵を示すキーバージョン番号が暗号鍵指定情報として含まれていた場合には、当該キーバージョン番号に対応づけられた複数組の暗号鍵を用いて暗号通信路を開設し、特定の暗号鍵を示すキーバージョン番号が含まれていなかった場合には、デフォルト情報として設定されているキーバージョン番号に対応づけられた複数組のデフォルト暗号鍵を用いて暗号通信路を開設するようにしたものである。
【００１９】
(4)   本発明の第４の態様は、上述した第１〜第３の態様に係る情報処理装置において、
デフォルト情報設定部には、セキュリティ強度順位リストに関する所定の基準順位が設定されており、
デフォルト情報設定部が、書込対象となる暗号鍵に含まれている種別情報によって示される暗号アルゴリズムのセキュリティ強度順位リスト上での順位が、基準順位以上となることを採用条件とするようにしたものである。
【００２０】
(5)   本発明の第５の態様は、上述した第４の態様に係る情報処理装置において、
デフォルト情報設定部が、暗号鍵書込処理部によって最初の暗号鍵の書込処理が実行されようとしたときに、書込対象となる暗号鍵に含まれている種別情報によって示される暗号アルゴリズムの順位をセキュリティ強度順位リスト上で確認し、確認された順位が所定の基準順位以上であった場合には書込処理を許可し、確認された順位が所定の基準順位未満であった場合には書込処理を禁止する判定処理を行い、
暗号鍵書込処理部が、デフォルト情報設定部によって書込処理が許可された場合には、上記最初の暗号鍵の書込処理を実行し、デフォルト情報設定部によって書込処理が禁止された場合には、上記最初の暗号鍵の書込処理を実行せずに、当該暗号鍵の書込コマンドを与えた外部装置に対して、エラーを示すレスポンスを返す処理を行い、
デフォルト情報設定部が、鍵テーブルに最初に書き込まれた暗号鍵をデフォルト暗号鍵とするデフォルト情報の設定を行うようにしたものである。
【００２１】
(6)   本発明の第６の態様は、上述した第５の態様に係る情報処理装置において、
暗号鍵書込処理部が、
外部装置から暗号鍵の書込コマンドが与えられたときに、鍵テーブルを参照することにより暗号鍵の書き込みが既に行われているか否かを判断し、
暗号鍵の書き込みが行われていないときには、デフォルト情報設定部によって書込処理が許可されたことを実行条件として上記書込コマンドを実行し、書込処理が禁止された場合は上記書込処理を実行せずに外部装置に対してエラーを示すレスポンスを返す処理を行い、
暗号鍵の書き込みが既に行われていたときには、上述した実行条件に関わらず、上記書込コマンドを実行するようにしたものである。
【００２２】
(7)   本発明の第７の態様は、上述した第５の態様に係る情報処理装置において、
暗号鍵書込処理部が、
未書込／書込済のいずれか２値の状態を示す書込フラグを有し、最初の暗号鍵の書込処理が実行されたときに、書込フラグを未書込の状態から書込済の状態に書き替える処理を行い、
外部装置から暗号鍵の書込コマンドが与えられたときに、
書込フラグが未書込の状態のときには、デフォルト情報設定部によって書込処理が許可されたことを実行条件として上記書込コマンドを実行し、書込処理が禁止された場合は上記書込コマンドを実行せずに外部装置に対してエラーを示すレスポンスを返す処理を行い、
書込フラグが書込済の状態のときには、上述した実行条件に関わらず、上記書込コマンドを実行するようにしたものである。
【００２３】
(8)   本発明の第８の態様は、上述した第４の態様に係る情報処理装置において、
デフォルト情報設定部が、暗号鍵書込処理部によって新たな暗号鍵の書込処理が実行されたときに、デフォルト情報が未設定であった場合には、書込対象となった暗号鍵に含まれる種別情報によって示される暗号アルゴリズムの順位をセキュリティ強度順位リスト上で確認し、確認された順位が所定の基準順位以上であった場合には、書込対象となった暗号鍵をデフォルト暗号鍵とするデフォルト情報の設定を行い、確認された順位が所定の基準順位未満であった場合には、デフォルト情報を未設定の状態のままとする処理を行い、
暗号通信処理部が、外部装置から暗号通信路開設コマンドが与えられたときに、当該暗号通信路開設コマンドに暗号鍵指定情報が含まれておらず、かつ、デフォルト情報設定部にデフォルト情報が設定されていなかった場合には、当該暗号通信路開設コマンドを実行せずに外部装置に対してエラーを示すレスポンスを返す処理を行うようにしたものである。
【００２４】
(9)   本発明の第９の態様は、上述した第８の態様に係る情報処理装置において、
デフォルト情報設定部が、暗号鍵書込処理部によって新たな暗号鍵の書込処理が実行されたときに、デフォルト情報が設定済であった場合には、デフォルト情報の設定をそのままの状態とするようにしたものである。
【００２５】
(10)  本発明の第１０の態様は、上述した第４〜第９の態様に係る情報処理装置において、
デフォルト情報設定部が、外部装置から与えられる基準順位設定コマンドに基づいて、セキュリティ強度順位リストに関する基準順位を新規設定もしくは更新設定する機能を有するようにしたものである。
【００２６】
(11)  本発明の第１１の態様は、上述した第１〜第３の態様に係る情報処理装置において、
デフォルト情報設定部が、暗号鍵書込処理部によって新たな暗号鍵の書込処理が実行されたときに、書込対象となった暗号鍵に含まれる種別情報によって示される第１の暗号アルゴリズムの順位と、その時点で設定されているデフォルト情報によって特定されるデフォルト暗号鍵に含まれる種別情報によって示される第２の暗号アルゴリズムの順位とを、セキュリティ強度順位リスト上で比較し、第１の暗号アルゴリズムの順位が第２の暗号アルゴリズムの順位よりも高い場合には、書込対象となった暗号鍵を新たなデフォルト暗号鍵とするデフォルト情報の更新設定を行うようにしたものである。
【００２７】
(12)  本発明の第１２の態様は、上述した第１１の態様に係る情報処理装置において、
デフォルト情報設定部が、暗号鍵書込処理部によって新たな暗号鍵の書込処理が実行されたときに、その時点ではまだデフォルト情報が設定されていない場合には、書込対象となった暗号鍵をデフォルト暗号鍵とするデフォルト情報の新規設定を行うようにしたものである。
【００２８】
(13)  本発明の第１３の態様は、上述した第１〜第１２の態様に係る情報処理装置において、
順位リスト格納部が、外部装置から与えられる順位リスト設定コマンドに基づいて、セキュリティ強度順位リストを新規設定もしくは更新設定する機能を有するようにしたものである。
【００２９】
(14)  本発明の第１４の態様は、上述した第１〜第１３の態様に係る情報処理装置において、
複数の管理プログラムが組み込まれており、個々の管理プログラムおよび必要に応じてＯＳプログラムの一部によって、それぞれ暗号通信処理部と、鍵テーブル格納部と、暗号鍵書込処理部と、デフォルト情報設定部と、順位リスト格納部と、が構築されており、
外部装置からコマンドが与えられたときに、コマンドに含まれるプログラム選択情報に基づいて特定の管理プログラムの選択が行われ、選択された管理プログラムによって構築された構成要素により、コマンドの処理が行われるようにしたものである。
【００３０】
(15)  本発明の第１５の態様は、上述した第１４の態様に係る情報処理装置において、
複数の管理プログラムに共通して利用される共通セキュリティ強度順位リストを格納した共通順位リスト格納部を更に設け、
個々の管理プログラムによって構築される個別の順位リスト格納部に、共通セキュリティ強度順位リストの情報を取捨選択して個別セキュリティ強度順位リストを作成する機能をもたせ、
個々の管理プログラムによって構築される個別のデフォルト情報設定部が、個別セキュリティ強度順位リストを用いて、採用条件を満たしているか否かを確認するようにしたものである。
【００３１】
(16)  本発明の第１６の態様は、上述した第１〜第１５の態様に係る情報処理装置において、
順位リスト格納部が、各暗号アルゴリズムについてのセキュリティ強度の順位を示すリストに代えて、各暗号アルゴリズムを利用して実行される暗号処理の具体的な手順を定める暗号化プロトコルについてのセキュリティ強度の順位を示すリストをセキュリティ強度順位リストとして格納しており、
暗号鍵書込処理部が、外部装置から与えられる書込コマンドに基づいて、鍵テーブルに新たな暗号鍵を書き込む暗号鍵書込処理を実行するときに、書込対象となる暗号鍵を利用して実行される暗号化プロトコルを認識する機能を有し、
デフォルト情報設定部が、書込対象となる暗号鍵についての暗号アルゴリズムの順位に代えて暗号化プロトコルの順位を用いて採用条件を満たしているか否かの確認を行うようにしたものである。
【００３２】
(17)  本発明の第１７の態様は、上述した第１〜第１６の態様に係る情報処理装置において、
セキュリティ強度順位リスト、共通セキュリティ強度順位リスト、個別セキュリティ強度順位リストの中に、複数の暗号アルゴリズムもしくは複数の暗号化プロトコルを同順位に収容するリストが含まれているようにしたものである。
【００３３】
(18)  本発明の第１８の態様は、上述した第１〜第１７の態様に係る情報処理装置において、
デフォルト情報設定部が、開設された暗号通信路に対するセキュリティ脅威を検知する機能を有し、現デフォルト情報によって特定される現デフォルト暗号鍵を利用して開設中の暗号通信路に対するセキュリティ脅威が所定の警戒レベル以上となったときに、セキュリティ強度順位リスト上での順位が、現デフォルト暗号鍵に関する順位に近い別な暗号鍵を新たなデフォルト暗号鍵とするデフォルト情報の更新設定を行うようにしたものである。
【００３４】
(19)  本発明の第１９の態様は、上述した第１〜第１８の態様に係る情報処理装置において、
デフォルト情報設定部が、外部装置から与えられるデフォルト情報設定コマンドに基づいて、デフォルト情報を新規設定もしくは更新設定する機能を有するようにしたものである。
【００３５】
(20)  本発明の第２０の態様は、上述した第１〜第１９の態様に係る情報処理装置によってＳＩＭカードを構成し、外部装置としてのスマートフォンもしくは外部サーバとの間で暗号通信を行うようにしたものである。
【００３６】
(21)  本発明の第２１の態様は、上述した第１〜第１９の態様に係る情報処理装置を、コンピュータにプログラムを組み込むことにより構成したものである。
【発明の効果】
【００３７】
本発明に係る情報処理装置では、複数通りの暗号アルゴリズムについて、セキュリティ強度の順位を示すセキュリティ強度順位リストが用意される。そして、新たな暗号鍵の書き込みを行う際に、当該順位リストを参照して、書込対象となる暗号鍵が所定の採用条件を満たしているか否かの確認が行われ、当該採用条件を満たしていることを前提として、書込対象となる暗号鍵がデフォルト暗号鍵として採用される。したがって、複数通りの暗号鍵を選択的に利用して暗号通信路を開設する機能を有する情報処理装置において、選択指示がなかったときに利用されるデフォルト暗号鍵に基づいて開設される暗号通信路のセキュリティ強度をできるだけ高めることが可能になる。
【図面の簡単な説明】
【００３８】
【図１】一般的なスマートフォン１０，ＳＩＭカード１１，外部サーバ２０の間の情報通信の態様を示すブロック図である。
【図２】図１に示すＳＩＭカード１１（情報処理装置）と、スマートフォン１０または外部サーバ２０（外部装置）と、の間で暗号通信を行うためのプログラム構成の一例を示すブロック図である。
【図３】図２に示す鍵テーブルの具体例を示す図である。
【図４】図３に示す鍵テーブルに格納されている暗号鍵Ｋｅｙの一般的なデータ構造および当該暗号鍵を用いた暗号通信路開設コマンドのデータ構造の概要を示す図である。
【図５】図２に示すＳＩＭカード１１（情報処理装置）と、スマートフォン１０（外部装置）と、の間でやりとりされる種々のコマンドおよびこれに対するレスポンスの具体例を示すダイアグラムである。
【図６】本発明の基本的な実施形態（および第３の個別実施形態）に係る情報処理装置の構成を示すブロック図である。
【図７】本発明の第１の個別実施形態に係る情報処理装置の構成を示すブロック図である。
【図８】本発明の第２の個別実施形態に係る情報処理装置の構成を示すブロック図である。
【図９】本発明の変形例となる実施形態に係る情報処理装置の構成を示すブロック図である。
【図１０】ＳＩＭカード１１（情報処理装置）内に構築されるアプリケーションプログラムの階層構造を示すブロック図である。
【図１１】図１０に示すＳＩＭカード１１（情報処理装置）内のプログラム構成を示すブロック図である。
【図１２】複数の管理プログラムが組み込まれた実施形態に係る情報処理装置の構成を示すブロック図である。
【図１３】GlobalPlatform （登録商標）の仕様に準拠したＩＣカードに与えるいくつかの具体的なコマンドの書式例を示す図である。
【図１４】図１２に示す実施形態において、共通セキュリティ強度順位リストＬＬから個別セキュリティ強度順位リストＬＡを作成する手順を示す図である。
【図１５】各暗号化プロトコルに用いられるコマンド文字列情報と暗号アルゴリズムの種別情報との対応関係を示す表である。
【図１６】各暗号アルゴリズムを利用して実行される暗号処理の具体的な手順を定める暗号化プロトコルについてのセキュリティ強度の順位を示すセキュリティ強度順位リストＬ′の具体例を示す図である。
【図１７】本発明の変形例に用いられる鍵テーブルＴ′のゾーン構成の一例を示す図（図(a) ）および各ゾーンに対応づけられた暗号化プロトコルを示す表（図(b) ）である。
【発明を実施するための形態】
【００３９】
以下、本発明を図示する実施形態に基づいて説明する。
【００４０】
＜＜＜  §１．  ＩＣカードに対する従来の一般的な通信形態  ＞＞＞
本発明は、外部装置との間で暗号通信を行う機能を有する情報処理装置に係るものであり、特に、ＩＣカードからなる情報処理装置への利用に適した技術に関する。そこで、ここでは、まず、ＩＣカードに対する従来の一般的な通信形態を簡単に説明しておく。
【００４１】
図１は、一般的なスマートフォン１０，ＳＩＭカード１１，外部サーバ２０の間の情報通信の態様を示すブロック図である。通常、スマートフォン１０は、内部にＳＩＭカード１１を装着した状態で利用され、必要に応じて、外部サーバ２０と所定の通信路（インターネットや電話回線）を介して交信することになる。ここで、ＳＩＭカード１１（ＵＩＭカードとも呼ばれる）は、Java Card（商標）やGlobalPlatform （登録商標）など、事実上の標準となっている国際的な仕様に準拠したＩＣカードであり、外部装置との交信は、当該外部装置から与えられるコマンドと、これに対する応答（レスポンス）という形式で行われる。
【００４２】
ＳＩＭカード１１に着目すると、スマートフォン１０も外部サーバ２０も、いずれも外部装置ということになり、これら外部装置との間の交信は、所定の通信路を介して行われる。図１には、スマートフォン１０と外部サーバ２０との間の通信路しか示されていないが、実際には、ＳＩＭカード１１とスマートフォン１０との間やＳＩＭカード１１と外部サーバ２０との間にも通信路が形成される。そして、ＳＩＭカード１１に対して、これらの通信路を介してコマンドおよびレスポンスのやりとりが行われることになる。
【００４３】
図２は、図１に示すＳＩＭカード１１と、スマートフォン１０もしくは外部サーバ２０と、の間で暗号通信を行うためのプログラム構成の一例を示すブロック図である。本発明は、ＩＣカードに限らず、外部装置との間で暗号通信を行う機能を有する一般的な情報処理装置に広く適用できる技術である。したがって、図２には、情報処理装置１００と外部装置２００との間に通信路を開設して相互に交信を行う例が示されている。
【００４４】
ただ、上述したとおり、本発明は、ＩＣカードに適用するのに特に適した技術であるので、ここでは、情報処理装置１００がスマートフォン１０に装着されたＳＩＭカード１１であり、外部装置２００が当該スマートフォン１０（もしくは、外部サーバ２０でもよい）である場合について、以下の説明を行うことにする。
【００４５】
ＳＩＭカード１１をはじめとするＩＣカードには、通常、複数のアプリケーションプログラムが組み込まれる。図２の情報処理装置１００（ＳＩＭカード１１）には、２組の一般アプリケーションプログラムＡＰ１，ＡＰ２が組み込まれた状態が示されている。また、ＩＣカードには、通常、少なくとも１組の管理プログラムＳＤ（Security Domain プログラム）が組み込まれている。この管理プログラムＳＤは、分類上はアプリケーションプログラムの一種であるが、ＯＳプログラムと協働して、ＩＣカード全体の動作や、管理下にある他のアプリケーションプログラムを管理する役割を果たす。そこで、本願では、情報処理装置１００（ＳＩＭカード１１）に組み込まれるアプリケーションプログラムのうち、Security Domain プログラムを「管理プログラム」と呼び、それ以外のアプリケーションプログラムを「一般アプリケーションプログラム（略称：一般アプリ）」と呼ぶことにする。
【００４６】
管理プログラムＳＤには、管理下となるアプリケーションプログラムについてのロード機能、インストール機能、削除機能などの様々な機能が備わっているが、本発明に直接関連する機能は、暗号通信路開設機能および暗号通信に必要な暗号鍵を書き込むためのデータ書込機能である。図２に示す管理プログラムＳＤには、暗号通信路開設機能に必要な暗号通信路開設ルーチンＲ１および鍵テーブルＴ１が組み込まれている。鍵テーブルＴ１には、データ書込機能を利用して、所望の暗号鍵を書き込むことができる。ＩＣカードからなる情報処理装置１００の場合、通常、「ＳＣＰ：Secure Channel Protocol」と呼ばれる所定の暗号化プロトコルに基づいて、外部装置２００との間にセキュアな暗号通信路を開設して暗号通信が行われる。このような機能を実現するため、管理プログラムＳＤ内には、暗号通信路開設ルーチンＲ１と鍵テーブルＴ１とが組み込まれている。
【００４７】
一方、外部装置２００側にも、これに応じた暗号通信を行う機能をもったアプリケーションプログラムＡＰ３が用意されており、暗号通信路開設ルーチンＲ２と鍵テーブルＴ２とが組み込まれている。たとえば、外部装置２００がスマートフォン１０の場合、アプリケーションプログラムＡＰ３は、このスマートフォン１０にインストールされたアプリケーションプログラムの１つである。
【００４８】
情報処理装置１００側の暗号通信路開設ルーチンＲ１と、外部装置２００側の暗号通信路開設ルーチンＲ２は、両装置間にセキュアな暗号通信路を開設し、同一の暗号鍵および同一の暗号化プロトコルを用いた暗号通信を行うためのルーチンであり、鍵テーブルＴ１と鍵テーブルＴ２には、同一の暗号鍵が収容されている。したがって、図示の例の場合、管理プログラムＳＤとアプリケーションプログラムＡＰ３とによって、情報処理装置１００と外部装置２００との間に、同一の暗号鍵を用いた同一の暗号化プロトコルに基づく暗号通信を行うための暗号通信路が開設されることになる。
【００４９】
ＩＣカードに対する暗号通信に利用される暗号化プロトコルとしては、ＳＣＰ０１，ＳＣＰ０２などのプロトコルが古くから利用されてきている。ただ、これらのプロトコルで用いられている「Triple-ＤＥＳ」という暗号アルゴリズムには危殆化の問題が指摘されており、近年は、ＡＥＳ（Advanced Encryption Standard）なる規格に基づく暗号アルゴリズムを利用したＳＣＰ０３なるプロトコルも、GlobalPlatform （登録商標）に準拠した仕様として普及し始めている。また、３ＧＰＰ／ＥＴＳＩなどの標準化団体を中心に策定されたＳＣＰ８０，ＳＣＰ８１などのプロトコルの利用も普及してきている。
【００５０】
また、ＩＣカードに組み込まれる管理プログラムＳＤ用の鍵テーブルＴとしては、図３に例示するような鍵空間を用いる仕様が一般化している。図示の鍵テーブルＴは、縦方向にキーバージョン番号（key version number）、横方向にキーＩＤ（key ID）を定義したマトリックスによって構成されており、キーバージョン番号については、０ｘ０１〜０ｘ７Ｆの範囲内のアドレス空間が割り当てられ、キーＩＤについては、０ｘ００〜０ｘ７Ｆの範囲内のアドレス空間が割り当てられている（アドレス先頭の０ｘは、以下の数値が１６進数であることを示す）。
【００５１】
個々の暗号鍵は、この鍵テーブルＴのいずれかのセルに格納されることになり、キーバージョン番号とキーＩＤとの組み合わせにより特定される。たとえば、キーバージョン番号「０ｘ０１」とキーＩＤ「０ｘ０１」との組み合わせにより、暗号鍵ＫｅｙＡが特定されることになる。図には、個々の暗号鍵の格納例として、ＫｅｙＡ〜ＫｅｙＲが特定のセルに格納された状態が示されている。もちろん、暗号鍵はすべてのセルに格納する必要はなく、必要な暗号鍵が所定のセルに格納されていれば足りる。また、必要に応じて、新たな暗号鍵を空いているセルに書き込むこともできる。
【００５２】
ある１つの暗号化プロトコルでは、ある１つのキーバージョン番号が指定され、当該キーバージョン番号をもったセルに格納されている１つもしくは複数組の暗号鍵を利用した暗号化処理もしくは復号処理が実行される。図示の例の場合、キーバージョン番号「０ｘ０１」，「０ｘ２０」，「０ｘ２１」，「０ｘ２２」，「０ｘ７Ｅ」，「０ｘ７Ｆ」の各行に何らかの暗号鍵が格納されている状態が示されている。また、図示の例の場合、いずれのキーバージョン番号についても、キーＩＤ「０ｘ０１」，「０ｘ０２」，「０ｘ０３」の３箇所のセルにそれぞれ暗号鍵が格納されている。
【００５３】
これは、いずれのキーバージョン番号も、３つの異なる暗号鍵を用いる暗号化プロトコル（たとえば、上述したＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３など）に対応したものになっているためである。たとえば、キーバージョン番号「０ｘ２０」が指定された場合、キーＩＤ「０ｘ０１」，「０ｘ０２」，「０ｘ０３」の各セルに格納されている３つの暗号鍵ＫｅｙＤ，ＫｅｙＥ，ＫｅｙＦが暗号化処理もしくは復号処理に利用されることになる。別言すれば、特定の暗号化プロトコルに基づく暗号化処理もしくは復号処理には、同一のキーバージョン番号をもつ１つもしくは複数組の暗号鍵が利用されることになる。もちろん、合計５個の暗号鍵を必要とする暗号化プロトコルのためには、同一のキーバージョン番号をもつ５個のセルにそれぞれ暗号鍵を用意することになる。要するに、図３に示す鍵テーブルＴでは、常に、同一行のセルに収容されている複数組の暗号鍵が、特定の暗号化プロトコルに基づく暗号化処理もしくは復号処理に利用されることになる。
【００５４】
一方、図４(a) は、図３に示す鍵テーブルＴの個々のセルに格納されている暗号鍵ＫｅｙＡ〜ＫｅｙＲの一般的なデータ構造を示す図である。図示された暗号鍵Ｋｅｙのデータ構造は、上述したＩＣカードについての国際的な標準仕様として定められた暗号鍵Ｋｅｙの標準フォーマットを示すものであり、先頭から順に、種別情報（key type）Ａ，鍵長（key length）Ｌ，鍵値データ（key value）Ｖを並べたものになっている。ここで、種別情報（key type）Ａは、「ＡＥＳ」，「Triple-ＤＥＳ」，「ＲＳＡ」など、当該暗号鍵Ｋｅｙを用いることを想定している暗号化プロトコルが採用する暗号アルゴリズムの種別を含む情報であり、鍵長（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コマンド」の処理時）に、ＳＣＰについてレベルを設定することが可能である。具体的には、「レベル１：コマンド改竄検知用のチェックコード付与」と「レベル２：コマンド改竄検知用のチェックコード付与＋コマンドデータフィールドの暗号化」などが定められており、ステップＳ５以降にやりとりされるコマンドには、開設時に設定されたレベルが適用されることになる。このようなＳＣＰレベルの設定を行った場合、レベル２の設定が行われたときにのみ、ステップＳ５以降のコマンドのデータフィールドに対して暗号化が行われることになる。なお、ステップＳ５，Ｓ６の例では、コマンドに対するレスポンスについては、ＳＣＰによる保護を行わず、平文のまま通常の通信路を介して返信するようにしているが、必要があれば、これらのレスポンスについても、暗号通信路を介して返信するようにしてもよい。
【００６７】
＜＜＜  §２．  本発明の基本的な実施形態  ＞＞＞
ここでは、本発明の基本的な実施形態を、§１で述べた一般的なＩＣカード（ＳＩＭカード１１）に適用した実施例について詳述する。はじめに、本発明の基本概念を説明するために、§１で述べた従来のＩＣカードにおけるセキュリティ上の問題点を説明する。
【００６８】
図４(b) に例示した暗号通信路開設コマンドＣＭＤには、「キーバージョン番号」が含まれている。この「キーバージョン番号」は、図３に例示する鍵テーブルＴのキーバージョン番号に対応するものであり、ＩＣカードに対して、暗号通信路を開設する際に用いる暗号鍵を指定する情報になる。たとえば、図３の鍵テーブルＴには、合計６通りの暗号鍵（実際には、１通りの暗号鍵は、それぞれ３組の暗号鍵から構成されている）が収容されているので、「キーバージョン番号」を指定することにより、この６通りの暗号鍵のうちのいずれかを指定することができる。
【００６９】
具体的には、外部装置から与える暗号通信路開設コマンドに、たとえば「０ｘ２０」なるキーバージョン番号を含ませておけば、ＩＣカード側では、図３の鍵テーブルＴを参照することにより、暗号鍵「ＫｅｙＤ，ＫｅｙＥ，ＫｅｙＦ」を用いた暗号通信路の開設処理が実行されることになる。たとえば、これら暗号鍵「ＫｅｙＤ，ＫｅｙＥ，ＫｅｙＦ」の種別情報Ａが「Triple-ＤＥＳ」であった場合、暗号アルゴリズムとして「Triple-ＤＥＳ」を採用する所定の暗号化プロトコルに基づいて、暗号鍵「ＫｅｙＤ，ＫｅｙＥ，ＫｅｙＦ」のそれぞれに含まれる鍵値データＶを用いた暗号化処理および復号処理が実行されることになる。
【００７０】
このように、暗号通信路開設コマンドに含まれる「キーバージョン番号」は、鍵テーブルＴに収容されている複数通りの暗号鍵のうちの特定の暗号鍵を指定する暗号鍵指定情報ということになり、外部装置は、この暗号鍵指定情報を用いることにより、所望の暗号鍵を用いた暗号通信路開設の指示を与えることが可能になる。なお、「暗号鍵」なる文言を「個別の鍵」を示すものとして捉えると、図３に示す鍵テーブルの場合、１行には３組の暗号鍵からなる「暗号鍵群」が収容されているため、鍵テーブルＴに収容されているのは「６通りの暗号鍵」ではなく、「６通りの『３組の暗号鍵群』」ということになる。したがって、本願にいう暗号鍵指定情報は、特定の「暗号鍵」もしくは「暗号鍵群」を指定する情報ということになるが、本願では便宜上、図３の「ＫｅｙＡ」のような「個別の鍵」も、図３の「ＫｅｙＡ，ＫｅｙＢ，ＫｅｙＣ」のような「複数組の鍵からなる鍵群」も、特に混同のない限り、単に「暗号鍵」と呼ぶことにする。
【００７１】
このように、GlobalPlatform （登録商標）の仕様では、暗号通信路開設コマンドに、「キーバージョン番号」（暗号鍵指定情報）を含ませることにより、暗号通信路開設に用いる暗号鍵を任意に指定することが可能であるが、そのような指定を行わないオプションも用意されている。具体的には、暗号通信路開設コマンドに、「０ｘ００」なるキーバージョン番号を含ませた場合は、暗号鍵の指定を省略したことになる。図３の鍵テーブルＴに示されているとおり、キーバージョン番号としては、０ｘ０１〜０ｘ７Ｆの範囲が割り当てられており、「０ｘ００」なるキーバージョン番号は実在しない。したがって、「０ｘ００」なるキーバージョン番号を含む暗号通信路開設コマンドは、実際には、暗号鍵指定情報を含まないコマンドということになる。
【００７２】
このように、暗号鍵指定情報を含まない暗号通信路開設コマンドが与えられた場合、ＩＣカード側では、予め設定されていたデフォルト暗号鍵を用いて暗号通信路の開設処理を実行することになる。GlobalPlatform （登録商標）の標準的な仕様では、鍵テーブルＴに最初に書き込まれた暗号鍵がデフォルト暗号鍵として設定されることになっている。
【００７３】
したがって、たとえば図３に示す鍵テーブルＴの場合、キーバージョン番号「０ｘ２１」で指定されるセルに「ＫｅｙＧ，ＫｅｙＨ，ＫｅｙＩ」が最初に書き込まれたとすると、この「ＫｅｙＧ，ＫｅｙＨ，ＫｅｙＩ」がデフォルト暗号鍵として採用されることになり、キーバージョン番号「０ｘ２１」がデフォルト情報として設定される。この場合、暗号鍵指定情報が含まれていない暗号通信路開設コマンド（すなわち、「０ｘ００」なるキーバージョン番号を含む暗号通信路開設コマンド）が与えられると、デフォルト情報として設定されているキーバージョン番号「０ｘ２１」が参照され、暗号鍵「ＫｅｙＧ，ＫｅｙＨ，ＫｅｙＩ」を用いた暗号通信路の開設処理が行われることになる。
【００７４】
このように、デフォルト暗号鍵を設定しておけば、暗号通信路開設コマンドを与えるたびに、毎回、特定の暗号鍵（キーバージョン番号）を指定する手間を省くことができるようになるが、暗号アルゴリズムのセキュリティ強度の低い暗号鍵がデフォルト暗号鍵として採用されてしまうと、セキュリティ強度の低い暗号通信路を用いる暗号通信が増える可能性がある。すなわち、本来は、情報処理装置と外部装置との間でやり取りされる情報の機密性に応じて、適切なセキュリティ強度をもった暗号通信路が開設されるように、暗号通信路開設コマンドを与える際に、適切な暗号鍵（キーバージョン番号）を指定するべきであるが、実際には、このような指定を怠ってしまうことも少なくない。
【００７５】
実際には、デフォルト暗号鍵を用いた暗号通信路が開設されるケースが大半であると予想され、セキュリティ強度の低い暗号鍵がデフォルト暗号鍵として採用されてしまうことは大きな問題になる。本発明は、このような問題を解決するためになされたものであり、複数通りの暗号鍵を選択的に利用して暗号通信路を開設する機能を有する情報処理装置において、暗号鍵の選択指示がなかったときに利用されるデフォルト暗号鍵に基づいて開設される暗号通信路のセキュリティ強度を一定に維持することを目的とする。
【００７６】
以下、本発明の基本概念を、図６を参照しながら説明する。図６は、本発明の基本的な実施形態に係る情報処理装置の構成を示すブロック図である。本発明は、ＩＣカードに限らず、外部装置との間で暗号通信を行う機能を有する一般的な情報処理装置に広く適用できる技術であるが、ここでは、§１で述べた一般的なＩＣカード（ＳＩＭカード１１）に適用した実施例を説明する。図６に示すブロック図は、本発明に係る情報処理装置１００（ＳＩＭカード１１）が、外部装置２００（スマートフォン１０または外部サーバ２０）に対して暗号通信を行う例である。
【００７７】
図示のとおり、本発明に係る情報処理装置１００は、暗号通信処理部１１０，順位リスト格納部１２０，デフォルト情報設定部１３０，暗号鍵書込処理部１４０，鍵テーブル格納部１５０を有しており、外部装置２００との間で暗号通信を行う機能を有する。
【００７８】
これらの各構成要素１１０〜１５０は、実際には、図２に示す管理プログラムＳＤによって構築される構成要素であり、その機能は、情報処理装置１００を構成するハードウエアと管理プログラムＳＤ（および必要に応じてＯＳプログラム）との協働作用により実現されることになる。もちろん、情報処理装置１００には、その他のアプリケーションプログラムも組み込まれているため、実際には、図６には示されていないブロックで示される多数の構成要素も含まれることになるが、ここでは、本発明の動作に直接関係する構成要素のみを示すことにする。
【００７９】
暗号通信処理部１１０は、外部装置２００から与えられる暗号通信路開設コマンドに基づいて、外部装置２００との間に所定の暗号アルゴリズムを利用した暗号通信路を開設し、外部装置２００に対して暗号通信を行う機能をもった構成要素である。図示の例では、３通りの暗号アルゴリズムＡＥＳ，Triple-ＤＥＳ，ＲＳＡを用いた暗号処理に対応した暗号通信路開設ルーチンが組み込まれている例が示されており、指定されたいずれかの暗号アルゴリズムを用いて暗号通信路を開設し、この暗号通信路を介した暗号通信が可能である。
【００８０】
ここで、暗号通信路の開設とは、具体的には、特定の暗号アルゴリズムを用いた特定の暗号化プロトコルにしたがって、外部装置２００への送信情報に対しては暗号化を行い、外部装置２００からの受信情報に対しては復号を行う環境を整えることに他ならない。本願では、このような「暗号化処理」と「復号処理」とを包括して「暗号処理」と呼んでいる。具体的な「暗号処理」を実行するには、特定の暗号アルゴリズムを用いた特定の暗号化プロトコルを定めた上で、更に、特定の暗号鍵を定める必要がある。
【００８１】
暗号処理に用いる暗号鍵は、鍵テーブル格納部１５０に格納されている鍵テーブルＴに収容されている。図３に例示した鍵テーブルＴの場合、１つのキーバージョン番号（暗号鍵指定情報）に３組の暗号鍵が対応づけられているが、図６には、説明の便宜上、鍵テーブルＴ内に４通りの暗号鍵Ｋ１〜Ｋ４を収容した例を示す。図３に示す例の場合は、３組の暗号鍵が暗号処理に同時に利用されることになるが、ここでは、便宜上、同時に利用される暗号鍵が１組だけの単純な例についての説明を行うことにする。
【００８２】
個々の暗号鍵Ｋｅｙは、図４(a) のデータ構造に示すとおり、種別情報Ａ，鍵長Ｌ，鍵値データＶを含んでいる。ここで、種別情報Ａは、「ＡＥＳ」，「Triple-ＤＥＳ」，「ＲＳＡ」など、当該暗号鍵Ｋｅｙを用いることを想定している暗号化プロトコルが採用する暗号アルゴリズムの種別を含む情報であり、鍵値データＶは、暗号化および復号の演算に用いられる鍵値データそのものである。したがって、図６に示す鍵テーブルＴに収容されている４通りの暗号鍵Ｋ１〜Ｋ４は、それぞれが、暗号通信を行う際の暗号処理に利用する鍵値データＶと、当該暗号処理に利用する暗号アルゴリズムを示す種別情報Ａと、を含んでいることになる。鍵テーブル格納部１５０は、このような暗号鍵を複数通り収容可能な鍵テーブルＴを格納する構成要素である。
【００８３】
図６には、鍵テーブルＴ内に４通りの暗号鍵が収容されている状態が示されているが、必要に応じて、暗号鍵を鍵テーブルＴに追加することが可能である。暗号鍵を追加する処理は、暗号鍵書込処理部１４０によって行われる。すなわち、暗号鍵書込処理部１４０は、外部装置２００から与えられる書込コマンドに基づいて、鍵テーブルに新たな暗号鍵を書き込む暗号鍵書込処理を実行し、書込処理が完了した旨をレスポンスとして外部装置２００に報告する（書込処理に失敗した場合は、エラーを示すレスポンスを返す）。
【００８４】
書込コマンドには、書込対象となる暗号鍵Ｋｅｙの情報（図４(a) の書式に示す情報）と、鍵テーブルＴ内の書込場所（収容場所：図３に示す鍵テーブルＴの場合は、特定のキーバージョン番号）を示す情報とが含まれており、暗号鍵書込処理部１４０は、書込対象となる暗号鍵Ｋｅｙを指定された書込場所に書き込む処理を行う。なお、暗号鍵書込処理部１４０は、必要があれば、与えられたコマンドに応じて、既に書込み済みの暗号鍵を新たな暗号鍵に書換える処理や、不要になった暗号鍵を削除する処理を行う機能も有している。
【００８５】
デフォルト情報設定部１３０は、この鍵テーブルＴに収容されている複数通りの暗号鍵のうち、デフォルト暗号鍵として採用された暗号鍵を特定するためのデフォルト情報Ｄを設定し、これを保持する機能をもった構成要素である。図示の例の場合、デフォルト情報Ｄとして、暗号鍵Ｋ３を特定する情報が設定されている。この場合、鍵テーブルＴに収容されている暗号鍵Ｋ３がデフォルト暗号鍵として設定されていることになる。
【００８６】
暗号通信処理部１１０は、外部装置２００から暗号通信路開設コマンドが与えられた場合に、鍵テーブル格納部１５０に格納されている鍵テーブルＴの中から所定の暗号鍵を選択し、選択した暗号鍵を用いて暗号通信路を開設する処理を行う。この場合、与えられた暗号通信路開設コマンドに、鍵テーブルＴに収容されている特定の暗号鍵を指定する暗号鍵指定情報が含まれていた場合には、指定された当該特定の暗号鍵を用いて暗号通信路を開設するが、暗号鍵指定情報が含まれていなかった場合には、デフォルト情報設定部１３０に設定されているデフォルト情報Ｄで特定されるデフォルト暗号鍵を用いて暗号通信路を開設することになる。
【００８７】
たとえば、図示の例の場合、与えられた暗号通信路開設コマンドに、暗号鍵Ｋ１を指定する暗号鍵指定情報が含まれていた場合には、指定された暗号鍵Ｋ１を用いて暗号通信路が開設される。一方、暗号鍵指定情報が含まれていなかった場合には、デフォルト情報Ｄで特定されるデフォルト暗号鍵Ｋ３を用いて暗号通信路が開設されることになる。
【００８８】
前述したとおり、実用上は、暗号鍵指定情報を省略した暗号通信路開設コマンドが与えられることが多いため、デフォルト暗号鍵Ｋ３を用いて暗号通信路が開設される頻度はかなり高くなる。そこで、デフォルト暗号鍵としては、できるだけセキュリティ強度の高いもの、すなわち、当該暗号鍵の使用を前提とする暗号アルゴリズムのセキュリティ強度の高いものを採用するのが好ましい。しかしながら、GlobalPlatform （登録商標）の標準的な仕様では、鍵テーブルＴに最初に書き込まれた暗号鍵がデフォルト暗号鍵として設定されることになっているため、従来装置では、必ずしもセキュリティ強度の高い暗号鍵がデフォルト暗号鍵として採用されるとは限らなかった。そこで、図６に示す本発明に係る情報処理装置１００では、できるだけセキュリティ強度の高い暗号鍵がデフォルト暗号鍵として採用されるように、次のような工夫を施している。
【００８９】
まず、図６に示す情報処理装置１００には、順位リスト格納部１２０という新たな構成要素が設けられている。この順位リスト格納部１２０には、複数通りの暗号アルゴリズムについて、セキュリティ強度の順位を示すセキュリティ強度順位リストＬが格納されている。図には、３通りの暗号アルゴリズムＡＥＳ，Triple-ＤＥＳ，ＲＳＡについての強度順位を示すセキュリティ強度順位リストＬが示されている。この例の場合、第１順位Ｌ１がＡＥＳ、第２順位Ｌ２がTriple-ＤＥＳ、第３順位Ｌ３がＲＳＡとなっており、第１順位Ｌ１が最も高いセキュリティ強度を示している。
【００９０】
暗号アルゴリズムのセキュリティ強度については、様々な観点から理論的な研究がなされており、それぞれ客観的な評価がなされている。したがって、本発明を実施する上では、このような客観的な評価を参照しながら、個々の暗号アルゴリズムについてのセキュリティ強度を相対的に比較することにより、図示のようなセキュリティ強度順位リストＬを予め用意しておくことができる。図示のリストＬは、３種類の暗号アルゴリズムについての順位を示すものであるが、実際には、必要に応じて、より多種類の暗号アルゴリズムについてのリストを用意することが可能である。
【００９１】
なお、セキュリティ強度順位リストＬの中には、複数の暗号アルゴリズムを同順位に収容するようにしてもかまわない。たとえば、第１順位Ｌ１に暗号アルゴリズムＡＲＧ１、第２順位Ｌ２に暗号アルゴリズムＡＲＧ２およびＡＲＧ３、第３順位が空位で、第４順位に暗号アルゴリズムＡＲＧ４をそれぞれ収容したセキュリティ強度順位リストＬを用いてもよい。また、§４−３で述べるように、暗号アルゴリズムに代えて、暗号化プロトコルの順位を示すリストを用いることも可能である。
【００９２】
このようなセキュリティ強度順位リストＬを用意しておけば、デフォルト情報設定部１３０は、できるだけセキュリティ強度の高い暗号鍵をデフォルト暗号鍵として採用して、デフォルト情報Ｄの設定を行うことができる。具外的には、まず、暗号鍵書込処理部１４０が、書込コマンドに基づいて新たな暗号鍵の書き込みを行う際に、その旨をデフォルト情報設定部１３０に伝達するようにする。
【００９３】
デフォルト情報設定部１３０は、暗号鍵書込処理部１４０からの上記伝達を受けた場合に、書込対象となる暗号鍵Ｋｅｙに含まれている種別情報Ａ（図４(a) 参照）によって示される暗号アルゴリズムのセキュリティ強度順位リストＬ上での順位が、所定の採用条件を満たしているか否かを確認する。具体的な採用条件については、後にいくつかの例を挙げて説明するが、「できるだけセキュリティ強度の高い暗号鍵をデフォルト暗号鍵として採用する」ことができるような所定の条件を設定しておくようにする。そして、デフォルト情報設定部１３０は、当該採用条件を満たしていることを前提として、暗号鍵書込処理部１４０による書込対象となる暗号鍵をデフォルト暗号鍵として特定するためのデフォルト情報Ｄを設定する処理を行う。
【００９４】
要するに、暗号鍵書込処理部１４０が、鍵テーブルＴに対して新たな暗号鍵の書き込みを行う場合、デフォルト情報設定部１３０によって、書込対象となる当該暗号鍵のセキュリティ強度が確認され、所定の採用条件を満たす強度であった場合には、必要に応じて（後述するように、採用条件を満たす強度であっても、必ずしもデフォルト暗号鍵として採用されるわけではない）、当該暗号鍵をデフォルト暗号鍵として採用し、当該暗号鍵を示す情報がデフォルト情報Ｄとして設定されることになる。
【００９５】
なお、図６の鍵テーブル格納部１５０内には、説明の便宜上、鍵テーブルＴに４通りの暗号鍵Ｋ１〜Ｋ４が格納された単純な例を示したが、GlobalPlatform （登録商標）の標準的な仕様では、図３に例示したとおり、キーバージョン番号「０ｘ０１」〜「０ｘ７Ｆ」に対応づけて最大１２７通りの暗号鍵（暗号鍵群）を収容することができ、しかも、１通りの暗号鍵（暗号鍵群）として、キーＩＤ「０ｘ００」〜「０ｘ７Ｆ」に対応づけられた最大１２８組の暗号鍵を収容することができる鍵テーブルＴが用いられる。
【００９６】
この図３に示す鍵テーブルＴでは、複数通りの暗号鍵が、それぞれ固有のキーバージョン番号に対応づけて収容されている。したがって、デフォルト情報設定部１３０は、特定のキーバージョン番号をデフォルト情報Ｄとして設定することになる。暗号通信処理部１１０は、暗号通信路開設コマンドに、特定の暗号鍵を示すキーバージョン番号が暗号鍵指定情報として含まれていた場合には、当該キーバージョン番号に対応づけられた暗号鍵を用いて暗号通信路を開設し、特定の暗号鍵を示すキーバージョン番号が含まれていなかった場合には、デフォルト情報Ｄとして設定されているキーバージョン番号に対応づけられたデフォルト暗号鍵を用いて暗号通信路を開設することになる。
【００９７】
また、図３に示す鍵テーブルＴでは、１つのキーバージョン番号に対応づけて、複数組の暗号鍵（図示の例の場合は、それぞれ３組の暗号鍵）が収容されている。したがって、実際には、暗号通信処理部１１０は、暗号通信路開設コマンドに、特定の暗号鍵を示すキーバージョン番号が暗号鍵指定情報として含まれていた場合には、当該キーバージョン番号に対応づけられた複数組の暗号鍵を用いて暗号通信路を開設し、特定の暗号鍵を示すキーバージョン番号が含まれていなかった場合には、デフォルト情報として設定されているキーバージョン番号に対応づけられた複数組のデフォルト暗号鍵を用いて暗号通信路を開設することになる。
【００９８】
たとえば、デフォルト情報Ｄとして、キーバージョン番号「０ｘ２１」が設定されている状態において、図４(b) に示す書式をもった暗号通信路開設コマンド「INITIALIZE UPDATE, （０ｘ０１），（乱数）」が与えられた場合は、暗号鍵指定情報「０ｘ０１」（キーバージョン番号）に基づいて、図３に示す暗号鍵「ＫｅｙＡ，ＫｅｙＢ，ＫｅｙＣ」が選択され、当該暗号鍵を用いた暗号通信路開設処理が実行される。一方、暗号通信路開設コマンド「INITIALIZE UPDATE, （０ｘ００），（乱数）」が与えられた場合は、「０ｘ００」は実在の特定のキーバージョン番号を示すデータではないので、当該暗号通信路開設コマンドには、暗号鍵指定情報は含まれていないことになる。したがって、デフォルト情報Ｄとしてのキーバージョン番号「０ｘ２１」が参照され、図３に示すデフォルト暗号鍵「ＫｅｙＧ，ＫｅｙＨ，ＫｅｙＩ」が選択され、当該デフォルト暗号鍵を用いた暗号通信路開設処理が実行されることになる。
【００９９】
前述したとおり、本発明に係る情報処理装置では、新たな暗号鍵の書き込みを行う際に、セキュリティ強度順位リストＬを参照して、書込対象となる暗号鍵が所定の採用条件（デフォルト暗号鍵として採用するための条件）を満たしているか否かの確認が行われ、当該採用条件を満たしていることを前提として、書込対象となる暗号鍵がデフォルト暗号鍵として採用されることになる。したがって、上例の場合、キーバージョン番号「０ｘ２１」で特定されるデフォルト暗号鍵「ＫｅｙＧ，ＫｅｙＨ，ＫｅｙＩ」は、所定の採用条件を満たす暗号鍵であり、当該暗号鍵を用いて開設される暗号通信路は、所定のセキュリティ強度をもった暗号アルゴリズムを採用した暗号通信路ということになる。
【０１００】
かくして、本発明によれば、複数通りの暗号鍵を選択的に利用して暗号通信路を開設する機能を有する情報処理装置において、選択指示がなかったときに利用されるデフォルト暗号鍵に基づいて開設される暗号通信路のセキュリティ強度をできるだけ高めることが可能になる。
【０１０１】
なお、上例では、デフォルト情報Ｄとして、キーバージョン番号「０ｘ２１」を設定した例を示したが、デフォルト情報Ｄは、デフォルト暗号鍵を特定することが可能な情報であれば、どのような形態のものであってもかまわない。たとえば、「鍵テーブルＴの先頭」といった情報や「鍵テーブルＴの末尾」といった情報をデフォルト情報Ｄとして用いることも可能である。図３に示す鍵テーブルＴを利用する場合、「鍵テーブルＴの先頭」というデフォルト情報Ｄは、キーバージョン番号「０ｘ０１」と等価であり、「鍵テーブルＴの末尾」というデフォルト情報Ｄは、キーバージョン番号「０ｘ７Ｆ」と等価である。
【０１０２】
最後に、図６に示す「暗号通信路」に関する留意点を述べておく。図６では、説明の便宜上、暗号通信処理部１１０と外部装置２００との間に開設された「暗号通信路」を円柱状の筒で表し、暗号鍵書込処理部１４０と外部装置２００との間でやりとりされる書込コマンドおよびそのレスポンスを、この円柱状の筒とは別個の矢印で示している。ただ、GlobalPlatform（登録商標）の仕様では、暗号鍵についての書込コマンドおよびそのレスポンスは暗号化した状態でやりとりすることとされている。このように暗号化した状態でやりとりする場合は、図６において、暗号鍵書込処理部１４０と外部装置２００との間で送受される書込コマンドおよびそのレスポンスは、実際には、円柱状の筒で示された「暗号通信路」および「暗号通信処理部１１０」を介して送受されることになる（後述する図７〜図９も同様）。
【０１０３】
＜＜＜  §３．  本発明の個別の実施形態  ＞＞＞
上述した§２では、図６を参照しながら本発明の基本的な実施形態を説明した。この基本的な実施形態によれば、暗号鍵書込処理部１４０が、鍵テーブルＴに対して新たな暗号鍵の書き込みを行う場合に、デフォルト情報設定部１３０が、書込対象となる暗号鍵に含まれている種別情報Ａによって示される暗号アルゴリズムの「セキュリティ強度順位リストＬ上での順位」が所定の採用条件を満たしているか否かを確認し、当該採用条件を満たしていることを前提として、書込対象となる暗号鍵をデフォルト暗号鍵として特定するためのデフォルト情報の設定が行われる。
【０１０４】
ここで、デフォルト暗号鍵の採用条件としては、「できるだけセキュリティ強度の高い暗号鍵をデフォルト暗号鍵として採用する」ことができる条件であれば、どのような条件を設定してもよいが、この§３では、具体的な採用条件に基づく個別の実施形態を３つ例示しておくことにする。
【０１０５】
＜３−１．  第１の個別実施形態＞
第１の個別実施形態の基本方針は、予め、デフォルト情報設定部１３０に、セキュリティ強度順位リストＬに関する所定の基準順位を設定しておき、デフォルト情報設定部１３０が、書込対象となる暗号鍵に含まれている種別情報によって示される暗号アルゴリズムのセキュリティ強度順位リストＬ上での順位が、当該基準順位以上となることを採用条件とする、というものである。
【０１０６】
図７は、この第１の個別実施形態に係る情報処理装置１００の構成を示すブロック図である。図７に示す情報処理装置１００の基本構成は、図６に示す情報処理装置１００の基本構成とほぼ同じであり、図７の各構成要素には、図６の各構成要素と同一の符号を付して示してある。ただ、デフォルト情報設定部１３０および暗号鍵書込処理部１４０について、若干具体的な機能が備わっている。以下、この具体的な機能について説明する。
【０１０７】
既に述べたとおり、GlobalPlatform （登録商標）の標準的な仕様では、鍵テーブルＴに最初に書き込まれた暗号鍵がデフォルト暗号鍵として設定されることになっている。ここで述べる第１の個別実施形態では、この仕様に準拠して、「鍵テーブルＴに最初に書き込まれた暗号鍵をデフォルト暗号鍵として設定する」という基本方針を採用する。したがって、デフォルト情報設定部１３０は、暗号鍵書込処理部１４０が、鍵テーブルＴに最初の暗号鍵を書き込む処理を実行したときに、当該暗号鍵をデフォルト暗号鍵として設定する処理を行う。
【０１０８】
但し、ここに示す実施形態では、暗号鍵書込処理部１４０が、鍵テーブルＴに暗号鍵を最初に書き込む際に、デフォルト情報設定部１３０に対して、当該暗号鍵の書き込みを行ってよいかどうかの問い合わせを行い、許可を示す回答が得られた場合に限って当該暗号鍵の書き込みを実行する。別言すれば、禁止を示す回答が得られた場合には、当該暗号鍵の書き込みは実行されないことになる。
【０１０９】
デフォルト情報設定部１３０は、暗号鍵書込処理部１４０から上記問い合わせがあった場合、順位リスト格納部１２０内のセキュリティ強度順位リストＬを参照することにより、当該暗号鍵の書き込みを許可するか、禁止するかの判定を行い、判定結果を暗号鍵書込処理部１４０に対して回答する。この判定を行うために、予め設定されていた基準順位が利用される。
【０１１０】
すなわち、デフォルト情報設定部１３０は、暗号鍵書込処理部１４０によって最初の暗号鍵の書込処理が実行されようとしたときに、書込対象となる暗号鍵に含まれている種別情報Ａによって示される暗号アルゴリズムの順位をセキュリティ強度順位リストＬ上で確認し、確認された順位が所定の基準順位Ｅ以上であった場合には当該書込処理を許可し、確認された順位が所定の基準順位Ｅ未満であった場合には当該書込処理を禁止する判定処理を行い、判定結果（許可または禁止）を暗号鍵書込処理部１４０に回答することになる。デフォルト情報設定部１３０は、許可の回答を行った場合、鍵テーブルＴに最初に書き込まれることになる暗号鍵をデフォルト暗号鍵とするデフォルト情報Ｄの設定を行う。
【０１１１】
図示の例は、セキュリティ強度順位リストＬに関する基準順位Ｅとして、第２順位Ｌ２が設定されている場合の例である。この基準順位Ｅは、予めデフォルト情報設定部１３０に設定しておけばよいが、ここに示す実施例の場合、デフォルト情報設定部１３０は、外部装置２００から与えられる基準順位設定コマンドに基づいて、基準順位Ｅを新規設定もしくは更新設定し、設定完了後にレスポンスを返す機能を有している。したがって、外部装置２００から基準順位設定コマンドを与えることにより、基準順位Ｅを新規設定することもできるし、必要に応じて、既に設定済みの基準順位Ｅを変更するための更新設定を行うこともできる。
【０１１２】
暗号鍵書込処理部１４０は、上述したとおり、最初の暗号鍵の書込処理を実行する前に、書込対象となる暗号鍵の内容（少なくとも、種別情報Ａによって特定される暗号アルゴリズムを示す情報）をデフォルト情報設定部１３０に知らせて、当該暗号鍵の書き込みを行ってよいかどうかの問い合わせを行う。そして、デフォルト情報設定部１３０によって書込処理が許可された場合には、当該最初の暗号鍵の書込処理を実行する。一方、デフォルト情報設定部１３０によって書込処理が禁止された場合には、当該最初の暗号鍵の書込処理を実行せずに、当該暗号鍵の書込コマンドを与えた外部装置２００に対して、エラーを示すレスポンスを返す処理を行う。
【０１１３】
結局、この第１の個別実施形態では、「鍵テーブルＴに最初に書き込まれた暗号鍵をデフォルト暗号鍵として設定する」という、GlobalPlatform （登録商標）の標準的な仕様に準拠した基本方針が採用されるものの、鍵テーブルＴに最初の暗号鍵を書き込む書込コマンドが与えられた場合、当該書込コマンドを無条件に実行せずに、書込対象となる暗号鍵がデフォルト暗号鍵としての資質を備えているか否かの判定が行われ、資質を備えていた場合にのみ、当該暗号鍵を鍵テーブルＴに最初の暗号鍵として書き込む処理が実行されることになる。換言すれば、資質を備えていない場合は、書込コマンドは拒絶され、エラーとして扱われることになる。
【０１１４】
もちろん、最初の暗号鍵のための書込コマンドが拒絶され、エラーを示すレスポンスが返されると、鍵テーブルＴは暗号鍵が収容されていない空の状態のままなので、暗号通信処理部１１０は、暗号通信路を開設する処理を行うことができない。したがって、エラーを示すレスポンスが返された場合、外部装置２００側では、別な暗号鍵を最初の暗号鍵として書き込むための書込コマンドを再度送信する必要がある。
【０１１５】
結局、外部装置２００からは、最初の暗号鍵の書き込みに成功するまで、様々な暗号鍵（含まれている種別情報Ａが異なる暗号鍵）についての書込コマンドを繰り返し送信する必要があるが、一旦、書き込みに成功した場合は、当該暗号鍵がデフォルト暗号鍵として設定され、以後、暗号通信処理部１１０によって暗号通信路を開設することが可能になる。しかも、デフォルト暗号鍵として設定された暗号鍵は、所定の採用条件を満たす暗号鍵であるため、デフォルト暗号鍵が用いられた場合、一定のセキュリティ強度を担保した暗号通信が可能になる。
【０１１６】
上述したとおり、最初の暗号鍵（すなわち、デフォルト暗号鍵）として必要な資質の条件は、「種別情報Ａによって示される暗号アルゴリズムの順位が、セキュリティ強度順位リストＬ上で基準順位Ｅ以上である」というものである。そのため、図７に示すとおり、デフォルト情報設定部１３０内には、予め所定の基準順位Ｅが設定されている。図示の例は、基準順位Ｅとして第２順位Ｌ２が設定されている例であり、セキュリティ強度順位リストＬに太線で示す境界線より上の順位であれば採用条件を満たしており、これより下の順位であれば採用条件を満たしていないと判定される。
【０１１７】
すなわち、デフォルト情報設定部１３０は、暗号鍵書込処理部１４０から、特定の暗号鍵を最初の暗号鍵として書き込んでよいかどうかの問い合わせを受けたときに、当該特定の暗号鍵に含まれる種別情報Ａによって示される暗号アルゴリズムの順位が、図に太線で示す境界線より上の順位であれば書込許可の回答を行うとともに、当該特定の暗号鍵をデフォルト暗号鍵とするデフォルト情報Ｄの設定を行い、境界線より下の順位であれば書込禁止の回答を行うことになる。
【０１１８】
図７は、暗号鍵Ｋ３が最初の暗号鍵として書き込まれた直後の状態を示しており、デフォルト情報Ｄによって、この暗号鍵Ｋ３がデフォルト暗号鍵として設定されたことが示されている。基準順位ＥがＬ２に設定されていることから、この暗号鍵Ｋ３を用いて開設される暗号通信路は、セキュリティ強度順位リストＬの第１順位Ｌ１もしくは第２順位Ｌ２に記載されているＡＥＳもしくはTriple-ＤＥＳを暗号アルゴリズムとして利用するものになり、ある程度のセキュリティ強度を維持した通信路になる。
【０１１９】
この第１の個別実施形態では、「鍵テーブルＴに最初に書き込まれた暗号鍵をデフォルト暗号鍵とする」という基本方針を採用しているため、図７に示すように、一旦、デフォルト暗号鍵の設定が完了すると（デフォルト情報Ｄの設定が完了すると）、その後は、デフォルト情報設定部１３０によるデフォルト情報Ｄの再設定を行う必要はない。したがって、以後、暗号鍵書込処理部１４０は、外部装置２００から新たな暗号鍵についての書込コマンドが与えられた場合、デフォルト情報設定部１３０に対して、当該暗号鍵の書き込みを行ってよいかどうかの問い合わせを行う必要はなく、そのまま書込処理を実行してかまわない。
【０１２０】
このように、第１の個別実施形態では、外部装置２００から暗号鍵についての書込コマンドが与えられた場合、当該書込コマンドが、最初の暗号鍵を書き込むためのコマンドであるのか、２回目以降の暗号鍵を書き込むためのコマンドであるのかによって、暗号鍵書込処理部１４０の処理動作が変わってくる。すなわち、前者の場合は、デフォルト情報設定部１３０に対する問い合わせを行った結果、許可回答が得られれば書込処理を実行するが、禁止回答が得られれば書込処理を拒絶する必要があるのに対して、後者の場合は、そのような問い合わせは不要であり、常に書込処理を実行してかまわない。
【０１２１】
したがって、暗号鍵書込処理部１４０は、暗号鍵についての書込コマンドを受信した場合、当該書込コマンドが、最初の暗号鍵を書き込むためのコマンドであるのか、２回目以降の暗号鍵を書き込むためのコマンドであるのか、を判断する必要がある。
【０１２２】
このような判断を行うための具体的な方法のひとつは、外部装置２００から暗号鍵の書込コマンドが与えられたときに、暗号鍵書込処理部１４０が、鍵テーブル格納部１５０に格納されている鍵テーブルＴを参照し、暗号鍵の書き込みが既に行われているか否かを判断する方法である。図７において、鍵テーブル格納部１５０と暗号鍵書込処理部１４０との間の双方向矢印は、新たな暗号鍵の書き込み（下方向矢印）が行われるとともに、鍵テーブルＴからの情報収集（上方向矢印）が行われることを示している。
【０１２３】
鍵テーブルＴにおける各暗号鍵の書込場所に、最初は空白状態を示す何らかの初期値が保存されているようにすれば、すべての書込場所に当該初期値が保存されていた場合には、暗号鍵の書き込みが全く行われていないものと判断することができ、いずれかの書込場所に当該初期値以外のデータが保存されていた場合には、暗号鍵の書き込みが既に行われているものと判断することができる。したがって、暗号鍵書込処理部１４０は、外部装置２００から暗号鍵の書込コマンドが与えられたときに鍵テーブルＴを参照し、すべての書込場所に上記初期値が保存されていた場合には、当該書込コマンドが最初の暗号鍵を書き込むためのコマンドであると判断することができる。
【０１２４】
別な判断方法として、暗号鍵書込処理部１４０に、未書込／書込済のいずれか２値の状態を示す書込フラグを設けておく方法を採ることも可能である。たとえば、初期段階では、書込フラグとして「未書込」を示すビット「０」が設定されるようにしておき、最初の暗号鍵の書込処理が実行されたときに、当該書込フラグを、未書込の状態（ビット「０」）から書込済の状態（ビット「１」）に書き替える処理を行うようにすればよい。もちろん、外部装置２００から暗号鍵の書込コマンドが与えられた場合であっても、デフォルト情報設定部１３０から禁止回答が得られたため、実際には、暗号鍵の書き込みが行われなかった場合には、書込フラグは未書込の状態（ビット「０」）のままになる。
【０１２５】
そうすれば、暗号鍵書込処理部１４０は、外部装置２００から暗号鍵の書込コマンドが与えられたときに、この書込フラグをチェックするだけで、当該書込コマンドが、最初の暗号鍵を書き込むためのコマンドであるのかどうかを認識することができる。すなわち、書込フラグが未書込の状態（ビット「０」）のときには、最初の暗号鍵を書き込むためのコマンドであると判断できるので、デフォルト情報設定部１３０によって書込処理が許可されたことを実行条件として当該書込コマンドを実行し、書込処理が禁止された場合は当該書込処理を実行せずに外部装置２００に対してエラーを示すレスポンスを返す処理を行うことになる。一方、書込フラグが書込済の状態（ビット「１」）のときには、上記実行条件に関わらず、当該書込コマンドを実行すればよい。
【０１２６】
なお、ここで述べた第１の個別実施形態は、後述する第３の個別実施形態と組み合わせて実施することも可能であり、その場合、デフォルト情報Ｄは、更新の条件が満たされた時点で逐次更新されることになる（詳細は、§３−３を参照）。
【０１２７】
＜３−２．  第２の個別実施形態＞
続いて、図８を参照しながら、第２の個別実施形態を説明する。図８は、この第２の個別実施形態に係る情報処理装置１００の構成を示すブロック図である。図８に示す情報処理装置１００の基本構成は、図７に示す情報処理装置１００の基本構成とほぼ同じであり、図８の各構成要素には、図７の各構成要素と同一の符号を付して示してある。ただ、デフォルト情報設定部１３０および暗号鍵書込処理部１４０の処理動作が若干異なっている。以下、この相違点について説明する。
【０１２８】
この第２の個別実施形態の基本方針も、予め、デフォルト情報設定部１３０に、セキュリティ強度順位リストＬに関する所定の基準順位を設定しておき、デフォルト情報設定部１３０が、書込対象となる暗号鍵に含まれている種別情報によって示される暗号アルゴリズムのセキュリティ強度順位リストＬ上での順位が、当該基準順位以上となることを採用条件とする、という点については、上述した第１の個別実施形態の基本方針と同じである。別言すれば、この第２の個別実施形態の場合も、予め設定されている基準順位以上のセキュリティ強度を有していなければ、デフォルト暗号鍵として採用されることはない、という点に変わりはない。
【０１２９】
ただ、上述した第１の個別実施形態では、GlobalPlatform （登録商標）の標準的な仕様に準拠して、「鍵テーブルＴに最初に書き込まれた暗号鍵をデフォルト暗号鍵として設定する」という基本方針を採用しつつ、基準順位以上のセキュリティ強度をもった暗号鍵を書込対象とする書込コマンドがくるまで、最初の暗号鍵の書き込みを実行させない、という制約を課していた。これに対して、ここで述べる第２の個別実施形態では、「最初に書き込まれた暗号鍵をデフォルト暗号鍵として設定する」という仕様には準拠せず、その代わりに、「鍵テーブルＴに暗号鍵が書き込まれているが、デフォルト暗号鍵は存在しない」という状態を許す、という運用を採る。
【０１３０】
このような運用は、図８のブロック図に端的に示されている。すなわち、図７のブロック図には、デフォルト情報設定部１３０から暗号鍵書込処理部１４０に対して「許可回答または禁止回答」を示す矢印が描かれており、暗号鍵書込処理部１４０が、最初の暗号鍵を書き込む際には、デフォルト情報設定部１３０からの許可回答が必要になっていたが、図８のブロック図には、そのような矢印は描かれておらず、暗号鍵書込処理部１４０は、最初の暗号鍵であろうが、２回目以降の暗号鍵であろうが、とにかく新たな暗号鍵を鍵テーブルＴに書き込む際に、デフォルト情報設定部１３０に問い合わせをしたり、デフォルト情報設定部１３０から許可回答を得る必要は全くない。
【０１３１】
一方、図８のブロック図には、鍵テーブル格納部１５０に格納された鍵テーブルＴ内には、既に２組の暗号鍵Ｋ１，Ｋ２が書き込まれている状態が示されている。ところが、デフォルト情報設定部１３０内のデフォルト情報Ｄとしては「φ」なる記号が描かれている。この記号「φ」は、デフォルト情報Ｄの初期値を示し、デフォルト暗号鍵を特定するための実質的な情報が設定されていないことを示している。たとえば、図３に例示するように、「０ｘ０１」〜「０ｘ７Ｆ」の範囲内の数値をとるキーバージョン番号をデフォルト情報Ｄとして用いる場合、「φ」は、「０ｘ００」や「０ｘＦＦ」など、実在しないキーバージョン番号に設定しておけばよい。
【０１３２】
これは、図８に示す実施例の場合、既に、暗号鍵書込処理部１４０によって、最初の暗号鍵Ｋ１や２番目の暗号鍵Ｋ２の書き込みが実行されているにもかかわらず、これらの暗号鍵Ｋ１，Ｋ２は、デフォルト暗号鍵として採用されなかったことを意味する。
【０１３３】
図８に示す実施形態の場合も、順位リスト格納部１２０には、セキュリティ強度順位リストＬが格納されており、デフォルト情報設定部１３０には、基準順位Ｅが設定されている。そして、デフォルト情報設定部１３０は、外部装置２００から与えられる基準順位設定コマンドに基づいて、基準順位Ｅを新規設定もしくは更新設定し、設定完了後にレスポンスを返す機能を有している。図示の例では、基準順位Ｅとして、第２順位Ｌ２が設定されているので、デフォルト暗号鍵として採用される条件は、セキュリティ強度が第２順位Ｌ２以上ということになる。暗号鍵Ｋ１，Ｋ２が、デフォルト暗号鍵として採用されなかったのは、セキュリティ強度が第２順位Ｌ２未満であったためである。
【０１３４】
結局、ここで述べる第２の個別実施形態の基本的な考え方は、外部装置２００から新たな暗号鍵についての書込コマンドが与えられた場合は、特に制約なしに当該コマンドを実行して、新たな暗号鍵を鍵テーブルＴに書き込むようにしつつ、当該新たな暗号鍵がデフォルト暗号鍵としての採用条件（セキュリティ強度が基準順位Ｅ以上）を満たさない限り、デフォルト暗号鍵としては採用しない、という運用を採るものである。すなわち、「来るものは拒まず」という基本姿勢をとりながら、デフォルト暗号鍵としての採用に関しては、「採用条件を満たすものが現れるまで空席にして待つ」という方針を採ることになる。
【０１３５】
したがって、この第２の個別実施形態の場合、デフォルト情報設定部１３０は、暗号鍵書込処理部１４０によって新たな暗号鍵の書込処理が実行されたときに、デフォルト情報Ｄが未設定（「φ」）であった場合には、書込対象となった暗号鍵に含まれる種別情報Ａによって示される暗号アルゴリズムの順位をセキュリティ強度順位リストＬ上で確認し、確認された順位が所定の基準順位Ｅ以上（図示の例の場合は、第２順位Ｌ２以上）であった場合には、書込対象となった暗号鍵をデフォルト暗号鍵とするデフォルト情報Ｄの設定を行うが、確認された順位が所定の基準順位Ｅ未満であった場合には、デフォルト情報Ｄを未設定（「φ」）の状態のままとする処理を行うことになる。
【０１３６】
暗号通信処理部１１０は、図８に示すようにデフォルト情報Ｄが未設定（「φ」）であったとしても、外部装置２００から、暗号鍵Ｋ１もしくはＫ２を指定する暗号鍵指定情報が含まれた暗号通信路開設コマンドが与えられれば、鍵テーブルＴに書き込まれている暗号鍵Ｋ１もしくはＫ２を用いて暗号通信路を開設することが可能である。しかしながら、暗号鍵指定情報が含まれていない暗号通信路開設コマンドが与えられた場合、デフォルト情報Ｄが未設定（「φ」）であると、デフォルト暗号鍵を特定することができないため、暗号通信路を開設することができない。
【０１３７】
そこで、この第２の個別実施形態における暗号通信処理部１１０は、外部装置２００から暗号通信路開設コマンドが与えられたときに、当該コマンドに暗号鍵指定情報が含まれておらず、かつ、デフォルト情報設定部１３０にデフォルト情報Ｄが設定されていなかった場合には、当該暗号通信路開設コマンドを実行せずに外部装置２００に対してエラーを示すレスポンスを返す処理を行うことになる。
【０１３８】
このようなエラーを示すレスポンスが返された場合、外部装置２００側では、鍵テーブルＴに既に存在する暗号鍵Ｋ１もしくはＫ２を指定する暗号鍵指定情報を含んだ暗号通信路開設コマンドを送信しなおすようにすればよい。もちろん、やがてデフォルト暗号鍵としての採用条件（セキュリティ強度が基準順位Ｅ以上）を満たす新たな暗号鍵が鍵テーブルＴに書き込まれた場合は、当該暗号鍵をデフォルト暗号鍵とするデフォルト情報Ｄが設定されることになるので、それ以後は、暗号鍵指定情報が含まれていない暗号通信路開設コマンドを与えた場合でも、エラーを示すレスポンスが返されることなく、デフォルト暗号鍵を用いた暗号通信路が開設されることになる。しかも、デフォルト暗号鍵として設定された暗号鍵は、上記採用条件を満たす暗号鍵であるため、デフォルト暗号鍵が用いられた場合でも、一定のセキュリティ強度を担保した暗号通信が可能になる。
【０１３９】
なお、ここに示す第２の個別実施形態の場合、暗号鍵書込処理部１４０によって新たな暗号鍵の書込処理が実行されたときに、デフォルト情報Ｄが既に設定済であった場合には、デフォルト情報設定部１３０は、デフォルト情報Ｄの設定をそのままの状態にする運用を採っている。別言すれば、ひとたびデフォルト情報Ｄが設定されたら、その後、デフォルト情報Ｄを更新する処理は行われないことになる。
【０１４０】
もっとも、ここで述べた第２の個別実施形態は、後述する第３の個別実施形態と組み合わせて実施することも可能であり、その場合、デフォルト情報Ｄは、更新の条件が満たされた時点で逐次更新されることになる（詳細は、§３−３を参照）。
【０１４１】
＜３−３．  第３の個別実施形態＞
これまで述べてきた第１の個別実施形態および第２の個別実施形態の基本方針は、いずれも、セキュリティ強度順位リストＬに関する基準順位Ｅを設定しておき、書込対象となる暗号鍵の順位が、当該基準順位Ｅ以上となることを条件として当該暗号鍵をデフォルト暗号鍵として採用する、というものである。ここで述べる第３の個別実施形態では、このような絶対尺度となる基準順位Ｅを設定する必要はない。その代わり、新たな暗号鍵が書き込まれたときに、新たに書き込まれた暗号鍵と現在のデフォルト暗号鍵とのセキュリティ強度を、セキュリティ強度順位リストＬ上で相対比較し、新たに書き込まれた暗号鍵の強度の方が高い場合には、新たに書き込まれた暗号鍵を新たなデフォルト暗号鍵に設定しなおす、という方針を採用する。
【０１４２】
したがって、この第３の個別実施形態に係る情報処理装置１００の構成を示すブロック図は、§２で基本的な実施形態の説明に用いた図６ということになる。この第３の個別実施形態では、図６に示すとおり、デフォルト情報設定部１３０が、暗号鍵書込処理部１４０によって新たな暗号鍵の書込処理が実行されたときに、書込対象となった暗号鍵に含まれる種別情報Ａによって示される第１の暗号アルゴリズムの順位と、その時点で設定されているデフォルト情報Ｄによって特定されるデフォルト暗号鍵（図示の例の場合、暗号鍵Ｋ３）に含まれる種別情報Ａによって示される第２の暗号アルゴリズムの順位とを、セキュリティ強度順位リストＬ上で比較し、第１の暗号アルゴリズムの順位が第２の暗号アルゴリズムの順位よりも高い場合には、書込対象となった暗号鍵を新たなデフォルト暗号鍵とするデフォルト情報Ｄの更新設定を行う。
【０１４３】
たとえば、図６に示す例の場合、鍵テーブルＴには、既に４組の暗号鍵Ｋ１〜Ｋ４が書き込まれており、そのうちの暗号鍵Ｋ３をデフォルト暗号鍵として特定するためのデフォルト情報Ｄが設定されている。ここでは、この暗号鍵Ｋ３に含まれる種別情報Ａによって示される暗号アルゴリズムが、セキュリティ強度順位リストＬ上で第２順位Ｌ２であったとしよう。そして、このような状況において、暗号鍵書込処理部１４０が、新たな暗号鍵Ｋ５についての書込コマンドを受信し、これを実行したものとしよう。すると、鍵テーブルＴには、第５の暗号鍵Ｋ５が書き込まれることになる。
【０１４４】
一方、暗号鍵書込処理部１４０からデフォルト情報設定部１３０に対しては、新たな暗号鍵Ｋ５の書込処理が実行された旨の報告がなされる。そこで、デフォルト情報設定部１３０は、この新たな暗号鍵Ｋ５に含まれる種別情報Ａによって示される暗号アルゴリズムの順位と、現時点で設定されているデフォルト情報Ｄによって特定されるデフォルト暗号鍵Ｋ３に含まれる種別情報Ａによって示される暗号アルゴリズムの順位とを比較する。上例の場合、デフォルト暗号鍵Ｋ３の順位は第２順位Ｌ２であるから、新たな暗号鍵Ｋ５の順位が第２順位Ｌ２以下であった場合、デフォルト情報Ｄの更新は行われないが、新たな暗号鍵Ｋ５の順位が第１順位Ｌ１であった場合は、新たな暗号鍵Ｋ５がデフォルト暗号鍵として特定されるように、デフォルト情報Ｄの更新が行われることになる。
【０１４５】
結局、この第３の個別実施形態を採用すれば、逐次、デフォルト暗号鍵に対する更新が行われ、ある時点でのデフォルト暗号鍵は、これまで書き込みが行われた暗号鍵の中でセキュリティ強度順位リストＬ上での順位が最も高い暗号鍵ということになる。この第３の個別実施形態では、基準順位Ｅを設定する必要がないため、デフォルト情報設定部１３０は、暗号鍵書込処理部１４０によって新たな暗号鍵の書込処理が実行されたときに、その時点ではまだデフォルト情報Ｄが設定されていない場合には、とりあえず、書込対象となった暗号鍵をデフォルト暗号鍵とするデフォルト情報Ｄの新規設定を行うようにすればよい。
【０１４６】
このように、最初に書き込まれた暗号鍵をそのままデフォルト暗号鍵とする運用を採ると、最初に書き込まれた暗号鍵のセキュリティ強度が低かった場合は、デフォルト暗号鍵としてセキュリティ強度の低い暗号鍵が設定されてしまうことになるが、新たな暗号鍵を追加してゆくたびに、デフォルト暗号鍵はセキュリティ強度のより高い暗号鍵に更新されてゆくことになるので、従来装置に比べれば、より高いセキュリティ強度を維持することが可能になる。
【０１４７】
より好ましくは、この第３の個別実施形態を、これまで述べた第１の個別実施形態もしくは第２の個別実施形態と組み合わせて実施するようにすればよい。具体的には、デフォルト情報Ｄが設定されるまでは、第１の個別実施形態もしくは第２の個別実施形態を採用し、必ず基準順位Ｅ以上の暗号鍵がデフォルト暗号鍵となるようにしておき、デフォルト情報Ｄが設定された後は、第３の個別実施形態を実施し、よりセキュリティ強度の高い暗号鍵がデフォルト暗号鍵となるような更新が行われてゆくようにすればよい。
【０１４８】
＜＜＜  §４．  本発明の変形例  ＞＞＞
これまで§２において本発明の基本的な実施形態を説明し、§３において、３通りの個別の実施形態を説明した。ここでは、これらの各実施形態に適用可能ないくつかの変形例を述べておく。
【０１４９】
＜４−１．  順位リストの設定／更新＞
図９は、本発明の変形例となる実施形態に係る情報処理装置の構成を示すブロック図である。図示の変形例は、図６に示す情報処理装置１００についての変形例であるが、図７や図８に示す情報処理装置１００についても同様に適用可能である。
【０１５０】
この図９に示す変形例の特徴は、順位リスト格納部１２０に、外部装置２００から与えられる順位リスト設定コマンドに基づいて、セキュリティ強度順位リストＬを新規設定もしくは更新設定する機能をもたせた点である。セキュリティ強度順位リストＬは、初期段階（たとえば、情報処理装置１００を構成するＳＩＭカード１１の工場出荷段階）において、予め順位リスト格納部１２０に書き込んでおくことも可能であるが、ユーザの手に渡った後にも、必要に応じて更新できるようにしておく方が好ましい。
【０１５１】
図９に示す変形例では、外部装置２００から順位リスト設定コマンドを与えることにより、セキュリティ強度順位リストＬの初期設定が可能であるので、セキュリティ強度順位リストＬは、必ずしも工場出荷段階で書き込んでおく必要はない。また、必要に応じて、順位リスト設定コマンドを与えることにより、リストＬに新たな暗号アルゴリズムを追加することもできるし、順位を変更することもできるし、リストＬから特定の暗号アルゴリズムを削除することもできる。このため、ユーザの手に渡った後も、柔軟な対応が可能になる。
【０１５２】
＜４−２．  複数の管理プログラムを用いた例＞
§２で述べたとおり、ＳＩＭカード１１等のＩＣカードを情報処理装置１００として用いる場合、図６に示す暗号通信処理部１１０，順位リスト格納部１２０，デフォルト情報設定部１３０，暗号鍵書込処理部１４０，鍵テーブル格納部１５０といった構成要素は、実際には、図２に示す管理プログラムＳＤ（および必要に応じて、ＯＳプログラムの一部のルーチン）によって構築される構成要素になる。しかも、一般的なＩＣカードには、複数の管理プログラムＳＤが階層構造をもって組み込まれるのが一般的である。そこで、ここでは、複数の管理プログラムＳＤが組み込まれた情報処理装置に本発明を適用した場合の実施例を述べておく。
【０１５３】
図１０は、ＳＩＭカード１１（情報処理装置１００）内に構築されるアプリケーションプログラムの階層構造を示す図である。この図において、階層構造の最上位に配置されているＩＳＤ（Issuer Security Domain）は、発行者ＳＤと呼ばれる管理プログラムであり、このＳＩＭカード１１の工場出荷時に書込まれるプログラムである。図示の例の場合、このＩＳＤの下位にＳＳＤ１，ＳＳＤ２，ＡＰ０１，ＡＰ０２なるプログラムが配置されており、更に、ＳＳＤ１の下位にＡＰ１１，ＡＰ１２が配置され、ＳＳＤ２の下位にＳＳＤ３，ＡＰ２１，ＡＰ２２，ＡＰ２３が配置され、更に、ＳＳＤ３の下位にＡＰ３１，ＡＰ３２が配置されている。
【０１５４】
この図１０にブロックで示されている各プログラムは、いずれもＳＩＭカード１１（情報処理装置１００）内に組み込まれているアプリケーションプログラムである。ここで、ＳＳＤ１，ＳＳＤ２，ＳＳＤ３（Supplemental Security Domain）は、ＩＳＤと同様に管理プログラムであるが、ＩＳＤが、工場出荷時に書込まれる最上位の管理プログラムであるのに対して、ＳＳＤ１，ＳＳＤ２，ＳＳＤ３は、ＩＳＤもしくは別なＳＳＤの下位に配置されるプログラムになる。
【０１５５】
前述したように、管理プログラムも、アプリケーションプログラムの１つであることに変わりはないが、階層構造上、自己の下位に別なアプリケーションプログラム（一般アプリケーションプログラムであってもよいし、別な管理プログラムであってもよい）を配置して管理下におくことができる。したがって、図示の例の場合、管理プログラムＳＳＤ１の下位には、２組の一般アプリケーションプログラムＡＰ１１，ＡP１２が配置されているだけであるが、管理プログラムＳＳＤ２の下位には、１組の別な管理プログラムＳＳＤ３と３組の一般アプリケーションプログラムＡＰ２１，ＡＰ２２，ＡＰ２３が配置され、更に、管理プログラムＳＳＤ３の下位には、２組の一般アプリケーションプログラムＡＰ３１，ＡＰ３２が配置されている。
【０１５６】
なお、前述したとおり、GlobalPlatform（登録商標）の仕様では、外部装置２００から情報処理装置１００に対して暗号鍵を書き込むための書込コマンドやそのレスポンスは、暗号化した状態でやりとりされる。このため、下位の管理プログラムについて、最初の暗号鍵を登録する場合は、その上位の管理プログラムが開設した暗号通信路が利用されることになる。たとえば、図１０に示す例の場合、管理プログラムＳＳＤ３について、最初の暗号鍵を登録する場合は、その上位の管理プログラムＳＳＤ２が開設した暗号通信路が利用され、管理プログラムＳＳＤ２について、最初の暗号鍵を登録する場合は、その上位の管理プログラムＩＳＤが開設した暗号通信路が利用される。最上位の管理プログラムＩＳＤについては、工場出荷時に最初の暗号鍵が登録されている。
【０１５７】
図１１は、図１０に示すＳＩＭカード１１（情報処理装置１００）内のプログラム構成を示すブロック図である。図示のとおり、この情報処理装置１００には、ＯＳプログラムの他に、４組の管理プログラムＩＳＤ，ＳＳＤ１，ＳＳＤ２，ＳＳＤ３と、９組の一般アプリケーションプログラムＡＰ０１〜ＡＰ３２がインストールされている。
【０１５８】
各管理プログラムＩＳＤ，ＳＳＤ１，ＳＳＤ２，ＳＳＤ３には、それぞれ管理下となるアプリケーションプログラムについてのロード機能、インストール機能、削除機能などの様々な機能が備わっているが、本発明に直接関連する機能は、暗号通信路開設機能および暗号通信に必要な暗号鍵を書き込むためのデータ書込機能である。管理プログラムによっては、特定の機能を欠いている場合もあるが、ここでは、少なくとも、管理プログラムＳＳＤ１およびＳＳＤ２が、暗号通信路開設機能および暗号通信に必要な暗号鍵を書き込むためのデータ書込機能を備えているものとして、これら２組の管理プログラムＳＳＤ１，ＳＳＤ２によって、本発明に係る情報処理装置１００の各構成要素１１０〜１５０がどのように構築されるかを考えてみよう。
【０１５９】
図１２は、複数の管理プログラムＳＳＤ１，ＳＳＤ２が組み込まれた実施形態に係る情報処理装置１００の構成を示すブロック図である。図示の例の場合、第１の管理プログラムＳＳＤ１および必要に応じてＯＳプログラムの一部によって、暗号通信処理部１１０Ａ，順位リスト格納部１２０Ａ，デフォルト情報設定部１３０Ａ，暗号鍵書込処理部１４０Ａ，鍵テーブル格納部１５０Ａが構築されており、これらによって第１の機能部１００Ａ（上段の一点鎖線内のブロック）が構成される。同様に、第２の管理プログラムＳＳＤ２および必要に応じてＯＳプログラムの一部によって、暗号通信処理部１１０Ｂ，順位リスト格納部１２０Ｂ，デフォルト情報設定部１３０Ｂ，暗号鍵書込処理部１４０Ｂ，鍵テーブル格納部１５０Ｂが構築されており、これらによって第２の機能部１００Ｂ（下段の一点鎖線内のブロック）が構成される。
【０１６０】
なお、図１０の階層構造に示すとおり、GlobalPlatform （登録商標）の仕様では、最上位階層の管理プログラムとして、管理プログラムＩＳＤの存在が必須になっている。したがって、図１２に示す情報処理装置１００には、管理プログラムＩＳＤも組み込まれており、管理プログラムＩＳＤに基づく機能部も構築されていることになるが、ここでは便宜上、この管理プログラムＩＳＤに基づく機能部についての図示は省略する。
【０１６１】
図１２に示す第１の機能部１００Ａおよび第２の機能部１００Ｂは独立した機能部であり、それぞれが、§２，§３で述べた本発明に係る情報処理装置１００としての機能を備えている。したがって、外部装置２００から、第１の機能部１００Ａに対して何らかのコマンドを与えると、当該コマンドは第１の機能部１００Ａの各構成要素によって処理され、レスポンスが返される。同様に、外部装置２００から、第２の機能部１００Ｂに対して何らかのコマンドを与えると、当該コマンドは第２の機能部１００Ｂの各構成要素によって処理され、レスポンスが返される。もちろん、与えるコマンドが、暗号通信路開設コマンドであれば、当該コマンドに基づいて、それぞれの機能部１００Ａ，１００Ｂが別個独立した暗号通信路を開設することになる。
【０１６２】
一般的なＩＣカードには、複数の管理プログラムを含めて多数のアプリケーションプログラムが組み込まれることになる。このため、外部装置からＩＣカードに対してコマンドを送信する場合、当該コマンドがどのアプリケーションプログラム宛のコマンドであるのかを指定する必要がある。GlobalPlatform （登録商標）の仕様では、チャネル番号を用いて、各コマンドの宛先を指定する方法が採られている。
【０１６３】
図１３は、GlobalPlatform （登録商標）の仕様に準拠したＩＣカードに与えるいくつかの具体的なコマンドの書式例を示す図である。ここでは、これら各コマンドの書式および当該コマンドに応じてＩＣカード（情報処理装置１００）側で実行される処理内容について簡単に説明をしておく。なお、図１３に示す各コマンド書式のデータ構造は、一部の情報のみを抽出した概念的なデータ構造であり、実際のデータ構造それ自体を示すものではない。
【０１６４】
図１３(a) に示す「アプリケーション選択コマンド」は、図５のダイアグラムのステップＳ１で用いられているコマンドであり、特定のチャネル番号を指定して、情報処理装置１００側の特定のアプリケーションプログラムを選択するコマンドである。図示のとおり「SELECT (#n)＋アプリ名」というデータ構造を有し、チャネル番号＃ｎを指定して、「アプリ名」で特定されるアプリケーションプログラムを選択するためのコマンドである。
【０１６５】
チャネル番号＃ｎは、外部装置２００から情報処理装置１００に対してコマンドを与える際に、当該コマンドがどのアプリケーションプログラム宛のコマンドであるかを識別させるために用いられる。情報処理装置１００には、複数のアプリケーションプログラムが格納されているため、外部装置２００から与えるコマンドのそれぞれにチャネル番号＃ｎを付加して識別できるようにする必要がある。「アプリケーション選択コマンド」は、特定のアプリケーションプログラムに特定のチャネル番号＃ｎを対応づけるための初期設定を行う役割を果たす。
【０１６６】
たとえば、図１２に示す情報処理装置１００に対して、「SELECT (#3)＋SSD1」というアプリケーション選択コマンドを与えると、管理プログラムＳＳＤ１がチャネル番号＃３に対応づけられる。具体的には、当該コマンドを受信した情報処理装置１００内のＯＳプログラムによって、管理プログラムＳＳＤ１がチャネル番号＃３に対応づけられた旨の記録が行われる。以後、チャネル番号＃３が付与されたコマンドは、すべて管理プログラムＳＳＤ１宛のコマンドとして取り扱われ、管理プログラムＳＳＤ１によって実行されることになる。
【０１６７】
このように、「アプリケーション選択コマンド」は、特定のアプリケーションプログラムを特定のチャネル番号＃ｎに対応づけるためのコマンドである。図１３(b) 〜(d) に示す各コマンドにおいてもチャネル番号＃ｎが指定されるが、上例の場合、チャネル番号＃３を指定しておけば、管理プログラムＳＳＤ１によって処理されることになる。
【０１６８】
図１３(b) に示す「暗号通信路開設コマンド」は、既に図４(b) において説明したものであり、図５のダイアグラムのステップＳ３で用いられている。図４(b) および図５では、説明の便宜上、チャネル番号＃ｎを省略した書式を示したが、実際には、図１３(b) に示すとおり、特定のチャネル番号＃ｎ（図１３(a) に示す「アプリケーション選択コマンド」によって選択した番号）を含んだ書式が採られる。この暗号通信路開設コマンドは、図示のとおり、「INITIALIZE UPDATE (#n)＋パラメータ」というデータ構造を有し、チャネル番号＃ｎで指定される管理プログラムに対して、暗号通信路を開設する指示を与えるとともに、外部装置２００が、情報処理装置１００を正規の交信相手として認証するために用いるレスポンスを要求するコマンドである。ここでは、チャネル番号＃３を指定することにより、管理プログラムＳＳＤ１が選択された場合について以下の説明を行う。
【０１６９】
前述したとおり、この暗号通信路開設コマンドには、パラメータとして、キーバージョン番号および乱数が付加されている。ここでは、チャネル番号＃３によって管理プログラムＳＳＤ１が選択されているため、当該コマンドは、図１２の第１の機能部１００Ａ内の暗号通信処理部１１０Ａに引き渡される。暗号通信処理部１１０Ａは、鍵テーブル格納部１５０Ａに格納されている鍵テーブルＴＡからコマンドに付加されているキーバージョン番号で特定される暗号鍵を取り出し、取り出した暗号鍵と所定の暗号アルゴリズムを用いて、外部装置２００との間に暗号通信路を開設する処理を行い、更に、コマンドに付加されている乱数に対して所定のアルゴリズムに基づく演算を施し、演算結果を当該コマンドに対するレスポンスとして返信する。以下、チャネル番号＃３が指定されたコマンドに基づく通信は、この暗号通信路を介して行われることになる。
【０１７０】
一方、図１３(c) に示す「外部認証コマンド」は、チャネル番号＃ｎで指定される管理プログラムが、現在通信を行っている外部装置２００を正規の交信相手として認証するためのコマンドであり、図５のダイアグラムのステップＳ４で用いられている。上述したとおり、暗号通信路開設コマンド「INITIALIZE UPDATE (#n)＋パラメータ」は、暗号通信路を開設する指示を与えるとともに、外部装置２００が、情報処理装置１００を正規の交信相手として認証するために用いるレスポンスを要求するコマンドである。外部装置２００は、当該レスポンスが正当なものであれば、情報処理装置１００を正規の交信相手と判断する。
【０１７１】
これに対して、図１３(c) に示す外部認証コマンドは、図示のとおり、「EXTERNAL AUTHENTICATE (#n)＋ホスト認証コード」というデータ構造を有し、チャネル番号＃ｎを指定して、外部装置２００を正規の交信相手として認証するためのホスト認証コードが付加されている。情報処理装置１００（実際には、チャネル番号＃ｎで指定された特定の管理プログラム）は、当該ホスト認証コードが正当なものであれば、外部装置２００を正規の交信相手と判断する。このように、外部認証コマンドは、暗号通信路開設コマンドに続いて与えられるコマンドであり、両者によって、情報処理装置１００と外部装置２００との間に相互認証が行われることになる。
【０１７２】
最後に、図１３(d) に示す「アプリケーション向け発行データの書込コマンド」について説明する。このコマンドは、これまで述べてきた実施例において、暗号鍵書込処理部１４０に対して与えられる書込コマンドに相当するものであり、本発明においては、鍵テーブルＴに新たな暗号鍵を書き込む際に利用される。
【０１７３】
図１３(d) には、このような暗号鍵の書込みが可能な２通りの書込コマンドが示されている。書込コマンドその１は、発行データを書込むための汎用の書込コマンドであり、「STORE DATA (#n)＋発行データ」というデータ構造を有し、チャネル番号＃ｎを指定して、「発行データ」の部分のデータを発行データとして書込む旨の指示を伝えるコマンドになる。このコマンドは、管理プログラムのみならず、一般アプリケーションプログラムに対しても与えることができる汎用コマンドである。たとえば、クレジット決済機能をもったアプリケーションプログラムに対して与えれば、「発行データ」としてクレジットカード番号、ユーザの個人情報や決済処理に用いる鍵データなどを書込むことができる。一方、管理プログラムＳＤに対して与えれば、「発行データ」として鍵テーブルＴに暗号鍵を書込むことができる。
【０１７４】
一方、書込コマンドその２は、暗号鍵を書込むための専用の書込コマンドであり、「PUT KEY (#n)＋鍵データ」というデータ構造を有し、チャネル番号＃ｎを指定して、「鍵データ」の部分のデータ（これまで述べてきた暗号鍵に相当）を鍵テーブルＴに書込む旨の指示を伝えるコマンドになる。図３に例示した鍵テーブルＴに対しては、上述した書込コマンドその１による発行データとして暗号鍵を書込むこともできるし、書込コマンドその２による鍵データとして暗号鍵を書込むこともできる。いずれのコマンドにも、書込場所を示す情報（図３に示す鍵テーブルＴの場合は、キーバージョン番号とキーＩＤ）を含ませておくようにする。
【０１７５】
上述したように、図１２に示す情報処理装置１００には、複数の管理プログラムが組み込まれており、管理プログラムＳＳＤ１に基づく第１の機能部１００Ａと、管理プログラムＳＳＤ２に基づく第２の機能部１００Ｂとが備わっている。そして、外部装置２００からコマンドが与えられたときに、当該コマンドに含まれるプログラム選択情報（上例の場合、チャネル番号＃ｎ）に基づいて特定のプログラムの選択が行われ、選択されたプログラムによって構築された構成要素により、与えられたコマンドの処理が行われることになる。
【０１７６】
ここでは便宜上、図１２に示す情報処理装置１００において、管理プログラムＳＳＤ１にはチャネル番号＃３が対応づけられ、管理プログラムＳＳＤ２にはチャネル番号＃４が対応づけられたものとして、以下の説明を行うことにする。
【０１７７】
まず、管理プログラムＳＳＤ１によって構築された暗号鍵書込処理部１４０Ａによって鍵テーブル格納部１５０Ａ内の鍵テーブルＴＡに対して、新たな暗号鍵を書き込む場合を考えてみる。この場合、外部装置２００から情報処理装置１００に対して、チャネル番号＃３を含む書込コマンドを与えることになる。このとき、デフォルト情報設定部１３０Ａは、順位リスト格納部１２０Ａに格納されているセキュリティ強度順位リストＬＡを参照して、書込対象となる暗号鍵がデフォルト暗号鍵としての採用条件を満たしているか否かを確認し、当該採用条件を満たしていることを前提として、必要に応じて、書込対象となる暗号鍵をデフォルト暗号鍵として設定する。なお、基準順位Ｅを用いる実施形態を採る場合は、管理プログラムＳＳＤ１のインストール時にデフォルト情報設定部１３０Ａ内に個別基準順位ＥＡの設定が行われるようにするか、基準順位設定コマンドによって設定を行うようにすればよい。
【０１７８】
また、外部装置２００から情報処理装置１００に対して、チャネル番号＃３を含む暗号通信路開設コマンドが与えられた場合、暗号通信処理部１１０Ａによって、鍵テーブル格納部１５０Ａに格納されている特定の暗号鍵を用いて暗号通信路の開設が行われる。このとき、暗号通信路開設コマンドに暗号鍵指定情報が含まれていなかった場合は、デフォルト情報設定部１３０Ａに設定されているデフォルト情報で特定されるデフォルト暗号鍵を用いて暗号通信路の開設が行われることになる。
【０１７９】
一方、管理プログラムＳＳＤ２によって構築された暗号鍵書込処理部１４０Ｂによって鍵テーブル格納部１５０Ｂ内の鍵テーブルＴＢに対して、新たな暗号鍵を書き込む場合は、外部装置２００から情報処理装置１００に対して、チャネル番号＃４を含む書込コマンドを与えることになる。このとき、デフォルト情報設定部１３０Ｂは、順位リスト格納部１２０Ｂに格納されているセキュリティ強度順位リストＬＢを参照して、書込対象となる暗号鍵がデフォルト暗号鍵としての採用条件を満たしているか否かを確認し、当該採用条件を満たしていることを前提として、書込対象となる暗号鍵をデフォルト暗号鍵として設定する。ここでも、基準順位Ｅを用いる実施形態を採る場合は、管理プログラムＳＳＤ２のインストール時にデフォルト情報設定部１３０Ｂ内に個別基準順位ＥＢの設定が行われるようにするか、基準順位設定コマンドによって設定を行うようにすればよい。
【０１８０】
また、外部装置２００から情報処理装置１００に対して、チャネル番号＃４を含む暗号通信路開設コマンドが与えられた場合、暗号通信処理部１１０Ｂによって、鍵テーブル格納部１５０Ｂに格納されている特定の暗号鍵を用いて暗号通信路の開設が行われる。このとき、暗号通信路開設コマンドに暗号鍵指定情報が含まれていなかった場合は、デフォルト情報設定部１３０Ｂに設定されているデフォルト情報で特定されるデフォルト暗号鍵を用いて暗号通信路の開設が行われることになる。
【０１８１】
結局、図１２に示されている第１の機能部１００Ａおよび第２の機能部１００Ｂは、それぞれ別個独立した動作を行うことになるので、鍵テーブルＴ，デフォルト情報Ｄ，基準順位Ｅ，セキュリティ強度順位リストＬも、基本的には、それぞれ別個独立して設定する必要がある。
【０１８２】
もっとも、セキュリティ強度順位リストＬについては、両者についての共通リストを用意しておき、この共通リストを複数の管理プログラムによって共用するようにしてもかまわない。これは、セキュリティ強度順位リストＬが、複数の暗号アルゴリズムのセキュリティ強度についての客観的な評価に基づいて順位を定めたリストであるため、普遍性を有するリストになっているためである。同様に、基準順位Ｅも共通のものを利用することができる。
【０１８３】
図１２に示す情報処理装置１００の場合、複数の管理プログラムによって共通して利用することができる共通セキュリティ強度順位リストＬＬを格納するための共通順位リスト格納部１０１が設けられている。図示の例の場合、共通セキュリティ強度順位リストＬＬは、管理プログラムＳＳＤ１によって利用することもできるし、管理プログラムＳＳＤ２によって利用することもできる。もちろん、３組以上の管理プログラムが組み込まれていた場合は、これらすべての管理プログラムによって利用することが可能である。そのため、共通順位リスト格納部１０１は、たとえば、ＯＳプログラムの管理下に設けたり、最上位階層の管理プログラムＩＳＤの管理下に設けたりしておくのが好ましい。共通セキュリティ強度順位リストＬＬは、情報処理装置１００の工場出荷時に書き込んでしまうこともできるし、ユーザの手に渡った後に、外部装置２００から順位リスト設定コマンド（たとえば、図９参照）を与えて書き込むようにしてもよい。
【０１８４】
図１２に示す例の場合、管理プログラムＳＳＤ１およびＳＳＤ２は、共通セキュリティ強度順位リストＬＬを利用することができるので、個別の順位リスト格納部１２０Ａ，１２０Ｂは省略してしまってもかまわない。ただ、実用上は、図示のとおり、個別の順位リスト格納部１２０Ａ，１２０Ｂをそれぞれ設けておき、それぞれに個別セキュリティ強度順位リストＬＡ，ＬＢを格納するようにし、共通セキュリティ強度順位リストＬＬは、個別セキュリティ強度順位リストＬＡ，ＬＢを作成する際の雛形として利用するような運用が好ましい。
【０１８５】
このように、個別セキュリティ強度順位リストＬＡ，ＬＢを用意した運用が好ましい第１の理由は、GlobalPlatform （登録商標）の仕様に準拠したＩＣカードの場合、異なるプログラムが管理するリストにアクセスする際には、特別な手続が必要になるので、処理手順を簡略化するためには、個別の管理プログラムが自分自身の管理下にあるリストをアクセスするようにした方が手順を簡略化できるためである。
【０１８６】
そして、第２の理由は、共通セキュリティ強度順位リストＬＬは、あらゆる管理プログラムに対応できるように、多くの暗号プログラムを網羅したリストにせざるを得ないため、個々の管理プログラムが利用するには冗長になりすぎるためである。通常、個々の管理プログラムごとに、それぞれサポートしている暗号アルゴリズムは異なり、個々の管理プログラムが参照するリストには、当該管理プログラムがサポートしている暗号アルゴリズムのみが掲載されていれば足りる。
【０１８７】
そこで、図１２に示す実施形態の場合、複数の管理プログラムに共通して利用される共通セキュリティ強度順位リストＬＬを格納した共通順位リスト格納部１０１を設けるとともに、個々の管理プログラムＳＳＤ１，ＳＳＤ２によって構築される個別の順位リスト格納部１２０Ａ，１２０Ｂが、この共通セキュリティ強度順位リストＬＬの情報を取捨選択して個別セキュリティ強度順位リストＬＡ，ＬＢを作成する機能を有するようにしている。個々の管理プログラムＳＳＤ１，ＳＳＤ２によって構築される個別のデフォルト情報設定部１３０Ａ，１３０Ｂは、それぞれに対応する個別セキュリティ強度順位リストＬＡ，ＬＢを用いて、採用条件を満たしているか否かを確認する処理を行うことになる。
【０１８８】
図１４は、図１２に示す実施形態において、共通セキュリティ強度順位リストＬＬから個別セキュリティ強度順位リストＬＡを作成する手順を示す図である。図示の例の場合、図の左側に示す共通セキュリティ強度順位リストＬＬには、第１順位Ｌ１にランクされた暗号アルゴリズム１から、第８順位Ｌ８にランクされた暗号アルゴリズム８までが掲載されている。もちろん、複数の暗号アルゴリズムが同順位にランクされたリストを用いてもかまわない。
【０１８９】
一方、図の右側に示す個別セキュリティ強度順位リストＬＡは、左側に示す共通セキュリティ強度順位リストＬＬの情報から、暗号アルゴリズム２，５，７のみを抽出して作成したものである。これら抽出された暗号アルゴリズム２，５，７の相互間の順位は、元の共通セキュリティ強度順位リストＬＬ上での順位をそのまま踏襲しているため、第１順位Ｌ１に暗号アルゴリズム２，第２順位Ｌ２に暗号アルゴリズム５，第３順位Ｌ３に暗号アルゴリズム７がランクされた結果になっている。
【０１９０】
このように、共通セキュリティ強度順位リストＬＬの情報を取捨選択して個別セキュリティ強度順位リストＬＡを作成する手法を採用すれば、管理プログラムＳＳＤ１が情報処理装置１００にインストールされ、初めて起動されたときに、管理プログラムＳＳＤ１によって構築される順位リスト格納部１２０Ａ自身が、図１４に例示する取捨選択プロセスを実行することにより、個別セキュリティ強度順位リストＬＡを自動的に作成することができる。ここで取捨選択は、「暗号通信処理部１１０Ａがサポートしている暗号アルゴリズムのみを抽出する」という方針で行えばよい。
【０１９１】
通常、暗号通信処理部１１０Ａがサポートする暗号アルゴリズムは、管理プログラムＳＳＤ１をインストールする時点で決定される。そこで、たとえば、このインストール時点で、暗号アルゴリズム２，５，７に対応する旨の決定がなされた場合は、図１４に示す例のように、暗号アルゴリズム２，５，７のみを抽出して個別セキュリティ強度順位リストＬＡを作成すればよい。もちろん、管理プログラムＳＳＤ２のインストール時には、管理プログラムＳＳＤ２がサポートする暗号アルゴリズムが決定されるので、順位リスト格納部１２０Ｂは、管理プログラムＳＳＤ２がサポートする暗号アルゴリズムのみを抽出して個別セキュリティ強度順位リストＬＢを作成することができる。
【０１９２】
このように、予め共通セキュリティ強度順位リストＬＬを用意しておけば、個々の管理プログラムによって、それぞれ自己が利用する個別セキュリティ強度順位リストを自動的に作成することが可能になる。もちろん、個別セキュリティ強度順位リストは、必ずしも共通セキュリティ強度順位リストＬＬに基づいて作成する必要はなく、外部装置２００から順位リスト設定コマンド（たとえば、図９参照）を与えて書き込むようにしてもよいし、各管理プログラムＳＳＤ１，ＳＳＤ２をインストールする際に書き込まれるようにしてもよい。ただ、上述した手法によって共通セキュリティ強度順位リストＬＬから自動的に作成するようにしておけば、個別セキュリティ強度順位リストを設定する手間を省くことができる。
【０１９３】
なお、基準順位Ｅを用いる実施形態を採る場合は、デフォルト情報設定部１３０Ａ，１３０Ｂのそれぞれに個別の基準順位ＥＡ，ＥＢを設定することも可能であるが、ＯＳプログラムや最上位階層の管理プログラムＩＳＤの管理下に共通基準順位ＥＥを設定しておき、各管理プログラムＳＳＤ１，ＳＳＤ２が、この共通基準順位ＥＥを参照して、採用条件の判定処理を行うようにしてもよい。あるいは、この共通基準順位ＥＥを参照することにより、各管理プログラムＳＳＤ１，ＳＳＤ２についての個別基準順位ＥＡ，ＥＢを自動設定するようにしてもよい。
【０１９４】
＜４−３．  暗号化プロトコルの順位リストを用いた例＞
これまで、複数通りの暗号アルゴリズムについてのセキュリティ強度の順位を示すセキュリティ強度順位リストを用いて、デフォルト暗号鍵としての採用条件が満たされているか否かを判断する実施例を述べてきた。ここでは、その変形例として、順位リスト格納部１２０に、各暗号アルゴリズムについてのセキュリティ強度の順位を示すリストに代えて、各暗号アルゴリズムを利用して実行される暗号処理の具体的な手順を定める暗号化プロトコルについてのセキュリティ強度の順位を示すリストをセキュリティ強度順位リストとして格納する実施例を述べる。
【０１９５】
ここでは、まず、本願における「暗号アルゴリズム」と「暗号化プロトコル」との違いを明確にしておく。図１５は、各暗号化プロトコルに用いられるコマンド文字列情報と暗号アルゴリズムの種別情報との対応関係を示す表である。ここで、表の各欄に示すＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３，ＳＣＰ１０，ＳＣＰ８０，ＳＣＰ８１などの文字列は、個々の暗号化プロトコルを特定する情報（通常、ＳＣＰ種別と呼ばれている）である。また、表の縦見出しは、各暗号化プロトコルが用いる暗号アルゴリズムの種別を示し、表の横見出しは、各暗号化プロトコルに用いられるコマンド文字列情報を示している。
【０１９６】
たとえば、「INITIALIZE UPDATE」なるコマンド文字列は、図４(b) に示す暗号通信路開設コマンドＣＭＤに用いられているコマンド文字列であるが、当該文字列は、暗号化プロトコルＳＣＰ０１，ＳＣＰ０２，ＳＣＰ０３において採用されている文字列であり、別な暗号化プロトコルでは、別なコマンド文字列が用いられる。なお、この表における「ＳＣＰｘｘ」は、現時点では、GlobalPlatform （登録商標）による仕様化はなされていないが、今後、策定される可能性のある暗号化プロトコルを示している。
【０１９７】
この図１５の表を見ればわかるとおり、同じ暗号アルゴリズムを採用していても、当該暗号アルゴリズムを利用して実行される暗号処理の具体的な手順が異なれば、異なる暗号化プロトコルということになる。たとえば、同じ「ＡＥＳ」という暗号アルゴリズムを採用していても、ＳＣＰ０３とＳＣＰ８１とは、異なる暗号化プロトコルであり、セキュリティ強度にも差が生じることになる。したがって、各暗号アルゴリズムについてのセキュリティ強度の順位を示すリストに代えて、各暗号アルゴリズムを利用して実行される暗号処理の具体的な手順を定める暗号化プロトコルについてのセキュリティ強度の順位を示すリストをセキュリティ強度順位リストとして用意すれば、より細かな順位設定が可能になる。
【０１９８】
図１６は、暗号化プロトコルについてのセキュリティ強度の順位を示すセキュリティ強度順位リストＬ′の具体例を示す図である。このリストＬ′に掲載されているＳＣＰ０３（ＡＥＳ），ＳＣＰ８１（ＡＥＳ），ＳＣＰ８０（Triple-DES），ＳＣＰ０２（Triple-DES），ＳＣＰ０１（Triple-DES）は、それぞれ固有の暗号化プロトコルを示しており、括弧内には、当該暗号化プロトコルが採用する暗号アルゴリズムが記載されている。
【０１９９】
このリストＬ′では、同じ暗号アルゴリズムを採用する暗号化プロトコルに対して、異なる順位が付与されている。たとえば、第１順位Ｌ１にランクされているＳＣＰ０３（ＡＥＳ）と第２順位Ｌ２にランクされているＳＣＰ８１（ＡＥＳ）とは、同じ暗号アルゴリズム「ＡＥＳ」を採用するプロトコルであるが、セキュリティ強度の順位は異なっている。同様に、同じ暗号アルゴリズム「Triple-ＤＥＳ」を採用するプロトコルであっても、ＳＣＰ８０（Triple-DES）およびＳＣＰ０２（Triple-DES）と、ＳＣＰ０１（Triple-DES）とは、異なる順位にランクされている。なお、このセキュリティ強度順位リストＬ′においても、同一順位に複数の暗号化プロトコルをランクさせることが可能であり、ＳＣＰ８０（Triple-DES）およびＳＣＰ０２（Triple-DES）は、いずれも同じ第３順位Ｌ３にランクされている。
【０２００】
図６に示す基本的な実施形態において、順位リスト格納部１２０内に格納するセキュリティ強度順位リストとして、図１６に示すような暗号化プロトコルについての順位リストＬ′を用いるようにした場合、デフォルト暗号鍵の採用条件の判定は、暗号アルゴリズムの順位ではなく、暗号化プロトコルの順位に基づいて行う必要がある。したがって、この場合、暗号鍵書込処理部１４０には、外部装置２００から与えられる書込コマンドに基づいて、鍵テーブルＴに新たな暗号鍵を書き込む暗号鍵書込処理を実行するときに、書込対象となる暗号鍵を利用して実行される暗号化プロトコルを認識する機能をもたせておくようにし、デフォルト情報設定部１３０が、書込対象となる暗号鍵についての暗号アルゴリズムの順位に代えて、暗号化プロトコルの順位を用いて採用条件を満たしているか否かの確認を行うようにすればよい。
【０２０１】
GlobalPlatform （登録商標）の仕様に準拠した暗号鍵Ｋｅｙには、図４(a) に示すように、暗号アルゴリズムを示す種別情報Ａが含まれているので、この種別情報Ａを参照することにより、書込対象となる暗号鍵についての暗号アルゴリズムを認識することができる。しかしながら、暗号鍵Ｋｅｙには、暗号化プロトコルを示す情報は含まれていないので、暗号鍵書込処理部１４０が、書込対象となる暗号鍵について、当該暗号鍵を利用して実行される暗号化プロトコルを認識するためには、若干の工夫が必要になる。
【０２０２】
このような工夫としては、たとえば、特願２０１５−１６８８６８に開示されている手法を利用することが可能である。当該手法では、図１７(a) に示すように、ゾーン設定された鍵テーブルＴ′が利用される。図１７(a) に示す鍵テーブルＴ′は、基本的には、図３に示す鍵テーブルＴと同じものであり、縦方向にキーバージョン番号（key version number）、横方向にキーＩＤ（key ID）を定義したマトリックスによって構成されている。
【０２０３】
ただ、図１７(a) に示す鍵テーブルＴ′には、Ｎ個の格納ゾーンＺ１〜ＺＮが設定されている。各格納ゾーンは、図のマトリックスにおける１行もしくは複数行の領域によって構成される。たとえば、第１番目の格納ゾーンＺ１は、キーバージョン番号「０ｘ０１」で特定される１行分のゾーンであり、第ｉ番目の格納ゾーンＺｉは、キーバージョン番号「０ｘ２０〜０ｘ２２」で特定される３行分のゾーンであり、第Ｎ番目の格納ゾーンＺＮは、キーバージョン番号「０ｘ７Ｅ〜０ｘ７Ｆ」で特定される２行分のゾーンである。
【０２０４】
こうして、Ｎ個の格納ゾーンを設定したら、これらＮ個の格納ゾーンＺ１〜ＺＮを、それぞれ暗号通信処理部１１０がサポートしているＮ通りの暗号化プロトコルＰ１〜ＰＮに対応づける。そして、第ｉ番目（１≦ｉ≦Ｎ）の格納ゾーンＺｉに所属する格納場所には、第ｉ番目の暗号化プロトコルＰｉに用いる暗号鍵を格納する。図１７(b) は、このようなゾーン設定の結果をまとめた表であり、たとえば、暗号通信処理部１１０内やデフォルト情報設定部１３０内に格納しておくようにする。
【０２０５】
図示のとおり、第１番目の格納ゾーンＺ１は、キーバージョン番号の数値範囲「０ｘ０１」で特定される１行分のゾーンであり、第１番目の暗号化プロトコルＰ１が対応づけられている。図１７(a) に示す例では、この格納ゾーンＺ１に暗号鍵ＫｅｙＡ〜ＫｅｙＣが格納されているが、これらの暗号鍵はいずれも第１番目の暗号化プロトコルＰ１に用いる暗号鍵ということになる。
【０２０６】
同様に、第ｉ番目の格納ゾーンＺｉは、キーバージョン番号の数値範囲「０ｘ２０〜０ｘ２２」で特定される３行分のゾーンであり、第ｉ番目の暗号化プロトコルＰｉが対応づけられている。図１７(a) に示す例では、この格納ゾーンＺｉに暗号鍵ＫｅｙＤ〜ＫｅｙＬが格納されているが、これらの暗号鍵はいずれも第ｉ番目の暗号化プロトコルＰｉに用いる暗号鍵ということになる。また、第Ｎ番目の格納ゾーンＺＮは、キーバージョン番号の数値範囲「０ｘ７Ｅ〜０ｘ７Ｆ」で特定される２行分のゾーンであり、第Ｎ番目の暗号化プロトコルＰＮが対応づけられている。図１７(a) に示す例では、この格納ゾーンＺＮに暗号鍵ＫｅｙＭ〜ＫｅｙＲが格納されているが、これらの暗号鍵はいずれも第Ｎ番目の暗号化プロトコルＰＮに用いる暗号鍵ということになる。
【０２０７】
鍵テーブルＴ′上に上述のようなゾーン設定を行えば、キーバージョン番号が特定されれば格納ゾーンが定まり、格納ゾーンが定まれば、対応づけられた暗号化プロトコルが定まることになる。すなわち、キーバージョン番号は、用いる暗号鍵を指定する暗号鍵指定情報としての役割を果たすだけでなく、用いる暗号化プロトコルを指定するプロトコル指定情報としての役割も兼ねることになる。これは、暗号通信路開設コマンドＣＭＤによってキーバージョン番号を指定すれば、暗号化プロトコルの指定も併せて行うことができることを意味する。新たな暗号鍵についての書込コマンドにおいてキーバージョン番号が指定された場合も同様である。
【０２０８】
したがって、図６に示す情報処理装置１００において、新たな暗号鍵についての書込コマンドを受信した暗号鍵書込処理部１４０は、当該書込コマンドにおいて書込場所として指定されるキーバージョン番号によって、書込対象となる暗号鍵について、当該暗号鍵を利用して実行される暗号化プロトコルを認識することが可能になる。そこで、デフォルト情報設定部１３０は、認識された暗号化プロトコルの順位を、図１６に示すようなセキュリティ強度順位リストＬ′上で確認し、当該暗号鍵をデフォルト暗号鍵として採用するための採用条件が満たされているか否かの判定を行うことができる。
【０２０９】
もちろん、暗号化プロトコルを認識する方法は、図１７に示すゾーン設定の方法に限定されるものではなく、この他にも任意の方法を採用することが可能である。
【０２１０】
＜４−４．  デフォルト情報の更新＞  
最後に、デフォルト情報設定部１３０に設定されているデフォルト情報Ｄを更新する変形例を述べる。§３−３では、第３の個別実施形態として、暗号鍵が新たに書き込まれた場合に、逐次、デフォルト情報Ｄを更新し、デフォルト暗号鍵をより順位の高い暗号鍵に変更してゆく実施形態を述べた。このようなデフォルト情報Ｄの更新は、デフォルト暗号鍵のセキュリティ強度を低下させる何らかの要因が発生した場合にも有効である。
【０２１１】
たとえば、デフォルト暗号鍵を利用して開設された暗号通信路を用いて通信を行っている最中に、クラッカーによる不正な攻撃を受けたとすると、当該暗号通信路のセキュリティ強度は低下せざるを得ない。したがって、今後も、同じ暗号通信路を利用し続けることは危険であり、当該暗号通信路の開設に利用されたデフォルト暗号鍵のセキュリティ強度は、セキュリティ強度順位リストＬ上の順位にかかわらず、現実の利用環境下では低下したと判断せざるを得ない。このような場合、別な暗号鍵を新たなデフォルト暗号鍵とするデフォルト情報の更新を行うのが好ましい。
【０２１２】
最近は、暗号通信路に対する攻撃などを検知する様々な手法が開発されており、これらの手法を利用することにより、暗号通信路に対するセキュリティ脅威を検知することが可能である。そこで、デフォルト情報設定部１３０に、開設された暗号通信路に対するセキュリティ脅威を検知する機能をもたせておき、現デフォルト情報によって特定される現デフォルト暗号鍵を利用して開設中の暗号通信路に対するセキュリティ脅威が所定の警戒レベル以上となったとき（たとえば、アタックの回数が所定の回数以上となったとき）に、デフォルト情報Ｄの更新設定を行わせるようにすれば、このようなセキュリティ脅威を回避することができる。
【０２１３】
デフォルト情報Ｄの更新により新たなデフォルト暗号鍵として設定される暗号鍵としては、既に鍵テーブルＴに書き込まれている任意の暗号鍵を選択すればよいが、実用上は、できるだけ現デフォルト暗号鍵のセキュリティ強度と同等の強度をもった暗号鍵を新デフォルト暗号鍵に設定するのが好ましい。これは、本発明が、セキュリティ強度の低い暗号鍵がデフォルト暗号鍵に設定されることを極力避ける、という考えに基づくためである。そのためには、セキュリティ強度順位リストＬ上での順位が、現デフォルト暗号鍵に関する順位に近い別な暗号鍵（たとえば、現デフォルト暗号鍵と同順位の暗号鍵があれば当該暗号鍵、同順位がなければ、よりランクが上の順位の暗号鍵、すなわち、少なくとも同順位以上の暗号鍵）を新たなデフォルト暗号鍵とするデフォルト情報の更新設定を行うようにすればよい。なお、デフォルト暗号鍵が変更された場合、「INITIALIZE UPDATE」コマンドのレスポンスデータに新たなデフォルト暗号鍵を示す情報（キーバージョン番号）が含まれているので、外部装置は新たなデフォルト暗号鍵を知ることができる。
【０２１４】
もちろん、外部装置２００からのコマンドによって、デフォルト暗号鍵を直接変更できるようにしてもよい。この場合は、デフォルト情報設定部１３０に、外部装置２００から与えられるデフォルト情報設定コマンドに基づいて、デフォルト情報を新規設定もしくは更新設定する機能をもたせておけばよい。
【符号の説明】
【０２１５】
１０：スマートフォン
１１：ＳＩＭカード
２０：外部サーバ
１００：情報処理装置
１００Ａ：管理プログラムＳＳＤ１に基づく第１の機能部
１００Ｂ：管理プログラムＳＳＤ２に基づく第２の機能部
１０１：共通順位リスト格納部
１１０，１１０Ａ，１１０Ｂ：暗号通信処理部
１２０，１２０Ａ，１２０Ｂ：順位リスト格納部
１３０，１３０Ａ，１３０Ｂ：デフォルト情報設定部
１４０，１４０Ａ，１４０Ｂ：暗号鍵書込処理部
１５０，１５０Ａ，１５０Ｂ：鍵テーブル格納部
２００：外部装置
Ａ：種別情報
ＡＰ１〜ＡＰ３，ＡＰ０１〜ＡＰ３２：一般アプリケーションプログラム
ＣＭＤ：暗号通信路開設コマンド
Ｄ：デフォルト情報
Ｅ：基準順位
ＩＳＤ：最上位の管理プログラム
Ｋ１〜Ｋ４：暗号鍵
Ｋｅｙ，ＫｅｙＡ〜ＫｅｙＲ：暗号鍵
Ｌ：セキュリティ強度順位リスト／鍵長
Ｌ′：セキュリティ強度順位リスト
Ｌ１〜Ｌ８：順位番号
ＬＡ：個別セキュリティ強度順位リスト
ＬＬ：共通セキュリティ強度順位リスト
Ｐ１，Ｐｉ，ＰＮ：暗号化プロトコル
Ｒ，Ｒ１，Ｒ２：暗号通信路開設ルーチン
Ｓ１〜Ｓ６：ダイアグラムの各ステップ
ＳＤ，ＳＳＤ１〜ＳＳＤ３：管理プログラム
Ｔ，Ｔ′，Ｔ１，Ｔ２：鍵テーブル
Ｖ：鍵値データ
Ｚ１，Ｚｉ，ＺＮ：格納ゾーン
【図１】
0006642060.tif 000002
【図２】
0006642060.tif 000003
【図３】
0006642060.tif 000004
【図４】
0006642060.tif 000005
【図５】
0006642060.tif 000006
【図６】
0006642060.tif 000007
【図７】
0006642060.tif 000008
【図８】
0006642060.tif 000009
【図９】
0006642060.tif 000010
【図１０】
0006642060.tif 000011
【図１１】
0006642060.tif 000012
【図１２】
0006642060.tif 000013
【図１３】
0006642060.tif 000014
【図１４】
0006642060.tif 000015
【図１５】
0006642060.tif 000016
【図１６】
0006642060.tif 000017
【図１７】
0006642060.tif 000018