(57)【要約】【課題】非並列動作モードの暗復号を同時に実行し処理を高速化可能なディスクアレイ制御装置を提供する。【解決手段】ホスト装置からのディスクアクセス要求に応じてディスクアレイを制御するディスクアレイ制御装置において、複数の非並列モード暗復号対象データを、暗復号処理に関して関連性のない複数のメッセージに分け、各メッセージに属する非並列モード暗復号対象データを複数のブロックデータに分割し、各メッセージに属する各ブロックデータをメッセージ毎に、Ｒｎｄ［０］〜Ｒｎｄ［Ｒ−１］の各行に割当ててデータバッファ１４３に格納し、データバッファ１４３に格納されたブロックデータのうち各行の同じ列のセルに対応したブロックデータをパイプライン暗復号回路１３１でパイプライン処理に合わせて同時に暗復号する。【選択図】図１
2008292852.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置からのディスクアクセス要求に応じてディスクアレイを制御するディスクアレイ装置において、
前記ホスト装置または前記ディスアレイとデータの授受を行うと共に、前記ディスクアクセス要求を識別して、前記ホスト装置からの書き込み要求の場合は、前記ホスト装置からのデータを書き込み転送データとして管理し、前記ホスト装置からの読み込み要求の場合は、前記ディスクアレイからのデータを読み込み転送データとして管理する転送データ管理部と、
前記転送データ管理部の管理下にある書き込み転送データまたは読み込み転送データを暗復号化対象のデータとして複数のメッセージに分けるとともに、メッセージ毎にブロック単位に分割して格納する入力バッファと、
前記入力バッファに格納された暗復号化対象のデータをブロック単位で入力し、入力したブロック単位のデータに対して暗復号化処理を実行する暗復号化処理部と、
前記暗復号化処理部により処理されたデータを前記ホスト装置または前記ディスクアレイに対応づけて前記複数のメッセージに分けて格納する出力バッファと、
前記ホスト装置または前記ディスクアレイとデータの授受を行うと共に、前記ディスクアクセス要求を識別して、前記ホスト装置からの書き込み要求の場合は、前記出力バッファに格納された各メッセージのデータを前記ディスクアレイに転送し、前記ホスト装置からの読み込み要求の場合は、前記出力バッファに格納された各メッセージのデータを前記ホスト装置に転送するデータ転送部と、を備え、
前記暗復号化処理部は、前記入力バッファに格納された各メッセージのデータがブロックデータ間に依存関係があって、シーケンシャルな順序で処理しなければならない非並列動作モードによるデータであるときには、前記入力バッファから各メッセージのデータをブロック単位でインタリーブに取り込み、取り込んだデータに対してパイプラインで暗復号化処理を実行してなる、ディスクアレイ制御装置。
【請求項２】
前記入力バッファは、複数の非並列モード暗復号対象データを、暗復号処理に関して関連性のない複数のメッセージに分け、各メッセージに属する非並列モード暗復号対象データを複数のブロックデータに分割し、各メッセージに属する各ブロックデータをメッセージ毎に各行各列に割当てて格納し、前記暗復号化処理部は、前記入力バッファの各行の同じ列のセルに対応したブロックデータを前記パイプライン処理に合わせて同時に暗復号化してなる、請求項１に記載のディスクアレイ制御装置。
【請求項３】
ホスト装置からのディスクアクセス要求に応じてディスクアレイを制御するディスクアレイ装置において、
前記ホスト装置または前記ディスアレイとデータの授受を行うと共に、前記ディスクアクセス要求を識別して、前記ホスト装置からの書き込み要求の場合は、前記ホスト装置からのデータを書き込み転送データとして管理し、前記ホスト装置からの読み込み要求の場合は、前記ディスクアレイからのデータを読み込み転送データとして管理する転送データ管理部と、
前記転送データ管理部の管理下にある書き込み転送データまたは読み込み転送データを暗復号化対象のデータとして複数のメッセージに分けるとともに、メッセージ毎にブロック単位に分割して格納する入力バッファと、
前記入力バッファに格納された暗復号化対象のデータをブロック単位で入力し、入力したブロック単位のデータに対して暗復号化処理を実行する暗復号化処理部と、
前記暗復号化処理部により処理されたデータを前記ホスト装置または前記ディスクアレイに対応づけて前記複数のメッセージに分けて格納する出力バッファと、
前記ホスト装置または前記ディスクアレイとデータの授受を行うと共に、前記ディスクアクセス要求を識別して、前記ホスト装置からの書き込み要求の場合は、前記出力バッファに格納された各メッセージのデータを前記ディスクアレイに転送し、前記ホスト装置からの読み込み要求の場合は、前記出力バッファに格納された各メッセージのデータを前記ホスト装置に転送するデータ転送部と、を備え、
前記暗復号化処理部は、前記入力バッファに格納された各メッセージのデータがブロックデータ間に依存関係があって、シーケンシャルな順序で処理しなければならない非並列動作モードによるデータであるときには、前記入力バッファから各メッセージのデータをブロック単位でインタリーブに取り込み、取り込んだデータに対してパイプラインで暗復号化処理を実行し、前記入力バッファに格納された各メッセージのデータとして、前記非並列動作モードによるデータの他に、ブロック間に依存関係がなく、ランダムな順序で処理できる並列動作モードによるデータを存在するときには、前記並列動作モードによるデータに対しては、前記入力バッファから各メッセージのデータをブロック単位でシーケンシャルに取り込み、各取り込んだデータに対してパイプラインで暗復号化処理を実行してなる、ディスクアレイ制御装置。
【請求項４】
前記入力バッファは、複数の非並列モード暗復号対象データと複数の並列モード暗復号対象データを、それぞれ暗復号処理に関して関連性のない複数のメッセージに分け、各メッセージに属する非並列モード暗復号対象データまたは並列モード暗復号対象データを複数のブロックデータに分割し、各メッセージに属する各ブロックデータをメッセージ毎に各行各列に割当てて格納し、前記暗復号化処理部は、非並列モード暗復号対象データを含むメッセージ各行の同じ列のセルに対応したブロックデータをパイプライン処理に合わせて同時に暗復号化し、この暗復号処理中に発生する空き処理時間を利用して、並列モード暗復号対象データを含むメッセージ各行の同じ列のセルに対応したブロックデータをパイプライン処理に合わせて同時に暗復号化してなる、請求項３に記載のディスクアレイ制御装置。
【請求項５】
ホスト装置とディスアレイ制御装置との間でデータの授受を行って、前記ホスト装置からのディスクアクセス要求に応じてディスクアレイを制御するディスクアレイ制御方法において、
前記ディスクアレイ制御装置は、
前記ホスト装置または前記ディスアレイとデータの授受を行うと共に、前記ディスクアクセス要求を識別して、前記ホスト装置からの書き込み要求の場合は、前記ホスト装置からのデータを書き込み転送データとして管理し、前記ホスト装置からの読み込み要求の場合は、前記ディスクアレイからのデータを読み込み転送データとして管理する工程と、
前記工程の管理下にある書き込み転送データまたは読み込み転送データを暗復号化対象のデータとして複数のメッセージに分けるとともに、メッセージ毎にブロック単位に分割して入力バッファに格納する工程と、
前記入力バッファに格納された暗復号化対象のデータをブロック単位で入力し、入力したブロック単位のデータに対して暗復号化処理を実行する工程と、
前記暗復号化処理工程で処理されたデータを前記ホスト装置または前記ディスクアレイに対応づけて前記複数のメッセージに分けて出力バッファに格納する工程と、
前記ホスト装置または前記ディスクアレイとデータの授受を行うと共に、前記ディスクアクセス要求を識別して、前記ホスト装置からの書き込み要求の場合は、前記出力バッファに格納された各メッセージのデータを前記ディスクアレイに転送し、前記ホスト装置からの読み込み要求の場合は、前記出力バッファに格納された各メッセージのデータを前記ホスト装置に転送する工程と、を備え、
前記暗復号化処理を実行する工程は、前記入力バッファに格納された各メッセージのデータがブロックデータ間に依存関係があって、シーケンシャルな順序で処理しなければならない非並列動作モードによるデータであるときには、前記入力バッファから各メッセージのデータをブロック単位でインタリーブに取り込み、取り込んだデータに対してパイプラインで暗復号化処理を実行する工程を、含むディスクアレイ制御方法。
【請求項６】
ホスト装置とディスアレイ制御装置との間でデータの授受を行って、前記ホスト装置からのディスクアクセス要求に応じてディスクアレイを制御するディスクアレイ制御方法において、
前記ディスクアレイ制御装置は、
前記ホスト装置または前記ディスアレイとデータの授受を行うと共に、前記ディスクアクセス要求を識別して、前記ホスト装置からの書き込み要求の場合は、前記ホスト装置からのデータを書き込み転送データとして管理し、前記ホスト装置からの読み込み要求の場合は、前記ディスクアレイからのデータを読み込み転送データとして管理する工程と、
前記工程の管理下にある書き込み転送データまたは読み込み転送データを暗復号化対象のデータとして複数のメッセージに分けるとともに、メッセージ毎にブロック単位に分割して入力バッファに格納する工程と、
前記入力バッファに格納された暗復号化対象のデータをブロック単位で入力し、入力したブロック単位のデータに対して暗復号化処理を実行する工程と、
前記暗復号化処理工程で処理されたデータを前記ホスト装置または前記ディスクアレイに対応づけて前記複数のメッセージに分けて出力バッファに格納する工程と、
前記ホスト装置または前記ディスクアレイとデータの授受を行うと共に、前記ディスクアクセス要求を識別して、前記ホスト装置からの書き込み要求の場合は、前記出力バッファに格納された各メッセージのデータを前記ディスクアレイに転送し、前記ホスト装置からの読み込み要求の場合は、前記出力バッファに格納された各メッセージのデータを前記ホスト装置に転送する工程と、を備え、
前記暗復号化処理を実行する工程は、前記入力バッファに格納された各メッセージのデータがブロックデータ間に依存関係があって、シーケンシャルな順序で処理しなければならない非並列動作モードによるデータであるときには、前記入力バッファから各メッセージのデータをブロック単位でインタリーブに取り込み、取り込んだデータに対してパイプラインで暗復号化処理を実行し、前記入力バッファに格納された各メッセージのデータとして、前記非並列動作モードによるデータの他に、ブロック間に依存関係がなく、ランダムな順序で処理できる並列動作モードによるデータを存在するときには、前記並列動作モードによるデータに対しては、前記入力バッファから各メッセージのデータをブロック単位でシーケンシャルに取り込み、各取り込んだデータに対してパイプラインで暗復号化処理を実行する工程を、含むディスクアレイ制御方法。
【請求項７】
ホスト装置と、前記ホスト装置と通信ネットワークを介してデータの授受を行うとともに、前記ホスト装置からのディスクアクセス要求に応じてディスクアレイを制御するディスクアレイ制御装置とを備えたストレージシステムにおいて、
前記ディスクアレイ制御装置は、
前記ホスト装置または前記ディスアレイとデータの授受を行うと共に、前記ディスクアクセス要求を識別して、前記ホスト装置からの書き込み要求の場合は、前記ホスト装置からのデータを書き込み転送データとして管理し、前記ホスト装置からの読み込み要求の場合は、前記ディスクアレイからのデータを読み込み転送データとして管理する転送データ管理部と、
前記転送データ管理部の管理下にある書き込み転送データまたは読み込み転送データを暗復号化対象のデータとして複数のメッセージに分けるとともに、メッセージ毎にブロック単位に分割して格納する入力バッファと、
前記入力バッファに格納された暗復号化対象のデータをブロック単位で入力し、入力したブロック単位のデータに対して暗復号化処理を実行する暗復号化処理部と、
前記暗復号化処理部により処理されたデータを前記ホスト装置または前記ディスクアレイに対応づけて前記複数のメッセージに分けて格納する出力バッファと、
前記ホスト装置または前記ディスクアレイとデータの授受を行うと共に、前記ディスクアクセス要求を識別して、前記ホスト装置からの書き込み要求の場合は、前記出力バッファに格納された各メッセージのデータを前記ディスクアレイに転送し、前記ホスト装置からの読み込み要求の場合は、前記出力バッファに格納された各メッセージのデータを前記ホスト装置に転送するデータ転送部と、を備え、
前記暗復号化処理部は、前記入力バッファに格納された各メッセージのデータがブロックデータ間に依存関係があって、シーケンシャルな順序で処理しなければならない非並列動作モードによるデータであるときには、前記入力バッファから各メッセージのデータをブロック単位でインタリーブに取り込み、取り込んだデータに対してパイプラインで暗復号化処理を実行してなる、ストレージシステム。
【請求項８】
前記入力バッファは、複数の非並列モード暗復号対象データを、暗復号処理に関して関連性のない複数のメッセージに分け、各メッセージに属する非並列モード暗復号対象データを複数のブロックデータに分割し、各メッセージに属する各ブロックデータをメッセージ毎に各行各列に割当てて格納し、前記暗復号化処理部は、前記入力バッファの各行の同じ列のセルに対応したブロックデータを前記パイプライン処理に合わせて同時に暗復号化してなる、請求項７に記載のストレージシステム。
【請求項９】
ホスト装置と、前記ホスト装置と通信ネットワークを介してデータの授受を行うとともに、前記ホスト装置からのディスクアクセス要求に応じてディスクアレイを制御するディスクアレイ制御装置とを備えたストレージシステムにおいて、
前記ディスクアレイ制御装置は、
前記ホスト装置または前記ディスアレイとデータの授受を行うと共に、前記ディスクアクセス要求を識別して、前記ホスト装置からの書き込み要求の場合は、前記ホスト装置からのデータを書き込み転送データとして管理し、前記ホスト装置からの読み込み要求の場合は、前記ディスクアレイからのデータを読み込み転送データとして管理する転送データ管理部と、
前記転送データ管理部の管理下にある書き込み転送データまたは読み込み転送データを暗復号化対象のデータとして複数のメッセージに分けるとともに、メッセージ毎にブロック単位に分割して格納する入力バッファと、
前記入力バッファに格納された暗復号化対象のデータをブロック単位で入力し、入力したブロック単位のデータに対して暗復号化処理を実行する暗復号化処理部と、
前記暗復号化処理部により処理されたデータを前記ホスト装置または前記ディスクアレイに対応づけて前記複数のメッセージに分けて格納する出力バッファと、
前記ホスト装置または前記ディスクアレイとデータの授受を行うと共に、前記ディスクアクセス要求を識別して、前記ホスト装置からの書き込み要求の場合は、前記出力バッファに格納された各メッセージのデータを前記ディスクアレイに転送し、前記ホスト装置からの読み込み要求の場合は、前記出力バッファに格納された各メッセージのデータを前記ホスト装置に転送するデータ転送部と、を備え、
前記暗復号化処理部は、前記入力バッファに格納された各メッセージのデータがブロックデータ間に依存関係があって、シーケンシャルな順序で処理しなければならない非並列動作モードによるデータであるときには、前記入力バッファから各メッセージのデータをブロック単位でインタリーブに取り込み、取り込んだデータに対してパイプラインで暗復号化処理を実行し、前記入力バッファに格納された各メッセージのデータとして、前記非並列動作モードによるデータの他に、ブロック間に依存関係がなく、ランダムな順序で処理できる並列動作モードによるデータを存在するときには、前記並列動作モードによるデータに対しては、前記入力バッファから各メッセージのデータをブロック単位でシーケンシャルに取り込み、各取り込んだデータに対してパイプラインで暗復号化処理を実行してなる、ストレージシステム。
【請求項１０】
前記入力バッファは、複数の非並列モード暗復号対象データと複数の並列モード暗復号対象データを、それぞれ暗復号処理に関して関連性のない複数のメッセージに分け、各メッセージに属する非並列モード暗復号対象データまたは並列モード暗復号対象データを複数のブロックデータに分割し、各メッセージに属する各ブロックデータをメッセージ毎に各行各列に割当てて格納し、前記暗復号化処理部は、非並列モード暗復号対象データを含むメッセージ各行の同じ列のセルに対応したブロックデータをパイプライン処理に合わせて同時に暗復号化し、この暗復号処理中に発生する空き処理時間を利用して、並列モード暗復号対象データを含むメッセージ各行の同じ列のセルに対応したブロックデータをパイプライン処理に合わせて同時に暗復号化してなる、請求項９に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報家電やコンピュータ等における暗号／復号技術、特にＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）に代表されるディスクアレイにデータを格納するディスクアレイ制御装置やストレージシステムにおける暗号／復号技術に関する。
【背景技術】
【０００２】
現在、企業の内部統制強化を定めた日本版ＳＯＸ法の制定により、企業は大量の帳票データの保護／管理を行わなければならず、それらの大量のデータを一括して管理することができるデータセンタの自社設置、もしくはデータセンタのアウトソーシングに注目が集まっている。データセンタでは、データアクセス高速化や格納するデータの保護のために、ＲＡＩＤに代表されるディスクアレイシステムにデータを冗長化し格納する。
【０００３】
近年、このデータセンタにおいて、情報漏えいが問題となっている。この情報漏えいは外部からの不正アクセスによる犯行と、ディスクアレイを構成するＨＤＤの盗難などの内部犯行に分類される。このＨＤＤの盗難による情報漏えいを防止する１つの方法は、ＨＤＤに格納されるデータを暗号化することである。これにより、データセンタ内部からＨＤＤが持ち出されても、暗号化に使用した鍵を入手しない限り、暗号化前のデータへのアクセスを無効にすることができる。
【０００４】
ディスクへ格納するデータの暗号化には、ブロック暗号を用いる場合が多い。ブロック暗号は、データを一定長のブロックデータに分割し、鍵やＩＶ（Ｉｎｉｔｉａｌ  Ｖｅｃｔｏｒ）を用いてブロック単位に暗号化し、同一長の暗号データを出力する共通鍵暗号方式である。２００７年現在、共通鍵暗号方式においては、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）が、事実上世界標準となっている。ＡＥＳは、ラウンドと呼ばれる単位毎に換字処理と転置処理を繰り返し行うスピン構造を持った暗号アルゴリズムである。
【０００５】
このブロック暗号では、利用シーンに合わせて暗号化を行うために、複数の暗号利用モードが用意されている。この暗号利用モードは、ブロックデータ間に依存関係がなくランダムな順序でブロックデータを処理できる並列処理性を持ったモード（以下並列動作モード）と、ブロックデータ間に依存関係がありシーケンシャルな順序でブロックデータを処理しなければならない並列処理性を持たないモード（以下非並列動作モード）に分類できる。
【０００６】
並列動作モードではブロックデータ間に関係性を持たせず暗号化するため、各々のブロックデータの処理順序を意識せずに、つまりランダムな順序で暗復号可能である。並列動作モードでの暗復号処理としては、例えば、暗号回路をラウンド毎にパイプライン化し、各段にブロックデータを次々に入力することで暗復号を高速に処理するようにしたものが提案されている（特許文献１参照）。
【０００７】
【特許文献１】特開２００２−２９７０３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
非並列動作モードでは、ブロックデータ間に関係性を持たせて暗号化する。非並列動作モードの１つＣＢＣ（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ）で、データＤを暗号化する場合を例に説明する。なお、データＤはブロックデータＤｂ［０］、Ｄｂ［１］で構成されているとする。
【０００９】
ＣＢＣの暗号化では、１つ目のブロックデータＤｂ［０］を暗号処理する前に、Ｄｂ［０］とＩＶの間で排他的論理和（ＸＯＲ）を取り、（Ｄｂ［０］  ＸＯＲ  ＩＶ）を暗号化する。次のブロックデータＤｂ［１］を暗号化する際は、前記（Ｄｂ［０］  ＸＯＲ  ＩＶ）の暗号結果Ｃ（Ｄｂ［０］  ＸＯＲ  ＩＶ）と、前記Ｄｂ［１］をＸＯＲし、（Ｄｂ［１］  ＸＯＲ  Ｃ（Ｄｂ［０］  ＸＯＲ  ＩＶ））を暗号化する。
【００１０】
しかし、このように非並列動作モードでは、以前に処理したブロックデータの暗号結果を利用して以降のブロックデータを何かしらの方法で演算し、その結果を暗号化するため、Ｄｂ［０］とＤｂ［１］のように、同一データに含まれる複数のブロックデータを並列に暗復号することはできない。このため、特許文献１に記載された暗号回路を搭載したディスクアレイシステムでは、データを非並列動作モードで暗復号する場合、ブロックデータを次々にパイプライン回路に入力できないため、並列動作モードの暗復号に比べ低速となる。
【００１１】
さらに、複数の暗号利用モードで暗号化されたデータを格納するディスクアレイシステムにおいて、特許文献１に記載された暗号回路では、複数の暗号利用モードを並列に実行することができない。暗号利用モードで暗号化されたデータを格納するディスクアレイシステムとしては、例えば、ディスクアレイシステムに格納するデータを扱う顧客により、利用する暗号利用モードが異なるディスクアレイシステムがあり、また、ディスクのセクタ単位で暗号化を行うシステムとしては、セクタ長がブロックデータの倍数長であるディスクに格納されるデータの暗号化に利用する暗号利用モードと、セクタ長がブロックデータの倍数長でないディスクに格納されるデータの暗号化に利用する暗号利用モードが異なるディスクアレイシステムがある。
【００１２】
複数のデータを各々別の暗号利用モードで暗復号する場合、１つの暗号利用モードの暗復号処理の間、他の暗号利用モードの暗復号が実行できないため、パイプライン暗号回路の各段に空きが発生し、高速に暗復号処理できない。
【００１３】
本発明は、上述の事情を考慮してなされたものであり、非並列動作モードのデータの暗復号を同時実行することを第１の目的とする。また、本発明は、非並列動作モードの暗復号と並列動作モードのデータの暗復号を複数同時に実行することを第２の目的とする。さらに、本発明は、複数の暗号利用モードの暗復号同時実行において、１つの暗号利用モードのデータの暗復号に処理が偏ることによって、他の暗号利用モードのデータの暗復号の処理レイテンシが発生するのを防止することを第３の目的とする。
【課題を解決するための手段】
【００１４】
前記目的を達成するために、本発明は、ホスト装置からのディスクアクセス要求に応じてディスクアレイを制御するに際して、ディスクアクセス要求を識別して、ホスト装置からの書き込み要求の場合は、ホスト装置からのデータを書き込み転送データとして管理し、ホスト装置からの読み込み要求の場合は、ディスクアレイからのデータを読み込み転送データとして管理し、この管理下にある書き込み転送データまたは読み込み転送データを暗復号化対象のデータとして複数のメッセージに分けるとともに、メッセージ毎にブロック単位に分割して入力バッファに格納し、入力バッファに格納した各メッセージのデータがブロックデータ間に依存関係があって、シーケンシャルな順序で処理しなければならない非並列動作モードによるデータであるときには、入力バッファから各メッセージのデータをブロック単位でインタリーブに取り込み、取り込んだデータに対してパイプラインで暗復号化処理を実行し、非並列動作モードによるデータの他に、ブロック間に依存関係がなく、ランダムな順序で処理できる並列動作モードによるデータを存在するときには、並列動作モードによるデータに対しては、入力バッファから各メッセージのデータをブロック単位でシーケンシャルに取り込み、各取り込んだデータに対してパイプラインで暗復号化処理を実行してする。
【００１５】
具体的には、本発明は、ホスト装置からのディスクアクセス要求に応じてディスクアレイを制御するディスクアレイ装置において、前記ホスト装置または前記ディスアレイとデータの授受を行うと共に、前記ディスクアクセス要求を識別して、前記ホスト装置からの書き込み要求の場合は、前記ホスト装置からのデータを書き込み転送データとして管理し、前記ホスト装置からの読み込み要求の場合は、前記ディスクアレイからのデータを読み込み転送データとして管理する転送データ管理部と、前記転送データ管理部の管理下にある書き込み転送データまたは読み込み転送データを暗復号化対象のデータとして複数のメッセージに分けるとともに、メッセージ毎にブロック単位に分割して格納する入力バッファと、前記入力バッファに格納された暗復号化対象のデータをブロック単位で入力し、入力したブロック単位のデータに対して暗復号化処理を実行する暗復号化処理部と、前記暗復号化処理部により処理されたデータを前記ホスト装置または前記ディスクアレイに対応づけて前記複数のメッセージに分けて格納する出力バッファと、前記ホスト装置または前記ディスクアレイとデータの授受を行うと共に、前記ディスクアクセス要求を識別して、前記ホスト装置からの書き込み要求の場合は、前記出力バッファに格納された各メッセージのデータを前記ディスクアレイに転送し、前記ホスト装置からの読み込み要求の場合は、前記出力バッファに格納された各メッセージのデータを前記ホスト装置に転送するデータ転送部と、を備え、前記暗復号化処理部は、前記入力バッファに格納された各メッセージのデータがブロックデータ間に依存関係があって、シーケンシャルな順序で処理しなければならない非並列動作モードによるデータであるときには、前記入力バッファから各メッセージのデータをブロック単位でインタリーブに取り込み、取り込んだデータに対してパイプラインで暗復号化処理を実行してなる、ことを特徴とする。
【００１６】
本発明の好適な形態においては、前記入力バッファは、複数の非並列モード暗復号対象データを、暗復号処理に関して関連性のない複数のメッセージに分け、各メッセージに属する非並列モード暗復号対象データを複数のブロックデータに分割し、各メッセージに属する各ブロックデータをメッセージ毎に各行各列に割当てて格納し、前記暗復号化処理部は、前記入力バッファの各行の同じ列のセルに対応したブロックデータを前記パイプライン処理に合わせて同時に暗復号化してなる。
【００１７】
また、本発明は、ホスト装置からのディスクアクセス要求に応じてディスクアレイを制御するディスクアレイ装置において、前記ホスト装置または前記ディスアレイとデータの授受を行うと共に、前記ディスクアクセス要求を識別して、前記ホスト装置からの書き込み要求の場合は、前記ホスト装置からのデータを書き込み転送データとして管理し、前記ホスト装置からの読み込み要求の場合は、前記ディスクアレイからのデータを読み込み転送データとして管理する転送データ管理部と、前記転送データ管理部の管理下にある書き込み転送データまたは読み込み転送データを暗復号化対象のデータとして複数のメッセージに分けるとともに、メッセージ毎にブロック単位に分割して格納する入力バッファと、前記入力バッファに格納された暗復号化対象のデータをブロック単位で入力し、入力したブロック単位のデータに対して暗復号化処理を実行する暗復号化処理部と、前記暗復号化処理部により処理されたデータを前記ホスト装置または前記ディスクアレイに対応づけて前記複数のメッセージに分けて格納する出力バッファと、前記ホスト装置または前記ディスクアレイとデータの授受を行うと共に、前記ディスクアクセス要求を識別して、前記ホスト装置からの書き込み要求の場合は、前記出力バッファに格納された各メッセージのデータを前記ディスクアレイに転送し、前記ホスト装置からの読み込み要求の場合は、前記出力バッファに格納された各メッセージのデータを前記ホスト装置に転送するデータ転送部と、を備え、前記暗復号化処理部は、前記入力バッファに格納された各メッセージのデータがブロックデータ間に依存関係があって、シーケンシャルな順序で処理しなければならない非並列動作モードによるデータであるときには、前記入力バッファから各メッセージのデータをブロック単位でインタリーブに取り込み、取り込んだデータに対してパイプラインで暗復号化処理を実行し、前記入力バッファに格納された各メッセージのデータとして、前記非並列動作モードによるデータの他に、ブロック間に依存関係がなく、ランダムな順序で処理できる並列動作モードによるデータを存在するときには、前記並列動作モードによるデータに対しては、前記入力バッファから各メッセージのデータをブロック単位でシーケンシャルに取り込み、各取り込んだデータに対してパイプラインで暗復号化処理を実行してなる、ことを特徴とする。
【００１８】
本発明の好適な形態においては、前記入力バッファは、複数の非並列モード暗復号対象データと複数の並列モード暗復号対象データを、それぞれ暗復号処理に関して関連性のない複数のメッセージに分け、各メッセージに属する非並列モード暗復号対象データまたは並列モード暗復号対象データを複数のブロックデータに分割し、各メッセージに属する各ブロックデータをメッセージ毎に各行各列に割当てて格納し、前記暗復号化処理部は、非並列モード暗復号対象データを含むメッセージ各行の同じ列のセルに対応したブロックデータをパイプライン処理に合わせて同時に暗復号化し、この暗復号処理中に発生する空き処理時間を利用して、並列モード暗復号対象データを含むメッセージ各行の同じ列のセルに対応したブロックデータをパイプライン処理に合わせて同時に暗復号化してなる。
【発明の効果】
【００１９】
本発明によれば、搭載する暗号アルゴリズムのラウンド数倍だけ高速化できる。
また、複数の暗号利用モード暗復号対象データを暗復号する場合、１つの暗号利用モードの暗復号処理にユーザが定めた閾値以下のレイテンシしか発生させないので、ユーザに最適な使い方を提供できる。
【発明を実施するための最良の形態】
【００２０】
【実施例１】
【００２１】
以下、図面を用いて本発明の第１実施形態を詳細に説明する。
図１は、本発明の第１実施形態に係るストレージシステムを示す構成図である。図１において、ストレージシステムは、ホスト装置１００と、ディスクアレイ１０１と、ディスクアレイ制御装置１０２を備え、ホスト装置１００は、情報家電やコンピュータのような、ディスクアレイ１０１に格納されたデータを使用する上位装置あるいは上位計算機で構成され、通信ネットワークを介してディスクアレイ制御装置１０２と情報の授受を行う。
【００２２】
ディスクアレイ１０１はディスクドライブ１１０〜１１２で構成される。ディスクアレイ制御装置１０２は、ディスクアレイ１０１を制御し、ホスト装置１００からのディスクアクセス要求を受け、データの読み書きを行う。ディスクアレイ制御装置１０２は、鍵ライブラリ１２０と、ＩＶライブラリ１２１と、暗号利用モードライブラリ１２２と、入力側非並列動作モードデータキュー１２３と、キューデータテーブル１２４と、アドレスマップテーブル１２５と、暗復号処理部１２６と、出力側データキュー１２７で構成される。
【００２３】
鍵ライブラリ１２０は、ホスト装置１００からの書き込み要求時に、ディスクアレイ１０１に格納されるデータを暗号化する際に使用する暗号鍵が格納され、ホスト装置１００からの読み込み要求時に、ディスクアレイ１０１から読み出され、ホスト装置１００に転送するデータを復号する際に使用する復号鍵が格納される。
【００２４】
ＩＶライブラリ１２１は、ホスト装置１００からの書き込み要求時に、ディスクアレイ１０１に格納されるデータを暗号化する際に使用するＩＶが格納され、ホスト装置１００からの読み込み要求時に、ディスクアレイ１０１から読み出され、ホスト装置１００に転送するデータを復号する際に使用するＩＶが格納される。
【００２５】
暗号利用モードライブラリ１２２は、ホスト装置１００からの書き込み要求時に、ディスクアレイ１０１に格納されるデータを暗号化する際に必要な暗号利用モードが保持され、ホスト装置１００からの読み込み要求時に、ディスクアレイ１０１から読み出され、ホスト装置１００に転送するデータを復号する際に必要な復号利用モードが保持される。
【００２６】
入力側非並列動作モードデータキュー１２３は、ディスクアレイ制御装置１０２によって、ホスト装置１００からの書き込み要求時に、ホスト装置１００から転送されるデータにおける非並列モード暗復号対象データをキューイングし、ホスト装置１００からの読み込み要求時に、ホスト装置１００のディスクアクセス要求時に指定されるアドレスに応じたデータにおける非並列動作モード暗復号対象データをディスクアレイ１０１からキューイングする。
【００２７】
なお、入力側非並列動作モードデータキュー１２３にキューイングされるデータのサイズは、ディスクアレイ１０１を構成するディスクドライブ１１０〜１１２のセクタ長である。また、キューイングされるデータ間には暗復号処理に関して関連性がないものとする。例えば、ＣＢＣ暗号利用モードのデータを複数キューイングする場合、キューイングされるデータそれぞれにおける先頭ブロックデータはＩＶとＸＯＲされ、そのＸＯＲ演算結果の暗復号が実施されるものとする。
【００２８】
キューデータテーブル１２４には、ディスクアレイ制御装置１０２によって、データキューイング順序、書き込み／読み込みアドレス、書き込み／読み込みデータサイズ、データ暗復号に使用する暗号鍵情報、データ暗復号に使用するＩＶ情報、データ暗復号の暗号利用モード等が設定される。
【００２９】
アドレスマップテーブル１２５は、ディスクアレイ１０１に格納されるデータのディスクアドレスに対する、ディスク領域で異なる複数の暗号鍵と、ディスク領域で異なる複数のＩＶと、ディスク領域で異なる複数の暗号利用モードが記載され、ディスクアレイ制御装置１０２が、キューデータテーブル１２４を作成する際に参照される。
【００３０】
暗復号処理部１２６は、ディスクアレイ制御装置１０２によって、入力側非並列動作モードデータキュー１２３から転送されるデータの暗復号処理を行う。出力側データキュー１２７は、暗復号処理部１２６から出力されるデータをキューイングする。
【００３１】
暗復号処理部１２６は、入力制御部１３０と、パイプライン暗復号回路１３１と、出力制御部１３２で構成される。入力制御部１３０は、暗号鍵バッファ１４０と、ＩＶバッファ１４１と、暗号利用モードバッファ１４２と、データバッファ１４３で構成される。入力制御部１３０は、暗号鍵ライブラリ１２０から転送される暗号鍵を暗号鍵バッファ１４０に格納し、ＩＶライブラリ１２１から転送されるＩＶをＩＶバッファ１４１に格納し、暗号利用モードライブラリ１２２から転送される暗号利用モード情報を暗号利用モード１４２に格納し、入力側非並列動作モードデータキュー１２３から転送されるデータをデータバッファ１４３に格納する。
【００３２】
なお、暗号鍵バッファ１４０は、バッファ容量によって異なるが、最大でＲ個の暗号鍵を保持することができ、ＩＶバッファ１４１は、バッファ容量によって異なるが、最大でＲ個のＩＶを保持することができ、暗号利用モードバッファ１４２は、バッファ容量によって異なるが、最大でＲ個の暗号利用モード情報を保持することができる。
【００３３】
ここで、Ｒは暗号アルゴリズムによって決定される任意の整数である。例えば、１２８ビットの鍵長の暗号鍵を使用するＡＥＳの場合、Ｒは１０である。また、データバッファ１４３は、行列構造を取り、バッファ容量によって異なるが、最大でＲ行×Ｓｓ／Ｓｂ列である。ここで、Ｓｓは、ディスクアレイ１０１を構成するディスクドライブ１１０〜１１２のセクタ長を示す。また、Ｓｂは実装する暗号アルゴリズムの暗復号処理単位であるブロック長を示し、例えば、ＡＥＳの場合、Ｓｂは１６バイトである。データバッファ１４３からパイプライン暗復号回路１３１に転送されるデータは、暗号処理単位であるブロックデータ単位で転送される。
【００３４】
パイプライン暗復号回路１３１は、入力側暗号利用モード処理回路１５０と、ラウンド処理回路１５１〜１５３と、データ保持レジスタ１５４〜１５６と、出力側暗号利用モード処理回路１５７で構成される。パイプライン暗復号回路１３１は、入力制御部１３０から転送される暗号鍵と、ＩＶと、暗号利用モードを利用して、入力制御部１３０から転送されるデータを、ホスト装置１００からの書き込み要求の場合は暗号化し、ホスト装置１００からの読み込み要求の場合は復号化する。
【００３５】
パイプライン暗復号回路１３１の暗復号処理において、入力側暗号利用モード処理回路１５０は、ラウンド０処理回路１５１にデータを入力する前に、入力制御部１３０から転送されるデータを加工する必要がある暗号利用モードの処理を行う。例えば、ＣＢＣ暗号利用モードの暗号化時に、データバッファ１４３から転送されるデータにおいて先頭ブロックデータの場合は、ＩＶバッファ１４１から転送されるＩＶと、データバッファ１４３から転送されるブロックデータをＸＯＲし、そのＸＯＲ演算結果をラウンド０処理回路１５１に転送し、データバッファ１４３から転送されるデータにおいて先頭以外のブロックデータの場合は、出力側暗号利用モード処理回路１５７から出力されるブロックデータと、データバッファ１４３から転送されるブロックデータをＸＯＲし、そのＸＯＲ演算結果をラウンド０処理回路１５１に転送する。
【００３６】
ラウンド０〜Ｒ−１処理回路１５１〜１５３は、スピン構造を持った暗号アルゴリズムの各ラウンド処理を行う回路であり、数珠つなぎで接続されたパイプライン構造をとる。ラウンド０〜Ｒ−１処理回路１５１〜１５３に暗号アルゴリズムとしてＡＥＳを実装する場合、各ラウンドの処理時間は同一であり、ラウンド０〜Ｒ−１処理回路１５１〜１５３の入力／出力のタイミングは同一となる。各ラウンドの処理時間が異なる暗号アルゴリズムを実装する場合でも、各ラウンドの処理時間を、最大の処理時間がかかるラウンド処理回路の処理時間に合わせることで、ラウンド０〜Ｒ−１処理回路１５１〜１５３の入力／出力のタイミングを同一にすることができる。
【００３７】
データ保持レジスタ１５４には、入力側暗号利用モード処理回路１５０から出力されるデータがラウンド０処理回路１５１に入力されるタイミングで、データバッファ１４３から出力されるデータが入力され、ラウンド０処理回路１５１での処理が終了し、その処理結果が出力されるタイミングで、データ保持レジスタ１５４は保持していたデータを出力する。
【００３８】
同様に、データ保持レジスタ１５５は、ラウンド０処理回路１５１からラウンド１処理回路１５２にデータが入力されるタイミングで、データ保持レジスタ１５４から出力されるデータを入力し、ラウンド１処理回路１５２での処理が終了し、その処理結果が出力されるタイミングで保持していたデータを出力する。
【００３９】
同様に、データ保持レジスタ１５６は、ラウンドＲ−１処理回路１５３にデータが入力されるタイミングで、データを入力し、ラウンドＲ−１処理回路１５３での処理が終了し、その処理結果が出力されるタイミングで保持していたデータを出力する。
【００４０】
出力側暗号利用モード処理回路１５７は、ラウンドＲ−１処理回路１５３から出力されるデータと、データ保持レジスタ１５６から出力されるデータを入力し、出力制御部１３２にデータを出力する前に、ラウンドＲ−１処理回路１５３から出力されるデータを加工する必要がある暗号利用モードの処理を行う。例えば、ＣＢＣ暗号利用モードの暗号化時は、ラウンドＲ−１処理回路１５３から出力されるデータを未加工で出力制御部１３２および入力側暗号利用モード処理回路１５０に出力する。
【００４１】
また、例えば、ＯＦＢ（Ｏｕｔｐｕｔ  ＦｅｅｄＢａｃｋ）暗号利用モードの暗号化時は、ラウンドＲ−１処理回路１５３から出力されるデータと、データ保持レジスタ１５６から出力されるデータをＸＯＲし、そのＸＯＲ演算結果を出力制御部１３２および入力側暗号利用モード処理回路１５０に出力する。
【００４２】
出力制御部１３２は、データバッファ１６０で構成される。データバッファ１６０は、行列構造を取り、バッファ容量によって異なるが、最大でＲ行×Ｓｓ／Ｓｂ列である。データバッファ１６０のサイズは、データバッファ１４３と同一である。出力制御部１３２は、パイプライン暗復号回路１３１から出力されるブロックデータを、データバッファ１６０に一時保持し、１行に格納されるデータがＳｓになった時点で、データを出力側データキュー１２７へ転送する。
【００４３】
次に、図２を参照して、ディスクアレイ制御装置１０２における暗号鍵ライブラリ１２０と、ＩＶライブラリ１２１と、暗号利用モードライブラリ１２２と、入力側非並列動作モードデータキュー１２３それぞれと、入力制御部１３０のインタフェースについて説明する。
【００４４】
図２は、非並列動作モードデータキュー１２３にデータＳＰ０〜ＳＰ（Ｒ−１）をキューイングした状態を示す。図２において、暗号鍵ライブラリ１２０は入力制御部１３０内の暗号鍵バッファ１４０と接続されており、ディスクアレイ制御装置１０２は、キューデータテーブル１２４のキューイング順序に従って、対応する暗号鍵を暗号鍵バッファ１４０内の鍵Ｒｎｄ０もしくは鍵Ｒｎｄ１、鍵Ｒｎｄ（Ｒ−１）に出力する。図２では、暗号鍵ライブラリ１２０内の鍵ｉを鍵Ｒｎｄ０に、暗号鍵ライブラリ１２０内の鍵ｊを鍵Ｒｎｄ１に、暗号鍵ライブラリ１２０内の鍵ｉを鍵Ｒｎｄ（Ｒ−１）に出力する。
【００４５】
ＩＶライブラリ１２１は、入力制御部１３０内のＩＶバッファ１４１と接続されており、ディスクアレイ制御装置１０２は、キューデータテーブル１２４のキューイング順序に従って、対応するＩＶをＩＶバッファ１４１内のＩＶ Ｒｎｄ０もしくはＩＶ Ｒｎｄ１、ＩＶ Ｒｎｄ（Ｒ−１）に出力する。図２では、ＩＶライブラリ１２１内のＩＶｓをＩＶ Ｒｎｄ０に、ＩＶライブラリ１２１内のＩＶｔをＩＶ Ｒｎｄ１に、ＩＶライブラリ１２０内のＩＶｕをＩＶ Ｒｎｄ（Ｒ−１）に出力する。
【００４６】
暗号利用モードライブラリ１２２は、入力制御部１３０内の暗号利用モードバッファ１４２と接続されており、ディスクアレイ制御装置１０２は、キューデータテーブル１２４のキューイング順序に従って、対応する暗号利用モードを暗号利用モードバッファ１４２内のモードＲｎｄ０もしくはモードＲｎｄ１、モードＲｎｄ（Ｒ−１）に出力する。図２では、暗号利用モードライブラリ１２２内のＭａをモードＲｎｄ０に、暗号利用モードライブラリ１２２内のＭｂをモードＲｎｄ１に、暗号利用モードライブラリ１２２内のｉを鍵Ｒｎｄ（Ｒ−１）に出力する。なお、ＭａおよびＭｂは非並列動作モードの１種を示す。
【００４７】
入力側非並列動作モードデータキュー１２３は、入力制御部１３０内のデータバッファ１４３と接続されており、ディスクアレイ制御装置１０２は、キューデータテーブル１２４のキューイング順序に従って、対応するデータをデータバッファ１４３内のデータＲｎｄ０もしくはデータＲｎｄ１、データＲｎｄ（Ｒ−１）に出力する。図２では、入力側非並列動作モードデータキュー１２３内のデータＳＰ０をデータＲｎｄ０に、入力側非並列動作モードデータキュー１２３内のデータＳＰ１をデータＲｎｄ１に、入力側非並列動作モードデータキュー１２３内のデータＳＰ（Ｒ−１）をデータＲｎｄ（Ｒ−１）に出力する。
【００４８】
次に、図３を参照して、ディスクアレイ制御装置１０２のデータ転送処理について説明する。図３は、ディスクアレイ制御装置１０２に対して、ホスト装置１００からの書き込み要求、もしくはホスト装置１００からの読み込み要求が発生した際の処理フローを示している。
【００４９】
ディスクアレイ制御装置１０２は、ホスト装置１００からの書き込み要求の場合は、ホスト装置１００から転送された転送データ、ホスト装置１００からの読み込み要求の場合は、ディスクアレイ１０１から転送された転送データを受け付ける（ステップ３００）。ここでは、前述の転送された転送データのデータ数をＮとする。なお、Ｎは、非並列動作モードデータキュー１２３にキューイング可能なデータ数以下である任意の整数である。
【００５０】
ディスクアレイ制御装置１０２は、アドレスマップテーブル１２５を参照して、ホスト装置１００からの書き込み／読み込み要求のディスクアクセスアドレス／サイズに従い、対応する暗号鍵、ＩＶ、暗号利用モードの情報等と共に、転送されたＮ個の転送データの情報をキューデータテーブル１２４に設定する（ステップ３０１）。なお、キューデータテーブル１２４において、転送データの情報は転送されたデータ順に作成される。
【００５１】
続けて、ディスクアレイ制御装置１０２は、入力側非並列動作モードデータキュー１２３に転送されたデータを転送順に従いキューイングし（ステップ３０２）、次に、キューデータテーブル１２４を参照して、キューイングされたデータの順に合わせて、暗号鍵を暗号鍵ライブラリ１２０から暗号バッファ１４０に転送し、ＩＶをＩＶライブラリ１２１からＩＶバッファ１４１に転送し、暗号利用モード情報を暗号利用モードライブラリ１２２から暗号利用モードバッファ１４２に転送する（ステップ３０３）。
【００５２】
同様に、ディスクアレイ制御装置１０２は、キューデータテーブル１２４を参照して、キューイングされたデータの順に合わせて、非並列動作モードデータキュー１２３にキューイングされたデータを、データバッファ１４３に格納できる数だけ転送する（ステップ３０４）。この際、ディスクアレイ制御装置１０２における暗復号処理部１２６は、暗号鍵バッファ１４０に設定された暗号鍵と、ＩＶバッファ１４１に設定されたＩＶと、暗号利用モードバッファ１４２に設定された暗号利用モードを使用して、データバッファ１４３に格納されたデータの暗復号処理を行う（ステップ３０５）。このステップ３０５の詳細は後述する。
【００５３】
一方、ディスクアレイ制御装置１０２は、出力側データキュー１２７が、暗復号処理部１２６から出力された暗復号結果データをキューイングし（ステップ３０６）、ホスト装置１００からの書き込み要求の場合は、キューイングしたデータをディスクアレイ１０１に転送し、ホスト装置１００からの読み込み要求の場合は、キューシングしたデータをホスト装置１００へデータを転送し（ステップ３０７）、転送したデータに関する情報をキューデータテーブル３０８から削除し（ステップ３０８）、このルーチンでの処理を終了する。
【００５４】
次に、図４を参照して、暗復号処理部１２６のデータ暗復号処理について説明する。図４は、暗号処理部１２６の詳細な内部ブロック図である。図４において、入力制御部１３０は、データバッファのＲｎｄ［０］行のデータを処理する際に、暗号鍵バッファ１４０の鍵Ｒｎｄ０に保持された暗号鍵を、入力側暗号利用モード処理回路１５０に出力する。同様に、入力制御部１３０は、データバッファのＲｎｄ［１］行のデータを処理する際に、暗号鍵バッファ１４０の鍵Ｒｎｄ１に保持された暗号鍵を入力側暗号利用モード処理回路１５０に出力し、データバッファのＲｎｄ［Ｒ−１］行のデータを処理する際に、暗号鍵バッファ１４０の鍵Ｒｎｄ（Ｒ−１）に保持された暗号鍵を入力側暗号利用モード処理回路１５０に出力する。
【００５５】
ＩＶバッファ１４１の入出力動作に関しても同じく、入力制御部１３０は、データバッファのＲｎｄ［０］行のデータを処理する際に、ＩＶバッファ１４１のＩＶ Ｒｎｄ０に保持されたＩＶを入力側暗号利用モード処理回路１５０に出力し、データバッファのＲｎｄ［１］行のデータを処理する際に、ＩＶバッファ１４１のＩＶ Ｒｎｄ１に保持されたＩＶを入力側暗号利用モード処理回路１５０に出力し、データバッファのＲｎｄ［Ｒ−１］行のデータを処理する際に、ＩＶバッファ１４１のＩＶ Ｒｎｄ（Ｒ−１）に保持されたＩＶを入力側暗号利用モード処理回路１５０に出力する。
【００５６】
暗号利用モードバッファ１４２の入出力動作に関しても同じく、入力制御部１３０は、データバッファのＲｎｄ［０］行のデータを処理する際に、暗号利用モードバッファ１４２のモードＲｎｄ０に保持された暗号利用モード情報を入力側暗号利用モード処理回路１５０に出力し、データバッファのＲｎｄ［１］行のデータを処理する際に、暗号利用モードバッファ１４２のモードＲｎｄ１に保持された暗号利用モード情報を入力側暗号利用モード処理回路１５０に出力し、データバッファのＲｎｄ［Ｒ−１］行のデータを処理する際に、暗号利用モードバッファ１４２のモードＲｎｄ（Ｒ−１）に保持された暗号利用モード情報を入力側暗号利用モード処理回路１５０に出力する。
【００５７】
データバッファ１４３は、Ｒｎｄ［０］［０］〜Ｒｎｄ［Ｒ−１］［Ｓｓ／Ｓｂ］のセルで構成される行列構造を持ち、全ての行列セルからデータを入力側暗号利用モード処理回路１５０に出力することができる。
【００５８】
次に、図５を参照して、入力制御部１３０のパイプライン暗復号回路１３１へのデータ出力処理について説明する。図５は、入力制御部１３０によるパイプライン暗復号回路１３１へのデータ出力処理のフローチャートを示す。
【００５９】
入力制御部１３０は、暗号鍵バッファ１４０と、ＩＶバッファ１４１と、暗号利用モードバッファ１４２における出力対象をＲｎｄ０に初期化し、データバッファ１４３の出力対象をＲｎｄ［０］［０］に初期化し（ステップ４００）、続けて、データバッファ１４３に処理すべきセルがあるかどうかを判定し（ステップ４０１）、ステップ４０１が真であれば、処理を終了し、ステップ４０１が偽であれば、データバッファ１４３の現在の処理対象行に未処理データがあるかどうかを判定し（ステップ４０２）、ステップ４０２が真であれば、データバッファ１４３の処理対象行のデータを出力すべきタイミングかどうかを判定し（ステップ４０３）、ステップ４０２が偽であれば、ステップ４０７へ進む。
【００６０】
入力制御部１３０は、ステップ４０３では、現在の処理対象行における（現在の処理対象列−１）列目のブロックデータが、出力側暗号利用モード処理回路１５７から入力側暗号利用モード処理回路１５０に出力されるタイミングを真とし、つまり、（現在の処理対象列−１）列目のブロックデータが出力されてから、Ｒ×ラウンド処理時間後のタイミングが真とし、ステップ４０３が真であれば、出力対象の暗号鍵／ＩＶ／暗号利用モード情報／データをパイプライン暗復号回路１３１へ出力する（ステップ４０４）。ステップ４０４の処理時間が、ラウンド処理回路１５１〜１５３における最大の処理時間未満であれば、入力制御部１３０は、１ラウンド処理時間が経過するまでウェイトし（ステップ４０５）、ステップ４０３が偽であれば、1ラウンド処理時間分ウェイトし（ステップ４０６）、ステップ４０３が真になるまで、ステップ４０３とステップ４０６を繰り返す。
【００６１】
続けて、入力制御部１３０は、データバッファ１４３における現在の処理対象行が最終行かどうかを判定し（ステップ４０７）、ステップ４０７が真であれば、暗号鍵バッファ１４０と、ＩＶバッファ１４１と、暗号利用モードバッファ１４２の出力対象をＲｎｄ０にし、データバッファ１４３の出力対象をＲｎｄ［０］行の次の列のセルに移動する（ステップ４０８）。ステップ４０７が偽であれば、入力制御部１３０は、暗号鍵バッファ１４０と、ＩＶバッファ１４１と、暗号利用モードバッファ１４２の出力対象を次のＲｎｄ分にし、データバッファ１４３の出力対象を次の行の同じ列のセルに移動し（ステップ４０９）、ステップ４０１〜４０９を繰り返し、ステップ４０１が真となれば、処理を終了する。
【００６２】
すなわち、入力制御部１３０は、複数の非並列モード暗復号対象データを、暗復号処理に関して関連性のない複数のメッセージ（「グループ」といっても良い。）に分け、各メッセージに属する非並列モード暗復号対象データを複数のブロックデータに分割し、各メッセージに属する各ブロックデータをメッセージ毎に、Ｒｎｄ［０］〜Ｒｎｄ［Ｒ−１］の各行に割当てたとき、各行の同じ列のセルに対応したブロックデータをパイプライン処理に合わせてパイプライン暗復号回路１３１に出力するようになっている。
【００６３】
次に、図６を参照して、パイプライン暗復号回路１３１のデータ暗復号処理について説明する。図６は、パイプライン暗復号回路１３１のデータ暗復号処理のフローチャートを示す。
【００６４】
パイプライン暗復号回路１３１は、ステップ５００とステップ５０１を同時に実行し、ステップ５００では、入力側暗号利用モード処理回路１５０が、入力制御部１３０からデータを受け付け、ステップ５０１では、ラウンド１処理回路１５２がラウンド０処理回路１５１からのデータを入力し、ラウンドＲ−１処理回路１５３が、１つ前のラウンド処理回路からのデータを入力する。
【００６５】
パイプライン暗復号回路１３１は、ステップ５００とステップ５０１の処理が終了した後、ステップ５０２〜５０６を実行する。なお、ステップ５０２とステップ５０３の処理、ステップ５０４の処理、ステップ５０５とステップ５０６の処理は同時に実行される。
【００６６】
まず、ステップ５０２において、入力側暗号利用モード処理回路１５０は、ステップ５００にて入力されたデータやＩＶに対して、同時に入力される暗号利用モード情報に従い、暗号利用モード特有の演算を行い、その結果をラウンド０処理回路１５１に出力する。ステップ５０３では、ステップ５０２で入力側暗号利用モード処理回路１５０から出力されたデータに対して、ラウンド０処理回路１５１がラウンド０特有の処理を行う。
【００６７】
ステップ５０４では、ラウンド１処理回路１５２が、ステップ５０１で得られたラウンド０処理回路１５１からの出力データに対して、ラウンド１特有の処理を実行する。
【００６８】
ステップ５０５では、ラウンドＲ−１処理回路１５３が、ステップ５０１で得られた1つ前のラウンド処理回路からの出力データに対して、ラウンドＲ−１特有の処理を実行し、ステップ５０６では、出力側暗号利用モード処理回路１５７が、ステップ５０５で得られたラウンドＲ−１処理回路１５３からの出力データに対して、同時にデータ保持レジスタ１５６から入力されるデータを用いて、暗号利用モード特有の演算を実行する。
【００６９】
パイプライン暗復号回路１３１は、ステップ５０２〜ステップ５０６の処理が終了した後、ステップ５０７〜５０９を同時に実行する。ステップ５０７〜５０９のウェイト処理は、各ラウンド処理が異なる暗号アルゴリズムを実装する場合に必要となる。
【００７０】
パイプライン暗復号回路１３１は、ステップ５０７では、入力側暗号利用モード処理回路１５０とラウンド０処理回路１５１における処理時間が、同時に実行される他の処理に対して短いのであれば、同時に実行される他の処理において消費される最大の処理時間までウェイトし、同様に、ステップ５０８では、ラウンド１処理回路１５２における処理時間が、同時に実行される他の処理に対して短いのであれば、同時に実行される他の処理において消費される最大の処理時間までウェイトし、さらに、ステップ５０９では、ラウンドＲ−１処理回路１５３と出力側暗号利用モード処理回路１５７における処理時間が、同時に実行される他の処理に対して短いのであれば、同時に実行される他の処理において消費される最大の処理時間までウェイトし、ステップ５０７〜５０９の処理が終了した後、ステップ５１０および５１１を同時に実行する。
【００７１】
パイプライン暗復号回路１３１は、ステップ５１０では、ラウンドＲ−１処理回路１５３以外のラウンド処理回路が、処理結果を次のラウンド処理回路へ出力し、ステップ５１１では、出力側暗号利用モード処理回路１５７が、処理結果を出力制御部１３２へ出力する。なお、ラウンド２〜ラウンドＲ−２までの処理回路は、前述のラウンド１処理回路１５２と同様の動作となる。
【００７２】
すなわち、パイプライン暗復号回路１３１は、複数の非並列モード暗復号対象データを、暗復号処理に関して関連性のない複数のメッセージに分け、各メッセージに属する非並列モード暗復号対象データを複数のブロックデータに分割し、各メッセージに属する各ブロックデータをメッセージ毎に、Ｒｎｄ［０］〜Ｒｎｄ［Ｒ−１］の各行に割当てたとき、各行の同じ列のセルに対応したブロックデータに対して各ラウンド０〜Ｒ−１処理回路でパイプラインでの処理に合わせて同時に暗復号化処理を実行するようになっている。
【００７３】
この際、パイプライン暗復号回路１３１は、暗復号化処理部として、データバッファ１４３に格納された各メッセージのデータがブロックデータ間に依存関係があって、シーケンシャルな順序で処理しなければならない非並列動作モードによるデータであるときには、データバッファ１４３から各メッセージのデータをブロック単位でインタリーブに取り込み、取り込んだデータに対してパイプラインで暗復号化処理を実行することになる。
【００７４】
次に、図７を参照して、出力制御部１３２のデータ転送処理について説明する。図７は、出力制御部１３２のデータ転送処理のフローチャートを示す。図７において、出力制御部１３２は、データバッファ１６０における入力対象セルをＲｎｄ［０］［０］に初期化し（ステップ６００）、データバッファ１６０において処理すべき全ての行に関して、出力側データキュー１２７への出力が完了したかどうかを判定する（ステップ６０１）。
【００７５】
出力制御部１３２は、ステップ６０１が偽であれば、パイプライン暗復号回路１３１から出力されるブロックデータを入力し（ステップ６０２）、続けて、現在の処理対象行の全列にデータが埋まったかどうかを判定し（ステップ６０３）、ステップ６０３が真であれば、出力側データキュー１２７へ処理対象行データを出力する（ステップ６０４）。
【００７６】
次に、出力制御部１３２は、キューデータテーブル１２４における出力済みデータの情報を削除し（ステップ６０５）、ステップ６０４とステップ６０５の処理時間が、最大ラウンド処理時間より短いのであれば最大ラウンド処理時間経過するまでウェイトし（ステップ６０６）、データバッファ１６０における現在の処理対象行が最終行かどうかを判定し（ステップ６０７）、ステップ６０７が真であれば、データバッファ１６０の出力対象をＲｎｄ［０］行の次の列のセルに移動する（ステップ６０８）。出力制御部１３２は、ステップ６０７が偽であれば、データバッファ１６０の出力対象を次の行の同じ列のセルに移動し（ステップ６０９）、ステップ６０１〜６０９を繰り返し、ステップ６０１が真となれば、処理を終了する。
【００７７】
すなわち、出力制御部１３２は、複数の非並列モード暗復号対象データを、暗復号処理に関して関連性のない複数のメッセージに分け、各メッセージに属する非並列モード暗復号対象データを複数のブロックデータに分割し、各メッセージに属する各ブロックデータをメッセージ毎に、Ｒｎｄ［０］〜Ｒｎｄ［Ｒ−１］の各行に割当てたとき、各行の同じ列のセルに対応したブロックデータをパイプラインでの処理タイミングに合わせて出力側データキュー１２７へ出力するようになっている。
【００７８】
上述の通り、本ディスクアレイ制御装置１０２は、複数の非並列モード暗復号対象データを、暗復号処理に関して関連性のない複数のメッセージに分け、各メッセージに属する非並列モード暗復号対象データを複数のブロックデータに分割し、各メッセージに属する各ブロックデータをメッセージ毎に、Ｒｎｄ［０］〜Ｒｎｄ［Ｒ−１］の各行に割当てたとき、各行の同じ列のセルに対応したブロックデータをパイプライン処理に合わせて同時に暗復号するため、従来技術である特許文献１を適用したストレージシステムと比較し、Ｒ倍高速となる。
【００７９】
また、本実施形態１では、入力制御部１３０に、Ｒ個の暗号鍵と、Ｒ個のＩＶと、Ｒ個の暗号利用モード情報と、Ｒ個のデータを保持できるバッファを用意したが、性能低下が許容できるのであれば、Ｒ以下のバッファ容量にすることも可能であり、コストの削減ができる。また、暗復号処理スループットは、従来技術である特許文献１と比べ、バッファ容量に応じて１〜Ｒ倍となる。
【実施例２】
【００８０】
以下、図面を用いて本発明の第２実施形態を詳細に説明する。
本実施形態では、非並列動作モードのデータ暗号化と並列動作モードのデータ暗号化の同時実行に関して詳細に説明する。
【００８１】
図８に示す前記ディスクアレイ制御装置１０２は、前述した実施形態１の図１から入力側並列動作モードデータキュー１２８が追加された構造を持つ。入力側並列動作モードデータキュー１２８は、ディスクアレイ制御装置１０２によって、ホスト装置１００からの書き込み要求時に、ホスト装置１００から転送されるデータにおける並列モード暗復号対象データをキューイングし、ホスト装置１００からの読み込み要求時に、ホスト装置１００のディスクアクセス要求時に指定されるアドレスに応じたデータにおける並列動作モード暗復号対象データをディスクアレイ１０１からキューイングする。なお、入力側並列動作モードデータキュー１２８にキューイングされるデータのサイズは、ディスクアレイ１０１を構成するディスクドライブ１１０〜１１２のセクタ長である。
【００８２】
また、入力制御部１３２は、暗号鍵ライブラリ１２０から転送される暗号鍵を内部に持つ暗号鍵バッファ１４０に格納し、ＩＶライブラリ１２１から転送されるＩＶを内部に持つＩＶバッファ１４１に格納し、暗号利用モードライブラリ１２２から転送される暗号利用モード情報を内部に持つ暗号利用モード１４２に格納し、入力側非並列動作モードデータキュー１２３と並列動作モードデータキュー１２８から転送されるデータを内部に持つデータバッファ１４３に格納する。なお、図８において、入力側並列動作モードデータキュー１２８と入力制御部１３２以外のブロックは、実施形態１の図１と同じである。
【００８３】
図９は、非並列動作モードデータキュー１２３にデータＳＰ０〜ＳＰ（Ｒ−１）をキューイングし、並列動作モードデータキュー１２８にデータＰＰ０〜ＰＰ（Ｒ−１）をキューイングした状態を示し、前述した実施形態１の図２に、入力側並列動作モードデータキュー１２８が追加された構造を持つ。なお、図９において、Ｍｃは並列動作モードの１種であり、入力側非並列動作モードデータキュー１２３と入力側並列動作モードデータキュー１２８は、入力制御部１３０内のデータバッファ１４３と接続されている。
【００８４】
具体的には、本実施形態におけるディスクアレイ制御装置１０２は、次の数１（条件１）に示す条件を満たすαの数だけ、データキューテーブル１１２の非並列動作モードデータのキューイング順に従い、非並列動作モードデータキュー１２３から対応するデータを、データバッファ１４３の先頭のＲｎｄ０行へ順に出力し、その後、データバッファ１４３の行数Ｎｃからαを引いた（Ｎｃ−α）が０以上であれば、データキューテーブル１１２の並列動作モードデータのキューイング順に従い、（Ｎｃ−α）個だけ、並列動作モードデータキュー１２８から対応するデータを、データバッファ１４３の非並列動作モードデータが入った次の行へ順に出力する。なお、図９ではＮｃはＲである。
【００８５】
【数１】
2008292852.tif 000003
図９において、Ｒを１０とすると、α＝５となり、ディスクアレイ制御装置１０２は、１回目の暗復号処理時に、入力側非並列動作モードデータキュー１２３から、ＳＰ０から数えて５つ目までのデータを、データＲｎｄ０から５行目までに順に出力し、データバッファ１４３の残りの５行に、入力側並列動作モードデータキュー１２８から、ＰＰ０から数えて５つ目までのデータを順に出力する。
【００８６】
数１（条件１）において、ｌａｔｅｎｃｙは並列動作モード暗復号対象データのいずれもが、並列動作モードデータキュー１２８にキューイングされてからデータバッファ１４３へ出力されない時間を示す。ＬＡＴＥＮＣＹはｌａｔｅｎｃｙの最大許容時間を示し、ユーザが利用形態に合わせて設定する。Ｎｃは、データバッファ１４３の行数（カラム数）を、Ｎｃｂｃは、非並列動作モードデータキュー１２３にキューイングされる非並列動作モードデータのデータ数を、Ｎｒは実装される暗号アルゴリズムのラウンド数を、Ｎｅｃｂは、並列動作モードデータキュー１２８にキューイングされる並列動作モードデータのデータ数を示す。また、ＭＡＸは引数が取りうる最大値を返す関数を、ＣＥＩＬは切り上げ関数を示す。
【００８７】
図１０は、ディスクアレイ制御装置１０２のデータ転送処理のフローチャートを示しており、前述した実施形態１の図３からステップ３０２がステップ３１０に、ステップ３０４がステップ３１１に差し替えた処理フローとなる。以下、ステップ３１０、３１１について説明する。
【００８８】
まず、ディスクアレイ制御装置１０２は、ステップ３１０では、キューデータテーブル１２４を参照し、ホスト装置１００からの書き込み要求の場合は、ホスト装置１００から転送された転送データ、ホスト装置１００からの読み込み要求の場合は、ディスクアレイ１０１から転送された転送データをそれぞれ判別し、転送データが非並列動作モードデータであるときには非並列動作モードデータキュー１２３にキューイングし、転送データが並列動作モードデータであるときには並列動作モードデータキュー１２８にキューイングする。
【００８９】
ディスクアレイ制御装置１０２は、ステップ３１１では、キューデータテーブル１２４を参照し、数１（条件１）によるαだけ非並列動作モードデータキュー１２３からデータを出力し、（Ｎｃ−α）だけ並列動作モードデータキュー１２８からデータを入力制御部内データバッファ１４３へ出力する。
【００９０】
すなわち、ディスクアレイ制御装置１０２は、数１（条件１）で定められたＥＣＢに関するＬＡＴＥＮＣＹ以下の場合、ホスト装置１００から転送されたデータのうち非並列動作モードデータと並列動作モードデータとの混合割合をキューテーブル１２４を参照して把握し、上記条件１を満たす並列動作モードデータの投入数ｎに対して、（バッファカラム数−ｎ）だけ非並列動作モードデータを入力側非並列動作モードデータキュー１２３に格納し、それ以外の並列動作モードデータを入力側並列動作モードデータキュー１２８に格納する。
【００９１】
また、ディスクアレイ制御装置１０２は、非並列動作モードデータが入力側非並列動作モードデータキュー１２３に多く転送され、上記条件１により、非並列動作モードデータが並列動作モードデータよりも優先され、並列動作モードデータが１つも処理されずに、定められたＥＣＢに関するＬＡＴＥＮＣＹを超えた場合、並列動作モードデータの投入数を１として、非並列動作モードデータと並列動作モードデータをデータバッファ１４３に入力することとしている。
【００９２】
図１１は、入力制御部１３０によるパイプライン暗復号回路１３１へのデータ出力処理のフローチャートを示し、前述した実施形態１の図５のフローに、ステップ４１０〜４１７を加えた処理フローとなる。以下、ステップ４１０〜４１７について説明する。
【００９３】
入力制御部１３０は、ステップ４１０では、データバッファ１４３の現在の処理対象行が非並列動作モードのデータであるかどうかを判定し、ステップ４１０が真であれば、ステップ４０８へ進み、ステップ４１０が偽であれば、データバッファ１４３の現在の処理対象列が最終かどうかを判定し（ステップ４１２）、ステップ４１２が真であれば、データバッファ１４３の現在の出力対象を、Ｒｎｄ［０］のデータにおいて、次に処理すべきデータが入ったセルに移動し（ステップ４１３）、ステップ４１２が偽であれば、データバッファ１４３の出力対象を、同一行の次の列のセルに移動する（ステップ４１４）。
【００９４】
同様に、入力制御部１３０は、ステップ４１１では、データバッファ１４３の現在の処理対象行が非並列動作モードのデータであるかどうかを判定し、ステップ４１１が真であれば、ステップ４０９へ進み、ステップ４１０が偽であれば、データバッファ１４３の現在の処理対象列が最終かどうかを判定し（ステップ４１５）、ステップ４１５が真であれば、データバッファ１４３の現在の出力対象を、次の行の先頭列のセルに移動し（ステップ４１６）、ステップ４１５が偽であれば、データバッファ１４３の出力対象を、同一行の次の列のセルに移動する（ステップ４１７）。
【００９５】
このように、本実施形態において、非並列動作モードデータと、並列動作モードデータで異なる処理を行う理由は、並列動作モードデータはブロックデータ間に依存性がないため、データバッファ１４３の同一行に配置されるブロックデータを連続してパイプライン暗復号回路１３１に入力することが可能であり、無駄なウェイト処理時間を削減するためである。なお、図８、図９、図１０、図１１において、実施形態１の図１、図２、図３、図５と同一符号のものは共通の機能を持つ。また、実施形態１の図４、図６、図７が示す機能は実施形態２においても共通である。
【００９６】
上述の通り、本実施形態２におけるディスクアレイ制御装置１０２は、複数の非並列モード暗復号対象データと複数の並列モード暗復号対象データを、それぞれ暗復号処理に関して関連性のない複数のメッセージに分け、各メッセージに属する非並列モード暗復号対象データまたは並列モード暗復号対象データを複数のブロックデータに分割し、各メッセージに属する各ブロックデータをメッセージ毎に、Ｒｎｄ［０］〜Ｒｎｄ［Ｒ−１］の各行に割当てたとき、非並列モード暗復号対象データを含むメッセージ各行の同じ列のセルに対応したブロックデータをパイプライン処理に合わせて同時に暗復号し、この暗復号処理中に発生する空き処理時間を利用して、並列モード暗復号対象データを含むメッセージ各行の同じ列のセルに対応したブロックデータをパイプライン処理に合わせて同時に暗復号するようにしたため、最大Ｒ倍の高速な暗号化が可能となる。
【００９７】
この際、パイプライン暗復号回路１３１は、暗復号化処理部として、データバッファ（入力バッファ）１４３に格納された各メッセージのデータとして、非並列動作モードによるデータの他に、ブロック間に依存関係がなく、ランダムな順序で処理できる並列動作モードによるデータを存在するときには、非並列動作モードによるデータに対しては、データバッファ１４３から各メッセージのデータをブロック単位でインタリーブに取り込み、並列動作モードによるデータに対しては、データバッファ１４３から各メッセージのデータをブロック単位でシーケンシャルに取り込み、各取り込んだデータに対してパイプラインで暗復号化処理を実行することになる。
【００９８】
また、本実施形態２では、入力制御部１３０に、Ｒ個の暗号鍵と、Ｒ個のＩＶと、Ｒ個の暗号利用モード情報と、Ｒ個のデータを保持できるバッファを用意したが、性能低下が許容できコストを削減するのであれば、Ｒ以下のバッファ容量にすることも可能であり、暗復号処理スループットは、従来技術である特許文献１と比べ、バッファ容量に応じて１〜Ｒ倍となる。
【００９９】
また、本実施形態２では、非並列動作モード暗復号対象データと並列動作モード暗復号対象データの、データバッファ１４３への入力割合は任意の数としたが、（非並列動作モード暗復号対象データ数／並列動作モード暗復号対象データ数）が一定のディスクアレイの場合、データバッファ１４３を（非並列動作モード暗復号対象データ数／並列動作モード暗復号対象データ数）に分割することで、バッファ制御を容易にし、回路規模を縮小することができる。
【０１００】
また、本実施形態２では、複数の非並列動作モード暗復号対象データと複数の並列動作モード暗復号対象データを同時に実行することができるため、例えば１２８ビット鍵のＡＥＳで暗号化する場合、従来技術に比べ最大で、およそ暗号アルゴリズムのラウンド数倍だけ高速な処理が可能となる。
【０１０１】
また、本実施形態２では、複数の暗号利用モード暗復号対象データを暗復号する場合、１つの暗号利用モードの暗復号処理にユーザが定めた閾値以下のレイテンシしか発生させないので、ユーザに最適な使い方を提供することができる。
【図面の簡単な説明】
【０１０２】
【図１】本発明の第１実施形態を示すブロック図である。
【図２】第１実施形態における暗号鍵／ＩＶ／暗号利用モード／データを暗復号回路の前段に用意するバッファへ格納する方式を示すブロック図である。
【図３】第１実施形態のディスクアレイ制御装置のデータ処理を説明するためのフローチャートである。
【図４】第１実施形態のディスクアレイ制御装置の暗号処理部の詳細を説明するブロック図である。
【図５】入力制御部のデータ出力処理を説明するためのフローチャートで          ある。
【図６】パイプライン暗復号回路のデータ暗復号処理を説明するためのフローチャートである。
【図７】出力制御部のデータ転送処理を説明するためのフローチャートで          ある。
【図８】本発明の第２実施形態を示すブロック図である。
【図９】第２実施形態における暗号鍵／ＩＶ／暗号利用モード／データを暗復号回路の前段に用意するバッファへ格納する方式を示すブロック図である。
【図１０】第２実施形態のディスクアレイ制御装置のデータ処理フローを説明するフローチャートである。
【図１１】第２実施形態における入力制御部のデータ出力処理を説明するためのフローチャートである。
【符号の説明】
【０１０３】
１００  ホスト装置
１０１  ディスクアレイ
１０２  ディスクアレイ制御装置
１１０  ディスクアレイ構成ハードディスクドライブ
１１１  ディスクアレイ構成ハードディスクドライブ
１１２  ディスクアレイ構成ハードディスクドライブ
１２０  暗号鍵ライブラリ
１２１  ＩＶライブラリ
１２２  暗号利用モードライブラリ
１２３  入力側非並列動作モードデータキュー
１２４  キューデータテーブル
１２５  アドレスマップテーブル
１２６  暗復号処理部
１２７  出力側データキュー
１２８  入力側並列動作モードデータキュー
１３０  入力制御部
１３１  パイプライン暗復号回路
１３２  出力制御部
１４０  暗号鍵バッファ
１４１  ＩＶバッファ
１４２  暗号利用モードバッファ
１４３  データバッファ
１５０  入力側暗号利用モード処理回路
１５１  ラウンド０処理回路
１５２  ラウンド１処理回路
１５３  ラウンドＲ−１処理回路
１５４  データ保持レジスタ
１５５  データ保持レジスタ
１５６  データ保持レジスタ
１５７  出力側暗号利用モード処理回路
１６０  データバッファ
【図１】
2008292852.tif 000004
【図２】
2008292852.tif 000005
【図３】
2008292852.tif 000006
【図４】
2008292852.tif 000007
【図５】
2008292852.tif 000008
【図６】
2008292852.tif 000009
【図７】
2008292852.tif 000010
【図８】
2008292852.tif 000011
【図９】
2008292852.tif 000012
【図１０】
2008292852.tif 000013
【図１１】
2008292852.tif 000014