(57)【特許請求の範囲】
【請求項１】
ＩＣカード更新用データを生成するデータ生成部と、
前記データ生成部により生成された前記ＩＣカード更新用データをコマンドとともにＩＣカードへ向けて送信し、前記ＩＣカードからのレスポンスを受信する送受信部と、
前記送受信部により受信した前記ＩＣカードからの前記レスポンスを参照し、前記ＩＣカード内に既存データがある場合は、この既存データが認証データを参照するオブジェクトファイルであるか否かを判定するデータ判定部とを備え、
前記送受信部は、前記データ判定部により前記既存データがオブジェクトファイルであると判定された場合は、前記既存データが記憶された所定領域に前記ＩＣカード更新用データを上書きして書き込むコマンドを前記ＩＣカードへ向けて送信するＩＣカード更新装置。
【請求項２】
前記データ生成部は、前記ＩＣカードの更新工程の情報を含むＩＣカード更新用データを生成し、
前記送受信部は、ＩＣカードの更新処理が中断した場合、前記ＩＣカード更新用データに含まれる前記更新工程の情報を利用してＩＣカードの更新処理を再開させるコマンドを前記ＩＣカードへ向けて送信する請求項１記載のＩＣカード更新装置。
【請求項３】
前記データ判定部は、ＩＣカードの更新処理が中断した場合、前記ＩＣカード内の空き領域の情報と前記オブジェクトファイルが参照しているデータの新旧情報とを用いて、前記オブジェクトファイルが参照すべき認証データを特定する請求項２記載のＩＣカード更新装置。
【請求項４】
前記送受信部は、前記データ判定部により前記既存データがオブジェクトファイルでないと判定された場合は、前記ＩＣカード内の前記所定領域とは異なる空き領域に前記ＩＣカード更新用データを書き込み、前記既存データを削除し、前記空き領域に書き込んだ前記ＩＣカード更新用データを前記既存データが記憶されていた前記所定領域にコピーし、前記空き領域に書き込んだ前記ＩＣカード更新用データを削除するコマンドを前記ＩＣカードへ向けて送信する請求項１記載のＩＣカード更新装置。
【請求項５】
ＩＣカード更新装置の送受信部から送信されたＩＣカード更新用データ及びコマンドを受信する受信部と、
前記ＩＣカード更新装置のデータ判定部により、自ら記憶する既存データが認証データを参照するオブジェクトファイルであると判定された場合、前記既存データが記憶された所定領域に、前記受信部により受信した前記ＩＣカード更新用データが上書きして書き込まれる記憶部と
を備えたＩＣカード。
【請求項６】
前記記憶部は、前記ＩＣカード更新装置の前記データ判定部により、自ら記憶する前記既存データが前記オブジェクトファイルでないと判定された場合、前記既存データが記憶された前記所定領域とは異なる空き領域に前記ＩＣカード更新用データを記憶する請求項５記載のＩＣカード。
【請求項７】
前記ＩＣカード更新装置によるＩＣカードの更新処理が中断した場合、前記記憶部の空き領域の情報と前記オブジェクトファイルが参照しているデータの新旧情報とを用いて、前記オブジェクトファイルが参照すべき認証データを特定する参照先データ特定部を備えた請求項５記載のＩＣカード。
【請求項８】
ＩＣカード更新用データを生成するデータ生成部と、
前記データ生成部により生成されたＩＣカード更新用データをコマンドとともに前記ＩＣカードへ向けて送信し、前記ＩＣカードからのレスポンスを受信する送受信部と、
前記送受信部により受信した前記ＩＣカードからの前記レスポンスを参照し、前記ＩＣカード内に既存データがある場合は、この既存データが認証データを参照するオブジェクトファイルであるか否かを判定するデータ判定部とを備え、
前記送受信部は、前記データ判定部により前記既存データがオブジェクトファイルであると判定された場合は、前記既存データが記憶された所定領域に前記ＩＣカード更新用データを上書きして書き込むコマンドを前記ＩＣカードへ向けて送信するＩＣカード更新装置と、
前記ＩＣカード更新装置の前記送受信部から送信された前記ＩＣカード更新用データ及び前記コマンドを受信する受信部と、
前記ＩＣカード更新装置の前記データ判定部により、自ら記憶する既存データが認証データを参照するオブジェクトファイルであると判定された場合、前記既存データが記憶された所定領域に、前記受信部により受信した前記ＩＣカード更新用データが上書きして書き込まれる記憶部とを備えたＩＣカードと
を備えたＩＣカード更新システム。
【請求項９】
データ生成部が、ＩＣカード更新用データを生成するデータ生成ステップと、
送受信部が、前記データ生成ステップにより生成された前記ＩＣカード更新用データをコマンドとともにＩＣカードへ向けて送信し、前記ＩＣカードからのレスポンスを受信する送受信ステップと、
データ判定部が、前記送受信ステップにより受信した前記ＩＣカードからの前記レスポンスを参照し、前記ＩＣカード内に既存データがある場合は、この既存データが認証データを参照するオブジェクトファイルであるか否かを判定するデータ判定ステップとを備え、
前記送受信ステップは、前記データ判定ステップにより前記既存データがオブジェクトファイルであると判定された場合は、前記既存データが記憶された所定領域に前記ＩＣカード更新用データを上書きして書き込むコマンドを前記ＩＣカードへ向けて送信するＩＣカード更新方法。
【請求項１０】
データ生成部が、ＩＣカード更新用データを生成するデータ生成ステップと、
送受信部が、前記データ生成ステップにより生成されたＩＣカード更新用データをコマンドとともに前記ＩＣカードへ向けて送信し、前記ＩＣカードからのレスポンスを受信する送受信ステップと、
データ判定部が、前記送受信ステップにより受信した前記ＩＣカードからの前記レスポンスを参照し、前記ＩＣカード内に既存データがある場合は、この既存データが認証データを参照するオブジェクトファイルであるか否かを判定するデータ判定ステップとを備え、
前記送受信ステップは、前記データ判定ステップにより前記既存データがオブジェクトファイルであると判定された場合は、前記既存データが記憶された所定領域に前記ＩＣカード更新用データを上書きして書き込むコマンドを前記ＩＣカードへ向けて送信し、
前記ＩＣカードが、前記送受信ステップから送信された前記ＩＣカード更新用データ及び前記コマンドを受信する受信ステップと、
前記ＩＣカードが、前記データ判定ステップにより、自ら記憶する既存データが認証データを参照するオブジェクトファイルであると判定された場合、前記既存データが記憶された所定領域に、前記受信ステップにより受信された前記ＩＣカード更新用データが上書きして書き込まれる記憶ステップとを備えたＩＣカード更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣカードの更新に関し、特にＩＣカードの更新の途中で処理が中断した場合の処理の再開に関するものである。
【背景技術】
【０００２】
従来のＩＣカード更新方法は、更新処理が途中で中断されても更新前あるいは更新後の状態でＩＣカードを利用できるという目的の下、既存データがあるか無いかを判定し、既存データが無い場合は、ＩＣカード内のデータ領域である予め定められた所定領域に更新データを書き込んでいた。既存データが有る場合は、ＩＣカード内の予め定められた所定領域とは異なる空き領域にデータを書き込み、既存データを削除し、空き領域に書き込んだデータを既存データが格納されていた所定領域にコピーし、空き領域に書き込んだデータを削除していた（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−３８１４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のＩＣカード更新方法は、一つ一つの更新データについて既存データがある場合は、ＩＣカード内の予め定められた所定の領域とは異なる空き領域にデータを書き込み、既存データを削除し、空き領域に書き込んだデータを既存データが格納されていた所定領域にコピーし、空き領域に書き込んだデータを削除していたため、更新データの数に比例して処理手順が増え、計算機や通信に負荷がかかるという問題点があった。
【０００５】
本発明は上記のような問題点を解決するためになされたもので、更新処理が途中で中断されても更新前あるいは更新後の状態でＩＣカードを利用できるという従来技術の効果はそのままに、更新の処理手順を削減することにより、従来よりも計算機や通信に対する負荷を軽減するＩＣカード更新装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
上記で述べた課題を解決するため、本発明のＩＣカード更新装置は、ＩＣカード更新用データを生成するデータ生成部と、前記データ生成部により生成された前記ＩＣカード更新用データをコマンドとともにＩＣカードへ向けて送信し、前記ＩＣカードからのレスポンスを受信する送受信部と、前記送受信部により受信した前記ＩＣカードからの前記レスポンスを参照し、前記ＩＣカード内に既存データがある場合は、この既存データが認証データを参照するオブジェクトファイルであるか否かを判定するデータ判定部とを備え、前記送受信部は、前記データ判定部により前記既存データがオブジェクトファイルであると判定された場合は、前記既存データが記憶された所定領域に前記ＩＣカード更新用データを上書きして書き込むコマンドを前記ＩＣカードへ向けて送信することとしたものである。
【０００７】
また、本発明のＩＣカードは、ＩＣカード更新装置の送受信部から送信されたＩＣカード更新用データ及びコマンドを受信する受信部と、前記ＩＣカード更新装置のデータ判定部により、自ら記憶する既存データが認証データを参照するオブジェクトファイルであると判定された場合、前記既存データが記憶された所定領域に、前記受信部により受信した前記ＩＣカード更新用データが上書きして書き込まれる記憶部とを備えることとしたものである。
【０００８】
また、本発明のＩＣカード更新システムは、ＩＣカード更新用データを生成するデータ生成部と、前記データ生成部により生成されたＩＣカード更新用データをコマンドとともに前記ＩＣカードへ向けて送信し、前記ＩＣカードからのレスポンスを受信する送受信部と、前記送受信部により受信した前記ＩＣカードからの前記レスポンスを参照し、前記ＩＣカード内に既存データがある場合は、この既存データが認証データを参照するオブジェクトファイルであるか否かを判定するデータ判定部とを備え、前記送受信部は、前記データ判定部により前記既存データがオブジェクトファイルであると判定された場合は、前記既存データが記憶された所定領域に前記ＩＣカード更新用データを上書きして書き込むコマンドを前記ＩＣカードへ向けて送信するＩＣカード更新装置と、前記ＩＣカード更新装置の前記送受信部から送信された前記ＩＣカード更新用データ及び前記コマンドを受信する受信部と、前記ＩＣカード更新装置の前記データ判定部により、自ら記憶する既存データが認証データを参照するオブジェクトファイルであると判定された場合、前記既存データが記憶された所定領域に、前記受信部により受信した前記ＩＣカード更新用データが上書きして書き込まれる記憶部とを備えたＩＣカードとを備えることとしたものである。
【０００９】
また、本発明のＩＣカード更新方法は、データ生成部が、ＩＣカード更新用データを生成するデータ生成ステップと、送受信部が、前記データ生成ステップにより生成された前記ＩＣカード更新用データをコマンドとともにＩＣカードへ向けて送信し、前記ＩＣカードからのレスポンスを受信する送受信ステップと、データ判定部が、前記送受信ステップにより受信した前記ＩＣカードからの前記レスポンスを参照し、前記ＩＣカード内に既存データがある場合は、この既存データが認証データを参照するオブジェクトファイルであるか否かを判定するデータ判定ステップとを備え、前記送受信ステップは、前記データ判定ステップにより前記既存データがオブジェクトファイルであると判定された場合は、前記既存データが記憶された所定領域に前記ＩＣカード更新用データを上書きして書き込むコマンドを前記ＩＣカードへ向けて送信することとしたものである。
【発明の効果】
【００１０】
本発明によれば、ＩＣカード更新用データを生成するデータ生成部と、前記データ生成部により生成された前記ＩＣカード更新用データをコマンドとともにＩＣカードへ向けて送信し、前記ＩＣカードからのレスポンスを受信する送受信部と、前記送受信部により受信した前記ＩＣカードからの前記レスポンスを参照し、前記ＩＣカード内に既存データがある場合は、この既存データが認証データを参照するオブジェクトファイルであるか否かを判定するデータ判定部とを備え、前記送受信部は、前記データ判定部により前記既存データがオブジェクトファイルであると判定された場合は、前記既存データが記憶された所定領域に前記ＩＣカード更新用データを上書きして書き込むコマンドを前記ＩＣカードへ向けて送信することにより、従来のＩＣカード更新方法よりも更新データ１つあたり２手順少なくすることができるようになるため、計算機や通信に対する負荷を軽減できるという効果がある。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１に係るＩＣカード更新システムの構成の一例を示す図である。
【図２】ＩＣカードのデータ領域のファイル構成を示す図である。
【図３】サーバのＩＣカード更新処理のフローチャートを示す図である。
【図４】ＩＣカードの発行処理シーケンスを示す図である。
【図５】オブジェクトの更新手順を示す図である。
【発明を実施するための形態】
【００１２】
実施の形態１．
本発明の実施の形態１におけるＩＣカード更新システムの構成と動作を、図１から図５を用いて説明する。
図１は、本発明の実施の形態１に係るＩＣカード更新システムの構成の一例を示す図である。
図１において、ＩＣカード更新システム１は、サーバ２すなわちＩＣカード更新装置と、ネットワーク３を介してサーバ２と通信可能に接続されたクライアント４すなわちＩＣカード更新用データ転送装置と、クライアント４に有線接続されたＩＣカードリーダライタ５と、ＩＣカードリーダライタ５に着脱可能に設けられたＩＣカード６とで構成されている。
【００１３】
サーバ２は、クライアント４からのＩＣカード発行要求を受け付ける要求受付部２１と、受け付けたＩＣカード発行要求に応じてＩＣカード６へ書き込むための鍵や証明書等の認証データを生成して保管する鍵・証明書保管部２２と、生成された鍵や証明書から実際にＩＣカードへ格納されるファイルのイメージを生成するイメージ生成部２３（データ生成部）と、構成された各ファイルのイメージからＩＣカード６に送信可能なコマンドを生成し、このコマンドを含むデータをネットワーク３へ向けて送信すると共に、ＩＣカード６からコマンドに対して発せられるレスポンスを受信するＡＰＤＵ（Ａｐｐｌｉｃａｔｉｏｎ  Ｄａｔａ  Ｕｎｉｔ）送受信部と、ＩＣカード６から受信したレスポンス内のデータを判定するデータ判定部２５と、を備えている。鍵・証明書発行部２２は、耐タンパー性を有し、証明書を発行する際に必要となるプライベート鍵、公開鍵証明書、ＰＩＮ（Ｐｅｒｓｏｎａｌ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｎｕｍｂｅｒ）等の情報を保管している。
【００１４】
クライアント４は、外部からＩＣカード６内に登録する利用者の氏名等の情報を取得する入力部（図示しない）と、サーバ２に対するＩＣカード発行要求を生成し、取得した利用者の氏名等の情報と共にネットワーク３へ向けて送信する要求発行部４１と、サーバ２からＩＣカード６へ向けて送信されたコマンドを含むＩＣカード発行用データ及びこのコマンドに対するＩＣカード６からサーバ２へのレスポンスを含むＩＣカード発行用データを転送するＡＰＤＵ転送部４２と、を備えている。ＩＣカードリーダライタ５は、クライアント４から転送されたコマンドを含むＩＣカード発行用データをＩＣカード６に書き込む機能、及びＩＣカード６からコマンドへのレスポンスを読み出す機能を有するものであって、ＩＣカード６は、ＩＣカードリーダライタ５により書き込まれたプライベート鍵、公開鍵証明書、ＰＩＮ等の認証データを表面に施された印刷やエンボス等の記憶手段によって保持している。また、図示していないが、ＩＣカード６は、ＡＰＤＵ転送部４２から転送されたコマンドを含むＩＣカード発行用データを受信する受信手段と、受信したＩＣカード発行用データをＩＣカード６内のメモリ（図示しない）に記憶する記憶手段を有する。
【００１５】
（ＩＣカードのファイル構造）
図２は、ＪＩＳ  Ｘ  ６３２０−１５の規格に準拠したＩＣカード６のＩＣカード発行用データを記憶するデータ領域のファイル構造の一例を示す図である。
ＩＣカード６は、ＩＣカード発行システム１が取り扱うファイル群を示すファイルとしてＤｅｄｉｃａｔｅｄ  Ｆｉｌｅ（以下、ＤＦと称する）を有し、ＤＦ配下にはＩＣカード発行用データを格納する領域として複数のＥｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ（以下、ＥＦと称する）が設けられている。図２では、ＣＩＡ（Ｃｒｙｐｔｏｇｒａｐｈｉｃ  Ｉｎｆｏｒｍａｔｉｏｎ  Ａｐｐｌｉｃａｔｏｎ）がＤＦであり、ＣＩＡ以下の他のすべてのファイルがＥＦである。なお、ＥＦの数や大きさはＩＣカード製造時に決定されるものである。また、このＩＣカード６は、ＩＣカード発行工程の進捗情報を管理する管理用データの専用領域は備えていない。
【００１６】
ＥＦのうち、認証情報オブジェクトを格納するＡＯＤ、プライベート鍵オブジェクトを格納するＰｒＫＤ、公開鍵オブジェクトを格納するＰｕＫＤ、証明書オブジェクトを格納するＣＤは、論理的なデータの種類によりオブジェクトファイルとも呼ばれる。
【００１７】
オブジェクトファイル以外のＥＦには、認証情報として一般利用者のパスワードを格納するＵｓｅｒＰＩＮ、認証情報として管理者のパスワードを格納するＳＯＰＩＮ、プライベート鍵を格納するＰｒｉＫｅｙ１及びＰｒｉＫｅｙ２、公開鍵を格納するＰｕｂＫｅｙ１及びＰｕｂＫｅｙ２、公開属性を有する証明書を格納するＰｕｂｌｉｃ、プライベート属性を有する証明書を格納するＰｒｉｖａｔｅ、ＣＩＡ配下のＩＣカード６の情報を示すＣＩＡＩｎｆｏ、オブジェクトファイルへのポインタを格納するＯＤ、Ｐｕｂｌｉｃ及びＰｒｉｖａｔｅの空き領域を管理するＵｎｕｓｅｄＳｐａｃｅ等がある。ＵｓｅｒＰＩＮ及びＳＯＰＩＮのパスワードはＡＯＤ内の認証情報オブジェクトから参照されるものであり、ＰｒｉＫｅｙ１及びＰｒｉＫｅｙ２のプライベート鍵はＰｒＫＤ内のプライベート鍵オブジェクトから、ＰｕｂＫｅｙ１及びＰｕｂＫｅｙ２の公開鍵はＰｕＫＤ内の公開鍵オブジェクトから参照されるものである。また、Ｐｕｂｌｉｃの公開属性を有する証明書及びＰｒｉｖａｔｅのプライベート属性を有する証明書はＣＤ内の証明書オブジェクトからそれぞれ参照されるものである。
【００１８】
各ＥＦに格納されるオブジェクトの型はＪＩＳ  Ｘ  ６３２０−１５に示されているものと同じである。ＣＩＡＩｎｆｏ内には先頭領域からＣＩＡＩｎｆｏ型のオブジェクトがＡＳＮ．１のＤＥＲエンコードされた形式で格納されている。ＯＤにはＣＩＯＣｈｏｉｃｅ型の複数のオブジェクトがＤＥＲエンコードされた形式で格納され、これらのオブジェクトにはＡＯＤの認証オブジェクトを示すａｕｔｈＯｂｊｅｃｔｓ、ＰｒＫＤのプライベート鍵オブジェクトを示すｐｒｉｖａｔｅＫｅｙｓ、ＰｕＫＤの公開鍵オブジェクトを示すｐｕｂｌｉｃＫｅｙｓ、ＣＤの証明書オブジェクトを示すｃｅｒｔｉｆｉｃａｔｅｓが含まれている。これらＣＩＯＣｈｏｉｃｅ型のオブジェクトを格納する順序は上記に限るものではなく、他のＣＩＯＣｈｏｉｃｅ型の要素を含んでいても良い。また、あるＣＩＯＣｈｏｉｃｅ型のオブジェクトの最後尾が格納される領域と次のＣＩＯＣｈｏｉｃｅ型のオブジェクトの先頭が格納される領域とは連続していなくても良く、この場合にはオブジェクトのデータが存在しない領域にデータが存在しないことを示す０ｘＦＦまたは０ｘ００のデータが格納される。なお、これはＯＤに限ることではなく、他のＥＦにおいても複数のオブジェクトが格納される場合は同様である。
【００１９】
ＵｎｕｓｅｄＳｐａｃｅには、ＰＫＣＳ  ＃１５で定義されているＵｎｕｓｅｄＳｐａｃｅ型のオブジェクトがＤＥＲエンコードされた形式で複数格納され、これらのＵｎｕｓｅｄＳｐａｃｅ型のオブジェクトには空き領域が存在するＥＦの情報、先頭からのバイト数の情報、長さを示すバイト数の情報がデータとして含まれている。また、ＡＯＤには、ＡｕｔｈｅｎｔｉｃａｔｉｏｎＯｂｊｅｃｔＣｈｏｉｃｅ型のオブジェクトがＤＥＲエンコードされた形式で複数格納され、このオブジェクトとして、パスワードを示すｐｗｄがＵｓｅｒＰＩＮまたはＳＯＰＩＮを示すデータとして選択されている。
【００２０】
ＰｒＫＤには、ＰｒｉＫｅｙ１またはＰｒｉＫｅｙ２を示すデータを含むＰｒｉｖａｔｅＫｅｙＣｈｏｉｃｅ型のＰｒｉｖａｔｅＲＳＡＫｅｙ等のオブジェクトがＤＥＲエンコードされた形式で複数格納され、ＰｕＫＤにはＰｕｂＫｅｙ１またはＰｕｂＫｅｙ２を示すデータを含むＰｕｂｌｉｃＫｅｙＣｈｏｉｃｅ型のｐｕｂｌｉｃＲＳＡＫｅｙ等のオブジェクトがＤＥＲエンコードされた形式で複数格納されている。ＣＤには、先頭からのバイト数の情報及び長さを示すバイト数の情報と共に、ＰｕｂｌｉｃまたはＰｒｉｖａｔｅを示すＣｅｒｔｉｆｉｃａｔｅＣｈｏｉｃｅ型のｘ５０９Ｃｅｒｔｉｆｉｃａｔｅ等のオブジェクトがＤＥＲエンコードされた形式で複数格納されている。
【００２１】
ＵｓｅｒＰＩＮには、ＩＣカードに特有の形式でパスワードを認証するためのデータが格納され、ＵｓｅｒＰＩＮが認証されるとＰｒｉＫｅｙ１及びＰｒｉＫｅｙ２の使用及びＰｒｉｖａｔｅの読み込みが可能になる。ＳＯＰＩＮには、ＩＣカードに特有の形式でパスワードを認証するためのデータに加え、製造時にデフォルトのパスワードを認証するためのデータが格納されており、ＳＯＰＩＮが認証されると全ＥＦの変更が可能になる。ＰｒｉＫｅｙ１及びＰｒｉＫｅｙ２には、それぞれプライベート鍵が格納されており、これらの鍵を使用することでＩＣカード６内部での演算、すなわち電子署名の生成や暗号化されたデータの復号化が可能となる。ＰｕｂＫｅｙ１、ＰｕｂＫｅｙ２、Ｐｕｂｌｉｃ、ＰｒｉｖａｔｅといったＥＦは指定されたデータを保存したり読み出したりする基本機能のみを有し、ＰｕｂＫｅｙ１及びＰｕｂＫｅｙ２には先頭領域から公開鍵が１つだけ格納され、Ｐｕｂｌｉｃ及びＰｒｉｖａｔｅには複数の証明書が格納されている。
【００２２】
（ＩＣカード発行手順）
ここで、ＣＩＡＩｎｆｏを利用してＩＣカードを発行する手順について説明する。
クライアント４の要求発行部４１から、ネットワーク３を介してサーバ２にＩＣカード利用者の氏名を指定したＩＣカード発行要求が送信されると、サーバ２の要求受付部２１はＩＣカード発行要求を受信し、正当性を確認して鍵・証明書発行部２２に鍵及び証明書の発行を指示する。このとき、クライアント４から送信されるＩＣカード発行要求には、ＩＣカード利用者の氏名の他に利用者が申請可能な項目や発行要求の送信権を示す情報等が含まれていても良い。
【００２３】
鍵・証明書発行部２２は、要求受付部２１から鍵及び証明書の発行指示を受けるとＲＳＡの鍵対すなわちプライベート鍵と公開鍵を生成し、この公開鍵とＩＣカード発行要求で指定された利用者の氏名、及びシステムに設定されている証明書のプロファイル等を用いて公開鍵証明書を生成する。そして、生成したＲＳＡの鍵対、公開鍵証明書、生成した公開鍵証明書の上位公開鍵証明書をイメージ生成部２３へ伝達する。
【００２４】
イメージ生成部２３は、生成されたＲＳＡの鍵対からＰｒＫＤ及びＰｒｉＫｅｙ１に格納すべきデータを、公開鍵証明書からＣＤ及びＰｕｂｌｉｃに格納すべきデータをそれぞれ生成する。また、イメージ生成部２３は、ＩＣカード発行システム１に設定されているＩＣカード６のプロファイルに基づいて、ＣＩＡＩｎｆｏ、ＯＤ、AＯＤに格納すべきデータを生成し、生成した各データに対応するパスワードをＵｓｅｒＰＩＮ及びＳＯＰＩＮに格納するデータとして生成する。各ＥＦに格納されるデータはＩＣカード６と同様のファイル構成を構築し、サーバ２内のメモリ（図示しない）に記録される。
【００２５】
イメージ生成部２３によるイメージの生成が完了すると、ＡＰＤＵ送受信部２４は、メモリに記録されたＩＣカード６のファイル構成からＩＣカード６に対するコマンド及びＩＣカード６との間で行う処理シーケンスを構成し、クライアント４に向けてＩＣカード６に対するコマンドを送信する。ＩＣカード６に対するコマンドとしては、例えば、ＪＩＳ  Ｘ  ６３２０−４（ＩＳＯ／ＩＥＣ  ７８１６−４）に準拠した形式のものが使用できる。
【００２６】
ＡＰＤＵ送受信部２４から送信されたコマンドは、ネットワーク３を介してクライアント４に到達し、クライアント４内のＡＰＤＵ転送部４２によりＩＣカードリーダライタ５に挿入されたＩＣカード６に向けて転送される。ＩＣカード６からは受信したコマンドに対するレスポンスが生成され、このレスポンスを含むＩＣカード発行用データがＩＣカードリーダライタ５に読み取られてクライアント４に送信される。クライアント４のＡＰＤＵ転送部４２は、ＩＣカードリーダライタ５から受信したＩＣカード発行用データを、ネットワーク３を介してサーバ２に転送する。以降、同様の手順によりサーバ２とＩＣカード６間の通信が必要な回数繰り返される。
【００２７】
（サーバの処理）
図３は、サーバ２のＩＣカード更新処理のフローチャートを示す図である。
サーバ２のＡＰＤＵ送受信部２４は、まずＳ１でＤＦを選択し、Ｓ２でＩＣカード６内のデータを読み込んで発行工程を確認し、パスワードが変更されているか否かを確認する。パスワードが変更されていなければＳ３において出荷時のパスワードを用いて認証を行い、パスワードが変更されていればＳ３において変更後の運用時のパスワードを用いて認証を行う。ＩＣカード６の認証に成功するとＳ２においてＩＣカード６から読み込んだデータを用いてＳ４により発行工程を確認する。その後、Ｓ５でＩＣカード６に所定のデータの書き込みを行い、ＩＣカード発行処理を完了する。使用するコマンドは、例えば、ＤＦの選択はＳＥＬＥＣＴ、ＩＣカード６の認証はＶＥＲＩＦＹ、パスワードの変更はＣＨＡＮＧＥ  ＲＥＦＥＲＥＮＣＥ  ＤＡＴＡ、ＩＣカード６内のデータ読み込みはＲＥＡＤ  ＢＩＮＡＲＹ、ＩＣカード６へのデータ書き込みはＵＰＤＡＴＥ  ＢＩＮＡＲＹ、等がある。
【００２８】
（オブジェクトの構造）
ここで、サーバ２とＩＣカード６間で送受信されるコマンドおよびレスポンスを含むオブジェクトの構造について説明する。ＩＣカード６に送信されるオブジェクトの構造は、以下のようになっている。
「ＣＬＡ  ＩＮＳ  Ｐ１  Ｐ２  Ｌｃ  コマンドデータ  Ｌｅ」
ＣＬＡはクラスバイトと呼ばれる通信条件を規定する１バイトのデータ、ＩＮＳはコマンドを示す１バイトのデータである。また、Ｐ１とＰ２はそれぞれ異なるコマンドパラメータを示す１バイトのデータ、Ｌｃはコマンドデータの長さを示すデータ、コマンドデータはコマンドに応じたデータ、ＬｅはＩＣカード６から送信されるレスポンスデータの許容する長さを示すデータである。
一方、ＩＣカード６が送信するオブジェクトの構造は、以下のようになっている。
「レスポンスデータ  ＳＷ１  ＳＷ２」
レスポンスデータはコマンドの実行結果を示すデータ、ＳＷ１及びＳＷ２は実行結果のステータスを示す１バイトのデータである。
【００２９】
ここで、サーバ２とＩＣカード６との間で送受信されるオブジェクトを、具体例を用いて説明する。例えば、ＡＰＤＵ送受信部２４からＩＣカード６に送信されるＵＰＤＡＴＥ  ＢＩＮＡＲＹであって、ＣＩＡＩｎｆｏの先頭１バイトに０ｘ００を書き込むものはコマンドデータに対応する部分に０ｘ００が格納されるので以下のようになる。
「００  Ｄ６  ９２  ００  ０１  ００」
なお、数字は１６進表記したものであって、Ｌｅは省略されている。
【００３０】
ＩＣカード６にオブジェクトが伝達されてＵＰＤＡＴＥ  ＢＩＮＡＲＹのコマンドが正常に完了すると、ＩＣカード６は以下のバイナリ列をレスポンスとしてサーバ２に返す。
「９０  ００」
このレスポンスは、レスポンスデータが無くコマンドが正常に終了したことを示している。
【００３１】
一方、ＩＣカード６のＣＩＡＩｎｆｏの先頭１バイトに格納されたデータを読み出す際にＡＰＤＵ送受信部２４から送信されるＲＥＡＤ  ＢＩＮＡＲＹは以下のようになる。
「００  Ｂ０  ９２  ００  ０１」
ＲＥＡＤ  ＢＩＮＡＲＹは読み出しを行うコマンドであるためコマンドデータは存在せず、Ｌｅは省略されている。
【００３２】
ＩＣカード６にオブジェクトが伝達されてＲＥＡＤ  ＢＩＮＡＲＹのコマンドが正常に完了すると、ＩＣカード６は以下のバイナリ列をレスポンスとしてサーバ２に返す。
「００  ９０  ００」
先頭の１バイトはレスポンスデータが０ｘ００であることを示しており、後の２バイトはコマンドが正常に終了したことを示している。
【００３３】
（オブジェクトの処理シーケンス）
サーバ２の処理フロー及びオブジェクトの構造について説明したので、ここではＩＣカード発行時にサーバ２とＩＣカード６との間で送受信されるオブジェクトの処理シーケンスについて説明する。ＩＣカード６を発行するにあたって、サーバ２はまず、ＩＣカード６に対してＣＩＡを選択する。ＣＩＡの選択に成功するとＲＥＡＤ  ＢＩＮＡＲＹを送信してＣＩＡＩｎｆｏの先頭から２バイト目に格納されたデータを読み込み、次の処理シーケンスを決定する。なお、ここではＣＩＡＩｎｆｏの末尾３バイトを進捗管理用の領域として用いるため、ＣＩＡＩｎｆｏのデータの長さを示すこの領域のデータを読み込むが、ＩＣカード発行処理の途中で進捗管理以外の用途で更新されない領域であれば、位置及びサイズはこれに限るものではない。
【００３４】
ＲＥＡＤ  ＢＩＮＡＲＹに対するレスポンスデータが０ｘＦＦまたは０ｘ００の場合、Ｓ４２のようにサーバ２はレスポンスを送信したＩＣカード６が新品であると判定して最初から順にＩＣカード６の発行処理を実行する。Ｓ４３のように、ＲＥＡＤ  ＢＩＮＡＲＹに対するレスポンスデータが本来の値に３を付加した値であれば、ＩＣカード発行処理が中断していると判定して、該当するＳｔｅｐの直後から順にＩＣカード６の発行処理を実行する。また、Ｓ４４のように、ＲＥＡＤ  ＢＩＮＡＲＹに対するレスポンスデータが本来の値であれば、サーバ２はＩＣカード発行処理が完了していると判定して発行処理を行わない。
【００３５】
ＩＣカード６の発行処理を行うには、まずＳＯＰＩＮに対してＶＥＲＩＦＹを実行して認証を得る必要がある。最初から処理を開始する場合は出荷時のパスワードを用いてＳＯＰＩＮに対してＶＥＲＩＦＹを実行し、途中から処理を開始する場合は運用時のパスワードを用いてＳＯＰＩＮに対してＶＥＲＩＦＹを実行する。なお、運用時のパスワードは、ＳＯＰＩＮの認証後に実行されるＣＨＡＮＧＥ  ＲＥＦＥＲＥＮＣＥ  ＤＡＴＡにより得られるものである。
【００３６】
ＳＯＰＩＮの認証後に行われるＩＣカード６の発行処理では、ＪＩＳ  Ｘ  ６３２０−１５の規格に準拠する場合、１５のＳｔｅｐからなるシーケンスにより、発行処理が行なわれる。
図４は、ＩＣカード６の発行処理シーケンスを示す図である。
以下、図４を参照しながら、発行処理シーケンスの各Ｓｔｅｐの詳細について説明する。
【００３７】
Ｓｔｅｐ１：管理者のパスワードを格納するＳＯＰＩＮ内のパスワードを運用時のパスワードに変更する。このとき、パスワード変更用コマンドであるＣＨＡＮＧＥ  ＲＥＦＥＲＥＮＣＥ  ＤＡＴＡの実行後、ＣＩＡ配下のＥＦの情報を表示するＣＩＡＩｎｆｏにデータを書き込む。更にＣＩＡＩｎｆｏのオブジェクト直後に「８Ａ  ０１  ０１」のデータを書き込み、このオブジェクトの先頭から２バイト目に本来の値に３を付加した値を書き込む。進捗管理用の領域は追加した３バイトの最終バイトを使用する。
Ｓｔｅｐ２：利用者のパスワードを用いて一般利用者のパスワードを格納するＵｓｅｒＰＩＮ内のパスワードを変更する。このとき、コマンドの進捗管理用の領域のデータを０ｘ０２にする。
Ｓｔｅｐ３：オブジェクトファイルへのポインタを格納するＯＤにデータを書き込む。このとき、書き込みコマンドであるＵＰＤＡＴＥ  ＢＩＮＡＲＹの実行後、進捗管理用の領域のデータを０ｘ０３にする。
Ｓｔｅｐ４：Ｐｕｂｌｉｃ及びＰｒｉｖａｔｅの空き領域を管理するＵｎｕｓｅｄＳｐａｃｅにデータを書き込む。このとき、コマンドの進捗管理用の領域のデータを０ｘ０４にする。
Ｓｔｅｐ５：認証情報オブジェクトを格納するＡＯＤにデータを書き込む。このとき、コマンドの進捗管理用の領域のデータを０ｘ０５にする。
Ｓｔｅｐ６：プライベート鍵オブジェクトを格納するＰｒＫＤにデータを書き込む。このとき、コマンドの進捗管理用の領域のデータを０ｘ０６にする。
Ｓｔｅｐ７：公開鍵オブジェクトを格納するＰｕＫＤにデータを書き込む。このとき、コマンドの進捗管理用の領域のデータを０ｘ０７にする。
Ｓｔｅｐ８：証明書オブジェクトを格納するＣＤにデータを書き込む。このとき、コマンドの進捗管理用の領域のデータを０ｘ０８にする。
Ｓｔｅｐ９：プライベート鍵を格納するＰｒｉＫｅｙ１にデータを書き込む。このとき、コマンドの進捗管理用の領域のデータを０ｘ０９にする。
Ｓｔｅｐ１０：プライベート鍵を格納するＰｒｉＫｅｙ２にデータを書き込む。このとき、コマンドの進捗管理用の領域のデータを０ｘ０ａにする。
Ｓｔｅｐ１１：公開鍵を格納するＰｕｂＫｅｙ１にデータを書き込む。このとき、コマンドの進捗管理用の領域のデータを０ｘ０ｂにする。
Ｓｔｅｐ１２：公開鍵を格納するＰｕｂＫｅｙ２にデータを書き込み、このとき、コマンドの進捗管理用の領域のデータを０ｘ０ｃにする。
Ｓｔｅｐ１３：公開属性を有する証明書を格納するＰｕｂｌｉｃにデータを書き込む。このとき、コマンドの進捗管理用の領域のデータを０ｘ０ｄにする。
Ｓｔｅｐ１４：プライベート属性を有する証明書を格納するＰｒｉｖａｔｅにデータを書き込む。このとき、コマンドの進捗管理用の領域のデータを０ｘ０ｅにする。
Ｓｔｅｐ１５：ＣＩＡＩｎｆｏ型のオブジェクトの先頭から２バイト目を本来の値に戻すと共に、ＣＩＡＩｎｆｏ型のオブジェクト直後の３バイトの値すべてを０ｘＦＦに変更する。
【００３８】
このように、運用時に使用されるデータであるＣＩＡＩｎｆｏ型のオブジェクト直後の３バイトの最終バイトにＩＣカード発行処理の進捗状況を示すデータ、すなわちＩＣカード６発行工程の情報を書き込むことにより、進捗管理用の専用領域を持たないＩＣカード６であっても内部に進捗状況を示すデータを保存することができるため、発行処理が中断された場合にその進捗状況を示すデータを確認することで途中の処理から容易に再開することができる。
なお、ネットワークにおける通信やＩＣカードのコマンドの暗号化については詳細説明を省略したが、パスワードやプライベート鍵など秘匿しなければならない情報を扱う通常の場合と同様に、ネットワークについてはＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）やＩＰＳｅｃ（Ｓｅｃｕｒｉｔｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）等を適用し、ＩＣカード６についてはＳｅｃｕｒｅ  Ｍｅｓｓａｇｉｎｇ（ＳＭ）を使用するものとする。
【００３９】
一方、処理が中断していると判定した場合、サーバ２は、まずＣＩＡＩｎｆｏ型のオブジェクト直後から３バイト目に格納されているデータから、ＩＣカード発行処理のうち最後に発行処理が成功したＳｔｅｐを特定して、ＳＯＰＩＮのパスワードを変更していなければ出荷時のパスワードを用いてＳＯＰＩＮの認証を得、ＳＯＰＩＮのパスワードを変更していれば運用時のパスワードを用いてＳＳＯＰＩＮの認証を得る。その後、処理が中断した直後のＳｔｅｐからＩＣカード発行処理を再開する。以降、Ｓｔｅｐ１４までの各処理を順次行う点はＩＣカード６が新品の場合と同様である。なお、処理が中断された場合、ＣＩＡＩｎｆｏ型のオブジェクトは「ｉｓｓｕｉｎｇ  Ｓｔａｔｕｓ  ［１０］  ＯＣＴＥＴ  ＳＴＲＩＮＧ  ＯＰＴＩＯＮＡＬ」の要素が追加されたオブジェクトと解釈できるため、オブジェクトの読み込み時にサーバ２等が支障をきたすことはない。
【００４０】
（オブジェクトの更新処理シーケンス）
以下、再度、図３を参照しながら、オブジェクトの更新処理シーケンスを詳細に説明する。
サーバ２は、まずＳ１でＤＦを選択し、Ｓ２でＩＣカード６内のデータを読み込んで発行工程を確認し、パスワードが変更されているか否かを確認する。パスワードが変更されていなければ、Ｓ３において出荷時のパスワードを用いて認証を行い、パスワードが変更されていれば、Ｓ３において変更後の運用時のパスワードを用いて認証を行う。ＩＣカード６の認証に成功すると、Ｓ２においてＩＣカード６から読み込んだデータを用いて、Ｓ４により発行工程を確認する。その後、Ｓ５でＩＣカード６に所定のデータの書き込みを行い、ＩＣカード発行処理を完了する。
【００４１】
Ｓ５のＩＣカード６への書き込みの際は、まずＳ５１において、ＩＣカード６内に発行処理用の既存データがあるか無いかを、データ判定部２５により判定する。既存データが無い場合は、Ｓ５２に進み、ＩＣカード６内のデータ領域である予め定められた所定領域に発行処理用のデータを書き込む。
【００４２】
一方、既存データがある場合は、Ｓ５３において、オブジェクトファイルへの書き込みであるかどうかを、データ判定部２５により判定する。オブジェクトファイルである場合は、Ｓ５２に進んで、ＩＣカード６内のデータ領域である予め定められた所定領域に、発行処理用のデータを上書きして書き込む。
【００４３】
また、オブジェクトファイルでない場合は、Ｓ５４において、ＩＣカード６内の予め定められた所定領域とは異なる空き領域にデータを書き込み、Ｓ５５において、既存データを削除し、Ｓ５６において、空き領域に書き込んだデータを既存データが格納されていた所定領域にコピーし、Ｓ５７において、空き領域に書き込んだデータを削除する。
【００４４】
上記のオブジェクトの更新処理で使用するコマンドは、例えば、ＤＦの選択はＳＥＬＥＣＴ、ＩＣカード６の認証はＶＥＲＩＦＹ、パスワードの変更はＣＨＡＮＧＥ  ＲＥＦＥＲＥＮＣＥ  ＤＡＴＡ、ＩＣカード６内のデータ読み込みはＲＥＡＤ  ＢＩＮＡＲＹ、ＩＣカード６へのデータ書き込みはＵＰＤＡＴＥ  ＢＩＮＡＲＹ、等がある。
【００４５】
なお、ＩＣカード６に格納されている公開鍵証明書には、プライベート鍵の危殆化による漏洩や失効リストの肥大化を防止する等の理由により、数年程度の有効期間が設けられている。このため、例えば、ＩＣカード６を更新する場合、ＰｒＫＤ、ＰｕＫＤ、ＣＤ、ＰｒｉＫｅｙ１、ＰｒｉＫｅｙ２、ＰｕｂＫｅｙ１、ＰｕｂＫｅｙ２、Ｐｕｂｌｉｃを変更する必要がある。また、Ｐｕｂｌｉｃの変更に伴い、ＵｎｕｓｅｄＳｐａｃｅも変更する必要がある。
【００４６】
以下、図５を用いて、ＣＤ、Ｐｕｂｌｉｃ、ＵｎｕｓｅｄＳｐａｃｅの関係に特化して説明する。
図５は、オブジェクトの更新手順を示す図である。
図５において、ＣＤに格納されるＣｅｒｔｉｆｉｃａｔｅＣｈｏｉｃｅ型のオブジェクトは、「旧テンプレート」、または「新テンプレート」で示し、Ｐｕｂｌｉｃに格納される公開鍵証明書のデータは、「旧データ」、または「新データ」で示し、ＵｎｕｓｅｄＳｐａｃｅに格納されるＵｎｕｓｅｄＳｐａｃｅ型のオブジェクトは、「空き領域」として示す。
【００４７】
図５（ａ）は、更新前の状態を示しており、旧テンプレートはＣＤの先頭、旧データはＰｕｂｌｉｃの先頭に格納され、Ｐｕｂｌｉｃの空き領域を示すオブジェクトもＵｎｕｓｅｄＳｐａｃｅの先頭に格納されている。
図５（ｂ）は、更新手順１により、Ｐｕｂｌｉｃの旧データより後ろの領域に、新データが格納された状態を示している。なお、新データは、Ｐｕｂｌｉｃの先頭から新データの大きさ分よりも後ろに格納される。
図５（ｃ）は、更新手順２により、新データをＰｕｂｌｉｃに格納することにより変化した空き領域を示すオブジェクトがＵｎｕｓｅｄＳｐａｃｅに格納された状態を示している。この例では、旧データと新データの間に隙間があるため、２つの空き領域が追加されている。
図５（ｄ）は、更新手順３により、ＵｎｕｓｅｄＳｐａｃｅに最初から格納されていた空き領域を示すオブジェクトが削除された状態を示している。
【００４８】
図５（ｅ）は、更新手順４により、Ｐｕｂｌｉｃの新データを参照する新テンプレートがＣＤに格納された状態を示している。ここで、新テンプレートは、Ｐｕｂｌｉｃの空き領域に格納された新データの場合とは異なり、ＣＤの空き領域ではなく、旧テンプレートが格納されている所定の領域に上書きして、格納される。
【００４９】
図５（ｆ）は、更新手順５により、旧データの削除により変化する空き領域を示すオブジェクトが、ＵｎｕｓｅｄＳｐａｃｅの先頭に格納された状態を示している。
図５（ｇ）は、更新手順６により、旧データと新データの間に存在する空き領域を示すオブジェクトがＵｎｕｓｅｄＳｐａｃｅから削除された状態を示している。なお、旧データと新データの間に空き領域が存在しない場合はこのオブジェクトが存在しないため、この更新手順６は省略される。
図５（ｈ）は、更新手順７により、Ｐｕｂｌｉｃから旧データが削除された状態を示している。
【００５０】
図５（ｉ）は、更新手順８により、Ｐｕｂｌｉｃの先頭に新データがコピーされて格納された状態を示している。
図５（ｊ）は、更新手順９により、図５（ｂ）で格納された新データと図５（ｉ）で格納された新データとの間の空き領域を示すオブジェクトが、ＵｎｕｓｅｄＳｐａｃｅに格納された状態を示している。空き領域が存在しない場合は、この更新手順９は省略される。
図５（ｋ）は、更新手順１０により、図５（ｆ）でＵｎｕｓｅｄＳｐａｃｅの先頭に格納された空き領域を示すオブジェクトが、削除された状態を示している。
【００５１】
図５（ｌ）は、更新手順１１により、Ｐｕｂｌｉｃの先頭に格納された新データを参照する新テンプレートが、ＣＤの先頭に上書きして格納された状態を示している。
【００５２】
図５（ｍ）は、更新手順１２により、図５（ｂ）で格納された新データより後ろの領域を空き領域として示すオブジェクトが、ＵｎｕｓｅｄＳｐａｃｅの先頭に格納された状態を示している。
図５（ｎ）は、更新手順１３により、ＵｎｕｓｅｄＳｐａｃｅに格納された空き領域を示すオブジェクトのうち、先頭に格納されたオブジェクト以外が、削除された状態を示している。
図５（ｏ）は、図５（ｂ）でＰｕｂｌｉｃの旧データが格納されていた領域よりも後ろの領域に格納された新データが削除され、ＩＣカードの更新処理が完了した状態を示している。
【００５３】
上記の更新処理の手順を要約すると、データを格納するとき、すなわちデータを書き込むときは、データ、空き領域、テンプレートの順に処理を行い、データを削除する時は空き領域、データの順に処理を行うことになる。
【００５４】
ＰｒＫＤ、ＰｒｉＫｅｙ１、ＰｒｉＫｅｙ２の関係においては、ＣＤの代わりにＰｒＫＤ、Ｐｕｂｌｉｃの代わりにＰｒｉＫｅｙ１及びＰｒｉＫｅｙ２を用い、ＣＤとＰｕｂｌｉｃ間の処理手順で先頭に格納されるデータをＰｒｉＫｅｙ１に、それ以外のデータをＰｒｉＫｅｙ２に格納することにより、上記と同様に新旧データの整合性を維持しつつ、ＩＣカード６の更新処理を行うことができる。
【００５５】
また、ＰｕＫＤ、ＰｕｂＫｅｙ１、ＰｕｂＫｅｙ２の関係においては、ＣＤの代わりにＰｕＫＤ、Ｐｕｂｌｉｃの代わりにＰｕｂＫｅｙ１及びＰｕｂＫｅｙ２を用いることで、ＰｒＫＤ、ＰｒｉＫｅｙ１、ＰｒｉＫｅｙ２の関係と同様に、新旧データの整合性を維持しつつ、ＩＣカード６の更新処理を行うことができる。
【００５６】
ＩＣカード更新処理の全体としては、ＣＤとＰｕｂｌｉｃ、ＰｒＫＤとＰｒｉＫｅｙ１とＰｒｉＫｅｙ２、ＰｕＫＤとＰｕｂＫｅｙ１とＰｕｂＫｅｙ２、それぞれについて更新処理を実行するのではなく、まずＰｒｉＫｅｙ１、ＰｒｉＫｅｙ２、ＰｕｂＫｅｙ１、ＰｕｂＫｅｙ２、Ｐｕｂｌｉｃに新データを格納し、ＰｒＫＤ、ＰｕＫＤ、ＣＤに新テンプレートを格納するという手順で更新する。
【００５７】
なお、図５（ｉ）の更新手順８から図５（ｏ）の更新手順１４までの新データを先頭に移動する手順は、省略しても良い。
【００５８】
以上のように、本実施の形態１の発明は、ＩＣカードの更新データ（新テンプレート）を、ＩＣカードの空き領域ではなく、既存データ（旧テンプレート）が格納されている所定の領域に上書きして格納することにより、従来のＩＣカード更新方法よりも、更新データ１つあたり２手順少なくすることができ、計算機や通信に対する負荷を軽減できるという効果がある。
【００５９】
また、新旧データの整合性を維持したまま更新処理を行なうことができるため、更新処理が途中で中断した場合であっても、中断したそのままの状態で、更新前の古いＩＣカードとして、または更新後の新しいＩＣカードとして継続して使用できるという効果がある。具体的には、図５（ｄ）の更新手順３までに更新処理が中断した場合は、古い鍵や証明書が格納されているＩＣカードとして使用することができ、図５（ｆ）の更新手順５から図５（ｏ）の更新手順１３までに更新処理が中断した場合は、新しい鍵や証明書が格納されているＩＣカードとして使用できる。
【００６０】
また、図５（ｅ）の更新手順４においても、鍵と証明書の新旧の対応が取れない場合は、Ｐｕｂｌｉｃに格納されている新データあるいは旧データを直接参照することにより、ＩＣカード６を正しく使用できる。新データ、旧データのどちらを参照するのかは、システムの運用方針に依存する。具体的な例として、ＰｒＫＤが参照しているｐｒｉＫｅｙの鍵は新しく（更新手順４の状態）、ＣＤが参照しているＰｕｂｌｉｃの証明書は古い（更新手順３の状態）場合を説明する。新データを参照する場合、ＣＤは旧データを参照しているため、Ｕｎｕｓｅｄ  Ｓｐａｃｅの空き領域の情報を用いて、Ｐｕｂｌｉｃに格納されている新データを特定する。例えば、Ｐｕｂｌｉｃの空き領域でない領域に格納されているデータのうち、ＣＤが参照している旧データでない領域に格納されているデータを新データとして特定して参照する。一方、旧データを参照する場合は、ＰｒＫＤは新データを参照しているため、ＰｒＫＤが参照していない側のｐｒｉＫｅｙを旧データとして特定して参照すれば良い。このような参照先データを特定する処理は、ＩＣカード更新装置のデータ判定部２５により行なうことができる。また、ＩＣカード６の内部に、上記の参照先データを特定するための参照先データ特定部を設けて、利用者端末から受信した参照先要求に対して、記憶部に格納されたＣＤやＰｒＫＤ等のオブジェクトファイルが参照するデータの新旧情報により参照先データを特定して、利用者端末に参照先データの情報を出力するようにしても良い。
このように、新旧データの整合性を維持しつつＩＣカード６の更新処理を行うことにより、セキュリティが確保された施設において新しいＩＣカード６を発行して書留等の輸送手段を介して利用者に送付する必要がなくなり、輸送コストを節約できると共に古いＩＣカード６の廃棄による環境への影響も低減できる。
【００６１】
さらに、更新処理が途中で中断されても、更新処理の進捗状況を示すデータを確認することにより、中断された処理を容易に特定することができ、途中の処理から更新処理を再開することができるという効果がある。
【００６２】
また、サーバ２は、上記ＩＣカード６に対応するため、進捗管理用の専用領域を持たないICカード６であっても更新処理の進捗状況を管理することができる。
【符号の説明】
【００６３】
１  ＩＣカード更新システム、２  サーバ、２１  要求受付部、２２  鍵・証明書発行部、２３  イメージ生成部、２４  ＡＰＤＵ送受信部、２５  データ判定部、３  ネットワーク、４  クライアント、４１  要求発行部、４２  ＡＰＤＵ転送部、５  ＩＣカードリーダライタ、６  ＩＣカード。
【図１】
0006020377.tif 000002
【図３】
0006020377.tif 000003
【図４】
0006020377.tif 000004
【図５】
0006020377.tif 000005
【図２】
0006020377.tif 000006