(57)【特許請求の範囲】
【請求項１】
１以上の計算機と各々第一の暗号処理部を介して接続する複数のホストインターフェースと、前記複数のホストインターフェースと接続し第二の暗号処理部を有する転送制御部と、を含む第一のインターフェース部と、
前記第一の暗号処理部にてデータパケットの暗号化の処理を実行する第一の条件と、前記第二の暗号処理部にてデータパケットの暗号化の処理を実行する第二の条件を示す情報を格納するメモリ部と、
ディスク装置と、
前記ディスク装置と接続する第二のインターフェース部と、
前記第一のインターフェース部と、前記第二のインターフェース部と、前記メモリ部と、が接続する相互結合網と、を有し、
データパケットが前記第一の条件を満たす第一のデータパケットである場合は、前記複数のホストインターフェースに含まれるいずれかのホストインターフェースが前記第一のデータパケットを前記１以上の計算機との通信用のプロトコルのデータパケットに変換し、前記第一のデータパケットを変換する前記ホストインターフェースに接続する前記第一の暗号処理部が、第一の暗号化アルゴリズムにより前記変換した第一のデータパケットを暗号化し、
データパケットが前記第二の条件を満たす第二のデータパケットである場合は、前記第二の暗号処理部が前記第一の暗号化アルゴリズムとは異なる第二の暗号化アルゴリズムにより前記第二のデータパケットを暗号化し、前記複数のホストインターフェースに含まれるいずれかのホストインターフェースが前記暗号化された第二のデータパケットを前記１以上の計算機との通信用のプロトコルのデータパケットに変換する、ことを特徴とするストレージシステム。
【請求項２】
前記メモリ部が、前記第一の暗号処理部にてデータパケットの復号化の処理を実行する第三の条件と、前記第二の暗号処理部にてデータパケットの復号化の処理を実行する第四の条件を示す情報を格納し、
データパケットが前記第三の条件を満たす第三のデータパケットである場合は、前記第三のデータパケットを受信するホストインターフェースに接続する前記第一の暗号処理部が、前記第一の暗号化アルゴリズムにより前記第三のデータパケットを復号化し、
データパケットが前記第四の条件を満たす第四のデータパケットである場合は、前記第二の暗号処理部が前記第一の暗号化アルゴリズムとは異なる前記第二の暗号化アルゴリズムにより前記第四のデータパケットを復号化する、ことを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記メモリ部は、前記１以上の計算機または前記ディスク装置との間で読み出し又は書き込まれるデータを格納するキャッシュメモリ及び制御情報を格納する制御メモリを有し、
前記第一のインターフェース部及び第二のインターフェース部は、前記１以上の計算機と前記ディスク装置との間で転送されるデータの該ストレージシステム内での転送を制御する複数のマイクロプロセッサを有することを特徴とする請求項１記載のストレージシステム。
【請求項４】
データパケットのパケットサイズが所定のパケットサイズより小さい場合は前記第一の条件を満たし、データパケットのパケットサイズが所定のパケットサイズより大きい場合は前記第二の条件を満たす、ことを特徴とする請求項１記載のストレージシステム。
【請求項５】
前記１以上の計算機は第一の計算機と第二の計算機とを含み、
データパケットの発信先が前記第一の計算機である場合は前記第一の条件を満たし、データパケットの発信先が前記第二の計算機である場合は前記第二の条件を満たす、ことを特徴とする請求項１記載のストレージシステム。
【請求項６】
さらに、管理端末を有し、
前記管理端末より、前記１以上の計算機のうちいずれの計算機が前記第一の計算機又は前記第二の計算機に含まれるかを指定する、ことを特徴とする請求項５記載のストレージシステム。
【請求項７】
他のストレージシステムと前記第一のインターフェース部を介して接続し、
前記ディスク装置に格納されるデータを前記他のストレージシステムにコピーし、
前記計算機に送信されるデータパケットは前記第一の条件を満たし、前記他のストレージ装置に送信されるデータパケットは前記第二の条件を満たす、ことを特徴とする請求項１記載のストレージシステム。
【請求項８】
請求項１に記載のストレージシステムであって、
前記第一の暗号化アルゴリズムにはブロック暗号を用い、前記第二の暗号化アルゴリズムにはストリーム暗号を用いる、ことを特徴とするストレージシステム。
【請求項９】
１以上の計算機と接続し各々第一の暗号処理部を有する複数のホストインターフェースと、前記複数のホストインターフェースと接続し第二の暗号処理部を有する転送制御部と、を含む第一のインターフェース部と、
前記第一の暗号処理部にてデータパケットの暗号化の処理を実行する第一の条件と、前記第二の暗号処理部にてデータパケットの暗号化の処理を実行する第二の条件を示す情報を格納するメモリ部と、
ディスク装置と、
前記ディスク装置と接続する第二のインターフェース部と、
前記第一のインターフェース部と、前記第二のインターフェース部と、前記メモリ部と、が接続する相互結合網と、を有し、
データパケットが前記第一の条件を満たす第一のデータパケットである場合は、前記複数のホストインターフェースに含まれるいずれかのホストインターフェースが前記第一のデータパケットを前記１以上の計算機との通信用のプロトコルのデータパケットに変換し、前記第一のデータパケットを変換する前記ホストインターフェースが有する前記第一の暗号処理部が、第一の暗号化アルゴリズムにより前記変換した第一のデータパケットを暗号化し、
データパケットが前記第二の条件を満たす第二のデータパケットである場合は、前記第二の暗号処理部が前記第一の暗号化アルゴリズムとは異なる第二の暗号化アルゴリズムにより前記第二のデータパケットを暗号化し、前記複数のホストインターフェースに含まれるいずれかのホストインターフェースが前記暗号化された第二のデータパケットを前記１以上の計算機との通信用のプロトコルのデータパケットに変換する、ことを特徴とするストレージシステム。
【請求項１０】
前記メモリ部が、前記第一の暗号処理部にてデータパケットの復号化の処理を実行する第三の条件と、前記第二の暗号処理部にてデータパケットの復号化の処理を実行する第四の条件を示す情報を格納し、
データパケットが前記第三の条件を満たす第三のデータパケットである場合は、前記第三のデータパケットを受信するホストインターフェースに接続する前記第一の暗号処理部が、前記第一の暗号化アルゴリズムにより前記第三のデータパケットを復号化し、
データパケットが前記第四の条件を満たす第四のデータパケットである場合は、前記第二の暗号処理部が前記第一の暗号化アルゴリズムとは異なる前記第二の暗号化アルゴリズムにより前記第四のデータパケットを復号化する、ことを特徴とする請求項９に記載のストレージシステム。
【請求項１１】
前記メモリ部は、前記１以上の計算機または前記ディスク装置との間で読み出し又は書き込まれるデータを格納するキャッシュメモリ及び制御情報を格納する制御メモリを有し、
前記第一のインターフェース部及び第二のインターフェース部は、前記１以上の計算機と前記ディスク装置との間で転送されるデータの該ストレージシステム内での転送を制御する複数のマイクロプロセッサを有する、ことを特徴とする請求項９記載のストレージシステム。
【請求項１２】
データパケットのパケットサイズが所定のパケットサイズより小さい場合は前記第一の条件を満たし、データパケットのパケットサイズが所定のパケットサイズより大きい場合は前記第二の条件を満たす、ことを特徴とする請求項９記載のストレージシステム。
【請求項１３】
前記１以上の計算機は第一の計算機と第二の計算機とを含み、
データパケットの発信先が前記第一の計算機である場合は前記第一の条件を満たし、データパケットの発信先が前記第二の計算機である場合は前記第二の条件を満たす、ことを特徴とする請求項９記載のストレージシステム。
【請求項１４】
さらに、管理端末を有し、
前記管理端末より、前記１以上の計算機のうちいずれの計算機が前記第一の計算機又は前記第二の計算機に含まれるかを指定する、ことを特徴とする請求項１３記載のストレージシステム。
【請求項１５】
他のストレージシステムと前記第一のインターフェース部を介して接続し、
前記ディスク装置に格納されるデータを前記他のストレージシステムにコピーし、
前記計算機に送信されるデータパケットは前記第一の条件を満たし、前記他のストレージ装置に送信されるデータパケットは前記第二の条件を満たす、ことを特徴とする請求項９記載のストレージシステム。
【請求項１６】
請求項９に記載のストレージシステムであって、
前記第一の暗号化アルゴリズムにはブロック暗号を用い、前記第二の暗号化アルゴリズムにはストリーム暗号を用いる、ことを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの暗号化（又は復号化）処理（以下、まとめて「暗号処理」とも言う）を行い、計算機（以下「サーバ」）または他の記憶装置システム（以下「ストレージシステム」とも言う）との間で機密性の高い（以下「セキュア」とも言う）データ通信が可能なストレージシステムに関する。
【背景技術】
【０００２】
従来、サーバとストレージシステムとの間のデータ通信に使用されるインターフェースとしてファイバチャネル（以下「ＦＣ」とも言う）・インターフェースが最も普及していた。しかしながら、近年イーサネット（富士ゼロックスの登録商標）を用いてＦＣと同等以上の通信速度を低価格で実現できるようになった。また、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）プロトコルによるデータ通信をＩＰ(Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ)ネットワーク上で実現するｉＳＣＳＩ(ｉｎｔｅｒｎｅt  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ)技術の登場により、従来はＦＣで構築されていたストレージ・エリア・ネットワーク（以下「ＳＡＮ」とも言う）をイーサネット等のＩＰネットワークで構築できるようになった。
【０００３】
しかし、ＦＣのネットワークが一会社内等の閉じた環境で使用されるのに対して、ＩＰネットワークは企業内外の一般のネットワークとして普及しており、より開放的な環境で使用される。そのため、ＩＰネットワークに接続される機器は、悪意を持った第三者に攻撃される可能性が極めて高い。したがって、ストレージシステムをＩＰネットワークに接続して使用する際には、ストレージシステム自身におけるセキュリティ対策が必須となる。
【０００４】
セキュリティ対策の１つとして、ＩＰネットワーク上で安全にデータ通信を行うためのデータ暗号化の技術をストレージシステムに採用することが考えられている。現在、ＩＰネットワーク上で安全かつセキュアにデータ通信を行うための暗号化通信のプロトコルとしては、インターネットの標準化団体であるＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）がＶＰＮ(Ｖｉｒｔｕａｌ  Ｐｒｏｖａｔｅ  Ｎｅｔｗｏｒｋ)の標準プロトコルとして規定したＩＰｓｅｃ（非特許文献１に開示）が最も一般的である。
【０００５】
ストレージシステムにおける暗号処理の実装方法としては、図１９に示すように、チャネルＩＦ部１２内のホストＩＦ１０１の前段に暗号処理を行う暗号処理部２１０を設けるか、ホストＩＦ１０１内に暗号処理部を配置していた(図示していない)。
【０００６】
【非特許文献１】ＲＦＣ２４０６
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ＩＰＳｅｃで採用されている暗号化アルゴリズムは、ブロック暗号と総称される暗号である。ブロック暗号とは、不定長の平文を先頭から一定の長さごとに区切ってブロックを作成し、ブロック単位に暗号化を行う方式である。このため、１個の暗号処理回路で実現できる暗号処理速度が最大で数Ｇｂｐｓ(Ｇｉｇａ  ｂｉｔ  ｐｅｒ  ｓｅｃｏｎｄ)程度である。
【０００８】
ところが、ストレージシステムでは現在、サーバとの間でのデータ転送速度が１チャネル当り１Ｇｂｐｓであり、数年後には１０Ｇｂｐｓのデータ転送速度への移行が始まると予測されている。したがって、ブロック暗号を使った場合、１０Ｇｂｐｓのデータ転送速度に対応するには、複数の暗号処理回路で並列に暗号処理を行う必要が生じる。
【０００９】
また、ＩＰプロトコルではデータを１ｋＢ程度の小さな長さのパケットに分割して送信する。そして、ＩＰｓｅｃではＩＰプロトコルのデータパケットの単位で暗号化処理を行う。したがって、大量のデータの送受信が必要となるストレージシステムでは、暗号化処理の効率が悪くなる。ここで、ＩＰプロトコルにおいてデータの転送効率を上げるため、ジャンボパケットと呼ばれる１０ｋＢ程度のデータ長の長いパケットをデータ通信に使うことも考えられる。しかしながら、データ長の長いパケットをデータ通信に使う場合も、データ通信の合間に制御用のパケットが多く混在するために平均のパケット長が１ｋＢ程度になってしまい、暗号処理の効率が上がらない。
【００１０】
特に、大量のデータを短時間で送信することが要求されるストレージシステム間でのデータのコピー、すなわちリモートコピーあるいはバックアップの際にこの暗号処理の効率が上がらないことがシステムにおける性能のボトルネックになりうる。
【課題を解決するための手段】
【００１１】
上述した課題を解決するために、本発明の一実施態様は以下の構成を有する。具体的には、計算機との接続部を有する第一のインターフェース部、ディスク装置との接続部を有する第二のインターフェース部、メモリ部と，ディスク装置群を有し、第一のインターフェース部、第二のインターフェース部、メモリ部の間が相互結合網により互いに接続された構成のストレージシステムであって、第一のインターフェース部が、前記計算機に送信するデータを暗号処理する暗号処理部を有する構成である。
【００１２】
そして、第一のインターフェース部は、計算機と接続される第一の接続部と、相互結合網に接続される第二の接続部とを有しており、暗号処理部は第一の接続部と相互結合網との間に設ける構成とする。
また、暗号処理部の暗号化アルゴリズムとしては、ストリーム暗号が望ましい。
【００１３】
また本発明の他の実施態様として、以下の構成がある。具体的には、異なる暗号化アルゴリズムを有する２種類の暗号処理部を有するストレージシステムである。すなわち、計算機との接続部を有する第一のインターフェース部、ディスク装置との接続部を有する第二のインターフェース部、メモリ部と、ディスク装置群を有し、第一のインターフェース部、第二のインターフェース部、メモリ部の間が相互結合網により互いに接続されたストレージシステムであって、第一のインターフェース部は、計算機と接続される第一の接続部及び相互結合網に接続される第二の接続部と、計算機との間で読み出しまたは書き込まれるデータを暗号処理する第一の暗号処理部及び第一の暗号処理部とは暗号化アルゴリズムが異なる第二の暗号処理部を有する構成である。
【００１４】
そして、第一の暗号処理部は計算機と第一の接続部との間に、第二の暗号処理部は第一の接続部と相互結合網との間に設ける構成とする。
尚、第一の暗号処理部の暗号化アルゴリズムとしてはブロック暗号、第二の暗号処理部の暗号化アルゴリズムとしてはストリーム暗号が望ましい。
【００１５】
その他、本願が開示する課題、及びその解決方法は、発明の実施形態の欄及び図面により明らかにされる。
【発明の効果】
【００１６】
本発明によれば、セキュア且つ高速なデータ転送やデータ蓄積を可能とするストレージシステムを提供することが可能となる。
【発明を実施するための最良の形態】
【００１７】
図１は、第一の実施形態のストレージシステムを含むシステムの構成例を示す図である。システムは、ストレージシステム１及びサーバ３とを有する。以下、ストレージシステム１とサーバ３とは、ＩＰネットワークを介して相互に接続されているとして説明する。ただし、それ以外のネットワーク、例えばＦＣネットワークなど、他のネットワークであっても良い。ストレージシステム１は、複数の記憶媒体（ハードディスクドライブ、光ディスク、半導体メモリ等）と制御部とを有する記憶装置である。ストレージシステム１は、サーバ３とのデータの送受信を行うチャネルインターフェース（ＩＦ）部１１、ハードディスク群２とのデータの送受信を行うディスクＩＦ部１６、スイッチ部５１、メモリ部２１、及びハードディスク群２を有する。チャネルＩＦ部１１及びディスクＩＦ部１６はスイッチ部５１を介してメモリ部２１に接続されている。
【００１８】
また、ストレージシステム１には管理端末８が接続され、ストレージシステム１の構成設定、監視、稼動情報・障害情報等の収集を行う。管理端末８はストレージシステム１内のチャネルＩＦ部１１及びディスクＩＦ部１６内のマイクロプロセッサ１００にネットワークを介して接続される。
【００１９】
チャネルＩＦ部１１、ディスクＩＦ部１６及びメモリ部２１は、２つのスイッチ部５１と１本ずつの通信パスで各々接続される。ここで、通信パスとはデータや制御情報を伝送するための単数又は複数の信号線から成る伝送路である。これにより、チャネルＩＦ部１１、ディスクＩＦ部１６及びメモリ部２１のそれぞれの間で２つの通信経路を確保し、ストレージシステムの信頼性をあげることが可能となる。なお、ここで、上記個数や本数は一実施形態に過ぎず、個数を上記に限定するものではない。このことは以下に説明する実施形態全てに当てはまる。
【００２０】
また、本実施形態では、チャネルＩＦ部１１、ディスクＩＦ部１６及びメモリ部２１との間をスイッチ部５１を介して接続する例を示したが、これらの各部が相互に接続され制御情報やデータが転送されれば良いのであり、例えばバスを介して各部位を相互に接続しても良い。
【００２１】
メモリ部２１は、メモリモジュール１２７及びメモリコントローラ１２５を有する。メモリモジュール１２７は論理的に２つの領域に分けられている。１つの領域はキャッシュメモリ領域で、ハードディスク群２に書き込まれるデータまたはハードディスク群２から読み出されたデータが一時的に格納（以下「キャッシング」）される領域である。もう１つの領域は制御メモリ領域で、キャッシュメモリ領域のディレクトリ情報（キャッシュメモリ上のデータを格納する論理的な区画に関する情報）、チャネルＩＦ部１１、ディスクＩＦ部１６及びメモリ部２１間のデータ転送を制御するための情報、ストレージシステム１の管理情報並びに構成情報等が格納される領域である。メモリコントローラ１２５は、メモリモジュール１２７へのデータの読み出しと書き込み（以下「リード／ライト」）の処理を制御する。
【００２２】
また、メモリコントローラ１２５は、チャネルＩＦ部１１、ディスクＩＦ部１６及び他のメモリ部２１との間のデータ／制御情報の転送を制御する。
【００２３】
ここで、メモリモジュール１２７が物理的に２つのモジュール、具体的にはキャッシュメモリモジュールと制御メモリモジュールに分かれている構成も考えられる。この場合、メモリコントローラ１２５内で、２つのメモリモジュールへのデータのリード／ライトの処理を独立に制御する。また、メモリコントローラ１２５がキャッシュメモリモジュール制御用と制御メモリモジュール制御用に分離された構成でも良い。
【００２４】
ここで、ストレージシステム１の２つのメモリ部２１間で、メモリモジュールへ格納するデータや制御情報を二重化（複製して双方に格納）しても良い。こうすることにより、１つのメモリ部２１のメモリモジュールに障害が発生した場合、もう一方のメモリ部２１のメモリモジュールに格納されたデータで動作を継続することが可能となり、ストレージシステム１の信頼性が向上する。
【００２５】
尚、ハードディスク群２は、ストレージシステムが有する記憶媒体の例である。ハードディスク群２は、ディスクアレイのように複数のハードディスクドライブで構成され、又、ＲＡＩＤ構成であっても良い。
【００２６】
図２は、ディスクＩＦ１６の構成の具体例を示す図である。
ディスクＩＦ部１６は、ハードディスク群２と接続される４つのディスクＩＦ１０２、サーバ３やハードディスク群２とのデータの入出力制御及びメモリ部２１へのデータの入出力の制御を行うマイクロプロセッサ１００、及びメモリ部２１との間のデータ／制御情報の転送を制御する転送制御部１０６を有する。
【００２７】
ディスクＩＦ１０２は共通バス１０４を介して転送制御部１０６に接続される。また、マイクロプロセッサ１００は共通バス１０５を介して転送制御部１０６に接続される。
【００２８】
ここで、ディスクＩＦ１０２あるいはマイクロプロセッサ１００と転送制御部１０６の間の接続構成は一実施形態に過ぎず、構成を上記に限定するものではない。少なくとも、ディスクＩＦ１０２から転送制御部１０６を経て、メモリ部２１へデータを転送可能な構成であれば良い。また、マイクロプロセッサ１００がディスクＩＦ１０２及び転送制御部１０６を制御でき、マイクロプロセッサ１００がメモリ部２１へアクセスできる構成であれば良い。
【００２９】
マイクロプロセッサ１００は、メモリ部２１のメモリモジュール１２７内の制御メモリ領域に格納された制御情報に基づいて、メモリ部２１のメモリモジュール１２７内のキャッシュメモリ領域へのデータのリード／ライト、キャッシュメモリ領域のディレクトリ管理、ディスクＩＦ１０２とメモリ部２１との間のデータ転送を制御する。
【００３０】
具体的には、例えばチャネルＩＦ部１１内のマイクロプロセッサ１００は、メモリ部２１のメモリモジュール１２７内のキャッシュメモリ領域へのデータのリード／ライト要求を示す制御情報を、メモリ部２１のメモリモジュール１２７内の制御メモリ領域に書き込む。その後、ディスクＩＦ部１６内のマイクロプロセッサ１００はその制御情報を読み出して解釈し、ディスクＩＦ１０２からどのメモリ部２１へデータを転送するか（又はその逆）を示す制御情報及びそのデータ転送に必要なパラメータをディスクＩＦ１０２と転送制御部１０６へ送る。ディスクＩＦ１０２はその制御情報とパラメータに従い、転送制御部１０６へデータ転送の開始を指示する。ディスクＩＦ１０２からメモリ部２１へのデータ転送の場合、ディスクＩＦ１０２は転送制御部１０６へデータを転送し、転送制御部１０６はマイクロプロセッサ１００より受けた前述の制御情報及びそのデータ転送に必要なパラメータに従ってメモリ部２１へデータのライト要求を出すとともに、受信したデータを所定のまとまり毎にメモリ部２１へ転送する。メモリ部２１からディスクＩＦ１０２へのデータ転送の場合、転送制御部１０６はマイクロプロセッサ１００より受けた前述の制御情報及びそのデータ転送に必要なパラメータに従ってメモリ部２１へデータのリード要求を出し、メモリ部２１からのリードデータを受信し、受信したデータを所定のまとまり毎にディスクＩＦ１０２へ転送する。
【００３１】
またマイクロプロセッサ１００は、ディスクＩＦ１０２に接続されたハードディスク群２へ書き込むデータの冗長化処理、いわゆるＲＡＩＤ処理（ＲＡＩＤ１、ＲＡＩＤ４、ＲＡＩＤ５等）を実行する。このＲＡＩＤ処理は、チャネルＩＦ部１１やメモリ部２１において実行しても問題ない。更にマイクロプロセッサ１００は、ストレージシステム１における記憶領域の管理（論物変換等）も行う。
【００３２】
図３は、チャネルＩＦ１１の構成の具体例を示す図である。
チャネルＩＦ部１１は、サーバ３と接続される４つのホストＩＦ１０１、サーバ３とのデータの入出力制御及びメモリ部２１へのデータの入出力の制御を行うマイクロプロセッサ１００、メモリ部２１との間のデータ／制御情報の転送を制御する転送制御部１０３及びデータのバッファリングや制御情報の格納を行うメモリモジュール１２１を有する。
【００３３】
以下、ホストＩＦ１０１はｉＳＣＳＩプロトコルを処理するＩＦとして説明するが、それ以外のプロトコルを処理するＩＦであっても良い。
【００３４】
ホストＩＦ１０１は共通バス１０４を介して転送制御部１０３に接続される。また、メモリモジュール１２１は転送制御部１０３に接続される。転送制御部１０３は、メモリモジュール１２１へのデータ／制御情報のリード／ライトを制御するメモリコントローラとしても動作する。また、マイクロプロセッサ１００は共通バス１０５を介して転送制御部１０３に接続される。また、データ転送制御部１０３は、２つのスイッチ部５１と接続するための通信パスを２本有する。
【００３５】
ここで、ホストＩＦ１０１、マイクロプロセッサ１００、あるいはメモリモジュール１２１と転送制御部１０３の間の接続構成は一実施形態に過ぎず、構成を上記に限定するものではない。少なくとも、ホストＩＦ１０１から転送制御部１０３を経て、メモリ部２１へデータを転送可能な構成であれば良い。また、マイクロプロセッサ１００がホストＩＦ１０１及び転送制御部１０３を制御でき、マイクロプロセッサがメモリモジュール１２１、及びメモリ部２１へアクセスできる構成であれば良い。
【００３６】
マイクロプロセッサ１００は、メモリ部２１のメモリモジュール１２７内の制御メモリ領域に格納された制御情報に基づいて、メモリ部２１のメモリモジュール１２７内のキャッシュメモリ領域へのデータのリード／ライト、キャッシュメモリ領域のディレクトリ管理、ホストＩＦ１０１とメモリ部２１との間のデータ転送を制御する。
【００３７】
具体的には、例えばホストＩＦ１０１が、データのリードまたはライトのアクセス要求を示す制御情報をマイクロプロセッサ１００内の主記憶に書き込む。その後、マイクロプロセッサ１００はその制御情報を読み出して解釈し、ホストＩＦ１０１からどのメモリ部２１へデータを転送するかを示す制御情報及びそのデータ転送に必要なパラメータをホストＩＦ１０１と転送制御部１０３へ送る。ホストＩＦ１０１はその制御情報とパラメータに従い、転送制御部１０３へデータ転送の開始を指示する。ホストＩＦ１０１からメモリ部２１へのデータ転送の場合、ホストＩＦ１０１は転送制御部１０３へデータを転送し、転送制御部１０３はマイクロプロセッサ１００より受けた前述の制御情報及びそのデータ転送に必要なパラメータに従ってメモリ部２１へデータのライト要求を出すとともに、受信したデータを所定のまとまり毎にメモリ部２１へ転送する。メモリ部２１からホストＩＦ１０１へのデータ転送の場合、転送制御部１０３はマイクロプロセッサ１００より受けた前述の制御情報及びそのデータ転送に必要なパラメータに従ってメモリ部２１へデータのリード要求を出し、メモリ部２１からのリードデータを受信し、受信したデータを所定のまとまり毎にホストＩＦ１０１へ転送する。
【００３８】
また、マイクロプロセッサ１００は、ストレージシステム１における記憶領域の管理（論物変換等）も行う。
【００３９】
さらに、転送制御部１０３は、データの暗号化、復号化処理を行う暗号処理部２０１を有する。
ストレージシステム１は、サーバ３からデータのリード要求があった場合、データをメモリ部２１内のキャッシュメモリ領域（又はディスクドライブ群２）から読み出してサーバ３に送出する。ここでサーバ３とストレージシステム１との間のデータ転送にＩＰプロトコル（ｉＳＣＳＩを含む）が使用される場合、ストレージシステム１のチャネルＩＦ１１は、キャッシュメモリ領域から読み出したデータを一旦メモリモジュール１２１に格納する。その後チャネルＩＦ１１は、メモリモジュール１２１からホストＩＦ１０１へデータを転送し、ホストＩＦ１０１が、ＩＰプロトコルのパケットフォーマットに変換してデータをサーバ３に送出する。一旦メモリモジュール１２１に読み出したデータを格納する理由としては、ＩＰネットワーク上ではデータの再送が発生するため、その再送が発生した場合に備えるためである。すなわち、データを再送する場合、メモリモジュール１２１にデータを一時格納していないと、チャネルＩＦ１１が再度メモリ部２１等からデータを読み出す必要が生じ、データ再送時の性能が向上しないからである。これを防ぐため、チャネルＩＦ１１は、メモリモジュール１２１にデータを一時格納する。
【００４０】
本実施形態においては、チャネルＩＦ１１は、メモリ部２１のキャッシュメモリ領域から読み出したデータを、暗号処理部２０１で暗号化した後、メモリモジュール１２１に格納する。メモリモジュール１２１にデータを格納する前に格納するデータを暗号化する理由は、メモリモジュール１２１からホストＩＦ１０１へデータを転送する際に暗号化処理をすると、データ再送処理が発生するたびにデータの暗号化処理をすることになり、性能が向上しないためである。
【００４１】
サーバ３からデータのライト要求があった場合、チャネルＩＦ１１のホストＩＦ１０１は、受信したＩＰプロトコルのデータパケットからデータを取り出し、ストレージシステム１内のパケットフォーマットに変換して、メモリモジュール１２１へデータを送る。その後、転送制御部１０３の暗号処理部２０１はデータを復号化して、メモリ部２１へ転送する。
【００４２】
ストレージシステム１内のプロトコルでは、データパケットのサイズが数ｋＢ〜１０ｋＢ程度であり、ＩＰプロトコルで扱われるデータパケットのサイズ（平均長：１ｋＢ程度）に比べて大きい。このため、暗号処理部２０１を転送制御部１０３内に設ける（すなわちストレージシステム１内のプロトコルに変換した後での暗号処理）ことにより、図１９に示すホストＩＦ１０１の前段（サーバ３側）に設ける場合（すなわちＩＰプロトコルの段階における暗号処理）に比べて、暗号処理の性能を高くできる効果がある。
【００４３】
次に、データの暗号処理の詳細について説明する。
本実施形態では、データの暗号処理にストリーム暗号を用いる。
ストリーム暗号は、一般にブロック暗号に比べて処理効率に優れるため、ストレージシステムのように大量のデータ転送を行う場合には都合が良い。また、サイズが一定で無いデータを暗号化する場合、パディング処理（所定のサイズ長にデータが足らない場合、所定の値（例えば０）を埋めてデータ長を調整する処理）を行わなくて良いため、余分なオーバヘッドが無いという利点もある。
【００４４】
暗号を用いたデータの送受信においては、まず、通信を始める前に、通信相手と事前にやり取りを行い、秘密裏に鍵を共有する。このやり取りには、例えば、IKE (Internet Key Exchange: RFC2409)プロトコルなどを使えばよい。この鍵は、チャネルＩＦ部１１内のマイクロプロセッサ１００の主記憶、あるいはメモリ部２１内の制御メモリ領域に格納される。この事前のやり取りで共有した鍵を用いて、ストレージシステム１は暗号処理を行う。
【００４５】
一般に、データの暗号処理には、鍵として秘密パラメータ(以下「秘密鍵」)とともに公開パラメータ(以下「初期値」)が用いられる場合がある。安全性を考慮すると、鍵は処理ごとに変えることが望ましい。しかし、パケット処理ごとに鍵を交換するのは通信コストがかかるため、本実施形態では、鍵の一部を初期値とする。
【００４６】
暗号化に用いる鍵の初期値は、通信データに付加して通信相手に送信することで、相互に共有することができる。例えば、暗号処理部２０１の中にカウンタを保持し、暗号処理ごとに、このカウンタをインクリメントすることで、そのカウンタの値を初期値として利用する方法などが考えられる。これはＩＰＳｅｃ通信で使用されている。通信相手と鍵の初期値を共有するためには、ストレージシステム１やサーバ３が、このカウンタの値をＥＳＰ（Ｅｎｃａｐｓｕｌａｔｉｎｇ  Ｓｅｃｕｒｉｔｙ  Ｐａｙｌｏａｄ）ヘッダのシーケンス番号として通信相手に通知すればよい。ただし、ＥＳＰヘッダのシーケンス番号は３２ビットしかないので、シーケンス番号が繰り返しにならないうちに、適宜、秘密鍵を取り替える必要がある。
【００４７】
暗号処理部２０１は、暗号処理装置５０１及び復号処理装置７０１を有する。暗号処理装置５０１は、データの暗号化の処理を行う装置、復号処理装置は、暗号化されたデータを復号する処理を行う装置である。尚、別の実施形態として、一つの装置で暗号化や復号化を行う構成としても良い。
【００４８】
図１０は、暗号処理装置５０１の構成例を表した図である。暗号処理装置５０１は、各種データの入力を受け付ける入力部、暗号化したデータを出力する際の出力部、暗号処理装置５０１内の動作を制御する暗号処理制御装置５０８、カウンタ５０９、擬似乱数生成器５１０を有する。入力部は、秘密鍵データの入力を受け付ける入力部５０２、暗号化されるデータを受け付ける入力部５０４及びクロック信号の入力を受け付ける入力部５０５を有する。尚、暗号化されるデータには、データ長に関する情報が含まれる。又、出力部としては、暗号化されたデータ（以下「暗号データ」とも言う）を出力する出力部５０７を有する。尚、暗号データには、暗号化されたデータ、初期値及びデータ長に関する情報が含まれる。尚、これらの入出力部は、一つにまとめられていても良い。
【００４９】
図１０にもとづいて、暗号化処理の手順例を説明する。入力部５０４で暗号化されるデータを受け取ると、暗号化装置５０１は、以下の手順でデータを暗号化して出力する。
ステップ１：データの受信を検出した暗号処理制御装置５０８は、カウンタ５０９及び擬似乱数生成器５１０に処理開始を示す信号を送る。暗号処理制御装置５０８から信号を受け取ると、カウンタ５０９は現在保持している値を初期値として擬似乱数生成器５１０に入力し、その後カウンタの値をインクリメントする。
ステップ２：暗号処理制御装置５０８から信号を受け取ると、擬似乱数生成器５１０は、入力部５０２から入力された秘密鍵の情報と初期値を用いて内部状態を初期化する。
【００５０】
ステップ３：擬似乱数生成器５１０は、入力部５０４から入力されたデータのデータ長と同一(又はそれ以上)の長さのビット列を生成する。
ステップ４：暗号処理装置５０１は、擬似乱数生成器５１０の出力したビット列と受信したデータとを排他的論理和して暗号データを作成し、初期値と併せて出力部５０７から出力する。
【００５１】
上述した手順では、擬似乱数生成器５１０がまとまった大きさのビット列を生成し、一括して暗号化処理を行っている。この方法は、例えば、ネットワークの負荷が小さいときに、事前に暗号化用のビット列を生成する場合などにも用いることができる。
【００５２】
また、一括で排他的論理和するのではなく、暗号処理装置５０１がクロック信号を受信するごとに、一定長の小さなビット列(例えば６４ビット)を生成し、このビット列とデータ列の一部を排他的論理和する方法も考えられる。この方法では、ビット列生成、排他的論理輪の処理等のために必要なメモリのサイズが小さくなり、ハードウェア実装の回路規模が縮小できるというメリットがある。また、この方法は、暗号処理装置５０１が受信するデータ長を事前に知らなくても処理（ビット列生成）を開始することができるため、リアルタイム処理にも適している。
【００５３】
また、本実施形態では、初期値の生成にカウンタ５０９を用いたが、物理特性を利用した乱数発生装置などを用いても良い。
【００５４】
次に、図１１を用いて復号化処理を説明する。復号化処理は、暗号処理装置５０１とほぼ同一構成の復号処理装置７０１を用いて行うことができる。復号処理装置７０１は、暗号化されたデータの入力を受け付ける入力部７０２、秘密鍵の情報の入力を受け付ける入力部７０４、復号したデータを出力する際の出力部７１０、復号処理装置７０１内の動作を制御する暗号処理制御装置７０３、擬似乱数生成器７０６を有する。尚、受信する暗号化されたデータには、初期値、暗号化されたデータ及びそのデータ長に関する情報が含まれている。以下、復号化の処理手順例は以下のとおりとなる。
【００５５】
ステップ１：復号処理装置７０１は、暗号データのパケットを受信すると、暗号処理制御装置７０３を用いて、入力された秘密鍵と受信したパケットに含まれる初期値を用いて擬似乱数生成器７０６の内部状態を初期化する。
ステップ２：擬似乱数生成器７０６は、暗号データに含まれるデータ長の情報に基づいて、データ長と同一(又はそれ以上)の長さのビット列を生成する。
【００５６】
ステップ３：復号処理装置７０１は、擬似乱数生成器７０６の出力したビット列と暗号データとを排他的論理和して復号化されたデータ（以下「復号データ」とも言う）を作成し、出力部７１０から出力する。
【００５７】
図２０は、暗号処理部２０１の構成例を示す図である。暗号処理部２０１には、暗号処理装置５０１及び復号処理装置７０１を有し、それぞれが有する入力部、出力部は以下のように他の部位と接続される。暗号化されるデータの入力部５０４及び復号化されたデータの出力部７１０は、スイッチ部５１へ接続される。暗号化されたデータの出力部５０７及び復号化するデータの入力部７０９は、メモリモジュール１２１と共通バス１０４に接続される。また、秘密鍵データの入力部５０２、７０４はマイクロプロセッサ１００からの秘密鍵の入力を可能とするため、共通バス１０５に接続される。また、クロック信号の入力部５０５は、転送制御部１０３内のクロック発生器１０８に接続される。尚、暗号化又は復号化処理の際に、チャネルＩＦ部１１のプロセッサ１００は、データ転送のタイミングに併せて、共通バス１０５を介して暗号処理部２０１に秘密鍵の情報を送信する。
【００５８】
図１４は、サーバ３が、ストレージシステム１のハードディスク群２に記録されたデータを読み出す場合の処理手順例を示したフローチャートである。
まずサーバ３は、ストレージシステム１に対してデータの読出しコマンドをＩＰのパケットで発行する。チャネルＩＦ部１１内のホストＩＦ１０１がコマンドを受信する（７４２）と、コマンド待ち（７４１）にあったホストＩＦ１０１は、受信したコマンドを、転送制御部１０３を介してチャネルＩＦ部１１のマイクロプロセッサ１００内の主記憶に書き込む。
【００５９】
チャネルＩＦ部１１のマイクロプロセッサ１００は、主記憶から該当するコマンドを読み出してコマンド解析を行う（７４３）。チャネルＩＦ部１１のマイクロプロセッサ１００は、コマンド解析の結果、サーバ３が要求するデータが記録されている記憶領域を示す情報を割り出す（７４４）。
【００６０】
チャネルＩＦ部１１のマイクロプロセッサ１００は、コマンド解析によって得られた記憶領域の情報及びメモリ部２１内の制御メモリ領域に格納されているキャッシュメモリのディレクトリ情報から、メモリ部２１内のキャッシュメモリ領域に、コマンドで要求されるデータ（以下「要求データ」とも言う）が記録されているかどうかを確認する（７４５）。
【００６１】
キャッシュメモリ領域に要求データがあった場合（以下「キャッシュヒット」とも言う。）（７４６）、チャネルＩＦ部１１のマイクロプロセッサ１００は、ホストＩＦ１０１へ要求データを転送するために必要な情報、具体的には要求データが格納されているメモリモジュール１２７内のアドレス及び転送先となるチャネルＩＦ部１１内のメモリモジュール１２１内のアドレスの情報を、ホストＩＦ１０１と転送制御部１０３へ転送する。
【００６２】
その後、チャネルＩＦ部１１のマイクロプロセッサ１００は、ホストＩＦ１０１にメモリ部２１からデータを読み出すように指示する（７５２）。
【００６３】
指示を受けたチャネルＩＦ部１１内のホストＩＦ１０１は、チャネルＩＦ部１１のマイクロプロセッサ１００から受けた要求データの転送に必要な情報に従って転送制御部１０３へデータ転送開始を指示する。転送制御部１０３はマイクロプロセッサ１００より受けた前述の必要な情報に従ってメモリ部２１のメモリコントローラ１２５へアクセスして、メモリモジュール１２７からの要求データの読み出しを要求する。要求を受けたメモリコントローラ１２５は、メモリモジュール１２７から要求データを読み出し、その要求データを、要求を受けたチャネルＩＦ部１１の転送制御部１０３へ転送する（７５３）。転送制御部１０３内の暗号処理部２０１は、メモリ部２１から受けたデータを暗号化する（７５４）。その後、転送制御部１０３は、暗号処理部２０１で処理された暗号データをメモリモジュール１２１へ書き込む（７５５）。その後、転送制御部１０３は、メモリモジュール１２１から暗号データを読出し、ホストＩＦ１０１へ転送する（７５６）。要求データを受信したホストＩＦ１０１は、要求データをＩＰプロトコルのデータパケットに変換し、サーバ３へ送出する（７５７）。
【００６４】
一方、キャッシュメモリ領域に要求データがない場合（以下「キャッシュミス」とも言う。）（７４６）、まずチャネルＩＦ部１１のマイクロプロセッサ１００は、メモリ部２１内の制御メモリ領域へアクセスし、キャッシュメモリ領域のディレクトリ情報に、メモリ部２１内のキャッシュメモリ領域に要求データを格納する領域を確保するための情報、具体的には空いているキャッシュスロットを指定する情報を登録する（以下「キャッシュ領域確保」とも言う）（７４７）。キャッシュ領域確保後、チャネルＩＦ部１１のマイクロプロセッサ１００は、メモリ部２１内の制御メモリ領域へアクセスし、制御メモリ領域に格納されている記憶領域の管理情報から、要求データが格納されているハードディスク群２が接続されているディスクＩＦ部１６（以下「目的ディスクＩＦ部１６」とも言う）を割り出す（７４８）。
【００６５】
その後、チャネルＩＦ部１１のマイクロプロセッサ１００は、目的ディスクＩＦ部１６内のディスクＩＦ１０２からメモリモジュール１２７へ要求データを転送するための要求コマンドと必要な情報をメモリ部２１内の制御メモリ領域の所定の場所に書き込む。目的ディスクＩＦ部１６内のマイクロプロセッサ１００はその所定の場所へ情報が書き込まれたかどうかをポーリングしており、自身に関係する情報が書き込まれるとその情報を読み出す。目的ディスクＩＦ部１６内のマイクロプロセッサ１００はその情報を解析し、どのディスクＩＦ１０２からどのメモリ部２１へデータを転送するかを示す制御情報及びそのデータ転送に必要なパラメータをディスクＩＦ１０２と転送制御部１０６へ送る。そして目的ディスクＩＦ部１６のマイクロプロセッサ１００は、ハードディスク群２から要求データを読み出しメモリ部２１へ要求データを書き込むよう、目的ディスクＩＦ部１６内のディスクＩＦ１０２へ指示する。
【００６６】
指示を受けた目的ディスクＩＦ部１６内のディスクＩＦ１０２は、指示に基づいて、要求データの転送に必要な情報をもとに、ハードディスク群２から要求データを読み出し（７４９）、転送制御部１０６へデータ転送の開始を指示する。ディスクＩＦ１０２は転送制御部１０６へデータを転送し、転送制御部１０６はマイクロプロセッサ１００より受けた前述の必要な情報に従ってメモリ部２１へデータのライト要求を出すとともに、受信したデータを所定のまとまり毎にメモリ部２１へ転送する。メモリコントローラ１２５は、受信した要求データをメモリモジュール１２７へ書き込む（７５０）。要求データの書き込みが終了すると、メモリコントローラ１２５は、その終了を目的ディスクＩＦ部１６のマイクロプロセッサ１００へ通知する。
【００６７】
メモリモジュール１２７への書き込みの終了を検出した目的ディスクＩＦ部１６のマイクロプロセッサ１００は、メモリ部２１内の制御メモリ領域へアクセスし、キャッシュメモリ領域のディレクトリ情報を更新する。具体的には、目的ディスクＩＦ部１６のマイクロプロセッサ１００は、キャッシュメモリ領域の内容が更新されたことをディレクトリ情報に登録する（７５１）。更に目的ディスクＩＦ部１６のマイクロプロセッサ１００は、データ読み出しの要求コマンドを送信したチャネルＩＦ部１１に対して、メモリ部２１から要求データを読み出す指示をメモリ部２１内の制御メモリ領域の所定の場所へ書き込む。チャネルＩＦ部１１内のマイクロプロセッサ１００はその所定の場所へ情報が書き込まれたかどうかをポーリングしており、自身に関係する情報が書き込まれるとその情報を読み出し、ディスクＩＦ部１６からの指示を受ける。
【００６８】
指示を受けたチャネルＩＦ部１１は、キャッシュヒット時の処理手順と同様に、メモリモジュール１２７から要求データを読み出し、サーバ３へ転送する。以上のようにして、ストレージシステム１は、サーバ３からのデータの読み出し要求に対し、キャッシュメモリまたはハードディスク群２からデータを読み出して、サーバ３へ送信する。
【００６９】
次に、サーバ３からストレージシステム１にデータを書き込む場合の処理手順の例を述べる。図１５は、サーバ３からストレージシステム１にデータを書き込む場合の処理手順の例を示したフローチャートである。
まず、サーバ３は、ストレージシステム１に対してデータの書き込みコマンドを発行する。なお、本実施形態では、書き込みコマンドには、書き込まれるべきデータ（以下「更新データ」とも言う）が含まれているとして説明を行う。ただし、書き込みコマンドには更新データが含まれない場合もある。この場合は、一旦書き込みコマンドによってストレージシステム１の状態を確認した後で、サーバ３は更新データを送信する。
【００７０】
チャネルＩＦ部１１内のホストＩＦ１０１がコマンドを受信する（７６２）と、コマンド待ち（７６１）にあったホストＩＦ１０１は、受信したコマンドを、チャネルＩＦ部１１のマイクロプロセッサ１００内の主記憶へ送る。
【００７１】
チャネルＩＦ部１１のマイクロプロセッサ１００は、主記憶から該当するコマンドを読み出してコマンド解析を行う（７６３）。チャネルＩＦ部１１のマイクロプロセッサ１００は、コマンド解析の結果から、サーバ３が書き込みを要求する更新データを記録する記憶領域を示す情報を割り出す（７６４）。チャネルＩＦ部１１のマイクロプロセッサ１００は、更新データを書き込む記憶領域を示す情報及びメモリ部２１内の制御メモリ領域に格納されているキャッシュメモリ領域のディレクトリ情報に基づいて、メモリ部２１内のキャッシュメモリ領域に、書き込み要求の対象、すなわち更新対象となるデータ（以下「更新対象データ」）が記録されているかどうかを判断する（７６５）。
【００７２】
キャッシュメモリ領域に更新対象データがあった場合（以下「ライトヒット」とも言う）（７６６）、チャネルＩＦ部１１のマイクロプロセッサ１００は、ホストＩＦ１０１からメモリモジュール１２７へ更新データを転送するために必要な情報を、ホストＩＦ１０１と転送制御部１０３へ転送する。そして、チャネルＩＦ部１１のマイクロプロセッサ１００は、ホストＩＦ１０１に、サーバ３から転送された更新データをメモリ部２１内のメモリモジュール１２７へ書き込むように指示する（７６８）。
【００７３】
指示を受けたホストＩＦ１０１は、転送制御部１０３へデータ転送の開始を指示する。ホストＩＦ１０１は更新データの転送に必要な情報をもとに、転送制御部１０３を介してメモリモジュール１２１に更新データを転送する（７６９）。その後、転送制御部１０３の暗号処理部２０１はメモリモジュール１２１から更新データを受信し（７７０）、データを復号する（７７１）。その後、転送制御部１０３はマイクロプロセッサ１００より受けた前述の必要な情報に従ってメモリ部２１へデータのライト要求を出すとともに、暗号処理部２０１で復号された復号データ（更新データ）を所定のまとまり毎にメモリ部２１へ転送する。更新データを受信したメモリコントローラ１２５は、メモリモジュール１２７に格納されている更新対象データを更新データで上書きする（７７２）。
書き込み終了後、メモリコントローラ１２５は、指示を送信したチャネルＩＦ部１１のマイクロプロセッサ１００へ更新データの書き込みの終了を通知する。
【００７４】
メモリモジュール１２７への更新データの書き込みの終了を検知したチャネルＩＦ部１１のマイクロプロセッサ１００は、メモリ部２１内の制御メモリ領域へアクセスし、キャッシュメモリ領域のディレクトリ情報を更新する。具体的には、チャネルＩＦ部１１のマイクロプロセッサ１００は、ディレクトリ情報にキャッシュメモリ領域の内容が更新されたことを登録する（７７３）。それとともに、チャネルＩＦ部１１のマイクロプロセッサ１００は、サーバ３から書き込み要求を受けたホストＩＦ１０１に、書き込み完了通知をサーバ３へ送出するように指示する（７７４）。その指示を受けたホストＩＦ１０１は、書き込み完了通知をサーバ３へ送出する（７７５）。
【００７５】
メモリモジュール１２７内に更新対象データがない場合（以下「ライトミス」とも言う。）（７６６）、チャネルＩＦ部１１のマイクロプロセッサ１００は、メモリ部２１内のメモリモジュール１２７へアクセスし、キャッシュメモリ領域のディレクトリ情報に、メモリ部２１内のキャッシュメモリ領域に更新データを格納する領域を確保するための情報、具体的には空きキャッシュスロットを指定する情報を登録する（「キャッシュ領域確保」）（７６７）。キャッシュ領域確保後、ストレージシステム１は、ライトヒット時と同様の制御を行う。ただし、ライトミスの場合にはメモリモジュール１２７には更新対象データが存在しないので、メモリコントローラ１２５は、更新データを格納する場所として確保された記憶領域に更新データを格納する。
【００７６】
その後チャネルＩＦ部１１（又はディスクＩＦ部１６）のマイクロプロセッサ１００は、キャッシュメモリの空き容量等を判断して（７８１）、サーバ３からの書き込み要求とは非同期に、メモリ部２１内のキャッシュメモリ領域に書き込まれた更新データをハードディスク群２に記録する処理を行う。具体的には、チャネルＩＦ部１１（又はディスクＩＦ部１６）のマイクロプロセッサ１００は、メモリ部２１内の制御メモリ領域へアクセスし、記憶領域の管理情報から、更新データを格納するハードディスク群２が接続されているディスクＩＦ部１６（以下「更新目的ディスクＩＦ部１６」とも言う）を割り出す（７８２）。その後、チャネルＩＦ部１１（又はディスクＩＦ部１６）のマイクロプロセッサ１００は、更新目的ディスクＩＦ部１６内のディスクＩＦ１０２と転送制御部１０６へ更新データを転送するために必要な情報を送る。
【００７７】
その後、チャネルＩＦ部１１（又はディスクＩＦ部１６）のマイクロプロセッサ１００は、メモリモジュール１２７から更新データを読み出して更新目的ディスクＩＦ部１６のディスクＩＦ１０２へ転送するように、更新目的ディスクＩＦ部１６内のマイクロプロセッサ１００へ指示する。指示を受けた更新目的ディスクＩＦ部１６内のディスクＩＦ１０２は、更新データの転送に必要な情報をもとに、転送制御部１０６へデータ転送の開始を指示する。転送制御部１０６はマイクロプロセッサ１００より受けた前述の情報に従ってメモリ部２１へデータのリード要求を出し、メモリ部２１からのリードデータを受信し、受信したデータを所定のまとまり毎にディスクＩＦ１０２へ転送する（７８３）。更新データを受信したディスクＩＦ１０２は、ハードディスク群２へ更新データを書き込む（７８４）。以上のようにして、サーバ３からのデータの書き込み要求に対し、ストレージシステム１は、メモリモジュール１２７へデータを書き込み、さらにハードディスク群２へデータを書き込む。
【００７８】
図４は、チャネルＩＦ部１１の他の構成例を示す図である。暗号処理部２０１を設ける位置を除いて図２に示すチャネルＩＦ部１１と同様の構成である。ここでは、暗号処理部２０１をメモリモジュール１２１と転送制御部１０３の間に転送制御部１０３とは独立に配置する。このように暗号処理部を独立させることにより、暗号処理部が必要ない場合、その部分を取り除くだけで、暗号処理機能を物理的に無効にすることが可能となる。尚、この構成の場合、上述した処理手順に変更の必要はない。
【００７９】
図５は、チャネルＩＦ部１１の他の構成例を示す図である。暗号処理部２０１を設ける位置を除いて図２に示すチャネルＩＦ部１１と同様の構成である。ここでは、暗号処理部２０１をホストＩＦ１０１と共通バス１０４の間に配置する。また、１つの暗号処理部２０１で２つのホストＩＦへ出力（あるいはホストＩＦから入力）されるデータの暗号処理を行う。このような配置によっても、暗号処理部が必要ない場合、その部分を取り除くだけで、暗号処理機能を物理的に無効にすることが可能となる。尚、この構成の場合、データの暗号化処理はメモリモジュール１２１からデータが読み出され、ホストＩＦ１０１へ転送される途中で行われる。また、暗号データの復号化処理は、データがホストＩＦ１０１から転送制御部１０３へ転送される途中で行われる。
【００８０】
図６は、チャネルＩＦ部１１の他の構成例を示す図である。ホストＩＦ１０１が２つの暗号処理部２０１へ接続されることを除いて図５に示すチャネルＩＦ部１１と同様の構成である。このような配置によれば、１つの暗号処理部２０１で障害が生じた場合、もう一方の暗号処理部２０１で暗号処理を継続可能となるため、ストレージシステム１の信頼性を向上させることが可能となる。また、暗号処理部が必要ない場合、その部分を取り除くだけで、暗号処理機能を物理的に無効にすることが可能となる。
【００８１】
図７は、チャネルＩＦ部１１の他の構成例を示す図である。暗号処理部２０１を設ける位置を除いて図５に示すチャネルＩＦ部１１と同様の構成である。ここでは、ホストＩＦ１０１と同様に暗号処理部２０１を共通バス１０４に接続する。このような配置によっても、暗号処理部が必要ない場合、その部分を取り除くだけで、暗号処理機能を物理的に無効にすることが可能となる。尚、この構成の場合も、データの暗号化処理はメモリモジュール１２１からデータが読み出され、ホストＩＦ１０１へ転送される途中で行われる。また、暗号データの復号化処理は、データがホストＩＦ１０１から転送制御部１０３へ転送される途中で行われる。
【００８２】
図８は、チャネルＩＦ部１１の他の構成例を示す図である。暗号処理部２０１を設ける位置を除いて図５に示すチャネルＩＦ部１１と同様の構成である。ここでは、１つの暗号処理部２０１を２つのホストＩＦ１０１に直接接続する。このような配置によっても、暗号処理部が必要ない場合、その部分を取り除くだけで、暗号処理機能を物理的に無効にすることが可能となる。尚、この構成の場合、データの暗号化処理は、ホストＩＦ１０１内でデータがＩＰプロトコル用のデータパケットに変換される前に行われる。また、暗号データの復号化処理は、ホストＩＦ１０１内でデータがＩＰプロトコル用のデータパケットからストレージシステム内のデータ転送プロトコル用のデータパケットに変換された後で行われる。
【００８３】
図９は、チャネルＩＦ部１１の他の構成例を示す図である。暗号処理部２０１を設ける位置を除いて図２に示すチャネルＩＦ部１１と同様の構成である。ここでは、暗号処理部２０１をスイッチ部５１へ接続するパスに接続する。このような配置によっても、暗号処理部が必要ない場合、その部分を取り除くだけで、暗号処理機能を物理的に無効にすることが可能となる。
【００８４】
図２１は、チャネルＩＦ部１１の他の構成例を示す図である。スイッチ１４１を介してホストＩＦ１０１を転送制御部１０３に接続し、スイッチ１４１に暗号処理部２０１を直結する点を除いて図７に示すチャネルＩＦ部１１と同様の構成である。尚、この構成の場合、データの読出し時はメモリモジュール１２１からデータが読み出され、スイッチ１４１を経由して暗号処理部２０１でデータの暗号化処理が行われ、暗号データがスイッチ１４１を経由してホストＩＦ１０１へ転送される。また、データの書き込み時は、暗号データがホストＩＦ１０１からスイッチ１４１を経由して暗号処理部２０１へ転送され、復号化処理が行われ、復号化されたデータがスイッチ１４１を経由して転送制御部１０３へ転送される。このような配置によっても、暗号処理部が必要ない場合、その部分を取り除くだけで、暗号処理機能を物理的に無効にすることが可能となる。
【００８５】
以上、図４〜図９、図２１に示したチャネルＩＦ部１１の他の構成においても、暗号処理を実施できる。また、図４〜図９、図２１に示した構成におけるデータのリード／ライトの手順は、図１４、図１５で示した手順において、暗号化処理、復号化処理を行う場所が図４〜図９、図２１の説明で述べたように異なるだけである。
【００８６】
本実施形態によれば、効率的な暗号処理が可能となり、高性能の暗号処理を行うストレージシステムを提供することが可能となる。
【００８７】
図１８は、本実施形態のストレージシステム１間でのデータのリモートコピーの例を示している。
主サイト８０１のストレージシステム１と遠隔サイト８０２のストレージシステム１のチャネルＩＦ部１１が広域ネットワーク８２１を介して接続される。データのリモートコピー時には、システムの管理者は、主サイトのストレージシステム１に対して、予め、管理端末８からリモートコピーの対象となる記憶領域（以下「ボリューム」とも言う）と、主サイトと遠隔サイトの間で暗号化通信を行うかどうかを指定しておく。尚、暗号化通信の設定の基準は、例えば、重要なデータが格納されているボリュームに関するリモートコピーかどうか等、管理者の判断によるところが大きい。
【００８８】
そして、実際のリモートコピーの処理時には、主サイト側のストレージシステム１は、まず初めに、リモートコピー対象のボリューム内の全データを遠隔サイトへ転送（「初期コピー」とも言う）し、その後リモートコピー対象ボリュームのデータが更新された際に、更新データを遠隔サイトへ転送する。その際、暗号化通信が指定されていた場合、主サイト側のストレージシステム１において、リモートコピーを行うチャネルＩＦ部１１内のマイクロプロセッサ１００は、自身のデータ転送制御部１０３内の暗号処理部２０１の処理を有効にするレジスタのビットを立て、暗号処理部２０１が暗号処理を行うように設定する。これにより、上述の手順でデータを読み出して暗号化してもう一方のストレージシステム１へ送出する。そして、もう一方のストレージシステム１においてデータを受信し、上述の手順でデータを復号化し、格納する。
【００８９】
上述した暗号処理を行うストレージシステムによれば、距離的に離れた２地点間でのデータのリモートコピーにおいて、暗号化したデータを高速にコピーすることが可能となる。
【００９０】
図１２及び１３は、第二の実施形態のチャネルＩＦ１１の構成例を示す図である。
ストレージシステム１の構成は図１と同様であり、チャネルＩＦ部１１の構成のみが異なる。
チャネルＩＦ部１１の構成は、２つの暗号処理部が設けられている点を除いて、図３の構成と同様である。
【００９１】
本実施形態では、ストレージシステム１は、暗号処理部２０１を図３と同様に転送制御部１０３内（又は上述した個所）に有し、もう１つの暗号処理部３０１をホストＩＦ１０１の前段（ホストＩＦ１０１とＩＰネットワークとの接続部分）に有する。
【００９２】
本実施形態では、暗号処理部２０１の暗号アルゴリズムには、高速の暗号アルゴリズム、例えばストリーム暗号を用い、暗号処理部３０１の暗号アルゴリズムには、ＩＰｓｅｃプロトコルに用いられる、例えばブロック暗号を用いる。
【００９３】
前者の理由は、ストレージシステム１内のプロトコルでは、データパケットのサイズが数ｋＢ〜１０ｋＢ程度であり、ＩＰプロトコルで扱われるデータパケットのサイズ（平均長：１ｋＢ程度）に比べて大きいため、暗号処理部２０１を転送制御部１０３内に設けることにより、図１９に示すホストＩＦ１０１の前段に設ける場合に比べて、暗号処理の性能を高くできる効果があるためである。
【００９４】
後者の理由は、一般的にＩＰｓｅｃ処理用ＬＳＩはホストＩＦ１０１の前段に設けられるか、ホストＩＦ１０１の中に設けられ、ホストＩＦ１０１内でデータをＩＰプロトコルのデータパケットに変換した後、ＩＰｓｅｃによって、暗号化処理を行うためである。
したがって、この二つの暗号処理部を組み合わせて使用することによって、両者の長所をうまく使い分けることが出来る。使い分けの実例については以下で説明する。
【００９５】
図１３は、チャネルＩＦ部１１が２つの暗号処理部を持つ場合の他の構成例を示す図である。暗号処理部３０１がホストＩＦ１０１内にあることを除いて、図１２に示すチャネルＩＦ部１１と同様の構成である。
【００９６】
図１２及び図１３の構成において、暗号処理部２０１、３０１のどちらで暗号・復号化処理を行うかは、管理者等が予め管理端末８から定めた条件により、チャネルＩＦ部１１内のマイクロプロセッサ１０１が判断し、暗号処理部２０１または暗号処理部３０１へ指示する。ここで、管理端末８から予め定められた条件は、例えば暗号化処理部２０１を使う条件と暗号化処理部３０１を使う条件という形でテーブルとして、メモリ部２１内の制御メモリ領域に格納される。
【００９７】
各チャネルＩＦ部１１内のマイクロプロセッサ１００は、システムの初期化時又は管理端末８から指示があった場合に、上記の制御メモリ領域に格納されたテーブルを参照し、暗号処理部２０１と暗号処理部３０１内のレジスタに暗号化（復号化）処理を行う場合の条件を書き込む。各暗号処理部２０１、３０１は、データが入力された場合、レジスタに記録された条件とデータパケットのヘッダ情報から暗号化（復号化）処理を行うかどうかを判断し、暗号処理を行う場合は暗号処理を実行し、暗号処理を行わない場合は処理を行わずにデータを通過させる。
【００９８】
また、レジスタに条件を書き込むのではなく、マイクロプロセッサ１００が、所定のデータパケットを受信するたびに、メモリ部２１内の制御メモリ領域に格納された条件テーブルと受信したデータパケットのヘッダ情報から暗号処理を行うかどうかを判断し、各暗号処理部２０１、３０１に指示しても良い。
【００９９】
上述の条件の例として、例えば、以下の条件が考えられる。
データの送受信相手による判断条件、例えば、ユーザの判断で、大量のデータの送受が必要な通信相手には暗号処理部２０１で暗号化、少量のデータ通信ですむ場合は暗号処理部３０１で暗号化するという判断条件が考えられる。この場合、暗号処理部２０１を使う通信相手と暗号処理部３０１を使う通信相手という形で管理端末８から条件を入力し、テーブルの形でメモリ部２１内の制御メモリ領域に格納される。
【０１００】
又、データ通信におけるパケットサイズで、予め定めたパケットサイズ（例えば２ｋＢ）以上では、暗号処理部２０１で暗号化、以下では暗号処理部３０１で暗号化するという条件も考えられる。この条件の場合、暗号処理部２０１、３０１がパケットヘッダ内に示されるパケットサイズを解析することにより条件判断を行う。または、マイクロプロセッサ１００がパケットサイズを解析し、暗号処理部２０１、３０１へ指示しても良い。
【０１０１】
図２３は、送受信相手により使用する暗号処理部２０１、３０１を決める例を示す図である。図２３では、主サイト８０１のストレージシステム１と遠隔サイト８０２のストレージシステム１間でデータのリモートコピーを行うディザスタリカバリの構成例を示している。主サイト８０１のストレージシステム１はサーバ３と遠隔サイト８０２のストレージシステム１に広域ネットワーク(広域ＩＰネットワーク)を介して接続されている。サーバ３は主サイト８０１のストレージシステム１に直結またはＬＡＮを介して接続されていても良い。
【０１０２】
主サイト８０１のストレージシステム１内のチャネルＩＦ部１１は、通信相手がサーバ３のときは、ＩＰネットワーク上のＩＰｓｅｃプロトコルで一般的なブロック暗号を用いるため、暗号処理部３０１でデータの暗号化／復号化を行う。また、通信相手が遠隔サイト８０２のストレージシステム１のときは、高速のデータ転送が要求されるため、ストリーム暗号の暗号処理部２０１でデータの暗号化／復号化を行う。
【０１０３】
主サイト８０１のストレージシステム１では、上述した方法（例えば、レジスタ値＋データパケットのヘッダ情報）を用い、チャネルＩＦ部１１内の暗号化処理部２０１、３０１が、データパケットのヘッダ情報に示されているデータの送信元、送信先の情報から自処理部で暗号処理を行うかを判断する。そして、暗号処理を行う場合は処理を実行し、暗号処理を行わない場合は処理を行わずデータを通過させる。尚、各暗号処理部でデータの送信元等を判断する代わりに、上述したように、マイクロプロセッサ１００がデータパケットのヘッダ情報に示されているデータの送信元、送信先から暗号化処理部２０１、暗号化処理部３０１のどちらで暗号化処理を行うかを判断し、該当する暗号化処理部に指示しても良い。
【０１０４】
更に、どの暗号処理部で暗号処理を行うかの条件は、図１２、１３で説明した方法によって管理者が管理端末８から予め入力し、メモリ部２１内の制御メモリ領域に条件テーブルとして格納され、さらに各暗号処理部のレジスタに条件が設定される。
【０１０５】
尚、図１２、１３では暗号処理部２０１を転送制御部１０３内に設けるとしたが、図４〜図９、図２１に示す暗号処理部２０１の配置でも良い。
【０１０６】
本実施形態によれば、ストレージシステムにおいて、通信条件に合った暗号アルゴリズムでデータの暗号化、復号化が可能となる。また、本実施形態においても第一の実施形態と同様の効果が得られる。
【０１０７】
図１６、１７は、第三の実施形態の構成例を示す図である。
図１６に示すストレージシステム１の構成は図１のチャネルＩＦ部１１とディスクＩＦ部１６が統合された構成を示す図である。すなわち、図３に示すチャネルＩＦ部１１の転送制御部１０３にディスクＩＦ１０２を共通バス１０６を介して接続する。また、メモリモジュール１３１をキャッシュメモリ及び制御メモリとして使用する。尚、ここで共通バス１０４、１０６の代わりにスイッチを用いても良い。
【０１０８】
図１７は、図１６において２つの暗号処理部２０１、３０１を設けた場合のストレージシステムの構成例を示す図である。この場合、第二の実施形態と同様に、予め管理端末から定めた条件により、暗号処理部２０１、３０１のどちらで暗号化・復号化処理を行うかを、マイクロプロセッサ１００等が判断、指示する。
【０１０９】
本実施形態のストレージシステム１では、図１に示すストレージシステム１において、ディスクＩＦ部１６内の転送制御部１０６の機能を転送制御部１０３に統合し、また、チャネルＩＦ部１１及びディスクＩＦ部１６それぞれのマイクロプロセッサ１００が行う処理を１つのマイクロプロセッサ１００で行い、メモリモジュール１３１をキャッシュメモリと制御メモリ用に使用する。
【０１１０】
本実施形態におけるデータのリード／ライト処理は以下に述べる点を除いて第一の実施形態で述べた動作と基本的に同じである。すなわち、本実施形態ではメモリ部２１が転送制御部１０３とメモリモジュール１３１で代用されるため（図１のメモリコントローラ１２５の機能が転送制御部１０３内に実装され、メモリモジュール１２７の役目をメモリモジュール１３１が果たす）、キャッシュメモリに要求データがあるかどうかの判断はメモリモジュール１３１に対して行われる。また、データ転送ではメモリ部２１が無くなるため、メモリモジュール１３１に対してデータ転送が行われる。さらに、ディスクＩＦ部１６が無くなりディスクＩＦ１０２が共有バス１０６を介して転送制御部１０３へ接続されるため、ハードディスク群２とキャッシュメモリの間のデータ転送指示は、ホストＩＦ側の処理を行うマイクロプロセッサ１００がディスクＩＦ１０２へも直接指示することになる。
【０１１１】
図１６、１７では暗号処理部２０１を転送制御部１０３内に設けるとしたが、図４〜図９、図２１に示す暗号処理部２０１の配置でも良い。
本実施形態によっても第一の実施形態と同様の効果が得られる。
【０１１２】
図２４、２５は、第四の実施形態の構成例を示す図である。
【０１１３】
図２４に示すストレージシステム１は、サーバ３又はハードディスク群２と接続されるインターフェース部１０、メモリ部２１、プロセッサ部８１、インターフェース部１０、メモリ部及びプロセッサ部８１を相互に接続するスイッチ部５１を有する。又、管理端末８がストレージシステム１に接続されている。
【０１１４】
インターフェース部１０は、図１のチャネルＩＦ部１１及びディスクＩＦ部１６からマイクロプロセッサ１００を取り除いて、サーバ３及びディスクドライブ群２の双方と接続可能な構成としたものである。マイクロプロセッサ部８１は、チャネルＩＦ部１１及びディスクＩＦ部１６に存在したマイクロプロセッサ１００を独立した１枚のアダプタボード上に搭載した構成である。又スイッチ部５１は、暗号処理部２０１を有する。
【０１１５】
上述したように、インターフェース部１０の構成は、図２のディスクＩＦ部１６の構成において、マイクロプロセッサ１００と共通バス１０５を取り除き、ディスクＩＦ１０２を外部ＩＦ１０９とした構成となる。ここで外部ＩＦ１０９は、共通バス１０４を介さずに転送制御部１０６へ直結する構成としても良い。
【０１１６】
プロセッサ部８１は、スイッチ部５１と接続される転送制御部１０６及び転送制御部１０６と接続される複数のマイクロプロセッサ１００を有する。尚、マイクロプロセッサ１００と転送制御部１０６との間は、バスでもスイッチでも直接信号線で接続されていても良い。
【０１１７】
本実施形態におけるデータのリード／ライト処理は、第一の実施形態で述べた動作と以下の点が異なる。具体的には、チャネルＩＦ部１１内のホストＩＦ１０１とマイクロプロセッサ１００の間の通信が、サーバ３に繋がるインターフェース部１０内の外部ＩＦ１０９とプロセッサ部８１内のマイクロプロセッサ１００の間のスイッチ部５１を介した通信になることと、ディスクＩＦ部１６内のディスクＩＦ１０２とマイクロプロセッサ１００の間の通信が、ハードディスク群２に繋がるインターフェース部１０内の外部ＩＦ１０９とプロセッサ部８１内のマイクロプロセッサ１０１の間のスイッチ部５１を介した通信になること、データのリード処理時のデータの暗号化処理が転送制御部１０６で行われず、メモリモジュール１２７から転送制御部１０６への要求データ転送中にスイッチ部５１内の暗号処理部２０１で行われること、データのライト処理時のデータの復号化処理が転送制御部１０６で行われず、転送制御部１０６からメモリモジュール１２７への要求データ転送中にスイッチ部５１内の暗号処理部２０１で行われる点である。
【０１１８】
図２５は、インターフェース部１０の他の構成例を示す図である。この構成では、暗号処理部２０１を第一の実施形態の図３と同様に転送制御部１０３内に設ける。この場合、スイッチ部５１内に暗号処理部２０１は設けない。この構成でのデータのリード／ライト処理では、第一の実施形態と同様に、暗号化／復号化処理は転送制御部１０３内の暗号処理部２０１で行うことになる。
【０１１９】
図２５では、暗号処理部２０１を転送制御部１０３内に設けるとしたが、図４〜図９、図２１に示す暗号処理部２０１の配置でも良い。
【０１２０】
図２４、図２５の構成において、図１２に示すように暗号処理部３０１を設け、第二の実施形態と同様に、予め管理端末から定めた条件により、暗号処理部２０１、３０１のどちらで暗号化・復号化処理を行うかをマイクロプロセッサ１００が判断する構成としても良い。
本実施形態においても、第一の実施形態と同様の効果が得られる。
【０１２１】
第一〜第四の実施形態のストレージシステム１では、サーバ３または他のストレージシステム１との間のデータの送受信において、データを暗号化する構成について述べた。本実施形態では逆に、ストレージシステム１に送られてきた平文のデータを暗号化してハードディスク群２に格納し、ハードディスク群２に格納された暗号データを復号化して送り出す構成について述べる。
【０１２２】
尚、サーバ３等から暗号データが送られてくる場合は、暗号データをそのままハードディスク群２に格納し、そのデータの読出しの際には復号化せずに送り出す。ここで、暗号データの通信は、通信の前に予め送信元と送信先の装置(この場合、サーバ３とストレージシステム１)の間で、暗号化通信を行う取り決めをして行う。したがって、データの送信元をチェックすれば、データが暗号化されているかどうかを判断することができる。
【０１２３】
本実施形態において、平文のデータを暗号化してリード／ライト処理を行う場合は、第一の実施形態で示したデータの送／受信時に暗号化／復号化を行う場合と比べて、暗号化／復号化の処理が逆転する。すなわち、ストレージシステム１は、データのライト時は平文で送られてきたデータを暗号処理部２０１で暗号化して、ハードディスク群２に暗号データを格納する。また、データのリード時は、ストレージシステム１は、ハードディスク群２から読み出した暗号データを暗号処理部２０１で復号化して、平文として送り出す。データのリード／ライト処理は、図１４、１５に示すフローチャートと、暗号化／復号化の処理が逆転する点を除いて同様になる。
【０１２４】
図２６は、本実施形態で暗号処理部２０１を２重化した構成を示す図である。尚、システム構成は、第四の実施形態（図２４）と基本的に同一として、以下説明する。データのライト処理時のデータの暗号化処理では、ストレージシステム１は、２つの暗号処理部２０１においてデータを暗号化し、スイッチ部５１へ繋がるデータ比較部２１０内で２つの暗号データを比較する。そして、２つの暗号データが一致した場合は、ストレージシステム１は、スイッチ部５１を介してメモリ部２１へ送出し、その後の処理を続ける。不一致の場合は、データ比較部２１０がマイクロプロセッサ１００へエラーとして報告する。
【０１２５】
一方、データのリード処理時のデータの復号化処理では、ストレージシステム１は、２つの暗号処理部２０１においてデータを復号化する。そして、メモリモジュール１２１へ繋がるデータ比較部２１０が２つの復号データを比較する。２つの復号データが一致する場合、ストレージシステム１は、復号データをメモリモジュール１２１へ格納し、その後の処理を続ける。不一致の場合、データ比較部２０１は、マイクロプロセッサ１００へエラーとして報告する。
【０１２６】
これにより、暗号データ／復号データの信頼性を向上することが可能となる。尚、暗号処理部２０１を２重化する構成は、上述してきた各実施形態でも採用することが出来る。
【０１２７】
図２２は、本実施形態で暗号処理部２０１を、ディスクドライブ群２に接続される外部ＩＦ部１６の転送制御部１０３内に設けた構成例を示す図である。この場合、スイッチ部５１内に暗号処理部２０１を設ける必要は無い。又、図１等の構成で第五の実施形態を実行する場合には、ディスクＩＦ部１６に暗号処理部２０１を設ける構成となる。
【０１２８】
本実施形態のように、データを暗号化してハードディスク群２に格納する場合、図２２のようにハードディスク群２と接続されるディスクＩＦ１０２や外部ＩＦ１０９を有するディスクＩＦ部１６や外部ＩＦ１０に暗号処理部２０１を設けることで、暗号データのデータ転送処理の効率が良くなる効果が期待できる。
【０１２９】
本実施形態によれば、データを暗号化してストレージシステム１内に格納するため、データの使用者以外によるデータ操作が不可能となり、格納されたデータの安全性が向上する。
【０１３０】
以下、上述した各実施形態における暗号化／復号化処理に用いる鍵の管理方法について説明する。
【０１３１】
図２７は、図２４に示すストレージシステム１における鍵管理について示す図である。上述した通り、ストレージシステム１には管理端末８が接続される。より具体的には、管理端末８は内部ＬＡＮ９１を介して、プロセッサ部８１内のマイクロプロセッサ１００に接続される。ストレージシステム１の管理者等は、ストレージシステム１の構成設定、監視、稼動情報・障害情報等の収集を、管理端末８を介して行う。
【０１３２】
第一の実施形態で述べたように、暗号を用いたデータの送受信においては、まず、通信を始める前に、通信相手と事前にやり取りを行い、秘密裏に鍵を共有する。そして、この事前のやり取りで共有した鍵を用いて、ストレージシステム１は暗号処理を行う。鍵の共有が行われた後、マイクロプロセッサ１００は、メモリ部２１内のメモリモジュール１２７の制御メモリ領域にこの鍵の情報を格納する。又マイクロプロセッサ１００は、暗号化処理の際に暗号処理部２０１にこの鍵の情報を送信する。
【０１３３】
ストレージシステム１を管理する管理者等は、ストレージシステムの管理のために、管理端末８からマイクロプロセッサ１００を介して制御メモリ領域へアクセスし、メモリに格納された情報を見ることが可能な構成となっている場合が多い。このような場合、管理者等が制御メモリ領域に格納されている鍵の情報を入手し、それを使ってストレージシステム１に格納された暗号データを見ることが可能となる。すなわち、管理者等が本来は見ることを許されない、ユーザが使用するデータを見る危険性がある。
【０１３４】
それを防ぐために、本実施形態における鍵管理では、制御メモリ領域の鍵情報が格納される領域への不特定多数のアクセスを防止する。例えば、制御メモリ領域へのアクセスは、管理端末８からマイクロプロセッサ１００を介して行われる。そこで、ストレージシステム１では、まずマイクロプロセッサ１００にアクセスする際にユーザ認証を行う。そのユーザ認証により、マイクロプロセッサ１００は、アクセスしたユーザが制御メモリ領域内の鍵情報が格納されているメモリ領域へのアクセス権を有するかどうかをチェックする。
【０１３５】
チェックの結果、アクセスしたユーザが、そもそも制御メモリ領域へのアクセス権を有していない場合、プロセッサ１００は、そのユーザの制御メモリ領域へのアクセスを許可しない。また、制御メモリ領域へのアクセスは許されているが、鍵情報が格納されているメモリ領域へのアクセス権を有していない場合、プロセッサ１００は、アクセスしたユーザに対して、鍵情報が格納されている領域以外の制御メモリ領域のみを公開する。
【０１３６】
さらに、プロセッサ１００が、鍵情報が格納されているメモリ領域へアクセス要求を出したユーザを記録しておいても良い。そうすることで、不正なアクセスが行われたかどうかをチェックすることができ、その後のチェックをより厳しくする等のセキュリティを向上するための対策へ生かすことができる。
【０１３７】
上述の構成とすることで、データの使用者以外がデータの閲覧をすることを防ぐことができ、ストレージシステム１へ格納したデータの安全性を向上することが可能となる。
【０１３８】
図２８は、ストレージシステム１の第六の実施形態の構成例を示す図である。ストレージシステム１の内部の構成は、図１及び図１２に示す構成である。ただし、上述してきた他の構成であっても構わない。図２８に示すように、サーバ３と接続されるチャネルＩＦ部１１に他のストレージシステム４が接続される。この場合、ストレージシステム１は、メモリ部２１内の制御メモリ領域に他のストレージシステム４が提供する記憶領域（以下「ボリューム」とも言う）の情報を、キャッシュメモリ領域に他のストレージシステム４に格納される（又は読み出される）データをも格納する。
【０１３９】
他のストレージシステム４が接続されるチャネルＩＦ部１１内のマイクロプロセッサ１００は、制御メモリ領域に格納された情報に基づいて、他のストレージシステム４が提供するボリュームを管理する。例えばマイクロプロセッサ１００は、他のストレージシステム４が提供するボリュームを、サーバ３にストレージシステム１が提供するボリュームとして割り当てる。このことにより、サーバ３が、ストレージシステム１を介して他のストレージシステム４のボリュームへアクセスすることが可能となる。
【０１４０】
この場合、ストレージシステム１は、自己が有するハードディスク群２から構成されるボリュームと他のストレージシステム４が提供するボリュームを一括して管理する。
【０１４１】
本実施形態では、ストレージシステム１からストレージシステム４にデータを書き込む場合、ストレージシステム１からデータを送出する際、チャネルＩＦ部１１内の暗号処理部２０１においてデータの暗号化を行う。さらに、ストレージシステム４では、ストレージシステム１から送られた暗号データをそのまま（復号化せずに）格納する。データの読み出しの際は、ストレージシステム４は格納されている暗号データをそのままストレージシステム１へ送出し、ストレージシステム１において、チャネルＩＦ部１１内の暗号処理部２０１で暗号データの復号化を行う。
図２８では、サーバ３と他のストレージシステム４が同一のチャネルＩＦ部１１に繋がっている構成を想定しているため、チャネルＩＦ部１１に繋がるサーバ３がストレージシステム４との間でデータ転送を行う際、サーバ３が接続されるホストＩＦ１０１とストレージシステム４が接続されるホストＩＦ１０１とは、共通バス１０４、転送制御部１０３及びメモリモジュール１２１を介してデータ転送を行う。サーバ３が接続されるチャネルＩＦ部１１とストレージシステム４が接続されるチャネルＩＦ部１１とが異なる場合は、サーバ３が接続されるホストＩＦ１０１とストレージシステム４が接続されるホストＩＦ１０１とは、スイッチ部５１を介してデータ転送を行う。尚この時、ストレージシステム１は、転送されるデータをメモリ部２１内のキャッシュメモリ領域にキャッシングしても良い。これにより、サーバ３およびストレージシステム４間のデータ転送性能が向上する。
【０１４２】
また第二の実施形態と同様に、本実施形態においても、暗号処理部２０１、３０１のどちらで暗号化・復号化処理を行うかを、予め管理端末８から定めた条件により、チャネルＩＦ部１１内のマイクロプロセッサ１０１が判断し、暗号処理部２０１、または暗号処理部３０１へ指示する構成としても良い。本実施形態では、サーバ３とストレージシステム１との間のデータ通信における暗号化８５５は、ＩＰネットワーク上のＩＰｓｅｃプロトコルで一般的なブロック暗号を用いる暗号処理部３０１で行う。一方、ストレージシステム１とストレージシステム４の間のデータ通信における暗号化８５１は、高速のデータ転送が要求されるため、処理が高速のストリーム暗号を用いる暗号処理部２０１で行う。
【０１４３】
本実施形態によれば、ストレージシステム４とストレージシステム１の間の接続を外し、ストレージシステム４に直接サーバを接続して格納されたデータにアクセスした場合、データの内容を見ることが不可能となるため、ストレージシステム４に格納したデータの安全性を向上させることが可能となる。
【図面の簡単な説明】
【０１４４】
【図１】ストレージシステムの構成例を示す図である。
【図２】チャネルＩＦ部の構成例を示す図である。
【図３】ディスクＩＦ部の構成例を示す図である。
【図４】チャネルＩＦ部の他の構成例を示す図である。
【図５】チャネルＩＦ部の他の構成例を示す図である。
【図６】チャネルＩＦ部の他の構成例を示す図である。
【図７】チャネルＩＦ部の他の構成例を示す図である。
【図８】チャネルＩＦ部の他の構成例を示す図である。
【図９】チャネルＩＦ部の他の構成例を示す図である。
【図１０】暗号処理部内の暗号処理装置の構成を示す図である。
【図１１】暗号処理部内の復号処理装置の構成を示す図である。
【図１２】チャネルＩＦ部の他の構成例を示す図である。
【図１３】チャネルＩＦ部の他の構成例を示す図である。
【図１４】ストレージシステムのリード動作フローを示す図である。
【図１５】ストレージシステムのライト動作フローを示す図である。
【図１６】ストレージシステムの他の構成例を示す図である。
【図１７】ストレージシステムの他の構成例を示す図である。
【図１８】２つのストレージシステム間でのデータのコピーの例を示す図である。
【図１９】従来のストレージシステムのチャネルＩＦ部の詳細構成例を示す図である。
【図２０】暗号処理部の構成例を示す図である。
【図２１】チャネルＩＦ部の他の構成例を示す図である。
【図２２】ディスクＩＦ部の他の構成例を示す図である。
【図２３】サーバとストレージシステムのデータ通信、及び２つのストレージシステム間でのデータの通信の例を示す図である。
【図２４】ストレージシステム１の他の構成例を示す図である。
【図２５】インターフェース部の構成例を示す図である。
【図２６】暗号処理部の他の構成例を示す図である。
【図２７】ストレージシステム１の他の構成例を示す図である。
【図２８】ストレージシステムとサーバ及び他の外部ストレージシステムとの接続構成例を示す図である。
【符号の説明】
【０１４５】
１…ストレージシステム、２…ハードディスク群、３…サーバ、１１…チャネルＩＦ部、１６…ディスクＩＦ部、２１…メモリ部、５１…スイッチ部、１００…マイクロプロセッサ、１０１…ホストＩＦ、１０２…ディスクＩＦ、１０３…転送制御部、１２５…メモリコントローラ、１２７…メモリモジュール、２０１…暗号処理部。
【図１】
0004698982.tif 000002
【図２】
0004698982.tif 000003
【図３】
0004698982.tif 000004
【図４】
0004698982.tif 000005
【図５】
0004698982.tif 000006
【図６】
0004698982.tif 000007
【図７】
0004698982.tif 000008
【図８】
0004698982.tif 000009
【図９】
0004698982.tif 000010
【図１０】
0004698982.tif 000011
【図１１】
0004698982.tif 000012
【図１２】
0004698982.tif 000013
【図１３】
0004698982.tif 000014
【図１４】
0004698982.tif 000015
【図１５】
0004698982.tif 000016
【図１６】
0004698982.tif 000017
【図１７】
0004698982.tif 000018
【図１８】
0004698982.tif 000019
【図１９】
0004698982.tif 000020
【図２０】
0004698982.tif 000021
【図２１】
0004698982.tif 000022
【図２２】
0004698982.tif 000023
【図２３】
0004698982.tif 000024
【図２４】
0004698982.tif 000025
【図２５】
0004698982.tif 000026
【図２６】
0004698982.tif 000027
【図２７】
0004698982.tif 000028
【図２８】
0004698982.tif 000029