(57)【要約】【課題】セキュリティを維持しつつ、ＩＣカードに搭載されているアプリケーションのコード部の入れ替えを可能とする実現性の高いＩＣカード、ＩＣカードプログラム及びコード部の入れ替え方法を提供する。【解決手段】ＩＣカード１０の不揮発性メモリに記憶されているアプリケーションＡ２のコード部Ｃ２を新コード部Ｃ２’に入れ替えるコード部の入れ替え方法であって、アプリケーションＡ２のデータ部Ｄ２をカード発行者のみが復号可能なように暗号鍵Ｋ２で暗号化させ、ＩＣカード１０から外部へ出力させ、アプリケーションＡ２を不揮発性メモリから削除し、新コード部Ｃ２’と、データ部Ｄ２とを含む新アプリケーションＡ２’をＩＣカード１０へ入力し、不揮発性メモリに書き込む。【選択図】                図２
2004348526.tif 000002
【特許請求の範囲】
【請求項１】
入れ替えの対象となるコード部を含むアプリケーションを記憶する記憶手段と、
前記記憶手段に記憶されているアプリケーションに含まれるデータ部を所定の者のみが復号可能なように暗号化する暗号化手段と、
前記暗号化手段によって暗号化されたデータ部を外部へ出力する出力手段と
を備えるＩＣカード。
【請求項２】
請求項１に記載のＩＣカードにおいて、
前記所定の者の秘密鍵と対となる公開鍵又は前記所定の者のみが知りうる共通鍵を記憶する暗号鍵記憶手段を備え、
前記暗号化手段は、前記暗号鍵記憶手段によって記憶されている公開鍵又は共通鍵を用いて暗号化を行うこと、
を特徴とするＩＣカード。
【請求項３】
請求項１又は請求項２に記載のＩＣカードにおいて、
前記出力手段によってデータ部が出力された後に、前記記憶手段によって記憶されているアプリケーションを削除する削除手段を備えること、
を特徴とするＩＣカード。
【請求項４】
請求項３に記載のＩＣカードにおいて、
前記削除手段は、外部から入力した前記アプリケーションについての削除証明書の正当性を確認した後に前記アプリケーションを削除すること、
を特徴とするＩＣカード。
【請求項５】
請求項１から請求項４に記載のＩＣカードにおいて、
外部から新コード部と、前記出力手段によって出力されたデータ部又は前記データ部に基づいて更新された新データ部とを含む新アプリケーションを入力する入力手段と、
前記入力手段によって入力された新アプリケーションを前記記憶手段に書き込む書込手段とを備えること、
を特徴とするＩＣカード。
【請求項６】
請求項５に記載のＩＣカードにおいて、
前記入力手段によって入力された新アプリケーションの正当性を前記新アプリケーションについての搭載証明書に基づいて判定する搭載正当性判定手段と、
前記搭載正当性判定手段の判定結果に応じて、前記新アプリケーションの有効化又は無効化を行う判定対応処理手段とを備えること、
を特徴とするＩＣカード。
【請求項７】
入れ替えの対象となるコード部を含むアプリケーションを記憶する記憶手段を備えるＩＣカードに、前記コード部を入れ替えるために実行させるＩＣカードプログラムであって、
外部から所定の指示を受信した場合に、所定の者のみが復号可能なように前記アプリケーションに含まれるデータ部を暗号化する暗号化手順と、
前記暗号化手順おいて暗号化したデータ部を外部へ出力する出力手順と、
前記出力手順においてデータ部を出力した後に、前記記憶手段に記憶されているアプリケーションを削除する削除手順とを備えること、
を特徴とするＩＣカードプログラム。
【請求項８】
請求項７に記載のＩＣカードプログラムにおいて、
新コード部と、前記出力手順において出力したデータ部又は前記データ部に基づいて更新された新データ部とを含む新アプリケーションを入力する入力手順と、
前記入力手順において入力した新アプリケーションを前記記憶手段に書き込む書込手順とを備えること、
を特徴とするＩＣカードプログラム。
【請求項９】
ＩＣカードの記憶手段に記憶されているアプリケーションについて、前記アプリケーションのコード部を入れ替えるコード部の入れ替え方法であって、
前記記憶手段に記憶されているアプリケーションのデータ部を所定の者のみが復号可能なように暗号化させ、前記ＩＣカードから外部へ出力させる暗号化データ部出力ステップと、
前記暗号化データ部出力ステップにおいて出力が行われた後に、前記記憶手段に記憶されているアプリケーションを削除するアプリケーション削除ステップとを備えること、
を特徴とするコード部の入れ替え方法。
【請求項１０】
請求項９に記載のコード部の入れ替え方法において、
新コード部と、前記暗号化データ部出力ステップにおいて出力させたデータ部又は前記データ部に基づいて更新された新データ部とを含む新アプリケーションを前記ＩＣカードへ入力し、前記記憶手段に書き込む新アプリケーション書き込みステップを備えること、
を特徴とするコード部の入れ替え方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶しているアプリケーションのコード部を入れ替えるＩＣカード及びＩＣカードプログラム、コード部の入れ替え方法に関するものである。
【０００２】
【従来の技術】
近年、セキュリティの高さからＩＣカードが様々な態様で使用されている。特に、クレジットやポイント、入退出管理などの複数の機能を実現するために複数のアプリケーションを１枚に収め、発行後にアプリの搭載及び削除が可能なマルチアプリケーションＩＣカードが徐々に浸透しつつある。
アプリケーションは、コード部（プログラム）、コード部の実行によって書き換えられる個人情報などのカード毎に異なるデータであるデータ部などから構成され、ＩＣチップのＥＥＰＲＯＭなどの書き換え可能な不揮発性メモリに搭載されている。
ＩＣカードに搭載されているアプリケーションの使用中にバグが見付かった場合には、カード配布後に、そのコード部（プログラム）を修正する必要が生じる。また、暗号アルゴリズムを初めとするプログラムロジックの発展は急であり、暗号アルゴリズムの寿命がＩＣカードの寿命よりも短い現状においては、最初に搭載した暗号アルゴリズムを新しいものとするなど、同様にカード発行後にアプリケーションのコード部をバージョンアップする必要が生じる。
【０００３】
しかし、コード部のみ修正（入れ替え）を可能とした場合には、不当なカード発行者やハッカーなどの不正者によって、アプリケーションのデータ部を覗き見るプログラムなどの不正なコード部が搭載され、データ部にある暗号鍵や使用者の個人情報などの機密情報が不正者に漏洩する可能性がある。また、入れ替えるコード部の正当性を証明する差し替え証明書などに基づいて入れ替えを行う場合であっても、差し替え証明書が漏洩した場合に別なコード部を搭載される危険性がある。
つまり、図４に示すように、コード部Ｃ’１、データ部Ｄ’１からなるアプリケーションＡ’１（図４（ａ））のコード部Ｃ’１のバージョンアップのため、正当なカード発行者がコード部Ｃ’１’に変更してアプリケーションＡ’１’（図４（ｂ））とした場合には問題ないが、不正なコード部Ｃ’２を搭載してアプリケーションＡ’１”（図４（ｃ））とした場合には、このコード部Ｃ’２を利用してデータ部Ｄ’１を読みだすことで機密情報が不正者に漏洩する可能性がある。
一方、マルチアプリケーションＩＣカードでは、アプリケーションのコード部及びデータ部は対であり、同時に搭載／削除することで、ＩＣカードに既に搭載されている他のアプリケーションから独立させ、機密情報の漏洩を防止している。
【０００４】
しかし、このような方法でセキュリティを向上させることはできるが、コード部の修正や改良を容易に行うことが難しくなり、コード部のみ修正したい場合であっても、データ部と共に削除し、改めて再搭載することになってしまう。この場合、個人の情報や電子マネーなどのデータ部が使用により変更されているにもかかわらず、結果として、アプリケーションの削除と共にデータ部を削除するか、アプリケーションの変更を諦めるかのどちらかとなってしまう。
更に、アプリケーションのコード部及びデータ部を同時に入れ換える場合には、データ部をＩＣカードから読み出し、コード部と共に再搭載することになり、データ部を外に読みだすことでセキュリティが保たれなくなってしまうという問題があった。
そこで、新たなコード部とともに再登録証明書をＩＣカードへ送信し、ＩＣカードが保持していた登録証明書と、再登録証明書を照合した後に新たなコード部を再登録し、再登録証明書を保持することによって、上記問題を解決するマルチアプリケーションＩＣカードがある（例えば、特許文献１参照。）。
【０００５】
【特許文献１】
特開２００３−３６４１９号公報（図１、［０００８］）
【０００６】
【発明が解決しようとする課題】
しかし、このマルチアプリケーションＩＣカードにおいては、ＫＭＡ（ＫｅｙＭａｎａｇｅｍｅｎｔ  Ａｕｔｈｏｒｉｔｙ）などの認証局が元のアプリケーションの登録証明書に基づいて再登録証明書を発行するなど、新たなシステムを構築する負担がかかり、実現性が低くなるおそれがあった。
【０００７】
本発明の課題は、セキュリティを維持しつつ、ＩＣカードに搭載されているアプリケーションのコード部の入れ替えを可能とする実現性の高いＩＣカード、ＩＣカードプログラム及びコード部の入れ替え方法を提供することである。
【０００８】
【課題を解決するための手段】
本発明は、以下のような解決手段により、前記課題を解決する。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。すなわち、請求項１の発明は、入れ替えの対象となるコード部（Ｃ２）を含むアプリケーション（Ａ２）を記憶する記憶手段（１７）と、前記記憶手段に記憶されているアプリケーションに含まれるデータ部（Ｄ２）を所定の者のみが復号可能なように暗号化する暗号化手段（１４１）と、前記暗号化手段によって暗号化されたデータ部を外部へ出力する出力手段（１１，１２）とを備えるＩＣカード（１０）である。
【０００９】
請求項２の発明は、請求項１に記載のＩＣカードにおいて、前記所定の者の秘密鍵と対となる公開鍵又は前記所定の者のみが知りうる共通鍵（Ｋ２）を記憶する暗号鍵記憶手段（１７）を備え、前記暗号化手段は、前記暗号鍵記憶手段によって記憶されている公開鍵又は共通鍵を用いて暗号化を行うこと、
を特徴とするＩＣカード（１０）である。
【００１０】
請求項３の発明は、請求項１又は請求項２に記載のＩＣカードにおいて、前記出力手段によってデータ部が出力された後に、前記記憶手段によって記憶されているアプリケーションを削除する削除手段（１４４）を備えること、を特徴とするＩＣカード（１０）である。
【００１１】
請求項４の発明は、請求項３に記載のＩＣカードにおいて、前記削除手段は、外部から入力した前記アプリケーションについての削除証明書の正当性を確認した後に前記アプリケーションを削除すること、を特徴とするＩＣカード（１０）である。
【００１２】
請求項５の発明は、請求項１から請求項４に記載のＩＣカードにおいて、外部から新コード部（Ｃ２’）と、前記出力手段によって出力されたデータ部（Ｄ２）又は前記データ部に基づいて更新された新データ部とを含む新アプリケーション（Ａ２’）を入力する入力手段（１１，１２）と、前記入力手段によって入力された新アプリケーションを前記記憶手段に書き込む書込手段（１４５）とを備えること、を特徴とするＩＣカード（１０）である。
【００１３】
請求項６の発明は、請求項５に記載のＩＣカードにおいて、前記入力手段によって入力された新アプリケーションの正当性を前記新アプリケーションについての搭載証明書に基づいて判定する搭載正当性判定手段（１４２，１４３）と、前記搭載正当性判定手段の判定結果に応じて、前記新アプリケーションの有効化又は無効化を行う判定対応処理手段（１４４、１４５）とを備えること、を特徴とするＩＣカード（１０）である。
【００１４】
請求項７の発明は、入れ替えの対象となるコード部（Ｃ２）を含むアプリケーション（Ａ２）を記憶する記憶手段（１７）を備えるＩＣカード（１０）に、前記コード部を入れ替えるために実行させるＩＣカードプログラムであって、外部から所定の指示を受信した場合に、所定の者のみが復号可能なように前記アプリケーションに含まれるデータ部（Ｄ２）を暗号化する暗号化手順（Ｓ１１０）と、前記暗号化手順おいて暗号化したデータ部を外部へ出力する出力手順（Ｓ１２０）と、前記出力手順においてデータ部を出力した後に、前記記憶手段に記憶されているアプリケーションを削除する削除手順（Ｓ１３０）とを備えること、を特徴とするＩＣカードプログラムである。
【００１５】
請求項８の発明は、請求項７に記載のＩＣカードプログラムにおいて、新コード部（Ｃ２’）と、前記出力手順において出力したデータ部又は前記データ部に基づいて更新された新データ部とを含む新アプリケーション（Ａ２’）を入力する入力手順（Ｓ１４０）と、前記入力手順において入力した新アプリケーションを前記記憶手段に書き込む書込手順（Ｓ１４０）とを備えること、を特徴とするＩＣカードプログラムである。
【００１６】
請求項９の発明は、ＩＣカード（１０）の記憶手段（１７）に記憶されているアプリケーション（Ａ２）について、前記アプリケーションのコード部（Ｃ２）を入れ替えるコード部の入れ替え方法であって、前記記憶手段に記憶されているアプリケーションのデータ部（Ｄ２）を所定の者のみが復号可能なように暗号化させ、前記ＩＣカードから外部へ出力させる暗号化データ部出力ステップ（Ｓ１１０，Ｓ１２０）と、前記暗号化データ部出力ステップにおいて出力が行われた後に、前記記憶手段に記憶されているアプリケーションを削除するアプリケーション削除ステップ（Ｓ１３０）とを備えること、を特徴とするコード部の入れ替え方法である。
【００１７】
請求項１０の発明は、請求項９に記載のコード部の入れ替え方法において、新コード部（Ｃ２’）と、前記暗号化データ部出力ステップにおいて出力させたデータ部又は前記データ部に基づいて更新された新データ部とを含む新アプリケーション（Ａ２’）を前記ＩＣカードへ入力し、前記記憶手段に書き込む新アプリケーション書き込みステップ（Ｓ１４０）を備えること、を特徴とするコード部の入れ替え方法である。
【００１８】
【発明の実施の形態】
以下、図面などを参照しながら、本発明の実施の形態について、更に詳しく説明する。
（実施形態）
図１は、本発明によるＩＣカードの実施形態を示すブロック図である。
図１に示すように、ＩＣカード１０は、通信部１１、ＩＣチップ１２などを備え、カード発行者によって発行され、管理されているマルチアプリケーションＩＣカードである。ＩＣカード１０は、リーダライタを備える情報処理端末であるＡＴＭなどの外部装置と非接触式又は接触式での通信を行い、外部装置から受信した指示（コマンド）に応じた処理を行い、結果を応答（レスポンス）として返信する。
【００１９】
通信部１１は、例えば、アンテナ又は接触端子などであって、外部装置及びＣＰＵ１４の通信を媒介する。ＩＣチップ１２は、ＣＰＵ１４と、ＣＰＵ１４に接続されたＩ／Ｏインターフェイス１３、ＲＡＭ１５、ＲＯＭ１６及び不揮発性メモリ１７などを備えている。
Ｉ／Ｏインターフェイス１３は、通信部１１及びＣＰＵ１４間の入出力を媒介する入出力インターフェイスである。
ＣＰＵ１４は、種々の演算及び制御を行う、ＩＣカード１０を統括制御する中央処理装置であって、ＲＯＭ１６、不揮発性メモリ１７などのメモリに格納されているプログラムを実行することによって、暗号化部１４１、復号部１４２、判定部１４３、削除部１４４、書き込み部１４５などを実現する。
【００２０】
暗号化部１４１は、不揮発性メモリ１７に記憶されている暗号鍵Ｋ２（後述する図２参照）を用い、ＤＥＳなどの共通鍵暗号方式に基づいて、アプリケーションなどの情報を暗号化する。復号部１４２は、ＲＯＭ１６に記憶されている公開鍵ＰＫｋ（後述する図２参照）を用い、ＲＳＡなどの公開鍵暗号方式に基づいて搭載証明書、削除証明書などの暗号文を復号する。判定部１４３は、復号部１４２によって搭載証明書の復号が行われた場合に、その結果に基づいて搭載証明書が付されたアプリケーションが正当なものであるか否かを判定する。また、判定部１４３は、復号部１４２によって削除証明書の復号が行われた場合に、その結果に基づいて削除証明書が正当なものであるか否か、つまり、削除証明書をＩＣカード１０に提供し、削除を指示する者が指定されたアプリケーションを削除する正当な権限を有するか否かを判定する。削除部１４４は、不揮発性メモリ１７からのデータの削除、書き込み部１４５は、不揮発性メモリ１７へのデータの書き込み又は書き換えを行う。
【００２１】
搭載証明書とは、搭載証明書が付されている、つまり、搭載が指示されているアプリケーションなどの情報が正当なものであること（改竄されていないこと、提供者が正当であること）を証明する情報であって、その具体例は、アプリケーションを特徴づける特徴情報を認証局が自己の秘密鍵ＳＫｋで暗号化し、認証局の公開鍵ＰＫｋを用いて復号を行う者に対して、アプリケーションが正当であることを認証局（暗号化で用いた秘密鍵の所有者）が証明するデジタル証明書である。
削除証明書とは、例えば、削除する対象のアプリケーションを識別するアプリケーションＩＤなどを含む情報を秘密鍵ＳＫｋで暗号化した情報であって、このアプリケーションの削除を指示する者が正当な者であることを認証局（暗号化で用いた秘密鍵の所有者）が証明するデジタル証明書である。なお、アプリケーションの削除とは、物理的にアプリケーションをＩＣカード１０から削除する、無効化するなど、ＩＣカード１０において使用できない状態とすることである。
従って、アプリケーションの搭載又は削除の正当な権限を有する所定の者のみがＩＣカード１０に対してアプリケーションの搭載又は削除を実行することが可能であり、本実施形態においては、カード発行者のみが実行することが可能である。
【００２２】
ＲＡＭ１５、ＲＯＭ１６及び不揮発性メモリ１７は、プログラムなどのＣＰＵ１４の処理に必要な情報を記憶するための記憶手段である。
ＲＡＭ１５は、揮発性メモリであり、ＣＰＵ１４が処理を行うための作業領域として使用される。ＲＯＭ１６は、不揮発性の読み出し専用メモリであって、アプリケーションを実行させるためのオペレーティングシステム（以下、「ＯＳ」という。）、実行環境などの基本ソフトウェアなどを記憶している。また、ＲＯＭ１６は、認証局によって提供された、認証局の秘密鍵ＳＫｋと対になる公開鍵ＰＫｋを記憶している（後述する図２参照）。不揮発性メモリ１７は、ＥＥＰＲＯＭ、フラッシュメモリ、ＦＲＡＭなどの随時書き換え可能な不揮発性のメモリであり、通常ユーザのワークエリア、プログラムエリアなどとして使用される。不揮発性メモリ１７には、複数のアプリケーションＡ１，Ａ２が記憶されている（後述する図２参照。）。
【００２３】
図２は、本発明によるＩＣカードの構造を通信機能の観点から三層に分割して示した概略模式図であって、各図は、データ部Ｄ２の入れ替えにおける３態様を示している。ＩＣカード１０は、下層からハードウェア（Ｈ／Ｗ）であるＩＣチップ１２の層、アプリケーションをハードウェア上で動作させるためのソフトウェア（Ｓ／Ｗ）であるＯＳの層及びアプリケーションＡ１，Ａ２の層から構成されている。
図２（ａ）に示すＩＣカード１０は、発行後に使用者（カード保持者）に送付され、カード保持者によって使用されている状態にある。図２（ａ）に示すように、不揮発性メモリ１７に記憶されている各アプリケーションＡ１，Ａ２は、ファイアウォールＦ１により個別に保護され、アプリケーションＡ１，Ａ２ごとにセキュリティが確保されている。アプリケーションＡ１，Ａ２は、コード部Ｃ１，Ｃ２及びデータ部Ｄ１，Ｄ２と、コード部Ｃ１，Ｃ２及びデータ部Ｄ１，Ｄ２のサイズ、アプリケーションＩＤなどのアプリケーション全体にかかる情報である属性情報とを含んでいる（属性情報は、図示しない。）。アプリケーションの搭載（アプリケーションを使用できる有効なものとして記憶すること。）又は削除は、所定の指示が外部からあった場合に、外部から入力した搭載証明書又は削除証明書に基づいて指示の正当性を確認した上で行われる。
【００２４】
アプリケーションＡ２のコード部Ｃ２は、バージョンアップ、バグなどによって修正する必要があるため、新コード部Ｃ２’へ入れ替えられる対象となる。また、アプリケーションＡ２のデータ部Ｄ２は、ＩＣカード１０の使用によって書き換えられた個人情報やポイント、電子マネーといったカード保持者の何らかの情報を含み、コード部Ｃ２の入れ替えにおいても維持される必要がある。また、データ部Ｄ２は、暗号鍵Ｋ２を含んでいる。
暗号鍵Ｋ２は、外部から読み出しができない機密保持状態で記憶されている。暗号鍵Ｋ２は、共通鍵暗号方式で用いられる暗号鍵であり、カード発行者のみがその内容を知り、暗号化されるなどの機密保持状態でアプリケーションＡ２とともにＩＣカード１０へ搭載される。アプリケーションＡ１，Ａ２をカード発行者に提供したアプリケーションプロバイダがコード部Ｃ１，Ｃ２についての著作権などの権利を有するため、漏洩防止の観点より、コード部Ｃ１，Ｃ２のみをＩＣカード１０から読み出すことはできない。
【００２５】
ここで、図２（ａ）に示すＩＣカード１０の製造及び発行について説明する。
ＩＣチップ１２の製造段階において、ＲＯＭ１６にＯＳ、公開鍵ＰＫｋなどが書き込まれる。
１次発行段階において、搭載証明書を用いて、アプリケーションＡ１及びアプリケーションＡ２を順にＩＣカード１０に搭載する。
２次発行段階において、各アプリケーションＡ１，Ａ２のデータ部Ｄ１，Ｄ２に個人情報や初期データなどを書き込む。
１次及び２次発行は、外部装置であるＩＣカード発行機によりコマンドがＩＣカード１０へ送信され、そのコマンドに応じてＩＣカード１０が処理を行うことによって実行される。発行処理が行われたＩＣカード１０は、所定のカード保持者に配布され、図２（ａ）に示す状態となる。
【００２６】
図３は、本発明によるＩＣカードの動作、本発明によるＩＣカードプログラム及びコード部の入れ替え方法を示すフローチャートである。以下、図２を適宜参照しながらコード部Ｃ２の入れ替えについてＩＣカード１０の処理を中心に説明する。
ステップ１００（以下、「ステップ」を「Ｓ」という。）においてＩＣカード１０は、図２（ａ）の状態であって、カード発行者の管理する外部装置に接続され、コマンドの受信待ちの状態にある。
Ｓ１１０において、ＩＣカード１０は、外部装置からデータ部の読み出しを指示する所定のコマンドを受信し、暗号化部１４１は、アプリケーションＡ２に含まれる暗号鍵Ｋ２を用いて、アプリケーションＡ２のデータ部Ｄ２を暗号化し、コマンドの応答として暗号化されたデータ部Ｄ２を外部装置へ送信する（Ｓ１２０、図２（ｂ））。
【００２７】
Ｓ１３０において、ＩＣカード１０は、外部装置からアプリケーションＡ２の削除を指示するコマンド及び削除証明書を受信し、復号部１４２は、削除証明書を公開鍵ＰＫｋで復号し、判定部１４３がその結果に基づいて削除証明書の正当性を確認し、削除部１４４は、不揮発性メモリ１７に記憶されているアプリケーションＡ２を削除する。正当性が確認できない場合には、ＩＣカード１０は、削除せずにその旨を示すレスポンスを外部装置へ送信する。
外部装置は、記憶している暗号鍵Ｋ２を用いて、ＩＣカード１０から読み出した暗号化されたデータ部Ｄ２を復号する。外部装置は、このデータ部Ｄ２と、アプリケーションプロバイダから供給された修正済みの新たなコード部Ｃ２’とを含む新たなアプリケーションＡ２’を所定のコマンド及び搭載証明書とともにＩＣカード１０へ送信する。
【００２８】
ＩＣカード１０の復号部１４２は、受信した搭載証明書を公開鍵ＰＫｋで復号し、判定部１４３がその結果に基づいてアプリケーションＡ２’の正当性を確認し、書き込み部１４５は、アプリケーションＡ２’を有効なものとして（使用可能な状態で）不揮発性メモリ１７に書き込み（Ｓ１４０、図２（ｃ））、処理を終了する（Ｓ１５０）。判定部１４３が正当性を確認できない場合には、削除部１４４は、受信したアプリケーションＡ２’を削除し、ＩＣカード１０は、その旨を示すレスポンスを外部装置へ送信する。
なお、外部装置は、ＩＣカード１０から読み出した暗号化されたデータ部Ｄ２を復号せず、そのまま新たなコード部Ｃ２’と合わせてＩＣカード１０へ送信し、ＩＣカード１０内で暗号鍵Ｋ２を用いて復号してもよい。また、カード発行者（外部装置）は、取り出したデータ部Ｄ２を変更する必要があれば復号して書き換え、新たなデータ部Ｄ２’とすることも可能である。データ部Ｄ２の復号は、漏洩を避ける環境において行われる必要がある。
【００２９】
このように、本実施形態によれば、データ部Ｄ２を読み出す場合には、暗号鍵Ｋ２を用いてアプリケーションＡ２のデータ部Ｄ２をカード発行者のみが復号可能なように暗号化するため、第三者が不正に読み出しコマンドを利用して取り出したデータ部Ｄ２を利用することを防止するなど、セキュリティを維持し、ＩＣカード１０の使用により書き換えられたデータ部Ｄ２の内容をそのままの状態で又は更新して、コード部Ｃ２を入れ替え、バージョンアップ、バグ修正などを行うことが可能となった。
また、搭載証明書を利用して新たなアプリケーションＡ２’の搭載を行うため、コード部Ｃ２’だけを分けて搭載する場合に起こりうる不正なコード部へのすり替えを防止し、セキュリティを維持することが可能となった。
【００３０】
なお、カード発行者のホストコンピュータ、外部装置及びＩＣカード間の通信において搭載証明書が不正者に漏洩した場合であっても、アプリケーションＡ２’のコード部Ｃ２’及びデータ部Ｄ２を同時に搭載しなければならず、ＩＣカード１０に搭載済みのアプリケーションＡ２’のデータ部Ｄ２を覗き見ることは不可能である。
更に、ＩＣカード１０は、削除証明書によって正当性を確認した後にコード部Ｃ２及びデータ部Ｄ２を共に削除するため、セキュリティを維持することが可能となった。
更にまた、ＩＣカード１０は、従来から利用されている搭載証明書及び削除証明書を利用してアプリケーションの搭載及び削除を行うなど、容易な仕組みによってコード部Ｃ２の入れ替えを行うため、システム構築などの負担をかけず、上記各効果を容易に実現することが可能となった。
【００３１】
（変形形態）
以上説明した実施形態に限定されることなく、種々の変形や変更が可能であって、それらも本発明の均等の範囲内である。例えば、ＩＣカード１０は、アプリケーションＡ２のデータ部Ｄ２に、読み出す場合に暗号化するための暗号鍵Ｋ２を含めて不揮発性メモリ１７に記憶しているが、ＩＣチップ１２の製造時にＲＯＭ１６に記憶させてもよく、カード発行者のみが知りうるようにＩＣカード１０内に格納できればよい。
【００３２】
また、暗号鍵Ｋ２は、共通鍵暗号化方式における共通鍵のみに限られず、例えば、公開鍵暗号方式における公開鍵などの暗号鍵であってもよい。復号できる者を発行者のみに限定するように暗号化できる暗号鍵であればよい。
更に、暗号鍵Ｋ２をＩＣカード１０内で生成し、復号できる者をこのＩＣカード１０のみに限定してもよい。ＩＣカード１０外部では、データ部Ｄ２の復号を行うことができなくなり、セキュリティを向上することが可能となる。なお、外部で復号を行う必要がある場合には、所定の条件の下、暗号鍵Ｋ２をＩＣカード１０から読み出すことができるようにしてもよい。
更にまた、機密性が保持できれば、暗号鍵Ｋ２をホストコンピュータや端末などの外部装置からＩＣカード１０へ送信し、格納してもよい。
【００３３】
ＩＣカード１０は、外部装置と通信を行うことによってデータ部Ｄ２の入れ替えを一連の処理として実行するが、例えば、先ず、暗号化されたデータ部Ｄ２を出力し、アプリケーションＡ２を削除して一旦処理を終了し、改めて、新たなアプリケーションＡ２’の搭載を行ってもよい。このような場合には、各処理における外部装置が同一である必要はない。
また、ＩＣカード１０から暗号化されたデータ部Ｄ２を読み出し、このデータ部Ｄ２を含む新たなアプリケーションＡ２’をこのＩＣカード１０へ戻しているが、新たなアプリケーションＡ２’を他のＩＣカードへ搭載してもよい。
更に、ＩＣカード１０は、外部装置から受信した所定のコマンドに応じて、暗号化されたデータ部Ｄ２を出力し、同様に、他の所定のコマンドに応じて、アプリケーションＡ２’の搭載を行っているが、これらの処理をＩＣカード１０に実行させるために外部装置からＩＣカード１０へ送信するコマンドの数は、これに限られず、例えば、外部装置からデータ部Ｄ２の暗号化を指示する所定のコマンド、暗号化したデータ部Ｄ２の出力を指示する所定のコマンドなどを送信してもよい。
【００３４】
ＩＣカード１０は、搭載証明書に基づいて正当性を確認したアプリケーションＡ２’を有効なものとして不揮発性メモリ１７に書き込むが、搭載証明書に基づいた判定の処理と、その判定結果に応じた処理は、これに限定されず、受信したアプリケーションＡ２’を先ず不揮発性メモリ１７に書き込み、正当性が確認できない場合に削除してもよい。
【００３５】
ＩＣカード１０は、搭載証明書、削除証明書に基づいて、アプリケーションの搭載指示、削除指示の正当性を確認するための公開鍵ＰＫｋをＲＯＭ１６に記憶しているが、不揮発性メモリ１７に記憶していてもよい。アプリケーションＡ１，Ａ２をＩＣカード１０に搭載する前に予めＩＣカード１０内に記憶されていればよい。
【００３６】
ＩＣカード１０に搭載するアプリケーションの正当性を確認するためのアプリケーション搭載証明書は、特徴情報を秘密鍵で暗号化したものとしたが、これに限定されず、ＩＣカード１０内に記憶されている公開鍵ＰＫｋを用いて復号を行い、対象となるアプリケーションの正当性を確認することができればよい。削除証明書についても同様である。
【００３７】
【発明の効果】
以上詳しく説明したように、本発明によるＩＣカード、ＩＣカードプログラム及びコード部の入れ替え方法によれば、以下の効果を得ることが可能となった。
（１）共通鍵、公開鍵などでデータ部を所定の者のみが復号可能なように暗号化し、外部へ出力することによって、データ部の漏洩を防止し、セキュリティを維持するとともに、カード発行後に変更されたデータ部を活用できる状態とする。
（２）データ部毎、コード部毎でなく、対象アプリケーション単位で搭載又は削除することによって、セキュリティを維持する。
（３）従来と同様に、削除証明書の正当性を確認した後に対象アプリケーションを削除することによって、セキュリティを維持するとともにコード部の入れ替えを容易化し、実現性を向上する。
（４）新コード部と、データ部又は新データ部とを含む新アプリケーションを入力し、書き込むことによって、セキュリティを維持しつつ、コード部の入れ替え、又は、コード部の入れ替え及びデータ部の更新を可能とする。
（５）従来と同様に、搭載証明書に基づいて新アプリケーションの正当性を判定し、判定結果に応じた処理を行うことによって、セキュリティを維持するとともにコード部の入れ替えを容易化し、実現性を向上する。
【図面の簡単な説明】
【図１】本発明によるＩＣカードの実施形態を示すブロック図である。
【図２】本発明によるＩＣカードの構造を通信機能の観点から三層に分割して示した概略模式図である。
【図３】本発明によるＩＣカードの動作、本発明によるＩＣカードプログラム及びコード部の入れ替え方法を示すフローチャートである。
【図４】従来のコード部の入れ替えにおける問題を説明する図である。
【符号の説明】
１０  ＩＣカード
１１  通信部
１２  ＩＣチップ
１３  Ｉ／Ｏインターフェイス
１４  ＣＰＵ
１５  ＲＡＭ
１６  ＲＯＭ
１７  不揮発性メモリ
１４１  暗号化部
１４２  復号部
１４３  判定部
１４４  削除部
１４５  書き込み部
【図１】
2004348526.tif 000003
【図２】
2004348526.tif 000004
【図３】
2004348526.tif 000005
【図４】
2004348526.tif 000006