(57)【要約】【課題】記憶媒体装置において平文と暗号文とが混在した状態でデータが書き込まれるようにするにあたり、外部通信装置の処理負荷が軽減されるようにする。【解決手段】記憶媒体を備える記憶媒体装置において、データ書込部が、第１オブジェクトの階層下に含まれる第２オブジェクトが外部通信装置から受信されるのに応じて、受信された第２オブジェクトに対応付けられた暗号状態情報が示す暗号状態により、受信された第２オブジェクトを記憶媒体に書き込むように構成する。【選択図】図１０
2015222485.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体を備える記憶媒体装置におけるデータ書き込み方法であって、
データ書込部が、第１オブジェクトの階層下に含まれる第２オブジェクトが外部通信装置から受信されるのに応じて、受信された第２オブジェクトに対応付けられた暗号状態情報が示す暗号状態により、前記受信された第２オブジェクトを前記記憶媒体に書き込むステップ
を含むデータ書き込み方法。
【請求項２】
暗号状態情報処理部が、前記第２オブジェクトの暗号状態を示す暗号状態情報が前記外部通信装置から受信されるのに応じて、受信された暗号状態情報を前記第２オブジェクトに対応付けて前記記憶媒体に書き込むステップをさらに備える
請求項１に記載のデータ書き込み方法。
【請求項３】
前記暗号状態情報が示す暗号状態は、暗号文の状態、暗号化されていない平文の状態のうちのいずれか１つである
請求項１または２に記載のデータ書き込み方法。
【請求項４】
前記暗号文の状態は、前記外部通信装置から受信されたときの原暗号文の状態と、前記原暗号文を暗号化したときと異なる暗号化処理により再び暗号化して得られる再暗号文の状態との少なくともいずれか一方である
請求項３に記載のデータ書き込み方法。
【請求項５】
前記データ書込部は、
外部通信装置から原暗号文の状態で送信された第２オブジェクトに対応付けられた暗号状態情報が原暗号文の状態を示している場合には、受信された第２オブジェクトをそのまま前記記憶媒体に書き込み、
前記受信された第２オブジェクトに対応付けられた暗号状態情報が平文の状態を示している場合には、受信された第２オブジェクトを復号して前記記憶媒体に書き込み、
前記受信された第２オブジェクトに対応付けられた暗号状態情報が、前記再暗号文の状態を示している場合には、受信された第２オブジェクトを復号した後に、前記原暗号文を暗号化したときと異なる暗号化処理によって得られた再暗号文を前記記憶媒体に書き込む
請求項４に記載のデータ書き込み方法。
【請求項６】
前記第１オブジェクトはファイルであり、前記第２オブジェクトは前記ファイルにおける単位データ格納領域に格納される単位データである
請求項１から５のいずれか一項に記載のデータ書き込み方法。
【請求項７】
前記暗号状態情報処理部は、
前記暗号状態情報を、対応の第２オブジェクトとしての単位データが格納される単位データ格納領域における所定位置に書き込む
請求項６に記載のデータ書き込み方法。
【請求項８】
前記暗号状態情報は、
少なくとも前記第１オブジェクトを管理するために前記記憶媒体に記憶される管理情報に含められる
請求項１から６のいずれか一項に記載のデータ書き込み方法。
【請求項９】
前記第１オブジェクトは１以上の基礎ファイルを格納する格納機能ファイルであり、前記第２オブジェクトは基礎ファイルである
請求項１から５のいずれか一項に記載のデータ書き込み方法。
【請求項１０】
外部通信装置と記憶媒体装置とを通信経由で接続して構成されるデータ書込システムにおけるデータ書き込み方法であって、
前記外部通信装置は、
暗号状態情報送信部が、第１オブジェクトの階層下に含まれる第２オブジェクトの暗号状態を示す暗号状態情報を前記記憶媒体装置に送信するステップと、
書込データ送信部が、所定の暗号状態による前記第２オブジェクトを書込データとして送信するステップとを備え、
前記記憶媒体装置は、
データ書込部が、データ書込部が、第１オブジェクトの階層下に含まれる第２オブジェクトが外部通信装置から受信されるのに応じて、受信された第２オブジェクトに対応付けられた暗号状態情報が示す暗号状態により、前記受信された第２オブジェクトを前記記憶媒体に書き込むステップ
を含むデータ書き込み方法。
【請求項１１】
記憶媒体と、
外部通信装置と通信を行う通信部と、
第１オブジェクトの階層下に含まれる第２オブジェクトが外部通信装置から受信されるのに応じて、受信された第２オブジェクトに対応付けられた暗号状態情報が示す暗号状態により、前記受信された第２オブジェクトを前記記憶媒体に書き込むデータ書込部と
を備える記憶媒体装置。
【請求項１２】
外部通信装置と記憶媒体装置と通信経由で接続して構成されるデータ書込システムであって、
前記外部通信装置は、
第１オブジェクトの階層下に含まれる第２オブジェクトの暗号状態を示す暗号状態情報を前記記憶媒体装置に送信する暗号状態情報送信部と、
所定の暗号状態による前記第２オブジェクトを書込データとして送信する書込データ送信部とを備え、
前記記憶媒体装置は、
記憶媒体と、
第１オブジェクトの階層下に含まれる第２オブジェクトが外部通信装置から受信されるのに応じて、受信された第２オブジェクトに対応付けられた暗号状態情報が示す暗号状態により、前記受信された第２オブジェクトを前記記憶媒体に書き込むデータ書込部と
を備えるデータ書込システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ書き込み方法、記憶媒体装置及びデータ書込システムに関する。
【背景技術】
【０００２】
ＩＣカードの発行段階においてＩＣカード発行装置がＩＣカードにデータを書き込むにあたり、機密性を要するデータについては暗号化してＩＣカードに送信し、機密性を要さないデータについては平文によりＩＣカードに送信するようにされた技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２０６７６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＩＣカードに記憶すべきデータとして、認証無しで読み出しが可能な機密性を要さないデータと、認証が成立した場合にのみ読み出しが可能な機密性を要するデータとが有る場合、上記の技術に従えば、以下のようにＩＣカードにデータを記憶させることができる。
つまり、ＩＣカード発行装置は、機密性を要さないデータについては、平文によるデータをＩＣカードに送信し、機密性を要するデータについては暗号化して送信する。そして、ＩＣカードは、送信されたデータを内部の記憶媒体に記憶させるというものである。
【０００５】
上記のようにしてＩＣカードにデータが記憶された場合、機密性を要さないデータについては平文のままＩＣカード記憶されていることになる。従って、ＩＣカードに記憶された機密性を要さないデータについては、どのユーザでもアクセスして読み出すことができる。
一方、機密性を要するデータについては、認証が成立したユーザの鍵によらなければ暗号化を解くことができない。つまり、機密性を要するデータについては、認証が成立したユーザのみが暗号化を解いて平文として読み出すことができる。このようにして、機密性を要するデータについてのセキュリティを図ることができる。
【０００６】
しかし、上記のようにＩＣカードにデータが記憶されるようにするためには、ＩＣカード発行装置が、機密性を要さないデータについては平文のままでＩＣカードに書き込み、機密性を要するデータについては暗号化したうえでＩＣカードに書き込む必要がある。
つまり、ＩＣカード発行装置は、ＩＣカードに書き込むべきデータが機密性を有しているか否かに応じて、適宜、暗号化が必要か否かを判断する。そのうえで、ＩＣカード発行装置は、暗号化が必要である場合には暗号化処理を有効化し、暗号化が不要である場合には暗号化処理を無効化するという処理の切り替えを行わなければならない。
このように、ＩＣカードに書き込むべきデータごとに暗号化の要否を判定し、判定結果に応じて暗号化処理の実行と停止とを切り替えるという処理が頻繁に行われることによっては、ＩＣカード発行装置の処理負荷が増加する。
【０００７】
本発明は、このような事情に鑑みてなされたもので、記憶媒体装置において平文と暗号文とが混在した状態でデータが書き込まれるようにするにあたり、外部通信装置の処理負荷が軽減されるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決する本発明の一態様は、記憶媒体を備える記憶媒体装置におけるデータ書き込み方法であって、データ書込部が、第１オブジェクトの階層下に含まれる第２オブジェクトが外部通信装置から受信されるのに応じて、受信された第２オブジェクトに対応付けられた暗号状態情報が示す暗号状態により、前記受信された第２オブジェクトを前記記憶媒体に書き込むステップを含むデータ書き込み方法である。
【０００９】
また、本発明の一態様は上記のデータ書込方法であって、暗号状態情報処理部が、前記第２オブジェクトの暗号状態を示す暗号状態情報が前記外部通信装置から受信されるのに応じて、受信された暗号状態情報を前記第２オブジェクトに対応付けて前記記憶媒体に書き込むステップをさらに備えてもよい。
【００１０】
また、本発明の一態様は上記のデータ書込方法であって、前記暗号状態情報が示す暗号状態は、暗号文の状態、暗号化されていない平文の状態のうちのいずれか１つであってもよい。
【００１１】
また、本発明の一態様は上記のデータ書込方法であって、前記暗号文の状態は、前記外部通信装置から受信されたときの原暗号文の状態と、前記原暗号文を暗号化したときと異なる暗号化処理により再び暗号化して得られる再暗号文の状態との少なくともいずれか一方であってもよい。
【００１２】
また、本発明の一態様は上記のデータ書込方法であって、前記データ書込部は、外部通信装置から原暗号文の状態で送信された第２オブジェクトに対応付けられた暗号状態情報が原暗号文の状態を示している場合には、受信された第２オブジェクトをそのまま前記記憶媒体に書き込み、前記受信された第２オブジェクトに対応付けられた暗号状態情報が平文の状態を示している場合には、受信された第２オブジェクトを復号して前記記憶媒体に書き込み、前記受信された第２オブジェクトに対応付けられた暗号状態情報が、前記再暗号文の状態を示している場合には、受信された第２オブジェクトを復号した後に、前記原暗号文を暗号化したときと異なる暗号化処理によって得られた再暗号文を前記記憶媒体に書き込んでもよい。
【００１３】
また、本発明の一態様は上記のデータ書込方法であって、前記第１オブジェクトはファイルであり、前記第２オブジェクトは前記ファイルにおける単位データ格納領域に格納される単位データであってもよい。
【００１４】
また、本発明の一態様は上記のデータ書込方法であって、前記暗号状態情報処理部は、前記暗号状態情報を、対応の第２オブジェクトとしての単位データが格納される単位データ格納領域における所定位置に書き込んでもよい。
【００１５】
また、本発明の一態様は上記のデータ書込方法であって、前記暗号状態情報は、少なくとも前記第１オブジェクトを管理するために前記記憶媒体に記憶される管理情報に含められてもよい。
【００１６】
また、本発明の一態様は上記のデータ書込方法であって、前記第１オブジェクトは１以上の基礎ファイルを格納する格納機能ファイルであり、前記第２オブジェクトは基礎ファイルであってもよい。
【００１７】
本発明の一態様は、外部通信装置と記憶媒体装置とを通信経由で接続して構成されるデータ書込システムにおけるデータ書き込み方法であって、前記外部通信装置は、暗号状態情報送信部が、第１オブジェクトの階層下に含まれる第２オブジェクトの暗号状態を示す暗号状態情報を前記記憶媒体装置に送信するステップと、書込データ送信部が、所定の暗号状態による前記第２オブジェクトを書込データとして送信するステップとを備え、前記記憶媒体装置は、データ書込部が、データ書込部が、第１オブジェクトの階層下に含まれる第２オブジェクトが外部通信装置から受信されるのに応じて、受信された第２オブジェクトに対応付けられた暗号状態情報が示す暗号状態により、前記受信された第２オブジェクトを前記記憶媒体に書き込むステップを含むデータ書き込み方法である。
【００１８】
本発明の一態様は、記憶媒体と、外部通信装置と通信を行う通信部と、第１オブジェクトの階層下に含まれる第２オブジェクトが外部通信装置から受信されるのに応じて、受信された第２オブジェクトに対応付けられた暗号状態情報が示す暗号状態により、前記受信された第２オブジェクトを前記記憶媒体に書き込むデータ書込部とを備える記憶媒体装置である。
【００１９】
本発明の一態様は、外部通信装置と記憶媒体装置と通信経由で接続して構成されるデータ書込システムであって、前記外部通信装置は、第１オブジェクトの階層下に含まれる第２オブジェクトの暗号状態を示す暗号状態情報を前記記憶媒体装置に送信する暗号状態情報送信部と、所定の暗号状態による前記第２オブジェクトを書込データとして送信する書込データ送信部とを備え、前記記憶媒体装置は、記憶媒体と、第１オブジェクトの階層下に含まれる第２オブジェクトが外部通信装置から受信されるのに応じて、受信された第２オブジェクトに対応付けられた暗号状態情報が示す暗号状態により、前記受信された第２オブジェクトを前記記憶媒体に書き込むデータ書込部とを備えるデータ書込システムである。
【発明の効果】
【００２０】
以上説明したように、本発明によれば、記憶媒体装置において平文と暗号文とが混在した状態でデータが書き込まれるようにするにあたり、外部通信装置の処理負荷が軽減されるようになるという効果が得られる。
【図面の簡単な説明】
【００２１】
【図１】第１実施形態におけるＩＣカード発行装置とＩＣカードの構成例を示す図である。
【図２】第１実施形態におけるＩＣカードが備える記憶媒体の記憶領域についてのメモリマッピング例を示す図である。
【図３】ＩＣカードの記憶媒体に記憶されるファイルにおけるレコードデータの書き込み例を示す図である。
【図４】第１実施形態におけるファイル生成コマンドの構造例を示す図である。
【図５】ファイル生成コマンドのデータ部に含まれる暗号状態情報の内容例を示す図である。
【図６】第１実施形態におけるファイルへの初期値の書き込み手順例を説明する図である。
【図７】第１実施形態において、レコードのそれぞれに図３と同様のデータを書き込む場合の手順例について説明する図である。
【図８】機密性の有無が異なるレコードデータをファイルに格納する場合の一態様例を示す図である。
【図９】第１実施形態において、拡張された暗号状態情報が適用された場合のファイルのデータ書き込みの態様例を示す図である。
【図１０】第１実施形態におけるＩＣカード発行装置とＩＣカードとがファイルの書き込みに対応して実行する処理手順例を示すフローチャートである。
【図１１】ＴＬＶ構造によるファイルを説明する図である。
【図１２】第２実施形態におけるファイルのデータの書き込み手順例を説明する図である。
【図１３】第３実施形態におけるＩＣカードの記憶媒体に書き込まれたファイルによるファイル構造例を示す図である。
【発明を実施するための形態】
【００２２】
＜第１実施形態＞
［ＩＣカード発行システムの構成例］
以下、実施形態としてのＩＣカード（記憶媒体装置の一例）について図面を参照して説明する。
図１は、第１実施形態におけるＩＣカード発行システム（データ書込システムの一例）の構成例を示している。同図に示すＩＣカード発行システムは、ＩＣカード発行装置１００（外部通信装置の一例）とＩＣカード２００とを通信経由で接続して構成される。
【００２３】
ＩＣカード発行装置１００は、ＩＣカード２００に対する発行処理として、ＩＣカード２００が備える記憶媒体２０３に、ファイルのデータが格納されるファイル格納領域を作成するファイル生成を実行することができる。そのうえで、ＩＣカード発行装置１００は、ファイル生成により作成されたファイル格納領域にファイルのデータを書き込むことができる。
【００２４】
本実施形態おいて、ＩＣカード２００の記憶媒体２０３に書き込まれるファイルは、ＤＦ（Dedicated File：専用ファイル）あるいはＥＦ（Elementary File：基礎ファイル）である。
ＤＦは、下位のＥＦやＤＦをグループ化するためのファイルである。
ＥＦは、データを格納するファイルである。ＥＦは、ＩＥＦ（Internal Elementary File：内部基礎ファイル）とＷＥＦ（作業基礎ファイル）との２つの種別に分けられる。
ＩＥＦは、セキュリティのためのキーデータが格納されるファイルである。ＩＥＦは、セキュリティ上、ＩＣカード２００から外部への出力が不可のファイルであり、ＩＣカード２００の内部においてのみ使用される。
ＷＥＦは、ＩＣカード２００から外部への出力が可能なファイルである。ＷＥＦは、例えば、ユーザに付与されたポイントに関する情報などの一般的なデータを格納する。
【００２５】
同図に示すＩＣカード発行装置１００は、通信部１０１と制御部１０２とを備える。
通信部１０１は、ＩＣカード２００と通信を実行する。通信部１０１によるＩＣカード２００との通信は接触式であってもよいし非接触式であってもよい。
【００２６】
制御部１０２は、ＩＣカード発行装置１００における各種制御を実行する。制御部１０２としての機能は、例えばＩＣカード発行装置１００が備えるＣＰＵ（Central Processing Unit）がプログラムを実行することにより実現される。
本実施形態における制御部１０２は、ＩＣカード２００の発行に対応する機能部として、暗号状態情報送信部１２１と、書込データ送信部１２２とを備える。
【００２７】
暗号状態情報送信部１２１は、第１オブジェクトの階層下に含まれる第２オブジェクトの暗号状態を示す暗号状態情報をＩＣカード２００に送信する。
本実施形態において、第１オブジェクトは、ＥＦ（Elementary File）としてのファイルである。そのうえで、本実施形態におけるＥＦは、固定長のレコードが配列されたレコード構造を有し、データはレコード（単位データ格納領域の一例）ごとに格納される。本実施形態において、第２オブジェクトは、レコードに格納される単位データ（以下、レコードデータとも呼ぶ）である。
即ち、暗号状態情報送信部１２１は、ファイルに格納されるレコードデータの暗号状態を示す暗号状態情報をＩＣカード２００に送信する。
【００２８】
書込データ送信部１２２は、所定の暗号状態によるレコードデータ（第２オブジェクト）を書込データとして送信する。具体的に、本実施形態の書込データ送信部１２２は、所定の鍵により暗号化することによって暗号文に変換したレコードデータを書込データとして送信する。
【００２９】
また、同図に示すＩＣカード２００は、通信部２０１、制御部２０２及び記憶媒体２０３を備える。
通信部２０１は、ＩＣカード発行装置１００やリーダライタなどの外部通信装置と通信を実行する。
【００３０】
制御部２０２は、ＩＣカード２００における各種制御を実行する。制御部２０２としての機能は、例えばＩＣカード２００が備えるＣＰＵが、記憶媒体２０３に記憶されたプログラムを実行することにより実現される。
本実施形態における制御部２０２は、ＩＣカード発行装置１００によるファイル生成と、データ書き込みとに対応して記憶媒体２０３を制御する機能部として、暗号状態情報処理部２２１とデータ書込部２２２とを備える。
【００３１】
前述のように、ＩＣカード発行装置１００は、ファイルの階層下のレコードに格納されるレコードデータ（第２オブジェクト）の暗号状態を示す暗号状態情報を送信する。ＩＣカード発行装置１００から送信された暗号状態情報は、ＩＣカード２００の通信部２０１にて受信される。
暗号状態情報処理部２２１は、暗号状態情報がＩＣカード発行装置１００から受信されるのに応じて、受信された暗号状態情報をレコードデータに対応付けて記憶媒体２０３に書き込む。
【００３２】
データ書込部２２２は、レコードデータ（第２オブジェクト）がＩＣカード発行装置１００から受信されるのに応じて、受信されたレコードデータに対応付けられた暗号状態情報が示す暗号状態により、受信されたレコードデータを記憶媒体２０３に書き込む。
【００３３】
記憶媒体２０３は、制御部２０２が利用する各種の情報を記憶する。記憶媒体２０３が対応するハードウェアは、例えばＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）やフラッシュメモリなどであればよい。
【００３４】
図２は、記憶媒体２０３の記憶領域についてのメモリマッピング例を示している。同図に示すように、記憶媒体２０３の記憶領域は、ファイル管理領域ＡＲ１、システム領域ＡＲ２及びユーザデータ領域ＡＲ３を備える。
ファイル管理領域ＡＲ１は、システム領域ＡＲ２、ユーザデータ領域ＡＲ３に記憶されるデータをファイル単位で管理するファイル管理情報が記憶される領域である。一例として本実施形態におけるファイル管理領域ＡＲ１には、ＦＡＴ（File Allocation Table）ファイルシステムに対応したファイル管理情報が格納されればよい。
【００３５】
システム領域ＡＲ２は、ＯＳ（Operating System）、各種設定情報などをはじめとするシステム情報が記憶される領域である。
ユーザデータ領域ＡＲ３は、アプリケーションが使用するユーザデータが記憶される領域である。ファイルは、ユーザデータ領域ＡＲ３に記憶される。
なお、記憶媒体２０３の記憶領域においては、ファイル管理領域ＡＲ１、システム領域ＡＲ２及びユーザデータ領域ＡＲ３以外の領域が含まれていてもよい。
【００３６】
［ファイルの構造例］
図３は、ＥＦとしてのファイルＦＬのマッピング例を示している。同図に示すように、ファイルＦＬはファイルヘッダとデータ領域とを含む。
ファイルヘッダには、ファイルに関連する所定のパラメータが格納される。
データ領域には、ファイルとしてのデータが格納される。本実施形態におけるファイルは、固定長によるレコードを格納するレコード構造を有する。
【００３７】
同図を参照して、本実施形態に至った経緯について説明する。
同図には、レコード＃１に氏名のデータが格納され、レコード＃２に住所のデータが格納され、レコード＃３にカード番号が格納された場合が示されている。
ここで、同図に示すファイルＦＬを記憶するＩＣカード２００はクレジットカードである場合を例に挙げる。
【００３８】
ここで、レコード＃１〜＃３に格納される氏名、住所、カード番号の各データのうち、氏名のデータとカード番号のデータは、例えばＩＣカードのカード面にも印字されていることから、機密性を要さないデータである。
そこで、ＩＣカード発行装置１００は、氏名とカード番号の各データについては、それぞれ、平文のままレコード＃１、レコード＃３に格納する。
一方、レコード＃２に格納される住所は、クレジットカードであるＩＣカード２００の券面には印字されていない。従って、この場合の住所は個人情報として機密性を要する。
そこで、ＩＣカード発行装置１００は、住所のデータについては暗号化を行ったうえで、レコード＃２に格納する。
【００３９】
ＩＣカード発行装置１００は、ファイルＦＬにおけるレコードに対するデータの書き込みを行うにあたり、例えばレコードに付与された番号に従って順にデータを書き込んでいく。
このために、図３の例であれば、ＩＣカード発行装置１００は、先ず氏名のデータについては暗号化処理を無効化して平文のままＩＣカード２００に送信し、レコード＃１への書き込みを行う。
次に、ＩＣカード発行装置１００は、住所のデータについては暗号化処理を有効化して暗号化を行い、暗号文による住所のデータをＩＣカード２００に送信し、レコード＃２への書き込みを行う。
次に、ＩＣカード発行装置１００は、カード番号のデータについては再び暗号化処理を無効化して平文のままＩＣカード２００に送信し、レコード＃３への書き込みを行う。
【００４０】
上記のようにファイルのデータが書き込まれたＩＣカード２００に対しては、以下のようにデータの読み出しが行われる。
先ず、ＩＣカード２００に記憶されたファイルＦＬのレコード＃１、＃２、＃３のそれぞれに格納される氏名、住所、カード番号の各データ（レコードデータ）のうち、氏名とカード番号の各データは平文の状態である。
このため、リーダライタ（図示は省略する）は、氏名とカード番号のデータについては、特にセキュリティのための認証を経ることなく、ファイルＦＬにアクセスすることにより読み出すことができる。
【００４１】
また、住所のレコードデータについては、ＩＣカード発行装置１００から受信したときのままの原暗号文の状態でレコード＃３に格納されている。このために、住所のデータを読み出し可能な権限を有していないユーザに対応する不正なリーダライタによっては住所の読み出しのための認証が成立しない。
このように認証が成立しない場合において、ＩＣカード２００からデータが読み出されたとしても、例えば、住所のデータについては原暗号文のまま伝送される。そして、不正なリーダライタは、住所のデータを復号できる鍵を有していないことから、住所の鍵は暗号化されたままであり有意性を持たない。このように、不正なリーダライタによっては、住所を正常に取得できない。
【００４２】
一方、住所のデータを読み出し可能な権限を有するユーザに対応する正当なリーダライタは、住所の読み出しのための認証がＩＣカード２００との間で成立する。
このように認証が成立した場合、ＩＣカード２００からリーダライタに対しては、復号された平文の状態による住所のデータが送信される。あるいは、ＩＣカード２００からリーダライタに対しては原暗号文のままの状態による住所のデータが送信される。この場合、正当なリーダライタは、住所のデータを復号できる正当な鍵を有しているので、受信された原暗号文による住所のデータを復号することができる。
このように、住所のデータにアクセス可能な権限を有するユーザは、氏名とカード番号の各データとともに、住所のデータについても取得することができる。
【００４３】
ここで、図３に例示したように、１つのファイルＦＬにおけるレコードごとに格納されるデータについて原暗号文によるデータと平文によるデータとを混在させようとすると、ＩＣカード発行装置１００は、以下のように処理を実行する必要がある。
つまり、ＩＣカード発行装置１００は、１つのレコードにデータを書き込むごとに、暗号化が必要か否かを判断したうえで、暗号化処理の有効化と無効化との切り替えを逐次行う必要がある。このような処理は、ＩＣカード発行装置１００の処理負荷を重くすることにつながる。ＩＣカード発行装置１００によるカード発行のための処理が軽くなるほど、カード１枚あたりの発行に要する時間が短縮されることになって好ましい。
【００４４】
［データの書き込み例］
そこで、本実施形態のＩＣカード発行システムは、以下に説明するようにしてＩＣカード２００の記憶媒体２０３にファイルのデータの書き込みが行われるように構成することにより、ＩＣカード発行装置１００の処理負荷の軽減を図る。
【００４５】
ＩＣカード発行装置１００は、ＩＣカード２００に対してファイルのデータの書き込みを行うに先だってファイル生成を行う。つまり、ＩＣカード発行装置１００は、ＩＣカード２００の記憶媒体２０３におけるユーザデータ領域ＡＲ３にファイル格納領域が作成されるようにするための制御を実行する。
【００４６】
ＩＣカード発行装置１００は、１つのファイルに対応するファイル格納領域の作成をＩＣカード２００に指示するためにＩＣカード２００に対してファイル生成コマンドを送信する。図４は、ファイル生成コマンドの構造例を示している。
同図に示すファイル生成コマンドは、コマンドヘッダＣＨ、第１パラメータＰ１、第２パラメータＰ２、データ長Ｌｃ、データ部Ｄａｔａが配置された構造を有する。
コマンドヘッダＣＨは、当該コマンドの種別を示す。ファイル生成コマンドの場合、コマンドヘッダＣＨには、ファイル生成コマンドであることを示す所定値が格納される。
第１パラメータＰ１、第２パラメータＰ２による領域は、コマンドヘッダＣＨが示すコマンドの種別に応じた所定のパラメータを格納する。
データ長Ｌｃは、データ部Ｄａｔａのデータ長（サイズ）を示す。
ファイル生成コマンドにおけるデータ部Ｄａｔａは、ファイル種別情報、サイズ情報、ファイル識別子、初期値情報及び暗号状態情報を含む。
【００４７】
ファイル種別情報は、作成対象のファイル格納領域が対応するファイルの種別が、例えばＤＦ、ＩＥＦ、ＷＥＦのうちのいずれであるのかを示す情報である。即ち、ファイル種別情報がＤＦを示す場合、当該ファイル生成コマンドは、ＤＦのファイル格納領域の作成を指示する。また、ファイル種別情報がＩＥＦを示す場合、当該ファイル生成コマンドは、ＩＥＦのファイル格納領域の作成を指示する。また、ファイル種別情報がＷＥＦを示す場合、当該ファイル生成コマンドは、ＷＥＦのファイル格納領域の作成を指示する。
サイズ情報は、作成対象のファイル格納領域のサイズを示す情報である。
ファイル識別子は、作成対象のファイル格納領域に格納されるべきＥＦのファイル識別子を示す。
初期値情報は、ファイル格納領域の作成にあたって書き込むべき初期値を示す情報である。
【００４８】
暗号状態情報は、作成対象のファイル格納領域に格納されるファイルに含まれるレコードごとに対応付けられた情報である。１つの暗号状態情報は、対応付けされたレコードに格納されるレコードデータの暗号状態を示す。
【００４９】
図５は、ファイル生成コマンドのデータ部Ｄａｔａに含まれる暗号状態情報の内容例を示している。同図に示す暗号状態情報は、図３に示したファイルＦＬの内容に対応している。
図５に示すように、ファイル生成コマンドのデータ部Ｄａｔａに含まれる暗号状態情報は、レコード番号ごとに対応付けられている。
レコード＃１に対応付けられた暗号状態情報は００ｈを示している。レコード＃２に対応付けられた暗号状態情報は０１ｈを示している。レコード＃３に対応付けられた暗号状態情報は００ｈを示している。
００ｈの暗号状態情報は、ＩＣカード発行装置１００から書込データとして受信したときと同じ原暗号文の状態を示す。
一方、０１ｈの暗号状態情報は、平文の状態を示す。
即ち、ファイル生成コマンドのデータ部Ｄａｔａに含まれる暗号状態情報が００ｈを示している場合、対応のレコードにはＩＣカード発行装置１００から受信されたときのままの原暗号文の状態でレコードデータを格納すべきことを指示する。
また、ファイル生成コマンドのデータ部Ｄａｔａに含まれる暗号状態情報が０１ｈを示している場合、対応のレコードには平文の状態でレコードデータを格納すべきことを指示する。
なお、同図においては、暗号状態情報が１バイト（８ビット）である場合を例に挙げているが、暗号状態情報のサイズとしては特に限定されない。
【００５０】
ＩＣカード発行装置１００から送信されたファイル生成コマンドは、ＩＣカード２００において、通信部２０１にて受信される。
通信部２０１にてファイル生成コマンドが受信されると、制御部２０２は、受信されたファイル生成コマンドのコマンドヘッダＣＨを参照することで、ファイル生成コマンドが受信されたことを認識する。そのうえで、制御部２０２は、受信されたファイル生成コマンドのデータ部Ｄａｔａから、ファイル種別情報、サイズ情報、ファイル識別子、初期値情報及び暗号状態情報を取得する。
【００５１】
制御部２０２は、データ部Ｄａｔａから取得したサイズ情報が示すサイズによる領域をユーザデータ領域ＡＲ３から確保し、確保した領域がデータ部Ｄａｔａから取得したファイル種別情報により示されるファイルの領域として管理されるようにファイル管理情報（例えばＦＡＴなど）を更新する。なお、ファイル管理情報としてのデータは、ファイルのデータとは異なるものであり、従ってレコードに格納される構造を有さなくともよい。
【００５２】
また、制御部２０２は、上記のように新規に登録されたファイルの領域におけるファイルヘッダと、データ領域に初期値を書き込む処理を実行する。ファイルヘッダと、データ領域に書き込むべき初期値は、ファイル生成コマンドのデータ部Ｄａｔａに格納される初期値情報によって指定されている。また、データ領域は固定長のレコード単位が連結して形成されている。このために、データ領域に対応する初期値情報はレコードごとに設けられる。
【００５３】
以下、図６を参照して、本実施形態のＩＣカード２００によるファイルＦＬへの初期値の書き込み手順例について説明する。
先ず、ＩＣカード２００の制御部２０２は、ファイルヘッダの初期値を指定する初期値情報が示す初期値を、ファイルＦＬにおけるファイルヘッダに書き込む。
次に、制御部２０２は、ファイルＦＬのデータ領域におけるレコード＃１に対して、初期値を書き込む。レコード＃１への初期値の書き込みにあたり、先ず、レコード＃１の領域の先頭の１バイトに、レコード＃１に対応する暗号状態情報の値である００ｈを書き込む。次に、制御部２０２は、レコード＃１の２バイト目以降に、レコード＃１の初期値情報が示す初期値を書き込む。
また、制御部２０２は、データ領域におけるレコード＃２の領域において、先頭の１バイトに、レコード＃２に対応する暗号状態情報の値である０１ｈを書き込み、２バイト目以降に、レコード＃２の初期値情報が示す初期値を書き込む。
また、制御部２０２は、データ領域におけるレコード＃３の領域において、先頭の１バイトにレコード＃３に対応する暗号状態情報の値である００ｈを書き込み、２バイト目以降に、レコード＃３の初期値情報が示す初期値を書き込む。
以降同様にして、制御部２０２は、レコード＃３以降の各領域において、先頭の１バイトには、当該レコードに対応付けられた暗号状態情報の値を書き込み、２バイト目以降に対応のレコード番号の初期値情報が示す初期値を書き込む。
【００５４】
なお、レコードにおける先頭の１バイトにおける暗号状態情報の書き込みと、２バイト目以降における初期値の書き込みは、制御部２０２における暗号状態情報処理部２２１が実行すればよい。
また、レコードごとの初期値情報について、レコードに書き込むべき値として、先頭の１バイトの暗号状態情報の値を含めた内容としてもよい。つまり、暗号状態情報は、ファイル生成コマンドが格納するレコードの初期値情報に含めることによって、レコードと対応付けられるようにしてもよい。
【００５５】
このようにファイル生成が行われることで、記憶媒体２０３のユーザデータ領域ＡＲ３上に確保されたファイルＦＬの領域に対して初期値が書き込まれる。この際、データ領域における各レコードの先頭においては暗号状態情報が書き込まれる。このように初期値の書き込み時においてレコードに暗号状態情報が書き込まれることにより、レコードと暗号状態情報との対応付けが行われる。
【００５６】
そして、上記のようにファイル生成が行われた後において、ＩＣカード発行装置１００は、ＩＣカード２００において作成されたファイル格納領域におけるファイルヘッダと、データ領域における各レコードに、アプリケーションに応じたデータの書き込みを行う。
【００５７】
ＩＣカード２００にファイルのデータの書き込みを行う際、ＩＣカード発行装置１００は、書込データを格納したデータ書き込みコマンドをＩＣカード２００に対して送信する。
本実施形態のＩＣカード発行装置１００は、レコード単位に対応するデータ書き込みコマンドをＩＣカード２００に送信する。なお、ファイルヘッダは、１つのレコードとして扱われればよい。
データ書き込みコマンドには書込データとしてレコードデータが格納される。本実施形態のＩＣカード発行装置１００は、データ書き込みコマンドに格納する書込データ（レコードデータ）については、全て所定の鍵により暗号化されており、暗号文の状態である。
このように、本実施形態においては、ＩＣカード発行装置１００からＩＣカード２００に送信する書込データについて全て暗号化することにより、例えばデータ書き込みに際してのデータの傍受に対するセキュリティを高めることができる。
【００５８】
ここで、本実施形態のもとで、レコード＃１、＃２、＃３のそれぞれに、図３と同様の平文による氏名のデータ、原暗号文による住所のデータ、平文によるカード番号のデータを書き込む場合の手順例について、図７を参照して説明する。
【００５９】
ＩＣカード発行装置１００は、先ず、ファイルヘッダ、レコード＃１、レコード＃２、レコード＃３・・・・の順に従って、データ書込コマンドを送信する。
ＩＣカード２００の制御部２０２において、データ書込部２２２は、ファイルヘッダのデータ書込コマンドが受信されると、受信したデータ書込コマンドからファイルヘッダのデータを取得する。データ書込部２２２は、ファイルヘッダのデータについては例えば平文によりファイルヘッダに書き込むようにされている。従って、この場合のデータ書込部２２２は、データ書込コマンドから取得した暗号文の状態のファイルヘッダを復号して平文化し、平文によるデータをファイルヘッダの領域に書き込めばよい。
【００６０】
例えば、ファイルヘッダについては、例えば上記のように平文によりデータを格納することが全てのファイルについて共通に定められている。これに対して、データ領域については、レコードごとに平文の状態と暗号文の状態のいずれのデータを格納すべきなのかは、ファイルに応じて異なる。
そこで、ＩＣカード２００におけるデータ書込部２２２は、レコードに対しては以下のようにデータの書き込みを行う。
【００６１】
先ず、レコード＃１に対応するデータ書込コマンドを受信するのに応じて、データ書込部２２２は、レコード＃１の先頭の１バイトに書き込まれている暗号状態情報の値が何であるのかを認識する。この場合、レコード＃１の先頭の１バイトに書き込まれている暗号状態情報の値は００ｈであり、平文の状態であることを示す。
そこで、この場合のデータ書込部２２２は、レコード＃１に対応するデータ書込コマンドから取得した氏名のデータについて復号を行って平文とする。そして、データ書込部２２２は、平文による氏名のデータを、レコード＃１における２バイト目を開始位置として書き込みを行う。
このように書き込みが行われることで、図７に例示するように、レコード＃１は、先頭の１バイトにおける００ｈの暗号状態情報に続けて、平文による氏名のデータが格納された状態となる。
【００６２】
次に、データ書込部２２２は、レコード＃２に対応するデータ書込コマンドを受信するのに応じて、レコード＃２の先頭の１バイトに書き込まれている暗号状態情報の値が０１ｈであり、原暗号文の状態であることを認識する。
そこで、この場合のデータ書込部２２２は、レコード＃２に対応するデータ書込コマンドから取得した住所のデータについては、復号を行わない。そして、データ書込部２２２は、ＩＣカード発行装置１００から送信されたときと同じ原暗号文のままの住所のデータを、レコード＃２における２バイト目を開始位置として書き込みを行う。
このように書き込みが行われることで、図７に例示するように、レコード＃２は、先頭の１バイトにおける０１ｈの暗号状態情報に続けて、原暗号文による住所のデータが格納された状態となる。
【００６３】
次に、レコード＃３に対応するデータ書込コマンドを受信するのに応じて、データ書込部２２２は、レコード＃３の先頭の１バイトに書き込まれている暗号状態情報の値が００ｈであり、平文の状態であることを認識する。
そこで、この場合のデータ書込部２２２は、レコード＃３に対応するデータ書込コマンドから取得したカード番号のデータについて復号を行って平文を得る。そして、データ書込部２２２は、平文によるカード番号のデータを、レコード＃３における２バイト目を開始位置として書き込みを行う。
このように書き込みが行われることで、図７に例示するように、レコード＃３は、先頭の１バイトにおける００ｈの暗号状態情報に続けて、平文によるカード番号のデータが格納された状態となる。
【００６４】
以降、データ書込部２２２は、同様にして、レコードに対応するデータ書込コマンドを受信するのに応じて、受信されたデータ書込コマンドが対応するレコードの先頭に書き込まれた暗号状態情報が示す暗号状態を認識する。そして、データ書込部２２２は、認識した暗号状態が平文の状態であれば、原暗号文の状態で受信された書込データの復号を行って平文とし、対応のレコードにおける暗号状態情報に続けて平文の書込データを書き込む。
これに対して、データ書込部２２２は、認識した暗号状態が原暗号文の状態であれば、原暗号文の状態で受信された書込データについて復号を行うことなく、対応のレコードにおける暗号状態情報に続けて書き込みを行う。
このようにして、ファイルＦＬにおけるレコードの各々には、暗号状態情報が示す暗号状態のデータが書き込まれる。
【００６５】
これまでに説明した構成によれば、ＩＣカード発行装置１００は、レコードに書き込まれている状態でのデータの暗号状態が平文と原暗号文のいずれであるかにかかわらず、全てのレコードの書込データを暗号化し、データ書込コマンドに含めて送信できる。
つまり、ＩＣカード発行装置１００は、データ書込コマンドにより書込データをＩＣカード２００に送信するにあたり、書込データを対象とした暗号化処理の有効化と無効化を逐一切り替える必要がない。このように暗号化処理についての有効化と無効化の切り替えが不要になることで、全ての書込データに暗号化処理を適用できることになり、データ書込コマンドを順次送信するにあたってのＩＣカード発行装置１００の処理負荷が軽減される。
【００６６】
また、本実施形態のように、第１オブジェクトがファイルであって、第１オブジェクトの階層下の第２オブジェクトがレコードデータである場合において、図７のようにファイルの書き込みを行うようにした場合には、以下のような利点も得られる。
ＩＣカード２００の記憶媒体２０３に記憶されるデータについてのアクセス権はファイル単位で指定されることが定められている。そこで、氏名、住所、カード番号のデータのうち、前述と同様に、氏名とカード番号のデータが機密性を要さず、住所のデータが機密性を要する場合には、図８のようにファイルのデータを書き込むこともできる。
【００６７】
図８においては、ファイルＦＬ１とファイルＦＬ２の２つのファイルが示されている。ファイルＦＬ１とファイルＦＬ２のうち、ファイルＦＬ１は、アクセス権は特に設定されておらず、いかなるユーザであってもアクセスすることができる。
このようにアクセス権が設定されていないファイルＦＬ１においては、氏名、住所、カード番号のデータのうち、機密性を要しない氏名とカード番号のデータがそれぞれレコード＃１とレコード＃２とに書き込まれている。
【００６８】
また、ファイルＦＬ２は、アクセス権が設定されたファイルであって、アクセス権を有するユーザによる認証が成立しなければアクセスすることができないファイルである。そこで、ファイルＦＬ２については、住所のデータへのアクセスが許可されたユーザに対応するアクセス権が設定されたうえで、氏名、住所、カード番号のデータのうち、機密性を要する住所のデータがレコード＃１に書き込まれている。
【００６９】
このように作成されたファイルＦＬ１とファイルＦＬ２とを記憶媒体２０３に記憶させておくことによっても、例えば図７と同様に住所のデータにアクセスできるユーザを制限できる。つまり、氏名とカード番号のデータについては全てのユーザが読み出し可能であるのに対して、住所のデータについてはアクセス権を有するユーザのみが読み出せるようにできる。
【００７０】
しかし、同じアクセス権が設定されたデータごとのアクセス制御を実現するにあたり、本実施形態の場合には図７に示したように、氏名、住所、カード番号のデータが１つのファイルＦＬに格納される。これに対して、図８の例では、ファイルＦＬ１、ＦＬ２のように複数のファイルが必要になる。
図８の例のようにファイルが複数になるのに応じては、ファイルごとに対応して作成されるファイルヘッダやディレクトリエントリなどのようにファイルの管理に関連するファイル管理情報も複数に増加する。このために、ユーザデータ領域ＡＲ３において同じデータを格納するのに使用するサイズが大きくなってしまう。
これに対して、本実施形態であれば、上記のように、アクセス権の設定の異なるデータを格納するためのファイルは１つでよいことから、ファイル管理情報も１つでよい。これにより、本実施形態は、図８の場合と比較してユーザデータ領域ＡＲ３の使用サイズを小さくすることが可能になり、例えば記憶媒体２０３の記憶領域の使用効率が向上する。
【００７１】
また、本実施形態のようにアクセス権の設定の異なるデータを格納するためのファイルが１つでよくなることで、ファイルのデータの書き込みまでの工程についても削減することができ、ＩＣカード発行装置１００の処理負荷のさらなる軽減が可能になる。
ＩＣカード発行装置１００は、ファイルのデータ書き込みが完了するまでの工程において、ファイル生成として、生成対象のファイルの親ＤＦの選択と、ファイル格納領域の作とを実行する。また、ＩＣカード発行装置１００は、ファイルヘッダやファイルシステムなどのファイル管理情報へのデータの書き込みも行う。
図７の場合には、同じ氏名、住所、カード番号などのデータを格納するために２つのファイルを生成する必要があるため、上記の親ＤＦの選択、ファイル格納領域の作成、ファイル管理情報などへのデータ書き込みを、ファイルＦＬ１とファイルＦＬ２のそれぞれに対応して２回ずつ実行することになる。
これに対して、本実施形態であれば、同じ氏名、住所、カード番号などのデータを格納するにあたり、生成すべきファイルは１つでよいことから、親ＤＦの選択、ファイル格納領域の作成、ファイル管理情報などへのデータ書き込みも１回ずつでよい。
このように、本実施形態は、図８の場合と比較して、ファイルへのデータの書き込みが完了するまでの工程が削減される。
【００７２】
次に、図９を参照して、本実施形態における暗号状態情報の拡張例について説明する。先ず、同図に示すファイルＦＬにおけるレコード＃１、レコード＃２、レコード＃３に格納されるデータの内容は、それぞれ、図７と同様である。
つまり、レコード＃１においては、先頭の１バイトに平文の状態を示す００ｈの暗号状態情報が格納され、２バイト目以降に平文による氏名のデータが格納される。
また、レコード＃２においては、先頭の１バイトに原暗号文の状態を示す０１ｈの暗号状態情報が格納され、２バイト目以降に原暗号文による住所のデータが格納される。
また、レコード＃３においては、先頭の１バイトに平文の状態を示す００ｈの暗号状態情報が格納され、２バイト目以降に平文によるカード番号のデータが格納される。
【００７３】
そのうえで、さらにレコード＃４においては、先頭の１バイトに０２ｈの暗号状態情報が格納され、２バイト目以降において再暗号文による電話番号のデータが格納される。
暗号状態情報としての０２ｈは、暗号状態として再暗号文の状態であることを示す。０２ｈの暗号状態情報は、他の００ｈ、０１ｈの暗号状態情報と同様に、ファイル生成の際に、ファイル生成コマンドに含まれる暗号状態情報に基づいてレコード＃４の先頭に書き込まれたものである。
ここで、再暗号文とは、ＩＣカード発行装置１００から受信された原暗号文としての書込データを、原暗号文を暗号化したときと異なる暗号化処理により再び暗号化して得られる暗号文である。本実施形態において、原暗号文を暗号化したときと異なる暗号化処理は、例えば、原暗号文を暗号化したときと異なる鍵により暗号化することである。
【００７４】
ＩＣカード２００におけるデータ書込部２２２は、ファイルヘッダとレコード＃１〜＃３までについては、図７と同様にデータ書き込みを実行する。
そして、データ書込部２２２は、同図に示すレコード＃４についてのデータ書込コマンドを受信した場合には、以下のようにデータ書き込みを行う。
データ書込部２２２は、レコード＃４の先頭の１バイトに書き込まれた０２ｈの暗号状態情報を参照することによって、レコード＃４に対して再暗号文を書き込むべきことを認識する。
そこで、データ書込部２２２は、受信されたデータ書込コマンドから取得した原暗号文による電話番号の書込データについて、一旦復号を行って平文とする。そのうえで、データ書込部２２２は、平文とした書込データについて、原暗号文を暗号化したときとは異なる鍵を使用して、再び暗号化して暗号文とする。
データ書込部２２２は、上記のようにして再暗号文として生成した電話番号の書込データをレコード＃４の２バイト目以降を開始位置として書き込みを行う。
【００７５】
このようにして、暗号状態情報を拡張することによって、ファイルのレコードには、原暗号文によるデータと、平文によるデータとに加え、再暗号文によるデータも格納することができる。
図９のように、暗号文として原暗号文と再暗号文とが併用される場合、原暗号文と再暗号文とについて、それぞれ異なるアクセス権を対応させることが可能である。
なお、図９の変形例として、ファイルのレコードに格納されるデータの暗号状態については、原暗号文は使用せずに、平文と再暗号文による２つを使用するように構成してもよい。
【００７６】
［処理手順例］
図１０のフローチャートを参照して、ＩＣカード発行装置１００とＩＣカード２００によるＩＣカード発行システムが、ＩＣカード２００の記憶媒体２０３にファイルの書き込みに対応して実行する処理手順例について説明する。なお、同図に示す処理は、１つのファイルの書き込みに対応する。
【００７７】
ＩＣカード発行装置１００において、制御部１０２は、これよりファイルに書き込むべきファイルが含まれるＤＦ（親ＤＦ）の選択をＩＣカード２００に指示する（ステップＳ１０１）。
ステップＳ１０１の処理として、制御部１０２は、ＩＣカード２００が選択すべき親ＤＦを指定する親ＤＦ選択コマンドをＩＣカード２００に送信する。
ＩＣカード２００は、親ＤＦ選択コマンドの受信に応じて親ＤＦを選択すると、同じステップＳ１０１の処理として、親ＤＦの選択が終了したことを示す親ＤＦ選択応答をＩＣカード発行装置１００に送信する。そこで、ステップＳ１０１として、制御部１０２は、親ＤＦ選択応答を受信する。
【００７８】
上記のように親ＤＦが選択された後、ＩＣカード発行装置１００は以下の処理を実行する。
ＩＣカード発行装置１００において、暗号状態情報送信部１２１は、ＩＣカード２００の記憶媒体２０３におけるユーザデータ領域ＡＲ３に書き込むべき１つのファイルに対応するファイル生成コマンドを作成する（ステップＳ１０２）。
図４にて説明したように、本実施形態のファイル生成コマンドは、データ部Ｄａｔａにおいてファイル種別情報、サイズ情報、ファイル識別子、初期値情報、暗号状態情報が含まれる。
次に、暗号状態情報送信部１２１は、ステップＳ１０２にて作成したファイル生成コマンドを、順次、通信部１０１からＩＣカード２００に対して送信させる（ステップＳ１０３）。
【００７９】
ステップＳ１０３により送信されたファイル生成コマンドが送信されるのに応じて、ＩＣカード２００における記憶媒体２０３のユーザデータ領域ＡＲ３には、受信されたファイル生成コマンドが指定するファイルに対応するファイル格納領域が作成される。
そして、ファイル格納領域が作成されるのに応じて、ＩＣカード２００からはファイル生成が完了したことを示すファイル生成応答が送信される。
通信部２０１は、ＩＣカード２００から送信されたファイル生成応答を受信する（ステップＳ１０４）。
【００８０】
ファイル生成応答が受信された後において、ＩＣカード発行装置１００は、ＩＣカード２００に作成したファイル格納領域にデータを格納するための制御を実行する。このために、ＩＣカード発行装置１００における書込データ送信部１２２は、レコードデータとしての書込データを鍵Ｋ１により暗号化して暗号文とする（ステップＳ１０５）。
次に、書込データ送信部１２２は、ステップＳ１０５により暗号化された書込データの書き込みを指示するデータ書込コマンドを、ＩＣカード２００に送信する（ステップＳ１０６）。
ステップＳ１０６により送信されるデータ書込コマンドには、ステップＳ１０５によりレコードデータを暗号化した書込データが含まれている。
【００８１】
ステップＳ１０６によるデータ書込コマンドの受信に応じて、ＩＣカード２００はデータ書込コマンドが指定するレコードに対して、データ書込コマンドに含まれる書込データ（レコードデータ）の書き込みを実行する。そして、書込データの書き込みが完了するのに応じてＩＣカード２００からは、データ書き込みの完了を示すデータ書込応答が送信される。
通信部１０１は、上記のようにＩＣカード２００から送信されたデータ書込応答を受信する（ステップＳ１０７）。
【００８２】
ステップＳ１０７によりデータ書込応答を受信すると、書込データ送信部１２２は、今回の書き込み対象のファイルにおける全てのレコードに対するデータ書き込みが完了したか否かについて判定する（ステップＳ１０８）。
まだ、全てのレコードに対するデータ書き込みが完了していない場合（ステップＳ１０８：ＮＯ）、書込データ送信部１２２は、ステップＳ１０５に処理を戻す。これにより、書込データ送信部１２２は、次のレコードに対応するデータ書込コマンドを送信するための制御を実行する。
また、ステップＳ１０５〜Ｓ１０８による処理が繰り返されることにより、書込データ送信部１２２は、常に、ステップＳ１０５により暗号化された暗号文の状態の書込データを、データ書込コマンドとしてＩＣカード２００に対して送信することができる。
【００８３】
そして、全てのレコードへのデータ書き込みが完了するのに応じて（ステップＳ１０８：ＹＥＳ）、書込データ送信部１２２は、全てのレコードに対応するデータ書込コマンドの送信の終了を示す終了通知をＩＣカード２００に送信する（ステップＳ１０９）。
【００８４】
次に、同じ図１０を参照して、ＩＣカード２００が実行する処理手順例について説明する。
ＩＣカード２００において、制御部２０２は、ステップＳ１０１によりＩＣカード発行装置１００から送信された親ＤＦ選択コマンドを受信するのに応じて、親ＤＦを選択する（ステップＳ２０１）。ステップＳ２０１により親ＤＦが選択されることにより、以降の処理によってデータの書き込みが行われるファイルの親ＤＦが決定されたことになる。
そして、制御部２０２は、同じステップＳ２０１の処理として、親ＤＦの選択が終了するのに応じて、親ＤＦの選択が終了したことを示す親ＤＦ選択応答をＩＣカード発行装置１００に対して送信する。
【００８５】
上記のように親ＤＦを選択した後、ＩＣカード２００においては以下の処理が実行される。
ＩＣカード２００において、暗号状態情報処理部２２１は、ステップＳ１０３によりＩＣカード発行装置１００から送信されたファイル生成コマンドを受信する（ステップＳ２０２）。
【００８６】
続いて、暗号状態情報処理部２２１は、ステップＳ２０２にて受信されたファイル生成コマンドにおけるデータ部Ｄａｔａから取得した情報に従って、ファイル格納領域を作成する（ステップＳ２０３）。
ここでのファイル格納領域の作成は、前述のように、記憶媒体２０３のユーザデータ領域ＡＲ３において対象のファイルのファイル格納領域が確保されるようにファイル管理情報を更新することと、確保したファイル格納領域において初期値を書き込むことである。
そして、本実施形態の場合、初期値が書き込まれるのに伴っては、図９に例示したように、レコードの先頭に暗号状態情報が書き込まれる。
【００８７】
暗号状態情報処理部２２１は、ステップＳ２０３によるファイル格納領域の作成が完了するのに応じて、ファイル格納領域の作成（ファイル生成）が完了したことを示すファイル生成応答をＩＣカード発行装置１００に送信する（ステップＳ２０４）。
【００８８】
ステップＳ２０４により送信されたファイル生成応答を受信した後において、ＩＣカード発行装置１００は、ステップＳ１０６によりデータ書込コマンドを送信する。ＩＣカード２００において、通信部２０１は、送信されたデータ書込コマンドを受信する（ステップＳ２０５）。
【００８９】
ステップＳ２０５にてデータ書込コマンドを受信するのに応じて、データ書込部２２２は、受信されたデータ書込コマンドが指定するレコードの先頭に書き込まれている暗号状態情報を読み出す。そして、データ書込部２２２は、読み出した暗号状態情報の値が、００ｈ、０１ｈ、０２ｈのうちのいずれであるのかについて判定する（ステップＳ２０６）。
【００９０】
暗号状態情報の値が００ｈである場合（ステップＳ２０６：００ｈ）、指定されたレコードには平文のデータが書き込まれるべきことが指定されている。
そこで、この場合のデータ書込部２２２は、ステップＳ２０５にて受信されたデータ書込コマンドから取得した原暗号文の書込データを復号し、平文とする（ステップＳ２０７）。そのうえで、データ書込部２２２は、ステップＳ２０６により平文にされた書込データを、指定されたレコードにおける暗号状態情報に続けて書き込む（ステップＳ２１０）。
【００９１】
また、暗号状態情報の値が０１ｈである場合（ステップＳ２０６：０１ｈ）、指定されたレコードには、ＩＣカード２００から受信されたときの原暗号文のデータが書き込まれるべきことが指定されている。
そこで、この場合のデータ書込部２２２は、ステップＳ２０５にて受信されたデータ書込コマンドから取得した原暗号文の書込データを、復号することなく、指定されたレコードにおける暗号状態情報に続けて書き込む（ステップＳ２１０）。
なお、ファイルヘッダのレコードを指定するデータ書込コマンドが受信された場合には、ステップＳ２０６において、暗号状態情報の値が０１ｈであるものと判定されたうえで、上記と同様にステップＳ２１０の処理が実行されればよい。
【００９２】
また、暗号状態情報の値が０２ｈである場合（ステップＳ２０６：０２ｈ）、指定されたレコードには、再暗号文のデータが書き込まれるべきことが指定されている。
そこで、この場合のデータ書込部２２２は、ステップＳ２０５にて受信されたデータ書込コマンドから取得した原暗号文の書込データを復号する（ステップＳ２０８）。
次に、データ書込部２２２は、ステップＳ２０８により復号された書込データについて、鍵Ｋ２により暗号化する（ステップＳ２０９）。即ち、ステップＳ２０９においては、ＩＣカード発行装置１００においてステップＳ１０５により書込データを暗号化するのに使用した鍵Ｋ１とは異なる鍵により暗号化を行う。このように、ステップＳ２０８、Ｓ２０９の処理を経ることによって、再暗号文としての書込データが得られる。
そして、データ書込部２２２は、上記のように再暗号文にされた書込データを、指定されたレコードにおける暗号状態情報に続けて書き込む（ステップＳ２１０）。
【００９３】
ステップＳ２１０によるデータ書き込みが終了するのに応じて、データ書込部２２２は、データ書込コマンドに応じたデータ書き込みが終了したことを示すデータ書込応答をＩＣカード発行装置１００に対して送信する（ステップＳ２１１）。
【００９４】
ステップＳ２１１によるデータ書込応答を送信した後、データ書込部２２２は、ＩＣカード発行装置１００から送信される終了通知が受信されたか否かについて判定する（ステップＳ２１２）。
終了通知が受信されなければ（ステップＳ２１２：ＮＯ）、データ書込部２２２は、ステップＳ２０５に処理を戻すことで、次のデータコマンドの受信に応じたデータ書き込みのための処理を実行する。
これに対して、ステップＳ１０９によりＩＣカード発行装置１００から終了通知が送信され、終了通知が受信されたのであれば（ステップＳ２１２；ＹＥＳ）、ファイルにおける全てのレコードにファイルが書き込まれたことになる。そこで、この場合のデータ書込部２２２は、同図に示す処理を終了する。
【００９５】
上記のようにしてＩＣカード発行装置１００とＩＣカード２００とが処理を実行することにより、例えば図９に例示した構造によりファイルのデータを書き込むことが可能になる。
【００９６】
なお、これまでの説明において、記憶媒体２０３に記憶される暗号状態情報は、レコードにおける所定位置（具体的には先頭）に書き込まれることで、レコードとの対応付けが行われる。しかし、暗号状態情報が記憶媒体２０３に書き込まれる態様としてはこれに限定されない。
例えば、暗号状態情報は、第１オブジェクトであるファイルを管理する管理情報に含められてもよい。
具体的に、暗号状態情報は、レコードとの対応関係が示された状態でファイルヘッダに書き込まれてもよい。あるいは、暗号状態情報は、ファイルシステムにおいてファイルを管理するディレクトリエントリなどの管理情報において、レコードとの対応関係が示された状態で書き込まれてもよい。
【００９７】
また、これまでの説明において、ファイル生成（ファイル格納領域の作成）と、ファイル生成が行われた後のファイル格納領域へのファイルのデータの書き込みは、同じＩＣカード発行装置１００の制御によって行われる場合を例に挙げている。
しかし、ＩＣカード２００に対するファイル生成と、ファイルのデータの書き込みとは、それぞれが異なるＩＣカード発行装置によって行われるようにしてもよい。このような構成であっても、ファイルのデータの書き込みを行うＩＣカード発行装置は、全ての書込データ（レコードデータ）を暗号化したうえでデータ書込コマンドを送信できるので、処理負荷の軽減が図られる。
【００９８】
＜第２実施形態＞
続いて、第２実施形態について説明する。先の第１実施形態においては、ファイルのデータ領域が、固定長のレコードにより形成されている場合を例に挙げた。
ファイルにおけるデータ領域としては、上記の固定長のレコードによる構造の他に、ＴＬＶ構造と呼ばれる、可変長のレコードによる構造であってもよい。第２実施形態は、ファイルにおけるデータ領域がＴＬＶ構造である場合に対応する構成である。
【００９９】
図１１を参照してＴＬＶ構造について説明する。同図に示すように、ＴＬＶ構造における１つのレコードは、先頭から順にＴａｇ領域、Ｌｅｎｇｔｈ領域、Ｖａｌｕｅ領域を配列させた構造を有する。
Ｔａｇ領域には、レコードを識別する識別子（タグ）が格納される。
Ｌｅｎｇｔｈ領域には、続くＶａｌｕｅ領域のデータ長（サイズ）を示す情報が格納される。
Ｖａｌｕｅ領域には、Ｌｅｎｇｔｈ領域により示されるデータ長によるデータ（レコードデータ）が格納される。
そして、ファイルＦＬのデータ領域においては、上記のＴＬＶ構造によるレコードが、同じ図１１に示すように先頭から詰められていくように格納される。このようにして、ＴＬＶ構造によるファイルが形成される。
【０１００】
次に、図１２を参照して、第２実施形態におけるファイルの書き込み手順について説明する。図１２は、ＴＬＶ構造によるファイルに対して図９と同様のデータが書き込まれた場合のマッピング例が示されている。つまり、同図に示すファイルＦＬのデータ領域においては、ＴＬＶ構造のもとで、１番目のレコードに平文による氏名のデータが書き込まれている。また、２番目のレコードには原暗号文による住所のデータが書き込まれている。３番目のレコードには平文によるカード番号のデータが書き込まれている。４番目のレコードには再暗号文による電話番号のデータが書き込まれている。
【０１０１】
上記のようなＴＬＶ構造によるファイルにデータの書き込みを行う場合においても、ＩＣカード発行装置１００は、図１０のフローチャートにて説明したのと同様の処理を実行すればよい。
そのうえで、ステップＳ１０２において、暗号状態情報送信部１２１は、例えばＴＬＶ構造によるレコードごとにおけるＴａｇ領域、Ｌｅｎｇｔｈ領域、Ｖａｌｕｅ領域の各初期値を指定する初期値情報を格納したファイル生成コマンドを生成する。
そして、ＩＣカード２００における暗号状態情報処理部２２１は、ステップＳ２０３において、受信されたファイル生成コマンドのデータ部Ｄａｔａに含まれる初期値情報に従って、データ領域の先頭から１番目のレコードのＴａｇ領域、Ｌｅｎｇｔｈ領域、Ｖａｌｕｅ領域の順で初期値を書き込む。この際、暗号状態情報処理部２２１は、Ｖａｌｕｅ領域の先頭の１バイトには、受信されたファイル生成コマンドから取得した、１番目のレコードに対応する暗号状態情報の値を書き込む。
以降、暗号状態情報処理部２２１は、２番目以降のレコードについても、同様に、Ｔａｇ領域、Ｌｅｎｇｔｈ領域、Ｖａｌｕｅ領域に初期値を書き込んでいき、Ｖａｌｕｅ領域の先頭の１バイトには暗号状態情報の値を書き込む。
【０１０２】
そして、上記のようにファイル格納領域が作成された後において、ＩＣカード発行装置１００における書込データ送信部１２２は、ステップＳ１０６においてＴＬＶ構造のレコードに対応するデータ書込コマンドを送信する。この際も、書込データ送信部１２２は、例えばＶａｌｕｅ領域に書き込むべきデータについては、ステップＳ１０４において鍵Ｋ１により暗号化をして原暗号文としたうえで、データ書込コマンドに含める。
【０１０３】
ステップＳ２０５にてデータ書込コマンドを受信したデータ書込部２２２は、受信されたデータ書込コマンドに格納されているＴａｇ領域、Ｌｅｎｇｔｈ領域、Ｖａｌｕｅ領域の書込データを書き込む。
この際、データ書込部２２２は、Ｖａｌｕｅ領域へのデータの書き込みにあたっては、ステップＳ２０６〜Ｓ２１０の処理を実行する。つまり、データ書込部２２２は、Ｖａｌｕｅ領域の先頭における暗号状態情報の値を判定し、判定した値に応じて、平文、原暗号文、再暗号文のいずれかの状態によりＶａｌｕｅ領域への書込データの書き込みを行う。
【０１０４】
このようにデータ書き込みが行われる結果、図１２に例示するように、ＴＬＶ構造のデータ領域において、１番目のレコードにおけるＶａｌｕｅ領域には平文による氏名のデータが書き込まれる。また、２番目のレコードにおけるＶａｌｕｅ領域には原暗号文による住所のデータが書き込まれる。また、３番目のレコードにおけるＶａｌｕｅ領域には平文によるカード番号のデータが書き込まれる。また、４番目のレコードにおけるＶａｌｕｅ領域には再暗号文による電話番号のデータが書き込まれる。
【０１０５】
これまでの説明から理解されるように、ＴＬＶ構造を有するファイルにおいても、図７、図９の場合と同様に、レコードごとに暗号状態情報が対応付けられ、レコードにおいては、対応の暗号状態情報が示す暗号状態のデータが格納される。そして、このための処理としては、図１０に示した手順に従って行うことができる。
従って、第２実施形態においても、ＩＣカード発行装置１００は、データ書込コマンドを順次送信するにあたって、書込データについての暗号化処理の有効化と無効化を切り替えることなく、書込データについては全て暗号化処理を行えばよい。これにより、ＩＣカード発行装置１００の処理負荷が軽減される。
【０１０６】
また、ＴＬＶ構造の場合においても、機密性を要するデータを格納するレコードと機密性を要さないデータを格納するレコードとを１つのファイルに格納できる。これにより、機密性を要するデータを格納するＴＬＶ構造のファイルと、機密性を要さないデータを格納するＴＬＶ構造のファイルとを作成する場合と比較して、データサイズを抑えることが可能になり、記憶媒体２０３の容量を効率的に使用することが可能になる。
【０１０７】
＜第３実施形態＞
続いて、第３実施形態について説明する。先の第１実施形態と第２実施形態において、ファイル構造における第１オブジェクトはＥＦとしてのファイルであり、第１オブジェクトの階層下における第２オブジェクトはレコードであった。
これに対して、第３実施形態は、ファイル構造におけるＤＦが第１オブジェクトとなり、第１オブジェクトとしてのＤＦの階層下に置かれるファイルが第２オブジェクトとなる。
【０１０８】
図１３は、第３実施形態におけるＩＣカード２００の記憶媒体２０３のユーザデータ領域ＡＲ３に書き込まれたファイルによるファイル構造例を示している。
同図に示すファイル構造においては、ＭＦ（Master File）の直下に、ＥＦ１、ＤＦ１、ＤＦ２、ＥＦ２が置かれている。
【０１０９】
ＤＦ１の直下にはＥＦ１１、ＥＦ１２、ＥＦ１３が置かれている。ここで、ＥＦ１１は、ＩＣカード発行装置１００から書込データとして受信したときのままの原暗号文の状態であり、ファイル内の所定の位置には原暗号文の状態であることを示す０１ｈの暗号状態情報が書き込まれている。なお、一例として、本実施形態における暗号状態情報は、ファイルヘッダにおける所定位置において、レコードと対応付けられた状態で書き込まれればよい。あるいは、ファイルシステムにより管理されるディレクトリエントリなどにおいてレコードと対応付けられた状態で書き込まれてもよい。
【０１１０】
また、ＥＦ１２は、平文の状態であり、ファイル内の所定の位置には平文の状態であることを示す００ｈの暗号状態情報が書き込まれている。
また、ＥＦ１３は、再暗号文の状態であり、ファイル内の所定の位置には再暗号文の状態であることを示す０２ｈの暗号状態情報が書き込まれている。
【０１１１】
また、ＤＦ２の直下にはＥＦ２１、ＥＦ２２が置かれている。ＥＦ２１は、平文の状態であり、ファイル内の所定の位置には平文の状態であることを示す００ｈの暗号状態情報が書き込まれている。
ＥＦ２２は、ＩＣカード発行装置１００から書込データとして受信したときのままの原暗号文の状態であり、ファイル内の所定の位置には原暗号文の状態であることを示す０１ｈの暗号状態情報が書き込まれている。
【０１１２】
このように、第３実施形態においては、ＤＦの階層下のＥＦについて、アクセス権に応じた平文、原暗号文、再暗号文の状態のいずれかにより記憶媒体２０３に書き込みが行われる。
この場合、ＩＣカード発行装置１００は、先ず、ファイル生成にあたって、ファイル生成コマンドにファイルの暗号状態を示す暗号状態情報を含めて送信する。ＩＣカード２００は、ファイル生成コマンドの受信に応じてファイル格納領域を作成するにあたり、ファイル格納領域における所定位置に、受信されたファイル生成コマンドに含まれていた暗号状態情報を書き込む。
ＩＣカード発行装置１００は、例えばユーザデータ領域ＡＲ３において作成すべきファイル格納領域ごとに応じて、順次、ファイル生成コマンドを送信する。このようにファイル生成コマンドが送信されることで、ＩＣカード２００の記憶媒体２０３に書き込まれるべき全てのファイルのファイル格納領域が作成された状態となる。そして、各ファイル格納領域の所定位置には暗号状態情報が書き込まれている。
【０１１３】
そのうえで、ＩＣカード発行装置１００は、ファイルのデータの書き込みを指示するファイル書込コマンドを順次送信する。この際、ＩＣカード発行装置１００は、ファイル書込コマンドに格納する書込データについては全て暗号化を行う。
一方、ＩＣカード２００は、受信されたファイル書込コマンドに含まれる書込データについて、書き込むべきファイル格納領域に対応して記憶媒体２０３に書き込まれた暗号状態情報が示す暗号状態で書き込まれるように制御を行う。
即ち、ＩＣカード２００は、暗号状態情報が示す暗号状態が平文の状態であることを示していれば、書込データを復号して平文とし、平文の書込データをファイル格納領域に書き込む。
また、ＩＣカード２００は、暗号状態情報が示す暗号状態が原暗号文の状態であることを示していれば、書込データを復号することなく原暗号文のままファイル格納領域に書き込みを行う。
また、ＩＣカード２００は、暗号状態情報が示す暗号状態が再暗号文の状態であることを示していれば、原暗号文である書込データを復号し、さらに原暗号文の暗号化のときとは異なる鍵を使用して暗号化して再暗号文とする。ＩＣカード２００は、再暗号文の書込データをファイル格納領域に書き込む。
【０１１４】
このようにデータ書き込みが行われることによっても。ＩＣカード２００は、ファイルごとに書込データの暗号処理の有効化と無効化を切り替える必要がないことから、ＩＣカード発行装置１００の処理負荷が軽減される。
【０１１５】
なお、上述のＩＣカード発行装置１００やＩＣカード２００の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述のＩＣカード発行装置１００やＩＣカード２００としての処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやＷＡＮ、ＬＡＮ、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、ＣＤ−ＲＯＭ等の非一過性の記録媒体であってもよい。また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部または外部に設けられた記録媒体も含まれる。配信サーバの記録媒体に記憶されるプログラムのコードは、端末装置で実行可能な形式のプログラムのコードと異なるものでもよい。すなわち、配信サーバからダウンロードされて端末装置で実行可能な形でインストールができるものであれば、配信サーバで記憶される形式は問わない。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に端末装置で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１１６】
１００  カード発行装置、１０１  通信部、１０２  制御部、１２１  暗号状態情報送信部、１２２  書込データ送信部、２００  ＩＣカード、２０１  通信部、２０２  制御部、２０３  記憶媒体、２２１  暗号状態情報処理部、２２２  データ書込部
【図１】
2015222485.tif 000003
【図２】
2015222485.tif 000004
【図３】
2015222485.tif 000005
【図４】
2015222485.tif 000006
【図５】
2015222485.tif 000007
【図６】
2015222485.tif 000008
【図７】
2015222485.tif 000009
【図８】
2015222485.tif 000010
【図９】
2015222485.tif 000011
【図１０】
2015222485.tif 000012
【図１１】
2015222485.tif 000013
【図１２】
2015222485.tif 000014
【図１３】
2015222485.tif 000015