JP7777800B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP7777800B2
JP7777800B2 JP2024567238A JP2024567238A JP7777800B2 JP 7777800 B2 JP7777800 B2 JP 7777800B2 JP 2024567238 A JP2024567238 A JP 2024567238A JP 2024567238 A JP2024567238 A JP 2024567238A JP 7777800 B2 JP7777800 B2 JP 7777800B2
Authority
JP
Japan
Prior art keywords
data
hash value
erasure
storage area
information processing
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.)
Active
Application number
JP2024567238A
Other languages
English (en)
Other versions
JPWO2024142555A1 (ja
Inventor
克直 高橋
昌紀 北御門
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
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
Application filed by Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Publication of JPWO2024142555A1 publication Critical patent/JPWO2024142555A1/ja
Application granted granted Critical
Publication of JP7777800B2 publication Critical patent/JP7777800B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Description

本開示は、情報処理装置、情報処理方法、情報処理システム、及びプログラムに関する。
パーソナルコンピュータなどの情報処理装置を廃棄する場合、機密データの漏洩を防ぐために、記憶装置に格納されたデータを消去し(又は等価的に、データにアクセス不能にし)、データが確実に消去されたことを検証することが求められる。例えば、特許文献1及び非特許文献1は、データ消去を検証する方法を開示している。
特許第7096829号公報
Richard Kissel et al., "Guidelines for Media Sanitization", NIST Special Publication 800-88, Revision 1, National Institute of Standards and Technology, December 2014[令和4年12月1日検索],インターネット<URL:http://dx.doi.org/10.6028/NIST.SP.800-88r1>
従来、データの消去に成功したか否かを検証するためには、消去後に記憶装置に格納されている現在のデータ(例えば、元データに上書きされたパターンデータ又はランダムデータ)が、消去前に記憶装置に格納されていた元データと比較される。この場合、大量のデータを比較するために、情報処理装置に大きな負荷がかかる。従って、データの消去に成功したか否かを従来よりも小さな負荷で検証することが求められる。
本開示は、記憶装置に格納されたデータの消去に成功したか否かを従来よりも小さな負荷で検証することができる情報処理装置、情報処理方法、情報処理システム、及びプログラムを提供する。
本開示の一態様に係る情報処理装置は、
格納されるデータの自己暗号化機能を有する記憶装置と、
前記記憶装置に格納されたデータの消去を制御する消去コントローラとを備え、
前記記憶装置は、
記憶領域を有する記憶媒体と、
暗号鍵を格納した不揮発性メモリと、
入力されたデータを前記記憶領域に書き込み、前記記憶領域から読み出されたデータを出力し、前記記憶領域に書き込まれるデータの少なくとも一部を前記暗号鍵を用いて暗号化し、前記記憶領域から読み出されたデータの少なくとも一部を前記暗号鍵を用いて復号する入出力コントローラとを備え、
前記消去コントローラは、
前記不揮発性メモリに第1の暗号鍵が格納されている場合、前記記憶領域の指定された位置に格納されるべきデータに基づいて、又は、前記記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得し、
前記不揮発性メモリに格納された前記第1の暗号鍵を第2の暗号鍵に変更するように前記記憶装置を制御し、
前記不揮発性メモリに前記第2の暗号鍵が格納されている場合、前記記憶領域の前記指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算し、
前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力し、
前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記記憶装置に格納されたデータの消去に失敗したことを示す検証結果を出力する。
本開示の一態様に係る情報処理装置によれば、記憶装置に格納されたデータの消去に成功したか否かを従来よりも小さな負荷で検証することができる。
第1の実施形態に係る情報処理装置1の構成を示すブロック図である。 図1の記憶装置13の構成を示すブロック図である。 図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために比較される論理ブロック31の配置の一例を示す図である。 比較例1に係る消去処理を示すフローチャートである。 比較例2に係る消去処理を示すフローチャートである。 図1の消去コントローラ14によって実行される実施例1に係る消去処理を示すフローチャートである。 比較例1、比較例2、及び実施例1に係る検証方法を比較する表である。 図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために比較される論理ブロック31の配置の第1の変形例を示す図である。 図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために比較される論理ブロック31の配置の第2の変形例を示す図である。 図1の消去コントローラ14によって実行される実施例2に係る消去処理を示すフローチャートである。 図1の消去コントローラ14によって実行される実施例3に係る消去処理を示すフローチャートである。 図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するためにすべての論理ブロック31が比較される場合を示す図である。 図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために部分領域24b-1,24b-2のそれぞれに含まれる論理ブロック31が比較される場合を示す図である。 図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために部分領域24c-1~24c-4のそれぞれに含まれる論理ブロック31が比較される場合を示す図である。 図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために部分領域24d-1~24d-8のそれぞれに含まれる論理ブロック31が比較される場合を示す図である。 第1の実施形態の変形例に係る情報処理装置1Aの構成を示すブロック図である。 第2の実施形態に係る情報処理装置1によって実行される消去処理を示すフローチャートである。 図17の前処理(ステップS101)のサブルーチンを示すフローチャートである。 図17の鍵変更処理(ステップS102)のサブルーチンを示すフローチャートである。 図17の検証処理(ステップS103)のサブルーチンを示すフローチャートである。 図17の消去処理を実行することによって図1の表示装置18に表示される、データ消去の進捗度を示す画像の一例を示す図である。 図17の消去処理を実行することによって図1の表示装置18に表示される、データ消去の進捗度を示す画像の他の一例を示す図である。 図17の検証処理の第1の変形例を示すフローチャートである。 図17の検証処理の第2の変形例を示すフローチャートである。 図17の検証処理の第3の変形例を示すフローチャートである。 第3の実施形態に係る情報処理装置1及びサーバ装置を含む情報処理システムの構成を示すブロック図である。 図26のサーバ装置2の構成を示すブロック図である。 図26のサーバ装置2によって実行される消去処理を示すフローチャートである。 図26の情報処理装置1によって実行される消去処理を示すフローチャートである。 図26のサーバ装置2によって実行される消去処理の変形例を示すフローチャートである。 図26の情報処理装置1によって実行される消去処理の変形例を示すフローチャートである。 図31の前処理(ステップS231)のサブルーチンを示すフローチャートである。 図31の鍵変更処理(ステップS232)のサブルーチンを示すフローチャートである。 図31の検証処理(ステップS233)のサブルーチンを示すフローチャートである。
以下、適宜図面を参照しながら、実施形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
なお、発明者(ら)は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
[第1の実施形態]
[第1の実施形態の構成]
図1は、第1の実施形態に係る情報処理装置1の構成を示すブロック図である。情報処理装置1は、バス10、中央処理装置(CPU)11、ランダムアクセスメモリ(RAM)12、記憶装置13、消去コントローラ14、不揮発性メモリ15、通信装置16、入力装置17、及び表示装置18を備える。
CPU11は、情報処理装置1全体の動作を制御する。
RAM12は、情報処理装置1の動作に必要なプログラム及びデータを一時的に記憶する。
記憶装置13は、オペレーティングシステム、アプリケーションプログラム、及びユーザデータを含むデータを格納する。記憶装置13は、格納されるデータの自己暗号化機能を有する自己暗号化ドライブ(Self-Encrypting Drive:SED)であり、例えば、自己暗号化機能を有するソリッドステートドライブ(SSD)である。
消去コントローラ14は、図6等を参照して後述する消去処理を実行することで、記憶装置13に格納されたデータの消去を制御する。本開示では、「消去」とは、記憶装置13に格納された少なくとも一部のデータにアクセス不能にすることを意味する。消去コントローラ14は、例えば、マイクロプロセッサを含む。
不揮発性メモリ15は、消去処理の実行に必要なプログラム及びデータを格納する。不揮発性メモリ15は、例えば、フラッシュメモリなどの不揮発性記憶媒体を含む。
消去処理のためのプログラムは、UEFI(Unified Extensible Firmware Interface)又はBIOS(Basic Input/Output System)プログラムのような情報処理装置1のファームウェアプログラムに組み込まれてもよい。この場合、消去処理のためのプログラムは、UEFI又はBIOSプログラムと同じ記憶媒体に格納されてもよく、UEFI又はBIOSプログラムと同じマイクロプロセッサによって実行されてもよい。
通信装置16は、ローカルエリアネットワーク(LAN)などの通信回線を介して、外部の他の情報処理装置と通信可能に接続される。
入力装置17は、情報処理装置1の動作を制御するユーザ入力を受ける。入力装置17は、例えば、キーボード及びポインティングデバイスを含む。
表示装置18は、情報処理装置1の状態に関連する情報、例えば、記憶装置13に格納されたデータの消去に関連する情報を表示する。
CPU11、RAM12、記憶装置13、消去コントローラ14、不揮発性メモリ15、通信装置16、入力装置17、及び表示装置18は、バス10を介して互いに接続される。
情報処理装置1は、例えば、パーソナルコンピュータである。
図2は、図1の記憶装置13の構成を示すブロック図である。記憶装置13は、入出力コントローラ21、ランダムアクセスメモリ(RAM)22、不揮発性メモリ23、及びフラッシュメモリ24を備える。入出力コントローラ21は、記憶装置13に対するデータの書き込み及び読み出しを制御する。RAM22は、記憶装置13に対して書き込まれるデータ及び読み出されるデータを一時的に格納するバッファメモリである。不揮発性メモリ23は、記憶装置13のファームウェアプログラム(FW)と、暗号鍵とを格納する。フラッシュメモリ24は、記憶領域を有する不揮発性の記憶媒体である。入出力コントローラ21は、不揮発性メモリ23に格納されたファームウェアプログラムを実行することで、記憶装置13の動作を制御する。入出力コントローラ21は、入力されたデータをフラッシュメモリ24の記憶領域に書き込み、記憶領域から読み出されたデータを出力する。
前述したように、記憶装置13は自己暗号化機能を有する。記憶装置13は、フラッシュメモリ24の記憶領域全体に格納されるデータを暗号化及び復号してもよく、記憶領域の一部に格納されるデータのみを暗号化及び復号してもよい。入出力コントローラ21は、フラッシュメモリ24の記憶領域に書き込まれるデータの少なくとも一部を不揮発性メモリ23に格納された暗号鍵を用いて暗号化する。また、入出力コントローラ21は、フラッシュメモリ24の記憶領域から読み出されたデータの少なくとも一部を暗号鍵を用いて復号する。入出力コントローラ21は、データの暗号化及び復号のために、ハードウェア、ソフトウェア、又はそれらの組み合わせを用いてもよい。
このような記憶装置13を備えたことにより、情報処理装置1は、オペレーティングシステム及びアプリケーションプログラムによらずに、記憶装置13に格納されるデータを暗号化及び復号することができる。
自己暗号化機能を有する記憶装置13では、暗号鍵を変更すると、変更前の暗号鍵によって暗号化されてフラッシュメモリ24の記憶領域に格納されたデータは、変更後の暗号鍵を用いて復号できなくなる。従って、記憶装置13の暗号鍵を変更することにより、記憶装置13に格納された元データにアクセス不能になり、等価的に、記憶装置13に格納された元データを消去(暗号的消去)することができる。入出力コントローラ21は、消去コントローラ14の制御下で、不揮発性メモリ23に格納された暗号鍵を変更する。暗号鍵は、例えば、入出力コントローラ21が記憶装置13のファームウェアに含まれるrevertコマンドを実行することにより変更されてもよい。
前述したように、記憶領域の一部の領域に格納されるデータのみを暗号化及び復号する場合、暗号化及び復号されないデータは、暗号鍵を変更してもアクセス不能にならず、従って、消去されない。データの消去に成功したか否かを検証するためには、消去コントローラ14は、暗号鍵の変更後に記憶装置13に格納されている現在のデータを、暗号鍵の変更前に記憶装置13に格納されていた元データと比較する。現在のデータが元データと異なる場合、消去コントローラ14はデータの消去に成功したと判断し、現在のデータが元データに一致する場合、消去コントローラ14はデータの消去に失敗したと判断する。
図3は、図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために比較される論理ブロック31の配置の一例を示す図である。フラッシュメモリ24の記憶領域は、複数の論理ブロック31を含む。各論理ブロック31は、記憶領域を論理的に分割した部分領域である。例えば、1TBの記憶領域は、100MBのサイズをそれぞれ有する10000個の論理ブロック31に分割されてもよい。消去コントローラ14は、データの消去に成功したか否かを検証するために、暗号鍵の変更前及び変更後のデータを、記憶領域全体について比較してもよく、記憶領域の一部(例えば、記憶領域全体の10%に相当する1000個の論理ブロック31)について比較してもよい。後者の場合、比較される論理ブロック31は、所定の規則に従って指定されてもよく(例えば、図3のハッチングされた論理ブロック31)、ランダムに指定されてもよい。
図3等では、フラッシュメモリ24の記憶領域を2次元的に示すが、記憶領域は連続した一連のメモリ空間と考えてもよい。
[比較例]
ここで、図4及び図5を参照して、従来技術に係るデータ消去の検証について説明する。説明のため、図1の情報処理装置1が、図4及び図5に示す消去処理を実行する場合を想定する。
図4は、比較例1に係る消去処理を示すフローチャートである。図4は、非特許文献1に開示されたデータ消去の検証方法を示す。
図4他の消去処理は、例えば、BIOS又はUEFIプログラムを介して記憶装置13に格納されたデータの消去が指示されたときに開始される。
ステップS1において、消去コントローラ14は、例えば図3に示すように指定された論理ブロック31の元データを読み出す。ここで、「元データ」は、変更前の暗号鍵が不揮発性メモリ23に格納されている場合に、記憶領域の指定された論理ブロック31から読み出されたデータを示す。この論理ブロック31が暗号化及び復号の対象である場合、消去コントローラ14は、変更前の暗号鍵を用いて復号されたデータを取得する。一方、この論理ブロック31が暗号化及び復号の対象ではない場合、消去コントローラ14は、論理ブロック31から読み出されたデータを復号せずにそのまま取得する。一般に、例えば、RAM12が数GB~数十GBのサイズを有し、記憶装置13が1TBの記憶領域を有し、記憶領域の10%、すなわち100GBのデータを読み出す場合、そのすべてをRAM12に保持することはできない。従って、ステップS2において、消去コントローラ14は、元データを一時的に退避するため、元データを外部の情報処理装置に送信する。
ステップS3において、消去コントローラ14は、不揮発性メモリ23に格納された暗号鍵を変更する。本明細書では、変更前の暗号鍵を「第1の暗号鍵」とも呼び、変更後の暗号鍵を「第2の暗号鍵」とも呼ぶ。
ステップS4において、消去コントローラ14は、ステップS1の場合と同じ指定された論理ブロック31の現在のデータを読み出す。ここで、「現在のデータ」は、変更後の暗号鍵が不揮発性メモリ23に格納されている場合に、記憶領域の指定された論理ブロック31から読み出されたデータを示す。この論理ブロック31が暗号化及び復号の対象である場合、消去コントローラ14は、変更後の暗号鍵を用いて復号されたデータを取得する。一方、この論理ブロック31が暗号化及び復号の対象ではない場合、消去コントローラ14は、論理ブロック31から読み出されたデータを復号せずにそのまま取得する。
ステップS5において、消去コントローラ14は、外部の情報処理装置から、一時的に退避した元データを受信する。
ステップS6において、消去コントローラ14は、現在のデータが元データと異なるか否かを判断し、YESのときはステップS7に進み、NOのときはステップS8に進む。ここで、現在のデータ及び元データは論理ブロック31ごとに比較されるので、数GB~数十GBのサイズを有するRAM12を用いて実行可能である。
ステップS7において、消去コントローラ14は、データの消去に成功したことを示す検証結果を表示装置18に出力する。また、ステップS8において、消去コントローラ14は、データの消去に失敗したことを示す検証結果を表示装置18に出力する。
図4の処理によれば、RAM12に格納できない大量のデータを比較するので、データを一時的に退避するために外部の情報処理装置が必要とされる。従って、外部の情報処理装置を必要とせず、情報処理装置1のみで実行可能なデータ消去の検証方法が求められる。
図5は、比較例2に係る消去処理を示すフローチャートである。図5は、特許文献1に開示されたデータ消去の検証方法を示す。
ステップS11において、消去コントローラ14は、例えば図3に示すように指定された論理ブロック31に既知のパターンデータを書き込む。パターンデータは、例えば、すべて1からなるビット列、すべて0からなるビット列、ランダムなビット列、などを含む。パターンデータは、不揮発性メモリ15に予め格納されている。パターンデータは、変更前の暗号鍵を用いて暗号化されて記憶領域の指定された論理ブロック31に書き込まれる。
ステップS12において、消去コントローラ14は、不揮発性メモリ23に格納された暗号鍵を変更する。
ステップS13において、消去コントローラ14は、ステップS11の場合と同じ指定された論理ブロック31の現在のデータを読み出す。
ステップS14において、消去コントローラ14は、現在のデータがパターンデータと異なるか否かを判断し、YESのときはステップS15に進み、NOのときはステップS16に進む。
ステップS15において、消去コントローラ14は、データの消去に成功したことを示す検証結果を表示装置18に出力する。また、ステップS16において、消去コントローラ14は、データの消去に失敗したことを示す検証結果を表示装置18に出力する。
パターンデータは、上述したように、変更前の暗号鍵が不揮発性メモリ23に格納されている場合に、記憶領域の指定された論理ブロック31に書き込まれる。従って、パターンデータは、実質的に、図4の処理の「元データ」、すなわち、変更前の暗号鍵が不揮発性メモリ23に格納されている場合に、記憶領域の指定された論理ブロック31から読み出されたデータに対応する。
図5の処理によれば、既知のパターンデータを用いることにより、外部の情報処理装置を必要とせず、情報処理装置1のみで実行可能である。しかしながら、図5の処理は、図4の処理と同様に、大量のデータを比較するために、情報処理装置1に大きな負荷がかかる。従って、データの消去に成功したか否かをより小さな負荷で検証できる消去処理が求められる。
次いで、データの消去に成功したか否かをより小さな負荷で検証できる、実施形態に係る消去処理について説明する。
[実施例1]
図6は、図1の消去コントローラ14によって実行される実施例1に係る消去処理を示すフローチャートである。
ステップS21において、消去コントローラ14は、例えば図3に示すように指定された論理ブロック31に既知のパターンデータを書き込む。不揮発性メモリ15は、パターンデータを格納するとともに、任意のハッシュ関数を用いて計算されたパターンデータのハッシュ値を予め格納している。ハッシュ関数は、例えば、SHA-256などのSHA-2関数であってもよい。SHA-256関数は、最長で2(64-1)ビットまでの任意長のデータから、256ビット(32バイト)のハッシュ値を生成する。
ステップS22において、消去コントローラ14は、不揮発性メモリ23に格納された暗号鍵を変更する。
ステップS23において、消去コントローラ14は、ステップS21の場合と同じ指定された論理ブロック31の現在のデータを読み出す。次いで、ステップS24において、消去コントローラ14は、パターンデータのハッシュ値を計算するために用いたハッシュ関数と同じハッシュ関数を用いて、現在のデータのハッシュ値を計算する。
ステップS25において、消去コントローラ14は、パターンデータのハッシュ値を不揮発性メモリ15から読み出す。
ステップS26において、消去コントローラ14は、現在のデータのハッシュ値がパターンデータのハッシュ値とは異なるか否かを判断し、YESのときはステップS27に進み、NOのときはステップS28に進む。
異なるデータのハッシュ値が衝突する可能性がある。ただし、比較されるすべての論理ブロック31においてパターンデータのハッシュ値及び現在のデータのハッシュ値が衝突する可能性は極めて低いと考えられる。従って、例えば1000個の論理ブロック31においてハッシュ値を比較する場合、数個の論理ブロック31においてハッシュ値が一致していても、消去コントローラ14は、データの消去に成功したと判断してもよい。また、半分以上の論理ブロック31においてハッシュ値が異なる場合、消去コントローラ14は、データの消去に成功したと判断してもよい。
また、互いに近接したいくつかの論理ブロック31においてパターンデータのハッシュ値及び現在のデータのハッシュ値が一致する場合、消去コントローラ14は、データの消去に失敗したと判断してもよい。この場合、これらの論理ブロック31を含む領域が暗号化及び復号の対象ではないと考えられる。
ステップS27において、消去コントローラ14は、データの消去に成功したことを示す検証結果を表示装置18に出力する。また、ステップS28において、消去コントローラ14は、データの消去に失敗したことを示す検証結果を表示装置18に出力する。
図7は、比較例1、比較例2、及び実施例1に係る検証方法を比較する表である。記憶装置13が1TBの記憶領域を有し、1TBの記憶領域が100MBのサイズをそれぞれ有する10000個の論理ブロック31に分割される場合を想定する。また、記憶領域の10%、すなわち、1000個の論理ブロック31の合計100GBのデータを読み出して検証する場合を想定する。比較例1によれば、100GBのデータを外部の情報処理装置に一時的に退避する必要がある。また、比較例1及び比較例2によれば、暗号鍵の変更前及び変更後の100GBのデータを互いに比較する必要がある。一方、実施例1によれば、SHA-256関数を用いる場合、各論理ブロック31のデータは、32バイトのハッシュ値によって表される。従って、実施例1によれば、データを外部の情報処理装置に一時的に退避することは不要であり、また、暗号鍵の変更前及び変更後のデータとして、合計32KBのデータを比較するだけでよい。このように、実施例1によれば、データの消去に成功したか否かを小さな負荷で検証することができる。
記憶領域の10%のデータを読み出して検証する場合、10個ごとに1つの論理ブロック31のデータを指定してもよい。また、記憶領域のうちの5%のデータを読み出して検証する場合、20個ごとに1つの論理ブロック31のデータを指定してもよい。記憶領域が10000個の論理ブロック31に分割され、記憶領域の10%、すなわち、1000個の論理ブロック31のデータを読み出して検証する場合、データのハッシュ値は合計32KBのサイズを有する。また、記憶領域が1000個の論理ブロック31に分割され、記憶領域の10%、すなわち、100個の論理ブロック31のデータを読み出して検証する場合、データのハッシュ値は合計3200バイトのサイズを有する。また、記憶領域が10000個の論理ブロック31に分割され、記憶領域の5%、すなわち、500個の論理ブロック31のデータを読み出して検証する場合、データのハッシュ値は合計16KBのサイズを有する。また、記憶領域が1000個の論理ブロック31に分割され、記憶領域の5%、すなわち、50個の論理ブロック31のデータを読み出して検証する場合、データのハッシュ値は合計1600バイトのサイズを有する。いずれの場合でも、比較されるデータのサイズは、比較例1及び比較例2の場合よりもずっと小さくなる。
比較する論理ブロック31をランダムに指定する場合、論理ブロック31のアドレスをさらに記憶する必要がある。記憶領域が10000個又は1000個の論理ブロック31に分割される場合、各論理ブロック31のアドレス(0~9999又は0~999)は2バイトで表される。従って、1000個、500個、100個、又は50個の論理ブロック31のデータを読み出して検証する場合、記憶されるアドレスの合計サイズは、2000バイト、1000バイト、200バイト、又は100バイトになる。いずれの場合でも、記憶されるアドレスのサイズは比較的小さい。
図8は、図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために比較される論理ブロック31の配置の第1の変形例を示す図である。記憶領域は、記憶領域を論理的に分割した複数の部分領域であって、論理的に連続した複数の論理ブロック31をそれぞれ含む複数の部分領域24a-1~24a-2を含んでもよい。図8の例では、部分領域24a-1は、部分領域24a-2の論理アドレスよりも小さな論理アドレスを有する。消去コントローラ14は、複数の部分領域24a-1~24a-2のそれぞれに関して、当該部分領域に含まれる複数の論理ブロック31のうち、部分領域ごとに異なる割合の論理ブロック31を指定してもよい(例えば、図8のハッチングされた論理ブロック31)。ハッシュ値は、指定された複数の論理ブロック31に格納されたデータに基づいて計算される。情報処理装置1の重要なファイル(例えば、情報処理装置1へのログインパスワードなどの機密データ)は、小さい論理アドレスを有する論理ブロック31に格納されている可能性が高いと考えられる。従って、消去コントローラ14は、部分領域24a-1において、部分領域24a-2における割合よりも多くの割合の論理ブロック31を指定してもよい。図8に示すように論理ブロック31を指定することにより、情報処理装置1の重要なファイルを含むと考えられる領域に格納されたデータの消去をより確実に検証することができる。
記憶装置13の記憶領域は、2つの部分領域24a-1~24a-2に限らず、3つ以上の部分領域に分割されてもよい。
図9は、図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために比較される論理ブロック31の配置の第2の変形例を示す図である。消去コントローラ14は、論理的に互いに隣接する複数の論理ブロック31を指定してもよい(例えば、図9のハッチングされた論理ブロック31)。ハッシュ値は、論理的に互いに隣接する複数の論理ブロック31に格納されたデータに基づいて計算される。ハッシュ値は、論理的に互いに隣接する2つの論理ブロック31に格納されたデータの論理積、論理和、又は排他的論理和に基づいて計算されてもよい。図9に示すように論理ブロック31を指定することにより、ハッシュ値の衝突を回避できる場合がある。
[実施例2]
図10は、図1の消去コントローラ14によって実行される実施例2に係る消去処理を示すフローチャートである。
ステップS31において、消去コントローラ14は、例えば図3、図8、又は図9に示すように指定された論理ブロック31の元データを読み出す。次いで、ステップS32において、消去コントローラ14は、元データのハッシュ値を計算する。論理ブロック31ごとに1つのハッシュ値が計算されてもよく、予め決められた個数の論理ブロック31ごとに1つのハッシュ値が計算されてもよい。後者の場合、RAM12において、読み出されたデータを格納するためのバッファメモリが設けられる。バッファメモリは、例えば、論理ブロック31の10倍のサイズを有する。消去コントローラ14は、読み出されたデータを順次にバッファメモリに書き込み、バッファメモリがフルになったとき、データのハッシュ値を計算する。図10の処理の実行中(特に、暗号鍵の変更前後)に情報処理装置1の電源はオフされないので、計算されたハッシュ値はRAM12に保持されてもよい。また、計算されたハッシュ値は不揮発性メモリ15に保持されてもよい。
ステップS33において、消去コントローラ14は、不揮発性メモリ23に格納された暗号鍵を変更する。
ステップS34において、消去コントローラ14は、ステップS31の場合と同じ指定された論理ブロック31の現在のデータを読み出す。次いで、ステップS35において、消去コントローラ14は、元データのハッシュ値を計算するために用いたハッシュ関数と同じハッシュ関数を用いて、現在のデータのハッシュ値を計算する。元データのハッシュ値を計算する場合と同様に、論理ブロック31ごとに1つのハッシュ値が計算されてもよく、予め決められた個数の論理ブロック31ごとに1つのハッシュ値が計算されてもよい。これにより、同じ1つ又は複数の論理ブロック31について、元データのハッシュ値が計算され(ステップS32)、現在のデータのハッシュ値が計算される(ステップS35)。
ステップS36において、消去コントローラ14は、現在のデータのハッシュ値が元データのハッシュ値とは異なるか否かを判断し、YESのときはステップS37に進み、NOのときはステップS38に進む。
前述したように、異なるデータのハッシュ値が衝突する可能性がある。ただし、比較されるすべての論理ブロック31において元データのハッシュ値及び現在のデータのハッシュ値が衝突する可能性は極めて低いと考えられる。従って、例えば1000個の論理ブロック31においてハッシュ値を比較する場合、数個の論理ブロック31においてハッシュ値が一致していても、消去コントローラ14は、データの消去に成功したと判断してもよい。また、半分以上の論理ブロック31においてハッシュ値が異なる場合、消去コントローラ14は、データの消去に成功したと判断してもよい。
また、互いに近接したいくつかの論理ブロック31において元データのハッシュ値及び現在のデータのハッシュ値が一致する場合、消去コントローラ14は、データの消去に失敗したと判断してもよい。この場合、これらの論理ブロック31を含む領域が暗号化及び復号の対象ではないと考えられる。
ステップS37において、消去コントローラ14は、データの消去に成功したことを示す検証結果を表示装置18に出力する。また、ステップS38において、消去コントローラ14は、データの消去に失敗したことを示す検証結果を表示装置18に出力する。
実施例2によれば、実施例1と同様に、データを外部の情報処理装置に一時的に退避することは不要であり、また、暗号鍵の変更前及び変更後のデータとして、ハッシュ値を比較するだけでよい。このように、実施例2によれば、データの消去に成功したか否かを小さな負荷で検証することができる。
一般に、ソリッドステートドライブでは、データの書き込みはデータの読み出しよりも時間がかかる。図10の処理によれば、パターンデータを記憶装置13に書き込む必要がないので、図6の場合よりも処理時間を短縮することができる。
また、複数の論理ブロック31ごとに1つのハッシュ値を計算する場合、論理ブロック31ごとに1つのハッシュ値を計算する場合よりも、計算量が低減されて処理速度が向上し、また、計算されたハッシュ値を格納するために必要な記憶容量が削減される。
[実施例3]
図11は、図1の消去コントローラ14によって実行される実施例3に係る消去処理を示すフローチャートである。
ステップS41において、消去コントローラ14は、記憶領域の全体及び部分の元データを読み出す。記憶領域は、記憶領域を互いに異なる複数のサイズで論理的に分割した複数の部分領域を含む。元データは、記憶領域の全体及び複数のサイズを有する複数の部分領域のそれぞれに関して読み出される。ステップS42において、消去コントローラ14は、記憶領域の全体及び複数のサイズを有する複数の部分領域のそれぞれに関して、当該領域に格納された元データのハッシュ値を計算する。
図12は、図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するためにすべての論理ブロック31が比較される場合を示す図である。図13は、図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために部分領域24b-1,24b-2のそれぞれに含まれる論理ブロック31が比較される場合を示す図である。図14は、図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために部分領域24c-1~24c-4のそれぞれに含まれる論理ブロック31が比較される場合を示す図である。図15は、図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために部分領域24d-1~24d-8のそれぞれに含まれる論理ブロック31が比較される場合を示す図である。図12の場合、記憶領域の全体で1つのハッシュ値が計算される。図13の場合、記憶領域の全体が2つの部分領域24b-1,24b-2に分割され、部分領域24b-1,24b-2のそれぞれについて1つのハッシュ値が計算される。図14の場合、記憶領域の全体が4つの部分領域24c-1~24c-4に分割され、部分領域24c-1~24c-4のそれぞれについて1つのハッシュ値が計算される。図15の場合、記憶領域の全体が8つの部分領域24d-1~24d-8に分割され、部分領域24d-1~24d-8のそれぞれについて1つのハッシュ値が計算される。図12~図15と同様に、より細分化された部分領域のそれぞれについてハッシュ値が計算されてもよい。
図11のステップS43において、消去コントローラ14は、不揮発性メモリ23に格納された暗号鍵を変更する。
ステップS44において、消去コントローラ14は、記憶領域の現在のデータを読み出す。次いで、ステップS45において、消去コントローラ14は、記憶領域の全体の現在のデータのハッシュ値を計算する。
ステップS46において、消去コントローラ14は、現在のデータのハッシュ値が、ステップS42において計算された対応する元データのハッシュ値と異なるか否かを判断し、YESのときはステップS49に進み、NOのときはステップS47に進む。
ステップS47において、消去コントローラ14は、ステップS42において計算された元データのすべてのハッシュ値に対して比較したか否かを判断し、YESのときはステップS50に進み、NOのときはステップS48に進む。
ステップS48において、消去コントローラ14は、記憶領域を分割した各部分領域の現在のデータのハッシュ値を計算する。ステップS48を最初に実行する場合、消去コントローラ14は、記憶領域を2つに分割した部分領域24b-1,24b-2のそれぞれについて現在のデータのハッシュ値を計算する。ステップS48を2回目に実行する場合、消去コントローラ14は、記憶領域を4つに分割した部分領域24c-1~24c-4のそれぞれについて現在のデータのハッシュ値を計算する。以後、消去コントローラ14は、ステップS46又はS47においてYESと判断されるまでステップS48を同様に繰り返し、部分領域の現在のデータのハッシュ値を計算する。
ステップS49において、消去コントローラ14は、データの消去に成功したことを示す検証結果を表示装置18に出力する。また、ステップS50において、消去コントローラ14は、データの消去に失敗したことを示す検証結果を表示装置18に出力する。
図11の処理によれば、ある部分領域において元データのハッシュ値及び現在のデータのハッシュ値が衝突しても、より小さな部分領域のハッシュ値を比較することにより、ハッシュ値の衝突を回避できる場合がある。
[第1の実施形態の変形例]
図16は、第1の実施形態の変形例に係る情報処理装置1Aの構成を示すブロック図である。情報処理装置1Aは、図1の情報処理装置1の各構成要素に加えて、外部装置に接続するための装置インターフェース(I/F)19をさらに備える。装置インターフェース19は、例えば、USBである。図16の例では、装置インターフェース19は、USBメモリ、ソリッドステートドライブ、ハードディスクドライブなどの外部記憶装置41に接続される。
図6他を参照して説明される消去処理のためのプログラムは、不揮発性メモリ15に格納されることに代えて、外部記憶装置41に格納されてもよい。この場合、消去コントローラ14は、消去処理のためのプログラムを外部記憶装置41から読み出して実行する。また、消去処理のためのプログラムは、複数の部分に分割され、一部が不揮発性メモリ15に格納され、他の一部が外部記憶装置41に格納されてもよい。この場合、外部記憶装置41に格納されたプログラム部分を実行することにより、不揮発性メモリ15に格納されたプログラム部分が呼び出されて実行される。
例えば、情報処理装置1Aが実施例2に係る消去処理を実行する場合、計算された元データのハッシュ値は、RAM12又は不揮発性メモリ15に格納されることに代えて、外部記憶装置41に格納されてもよい。ハッシュ値から元データを推測することは困難であるので、外部記憶装置41を紛失した場合又は盗難にあった場合であっても、機密データが漏洩する可能性は低い。
計算された元データのハッシュ値は、通信装置16を介して接続された外部の情報処理装置に送信されて格納されてもよい。また、情報処理装置1,1Aは、CD、DVDなどの記憶媒体のためのドライブ装置をさらに備えてもよく、この場合、計算された元データのハッシュ値は、CD、DVDなどに格納されてもよい。
[第1の実施形態の効果等]
第1の実施形態に係る情報処理装置1は、格納されるデータの自己暗号化機能を有する記憶装置13と、記憶装置13に格納されたデータの消去を制御する消去コントローラ14とを備える。記憶装置13は、記憶領域を有する記憶媒体と、暗号鍵を格納した不揮発性メモリ23と、入力されたデータを記憶領域に書き込み、記憶領域から読み出されたデータを出力し、記憶領域に書き込まれるデータの少なくとも一部を暗号鍵を用いて暗号化し、記憶領域から読み出されたデータの少なくとも一部を暗号鍵を用いて復号する入出力コントローラ21とを備える。消去コントローラ14は、不揮発性メモリ23に第1の暗号鍵が格納されている場合、記憶領域の指定された位置に格納されるべきデータに基づいて、又は、記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得する。消去コントローラ14は、不揮発性メモリ23に格納された第1の暗号鍵を第2の暗号鍵に変更するように記憶装置13を制御する。消去コントローラ14は、不揮発性メモリ23に第2の暗号鍵が格納されている場合、記憶領域の指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算する。消去コントローラ14は、第2のハッシュ値が第1のハッシュ値とは異なる場合、記憶装置13に格納されたデータの消去に成功したことを示す検証結果を出力する。消去コントローラ14は、第2のハッシュ値が第1のハッシュ値に一致する場合、記憶装置13に格納されたデータの消去に失敗したことを示す検証結果を出力する。
これにより、記憶装置13に格納されたデータの消去に成功したか否かを従来よりも小さな負荷で検証することができる。
第1の実施形態に係る情報処理装置1によれば、消去コントローラ14は、予め決められたパターンデータを記憶領域の指定された位置に格納するように記憶装置13を制御してもよい。この場合、第1のハッシュ値は、パターンデータに基づいて計算される。
これにより、データを外部の情報処理装置に一時的に退避することなく、データ消去を検証することができる。
第1の実施形態に係る情報処理装置1によれば、消去コントローラ14は、記憶領域の指定された位置から読み出されたデータに基づいて、第1のハッシュ値を計算してもよい。
これにより、データを外部の情報処理装置に一時的に退避することなく、データ消去を検証することができる。
第1の実施形態に係る情報処理装置1によれば、記憶領域は複数のブロックを含んでもよい。この場合、第1及び第2のハッシュ値は、予め決められた個数のブロックごとに、当該ブロックに格納されたデータに基づいて計算される。
これにより、論理ブロック31ごとに1つのハッシュ値を計算する場合よりも、計算量が低減されて処理速度が向上し、また、計算されたハッシュ値を格納するために必要な記憶容量が削減される。
第1の実施形態に係る情報処理装置1によれば、記憶領域は、記憶領域を論理的に分割した複数の部分領域であって、論理的に連続した複数のブロックをそれぞれ含む複数の部分領域を含んでもよい。この場合、消去コントローラ14は、複数の部分領域のそれぞれに関して、当該部分領域に含まれる複数の論理ブロックのうち、部分領域ごとに異なる割合の論理ブロックを指定する。第1及び第2のハッシュ値は、指定された複数のブロックに格納されたデータに基づいて計算される。
これにより、情報処理装置1の重要なファイルを含むと考えられる領域に格納されたデータの消去をより確実に検証することができる。
第1の実施形態に係る情報処理装置1によれば、記憶領域は複数のブロックを含んでもよい。この場合、第1及び第2のハッシュ値は、論理的に互いに隣接する複数のブロックに格納されたデータに基づいて計算される。
これにより、ハッシュ値の衝突を回避できる場合がある。
第1の実施形態に係る情報処理装置1によれば、記憶領域は、記憶領域を互いに異なる複数のサイズで論理的に分割した複数の部分領域を含んでもよい。この場合、第1のハッシュ値は、複数のサイズを有する複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて計算される。消去コントローラ14は、複数のサイズのうち第1のサイズを有する複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて第2のハッシュ値を計算する。消去コントローラ14は、第1のサイズを有する部分領域に関して第2のハッシュ値が第1のハッシュ値とは異なる場合、記憶装置13に格納されたデータの消去に成功したことを示す検証結果を出力する。消去コントローラ14は、第1のサイズを有する部分領域に関して第2のハッシュ値が第1のハッシュ値に一致する場合、複数のサイズのうち、第1のサイズよりも小さい第2のサイズを有する複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて第2のハッシュ値を計算する。消去コントローラ14は、第2のサイズを有する部分領域に関して第2のハッシュ値が第1のハッシュ値とは異なる場合、記憶装置13に格納されたデータの消去に成功したことを示す検証結果を出力する。
これにより、ある部分領域において元データのハッシュ値及び現在のデータのハッシュ値が衝突しても、より小さな部分領域のハッシュ値を比較することにより、ハッシュ値の衝突を回避できる場合がある。
第1の実施形態に係る情報処理装置1は、検証結果を出力する表示装置18を備えてもよい。
これにより、記憶装置13に格納されたデータの消去に成功したか否かを把握することができる。
第1の実施形態に係る情報処理方法は、自己暗号化機能を有する記憶装置13に格納されたデータの消去を制御する。記憶装置13は、記憶領域を有する記憶媒体と、暗号鍵を格納した不揮発性メモリ23と、入力されたデータを記憶領域に書き込み、記憶領域から読み出されたデータを出力し、記憶領域に書き込まれるデータの少なくとも一部を暗号鍵を用いて暗号化し、記憶領域から読み出されたデータの少なくとも一部を暗号鍵を用いて復号する入出力コントローラ21とを備える。情報処理方法は、不揮発性メモリ23に第1の暗号鍵が格納されている場合、記憶領域の指定された位置に格納されるべきデータに基づいて、又は、記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得するステップを含む。情報処理方法は、不揮発性メモリ23に格納された第1の暗号鍵を第2の暗号鍵に変更するように記憶装置13を制御するステップを含む。情報処理方法は、不揮発性メモリ23に第2の暗号鍵が格納されている場合、記憶領域の指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算するステップを含む。情報処理方法は、第2のハッシュ値が第1のハッシュ値とは異なる場合、記憶装置13に格納されたデータの消去に成功したことを示す検証結果を出力するステップを含む。情報処理方法は、第2のハッシュ値が第1のハッシュ値に一致する場合、記憶装置13に格納されたデータの消去に失敗したことを示す検証結果を出力するステップを含む。
これにより、記憶装置13に格納されたデータの消去に成功したか否かを従来よりも小さな負荷で検証することができる。
第1の実施形態に係るプログラムは、情報処理装置1に実装されたプロセッサによって実行される命令を含む。情報処理装置1は、格納されるデータの自己暗号化機能を有する記憶装置13をさらに備える。記憶装置13は、記憶領域を有する記憶媒体と、暗号鍵を格納した不揮発性メモリ23と、入力されたデータを記憶領域に書き込み、記憶領域から読み出されたデータを出力し、記憶領域に書き込まれるデータの少なくとも一部を暗号鍵を用いて暗号化し、記憶領域から読み出されたデータの少なくとも一部を暗号鍵を用いて復号する入出力コントローラとを備える。命令は、プロセッサに、不揮発性メモリ23に第1の暗号鍵が格納されている場合、記憶領域の指定された位置に格納されるべきデータに基づいて、又は、記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得することを含む。命令は、プロセッサに、不揮発性メモリ23に格納された第1の暗号鍵を第2の暗号鍵に変更するように記憶装置13を制御することを含む。命令は、プロセッサに、不揮発性メモリ23に第2の暗号鍵が格納されている場合、記憶領域の指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算することを含む。命令は、プロセッサに、第2のハッシュ値が第1のハッシュ値とは異なる場合、記憶装置13に格納されたデータの消去に成功したことを示す検証結果を出力することを含む。命令は、プロセッサに、第2のハッシュ値が第1のハッシュ値に一致する場合、記憶装置13に格納されたデータの消去に失敗したことを示す検証結果を出力することを実行させる。
これにより、記憶装置13に格納されたデータの消去に成功したか否かを従来よりも小さな負荷で検証することができる。
[第2の実施形態]
第2の実施形態では、第1の実施形態の消去処理(図10を参照)を実行しながら、データ消去の進捗度を表示する場合について説明する。
図17は、第2の実施形態に係る情報処理装置1によって実行される消去処理を示すフローチャートである。第2の実施形態に係る情報処理装置1は、第1の実施形態の場合と同様に構成される。図17の消去処理は、図1の消去コントローラ14によって実行される。
ステップS101において、消去コントローラ14は前処理を実行し、指定された論理ブロック31の元データのハッシュ値を計算する。
ステップS102において、消去コントローラ14は鍵変更処理を実行し、不揮発性メモリ23に格納された暗号鍵を変更する。
ステップS103において、消去コントローラ14は検証処理を実行し、現在のデータのハッシュ値が元データのハッシュ値とは異なるか否か、すなわち、データの消去に成功したか否かを判断する。
図18は、図17の前処理(ステップS101)のサブルーチンを示すフローチャートである。
ステップS111において、消去コントローラ14は、パラメータi1を1に初期化する。パラメータi1は、例えば図3、図8、又は図9に示すように指定された複数の論理ブロック31のいずれかを示す。図18の例では、N1個の論理ブロック31が指定される。
ステップS112において、消去コントローラ14は、指定された論理ブロック31のうち、i1番目の論理ブロック31の元データを読み出す。次いで、ステップS113において、消去コントローラ14は、元データのハッシュ値を計算する。ステップS112~S113は、指定された論理ブロック31のうちの1つに対して実行していることを除いて、図10のステップS31~S32と同様である。
ステップS114において、消去コントローラ14は、元データのハッシュ値と、i1番目の論理ブロック31のアドレスとを、RAM12又は不揮発性メモリ15(又は、図16の外部記憶装置41)に格納する。
ステップS115において、消去コントローラ14は、ステップS112~S114の処理を実行済みである論理ブロック31の個数を、所定のフォーマットで表示装置18に出力する。
ステップS116において、消去コントローラ14は、パラメータi1がしきい値N1を超えたか否かを判断し、YESのときは図17のステップS102に進み、NOのときはステップS117に進む。
ステップS117において、消去コントローラ14は、パラメータi1を1だけインクリメントし、ステップS112~S116を繰り返す。
図19は、図17の鍵変更処理(ステップS102)のサブルーチンを示すフローチャートである。
ステップS121において、消去コントローラ14は、不揮発性メモリ23に格納された暗号鍵を変更する。ステップS121は、図10のステップS33と同様である。
ステップS122において、消去コントローラ14は、暗号鍵の変更が完了したことを、所定のフォーマットで表示装置18に出力する。
図20は、図17の検証処理(ステップS103)のサブルーチンを示すフローチャートである。
ステップS131において、消去コントローラ14は、パラメータi2を1に初期化する。パラメータi2は、図18の前処理において指定されたN1個の論理ブロック31のいずれかを示す。
ステップS132において、消去コントローラ14は、RAM12又は不揮発性メモリ15(又は、図16の外部記憶装置41)に格納された元データのハッシュ値及びアドレスを読み出す。このアドレスに基づいて、前処理においてハッシュ値が計算された論理ブロック31が特定される。
ステップS133において、消去コントローラ14は、ステップS132で読み出されたアドレスにより特定される論理ブロック31のうち、i2番目の論理ブロック31の現在のデータを読み出す。次いで、ステップS134において、消去コントローラ14は、現在のデータのハッシュ値を計算する。ステップS133~S134は、指定された論理ブロック31のうちの1つに対して実行していることを除いて、図10のステップS34~S35と同様である。
ステップS135において、消去コントローラ14は、現在のデータのハッシュ値が元データのハッシュ値とは異なるか否かを判断し、YESのときはステップS136に進み、NOのときはステップS140に進む。ステップS135は、指定された論理ブロック31のうちの1つに対して実行していることを除いて、図10のステップS36と同様である。
ステップS136において、消去コントローラ14は、検証された論理ブロック31、すなわち、現在のデータのハッシュ値が元データのハッシュ値と異なるか否かを判断した論理ブロック31の個数を、所定のフォーマットで表示装置18に出力する。
ステップS137において、消去コントローラ14は、パラメータi2がしきい値N1を超えたか否かを判断し、YESのときはステップS139に進み、NOのときはステップS138に進む。
ステップS138において、消去コントローラ14は、パラメータi2を1だけインクリメントし、ステップS132~S137を繰り返す。
ステップS139において、消去コントローラ14は、データの消去に成功したことを示す検証結果を表示装置18に出力する。ステップS140において、消去コントローラ14は、データの消去に失敗したことを示す検証結果を表示装置18に出力する。
図21は、図17の消去処理を実行することによって図1の表示装置18に表示される、データ消去の進捗度を示す画像の一例を示す図である。図21(a)は、前処理の進捗度を示す画像である。前処理の進捗度は、例えば、指定された論理ブロック31の個数に対する処理された論理ブロック31の個数の割合、すなわち、i1/N1を示すプログレスバーによって表される。図21(b)は、鍵変更処理の進捗度を示す画像である。鍵変更処理の進捗度は、例えば、暗号鍵の変更が完了したか否かを示すプログレスバーによって表される。図21(c)は、検証処理の進捗度を示す画像である。検証処理の進捗度は、例えば、指定された論理ブロック31の個数に対する検証された論理ブロック31の個数の割合、すなわち、i2/N1を示すプログレスバーによって表される。
図22は、図17の消去処理を実行することによって図1の表示装置18に表示される、データ消去の進捗度を示す画像の他の一例を示す図である。図21に示す3つのプログレスバーを1つにまとめて表示してもよい。
データ消去の進捗度は、図21及び図22のような画像として表示されることに代えて、下記のようなテキストとして表示されてもよい。
前処理: a1
鍵変更処理:a2
検証処理: a3
ここで、a1は、指定されたブロックの個数N1から開始して、パラメータi1が増大するにつれて減少する(a1=N1-i1)。a2は、暗号鍵が変更される前に「1」になり、暗号鍵が変更された後に「0」になる。a3は、指定されたブロックの個数N1から開始して、パラメータi2が増大するにつれて減少する(a3=N1-i2)。
また、データ消去の進捗度は、下記のようなテキストとして表示されてもよい。
前処理: b1/N1
鍵変更処理:b2
検証処理: b3/N1
ここで、b1=i1である。b2は、暗号鍵が変更される前に「0」になり、暗号鍵が変更された後に「1」になる。また、b3=i2である。
また、データ消去の進捗度は、「c」としてまとめて表示されてもよく、ここで、c=a1+a2+a3である。また、データ消去の進捗度は、「d/N」としてまとめて表示されてもよく、ここで、d=b1+b2+b3,N=N1×2+1である。
前述したように、複数の論理ブロック31ごとに1つのハッシュ値を計算する場合、データ消去の進捗度は、1つのハッシュ値に対応する論理ブロック31のグループを単位として、論理ブロック31のグループの個数又は割合に基づいて、画像又はテキストとして表示されてもよい。
図20の検証処理では、1つの論理ブロック31において現在のデータのハッシュ値が元データのハッシュ値に一致する場合、データの消去に失敗したと判断される。しかしながら、前述したように、指定された論理ブロック31のうちの一部においてハッシュ値が一致していても、消去コントローラ14は、データの消去に成功したと判断してもよい。次に、図23~図25を参照して、このようなハッシュ値の衝突を許容する検証処理の変形例について説明する。
図23は、図17の検証処理の第1の変形例を示すフローチャートである。図23の処理は、図20の各ステップに加えて、ステップS141~S143を含む。
ステップS141において、消去コントローラ14は、パラメータj1を0に初期化する。パラメータj1を用いて、現在のデータのハッシュ値が元データのハッシュ値に一致した論理ブロック31の個数がカウントされる。
ステップS135において現在のデータのハッシュ値が元データのハッシュ値に一致すると判断したとき、処理はステップS142に進む。ステップS142において、消去コントローラ14は、パラメータj1を1だけインクリメントする。
ステップS143において、消去コントローラ14は、パラメータj1がしきい値Th1を超えたか否かを判断し、YESのときはステップS140に進み、NOのときはステップS136に進む。
図23の検証処理によれば、しきい値Th1以下の個数の論理ブロック31においてハッシュ値の衝突が発生しても、他の論理ブロック31においてハッシュ値が異なるならば、データの消去に成功したと判断することができる。
図24は、図17の検証処理の第2の変形例を示すフローチャートである。図24の処理は、図20の各ステップに加えて、ステップS151~S156を含む。
ステップS151において、消去コントローラ14は、パラメータj2を0に初期化する。パラメータj2を用いて、指定された論理ブロック31のうち、互いに近接したいくつかの論理ブロック31において連続して発生するハッシュ値の衝突の回数がカウントされる。
ステップS135において現在のデータのハッシュ値が元データのハッシュ値と異なると判断したとき、処理はステップS152に進み、そうでないとき、処理はステップS153に進む。ステップS152において、消去コントローラ14はパラメータj2を1だけデクリメントする。ステップS153において、消去コントローラ14は、パラメータj2を1だけインクリメントする。
ステップS154において、消去コントローラ14は、パラメータj2が0より小さいか否かを判断し、YESのときはステップS155に進み、NOのときはステップS156に進む。ステップS155において、消去コントローラ14は、パラメータj2を0に再初期化する。
ステップS156において、消去コントローラ14は、パラメータj2がしきい値Th2を超えたか否かを判断し、YESのときはステップS140に進み、NOのときはステップS136に進む。
図24の検証処理によれば、ハッシュ値の一致又は不一致に応じて、パラメータj2が増大又は減少する。従って、指定された論理ブロック31のうち、互いに近接したいくつかの論理ブロック31においてハッシュ値の衝突が連続して発生する場合、パラメータj2は増大する。この場合、これらの論理ブロック31を含む記憶領域は、暗号化の対象ではなく、データが平文のまま格納されていると考えられる。一方、指定された論理ブロック31のうち、互いに近接したいくつかの論理ブロック31においてハッシュ値の一致及び不一致がほぼ交替して発生する場合、パラメータj2は増大しない。この場合、ハッシュ値の衝突は偶然であると考えられる。
図25は、図17の検証処理の第3の変形例を示すフローチャートである。図25の処理は、図20の各ステップに加えて、ステップS161~S169を含む。
ステップS135において現在のデータのハッシュ値が元データのハッシュ値に一致すると判断したとき、処理はステップS161に進む。ステップS161において、消去コントローラ14は、ハッシュ値の衝突が発生した論理ブロック31のアドレスを、RAM12又は不揮発性メモリ15(又は、図16の外部記憶装置41)に格納する。
ステップS137においてパラメータi2がしきい値N1を超えたとき、処理はステップS162に進む。ステップS162において、消去コントローラ14は、パラメータi3,i4をそれぞれ1に初期化し、パラメータj3を0に初期化する。図25の検証処理では、指定された論理ブロック31のうち、互いに近接した所定個数の論理ブロック31のグループにおいてハッシュ値の衝突の回数がカウントされる。パラメータi3は、論理ブロック31のグループの位置を示す。パラメータi4は、あるグループに含まれる論理ブロック31のいずれかを示す。図25の例では、各グループはN4個の論理ブロック31を含み、グループの位置は、指定された論理ブロック31のうちで、N3=N1-N4通りにシフトする。パラメータj3を用いて、あるグループにおけるハッシュ値の衝突の回数がカウントされる。
ステップS163において、消去コントローラ14は、ステップS161において格納されたアドレスに基づいて、i3+i4番目の論理ブロック31において、現在のデータのハッシュ値が元データのハッシュ値に一致するか否かを判断し、YESのときはステップS164に進み、NOのときはステップS165に進む。ステップS164において、消去コントローラ14は、パラメータj3を1だけインクリメントする。
ステップS165において、消去コントローラ14は、パラメータi4がしきい値N4を超えたか否か、すなわち、現在のグループに含まれるすべての論理ブロック31を処理したか否かを判断し、YESのときはステップS167に進み、NOのときはステップS166に進む。
ステップS166において、消去コントローラ14は、パラメータi4を1だけインクリメントし、ステップS163~S165を繰り返す。
ステップS167において、消去コントローラ14は、パラメータj3がしきい値Th3を超えたか否かを判断し、YESのときはステップS140に進み、NOのときはステップS168に進む。
ステップS168において、消去コントローラ14は、パラメータi3がしきい値N3を超えたか否か、すなわち、論理ブロック31のグループをすべての位置にシフトさせたか否かを判断し、YESのときはステップS139に進み、NOのときはステップS169に進む。
ステップS169において、消去コントローラ14は、パラメータi3を1だけインクリメントし、ステップS163~S168を繰り返す。
図25の処理によれば、互いに近接した所定個数の論理ブロック31のグループにおいてハッシュ値の衝突が繰り返し発生する場合、これらの論理ブロック31を含む記憶領域は、暗号化の対象ではなく、データが平文のまま格納されていると考えられる。
ステップS167のしきい値Th3は、例えば、グループに含まれる論理ブロック31の個数N3に近い値に設定されてもよい。また、ステップS168において、消去コントローラ14はj3/N3を計算してもよく、この場合、しきい値Th3は、例えば、1に近い値に設定されてもよい。
[第2の実施形態の効果等]
第2の実施形態に係る情報処理装置1によれば、消去コントローラ14は、記憶装置13に格納されたデータの消去の進捗度を表示装置18に出力してもよい。
これにより、データ消去の進捗度を把握することができる。
[第3の実施形態]
図26は、第3の実施形態に係る情報処理装置1及びサーバ装置を含む情報処理システムの構成を示すブロック図である。図26の情報処理システムは、複数の情報処理装置1-1~1-3、サーバ装置2、及び通信回線3を含む。各情報処理装置1-1~1-3は、図1の情報処理装置1と同様に構成される。サーバ装置2は、通信回線3を介して各情報処理装置1-1~1-3に接続される。
本明細書では、情報処理装置1-1~1-3をまとめて「情報処理装置1」を呼ぶ。
図27は、図26のサーバ装置2の構成を示すブロック図である。サーバ装置2は、バス120、CPU121、RAM122、記憶装置123、通信装置126、入力装置127、及び表示装置128を備える。CPU121は、サーバ装置2全体の動作を制御し、また、各情報処理装置1の記憶装置13に格納されたデータの消去を管理する。RAM122は、サーバ装置2の動作に必要なプログラム及びデータを一時的に記憶する。記憶装置123は、サーバ装置2の動作に必要なプログラムを格納する不揮発性記憶媒体である。通信装置126は、通信回線3を介して各情報処理装置1と通信可能に接続される。入力装置127は、サーバ装置2の動作を制御するユーザ入力を受ける。入力装置127は、例えば、キーボード及びポインティングデバイスを含む。表示装置128は、各情報処理装置1の記憶装置13に格納されたデータの消去に関連する情報を表示する。CPU121、RAM122、記憶装置123、通信装置126、入力装置127、及び表示装置128は、バス120を介して互いに接続される。
図28は、図26のサーバ装置2によって実行される消去処理を示すフローチャートである。図29は、図26の情報処理装置1によって実行される消去処理を示すフローチャートである。
図28のステップS201において、サーバ装置2のCPU121は、データの消去を指示する制御信号を情報処理装置1に送信する。
図29のステップS211において、情報処理装置1の消去コントローラ14は、データの消去を指示する制御信号をサーバ装置2から受信する。次いで、消去コントローラ14は、制御信号に従って、ステップS212~S219を実行する。ステップS212~S217は、図10のステップS31~S36と同様である。ステップS217において現在のデータのハッシュ値が元データのハッシュ値と異なると判断したとき、処理はステップS218に進み、そうでないとき、処理はステップS219に進む。ステップS218において、消去コントローラ14は、データの消去に成功したことを示す検証結果を含む通知信号をサーバ装置2に送信する。ステップS219において、消去コントローラ14は、データの消去に失敗したことを示す検証結果を含む通知信号をサーバ装置2に送信する。
図28のステップS202において、サーバ装置2のCPU121は、検証結果を示す通知信号を情報処理装置1から受信する。ステップS203において、CPU121は、検証結果を表示装置128に出力する。
図28及び図29の処理によれば、複数の情報処理装置1の記憶装置13に格納されたデータの消去をサーバ装置2によって集中的に制御することができ、また、データの消去に成功したか否かを小さな負荷で検証することができる。
また、図30~図34を参照して説明するように、データ消去の進捗度をサーバ装置2の表示装置128に出力してもよい。
図30は、図26のサーバ装置2によって実行される消去処理の変形例を示すフローチャートである。図31は、図26の情報処理装置1によって実行される消去処理の変形例を示すフローチャートである。図30の処理は、図28のステップS202に代えてステップS221~S223を含む。図31の処理は、図29のステップS212~S219に代えて、ステップS231~S233を含む。
図30のステップS201において、サーバ装置2のCPU121は、データの消去を指示する制御信号を情報処理装置1に送信する。
図31のステップS211において、情報処理装置1の消去コントローラ14は、データの消去を指示する制御信号をサーバ装置2から受信する。次いで、消去コントローラ14は、制御信号に従って、ステップS231~S233を実行する。ステップS231~S233は、データ消去の進捗度及び検証結果を情報処理装置1の表示装置18に出力することに代えてサーバ装置2に送信することを除いて、図17のステップS101~S103と同様である。
図32は、図31の前処理(ステップS231)のサブルーチンを示すフローチャートである。図32の処理は、図18のステップS115に代えてステップS115Aを含む。ステップS115Aにおいて、消去コントローラ14は、データ消去の進捗度として、ステップS112~S114の処理を実行済みである論理ブロック31の個数を含む通知信号をサーバ装置2に送信する。
図33は、図31の鍵変更処理(ステップS232)のサブルーチンを示すフローチャートである。図33の処理は、図19のステップS122に代えてステップS122Aを含む。ステップS122Aにおいて、消去コントローラ14は、データ消去の進捗度として、暗号鍵の変更が完了したことを示す通知信号をサーバ装置2に送信する。
図34は、図31の検証処理(ステップS233)のサブルーチンを示すフローチャートである。図34の処理は、図20のステップS136,S139,S140に代えて、ステップS136A,S139A,S140Aを含む。ステップS136Aにおいて、消去コントローラ14は、データ消去の進捗度として、検証された論理ブロック31の個数を含む通知信号をサーバ装置2に送信する。ステップS139Aにおいて、消去コントローラ14は、データの消去に成功したことを示す検証結果を含む通知信号をサーバ装置2に送信する。ステップS140Aにおいて、消去コントローラ14は、データの消去に失敗したことを示す検証結果を含む通知信号をサーバ装置2に送信する。
図30のステップS221において、サーバ装置2のCPU121は、データ消去の進捗度を含む通知信号を情報処理装置1から受信する。ステップS222において、CPU121は、情報処理装置1の表示装置18に出力する場合と同様に、データ消去の進捗度を所定のフォーマットで表示装置128に出力する。ステップS223において、CPU121は、データ消去が完了したか否か、すなわち、検証結果を示す通知信号を情報処理装置1から受信したか否かを判断し、YESのときはステップS203に進み、NOのときはステップS221に戻る。ステップS203において、CPU121は、検証結果を表示装置128に出力する。
図30~図34の処理によれば、複数の情報処理装置1の記憶装置13に格納されたデータの消去の進捗度をサーバ装置2において把握することができる。
[第3の実施形態の効果等]
第3の実施形態に係る情報処理システム100は、第1の実施形態に係る情報処理装置1と、情報処理装置1に通信回線を介して接続されたサーバ装置2とを備える。消去コントローラ14は、サーバ装置2から受信された制御信号に従って、記憶装置13に格納されたデータの消去を制御する。
これにより、記憶装置13に格納されたデータの消去に成功したか否かを従来よりも小さな負荷で検証することができる。
第3の実施形態に係る情報処理システム100は、消去コントローラ14は、検証結果を含む第1の通知信号をサーバ装置2に送信してもよい。サーバ装置2は、検証結果を出力する表示装置128を備えてもよい。
これにより、記憶装置13に格納されたデータの消去に成功したか否かを把握することができる。
第3の実施形態に係る情報処理システム100は、消去コントローラ14は、記憶装置13に格納されたデータの消去の進捗度を含む第2の通知信号をサーバ装置2に送信してもよい。この場合、表示装置128は進捗度を表示する。
これにより、データ消去の進捗度を把握することができる。
[他の実施形態]
以上のように、本出願において開示する技術の例示として、実施形態を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施形態にも適用可能である。また、上記実施形態で説明した各構成要素を組み合わせて、新たな実施形態とすることも可能である。
そこで、以下、他の実施形態を例示する。
記憶装置13は、ソリッドステートドライブに限らず、自己暗号化機能を有するハードディスクドライブ(HDD)などの不揮発性記憶媒体であってもよい。
検証結果は、表示装置18に出力されることに限らず、通信装置16を介して外部の情報処理装置に出力されてもよい。
記憶領域の論理的な先頭には重要なデータが格納されるので、消去コントローラ14は、記憶領域の先頭の32バイトを常に指定してもよい。
消去コントローラ14は、ハッシュ値を計算する際に、データにソルト(予め決められたキーワード)を付加してもよい。
消去コントローラ14は、論理ブロック31のサイズを、例えば1/10にシュリンクしてもよい。
図17~図25、図30~図34では、実施例2に係る消去処理(図10を参照)を実行しながら、データ消去の進捗度を表示する場合について説明した。それに代わって、実施例1に係る消去処理(図6を参照)又は実施例3に係る消去処理(図11を参照)を実行しながら、データ消去の進捗度を同様に表示してもよい。
以上のように、本開示における技術の例示として、実施形態を説明した。そのために、添付図面および詳細な説明を提供した。
したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
また、上述の実施形態は、本開示における技術を例示するためのものであるから、特許請求の範囲またはその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
[実施形態のまとめ]
本開示の第1の態様に係る情報処理装置は、
格納されるデータの自己暗号化機能を有する記憶装置と、
前記記憶装置に格納されたデータの消去を制御する消去コントローラとを備え、
前記記憶装置は、
記憶領域を有する記憶媒体と、
暗号鍵を格納した不揮発性メモリと、
入力されたデータを前記記憶領域に書き込み、前記記憶領域から読み出されたデータを出力し、前記記憶領域に書き込まれるデータの少なくとも一部を前記暗号鍵を用いて暗号化し、前記記憶領域から読み出されたデータの少なくとも一部を前記暗号鍵を用いて復号する入出力コントローラとを備え、
前記消去コントローラは、
前記不揮発性メモリに第1の暗号鍵が格納されている場合、前記記憶領域の指定された位置に格納されるべきデータに基づいて、又は、前記記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得し、
前記不揮発性メモリに格納された前記第1の暗号鍵を第2の暗号鍵に変更するように前記記憶装置を制御し、
前記不揮発性メモリに前記第2の暗号鍵が格納されている場合、前記記憶領域の前記指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算し、
前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力し、
前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記記憶装置に格納されたデータの消去に失敗したことを示す検証結果を出力する。
本開示の第2の態様に係る情報処理装置は、第1の態様に係る情報処理装置において、
前記消去コントローラは、予め決められたパターンデータを前記記憶領域の前記指定された位置に格納するように前記記憶装置を制御し、
前記第1のハッシュ値は、前記パターンデータに基づいて計算される。
本開示の第3の態様に係る情報処理装置は、第1の態様に係る情報処理装置において、
前記消去コントローラは、前記記憶領域の前記指定された位置から読み出されたデータに基づいて、前記第1のハッシュ値を計算する。
本開示の第4の態様に係る情報処理装置は、第3の態様に係る情報処理装置において、
前記記憶領域は複数のブロックを含み、
前記第1及び第2のハッシュ値は、予め決められた個数のブロックごとに、当該ブロックに格納されたデータに基づいて計算される。
本開示の第5の態様に係る情報処理装置は、第1~第4のうちの1つの態様に係る情報処理装置において、
前記記憶領域は、前記記憶領域を論理的に分割した複数の部分領域であって、論理的に連続した複数のブロックをそれぞれ含む複数の部分領域を含み、
前記消去コントローラは、前記複数の部分領域のそれぞれに関して、当該部分領域に含まれる複数のブロックのうち、前記部分領域ごとに異なる割合のブロックを指定し、
前記第1及び第2のハッシュ値は、前記指定された複数のブロックに格納されたデータに基づいて計算される。
本開示の第6の態様に係る情報処理装置は、第1~第4のうちの1つの態様に係る情報処理装置において、
前記記憶領域は複数のブロックを含み、
前記第1及び第2のハッシュ値は、論理的に互いに隣接する複数のブロックに格納されたデータに基づいて計算される。
本開示の第7の態様に係る情報処理装置は、第1の態様に係る情報処理装置において、
前記記憶領域は、前記記憶領域を互いに異なる複数のサイズで論理的に分割した複数の部分領域を含み、
前記第1のハッシュ値は、前記複数のサイズを有する前記複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて計算され、
前記消去コントローラは、
前記複数のサイズのうち第1のサイズを有する複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて前記第2のハッシュ値を計算し、
前記第1のサイズを有する部分領域に関して前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力し、
前記第1のサイズを有する部分領域に関して前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記複数のサイズのうち、前記第1のサイズよりも小さい第2のサイズを有する複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて前記第2のハッシュ値を計算し、
前記第2のサイズを有する部分領域に関して前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力する。
本開示の第8の態様に係る情報処理装置によれば、第1~第7のうちの1つの態様に係る情報処理装置において、
前記検証結果を出力する第1の表示装置を備える。
本開示の第9の態様に係る情報処理装置は、第8の態様に係る情報処理装置において、
前記消去コントローラは、前記記憶装置に格納されたデータの消去の進捗度を前記第1の表示装置に出力する。
本開示の第10の態様に係る情報処理システムは、
第1~第9のうちの1つの態様に係る情報処理装置と、
前記情報処理装置に通信回線を介して接続されたサーバ装置とを備え、
前記消去コントローラは、前記サーバ装置から受信された制御信号に従って、前記記憶装置に格納されたデータの消去を制御する。
本開示の第11の態様に係る情報処理システムによれば、第10の態様に係る情報処理システムにおいて、
前記消去コントローラは、前記検証結果を含む第1の通知信号を前記サーバ装置に送信し、
前記サーバ装置は、前記検証結果を出力する第2の表示装置を備える。
本開示の第12の態様に係る情報処理システムによれば、第11の態様に係る情報処理システムにおいて、
前記消去コントローラは、前記記憶装置に格納されたデータの消去の進捗度を含む第2の通知信号を前記サーバ装置に送信し、
前記第2の表示装置は前記進捗度を表示する。
本開示の第13の態様に係る情報処理方法は、
自己暗号化機能を有する記憶装置に格納されたデータの消去を制御する情報処理方法であって、
前記記憶装置は、
記憶領域を有する記憶媒体と、
暗号鍵を格納した不揮発性メモリと、
入力されたデータを前記記憶領域に書き込み、前記記憶領域から読み出されたデータを出力し、前記記憶領域に書き込まれるデータの少なくとも一部を前記暗号鍵を用いて暗号化し、前記記憶領域から読み出されたデータの少なくとも一部を前記暗号鍵を用いて復号する入出力コントローラとを備え、
前記情報処理方法は、
前記不揮発性メモリに第1の暗号鍵が格納されている場合、前記記憶領域の指定された位置に格納されるべきデータに基づいて、又は、前記記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得するステップと、
前記不揮発性メモリに格納された前記第1の暗号鍵を第2の暗号鍵に変更するように前記記憶装置を制御するステップと、
前記不揮発性メモリに前記第2の暗号鍵が格納されている場合、前記記憶領域の前記指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算するステップと、
前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力するステップと、
前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記記憶装置に格納されたデータの消去に失敗したことを示す検証結果を出力するステップとを含む。
本開示の第13の態様に係るプログラムは、
情報処理装置に実装されたプロセッサによって実行される命令を含むプログラムであって、
前記情報処理装置は、格納されるデータの自己暗号化機能を有する記憶装置をさらに備え、
前記記憶装置は、
記憶領域を有する記憶媒体と、
暗号鍵を格納した不揮発性メモリと、
入力されたデータを前記記憶領域に書き込み、前記記憶領域から読み出されたデータを出力し、前記記憶領域に書き込まれるデータの少なくとも一部を前記暗号鍵を用いて暗号化し、前記記憶領域から読み出されたデータの少なくとも一部を前記暗号鍵を用いて復号する入出力コントローラとを備え、
前記命令は、前記プロセッサに、
前記不揮発性メモリに第1の暗号鍵が格納されている場合、前記記憶領域の指定された位置に格納されるべきデータに基づいて、又は、前記記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得することと、
前記不揮発性メモリに格納された前記第1の暗号鍵を第2の暗号鍵に変更するように前記記憶装置を制御することと、
前記不揮発性メモリに前記第2の暗号鍵が格納されている場合、前記記憶領域の前記指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算することと、
前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力することと、
前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記記憶装置に格納されたデータの消去に失敗したことを示す検証結果を出力することとを実行させる。
本開示の一態様に係る情報処理装置は、自己暗号化機能を有する記憶装置に格納されたデータの消去に成功したか否かを検証することに有用である。
1,1A 情報処理装置
10 バス
11 中央処理装置(CPU)
12 ランダムアクセスメモリ(RAM)
13 記憶装置
14 消去コントローラ
15 不揮発性メモリ
16 通信装置
17 入力装置
18 表示装置
19 装置インターフェース(I/F)
21 入出力コントローラ
22 ランダムアクセスメモリ(RAM)
23 不揮発性メモリ
24 フラッシュメモリ
31 論理ブロック
41 外部記憶装置
100 情報処理システム
120 バス
121 中央処理装置(CPU)
122 ランダムアクセスメモリ(RAM)
123 記憶装置
126 通信装置
127 入力装置
128 表示装置

Claims (14)

  1. 格納されるデータの自己暗号化機能を有する記憶装置と、
    前記記憶装置に格納されたデータの消去を制御する消去コントローラとを備え、
    前記記憶装置は、
    記憶領域を有する記憶媒体と、
    暗号鍵を格納した不揮発性メモリと、
    入力されたデータを前記記憶領域に書き込み、前記記憶領域から読み出されたデータを出力し、前記記憶領域に書き込まれるデータの少なくとも一部を前記暗号鍵を用いて暗号化し、前記記憶領域から読み出されたデータの少なくとも一部を前記暗号鍵を用いて復号する入出力コントローラとを備え、
    前記消去コントローラは、
    前記不揮発性メモリに第1の暗号鍵が格納されている場合、前記記憶領域の指定された位置に格納されるべきデータに基づいて、又は、前記記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得し、
    前記不揮発性メモリに格納された前記第1の暗号鍵を第2の暗号鍵に変更するように前記記憶装置を制御し、
    前記不揮発性メモリに前記第2の暗号鍵が格納されている場合、前記記憶領域の前記指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算し、
    前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力し、
    前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記記憶装置に格納されたデータの消去に失敗したことを示す検証結果を出力する、
    情報処理装置。
  2. 前記消去コントローラは、予め決められたパターンデータを前記記憶領域の前記指定された位置に格納するように前記記憶装置を制御し、
    前記第1のハッシュ値は、前記パターンデータに基づいて計算される、
    請求項1記載の情報処理装置。
  3. 前記消去コントローラは、前記記憶領域の前記指定された位置から読み出されたデータに基づいて、前記第1のハッシュ値を計算する、
    請求項1記載の情報処理装置。
  4. 前記記憶領域は複数のブロックを含み、
    前記第1及び第2のハッシュ値は、予め決められた個数のブロックごとに、当該ブロックに格納されたデータに基づいて計算される、
    請求項3記載の情報処理装置。
  5. 前記記憶領域は、前記記憶領域を論理的に分割した複数の部分領域であって、論理的に連続した複数のブロックをそれぞれ含む複数の部分領域を含み、
    前記消去コントローラは、前記複数の部分領域のそれぞれに関して、当該部分領域に含まれる複数のブロックのうち、前記部分領域ごとに異なる割合のブロックを指定し、
    前記第1及び第2のハッシュ値は、前記指定された複数のブロックに格納されたデータに基づいて計算される、
    請求項1~4のうちの1つに記載の情報処理装置。
  6. 前記記憶領域は複数のブロックを含み、
    前記第1及び第2のハッシュ値は、論理的に互いに隣接する複数のブロックに格納されたデータに基づいて計算される、
    請求項1~4のうちの1つに記載の情報処理装置。
  7. 前記記憶領域は、前記記憶領域を互いに異なる複数のサイズで論理的に分割した複数の部分領域を含み、
    前記第1のハッシュ値は、前記複数のサイズを有する前記複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて計算され、
    前記消去コントローラは、
    前記複数のサイズのうち第1のサイズを有する複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて前記第2のハッシュ値を計算し、
    前記第1のサイズを有する部分領域に関して前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力し、
    前記第1のサイズを有する部分領域に関して前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記複数のサイズのうち、前記第1のサイズよりも小さい第2のサイズを有する複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて前記第2のハッシュ値を計算し、
    前記第2のサイズを有する部分領域に関して前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力する、
    請求項1記載の情報処理装置。
  8. 前記検証結果を出力する第1の表示装置を備える、
    請求項1記載の情報処理装置。
  9. 前記消去コントローラは、前記記憶装置に格納されたデータの消去の進捗度を前記第1の表示装置に出力する、
    請求項8記載の情報処理装置。
  10. 請求項1記載の情報処理装置と、
    前記情報処理装置に通信回線を介して接続されたサーバ装置とを備える情報処理システムであって、
    前記消去コントローラは、前記サーバ装置から受信された制御信号に従って、前記記憶装置に格納されたデータの消去を制御する、
    情報処理システム。
  11. 前記消去コントローラは、前記検証結果を含む第1の通知信号を前記サーバ装置に送信し、
    前記サーバ装置は、前記検証結果を出力する第2の表示装置を備える、
    請求項10記載の情報処理システム。
  12. 前記消去コントローラは、前記記憶装置に格納されたデータの消去の進捗度を含む第2の通知信号を前記サーバ装置に送信し、
    前記第2の表示装置は前記進捗度を表示する、
    請求項11記載の情報処理システム。
  13. 自己暗号化機能を有する記憶装置に格納されたデータの消去を制御する情報処理方法であって、
    前記記憶装置は、
    記憶領域を有する記憶媒体と、
    暗号鍵を格納した不揮発性メモリと、
    入力されたデータを前記記憶領域に書き込み、前記記憶領域から読み出されたデータを出力し、前記記憶領域に書き込まれるデータの少なくとも一部を前記暗号鍵を用いて暗号化し、前記記憶領域から読み出されたデータの少なくとも一部を前記暗号鍵を用いて復号する入出力コントローラとを備え、
    前記情報処理方法は、
    前記不揮発性メモリに第1の暗号鍵が格納されている場合、前記記憶領域の指定された位置に格納されるべきデータに基づいて、又は、前記記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得するステップと、
    前記不揮発性メモリに格納された前記第1の暗号鍵を第2の暗号鍵に変更するように前記記憶装置を制御するステップと、
    前記不揮発性メモリに前記第2の暗号鍵が格納されている場合、前記記憶領域の前記指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算するステップと、
    前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力するステップと、
    前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記記憶装置に格納されたデータの消去に失敗したことを示す検証結果を出力するステップとを含む、
    情報処理方法。
  14. 情報処理装置に実装されたプロセッサによって実行される命令を含むプログラムであって、
    前記情報処理装置は、格納されるデータの自己暗号化機能を有する記憶装置をさらに備え、
    前記記憶装置は、
    記憶領域を有する記憶媒体と、
    暗号鍵を格納した不揮発性メモリと、
    入力されたデータを前記記憶領域に書き込み、前記記憶領域から読み出されたデータを出力し、前記記憶領域に書き込まれるデータの少なくとも一部を前記暗号鍵を用いて暗号化し、前記記憶領域から読み出されたデータの少なくとも一部を前記暗号鍵を用いて復号する入出力コントローラとを備え、
    前記命令は、前記プロセッサに、
    前記不揮発性メモリに第1の暗号鍵が格納されている場合、前記記憶領域の指定された位置に格納されるべきデータに基づいて、又は、前記記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得することと、
    前記不揮発性メモリに格納された前記第1の暗号鍵を第2の暗号鍵に変更するように前記記憶装置を制御することと、
    前記不揮発性メモリに前記第2の暗号鍵が格納されている場合、前記記憶領域の前記指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算することと、
    前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力することと、
    前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記記憶装置に格納されたデータの消去に失敗したことを示す検証結果を出力することとを実行させる、
    プログラム。
JP2024567238A 2022-12-26 2023-10-16 情報処理装置 Active JP7777800B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2022208965 2022-12-26
JP2022208965 2022-12-26
JP2023100945 2023-06-20
JP2023100945 2023-06-20
PCT/JP2023/037435 WO2024142555A1 (ja) 2022-12-26 2023-10-16 情報処理装置

Publications (2)

Publication Number Publication Date
JPWO2024142555A1 JPWO2024142555A1 (ja) 2024-07-04
JP7777800B2 true JP7777800B2 (ja) 2025-12-01

Family

ID=91717323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024567238A Active JP7777800B2 (ja) 2022-12-26 2023-10-16 情報処理装置

Country Status (3)

Country Link
EP (1) EP4645139A4 (ja)
JP (1) JP7777800B2 (ja)
WO (1) WO2024142555A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080082836A1 (en) 2006-09-29 2008-04-03 Hitachi, Ltd. Method and apparatus for data protection

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9363085B2 (en) * 2013-11-25 2016-06-07 Seagate Technology Llc Attestation of data sanitization
GB201701747D0 (en) * 2017-02-02 2017-03-22 Blancco Tech Group Ip Oy Intelligent verification of cryptographic erase and other firmware erasure processes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080082836A1 (en) 2006-09-29 2008-04-03 Hitachi, Ltd. Method and apparatus for data protection

Also Published As

Publication number Publication date
WO2024142555A1 (ja) 2024-07-04
JPWO2024142555A1 (ja) 2024-07-04
EP4645139A1 (en) 2025-11-05
EP4645139A4 (en) 2026-04-29

Similar Documents

Publication Publication Date Title
US10887086B1 (en) Protecting data in a storage system
CN102473127B (zh) 在包含源和目标的分布式环境中进行重复数据删除的方法
EP3025271B1 (en) Key rotation for a memory controller
US10733061B2 (en) Hybrid data storage system with private storage cloud and public storage cloud
JP7096829B2 (ja) データ削除処理を検証する方法及びシステム
JP2008537192A (ja) フラッシュメモリ内でコピー操作を管理する方法
JP2010509690A (ja) 記憶装置のセキュリティを確保する方法とシステム
JP5574858B2 (ja) 情報処理装置、情報処理装置の制御方法、プログラム
US10289310B2 (en) Hybrid data storage system with private storage cloud and public storage cloud
CN108985111A (zh) 数据储存装置以及固件加解密方法
JP6587953B2 (ja) ストレージコントローラ、ストレージ装置、データ処理方法およびプログラム
JP2020038650A (ja) ベクトルプロセッサ格納
EP2998903B1 (en) System and method for robust full-drive encryption
JP2022522595A (ja) ホストベースのフラッシュメモリメンテナンス技術
TW201945975A (zh) 使用標準化資料儲存及擷取協定的用於資料加密之方法及設備
TW201729098A (zh) 用於減少儲存資料的複製之技術
US20140219041A1 (en) Storage device and data processing method thereof
JP7777800B2 (ja) 情報処理装置
JP6944317B2 (ja) ファイル転送システムおよびファイル転送方法
US20250138748A1 (en) Memory system and random number generation device
KR20210035912A (ko) 암호화 동작에 기초한 데이터 세그먼트 수정
WO2024262068A1 (ja) 情報処理システム
JP2009187646A (ja) ハードディスクドライブ用の暗号化復号化装置、及びハードディスクドライブ装置
US10929030B2 (en) Computer and control method
US11573912B2 (en) Memory device management system, memory device management method, and non-transitory computer-readable recording medium erasing data stored in memory device if a value of a first key and second key are different

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20250219

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: 20251104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20251106

R150 Certificate of patent or registration of utility model

Ref document number: 7777800

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150