【手続補正書】
【提出日】令和3年2月17日(2021.2.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ストレージシステムにおいてデータを暗号化する方法であって、
データストレージ書き込み要求を受け取るステップであって、前記データストレージ書き込み要求は書き込むべき特定のデータを含み、前記データストレージ書き込み要求はホストマシン上で実行中のクライアントから受け取られ、前記データストレージ書き込み要求は前記ホストマシン上で実行中のホスト側モジュールで受け取られる、ステップと、
前記ホスト側モジュールが、前記特定のデータに基づいて１又は２以上のフィンガープリントを生成するステップと、
前記ホスト側モジュールが、前記特定のデータを暗号化することによって暗号化データを生成するステップと、
前記暗号化データを１又は２以上のクランプにパッケージ化するステップと、
前記１又は２以上のフィンガープリントに基づいて、前記１又は２以上のクランプの１又は２以上のクランプフィンガープリントを生成するステップと、
前記暗号化データを、前記ホストマシンから分離したストレージノードに送信するステップと、
を含むことを特徴とする方法。
【請求項２】
１又は２以上のストレージノードに書き込むべき特定のクランプにおける特定のブロックを格納するキャッシュを擁する前記ホスト側モジュールを含み、
前記ホスト側モジュールが（ａ）前記１又は２以上のフィンガープリントに基づいて生成された前記１又は２以上のクランプフィンガープリントを（ｂ）前記ホストマシンの前記キャッシュに格納されている前記特定のクランプのクランプフィンガープリントと比較するステップと、
前記１又は２以上のフィンガープリントに基づいて生成された前記１又は２以上のクランプフィンガープリントが、前記ホストマシンの前記キャッシュに格納されている前記特定のクランプの前記クランプフィンガープリントと一致しない場合、前記１又は２以上のフィンガープリントに基づいて生成された前記１又は２以上のクランプフィンガープリントを、グローバルフィンガープリントインデックスに存在するクランプフィンガープリントと比較するステップと、
前記１又は２以上のフィンガープリントに基づいて生成された前記１又は２以上のクランプフィンガープリントが、前記グローバルフィンガープリントインデックスに存在するクランプフィンガープリントと一致しない場合、前記暗号化データを暗号化データセットに追加するステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記データを暗号化することによって前記暗号化データを生成する前に、前記ホスト側モジュールが前記データに対して圧縮を実行するステップをさらに含む、
請求項１に記載の方法。
【請求項４】
前記データを暗号化することによって前記暗号化データを生成するステップは、
前記データを暗号化するために使用すべき暗号鍵を前記ストレージシステムに要求するステップと、
前記ストレージシステムから、前記暗号鍵と、前記ストレージシステムによって維持されている暗号化テーブルから前記暗号鍵を識別するために使用される識別子である関連する暗号鍵インデックス値とを受け取るステップと、
前記暗号鍵を用いて前記データを暗号化することによって前記暗号化データを生成するステップと、
を含む、請求項１に記載の方法。
【請求項５】
前記ストレージシステムから受け取った前記関連する暗号鍵インデックス値を前記暗号化データのメタデータ内に記憶するステップをさらに含む、
請求項４に記載の方法。
【請求項６】
前記ホスト側モジュールにおいて、前記ホストマシン上で実行中の前記クライアントから、暗号化データを含む特定のクランプからデータを読み出すための要求を受け取るステップと、
前記ホスト側モジュールが、前記暗号化データに関連する前記特定のクランプと前記メタデータとにアクセスすることによって、前記特定のクランプ内に前記暗号化データと共に記憶されている前記関連する暗号鍵インデックス値を特定するステップと、
前記ホスト側モジュールが、前記ストレージシステムによって維持されている前記暗号化テーブルに基づいて、前記特定された暗号鍵インデックス値に関連する暗号鍵を識別するステップと、
前記ホスト側モジュールが、前記識別された暗号鍵を用いて前記特定のクランプ内の前記暗号化データを復号することによって復号データを生成するステップと、
前記ホスト側モジュールが、前記復号データを前記クライアントに送信するステップと、
をさらに含む請求項５に記載の方法。
【請求項７】
前記ホスト側モジュールにおいて、前記ホストマシン上に存在するキャッシュに記憶されているクランプ内のデータを再暗号化するための要求を受け取るステップと、
前記ホスト側モジュールが、前記キャッシュに記憶されている前記クランプを読み出すことによって、再暗号化すべきクランプの組を識別するステップと、
前記ホスト側モジュールが、前記クランプ内の関連するメタデータから、前記クランプの組内のデータを復号するために必要な前記暗号鍵を識別するために使用される識別子を表す１又は２以上の暗号鍵インデックス値の組を特定するステップと、
前記ホスト側モジュールが、前記ストレージシステムによって維持されている前記暗号化テーブルに基づいて、前記特定された１又は２以上の暗号鍵インデックス値の組に関連する１又は２以上の暗号鍵の組を識別するステップと、
前記ホスト側モジュールが、前記識別された１又は２以上の暗号鍵の組を用いて前記暗号化データを復号することによって前記クランプの組から復号データを生成するステップと、
前記ホスト側モジュールが、新たな暗号鍵を用いて前記復号データを暗号化することによって暗号化データを生成するステップと、
前記ホスト側モジュールが、前記暗号化データをクランプの組にパッケージ化するステップと、
前記クランプの組を前記キャッシュに記憶するステップと、
をさらに含む請求項５に記載の方法。
【請求項８】
前記ホストマシンから分離した前記１又は２以上のストレージノードにおいて、前記１又は２以上のストレージノード上に記憶されているクランプ内のデータを再暗号化するための要求を受け取るステップと、
前記１又は２以上のストレージノードで実行中のタスクワーカが、前記１又は２以上のストレージノード上に記憶されている前記クランプを読み出すことによって、暗号化すべきクランプの組を識別するステップと、
前記タスクワーカが、前記クランプ内の関連するメタデータから、前記クランプの組内のデータを復号するために必要な前記暗号鍵を識別するために使用される識別子を表す１又は２以上の暗号鍵インデックス値の組を特定するステップと、
前記タスクワーカが、前記ストレージシステムによって維持されている前記暗号化テーブルに基づいて、前記特定された１又は２以上の暗号鍵インデックス値の組に関連する暗号鍵を識別するステップと、
前記タスクワーカが、前記識別された１又は２以上の暗号鍵の組を用いて前記暗号化データを復号することによって前記クランプの組から復号データを生成するステップと、
前記タスクワーカが、新たな暗号鍵を用いて前記復号データを暗号化することによって暗号化データを生成するステップと、
前記タスクワーカが、前記暗号化データをクランプの組にパッケージ化するステップと、
前記クランプの組を前記１又は２以上のストレージノードに記憶するステップと、
をさらに含む請求項５に記載の方法。
【請求項９】
前記特定のデータに基づいて前記１又は２以上のフィンガープリントを生成するステップは、前記暗号化データに基づいて特定のフィンガープリントを生成することを含み、
前記キャッシュに格納されているクランプの前記クランプフィンガープリントは、暗号化されて１又は２以上のクランプにパッケージ化されたブロックに対して生成されたクランプフィンガープリントであり、
前記１又は２以上のクランプフィンガープリントを比較するステップは、特定のクランプフィンガープリントを、前記ブロックが暗号化されて前記１又は２以上の複数のクランプにパッケージ化された後に、前記ブロックに対して生成された前記クランプフィンガープリントと比較することを含む、請求項１に記載の方法。
【請求項１０】
ストレージシステムにおいてデータを暗号化するための命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、１又は２以上のプロセッサによって実行された時に、請求項１から９のいずれか１項に記載の方法の実行を引き起こす、
ことを特徴とする非一時的コンピュータ可読媒体。
【請求項１１】
１又は２以上のプロセッサと、メモリと、ストレージとを備えた１又は２以上のコンピュータ装置であって、請求項１から９のいずれか１項に記載の方法を実行するようにプログラムされる、
ことを特徴とするコンピュータ装置。