(57)【特許請求の範囲】
【請求項１】
ネットワークを介してホストコンピュ−タと接続されるストレージシステムであって、
少なくとも一つの物理記憶装置を有するストレージと、
前記ストレージに接続され、
前記ストレージに記録される第一のデータを処理し、
前記第一のデータの処理位置を基に進捗位置情報を更新し、
第二のデータの書き込み要求を受領し、
前記第二のデータの書き込み対象位置と前記進捗位置情報によって示される処理位置とを比較し、
前記書き込み対象位置がまだ処理されていない位置である場合、前記第二のデータを平文データとして前記書き込み対象位置に格納するコントローラとを備え、
前記第一のデータまたは前記第二のデータが処理されている間に前記ホストコンピュータからI/O要求を受領することを特徴とするストレージシステム。
【請求項２】
請求項１記載のストレージシステムであって、
前記処理は、第一の暗号化処理を含むことを特徴とするストレージシステム。
【請求項３】
請求項２記載のストレージシステムであって、
前記書き込み対象位置が処理された位置である場合、前記コントローラは、前記第二のデータに、前記第一の暗号化処理をせずに、暗号化処理をすることを特徴とするストレージシステム。
【請求項４】
請求項２記載のストレージシステムであって、
前記書き込み対象位置が処理された位置である場合、前記コントローラは、前記第二のデータに、第二の暗号化処理をすることを特徴とするストレージシステム。
【請求項５】
請求項２記載のストレージシステムであって、
平文データとして前記書き込み対象位置に格納した前記第二のデータが第二の暗号化処理によりまだ暗号化されていない場合、前記コントローラは、前記第二のデータを暗号化処理することを特徴とするストレージシステム。
【請求項６】
請求項２記載のストレージシステムであって、
前記コントローラは、前記第一の暗号化処理をした後、前記進捗位置情報を更新することを特徴とするストレージシステム。
【請求項７】
少なくとも一つの物理記憶装置とコントローラを有するストレージシステムにおける前記物理記憶装置に対するデータ格納方法であって、前記コントローラは、
前記物理記憶装置に格納される第一のデータを処理し、
前記第一のデータの処理位置を基に進捗位置情報を更新し、
第二のデータの書き込み要求を受領し、
前記第二のデータの書き込み対象位置と前記進捗位置情報によって示される処理位置とを比較し、
前記書き込み対象位置がまだ処理されていない位置である場合、前記第二のデータを平文データとして前記書き込み対象位置に格納し、
前記第一のデータまたは前記第二のデータが処理されている問にI/O要求を受領することを特徴とするデータ格納方法。
【請求項８】
請求項７記載のデータ格納方法であって、
前記処理は、第一の暗号化処理を含むことを特徴とするデータ格納方法。
【請求項９】
請求項８記載のデータ格納方法であって、
前記コントローラは、前記書き込み対象位置が処理された位置である場合、前記第二のデータに、前記第一の暗号化処理をせずに、暗号化処理をすることを特徴とするデータ格納方法。
【請求項１０】
請求項７記載のデータ格納方法であって、
前記コントローラは、前記書き込み対象位置が処理された位置である場合、前記第二のデータに、第二の暗号化処理をすることを特徴とするデータ格納方法。
【請求項１１】
請求項８記載のデータ格納方法であって、
前記コントローラは、平文データとして前記書き込み対象位置に格納した前記第二のデータが第二の暗号化処理によりまだ暗号化処理されていない場合、前記第二のデータを暗号化処理することを特徴とするデータ格納方法。
【請求項１２】
請求項８記載のデータ格納方法であって、
前記コントローラは、前記第一の暗号化処理をした後、前記進捗位置情報を更新することを特徴とするデータ格納方法。
【発明の詳細な説明】
【技術分野】
【０００１】
01  本発明は一般にはストレージシステムに係わり、特にデータを長期に確実に保存するための暗号化ストレージ技術のシステムと方法に係わる。
【背景技術】
【０００２】
02  ストレージシステムはネットワークベースのアーキテクチャの分野において進歩しつつある。代表的なアーキテクチャはネットワーク接続型ストレージシステム（ＮＡＳ）やストレージエリアネットワークシステム（ＳＡＮ）を含んでいる。ネットワーク接続が可能なストレージにより、企業はオペレーションを分散させ、そのユーザを全世界に配置することが可能になる。企業の各種の局面が、その分散されたユーザによってアクセス可能なデータに圧縮されるので、長期間の記憶がますます重要になる。さらに、政府の規制により電子メールなどのある種の情報を長期に亘り保存することが求められている。
【０００３】
03  しかしながら、ネットワークを経由してストレージシステムが接続されると、ストレージシステムへの無許可の侵入というセキュリティリスクが発生する。無法なサーバやスイッチ、および一般に「ハッカー」と呼ばれる者達が、データに無許可にアクセスしてネットワークを混乱させる。動作中そして／あるいは停止中においても、データを暗号化することでこれらのリスクを回避できる。
【０００４】
04  暗号化アルゴリズムは技術の影響を受け易く、データ処理技術の進歩がますます強力な計算システムを作りだし、現在の暗号化方式を打ち破るために使われ得る。現在は事実上アクセス不能と考えられている暗号化方式（一般にはデータを暗号化し復号化する暗号化基準）が今から数年後のプロセッサや暗号化エンジンにより破られる可能性がある。一つの解決方法は、このような時が到来したら、より強い暗号化を適用する、たとえばもっと暗号化キーを長くするとか、あるいはより進歩した暗号化アルゴリズムを用いる、あるいはこれら双方を用いるなどをして、計算するためのハードルを高くすることである。
【０００５】
05  しかしながら、これには暗号化したデータを長期に亘って保存しなければならないという問題をはらんでいる。第一に、データを一定期間保存する必要がある。時間が経過すると、利用可能な処理能力に比較して、「古くなった」暗号化データは暗号化が弱体化してしまう。このように、ある時点で確実とされた暗号化データも数年後には破られる可能性がある。暗号化データは利用できる必要性がある。したがって、「古くなった」暗号化されたデータは十分に強力な処理能力をもつ誰かによって不正アクセスをされやすい。したがって、暗号化されたデータを長期間保存するには、さらに強力な暗号化基準、たとえばより長いキーや強力なアルゴリズムなど、を提供するというニーズが存在する。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このように、ある時点で確実とされた暗号化データも数年後には破られる可能性がある。暗号化データは利用できる必要性がある。したがって、「古くなった」暗号化されたデータは十分に強力な処理能力をもつ誰かによって不正アクセスをされやすい。したがって、暗号化されたデータを長期間保存するには、さらに強力な暗号化基準、たとえばより長いキーや強力なアルゴリズムなど、を提供するというニーズが存在する。
【課題を解決するための手段】
【０００７】
06  本発明の一つの態様には、ストレージシステムに記憶されたデータを第１の暗号化から第２の暗号化に変換することが含まれる。第１の暗号化は第１の暗号化基準に基づいている。第２の暗号化は第２の暗号化基準に基づいている。変換処理の間、Ｉ／Ｏリクエストを受信し処理することが出来る。
【０００８】
07  本発明の他の態様においては、データが当初暗号化されない形式で記憶されているストレージシステム上のデータを変換することが含まれる。この変換はデータを暗号化することも含んでいる。変換処理の間、Ｉ／Ｏリクエストを受信し処理することが出来る。
【０００９】
08  本発明の特徴や利点や新規性は付図に関連した本発明の以下の説明により明確となる。
【発明の効果】
【００１０】
データを暗号化し長期間に亘り保存する場合、悪意ある攻撃によって損傷されないように、暗号化キーそして／あるいはアルゴリズムは更新されなければならない。その目的のため、保存されている暗号化されたデータはストレージシステムの中で新しいセットの暗号化基準により変換される。この処理の間、読み出しリクエストと書き込みリクエストを処理することが可能である。
【発明を実施するための最良の形態】
【００１１】
09  以下の議論に於いて、暗号化と復号化のような暗号処理に関する議論の文面に用いられる「基準」という用語は、一連の暗号化アルゴリズム、特定の暗号化アルゴリズム、特定の暗号化アルゴリズムに用いられる１個あるいは複数のキーなどを意味するものとする。暗号化基準は、暗号化されたデータを作成するために暗号化されていない（「クリア」な）データに適用され、逆の場合にはクリアなデータを作成するために暗号化されたデータを復号化する、暗号化あるいは復号化キー、そして／あるいはアルゴリズム、のような情報を意味する。
【００１２】
10  図１(a)は本発明によるストレージシステム１０２を説明するための実施例を示す。ホストデバイス１０１はインターフェイス１０３を経由してストレージシステム１０２とデータコミュニケーション状態にある。図１(a)は議論を目的に単純化されているが、当然さらなるインターフェイスやホストデバイスが追加可能である。ホストデバイス１０１は、ストレージシステムにより処理される読み出しリクエストや書き込みリクエストを含むＩ／Ｏリクエストを作ることにより、ストレージシステム１０２とデータの交換を行う。ホストデバイス１０１とストレージシステム１０２の間のデータコミュニケーションはインターフェイス１０３を経由して行われる。
【００１３】
11  ストレージシステム１０２は物理ストレージコンポーネント１０４を含んでいる。物理ストレージコンポーネント１０４は、適当な如何なるストレージアーキテクチャでもよいことをご理解いただきたい。一般的なアーキテクチャは、ＲＡＩＤ（Redundant Array of Inexpensive Disks）とＪＢＯＤ（Just a Bunch of Disks）を含んでいる。議論を目的として、このストレージコンポーネント１０４は、そのデータがいろいろと「データのブロック」や「データブロック」や「ブロック」として示されるデータユニット１０９に物理的に記憶されるものとして性格付けされる。
【００１４】
12  ホストデバイス１０１からのＩ／Ｏリクエストを処理するストレージシステムのコントロールコンポーネントは、処理ユニット１１０とメモリーコンポーネント１０５で構成されている。処理ユニット１１０とメモリーコンポーネント１０５は、適宜任意の配列で構成することが可能であることは言うまでもないことである。たとえば、特定の実施例では、処理ユニット１１０とメモリー１０５はコントローラデバイスに統合（細線で表示、１２２）することが可能である。
【００１５】
13  内部バス１１２はストレージシステム１０２の構成コンポーネント間のシグナルパスとデータパスの機能を持つ。たとえば、内部バス１１２はインターフェイス１０３とプロセッサ１１０との間の接続をする。内部バス１１２は物理ストレージコンポーネント１０４でデータの交換を行うためのインターフェイスの機能を持っている。 
14  ストレージシステム１０２は、コミュニケーションネットワーク１４２上のコミュニケーションのためのネットワークインターフェイス１１１を装備することが可能である。ネットワークインターフェイス１１１により、ネットワークに接続されたデバイスがストレージシステム１０２にアクセスすることが可能になる。以下に説明するように、ネットワークインターフェイス１１１により、ストレージシステム１０２がネットワーク（たとえばインターネットやＬＡＮ等）にアクセスして情報を得ることが可能になる。
【００１６】
15  メモリーコンポーネント１０５は一般に、ストレージシステム１０２の各種の機能を遂行するために、処理ユニット１１０が実行するプログラムコードを含んでいる。これはホストデバイス（たとえばホストデバイス１０１）からのＩ／Ｏリクエストを処理することとネットワークインターフェイス１１１を経由してネットワーク上で通信することを含んでいる。たとえば読み出しリクエストを考えてみる。一般に、読み出しリクエストの処理は、アクセスしたブロック位置からデータ（読み出しデータ）を読み出すために、物理ストレージコンポーネント１０４上の１個ないしはそれ以上のブロック位置にアクセスすることを伴う。次いで、読み出しデータは要求元のデバイスに送られる。同様に、書き込みリクエストは、一般に、書き込みリクエストに関連した１個ないしはそれ以上のブロックを物理ストレージデバイス１０４上のブロック位置に書き込むことで処理される。
【００１７】
16  メモリーコンポーネント１０５はさらに、総合的に暗号化コンポーネント１２４と呼ばれるプログラムコードを含んでいる。図１(a)に示す本発明の実施例においては、暗号化コンポーネント１２４は第１の暗号化基準１０６（あるいは第１の暗号化処理）と第２の暗号化基準１０７（あるいは第２の暗号化処理）で構成される。暗号化基準１０６と１０７は、暗号化と復号化を行うプログラムコードで構成される。本発明の一つの態様においては、第１の暗号化基準１０６は第２の暗号化基準とは異なっており、オリジナルのデータを第１の暗号化基準を用いて暗号化することにより、オリジナルデータに第２の暗号化基準を適用して生成した暗号化データとは異なった暗号化データが生成される。使用される暗号化基準は、暗号化データと暗号化されていないデータが同じ大きさであるという特性を持つことが望ましい。このようにして、データの２５６バイトのブロックを暗号化すると暗号化されたデータの２５６バイトのブロックが生成される。このデータの大きさが同じであるという特性は、本発明の一つの態様を構成するものではない。しかしながら、同じデータのサイズを保証するということで、本発明を実行することが容易になるということは当然である。
【００１８】
17  ストレージシステム１０２は暗号化基準１０６と１０７を外部の資源から得ることが出来る。たとえば、ストレージシステム１０２は暗号化基準を得るためにコミュニケーションネットワーク１４２を経由して資源１３２にアクセスすることができる。このようにして、アドミニストレータは基準を提供することが出来る。
【００１９】
18  図１(b)は、暗号化動作を行うために、暗号化コンポーネント１２４'がハードウエア暗号化エンジンで構成されている、本発明の別の実施例を示す。暗号化／復号化ハードウエアは公知であり、一般に暗号化と復号化動作を高速で行うために専用化された論理回路を含んでいる。暗号化エンジン１２４’は、第１の暗号化基準に従って暗号化と復号化を行うように構成された第１の論理１０６'と、第２の暗号化基準に従い暗号化と復号化を行う第２の論理１０７'を含むことができる。別の場合では、暗号化エンジン１２４'は、一方は第１の暗号化基準に対応し、他方は第２の暗号化基準に対応する二つの暗号化エンジンで構成することができる。以下において議論するように、こうすることにより新しい暗号化基準をインストールするのが容易になる。
【００２０】
19  与えられた環境に於いては、ソフトウエアベースの暗号化と復号化手段に比較すると、ハードウエアエンジンを用いる方が好ましい。たとえば、技術が進歩すると、暗号化処理のためには処理コンポーネント１１０は陳腐化する可能性がある。このことは、ソフトウエアベースの暗号化コンポーネントの究極の能力には限界があることを意味している。もし新しい暗号化処理がプラグイン交換式の物理デバイスで行われる場合には、プラグイン交換式の物理デバイスは最新のハードウエア技術を用いることが出来るので、処理コンポーネント１１０との結びつきを絶つことが出来る。以下の議論に於いて、暗号化処理能力は、ハードウエア、ソフトウエア、およびハードウエアとソフトウエアの組み合わせで発揮されることは当然理解されることである。異なった暗号化基準は参照番号１０６と１０７で示されている。
【００２１】
20  図１(a)に示される本発明の実施例では、当初データは暗号化された形式で物理ストレージデバイス１０４上に記憶される。より詳細には、ホストデバイスが書き込みリクエストによってストレージシステム１０２に暗号化されていないデータを書き込む際に、このデータは第１の暗号化基準１０６を用いて暗号化される。生成された１個ないしはそれ以上の暗号化されたデータのブロックは、次いで物理ストレージデバイス１０４に記憶される。ホストデバイスから送られたデータは事実上ある形式の暗号化データであり得ることを注記する。たとえば、ホストで実行中のアプリケーションはストレージシステム１０２に記憶される暗号化された出力を生成する可能性がある。しかしながら、このようなデータは、第１の暗号化基準１０６によりストレージシステム１０２で処理されるまで「暗号化された」とは見なされない。
【００２２】
21  ホストデバイスが読み出しリクエストを発行すると、１個ないしはそれ以上のデータのブロックが物理ストレージデバイスから読み出される。復号化されたデータのブロックを生成するために、データのブロックに第１の暗号化基準を適用することで、暗号化された形式でデータのブロックを復号化する。リクエストされたデータは復号化されたデータブロックから読み出され、ホストデバイスに送り返される。
【００２３】
22  図２は本発明による変換処理を行うための高レベルの処理ステップを示す。一般に、変換処理は、第１の暗号化基準１０６に従って暗号化されたブロックを、第２の暗号化基準１０７に従って暗号化されたブロックへ変換する。
【００２４】
23  第１のステップ２０１では、何らかの設定処理を行うことが必要かもしれない。上述の特定の実施例では、物理ストレージデバイス１０４は、１から始まる番号（たとえば図１(a)のブロック＃１）が順番につけられた複数のブロックで構成されるものとする。変換はブロック毎に行われ、ブロック＃１から始まり連続して行われる。このようにして、次に変換すべきデータのブロックを識別するために、「処理済の位置」を示す基準あるいはポインター１０８が与えられ、イニシアライズしてブロック＃１を識別する。
【００２５】
24  さらに、暗号化と復号化のための基準１０６と１０７は、使用されている詳細条件によっては何らかのイニシアライズが必要になるかもしれない。たとえば、変換の時までは、第２の暗号化基準１０７を用いる必要はない。したがって、ストレージシステム１０２が第２の暗号化基準１０７を持っていない可能性もある。このように、イニシアライズするステップには、第２の暗号化基準１０７と識別される基準を得ることも含まれる。これはアドミニストレータ（図１(a)）によりアドミニストレーションポート１０３ａを経由するか、ネットワークによる等により実行される。暗号化エンジンの場合は、アドミニストレータは、新しい暗号化エンジンを構成するハードウエアを挿入するか、もしくは設定する必要があるかもしれない。
【００２６】
25  ステップ２０２では、「処理済の位置」基準１０８により識別されたデータのブロックに対する物理ストレージデバイス１０４上のブロック位置がアクセスされる。このブロック位置において、データブロックが物理ストレージデバイス１０４から読み出される。上記で論じたように、データは最初は第１の基準１０６に従って暗号化されている。したがって、ステップ２０３では、暗号化されていないデータブロックを生成するために第１の基準１０６を用いて復号化される。ステップ２０４で、第２の暗号化基準１０７が復号化されたデータブロックに適用され、いまや第２の暗号化基準１０７に従って暗号化されている変換済のデータブロックを生成する。変換済のデータブロックは、最初にステップ２０２で読み出された物理ストレージデバイス１０４上のブロック位置に書き戻される（ステップ２０５）。
【００２７】
26  ステップ２０２は本発明の一つの態様を強調している。以下に論じられるように、図１(a)に示す本発明の実施例では、ファイルシステムは、もしあるとした場合は、ストレージシステムの外部に保持されるものと想定する。ファイルシステムでは、データは高いレベルの構成となっており、たとえばデータはファイルとディレクトリ等々に構成されている。したがって、ファイルシステムはファイル（たとえばファイル−Ａ）とファイル−Ａで構成されるデータブロックのマッピングを行い、その要素となるファイルで構成されるブロックのブロック位置情報を保持する。このように、ステップ２０２では、変換済のデータブロックは、物理ストレージデバイス１０４上で対応する変換されていないデータブロックと同じ位置に書き込まれる。これにより、ホストデバイス１０１のファイルシステムからみると、物理ストレージデバイス上のデータの位置が保持される。したがって、ホストデバイス１０１のファイルシステムに関する限り、変換は透過的に行われる。
【００２８】
27  図２についてさらに続いて、「処理済の位置」基準１０８の値がステップ２０６で増やされ、変換する次のデータのブロックを識別する。ステップ２０７では、物理ストレージデバイス１０４上のすべてのデータブロックが変換されたかの判定が行われる。もし未完ならば、ステップ２０８に於いてステップ２０２と同様なやり方で次のデータのブロックが読み込まれる。次に処理はステップ２０３からすべてのブロックが変換されるまで継続される。
【００２９】
28  変換処理が完了すると、物理ストレージデバイス１０４上のデータの各ブロックは、第２の暗号化基準１０７に従って暗号化されたことになる。暗号化基準１０６を暗号化基準１０７を構成する基準で置き換えるために、ハードウエア、ソフトウエアあるいは機械的な置換機構をストレージデバイス１０２に装備することが可能である。たとえば初期条件として、第１の基準１０６は５６ビット長のキーを持つＤＥＳ（Data Encryption Standard−データ暗号化規格）で構成され、第２の基準１０７は２５６ビット長のキーを持つＡＥＳ（Advanced Encryption Standard−アドバンスド暗号化規格）で構成されるものと仮定する。変換処理が完了すると、置換機構が第１の基準１０６を第２の基準１０７の２５６ビット長のキーを持つＡＥＳ（Advanced Encryption Standard）で置き換える。第２の暗号化基準１０７とされる新しい基準は、次の変換処理に先立つある時点で明らかになる。
【００３０】
29  もし第２の暗号化基準１０７が第１の暗号化基準１０６より強力な暗号化を特徴とするならば、おそらく第１の暗号化基準を用いて暗号化されたデータを解読するより、第２の暗号化基準を用いて暗号化されたデータを解読するほうがより強力な処理能力が必要になる。その結果、本発明の変換処理を用いることにより、技術が進歩して第１の暗号化基準がもはや不法侵入に対してセキュリティーが十分ではなくなった時点で、ストレージシステム１０２に記憶されている暗号化されたデータの暗号化能力を増強させることが出来る。たとえば、上記の例に於いて、最近のデータ処理能力が容易にＡＥＳの暗号化を破り得ると判断されると、新しい基準が設定される。より長いキーが使用されるとか、より強力なアルゴリズムが実用されるとかである。このような場合には、アドミニストレータは第２の暗号化基準１０７のような新しい基準を提供し、別の変換処理を開始することが出来る。ある形式のハードウエア暗号化エンジンを使用する本発明の他の実施例では、新しい基準はプラグイン式のハードウエアであるかもしれない。
【００３１】
30  本発明の他の態様は、変換処理の間におけるＩ／Ｏリクエストの処理である。このように、物理ストレージデバイス１０４上のデータのブロックが一つの暗号化方式から他の暗号化方式に移行中であっても、ストレージシステムとホストデバイスや他のデータユーザ間とのＩ／Ｏは利用可能である。本発明のこの態様についてここでさらに詳細に論じる。
【００３２】
31  図３は読み出しリクエストの処理を行うフローを示す。図１(a)に示す本発明を説明するための実施例において、上述したように、ホストデバイス１０１とストレージシステム１０２の間のデータＩ／ＯはブロックレベルＩ／Ｏである。ステップ３０１で、ストレージシステム１０２が物理ストレージデバイス１０４の１個ないしはそれ以上のデータのブロックを読み出すよう読み出しリクエストを受信すると、対応する物理ストレージデバイス１０４の読み出しリクエストで指定されたブロックの位置がアクセスされ、データブロックが読み出される（ステップ３０２）。
【００３３】
32  もし変換処理が行われていない場合は、アクセスされたデータブロックは、上記で論じたように、第１の暗号化基準１０６を用いて復号化される。もし変換処理が行われている場合は、次のステップ３０３では、各アクセスされたデータブロックについてそのデータブロックが変換されているか否かが判定される。図１(a)に示す実施例により、アクセスしたブロックのブロック番号と「処理済の位置」基準１０８とを照合することで判定が行われる。
【００３４】
33  物理ストレージデバイス１０４のデータのブロックには連続して番号がつけられており、変換処理は最小のブロック番号から昇順に進行し、「処理済の位置」基準１０８より値の低い番号のブロックは変換済みデータブロックを意味する。したがって、ステップ３０５では、復号化したデータブロックを生成するデータのブロックなどには第２の暗号化基準１０７が適用される。逆に、「処理済み位置」基準１０８より大きいかあるいは同じブロック番号は変換されていないデータブロックを意味する。したがって、ステップ３０４では、復号化したデータブロックを生成するデータのブロックなどには第１の暗号化基準１０６が適用される。次に、ステップ３０６では、データは復号化されたデータブロックから読み出され、最終的には読み出しリクエストを処理するためにホストデバイス１０１に送り返される。
【００３５】
34  図４は書き込みリクエストの処理を行うフローを示す。書き込みリクエストは書き込みデータを含んでいる。Ｉ／ＯはブロックレベルＩ／Ｏであるので、書き込みリクエストは、書き込みデータのブロックに対して対象ブロック位置を指定する。
【００３６】
35  ステップ４０１では、ストレージシステム１０２が書き込みリクエストを受信する。もし変換処理が行われていない場合は、暗号化されたブロックを生成するために、各書き込みブロックに第１の暗号化基準１０６が適用される。つぎに、暗号化されたブロックは書き込みリクエストで指定されたブロック位置に書き込まれる。
【００３７】
36  もし変換処理が行われている場合は、各書き込みデータのブロックについて、ステップ４０２で、どの暗号化基準を適用するか決定される。書き込まれるブロックの対象ブロック位置は「処理済の位置」基準１０８と比較される。もしブロック位置が基準１０８より小さい場合は、ブロック位置は既に変換が終了している一式のデータブロックに含まれているので、第２の基準１０７が書き込まれるブロックに適用される。もしブロック番号が基準１０８より大きいかあるいは同じ場合は、ブロック位置が未だ変換されていない一式のデータブロックに含まれているので、書き込まれるブロックには第１の基準１０６が適用される。つづいて、正しく暗号化されたデータブロックは物理ストレージデバイス１０４に書き込まれる。
【００３８】
37  前述のことから理解されるように、「処理済の位置」基準１０８の単純な機構により、変換が完了したデータブロックのセット（「変換済のセット」）と変換が完了していないデータブロックのセット（「変換されていないセット」）が識別される。特定のアクセスしたデータブロック（読み出しあるいは書き込みのための）がどのセットに属するかを判別することにより、データブロックを暗号化あるいは復号化するために適切な基準が適用される。したがって、当業者は、与えられた物理ストレージ方式に対して、データブロックが変換済かあるいは変換されていないかを追跡するために、一層適切な他の技術を考えることもできよう。
【００３９】
38  上述のように、ストレージシステム１０２上の暗号化されたデータの変換を備えることにより、記憶され暗号化されたデータが変換され、新しい暗号化基準のセットに従って暗号化される。このようにして、データ処理技術の進歩に対応してストレージシステム上のデータに一層強力な暗号化を定期的に適用することができ、暗号を破ろうとすることに対してデータの弾力性を維持できる。さらに、変換はオンライン方式で行われるので、ライブシステム上で変換を実行することが可能になる。ユーザは、変換処理の間に暗号化されたストレージシステムに、透過的な形式でアクセスが出来る。ストレージシステムから読み出されたデータは正しく復号化される。ストレージシステムに書き込まれるデータは正確に暗号化される。ストレージシステムにおける本発明による処理は、Ｉ／Ｏリクエストを処理しながら、変換を確実に完了させるものである。
【００４０】
39  前述により、各種の代替の実施例が可能になることは明らかである。たとえば、図５はストレージ装置５１４の構成であって、暗号化コンポーネントはストレージシステム５０２の外部に設けられていることを示す。
【００４１】
40  ストレージ装置５１４は、ホストデバイス１０１とのデータ接続のためにインターフェイス５０３を含んでいる。インターフェイス５０４はストレージシステム５０２への適切なデータ接続を可能にする。ストレージ装置５１４のハードウエアは、処理コンポーネント５１５とメモリコンポーネント５０５を含む。メモリー５０５に記憶されているプログラムコードは処理コンポーネント５１５により実行され、ストレージシステム５０２にアクセスしてホストデバイス１０１から受信したＩ／Ｏリクエストを処理する。プログラムコードは、第１の暗号化基準５０６と第２の暗号化基準５０７を含む暗号化コンポーネント５２４を含む。図１(b)に示されているように、暗号化エンジンの周りに暗号化コンポーネント５２４が設置され得ることは明らかである。ネットワークインターフェイス５１１は、上記で論じられたネットワークインターフェイス１１１が設定されるのと多分に同じように、そこを通して暗号化基準を得るポートとして設定される。
【００４２】
41  ストレージ装置５１４の運用は、上記図２〜４に示す処理に従って行われる。たとえば、ホストデバイス１０１はストレージ装置５１４にブロックレベルＩ／Ｏリクエストを発行する。次に、ストレージ装置は、ストレージシステム５０２と、インターフェイス５０４と１０３の間のデータパスを介して交信する。暗号化コンポーネント５２４が、図１(a)に示す内部バス１１２の代わりに、インターフェイス５０４と１０３によって物理ストレージデバイス１０４と交信することを除き、変換処理は図２に示すように行われる。同様に、変換処理の間にＩ／Ｏ処理が図３と図４により行われる。
【００４３】
42  本発明の他の態様に於いては、ストレージシステム１０２上のデータは最初は暗号化されていない形式で記憶されている。これはデータが暗号化されていない在来のシステムを本発明の暗号ストレージ技術を用いて更新する際に役に立つ。実際には、本発明のこの態様は、第１の暗号化基準１０６が、最初は基準が無いことを意味する「NULL（無し）」である、特殊な場合である。図２の変換処理は最初の変換に適用可能であることは当然理解されるものである。第１の基準がNULLであるので、何も行わない復号化ステップ２０３は事実上スキップされる。もし最初の変換処理の間にＩ／Ｏリクエストが行われると、同様の考慮が払われる。このように、もし読み出しリクエストに応じてアクセスされたブロックのブロック位置が「処理済の位置」基準１０８より大である場合は、図３の復号化ステップ３０４は事実上実行されない。同様に、書き込みリクエストについては、もし書き込まれるブロックのブロック位置が「処理済の位置」基準１０８より大である場合は、暗号化ステップ４０３は事実上実行されない。
【００４４】
43  図５のストレージ装置の実施例は、在来のストレージシステムを更新する際に利用できる。適正に構成されたストレージ装置５１４を、ホストデバイスと在来のストレージシステムとの間に接続することが出来る。図３と図４に従ってＩ／Ｏリクエストを処理しながら、図２による最初の変換を実行することが出来る。初期には暗号化されていない在来のストレージシステム上で最初の変換処理が完了すると、このストレージシステムは図１(a)に関連して説明した暗号化されたストレージシステムになる。最初の変換で用いた基準が第１の暗号化基準１０６になる。
【００４５】
44  時が経ち、技術が進歩すると、改善された技術に打ち勝つために新しい暗号化基準が必要と判断される場合があるであろう。アドミニストレータはストレージ装置にアクセスし、新しい暗号化基準をインストールし、改善された暗号を実施するために図２に従って変換を開始する。その間、ホストデバイスは、図３と図４に示すように、変換処理の間にもデータに継続してアクセス出来る。
【００４６】
45  図６(a)は本発明のさらに別の実施例を示す。上述のように、図１(a)に示す本発明の実施例では、ホストデバイスにファイルシステムあるいは他の形式の高レベルのデータ機構が存在するものとしている。図６(a)に示す実施例では、ファイルシステムはストレージシステム６０２に実装されており、たとえばＮＡＳのアーキテクチャは一般的にこのように構成されている。ホストデバイス６０１は、ストレージシステム６０２にファイルレベルのＩ／Ｏリクエストを行う。ストレージシステム６０２は、第１と第２の暗号化基準１０６と１０７で構成される暗号化コンポーネント１２４を含んでいる。
【００４７】
46  ホストデバイス１０１がストレージシステム６０２にデータアクセス（読み出しあるいは書き込み）を要求する場合は、ファイルレベルのリクエストが発行される。リクエストは、ストレージシステム６０２によるブロックレベルＩ／Ｏ動作に変換することが可能で、その結果物理ストレージデバイス１０４にアクセスしてファイルレベルリクエストの処理が出来る。ストレージシステム６０２のファイルシステムコンポーネントが、ファイルレベルリクエストを処理するために、ブロックレベルＩ／Ｏを実行するので、ストレージシステムが上記で論じた図２から図４による変換処理とＩ／Ｏリクエストを実行できることは当然理解されるものである。
【００４８】
47  図６(a)の実施例においては、ファイルシステムはストレージシステム６０２に駐在する。これによりデータブロックを変換するために選ばれる順序に自由度が生じる。図２に於いては、データブロックは、最小のブロック番号から昇順で選ばれる。しかしながら、特定のファイルあるいはファイルのセットに所属するデータブロックを変換する方が望ましい場合もあるであろう。一般には、たとえば特定の形式のファイルとか特別の変更日を持つファイルなど、ある種の１個ないしはそれ以上の基準により決められる特定のデータブロックのセットを変換することが望ましいであろう。当業者は、特定のデータのブロックの選択が指定できることを認識するであろう。たとえば、特定のファイルのセットのデータブロックの変換を希望する場合は、ブロックは、選択されたファイルのデータブロックのアドレスを示すデータアドレステーブルを用いて指定できる。このようなデータアドレステーブルは一般にファイルシステム６１３により保持されている。処理済の位置基準１０８は、たとえば第２の暗号化基準により既に変換されているデータブロックのアドレスのリストのような、ファイルシステムの実装内容に従い、実施することが出来る。ステップ３０３と４０２（図３と図４）で、このリストを検索し、Ｉ／Ｏリクエストを処理するためにブロックがすでに変換されているか、否かを判断することができる。
【００４９】
48  図６(b)は図１(b)と同様な実施例であり、図６(a)で示されている暗号化コンポーネント１２４がハードウエアベースの暗号化エンジン１２４'として実装されている。図１(b)の場合のように、エンジンは純粋に論理だけ、あるいは論理とファームウエアの組み合わせである。たとえば、エンジンは異なったアルゴリズムを記憶するファームウエアを持つ特殊なＤＳＰで構成されることもある。
【図面の簡単な説明】
【００５０】
【図１（ａ）】図１(a)は本発明によるストレージシステムを説明するための実施例を示す一般的なブロックダイアグラムである。
【図１（ｂ）】図１(b)は図１に示すストレージシステムの別の実施例を示している。
【図２】図２は本発明を説明するための実施例における変換動作のステップを示す高レベルフローダイアグラムである。
【図３】図３は本発明を説明するための実施例における読み出し動作のステップを示す高レベルフローダイアグラムである。
【図４】図４は本発明を説明するための実施例における書き込み動作のステップを示す高レベルフローダイアグラムである。
【図５】図５は本発明によるストレージシステムの他の実施例を示す一般的なブロックダイアグラムである。
【図６（ａ）】図６(a)は本発明によるストレージシステムのさらに他の実施例を示す一般的なブロックダイアグラムである。
【図６（ｂ）】図６(b)は図６(a)の実施例においてハードウエア暗号化を用いる場合を示している。
【符号の説明】
【００５１】
１０１  …  ホスト（ファイルシステム）
１０３  …  Ｉ／Ｏ Ｉ／Ｆ
１０３ａ  …  アドミニストレータ
１０４  …  ディスク
１０６  …  暗号１
１０７  …  暗号２
１０８  …  処理済の位置
１１０  …  ＣＰＵ
１１１  …  ネットワークＩ／Ｆ
１３２  …  基準
【図１（ａ）】
0004648687.tif 000002
【図１（ｂ）】
0004648687.tif 000003
【図２】
0004648687.tif 000004
【図３】
0004648687.tif 000005
【図４】
0004648687.tif 000006
【図５】
0004648687.tif 000007
【図６（ａ）】
0004648687.tif 000008
【図６（ｂ）】
0004648687.tif 000009