JP2015528159A - 記憶装置に格納されたデータを消去する装置、システム、方法及びコンピュータプログラム - Google Patents

記憶装置に格納されたデータを消去する装置、システム、方法及びコンピュータプログラム Download PDF

Info

Publication number
JP2015528159A
JP2015528159A JP2015519268A JP2015519268A JP2015528159A JP 2015528159 A JP2015528159 A JP 2015528159A JP 2015519268 A JP2015519268 A JP 2015519268A JP 2015519268 A JP2015519268 A JP 2015519268A JP 2015528159 A JP2015528159 A JP 2015528159A
Authority
JP
Japan
Prior art keywords
data
incompressible
storage device
blocks
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015519268A
Other languages
English (en)
Other versions
JP6093014B2 (ja
Inventor
ベイセネン キム
ベイセネン キム
ラリ ラウリ
ラリ ラウリ
ブレウ ヨナサン
ブレウ ヨナサン
Original Assignee
ブランコ オサケユイチア リミティド
ブランコ オサケユイチア リミティド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=48985784&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2015528159(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by ブランコ オサケユイチア リミティド, ブランコ オサケユイチア リミティド filed Critical ブランコ オサケユイチア リミティド
Publication of JP2015528159A publication Critical patent/JP2015528159A/ja
Application granted granted Critical
Publication of JP6093014B2 publication Critical patent/JP6093014B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • G06F11/2635Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers using a storage for the test inputs, e.g. test ROM, script files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データ記憶装置に格納されたデータを消去する手法を提供する。【解決手段】手法を、装置として、方法として、システムとして又はコンピュータプログラムとして提供することができる。手法は、予め決定された基準を満たす非圧縮性データのシーケンスを取得することであって、予め決定された基準は、予め決定された基準を満たす非圧縮性データのシーケンスの圧縮性又は非圧縮性を表す統計的尺度を備え、非圧縮性データのシーケンスは、非圧縮性データの一つ以上のブロックに分割され、非圧縮性データの一つ以上のブロックのサイズの和は、データ記憶装置の記憶容量以上であることと、データ記憶装置に対して、データ記憶装置に現在格納されているデータを上書きするために記憶用の非圧縮性データの一つ以上のブロックを提供することと、を備える。【選択図】図4

Description

本発明は、記憶装置に格納されたデータを消去する装置、システム、方法及びコンピュータプログラムに関する。特に、本発明の例示する実施の形態は、SSD記憶装置に格納されたデータを信頼できる方法で消去する方法、装置、システム及びコンピュータプログラムに関する。
高いレベルのセキュリティを要求するエリア、すなわち、政府機関又は軍事機関は、特定のレベルの脅威エージェントによって検索できないように記憶装置からデータを安全に消去する手法を要求する。民間事業及び他のユーザは、不揮発性メモリからのデータの不十分な除去により機密情報が別の人によってアクセス可能にならないことを確認する意欲を保持することもあり得る。さらに、プライバシー及びデータ保護法案の継続的な採用は、個人情報又は機密情報の安全な方法での消去にますます移行することを意味する。
磁気ハードディスク又はUSBペンドライブのような記憶装置からのデータ復元を安全に防止するための一般的な方法は、予め決定された上書きパターンを用いてディスクのアドレス指定可能な部分の全てに少なくとも一回上書きすることである。そのようなデータの上書きに対する多くの規格が存在し、これらの規格は、国家機関及び/又は軍事機関の異なるセキュリティ要求及び情報に要求されるセキュリティの知覚レベルの解釈、例えば、「極秘」又は「機密」に基づく。大抵の場合におけるデータの上書きによって、消去プロセス後の記憶装置の継続的な使用が可能になり、これは、継続的な使用による利点としてディスクを物理的に破壊することより更に価値がある。
ストレージ技術におけるここ数年を超える開発は、ソリッドステートドライブ(SSD)を大量市場に提供した。磁気ハードディスクとは異なり、SSDは、典型的には、可動部に依存しないNANDフラッシュベース半導体装置である。SSDが非常に長い期間存在していないので、セキュリティ態様の開発及び装置を制御するために要求される統一基準の遷移期間は今も続いている。一例として、“Reliably Erasing Data From Flash−based Solid State Drives”の表題のWei等からの最近の研究において出版された実験によって得られるデータは、全てのSSD製造者がSSDの関連のあるコマンドセット(すなわち、SCSI又はATA)の完全な実現に成功していないと結論を出し、これによって、(一つ以上の)データ消去コマンドの一貫性のない成功によってデータのセキュリティの脆弱性が生じうる。
本発明の目的は、SSDのようなデータ記憶装置に記憶されたコンテンツを効果的かつ確実に消去する手法を提供することである。
本発明の第1の態様によれば、データ記憶装置に格納されたデータを消去するデータ消去装置を提供し、データ消去装置は、予め決定された基準を満たす非圧縮性データのシーケンスを取得するように構成したデータ提供部であって、非圧縮性データのシーケンスは、非圧縮性データの一つ以上のブロックに分割され、非圧縮性データの一つ以上のブロックのサイズの和は、データ記憶装置の記憶容量以上であるデータ提供部と、データ記憶装置に対して、データ記憶装置に現在格納されているデータを上書きするために記憶用の非圧縮性データの一つ以上のブロックを提供するように構成したデータ書込み部と、を備える。
本発明の第2の態様によれば、データ記憶装置に格納されたデータを消去するデータ消去装置を提供し、データ消去装置は、少なくとも一つのプロセッサと、一つ以上のプログラムのコンピュータプログラムコードを有する少なくとも一つのメモリを備え、少なくとも一つのメモリ及びコンピュータプログラムコードは、少なくとも一つのプロセッサによって、少なくとも予め決定された基準を満たす非圧縮性データのシーケンスを装置に取得させ、非圧縮性データのシーケンスは、非圧縮性データの一つ以上のブロックに分割され、非圧縮性データの一つ以上のブロックのサイズの和は、データ記憶装置の記憶容量以上であり、データ記憶装置に対して、データ記憶装置に現在格納されているデータを上書きするために記憶用の非圧縮性データの一つ以上のブロックを提供するように構成される。
本発明の第3の態様によれば、データ記憶装置に格納されたデータを消去するシステムを提供し、システムは、本発明の第1の態様又は第2の態様のデータ消去装置と、圧縮データの対応する一つ以上のブロックを提供するために非圧縮性データの一つ以上のブロックに対する圧縮を行い、データの一つ以上の圧縮ブロックの各々に対して、圧縮データのブロックのサイズは、非圧縮性データの対応するブロックのサイズ以上であり、かつ、物理メモリの圧縮データの一つ以上を格納するように構成したデータ記憶装置と、を備える。
本発明の第4の態様によれば、データ記憶装置に格納されたデータを消去する方法を提供し、方法は、予め決定された基準を満たす非圧縮性データのシーケンスを取得することであって、非圧縮性データのシーケンスは、非圧縮性データの一つ以上のブロックに分割され、非圧縮性データの一つ以上のブロックのサイズの和は、データ記憶装置の記憶容量以上であることと、データ記憶装置に対して、データ記憶装置に現在格納されているデータを上書きするために記憶用の非圧縮性データの一つ以上のブロックを提供することと、を備える。
本発明の第5の態様によれば、コンピュータプログラムを提供し、コンピュータプログラムは、一つ以上のプロセッサによって実行するときに本発明の第4の態様による方法を少なくとも装置に実行させる一つ以上の命令の一つ以上のシーケンスを含む。
コンピュータプログラムを、例えば、格納されるプログラムコードを有する少なくとも一つのコンピュータ読取可能非一時的記憶媒体を備え、プログラムは、装置によって実行するときに本発明の第4の態様による方法を少なくとも装置に実行させるコンピュータプログラム製品のような揮発性又は不揮発性コンピュータ読取可能記録媒体で実施することができる。
本発明の全態様に亘って、予め決定された基準を満たす非圧縮性データのシーケンスは、予め決定された基準を満たす非圧縮性データのシーケンスの圧縮性又は非圧縮性を表す統計的尺度を備えることができる。
本明細書で提示される発明の例示的な実施の形態は、添付した特許請求の範囲の適用性に制限を課すものと解釈すべきでない。動詞「備える」及びその派生語を、本明細書では、言及しない特徴の存在を除外しない取り除かれた制限として用いる。後に説明する特徴は、特に明記しない限り互いに自由に結合できる。
発明の特徴として考えられる新規の形態を、特に、添付した特許請求の範囲で説明する。しかしながら、構成及び動作の方法の両方に関する発明それ自体は、発明の追加の目的及び利点とともに、添付図面に関連して読むときの特定の実施の形態の以下の詳細な説明から最もよく理解される。
図1は、本発明の実施の形態による配置を図式化して示す。 図2は、データ記憶装置を図式化して示す。 図3は、本発明の実施の形態によるデータ消去装置を備える配置を図式化して示す。 図4は、本発明の実施の形態による方法を示す。 図5は、本発明の実施の形態による装置を図式化して示す。
図1は、データ記憶装置120に接続したデータ消去装置110を備える例示的な配置100を図式化して示す。データ消去装置110は、情報、例えば、書込みデータをデータ記憶装置120に提供するように構成され、データ消去装置110を、情報、例えば、読出しデータをデータ記憶装置120から受信することができる。データ消去装置110を、データ記憶装置120とそれに接続したエンティティ(entity)、例えば、データ消去装置110との間の通信及び/又は(一つ以上の)データ転送プロトコルを規定するホストインタフェース130を介してデータ記憶装置に接続することができる。
ホストインタフェース130は、従来知られている各規格に従う、例えば、シリアルATA(SATA)、パラレルATA(PATA)、スモールコンピュータシステムインタフェース(SCSI)、シリアルアタッチドSCSI(SAS)、ユニバーサルシリアルバス(USB)、ペリフェラルコンポーネントインターコネクトエクスプレス(PCI Express又はPCIe)若しくは不揮発性メモリエクスプレス(NVM express又はNVMe)に従うインタフェース又はデータ記憶装置120と他のエンティティとの間の通信及びデータ転送に適切な任意の対応するインタフェースを備えることができる。
図2は、データ記憶装置120の一例としてのソリッドステートドライブ(SSD)装置200を図式化して示す。SSD装置200は、記憶部210及び制御部220を備える。
記憶部210は、物理記憶容量を提供する一つ以上の記憶素子212−1,212−2,212−3,...,212−n、例えば、一つ以上のNANDフラッシュチップ又はデータの不揮発性記憶を行う他のタイプの一つ以上のメモリチップを備える。各メモリチップによって、予め決定されたデータ量を記憶することができ、データ量の和は、SSD装置200の全体に亘る物理記憶容量を規定する。
制御部220は、記憶部210へのデータの書込み及び記憶部210からのデータの読出しを制御するように構成される。制御部220は、典型的には、データ圧縮器222と、ウェアレベリング部224とを備える。しかしながら、SSD装置200を、データ圧縮器222を有することなく設けることもできる。
データ圧縮器222を、存在する場合には、SSD装置200に書き込むデータを圧縮するとともにSSD装置200から読み出すデータを解凍するように構成することができる。特に、データ圧縮器222を、SSD装置200に書き込まれるデータを予め決定された圧縮手法に従って無損失圧縮を行うとともにSSD装置200から読み出したデータに対して対応する解凍を行うように構成することができる。そのような圧縮手法は、典型的には、SSD装置200に書き込まれたデータのブロックの固有の冗長性を利用し、したがって、圧縮性能は、典型的には、SSD装置200に書き込まれるデータの特性に依存する。複数の適切な圧縮手法及び対応する解凍手法は、従来知られている。SSD装置200に書き込まれるデータの圧縮は、一つ以上の記憶素子212−1,212−2,212−3,...,212−nによって提供される物理メモリに実際に書き込まれるデータ量を減少させるのに役立つ。
ウェアレベリング部224は、予め決定された規則のセットに従って、データの圧縮されたブロックのユニット、例えば、バイト又はワードを一つ以上の記憶素子212−1,212−2,212−3,...,212−nに亘って分配するように構成される。したがって、ウェアレベリング部224は、予め決定された規則のセットに従って、データの圧縮されたブロックのユニットを格納するための物理メモリアドレスを決定するように構成される。そのような予め決定された規則のセットは、典型的には記憶部210の一つ以上の記憶素子212−1,212−2,212−3,...,212−nを均一に用いることを目的として物理メモリアドレスの使用を時間とともに動的に管理するために用いられる。特に、予め決定された規則のセットは、記憶部210の全ての記憶素子に対する書込み数を考慮して記憶部210の任意の記憶素子への累積的な書込み数を最小にしようと試みる。一例として、M個の記憶素子の使用を要求する圧縮されたデータのN個のユニットに対する書込みを行うために、ウェアレベリング部228を、これまで書込みを行った記憶素子を昇順に順序を付けるとともに圧縮されたデータのN個のユニットを記憶するために昇順リストの最初のM個の記憶素子を選択するように概念的に構成することができる。書込み数が増大するに従って所定のタイプの記憶素子、例えば、NANDフラッシュチップの信頼性が低下するので、記憶素子のそのような均一の使用は、SSD装置200の寿命を延ばすのに役に立つ。
データ圧縮器222及びウェアレベリング部224によって設けられた機能は、SSD装置200に対するインタフェースの論理メモリアドレスから記憶部210の対応する物理メモリアドレスへの変換とみなすことができる。その結果、データ圧縮器222及びウェアレベリング部224を、論理メモリアドレスと対応する物理メモリアドレスとの間のマッピングを行う単一のエンティティを提供するものとみなすことができる。そのようなエンティティを、データ変換部、(フラッシュ)変換層等のような変換部と称することができる。
変換部は、マッピングテーブル226、又は、例えば、占有された論理メモリアドレスの各々及び対応する物理メモリアドレスを記録することによって論理メモリアドレスと対応する物理メモリアドレスとの間のマッピングを行う他の適切なデータ構造を利用することができる。マッピングテーブル226は、記憶部210の効率的な使用を容易にするために占有された及び/又は占有されていない論理メモリアドレス及び/又は物理メモリアドレスの表示を更に提供することができる。マッピングテーブル226を、制御部220に備えられたメモリ及び/又は変換部によってアクセス可能なSSD装置220内の他の場所のメモリに設けることができる。特に、一つ以上の記憶素子212−1,212−2,212−3,...,212−nの一つ以上を、マッピングテーブル(又は対応するデータ構造)の不揮発性記憶を行うために用いることができる。特に、マッピングテーブル226を、SSD装置200が動作中でないとき、例えば、オンに切り替えられていないとき又は動作電力が供給されないときに記憶部に格納することができ、それに対し、マッピングテーブル226を、SSD装置200が動作中であるときに効率的にアクセスすることができるようにするために制御部220に設けられたメモリに格納することができる。
変換部は、データ圧縮器222及びウェアレベリング部224の動作を制御するとともにSSD装置200を用いるエンティティに対するインタフェース、例えば、コマンド及びSSD装置200に書き込むための又はSSD装置200から読み出すためのデータを受信するホストインタフェース130を設けるためのコントローラ228を更に備える。特に、データのブロックをSSD装置200の論理メモリアドレスに書き込むための命令又はコマンドに応答して、コントローラ228を、圧縮器222によってデータのブロックを記憶部210に書き込むデータのブロックの圧縮されたブロックに圧縮させ、ウェアレベリング部224によって記憶素子すなわちデータの圧縮されたブロックを記憶するのに用いる(一つ以上の)物理メモリアドレスを決定させ、決定した(一つ以上の)物理メモリアドレスに対してデータの圧縮されたブロックを書き込み、かつ、それに従ってマッピングテーブル226を更新するように構成することができる。
同様に、SSD装置200の論理メモリアドレスからデータのブロックを読み出す命令又はコマンドに応答して、コントローラ228を、論理メモリアドレスに対応する(一つ以上の)物理メモリアドレスを決定するためにマッピングテーブル226にアクセスし、決定した(一つ以上の)物理メモリアドレスからデータの圧縮されたブロックを読み出し、データ圧縮器222によってデータの圧縮されたブロックをデータの解凍されたブロックに解凍させ、かつ、データの解凍したブロックを提供するように構成することができる。
制御部220は、マッピングテーブル、圧縮された又は圧縮すべきデータ、解凍された又は解凍すべきデータ等の一時記憶のためにコントローラによってアクセス可能な他の素子又は部分、例えば、データバッファを備えることができる。データバッファは、例えば、一つ以上のDRAMユニット又は他のタイプの揮発性若しくは不揮発性記憶装置を備えることができる。制御部は、例えば、記憶されたデータのインテグリティを確保するための誤り訂正部を更に備えることができる。誤り訂正部を、例えば、リードソロモン符号、(一つ以上の)ゴーレイ符号、(一つ以上の)ハミング符号に基づいて誤り訂正コーディングを行うように構成することができる。
データ圧縮器222、ウェアレベリング部224及びコントローラ228を、一つ以上の物理装置の論理的又は機能的な部分/モジュールとして設けることができる。特に、制御部220は、プロセッサ及びメモリを備えることができ、データ圧縮器222、ウェアレベリング部224及びコントローラ228を、メモリに格納されたソフトウェアとして、例えば、プロセッサによって実行するときにデータ圧縮器222、ウェアレベリング部224及びコントローラ228に割り当てられた動作、手順及び/又は機能をSSD装置200によって実行させる一つ以上の命令の一つ以上のシーケンスを備える一つ以上のコンピュータプログラムとして設けることができる。メモリを、マッピングテーブル226を格納するとともにデータバッファに対する記憶容量を設けるために更に用いることができる。
圧縮及び/又はウェアレベリングのために、SSD装置200の物理記憶容量は、論理記憶容量と異なることがある。特に、圧縮は、少なくとも理論的には、物理記憶容量が論理記憶容量より小さくなるようにすることができる。それに対し、ウェアレベリング機能は、少なくとも理論的には、論理記憶容量より大きい物理記憶容量を利用することができ、これを、(記憶容量の)オーバープロビジョニングと称することができる。論理記憶容量を、SSD装置200を用いるエンティティによって見ることができるようなSSD装置200の記憶容量とみなすことができる。論理記憶容量は、論理メモリアドレスが参照するアドレス指定可能な記憶容量も提供する。以下、特に明記しない限り、SSD装置200又は一般的なデータ記憶装置の記憶容量への言及は、論理記憶容量を言及する。
用語SSD又はSSD装置を、固体記憶装置の一部の形態を利用する装置のアレイをカバーする包括的な用語として用いることができるが、本書では、用語SSD又はSSD装置を、上述したように記憶部210及び制御部220を備える大容量記憶装置200を言及するために用いる。
それに対し、SSD装置200を、データ消去装置110を用いることができるデータ記憶装置120の一例として用いるが、データ消去装置110を他のタイプのデータ記憶装置とともに同様に用いることができる。特に、データ消去装置110は、SSD装置200又は上述したように圧縮及び/又はウェアレベリングを行う他の記憶装置に格納されたデータの消去において特に有利であるが、データ消去装置110を、任意のデータ記憶装置に格納されたデータを消去するために同様に用いることができる。
以下、データ消去装置110を、論理エンティティとして説明する。実際には、データ消去装置110を複数の異なる方法で実現することができる。データ消去装置110を、データ消去装置110に対する後に説明する動作、手順及び/又は機能を実行するように構成したスタンドアローン装置又は複数の装置として設けることができる。他の例として、データ消去装置110を、他の装置によってホストされる一つの装置又は複数の装置として設けることができる。更に別の例として、データ消去装置110を、ソフトウェア手段、例えば、プロセッサによって実行するときにデータ消去装置110に対する後に説明する動作、手順及び/又は機能を装置によって実行させるコンピュータ読出し可能命令を備える一つ以上のコンピュータプログラムとして設けることができる。
図3は、ホストインタフェース130を介してデータ記憶装置120に接続したデータ消去装置110を図式化して示す。データ消去装置110は、データ提供部112及びデータ書込み部114を備える。データ記憶装置120は、後に説明するように圧縮及び/又はウェアレベリングを行うSSD装置200又は他のタイプのデータ記憶装置を備えることができる。
データ提供部112は、予め決定された基準を満たす非圧縮性データのシーケンスを取得するように構成され、非圧縮性データのシーケンスは、非圧縮性データの一つ以上のブロックに分割され、非圧縮性データの一つ以上のブロックのサイズの和は、データ記憶装置の記憶容量以上である。予め決定された基準を、好適には、非圧縮性データのシーケンスの非圧縮性の程度、したがって、非圧縮性データの一つ以上のブロックの非圧縮性の程度に関連させ、予め決定された基準は、非圧縮性の一つ以上のブロックの非圧縮性の表示として用いることができる単一の基準又は一つ以上の個別の基準を備えることができる。非圧縮性データの一つ以上のブロックの絶対的な非圧縮性を意味するように、予め決定された基準を決定することができる。代わりに、予め決定された基準を満たす程度の非圧縮性を示しながらある程度の圧縮性を理論的に及び/又は実際に可能になるようにすることができ、典型的には、結果的にデータの各ブロックの非圧縮性が実用的なものとなるように、予め決定された基準を決定することができる。その結果、本書で用いられる用語非圧縮性データは、絶対的な非圧縮性データ又は非圧縮性のレベルに対する予め決定された基準を満たす程度まで非圧縮性であるデータを言及することができる。
非圧縮性データのシーケンスを、非圧縮データの一つ以上のブロックとしてデータ提供部112に提供することができ、又は、代わりに、データ供給部112を、非圧縮性データを、例えば、データの連続的なストリームとして又は複数のデータセクションとして取得するとともに非圧縮性データのストリーム又はデータセクションを非圧縮性データの一つ以上のブロックに配置するように構成することができる。
データ書込み部114は、データ記憶装置に現在格納されているデータを上書きするために記憶用のデータ記憶装置120に非圧縮性データの一つ以上のブロックを提供するように構成される。その結果、データ記憶装置120に現在格納されているデータは、一つ以上の非圧縮性データブロックに置き換えられ、したがって、データ記憶装置120から消去される。
一般的には、データ消去装置は、データ記憶装置120の全てのアドレス指定可能な記憶場所を上書きするために非圧縮データの一つ以上のブロックを提供するように構成される。一般的なケースでは、それは、記憶された全てのデータを消去するためにデータ記憶装置120の記憶容量以上の結合されたサイズを有する任意のデータの一つ以上のデータブロックを書き込むのに十分となり得るが、これは、例えば、記憶させるためのデータの圧縮及び/又はウェアレベリングを行うことができるSSD装置200又は任意のデータ記憶装置の場合には、データ記憶措置120の物理メモリに実際に書き込まれるデータの量を減少させるかもしれない圧縮機能及び/又は所定の論理メモリアドレスに書き込まれるデータをデータ記憶装置の外部にある目に見えない物理メモリアドレスに書き込むかもしれないウェアレベリング機能のために十分でないことがある。
その結果、予め決定された基準を満たす非圧縮性データの一つ以上のブロックの書込みの利点は、圧縮機能、例えば、データ圧縮器222がデータ記憶装置120の物理メモリに実際に書き込まれるデータの量を減少させることを確実にすることである。それに対し、データ記憶装置120の記憶容量以上の結合されたサイズを有する非圧縮性データの一つ以上のブロックの利点は、ウェアレベリング機能、例えば、ウェアレベリング部224が典型的にはデータ記憶装置120の外部で知られないように論理メモリアドレスと対応する物理メモリアドレスとの間のマッピングを行うにもかかわらずデータ記憶装置120の全ての物理記憶場所が上書きされることを確実にすることである。その結果、データ記憶装置120の記憶容量以上の結合されたサイズを有する非圧縮性データの一つ以上のブロックを取得すること及びデータ記憶装置120に格納される一つ以上のブロックを提供することは、データ記憶装置120に格納されるデータの確実な消去に寄与する。
それに対し、データ記憶装置120の記憶容量以上の結合されたサイズを有する−任意のデータの代わりの−非圧縮性データの一つ以上のブロックを、圧縮及び/又はウェアレベリングを行わないデータ記憶装置に格納されたデータの上書きのために全く自然に同様に適用することができる。
非圧縮性データの一つ以上のブロックに基づいて用いられるデータのシーケンスを、データシーケンスを生成する乱数発生器(RNG)を適用することによってランダム又は疑似ランダムデータとして取得することができる。実際には、真のランダムプロセスを利用することができない、又は、そのようなプロセスの適用は非実用的となり得るので、典型的には、疑似乱数発生器(PRNG)に依存すれば十分である。本書では、用語RNG及び用語PRNGの両方を、典型的にはソフトウェア手段によって提供され、本質的にはPRNGである乱数発生器を言及するために用いる。したがって、無損失圧縮手法により実際に非圧縮性にするために、特に、SSD装置200のデータ圧縮器222のようなデータ記憶装置120に書き込まれるデータを圧縮するように動作する圧縮器によって非圧縮性にするために十分にランダムであるデータを取得するためにRNG又はPRNGを用いることができる。ここでは、用語「無損失圧縮」は、データのブロックの圧縮及びそれに続く解凍において情報が損失しないように復元を行うことができる圧縮を言及する。
実際には、データ提供部112は、典型的には、データ記憶装置120によって行われる圧縮の詳細の知識を何も有しない。その結果、データ提供部112は、全く圧縮することができない又は予め規定された程度までしか圧縮することができないデータを生成するためにデータ記憶装置120によって適用される圧縮手法の特性を生かすことができないことがある。したがって、ランダムデータのシーケンスを、好適には、無損失圧縮手法を用いたデータの圧縮を実際にはできなくする程度のランダム性を示すのに十分なサイズのブロックに分割する。
乱数又はランダムな文字のシーケンスを備える真のランダムデータは、情報を損失することなく圧縮することができないデータの一例であり、したがって、換言すれば、そのようなデータの無損失圧縮は可能でない。これを、後に説明するようにランダムデータとして高品質の乱数を言及する二つの幾分直接的な公理の分析によって説明することができる。
公理1:高品質の乱数の無損失圧縮が、データの一部の組合せが他の組合せより可能性が高い場合のみ可能となる。
公理2:高品質の乱数の任意のストリングが、その他のストリングと同様に起こり得る。
Aが集合を意味するものとし、
Figure 2015528159
を有する<B>がAの全てのあり得るストリングから成るものとし、Rが、Aに属するストリングをランダムに選ぶプロセスを意味するものとし、Pを、k番目のストリングを選択するRの可能性とする。さらに、Pが、i番目のストリングを選択する可能性がRによって選択した<B>の任意のストリングの平均の可能性より高いことを示すと仮定する場合、公理2は適用できず、その結果、Rは、<B>に属する他のストリングより可能性の高いストリングが存在する場合には高品質のRNGでない。したがって、「高品質の乱数の無損失圧縮が可能でない」という主張は、背理法によって証明される。
さらに、これに関連して、インド国のニューデリーに所在するPHI Learning Private Limitedにより2008年に刊行されたK.R.Chowdhardyによる“Fundamentals of Discrete Mathematical Structures”の40頁に記載した鳩の巣原理は、無損失圧縮の概念を更に詳しく説明している。鳩の巣原理は、h個の穴及びこれらの穴の合計p羽の鳩が存在するとともにh<pである場合にはある穴には1羽より多い鳩が存在する必要があることを述べる。すなわち、等しくないサイズの二つの有限集合の間のマッピングがある場合、小さいほうの集合の少なくとも一つの要素が大きいほうの集合の一つより多い要素と組になる必要がある。鳩の巣原理を、Chowdhardyによって表されるように、鳩の巣原理の結果が誤りであると仮定すると各鳩の巣が最大でも1羽の鳩を含むと仮定できるという矛盾によって証明することができる。したがって、それは、h羽以下の鳩から成る。しかしながら、p羽の鳩が存在し、かつ、p>hであり、これは矛盾している。したがって、鳩の巣原理に基づいて取得した等しくないサイズの二つの有限集合の間のマッピングは正確である。
鳩の巣原理に基づいて、無損失圧縮を行う圧縮器がシャノンのエントロピーの演算アナログ(computational analog)である演算エントロピー(computational entropy)によって極限集合より下のデータを圧縮できないことを知る。これに関連して、例えば、SIAM Journal on Computing, Vol.28 Issue 4, August 1999, pages1364−1396の
Figure 2015528159
による”A pseudorandam Generator from any One−Way Function”の5〜6頁において、演算エントロピーg(X)及びYが演算的に区別できない場合にはg(X)は少なくともYのシャノンのエントロピーと定義される。g(X)が疑似乱数発生器である場合、g(X)の演算エントロピーは、入力Xのシャノンのエントロピーより大きく、この意味では、g()はエントロピーを増大する。
これは、非圧縮性又は略非圧縮性であるランダムデータを無損失圧縮手法によって生成する手法を開発するのに利用できる疑似乱数発生器の有用な特性である。関連した話では、The Computer Journal,Vol.42,No.4,1999,page270−283のC.S.Wallace and D.L.Doweによる“Minimum Message Length and Kolmogorov Complexity”の272頁において、ストリングがランダムソース(random source)に由来したという仮説を任意の標準的な統計的検定によって否定させるか否かを問うことによって、有限ストリングのランダム性が、通常、アクセスされ、これによって、データのランダム性、したがって、非圧縮性にアクセスする有用なツールを提供することが知られている。
上述したように、データ提供部112を、予め決定された基準を満たすランダムデータのシーケンスをPRNGを用いることによって取得するように構成することができる。特に、非圧縮性データを取得することは、予め決定された基準を満たすランダムのシーケンス又は疑似ランダムデータ、例えば、乱数を発生する、換言すれば、十分なランダム性の乱数のシーケンスを発生するように構成した乱数発生器を用いることを備えることができる。データ記憶装置120の記憶容量以上の結合されたサイズを有する非圧縮性データの一つ以上のブロックに分割するのに十分な長さを有する乱数のシーケンスを提供するために、PRNGに対する繰り返しの呼出しを発することができる。その結果、無損失圧縮手法によって圧縮することができないPRNGによって提供されるランダムデータのシーケンスを、非圧縮性データの一つ以上のブロックの基礎として用いることができる。
適切なPRNGの一例は、例えば、UCL bioinformatics Group,UK,2010のD.Jonesによる“Good Practice in (Pseudo) Random Number Generation for Bioinformatics Applications”の2頁にも記載されている以下のANSI−Cソースコードによって説明され、この場合、このPRNGを、KISS PRNGと称する。この例を、後に第1の例示的なPRNGとも称する。
Figure 2015528159
上述した第1の例示的なPRNGは、三つのタイプのPRNGを組み合わせた複合乱数発生器である。すなわち、第1の例示的なPRNGは、従来知られているキャリー付き乗算PRNG、XorshiftPRNG及び線形合同PRNGの組合せを備える。これら三つのPRNGタイプのそのような組合せは、10^40000000を超える周期を生成することができる複合PRNGを提供する。
研究論文Xorshift RNGs(2003)において、ジョージ・マーサグリアは、「ランダム性のテストを非常に良好にパスすると思われる...非常に高速な乱数発生器の分類の説明」を述べている。発生器は、発生器が2−1の周期を有し、この場合、k=32,64,96,128,192であるという点でスケーラブルである。
これらRNGは、種々の方法でXorshift動作の一連の組合せを適用することによって動作する。マーサグリアは、ランダム性のテストを行うとともに従来知られている一連のDiehardテストの全てをパスするときにこれらのRNGが良好に機能すると報告している。
Cプログラミング言語において、基本的なXorshift動作は、左シフトのためのy^(y<<a)及び右シフトのためのy^(y>>a)によって行われる。XorshiftRNGは、種々のRNGを形成するために種々のシフト及び異なる論証を用いて異なるXorshiftを組み合わせることによって開発される。
マーサグリアは、Xorshift動作の理論を次のように述べている。
「四つの乱数種x,y,z,wが与えられた場合に呼出しごとに三つのXorshift動作のみによって2128−1個のランダムな32ビットの整数を提供するCプロシージャの主要部分を以下に示す。
Figure 2015528159
そのようなプロシージャは、非常に高速であり、典型的には200000000/秒を超え、結果的に得られる整数は、適用されたランダム性の全てのテストをパスする。」
後に第2の例示的なPRNGとも称するマーサグリアによるXorshiftRNGの一例は、2192−232の周期を有し、ANSI Cソースコードとして以下のように示される。
Figure 2015528159
メルセンヌ・ツイスタ(MT)は、一様疑似乱数を生成するアルゴリズムである。松本及び西村によれば、学術論文Mersenne Twister:A 623−dimensionally equidstributed uniform pseudorandom number generatorにおいて、メルセンヌ・ツイスタは、219937−1の非常に長い周期を示す。MTは、従来知られている一連のDiehardテストを含むランダム性の種々のテストをパスすることで知られている。
松本及び西村は、アルゴリズムを次のように説明している。
以下の説明において、ボールド体のxは、(右に最下位ビットを有する)サイズwのマシンワードによって識別される有限な二つの要素の2進数フィールドF={0,1}に亘るw次元の行ベクトルであるワードベクトル(word vector)を表す。アルゴリズムは、0と2w−1の間の一様疑似乱数整数とみなされるワードベクトルの配置を形成する。2w−1によって除算することによって、各ワードベクトルは[0,1]の実数とみなされる。以下の線形回帰はアルゴリズムの基礎となる。
Figure 2015528159
複数の定数、回帰の次数である整数n、(
Figure 2015528159
の定義に隠れている)整数r、0≦r≦w−1、整数m、1≦m≦n及びFのエントリを有する定数w×w行列Aを有する。
,X,...,Xn−1をイニシャルシード(initial seed)として与える。この場合、発生器は、k=0を有する上記回帰によってxを発生する。k=1,2,...とすることによって、発生器は、xn+1,xn+2,...を決定する。
回帰の右辺において、
Figure 2015528159
は、xの「上位w−rビット」を意味し、
Figure 2015528159
は、xk+1の「下位rビット」を意味する。したがって、X=(xw−1,xw−2,...,x)である場合、定義により、Xは、w−rビットベクトル(xw−1,...,x)となり、Xは、rビットベクトル(xr−1,...,x)となる。したがって、
Figure 2015528159
は、連結(concatenation)、すなわち、Xの上位w−rビット及びXk+1の下位rビットをこの順序で連結することによって得られるワードベクトルとなる。その後、行列Aは、このベクトルにより右から乗算される。
最後に、Xk+mにこのベクトル(
Figure 2015528159
は、ビット単位のモジュロ2加算(bitwise addition modulo two))を加算し、その後、次のベクトルXk+nを発生する。
以下のANSI−Cコードは、
Figure 2015528159
で提供されるようなMT RNGを実現する例を示す。このソースコードは、例えば、グイド・ヴァンロッサムによる“Python Tutorial”の表題の文献の第2版、ISBN978−4−87311−442−2においても提供され、それに対し、MT RNGに関連する情報を、例えば、
Figure 2015528159
で見つけることができる。MT RNGを、後に、第3の例示的なPRNGと称する。
Figure 2015528159
Figure 2015528159
Figure 2015528159
Figure 2015528159
非圧縮性データの一つ以上のブロックに分割するのに適切な予め決定された基準を満たす非圧縮データのシーケンスの他の例は、事前に圧縮されたデータのシーケンスである。したがって、PRNGを用いる代わりに又はPRNGを用いるのに加えて、非圧縮性データのシーケンスを取得することは、予め決定された基準を満たす非圧縮性データのシーケンスを生成するために原始データを圧縮するデータ圧縮器を用いることを備えることができる。原始データを、基本的には、任意のデータ、例えば、PRNGを用いることによって取得したデータとすることができる。原始データを提供するために用いられるPRNGは、典型的には、厳密な要求を満たすデータのシーケンスを提供する必要はないが、例えば、多数のプログラミング言語の標準ライブラリに設けられた標準的な乱数発生器は、典型的には、この目的には十分である。
データ圧縮器を、非圧縮性データのシーケンスとして使用可能な圧縮データのシーケンスを生成するために一つ以上の予め決定された規則に従って原始データを圧縮するように構成することができる。一つ以上の予め決定された規則は、用いられる圧縮手法を規定する。好適には、圧縮手法は、データ記憶装置120によって用いられる圧縮手法と類似し又は部分的に類似することができ、これによって、原始データからあらゆる冗長性が除去され、データ記憶装置120によって用いられる圧縮手法は、後の圧縮で利用することができる。しかしながら、データ記憶装置120で適用される圧縮手法と異なる圧縮手法を同じように適用することができ、圧縮手法がデータから冗長性を減少又は除去する役割を果たすので、その結果、所定のタイプの任意の適切な圧縮手法によって圧縮されたデータは、典型的には、異なるタイプの圧縮手法によって更に著しく圧縮することができない。
適切なデータ圧縮器の一例は、Zlibであり、例えば、
Figure 2015528159
を参照のこと。Zlibは、デフレートアルゴリズムを実現する無損失データ圧縮ライブラリであり、かつ、ポータブルアクロスプラットフォーム(portable across platform)である。デフレートは、LZ77アルゴリズム及びハフマン符号の組合せに基づく無損失圧縮アルゴリズムである。デフレートアルゴリズムは、ポインタを有する繰り返しストリングを配置及び整合するとともに一般的な記号を短い表現に置換しながら一般的でない記号を長い表現に置換することによって圧縮を実現する。Zlibの開発者は、典型的な圧縮比を2:1と5:1との間で変更することができると主張しているが、速度と圧縮の間にトレードオフが生じることがあり、圧縮されるデータに応じて異なるストラテジが用いられうる。Zlibは、Mac OS(登録商標)X及びLinux(登録商標)を含む多数のソフトウェアプラットフォームによって用いられる。
適切なデータ圧縮器の他の例は、BZip2である。BZip2は、圧縮中に順番に生じた後に解凍中に順番が逆転するファイル又は他のデータを種々の技術を用いて圧縮する圧縮ライブラリである。BZip2によって実行される圧縮は、100kBと900kBとの間のサイズのデータブロックで行われる。連長圧縮(RLE)が、一連のデータ(runs of data)を単一値として記録するために用いられる。その後、Burrows−Wheeler変換(BWT)が適用され、データのブロックの可逆的な変換を用いる。圧縮は、変換中に生じず、代わりに、データは、相補アルゴリズム(complementary algorithm)による圧縮を更に簡単にするよう変更される。頻繁に再発する文字列を同一の文字のストリングに変換するためにBWTを用いた後、記号をインデックス付きアレイに置換するためにMove−to−Front変換を適用する。この場合、最も一般的なソースシンボル(source symbols)を短いビットストリングを用いて表現するためにハフマン符号が用いられ、これによってファイルのサイズを圧縮する。
非圧縮性データの一つ以上のブロックの提供の基礎として利用可能な予め決定された基準を満たす非圧縮性データのシーケンスに関連した予め決定された基準は、予め決定されたしきい値より下にある又は予め決定されたしきい値を超える非圧縮性データのシーケンスの非圧縮性及び/又はランダム性を表す統計的尺度を備えることができ、しきい値は、尺度の特性に依存する。それに対し、同等の手法は、非圧縮性データのシーケンスの圧縮性及び/又は予測可能性のレベルを表す統計的尺度を用いることができ、予め決定された基準は、予め決定されたしきい値より下にある又は予め決定されたしきい値を超えるそのような統計的尺度を備えることができ、しきい値は、尺度の特性に依存する。特に、予め決定された基準は、非圧縮性データのシーケンスに基づいて、例えば、それぞれの予め決定されたしきい値を超える(又は超えない)非圧縮性データのシーケンスの一つ以上のランダムに選択したセグメント又は一つ以上の予め決定されたセグメントに基づいて取得した統計的尺度を備えることができる。予め決定された基準は、典型的には、PRNG、データ圧縮器又は非圧縮性データの他のソースから取得した非圧縮性データに同様に適用することができる。
シーケンスを評価し又はランダム性のレベルを決定するためにシーケンスに適用することができる複数の統計的検定が存在する。アメリカ国立標準技術研究所(NIST)は、(P)RNGによって提供されたランダム性のレベルを示すことを目的とした一連の統計的尺度を開発した。NISTは、ランダム性を「確率論的性質:すなわち、ランダムシーケンスの性質を、確率に関連して特徴付けし及び説明することができる。真のランダムシーケンスに適用するときの統計的検定の起こりそうな結果は、先験的に知られ、確率的な表現で記載することができる。」と定義する。
統計的検定に関連して、NISTは、「統計的仮説検定が役に立つ理由は、基準分布(reference distribution)及び臨界値がランダム性の試論に依存しかつそれに基づいて生成されるからである。ランダム性の仮定が実際に間近のデータ(data at hand)に当てはまる場合、結果的に得られる計算されたデータ上の検定統計値は、臨界値を超える確率が非常に低い(例えば、0.01%)。それに対し、計算した検定統計値が臨界値を超える場合(すなわち、低い確率事象が実際に生じる場合)、統計的仮説検定の観点から、低い確率現象は自然に起こるべきではない。したがって、計算した検定統計値が臨界値を超える場合、ランダム性の最初の仮定は疑わしい又は不完全であるという結論に至る。この場合、統計的仮説検定は、H(ランダム性)を拒否し、かつ、H(非ランダム性)を受け入れるという結論を生じる。」を書き加える。
テストスイートの出力(P値)を議論するに当たり、NISTは、「これらのテストに対し、テストによって評価されるような非ランダム性が与えられる場合、各P値は、テストされたシーケンスよりランダムでないシーケンスを完全な乱数発生器が発生した確率となる。テストに対するP値が1に等しいと決定された場合、シーケンスは、完全なランダム性を有するように見える。0のP値は、シーケンスが完全に非ランダムであるように見えることを表す。P値≧0.01は、シーケンスが99%の信頼性をもってランダムであるとみなされることを意味する。P値≦0.01は、シーケンスが99%の信頼性をもって非ランダムであると結論付けられたことを意味する。」と言明している。
テストスイートは、NISTのコンピュータセキュリティ部門と統計工学部門との間(between Computer Security and Statistical Engineering divisions)の協力の結果である種々の異なるテストからなる。以下、試験方法の詳細な説明を有する三つの例を提供する。
したがって、非圧縮性のレベルを決定する適切な手法は、非圧縮性データのシーケンスが実際には非ランダムであり、したがって、予測可能及び/又はある程度圧縮可能であるという帰無仮説を有する統計的検定を実行することを備えることができる。その結果、そのような統計的検定の結果として予め決定されたしきい値を超えるP値は、圧縮性データのシーケンスが十分な程度まで非圧縮性であることを表す役割を果たす。以下の例において、予め決定されたしきい値を、99%の信頼水準を有する非圧縮性を表す0.01に設定する。しかしながら、所望される程度のデータの保証された非圧縮性の観点から異なる信頼水準を適用するために、本発明の範囲を逸脱することなく異なるしきい値を用いることができる。
非圧縮性データのシーケンスの非圧縮性を表す予め決定された基準として用いることができる統計的尺度を決定するために用いることができる統計的検定の第1の例として、重なりのあるテンプレート適合検定がある。この検定は、データのシーケンスから任意長の特定パターンを探索するように設計される。データのシーケンスは、どのくらいの頻度でパターンがビットストリーム内に再発するかを見るためにビット単位で分析される。検定の目的は、データのシーケンスが非周期的であるか否かを決定することである。圧縮性/非ランダムビットストリームは、整合パターンを示し、0.01のしきい値より下のP値を次々と生成する。
テンプレート適合検定を、例えば、NISTによる“A statistical Test Suite for Random and Pseudorandom Number Generator for Cryptographic Applications”の表題の文献に記載されているような(a)〜(f)までの以下のステップを用いて説明することができる。この文献を、例えば、
Figure 2015528159
で見つけることができ、文書番号SP800−22 Rev.1aとも称する。テンプレート適合検定の以下の説明において、mは、テンプレートのビット長を表し、nは、ビットストリングの長さを表し、εは、生成したビットのシーケンスを表し、Bは、整合されるmビットテンプレートを表し、Kは、自由度の数を表し、Mは、テストされるεのサブストリングのビット長を表し、Nは、nの独立ブロックの数を表す。
a)シーケンスを、長さMを有するN個の独立ブロックに分割する。
b)Nブロックの各々におけるBの発生回数を計算する。整合の探索は、シーケンスにmビット窓(m-bit window)を形成し、当該窓内のビットとBとを比較し、整合があるときにはカウンタを増分することによって進行する。窓は、各検査後に1ビットに亘ってスライドし、例えば、m=4であり、最初の窓がビット42からビット45を含む場合、次の窓は、ビット43からビット46によって構成される。サブストリングにおいてBの発生がないときにvを増分し、Bの発生が1回であるときにvを増分し、...、Bの発生が5回以上であるときにvを増分するようにアレイVを増分することによって、各ブロックのBの発生回数を記録する。
c)vのクラスに対応する理論的確率Πを計算するために用いられるλ及びηの値を計算する。
Figure 2015528159
d)X2(obs)=
Figure 2015528159
を計算する。この場合、Π=0.364091,Π=0.185659,Π=0.139381,Π=0.100571,Π=0.070432及びΠ=0.139865である。
e)P値=
Figure 2015528159
を計算する。この場合、igamc()は、例えば、Cephes C−language Special functions math library
Figure 2015528159
又は
Figure 2015528159
において提供される不完全ガンマ関数を表す。
f)(1%レベルにおける)規則の決定。計算したP値が0.01より小さい場合、シーケンスが非ランダムであると結論付ける。そうでない場合、シーケンスがランダムであると結論付ける。
結果的には、重なりのあるテンプレート適合検定の結果、すなわち、結果的に得られるP値を、P値が0.01以上である場合に予め決定された基準を満たすように非圧縮性データのシーケンスの非圧縮性に対する予め決定された基準として用いることができる。
非圧縮性データのシーケンスの非圧縮性を表す予め決定された基準として用いることができる統計的尺度を決定するために用いることができる統計的検定第2の例として、離散フーリエ変換(スペクトル)検定がある。この検定の目的は、シーケンスの離散フーリエ変換のピーク高さに注目することによってビットストリームが周期的なパターンを示すか否かを検出することである。各パターンが互いに近接して見つけられる場合、好ましくない結果が生じ、データは、非ランダム/圧縮性であるとみなされる。
離散フーリエ変換(スペクトル)検定を、例えば、NISTによる“A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications”の表題の文献にも記載されている(a)〜(i)の以下のステップを用いて説明することができる。離散フーリエ変換(スペクトル)検定の以下の説明において、nは、ビットストリングの長さを表し、εは、テストされるビットのシーケンスを表し、dは、95%しきい値より下にある周波数成分の観察される数と予測される数との間の正規化差である。
a)入力シーケンス(ε)の0及び1を、シーケンスX=x,x,...,xを形成するために−1及び+1の値に変換し、この場合、x=2εi−1である。
b)離散フーリエ変換(DFT)をXに適用してS=DFT(X)を生成する。複素変数のシーケンスを生成し、これは、異なる周波数におけるビットのシーケンスの周期的な成分を表す。
c)M=
Figure 2015528159
を計算する。この場合、S’は、Sの最初のn/2要素からなるサブストリングであり、モジュロ関数(modulus function)は、ピーク高さのシーケンスを生成する。
d)T=
Figure 2015528159
=95%ピーク高さしきい値を計算する。ランダム性の仮定の下では、テストから得られる値の95%はTを超えるべきではない。
e)N=.95n/2を計算する。Nは、Tより小さい(ランダム性の仮定の下で)予測される理論的なピーク数(95%)である。
f)N=MにおけるTより小さい実際に観察されるピーク数を計算する。
g)d=
Figure 2015528159
を計算する。
h)P値=
Figure 2015528159
を計算し、この場合、erfcは、math.hのヘッダ及びそれに対応する数値演算ライブラリに含まれるANSI Cの関数である。
i)(1%レベルにおける)規則の決定。計算したP値が0.01より小さい場合、シーケンスが非ランダムであると結論付ける。そうでない場合、シーケンスがランダムであると結論付ける。
結果的には、離散フーリエ変換(スペクトル)検定の結果、すなわち、結果的に得られるP値を、P値が0.01以上である場合に予め決定された基準を満たすような非圧縮性データのシーケンスの非圧縮性に対する予め決定された基準として用いることができる。
非圧縮性データのシーケンスの非圧縮性を表す予め決定された基準として用いることができる統計的尺度を決定するために用いることができる統計的検定第3の例として、Maurerのユニバーサル統計検定がある。Maurerのユニバーサル統計検定は、情報の損失なく著しく圧縮することができるか否かを決定するのに適用することができる。その結果、著しい圧縮性データシーケンスは非ランダムとみなされ、それに対し、著しく圧縮することができないデータシーケンスはランダムとみなされる。Maurerのユニバーサル統計検定の出力値は、情報の損失なく圧縮することができない程度までデータシーケンスがランダムであるか否かを表し、これによって、(疑似ランダム)データのシーケンスの非圧縮性及び/又はランダム性を表す統計的尺度の一例を提供する。
換言すれば、Maurerのユニバーサル統計検定の目的は、バイナリシーケンスを圧縮することができるか否かを検出することである。著しい圧縮性のシーケンスは、非ランダムとみなされる。例えば、RNGの出力は、出力シーケンスを圧縮することができない場合にはこのテストをパスすべきである。テストは、整合するパターン間のビット数を検査する間にシーケンス全体について調べることを含む。テストは、情報の損失なくシーケンスを著しく圧縮することができるか否かを検出する。
Maurerのユニバーサル統計検定を、例えば、NISTによる“A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications”の表題の文書で見つけられる(a)〜(f)の以下のステップによって説明することができる。Maurerのユニバーサル統計検定の以下の説明において、Lは、各ブロックの長さを表し、Qは、初期化シーケンスのブロック数を表し、nは、ビットストリングの長さを表し、εは、テストされるビットのシーケンスを表す。
a)nビットシーケンス(ε)を、二つのセグメントに分割する。初期化シーケンスは、Q個のLビット非重複ブロック(non-overlapping block)からなり、テストセグメントは、K個のLビット非重複ブロックからなる。完全なLビットブロックを形成しないシーケンスの端にとどまるビットは、捨てられる。最初のQブロックは、テストを初期化するために用いられる。残りのKブロックは、テストブロックである(K=[n/L]−Q)。
b)初期化セグメントを用いることによって、テーブルが、あり得るLビット値の各々に対して形成される(すなわち、Lビット値は、テーブルのインデックスとして用いられる)。各Lビットブロックの最後の発生のブロック数は、テーブルに表記される(すなわち、1〜Qのiに対して、T=i。この場合、jは、i番目のLビットブロックのコンテンツの十進表現である。)。
c)テストセグメントのKブロックの各々を調べ、同一のLビットブロックの最後の発生からのブロック数(すなわち、i−T)を決定する。テーブルの値を現在のブロックの位置(すなわち、T=i)に置換する。K個のブロックで検出した距離の全てのlogの和(sum)を累算するために同一のLビットブロックの再発間の計算した距離を加算する(すなわち、sum=sum+log(i−T))。
d)検定統計量:f
Figure 2015528159
を計算する。この場合、Tは、i番目のLビットブロックのコンテンツの十進表現に対応するテーブル項目である。
e)P値=
Figure 2015528159
を計算する。この場合、erfcは、math.hのヘッダ及びそれに対応する数値演算ライブラリに含まれるANSI−Cの関数であり、expectedValue(L)及びσを、“Handbook of Applied Cryptography”からの事前計算された値のテーブルから取得する。ランダム性の仮定の下では、サンプル平均expectedValue(L)は、所定のLビット長の演算された統計量の理論的に予測される値である。理論的な標準偏差は、σ=
Figure 2015528159
によって与えられ、この場合、c=
Figure 2015528159
である。
f)計算したP値が0.01未満である場合、シーケンスが非ランダムであると結論付けられ、そうでない場合、シーケンスがランダムであると結論付けられる。
その結果、Maurerのユニバーサル統計検定の結果、すなわち、計算されたP値を、非圧縮性データのシーケンスの非圧縮性に対する予め決定された基準として用いることができ、P値が0.01以上である場合に予め決定された基準を満たす。
データシーケンスの非圧縮性を評価するのに適した統計検定の三つの例を、(P)RNGから生じたデータのシーケンス、データ圧縮器から生じたデータのシーケンス又は異なるタイプのデータ源から生じたデータのシーケンスの非圧縮性を評価するのに同様に適用することができる。
データ提供部112を、メモリから、又は、メモリから非圧縮性データのシーケンスを読み出すとともに読み出したシーケンスを非圧縮データの一つ以上のブロックに分割することによって、非圧縮性データの一つ以上のブロックを取得するように構成することができる。非圧縮性データのブロック及び/又はシーケンス非圧縮性データを、並行して実行する他のプロセスによってメモリに格納し、又は、これらを事前に生成するとともにデータを事前に格納することができる。メモリを、データ消去装置110の構成要素として、データ消去装置をホストする装置の構成要素として又はデータ提供部112によってアクセスすることができる個別の装置の構成要素として、データ提供部112に対して利用することができる。
代わりに、データ提供部112を、非圧縮性データの一つ以上のブロックに分割するために非圧縮性データのシーケンスを生成する予め決定されたプロセス又は方法を適用することによって非圧縮性データの一つ以上のブロックを取得するように構成することができる。プロセス又は方法は、上述したようにPRNG、例えば、第1の例示的なPRNG、第2の例示的なPRNG、第3の例示的なPRNG及び/又は予め決定された基準を満たす非圧縮性データのシーケンスを提供するのに適切であると考えられる他のRPNG、又は、予め決定された基準を満たす非圧縮性データのシーケンスを提供するように構成されたデータ圧縮器を用いることを備えることができる。
非圧縮性データの一つ以上のブロックは等しいサイズを有することができ、又は、非圧縮性データの一つ以上のブロックは異なるサイズを示すことができる。一つ以上のデータブロックのサイズをS,i=1,...,nで表し、データ記憶装置120の記憶容量をCで表す場合、データ記憶装置120の記憶容量以上の非圧縮性データの一つ以上のブロックのサイズの和の要件を、
Figure 2015528159
と定式化することができる。基本的には任意のブロックサイズSを適用できるのに対し、単一のブロックデータのサイズSを、例えば、512バイトから4ギガバイトまでの範囲の適切なサイズとすることができる。非圧縮性データの一つ以上のブロックのサイズを、データ記憶装置120の記憶容量Cの観点から及び/又はホストインタフェース130の特性又は性能の観点から選択することができる。しかしながら、典型的には、S<<C、すなわち、データ記憶装置120の記憶容量より著しく小さいサイズを有する非圧縮性データのブロックが用いられる。
データ消去装置110を、データ記憶装置120の全ての物理メモリ位置の上書きを保証するためにデータ提供部112及びデータ書込み部114に対して上述した動作を1回以上行うように構成することができる。データ記憶装置120の記憶容量以上の結合されたサイズを有する非圧縮性データの一つ以上のブロックのセットの書込みを、(単一の)書込みパスと称することができる。したがって、データ消去プロセスは、全体としては一つ以上の上書きパスを備えることができる。
これに関連して、データ提供部112を、非圧縮性データの一つ以上のブロックの一つ以上の追加のセットを取得するように構成することができ、追加のセットのそれぞれの非圧縮性データの一つ以上のブロックのサイズの和は、データ記憶装置の記憶容量以上である。非圧縮性データの一つ以上のブロックの一つ以上の追加のセットを、好適には、非圧縮性データの最初の一つ以上のブロックの提供の基礎として用いられるような非圧縮性データの同一シーケンスに基づいて取得する。代わりに、場合によっては異なる特性を有する予め決定された基準を満たす非圧縮性データの個別のシーケンスを、非圧縮性データの一つ以上の追加のセットの基礎として用いることができる。しかしながら、非圧縮性データの一つ以上のブロックの各セットを、好適には、非圧縮性データの一つ以上のブロックのセットのブロックに亘って十分なレベルの非圧縮性を保持するのを保証するために非圧縮性データの単一のシーケンスに基づいて設ける。
さらに、データ書込み部114を、データ記憶装置120に対して、データ記憶装置に現在格納されているデータを上書きするために記憶用の非圧縮性データの一つ以上のブロックの一つ以上の追加のセットを一度に1セットずつ提供するように構成することができる。換言すれば、記憶のためにデータ記憶装置120に提供される非圧縮性データの一つ以上のブロックの追加のセットの各々は、単一の上書きパスを表す。
データ書込み部114を、データ記憶装置120へのデータの成功した上書きを検証するように構成することもできる。これに関連して、データ書込み部114を、データ記憶装置120に格納したデータの一つ以上の選択した部分と、データ記憶装置への記憶のために最近設けた非圧縮性データの一つ以上のブロックのそれぞれの部分とを比較するように構成することができる。検証を、データ記憶装置120への非圧縮性データの一つ以上のブロックの最初の提供後及び/又はデータ記憶装置120への非圧縮性データの一つ以上のブロックの一つ以上の追加のセットの提供後に実行することができる。検証は、データ記憶装置への記憶のために最近設けた非圧縮性データの一つ以上のブロックのそれぞれの部分が実際にデータ記憶装置に格納されるのを確認するのに役に立ち、したがって、データ記憶装置120の論理メモリの一つ以上の部分のそれぞれに以前に格納したデータの成功した上書きの表示を提供する。
一つ以上の選択した部分は、データ記憶装置120の論理メモリの一つ以上の部分の予め規定されたセットを備える。代わりに又は追加して、選択した部分は、例えば、固定した又はランダムに選択したサイズを有するデータ記憶装置120の論理メモリの一つ以上のランダムに選択した部分を備えることができ、これによって、データ記憶装置120の記憶部に設けられたデータの観点からデータ消去プロセスの成功のスポットチェックを提供する。更に別の例として、(一つ以上の)選択した部分は、データ記憶装置120の全記憶容量をカバーすることができ、これによって、上書きプロセスの完全な検証を提供する。データ記憶装置に格納されたデータの選択した部分の全てが、記憶のために最近設けた非圧縮性データの一つ以上のブロックの各部分と同一である場合、検証を成功したものとみなすことができる。
データ消去装置110を、予め決定された回数すなわち1回以上の上書きパスを適用するように構成することができる。代わりに、データ消去装置110を、検証の結果の観点から複数の上書きパスを選択するように構成することができる。一例として、データ書込み部114を、上書きパスのそれぞれの後に成功した上書きを検証するとともに、予め決定された回数の上書きパスの結果としての記憶装置120へのデータの成功した上書きに出くわしたときにデータ消去プロセスを完了したと見なすように構成することができる。
上述した動作、手順及び/又は機能に加えて、データ消去装置110を、データ記憶装置120に格納されたデータの完全な消去を更に保証するための別の手段を適用するように構成することができる。
一例として、データ消去装置110を、データ記憶装置120内にファームウェアレベルコマンドを発行してデータ記憶装置120の全てのユーザアドレス指定可能記憶位置の初期化を行うことによってデータ記憶装置120に現在格納されているデータを消去する内部プロセスをデータ記憶装置120に適用させるように構成されたコマンドを、データ記憶装置120に供給するように構成することができる。そのようなコマンドを、サニタイズコマンドと称することができ、コマンドを、例えば、データ書込み部114によって発行することができる。データ書込み部114を、例えば、非圧縮性データの一つ以上のブロックによるデータ記憶装置120へのデータの成功した上書きの検証に関連して上述したようにしてサニタイズコマンドの成功を検証するように更に構成することができる。特に、サニタイズコマンドの検証は、非圧縮性データの一つ以上のブロックのそれぞれの部分がもはやデータ記憶装置に格納されていないことを確認するために、データ記憶装置120に格納されたデータの一つ以上の選択した部分と、データ記憶装置への記憶のために設けた非圧縮性データの一つ以上のブロックのそれぞれの部分とを比較し、これによって、サニタイズコマンドの成功した供給の表示を提供する。
サニタイズコマンドのフォーマットは、典型的には、データ消去装置110及びデータ記憶装置120に接続するホストインタフェース130に依存する。一例として、ホストインタフェース130がATAインタフェースを備える場合、サニタイズコマンドは、各インタフェース又はプロトコルに従って“SECURITY ERASE UNIT”コマンド又は“SANITIZE”コマンドセットを備えることができる。他の例として、ホストインタフェース130がSCSIコマンドを備える場合、サニタイズコマンドは、各インタフェース又はプロトコルに従って“FORMAT UNIT”コマンドを備えることができる。
データ消去装置110の構造ユニット、例えば、データ提供部112及びデータ書込み部114に割り当てられた動作、手順及び/又は機能を、異なる方法でこれらの部分の間で分けることができる。さらに、データ消去装置110は、データ提供部112及びデータ書込み部114に割り当てられた動作、手順及び/又は機能の一部を実行するように構成することができる別の部分又はユニットを備えることができる。それに対し、データ提供部112及びデータ書込み部114に割り当てられた動作、手順及び/又は機能を、データ消去装置110内の単一の部分又は単一の処理装置に割り当てることができる。
特に、データ消去装置110を、データ記憶装置120に記憶されたデータを消去する機器として設けることができ、データ消去機器は、予め決定された基準を満たす非圧縮性データのシーケンスを取得する手段であって、非圧縮性データのシーケンスは、非圧縮性データの一つ以上のブロックに分割され、非圧縮性データの一つ以上のブロックのサイズの和はデータ記憶装置の記憶容量以上である手段と、データ記憶装置に対して、データ記憶装置に現在格納されているデータを上書きするために記憶用の非圧縮性データの一つ以上のブロックを提供する手段と、を備える。
データ消去装置110に関連した上述した動作、手順及び/又は機能を、対応する動作、手順及び/又は機能を実現する方法の形態で説明することもできる。これに関連する一例として、図4は、データ記憶装置120に格納されたデータを消去する例示的な方法400を示す。したがって、方法400は、説明に役立つ例としての役割を果たし、データ消去装置110に関連した上述した動作、手順及び/又は機能の異なる組合せを提供する別の方法を、本発明の範囲を逸脱することなく提供することができる。
方法400は、データ提供部112に関連して上述するとともにブロック410に示すように、非圧縮性に関連する予め決定された基準を満たす非圧縮性データのシーケンスから抽出される非圧縮データの一つ以上のブロックを取得することを備える。予め決定された基準は、例えば、データ提供部112に関連して上述したように、予め決定されたしきい値を超えるデータのシーケンスの非圧縮性を表す一つ以上の統計的尺度を備える。非圧縮性データのシーケンスは、例えば、データ提供部112に関連して説明したように、例えば、提供する乱数のランダム性に関連する予め決定された基準を満たす乱数発生器から、又は、場合によってはランダムな原始データをこの関連で予め決定された基準を満たす非圧縮性データのシーケンスに圧縮するために予め決定された規則を適用するデータ圧縮器から発生することができる。
方法400は、ブロック420に示すとともにデータ書込み部114に関連して上述したように、データ記憶装置120に対して、データ記憶装置120に現在格納されているデータを上書きするために記憶用の非圧縮性データの一つ以上のブロックを提供することを更に備えることができる。
その結果、方法400は、非圧縮性データの一つ以上のブロックに対して、圧縮性データのブロックのサイズが非圧縮性データの対応するブロックのサイズ以上となるように、データ記憶装置120の物理メモリに書き込まれ、したがって、格納された圧縮性データの対応する一つ以上のブロックを提供するために非圧縮性データの一つ以上のブロックに対する圧縮をデータ記憶装置120で行うことを任意に更に備えることができる。方法400は、データ記憶装置120の物理メモリに圧縮性データを格納することを任意に更に備えることができる。方法400は、現在の上書きパスを完了するためにデータ記憶装置120の記憶に対して非圧縮性データの十分な数のブロックを提供するまでブロック410及び420で説明した処理の繰り返しを備えることができる。上書きパスを完了することは、非圧縮性データのブロックの結合されたサイズがデータ記憶装置120の記憶容量以上となるようにデータ記憶装置120への格納のための非圧縮性データのブロックを(取得すること及び)提供することを備える。したがって、ブロック430に示すような現在の上書きパスを完了したか否かのテストは、現在の上書きパス中にデータ記憶装置120に提供される非圧縮性データのブロックの累算したサイズがデータ記憶装置120の記憶容量以上であるか否かをチェックすることを備えることができる。累算したサイズがデータ記憶装置120の記憶容量以上であることに応答して、方法400は、ブロック440又は450に進み、それに対し、累算したサイズがデータ記憶装置120の記憶容量未満であることに応答して、方法410は、ブロック410に戻る。
方法400は、ブロック440に示すとともにデータ書込み部114に関連して上述したように、データ記憶装置120に格納するために最近設けた非圧縮性データの一つ以上のブロックの各部分が実際に格納されているのを検証するために、データ記憶装置120に格納されたデータの一つ以上の選択した部分と記憶用に最近設けた非圧縮性データの一つ以上のブロックの各部分とを比較することを、任意に更に備えることができる。
方法400は、ブロック410〜430又は440で言及した動作、手順及び/又は機能を任意に繰り返すことができる。換言すれば、これは、上述したように、(予め決定された)複数の上書きパスを設けることに対応する。特に、方法400は、ブロック450に示すように、現在の上書きパスが最後のものであるか否かをチェックすることができる。チェックは、例えば、データ消去装置110に関連して上述したように、予め決定された数の上書きパスを完了したか否か及び/又はブロック440で言及した任意の検証がデータ記憶装置120に以前に格納されたデータの成功した上書きを表すか否かを備えることができる。その結果、現在の上書きパスが最後のものでないことに応答して、方法400は、次の上書きパスのためにブロック410に進み、それに対し、現在の上書きパスが最後のものであることに応答して、方法400を完了したものとみなすことができ、したがって、データ記憶装置120に以前に格納されたデータを、安全に上書きされたものとみなすことができ、又は、方法400は、データ消去装置110に関連して上述するとともにブロック460で示すように、用いたホストインタフェース130に応じてサニタイズコマンドを任意に発行することができる。ブロック460で言及したサニタイズを、例えば、ブロック410の前で、ブロック430(又は440)と450との間で、又は、ブロック450と410との間で代わりに又は追加して実行することができる。
図5は、プロセッサ510と、メモリ520と、他の装置との無線通信又は有線通信を行うことができるネットワークカード又はネットワークアダプタのような通信インタフェース530と、を備える例示的な装置を図式的に示す。プロセッサ510は、メモリ520からの読出し及びメモリ520への書込みを行うように構成される。装置500は、データ、コマンド及び/又は他の入力をプロセッサ510に供給し及び/又はデータ及び他の入力をプロセッサ510から受信するユーザインタフェース540を更に備えることができ、ユーザインタフェース540は、例えば、ディスプレイ、キーボード又はキー、マウス又は各ポインティングデバイス、タッチスクリーン等を備える。装置500は、図5の例に示さない他の構成要素を備えることができる。
プロセッサ510を単一の構成要素として図5の例で示すが、プロセッサ510を、一つ以上の個別の構成要素として実現することができる。メモリ520を単一の構成要素として示すが、メモリ520を、一つ以上の個別の構成要素として実現することができ、その一部又は全てを、統合/取外し自在とすることができ、及び/又は、永久的/半永久的/ダイナミック/キャッシュメモリとすることができる。
装置500を、十分な処理能力を有する専用又は汎用装置として、例えば、携帯電話、カメラ、ビデオカメラ、音楽プレーヤ、ゲーム機、ラップトップコンピュータ、デスクトップコンピュータ、サーバ装置、携帯情報端末(PDA)、インターネットタブレット、テレビ受像機等として実現することができる。代わりに、装置500を、上述したようにデータ消去装置110として動作するための専用の装置として実現することができる。
メモリ520は、プロセッサ510にロードするとともにプロセッサ510によって実行されるときに装置500の動作を制御するコンピュータ読取可能命令を備えるコンピュータプログラム550を格納することができる。一例として、コンピュータプログラム550は、一つ以上の命令の一つ以上のシーケンスを有することができる。コンピュータプログラム550を、コンピュータプログラムコードとして設けることができる。プロセッサ510は、コンピュータプログラム550に含まれる一つ以上の命令の一つ以上のシーケンスをメモリ520から読み出すことによってコンピュータプログラム550をロードし及び実行することができる。一つ以上の命令の一つ以上のシーケンスを、一つ以上のプロセッサによって実行するときに、データ消去装置110に関連して上述した動作、手順及び/又は機能を装置、例えば、装置500によって実現させるように構成することができる。
したがって、装置500は、少なくとも一つのプロセッサ510と、一つ以上のプログラムに対するコンピュータプログラムコードを含む少なくとも一つのメモリ520と、を備えることができ、少なくとも一つのメモリ520及びコンピュータプログラムコードは、データ消去装置110に関連して上述した動作、手順及び/又は機能を少なくとも一つのプロセッサ510により装置500に実行させるように構成される。
コンピュータプログラム550を、装置と独立して設けることができ、コンピュータプログラム550を、任意の適切な受渡機構(delivery mechanism)を介して装置500に設けることができる。一例として、受渡機構は、格納されたプログラムコードを有する少なくとも一つのコンピュータ読取可能非一時的記憶媒体を備え、プログラムコードは、装置によって実行されるときに、データ消去装置110に関連して上述した動作、手順及び/又は機能を実行するために処理を装置によって少なくとも実現させる。受渡機構を、例えば、コンピュータ読取可能記憶媒体、コンピュータプログラム製品、記憶装置、CD−ROMのような記録媒体、DVD、対応する光媒体、コンピュータプログラム550を目に見える方法で実現する製品等とすることができる。他の例として、受渡機構を、信頼性をもってコンピュータプログラム550を転送するように構成した信号とすることができる。
プロセッサへの言及は、プログラマブルプロセッサだけでなく、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、信号プロセッサ等のような専用回路も含むことを理解すべきである。前述の説明で説明した特徴を、明確に説明した組合せ以外の組合せで用いることができる。機能を所定の特徴を参照して説明したが、これらの機能を、説明した又は説明していない他の特徴によって実行することができる。特徴を所定の実施の形態を参照しながら説明したが、これらの特徴は、説明した又は説明していない他の実施の形態に存在することができる。

Claims (26)

  1. データ記憶装置に格納されたデータを消去するデータ消去装置であって、
    予め決定された基準を満たす非圧縮性データのシーケンスを取得するように構成したデータ提供部であって、前記予め決定された基準は、前記予め決定された基準を満たす非圧縮性データのシーケンスの圧縮性又は非圧縮性を表す統計的尺度を備え、前記非圧縮性データのシーケンスは、前記非圧縮性データの一つ以上のブロックに分割され、前記非圧縮性データの一つ以上のブロックのサイズの和は、前記データ記憶装置の記憶容量以上であるデータ提供部と、
    前記データ記憶装置に対して、前記データ記憶装置に現在格納されているデータを上書きするために記憶用の非圧縮性データの一つ以上のブロックを提供するように構成したデータ書込み部と、
    を備えるデータ消去装置。
  2. 前記統計的尺度は、予め決定されたしきい値を超えるデータの圧縮性を表す予め決定された統計的検定を用いながら前記非圧縮性データのシーケンスに基づいて取得したP値を備える請求項1に記載のデータ消去装置。
  3. 前記予め決定された統計的検定は、重なりのあるテンプレート適合検定、離散フーリエ変換(スペクトル)検定又はMaurerのユニバーサル統計検定を備える請求項2に記載のデータ消去装置。
  4. 前記非圧縮性データのシーケンスを取得することは、前記予め決定された基準を満たす疑似乱数データのシーケンスを生成するように構成した乱数発生器を用いることを備える請求項1から3のうちのいずれか一項に記載のデータ消去装置。
  5. 前記乱数発生器を用いることは、KISS乱数発生器、Xorshift乱数発生器及びメルセンヌ・ツイスタ乱数発生器の一つに対する繰り返しの呼出しを備える請求項4に記載のデータ消去装置。
  6. 前記非圧縮性データのシーケンスを取得することは、予め決定された規則に従って圧縮データのシーケンスを生成するために原始データを圧縮するデータ圧縮器を用いることを備える請求項1から3のうちのいずれか一項に記載のデータ消去装置。
  7. 前記原始データは、乱数発生器を用いることによって取得される請求項6に記載のデータ消去装置。
  8. 前記データ圧縮器は、デフレートデータ圧縮器又はBZip2データ圧縮器を備える請求項6又は7に記載のデータ消去装置。
  9. 前記データ提供部は、前記非圧縮性データの一つ以上のブロックの一つ以上の追加のセットを取得するように更に構成され、前記追加のセットのそれぞれの前記非圧縮性データの一つ以上のブロックのサイズの和は、前記データ記憶装置の記憶容量以上であり、
    前記データ書込み部は、前記データ記憶装置に対して、前記データ記憶装置に現在格納されているデータを上書きするために記憶用の非圧縮性データの一つ以上のブロックの一つ以上の追加のセットを一度に1セットずつ提供するように更に構成した請求項1から8のうちのいずれか一項に記載のデータ消去装置。
  10. 前記データ書込み部は、前記データ記憶装置への記憶のために最近設けた前記非圧縮性データの一つ以上のブロックのそれぞれの部分が格納されていることを確認するために、前記データ記憶装置に格納されたデータの一つ以上の選択した部分と、前記データ記憶装置への記憶のために最近設けた前記非圧縮性データの一つ以上のブロックのそれぞれの部分とを比較するように更に構成された請求項1から9のうちのいずれか一項に記載のデータ消去装置。
  11. データ記憶装置に格納されたデータを消去するシステムであって、
    請求項1から10のうちのいずれか一項に記載のデータ消去装置と、
    圧縮性データの対応する一つ以上のブロックを提供するために非圧縮性データの一つ以上のブロックに対する圧縮を行い、データの一つ以上の圧縮されたブロックの各々に対して、前記圧縮性データのブロックのサイズは、前記非圧縮性データの対応するブロックのサイズ以上であり、かつ、前記圧縮性データの一つ以上のブロックを物理メモリに格納するように構成したデータ記憶装置と、
    を備えるシステム。
  12. 前記データ記憶装置は、ソリッドステートドライブを備える請求項11に記載のシステム。
  13. データ記憶装置に格納されたデータを消去する方法であって、
    予め決定された基準を満たす非圧縮性データのシーケンスを取得することであって、前記予め決定された基準は、前記予め決定された基準を満たす非圧縮性データのシーケンスの圧縮性又は非圧縮性を表す統計的尺度を備え、前記非圧縮性データのシーケンスは、前記非圧縮性データの一つ以上のブロックに分割され、前記非圧縮性データの一つ以上のブロックのサイズの和は、前記データ記憶装置の記憶容量以上であることと、
    前記データ記憶装置に対して、前記データ記憶装置に現在格納されているデータを上書きするために記憶用の非圧縮性データの一つ以上のブロックを提供することと、
    を備える方法。
  14. 前記統計的尺度は、予め決定されたしきい値を超えるデータの圧縮性を表す予め決定された統計的検定を用いながら前記非圧縮性データのシーケンスに基づいて取得したP値を備える請求項13に記載の方法。
  15. 前記予め決定された統計的検定は、重なりのあるテンプレート適合検定、離散フーリエ変換(スペクトル)検定又はMaurerのユニバーサル統計検定を備える請求項14に記載の方法。
  16. 前記非圧縮性データのシーケンスを取得することは、前記予め決定された基準を満たす疑似乱数データのシーケンスを生成するように構成した乱数発生器を用いることを備える請求項13から15のうちのいずれか一項に記載の方法。
  17. 前記乱数発生器を用いることは、KISS乱数発生器、Xorshift乱数発生器及びメルセンヌ・ツイスタ乱数発生器の一つに対する繰り返しの呼出しを備える請求項16に記載の方法。
  18. 前記非圧縮性データのシーケンスを取得することは、予め決定された規則に従って圧縮データのシーケンスを生成するために原始データを圧縮するデータ圧縮器を用いることを備える請求項13から15のうちのいずれか一項に記載の方法。
  19. 前記原始データは、乱数発生器を用いることによって取得される請求項18に記載の方法。
  20. 前記データ圧縮器は、デフレートデータ圧縮器又はBZip2データ圧縮器を備える請求項18又は19に記載の方法。
  21. 前記非圧縮性データの一つ以上のブロックの一つ以上の追加のセットを取得することであって、前記追加のセットのそれぞれの前記非圧縮性データの一つ以上のブロックのサイズの和は、前記データ記憶装置の記憶容量以上であることと、
    前記データ記憶装置に対して、前記データ記憶装置に現在格納されているデータを上書きするために記憶用の非圧縮性データの一つ以上のブロックの一つ以上の追加のセットを一度に1セットずつ提供することと、
    を更に備える請求項13から20のうちのいずれか一項に記載の方法。
  22. 前記データ記憶装置への記憶のために最近設けた前記非圧縮性データの一つ以上のブロックのそれぞれの部分が格納されていることを確認するために、前記データ記憶装置に格納されたデータの一つ以上の選択した部分と、前記データ記憶装置への記憶のために最近設けた前記非圧縮性データの一つ以上のブロックのそれぞれの部分とを比較することを更に備える請求項13から21のうちのいずれか一項に記載の方法。
  23. 圧縮性データの対応する一つ以上のブロックを提供するために非圧縮性データの一つ以上のブロックに対する圧縮を行うことであって、データの一つ以上の圧縮されたブロックの各々に対して、前記圧縮性データのブロックのサイズは、前記非圧縮性データの対応するブロックのサイズ以下であることと、
    前記圧縮性データの一つ以上のブロックを前記データ記憶装置の物理メモリに格納することと、
    を更に備える請求項13から22のうちのいずれか一項に記載の方法。
  24. 前記データ記憶装置は、ソリッドステートドライブを備える請求項23に記載の方法。
  25. 一つ以上のプロセッサによって実行するときに請求項13から22のうちのいずれか一項に記載の方法を少なくとも装置に実行させる一つ以上の命令の一つ以上のシーケンスを含むコンピュータプログラム。
  26. 格納されるプログラムコードを有する少なくとも一つのコンピュータ読取可能非一時的記憶媒体を備え、プログラムは、装置によって実行するときに請求項13から22のうちのいずれか一項に記載の方法を少なくとも装置に実行させるコンピュータプログラム製品。
JP2015519268A 2012-07-05 2013-07-05 記憶装置に格納されたデータを消去する装置、システム、方法及びコンピュータプログラム Active JP6093014B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FI20125779 2012-07-05
FI20125779A FI125308B (en) 2012-07-05 2012-07-05 Device, arrangement, method, and computer program for erasing data stored in mass storage
PCT/FI2013/050738 WO2014006274A1 (en) 2012-07-05 2013-07-05 An apparatus, a system, a method and a computer program for erasing data stored on a storage device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2017022124A Division JP6313489B2 (ja) 2012-07-05 2017-02-09 記憶装置に格納されたデータを消去する装置、システム、方法及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2015528159A true JP2015528159A (ja) 2015-09-24
JP6093014B2 JP6093014B2 (ja) 2017-03-08

Family

ID=48985784

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015519268A Active JP6093014B2 (ja) 2012-07-05 2013-07-05 記憶装置に格納されたデータを消去する装置、システム、方法及びコンピュータプログラム
JP2017022124A Active JP6313489B2 (ja) 2012-07-05 2017-02-09 記憶装置に格納されたデータを消去する装置、システム、方法及びコンピュータプログラム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2017022124A Active JP6313489B2 (ja) 2012-07-05 2017-02-09 記憶装置に格納されたデータを消去する装置、システム、方法及びコンピュータプログラム

Country Status (5)

Country Link
US (3) US9286231B2 (ja)
EP (1) EP2834769B1 (ja)
JP (2) JP6093014B2 (ja)
FI (1) FI125308B (ja)
WO (1) WO2014006274A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190109529A (ko) * 2017-02-02 2019-09-25 블랑코 테크놀로지 그룹 아이피 오이 데이터 소거 프로세스를 확인하기 위한 방법 및 시스템

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI125308B (en) * 2012-07-05 2015-08-31 Blancco Oy Ltd Device, arrangement, method, and computer program for erasing data stored in mass storage
US9106515B2 (en) 2012-10-22 2015-08-11 Futurewei Technologies, Inc. System and apparatus of a software-service-defined-network (SSDN)
US9830089B1 (en) 2013-06-25 2017-11-28 Wickr Inc. Digital data sanitization
KR102188062B1 (ko) * 2014-02-28 2020-12-07 삼성전자 주식회사 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법
US20160034217A1 (en) * 2014-07-31 2016-02-04 Samsung Electronics Co., Ltd. Memory controller configured to control data sanitization and memory system including the same
US10361844B2 (en) * 2015-04-20 2019-07-23 Certicom Corp. Generating cryptographic function parameters based on an observed astronomical event
US10079675B2 (en) 2015-04-20 2018-09-18 Certicom Corp. Generating cryptographic function parameters from a puzzle
US10375070B2 (en) 2015-04-20 2019-08-06 Certicom Corp. Generating cryptographic function parameters from compact source code
US10193579B2 (en) * 2015-09-08 2019-01-29 Toshiba Memory Corporation Storage control device, storage system, and storage control method
KR102342825B1 (ko) * 2015-12-08 2021-12-23 삼성전자주식회사 전자 장치, 그의 신호 처리 방법, 생체 신호 측정 시스템 및 비일시적 컴퓨터 판독가능 기록매체
US10523244B2 (en) * 2016-08-11 2019-12-31 Zebware Ab Device and associated methodoloy for encoding and decoding of data for an erasure code
US10113240B2 (en) * 2017-02-16 2018-10-30 Stratocom Solutions Corporation Cathodic protection system monitoring
CN111357203A (zh) * 2017-06-26 2020-06-30 斯蒂芬·泰琳 用于将大数据变换成较小的表示的系统和方法
KR102376152B1 (ko) * 2017-08-30 2022-03-21 한국전자통신연구원 클라우드 서비스 제공을 위한 스토리지 제공 장치 및 방법
KR102288503B1 (ko) * 2017-10-23 2021-08-10 한국전자통신연구원 통합 스토리지 관리 장치 및 방법
US11347653B2 (en) * 2018-08-31 2022-05-31 Nyriad, Inc. Persistent storage device management
GB201814918D0 (en) * 2018-09-13 2018-10-31 Blancco Tech Group Ip Oy Method and apparatus for use in sanitizing a network of non-volatile memory express devices
US10628076B1 (en) * 2018-10-01 2020-04-21 Micron Technology, Inc. Data erasure in memory sub-systems
US11061598B2 (en) * 2019-03-25 2021-07-13 Western Digital Technologies, Inc. Optimized handling of multiple copies in storage management
CN110866291B (zh) 2019-11-15 2023-03-24 北京工业大学 一种基于双重安全机制的废旧电子产品信息清除方法
CN113467699B (zh) * 2020-03-30 2023-08-22 华为技术有限公司 一种提升可用存储容量方法及装置
US11449265B2 (en) 2020-10-30 2022-09-20 Seagate Technology Llc Secure erasure of a drive array using drive-defined, trusted computing group bands
US20240004574A1 (en) * 2022-06-29 2024-01-04 Western Digital Technologies, Inc. Automatic data erase from data storage device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0855063A (ja) * 1994-08-10 1996-02-27 Hitachi Ltd 記憶装置のデータ保証方法
JP2006012157A (ja) * 2004-06-24 2006-01-12 Hewlett-Packard Development Co Lp 不揮発性記憶デバイスを消去するソフトウェア
US20070116267A1 (en) * 2003-04-01 2007-05-24 Sytex, Inc. Methods for categorizing input data
US20080010326A1 (en) * 2006-06-15 2008-01-10 Carpenter Troy A Method and system for securely deleting files from a computer storage device
JP2009169650A (ja) * 2008-01-16 2009-07-30 Hitachi Ltd 計算機システム、管理計算機及びデータ管理方法
JP2011205295A (ja) * 2010-03-25 2011-10-13 Canon Inc 情報処理装置、データ処理方法、プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246362A1 (en) * 2004-05-03 2005-11-03 Borland Devin P System and method for dynamci log compression in a file system
US20050257017A1 (en) 2004-05-14 2005-11-17 Hideki Yagi Method and apparatus to erase hidden memory in a memory card
US20060268125A1 (en) * 2005-05-31 2006-11-30 M-Systems Flash Disk Pioneers, Ltd. Digital camera system with recyclable memory card
US8347023B2 (en) * 2008-10-06 2013-01-01 Marvell World Trade Ltd. Compression based wear leveling for non-volatile memory
US8479080B1 (en) * 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8234520B2 (en) * 2009-09-16 2012-07-31 International Business Machines Corporation Wear leveling of solid state disks based on usage information of data and parity received from a raid controller
US20110107042A1 (en) * 2009-11-03 2011-05-05 Andrew Herron Formatting data storage according to data classification
KR20110113420A (ko) * 2010-04-09 2011-10-17 삼성전자주식회사 저장 매체에 데이터를 저장하는 방법, 그를 이용한 데이터 저장 장치, 및 그것을 포함한 시스템
US20130036256A1 (en) * 2011-08-05 2013-02-07 Hitachi, Ltd. Method and apparatus of sanitizing storage device
KR20130023985A (ko) * 2011-08-30 2013-03-08 삼성전자주식회사 개선된 랜덤 라이트 성능을 가지는 메타 데이터 그룹 구성 방법 및 그에 따른 반도체 저장 장치
US9037779B2 (en) * 2011-12-19 2015-05-19 Sandisk Technologies Inc. Systems and methods for performing variable flash wear leveling
FI125308B (en) * 2012-07-05 2015-08-31 Blancco Oy Ltd Device, arrangement, method, and computer program for erasing data stored in mass storage

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0855063A (ja) * 1994-08-10 1996-02-27 Hitachi Ltd 記憶装置のデータ保証方法
US20070116267A1 (en) * 2003-04-01 2007-05-24 Sytex, Inc. Methods for categorizing input data
JP2006012157A (ja) * 2004-06-24 2006-01-12 Hewlett-Packard Development Co Lp 不揮発性記憶デバイスを消去するソフトウェア
US20080010326A1 (en) * 2006-06-15 2008-01-10 Carpenter Troy A Method and system for securely deleting files from a computer storage device
JP2009169650A (ja) * 2008-01-16 2009-07-30 Hitachi Ltd 計算機システム、管理計算機及びデータ管理方法
JP2011205295A (ja) * 2010-03-25 2011-10-13 Canon Inc 情報処理装置、データ処理方法、プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6016016091; M. Wei et al: '"Reliably Erasing Data From Flash-Based Solid State Drives"' ProceedingFAST'11 Proceedings of the 9th USENIX conference on File and stroage technologies , 20110215, USENIX *
JPN6016016093; 古賀 禎・金子 敏信: 'Z2m上のシフトレジスタを利用した乱数発生' 電子情報通信学会技術研究報告 Vol. 93 No. 382, 19931215, P. 61-66, 社団法人電子情報通信学会 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190109529A (ko) * 2017-02-02 2019-09-25 블랑코 테크놀로지 그룹 아이피 오이 데이터 소거 프로세스를 확인하기 위한 방법 및 시스템
US11328069B2 (en) 2017-02-02 2022-05-10 Blancco Technology Group IP Oy Method and system for verifying a data erasure process

Also Published As

Publication number Publication date
EP2834769A1 (en) 2015-02-11
US20160117245A1 (en) 2016-04-28
FI20125779A (fi) 2014-01-06
JP2017126348A (ja) 2017-07-20
EP2834769B1 (en) 2015-06-17
WO2014006274A1 (en) 2014-01-09
US20150169462A1 (en) 2015-06-18
FI125308B (en) 2015-08-31
US9286231B2 (en) 2016-03-15
US9940231B2 (en) 2018-04-10
JP6313489B2 (ja) 2018-04-18
US20180210827A1 (en) 2018-07-26
JP6093014B2 (ja) 2017-03-08

Similar Documents

Publication Publication Date Title
JP6313489B2 (ja) 記憶装置に格納されたデータを消去する装置、システム、方法及びコンピュータプログラム
US10642522B2 (en) Method and system for in-line deduplication in a storage drive based on a non-collision hash
US9852025B2 (en) Protecting data stored on a solid state drive
US10817474B2 (en) Adaptive rate compression hash processor
US9626517B2 (en) Non-deterministic encryption
CN110021326B (zh) 基于闪存的固态驱动器中的保持感知块映射
US8407378B2 (en) High-speed inline data compression inline with an eight byte data path
US10649675B2 (en) Storage controller, storage device, data processing method, and computer program product
US8706953B2 (en) Data storage device and method performing background operation with selected data compression
JP2018530053A (ja) ハードウェアアクセラレーテッドストレージ圧縮
US11818248B2 (en) Encoder and decoder using physically unclonable functions
JP2018156137A (ja) 読出制御装置、ストレージコントローラ、およびプログラム
EP3908938A1 (en) Systems, methods and devices for eliminating duplicates and value redundancy in computer memories
US20120144148A1 (en) Method and device of judging compressed data and data storage device including the same
US10997085B2 (en) Compression for flash translation layer
CN111400670B (zh) 一种水印添加方法、装置、设备及存储介质
US20200410102A1 (en) Randomizing Firmware Loaded to a Processor Memory
US10777287B2 (en) Memory control apparatus, information processing apparatus, and memory control method
Li et al. True-damage-aware enumerative coding for improving NAND flash memory endurance

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160510

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170209

R150 Certificate of patent or registration of utility model

Ref document number: 6093014

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250