(57)【要約】本発明の幾つかの例証的な実施形態は、例えば記憶されたデータの無許可の開示を防ぐこと及び／又は記憶されたデータの完全性を保証することによるデータを安全に記憶する方法、デバイス、及び／又はシステムを含む。安全にデータを記憶することができる装置は、本発明の幾つかの例証的な実施形態によれば、セキュア制御構成を含むことができ、セキュア制御構成は、鍵を安全に記憶するためのセキュアメモリ、鍵を使用して記憶されるデータレコードを暗号化することによって暗号化レコードを生成するための暗号化モジュール、及び鍵に基づいて暗号化レコードの完全性を認証するための認証情報を生成するためのコントローラを含むことができる。本装置はまた、暗号化レコード及び認証情報を記憶するためのストレージを含むことができる。他の実施形態が記載され請求される。【選択図】図１
2008520030.tif 000002
【特許請求の範囲】
【請求項１】
データを安全に記憶する装置であって、
鍵を安全に記憶するためのセキュアメモリと、前記鍵を使用して記憶されることになるデータレコードを暗号化することによって暗号化レコードを生成するための暗号化モジュールと、前記鍵に基づいて前記暗号化レコードの完全性を認証するための認証情報を生成するためのコントローラとを含むセキュア制御構成と、
前記暗号化レコードと前記認証情報とを記憶するためのストレージ部と、
を備える装置。
【請求項２】
前記コントローラは、前記レコードのグループに対応する複数のレコード認証コードに基づいてレコードのグループの完全性を認証するためのグループ認証コードを生成することができることを特徴とする請求項１に記載の装置。
【請求項３】
前記コントローラは、前記複数のグループに対応する複数のグループ認証コードに基づいてレコードの複数のグループの完全性を認証するためのグローバル認証コードを生成することができることを特徴とする請求項２に記載の装置。
【請求項４】
前記暗号化モジュールは記憶レコードを解読することができ、前記コントローラは、前記記憶レコードの完全性の認証、前記記憶レコードを含むレコードのグループの完全性の認証、前記レコードのグループを含むグループのセットの認証、及び前記記憶レコードが最新であるかどうかの判定の少なくとも１つに基づいて、前記解読されたレコードに選択的にアクセスすることができることを特徴とする請求項１に記載の装置。
【請求項５】
前記コントローラは、前記記憶レコードの完全性、前記レコードのグループの完全性、及び前記グループのセットの完全性の少なくとも１つが認証されなかった場合に、前記解読されたレコードへのアクセスを拒否することができることを特徴とする請求項４に記載の装置。
【請求項６】
前記コントローラは、前記記憶レコードが最新でないと判定された場合に、前記解読されたレコードへのアクセスを拒否することができることを特徴とする請求項４に記載の装置。
【請求項７】
前記記憶レコードの完全性が認証された場合、前記記憶レコードが最新であると判定された場合、及び前記レコードのグループの完全性と前記グループのセットの完全性の少なくとも１つが認証された場合に、前記コントローラは、前記解読されたレコードへアクセスすることができることを特徴とする請求項４に記載の装置。
【請求項８】
前記コントローラは、前記鍵に基づいて記憶レコードに対応するレコード認証コードを求め、前記求められたレコード認証コードを前記記憶レコードに対応する記憶レコード認証コードと比較することによって、前記記憶レコードの完全性を認証することができることを特徴とする請求項１に記載の装置。
【請求項９】
前記コントローラは、前記鍵に基づいたレコードの記憶グループに対応するグループ認証コードと、前記グループのレコードに対応する複数の記憶レコード認証コードとを求め、前記求められたグループ認証コードを前記グループに対応する記憶グループ認証コードと比較することによって、前記グループの完全性を認証することができることを特徴とする請求項１に記載の装置。
【請求項１０】
前記コントローラは、前記鍵に基づいた記憶レコードのグループのセットのグローバル認証コードと、前記グループのセットに対応する複数の記憶グループ認証コードとを求め、前記求められたグローバル認証コードを前記グループのセットに対応する記憶グローバル認証コードと比較することによって、前記グループのセットの完全性を認証することができることを特徴とする請求項１に記載の装置。
【請求項１１】
前記コントローラは、前記ストレージ部内に記憶された１つ又はそれ以上のレコードのバージョンを示すバージョン情報を前記セキュアメモリ内に安全に記憶できることを特徴とする請求項１に記載の装置。
【請求項１２】
前記コントローラは、前記１つ又はそれ以上の記憶レコードを含むグループのセットに対応するグローバル認証コードを前記セキュアメモリ内に安全に記憶できることを特徴とする請求項１１に記載の装置。
【請求項１３】
前記ストレージ部は、カウンタを記憶することができ、前記コントローラは、レコードを記憶するときに前記カウンタを更新し、更に前記メモリ内に前記カウンタの値を安全に記憶することができることを特徴とする請求項１１に記載の装置。
【請求項１４】
前記コントローラは、前記安全に記憶されたバージョン情報を前記ストレージ内に記憶された対応するバージョン情報と比較することによって、前記１つ又はそれ以上の記憶レコードが最新であるかどうかを判定できることを特徴とする請求項１１に記載の装置。
【請求項１５】
前記セキュア制御構成は、前記制御構成のコンテンツの無許可の開示を防ぎ、更に前記制御構成のコンテンツへの無許可のアクセスを防ぐように適合されていることを特徴とする請求項１に記載の装置。
【請求項１６】
前記ストレージの容量は、前記セキュアメモリの容量に比べて実質的に大きいことを特徴とする請求項１に記載の装置。
【請求項１７】
前記ストレージの容量は、前記セキュアメモリの容量よりも少なくとも１００倍大きいことを特徴とする請求項１６に記載の装置。
【請求項１８】
前記セキュアメモリの容量は、１０キロバイトを超えないことを特徴とする請求項１に記載の装置。
【請求項１９】
前記セキュアメモリは、電子的消去可能プログラム可能読出し専用メモリ、ワンタイムプログラマブルメモリ、及び１つ又はそれ以上のヒューズによって実装されるメモリからなるグループから選択されたメモリを含むことを特徴とする請求項１に記載の装置。
【請求項２０】
前記ストレージは、フラッシュメモリを含むことを特徴とする請求項１に記載の装置。
【請求項２１】
データを安全に記憶する方法であって、
第１メモリ内に鍵を安全に記憶する段階と、
前記鍵を使用して記憶されることになるデータレコードを暗号化することによって暗号化レコードを生成する段階と、
前記鍵に基づいて前記暗号化レコードの完全性を認証するための認証情報を生成する段階と、
前記暗号化レコード及び前記認証情報を前記第１メモリにリンク可能な第２メモリ内に記憶する段階と、
を含む方法。
【請求項２２】
前記認証情報を生成する段階は、前記レコードのグループに対応する複数のレコード認証コードに基づいてレコードのグループの完全性を認証するためのグループ認証コードを生成する段階を含む請求項２１に記載の方法。
【請求項２３】
前記認証情報を生成する段階は、前記複数のグループに対応する複数のグループ認証コードに基づいてレコードの複数のグループの完全性を認証するためのグローバル認証コードを生成する段階を含む請求項２２に記載の方法。
【請求項２４】
記憶レコードを解読する段階と、
前記記憶レコードの完全性の認証、前記記憶レコードを含むレコードのグループの完全性の認証、前記レコードのグループを含むグループのセットの認証、及び前記記憶レコードが最新であるかどうかの判定の少なくとも１つに基づいて、前記解読されたレコードに選択的にアクセスする段階と、
を含む請求項２１に記載の方法。
【請求項２５】
前記記憶レコードの完全性、前記レコードのグループの完全性、及び前記グループのセットの完全性の少なくとも１つが認証されなかった場合に、前記解読されたレコードへのアクセスを拒否する段階を含む請求項２４に記載の方法。
【請求項２６】
前記記憶レコードが最新でないと判定された場合に、前記解読されたレコードへのアクセスを拒否する段階を含む請求項２５に記載の方法。
【請求項２７】
前記記憶レコードの完全性が認証された場合、前記記憶レコードが最新であると判定された場合、及び前記レコードのグループの完全性と前記グループのセットの完全性の少なくとも１つが認証された場合に、前記解読されたレコードにアクセスする段階を含む請求項２５に記載の方法。
【請求項２８】
前記鍵に基づいて前記第２メモリ内に記憶されたレコードに対応するレコード認証コード求める段階と、
前記求められたレコード認証コードを前記記憶レコードに対応する記憶レコード認証コードと比較することによって、前記記憶レコードの完全性を認証する段階と、
を含む請求項２１に記載の方法。
【請求項２９】
前記鍵に基づいた前記第２メモリ内に記憶されたレコードのグループに対応するグループ認証コードと、前記グループのレコードに対応する複数の記憶レコード認証コードとを求める段階と、
前記求められたグループ認証コードを前記グループに対応する記憶グループ認証コードと比較することによって、前記グループの完全性を認証する段階と、
を含む請求項２１に記載の方法。
【請求項３０】
前記鍵に基づいた前記第２メモリ内に記憶されたレコードのグループのセットのグローバル認証コードと、前記グループのセットに対応する複数の記憶グループ認証コードとを求める段階と、
前記求められたグローバル認証コードを前記グループのセットに対応する記憶グローバル認証コードと比較することによって、前記グループのセットの完全性を認証する段階と、
を含む請求項２１に記載の方法。
【請求項３１】
前記第２メモリ内に記憶された１つ又はそれ以上のレコードのバージョンを示すバージョン情報を前記第１メモリ内に安全に記憶する段階を含む請求項２１に記載の方法。
【請求項３２】
前記バージョン情報を安全に記憶する段階は、前記１つ又はそれ以上の記憶レコードを含むグループのセットに対応するグローバル認証コードを安全に記憶する段階を含む請求項３１に記載の方法。
【請求項３３】
レコードを前記第２メモリ内に記憶するときにカウンタを更新する段階と、
前記カウンタの値を前記第１メモリ内に安全に記憶する段階と、
を含む請求項３１に記載の方法。
【請求項３４】
前記安全に記憶されたバージョン情報を前記１つ又はそれ以上の記憶レコードに関連する前記第２メモリ内に記憶された対応するバージョン情報と比較することによって、前記１つ又はそれ以上の記憶レコードが最新であるかどうかを判定する段階を含む請求項３１に記載の方法。
【請求項３５】
前記鍵を安全に記憶する段階は、前記鍵の無許可の開示を防ぐ段階と、前記鍵への無許可のアクセスを防ぐ段階とを含む請求項２１に記載の方法。
【請求項３６】
前記第２メモリの容量は、前記第１メモリの容量に比べて実質的に大きいことを特徴とする請求項２１に記載の方法。
【請求項３７】
前記第２メモリの容量は、前記第１メモリの容量よりも少なくとも１００倍大きいことを特徴とする請求項３６に記載の方法。
【請求項３８】
前記第１メモリの容量は、１０キロバイトを超えないことを特徴とする請求項２１に記載の方法。
【請求項３９】
前記第１メモリは、電子的消去可能プログラム可能読出し専用メモリ、ワンタイムプログラマブルメモリ、及び１つ又はそれ以上のヒューズによって実装されるメモリからなるグループから選択されたメモリを含むことを特徴とする請求項２１に記載の方法。
【請求項４０】
前記第２メモリは、フラッシュメモリを含むことを特徴とする請求項２１に記載の方法。
【請求項４１】
コンピューティングプラットフォームであって、
鍵を安全に記憶するためのメモリと、前記鍵を使用して記憶されることになるデータレコードを暗号化することによって暗号化レコードを生成するための暗号化モジュールと、前記鍵に基づいて前記暗号化レコードの完全性を認証するための認証情報を生成するためのコントローラとを含むセキュア制御構成と、
前記暗号化レコードと前記認証情報を記憶するためのストレージ部と、
を含むデータを安全に記憶するためのセキュアストレージ構成と、
前記セキュアストレージ構成から検索された１つ又はそれ以上の安全に記憶されたレコードを処理するためのプロセッサと、
を備えるコンピューティングプラットフォーム。
【請求項４２】
前記コントローラは、前記レコードのグループに対応する複数のレコード認証コードに基づいてレコードのグループの完全性を認証するためのグループ認証コードを生成することができることを特徴とする請求項４１に記載のコンピューティングプラットフォーム。
【請求項４３】
前記暗号化モジュールは記憶レコードを解読することができ、前記コントローラは、前記記憶レコードの完全性の認証、前記記憶レコードを含むレコードのグループの完全性の認証、前記レコードのグループを含むグループのセットの認証、及び前記記憶レコードが最新であるかどうかの判定の少なくとも１つに基づいて、前記解読されたレコードに選択的にアクセスすることができることを特徴とする請求項４１に記載のコンピューティングプラットフォーム。
【請求項４４】
前記コントローラは、前記鍵に基づいて記憶レコードに対応するレコード認証コードを求め、前記求められたレコード認証コードを前記記憶レコードに対応する記憶レコード認証コードと比較することによって、前記記憶レコードの完全性を認証することができることを特徴とする請求項４１に記載のコンピューティングプラットフォーム。
【請求項４５】
前記コントローラは、前記鍵に基づいたレコードの記憶グループに対応するグループ認証コードと、前記グループのレコードに対応する複数の記憶レコード認証コードとを求め、前記求められたグループ認証コードを前記グループに対応する記憶グループ認証コードと比較することによって、前記グループの完全性を認証することができることを特徴とする請求項４１に記載のコンピューティングプラットフォーム。
【請求項４６】
前記コントローラは、前記鍵に基づいた記憶レコードのグループのセットのグローバル認証コードと、前記グループのセットに対応する複数の記憶グループ認証コードとを求め、前記求められたグローバル認証コードを前記グループのセットに対応する記憶グローバル認証コードと比較することによって、前記グループのセットの完全性を認証することができることを特徴とする請求項４１に記載のコンピューティングプラットフォーム。
【請求項４７】
前記コントローラは、前記ストレージに記憶された１つ又はそれ以上のレコードのバージョンを示すバージョン情報を前記メモリ内に安全に記憶することができることを特徴とする請求項４１に記載のコンピューティングプラットフォーム。
【発明の詳細な説明】
【技術分野】
【０００１】
データの無許可の開示を防ぐための従来の方法は、データを暗号化するために種々の暗号化サイファ、例えば次世代標準暗号方式（ＡＥＳ）に従うサイファを実装することができる。暗号化されたデータは、秘密鍵を使用して許可されたユーザによって解読することができる。
【背景技術】
【０００２】
残念ながら、このような従来の方法は、データの無許可の操作に対する十分な保護及び／又は特定の状況におけるこのような操作を検出する能力を提供することはできない。例えば、暗号化されたデータは、暗号化されたデータの前のバージョンで例えば全体的に許可なく置換えられる可能性がある。許可されたユーザは、このような置換えを検出できず、気付かずにデータの前のバージョンを現在のバージョンとして扱う可能性がある。更に、このような方法では、秘密鍵は、例えば暗号化されたデータを記憶するために使用されるデバイス上など、内部的に記憶される可能性があり、或いはユーザが提供する場合もある。内部的に記憶されている場合、秘密鍵は、例えばリバースエンジニアリングによって許可なく暴かれる可能性がある。逆に、秘密鍵がユーザによって提供されることになる場合、保護メカニズムを使用するデバイスは、他のアプリケーションに関して制限された「トランスペアレンシー」を有する可能性があり、及び／又はデータの制限されたタイプだけを記憶することができる。例えばこのようなデバイスは、例えば、ユーザが例えば秘密鍵を使用して慎重にデータを変更することができるので、秘密鍵を有するユーザによって所有されていないデータを記憶するためには適用することができない。
【０００３】
安全にデータを記憶するための従来のデバイスは、記憶されたデータへのどのようなアクセスも禁止する「物理的」保護構造を含むことができる。しかしながら、このような保護構造は、比較的複雑で、及び／又は高価な場合があり、従って大量のデータに対するコスト効果のある保護を提供することはできない。
【発明の開示】
【０００４】
本発明の幾つかの例証的な実施形態は、例えば記憶されたデータの無許可の開示を防ぐこと及び／又は記憶されたデータの完全性を保証することによって、データを安全に記憶する方法、デバイス、及び／又はシステムを含む。
【０００５】
データを安全に記憶することができる装置は、本発明の幾つかの例証的な実施形態に従って、鍵を安全に記憶するためのセキュアメモリ、鍵を使用して記憶されるデータレコードを暗号化することによって暗号化レコードを生成するための暗号化モジュール、及び鍵に基づいて暗号化レコードの完全性を認証するための認証情報を生成するためのコントローラを含むことができるセキュア制御構成を含むことができる。本装置はまた、暗号化レコード及び認証情報を記憶するためのストレージモジュールを含むことができる。
【０００６】
本発明の幾つかの例証的な実施形態によれば、ストレージの容量は、セキュアメモリの容量に比べて実質的に大きくすることができる。例えば、ストレージの容量は、セキュアメモリの容量よりも少なくとも１００倍大きくすることができる。
【０００７】
本発明の幾つかの例証的な実施形態によれば、セキュアメモリの容量は、例えば１０キロバイトを超えないようにすることができる。
【０００８】
本発明の幾つかの例証的な実施形態によれば、セキュアメモリは、電子的消去可能プログラム可能読出し専用メモリ、ワンタイムプログラマブルメモリ、或いは１つ又はそれ以上のヒューズによって実装されるメモリとすることができ、或いはこれらを含むことができ、及び／又は、ストレージはフラッシュメモリとすることができる、或いはこれを含むことができる。
【０００９】
本発明の幾つかの例証的な実施形態によれば、コントローラは、鍵に基づいて１つ又はそれ以上のメッセージ認証コードを生成することによって認証情報を生成することができる。
【００１０】
本発明の幾つかの例証的な実施形態によれば、コントローラは、レコードのグループに対応する複数のレコード認証コードに基づいてレコードのグループの完全性を認証するためのグループ認証コードを生成することができる。
【００１１】
本発明の幾つかの例証的な実施形態によれば、コントローラは、複数のグループに対応する複数のグループ認証コードに基づいてレコードの複数のグループの完全性を認証するためのグローバル認証コードを生成することができる。本発明の他の例証的な実施形態では、グローバル認証コードを１つのグループに関係付けることができる。
【００１２】
本発明の幾つかの例証的な実施形態によれば、暗号化モジュールはまた、記憶レコードを解読することができる。コントローラは、記憶レコードの完全性の認証、記憶レコードを含むレコードのグループの完全性の認証、レコードのグループを含むグループのセットの認証、及び記憶レコードが最新であるかどうかの判定の少なくとも１つに基づいて、解読されたレコードに選択的にアクセスできる。コントローラは、例えば記憶レコード、レコードのグループの完全性、及び／又はグループのセットの完全性が認証されていない場合、及び／又は記憶レコードが最新でないと判定された場合に、解読されたレコードへのアクセスを拒否することができる。コントローラは、例えば記憶レコードの完全性が認証された場合、記憶レコードが最新であると判定された場合、及びレコードのグループの完全性とグループのセットの完全性の少なくとも１つが認証された場合に、解読されたレコードにアクセスできる。
【００１３】
本発明の幾つかの例証的な実施形態によれば、コントローラは、鍵に基づいた記憶レコードに対応するレコード認証コードと、記憶レコードに対応する記憶された初期化ベクトルとを求め、求められたレコード認証コードを記憶レコードに対応する記憶レコード認証コードと比較することによって記憶レコードの完全性を認証することができる。
【００１４】
本発明の幾つかの例証的な実施形態によれば、コントローラは、鍵に基づいた記憶レコードのグループに対応するグループ認証コードと、グループのレコードに対応する複数の記憶レコード認証コードとを求め、求められたグループ認証コードをグループに対応する記憶グループ認証コードと比較することによってグループの完全性を認証することができる。
【００１５】
本発明の幾つかの例証的な実施形態によれば、コントローラは、鍵に基づいた記憶レコードのグループのセットのグローバル認証コードと、グループのセットに対応する複数の記憶グループ認証コードとを求め、求められたグローバル認証コードをグループのセットに対応する記憶グローバル認証コードと比較することによってグループのセットの完全性を認証することができる。
【００１６】
本発明の幾つかの例証的な実施形態によれば、コントローラは、ストレージ内に記憶された１つ又はそれ以上のレコードのバージョンを示すバージョン情報をメモリ内に安全に記憶することができる。例えばコントローラは、１つ又はそれ以上の記憶レコードを含むグループのセットに対応するグローバル認証コードをメモリ内に安全に記憶することができる。別の実施例では、ストレージはカウンタを記憶することができ、コントローラは、レコードを記憶するときにカウンタを更新し、メモリ内にカウンタの値を安全に記憶することができる。コントローラは、例えば安全に記憶されたバージョン情報をストレージ内に記憶された対応するバージョン情報と比較することによって、１つ又はそれ以上の記憶レコードが最新であるかどうかを判定することができる。
【発明を実施するための最良の形態】
【００１７】
本発明とみなされる対象は、本明細書の最後の部分において特に指摘され明確に特許として請求される。しかしながら本発明は、オペレーションの編成及び方法の両方、並びにその目的、特徴、及び利点に関して、添付図面と共に読みながら以下の詳細な説明を参照することによってより理解することができる。
【００１８】
説明を簡単且つ明確にするために、図面に示される要素は必ずしも正確に又は縮尺通りには描かれていない点は理解されるであろう。例えば、要素の一部の寸法は、明確にするために他の要素に対して誇張されており、或いは幾つかの物理的構成要素が１つの機能ブロック又は要素に含まれている場合がある。更に、適切とみなされる場合には、参照数字は、対応する要素又は同様の要素を示すために図面全体を通して繰り返すことができる。更に、図面に示されるブロックの一部は単一の機能に結合してもよい。
【００１９】
以下の詳細な説明では、本発明を完全に理解するために多くの特定の詳細事項が記載されている。しかしながら、本発明がこれらの特定の詳細事項がなくとも実施することができる点は当業者であれば理解されるであろう。状況によっては、公知の方法、手順、構成要素、及び回路は、本発明を曖昧にしないように詳細には説明しない場合もある。
【００２０】
本明細書で使用される「記憶されたデータの無許可の開示を防ぐ」という用語は、例えば記憶されたデータへの完全なアクセス（例えば部分的又は完全な物理的及び／又は電子的アクセス）が得られた場合でも、記憶されたデータを許可なしには解釈することができないことを保証することを意味する点は理解されるであろう。本明細書で使用される「記憶されたデータの完全性を保証する」という用語は、記憶されたデータが部分的又は全体的に、例えば、許可なく及び／又は可能性が高いのは許可されたユーザなどによって検出できないようにして操作、変更、改竄、及び／又は他のデータとの置換えが行われていないことを保証することを意味する。
【００２１】
本明細書で使用される「安全にデータを記憶する」という用語は、記憶されたデータの無許可の開示を防ぐこと及び／又は記憶されたデータの完全性を保証することを意味する点が理解されるであろう。
【００２２】
本発明の幾つかの例証的な実施形態は、以下に説明されるように安全にデータを記憶するための方法、デバイス及び／又はシステムを含む。
【００２３】
本明細書の説明の一部は、例証的な目的において、データレコード（「レコード」）を安全に記憶することに関係することができる。しかしながら、本発明の実施形態は、この点に限定されず、例えばデータブロック、データ部分、データシーケンス、データフレーム、データフィールド、コンテンツ、アイテム、メッセージ、キー、コード、又は同様のものを安全に記憶することを含むことができる。
【００２４】
図１を参照すると、本発明の幾つかの例証的な実施形態によるコンピューティングプラットフォーム１００を概略的に例示している。
【００２５】
本発明はこの点において限定されないが、コンピューティングプラットフォーム１００はポータブルデバイスとすることができる。このようなポータブルデバイスの非限定的な実施例には、モバイル電話、ラップトップ及びノートブックコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、メモリカード、メモリユニット、及び同様のものが含まれる。或いは、コンピューティングプラットフォームは、例えばデスクトップコンピュータなどのポータブルでないデバイスであってもよい。
【００２６】
図１の例証的な実施形態によれば、コンピューティングプラットフォーム１００は、以下に説明されるようにセキュリティ保護可能なストレージデバイス１０２を含むことができる。プラットフォーム１００は更に、プロセッサ１０４、メモリ１０６、及び任意選択的に出力ユニット１０８、入力ユニット１１０、ネットワーク接続部１１２、及び／又は他の何れかの好適なハードウェア構成要素及び／又はソフトウェア構成要素を含むことができる。
【００２７】
本発明の幾つかの例証的な実施形態によれば、プロセッサ１０４は、中央処理ユニット（ＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、マイクロプロセッサ、ホストプロセッサ、複数のプロセッサ、コントローラ、チップ、マイクロチップ、或いは他の何れかの好適な汎用又は特定用途向けプロセッサ又はコントローラを含むことができる。入力ユニット１１０は、例えばキーボード、マウス、タッチパッド、又は他の好適なポインティングデバイス又は入力デバイスを含むことができる。出力ユニット１０８は、例えば陰極線管（ＣＲＴ）モニタ、液晶ディスプレイ（ＬＣＤ）モニタ、或いは他の好適なモニタ又はディスプレイユニットを含むことができる。メモリ１０６は、例えばランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤ−ＲＡＭ）、フラッシュメモリ、揮発性メモリ、不揮発性メモリ、キャッシュメモリ、バッファ、短期ストレージユニット、長期ストレージユニット、或いは他の好適なメモリユニット又はストレージユニットを含むことができる。ネットワーク接続部１１２は、通信ネットワーク、例えばローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、又はグローバル通信ネットワーク（例えばインターネット）と対話するように適合させることができる。幾つかの実施形態によれば、通信ネットワークは、例えば無線ＬＡＮ（ＷＬＡＮ）通信ネットワークなどの無線通信ネットワークを含むことができる。本発明の範囲はこの点において限定されないが、通信ネットワークは、例えば基地局、移動局、又はセルラーハンドセットであるプラットフォーム１００を備えたセルラー通信ネットワークを含むことができる。本発明の幾つかの実施形態によるセルラー通信ネットワークは、例えば周波数ドメインデュプレクシング（ＦＤＤ）、移動体通信用グローバルシステム（ＧＳＭ）、広帯域符号分割多元接続（ＷＣＤＭＡ）セルラー通信ネットワーク、及び同様のものなどの第３世代パートナーシッププロジェクト（３ＧＰＰ）とすることができる。
【００２８】
本発明はこの点において限定されないが、ストレージデバイス１０２は、例えばポータブルメモリカード、ディスク、チップ、及び／又は他の何れかのポータブルストレージデバイスであるポータブルストレージデバイスとすることができ、これらは、例えばコンピューティングプラットフォーム１００から着脱可能とすることができる。他の実施形態によれば、記憶装置１０２は、例えばコンピューティングプラットフォーム１００に一体的に接続されたメモリカード、ディスク、チップ、及び／又は他の何れかのストレージユニット又は要素である非ポータブルストレージデバイスとすることができる。
【００２９】
本発明の例証的な実施形態によれば、ストレージデバイス１０２は、例えば、以下に説明されるようにプロセッサ１０４、メモリ１０６、入力ユニット１１０、ネットワーク接続部１１２、及び／又はプラットフォーム１００及び／又はプラットフォーム１００に付随（例えば内部又は外部的に）する他の何れかの好適な構成要素から受け取った１つ又はそれ以上のレコードであるデータを安全に記憶するように適合されたセキュアストレージ構成１１４を含むことができる。
【００３０】
本発明の例証的な実施形態によれば、セキュアストレージ１１４は、ストレージモジュール１２０と保護制御構成１１８とを含むことができる。
【００３１】
本発明の例証的な実施形態によれば、制御構成１１８は、例えば当該技術分野において公知の何れかの好適な「物理」保護構造及び／又は他の何れかの好適な保護構成などの何れかの適切な保護メカニズムを含み、構成１１８のコンテンツのあらゆる部分の開示を保護し、構成１１８のコンテンツのあらゆる部分へのアクセスのあらゆる試みを防ぎ、部分的又は全体的に構成１１８のコンテンツの改竄又は変更のあらゆる試みを防ぎ、及び／又は構成１１８のオペレーションを妨げるあらゆる試みを防ぐことができる。
【００３２】
本発明の例証的な実施形態によれば、構成１１８は、以下に説明されるようにストレージモジュール１２０内に記憶されることになるレコードを受け取り、暗号化レコードをストレージモジュール１２０に提供することができる。構成１１８はまた、例えば以下に説明されるように、ストレージモジュール１２０から受け取った暗号化レコードを解読することができる。構成１１８はまた、例えばストレージモジュール１２０内にレコードを記憶する前及び／又はストレージモジュール１２０から検索されたレコードを出力する前に、ストレージモジュール１２０のレコード及び／又は他の何れかのコンテンツが、以下に説明されるように例えば許可なく操作、変更、改竄、及び／又は他のコンテンツによって置換えが行われていないことを検証することができる。
【００３３】
本発明の幾つかの例証的な実施形態によれば、構成１１８は、コントローラ１２１、メモリ１２２、及び暗号化／解読モジュール１２４を含むことができる。
【００３４】
メモリ１２２は、当該技術分野において公知の何れかの好適なメモリ、例えば、
電子的消去可能プログラム可能読出し専用メモリ（ＥＥＰＲＯＭ）、ワンタイムプログラマブル（ＯＴＰ）メモリ、１つ又はそれ以上のヒューズによって実装されるメモリなどの不揮発性ＲＡＭメモリを含むことができる。メモリ１２２は、例えば、予め設定された長さ（例えば１２８ビット）を有する、コントローラ１２１によって生成されたランダムシーケンスなどのランダム生成シーケンスを含む秘密デバイス鍵１９１を記憶することができる。メモリ１２２はまた、以下に説明されるように、データ完全性情報１９３、例えば「ストレージ署名」値及び／又は「世代カウンタ」値を記憶することができる。
【００３５】
本発明の幾つかの例証的な実施形態では、メモリ１２２の容量は、比較的小さくすることができる。非限定的な実施例では、メモリ１２２の容量は、１０キロバイト程度とすることができる。
【００３６】
暗号化／解読モジュール１２４は、例えば以下に説明されるように、ストレージモジュール１２０内に記憶されることになるレコードを暗号化し、又はストレージモジュール１２０から受け取られたレコードを解読することができる何れかの好適なハードウェア及び／又はソフトウェア（例えば、当該技術分野で公知の暗号化／解読エンジン）を含むことができる。例えば、モジュール１２４は、当該技術分野で公知のように、ＡＥＳ−ＣＢＣサイファアルゴリズム又は他の何れかの好適な暗号化／解読アルゴリズムを実装することができる。
【００３７】
本発明の幾つかの例証的な実施形態によれば、コントローラ１２１は、ＣＰＵ、ＤＳＰ、マイクロプロセッサ、ホストプロセッサ、複数のプロセッサ、チップ、マイクロチップ、或いは他の何れかの好適な汎用もしくは特定用途向けプロセッサ又はコントローラを含むことができる。
【００３８】
本発明の幾つかの例証的な実施形態によれば、コントローラ１２１は、任意選択的に、例えばレコード初期化ベクトル（ＩＶ）をランダムに作成することができる。例えば、レコードＩＶは、以下に説明されるように、例えば暗号化／解読モジュール１２４によって実装されるサイファアルゴリズムに対応する予め設定された長さ（例えば１２８ビット）のビットのブロックを含むことができる。コントローラ１２１は、任意選択的に、他の何れかの予め設定された初期化ベクトル（ＩＶ）、例えばレコードのテーブルに対応するテーブルＩＶ、及び／又は複合メッセージ認証コード（ＭＡＣ）に対応する複合ＩＶを作成することができる。本発明の他の実施形態によれば、１つ又はそれ以上のＩＶは、コントローラ１２１以外の他の何れかの好適なユニット、モジュール、又は要素によって作成することができる。
【００３９】
コントローラ１２１及び／又はモジュール１２４は、例えばハッシュアルゴリズム、ブロックサイファアルゴリズム、ＣＢＣ−ＭＡＣアルゴリズム、及び／又は当該技術分野で公知の他の何れかの好適な方法を使用して、例えばデバイス鍵１９１及び／又は他の何れかの好適な値及び／又はパラメータから認証鍵（例えばＭＡＣ鍵）を求めることができる。コントローラ１２１及び／又はモジュール１２４はまた、例えばストレージモジュール１２０から受け取られ又はストレージモジュール１２０内に記憶されるよう意図されたレコード、及び任意選択的にレコードＩＶに対応するレコードＭＡＣなどレコード認証コードを計算することができる。コントローラ１２１及び／又はモジュール１２４はまた、以下に詳細に説明されるように、ストレージモジュール１２０内に記憶テーブルの２つ又はそれ以上のレコード認証コードに対応するテーブル認証コード、及び／又はストレージモジュール１２０の１つ又はそれ以上のテーブル認証コード及び／又は他のコンテンツに対応する複合認証コードなどの１つ又はそれ以上の他の認証コード又はＭＡＣを計算することができる。コントローラ１２１及び／又はモジュール１２４は、当該技術分野で公知のように、例えば、ＭＡＣ鍵などの認証鍵を使用して、ＡＥＳ−ＭＡＣアルゴリズム又はＨＭＡＣアルゴリズムなどの好適な認証アルゴリズムを実施することによって認証コードの１つ又はそれ以上を計算することができる。
【００４０】
本発明の幾つかの例証的な実施形態では、ＭＡＣを認証コード又は鍵として実装することに関連して本明細書で説明されているが、本発明はこの点において限定されず、本発明の他の実施形態では他の何れかの好適な認証コード及び／又は鍵を使用することができる点は当業者には理解されるであろう。
【００４１】
本発明の幾つかの例証的な実施形態は、制御構成（例えば構成１１８）の種々の要素として実装されるコントローラ（例えばコントローラ１２１）及び暗号化／解読モジュール（例えば暗号化／解読モジュール１２４）に関して本明細書で説明される。しかしながら、本発明がこの点において限定されず、本発明の他の実施形態では、制御構成がコントローラ及び解読／暗号化モジュールの両方の機能を実施可能なモジュールを含むことができる点は当業者であれば理解されるであろう。
【００４２】
本発明の幾つかの例証的な実施形態によれば、ストレージモジュール１２０は、例えばＲＡＭ、ＤＲＡＭ、ＳＤ−ＲＡＭ、フラッシュメモリ、又は他の好適な（不揮発性などの）メモリ又はストレージを含むことができる。
【００４３】
幾つかの例証的な実施形態によれば、ストレージモジュール１２０は、例えば、保護されたメモリ１２２内に記憶することができるデータの量に比べて比較的大量のデータを記憶することができる。本発明の幾つかの例証的な実施形態では、ストレージモジュール１２０の容量は、メモリ１２２の容量に比べてかなり大きくすることができる。非限定的な実施例では、ストレージ１２０の容量は、メモリ１２２の容量の少なくとも１００倍大きくすることができる。
【００４４】
本発明はこの点において限定されないが、ストレージモジュール１２０は、例えば制御構成１１８に一体的に接続することができる。他の実施形態によれば、ストレージモジュール１２０は、制御構成１１８から着脱可能にすることができる。
【００４５】
本発明の幾つかの例証的な実施形態によれば、ストレージモジュール１２０は、１つ又はそれ以上のテーブル１６０内にデータを記憶することができる。テーブル１６０の各々は、例えば、第１、第２、及び第３の部分１６４、１６６、及び１６８をそれぞれ含む１つ又はそれ以上のフィールド１６２を含むことができる。幾つかの実施形態では、例えば以下に説明されるように、部分１６６は、構成１１８から受け取られた暗号化レコードを記憶することができ、部分１６４及び１６８は、部分１６４のレコードに対応するＩＶ及びレコードＭＡＣを記憶することができる。しかしながら、本発明の他の実施形態により、テーブル１６０は、何れかの適切なフォーマット及び／又は順序、例えば可変長のリンクリストで認証コード及び／又はＩＶデータなどのデータを記憶するための１つ又はそれ以上のフィールドの何れかの好適な構成を含むことができる点は当業者であれば理解されるであろう。特定のレコードに対応するレコード認証コードは、例えば以下に説明されるように特定のレコードの完全性を保証するために使用することができる。
【００４６】
本発明の幾つかの例証的な実施形態によれば、ストレージモジュール１２０は、任意選択的に、１つ又はそれ以上のテーブル１６０のコンテンツにそれぞれ対応するテーブルＭＡＣ１７０などの１つ又はそれ以上のテーブル認証コードを記憶することができる。コントローラ１２１及び／又はモジュール１２４は、例えば、以下に説明されるように、１つ又はそれ以上のレコードをテーブル１６０内に記憶する場合、或いはテーブル１６０の１つ又はそれ以上のレコードを検索又は変更する場合に、テーブルＭＡＣ１７０を計算することができる。特定のテーブルのテーブル認証コードは、例えば特定のテーブルのレコード認証コードの全てを使用して計算することができる。特定のテーブルに対応するテーブル認証コードは、例えば以下に説明されるように、全体として特定のテーブルの完全性を保証するために使用することができる。
【００４７】
本発明の幾つかの例証的な実施形態によれば、ストレージモジュール１２０はまた、予め設定された長さ、例えば１２８ビットの長さ又は他の何らかの長さを有する世代カウンタ１９０を含むことができる。カウンタ１９０は、何れかの適切なカウンタ又はグレイカウンタなどのカウンタ様を含むか、或いはそのものとすることができる。世代カウンタ１９０内に記憶された値は、以下に説明されるように、ストレージモジュール１２０内に１つ又はそれ以上のレコードを記憶する場合、或いはストレージモジュール１２０の１つ又はそれ以上のレコードを変更する場合に修正され、例えば１ずつのようにインクリメントすることができる。他の例証的な実施形態によれば、ストレージモジュール１２０は、世代カウンタ１９０を実装することができない。このような実施形態では、ストレージ署名値などの他の更新検証情報を用いて、以下に説明されるようにストレージモジュール１２０のコンテンツが最新であることを検証することができる。
【００４８】
本発明の幾つかの例証的な実施形態によれば、ストレージモジュール１２０はまた、例えば、テーブル認証コードの全て及び任意選択的に実装されている場合には世代カウンタ１９０の値を含む、ストレージモジュール１２０の全コンテンツに対応する複合ＭＡＣ１８０などの複合認証コードを記憶することができる。複合認証コードは、例えば、テーブル認証コードの全てを使用して、或いは例えば１つのテーブルだけが実装される場合でもレコード認証コードの全てを使用して計算することができる。コントローラ１２１は、例えば以下に説明されるように、１つ又はそれ以上のレコードをストレージモジュール１２０内に記憶する場合、或いはストレージモジュール１２０の１つ又はそれ以上のレコードを変更する場合に複合ＭＡＣ１８０を計算することができる。複合認証コードは、例えば以下に説明されるようにストレージモジュール１２０の全体の完全性を保証するために使用することができる。本発明の幾つかの実施形態によれば、ストレージ１２０は、例えば１つ又はそれ以上のテーブルＩＶ及び／又は複合ＩＶなどの他の何れかの好適なデータ完全性情報を付加的に或いは代替的に含むことができる。
【００４９】
本発明の幾つかの例証的な実施形態によれば、ストレージ構成１０２は、例えばプロセッサ１０４、メモリ１０６、入力ユニット１１０及び／又はネットワーク接続部１１２からストレージモジュール１２０内に記憶されることになるデータを受け取り、該データを好適なフォーマットでコントローラ１１８に提供することができる入力／出力インターフェース１１６を更に含むことができる。インターフェース１１６はまた、ストレージモジュール１２０内に記憶されたデータをコントローラ１１８から受け取り、該データを好適なフォーマットでプロセッサ１０４、メモリ１０６、出力ユニット１０８、及び／又はネットワーク接続部１１２に提供することができる。インターフェース１１６は、当該技術分野で公知の何れかの適切なハードウェア及び／又はソフトウェアなどを含むことができる。
【００５０】
図２を更に参照すると、本発明の幾つかの例証的な実施形態に従ってデータを安全に記憶するための方法が概略的に示されている。
【００５１】
本発明はこの点において限定されないが、図２の方法は、例えばストレージモジュール１２０内に１つ又はそれ以上のレコードを記憶しようとする場合にコントローラ１２１が実装することができる。
【００５２】
本発明の例証的な実施形態によれば、本方法は、ブロック２０２で示されるように記憶されることになるレコード（「現在のレコード」）を受け取る段階を含むことができる。例えば、制御構成１１８は、例えばインターフェース１１６からストレージモジュール１２０内に記憶されることが意図されたレコードを受け取ることができる。
【００５３】
ブロック２０４で示されるように、本方法は、任意選択的に、レコードＩＶを生成する段階と、ストレージモジュール１２０内に現在のレコードを記憶するよう意図されたフィールドの一部に生成レコードＩＶを記憶する段階とを含むことができる。例えばコントローラ１２１は、レコードＩＶを生成し、テーブル１６０の部分１６４にレコードＩＶを記憶することができる。
【００５４】
本発明の幾つかの例証的な実施形態によれば、現在のレコードは、例えば部分１６６の少なくとも一部などストレージモジュール１２０内に現在記憶されているレコード（「記憶レコード」）の一部又は全体を置換えるよう意図することができる。ブロック２０６で示されるように、これらの例証的な実施形態によれば、本方法は、任意選択的に記憶レコードの完全性を検証する段階を含むことができる。記憶レコードの完全性を検証する段階は、例えば、対応する記憶レコードＩＶ及び秘密鍵(鍵１９１など)を使用して記憶レコードのレコード認証コードを計算する段階と、計算されたレコード認証コードが部分１６８内に記憶されたレコード認証コード（「記憶レコード認証コード」）とマッチするかどうかを判定する段階とを含むことができる。計算されたレコード認証コードと記憶レコード認証コードとのミスマッチは、記憶レコードが最初に記憶された後のある時点で、例えば許可なくレコードが変更され、置換えられ、或いは改竄されていることを示すことができる。従って、ブロック２０８で示されるように、本方法は、計算されたレコード認証コードが記憶レコード認証コードにマッチしない場合には、デバイスが現在のレコードを記憶するのを拒否、中止、或いは取り消しなど阻止する段階を含むことができる。
【００５５】
ブロック２１０で示されるように、本方法は、現在のレコードを暗号化する段階を含むことができる。例えば、暗号化／解読モジュール１２４は、例えばデバイス鍵１９１又は他の何れかの好適な秘密鍵などの秘密鍵、及び任意選択的にコントローラ１２１によって生成されたレコードＩＶを使用して、現在のレコードを暗号化することができる。
【００５６】
ブロック２１２で示されるように、本方法は、例えば上述のように認証コード鍵を使用して、現在の暗号化レコード又は現在のレコード、及び任意選択的にレコードＩＶに対応する現在のレコード認証コードを計算する段階を含むことができる。コントローラ１２１は、部分１６８内に現在のレコード認証コードを記憶することができる。本発明の幾つかの例証的な実施形態によれば、現在のレコード認証コードを計算する段階は、例えば図２に示されるように現在のレコードを暗号化する段階後に実行することができる。しかしながら、本発明の他の実施形態によれば、現在のレコード認証コードを計算する段階は現在のレコードを暗号化する前に実行してもよいことは当業者であれば理解されるであろう。
【００５７】
ブロック２１４で示されるように、本方法は、記憶レコードを含むテーブル（「記憶テーブル」）の完全性を検証する段階を任意選択的に含むことができる。記憶テーブルの完全性を検証する段階は、例えば、記憶レコード認証コード及び記憶テーブルの全ての他のレコード認証コードに対応するテーブル認証コード（「計算されたテーブル認証コード」）を計算する段階と、計算されたテーブル認証コードがストレージモジュール１２０内に現在記憶されているテーブル認証コード（「記憶テーブル認証コード」）とマッチするかどうかを判定する段階とを含むことができる。計算されたテーブル認証コードと記憶テーブル認証コードとのミスマッチは、最初にレコードを記憶した後のある時点で、例えば許可なく部分的に或いは全体的に記憶テーブルが変更され、置換えられ、或いは改竄されていることを示すことができる。従って、ブロック２１６で示されるように、本方法は、例えば計算されたテーブル認証コードが記憶テーブル認証コードにマッチしない場合には、記憶テーブルへの更なるアクセスの中止、阻止、或いは取り消しなどの拒否する段階及び／又は記憶テーブルのテーブル認証コードを更新しない段階を含むことができる。
【００５８】
ブロック２１８で示されるように、計算されたテーブル認証コードが記憶テーブル認証コードにマッチする場合、本方法はまた、例えば記憶テーブルの現在のレコード認証コード及び他のレコード認証コードを使用して現在のテーブル認証コードを計算する段階と、記憶テーブル認証コードを現在のテーブル認証コードと置換える段階とを含むことができる。
【００５９】
本発明の他の実施形態によれば、例えばストレージモジュール１２０が１つのテーブルだけを含む場合、テーブル認証コードを実装する必要はないものとすることができる。このような場合、例えば、レコード認証コードの１つ又はそれ以上（例えば全て）を使用してこれまでに計算されたようなストレージモジュールの複合認証コードを検証する段階は、単一のテーブルのコンテンツが例えば許可なく部分的に或いは全体的に変更、置換え、又は改竄されていないことを検証するだけで十分とすることができる。
【００６０】
ブロック２２０で示されるように、本方法はまた、ストレージモジュール１２０の完全性を検証する段階を含むことができる。ストレージモジュール１２０の完全性を検証する段階は、例えば記憶テーブル認証コード及び全ての他のテーブル認証コード及び／又は世代カウンタ１９０内に記憶された値に対応する複合認証コード（「計算された複合認証コード」）を計算する段階と、計算された複合認証コードがストレージモジュール１２０内に現在記憶されている複合認証コード（「記憶複合認証コード」）にマッチするかどうかを判定する段階とを含むことができる。計算された複合認証コードと記憶複合認証コードとのミスマッチは、ストレージモジュール１２０のコンテンツが、例えば許可なく部分的或いは全体的に変更され、置換えられ、或いは改竄されていることを示すことができる。従って、ブロック２２１で示されるように、本方法は、計算された複合認証コードが記憶複合認証コードにマッチしない場合には、複合認証コードへのあらゆる更なるアクセスを中止或いは拒否する段階及び／又は複合認証コードを更新しない段階を含むことができる。
【００６１】
例えば無許可のユーザによる攻撃が、ストレージモジュール１２０の全コンテンツをストレージモジュール１２０内に以前に記憶されたコンテンツと置換えることを含むことができる点は理解される。このような攻撃は、ストレージモジュール１２０のレコード、テーブル及び／又は全体の完全性を検証することによって発見することができない。
【００６２】
従って、ブロック２２５で示されるように、本発明の幾つかの例証的な実施形態によれば、本方法はまた、例えば計算された複合認証コードが記憶複合認証コードとマッチする場合に、ストレージモジュール１２０のコンテンツが適切且つ完全に最新であることを保証する段階、すなわちストレージモジュール１２０が許可されて最近記憶されたデータを含むことを保証する段階を含むことができる。
【００６３】
ブロック２２６で示されるように、ストレージモジュール１２０のコンテンツが最新であることを保証する段階は、本発明の幾つかの例証的な実施形態に従って世代カウンタ１９０の値を制御構成１１８のメモリ１２２内に記憶された世代カウンタ値（例えばデータ完全性情報１９３の世代カウンタ値）と比較する段階を含むことができる。
【００６４】
ブロック２３０で示されるように、本方法はまた、例えば、ストレージモジュール１２０の世代カウンタ値とメモリ１２２の世代カウンタ値との比較が、ストレージモジュール１２０のコンテンツの最新であることを示す場合に、世代カウンタ値を変更する段階を含むことができる。例えば、世代カウンタ値は、ストレージモジュール１２０の世代カウンタ値がメモリ１２２の世代カウンタ値に等しいか又はこれよりも大きい場合に、例えば１ずつインクリメントすることができる。
【００６５】
ブロック２３２で示されるように、本方法はまた、更新された世代カウンタ値をメモリ１２２にコピーする段階を含むことができる。他の実施形態によれば、世代カウンタ値は、例えば、レコードがストレージモジュール１２０内に記憶されるか又は修正されるときに世代カウンタ値がインスタンスの一部についてだけ更新されるように、他の何れかの予め設定された更新方式に従って更新することができる。
【００６６】
ブロック２２２で示されるように、ストレージモジュール１２０のコンテンツが最新であることを保証する段階は、例えば所与のコンテキストにおいて使用可能な場合、例えば現在のテーブル認証コード、他のテーブル認証コード又は記憶テーブルのレコード認証コード及び任意選択的に更新された世代カウンタ値とを使用して現在の複合認証コードを計算する段階と、記憶複合認証コードを現在の複合認証コードと置換える段階とを含むことができる。幾つかの実施形態によれば、例えばストレージモジュール１２０のコンテンツが適正且つ完全に最新であることを保証する段階が上述の世代カウンタを使用する段階を含む場合、世代カウンタ値は、複合認証コードを計算する前に更新することができ、複合認証コードを計算する段階は、更新された世代カウンタ値を使用する段階を含むことができる。
【００６７】
ブロック２２４で示されるように、本発明の他の例証的な実施形態によれば、ストレージモジュール１２０のコンテンツが最新であることを保証する段階は、例えば世代カウンタが実装されていない場合、現在の複合認証コードをデータ完全性情報１９３としてメモリ１２２にコピーする段階を含むことができる。
【００６８】
例えば上記の順序で実行される場合に上記のオペレーションは、種々の完全性検証オペレーションが例えばプロセスの始めに共にグループ化されておらず、及び／又は種々の記憶オペレーションが共にグループ化されていないので、幾つかの競合条件攻撃、すなわち２つ又はそれ以上のプロセスが互いに干渉し合う時間期間中に行われる攻撃に対する効率的な保護を提供することができる点は当業者には理解されるであろう。しかしながら、上記の動作のあらゆる組合せは本発明の実施形態に従ってデータを安全に記憶するために実行することができる点は当業者には理解されるであろう。更に、他の動作又は一連の動作を使用してもよい。
【００６９】
図３を更に参照すると、本発明の幾つかの例証的な実施形態に従って安全に記憶されたデータを検索するための方法が概略的に示されている。
【００７０】
本発明はこの点において限定されないが、図３の方法は、例えば１つ又はそれ以上のレコードをストレージモジュール１２０から検索する場合にコントローラ１２１が実施することができる。
【００７１】
ブロック３０２で示されるように、本方法は、暗号化レコードを含むフィールドを例えばストレージモジュール１２０から検索する段階を含むことができる。例えば、コントローラ１２１は、暗号化レコードを含む部分１６６、及び対応するレコードＩＶと記憶レコード認証コードをそれぞれ含む部分１６４及び１６８を有するフィールド１６２を検索することができる。
【００７２】
ブロック３０４で示されるように、本方法は、例えばデバイス鍵１９１及び任意選択的に検索されたレコードＩＶを使用して検索されたレコードを解読する段階を含むことができる。
【００７３】
ブロック３０６で示されるように、本方法はまた、検索されたレコードの完全性を検証する段階を含むことができる。検索されたレコードの完全性を検証する段階は、例えば、検索されたレコード、及び任意選択的に検索されたレコードＩＶに対応するレコード認証コードを計算する段階と、計算されたレコード認証コードを検索されたレコード認証コードと比較する段階とを含むことができる。
【００７４】
ブロック３０８で示されるように、本方法は、例えば計算されたレコード認証コードが検索されたレコード認証コードにマッチしない場合に、インターフェース１１６への暗号化され検索されたレコードの転送を中止、取り消し、又は拒否する段階を含むことができる。
【００７５】
ブロック３１０で示されるように、本方法はまた、レコードが検索されたテーブル（「現在のテーブル」）の完全性を検証する段階を含むことができる。現在のテーブルの完全性を検証する段階は、例えば、現在のテーブルに対応するテーブル認証コードをストレージモジュール１２０から検索する段階と、現在のテーブルのレコード認証コードに対応するテーブル認証コードを計算する段階と、計算されたテーブル認証コードを検索されたテーブル認証コードと比較する段階とを含むことができる。
【００７６】
ブロック３１２で示されるように、本方法は、例えば計算されたテーブル認証コードがストレージモジュール１２０内に記憶されたテーブル認証コードにマッチしない場合に、インターフェース１１６への暗号化され検索されたレコードの転送を中止、取り消し、又は拒否する段階を含むことができる。
【００７７】
ブロック３１４で示されるように、本方法はまた、ストレージモジュール１２０の完全性を検証する段階を含むことができる。ストレージモジュール１２０の完全性を検証する段階は、例えば、ストレージモジュール１２０のテーブル認証コード及び任意選択的にストレージモジュール１２０の世代カウンタに対応するストレージモジュール１２０の複合認証コードを計算する段階と、計算された複合認証コードをストレージモジュール１２０内に記憶された複合認証コードと比較する段階とを含むことができる。
【００７８】
ブロック３１６で示されるように、本方法は、例えば計算された複合認証コードがストレージモジュール１２０内に記憶された複合認証コードにマッチしない場合に、インターフェース１１６への暗号化され検索されたレコードの転送を中止し、取り消し、又は拒否する段階を含むことができる。
【００７９】
ブロック３２７で示されるように、本方法はまた、ストレージモジュール１２０のコンテンツが最新であるかどうかを判定する段階を含むことができる。
【００８０】
ブロック３１８で示されるように、本発明の幾つかの例証的な実施形態によれば、ストレージモジュール１２０のコンテンツが最新であるかどうかを判定する段階は、ストレージモジュール１２０の世代カウンタ値１９０を制御構成１１８のメモリ１２２内に記憶された世代カウンタ値、例えばデータ完全性情報１９３の世代カウンタ値と比較する段階を含むことができる。
【００８１】
ブロック３２０で示されるように、本方法は、例えば、ストレージモジュール１２０の世代カウンタ値が、メモリ１２２内に記憶された世代カウンタ値（例えばデータ完全性情報１９３の世代カウンタ値）よりも小さい場合に、インターフェース１１６への暗号化され検索されたレコードの転送を中止し、取り消し、或いは拒否する段階を含むことができる。
【００８２】
ブロック３２２で示されるように、本発明の他の例証的な実施形態によれば、ストレージモジュール１２０のコンテンツが最新であるかどうかを判定する段階は、例えばデータ完全性情報１９３としてメモリ１２２内に記憶されたストレージ署名値を複合ＭＡＣ１８０と比較する段階を含むことができる。
【００８３】
ブロック３２４で示されるように、本方法は、例えばデータ完全性情報１９３として記憶されたストレージ署名が複合ＭＡＣ１８０に等しくない場合に、インターフェース１１６への暗号化され検索されたレコードの転送を中止し、取り消し、又は拒否する段階を含むことができる。
【００８４】
ブロック３２６で示されるように、本方法はまた、例えばレコード完全性が検証され、テーブル完全性が検証され、ストレージモジュール１２０の完全性が検証されて、更にストレージモジュール１２０が最新であると判定された場合に、解読されたレコードを例えばインターフェース１１６に提供する段階を含むことができる。
【００８５】
本発明の実施形態は、特定のアプリケーション或いは特定の設計要件に従って好適とすることができる、ソフトウェア、ハードウェア、或いはソフトウェア及び／又はハードウェアのあらゆる組合せによって実施することができる。本発明の実施形態は、全体的に或いは部分的に互いに別個に又は共に組み合わせることができるユニット及びサブユニットを含むことができ、当該技術分野において公知の特定多用途又は汎用のプロセッサもしくはデバイスを使用して実施することができる。本発明の幾つかの実施形態は、データの一時的又は長期の記憶保持のため及び／又は特定の実施形態のオペレーションを容易にするために、バッファ、レジスタ、ストレージユニット及び／又はメモリユニットを含むことができる。
【００８６】
本発明の幾つかの特徴について本明細書で例証し説明してきたが、当業者であれば多くの修正形態、置換形態、変更形態、及び均等物を想起することができる。従って、添付の請求項は、本発明の真の精神の範囲内にある全てのこのような修正及び変更を保護するものとする点を理解されたい。
【図面の簡単な説明】
【００８７】
【図１】本発明の幾つかの例証的な実施形態によるセキュアストレージ構成を含むコンピューティングプラットフォームの概略ブロック図である。
【図２】本発明の幾つかの例証的な実施形態によるデータを安全に記憶する方法の概略フローチャートである。
【図３】本発明の幾つかの例証的な実施形態による安全に記憶されたデータを検索する方法の概略フローチャートである。
【符号の説明】
【００８８】
１００  コンピューティングプラットフォーム
１０２  ストレージデバイス
１０４  プロセッサ
１０６  メモリ
１０８  出力ユニット
１１０  入力ユニット
１１２  ネットワーク接続
１１４  セキュアストレージ構成
１１６  入出力インターフェース
１１８  制御構成
１２０  ストレージ
１２１  コントローラ
１２４  暗号化／解読
１３２  メモリ
１６０  テーブル
１６２  フィールド
１６４  部分（ＩＶ）
１６６  部分（レコード）
１６８  部分（ＭＡＣ）
１７０  テーブルＭＡＣ
１８０  複合ＭＡＣ
１９０  世代カウンタ
１９１  デバイス鍵
１９３  データ完全性
【図１】
2008520030.tif 000003
【図２】
2008520030.tif 000004
【図３】
2008520030.tif 000005
【国際調査報告】
2008520030.tif 000006