(57)【要約】【課題】共有暗号化キーの変更のためのシステムおよび方法を提供する。【課題を解決するための手段】  第１の動作環境（５６）と、第２の動作環境（６２）とをを備えるシステム（５０）であって、前記第１の動作環境及び前記第２の動作環境は、共有暗号化キー（Ｋ３）を使用して、暗号化された形で情報を交換し、前記第１の動作環境及び前記第２の動作環境は、別の共有暗号化キー（Ｋ４）を使用して、前記暗号化キーＫ３を変更するように協調し、前記暗号化キーＫ４は、前記暗号化キーＫ３が変更される時に変更される。【選択図】図１【特許請求の範囲】
【請求項１】
第１の動作環境（５６）と、
第２の動作環境（６２）とを
を備えるシステム（５０）であって、
前記第１の動作環境及び前記第２の動作環境は、共有暗号化キー（Ｋ３）を使用して、暗号化された形で情報を交換し、
前記第１の動作環境及び前記第２の動作環境は、別の共有暗号化キー（Ｋ４）を使用して、前記暗号化キーＫ３を変更するように協調し、前記暗号化キーＫ４は、前記暗号化キーＫ３が変更される時に変更される
システム。
【請求項２】
前記暗号化キーＫ４は、
前記暗号化キーＫ３を変更している間以外は使用されない
請求項１に記載のシステム。
【請求項３】
前記暗号化キーＫ４は、
前記第１の動作環境及び前記第２の動作環境のうちの一方によって、前記暗号化キーＫ３の新しい値の生成に関する前記第１の動作環境及び前記第２の動作環境のうちの他方による通信を検証するのに使用される
請求項１に記載のシステム。
【請求項４】
前記第１の動作環境及び前記第２の動作環境のうちの一方は、
前記第１の動作環境及び前記第２の動作環境のうちの他方にＨＭＡＣの値をサブミットし、
前記ＨＭＡＣの値は、前記暗号化キーＫ４に基づいている
請求項１に記載のシステム。
【請求項５】
前記第１の動作環境は、
前記第２の動作環境から乱数を受信し、
前記乱数及び前記共有暗号化キーＫ４を使用してＨＭＡＣの操作を行う
請求項１に記載のシステム。
【請求項６】
第１の動作環境によって、第２の動作環境に、前記第１の動作環境と前記第２の動作環境との間で共有される暗号化キー（Ｋ３）の新しい値を生成するように要求すること（８２）と、
前記第２の動作環境によって、別の共有暗号化キー（Ｋ４）を使用して、前記第１の動作環境の要求を検証すること（８４）と、
前記第２の動作環境によって、Ｋ３の前記新しい値を生成すると共にＫ４の新しい値を生成すること（８６）と、
前記第２の動作環境によって、前記新しいＫ３の値及び前記新しいＫ４の値を前記第１の動作環境に提供することと、
前記第１の動作環境によって、Ｋ３及びＫ４の前記新しい値を使用して、Ｋ３及びＫ４の古い値を置き換える（９０）ことと
を含む方法。
【請求項７】
前記第２の動作環境によって、Ｋ３及びＫ４の前記新しい値を使用して、Ｋ３及びＫ４の古い値を置き換える
請求項６に記載の方法。
【請求項８】
前記第１の動作環境によって、Ｋ４を使用して、前記第２の動作環境によって提供される前記新しいＫ３の値を検証すること（１３６）をさらに含む
請求項６に記載の方法。
【請求項９】
前記第２の動作環境によって、Ｋ４を使用して、前記第１の動作環境の要求を検証することは、
前記第２の動作環境によって、ハッシュ関数ベースのメッセージ認証コードを計算すること（１２０）を含む
請求項６に記載の方法。
【請求項１０】
前記第２の動作環境によって、ハッシュ関数ベースのメッセージ認証コードを計算することは、
前記第２の動作環境によって、Ｋ４に基づき、ハッシュ関数ベースのメッセージ認証コードを計算すること（１２０）を含む
請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明による実施の形態は、共有暗号化キーの変更に関する。
【背景技術】
【０００２】
多くのコンピューティングシステムは、オペレーティングシステム（ＯＳ）及び基本入出力システム（ＢＩＯＳ）等の一般に独立した複数の動作環境を備える。
このような動作環境は、互いに通信する。
少なくともいくつかの場合には、あいにく、動作環境間の通信メカニズムは、「ウィルス」等の不正なエンティティによってスヌープされやすい。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、共有暗号化キーの変更のためのシステムおよび方法を提供する。
【課題を解決するための手段】
【０００４】
本発明の一形態は、第１の動作環境（５６）と、第２の動作環境（６２）とをを備えるシステム（５０）であって、前記第１の動作環境及び前記第２の動作環境は、共有暗号化キー（Ｋ３）を使用して、暗号化された形で情報を交換し、前記第１の動作環境及び前記第２の動作環境は、別の共有暗号化キー（Ｋ４）を使用して、前記暗号化キーＫ３を変更するように協調し、前記暗号化キーＫ４は、前記暗号化キーＫ３が変更される時に変更される。
【０００５】
本発明の例示の実施形態を詳細に説明するために、ここで添付図面を参照する。
【図面の簡単な説明】
【０００６】
【図１】本発明の実施形態によるシステムを示す。
【図２】本発明の実施形態による少なくとも２つの動作環境間で共有されるキーを変更する方法を示す。
【図３Ａ】共有キーを変更する別の例示の方法を示す。
【図３Ｂ】共有キーを変更する別の例示の方法を示す。
【図４】本発明の実施形態による少なくとも２つの動作環境間で共有されるキーをリセットする方法を示す。
【発明を実施するための形態】
【０００７】
表記法及び用語体系
以下の説明及び特許請求の範囲の全体にわたって、特定のシステムコンポーネントを参照するために、一定の用語が使用される。
当業者には理解されるように、コンピュータ会社は、１つのコンポーネントを異なる名称で参照する場合がある。
この文書は、名称は異なるが、機能は異ならないコンポーネントを区別することは意図していない。
以下の論述及び特許請求の範囲において、「含む」及び「備える」という用語は、制限がないように使用され、したがって、「〜を含むが、これらに限定されるものではない」ということを意味するように解釈されるべきである。
また、「連結する（"couple" or "couples"）」という用語は、間接的な電気接続、直接的な電気接続、光電気接続、又は無線電気接続のいずれかを意味するように意図されている。
したがって、第１のデバイスが第２のデバイスに連結する場合、その接続は、直接的な電気的接続を通じている場合もあるし、他のデバイス及び接続を介して間接的な電気的接続を通じている場合もあるし、光電気接続を通じている場合もあるし、無線電気接続を通じている場合もある。
【０００８】
詳細な説明
図１は、システム５０の一実施形態を示している。
システム５０は、プロセッサ５２、システム読み出し専用メモリ（ＲＯＭ）５４、及びストレージ５９を備える。
システムＲＯＭ５４は、プロセッサ５２によって実行可能なコードである基本入出力システム（ＢＩＯＳ）５６を記憶している。
ＢＩＯＳ５６は、ブートアップ中にシステム５０をテストして初期化するパワーオンセルフテスト（ＰＯＳＴ）を備える。
また、ＢＩＯＳ５６は、システム５０の周辺コンポーネント（たとえば、フロッピー（登録商標）ディスクドライブ、ハードドライブ、キーボード等）のうちのさまざまなものに対する低レベルインターフェースも提供する。
ストレージ５９には、ランダムアクセスメモリ（ＲＡＭ）等の揮発性メモリ、ＲＯＭ、ハードディスクドライブ等の不揮発性ストレージ、又はそれらの組み合わせが含まれる。ストレージ５９は、オペレーティングシステム（ＯＳ）６２を記憶している。
ＯＳ６２も、プロセッサ５２によって実行されるコードを含む。
ＯＳ６２の下で動作し且つプロセッサ５２によって実行される１つ又は複数のアプリケーション／ドライバ６４が存在する場合がある。
【０００９】
ＢＩＯＳ５６及びＯＳ６２は、安全な通信メカニズムを介して互いに通信する２つのソフトウェア動作環境を備える。
以下の説明は、ＢＩＯＳ５６及びＯＳ６２のコンテキストで提供されるが、一般に他の動作環境にも適用することができる。
以下の動作のいずれもがＯＳ６２に起因するものである限りにおいて、このような動作は、ＯＳ自体又はＯＳの下で動作するアプリケーション／ドライバ６４のうちの１つ若しくは複数が行うことができる。
【００１０】
ＢＩＯＳ５６及びＯＳ６２は、両者の間を往復して転送されるコマンド及びデータを暗号化することによって互いに通信する。
本発明の実施形態によれば、暗号化プロトコルは、ＢＩＯＳ５６及びＯＳ６２がそれぞれ同じ暗号化キーのコピーを使用することを意味する対称暗号化プロトコルを含む。
たとえば、ＯＳ６２は、暗号化キーを使用して、ＢＩＯＳ５６への送信要求を暗号化し、ＢＩＯＳ５６は、同じ暗号化キーの自身のコピーを使用して、その暗号化された要求を解読する。
「共有」暗号化キーは、ＯＳ６２からＢＩＯＳ５６への方向及びその逆方向のいずれの情報の暗号化にも使用される。
【００１１】
或るエンティティ（たとえば、ウィルス）が、ＢＩＯＳ５６とＯＳ６２との間の暗号化された通信をスヌープして、使用されている暗号化キーを求めることは、理論的には可能である。
このような不正なエンティティがＢＩＯＳ５６とＯＳ６２との間の通信をスヌープして暗号化キーを推定する可能性を低減するために、共有キーを更新するセキュリティメカニズムが実施される。
このセキュリティメカニズムは、ＢＩＯＳ５６及びＯＳ６２に、それらの共有キーを安全な方法で変更させる。
すなわち、共有キーが更新される方法は、それ自体安全である。
共有キー更新手順は、所定の時間期間又はプログラミング可能な時間期間（たとえば、１時間に１回、１日に１回等）で行われるようにスケジューリングすることもできるし、ＢＩＯＳ５６とＯＳ６２との間で通信がｎ回行われた時（たとえば、各通信パケット又は５つの通信パケットごと）に行われるようにスケジューリングすることもできる。
【００１２】
図１を再び参照すると、システムＲＯＭ５４は、Ｋ１、Ｋ２、Ｋ３、及びＫ４とラベル付けされたさまざまな暗号化キー５８のためのストレージを含む。
キーＫ１及びＫ２のコピーが、システムＲＯＭ５４内にロードされ、本発明のいくつかの実施形態によれば、消去可能、上書き可能、又は別の方法で抹消可能でない。
キーＫ３及びＫ４は、以下で説明するように、消去及び上書きすることができる。
システムＲＯＭ上のＫ１〜Ｋ４キー５８は、ＢＩＯＳ５６の一部とすることもできるし、ＢＩＯＳ５６とは別個のものとすることもできる。
ＯＳ６２も、キーＫ１〜Ｋ４  ６６のセットにアクセスする。
例示の実施形態によれば、ＯＳのキーＫ１〜Ｋ４  ６６は、ＢＩＯＳ５６のキーＫ１〜Ｋ４  ５８と同一である。
ＢＩＯＳキー５８に関して、いくつかの実施形態では、ＯＳ６２のキーＫ１及びＫ２のコピーは、上書き又は別の方法による抹消から保護される。
ＯＳのキーＫ３及びＫ４は、消去及び上書きすることができる。
【００１３】
本明細書で使用される場合、「キー」という用語（たとえば、Ｋ３）は、そのキーの値を指す。
したがって、Ｋ３の値を新しい値に変更することができるが、それでも、その新しい値はＫ３として参照される。
【００１４】
図１に示すように、ＢＩＯＳ５６及びＯＳ６２のそれぞれは、ＢＩＯＳ５６とＯＳ６２との間で交換される情報を暗号化するために共有暗号化キーにアクセスする。
本発明の実施形態によれば、暗号化プロセスは、情報を暗号化するのに使用されたキー値と同じキー値が解読プロセス中も使用されることを意味する対称暗号化である。
たとえば、ＯＳ６２は、共有キーＫ１の自身のコピーを使用して、ＢＩＯＳ５６へ送信される情報（たとえば、コマンド、データ）を暗号化する。
ＢＩＯＳ５６は、共有キーＫ１の自身のコピーを使用して、受信された通信を解読し、基礎となる情報を回復する。
また、ＢＩＯＳ５６も、暗号化された情報をＯＳ６２へ送信することができ、そのために、ＢＩＯＳ５６はキーＫ１を使用してこのような情報を暗号化し、ＯＳ６２は、キーＫ１を使用して解読を行う。
ＯＳ６２及びＢＩＯＳ５６は、このように、共有暗号化キー（たとえば、Ｋ１）を使用して、暗号化された形で情報を交換する。
共有キーＫ２は、図２の例で示すキー更新手順中に使用される。
【００１５】
上記で論述したように、往復して渡される暗号化されたパケットを監視することによって、対称暗号化キーの値を推定することが可能である。
したがって、ＢＩＯＳ５６とＯＳ６２との間で交換される暗号化された情報を監視することによって、暗号化キーＫ１を推定することができる。
本発明の実施形態によれば、２つの動作環境（たとえば、ＢＩＯＳ５６及びＯＳ６２）間で情報を暗号化するのに使用される暗号化キーを変更するメカニズムが提供される。
さらに、暗号化キーの変更は、暗号化キーの新しい値が危険にさらされないようにそれ自体安全である方法で行われる。
共有対称暗号化キーＫ２は、認可されたエンティティのみがＫ１の変更を試みていることを検証するのを助ける方法で暗号化キーＫ１を変更するために使用される。
キーＫ１の変更時には、キーＫ２も変更される。
さらに、本発明のさまざまな実施形態によれば、キーＫ２の現在の値は、キーＫ１を変更するプロセス中にのみ使用され、この期間中、Ｋ２も変更される。
すなわち、Ｋ１を変更するプロセス中、キーＫ２も、新しい値に設定される。
この新しい値は、その後、この次にキーＫ１が変更される時に使用される。
Ｋ２の現在の値は、Ｋ１の変更を援助するのに１回使用されるので（ただし、Ｋ２を、Ｋ１が変更されるごとに２回以上使用してもよい）、その値は、ＢＩＯＳ５６とＯＳ６２との間のトラフィックを監視する不正なエンティティによって合理的に推定することはできない。
いくつかの実施形態では、Ｋ１及びＫ２が変更される。
他の実施形態では、或る種のエラーの場合においてもＢＩＯＳ５６及びＯＳ６２が互いに通信できることを確実にするために、キーＫ１及びＫ２は変更されないままであり、その代わり、キーＫ１及びＫ２のコピー（本明細書では、キーＫ３及びＫ４としてそれぞれ論述される）が、メッセージの暗号化／解読及びキー更新プロセスの実行に使用される。
エラーの場合、システムは、元のＫ１及びＫ２に戻ることができる。
【００１６】
本発明の実施形態によれば、ＢＩＯＳ５６及びＯＳ６２のうちの一方は、ＢＩＯＳ及びＯＳのうちの他方に、Ｋ１及びＫ２の新しい暗号化キー値を計算するように要求する。
一実施形態では、ＯＳ６２は、ＢＩＯＳ５６に、Ｋ１及びＫ２の新しい値を計算するように要求する。
このプロセス中、キーＫ２は、ＢＩＯＳ５６によって、暗号化キーＫ１を変更するというＯＳの要求を検証するのに使用される。
さらに、キーＫ２は、ＯＳ６２によって、ＢＩＯＳからＯＳへの、Ｋ１及びＫ２の新しい値を有する戻りの通信を検証するのにも使用される。
Ｋ２を使用して、ＯＳ６２とＢＩＯＳ５６との間の通信を検証することは、不正なエンティティが新しいキーの対をＯＳ又はＢＩＯＳのいずれか又は双方と交換することを防止するのに役立つ。
本明細書で説明する実施形態では、共有キーＫ２にアクセスするコンピューティング環境（たとえば、ＢＩＯＳ５６及びＯＳ６２）のみが、キーＫ１及びＫ２の変更を実施することができる。
【００１７】
本発明の少なくともいくつかの実施形態によれば、ＢＩＯＳ５６及びＯＳ６２の双方についてＫ３及びＫ４の値がＫ１及びＫ２の値にそれぞれ設定されるシステム５０が、システムのユーザに提供される。
すなわち、最初は、ＢＩＯＳ５６及びＯＳ６２の双方について、Ｋ３はＫ１に等しく、Ｋ４はＫ２に等しい。
システム５０のインストールプロセス中、キーＫ３及びＫ４は、以下で説明する方法に従ってＢＩＯＳ５６及びＯＳ６２の双方について変更される。
その時点から、ＢＩＯＳ５６とＯＳ６２との間の暗号化は、キーＫ３を使用し、キーＫ４は、キーＫ３を変更するのに使用され、その結果、Ｋ４も同様に変更される。
【００１８】
いくつかの実施形態では、ＢＩＯＳ５６及びＯＳ６２の双方のキーＫ１及びＫ２は、消去可能ではなく、それによって、システム５０には、所望又は必要に応じて、キーの既知の機能セット（Ｋ１及びＫ２）に戻る能力が提供される。
たとえば、ストレージ５９が正常に機能せず、取り替えられる場合、取り替えハードドライブは、Ｋ１及びＫ２の元の値を有し、キーＫ３及びＫ４はキーＫ１及びＫ２をミラーリングする。
システムＲＯＭ５４上のキーＫ３及びＫ４も、Ｋ１及びＫ２の初期値に設定して戻すことができる。
【００１９】
図２を参照すると、動作８２〜９０を含むキー変更プロセス８０の一例が示されている。図２のプロセス８０は、ＢＩＯＳ５６が、ＯＳ６２の要求に応じて、Ｋ１及びＫ２の新しい値を計算することを説明している。
他の実施形態では、ＢＩＯＳ５６及びＯＳ６２の役割が逆転され、ＢＩＯＳ５６がキー更新を要求し、ＯＳ６２が新しいキー値を計算する。
【００２０】
８２において、ＯＳ６２は、ＢＩＯＳ５６に、共有キーＫ３及びＫ４のキー値の取り替えセットを生成するように要求する。
８４において、ＢＩＯＳ５６は、Ｋ４の使用を通じて、ＯＳの要求を検証する。
ＢＩＯＳ５６が、ＯＳの要求の検証に成功した場合、８６において、ＢＩＯＳは、暗号化キー値の新しいセット（Ｋ５及びＫ６）を計算し、それら新しいキー値Ｋ５及びＫ６をＯＳ６２に提供する。
キー値Ｋ５及びＫ６は、本質的には一時的なものであり、これは、少なくともいくつかの実施形態では、キー値Ｋ５及びＫ６が、Ｋ３及びＫ４の値を変更するためにのみ使用されることを意味する。
ＢＩＯＳ５６がＯＳの要求の検証に失敗した場合、このプロセスは停止するか、又は別の適切な動作を行う（たとえば、アラートを報知する）。
【００２１】
さらに図２を参照すると、８８において、Ｋ４を再び使用することを通じて、ＯＳ６２は、新しい暗号化キーのセット（Ｋ５、Ｋ６）を含むＢＩＯＳ５６からの通信を検証する。
ＯＳ６２がＢＩＯＳの通信の検証に成功した場合、９０において、ＯＳは、Ｋ３及びＫ４のキーのＯＳのコピーを新しいキーＫ５及びＫ６と取り替える。
すなわち、Ｋ５は、Ｋ３を上書きするのに使用され、Ｋ６は、Ｋ４を上書きするのに使用される。
ＯＳが新しいキーを受理したことのメッセージが、ＯＳによってＢＩＯＳへ送信され、ＢＩＯＳも、その後、Ｋ３及びＫ４のキーの自身のコピーを新しいキーＫ５及びＫ６の値と取り替える。
【００２２】
図３Ａ及び図３ｂのキー変更プロセス１００は、図２の動作のいくつかをより詳細に説明している。
１０２において、ＯＳ６２は、ＢＩＯＳ５６に、乱数をＯＳに提供するように要求する。
「乱数」（ＲＮ）という用語は、本明細書で説明する実施形態と共に使用可能であるのに十分にランダムな数を含む。
したがって、乱数は、数学的に真の乱数である必要はない。
１０４において、ＢＩＯＳ５６は、乱数を生成し、キーＫ３を使用してその乱数を変更し、変更された乱数をＯＳ６２に提供する。
乱数の生成は、アナログパラメータ（たとえば、温度、雑音等）をサンプリングし、そのサンプルを使用して乱数を生成すること等の任意の適切な技法を介して行うことができる。
少なくとも１つの実施形態では、乱数に対する変更は、乱数がＫ３と排他的ＯＲされる排他的ＯＲ演算を行うことを含む。
１０６において、ＯＳ６２は、変更された乱数を受信し、元の乱数を回復する。
乱数がＢＩＯＳ５６によってＫ３と排他的ＯＲされた例では、ＯＳ６２は、変更された乱数とＫ３のＯＳのコピーとを排他的ＯＲすることによって乱数を回復する。
【００２３】
１０８において、ＯＳ６２は、Ｋ４及び１０６で回復された乱数を使用して、ハッシュ関数ベースのメッセージ認証コード（ＨＭＡＣ）を計算し、出力値ＨＭＡＣ＿ＯＳ１を生成する。
ＨＭＡＣは、宛先エンティティへ通信を送信する送信元エンティティが真正であることを検証するのに使用可能である。
ＨＭＡＣ以外の他のメカニズムも可能であり、本開示の範囲内にある。
１１０において、ＯＳ６２は、ＨＭＡＣ＿ＯＳ１値をＢＩＯＳ５６に提供し、ＢＩＯＳに、共有キーＫ３及びＫ４に取って代わる新しいキーのセットを生成するように要求する。
ＢＩＯＳ５６が新しいキー値を生成する前に、ＢＩＯＳは、その要求が、認可された送信元（すなわち、ＯＳ６２）からのものであることを検証する。
ＢＩＯＳは、１０４において生成されたＢＩＯＳの乱数を使用し且つＫ４のＢＩＯＳのコピーも使用して、１１２において、それ自身のＨＭＡＣ（ＨＭＡＣ＿ＢＩＯＳ１と呼ぶ）を計算することによってこの検証を行う。
これら乱数及びＫ４のＢＩＯＳのコピーは、ＯＳ６２によって、ＨＭＡＣ＿ＯＳ１値を生成するのに使用されたものと同じ値である。
したがって、ＯＳ６２によって計算されたＨＭＡＣ値とＢＩＯＳ５６によって計算されたＨＭＡＣ値とは一致するはずである。
一方、不正なエンティティがＨＭＡＣ値をＢＩＯＳに提供した場合、このような不正なエンティティは、Ｋ４及び／又は乱数の正しい値にアクセスできず、したがって、一致しないＨＭＡＣ値を計算していることになるので、ＨＭＡＣ値は一致しないことになる。
【００２４】
１１４において、ＢＩＯＳ５６は、ＨＭＡＣ＿ＯＳ１の値とＨＭＡＣ＿ＢＩＯＳ１の値とを比較して、それらの値が一致するかどうかを判断する。
それらの値が一致しない場合、このプロセスは失敗し、１１６において停止する。
所望に応じて、この状況で、アラート又は他の適切な応答を行うことができる。
一方、ＨＭＡＣ＿ＯＳ１の値及びＨＭＡＣ＿ＢＩＯＳ１の値の場合、この方法は、１１８において続行され、１１８において、ＢＩＯＳは、新しいキーの対Ｋ５及びＫ６を生成する。
このようなキーは、任意の適切な技法に従って計算することができる。
【００２５】
１２０において、ＢＩＯＳは、今度は、Ｋ４のＢＩＯＳのコピーと、Ｋ５、Ｋ６、及び１０４において生成された乱数を結合したものである別の値とを使用して、別のＨＭＡＣ値を計算する。
１２０における結果のＨＭＡＣ値は、ＨＭＡＣ＿ＢＩＯＳ２と呼ばれ、以下で説明するように、ＯＳ６２によって、新しいキー値Ｋ５及びＫ６が認可された送信元（すなわち、ＢＩＯＳ５６）によってＯＳへ送信されたことを検証するのに使用される。
Ｋ５、Ｋ６、及び乱数の値は、少なくとも１つの実施形態では、このような値を互いに連結することによって互いに結合される。
Ｋ５、Ｋ６、及び乱数を結合するための他の技法も同様に可能であり、本開示の範囲内にある。
【００２６】
さらに図３Ａを参照すると、１２２において、ＢＩＯＳは、Ｋ４及び１０４において生成された乱数のハッシュを計算して、Ｈａｓｈ＿ＢＩＯＳと呼ばれる値を生成する。
これに関しては、任意の適切なハッシュ関数を使用することができる。
１２４において、ＢＩＯＳ５６は、Ｈａｓｈ＿ＢＩＯＳ値を使用して、新しく計算されたキーＫ５及びＫ６を変更し、Ｋ５及びＫ６の変更バージョンを生成する。
したがって、Ｋ５は、Ｈａｓｈ＿ＢＩＯＳを使用して変更され、Ｋ６も、Ｈａｓｈ＿ＢＩＯＳを使用して変更される。
少なくともいくつかの実施形態では、Ｋ５及びＫ６の値に対する変更は、Ｋ５及びＫ６の値のそれぞれをＨａｓｈ＿ＢＩＯＳ値と排他的ＯＲすることを含む。
１２６において、ＢＩＯＳ５６は、変更されたＫ５の値、変更されたＫ６の値、及びＨＭＡＣ＿ＢＩＯＳ２の値をＯＳ６２に提供する。
【００２７】
１２８（図３Ｂ）において、ＯＳ６２は、変更されたＫ５及びＫ６の値並びにＨＭＡＣ＿ＢＩＯＳ２の値を受信する。
１３０において、ＯＳ６２は、Ｋ４のＯＳのコピー及び１０４においてＢＩＯＳによってＯＳに提供された乱数のハッシュ（１２２においてＢＩＯＳによって使用されたものと同じハッシュ関数を使用する）を計算する。
１３０において計算されたハッシュは、Ｈａｓｈ＿ＯＳと呼ばれる。１３２において、ＯＳ６２は、１３０において計算されたハッシュを使用することによって、Ｋ５及びＫ６の変更バージョンからＫ５及びＫ６の元のバージョンを回復する。
Ｋ５及びＫ６が、Ｋ５及びＫ６をＨａｓｈ＿ＢＩＯＳの値と排他的ＯＲすることによって変更された実施形態では、この回復オペレーションは、Ｋ５及びＫ６の変更バージョンをＨａｓｈ＿ＯＳと排他的ＯＲすることによって行われる。
【００２８】
１３４において、ＯＳは、Ｋ４と、（１３２において回復された）Ｋ５、Ｋ６、及び１０４からの乱数を結合したものとを使用して、ＨＭＡＣの値を計算する。
少なくともいくつかの実施形態では、Ｋ５、Ｋ６、及び乱数の値は、このような値が１２０において互いに結合された方法（たとえば、連結）と同じ方法で１３４において互いに結合される。
１３４からのその結果のＨＭＡＣの値は、ＨＭＡＣ＿ＯＳ２と呼ばれる。
ＯＳ６２は、１３６において、ＨＭＡＣ＿ＯＳ２をＨＭＡＣ＿ＢＩＯＳ２と比較して、新しいキーＫ５及びＫ６の送信元が、認可されたエンティティ（たとえば、ＢＩＯＳ５６）であることを検証する。
ＨＭＡＣの値が１３６において一致しない場合、キー更新プロセスは、１３８において失敗で終了する。
一致する場合、１４０において、ＯＳは、新しいキーＫ５及びＫ６を使用してＫ３及びＫ４をそれぞれ上書きすることによって、ＢＩＯＳ５６からの新しいキーＫ５及びＫ６を受理する。
１４２において、ＯＳ６２は、ＯＳが新しいキー値Ｋ５及びＫ６を受信して受理したことをＢＩＯＳ５６に通知する。
この肯定応答によって、ＢＩＯＳ５６は、Ｋ５及びＫ６の自身のコピーを使用して、Ｋ３及びＫ４の自身のコピーを上書きし、それによって、Ｋ３及びＫ４の前の値をＫ５及びＫ６の値と取り替える。
【００２９】
ＢＩＯＳ５６とＯＳ６２との間で使用される共有キーＫ３及びＫ４を更新できることに加えて、開示した実施形態のセキュリティメカニズムは、キーＫ１及びＫ２を暗号化／解読及びキー更新の目的で使用できるように、ＢＩＯＳ５６及びＯＳ６２が自身の共有キーを前の既知のキーのセットＫ１及びＫ２にリセットするリセットの発生も可能にする。
図４は、このプロセスを示す一例示の方法１５０を提供する。
１５２において、ＯＳ６２は、管理パスワードの入力をユーザに促す。
ユーザは、この管理パスワードの入力を１５４において行う。
１５６において、管理パスワードは検証され、次に、キーＫ１で暗号化される。
１５８において、ＯＳは、暗号化された管理パスワードをＢＩＯＳ５６へ送信し、次に、ＢＩＯＳ５６は、暗号化されたパスワードを解読して、その有効性を確認する（１６０）。
次に、ＢＩＯＳ５６は、キーＫ１及びＫ２へのリセットを行う。
このリセットオペレーションは、いくつかの実施形態では、Ｋ１及びＫ２の値を使用しストレージ６６のＫ３及びＫ４の値を上書きして行われる。
同様に、ＯＳも、たとえば、Ｋ１及びＫ２のＯＳの値を使用して、ストレージ５８のＫ３及びＫ４のＯＳの値を上書きすることによって、キーＫ１及びＫ２へのリセットを行う。
【００３０】
本発明の実施形態の少なくともいくつかによれば、２つのシステムは、同じＫｏｄｄ及びＫｅｖｅｎを有しない。
したがって、たとえ攻撃者が或るシステム上のキーの対にアクセスできても、このような知識は、他のシステムを攻撃するのに役立たず、それによって、全体的な攻撃に対する保護が行われる。
【００３１】
上記論述は、本発明の原理及びさまざまな実施形態の例示であるように意図されている。
上記開示が十分に理解されると、多数の変形及び変更が当業者には明らかになるであろう。
以下の特許請求の範囲は、このようなすべての変形及び変更を包含するように解釈されることが意図されている。
【符号の説明】
【００３２】
５０・・・システム
５２・・・プロセッサ
５４・・・システムＲＯＭ
５６・・・基本入出力システム（ＢＩＯＳ）
５８・・・暗号化キー
５９・・・ストレージ
６２・・・オペレーティングシステム（ＯＳ）
６４・・・アプリケーション／ドライバ
【図１】
2010505356.tif 000002
【図２】
2010505356.tif 000003
【図３Ａ】
2010505356.tif 000004
【図３Ｂ】
2010505356.tif 000005
【図４】
2010505356.tif 000006
【国際調査報告】
2010505356.tif 000007
2010505356.tif 000008
2010505356.tif 000009