(57)【要約】      （修正有）【課題】データストレージデバイスおよびデータプロテクション方法を提供する。【解決手段】コントローラー２２０は第一ファイルを暗号化して、第一暗号化ファイルを生成し、フラッシュメモリ２１０に保存し、更に、キー生成モジュール２２２、暗号化/復号モジュール２２４、キー消去モジュール２２６を含む。キー生成モジュール２２２は、ホスト装置の第一書き込みコマンドに従って、第一キーを生成し、第一キーは複数のブロックの第一ブロック中に保存される。暗号化/復号モジュール２２４は、第一キーに従って、第一ファイルを暗号化して、第一暗号化ファイルを生成し、複数のブロックの少なくともひとつの第二ブロック中に保存される。キー消去モジュールは、第一消去コマンドに従って、第一ブロック中に保存される第一キーを削除し、第二ブロック中に保存される第一暗号化ファイルを無効にする。【選択図】図２
2015172959.tif 000002
【特許請求の範囲】
【請求項１】
データストレージデバイスであって、
複数のブロックを含むフラッシュメモリ、および、
第一ファイルを暗号化して、第一暗号化ファイルを生成し、前記第一暗号化ファイルを前記フラッシュメモリに保存するコントローラー、
を含み、前記コントローラーは、さらに、
ホスト装置の第一書き込みコマンドに従って、第一キーを生成し、前記第一キーが前記複数のブロックの第一ブロック中に保存されるキー生成モジュールと、
前記第一キーに従って、前記第一ファイルを暗号化して、第一暗号化ファイルを生成し、前記第一暗号化ファイルが前記複数のブロックの少なくともひとつの第二ブロック中に保存される暗号化/復号モジュール、および、
第一消去コマンドに従って、前記第一ブロック中に保存される前記第一キーを削除し、前記第二ブロック中に保存される前記第一暗号化ファイルを無効にするキー消去モジュール、
を含むことを特徴とするデータストレージデバイス。
【請求項２】
前記コントローラーは、さらに、第二ファイルを暗号化し、前記暗号化された第二ファイルを前記フラッシュメモリ中に保存し、前記キー生成モジュールは、さらに、前記ホスト装置の第二書き込みコマンドに従って、第二キーを生成し、前記第二キーは、前記複数のブロックの前記第一ブロックまたは第三ブロック中に保存され、前記暗号化/復号モジュールは、さらに、前記第二キーに従って、前記第二ファイルを暗号化して、第二暗号化ファイルを生成し、前記第二暗号化ファイルを、前記複数のブロックの少なくともひとつの第四ブロック中に保存し、前記キー消去モジュールは、さらに、前記第一ブロックまたは前記第三ブロック中に保存される前記第二キーを削除することを特徴とする請求項１に記載のデータストレージデバイス。
【請求項３】
前記暗号化/復号モジュールは、前記第一ブロック中に保存される前記第一キーに従って、前記第一暗号化ファイルを復号して、前記第一ファイルを得て、前記第一ブロックまたは前記第三ブロック中に保存される前記第二キーに従って、前記第二暗号化ファイルを復号して、第二ファイルを得て、前記第一ファイルおよび前記第二ファイルを、それぞれ、前記ホスト装置に伝送することを特徴とする請求項２に記載のデータストレージデバイス。
【請求項４】
前記第一キーは、前記少なくともひとつの第二ブロック中に保存されるデータを暗号化、および、復号し、前記第二キーは、前記少なくともひとつの第四ブロック中に保存されるデータを暗号化、および、復号し、前記少なくともひとつの第二ブロックおよび前記少なくともひとつの第四ブロックの前記数量は、前記第一書き込みコマンドおよび前記第二書き込みコマンドにより決定されることを特徴とする請求項３に記載のデータストレージデバイス。
【請求項５】
前記第一書き込みコマンドおよび前記第二書き込みコマンドは、所定長さに従って、前記少なくともひとつの第二ブロックおよび前記少なくともひとつの第四ブロックの前記数量を決定することを特徴とする請求項４に記載のデータストレージデバイス。
【請求項６】
前記第一書き込みコマンドは、前記第一ファイルの前記長さに従って、前記少なくともひとつの第二ブロックの前記数量を決定し、前記第二書き込みコマンドは、前記第二ファイルの前記長さに従って、前記少なくともひとつの第四ブロックの前記数量を決定することを特徴とする請求項４に記載のデータストレージデバイス。
【請求項７】
前記キー消去モジュールは、前記第一消去コマンドに従って、前記第一ブロックを消去して、前記第一キーを削除することを特徴とする請求項１に記載のデータストレージデバイス。
【請求項８】
データプロテクション方法であって、
ホスト装置の第一書き込みコマンドに従って、第一キーを生成し、前記第一キーを第一ブロックに保存する工程と、
前記第一キーに従って、第一ファイルを暗号化して、第一暗号化ファイルを生成し、前記第一暗号化ファイルを少なくともひとつの第二ブロックに保存する工程、および、
第一消去コマンドに従って、前記第一ブロックを消去して、前記第一キーを削除し、前記第二ブロック中に保存される前記第一暗号化ファイルを無効にする工程、
を含むことを特徴とする方法。
【請求項９】
前記ホスト装置の第二書き込みコマンドに従って、第二キーを生成し、前記第二キーを、前記第一ブロックまたは第三ブロックに保存する工程と、
前記第二キーに従って、前記第二ファイルを暗号化して、第二暗号化ファイルを生成し、前記第二暗号化ファイルを少なくとも第四ブロックで保存する工程、および、
第二消去コマンドに従って、前記第一ブロックまたは前記第三ブロック中に保存される前記第二キーを削除する工程、
を含むことを特徴とする請求項８に記載のデータプロテクション方法。
【請求項１０】
さらに、
前記第一ブロック中に保存される前記第一キーに従って、前記少なくともひとつの第二ブロック中に保存される前記第一暗号化ファイルを復号して、前記第一ファイルを得る工程、
前記第一ブロックまたは前記第三ブロック中に保存される前記第二キーに従って、第四ブロック中に保存される前記第二暗号化ファイルを復号して、前記第二ファイルを得る工程、および、
前記第一ファイルおよび前記第二ファイルを、前記ホスト装置に伝送する工程、
を含むことを特徴とする請求項９に記載のデータプロテクション方法。
【請求項１１】
前記第一キーは、前記少なくともひとつの第二ブロック中に保存されるデータを暗号化、および、復号し、前記第二キーは、前記少なくともひとつの第四ブロック中に保存されるデータを暗号化、および、復号し、前記少なくともひとつの第二ブロックおよび前記少なくともひとつの第四ブロックの前記数量は、前記第一書き込みコマンドおよび前記第二書き込みコマンドにより決定されることを特徴とする請求項１０に記載のデータプロテクション方法。
【請求項１２】
前記第一書き込みコマンドおよび前記第二書き込みコマンドは、所定長さに従って、前記少なくともひとつの第二ブロックおよび前記少なくともひとつの第四ブロックの前記数量を決定することを特徴とする請求項１１に記載のデータプロテクション方法。
【請求項１３】
前記第一書き込みコマンドは、前記第一ファイルの前記長さに従って、前記少なくともひとつの第二ブロックの前記数量を決定し、前記第二書き込みコマンドは、前記第二ファイルの前記長さに従って、前記少なくともひとつの第四ブロックの前記数量を決定することを特徴とする請求項１１に記載のデータプロテクション方法。
【請求項１４】
データプロテクション方法であって、
第一書き込みコマンドおよび第一ファイルを受信する工程と、
前記第一書き込みコマンドに従って、第一キーを生成する工程と、
前記第一キーに従って、前記第一ファイルを暗号化して、第一暗号化ファイルを生成する工程と、
前記第一キーを第一ブロック中に保存し、前記第一暗号化ファイルを少なくともひとつの第二ブロック中に保存する工程、および、
第一消去コマンドが受信された時、前記第一キーを削除して、前記第一暗号化ファイルを保持する工程、
を含むことを特徴とする方法。
【請求項１５】
さらに、
第一読み込みコマンドがホスト装置から受信された時、前記第一キーおよび前記第一暗号化ファイルを回収する工程と、
前記第一キーに従って、前記第一暗号化ファイルを復号して、前記第一ファイルを得る工程、および、
前記第一ファイルを前記ホスト装置に伝送する工程、
を含むことを特徴とする請求項１４に記載のデータプロテクション方法。
【請求項１６】
前記第一キーを削除する前記工程は、前記第一ブロックを消去することを特徴とする請求項１４に記載のデータプロテクション方法。
【請求項１７】
前記第一キーを削除する前記工程は、無効データを前記第一ブロックに書き込むことを特徴とする請求項１４に記載のデータプロテクション方法。
【請求項１８】
フラッシュメモリのアクセス方法であって、
ホストから、書き込みコマンドおよび第一データを受信する工程と、
第一プログラムコマンドを伝送して、前記第一データを、前記フラッシュメモリのブロックの複数の第一ページに書き込む工程と、
削除コマンドを受信して、前記ホストから前記第一データを削除する工程、および、
第二プログラムコマンドを伝送して、所定データを前記第一ページに書き込む工程、
を含むことを特徴とする方法。
【請求項１９】
フラッシュメモリのアクセス方法であって、
ホストから、書き込みコマンドおよび第一データを受信する工程と、
第一プログラムコマンドを伝送して、前記第一データを、前記フラッシュメモリのブロックの複数の第一ページに書き込む工程と、
削除コマンドを受信して、前記ホストから前記第一データを削除する工程、および、
第二プログラムコマンドを伝送して、前記第一ページをオーバープログラミングする工程、
を含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データストレージデバイスに関するものであって、特に、データを暗号化するデータストレージデバイスに関するものである。
【背景技術】
【０００２】
フラッシュメモリは、電気的に消去できると共に、再プログラムできる一種の不揮発性メモリで、主に、メモリカード、ＵＳＢフラッシュドライブ、eMMCs、または、ソリッドステートディスク中に組み入れられ、コンピュータシステムとデジタル製品間のデータ保存、および、データ伝送を行う。
【０００３】
フラッシュメモリは、複数のメモリブロックを含み、各メモリブロックは、複数のデータを保存する保存ページを有する。フラッシュメモリは、メモリブロックをユニットとしてデータを消去し、保存ページをユニットとしてプログラムデータを書き込む。しかし、フラッシュメモリ中に保存されるデータは、ユーザーがデータを削除後、消去されない。これにより、削除されたデータは無許可のユーザーによりアクセスされ、情報セキュリティを妨げる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、データストレージデバイスおよびデータプロテクション方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、フラッシュメモリおよびコントローラーを含むデータストレージデバイスを開示する。フラッシュメモリは複数のブロックを含む。コントローラーは第一ファイルを暗号化して、第一暗号化ファイルを生成し、暗号化された第一ファイルをフラッシュメモリに保存し、コントローラーは、さらに、キー生成モジュール、暗号化/復号モジュールおよびキー消去モジュールを含む。キー生成モジュールは、ホスト装置の第一書き込みコマンドに従って、第一キーを生成し、第一キーは複数のブロックの第一ブロック中に保存される。暗号化/復号モジュールは、第一キーに従って、第一ファイルを暗号化し、第一暗号化ファイルを生成し、第一暗号化ファイルは複数のブロックの少なくともひとつの第二ブロック中に保存される。キー消去モジュールは、第一消去コマンドに従って、第一ブロック中に保存される第一キーを削除し、第二ブロック中に保存される第一暗号化ファイルを無効にする。
【０００６】
本発明は、さらに、データプロテクション方法を開示し、ホスト装置の第一書き込みコマンドに従って、第一キーを生成し、第一ブロック中の第一キーに保存する工程と、第一キーに従って、第一ファイルを暗号化し、第一暗号化ファイルを生成して、第一暗号化ファイルを少なくともひとつの第二ブロックに保存する工程、および、第一消去コマンドに従って、第一ブロックを消去して、第一キーを削除し、第二ブロックに保存される第一暗号化ファイルを無効にする工程、を含む。
【０００７】
本発明は、さらに、データプロテクション方法を開示し、第一書き込みコマンドおよび第一ファイルを受信する工程と、第一書き込みコマンドに従って、第一キーを生成する工程と、第一キーに従って、第一ファイルを暗号化し、第一暗号化ファイルを生成する工程と、第一ブロック中に第一キーを保存し、および、少なくともひとつの第二ブロック中に第一暗号化ファイルを保存する工程、および、第一消去コマンドが受信された時、第一キーを削除して、第一暗号化ファイルを保持する工程、を含む。
【０００８】
本発明は、さらに、フラッシュメモリのアクセス方法を開示し、ホストから、書き込みコマンドおよび第一データを受信する工程と、第一プログラムコマンドを伝送し、第一データをフラッシュメモリのブロックの複数の第一ページに書き込む工程と、削除コマンドを受信して、ホストから第一データを削除する工程、および、第二プログラムコマンドを伝送して、所定データを第一ページに書き込む工程、を含む。
【０００９】
本発明は、さらに、フラッシュメモリのアクセス方法を開示し、ホストから、書き込みコマンドおよび第一データを受信する工程と、第一プログラムコマンドを伝送して、第一データをフラッシュメモリのブロックの複数の第一ページに書き込む工程と、削除コマンドを受信して、ホストから第一データ を削除する工程、および、第二プログラムコマンドを伝送して、第一ページをオーバープログラミング(over-programming)する工程、を含む。
【発明の効果】
【００１０】
本発明により開示されるデータストレージデバイスおよびデータプロテクション方法は、暗号化キーを消去、または、破壊することにより、保存されたファイルを無効にすることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明のストレージシステムの具体例を示す図である。
【図２】本発明のデータストレージデバイスの具体例を示す図である。
【図３】本発明の具体例によるデータプロテクション方法のフローチャートである。
【図４】本発明のデータストレージデバイスの別の具体例を示す図である。
【発明を実施するための形態】
【００１２】
図１は、本発明のストレージシステムの具体例を示す図である。ストレージシステム１００は、ホスト装置１０２および、たとえば半導体ドライブ (ＳＳＤ)のようなデータストレージデバイス２００、ＳＤカードまたはフラッシュドライブを含む。ホスト装置１０２は、少なくともひとつのファイルＦ１-ＦＮ、少なくともひとつの書き込みコマンドＣ１１-Ｃ１Ｎ、少なくともひとつの消去コマンドＣ２１-Ｃ２Ｎ、および、少なくともひとつの 読み込みコマンドＲ１-ＲＮを伝送する。データストレージデバイス２００は、対応する書き込みコマンドＣ１１-Ｃ１Ｎに従って、ファイルＦ１-ＦＮを暗号化し、保存する。データストレージデバイス２００は、さらに、対応する消去コマンドＣ２１-Ｃ２Ｎに従って、ファイルＦ１-ＦＮの対応するキーを削除し、対応する読み込みコマンドＲ１-ＲＮに従って、保存されたファイルＦ１-ＦＮをホスト装置１０２に伝送する。
【００１３】
図２は、本発明のデータストレージデバイスの具体例を示す図である。データストレージデバイス２００は、フラッシュメモリ２１０およびコントローラー２２０を含む。フラッシュメモリ２１０は、ファイルＦ１-ＦＮおよび／または少なくともひとつの暗号化ファイルＦ１’-ＦＮ’を保存する。注意すべきことは、フラッシュメモリ２１０は複数のメモリユニット (図示しない)を含み、各メモリユニットは複数のブロック (図示しない)を含み、各ブロックは複数のページ (図示しない)を含むことである。コントローラー２２０は、書き込みコマンドＣ１１-Ｃ１Ｎに従って、ファイルＦ１-ＦＮを暗号化して、それぞれ、暗号化ファイルＦ１’-ＦＮ’を生成し、暗号化ファイルＦ１’-ＦＮ’ をフラッシュメモリ２１０中に保存する。コントローラー２２０は、さらに、消去コマンド Ｃ２１-Ｃ２Ｎに従って、フラッシュメモリ２１０に保存される暗号化ファイルＦ１’-ＦＮ’を無効にし、読み込みコマンドＲ１-ＲＮに従って、暗号化ファイルＦ１’-ＦＮ’を暗号化し、復号されたファイルＦ１-ＦＮをホスト装置１０２に伝送する。さらに、コントローラー２２０は、さらに、キー生成モジュール２２２、暗号化/復号モジュール２２４およびキー消去モジュール２２６を含む。
【００１４】
キー生成モジュール２２２は、ホスト装置１０２から受信される書き込みコマンド Ｃ１１-Ｃ１Ｎに従って、それぞれ、キーＫ１-ＫＮを生成する。キー生成モジュール２２２は、さらに、キーＫ１-ＫＮを暗号化/復号モジュール２２４に伝送し、キーＫ１-ＫＮをフラッシュメモリ２１０のブロック中に保存する。注意すべきことは、各キーＫ１-ＫＮは、それぞれ、異なるブロック中に保存されるデータを暗号化、および、復号し、異なるキーＫ１-ＫＮに対応するブロック数量は、それぞれ、書き込みコマンドＣ１１-Ｃ１Ｎにより決定されるが、これに限定されない。たとえば、キー生成モジュール２２２は、書き込みコマンドＣ１１に従って、キーＫ１を生成し、キーＫ１はデータの第一所定量を暗号化し、データの第一所定量を保存するために３ブロックが必要である。これにより、キー１はフラッシュメモリの３ブロックに対応する。すなわち、キーＫ１は、フラッシュメモリ２１０の第五ブロック、第六ブロックと第七ブロック中に保存されるデータを暗号化、および、復号する。本発明の一具体例において、書き込みコマンド Ｃ１１-Ｃ１Ｎは、所定長さに従って、少なくともひとつのキーＫ１-ＫＮに対応するブロックの数量を判断する。本発明の別の具体例において、書き込みコマンドＣ１１-Ｃ１Ｎは、ファイルＦ１-ＦＮの長さに従って、それぞれ、キーＫ１-ＫＮが対応するブロックの数量を判断する。
【００１５】
注意すべきことは、キー生成モジュール２２２は、キーＫ１-ＫＮを、異なるブロックまたは一部ロック中に保存するが、この限りではない。たとえば、キー生成モジュール２２２は、ホスト装置１０２から受信される書き込みコマンドＣ１１に従って、キーＫ１を生成し、キーＫ１をフラッシュメモリ２１０の第一ブロックに保存する。次に、キー生成モジュール２２２は、ホスト装置１０２から受信された書き込みコマンドＣ１２に従って、キーＫ２を生成し、キーＫ２をフラッシュメモリ２１０の第一ブロックに保存する。これにより、コントローラー２２０が消去コマンドＣ２１を受信する場合、コントローラー２２０により、第一ブロックを消去することにより、キーＫ１およびキーＫ２が削除される。すなわち、消去コマンドＣ２１を受信する時、コントローラー２２０は、第一ブロックを消去して、キーＫ１-ＫＮを削除する。本発明の別の具体例において、キー生成モジュール２２２は、ホスト装置１０２から受信される書き込みコマンドＣ１１に従って、キーＫ１を生成し、キーＫ１をフラッシュメモリ２１０の第一ブロック中に保存する。次に、キー生成モジュール２２２は、ホスト装置１０２から受信される書き込みコマンドＣ１２に従って、キーＫ２を生成し、キーＫ２をフラッシュメモリ２１０の第三ブロック中に保存する。この例において、ユーザーは、それぞれ、第一ブロックまたは第三ブロックを消去することにより、キーＫ１またはキーＫ２を削除する。
【００１６】
暗号化/復号モジュール２２４は、対応するキーＫ１-ＫＮに従って、ファイルＦ１-ＦＮを暗号化して、それぞれ、暗号化ファイルＦ１’-ＦＮ’を生成し、暗号化ファイルＦ１’-ＦＮ’はフラッシュメモリのブロック中に保存される。たとえば、暗号化/復号モジュール２２４は、高度暗号化標準 (ＡＥＳ)により、キーＫ１-ＫＮに従って、ファイルＦ１-ＦＮを暗号化するが、この限りではない。別の例において、暗号化/復号モジュール２２４は、さらに、データ暗号化標準 (ＤＥＳ)またはトリプルデータ暗号化標準(３ＤＥＳ)により、ファイルＦ１-ＦＮを暗号化する。注意すべきことは、暗号化ファイルＦ１’-ＦＮ’ はキーＫ１-ＫＮと同じブロック中に保存される、または、異なるブロック中に保存され、この限りではない。本発明の好ましい具体例において、暗号化ファイルＦ１’-ＦＮ’およびキーＫ１-ＫＮは、異なるブロック中に保存される。さらに、暗号化ファイルＦ１’-ＦＮ’ は、ページユニットまたはブロックユニットにより、フラッシュメモリ２１０中に書き込まれるが、この限りではない。暗号化/復号モジュール２２４は、さらに、ブロック中に保存される対応するキーＫ１-ＫＮに従って、それぞれ、フラッシュメモリ２１０に保存される暗号化ファイルＦ１’-ＦＮ’を復号して、ファイルＦ１-ＦＮを得て、ファイルＦ１-ＦＮをホスト装置１０２に伝送する。たとえば、コントローラー２２０が読み込みコマンドＲ１を受信する時、暗号化/復号モジュール２２４は、読み込みコマンドＲ１に従って、暗号化ファイル Ｆ１’を設置し、暗号化ファイル Ｆ１’のアドレスに従って、または、直接、暗号化ファイルＦ１’に従って、対応するキーＫ１を回収する。たとえば、フラッシュメモリ２１０は、さらに、暗号化ファイルＦ１’-ＦＮ’とキーＫ１-ＫＮのアドレスのマッピング関係、または、暗号化ファイルＦ１’-ＦＮ’とキーＫ１-ＫＮのマッピング関係を記録するのに用いられるマッピングテーブルを含むことができる。次に、暗号化/復号モジュール２２４は、キーＫ１に従って、暗号化ファイル Ｆ１’ を暗号化して、ファイルＦ１を得て、ファイルＦ１をホスト装置１０２に伝送する。
【００１７】
キー消去モジュール２２６は、対応する消去コマンド Ｃ２１-Ｃ２Ｎに従って、ブロックに保存されるキーＫ１-ＫＮを削除し、暗号化ファイルＦ１’-ＦＮ’を無効にする。すなわち、キー消去モジュール２２６は、対応する消去コマンド Ｃ２１-Ｃ２Ｎに従って、キーＫ１-ＫＮを有するブロックを消去し、このような無許可のユーザーは、キーＫ１-ＫＮにより暗号化ファイルＦ１’-ＦＮ’を暗号化することができない。これにより、暗号化ファイルＦ１’-ＦＮ’は無効になる。別の例において、キー消去モジュール２２６は、対応する消去コマンドＣ２１-Ｃ２Ｎに従って、無効データを有するキーＫ１-ＫＮを有するブロックを上書きする。ブロックが上書きした時、対応するキーＫ１-ＫＮが壊れ、よって、無許可のユーザーは、キーＫ１-ＫＮにより暗号化ファイルＦ１’-ＦＮ’ を暗号化することができない。
【００１８】
図３は、本発明の具体例によるデータプロテクション方法のフローチャートである。データプロテクション方法は図２のデータストレージデバイス２００に応用される。プロセスはＳ３００から開始される。
【００１９】
ステップＳ３００において、データストレージデバイス２００は書き込みコマンドが受信されたか判断する。書き込みコマンドが受信された場合、プロセスはＳ３０２に進み、そうでなければ、プロセスはステップＳ３０６に進む。
【００２０】
Ｓ３０２において、キー生成モジュール２２２は、ホスト装置１０２から受信される書き込みコマンドに従って、キーを生成し、キーを暗号化/復号モジュール２２４に伝送して、フラッシュメモリのブロックに保存する。注意すべきことは、各キーＫ１-ＫＮは、それぞれ、異なるブロック中に保存されたデータを暗号化、および、復号し、異なるキーＫ１-ＫＮに対応するブロックの数量は、それぞれ、書き込みコマンドＣ１１-Ｃ１Ｎにより決定されるが、この限りではないことである。たとえば、キー生成モジュール２２２は、書き込みコマンドＣ１１に従って、キーＫ１を生成し、キーＫ１は第一所定量のデータを暗号化し、第一所定量を保存するために３ブロックが必要である。これにより、キーＫ１は、フラッシュメモリ２１０中の第五ブロック、第六ブロックと第七ブロック中に保存されるデータを暗号化、および、復号する。本発明の一具体例において、書き込みコマンドＣ１１-Ｃ１Ｎは、所定長さに従って、少なくともひとつのキーＫ１-ＫＮに対応するブロックの数量を決定する。本発明の別の具体例において、書き込みコマンドＣ１１-Ｃ１Ｎは、それぞれ、ファイルＦ１-ＦＮの長さに従って、キーＫ１-ＫＮに対応するブロックの数量を決定する。さらに、キー生成モジュール２２２は、キーＫ１-ＫＮを異なるブロック、または、同じブロック中に保存するが、この限りではない。たとえば、キー生成モジュール２２２は、ホスト装置１０２から受信される書き込みコマンドＣ１１に従って、キーＫ１を生成し、キーＫ１をフラッシュメモリ２１０の第一ブロック中に保存する。次に、ホスト装置１０２から受信される書き込みコマンドＣ１２に従って、キー生成モジュール２２２がキーＫ２を生成し、キーＫ２をフラッシュメモリ２１０の第一ブロックに保存する。注意すべきことは、この例において、フラッシュメモリがブロック消去モードにあるため、同じブロック中に保存されるキーが同時に削除されることである。本発明の別の具体例において、ホスト装置１０２から受信される書き込みコマンドＣ１１に従って、キー生成モジュール２２２がキーＫ１を生成し、キーＫ１をフラッシュメモリ２１０の第一ブロックに保存する。次に、ホスト装置１０２から受信される書き込みコマンドＣ１２に従って、キー生成モジュール２２２がキーＫ２を生成し、キーＫ２を、フラッシュメモリ２１０の第三ブロックに保存する。この例において、ユーザーは、それぞれ、第一ブロックまたは第三ブロックを消去することにより、キーＫ１またはキーＫ２を削除することができる。
【００２１】
次に、Ｓ３０４において、暗号化/復号モジュール２２４は、キーに従って、対応するファイルを暗号化して、暗号化ファイルを生成し、コントローラー２２０は、暗号化ファイルをフラッシュメモリのブロック中に保存する。注意すべきことは、暗号化ファイルＦ１’-ＦＮ’は、キーＫ１-ＫＮと同じブロックに保存される、または、異なるブロック中に保存され、この限りではない。本発明の好ましい具体例において、暗号化ファイルＦ１’-ＦＮ’およびキーＫ１-ＫＮは異なるブロック中に保存される。さらに、暗号化ファイルＦ１’-ＦＮ’は、ページモードまたはブロックモードにより、フラッシュメモリ２１０中に書き込まれるが、この限りではない。
【００２２】
次に、Ｓ３０６において、データストレージデバイス２００は、消去コマンドが受信されたか判断する。消去コマンドが受信された時、プロセスは、プロセスはステップＳ３０８に進み、そうでなければ、プロセスはステップＳ３１０に進む。
【００２３】
Ｓ３０８において、キー消去モジュール２２６は、消去コマンドに従って、ブロック中に保存されるキーを削除して、暗号化ファイルを無効にする。すなわち、キー消去モジュール２２６は、対応する消去コマンド Ｃ２１-Ｃ２Ｎに従って、キーＫ１-ＫＮを有するブロックを消去し、無許可のユーザーは、キーＫ１-ＫＮにより、暗号化ファイルＦ１’-ＦＮ’を暗号化することができない。これにより、暗号化ファイルＦ１’-ＦＮ’は無効になる。次に、プロセスは、ステップＳ３００に戻り、データストレージデバイス２００は、書き込みコマンドが受信されたかの判断を継続する。
【００２４】
Ｓ３１０において、データストレージデバイス２００は、読み込みコマンドが受信されたか判断する。読み込みコマンドが受信された時、プロセスはＳ３１２に進み、そうでなければ、プロセスはステップＳ３００に進み、データストレージデバイス２００は、書き込みコマンドが受信されたかの判断を継続する。
【００２５】
Ｓ３１２において、暗号化/復号モジュール２２４は、ブロック中に保存される対応するキーＫ１-ＫＮに従って、フラッシュメモリ２１０に保存される暗号化ファイルＦ１’-ＦＮ’を復号して、それぞれ、ファイルＦ１-ＦＮを得て、ファイルＦ１-ＦＮをホスト装置１０２に伝送する。たとえば、コントローラー２２０が読み込みコマンドＲ１を受信する時、暗号化/復号モジュール２２４ は、読み込みコマンドＲ１に従って、暗号化ファイル Ｆ１’のアドレスを設置し、暗号化ファイル Ｆ１’ のアドレスに従って、または、直接、暗号化ファイルＦ１’に従って、対応するキーＫ１を回収する。たとえば、フラッシュメモリ２１０は、さらに、暗号化ファイルＦ１’-ＦＮ’およびキーＫ１-ＫＮのアドレスのマッピング関係、または、暗号化ファイルＦ１’-ＦＮ’およびキーＫ１-ＫＮのマッピング関係を記録するのに用いられるマッピングテーブルを含むことができる。次に、暗号化/復号モジュール２２４は、キーＫ１に従って、暗号化ファイル Ｆ１’ を復号して、ファイルＦ１を得て、ファイルＦ１をホスト装置１０２に伝送する。
【００２６】
本発明により開示されるデータストレージデバイス２００およびデータプロテクション方法は、暗号化キーを消去、または、破壊することにより、保存されたファイルを無効にすることができる。
【００２７】
図４は、本発明のデータストレージデバイスの別の具体例を示す図である。データストレージデバイス４００は、フラッシュメモリ４１０およびコントローラー４２０を含む。コントローラー４２０が設置されて、ホスト (図示しない) 、たとえば、ＰＣ、ラップトップ、ノートブック等から、書き込みコマンドＣ１とデータを受信する。コントローラー４２０は、仕様フラッシュメモリ４１０に対応するプログラムコマンドＰＣ１を伝送する。フラッシュメモリ４１０は、東芝ＮＡＮＤフラッシュまたはサムソンＮＡＮＤフラッシュ等で、フラッシュメモリ４１０は複数のブロック４１０１-４１０Ｎを含み、各ブロック４１０１-４１０Ｎは複数のページ(図示しない)を含む。プログラムコマンドの例は“0x80 ALE Data 0x10”で、フラッシュメモリ４１０が設定されて、仕様フラッシュメモリ４１０に対応するプログラムコマンドＰＣに従って、データを、ブロック４１０２のページの複数の第一ページ中に書き込む、または、プログラムする。ある状況において、ユーザーがある種のセキュリティのために、データを削除したい時、ホストは、削除コマンドＤＣ１をコントローラー４２０に伝送することができ、削除コマンドＤＣ１は正常でないが、特別である (例えば、ベンダーコマンド)。削除コマンドＤＣ１が受信される時、コントローラー４２０は別のプログラムコマンドＰＣ２をフラッシュメモリ４１０に伝送して、フラッシュメモリ４１０が、プログラムコマンドＰＣ１に応答してプログラムされた第一ページを、再プログラム、オーバープログラム、上書き、再書き込みできるようにする。これで、第一ページ中に保存されるデータが永遠に破壊される。すなわち、コントローラー４２０が設定されて、ＯＳのファイル割り当て表、または、コントローラー４２０のリンキング表を削除／更新するだけでなく、フラッシュメモリ４１０を上書き、または、オーバープログラムすることにより、データを破壊する。 
【００２８】
データ伝送方法、または、ある態様、または、それらの一部は、有形的表現媒体、たとえば、フレキシブルディスク、CD-ROMS、ハードドライバ、または、別の機械読み取り可能ストレージ媒体等で具体化されるプログラムコード (実行可能な命令)の形式を取り、プログラムコードがロードされ、コンピュータなどの機械により実行される時、機械は、方法を実施する装置になる。方法は、ある伝送媒体、たとえば、電気配線またはケーブル敷設で伝送されるプログラムコードの形式、または、別の形式の伝送で具体化され、プログラムコードが受信され、機械、たとえば、コンピュータによりロードおよび実行される時、機械は装置となって、開示方法を実施する。汎用プロセッサで実施される時、プログラムコードはプロセッサと結合して、特定応用向け論理回路に類似して操作する固有の装置を提供する。
【００２９】
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではない。当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができる。従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
【符号の説明】
【００３０】
１００  ストレージシステム 
１０２  ホスト
２００  データストレージデバイス
２１０  フラッシュメモリ
２２０  コントローラー
２２２  キー生成モジュール
２２４  暗号化/復号モジュール
２２６  キー消去モジュール
Ｒ１-ＲＮ  読み込みコマンド
Ｆ１-ＦＮ  ファイル
Ｆ１’-ＦＮ’暗号化ファイル
Ｃ１１-Ｃ１Ｎ  書き込みコマンド
Ｃ２１-Ｃ２Ｎ  消去コマンド
Ｋ１-ＫＮ  キー
４００  データストレージデバイス
４１０  フラッシュメモリ
４２０  コントローラー
４１０１-４１０Ｎ  ブロック
【図１】
2015172959.tif 000003
【図２】
2015172959.tif 000004
【図３】
2015172959.tif 000005
【図４】
2015172959.tif 000006
【手続補正書】
【提出日】平成27年6月18日(2015.6.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フラッシュメモリのアクセス方法であって、
ホストから書き込みコマンドおよび第一データを受信し、第一のプログラムコマンドを伝送して前記第一データを前記フラッシュメモリのブロックの複数の第一ページに書き込む工程と、
削除コマンドを受信して、前記ホストから前記第一データを削除する工程、および、
第二プログラムコマンドを伝送して、所定データを前記第一ページに書き込む工程、
具備するフラッシュメモリのアクセス方法。
【請求項２】
前記第一データが同じ前記第一ページに書き込まれる前記所定データによって破壊される、請求項１に記載の方法。
【請求項３】
フラッシュメモリのアクセス方法であって、
ホストから書き込みコマンドおよび第一データを受信する工程と、
第一プログラムコマンドを伝送して、前記第一データを前記フラッシュメモリのブロックの複数の第一ページに書き込む工程と、
削除コマンドを受信して、前記ホストから前記第一データを削除する工程、および、
第二プログラムコマンドを伝送して、前記第一ページをオーバープログラミングする工程、
を具備するフラッシュメモリのアクセス方法。
【請求項４】
前記第一データが、前記第一ページがオーバープログラミングされることによって破壊される、請求項３に記載の方法。