(57)【要約】  本発明は、データを保証するためのシステム及び方法に関する。本発明のシステムは、モノトニックカウンターと、演算エンティティと、物理的データ媒体と、認証キーとを具備してなり、前記物理的データ媒体は、１つ又は複数の保証されたデータブロック（ＤＢｋ１，ＤＢｋ２，ＤＢｋ３，ＤＢｋ４）と、第1マスターブロック（ＭＢｋ１）と、第1マスターブロックの複製を形成している第２マスターブロックとを備え、第1マスターブロック（ＭＢｋ１）は、モノトニックカウンターから回復された最後の値（Ｖｌａｓｔ）と、前記媒体上に書込まれた最後のデータブロック（ＤＢｋ）の識別子（ＩＤｌａｓｔ）と、書込まれた１つ又は複数のデータブロックの信頼性を保証する第1認証コード（Ａｕｔｈ＿Ａ）と、中立値に固定されている前記データが書込まれた最後のデータブロックから計算された第２認証コード（Ａｕｔｈ＿Ｂ）と、第1マスターブロック（ＭＢｋ１）の信頼性を保証する第３の認証コード（Ａｕｔｈ＿Ｃ）とを具備することを特徴とする。より詳細には、本発明は、再生に対して、及び、実行するシステムにおける突然のサービス妨害に対して、データ保証する。
2010505169.tif 000002
【特許請求の範囲】
【請求項１】
データ（ＤＢｋ）を保証するためのシステムであって、
モノトニックカウンター（１１）と、
演算エンティティ（１２）と、
物理的データ媒体（１４）と、
認証キー（１５）とを具備してなり、
前記物理的データ媒体（１４）は、１つ又は複数の保証されたデータブロックと、
第1マスターブロック（ＭＢｋ１）と、
前記第1マスターブロック（ＭＢｋ１）の複製を形成している第２マスターブロック（ＭＢｋ２）とを備え、
前記第1マスターブロック（ＭＢｋ１）は、モノトニックカウンター（１１）から回復された最後の値（Ｖｌａｓｔ）と、前記媒体（１４）上に書込まれた最後のデータブロック（ＤＢｋ）の識別子（ＩＤｌａｓｔ）と、書込まれた１つ又は複数のデータブロックの信頼性を保証する第1認証コード（Ａｕｔｈ＿Ａ）と、中立値に固定されている前記データが書込まれた最後のデータブロックから計算された第２認証コード（Ａｕｔｈ＿Ｂ）と、前記第1マスターブロック（ＭＢｋ１）の信頼性を保証する第３の認証コード（Ａｕｔｈ＿Ｃ）とを具備することを特徴とするシステム（１０）。
【請求項２】
データブロック（ＤＢｋ１，ＤＢｋ２，ＤＢｋ３，ＤＢｋ４）のサイズは、設定可能があることを特徴とする請求項１に記載のシステム（１０）。
【請求項３】
前記第１認証コード（Ａｕｔｈ＿Ａ）はさらに、１つまたは複数の書込まれたデータブロックの整合性を保証し、かつ、第３認証コード（Ａｕｔｈ＿Ｃ）はさらに、マスターブロックの整合性を保証することを特徴とする請求項１又は２に記載のシステム（１０）。
【請求項４】
前記第２認証コード（Ａｕｔｈ＿Ｂ）は、書込まれた最後のデータブロックと、中立値で固定されているこの最後のブロック内のデータと、保存されている他のデータブロック内のデータとから計算されることを特徴とする請求項１，２又は３の何れか一項に記載のシステム（１０）。
【請求項５】
前記認証キー（１５）は、第１マスターブロック（ＭＢｋ１）及び第２マスターブロック（ＭＢｋ２）内に含まれることを特徴とする請求項１〜４の何れか一項に記載のシステム（１０）。
【請求項６】
システムキー（１３）をさらに含み、かつ、認証キー（１５）は前記システムキー（１３）によって暗号化されることを特徴とする請求項５に記載のシステム（１０）。
【請求項７】
前記データブロック（ＤＢｋ１，ＤＢｋ２，ＤＢｋ３，ＤＢｋ４）は、暗号化キーによって暗号化されることを特徴とする請求項１〜６の何れか一項に記載のシステム（１０）。
【請求項８】
前記暗号化キーは、システムキー（１３）によって暗号化されることを特徴とする請求項７に記載のシステム（１０）。
【請求項９】
データ保証するための方法であって、
モノトニックカウンター（１１）と、演算エンティティ（１２）と、物理的データ媒体（１４）と、認証キー（１５）とを提供するステップと、書込みステップとを具備し、前記書込みステップは、
前記媒体（１４）に、１つ又は複数のデータブロック（ＤＢｋ１，ＤＢｋ２，ＤＢｋ３，ＤＢｋ４）と、モノトニックカウンター（１１）から回復された最後の値（Ｖｌａｓｔ）を含む第1マスターブロック（ＭＢｋ１）と、前記媒体（１４）上に書込まれた最後のデータブロック（ＤＢｋ）の識別子（ＩＤｌａｓｔ）と、書込まれた１つ又は複数のデータブロックの信頼性を保証する第1認証コード（Ａｕｔｈ＿Ａ）と、中立値に固定されている前記データが書込まれた最後のデータブロックから計算された第２認証コード（Ａｕｔｈ＿Ｂ）と、第1マスターブロックの信頼性及び第1マスターブロック（ＭＢｋ１）の複製を形成する第２マスターブロック（ＭＢｋ２）の信頼性を保証する第３の認証コード（Ａｕｔｈ＿Ｃ）とを書込むことを特徴とする方法。
【請求項１０】
起動時に、システム（１０）のコヒーレンスが検証されることを特徴とする請求項９に記載の方法。
【請求項１１】
システム（１０）のコヒーレンスを検証するために、第１マスターブロック（ＭＢｋ１）のフォーマットの合法性が検証され、
前記第１マスターブロック（ＭＢｋ１）が非合法である場合、第２マスターブロック（ＭＢｋ２）の合法性が検証され、
第２マスターブロック（ＭＢｋ２）のフォーマットが合法である場合、第１マスターブロック（ＭＢｋ１）は第２マスターブロック（ＭＢｋ２）によって置換され、第２マスターブロック（ＭＢｋ２）のフォーマットが非合法である場合、システムは永久に破壊されているとみなされることを特徴とする請求項１０に記載の方法。
【請求項１２】
システム（１０）のコヒーレンスを検証するために、第３認証コード（Ａｕｔｈ＿Ｃ）が検証され、
前記第３認証コード（Ａｕｔｈ＿Ｃ）の検証が成功した場合、第１認証コード（Ａｕｔｈ＿Ａ）が検証され、
第３認証コード（Ａｕｔｈ＿Ｃ）の検証が失敗である場合、マスターブロック（ＭＢｋ１）の回復のための処理が開始されるとともに、もし第１認証コード（Ａｕｔｈ＿Ａ）の検証が失敗であるならば、データ回復処理が開始されることを特徴とする請求項１０又は１１に記載の方法。
【請求項１３】
新しいデータを書込むために、マスターブロック（ＭＢｋ１）のフォーマットの合法性が検証され、第３認証コード（Ａｕｔｈ＿Ｃ）が検証されることを特徴とする請求項９〜１２の何れか一項に記載の方法。
【請求項１４】
新しいデータを書込むために、新しい第１マスターブロック（ＭＢｋ１´）が生成され、モノトニックカウンター（１１）がインクリメントされ、前記新しいマスターブロック（ＭＢｋ１´）が書込まれ、新しい第マスターブロック（ＭＢｋ２´）が書込まれ、新しいデータが書込まれることを特徴とする請求項９〜１３の何れか一項に記載の方法。
【請求項１５】
新しい第１マスターブロック（ＭＢｋ１´）を生成するために、最後のデータブロックの識別子が更新され、モノトニックカウンター（１１）の現在値が回復され、このカウンターの現在値（ＶＣ）に１を足した値が新しい第１マスターブロック（ＭＢｋ１´）に記述され、認証コードは構成された新しい第１マスターブロック（ＭＢｋ１´）から計算されることを特徴とする請求項１４に記載の方法。
【請求項１６】
データの読出しのために、第１マスターブロック（ＭＢｋ１）の合法性が検証され、第３認証コード（Ａｕｔｈ＿Ｃ）が検証されることを特徴とする請求項９〜１５の何れか一項に記載の方法。
【請求項１７】
データ回復ステップを含み、前記データ回復ステップは、システム（１０）が再起動されることなく自動的に実行されることを特徴とする請求項９〜１６の何れか一項に記載の方法。
【請求項１８】
データ回復のために、予め特定された中立値を、書込まれた最後のデータに設定することによって認証コードが計算され、
もし、この計算結果が第２認証コード（Ａｕｔｈ＿Ｂ）に等しいならば、中立値が設定され、
第２認証コード（Ａｕｔｈ＿Ｂ）は、第１認証コード（Ａｕｔｈ＿Ａ）に複写され、
第３認証コード（Ａｕｔｈ＿Ｃ）は、モノトニックカウンターの現在値の１を足した値を用いて計算され、
モノトニックカウンターがインクリメントされるとともに、マスターブロックが複写されることを特徴とする請求項１７に記載の方法。
【請求項１９】
マスターブロックの自動回復のためのステップを含むことを特徴とする請求項９〜１８の何れか一項に記載の方法。
【請求項２０】
マスターブロックの回復のために、モノトニックカウンターの現在値が回復され、
もし、モノトニックカウンター値が、マスターブロックはこの値に１を足した値に等しいことを示すならば、モノトニックカウンター値は現在値に１を足した値に等しいと仮定して、第３認証コード（Ａｕｔｈ＿Ｃ）は検証されることを特徴とする請求項１９に記載の方法。
【請求項２１】
検証が成功して完了する場合、モノトニックカウンター値はインクリメントされ、一方、この検証が失敗である場合、第２マスターブロック（ＭＢｋ２）の認証コード（Ａｕｔｈ＿Ｃ）は検証されることを特徴とする請求項２０に記載の方法。
【請求項２２】
以下の連続するステップ、すなわち、
モノトニックカウンターの現在値に１を足した値を用いてマスターブロックを計算及び書込むステップと、
モノトニックカウンターの連続値をインクリメントするステップと、
第２マスターブロック（ＭＢｋ２）を書込むステップと、
最後のデータブロックを書込むステップと、
を具備することを特徴とする請求項９〜２１の何れか一項に記載の方法。
【請求項２３】
演算エンティティ（１２）はデータブロックのＭＡＣ計算を実行し、前記データブロックは暗号化可能であることを特徴とする請求項９〜２２の何れか一項に記載の方法。
【請求項２４】
演算エンティティ（１２）は、ランダムアクセスメモリ内のデータ配列上で行なわれた計算結果を保存し、これらの計算結果を、第１認証コード（Ａｕｔｈ＿Ａ）及び第２認証コード（Ａｕｔｈ＿Ｂ）のＭＡＣと、マスターブロック内に記述される配列サイズを計算するために用いることを特徴とする請求項９〜２３の何れか一項に記載の方法。
【請求項２５】
一方では再生に対して、他方では突然のサービス妨害に対してデータを保証するための、請求項１〜８の何れか一項に記載のシステムの使用、及び／又は、請求項９〜２４の何れか一項に記載の方法の使用。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理的媒体上に記憶されたデータを保証するためのシステム及び方法に関する。より詳細には、再生に対してデータを保証する一方、他方では、特に突然のサービス妨害によって生じた損傷又は変更に対してデータを保証するようなシステム及び方法に関する。
【背景技術】
【０００２】
データ管理システムの以前の内容を非合法的にコピーすることによって、データに不正にアクセスする再生がよくあった。例えば、時間ｔ０において、システムＳ０はファイルＦを読み出す権利を持ち、ｔ０の後の時間ｔにおいて、これらの権利はＳに相当する前記システムの内容を消費すると仮定すると、時間ｔにおいて有効として認識されたＳ０を含むシステムを得るために、システムＳにおけるシステムＳ０の内容をコピーすることによって、再生は時間ｔにおいてファイルＦを読出すための不正なアクセスを許可する。
【０００３】
慣習的に、従来技術のシステムにおけるデータは、各セッションで変更するランダムなイベント、タイムスタンプ、又はモノトニックカウンターに送信することによって、再生から保護される。
【０００４】
突然のサービス妨害は、例えば前記データが読出されるとき又は書込まれるときに、物理的媒体に含まれたデータを損傷する可能性がある。こうした突然のサービス妨害は一般に、主に停電の結果又は不注意な再起動の結果、急に停止したデータ管理システムによって引き起こされる。書込まれた又は読出されたデータの損傷は、さらにまた、犯罪者がデータ管理システムにおける読出し又は書込み行為を意図的に変更するとき、攻撃作用によって引き起こされる。あるいはその他にも、偶発的誤りが生じた場合、特に、ハードディスクの再生ヘッドに損傷を与えたり、又はそれを駆動するメカニズムに損傷を与える。
【０００５】
慣習的に、従来技術のシステムにおけるデータは、前記データをバックアップし、かつ、バックアップされたデータを回復させることを可能とすることによって、突然のサービス妨害から保護される。例えば、データ媒体がハードディスクであるとき、このディスクは、１つ又はそれ以上の追加ディスクを使用しているＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）に搭載されている。ＲＡＩＤ１におけるディスクの配置が特に挙げられる。
【０００６】
しかしながら、突然のサービス妨害によって引き起こされた損傷に対して、一方ではデータを回復させるとともに、他方では前記データを再生から保護することを組み合わせることは容易なことではない。実際、データ回復に関しては、損傷を受けたデータを取り戻すことが望まれるのに対して、再生を防ぐには、目的が前記データのいかなる検索をも防止することである。データを含むパーティションに対するバックアップシステムを、モノトニック（ｍｏｎｏｔｏｎｉｃ）カウンターを含む、再生に対する前記パーティションの保護に組合せることは、それゆえ両立しないようにみえる。反対の状況において、保存された旧いパーティションの回復は、再生させない（ａｎｔｉ‐ｐｌａｙｂａｃｋ）の保護システムと矛盾する。なぜならば、それはモノトニックカウンターの優先順位の値を使用するからである。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記で述べた先行技術を考慮すると、本発明が解決を提供する問題は、一方では再生に対して、他方では特に持続するサービス中断によるデータ変更に対して、データを保証するシステム及び方法の実現である。
【課題を解決するための手段】
【０００８】
前述のこの問題に対する発明によって提案された解決の第1目的は、データを保証するためのシステムであって、
モノトニックカウンターと、
演算エンティティと、
物理的データ媒体と、
認証キーとを具備してなり、
前記物理的データ媒体は、１つ又は複数の保証されたデータブロックと、
第1マスターブロックと、
第1マスターブロックの複製を形成している第２マスターブロックとを備え、
前記第1マスターブロックは、モノトニックカウンターから回復された最後の値と、前記媒体上に書込まれた最後のデータブロックの識別子と、書込まれた１つ又は複数のデータブロックの信頼性を保証する第1認証コードと、中立値に固定されている前記データが書込まれた最後のデータブロックから計算された第２認証コードと、第1マスターブロックの信頼性を保証する第３の認証コードとを具備することを特徴とする。
【０００９】
第２目的は、データを保証する方法であって、
モノトニックカウンターと、演算エンティティと、物理的データ媒体と、認証キーとを提供するステップと、
書込みステップとを具備し、前記書込みステップは、
前記データ媒体に、１つ又は複数のデータブロックと、モノトニックカウンターから回復された最後の値を含む第1マスターブロックと、前記媒体上に書込まれた最後のデータブロックの識別子と、書込まれた１つ又は複数のデータブロックの信頼性を保証する第1認証コードと、中立値に固定されている前記データが書込まれた最後のデータブロックから計算された第２認証コードと、第1マスターブロックの信頼性及び第１マスターブロックの複製を形成する第２マスターの信頼性を保証する第３の認証コードとを書込むことを特徴とする。
【００１０】
本発明は、以下の非限定的記載及び関係する添付の図面を読むことによってよく理解される。
【図面の簡単な説明】
【００１１】
【図１Ａ】本発明によるシステムの種々の構成を示す概略図である。
【図１Ｂ】物理的媒体上に記録されたデータブロックのセットと、前記データに関連づけた２つのマスターブロックの概略図であり、それらは本発明によって保証されることができることを示す図である。
【図２】本発明によるシステムが起動されるとき、前記システムのコヒーレンスの検証を導く異なるステップを示す図である。
【図３】本発明によるシステムの物理的媒体上に新しいデータを書込むことを導く種々のステップを示す図である。
【図４Ａ】本発明によるマスターブロック認証コードの識別子を導くステップの概略図である。
【図４Ｂ】本発明によるマスターブロック認証コードの計算を導くステップの概略図である。
【図５】本発明によるデータ媒体上に書込まれたデータの読出しを導く種々のステップを示す図である。
【図６】本発明によるデータ回復処理における種々のステップを示す図である。
【図７】本発明によるマスターブロック回復システムにおける種々のステップを示す図である。
【発明を実施するための形態】
【００１２】
本発明において、データがサードパーティーによって非合法的に変更又は置換されてはいないと保証することが許可されると、いずれのデータも信頼できるとみなされる。データは、より詳細には、ＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）として知られた暗号化データを与える暗号化アルゴリズムによって認証される。このようなアルゴリズムは秘密キーを使用するとともに、保護のためにデータで動作する。それは適切な秘密キーを提供することによって、検証することができるだけである。それは一般に、データの由来及び整合性を保証する短い認証コードを生成する。データ及びコードに対する単一の循環が変化（ａｌｔｅｒｎａｔｉｏｎ）する。
【００１３】
本発明は、データを保証するためのシステム１０に関する。一例として、前記システムは携帯電話型の装置に組み込まれたシステムであり、より詳細には、キーパッドを嵌め込んだケーシング、スクリーン、マイクロフォン、拡声器、電子カード、データ送信及び受信モジュール、加入者識別モジュール（ＳＩＭ）、及び電力を供給するバッテリーを具備している。電子カードは少なくとも１つのマイクロコントローラ、ＲＡＭメモリ、フラッシュメモリ、及びバス・システムを具備している。電話動作は、オペレーティング・システムと、例えば前記電話のメモリ内にインストールされた一連のアプリケーションとのセットによって管理される。
【００１４】
図１Ａに示すように、本発明のシステムは、モノトニックカウンター１１、演算エンティティ（ｅｎｔｉｔｙ）１２、システムキー１３、及び物理的データ媒体１４を具備している。
【００１５】
前記システム１０は、詳細には、パーティション管理システム又はファイル管理システムである。
【００１６】
前記モノトニックカウンター１１は、単一のユニットによってインクリメントすることができるだけのカウンターである。このカウンターの現在値ＶＣは回復することができる。しかしながら、この現在値の回復はカウンター１１をインクリメントしないことに留意される。カウンター１１はこのように、その現在値の回復のために、第１インクリメント命令及び第１命令とは異なる第２命令に対して応答することができる。モノトニックカウンター１１の現在値は、本発明の一つの好ましい実施形態よれば、このカウンターに保存・暗号化される。この場合、この値は正規に認証されたシステムエンティティによって回復することができるだけである。
【００１７】
前記演算エンティティ１２は、物理的エンティティ又は論理エンティティである。物理的エンティティが含まれるとき、これは例えば、暗号化プロセッサのような計算アプリケーションに専用可能なマイクロプロセッサ又はマイクロコントローラである。論理エンティティが含まれるとき、これは例えば、一般的なプロセッサ上で計算させることが可能なソフトウェアの一部である。より詳細には、これは、特にＭＡＣ又は本発明による、要求される検証だけでなく他の暗号化及び復号化を演算するエンティティ１２である。このエンティティは、ランダムアクセスメモリリソースのような、図示されていないシステムリソースを使用することができる。本発明の好ましい実施形態によれば、演算エンティティ１２は、１つ又はそれ以上のデータブロック配列上のＭＡＣを計算する。それは、これらの計算結果をランダムアクセスメモリ内に保存する。前記認証コードＡｕｔｈ＿Ａ及びＡｕｔｈ＿Ｂは、これらの結果のＭＡＣと一致する。より正確には、それは第２データブロック配列のＭＡＣと連結された（全配列が考慮に入れられるまで）第１データブロック配列のＭＡＣセットのＭＡＣである。演算エンティティ１２は、それゆえ、認証コードＡｕｔｈ＿Ａ及びＡｕｔｈ＿ＢのＭＡＣを計算する。配列のサイズは、上記の結果を使用してマスターブロックに記録される。
【００１８】
前記システムキー１３は、システム１０によって認可されたエンティティによってアクセスすることができるだけの暗号化キーである。一般に、それはこのシステムからアクセスすることができるだけである。
【００１９】
前記物理的データ媒体１４は、計算データの永続的な保存のための媒体である。それは、例えば、ハードディスク、フラッシュメモリ、又はディスケット型の取外し可能型ディスクであってもよい。
【００２０】
図１Ｂに示したように、媒体１４は、１つ又はそれ以上の連続データブロックＤＢｋ及び２つの連続マスターブロックと、第１ＭＢｋ及び第２ＭＢｋマスターブロックと、前記データブロックに関係づけられ、かつ、そこに隣接する前記マスターブロックと、マスターブロックＭＢｋ１の複製であるマスターブロックＭＢｋ２とを具備する。換言すれば、マスターブロックＭＢｋ１及びＭＢｋ２は通常等しい。しかしながら、詳細には、例えばサービス妨害による書込みエラーがある場合、でなければ前記ブロックの１つに攻撃があった場合、それらは異なるかもしれない。
【００２１】
前記データブロックＤＢｋのサイズは設定可能がある。それは、例えば２５６バイトである。本発明によって保証されたデータを含むデータブロック数はいくつであってもよい。図１Ｂの例において、４つのブロックＤＢｋ１，ＤＢｋ２，ＤＢｋ３，ＤＢｋ４が図示されている。
【００２２】
前記マスターブロックＭＢｋ１及びＭＢｋ２は、データフィールドを具備する。前記データフィールドには、本発明の開示の後半に記載されているデータフィールドを具備するのに十分な最小サイズである。実際、この最小サイズは約１００バイトである。
【００２３】
前記各マスターブロックＭＢｋは、以下のフィールドを具備する。すなわち、
モノトニックカウンター１１の最後に回復された（又は返された）値Ｖｌａｓｔと、
データ媒体１４上に書込まれた最後のデータブロックＤＢｋの識別子ＩＤｌａｓｔと、
システムキー１３によって暗号化された認証キー１５と、
データブロックＤＢｋ１〜ＤＢｋ４の信頼性及び整合性を保証する認証コードＡｕｔｈ＿Ａと、
中立値に固定されたデータを持つ書込まれた最後のデータブロック、例えばゼロのシークエンスに等しい前記中立値から計算されるとともに、そのまま保存されている他のデータブロックから計算された認証コードＡｕｔｈ＿Ｂと、
前記マスターブロックＭＢｋの信頼性及び整合性を保証する認証コードＡｕｔｈ＿Ｃと
を含んでいる。より正確に換言すれば、前記マスターブロックＭＢｋの信頼性及び整合性は、フィールドＡｕｔｈ＿Ｃを仕様して中立値に固定されている。実際、Ａｕｔｈ＿Ｃは、一般にゼロのシークエンスである中立値に固定されたフィールドＡｕｔｈ＿Ｃを持つマスターブロックＭＢｋから計算される。Ａｕｔｈ＿Ｃが計算されるとき、その値はマスターブロックＭＢｋに入力される。さらに、各マスターブロックＭＢｋは、例えばそのサイズ又はそのセクター数のような他の情報を含んでいる。前記情報は、図１Ｂに図示されていない。
【００２４】
本発明によれば、前記データブロックＤＢｋは暗号化キーによって暗号化され得る。演算エンティティ１２によって生成された、いくつかのＭＡＣ計算値は、暗号化データブロック上に組み込まれる。暗号化キーは、マスターブロック又は直接システム自身に保存され得る。あるいは、それはシステムキーによって暗号化され得る。この場合、システムキーだけがシステム上にある。
【００２５】
前記データブロックＤＢｋは変更されず、かつ、マスターブロックＭＢｋは前記データブロックＤＢｋ間にインターリーブされない。それゆえ、データブロックＤＢｋのデータは直接読出すことができる。
【００２６】
本発明のシステムのコヒーレンスは、システム起動時に検証される。図２に示すように、本発明のシステムのコヒーレンスを検証するために、第１マスターブロックＭＢｋ１のフォーマットは、まず第１に検証される。このフォーマットの検証は、例えば、識別子ＩＤｌａｓｔの合法性、モノトニックカウンター１１の最後の返された値Ｖｌａｓｔ、認証コードＡｕｔｈ＿Ａ，Ａｕｔｈ＿Ｂ，Ａｕｔｈ＿Ｃの存在、及びシステムキー１３によって暗号化された認証キー１５の存在を検証するステップを具備する。第１マスターブロックＭＢｋ１のフォーマットが非合法である場合、第２マスターブロックＭＢｋ２のフォーマットが検証される。第２マスターブロックＭＢｋ２のフォーマットが非合法である場合、システムは永久に破壊され、データは保証されず、前記システムは例えば攻撃を保持していたとみなされる。そして、システムユーザーに対して警告が現れ、データアクセスは一般に禁止される。第２マスターブロックＭＢｋ２のフォーマットが合法である場合、第１マスターブロックＭＢｋ１は、第２マスターブロックＭＢｋ２によって置換される。
【００２７】
前記第１マスターブロックＭＢｋ１のフォーマットが合法であるとき、又は、第１マスターブロックＭＢｋ１のフォーマットが非合法であるが、第２マスターブロックＭＢｋ２のフォーマットが合法であるとき、及び、前述したようにブロックＭＢｋ１がブロックＭＢｋ２によって置換されたとき、本発明の方法の後続ステップに従って認証コードＣは検証される。この検証は、図４Ａに示したように、それによって提供される暗号化関数ＭＡＣに要求しながら、一方ではシステムキー１３を用いて復号化された認証キー１５を関係させ、他方ではモノトニックカウンター値のフィールドがこのカウンター１１に含まれた現在値ＶＣによって更新されたマスターブロックＭＢｋ１の内容を関係させる。そこで得られた結果は、マスターブロックＭＢｋ１の認証コードと比較される。もし、この結果がブロックＭＢｋ１の認証コードＡｕｔｈ＿Ｃと同一ならば、ブロックＭＢｋ１は信頼できる。逆の場合、信頼できるとはみなされず、マスターブロック回復処理が開始される（図２を参照）。
【００２８】
もし、マスターブロックＭＢｋ１が信頼できるならば、本発明の方法における別なステップに従って、認証コードＡｕｔｈ＿Ａは検証される。この検証はまた、システム内のデータブロックＤＢｋに含まれた全データ上で計算されるＭＡＣを、可能であれば暗号化された状態で呼出す。好ましくは、このＭＡＣは、最初にデータブロック配列に関する限りにおいて、次にデータ配列から計算された認証コードに関する限りにおいて計算され得る。コードＡｕｔｈ＿Ａの検証が正しい場合、システムはコヒーレントであるとみなされる。逆の場合、データ回復処理が開始される。
【００２９】
システムのコヒーレンスが検証された後、システム内に新しいデータを書込む点において、本発明の処理は以下のように続く。
【００３０】
まず第1に、図３に示したように、ブロックＭＢｋ１及び適切ならばブロックＭＢｋ２のフォーマットは、システムのコヒーレンスを検証するために、前述の方法によって検証される。まさに前述のように、もしこれらの検証が失敗であるならば、システムは永久に破壊される。
【００３１】
ついで、次のステップにおいてコードＡｕｔｈ＿Ｃは検証される。まさに前述のように、もしこのコードが検証されないとき、マスターブロック回復処理は着手される。逆に、もしこのコードが検証さるとき、ブロックＭＢｋ１は信頼でき、コードＡｕｔｈ＿Ａが検証されることなく、新しいマスターブロックＭＢｋ１´が生成される。実際、システムの実行中、サードパーティーの犯罪者は、このシステムと相互作用することはできない。
【００３２】
新しいマスターブロックＭＢｋ１´を生成するために、以下のステップが実行される。まず第１に、書出された最後のデータブロックの識別子が更新される。そして、モノトニックカウンター１１の現在値ＶＣは回復され、値ＶＣ＋１が新しいマスターブロックＭＢｋ１´に書込まれる。それから、マスターブロックにあるかもしれないその他の情報は更新される。新しいマスターブロックＭＢｋ１´において、例えばゼロのシークエンスのような予め特定された値は、認証コードＡｕｔｈ＿Ａ及びＡｕｔｈ＿Ｂを提供する点においてそれから計算され、マスターブロックＭＢｋ１´が更新される。最後に、新しい認証コードＡｕｔｈ＿Ｃが計算され、対応する値がそれからマスターブロックＭＢＫ１´に記述される。この計算のステップは、図４Ｂにおいて概略的に図示されている。それは、そのように構成された新しいマスターブロックに基づいて作成される。すなわち、より詳細に換言すれば、新しいデータ識別子と、ＶＣ＋１に等しいモノトニックカウンター値と、新しいデータの認証コードＡ及びＢとに基づいて作成される。
【００３３】
新しいマスターブロックＭＢｋ１´が一度生成され、かつ、一度生成されるだけで、モノトニックカウンター値はＶＣ＋１にインクリメントされ、それから、マスターブロックＭＢｋ１´はシステムに書込まれ、マスターブロックＭＢｋ１の複写である第２マスターブロックＭＢｋ２´もまた書込まれ、最後に、新しいデータが書込まれる。
【００３４】
前記データを読出すために、図５に示したように、処理は以下のようになる。まさに前述のように、マスターブロックＭＢｋ１のフォーマットは検証される。もし、それが非合法であるならば、マスターブロックＭＢｋ２のフォーマットが検証される。もし、この第２検証が失敗であるならば、システムは永久に破壊されているとみなされる。
【００３５】
逆に、マスターブロックＭＢｋ１及びＭＢｋ２のうち１つのフォーマットの検証が成功して完了する場合は、処理における次のステップが取られる。まず第１に、コードＡｕｔｈ＿Ｃが、モノトニックカウンター１１の現在値ＶＣを用いて検証される。マスターブロックＭＢｋ１が信頼できない場合、マスターブロック回復処理が着手される。逆の場合、コードＡｕｔｈ＿Ａは検証される。もし、この検証が失敗であるならば、データ回復処理が着手される。逆の場合、供給されたデータ識別子に対応するデータは読出される。任意ではあるが、もし暗号化の実行が開始されるときデータは読出され、それから復号され、復号化されたデータが返される。
【００３６】
データ回復システムを図６に示す。この処理は、システムを再起動する必要なく、自動的に実行される。それは、以下のステップを具備する。まず第１に、書込まれた最後のデータに、例えばゼロのシークエンスのような予め特定された中立値を設定することによって、認証コードは計算される。この書込まれた最後のデータは、マスターブロックに記述された識別子によって識別される。
【００３７】
もし、前述の計算結果が認証コードＡｕｔｈ＿Ｂに等しいならば、処理は以下のようになる。まず第１に、データは実際、中立値が設定される。それから、認証コードＡｕｔｈ＿Ｂは、コードＡｕｔｈ＿Ａに複写される。このように変更されたコードＡｕｔｈ＿Ｃは、モノトニックカウンターＶＣ＋１の現在値を用いて再び計算され、前記計算は、予め中立値で設定されたマスターブロックの認証コードの位置を持つマスターブロックＭＢｋ上で行なわれる。最後に、モノトニックカウンターはインクリメントされ、マスターブロックは複写される。
【００３８】
もし、前述の計算結果が認証コードＡｕｔｈ＿Ｂに等しくないならば、データシステムは永久に破壊されているとみなされる。
【００３９】
マスターブロックのために自動回復処理を図７に示す。それは、コードＡｕｔｈ＿Ｃが、マスターブロックＭＢｋは信頼できないと示すときに実行を開始される。この処理は、以下の方法によって実行される。まず第１に、モノトニックカウンターＶＣの現在値が回復される。もし、マスターブロック内に示されたモノトニックカウンター値が値ＶＣ＋１に等しいならば、モノトニックカウンター値が現在値ＶＣ＋１に等しいと仮定し、認証コードＣは検証される。
【００４０】
もし、この検証が成功して完了するならば、モノトニックカウンター１１の値ＶＣはインクリメントされる。実際、モノトニックカウンター１１がインクリメントされる直前に、急な書込み妨害があるときにこの状況が起こる。
【００４１】
逆に、もし、この検証が成功して完了しないとき、第２ブロックＭＢｋ２のコードＡｕｔｈ＿Ｃは検証される。この最後の検証が成功して完了する場合、ブロックＭＢｋ１はブロックＭＢｋ２に置換される。逆の場合、システムは破壊され回復不可能になる。
【００４２】
一般に、前記データブロックがマスターブロックに含まれた暗号化キーによって暗号化されている場合、データブロックの書込みは前記データの暗号化ステップに先行されることに留意すべきである。読出しのために、前記ブロックも予め復号化される。認証コードＡｕｔｈ＿Ａは暗号化されたデータから特定されるため、データ回復システムもわずかに変更される。暗号化された中立値を含む最後のブロックから特定される認証コードＡｕｔｈ＿Ａについても同じである。
【００４３】
以下に実行例を説明するように、本発明は再生に対して耐性がある。
【００４４】
システムは、２つの信頼できるマスターブロックＭＢｋ１及びＭＢｋ２と、内容データＤＢｋとを具備し、ＶＣに等しいモノトニックカウンター現在値を持つと仮定する。その後、システムは変更され、信頼できるマスターブロックＭＢｋ１´及びＭＢｋ２´と、内容データＤＢｋ´と、ＶＣ＋１に等しいモノトニックカウンター現在値とを持つ。
【００４５】
もし攻撃者はデータＤＢｋ´をデータＤＢｋで置換し、マスターブロックＭＢｋ１´及びＭＢｋ２´をそれぞれブロックＭＢｋ１及びＭＢｋ２で置換するならば、ブロックＭＢｋ１及びＭＢｋ２の認証コードＣの検証は失敗となる。なぜならば、モノトニックカウンターの現在値はＶＣ＋１であるのに対し、これらのブロックは値ＶＣを用いて計算されたものだからである。
【００４６】
もし攻撃者はデータＤＢｋ´をデータＤＢｋで置換するだけで、マスターブロックＭＢｋ１´及びＭＢｋ２´を保存するならば、ブロックＭＢｋ１´は信頼できるが、このデータの認証コードＡｕｔｈ＿Ａは信頼できない。なぜならば、このブロックは今、データＤＢｋに関連づけられているのに対して、認証コードＡｕｔｈ＿ＡはデータＤＢｋ´に関するものだからである。もし、攻撃者によってなされた変更が、書込まれた最後のデータブロックに関するものであるならば、システム回復が起こり、最後のデータブロックは中立値で設定される。
【００４７】
最後に、もし攻撃者がデータＤＢｋ´を、例えばＤＢｋなどのデータで置換するとともに、モノトニックカウンター値ＶｌａｓｔがＶＣに等しくＶＣ＋１ではないことを示す場合を除いて、マスターブロックＭＢｋ１´と同一なマスターブロックＤＢｋ１´を構築するならば、マスターブロックＭＢｋ１´の認証コードは有効でなない。なぜならば、モノトニックカウンターの現在値はＶＣ＋１だからである。
【００４８】
同様に、以下で実行例を説明するように、本発明のシステムは、特にシステム再開又は電源供給切断のような突然のサービス妨害のために生じる変更に対して耐性がある。
【００４９】
本発明のシステムは、２つのマスターブロックＭＢｋ１及びＭＢｋ２と、データＤＢｋと、ＶＣに等しいモノトニックカウンター値を含むと仮定する。
【００５０】
もし、新しいデータＤＢｋ´を書込むことが望まれるが、マスターブロックが書込まれた後に電力切断が生じるとき、システムはマスターブロックＭＢｋ１´と、マスターブロックＭＢｋ２´と、データＤＢｋと、値ＶＣであるモノトニックカウンターとを含むような状態になる。現在値がＶＣであるのに対して、カウンター値ＶＣ＋１を用いて計算されるため、マスターブロックＭＢｋ１´の認証コードＡｕｔｈ＿Ｃの検証は失敗となる。マスターブロック回復処理はそれから実行を開始する。ＭＢｋ１´に記述されたカウンター値は、実際には現在値＋１である。それから、カウンターは稼動している現在値＋１に等しいと仮定し、マスターブロックＭＢｋ１´は検証される。モノトニックカウンターはそれからインクリメントされ、システムは再びコヒーレントになる。
【００５１】
もし、まさに前述ように、新しいデータＤＢｋ´を書込むことが望まれ、モノトニックカウンターがインクリメントされた直後に電力切断が生じるとき、システムはマスターブロックＭＢｋ１´，ＭＢｋ２´，ＤＢｋと、ＶＣ＋１に等しいカウンター値とを得る。カウンター値はＶＣ＋１であるため、ＭＢｋ１´の認証コードＣの検証は成功する。しかしながら、ＤＢｋではなくデータＤＢｋ´が期待されるので、認証コードＡの検証は失敗となる。データ回復処理は、それから実行を開始する。認証コードＢは、書込まれた最後のデータブロックのために、中立値を用いて検証される。これは、ＤＢｋに応答して現れる。それゆえ、検証は成功する。書込まれた最後のブロック内の中立値を用い、かつ、マスターブロックを修正することによって、システムは最後に正常な状態にリセットされる。システムは、この例においてもまた、再びコヒーレントとなる。
【００５２】
もし、第２マスターブロックが書込まれた後に電源供給切断がシステムに生じるとき、その処理は前述の状況と同じであると留意すべきである。
【００５３】
最後に、もし最後のデータブロックが書込まれた後に電源供給切断がシステムに生じるとき、システムはコヒーレントな状態になり更正をする必要はないと留意すべきである。
【００５４】
全てが決定され実行されるとき、以下の３つの仕組みを用いることによって、書込まれた最後のデータは本発明によって回復することができる。
【００５５】
第１に、書き込みは厳密には以下の４つの連続したステップに従う。すなわち、モノトニックカウンター＋１の現在値を用いるマスターブロックの計算及び書込みと、モノトニックカウンター値のインクリメントと、第２マスターブロックの書込みと、最後のデータブロックの書込みとである。
【００５６】
第２に、マスターブロックは、認証コードＡｕｔｈ＿Ｂと、書込まれた最後のデータブロックの識別子とを含む。
【００５７】
第３に、マスターブロックが書込まれるちょうどその時にエラーが生じる場合、マスターブロックは複写されたマスターブロック自身である。
【００５８】
本発明のシステムは、上記の実施形態で述べたように、特に突然のサービス妨害の結果で生じる最後のエラーだけを回復するのに用いることができる。しかしながら、当業者は、その他のマスターブロックを追加することによって、それ以前に生じたエラーを回復し得る。さらにまた、本発明のシステムは、上記の実施形態で述べたように、複数の異なるデータブロックに影響する複数のエラーを回復するのに用いることはできない。しかしながら、ここでもまた、当業者は、追加の認証コードＡｕｔｈ＿Ｂフィールドをマスターブロックに追加することによって、複数のデータブロック内のエラーに影響されたデータの回復に進むことができる。
【００５９】
最後に、本発明のシステムは、望ましくない変更に対する耐性と、望ましくない再生に対する耐性と、損傷の際の自動回復との３つの特性を合わせ持つ。
【符号の説明】
【００６０】
１０・・・システム
１１・・・モノトニックカウンター
１２・・・演算エンティティ
１３・・・システムキー
１４・・・物理的データ媒体
１５・・・認証キー
【図１Ａ】
2010505169.tif 000003
【図１Ｂ】
2010505169.tif 000004
【図２】
2010505169.tif 000005
【図３】
2010505169.tif 000006
【図４Ａ】
2010505169.tif 000007
【図４Ｂ】
2010505169.tif 000008
【図５】
2010505169.tif 000009
【図６】
2010505169.tif 000010
【図７】
2010505169.tif 000011
【国際調査報告】
2010505169.tif 000012
2010505169.tif 000013
2010505169.tif 000014
2010505169.tif 000015