JP4767057B2 - ハッシュ値生成プログラム、ストレージ管理プログラム、判定プログラム及びデータ変更検証装置 - Google Patents

ハッシュ値生成プログラム、ストレージ管理プログラム、判定プログラム及びデータ変更検証装置 Download PDF

Info

Publication number
JP4767057B2
JP4767057B2 JP2006084490A JP2006084490A JP4767057B2 JP 4767057 B2 JP4767057 B2 JP 4767057B2 JP 2006084490 A JP2006084490 A JP 2006084490A JP 2006084490 A JP2006084490 A JP 2006084490A JP 4767057 B2 JP4767057 B2 JP 4767057B2
Authority
JP
Japan
Prior art keywords
hash value
hash
data
segment
storage
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.)
Expired - Fee Related
Application number
JP2006084490A
Other languages
English (en)
Other versions
JP2007257566A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006084490A priority Critical patent/JP4767057B2/ja
Priority to US11/497,297 priority patent/US7734598B2/en
Publication of JP2007257566A publication Critical patent/JP2007257566A/ja
Application granted granted Critical
Publication of JP4767057B2 publication Critical patent/JP4767057B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • G11B20/00485Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier
    • G11B20/00492Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier wherein content or user data is encrypted
    • G11B20/00507Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier wherein content or user data is encrypted wherein consecutive physical data units of the record carrier are encrypted with separate encryption keys, e.g. the key changes on a cluster or sector basis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

本発明はハッシュ値生成プログラムストレージ管理プログラム、判定プログラム及びデータ変更検証装置に関し、特に所定の一方向ハッシュ関数を用いて、対象ディスクに格納されるデータのハッシュ値を生成するハッシュ値生成プログラムと、仮想の論理ディスクのデータをストレージに格納し、このハッシュ値を用いてデータを管理するストレージ管理プログラム及びストレージシステムとに関する。
従来、ストレージシステムは、e−文書法準拠文書、電子メールアーカイブ、映像データ、研究開発実験データ、医療カルテなど、様々な場所で大量に発生するデータを蓄積するとともに、その運用管理を行ってきた。近年、利用範囲の拡大や情報量の増大が続いており、記憶容量の大容量化とともに、安定したサービスの提供や信頼性、セキュリティへの対応が求められている。
図9は、従来のストレージシステムの構成の一例を示した概略図である。
図の例のストレージシステムは、各々が独立して入出力処理を行って自装置内のストレージにデータを格納するモジュール1(920)、モジュール2(930)、及びモジュール3(940)が、ネットワーク910を介して接続している。このような構成のストレージシステムでは、実際には、モジュール1(920)、モジュール2(930)、及びモジュール3(930)に分散配置されるデータを、仮想的な論理ディスク900としてユーザに提供する。図の例では、ユーザに提供される論理ディスク900は、5つのセグメントS1、S2、S3、S4、S5に分割され、モジュール1(920)のS1領域(921)とS5領域(922)、モジュール2(930)のS2領域(931)とS4領域(932)、及びモジュール3(940)のS3領域(941)に分散して格納される。
このようなプロセッサと外部記憶装置から成る処理装置をネットワーク上に階層的に配置した環境において、データの入出力処理の効率化を図るため、データベースのテーブルをユーザが指定した方法で分割して配置することによって、データの均一な分配と、分割方式に応じたデータ検索を可能とするシステムが提案されている(たとえば、特許文献1参照)。
また、データベースのテーブルを特定フィールドのインデックスを用いてブロックに分割し、各ブロックのテーブルを転置ファイルとして構成するシステムも提案されている(たとえば、特許文献2参照)。
特開2000−347911号公報(段落番号〔0029〕〜〔0039〕、第5〜9図) 特開2001−43237号公報(段落番号〔0027〕〜〔0028〕、第9図)
ところで、ストレージシステムに格納される情報の中には、たとえば、一定期間の保管が義務付けられているe−文書法準拠文書など、読み出すことは許可しても書き込みを許可しないという使い方(以下、リード・オンリーとする)がされるものがある。CD−ROM(Compact Disc Read Only Memory)やDVD−ROM(Digital Versatile Disc Read Only Memory)など、物理的に書き込みができない媒体であれば無改ざんを保証する必要はない。しかしながら、ストレージシステムは、ハードディスク装置(Hard Disk Drive)などで構成されており、システム的に書き込みを禁止することはできるが、物理的には書き換えが可能である。したがって、無改ざんの証明が必要になる。
無改ざんの証明では、まず、データを保管する際などに、論理ディスク900の全データ(X)に対し、ハッシュ関数Hによる演算を行ってハッシュ値H[X]を算出しておく。算出したハッシュ値H[X]は、記憶装置に保存しておく。また、ハッシュ値とハッシュ関数を公開しておいてもよい。そして、監査時、あるいは、データを利用する場合などに、その時点の論理ディスク900の全データ(X’)に対し、一方向性ハッシュ関数(H)による演算を行って、ハッシュ値H(X’)を算出する。こうして得られたハッシュ値H(X’)と、保管前に算出しておいたハッシュ値H[X]とを照合する。H[X]=H(X’)であれば、X=X’(無改ざん)を証明することができる。処理は、データを利用するサーバなどの他装置が、公開されたハッシュ値とハッシュ関数を用いて行ってもよい。
上述のように、ストレージシステムでは、データの大容量化が進んでおり、特許文献1及び特許文献2に記載されているように、データの入出力処理の効率化のための手法が提案されてきた。しかしながら、ハッシュ値の算出は、論理ディスク900の全データを対象とし、一括して計算が行われてきた。このため、データの大容量化に伴って処理時間が増大し、運用上問題となっていた。
なお、分散配置されるストレージの論理ディスク900ばかりでなく、1台のストレージに全データが格納される場合でも同様であり、データサイズによっては、ハッシュ値生成に要する時間が運用上問題となっていた。
本発明はこのような点に鑑みてなされたものであり、ハッシュ値算出の処理時間の短縮が可能なハッシュ値生成プログラムストレージ管理プログラム、判定プログラム及びデータ変更検証装置を提供することを目的とする。
所定の一方向ハッシュ関数を用いて、対象ディスクに格納されるデータのハッシュ値を生成するハッシュ値生成プログラムにおいて、コンピュータを、前記対象ディスクを固定長のセグメントに分割するセグメント分割手段、前記セグメント分割手段によって分割された前記セグメントごとに、前記セグメントの全データ列に前記一方向ハッシュ関数を適用して、セグメント別ハッシュ値を算出する第1のハッシュ値算出手段、前記第1のハッシュ値算出手段によって算出された前記セグメント別ハッシュ値を前記対象ディスクに格納されるデータのデータ順に応じたセグメント順に並べ、前記セグメント別ハッシュ値に前記一方向ハッシュ関数を適用して全体のハッシュ値を算出する第2のハッシュ値算出手段、所定のタイミングで前記第2のハッシュ値算出手段によって算出された前記全体のハッシュ値と、必要に応じて前記セグメントのサイズと前記一方向ハッシュ関数とを保存しておき、以後の処理において検証の必要がある場合は、保存された前記セグメントのサイズと前記一方向ハッシュ関数を用いて前記第1のハッシュ値算出手段及び前記第2のハッシュ値算出手段とによって前記全体のハッシュ値を再度算出し、保存された前記全体のハッシュ値と照合して一致しているかどうかを検証する検証手段、として機能させることを特徴とするハッシュ値生成プログラムが提供される。
また、仮想の論理ディスクのデータがセグメント単位で複数のストレージモジュールに分散格納されるストレージシステムを管理するストレージ管理プログラムにおいて、コンピュータを、前記セグメント単位を固定長とし、前記ストレージモジュールごとに具備される前記ストレージモジュールが分散格納する前記セグメントの全データ列に一方向ハッシュ関数を適用して、セグメント別ハッシュ値を算出させる第1のハッシュ値算出手段を制御し、前記第1のハッシュ値算出手段に前記セグメント別ハッシュ値を算出させる制御手段、前記ストレージモジュールの前記第1のハッシュ値算出手段によって算出された前記セグメント別ハッシュ値を取得し、前記セグメント別ハッシュ値を前記論理ディスクのデータのデータ順に応じたセグメント順に並べ、前記一方向ハッシュ関数を適用して前記論理ディスク全体のハッシュ値を算出する第2のハッシュ値算出手段、として機能させ、前記制御手段は、前記論理ディスクのメタ情報として記述されるデータ定義に基づき、前記ストレージモジュールに割り当てられた前記セグメントを検索し、前記第1のハッシュ値算出手段に検索された前記セグメントのハッシュ計算を指示する、ことを特徴とするストレージ管理プログラムが提供される。
また、仮想の論理ディスクのデータがセグメント単位で複数のストレージモジュールに分散格納されるストレージシステムを管理するストレージ管理プログラムにおいて、コンピュータを、前記セグメント単位を固定長とし、前記ストレージモジュールごとに具備される前記ストレージモジュールが分散格納する前記セグメントの全データ列に一方向ハッシュ関数を適用して、セグメント別ハッシュ値を算出させる第1のハッシュ値算出手段を制御し、前記第1のハッシュ値算出手段に前記セグメント別ハッシュ値を算出させる制御手段、前記ストレージモジュールの前記第1のハッシュ値算出手段によって算出された前記セグメント別ハッシュ値を取得し、前記セグメント別ハッシュ値を前記論理ディスクのデータのデータ順に応じたセグメント順に並べ、前記一方向ハッシュ関数を適用して前記論理ディスク全体のハッシュ値を算出する第2のハッシュ値算出手段、所定のタイミングで前記第2のハッシュ値算出手段によって算出された前記全体のハッシュ値と、必要に応じて前記セグメントのサイズと前記一方向ハッシュ関数とを保存しておき、以後の処理において検証の必要がある場合には、前記制御手段に指示して、再度ハッシュ計算を実行させ、再度算出された前記全体のハッシュ値と、保存しておいた前記全体のハッシュ値とを照合し、一致しているかどうかを検証する検証手段、として機能させることを特徴とするストレージ管理プログラムが提供される。
また、記憶装置に記憶された記憶データを所定長のデータに分割して得られる複数の分割データのそれぞれについて所定の一方向ハッシュ関数を適用して、前記複数の分割データのそれぞれについてのハッシュ値を算出し、算出した前記複数の分割データのそれぞれについてのハッシュ値を所定の順に配置して得られるデータについて前記所定の一方向ハッシュ関数を適用して算出した第1のハッシュ値を記憶手段に記憶させ、前記記憶装置に記憶された前記記憶データに変更がなされたか否かを判定する際に、判定対象の記憶データを前記所定長のデータに分割して得られた複数の分割データのそれぞれについて前記所定の一方向ハッシュ関数を適用して、前記複数の分割データのそれぞれについてのハッシュ値を算出し、算出した前記複数の分割データのそれぞれについてのハッシュ値を前記所定の順に配置して得られるデータについて前記所定の一方向ハッシュ関数を適用して算出した第2のハッシュ値と、前記記憶手段に記憶させた前記第1のハッシュ値とが一致するか否か判定することで、前記記憶データに変更がなされたか否かの判定を行う、処理をコンピュータに実行させることを特徴とする判定プログラムが提供される。
また、記憶装置に記憶された記憶データを所定長のデータに分割して得られる複数の分割データのそれぞれについて所定の一方向ハッシュ関数を適用して、前記複数の分割データのそれぞれについてのハッシュ値を算出し、算出した前記複数の分割データのそれぞれについてのハッシュ値を所定の順に配置して得られるデータについて前記所定の一方向ハッシュ関数を適用して算出した第1のハッシュ値を記憶する記憶手段と、前記記憶装置に記憶された前記記憶データに変更がなされたか否かを判定する際に、判定対象の記憶データを前記所定長のデータに分割して得られた複数の分割データのそれぞれについて前記所定の一方向ハッシュ関数を適用して、前記複数の分割データのそれぞれについてのハッシュ値を算出し、算出した前記複数の分割データのそれぞれについてのハッシュ値を前記所定の順に配置して得られるデータについて前記所定の一方向ハッシュ関数を適用して算出した第2のハッシュ値と、前記記憶手段に記憶された前記第1のハッシュ値とが一致するか否か判定することで、前記記憶データに変更がなされたか否かの判定を行う検証手段と、を備えたことを特徴とするデータ変更検証装置が提供される。
本発明では、対象ディスクを固定長のセグメントに分割し、分割したセグメントごとに一方向ハッシュ関数をその全データ列に適用してセグメント別ハッシュ値を算出し、セグメント別ハッシュ値を対象ディスクのデータ順に応じて並べ、再度一方向ハッシュ関数を適用して全体のハッシュ値を算出する。たとえば、セグメント別ハッシュ値の算出を並列に動作が可能なハッシュ値計算手段で実行すれば、ハッシュ値算出に要する時間を短縮することができる。特に、対象ディスクのデータサイズが増大した場合であっても、並列計算を行うため、全体の処理速度を低下させることがない。
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、実施の形態に適用される発明の概念図である。
本発明に係るハッシュ値生成装置1は、対象ディスク2をセグメントに分割するセグメント分割手段1a、セグメント別のハッシュ値を算出する第1のハッシュ値算出手段1b、全体のハッシュ値を算出する第2のハッシュ値算出手段1c、及びハッシュ値を用いた検証を行う検証手段1dを具備し、対象ディスク2に格納されるデータに対して、一方向性ハッシュ関数(以下、一方向性ハッシュ関数を単にハッシュ関数と表記する)に基づくハッシュ値3aを生成する。各処理手段は、コンピュータが、ハッシュ値生成プログラムを実行することにより実現する。
なお、一方向性ハッシュ関数H[X]とは、
1.あるxに対して、H[x]=H[y]を満たすy(x≠y)を発見することが困難、
2.H[x]=H[y]を満たすx,y(x≠y)を発見することが困難、
3.H[x]からxを逆算することが極めて困難、
を満たす関数をいう。一方向性ハッシュ関数として、いくつかの関数が知られており、本発明では、適用するシステムに応じて、そのうちの任意の一方向性ハッシュ関数を選択する。
セグメント分割手段1aは、対象ディスク2を固定長のn個(nは任意の整数)のセグメントに分割し、第1のハッシュ値算出手段1bへ通知する。なお、対象ディスク2は、ハッシュ値算出対象のデータを格納するメモリ領域が設定される記憶装置であり、物理的なメモリ、もしくは仮想的なメモリ機構によって生成される仮想メモリで構成される。
第1のハッシュ値算出手段1bは、並列に動作可能な計算部1(11b)、計算部2(12b)、・・・、計算部m(13b)を具備する。なお、mは任意の整数であり、セグメント数nと同じ値である必要はない。計算部は、各々指定されたセグメントのデータ列に対し、共通のハッシュ関数H[X]を用いて計算を行い、セグメント別ハッシュ値H[S]を生成する。どのセグメントのデータをどの計算部が実行するかは、図示しない制御部が判断し、計算部には、たとえば、セグメントまたはセグメントの開始アドレスと、データサイズが指示される。指示を受けた計算部は、対象のセグメントデータ列を読み出し、セグメント別ハッシュ値を算出する。図の例では、計算部1(11b)には、まず、セグメントS1(21)に対する計算が指示されてH[S1]31が生成される。続いて、セグメントS2(22)に対する計算が指示され、H[S2]32が生成される。指示は、一括して行われ、指示を解釈した計算部1(11b)が処理を順次実行するとしてもよい。同様に、計算部2(12b)には、セグメントS3(23)に対する計算指示が行われ、H[S3]33が生成される。また、計算部m(13b)にはセグメントSn(24)に対する計算指示が行われ、H[Sn]34が生成される。制御部は、セグメント分割手段1a、または第1のハッシュ値算出手段1bなど、ハッシュ値生成装置1内に任意に設けられる。生成したセグメント別ハッシュ値H[S1]31、H[S2]32、H[S3]33、・・・、H[Sn]34は、第2のハッシュ値算出手段1cへ出力する。
第2のハッシュ値算出手段1cは、第1のハッシュ値算出手段1bが算出したセグメント別ハッシュ値H[S]を、対象ディスク2に格納されるデータのデータ順に並べる。図の例では、セグメント別ハッシュ値H[S1]31、H[S2]32、H[S3]33、・・・、H[Sn]34の順に並べられる。こうして並べられたセグメント別ハッシュ値H[S]に対し、再度ハッシュ関数を用いて計算を行い、全体のハッシュ値を得る。図の例では、セグメント別ハッシュ値H[S1]31、H[S2]32、H[S3]33、・・・、H[Sn]34から、全体のハッシュ値H[H[S1]、・・・、H[Sn]]3aを得る。
このように、第1のハッシュ値算出手段1b及び第2のハッシュ値算出手段1cとの2段階のハッシュ演算によって得られる全体のハッシュ値(HH[X]とする)は、従来の対象ディスク2全体のデータ列に対してハッシュ関数を適用して得られるハッシュ値(H[X]とする)と値が異なるが、一方向性は保持される。また、セグメントサイズを固定とし、上記のような2段階のハッシュ演算を行った場合のハッシュ値HH[X]は、データが改ざんされていなければ、常に同じ値となる。したがって、セグメントサイズを固定長とすれば、HH[X]をH[X]と同様に取り扱うことができる。そこで、データ登録時に算出したHH[X]と、監査時に算出したHH[X’]とを照合し、HH[X]=HH[X’]であれば、X=X’であること、すなわち、無改ざんを証明することができる。
検証手段1dは、所定のタイミング、たとえば、対象ディスク2にデータが登録された時点や対象ディスク2への書き込みを不可とした時点などに、第1のハッシュ値算出手段1b及び第2のハッシュ値算出手段によって算出された全体のハッシュ値を記憶手段に保存しておく。この保存したハッシュ値を、H[H[S”1]、・・・、H[S”n]]3bとしておく。このとき、必要であれば、算出時のセグメントのサイズとハッシュ関数とも記憶手段にともに保存しておく。そして、これ以降の任意の時点、たとえば、監査要求時など、検証の必要が生じた場合は、対象ディスク2について、セグメント分割手段1a、第1のハッシュ値算出手段1b、及び第2のハッシュ値算出手段1cを用いて、対象ディスク2の全体のハッシュ値3aを算出する。必要であれば、記憶しておいたハッシュ関数と、セグメントのサイズを参照して計算を行う。そして、得られた全体のハッシュ値3aと、記憶手段に格納しておいた全体のハッシュ値3bとを照合し、一致しているかどうかを検証する。一致している場合は、対象ディスク2は、全体のハッシュ値3bを登録した時点と同じ、すなわち、無改ざんであることが証明される。不一致の場合は、対象ディスク2は、改ざんされたことがわかる。
このような構成のハッシュ値生成装置1の動作について説明する。
ハッシュ値生成装置1に対して対象ディスク2が指示されると、セグメント分割手段1aが対象ディスク2を固定長のセグメントに分割する。第1のハッシュ値算出手段1bは、並列に動作する計算部1(11b)、計算部2(12b)、・・・計算部m(13b)が、それぞれ割り当てられたセグメントのデータ列S1(21)、S2(22)、S3(23)、・・・、Sn(24)を読み出し、ハッシュ関数H[X]を適用してセグメント別ハッシュ値H[S1]31、H[S2]32、H[S3]33、・・・、H[Sn]34を算出する。そして、第2のハッシュ値算出手段1cは、第1のハッシュ値算出手段1bが算出したセグメント別ハッシュ値H[S1]31、H[S2]32、H[S3]33、・・・、H[Sn]34に対して再度ハッシュ関数を適用し、全体のハッシュ値H[H[S1]、・・・、H[Sn]]3aを算出する。検証手段1dは、所定のタイミングで算出された全体のハッシュ値H[H[S1]、・・・、H[Sn]]3aを記憶手段に記憶しておく。これを全体のハッシュ値(保存データ)H[H[S”1]、・・・、H[S”n]]3bとする。また、必要に応じて、適用したハッシュ関数と分割されたセグメントのセグメントサイズも保存しておく。そして、以降の任意の時点で対象ディスク2の検証が必要となった場合は、同一のセグメントサイズとハッシュ関数で再度算出された対象ディスク2の全体のハッシュ値3aと、保存されていた全体のハッシュ値3bとを照合し、一致しているかどうかを判定する。一致している場合には、対象ディスク2は、全体のハッシュ値3bを保存した時点のデータと同一であることが証明される。一致していない場合は、対象ディスク2は書き換えられていることがわかる。
このように、第1のハッシュ値算出手段1bにおいて、複数の計算部でセグメントごとに並列計算を行うため、対象ディスク2全体のデータ列に対してハッシュ計算を行う場合に比べ、高速に処理を行うことが可能となる。
また、所定のタイミングで対象ディスク2のハッシュ値を算出して保存しておき、以降の任意の時点で検証が必要な場合に再度ハッシュ値を算出して照合すれば、対象ディスク2が無改ざんであるかどうかが検証できる。
なお、上記の説明では、第1のハッシュ値算出手段1bによるセグメント別ハッシュ値を並列に動作可能な複数の計算部で並列計算するとしたが、1つのプロセッサでセグメントごとに順次ハッシュ値を算出するとしても、同じHH[X]を得ることができる。したがって、複数の並列動作可能な計算部を有しない装置、たとえば、データ利用側のホストコンピュータにおいてもHH[X]を算出し、利用することができる。
ところで、ユーザに提供する仮想的な論理ディスクのデータを複数のモジュールに分散格納するストレージシステムでは、既に論理ディスクがセグメントに分割され、各々のモジュールにセグメントが割り当てられる構成となっている。そこで、このようなストレージシステムに本発明を適用する場合には、セグメントサイズを固定とすれば、セグメント分割手段1aは、省略できる。また、第1のハッシュ値算出手段1bを構成する計算部は、モジュールごとに設ければよく、本発明を容易に適用することができる。以下、実施の形態を、論理ディスクに格納されるデータを複数のモジュールに分散格納するストレージシステムに適用した場合を例に図面を参照して詳細に説明する。
図2は、本発明の実施の形態のストレージシステムの構成を示した構成図である。
本発明の実施の形態のストレージシステム100は、様々なデータの保管管理を行っており、ネットワーク300を介して接続するサーバA(201)、サーバB(202)、PC(Personal Computer)203などからの要求に応じて格納するデータの提供などのサービスを行う。ストレージシステム100には、サーバA(201)、サーバB(202)、及びPC203に対し、それぞれが使用可能な論理ディスク400が用意されており、サーバA(201)、サーバB(202)、及びPC203は、この論理ディスク400に対してアクセス要求を行う。論理ディスク400は、ユーザに提供するメモリ空間を、仮想的なメモリ機構によって生成した仮想的なメモリ領域である。
ストレージシステム100は、全体の管理を行うストレージ管理装置110と、独立して動作可能なストレージモジュール1(120)、ストレージモジュール2(130)、ストレージモジュール3(140)、ストレージモジュール4(150)、・・・、ストレージモジュールn(160)とを具備する。
ストレージモジュール1(120)、ストレージモジュール2(130)、ストレージモジュール3(140)、ストレージモジュール4(150)、・・・、ストレージモジュールn(160)は、それぞれ記憶装置121、131、141、151、・・・、161と、プロセッサを具備する。以下、特に限定する必要がない場合は、ストレージモジュール、記憶装置と表記する。各ストレージモジュールは、論理ディスク400のデータを固定長のセグメント単位で格納するとともに、ストレージ管理装置110に従って、または、自律的にデータの入出力処理を行う。また、ストレージ管理装置110とは、所定のネットワーク(図示せず)を介して接続しており、ストレージ管理装置110の要求するタイミングで、セグメント別ハッシュ値の算出処理を実行する。図の例では、論理ディスク400は、S1からS5の5つのセグメントに分割され、セグメントごとに、いずれか選択されたストレージモジュールの記憶装置に格納される。
ストレージ管理装置110は、ストレージモジュールを管理しており、各ストレージモジュールに格納されるデータの運用管理とともに、障害の監視や定期的な監査などを行う。処理の詳細は後述する。
ここで、ストレージ管理装置110のハードウェア構成について説明する。図3は、本実施の形態のストレージ管理装置のハードウェア構成例を示すブロック図である。
ストレージ管理装置110は、CPU(Central Processing Unit)111によって装置全体が制御されている。CPU111には、バス117を介してRAM(Random Access Memory)112、HDD(Hard Disk Drive)113、グラフィック処理装置114、入力インタフェース115、通信インタフェース116が接続されている。
RAM112には、CPU111に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM112には、CPU111による処理に必要な各種データが格納される。HDD113には、OSやアプリケーションのプログラムが格納される。グラフィック処理装置114には、モニタ118が接続されており、CPU111からの命令に従って画像をモニタ118の画面に表示させる。入力インタフェース115には、キーボード119aやマウス119bが接続されており、キーボード119aやマウス119bから送られてくる信号を、バス117を介してCPU111に送信する。通信インタフェース116は、ネットワーク300に接続されており、ネットワーク300を介してサーバA(201)、B(202)やPC203との間でデータの送受信を行う。
このようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3では、モニタ118、キーボード119a、マウス119bが直接ストレージ管理装置110に接続するとしたが、ストレージ管理装置110が、モニタ118、キーボード119a、マウス119bを具備する通信端末とネットワーク300を介して接続する構成としてもよい。この場合、たとえば、通信端末のマウス119bまたはキーボード119aからの入力指示をネットワーク300経由で取得して処理を行い、ネットワーク300経由で出力する処理結果が通信端末のモニタ118に表示される。
次に、ストレージシステム100のソフトウェア構成について説明する。
図4は、本実施の形態のストレージシステムのソフトウェア構成例を示す図である。
なお、図4では、ハッシュ算出処理に関連するモジュールのみを表記しており、各ストレージモジュールに分散して格納されるデータの入出力処理を実行する入出力処理モジュールを省略している。データの入出力処理は、たとえば、ストレージ管理装置110によって各モジュールへデータの読み書き制御が行われ、各モジュールは指示に従って入出力処理を行うとしてもよい。また、各ストレージモジュールが自律的に入出力処理を実行するとしてもよい。
以下、ハッシュ値算出処理に関連するモジュールについて説明する。
ストレージシステムは、ハッシュ計算制御モジュール501と検証モジュール502とを有するストレージ管理装置110、計算処理モジュール503とストレージ121とを有するストレージモジュール1(120)、計算処理モジュール504とストレージ131とを有するストレージモジュール2(130)、及び計算処理モジュール505とストレージ141とを有するストレージモジュール3(140)を具備する。
ハッシュ計算制御モジュール501は、ハッシュ値計算の制御と、論理ディスク400全体のハッシュ値算出を行う第2のハッシュ値算出手段としての処理を行う。具体的には、ハッシュ計算開始時に、論理ディスク400のメタ情報を参照して、ストレージモジュール1(120)、ストレージモジュール2(130)、及びストレージモジュール3(140)に対し、それぞれが格納するセグメントごとのハッシュ値を算出するように指示を行う。そして、指示に従ってストレージモジュール1(120)、ストレージモジュール2(130)、及びストレージモジュール3(140)が算出したセグメント別ハッシュ値を受け取り、論理ディスク400のデータのデータ順に応じたセグメント順でセグメント別ハッシュ値を並べ、再度ハッシュ関数を適用して論理ディスク400全体のハッシュ値を算出する。
検証モジュール502は、検証手段としての処理を行う。具体的には、論理ディスク400へのデータ書き込みを禁止する時点など、所定のタイミングで、ハッシュ計算制御モジュール501に、ハッシュ計算を指示する。そして、ハッシュ計算制御モジュール501から取得した論理ディスク400のハッシュ値を、セグメントサイズとハッシュ関数とともに保存しておく。なお、これらの値を公開し、サーバA(201)、サーバB(202)、PC(203)などが利用できるようにしておいてもよい。そして、監査要求を受けたとき、もしくは、所定の監視タイミングでハッシュ計算制御モジュール501に対し、論理ディスク400のハッシュ値算出を指示する。必要であれば、セグメントサイズとハッシュ関数を提供する。ハッシュ計算制御モジュール501から再度計算された論理ディスク400のハッシュ値を取得すると、取得した現時のハッシュ値と、保存しておいたハッシュ値とを比較し、一致しているかどうかによって、改ざんが行われたかどうかを検証する。
ストレージモジュール1(120)は、ストレージ121に、論理ディスク400のセグメントS1を格納するS1領域122とセグメントS5を格納するS5領域123を有する。また、計算処理モジュール503は、ハッシュ計算制御モジュール501の指示に従って、セグメントS1とセグメントS5それぞれに対し、そのデータ列にハッシュ関数を適用してセグメント別ハッシュ値を算出する。算出したセグメント別ハッシュ値は、ハッシュ計算制御モジュール501に出力する。
ストレージモジュール2(130)は、ストレージ131に論理ディスク400のセグメントS2を格納するS2領域132と、セグメントS4を格納するS4領域133を有する。また、計算処理モジュール504は、計算処理モジュール503と同様に、セグメントS2とセグメントS4のセグメント別ハッシュ値を算出し、ハッシュ計算制御モジュール501に出力する。
ストレージモジュール3(140)は、ストレージ141に論理ディスク400のセグメントS3を格納するS3領域142を有する。また、計算処理モジュール505は、計算処理モジュール503と同様に、セグメントS3のセグメント別ハッシュ値を算出し、ハッシュ計算制御モジュール501に出力する。
なお、上記の説明では、ストレージモジュールを3つとしたが、ストレージモジュールの数は任意である。また、論理ディスク400は、それぞれのユーザごとに設けられた複数の論理ディスクのうちの1つである。それぞれの論理ディスクは、たとえば、論理ディスクIDによって区別される。
このような構成のストレージシステム100の動作について説明する。
たとえば、論理ディスク400にデータの書き込みが行われた場合など、検証モジュール502から指示に従って、ハッシュ計算制御モジュール501が計算処理を開始させる。ハッシュ計算制御モジュール501は、論理ディスク400のメタ情報を参照し、ストレージモジュール1(120)に対し、セグメントS1とセグメントS5のハッシュ値算出を指示する。指示は一括して行っても、また、計算がひとつ終了した後に次の指示を行うようにしてもよい。ストレージモジュール1(120)からの応答を待たず、続いて、ストレージモジュール2(130)に対し、セグメントS2とセグメントS4のハッシュ値算出を指示し、ストレージモジュール3(140)に対し、セグメントS3のハッシュ値算出を指示する。各ストレージモジュールは、指示に従ってセグメントごとにハッシュ値を算出し、応答としてハッシュ計算制御モジュール501に算出したセグメント別ハッシュ値を出力する。ハッシュ計算制御モジュール501は、ストレージモジュール1(120)からセグメントS1とセグメントS5のハッシュ値、ストレージモジュール2(130)からセグメントS2とセグメントS4のハッシュ値、及びストレージモジュール3(140)からセグメントS3のハッシュ値を受け取ると、これを論理ディスク400のセグメント順に並べ、並べられたセグメント別ハッシュ値に対し、再度ハッシュ関数を適用して全体のハッシュ値を算出し、論理ディスク400のハッシュ値として検証モジュール502に出力する。検証モジュール502は、論理ディスク400のハッシュ値と、ハッシュ関数及びセグメントサイズとを、論理ディスク400に関連付けて保存、または、公開する。公開とは、ネットワークを介して接続する他装置から参照可能とすることで、他装置から要求された場合に、応答として保存したこれらのデータを送信したり、他装置からアクセス可能な記憶装置にこれらのデータを保存しておく。なお、公開しない場合は、必要でなければセグメントサイズまたはハッシュ関数は保存しなくてもよい。
監査時、検証モジュール502は、論理ディスク400に対するハッシュ値算出をハッシュ計算制御モジュール501に指示する。指示を行うタイミングは、予め設定された所定の周期ごとに発生させるとしてもよいし、ネットワーク300を介して接続する外部装置からの指示があったときとしてもよい。そのほか、指示を発生させるイベントは任意に設定することができる。ハッシュ計算制御モジュール501は、上記と同様の手順により、現時の論理ディスク400のハッシュ値を算出し、検証モジュール502に出力する。検証モジュール502は、取得した論理ディスク400のハッシュ値と、保存しておいた論理ディスク400のハッシュ値とを照合し、一致していれば無改ざんを証明する。一致していない場合は、改ざんが行われたと判断する。
このように、本実施の形態では、各ストレージモジュールが並列にハッシュ計算を行うため、計算処理に要する時間を短縮することができる。特に、実施の形態のように、論理ディスクのデータをセグメント単位で複数のストレージモジュールに分散するストレージシステムでは、保管データの増大に伴ってストレージモジュールの数を増やし、大容量化に対応している。したがって、本実施の形態のように、ストレージモジュールごとにハッシュ計算を行うようにすれば、システムが大容量化してもハッシュ値算出処理の時間が増えることはない。この結果、運用上問題となっていた大容量化に伴うハッシュ計算処理の増大を抑制し、システムの大容量化の実現が可能となる。
なお、上記の説明では、検証モジュール502によって、データ改ざんの有無を判定するとしたが、システム管理者などによって、直接監査を行うようにすることもできる。この場合、たとえば、システム管理者の端末装置などから、直接ストレージ管理装置110のハッシュ計算制御モジュール501を起動させ、論理ディスク400のハッシュ値を得る。得られた論理ディスク400のハッシュ値は、ハッシュ関数とセグメントサイズとともにシステム管理者が保管管理する。また、これらを公開してもよい。そして、監査時に、同じ手順でハッシュ計算制御モジュール501を起動させて論理ディスク400のハッシュ値を得て、保存しておいた論理ディスク400のハッシュ値と照合し、判断を行う。
このような手順が実行される場合における本実施の形態のストレージシステムの動作について説明する。
図5は、本実施の形態のストレージシステムの動作を示したフロー図である。図4と同じものには同じ番号を付す。また、図では、図の上方から下方に向かって時間が経過するとしている。
コンソール(管理者またはユーザが指示を入力する操作入力装置)によって管理者またはユーザから指示が入力されると、コンソールからハッシュ計算を行う論理ディスクを特定する論理ディスクIDとともに、計算指示601がストレージ管理装置110のハッシュ計算制御モジュール501に入力する。
ハッシュ計算制御モジュール501は、計算指示601を受け取ると、該当する論理ディスクIDのメタ情報を参照し、セグメント検索611を行う。そして、検索されたセグメントを保管するストレージモジュールの計算処理モジュールに対し、セグメントIDとともに計算指示を行う。図の例では、ストレージモジュール1(120)の計算処理モジュール503に対する計算指示602a、ストレージモジュール2(130)の計算処理モジュール504に対する計算指示602b、及びストレージモジュール3(140)の計算処理モジュール505に対する計算指示602cが順次出力される。
ストレージモジュール1(120)の計算処理モジュール503は、計算指示602aにより自装置が保管するセグメントのデータ列に対してハッシュ計算612を実行し、算出したハッシュ値603aをハッシュ計算制御モジュール501に送る。同様に、ストレージモジュール2(130)の計算処理モジュール504は、計算指示602bによりハッシュ計算613を行って、算出したハッシュ値603bをハッシュ計算制御モジュール501に送る。ストレージモジュール3(140)の計算処理モジュール505は、計算指示602cによりハッシュ計算614を行って、算出したハッシュ値603cをハッシュ計算制御モジュール501に送る。このように、ハッシュ計算は、各ストレージモジュールが並列に実行する。
ハッシュ計算制御モジュール501は、ハッシュ値603a、603b、603cを受け取ると、同じハッシュ関数を用いて全体ハッシュ計算615を実行し、計算結果(全体のハッシュ値、セグメントサイズ、ハッシュ関数)604をコンソールへ出力する。
コンソールは、取得した全体のハッシュ値を保存し、以降の処理の任意の時点で使用する。既に保存してあった場合は、取得したハッシュ値と照合し、改ざんがあったかどうかを調べる。あるいは、公開されているハッシュ値と照合してもよい。
なお、図5は、コンソールから指示を行う場合のフロー図であったが、自装置内の検証モジュール502で監査を行う場合は、コンソールからの指示が検証モジュール502からの指示となるだけで、ハッシュ計算制御モジュール501、計算処理モジュール503、計算処理モジュール504、及び計算処理モジュール505の動作は同じである。
このように、ハッシュ計算制御モジュール501は、検証モジュール502、あるいは、外部からの指示で、管理下のストレージモジュールに対し、セグメント単位のハッシュ値算出処理を指示する。指示に応じて各ストレージモジュールの計算処理モジュールが各々ハッシュ値計算を行うことによって、ハッシュ計算の並列処理が可能となり、高速処理が可能となる。
次に、ハッシュ計算制御モジュールと各ストレージモジュール(以下、単にモジュールとする)の計算処理モジュールが実行する処理手順について説明する。
まず、ハッシュ計算制御モジュールの処理手順について説明する。図6は、本実施の形態のハッシュ計算制御の処理手順を示したフローチャートである。
[ステップS01] コンソールなどから、対象の論理ディスクの指定を含む計算指示が入力されると、処理を開始し、次のステップへ処理を進める。
[ステップS02] 入力した論理ディスクの指定に基づき、該当する論理ディスクのメタ情報を読み出し、メタ情報を参照して、対象の論理ディスクのセグメントを検索し、このセグメントのデータがどのモジュールに格納されているかを調べる。そして、対象となる全モジュールの情報の一覧を取得する。
[ステップS03] ステップS02で取得した全モジュール情報の一覧に基づき、全モジュールへの指示が完了したかどうかを判定する。完了していない場合、処理をステップS04へ進め、完了している場合には、処理をステップS05へ進める。
[ステップS04] 全モジュールに対する指示処理が終了していない場合、指示がされていないモジュールに対し、ハッシュ計算の指示を行う。そして、処理をステップS03に戻し、全モジュールに対する指示処理が終了するまで待つ。
[ステップS05] 全モジュールへの指示が完了している場合、指示を行ったモジュールが送信してくるハッシュ計算の結果を待つ。そして、計算結果を受け取ると、全モジュールから計算結果を受け取ったかどうかを調べる。受け取りが終了していない場合、処理をステップS06へ進め、受け取りが終了した場合、処理をステップS07へ処理を進める。
[ステップS06] 計算結果の受け取りが終了していない場合、計算結果を受信するまで待つ。受信終了で、処理をステップS05へ戻す。
[ステップS07] 全モジュールから計算結果を受け取った場合は、計算結果であるセグメント別ハッシュ値を、論理ディスクのデータ順に応じたセグメント順に並べる。それから、セグメント順に並べたセグメント別ハッシュ値に再度ハッシュ関数を適用し、全体のハッシュ値を算出する。
[ステップS08] ハッシュ値を要求したコンソールなどに対し、ステップS07で算出した算出結果(全体のハッシュ値)を出力する。また、セグメントサイズやハッシュ関数なども必要であれば、出力する。
次に、ストレージモジュールの計算処理手順について説明する。図7は、本実施の形態のストレージモジュールにおけるハッシュ計算処理の手順を示したフローチャートである。
[ステップS11] ハッシュ計算制御モジュールから、対象のセグメントIDを含む計算指示が入力されると、処理を開始し、次のステップへ処理を進める。
[ステップS12] ステップS11で入力した計算指示からセグメントIDを取得し、セグメントIDに基づき、以下の処理を行う。
[ステップS13] ステップS12で取得したこのモジュールがハッシュ値を算出するセグメントIDに基づき、指定された全セグメントの処理が終了したかどうかを判定する。終了していない場合、処理をステップS15へ進め、終了している場合は、処理をステップS15へ進める。
[ステップS14] 全セグメントのハッシュ計算が終了していない場合、取得したセグメントIDに基づき、ハッシュ値計算が行われていないセグメントについてハッシュ計算を行ってハッシュ値を算出し、処理をステップS13へ戻す。
[ステップS15] 全セグメントのハッシュ計算が終了した場合、計算を行った全セグメントの計算結果をハッシュ計算制御モジュールへ出力する。
以上の処理手順が実行されることにより、対象の論理ディスクのハッシュ値が算出される。計算はモジュールごとに行うため、並列計算が可能となり、計算処理を短縮することができる。算出されたハッシュ値は、たとえば、対象の論理ディスクが改ざんされていないことの確認または証明に用いられる。
ところで、上述した本発明の実施の形態のストレージ管理装置110によるハッシュ計算によって、ストレージシステム100内に格納されるデータが無改ざんであることが証明できる。さらに、本発明の実施の形態のストレージシステムで算出されたハッシュ値を、適用したハッシュ関数とセグメントサイズとともに公開しておき、任意の装置で利用できるようにすることで、ストレージシステム100外の論理ディスクのデータがストレージシステム100に格納されるデータと一致しているかどうかを判定することができる。
たとえば、論理ディスクのデータを読み込んだホストコンピュータで、このデータがストレージシステム100内に格納されるデータと一致していることを証明することができる。まず、論理ディスクを公開されているセグメントサイズで分割し、分割されたセグメントごとに公開されたハッシュ関数を適用してセグメント別ハッシュ値を算出する。それから、セグメント別ハッシュ値をセグメント順に並べ、再度ハッシュ関数を適用してハッシュ値を求める。これが公開されているハッシュ値と一致すれば、対象のデータが、ストレージシステム100のデータと同じであることが証明できる。
図8は、本実施の形態のハッシュ計算処理を他装置で実行する場合の手順を示したフローチャートである。なお、他装置とは、並列動作する計算部を持たないとし、ハッシュ値、セグメントサイズ、及びハッシュ関数は公開されているとする。
[ステップS21] 公開されているセグメントサイズ、ハッシュ関数、及びハッシュ値を取得する。セグメントサイズに基づき、対象のデータをセグメントに分割する。
[ステップS22] 全セグメントのハッシュ計算がすべて終了したかどうかを判定する。終了していない場合、処理をステップS23へ進め、終了している場合は、処理をステップS24に進める。
[ステップS23] ハッシュ計算が終了していないセグメントがある場合、終了していないセグメントのハッシュ値をステップS21で取得したハッシュ関数を用いて算出した後、処理をステップS22に戻す。
[ステップS24] 全セグメントのハッシュ計算が終了した場合、ステップS23によって算出されたセグメント別ハッシュ値をセグメント順に並べ、ハッシュ関数を適用して、対象データの全体ハッシュ値を算出する。
[ステップS25] ステップS24によって算出されたハッシュ値と、ステップS21で取得した公開されているハッシュ値とを照合し、一致しているかどうかを判定する。一致する場合は、処理をステップS26へ進め、一致していない場合、処理をステップS27へ進める。
[ステップS26] 算出したハッシュ値と公開されているハッシュ値が一致する場合、「対象データは無改ざん」と判定し、処理を終了する。
[ステップS27] 算出したハッシュ値と公開されているハッシュ値が一致しない場合、「対象データは改ざんされている」と判定し、処理を終了する。
以上の処理手順を実行することにより、セグメントごとのハッシュ値を並列計算する機構を有しない装置においても、同じようにハッシュ値を算出し、利用することができる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ハッシュ値生成装置及びストレージ管理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
(付記1) 所定の一方向ハッシュ関数を用いて、対象ディスクに格納されるデータのハッシュ値を生成するハッシュ値生成プログラムにおいて、
コンピュータを、
前記対象ディスクを固定長のセグメントに分割するセグメント分割手段、
前記セグメント分割手段によって分割された前記セグメントごとに、前記セグメントの全データ列に前記一方向ハッシュ関数を適用して、セグメント別ハッシュ値を算出する第1のハッシュ値算出手段、
前記第1のハッシュ値算出手段によって算出された前記セグメント別ハッシュ値を前記対象ディスクに格納されるデータのデータ順に応じたセグメント順に並べ、前記セグメント別ハッシュ値に前記一方向ハッシュ関数を適用して全体のハッシュ値を算出する第2のハッシュ値算出手段、
として機能させることを特徴とするハッシュ値生成プログラム。
(付記2) 前記第1のハッシュ値算出手段として、
分割された前記セグメントを並列に動作可能な複数のハッシュ値計算手段に割り当て、割り当てた前記セグメントの全体データ列に対する前記セグメント別ハッシュ値を前記ハッシュ値計算手段に算出させる、
処理を実行させることを特徴とする付記1記載のハッシュ値生成プログラム。
(付記3) 前記コンピュータを、さらに、
所定のタイミングで前記第2のハッシュ値算出手段によって算出された前記全体のハッシュ値と、必要に応じて前記セグメントのサイズと前記一方向ハッシュ関数とを保存しておき、以後の処理において検証の必要がある場合は、保存された前記セグメントのサイズと前記一方向ハッシュ関数を用いて前記第1のハッシュ値算出手段及び前記第2のハッシュ値算出手段とによって前記全体のハッシュ値を再度算出し、保存された前記全体のハッシュ値と照合して一致しているかどうかを検証する検証手段、
として機能させることを特徴とする付記1記載のハッシュ値生成プログラム。
(付記4) 仮想の論理ディスクのデータがセグメント単位で複数のストレージモジュールに分散格納されるストレージシステムを管理するストレージ管理プログラムにおいて、
コンピュータを、
前記セグメント単位を固定長とし、前記ストレージモジュールごとに具備される前記ストレージモジュールが分散格納する前記セグメントの全データ列に一方向ハッシュ関数を適用して、セグメント別ハッシュ値を算出させる第1のハッシュ値算出手段を制御し、前記第1のハッシュ値算出手段に前記セグメント別ハッシュ値を算出させる制御手段、
前記ストレージモジュールの前記第1のハッシュ値算出手段によって算出された前記セグメント別ハッシュ値を取得し、前記セグメント別ハッシュ値を前記論理ディスクのデータのデータ順に応じたセグメント順に並べ、前記一方向ハッシュ関数を適用して前記論理ディスク全体のハッシュ値を算出する第2のハッシュ値算出手段、
として機能させることを特徴とするストレージ管理プログラム。
(付記5) 前記制御手段として、
前記論理ディスクのメタ情報として記述されるデータ定義に基づき、前記ストレージモジュールに割り当てられた前記セグメントを検索し、前記第1のハッシュ値算出手段に検索された前記セグメントのハッシュ計算を指示する、
処理を実行させることを特徴とする付記4記載のストレージ管理プログラム。
(付記6) 前記制御手段として、
前記ストレージモジュールの前記第1のハッシュ値算出手段に対して、順次計算指示を行って、複数の前記ストレージモジュールの前記第1のハッシュ値算出手段を並列動作させる、
処理を実行させることを特徴とする付記4記載のストレージ管理プログラム。
(付記7) 前記制御手段として、
前記第2のハッシュ値算出手段により算出されたハッシュ値と、前記セグメントのサイズと、適用された前記一方向ハッシュ関数とを、ネットワークを介して接続する外部装置から参照可能とする、
処理を実行させることを特徴とする付記4記載のストレージ管理プログラム。
(付記8) 前記制御手段として、ネットワークを介して接続する外部装置から要求があった場合は、要求のあった前記論理ディスクに対応する前記ストレージモジュールの前記第1のハッシュ値算出手段と、前記第2のハッシュ値算出手段を制御して要求された前記論理ディスク全体のハッシュ値を算出させ、要求した前記外部装置に算出された前記論理ディスク全体のハッシュ値を送信する、
処理を実行させることを特徴とする付記4記載のストレージ管理プログラム。
(付記9) 前記コンピュータを、さらに、
所定のタイミングで前記第2のハッシュ値算出手段によって算出された前記全体のハッシュ値と、必要に応じて前記セグメントのサイズと前記一方向ハッシュ関数とを保存しておき、以後の処理において検証の必要がある場合には、前記制御手段に指示して、再度ハッシュ計算を実行させ、再度算出された前記全体のハッシュ値と、保存しておいた前記全体のハッシュ値とを照合し、一致しているかどうかを検証する検証手段、
として機能させることを特徴とする付記4記載のストレージ管理プログラム。
(付記10) 前記検証手段として、
前記全体のハッシュ値の照合処理を、予め決められた所定の周期、または、ネットワークを介して接続する外部装置からの要求に応じて実行させる、
処理を実行させることを特徴とする付記9記載のストレージ管理プログラム。
(付記11) 仮想の論理ディスクのデータをストレージに格納して管理するストレージシステムにおいて、
前記論理ディスクを固定長のセグメント単位に分割して格納する記憶手段と、計算指示を受け取ると、前記記憶手段に格納される前記セグメントのデータ列に所定の一方向ハッシュ関数を適用し、前記セグメントのセグメント別ハッシュ値を算出する第1のハッシュ値算出手段と、を有する複数のストレージモジュールと、
前記論理ディスクのハッシュ値が要求されると、前記ストレージモジュールごとに設けられた、前記第1のハッシュ値算出手段による前記セグメント別ハッシュ値の算出処理を制御する制御手段と、前記第1のハッシュ値算出手段によって算出された前記セグメント別ハッシュ値を前記論理ディスクのデータのデータ順に応じたセグメント順に並べ、前記セグメント別ハッシュ値に前記一方向ハッシュ関数を適用して前記論理ディスク全体のハッシュ値を算出する第2のハッシュ値算出手段と、を有するストレージ管理モジュールと、
を具備することを特徴とするストレージシステム。
(付記12) 前記ストレージ管理モジュールは、検索された前記ストレージモジュールが複数ある場合は、前記複数のストレージモジュールに対して順次計算指示を出力し、前記ストレージモジュールを並列動作させる、
ことを特徴とする付記11記載のストレージシステム。
実施の形態に適用される発明の概念図である。 本発明の実施の形態のストレージシステムの構成を示した構成図である。 本実施の形態のストレージ管理装置のハードウェア構成例を示すブロック図である。 本実施の形態のストレージシステムのソフトウェア構成例を示す図である。 本実施の形態のストレージシステムの動作を示したフロー図である。 本実施の形態のハッシュ計算制御の処理手順を示したフローチャートである。 本実施の形態のストレージモジュールにおけるハッシュ計算処理の手順を示したフローチャートである。 本実施の形態のハッシュ計算処理を他装置で実行する場合の手順を示したフローチャートである。 従来のストレージシステムの構成の一例を示した概略図である。
符号の説明
1 ハッシュ値生成装置
1a セグメント分割手段
1b 第1のハッシュ値算出手段
1c 第2のハッシュ値算出手段
1d 検証手段
2 対象ディスク
3a 全体のハッシュ値
3b 全体のハッシュ値(保存データ)
11b 計算部1
12b 計算部2
13b 計算部m

Claims (9)

  1. 所定の一方向ハッシュ関数を用いて、対象ディスクに格納されるデータのハッシュ値を生成するハッシュ値生成プログラムにおいて、
    コンピュータを、
    前記対象ディスクを固定長のセグメントに分割するセグメント分割手段、
    前記セグメント分割手段によって分割された前記セグメントごとに、前記セグメントの全データ列に前記一方向ハッシュ関数を適用して、セグメント別ハッシュ値を算出する第1のハッシュ値算出手段、
    前記第1のハッシュ値算出手段によって算出された前記セグメント別ハッシュ値を前記対象ディスクに格納されるデータのデータ順に応じたセグメント順に並べ、前記セグメント別ハッシュ値に前記一方向ハッシュ関数を適用して全体のハッシュ値を算出する第2のハッシュ値算出手段、
    所定のタイミングで前記第2のハッシュ値算出手段によって算出された前記全体のハッシュ値と、必要に応じて前記セグメントのサイズと前記一方向ハッシュ関数とを保存しておき、以後の処理において検証の必要がある場合は、保存された前記セグメントのサイズと前記一方向ハッシュ関数を用いて前記第1のハッシュ値算出手段及び前記第2のハッシュ値算出手段とによって前記全体のハッシュ値を再度算出し、保存された前記全体のハッシュ値と照合して一致しているかどうかを検証する検証手段、
    として機能させることを特徴とするハッシュ値生成プログラム。
  2. 前記第1のハッシュ値算出手段として、
    分割された前記セグメントを並列に動作可能な複数のハッシュ値計算手段に割り当て、割り当てた前記セグメントの全体データ列に対する前記セグメント別ハッシュ値を前記ハッシュ値計算手段に算出させる、
    処理を実行させることを特徴とする請求項1記載のハッシュ値生成プログラム。
  3. 仮想の論理ディスクのデータがセグメント単位で複数のストレージモジュールに分散格納されるストレージシステムを管理するストレージ管理プログラムにおいて、
    コンピュータを、
    前記セグメント単位を固定長とし、前記ストレージモジュールごとに具備される前記ストレージモジュールが分散格納する前記セグメントの全データ列に一方向ハッシュ関数を適用して、セグメント別ハッシュ値を算出させる第1のハッシュ値算出手段を制御し、前記第1のハッシュ値算出手段に前記セグメント別ハッシュ値を算出させる制御手段、
    前記ストレージモジュールの前記第1のハッシュ値算出手段によって算出された前記セグメント別ハッシュ値を取得し、前記セグメント別ハッシュ値を前記論理ディスクのデータのデータ順に応じたセグメント順に並べ、前記一方向ハッシュ関数を適用して前記論理ディスク全体のハッシュ値を算出する第2のハッシュ値算出手段、
    として機能させ、
    前記制御手段は、前記論理ディスクのメタ情報として記述されるデータ定義に基づき、前記ストレージモジュールに割り当てられた前記セグメントを検索し、前記第1のハッシュ値算出手段に検索された前記セグメントのハッシュ計算を指示する、
    ことを特徴とするストレージ管理プログラム。
  4. 前記制御手段として、
    前記ストレージモジュールの前記第1のハッシュ値算出手段に対して、順次計算指示を行って、複数の前記ストレージモジュールの前記第1のハッシュ値算出手段を並列動作させる、
    処理を実行させることを特徴とする請求項3記載のストレージ管理プログラム。
  5. 前記制御手段として、
    前記第2のハッシュ値算出手段により算出されたハッシュ値と、前記セグメントのサイズと、適用された前記一方向ハッシュ関数とを、ネットワークを介して接続する外部装置から参照可能とする、
    処理を実行させることを特徴とする請求項3記載のストレージ管理プログラム。
  6. 前記制御手段として、ネットワークを介して接続する外部装置から要求があった場合は、要求のあった前記論理ディスクに対応する前記ストレージモジュールの前記第1のハッシュ値算出手段と、前記第2のハッシュ値算出手段を制御して要求された前記論理ディスク全体のハッシュ値を算出させ、要求した前記外部装置に算出された前記論理ディスク全体のハッシュ値を送信する、
    処理を実行させることを特徴とする請求項3記載のストレージ管理プログラム。
  7. 仮想の論理ディスクのデータがセグメント単位で複数のストレージモジュールに分散格納されるストレージシステムを管理するストレージ管理プログラムにおいて、
    コンピュータを、
    前記セグメント単位を固定長とし、前記ストレージモジュールごとに具備される前記ストレージモジュールが分散格納する前記セグメントの全データ列に一方向ハッシュ関数を適用して、セグメント別ハッシュ値を算出させる第1のハッシュ値算出手段を制御し、前記第1のハッシュ値算出手段に前記セグメント別ハッシュ値を算出させる制御手段、
    前記ストレージモジュールの前記第1のハッシュ値算出手段によって算出された前記セグメント別ハッシュ値を取得し、前記セグメント別ハッシュ値を前記論理ディスクのデータのデータ順に応じたセグメント順に並べ、前記一方向ハッシュ関数を適用して前記論理ディスク全体のハッシュ値を算出する第2のハッシュ値算出手段、
    所定のタイミングで前記第2のハッシュ値算出手段によって算出された前記全体のハッシュ値と、必要に応じて前記セグメントのサイズと前記一方向ハッシュ関数とを保存しておき、以後の処理において検証の必要がある場合には、前記制御手段に指示して、再度ハッシュ計算を実行させ、再度算出された前記全体のハッシュ値と、保存しておいた前記全体のハッシュ値とを照合し、一致しているかどうかを検証する検証手段、
    として機能させることを特徴とするストレージ管理プログラム。
  8. 記憶装置に記憶された記憶データを所定長のデータに分割して得られる複数の分割データのそれぞれについて所定の一方向ハッシュ関数を適用して、前記複数の分割データのそれぞれについてのハッシュ値を算出し、算出した前記複数の分割データのそれぞれについてのハッシュ値を所定の順に配置して得られるデータについて前記所定の一方向ハッシュ関数を適用して算出した第1のハッシュ値を記憶手段に記憶させ、
    前記記憶装置に記憶された前記記憶データに変更がなされたか否かを判定する際に、判定対象の記憶データを前記所定長のデータに分割して得られた複数の分割データのそれぞれについて前記所定の一方向ハッシュ関数を適用して、前記複数の分割データのそれぞれについてのハッシュ値を算出し、算出した前記複数の分割データのそれぞれについてのハッシュ値を前記所定の順に配置して得られるデータについて前記所定の一方向ハッシュ関数を適用して算出した第2のハッシュ値と、前記記憶手段に記憶させた前記第1のハッシュ値とが一致するか否か判定することで、前記記憶データに変更がなされたか否かの判定を行う、
    処理をコンピュータに実行させることを特徴とする判定プログラム。
  9. 記憶装置に記憶された記憶データを所定長のデータに分割して得られる複数の分割データのそれぞれについて所定の一方向ハッシュ関数を適用して、前記複数の分割データのそれぞれについてのハッシュ値を算出し、算出した前記複数の分割データのそれぞれについてのハッシュ値を所定の順に配置して得られるデータについて前記所定の一方向ハッシュ関数を適用して算出した第1のハッシュ値を記憶する記憶手段と、
    前記記憶装置に記憶された前記記憶データに変更がなされたか否かを判定する際に、判定対象の記憶データを前記所定長のデータに分割して得られた複数の分割データのそれぞれについて前記所定の一方向ハッシュ関数を適用して、前記複数の分割データのそれぞれについてのハッシュ値を算出し、算出した前記複数の分割データのそれぞれについてのハッシュ値を前記所定の順に配置して得られるデータについて前記所定の一方向ハッシュ関数を適用して算出した第2のハッシュ値と、前記記憶手段に記憶された前記第1のハッシュ値とが一致するか否か判定することで、前記記憶データに変更がなされたか否かの判定を行う検証手段と、
    を備えたことを特徴とするデータ変更検証装置。
JP2006084490A 2006-03-27 2006-03-27 ハッシュ値生成プログラム、ストレージ管理プログラム、判定プログラム及びデータ変更検証装置 Expired - Fee Related JP4767057B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006084490A JP4767057B2 (ja) 2006-03-27 2006-03-27 ハッシュ値生成プログラム、ストレージ管理プログラム、判定プログラム及びデータ変更検証装置
US11/497,297 US7734598B2 (en) 2006-03-27 2006-08-02 Computer-readable recording medium having recorded hash-value generation program, computer-readable recording medium having recorded storage management program, and storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006084490A JP4767057B2 (ja) 2006-03-27 2006-03-27 ハッシュ値生成プログラム、ストレージ管理プログラム、判定プログラム及びデータ変更検証装置

Publications (2)

Publication Number Publication Date
JP2007257566A JP2007257566A (ja) 2007-10-04
JP4767057B2 true JP4767057B2 (ja) 2011-09-07

Family

ID=38576935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006084490A Expired - Fee Related JP4767057B2 (ja) 2006-03-27 2006-03-27 ハッシュ値生成プログラム、ストレージ管理プログラム、判定プログラム及びデータ変更検証装置

Country Status (2)

Country Link
US (1) US7734598B2 (ja)
JP (1) JP4767057B2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5204099B2 (ja) 2006-05-05 2013-06-05 ハイバー インコーポレイテッド グループ・ベースの完全および増分コンピュータ・ファイル・バックアップ・システム、処理および装置
WO2008068655A2 (en) * 2006-12-08 2008-06-12 International Business Machines Corporation Privacy enhanced comparison of data sets
JP2009245089A (ja) * 2008-03-31 2009-10-22 Fujitsu Ltd 分散オブジェクト・プログラム及びレプリケーション処理方法
JP5233521B2 (ja) * 2008-08-29 2013-07-10 大日本印刷株式会社 Icチップ、データ読出し方法、データ読出しプログラム及び記録媒体等
US8443448B2 (en) 2009-08-20 2013-05-14 Federal Reserve Bank Of New York System and method for detection of non-compliant software installation
JP5712797B2 (ja) * 2011-06-03 2015-05-07 大日本印刷株式会社 コンテンツ再生システム、再生装置及び半導体メディア
US9294564B2 (en) 2011-06-30 2016-03-22 Amazon Technologies, Inc. Shadowing storage gateway
US10754813B1 (en) 2011-06-30 2020-08-25 Amazon Technologies, Inc. Methods and apparatus for block storage I/O operations in a storage gateway
US8793343B1 (en) 2011-08-18 2014-07-29 Amazon Technologies, Inc. Redundant storage gateways
US10120579B1 (en) 2012-08-08 2018-11-06 Amazon Technologies, Inc. Data storage management for sequentially written media
US9904788B2 (en) 2012-08-08 2018-02-27 Amazon Technologies, Inc. Redundant key management
US9225675B2 (en) 2012-08-08 2015-12-29 Amazon Technologies, Inc. Data storage application programming interface
US8805793B2 (en) 2012-08-08 2014-08-12 Amazon Technologies, Inc. Data storage integrity validation
CN104603776B (zh) * 2012-08-08 2020-05-12 亚马逊技术股份有限公司 归档数据存储系统
US9268652B1 (en) 2012-10-31 2016-02-23 Amazon Technologies, Inc. Cached volumes at storage gateways
US9559889B1 (en) 2012-10-31 2017-01-31 Amazon Technologies, Inc. Cache population optimization for storage gateways
US9697217B1 (en) 2012-10-31 2017-07-04 Amazon Technologies, Inc. Segmented hashing for secure data modification
US9268651B1 (en) 2012-10-31 2016-02-23 Amazon Technologies, Inc. Efficient recovery of storage gateway cached volumes
US9274956B1 (en) 2012-10-31 2016-03-01 Amazon Technologies, Inc. Intelligent cache eviction at storage gateways
US10558581B1 (en) 2013-02-19 2020-02-11 Amazon Technologies, Inc. Systems and techniques for data recovery in a keymapless data storage system
US10339124B2 (en) * 2015-05-27 2019-07-02 Quest Software Inc. Data fingerprint strengthening
WO2017068481A1 (en) * 2015-10-20 2017-04-27 Jayaram Sanjay System for managing data
CN107040582B (zh) * 2017-02-17 2020-08-14 创新先进技术有限公司 一种数据处理方法及装置
US11042330B2 (en) 2017-03-01 2021-06-22 Samsung Electronics Co., Ltd. Methods and systems for distributed data storage
US11146532B2 (en) * 2017-11-27 2021-10-12 Kevin Tobin Information security using blockchain technology
US10990532B2 (en) * 2018-03-29 2021-04-27 Intel Corporation Object storage system with multi-level hashing function for storage address determination
CN111753313A (zh) * 2019-03-29 2020-10-09 神讯电脑(昆山)有限公司 验证码产生方法、资料验证方法及电子装置
EP3737109B1 (en) * 2019-05-08 2024-03-20 Getac Holdings Corporation Verification code generation method, data verification method and electronic device
US11330345B2 (en) 2019-05-09 2022-05-10 Getac Technology Corporation Verification code generation method, data verification method and electronic device
WO2021046750A1 (zh) * 2019-09-11 2021-03-18 华为技术有限公司 数据重分布方法、装置及系统
JP7327100B2 (ja) * 2019-11-15 2023-08-16 富士フイルムビジネスイノベーション株式会社 データ管理システム、データ管理装置及びデータ管理プログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996025801A1 (en) * 1995-02-17 1996-08-22 Trustus Pty. Ltd. Method for partitioning a block of data into subblocks and for storing and communicating such subblocks
US5754659A (en) * 1995-12-22 1998-05-19 General Instrument Corporation Of Delaware Generation of cryptographic signatures using hash keys
US6061449A (en) * 1997-10-10 2000-05-09 General Instrument Corporation Secure processor with external memory using block chaining and block re-ordering
US6560337B1 (en) * 1998-10-28 2003-05-06 International Business Machines Corporation Systems, methods and computer program products for reducing effective key length of ciphers using one-way cryptographic functions and an initial key
TW529267B (en) * 1999-03-15 2003-04-21 Sony Corp Data processing system and method for mutual identification between apparatuses
US6470329B1 (en) * 2000-07-11 2002-10-22 Sun Microsystems, Inc. One-way hash functions for distributed data synchronization
US7299355B2 (en) * 2001-01-12 2007-11-20 Broadcom Corporation Fast SHA1 implementation
AU2002248604A1 (en) * 2001-03-09 2002-09-24 Pascal Brandys System and method of user and data verification
US7043637B2 (en) * 2001-03-21 2006-05-09 Microsoft Corporation On-disk file format for a serverless distributed file system
EP1343286A1 (en) * 2002-03-04 2003-09-10 BRITISH TELECOMMUNICATIONS public limited company Lightweight authentication of information
US7103779B2 (en) * 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
US20050210260A1 (en) * 2004-03-17 2005-09-22 Ramarathnam Venkatesan Unimodular matrix-based message authentication codes (MAC)
US7814129B2 (en) * 2005-03-11 2010-10-12 Ross Neil Williams Method and apparatus for storing data with reduced redundancy using data clusters
US20070067332A1 (en) * 2005-03-14 2007-03-22 Gridiron Software, Inc. Distributed, secure digital file storage and retrieval
US7784094B2 (en) * 2005-06-30 2010-08-24 Intel Corporation Stateful packet content matching mechanisms
US20070083531A1 (en) * 2005-10-12 2007-04-12 Daniar Hussain Data storage method and apparatus utilizing evolution and hashing

Also Published As

Publication number Publication date
US7734598B2 (en) 2010-06-08
US20070239961A1 (en) 2007-10-11
JP2007257566A (ja) 2007-10-04

Similar Documents

Publication Publication Date Title
JP4767057B2 (ja) ハッシュ値生成プログラム、ストレージ管理プログラム、判定プログラム及びデータ変更検証装置
US10860217B2 (en) System and method of management of multi-tier storage systems
US10977124B2 (en) Distributed storage system, data storage method, and software program
US8103847B2 (en) Storage virtual containers
US8683122B2 (en) Storage system
US10656845B2 (en) System and method for managing container image
JP2018028715A (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
US20060136779A1 (en) Object-based storage device with low process load and control method thereof
JP4402103B2 (ja) データ記憶装置、そのデータ再配置方法、プログラム
JP2011039841A (ja) データ移行方法、及びプログラム
JP5104855B2 (ja) 負荷分散プログラム、負荷分散方法、及びストレージ管理装置
US11042330B2 (en) Methods and systems for distributed data storage
US10732889B2 (en) Information handling system with multi-key secure erase of distributed namespace
US11625192B2 (en) Peer storage compute sharing using memory buffer
EP3989052B1 (en) Method of operating storage device and method of operating storage system using the same
CN108475201B (zh) 一种虚拟机启动过程中的数据获取方法和云计算系统
US8683121B2 (en) Storage system
US11223692B2 (en) Service execution methods and apparatuses
JPWO2011108048A1 (ja) ストレージ装置
JP5459388B2 (ja) ストレージ装置
JP6881847B2 (ja) ストレージ装置、ファイル特定方法及びプログラム
US11314604B2 (en) Workload coordination on disaster recovery site
US11204845B2 (en) Workload coordination on disaster recovery site
US11544387B2 (en) Hash protection within an object storage library
CN117519579A (zh) 存储装置及其操作方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080806

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110526

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110614

R150 Certificate of patent or registration of utility model

Ref document number: 4767057

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140624

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees