(57)【要約】例えば、スマート・カードのようなデータ・プロセッサは、ファイルを管理するためのコントローラを具備し、複数のレコードが逐次記憶されることができる。コントローラは、レコードがファイルに正しく書き込まれたか調べる。コントローラは、正しく書き込まれた最後のレコードに続くレコードを、ユーザ関連ソフトウェアが読み取るのを防止する。
2004505358.tif 000002
【特許請求の範囲】
【請求項１】
ファイルを管理するためのコントローラを具備するデータ・プロセッサであって、複数のレコードが逐次記憶されることができ、前記コントローラは、レコードが正しく前記ファイルに書き込まれたかを調べるように編成されており、前記コントローラは、正しく書き込まれた最後のレコードに続くレコードを、ユーザ関連ソフトウェアが読み取ることを防止することを特徴とするデータ・プロセッサ。
【請求項２】
新しいレコードが前記ファイルに書き込まれる必要がある時、前記コントローラは、正しく書き込まれた最後のレコードに続くレコードを、新しいレコードと入れ替えることを特徴とする、請求項１に記載のデータ・プロセッサ。
【請求項３】
ファイルを管理する方法であって、複数のレコードが逐次記憶されることができ：
‐　レコードが前記ファイルに正しく書き込まれたかが調べられる検査ステップと；および
‐　正しく書き込まれた最後のレコードに続くレコードが読み取られることを防ぐアクセス・コントロール・ステップと
を具備する方法。
【請求項４】
ファイルを管理するためのコンピュータ・プログラム製品であって、複数のレコードが逐次記憶されることができ、データ・プロセッサにロードされる時に、前記データ・プロセッサに実行させる一組の命令と：
‐　前記データ・プロセッサが、レコードは前記ファイルに正しく書き込まれたかを調べる検査ステップと；および
‐　正しく書き込まれた最後のレコードに続くレコードが読み取られることを前記データ・プロセッサが防止するアクセス・コントロール・ステップと
を具備するコンピュータ・プログラム製品。
【請求項５】
書き換え可能メモリに安全に書き込むための方法であって：
ａ）ループに編成されたｍのレコードを有する循環ファイルを具備するメモリを定義するステップであって、ｍは１からｎ＋１までの整数であり、各レコードは、少なくとも１のランク、悪い状態あるいは良い状態を示すための１の保全性フラグ、および１のデータ値を具備し、ランク１乃至ｎのレコードはユーザがアクセス可能である一方で、ランクｎ＋１のレコード、保全性フラグ、ならびに各レコードのランクは、ユーザから隠されていることを特徴とするステップと；
ｂ）そのように定義されたメモリに書き込まれるべきデータがある場合に、前記循環ファイルを選択するステップと；
ｃ）最高ランクｍ＝ｎ＋１の現在のレコードを取り出し、その保全性フラグの状態を調べるステップと；
ｄ）前記保全性フラグが悪い場合、ランクｍ＝ｎ＋１の現在のレコードに書き込まれるべきデータを書き込み、および成功した場合には、ランク２乃至ｎ＋１のレコードがアクセスできるままであるように隠される現在のレコードのランクｍ＝ｎ＋１＋１＝１を１単位増やし、一方で、失敗した場合には、隠されたままである、現在のレコードのランクｍ＝ｎ＋１を変えずに、ランク１乃至ｎの他のレコードはユーザがアクセス可能なままであるステップと；および
ｅ）前記保全性フラグが良い場合には、次のランクｍ＝ｎ＋１＋１＝１のレコードに書き込まれるべきデータを書き込み、および成功した場合には、ランク３乃至ｎ＋２のレコードがアクセス可能なままになるように隠される、レコードのランクｍ＝１＋１＝２を１単位増やす一方で、失敗した場合には、ランク２乃至ｎ＋１のレコードは、ユーザがアクセス可能なままであるように、隠されたままである現在のレコードのランクｍ＝ｎ＋２を変更しないステップと
を具備することを特徴とする方法。
【請求項６】
ファイル・ヘッダは、第一のレコードがメモリ・ページの境界で開始するように、冗長領域を補足されることを特徴とするデータ・プロセッサ。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は、書き換え可能メモリにおけるデータの安全な書き込みに関する。
【０００２】
それは一般的に、マイクロ・エレクトロニクスに応用でき、より特定的には、電子メモリ・カード、特にワイヤド・ロジックおよび／またはマイクロプロセッサ・カードと同様に、コンタクトおよび／またはコンタクトレス・カードの分野に応用可能である。
【０００３】
（背景技術）
実際には、カードで使用される電子メモリは、ＥＰＲＯＭフラッシュ、またはＥＥＰＲＯＭメモリ（“Ｅｌｅｃｔｒｉｃａｌｌｙ Ｅｒａｓａｂｌｅ Ｐｒｏｇｒａｍｍａｂｌｅ Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ”）であり、すなわち非揮発性かつ電気的に消去可能であり、それゆえに書き換え可能なメモリである。
【０００４】
一般的に、メモリ・カード、特にコンタクトレス・カードとのトランザクションの確立は、大変迅速でなければならない。さらに、そのようなトラザクションは、例えば、書き込み操作が実行されている時の偶発的な電力供給損失時に発生しやすい、データ破壊として知られる、可能性のあるデータ損失に対して保護されなければならない。
【０００５】
書き換えメモリにおけるデータの書き込みのための、すでに公知である方法は、データ破壊に備えて、ある程度のセキュリティを供給する。しかしながら、そのような方法は一般的に、いくつかのメモリ書き込み操作を必要とし、それは書き込み時間を２倍または３倍に増やし、かつそれに従ってメモリ破壊の危険性を増す。
【０００６】
（発明の開示）
本発明の目的は、データが、相対的に迅速に書き込まれるようにすることである。
【０００７】
その目的のために、本発明は、請求項１に定義されたデータ・プロセッサを供給する。
【０００８】
本発明は、単一の操作による新しいデータの書き込みを可能にしつつ、読み取られることができるデータの保全性は保証されたままである。
【０００９】
本発明の他の特徴および効果は、好ましい実施例の以下の詳細な説明および添付された図面から明らかになるであろう。
【００１０】
（発明を実施するための最良の形態）
図１を参照すると、プログラムされたマイクロ・プロセッサでもよいコントローラ（図示されていない）によって制御される、ＥＥＰＲＯＭまたはフラッシュＥＰＲＯＭ電気消去可能、非揮発性メモリ、Ｍが記載されている。
【００１１】
実際には、メモリＭと、およびメモリ・コントローラを形成するマイクロプロセッサとは、半導体チップとしても知られている、同じ電子コンポーネント上で運ばれる。
【００１２】
通常は、メモリＭは、前記メモリ・コントローラによって制御される論理エンティティへと構築される情報を記憶するためのものである。実際には、メモリＭは、例えば情報を読み取るために１バイト・エレメントに分割され、および前記情報を消去するためにページへと分割され、前記書き込み操作も、ページごとに実行されうる。
【００１３】
メモリ・コントローラは、適切なプログラムで、１またはそれ以上のデータ・タイプの前記論理エンティティをページへと編成、すなわち同期させるように適応している。そのような同期は、例えば出願ＥＰ　０　７６７　７４２号に記述されている。
【００１４】
例示のために、図１に記載のメモリＭは、最新技術のものを示しており、１からｎの範囲にあるｎの整数を伴うループへと編成されたｎのレコードを具備する循環ファイルのヘッダＨ１に関して同期している。
【００１５】
循環ファイルは、メモリ・コントローラによって排他的に使用されるデータと、およびループへと論理的に編成された一組のレコードとを具備するヘッダＨ１とともに形成されている。レコードは固定長である。
【００１６】
保護された書き込みのために、すなわちデータ書き込み操作の保全性が保証されるとき、書き込み操作はそのたびに少なくとも３の書き込み操作によって実行され、第一の操作はバックアップ・メモリ領域への書き込みのため、１の操作はデータ領域への書き込みのため、および１の操作はそれを消去するためのバックアップ・メモリ領域への書き込みのためである。
【００１７】
この保護された書き込み方法のための最新技術は、特に、カードが故意に、または故意ではなく引き出される時のデータ損失を回避するために使用される。しかしながら、この方法は書き込み時間を増やし、かつそれに応じてメモリ破壊の危険性を増す。
【００１８】
本発明はこの欠点を改善する。１の実施例は、単一の書き込み動作で安全な方法でレコードを変更するための単一の書き込み動作を通して、図１を参照して記述されているような循環ファイルを書き込みつつ、引き出し（カード除去）に対する保護を保持するための技術に基づいている。特に、最新技術は、以下で詳細に記述されているように、循環ファイル内に隠れているデータおよびレコードの使用を通して向上される。
【００１９】
図２を参照すると、循環ファイルが記載されている。それはループに編成されたｎ＋１のレコードを具備し、ｎは整数である。各レコードは、ランク表示、保全性チェック・データおよび少なくとも１のデータ値を具備する。保全性チェック・データは、例えば、チェックサム・リダンダンシー・コード（ｃｈｅｃｋｓｕｍ ｒｅｄｕｎｄａｎｃｙ ｃｏｄｅ）（ＣＲＣ）の形式でもよい。ＣＲＣは、レコードに含まれるデータ値に基づいて算出される。
【００２０】
レコードｎは、メモリＭに正しく書き込まれた最後のレコードであると仮定する。その場合、レコード１乃至ｎは、ユーザがアクセスすることができる。レコードｎ＋１は、ユーザから隠されている。ランク表示および各レコードの保全性チェック・データも、ユーザから隠されており、よってメモリ・コントローラのみがアクセスすることができる。メモリ・コントローラは、そこに適切なオペレーティング・システム（ＯＳ）が記憶されているメモリを有するマイクロプロセッサによって構成されている。ユーザから隠されているということは、ユーザ関連のソフトウェア（ＯＳの下で動作しているアプリケーション）はアクセスできないということを意味する。
【００２１】
すなわち、図１を参照して記述された従来技術のメモリに、ユーザから隠されているレコードが追加されており、より詳細に後述されるように、安全な書き込み方法が確立されている。ユーザから隠されているレコードは、正しく書き込まれた最後のレコードに続くレコードである。
【００２２】
図４は、安全な書き込み方法を示す。以下の説明において、レコードｎは、正しく書き込まれた最後のレコードである。従って、レコードｎ＋１は、いわゆる隠しレコードである。
【００２３】
データを書き換え可能メモリに書き込むための安全な方法は、以下のステップを具備する。
【００２４】
予備的ステップにおいて、図示されていないが、ループに編成されたｎ＋１のレコードを有する循環ファイルを形成するメモリＭが供給される。
【００２５】
ステップ２においては、そのように定義されたメモリへと書き込まれるべきデータが存在する場合、メモリ・コントローラは、循環ファイルを選択する。
【００２６】
ステップ４において、メモリ・コントローラは、最高ランクの現在のレコードを探索する。これは、メモリをスキャンすることによって実行される。上述のように、各レコードは、ランク表示を具備する。レコードのランク表示は、最も最近書き込まれたレコードのランク表示に１を足したものに等しい。書き込まれる第一のレコードは、例えば、ランク表示１を有する。書き込まれる第二のレコードは、ランク表示２を有する。書き込まれるＫ番目のレコードは、Ｋ　ｍｏｄｕｌｏ　ｎ＋１に等しいランク表示を有する。
【００２７】
メモリ・コントローラは、言わば、ファイルに含まれる各レコードのランク表示を問い合わせる。従って、それは最高ランク表示を有するレコードを見つけるだろう。このレコードは、メモリに最も最近書き込まれたレコードである。
【００２８】
ステップ６において、メモリ・コントローラは、レコードに具備されるデータ値に基づいて計算を達成する。この計算は、ＣＲＣの形式である、保全性チェック・データを確立するために使用される計算と同じである。
【００２９】
ステップ８において、メモリ・コントローラは、ステップ６で達成された計算の結果を、ＣＲＣと比較する。従って、保全性フラグが得られる。この保全性フラグは、データ値が破壊されているかどうかを示す。
【００３０】
データ値が破壊されている場合（ステップ１０）、メモリ・コントローラは、レコードｎ＋１である隠しレコードに書き込まれるべきデータを書き込む。
【００３１】
メモリ・コントローラは、この書き込み操作の保全性を調べる（ステップ１２）。すなわち、ステップ６で説明されたものと類似の操作が達成される。
【００３２】
書き込みが成功した場合（ステップ１２）、メモリ・コントローラは、隠しレコードのランクを１単位ずつ増やす。隠しレコードは、（ｎ＋１＋１）ｍｏｄｕｌｏ（ｎ＋１）＝１になる。レコード２乃至ｎ＋１はアクセスすることができる。
【００３３】
書き込みが成功しなかった場合（ステップ１６）、隠しレコードのランクは、変わらないまま：ｎ＋１であるので、このレコードｎ＋１は隠されたままである。
【００３４】
もし、ステップ８において、データが破壊されていない（保全性フラグが有効である）ことが確立される場合、ステップ１８が達成される。ステップ１８において、メモリ・コントローラは、図４に記載された書き込み操作の開始時に、隠しレコードに続くレコードにデータを書き込む。隠しレコードはｎ＋１であり、そのためメモリ・コントローラはレコード（ｎ＋１＋１）ｍｏｄ（ｎ＋１）＝１を書き込む。すなわち、メモリ・コントローラは、書き込み操作の開始時のレコード１を、書き込まれるべきデータと入れ替える。
【００３５】
書き込み操作の保全性が調べられる（ステップ２０）。
【００３６】
書き込みが成功した場合（ステップ２２）、レコード１は書き込みが成功した最後のレコードであるので、隠しレコードはレコード２である。レコード３乃至ｎ＋２は、ユーザがアクセス可能である。
【００３７】
書き込みが失敗してうまくいかなかった場合（ステップ２４）、レコードｎ＋１は書き込みが成功した最後のレコードであるので、隠しレコードはレコード１である。レコードは循環様式で編成されるので、レコード１はレコードｎ＋１に続く。
【００３８】
ユーザがｎのレコードを有する必要性がさらに満たされることが指摘されるべきである。大変良く知られている手段に従って、一定のレコードがユーザに隠されたままであるべきか否かによって、実際のレコード・ナンバリングと、１対１の関係においてユーザによって見られるナンバリングとが一致するので、ユーザはナンバリングにおけるいかなる変化にも気づかないであろう。
【００３９】
実際に、特に電子財布アプリケーションの場合、ステップ８に従った保全性フラグの状態のチェックは、すぐ前のレコード（ｎ）等を、次の有効なレコードに到達するまで調べることにある。外部的に供給されるデータとともに使用されるべき有効レコードにおけるデータ（例えば、電子財布アプリケーションの場合、前記財布の残高）は、レコードｎ＋１へ更新されるべき新しい残高を計算するために回復される。
【００４０】
実際には、データを書き込むこと（ステップ１２および２０）は、本方法に従って選択されるランクを有するレコードに、受信され、かつ以前にワーク・メモリ領域にセーブされたデータを書き込み、およびレコード・ランクを上げることにある。
【００４１】
要約すると、カード・カスタマイザが、例えばｎのレコードのファイルを作成すると、本発明に従って、オペレーティング・システムはその結果ｎ＋１のレコードを生成する。
【００４２】
ファイル・ヘッダＨ１は、効果的に、図２に記載のように冗長領域ＺＰで補足され、それは第一のレコードがメモリ・ページＭの境界で開始するように、ヘッダＨ１の後に配置されている。このように、レコードを更新するときは、１の書き込み操作が必要になる。
【００４３】
図３を参照すると、レコードの構造は、ｘが整数である、データに関して割り当てられたｘバイトを具備するかもしれず、２バイトは保全性チェック・データ、例えばＣＲＣに割り当てられ、および１バイトはレコード・ランク表示に割り当てられる。
【００４４】
効果的に、保全性フラグおよびレコード・ランクに割り当てられた３の追加バイトはユーザから隠されており、すなわち、メモリ・コントローラのみがアクセス可能である。
【００４５】
好ましくは、書き込み方法は、１メモリ・ページのサイズの係数より小さいか、またはそれに等しいｘ＋３バイトのサイズを有するレコードのみを受け入れるよう強制される。これにより、書き換え可能メモリの１ページにおけるすべての消去および書き込み操作を実行することが可能になる。
【００４６】
すなわち、カスタマイザがｘバイトのレコード長を生成したい時、オペレーティング・システムは、ｘ＋３バイトのレコードを作成する。３の追加バイトは、ＣＲＣおよびレコード・ランク表示のためである。
【００４７】
上述の例において、ユーザもカスタマイザである。変更に従って、ユーザがカード・カスタマイザでない時、ユーザはレコードの内容を変更できるにすぎず、何も作成することはできない。
【００４８】
カード・カスタマイザによる使用のために、ファイルを作成しつつ、ページ境界条件が確かに満たされるように、循環ファイル作成コマンド、“ｃｒｅａｔｅ　ｆｉｌｅ”を作成することが可能である。そのような条件下では、従って、各レコードのサイズは、ページ・サイズの係数に等しい。
【００４９】
コマンド“ｃｒｅａｔｅ　ｆｉｌｅ”は、循環ファイルに関する１６，３２または６４実バイトに対応する（この例においては、メモリ・ページ・サイズは６４バイトであると仮定される）、１３，２９、または６１見かけバイト（ａｐｐａｒｅｎｔ ｂｙｔｅｓ）の長さのレコードのみを受け入れるためだけに、オペレーティング・システムによって作られることができることが注目されるべきである。メモリ・ページのサイズが３２バイトである場合、値６１は無効である。
【００５０】
実際には、ユーザが１３バイトより小さい長さのレコードを作成する時、前記レコードは１６バイトの長さにカスタマイズされる。同様に、長さが２９バイトより小さいレコードに関しては、レコード長は３２に設定される。同じことが、６４バイトに設定されている６１よりも小さい長さにも適用される。実際には、この設定すなわち“パッディング（ｐａｄｄｉｎｇ）”操作は、ユーザから隠されている。これらのカスタマイゼーションによって、ＥＥＰＲＯＭメモリにおけるすべての書き込み操作は、確かに１ページ内で実行される。
【００５１】
本発明に従って、ファイル書き込みアクセス時間は、コンタクトレス・カード等の手段によって、迅速なトンラザクションが実行される時には、最適化されると同時に、書き込みセキュリティを保持する。さらに、メモリ・バックアップ領域は循環であるので、本発明の別の効果は、ＥＰＲＯＭメモリのより小さい摩耗にある。
【００５２】
前述の記述は、本発明の以下の特徴を示す。データ・プロセッサは、ファイルを管理するためのコントローラを具備し、複数のレコードが逐次記憶されることができる。コントローラは、レコードが正しくファイルに書き込まれたかを調べる。コントローラは、ユーザ関連のソフトウェアが、正しく書き込まれた最後のレコードに続くレコードを読み取らないようにする。
【００５３】
ユーザ関連ソフトウェアによってアクセスすることができなかったレコードは、“隠しレコード”である。隠しレコードは、言わば、ファイル全体を動く。その動きは、成功または不成功のいずれかの書き込みの関数である。データが書き込まれる必要があるときには、それは隠しレコードに書き込まれる。書き込みが成功した場合は、隠しレコードが１単位動く。書き込みが不成功であった場合、隠しレコードは動かない。
【図面の簡単な説明】
【図１】
図１は、従来技術の循環ファイルの図である。
【図２】
図２は、本発明に従った循環ファイルの構造図である。
【図３】
図３は、本発明に従ったレコードの構造図である。
【図４】
図４は、本発明に従った書き換えメモリにおけるデータの安全な書き込みのための方法のステップを示すフローチャートである。
【図１】
2004505358.tif 000003
【図２】
2004505358.tif 000004
【図３】
2004505358.tif 000005
【図４】
2004505358.tif 000006
【国際公開パンフレット】
2004505358.tif 000007
2004505358.tif 000008
2004505358.tif 000009
2004505358.tif 000010
2004505358.tif 000011
2004505358.tif 000012
2004505358.tif 000013
2004505358.tif 000014
2004505358.tif 000015
2004505358.tif 000016
2004505358.tif 000017
2004505358.tif 000018
2004505358.tif 000019
2004505358.tif 000020
2004505358.tif 000021
2004505358.tif 000022
2004505358.tif 000023
2004505358.tif 000024
【国際調査報告】
2004505358.tif 000025
2004505358.tif 000026
2004505358.tif 000027