(57)【要約】      （修正有）【課題】ハードディスクドライブのような記憶装置を確実に暗号化することができる電子機器を実現する。【解決手段】電子機器は、記憶装置と、暗号化手段とを具備する。前記暗号化手段は、前記記憶装置の複数のセクタを暗号化する。前記暗号化手段は、前記複数のセクタの暗号化中にデータを読み出すことができない不良セクタが検出された場合、不良セクタ修復処理を実行し、前記不良セクタのアドレス情報を所定の記憶領域に記憶する（Ｓ６６）。【選択図】図６
2014229329.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置と、
前記記憶装置の複数のセクタを暗号化する暗号化手段とを具備し、
前記暗号化手段は、前記複数のセクタの暗号化中にデータを読み出すことができない不良セクタが検出された場合、前記不良セクタのアドレス情報を所定の記憶領域に記憶する、電子機器。
【請求項２】
前記暗号化手段は、
前記電子機器上で実行されるソフトウェアからアドレス情報が前記所定の記憶領域に記憶された第１セクタに向けられた書き込み要求を受けた場合、
前記書き込み要求に含まれるデータを暗号化し、
暗号化されたデータを前記第１セクタに書き込み、
前記第１のセクタへの前記暗号化されたデータの書き込みが成功した場合、前記第１セクタのアドレス情報を前記所定の記憶領域から削除する請求項１記載の電子機器。
【請求項３】
前記暗号化手段は、
前記電子機器上で実行されるソフトウェアからアドレス情報が前記所定の記憶領域に記憶された第１セクタに向けられた読み込み要求を受けた場合、
前記第１セクタからデータを読み出し、
前記第１セクタからのデータの読み出しが成功した場合、前記読み出したデータを暗号化し、前記暗号化したデータを前記第１のセクタに書き込み、前記第１のセクタへの前記暗号化したデータの書き込みが成功した場合、前記第１セクタのアドレス情報を前記所定の記憶領域から削除する請求項１記載の電子機器。
【請求項４】
前記暗号化手段は、
前記複数のセクタの暗号化中に前記不良セクタが検出された場合、
前記不良セクタが空きクラスタであるか否かを判定し、
前記不良セクタが空きクラスタである場合、ダミーデータを前記不良セクタに書き込み、
前記不良セクタから前記ダミーデータデータを読み出し、
前記不良セクタから前記ダミーデータが読み出せた場合、前記ダミーデータを暗号化し、前記暗号化されたダミーデータを前記不良セクタに書き込み、前記不良セクタのアドレス情報を前記所定の記憶領域に記憶せずに前記暗号化を継続する請求項１記載の電子機器。
【請求項５】
前記暗号化手段は、前記不良セクタから前記ダミーデータが読み出せなかった場合、前記不良セクタのアドレス情報を前記所定の記憶領域に記憶する請求項４記載の電子機器。
【請求項６】
前記不良セクタのアドレス情報は、前記不良セクタに割り当てられた論理ブロックアドレスを含む請求項１記載の電子機器。
【請求項７】
前記記憶装置はハードディスクドライブまたはソリッドステートドライブを含む請求項１記載の電子機器。
【請求項８】
電子機器の記憶装置をセクタ単位で暗号化する暗号化方法であって、
前記記憶装置の複数のセクタを暗号化し、
前記複数のセクタの暗号化中にデータを読み出すことができない不良セクタが検出された場合、前記不良セクタのアドレス情報を所定の記憶領域に記憶する暗号化制御方法。
【請求項９】
前記電子機器上で実行されるソフトウェアからアドレス情報が前記所定の記憶領域に記憶された第１セクタに向けられた書き込み要求を受けた場合、
さらに、前記書き込み要求に含まれるデータを暗号化し、
暗号化されたデータを前記第１セクタに書き込み、
前記暗号化されたデータを前記第１セクタに書き込めた場合、前記第１セクタのアドレス情報を前記所定の記憶領域から削除する請求項８記載の暗号化制御方法。
【請求項１０】
前記電子機器上で実行されるソフトウェアからアドレス情報が前記所定の記憶領域に記憶された第１セクタに向けられた読み込み要求を受けた場合、
さらに、前記第１セクタからデータを読み出し、
前記第１セクタからデータが読み出せた場合、前記読み出したデータを暗号化し、前記暗号化したデータを前記第１のセクタに書き込み、前記第１のセクタへの前記暗号化したデータの書き込みが成功した場合、前記第１セクタのアドレス情報を前記所定の記憶領域から削除する請求項８記載の暗号化制御方法。
【請求項１１】
コンピュータによって実行されるプログラムであって、
前記コンピュータの記憶装置の複数のセクタを暗号化する手順と、
前記複数のセクタの暗号化中にデータを読み出すことができない不良セクタが検出された場合、前記不良セクタのアドレス情報を所定の記憶領域に記憶する手順とを前記コンピュータに実行させるためのプログラム。
【請求項１２】
前記コンピュータ上で実行されるソフトウェアからアドレス情報が前記所定の記憶領域に記憶された第１セクタに向けられた書き込み要求を受けた場合、
前記書き込み要求に含まれるデータを暗号化する手順と、
暗号化されたデータを前記第１セクタに書き込む手順と、
前記暗号化されたデータを前記第１セクタに書き込めた場合、前記第１セクタのアドレス情報を前記所定の記憶領域から削除する手順とを前記コンピュータにさらに実行させる請求項１１記載のプログラム。
【請求項１３】
前記コンピュータ上で実行されるソフトウェアからアドレス情報が前記所定の記憶領域に記憶された第１セクタに向けられた読み込み要求を受けた場合、
前記第１セクタからデータを読み出す手順と、
前記第１セクタからデータが読み出せた場合、前記読み出したデータを暗号化し、前記暗号化したデータを前記第１のセクタに書き込み、前記第１のセクタへの前記暗号化したデータの書き込みが成功した場合、前記第１セクタのアドレス情報を前記所定の記憶領域から削除する手順とを前記コンピュータにさらに実行させる請求項１１記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、電子機器および同電子機器に適用される暗号化制御方法に関する。
【背景技術】
【０００２】
近年、タブレットコンピュータ、ノートブック型パーソナルコンピュータ（ＰＣ）といった種々の電子機器が開発されている。この種の電子機器の多くは、ハードディスクドライブ（ＨＤＤ）などの補助記憶装置を備えている。
【０００３】
最近では、補助記憶装置内のハードディスク等の記憶媒体に記録されるデータを暗号化する暗号化技術も開発されている。データを暗号化することによって、情報の漏洩等を防止することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−９２６５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ハードディスクの暗号化中にデータの読み込みができないようなセクタが検出される場合がある。この場合、このセクタを暗号化することはできなくなる。しかし、このセクタのデータは後に読み出し可能となる場合がある。よって、暗号化されていないセクタの存在は、情報の漏洩の危険を増す要因となりうる。
【０００６】
本発明の目的は、ハードディスクドライブのような記憶装置を確実に暗号化することができる電子機器および暗号化制御方法を提供することである。
【課題を解決するための手段】
【０００７】
実施形態によれば、電子機器は、記憶装置と、暗号化手段とを具備する。前記暗号化手段は、前記記憶装置の複数のセクタを暗号化する。前記暗号化手段は、前記複数のセクタの暗号化中にデータを読み出すことができない不良セクタが検出された場合、前記不良セクタのアドレス情報を所定の記憶領域に記憶する。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る電子機器の外観を示す斜視図。
【図２】同実施形態に係る電子機器のシステム構成例を示す図。
【図３】同実施形態に係る電子機器によって実行される暗号化制御処理の概要を説明するための図。
【図４】同実施形態に係る電子機器によって実行される暗号化制御プログラムの構成を示すブロック図。
【図５】同実施形態に係る電子機器によって実行される暗号化制御処理の手順を示すフローチャート。
【図６】同実施形態に係る電子機器によって実行される暗号化制御処理における不良セクタ修復処理の手順を示すフローチャート。
【図７】同実施形態に係る電子機器によって実行される暗号化制御処理における書き込み要求に対する処理の手順を示すフローチャート。
【図８】同実施形態に係る電子機器によって実行される暗号化制御処理における読み込み要求に対する処理の手順を示すフローチャート。
【図９】同実施形態に係る電子機器によって実行される暗号化制御処理によって記憶される不良セクタリストの一例を説明するための図である。
【発明を実施するための形態】
【０００９】
以下、実施の形態について図面を参照して説明する。  
まず、図１を参照して、本実施形態に係る電子機器の構成について説明する。この電子機器は、ノートブックタイプのパーソナルコンピュータまたはタブレット端末等の各種電子機器として実現され得る。以下では、この電子機器が、ノートブックタイプのパーソナルコンピュータ１０として実現されている場合を想定する。
【００１０】
図１は、ディスプレイユニットが開いた状態のコンピュータ１０を正面側から見た斜視図である。本コンピュータ１０は、コンピュータ本体１１と、ディスプレイユニット１２とを備える。ディスプレイユニット１２には、液晶表示装置（ＬＣＤ）３１のような表示装置が組み込まれている。さらに、ディスプレイユニット１２の上端部には、カメラ（Ｗｅｂカメラ）３２が配置されている。また、本コンピュータ１０は、バッテリ２０から電力を受けるように構成されている。
【００１１】
ディスプレイユニット１２は、コンピュータ本体１１の上面が露出される開放位置とコンピュータ本体１１の上面がディスプレイユニット１２で覆われる閉塞位置との間を回動自在にコンピュータ本体１１に取り付けられている。コンピュータ本体１１は薄い箱形の筐体を有しており、その上面にはキーボード１３、タッチパッド１４、指紋センサ１５、本コンピュータ１０をパワーオン／オフするための電源スイッチ１６、およびスピーカ１８Ａ、１８Ｂが配置されている。また、コンピュータ本体１１の左側面には、ＵＳＢデバイスを接続するためのＵＳＢコネクタ２２が設けられている。
【００１２】
また、コンピュータ本体１１には、電源コネクタ２１が設けられている。電源コネクタ２１はコンピュータ本体１１の側面、例えば左側面に設けられている。この電源コネクタ２１には、外部電源装置が取り外し自在に接続される。外部電源装置としては、ＡＣアダプタを用いることができる。ＡＣアダプタは商用電源（ＡＣ電力）をＤＣ電力に変換する電源装置である。
【００１３】
バッテリ２０は、例えば、コンピュータ本体１１の後端部に取り外し自在に装着される。バッテリ２０は本コンピュータ１０に内蔵されるバッテリであってもよい。  
本コンピュータ１０は、外部電源装置からの電力またはバッテリ２０からの電力によって駆動される。本コンピュータ１０の電源コネクタ２１に外部電源装置が接続されているならば、本コンピュータ１０は外部電源装置からの電力によって駆動される。また、外部電源装置からの電力は、バッテリ２０を充電するためにも用いられる。本コンピュータ１０の電源コネクタ２１に外部電源装置が接続されていない期間中は、本コンピュータ１０はバッテリ２０からの電力によって駆動される。
【００１４】
さらに、コンピュータ本体１１には、幾つかのＵＳＢポート２２、ＨＤＭＩ（High-definition multimedia interface）（登録商標）出力端子２３、およびＲＧＢポート２４が設けられている。
【００１５】
コンピュータ本体１１には、ハードディスクドライブ、ソリッドストードライブ、といった大容量の記憶装置が設けられている。この記憶装置は、システムデータおよびユーザデータを含む様々なデータを記憶可能な不揮発性ストレージとして機能する。本コンピュータ１０は、この記憶装置の全記憶領域を暗号化するための暗号化機能を有している。記憶装置の全記憶領域を暗号化することにより、万が一、本コンピュータ１０から記憶装置が抜き取られた場合でも、第三者がデータにアクセスするのを防止することが出来る。
【００１６】
図２は、本コンピュータ１０のシステム構成を示している。  
本コンピュータ１０は、ＣＰＵ１１１、システムコントローラ１１２、主メモリ１１３、グラフィクスプロセッシングユニット（ＧＰＵ）１１４、サウンドコーデック１１５、ＢＩＯＳ−ＲＯＭ１１６、ハードディスクドライブ（ＨＤＤ）１１７、光ディスクドライブ（ＯＤＤ）１１８、ＢＴ（Ｂｌｕｅｔｏｏｔｈ（登録商標））モジュール１２０、無線ＬＡＮモジュール１２１、ＳＤカードコントローラ１２２、ＰＣＩ  ＥＸＰＲＥＳＳカードコントローラ１２３、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１３０等を備えている。
【００１７】
ＣＰＵ１１１は、本コンピュータ１０の各コンポーネントの動作を制御するプロセッサである。このＣＰＵ１１１は、ＨＤＤ１１７から主メモリ１１３にロードされる各種ソフトウェアを実行する。このソフトウェアは、オペレーティングシステム（ＯＳ）２０１、デバイスドライバ２０２、および各種アプリケーションプログラムを含む。さらに、このアプリケーションプログラムは、暗号化制御プログラム２０３を含む。暗号化制御プログラム２０３は、ＨＤＤ１１７の全記憶領域をセクタ単位で暗号化するプログラムである。なお、暗号化制御プログラム２０３は、例えば、ＯＳ２０１が起動している際、バックグラウンドで動作していてもよいし、ＯＳ２０１からの指示により起動してもよい。また、暗号化制御プログラム２０３は、例えば、ユーザの操作に応じて、暗号化を開始することもできる。
【００１８】
ＨＤＤ１１７の全記憶領域には、データ領域のみならず、システム領域、プログラム記憶領域等も含まれる。ＨＤＤ１１７の全記憶領域を暗号化することにより、高いセキュリティー性を得ることができる。また、暗号化制御プログラム２０３は、ソフトウェア（ＯＳ２０１、各種アプリケーションプログラム等）とＨＤＤ１１７との間に介在することができる。すなわち、暗号化制御プログラム２０３は、ソフトウェアからの書き込み要求を受けた際には、書き込み要求に含まれるデータを暗号化し、そして暗号化されたデータをＨＤＤ１１７に書き込む。また、ソフトウェアからの読み込み要求を受けた際には、暗号化制御プログラム２０３は、ＨＤＤ１１７から暗号化されたデータを読み出し、この読み出されたデータを復号し、復号されたデータをソフトウェアに送る。これにより、ソフトウェアの実行中にＨＤＤ１１７の暗号化を行うことが出来る。
【００１９】
また、ＣＰＵ１１１は、不揮発性メモリであるＢＩＯＳ−ＲＯＭ１１６に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳはハードウェア制御のためのシステムプログラムである。
【００２０】
ＧＰＵ１１４は、本コンピュータ１０のディスプレイモニタとして使用されるＬＣＤ３１を制御する表示コントローラである。ＧＰＵ１１４は、ビデオメモリ（ＶＲＡＭ）１１４Ａに格納された表示データからＬＣＤ３１に供給すべき表示信号（ＬＶＤＳ信号）を生成する。さらに、ＧＰＵ１１４は、表示データからアナログＲＧＢ信号およびＨＤＭＩビデオ信号を生成することもできる。アナログＲＧＢ信号はＲＧＢポート２４を介して外部ディスプレイに供給される。ＨＤＭＩ出力端子２３は、ＨＤＭＩビデオ信号（非圧縮のデジタル映像信号）と、デジタルオーディオ信号とを一本のケーブルで外部ディスプレイに送出することができる。ＨＤＭＩ制御回路１１９は、ＨＤＭＩビデオ信号およびデジタルオーディオ信号をＨＤＭＩ出力端子２３を介して外部ディスプレイに送出するためのインタフェースである。
【００２１】
システムコントローラ１１２は、ＣＰＵ１１１と各コンポーネントとの間を接続するブリッジデバイスである。システムコントローラ１１２は、ＨＤＤ１１７を制御するためのシリアルＡＴＡコントローラを内蔵している。さらに、システムコントローラ１１２は、ＬＰＣ（Ｌｏｗ ＰＩＮ Ｃｏｕｎｔ）バス上の各デバイスとの通信を実行する。
【００２２】
ＥＣ／ＫＢＣ１３０は、ＬＰＣバスに接続されている。ＥＣ／ＫＢＣ１３０、電源コントローラ（ＰＳＣ）１４１、およびバッテリ２０は、Ｉ２Ｃバスのようなシリアルバスを介して相互接続されている。
【００２３】
ＥＣ／ＫＢＣ１３０は、本コンピュータ１０の電力管理を実行するための電力管理コントローラであり、例えば、キーボード（ＫＢ）１３およびタッチパッド１４などを制御するキーボードコントローラを内蔵したワンチップマイクロコンピュータとして実現されている。ＥＣ／ＫＢＣ１３０は、ユーザによる電源スイッチ１６の操作に応じて本コンピュータ１０をパワーオンおよびパワーオフする機能を有している。
【００２４】
次に、図３を参照して、本実施形態の概要について説明する。  
図３に示すように、ＨＤＤ１１７の全記憶領域が第１セクタから第ｎセクタまでのｎ個のセクタを有している場合、ＨＤＤ１１７は第１セクタ、第２セクタ、・・・、第ｋセクタ、・・・、第ｎセクタの順に暗号化される。なお、第１セクタは、例えば、全記憶領域に含まれる複数のセクタの内の先頭のセクタである。先頭のセクタは、例えば、セクタ番号が最小であるセクタである。また、第ｎセクタは、例えば、全記憶領域に含まれる複数のセクタの内の最後のセクタである。最後のセクタは、例えば、セクタ番号が最大であるセクタである。
【００２５】
また、ＨＤＤ１１７の暗号化中に、データを読み出すことができない不良セクタが検出される場合がある。このような場合、本実施形態では、暗号化制御プログラム２０３は、検出された不良セクタのアドレス情報を所定の記憶領域（不良セクタリスト）に記憶し、ＨＤＤ１１７の暗号化を継続して実行する。そして、ＨＤＤ１１７の暗号化完了後に、不良セクタリストに登録された不良セクタ（暗号化されていないセクタ）に向けられたソフトウェアからのアクセス要求があった場合、暗号化制御プログラム２０３は、このアクセス要求が向けられた不良セクタの修復（暗号化）を行う。そのため、あるセクタが不良セクタとして検出された場合でも、このセクタの暗号化をスキップすることによってＨＤＤ１１７の暗号化を完了させることが出来る。そして、不良セクタリストに基づき、暗号化されていない各セクタの修復および暗号化を行うことが出来る。よって、ＨＤＤ１１７の暗号化を確実に行うことができる。なお、本実施形態では、不良セクタリストを、検出された不良セクタを修復することを目的として使用するではなく、暗号化されていないセクタに対して後に暗号化処理を行うことを目的として使用する。この意味で、不良セクタリストは、暗号化がスキップされたセクタのリストであると言える。
【００２６】
不良セクタとは、上述したように、データを読み出すことができないセクタである。例えば、データが誤り訂正符号（ＥＣＣ）とともに記録されており、ＥＣＣを用いてもデータのエラーを訂正することができないような場合、エラーを訂正することができないデータが格納されているセクタが不良セクタとして検出される。
【００２７】
不良セクタのアドレス情報は、ＨＤＤ１１７上における不良セクタの位置を示す情報である。不良セクタのアドレス情報は、例えば、論理ブロックアドレス（ＬＢＡ）を含む情報である。
【００２８】
不良セクタに向けられたアクセスとは、不良セクタに対してデータを書き込むための要求、または不良セクタからデータを読み出すための要求、等である。
【００２９】
不良セクタを修復するとは、不良セクタを、データを読み出し及びデータの書き込みが可能な通常セクタにすることである。
【００３０】
具体的には、図１に示すように、第ｋセクタが不良セクタとして検出された場合、第ｋセクタのアドレス情報を不良セクタリストに記憶する。そして、第ｋセクタに対する暗号化がスキップされる。そして、第ｋセクタの次のセクタである第ｋ＋１セクタから第ｎセクタまで暗号化が行われる。なお、第ｋ＋１セクタから第ｎセクタまで暗号化している際、不良セクタが検出された場合、その検出されたセクタのアドレス情報が不良セクタリストに記憶される。そして、第ｎセクタに対する暗号化を行った後、検出された不良セクタ、例えば第ｋセクタを修復する。第ｋセクタを修復する処理は、例えば、第ｋセクタに向けられたソフトウェアからの書き込み要求／読み込み要求が受信された際に実行される。第ｋセクタに向けられたソフトウェアからの書き込み要求を受信した時、暗号化制御プログラム２０３は、書き込み要求に含まれるデータを暗号化し、暗号化されたデータを第ｋセクタに書き込む。暗号化されたデータの書き込みが成功すれば、つまり、第ｋセクタの暗号化が完了すれば、暗号化制御プログラム２０３は、第ｋセクタのアドレス情報を不良セクタリストから削除する。第ｋセクタに向けられたソフトウェアからの読み込み要求を受信した時、暗号化制御プログラム２０３は、第ｋセクタからデータを読み出す。データの読み出しに成功すれば、暗号化制御プログラム２０３は、このデータを暗号化し、暗号化されたデータを第ｋセクタに書き込む。暗号化されたデータの書き込みが成功すれば、つまり、第ｋセクタの暗号化が完了すれば、そして第ｋセクタのアドレス情報を不良セクタリストから削除する。このように、ソフトウェアからの書き込み要求／読み込み要求に応答して不良セクタを修復するための処理、換言すれば、暗号化されていないセクタを暗号化する処理、を自動的に行うことにより、効率よく不良セクタの修復および暗号化を行うことが出来る。
【００３１】
なお、不良セクタが検出された後、第ｎセクタまで暗号化を行うよりも前に、不良セクタの修復を行ってもよい。
【００３２】
次に、図４を参照して、暗号化制御プログラム２０３の構成について説明する。  
暗号化制御プログラム２０３は、制御部４０を備える。制御部４０は、読み出し部４１、書き込み部４２、暗号化部４３、記録部４４、修復部４５、空きクラスタ判定部４６、及び不良セクタ検出部４７を備える。また、暗号化制御プログラム２０３は、ＯＳ２０１及びデバイスドライバ２０２と連携して動作する。
【００３３】
デバイスドライバ２０２は、ＨＤＤ１７７をリード／ライトアクセスするためのドライバプログラムである。暗号化制御プログラム２０３は、デバイスドライバ２０２を介してＨＤＤ１７７へのデータ書き込みおよびＨＤＤ１７７からのデータ読み出しを行うことが出来る。不良セクタ検出部４７は、不良セクタを検出する。
【００３４】
空きクラスタ判定部４６は、不良セクタ検出部４７によって検出された不良セクタが空きクラスタであるか否かを判定する。空きクラスタは、ＯＳ２０１のファイルシステムによって使用されていないクラスタである。使用されていないクラスタとは、例えば、有効なデータが書き込まれているクラスタである。また、空きクラスタであるか否かの判定は、使用中のクラスタをチェックするために用意されたＯＳ２０１の関数を用いて行うことが出来る。また、空きクラスタであるか否かの判定は、ファイルのデータが書き込まれている場所を管理しているＦＡＴまたはＮＴＦＳを解析することによって行うこともできる。
【００３５】
制御部４０は、ＨＤＤ１７７を暗号化している期間中に、データを読み出すことができない不良セクタを検出し、その検出した不良セクタのアドレス情報を記憶部４８の不良セクタリストに記憶する。
【００３６】
読み出し部４１は、ＯＳ２０１等のソフトウェアからの読み込み要求に応じて、ＨＤＤ１１７からデータを読み出す。書き込み部４２は、ＯＳ２０１等のソフトウェアからの書き込み要求に応じて、ＨＤＤ１１７にデータを書き込む。暗号化部４３は、読み出し部４１によって読み出されたデータを暗号化する。暗号化されたデータは、書き込み部４２によってＨＤＤ１１７に書き込まれる。
【００３７】
記録部４４は、不良セクタのアドレス情報を記憶部４８内の不良セクタリストに記録する。記録部４４は、例えば、ＨＤＤ１１７内のハードディスク等の不揮発性メモリである。
【００３８】
修復部４５は、不良セクタリストに基づき、不良セクタを修復する。また、修復部４５は、不良セクタ検出部４７によって不良セクタが検出された場合に、検出された不良セクタを修復する処理を即座に実行することもできる。この場合、修復部４５は、不良セクタ検出部４７によって検出された不良セクタが有効データを保持しない空きクラスタであるか否かを判定する。不良セクタが空きクラスタの一部である場合には、修復部４５は、不良セクタを修復するためにダミーデータを不良セクタに書き込む。そして、修復部４５は、ダミーデータを不良セクタから読み出す。ダミーデータの読み出しが成功すれば、この不良セクタのアドレス情報は不良セクタリストに記憶されない。
【００３９】
不良セクタリストは、不良セクタ検出部４７によって検出された不良セクタのリストである。なお、上述のように、検出された不良セクタに対して修復部４５による修復が即座に行われる場合には、この修復によって修復できなかった不良セクタ（修復不可セクタ）のみが不良セクタリストに記憶される。
【００４０】
なお、修復部４５は、暗号化中に不良セクタの修復を行ってもよいし、暗号化が完了した後不良セクタの修復を行ってもよい。
【００４１】
また、修復部４５は、不良セクタが検出された後、暗号化が完了する前に、不良セクタに対する上述したような書き込み要求または読み出し要求があった場合、その要求に応じて、不良セクタの修復を行ってもよい。
【００４２】
次に、図５のフローチャートを参照して、本実施形態の暗号化制御処理の手順について説明する。  
暗号化制御プログラム２０３は、ＨＤＤ１１７の全記憶領域内の全てのセクタそれぞれに対して以下の処理を実行する。
【００４３】
暗号化制御プログラム２０３は、まず、対象のセクタからデータを読み出す（ステップＳ５０）。次に、暗号化制御プログラム２０３は、このセクタからデータを読み出すことに成功したか否か、換言すると不良セクタが検出されたか否か、を判定する（ステップＳ５１）。暗号化制御プログラム２０３は、データを読み出すことに成功した場合（ステップＳ５１のＹＥＳ）、読み出したデータを暗号化する（ステップＳ５２）。次に、暗号化制御プログラム２０３は、暗号化したデータを、このセクタに書き込む（ステップＳ５３）。暗号化制御プログラム２０３は、ステップＳ５１において、データを読み出すことに失敗した場合（ステップＳ５１のＮＯ）、ステップＳ５４に進む。暗号化制御プログラム２０３は、ステップＳ５４において、不良セクタを修復する処理を行うことができる。
【００４４】
次に、図６のフローチャートを参照して、本実施形態の暗号化制御処理における不良セクタの修復処理の手順について説明する。図６は、図５のステップＳ５４の処理をより詳細に説明した図である。  
暗号化制御プログラム２０３は、不良セクタに対応するクラスタが空きクラスタであるか否かを判定する（ステップＳ６０）。暗号化制御プログラム２０３は、不良セクタに対応するクラスタが空きクラスタである場合（ステップＳ６０のＹＥＳ）、不良セクタにダミーデータを書き込む（ステップＳ６１）。次に、暗号化制御プログラム２０３は、不良セクタからダミーデータを読み出す（ステップＳ６２）。暗号化制御プログラム２０３は、不良セクタからダミーデータを読み出せたかどうかに応じて、不良セクタの修復に成功したか否かを判定する（ステップＳ６３）。暗号化制御プログラム２０３は、不良セクタからダミーデータを読み出すことができた場合、不良セクタの修復に成功したと判定する。暗号化制御プログラム２０３は、不良セクタの修復に成功した場合（ステップＳ６３のＹＥＳ）、読み出したダミーデータを暗号化する（ステップＳ６４）。暗号化制御プログラム２０３は、その暗号化したダミーデータを不良セクタに書き込む（ステップＳ６５）。
【００４５】
また、暗号化制御プログラム２０３は、不良セクタに対応するクラスタが空きクラスタでない場合（ステップＳ６０のＮＯ）、または、不良セクタの修復に失敗した場合（ステップＳ６３のＮＯ）、不良セクタリストに不良セクタのアドレス情報を記録する（ステップＳ６６）。
【００４６】
なお、暗号化制御プログラム２０３は、不良セクタを検出した場合、図６に示すような不良セクタの修復処理を行うことなく、その不良セクタのアドレス情報を不良セクタリストに記録しても良い。
【００４７】
次に、図７のフローチャートを参照して、不良セクタリストに登録されたセクタに向けられた書き込み要求を受信した際に暗号化制御プログラム２０３によって実行される処理の手順について説明する。  
暗号化制御プログラム２０３は、ＨＤＤ１１７にデータを書き込むための書き込み要求がＯＳ２０１等からきた場合、図７に示すような処理を開始する。暗号化制御プログラム２０３は、書き込み要求に含まれるデータを暗号化し、暗号化したデータを、書き込み要求に含まれる論理ブロックアドレスに対応するセクタに書き込む（ステップＳ７０）。次に、暗号化制御プログラム２０３は、不良セクタリストを参照して、データが書き込まれるセクタが不良セクタリストに記録された不良セクタか否かを判定する（ステップＳ７１）。暗号化制御プログラム２０３は、データが書き込まれるセクタが不良セクタリストに記録された不良セクタである場合（ステップＳ７１のＹＥＳ）、その不良セクタに対するデータの書き込みが成功したか否かを判定する（ステップＳ７２）。ステップＳ７２では、不良セクタからデータを読み出し、データを読み出せたか否かに応じて、不良セクタに対するデータの書き込みが成功したか否かを判定してもよい。
【００４８】
暗号化制御プログラム２０３は、不良セクタに対するデータの書き込みに成功した場合（ステップＳ７２のＹＥＳ）、データの書き込みに成功した不良セクタのアドレス情報を、不良セクタリストから削除する（ステップＳ７３）。換言すると、暗号化制御プログラム２０３は、不良セクタに対するデータの書き込みに成功した場合（ステップＳ７２のＹＥＳ）、この不良セクタを修復対象セクタから除外する（ステップＳ７３）。このように、暗号化したデータが不良セクタリストに登録されている不良セクタに対して書き込まれた場合、この不良セクタに対する暗号化処理が行われたことになるため、この不良セクタを不良セクタリストから除外する。
【００４９】
暗号化制御プログラム２０３は、データが書き込まれるセクタが不良セクタリストに記録された不良セクタでない場合（ステップＳ７１のＮＯ）、または、その不良セクタに対するデータの書き込みが失敗した場合（ステップＳ７２のＮＯ）、図７に示す暗号化制御処理を終了する。
【００５０】
次に、図８のフローチャートを参照して、不良セクタリストに登録されたセクタに向けられた読み込み要求を受信した際に暗号化制御プログラム２０３によって実行される処理の手順について説明する。  
暗号化制御プログラム２０３は、ＨＤＤ１１７からデータを読み出すための読み込み要求がＯＳ２０１等からきた場合、図８に示すような処理を開始する。暗号化制御プログラム２０３は、読み込み要求に応じて、読み出し要求によって指定される論理ブロックアドレスに対応するセクタからデータを読み出す（ステップＳ８１）。暗号化制御プログラム２０３は、このセクタが不良セクタリストに記録されている不良セクタか否かを判定する（ステップＳ８２）。
【００５１】
暗号化制御プログラム２０３は、このセクタが不良セクタリストに記録されている不良セクタであると判定した場合（ステップＳ８２のＹＥＳ）、不良セクタからデータを読み出すことに成功したか否かを判定する（ステップＳ８３）。なお、一般的に、不良セクタに対して再度読み出しを行うことによって、磁気が強まり、不良セクタからデータを読み出すことができる場合がある。
【００５２】
暗号化制御プログラム２０３は、不良セクタからデータを読み出すことに成功した場合（ステップＳ８３のＹＥＳ）、この不良セクタから読み出したデータを暗号化する（ステップＳ８４）。暗号化制御プログラム２０３は、その暗号化したデータをこのされた不良セクタ（修復されたセクタ）に書き込む（ステップＳ８５）。暗号化制御プログラム２０３は、暗号化したデータが書き込まれたこの不良セクタのアドレス情報を、不良セクタリストから削除する（ステップＳ８６）。換言すると、暗号化制御プログラム２０３は、暗号化したデータが書き込まれたこの不良セクタを修復対象であるセクタから除外する（ステップＳ８６）。
【００５３】
また、暗号化制御プログラム２０３は、ステップＳ８１において読み出したデータが暗号化されている場合、この読み出したデータを復号し、換言すると暗号化を解除するための処理を行い、復号したデータをＯＳ２０１等に送る。
【００５４】
次に、図９を参照して、不良セクタリストの一例について説明する。  
不良セクタリスト９０は、図９に示すように、不良セクタそれぞれに対応する論理ブロックアドレス（ＬＢＡ）を不良セクタアドレスとして含んでいる。
【００５５】
不良セクタアドレスは、不良セクタのハードディスク上における位置を示す情報である。不良セクタアドレスは、図９に示すように、例えば「０ｘ００００１２３４」のように記録される。
【００５６】
以上説明したように、本実施形態においては、セクタ単位でデータを記録可能なハードディスクのような記憶装置をセクタ単位で暗号化している期間中にデータを読み出すことができない不良セクタが検出された場合、検出した不良セクタのアドレス情報が記憶される。そのため、このアドレス情報を使用して、後に、この不良セクタを暗号化する処理を行うことが出来る。また、暗号化中に不良セクタが検出された場合に不良セクタに対して修復処理および暗号化処理を行うことによって、不良セクタの暗号化を完了させることもできる。また、不良セクタリストに記録された不良セクタに対して書き込み要求がきた場合、書き込み要求に応じたデータを暗号化して不良セクタに書き込み、書き込みが成功した場合、不良セクタリストから不良セクタを除外することにより、暗号化が必要な不良セクタを減少させることができる。また、不良セクタリストに記録された不良セクタに読み出し要求がきた場合、読み出しが成功すれば、不良セクタの暗号化を行い不良セクタリストから不良セクタを除外することにより、暗号化が必要な不良セクタを減少させることができる。また、暗号化中に不良セクタ（第１のセクタ）を検出した場合、その不良セクタ（第１のセクタ）に対応するクラスタが空きクラスタであれば、その不良セクタ（第１のセクタ）に対してダミーデータの書き込みと再読み出しを行うことによりその不良セクタ（第１のセクタ）を修復することができ、書き込んだダミーデータの読み出しに成功した場合、暗号化を再度行うことによりその不良セクタ（第１のセクタ）の暗号化を完了させることができる。
【００５７】
なお、本実施形態において、ＨＤＤ１１７を暗号化する場合について説明したが、所定の単位で暗号化可能なソリッドステートドライブ（ＳＳＤ）等の不揮発性メモリに対しても上述したような暗号化制御処理を行うことができる。
【００５８】
また、本実施形態で説明した暗号化制御プログラム２０３の機能は、専用ＬＳＩ、ＤＳＰ、またはマイクロコンピュータのようなハードウェアによって実現してもよい。  
なお、本実施形態の暗号化制御処理の手順は全てソフトウェアによって実行することができるので、この暗号化制御処理の手順を実行するコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００５９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６０】
１０…コンピュータ（電子機器）、４３…暗号化部、４４…記録部、４５…修復部、４６…空きクラスタ判定部、１１７…ハードディスクドライブ（ＨＤＤ）、２０３…暗号化制御プログラム。
【図１】
2014229329.tif 000003
【図２】
2014229329.tif 000004
【図３】
2014229329.tif 000005
【図４】
2014229329.tif 000006
【図５】
2014229329.tif 000007
【図６】
2014229329.tif 000008
【図７】
2014229329.tif 000009
【図８】
2014229329.tif 000010
【図９】
2014229329.tif 000011