JP2022089190A - エンドツーエンド・データ完全性保護のためのコンピュータ実装方法およびコンピュータ・プログラム製品(暗号化データの日和見認証の実装) - Google Patents

エンドツーエンド・データ完全性保護のためのコンピュータ実装方法およびコンピュータ・プログラム製品(暗号化データの日和見認証の実装) Download PDF

Info

Publication number
JP2022089190A
JP2022089190A JP2021196598A JP2021196598A JP2022089190A JP 2022089190 A JP2022089190 A JP 2022089190A JP 2021196598 A JP2021196598 A JP 2021196598A JP 2021196598 A JP2021196598 A JP 2021196598A JP 2022089190 A JP2022089190 A JP 2022089190A
Authority
JP
Japan
Prior art keywords
data
instance
compressed
mac
encrypted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021196598A
Other languages
English (en)
Inventor
グレン アラン ジャケット
Alan Jaquette Glen
ウィリアム ジェー. スケールズ
J Scales William
ダニー ハーニック
Harnik Danny
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2022089190A publication Critical patent/JP2022089190A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/20Manipulating the length of blocks of bits, e.g. padding or block truncation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】エンドツーエンド・データ完全性保護のためのコンピュータ実装方法およびコンピュータ・プログラム製品を提供する。【解決手段】一実施形態によるコンピュータ実装方法は、データの圧縮インスタンスを作成するためにデータの非圧縮インスタンスを圧縮する段階と、上記データの圧縮インスタンスのサイズが所定の閾値より小さいとの判定に応答して上記データの圧縮インスタンスを暗号化する段階と、上記暗号化されたデータの圧縮インスタンスのためにメッセージ認証コード(MAC)を作成する段階と、フォーマットされたストリングを作成するために上記暗号化されたデータの圧縮インスタンスに可変長ゼロ・パッドと上記MACとを付加する段階とを含む。【選択図】図5

Description

本発明は、データ・セキュリティに関し、より詳細には、本発明は、メッセージ認証コード(MAC)を使用したエンドツーエンド・データ完全性保護の実装に関する。
データ完全性保護を実装する有用な方法は、メッセージ認証コード(MAC)の使用によるものである。例えば、受信データの真正性および完全性を確認するためにMACが使用されることがある。また、決定論的暗号化は、データ・ストレージ内で暗号化データの重複を特定し、除去することを可能にするという点で、データ・ストレージにおいて有用である。ストレージ・システムが、すでにホストで永続的に暗号化されているデータのデータ重複排除を行うことができるようにするために、決定論的暗号化を長さ保存圧縮(LPC:length preserving compression)と組み合わせることができる。しかし、現行のLPC実装形態はデータ完全性保護を実装しない。
したがって、本発明は、エンドツーエンド・データ完全性保護のためのコンピュータ実装方法およびコンピュータ・プログラム製品を提供する。
一実施形態によるコンピュータ実装方法は、データの圧縮インスタンスを作成するためにデータの非圧縮インスタンスを圧縮する段階と、上記データの圧縮インスタンスのサイズが所定の閾値より小さいとの判定に応答して上記データの圧縮インスタンスを暗号化する段階と、上記暗号化されたデータの圧縮インスタンスのためにメッセージ認証コード(MAC)を作成する段階と、フォーマットされたストリングを作成するために上記暗号化されたデータの圧縮インスタンスにゼロ・パッドと上記MACとを付加する段階とを含む。
別の実施形態によると、コンピュータ・プログラム製品が、1つまたは複数のコンピュータ可読記憶媒体と、上記1つまたは複数のコンピュータ可読記憶媒体にまとめて記憶されたプログラム命令とを含み、上記プログラム命令は、1つまたは複数のプロセッサに、上記プロセッサが、データの圧縮インスタンスを作成するためにデータの非圧縮インスタンスを圧縮する段階と、上記プロセッサが、上記データの圧縮インスタンスのサイズが所定の閾値より小さいとの判定に応答して上記データの圧縮インスタンスを暗号化する段階と、上記プロセッサが、上記暗号化されたデータの圧縮インスタンスのためにメッセージ認証コード(MAC)を作成する段階と、上記プロセッサが、フォーマットされたストリングを作成するために上記暗号化されたデータの圧縮インスタンスにゼロ・パッドと上記MACとを付加する段階とを含む方法を実行させるように構成された命令を含む。
別の実施形態によると、コンピュータ実装方法が、データの圧縮インスタンスを作成するためにデータの非圧縮インスタンスを圧縮する段階と、上記データの圧縮インスタンスのサイズが所定の閾値より小さいとの判定に応答して、上記データの圧縮インスタンスを暗号化し、上記暗号化されたデータの圧縮インスタンスのためにメッセージ認証コード(MAC)を作成し、かつ、フォーマットされたストリングを作成するために上記暗号化されたデータの圧縮インスタンスにゼロ・パッドと上記MACとを付加する段階と、上記データの圧縮インスタンスの上記サイズが上記所定の閾値より大きいとの判定に応答して、上記データの圧縮インスタンスを廃棄し、かつ、上記フォーマットされたストリングを作成するために上記データの非圧縮インスタンスを暗号化する段階とを含む。
本発明の他の態様および実施形態は、図面とともに読めば、本発明の原理を例示する以下の詳細な説明から明らかになるであろう。
本発明の一実施形態によるクラウド・コンピューティング環境を示す図である。 本発明の一実施形態による抽象モデル層を示す図である。 本発明の一実施形態によるクラウド・コンピューティング・ノードを示す図である。 本発明の一実施形態による階層型データ・ストレージ・システムを示す図である。 本発明の一実施形態による、暗号化データの日和見認証を実装する方法を示すフローチャートである。 本発明の一実施形態による、データの非圧縮インスタンスを暗号化する方法を示すフローチャートである。 本発明の一実施形態による、データのインスタンスを暗号化し、日和見認証する方法を示すフローチャートである。 本発明の一実施形態による、データ重複排除を行う方法を示すフローチャートである。 本発明の一実施形態による、平文の圧縮インスタンスのワイド・ブロック暗号化を行うための例示の環境を示す図である。 本発明の一実施形態による、平文の非圧縮インスタンスのワイド・ブロック暗号化を行うための例示の環境を示す図である。
以下の説明は、本発明の一般原理を示すことを目的として説明するものであり、本明細書で特許請求されている本発明の概念を限定することを意図していない。また、本明細書に記載の特定の特徴は、考えられる様々な組合せおよび置換のそれぞれで他の記載されている特徴と組み合わせて使用することができる。
本明細書で特に定義されていない限り、すべての用語は、本明細書から含意される意味と、当業者によって理解されているか、または辞書、論文などで定義されているか、あるいはその両方である意味とを含む、その用語の最も広義の可能な解釈が与えられるべきものである。
また、本明細書および添付の特許請求の範囲で使用されている単数形の「a」、「an」および「the」は、特に明記されていない限り複数指示概念を含むことに留意されたい。また「含む」または「含んでいる」あるいはその両方の用語は、本明細書で使用されている場合、記載されている特徴、整数、ステップ、動作、要素またはコンポーネントあるいはこれらの組合せの存在を規定しているが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、またはこれらのグループあるいはこれらの組合せの存在または追加を排除しないことも理解されよう。
以下の説明では、暗号化データの日和見認証を実装するいくつかの実施形態を開示する。
一般的な一実施形態では、コンピュータ実装方法が、データの圧縮インスタンスを作成するためにデータの非圧縮インスタンスを圧縮する段階と、上記データの圧縮インスタンスのサイズが所定の閾値より小さいとの判定に応答して上記データの圧縮インスタンスを暗号化する段階と、上記暗号化されたデータの圧縮インスタンスのためにメッセージ認証コード(MAC)を作成する段階と、フォーマットされたストリングを作成するために上記暗号化されたデータの圧縮インスタンスにゼロ・パッドと上記MACとを付加する段階とを含む。
一般的な別の実施形態では、コンピュータ・プログラム製品が、1つまたは複数のコンピュータ可読記憶媒体と、上記1つまたは複数のコンピュータ可読記憶媒体にまとめて記憶されたプログラム命令とを含み、上記プログラム命令は、1つまたは複数のプロセッサに、上記プロセッサが、データの圧縮インスタンスを作成するためにデータの非圧縮インスタンスを圧縮する段階と、上記プロセッサが、上記データの圧縮インスタンスのサイズが所定の閾値より小さいとの判定に応答して上記データの圧縮インスタンスを暗号化する段階と、上記プロセッサが、上記暗号化されたデータの圧縮インスタンスのためにメッセージ認証コード(MAC)を作成する段階と、上記プロセッサが、フォーマットされたストリングを作成するために上記暗号化されたデータの圧縮インスタンスにゼロ・パッドと上記MACとを付加する段階とを含む方法を実行させるように構成された命令を含む。
一般的な別の実施形態では、コンピュータ実装方法が、データの圧縮インスタンスを作成するためにデータの非圧縮インスタンスを圧縮する段階と、上記データの圧縮インスタンスのサイズが所定の閾値より小さいとの判定に応答して、上記データの圧縮インスタンスを暗号化し、上記暗号化されたデータの圧縮インスタンスのためにメッセージ認証コード(MAC)を作成し、かつ、フォーマットされたストリングを作成するために上記暗号化されたデータの圧縮インスタンスにゼロ・パッドと上記MACとを付加する段階と、上記データの圧縮インスタンスの上記サイズが上記所定の閾値より大きいとの判定に応答して、上記データの圧縮インスタンスを廃棄し、かつ、上記フォーマットされたストリングを作成するために上記データの非圧縮インスタンスを暗号化する段階とを含む。
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載されている教示の実装はクラウド・コンピューティング環境には限定されないことを理解されたい。逆に、本発明の実施形態は、現在知られているか、または今後開発される任意の他の種類のコンピューティング環境とともに実装することができる。
クラウド・コンピューティングは、最小限の管理労力またはサービス・プロバイダとの相互連絡で迅速にプロビジョニングすることができ、解放することができる、構成可能コンピューティング資源(例えば、ネットワーク、ネットワーク回線容量、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配布のモデルである。このクラウド・モデルは、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つの配備モデルとを含み得る。
特徴は以下の通りである。
オンデマンド・セルフサービス:クラウド消費者は、サービスのプロバイダとの間で人間の介在を必要とせずに一方的に、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能をプロビジョニングすることができる。
広いネットワーク・アクセス:機能は、ネットワークを介して利用可能であり、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば携帯電話、ラップトップ、およびPDA)による使用を容易にする標準機構を介してアクセスすることができる。
資源プール:マルチテナント・モデルを使用して複数の消費者に対応するために、プロバイダのコンピューティング資源がプールされ、需要に応じて、異なる物理資源および仮想資源が動的に割り当てられ、再割り当てされる。消費者は一般に、提供される資源の厳密な場所について管理することができないかまたは知らないが、より高い抽象レベルの場所(例えば、国、州、またはデータセンター)を指定することが可能な場合があるという点で、場所独立感がある。
迅速な伸縮性:迅速かつ伸縮性をもって、場合によっては自動的に、機能をプロビジョニングして、迅速にスケールアウトすることができ、また、迅速に機能を解放して迅速にスケールインすることができる。消費者にとっては、プロビジョニングのために利用可能な機能はしばしば無限であるように見え、いつでも好きなだけ購入することができる。
従量制サービス:クラウド・システムが、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に応じて適切な何らかの抽象化レベルの計量機能を利用することによって、資源利用を自動的に制御し、最適化する。資源使用量を監視、制御および報告することができ、利用されたサービスのプロバイダと消費者の両方に透明性を与えることができる。
サービス・モデルは以下の通りである。
ソフトウェア・アズ・ア・サービス(SaaS:Software as a Service):消費者に提供される機能は、クラウド・インフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションには、ウェブ・ブラウザ(例えばウェブ・ベースのEメール)などのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である。消費者は、限られたユーザ固有アプリケーション構成設定を考えられる例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個別のアプリケーション機能まで含めて、基礎にあるクラウド・インフラストラクチャを管理も制御もしない。
プラットフォーム・アズ・ア・サービス(PaaS:Platform as a Service):消費者に提供される機能は、クラウド・インフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者作成または取得アプリケーションを配備することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎にあるクラウド・インフラストラクチャを管理も制御もしないが、配備されたアプリケーションと、場合によってはアプリケーション・ホスティング環境構成とを制御することができる。
インフラストラクチャ・アズ・ア・サービス(IaaS:Infrastructure as a Service):消費者に提供される機能は、処理、ストレージ、ネットワークおよびその他の基本的コンピューティング資源をプロビジョニングすることであり、その際、消費者は、オペレーティング・システムとアプリケーションとを含み得る任意のソフトウェアを配備し、稼働させることができる。消費者は、基礎にあるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システムと、ストレージと、配備されたアプリケーションとを制御することができ、場合によっては選択されたネットワーキング・コンポーネント(例えばホスト・ファイアウォール)の限定的な制御を行うことができる。
配備モデルは以下の通りである。
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。組織または第三者によって管理可能であり、オンプレミスまたはオフプレミスに存在可能である。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、いくつかの組織によって共用され、共通の関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンス事項)を有する特定のコミュニティをサポートする。組織または第三者が管理することができ、オンプレミスまたはオフプレミスに存在可能である。
パブリック・クラウド:このクラウド・インフラストラクチャは、公衆または大規模業界団体が利用することができ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、独自の実体のままであるが、データおよびアプリケーション可搬性を可能にする標準化技術または専有技術(例えば、クラウド間のロード・バランシングのためのクラウド・バースティング)によって結合された、2つ以上のクラウド(プライベート、コミュニティまたはパブリック)の複合体である。
クラウド・コンピューティング環境は、ステートレス性、疎結合性、モジュール性、および意味的相互運用性に焦点を合わせたサービス指向型である。クラウド・コンピューティングの核心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
次に図1を参照すると、例示のクラウド・コンピューティング環境50が図示されている。図のように、クラウド・コンピューティング環境50は、例えばパーソナル・デジタル・アシスタント(PDA)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54Nあるいはこれらの組合せなど、クラウド消費者によって使用されるローカル・コンピューティング・デバイスが通信することができる、1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は互いに通信することができる。ノード10は、上述のプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウドまたはハイブリッド・クラウドあるいはこれらの組合せなどの1つまたは複数のネットワークにおいて物理的または仮想的にグループ化(図示せず)されてもよい。これによって、クラウド・コンピューティング環境50は、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはこれらの組合せを、クラウド消費者がそのためにローカル・コンピューティング・デバイス上で資源を維持する必要がないサービスとして提供することができる。なお、図1に示すコンピューティング・デバイス54A~54Nの種類は、例示を意図したものに過ぎず、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、(例えばウェブ・ブラウザを使用して)任意の種類のネットワーク接続またはネットワーク・アドレス指定可能接続あるいはその組合せを介して、任意の種類のコンピュータ化デバイスと通信することができるものと理解される。
次に、図2を参照すると、クラウド・コンピューティング環境50(図1)によって提供される1組の機能抽象化層が示されている。図2に示すコンポーネント、層および機能は、例示を意図したに過ぎず、本発明の実施形態はこれらには限定されないことを前もって理解されたい。図のように、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層60は、ハードウェア・コンポーネントとソフトウェア・コンポーネントとを含む。ハードウェア・コンポーネントの例としては、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66がある。実施形態によっては、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67とデータベース・ソフトウェア68とを含む。
仮想化層70は、以下のような仮想実体の例を与えることができる抽象化層を提供する。すなわち、仮想サーバ71と、仮想ストレージ72と、仮想プライベート・ネットワークを含む仮想ネットワーク73と、仮想アプリケーションおよびオペレーティング・システム74と、仮想クライアント75である。
一例では、管理層80は、以下に記載の機能を提供することができる。資源プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング資源およびその他の資源の動的調達を行う。メータリングおよびプライシング82は、クラウド・コンピューティング環境内で資源が利用されるときのコスト追跡と、これらの資源の消費に対する対価の請求またはインボイス処理を行う。一例ではこれらの資源にはアプリケーション・ソフトウェア・ライセンスが含まれてもよい。セキュリティは、クラウド消費者およびタスクのための本人検証と、データおよびその他の資源の保護とを行う。ユーザ・ポータル83は、消費者とシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、必要なサービス・レベルが満たされるようにクラウド・コンピューティング資源割り当ておよび管理を行う。サービス・レベル・アグリーメント(SLA:Service Level Agreement)計画および履行85は、SLAに従って将来の要求が予想されるクラウド・コンピューティング資源のための事前取り決めおよび調達を行う。
ワークロード層90は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、およびメッセージ認証96が含まれる。
次に図3を参照すると、クラウド・コンピューティング・ノードの一例の概略図が示されている。クラウド・コンピューティング・ノード10は、適合するクラウド・コンピューティング・ノードの一例に過ぎず、本明細書に記載の本発明の実施形態の使用または機能の範囲に関していかなる限定も示唆することを意図していない。いずれにしても、クラウド・コンピューティング・ノード10は、上記の機能のいずれでも実装または実行あるいはその両方が可能である。
クラウド・コンピューティング・ノード10には、多くの他の汎用または専用コンピューティング・システム環境または構成とともに動作可能なコンピュータ・システム/サーバ12がある。コンピュータ・システム/サーバ12とともに使用するのに適合可能な、知られているコンピューティング・システム、環境または構成あるいはその組合せの例としては、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルド・デバイスまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル消費者電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、上記のシステムまたはデバイスのうちのいずれかを含む分散クラウド・コンピューティング環境などがあるが、これらには限定されない。
コンピュータ・システム/サーバ12について、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明する場合がある。一般には、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ・タイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータ・システム/サーバ12は、通信ネットワークを介して接続されたリモート処理デバイスによってタスクが実行される分散クラウド・コンピューティング環境で実施されてもよい。分散クラウド・コンピューティング環境では、プログラム・モジュールを、メモリ・ストレージ・デバイスを含むローカルとリモートの両方のコンピュータ・システム記憶媒体に配置することができる。
図3に示すように、クラウド・コンピューティング・ノード10におけるコンピュータ・システム/サーバ12が、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム/サーバ12のコンポーネントは、1つまたは複数のプロセッサまたは処理ユニット16と、システム・メモリ28と、システム・メモリ28を含む様々なシステムコンポーネントをプロセッサ16に接続するバス18とを含み得るがこれらには限定されない。
バス18は、様々なバス・アーキテクチャのうちのいずれかのアーキテクチャを使用する、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサ・バスまたはローカル・バスを含む、数種類のバス構造のうちのいずれかのうちの1つまたは複数に相当する。例として、そのようなアーキテクチャとしては、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)バスがあるが、これらには限定されない。
コンピュータ・システム/サーバ12は、典型的には様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ12がアクセスすることができる任意の利用可能な媒体であってよく、揮発性媒体と不揮発性媒体の両方と、取り外し可能媒体と取り外し不能媒体とを含む。
システム・メモリ28は、ランダム・アクセス・メモリ(RAM)30またはキャッシュ・メモリ32あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム/サーバ12は、他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ・システム記憶媒体をさらに含み得る。一例に過ぎないが、ストレージ・システム34を、取り外し不能な不揮発性磁気媒体(図示されておらず、一般に「ハード・ドライブ」と呼ばれる)に対する読み書きのために設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば「フロッピィ・ディスク」)に対する読み書きのための磁気ディスク・ドライブと、CD-ROM、DVD-ROMまたはその他の光学媒体などの、取り外し可能な不揮発性光ディスクに対する読み書きのための光ディスク・ドライブとを備えることができる。そのような場合、それぞれを1つまたは複数のデータ・メディア・インターフェースによってバス18に接続することができる。以下でさらに図示し、説明するように、メモリ28は、本発明の実施形態の機能を実施するように構成された1組の(例えば少なくとも1つの)プログラム・モジュールを有する少なくとも1つのプログラム製品を含み得る。
一例として、これには限らないが、1組の(例えば少なくとも1つの)プログラム・モジュール42を有するプログラム/ユーティリティ40と、オペレーティング・システムと、1つまたは複数のアプリケーション・プログラムと、その他のプログラム・モジュールと、プログラム・データとをメモリ28に記憶することができる。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データ、またはこれらの何らかの組合せのそれぞれが、ネットワーキング環境の実装形態を含み得る。プログラム・モジュール42は、一般に、本明細書に記載の本発明の実施形態の機能または方法あるいはその両方を実施する。
コンピュータ・システム/サーバ12は、キーボード、ポインティング・デバイス、ディスプレイ24などといった1つまたは複数の外部デバイス14、または、ユーザがコンピュータ・システム/サーバ12とやり取りすることができるようにする1つまたは複数のデバイス、または、コンピュータ・システム/サーバ12が1つまたは複数の他のコンピューティング・デバイスと通信することができるようにする任意のデバイス(例えばネットワーク・カード、モデムなど)、あるいはこれらの組合せとも通信することができる。このような通信は、入出力(I/O)インターフェース22を介して行うことができる。さらに、コンピュータ・システム/サーバ12は、ローカル・エリア・ネットワーク(LAN)、汎用ワイド・エリア・ネットワーク(WAN)、またはパブリック・ネットワーク(例えばインターネット)、あるいはこれらの組合せなどの1つまたは複数のネットワークと、ネットワーク・アダプタ20を介して通信することができる。図のように、ネットワーク・アダプタ20は、バス18を介してコンピュータ・システム/サーバ12の他のコンポーネントと通信する。なお、図示されていないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方もコンピュータ・システム/サーバ12とともに使用することができる。例としては、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらには限定されない。
次に図4を参照すると、一実施形態によるストレージ・システム400が示されている。図4に示す要素の一部は、様々な実施形態により、ハードウェアまたはソフトウェアあるいはその両方として実装可能であることに留意されたい。ストレージ・システム400は、少なくとも1つの上位ストレージ層402上と少なくとも1つの下位ストレージ層406上の複数の媒体と通信するためのストレージ・システム・マネージャ412を含み得る。上位ストレージ層402は、好ましくは、ハード・ディスク・ドライブ(HDD)内のハード・ディスク、不揮発性メモリ(NVM)、ソリッド・ステート・ドライブ(SSD)内のソリッド・ステート・メモリ、フラッシュ・メモリ、SSDアレイ、フラッシュ・メモリ・アレイなど、または本明細書に記載されているかもしくは当技術分野で知られているその他の媒体,あるいはこれらの組合せなど、1つまたは複数のランダム・アクセス媒体404またはダイレクト・アクセス媒体404あるいはその両方を含むことができる。下位ストレージ層406は、好ましくは、テープ・ドライブ内の磁気テープまたは光媒体あるいはその両方などの順次アクセス媒体、低速アクセスHDD、低速アクセスSSDなど、または本明細書に記載されているかもしくは当技術分野で知られているその他の媒体、あるいはこれらの組合せを含む、1つまたは複数のより低性能な記憶媒体408を含むことができる。1つまたは複数の追加ストレージ層416が、システム400の設計者の希望により、ストレージ・メモリ媒体の任意の組合せを含んでもよい。また、上位ストレージ層402または下位ストレージ層406あるいはその両方のいずれも、ストレージ・デバイスまたは記憶媒体あるいはその両方の何らかの組合せを含んでもよい。
ストレージ・システム・マネージャ412は、図4に示すようなストレージ・エリア・ネットワーク(SAN)または他の何らかの適切な種類のネットワークなどのネットワーク410を介して、上位ストレージ層402と下位ストレージ層406上の記憶媒体404、408と通信可能である。ストレージ・システム・マネージャ412は、ストレージ・システム・マネージャ412の一部であってもなくてもよいホスト・インターフェース414を介して、1つまたは複数のホスト・システム(図示せず)とも通信することができる。ストレージ・システム・マネージャ412、またはストレージ・システム400の任意の他のコンポーネントあるいはその両方は、ハードウェアまたはソフトウェアあるいはその両方で実装可能であり、当技術分野で知られている種類のコマンドを実行するために中央演算処理装置(CPU)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)などのプロセッサ(図示せず)を使用してもよい。当然ながら、本説明を読めば当業者には明らかなように、ストレージ・システムの任意の構成を使用することができる。
さらなる実施形態では、ストレージ・システム400は、任意の数のデータ・ストレージ層を含んでもよく、各ストレージ層内で同じかまたは異なるストレージ・メモリ媒体を含んでもよい。例えば、各データ・ストレージ層が、HDD、SSD、順次アクセス媒体(テープ・ドライブ内のテープ、光ディスク・ドライブ内の光ディスクなど)、ダイレクト・アクセス媒体(CD-ROM、DVD-ROMなど)、または媒体ストレージの種類の任意の組合せなど、同じ種類のストレージ・メモリ媒体を含んでもよい。そのような1つの構成では、上位ストレージ層402がより高性能なストレージ環境におけるデータの記憶のためにSSD記憶媒体を大多数含んでもよく、下位ストレージ層406と追加ストレージ層416とを含む残りのストレージ層が、より低性能なストレージ環境におけるデータの記憶のためにSSD、HDD、テープ・ドライブなどの任意の組合せを含んでもよい。このようにして、より頻繁にアクセスされるデータ、より優先順位の高いデータ、より高速にアクセスする必要があるデータなどを上位ストレージ層402に記憶することができ、一方、これらの属性のうちの1つを有しないデータを下位ストレージ層406を含む、追加ストレージ層416に記憶することができる。当然ながら、当業者は、本説明を読めば本明細書に示す実施形態により、異なる記憶方式として実装するために記憶媒体の種類の多くの他の組合せを考案することができる。
一部の実施形態によると、ストレージ・システム(400など)は、データ・セットを開く要求を受け取るように構成されたロジックと、要求されたデータ・セットが複数の関連付けられた部分で階層データ・ストレージ・システム400の下位ストレージ層406に記憶されているか否かを判定するように構成されたロジックと、要求されたデータ・セットの関連付けられた各部分を階層データ・ストレージ・システム400の上位ストレージ層402に移動するように構成されたロジックと、要求されたデータ・セットを、関連付けられた部分から集めて階層データ・ストレージ・システム400の上位ストレージ層402上でまとめるように構成されたロジックとを含んでもよい。
当然ながら、このロジックは、様々な実施形態により、任意のデバイスまたはシステムあるいはその両方上での方法として、またはコンピュータ・プログラム製品として実装可能である。
次に図5を参照すると、一実施形態による方法500のフローチャートが示されている。方法500は、様々な環境、特に、図1から図4および図9から図10に示す環境のいずれかにおいて本発明により実行可能である。当然ながら、本説明を読めば当業者にはわかるように、図5に具体的に記載されている動作よりも多いかまたは少ない動作が方法500に含まれてもよい。
方法500のステップのそれぞれは、動作環境の任意の適切なコンポーネントによって実行可能である。例えば、様々な実施形態で、方法500は、1つまたは複数のサーバ、コンピュータ、または、内部に1つまたは複数のプロセッサを有する他の何らかのデバイスによって、一部または全体が実行されてもよい。方法500の1つまたは複数のステップを実行するために、プロセッサ、例えば、ハードウェアまたはソフトウェアあるいはその両方で実装され、好ましくは少なくとも1つのハードウェア・コンポーネントを有する処理回路、チップ、または、モジュール、あるいはこれらの組合せを、任意のデバイスで使用してもよい。例示のプロセッサには、中央演算処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、これらの組合せ、または当技術分野で知られている任意のその他の適合するコンピューティング・デバイスが含まれるが、これらには限らない。その他の例示のコンポーネントには、CPUとして、同じチップ上にある場合もない場合もあり、または同じ基板もしくはモジュール上にパッケージ化されている場合もされていない場合もある、1つまたは複数のコプロセッサまたはアクセラレータが含まれる。
図5に示すように、方法500は動作502で開始することができ、データの圧縮インスタンスを作成するためにデータの非圧縮インスタンスが圧縮される。一実施形態では、データの非圧縮インスタンスは、データの圧縮インスタンスを作成するために1つまたは複数の圧縮アルゴリズムを使用して圧縮されてもよい。例えば、データの圧縮インスタンスを作成するためにデータの非圧縮インスタンスに圧縮アルゴリズムを適用してもよい。
また、一実施形態では、データの非圧縮インスタンスは、暗号化されるものとして識別されたデータを含んでもよい。例えば、データの非圧縮インスタンスを暗号化する要求が、アプリケーション、ユーザなどから受け取られてもよい。別の実施形態では、データの非圧縮インスタンスは、平文のインスタンスを含み得る。
また、方法500は動作504に進むことができ、データの圧縮インスタンスのサイズが所定の閾値より小さいとの判定に応答して、データの圧縮インスタンスが暗号化される。一実施形態では、データの圧縮インスタンスのサイズが所定の閾値と比較されてもよい。別の実施形態では、所定の閾値は閾値データ・サイズを含み得る。さらに別の実施形態では、データの圧縮インスタンスのサイズが所定の閾値より大きいとの判定に応答して、データの圧縮インスタンスが廃棄、削除または除去されてもよい。
例えば、データの圧縮インスタンスが廃棄され、その後の圧縮エンジン出力によって上書きされてもよい。廃棄されたデータは、次に、それ以上のデータが到着しないとの判定、または、電源喪失が検出されるかもしくは電源損失が迫っているとの判定に応答して、削除されてもよい。
また、一実施形態では、所定の閾値は、長さフィールドと、所定の最小ゼロ・パッド長と、メッセージ認証コード(MAC)フィールドとのサイズの和を含み得る。例えば、長さフィールドと所定のゼロ・パッドとメッセージ認証コード(MAC)フィールドとがそれぞれ所定のサイズを有してもよい。別の実施形態では、データの圧縮インスタンスの暗号化の結果として、暗号化されたデータの圧縮インスタンスが得られる。
また、一実施形態では、データの圧縮インスタンスは、ワイド・ブロック暗号化を使用して暗号化されてもよい。例えば、ワイド・ブロック暗号化を使用したデータの圧縮インスタンスの暗号化は、データの圧縮インスタンスにワイド・ブロック暗号化アルゴリズムを適用することを含み得る。別の例では、ワイド・ブロック暗号化アルゴリズムは、EME2-AES暗号化アルゴリズム、XCB-AES暗号化アルゴリズムなどを含み得る。
さらに、一実施形態では、ワイド・ブロック暗号化アルゴリズムは、単一ブロック暗号として機能し、データの圧縮インスタンスを入力とすることができる。別の実施形態では、ワイド・ブロック暗号化アルゴリズムは、データの圧縮インスタンスを暗号化しながらナロー・ブロック暗号(例えば高度暗号化標準(AES)暗号)を内部で使用してもよい。さらに別の実施形態では、ワイド・ブロック暗号化アルゴリズムは暗号化されたデータの圧縮インスタンスを出力することができる。さらに別の実施形態では、ワイド・ブロック暗号化を使用してデータの圧縮インスタンスを暗号化することは、データの圧縮インスタンスにワイド・ブロック暗号化アルゴリズムを適用することを含み得る。
また、一実施形態では、データの圧縮インスタンスは、初期化ベクトルを含む展開暗号化モード(カウンタ・モード暗号化など)を使用して暗号化されてもよい。例えば、初期化ベクトルは、データの圧縮インスタンスと秘密鍵とを使用して作成されてもよい。別の例では、秘密鍵は、公表されていない(例えば、データのインスタンスの暗号化を行う実体によって保持されている)暗号化のために使用されるデータのインスタンスを含み得る。さらに別の例では、秘密鍵はプライベート鍵とも呼ばれることがある。
さらに、一実施形態では、初期化ベクトルは鍵付きハッシュを含み得る。別の実施形態では、鍵付きハッシュは、秘密鍵とデータの圧縮インスタンスとにハッシュ関数を適用した結果として得られる。さらに別の実施形態では、ハッシュ関数は秘密鍵と平文とに任意の順序で(例えば、最初に秘密鍵に、2番目にデータの圧縮インスタンスに、または最初にデータの圧縮インスタンスに、2番目に秘密鍵に)適用されてもよい。
また、一実施形態では、ハッシュ関数は、秘密鍵とデータの圧縮インスタンスとを、鍵付きハッシュを構成する固定サイズのハッシュ値にマップしてもよい。別の実施形態では、ハッシュ関数は、セキュア・ハッシュ・アルゴリズム-256(SHA-256)暗号学的ハッシュ関数を含んでもよい。さらに別の実施形態では、初期化ベクトルは、ハッシング鍵と平文とにかかわる鍵付きハッシュ・メッセージ認証コード/ハッシュ・ベースのメッセージ認証コード(HMAC)の計算を含んでもよい。別の態様では、ハッシング鍵は、データを暗号化するために使用される秘密鍵と同じであってもよく、または鍵導出によりその秘密鍵と関係してもよく、鍵付きハッシュは暗号化アルゴリズムを使用して計算されてもよい。
さらに、一実施形態では、秘密鍵からハッシングのための鍵が導出されてもよく、鍵付きハッシュは暗号化アルゴリズムを使用して計算されてもよい。例えば、鍵付きハッシュは、ハッシュ暗号化鍵によって平文のハッシュを暗号化することによって求められてもよい。ハッシュ暗号化鍵は、ハッシング鍵の一種であり、したがってデータを暗号化するために使用される秘密鍵と同じであってよく、または鍵導出によりその秘密鍵と関係していてもよい。ハッシュ暗号化鍵を使用する場合、使用される暗号化アルゴリズムは、128ビット鍵を使用する高度暗号化標準(AES)暗号化アルゴリズムの電子コードブック(ECB)モード(すなわちECB-AES-128)と同程度に単純な場合がある。別の態様では、ハッシング鍵が秘密鍵とは独立して生成されてもよく、その場合は、データ重複排除を可能にするように、同じ鍵の下でさらなる暗号化を行うためにそのハッシング鍵を秘密鍵とともに使用することができるように、保持しておくことが必要になる。独立して生成されたハッシング鍵は、初期化ベクトル(IV)の一意性に寄与する。独立して生成されたハッシング鍵は、IVの使用によって作成された暗号文の復号の結果の平文との照合時にそのIVをチェックする必要がある場合にも、保持しておくことが必要になる。
また、一実施形態では、データの圧縮インスタンスは、初期化ベクトルと、秘密鍵と、データの圧縮インスタンスとを使用して暗号化されてもよい。例えば、データの圧縮インスタンスの暗号化の結果として、暗号化されたデータの圧縮インスタンスが得られる。別の例では、データの圧縮インスタンスの暗号化は、初期化ベクトルと秘密鍵とを使用してデータの圧縮インスタンスに暗号化モード(例えば暗号化アルゴリズム)を適用することを含み得る。
さらに、一実施形態では、暗号化モードは、CBC、PCBC、CFB、OFB、OCB、CTR、CCM、もしくはGCMなどのノンスまたはIVに依存する暗号化モードを含み得る。例えば、カウンタ・ベースの暗号化モード(例えばCTR、GCMなど)が、第1の値を作成するために初期化ベクトルを任意のカウンタ値と組み合わせてもよい。その第1の値は次に、必要な限りの長さのカウント・ストリームを作成するようにインクリメントすることができる。次に、秘密鍵を使用してそのカウント・ストリームに対してブロック暗号暗号化(例えば高度暗号化標準(AES)暗号化など)を行って、暗号ストリームを作成してもよい。このデータのインスタンスは、次に、データの暗号化インスタンスを作成するために(例えば排他的OR(XOR)演算を使用して)暗号ストリームと結合されてもよい。
また、一実施形態では、暗号化モードは、ガロア・カウンタ・モード(GCM)暗号化モードを含み得る。例えば、GCM暗号化モードは、データの圧縮インスタンス内のブロックの数を求めることができる。別の例では、ブロックの数を初期化ベクトルと組み合わせて第1の値を作成することができる。その第1の値は次に、必要な限りの長さのカウント・ストリームを作成するようにインクリメントすることができる。次に、秘密鍵を使用してそのカウント・ストリームに対してブロック暗号暗号化(例えば高度暗号化標準(AES)暗号化など)を行って、暗号ストリームを作成してもよい。このデータのインスタンスは、次に、データの暗号化インスタンスを作成するために(例えばXOR演算を使用して)暗号ストリームと結合されてもよい。
また、一実施形態では、暗号化されたデータの圧縮インスタンスは、暗号文(例えば、データの圧縮インスタンスに暗号化アルゴリズムを適用した結果の暗号化テキストなど)のインスタンスを含んでもよい。
さらに、方法500は動作506に進むことができ、暗号化されたデータの圧縮インスタンスのためにメッセージ認証コード(MAC)が作成される。一実施形態では、MACは暗号化されたデータの圧縮インスタンスが受信側に送信された後で暗号化されたデータの圧縮インスタンスを認証するために使用されるデータを含んでもよい。別の実施形態では、MACは、同じ秘密鍵を使用して生成と検証の両方が行われてもよい。さらに別の実施形態では、鍵生成アルゴリズムが鍵空間から秘密鍵を(例えばランダムになど)選択してもよい。
また、一実施形態では、鍵生成アルゴリズムは、所定の秘密鍵を選択してもよい。別の実施形態では、選択された秘密鍵と暗号化されたデータの圧縮インスタンスとが入力として与えられると、署名アルゴリズムがタグ(例えばMAC)を出力することができる。さらに別の実施形態では、検証アルゴリズムが、タグと選択された秘密鍵とを使用して、暗号化されたデータの圧縮インスタンスとタグとを含むメッセージ(例えば暗号文ストリング)を受け入れまたは拒否してもよい。
このようにして、MACを使用して、暗号化されたデータの圧縮インスタンスの真正性を検証することができる。
さらに、一実施形態では、MACは、GCM暗号化モードの一部として作成されるガロア・メッセージ認証コード(GMACまたはGCM-MAC)を含んでもよい。例えば、GCM暗号化モードを使用してデータの圧縮インスタンスが暗号化されてもよく、MACは(例えば同じ秘密鍵などを使用して)同じ暗号化計算の一部として作成されてもよい。
また、一実施形態では、MACは、鍵付きハッシュ・メッセージ認証コードまたはハッシュ・ベースのメッセージ認証コード(例えばHMAC)を含んでもよい。例えば、HMACは基礎になる暗号ハッシュ関数(例えばSHA2-256またはSHA3-256ハッシュ関数など)に基づいて作成されてもよい。別の例では、HMACを作成するためにハッシュ計算の2つのパスが使用されてもよい。
例えば、秘密鍵が、暗号化されたデータの圧縮インスタンスから2つの鍵(内側鍵と外側鍵)を計算してもよい。別の実施形態では、暗号ハッシュ関数の第1のパスが、暗号化されたデータの圧縮インスタンスと内側鍵とを使用して内部ハッシュを生成してもよい。さらに別の実施形態では、暗号ハッシュ関数の第2のパスが内部ハッシュと外側鍵とを使用して最終的なHMACを生成してもよい。
さらに、方法500は動作508に進むことができ、フォーマットされたストリングを作成するために、暗号化されたデータの圧縮インスタンスにゼロ・パッドとMACとが付加される。一実施形態では、暗号化されたデータの圧縮インスタンスに長さフィールドが付加されてもよく、長さフィールドは、暗号化されたデータの圧縮インスタンスの長さを示す所定の長さ(例えば2バイトなど)を有するフィールドを含んでもよい。別の実施形態では、暗号化されたデータの圧縮インスタンスの長さが求められ、この長さが、暗号化されたデータの圧縮インスタンスに連結される長さフィールドにコード化されてもよい。
別の実施形態では、長さフィールドのサイズは、暗号化されたデータの圧縮インスタンスのサイズに基づいて計算されてもよい。一実施形態では、HMACは、長さフィールドとゼロ・パッドとのうちの1つまたは複数が、暗号化されたデータの圧縮インスタンスに付加された後で計算されてもよい。
また、一実施形態では、最小ゼロ・パッドは、すべてのバイトがゼロに設定されたものなど、圧縮可能度が高く容易に検出可能な何らかの値を有する所定の最小バイト数を含み得る。別の実施形態では、ゼロ・パッドは、所定の閾値より長い長さを有してもよい。例えば、所定の閾値は、最小長を有する可変バイト数を含んでもよい。さらに別の実施形態では、ゼロ・パッドは、暗号化されたデータの圧縮インスタンス、長さフィールドなどに連結されてもよい。
さらに、一実施形態では、MACは所定の長さを有するフィールドを含んでもよい。別の実施形態では、MACは暗号化されたデータの圧縮インスタンスに、長さフィールドに、ゼロ・パッドになど連結されてもよい。さらに別の実施形態では、暗号文ストリングの長さ(例えば、長さフィールドと、暗号化されたデータの圧縮インスタンスと、ゼロ・パッドと、MACとの長さ)は、データの非圧縮インスタンスの長さと等しくなり得る。さらに別の実施形態では、データの圧縮インスタンスが初期化ベクトル(IV)を使用して暗号化される場合、IVは暗号化されたデータの圧縮インスタンスに、長さフィールドに、ゼロ・パッドに、MACになど連結されてもよい。
また、一実施形態では、長さフィールドと、暗号化されたデータの圧縮インスタンスと、ゼロ・パッドと、MACと、IVとの長さは、データの非圧縮インスタンスの長さと等しくなり得る。このようにして、データのインスタンスの圧縮、暗号化、および完全性保護の付与を行いながら、長さ保存圧縮(length preserving compression:LPC)を実装することができる。
さらに、一実施形態では、フォーマットされたストリングの記憶または送信あるいはその両方を行ってもよい。例えば、フォーマットされたストリングをデータベース、分散ストレージ・システム、クラウド・コンピューティング環境などに記憶してもよい。別の実施形態では、フォーマットされたストリングは、1つまたは複数のネットワークを介して1件または複数のユーザ、1つまたは複数のデバイス、1つまたは複数のリモート・ストレージ・システムなどに送信されてもよい。
また、一実施形態では、(例えば、暗号化されたデータの圧縮インスタンスの受信、またはストレージからの暗号化されたデータの圧縮インスタンスの読み出しに応答して)暗号化されたデータの圧縮インスタンスを特定するためにゼロ・パッドを使用してもよい。例えば、フォーマットされたストリングの受信時に、受信側の実体が、(例えば、暗号文ストリング内の所定の位置などに)ゼロ・パッドがないかそのストリング内を探索してもよい。別の例では、ゼロ・パッドが特定された場合、フォーマットされたストリングが、暗号化されたデータの圧縮インスタンスとして識別されてもよい。さらに別の例では、ゼロ・パッドが特定されなかった場合、そのフォーマットされたストリングは暗号化されたデータの非圧縮インスタンスとして識別されてもよい。
さらに、一実施形態では、MACはデータ完全性と暗号文ストリングの真正性とを検証するために使用することができる。例えば、暗号文ストリングの受信時、その暗号文ストリングからMACが抽出されてもよい。例えば、暗号文ストリング内のMACの位置が受信側に与えられ、MACを抽出するために使用されてもよい。別の例では、(秘密鍵を備える)検証アルゴリズムが、暗号文ストリングと秘密鍵(例えばMACを作成するために使用された秘密鍵など)を使用してMACを求めてもよい。
また、一実施形態では、求められたMACを抽出されたMACと比較してもよい。別の実施形態では、求められたMACが抽出されたMACと同じである場合、暗号文が有効であると確定されてもよい。さらに別の実施形態では、求められたMACが抽出されたMACと同じでない場合、その暗号文は無効として拒絶されてもよい。
このようにして、データのインスタンスの完全決定論的暗号文ストリングを作成し、記憶することができる。データの第1のインスタンスがデータの第2のインスタンスと同じであり、第1の鍵が第2の鍵と同じ場合、上述のワイド・ブロック暗号化技術を使用し、第1の鍵を使用してデータの第1のインスタンスのために作成された第1の暗号文ストリングが第2の鍵を使用してデータの第2のインスタンスのために作成された第2の暗号文ストリングと同一であり得るという点で、この暗号文ストリングは完全決定論的である。その結果、ハードウェア・ストレージ内で重複暗号文ストリングを特定することができ、除去することができ、それによってハードウェア・ストレージ内の利用可能記憶空間を増やすことができ、ハードウェア・ストレージのパフォーマンスを向上させることができるとともに、堅牢な暗号化により記憶データのセキュリティを維持することができる。
さらに、暗号文ストリングにMACを含めることによって、受信時に、暗号文ストリングが(例えば送信エラー、マルウェアなどにより)破損していないか調べることができる。これにより、暗号文ストリングの記憶時および送信時にエンドツーエンド完全性保護を実現することができる。
次に図6を参照すると、一実施形態による、データの非圧縮インスタンスを暗号化する方法600のフローチャートが示されている。方法600は、様々な環境、特に図1から図4および図9から図10に示す環境のいずれかで、本発明により実行可能である。当然ながら、本説明を読めば当業者にはわかるように、図6に具体的に記載されている動作よりも多いかまたは少ない動作が方法600に含まれてもよい。
方法600のステップのそれぞれは、動作環境の任意の適切なコンポーネントによって実行可能である。例えば、様々な実施形態で、方法600は、1つまたは複数のサーバ、コンピュータ、または、内部に1つまたは複数のプロセッサを有する他の何らかのデバイスによって、一部または全体が実行されてもよい。方法600の1つまたは複数のステップを実行するために、プロセッサ、例えば、ハードウェアまたはソフトウェアあるいはその両方で実装され、好ましくは少なくとも1つのハードウェア・コンポーネントを有する処理回路、チップ、または、モジュール、あるいはこれらの組合せを、任意のデバイスで使用してもよい。例示のプロセッサには、中央演算処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、これらの組合せ、または当技術分野で知られている任意のその他の適合するコンピューティング・デバイスが含まれるが、これらには限らない。その他の例示のコンポーネントには、CPUとして、同じチップ上にある場合もない場合もあり、または同じ基板もしくはモジュール上にパッケージ化されている場合もされていない場合もある、1つまたは複数のコプロセッサまたはアクセラレータが含まれる。
図6に示すように、方法600は動作602で開始することができ、データの圧縮インスタンスのサイズが所定の閾値より大きいと判定される。一実施形態では、データの非圧縮インスタンスは、暗号化されるものとして識別されたデータを含んでもよい。例えば、データの非圧縮インスタンスを暗号化する要求が、アプリケーション、ユーザなどから受け取られてもよい。
さらに、一実施形態では、データの非圧縮インスタンスは、平文のインスタンスを含み得る。例えば、平文が、1つまたは複数の暗号化アルゴリズムによって暗号化されることが望ましい非暗号化情報を含んでもよい。別の実施形態では、データの非圧縮インスタンスは、データの圧縮インスタンスを作成するために1つまたは複数の圧縮アルゴリズムを使用して圧縮されてもよい。
また、一実施形態では、データの圧縮インスタンスのサイズが所定の閾値と比較されてもよい。別の実施形態では、所定の閾値は閾値データ・サイズを含み得る。さらに別の実施形態では、所定の閾値は、長さフィールドと所定の最小ゼロ・パッド長との和のための余地を含み得る。さらに別の実施形態では、データの圧縮インスタンスのサイズが所定の閾値より大きいとの判定に応答して、データの圧縮インスタンスが廃棄(例えば、除去、削除など)されてもよい。
さらに、方法600は動作604に進むことができ、データの非圧縮インスタンスを先に圧縮せずに暗号文ストリングを作成するために、データの非圧縮インスタンスが暗号化される。一実施形態では、データの非圧縮インスタンスの暗号化の結果として、暗号化されたデータの非圧縮インスタンスが得られる。別の実施形態では、暗号化されたデータの非圧縮インスタンスは、データの非圧縮インスタンスと同じサイズ/長さを有し得る。
また、一実施形態では、データの非圧縮インスタンスは高度暗号化標準(AES)暗号化を使用して暗号化されてもよい。別の実施形態では、データの非圧縮インスタンスは、ワイド・ブロック暗号化を使用して暗号化されてもよい。例えば、ワイド・ブロック暗号化を使用したデータの非圧縮インスタンスの暗号化は、データの非圧縮インスタンスにワイド・ブロック暗号化アルゴリズムを適用することを含み得る。
さらに、一実施形態では、ワイド・ブロック暗号化アルゴリズムは、EME2-AES暗号化アルゴリズム、XCB-AES暗号化アルゴリズムなどを含み得る。別の実施形態では、ワイド・ブロック暗号化アルゴリズムは、単一ブロック暗号として機能し、データの非圧縮インスタンスを入力とすることができる。さらに別の実施形態では、ワイド・ブロック暗号化アルゴリズムは、データの非圧縮インスタンスを暗号化しながらナロー・ブロック暗号(例えば高度暗号化標準(AES)暗号)を内部で使用してもよい。
さらに、一実施形態では、ワイド・ブロック暗号化アルゴリズムは暗号化されたデータの非圧縮インスタンスを出力することができる。別の実施形態では、暗号化されたデータの非圧縮インスタンスは、暗号文(例えば、平文の非圧縮インスタンスに暗号化アルゴリズムを適用した結果の暗号化テキストなど)のインスタンスを含み得る。
さらに、一実施形態では、暗号文ストリングの記憶または送信あるいはその両方を行ってもよい。例えば、暗号文ストリングをデータベース、分散ストレージ・システム、クラウド・コンピューティング環境などに記憶してもよい。別の例では、暗号文ストリングは、1つまたは複数のネットワークを介して1件または複数のユーザ、1つまたは複数のデバイス、1つまたは複数のリモート・ストレージ・システムなどに送信されてもよい。
次に図7を参照すると、一実施形態による、データのインスタンスを暗号化し、日和見認証する方法700のフローチャートが示されている。方法700は、様々な環境、特に図1から図4および図9から図10に示す環境のいずれかで、本発明により実行可能である。当然ながら、本説明を読めば当業者にはわかるように、図7に具体的に記載されている動作よりも多いかまたは少ない動作が方法700に含まれてもよい。
方法700のステップのそれぞれは、動作環境の任意の適切なコンポーネントによって実行可能である。例えば、様々な実施形態で、方法700は、1つまたは複数のサーバ、コンピュータ、または、内部に1つまたは複数のプロセッサを有する他の何らかのデバイスによって、一部または全体が実行されてもよい。方法700の1つまたは複数のステップを実行するために、プロセッサ、例えば、処理回路、チップ、または、ハードウェアまたはソフトウェアあるいはその両方で実装され、好ましくは少なくとも1つのハードウェア・コンポーネントを有するモジュール、あるいはこれらの組合せを、任意のデバイスで使用してもよい。例示のプロセッサには、中央演算処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、これらの組合せ、または当技術分野で知られている任意のその他の適合するコンピューティング・デバイスが含まれるが、これらには限らない。その他の例示のコンポーネントには、CPUとして、同じチップ上にある場合もない場合もあり、または同じ基板もしくはモジュール上にパッケージ化されている場合もされていない場合もある、1つまたは複数のコプロセッサまたはアクセラレータが含まれる。
図7に示すように、方法700は動作702で開始することができ、データの圧縮インスタンスを作成するためにデータの非圧縮インスタンスが圧縮される。さらに、方法700は動作704に進むことができ、データの圧縮インスタンスのサイズが所定の閾値より小さいとの判定に応答して、データの圧縮インスタンスが暗号化され、暗号化されたデータの圧縮インスタンスのためにメッセージ認証コード(MAC)が作成され、フォーマットされたストリングを作成するために、暗号化されたデータの圧縮インスタンスにゼロ・パッドとMACとが付加される。
また、方法700は動作706に進むことができ、データの圧縮インスタンスのサイズが所定の閾値より大きいとの判定に応答して、データの圧縮インスタンスが廃棄され、フォーマットされたストリングを作成するためにデータの非圧縮インスタンスが暗号化される。
次に図8を参照すると、一実施形態による、データ重複排除を行う方法800のフローチャートが示されている。方法800は、様々な環境、特に図1から図4および図9から図10に示す環境のいずれかで、本発明により実行可能である。当然ながら、本説明を読めば当業者にはわかるように、図8に具体的に記載されている動作よりも多いかまたは少ない動作が方法800に含まれてもよい。
方法800のステップのそれぞれは、動作環境の任意の適切なコンポーネントによって実行可能である。例えば、様々な実施形態で、方法800は、1つまたは複数のサーバ、コンピュータ、または、内部に1つまたは複数のプロセッサを有する他の何らかのデバイスによって、一部または全体が実行されてもよい。方法800の1つまたは複数のステップを実行するために、プロセッサ、例えば、ハードウェアまたはソフトウェアあるいはその両方で実装され、好ましくは少なくとも1つのハードウェア・コンポーネントを有する処理回路、チップ、または、モジュール、あるいはこれらの組合せを、任意のデバイスで使用してもよい。例示のプロセッサには、中央演算処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、これらの組合せ、または当技術分野で知られている任意のその他の適合するコンピューティング・デバイスが含まれるが、これらには限らない。その他の例示のコンポーネントには、CPUとして、同じチップ上にある場合もない場合もあり、または同じ基板もしくはモジュール上にパッケージ化されている場合もされていない場合もある、1つまたは複数のコプロセッサまたはアクセラレータが含まれる。
図8に示すように、方法800は動作802で開始することができ、データ・ストレージ内の複数の暗号文ストリングが分析される。一実施形態では、データ・ストレージは、データベース、分散ストレージ・システム、クラウド・コンピューティング環境などを含み得る。別の実施形態では、分析は、データ・ストレージ内の単一の暗号文ストリングをデータ・ストレージ内の他の暗号文ストリングと比較して、データ・ストレージ内に一致するもの(例えば重複)が存在するか否かを判定することを含んでもよい。
さらに別の実施形態では、複数の暗号文ストリングのうちの1つまたは複数の暗号文ストリングが、平文の非圧縮インスタンスの長さと一致する長さを有する暗号化された平文の非圧縮インスタンスを作成するように平文の非圧縮インスタンスに対してワイド・ブロック暗号化を行うことによって作成されてもよい。さらに別の実施形態では、複数の暗号文ストリングのうちの1つまたは複数の暗号文ストリングが、暗号化された平文の圧縮インスタンスを作成するように平文の圧縮インスタンスに対してワイド・ブロック暗号化を行うことによって作成されてもよい。平文の非圧縮インスタンスの長さと一致する長さを有する暗号文ストリングを作成するように、暗号化された平文の圧縮インスタンスに長さフィールドと可変長ゼロ・パッドとが付加されてもよい。
さらに、方法800は動作804に進むことができ、その分析に基づいて1つまたは複数の冗長な暗号文ストリングがデータ・ストレージから除去される。一実施形態では、データ・ストレージ内の所与の暗号文ストリングについて1つまたは複数の一致/重複するものが見つかったとの判定に応答して、その所与の暗号文ストリングの1つまたは複数のインスタンスがデータ・ストレージから除去(例えば削除、移送など)されてもよい。別の実施形態では、データ・ストレージ内に暗号文ストリングの単一のインスタンスが残るように、データ・ストレージから重複暗号文ストリングが除去されてもよい。
その結果、データ・ストレージ内で重複排除を行うことができ、それによってデータ・ストレージ内の利用可能記憶空間の量を最大化することができ、それによってデータ・ストレージを実装するハードウェアのパフォーマンスを向上させることができる。
図9に、例示の一実施形態による、平文の圧縮インスタンス902の暗号化906を行うための例示の環境900を示す。図のように、平文の非圧縮インスタンス904が、その非圧縮平文904を暗号化する命令とともに受け取られる。それに応答して、平文の圧縮インスタンス902を作成するために平文の非圧縮インスタンス904が圧縮914される。
さらに、平文の圧縮インスタンス902のサイズが所定のサイズ閾値(例えば、ゼロ・パッド912のサイズと長さフィールド910のサイズとを差し引いた平文の非圧縮インスタンス904のサイズ)と比較され、所定のサイズ閾値より小さいことがわかる。この判定に応答して、平文の圧縮インスタンス902と同じサイズを有する暗号化された平文の圧縮インスタンス908を作成するように平文の圧縮インスタンス902に対して暗号化906が行われる。
さらに、平文の圧縮インスタンス902の長さが求められ、暗号化された平文の圧縮インスタンス908に長さフィールド910として付加される。暗号化された平文の圧縮インスタンス908のためにMAC916が計算され、暗号化された平文の圧縮インスタンス908の後に追加される。所定の最小長を有する可変長ゼロ・パッド912が作成され、MAC916の後に追加される。
別の実施形態では、先にゼロ・パッド912が、暗号化された平文の圧縮インスタンス908の後に追加され、ゼロ・パッド912と暗号化された平文の圧縮インスタンス908の両方のためにMAC916が計算されてもよい。
このようにして、長さフィールド910と、暗号化された平文の圧縮インスタンス908と、ゼロ・パッド912とを結合することによって暗号文ストリングが作成される。この暗号文ストリングの長さは、平文の非圧縮インスタンス904と同じであり、これにより長さ保存圧縮(LPC)が維持される。
図10に、例示の一実施形態による、平文の非圧縮インスタンス1004の暗号化1008を行うための例示の環境1000を示す。図のように、平文の非圧縮インスタンス1004が、その非圧縮平文1004を暗号化する命令とともに受け取られる。これに応答して、平文の圧縮インスタンス1006を作成するように平文の非圧縮インスタンス1004が圧縮1002される。
さらに、平文の圧縮インスタンス1006のサイズが所定のサイズ閾値と比較され、所定のサイズ閾値より大きいことがわかる。この判定に応答して、平文の圧縮インスタンス1006が廃棄され、平文の非圧縮インスタンス1004と同じサイズを有する暗号化された平文の非圧縮インスタンス1010を作成するように平文の非圧縮インスタンス1004に対して暗号化1008が行われる。
このようにして、長さ保存圧縮(LPC)が維持される。
[拡張LPC暗号化の日和見認証]
一実施形態では、十分に圧縮可能なデータのフォーマットされたものにメッセージ認証コード(MAC)が挿入される。MACの追加により、暗号文が容易に影響されなくなるため、記憶されているデータが改ざんに対してより耐性をもつようになる。より詳細には、このMACによって保護されている暗号化セクタの暗号文の一部を置き換えることが不可能になる。
MACの挿入は、MACを挿入する余地ができるようにデータが十分に圧縮可能である場合にのみMACが挿入されるという点で日和見的である。
一実施形態では、MACは(例えば暗号化の前に)平文について別個に計算されてもよい。これは、認証後暗号化(AtE:authenticate then encrypt)と呼ばれる。別の実施形態では、MACは、暗号化によって得られた暗号文に基づいて別個に計算されてもよい。これは、暗号化後認証(EtA:encrypt then authenticate)と呼ばれる。
さらに別の実施形態では、MACは、GCMなどの認証暗号化アルゴリズムの使用により暗号化の一部として計算されてもよい。さらに別の実施形態では、MACが別個に計算される場合、セキュアなMACを作成するためにHMAC計算が使用されてもよい。
一実施形態では、データの単位を認証する方法が、データの各単位を圧縮して圧縮データとする段階と、圧縮データ長を計算してそれを閾値と比較する段階であって、圧縮データ長が閾値より短い場合、データは十分に圧縮可能である、段階と、単位のデータが十分に圧縮可能な場合、データを暗号化し、データの単位のフォーマットされたものにメッセージ認証コードを挿入する段階と、データの単位が十分に圧縮可能でない場合、メッセージ認証コードを挿入せずにデータを暗号化する段階とを含む。
別の実施形態では、暗号化は複数の形態をとってもよい。例えば、十分に圧縮可能なデータを暗号化する第1の方法が、初期化ベクトル(IV)フィールドを使用することと、暗号化のIV依存モードを使用することであり、データの単位のフォーマットされたものは、IVフィールドとMACの両方を含み、十分に圧縮可能なデータを暗号化する第2の方法が、圧縮データをワイド・ブロック暗号化コードを使用して暗号化することであり、データの単位のフォーマットされたものは、MACを含みIVフィールドを含まない。
このようにして、圧縮データ(暗号化されてもされなくてもよい)に認証を加えることによってデータ完全性を向上させることができる。
本発明は、任意の可能な統合の技術的詳細度のシステム、方法、またはコンピュータ・プログラム製品あるいはこれらの組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の実施形態を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学式ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適合する組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のものも含まれる。すなわち、可搬コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、可搬コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピィ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適合する組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体とは、電波もしくはその他の自由に伝播する電磁波、導波路もしくはその他の伝送媒体を伝播する電磁波(例えば光ファイバ・ケーブルを通る光パルス)、または配線を介して伝送される電気信号などの、一過性の信号自体であると解釈すべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワークあるいはこれらの組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、交換機、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組合せを含み得る。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、または、Smalltalk(登録商標)もしくはC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語、または同様のプログラム言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードであってもよい。コンピュータ可読プログラム命令は、全体がユーザのコンピュータ上でもしくは一部がユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、または一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータもしくはサーバ上で実行されてもよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行ってもよい。実施形態によっては、本発明の実施形態を実行するために、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。その他の例示の回路には、CPUとして、同じチップ上にある場合もない場合もあり、または同じ基板もしくはモジュール上にパッケージ化されている場合もされていない場合もある、1つまたは複数のコプロセッサまたはアクセラレータが含まれる。
本発明の実施形態について、本明細書では本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品を示すフローチャート図またはブロック図あるいはその両方を参照しながら説明している。フローチャート図またはブロック図あるいはその両方の図の各ブロックおよび、フローチャート図またはブロック図あるいはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実装可能であることはわかるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサにより実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで規定されている機能/動作を実装する手段を形成するように、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサに供給されて、マシンを実現するものであってよい。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで規定されている機能/動作の実施形態を実装する命令を含む製造品を含むように、コンピュータ、プログラマブル・データ処理装置、またはその他の装置あるいはこれらの組合せに対して特定の方式で機能するように指示することができる、コンピュータ可読記憶媒体に記憶されてもよい。
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置またはその他のデバイス上で実行される命令がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで規定されている機能/動作を実装するように、コンピュータ実装プロセスを実現すべく、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスにロードされて、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。これに関連して、フローチャートまたはブロック図の各ブロックは、規定されている論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表すことがある。ある別の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、実際には1つのステップで完遂されてもよく、並行して実行されてもよく、実質的に並行して実行されてもよく、一部もしくは全体が時間的に重なって実行されてもよく、またはそれらのブロックは、場合によっては関与する機能に応じて逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の図の各ブロック、およびブロック図またはフローチャート図あるいはその両方の図のブロックの組合せは、規定されている機能または動作を実行するか、または専用ハードウェアとコンピュータ命令との組合せを実施する、専用ハードウェア・ベースのシステムによって実装可能であることもわかるであろう。
さらに、様々な実施形態によるシステムは、プロセッサと、プロセッサと一体化されるか、またはプロセッサによって実行可能であるか、あるいはその両方であるロジックとを含んでもよく、ロジックは、本明細書に記載のプロセス・ステップのうちの1つまたは複数のプロセス・ステップを実行するように構成される。一体化されるとは、特定用途向け集積回路(ASIC)、FPGAなどといった、ハードウェア・ロジックとして埋め込まれたロジックをプロセッサが有することを意味する。プロセッサによって実行可能とは、ロジックが、ハードウェア・ロジックであるか、ファームウェア、オペレーティング・システムの一部、アプリケーション・プログラムの一部などのソフトウェア・ロジックなどであるか、または、プロセッサによってアクセス可能であって、プロセッサによって実行されるとプロセッサに何らかの機能を実行させるように構成された、ハードウェア・ロジックとソフトウェア・ロジックとの何らかの組合せであることを意味する。ソフトウェア・ロジックは、当技術分野で知られているどのようなメモリの種類のローカルまたはリモートあるいはその両方のメモリにでも記憶することができる。ソフトウェア・プロセッサ・モジュールまたは、ASIC、FPGA、中央演算処理装置(CPU)、集積回路(IC)、グラフィックス・プロセッシング・ユニット(GPU)などといったハードウェア・プロセッサ、あるいはその両方など、当技術分野で知られているどのようなプロセッサでも使用することができる。その他の例示のプロセッサとしては、CPUとして、同じチップ上にある場合もない場合もあり、または同じ基板もしくはモジュール上にパッケージ化されている場合もされていない場合もある、1つまたは複数のコプロセッサまたはアクセラレータが含まれる。
上記のシステムまたは方法あるいはその両方の様々な特徴は、任意の方式で組み合わせてもよく、それによって上記の説明から複数の組合せを作成することができることが明らかであろう。
また、本発明の実施形態は、サービスをオンデマンドで提供するために顧客に代わって配備されるサービスの形態で提供されてもよいこともわかるであろう。
本発明の様々な実施形態の説明を例示のために示したが、これらは網羅的であること、または開示されている実施形態に限定することを意図したものではない。記載されている実施形態の範囲および思想から逸脱することなく、多くの変更および変形が当業者には明らかであろう。本明細書で使用されている用語は、実施形態の原理、実際の適用、もしくは市場に見られる技術に対する技術的改良を最もよく説明するために、または他の当業者が本明細書で開示されている実施形態を理解することができるように選定されている。
10 クラウド・コンピューティング・ノード
12 コンピュータ・システム/サーバ
14 外部デバイス
16 処理ユニット
18 バス
20 ネットワーク・アダプタ
22 I/Oインターフェース
24 ディスプレイ
28 メモリ
30 RAM
32 キャッシュ・メモリ
34 ストレージ・システム
50 クラウド・コンピューティング環境
54A PDAまたは携帯電話
54B デスクトップ・コンピュータ
54C ラップトップ・コンピュータ
54N 自動車コンピュータ・システム
60 ハードウェアおよびソフトウェア層
61 メインフレーム
62 RISCアーキテクチャ・ベースのサーバ
63 サーバ
64 ブレード・サーバ
65 ストレージ・デバイス
66 ネットワークおよびネットワーキング・コンポーネント
67 ネットワーク・アプリケーション・サーバ・ソフトウェア
68 データベース・ソフトウェア
70 仮想化層
71 仮想サーバ
72 仮想ストレージ
73 仮想ネットワーク
74 仮想アプリケーションおよびオペレーティング・システム
75 仮想クライアント
80 管理層
81 資源プロビジョニング
82 メータリングおよびプライシング
83 ユーザ・ポータル
84 サービス・レベル管理
85 計画および履行
90 ワークロード層
91 マッピングおよびナビゲーション
92 ソフトウェア開発およびライフサイクル管理
93 仮想教室教育配信
94 データ分析処理
95 トランザクション処理
96 メッセージ認証
400 ストレージ・システム
402 上位ストレージ層
404 ランダムまたはダイレクト・アクセス媒体
406 下位ストレージ層
408 低性能な記憶媒体
410 ネットワーク
412 ストレージ・システム・マネージャ
414 ホスト・インターフェース
416 追加ストレージ層
900 環境
902 平文の圧縮インスタンス
904 平文
906 暗号化
908 暗号化された平文の圧縮インスタンス
910 長さフィールド
912 ゼロ・パッド
914 圧縮
916 MAC
1000 環境
1002 圧縮
1004 平文
1006 平文の圧縮インスタンス
1008 暗号化
1010 暗号化された平文の非圧縮インスタンス

Claims (20)

  1. コンピュータ実装方法であって、
    データの圧縮インスタンスを作成するためにデータの非圧縮インスタンスを圧縮する段階と、
    前記データの圧縮インスタンスのサイズが所定の閾値より小さいとの判定に応答して前記データの圧縮インスタンスを暗号化する段階と、
    前記暗号化されたデータの圧縮インスタンスのためにメッセージ認証コード(MAC)を作成する段階と、
    フォーマットされたストリングを作成するために前記暗号化されたデータの圧縮インスタンスにゼロ・パッドと前記MACとを付加する段階と
    を備える、コンピュータ実装方法。
  2. 前記データの非圧縮インスタンスは平文のインスタンスを含む、請求項1に記載のコンピュータ実装方法。
  3. 前記データの圧縮インスタンスは、前記データの圧縮インスタンスの前記サイズが前記所定の閾値より大きいとの判定に応答して廃棄される、請求項1または2に記載のコンピュータ実装方法。
  4. 前記所定の閾値は、長さフィールドと、所定の最小ゼロ・パッド量と、前記MACとの和のサイズを含む、請求項1から3のいずれか一項に記載のコンピュータ実装方法。
  5. 前記データの圧縮インスタンスは、ワイド・ブロック暗号化を使用して暗号化される、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
  6. 前記データの圧縮インスタンスは、初期化ベクトルを含む展開暗号化モードを使用して暗号化される、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
  7. 前記暗号化されたデータの圧縮インスタンスに長さフィールドを付加する段階をさらに備え、前記長さフィールドは、前記暗号化されたデータの圧縮インスタンスの長さを示すフィールドを含む、請求項1から6のいずれか一項に記載のコンピュータ実装方法。
  8. 前記ゼロ・パッドは、各バイトが値ゼロを有するなどの、可変バイト数の圧縮可能度が高く容易に検出可能な何らかのデータ・パターンを含む、請求項1から7のいずれか一項に記載のコンピュータ実装方法。
  9. 長さフィールドと、前記暗号化されたデータの圧縮インスタンスと、前記ゼロ・パッドと、前記MACとの長さが、前記データの非圧縮インスタンスの長さと等しい、請求項1から8のいずれか一項に記載のコンピュータ実装方法。
  10. 前記フォーマットされたストリングを記憶または送信する段階をさらに備える、請求項1から9のいずれか一項に記載のコンピュータ実装方法。
  11. 前記MACは、ガロア・カウンタ・モード(GCM)暗号化モードの一部として作成されるガロア・メッセージ認証コード(GMAC)を含む、請求項1から10のいずれか一項に記載のコンピュータ実装方法。
  12. 前記MACは、鍵付きハッシュ・メッセージ認証コードまたはハッシュ・ベースのメッセージ認証コードを含む、請求項1から10のいずれか一項に記載のコンピュータ実装方法。
  13. 前記フォーマットされたストリングのデータ完全性および真正性を検証するために前記MACを使用する段階をさらに備える、請求項1から12のいずれか一項に記載のコンピュータ実装方法。
  14. プロセッサに、
    データの圧縮インスタンスを作成するためにデータの非圧縮インスタンスを圧縮する手順と、
    前記データの圧縮インスタンスのサイズが所定の閾値より小さいとの判定に応答して前記データの圧縮インスタンスを暗号化する手順と、
    前記暗号化されたデータの圧縮インスタンスのためにメッセージ認証コード(MAC)を作成する手順と、
    フォーマットされたストリングを作成するために前記暗号化されたデータの圧縮インスタンスにゼロ・パッドと前記MACとを付加する手順と
    を実行させるためのコンピュータ・プログラム。
  15. 前記データの非圧縮インスタンスは平文のインスタンスを含む、請求項14に記載のコンピュータ・プログラム。
  16. 前記データの圧縮インスタンスは、前記データの圧縮インスタンスの前記サイズが前記所定の閾値より大きいとの判定に応答して廃棄される、請求項14または15に記載のコンピュータ・プログラム。
  17. 前記所定の閾値は、長さフィールドと、所定の最小ゼロ・パッド量と、前記MACとの和のサイズを含む、請求項14から16のいずれか一項に記載のコンピュータ・プログラム。
  18. 前記データの圧縮インスタンスは、ワイド・ブロック暗号化を使用して暗号化される、請求項14から17のいずれか一項に記載のコンピュータ・プログラム。
  19. 前記データの圧縮インスタンスは、初期化ベクトルを含む展開暗号化モードを使用して暗号化される、請求項14から17のいずれか一項に記載のコンピュータ・プログラム。
  20. コンピュータ実装方法であって、
    データの圧縮インスタンスを作成するためにデータの非圧縮インスタンスを圧縮する段階と、
    前記データの圧縮インスタンスのサイズが所定の閾値より小さいとの判定に応答して、
    前記データの圧縮インスタンスを暗号化し、
    前記暗号化されたデータの圧縮インスタンスのためにメッセージ認証コード(MAC)を作成し、かつ、
    フォーマットされたストリングを作成するために前記暗号化されたデータの圧縮インスタンスにゼロ・パッドと前記MACとを付加する
    段階と、
    前記データの圧縮インスタンスの前記サイズが前記所定の閾値より大きいとの判定に応答して、
    前記データの圧縮インスタンスを廃棄し、かつ、
    前記フォーマットされたストリングを作成するために前記データの非圧縮インスタンスを暗号化する
    段階と
    を備える、コンピュータ実装方法。
JP2021196598A 2020-12-03 2021-12-03 エンドツーエンド・データ完全性保護のためのコンピュータ実装方法およびコンピュータ・プログラム製品(暗号化データの日和見認証の実装) Pending JP2022089190A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/111,312 2020-12-03
US17/111,312 US11917072B2 (en) 2020-12-03 2020-12-03 Implementing opportunistic authentication of encrypted data

Publications (1)

Publication Number Publication Date
JP2022089190A true JP2022089190A (ja) 2022-06-15

Family

ID=79163984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021196598A Pending JP2022089190A (ja) 2020-12-03 2021-12-03 エンドツーエンド・データ完全性保護のためのコンピュータ実装方法およびコンピュータ・プログラム製品(暗号化データの日和見認証の実装)

Country Status (5)

Country Link
US (1) US11917072B2 (ja)
JP (1) JP2022089190A (ja)
CN (1) CN114595466A (ja)
DE (1) DE102021130812A1 (ja)
GB (1) GB2601906B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11695541B2 (en) * 2020-12-07 2023-07-04 International Business Machines Corporation Implementing resilient deterministic encryption
US20230086249A1 (en) * 2021-09-22 2023-03-23 Bank Of America Corporation Email Verification Using Injected Tokens for Message Authentication
CN115758434B (zh) * 2023-01-06 2023-05-12 深圳奥联信息安全技术有限公司 一种数据高效编码加密方法

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5642421A (en) * 1995-09-15 1997-06-24 International Business Machines Corporation Encryption of low data content ATM cells
US5778395A (en) 1995-10-23 1998-07-07 Stac, Inc. System for backing up files from disk volumes on multiple nodes of a computer network
JP2000048230A (ja) * 1998-07-27 2000-02-18 Toshiba Corp 無線料金収受システム
US20050015608A1 (en) 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US6983365B1 (en) 2000-05-05 2006-01-03 Microsoft Corporation Encryption systems and methods for identifying and coalescing identical objects encrypted with different keys
US9143546B2 (en) * 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
JP2004184516A (ja) * 2002-11-29 2004-07-02 Canon Inc デジタルデータ送信端末
JPWO2004093446A1 (ja) * 2003-04-17 2006-07-13 富士通株式会社 圧縮データと非圧縮データを同時転送する場合のタスクスケジューリング方法
US7746866B2 (en) * 2005-05-13 2010-06-29 Intel Corporation Ordered and duplicate-free delivery of wireless data frames
CN1905554A (zh) 2005-07-29 2007-01-31 华为技术有限公司 一种认证授权计费协议消息传输方法
US7725927B2 (en) * 2005-10-28 2010-05-25 Yahoo! Inc. Low code-footprint security solution
JP5431148B2 (ja) 2006-05-31 2014-03-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ストレージ用論理データオブジェクトの変換方法およびシステム
US8494166B2 (en) * 2007-05-01 2013-07-23 International Business Machines Corporation Use of indirect data keys for encrypted tape cartridges
US8656186B2 (en) * 2007-05-01 2014-02-18 International Business Machines Corporation Use of indirect data keys for encrypted tape cartridges
EP2153340A4 (en) 2007-05-08 2015-10-21 Riverbed Technology Inc HYBRID SEGMENT ORIENTED FILE SERVER, AND WAN ACCELERATOR
US9324361B2 (en) * 2007-08-14 2016-04-26 Seagate Technology Llc Protecting stored data from traffic analysis
JP2010050616A (ja) * 2008-08-20 2010-03-04 Sony Corp 記録装置および記録方法、再生装置および再生方法、プログラム、並びに記録再生装置
US8555053B1 (en) 2008-08-29 2013-10-08 Crossroads Systems, Inc. System and method for adjusting to drive specific criteria
US8218759B2 (en) 2009-04-17 2012-07-10 Oracle America, Inc. System and method for encrypting data
US20100303229A1 (en) * 2009-05-27 2010-12-02 Unruh Gregory Modified counter mode encryption
US8401181B2 (en) 2009-06-09 2013-03-19 Emc Corporation Segment deduplication system with encryption of segments
US8731190B2 (en) 2009-06-09 2014-05-20 Emc Corporation Segment deduplication system with encryption and compression of segments
US8706727B2 (en) * 2009-06-19 2014-04-22 Sybase, Inc. Data compression for reducing storage requirements in a database system
US8560848B2 (en) * 2009-09-02 2013-10-15 Marvell World Trade Ltd. Galois/counter mode encryption in a wireless network
JP5240151B2 (ja) * 2009-09-30 2013-07-17 富士通株式会社 画像処理装置、および画像処理制御プログラム
US8862902B2 (en) * 2011-04-29 2014-10-14 Seagate Technology Llc Cascaded data encryption dependent on attributes of physical memory
CN102364949A (zh) 2011-11-10 2012-02-29 中山大学深圳研究院 一种基于h.264_avc视频流完整性认证脆弱水印的方法
WO2013159112A1 (en) 2012-04-20 2013-10-24 The Board Of Regents Of The University Of Texas System Systems and methods for simultaneous compression and encryption
US9197607B2 (en) 2013-08-15 2015-11-24 Yahoo! Inc. Enhancing network security
JP6631989B2 (ja) * 2013-10-24 2020-01-15 鈴木 秀一 暗号化装置、制御方法、及びプログラム
US9407437B1 (en) 2014-03-25 2016-08-02 Amazon Technologies, Inc. Secure initialization vector generation
WO2016010604A2 (en) * 2014-04-28 2016-01-21 Topia Technology, Inc. Systems and methods for security hardening of data in transit and at rest via segmentation, shuffling and multi-key encryption
US10164772B2 (en) 2014-05-30 2018-12-25 Apple Inc. Permutation composition based hash function
US20150379276A1 (en) 2014-06-27 2015-12-31 Freescale Semiconductor, Inc. System on a chip, controller and method for securing data
US9397833B2 (en) 2014-08-27 2016-07-19 International Business Machines Corporation Receipt, data reduction, and storage of encrypted data
CN105808151B (zh) 2014-12-29 2019-09-27 华为技术有限公司 固态硬盘存储设备和固态硬盘存储设备的数据存取方法
US9904807B2 (en) * 2015-01-09 2018-02-27 Toshiba Memory Corporation Memory system and information processing system
US10540504B2 (en) 2015-05-12 2020-01-21 Datrium, Inc. Distributed data method for encrypting data
US10514986B2 (en) 2015-09-30 2019-12-24 Commvault Systems, Inc. Dynamic triggering of block-level backups based on block change thresholds and corresponding file identities in a data storage management system
US20180034787A1 (en) 2016-08-01 2018-02-01 Vormetric, Inc. Data encryption key sharing for a storage system
KR102563888B1 (ko) * 2016-09-30 2023-08-09 한국전기연구원 네트워크 환경에서 데이터 프레임 중복 제거 방법, 그 방법을 수행하는 장치 및 컴퓨터 프로그램
CN108184118A (zh) * 2016-12-08 2018-06-19 中兴通讯股份有限公司 云桌面内容编码与解码方法及装置、系统
US20180191492A1 (en) 2017-01-04 2018-07-05 International Business Machines Corporation Decryption-Side Initialization Vector Discovery
US10387661B2 (en) 2017-01-09 2019-08-20 Pure Storage, Inc. Data reduction with end-to-end security
US10304155B2 (en) * 2017-02-24 2019-05-28 Advanced Micro Devices, Inc. Delta color compression application to video
US10509733B2 (en) * 2017-03-24 2019-12-17 Red Hat, Inc. Kernel same-page merging for encrypted memory
US10944568B2 (en) * 2017-10-06 2021-03-09 The Boeing Company Methods for constructing secure hash functions from bit-mixers
CA3082614A1 (en) 2017-11-14 2019-05-23 Pii Guard Aps A computer-implemented method of performing format-preserving encryption of a data object of variable size
JP6988394B2 (ja) * 2017-11-15 2022-01-05 住友電気工業株式会社 映像伝送システム、映像送信装置、映像受信装置、映像送信方法、映像受信方法およびコンピュータプログラム
US10505715B2 (en) 2017-11-17 2019-12-10 Marpex, Inc. Method and system of synchronous encryption to render computer files and messages impervious to pattern recognition and brute force attacks
US10666435B2 (en) * 2018-01-09 2020-05-26 Vmware, Inc. Multi-tenant encryption on distributed storage having deduplication and compression capability
US10958416B2 (en) * 2018-11-26 2021-03-23 International Business Machines Corporation Encrypted and compressed data transmission with padding
WO2020148746A1 (en) 2019-01-20 2020-07-23 Arilou Information Security Technologies Ltd. System and method for data compression based on data position in frames structure
JP7499775B2 (ja) 2019-02-06 2024-06-14 ヒタチ・エナジー・リミテッド 資源が限られているシステムにおいてメッセージを認証するための方法
US11588829B2 (en) * 2020-05-07 2023-02-21 Mcafee, Llc Methods and apparatus for network detection of malicious data streams inside binary files
US11301344B2 (en) * 2020-06-16 2022-04-12 Intel Corporation Aggregate GHASH-based message authentication code (MAC) over multiple cachelines with incremental updates
JP7225175B2 (ja) * 2020-09-17 2023-02-20 株式会社日立製作所 ストレージ装置及びデータ処理方法
US11582025B2 (en) * 2020-09-29 2023-02-14 Amazon Technologies, Inc. Efficient deduplication using block-based convergent encryption
US11329803B2 (en) * 2020-09-29 2022-05-10 Amazon Technologies, Inc. Redundancy controls in convergent encryption using dynamic salt values
US11507292B2 (en) * 2020-10-15 2022-11-22 Dell Products L.P. System and method to utilize a composite block of data during compression of data blocks of fixed size

Also Published As

Publication number Publication date
US11917072B2 (en) 2024-02-27
GB202116629D0 (en) 2022-01-05
DE102021130812A1 (de) 2022-06-09
CN114595466A (zh) 2022-06-07
GB2601906B (en) 2023-01-25
GB2601906A (en) 2022-06-15
US20220182242A1 (en) 2022-06-09

Similar Documents

Publication Publication Date Title
US11991273B2 (en) Storage device key management for encrypted host data
JP2022089190A (ja) エンドツーエンド・データ完全性保護のためのコンピュータ実装方法およびコンピュータ・プログラム製品(暗号化データの日和見認証の実装)
US11930099B2 (en) Implementing resilient deterministic encryption
TWI773960B (zh) 用於以加密金鑰指令計算數位簽章驗證標記之電腦程式產品、電腦系統及電腦實施方法
US10601580B2 (en) Secure order preserving string compression
US11601257B2 (en) Creating deterministic ciphertext using wide-block encryption
US11856090B2 (en) Data protection optimization
US11295028B2 (en) Multi-key encrypted data deduplication
JP2022523770A (ja) セキュア・インタフェース・コントロールのためのセキュア実行ゲスト所有者コントロール
JP2022522627A (ja) セキュアなオペレーティング・システム・イメージのインクリメンタル復号および完全性検証
TWI811514B (zh) 用於計算數位簽章認證標記指令之電腦程式產品、電腦系統及電腦實施方法
US11836267B2 (en) Opaque encryption for data deduplication
CN115150117A (zh) 在分散策略中维持机密性
US10972455B2 (en) Secure authentication in TLS sessions
US20200004969A1 (en) Secure operations on encrypted data
JP2024507647A (ja) ロックされたフィンガープリントを使用する複数鍵の安全な重複排除
US11803648B2 (en) Key in lockbox encrypted data deduplication
US10680801B2 (en) Data distribution against credential information leak
US11177945B1 (en) Controlling access to encrypted data
JP7511630B2 (ja) データ重複排除のための不透明な暗号化
WO2023160521A1 (en) Protecting api keys for accessing services
JP2024510893A (ja) 複数の暗号システムを用いたハイブリッドセキュリティ証明書の生成
JP2024510881A (ja) マルチクラウド環境における量子鍵配送

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220518