(57)【要約】【課題】待機電力を低下させつつ、安全にロック解除状態に復帰する記憶装置及びプログラムを提供する。【解決手段】本実施形態に係る記憶装置は、ホスト装置と通信可能あって、記憶装置を制御するコントローラと、記憶装置に対するデータの読み出し又は書き込みの許否状態を示すフラグ情報を含むセキュリティ情報と記憶装置が電源投入された累積時間値を示す時間情報とを含む記憶領域と、を備える。コントローラは、ホスト装置から第１のコマンドを受信した場合に、セキュリティ情報に時間情報を加えたデータを暗号化した暗号文データを生成し、暗号文データをホスト装置へ送信した後に記憶装置を低電力状態へ移行させる。【選択図】  図１
2020030527.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置と通信可能な記憶装置であって、
前記記憶装置を制御するコントローラと、
前記記憶装置に対するデータの読み出し又は書き込みの許否状態を示すフラグ情報を含むセキュリティ情報と、前記記憶装置が電源投入された累積時間値を示す時間情報とを含む記憶領域と、
を備え、
前記コントローラは、
前記ホスト装置から第１のコマンドを受信した場合に、前記セキュリティ情報に前記時間情報を加えたデータを暗号化した暗号文データを生成し、前記暗号文データを前記ホスト装置へ送信した後に前記記憶装置を低電力状態へ移行させる
記憶装置。
【請求項２】
前記コントローラは、前記ホスト装置から第２のコマンドを受信した場合に、前記ホスト装置から前記暗号文データを受信し、前記暗号文データに対して復号処理を実行し、前記復号処理により得られた前記セキュリティ情報及び前記時間情報を前記記憶領域に復元する
請求項１に記載の記憶装置。
【請求項３】
前記コントローラは、
前記暗号文データに対する改ざん防止処理を実行し、前記改ざん防止処理により生成された第１の認証コードを前記ホスト装置へ送信し、
前記第２のコマンドを受信した場合に、前記ホスト装置より受信した前記暗号文データに対して前記改ざん防止処理を実行することにより第２の認証コードを生成し、
前記ホスト装置より受信した前記第１の認証コードと前記第２の認証コードとが一致する場合に、前記復号処理を実行する
請求項２に記載の記憶装置。
【請求項４】
前記コントローラは、
前記第１のコマンドを受信した場合に、前記時間情報を前記記憶領域内に不揮発化し、
前記第２のコマンドを受信した場合に、前記不揮発化された前記時間情報と前記復号処理により得られた前記時間情報とを比較し、
当該比較結果が一致する場合に、前記復号処理により得られた前記セキュリティ情報及び前記時間情報を前記記憶領域に復元する
請求項２又は請求項３に記載の記憶装置。
【請求項５】
前記第１のコマンド及び前記第２のコマンドは、ＮＶＭｅ規格におけるＳｅｔ  Ｆｅａｔｕｒｅｓコマンドである
請求項２乃至請求項４のいずれか一項に記載の記憶装置。
【請求項６】
前記セキュリティ情報は、前記記憶装置に対するアクセスを許可するための認証鍵データと、前記記憶装置に格納されるデータを暗号化するための暗号化鍵データとを含む
請求項１乃至請求項５のいずれか一項に記載の記憶装置。
【請求項７】
ホスト装置と通信可能な記憶装置であって、
前記記憶装置を制御するコントローラと、
前記記憶装置に対するデータの読み出し又は書き込みの許否状態を示すフラグ情報を含むセキュリティ情報と、前記記憶装置が電源投入された累積時間値を示す時間情報とを含む記憶領域と、
を備え、
前記コントローラは、
前記ホスト装置から第１のコマンドを受信した場合に、前記セキュリティ情報に前記時間情報を加えたデータを暗号化した暗号文データを生成して前記記憶装置に格納し、
前記暗号文データに対する改ざん防止処理を実行し、前記改ざん防止処理により生成された第１の認証コードを前記ホスト装置へ送信した後に前記記憶装置を低電力状態へ移行させる
記憶装置。
【請求項８】
前記コントローラは、
前記ホスト装置から第２のコマンドを受信した場合に、前記ホスト装置より前記第１の認証コードを受信し、
前記記憶装置に格納された前記暗号文データに対して前記改ざん防止処理を実行することにより第２の認証コードを生成し、
前記第１の認証コードと前記第２の認証コードとが一致する場合に、前記暗号文データに対して復号処理を実行し、
前記復号処理により得られた前記セキュリティ情報及び前記時間情報を前記記憶領域に復元する
請求項７に記載の記憶装置。
【請求項９】
記憶装置に含まれるコンピュータを、
ホスト装置と通信可能にする通信手段と、
前記記憶装置に対するデータの読み出し又は書き込みの許否状態を示すフラグ情報を含むセキュリティ情報と、前記記憶装置が電源投入された累積時間値を示す時間情報とを記憶する記憶手段と、
前記記憶装置を制御するための制御手段と
して機能させるためのプログラムであって、
前記制御手段は、前記ホスト装置から所定のコマンドを受信した場合に、前記セキュリティ情報に前記時間情報を加えたデータを暗号化した暗号文データを生成し、前記暗号文データを前記ホスト装置へ送信した後に前記記憶装置を低電力状態へ移行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、記憶装置及びプログラムに関する。
【背景技術】
【０００２】
近年、データの暗号化機能を備えた記憶装置（ストレージ）である自己暗号ドライブ（Self Encrypting Drive：ＳＥＤ）が用いられている。自己暗号ドライブには秘密鍵が内蔵されており、外部からこの秘密鍵の読み出しを禁止することで、ドライブの安全性・秘匿性を確保している。
【０００３】
自己暗号ドライブは認証機能を備えており、例えばホスト装置を経由してパスワードが入力されることにより、自己暗号ドライブのロックが解除される。ロック解除後、自己暗号ドライブはホスト装置による読み書きを許可し、ドライブの電源がオフされることにより、再度ロック状態となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２０１７／０２７７９１６号明細書
【特許文献２】米国特許第９０８７２１０号明細書
【特許文献３】米国特許出願公開第２０１６／００７０４９３号明細書
【特許文献４】米国特許出願公開第２０１６／０２３１８０３号明細書
【非特許文献】
【０００５】
【非特許文献１】Trusted Computing Group、“TCG Storage Opal Integration Guidelines Version 1.00 Revision 1.00”、 [online], 2016年1月3日、インターネット（URL:http://trustedcomputinggroup/resources/tcg-storage-opal-integration-guidlines/）
【非特許文献２】NVM Express,Inc.、“NVM Express Revision 1.3a”[online], 2017年10月24日、インターネット（URL:http://nvmexpress.org/resources/ specifications/）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本実施形態は、待機電力を低下させつつ、安全にロック解除状態に復帰する記憶装置及びプログラムを提供する。
【課題を解決するための手段】
【０００７】
本実施形態に係る記憶装置は、ホスト装置と通信可能であって、前記記憶装置を制御するコントローラと、前記記憶装置に対するデータの読み出し又は書き込みの許否状態を示すフラグ情報を含むセキュリティ情報と前記記憶装置が電源投入された累積時間値を示す時間情報とを含む記憶領域と、を備える。前記コントローラは、前記ホスト装置から第１のコマンドを受信した場合に、前記セキュリティ情報に前記時間情報を加えたデータを暗号化した暗号文データを生成し、前記暗号文データを前記ホスト装置へ送信した後に前記記憶装置を低電力状態へ移行させる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係る記憶装置及び当該記憶装置を備えるコンピュータシステムの構成の一例を示すブロック図。
【図２】第１の実施形態に係る記憶装置のコントローラの構成の一例を示すブロック図。
【図３】第１の実施形態に係るコンピュータシステムにおける各データの格納状態の一例を示す図。
【図４】第１の実施形態に係るコンピュータシステムの低電力状態への移行動作及び低電力状態からの復帰動作の一例を示す図。
【図５】第１の実施形態に係るコンピュータシステムにおける低電力状態への移行処理及び低電力状態からの復帰処理の一例を示すフローチャート。
【図６】第１の実施形態に係るセキュリティ情報の暗号化処理及び改ざん防止処理の一例を示すフローチャート。
【図７】第１の実施形態に係るセキュリティ情報の暗号化処理及び改ざん防止処理の概念図。
【図８】第１の実施形態に係るセキュリティ情報の検証処理及び復号処理の一例を示すフローチャート。
【図９】第１の実施形態に係るセキュリティ情報の検証処理及び復号処理の概念図。
【図１０】第２の実施形態に係るコンピュータシステムにおける低電力状態への移行処理及び低電力状態からの復帰処理の一例を示すフローチャート。
【発明を実施するための形態】
【０００９】
一般に記憶装置は、例えばアクセス頻度が低下した場合には、消費電力の節約のために通常状態から低電力状態に移行するよう制御される。自己暗号ドライブにおいては、この低電力状態から、パスワードの再入力なく通常状態へ復帰する（すなわち、低電力状態が解除される）ことが好ましい。さらに、例えばバッテリー切れ、盗難などにより自己暗号ドライブが電源オフの状態となった場合には、再度ロック状態となることで、ドライブに格納されているデータの漏洩を防止することができる。
【００１０】
低電力状態を実現する方法として、例えば、自己暗号ドライブの内部状態のうち一部の状態を、例えばリテンションＳＲＡＭ（Static Random Access Memory）、リテンションＦＦ（Flip Flop）など、待機電力の極めて小さい記憶回路に保持する方法が考えられる。そして、低電力状態からの復帰の際には、記憶回路に保持された内容が通常の記憶領域に書き戻される。ここで、意図しない電源断が発生すると、リテンションＳＲＡＭ、リテンションＦＦの内容が消えることで再ロックされることにより、安全性が担保される。しかしながら、この方法を用いた場合、記憶回路には通電が必要であるため、僅かながら待機電力が必要となる。
【００１１】
低電力状態を実現する別の方法として、例えば上記の一部の状態をＮＡＮＤフラッシュメモリなどの不揮発性メモリに記憶しておき、完全にドライブの電源をオフする方法が考えられる。この方法では、ドライブの待機電力はゼロとなる。しかしながら、電源をオンする際に、低電力状態からの復帰であるか、コールドブートであるかの区別を例えば外部入力信号により区別すると、ドライブに格納されているデータが盗まれる可能性がある。具体的には、あるシステムから低電力状態となっているドライブを取り外して別のシステムに接続し、低電力状態からの復帰に見せかけてドライブの電源をオンすることで、ドライブをロック解除状態で起動するような攻撃が可能となってしまう。また、不揮発性メモリに頻繁に書き込みを行うことで、不揮発性メモリの疲弊が進んでしまう。
【００１２】
また、低電力状態を実現する他の方法として、ホスト装置の安全な領域に暗号化されていない（すなわち、平文の）パスワードを格納した状態で自己暗号ドライブの電源をオフする方法が考えられる。その後、ドライブは電源オンとなって低電力状態から復帰するとともに、ホスト装置からパスワードを読み出す。この方法では、ドライブの待機電力はゼロとなる。しかしながら、ホスト装置がドライブとともに盗難された際に、例えばバスインタフェース（例えばＳＡＴＡ（Serial ATA）、ＰＣＩ（Peripheral Component Interconnect）、ＤＩＭＭ（Dual Inline Memory Module）など）を流れるパスワードを測定器などにより読み取ることによって、当該パスワードが漏洩してしまう。なお、パスワードではなく、ドライブの内部状態をホスト装置に格納する場合も同様である。
【００１３】
以下に説明する各実施形態においては、自己暗号ドライブである記憶装置を低電力（又は電源オフ）状態に移行させる際に、例えば記憶装置に格納されるデータの暗号化に用いる秘密鍵又は記憶装置のロック状態などの機密情報を、ホスト装置の所定のバッファなど安全性が必ずしも担保されていない領域に安全に退避可能な記憶装置を提供する。
【００１４】
具体的には、記憶装置は、記憶装置に格納されている機密情報に暗号化処理及び改ざん防止処理を施し、処理後のデータをホスト装置に退避する。この際、電源投入時間を示す情報を、例えば記憶装置内の不揮発性メモリなどに退避しておく。記憶装置は、当該データを復元する際に、この電源投入時間を示す情報を用いて当該データの正当性を検証する。これにより、記憶装置の機密情報を安全にホスト装置に退避し復元できるとともに、再生攻撃（replay attack）を防ぐことができる。
【００１５】
以下、図面を参照しながら各実施形態について説明する。以下の説明において、略又は実質的に同一の機能及び構成要素については、同一符号を付し、必要に応じて説明を行う。
【００１６】
［第１の実施形態］
本実施形態に係るコンピュータシステムは、ホスト装置とＰＣＩｅ（ＰＣＩ Ｅｘｐｒｅｓｓ）規格のインタフェースにより接続され、ＮＶＭｅ規格のホストメモリバッファ（Host Memory Buffer）をサポートした記憶装置を含む。ホストメモリバッファをサポートするとは、ホスト装置のＤＲＡＭの一部を、当該記憶装置のバッファとして用いることを指す。また、当該記憶装置は、ＮＶＭｅ規格に定義された振る舞いの範囲内で低電力状態を実現する。
【００１７】
図１は、本実施形態に係る記憶装置及び当該記憶装置を備えるコンピュータシステム１の構成の一例を示すブロック図である。
【００１８】
コンピュータシステム１は、ホスト装置２と、記憶装置３とを含む。
【００１９】
ホスト装置２は、例えばＰＣ（Personal Computer）、スマートフォンなどの情報処理装置である。
【００２０】
ホスト装置２は、コネクタインタフェース（Ｉ／Ｆ）２１、ＣＰＵ（Central Processing Unit）２２、ＲＡＭ（Random Access Memory）２３、ＲＯＭ（Read Only Memory）２４などを含む。コネクタインタフェース２１、ＲＡＭ２３、ＲＯＭ２４は、それぞれＣＰＵ２２と電気的に接続される。
【００２１】
コネクタインタフェース２１は、ホスト装置２と記憶装置３との間のインタフェース処理を行う。より具体的には、コネクタインタフェース２１は、後述する記憶装置３のコネクタインタフェース３１を経由し、記憶装置３との間でコマンド、アドレス、データ、情報、指令、信号などを送受信する。コネクタインタフェース２１は、例えばＰＣＩｅ規格のインタフェースなどである。
【００２２】
ＣＰＵ２２は、ホスト装置２全体の動作を制御するプロセッサである。ＣＰＵ２２は、例えばＲＯＭ２４に格納される制御プログラムなどにより制御される。
【００２３】
ＣＰＵ２２は、記憶装置３を制御するためのコマンド等を、コネクタインタフェース２１を経由して記憶装置３に送信する。また、ＣＰＵ２２は、コネクタインタフェース２１を経由して記憶装置３より受信したデータなどを、ＲＡＭ２３又はＲＯＭ２４などに格納する。
【００２４】
ＲＡＭ２３は、ＣＰＵ２２の作業領域として使用され、制御プログラム及び制御プログラムの実行に必要な各種データを格納する。ＲＡＭ２３は、例えば、一時的にデータを格納するキャッシュメモリとして用いられてもよい。ＲＡＭ２３は、例えば、ＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性メモリである。
【００２５】
ＲＯＭ２４は、ＣＰＵ２２により使用される制御プログラムなどのソフトウェア又はファームウェアを格納する不揮発性メモリである。
【００２６】
なお、ＣＰＵ２２は、ＳｏＣ（System On Chip）として構成されてもよい。ＣＰＵ２２がＳｏＣである場合、ＲＡＭ２３及び／又はＲＯＭ２４は、ＣＰＵ２２に含まれていてもよい。
【００２７】
記憶装置３は、例えばＳＳＤ（Solid State Drive）などの記憶装置である。記憶装置３は、携帯可能なＨＤＤ（Hard Disk Drive）などでもよい。
【００２８】
記憶装置３は、コネクタインタフェース（Ｉ／Ｆ）３１、コントローラ３２、ＲＡＭ３３、フラッシュメモリ３４などを含む。コネクタインタフェース３１、ＲＡＭ３３、フラッシュメモリ３４は、それぞれコントローラ３２と電気的に接続される。
【００２９】
コネクタインタフェース３１は、コネクタインタフェース２１と同様に、記憶装置３とホスト装置２との間のインタフェース処理を行う。なお、コネクタインタフェース３１は、コントローラ３２に含まれていてもよい。
【００３０】
コントローラ３２は、記憶装置３全体の動作を制御するＳｏＣである。コントローラ３２は、記憶装置３が低電力状態へ移行する際に、記憶装置３に含まれる所定のデータ（後述するセキュリティ情報）に対して暗号化処理及び改ざん防止処理を施す。コントローラ３２は、これらの処理を施したセキュリティ情報をホスト装置２へ送信する。また、コントローラ３２は、記憶装置３が低電力状態から復帰する際に、ホスト装置２よりセキュリティ情報を読み出し、読み出したセキュリティ情報に対して検証処理、復号処理を施す。
【００３１】
コントローラ３２の構成の詳細については、図２を用いて後述する。また、コントローラ３２の実行する処理の詳細については、図３以降で後述する。
【００３２】
ＲＡＭ３３は、コントローラ３２の作業領域として使用される。ＲＡＭ３３は、例えば、一時的にデータを格納するキャッシュメモリとして用いられてもよい。ＲＡＭ３３は、ＲＡＭ２３と同様に、例えばＳＲＡＭ、ＤＲＡＭなどの揮発性メモリである。
【００３３】
フラッシュメモリ３４は、記憶装置３の記憶領域を構成する不揮発性メモリである。フラッシュメモリ３４は、例えばＮＡＮＤ型フラッシュメモリとするが、ＮＯＲ型フラッシュメモリ、ＭＲＡＭ（Magnetoresistive Random Access Memory：磁気抵抗メモリ）、ＰＲＡＭ（Phasechange Random Access Memory：相変化メモリ）、ＲｅＲＡＭ（Resistive Random Access Memory：抵抗変化型メモリ）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）など他の不揮発性の半導体メモリでもよい。例えば、フラッシュメモリ３４は、他の不揮発性のメモリ、磁気メモリなどでもよい。例えば、フラッシュメモリ３４は、３次元構造のメモリでもよい。なお、上述のＲＯＭ２４は、例えばフラッシュメモリ３４と同種のメモリである。
【００３４】
図２は、本実施形態に係る記憶装置のコントローラの構成の一例を示すブロック図である。
【００３５】
コントローラ３２は、インタフェース（Ｉ／Ｆ）３２１、ＣＰＵ３２２、ＲＡＭコントローラ３２３、フラッシュメモリコントローラ３２４、ＲＡＭ３２５、ＲＯＭ３２６などを含み、これらはシステムバスにより接続される。
【００３６】
インタフェース３２１は、コントローラ３２へのアクセスに対するインタフェース処理を行う。インタフェース３２１は、例えば、ＰＣＩｅ規格のインタフェースなどである。
【００３７】
ＣＰＵ３２２は、コントローラ３２の動作を制御するプロセッサである。ＣＰＵ３２２は、ホスト装置２のＣＰＵ２２と同様に、所定の制御プログラムなどにより制御される。
【００３８】
ＲＡＭコントローラ３２３は、上述のＲＡＭ３３を制御するためのコントローラである。また、フラッシュメモリコントローラ３２４は、上述のフラッシュメモリ３４を制御するためのコントローラである。
【００３９】
ＲＡＭ３２５は、コントローラ３２の内部の記憶領域を構成する揮発性メモリである。
ＲＡＭ３２５は、例えば、データ暗号化鍵ＤＫ、リードロックフラグＦ１、ライトロックフラグＦ２、パスワード認証鍵ＰＫ、電源投入時間情報ＰＩなどを格納する。
【００４０】
データ暗号化鍵ＤＫは、フラッシュメモリ３４に格納されたデータを暗号化するための鍵情報である。コントローラ３２は、フラッシュメモリ３４にデータを格納する際に、当該データをこのデータ暗号化鍵ＤＫを用いて暗号化する。データ暗号化鍵ＤＫには、例えばＸＴＳモードのＡＥＳ（Advanced Encryption Standard）などが用いられる。データ暗号化鍵のサイズは、例えば５１２ビットである。
【００４１】
リードロックフラグＦ１及びライトロックフラグＦ２は、記憶装置３に対するアクセスの許否状態を示すフラグ情報である。
【００４２】
リードロックフラグＦ１は、記憶装置３が読み出し不可状態であるか否かを管理するフラグである。記憶装置３が読み出し不可状態の場合、コントローラ３２は、記憶装置３のフラッシュメモリ３４に格納したデータの読み出しを拒否する。例えば、リードロックフラグＦ１がオンである場合には、記憶装置３は読み出し不可状態となり、リードロックフラグＦ１がオフである場合には、記憶装置３は読み出し許可状態となる。
【００４３】
ライトロックフラグＦ２は、記憶装置３が書き込み不可状態であるか否かを管理するフラグである。記憶装置３が書き込み不可状態の場合、コントローラ３２は、記憶装置３のフラッシュメモリ３４へのデータの書き込みを拒否する。例えば、ライトロックフラグＦ２がオンである場合には、記憶装置３は書き込み不可状態となり、ライトロックフラグＦ２がオフである場合には、記憶装置３は書き込み許可状態となる。
【００４４】
なお、リードロックフラグＦ１、ライトロックフラグＦ２のデータサイズは、それぞれ例えば１ビットである。
【００４５】
パスワード認証鍵ＰＫは、例えばユーザがホスト装置２を経由して記憶装置３に対するアクセスを許可するためのパスワードを示すデータである。ユーザは、記憶装置３にアクセスする際に、記憶装置３に対し、ホスト装置２を経由して所定のパスワードを入力する。ホスト装置２は、入力されたパスワードを記憶装置３へ送信する。コントローラ３２は、ホスト装置２より受信したパスワードと、パスワード認証鍵ＰＫとを比較し、両者が一致する場合には、ユーザの認証が成功したと判定して、当該ユーザの記憶装置３に対するアクセスを許可する。
【００４６】
なお、パスワード認証鍵ＰＫは、複数のユーザに対応する複数のパスワード情報を含むことが好ましい。パスワード認証鍵ＰＫのデータサイズは、例えば２５６ビットである。
【００４７】
上記説明したデータ暗号化鍵ＤＫ、リードロックフラグＦ１、ライトロックフラグＦ２、パスワード認証鍵ＰＫなどは、記憶装置３が低電力状態へ移行する際にホスト装置２へ退避される。以下では、ホスト装置２へ退避されるデータの総称を、セキュリティ情報ＳＩ１と呼ぶ。
【００４８】
なお、このセキュリティ情報ＳＩ１には、データ暗号化鍵ＤＫ、パスワード認証鍵ＰＫは含まれなくてもよい。すなわち、セキュリティ情報ＳＩ１は、少なくともリードロックフラグＦ１及びライトロックフラグＦ２を含む。コントローラ３２は、記憶装置３が低電力状態へ移行する際に、データ暗号化鍵ＤＫ及びパスワード認証鍵ＰＫを、例えばＲＯＭ３２６又はフラッシュメモリ３４に退避してもよい。
【００４９】
また、セキュリティ情報ＳＩ１には、例えばユーザからのパスワード入力による記憶装置３のロック解除を経て生成された様々な中間的なセキュリティ情報、又は、その他の情報などが含まれてもよい。
【００５０】
電源投入時間情報ＰＩは、記憶装置３が製品出荷から現在までに電源投入された累積時間値を表す情報である。電源投入時間情報ＰＩは、例えば単位時間の経過を表すカウンタの値であり、単位時間の経過ごとに値が加算される。単位時間は、例えば１ミリ秒程度又はそれ以下であることが好ましい。
【００５１】
電源投入時間情報ＰＩは、記憶装置３の電源がオフとなった後は値の加算が停止され、電源が再投入された後に再び値の加算が開始される。このため、電源投入時間情報ＰＩは、電源オフ時にはＲＯＭ３２６又はフラッシュメモリ３４などに不揮発化して格納される。なお、電源投入時間情報ＰＩは、ＲＡＭ３３に格納されてもよい。
【００５２】
一般に、ＳＳＤ（Solid State Drive）においては、この電源投入時間情報ＰＩは管理情報の一部の項目として当該ＳＳＤ内に格納される。例えば、ＮＶＭｅ規格においては、この管理情報は“Get Log Page”コマンドにより取得可能なＳＭＡＲＴ情報である。電源投入時間情報ＰＩは、このＳＭＡＲＴ情報のうち“Power On Hours”の項目で表される値である。
【００５３】
ＲＯＭ３２６は、コントローラ３２の内部の記憶領域を構成する不揮発性メモリである。ＲＯＭ３２６は、例えば、秘密鍵情報ＫＩを格納する。秘密鍵情報ＫＩには、例えば第１の秘密鍵ＳＫ１、第２の秘密鍵ＳＫ２などが含まれる。
【００５４】
第１の秘密鍵ＳＫ１は、セキュリティ情報ＳＩ１を暗号化するための固定秘密鍵である。より具体的には、第１の秘密鍵ＳＫ１は、セキュリティ情報ＳＩ１が、例えばＡＥＳにより暗号化及び復号が実行される際に用いられる鍵情報である。第１の秘密鍵ＳＫ１のデータサイズは、例えば２５６ビットである。
【００５５】
第２の秘密鍵ＳＫ２は、セキュリティ情報ＳＩ１に改ざん防止処理を施す際に用いられる鍵情報である。より具体的には、第２の秘密鍵ＳＫ２は、例えばＨＭＡＣ（Hash-based Message Authentication Code）方式により、セキュリティ情報ＳＩ１に対する固有の値（メッセージ認証コード）を算出するために用いられる鍵情報である。なお、ＨＭＡＣ方式の場合、メッセージ認証コードは、ＭＡＣ値である。また、第２の秘密鍵ＳＫ２のデータサイズは、例えば２５６ビットである。
【００５６】
なお、ＲＡＭ３３は、ＲＡＭ３２５に含まれていてもよい。また、ＲＡＭ３２５及び／又はＲＯＭ３２６は、コントローラ３２の外部に配置されてもよい。
【００５７】
図３は、本実施形態に係るコンピュータシステムにおける各データの格納状態の一例を示す図である。
【００５８】
まず、図３（ａ）は、記憶装置３が低電力状態へ移行する前の各データの格納状態を示す。記憶装置３には、上述のように、セキュリティ情報ＳＩ１、秘密鍵情報ＫＩ、電源投入時間情報ＰＩが含まれる。また、ホスト装置２のバッファ２５には、これらの情報は含まれない。なお、バッファ２５は、例えばＲＡＭ２３などにより構成される記憶領域である。より具体的には、バッファ２５は、上述したようにＮＶＭｅ規格のホストメモリバッファなどである。
【００５９】
次に、図３（ｂ）は、記憶装置３が低電力状態へ移行した後の各データの格納状態を示す。記憶装置３が低電力状態へ移行する際には、コントローラ３２はセキュリティ情報ＳＩ１に対して暗号化処理及び改ざん防止処理を施す。これにより、セキュリティ情報ＳＩ１は処理済セキュリティ情報ＳＩ２に変換される。さらに、コントローラ３２は、処理済セキュリティ情報をＲＡＭ３２５からホスト装置２へ送信する。ホスト装置２は、当該処理済セキュリティ情報ＳＩ２をバッファ２５へ格納する。
【００６０】
また、記憶装置３が低電力状態から復帰する際には、コントローラ３２はホスト装置２より処理済セキュリティ情報ＳＩ２を読み出し、読み出した処理済セキュリティ情報ＳＩ２に検証処理及び復号処理を施すことにより、ＲＡＭ３２５にセキュリティ情報ＳＩ１を復元する。
【００６１】
以下図４及び図５を用いて、記憶装置３の低電力状態への移行処理、及び、記憶装置３の低電力状態からの復帰処理の詳細について説明する。
【００６２】
図４は、本実施形態に係るコンピュータシステムの低電力状態への移行動作及び低電力状態からの復帰動作の一例を示す図である。
【００６３】
状態（１）は、ホスト装置２及び記憶装置３の初期状態を示す。ホスト装置２及び記憶装置３は、電源オフ状態であるとする。
【００６４】
状態（２）は、記憶装置３に対しパスワードが入力された状態を示す。状態（１）の後、ホスト装置２及び記憶装置３の電源が投入（オン）され、ホスト装置２及び記憶装置３は電源オン状態となる。ユーザは、ホスト装置２を経由して記憶装置３に対し、記憶装置３へアクセスするためのパスワードを入力する。
【００６５】
状態（３）は、記憶装置３のアクセスが許可された状態を示す。状態（２）の後、記憶装置３のコントローラ３２は、入力されたパスワードと、パスワード認証鍵ＰＫとを比較する。コントローラ３２は、両者が一致する場合に、ユーザの認証が成功したと判定し、当該ユーザの記憶装置３に対するアクセスを許可する。
【００６６】
なお、入力されたパスワードとパスワード認証鍵ＰＫそのものとの比較ではなく、例えば、ＨＭＡＣ方式によるチャレンジレスポンス認証などを用いることとして、ＭＡＣ値同士を比較してもよい。この場合であっても、メッセージ認証コード（ＭＡＣ値）の生成のためには、入力された平文パスワードの値が必要である。このため、パスワードを平文でホストに保存すると、上述のようにバスを流れるパスワードを測定器などにより解析することにより、パスワードが漏洩してしまう可能性が生じる。
【００６７】
状態（４）は、記憶装置３がホスト装置２より低電力状態への移行要求を受信した後の状態を示す。記憶装置３は、処理済セキュリティ情報ＳＩ２を生成し、ホスト装置２へ送信する。
【００６８】
状態（５）は、記憶装置３の低電力状態を示す。この低電力状態において、記憶装置３は、ホストからの復帰要求を受信して低電力状態から復帰するために必要な機能を除くすべての電源をオフする。
【００６９】
状態（６）は、記憶装置３がホスト装置２より低電力状態からの復帰要求を受信した後の状態を示す。記憶装置３は、ホスト装置２より処理済セキュリティ情報ＳＩ２を受信する。
【００７０】
状態（７）は、記憶装置３が低電力状態へ移行前の状態に復帰した状態を示す。コントローラ３２は、ホスト装置２より受信した処理済セキュリティ情報ＳＩ２に対し、検証処理及び復号処理を施すことにより、セキュリティ情報ＳＩ１を復元する。
【００７１】
図５は、本実施形態に係るコンピュータシステムにおける低電力状態への移行処理及び低電力状態からの復帰処理の一例を示すフローチャートである。
【００７２】
なお、ステップＳ１０１〜Ｓ１０４の処理は図４の状態（４）に対応し、ステップＳ１０５の処理は図４の状態（５）に対応し、ステップＳ１０６〜Ｓ１１２の処理は図４の状態（６）に対応する。
【００７３】
ステップＳ１０１において、ホスト装置２のＣＰＵ２２は、記憶装置３に対して、低電力状態への移行要求を送信する。より具体的には、ＣＰＵ２２は、例えばＮＶＭｅ規格の“Set Features”コマンドを発行する。当該コマンドは、記憶装置３において、ＮＶＭｅ規格に規定される“Power Management Feature”の“Power State”を電力の最も低い状態にするよう要求するコマンドである。この電力の最も低い状態とは、例えば、ＮＶＭｅ規格の“Non-Operational Power State”であり、Ｉ／Ｏコマンド（リードコマンド、ライトコマンドなど）を処理できない状態である。なお、本実施形態においては、ＰＣＩｅ規格の“Power State”は電源オフではない状態（例えばＤ０など）であるとする。
【００７４】
記憶装置３のコントローラ３２は、当該要求を受信する。コントローラ３２は、低電力状態に遷移するために、すでにホスト装置２から発行されたＩ／Ｏコマンドの完了を待機する。
【００７５】
ステップＳ１０２において、コントローラ３２は、電源投入時間情報ＰＩの更新を停止する。コントローラ３２は、低電力状態からの復帰後に電源投入時間情報ＰＩのカウンタ値が保持されるよう、電源投入時間情報ＰＩを不揮発性メモリ（ＲＯＭ３２６、フラッシュメモリ３４）、又は図示しないリテンションＳＲＡＭ、リテンションＦＦなどに退避する。
【００７６】
ステップＳ１０３において、コントローラ３２は、記憶装置３のセキュリティ情報に暗号化処理及び改ざん防止処理を施し、処理済セキュリティ情報ＳＩ２を生成する。コントローラ３２は、生成した処理済セキュリティ情報ＳＩ２をホスト装置２へ送信する。暗号化処理及び改ざん防止処理の詳細については、図６及び図７を用いて後述する。
【００７７】
なお、ステップＳ１０３において、処理済セキュリティ情報ＳＩ２以外にもホスト装置２へ退避が必要なデータがある場合には、当該データもホスト装置２へ送信される。
【００７８】
ステップＳ１０４において、ホスト装置２のＣＰＵ２２は、受信した処理済セキュリティ情報ＳＩ２をバッファ２５へ格納する。
【００７９】
ステップＳ１０５において、コントローラ３２は、記憶装置３内の回路の電源をオフする。より具体的には、コントローラ３２は、記憶装置３内の電源制御回路を経由して、例えばＮＶＭｅ規格で規定されている最低限の機能（コンフィグ空間又はAdmin Queueへのアクセスなどといった、Ｉ／Ｏコマンド以外の機能）の実行に必要な回路を除く電源をオフする。
【００８０】
その後、ステップＳ１０６において、ホスト装置２のＣＰＵ２２は、記憶装置３に対し、低電力状態からの復帰要求を送信する。より具体的には、ＣＰＵ２２は、ＮＶＭｅ規格の“Set Features”コマンドを発行する。当該コマンドは、ステップＳ１０３と同様のコマンドであるが、例えば異なる引数を持つ。当該コマンドは、記憶装置３において、ＶＮＭｅ規格に規定される“Power Management Feature”の“Power State”を電力の最も高い状態にするよう要求するコマンドである。この電力の最も高い状態とは、例えば、Ｉ／Ｏコマンドを処理できる状態である。
【００８１】
当該復帰要求が送信されるタイミングは、例えば、ＣＰＵ２２がユーザからの記憶装置３に対するアクセスを検知した場合などである。
【００８２】
ステップＳ１０７において、記憶装置３のコントローラ３２は、ホスト装置２より復帰要求を受信する。ここで、記憶装置３は、低電力状態からの復帰であることを認識可能であるため、記憶装置内の回路の電源を投入（オン）する。
【００８３】
ステップＳ１０８において、コントローラ３２は、ホスト装置２のバッファ２５から処理済セキュリティ情報ＳＩ２を読み出し、読み出した処理済セキュリティ情報ＳＩ２に対して検証処理及び復号処理を実行する。より具体的には、コントローラ３２は、検証に成功した場合に（すなわち、改ざんされていないと判定した場合に）、処理済セキュリティ情報ＳＩ２からセキュリティ情報ＳＩ１を復元し、ＲＡＭ３２５に格納する。検証処理及び復号処理の詳細については、図８及び図９を用いて後述する。
【００８４】
ステップＳ１０９において、コントローラ３２は、電源投入時間情報ＰＩの更新を再開する。これにより、記憶装置３は、低電力状態から復帰した状態となる。
【００８５】
以下、図６及び図７を用いて、セキュリティ情報ＳＩ１の暗号化処理及び改ざん防止処理の詳細について説明する。なお、図６及び図７に示す処理は、図５のステップＳ１０３に相当する。
【００８６】
図６は、本実施形態に係るセキュリティ情報の暗号化処理及び改ざん防止処理の一例を示すフローチャートである。
【００８７】
図７は、本実施形態に係るセキュリティ情報の暗号化処理及び改ざん防止処理の概念図である。
【００８８】
ステップＳ２０１において、記憶装置３のコントローラ３２は、ホスト装置２へ退避するセキュリティ情報ＳＩ１を特定し、取得する。
【００８９】
ステップＳ２０２において、コントローラ３２は、所定のアルゴリズムにより、疑似乱数を生成する。所定のアルゴリズムは、例えば、Ｈａｓｈ＿ＤＲＢＧ−ＳＨＡ２５６などである。また、疑似乱数のデータサイズは、例えば１２８ビットである。
【００９０】
ステップＳ２０３において、コントローラ３２は、セキュリティ情報ＳＩ１及び電源投入時間情報ＰＩを繋げたデータを平文データとする。そして、コントローラ３２は、ＲＯＭ３２６に格納された第１の秘密鍵ＳＫ１と、ステップＳ２０２において生成した疑似乱数を用いて、所定の暗号化アルゴリズムによりこの平文データを暗号化する。この暗号化処理により、暗号文データが生成される。なお、所定の暗号化アルゴリズムは、例えばＡＥＳ−ＣＢＣアルゴリズムなどである。
【００９１】
ステップＳ２０４において、コントローラ３２は、ステップＳ２０３において生成された暗号文データに対し、改ざん防止処理を施す。より具体的には、コントローラ３２は、ステップＳ２０３において生成した暗号文データと疑似乱数とを繋げたメッセージデータを生成する。そして、コントローラ３２は、ＲＯＭ３２６に格納された第２の秘密鍵ＳＫ２を用いて、所定のアルゴリズムにより、当該メッセージデータに対するメッセージ認証コード（ＭＡＣ値）を生成する。なお、所定のアルゴリズムは、例えばＨＭＡＣ−ＳＨＡ２５６などである。
【００９２】
ステップＳ２０５において、コントローラ３２は、メッセージデータ（暗号文データ及び疑似乱数を含む）にメッセージ認証コードを加えたデータを処理済セキュリティ情報ＳＩ２とし、ホスト装置２へ送信する。ホスト装置２は、受信した処理済セキュリティ情報ＳＩ２を、バッファ２５へ格納する。
【００９３】
なお、コントローラ３２は、記憶装置３が低電力状態から復帰する際にこのメッセージ認証コードを検証し、メッセージ認証コードが変化していた場合に、処理済セキュリティ情報ＳＩ２は改ざんされたと判定する。
【００９４】
以下、図８及び図９を用いて、処理済セキュリティ情報ＳＩ２の検証処理及び復号処理の詳細について説明する。なお、図８及び図９に示す処理は、図５のステップＳ１０８に相当する。
【００９５】
図８は、本実施形態に係るセキュリティ情報の検証処理及び復号処理の一例を示すフローチャートである。
【００９６】
図９は、本実施形態に係るセキュリティ情報の検証処理及び復号処理の概念図である。
【００９７】
ステップＳ３０１において、記憶装置３のコントローラ３２は、処理済セキュリティ情報ＳＩ２より、暗号文データ、疑似乱数、メッセージ認証コードを取得する。また、コントローラ３２は、暗号文データ及び疑似乱数を繋げたメッセージデータを生成する。
【００９８】
ステップＳ３０２において、コントローラ３２は、ＲＯＭ３２６に格納された第２の秘密鍵ＳＫ２を読み出す。そして、コントローラ３２は、この第２の秘密鍵ＳＫ２を用いて、ステップＳ２０４と同様の処理により、当該メッセージデータに対するメッセージ認証コード（ＭＡＣ値）を生成する。
【００９９】
ステップＳ３０３において、コントローラ３２は、ステップＳ３０２において生成されたメッセージ認証コードと、ステップＳ３０１で取得したメッセージ認証コードとを比較する。
【０１００】
両者の比較結果が一致しない場合、コントローラ３２は、処理済セキュリティ情報ＳＩ２は改ざんされたと判定し、処理はステップＳ３０７に進む。一方、当該比較結果が一致する場合、処理はステップＳ３０４へ進む。
【０１０１】
ステップＳ３０７において、コントローラ３２は、エラー処理を実行する。より具体的には、コントローラ３２は、記憶装置３を例えば“Persistent Internal Error”とする。当該エラー処理後は、記憶装置３は、例えばリセットされるまで復帰できない状態となる。
【０１０２】
ステップＳ３０４において、コントローラ３２は、ＲＯＭ３２６に格納された第１の秘密鍵ＳＫ１を読み出す。そして、コントローラ３２は、この第１の秘密鍵ＳＫ１と、ステップＳ３０１で取得した疑似乱数を用いて、ステップＳ２０４と同様のアルゴリズムにより暗号文データを復号する。この復号処理により、平文データが生成される。
【０１０３】
ステップＳ３０５において、コントローラ３２は、ステップＳ３０４で生成された平文データに含まれる電源投入時間情報と、記憶装置３に格納されている電源投入時間情報ＰＩとが一致するか否かを確認する。
【０１０４】
両者の比較結果が一致しない場合、ステップＳ３０７において、コントローラ３２は上述のエラー処理を実行する。一方、当該比較結果が一致する場合、処理はステップＳ３０６へ進む。
【０１０５】
ステップＳ３０６において、コントローラ３２は、ステップＳ３０４で生成された平文データよりセキュリティ情報ＳＩ１を取得し、ＲＡＭ３２５に格納（復元）する。
【０１０６】
以上説明した本実施形態においては、記憶装置３のコントローラ３２は、ホスト装置２より低電力状態への移行要求を受信した場合に、セキュリティ情報ＳＩ１に対して暗号化処理及び改ざん防止処理を施し、処理済セキュリティ情報ＳＩ２を生成する。コントローラ３２は、処理済セキュリティ情報ＳＩ２をホスト装置２のバッファ２５へ退避する。これにより、記憶装置３の低電力状態において、セキュリティ情報ＳＩ１の安全性を保つことができる。
【０１０７】
換言すれば、機密性の高いセキュリティ情報ＳＩ１には暗号化処理及び改ざん防止処理が施されることにより、当該データを安全性の低いホスト装置２のバッファ２５に退避することができる。
【０１０８】
記憶装置３が低電力状態から復帰する際には、処理済セキュリティ情報ＳＩ２の正当性が検証されることで、改ざんを検出することができる。また、この検証処理の際に、電源投入時間情報ＰＩのカウンタ値が正しいことを確認することにより、再生攻撃を防ぐことができる。
【０１０９】
また、セキュリティ情報ＳＩ１（処理済セキュリティ情報ＳＩ２）をホスト装置２のバッファ２５へ退避することにより、例えば記憶装置３内のリテンションＳＲＡＭ、リテンションＦＦなどへ当該セキュリティ情報ＳＩ１が保持される場合と比べて、記憶装置３の待機電力を削減できる。
【０１１０】
同様に、セキュリティ情報ＳＩ１は、ホスト装置２へ退避されることにより記憶装置３内の不揮発性メモリ（フラッシュメモリ３４、ＲＯＭ３２６など）へ保持される必要がないため、当該不揮発性メモリへのデータの書き込み回数を低減できる。すなわち、記憶装置３が低電力状態への移行する毎に、当該不揮発性メモリが疲弊することを防ぐことができる。
【０１１１】
本実施形態においては、セキュリティ情報ＳＩ１は暗号化されてホスト装置２へ退避されることにより、パスワード認証鍵ＰＫなどの漏洩を防ぐことができる。より具体的には、ホスト装置２が第三者に盗難され、当該第三者が例えばロジックアナライザなどによりホスト装置２及び記憶装置３のバスを流れるパスワードの解析を試みた場合でも、パスワードは暗号化されているため解析されない。
【０１１２】
また、セキュリティ情報ＳＩ１の暗号化処理の際に、電源投入時間情報ＰＩを用いる。これにより、例えば記憶装置３を盗難した第三者が一度ロック解除に成功したとしても、再度ロック解除するために必要な情報は異なる。すなわち、第三者が例えばホスト装置２及び記憶装置３のバスを流れるデータを解析するだけでは、ロック解除のための情報を得ることはできない。したがって、記憶装置３の機密性が高まるとともに、当該第三者による再生攻撃を防ぐことができる。
【０１１３】
本実施形態において、記憶装置３が低電力状態から復帰する際に再度ドライブのロック解除が不要となるため、利用者の利便性が向上する。
【０１１４】
本実施形態に係る記憶装置３は、特にＢＧＡ−ＳＳＤ、ＤＲＡＭレスＳＳＤのように、待機電力およびＤＲＡＭ等のメモリ量に対する制約条件が厳しい製品に適している。
【０１１５】
なお、セキュリティ情報ＳＩ１は、第１の秘密鍵ＳＫ１を用いて他の共通鍵暗号化方式により暗号化されてもよい。他の暗号化方式は、例えば、ＡＥＳ−ＣＴＲ（カウンタモード）、ＲＳＡ方式などである。
【０１１６】
また、セキュリティ情報ＳＩ１は、第２の秘密鍵ＳＫ２を用いて他の方式により改ざん防止処理が施されてもよい。他の改ざん防止処理としては、例えば、ハッシュ関数を変更したＨＭＡＣ方式を用いること、公開鍵暗号を使用して暗号文データに署名を付して当該署名を検証すること、などである。
【０１１７】
なお、本実施形態で用いた電源投入時間情報ＰＩに代えて、時間とともに変化する他の情報が用いられてもよい。例えば、時間とともに値が変化する乱数などが用いられてもよい。また、電源投入時間情報ＰＩに代えて、記憶装置３のシリアル番号、モデル番号などに基づく情報が用いられてもよい。
【０１１８】
また、記憶装置３のコントローラ３２は、ステップＳ１０３において、暗号化処理及び改ざん防止処理を施した処理済セキュリティ情報ＳＩ２の全てをホスト装置２に送信しなくてもよい。例えば、コントローラ３２は、メッセージ認証コード（ＭＡＣ値）のみをホスト装置２に送信し、メッセージ認証コード以外の処理済セキュリティ情報ＳＩ２を記憶装置３内の不揮発性メモリ（例えば、フラッシュメモリ３４、ＲＯＭ３２６など）に退避してもよい。その後コントローラ３２は、ステップＳ１０８において、低電力状態から復帰する際に、ホスト装置２より受信したメッセージ認証コードと、記憶装置３に格納された処理済セキュリティ情報ＳＩ２より生成されたメッセージ認証コードとを比較することにより、改ざん防止の検証を行う。この場合、記憶装置３からホスト装置２に送信されるデータ量が少なくなるため、平文データの漏洩を防止する効果がより一層高まる。
【０１１９】
［第２の実施形態］
第１の実施形態においては、記憶装置３が低電力状態へ移行する際、又は、記憶装置３が低電力状態から復帰する際に、ホスト装置２は記憶装置３に対してＮＶＭｅ規格の“Set Features”コマンドを発行する。当該コマンドにおいては、記憶装置３の電源が完全にオフ状態にはならない。
【０１２０】
一方、本実施形態においては、記憶装置３が低電力状態へ移行する際、ＮＶＭｅ規格に規定されない独自のコマンド（以下、ベンダ拡張コマンドと呼ぶ）を用いて、記憶装置３の電源を完全にオフ状態にする場合について述べる。ベンダ拡張コマンドは、例えば記憶装置３のメーカなどが定義するコマンドである。
【０１２１】
なお、ＮＶＭｅ規格上は、記憶装置３を電源オフにした場合、ホスト装置２のホストメモリバッファ（Host Memory Buffer）も解放される。すなわち、本実施形態では、ホストメモリバッファをサポートしない記憶装置３を対象とする。
【０１２２】
図１０は、本実施形態に係るコンピュータシステムにおける低電力状態への移行処理及び低電力状態からの復帰処理の一例を示すフローチャートである。
【０１２３】
本実施形態において、ホスト装置２のバッファ２５は、ＮＭＶｅ規格のホストメモリバッファでないとする。これ以外のコンピュータシステム１の構成は、第１の実施形態と同様である。
【０１２４】
なお、図１０の処理は、図５の処理に対応する。図１０に示す処理のうち、図５と同様の処理については、説明を省略する。
【０１２５】
ステップＳ４０１において、ホスト装置２のＣＰＵ２２は、記憶装置３の電源をオフするためのコマンド（ベンダ拡張コマンド）を発行する。なお、ホスト装置２は、当該コマンドを発行した後、例えばＮＶＭｅ規格に規定されたシャットダウンシーケンスに従い、記憶装置３に対するＩ／Ｏコマンドの完了を待ち、Ｉ／Ｏキューを削除する。
【０１２６】
ステップＳ４０２において、記憶装置３のコントローラ３２は、電源投入時間情報ＰＩの更新を停止する。停止した時点での電源投入時間情報ＰＩの値は、たとえばフラッシュメモリ３４に不揮発化して記録される。ステップＳ４０２の処理は、ステップＳ１０２の処理と同様であるため、説明を省略する。
【０１２７】
ステップＳ４０３において、コントローラ３２は、記憶装置３のセキュリティ情報に暗号化処理及び改ざん防止処理を施し、処理済セキュリティ情報ＳＩ２を生成する。また、コントローラ３２は、生成された処理済セキュリティ情報ＳＩ２を、ベンダ拡張コマンドへの応答としてホスト装置２へ送信する。暗号化処理及び改ざん防止処理の内容は、ステップＳ１０３と同様である。
【０１２８】
ステップＳ４０４において、ホスト装置２のＣＰＵ２２は、処理済セキュリティ情報ＳＩ２をバッファ２５へ格納する。
【０１２９】
ステップＳ４０５において、ＣＰＵ２２は、記憶装置３に対し、例えばＮＶＭｅ規格に規定されたシャットダウン通知を行う。なお、ＣＰＵ２２は、記憶装置３のシャットダウン処理が完了した後、例えばＰＣＩｅ規格の“Power State”を電源オフ状態（Ｄ３）に遷移させる。
【０１３０】
これにより、ステップＳ４０６において、記憶装置３の電源はオフ状態となり、すなわち待機電力がゼロの状態になる。
【０１３１】
ステップＳ４０７において、ホスト装置２のＣＰＵ２２は、記憶装置３に起動処理を実行させる。この起動処理は、例えばＰＣＩｅ規格及び／又はＮＶＭｅ規格に規定された処理である。
【０１３２】
ステップＳ４０８において、起動処理が完了すると、記憶装置３は電源オン状態となる。ここで、記憶装置３は、コールドブートと低電力状態からの復帰とを区別しない。
【０１３３】
また、記憶装置３の起動に伴って電源投入時間情報ＰＩのカウンタは再開する。このため、コントローラ３２は、電源再投入時点での電源投入時間情報ＰＩの再開前のカウンタ値を、再開したカウンタ値とは別に、例えばＲＡＭ３２５又はフラッシュメモリ３４などに保持しておく。
【０１３４】
ステップＳ４０９において、ホスト装置２のＣＰＵ２２は、記憶装置３のセキュリティ情報ＳＩ１の復元のためのコマンド（ベンダ拡張コマンド）を発行する。ＣＰＵ２２は、当該コマンドの発行とともに、バッファ２５に格納済の処理済セキュリティ情報ＳＩ２を記憶装置３へ送信する。
【０１３５】
ステップＳ４１０において、記憶装置３のコントローラ３２は、処理済セキュリティ情報ＳＩ２を受信することにより、低電力状態からの復帰であることを認識する。コントローラ３２は、処理済セキュリティ情報ＳＩ２に対して検証処理及び復号処理を実行する。検証処理及び復号処理の内容は、ステップＳ１０８と同様である。なお、検証処理に用いる電源投入時間情報ＰＩのカウンタ値は、ステップＳ４０８で保持した値を用いる。
【０１３６】
ステップＳ４１１において、コントローラ３２は、電源投入時間情報ＰＩのカウンタ値をステップＳ４０８で保持した値（すなわち、電源再投入時点の値）に戻す。これにより、記憶装置３は低電力状態から復帰した状態となる。
【０１３７】
以上説明した本実施形態によれば、ホスト装置２は、記憶装置３を低電力状態へ移行させる際に、ベンダ拡張コマンドを用いて、記憶装置３に対し記憶装置３の電源を完全にオフ状態にさせる。これにより、低電力状態において、本実施形態に係るコンピュータシステム１は、第１の実施形態に係るコンピュータシステム１よりも低電力化される。
【０１３８】
また、本実施形態においては、ＮＶＭｅ規格のホストメモリバッファをサポートしない記憶装置３においても、電源オフ時にセキュリティ情報ＳＩ１を安全にホスト装置２へ退避できるため、機密性を高めることができる。
【０１３９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１４０】
１…コンピュータシステム、２…ホスト装置、３…記憶装置、２１，３１…コネクタインタフェース、２２，３２２…ＣＰＵ、２３，３３，３２５…ＲＡＭ、２４，３２６…ＲＯＭ、３２…コントローラ、３３…ＲＡＭ、３４…フラッシュメモリ、３２１…インタフェース、３２３…ＲＡＭコントローラ、３２４…フラッシュメモリコントローラ、ＤＫ…データ暗号化鍵、Ｆ１…リードロックフラグ、Ｆ２…ライトロックフラグ、ＫＩ…秘密鍵情報、ＰＫ…パスワード認証鍵、ＰＩ…電源投入時間情報、ＳＩ１…セキュリティ情報、ＳＩ２…処理済セキュリティ情報、ＳＫ１…第１の秘密鍵、ＳＫ２…第２の秘密鍵。
【図１】
2020030527.tif 000003
【図２】
2020030527.tif 000004
【図３】
2020030527.tif 000005
【図４】
2020030527.tif 000006
【図５】
2020030527.tif 000007
【図６】
2020030527.tif 000008
【図７】
2020030527.tif 000009
【図８】
2020030527.tif 000010
【図９】
2020030527.tif 000011
【図１０】
2020030527.tif 000012