(57)【特許請求の範囲】
【請求項１】
スマートカードの不揮発性メモリにデータを書き込む方法であって、
/a/  前記スマートカードの揮発性メモリのバッファにおいて書込みコマンドを受け取るステップと、
/b/  前記スマートカードによって、前記書込みコマンドに関連したオブジェクト識別パラメータを前記スマートカードの前記不揮発性メモリに記憶されたオブジェクト識別パラメータと比較するステップであって、前記スマートカードの前記不揮発性メモリに記憶された前記オブジェクト識別パラメータは、前記スマートカードが書き込みを指示された最後のオブジェクトを識別する、ステップと、
/c/  前記比較結果が、前記書込みコマンドに関連した前記オブジェクト識別パラメータと前記スマートカードの前記不揮発性メモリに記憶された前記オブジェクト識別パラメータとが同一である、ことを示す場合、
/c1/  前記書込みコマンドに組み込まれている前記書き込むべきデータを、前記バッファから、前記書込みコマンドに関連したオブジェクトに、前記不揮発性メモリにその値が記憶されている事前定義されたアドレスにおいて書き込み、
/c2/  前記記憶されている事前定義されたアドレスと前記書き込まれたデータのサイズの合計に相当するアドレスを計算し、
/c3/  前記計算したアドレスを、前記事前定義されたアドレスの代わりに前記不揮発性メモリに記憶するステップと、
/d/  前記比較結果が、前記書込みコマンドに関連した前記オブジェクト識別パラメータと前記スマートカードの前記不揮発性メモリに記憶された前記オブジェクト識別パラメータとが異なる、ことを示す場合、
/d1/  前記書込みコマンドに組み込まれている前記書き込むべきデータを、前記バッファから、前記書込みコマンドに関連した前記オブジェクトに、前記オブジェクトに関連付けられたデフォルトアドレスにおいて書き込み、
/d2/  前記デフォルトアドレスと前記書き込まれたデータのサイズの合計に相当するアドレスを計算し、
/d3/  前記計算したアドレスを、前記事前定義されたアドレスとして前記不揮発性メモリに記憶するステップと
を含む方法。
【請求項２】
前記書込みコマンドに関連した前記オブジェクト識別パラメータが前記書込みコマンドに組み込まれている請求項1に記載の方法。
【請求項３】
前記書込みコマンドに関連した前記オブジェクト識別パラメータが、前記揮発性メモリに記憶され、前記スマートカードのオブジェクト選択コマンドによって更新される請求項1に記載の方法。
【請求項４】
前記デフォルトアドレスがゼロアドレスである請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記コマンドが、ISO 7816-4規格によるAPDUコマンドとして符号化される請求項1から4のいずれか一項に記載の方法。
【請求項６】
電子デバイスとスマートカードとを含むシステムによって、前記スマートカードの不揮発性メモリにデータを書き込む方法であって、
/a/  前記デバイスによって、前記書き込むべきデータを、各サブセットのサイズが最大でも事前定義された値と等しくなるようにサブセットに分割するステップと、
/b/  前記カードの同一のオブジェクトに関連した1組の書込みコマンドを構築するステップであって、それぞれの書込みコマンドが、前記書き込むべきデータのそれぞれのサブセットを含む、構築するステップと、
/c/  前記デバイスによって、それぞれの書込みコマンドを前記スマートカードへ送るステップと、
/d/  請求項1から5のいずれか一項に記載の方法に従って、受け取られたそれぞれのコマンドを処理するステップとを含む、方法。
【請求項７】
スマートカードのプロセッサによって実行されたとき、請求項1から5のいずれか一項に記載の方法を実施する一連の命令を含むコンピュータプログラム。
【請求項８】
請求項7に記載のコンピュータプログラムを記憶する不揮発性のコンピュータ可読記憶媒体。
【請求項９】
不揮発性メモリ(EEPROM)と、揮発性メモリ(RAM)と、前記揮発性メモリ内のバッファ(BUF)と、不揮発性メモリにおける書込みコマンドを処理するための回路(PROC, ROM)とを備えるスマートカード(SC)であって、前記回路(PROC, ROM)が、前記バッファ(BUF)に記憶されており、コマンドが書き込む前記不揮発性メモリ(EEPROM)に記憶されているオブジェクトを識別する識別パラメータに関連付けられている前記コマンドを処理するように構成されており、前記回路(PROC, ROM)が、前記不揮発性メモリ(EEPROM)に記憶されているオブジェクト(EF)の識別パラメータ(FID)と、前記オブジェクト(EF)内の事前定義されたアドレス(ADDR)とを、前記不揮発性メモリ(EEPROM)に記憶するように構成されており、前記回路(PROC, ROM)が、書込みコマンドを処理するとき、前記書込みコマンドに関連したオブジェクト識別パラメータを、前記不揮発性メモリ(EEPROM)に記憶された前記オブジェクト(EF)識別パラメータ(FID)と比較し、前記不揮発性メモリ(EEPROM)に記憶された前記オブジェクト(EF)識別パラメータ(FID)は、前記スマートカード(SC)が書き込みを指示された最後のオブジェクトを識別し、前記比較結果が、前記書込みコマンドに関連した前記オブジェクト識別パラメータと前記スマートカードの前記不揮発性メモリに記憶された前記オブジェクト識別パラメータとが同一である、ことをを示す場合、前記書込みコマンドに組み込まれている前記書き込むべきデータを、前記バッファ(BUF)から、前記書込みコマンドに関連した前記オブジェクトに、前記不揮発性メモリ(EEPROM)に記憶されている前記事前定義されたアドレス(ADDR)において書き込み、前記記憶されている事前定義されたアドレス(ADDR)と前記書き込まれたデータのサイズの合計に相当するアドレスを計算し、前記事前定義されたアドレス(ADDR)の代わりに、前記計算されたアドレスを前記不揮発性メモリ(EEPROM)に記憶するように構成されており、前記回路(PROC, ROM)が、前記比較結果が、前記書込みコマンドに関連した前記オブジェクト識別パラメータと前記スマートカードの前記不揮発性メモリに記憶された前記オブジェクト識別パラメータとが異なる、ことを示す場合、前記書込みコマンドに組み込まれている前記書き込むべきデータを、前記バッファ(BUF)から、前記書込みコマンドに関連した前記オブジェクトに、デフォルトアドレスにおいて書き込み、前記デフォルトアドレスと前記書き込まれたデータのサイズの合計に相当するアドレスを計算して、前記計算されたアドレスを、前記事前定義されたアドレスとして前記不揮発性メモリ(EEPROM)に記憶するように構成されている、スマートカード(SC)。
【請求項１０】
電子デバイス(PC, RDR)および請求項9に記載のスマートカード(SC)を備えるシステムであって、前記電子デバイス(PC, RDR)が、前記デバイス(PC, RDR)によって前記スマートカード(SC)に書き込むべき前記データを、各サブセットのサイズが最大でも事前定義された値と等しくなるようにサブセットに分割することと、前記カード(SC)の同一のオブジェクトに関連した1組の書込みコマンドを構築することであって、それぞれの書込みコマンドが、前記書き込むべきデータのそれぞれのサブセットを含む、構築することと、このようにして構築されたそれぞれの書込みコマンドを前記カード(SC)に送ることとを行うように構成されている、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スマートカードの不揮発性メモリにおけるデータの書込みに関する。
【背景技術】
【０００２】
スマートカードは、典型的には、不揮発性メモリと揮発性メモリとの両方を含む。
【０００３】
「不揮発性」メモリは、外部電力を必要とせずにデータを記憶することができるメモリである。非揮発性メモリには、プログラム可能なもの(たとえばEEPROMメモリ、フラッシュメモリなど)またはプログラム不可能なもの(一例にはROMメモリがあり、その内容は製造段階で一度限りすべて定義される)がある。プログラム可能な不揮発性メモリは、たとえば様々なディレクトリおよびサブディレクトリを含んでいるファイルシステム、登録会員に特有のデータ(名称、連絡先など)を有するファイル、Java(登録商標)Cardアプレットなどといった、カードごとに異なり得るデータまたはアプリケーションを記憶するためにしばしば使用される。スマートカードは、典型的に、プログラム可能な不揮発性メモリ(通常EEPROM)の約8KB〜256KBの容量を有する。プログラム不可能な不揮発性メモリは、オペレーティングシステムと、(より一般的には)カードごとに異なる可能性が低いデータとを記憶するためにしばしば使用される。スマートカードは、典型的に、ROMの約64KB〜512KBの容量を有する。もちろん、他の容量の(other amounts of) RAM、EEPROMまたはROMも存在する。いくつかのスマートカードは、ROMとEEPROMとの代わりにフラッシュメモリを使用する。
【０００４】
(RAMメモリなどの)「揮発性」メモリは、外部電源の供給が遮断されたとき、その内容が失われるメモリである。揮発性メモリは、典型的に、不揮発性メモリよりも、特に書込み操作に関してはるかに高速である。たとえば、EEPROMまたはフラッシュメモリへの書込みは、一般にRAMへの書込みよりもはるかに遅い。揮発性メモリは、たとえばソフトウェアの実行中に一時データ(状態変数、計算結果など)を記憶するのに使用される。スマートカードは典型的に、通常2KB〜8KBの間である、RAMメモリを含む。このRAMの多くは、一般に、変数(特にカードのオペレーティングシステム)および様々なアプリケーションによって占有される。RAMの一部分は、一般にバッファによって占有され、このバッファは典型的に、数百バイトのサイズであり、コマンド受取り専用である。
【０００５】
スマートカードは、一般に、そのメモリのいかなるものにも、外部のエンティティが絶対アドレス指定で書き込むことを許さない。その代わりに、スマートカードは、一般に(ISO 7816-4インターフェースなどの)インターフェースを提供し、外部のエンティティは、このインターフェースを介して、カードに(読取りコマンドまたは書込みコマンドを含む)コマンドを送ることができる。コマンドはバッファで受け取られる。受け取ったコマンドを実行する役割を担うのはカード自体であり、カードは、コマンドを処理するかまたは拒否するかを選択すること、特定のアクセスを禁止すること、いくつかのアクセスに対して認証を求めることなどができる。最も一般的なプロトコルであるISO 7816-4規格のT=0プロトコルによれば、コマンドは、5バイト(クラスバイト、命令バイト、ならびにパラメータP1、P2およびP3の3つのバイト)を含み、任意選択で、これにデータ(たとえばカードに書き込まれるべきデータ)が続く。任意のそのようなデータの長さは、通常はバイトP3によって指定され、したがって、一度に送られるのはわずか255バイト(これに前の5バイトが加わる)である。しかしながら、これは、少なくとも260バイトのバッファを必要とする。他の変形形態および他のプロトコル(1つのコマンドで、理論上64KBまでのデータを送受することができるT=1プロトコルなど)も存在する。
【０００６】
比較的小サイズのバッファおよびT=0プロトコルの制限を想定すると、一般に、非常に長いコマンドをカードに送ることは不可能である。カード(T=0)上のファイルに255バイト超を書き込む場合、データは、通常、より小さいサブセット(たとえば255バイトのブロック)に分割され、ブロックと同数の書込みコマンドが送られる。
【０００７】
たとえば、UPDATE BINARYコマンド(ISO 7816-4規格の命令0xD6)が用いられ得、これによって、いわゆる「透過的な」ファイルに書き込むことが可能になる。これは、タイプEFのファイル(基本ファイル)であり、(ファイルの開始の0x0000と、ファイルの最終バイトを変更する場合のファイルサイズから少なくとも1バイトを減じたものに相当するアドレスとの間で)対象を指定することにより、書き込むことができる。しかしながら、これには、送信エンティティが、データサブセット(255バイトのブロック)ばかりか、ターゲットファイルの各ブロックを書き込むべきアドレスも計算する必要があり、実用的でない。
【０００８】
UPDATE RECORDコマンド(ISO 7816-4規格の命令0xDC)を用いることも知られており、これによって、インデックスで識別される各レコードを有する、レコードのEFファイルを生成することができる。各レコードは、(カード次第で)様々なサイズを有することができる。しかしながら、これには、レコードのインデックスを計算する必要があり、実用的でない。加えて、あるサイズのブロック(たとえば11バイトのブロック)を書き込んで、別のサイズのブロック(たとえば13バイトのブロック)を読み取る必要がときどきある。この場合、読み取るべきデータが複数のレコードおよびレコード部分にまたがるので、レコードのファイル構造が極めて非実用的である。
【０００９】
PUT DATAコマンド(ISO 7816-4規格の命令0xDA)を用いることも知られている。この規格は、(PUT DATAコマンドによって書き込まれることになる)選択されたオブジェクトに依拠して、「1回書き込む」操作または「更新する」操作または「追加する」操作を実行することが可能であることを規定している。しかしながら、この規格では、「追加する」操作の手続きが規定されていない。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、この状況を改善することを目的とするものである。
【課題を解決するための手段】
【００１１】
本発明の一態様は、スマートカードの不揮発性メモリにデータを書き込む方法に関するものであり、この方法は、
/a/  スマートカードの揮発性メモリのバッファにおいて書込みコマンドを受け取るステップと、
/b/  スマートカードによって、書込みコマンドに関連したオブジェクト識別パラメータを、スマートカードの不揮発性メモリに記憶されたオブジェクト識別パラメータと比較するステップと、
/c/  比較結果(the comparison)が正であれば、
/c1/  書込みコマンドに組み込まれている書き込むべきデータを、バッファから、書込みコマンドに関連したオブジェクトに、不揮発性メモリにその値が記憶されている事前定義されたアドレスにおいて書き込むステップと、
/c2/  記憶された事前定義されたアドレスと書き込まれたデータのサイズの合計に相当するアドレスを計算するステップと、
/c3/  計算されたアドレスを、事前定義されたアドレスの代わりに不揮発性メモリに記憶するステップと、
/d/  比較結果が負であれば、
/d1/  書込みコマンドに組み込まれている書き込むべきデータを、バッファから、書込みコマンドに関連したオブジェクトのデフォルトアドレスに書き込むステップと、
/d2/  デフォルトアドレスと書き込まれたデータのサイズの合計に相当するアドレスを計算するステップと、
/d3/  計算されたアドレスを、事前定義されたアドレスとして不揮発性メモリに記憶するステップと
を含む。
【００１２】
この方法は、スマートカードにおいて、大量のデータを書き込む単純なやり方を提供するという点で有利である。この方法により、エンティティがアドレスまたはインデックスを計算するためのデータを送る必要がなく、カードに、バッファのサイズより長いデータ、ならびにT=0のプロトコルによって課される255バイトの制限を超過するデータを書き込むことが可能になる。これは、カード自体が生体データを認証することを可能にする「カード上の一致」技法などの生体測定の技法を利用するカードにおいて特に有益である。実際、生体データ(たとえば指紋または顔認識データ)は、数キロバイトまでといった、非常に大きいものであり得る。
【００１３】
本発明の一態様は、スマートカードのプロセッサによって実行されたとき、本発明の一態様による方法を実施する一連の命令を含むコンピュータプログラムに関する。
【００１４】
本発明の一態様は、本発明の一態様によるコンピュータプログラムを記憶する不揮発性のコンピュータ可読記憶媒体に関する。
【００１５】
本発明の一態様は、不揮発性メモリと、揮発性メモリと、揮発性メモリに含まれているバッファと、不揮発性メモリに書き込むための書込みコマンドを処理する回路とを備えるスマートカードに関するものであり、この回路は、バッファに記憶されており、コマンドが書き込む不揮発性メモリに記憶されているオブジェクトを識別するパラメータに関連付けられているコマンドを処理するように構成され、前記回路は、不揮発性メモリに記憶されているオブジェクトを識別するパラメータと、このオブジェクトの内部の事前定義されたアドレスとを不揮発性メモリに記憶するように構成されており、この回路は、書込みコマンドを処理するとき、書込みコマンドに関連したオブジェクト識別パラメータを、不揮発性メモリに記憶されたオブジェクト識別パラメータと比較して、比較結果が正であれば、書込みコマンドに組み込まれている書き込むべきデータを、バッファから、書込みコマンドに関連したオブジェクトに、不揮発性メモリに記憶されている事前定義されたアドレスにおいて書き込み、記憶されている事前定義されたアドレスと書き込まれたデータのサイズの合計に相当するアドレスを計算し、事前定義されたアドレスの代わりに、計算されたアドレスを不揮発性メモリに記憶するように構成されており、この回路は、比較結果が負であれば、書込みコマンドに組み込まれている書き込むべきデータを、バッファから、書込みコマンドに関連したオブジェクトに、デフォルトアドレスにおいて書き込み、デフォルトアドレスと書き込まれたデータのサイズの合計に相当するアドレスを計算し、計算されたアドレスを、事前定義されたアドレスとして不揮発性メモリに記憶するように構成されている。
【００１６】
本発明の一態様は、電子デバイスおよび本発明の一態様によるスマートカードを備えるシステムに関するものであり、電子デバイスは、スマートカードに書き込むべきデータを、各サブセットのサイズが最大でも所定の値と等しくなるようにサブセットに分割することと、カードの同一のオブジェクトに関連した1組の書込みコマンドを構築することであって、それぞれの書込みコマンドが、書き込むべきデータのそれぞれのサブセットを含む、構築することと、このようにして構築されたそれぞれの書込みコマンドをカードに送ることとを行うように構成されている。
【００１７】
本発明の他の特徴、目的、および利点が、その実施形態のうちのいくつかの説明から、限定的でないやり方で明らかになるであろう。
【００１８】
本発明は、図面を参照することによっても、よりよく理解されるであろう。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態による方法の、連続した6回の実行を示す図である。
【図２】本発明の一実施形態による、携帯用コンピュータと、同コンピュータに接続されたスマートカードリーダと、スマートカードとから成るシステムを示す図である。
【図３】本発明の一実施形態によるスマートカードのアーキテクチャを示す概略図である。
【発明を実施するための形態】
【００２０】
可能な実施形態の1つは、スマートカードの(EEPROMまたはフラッシュメモリなどの)不揮発性メモリにデータを書き込む方法に関する。この方法は、書込みコマンドを受け取るステップを含む。このコマンドは、たとえばISO 7816-4規格のPUT DATAコマンドとしてフォーマットされたコマンドでよいが、以下で明示されるやり方で機能的に変更されてもよい。従来のPUT DATAコマンドを用いることもできるように、(未使用の命令コードなどの)ISO 7816-4規格による命令コードINSに関して規定された値0xDAまたは0xDBとは異なる命令コードを、この書込みコマンドのために用いることが可能である。したがって、この受け取られる書込みコマンドは、コマンドのタイプ(ISO 7816-4規格によるコマンドの場合、その命令コードINS)および書き込まれるべきデータなどの様々なパラメータを含んでいるヘッダを含んでよい。このコマンドは、カードの外部のエンティティ(銀行端末、携帯電話、またはコンピュータに接続されたスマートカード読取り装置など)から、スマートカードの揮発性メモリ(RAMなど)のバッファに受け取られる。具体的には、このコマンドは、スマートカードの入出力インターフェースを介して(たとえば、ISO 7816-3規格によって特定された入出力接続を用いて)受け取られてよい。
【００２１】
この方法は、スマートカードによる、書込みコマンドに関連したオブジェクト識別パラメータと、スマートカードの不揮発性メモリに記憶されたオブジェクト識別パラメータとの比較を含む。したがって、このコマンドは、EFファイルなどのカードの特定のオブジェクトに関連付けられ得る。この関連付けには、コマンドによって、コマンドが関連付けられているオブジェクトに、コマンドが含むデータが書き込まれるという効果がある。不揮発性メモリに記憶されたオブジェクト識別パラメータは、本発明の一実施形態による別の(書込み)コマンドによって書き込むようにスマートカードが指示された最後のオブジェクトを識別することができる。この他のコマンドは同一のタイプのコマンドであり、たとえば同一の命令コードを有し、ISO 7816-4規格によって定義されているものと同一のINSバイトを意味しており、異なるのは、たとえばそのパラメータ(たとえばT=0プロトコルで定義されているようなパラメータP1、P2およびP3)、およびそのデータ(T=0プロトコルの場合にはコマンドの5番目のバイトに続くバイト)のみである。カードが初期化されるとき(たとえば初めて使用されるとき(during its first use)、または電源に接続される場合は常に)、あらゆる可能なオブジェクトに対応しないデフォルト値(たとえば値ゼロ、またはこの目的のために任意に従来のやり方で選択された他の値)を、不揮発性メモリに記憶されたオブジェクト識別パラメータとして保存することが可能である。したがって、このデフォルト値と、書込みコマンドに関連したオブジェクト識別パラメータとの間の比較は、必然的に負になる。
【００２２】
比較結果が正であれば、書込みコマンドが、同一のタイプの最後の書込みコマンドによって書き込まれたものと同一のオブジェクトに書き込もうとすることを意味しており、この方法は以下のステップを実施してよい。
【００２３】
第1のステップは、(書込みコマンドに含まれている)書き込むべきデータを、バッファから(データは書込みコマンドの一部分であって書込みコマンドを受け取った後にバッファに記憶される) 、書込みコマンドに関連したオブジェクトへ、不揮発性メモリにその値が記憶されている事前定義されたアドレスに書き込むステップを含む。したがって、カードは、不揮発性メモリから事前定義されたアドレスの値を読み取り、次いで、事前定義されたアドレスのオブジェクトに書き込むことができる。この事前定義されたアドレスは、好ましくはオブジェクト内の相対アドレスである。したがって、カードは、オブジェクトのアドレス(絶対アドレスとして表現される)と事前定義されたアドレスの合計に等しい絶対アドレスに書き込むことができる。もちろん、カードは、(たとえば事前定義されたアドレスと書き込むべきデータのサイズとの合計に等しいアドレスから1を減じたものが実際にオブジェクト内にあるのをチェックすることによって)書込み操作が当該オブジェクト内で行われることを確認するための安全メカニズムを実施してよい。
【００２４】
第2のステップは、記憶された事前定義されたアドレスと書き込まれたデータのサイズの合計に相当するアドレスを計算するステップを含む。このアドレスは、書き込まれた最終バイトの直後のアドレスに相当する。
【００２５】
第3のステップは、計算されたアドレスを、事前定義されたアドレスの代わりに不揮発性メモリに記憶するステップを含む。このようにして、同一のタイプの書込みコマンドの次の呼出しは、同一のタイプのこのコマンドが同一のオブジェクトに関連付けられているならば、この書込みコマンドを構築し送る役割を担うエンティティ(たとえば携帯電話)が以前のアドレスを記憶したり新規のアドレスを計算したりする必要性なしに、たった今書き込まれたものの直後に書き込むことになる。
【００２６】
比較結果が負であれば、書込みコマンドが、呼び出された同一のタイプの最後の書込みコマンドによって書き込まれたものと異なるオブジェクトに書き込もうとしていることを意味しており、または、このタイプの書込みコマンドが初めて呼び出される場合には、方法は以下のステップを実行することができる。
【００２７】
第1のステップは、書込みコマンドに組み込まれている書き込むべきデータを、バッファから、書込みコマンドに関連したオブジェクトに、デフォルトアドレスにおいて書き込むステップを含む。デフォルトアドレスは、オブジェクト内の相対アドレスであることが有利である。次いで、カードは、オブジェクトのアドレス(絶対アドレスとして表現される)とデフォルトアドレスの合計に等しい絶対アドレスに書き込むことができる。もちろん、カードは、(たとえばデフォルトアドレスと書き込むべきデータのサイズとの合計に等しいアドレスから1を減じたものが実際にオブジェクト内にあるのをチェックすることによって)書込み操作が当該オブジェクト内で行われることを確認するための安全メカニズムを実施してよい。
【００２８】
第2のステップは、デフォルトアドレスと書き込まれたデータのサイズの合計に相当するアドレスを計算するステップを含む。このアドレスは、書き込まれた最終バイトの直後のアドレスに相当する。
【００２９】
第3のステップは、計算されたアドレスを、事前定義されたアドレスとして不揮発性メモリに記憶するステップを含む。このようにして、同一のタイプの書込みコマンドの次の呼出しは、この同一のタイプのコマンドが同一のオブジェクトに関連付けられているならば、この書込みコマンドを構築して送る役割を担うエンティティ(たとえば携帯電話)が以前のアドレスを記憶したり新規のアドレスを計算したりする必要性なしに、たった今書き込まれたものの直後に書き込むことになる。
【００３０】
可能な実施形態の1つは、書込みコマンドに関連したオブジェクト識別パラメータが書込みコマンドに組み込まれている方法に関する。このように、オブジェクト(たとえばISO 7816-4規格で定義されているような基本ファイルEF)の識別子(ISO 7816-4規格で定義されているようなFIDと略されたファイルID)を記憶するために、たとえばパラメータP1およびP2を用いることができる。たとえば、コマンドが、ISO 7816-4規格で定義されているようなUPDATE BINARYコマンドに基づくものである場合、書き込まれるオブジェクトの内部アドレスを表すと想定されるパラメータP1およびP2は、もはや不要であり、書き込まれるオブジェクトを識別するファイルIDで置換され得る。
【００３１】
可能な実施形態の1つは、書込みコマンドに関連したオブジェクト識別パラメータが、揮発性メモリに記憶され、スマートカードのオブジェクト選択コマンドによって更新される方法に関する。たとえば、EFを選択するのに、ISO 7816-4規格で定義されているようなSELECTコマンド(これは、命令コードINSに値0xA4を用いる)を用いることが可能であり、後続の書込みコマンドは、書き込まれるオブジェクトを明確に示す必要はなく、EFに自動的に書き込むことになる。
【００３２】
可能な実施形態の1つは、デフォルトアドレスがゼロアドレスである方法に関する。したがって、呼び出された同一のタイプの最後の書込みコマンドが(存在する場合)別のオブジェクトに書き込んだとき、本発明の一実施形態による書込みコマンドが、あるオブジェクトに書き込むたびに、また、このタイプの書込みコマンドが初めて(たとえば特定のセッションにおいて初めて、またはカードを電源に接続した後に初めて、またはカードが製造されてから正に初めて)呼び出されるたびに、この方法はゼロアドレスに書き込む。これは、明らかに当のオブジェクトに対するゼロアドレスであり、オブジェクトの先頭に相当する。
【００３３】
あるいは、ゼロとは異なるデフォルトアドレスを用いることができる。たとえば、本発明の一実施形態による書込みコマンドによって書き込まれるオブジェクトが、特定のアドレスにしか書き込むことができない構造であって、オブジェクト(たとえばカード自体によって管理される管理データを含んでいるもの)の先頭でなければ、このオブジェクトの内部の有効なアドレスをデフォルト値として用いることができる。
【００３４】
このデフォルト値がすべてのオブジェクトに対して共通であって、この方法がソフトウェアによって実施されるとき、このデフォルト値は実際のコード(たとえばROMに記憶され得るコード)で記憶され得る。
【００３５】
デフォルトアドレスは、オブジェクトタイプの間で変化する(たとえば、カードが、各オブジェクトタイプに対して別々のデフォルトアドレスを記憶する)可能性がある。この場合、たとえばROMの中の表に別々のデフォルト値が記憶されてよい。デフォルト値が変更可能であるか、またはカード開発業者が用いられるオブジェクトタイプを予想することができない場合、デフォルト値はEEPROMまたはフラッシュメモリの中の表に記憶されてよい。オブジェクトタイプは、たとえば、指紋を記憶する透過的なEFファイル、顔認識データを記憶する透過的なEFファイル、日付を記憶する透過的なEFファイル、ロケーションを記憶する透過的なEFファイル、地理的アドレス(番地、ストリート名、市、国など)を記憶する透過的なEFファイルなどでよい。オブジェクトタイプは、(可能性はあるが)必ずしも(ISO 7816-4の「透過的なEF」ファイルタイプなどの)ファイルタイプに相当するものではなく、これらのファイルのコンテンツに相当するより低レベルの下位区分に相当してもよく、この下位区分は、スマートカードのオペレーティングシステムの定義の一部分ではなく、スマートカードを使用するエンティティの定義の一部分であることが理解され得る。この場合、一般に、EEPROMまたはフラッシュメモリの中の表がより適切である。
【００３６】
デフォルト値をそれぞれの特定のオブジェクトに関連付けることも可能である(すなわち、それぞれのオブジェクトのインスタンスに関して、同一のタイプの2つの異なるオブジェクトが2つの異なるデフォルト値に関連付けられ得ることを意味する)。したがって、指紋を含んでいる2つの透過的なEFファイルは、異なるデフォルト値に関連付けられ得る。このデフォルト値は、オブジェクトが生成されたときにはゼロ(または前節で説明されたように、オブジェクトのタイプに依拠する別の値)であり得、次いで更新され得る。このデフォルト値は、書き換え可能な不揮発性メモリ(たとえばEEPROMまたはフラッシュメモリ)のオブジェクト内に、またはオブジェクトとともに記憶されてよい。可能な実施形態の1つでは、スマートカードは、オブジェクトの数とは無関係にただ1つの事前定義された値を記憶する。この事前定義された値は、本発明の一実施形態による書込みコマンドが新規のオブジェクト(実行された同一のタイプの最後のコマンドによって書き込まれたオブジェクトではないオブジェクト、または最初のオブジェクトを意味する)に書き込むごとに再初期化される。この場合、所与のオブジェクト向けに記憶されたデフォルト値の更新は、このオブジェクトに関連した事前定義された値を、デフォルトとして用いるためにコピーすることによって達成される。したがって、外部エンティティが、同一のタイプの書込みコマンドを用いて第1のオブジェクトに書き込み、次いで第2のオブジェクトに書き込み、次いで再び第1のオブジェクトに書き込む場合、外部エンティティは、第1のオブジェクトに対して、最初に書き込んだ値に上書きすることなく、もともと書き込んだ値の後に書き込む。スマートカードがデフォルト値の自動更新を実施する場合、カード内に、デフォルト値を再初期化するコマンドを用意することが有利であり、このコマンドは、たとえばオブジェクトが生成されたとき割り当てられた値を割り当てるものでよい。したがって、本発明の一実施形態による書込みコマンドを用いて以前にオブジェクトに書き込まれたデータを、本発明の一実施形態による書込みコマンドで置換することができる。
【００３７】
可能な実施形態の1つは、コマンドがISO 7816-4規格によるAPDUコマンドとして符号化される方法に関する。書込みコマンドはAPDUコマンドでよく、選択コマンドもAPDUコマンド(ISO 7816-4規格によるSELECTコマンドであり得る)でよい。デフォルト値を再初期化するためのコマンドは、1つあるとすれば、これもAPDUコマンドでよい。
【００３８】
図1は、本発明の一実施形態による方法の繰り返し使用を示す。読取り装置RDRが、本発明の一実施形態によるスマートカードSCに第1の書込みコマンドWRITE(FID_1, DATA_1)を送る。スマートカードは、識別子FID_1を有するファイルに書き込むWRITE命令を初めて受け取る。したがって、スマートカードはファイルの先頭にデータDATA_1を書き込む。読取り装置は、スマートカードに第2の書込みコマンドWRITE(FID_1, DATA_2)を送る。次いで、カードはデータDATA_1の後にデータDATA_2を書き込む。読取り装置は、スマートカードに第3の書込みコマンドWRITE(FID_1, DATA_3)を送る。次いで、カードはデータDATA_2の後にデータDATA_3を書き込む。読取り装置は、スマートカードに第4の書込みコマンドWRITE(FID_2, DATA_4)を送る。カードは、直前に(just)書き込んだファイルとは別のファイルに書き込むコマンドを受け取ったことを検出する。したがって、カードは、識別子FID_2を有するファイルの先頭にデータDATA_4を書き込む。読取り装置は、スマートカードに第5の書込みコマンドWRITE(FID_2, DATA_5)を送る。次いで、カードは、識別子FID_2を有するファイルのデータDATA_4の後にデータDATA_5を書き込む。読取り装置は、スマートカードに第6の書込みコマンドWRITE(FID_1, DATA_6)を送る。カードは、直前に書き込んだファイルとは別のファイルに書き込むコマンドを受け取ったことを検出する。カードは、前記ファイルへの以前の書込みによって更新された識別子FID_1を有するファイルのデフォルトアドレスを調べ、したがって、データDATA_3の後にデータDATA_6を書き込む。
【００３９】
この操作は、デバイスにおいて複数のアプリケーションがマルチタスクで実行され、これらのアプリケーションがカードに書込みコマンドを送る可能性があるとき特に有利である。次いで、カードは、別々のファイルへの書込みを交互に行うことができ、デバイス上のアプリケーションは、ファイル構成の詳細に煩わされたり(worry about)書き込むためのアドレスを計算したりする必要がない。極端な事例の1つでは、必ずしも互いに通信することのない様々なアプリケーションが、イベントが生じたときに記録するログファイルなどのスマートカード上の同一のファイルに書き込むことが必要になることがある。どのアプリケーションも、それ自体では、新規のイベントを書き込むべきアドレスを決定することができないであろう。
【００４０】
別の実施形態(図示せず)では、スマートカードは2つの空のオブジェクト(O1およびO2)を含む。この方法は、たとえば、
Write (O1, D1)、
Write (O1, D2)、
Write (O1, D3)、
Write (O2, D4)、
Write (O2, D5)、
Write (O1, D6)、および
Write (O1, D7)、
といった生体データD1〜D7を書き込むための連続した書込みコマンドを受け取るステップを含む。
【００４１】
次いで、データD1、D2およびD3がオブジェクトO1において連結され、次いで、オブジェクトO2が依然として空であるため、データD4およびD5は、オブジェクトO2において連結され(データD1、D2およびD3は依然としてオブジェクトO1にあり)、最後にオブジェクトO1のデータD1、D2およびD3が失われ(上書きされ)、オブジェクトO1においてデータD1〜D3の代わりにデータD6およびD7が連結される。オブジェクトが変更されると直ちに(たとえばFIDが変化したとき)、書込みは、新しく選択されたオブジェクトの先頭において、古いデータを上書きする。データD1〜D3を連結したものがデータD6とD7を連結したものより長ければ、残差は、論理的観点からはオブジェクトO1にあると見なされることなく、スマートカードのメモリに(D7データの後に)物理的に残されていてもよい。たとえば、オブジェクトO1には、(この場合、データD6とD7を連結したサイズに相当する)現在のサイズを示すパラメータが含まれてよく、このサイズを過ぎて記憶されたいかなる情報も無視され得る。残りの残差を削除しないので、不揮発性メモリへの書込み操作の回数が減少し(削除は書込みの一形態である)、このことは、より高速の処理(より少ない書込み操作)のために、または(一定数の書込みサイクルしか保証していないメモリが、1つ1つの書込み操作によって劣化する)不揮発性メモリの寿命の延長のために、特に有利であり得る。
【００４２】
可能な実施形態の1つは、携帯電話、銀行端末などの電子デバイスによって、スマートカードの不揮発性メモリにデータを書き込む方法に関する。
【００４３】
この方法は、デバイスによって、書き込むべきデータをサブセットに分離するステップを含む。各サブセットのサイズは最大でも事前定義された値である。事前定義された値は、たとえば、一実施形態による書込みコマンドで送ることができる書き込むべきデータの最大量と定義することができ、書込みコマンドのサイズは、(コマンドを受け取る)スマートカードの揮発性メモリにおけるバッファのサイズと、コマンドの最大サイズとの間の最も小さい値に等しい(たとえば、T=0では、書込みコマンドはせいぜい260バイトであり、したがって送ることができるのは255バイトにすぎない)。
【００４４】
たとえば、生体認証パスポートを確認するための端末(スマートカードの特定の形式である)は、(たとえば空港の国境検査所で)パスポート保有者であると主張する人の指紋を取得して、255バイトの連続したセグメントへと分割することができる。バイトで表した指紋のサイズが255の倍数でなければ、セグメントのうち少なくとも1つ、たとえば最後のセグメントは、より小さいことがある。次いで、各セグメントが、上記のサブセットのうちの1つに相当する。
【００４５】
この方法は、スマートカードの同一のオブジェクトに関連した1組の書込みコマンドであって、それぞれが、書き込むべきデータのそれぞれのサブセットを含んでいる書込みコマンドを構築するステップを含む。
【００４６】
たとえば、コマンドは、先行のそれぞれのデータサブセットによって構築されてよく、たとえば、255バイトの各ブロックが、書込みコマンドのヘッダを有する指紋の一部分を示す。
【００４７】
ヘッダは、{CLA、INS、P1、P2、P3}の形をとることができ、値CLA、INS、P1、P2およびP3がそれぞれ1バイトであり、そのとき、もたらされるコマンドのサイズは260バイトである。P3は、書き込むべき255バイトのデータが5バイトのヘッダに続くことを示すために0xFFに等しくてよい。P1およびP2はゼロに等しくてよい。あるいは、P1||P2は、書込みコマンドがデータを書き込むことになるファイルの識別子を表してよい。INSバイトは、たとえば、ISO 7816-4規格によって特定されていない任意の値でよく、または関係するスマートカードによって用いられていない任意の特定の値でもよい。ISO 7816-4規格は、それが特定する命令のすべてを実施することを必要とするわけではない。この最後のオプション(以前にカードで用いられたことのない標準命令コードの再利用)は、ISO 7816-4規格を厳密には守らないカードをもたらす。この違反は、アプリケーション次第で、必ずしも問題ではない。クラスバイト(CLA)は任意の適切な値をとることができる。
【００４８】
この方法は、デバイスによってスマートカードにそれぞれの書込みコマンドを送るステップを含む。デバイスは、書き込むべきデータにおいてこれらのサブセットが(細分化の前に)占めていた順序でサブセットを含んでいるコマンドを送る。したがって、スマートカードの不揮発性メモリに書き込まれるデータは、書き込まれることが意図されたものと同一である。
【００４９】
最後に、この方法は、本発明の一実施形態による方法によって、受け取られた各コマンドをスマートカードによって処理するステップを含む。
【００５０】
別の実施形態によれば、デバイスは、スマートカードに書き込むべきデータを漸次受け取るかまたは取得して、(書込みコマンドを漸次構築することによって)データを、到達した通りにカードに送る。この場合、デバイスは、(T=0プロトコルの場合)一度に255バイト超を受け取るか、またはスマートカードのバッファのサイズ(260バイト未満の場合)を超えるデータを受け取るのでなければ、サブセットを生成する必要はない。
【００５１】
スマートカードのバッファが260バイト未満の場合、このバッファのサイズをユーザデバイスに送るのが有利である。このサイズは、たとえばISO 7816で特定されているATR(Answer To Reset)の空きバイトに出現する可能性がある。一般に、制約要因は、バッファのサイズ(一般に少なくとも255バイトである)ではなくT=0によって課された255バイトのサイズであり、その場合、したがってバッファサイズを送る必要はない。
【００５２】
可能な実施形態の1つは、スマートカードのプロセッサによって実行されたとき、本発明の一実施形態による方法を実施する一連の命令を含むコンピュータプログラムに関する。これらの命令は、たとえばアセンブリ言語の命令でよく、または、高水準言語(たとえばCまたはJava)でプログラム可能なプロセッサを有するスマートカードについては、この高水準言語でよい。
【００５３】
可能な実施形態の1つは、本発明の一実施形態によるコンピュータプログラムを記憶する不揮発性のコンピュータ可読記憶媒体に関する。記憶媒体は、たとえばスマートカードのROM、フラッシュメモリ、またはEEPROMでよい。
【００５４】
可能な実施形態の1つは、不揮発性メモリEEPROMと、揮発性メモリRAMと、揮発性メモリ内のバッファBUFと、不揮発性メモリにおける書込みコマンドを処理する回路PROC, ROMとを備えるスマートカードSCに関する。
【００５５】
この回路は、スマートカードプロセッサと、本発明の一実施形態による方法を実施する、プロセッサで実行可能なソフトウェアを含んでいるメモリ(たとえばROM)とを含んでよい。図3に表されたプロセッサPROCは、(DIPパッケージの)集積回路の形態である。しかしながら、スマートカードのプロセッサは、一般に、様々なメモリ(RAM、EEPROM、ROMなど)も備えるマイクロコントローラに統合されるので、これは概略図である。このマイクロコントローラは、典型的に、ウェーハから切り取られ、従来のやり方でモジュールに取り付けられたダイ(または半導体材料のブロック)の形態である。この回路は、プロセッサまたはソフトウェアなしで(たとえばハードワイヤードロジックまたはFPGAを用いて)、完全に電子的に実現されてもよい。
【００５６】
この回路は、バッファに記憶されたコマンドを処理するように構成されている。コマンドは識別パラメータに関連付けられている。識別パラメータは揮発性メモリに記憶されてよい。この識別パラメータは、不揮発性メモリに記憶されたオブジェクトを識別する。コマンドは、このオブジェクトに書き込まなければならない。この回路は、不揮発性メモリに、オブジェクトEF識別パラメータFIDを記憶するようにも構成されている。オブジェクトEF(コマンドに関連付けられた上記のオブジェクトまたは別のオブジェクトでよい)は、不揮発性メモリに記憶される。この回路は、事前定義されたアドレスADDRを不揮発性メモリに記憶するように構成されている。この事前定義されたアドレスは、オブジェクトEF内にあるアドレスである。この回路は、書込みコマンドを処理するとき、書込みコマンドに関連したオブジェクト識別パラメータを、不揮発性メモリに記憶されたオブジェクトEF識別パラメータFIDと比較するように構成されている。
【００５７】
この回路は、比較結果が正であれば、書込みコマンドに組み込まれている書き込むべきデータを、バッファから、書込みコマンドに関連したオブジェクトに、不揮発性メモリに記憶されている事前定義されたアドレスにおいて書き込むように構成されている。この回路は、記憶されている事前定義されたアドレスADDRと書き込まれたデータのサイズの合計に相当するアドレスを計算するように構成されている。この回路は、計算されたアドレスを、事前定義されたアドレスADDRの代わりに不揮発性メモリに記憶するように構成されている。
【００５８】
この回路は、比較結果が負であれば、書込みコマンドに組み込まれている書き込むべきデータを、バッファから、書込みコマンドに関連したオブジェクトに、デフォルトアドレスにおいて書き込むように構成されている。この回路は、デフォルトアドレスと書き込まれたデータのサイズの合計に相当するアドレスを計算するように構成されている。この回路は、計算されたアドレスを、事前定義されたアドレスとして不揮発性メモリに記憶するように構成されている。
【００５９】
可能な実施形態の1つは、電子デバイス(カード読取り装置RDRと対になったコンピュータPCなど)と、本発明の可能な実施形態によるスマートカードSCとを備えるシステムに関する。電子デバイスは、電子デバイスによってスマートカードに書き込まれるべきデータを、各サブセットのサイズが最大でも事前定義された値と等しくなるようにサブセットに分割するように構成されている。電子デバイスは、カードの同一のオブジェクトに関連した1組の書込みコマンドを構築するように構成されており、それぞれの書込みコマンドが、書き込むべきデータのそれぞれのサブセットを含む書込みコマンドを含む。電子デバイスは、このようにして構築されたそれぞれの書込みコマンドをカードに送るように構成されている。
【００６０】
本発明の方法に関して説明された実施形態は、スマートカード、本発明によるシステム、ならびにコンピュータプログラムおよび本発明によるプログラムを記憶するための媒体に置き換えることができ、また、これらのものを、本発明の方法に関して説明された実施形態に置き換えることもできる。
【００６１】
本発明は、具体例を用いて上記で説明されてきたが、これらの例に限定されるものではない。詳細には、本発明は、すべての形態のスマートカード(接触型または非接触型のカード、セキュアUSBキー、電子身分証明書、SIMカード、銀行カード、アクセスカード、セキュアトークン、生体認証パスポート、タコグラフ、ヘルスカード、電子ビザ、SecureMMCカードなど)に適用可能である。スマートカードに書込みコマンドを送る電子デバイスは、あらゆる種類のデバイス(現金自動預け払い機、自動通行料金徴収機、POS支払い端末、ヘルスカード読取り装置、スマートカード個人ステーション、スマートカード生産機、携帯電話、スマートカード読取り装置を装備したコンピュータ、生体認証パスポート検証ステーションなど)であり得る。
【００６２】
本発明の一実施形態による書込みコマンドはデイジーチェーン化されてよく、特にそのようなコマンドの最大のサイズよりもバッファが大きいときに、いくつかのコマンドを順番に送って、これらのコマンドの最後のものが受け取られた後にのみ不揮発性メモリに書き込むことが可能であることを意味する。たとえば、バッファが含むことができるコマンドが3つであって、書き込むべきデータが12のコマンドを必要とする場合、スマートカードは3つのコマンドをつなぎ合わせ、したがって、書込みステップの実行を、12回ではなく4回だけにすることができる(しかし3倍長いデータを用いる)。
【００６３】
示された例は、基本的にT=0プロトコルに基づく例であったが、本発明は他のプロトコルに対して機能する。たとえば、本発明の一実施形態による書込みコマンドはT=1プロトコルに従うコマンドであり得、カードは、コマンドがそのバッファのサイズを超過しないことを単に確認する。
【００６４】
第１の態様は、スマートカードの不揮発性メモリにデータを書き込む方法に関するものであり、この方法は、
/a/  前記スマートカードの揮発性メモリのバッファにおいて書込みコマンドを受け取るステップと、
/b/  前記スマートカードによって、前記書込みコマンドに関連したオブジェクト識別パラメータを前記スマートカードの前記不揮発性メモリに記憶されたオブジェクト識別パラメータと比較するステップと、
/c/  前記比較結果が正であれば、
/c1/  前記書込みコマンドに組み込まれている前記書き込むべきデータを、前記バッファから、前記書込みコマンドに関連したオブジェクトに、前記不揮発性メモリにその値が記憶されている事前定義されたアドレスにおいて書き込み、
/c2/  前記記憶されている事前定義されたアドレスと前記書き込まれたデータのサイズの合計に相当するアドレスを計算し、
/c3/  前記計算したアドレスを、前記事前定義されたアドレスの代わりに前記不揮発性メモリに記憶するステップと、
/d/  前記比較結果が負であれば、
/d1/  前記書込みコマンドに組み込まれている前記書き込むべきデータを、前記バッファから、前記書込みコマンドに関連した前記オブジェクトに、デフォルトアドレスにおいて書き込み、
/d2/  前記デフォルトアドレスと前記書き込まれたデータのサイズの合計に相当するアドレスを計算し、
/d3/  前記計算したアドレスを、前記事前定義されたアドレスとして前記不揮発性メモリに記憶するステップと
を含むものである。
【００６５】
第２の態様は、前記第１の態様に記載の方法に関するものであり、前記書込みコマンドに関連した前記オブジェクト識別パラメータが前記書込みコマンドに組み込まれているものである。
【００６６】
第３の態様は、前記第１の態様に記載の方法に関するものであり、前記書込みコマンドに関連した前記オブジェクト識別パラメータが、前記揮発性メモリに記憶され、前記スマートカードのオブジェクト選択コマンドによって更新されるものである。
【００６７】
第４の態様は、前記第１から第３のいずれか一つの態様に記載の方法に関するものであり、前記デフォルトアドレスがゼロアドレスであるものである。
【００６８】
第５の態様は、前記第１から第４のいずれか一つの態様に記載の方法に関するものであり、前記コマンドが、ISO 7816-4規格によるAPDUコマンドとして符号化されるものである。
【００６９】
第６の態様は、電子デバイスによって、スマートカードの不揮発性メモリにデータを書き込む方法に関するものであり、この方法は、
/a/  前記デバイスによって、前記書き込むべきデータを、各サブセットのサイズが最大でも事前定義された値と等しくなるようにサブセットに分割するステップと、
/b/  前記カードの同一のオブジェクトに関連した1組の書込みコマンドを構築するステップであって、それぞれの書込みコマンドが、書き込むべきデータのそれぞれのサブセットを含む、構築するステップと、
/c/  前記デバイスによって、それぞれの書込みコマンドを前記スマートカードへ送るステップと、
/d/  前記第１から第５のいずれか一つの態様に記載の方法に従って、前記スマートカードによって、受け取られたそれぞれのコマンドを処理するステップとを含むものである。
【００７０】
第７の態様は、スマートカードのプロセッサによって実行されたとき、前記第１から第５のいずれか一つの態様に記載の方法を実施する一連の命令を含むコンピュータプログラムに関するものである。
【００７１】
第８の態様は、前記第７の態様に記載のコンピュータプログラムを記憶する不揮発性のコンピュータ可読記憶媒体に関するものである。
【００７２】
第９の態様は、不揮発性メモリ(EEPROM)と、揮発性メモリ(RAM)と、前記揮発性メモリ内のバッファ(BUF)と、不揮発性メモリにおける書込みコマンドを処理するための回路(PROC, ROM)とを備えるスマートカード(SC)に関するものであり、前記回路(PROC, ROM)が、前記バッファ(BUF)に記憶されており、コマンドが書き込む前記不揮発性メモリ(EEPROM)に記憶されているオブジェクトを識別する識別パラメータに関連付けられている前記コマンドを処理するように構成されており、前記回路(PROC, ROM)が、一方、前記不揮発性メモリ(EEPROM)に記憶されているオブジェクト(EF)の識別パラメータ(FID)と、他方、前記オブジェクト(EF)内の事前定義されたアドレス(ADDR)とを、前記不揮発性メモリ(EEPROM)に記憶するように構成されており、前記回路(PROC, ROM)が、書込みコマンドを処理するとき、前記書込みコマンドに関連した前記オブジェクト識別パラメータを、前記不揮発性メモリ(EEPROM)に記憶された前記オブジェクト(EF)識別パラメータ(FID)と比較し、前記比較結果が正であれば、前記書込みコマンドに組み込まれている前記書き込むべきデータを、前記バッファ(BUF)から、前記書込みコマンドに関連した前記オブジェクトに、前記不揮発性メモリ(EEPROM)に記憶されている前記事前定義されたアドレス(ADDR)において書き込み、前記記憶されている事前定義されたアドレス(ADDR)と前記書き込まれたデータのサイズの合計に相当するアドレスを計算し、前記事前定義されたアドレス(ADDR)の代わりに、前記計算されたアドレスを前記不揮発性メモリ(EEPROM)に記憶するように構成されており、前記回路(PROC, ROM)が、前記比較結果が負であれば、前記書込みコマンドに組み込まれている前記書き込むべきデータを、前記バッファ(BUF)から、前記書込みコマンドに関連した前記オブジェクトに、デフォルトアドレスにおいて書き込み、前記デフォルトアドレスと前記書き込まれたデータのサイズの合計に相当するアドレスを計算して、前記計算されたアドレスを、前記事前定義されたアドレスとして前記不揮発性メモリ(EEPROM)に記憶するように構成されているものである。
【００７３】
第１０の態様は、電子デバイス(PC, RDR)および前記第９の態様に記載のスマートカード(SC)を備えるシステムに関するものであり、前記電子デバイス(PC, RDR)が、前記デバイス(PC, RDR)によって前記スマートカード(SC)に書き込むべき前記データを、各サブセットのサイズが最大でも事前定義された値と等しくなるようにサブセットに分割することと、前記カード(SC)の同一のオブジェクトに関連した1組の書込みコマンドを構築することであって、それぞれの書込みコマンドが、書き込むべきデータのそれぞれのサブセットを含む、構築することと、このようにして構築されたそれぞれの書込みコマンドを前記カード(SC)に送ることとを行うように構成されているシステムに関するものである。
【符号の説明】
【００７４】
SC  スマートカード
RDR  読取り装置
PC  コンピュータ
RAM  揮発性メモリ
BUF  バッファ
PROC  プロセッサ
EF  基本ファイル
EEPROM  不揮発性メモリ
FID  識別子
ADDR  アドレス
ROM  読取り専用メモリ
【図１】
0006355699.tif 000002
【図２】
0006355699.tif 000003
【図３】
0006355699.tif 000004