(57)【特許請求の範囲】
【請求項１】
信頼できないコンピュータ資源（以下「信頼を発行されるアプライアンス」と称する）と信頼できるコンピュータ資源（以下「信頼を発行するアプライアンス」と称する）とを含む安全未確保のコンピュータ環境で信頼されたプロトコルを生成する方法において、
（Ａ）信頼を発行されるアプライアンスは信頼できると決定するよう要求するリクエストを受領すると、下記の基準（ｉ）と（ｉｉ）の内の少なくとも一方が満たされた時には、信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するステップと、
基準（ｉ）：前記信頼を発行するアプライアンスは、前記信頼を発行されるアプライアンスを設定する又は活性化することに直接関与していたこと、
基準（ｉｉ）：前記信頼を発行するアプライアンスが、信頼を同定するデータベース又は前記信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するのを許可した情報を同定するデータベースの少なくとも１つのデータベースにアクセスしたこと、
（Ｂ１）前記信頼を発行するアプライアンスが、準同型公開キーで暗号化されたマスターキーを、前記信頼を発行されるアプライアンスに送るステップと、
（Ｂ２）前記信頼を発行されるアプライアンスが、前記準同型公開キーの準同型特性を用いて、ユーザにより入力されたマスターキーの値を知ることなく、ランダム数値を用いてマスターキーをブラインド化し前記準同型公開キーでさらに暗号化し、前記信頼を発行するアプライアンスに戻すステップと、
（Ｃ１）前記信頼を発行するアプライアンスは、ＰＶＫＭサーバに対し、前記準同型公開キーを解除し、前記信頼を発行するアプライアンスとＰＶＫＭサーバとは前記ブラインド化されたマスターキーを知ること無く、前記準同型公開キーとは異なる新たな準同型公開キーを適用するよう依頼するステップと、
（Ｃ２）前記新たな準同型公開キーで、ブラインド化されたマスターキーを暗号化し、信頼を発行されるアプライアンスに転送するステップと、
を有し、
その結果前記信頼を発行されるアプライアンスは、前記信頼を発行するアプライアンスとは異なる準同型公開キーで暗号化される
ことを特徴とする安全未確保のコンピュータ環境で信頼されたプロトコルを生成する方法。
【請求項２】
前記信頼を発行するアプライアンスは、前記マスターキーの平文を公開キーで最初に暗号化するアプライアンスと、前記信頼を発行するアプライアンスが信頼できなかった時の信頼を発行する別のアプライアンスとからなるグループから選択された少なくとも１つのアプライアンスから、前記マスターキーを公開キーで暗号化した状態で最初に受領する
ことを特徴とする請求項１に記載の方法。
【請求項３】
信頼できないコンピュータ資源（以下「信頼を発行されるアプライアンス」と称する）と信頼できるコンピュータ資源（以下「信頼を発行するアプライアンス」と称する）とを含む安全未確保のコンピュータ環境で信頼されたプロトコルを生成するシステムにおいて、
前記システムは、
（Ｘ）以下の（ｉ）〜（ｉｉｉ）を含むアプライアンスとＰＶＫＭサーバーと、
（ｉ）計算操作を実行するＣＰＵ、
（ｉｉ）データを記憶するメモリ・モジュール、
（ｉｉｉ）ネットワークを介して通信するネットワーク接続装置、
（Ｙ）前記アプライアンス又はＰＶＫＭサーバー上にある信頼を発行する認証モジュールと、
を有し、
前記認証モジュールは、以下のステップ（Ａ）−（Ｃ２）
（Ａ）信頼を発行されるアプライアンスは信頼できると決定するよう要求するリクエストを受領すると、下記の基準（ｉ）と（ｉｉ）の内の少なくとも一方が満たされた時には、信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するステップと、
基準（ｉ）：前記信頼を発行するアプライアンスは、前記信頼を発行されるアプライアンスを設定する又は活性化することに直接関与していたこと、
基準（ｉｉ）：前記信頼を発行するアプライアンスが、信頼を同定するデータベース又は前記信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するのを許可した情報を同定するデータベースの少なくとも１つのデータベースにアクセスしたこと、
（Ｂ１）前記信頼を発行するアプライアンスが、準同型公開キーで暗号化されたマスターキーを、前記信頼を発行されるアプライアンスに送るステップと、
（Ｂ２）前記信頼を発行されるアプライアンスが、前記準同型公開キーの準同型特性を用いて、ユーザにより入力されたマスターキーの値を知ることなく、ランダム数値を用いてマスターキーをブラインド化し前記準同型公開キーでさらに暗号化し、前記信頼を発行するアプライアンスに戻すステップと、
（Ｃ１）前記信頼を発行するアプライアンスは、ＰＶＫＭサーバに対し、前記準同型公開キーを解除し、前記信頼を発行するアプライアンスとＰＶＫＭサーバとは前記ブラインド化されたマスターキーを知ること無く、前記準同型公開キーとは異なる新たな準同型公開キーを適用するよう依頼するステップと、
（Ｃ２）前記新たな準同型公開キーで、ブラインド化されたマスターキーを暗号化し、信頼を発行されるアプライアンスに転送するステップと、
を有し、
その結果前記信頼を発行されるアプライアンスは、前記信頼を発行するアプライアンスとは異なる準同型公開キーで暗号化される
ことを特徴とする安全未確保のコンピュータ環境で信頼されたプロトコルを生成するシステム。
【請求項４】
前記信頼を発行するアプライアンスは、前記マスターキーの平文を公開キーで最初に暗号化するアプライアンスと、前記信頼を発行するアプライアンスが信頼できなかった時の信頼を発行する別のアプライアンスとからなるグループから選択された少なくとも１つのアプライアンスから、前記マスターキーを公開キーで暗号化した状態で最初に受領する
ことを特徴とする請求項３に記載のシステム。
【請求項５】
信頼できないコンピュータ資源（以下「信頼を発行されるアプライアンス」と称する）と信頼できるコンピュータ資源（以下「信頼を発行するアプライアンス」と称する）とを含む安全未確保のコンピュータ環境で信頼されたプロトコルを生成するコンピュータで読み取り可能なコードを記憶する非揮発性の記憶媒体において、
前記コードは、前記信頼を発行されるアプライアンスは、前記信頼を発行するアプライアンスとは異なる準同型公開キーで暗号化されるよう、以下のステップ（Ａ）−（Ｃ２）
（Ａ）信頼を発行されるアプライアンスは信頼できると決定するよう要求するリクエストを受領すると、下記の基準（ｉ）と（ｉｉ）の内の少なくとも一方が満たされた時には、信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するステップと、
基準（ｉ）：前記信頼を発行するアプライアンスは、前記信頼を発行されるアプライアンスを設定する又は活性化することに直接関与していたこと、
基準（ｉｉ）：前記信頼を発行するアプライアンスが、信頼を同定するデータベース又は前記信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するのを許可した情報を同定するデータベースの少なくとも１つのデータベースにアクセスしたこと、
（Ｂ１）前記信頼を発行するアプライアンスが、準同型公開キーで暗号化されたマスターキーを、前記信頼を発行されるアプライアンスに送るステップと、
（Ｂ２）前記信頼を発行されるアプライアンスが、前記準同型公開キーの準同型特性を用いて、ユーザにより入力されたマスターキーの値を知ることなく、ランダム数値を用いてマスターキーをブラインド化し前記準同型公開キーでさらに暗号化し、前記信頼を発行するアプライアンスに戻すステップと、
（Ｃ１）前記信頼を発行するアプライアンスは、ＰＶＫＭサーバに対し、前記準同型公開キーを解除し、前記信頼を発行するアプライアンスとＰＶＫＭサーバとは前記ブラインド化されたマスターキーを知ること無く、前記準同型公開キーとは異なる新たな準同型公開キーを適用するよう依頼するステップと、
（Ｃ２）前記新たな準同型公開キーで、ブラインド化されたマスターキーを暗号化し、信頼を発行されるアプライアンスに転送するステップと
を前記アプライアンスに実行を指示するプログラム・コードを含む
ことを特徴とするコンピュータで読み取り可能なコードを記憶する非揮発性の記憶媒体。
【請求項６】
（Ｃ３）前記信頼を発行するアプライアンスに、前記マスターキーの平文を公開キーで最初に暗号化するアプライアンスと、前記信頼を発行するアプライアンスが信頼できなかった時の信頼を発行する別のアプライアンスとからなるグループから選択された少なくとも１つのアプライアンスから、前記公開キーで暗号化したマスターキーを最初に送信するステップを前記アプライアンスに実行を指示するプログラム・コード
を更に含むことを特徴とする請求項５に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想化とクラウド・コンピューティングの安全確保と管理に適用される、 安全未確保のコンピュータ環境で暗号化キーを確保する方法と装置に関する。
【背景技術】
【０００２】
コンピュータ・ネットワーク（ウエヴ、及びクラウド・コンピューティング）の現在の傾向は、公開された、グループの、共有された、そして仮想化された資源に基づいている。ＩＴ（情報技術）のマーケットは、仮想化とクラウド・コンピューティングに対し、公開方式のソリューション、秘密方式のソリューション、更に混合方式のソリューションを提供している。この傾向は、多くのレベルで即ちインフラで、プラットホームで又はソフトウエアで起きている。
【０００３】
このような解決方法に立ちはだかる問題点は、ネットワークに接続された、仮想化された、クラウドのソリューションは、それ自身安全未確保であり分散型である点である。リソース即ち資源は、ユーザではなく様々なエンティティにより物理的に保有され、複数のユーザ（既存の安全確保、プライバシー、信頼関係を有する）間で共有されている。このことは、一法人あるいは様々なエンティティ内で起きている。
【先行技術文献】
【特許文献】
【０００４】
例えばファイルはネットワーク内の「ストレイジクラウド（storage cloud）」内に記憶されている。このストレイジクラウドは、共有資源であるので、ユーザは、自分のデータを、多くの他のユーザが日常的にアクセスする資源を信頼しそこに預けなければならない。これ等はユーザは、コントロールすることはできない。
【０００５】
ネットワーク、クラウド、仮想化のソリューションのベンダーは、様々なメカニズム（例、認証、批准、仮想プライド・ネットワーク）を提供して、この種の問題を改善しようとしている。この種のアプローチは大幅に改善しているが完全ではない。このメカニズムは、様々な重要な問題（例えば安全な暗号化、計算中の使用されているデータの保護、ネットワーク上の送信時の保護、安全確保したハンドリングのためのシングルポイント、暗号化キーの管理、ユーザに対しプロバイダを信頼するよう要求すること、ユーザに対しプロバイダとその構造又はそのスタッフを信頼するよう要求すること等である。）を、解決することはできない。
【０００６】
安全確保を要求する消費者に対する一つのソリューション／オプションは、資源を共有しないことである。このようなオプションはユーザにとって好ましいものではない。その理由は、現在の共有資源は多くの経済的操作上、技術上のメリットを提供しているからである。
【０００７】
仮想化とクラウド・コンピューティングの安全確保と管理に適用される、 安全未確保のコンピュータ環境で暗号化キーを確保する方法と装置を提供することが好ましい。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、仮想化とクラウド・コンピューティングの安全確保と管理に適用される、 安全未確保のコンピュータ環境で暗号化キーを確保する方法と装置を提供することである。
【０００９】
説明を明確にするために本明細書で使用される用語について以下定義する。
用語「仮想化（virtualization）」は、基礎となっているハードウエアの資源から分離された環境でソフトウエアを実行する手段を意味する。このハードウエア資源は、ハードウエア仮想化、ソフトウエア仮想化、メモリ仮想化、データベース仮想化、データ仮想化、ストレージ仮想化、アプリケーション仮想化、デスクトップ仮想化、ネットワーク仮想化を含む。
【００１０】
用語「コンピュータ資源」は、データストレージ、書換え可能メモリ、永久メモリ、コンピューティング、計算能力、ネットワーク能力、アルゴリズム機能、ソフトウエア機能、ソフトウエアベースのオブジェクト、サービスプロバイダにより提供されるハードウエア又はソフトウエアにより使用されるソフトウエアベースのオブジェクトを提供するコンピュータサービスを意味する。
【００１１】
用語「アプライアンス」は、ソフトウエア又はハードウエアを意味する。これは、物理的に分離したサーバ上で実現される、ネットワークシステムのサーバ上のエージェント、仮想サーバ、追加的ソフトウエアを含む仮想サーバ上のエージェント、システムに利用可能な適宜のコンピュータ資源を用いた、資源の暗号化又は脱暗号化に対するアクリプトグラフィックアプライアンスとしてのサービスを意味する。
【００１２】
用語「カスタマー・アプリケーション」は、顧客又は第三者により書かれたクラウドアプリケーションを意味し、安全確保したストレージのＩ／Ｏの操作を実行するためにアプライアンスを用いて、アプライアンスは、カスタマー・アプリケーションとしての同一のコンピュータ資源上にインストールされたソフトウエアエージェントである。
【００１３】
用語「保護アイテム」とは、暗号化されるべきあらゆるオブジェクトを意味する。
【００１４】
用語「準同型エージェント（homonorphic agent）」とは、ブライディングバリューの暗号化・バージョンを保持するオプショナルサーバ又はエージェントを意味し、ブライディングバリューは、「準同型・エージェント」により要求されて適応されたり又は取り除かれたりする。
【課題を解決するための手段】
【００１５】
本発明の一実施例により、安全確保に厳しい顧客は、プロバイダ又はベンダーから提供される公開の、秘密の、混成の、共有の資源を使用することができ、完全な安全性とその制御を享受できる。本発明の一実施例により、安全未確保の資源の安全を確保できる。これは、資源の機能性を損なうことなく資源の安全確保ができる。本発明の一実施例によれば、安全未確保の資源の安全を確保し、それをより安全に制御しながら発生する共有資源のモデルの出現の利点を享受できる。
【００１６】
本発明の一実施によれば、ある環境における１つのエンティティ（即ちアプライアンス）により暗号化でき、別のエンティティ（即ちアプライアンス）により脱暗号化ができ、そしてこのような暗号化と脱暗号化操作を、別々のエンティティにより行うことができる。
【００１７】
このようなアプライアンスは、保護された仮想・キー・マネージャー（ＰＶＫＭ：Protected Virtual Key Manager ）に接続されて、サービスをアプライアンスとシステムのユーザーに提供する。このサービスは、システムの暗号化キーを管理するサービスに関連するか或るいはシステムの安全性を強化する方法に関連する。この様なサービスの特徴は以下を含む。（これに限定されるわけではないが）
１．アプライアンス上のデータ又はルーチン状態が危険に晒されている場合には、顧客キー（「顧客キー」とも称する）の漏洩を防ぐ。
１．ＰＶＫＭ上の状態が危険に晒されている場合には、顧客キーの漏洩を防ぐ。
１．ＰＶＫＭが悪質コード又はバグを含むコードで置換された場合には、顧客キーの漏洩を防ぐ
１．アプライアンスが悪質コード又はバグを含むコードで置換された場合には、顧客キーの漏洩を防ぐ
１．攻撃者が別のアプライアンス上の顧客キーを確保した場合には、アプライアンス上の類似のキーの漏洩を防ぐ
１．顧客キーが、ネットワーク内あるいはシステムの資源内に入り込んだ盗聴者に漏れるのを防ぐ
【００１８】
本発明の一実施例は、公開方式、秘密方式、混成方式に適用可能で、安全確保した資源が異なる法人に帰属する場合を例に説明する。
【００１９】
本発明の一実施は、コンピュータ資源の集合体内又はコンピュータ資源の群内のコンピュータ資源の協調動作を行わせるために、信頼されたプロトコルを提供する。この実施例においては、エンティティの集合体（例えばアプライアンスの群あるいはカスタマー・アプリケーションの集合体）が、この集合体の各メンバーは安全未確保環境で信頼に値することを確認する。特にこの実施例により、集合体の新たなメンバーの安全が確保され信頼足り得るものとなる。
【００２０】
本発明の他の実施例は、暗号化キーの保管の形態で仮想化されたキー管理システムの安全性を提供する。このキーの保管システムは、暗号化キーの値を知らずに、顧客により使用されるキーを記憶し、このようなキーの値を公開に曝すリスクなしに行われる。
【００２１】
本発明の一実施例は、安全確保したアプリケーションを更新させるようなアルゴリズムを提供する。
【００２２】
信頼できないコンピュータ資源（以下「信頼を発行されるアプライアンス」と称する）と信頼できるコンピュータ資源（以下「信頼を発行するアプライアンス」と称する）とを含む安全未確保のコンピュータ環境で信頼されたプロトコルを生成する方法において、
（Ａ）信頼を発行されるアプライアンスは信頼できると決定するよう要求するクエストを受領すると、下記の基準（ｉ）と（ｉｉ）の内の少なくとも一方が満たされた時には、信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するステップと、
基準（ｉ）：前記信頼を発行するアプライアンスは、前記信頼を発行されるアプライアンスを設定する又は活性化することに直接関与していたこと、
基準（ｉｉ）：前記信頼を発行するアプライアンスが、信頼を同定するデータベース又は前記信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するのを許可した情報を同定するデータベースの少なくとも１つのデータベースにアクセスしたこと、
（Ｂ１）前記信頼を発行するアプライアンスが、準同型公開キーで暗号化されたマスターキーを、前記信頼を発行されるアプライアンスに送るステップと、
（Ｂ２）前記信頼を発行されるアプライアンスが、前記準同型公開キーの準同型特性を用いて、ユーザにより入力されたマスターキーの値を知ることなく、ランダム数値を用いてマスターキーをブラインド化し前記準同型公開キーでさらに暗号化し、前記信頼を発行するアプライアンスに戻すステップと、
（Ｃ１）前記信頼を発行するアプライアンスは、ＰＶＫＭサーバに対し、前記準同型公開キーを解除し、前記信頼を発行するアプライアンスとＰＶＫＭサーバとは前記ブラインド化されたマスターキーを知ること無く、前記準同型公開キーとは異なる新たな準同型公開キーを適用するよう依頼するステップと、
（Ｃ２）前記新たな準同型公開キーで、ブラインド化されたマスターキーを暗号化し、信頼を発行されるアプライアンスに転送するステップとを有する。その結果前記信頼を発行されるアプライアンスは、前記信頼を発行するアプライアンスとは異なる準同型公開キーで暗号化される。
【００２３】
【００２４】
【００２５】
本発明の一実施例によれば、
信頼できないコンピュータ資源（以下「信頼を発行されるアプライアンス」と称する）と信頼できるコンピュータ資源（以下「信頼を発行するアプライアンス」と称する）とを含む安全未確保のコンピュータ環境で信頼されたプロトコルを生成するシステムにおいて、
前記システムは、
（Ｘ）以下の（ｉ）〜（ｉｉｉ）を含むアプライアンスとＰＶＫＭサーバーと、
（ｉ）計算操作を実行するＣＰＵ、
（ｉｉ）データを記憶するメモリ・モジュール、
（ｉｉｉ）ネットワークを介して通信するネットワーク接続装置、
（Ｙ）前記アプライアンス上にある信頼を発行する認証モジュールと、
を有し、
前記認証モジュールは、以下のステップ（Ａ）−（Ｃ２）
（Ａ）信頼を発行されるアプライアンスは信頼できると決定するよう要求するクエストを受領すると、下記の基準（ｉ）と（ｉｉ）の内の少なくとも一方が満たされた時には、信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するステップと、
基準（ｉ）：前記信頼を発行するアプライアンスは、前記信頼を発行されるアプライアンスを設定する又は活性化することに直接関与していたこと、
基準（ｉｉ）：前記信頼を発行するアプライアンスが、信頼を同定するデータベース又は前記信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するのを許可した情報を同定するデータベースの少なくとも１つのデータベースにアクセスしたこと、
（Ｂ１）前記信頼を発行するアプライアンスが、準同型公開キーで暗号化されたマスターキーを、前記信頼を発行されるアプライアンスに送るステップと、
（Ｂ２）前記信頼を発行されるアプライアンスが、前記準同型公開キーの準同型特性を用いて、ユーザにより入力されたマスターキーの値を知ることなく、ランダム数値を用いてマスターキーをブラインド化し前記準同型公開キーでさらに暗号化し、前記信頼を発行するアプライアンスに戻すステップと、
（Ｃ１）前記信頼を発行するアプライアンスは、ＰＶＫＭサーバに対し、前記準同型公開キーを解除し、前記信頼を発行するアプライアンスとＰＶＫＭサーバとは前記ブラインド化されたマスターキーを知ること無く、前記準同型公開キーとは異なる新たな準同型公開キーを適用するよう依頼するステップと、
（Ｃ２）前記新たな準同型公開キーで、ブラインド化されたマスターキーを暗号化し、信頼を発行されるアプライアンスに転送するステップとを有する。その結果前記信頼を発行されるアプライアンスは、前記信頼を発行するアプライアンスとは異なる準同型公開キーで暗号化される。
【００２６】
【００２７】
信頼できないコンピュータ資源（以下「信頼を発行されるアプライアンス」と称する）と信頼できるコンピュータ資源（以下「信頼を発行するアプライアンス」と称する）とを含む安全未確保のコンピュータ環境で信頼されたプロトコルを生成するコンピュータで読み取り可能なコードを記憶する非揮発性の記憶媒体において、
前記コードは、以下のステップ（Ａ）−（Ｃ２）
（Ａ）信頼を発行されるアプライアンスは信頼できると決定するよう要求するクエストを受領すると、下記の基準（ｉ）と（ｉｉ）の内の少なくとも一方が満たされた時には、信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するステップと、
基準（ｉ）：前記信頼を発行するアプライアンスは、前記信頼を発行されるアプライアンスを設定する又は活性化することに直接関与していたこと、
基準（ｉｉ）：前記信頼を発行するアプライアンスが、信頼を同定するデータベース又は前記信頼を発行するアプライアンスが前記信頼を発行されるアプライアンスは信頼できると認証するのを許可した情報を同定するデータベースの少なくとも１つのデータベースにアクセスしたこと、
（Ｂ１）前記信頼を発行するアプライアンスが、準同型公開キーで暗号化されたマスターキーを、前記信頼を発行されるアプライアンスに送るステップと、
（Ｂ２）前記信頼を発行されるアプライアンスが、前記準同型公開キーの準同型特性を用いて、ユーザにより入力されたマスターキーの値を知ることなく、ランダム数値を用いてマスターキーをブラインド化し前記準同型公開キーでさらに暗号化し、前記信頼を発行するアプライアンスに戻すステップと、
（Ｃ１）前記信頼を発行するアプライアンスは、ＰＶＫＭサーバに対し、前記準同型公開キーを解除し、前記信頼を発行するアプライアンスとＰＶＫＭサーバとは前記ブラインド化されたマスターキーを知ること無く、前記準同型公開キーとは異なる新たな準同型公開キーを適用するよう依頼するステップと、
（Ｃ２）前記新たな準同型公開キーで、ブラインド化されたマスターキーを暗号化し、信頼を発行されるアプライアンスに転送するステップと、
を実行するプログラム・コードを含む。その結果前記信頼を発行されるアプライアンスは、前記信頼を発行するアプライアンスとは異なる準同型公開キーで暗号化される。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施例による、ブラインドキーを用いたスプリットキー暗号化方式を実施する主要ステップのブロック図。
【図２】本発明の一実施例による、２暗号化位置の準同型ブラインド化の暗号化方式を実施する主要ステップのブロック図。
【図３】本発明の一実施例による、３暗号化位置の準同型ブラインド化の暗号化方式を実施する主要ステップのブロック図。
【図４】本発明の一実施例による、プロトコル最適化を伴った２暗号化位置の準同型ブラインド化キーの暗号化方式を実施する主要ステップのブロック図。
【発明を実施するための形態】
【００２９】
本発明の方法と装置の一実施例を図面を参照しながら以下説明する。
【００３０】
本発明の一実施においては、安全未確保の環境で使用されるキーの安全確保する方法と装置の一例として、仮想化又はクラウドの環境下で走るシステム（ソフトウエアアプリケーション）を例に説明する。このシステムは複数のコンピュータ資源を有し、それ等はサーバとして及び記憶媒体として機能する。安全確保するシステムとして資源の一部は暗号化する必要がある。
【００３１】
暗号化された資源は、データを含むシステムのファイル、ディスク、他の資源である。（例えばサーバ・メモリ内のデータは本明細書においては資源でもある。）資源は暗号化技術で保護される。これは、対称又は非対称の暗号化である。これ等の技術は、常に暗号化と脱暗号化のキーの生成と使用を含む。この暗号化キーは後で取り出せるように記憶され、その結果システムは必要なときにはいつでも、資源を暗号化したり脱暗号化することができる。
【００３２】
指定されたサービス（即ち資源の暗号化又は脱暗号化）を提供するために、アプライアンスは、システムのサーバと資源に接続され、又ＰＶＫＭにも接続される。このＰＶＫＭは、上記の暗号化キーとシステムの安全確保に関連するサービスを提供する。このような接続は、ネットワーク通信、メモリ内通信、他の適宜のシステムに有用な通信技術を含む。かくしてこのような接続性は、通信チャネル又は通信とも称する。
【００３３】
アプライアンスの集合体（相互作用するグループ）とクラスタ（相互作用しないグループ）が、システムでも用いられ、システムの故障回復と、スケーラ・ビリティと、暗号化メカニズムを確保する。あるアプライアンスにより暗号化された資源は、別のアプライアンスにより脱暗号化されるのが有益であり、このような暗号化と脱暗号化の操作は別々のアプライアンスにより原理的に行われるのが有益である。同時にセキュリティの観点から、攻撃者があるアプライアンスを危険に曝したとしても、システム全体は危険に曝されないのが望ましい。
【００３４】
本明細書に記載した方法は、クラスタにおいて極めて有効であるが、１つのクラスタ（即ち単独のアプライアンス）においても有効である。クラスタは適用性を一般化するために、クラスタを説明して、適用の一般化とシステムの特徴を強調するが、ここで用いられている技術は、アプライアンスの１つのインスタンス内に存在するキーの保護にも有効である。
【００３５】
以下に説明する実施例と実行方法を記述する一般的な構成は  以下の「秘密」キーとキー要素がシステムの構築の説明に関連する。
【００３６】
固有キーＫｓは、特定の保護された資源を暗号化するために用いられるキーあるいはキー群であり、従来公知の暗号化技術を使用する。システムは、この複数の資源の安全確保するために、各資源は異なる固有キーＫｓを有する。本発明の一実施においては、固有キー（Ｋｓ）は、暗号化されていない平文形態でどこかに永続的に記憶しておく必要はない。
【００３７】
固有キーＫｓは複数の部分に分けられる。説明を簡便にするために、最も一般的なケースの実施例においては、Ｋｓを２つの部分マスターキーＫｍとセカンドキー・シェアとに分ける。サードキー・シェア、更にはそれ以上のキー・シェアを用いることも本発明の範囲内に入る。
【００３８】
以下の説明において演算子Θと●とがある。この演算子は、適宜の演算（例；ＸＯＲ、乗算、除算、加算、減算）を表す。この演算子は、例えば；キー・ジョイニング、キー・スプリティング、キー・ブラインディングに有効である。一般的に、これ等の演算子はこれらの演算を表すのに用いられる。簡単に説明すると、Θは同一の式内では、演算とその逆算の両方を意味する。例えば、ＸＯＲの逆はＸＯＲそのものでありこれに対し、乗算の逆は割り算（除算）である。同じことは●についてもいえる。●とΘの両方が用いられるが、これ等は１つの式の中で２つの演算を表すのに有効だからである。これ等の一般化された演算子は、準同型演算、例えば
Ｅ（Ａ）●Ｅ（Ｂ）＝Ｅ（ＡΘＢ）で用いられる。
【００３９】
マスター・キーＫｍは、固有キーの１つのキー・シェアである。本発明のシステムは、マスター・キーは、コンピュータシステム内の何処かに平文形態で記憶する必要もなく、メモリ内で平文形態で使用される必要もない。
【００４０】
上記の実施例は、追加的なキー又はキー・シェアにまで拡張可能である。一般的なフレーム・ワークにおいては、このような態様はマスターキーにのみ適用される。
【００４１】
このような態様は、以下の実施例で説明するように、マスター・キー又はキー・シェアは、演算（例えばキー・スプリティング、キー・ジョイニング又は他の関連演算）で、キーの平文（未暗号）値を知ることなく、使用できる。本発明の一実施においては、ブラインド値ｒは、キー又はキー・シェアを揮発性メモリ内に記憶しないようにするために、用いられる。他の実施例は、準同型暗号化を、Ｅとして示されたキー群を用いて、又は公開／秘密のキー対で示した（Ｅｋ，Ｄｋ）を用いて実行し、これによりキーとキー・シェアを暗号化し安全確保する。本発明の他の実施例においては、従来公知の暗号化技術を用いる。準同型暗号化の一例は、ElGamal,paillier,RSA,or Goldwasser-Micali algorithmsである。
【００４２】
本発明の一実施によれば、暗号化キー（例えばマスター・キー又はキー・シェア）の一部は、完全にコンピュータ環境外に置くことができる。その結果、それ等の暗号化キーは、コンピュータ環境内で平文形式即ち未暗号化形式で知られることはない。この実施の態様は安全確保を機能を向上させる。その理由は、重要なキーは、平文形態ではコンピュータ環境内に存在することなく使用することができるからである。
【００４３】
本発明の一実施においては、ブラインド値（blinding value）、キー又はキー・ペアは、システム内の各アプライアンス毎に異なっており、更には保護すべき対象の各資源内でも異なっている。本発明の一実施例により、キーは、コンピュータ環境内の様々な使用状態において別々に暗号化される。この態様により安全性が向上する。その理由は、暗号化形態でのキーの窃盗はこの窃盗者には役立たない。その理由は、暗号化形態のキーは、例えそれが盗まれたとしても、システムの他の部分では使用できないからである。
【００４４】
本発明により、十分には信頼できない環境内でも、信頼性の確立ができる。この実施例により、安全未確保の環境内でのキーの安全が確保される。
【００４５】
以下の説明において、ＰＶＫＭは、このような環境におけるロケーション（物理的あるいは仮想的の何れの）と見ることができ、各アプライアンス又は他のセキュリティ要素も、別のロケーションとして見ることができる。しかし、ＰＶＫＭそのものは、集合体あるいはクラスタとして実行され、ＰＶＫＭをロケーションとも称する。
【００４６】
本発明の一実施においては、スプリット・キーの暗号化アプローチは、ブライド化値ｒを用いたブラインド・キーで実現され、これにより、Ｋｍが、コンピュータ・システムのアプライアンス上、ＰＶＫＭ上あるいは何れの場所でも、未暗号化（平文）形態になるのが阻止される。
【００４７】
図１−４において、全体プロセスを、別々に又は順番に、タイムライン（上から下に時間が経過する）に従って、アプライアンスＡとＰＶＫＭ−Ｂ（図面ではＰＶＫＭ  Ｂ（ハイフンが無い）で示されている）の２つの主要な要素に対し示す。これにより、各コンポーネントで別々に（独立して）起きる並列プロセスを分離して示す。
【００４８】
アプライアンスＡは、複数のアプライアンスの一例を意味する。本発明は、このようなアプライアンスの集合体あるいはクラスタにより広く適用可能である。更にＰＶＫＭ−Ｂは概念的なエンティティ（例；サーバ）を意図するが、実際にはＰＶＫＭ−Ｂは複数のサーバ（例；故障からの回復保護のため）を意味する。このアプローチを一般化するとより多くのロケーション、より多くのタイムライン（例えば準同型・サーバＣと他の更なる要素用のタイムライン）が存在する。
【００４９】
更にこの全体プロセスは３つのサブ・プロセスに分けられる。サブ・プロセスＩでは新たなアプライアンスを生成し、サブ・プロセスＩＩでは新たに保護すべきアイテムを生成し、サブ・プロセスＩＩＩでは既に保護されたアイテムにアクセスする。
【００５０】
このブラインド・キーの実施例においては、新たなアプライアンスを創設する為（サブ・プロセスＩ）、ＰＶＫＭ−Ｂはキー・ペア（Ｅｋ，Ｄｋ）を生成（ステップ１０）し、この公開キーＥｋをアプライアンスＡに送信（ステップ１２）し、そこに記憶（ステップ１４）する。標準の暗号化技術（いわゆるサーティフィケート内に公開キーをラッピングする技術）を用いて、公開キーＥｋが本物（authenticity of the public key ）であることを保証する。ブラインド値ｒを用いて、アプライアンスＡ上のＫｍの値を暗号化し、秘密に（ブラインド化）する。このブラインド・プロセスは、ＫｍΘｒとして計算される。ここでΘは適宜の演算を意味する。ブラインド化された値ＫｍΘｒは、アプライアンスＡ上にその後記憶される（ステップ１６）。この記憶はメモリ内でのみ行われ、ディスクのストレージ又は他の永久的な記憶媒体を必要とはしない。しかしこれは他の実施例では許される場合もある。
【００５１】
本発明の実施に際し、アプライアンスＡは、Ｋｍの元の入力値をユーザが入力する演算を実行する。このような構成においては、ブラインド値ｒのコピーがＰＶＫＭ−Ｂに送られ（ステップ１８）、そこに記憶される（ステップ２０）。ブラインド値ｒはアプライアンスＡには記憶されない。ｒは、ブラインド値が計算された後は、メモリから消去され、ＰＶＫＭ−Ｂはｒのコピーを記憶する（ステップ２０）。
【００５２】
ここに記載したプロトコルで、ｒをブラインド値ＫｍΘｒで演算を実行することにより、システムは、Ｋｍ又は何れのＫｓ（これ等はＰＶＫＭ−Ｂにより知られたものである）の値を知らずに、アプライアンスＡ上で知られたＫｍの値を知らずに、キーをブラインド化操作を実行した後は、管理できる。
【００５３】
新たに保護されたアイテムが生成される（サブ・プロセスＩＩ）と、アプライアンスＡはＫｓを生成する。このＫｓは、このアイテムを暗号化し保護するために用いられる固有キーである。これは従来公知の暗号化技術を用いて行われる。
【００５４】
Ｋｓを、ＫｓのＫｍも曝すことなく、安全に記憶するために、ＰＶＫＭ−ＢのＫｍΘＫｓΘｒのキー・シェアのブラインド化が生成され（ステップ２２）、その後これがＥｋを用いて暗号化され（ステップ２４）、ＰＶＫＭ−Ｂ（ステップ２６）に送られる。ＰＶＫＭ−Ｂは、ブラインド化されていない（未ブラインド化）キー・シェアを、ｒの記憶された値を用いて計算し（ステップ２８）、このブラインド化されていないキー・シェアをＰＶＫＭ−Ｂに記憶させる（ステップ３０）。
【００５５】
選択的事項として、ハッシュ・ベースのメッセージ認証コード（ＨＭＡＣ：Hash-based Message Authentication Code）を用いて、ＰＶＫＭ−Ｂのキー・シェアの修正形態をアプライアンスＡに戻す（ステップ３２）。ＨＭＡＣの有無にかかわらず、ＰＶＫＭ−Ｂの未ブラインド化キー・シェアは、アプライアンスＡに記憶することもできる（ステップ３３）。これは、ＰＶＫＭ−Ｂに記憶する代わりに又はそれに加えて（ステップ３０）行われる。この実施例において、ＨＭＡＣを使用することを以下説明する。
【００５６】
演算子Θは、本明細書において使用される可能性のある演算の一例である。
【００５７】
保護されたアイテムが再びアクセスされると（サブ・プロセスＩＩＩ）、ＰＶＫＭキー・シェアが取り出される。これはアプライアンス上で選択的事項として行われ（ステップ３４）、ＰＶＫＭキー・シェアは、ＰＶＫＭ−Ｂに（ＨＭＡＣを用いて）送られる（ステップ３６）。あるいはＰＶＫＭ上で局部的に取り出してもよい。その後ＰＶＫＭ−Ｂは、暗号化されたキー・シェアを脱暗号化する（ステップ３８）。ＰＶＫＭ−Ｂは、ブラインド化された脱暗号化されたキー・シェアをアプライアンスＡに送る（ステップ４０）。そこで脱暗号化されたキー・シェアが、アプライアンスのブラインド化されたキー・シェアＫｍΘｒと結合されて、ストレージ・キーＫｓを回復する（ステップ４２）。
【００５８】
ブラインド値を加えることにより、Ｋｍはアプライアンス上に又はＰＶＫＭ上に記憶されることはない。かくして、アプライアンスを破壊しても、攻撃者はＫｍを回復／再生できない。同じく、ＰＶＫＭの破壊も攻撃者に対しＫｍを再生させることはない。
本発明の一実施においては、準同型・ブラインディングは、準同型公開キー暗号化スキームを用いて、２つの場所で実行され、マスター・キーＫｍのブラインド化を達成する。
【００５９】
図２は、本発明の一実施例による、２（暗号化）位置の準同型ブラインド化の暗号化方式を実施する主要ステップのブロック図である。
【００６０】
この２位置の準同型・ブラインド化の実施例においては、新たなアプライアンスを創設する（サブ・プロセスＩ）ために、ＰＶＫＭ−Ｂはキー・ペア（Ｅｋ，Ｄｋ）を生成し（ステップ５０）、ＥｋをアプライアンスＡに送信し（ステップ５２）、そこに記憶する（ステップ５４）。このキー・ペアは、部分的な準同型又は完全な準同型の暗号化スキームである。アプライアンスＡは、キーを受領すると、マスター・キーＫｍ暗号化し（ステップ５６）、又は既に暗号化されたマスター・キーを受領する。しかし未暗号化キーをＰＶＫＭ−Ｂに送ることはない。
【００６１】
新たな保護アイテムが生成されると（サブ・プロセスＩＩ）、アプライアンスＡはＫｓを生成する。このＫｓは、アイテムを暗号化し保護するのに用いられる固有のキーである。この暗号化は、従来公知の暗号化技術を用いて行われる。
【００６２】
Ｋｓを安全に記憶する為にそしてＫｓのＫｍも露出しないために、ＰＶＫＭ−Ｂの暗号化されたキー・シェアＥｋ（ＫｍΘＫｓ）が生成される（ステップ６０）。暗号化されたキー・シェアは、その後ＰＶＫＭ−Ｂに送られ（ステップ６２）、そこに記憶される（ステップ６４）。ＰＶＫＭ−Ｂの暗号化されたキー・シェアは、アプライアンスＡに記憶され（ステップ６５）、これはＰＶＫＭ−Ｂに記憶する代わりに又はそれに加えて行って（ステップ６４）もよい。
【００６３】
この実施例において、アプライアンスに対し、脱暗号化することなく暗号化テキストを乗算する準同型・プロパティを用いてもよい。これによりＥｋ（ＫｓΘＫｍ）が、ＫｓとＥｋ（Ｋｍ）から、Ｋｍを知ることなく、計算できる。
Ｅｋ（Ｋｓ）●Ｅｋ（Ｋｍ）＝Ｅｋ（ＫｓΘＫｍ）
これはステップ６０に示されている。
【００６４】
保護されたアイテムが再びアクセスされると（サブ・プロセスＩＩＩ）、アプライアンスＡは、まず暗号化されたキー・シェアＥｋ（ＫｓΘＫｍ）を取り出す。アプライアンスＡは、ＰＶＫＭ−Ｂに対しこのキーを脱暗号化するよう要求する必要がある。その理由はアプライアンスＡはＤｋを持っていないからである。ＰＶＫＭ−Ｂは固有キーＫｓの値とマスター・キーＫｍの値を決定することはできない。ＰＶＫＭ−Ｂがこれ等のキーを直接得るのを阻止するために、固有キーは、既にアプライアンスＡに知られている新たなランダムな値ｒでブラインド化（ステップ６６）される。これは、脱暗号化（ステップ７０）の為に、キーがＰＶＫＭ−Ｂに送られる（ステップ６８）毎に行われる。
【００６５】
準同型・プロパティを用いて、アプライアンスＡが、Ｅｋ（Ｋｓ）にブライド化ステップを加えるが、これは、Ｋｓ又はＫｍに知らずに行う。
Ｅｋ（ＫｓΘＫｍ）●Ｅｋ（Ｋｍ）●Ｅｋ（ｒ）＝Ｅｋ（ＫｓΘｒ）
その後ＰＶＫＭ−Ｂは、ブラインド化された脱暗号化されたキー・シェアをアプライアンスＡに送る（ステップ７２）、そこで脱暗号化されたキー・シェアが、アプライアンスＡのキー・シェアと、Ｋｍと、ブラインド化された値と組み合わされて、ストレージ・キーＫｓを回復する（ステップ７４）。
【００６６】
数学的に、同一の２位置準同型・ブラインド化プロセスを以下説明する。暗号化キーＳと重要な資源を保護する例を考える。
Ｓ=[ｂ１，ｂ２，ｂ３−−−ｂｘ]
各ｂｘはデータのビットまたはバイトである。一部のｂｘ又は全てのｂｘが権限のないエンティティに知られたものとなると、このキーは（全体又は一部が）露出されたものとなり、その結果重要な資源も露出されることになる。Ｓは、ｂ要素のストリングをｂｘまで暗号化することにより、保護される。Ｓは、１回又はｎ回暗号化されるが、これは複数の異なる暗号化方法ε＝｛Ｅ１．．．Ｅｎ｝と適宜の暗号化キーＰ＝｛Ｐ１．．．Ｐｎ｝を用いて行われる。そしてこれは次のように定義される。
Ｃ＝ε（Ｓ，Ｐ）＝Ｅ１（Ｅ２（．．．Ｅｎ（Ｓ，Ｐｎ），．．．．Ｐ２），Ｐ１）
【００６７】
上記の説明において、Ｐ（Ｐ１からＰｎの順番の組である）は暗号化キーのセットであり、ＣはＳの暗号化形態（即ちＳの暗号）である。各Ｐｘは従来公知（例えば、対称暗号化、公開−秘密スキーム又はキー・シェア・スキーム）である。各Ｐｘは、対称キーの分野で公知のキーで（対称キー、公開−秘密キー対あるいはキー・シェア・スキームのキー）ある。Ｃは適宜の脱暗号化δ（）で脱暗号化される。例えば、
Ｓ＝δ（Ｃ，Ｐ）＝Ｄｎ（．．．Ｄ２（Ｄ１（Ｃ，Ｐ１），Ｐ２），．．．Ｐｎ）；Ｓ＝δ（ε（Ｓ，Ｐ））
【００６８】
このアプローチにおいて、ＤｘはＥｘの逆数であり、δはεの逆数である。Ｓは、暗号化キー・セットＰが安全で、暗号文ＣがＳが使用される時間と場所の近傍で脱暗号化される場合には安全であると見做される。言い換えると、演算δ（）  は、Ｓが実際に必要なときにのみ適用される、Ｓは必要とされない場合には廃棄される。
【００６９】
暗号化方法Ｅｋ（ｋは１−ｎの整数）の１つを考えてみる。Ｅｋは上記に定義されたアプライアンス上で具体化される。アプライアンスのクラスタが、Ｅｋがクラスタ内のどのアプライアンスでも実現されるよう、要求すると仮定する。暗号化方法の故障回復又は拡張可能性を達成するために、Ｅｋは、クラスタ内の全てのアプライアンスで実現されなければならない。
【００７０】
別の暗号化方法Ｅｊ（ｊはｋと異なり１−ｎの整数）を考えてみる。この暗号化方法Ｅｊは、ＰＶＫＭ上で具体化される。Ｅｊの実施例与える為に、アプライアンスとの通信を安全に確保する以外に、ＰＶＫＭの正確な場所や特徴に関して何も仮定しにあ。例えばＰＶＫＭは、サーバ又はサーバのクラスタのようなコンピュータ資源上で実現される。
【００７１】
Ｃに対する前の式は次のようになる。（ｊ＜ｋ）
Ｃ＝ｅ（Ｓ，Ｐ）＝Ｅ１（Ｅ２（．．．Ｅｊ（．．．Ｅｋ（Ｅｎ（Ｓ，Ｐｎ），．．．．Ｐｋ），．．．Ｐｊ），．．．，Ｐ２），Ｐ１）
Ｓ＝ｄ（Ｃ，Ｐ）＝Ｄｎ（．．．Ｄｋ（．．．Ｄｊ（．．．Ｄ２（Ｄ１（ｃ、Ｐ１），Ｐ２），．．．，Ｐｊ），．．．，Ｐｋ），．．．，Ｐｎ）
Ｓ＝ｄ（ｅ（Ｓ，Ｐ））
ｊがｋよりも大きい場合には、ＥｊとＥｋの順番は逆転し、全てのＤｎとＰｎの順番も逆転する。ｊとｋ以外の方法を無視すると、以下の議論で関連する方法は、次のように定義することができる。
Ｃ＝ｅ（Ｓ，Ｐ）＝Ｅｊ（Ｅｋ（Ｓ，Ｐｋ），Ｐｊ）
Ｓ＝ｄ（Ｃ，Ｐ）＝Ｄｋ（Ｄｊ（Ｃ，Ｐｊ），Ｐｋ）、Ｃ＝ｄ（ｅ（Ｓ，Ｐ））
ここで除かれた方法が示される。
【００７２】
Ｓを重要な資源を保護する暗号化キーとして導入した。本発明では、このＳそのものを保護しようとしている。Ｓは、平文状態ではアプライアンスのメモリ内でのみ、及びＳが重要な資源の暗号化又は脱暗号化で使用されている時のみ入手可能である。Ｓはアプライアンスのメモリ外では入手は不可能である。例えばＳは、永久メモリ例えばディスク内には記録されず、ＰＶＫＭ上でも入手不可能である。
【００７３】
ＰＫＩ（Public-Key Infrustructure公開キー方式）の技術は、暗号化アルゴリズムＥｐｋｉと脱暗号化アルゴリズムＤｐｋｉを有する。ＰＫＩのキーの対は、公開キー（ｅ，ｍ）と秘密キー（ｄ，ｍ）がＰＫＩに一般的に使用される。秘密キー（ｄ，ｍ）はＰＶＫＭ  上でのみ見出され、脱暗号化アルゴリズムＤｐｋｉ（ｙ）＝Ｄｐｋｉ（ｄ，ｍ）で使用される。公開キー（ｅ，ｍ）はＰＶＫＭとアプライアンスの両方で見出され、暗号化アルゴリズムＥｐｋｉ（ｘ）＝Ｅｐｋｉ（ｘ（ｅ，ｍ））で使用される。
【００７４】
このＰＫＩ技術は、部分的に準同型または完全に準同型の環境（ElGamal,paillier,RSA,and Goldwasser-Micali）で基本的に使用されるＰＫＩ技術でもよい。ｅ，ｄ，ｍの実際の意味は、選択され使用された技術に依存する。例えばＲＳＡ方式においてはｍはmodulusで、ｅは暗号化の際の累乗回数で、ｄは脱暗号化際の累乗回数である。（ｅ，ｍ）は公開キーを含み（ｄ，ｍ）は秘密キーを含む。
【００７５】
便宜上マスター・キーＭはＫｍと本明細書では同意である。ＰＫＩで暗号化されたマスター・キーはμ＝Ｅｐｋｉ（Ｍ）であり、以下の実施例に関連する特定のアプライアンス上でのみ得られる。Ｍはシステムの如何なる場所でも得ることができず、μのみが上記した特定のアプライアンス上でのみ得られる。
【００７６】
一般化した乗算の演算子を‘●’で定義する。演算子の実際の選択は、使用されるＰＫＩ技術に依存する。この実施例で選択された演算子‘●’は、部分的準同型の演算で選択されたＰＫＩ技術に適したものである。例えばＲＳＡにおいては演算子は乗算であり、Goldwasser-Micaliでは演算子はＸＯＲ論理回路である。部分的準同型の特性は次のことを意味する。
Ｅｐｋｉ（ｘ１）●Ｅｐｋｉ（ｘ２）＝Ｅｐｋｉ（ｘ１●ｘ２）
Ｄｐｋｉ（ｙ１●ｙ２）＝Ｄｐｋｉ（ｙ１）●Ｄｐｋｉ（ｙ２）
＊の逆は割り算で‘／’で表され、選択されたｐｋｉ技術に対して存在すると仮定する。このような定義を用いて、暗号化技術ＥｊとＥｋと脱暗号化技術ＤｋとＤｊは、以下のように記述することができる。
【００７７】
資源（ディスク上に記憶されたファイル）をＳに依存する暗号化技術で暗号化するためには以下のステップを実行する。
１．アプライアンス上で暗号化キーＳを得る又は生成する（ランダムに）。
２．アプライアンス上でＳを用いて資源を暗号化する。
３．Ｓをそれ自身の値を曝すことなく記憶する必要がある。ＰＶＫＭと他のアプライアンス上の何れでも（システム内のエンティティ）はＳを得ることはない。その為
ａ．アプライアンス上でσ＝Ｅｐｋｉ（Ｓ）を計算する。
ｂ．アプライアンス上でκ＝σ●μ＝Ｅｐｋｉ（Ｓ）●Ｅｐｋｉ（Ｍ）を計算する。
ｃ．κをＰＶＫＭに送る（これはＳ又はＭを、ＰＶＫＭに曝すことにはならない）。
ｄ．ＰＶＫＭ上でのみＤｐｋｉ（κ）を計算する。（秘密キー（ｄ，ｍ）はＰＶＫＭ上でのみ得られる）これはスルー・準同型は以下を示唆する。
Ｄｐｋｉ（κ）＝Ｄｐｋｉ（Ｅｐｋｉ（Ｓ）●Ｅｐｋｉ（Ｍ））＝Ｄｐｋｉ（Ｅｐｋｉ（Ｓ●Ｍ））＝Ｓ●Ｍ
ＰＶＫＭは適宜の技術で、値（Ｓ●Ｍ）を安全に確保する。（例えは、データ・ベース内の記憶装置）
４．Ｓを廃棄し、その結果、Ｓは、アプライアンス上ではもはや得ることができず更にはアプライアンスのメモリ内でも得ることはできない。（選択的事項としてこの値は将来    一時記憶することもできるが、これは性能と利便性を引き換えに、安全性を犠牲にしたものである。
【００７８】
アプライアンス上で起きる上記のステップはＥｋを記述し、ＰＶＫＭ上で起きる上記のステップはＥｊを記述する。Ｓが得られない場合、上記の暗号化した資源を脱暗号化するために以下のステップが行われる。
【００７９】
１．ＰＶＫＭ上でＳ●Ｍを取り出す。
２．ＰＶＫＭ上でκ＝Ｅｐｋｉ（Ｓ●Ｍ）を計算する。
３．κをアプライアンスに送る
４．準同型とＥｐｋｉ（Ｍ）を利用して介して、アプライアンス上のκ／μを計算する。κ／μ＝Ｅｐｋｉ（Ｓ●Ｍ）／Ｅｐｋｉ（Ｍ）＝Ｅｐｋｉ（Ｓ）＝σ
５．公知の適宜のブラインド技術を用いて、σblindedをσから生成する。この様な技術は乱数ｒとＥｋ（ｒ）による乗算による（これは図２に記載している）。
６．σblindedをアプライアンスからＰＶＫＭに送る。
７．ＰＶＫＭ上でＳblindedを計算する。
Ｓblinded＝Ｄｐｋｉ（σblinded）＝Ｄｐｋｉ（Ｅｐｋｉ（Ｓblinded））
８．ＰＶＫＭからＳblindedをアプライアンスに戻す（ＰＶＫＭはＳを取り出すことができるがそれはＰＶＫＭはブラインディング・ステップを実行したからである）。
９．アプライアンス上でＳを用いて所望の資源を脱暗号化する。
１０．値Ｓを廃棄し、従ってアプライアンス上ではもはや得ることができず、更にアプライアンス上のメモリ上でも得ることができない。選択的事項としてこの値は将来使用するために一時記憶することもできるが、これは性能と便利性のために安全性を犠牲にするものである。
【００８０】
アプライアンス上の上記のステップはＤｋを記述し、ＰＶＫＭ上で起きる上記のステップはＤｊを記述する。
Ｋｍは、暗号化形態でのみ記憶されているので、アプライアンスを破壊しても、攻撃者はＫｍを回復することはできない。
【００８１】
本発明の一実施においては、準同型・ブラインディングは３か所で行われる。この３暗号化箇所での準同型・ブラインディングの実施例は、ブラインドキーを用いてスプリット・キー暗号化に関連する上記のプロセスに類似する。但し、ｒが、３暗号化箇所での準同型・ブラインディングの方法では、何処にも非暗号化形態で記憶されることはない点を除いて類似する。その代りｒの暗号化版は、外部の準同型・サーバに送られる。
【００８２】
図３は、３暗号化箇所での準同型・ブラインディングの暗号化を実施する主要なステップのブロック図である。
【００８３】
この３暗号化箇所での準同型・ブラインディングの暗号化においては、新たなアプライアンスを生成する為（サブ・プロセスＩ）、ＰＶＫＭ−Ｂは（Ｅｋ，Ｄｋ）キーの対を生成し（ステップ８０）、ＥｋをアプライアンスＡに送り（ステップ８２）、そしてそこに記憶する（ステップ８４）。アプライアンスＡは、ブラインド化されたＫｍを記憶する（ステップ８６）。
【００８４】
上記の実施例において、ブラインド化操作は、ユーザが入力したランダムな値ｒとＫｍの元の入力値を用いて行われる。このような構成においては、ｒの暗号化版が計算され（ステップ８８）、その後準同型・サーバＣに送られ（ステップ９０）、そこに記憶される（ステップ９２）。ｒもその暗号化版も、アプライアンス又はＰＶＫＭには記憶されない。
【００８５】
新たな保護されたアイテムが生成されると（サブ・プロセスＩＩ）、アプライアンスＡはＫｓを従来公知の暗号化技術を用いて生成する。Ｋｓは、そのアイテムを暗号化し保護するのに用いられる固有のキーである。
【００８６】
Ｋｓを安全に記憶し且つＫｓもＫｍも露出しないようにするために、ブラインド・キーＫｍΘＫｓのＰＶＫＭ−Ｂの暗号化されたキー・シェアを生成する（ステップ１０４）。これはＥκ（ＫｓΘＫｍΘＫｒ）の計算を行い、その後準同型・サーバＣに送信する（ステップ９８）。Ｃはｒの記憶された暗号化形態を用いて、ブラインド化されていないキー・シェアを計算する（ステップ１００）。その後暗号化されたブラインド化されていないキーをＰＶＫＭ−Ｂに送信し（ステップ１０２）、そこに記憶する（ステップ１０４）。
【００８７】
選択的事項として、ＨＭＡＣを用いてステップ１００で計算されたキー・シェアの修正形態をアプライアンスＡに戻す（ステップ１０６）。ＨＭＡＣの使用の有無に関わらず、ＰＶＫＭ−Ｂの暗号化されていないキー・シェアは、アプライアンス上に記憶される（ステップ１０７）。これはＰＶＫＭ−Ｂに記憶する代わりに又はそれに加えて行われる（ステップ１０４）。
【００８８】
保護されたアイテムが再びアクセスされると（サブ・プロセスＩＩＩ）、記憶された暗号化キー・シェアが取り出され（ステップ１０８）、それが準同型・サーバＣに送られる（ステップ１１０）。選択的事項としてＨＭＡＣを用いる。
図３は、アプライアンス上に記憶される場合のアプライアンスから送信されたキー・シェアを示す（ステップ１０７）。キー・シェアは、ＰＶＫＭ−Ｂに記憶されている場合には、ＰＶＫＭから送信される（ステップ１０４）。準同型・サーバＣはその後ブラインドされた暗号化されたキー・シェアを計算し（ステップ１１２）、このブラインドされ暗号化されたキー・シェアをＰＶＫＭ−Ｂに送る（ステップ１１４）。ＰＶＫＭ−Ｂは、最終的にブラインドされ暗号化されたキー・シェアを脱暗号化し（ステップ１１６）、その結果ブラインドされ脱暗号化されたキー・シェアをアプライアンスＡに送る（ステップ１１８）。そこで脱暗号化されたキー・シェアは、アプライアンスのブラインドされたキー・シェアＫｍΘｒと組み合わされて、固有のキーＫｓを再生する（ステップ１２０）。
【００８９】
上記の暗号化方法の準同型特性は、ブラインド値は平文のｒを知らずに暗号化テキストに適用され、そこから直接取り出すことができることを意味する。その理由は、ｒの値は平文形態で記憶されず、ＰＶＫＭ又はアプライアンス（更には両方）への受動的な攻撃ではｒを知ることはできない。マスター・キーを解明する唯一の方法は、すべて３つのサーバに入り込み、アプライアンスからＫｍΘｒを、ＰＶＫＭからＤｋを、準同型・サーバからＥｋ（ｒ）を取り出し、この３つのキーを組み合わせることである。
【００９０】
本発明の一実施においては、２暗号化位置準同型・ブラインド暗号化は、プロトコルの最適化を行うことで実現できる。この実施例は、図２で説明した準同型・ブラインドの２つの位置の暗号化方法に類似する。但し、プロトコルでは、ある場所ではより効率的であり、より少ない計算量とより少ない繰り返し計算で目標に達成できる。
【００９１】
図４は、本発明の一実施例による、プロトコル最適化を伴った２暗号化位置の準同型ブラインド化キーの暗号化方式を実施する主要ステップのブロック図である。
【００９２】
この実施例の２暗号化箇所での準同型・ブラインディングの暗号化においては、新たなアプライアンスを生成する為（サブ・プロセスＩ）、ＰＶＫＭ−Ｂは、キーの対（Ｅｋ，Ｄｋ）を生成し（ステップ１３０）、ＥｋをアプライアンスＡに送り（ステップ１３２）、そこに記憶する（ステップ１３４）。更に、Ｅｋをユーザに送る（ステップ１３６）。アプライアンスＡは、暗号化されたマスター・キーＥｋ（Ｋｍ）を受領すると記憶し（ステップ１３８）、この暗号化さたＫｍ（生成され記憶されたブラインド化値ｒから得られる）をＥｋ（ＫｍΘｒ）を計算することにより、ブラインド化する（ステップ１４０）。このブラインド化されたＫｍをその後ＰＶＫＭ−Ｂに送り（ステップ１４２）、これをＰＶＫＭ−Ｂに記憶する（ステップ１４４）。
【００９３】
上記の暗号化方法の準同型・プロパティは、Ｋｍに知らずにブライド化ステップを加えることである。
Ｅｋ（ＫｓΘｒ）＝Ｅｋ（Ｋｍ）ΘＥｋ（ｒ）
【００９４】
新たに保護されたアイテムが生成されると（サブ・プロセスＩＩ）、新たな固有キーＫｓ（アイテムを暗号化し保護するに用いられる）が必要とされる。これには従来公知の暗号化技術が用いられる。固有キーは以下のように生成される。
【００９５】
アプライアンスＡは、アプライアンスＡ上でランダムなビット形式であるエントロピー（この分野では公知技術）をキー生成リクエストと共に集める（ステップ１４６）。その後アプライアンスＡは、キーを生成するよう要求する（ステップ１４８）。これは。リクエストを、集められたエントロピー上を通過させて、ＰＶＫＭ−Ｂに送る（ステップ１５０）ことにより行われる。その後ＰＶＫＭ−Ｂは、ランダムな値を生成する。このランダムな値は、アプライアンスＡのエントロピーと共に、ＰＶＫＭ−Ｂのキー・シェア、ＫｍΘＫｓとして機能する。
【００９６】
ＰＶＫＭ−Ｂは、リクエストで供給されたアプライアンス・エントロピ又はＰＶＫＭのアプライアンス・エントロピーの何れかを用いるか又はその両方を用いて、新たなキーを生成する。その後このキー・シェアを用いて、ブラインド・キーＫｓΘｒを生成する（ステップ１５４）。これをＰＶＫＭ−ＢからアプライアンスＡに送る（ステップ１５６）、それからアプライアンスＡは、キーＫｓを、予め記憶されたブラインド値ｒを用いて計算する（ステップ１５８）。
【００９７】
保護されたアイテムに再度アクセスされると（サブ・プロセスＩＩＩ）、アプライアンスＡはリクエストを生成（ステップ１６０）することにより、固有キーＫｓを得る。その後、このリクエストＰＶＫＭ−Ｂに送ること（ステップ１６２）により。固有のキーを得る。ＰＶＫＭ−Ｂはそのキー・シェアを取り出し（ステップ１６４）、このブラインド化されたキーを計算し（ステップ１６６）、このブラインド化されたキーをアプライアンスＡに送る（ステップ１６８）。アプライアンスＡは、その後このキーＫｓを計算する（ステップ１７０）。
【００９８】
本発明の一実施例においては、Ｎか所の暗号化プロセスが、上記の２か所又は３か所の暗号化プロセスを拡張することにより、実現できる。
【００９９】
本発明の一実施例においては、クラスタに関与する信頼されたプロトコルを実行して、エンティティのクラスタ（即ちアプライアンス）が、クラスタの構成員が仮想環境又はクラウド環境で、信頼に値することを確認できる。この場合、特に新たなクラスタの構成員の安全が確保され信頼に値することが確認できる。
【０１００】
この実施例においては、クラスタ内のエンティティの信頼を認証するプロトコルが規定される。アプライアンスは識別チケットを具備する。これは従来公知の適宜のチケットである。アプライアンスは適宜のデータ・ベース内で信頼できるとして指定されるか又はこの様なアプライアンス内で信頼の生成を指定する。このようなチケット発行又はアプライアンスの指定は、トラストのフラッグの付いたアプライアンス（appliance flagged trusted）である。
【０１０１】
アプライアンスにトラストのフラッグを付ける前に、特定のアプライアンスにおけるトラストが確立されなければならない。アプライアンスは、少なくとも１つの信頼されたエンティティによりトラストが発行されない限り、トラストのフラッグは付かない。信頼されたエンティティは、別のアプライアンス、ＰＶＫＭ又は、他の信頼されたエンティティでもよい。アプライアンスは、信頼証明が発行された後のみ、トラストのフラグが付く。アプライアンスに対し信頼証書を発行するよう信頼されたエンティティは、以下の方法によってのみ、それ自身に信頼性があるものと見做される。
【０１０２】
１．エンティティがトラストを得ることそしてトラストのフラッグを付けることの唯一の方法は、システムのユーザが、エンティティに対し個人的に信頼状を発行することである。このような状況は、クラスタの第１のインスタンスが最初に活性化された時にあるシチュエーションが起きるか又は他のシチュエーションが起きた時に、発生する。この様なアプローチの代表的な例として、ユーザが信頼されたトラストに対しマスター・キーのコピー又はこのマスター・キーの暗号化版を提供することにより、そのエンティティに対しトラストを発行すること又はユーザがエンティティのトラストをＰＶＫＭに対し発行することである。
２．別の信頼されたエンティティが以下の条件の少なくとも１つが満たされたときのみ、アプライアンスに対し信頼状を発行することに同意することである。
（ａ）信頼されたエンティティがアプライアンスを設定する又は活性化することに直接関与したこと、そしてそれ故にアプライアンスが正しくセットアップされたこと又は安全性のリスクがないことに対しトラストを発行することである。
（ｂ）信頼されたエンティティが識別された秘密情報又は識別された情報のデータ・ベースにアクセスすること、これにより信頼されたエンティティがアプライアンスは信頼に値すると認証することである。
【０１０３】
信頼状（トラスト）を発行するある方法は、状況によっては他のものよりも好ましいが、両方のアプローチ共一般性を維持する。信頼されたエンティティがアプライアンスに対しトラストを発行すると決定すると、信頼されたエンティティは、アプライアンスに対するトラストを、クラスタの他のメンバー又はＰＶＫＭの他のメンバーに、発行する。新たに信頼されたアプライアンスが、適宜の秘密を受領すると、エンティティのトラストが確立される。
【０１０４】
上記の秘密の一例は以下のものがある。
適宜のフラッグ（例えば、チケット）
適宜に暗号化されたマスター・キー
従来用いられている秘密事項
このような秘密は、それを暗号化することにより安全確保される。更に好ましいのは、
秘密そのものがコンピュータ環境で平文の形態で知られていないことである。
秘密が送信側（信頼を発行する側）のエンティティとは異なる方法で受信側（信頼を要求される側）のアプライアンスに対し暗号化される。
【０１０５】
本発明の一実施例においては、トラスト（信頼）を発行するエンティティは、ＰＶＫＭと協働して秘密のそれ自身の暗号化を取り除くが、これはＰＶＫＭ又は信頼を発行したアプライアンス側の秘密事項を知らず（例えばマスター・キーを知らず）に行うことができる。秘密の新たな暗号化が、その後ＰＶＫＭと共に適用されるが、ＰＶＫＭ又は他のアプライアンスもこの秘密を知る必要はない。この新たな暗号化は、受領する（信頼が要求される）アプライアンスにとって適切なものである。
【０１０６】
このアプローチを達成する代表的な技術は以下のステップに関連する。
１．送信側のエンティティが準同型で暗号化されたＥｋ（Ｋｍ）を受信側のアプライアンスに送る。
１．受信側のアプライアンスが、このＥｋの準同型特性を用いてその値を知ることなくＫｍをブラインド化する。（例えばランダム数値ｔを生成しＥｋ（ＫｍΘｔ）＝Ｅｋ（Ｋｍ）ΘＥ（ｔ）が計算される）そしてこれを送信側のアプライアンスに戻す。
１．トラストを発行するアプライアンスは、ＰＶＫＭに対し暗号化公開キーＥｋを取り除き、暗号化公開キーＥｊを適用する（ｔのブラインド化のために、ＰＶＫＭと信頼を発行するアプライアンスは両方ともＫｍを知ることができない）。
１．新たに暗号化された値Ｅｊ（ＫｍΘｔ）を受信側アプライアンスに送られる、これにより新たなアプライアンスにＫｍの暗号化版を、どのエンティティにもＫｍを知られずに、与えることができる。その結果新たなアプライアンスにおける暗号化は他の何れの暗号化とも異なる。
【０１０７】
この実施例は新たなアプライアンスに対し信頼できるのみならず、あるアプライアンスの秘密が破られたときに他のアプライアンスはそうではないということが確認できる。その理由は、アプライアンスが含む秘密は別々に暗号化されるからである。
【０１０８】
本発明の一実施例においては、ＨＭＡＣはサービスの拒否（ＤｏＳ）の回避で、セキュリティのために、ＰＶＫＭで維持されている脱暗号化キー（Ｄｋ）の使用を制限するために実行される。ＨＭＡＣは、特別なチェックサム機構でＰＶＫＭにとって計算は容易ではあるが、他のエンティティがそれを作り出すことは非常に困難である。ＨＭＡＣを用いて、ＰＶＫＭはＰＶＫＭがデータを暗号化する毎にチケットを計算し、このデータを暗号文と共にアプライアンスに送る。ＰＶＫＭは有効なチケットなしではデータを脱暗号化するのを拒否する。ＰＶＫＭは暗号文からチェックサムを簡単に計算し、これによりアプライアンスが、ＰＶＫＭがそのデータベース内に暗号化キーを記憶していない場合でも作業することができる。
【０１０９】
本発明の更なる実施例において、ＰＶＫＭとアプライアンスは、安全確保した仮想化したキー管理システムとして使用され、暗号化キーをＡＰＩ（Application Programming Interface）を介してユーザに送る。この実施例においては、ユーザ実際の暗号化を実行するが、この実行システムはキーを提供するだけである。この実施例において、ＰＶＫＭとアプライアンスとそれ等の間のプロトコルは上記の何れの場合でも又は一般的原理に入るようなどのプロトコルでもある。
【０１１０】
更に実際の暗号化キーをユーザに適用し、適用することは実行システムにとっては完全に知りえないものである（即ち、ＰＶＫＭとアプライアンスに対しては完全に未知のものである）。この様な実行はプロトコルを強化することにより達成され、その結果ユーザは、ユーザに対してブラインドの値、暗号化キー、暗号化キー群、暗号化キー対を発行することを要求することによりプロセスに参加する。
【０１１１】
この実施例において、ＰＶＫＭとアプライアンスはそれ自身のキーの暗号化を切り替えてそれをユーザにより指定された暗号化で置換するが、これはキーを必要とすることなく行うことができる。この実施例は、ＰＶＫＭとアプライアンスの何れもがキーに値を知ることが無いよう実行される。即ち、ユーザにより供給されるブラインド値を用いて更にブラインドする。この実施例において、ｓｅで仮想化されたキー管理システムは、キーの生成とキーの記憶システムとしてユーザのために機能するが、システムがユーザに提供するキーの値を知る必要はない。この実施例はセキュリティを確実にするために更なるセキュリティの向上が期待できる。その理由はシステムには完全には未知の値はシステムから盗むことができないからである。特にキーの値はシステムの一時メモリであるキャッシュから盗むことができないからである。
【０１１２】
以上の説明は、本発明の一実施例に関するもので、この技術分野の当業者であれば、本発明の種々の変形例を考え得るが、それらはいずれも本発明の技術的範囲に包含される。特許請求の範囲の構成要素の後に記載した括弧内の番号は、図面の部品番号に対応し、発明の容易なる理解の為に付したものであり、発明を限定的に解釈するためのものではない。また同一番号でも明細書と特許請求の範囲の部品名は必ずしも同一ではない。これは上記した理由による。実施例の記載においては、「少なくとも１つ又は複数」、「と／又は」は、それらの内の１つに限定されない。例えば「Ａ，Ｂ，Ｃの内の少なくとも１つ」は「Ａ」、「Ｂ」、「Ｃ」単独のみならず「Ａ，Ｂ又はＢ，Ｃ更には又Ａ，Ｂ，Ｃ」のように複数のもの、ＡとＢの組合せＡとＢとＣの組合せでもよい。「Ａ，Ｂと／又はＣ」は、Ａ，Ｂ，Ｃ単独のみならず、ＡとＢの２つ、又はＡとＢとＣの全部を含んでもよい。本明細書において「Ａを含む」「Ａを有する」は、Ａ以外のものを含んでもよい。特に記載のない限り、装置又は手段の数は、単数か複数かを問わない。
本ＰＣＴ出願は、米国仮出願６１／５６２，８９３号（２０１１年１１月２８日出願）と米国仮出願６１／６０３，３８３号（２０１２年２月２７日出願）を優先権を主張してなされたものである。
【図１】
0006525478.tif 000002
【図２】
0006525478.tif 000003
【図３】
0006525478.tif 000004
【図４】
0006525478.tif 000005