特許第5705235号(P5705235)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エスティー‐エリクソン(フランス)エスエーエスの特許一覧 ▶ エスティー‐エリクソン、ソシエテ、アノニムの特許一覧

<>
  • 特許5705235-データを格納するための方法及び装置 図000002
  • 特許5705235-データを格納するための方法及び装置 図000003
  • 特許5705235-データを格納するための方法及び装置 図000004
  • 特許5705235-データを格納するための方法及び装置 図000005
  • 特許5705235-データを格納するための方法及び装置 図000006
  • 特許5705235-データを格納するための方法及び装置 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5705235
(24)【登録日】2015年3月6日
(45)【発行日】2015年4月22日
(54)【発明の名称】データを格納するための方法及び装置
(51)【国際特許分類】
   G06F 21/64 20130101AFI20150402BHJP
   G06F 12/14 20060101ALI20150402BHJP
【FI】
   G06F21/64
   G06F12/14 510A
【請求項の数】13
【全頁数】13
(21)【出願番号】特願2012-543806(P2012-543806)
(86)(22)【出願日】2010年12月17日
(65)【公表番号】特表2013-514573(P2013-514573A)
(43)【公表日】2013年4月25日
(86)【国際出願番号】EP2010070165
(87)【国際公開番号】WO2011073435
(87)【国際公開日】20110623
【審査請求日】2013年12月13日
(31)【優先権主張番号】09306277.6
(32)【優先日】2009年12月18日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】511165832
【氏名又は名称】エスティー‐エリクソン(フランス)エスエーエス
【氏名又は名称原語表記】ST−ERICSSON (FRANCE) SAS
(73)【特許権者】
【識別番号】510000633
【氏名又は名称】エスティー‐エリクソン、ソシエテ、アノニム
(74)【代理人】
【識別番号】100076428
【弁理士】
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100112508
【弁理士】
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100115071
【弁理士】
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100116894
【弁理士】
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【弁理士】
【氏名又は名称】下山 治
(72)【発明者】
【氏名】シベルト, エルベ
【審査官】 宮司 卓佳
(56)【参考文献】
【文献】 欧州特許第01640844(EP,B1)
【文献】 特開平05−189987(JP,A)
【文献】 特開平03−214498(JP,A)
【文献】 特開2008−117385(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/60−64
G06F 12/14
(57)【特許請求の範囲】
【請求項1】
データコンテンツを格納する方法であって、
再書き込み可能なメモリデバイスにおいてデータコンテンツの少なくとも一部を格納するステップと、
前記データコンテンツの状態に関連するnビットカウント値nビットを有し、各ビットの状態を1回だけ変更可能な一時プログラマブルメモリに格納するステップと、を含み、
前記nビットカウント値は、前記再書き込み可能なメモリデバイスにおいてデータコンテンツの各変更に対して、前記nビットの1つの状態を変更することによって、前記一時プログラマブルメモリでインクリメントされ、
前記nビットカウント値は、前記再書き込み可能なメモリデバイスに格納されたnビットカウント値(r’)と、前記一時プログラマブルメモリに格納されたnビットカウント値(r)とを比較することによって、格納されたデータの破損を検知するために、前記再書き込み可能なメモリデバイスへの読み込みの際に使用すべく、対応する前記データコンテンツとともに該再書き込み可能なメモリデバイスへ書き込まれ、
前記再書き込み可能なメモリデバイスの前記データコンテンツを変更する書き込み操作中に、該書き込み操作が許可されているか否かを判定するために、各データビットが前記再書き込み可能なメモリデバイスに既に格納されている古いデータコンテンツにおいて1に設定され、新たなデータコンテンツにおいて1に設定されるかを検証するようにチェックされることを特徴とする方法。
【請求項2】
前記再書き込み可能なメモリデバイスに格納された前記データコンテンツは、nデータフィールドから成り、
前記データフィールドが変更されるたびに、前記一時プログラマブルメモリに格納されたnビットカウント値のビットが0から1に設定されることを特徴とする請求項1に記載の方法。
【請求項3】
前記データコンテンツは、前記再書き込み可能なメモリデバイスに対して固有の暗号化キーを用いて該再書き込み可能なメモリデバイスに格納され、
前記暗号化キーは、前記一時プログラマブルメモリのデータフィールドに格納されることを特徴とする請求項1又は2に記載の方法。
【請求項4】
前記一時プログラマブルメモリに格納される前記カウント値は、前記データコンテンツが前記再書き込み可能なメモリデバイスに書き込まれる前に、前記データコンテンツに連結されることを特徴とする請求項1乃至3の何れか1項に記載の方法。
【請求項5】
前記データコンテンツの各データフィールドが対応するロックビットフィールドを有し、
前記ロックビットフィールドは、対応する前記データフィールドが、該データフィールドが一度変更されるともう変更することができないことを示すように設定され、
前記データコンテンツが変更される書き込み操作中に、前記ロックビットフィールドは、前記データが前記データフィールドに書き込まれることが可能かどうかを判定するようにチェックされることを特徴とする請求項1乃至4の何れか1項に記載の方法。
【請求項6】
前記再書き込み可能なメモリデバイスに格納されたデータ読み取る読み取り操作中に、前記一時プログラマブルメモリに格納された前記カウント値は、前記再書き込み可能なメモリデバイスから読み取られた前記カウント値が前記一時プログラマブルメモリに格納された前記カウント値よりも大きいかどうかを判定するために、前記再書き込み能なメモリデバイスから読み取られた前記データコンテンツに関連する前記カウント値と比較されることを特徴とする請求項1乃至の何れか1項に記載の方法。
【請求項7】
電子デバイスであって、
データコンテンツの少なくとも一部と、該データコンテンツに関連するnビットカウント値とを格納する再書き込み可能なメモリ部と、
nビットを有し、各ビットの状態を1回だけ変更可能な一時プログラマブルメモリであって、前記データコンテンツの状態に関連するnビットカウント値を格納する前記一時プログラマブルメモリと、
ロセッサと
を備え、
前記プロセッサは、前記再書き込み可能なメモリ部における前記データコンテンツの変更ごとに前記nビットの1つの状態を変更することによって、前記一時プログラマブルメモリの前記nビットカウント値をインクリメントするように動作可能であり、
前記プロセッサは、さらに、前記再書き込み可能なメモリデバイスに格納されたnビットカウント値(r’)と、前記一時プログラマブルメモリに格納されたnビットカウント値(r)とを比較することによって、格納されたデータの破損を検知するために、前記再書き込み可能なメモリデバイスへの読み込みの際に使用すべく、対応する前記データコンテンツとともに該再書き込み可能なメモリデバイスへ前記nビットカウント値を書き込むように動作可能であり、
前記プロセッサは、前記再書き込み可能なメモリデバイスの前記データコンテンツを変更する書き込み操作中に、該書き込み操作が許可されているか否かを判定するために、各データビットが前記再書き込み可能なメモリデバイスに既に格納されている古いデータコンテンツにおいて1に設定され、新たなデータコンテンツにおいて1に設定されるかを検証するように動作可能であることを特徴とする電子デバイス。
【請求項8】
前記再書き込み可能なメモリ部に格納された前記データコンテンツは、nデータフィールドから成り、
前記データフィールドが変更されるたびに、前記一時プログラマブルメモリに格納されたnビットカウント値のビットが0から1に設定されることを特徴とする請求項に記載の電子デバイス。
【請求項9】
前記プロセッサは、
前記再書き込み可能なメモリ部の前記データコンテンツを、前記再書き込み可能なメモリ部に対して固有の暗号化キーを用いて格納するように動作可能であり、
前記暗号化キーは、前記一時プログラマブルメモリのデータフィールドに格納されることを特徴とする請求項7又は8に記載の電子デバイス。
【請求項10】
前記プロセッサは、
前記一時プログラマブルメモリに格納される前記カウント値を、前記データコンテンツが前記再書き込み可能なメモリ部に書き込まれる前に、前記データコンテンツに連結させるように動作可能であることを特徴とする請求項7乃至9の何れか1項に記載の電子デバイス。
【請求項11】
前記データコンテンツの各データフィールドが対応するロックビットフィールドを有し、
前記ロックビットフィールドは、対応する前記データフィールドが、該データフィールドが一度変更されるともう変更することができないことを示すように設定され、
前記プロセッサは、
前記データコンテンツが変更される書き込み操作中に、前記ロックビットフィールドを、前記データが前記データフィールドに書き込まれることが可能かどうかを判定するようにチェックすることを特徴とする請求項7乃至10の何れか1項に記載の電子デバイス。
【請求項12】
前記プロセッサは、
前記再書き込み可能なメモリ部に格納されたデータ読み取る読み取り操作中に、前記一時プログラマブルメモリに格納された前記カウント値を、前記再書き込み能なメモリ部から読み取られた前記カウント値が前記一時プログラマブルメモリに格納された前記カウント値よりも大きいかどうかを判定するために、前記再書き込み可能なメモリ部から読み取られた前記データコンテンツに関連する前記カウント値と比較するように動作可能であることを特徴とする請求項7乃至11の何れか1項に記載の電子デバイス。
【請求項13】
データ処理デバイスで読み取り可能な記憶媒体であって、該データ処理デバイスにロードされると該データ処理デバイスを、請求項1乃至の何れか1項に記載の方法の各ステップを実行するように動作させるコンピュータプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的には、データを格納する方法及び装置に関するものである。特に排他的ではないが、本発明は、データコンテンツを格納する一時プログラマブルメモリ及び再書き込み可能なメモリを用いて、機密事項のデータを格納する方法に関するものである。
【背景技術】
【0002】
機密事項のデータのセキュアな格納(ストレージ)における一般的な要件は、一度は書き込むことが保証されたメモリフィールドであって、一度メモリフィールドに書き込まれると変更することができないメモリフィールドを有するメモリを提供することである。
【0003】
セキュアデータの格納のいくつかの形式は、秘匿性及び整合性を提供する固有のキーを用いた暗号化のメカニズムに基づくものである。しかしながら、そのような格納では、セキュアメモリの前回のコンテンツと、格納されるデータコンテンツとを置き換えることが可能である。例えば、当該データの日付Tで推定される状態がセキュアストレージに格納され、日付T’に当該データが変更されると、セキュアストレージのデータと、日付Tでのセキュアストレージのデータのコピーとを置き換えることによって前のデータ状態に戻すことが可能である。ソフトウェアの最近のバージョンにアップデートするソフトウェアの場合の例では、ロールバックとして望まない処理が頻繁に参照される、ソフトウェアのより古いバージョンによって置き換えられてもよい。
【0004】
一時プログラマブル(OTP)メモリは、整合性及び秘匿性の少なくとも一方が保護されるべき機密データを格納するためによく用いられる。OTPメモリは、各ビットの設定がヒューズ又はアンチヒューズによってロックされうるデジタルメモリの形式である。当該メモリは、ヒューズの場合には接続を開放し、或いは、アンチヒューズの場合には接続を閉じる不可逆処理によって製造された後に一度プログラムされうる。多くのOTPメモリに埋め込まれたいくつかの処理(ベースバンド、アプリケーションプロセッサ)は、各チップでユニークな少なくとも1つの秘密鍵を含む。当該キーは、その後、データをプラットフォームにバインドする製造によって頻繁に必要とされるセキュアストレージ機能を提供するために使用されうる。
【0005】
しかしながら、OTPメモリは非常にコストが高い。特に、少なくとも128ビットを含む複数のキー及び複数のハッシュの格納の場合において、データの格納に関連するコストは非常に高いものである。
【0006】
さらに、OTPをプログラムする際によく発生する問題は、プログラムング手続き中に電力損失が発生する場合である。電力が回復した後にOTPメモリを再読み込みする場合には、メモリの書き込み中に起こった電力損失のため、エラーが示されるであろう。しかしながら、指示されたエラーが電力の損失に関連するのか、或いは、OTPメモリに書き込むことを許可されなかったなどの他の要因に関連するのかが明瞭ではない。
【発明の概要】
【0007】
本願発明は、上述の問題に鑑みて成されたものである。
【0008】
即ち、本発明の第1の形態は、データコンテンツを格納する方法を提供し、当該方法は、再書き込み可能なメモリデバイスにおいてデータコンテンツの少なくとも一部を格納するステップと、一時プログラマブルメモリに前記データコンテンツの状態に関連するnビットカウント値であって、対応するデータコンテンツとともにセキュアメモリデバイスに書き込まれる前記nビットカウント値を格納するステップと、を含み、前記nビットカウント値は前記再書き込み可能なメモリデバイスにおいてデータコンテンツの各変更に対して、インクリメントされ、前記一時プログラマブルメモリに格納される。一時プログラマブルメモリのビット数は、格納されるデータコンテンツの可能性のある変更の数に対応してもよい。
【0009】
本発明の第2の形態は、電子デバイスを提供し、電子デバイスは、データコンテンツの少なくとも一部と、該データコンテンツに関連するnビットカウント値とを格納する再書き込み可能なメモリ部と、前記データコンテンツの状態に関連するnビットカウント値を格納する一時プログラマブルメモリと、前記再書き込み可能なメモリ部を操作するプロセッサとを備え、前記一時プログラマブルメモリは、前記再書き込み可能なメモリ部における前記データコンテンツの変更ごとに前記nビットカウント値をインクリメントするように操作可能であることを特徴とする。一時プログラマブルメモリのビット数は、格納されるデータコンテンツの可能性のある変更の数に対応してもよい。
【0010】
本発明の実施形態において、
・前記再書き込み可能なメモリデバイスに格納された前記データコンテンツは、nデータフィールドから成り、前記データフィールドが変更されるたびに、前記一時プログラマブルメモリに格納されたnビットカウント値のビットが0から1に設定される。
【0011】
・前記データコンテンツは、前記再書き込み可能なメモリデバイスに対して固有の暗号化キーを用いて該再書き込み可能なメモリデバイスに格納され、前記暗号化キーは、前記一時プログラマブルメモリのデータフィールドに格納される。
【0012】
・前記一時プログラマブルメモリに格納される前記カウント値は、前記データコンテンツが前記再書き込み可能なメモリデバイスに書き込まれる前に、前記データコンテンツに連結される。
【0013】
・前記データコンテンツの各データフィールドが対応するロックビットフィールドを有し、前記ロックビットフィールドは、対応する前記データフィールドが、該データフィールドが一度変更されるともう変更することができないことを示すように設定され、前記データコンテンツが変更される書き込み操作中に、前記ロックビットフィールドは、前記データが前記データフィールドに書き込まれることが可能かどうかを判定するようにチェックされる。
【0014】
・前記再書き込み可能なメモリデバイスの前記データコンテンツを変更する書き込み操作中に、該書き込み操作が許可されているか否かを判定するために、各データビットが前記古いデータコンテンツにおいて1に設定され、前記新たなデータコンテンツにおいて1に設定されるかを検証するようにチェックされる。
【0015】
・前記再書き込み可能なメモリデバイスに格納されたデータ読み取る読み取り操作中に、前記一時プログラマブルメモリに格納された前記カウント値は、前記再書き込み可能なメモリデバイスから読み取られた前記カウント値が前記一時プログラマブルメモリに格納された前記カウント値よりも大きいかどうかを判定するために、前記再書き込み能なメモリデバイスから読み取られた前記データコンテンツに関連する前記カウント値と比較される。
【0016】
・前記データコンテンツは、前記再書き込み可能なメモリデバイスのメイン位置と、前記再書き込み可能なメモリデバイスのバックアップ位置に格納されてもよく、それにより、前記バックアップ位置に格納された前記データコンテンツは、エラーの場合に前記メイン位置へコピーされてもよい。
【0017】
本発明に係る少なくとも一部は、コンピュータに実装されてもよく、プログラマブル装置に実装されてもよい。それらは、また、ハードウェアのみ、ソフトウェアのみ、又は、それらの組み合わせとして実装されてもよい。
【0018】
本発明がソフトウェアで実装されうるため、本発明は、適切な記憶媒体でプログラマブル装置に提供するコンピュータで読取可能なコードとして具現化されうる。有形の記憶媒体は、フロッピディスク(登録商標)、CD−ROM、ハードディスクドライブ、磁気テープデバイス、又は固体記憶装置などの記憶媒体を含んでもよい
【図面の簡単な説明】
【0019】
以下の図面を参照して、本発明の実施形態の一例について説明する。
図1A】読み取り手続きのデータフローを示す本発明の第1の実施形態に係る電子デバイスにおけるメモリ装置の概略図を示す。
図1B】書込手続きのデータフローを示す本発明の第2の実施形態に係る電子デバイスにおけるメモリ装置の概略図を示す。
図2A】本発明の第1の実施形態に係る初期化手続きのステップを示すフローチャートである。
図2B】本発明の第1の実施形態に係る読込手続きのステップを示すフローチャートである。
図2C】本発明の第1の実施形態に係る書込手続きのステップを示すフローチャートである。
図3】本発明の実施形態に係る書込手続きの一部を示すブロック図である。
【発明を実施するための形態】
【0020】
以下では、図1を参照して、本発明に係るメモリ構成1の第1の実施形態について説明する。無線通信デバイスなどの電子デバイスは、一時プログラマブル(OTP)メモリ10と、フラッシュEPROMメモリなどの再書き込み可能な不揮発性メモリデバイス20とのハードウェアを備える。再書き込み可能なメモリ20は、CPUとオペレーティングシステム30と通信を行うチップセットファームウェア25を用いて制御される。攻撃に対して安全に格納されるべきデータコンテンツCは、nデータフィールドから構成される。OTPメモリ10はnビットを格納し、nビットの1つを0から1へ設定することによってインクリメントされうるカウンタOTPCとして動作する。本実施形態において、OTPメモリ10によって格納されうるビットnの数は、発生しうるデータコンテンツの変更の最大数に対応する。さらに、本実施形態において、データコンテンツの変更の最大数は、時刻でフィールドが書き込まれるため、データコンテンツのフィールド数nに対応する。書き込み可能なメモリデバイス20は、データコンテンツCがOTPメモリよりもむしろ再書き込み可能な不揮発性メモリ20に格納されることを可能とするデータコンテンツのnフィールドを格納するためのセキュアストレージとして実装される。本発明のいくつかの実施形態において、データのデータフィールドの一部が再書き込み可能なメモリデバイスに格納されてもよく、一方で残ったデータフィールドがOTPタイプのメモリに格納されてもよい。
【0021】
本実施形態において、OTPCのビット数がデータコンテンツのデータフィールドの数に対応する一方で、本発明の代替の実施形態においてOTPCにおけるビット数”n”とフィールド数とは等しい必要はない。いくつかの実施形態において、再書き込み可能なメモリは、ビットが0に戻される可能性のあるデータフィールドを含んでもよく、例えば、OTPCサイズがデータフィールドの数よりも大きくなるような、更新されうるバイナリ形式の数値をデータフィールドに書き込む。一方で、ここでは、OTPCにおけるビット数がデータフィールドの数よりも少ない場合において、同時に更新されるべきと推定される再書き込み可能なメモリのいくつかのデータフィールドに対してデータコンテンツの定義が含まれてもよい。
【0022】
データは、チップセットに固有の暗号化キーを用いることによって、当該データの秘匿性及び整合性の両方を保護し、安全にデータを格納し、取り出すために、セキュアストレージ操作を用いて再書き込み可能なメモリ20へ格納され、当該メモリ20から取り出されてもよい。本発明のいくつかの実施形態において、暗号化キーは、OTPメモリ10のOTPフィールドに格納されてもよく、或いは、メモリ装置に関連する他のOTPメモリに格納されてもよい。暗号化/復号化機能は、メモリデバイス20でデータコンテンツを格納するために使用されてもよい。例えば、暗号化/復号化機能は、メモリデバイス20にデータを読み書きするために使用されうるデバイスに埋め込まれた128ビットキーでの暗号ブロック連鎖モードでアドヴァンスド暗号化基準FIPS 197によって実装されてもよい。暗号化/復号化機能は、書込操作中にそれを書き込むために、或いは、読み取り操作中にそれを検証するためにデータコンテンツの痕跡を計算する整合性保護機能と組み合わされてもよい。この整合性保護機能は、パブリックな署名、メッセージ認証コード(MAC)などであってもよい。そのような機能によって暗号化され、整合性が保護されるデータコンテンツは、OTPメモリのカウント値rと同様にデータコンテンツ自身を含む。
【0023】
カウント値r、1に設定されるOTPCのビット数に対応する、OTPメモリカウンタ(OTPC)10の状態は、再書き込み可能なメモリ20にデータコンテンツCに関連付けられる。これは、データコンテンツを再書き込み可能なメモリ20へ書き込む前に、OTPメモリ10のカウント値をデータコンテンツCに連結することによって達成されうる。
【0024】
以下では、図2A乃至図2Cを参照して、メモリ装置の動作について説明する。図2AのステップS11において、OTPメモリ10に格納される値rを時刻t=0で0に設定することによって、初期化処理が実行される。時刻t=0でのデータコンテンツCはOTP(0)として定義され、ステップS13においてセキュアストレージ手続きを用いてメモリ20へ書き込まれる。時刻0で再書き込み可能なメモリデバイス20にセーブされた値HOTP(0)は、その後、HOTP(0)=SecWrite(0...0||OTP(0))となる。ここで、0...0は、OTPC10において1に設定されるビットの数がであるバイナリ値、即ち、時刻t=0で0として読まれる固定長フィールドである。||は連結を示す。
【0025】
時刻t(t>0)で読み取るために、メモリ20に格納されたデータコンテンツの読み取り手続きが図2Bに示される。
【0026】
・ステップS21において、OTPメモリ10のOTPC値r(ビットの数値を1に設定)を読み出す。
【0027】
・ステップS22において、再書き込み可能なメモリデバイス20の時刻tでデータコンテンツCを読み出すためにSecRead(HOTP(t))を計算する。
【0028】
・ステップS23において、r’>rをチェックする、例えば、r’=r+1、r’=r+2など。r’=rであれば、再書き込み可能なメモリデバイス20のデータコンテンツCが変更されていない、r’=r+1であれば、データコンテンツCは変更されている。r’=r+2であれば、2つのデータフィールドが一度更新されている。それ以外の場合、メモリデバイス20に格納されているデータが、再生攻撃によって破損しており、デバイスの操作がブロックされるべきである。データCが取り出されるOTP(t)=C。
【0029】
・ステップS24において、r’>rであれば、r’−rビットを1に設定することによってOTPCを更新する。これは、データコンテンツCが変更されているが、OTPカウンタメモリ10が新たな値r’でまだ更新されていない場合の可能性がある。
【0030】
時刻tで書き込むために、t>0、データC’をメモリデバイス20へ、以下のように、図2Cに示す書き込み手続きが実行される。
【0031】
・ステップS31において、図2Bを用いて上述したように、読み取り操作を実行することによって、メモリデバイス20に格納された現行データCOTP(t)=Cを取り出す。
【0032】
・ステップS32において、メモリデバイス20に格納されるべきデータの新たな値C’がメモリ20から取り出したデータCに従うかどうか、即ち、前のデータCにおける各ビット1が新たなデータCにおいても1となるかをチェックする。そうでなければ、データビットの状態を0から1へ変更することのみが書き込み手続きにおいて許可されるため当該操作を取りやめる。
【0033】
・ステップS33において、コマンドHOTP(t+1)=SecWrite(r+||C’)によって、新たなデータC’に連結された新たなカウントr+1を書き込むことにより、メモリに格納されたCをデータC’に更新する。
【0034】
・ステップS34において、ビットr+1を1に設定することによって、OTPメモリ10OTPCに格納されたカウントを更新する。
【0035】
OTPメモリ10に格納されたカウントrの更新は、新たなデータC’が外部メモリデバイス20に正しく格納された後に実行される。
【0036】
外部破損の場合、書き込み手続き中の電力損失の例において、書き込み可能なメモリデバイス20にデータコンテンツがまだ更新されてなければ、書き込み操作が新たなデータC’をメモリデバイス20へ書き込むように再始動されうる。この場合、新たなデータC’を書き込む前に、再書き込み可能なメモリデバイス20のデータコンテンツ古いデータCに変換されることができる。再書き込み可能なメモリデバイス20のデータコンテンツが新たなデータC’で更新されたものの、OTPメモリカウンタ10OTPCのカウントrが電力損失前に更新されていなければ、その後、OTPC10のカウントrが、rをr’=r+1に設定することによって次の読み取りフェーズ中に更新されるであろう。これは、エラー訂正機能を提供することを可能にする。
【0037】
メモリデバイス20への各書き込み操作によれば、再書き込み可能なメモリデバイス20においてデータビットの数が変更されることに関わらず、OTPメモリカウンタOTPC10のnビットのうちの1ビットが正確に設定される。リアルハードウェアOTPにおいて、各データフィールドは、最大で1回変更されることを意味する。外部の再書き込み可能なメモリデバイス20において各フィールドが最大で1回変更されることを保証するために、本発明のいくつかの実施形態によれば、「ロックビットフィールド」が、全てのデータフィールドに追加されうる。このブロックビットは、その後、フィールドが既に書き込まれたことを示すメモリデバイス20の対応するデータフィールドが書き込み操作によって変更される際に、1に設定される。これは、まだ書き込まれていないデータフィールドに対して唯一許可されるデータフィールドの変更を可能とする。ハードウェア一時プログラマブルメモリにおいて、かなり頻繁に、フィールド(複数のフィールドのセット)は、当該フィールド(当該複数のフィールドのセット)が変更可能であるかどうかを示す「ロックビット」と呼ばれるツインフィールドを有する。追加のロックフィールド高機能化に伴い、既存のオリジナルHW OTP ロックフィールドは、その後、無視されるか、又は、追加のロックフィールドへマッピングされる。
【0038】
図3を参照すると、書き込み操作は、ロックフィールドのステータス(状態)を再設定するデータをアンロックする試みがあるかどうかを判定するために、ロックフィールドのローカルステータスをチェックするステップを含むことができる。これは、書き込まれるべき新たなデータフィールドHOTP_newのロックフィールドlock’に格納されるように、データフィールドHOTP_oldのロックフィールドのビット間での論理AND操作を含む。代替的に、データHOTP_oldは、ロックされたデータフィールドのHTOP_oldが変更されていないことを保証するようにチェックされる。HTOP_oldにおいて1に設定される複数のビットは、HOTP_oldにおいて1に設定されるビットがHOTP_newにおいても1に設定されることを保証する論理AND操作によってHOTP_newのビットがチェックされる。新たなデータコンテンツHOTP_newがHOTP_resultとして古いデータコンテンツHOTP_oldに置き換えられる。カウンタOTPCは、他のビットを1に設定するようにインクリメントされる。
【0039】
OTPCの全てのビットが1に設定されれば、これは、再書き込み可能なメモリ20のnフィールドのそれぞれが一度更新されたことを示す。再書き込み可能なメモリ20のさらなるデータの更新は実行されない。
【0040】
本発明の実施形態は、ソフトウェアによって管理され、HW OTPとして同様のセキュリティプロパティ(秘匿性、整合性、アンチリプレイでの変更)を有する、外部ストレージ(例えば、フラッシュメモリ)のHW OTPメモリに格納されるであろうデータの少なくとも一部を格納することによって減少する機密データを格納するのに必要なOTPのサイズを可能にする。必要とされるOTPのサイズは、OTPの各ビットが潜在的な更新に対応する、実行されそうな更新の数に依存する。
【0041】
図1Aは、本発明の第1の実施形態に係る読み取り手続きにおけるメモリ構成の要素間でのデータフローを示す。1)において、オペレーティングシステムは、OTPからデータフィールドナンバーNを読み取るためにコマンドを送信する。2)において、カウンタ値rがOTPCから読み取られる。3)において、データHOTPが、フラッシュメモリ20から読み出される。4)において、データコンテンツが復号化され、その整合性がCPUによって検証される。5)において、データコンテンツの整合性がOKであれば、データHOTPに関連するカウンタ値r’が読み出され、復号化されたデータコンテンツHOTPからN番目のデータフィールドが読み出される。r’>rと判定されると、ステップ6)において、r’がOTPC10に書き込まれる。それ以外の場合は、5)において、エラーがあれば、バックアップHOTPデータがフラッシュメモリ20に書き込まれ、フラッシュメモリ20の読み取り手続きであるステップ3)が実行される。
【0042】
図1Bは、本発明の代替の実施形態にかかる書き込み手続きにおける、メモリ構成の要素間でのデータフローを示す。本実施形態において、プロセッサ25は、CPUと、内蔵SWを備える。他の要素は、第1の実施形態と同様である。1)において、オペレーティングシステムは、OTPからのデータフィールドナンバーNを書き込むコマンドを発行する。2)において、カウンタ値rがOTPCから読み出される。3)において、データHOTPがフラッシュメモリ20から読み出される。4)において、データHOTPが復号化され、その整合性が検証される。5)において、データコンテンツの整合性がOKであれば、データHOTPに関連するカウンタ値r’が読み出され、復号化されたデータHOTPからデータコンテンツCが読み出される。5)においてそれ以外の場合、エラーがあれば、バックアップHOTPデータがフラッシュメモリ20に書き込まれ、フラッシュメモリ20の読み取り手続きが実行される。r’<rと判定されると、ステップ6)においてエラーがオペレーティングシステムに戻される。さもなければ、r’>rと判定されると、r’がステップ7)においてOTPC10に書き込まれる。ステップ8において、データの当該ビットが1からおに設定されていないか、又は、データフィールドがロックされていないかをチェックすることによって、N番目のデータフィールドの更新が可能であるかどうかが検証される。ステップ9)において、検証が有効なものであれば、更新されるデータコンテンツC’が計算される。ステップ10)において、更新されるデータコンテンツC’がカウント値r’+1にバインドされる。暗号化される更新HOTP’が算出され、整合性を保護した値が計算される。ステップ11)において、HOTP’は、バックアップ位置に書き込まれ、ステップ12)において、HOTP’がフラッシュメモリ20のバックアップ位置に書き込まれ、エラーの場合にはメイン位置に書き込まれてもよい。
【0043】
本発明の複数の実施形態は、データビットが設定されるがアンセットされないようにし、これにより、ハードウェアOTPの同等の機能を提供する、セキュリティ保護されたメモリへのアクセスを提供する。
【0044】
本発明の実施形態に係る方法は、整合性と秘匿性を保護した機密データの格納に関するアプリケーションである。例えば、本発明の実施形態は、モバイルプラットフォームセットトップボックス、及び車載デバイスなどの電子デバイスにおいてロールバックを防止することにおいて、無線を介して更新可能なソフトウェア若しくはファームウェア、オンライン又はそれ以外のストレージで適用されてもよく。本発明の他の実施形態は、セキュアデバイスで、機密個人データ、商業データ、セキュリティデータなどの格納に適用されてもよい。
【0045】
特定の実施形態を参照して本発明について説明したが、本発明は、これら特定の実施形態に限定されず、様々な変形が本発明の範囲内で可能であることを当業者は理解するであろう。
【0046】
例えば、上述した例においてデータコンテンツの全ては再書き込み可能なメモリに格納される一方で、他の実施形態において、データコンテンツの一部が再書き込み可能なメモリに格納され、データコンテンツの一部がOTPメモリ部に格納されてもよいことが理解されるであろう。
【0047】
様々な修正及び変形が、上述した図示した実施形態を参照して、当業者に提案されるであろう。これらは、上述の例を用いて与えられ、添付の特許請求の範囲によってのみ決定される本発明の範囲を限定する意図はない。特に、異なる実施形態からの種々の特徴は、適切に交換されうる。
【0048】
特許請求の範囲において、用語「備える」は、他の要素、又はステップを排除せず、冠詞”a”及び”an”は、複数を排除することはない。種々の特徴が相互に異なる従属請求項に記載されたという単なる事実は、それらの特徴の組み合わせが有利に使用することができないということを示してはいない。特許請求項内の任意の参照符号は、本発明の範囲を限定するものとして解釈されるべきではない。
図1A
図1B
図2A
図2B
図2C
図3