(57)【要約】【課題】どのような種類のＩＣカードであっても、高速に発行できるＩＣカード発行方法およびＩＣカードを提供する。【解決手段】ＩＣカード１は、電気的に書換え可能なＥＥＰＲＯＭ２１と、発行時に必要な共通データ１２０を記憶しているＲＯＭ２２などとを備える。ＩＣカード発行機が、共通データ１２０の書込み先となるＥＥＰＲＯＭ２１の物理的な書込み開始アドレス，共通データ１２０の書込み元となるＲＯＭ２２の物理的な読出し開始アドレスおよび共通データ１２０のサイズを示すレングスデータを有するメモリコピーコマンドと発行時に必要な個別データとを含むデータをＩＣカード１に送信すると、ＩＣカード１は、ＩＣカード発行機から受信したデータに基づいて、ＥＥＰＲＯＭ２１に共通データ１２０および個別データを書込む。【選択図】図８
2007323133.tif 000002
【特許請求の範囲】
【請求項１】
電気的に書換え可能な不揮発性メモリを備えたＩＣカードを発行するＩＣカード発行方法であって、
前記ＩＣカードの所定のメモリに、発行時に必要な共通データを記憶させる記憶工程と、
ＩＣカード発行機に、メモリコピーコマンドと発行時に必要な個別データとを含むデータを設定する設定工程と、
前記設定工程で設定したデータを、前記ＩＣカード発行機が、前記ＩＣカードに送信する送信工程と、
前記送信工程によって送信されたデータ、および、前記共通データの書込み先となる前記不揮発性メモリの物理的な書込み開始アドレス，前記共通データの書込み元となる前記所定のメモリの物理的な読出し開始アドレスおよび前記共通データのサイズを示すレングスデータに基づいて、前記ＩＣカードが、前記不揮発性メモリに前記共通データおよび前記個別データを書込む書込み工程と、
を備えるＩＣカード発行方法。
【請求項２】
請求項１に記載のＩＣカード発行方法において、
前記書込み開始アドレス，前記読出し開始アドレスおよび前記レングスデータは、前記メモリコピーコマンドに含まれていること、
を特徴とするＩＣカード発行方法。
【請求項３】
請求項１に記載のＩＣカード発行方法において、
前記書込み開始アドレス，前記読出し開始アドレスおよび前記レングスデータは、前記所定のメモリに記憶されていること、
を特徴とするＩＣカード発行方法。
【請求項４】
請求項１から請求項３のいずれかに記載のＩＣカード発行方法において、
前記ＩＣカードは、バーチャルマシンを備えたＩＣカードであり、
前記記憶工程では、前記ＩＣカード以外の装置を用い、前記バーチャルマシンで解釈実行される命令により作動するコマンドを利用して前記ＩＣカードを発行したとき、前記不揮発性メモリに形成されるメモリマップを作成し、そのメモリマップを前記共通データとして前記ＩＣカードの所定のメモリに記憶させること、
を特徴とするＩＣカード発行方法。
【請求項５】
請求項１から請求項４のいずれかに記載のＩＣカード発行方法において、
前記送信工程では、前記ＩＣカード発行機が、前記個別データの内容の全て或いは一部を平文で前記ＩＣカードに送信し、
前記書込み工程では、前記ＩＣカードが、前記ＩＣカードに実装されたＩＣチップで解釈実行されるマシン語により作動するコマンドによって、前記平文の内容を前記不揮発性メモリに書込むこと、
を特徴とするＩＣカード発行方法。
【請求項６】
請求項１から請求項５のいずれかに記載のＩＣカード発行方法において、
前記送信工程では、前記ＩＣカード発行機が、前記個別データの内容の全て或いは一部を暗号化した暗号文を前記ＩＣカードに送信し、
前記書込み工程では、前記ＩＣカードが、前記ＩＣカードに実装されたＩＣチップで解釈実行されるマシン語により作動するコマンドによって、前記ＩＣカードの内部に記憶された暗号鍵を用いて前記暗号文を復号し、復号した内容を前記不揮発性メモリに書込むこと、
を特徴とするＩＣカード発行方法。
【請求項７】
請求項１から請求項６のいずれかに記載のＩＣカード発行方法において、
前記不揮発性メモリに書込んだデータの内容の整合性を確認する工程を備えること、
を特徴とするＩＣカード発行方法。
【請求項８】
請求項１から請求項７のいずれかに記載のＩＣカード発行方法において、
前記ＩＣカードが活性化されたときに前記ＩＣカードが参照し、前記ＩＣカードに実装されたＩＣチップで解釈実行されるマシン語により作動するコマンドによる前記ＩＣカードの発行が可能または不可能な状態であることが示され、前記ＩＣカード自身が発行を制御するための発行フラグが前記不揮発性メモリに備えられ、前記ＩＣカード発行方法は、前記ＩＣカードの前記発行フラグを不可能の状態にセットする工程を備えること、
を特徴とするＩＣカード発行方法。
【請求項９】
請求項１から請求項８のいずれかに記載のＩＣカード発行方法によって発行されたＩＣカード。
【請求項１０】
電気的に書換え可能な不揮発性メモリ、および、発行時に必要な共通データが記憶された所定のメモリを備え、バーチャルマシンを有するＩＣカードであって、
前記ＩＣカードは発行時に利用され、前記ＩＣカードに実装されたＩＣチップで解釈実行されるマシン語により作動する発行コマンドとして、前記共通データの書込み先となる前記不揮発性メモリの物理的な書込み開始アドレス，前記共通データの書込み元となる前記所定のメモリの物理的な読出し開始アドレスおよび前記共通データのサイズを示すレングスデータに基づいて、前記不揮発性メモリに前記所定のメモリの共通データを書込むメモリコピーコマンドを備えること、
を特徴とするＩＣカード。
【請求項１１】
請求項１０に記載のＩＣカードにおいて、
前記ＩＣカードは前記発行コマンドとして、ＩＣカード発行機から送信されてくる個別データを、前記ＩＣカードの前記不揮発性メモリの指定されたアドレス空間に書込むライトコマンドを備えること、
を特徴とするＩＣカード。
【請求項１２】
請求項１０または請求項１１に記載のＩＣカードにおいて、
前記ＩＣカードは前記発行コマンドとして、ＩＣカード発行機から送信されてくる暗号化された個別データを、前記ＩＣカードの内部に記憶された暗号鍵を用いて復号し、復号した内容を指定されたアドレス空間に書込む暗号ライトコマンドを備えること、
を特徴とするＩＣカード。
【請求項１３】
請求項１０から請求項１２のいずれかに記載のＩＣカードにおいて、
前記ＩＣカードは前記発行コマンドとして、前記不揮発性メモリに書込んだデータの内容の整合性を確認するメモリチェックコマンドを備えること、
を特徴とするＩＣカード。
【請求項１４】
請求項１０から請求項１３のいずれかに記載のＩＣカードにおいて、
前記ＩＣカードの前記不揮発性メモリには、活性化されたときに参照し、前記ＩＣカードに備えられた前記発行コマンドの実行を制御するための発行フラグが設けられ、前記ＩＣカードが活性化されたときに前記発行フラグが発行不可に設定されている場合は、前記発行コマンドを実行しない手段を備えること、
を特徴とするＩＣカード。
【請求項１５】
請求項１０から請求項１４のいずれかに記載のＩＣカードにおいて、
前記メモリチェックコマンドは、前記不揮発性メモリの指定されたアドレス空間の内容から、予め定められたアルゴリズムに従い演算されるチェックコードと、端末装置から送信される前記チェックコードの期待値とを照合するコマンドであること、
を特徴とするＩＣカード。
【請求項１６】
請求項１０から請求項１５のいずれかに記載のＩＣカードにおいて、
前記所定のメモリは、前記書込み開始アドレス，前記読出し開始アドレスおよび前記レングスデータを記憶していること、
を特徴とするＩＣカード。
【請求項１７】
請求項１０から請求項１６のいずれかに記載のＩＣカードにおいて、
前記所定のメモリは、読出し専用の不揮発性メモリであること、
を特徴とするＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣカードを発行するＩＣカード発行方法およびＩＣカードの技術分野に属し、更に詳しくは、バーチャルマシンを備えたＩＣカードを発行するための技術分野に属する。
【背景技術】
【０００２】
ＩＣカードとは、クレジットカードサイズのカード媒体にＩＣチップを埋め込み、ＩＣチップのメモリにデータを記録できるカードである。近年、ＩＣカードはキャッシュカード、クレジットカードまたは電子マネーなどに幅広い用途で利用されている。
【０００３】
従来、ＩＣカード用ＩＣチップの電気的に書換え可能な不揮発性メモリ（例えば、ＥＥＰＲＯＭ）の容量は非常に小さい容量（例えば、数Ｋバイト）であったため、アプリケーションの追加/削除が不可能なＮａｔｉｖｅＩＣカードが主流であった。
【０００４】
しかし、近年の半導体技術の進歩によって、現在は、数十Ｋバイトから１００Ｋバイトを超えるＥＥＰＲＯＭの容量を有するＩＣカード用ＩＣチップがリリースされていることもあり、Ｊａｖａ（登録商標）に代表される高級言語の解釈機能を備えたバーチャルマシンが組み込まれ、アプリケーションの追加/削除が可能なマルチアプリケーションＩＣカードが普及しつつある。
【０００５】
バーチャルマシンを備えたマルチアプリケーションＩＣカードにおいては、バーチャルマシンに対応した高級言語でアプリケーションの開発が行えるため、アプリケーションの開発効率が向上するなどのメリットはあるが、大量にＩＣカードを発行するＩＣカード製造会社では、１枚のＩＣカードを発行する時間が長くなってしまう問題がある。
【０００６】
ＩＣカード自体に工夫を施し、高速でＩＣカードを発行する一つの発明として、ＩＣカードの発行内容が同じ場合には、マスターとなるＩＣカードを予め所定のコマンドで発行し、発行後のメモリマップをダンプし、他のＩＣカードにコピーすることで、ＩＣカードへ送信するコマンドを減らし、ＩＣカードがコマンドを処理する時間を短縮することで、高速にＩＣカードを発行する発明が特許文献１で開示されている。
【０００７】
また、特許文献２では、ＩＣカード発行時はカード発行専用通信経路を用いてデータ通信することによって、一般的に用いられるＩＳＯプロトコルの時間制限に制約されることなく、高速で発行データの書込みを行なうことのできる技術が開示されている。
【０００８】
しかし、これらの技術は、上述のマルチアプリケーションＩＣカードを、バーチャルマシンを利用して発行するときにバーチャルマシンに起因する時間、例えば、バーチャルマシンが動作するために必要な時間や、バーチャルマシンが高級言語を解釈する時間を削減することができない。
【特許文献１】特願２００５−３７６９７７号公報
【特許文献２】特開２００３−１６４０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、本発明は、どのような種類のＩＣカードであっても、ＩＣカードを高速に発行することができるＩＣカード発行方法および本発明のＩＣカード発行方法に必要なＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決するために、請求項１の発明は、電気的に書換え可能な不揮発性メモリを備えたＩＣカードを発行するＩＣカード発行方法であって、前記ＩＣカードの所定のメモリに、発行時に必要な共通データを記憶させる記憶工程と、ＩＣカード発行機に、メモリコピーコマンドと発行時に必要な個別データとを含むデータを設定する設定工程と、前記設定工程で設定したデータを、前記ＩＣカード発行機が、前記ＩＣカードに送信する送信工程と、前記送信工程によって送信されたデータ、および、前記共通データの書込み先となる前記不揮発性メモリの物理的な書込み開始アドレス，前記共通データの書込み元となる前記所定のメモリの物理的な読出し開始アドレスおよび前記共通データのサイズを示すレングスデータに基づいて、前記ＩＣカードが、前記不揮発性メモリに前記共通データおよび前記個別データを書込む書込み工程と、を備えるＩＣカード発行方法である。
【００１１】
請求項２の発明は、請求項１に記載のＩＣカード発行方法において、前記書込み開始アドレス，前記読出し開始アドレスおよび前記レングスデータは、前記メモリコピーコマンドに含まれていること、を特徴とするＩＣカード発行方法である。
【００１２】
請求項３の発明は、請求項１に記載のＩＣカード発行方法において、前記書込み開始アドレス，前記読出し開始アドレスおよび前記レングスデータは、前記所定のメモリに記憶されていること、を特徴とするＩＣカード発行方法である。
【００１３】
請求項４の発明は、請求項１から請求項３のいずれかに記載のＩＣカード発行方法において、前記ＩＣカードは、バーチャルマシンを備えたＩＣカードであり、前記記憶工程では、前記ＩＣカード以外の装置を用い、前記バーチャルマシンで解釈実行される命令により作動するコマンドを利用して前記ＩＣカードを発行したとき、前記不揮発性メモリに形成されるメモリマップを作成し、そのメモリマップを前記共通データとして前記ＩＣカードの所定のメモリに記憶させること、を特徴とするＩＣカード発行方法である。
【００１４】
請求項５の発明は、請求項１から請求項４のいずれかに記載のＩＣカード発行方法において、前記送信工程では、前記ＩＣカード発行機が、前記個別データの内容の全て或いは一部を平文で前記ＩＣカードに送信し、前記書込み工程では、前記ＩＣカードが、前記ＩＣカードに実装されたＩＣチップで解釈実行されるマシン語により作動するコマンドによって、前記平文の内容を前記不揮発性メモリに書込むこと、を特徴とするＩＣカード発行方法である。
【００１５】
請求項６の発明は、請求項１から請求項５のいずれかに記載のＩＣカード発行方法において、前記送信工程では、前記ＩＣカード発行機が、前記個別データの内容の全て或いは一部を暗号化した暗号文を前記ＩＣカードに送信し、前記書込み工程では、前記ＩＣカードが、前記ＩＣカードに実装されたＩＣチップで解釈実行されるマシン語により作動するコマンドによって、前記ＩＣカードの内部に記憶された暗号鍵を用いて前記暗号文を復号し、復号した内容を前記不揮発性メモリに書込むこと、を特徴とするＩＣカード発行方法である。
【００１６】
請求項７の発明は、請求項１から請求項６のいずれかに記載のＩＣカード発行方法において、前記不揮発性メモリに書込んだデータの内容の整合性を確認する工程を備えること、を特徴とするＩＣカード発行方法である。
【００１７】
請求項８の発明は、請求項１から請求項７のいずれかに記載のＩＣカード発行方法において、前記ＩＣカードが活性化されたときに前記ＩＣカードが参照し、前記ＩＣカードに実装されたＩＣチップで解釈実行されるマシン語により作動するコマンドによる前記ＩＣカードの発行が可能または不可能な状態であることが示され、前記ＩＣカード自身が発行を制御するための発行フラグが前記不揮発性メモリに備えられ、前記ＩＣカード発行方法は、前記ＩＣカードの前記発行フラグを不可能の状態にセットする工程を備えること、を特徴とするＩＣカード発行方法である。
【００１８】
請求項９の発明は、請求項１から請求項８のいずれかに記載のＩＣカード発行方法によって発行されたＩＣカードである。
【００１９】
請求項１０の発明は、電気的に書換え可能な不揮発性メモリ、および、発行時に必要な共通データが記憶された所定のメモリを備え、バーチャルマシンを有するＩＣカードであって、前記ＩＣカードは発行時に利用され、前記ＩＣカードに実装されたＩＣチップで解釈実行されるマシン語により作動する発行コマンドとして、前記共通データの書込み先となる前記不揮発性メモリの物理的な書込み開始アドレス，前記共通データの書込み元となる前記所定のメモリの物理的な読出し開始アドレスおよび前記共通データのサイズを示すレングスデータに基づいて、前記不揮発性メモリに前記所定のメモリの共通データを書込むメモリコピーコマンドを備えること、を特徴とするＩＣカードである。
【００２０】
請求項１１の発明は、請求項１０に記載のＩＣカードにおいて、前記ＩＣカードは前記発行コマンドとして、ＩＣカード発行機から送信されてくる個別データを、前記ＩＣカードの前記不揮発性メモリの指定されたアドレス空間に書込むライトコマンドを備えること、を特徴とするＩＣカードである。
【００２１】
請求項１２の発明は、請求項１０または請求項１１に記載のＩＣカードにおいて、前記ＩＣカードは前記発行コマンドとして、ＩＣカード発行機から送信されてくる暗号化された個別データを、前記ＩＣカードの内部に記憶された暗号鍵を用いて復号し、復号した内容を指定されたアドレス空間に書込む暗号ライトコマンドを備えること、を特徴とするＩＣカードである。
【００２２】
請求項１３の発明は、請求項１０から請求項１２のいずれかに記載のＩＣカードにおいて、前記ＩＣカードは前記発行コマンドとして、前記不揮発性メモリに書込んだデータの内容の整合性を確認するメモリチェックコマンドを備えること、を特徴とするＩＣカードである。
【００２３】
請求項１４の発明は、請求項１０から請求項１３のいずれかに記載のＩＣカードにおいて、前記ＩＣカードの前記不揮発性メモリには、活性化されたときに参照し、前記ＩＣカードに備えられた前記発行コマンドの実行を制御するための発行フラグが設けられ、前記ＩＣカードが活性化されたときに前記発行フラグが発行不可に設定されている場合は、前記発行コマンドを実行しない手段を備えること、を特徴とするＩＣカードである。
【００２４】
請求項１５の発明は、請求項１０から請求項１４のいずれかに記載のＩＣカードにおいて、前記メモリチェックコマンドは、前記不揮発性メモリの指定されたアドレス空間の内容から、予め定められたアルゴリズムに従い演算されるチェックコードと、端末装置から送信される前記チェックコードの期待値とを照合するコマンドであること、を特徴とするＩＣカードである。
【００２５】
請求項１６の発明は、請求項１０から請求項１５のいずれかに記載のＩＣカードにおいて、前記所定のメモリは、前記書込み開始アドレス，前記読出し開始アドレスおよび前記レングスデータを記憶していること、を特徴とするＩＣカードである。
【００２６】
請求項１７の発明は、請求項１０から請求項１６のいずれかに記載のＩＣカードにおいて、前記所定のメモリは、読出し専用の不揮発性メモリであること、を特徴とするＩＣカードである。
【発明の効果】
【００２７】
本発明によれば、ＩＣカードの所定のメモリに、発行時に必要な共通データをあらかじめ記憶させておき、書込み開始アドレス，読出し開始アドレスおよびレングスデータに基づいて、ＩＣカード自身に共通データの書込み処理を行わせることができるので、ＩＣカードの発行時間を大幅に短縮することができる。
また、書込み開始アドレス，読出し開始アドレスおよびレングスデータをメモリコピーコマンドに含ませることによって、様々な状況に合わせた各値の設定が可能となる。
さらに、書込み開始アドレス，読出し開始アドレスおよびレングスデータを所定のメモリに記憶させることによって、これらのデータをＩＣカード発行機に設定する手間が省け、発行時間をより短縮することができる。
【００２８】
また、ＩＣカード以外の装置（開発用エミュレータ等）を用い、バーチャルマシンで解釈実行される命令により作動するコマンドを利用して前記ＩＣカードを発行したとき、前記不揮発性メモリに形成されるメモリマップを作成し、作成したメモリマップの内容を共通データとしてＩＣカードの所定のメモリに記憶させておき、ＩＣカードに実装されたＩＣチップで解釈実行されるマシン語により作動するコマンドによって、ＩＣカードの不揮発性メモリのアドレス空間にコピーすることで、ＩＣカード発行時にＩＣカードに送信するコマンドを減らすことができるとともに、バーチャルマシンを作動させることなく発行できるため、１枚当たりのＩＣカード発行時間を短縮できる。
【００２９】
なお、不揮発性メモリのアドレス空間にコピーされる内容は、本来、バーチャルマシンで解釈実行される命令により作動するコマンドを利用したときに形成されるメモリマップの内容であるため、前記ＩＣカードにコピーした後でもバーチャルマシンは前記不揮発性メモリに正常にアクセスできる。なお、作成したメモリマップの内容を不揮発性メモリのアドレス空間にコピーする際は、大量なデータが一度に不揮発性メモリに書込まれるため、不揮発性メモリの内容の整合性を確認することが望ましい。
【００３０】
ここで、不揮発性メモリの内容の整合性確認は、不揮発性メモリの指定されたアドレス空間から演算されるチェックコードを用いて確認する方法が望ましい。なお、チェックコードとは、チェックサム、ＤＥＳ鍵を用いたＭＡＣ（Message Authentication Code）や、ＳＨＡ１によって演算されるハッシュ値などを意味する。
【００３１】
加えて、個別データの内容を暗号化した暗号文をＩＣカードの内部に記憶された暗号鍵を用いて暗号文を復号し、復号した内容を不揮発性メモリのアドレス空間に書込むことで、例えば、暗証番号などの個人情報がＩＣカードとＩＣカード発行機の通信中に盗聴されることを防止できる。
【発明を実施するための最良の形態】
【００３２】
ここから、本発明に関わるＩＣカード発行システムおよびＩＣカード１について、図を参照しながら詳細に説明する。図１は、ＩＣカード発行システムのアーキテクチャを説明する図である。図１に示したようにＩＣカード発行システムは、電気的に書換え可能な不揮発性メモリ（ここでは、ＥＥＰＲＯＭ）を有するＩＣカード１と、ＩＣカード１のＥＥＰＲＯＭにデータを書込むＩＣカード発行機３とから構成される。
【００３３】
図１で示したＩＣカード１は、Ｊａｖａ（登録商標）やＭＵＬＴＯＳ（登録商標）などに代表されるバーチャルマシンが実装されたマルチアプリケーションＩＣカードで、バーチャルマシンで解釈実行される命令で記述されたアプリケーションを、ＩＣカード１のＥＥＰＲＯＭに登録／削除できる。
【００３４】
本発明に係るＩＣカード１は発行専用のコマンドである複数の発行コマンドを有する。また、ＩＣカード１は、ＩＣカード１のバーチャルマシンで解釈実行される命令により作動するコマンドを利用してＩＣカード１を発行したときＥＥＰＲＯＭに形成されるメモリマップを自身のＲＯＭに記憶している。
ＩＣカード１を発行するためのＩＣカード発行機３は、複数の発行コマンドを組み合せてＩＣカード１に送信し、メモリマップの全て或いは一部の内容をＩＣカード１のＲＯＭからＥＥＰＲＯＭに書込ませることで、ＩＣカード１を発行する。
【００３５】
この発行コマンドはＩＣカード１に実装されたＩＣチップのＣＰＵに対応したマシン語で記述され、発行時はバーチャルマシンが起動することなく、ＩＣカード１を発行できるため、バーチャルマシンが動作するために必要な時間を削減でき、１枚のＩＣカード１の発行に要する時間を短縮することができる。
【００３６】
図２は、図１で示したＩＣカード１に実装されるＩＣチップ２の内部構成図で、図３は、図１で示したＩＣカード発行システムの機能構成図である。
図２に示したようにＩＣカード１のＩＣチップ２には、演算機能およびＩＣチップ２が具備するデバイスを制御する機能を備えた中央演算装置２０（CPU：Central Processing Unit）、読出し専用の不揮発性メモリ２２（ROM：Read Only Memory）、電気的に書換え可能な不揮発性メモリとしてＥＥＰＲＯＭ２１（EEPROM：Electrically Erasable Programmable Read-Only Memoryの略）、揮発性メモリとしてランダムアクセスメモリ２３（RAM：Random Access Memory）、および、外部の端末装置とデータ通信するための接触Ｉ／Ｆ回路２４と、暗号演算回路２５を少なくとも備えている。
【００３７】
本発明は、ＩＣカード１に実装されるＩＣチップ２の仕様をなんら限定するものではなく、ＩＣカード１の用途に適した仕様のＩＣチップ２を選択することができる。例えば、ＲＯＭ２２およびＥＥＰＲＯＭ２１の容量については限定しないし、書換え可能な不揮発性メモリはフラッシュメモリなどであっても構わない。またＩＣチップ２は乱数を生成する乱数生成回路などの図示していない他のデバイスを備えていても構わない。さらに、ＩＣチップ２は、ＲＯＭ２２を搭載せずに、書換え可能な不揮発性メモリだけを搭載しているチップであってもよい。なお、この場合、後述する記憶工程では、ＩＣ製造メーカの工場などで一括で共通データを書換え可能な不揮発性メモリに記憶させる。
【００３８】
なお、図１においては、ＩＣカード１を接触ＩＣカードとして図示しているが、本発明は何らＩＣカード１の通信方式に依存するものではなく、無線でデータ通信する非接触ＩＣカード、または、接触データ通信と非接触データ通信の２つの通信機能を備えたデュアルインターフェースＩＣカードであってもよい。加えて、ＩＣカード１は、ＩＣチップ２の近辺を短冊状に切り取った形状をしているＳＩＭ（Subscriber Identity Module）カードやＵＩＭ（User Identity Module）カードであってもよい。
【００３９】
図３で示したように、ＩＣカード１のＲＯＭ２２には、ＩＣカード１に実装されるＩＣチップ２の仕様差分を吸収するためのプログラムであるカードＯＳ１１（Operating System）上に、言語の解釈機能を備えたバーチャルマシン１０が実装されている。
また、ＲＯＭ２２には、発行時に必要なデータであって、アプリケーションデータ，ファイルの制限情報を含むシステムデータおよび修正パッチプログラムを含むプログラムなどの共通データ１２０が記憶されている。この共通データ１２０は、エミュレータなどの装置を用い、ＩＣカード１のバーチャルマシン１０で解釈実行される命令により作動するコマンドを利用してＩＣカード１を発行したときＥＥＰＲＯＭ２１に形成されるメモリマップの内容を発行データとして記憶しているものである。共通データ１２０は、アプリケーションエリア１２に格納される一つまたは複数のアプリケーションごとに共通なデータであるため、アプリケーションごとに一つの共通データ１２０が記憶される。
なお、共通データ１２０は、ＩＣチップメーカの記憶装置など（不図示）によって、あらかじめＲＯＭ２２に記憶（マスク化）されている。
【００４０】
カードＯＳ１１は、ＩＣチップ２に対応したマシン語で記述され、バーチャルマシン１０を介さずに動作する複数の発行コマンドを備え、少なくともこの発行コマンドには、ＩＣカード発行機３から送信される平文をＩＣカード１のＥＥＰＲＯＭ２１に書込むためのコマンドであるライトコマンド１１０と、ＩＣカード発行機３から送信される暗号文をＩＣカード１のＥＥＰＲＯＭ２１に書込むためのコマンドである暗号ライトコマンド１１１と、ＩＣカード１のＥＥＰＲＯＭ２１に書込んだ内容をチェックするためのコマンドであるメモリチェックコマンド１１２と、ＩＣカード発行機３からの指令に基づいて、ＲＯＭ２２の共通データ１２０をＥＥＰＲＯＭ２１にコピーするメモリコピーコマンド１１４とが含まれる。
【００４１】
上述しているように、これらのコマンドはＩＣチップ２に対応したマシン語で記述され、図２で示したＩＣチップ２のハードウェア資源を利用したプログラムある。マシン語で記述されているこれらのコマンドは、バーチャルマシン１０で解釈されることなく動作するため、バーチャルマシン１０を利用するために必要な時間、例えば、バーチャルマシン１０の起動時間、バーチャルマシン１０が命令を解釈する時間を削減でき、バーチャルマシン１０を利用するときよりも高速でＥＥＰＲＯＭ２１にアクセスでき、１枚当たりの発行時間を短縮できる。
【００４２】
アプリケーションが発行される前にＥＥＰＲＯＭ２１には、カードＯＳ１１が利用するデータとして、少なくとも、ＩＣカード１ごとに固有であり、発行コマンドを用いてＩＣカード１を発行するときに利用される暗号鍵であるセッション鍵１３と、ＩＣカード１に備えられた発行コマンドの実行を制御するために設けられた発行フラグ１４が書込まれている。これらのデータは、上述しているライトコマンド１１０または専用のコマンドによって、カードＯＳ１１が管理するＥＥＰＲＯＭ２１の領域に記憶される。
【００４３】
セッション鍵１３とは、ＩＣカード発行機３から送信される暗号文を復号するときや、ＥＥＰＲＯＭ２１に書込まれたデータのチェックコードを演算するときに利用される暗号鍵である。本実施の形態において、セッション鍵１３は、ＲＯＭ２２に記憶されたＲＯＭ鍵１１３によって暗号化された状態でＥＥＰＲＯＭ２１に記憶される。そして、セッション鍵１３を利用するときは、ＲＯＭ鍵１１３で復号され使用される。
【００４４】
ＩＣカード１ごとにセッション鍵１３を設けるのは、セキュリティ高くＩＣカード１を発行するためである。例えば、ユーザの暗証番号など外部に漏洩してはならない機密なデータをＩＣカード１に書込むときは、ＩＣカード発行機３から機密なデータは、セッション鍵１３で暗号化された状態でＩＣカード１に送信される。
【００４５】
この機密データを暗号化する暗号鍵がＩＣカード１すべてにおいて共通であると、共通の暗号鍵が何らかの理由で漏洩した場合、ＩＣカード発行機３とＩＣカード１間で伝送されるデータを傍受すれば機密なデータのすべてが解読されてしまう。そこで、ＩＣカード１ごとに固有のセッション鍵１３を設けることで、発行時のセキュリティを高める。
【００４６】
発行フラグ１４とは、ＩＣカード１に備えられた発行コマンドの実行を制御するために設けられたフラグである。ＩＣカード１発行後においても発行コマンドが動作すると、バーチャルマシン１０を介さずにＥＥＰＲＯＭ２１に直接アクセスでき、セキュリティ的に脆弱になるため、発行後にＩＣカード１の発行コマンドが動作しない制御をするために、ＥＥＰＲＯＭ２１には発行フラグ１４が設けられている。
【００４７】
ＩＣカード１が活性化されると、ＩＣカード１はＥＥＰＲＯＭ２１に記憶されている発行フラグ１４をＲＡＭ２３にコピーし、ＲＡＭ２３にコピーされた発行フラグ１４によって、発行コマンドの実行が制御される。
【００４８】
ＲＡＭ２３にコピーされた発行フラグ１４によって、カードＯＳ１１の発行コマンドの実行許可が示されている場合には、ＩＣカード１はカードＯＳ１１の発行コマンドを実行し、ＲＡＭ２３にコピーされた発行フラグ１４によって、カードＯＳ１１の発行コマンドの実行不可が示されている場合には、ＩＣカード１はカードＯＳ１１の発行コマンドの実行を禁止する。この発行フラグ１４は、ＩＣカード製造会社などにおいてＩＣカード１が発行された後に、カードＯＳ１１の発行コマンドの実行不可に設定される。
【００４９】
加えて、ＥＥＰＲＯＭ２１には、ＩＣカード製造会社などで、上述した発行コマンドを用いて、少なくとも一つのアプリケーションが書込まれる。
【００５０】
図４は、アプリケーションエリア１２のアプリケーションに含まれるデータを説明するための図である。ＥＥＰＲＯＭ２１に書込まれる一つのアプリケーションには、アプリケーションで共通のデータである共通データ１２０と、ＩＣカード１ごとに個別のデータである個別データ１２１と、ＩＣカード１ごとに個別で機密性の極めて高い個別機密データ１２２（例えば、ユーザの暗証番号など）とが含まれる。
【００５１】
発行時においては、共通データ１２０はメモリコピーコマンドでＥＥＰＲＯＭ２１に書込まれ、個別データ１２１はライトコマンド１１０でＥＥＰＲＯＭ２１に書込まれ、個別機密データ１２２は暗号ライトコマンド１１１によって書込まれ、ＥＥＰＲＯＭ２１に書込まれたデータはメモリチェックコマンド１１２によってデータの整合性が確認される。
【００５２】
なお、図４は単にアプリケーションエリア１２に含まれるデータを説明するための図であって、実際のアプリケーションエリア１２のデータ構造は図４とは異なり、共通データ１２０のデータ構造の中に個別データ１２１や個別機密データ１２２のデータ構造が含まれていてもよい。データを書込むＥＥＰＲＯＭ２１のアドレスが既知でさえあれば、上述したライトコマンド１１０や暗号ライトコマンド１１１を用いて、このアドレスから所定のデータを書込むことができる。
【００５３】
ここから、カードＯＳ１１が有する各発行コマンドについて詳細に説明する。上述した４つのコマンドは、いずれもＩＳＯ／ＩＥＣ７８１６−４のＣＡＳＥ３のコマンド構造に準拠し、それぞれの発行コマンドのデータフィールドの内容を図５に示す。図５は、ライトコマンド１１０、暗号ライトコマンド１１１、メモリチェックコマンド１１２およびメモリコピーコマンド１１４、それぞれのコマンドのデータフィールドの内容を説明する図である。
【００５４】
図５（ａ）は、ライトコマンド１１０のデータフィールドを説明する図で、ＩＣカード発行機３からＩＣカード１に送信されるライトコマンド１１０のコマンドＡＰＤＵ（Application Protocol Data Unit）のデータフィールドには、少なくとも、ＥＥＰＲＯＭ２１に書込まれるデータである平文１１０ｃと、平文１１０ｃの長さを示すデータ長１１０ｂと、平文１１０ｃを書込むＥＥＰＲＯＭ２１の物理的あるいは論理的な開始アドレス１１０ａとが含まれる。平文１１０ｃが書込まれるＥＥＰＲＯＭ２１のアドレス空間は、この開始アドレス１１０ａとデータ長１１０ｂによって規定される。
【００５５】
ＩＣカード発行機３からＩＣカード１にライトコマンド１１０のコマンドＡＰＤＵが送信されると、カードＯＳ１１は受信したコマンドＡＰＤＵを解釈し、ライトコマンド１１０が実行される。ライトコマンド１１０が実行されると、ライトコマンド１１０はデータフィールドから開始アドレス１１０ａを取得し、バーチャルマシン１０を作動させることなく、開始アドレス１１０ａから平文１１０ｃをＥＥＰＲＯＭ２１にメモリの書換単位ごとに効率的に書込み、書込み結果を示すデータをレスポンスＡＰＤＵとして、ＩＣカード発行機３に返信する。
【００５６】
図５（ｂ）は、暗号ライトコマンド１１１のデータフィールドを説明する図で、ＩＣカード発行機３からＩＣカード１に送信される暗号ライトコマンド１１１のコマンドＡＰＤＵのデータフィールドには、少なくとも、ＥＥＰＲＯＭ２１に書込まれるデータがセッション鍵１３で暗号化された暗号文１１１ｃと、暗号文１１１ｃの長さを示すデータ長１１１ｂと、暗号文１１１ｃをセッション鍵１３で復号したデータを書込むＥＥＰＲＯＭ２１の物理的あるいは論理的な開始アドレス１１１ａとが含まれる。暗号文１１１ｃを復号した内容が書込まれるＥＥＰＲＯＭ２１のアドレス空間は、この開始アドレス１１１ａとデータ長１１１ｂによって規定される。
【００５７】
また、ＩＣカード発行機３からＩＣカード１へ暗号ライトコマンド１１１のコマンドＡＰＤＵが送信されると、カードＯＳ１１が受信したコマンドＡＰＤＵを解釈し、暗号ライトコマンド１１１が作動する。暗号ライトコマンド１１１は、データフィールドから暗号文１１１ｃを取得すると、ＥＥＰＲＯＭ２１に記憶されたセッション鍵１３をＲＯＭ鍵１１３で復号して、復号したセッション鍵１３で暗号文１１１ｃを復号し、暗号文１１１ｃを復号したデータをＥＥＰＲＯＭ２１に開始アドレス１１１ａからデータ長１１１ｂだけメモリの書換単位ごとに効率的に書込み、書込み結果を示すデータをレスポンスＡＰＤＵとして、ＩＣカード発行機３に返信する。
【００５８】
暗号ライトコマンド１１１に適用される暗号アルゴリズムは、ＩＣチップ２に備えられた暗号演算回路２５に依存し、本発明は何ら暗号アルゴリズムを規定するものではない。ＩＣカード１が発行される環境にもよるが、ＩＣカード発行会社やクレジットカード発行会社などのようにセキュリティ高くＩＣカード１を発行する環境が整っている場所においては、暗号ライトコマンド１１１に適用される暗号アルゴリズムはトリプルＤＥＳが発行時間を短縮できるため望ましいが、ＲＳＡなどの公開鍵アルゴリズムであってもよい。
【００５９】
図５（ｃ）は、メモリチェックコマンド１１２のデータフィールドを説明する図で、ＩＣカード発行機３からＩＣカード１に送信されるメモリチェックコマンド１１２のコマンドＡＰＤＵのデータフィールドには、少なくとも、ＩＣカード１によって照合される照合チェックコード１１２ｃと、チェックコードを計算するデータの長さを示すデータ長１１２ｂと、チェックコードを演算するデータが記憶されたＥＥＰＲＯＭ２１の物理的あるいは論理的な開始アドレス１１２ａとが含まれる。データの整合性が確認されるＥＥＰＲＯＭ２１のアドレス空間は、この開始アドレス１１２ａとデータ長１１２ｂによって規定される。
【００６０】
本実施の形態において、メモリチェックコマンド１１２に適用されたチェックコードの演算アルゴリズムは、Ｔｒｉｐｌｅ−ＤＥＳを利用したＭＡＣ（168bit）演算アルゴリズムを採用し、ＭＡＣの演算に用いられる暗号鍵はセッション鍵１３である。
【００６１】
ＩＣカード発行機３からＩＣカード１へメモリチェックコマンド１１２のコマンドＡＰＤＵが送信されると、カードＯＳ１１が受信したコマンドＡＰＤＵを解釈し、メモリチェックコマンド１１２が作動する。暗号ライトコマンド１１１は、ＥＥＰＲＯＭ２１に記憶され暗号化されたセッション鍵１３をＲＯＭ鍵１１３で復号し、ＥＥＰＲＯＭ２１に記憶され、開始アドレス１１２ａからデータ長１１２ｂで指定されるアドレス空間に記憶されたデータからチェックコードを演算し、演算したチェックコードとＩＣカード発行機３から受信した照合チェックコード１１２ｃを照合し、照合結果を含むレスポンスＡＰＤＵをＩＣカード発行機３に返信する。
【００６２】
図５（ｄ）は、メモリコピーコマンド１１４のデータフィールドを説明する図で、ＩＣカード発行機３からＩＣカード１に送信されるメモリコピーコマンド１１４のコマンドＡＰＤＵのデータフィールドには、少なくとも、共通データ１２０の書込み先となるＥＥＰＲＯＭ２１の物理的な書込み開始アドレス１１４ａと、共通データ１２０の書込み元となるＲＯＭ２２の物理的な読出し開始アドレス１１４ｂと、共通データ１２０のサイズを示す領域サイズ１１４ｃとが含まれる。
【００６３】
ＩＣカード発行機３からＩＣカード１にメモリコピーコマンド１１４のコマンドＡＰＤＵが送信されると、カードＯＳ１１は受信したコマンドＡＰＤＵを解釈し、メモリコピーコマンド１１４が実行される。メモリコピーコマンド１１４が実行されると、メモリコピーコマンド１１４はデータフィールドから各データを取得し、バーチャルマシン１０を作動させることなく、読出し開始アドレス１１４ａから領域サイズ１１４ｃ分のデータを読出し、その読出したデータをＥＥＰＲＯＭ２１の書込み開始アドレス１１４ｂから、メモリの書換単位ごとに効率的に書込み、書込み結果を示すデータをレスポンスＡＰＤＵとして、ＩＣカード発行機３に返信する。
【００６４】
図３に示したように、ＩＣカード発行機３には、上述したカードＯＳ１１に備えられた発行コマンドなどを利用してＩＣカード１を発行する発行アプリケーション３０と、ＩＣカード１と電気的に接続し、ＩＣカード１とデータ通信するデータ通信手段３１と、データを記憶するためのデータ記憶装置３２を備える。
【００６５】
ＩＣカード発行機３の発行アプリケーション３０は、サーバなどのコンピュータ装置を動作させるプログラムで実現され、データ通信手段３１はＩＣカードリーダライタと同じ手段で実現され、データ記憶装置３２はハードディスクなどで実現される。
【００６６】
データ記憶装置３２は、アプリケーションエリア１２の個別データ１２１と個別データ１２１を書込むアドレス空間、アプリケーションエリア１２の個別機密データ１２２と個別機密データ１２２を書込むアドレス空間とを記憶している。
【００６７】
個別データ１２１と個別機密データ１２２は、ＩＣカード１ごとに異なるデータであるため、データ記憶装置３２には発行枚数の数だけ個別データ１２１および個別機密データ１２２が記憶される。
【００６８】
ＩＣカード発行機３の発行アプリケーション３０は、ＩＣカード１に備えられたライトコマンド１１０を用いて、ＥＥＰＲＯＭ２１の所定のアドレス空間に、個別データ１２１を書込み、また、ユーザの暗証番号などの個別機密データ１２２は、暗号ライトコマンド１１１を用いて、ＥＥＰＲＯＭ２１の所定のアドレス空間に書込まれる。
【００６９】
ここから、ＩＣカード発行機３が上述したカードＯＳ１１に備えられた発行コマンドを利用してＩＣカード１を発行する手順を説明する。図６は、ＩＣカード発行機３が０次発行を行う手順を示したフロー図で、図７は、ＩＣカード発行機３が１次および２次発行を行う手順を示したフロー図である。
【００７０】
まず、ＩＣカード発行機３が０次発行を行う手順について説明する。０次発行では、ＩＣカード１が動作するために最低限必要なデータがＩＣカード１に書込まれ、本実施の形態においては、図３で示したデータの中で、セッション鍵１３と発行フラグ１４がＥＥＰＲＯＭ２１に書込まれる。なお、バーチャルマシン１０、カードＯＳ１１および共通データ１２０は、ＩＣチップメーカなどであらかじめＲＯＭ２２に記憶される（記憶工程）。
【００７１】
この手順で最初に実行されるステップＳ１は、ＩＣカード１を活性化するステップである。このステップでは、ＩＣカード発行機３は、例えば、ＩＳＯ／ＩＥＣ７８１６などで定められた手順に従いＩＣカード１を活性化する。このステップでＩＣカード１を活性化した後は、定められた伝送プロトコルを用いたＩＣカード発行機３とＩＣカード１間のデータ通信が可能となる。なお、このステップが実行されるとき、ＩＣカード１は０次発行前であるため、発行フラグ１４はＲＡＭ２３にコピーされない。
【００７２】
次のステップＳ２は、ＥＥＰＲＯＭ２１にセッション鍵１３とコマンド制御フラグとを書込むステップである。例えば、ＩＣカード発行機３からＩＣカード１に送信されるライトコマンド１１０のコマンドＡＰＤＵには、ＲＯＭ鍵１１３で暗号化されたセッション鍵１３が含まれ、ＩＣカード１はＲＯＭ鍵１１３で暗号化されたセッション鍵１３をＥＥＰＲＯＭ２１の所定のアドレス空間に書込む。また、発行フラグ１４は、ライトコマンド１１０によって、発行コマンドの実行許可にセットされる。発行フラグ１４を発行コマンドの実行許可にセットした後、発行フラグ１４の内容はメモリチェックコマンド１１２などによってチェックされる。なお、実行許可の設定値はＩＣメーカの工場出荷の初期値とすることで、Ｓ２の「コマンド制御フラグを書込む」工程を省略してもよい。
【００７３】
次のステップＳ３は、ＩＣカード１を非活性化するステップである。このステップでは、ＩＣカード発行機３は、例えば、ＩＳＯ／ＩＥＣ７８１６などで定められた手順に従いＩＣカード１を非活性化する。このステップでＩＣカード１を非活性化した後に活性化されても、ＩＣカード１にはユーザごとに個別のデータは記憶されていないため、ＩＣカード１が悪用されることはない。なお、この制御フラグが初期設定されている場合は０次発行における「ＩＣカードの非活性化」の工程を省略して１次発行へと連続させて処理してもよい。
【００７４】
まず、ＩＣカード発行機３が１次および２次発行を行う手順について説明する。一般的に、１次発行ではアプリケーションのカード１ごとに固定値のデータがＩＣカード発行機３によってＩＣカード１に書込まれ、２次発行ではＩＣカード１ごとに個別なデータがＩＣカード発行機３によってＩＣカード１に書込まれる。
【００７５】
本実施の形態においては、１次発行と２次発行は１連のシーケンスで実施されるものとし、図３で示した共通データ１２０がアプリケーションのカード１ごとに固定値のデータとして１次発行で書込まれ、個別データ１２１と個別機密データ１２２が２次発行で書込まれる。なお、ＩＣカード発行機３には、メモリコピーコマンド１１４と発行時に必要な個別データ１２１，１２２とを含むデータが設定されている（設定工程）。
【００７６】
この手順で最初に実行されるステップＳ１０は、ＩＣカード１を活性化するステップである。このステップでは、ＩＣカード発行機３は、例えば、ＩＳＯ／ＩＥＣ７８１６などで定められた手順に従いＩＣカード１を活性化する。このステップでＩＣカード１を活性化した後は、定められた伝送プロトコルを用いたＩＣカード発行機３とＩＣカード１間のデータ通信が可能となる。なお、このステップが実行されるとき、ＩＣカード１は０次発行済みであるため、発行フラグ１４をＲＡＭ２３にコピーする。
【００７７】
次のステップＳ１１は、アプリケーションの共通データ１２０が書込まれるステップである。このステップにおいては、ＩＣカード発行機３は、メモリコピーコマンド１１４のコマンドＡＰＤＵをＩＣカード１に送信し（送信工程）、ＩＣカード１のメモリコピーコマンド１１４が作動することで、共通データ１２０は指定されたＥＥＰＲＯＭ２１のアドレス空間に書込まれる（書込み工程）。なお、メモリコピー時には、「データサイズが正当か」、「書込み先・元のアドレスが正当か」、「書込み先のアドレスがＥＥＰＲＯＭ２１に割り当てられているページの先頭アドレスであるか」、「書込みエラーが発生していないか」などを判断しながら処理を行うことが好ましい。
【００７８】
次のステップＳ１２は、ステップＳ１１でＥＥＰＲＯＭ２１に書込まれた共通データ１２０の内容をチェックするステップである。このステップにおいては、ＩＣカード発行機３は、少なくとも共通データ１２０の照合チェックコードを含むメモリチェックコマンド１１２のコマンドＡＰＤＵをＩＣカード１に送信し、ＩＣカード１のメモリチェックコマンド１１２が作動することで、このコマンドＡＰＤＵに含まれる照合チェックコードと、ＥＥＰＲＯＭ２１に書込まれた共通データ１２０から演算されたチェックコードとが照合される。このコマンドにより、書込まれたデータを読出したり送ったりしないため、通信データ量が少なくなり発行時間が短縮できる。照合に成功した場合はステップＳ１３に進み、照合に失敗した場合、この手順は終了し、照合に失敗したＩＣカード1は発行失敗カードとして取り扱われる。
【００７９】
次のステップＳ１３は、発行フラグ１４を無効にセットするステップである。このステップにおいて、ＩＣカード発行機３は、ＥＥＰＲＯＭ２１の発行フラグ１４を、発行コマンドの実行不可にセットするためのコマンドＡＰＤＵをＩＣカード１に送信し、ＩＣカード１は発行フラグ１４を発行コマンドの実行不可にセットする。発行フラグ１４を発行コマンドの実行不可にセットした後、発行フラグ１４の内容はメモリチェックコマンド１１２などによってチェックされる。
【００８０】
上述しているように、ＩＣカード１はＲＡＭ２３にコピーされた発行フラグ１４を参照して発行コマンドの実行を制御するため、このステップにおいてＥＥＰＲＯＭ２１の発行フラグ１４を発行コマンドの実行不可にセットしたとしても、ＩＣカード１が非活性化されない限りは発行コマンドの実行が可能である。
【００８１】
なお、共通データ１２０をＩＣカード１に書込んだ後にＥＥＰＲＯＭ２１に記憶された発行フラグ１４を発行コマンドの実行不可にセットするのは、個別データ１２１の書込みに失敗したＩＣカード１が利用され、個別データ１２１や個別機密データ１２２が読出されるなどして悪用されることを防止するためである。
【００８２】
次のステップＳ１４は、アプリケーションの個別データ１２１が書込まれるステップである。このステップにおいては、ＩＣカード発行機３は、少なくとも個別データ１２１を含むライトコマンド１１０のコマンドＡＰＤＵをＩＣカード１に送信し（送信工程）、ＩＣカード１のライトコマンド１１０が作動することで、このコマンドＡＰＤＵに含まれる個別データ１２１は指定されたＥＥＰＲＯＭ２１のアドレス空間に書込まれる（書込み工程）。
【００８３】
次のステップＳ１５は、ステップＳ１４でＥＥＰＲＯＭ２１に書込まれた個別データ１２１の内容をチェックするステップである。このステップにおいては、ＩＣカード発行機３は、少なくとも共通データ１２０の照合チェックコードを含むメモリチェックコマンド１１２のコマンドＡＰＤＵをＩＣカード１に送信し、ＩＣカード１のメモリチェックコマンド１１２が作動することで、このコマンドＡＰＤＵに含まれるチェックコードと、ＥＥＰＲＯＭ２１に記憶された個別データ１２１から演算されたチェックコードとが照合される。照合に成功した場合はステップＳ１６に進み、照合に失敗した場合、この手順は終了し、照合に失敗したＩＣカード１は発行失敗カードとして取り扱われる。
【００８４】
次のステップＳ１６は、アプリケーションの個別機密データ１２２が書込まれるステップである。このステップにおいては、ＩＣカード発行機３は、少なくともセッション鍵１３で個別機密データ１２２を暗号化した暗号文を含む暗号ライトコマンド１１１のコマンドＡＰＤＵをＩＣカード１に送信し（送信工程）、ＩＣカード１の暗号ライトコマンド１１１が作動する。
【００８５】
ＩＣカード１の暗号ライトコマンド１１１が作動すると、ＥＥＰＲＯＭ２１に暗号化された状態で記憶されているセッション鍵１３をＲＯＭ鍵１１３で復号し、復号したセッション鍵１３でこのコマンドＡＰＤＵに含まれる暗号文を復号した後、暗号文を復号した内容を指定されたＥＥＰＲＯＭ２１のアドレス空間に書込む（書込み工程）。
【００８６】
次のステップＳ１７は、ステップＳ１６でＥＥＰＲＯＭ２１に書込まれた個別機密データ１２２の内容をチェックするステップである。このステップにおいては、ＩＣカード発行機３は、少なくとも個別機密データ１２２の照合チェックコードを含むメモリチェックコマンド１１２のコマンドＡＰＤＵをＩＣカード１に送信し、ＩＣカード１のメモリチェックコマンド１１２が作動することで、このコマンドＡＰＤＵに含まれるチェックコードと、ＥＥＰＲＯＭ２１に記憶された個別機密データ１２２から演算されたチェックコードとが照合される。照合に成功した場合はステップＳ１８に進み、照合に失敗した場合、この手順は終了し、照合に失敗したＩＣカード１は発行失敗カードとして取り扱われる。
【００８７】
次のステップＳ１８は、ＩＣカード１を非活性化するステップである。このステップでは、ＩＣカード発行機３は、例えば、ＩＳＯ／ＩＥＣ７８１６などで定められた手順に従いＩＣカード１を非活性化する。このステップでＩＣカード１を非活性化した後に活性化されても、発行フラグ１４は発行コマンドの実行不可にセットされているため、カードＯＳ１１に備えられた発行コマンドが悪用されることはない。
【００８８】
図８〜図１０は、上述した仕組みを適用していない変更前のＩＣカード１Ａと、上述した仕組みを適用している変更後のＩＣカード１とを対比して説明する図である。
図８に示すように、変更前のＩＣカード１Ａは、３００ＫバイトのＲＯＭ２２と、１２０ＫバイトのＥＥＰＲＯＭ２１などとを備え、ＩＣカード発行時には、ＩＣカード発行機からその都度、ＥＥＰＲＯＭ２１に共通データ１２０を書込んでいた。
これに対して、変更後のＩＣカード１は、４００ＫバイトのＲＯＭ２２と、１２０ＫバイトのＥＥＰＲＯＭ２１などとを備え、ＩＣカード発行時には、ＩＣカード１自身が、ＲＯＭ２２に記憶されている共通データ１２０をＥＥＰＲＯＭ２１にコピーする。なお、変更後のＩＣカード１のＲＯＭ２２のサイズが大きいのは、近年の半導体技術の進歩に伴う容量増加によるものであり、その容量が増えた部分を利用して、共通データ１２０を書込んでいる。
【００８９】
このようにすることで、図９に示すように、変更前のＩＣカード１Ａでは、ＩＣカード発行機３に共通データ１２０と個別データ１２１，１２２とを設定し、両方のデータをＩＣカード１Ａに送信しなければならなかったが、変更後のＩＣカード１では、１つのメモリコピーコマンド１１４と個別データ１２１，１２２だけの送信でＩＣカードの発行が可能となる。
したがって、図１０に示すように、変更後のＩＣカード１では、共通データ１２０の送信処理がなくなり、大幅に発行時間を短縮することができる。具体的には、数分かかっていた発行時間を数秒に短縮することができる。なお、個別データ１２１，１２２の送信時間は、変更の前後で同じであるが、個別データ１２１，１２２は数Ｋバイトであり、発行時間にそれほど影響を与えるものではない。
【００９０】
さらに、このような構成を採用することにより、以下のような付随のメリットがある。
（１）共通データ１２０のＩＣ書込み処理が数秒に短縮される。
（２）通信量が減少するため、通信エラー率を低減させることができる。
（３）通信量が減少するため、ＩＣカード発行機３の負荷が減り、故障が減る。
【００９１】
（変形例）
以上説明した実施の形態に限定されることなく、種々の変形や変更が可能であって、それらも本発明の均等の範囲内である。
（１）共通データ１２０は、ＲＯＭ２２からＥＥＰＲＯＭ２１へ、直接書込む例で説明したが、バーチャルマシン１０に解釈させるようなデータとして、間接的に書込むようにしてもよい。このようにしても、通信量が減少するので、ＩＣカードの発行時間を短縮させることがでる。
（２）ＩＣカードは、バーチャルマシンが実装されていないものであってもよい。
（３）書込み開始アドレス１１４ａ，読出し開始アドレス１１４ｂおよび領域サイズ１１４ｃは、メモリコピーコマンド１１４に含ませる例で説明したが、メモリコピーコマンドには含ませず、これらのデータをＲＯＭ２２に記憶させておいてもよい。この場合には、メモリコピーの指令をＩＣカードに送信するだけでよく、ＩＣカードは、その指令と自身のＲＯＭ２２に記憶されている書込み開始アドレスなどに基づいてメモリコピーの処理を行う。
【図面の簡単な説明】
【００９２】
【図１】ＩＣカード発行システムのアーキテクチャを説明する図。
【図２】ＩＣカードに実装されるＩＣチップの内部構成図。
【図３】ＩＣカード発行システムの機能構成図。
【図４】アプリケーションエリア１２のアプリケーションに含まれるデータを説明するための図。
【図５】発行コマンドのデータフィールドの内容を説明する図。
【図６】ＩＣカード発行機が次発行を行う手順を示したフロー図。
【図７】ＩＣカード発行機が１次および２次発行を行う手順を示したフロー図。
【図８】変更前後のＩＣカードを対比して説明する図。
【図９】変更前後のＩＣカードを対比して説明する図。
【図１０】変更前後のＩＣカードを対比して説明する図。
【符号の説明】
【００９３】
１  ＩＣカード
１０  バーチャルマシン
１１  カードＯＳ
１１０  ライトコマンド
１１１  暗号ライトコマンド
１１２  メモリチェックコマンド
１１３  ＲＯＭ鍵
１１４  メモリコピーコマンド
１２  アプリケーションエリア
１２０  共通データ
１２１  個別データ
１２２  個別機密データ
１３  暗号化された状態のセッション鍵
１４  発行フラグ
２  ＩＣチップ
２１  ＥＥＰＲＯＭ
２２  ＲＯＭ
２３  ＲＡＭ
３  ＩＣカード発行機
【図１】
2007323133.tif 000003
【図２】
2007323133.tif 000004
【図３】
2007323133.tif 000005
【図４】
2007323133.tif 000006
【図５】
2007323133.tif 000007
【図６】
2007323133.tif 000008
【図７】
2007323133.tif 000009
【図８】
2007323133.tif 000010
【図９】
2007323133.tif 000011
【図１０】
2007323133.tif 000012