(57)【特許請求の範囲】
【請求項１】
電子装置をより低い電力状態からより高い電力状態に遷移させる手順を実行するステップ（２０２）であって、前記のより低い電力状態において、前記電子装置の記憶装置はロックされ、前記記憶装置への電力が停止されている、実行するステップと、
前記電子装置を前記のより低い電力状態から前記のより高い電力状態に遷移させる前記手順の一部として、前記ロックされた記憶装置をロック解除する認証情報の生成を可能にするロック解除情報を前記記憶装置に提供するステップ（２０４）であって、前記提供されるロック解除情報は、前記電子装置を前記のより低い電力状態にする前にメモリ内に記憶されていた所定の情報に基づき、該所定の情報は前記認証情報と異なる、提供するステップと、
前記電子装置を前記のより低い電力状態から前記のより高い電力状態に遷移させる前記手順の一部として、前記メモリ内に記憶されている前記所定の情報に基づいて暗号化鍵を計算するステップと
を含み、
前記ロック解除情報を提供するステップは、前記計算された暗号化鍵を前記記憶装置に提供するステップを含み、前記計算された暗号化鍵は、前記記憶装置によって前記ロックされた記憶装置をロック解除する認証情報を生成するのに使用可能である、方法。
【請求項２】
前記暗号化鍵を計算するステップは、前記電子装置を前記のより低い電力状態にする前に前記メモリ内に記憶されていた、シード鍵及びカウンタ値に基づいて前記暗号化鍵を計算するステップを含み、前記所定の情報は前記シード鍵及び前記カウンタ値を含む、請求項１に記載の方法。
【請求項３】
前記暗号化鍵を計算するステップは、ハッシュに基づくメッセージ認証コードに基づくワンタイムパスワード技法を用いて前記暗号化鍵を計算するステップを含む、請求項２に記載の方法。
【請求項４】
前記ロック解除情報を提供するステップは、前記記憶装置が該記憶装置をロック解除する前記認証情報を計算するのに使用可能な乱数を提供するステップを含み、前記所定の情報は前記乱数を含む、請求項１に記載の方法。
【請求項５】
前記のより低い電力状態から前記のより高い電力状態への次の遷移において前記記憶装置に提供されるロック解除情報を生成するのに用いるように前記所定の情報を更新するステップを更に含む、請求項１に記載の方法。
【請求項６】
コールドブート手順の一部として、前記記憶装置をロック解除する認証情報を入力するようにユーザにプロンプトを提供するステップと、
前記プロンプトに応答して前記認証情報を取得した後、前記所定の情報を前記メモリに記憶するステップと、
を更に含む、請求項１に記載の方法。
【請求項７】
前記認証情報に基づいて秘密を計算するステップを更に含み、前記所定の情報は前記秘密を含む、請求項６に記載の方法。
【請求項８】
前記認証情報を取得した後、乱数を計算するステップを更に含み、前記所定の情報は前記乱数を含む、請求項６に記載の方法。
【請求項９】
メモリ（１０４）と、
記憶装置（１１２）であって、ロックされた該記憶装置のロック解除が認証情報に基づいて実行されることを指定するオートロック機能を有する、記憶装置と、
少なくとも１つのプロセッサ（１０２）であって、
電子装置をより低い電力状態からより高い電力状態に遷移させる手順を実行し、なお、前記のより低い電力状態において、前記記憶装置への電力が停止されており、
前記電子装置を前記のより低い電力状態から前記のより高い電力状態に遷移させる前記手順の一部として、前記認証情報を用いた前記記憶装置のロック解除を可能にするロック解除情報を前記記憶装置に提供し、なお、前記提供されるロック解除情報は、前記電子装置を前記のより低い電力状態にする前に前記メモリ内に記憶されていた所定の情報に基づき、該所定の情報は前記認証情報と異なる、
前記電子装置を前記のより低い電力状態から前記のより高い電力状態に遷移させる前記手順の一部として、前記メモリ内に記憶されている前記所定の情報に基づいて暗号化鍵を計算し、
前記ロック解除情報の提供は、前記計算された暗号化鍵を前記記憶装置に提供することを含み、前記計算された暗号化鍵は、前記記憶装置によって前記記憶装置をロック解除する認証情報を生成するのに使用可能である、
少なくとも１つのプロセッサと、
を備える、電子装置。
【発明の詳細な説明】
【背景技術】
【０００１】
記憶装置はオートロック機能を含むことができる。このオートロック機能では、記憶装置の電源が切れると記憶装置がロックされる（記憶装置に含まれるデータにアクセスできないようにされる）。記憶装置をロック解除するには、記憶装置が電源オフ状態からレジュームするときに認証情報が記憶装置に提供される。
【発明の概要】
【０００２】
以下の図面に関していくつかの実施形態を説明する。
【図面の簡単な説明】
【０００３】
【図１】いくつかの実施態様による例示的な電子装置のブロック図である。
【図２】様々な実施態様によるプロセスの流れ図である。
【図３】様々な実施態様によるプロセスの流れ図である。
【図４】様々な実施態様によるプロセスの流れ図である。
【図５】様々な実施態様によるプロセスの流れ図である。
【図６】代替的な実施態様による別の例示的な電子装置のブロック図である。
【発明を実施するための形態】
【０００４】
オートロック機能を有する記憶装置を備える電子装置（例えば、コンピュータ、携帯情報端末、スマートフォン、電子機器等）がスリープ状態に入ると、電子装置は記憶装置を電源オフ状態にすることができる。「スリープ状態」は、記憶装置の電源が切られている、電子装置のより低い電力状態（例えばオフ状態又は他のより低い電力状態）を指す。電子装置がスリープ状態からレジュームすると、オートロック機能を有する記憶装置は電源をオンにされる。記憶装置が電源オフ状態から始動するとき、記憶装置は認証情報を用いて自身をロック解除する。「認証情報」は、パスワード、認証鍵、又は記憶装置にセキュアなアクセスを提供するのに用いられる任意の他の秘密情報を指すことができる。認証情報は、ユーザ、管理者又は別のソースによって提供することができる。認証情報が提供されないか又は不正な認証情報が提供される場合、記憶装置はロックされたままであり、記憶装置内のデータはアクセス不可能なままである。
【０００５】
スリープ状態の例は、高度構成及び電力インタフェース（ＡＣＰＩ）規格によって規定されているようなＳ３状態である。他の実施態様では、他のタイプのスリープ状態を用いることができる。より一般的には、電子装置の「より低い電力状態」を指す。電子装置は、このより低い電力状態から「より高い電力状態」に遷移することができる。「より高い電力状態」とは、電力が記憶装置に戻った電力状態である。以後の論考において「スリープ状態」に言及するが、他の例では他のより低い電力状態を用いることができることに留意されたい。
【０００６】
電子装置のスリープ状態では、オートロック機能を有する記憶装置の電源が切れる場合であっても電子装置のメモリに電力が維持され、これによりメモリ内に記憶された情報が維持され、電子装置を以前の状態にレジュームするのに用いられることが可能になる。スリープ状態からのレジューム中、ブートモジュールは、オートロック機能を有する記憶装置をロック解除するのに用いられる認証情報を求めてユーザにプロンプトする（促す）ことができない場合がある。これは、ブートモジュールが所定のハウスキーピングタスク以外の或る特定のタスク（記憶装置をロック解除する認証情報を求めるプロンプト等）を実行しようと試みた場合に、メモリのコンテンツが破損している可能性があることに起因する。オペレーティングシステム（ＯＳ）は、スリープ状態に入る前に、多くの場合に電子装置の現在の状態をメモリ内に記憶する。この現在の状態は、スリープ状態からのレジューム時に用いられる。現在の状態は、ドライバ、コンポーネント（例えば、グラフィックコンポーネント、キーボード、周辺装置等）の状態情報及び他の情報を含むことができる。ブートモジュールが記憶装置をロック解除する認証情報を求めてプロンプトを実行するには、ブートモジュールはメモリのコンテンツを変更しなくてはならない場合があり、これによってメモリ内に記憶された現在の状態情報が破損する可能性がある。ブートモジュールが認証情報を取得することができない別の理由は、ユーザ又は他の外部エンティティからの認証情報を収集するのに用いられるシステムリソースに対しブートモジュールがアクセスを有しないことに起因する場合がある。
【０００７】
いくつかの実施態様によれば、電子装置がスリープ状態からレジュームする（スリープ状態から、電子装置の通常動作状態等のより高い電力状態に遷移する）とき、ブートモジュールはメモリから或る特定の情報を検索してロック解除情報を取り出し、このロック解除情報を、オートロック機能を有する記憶装置に提供して、記憶装置がロック解除することを可能にすることができる。このように、ブートモジュールは、スリープ状態からのレジューム中、記憶装置をロック解除する認証情報を入力するようにユーザにプロンプトしなくてよい。
【０００８】
いくつかの実施態様では、ブートモジュールは基本入出力システム（ＢＩＯＳ）モジュールとすることができる。他の例では、他のタイプのブートモジュールを用いることができる。より一般的には、「ブートモジュール」は、電子装置がより低い電力状態からより高い電力状態に遷移する前に少なくともいくつかのタスクを実行する任意のモジュールを指す。
【０００９】
いくつかの例では、オートロック機能を有する記憶装置は、自己暗号化記憶装置とすることができる。自己暗号化記憶装置では、この自己暗号化記憶装置に記憶されたデータを保護するのにデータ暗号化鍵が用いられる。自己暗号化記憶装置内の回路は、データ暗号化鍵を用いてデータを暗号化し、それによって暗号化データが記憶される。記憶されたデータが後にアクセスされるとき、回路は暗号化データを解読し、解読されたデータを要求元に提供する。自己暗号化記憶装置のユーザが後に、記憶装置を廃棄するか、記憶装置内に記憶されたデータを消去することを決めた場合、ユーザは単に（ＢＩＯＳ又は他のエージェントによって）データ暗号化鍵を消去するコマンドを自己暗号化記憶装置にサブミットさせるのみでよく、これによって、そのようなデータはデータ暗号化鍵なしでは復元不可能であるため、記憶されたデータが効果的に消去される。
【００１０】
オペレーティングシステム又はファイルシステムに基づくインタフェースを用いて利用可能なデータ削除動作は、実際に永続記憶媒体（例えば、磁気記憶媒体、光学記憶媒体、フラッシュメモリ等）上の基礎データを消去しないことに留意されたい。ファイル又はディレクトリが「削除」された場合であっても、基礎データは依然として永続記憶媒体上に留まる。基礎データを効果的に消去するには、データが上書きされなくてはならない場合があるか、又は代替的に、永続記憶媒体が破壊される可能性がある。より一般的には、「永続記憶媒体」は、記憶媒体のシステム電源が切れた後であっても、記憶媒体上に記憶されたデータを維持する任意の記憶媒体を指す。
【００１１】
自己暗号化記憶装置内部で暗号化鍵へのアクセスが制御されていない場合、この自己暗号化記憶装置内のデータの有意味な保護が存在しないことに留意されたい。自己暗号化記憶装置は、暗号化鍵へのアクセスを制御する、上記で論考した認証情報を提供される。認証情報を用いて暗号化鍵へのアクセスを許可する様々なメカニズムを用いることができる。
【００１２】
自己暗号化記憶装置について言及しているが、いくつかの実施態様による技法又はメカニズムは、オートロック機能を用いる他のタイプの記憶装置にも適用することができることに留意されたい。
【００１３】
図１は、例示的な電子装置１００のブロック図である。電子装置は、プロセッサ（又は複数のプロセッサ）１０２を含む。プロセッサ（複数の場合もある）１０２はオートロック機能を有するメモリ１０４及び記憶装置１１２に接続することができる。オートロック機能は、記憶装置１１２の電源が切れたときに記憶装置１１２をロックする。その後の記憶装置１１２のロック解除は、（上記で論考したような）認証情報を用いることによって達成される。
【００１４】
例として、記憶装置１１２は永続記憶装置とすることができる。永続記憶装置とは永続記憶媒体を備える記憶装置である。永続記憶装置１１２は、磁気ディスクドライブ、光ディスクドライブ、フラッシュメモリ、又は別のタイプの記憶装置とすることができる。例として、メモリ１０４は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）装置（複数の場合もある）、スタティックランダムアクセスメモリ（ＳＲＡＭ）装置（複数の場合もある）、フラッシュメモリ装置（複数の場合もある）等の集積回路メモリ装置（複数の場合もある）又は任意の他のタイプのメモリ装置を用いて実装することができる。
【００１５】
メモリ１０４は、スリープ状態からのレジューム中に（例えばＢＩＯＳモジュール等のブートモジュールの制御下で）プロセッサ（複数の場合もある）１０２によってアクセス可能な「所定の」情報１０６を記憶する。所定の情報１０６は、電子装置がスリープ状態に入る前にメモリ１０４内に記憶される。メモリ１０４が揮発性メモリを備える実施態様では、メモリ１０４は、所定の情報１０６を後続の使用に利用可能なままにしておくことを可能にするように（記憶装置１１２が電源をオフにされても）電力を供給されたままであることに留意されたい。上記で更に論考したように、メモリ１０４は、所定の情報１０６に加えて、ドライバ、コンポーネント等に関する電子装置１００の現在の状態情報を更に記憶することができる。そのような現在の状態情報は、電子装置１００がスリープ状態から次にレジュームするときに電子装置１００の状態を回復するのに用いられる。
【００１６】
電子装置がスリープ状態からより高い電力状態に遷移する手順中、プロセッサ（複数の場合もある）１０２はメモリ１０４から所定の情報１０６を検索することができ（１０８）、この所定の情報を用いてロック解除情報を取り出すことができ（１１０）、このロック解除情報が記憶装置１１２に提供される。記憶装置１１２内のロック解除モジュール１１４は、ロック解除情報１１０を用いて記憶装置１１２をロック解除する。記憶装置１１２のそのようなロック解除は、記憶装置１１２をロック解除する認証情報を求めてユーザにプロンプトすることなく達成される。
【００１７】
所定の情報１０６及びロック解除情報１１０を用いることによって、スリープ状態からのレジューム中の記憶装置１１２のロック解除は、認証情報の入力を求めてプロンプトする必要なく達成することができる。このようにして、スリープ状態からのレジューム時に記憶装置１１２の自動ロック解除が可能である。
【００１８】
いくつかの例では、所定の情報１０６は、システム管理モード（ＳＭＭ）に割り当てられたメモリ１０４の一部分に記憶することができる。電子装置１００はＳＭＭに入り、エラー管理、電力管理タスク、セキュリティタスク等の或る特定のタイプのタスクを実行することができる。ＳＭＭに割り当てられたメモリ１０４の一部分はＳＭＭメモリと呼ばれる。ＳＭＭは電子装置１００のオペレーティングシステムの実行が一時停止される動作モードである。
【００１９】
他の実施態様では、所定の情報１０６はメモリ１０４の別の部分に記憶することができる。
【００２０】
実施態様において、所定の情報１０６とロック解除情報１１０とは異なることができる。いくつかの実施態様では、所定の情報１０６はシード鍵（秘密又は共有秘密とも呼ばれる）及び乱数（又はカウンタ値）を含む。シード鍵及び乱数（又はカウンタ値）を用いて暗号化鍵を生成する。この暗号化鍵は、記憶装置１１２に提供されるロック解除情報１１０の一部である。ロック解除モジュール１１４は暗号化鍵に基づいて記憶装置１１２をロック解除する認証情報を生成する。例えば、ロック解除モジュール１１４は、暗号化鍵を用いて、記憶装置１１２内に記憶された認証情報の暗号化されたバージョンを解読することができる。そして、解読された認証情報は記憶装置１１２をロック解除するのに使用可能となる。
【００２１】
代替的な実施態様では、所定の情報１０６は乱数を含むことができる。そのような実施態様では、ロック解除情報１１０も乱数を含む。このため、そのような実施態様では、電子装置１００をスリープ状態からより高い電力状態に遷移させる手順中、メモリ１０４から乱数が検索され、プロセッサ（複数の場合もある）１０２は検索された乱数を含むロック解除情報１１０を記憶装置１１２に送信する。記憶装置１１２内のロック解除モジュール１１４は、この乱数に基づいて記憶装置１１２をロック解除する認証情報を生成する。例えば、ロック解除モジュール１１４は乱数を用いて認証情報の暗号化されたバージョンを解読することができる。
【００２２】
他の実施態様では、メモリ１０４内に記憶された他の形態の所定の情報１０６を用いることができる。セキュリティを強化するために、所定の情報１０６は、記憶装置１１２をロック解除するのに用いられる認証情報と異なる。所定の情報１０６を記憶する（ＳＭＭメモリ等の）メモリ１０４の部分は、マルウェア等の認可されていないエンティティによってアクセスされる可能性がある。所定の情報１０６が認証情報を含む場合、メモリ１０４内の認証情報の認可されていないアクセスが達成される可能性がある。
【００２３】
いくつかの実施態様によって提供される保護を更に強化するために、ブートモジュールがより低い電力状態からレジュームするときに記憶装置をロック解除すると、新たな所定の情報１０６（例えば新たなシード鍵又はカウンタ値若しくは乱数）を生成し、記憶装置と交換することができる。記憶装置はこの新たな所定の情報１０６を後に用いて、記憶装置へのアクセスを許可する（記憶装置上のデータを暗号化する暗号化鍵のアクセスを許可する等）認証情報を生成することができる。このようにして、認可されていないエンティティがメモリ１０４内に記憶されている所定の情報１０６を観察することができる場合であっても、所定の情報１０６の変化する特性によって、認可されていないエンティティが後に電子装置への物理的なアクセスを得たときに以前に取得した所定の情報が使用可能である機会を低減することができる。
【００２４】
様々な代替的な実施態様が上記で論考されてきたが、異なる所定の情報１０６及びロック解除情報１１０を用いる更なる代替的な実施態様も検討されることに留意されたい。
【００２５】
図２は、いくつかの実施態様による、電子装置１００のレジュームプロセスの流れ図である。プロセスは、例えばブートモジュールの制御下等で図１のプロセッサ（複数の場合もある）１０２によって実行することができる。プロセスは、電子装置１００をより低い電力状態（例えばスリープ状態）からより高い電力状態に遷移させる手順を実行する（２０２）。ここで、電子装置１００の記憶装置１１２への電力はより低い電力状態において無効にされている。
【００２６】
プロセスは、電子装置１００をより低い電力状態からより高い電力状態に遷移させる手順の一部として、記憶装置のロック解除を可能にするロック解除情報（図１の１１０）を記憶装置１１２に更に提供する（２０４）。ここで、提供されるロック解除情報は、電子装置１００をより低い電力状態に入れる前にメモリ１０４内に記憶されている所定の情報（図１の１０６）に基づく。
【００２７】
図３は、いくつかの実施態様による電子装置１００のスリーププロセスの流れ図である。プロセスは、例えばブートモジュールの制御下等で図１のプロセッサ（複数の場合もある）１０２によって実行することができる。プロセスは、電子装置のメモリ１０４内に所定の情報１０６（図１）を記憶する（３０２）。
【００２８】
プロセスは、メモリ内に所定の情報１０６を記憶した後、電子装置をより高い電力状態からより低い電力状態（例えばスリープ状態）に遷移させる（３０４）。ここで、電子装置がより低い電力状態にあるとき、記憶装置１１２から電源が切られている。記憶された所定の情報１０６は、電子装置がより低い電力状態からより高い電力状態に次に遷移するときに記憶装置１１２をロック解除するのに使用可能である。
【００２９】
図４は、代替的な実施態様によるプロセスの流れ図である。コールドブート手順中、ブートモジュール４００は、記憶装置１１２をロック解除する認証情報を入力するようにユーザにプロンプトする（４０２）。ユーザは電子装置に位置することができるか（この場合、プロンプトは電子装置の表示装置に提示することができる）又は代替的にユーザは遠隔装置に位置することができる（この場合、プロンプトはネットワークを介して遠隔装置に通信される）。「コールドブート」は、図１のメモリ１０４を含む構成要素への電源が切られている低電力状態又はオフ状態から電子装置１００を起動することを指すことができる。低電力状態及びオフ状態の例は、それぞれＡＣＰＩ  Ｓ４状態及びＡＣＰＩ  Ｓ５状態を含む。他の例では、他の低電力状態及びオフ状態を用いることができる。
【００３０】
プロンプトに応答して、ユーザは認証情報（「Ｐ」として参照される）を入力し、これはブートモジュール４００によって受信される（４０４）。代替的に、４０２におけるプロンプトの提供は、ブートモジュール４００ではなく電子装置１００内の別のモジュールによって実行することができる。そのような他のモジュールは、記憶装置１１２をロック解除するパスワードを取得する役割を果たすフルボリューム暗号化モジュールとすることができる。フルボリューム暗号化モジュールによって認証情報が取得される実施態様では、フルボリューム暗号化モジュールはこの認証情報を、ウィンドウズ管理インタフェース（ＷＭＩ）若しくは割り込みインタフェース（例えばＩＮＴ  １５ｈ又はＩＮＴ  １ａ）又は任意の他のタイプのインタフェース等のいくつかの異なるタイプのインタフェースのうちの１つを用いてブートモジュール４００に通信することができる。
【００３１】
図４による実施態様では、ブートモジュール４００は乱数Ｃをカウンタとして生成し（４０６）、ブートモジュール４００と記憶装置１１２との間の共有秘密Ｋを更に生成する。いくつかの例では、共有秘密Ｋは、認証情報ＰとのカウンタＣの排他的ＯＲ（ＸＯＲ）である値のセキュアハッシュアルゴリズム−１（ＳＨＡ−１）ハッシュとすることができる。ＳＨＡ−１は暗号ハッシュ関数である。いくつかの例では、ＨＯＴＰ技法が用いられ、ＨＯＴＰはＨＭＡＣ−ＳＨＡ−１に基づくワンタイムパスワードであり、ＨＭＡＣはハッシュに基づくメッセージ認証コードを表す。ＨＯＴＰ技法に関する情報は、２００５年１２月付けの「HOTP: An HMAC-Based One-Time Password Algorithm」と題するリクエストフォーコメント（ＲＦＣ）４２２６に見ることができる。他の例では、秘密Ｋ及び乱数Ｃを計算する他の技法を用いることができる。
【００３２】
ＨＯＴＰ技法によれば、Ｋは共有秘密と呼ばれ、Ｃはカウンタと呼ばれる。カウンタＣは乱数に初期化することができる。共有秘密Ｋはランダムに生成することができる。上記で示したように、いくつかの例では、Ｋは以下の式に従って計算される。
Ｋ＝ＳＨＡ−１（Ｐ  ＸＯＲ  Ｃ）
演算Ｐ  ＸＯＲ  ＣはＰ及びＣの排他的ＯＲを表す。暗号ハッシュ関数（ＳＨＡ−１）はＰ  ＸＯＲ  Ｃに基づくハッシュ値（Ｋ）を生成する。他の例では、Ｋを作成する他の関数を用いることができる。
【００３３】
次に、ブートモジュール４００は共有秘密Ｋ及びカウンタＣをＳＭＭメモリ（又は何らかの他のメモリ部分）に保存する（４０８）。図１との関連で、Ｋ値及びＣ値はメモリ１０４内に記憶される所定の情報１０６の一部である。
【００３４】
次に、ブートモジュール４００は、記憶装置１１２にクリアコマンドを発行し（４１０）、記憶装置１１２に、記憶装置１１２のロック解除に関する一切の以前の情報をクリアさせる。次に、ブートモジュール４００は、値Ｐ、Ｋ及びＣを記憶装置１１２に送信する（４１２）。ブートモジュール４００は、認証情報Ｐを記憶装置１１２に送信した後、認証情報Ｐをメモリ１０４から削除する。
【００３５】
受信した認証情報Ｐは、記憶装置１１２によって記憶装置１１２をロック解除するのに用いられる（４１４）。記憶装置１１２はまた、ブートモジュール４００から受信したＫ値及びＣ値に基づいて以下のように暗号化鍵Ｋ’を計算する（４１６）。
Ｋ’＝ＨＯＴＰ（Ｋ，Ｃ）
【００３６】
上記の演算ＨＯＴＰ（Ｋ，Ｃ）は以下のように定義することができる。
ＨＯＴＰ（Ｋ，Ｃ）＝Ｔｒｕｎｃａｔｅ（ＨＭＡＣ−ＳＨＡ−１（Ｋ，Ｃ））
【００３７】
Ｔｒｕｎｃａｔｅ（）演算は、ＳＨＡ−１の結果得られる１６０ビット値からいくつかの所定の数のバイト（例えば４バイト）を選択する。いくつかの例では、上記でＨＭＡＣ−ＳＨＡ−１（Ｋ，Ｃ）によって表されるＨＭＡＣ（Ｋ，Ｃ）演算は以下のように定義される。
Ｈ（・）は暗号ハッシュ関数であり、
‖は連結を表し、
ｏｐａｄは外側パディング（０ｘ５ｃ５ｃ５ｃ．．．５ｃ５ｃ、１ブロック長の１６進定数）であり
ｉｐａｄは内側パディング（０ｘ３６３６３６．．．３６３６、１ブロック長の１６進定数）である。
このとき、ＨＭＡＣ（Ｋ，Ｃ）は以下のように数学的に定義される。
【数１】
0005837208.tif 000002
【００３８】
例示的なＨＯＴＰ（）の定義が上記で提供されたが、他の例ではＫ及びＣに基づいて暗号化鍵Ｋ’を生成する異なる関数を用いることができる。
【００３９】
次に、暗号化鍵Ｋ’は、記憶装置１１２によって認証情報Ｐを暗号化して、以下の暗号化された認証情報Ｐ’を生成するのに用いられる（４１８）。
Ｐ’＝Ｅｎｃｒｙｐｔ（Ｐ  ｗｉｔｈ  Ｋ’）
【００４０】
次に、暗号化された認証情報Ｐ’及びカウンタＣは記憶装置１１２に保存される（４２０）。認証情報の平文（暗号化されていない）バージョンＰが記憶装置１１２によって削除されることに留意されたい。
【００４１】
次に、ブートモジュール４００は記憶装置１１２にロックコマンドを送信することができる（４２２）。このロックコマンドは、次のブートサイクル後（電子装置１００が再びブート環境にあるとき）まで、暗号化された認証情報Ｐ’の更なる変更が行われないことを示すものである。ロックコマンドは、効果的には、ブート環境外でのＰ’の変更を防ぐ（悪意のあるエンティティがＰ’を変更して記憶装置１１２へのアクセスを得るのを防ぐ）、タイトワンスコマンドである。認証情報Ｐを暗号化することによって、記憶装置１１２を物理攻撃しても、（認証情報Ｐの平文バージョンではなく）暗号化された認証情報Ｐ’しか得られないようにすることができる。
【００４２】
また、Ｋ及びＣのみがメモリ１０４に記憶されるので、メモリフリーズ攻撃を用いること等によるメモリ１０４のいかなる認可されていないアクセスでも、Ｋ情報及びＣ情報しか得られず、これらは認可されていないエンティティが認証情報Ｐを取り出すのに用いることができない。メモリフリーズ攻撃は、メモリ１０４の温度がフリーズ温度まで下がり、それによってメモリ１０４から電源が切られるときのデータ損失プロセスが低速化する攻撃を指す。これは、認可されていないユーザがメモリ１０４を電子装置から取り外し（これにより電源が失われる）、その後メモリ１０４を別のシステムに再接続し、このシステムにおいて電源をメモリ１０４に再び与えて、メモリ１０４に以前に記憶された情報を検索しようと試みることを許してしまう。また、メモリ１０４のＫ値及びＣ値はシステムコールドブート時に失われ、これによってリプレイ攻撃に対し保護する。
【００４３】
図４に更に示されているように、次に電子装置１００はスリープ状態に遷移される（４２４）。
【００４４】
スリープ状態からのレジューム時（４２５）に、ブートモジュール４００は始動され、電子装置１００をスリープ状態からより高い電力状態に遷移させる手順を実行する。この遷移手順中、ブートモジュール４００はメモリ１０４からＫ値及びＣ値を検索し、例えば記憶装置１１２での４１６におけるＫ’の計算と同様に、例えばＫ’＝ＨＯＴＰ（Ｋ，Ｃ）を用いて暗号化鍵Ｋ’を計算する（４２６）。
【００４５】
それに加えて、いくつかの例では、ブートモジュール４００はＫ値及びＣ値を以下のように、すなわち、カウンタＣをインクリメントし、Ｋ＝Ｋ’をセットして、更新する（４２８）。更新されたＫ値及びＣ値は、次のスリープ状態レジュームサイクルにおいて（電子装置１００が次にスリープ状態に遷移し、そしてその後スリープ状態からレジュームした後に）用いられることになる。他の例では、Ｋ値及びＣ値の更新は行われない。異なるレジュームサイクルにおいて異なるＫ値及びＣ値が用いられるようにＫ値及びＣ値を更新することによって、強化された保護が提供される。
【００４６】
ブートモジュール４００は、暗号化鍵Ｋ’を記憶デバイス１１２に送信する（４３０）。図１との関連で、４３０において送信される暗号化鍵Ｋ’はロック解除情報１１０の一部である。
【００４７】
記憶装置１１２は、暗号化鍵Ｋ’を用いて、記憶装置１１２に記憶されている暗号化された認証情報Ｐ’を解読し（４３２）、解読された認証情報Ｐを以下のように生成する。
Ｐ＝Ｄｅｃｒｙｐｔ（Ｐ’  ｗｉｔｈ  Ｋ’）
【００４８】
次に、記憶装置１１２は解読された認証情報Ｐを用いて記憶装置１１２をロック解除する（４３４）。
【００４９】
それに加えて、いくつかの例では、記憶装置１１２はＫ値及びＣ値も更新し（４３６）、ブートモジュール４００によって実行されるＫ及びＣの更新（４２８）と同期する。更新（４３６）は以下のように、すなわち、カウンタＣをインクリメントし、Ｋ＝Ｋ’をセットして行われる。他の例では、Ｋ及びＣの更新は行われない。
【００５０】
Ｋ及びＣが更新されている例では、次に、記憶装置１１２はＨＯＴＰ（Ｋ，Ｃ）を計算してＫ’を得て、Ｋ’を用いて認証情報Ｐを再暗号化してＰ’を生成する。次に、記憶装置１１２は、暗号化された認証情報Ｐ’をカウンタＣとともに保存する（４３８）。
【００５１】
図５は、更なる代替的な実施態様によるプロセスの流れ図である。コールドブート手順中、ブートモジュール４００は記憶装置１１２をロック解除する認証情報を入力するようにユーザにプロンプトする（５０２）。プロンプトに応じて、ユーザは認証情報（「Ｐ」と呼ばれる）を入力し、これがブートモジュール４００によって受信される（５０４）。代替的に、５０２におけるプロンプトの提供は、上記で論考したようにフルボリューム暗号化モジュールによって行うことができる。フルボリューム暗号化モジュールはインタフェースを通じてユーザが入力した認証情報をブートモジュール４００に通信することができる。
【００５２】
次に、ブートモジュール（４００）は、擬似乱数発生器を用いる等によって乱数Ｒを生成する（５０６）。ブートモジュール４００は乱数Ｒをメモリ１０４（図１）に保存する（５０８）。図１との関連で、乱数Ｒはメモリ１０４内に記憶された所定の情報１０６の一部である。
【００５３】
ブートモジュール４００は（図４の４１０において送信されるクリアコマンドと同様に）クリアコマンドを記憶装置１１２に送信する（５０９）。ブートモジュール４００は、ユーザが入力した認証情報Ｐ及び乱数Ｒも記憶装置１１２に送信する（５１０）。ブートモジュール４００は、認証情報Ｐを記憶装置１１２に送信した後、メモリ１０４から認証情報Ｐを削除する。
【００５４】
受信した認証情報Ｐは、記憶装置１１２によって当該記憶装置１１２をロック解除するのに用いられる（５１２）。次に、記憶装置１１２は乱数Ｒを用いて認証情報Ｐを暗号化して（５１４）、以下の認証情報Ｐ’を生成する。
Ｐ’＝Ｅｎｃｒｙｐｔ（Ｐ  ｗｉｔｈ  Ｒ）
【００５５】
暗号化された認証情報Ｐ’は記憶装置１１２に保存される（５１６）。記憶装置１１２が乱数Ｒを削除することに留意されたい。次に、ブートモジュール４００は（図４の４２２において送信されるロックコマンドと同様に）ロックコマンドを記憶装置１１２に送信する（５１８）。図５に更に示すように、次に電子装置１００はスリープ状態に遷移される（５２０）。
【００５６】
スリープ状態からのレジューム（５２１）の一部として、ブートモジュール４００が始動され、電子装置１００をスリープ状態からより高い電力状態に遷移させる手順を実行する。この遷移手順中、ブートモジュール４００は新たな乱数Ｒ２を生成する（５２２）。ブートモジュール４００は、メモリ１０４に以前に記憶された乱数Ｒも取り出す（５２４）。乱数Ｒ及びＲ２はブートモジュール４００から記憶装置１１２に送信される（５２６）。図１との関連で、５２６における乱数Ｒはロック解除情報１１０の一部である。
【００５７】
新たな乱数Ｒ２は、次のスリープ状態レジュームサイクルにおいて用いられることになる。異なるスリープ状態レジュームサイクルにおいて異なる乱数を用いることによって、強化された保護が与えられる。他の例では、複数のスリープ状態レジュームサイクルにおいて同じ乱数を用いることができる。
【００５８】
記憶装置１１２は、受信した乱数Ｒを用いて、記憶装置１１２に記憶されている暗号化された認証情報Ｐ’を解読し（５２８）、以下のように解読された認証情報Ｐを生成する。
Ｐ＝Ｄｅｃｒｙｐｔ（Ｐ’  ｗｉｔｈ  Ｒ）
【００５９】
次に、記憶装置１１２は、解読された認証情報Ｐを用いて記憶装置１１２をロック解除する（５３０）。
【００６０】
それに加えて、いくつかの例では、次に記憶装置１１２は、同様にブートモジュール４００から受信された新たな乱数Ｒ２を用いて以下のように認証情報Ｐを再暗号化する。
Ｐ’＝Ｅｎｃｒｙｐｔ（Ｐ  ｗｉｔｈ  Ｒ２）
【００６１】
新たな乱数Ｒ２を用いて、次のスリープ状態レジュームサイクルにおいて解読を行う（これは、異なるスリープ状態レジュームサイクルにおいて異なる乱数を用いることができる例の一部である）。次に、再暗号化された認証情報Ｐ’（Ｒ２を用いて暗号化される）は、記憶装置１１２に保存される（５３２）。
【００６２】
いくつかの実施態様による技法又はメカニズムを用いて、オートロック機能を有する記憶装置の認可されていないアクセスを求める場合がある様々な形態の攻撃に対し、強化された保護が提供される。
【００６３】
図６は、様々な構成要素を備える別の例示的な電子装置６００を示している。電子装置６００における電子装置１００と同じ構成要素は同じ参照符号を用いて参照される。図１に関連して既に論考された構成要素に加えて、電子装置６００はＢＩＯＳモジュール６０２を更に備え、このＢＩＯＳモジュール６０２は図２〜図５に関連して上記で論考したようなタスクを実行することができる。また、電子装置６００はオペレーティングシステム６０４を備える。いくつかの例では、電子装置６００は、図４又は図５に関連して上記で論考したフルボリューム暗号化モジュール６０６も備える。
【００６４】
電子装置６００内のユーザインタフェースモジュール６０８は、表示装置６１０においてユーザインタフェース６１２を提示する。ユーザはユーザインタフェース６１２を通じて情報（認証情報Ｐ等）を入力することができる。代替的に、認証情報Ｐは遠隔装置のユーザによって提供することができ、この場合、認証情報Ｐはネットワークを介して電子装置６００に通信される。電子装置６００は、そのようなネットワークを介して通信するネットワークインタフェース６１４を備える。
【００６５】
上記で論考した様々なモジュール（モジュール６０２、６０４、６０８及び６０８を含む）を、１つ又は複数のプロセッサ（例えば図１又は図６の１０２）上で実行するようにロードされる機械可読命令として実施することができる。プロセッサは、マイクロプロセッサ、マイクロコントローラ、プロセッサモジュール又はサブシステム、プログラマブル集積回路、プログラマブルゲートアレイ、又は別の制御装置若しくは演算装置を含むことができる。
【００６６】
データ及び命令は、１つ又は複数のコンピュータ可読記憶媒体又は機械可読記憶媒体として実装されるそれぞれの記憶装置に記憶される。記憶媒体は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）若しくはスタティックランダムアクセスメモリ（ＳＲＡＭ）、消去可能でプログラム可能な読取り専用メモリ（ＥＰＲＯＭ）、電気的に消去可能でプログラム可能な読取り専用メモリ（ＥＥＰＲＯＭ）及びフラッシュメモリ等の半導体メモリ装置；固定ディスク、フロッピーディスク及び取外し可能ディスク等の磁気ディスク；テープを含む他の磁気媒体；コンパクトディスク（ＣＤ）又はデジタルビデオディスク（ＤＶＤ）等の光学媒体；又は他のタイプの記憶装置を含む様々な形態のメモリを含む。上記で論考した命令は、１つのコンピュータ可読記憶媒体又は機械可読記憶媒体上で提供することもできるし、代替的に、場合によっては複数のノードを有する大規模システムに分散した複数のコンピュータ可読記憶媒体又は機械可読記憶媒体上で提供することもできることに留意されたい。そのようなコンピュータ可読記憶媒体又は機械可読記憶媒体は、製品（又は製造品）の一部とみなされる。製品又は製造品は、任意の製造された単一の構成要素又は複数の構成要素を指すことができる。１つ又は複数の記憶媒体は、機械可読命令を実行する機械内に位置するか、又は実行する機械可読命令をそこからネットワークを介してダウンロードすることができる遠隔サイトに位置することができる。
【００６７】
上記の説明において、本明細書で開示される主題の理解を与えるように多数の詳細が示されている。しかしながら、実施態様はこれらの詳細のうちのいくつか又は全てがなくても実施することができる。他の実施態様は、上記で論考した詳細からの変更形態及び変形形態を含むことができる。添付の特許請求の範囲は、そのような変更形態及び変形形態を包含することが意図される。
【図１】
0005837208.tif 000003
【図２】
0005837208.tif 000004
【図３】
0005837208.tif 000005
【図４】
0005837208.tif 000006
【図５】
0005837208.tif 000007
【図６】
0005837208.tif 000008