説明

マイクロサーキットカード、特に非接触型カードにおける、複数の不揮発性メモリ位置を不可分的に修正する方法

【課題】カードメモリ中に不可分的に複数の修正を行うことを可能にする方法を提供する。
【解決手段】本方法は、カードによって実行される、a)端末装置から対応するそれぞれのコマンドを受け取ると、相互依存したデータの各々を、このデータに対応する以前の値を失うことなく、カードメモリ内に暫定的に記録することによって、カードメモリの内容を修正するステップと、b)後続の操作のために、ステップa)で実行したコマンド全てが考慮に入れられるか、または、コマンドの全てが実行されないように、修正の全てを承認することによって、または、修正の全てを拒否することによって、修正を完了させるステップとを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マイクロサーキットカードに関し、さらに特に、マイクロプロセッサカード自体の不揮発性メモリに様々な修正を加えるマイクロプロセッサカードに関する。
【背景技術】
【0002】
トランザクションを実行する時に、メモリは一般的に1回または複数の回数にわたって修正され、したがって、当然のことながら、新たに記録された情報を使用する状態になる前に、修正の全てを確実にかつ適正に行う事が必要であり、この新たに記録された情報は、誤りの発生時に、または、レコード破損の発生時に、無視されるか消去されなければならない。
【0003】
例えば、特許文献1(米国特許第4,877,945号)は、誤りに基づいてトランザクションが継続されることを防止するために、複数のデータ項目に関しての書き込みシーケンス中に生じる異常を検出する方法を開示している。
さらに、異常の発生時には、原状回復することが可能であること、すなわち、誤ったトランザクションを実行する前にカード内に記録された情報値を、後続のトランザクションが操作することが可能であることも望ましい。
【0004】
誤ったトランザクションの実行中に古い情報値が失われてしまうことがあるので、上述の特許文献1はこうした利点を提供せず、少なくともカード内に含まれる情報だけに基づいて上記情報をその以前の状態に復元することは不可能である。
【0005】
特許文献2(WO−A−89/02140)では、こうした操作の方法の1つを開示しているが、この方法は、単一の情報項目が修正された場合、または、複数の項目が互いに無関係に修正された場合のみ、こうした事態に対して適用可能であるにすぎない。
しかしながら、多くの場合には、単一のトランザクション中に複数の情報項目を修正することが必要であり、かつ、複数の情報項目に対する修正の全てを適正にかつ確実に実行するために、これらの複数の情報項目を一括して処理する必要のある場合には、これらの複数の情報項目は「相互に依存している」と見なされる。
【0006】
複数の相互依存した情報項目を担う不完全なまたは未完了のトランザクションが生じる危険性は、カードが端末装置の周りで適正に作動することが可能な空間の境界を認知できない、「非接触型」タイプのカードの場合に特に高い。こうした状況では、カードが処理終了前に端末装置の範囲を超えて移動するために、または、例えば金属の塊が近くを通過すると言ったような一時的妨害のために、カードと端末装置との間の通信が偶発的に中断されるという危険性が高い。
【0007】
一例(当然のことながら、非限定的な事例である)として、リモートチケッティングトランザクション(遠隔発券業務)におけるこうしたカードの使用、すなわち、公共輸送サービスに対するアクセスのためにこうしたカードを使用することがあり、この場合には、カードは2つの役割、すなわち、適正なトラベルチケットの役割と、電子財布の役割とを果たす。
【0008】
上述の問題点を軽減し、かつ、「不可分な」相互依存したデータ項目に対する複数の書込みまたは他の修正を行うために、幾つかの解決策が既に提案されている。
一例として上述した特定の用途では、既知のシステムは、電子財布に借方記入することによってスタートし、次に、ユーザによって取得された旅行の権利を記録する。このユーザがこの2つの操作の合間にカードを引き抜くと、ユーザはカードを再び挿入するように促され、旅行の権利の書込みが再開始される。しかしながら、ユーザがカードを再挿入することなしに立ち去ってしまう場合には、このユーザは誤った扱いを受けることになる。明らかなことであるが、電子財布の借方記入が完了する前にユーザが故意にカードを引き抜くこともあり得るので、上述の順序とは逆の順序で操作を行うことは不可能である。
【0009】
この解決策は、中断の発生時に、トランザクションの再開始(リクエストされた端末装置内へのカードの再挿入)を取り扱うための例外処理を起動することを可能にするように端末装置が特別に構成されている、ということを暗に意味している。この解決策は、こうした端末装置のソフトウェアをより複雑にすることに加えて、現時点では完全に満足できるものではなく、上述のようにトランザクションが再開されない場合には、ユーザが間違った取扱を受ける可能性が依然として存在する。
【0010】
別の解決策は、カード内の財布の状態に関する情報を端末装置が保存し、さらに、これとは反対の処理を行う、データ交差(data crossing)にある。しかし、この解決策は、複雑であることに加えて、カードと端末装置との間で相互交換されるデータの量を増大させ、したがって、トランザクションの実行を減速させるので、満足できるものではない。さらに、多回数(例えば、3回以上)の書込みが不可分に行われなければならない時には、この解決策の適用は困難である。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】米国特許第4,877,945号
【特許文献2】国際公開第89/02140号
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明の目的の1つは、カードのメモリ中に不可分的に複数の修正を行うことを可能にする方法を提供することである。
本発明の別の目的は、カードだけで完全に処理されることが可能なこうした方法を提案することである。したがって、この方法は、端末装置を改変することなしに、かつ、端末装置内で例外処理を行う必要なしに、実現されることが可能であり、したがって、この方法は、既存命令の構文(シンタックス)を使用し、選択可能なコマンドにおいて非常に融通性が高い。
【課題を解決するための手段】
【0013】
本発明の方法は、トランザクション実行中はカードが端末装置に一時的に結合されるタイプであり、このトランザクションは、カードに複数の修正コマンドを与える端末装置を含み、この複数のコマンドの各々は、このコマンドによって指定される個々のデータ項目をカードメモリ中に記録する少なくとも1つの操作を含み、こうして記録された様々なデータ項目は相互依存している。
【0014】
本発明の特徴的な仕様では、この方法は、カードによって以下のステップを実行することを含んでいる。すなわち,ステップa)、端末装置から対応する各コマンドをカードが受け取る時に、カードが、相互依存した情報項目のそれぞれを、その情報項目に対応する以前の値を失うことなく、カードメモリ内に暫定的に記録することによって、カードのメモリの内容を修正するステップと、その後のステップb)、その修正の全てを承認することによって、またはその修正の全てを放棄することによって、修正を完了し、これによって後続の操作に対して、ステップa)で実行されたコマンド全てを考慮に入れるか、またはこれらのコマンド全てを実行しないようにするステップを含む。
【0015】
したがって、本発明が基づいている原理は、単一のステップa)で不可分な形で行われなければならない複数の修正を一括してグループ化することにあり、その次に、修正の実行完了後に、これらの修正全体をカードが有効化することにある。この有効化が成功である場合には、その次に、(同一のトランザクション中に、または、後続のトランザクション中に)カードによって行われる次の操作の時点で、アクセス可能な内容が、既に行われた修正を必ず反映することになる。
【0016】
これとは反対に、ステップa)中にカードの操作に何らかの中断が生じた場合には、この中断は、行われた全ての修正をキャンセルし、不揮発性メモリ内のデータは、ステップa)の以前の状態のままである。
【0017】
特定の一実施態様では、ステップb)での承認時に、適正な実行を承認するフラグがカードのメモリ内に記録され、このカードが、その後で、ステップa)で書き込まれたデータ項目または読取りおよび/もしくは修正が必要なこのデータ項目に対応する値の少なくとも1つを要求するコマンドを受け取る時に、このカードは、フラグの状態を調べることによって開始し、そのフラグが記録されていない場合には、ステップa)で以前に行った暫定的な記録を無視するかキャンセルし、そのデータ項目に対応する以前の値に基づいてコマンドを実行する。このカードがフラグの状態を調べ、フラグが記録されていることを発見した場合には、このカードは、ステップa)で行われた暫定的書込みをコピーするという操作を実行することが可能である。
【0018】
非常に有益には、このカードは、2つのモードでの操作に適している。この2つのモードとは、ステップa)とステップb)とを実行することによって記録が行われるインセッションモード(in−session mode)と、ステップa)とステップb)との両方において記録の実行が承認されないアウトオブセッションモード(out−of−session mode)である。
【0019】
セッションは、例えばカードをゼロにリセットすることによって、自動的に開始され、または、予め決められた操作を実行するアクションと、セッションを開始するための命令として解釈されるアクション、の2つのアクションを有するコマンドにしたがって開始される。
例えば、正常に認可された記録が認可証(certificate)を伴っていない場合には、このカードは自動的にセッションを開始し、このセッション中への記録を処理する。
【0020】
同様に、2個のアクションを実行するコマンドに続いて、セッションの終了も自動的に行われる。この2個のアクションは、予め決められた操作を実行するアクションと、セッションを終了させるための命令として解釈されるアクションとである。
【0021】
例えば、財布の借方記入の操作によってセッションを終了させ、それによって、その結果としての通信延期の必要性を回避し、かつ、セッション認可証と財布トランザクション認可証とを区別ができないようにすることが可能となる。
非常に有益には、本発明の方法は、ステップb)を終了させる機能と組み合わされた認証機能を含み、この機能が、認証に失敗した時にステップb)の放棄を強制することである。
【0022】
第1の実施態様では、この認証はカードによって実行され、このカードは端末装置および/または端末装置とカードとの間で相互交換されるデータを認証し、かつ端末装置によって生成されてカードに送られる暗号化認可証をチェックし、この認可証が適正であると認識される場合にだけ、ステップb)での修正を承認する。
セッションを伴うモードでは、メモリの内容を修正するためであってかつ暗号化認可証の検証を含むコマンドをカードが端末装置から受け取る場合、このコマンドをアウトオブセッションで受け取る時はこの検証が行われ、一方、このコマンドをインセッションで受け取る時にはこの検証を行わないようにしておくような、準備が可能である。
【0023】
言い換えると、ステップb)でカードによって実行され、かつ、通常(すなわち、アウトオブセッションで)暗号化認可証を検証するコマンドは、インセッションで実行される時には、もはやこの検証を含まず、「端末装置を認証するセッション認可証」が同等の機能を果たす。
【0024】
第2の実施態様では、上記認証は、カードおよび/または端末装置とカードとの間で相互交換されるデータを認証する端末装置によって行われ、カードは、修正がステップb)で承認済みである場合に、かつ、この場合にだけ、条件に応じて暗号化認可証を生成して端末装置に伝送する。
【0025】
セッションを伴うモードでは、カードが、メモリの内容を修正するためであってかつ暗号化認可証の生成を含むコマンドを端末装置から受け取る場合、このコマンドをアウトオブセッションで受け取る時に前記生成が行われ、一方、このコマンドをインセッションで受け取る時にはこの生成が行われないように、準備が可能である。
【0026】
言い換えると、ステップb)でカードによって実行され、かつ、通常(すなわち、アウトオブセッションで)暗号化認可証を生成するコマンドは、インセッション中で実行される時には、もはやこうした認可証を生成せず、「端末装置を認証するセッション認可証」が同等の機能を果たす。
【0027】
さらに、カードが、ステップb)において、メモリの内容を修正するためであってかつ複数の暗号化認可証の生成を含むコマンドを端末装置から受け取る時に、これらの認可証がステップb)で記憶され、その次に、修正がステップb)で既に承認済みである場合に、かつ、この場合にだけ、これらの認可証が一括して端末装置に伝送されるように、準備が可能である。
【0028】
言い換えると、ステップb)の命令によって通常生成される暗号化認可証がカードによって通信されることを延期しておくことが可能である。特に、認可された書込みコマンドが特定の書込み認可証を生成する場合には、書込みが取消不可能な形で行われた後にだけ認可証がカードから離れることが望ましい。
【0029】
特定の実施態様では、ステップb)で実行され得るコマンドの少なくとも幾つかが随意の禁止属性を含み、カードがこうしたコマンドをインセッションでステップb)で実行する場合には、このコマンドによって行われた修正が、ステップb)の結果とは無関係に効果を及ぼす。
【0030】
言い換えると、上述の属性は、コマンドがインセッションで行われる(すなわち、セッションが終了されない場合にはキャンセルされる)か、アウトオブセッションで行われる(すなわち、時間の経過順に言ってインセッションである場合にさえ、アウトオブセッションで行われたかのように、直ちに有効である)か、を定義する。
【0031】
もっとも有益には、本発明は、ステップb)の後に、かつ、修正が承認される時に、d)カードによる承認の後に端末装置がアクションを実行するステップと、e)このアクションが端末装置によって適正に実行された時に、読取りによる後続のアクセスに適したカード内に実証情報(ratification information)が記録されるステップという一連のステップをさらに提供する。
【0032】
こうしたセッションの「実証」は、端末装置がセッションの実行後に決定を行う(例えば、公共公衆輸送ネットワークに対するアクセスを与えるための用途において障壁を開放する)ことが当然可能であることを、カードに通知する。
この実証が、追加の書込みの必要なしにカードによって処理されることが理解されるであろう(暫定的な書込みのコピーは、いずれにしても遅かれ早かれ行われなければならない操作である)。これに加えて、端末装置端で適正にアクションが実行済みであるという条件下でだけ、すなわち、トランザクション全体が不変である場合にだけ、このコピーがカード端において実行される。
【0033】
操作の全てがカードによって行われる場合には、ステップe)の記録コマンドが暗黙的なコマンドであるようにしておくことが効果的であり、ステップb)の後にカードによって受け取られるあらゆるコマンドは、カード内に実証情報を記録するための命令であると解釈される。
【発明を実施するための形態】
【0034】
本発明の他の特徴と効果は、本発明の後述の2つの実施例の説明から明らかである。
これらの実施例において、および、もちろん本明細書の全文において、術語「指定する(designate)」は、「複数の中の1つを特定する」という意味で用いられ、カード内に収容されている様々な情報項目の中の特定の情報項目を特徴付けるアクションに関連する。
【0035】
こうした指定は、コマンド自体が特定の情報項目を特定するので、暗黙的であり得、例えば、コマンド「財布から金額xを借方記入する」は、「財布バランス」データ項目の値を含むメモリ位置を指定する。
例えば、下記の実施例Iでは、この指定が明示的であることも可能であり、この場合には、書込みコマンドがアドレスまたはセクタ識別子を有し、かつ、このコマンドが指標iで示されるようにしておく。
【0036】
実施例I
100個の8バイト値を記憶しかつ次の命令を行うことが可能なカードを用意する。
・1から100までの範囲内の指標iによって特定される8バイト値vを読み取る。
・1から100までの範囲内の指標iによって特定される8バイト値vを書き込む。
・セッションを開始する。
・セッションを終了する。
【0037】
このカードは、単一のセクション中に3回までの書込みを可能にしなければならない。通例では、不揮発性メモリ(例えば、EEPROM)内の値を指定するために大文字を使用し、揮発性メモリ(例えば、給電が断たれると内容を失うRAM)内の値を指定するために小文字を使用する。
【0038】
不揮発性メモリ領域を、カードの主データ記憶装置に割り当てる(確定書込み)。
V[i]、iは1から100まで:100×8バイト。
別の不揮発性メモリ領域をセッション機構に割り当て、このメモリ領域は、
T[k]、jは1から3まで:セッション中に書き込まれる値(暫定的書込み)を含む3×8バイトと、
I[k]、jは1から3まで:セッション中に書き込まれる値の指標を含む3×1バイトと、
C:セッションの終わりに書き込まれるカウントバイト
と、を含む。
【0039】
Cは、インセッションで行われる書込みの回数を符号化する。適切な冗長機構(例えば、上記値の補数を連結させて)が、上記カウントバイト内に格納されている値が不確実である場合の検出を可能にする。
【0040】
操作は次のように行われる。
ステップ0:カードに給電が行われる時点と、第1のコマンドが実行される時点との間に、Cを調べる。Cが1から3の範囲内の確実な値であるならば、kが1からCに等しい場合に、指標I[k]における値T[k]をテーブルV[i]からコピーする。その後で、Cをゼロにリセットし、(セッションが始まっていないことを示すために)内部変数jを−1に設定する。
【0041】
ステップ1:読取り時に、j>0であるか調べるためのテストを行う。j>0であるならば、要求された指標iを、kが減少順にjから1である場合のI[k]の値と比較する。一致があるならば、T[k]が戻される。その他の場合は全て、V[i]が戻される。
ステップ2:セッション開始時に、jを0に初期化する(セッションが既に始まっている場合には、キャンセルされる)。
【0042】
ステップ3:各々の書込み時に、j=−1である(セッションが始まっていない)ならば、通信された値iをT[0]に書き込み、通信された指標iをI[0]に書き込み、その次に、C=1を書き込み、その後に、vをV[i]に書き込み、C=0を書き込む。0≦j<3ならば(セッション中の書込み)、jを1だけ増分し、vをT[j]に書き込み、iをI[j]に書き込む。j=3ならば、操作が拒否される(セッション中の書込み制限を越えたので)。
【0043】
ステップ4:セッションの終了時に、j>0ならば、jをCに書き込み、その次に、jが1からCであるならば、テーブルV[]の指標I[j]の値T[j]をコピーする。その次に、Cを0に設定し、jを−1に設定する。
【0044】
カードの電源を任意の時点で遮断することが可能であるということと、読み取られる値が適正であること、すなわち、各々の指標iの場合に、最後の値がインセッションで書き込まれないか、または、既に終了した(書込みが既に完了しているか、または、非ゼロの値がCに書き込まれる時点でセッションが終了している)セッションにおいて書き込まれる、ということとが示される。
【0045】
カードに供給される暗号化認可証が誤っている場合に特定の操作を防止するために暗号文が加えられ、および/または、特定の操作の終了時にカードに対して暗号化認可証が生成されるようにする。
【0046】
使用された暗号化認可証は、公知のタイプの暗号手法に基づいている。例えば、「カードを認証するセッション認可証」(または端末装置)は、セッション開始時に、カード端と端末装置端における安全ハッシュアルゴリズム(SHA)を、カードによって供給されるデータと、端末装置(またはカード)によって供給される乱数とに適用することによって得られる。その結果として得られるメッセージ認証コード(MAC)は、カード(または、端末装置)内に含まれる秘密キーを使用してディジタル署名アルゴリズム(DSA)によってカード(または端末装置)によって署名される。端末装置(またはカード)は、公開キーを使用してこの署名を承認する。データ暗号化規格のような対称暗号化アルゴリズムも、MACの生成および/または署名の生成のために使用可能である。
【0047】
本発明の随意の選択肢として、MAC生成ステップは認証の両方向に共通であり、セッションのデータ全てに関係する。対称暗号化を使用する時には、カードを認証する認可証と端末装置を認証する認可証とが、単一のMAC暗号化ステップによって得られ、カードと端末装置とに関する別々の認可証が、特定の予め決められたビットを抽出するといった基本的な操作によってそれから導出される。
【0048】
実施例II
この実施例では、メモリのデータをセクタとして編成し、各々のセクタは次の4つのフィールドを含む。
1.データ、
2.識別子(セクタが選択されることを可能にするアクセスキー)、
3.適切性:2つのセグメントが同じ識別子を有する場合にどちらのセクタが適切であるかを判定するためのフィールド、
4.検査:(例えば、パリティタイプの検査を行うことによって)上記3つのフィールドが破損していないことを検査するためのフィールド。
【0049】
セクタはその識別子によって指定され、この概念はアドレス概念に取って代わる。セクタ内への書込みのためのプロシージャは、識別子との対応付けのために、データと共にパラメータとして識別子を有する。セクタを読み取るためのプロシージャは、そのパラメータとして識別子を有し、この識別子に対応付けられたデータを、この識別子(または、この識別子が以前には使用されたことがない場合には、適切な表示)を使用して書込みが行われた最後の時点に戻す。言い換えると、対応したタイプのアクセスが、指標付きのアクセスの代わりに実行される。
【0050】
セクタ読取りプロシージャ中は、要求された値を含む識別子を有しかつ(検査フィールドによって判定されるように)破損していないセクタを、カードが探索する。複数のセクタがこの2つの基準を満たす時には、適切性フィールドに基づいて1つのセクタが保持される。
【0051】
セクタを書き込む時には、カードは、要求されたデータと、識別子と、適切性フィールド(例えば、読取りプロシージャの場合には、このセクタがこの識別子を有する非破損セクタの中で最も適切であるように)と、この3つの先行するフィールドに一致する検査フィールド(言い換えると、後続の読取りが適正に行われることが可能であるように、書込みが取り扱われる)とを、使用可能なセクタの中に書き込む。
【0052】
書込みプロシージャの後に、書き込まれた新たなセクタによって不適切なものにされたセクタの消去を行い、それによって新たなセクタを利用可能にすることが効果的である。
(追加の)不要情報整理タイプのシステム、すなわち、破損しているか不適切であるために使用不可能なセクタを回復させるためのシステムも備えられることが有利である。
【0053】
使用されるセクタが常に同じセクタではないことを確保することによって、例えば、使用可能なセクタの中からランダムにセクタを選択することによって、書込みの結果として生じる摩耗を拡散させるシステムも備えられることが有利である。
【0054】
セクタ探索のためのプロシージャの一般的に有利な変型は、破損していることが発見されているセクタ、および/または、最も適切なセクタではないセクタを消去し、それによって(後続の読取りおよび書込みの速度に有利なように、特定の読取り中の時間を浪費する)空きセクタを再生させるために、探索ステップを利用することにある。破損してはいないが適切ではないことが発見されているセクタを消去する前には、適切なセクタが不適正に書き込まれているかも知れないので、適切なセクタが再び書き込まれる。
【0055】
メモリの作業サイズは、使用可能なセクタの個数から、消去された状態のままでなければならない1つのセクタを減算したものに等しい。セクタの全て(消去されたセクタを含む)は、メモリ内に動的に分布させられる。
例えば、ISO/IEC 7816−4規格を適用する場合のように、データがファイルの形に構造化されなければならない場合には、セクタ識別子が、2つのサブフィールド、すなわち、フィールド識別子と、ファイル内のセクタのための識別子とにさらに区分される。
【0056】
この特定のセクタ構造を使用する読取り/書込み操作の非限定的な具体例は次の通りである。
・検査フィールドは、バイナリコードの形で、その他の3つのフィールド内のゼロビットの個数を含む。書込みまたは消去の中断のような問題がセクタ内の何らかの個数のビットを全て同じ方向に修正させる場合には、検査フィールドの値を検査することによって、その問題が発生したことを常に検出することが可能である。
【0057】
・適切性フィールドは、2ビットに符号化された0から3の範囲内の整数である。
・読取りプロシージャは、探索対象である識別子を有しかつ破損していない第1のセクタを発見するまで、セクタの全てを逐次的に読み取る。こうしたセクタが発見できない時には、このプロシージャは「セクタを発見できない」というレポートで終了する。第1のそうしたセクタを発見すると、このセクタの位置をそのデータおよび適切性pと共に記憶する。この探索が続けられる。探索対象である識別子を有しかつ破損していない第2のセクタを発見すると、その適切性qが、3によるp+1の整数除算の剰余であるかどうかを検査する。そうであるならば、この第2のセクタを再び書き込み、第1のセクタを消去し、第2のセクタからのデータを戻す。そうでないならば、第1のセクタを再び書き込み、第2のセクタを消去し、データを第1のセクタから戻す。第2のセクタが発見できず、かつ、第1のセクタの適切性がp=3であるならば、第1のセクタを消去し、「セクタを発見できない」というレポートを与える。そうでない場合には、戻されるデータは、最初に発見したセクタから得られる。
【0058】
・書込みプロシージャは上述の読取りプロシージャと同様に始まる。特定の識別子のための読取りプロシージャによって既に戻されている以前に記憶されたセクタを発見した場合には、このセクタの位置を、その適切性p(0、1、または、2に等しい)と共に保持する。こうしたセクタを発見できない場合には、(後述のプロシージャを使用して)空きセクタを選択し、識別子、データ、適切性p=3、および、検査フィールドを上記セクタに書き込み、上記セクタの位置と適切性とを保持する。両方の場合とも、プロシージャは、(後述のプロシージャを使用して)空きセクタを発見することによって継続する。識別子、データ、(3によるp+1の整数除算の剰余として計算される)適切性q、および、検査フィールドをこのセクタに書き込む。その後に、以前に記憶されたセクタがあれば、このセクタを消去する。
【0059】
・空きセクタを探索するために、発見される空きセクタの個数nをゼロに初期化する。セクタを逐次的に検査する。空でなくかつ破損しているセクタの各々に関しては、このセクタを消去して空にする(したがって、上述の不要情報の整理に寄与する)。セクタが破損していない場合に、かつ、その適切性がp=3である場合には、このセクタを消去する(同様に、不要情報の整理に寄与する)。セクタが破損していない場合に、かつ、その適切性がp=3でない場合には、まだ走査し終わっていない区域において、同一の識別子を有する別の非破損セクタを探索し、別の非破損セクタを発見した場合には、不適切なセクタを消去し、読取りの場合と同様に処理を続行する。このプロセスの終わりにセクタが空である場合には、発見した空きセクタの個数nを増分し、0からn−1の範囲内のランダムな整数を引き出す。この整数が0である場合には、空きセクタの位置を記憶する。全セクタを走査し終わった時には、空いていないセクタの全てが破損しておらず、2つのセクタが同一の識別子を持たず、空きセクタの個数nが判明しており、こうしたセクタの1つが、同程度の蓋然性がある形で行われたランダム選択として既に記憶されている。空きセクタを発見しなかった場合には、書込みプロシージャを中断する。
【0060】
こうした特定のセクタ構造を使用してカードが不可分の修正セッションを操作することが可能な方法を、次で説明する。
不可分の修正を記憶するために、カードは、不揮発性メモリ内に使用可能なN個の消去済みセクタを有する(ここで、Nは、単一のセクション中に行われる必要があるかも知れない不可分の修正の回数に相当する)。これに加えて、カードは、セッションの操作に専用に使用されかつ「セッション記述子」と呼ばれる不揮発性メモリ領域(セクタ内には含まれない)を操作する。
【0061】
この具体例は、セッションに固有の認証を行わない。
セッション記述子を次の3つのフィールドで定義する。
・不可分セクタに対する参照のリスト(LRSA)、
・不可分セクタに対する参照のリストを生成する際の検査値(VCC)、
・(セッションが既に終了しているかどうかを発見するために)不可分セクタに対する参照のリストを考慮する検査値(VCPC)。
【0062】
ステップ0:初期化
カード操作の最後の中断以来の最初のデータアクセスの前に、例えば、リセット時に、カードは、セッション記述子が消去されることを確保しなければならない。セッション記述子の状態に応じて、次の通りの幾つかの場合を考慮に入れる必要がある。
【0063】
・セッション記述子が完全に消去されている場合:カードはこのセッション記述子をそのまま据え置く。
・セッション記述子が完全には消去されておらず、かつ、VCPCは適正である場合:カードは、(上述のリストで参照されるセクタから)既に書き込まれているセクタによって陳腐化させられたセクタの全てを探索し(必要に応じて)消去し、その次にセッション記述子を消去する。
【0064】
・セッション記述子が完全には消去されておらず、かつ、VCPCが消去されているか不適正であり、かつ、VCCが適正である場合:カードは、LRSA内に示されているセクタを消去し、その次に、セッション記述子を消去する。または、
・セッション記述子が完全には消去されておらず、かつ、VCPCが消去されているか不適正であり、かつ、VCCが消去されているか不適正である場合:カードはセッション記述子を消去する。
【0065】
ステップ1:セッションの開始
カードはN個の消去済みセクタを探索し、その次に、この消去済みセクタに対する参照リストを、(消去されると仮定される)セッション記述子内のそのVCCに記録する。
【0066】
ステップ2:セッションの進行
カードはコマンドを受け取る。コマンドの1つが1つまたは複数の不可分の修正を生じさせる時には、これらの修正を記録するために使用されるセクタは、LRSA内に記録された、合計でN個の修正済みセクタまでのセクタである。
【0067】
ステップ3:セッションの終了
セッションを終了するために、カードは、LRSAとそのVCCとが既に計算に入れられていることを確保するVCPCを書き込む。その後で、カードは、(上述のリストで参照されるセクタから)既に書き込まれているセクタによって陳腐化させられているセクタの全てを探索し消去する。その後で、カードはセッション記述子を消去する。
【0068】
これに加えて、実証を取り扱うのがカードである場合には、セッションの操作は次の修正を含む。
【0069】
ステップ0:初期化
セッション記述子が完全には消去されておらず、かつ、VCPCが適正である場合には、カードは、(上述のリストで参照されるセクタから)既に書き込まれているセクタによって陳腐化させられたセクタの全てを探索し(必要に応じて)消去するが、セッション記述子は消去しない。
【0070】
ステップ1:セッションの開始
カードは、揮発性メモリ内に、セッションが始まっているということを記録する。セッション記述子が空でないならば、カードは、先行セッションが実証されていないということを表示し、かつ、LRSAを分析することによって、どのデータ項目が実証されていないのかを表示することさえ可能である。いずれにしても、カードはセッション記述子を修正しない。
【0071】
ステップ2:セッションの進行
不可分の修正を伴う第1のコマンドの際に、カードは、必要に応じてセッション記述子を消去し、N個の消去済みセクタを探索し、その次に、LRSAとそのVCCとを書き込む。
ステップ3:セッションの終了
カードは、揮発性メモリ内に、全セッションが終了しているということを記録する。何が起ころうとも、カードはセッション記述子を消去しない。

【特許請求の範囲】
【請求項1】
マイクロサーキットカード、特に非接触型カードの不揮発性メモリの内容を修正する方法であって、
トランザクション、特にリモートチケッティングトランザクションの実行中に、前記カードが端末装置に一時的に結合され、
前記トランザクションは、前記端末装置が前記カードに複数の修正コマンドを送信することを含み、
前記修正コマンドのそれぞれは、前記カードメモリ中への特定のデータ項目の記録を定義し、前記特定のデータ項目は、前記コマンドの各々によって前記カードに伝達される指標または識別子の関数として前記カード中に含まれる複数のデータ項目中から決定されている、方法において、
前記方法は、前記カードが実行する、
a)前記端末装置から対応するそれぞれのコマンドを受け取ることによって、前記データ項目の各々を、前記不揮発性メモリ中に保持された前記データ項目の以前の値を失うことなく、前記カード内に暫定的に記録し、且つ、前記複数のコマンドの暗号化認証を実施するステップと、その後、
b)前記トランザクションまたはその後のトランザクションにおいて前記カードによって行われる次の操作において、ステップa)で実行した前記コマンド全てが、
i)全てのコマンドの認証が成功したという条件の下に、前記不揮発性メモリに適用された対応する全てのデータ変化と共に、承認されるか、
ii)または、前記不揮発性メモリ中の対応するデータがステップa)の全てのコマンド以前のものとして残るようにして、全てが放棄されるように、前記修正を完了させるステップと、を含み、
それによって、且つ、前記修正コマンドの全てが認証された場合のみ、個々のコマンドによって参照された相互依存する可能性のあるデータ項目が、前記カードの不揮発性メモリ内で一貫して修正されることを保証する、方法。
【請求項2】
ステップb)での承認時に、適正な実行を承認するフラグを前記カードのメモリに記録し、さらに
前記カードは、その後で、ステップa)で書き込まれたデータ項目または読取りおよび/もしくは修正が必要な前記データ項目に対応する値の少なくとも1つを要求するコマンドを受け取る時に、前記カードは、前記フラグの状態を調べることから開始し、前記フラグが記録されていない場合には、ステップa)で以前に行った前記暫定的な記録を無視するかキャンセルし、前記データ項目に対応する前記以前の値に基づいて前記コマンドを実行する、請求項1に記載の方法。
【請求項3】
前記カードは前記フラグの状態を調べ、前記フラグが記録されている場合には、前記カードは、ステップa)で行われた前記暫定的書込みをコピーするための操作を実行する請求項2に記載の方法。
【請求項4】
前記カードは、2つのモード、すなわち、
ステップa)とステップb)を実行することにより記録の形成が行われるインセッションモードと、
前記記録の形成は、承認を必要とせず、かつ、ステップa)において受信された各コマンドにおいて前記不揮発性メモリに転記されるアウトオブセッションモード、における操作に適している、請求項1または2に記載の方法。
【請求項5】
前記カードは、前記端末装置によって生成されステップa)の最後において前記カードに伝送される暗号化認可証を検査し、前記認可証が適正であると認識される場合にだけ、ステップb)での修正を承認する、請求項1に記載の方法。
【請求項6】
前記メモリの内容を修正するためでかつ暗号化認可証の検証を含むためのコマンドを前記カードが前記端末装置から受け取る時に、前記コマンドをアウトオブセッションで受け取る場合に、前記検証を行い、一方、前記コマンドをインセッションで受け取る場合に、前記検証を行わない、請求項5に記載の方法。
【請求項7】
前記認証を、前記カードおよび/または前記端末装置と前記カードとの間で相互交換される前記データを認証する前記端末装置によって行い、前記カードは、前記修正がステップb)で承認済みである場合だけ、条件に応じて暗号化認可証を生成して伝送する、請求項1に記載の方法。
【請求項8】
前記メモリの内容を修正するためでかつ暗号化認可証の生成を含むコマンドを前記端末装置から前記カードが受け取る時に、前記コマンドをアウトオブセッションで受け取る場合に、前記生成を行い、一方、前記コマンドをインセッションで受け取る場合に、前記生成を行わない、請求項7に記載の方法。
【請求項9】
ステップb)において、メモリの内容を修正するためでかつ複数の暗号化認可証の生成を含むコマンドを前記カードが端末装置から受け取る時に、前記認可証をステップb)で記憶し、その後、前記修正がステップb)で既に承認済みである場合だけ、前記認可証を一括して前記端末装置に伝送する、請求項1または2に記載の方法。
【請求項10】
コマンドがインセッションで行われるかアウトオブセッションで行われるかを定義する禁止属性を、前記コマンドの少なくとも幾つかが含み、前記カードが前記禁止属性を含むコマンドを実行する場合、前記コマンドによって行われた前記修正が、ステップb)の結果とは関わりなく承認される、請求項4に記載の方法。
【請求項11】
ステップb)の後で、かつ、前記修正が承認される時に、
d)前記カードによる承認の後に前記端末装置がアクションを実行するステップと、さらに
e)前記アクションが前記端末装置によって適正に実行された時に、読取りによる後続のアクセスに適した前記カード内に実証情報が記録されるステップと、を実行するための準備がさらになされる、請求項1または2に記載の方法。
【請求項12】
ステップb)の後に前記カードによって受け取られるあらゆる前記コマンドは、前記カード内に実証情報を記録するための命令として解釈される、請求項11に記載の方法。
【請求項13】
後続のステップb)による完了を伴わないステップa)における少なくとも1個の前記修正の実行後に、前記カードを再初期化する場合、以降の全ての操作に対してステップa)で実行された全てのコマンドが有効化されないように、実行された全ての修正を破棄する予備ステップを準備する、請求項1に記載の方法。

【公開番号】特開2011−70692(P2011−70692A)
【公開日】平成23年4月7日(2011.4.7)
【国際特許分類】
【出願番号】特願2010−244609(P2010−244609)
【出願日】平成22年10月29日(2010.10.29)
【分割の表示】特願2000−543936(P2000−543936)の分割
【原出願日】平成11年4月9日(1999.4.9)
【出願人】(505424413)
【Fターム(参考)】