(57)【要約】  データコンテンツを格納するための方法及び電子デバイスであって、再書き込み可能なメモリデバイスにおいてデータコンテンツの少なくとも一部を格納するステップと、一時プログラマブルメモリに前記データコンテンツの状態に関連するｎビットカウント値であって、対応するデータコンテンツとともにセキュアメモリデバイスに書き込まれる前記ｎビットカウント値を格納するステップと、を含み、前記ｎビットカウント値は前記再書き込み可能なメモリデバイスにおいてデータコンテンツの各変更に対して、インクリメントされ、前記一時プログラマブルメモリに格納される。一時プログラマブルメモリのビット数は、格納されるデータコンテンツの可能性のある変更の数に対応してもよい。
2013514573.tif 000002
【特許請求の範囲】
【請求項１】
データコンテンツを格納する方法であって、
再書き込み可能なメモリデバイスにおいてデータコンテンツの少なくとも一部を格納するステップと、
前記データコンテンツの状態に関連するｎビットカウント値であって、対応するデータコンテンツとともにセキュアメモリデバイスに書き込まれる前記ｎビットカウント値を一時プログラマブルメモリに格納するステップと、を含み、
前記ｎビットカウント値は、前記再書き込み可能なメモリデバイスにおいてデータコンテンツの各変更に対して、インクリメントされ、前記一時プログラマブルメモリに格納されることを特徴とする方法。
【請求項２】
前記再書き込み可能なメモリデバイスに格納された前記データコンテンツは、ｎデータフィールドから成り、
前記データフィールドが変更されるたびに、前記一時プログラマブルメモリに格納されたｎビットカウント値のビットが０から１に設定されることを特徴とする請求項１に記載の方法。
【請求項３】
前記データコンテンツは、前記再書き込み可能なメモリデバイスに対して固有の暗号化キーを用いて該再書き込み可能なメモリデバイスに格納され、
前記暗号化キーは、前記一時プログラマブルメモリのデータフィールドに格納されることを特徴とする請求項１又は２に記載の方法。
【請求項４】
前記一時プログラマブルメモリに格納される前記カウント値は、前記データコンテンツが前記再書き込み可能なメモリデバイスに書き込まれる前に、前記データコンテンツに連結されることを特徴とする請求項１乃至３の何れか１項に記載の方法。
【請求項５】
前記データコンテンツの各データフィールドが対応するロックビットフィールドを有し、
前記ロックビットフィールドは、対応する前記データフィールドが、該データフィールドが一度変更されるともう変更することができないことを示すように設定され、
前記データコンテンツが変更される書き込み操作中に、前記ロックビットフィールドは、前記データが前記データフィールドに書き込まれることが可能かどうかを判定するようにチェックされることを特徴とする請求項１乃至４の何れか１項に記載の方法。
【請求項６】
前記再書き込み可能なメモリデバイスの前記データコンテンツを変更する書き込み操作中に、該書き込み操作が許可されているか否かを判定するために、各データビットが前記古いデータコンテンツにおいて１に設定され、前記新たなデータコンテンツにおいて１に設定されるかを検証するようにチェックされることを特徴とする請求項１乃至５の何れか１項に記載の方法。
【請求項７】
前記再書き込み可能なメモリデバイスに格納されたデータ読み取る読み取り操作中に、前記一時プログラマブルメモリに格納された前記カウント値は、前記再書き込み可能なメモリデバイスから読み取られた前記カウント値が前記一時プログラマブルメモリに格納された前記カウント値よりも大きいかどうかを判定するために、前記再書き込み能なメモリデバイスから読み取られた前記データコンテンツに関連する前記カウント値と比較されることを特徴とする請求項１乃至６の何れか１項に記載の方法。
【請求項８】
電子デバイスであって、
データコンテンツの少なくとも一部と、該データコンテンツに関連するｎビットカウント値とを格納する再書き込み可能なメモリ部と、
前記データコンテンツの状態に関連するｎビットカウント値を格納する一時プログラマブルメモリと、
前記再書き込み可能なメモリ部を操作するプロセッサと
を備え、
前記一時プログラマブルメモリは、前記再書き込み可能なメモリ部における前記データコンテンツの変更ごとに前記ｎビットカウント値をインクリメントするように操作可能であることを特徴とする電子デバイス。
【請求項９】
前記再書き込み可能なメモリ部に格納された前記データコンテンツは、ｎデータフィールドから成り、
前記データフィールドが変更されるたびに、前記一時プログラマブルメモリに格納されたｎビットカウント値のビットが０から１に設定されることを特徴とする請求項８に記載の電子デバイス。
【請求項１０】
前記プロセッサは、
前記再書き込み可能なメモリ部の前記データコンテンツを、前記再書き込み可能なメモリ部に対して固有の暗号化キーを用いて格納するように操作可能であり、
前記暗号化キーは、前記一時プログラマブルメモリのデータフィールドに格納されることを特徴とする請求項８又は９に記載の電子デバイス。
【請求項１１】
前記プロセッサは、
前記一時プログラマブルメモリに格納される前記カウント値を、前記データコンテンツが前記再書き込み可能なメモリ部に書き込まれる前に、前記データコンテンツに連結させるように操作可能であることを特徴とする請求項８乃至１０の何れか１項に記載の電子デバイス。
【請求項１２】
前記データコンテンツの各データフィールドが対応するロックビットフィールドを有し、
前記ロックビットフィールドは、対応する前記データフィールドが、該データフィールドが一度変更されるともう変更することができないことを示すように設定され、
前記プロセッサは、
前記データコンテンツが変更される書き込み操作中に、前記ロックビットフィールドを、前記データが前記データフィールドに書き込まれることが可能かどうかを判定するようにチェックすることを特徴とする請求項８乃至１１の何れか１項に記載の電子デバイス。
【請求項１３】
前記プロセッサは、
前記再書き込み可能なメモリ部の前記データコンテンツを変更する書き込み操作中に、該書き込み操作が許可されているか否かを判定するために、各データビットが前記古いデータコンテンツにおいて１に設定され、前記新たなデータコンテンツにおいて１に設定されるかを検証するチェックを行うように操作可能であることを特徴とする請求項８乃至１２の何れか１項に記載の電子デバイス。
【請求項１４】
前記プロセッサは、
前記再書き込み可能なメモリ部に格納されたデータ読み取る読み取り操作中に、前記一時プログラマブルメモリに格納された前記カウント値を、前記再書き込み能なメモリ部から読み取られた前記カウント値が前記一時プログラマブルメモリに格納された前記カウント値よりも大きいかどうかを判定するために、前記再書き込み可能なメモリ部から読み取られた前記データコンテンツに関連する前記カウント値と比較するように操作可能であることを特徴とする請求項８乃至１３の何れか１項に記載の電子デバイス。
【請求項１５】
データ処理デバイスで読み取り可能な記憶媒体であって、該データ処理デバイスにロードされると該データ処理デバイスを、請求項１乃至７の何れか１項に記載の方法の各ステップを実行するように動作させるコンピュータプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、データを格納する方法及び装置に関するものである。特に排他的ではないが、本発明は、データコンテンツを格納する一時プログラマブルメモリ及び再書き込み可能なメモリを用いて、機密事項のデータを格納する方法に関するものである。
【背景技術】
【０００２】
機密事項のデータのセキュアな格納（ストレージ）における一般的な要件は、一度は書き込むことが保証されたメモリフィールドであって、一度メモリフィールドに書き込まれると変更することができないメモリフィールドを有するメモリを提供することである。
【０００３】
セキュアデータの格納のいくつかの形式は、秘匿性及び整合性を提供する固有のキーを用いた暗号化のメカニズムに基づくものである。しかしながら、そのような格納では、セキュアメモリの前回のコンテンツと、格納されるデータコンテンツとを置き換えることが可能である。例えば、当該データの日付Ｔで推定される状態がセキュアストレージに格納され、日付Ｔ’に当該データが変更されると、セキュアストレージのデータと、日付Ｔでのセキュアストレージのデータのコピーとを置き換えることによって前のデータ状態に戻すことが可能である。ソフトウェアの最近のバージョンにアップデートするソフトウェアの場合の例では、ロールバックとして望まない処理が頻繁に参照される、ソフトウェアのより古いバージョンによって置き換えられてもよい。
【０００４】
一時プログラマブル（ＯＴＰ）メモリは、整合性及び秘匿性の少なくとも一方が保護されるべき機密データを格納するためによく用いられる。ＯＴＰメモリは、各ビットの設定がヒューズ又はアンチヒューズによってロックされうるデジタルメモリの形式である。当該メモリは、ヒューズの場合には接続を開放し、或いは、アンチヒューズの場合には接続を閉じる不可逆処理によって製造された後に一度プログラムされうる。多くのＯＴＰメモリに埋め込まれたいくつかの処理（ベースバンド、アプリケーションプロセッサ）は、各チップでユニークな少なくとも１つの秘密鍵を含む。当該キーは、その後、データをプラットフォームにバインドする製造によって頻繁に必要とされるセキュアストレージ機能を提供するために使用されうる。
【０００５】
しかしながら、ＯＴＰメモリは非常にコストが高い。特に、少なくとも１２８ビットを含む複数のキー及び複数のハッシュの格納の場合において、データの格納に関連するコストは非常に高いものである。
【０００６】
さらに、ＯＴＰをプログラムする際によく発生する問題は、プログラムング手続き中に電力損失が発生する場合である。電力が回復した後にＯＴＰメモリを再読み込みする場合には、メモリの書き込み中に起こった電力損失のため、エラーが示されるであろう。しかしながら、指示されたエラーが電力の損失に関連するのか、或いは、ＯＴＰメモリに書き込むことを許可されなかったなどの他の要因に関連するのかが明瞭ではない。
【発明の概要】
【０００７】
本願発明は、上述の問題に鑑みて成されたものである。
【０００８】
即ち、本発明の第１の形態は、データコンテンツを格納する方法を提供し、当該方法は、再書き込み可能なメモリデバイスにおいてデータコンテンツの少なくとも一部を格納するステップと、一時プログラマブルメモリに前記データコンテンツの状態に関連するｎビットカウント値であって、対応するデータコンテンツとともにセキュアメモリデバイスに書き込まれる前記ｎビットカウント値を格納するステップと、を含み、前記ｎビットカウント値は前記再書き込み可能なメモリデバイスにおいてデータコンテンツの各変更に対して、インクリメントされ、前記一時プログラマブルメモリに格納される。一時プログラマブルメモリのビット数は、格納されるデータコンテンツの可能性のある変更の数に対応してもよい。
【０００９】
本発明の第２の形態は、電子デバイスを提供し、電子デバイスは、データコンテンツの少なくとも一部と、該データコンテンツに関連するｎビットカウント値とを格納する再書き込み可能なメモリ部と、前記データコンテンツの状態に関連するｎビットカウント値を格納する一時プログラマブルメモリと、前記再書き込み可能なメモリ部を操作するプロセッサとを備え、前記一時プログラマブルメモリは、前記再書き込み可能なメモリ部における前記データコンテンツの変更ごとに前記ｎビットカウント値をインクリメントするように操作可能であることを特徴とする。一時プログラマブルメモリのビット数は、格納されるデータコンテンツの可能性のある変更の数に対応してもよい。
【００１０】
本発明の実施形態において、
・前記再書き込み可能なメモリデバイスに格納された前記データコンテンツは、ｎデータフィールドから成り、前記データフィールドが変更されるたびに、前記一時プログラマブルメモリに格納されたｎビットカウント値のビットが０から１に設定される。
【００１１】
・前記データコンテンツは、前記再書き込み可能なメモリデバイスに対して固有の暗号化キーを用いて該再書き込み可能なメモリデバイスに格納され、前記暗号化キーは、前記一時プログラマブルメモリのデータフィールドに格納される。
【００１２】
・前記一時プログラマブルメモリに格納される前記カウント値は、前記データコンテンツが前記再書き込み可能なメモリデバイスに書き込まれる前に、前記データコンテンツに連結される。
【００１３】
・前記データコンテンツの各データフィールドが対応するロックビットフィールドを有し、前記ロックビットフィールドは、対応する前記データフィールドが、該データフィールドが一度変更されるともう変更することができないことを示すように設定され、前記データコンテンツが変更される書き込み操作中に、前記ロックビットフィールドは、前記データが前記データフィールドに書き込まれることが可能かどうかを判定するようにチェックされる。
【００１４】
・前記再書き込み可能なメモリデバイスの前記データコンテンツを変更する書き込み操作中に、該書き込み操作が許可されているか否かを判定するために、各データビットが前記古いデータコンテンツにおいて１に設定され、前記新たなデータコンテンツにおいて１に設定されるかを検証するようにチェックされる。
【００１５】
・前記再書き込み可能なメモリデバイスに格納されたデータ読み取る読み取り操作中に、前記一時プログラマブルメモリに格納された前記カウント値は、前記再書き込み可能なメモリデバイスから読み取られた前記カウント値が前記一時プログラマブルメモリに格納された前記カウント値よりも大きいかどうかを判定するために、前記再書き込み能なメモリデバイスから読み取られた前記データコンテンツに関連する前記カウント値と比較される。
【００１６】
・前記データコンテンツは、前記再書き込み可能なメモリデバイスのメイン位置と、前記再書き込み可能なメモリデバイスのバックアップ位置に格納されてもよく、それにより、前記バックアップ位置に格納された前記データコンテンツは、エラーの場合に前記メイン位置へコピーされてもよい。
【００１７】
本発明に係る少なくとも一部は、コンピュータに実装されてもよく、プログラマブル装置に実装されてもよい。それらは、また、ハードウェアのみ、ソフトウェアのみ、又は、それらの組み合わせとして実装されてもよい。
【００１８】
本発明がソフトウェアで実装されうるため、本発明は、適切な記憶媒体でプログラマブル装置に提供するコンピュータで読取可能なコードとして具現化されうる。有形の記憶媒体は、フロッピディスク（登録商標）、ＣＤ−ＲＯＭ、ハードディスクドライブ、磁気テープデバイス、又は固体記憶装置などの記憶媒体を含んでもよい。一時的な記憶媒体は、電気信号、電子信号、光信号、音響信号、磁性信号、又は、電磁鍼法、例えば、マイクロウェーブ若しくはＲＦ信号などを含んでもよい。
【図面の簡単な説明】
【００１９】
以下の図面を参照して、本発明の実施形態の一例について説明する。
【図１Ａ】読み取り手続きのデータフローを示す本発明の第１の実施形態に係る電子デバイスにおけるメモリ装置の概略図を示す。
【図１Ｂ】書込手続きのデータフローを示す本発明の第２の実施形態に係る電子デバイスにおけるメモリ装置の概略図を示す。
【図２Ａ】本発明の第１の実施形態に係る初期化手続きのステップを示すフローチャートである。
【図２Ｂ】本発明の第１の実施形態に係る読込手続きのステップを示すフローチャートである。
【図２Ｃ】本発明の第１の実施形態に係る書込手続きのステップを示すフローチャートである。
【図３】本発明の実施形態に係る書込手続きの一部を示すブロック図である。
【発明を実施するための形態】
【００２０】
以下では、図１を参照して、本発明に係るメモリ構成１の第１の実施形態について説明する。無線通信デバイスなどの電子デバイスは、一時プログラマブル（ＯＴＰ）メモリ１０と、フラッシュＥＰＲＯＭメモリなどの再書き込み可能な不揮発性メモリデバイス２０とのハードウェアを備える。再書き込み可能なメモリ２０は、ＣＰＵとオペレーティングシステム３０と通信を行うチップセットファームウェア２５を用いて制御される。攻撃に対して安全に格納されるべきデータコンテンツＣは、ｎデータフィールドから構成される。ＯＴＰメモリ１０はｎビットを格納し、ｎビットの１つを０から１へ設定することによってインクリメントされうるカウンタＯＴＰＣとして動作する。本実施形態において、ＯＴＰメモリ１０によって格納されうるビットｎの数は、発生しうるデータコンテンツの変更の最大数に対応する。さらに、本実施形態において、データコンテンツの変更の最大数は、時刻でフィールドが書き込まれるため、データコンテンツのフィールド数ｎに対応する。書き込み可能なメモリデバイス２０は、データコンテンツＣがＯＴＰメモリよりもむしろ再書き込み可能な不揮発性メモリ２０に格納されることを可能とするデータコンテンツのｎフィールドを格納するためのセキュアストレージとして実装される。本発明のいくつかの実施形態において、データのデータフィールドの一部が再書き込み可能なメモリデバイスに格納されてもよく、一方で残ったデータフィールドがＯＴＰタイプのメモリに格納されてもよい。
【００２１】
本実施形態において、ＯＴＰＣのビット数がデータコンテンツのデータフィールドの数に対応する一方で、本発明の代替の実施形態においてＯＴＰＣにおけるビット数”ｎ”とフィールド数とは等しい必要はない。いくつかの実施形態において、再書き込み可能なメモリは、ビットが０に戻される可能性のあるデータフィールドを含んでもよく、例えば、ＯＴＰＣサイズがデータフィールドの数よりも大きくなるような、更新されうるバイナリ形式の数値をデータフィールドに書き込む。一方で、ここでは、ＯＴＰＣにおけるビット数がデータフィールドの数よりも少ない場合において、同時に更新されるべきと推定される再書き込み可能なメモリのいくつかのデータフィールドに対してデータコンテンツの定義が含まれてもよい。
【００２２】
データは、チップセットに固有の暗号化キーを用いることによって、当該データの秘匿性及び整合性の両方を保護し、安全にデータを格納し、取り出すために、セキュアストレージ操作を用いて再書き込み可能なメモリ２０へ格納され、当該メモリ２０から取り出されてもよい。本発明のいくつかの実施形態において、暗号化キーは、ＯＴＰメモリ１０のＯＴＰフィールドに格納されてもよく、或いは、メモリ装置に関連する他のＯＴＰメモリに格納されてもよい。暗号化／復号化機能は、メモリデバイス２０でデータコンテンツを格納するために使用されてもよい。例えば、暗号化／復号化機能は、メモリデバイス２０にデータを読み書きするために使用されうるデバイスに埋め込まれた１２８ビットキーでの暗号ブロック連鎖モードでアドヴァンスド暗号化基準ＦＩＰＳ  １９７によって実装されてもよい。暗号化／復号化機能は、書込操作中にそれを書き込むために、或いは、読み取り操作中にそれを検証するためにデータコンテンツの痕跡を計算する整合性保護機能と組み合わされてもよい。この整合性保護機能は、パブリックな署名、メッセージ認証コード（ＭＡＣ）などであってもよい。そのような機能によって暗号化され、整合性が保護されるデータコンテンツは、ＯＴＰメモリのカウント値ｒと同様にデータコンテンツ自身を含む。
【００２３】
カウント値ｒ、１に設定されるＯＴＰＣのビット数に対応する、ＯＴＰメモリカウンタ（ＯＴＰＣ）１０の状態は、再書き込み可能なメモリ２０にデータコンテンツＣに関連付けられる。これは、データコンテンツを再書き込み可能なメモリ２０へ書き込む前に、ＯＴＰメモリ１０のカウント値をデータコンテンツＣに連結することによって達成されうる。
【００２４】
以下では、図２Ａ乃至図２Ｃを参照して、メモリ装置の動作について説明する。図２ＡのステップＳ１１において、ＯＴＰメモリ１０に格納される値ｒを時刻ｔ＝０で０に設定することによって、初期化処理が実行される。時刻ｔ＝０でのデータコンテンツＣはＯＴＰ（０）として定義され、ステップＳ１３においてセキュアストレージ手続きを用いてメモリ２０へ書き込まれる。時刻０で再書き込み可能なメモリデバイス２０にセーブされた値ＨＯＴＰ（０）は、その後、ＨＯＴＰ（０）＝ＳｅｃＷｒｉｔｅ（０．．．０｜｜ＯＴＰ（０））となる。ここで、０．．．０は、ＯＴＰＣ１０において１に設定されるビットの数がであるバイナリ値、即ち、時刻ｔ＝０で０として読まれる固定長フィールドである。｜｜は連結を示す。
【００２５】
時刻ｔ（ｔ＞０）で読み取るために、メモリ２０に格納されたデータコンテンツの読み取り手続きが図２Ｂに示される。
【００２６】
・ステップＳ２１において、ＯＴＰメモリ１０のＯＴＰＣ値ｒ（ビットの数値を１に設定）を読み出す。
【００２７】
・ステップＳ２２において、再書き込み可能なメモリデバイス２０の時刻ｔでデータコンテンツＣを読み出すためにＳｅｃＲｅａｄ（ＨＯＴＰ（ｔ））を計算する。
【００２８】
・ステップＳ２３において、ｒ’＞ｒをチェックする、例えば、ｒ’＝ｒ＋１、ｒ’＝ｒ＋２など。ｒ’＝ｒであれば、再書き込み可能なメモリデバイス２０のデータコンテンツＣが変更されていない、ｒ’＝ｒ＋１であれば、データコンテンツＣは変更されている。ｒ’＝ｒ＋２であれば、２つのデータフィールドが一度更新されている。それ以外の場合、メモリデバイス２０に格納されているデータが、再生攻撃によって破損しており、デバイスの操作がブロックされるべきである。データＣが取り出されるＯＴＰ（ｔ）＝Ｃ。
【００２９】
・ステップＳ２４において、ｒ’＞ｒであれば、ｒ’−ｒビットを１に設定することによってＯＴＰＣを更新する。これは、データコンテンツＣが変更されているが、ＯＴＰカウンタメモリ１０が新たな値ｒ’でまだ更新されていない場合の可能性がある。
【００３０】
時刻ｔで書き込むために、ｔ＞０、データＣ’をメモリデバイス２０へ、以下のように、図２Ｃに示す書き込み手続きが実行される。
【００３１】
・ステップＳ３１において、図２Ｂを用いて上述したように、読み取り操作を実行することによって、メモリデバイス２０に格納された現行データＣＯＴＰ（ｔ）＝Ｃを取り出す。
【００３２】
・ステップＳ３２において、メモリデバイス２０に格納されるべきデータの新たな値Ｃ’がメモリ２０から取り出したデータＣに従うかどうか、即ち、前のデータＣにおける各ビット１が新たなデータＣにおいても１となるかをチェックする。そうでなければ、データビットの状態を０から１へ変更することのみが書き込み手続きにおいて許可されるため当該操作を取りやめる。
【００３３】
・ステップＳ３３において、コマンドＨＯＴＰ（ｔ＋１）＝ＳｅｃＷｒｉｔｅ（ｒ＋｜｜Ｃ’）によって、新たなデータＣ’に連結された新たなカウントｒ＋１を書き込むことにより、メモリに格納されたＣをデータＣ’に更新する。
【００３４】
・ステップＳ３４において、ビットｒ＋１を１に設定することによって、ＯＴＰメモリ１０ＯＴＰＣに格納されたカウントを更新する。
【００３５】
ＯＴＰメモリ１０に格納されたカウントｒの更新は、新たなデータＣ’が外部メモリデバイス２０に正しく格納された後に実行される。
【００３６】
外部破損の場合、書き込み手続き中の電力損失の例において、書き込み可能なメモリデバイス２０にデータコンテンツがまだ更新されてなければ、書き込み操作が新たなデータＣ’をメモリデバイス２０へ書き込むように再始動されうる。この場合、新たなデータＣ’を書き込む前に、再書き込み可能なメモリデバイス２０のデータコンテンツ古いデータＣに変換されることができる。再書き込み可能なメモリデバイス２０のデータコンテンツが新たなデータＣ’で更新されたものの、ＯＴＰメモリカウンタ１０ＯＴＰＣのカウントｒが電力損失前に更新されていなければ、その後、ＯＴＰＣ１０のカウントｒが、ｒをｒ’＝ｒ＋１に設定することによって次の読み取りフェーズ中に更新されるであろう。これは、エラー訂正機能を提供することを可能にする。
【００３７】
メモリデバイス２０への各書き込み操作によれば、再書き込み可能なメモリデバイス２０においてデータビットの数が変更されることに関わらず、ＯＴＰメモリカウンタＯＴＰＣ１０のｎビットのうちの１ビットが正確に設定される。リアルハードウェアＯＴＰにおいて、各データフィールドは、最大で１回変更されることを意味する。外部の再書き込み可能なメモリデバイス２０において各フィールドが最大で１回変更されることを保証するために、本発明のいくつかの実施形態によれば、「ロックビットフィールド」が、全てのデータフィールドに追加されうる。このブロックビットは、その後、フィールドが既に書き込まれたことを示すメモリデバイス２０の対応するデータフィールドが書き込み操作によって変更される際に、１に設定される。これは、まだ書き込まれていないデータフィールドに対して唯一許可されるデータフィールドの変更を可能とする。ハードウェア一時プログラマブルメモリにおいて、かなり頻繁に、フィールド（複数のフィールドのセット）は、当該フィールド（当該複数のフィールドのセット）が変更可能であるかどうかを示す「ロックビット」と呼ばれるツインフィールドを有する。追加のロックフィールド高機能化に伴い、既存のオリジナルＨＷ  ＯＴＰ  ロックフィールドは、その後、無視されるか、又は、追加のロックフィールドへマッピングされる。
【００３８】
図３を参照すると、書き込み操作は、ロックフィールドのステータス（状態）を再設定するデータをアンロックする試みがあるかどうかを判定するために、ロックフィールドのローカルステータスをチェックするステップを含むことができる。これは、書き込まれるべき新たなデータフィールドＨＯＴＰ＿ｎｅｗのロックフィールドｌｏｃｋ’に格納されるように、データフィールドＨＯＴＰ＿ｏｌｄのロックフィールドのビット間での論理ＡＮＤ操作を含む。代替的に、データＨＯＴＰ＿ｏｌｄは、ロックされたデータフィールドのＨＴＯＰ＿ｏｌｄが変更されていないことを保証するようにチェックされる。ＨＴＯＰ＿ｏｌｄにおいて１に設定される複数のビットは、ＨＯＴＰ＿ｏｌｄにおいて１に設定されるビットがＨＯＴＰ＿ｎｅｗにおいても１に設定されることを保証する論理ＡＮＤ操作によってＨＯＴＰ＿ｎｅｗのビットがチェックされる。新たなデータコンテンツＨＯＴＰ＿ｎｅｗがＨＯＴＰ＿ｒｅｓｕｌｔとして古いデータコンテンツＨＯＴＰ＿ｏｌｄに置き換えられる。カウンタＯＴＰＣは、他のビットを１に設定するようにインクリメントされる。
【００３９】
ＯＴＰＣの全てのビットが１に設定されれば、これは、再書き込み可能なメモリ２０のｎフィールドのそれぞれが一度更新されたことを示す。再書き込み可能なメモリ２０のさらなるデータの更新は実行されない。
【００４０】
本発明の実施形態は、ソフトウェアによって管理され、ＨＷ  ＯＴＰとして同様のセキュリティプロパティ（秘匿性、整合性、アンチリプレイでの変更）を有する、外部ストレージ（例えば、フラッシュメモリ）のＨＷ  ＯＴＰメモリに格納されるであろうデータの少なくとも一部を格納することによって減少する機密データを格納するのに必要なＯＴＰのサイズを可能にする。必要とされるＯＴＰのサイズは、ＯＴＰの各ビットが潜在的な更新に対応する、実行されそうな更新の数に依存する。
【００４１】
図１Ａは、本発明の第１の実施形態に係る読み取り手続きにおけるメモリ構成の要素間でのデータフローを示す。１）において、オペレーティングシステムは、ＯＴＰからデータフィールドナンバーＮを読み取るためにコマンドを送信する。２）において、カウンタ値ｒがＯＴＰＣから読み取られる。３）において、データＨＯＴＰが、フラッシュメモリ２０から読み出される。４）において、データコンテンツが復号化され、その整合性がＣＰＵによって検証される。５）において、データコンテンツの整合性がＯＫであれば、データＨＯＴＰに関連するカウンタ値ｒ’が読み出され、復号化されたデータコンテンツＨＯＴＰからＮ番目のデータフィールドが読み出される。ｒ’＞ｒと判定されると、ステップ６）において、ｒ’がＯＴＰＣ１０に書き込まれる。それ以外の場合は、５）において、エラーがあれば、バックアップＨＯＴＰデータがフラッシュメモリ２０に書き込まれ、フラッシュメモリ２０の読み取り手続きであるステップ３）が実行される。
【００４２】
図１Ｂは、本発明の代替の実施形態にかかる書き込み手続きにおける、メモリ構成の要素間でのデータフローを示す。本実施形態において、プロセッサ２５は、ＣＰＵと、内蔵ＳＷを備える。他の要素は、第１の実施形態と同様である。１）において、オペレーティングシステムは、ＯＴＰからのデータフィールドナンバーＮを書き込むコマンドを発行する。２）において、カウンタ値ｒがＯＴＰＣから読み出される。３）において、データＨＯＴＰがフラッシュメモリ２０から読み出される。４）において、データＨＯＴＰが復号化され、その整合性が検証される。５）において、データコンテンツの整合性がＯＫであれば、データＨＯＴＰに関連するカウンタ値ｒ’が読み出され、復号化されたデータＨＯＴＰからデータコンテンツＣが読み出される。５）においてそれ以外の場合、エラーがあれば、バックアップＨＯＴＰデータがフラッシュメモリ２０に書き込まれ、フラッシュメモリ２０の読み取り手続きが実行される。ｒ’＜ｒと判定されると、ステップ６）においてエラーがオペレーティングシステムに戻される。さもなければ、ｒ’＞ｒと判定されると、ｒ’がステップ７）においてＯＴＰＣ１０に書き込まれる。ステップ８において、データの当該ビットが１からおに設定されていないか、又は、データフィールドがロックされていないかをチェックすることによって、Ｎ番目のデータフィールドの更新が可能であるかどうかが検証される。ステップ９）において、検証が有効なものであれば、更新されるデータコンテンツＣ’が計算される。ステップ１０）において、更新されるデータコンテンツＣ’がカウント値ｒ’＋１にバインドされる。暗号化される更新ＨＯＴＰ’が算出され、整合性を保護した値が計算される。ステップ１１）において、ＨＯＴＰ’は、バックアップ位置に書き込まれ、ステップ１２）において、ＨＯＴＰ’がフラッシュメモリ２０のバックアップ位置に書き込まれ、エラーの場合にはメイン位置に書き込まれてもよい。
【００４３】
本発明の複数の実施形態は、データビットが設定されるがアンセットされないようにし、これにより、ハードウェアＯＴＰの同等の機能を提供する、セキュリティ保護されたメモリへのアクセスを提供する。
【００４４】
本発明の実施形態に係る方法は、整合性と秘匿性を保護した機密データの格納に関するアプリケーションである。例えば、本発明の実施形態は、モバイルプラットフォームセットトップボックス、及び車載デバイスなどの電子デバイスにおいてロールバックを防止することにおいて、無線を介して更新可能なソフトウェア若しくはファームウェア、オンライン又はそれ以外のストレージで適用されてもよく。本発明の他の実施形態は、セキュアデバイスで、機密個人データ、商業データ、セキュリティデータなどの格納に適用されてもよい。
【００４５】
特定の実施形態を参照して本発明について説明したが、本発明は、これら特定の実施形態に限定されず、様々な変形が本発明の範囲内で可能であることを当業者は理解するであろう。
【００４６】
例えば、上述した例においてデータコンテンツの全ては再書き込み可能なメモリに格納される一方で、他の実施形態において、データコンテンツの一部が再書き込み可能なメモリに格納され、データコンテンツの一部がＯＴＰメモリ部に格納されてもよいことが理解されるであろう。
【００４７】
様々な修正及び変形が、上述した図示した実施形態を参照して、当業者に提案されるであろう。これらは、上述の例を用いて与えられ、添付の特許請求の範囲によってのみ決定される本発明の範囲を限定する意図はない。特に、異なる実施形態からの種々の特徴は、適切に交換されうる。
【００４８】
特許請求の範囲において、用語「備える」は、他の要素、又はステップを排除せず、冠詞”ａ”及び”ａｎ”は、複数を排除することはない。種々の特徴が相互に異なる従属請求項に記載されたという単なる事実は、それらの特徴の組み合わせが有利に使用することができないということを示してはいない。特許請求項内の任意の参照符号は、本発明の範囲を限定するものとして解釈されるべきではない。
【図１Ａ】
2013514573.tif 000003
【図１Ｂ】
2013514573.tif 000004
【図２Ａ】
2013514573.tif 000005
【図２Ｂ】
2013514573.tif 000006
【図２Ｃ】
2013514573.tif 000007
【図３】
2013514573.tif 000008
【国際調査報告】
2013514573.tif 000009
2013514573.tif 000010