(57)【要約】処理装置に格納されるメモリコンテンツのバージョンを示すバージョンカウンタを維持する方法。上記方法は、第１または第２のモードで装置を選択的に操作することを含む。第１のモードへのアクセスは、許可ユーザに制限され、第２のモードへのアクセスとは別に制御される。第１のモードにおいて、少なくとも初期完全性保護値が、第２のモードでの処理装置の操作中、上記バージョンカウンタの初期カウンタ値を暗号保護するために生成される。その場合初期カウンタ値は、一連のカウンタ値から選択され、初期完全性保護値は、目下の完全性保護値として、格納媒体に格納される。第２のモードにおいて、目下のカウンタ値は、後続カウンタ値へインクリメントされる。その場合インクリメントは、目下の完全性保護値を上記格納媒体から削除することを含む。【選択図】図２
2009534765.tif 000002
【特許請求の範囲】
【請求項１】
処理装置によりバージョンカウンタを維持する方法であって、前記バージョンカウンタは、前記処理装置に格納されるメモリコンテンツのバージョンを示し、前記方法は、第１のモードおよび第２のモードのうち１つで前記処理装置を選択的に操作することを含み、その場合前記第１のモードで前記処理装置を操作することへのアクセスは、許可ユーザに制限され、前記第２のモードへのアクセスとは別に制御され、
その場合、前記第１のモードで前記処理装置を操作することは、
前記第２のモードでの前記処理装置の操作中、前記バージョンカウンタの初期カウンタ値の完全性を暗号保護するための少なくとも１つの初期完全性保護値を生成することと、その場合前記初期カウンタ値は、一連のカウンタ値から選択されることと、
格納媒体に目下の完全性保護値として前記初期完全性保護値を格納すること
を含み、
その場合、前記第２のモードで前記処理装置を操作することは、目下のカウンタ値を後続カウンタ値へインクリメントすることを含み、前記後続カウンタ値は、前記一連のカウンタ値において前記目下のカウンタ値の後に続き、その場合インクリメントすることは、前記目下のカウンタ値の完全性を暗号保護するための前記目下の完全性保護値を前記格納媒体から削除することを含む、方法。
【請求項２】
前記第１のモードで前記処理装置を操作することは、
一連のカウンタ値のそれぞれの完全性を暗号保護するための一連の完全性保護値を生成することと、その場合前記一連のカウンタ値は、前記初期カウンタ値から始まり、連続して並べられることと、
格納媒体に前記一連の完全性保護値を格納することと
を含む、請求項１に記載の方法。
【請求項３】
前記装置が前記第１および第２のモードのうち前記第１のモードで操作される場合のみ、前記一連の完全性保護値の生成完全性保護値を出力するように適合される完全性保護値計算部を提供することをさらに含む請求項２に記載の方法。
【請求項４】
目下のカウンタ値を後続カウンタ値へインクリメントすることは、前記後続カウンタ値に対応する後続完全性保護値を生成することと、前記目下の完全性保護値を前記後続完全性保護値で置き換えることとを含む、請求項１に記載の方法。
【請求項５】
前記後続完全性保護値を生成することは、前記目下の完全性保護値に基づいて前記目下のカウンタ値を検証することと、前記目下のカウンタ値の成功検証を条件として前記後続完全性保護値を生成することとを含む、請求項４に記載の方法。
【請求項６】
各生成完全性保護値は、対応する前記カウンタ値および前記装置に固有である、請求項１から５のいずれか１項に記載の方法。
【請求項７】
各生成完全性保護値は、前記バージョンカウンタの値およびシークレットキー値からメッセージ認証符号関数により生成されるメッセージ認証符号値である、請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記シークレットキー値は装置固有である、請求項７に記載の方法。
【請求項９】
前記カウンタ値の各々は装置固有である、請求項１から８のいずれか１項に記載の方法。
【請求項１０】
対応する前記完全性保護値を用いた前記カウンタ値の前記生成および検証は、完全性保護モジュールにより実施され、前記完全性保護モジュールは修正に対して安全である、請求項１から９のいずれか１項に記載の方法。
【請求項１１】
前記完全性保護モジュールはハードウェアモジュールである、請求項１０に記載の方法。
【請求項１２】
前記処理装置はプログラム可能マイクロプロセッサである、請求項１から１１のいずれか１項に記載の方法。
【請求項１３】
前記処理装置は移動端末である、請求項１から１２のいずれか１項に記載の方法。
【請求項１４】
前記格納媒体は前記処理装置に備わる、請求項１から１３のいずれか１項に記載の方法。
【請求項１５】
前記カウンタはソフトウェアバージョンカウンタである、請求項１から１４のいずれか１項に記載の方法。
【請求項１６】
前記メモリコンテンツの更新バージョンを受信することと、前記更新バージョンはバージョンインジケータを含むことと、
受信された前記メモリコンテンツの真正を検証することと、
前記バージョンインジケータおよび前記バージョンカウンタの目下の値に基づいて、受信された前記更新メモリコンテンツのバージョン制御を行うことと、
前記バージョン制御の結果を条件に、受信された前記更新メモリコンテンツを受け入れること
をさらに含む、請求項１から１５のいずれか１項に記載の方法。
【請求項１７】
前記バージョンカウンタを、受信された前記更新メモリコンテンツの前記バージョンインジケータに対応する後続カウンタ値へインクリメントすることをさらに含む請求項１６に記載の方法。
【請求項１８】
受け入れることは、前記処理装置に格納されるメモリコンテンツを、受け入れられた前記更新メモリコンテンツで更新することを含む、請求項１から１７のいずれか１項に記載の方法。
【請求項１９】
データ処理装置上で実行されると請求項１から１８のいずれか１項に記載の方法を行うように適合されるプログラム符号手段を備えるコンピュータプログラム製品。
【請求項２０】
処理装置に格納されるメモリコンテンツのバージョンを示すバージョンカウンタを維持するように構成される前記処理装置であって、前記処理装置は、第１のモードおよび第２のモードのうち１つで選択的に操作可能であり、その場合前記第１のモードで前記処理装置を操作することへのアクセスは、許可ユーザに制限され、前記第２のモードへのアクセスとは別に制御され、
その場合、前記処理装置は、前記第１のモードで操作される場合、
前記バージョンカウンタの少なくとも１つの初期カウンタ値を生成するステップと、その場合前記初期カウンタ値は、一連のカウンタ値から選択されることと、
前記第２のモードでの前記処理装置の操作中、生成された前記初期カウンタ値の完全性を暗号保護するための初期完全性保護値を生成するステップと、
格納媒体に目下の完全性保護値として前記初期完全性保護値を格納するステップと
を行うように構成され、
その場合、前記処理装置は、前記第２のモードで操作される場合、目下のカウンタ値を後続カウンタ値へインクリメントするようにさらに構成され、前記後続カウンタ値は、前記一連のカウンタ値において前記目下のカウンタ値の後に続き、その場合インクリメントすることは、前記目下のカウンタ値の完全性を暗号保護するための前記目下の完全性保護値を前記格納媒体から削除することを含む、処理装置。
【請求項２１】
前記第１のモードで操作される場合、
一連のカウンタ値を生成するステップと、その場合前記一連のカウンタ値は、前記初期カウンタ値から始まり、連続して並べられることと、
生成された前記一連のカウンタ値のそれぞれの完全性を暗号保護するための、対応する一連の完全性保護値を生成するステップと、
格納媒体に前記一連の完全性保護値を格納するステップと
を行うように構成される請求項２０に記載の処理装置。
【請求項２２】
前記装置が前記第１のモードおよび第２のモードのうち前記第１のモードで操作される場合にのみ、前記一連の完全性保護値の生成完全性保護値を出力するように適合される完全性保護値計算部を備える請求項２１に記載の処理装置。
【請求項２３】
前記後続カウンタ値に対応する後続完全性保護値を生成し、前記目下の完全性保護値を前記後続完全性保護値で置き換えることにより、前記目下のカウンタ値を後続カウンタ値へインクリメントするようにさらに適合される請求項２０に記載の処理装置。
【請求項２４】
前記目下の完全性保護値を用いて前記目下のカウンタ値を検証し、前記目下のカウンタ値の成功検証を条件として前記後続完全性保護値を生成するようにさらに適合される請求項２３に記載の処理装置。
【請求項２５】
対応する前記カウンタ値および前記装置に固有となるように各完全性保護値を生成するようにさらに適合される請求項２０から２４のいずれか１項に記載の処理装置。
【請求項２６】
前記バージョンカウンタの値とシークレットキー値とからメッセージ認証符号関数により生成されるメッセージ認証符号値として各完全性保護値を生成するように適合される請求項２０から２５のいずれか１項に記載の処理装置。
【請求項２７】
前記シークレットキー値は装置固有である、請求項２６に記載の処理装置。
【請求項２８】
前記カウンタ値の各々は装置固有である、請求項２０から２７のいずれか１項に記載の処理装置。
【請求項２９】
対応する前記完全性保護値を用いて前記カウンタ値の前記生成および検証を実施するように適合される完全性保護モジュールを備え、その場合前記完全性保護モジュールは修正に対して安全である、請求項２０から２８のいずれか１項に記載の処理装置。
【請求項３０】
前記完全性保護モジュールはハードウェアモジュールである、請求項２９に記載の処理装置。
【請求項３１】
前記処理装置はプログラム可能マイクロプロセッサである、請求項２０から３０のいずれか１項に記載の処理装置。
【請求項３２】
前記処理装置は移動端末である、請求項２０から３１のいずれか１項に記載の処理装置。
【請求項３３】
前記処理装置は前記格納媒体を備える、請求項２０から３２のいずれか１項に記載の処理装置。
【請求項３４】
前記カウンタはソフトウェアバージョンカウンタである、請求項２０から３３のいずれか１項に記載の処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
カウンタを維持する方法、製品手段、および装置が開示される。
【背景技術】
【０００２】
携帯電話や他のデータ処理装置のような埋め込みシステムは、正しいソフトウェアの実行に依存する。さらに、ソフトウェアは、相当小さなシステムに対するものであってもますます複雑になり、それによりエラーのリスクと、意図せぬ特徴とが、特にソフトウェアサイクルの中の早期リリースにおいて増加している。さらに、早期ソフトウェアリリースの機能は概して制限されるものである。結果的に、埋め込み装置に格納されるソフトウェアの、古いバージョンから更新バージョンへの頻繁な更新がますます必要となっている。どのバージョンが装置にインストールされているか記録しておくために、概して装置はバージョンカウンタを維持し、バージョンカウンタの値が目下インストールされているバージョン番号に対応する。
【０００３】
例えば、無許可操作に対して静的および動的データを保護する、国際公開第０２／２７４４１号パンフレットに開示されている方法が知られているとはいえ、このような方法は、ソフトウェアバージョンのロールバックに対する保護を提供しない。例えば、このような方法は、ソフトウェアをインストールする許可を有するユーザが古いソフトウェアバージョンを再インストールすることを防止しない。
【０００４】
しかしながら、初期ソフトウェアバージョンを有する携帯電話を取得したユーザが、初期バージョンを超えてロールバックを行うこと、すなわち初期バージョンより古いものである古いソフトウェアバージョンをインストールすることを防止するソフトウェア更新ポリシーを実施することが一般的に望ましい。例えば古いソフトウェアバージョンは、ＳＩＭロックなどを破るなど、不正ユーザが無許可操作または望ましくない操作を装置で行うことを可能にするエラーを含み得るため、このような無許可ロールバックは望ましくない場合がある。
【０００５】
ゆえに、初期ソフトウェアバージョン、概してユーザが取得した処理装置が有するバージョンを超えるソフトウェアロールバックをユーザが行うことを防止するバージョンカウンタを維持する方法を提供することが一般的に望ましい。
【０００６】
装置に格納されるデータが、例えば他の保護要素へのアクセスを制御するために使用されるデータのような保護データの最新許可バージョンであることを検証するアクセス制御システムを、国際公開第０１／３３３１７号パンフレットが開示している。この先行技術コントロールアクセスシステムは、カウンタと、保護されようとするデータにカウンタのコンテンツを結び付けるパラメータを含むように構成される安全メモリ場所とを備える。
【０００７】
しかしながら、上述の先行技術システムが一方向バージョンカウンタを提供するとはいえ、上述の先行技術システムは安全メモリ場所を必要とするということが、上述の先行技術システムの問題である。例えば、埋め込みシステムについて、このような安全メモリ場所は、概して、制御システムを実施するＡＳＩＣ論理回路に関連して実施される安全オンチップ再書き込み可能不揮発性メモリとして実施される。しかしながら、このような安全再書き込み可能不揮発性メモリの実現は、ＡＳＩＣ製造中に追加ステップを必要とし、それにより全体の製造コストが増加する。
【発明の開示】
【０００８】
上述のおよび他の問題は、処理装置によりバージョンカウンタを維持する方法により解決される。バージョンカウンタは、上記処理装置に格納されるメモリコンテンツのバージョンを示す。上記方法は、第１のモードおよび第２のモードのうち１つで処理装置を選択的に操作することを含み、その場合第１のモードで処理装置を操作することへのアクセスは、許可ユーザに制限され、第２のモードへのアクセスとは別に制御される。
【０００９】
第１のモードで処理装置を操作するステップは
第２のモードでの前記処理装置の操作中、前記バージョンカウンタの初期カウンタ値の完全性を暗号保護するための少なくとも１つの初期完全性保護値を生成することと、その場合初期カウンタ値は、一連のカウンタ値から選択されることと、
格納媒体に目下の完全性保護値として初期完全性保護値を格納することと
を含む。
【００１０】
第２のモードで処理装置を操作するステップは、目下のカウンタ値を後続カウンタ値へインクリメントすることを含み、後続カウンタ値は、一連のカウンタ値において目下のカウンタ値の後に続き、その場合インクリメントすることは、目下のカウンタ値の完全性を暗号保護するための目下の完全性保護値を前記格納媒体から削除することを含む。
【００１１】
結果的に、安全メモリに依存しないソフトウェア反ロールバック機構が提供される。
【００１２】
特に、無効のカウンタ値の完全性保護値は格納媒体から削除されるため、また、完全性保護値の計算は個別に保護された操作モードにおいてのみ許されるため、特定の許可を持たない正規ユーザは、無効のカウンタ値を再生成することを防がれてしまう。
【００１３】
上述のように、ここで説明する処理装置の実施形態において、処理装置は、第１および第２のモードのうち１つで選択的に操作可能であり、その場合第１のモードで処理装置を操作することへのアクセスは、許可ユーザに制限され、第２のモードへのアクセスとは別に制御される。ゆえに、第２のモードで装置を操作することを許可されるユーザは、必ずしも第１のモードで装置を操作することも許可されているわけではない。例えば装置が起動可能である２つのモードを提供することにより、または最初は第２のモードでのアクセスを与え、アクセス制御成功を条件として、第１のモードで提供される追加機能へのアクセスを提供することより、選択的操作は実施可能である。
【００１４】
完全性保護値の削除は、多くの異なる方法で行われる場合がある。例えば、無効の完全性保護値を更新値で上書きすること、保護値を所定のデータ項目、例えば０で上書きすること、またはユーザがその後削除データを格納媒体から取り戻すことを防止する何らかの他の適当な方法がある。
【００１５】
バージョンカウンタの偶発的ロールバックが防止されることが、ここで説明する方法および装置の利点である。さらに、現ユーザの制御の下で以前にインストールされているバージョン番号に対応する古いカウンタ値への意図的ロールバックは、格納統合保護値の操作を必要とするため、例えば全部の統合保護値がバージョンカウンタのインクリメントに関連して削除されてしまった後に、それらを取り戻して再入力することを必要とするために、かかる意図的ロールバックは困難になる。
【００１６】
後にひとたび装置が後続バージョンへ更新されると、装置が取得された初期バージョンへのロールバックを含む全部のバージョンロールバックを厳しく防止するポリシーよりも、上述の更新ポリシーは、一見するところでは厳しくないように見えるかもしれない。しかしながら、このような更新ポリシーの厳しい実施は、新バージョンへの更新が利用可能であるとすぐにソフトウェアを更新することをユーザに強制する機構を必要とするであろうということが観察されるべきである。このような機構がなくては、ユーザは単に装置を更新し損なう可能性があり、それにより、バージョンロールバックを行う必要がなくとも、なおも装置を初期ソフトウェアバージョンで操作可能である。
【００１７】
ここでの説明のために、バージョンカウンタ（ｖｅｒｓｉｏｎ  ｃｏｕｎｔｅｒ）という言葉は、例えばソフトウェアバージョンや格納データのバージョンなどのメモリコンテンツの一連のバージョンの各々に実質的固有値を提供するいかなる装置または機構も表すことを意図する。バージョンカウンタは、連続的に並べられたデータ項目組として、例えば番号や他の値として実施可能である。バージョンカウンタは、非反復的な一連の乱数を生成する乱数生成器として、または他の固有値生成器としても実施可能であることが理解される。ある実施形態において、バージョンカウンタは、装置にインストールされるソフトウェアのソフトウェアバージョンをカウントするバージョンカウンタである。
【００１８】
ある実施形態において、第１のモードで処理装置を操作することは、
一連のカウンタ値のそれぞれの完全性を暗号保護するための一連の完全性保護値を生成することと、その場合一連のカウンタ値は、上記初期カウンタ値から始まり、連続して並べられることと、
格納媒体に一連の完全性保護値を格納すること
を含む。
【００１９】
結果的に、この実施形態によれば、第１のモードでの装置の初期操作中、完全性保護値の組が作成され、格納される。第２のモードでの装置の後続操作中、目下の値から後続値へバージョンカウンタがインクリメントされることになるとすぐ、完全性保護値、または後続値を超えるカウンタ値に対応する値――特に、目下のカウンタ値に対応する完全性保護値――は、格納媒体から削除され、それにより、目下のカウンタ値の後続暗号検証が防止される。
【００２０】
ある実施形態において、カウンタをインクリメントする２つのモードが提供される。すなわち、前の完全性保護値が削除される不可逆インクリメントと、完全性保護値が削除されない可逆インクリメントとである。なお別の実施形態において、完全性保護値の削除は、カウンタの実際のインクリメントから所定の時間が経過した後に実行可能である。代替または追加として、完全性保護値の削除は、カウンタの実際のインクリメント後、所定数の再起動後に実行可能である。カウンタ更新のこのような遅れた遂行は、ユーザが更新ソフトウェアバージョンの適切な操作を遂行前にテストすることを可能にするために有用である場合がある。
【００２１】
ある実施形態において、装置が第１および第２のモードのうち第１のモードで操作される場合のみ、上記一連の完全性保護値の生成完全性保護値を出力するように適合される完全性保護値計算部を提供することを、上記方法はさらに含む。結果的に、第１のモードで装置を操作することを許可されるユーザのみが、完全性保護値を（再）計算可能である。例えば、装置製造者は、第１のモードへのアクセスを上記製造者に対して制限するように選択可能である。結果的に、電子装置の製造中、製造者は第１のモードで操作して、装置上に適当数の完全性保護値を生成し、格納する場合がある。装置を取得する全後続ユーザは、第２のモードでのみ装置にアクセス可能であり、このように、古いカウンタ値に対する完全性保護値を再生成することを防止される。
【００２２】
ある実施形態において、目下のカウンタ値を後続カウンタ値へインクリメントすることは、後続カウンタ値に対応する後続完全性保護値を生成することと、目下の完全性保護値を後続完全性保護値で置き換えることとを含む。結果的に、この実施形態において、最初から装置に多くの完全性保護値を格納する必要はなく、それにより格納容量が節約され、格納された多くの完全保護値により保護可能なカウンタ値の範囲が制限されることが回避される。さらに、第２のモードで操作される場合、装置は、後続カウンタ値に対応する完全性保護値のみを生成し、それにより、第１のモードで装置を操作することを許可されていないユーザが、前のカウンタ値、すなわちカウンタ値の連続順序について目下のカウンタ値より低い順番のカウンタ値の完全性保護値を再生成することが、なおも防止される。
【００２３】
後続完全性保護値を生成することが、目下の完全性保護値に基づいて目下のカウンタ値を検証することと、上記目下のカウンタ値の成功検証を条件として上記後続完全性保護値を生成することとを含む場合、目下の値が成功検証されると、装置は後続完全性保護値のみを生成するため、上記方法の安全性はさらに向上する。
【００２４】
生成された各完全性保護値が、対応する前記カウンタ値および装置に固有である場合、ユーザが、カウンタが未だインクリメントされていない別の装置から前の完全性保護値を単純に複製することを防止される。
【００２５】
完全性保護値（ｉｎｔｅｇｒｉｔｙ  ｐｒｏｔｅｃｔｉｏｎ  ｖａｌｕｅ）という言葉は、メモリに格納される情報が偶然にまたは悪意を持って変更または破壊されないことを保障する機構により生成されるいかなるデータ項目をも含むことを意図する。完全性保護機構の例は、メッセージ認証符号、一方向ハッシュ関数、およびデジタル署名を含む。完全性機構は暗号完全性保護機構である。すなわち、シークレットキーに基づいて、完全性保護の安全性が向上される。完全性保護値がメッセージ認証符号である場合、特に安全で効果的な完全性保護が得られる。
【００２６】
メッセージ認証符号（Ｍｅｓｓａｇｅ  ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｃｏｄｅｓ：ＭＡＣ）は、完全性保護データのための周知の機構である。ＭＡＣは、可変長入力とキーとをとり、出力として固定長完全性保護値、いわゆるＭＡＣ値またはタグ値を作成する関数である。概してＭＡＣは、シークレットキーを共有する２つの団体間において、これらの２つの団体間で送信される情報を有効とするために使用される。一方向ハッシュ関数をデータに適用し、その結果を、シークレットキーを用いて暗号化することにより、ＭＡＣが計算可能である。暗号ハッシュ関数と組み合わせ可能である適当なＭＡＣ関数の例は、ＨＭＡＣ（Ｋｅｙｅｄ‐Ｈａｓｈｉｎｇ  ｆｏｒ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ：メッセージ認証のためのキードハッシング）、例えばＡＥＳを用いる暗号ブロック連鎖（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ：ＣＢＣ）ＭＡＣ、または安全一方向ハッシュ関数を含む。ここで説明する方法および装置の実施形態において、メッセージ認証符号が、処理装置の格納媒体に格納されるカウンタ値の完全性をチェックするために使用され、それにより、安全メモリ場所にカウンタ値を格納する必要性が回避される。
【００２７】
結果的に、ある実施形態において、完全性保護は、保護されるカウンタ値に関連させて、計算参照完全性保護値、例えばメッセージ認証符号値を格納することを含み、それにより、計算参照完全性保護値は、処理装置によるカウンタ値の後続監査に使用可能となる。ゆえに、カウンタ値を監査する場合、装置は、装置に格納されるシークレットキーを用いて、カウンタ値の完全性保護値を計算し、その結果を、以前に格納された参照完全性保護値、例えば参照ＭＡＣ値と比較する。結果的に、この実施形態において、シークレットキーはデジタル処理装置にのみ認知されている必要がある。ある実施形態において、シークレットキーは、処理装置固有のシークレットデータ項目であり、例えば処理装置のみに認知されるシークレットデータ項目である。
【００２８】
カウンタ値の各々が装置固有である場合、ある装置から別の装置へ完全性保護値を複製することに対する追加保護が提供される。
【００２９】
対応する完全性保護値を用いたカウンタ値の生成および検証は、完全性保護モジュールにより実施され、完全性保護モジュールは修正に対して安全であり、それにより、処理の安全性が向上する。完全性保護モジュールは、例えば保護されたハードウェアモジュールにより、および／または信頼性のあるプログラム符号により実施可能である。ここで、信頼性のあるプログラム符号（ｔｒｕｓｔｅｄ  ｐｒｏｇｒａｍ  ｃｏｄｅ）という言葉は、処理装置のファームウェアに含まれるプログラム符号、処理装置の起動ＲＯＭ符号に含まれる符号、または処理装置の起動ＲＯＭ符号に含まれるプログラム符号などのような、例えばプログラム一回可能（Ｏｎｅ‐Ｔｉｍｅ  Ｐｒｏｇｒａｍｍａｂｌｅ：ＯＴＰ）メモリに格納される完全性保護値に基づいて完全性が保護されたいかなるプログラム符号をも含むことを意図する。
【００３０】
ある実施形態において、上記方法は、
メモリコンテンツの更新バージョンを受信することと、更新バージョンはバージョンインジケータを含むことと、
受信されたメモリコンテンツの真正を検証することと、
バージョンインジケータおよびバージョンカウンタの目下の値に基づいて、受信された更新メモリコンテンツのバージョン制御を行うことと、
バージョン制御の結果を条件に、受信された更新メモリコンテンツを受け入れること
をさらに含む。
【００３１】
結果的に、メモリコンテンツの効果的で安全な更新が提供される。処理装置は、適当ないかなるデータインターフェースを介してもメモリコンテンツを受信可能であり、例えばＣＤのようなコンピュータ読み出し可能媒体上、メモリスティック上または他のメモリデバイス上へ、有線または無線通信インターフェースなどを介して受信可能である。
【００３２】
真正の検証は、例えばデジタル署名および／または証明、および／またはメッセージ認証符号を用いるなど、当技術分野において周知である適当ないかなる技術を含んでもよい。
【００３３】
バージョン制御は、当技術分野において周知である適当ないかなるバージョン制御機構を含んでもよく、例えば、バージョンインジケータをバージョンカウンタの目下の値と比較することによるなどして、ＩＢＭ  ＡＩＸ  Ｕｎｉｘオペレーティングシステムにおけるソフトウェアモジュールのソフトウェアナンバリング、およびＬＩＮＵＸカーネルのナンバリングに使用されるようなものを含んでも良い。ある実施形態において、バージョンインジケータが、バージョンカウンタの最低真正カウンタ値、すなわち有効な完全性保護値が装置に格納される最低カウンタ値よりも大きい、または等しい場合、更新メモリコンテンツは受け入れられる。例えば受信バージョンが目下のバージョンより古い、または目下のバージョンまたは最低真正バージョンと互換性がないために、バージョン制御が失敗すると、更新処理はアボートされる場合があり、エラーメッセージが生成される場合があり、および／または装置は何か他の適当な方途へ進行する場合がある。
【００３４】
受け入れられると、概して、更新メモリコンテンツを装置が格納し、対応するメモリコンテンツを置き換える。ある実施形態において、ここで説明するように、受信された更新メモリコンテンツのバージョンインジケータに対応する値へバージョンカウンタをインクリメントすることを、更新はさらに含む。例えば、インクリメントは、受信されたバージョンインジケータに等しいバージョンカウンタを設定することを含んでもよい。別の実施形態においては、受信されたバージョンインジケータに等しいバージョンカウンタのシーケンスに位置を有するカウンタ値に等しいバージョンカウンタを設定することを、インクリメントは含んでもよい。
【００３５】
本発明は、上述および下述の方法と、それに対応する装置およびコンピュータとを含む異なる様相に関し、各様相は、上述の方法に関連して説明される１または２以上の利益および利点を生み、上述の方法に関連して説明される実施形態に対応する１または２以上の実施形態を有する。
【００３６】
さらに具体的に、別の様相によれば、データ処理装置に格納されるメモリコンテンツのバージョンを示すバージョンカウンタを維持するように構成されるデータ処理装置は、第１のモードおよび第２のモードのうち１つで選択的に操作可能であり、その場合第１のモードで処理装置を操作することへのアクセスは、許可ユーザに制限され、第２のモードへのアクセスとは別に制御される。
【００３７】
第１のモードで操作される場合、上記処理装置は以下のステップを行うように構成される。
前記バージョンカウンタの少なくとも１つの初期カウンタ値を生成するステップ。その場合初期カウンタは、一連のカウンタ値から選択される。
第２のモードでの処理装置の操作中、生成された初期カウンタ値の完全性を暗号保護するための初期完全性保護値を生成するステップ。
格納媒体に目下の完全性保護値として初期完全性保護値を格納するステップ。
【００３８】
上記処理装置は、第２のモードで操作される場合、目下のカウンタ値を後続カウンタ値へインクリメントするようにさらに構成され、後続カウンタ値は、一連のカウンタ値において目下のカウンタ値の後に続き、その場合インクリメントすることは、目下のカウンタ値の完全性を暗号保護するための目下の完全性保護値を上記格納媒体から削除することを含む。
【００３９】
処理装置（ｐｒｏｃｅｓｓｉｎｇ  ｄｅｖｉｃｅ）という言葉は、データ処理のための処理手段を備えるいかなる電子装置をも含むことを意図する。特に、処理装置という言葉は、いかなる電子機器やポータブルラジオ通信機器および他のハンドヘルドまたはポータブル装置、およびそのような機器に使用される集積回路、チップまたはチップセットをも含むことを意図する。ポータブルラジオ通信機器という言葉は、携帯電話、ポケットベル、コミュニケータ、電子手帳、スマートフォン、携帯情報端末（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔｓ：ＰＤＡｓ）、ハンドヘルドコンピュータなどの移動端末のような全部の機器を含む。
【００４０】
格納媒体という言葉は、デジタルデータ項目を格納するいかなる回路網またはデバイスをも含むように意図する。このような格納媒体の例は、不揮発性メモリ、読み出し専用メモリ（ｒｅａｄ‐ｏｎｌｙ‐ｍｅｍｏｒｙ：ＲＯＭ）ランダムアクセスメモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＲＡＭ）、フラッシュメモリ、消去可能プログラム可能読み出し専用メモリ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ：ＥＰＲＯＭ）などを含む。ある実施形態において、格納媒体は処理装置に備わる。
【００４１】
別の様相によれば、処理装置に格納されるメモリコンテンツを更新する方法は、
上記処理装置によりバージョンカウンタを維持することを含む。バージョンカウンタは上記メモリコンテンツのバージョンを示す。その場合、バージョンカウンタを維持することは、第１のモードおよび第２のモードのうち１つで処理装置を選択的に操作することを含む。その場合、第１のモードで処理装置を操作することへのアクセスは、許可ユーザに制限され、第２のモードへのアクセスとは別に制御される。
その場合、第１のモードで処理装置を操作することは、
第２のモードでの処理装置の操作中、上記バージョンカウンタの初期カウンタ値の完全性を暗号保護するための少なくとも１つの初期完全性保護値を生成することと、その場合初期カウンタ値は、一連のカウンタ値から選択されることと、
格納媒体に目下の完全性保護値として初期完全性保護値を格納すること
を含む。
その場合、上記方法は、
第２のモードで処理装置を操作することと、
上記メモリコンテンツの更新バージョンを受信することと、更新バージョンはバージョンインジケータを含むことと、
受信されたメモリコンテンツの真正を検証することと、
バージョンインジケータとバージョンカウンタの目下の値とに基づいて、受信された更新メモリコンテンツのバージョン制御を行うことと、
バージョンインジケータとバージョンカウンタの目下の値とに基づいて、受信された更新メモリコンテンツを受け入れることと、
目下のカウンタ値を後続カウンタ値へインクリメントすることと、後続カウンタ値は上記バージョンインジケータに対応し、一連のカウンタ値において目下のカウンタ値の後に続くことと、その場合インクリメントすることは、目下のカウンタ値の完全性を暗号保護するための目下の完全性保護値を上記格納媒体から削除することを含むことと、
をさらに含む。
【００４２】
上述および後述の方法の特徴は、ソフトウェアにおいて実施可能であり、コンピュータ実行可能命令のようなプログラム符号手段の実行によりデータ処理装置上または他の処理装置上で実行可能であることが留意される。ここおよび以下で、処理手段（ｐｒｏｃｅｓｓｉｎｇ  ｍｅａｎｓ）という言葉は、上述の機能を行うように適当に適合されるいかなる回路および／または装置をも含む。特に、上記言葉は、汎用または特定用途向けプログラム可能マイクロプロセッサ、デジタル信号プロセッサ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ：ＤＳＰ）、特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）、プログラム可能論理アレイ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ａｒｒａｙ：ＰＬＡ）、電界プログラム可能ゲートアレイ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ：ＦＰＧＡ）、特定用途向け電子回路など、またはその組み合わせを含む。
【００４３】
ゆえに、別の様相によれば、コンピュータプログラムは、データ処理装置上で実行されると、上述および下述の方法のステップをデータ処理装置に行わせるように適合されるプログラム符号手段を含む。
【００４４】
例えば、プログラム符号手段は、格納媒体から、またはコンピュータネットワークを介して別のコンピュータから、ＲＡＭ（ランダムアクセスメモリ）のようなメモリにロードされる場合がある。あるいは、説明する特徴は、ソフトウェアではなく有線回路網により、またはソフトウェアと有線回路網とを組み合わせて実施される場合もある。
【００４５】
上述の様相および他の様相は、図面に関連させながら以下で説明する実施形態から明白に解明されるであろう。
【発明を実施するための最良の形態】
【００４６】
図１は、処理装置の一例として、１または２以上の特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）を、例えば移動端末または他の電磁装置において用いられる１または２以上のＡＳＩＣを備える装置の概略ブロック図を示す。ＡＳＩＣは、一般的に１００と表すが、中央処理論理ブロック１０２と、ＡＳＩＣ装置から／へデータを入力／出力するインターフェースブロック（Ｉ／Ｆ）１８６と、データおよび／またはプログラム符号を格納するデータ格納ブロック１０３とを備える。データ格納ブロック１０３は、システムバス１０５を介して中央処理論理ブロック１０２と接続される。データ格納ブロック１０３は、プログラム命令を格納するプログラムメモリブロック（ＰＲＯＧ）１０６と、レジスタおよびランダムアクセスメモリ（ＲＡＭ）などを収容するデータメモリブロック（ＤＡＴ）１０７と、再書き込み可能不揮発性メモリブロック１０８、例えば電気的消去可能プログラム可能読み出し専用メモリ（ＥＥＰＲＯＭ）とを備える。プログラムメモリブロックは、読み出し専用メモリ（ＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ）、フラッシュメモリ、ＥＥＰＲＯＭなどとして実施可能である。しかしながら、データ格納ブロックは追加および／または代替のメモリブロックまたはストレージタイプを含み得ることが理解される。
【００４７】
例えばデータ格納ブロック１０３に格納されるプログラム符号を実行することにより、移動端末または他の電子装置の操作を制御するために適切なマイクロプロセッサ（μｐ）１８８または他の論理回路網を、中央処理論理ブロック１０２は備える。特に、中央処理論理ブロック１０２は、データ格納ブロック１０３に格納されるプログラム符号のバージョン番号を維持するために、不揮発性メモリブロック１０８の場所１０９に格納されるバージョンカウンタ値を維持するように構成される。さらに、例えば不変の間隔で、起動処理中に、インストール／アップグレード中に、および／またはバージョンカウンタが関連するプログラム符号の実行の前などに、中央処理論理ブロックは、バージョンカウンタ値１０９の完全性監査を開始するように構成される。さらに、中央処理論理ブロック１０２は、対応ソフトウェアの新バージョンがデータ格納ブロック１０３にロードされると、格納バージョンカウンタ値１０９のインクリメントを開始するように構成される。
【００４８】
このため、中央処理ブロック１０２は、無許可ユーザによる操作、例えば修正、別の値で、特に低い値での置き換えなどからカウンタ値を保護するために、以下でさらに詳細に説明するカウンタ値１０９の完全性を検証するように構成される論理回路網を備える完全性保護論理ブロック１０１を備える。このため、不揮発性メモリブロック１０８は、完全性保護論理ブロック１０１により実施される検証処理に使用される１または２以上の完全性保護値を格納する格納場所１１０をさらに備える。完全性保護値は、完全性保護論理ブロック１０１により生成され、格納場所１０９に格納されるカウンタ値の検証中、完全性保護論理ブロック１０１により参照完全性保護値として使用される。完全性保護論理ブロック１０１は、２つのモード（ｍｏｄｅ）で操作可能である。第１の、またはいわゆる「ｐｒｏｇ  ｍｏｄｅ」と、第２の、またはいわゆる「ｖｅｒｉｆｙ  ｍｏｄｅ」である。操作モードは、適当な制御信号を用いて中央処理論理ブロック１０２により制御される。「ｐｒｏｇ  ｍｏｄｅ」で操作される場合、少なくとも１つの初期参照保護値が、完全性保護論理ブロック１０１により生成される。生成された完全性保護値は、後の検証処理に対する参照値として格納場所１１０に格納される。「ｖｅｒｉｆｙ  ｍｏｄｅ」で操作される場合、場所１０９に格納されるカウンタ値の検証は、完全性保護論理ブロック１０１により行われる。
【００４９】
以下でさらに詳細に説明するように、完全性保護論理ブロック１０１は、ユーザが「ｐｒｏｇ  ｍｏｄｅ」での完全性保護論理ブロック１０１の操作を要求する場合、別々の許可処理を行うように構成されるアクセス制御ブロック１１１を備える。あるいは、アクセス制御１１１は、完全性保護論理ブロック１０１の外部にあるアクセス制御ブロックにより行われてもよい。例えば「ｖｅｒｉｆｙ  ｍｏｄｅ」であるような処理装置の操作は、例えば初期アクセス制御を用いるユーザ許可処理にも重要である場合があることが理解される。ゆえに、初期アクセス制御に加えて、または初期アクセス制御の代わりに、「ｐｒｏｇ  ｍｏｄｅ」で完全性保護論理ブロック１０１を操作するアクセス制御１１１が行われてもよい。第１の場合、ユーザは最初に装置へのアクセス許可を得るよう、例えば「ｖｅｒｉｆｙ  ｍｏｄｅ」で装置を操作するよう要求される場合がある。操作を「ｐｒｏｇ  ｍｏｄｅ」へ切り替えるために、初期アクセス制御と異なる追加アクセス制御が要求される。第２の場合、装置は、例えば２つの代替操作モードで起動可能であり、代替操作モードの片方は装置を「ｖｅｒｉｆｙ  ｍｏｄｅ」で操作することを含み、他方は装置を「ｐｒｏｇ．  ｍｏｄｅ」で操作することを含む。ゆえに、どちらのモードで装置を操作することをユーザが望むかに応じて、ユーザはアクセス制御処理の対応する１つを行う。
【００５０】
完全性保護論理ブロック１０１は、保護されたハードウェアブロックとして、すなわち無許可アクセスに対して守られたハードウェアブロックとして実施される。特に、ある実施形態において、ＡＳＩＣが「ｐｒｏｇ．  ｍｏｄｅ」で操作されている場合、すなわちＡＳＩＣを起動したユーザが「ｐｒｏｇ  ｍｏｄｅ」でＡＳＩＣを操作することを許可される場合、完全性保護論理ブロック１０１は、少なくとも初期完全性保護値が完全性保護論理ブロック１０１から読み出し可能であるように構成される。
【００５１】
ユーザ許可の検証は、いかなる適切な方法で行われてもよく、例えば予め格納された値と比較されるアクセス符号を入力するようユーザに要求すること、有効なキーカードまたは他のハードウェアセキュリティデバイスを入力することをユーザに要求すること、指紋のようなユーザの肉体的属性に基づく許可機構を行うこと、またはユーザが許可されているものであることを確立する他の適当な機構によってもよい。許可の証拠を提供する適当な方法の一例は、例えば米国特許第４７４８６６８号明細書に記載されているような、いわゆるファイアット‐シャミール識別アルゴリズム（Ｆｉａｔ‐Ｓｈａｍｉｒ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  ａｌｇｏｒｉｔｈｍ）である。「ｐｒｏｇ  ｍｏｄｅ」を入力するアクセス制御は、「ｖｅｒｉｆｙ  ｍｏｄｅ」で装置を操作するアクセス制御のように、同一のまたは異なる許可機構に基づく場合があることが理解される。例えば、両モードへのアクセスは、アクセス符号に基づく同一の許可機構により制御される場合があるが、その場合異なるアクセス符合が２つのモードに必要となる。
【００５２】
ハードウェア保護は、いかなる適当な保護技術により実施されてもよく、例えばＷ・ラクル（Ｗ  Ｒａｋｌ）、Ｗ・エフィング（Ｗ  Ｅｆｆｉｎｇ）による「スマートカードハンドブック（Ｓｍａｒｔ  Ｃａｒｄ  Ｈａｎｄｂｏｏｋ）」、第３版、Ｗｉｌｅｙ２００３年、の第８．２章「スマートカードセキュリティ」（Ｃｈａｐｔｅｒ８．２  “Ｓｍａｒｔ  ｃａｒｄ  Ｓｅｃｕｒｉｔｙ”）に記載される、スマートカードでハードウェアを保護するために使用される技術により実施されてもよい。
【００５３】
カウンタ値１０９および完全性保護値１１０が、保護された完全性保護論理ブロック１０１の外部に格納されることに留意することは興味深い。特に、カウンタ値１０９および完全性保護値１１０は、非保護不揮発性メモリ、特に再書き込み可能メモリ、例えば１００の装置のメモリブロック１０８に格納可能である。
【００５４】
ＡＳＩＣ装置１００が単一のブロックとして示してあるとはいえ、装置１００は複数の異なるＡＳＩＣとして実施可能であることが了解されるであろう。例えば、製造コストを削減するために、ＥＥＰＲＯＭとマイクロプロセッサと完全性保護論理ブロックとを異なるＡＳＩＣ上で実施することが望ましい場合がある。ゆえに、ＡＳＩＣおよびＡＳＩＣ装置という言葉は、単一のＡＳＩＣと、個別のＡＳＩＣの組み合わせとを含むよう意図されている。
【００５５】
完全性保護論理ブロック１０１の実施形態を、ここで図２および３を参照しながら、さらに詳細に説明することとする。
【００５６】
図２は、完全性保護論理ブロックの一例のより詳細なブロック図を示す。完全性保護論理ブロック２０１は、それぞれのカウンタ値を保護するための１または２以上の暗号メッセージ許可コード（ＭＡＣ）値を計算するように構成されるＭＡＣ計算ブロック２１２を備える。
【００５７】
一般的に、ＭＡＣ計算は、以下の式により表される。Ｍ＝Ｈ（ｋ，ｄ）、ただし、Ｈは適当なＭＡＣ関数であり、ｄは保護されることとなるデータであり、Ｍは計算されたＭＡＣ値であり、ｋはシークレットキー値である。ある実施形態において、シークレットｋはＡＳＩＣ１００上でアクセス可能であるが、ＡＳＩＣ１００から読み出し可能ではない。適当なＭＡＣ関数の一例は、ネットワークワーキンググループ（Ｎｅｔｗｏｒｋ  Ｗｏｒｋｉｎｇ  Ｇｒｏｕｐ）のコメント要求（Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ：ＲＦＣ）２１０４、「ＨＭＡＣ：メッセージ許可のためのキードハッシング」、１９９７年２月において定められるＨＭＡＣ関数である。したがって、２０９と表すカウンタ値ｃｎｔの現在の許可について、完全性保護論理ブロック２０１は、格納ブロック１０９からカウンタ値２０９を受信し、ＭＡＣ計算ブロック２１２へカウンタ値２０９をフィードする。例えばＡＳＩＣ１００または完全性保護ブロック２０１の内部ＲＯＭなどの安全メモリに、望ましくない読み出しに対して安全に格納される、２１６と表すシークレットキーｋを、ＭＡＣ計算ブロック２１２はさらに受信する。すなわち、このような完全性保護ブロック２０１はシークレットキーｋへの読み出しアクセスを有している。ＭＡＣ計算ブロック２１２は、ＭＡＣ値Ｍ＝Ｈ（ｋ，ｃｎｔ）を計算し、モード選択部、例えばスイッチへ、計算値２８７を送信する。
【００５８】
上述のように、完全性保護ブロック２０１は、制御入力２１５により制御される場合、２つのモード、「ｐｒｏｇ  ｍｏｄｅ」および「ｖｅｒｉｆｙ  ｍｏｄｅ」で操作可能である。上述のように、「ｐｒｏｇ．  ｍｏｄｅ」での操作は、アクセス制御２１１により実施される対応するアクセス制御にとって重要である。したがって、アクセス制御ブロック２１１は、モード選択制御信号２１５を受信する。モード選択信号２１５が「ｐｒｏｇ．  ｍｏｄｅ」に対応する場合、上述のように、「ｐｒｏｇ．  ｍｏｄｅ」での完全性保護ブロックの操作が許可ユーザに制限されていることを確かめるために、アクセス制御ブロック２１１はユーザの許可を検証する。ユーザが許可されている場合、アクセス制御ブロック２１１は、計算ＭＡＣ値のデータフローを制御するために、選択部２１８へ制御信号としてモード選択信号２１５を送信する。モード選択信号２１５が「ｖｅｒｉｆｙ  ｍｏｄｅ」に対応する場合、アクセス制御ブロック２１１は、選択部２１８へ選択信号を送信する。ある実施形態において、「ｖｅｒｉｆｙ  ｍｏｄｅ」はアクセス制御にとって重要である場合もあることが理解される。
【００５９】
「ｐｒｏｇ．  ｍｏｄｅ」で操作される場合、選択部２１８は、接続２２０を介して出力２１４へＭＡＣ値が格納されているところから、格納場所１１０における参照マック値として、計算ＭＡＣ値２８７を送信する。この実施形態において、完全性保護ブロック２０１は、「ｐｒｏｇ．  ｍｏｄｅ」で操作される場合、所定の数Ｎのバージョンカウンタ値ＶｅｒｓｉｏｎＣｏｕｎｔ１、ＶｅｒｓｉｏｎＣｏｕｎｔ２、……、ＶｅｒｓｉｏｎＣｏｕｎｔＮについて、複数のＭＡＣ値ｍａｃ＿ＶＣ１＿ｒｅｆ＝Ｈ（ｋ，ＶｅｒｓｉｏｎＣｏｕｎｔ１）、ｍａｃ＿ＶＣ２＿ｒｅｆ＝Ｈ（ｋ，ＶｅｒｓｉｏｎＣｏｕｎｔ２）、……、ｍａｃ＿ＶＣＮ＿ｒｅｆ＝Ｈ（ｋ，ＶｅｒｓｉｏｎＣｏｕｎｔＮ）を計算し、格納場所１１０に格納するように制御される。本説明のために、バージョンカウント値は昇順に並べられる、すなわちＶｅｒｓｉｏｎＣｏｕｎｔ１＜ＶｅｒｓｉｏｎＣｏｕｎｔ２＜……＜ＶｅｒｓｉｏｎＣｏｕｎｔＮであることが仮定される。しかしながら、カウンタ値は、いかなる適当な順序付けスキームにしたがって連続的に並べられてもよいことが理解される。数Ｎの予め計算され、格納されたＭＡＣ値は、必要な格納スペースと、保護バージョンカウンタにより管理されるべきバージョン更新の予想数との間のトレードオフとして選択可能である。例えば、バージョンＭＡＣ値２１４は、それぞれのバージョンカウント値に関連して、例えば図２ｂに示すような表形式のデータ構造で、格納可能である。あるいは、バージョンＭＡＣ値は、バージョンカウンタ値に独立に格納可能である。例えば、カウンタをインクリメントすることなどによってカウンタ値のシーケンスを生成する論理回路を装置が備える実施形態において、カウンタ値は明示的に格納される必要はない。
【００６０】
「ｖｅｒｉｆｙ  ｍｏｄｅ」で操作される場合、選択部２１８は計算ＭＡＣ値を例えば比較部など検証ブロック２１７へフィードする。検証ブロック２１７は、計算ＭＡＣ値２８７を、格納場所１１０に格納される参照ＭＡＣ値のうち１または２以上と比較する。参照ＭＡＣ値２１０がそれぞれのカウンタ値２０９に関連して格納される実施形態において、検証ブロックは、計算ＭＡＣ値２８７を、ＭＡＣ値２８７が計算されたカウンタ値に関連して格納される参照値２１０と比較する場合がある。あるいは、検証ブロック２１７は、計算ＭＡＣ値２８７を格納参照値２１０と、一致が見られるまで、または全参照値が処理されてしまうまで、続けて比較する場合がある。検証ブロック２１７は、計算ＭＡＣ２８７に対応する一致参照ＭＡＣ２１０が発見されるかどうかを示す出力信号２１９を生成する。すなわち、出力信号２１９は、カウンタ値２０９が真正であり、最新であるかどうかを示す。出力信号２１３は、出力ノード２１３における完全性保護ブロック２０１により出力される。
【００６１】
処理装置の各起動時、または例えばコアソフトウェアのプラットフォームなど、処理装置上で動作するアプリケーションに要求されればいつでも、完全性保護ブロックは、上述のように、格納場所１０９に格納される目下のカウンタ値を検証するように制御される。ある実施形態において、バージョンカウンタの完全性は、バージョン制御処理がバージョンカウンタをアクセスする度に検証される。メモリ１１０に格納される参照ＭＡＣ値２１０に計算ＭＡＣ値２８７が対応する場合、処理装置は普通に機能することを続ける。さもなければ、処理装置の機能のいくつかまたは全部は無効とされる、および／または別の適切な行動がとられる。
【００６２】
ここで説明するバージョンカウンタは、ソフトウェアバージョン制御に多くの異なる方法で使用可能である。バージョンカウンタの目下の値、すなわち最低カウンタ値に関連する有効な完全性保護値を有する最低カウンタ値が、処理装置上で実行されることが許可される最低許可ソフトウェアバージョンを識別する２つの例を、以下で説明することにする。
【００６３】
ある実施形態において、バージョン制御は、インストールされたソフトウェア自体により行われる。このようなシステムにおいて、ソフトウェアは、無許可ユーザによりソフトウェアが変更されていないことを確かめるために、デジタル署名を提供される。受信／または格納ソフトウェアの認証を検証する適当な方法の例は、米国特許第６０２６２９３号明細書、またはトラステドコンピューティンググループ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ）のＰＣクライアントワークグループ（ＰＣ  Ｃｌｉａｎｔ  ｗｏｒｋ  ｇｒｏｕｐ）の仕様書（ｗｗｗ．ｔｒｕｓｔｅｄｃｏｍｐｕｔｉｎｇｇｒｏｕｐ．ｏｒｇ）に記載される方法を含む。代替または追加として、ソフトウェアの認証は、別の適当な機構により保護可能である。処理装置が起動されると、またはソフトウェアの実行が開始されると、処理装置は、ソフトウェアのデジタル署名を検証する。デジタル署名が成功検証ではない場合、起動処理および／またはソフトウェアの実行はアボートされる。ソフトウェアは、ソフトウェアのバージョン番号を示すバージョンインジケータをさらに備える。ソフトウェアの実行が開始されると、ソフトウェアは自身のバージョンインジケータを、ここで説明する処理装置により維持されるバージョンカウンタの目下のカウンタ値により示される目下許可されるバージョン番号と比較する。ソフトウェアのバージョンインジケータがバージョンカウンタの目下のカウンタ値に等しい、またはそれより大きい場合、ソフトウェアは実行を続行する。さもなければ、実行はアボートされる。ソフトウェアのバージョンインジケータがバージョンカウンタの目下のカウンタ値より大きい場合、処理装置は、インストールされたソフトウェアのバージョンインジケータに等しい更新値へバージョンカウンタをインクリメントする。ここで説明するように、このインクリメントは、更新値より小さい全カウンタ値に関連する完全性保護値を、例えばＭＡＣ値などを削除することを含む。
【００６４】
代替例において、上述のバージョン制御は、個別のローダソフトウェアまたは起動ソフトウェアにより行われる。しかし、この代替実施形態においては、実行されることになるソフトウェアのデジタル署名または他の完全性保護は、実行されることになるソフトウェアの無許可操作（例えばバージョンインジケータの変更）をなお防止する。
【００６５】
処理装置１００が、目下の値から後続値へバージョンカウンタを更新／インクリメント／起動するように制御される場合、処理装置１００は、上記後続カウンタ値より小さいカウンタ値に関連する全参照ＭＡＣ値をメモリ１１０から削除する。例えば、カウンタ値の更新は、中央処理論理ブロック１０２のマイクロプロセッサ１８８上で実行されるソフトウェア更新エージェント１４１により行われる場合がある。ある実施形態において、バージョンカウンタのステップアップは、ＡＳＩＣの第２の部分において実施される。あるいは、ステップアップは、信用のある／検証済みソフトウェアにより行われる場合もある。
【００６６】
バージョンカウンタ値ＶｅｒｓｉｏｎＣｏｕｎｔ１、ＶｅｒｓｉｏｎＣｏｕｎｔ２、……、ＶｅｒｓｉｏｎＣｏｕｎｔＮの上例において、バージョンカウンタがＶｅｒｓｉｏｎＣｏｕｎｔ１からＶｅｒｓｉｏｎＣｏｕｎｔ２へインクリメントされると、処理装置はＭＡＣ値ｍａｃ＿ＶＣ１＿ｒｅｆをメモリから削除する。同様に、バージョンカウンタがＶｅｒｓｉｏｎＣｏｕｎｔＫへインクリメントされると、処理装置はＭＡＣ値ｍａｃ＿ＶＣ１＿ｒｅｆ、……、ｍａｃ＿ＶＣＫ−１＿ｒｅｆをメモリから削除する。図２ｂに示すカウンタ値およびＭＡＣ値の表であるが、ＶｅｒｓｉｏｎＣｏｕｎｔＫへのカウンタ値の更新後、すなわちＭＡＣ値ｍａｃ＿ＶＣ１＿ｒｅｆ、……、ｍａｃ＿ＶＣＫ−１＿ｒｅｆがメモリから削除されたものを、図２ｃは示している。ゆえに、一般的に、目下のカウンタ値は、完全性が成功検証可能である最小カウンタ値、すなわち有効な関連完全性保護値が装置に格納される最小カウンタ値である。結果的に、対応するＭＡＣ値がもはや存在しないので、完全性保護ブロックにより低いカウンタ値を検証する後続試行は失敗するであろう。さらに、「ｐｒｏｇ．  ｍｏｄｅ」でＡＳＩＣを操作することを許可されていないユーザは、前の（より低い）カウンタ値に対応するＭＡＣ値を再計算できない。
【００６７】
上例は、後続カウンタ値は、シーケンスのいかなる後続カウンタ値であってもよく、直後のカウンタ値である必要はないことをさらに説明する。すなわち、中間カウンタ値は、カウンタ値をインクリメントするとき、スキップ可能である。上例において、カウンタ値は、例えば、ｋ＞２として、ＶｅｒｓｉｏｎＣｏｕｎｔ１、ＶｅｒｓｉｏｎＣｏｕｎｔ２、……、ＶｅｒｓｉｏｎＣｏｕｎｔｋであってもよい。中間カウンタ値がスキップ可能であることは、例えばソフトウェアバージョンが新バージョンへ更新され、そのため１または２以上の中間バージョンがスキップされる場合に有用である。
【００６８】
図３は、完全性保護論理ブロック３０１の別例のより詳細なブロック図を示す。完全性保護論理ブロック３０１は、図２の完全性保護ブロックと同様であり、それぞれのカウンタ値を保護するための１または２以上の暗号メッセージ認証符号（ＭＡＣ）値を計算するように構成されるＭＡＣ計算ブロック２１２と、選択部２１８を制御するアクセス制御ブロック２１１と、検証ブロック２１７とを備える。ＭＡＣ計算ブロック２１２、アクセス制御ブロック２１１、選択部２１８、および検証ブロック２１７は、図２に関連させて説明したので、ここで再び説明はしないことにする。
【００６９】
完全性保護ブロック３０１は、さらなるＭＡＣ計算ブロック３１２を備えるという点で、図２の完全性保護ブロック２０１と異なる。ＭＡＣ計算ブロック３１２は、ＭＡＣ計算ブロック２１２と同一の計算を行い、同一のシークレットキーｋを受信する。しかしながら、ＭＡＣ計算ブロック３１２は、ＭＡＣ計算ブロック２１２へフィードされるカウンタ値２０９ではなく、インクリメントされたカウンタ値３３３を受信する。このため、カウンタ値２０９を受信し、インクリメントされたカウンタ値３３３、すなわち一連のカウンタ値における次のカウンタ値を生成するインクリメントブロック３３２を、完全性保護ブロック３０１は備える。あるいは、ＭＡＣ計算ブロック２１２および３１２は、単一のブロックに組み合わせることが可能であり、任意でインクリメントブロック３３２も一緒に組み合わせることも可能である。なお別の代替実施形態において、完全性保護ブロック３０１は、カウンタ値２０９とインクリメントされたカウンタ値３３３とに対して順次ＭＡＣ値を生成するように制御される単一のＭＡＣ計算ブロックのみを備える。ＭＡＣ計算ブロック３１２により生成されるインクリメントされたカウンタ値３３３のＭＡＣ値３３１は、スイッチ３３０へフィードされる。参照ＭＡＣ値１１０に対して目下のカウンタ値１０９のＭＡＣ値を検証ブロック２１７が成功検証した場合、スイッチ３３０は、ＭＡＣ値３３１を出力２１３へフィードするように、検証ブロック２１７の出力２１９により制御される。検証ブロック２１７が目下のカウンタ値を成功検証しなかった場合（または、完全性保護ブロック３０１が「ｐｒｏｇ．  ｍｏｄｅ」で操作されるため、検証ブロック２１７がＭＡＣ計算ブロック２１２から入力を受信しなかった場合）、ＭＡＣ値３３１は出力２１３において提供されない。
【００７０】
ゆえに、図３の例において、完全性保護ブロック３０１が「ｖｅｒｉｆｙ  ｍｏｄｅ」で操作されるとき、バージョンカウンタ値ＶｅｒｓｉｏｎＣｏｕｎｔｋがその参照ＭＡＣに対して成功検証される場合、完全性保護ブロック３０１は、ＶｅｒｓｉｏｎＣｏｕｎｔｋ＋１のＭＡＣ値を出力するために構成される。この実施形態において、完全性保護ブロック３０１は、「ｐｒｏｇ．  ｍｏｄｅ」で操作され、第１の有効なカウンタ値のみに対して１つの初期参照ＭＡＣを生成し、格納する。概して、かかる処理は装置製造中に、例えば製造者が装置にソフトウェアをロードする製造ステップの一部で行われる。この場合、製造者は、装置を「ｐｒｏｇ．  ｍｏｄｅ」で操作することを許可されている。装置を「ｐｒｏｇ．  ｍｏｄｅ」で起動させるのに必要ないかなるキーやパスワードなども、このように製造者により秘匿可能である。
【００７１】
「ｖｅｒｉｆｙ  ｍｏｄｅ」で操作される場合の、図３の完全性保護ブロック３０１により行われる処理を、ここで図４を参照しながらさらに詳細に説明することにする。
【００７２】
図４は、カウンタ機構の一実施形態の実施形態の流れ図を示す。初期ステップＳ４０１において、処理は、目下のカウンタｃｎｔと、対応するＭＡＣ参照値ｍａｃ＿ｃｎｔ＿ｒｅｆとを受信する。後続ステップＳ４０２において、処理は、受信したカウンタ値ｃｎｔとシークレットキーｋとからＭＡＣ値ｍａｃ＿ｃｎｔ＝ｈ（ｋ，ｃｎｔ）を計算する。ステップＳ４０３において、処理は、計算ＭＡＣ値ｍａｃ＿ｃｎｔを、受信した参照ＭＡＣ値ｍａｃ＿ｃｎｔ＿ｒｅｆと比較する。それらが等しければ、処理はステップＳ４０５へ進行する。さもなければ、処理はステップＳ４０４へ進行する。ステップＳ４０４において、処理は、目下のカウンタの検証が成功ではなかったことを示すエラー条件「ｎｏ」を出力し、処理は終了する。任意で、処理が受信する不適当参照値ｍａｃ＿ｃｎｔ＿ｒｅｆを、処理はさらに出力してもよい。ステップＳ４０５において、すなわち計算ＭＡＣ値と参照ＭＡＣ値とが一致する場合、処理は、インクリメントされたカウンタｃｎｔ＋１のＭＡＣ値ｈ（ｋ，ｃｎｔ＋１）を計算し、ステップ４０６において、参照ＭＡＣｍａｃ＿（ｃｎｔ＋１）＿ｒｅｆ＝ｈ（ｋ，ｃｎｔ＋１）として計算値を、目下のカウンタ値が成功検証されるという表示「ｙｅｓ」とともに出力する。
【００７３】
この実施形態は、目下の参照値および後続の参照値へ格納されることとなるＭＡＣ参照値のリストを削減し、それにより装置内のメモリスペースを節約することがこの実施形態の有利である。バージョンカウンタがインクリメントされると、処理装置は、格納された目下の参照値ｍａｃ＿ｃｎｔ＿ｒｅｆを、前検証ステップ中に計算された後続参照値ｍａｃ＿（ｃｎｔ＋１）＿ｒｅｆで置き換える次の参照ＭＡＣ値ｍａｃ＿（ｃｎｔ＋２）＿ｒｅｆは、後続検証ステップ中にこのように生成される。ある実施形態において、目下の参照値のみが保存される。例えば、ソフトウェア更新は、目下のカウンタの検証に関する場合があり、言い換えると、上述のように計算され、出力されることとなる後続参照値がもたらされる。
【００７４】
図５は、図３および図４に関する実施形態に関連して、バージョンカウンタ値および完全性保護値を維持するデータ構造の一例を示す。図５ａは、目下のカウンタ値――この例ではＶｅｒｓｉｏｎＣｏｕｎｔｋ――と次に高いカウンタ値――この例ではＶｅｒｓｉｏｎＣｏｕｎｔｋ＋１――とがそれぞれの参照ＭＡＣ値ｍａｃ＿ＶＣｋ＿ｒｅｆおよびｍａｃ＿ＶＣｋ＋１＿ｒｅｆに関連して格納される表形式構造を示す。図５ｂは、バージョンＶｅｒｓｉｏｎＣｏｕｎｔｋ＋１へのバージョン更新後の表形式構造を示す。したがって、表形式構造において、古いカウンタ値および参照ＭＡＣは、新しい目下の値ＶｅｒｓｉｏｎＣｏｕｎｔｋ＋２およびｍａｃ＿ＶＣｋ＋２＿ｒｅｆでそれぞれ上書きされている。さらに、新しい後続値ＶｅｒｓｉｏｎＣｏｕｎｔｋ＋２およびｍａｃ＿ＶＣｋ＋２＿ｒｅｆはデータ構造に書き込まれている。ゆえに、再び、目下のカウンタ値は、完全性が成功検証される最小カウンタ値、すなわち有効な関連完全性保護値が装置に格納される最小カウンタ値である。対応する参照ＭＡＣ値がもはや存在しないため、完全性保護ブロックにより低いカウンタ値を検証する後続試行は失敗するであろう。さらに、「ｖｅｒｉｆｙ  ｍｏｄｅ」で操作される場合、ＡＳＩＣは後続ＭＡＣ値を出力するのみであり、目下のまたは前のＭＡＣ値は出力しないため、ＡＳＩＣを「ｐｒｏｇ．  ｍｏｄｅ」で操作することを許可されていないユーザは、前の（より低い）カウンタ値に対応するＭＡＣ値を再計算できない。
【００７５】
いくつかの実施形態を詳細に説明し、図示してきたが、本発明は、それらの実施形態に限定されるものではなく、添付の特許請求の範囲において記載される主題の範囲内の他の方法でも実施可能である。
【００７６】
特に、これらの実施形態は、データ処理装置の一例として移動端末を参照しながら主に説明してきた。しかしながら、ここで説明した方法、製品手段および装置は、他のデータ処理装置にも応用可能であることが理解される。
【００７７】
さらに、これらの実施形態は、単一のソフトウェアバージョンカウンタに関連して主に説明してきた。しかしながら、ここで説明した方法、装置および製品手段は、ソフトウェアバージョンのほかメモリコンテンツのバージョンに関する他の更新イベントや状態などをカウントする他種のバージョンカウンタにも応用可能であることが理解される。このようなメモリコンテンツの例は、格納データ、例えばデータベースなどに格納されるデータを含むが、限定はされない。同様に、処理装置は、ここで説明した機構を用いて１つより多くのカウンタ、例えば異なるソフトウェア実体またはモジュールおよび／またはデータ項目などに対する異なるカウンタを維持可能である。
【００７８】
ここで説明した方法、製品手段および装置は、いくつかの別個の要素を備えるハードウェアを用いて、および適当にプログラムされたマイクロプロセッサを用いて実施可能である。いくつかの手段を列挙する装置請求項において、これらの手段のいくつかは、ハードウェアの１つの同一項目、例えば適当にプログラムされたマイクロプロセッサや１または２以上のデジタル信号プロセッサなどにより実施可能である。ある量が、互いに異なる独立請求項において列挙されている、または異なる実施形態において説明されているという単なる事実は、このような量の組み合わせを有利に利用することが不可能であることを示すものではない。
【００７９】
「含む（ｃｏｍｐｒｉｓｅｓ／ｃｏｍｐｒｉｓｉｎｇ）」という言葉を本明細書において用いる場合、言明する特徴、整数、ステップまたは構成要素の存在を明記するが、１または２以上の他の特徴、整数、ステップ、構成要素、またはそれらの組の存在または追加を排除してはいないことが強調されるべきである。
【図面の簡単な説明】
【００８０】
【図１】処理装置の実施形態の概略ブロック図を示す。
【図２】カウンタを実施する処理部の一例と、バージョンカウンタ値および完全性保護値を維持するデータ構造の一例との概略ブロック図を示す。
【図３】カウンタを実施する処理部の別例の概略ブロック図を示す。
【図４】カウンタ機構の一実施形態の流れ図を示す。
【図５】バージョンカウンタ値および完全性保護値を維持するデータ構造の一例を示す。
【図１】
2009534765.tif 000003
【図２ａ】
2009534765.tif 000004
【図２ｂ】
2009534765.tif 000005
【図２ｃ】
2009534765.tif 000006
【図３】
2009534765.tif 000007
【図４】
2009534765.tif 000008
【図５ａ】
2009534765.tif 000009
【図５ｂ】
2009534765.tif 000010
【手続補正書】
【提出日】平成20年7月4日(2008.7.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
処理装置によりバージョンカウンタを維持する方法であって、前記バージョンカウンタは、前記処理装置に格納されるメモリコンテンツのバージョンを示し、前記方法は、第１のモードおよび第２のモードのうち１つで前記処理装置を選択的に操作することを含み、その場合前記第１のモードで前記処理装置を操作することへのアクセスは、許可ユーザに制限され、前記第２のモードへのアクセスとは別に制御され、
その場合、前記第１のモードで前記処理装置を操作することは、
前記第２のモードでの前記処理装置の操作中、前記バージョンカウンタの初期カウンタ値の完全性を暗号保護するための少なくとも１つの初期参照完全性保護値を生成することと、その場合前記初期カウンタ値は、一連のカウンタ値から選択されることと、
格納媒体に目下の参照完全性保護値として前記初期参照完全性保護値を格納すること
を含み、
その場合、前記一連のカウンタ値のうち少なくとも１つの目下のカウンタ値と先のカウンタ値との参照完全性保護値を出力することは、前記第１のモードに制限され、
その場合、前記第２のモードで前記処理装置を操作することは、
前記目下の参照完全性保護値に基づいて、目下のカウンタ値の完全性を検証することと、
前記目下のカウンタの完全性が成功検証され、前記更新バージョンのバージョンインジケータが、検証された前記目下のカウンタ値より大きいまたは等しい場合にのみ、メモリコンテンツの更新バージョンへのメモリコンテンツ更新を受け入れることと、さもなければ前記メモリコンテンツ更新を防止することと、その場合前記メモリコンテンツ更新を受け入れることは、
目下のカウンタ値を後続カウンタ値へインクリメントすることと、前記後続カウンタ値は、前記一連のカウンタ値において前記目下のカウンタ値の後に続くことと、その場合インクリメントすることは、前記目下のカウンタ値の完全性を暗号保護するための前記目下の参照完全性保護値を前記格納媒体から削除することを含むことと、
を含む方法。
【請求項２】
前記第１のモードで前記処理装置を操作することは、
一連のカウンタ値のそれぞれの完全性を暗号保護するための一連の参照完全性保護値を生成することと、その場合前記一連のカウンタ値は、前記初期カウンタ値から始まり、連続して並べられることと、
格納媒体に前記一連の参照完全性保護値を格納することと
を含む、請求項１に記載の方法。
【請求項３】
前記装置が前記第１および第２のモードのうち前記第１のモードで操作される場合のみ、前記一連の参照完全性保護値の生成参照完全性保護値を出力するように適合される完全性保護値計算部を提供することをさらに含む請求項２に記載の方法。
【請求項４】
目下のカウンタ値を後続カウンタ値へインクリメントすることは、前記後続カウンタ値に対応する後続参照完全性保護値を生成することと、前記目下の参照完全性保護値を前記後続参照完全性保護値で置き換えることとを含む、請求項１に記載の方法。
【請求項５】
前記後続参照完全性保護値を生成することは、前記目下の参照完全性保護値に基づいて前記目下のカウンタ値を検証することと、前記目下のカウンタ値の成功検証を条件として前記後続参照完全性保護値を生成することとを含む、請求項４に記載の方法。
【請求項６】
各生成参照完全性保護値は、対応する前記カウンタ値および前記装置に固有である、請求項１から５のいずれか１項に記載の方法。
【請求項７】
各生成参照完全性保護値は、前記バージョンカウンタの値およびシークレットキー値からメッセージ認証符号関数により生成されるメッセージ認証符号値である、請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記シークレットキー値は装置固有である、請求項７に記載の方法。
【請求項９】
前記カウンタ値の各々は装置固有である、請求項１から８のいずれか１項に記載の方法。
【請求項１０】
対応する前記参照完全性保護値を用いた前記カウンタ値の前記生成および検証は、完全性保護モジュールにより実施され、前記完全性保護モジュールは修正に対して安全である、請求項１から９のいずれか１項に記載の方法。
【請求項１１】
前記完全性保護モジュールはハードウェアモジュールである、請求項１０に記載の方法。
【請求項１２】
前記処理装置はプログラム可能マイクロプロセッサである、請求項１から１１のいずれか１項に記載の方法。
【請求項１３】
前記処理装置は移動端末である、請求項１から１２のいずれか１項に記載の方法。
【請求項１４】
前記格納媒体は前記処理装置に備わる、請求項１から１３のいずれか１項に記載の方法。
【請求項１５】
前記カウンタはソフトウェアバージョンカウンタである、請求項１から１４のいずれか１項に記載の方法。
【請求項１６】
前記メモリコンテンツの更新バージョンを受信することと、前記更新バージョンはバージョンインジケータを含むことと、
受信された前記メモリコンテンツの真正を検証することと、
前記バージョンインジケータおよび前記バージョンカウンタの目下の値に基づいて、受信された前記更新メモリコンテンツのバージョン制御を行うことと、
前記バージョン制御の結果を条件に、受信された前記更新メモリコンテンツを受け入れること
をさらに含む、請求項１から１５のいずれか１項に記載の方法。
【請求項１７】
前記バージョンカウンタを、受信された前記更新メモリコンテンツの前記バージョンインジケータに対応する後続カウンタ値へインクリメントすることをさらに含む請求項１６に記載の方法。
【請求項１８】
受け入れることは、前記処理装置に格納されるメモリコンテンツを、受け入れられた前記更新メモリコンテンツで更新することを含む、請求項１から１７のいずれか１項に記載の方法。
【請求項１９】
データ処理装置上で実行されると請求項１から１８のいずれか１項に記載の方法を行うように適合されるプログラム符号手段を備えるコンピュータプログラム製品。
【請求項２０】
処理装置に格納されるメモリコンテンツのバージョンを示すバージョンカウンタを維持するように構成される前記処理装置であって、前記処理装置は、第１のモードおよび第２のモードのうち１つで選択的に操作可能であり、その場合前記第１のモードで前記処理装置を操作することへのアクセスは、許可ユーザに制限され、前記第２のモードへのアクセスとは別に制御され、
その場合、前記処理装置は、前記第１のモードで操作される場合、
前記バージョンカウンタの少なくとも１つの初期カウンタ値を生成するステップと、その場合前記初期カウンタは、一連のカウンタ値から選択されることと、
前記第２のモードでの前記処理装置の操作中、生成された前記初期カウンタ値の完全性を暗号保護するための初期参照完全性保護値を生成するステップと、
格納媒体に目下の参照完全性保護値として前記初期参照完全性保護値を格納するステップと
を行うように構成され、
その場合、前記処理装置は、前記一連のカウンタ値の少なくとも１つの目下のカウンタ値と先のカウンタ値との参照完全性保護値の出力を第１のモードに制限するように構成され、
その場合、前記処理装置は、
前記目下の参照完全性保護値に基づいて、目下のカウンタ値の完全性を検証し、
前記目下のカウンタ値の完全性が成功検証され、前記更新バージョンのバージョンインジケータが、検証された前記目下のカウンタ値より大きいまたは等しい場合にのみ、メモリコンテンツの更新バージョンへのメモリコンテンツ更新を受け入れ、さもなければ前記メモリコンテンツ更新を防止するように構成され、その場合前記メモリコンテンツ更新を受け入れることは、
目下のカウンタ値を後続カウンタ値へインクリメントすることと、前記後続カウンタ値は、前記一連のカウンタ値において前記目下のカウンタ値の後に続くことと、その場合インクリメントすることは、前記目下のカウンタ値の完全性を暗号保護するための前記目下の参照完全性保護値を前記格納媒体から削除することを含む、
処理装置。
【請求項２１】
前記第１のモードで操作される場合、
一連のカウンタ値を生成するステップと、その場合前記一連のカウンタ値は、前記初期カウンタ値から始まり、連続して並べられることと、
生成された前記一連のカウンタ値のそれぞれの完全性を暗号保護するための、対応する一連の参照完全性保護値を生成するステップと、
格納媒体に前記一連の参照完全性保護値を格納するステップと
を行うように構成される請求項２０に記載の処理装置。
【請求項２２】
前記装置が前記第１のモードおよび第２のモードのうち前記第１のモードで操作される場合にのみ、前記一連の参照完全性保護値の生成参照完全性保護値を出力するように適合される完全性保護値計算部を備える請求項２１に記載の処理装置。
【請求項２３】
前記後続カウンタ値に対応する後続参照完全性保護値を生成し、前記目下の参照完全性保護値を前記後続参照完全性保護値で置き換えることにより、前記目下のカウンタ値を後続カウンタ値へインクリメントするようにさらに適合される請求項２０に記載の処理装置。
【請求項２４】
前記目下の参照完全性保護値を用いて前記目下のカウンタ値を検証し、前記目下のカウンタ値の成功検証を条件として前記後続参照完全性保護値を生成するようにさらに適合される請求項２３に記載の処理装置。
【請求項２５】
対応する前記カウンタ値および前記装置に固有となるように各参照完全性保護値を生成するようにさらに適合される請求項２０から２４のいずれか１項に記載の処理装置。
【請求項２６】
前記バージョンカウンタの値とシークレットキー値とからメッセージ認証符号関数により生成されるメッセージ認証符号値として各参照完全性保護値を生成するように適合される請求項２０から２５のいずれか１項に記載の処理装置。
【請求項２７】
前記シークレットキー値は装置固有である、請求項２６に記載の処理装置。
【請求項２８】
前記カウンタ値の各々は装置固有である、請求項２０から２７のいずれか１項に記載の処理装置。
【請求項２９】
対応する前記参照完全性保護値を用いて前記カウンタ値の前記生成および検証を実施するように適合される完全性保護モジュールを備え、その場合前記完全性保護モジュールは修正に対して安全である、請求項２０から２８のいずれか１項に記載の処理装置。
【請求項３０】
前記完全性保護モジュールはハードウェアモジュールである、請求項２９に記載の処理装置。
【請求項３１】
前記処理装置はプログラム可能マイクロプロセッサである、請求項２０から３０のいずれか１項に記載の処理装置。
【請求項３２】
前記処理装置は移動端末である、請求項２０から３１のいずれか１項に記載の処理装置。
【請求項３３】
前記処理装置は前記格納媒体を備える、請求項２０から３２のいずれか１項に記載の処理装置。
【請求項３４】
前記カウンタはソフトウェアバージョンカウンタである、請求項２０から３３のいずれか１項に記載の処理装置。
【国際調査報告】
2009534765.tif 000011
2009534765.tif 000012
2009534765.tif 000013