(57)【要約】再利用、新規ユーザへの再割り当て、またはデータ記憶装置の引退のために、データ記憶装置からファイルベースのプロトコルを使用してデータを消去する方法であって、データ記憶装置はファイルベースプロトコルを使用するメモリを含み、また、本方法は、メモリの少なくとも１つの選択された領域の利用可能な空き容量を表す１つ以上の信号を受信するステップと、ファイルベースのプロトコルを使用して、メモリの少なくとも１つの選択された領域にファイルを反復的に書き込むステップとを含み、ファイルのうちの少なくとも１つは受信された信号のうちの少なくとも１つに基づいてサイズ設定され、また、ファイルの反復的な書き込みには、シーケンスの少なくとも一部について、各ファイルがシーケンスの先行するファイルよりもサイズが小さくなるようにファイルを順に書き込むステップを含み、ファイルは、メモリの少なくとも１つの選択された領域の全てを集合的に占有するように書き込まれる方法であって、本方法は、更に、前記ファイルの書き込み後に、前記メモリの少なくとも１つの選択された領域が一杯であるという指示を受信するステップと、その指示に応答して、前記メモリの少なくとも１つの領域に少なくとも１つの更なるファイルを書き込むステップとを含む。【選択図】図１
2020503625.tif 000002
【特許請求の範囲】
【請求項１】
再利用、新規ユーザへの再割り当て、またはデータ記憶装置の引退のために、データ記憶装置からファイルベースのプロトコルを使用してデータを消去する方法であって、前記データ記憶装置はメモリを含み、前記方法は、
前記メモリの少なくとも１つの選択された領域の利用可能な空き容量を表す１つ以上の信号を受信するステップと、
前記ファイルベースのプロトコルを使用して、前記メモリの少なくとも１つの選択された領域にファイルを反復的に書き込むステップと、
を含み、
前記ファイルのうちの少なくとも１つは受信された信号のうちの少なくとも１つに基づいてサイズ設定され、前記ファイルの反復的な書き込みには、シーケンスの少なくとも一部について、各ファイルがシーケンスの先行するファイルよりもサイズが小さくなるように前記ファイルを順に書き込むステップを含み、
前記ファイルは、前記メモリの少なくとも１つの選択された領域の全てを集合的に占有するように書き込まれ、
更に、前記ファイルの書き込み後に、前記メモリの少なくとも１つの選択された領域が一杯であるという指示を受信するステップと、前記指示に応答して、前記メモリの少なくとも１つの領域に少なくとも１つの更なるファイルを書き込むステップとを含む、方法。
【請求項２】
前記選択された少なくとも１つの領域は、前記メモリのユーザパーティション、および／または前記装置のオペレーティングシステムおよび／またはファームウェア用に予約されていない実質的に全てのメモリを含む、請求項１に記載の方法。
【請求項３】
メモリの選択された領域の少なくとも一部からデータを読み込むステップと、
前記メモリに書き込まれるファイルの生成に使用されるデータセットの少なくとも１つのサブセットであって、前記少なくとも１つの部分に対応している前記少なくとも１つのサブセットを選択するために、記憶されているインデックス（単数または複数）を使用するステップと、
読み込まれた前記データを、対応しているデータの少なくとも１つのサブセットと比較するステップと、
を含む、検証処理を実行するステップを更に含む、請求項１または２に記載の方法。
【請求項４】
前記メモリに書き込まれるファイルの生成に使用されるデータはシードを使用して生成され、前記検証処理は前記シードを使用して前記データセットの少なくとも一部を再生成するステップを含む、請求項３に記載の方法。
【請求項５】
前記検証処理は、前記記憶されているインデックスおよび前記シードを使用して、メモリに書き込まれる前記ファイルの生成に使用されるデータセット全体を生成することなく、前記データセットのサブセットを再生成するステップを含む、請求項４に記載の方法。
【請求項６】
各ファイルはランダムに生成されたデータを含む、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
ファイルを反復的に書き込むステップは、更に、前記受信された１つ以上の信号に基づいて、１つ以上の反復的に書き込まれるファイルのサイズを縮小するステップを含む、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
前記受信された１つ以上の信号は利用可能な空き容量に対する要求に応答して生成され、また前記受信された信号はそれぞれ、利用可能な空き容量を表す各値を含む、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
ファイルの反復的な書き込みの前に、初期消去および／または解放手順を実行して、前記メモリの選択された少なくとも１つの領域からデータを消去し、および／または、前記選択された少なくとも１つの領域を解放してファイルを受信するステップを含む、請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
前記ファイルを生成するステップを含む、請求項１〜９のいずれか一項に記載の方法。
【請求項１１】
前記ファイルを生成するステップは、データセットの複数のサブセットを選択するステップと、各ファイルについて、前記複数のサブセットのうちの選択された１つを含むように前記ファイルを生成するステップとを含む、請求項１０に記載の方法。
【請求項１２】
前記サブセットが含まれるデータセットの部分を表すインデックスを記憶するステップを含み得る、方法。
【請求項１３】
前記データセットはランダムに生成されたデータセットを含み、前記サブセットは前記ランダムに生成されたデータセットの選択された部分を含む、請求項１２に記載の方法。
【請求項１４】
少なくとも１つのシードを使用して前記データセットおよび／または前記ファイルを生成するステップと、前記少なくとも１つのシードを記憶するステップとを含む、請求項１〜１３のいずれか一項に記載の方法。
【請求項１５】
前記検証処理は、前記ファイルが前記メモリに正確に書き込まれたことを検証し、および／または前記メモリの選択された少なくとも１つの領域のほぼ全部が占有されたことを検証する、請求項１〜１４のいずれか一項に記載の方法。
【請求項１６】
前記メモリに書き込まれたファイルに含まれていたデータを検索または再生成するステップを更に含む、請求項１５に記載の方法。
【請求項１７】
前記メモリの少なくとも１つの領域が一杯であるという前記指示に応答して、前記メモリの少なくとも１つの領域の少なくとも一部を解放するステップを更に含む、請求項１〜１６のいずれか一項に記載の方法。
【請求項１８】
前記更なるファイルの解放および書き込みが、複数回繰り返される、請求項１７に記載の方法。
【請求項１９】
前記データ記憶装置に、電話機、スマートフォン、タブレット、ラップトップコンピュータ、デスクトップコンピュータ、携帯用電子機器、音楽機器、および／またはビデオデバイスのうちの少なくとも１つを含む、請求項１〜１８のいずれか一項に記載の方法。
【請求項２０】
前記データ記憶装置に、ｉＯＳデバイス、またはＡｎｄｒｏｉｄデバイス、またはＷｉｎｄｏｗｓデバイス、またはＢｌａｃｋｂｅｒｒｙデバイスを含む、請求項１〜１９のいずれか一項に記載の方法。
【請求項２１】
前記メモリに、自己暗号化ドライブ（ＳＥＤ）、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、不揮発性メモリ、フラッシュメモリ、ＮＡＮＤフラッシュメモリまたはランダムアクセスメモリ（ＲＡＭ）のうちの少なくとも１つを含む、請求項１〜２０のいずれか一項に記載の方法。
【請求項２２】
インタフェースを介して前記装置および／または前記メモリに前記ファイルを提供するステップを含み、前記インタフェースは、シリアルＡＴＡ（ＳＡＴＡ）、パラレルＡＴＡ（ＰＡＴＡ）、スモールコンピュータシステムインタフェース（ＳＣＳＩ）、シリアルアタッチドＳＣＳＩ（ＳＡＳ）、ユニバーサルシリアルバス（ＵＳＢ）、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩ  ＥｘｐｒｅｓｓまたはＰＣＩｅ）、不揮発性メモリエクスプレス（ＮＶＭ  ＥｘｐｒｅｓｓまたはＮＶＭｅ）、ユニバーサルフラッシュストレージ（ＵＦＳ）、マルチメディアカード（ＭＭＣ）およびＲＳ−ＭＭＣ、ＭＤ−ＭＭＣ、ＤＶ−ＭＭＣ、ＭＭＣｐｌｕｓ、ＭＭＣｍｏｂｉｌｅ、ＳｅｃｕｒｅＭＭＣ、ｅＭＭＣを含むＭＭＣの変形並びにセキュアデジタルおよびＳＤＩＯ、ＳＤ、ｍｉｎｉＳＤ、ｍｉｃｒｏＳＤを含むセキュアデジタルの変形のうちの少なくとも１つに従って動作する、請求項１〜２１のいずれか一項に記載の方法。
【請求項２３】
前記ファイルはそれぞれ、最大ファイルサイズと最小ファイルサイズとの間のサイズであり、かつ、
ａ）前記最大ファイルサイズは１ＭＢ〜１００ＭＢの間、任意に５ＭＢ〜２０ＭＢの間、任意に実質的には１０ＭＢに等しい、または
ｂ）前記最小ファイルサイズは１００バイト未満、任意に１０バイト未満、任意に３バイト、２バイトまたは１バイトである、
のうちの少なくとも一方である、請求項１〜２２のいずれか一項に記載の方法。
【請求項２４】
前記ファイルはそれぞれ、最大ファイルサイズと最小ファイルサイズとの間のサイズであり、かつ、前記方法は、前記装置および／または前記メモリの性質またはアイデンティティ、および／または前記装置および／または前記メモリのオペレーティングシステムの性質またはアイデンティティ、および／または前記メモリまたは前記メモリの選択された少なくとも１つの領域のサイズのうちの少なくとも１つに応じて、前記最大ファイルサイズおよび／または前記最小ファイルサイズを選択するステップを含む、請求項１〜２３のいずれか一項に記載の方法。
【請求項２５】
ファイルベースのプロトコルを使用して、メモリを備えるデータ記憶装置からデータを消去するためのシステムであって、
データ記憶装置と、
データ消去装置であって、
前記メモリの少なくとも１つの選択された領域の利用可能な空き容量を表す１つ以上の信号を受信し、
前記ファイルベースのプロトコルを使用して、前記ファイルを前記メモリの少なくとも１つの選択された領域に反復的に書き込む
ように構成された処理リソースを備えるデータ消去装置と、
を含み、
前記ファイルのうちの少なくとも１つは、受信された前記信号のうちの少なくとも１つに基づいてサイズ設定され、また、前記ファイルの反復的な書き込みは、シーケンスの少なくとも一部について、各ファイルがシーケンスの先行するファイルよりもサイズが小さくなるように前記ファイルを順に書き込むステップを含み、
前記ファイルは、前記メモリの少なくとも１つの選択された領域の全てを集合的に占有するように書き込まれ、
前記方法は、更に、前記ファイルの書き込みに後に、前記メモリの少なくとも１つの選択された領域が一杯であるという指示を受信するステップと、前記指示に応答して、前記メモリの少なくとも１つの領域に少なくとも１つの更なるファイルを書き込むステップとを含む、システム。
【請求項２６】
ファイルベースのプロトコルを使用して、メモリを備えるデータ記憶装置からデータを消去するように構成されたデータ消去装置であって、
前記データ消去装置は、
前記メモリの少なくとも１つの選択された領域の利用可能な空き容量を表す１つ以上の信号を受信し、
前記ファイルベースのプロトコルを使用して、前記メモリの少なくとも１つの選択された領域にファイルを反復的に書き込むように構成された処理リソースを備え、
前記ファイルのうちの少なくとも１つは、受信された前記信号のうちの少なくとも１つに基づいてサイズ設定され、また、前記ファイルの反復的な書き込みは、シーケンスの少なくとも一部について、各ファイルがシーケンスの先行するファイルよりもサイズが小さくなるように前記ファイルを順に書き込むステップを含み、
前記ファイルは、前記メモリの少なくとも１つの選択された領域の全てを集合的に占有するように書き込まれ、
前記方法は、更に、前記ファイルの書き込み後に、前記メモリの少なくとも１つの選択された領域が一杯であるという指示を受信するステップと、前記指示に応答して、前記メモリの少なくとも１つの領域に少なくとも１つの更なるファイルを書き込むステップとを含む、データ消去装置。
【請求項２７】
請求項１〜２４のいずれか一項に記載の方法を実行するために実行可能であるコンピュータ可読命令を含む、コンピュータプログラム製品。
【請求項２８】
ファイルベースのプロトコルを使用して、メモリを備えるデータ記憶装置からデータを自動的に消去する方法であって、
前記メモリの少なくとも１つの選択された領域の利用可能な空き容量を表す１つ以上の信号を受信するステップと、
前記ファイルベースのプロトコルを使用して、ファイルを前記メモリの少なくとも１つの選択された領域に反復的に書き込むステップと、
を含み、前記前記ファイルのうちの少なくとも１つは受信された前記信号のうちの少なくとも１つに基づいてサイズ設定され、また前記ファイルは前記メモリの少なくとも１つの領域の全てを集合的に占有するように書き込まれる、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、データ記憶装置からデータを消去するのに使用するための方法および装置に関する。
【背景技術】
【０００２】
データ記憶装置を再利用する、新規のユーザに再割り当てする、または引退させる際に、機密データ等のデータをデータ記憶装置から削除することが望ましい場合がある。プライバシーおよびデータ保護法の強化に対する継続的な推進並びに関連する環境規制の導入により、データ記憶装置からデータを効果的に消去する重要性が高まった。
【０００３】
例えば、個人データや会社データ等の機密データを保持する何十億ものデバイスが流通している。このデータの保護に失敗した場合、プライバシーの問題が発生し、これは、データ保有資産の回収または廃棄時に、困難かつ法的に不確実な状況に繋がり得る。結果的に、潜在的な脅威を軽減し、情報漏洩の可能性を低減するためにセキュリティ対策が必要である。デバイスを再利用および／または引退させる前に、記憶されているデータを安全かつ効率的に消去する必要がある。実際、データ保護法、国内のデータセキュリティガイドライン、および環境規制がこの概念を支持している。
【０００４】
場合によっては、デバイスの再配置を容易にするために、ＩＴ資産処分（ＩＴＡＤ）サービスと呼ばれる産業用処理プラントが使用されており、多くの場合、１週間当たり何万ものデバイスを処理している。このような状況では、デバイスの価値が経時的に低下し、かつ処理プロセス中に必要とされるリソースコストが増加する故に、デバイスの処理速度は、リサイクル施設からの投資利益率にとって最も重要である。デバイスの安全な再配置はこの業界の重要な部分であり、またユーザデータを確実に削除することが廃棄処理の重要な部分である。
【０００５】
スマートフォンやタブレット等のモバイル技術に目を向けると、真っ先にデータを消去して再配置または引退させるための準備をする方法は、デバイスにインストールされているオペレーティングシステムを介して「ファクトリーリセット」オプションにアクセスすることである。ｉＯＳを実行しているデバイスの特定の例では、「全てのコンテンツおよび設定を消去する」機能を適切なメニューから選択することができる。同様に、同様の手順が他の電話プラットフォーム、即ち、Ａｎｄｒｏｉｄ、Ｗｉｎｄｏｗｓ、およびＢｌａｃｋｂｅｒｒｙでも提供されている。
【０００６】
多くの場合、デバイスを再調整する際に機能的なオペレーティングシステムを保持する必要があることは周知である。データ消去中にオペレーティングシステムが削除された場合、場合によっては、デバイスをオペレーティングシステムで再フラッシュする必要があり、デバイスを処理するのに必要な時間が追加される。製造元の保証も無効になる可能性があり、根付いているように見えるデバイスは転売を妨げられる可能性がある。従って、デバイスを再調整するための何らかのデータ削除処理は、オペレーティングシステムによって課される制限によって制限され得る。従って、多くの場合、オペレーティングシステムの内部データ消去プロセスを使用する必要がある。これは、例えば、メモリへの直接アクセスが利用できず、インストールされたオペレーティングシステムを介したアクセスのみが許可され得ることを意味する。
【０００７】
個々のユーザは、一般的に、インストールされているオペレーティングシステムの内蔵されたファクトリーリセットプロセスを使用して、アプリケーションデータ、記憶されているファイル、およびユーザ資格情報を含む全てのユーザデータを消去する。スマートフォン等のデバイスの開発者向けのファクトリーリセットプロセスは、どの技術コンソーシアムによっても標準化されておらず、または業界内で正式に合意されているものでもない。例えば、Ａｎｄｒｏｉｄオペレーティングシステムはこれらのプロセスに関するガイドラインを提供するが、電話開発者は必ずしもこれらのガイドラインに拘束されるわけではない。これらのガイドラインは、ファクトリーリセットが選択された際、電話機が実行する基本的なプロセスに関する見識を提供しない。適切なデータ消去を実行する場合もあれば、成功を報告する場合もあるが、電話機の内部のメモリチップ（即ち、ｅＭＭＣパッケージ）に物理的に記憶されているデータを実際に削除することは殆どない。従って、ユーザが、ファクトリーリセットプロセスがどれほど効果的であるかを確実に知ることは困難である。一方、ｉＯＳは、セキュリティプロセスに関するより多くの情報をユーザに提供する。しかしながら、他のモバイルプラットフォームおよび技術に対して同一または類似の問題が存在することになる。
【０００８】
既知のファクトリーリセットプロセスには暗号技術の利用が含まれ、ユーザデータを暗号化するために使用される（従ってユーザデータを解読するために必要とされる）暗号キーが消去されることによって、データを暗号的にアクセス不能とする。そのような技術は、デバイスのハードウェアに組み込まれた暗号化を含み、それ故、一旦起動されると、全ての記憶されたデータはデフォルトで暗号化される。全ての記憶されているデータに適用されるこのプロセスは、一般的には不可逆的である。
【０００９】
記憶装置に適用される暗号化手法はいくつかの問題を伴う。例えば、最近、ブルートフォースアタックがフルディスク暗号化のＡｎｄｒｏｉｄデバイスで成功していることが報告された。一般に、暗号技術は、例えば、技術の予見できない発展を通じて、回避されるかまたは将来的には破綻する可能性がある。研究者およびハッカーによる暗号を破るための継続的な方法論的試みと相まって、これは暗号の安全性に不確実性を生み出す。暗号システムが破綻しているという歴史的な例がある。ユーザの観点からは、デバイスのデータを暗号化することによりデバイスのパフォーマンスに悪影響を及ぼす恐れがある。適用された暗号化の品質、即ちデータの安全性の程度をユーザが判断するのは困難であり得る。更に、ユーザの観点から見ると、デバイスの使用開始時から、データの暗号化がオンになっているか否かを判断するのは困難であり得る。更に、暗号化手法は、以前の暗号化キーを完全かつ効果的に破壊するデバイスに依存している。プロセスによってデータが積極的に削除または上書きされることはない。従って、データが回復可能である故、キーを破壊する際のエラーは潜在的なセキュリティ違反をもたらす。
【００１０】
相手先商標製造会社によって実行される他の既知のファクトリーリセットプロセスは、実際に物理的に記憶されたデータを記憶装置から削除することなく、記憶装置上に記憶されたデータを無効にすることによって論理的にデータを削除するステップを含む。別のプロセスは、メモリ装置のユーザデータパーティションのコンテンツを空にするファームウェアコマンドを発行するステップである。しかしながら、ファイルを削除すると、オペレーティングシステムは、一般的に、関連付けられたテーブルからファイル名を削除するだけで、そのコンテンツは削除しない。重大なことに、ユーザは詳細については気付いておらず、ファクトリーリセットプロセスをほとんど制御できない。
【００１１】
記憶装置上のデータを消去するための別の既知のプロセスは、記憶されているデータを冗長なコンテンツで上書きすることである。一般的には、記憶装置上のデータは、インタフェースに関連した転送プロトコルを使用してアクセスされる。モバイルデバイスをアドレス指定する場合、転送プロトコルはメディアまたは他のファイルをデバイスに転送するように設計されている。このプロセスに関する顕著な問題として、不完全な上書きがセキュリティ上のリスクをもたらす点が挙げられる。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
要約すると、とりわけ、ファクトリーリセットプロセスへの依存から生じる問題を軽減するために、記憶装置上のデータを大規模に消去するための信頼性があり、好ましくはプラットフォームに依存しないプロセスを提供する必要がある。
【課題を解決するための手段】
【００１３】
本発明の第１の態様では、ファイルベースのプロトコルを使用して、メモリを備えるデータ記憶装置からデータを自動的に消去する方法が提供される。この方法は、メモリの少なくとも１つの選択された領域の利用可能な空き容量を表す１つ以上の信号を受信するステップと、ファイルベースのプロトコルを使用して、メモリの少なくとも１つの選択された領域にファイルを反復的に書き込むステップとを含み、ファイルのうちの少なくとも１つは受信された信号のうちの少なくとも１つに基づいてサイズ設定され、かつファイルはメモリの少なくとも１つの領域の全てを集合的に占有するように書き込まれる。
【００１４】
独立して提供され得る更なる態様では、データ記憶装置の再利用、新規ユーザへの再割り当て、または引退のために、データ記憶装置からファイルベースのプロトコルを使用してデータを消去する方法が提供される。データ記憶装置はメモリを含み、この方法は、メモリの少なくとも１つの選択された領域の利用可能な空き容量を表す１つ以上の信号を受信するステップと、ファイルベースのプロトコルを使用してメモリの少なくとも１つの選択された領域にファイルを反復的に書き込むステップとを含み、ファイルのうちの少なくとも１つは受信された信号のうちの少なくとも１つに基づいてサイズ設定され、ファイルの反復的な書き込みには、シーケンスの少なくとも一部について、各ファイルがシーケンスの先行するファイルよりもサイズが小さくなるようにファイルを順に書き込むステップを含み、ファイルは、メモリの少なくとも１つの選択された領域の全てを集合的に占有するように書き込まれる。任意に、本方法は、更に、前記ファイルの書き込み後に、メモリの前記少なくとも１つの選択された領域が一杯であるという指示を受信するステップと、この指示に応答して、メモリの前記少なくとも１つの領域に少なくとも１つの更なるファイルを書き込むステップとを含む。
【００１５】
選択された少なくとも１つの領域は、メモリのユーザパーティションおよび／または装置のオペレーティングシステムおよび／またはファームウェアのための予約されていない実質的に全てのメモリを含むことができる。本方法は、データ記憶装置をデータ消去装置に（例えば、有線または無線接続を介して）接続するステップと、例えばファイルをデータ記憶装置のメモリに書き込むためにデータ消去装置を使用して本方法を実行するステップとを含み得る。データ消去装置は、オペレータ端末、例えばＩＴ資産処分施設のオペレータ端末を含むか、その一部を形成するか、またはそれに接続することができる。
【００１６】
指示に応答して、少なくとも１つの更なるファイルを書き込むステップは、指示に応答して複数の更なるファイルを書き込むステップを含むことができ、そのうちの少なくとも一部は選択された異なるサイズを有する。この方法は、少なくとも１つの更なるファイルの書き込みを可能にするために、領域のうちの少なくとも一部を解放するステップを含み得る。少なくとも１つの更なるファイルは、データ記憶装置および／またはメモリに関連する少なくとも１つのバッファまたはキャッシュをフラッシュアウトするように選択されたサイズであり得る。少なくとも１つの更なるファイルは、デバイスおよび／またはメモリに関連する少なくとも１つのバッファまたはキャッシュのサイズに応じて選択されたサイズであり得る。指示は、少なくとも１つの選択された領域が一杯であることを表すかまたはそれに関連し得る任意の好適な指示であり得る。
【００１７】
本方法は、更に、検証処理を実行するステップを含み得る。検証処理は、メモリに書き込まれるファイルの生成に使用されるデータセットの少なくとも１つのサブセットを選択するために記憶されたインデックス（単数または複数）を使用して、メモリの選択された領域の少なくとも一部からデータを読み取るステップを含み得る。前記少なくとも１つのサブセットは、前記少なくとも１つの部分に対応する。検証処理は、更に、読み取られたたデータを対応する少なくとも１つのデータのサブセットと比較するステップを含むことができる。
【００１８】
メモリに書き込まれるファイルの生成に使用されるデータは、シードを使用して生成されてもよい。検証処理は、シードを使用してデータセットの少なくとも一部を再生成するステップを含み得る。
【００１９】
検証処理は、任意に、メモリに書き込まれるファイルの生成に使用されるデータセットの全体を生成することなく、前記記憶されたインデックスおよび前記シードを使用して、データセットのサブセットを再生成するステップ、またはサブセットのうちの選択された１つまたは一部を再生成するステップを含み得る。
【００２０】
少なくとも一部、任意に各ファイルは、ランダムに生成されたデータを含むことができる。
【００２１】
ファイルのサイズ設定は、ファイルのサイズを選択するステップを含み得る。メモリの少なくとも１つの領域を占有するステップは、メモリの少なくとも１つのメモリ領域を上書きするステップを含み得る。
【００２２】
ファイルを反復的に書き込むステップは、更に、受信された１つ以上の信号に基づいて、１つ以上の反復的に書き込まれるファイルのサイズを縮小するステップを含み得る。１つ以上のファイルのサイズを縮小するステップは、連続的により小さいファイルを書き込むステップを含み得る。
【００２３】
本方法は、ファイルを順に書き込むステップを含むことができ、シーケンスの少なくとも一部について、前記シーケンスの少なくとも一部の各ファイルは、シーケンスの先行するファイルよりもサイズが小さくてもよい。前記シーケンスの少なくとも一部は、シーケンスの最後の部分を含み得る。
【００２４】
本方法は、メモリの少なくとも１つの選択された領域が一杯であることを受信した信号が示すまで、前記１つ以上のファイルのサイズを縮小するステップを含み得る。
【００２５】
ファイルサイズは、ファイルシステムバッファの上書きを確実にするように選択されてもよい。
【００２６】
１つ以上の信号は、少なくとも１つのファイルを含み得る。１つ以上の信号は、利用可能な空き容量に対する要求に応答して生成されてもよく、受信された信号はそれぞれ利用可能な空き容量を表す各値を含む。利用可能な空き容量に対する要求は、ファイルが書き込まれた後に行われ得る。
【００２７】
信号は、ファイルベースのプロトコルおよび／または装置のオペレーティングシステムを使用して生成および／または要求され得る。受信した信号は、更に、データ記憶装置から送信された割り込み信号を含むことができる。
【００２８】
本方法は、ファイルの反復的な書き込み前に、初期消去および／または解放処理を実行して、メモリの選択された少なくとも１つの領域からデータを消去し、および／または選択された少なくとも１つの領域を解放してファイルを受信するステップを含むことができる。
【００２９】
メモリの選択された少なくとも１つの領域は、ユーザ記憶領域、例えばユーザパーティションを含むことができる。
【００３０】
選択された少なくとも１つの領域は、データ記憶装置のユーザが、例えばデータ、プログラム、画像、文書等のユーザ指定のコンテンツを書き込む許可を有するメモリの領域を含むことができる。選択された少なくとも１つの領域は、ユーザが、例えばデータ、プログラム、画像、文書等のユーザ指定のコンテンツを書き込む許可を有するメモリの実質的に全ての領域を含むことができる。選択された少なくとも１つの領域は、データ記憶装置のオペレーティングシステムおよび／またはファームウェア用に予約されていないメモリを含み得る。選択された少なくとも１つの領域は、装置のオペレーティングシステムおよび／またはファームウェア用に予約されていない実質的に全てのメモリを含むことができる。選択された少なくとも１つの領域は、記憶されたコンテンツがユーザによるデバイスの使用によって変化し得る１つ以上の、任意に全ての領域を含むことができる。
【００３１】
本方法は、ファイルを生成するステップを含み得る。
【００３２】
ファイルを生成するステップは、データセットの複数のサブセットを選択するステップと、各ファイルについて、複数のサブセットのうちの選択された１つを含むようにファイルを生成するステップとを含み得る。
【００３３】
サブセットのうちの少なくとも一部は、サブセットのうちの他の少なくとも一部とは異なる場合がある。サブセットはそれぞれ、他の各サブセットと異なり得る。各サブセットは、データセットの隣接部分または重複部分を含み得るか、またはデータセットの別個の部分を含み得る。サブセットのうちの少なくとも一部は、他のサブセットのうちの少なくとも一部とは異なるサイズであり得る。
【００３４】
本方法は、サブセットが構成されるデータセットの部分を表すインデックス、例えばポインタを記憶するステップを含むことができる。
【００３５】
少なくとも一部、任意に各ファイルは、ランダムに生成されたデータを含むことができる。
【００３６】
データセットはランダムに生成されたデータセットを含むことができ、サブセットはランダムに生成されたデータセットの選択された部分を含むことができる。
【００３７】
本方法は、ランダムなデータセットを生成するステップを含み得る。反復的に書き込まれるファイルは、生成されたランダムなデータセットのデータのサブセットを含み得る。
【００３８】
本方法は、少なくとも１つのシードを使用してデータセットおよび／またはファイルを生成するステップと、少なくとも１つのシードを記憶するステップとを含み得る。
【００３９】
本方法は、例えば検証目的のために、少なくとも１つのシードを使用してデータセットおよび／またはファイルを再生成するステップを含み得る。
【００４０】
反復的に書き込まれるファイルは、シードおよび記憶された一インデックスまたは記憶された複数のインデックスを使用して再現可能であり得る。この方法は、シードおよび記憶された一インデックスまたは記憶された複数のインデックスを使用して、選択された１つ以上のファイルのうちの少なくとも一部、任意に全てを再作成するステップを含み得る。
【００４１】
本方法は、ファイルがメモリに正確に書き込まれたことを検証するため、および／または、メモリの選択された少なくとも１つの領域のほぼ全てが占有されたことを検証するための検証処理を実行するステップを含み得る。
【００４２】
検証処理は、
メモリの選択された領域の一部からデータを読み取るステップと、
読み取られたデータと、メモリに書き込まれたファイルに含まれていたデータとを比較するステップと、
を含み得る。
【００４３】
本方法は、更に、メモリに書き込まれたファイルに含まれていたデータを検索または再生成するステップを含み得る。
【００４４】
本方法は、更に、インデックスおよび／または少なくとも１つのシードを使用してデータを検索または再生成するステップを含み得る。
【００４５】
この方法は、更に、前記ファイルの書き込みに続いて、前記メモリの少なくとも１つの領域が一杯であるという指示を受信するステップと、この指示に応答して、前記メモリの少なくとも１つの領域の少なくとも一部を解放し、前記メモリの少なくとも１つの領域に少なくとも１つの更なるファイルを書き込むステップとを含み得る。解放するステップには、任意にファイルベースのプロトコルを使用して、少なくとも１つのファイルを削除するステップおよび／または少なくとも１つのファイルに含まれるデータを削除するステップを含むことができる。
【００４６】
解放および更なるファイルの書き込みは、複数回繰り返されてもよい。繰り返しのうちの少なくとも一部については、任意に各繰り返しについて、更なるファイルのサイズおよび／またはコンテンツは異なってもよく、および／またはメモリの異なる部分が解放されてもよい。
【００４７】
データ記憶装置は、電話機、スマートフォン、タブレット、ラップトップコンピュータ、デスクトップコンピュータ、携帯用電子機器、音楽機器および／またはビデオ機器のうちの少なくとも１つを含み得る。
【００４８】
データ記憶装置は、任意の適切なデバイス、例えば、ｉＯＳデバイスまたはＡｎｄｒｏｉｄデバイスまたはＷｉｎｄｏｗｓデバイスまたはＢｌａｃｋｂｅｒｒｙデバイスを含むことができる。
【００４９】
メモリは、任意の適切なメモリ、例えば、自己暗号化ドライブ（ＳＥＤ）、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、不揮発性メモリ、フラッシュメモリ、ＮＡＮＤフラッシュメモリ、ランダムアクセスメモリ（ＲＡＭ）、３Ｄクロスポイント、抵抗変化型メモリ（ＲｅＲａｍ）、相変化メモリのうちの少なくとも１つを含み得るがこれらに限定されない。
【００５０】
この方法は、インタフェースを介して装置および／またはメモリにファイルを提供するステップを含むことができ、インタフェースは、任意の適切なインタフェースプロトコルまたはインタフェース規格、例えばシリアルＡＴＡ（ＳＡＴＡ）、パラレルＡＴＡ（ＰＡＴＡ）、スモールコンピュータシステムインターフェイス（ＳＣＳＩ）、シリアルアタッチドＳＣＳＩ（ＳＡＳ）、ユニバーサルシリアルバス（ＵＳＢ）、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩ  ＥｘｐｒｅｓｓまたはＰＣＩｅ）、不揮発性メモリエクスプレス（ＮＶＭ  ＥｘｐｒｅｓｓまたはＮＶＭｅ）、ユニバーサルフラッシュストレージ（ＵＦＳ）、マルチメディアカード（ＭＭＣ）およびＲＳ−ＭＭＣ、ＭＤ−ＭＭＣ、ＤＶ−ＭＭＣ、ＭＭＣｐｌｕｓ、ＭＭＣｍｏｂｉｌｅ、ＳｅｃｕｒｅＭＭＣ、ｅＭＭＣを含むＭＭＣの変形並びにセキュアデジタルおよびＳＤＩＯ、ＳＤ、ｍｉｎｉＳＤ、ｍｉｃｒｏＳＤを含むセキュアデジタルの変形のうちの少なくとも１つに従って動作することができる。
【００５１】
各ファイルは、最大ファイルサイズと最小ファイルサイズとの間のサイズであり得る。
【００５２】
最大ファイルサイズは、１ＭＢ〜１００ＭＢの間の範囲、任意に５ＭＢ〜２０ＭＢの間、任意に実質的には１０ＭＢに等しい範囲とすることができる。
【００５３】
最小ファイルサイズは、１００バイト未満、任意に１０バイト未満、任意に３バイト、２バイトまたは１バイトであり得る。
【００５４】
この方法は、装置および／またはメモリの性質またはアイデンティティ、および／または装置および／またはメモリのオペレーティングシステムの性質またはアイデンティティ、および／またはメモリのサイズまたはメモリの選択された少なくとも１つの領域のうちの少なくとも一つに応じて、最大ファイルサイズおよび／または最小ファイルサイズを選択するステップを含むことができる。
【００５５】
独立して提供され得る更なる態様では、ファイルベースのプロトコルを使用して、メモリを備えるデータ記憶装置からデータを消去するためのシステムが提供される。このシステムは、
データ記憶装置と、
データ消去装置であって、
メモリの少なくとも１つの選択された領域の利用可能な空き容量を表す１つ以上の信号を受信し、
ファイルベースのプロトコルを使用して、ファイルをメモリの少なくとも１つの選択された領域に反復的に書き込むように構成された処理リソースを含むデータ消去装置と、
を含み、ファイルのうちの少なくとも１つは受信された信号のうちの少なくとも１つに基づいてサイズ設定され、またファイルはメモリの少なくとも１つの領域の全てを集合的に占有するように書き込まれる。
【００５６】
独立して提供され得る別の態様では、ファイルベースのプロトコルを使用して、メモリを備えるデータ記憶装置からデータを消去するように構成されたデータ消去装置が提供され、
データ消去装置は、
メモリの少なくとも１つの選択された領域の利用可能な空き容量を表す１つ以上の信号を受信し、
ファイルベースのプロトコルを使用してファイルをメモリの少なくとも１つの選択された領域に反復的に書き込むように構成された処理リソースを含み、ファイルのうちの少なくとも１つは受信された信号のうちの少なくとも１つに基づいてサイズ設定され、またファイルはメモリの少なくとも１つの領域の全てを集合的に占有するように書き込まれる。
【００５７】
独立して提供され得る別の態様では、ファイルベースのプロトコルを使用して、メモリを備えるデータ記憶装置からデータを消去するためのシステムが提供され、このシステムは、
データ記憶装置と、
データ消去装置であって、
メモリの少なくとも１つの選択された領域の利用可能な空き容量を表す１つ以上の信号を受信し、
ファイルベースのプロトコルを使用して、ファイルをメモリの少なくとも１つの選択された領域に反復的に書き込むように構成された処理リソースを含むデータ消去装置と、を備え、
ファイルのうちの少なくとも１つは、受信された信号のうちの少なくとも１つに基づいてサイズ設定され、またファイルの反復的な書き込みは、シーケンスの少なくとも一部について、各ファイルがシーケンスの先行するファイルよりもサイズが小さくなるようにファイルを順に書き込むステップを含み、
ファイルは、メモリの少なくとも１つの選択された領域の全てを集合的に占有するように書き込まれ、
この方法は、更に、前記ファイルの書き込みに続いて、前記メモリの少なくとも１つの選択された領域が一杯であるという指示を受信するステップと、その指示に応答して、前記メモリの少なくとも１つの領域に少なくとも１つの更なるファイルを書き込むステップとを含む。
【００５８】
独立して提供され得る更なる態様では、ファイルベースのプロトコルを使用して、メモリを備えるデータ記憶装置からデータを消去するように構成されたデータ消去装置が提供され、
データ消去装置は、
メモリの少なくとも１つの選択された領域の利用可能な空き容量を表す１つ以上の信号を受信し、
ファイルベースのプロトコルを使用して、メモリの少なくとも１つの選択された領域にファイルを反復的に書き込むように構成された処理リソースを含み、
ファイルのうちの少なくとも１つは、受信された信号のうちの少なくとも１つに基づいてサイズ設定され、またファイルの反復的な書き込みは、シーケンスの少なくとも一部について、各ファイルがシーケンスの先行するファイルよりもサイズが小さくなるようにファイルを順に書き込むステップを含み、
ファイルは、メモリの少なくとも１つの選択された領域の全てを集合的に占有するように書き込まれ、
この方法は、更に、前記ファイルの書き込みに続いて、前記メモリの少なくとも１つの選択された領域が一杯であるという指示を受信するステップと、その指示に応答して、前記メモリの少なくとも１つの領域に少なくとも１つの更なるファイルを書き込むステップとを含む。
【００５９】
別の態様では、本明細書に請求または記載されている方法を実行するために実行可能なコンピュータ可読命令を含むコンピュータプログラム製品が提供される。
【００６０】
一態様における特徴は、他の態様における特徴として任意の適切な組み合わせで適用され得る。例えば、システムまたは装置の特徴は方法的特性として適用することができ、またその逆も可能である。
【００６１】
次に、本発明の様々な態様を、添付の図面を参照しながら、単なる例示として説明する。
【図面の簡単な説明】
【００６２】
【図１】図１Ａ及び図１Ｂは、データ記憶装置と通信するデータ消去装置の概略図である。
【図２】データ消去方法のフローチャートである。
【図３】メモリの複数のメモリアドレス内に記憶されたデータを示す説明図である。
【図４】データ検証方法のフローチャートである。
【発明を実施するための形態】
【００６３】
特定の実施形態は、ファイルベースの転送プロトコルへのアクセスをサポートして、全ての利用可能な容量が上書きされる可能性を最大化することができる、デバイスのストレージを上書きする方法に関する。いくつかの実施形態によれば、消去後にオペレーティングシステムがデバイス上に保持される。
【００６４】
最初に図１Ａを参照すると、データ記憶装置１０およびデータ消去装置２０が示されている。データ記憶装置１０およびデータ消去装置２０は、ファイルベースの転送プロトコルに従って、インタフェース３０を介して、その間のデータを転送するように構成されている。データ記憶装置は、例えば、モバイルスマートフォンまたはタブレット、あるいは他の任意の適切なデータ記憶装置であり得る。ファイルベースの転送プロトコルは、論理ファイルレベルで動作し、例えば、メディア転送プロトコル（ＭＴＰ）、画像転送プロトコル（ＰＴＰ）、Ａｐｐｌｅ  Ｆｉｌｅ  Ｃｏｎｄｕｉｔ（ＡＦＣ）、およびＵＳＢマスストレージであり得る。使用されるファイルベースの転送プロトコルは、特定のデータ記憶装置１０またはデータ記憶装置の種類に依存する。
【００６５】
データ記憶装置１０およびデータ消去装置２０を図１Ｂに更に詳細に示す。データ消去装置２０は図１Ａおよび図１Ｂでは単一の装置として表されているが、実際には、データ消去装置２０は、以下に記載するように、データ消去装置２０の機能を集合的に実行することができる複数の分散した別個の装置を含むことができる。また、データ消去装置２０は、データ記憶装置１０に隣接して配置されてもよく、またはデータ記憶装置１０から離れて配置されてもよい。
【００６６】
図１Ｂに示すように、データ記憶装置１０は、データ記憶用のメモリ１２と、データ記憶およびデータ消去動作を実行するためのソフトウェア、例えばファームウェア１４と、インタフェース３０を介してデータ消去装置２０と通信するための送受信機１６と、プロセッサ１８とを含む。図１Ｂには示されていないが、データ記憶装置１０は、メモリ１２に書き込まれるデータを圧縮するための、またはメモリ１２から読み込まれたデータを解凍するためのデータ圧縮機能を含むことができることを理解されたい。同様に、図１Ｂには示されていないが、データ記憶装置１０は、異なる時間に異なる物理メモリアドレスにデータを分配することによって、メモリ１２の寿命を延ばすためのウェアレベリング機能を含むことができることを理解されたい。データ記憶装置１０のメモリ１２は、自己暗号化ドライブ（ＳＥＤ）、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、不揮発性メモリ、フラッシュメモリ、ＮＡＮＤフラッシュメモリおよびランダムアクセスメモリ（ＲＡＭ）のうちの少なくとも１つを含むか、または少なくとも１つであり得る。
【００６７】
インタフェース３０は、インタフェース規格、例えばシリアルＡＴＡ（ＳＡＴＡ）、パラレルＡＴＡ（ＰＡＴＡ）、スモールコンピュータシステムインターフェイス（ＳＣＳＩ）、シリアルアタッチドＳＣＳＩ（ＳＡＳ）、ユニバーサルシリアルバス（ＵＳＢ）、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩ  ＥｘｐｒｅｓｓまたはＰＣＩｅ）、不揮発性メモリエクスプレス（ＮＶＭ  ＥｘｐｒｅｓｓまたはＮＶＭｅ）、ユニバーサルフラッシュストレージ（ＵＦＳ）、マルチメディアカード（ＭＭＣ）およびＲＳ−ＭＭＣ、ＭＤ−ＭＭＣ、ＤＶ−ＭＭＣ、ＭＭＣｐｌｕｓ、ＭＭＣｍｏｂｉｌｅ、ＳｅｃｕｒｅＭＭＣ、ｅＭＭＣを含むＭＭＣの変形並びにセキュアデジタルおよびＳＤＩＯ、ＳＤ、ｍｉｎｉＳＤ、ｍｉｃｒｏＳＤを含むセキュアデジタルの変形のうちの少なくとも１つに従って動作することができる。
【００６８】
図１Ｂにより詳細に示されるように、データ消去装置２０は、プロセッサ２２、メモリ２４、送受信機２６、およびユーザインタフェース２８を含む。データ消去装置２０は、サーバ、コンピュータ、およびラップトップのうちの少なくとも１つを含むか、または少なくとも１つであり得る。コンピュータ実行可能命令を含むホストアプリケーション２９はメモリ２４に記憶され、プロセッサ２２によって実行されると、データ消去装置２０に図２に示すデータ消去方法１００を実行させる。
【００６９】
あるいは、ホストアプリケーションのコンピュータ実行可能命令２９を、インタフェース３０を介してデータ記憶装置１０に転送し、データ記憶装置１０のメモリ１２に記憶することができる。この場合、プロセッサ１８は、データ記憶装置１０上にてコンピュータ実行可能命令２９を実行することができる。有利なことに、インタフェース３０を介してデータ消去装置２０とデータ記憶装置１０との間で転送されるデータの容量、および必要な帯域幅は、減少および／または最小化される。これは、同じデータ消去装置２０に接続された複数のデータ記憶装置を処理する際に特に重要である。例えば、このアプローチは、Ａｎｄｒｏｉｄオペレーティングシステムを実行するデータ記憶装置に適しているかもしれない。消去プロセスが完了すると、例えばプラットフォームパッケージマネージャを使用してアプリケーションを削除することができる。Ａｎｄｒｏｉｄオペレーティングシステムでは、アプリケーションは、「ｐａｃｋｅｔｍａｎａｇｅｒ  ｃｌｅａｒ」コマンドを使用してＡｎｄｒｏｉｄ  Ｄｅｂｕｇ  Ｂｒｉｄｇｅ（ａｄｂ）を介して削除することができる。
【００７０】
更なる代替として、ファイル処理は、データ消去装置２０とデータ記憶装置１０にインストールされたアプリケーションとの両方によって実行されてもよい。
【００７１】
図２の方法は、データ消去装置のホストアプリケーションの第１のアプローチを参照して説明されている。しかしながら、データ記憶装置１０のホストアプリケーションを伴うアプローチも同様に実施できることは明白なはずである。
【００７２】
図２は、自動データ消去方法１００を概略的に示すフローチャートである。方法１００は反復的である。最初に初期消去が実行されるか、または既に実行されており、可能な全てのメモリを解放する。ＷｉｎＰｈｏｎｅおよびｉＯＳでは、これはファクトリーリセット／再フラッシュにより実行され、代替的には、Ａｎｄｒｏｉｄにより全てのアプリケーション、パッケージ、およびユーザアカウントを消去する。ステップ１０２は、続いて実行される初期化ステップである。このステップは、データ記憶装置１０およびデータ消去装置２０が初期情報、例えばシステム構成情報を転送することができる処理を伴う。システム構成情報は、インタフェース３０を介してデータ記憶装置１０からデータ消去装置２０に転送される。転送される情報は、データ記憶装置１０上で動作しているオペレーティングシステムに関する詳細を含み得る。更に、メモリ１２の全量がデータ消去装置に送信される。この段階で、メモリ１２上の利用可能な容量のサイズについて要求を出すことができる。
【００７３】
ステップ１０４において、ホストアプリケーションは転送されるファイルを作成する。ファイルが作成され、ランダム化されたデータが格納される。ランダムデータファイルを作成するために、任意の乱数発生器を使用することができる。好ましくは、確定論的乱数発生器、例えば擬似乱数発生器（ＰＲＮＧ）を使用することができる。この場合、ファイルを生成するために少なくとも１つのシードが乱数発生器に供給される。Ｑｔの実装形態では、Ｑｔ関数Ｑｒａｎｄを使用することができる。更に、ファイルは特別な構造や関連するメタデータを有さない。ホストアプリケーションは、固有のハンドルファイル名およびファイルサイズに関する情報を使用して、個々のファイルを追跡および識別するためにファイルハンドルを使用する。代替的な実施形態では、任意の他の適切な乱数発生プロセスおよび／またはファイル処理プロセスを使用することができる。
【００７４】
あるいは、ファイルは、データ消去装置２０のメモリ２４に記憶されたより大きなデータセットからデータのサブセットを選択することによって作成されてもよい。例えば、作成されるファイルのサイズよりも大きい、ランダムデータで充填された転送バッファが、初期化ステップ１０２の間に、データ消去装置２０のメモリ２４に作成される。ステップ１０４は、転送バッファのサブセクションを選択するステップと、選択されたサブセクションを使用してファイルを作成するステップとを含む。ファイルは、後述するように、ファイルバッファのサブセクションをコピーすることによって作成される。
【００７５】
後でより詳細に説明されるように、ステップ１０４は、作成された各ファイルに対する参照インデックスを記録するステップを任意に含み得る。参照インデックスは、作成されたファイルを識別する転送バッファ内の位置を表す。参照インデックスは、ファイルが作成された転送バッファ内の位置を示す。従って、参照インデックスはポインタとして機能する。参照インデックスは、転送バッファのアドレスのオフセットであり得る。例えば、参照インデックスは、作成されたファイルにコピーされた選択されたサブセクションの開始点に対応し得る。しかしながら、参照インデックスは、ファイルの任意の部分を指すことができる。ステップ１０４は、作成されたファイルを後で再作成するために、生成されたファイルに対する１つ以上の参照インデックスを記憶するステップも含み得る。
【００７６】
作成されたファイルは、転送ファイルサイズの値に設定されたサイズを有する。転送ファイルサイズの値は、最初はファイルサイズの初期値と同じである。ファイルサイズの初期値は任意の値とすることができ、消去されるデバイスによる。ファイルサイズの初期値は、様々な方法で決定することができる。例えば、ユーザは、ユーザインタフェース２８を介してファイルサイズの初期値を設定することができる。あるいは、ファイルサイズの初期値は、１つ以上の異なるタイプのデータ記憶装置のどれが処理されているかに応じて、および／またはどのオペレーティングシステムがデバイスで実行されているかに応じて設定することができる。例えば、ｉＯＳを実行している電話機の場合、Ａｎｄｒｏｉｄを実行している電話機とは異なるファイルサイズの初期値を有し得る。この情報は、例えばルックアップテーブルに記憶することができる。方法１００が進むにつれて、転送ファイルサイズの値は変化する。
【００７７】
様々なファイルサイズの初期値を試験した。ＷｉｎｄｏｗｓデバイスおよびｉＯＳデバイスの場合、初期ファイルサイズは１０ＭＢである。この文脈では、ＭＢは２＾２０バイトである。試験の結果、このファイルサイズの初期値は最も速い消去プロセスを提供し、ファイルが小さいと処理が長くなり、またファイルが大きいと速度が向上しないことが判明した。Ａｎｄｒｏｉｄデバイスの場合、初期ファイルサイズを１００ＭＢとして選択する。
【００７８】
プロセス１００の次のステップは、作成されたファイルをデータ記憶装置１０に転送するステップを伴うステップ１０６である。ファイル転送プロトコルを使用して、データ消去装置２０からインタフェース３０を介してファイルを転送する。このステップは、データ記憶装置１０によりファイルを受信するステップと、プロセッサ１８によりファームウェア１４を介してメモリ１２にファイルを書き込むステップとを含む。転送プロトコルは、ファイルと共に追加の情報を転送することができる。例えば、少なくとも１つのヘッダおよび／またはフッタおよび／または追加のメタデータが転送される。この追加情報は転送中にのみ使用され、メモリには書き込まれない。
【００７９】
ファイル転送に続いて、メモリ１２上の利用可能な容量を求める要求１０８がホストアプリケーションによって行われる。この要求は、データ消去装置２０からデータ記憶装置１０へインタフェース３０を介して送信される信号を含む。ファームウェア１４を介して、プロセッサ１８によりメモリ１２上の利用可能な容量をチェックする。メモリ１２内の利用可能な空き容量を示す値を含む応答信号が、データ記憶装置１０からホストアプリケーション２９に送信される。応答信号はデータ消去装置２０によって受信される。
【００８０】
利用可能な空き容量は、消去プロセス中に書き込まれたデータの累積サイズとプロセス開始時の総アクセス可能容量とを使用して計算される。この計算の精度は、使用されるデバイスおよびプロトコルの特定の実装から生じる最小サイズの解像度によって制限される可能性がある。
【００８１】
任意に、例えば閾値、例えば予め設定された閾値に到達した場合、または信号がデータ記憶装置１０から受信された場合等、トリガイベントの後にのみ要求が送信されてもよい。一例として、初期化ステップ１０２において交換された総メモリ値および空きメモリ値を使用して閾値を設定することができる。従って、転送された全てのファイルの合計サイズが閾値に達するか、または閾値より大きい場合、データ消去装置２０は、ステップ１０８にて、利用可能な容量値の要求を開始することができる。有利なことに、これは、転送される全ファイルの合計サイズがメモリ１２のサイズに近づくときにのみ発生する要求ステップを制限する。あるいは、トリガイベントは、データ消去装置２０に利用可能な容量が少なくなっていることを知らせるデータ記憶装置１０から送信される信号であり得る。
【００８２】
いくつかの実施形態では、残りの空き容量についてのクエリは、各書き込み操作後に送信される。
【００８３】
要求ステップ１０８に続いて、データ消去装置２０のプロセッサ２２によって処理ステップ１１０が実行される。処理ステップは、合計サイズ転送値をアップデートするステップを含む。処理ステップはまた、利用可能な容量信号を処理するステップも含む。利用可能な容量信号を処理するステップは、利用可能な容量値を抽出するステップと、利用可能な容量値を既に転送されたファイルの合計サイズと比較して、メモリが一杯であるか否かの指示を提供するステップとを伴う。処理ステップ１１０はまた、現在のファイル転送サイズをメモリ１２の利用可能な容量と比較して、現在のファイル転送サイズを有する更なるファイルが転送されるのに十分な容量があるか否かを示すステップも含む。現在のファイル転送サイズをメモリ１２の利用可能な容量と比較するステップは、メモリが一杯でない場合にのみ実行され得る。
【００８４】
比較結果に応じて、処理ステップ１１０に対する３つの結果が考えられる。
【００８５】
第１の結果はメモリが一杯である場合に生じ、この場合、方法１００はステップ１１２に進む。
【００８６】
２番目の結果はメモリが一杯ではなく、現在のファイル転送サイズを有する更なるファイルを転送するのに十分な容量がある場合に発生する。この場合、本方法はステップ１０４に戻り、現在のファイル転送サイズと等しいサイズを有する新規のファイルを生成する。続いて、方法１００は反復的に進行する。
【００８７】
３番目の結果はメモリが一杯ではなく、現在のファイル転送サイズを有する更なるファイルを転送するのに十分な容量がない場合に生じ、この場合、ファイル転送サイズの値はより小さいファイル転送サイズの値にアップデートされる。この場合、本方法はステップ１０４に戻り、新しいファイル転送サイズと等しいサイズを有する縮小ファイルを生成する。
【００８８】
いくつかの実施形態では、デバイスによって返される利用可能な空き容量の値が現在のファイル転送サイズ値よりも小さい場合、転送サイズの値はデバイスによって返される利用可能な空き容量の値に等しくなるように設定される。このサイズのファイルを転送した後、ファイル転送サイズ値はより小さいファイル転送サイズ値にアップデートされる。いくつかの実施形態では、利用可能な空き容量に等しいサイズを有するファイルの転送後に利用可能な容量を埋めるために必要とされる、反復的により小さいファイルの数は、約２０であり得る。
【００８９】
いくつかの実施形態では、満杯になるデバイスの応答時間が遅いことに起因して、利用可能な容量の要求が時々タイムアウトになることがある。タイムアウトは装置によって登録することができる。タイムアウトの場合には、同じファイル転送サイズまたはより小さいファイル転送サイズの更なるファイルが装置によって送信され、続いて利用可能な容量についての更なる要求が送信されてもよい。タイムアウト後、行動は信頼できないかもしれない。いくつかの実施形態では、タイムアウトに続いて、少なくとも部分的に、デバイスをリセットし、および／または消去プロセスを再開するように、フェイルセーフモードが実行されてもよい。
【００９０】
プロセッサステップ１１０はデータ消去装置のプロセッサ２２上でのみ生じるように説明されているが、代替的な実施形態も可能である。例えば、現在のファイル転送サイズと、メモリ１２上の利用可能な容量との比較は、データ記憶装置のプロセッサ１８上で生じてもよい。
【００９１】
あるいは、現在のファイル転送サイズを有する更なるファイルを転送するのに十分な容量がないとの表示は、データ記憶装置１０からデータ消去装置２０に送信される割り込み信号の形態でもよい。割り込み信号はホストアプリケーションによって送信される。割り込み信号は、ファイルの書き込みを試みた後、即ちステップ１０６の後かつステップ１０８の前に送信することができる。この場合、割り込み信号は処理ステップ１１０の一部として受信され処理される。こうした割り込みの一例として、Ａｎｄｒｏｉｄオペレーティングシステムを実行し、メディア転送プロトコルを使用して、別個のＵＳＢチャネルを介してデータ消去装置に割り込み信号を送信するデバイスの割り込みが挙げられる。
【００９２】
方法１００は反復的である。ファイルベースの転送プロトコルのおかげで、後に書き込まれるファイルは重複しない。反復的な方法１００は、全ての利用可能なメモリ容量を満たす。
【００９３】
１つのファイルのメモリへの書き込みとは対照的に、反復的にファイルを書き込むことにより、転送されるバイト数を低減させるという利点を提供し、かつジャーナリングファイルシステムに独自に割り当てられたバッファを上書きさせることができる。更に、複数のファイルを書き込むことで、オーバープロビジョニングがより効果的になる。
【００９４】
最後の反復は、最小ファイル転送サイズのファイルを転送するステップを伴い得る。最小転送ファイルサイズは、シングルバイトまたは任意の他の適切な最小サイズに等しくてもよい。このサイズのファイルをメモリ１２に転送することができない場合、本方法はステップ１１２に進む。反復的方法１００は、メモリ１２のアドレス指定可能な容量全体が上書きされ、それによって、メモリ１２の以前のコンテンツが全てアクセス不能となり、従って消去されたことを確実にすることができる。
【００９５】
データ記憶装置１０は、要求された信号または割込み信号のいずれかを介して利用可能な容量がゼロであることを最初に報告し得るが、それでもなお実際にはいくらかのデータを受け入れることができる。これは、利用可能な容量の計算がデバイスの解像度によって制限されている状況で発生し得る。簡単な例として、デバイスが残り５１１バイトを有しているが、ブロックサイズが５１２バイトである例が挙げられる。実装されているデバイスおよびプロトコルに応じて、デバイスからの信号は、この状況では０バイトの空きがあることを示し得る。従って、この状況では、５１１バイトの空きがあっても、信号は利用可能な容量がないと反映し得る。従って、いくつかの実施形態では、メモリが一杯であることが示されていても、本方法は最初の拒絶後に停止せず、更なるファイル書き込み動作を実行し得る。試験により、満杯であると報告された一部のデバイスがより多くのデータを受け入れ続けることを示した。
【００９６】
本方法１００の追加の任意のステップ（図示せず）は、ステップ１１２の後に行われる。このステップにおいて、メモリ１２の一部は、方法１００を用いて書き換えられるようにマークされる。この部分は設定サイズ、例えば１００ＭＢとすることができる。ファイル転送プロトコルを使用して１つ以上のファイルを削除することによってその部分を解放することができ、ファイル書き込みプロセスが再度やり直される。
【００９７】
メモリの一部への書き換えにより、一部のファイルがメモリに完全に書き込まれず、代わりに転送バッファ、他のバッファ、またはキャッシュに保持されるリスクを低減することができる。例えば、実際に容量が利用可能であった場合に、割り込み信号によりファイルがメモリに完全に書き込まれるのを防ぐことができる。これにより、メモリ内の全てのデータが上書きされるわけではなく、従って一部のデータが回復可能であり得る故、セキュリティ上のリスクをもたらす。また、ホストアプリケーションに直接アクセスできないオーバープロビジョニング領域が存在する可能性がある。また、デバイス内のファイルシステムがブロック当たり１つのファイルしか許可しないというリスクもある（例えば、５１２バイトごとに１つのファイルのみ）。プロセス１００を繰り返すことによって、これらのリスクは軽減され得る。この方法でデータを書き込み続けると、メモリ容量領域を使用中にするか、または少なくともこの挙動が促進され得る。プロセス１００は、データの異なるマーク付けされた部分に対して複数回繰り返すことができる。これにより、確実に可能な限り多くのデータがメモリ１２に書き込まれ、かつ、いかなるキャッシュもデバイスにフラッシュされる。例えば、解放および書き換えは、設定された回数だけ繰り返すことができ、または反復の回数は、全ストレージのうちの特定の割合（例えば、２５％）が書き換えられるように計算することができる。
【００９８】
ファイル転送プロトコルを介してファイルを転送することにより、デバイスおよび／またはファイル転送プロトコルの性質および／またはメモリまたはデバイスにおける何らかの障害によっては、予期しない動作が発生する可能性がある。従って、インタフェースを介して送信されるデータが実際にメモリ１２に書き込まれていることを確実にするために追加のステップが必要となる場合がある。
【００９９】
そのような追加の検証ステップをプロセス１００に追加することができる。いくつかの実施形態では、検証は転送される一組の固有ファイルの作成に基づくことができる。転送ファイルの固有性により、転送ファイルの検証が可能となる。固有ファイルを作成するための一アプローチとして、ランダムファイルを作成するために使用されるメモリ２４内に作成された転送バッファが、メモリ１２を満たすのに十分な数の固有ファイルを作成するのに十分に大きいサイズであることを保証するアプローチが挙げられる。転送バッファのサイズは、ターゲットメモリのサイズに依存する。例えば、大きな転送ファイルのサイズは、メモリ１２のサイズに初期転送ファイルサイズを加えて、初期転送ファイルサイズで割ったサイズに等しく設定してもよい。上記の例では、初期転送ファイルサイズは１０ＭＢである。これにより、ファイルバッファから作成され、メモリに書き込まれる各ファイルが、デバイスの観点から見て以前に作成し、書き込まれたファイルとは異なることが保証される。その場合、ファイルバッファは、メモリ１２を完全に一杯にする一組の固有ファイルを作成するのに十分な大きさである。
【０１００】
ランダムなデータを格納された転送バッファファイル２００の部分説明図である。ファイルサイズを有する作成ファイル２０２の一例を概説する。作成ファイル２０２は、転送バッファファイル２００のサブセクションの選択を含む。作成ファイル２０２のコンテンツは、開始点２０４と終了点２０６とを有する。作成ファイルのコンテンツは、開始点２０４と終了点２０６との間のサイズを有する。
【０１０１】
作成ファイルの選択されたサブセクションは、周期的な境界を有することができる。ファイルが完全に作成される前に転送バッファの終わりに達した場合、ステップ１０４は転送バッファの先頭からデータを取り始める。換言すると、終了点２０６ではない選択されたサブセクションのバイトが転送バッファの最後のバイトと一致する場合、作成ファイルに使用される次のバイトは転送バッファの最初のバイトと一致する。説明的な例として、１２バイトのサイズの大きいバッファは、［ＡＢＣＤＥＦＧＨＩＪＫＬ］として表される。ファイル転送サイズが５バイトの場合、［ＡＢＣＤＥ］、［ＢＣＤＥＦ］、［ＣＤＥＦＧ］、［ＤＥＦＧＨ］、［ＥＦＧＨＩ］、［ＦＧＨＩＪ］、［ＧＨＩＪＫ］、［ＨＩＪＫＬ］、［ＩＪＫＬＡ］、［ＪＫＬＡＢ］、［ＫＬＡＢＣ］、および［ＬＡＢＣＤ］に対応して作成することができる固有の単一ファイルが１２個ある。例示的な例は、１バイトの増分を有する。有利には、増分は、データ記憶装置１０による同様のデータを含むファイルの識別を防ぐための小さな素数である。
【０１０２】
図３に戻ると、開始点２０４はファイル２０２の参照インデックスを示す。参照インデックス２０４により、ファイルを転送バッファから再作成することができる。全ての転送ファイルの参照インデックスを記憶することにより、全ての転送されたファイルを後に転送バッファから再作成することができる。
【０１０３】
図４は、図１の方法１００の完了後に実施することができる検証プロセス４００を示す。検証プロセス４００は、ステップ１０４の間に生成されたファイルの参照インデックスが上述したように記憶されることを必要とし、また、このプロセスは、転送バッファを生成するために使用される転送バッファまたはランダムシードへのアクセスも必要とする。併せて、作成されたファイルの記憶された参照インデックスおよび記憶されたランダムシードにより、実際の転送バッファを参照せずに全ての作成ファイルを再作成することができる。有利なことに、これにより、転送バッファ自体を記憶する必要がない故に、検証プロセスのために記憶される必要があるデータ量を減少させる。
【０１０４】
ステップ４０４において、メモリ１２のチェック部分を検索する要求がデータ記憶装置１０に送信される。要求はチェック部分識別子を含む。要求は、インタフェース３０を介してデータ消去装置２０から送信される。チェック部分識別子を使用して、プロセッサ１８によりファームウェア１４を介してメモリのチェック部分を探し出して検索する。チェック部分のコンテンツは、検証のためにインタフェース３０を介してデータ消去装置２０に返される。
【０１０５】
ステップ４０４は、ファイルレベルまたは物理メモリレベルへの直接アクセスで実施することができる。ファイルレベルにて動作する場合、チェック部分識別子はファイル名または他の適切なファイル識別子であり得、要求はファイルベースの転送プロトコルを使用して送信され得る。次に、プロセッサ１８はファイルを検索し、ファイルベースの転送プロトコルを介してファイルをデータ消去装置に返す。
【０１０６】
あるいは、メモリへの直接アクセスを使用して、チェック部分識別子は、物理メモリ内のチェック部分の開始点に対応する値およびチェック部分サイズを含み得る。チェック部分サイズ値は、一定サイズでも可変でもよく、例えば、各チェック部分の開始点は関連するチェック部分サイズを有することができる。ファームウェア１４を介してプロセッサ１８は、チェック部分の開始点を探し出し、チェック部分サイズ値に等しいサイズを有する、チェック部分サイズから始まるメモリ１２のコンテンツをコピーする。そのコンテンツは、インタフェース３０を介してデータ消去装置２０に返される。
【０１０７】
検証プロセスは、メモリ１２のコンテンツのサブセットのみが検証される部分検証プロセスであり得る。この場合、チェック部分識別子の集合体が生成される。チェック部分識別子の集合体はランダムに生成されてもよい。完全な検証のためには、アクセス可能なメモリ１２の全てのコンテンツが検証されなければならない。この場合、チェック部分識別子の集合体は、検索されたチェック部分がメモリ１２全体に及ぶように選択されなければならない。ファイルベースの実施形態では、全てのファイルが検索されなければならない。直接アクセスによる埋め込みでは、チェック部分の開始点およびチェック部分の長さは、メモリのコンテンツ全体に及ぶように選択しなければならない。
【０１０８】
ステップ４０６にて、検索されたチェック部分に対応する転送バッファファイルの部分が、記憶されている参照インデックスを使用して再作成される。これは様々な方法で実施することができる。
【０１０９】
ファイルベースの転送の実施においては、ファイル識別子に対応する記憶された参照インデックスを検索することができる。参照インデックスを使用して、転送バッファの関連部分を選択し検索することができる。
【０１１０】
直接メモリアクセスの実施形態では、関連部分は、チェック部分の開始点、チェック部分の開始長さ、および参照インデックスを使用して検索される。
【０１１１】
再作成部分は、転送バッファ全体から、または転送バッファの一部から生成することができる。例えば、転送バッファが方法１００に従ってメモリ内に保持されている場合、転送バッファの関連部分は記憶されている参照インデックスを使用して再作成することができる。あるいは、転送バッファが方法１００に従ってデータ消去装置２０のメモリ２４に保持されていない場合、記憶されたランダムシードを使用してコピーをメモリ２４に再作成し、転送バッファの関連部分はチェック部分の開始点を使用して検索することができる。
【０１１２】
ステップ４０８にて、検索されたチェック部分のコンテンツと再作成部分のコンテンツとが比較される。比較が成功すると両方の部分のコンテンツが一致し、その比較結果が記憶される。チェック部分のコンテンツが対応する再作成部分のコンテンツと一致しない場合、メモリ１２の上書きされていない領域が見つかる。
【０１１３】
ステップ４１０は、検査すべき更なるチェック部分があるか否かに基づいて、更なる部分の比較が行われるべきか否かを判定する。更なる比較がなされるべきである場合、本方法はステップ４０４に戻り、そこで次のチェック部分が読み取られる。更なる部分を比較する必要がない場合、プロセスはステップ４１２に続く。一実施形態では、ステップ４０８にて比較が不成功であった場合の後、チェック部分の更なる比較を行わないと決定して、プロセスがステップ４１２に進む。
【０１１４】
ステップ４１２は、記憶された比較結果を調査する。全ての比較が成功した場合、検証プロセスの肯定的な結果に対応する、メモリ１２の上書きされていない領域は見つからなかった。少なくとも１つの比較が成功しなかった場合、検証プロセスの否定的な結果に対応する、メモリ１２の少なくとも１つの上書きされていない領域が発見された。
【０１１５】
図４の検証プロセスは、上書きされる全てのデバイスが検証されるわけではない処理環境で実施され得る。そのような環境では、消去プロセスは高いスループットを有することができる。検証プロセスは、シードのみを記憶する必要がある故、各デバイスのための各転送バッファを記憶するための関連する記憶要件なしにデバイスを検証する手法を提供する。ファイルバッファのランダムデータは記憶される必要はなく、ホストは要求に応じてランダムデータを再作成することができる。更に、参照インデックスが記憶される。ターゲットメモリの全てのコンテンツを比較する記憶された参照インデックスを使用することで検証をより速めることができる。後に転送バッファを再作成することができる能力はまた、消去ステーションとは異なる物理的位置での検証を実行可能にする。
【０１１６】
処理環境では、上書き処理の直後に図４の検証処理を実施することができる。代替的な実施形態では、デバイスはランダムに選択され、主生産ラインから離れて検証される。
【０１１７】
プロセス４００の実施例を、デバイス上の６４ＧＢのメモリの消去に関連して説明する。ファイル転送バッファは、固有の転送ファイルのセットを提供するために少なくとも１０Ｍｂ＋６４００バイトである必要がある。上書き処理に続いて、１００個のランダムに選択されたチェック部分開始点および例えば１ｋＢのチェック長を用いて、部分検証プロセスを実施することができる。従って、それぞれが１ｋＢのサイズを有する１００個のチェック部分が、６４ＧＢのメモリからデータ消去装置によって検索される。記憶されたシードを使用して、ファイル転送バッファのコピーを生成することができ、記憶された参照インデックスを使用して、１００個のチェック部分に対応した転送バッファの部分を再作成することができる。この１００個の再作成された部分の集合体は、転送プロセスが成功したことを検証するために１００個の検索されたチェック部分と比較される。
【０１１８】
当業者は、本発明から逸脱することなく、含まれる構成の変形形態が可能であることを理解するであろう。例えば、作成されたファイルおよび転送バッファはランダム化されたデータを格納されるものとして説明したが、ファイルおよび／または転送バッファを書き込むために代替データパターンを生成し使用することができる。このような代替データパターンには、０ｘＦＦや０ｘ００等の繰り返しバイトパターンが含まれる。更に、検証プロセスのステップは、上書きプロセス中に実施することができる。非限定的な例として、書き込まれたファイルは、書き込まれた直後に、および／またはメモリが満杯であると報告する前の任意の時点で検証されてもよい。従って、特定の実施形態の上記の説明は単なる例示であり、限定を目的としたものではない。記載された動作に大きな変更を加えることなく、僅かな修正を加えることができることは当業者には明らかであろう。
【図１】
2020503625.tif 000003
【図２】
2020503625.tif 000004
【図３】
2020503625.tif 000005
【図４】
2020503625.tif 000006
【国際調査報告】
2020503625.tif 000007
2020503625.tif 000008
2020503625.tif 000009