(57)【要約】【課題】暗号化済みデータのままマイグレーションされてもそれをマイグレーション先で復号化できるようにする。非暗号化データをストレージシステムの外に出すことなくデータの暗号化方式を変更する。【解決手段】ストレージシステム（３００）に、リムーバブルなモジュール（４００）が接続されるコネクタ（８１４）が備えられる。そのリムーバブルなモジュールが、データの暗号化や復号化に関わる暗号化／復号化情報を記憶する記憶部、及び／又は、所定の暗号化／復号化方式でデータを暗号化／復号化する暗号化／復号化エンジンを備える。ストレージシステムの制御部及び／又はモジュールが、その暗号化／復号化情報を使用してデータを暗号化したり、暗号化済みデータを、その暗号化／復号化情報を使用して復号化したりする。或いは、暗号化／復号化エンジンが、データを暗号化したり、暗号化済みデータを復号化したりする。【選択図】図１
2009032038.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置と、
リムーバブルな暗号化／復号化モジュールが接続されるコネクタと、
前記記憶装置へのデータの書込みや記憶装置からのデータの読出しを制御し前記コネクタを有する制御部と
を備え、
前記暗号化／復号化モジュールが、データの暗号化や復号化に関わる暗号化／復号化情報を記憶する記憶部を有しており、
前記制御部と前記暗号化／復号化モジュールの少なくとも一つが、前記暗号化／復号化情報を使用してデータを暗号化し、前記制御部が、その暗号化済みデータを、前記記憶装置に書込み、
前記制御部が前記記憶装置から暗号化済みデータを読出し、前記制御部と前記暗号化／復号化モジュールの少なくとも一つが、前記読み出された暗号化済みデータを、前記暗号化／復号化情報を使用して復号化する、
ストレージシステム。
【請求項２】
前記コネクタが複数個存在し、その複数のコネクタに、第一のコネクタと第二のコネクタとが含まれ、
前記第一のコネクタに、第一の暗号化／復号化モジュールが接続され、
前記第二のコネクタに、第二の暗号化／復号化モジュールが接続され、
前記記憶装置が、第一の暗号化／復号化方式による暗号化済みデータを記憶しており、
前記制御部が、前記記憶装置から暗号化済みデータを読出し、前記制御部と前記第一の暗号化／復号化モジュールの少なくとも一つが、前記読み出された暗号化済みデータを、前記第一の暗号化／復号化方式で復号化し、前記制御部と前記第二の暗号化／復号化モジュールの少なくとも一つが、復号化されたデータを、第二の暗号化／復号化方式で暗号化し、前記制御部が、暗号化済みデータを、前記記憶装置又はそれとは別の記憶装置に書込む、
請求項１記載のストレージシステム。
【請求項３】
前記第一の暗号化／復号化モジュールが有する第一の暗号化／復号化情報に、第一の鍵情報が含まれ、
前記第二の暗号化／復号化モジュールが有する第二の暗号化／復号化情報に、第二の鍵情報が含まれ、
前記記憶装置に記憶されている前記暗号化済みデータは、前記第一の暗号化／復号化方式で前記第一の鍵情報を使用して暗号化されたデータであり、
前記制御部と前記第一の暗号化／復号化モジュールの少なくとも一つが、前記読み出された暗号化済みデータを、前記第一の鍵情報を使用して前記第一の暗号化／復号化方式で復号化し、前記制御部と前記第二の暗号化／復号化モジュールの少なくとも一つが、復号化されたデータを、前記第二の鍵情報を使用して前記第二の暗号化／復号化方式で暗号化する、
請求項２記載のストレージシステム。
【請求項４】
記憶装置が複数個有り、
前記第一の暗号化／復号化情報に、更に、鍵管理情報が含まれ、前記鍵管理情報は、前記第一の鍵情報を識別するための情報である第一の鍵ＩＤと、記憶装置又は記憶装置が対応付けられている要素を表す暗号化対象要素情報との対応を表し、
前記制御部、前記第一の暗号化／復号化モジュール及び第二の暗号化／復号化モジュールの少なくとも一つが、前記第一の暗号化／復号化モジュールの記憶部から前記第二の暗号化／復号化モジュールの記憶部に前記第一の鍵管理情報をコピーし、
前記制御部と前記第二の暗号化／復号化モジュールの少なくとも一つが、コピーされた前記鍵管理情報における前記第一の鍵ＩＤを、前記第二の鍵情報を識別するための情報である第二の鍵ＩＤに更新する、
請求項３記載のストレージシステム。
【請求項５】
前記制御部、前記第一の暗号化／復号化モジュール及び第二の暗号化／復号化モジュールの少なくとも一つが、前記第一の暗号化／復号化方式と前記第二の暗号化／復号化方式との互換性の有無を判断し、互換性が有るとの判断になれば、前記制御部と前記第一の暗号化／復号化モジュールとの少なくとも一方が、前記第一の暗号化／復号化方式での復号化を行うが、互換性が無いとの判断になれば、その復号化を行わない、
請求項２記載のストレージシステム。
【請求項６】
前記互換性の有無とは、或るデータサイズのデータを前記第一の暗号化／復号化方式で暗号化した場合と前記第二の暗号化／復号化方式で暗号化した場合とで暗号化済みデータのデータサイズに差が有るか否かである、
請求項５記載のストレージシステム。
【請求項７】
前記制御部が、変更後の暗号化／復号化方式である前記第二の暗号化／復号化方式が、変更前の暗号化／復号化方式である前記第一の暗号化／復号化方式よりも旧式か否かを判断し、旧式との判断になった場合に、警告を出す、
請求項２記載のストレージシステム。
【請求項８】
前記コネクタが複数個存在し、その複数のコネクタに、第一のコネクタと第二のコネクタとが含まれ、
前記第一のコネクタに、第一の暗号化／復号化モジュールが接続され、
前記第二のコネクタに、第二の暗号化／復号化モジュールが接続され、
前記記憶装置が、前記暗号化／復号化情報を使用して暗号化されたデータである暗号化済みデータを記憶しており、
前記制御部、前記第一の暗号化／復号化モジュール及び第二の暗号化／復号化モジュールの少なくとも一つが、前記暗号化／復号化情報の全部又は一部を前記第一の暗号化／復号化モジュールから前記第二の暗号化／復号化モジュールにコピーし、
前記制御部が、前記記憶装置から暗号化済みデータを読出し、その暗号化済みデータを、復号化することなく、マイグレーション先のストレージシステムに送信する、
請求項１記載のストレージシステム。
【請求項９】
記憶装置が複数個有り、
前記暗号化／復号化情報には、鍵情報と、鍵管理情報が含まれており、前記鍵管理情報は、前記鍵情報を識別するための情報である鍵ＩＤと、記憶装置又は記憶装置が対応付けられている要素を表す暗号化対象要素情報との対応を表し、
コピーされる前記暗号化／復号化情報の一部とは、前記鍵管理情報である、
請求項８記載のストレージシステム。
【請求項１０】
前記暗号化／復号化モジュールが、認証情報を記憶する認証情報記憶部を更に有し、
前記制御部と前記暗号化／復号化モジュールとの少なくとも一つが、前記認証情報を用いてその暗号化／復号化モジュールの使用の許否を判断し、
前記第一の暗号化／復号化モジュールは、前記許否の判断において、前記ストレージシステムでの使用を許可すると判断されたモジュールであり、
前記第二の暗号化／復号化モジュールは、前記許否の判断において、前記暗号化／復号化情報をコピーするために前記前記ストレージシステムでの使用を一時的に許可すると判断されたモジュールである、
請求項８記載のストレージシステム。
【請求項１１】
前記制御部が、前記コネクタから前記暗号化／復号化モジュールが取外されたことを検出した場合、前記記憶装置へのアクセスを禁止する、
請求項１記載のストレージシステム。
【請求項１２】
前記コネクタは、リムーバブルな記憶装置も接続可能に構成されている、
請求項１記載のストレージシステム。
【請求項１３】
前記暗号化／復号化モジュールが、暗号化及び復号化を行う暗号化／復号化エンジンを更に備える、
請求項１記載のストレージシステム。
【請求項１４】
前記コネクタ及び前記記憶装置がそれぞれ複数個存在し、
暗号化／復号化管理情報を記憶する管理記憶部を更に備え、前記暗号化／復号化管理情報は、暗号化／復号化モジュールを識別するための情報であるモジュールＩＤと、記憶装置又は記憶装置が対応付けられている要素を表す暗号化対象要素情報との対応を表し、
前記制御部が、アクセス先の記憶装置に関わる暗号化対象情報要素に対応したモジュールＩＤを前記暗号化／復号化管理情報から特定し、特定されたモジュールＩＤから識別される暗号化／復号化モジュールが、前記アクセス先の記憶装置に書き込まれるデータを暗号化する、或いは、前記アクセス先の記憶装置から読み出された暗号化済みデータを復号化する、
請求項１記載のストレージシステム。
【請求項１５】
記憶装置と、
リムーバブルな暗号化／復号化モジュールが接続されるコネクタと、
前記記憶装置へのデータの書込みや記憶装置からのデータの読出しを制御し前記コネクタを有する制御部と
を備え、
前記暗号化／復号化モジュールが、所定の暗号化／復号化方式で暗号化や復号化を行う暗号化／復号化エンジンを有し、
前記暗号化／復号化エンジンが、データを暗号化し、前記制御部が、その暗号化済みデータを、前記記憶装置に書込み、
前記制御部が前記記憶装置から暗号化済みデータを読出し、前記暗号化／復号化エンジンが、前記読み出された暗号化済みデータを、前記暗号化／復号化情報を使用して復号化する、
ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムに記憶されるデータの暗号化に関する。
【背景技術】
【０００２】
暗号化機能を有したストレージシステムが知られている。その種のストレージシステムは、例えば、特許文献１及び２に開示されている。特許文献１及び２に開示の技術によれば、ストレージシステムの暗号化機能により、ストレージシステムがホストから受信したデータが暗号化され、暗号化されたデータが記憶装置に格納される。
【０００３】
【特許文献１】特開２００７−０２８５０２号公報
【特許文献２】特開２００６−２２７８３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
第一のストレージシステムから第二のストレージシステムにデータがマイグレーションされるケースがある。データのマイグレーションは、例えば、古いストレージシステムを新しいストレージシステムにリプレースする場合に行われる。
【０００５】
このケースにおいて、マイグレーション対象のデータが、第一のストレージシステムの第一の暗号化機能による暗号化済みデータであることがある。その場合、第二のストレージシステムの第二の暗号化機能によって、第二のストレージシステムに記憶される暗号化済みデータを復号化できるようにするために、以下の方法でマイグレーションする必要がある。すなわち、第一のストレージシステムが、暗号化済みデータを第一の暗号化機能によって復号化し、その復号化されたデータを第二のストレージシステムに送信し、第二のストレージシステムが、第二の暗号化機能によって、その復号化されたデータを再び暗号化してから記憶する必要がある。このため、暗号化されていないデータ（以下、非暗号化データ）が、データのマイグレーションの際にストレージシステムの外に出てしまうことになる。また、マイグレーション対象の全ての暗号化済みデータについて、復号化と再暗号化が伴うため、データのマイグレーションに要する時間が長くなってしまう。これらの問題を解消するための方法としては、暗号化済みデータそれ自体を第一のストレージシステムが第二のストレージシステムに送信する方法が考えられるが、そうすると、第二のストレージシステムに記憶される暗号化済みデータは、第二の暗号化機能によって暗号化されたデータではないため、第二のストレージシステムにおいてその暗号化済みデータを復号化することができない。
【０００６】
また、例えば、記憶されるデータの暗号化方式の変更が望まれることがある。その望みに応える方法としては、上記のマイグレーションを行う方法がある。これにより、記憶されるデータの暗号化方式を、第一のストレージシステムの第一の暗号化機能による第一の暗号化方式から、第二のストレージシステムの第二の暗号化機能による第二の暗号化方式に変更することができる。しかし、この方法では、暗号化方式の変更のために非暗号化データがストレージシステムの外に出てしまうという問題が生じる。
【０００７】
従って、本発明の第一の目的は、第一のストレージシステムによる暗号化済みデータが第二のストレージシステムにマイグレーションされてもその暗号化済みデータを第二のストレージシステムで復号化できるようにすることにある。
【０００８】
本発明の第二の目的は、非暗号化データをストレージシステムの外に出すことなく、データの暗号化方式を変更できるようにすることにある。
【０００９】
本発明の他の目的は、後の説明から明らかになるであろう。
【課題を解決するための手段】
【００１０】
ストレージシステムに、リムーバブルなモジュールが接続されるコネクタが備えられる。そのリムーバブルなモジュールが、データの暗号化や復号化に関わる暗号化／復号化情報を記憶する記憶部、及び／又は、所定の暗号化／復号化方式でデータを暗号化／復号化する暗号化／復号化エンジンを備える。ストレージシステムの制御部又は暗号化／復号化モジュールの少なくとも一つが、その暗号化／復号化情報を使用してデータを暗号化したり、暗号化済みデータを、その暗号化／復号化情報を使用して復号化したりする。或いは、暗号化／復号化エンジンが、データを暗号化したり、暗号化済みデータを復号化したりする。
【００１１】
データのマイグレーションの場合には、例えば、第一のストレージシステムに接続されていて暗号化や復号化に使用されていたモジュールが、第一のストレージシステムから取り外して第二のストレージシステムに接続され、そのモジュールを使用して暗号化されたデータ（暗号化済みデータ）が、第一のストレージシステムから復号化されることなく第二のストレージシステムにマイグレーションされる。第二のストレージシステムにマイグレーションされた暗号化済みデータは、第二のストレージシステムに接続されたモジュールにより、復号化が可能である。
【００１２】
暗号化／復号化方式の変更の場合には、例えば、ストレージシステムに接続されていて暗号化や復号化に使用されていたモジュールを用いて、そのストレージシステム内のデータが第一の暗号化／復号化方式で復号化され、そのストレージシステムに接続された別のモジュールを用いて、復号化されたデータが第二の暗号化／復号化方式で暗号化される。
【発明を実施するための最良の形態】
【００１３】
一つの実施形態では、ストレージシステムが、記憶装置と、リムーバブルな暗号化／復号化モジュールが接続されるコネクタと、記憶装置へのデータの書込みや記憶装置からのデータの読出しを制御し上記コネクタを有する制御部とを備える。暗号化／復号化モジュールが、データの暗号化や復号化に関わる暗号化／復号化情報を記憶する記憶部、及び／又は、所定の暗号化／復号化方式でデータを暗号化／復号化する暗号化／復号化エンジンを備える。制御部又は暗号化／復号化モジュールの少なくとも一つが、その暗号化／復号化情報を使用してデータを暗号化したり、暗号化済みデータを、その暗号化／復号化情報を使用して復号化したりする。或いは、暗号化／復号化エンジンが、データを暗号化したり、暗号化済みデータを復号化したりする。
【００１４】
暗号化／復号化モジュールは、暗号化専用のモジュールと復号化専用のモジュールとで構成されても良い。この場合には、暗号化専用のモジュールが、データを暗号化する、及び／又は、暗号化に関わる情報を記憶し、復号化専用のモジュールが、暗号化済みデータを復号化する、及び／又は、復号化に関わる情報を記憶する。
【００１５】
一つの実施形態では、ストレージシステムに、コネクタが複数個存在し、その複数のコネクタに、第一のコネクタと第二のコネクタとが含まれる。第一のコネクタに、第一の暗号化／復号化モジュールが接続され、第二のコネクタに、第二の暗号化／復号化モジュールが接続される。記憶装置が、第一の暗号化／復号化方式による暗号化済みデータを記憶している。制御部が、記憶装置から暗号化済みデータを読出し、制御部と第一の暗号化／復号化モジュールの少なくとも一つが、第一の暗号化／復号化方式情報を使用して、或いは、第一の暗号化／復号化モジュール内の第一の暗号化／復号化エンジンが、読み出された暗号化済みデータを、第一の暗号化／復号化方式で復号化する。また、制御部と第二の暗号化／復号化モジュールの少なくとも一つが、第二の暗号化／復号化方式情報を使用して、或いは、第二の暗号化／復号化モジュール内の第二の暗号化／復号化エンジンが、復号化されたデータを、第二の暗号化／復号化方式で暗号化し、制御部が、暗号化済みデータを、記憶装置又はそれとは別の記憶装置に書込む。
【００１６】
一つの実施形態では、第一の暗号化／復号化モジュールが有する第一の暗号化／復号化情報に、第一の鍵情報が含まれる。第二の暗号化／復号化モジュールが有する第二の暗号化／復号化情報に、第二の鍵情報が含まれる。記憶装置に記憶されている暗号化済みデータは、第一の暗号化／復号化方式で第一の鍵情報を使用して暗号化されたデータである。制御部と第一の暗号化／復号化モジュールの少なくとも一つが、読み出された暗号化済みデータを、前記第一の鍵情報を使用して前記第一の暗号化／復号化方式で復号化する。制御部と第二の暗号化／復号化モジュールの少なくとも一つが、復号化されたデータを、第二の鍵情報を使用して第二の暗号化／復号化方式で暗号化する。
【００１７】
一つの実施形態では、記憶装置が複数個有る。第一の暗号化／復号化情報に、更に、鍵管理情報が含まれる。鍵管理情報は、第一の鍵情報を識別するための情報である第一の鍵ＩＤと、記憶装置又は記憶装置が対応付けられている要素を表す暗号化対象要素情報との対応を表す。制御部、第一の暗号化／復号化モジュール及び第二の暗号化／復号化モジュールの少なくとも一つが、第一の暗号化／復号化モジュールの記憶部から第二の暗号化／復号化モジュールの記憶部に前記第一の鍵管理情報をコピーする。制御部と第二の暗号化／復号化モジュールの少なくとも一つが、コピーされた鍵管理情報における第一の鍵ＩＤを、第二の鍵情報を識別するための情報である第二の鍵ＩＤに更新する。
【００１８】
一つの実施形態では、制御部、前記第一の暗号化／復号化モジュール及び第二の暗号化／復号化モジュールの少なくとも一つが、第一の暗号化／復号化方式と第二の暗号化／復号化方式との互換性の有無を判断し、互換性が有るとの判断になれば、制御部と第一の暗号化／復号化モジュールとの少なくとも一方が、第一の暗号化／復号化方式での復号化を行うが、互換性が無いとの判断になれば、その復号化を行わない。
【００１９】
一つの実施形態では、互換性の有無とは、或るデータサイズのデータを第一の暗号化／復号化方式で暗号化した場合と第二の暗号化／復号化方式で暗号化した場合とで暗号化済みデータのデータサイズに差が有るか否かである。
【００２０】
一つの実施形態では、制御部が、変更後の暗号化／復号化方式である第二の暗号化／復号化方式が、変更前の暗号化／復号化方式である第一の暗号化／復号化方式よりも旧式か否かを判断し、旧式との判断になった場合に、警告を出す。
【００２１】
一つの実施形態では、コネクタが複数個存在し、その複数のコネクタに、第一のコネクタと第二のコネクタとが含まれる。第一のコネクタに、第一の暗号化／復号化モジュールが接続される。第二のコネクタに、第二の暗号化／復号化モジュールが接続される。記憶装置が、暗号化／復号化情報を使用して暗号化されたデータである暗号化済みデータを記憶している。制御部、第一の暗号化／復号化モジュール及び第二の暗号化／復号化モジュールの少なくとも一つが、暗号化／復号化情報の全部又は一部を第一の暗号化／復号化モジュールから第二の暗号化／復号化モジュールにコピーする。制御部が、記憶装置から暗号化済みデータを読出し、その暗号化済みデータを、復号化することなく、マイグレーション先のストレージシステムに送信する。
【００２２】
一つの実施形態では、記憶装置が複数個有る。暗号化／復号化情報には、鍵情報と、鍵管理情報が含まれている。鍵管理情報は、鍵情報を識別するための情報である鍵ＩＤと、記憶装置又は記憶装置が対応付けられている要素を表す暗号化対象要素情報との対応を表す。コピーされる暗号化／復号化情報の一部とは、上述の鍵管理情報である。
【００２３】
一つの実施形態では、暗号化／復号化モジュールが、認証情報を記憶する認証情報記憶部を更に有する。制御部と暗号化／復号化モジュールとの少なくとも一つが、認証情報を用いてその暗号化／復号化モジュールの使用の許否を判断する。第一の暗号化／復号化モジュールは、許否の判断において、ストレージシステムでの使用を許可すると判断されたモジュールである。第二の暗号化／復号化モジュールは、許否の判断において、暗号化／復号化情報をコピーするために前記ストレージシステムでの使用を一時的に許可すると判断されたモジュールである。
【００２４】
一つの実施形態では、制御部が、コネクタから暗号化／復号化モジュールが取外されたことを検出した場合、記憶装置へのアクセスを禁止する。
【００２５】
一つの実施形態では、コネクタは、リムーバブルな記憶装置も接続可能に構成されている。
【００２６】
一つの実施形態では、コネクタ及び前記記憶装置がそれぞれ複数個存在する。ストレージシステムが、暗号化／復号化管理情報を記憶する管理記憶部を更に備える。暗号化／復号化管理情報は、暗号化／復号化モジュールを識別するための情報であるモジュールＩＤと、記憶装置又は記憶装置が対応付けられている要素を表す暗号化対象要素情報との対応を表す。制御部が、アクセス先の記憶装置に関わる暗号化対象情報要素に対応したモジュールＩＤを暗号化／復号化管理情報から特定し、特定されたモジュールＩＤから識別される暗号化／復号化モジュールが、アクセス先の記憶装置に書き込まれるデータを暗号化する、或いは、アクセス先の記憶装置から読み出された暗号化済みデータを復号化する。
【００２７】
上述した複数の実施形態のうちの二以上の実施形態を組み合わせることができる。また、上述した各部は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ（例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること）により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、ＣＤ−ＲＯＭ等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【００２８】
以下、図面を参照して本発明の一実施形態を詳細に説明する。なお、その実施形態では、リムーバブルの暗号化／復号化モジュールは、暗号化専用のモジュールと復号化専用のモジュールとに分離しておらず、一つのモジュールが暗号化にも復号化にも使用されることとする。また、その暗号化／復号化モジュールに、所定の暗号化／復号化方式で暗号化や復号化を実行する暗号化／復号化エンジンが搭載されているものとする。
【００２９】
図１は、本発明の一実施形態に係る計算機システムの構成を示す。
【００３０】
第一の通信ネットワーク、例えばＳＡＮ２００に、一又は複数のホスト計算機１００と、ストレージシステム３００が接続されている。
【００３１】
ホスト計算機１００は、例えば、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成される。
【００３２】
ストレージシステム３００は、例えば、アレイ状に配列された多数の物理的な記憶装置３２１を備えるＲＡＩＤシステムとすることができる。ストレージシステム３００は、ストレージ制御部３１０と、ストレージ部３２０とに大別することができる。
【００３３】
ストレージ制御部３１０は、例えば、複数（又は一つ）のホストＩ／Ｆ３１１と、複数（又は一つ）のストレージＩ／Ｆ３１５と、キャッシュメモリ（図では「ＣＭ」と略記）３１６と、共有メモリ（図では「ＳＭ」と略記）３１２と、システム内スイッチ（図では「システム内ＳＷ」と略記）３１３と、サービスプロセッサ（以下、「ＳＶＰ」と略記）３１７とを備えている。また、ストレージ制御部３１０は、一つ以上のスロット部、例えば二つのスロット部３１４、３１４を有する。以下、二つのスロット部３１４を格別区別しない場合には、単に「スロット部３１４」と言い、それらを区別して説明する場合には、「第一のスロット部３１４」、「第二のスロット部３１４」と言うことにする。
【００３４】
スロット部３１４は、スロットを形成しており、そのスロットに、暗号化及び復号化に関する情報やエンジンがモジュール化された装置（以下、暗号化／復号化モジュール）４００が挿される。スロットに挿し込まれた暗号化／復号化モジュール４００がより奥へと進むことで、その暗号化／復号化モジュール４００にある後述の接続Ｉ／Ｆと、ストレージ制御部３１０にあるコネクタ８１４とが接続される。そのコネクタ８１４は、ストレージ内スイッチ３１３に接続されている。これにより、コネクタ８１４に物理的に接続された暗号化／復号化モジュール４００は、後述の接続Ｉ／Ｆを介してストレージシステム３００に接続され、ＳＶＰ３１７からの指示に応答した処理や、その後述の接続Ｉ／Ｆを介して入力されるデータの暗号化や復号化を行うことができる。スロット部３１４に対する暗号化／復号化モジュール４００の接続や取り外しは、手動で行われても良いし、自動で行われても良い。また、暗号化／復号化モジュール４００とコネクタ８１４との接続は、非接触でも接触でも良い。
【００３５】
ホストＩ／Ｆ３１１は、ホスト計算機１００或いは他のストレージシステムとの間のデータ通信を行うインタフェース装置である。ホストＩ／Ｆ３１１は、例えば、プロセッサ３１１２、メモリ３１２３、ポート３１１１等を備えたマイクロコンピュータシステム（例えば回路基盤）として構成することができる。具体的には、例えば、複数のポート３１１１１や、複数のプロセッサ３１１２や、それらやメモリ３１２３が接続されておりそれらの接続を切替えるスイッチなどが備えられている。各ポート３１１１は、ホスト計算機１００から書込み要求や読出し要求を受信するポートである。ポート３１１１には、それを識別するための情報として、例えば、ＷＷＮ（World Wide Name）が付与されている。
【００３６】
ストレージＩ／Ｆ３１５は、物理的な記憶装置３２１との間のデータ通信を行うインタフェース装置である。ストレージＩ／Ｆ３１５も、プロセッサ、メモリ、複数のポート等を備えたマイクロコンピュータシステム（例えば回路基盤）として構成することができる。複数のポートは、物理的な記憶装置３２１と通信可能に接続されるポートである。
【００３７】
キャッシュメモリ３１６は、例えば、揮発性又は不揮発性のメモリであり、ホスト計算機１０から受信したデータや、物理的な記憶装置３２１から読出されたデータを、一時的に記憶する。
【００３８】
共有メモリ３１２は、例えば、揮発性又は不揮発性のメモリであり、ストレージシステム３００の制御のためにホストＩ／Ｆ３１１或いはストレージＩ／Ｆ３１５に参照される管理情報が格納される。管理情報としては、例えば、ポート−ＬＵマッピングテーブル３１２１と、ＬＵ−ストレージマッピングテーブル３１２２と、復号化制御テーブル３１２３とがある。各テーブル３１２１、３１２２及び３１２３については後に詳述する。
【００３９】
ストレージ内スイッチ３１３は、ホストＩ／Ｆ３１１、ストレージＩ／Ｆ３１５、キャッシュメモリ３１６、共有メモリ３１２、ＳＶＰ３１７及び暗号化／復号化モジュール４００を相互に接続させる。ストレージ内スイッチ３１３としては、例えば、高速スイッチング動作によってデータ伝送を行う超高速クロスバスイッチを採用することができる。ストレージ内スイッチ３１３に代えて、バスなどの他種の接続部が採用されてもよい。
【００４０】
ＳＶＰ３１７は、ストレージシステム３００を保守及び／又は管理するための装置（例えば回路基板）である。ＳＶＰ３１７は、第二の通信ネットワーク、例えばＬＡＮ５００に接続されており、ＬＡＮ５００を介して、管理端末（例えばパーソナルコンピュータ等の計算機）６００と通信することができる。ＳＶＰ３１７を制御コンソールとし、管理端末６００をそれの入出力コンソールとすることができる。
【００４１】
ストレージ部３２０には、複数の物理的な記憶装置３２１が含まれている。物理的な記憶装置３２１としては、例えば、ハードディスクドライブ、フレキシブルディスクドライブ、磁気テープドライブ、半導体メモリ（例えばフラッシュメモリ）ドライブ、光ディスクドライブ等のようなデバイスを用いることができる。二以上の物理的な記憶装置３２１により、所定のＲＡＩＤレベルのＲＡＩＤグループを構成することができる。ＲＡＩＤグループを構成する二以上の物理的な記憶装置３２１の記憶空間を用いて、一又は複数の論理的な記憶装置（以下、論理ユニット或いはそれを略してＬＵと言う）３２１を形成することができる。
【００４２】
以上が、本実施形態に係る計算機システムの構成である。なお、この構成は、一例であり、他の構成が採用されてもよい。例えば、共有メモリ３１２とキャッシュメモリ３１６は、別々のメモリでなく、一つのメモリに共有メモリ領域とキャッシュメモリ領域とが設けられても良い。また、例えば、ストレージ制御部３１０は、ＣＰＵ、メモリ及び複数の通信ポートを備えた回路基盤（すなわち、図１のストレージ制御部よりもシンプルな構成）であっても良い。この場合、そのＣＰＵが、複数のホストＩ／Ｆ３１１やストレージＩ／Ｆ３１５によって行われる処理を実行することができる。
【００４３】
図２は、暗号化／復号化モジュール４００の構成例を示す。
【００４４】
暗号化／復号化モジュール４００は、接続Ｉ／Ｆ４１０と、モジュール制御部４２０と、認証情報記憶部４３０と、処理定義記憶部４４０と、暗号化／復号化エンジン４７０と、入出力バッファ４９０と、鍵記憶部４６０と、モジュール内スイッチ（図では「モジュール内ＳＷ」）４５０とを備える。複数の記憶部４３０、４４０及び４６０は、それぞれ、例えば不揮発性のメモリである。複数の記憶部４３０、４４０及び４６０のうちの二以上の記憶部が、一つのメモリに設けられていても良い。
【００４５】
接続Ｉ／Ｆ４１０は、ストレージ制御部３１０にあるコネクタ８１４に接続されるインタフェース装置である。接続Ｉ／Ｆ４１０は、モジュール内ＳＷ４５０を介して、モジュール制御部４２０、認証情報記憶部４３０、処理定義記憶部４４０、暗号化／復号化エンジン４７０及び鍵記憶部４６０に接続される。
【００４６】
モジュール制御部４２０は、例えば、コンピュータプログラムを読み込んで実行するプロセッサ（例えばＣＰＵ）である。モジュール制御部４２０は、例えば、暗号化／復号化モジュール４００のストレージシステム３００に対する認証（具体的には、後述の接続認証及び一時認証）を行ったり、鍵４６２の生成、更新或いは破棄の指示を行ったり、鍵マッピングテーブル４６１の設定或いは更新を行ったり、所定の処理の定義に関する情報である処理定義情報を暗号化定義記憶部４４０に記憶させたりする。
【００４７】
認証情報記憶部４３０は、認証情報を記憶する。認証情報としては、例えば、汎用的な認証情報及び専用的な認証情報がある。汎用的な認証情報としては、例えば“guest”などの所定の文字列を採用することができる。初期的には、専用的な認証情報が記憶されておらず、汎用的な認証情報を用いた後述の接続許否判定処理で、論理的な接続が許可された場合に、専用的な認証情報が認証情報記憶部４３０に追記され、以後は、その専用的な認証情報を使用して接続許否判定処理が行われる。専用的な認証情報としては、この暗号化／復号化モジュール４００の論理的な接続が許可されたストレージシステム３００の識別子（以下、ストレージシステムＩＤ）を採用することができる。
【００４８】
処理定義記憶部４４０には、処理定義情報が記憶される。処理定義情報としては、例えば、マイグレーションＩＤ（マイグレーションの識別子）や、モジュールステータス情報（モジュールステータスを表す情報）がある。モジュールステータス情報としては、例えば、接続ステータス情報（入力されたデータを暗号化したり復号化したりすることが許可されていることのステータスを表す情報）や、一時ステータス情報（データの暗号化や復号化したりすることは許可されていないが、鍵マッピングテーブル４６１のコピー先としての使用など一時的な使用は許可されていることのステータスを表す情報）などがある。
【００４９】
入出力バッファ４９０は、例えば、メモリに設けられた記憶領域である。入出力バッファ４９０は、接続Ｉ／Ｆ４１０を介して入力された暗号化済みデータ或いは非暗号化データや、暗号化／復号化エンジン４７０による暗号化済みデータ或いは非暗号化データが一時記憶される。
【００５０】
暗号化／復号化エンジン４７０は、入力されたデータを所定の暗号化／復号化方式で暗号化したり復号化したりするエンジンである。このエンジンは、ハードウェア回路、暗号化／復号化プログラムを実行するマイクロプロセッサ、或いはそれらの組合せで構成することができる。暗号化／復号化エンジン４７０は、暗号化や復号化の他に、例えば、モジュール制御部４２０からの指示に応答して、鍵４６２を生成することもできる。また、暗号化／復号化エンジン４７０が実行可能な暗号化／復号化方式の数は二以上であっても良く、その場合には、暗号化／復号化エンジン４７０は、二以上の暗号化／復号化方式の中から選択された暗号化／復号化方式で暗号化や復号化を行うことができる。
【００５１】
鍵記憶部４６０には、一以上の鍵４６２と、鍵マッピングテーブル４６１とが記憶される。鍵４６２は、暗号化と復号化の両方に使用される鍵を表す情報である。鍵マッピングテーブル４６１は、どの暗号化対象に所属する論理ユニット３２２に記憶されるデータをどの鍵４６２を使用して暗号化するかを表すテーブルである。具体的には、例えば、図３に示すように、鍵マッピングテーブル４６１に登録されるレコードは、暗号化／復号化モジュール４００の識別子であるモジュールＩＤ４６１１、暗号化／復号化方式の名称である暗号化／復号化方式名４６１２、鍵４６２の名称である鍵名４６１３、暗号化対象４６１４で構成される。暗号化対象４６１４は、どの論理ユニット３２２に記憶されるデータを暗号化するかを表す情報である。暗号化対象４６１４としては、例えば、All Storage４６１４１、ポートID４６１４３、ホストグループＩＤ４６１４４及びＬＵＮ（Logical Unit Number）４６１４５がある。All Storage４６１４１が“Yes”であれば、ストレージシステム３００に存在する全ての論理ユニット３３２に記憶されるデータが暗号化対象のデータである。All Storage４６１４１が“No”であれば、ストレージシステム３００に存在する一部の論理ユニット３３２に記憶されるデータが暗号化対象のデータである。All Storage４６１４１が“No”の場合には、ポートID４６１４３、ホストグループＩＤ４６１４４及びＬＵＮ４６１４５のうちの一以上の情報要素で、論理ユニット３３２が指定される。例えば、ストレージシステム３００の共有メモリ３１２には、図示しないが、ストレージシステム３００に存在する論理ユニット３３２のLUNや、その論理ユニット３３２がどのポート３１１１或いはどのホストグループに対応するかを表す情報が記憶されている。
【００５２】
なお、ホストグループとは、ポート３１１１にマッピングされた複数の論理ユニット３３２の全部又は一部であり、ホスト計算機１００に対応付けられるグループである。具体的には、例えば、或るホストグループに所属する論理ユニット３３２は、その或るホストグループに対応したホスト計算機３３２には提供されるが、他のホスト計算機３３２には提供されない。
【００５３】
また、論理ユニット３２２を指定する単位としては、ポートやホストグループに限らず、それらに代えて又は加えて、他種の単位を採用することができる。その単位としては、例えば、ＳＬＰＲ或いはホストＷＷＮを採用することができる。SLPRとは、Storage Logical PaRtitioningの略であり、ストレージシステム３００の論理的な一部分である。ホストＷＷＮとは、ホスト計算機３３２が有する図示しないポートに割当てられているWWNである。
【００５４】
暗号化／復号化モジュール４００やＳＶＰ３１７は、共有メモリ３１２に記憶されているテーブル３１２１、３１２２及び３１２３の参照、設定および更新を行うことができる。
【００５５】
図４は、LU−ストレージマッピングテーブル３１２２の構成例を示す。
【００５６】
LU−ストレージマッピングテーブル３１２２は、論理ユニット３２２と物理的な記憶装置３２１との対応関係と、どの論理ユニット３２２に記憶されるデータがどの暗号化／復号化モジュール４００で暗号化及び復号化されるかとを表すテーブルである。具体的には、例えば、LU−ストレージマッピングテーブル３１２２には、一つの論理ユニット３２２につき、その論理ユニット３２２のLUN３１２２１と、その論理ユニット３２２を提供する記憶装置３２１の識別子であるストレージID３１２２２と、その記憶装置３２１におけるアドレスを表す情報であるアドレス３１２２３と、その論理ユニット３２２に対応した暗号化／復号化モジュール４００の識別子であるモジュールID３１２２４とが記録される。
【００５７】
図５は、ポート−LUマッピングテーブル３１２１の構成例を示す。
【００５８】
ポート−LUマッピングテーブル３１２１は、ポート３１１１と論理ユニット３２２との対応関係と、どの論理ユニット３２２に記憶されるデータがどの暗号化／復号化モジュール４００で暗号化及び復号化されるかとを表すテーブルである。具体的には、例えば、ポート−LUマッピングテーブル３１２１には、一つの論理ユニット３２２につき、その論理ユニット３２２が対応付けられたポート３１１１の識別子であるポートID３１２１１と、その論理ユニット３２２を含んだホストグループの識別子であるホストグループID３１２１２と、その論理ユニット３２２のLUN３１２１３と、その論理ユニット３２２に対応した暗号化／復号化モジュール４００の識別子であるモジュールID３１２１４とが記録される。
【００５９】
図５によれば、二つの暗号化／復号化モジュールが共存可能である。具体的には、例えば、モジュールＩＤ“モジュールＡ”に対応する第一の暗号化／復号化モジュール４００によって、ＬＵＮ“ＬＵ＃１”のＬＵ３２２に記憶されるデータが暗号化／復号化され、モジュールＩＤ“モジュールＢ”に対応する第二の暗号化／復号化モジュール４００によって、ＬＵＮ“ＬＵ＃３”のＬＵ３２２に記憶されるデータが暗号化／復号化されることがわかる。
【００６０】
図６は、復号化制御テーブル３１２３の構成例を示す。
【００６１】
復号化制御テーブル３１２３は、どのポート３１１１から出力されるデータを復号化するかを表すテーブルである。具体的には、例えば、復号化制御テーブル３１２３には、一つのポート３１１１につき、そのポート３１１１１の識別子であるポートID３１２３１と、復号化するか否かを表す情報である復号化有無３１２３２とが記録される。復号化有無３１２３２が“Yes”であれば、その復号化有無３１２３２に対応するポート３１１１を経由するデータの復号化が行われ、復号化有無３１２３２が“No”であれば、その復号化有無３１２３２に対応するポート３１１１を経由するデータの復号化は行われない。なお、初期的には、復号化有無３１２３２は“Yes”となり、適宜に、それが“No”に変更されたり、“Yes”に戻されたりする。
【００６２】
以下、本実施形態で行われる種々の処理を説明する。
【００６３】
図７は、暗号化／復号化モジュール４００がストレージシステム３００に物理的に接続された場合に行われる処理の流れの一例を示す。図では、ステップを「Ｓ」と略記している。なお、この図７の説明では、今回物理的に接続された暗号化／復号化モジュール４００を「対象モジュール４００」と呼ぶ。
【００６４】
ＳＶＰ３１７が、対象モジュール４００が物理的に接続されたことを検知し、接続認証と一時認証のどちらを行うかを判断する（ステップ１４０１）。接続認証を行うと判断した場合、ステップ１４０２に進み、一時認証を行うと判断した場合、ステップ１４０８に進む。例えば、ＳＶＰ３１７は、物理的な接続を検知した場合、管理端末６００のユーザにどちらの認証を行うかを問合せ、その問合せに応答して管理端末６００のユーザから受けた回答を基に、接続認証と一時認証のどちらを行うかを判断しても良い。或いは、例えば、第一の暗号化／復号化モジュール４００又は第一のスロット部３１４に、接続認証と一時認証のどちらを行うかを指定するための入力部（例えば機械的なスイッチ）が設けられており、その入力部を介して受けた指定を基に、ＳＶＰ３１７が接続認証と一時認証のどちらを行うかを判断しても良い。ちなみに、接続認証とは、物理的に接続された対象モジュール４００をデータの暗号化／復号化に使用するという認証であり、一時認証とは、対象モジュール４００を、データの暗号化／復号化には使用しないが、鍵マッピングテーブルのコピー先としての使用などの一時的な使用を行うという認証である。
【００６５】
ステップ１４０２では、ＳＶＰ３１７は、対象モジュール４００について、初めての接続認証か否かを判断する。具体的には、例えば、ＳＶＰ３１７は、モジュール制御部４２０に専用的な認証情報の有無を問い合わせ、その問合せに対する回答を基に、初めての接続認証か否かを判断しても良い。この場合、専用的な認証情報が有る旨の回答を受けたならば、初めての接続認証ではないと判断し、一方、専用的な認証情報が無い旨の回答を受けたならば、初めての接続認証であると判断することができる。初めての接続認証と判断された場合、ステップ１４０３に進み、初めての接続認証ではないと判断された場合、ステップ１４０６に進む。
【００６６】
ステップ１４０３では、ＳＶＰ３１７は、対象モジュール４００から汎用的な認証情報を取得し、その汎用的な認証情報を用いて、接続認証するか否かの接続許否判定を行う。例えば、ＳＶＰ３１７は、管理端末６００から、文字列（例えばパスワード及び／又は他種の文字列）を受け付け、受けた文字列が、汎用的な認証情報が表す文字列と一致するか否かを判定する。この場合、一致すれば、接続認証するとの判定になり、ステップ１４０４に進み、不一致であれば、接続認証しないとの判定になり、ステップ１４０５に進む。
【００６７】
ステップ１４０４では、ＳＶＰ３１７は、接続ステータス情報を、対象モジュール４００の処理定義記憶部４４０に記憶させる。また、ＳＶＰ３１７は、ストレージシステム３００のストレージシステムＩＤを専用的な認証情報として対象モジュール４００の認証情報記憶部４３０に記憶させる。
【００６８】
ステップ１４０５では、ＳＶＰ３１７は、対象モジュール４００の使用を拒否する。例えば、ＳＶＰ３１７は、対象モジュール４００の使用を拒否することを意味するメッセージを管理端末６００に送信し、管理端末６００が、そのメッセージを表示しても良い。或いは、例えば、ＳＶＰ３１７は、例えば、対象モジュール４００が挿されているスロット部３１４に排出命令を送ることで対象モジュール４００をそのスロット部３１４から排出させても良い。
【００６９】
ステップ１４０６では、ＳＶＰ３１７は、対象モジュール４００から専用的な認証情報を取得し、その専用的な認証情報を用いて、接続認証するか否かの接続許否判定を行う。例えば、ＳＶＰ３１７は、共有メモリ３１２或いは他の記憶領域から、ストレージシステム３００のストレージシステムＩＤを読出し、そのストレージシステムＩＤが、専用的な認証情報が表すストレージシステムＩＤと一致するか否かを判定する。この場合、一致すれば、接続認証するとの判定になり、ステップ１４０７に進み、不一致であれば、接続認証しないとの判定になり、ステップ１４０５に進む。
【００７０】
ステップ１４０７では、ＳＶＰ３１７は、接続ステータス情報を、対象モジュール４００の処理定義記憶部４４０に記憶させる。
【００７１】
ステップ１４０８では、ＳＶＰ３１７は、一時認証するか否かの一時許否判定を行う。例えば、ＳＶＰ３１７は、対象モジュール４００から汎用的な認証情報を取得し、管理端末６００から、文字列（例えば、パスワード及び／又は他種の文字列）を受け付け、その受けた文字列が、汎用的な認証情報が表す文字列と一致するか否かを判定する。この場合、一致すれば、一時認証するとの判定になり、ステップ１４０９に進み、不一致であれば、一時認証しないとの判定になり、ステップ１４０５に進む。
【００７２】
ステップ１４０９では、ＳＶＰ３１７は、一時ステータス情報を、対象モジュール４００の処理定義記憶部４４０に記憶させる。
【００７３】
以上が、対象モジュール４００がストレージシステム３００に物理的に接続された場合に行われる処理の流れの一例である。なお、この例では、各ステップの主体、ＳＶＰ３１７であるが、ＳＶＰ３１７に代えて又は加えて、対象モジュール４００内のモジュール制御部４２０であっても良い。例えば、モジュール制御部４２０が、或いはモジュール制御部４２０とＳＶＰ３１７が協働して、対象モジュール４００を接続認証するか一時認証するかを決定しても良い。
【００７４】
また、例えば、対象モジュール４００とストレージシステム３００とが１対１に対応し、対象モジュール４００が、他のストレージシステム３００で接続認証されないようになっていても良い。具体的には、例えば、対象モジュール４００の認証情報記憶部４３０に記憶されるストレージシステムＩＤの数は、一つである。
【００７５】
図８は、鍵設定処理の流れの一例を示す。この図８の説明において、鍵設定処理の対象となる暗号化／復号化モジュール４００を「対象モジュール４００」と呼ぶ。
【００７６】
ステップ７０１で、接続認証或いは一時認証された対象モジュール４００内のモジュール制御部４２０が、暗号化対象４６１４が指定されている鍵生成命令を受信し、その鍵生成命令に応答して、暗号化／復号化エンジン４７０に鍵生成指示を送信する。
【００７７】
ステップ７０２で、暗号化／復号化エンジン４７０が、モジュール制御部４２０から鍵生成指示を受信し、その鍵生成指示に応答して、鍵４６２を生成する。鍵４６２は、例えば、暗号化／復号化エンジン４７０又は他の場所に設定されている暗号化強度に基づいて生成される。暗号化／復号化エンジン４７０或いはモジュール制御部４２０が、生成された鍵４６２を、鍵記憶部４６０に格納する。
【００７８】
ステップ７０３で、モジュール制御部４２０は、ステップ７０１で受信した鍵生成命令で指定されている暗号化対象４６１４と、ステップ７０２で格納した鍵４６２の名称である鍵名４６１３と、暗号化／復号化エンジン４７０による暗号化／復号化方式の名称（暗号化／復号化方式名）４６１２と、自分を有する暗号化／復号化モジュール４００の識別子（モジュールＩＤ）４６１１とで構成されるレコードを、鍵マッピングテーブル４６１に記録する。
【００７９】
ステップ７０４で、モジュール制御部４２０或いはＳＶＰ３１７は、ステップ７０３で記録したレコードを基に、ポート−ＬＵマッピングテーブル３１２１及びＬＵ−ストレージマッピングテーブル３１２２を更新する。例えば、記録されたレコードにおける暗号化対象４６１４に、LUN４６１４５として“LU#1”があれば、ポート−ＬＵマッピングテーブル３１２１に、LUN３１２１３として“LU#1”が記録され、そのLUN“LU#1”に対応するポートID３１２１１、ホストグループID３１２１２も記録され、更に、ステップ７０３で記録したレコードにおけるモジュールID４６１１が、モジュールID３１２１４として記録される。また、ＬＵ−ストレージマッピングテーブル３１２２において、LUN３１２２１“LU#1”に対応したモジュールID３１２２４として、ステップ７０３で記録したレコードにおけるモジュールID４６１１が記録される。
【００８０】
以上が、鍵設定処理についての説明である。この鍵設定処理により、スロット部３１４に挿された対象モジュール４００を用いてどの論理ユニット３２２に記憶されるデータを暗号化するかが定義される。
【００８１】
図９は、ホスト計算機から受信した書込み要求に応答して行われる書込み処理の流れの一例を示す。書込み要求では、ＬＵＮやアドレス（例えば論理ブロックアドレス）が指定されている。また、この図９の説明では、書込み要求に応答して書き込まれるべきデータを「ライトデータ」と呼ぶ。
【００８２】
ステップ８０１で、ホストＩ／Ｆ３１１が、書込み要求で指定されているＬＵＮをキーに、ポート−ＬＵマッピングテーブル３１２１や、ＬＵ−ストレージマッピングテーブル３１２２を参照し、指定されているＬＵＮに対応したモジュールＩＤ、ディスクＩＤ及びアドレスを特定する。そして、ホストＩ／Ｆ３１１が、受信した書込み要求に伴うライトデータ（非暗号化データ）を、キャッシュメモリ３１６に書込み、且つ、特定されたディスクＩＤ及びアドレスに基づく制御情報（例えば、ライトデータをどこに書込むかを表す情報）を、共有メモリ３１２に書込む。
【００８３】
ステップ８０２で、ホストＩ／Ｆ３１１が、ステップ８０１で特定されたモジュールＩＤの値が“なし”かそれ以外であるかを判断する。モジュールＩＤの値が“なし”であれば、ステップ８０７に進み、モジュールＩＤの値が“なし”ではなく有効な値となっていれば、ステップ８０３に進む。
【００８４】
ステップ８０３で、ホストＩ／Ｆ３１１が、ステップ８０１で特定されたモジュールＩＤから識別される暗号化／復号化モジュール４００（以下、この図９の説明において「対象モジュール４００」と言う）がいずれかのスロット部３１４に接続されているか否かを判断する。具体的には、例えば、ホストＩ／Ｆ３１１が、物理的に接続されている暗号化／復号化モジュール４００内のモジュール制御部４２０にモジュールＩＤ及びモジュールステータス情報を問合せ、その問合せに応答してモジュール制御部４２０からモジュールＩＤ及びモジュールステータス情報を受ける。そのモジュールＩＤがステップ８０１で特定されたモジュールＩＤと一致し、且つ、そのモジュールステータス情報が接続ステータス情報であれば、ホストＩ／Ｆ３１１は、対象モジュール４００が接続されていると判断する。接続されているとの判断になれば、ステップ８０４に進み、接続されていないとの判断になれば、ステップ８０８に進む。
【００８５】
ステップ８０４で、ホストＩ／Ｆ３１１が、暗号化命令と、ステップ８０１でキャッシュメモリ３１６に書き込んだライトデータ（非暗号化データ）と、暗号化対象情報（例えば、ＬＵＮ、ポートＩＤ或いはホストグループＩＤ）とを、対象モジュール４００のモジュール制御部４２０に送信する。モジュール制御部４２０は、暗号化命令に応答して、受けたライトデータ（非暗号化データ）を入出力バッファ４９０に書込む。また、モジュール制御部４２０は、受けた暗号化対象情報に対応する暗号化／復号化方式名４６１２及び鍵名４６１３を鍵マッピングテーブル４６１から特定する。そして、モジュール制御部４２０は、特定された暗号化／復号化方式名４６１２に対応した暗号化／復号化方式と、特定された鍵名４６１３に対応する鍵４６２と、受けたライトデータ（非暗号化データ）とを、暗号化／復号化エンジン４７０に指定する。
【００８６】
ステップ８０５で、暗号化／復号化エンジン４７０が、指定されたライトデータ（非暗号化データ）を入出力バッファ４９０から読出し、そのライトデータ（非暗号化データ）を、指定された暗号化／復号化方式で、指定された鍵４６２を使用して暗号化する。例えば、暗号化／復号化エンジン４７０が、ＣＰＵであり、ＣＰＵが、指定された暗号化／復号化方式でデータを暗号化するための暗号化プログラムを実行することで、入力された鍵４６２を使用してライトデータ（非暗号化データ）を暗号化することができる。暗号化／復号化エンジン４７０は、ライトデータ（暗号化済みデータ）を、入出力バッファ４９０に書込む。モジュール制御部４２０が、入出力バッファ４９０に書込まれたライトデータ（暗号化済みデータ）を、キャッシュメモリ４２０に書込む。
【００８７】
ステップ８０６で、ディスクＩ／Ｆ３１５が、共有メモリ３１２に書込まれた制御情報を基に、キャッシュメモリ４２０に書込まれたライトデータ（暗号化済みデータ）を、書込み要求で指定されているＬＵＮに対応した論理ユニット３２２（具体的には、その論理ユニット３２２を提供する、記憶装置３２１における物理的な記憶領域）に書込む。
【００８８】
ステップ８０７で、ディスクＩ／Ｆ３１５が、共有メモリ３１２に書込まれた制御情報を基に、キャッシュメモリ４２０に書込まれたライトデータ（非暗号化データ）を、書込み要求で指定されているＬＵＮに対応した論理ユニット３２２に書込む。
【００８９】
ステップ８０８で、ホストＩ／Ｆ３１１が、エラー処理を実行する。例えば、ホストＩ／Ｆ３１１は、書込み要求の送信元のホスト計算機１００に、エラーを応答する。
【００９０】
図１０は、ホスト計算機から受信した読出し要求に応答して行われる読出し処理の流れの一例を示す。読出し要求では、ＬＵＮやアドレス（例えば論理ブロックアドレス）が指定されている。また、この図１０の説明では、その読出し要求に応答して読み出されるべきデータを「リードデータ」と呼ぶ。
【００９１】
ステップ９０１で、ホストＩ／Ｆ３１１が、読出し要求で指定されているＬＵＮをキーに、ポート−ＬＵマッピングテーブル３１２１や、ＬＵ−ストレージマッピングテーブル３１２２を参照し、指定されているＬＵＮに対応したモジュールＩＤ、ディスクＩＤ及びアドレスを特定する。そして、ホストＩ／Ｆ３１１が、特定されたディスクＩＤ及びアドレスに基づく制御情報（例えば、データをどこから読み出すかを表す情報）を、共有メモリ３１２に書込む。
【００９２】
ステップ９０２で、ホストＩ／Ｆ３１１が、ステップ９０１で特定されたモジュールＩＤの値が“なし”かそれ以外であるかを判断する。モジュールＩＤの値が“なし”であれば、ステップ９０７に進み、モジュールＩＤの値が“なし”ではなく有効な値となっていれば、ステップ９０３に進む。
【００９３】
ステップ９０３で、ホストＩ／Ｆ３１１は、読出し要求で指定されているＬＵＮに対応するポートを特定し、そのポートに対応した復号化有無３１２３２の値が“Yes”と“No”のどちらであるかを判断する。“Yes”であれば、ステップ９０４に進み、“No”であれば、ステップ９０７に進む。
【００９４】
ステップ９０４で、ホストＩ／Ｆ３１１が、ステップ９０１で特定されたモジュールＩＤから識別される暗号化／復号化モジュール４００（以下、図１０の説明において「対象モジュール４００」と言う）がいずれかのスロット部３１４に接続されているか否かを判断する。対象モジュール４００が接続されているとの判断になれば、ステップ９０５に進み、対象モジュール４００が接続されていないとの判断になれば、ステップ９０９に進む。
【００９５】
ステップ９０５で、ディスクＩ／Ｆ３１５が、共有メモリ３１２に書込まれた制御情報を基に、論理ユニット３２２からリードデータ（暗号化済みデータ）を読出し、読み出したリードデータ（暗号化済みデータ）をキャッシュメモリ３１６に書込む。ホストＩ／Ｆ３１１が、復号化命令と、キャッシュメモリ３１６に書き込まれたリードデータ（暗号化済みデータ）と、暗号化対象情報（例えば、ＬＵＮ、ポートＩＤ或いはホストグループＩＤ）とを、対象モジュール４００のモジュール制御部４２０に送信する。
【００９６】
ステップ９０６で、モジュール制御部４２０は、復号化指示に応答して、受けたリードデータ（暗号化済みデータ）を入出力バッファ４９０に書込む。また、モジュール制御部４２０は、受けた暗号化対象情報に対応する暗号化／復号化方式名４６１２及び鍵名４６１３を鍵マッピングテーブル４６１から特定する。そして、モジュール制御部４２０は、特定された暗号化／復号化方式名４６１２に対応した暗号化／復号化方式と、特定された鍵名４６１３に対応する鍵４６２と、受けたリードデータ（暗号化済みデータ）とを、暗号化／復号化エンジン４７０に指定する。暗号化／復号化エンジン４７０が、指定されたリードデータ（暗号化済みデータ）を入出力バッファ４９０から読出し、そのリードデータ（暗号化済みデータ）を、指定された暗号化／復号化方式で、指定された鍵４６２を使用して復号化する。暗号化／復号化エンジン４７０は、復号化されたリードデータ（非暗号化データ）を、入出力バッファ４９０に書込む。モジュール制御部４２０が、入出力バッファ４９０に書込まれたリードデータ（非暗号化データ）を、キャッシュメモリ４２０に書込む。
【００９７】
ステップ９０７で、ディスクＩ／Ｆ３１５が、共有メモリ３１２に書込まれた制御情報を基に、論理ユニット３２２からリードデータ（暗号化済みデータ又は非暗号化データ）を読出し、読み出したリードデータ（暗号化済みデータ又は非暗号化データ）をキャッシュメモリ３１６に書込む。
【００９８】
ステップ９０８で、ホストＩ／Ｆ３１１が、キャッシュメモリ３１６に書込まれたリードデータ（暗号化済みデータ又は非暗号化データ）を、読出し要求の送信元のホスト計算機１００に送信する。
【００９９】
ステップ９０９で、ホストＩ／Ｆ３１１が、エラー処理を実行する。例えば、ホストＩ／Ｆ３１１は、読出し要求の送信元のホスト計算機１００に、エラーを応答する。
【０１００】
図１１は、論理ユニットに格納済みの非暗号化データを暗号化する処理である格納データ暗号化処理の流れの一例を示す。この格納データ暗号化処理は、例えば、ＳＶＰ３１７が管理端末６００から格納データ暗号化処理指示を受けた場合に開始される。格納データ暗号化処理指示では、例えば、モジュールＩＤ４６１１、暗号化／復号化方式名４６１２、鍵名４６１３及び暗号化対象４６１４とが指定されている。そのモジュールＩＤ４６１４から識別される暗号化／復号化モジュール４００を、この図１１の説明で「対象モジュール４００」と呼ぶ。
【０１０１】
ステップ１００１で、ＳＶＰ３１７は、指定された暗号化対象４６１４から、暗号化が必要となるデータを記憶しているＬＵ３２２を特定する。例えば、暗号化対象４６１４がＬＵＮ４６１４５であれば、そのＬＵＮ４６１４５からＬＵ３２２が特定され、暗号化対象４６１４がポートＩＤ４６１４３であれば、そのポートＩＤ４６１４３に対応したＬＵＮが図示しない構成情報（例えば共有メモリ３１２に記憶されている）から特定され、そのＬＵＮからＬＵ３２２が特定される。
【０１０２】
ステップ１００２で、ＳＶＰ３１７は、特定されたＬＵ３２２からデータ（非暗号化データ）を読み出すことをディスクＩ／Ｆ３１１に指示し、ディスクＩ／Ｆ３１１が、その指示に応答して、そのＬＵ３２２からデータ（非暗号化データ）を読出し、キャッシュメモリ３１６に書込む。ＳＶＰ３１７が、暗号化指示と、キャッシュメモリ３１６上のデータ（非暗号化データ）を、対象モジュール４００に送信する。また、ＳＶＰ３１７は、指定されているモジュールＩＤ４６１１、暗号化／復号化方式名４６１２、鍵名４６１３及び暗号化対象４６１４を、対象モジュール４００に送信する。
【０１０３】
ステップ１００３で、対象モジュール４００内のモジュール制御部４２０は、暗号化指示に応答して、ＳＶＰ３１７からのデータ（非暗号化データ）を入出力バッファ４９０に書込み、ＳＶＰ３１７からのモジュールＩＤ４６１１、暗号化／復号化方式名４６１２、鍵名４６１３及び暗号化対象４６１４で構成されるレコードを鍵マッピングテーブル４６１に追記する。そして、モジュール制御部４２０は追記したレコードを基に、入出力バッファ４９０に書込まれたデータ（非暗号化データ）を暗号化／復号化エンジン４７０に暗号化させる。暗号化／復号化エンジン４７０による暗号化済みデータは、入出力バッファ４９０に一時記憶された後、キャッシュメモリ３１６に転送され記憶される。キャッシュメモリ３１６に記憶された暗号化済みデータは、それの暗号化前のデータの読出し元のＬＵ３２２に書き込まれる。なお、暗号化済みデータは、別のＬＵ３２２に書き込まれても良い。その場合には、例えば、ストレージシステム３００において、読出し元のＬＵ３２２のＬＵＮと、その別のＬＵ３２２のＬＵＮとが交換されても良い。
【０１０４】
ステップ１００２及び１００３は、ステップ１００１で特定された各ＬＵ３２２について行われる。
【０１０５】
以上が、格納データ暗号化処理の説明である。なお、格納データ暗号化処理において、ＳＶＰ３１７が行う処理の一部又は全部を、暗号化／復号化モジュール４００が、単独で、或いは、ＳＶＰ３１７と協働して行っても良い。
【０１０６】
図１２は、暗号化／復号化方式の変更処理の概要を示す。図１３は、暗号化／復号化方式の変更処理の流れの一例を示す。以下、図１２及び図１３を参照して、暗号化／復号化方式の変更処理を説明する。
【０１０７】
ステップ１１０１で、第一の暗号化／復号化モジュール４００Ａの他に、第二の暗号化／復号化モジュール４００Ｂが新たに接続される。以下の説明では、第一の暗号化／復号化モジュール４００Ａには、第一の暗号化／復号化方式でデータを暗号化／復号化する第一の暗号化／復号化エンジン４７０Ａと、第一の鍵４６２Ａと、鍵マッピングテーブル４６１とが記憶されているとし、第二の暗号化／復号化モジュール４００Ｂには、第二の暗号化／復号化方式でデータを暗号化／復号化する第二の暗号化／復号化エンジン４７０Ｂと、第二の鍵４６２Ｂと、鍵マッピングテーブル４６１とが記憶されているとする。また、第一の暗号化／復号化方式よりも第二の暗号化／復号化方式の方が新しいタイプの暗号化／復号化方式であるとする。また、第一の暗号化／復号化方式で暗号化されているデータを「第一の暗号化済みデータ」と呼び、第二の暗号化／復号化方式で暗号化されているデータを「第二の暗号化済みデータ」と呼ぶ。
【０１０８】
ステップ１１０２で、ＳＶＰ３１７が、管理端末６００から、第一の暗号化／復号化方式による暗号化済みデータを第二の暗号化／復号化方式による暗号化済みデータとすることの方式変更指示を受ける。
【０１０９】
ステップ１１０３で、ＳＶＰ３１７が、第一の暗号化／復号化方式と第二の暗号化／復号化方式との互換性の有無を判断する。例えば、同サイズのデータを第一の暗号化／復号化方式で暗号化した場合と第二の暗号化／復号化方式で暗号化した場合とで暗号化済みデータのサイズが異なる場合には、互換性が無いと判断し、一致する場合には、互換性が有ると判断することができる。互換性が無いとの判断になれば、暗号化／復号化方式の変更処理は終了となり、互換性が有るとの判断になれば、ステップ１１０４に進む。
【０１１０】
ステップ１１０４で、ＳＶＰ３１７が、第一の暗号化済みデータが記憶されている論理ユニット３２２を特定する。具体的には、例えば、ＳＶＰ３１７が、第一の暗号化／復号化モジュール４００Ａ内の鍵マッピングテーブル４６１を参照し、第一の暗号化／復号化方式の名称に対応した暗号化対象４６１４を特定し、その暗号化対象４６１４を基に、第一の暗号化済みデータが記憶されている論理ユニット３２２を特定する。
【０１１１】
ステップ１１０５で、ＳＶＰ３１７が、ディスクＩ／Ｆ３１５に、ステップ１１０４で特定された論理ユニット３２２からの読み出しを指示する。ディスクＩ／Ｆ３１５が、その指示に応答して、その特定された論理ユニット３２２から第一の暗号化済みデータを読出し、それを、キャッシュメモリ３１６に書込む。ＳＶＰ３１７が、復号化指示と、キャッシュメモリ３１６上の第一の暗号化済みデータとを、第一の暗号化／復号化モジュール４００Ａに送信する。第一の暗号化／復号化モジュール４００Ａにおいて、第一の暗号化／復号化エンジン４７０Ａが、第一の暗号化済みデータを、第一の鍵４６２を用いて第一の暗号化／復号化方式で復号化する。それにより、第一の暗号化済みデータが非暗号化データとされる。非暗号化データは、第一の暗号化／復号化モジュール４００Ａから出力され、キャッシュメモリ３１６に書き込まれる。ＳＶＰ３１７が、暗号化指示と、キャッシュメモリ３１６上の非暗号化データとを、第二の暗号化／復号化モジュール４００Ｂに送信する。第二の暗号化／復号化モジュール４００Ｂにおいて、第二の暗号化／復号化エンジン４７０Ｂが、その非暗号化データを、第二の鍵４６２を用いて第二の暗号化／復号化方式で暗号化する。それにより、その非暗号化データが第二の暗号化済みデータとされる。第二の暗号化済みデータは、第二の暗号化／復号化モジュール４００Ｂから出力され、キャッシュメモリ３１６に書き込まれる。ディスクＩ／Ｆ３１５が、キャッシュメモリ３１６上の第二の暗号化済みデータを、ステップ１１０４で特定された論理ユニット３２２に書込む。なお、第二の暗号化済みデータの書込み先は、第一の暗号化済みデータが記憶されている論理ユニット３２２とは別の論理ユニットであっても良い。その場合には、例えば、ストレージシステム３００において、第一の暗号化済みデータが記憶されているＬＵ３２２のＬＵＮと、第二の暗号化済みデータが記憶されるＬＵ３２２のＬＵＮとが交換されても良い。
【０１１２】
ステップ１１０６で、ＳＶＰ３１７が、第一の暗号化／復号化モジュール４００Ａ内の鍵マッピングテーブル４６１に記録されている情報を、第二の暗号化／復号化モジュール４００Ｂ内の鍵マッピングテーブル４６１にコピーする（第一の暗号化／復号化モジュール４００Ａ内の鍵マッピングテーブル４６１それ自体が、第二の暗号化／復号化モジュール４００Ｂにコピーされてもよい）。
【０１１３】
ステップ１１０７で、ＳＶＰ３１７が、第二の暗号化／復号化モジュール４００Ｂ内のモジュール制御部４２０に、暗号化／復号化方式名と鍵名の変更指示を送信する。その変更指示に応答して、第二の暗号化／復号化モジュール４００Ｂ内のモジュール制御部４２０が、鍵マッピングテーブル４６１における、第一の暗号化／復号化方式の名称を第二の暗号化／復号化方式の名称に変更し、第一の鍵４６２の名称を、第二の鍵４６２の名称に変更する。
【０１１４】
ステップ１１０８で、ＳＶＰ３１７が、ポート−ＬＵマッピングテーブル３１２１及びＬＵ−ストレージマッピングテーブル３１２２の各々における、第一の暗号化／復号化モジュール４００Ａに対応したモジュールＩＤ（例えば“モジュールＡ”）を、第二の暗号化／復号化モジュール４００Ｂに対応したモジュールＩＤ（例えば“モジュールＢ”）に変更する。なお、このステップ１１０８において、ＳＶＰ３１７が、暗号化／暗号化方式を変更することで、暗号化／復号化方式が退行するか否かをチェックし、退行するとの判断になれば（例えば、変更後の暗号化／復号化方式の方が変更前の暗号化／復号化方式よりも旧式であるとの判断になれば）、管理端末６００に警告メッセージを送っても良い。
【０１１５】
以上が、暗号化／復号化方式の変更処理の説明である。この暗号化／復号化方式の変更処理によれば、論理ユニット３２２に記憶されている暗号化済みデータ及び今後記憶されるデータの暗号化／復号化方式を、その論理ユニット３２２を有する一つのストレージシステム３００内で、第一の暗号化／暗号化方式から第二の暗号化／復号化方式に変更することができる。そして、その変更を、非暗号化データをストレージシステム３００の外に出すことなく行うことができる。
【０１１６】
なお、暗号化／復号化方式の変更処理において、ＳＶＰ３１７が行う処理の一部又は全部を、第一の暗号化／復号化モジュール４００Ａが、単独で、或いは、ＳＶＰ３１７又は第二の暗号化／復号化モジュール４００Ｂと協働して行っても良いし、第二の暗号化／復号化モジュール４００Ｂが、単独で、或いは、ＳＶＰ３１７又は第一の暗号化／復号化モジュール４００Ｂと協働して行っても良い。
【０１１７】
図１４は、データマイグレーション処理の概要を示す。図１５は、データマイグレーション処理の流れの一例を示す。以下、図１４及び図１５を参照して、暗号化／復号化方式の変更処理を説明する。
【０１１８】
第一のストレージシステム（マイグレーション元のストレージシステム）３００ＡにおけるホストＩ／Ｆ３１１Ａのポート３１１１Ａと、第二のストレージシステム（マイグレーション先のストレージシステム）３００ＢにおけるホストＩ／Ｆ３１１Ｂのポート３１１１Ｂとが、ケーブルで接続される。なお、以下、第一のストレージシステム３００Ａに存在するＳＶＰ３１７を「第一のＳＶＰ３１７」と呼び、第二のストレージシステム３００Ｂに存在するＳＶＰ３１７を「第二のＳＶＰ３１７」と呼ぶ。
【０１１９】
第一のストレージシステム３００Ａに、第一の暗号化／復号化モジュール４００Ａが接続されている。第一の暗号化／復号化モジュール４００Ａには、第一の暗号化／復号化方式での暗号化や復号化を行う第一の暗号化／復号化エンジン４７０Ａと、第一の鍵４６２Ａと、鍵マッピングテーブル４６１とがある。第一のストレージシステム３００Ａに存在する全てのＬＵには、第一の鍵４６２Ａを用いて第一の暗号化／復号化方式を使用して暗号化されたデータである第一の暗号化済みデータが記憶されている。図１４には、第一のＬＵ３２２Ａを代表的に示している。
【０１２０】
第一のストレージシステム３００Ａに、第二の暗号化／復号化モジュール４００Ｂが接続される。第二の暗号化／復号化モジュール４００Ｂには、第一の暗号化／復号化方式での暗号化や復号化を行う第一の暗号化／復号化エンジン４７０Ａと、第一の鍵４６２Ａと、鍵マッピングテーブル４６１とがある。
【０１２１】
ステップ１３０１で、第一のＳＶＰ３１７が、管理端末６００から、第一のストレージシステム３００Ａから第二のストレージシステム３００Ｂへのマイグレーション指示を受ける。
【０１２２】
ステップ１３０２で、第一のＳＶＰ３１７が、そのマイグレーション指示に応答して、第一の暗号化／復号化モジュール４００Ａ内の鍵マッピングテーブル４６１に記録されている情報を、第二の暗号化／復号化モジュール４００Ｂ内の鍵マッピングテーブル４６１にコピーする（第一の暗号化／復号化モジュール４００Ａ内の鍵マッピングテーブル４６１それ自体が、第二の暗号化／復号化モジュール４００Ｂにコピーされてもよい）。
【０１２３】
ステップ１３０３で、第一のＳＶＰ３１７が、共有メモリ３１２に記憶されているポート−ＬＵマッピングテーブル３１２１及びＬＵ−ストレージマッピングテーブル３１２２を、第二の暗号化／復号化モジュール４００Ｂにコピーする。
【０１２４】
ステップ１３０４で、第一のＳＶＰ３１７が、第二の暗号化／復号化モジュール４００Ｂに、今回のマイグレーションを識別するための情報であるマイグレーションＩＤを送信する。第二の暗号化／復号化モジュール４００Ａにおけるモジュール制御部４２０が、そのマイグレーションＩＤを、処理定義記憶部４４０に書込む。なお、マイグレーションＩＤは、例えば、認証用の情報として使用することができる（例えば、マイグレーションＩＤは、認証用のＩＤとパスワードで構成することができる）。
【０１２５】
ステップ１３０５で、第一のＳＶＰ３１７が、第二のストレージシステム３００Ｂと接続されているポート３１１１Ａに対応した復号化有無３１２３２（復号化制御テーブル３１２３に記録されている、ポート３１１１ＡのポートＩＤ３１２３１に対応した復号化有無３１２３２）を、“Yes”から“No”に変更する。
【０１２６】
ステップ１３０６で、第一のストレージシステム３００Ａ内の各ＬＵに存在するデータが、第二のストレージシステム３００Ｂ内の各ＬＵにマイグレーションされる。具体的には、例えば、第一のストレージシステム３００Ａ内の各ＬＵと第二のストレージシステム３００Ｂ内の各ＬＵとの間で各ＬＵペアが形成され、ＬＵペアを構成するＬＵ間で、データがマイグレーションされる。例えば、第一のＬＵ３２２Ａと第二のＬＵ３２２Ｂとの間でＬＵペアが構成されており、第一のＬＵ３２２Ａから第二のＬＵ３２２Ｂにデータがマイグレーションされる。
【０１２７】
このマイグレーションは、例えば、第一のＳＶＰ３１７が、ポート３１１１Ａに対応した復号化有無３１２３２を“Ｎｏ”に設定した場合に、ホストＩ／Ｆ３１１Ａにマイグレーションを指示することで、開始される。ホストＩ／Ｆ３１１Ａは、その指示に応答して、共有メモリ３１２に記憶されている図示しないマイグレーション構成情報（例えば、どのＬＵとどのＬＵでＬＵペアが構成されているかを表す情報）を参照し、そのマイグレーション構成情報を基に、マイグレーションを行う。なお、そのマイグレーションでは、データが、ポート３１１１Ａから出力されることになるが、ポート３１１１Ａに対応した復号化有無３１２３２は“Ｎｏ”であるため、ホストＩ／Ｆ３１１Ａは、ＬＵ３２２から読み出された暗号化済みデータを復号化することなく（つまり、第一の暗号化／復号化モジュール４００Ａに復号化を指示することなく）、第二のストレージシステム３００Ｂに転送する。第二のストレージシステム３００Ｂでは、ホストＩ／Ｆ３１１Ｂが、暗号化済みデータを受信する。その暗号化済みデータは、第二のストレージシステム３００ＢおけるＬＵに記憶される。
【０１２８】
ステップ１３０７で、第一のストレージシステム３００Ａから第二の暗号化／復号化モジュール４００Ｂが取り外され、第二のストレージシステム３００Ｂに、その第二の暗号化／復号化モジュール４００Ｂが接続される。
【０１２９】
ステップ１３０８で、第二のＳＶＰ３１７が、第二の暗号化／復号化モジュール４００Ｂについて接続認証を行う。なお、接続認証が行われるまでの流れは、図７を参照して説明した通りである。その際、第二のＳＶＰ３１７は、第二の暗号化／復号化モジュール４００ＢにマイグレーションＩＤが記憶されているか否かを判定し、記憶されている場合には、そのマイグレーションＩＤに適合する情報（例えば認証用のＩＤとパスワード）がユーザから入力された場合に、接続認証とすることができる。
【０１３０】
ステップ１３０９で、第二のＳＶＰ３１７が、第二の暗号化／復号化モジュール４００Ｂに記憶されている鍵マッピングテーブル４６１を基に（例えばそのテーブル４６１における暗号化対象４６１４を基に）、第一のストレージシステム３００Ａにおける第一のＬＵ構成と第二のストレージシステム３００Ｂにおける第二のＬＵ構成との整合性の有無を判定する。整合性が無いとの判定になれば、例えば、第二のＳＶＰ３１７が、第二のＳＶＰ３１７と通信可能な管理端末６００に、マイグレーション元とマイグレーション先とでＬＵ構成の整合性が無いことを通知する。整合性が有るとの判定になれば、ステップ１３１０にすすむ。なお、ステップ１３０９では、例えば、第一のストレージシステム（移行元のストレージシステム）４００Ａにおける第一のＬＵ構成に対して、マイグレーション対象のＬＵのそれぞれについて、第二のストレージシステム（移行先のストレージシステム）４００Ｂ内に対応するＬＵが定義されている場合に、整合性が有るとの判定になる。
【０１３１】
ステップ１３１０で、第二のＳＶＰ３１７が、第二の暗号化／復号化モジュール４００Ｂに記憶されているポート−ＬＵマッピングテーブル３１２１及びＬＵ−ストレージマッピングテーブル３１２２を、第二のストレージシステム３００Ｂにおける共有メモリ３１２にロードする。
【０１３２】
ステップ１３１１で、第二のＳＶＰ３１７が、共有メモリ３１２にロードされたＬＵ−ストレージマッピングテーブル３１２２におけるディスクＩＤ３１２２２及びアドレス３１２２３を、第二のストレージシステム３００Ｂにおける各ＬＵ３２２と各記憶装置３２１との関係に基づいて変更する。
【０１３３】
ステップ１３１２で、第二のＳＶＰ３１７が、第二の暗号化／復号化モジュール４００Ｂに記憶されているマイグレーションＩＤを削除する。
【０１３４】
以上が、データマイグレーション処理についての説明である。このデータマイグレーション処理によれば、暗号化済みデータの復号化と再暗号化は不要である。また、非暗号化データを第一のストレージシステム３００Ａの外に出す必要も無い。
【０１３５】
なお、上記のデータマイグレーション処理において、第一又は第二のＳＶＰ３１７が行う処理の一部又は全部を、第一又は第二の暗号化／復号化モジュール４００Ａ又は４００Ｂが、単独で、或いは、第一又は第二のＳＶＰ３１７或いは第一又は第二の暗号化／復号化モジュール４００Ａ又は４００Ｂと協働して行っても良い。
【０１３６】
また、上述した、データマイグレーション処理の説明では、説明を分かり易くするために、第一のストレージシステム３００Ａに存在する全てのＬＵ内のデータが、第一の暗号化／復号化モジュール４００Ａで暗号化されているデータであるとしている。しかし、第一のストレージシステム３００Ａに存在する複数のＬＵには、第一の暗号化／復号化モジュール４００Ａとは別の暗号化／復号化モジュールを用いて暗号化されたデータを記憶するＬＵが混在しても良い。この場合には、例えば、第一の暗号化／復号化モジュール４００Ａと別の暗号化／復号化モジュールのそれぞれについて、鍵マッピングテーブル４６１のコピーなどが行われる。
【０１３７】
また、上述したデータマイグレーション処理において、鍵マッピングテーブル４６１に加えて、第一の鍵４６２Ａそれ自体も、第一の暗号化／復号化モジュール４００Ａから第二の暗号化／復号化モジュール４００Ｂにコピーされても良い。また、第一の暗号化／復号化方式を行う第一の暗号化／復号化プログラムが第一の暗号化／復号化モジュール４００Ａに記憶されているならば、その第一の暗号化／復号化プログラムが、第一の暗号化／復号化モジュール４００Ａから第二の暗号化／復号化モジュール４００Ｂにコピーされても良い。
【０１３８】
また、例えば、暗号化／復号化方式の変更処理と、データマイグレーション処理とが組み合わされても良い。具体的には、例えば、図１６Ａに示すように、第一のストレージシステム３００Ａにおいて、暗号化／復号化方式の変更処理が行われた後に（第一の暗号化／復号化モジュール４００Ａによる第一の暗号化／復号化方式から、第二の暗号化／復号化モジュール４００Ｂによる第二の暗号化／復号化方式に変更された後に）、データマイグレーション処理が行われても良い（例えば、第二の暗号化／復号化モジュール４００Ｂ内の鍵マッピングテーブル４６１が第三の暗号化／復号化モジュール４００Ｃにコピーされ、その第三の暗号化／復号化モジュール４００が、第一のストレージシステム３００Ａから取り外されて第二のストレージシステム３００Ｂに接続されても良い）。或いは、例えば、図１６Ｂに示すように、図１４及び図１５を参照して説明したデータマイグレーション処理が行われた後に、第二のストレージシステム３００Ｂにおいて、暗号化／復号化の変更処理が行われても良い（すなわち、第二の暗号化／復号化モジュール４００Ｂによる第一の暗号化／復号化方式から、第三の暗号化／復号化モジュール４００Ｃによる第二の暗号化／復号化方式に変更されてもよい）。
【０１３９】
以上、本発明の好適な実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【０１４０】
例えば、コネクタ８１４には、暗号化／復号化モジュール４００に限らず、他種の装置、例えば、リムーバブルの記憶装置３２１が接続されても良い。そのリムーバブルの記憶装置３２１は、例えば、リペア用、バックアップ用など、種々の用途に使用されても良い。
【０１４１】
また、例えば、ＳＶＰ３１７が行う処理は、ホストＩ／Ｆ３１１及び／又はストレージＩ／Ｆ３１５にあるプロセッサが行っても良い。
【０１４２】
また、ストレージシステム３００に限らず、他の場所、例えば、ホスト計算機１００で暗号化や復号化が行われても良い。すなわち、ホスト計算機との間で入出力されるデータが暗号化済みであって、ストレージシステム３００に接続された暗号化／復号化モジュール４００で更に暗号化されてもよい。
【０１４３】
また、例えば、暗号化／復号化モジュール４００が暗号化／復号化エンジン４７０を備えることに代えて、所定の暗号化／復号化方式で暗号化や復号化を行う暗号化／復号化プログラムが記憶されても良い。この場合、例えば、ストレージ制御部３１０に存在するプロセッサが、その暗号化／復号化プログラムを実行することで、暗号化／復号化を行っても良い。
【０１４４】
また、例えば、ＳＶＰ３１７は、暗号化／復号化モジュール４００が取り外されたことを検出した場合、図１７に例示するように、取り外された暗号化／復号化モジュール４００に対応するＬＵ３２２をテーブル３１２１及び３１２２から特定し（ステップ１７０１）、特定されたＬＵ３２２に対するアクセスを禁止する（ステップ１７０２）。そのＬＵ３２２に書き込まれるデータを暗号化することや、記憶済みの暗号化済みデータを復号化することができなくなってしまうためである。アクセスを禁止する方法としては、例えば、ＳＶＰ３１７が、ホストＩ／Ｆ３１１のメモリ３１２３に、その特定されたＬＵ３２２のＬＵＮを記録し、そのホストＩ／Ｆ３１１が、そのＬＵＮを指定した書込み要求或いは読出し要求をホスト計算機２００から受けた場合には、エラーをホスト計算機２００に返す方法を採用することができる。
【図面の簡単な説明】
【０１４５】
【図１】図１は、本発明の一実施形態に係る計算機システムの構成を示す。
【図２】図２は、暗号化／復号化モジュールの構成例を示す。
【図３】図３は、鍵マッピングテーブルの構成例を示す。
【図４】図４は、LU−ストレージマッピングテーブルの構成例を示す。
【図５】図５は、ポート−LUマッピングテーブルの構成例を示す。
【図６】図６は、復号化制御テーブルの構成例を示す。
【図７】図７は、暗号化／復号化モジュールがストレージシステムに物理的に接続された場合に行われる処理の流れの一例を示す。
【図８】図８は、鍵設定処理の流れの一例を示す。
【図９】図９は、ホスト計算機から受信した書込み要求に応答して行われる書込み処理の流れの一例を示す。
【図１０】図１０は、ホスト計算機から受信した読出し要求に応答して行われる読出し処理の流れの一例を示す。
【図１１】図１１は、格納データ暗号化処理の流れの一例を示す。
【図１２】図１２は、暗号化／復号化方式の変更処理の概要を示す。
【図１３】図１３は、暗号化／復号化方式の変更処理の流れの一例を示す。
【図１４】図１４は、データマイグレーション処理の概要を示す。
【図１５】図１５は、データマイグレーション処理の流れの一例を示す。
【図１６】図１６Ａは、暗号化／復号化方式の変更とデータのマイグレーションとの両方が行われる第一の例を示す。図１６Ｂは、暗号化／復号化方式の変更とデータのマイグレーションとの両方が行われる第二の例を示す。
【図１７】図１７は、アクセス制御処理の流れの一例を示す。
【符号の説明】
【０１４６】
１００…ホスト計算機  ３００…ストレージシステム  ３１０…ストレージ制御部  ４００…暗号化／復号化モジュール
【図１】
2009032038.tif 000003
【図２】
2009032038.tif 000004
【図３】
2009032038.tif 000005
【図４】
2009032038.tif 000006
【図５】
2009032038.tif 000007
【図６】
2009032038.tif 000008
【図７】
2009032038.tif 000009
【図８】
2009032038.tif 000010
【図９】
2009032038.tif 000011
【図１０】
2009032038.tif 000012
【図１１】
2009032038.tif 000013
【図１２】
2009032038.tif 000014
【図１３】
2009032038.tif 000015
【図１４】
2009032038.tif 000016
【図１５】
2009032038.tif 000017
【図１６】
2009032038.tif 000018
【図１７】
2009032038.tif 000019