IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

<>
  • 特許-準同型暗号化データの安全な再暗号化 図1
  • 特許-準同型暗号化データの安全な再暗号化 図2
  • 特許-準同型暗号化データの安全な再暗号化 図3
  • 特許-準同型暗号化データの安全な再暗号化 図4
  • 特許-準同型暗号化データの安全な再暗号化 図5
  • 特許-準同型暗号化データの安全な再暗号化 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-17
(45)【発行日】2025-06-25
(54)【発明の名称】準同型暗号化データの安全な再暗号化
(51)【国際特許分類】
   G09C 1/00 20060101AFI20250618BHJP
   G06N 20/00 20190101ALI20250618BHJP
【FI】
G09C1/00 620Z
G06N20/00
【請求項の数】 20
(21)【出願番号】P 2023530628
(86)(22)【出願日】2021-11-05
(65)【公表番号】
(43)【公表日】2023-11-29
(86)【国際出願番号】 CN2021129013
(87)【国際公開番号】W WO2022105627
(87)【国際公開日】2022-05-27
【審査請求日】2024-04-11
(31)【優先権主張番号】16/953,409
(32)【優先日】2020-11-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ラサ、ナリニ、ケー
(72)【発明者】
【氏名】ナンダクマール、カーティック
(72)【発明者】
【氏名】パンカンティ、シャラスチャンドラ
【審査官】青木 重徳
(56)【参考文献】
【文献】特開2019-168590(JP,A)
【文献】米国特許出願公開第2020/0366459(US,A1)
【文献】米国特許出願公開第2017/0244553(US,A1)
【文献】柴田 崇夫 ほか,Proxy re-encryptionを用いたマルチユーザ向け完全準同型暗号の提案,2014年 情報科学技術フォーラム(FIT)講演論文集,2014年08月19日, 第四分冊,pp.19-24
【文献】Karthik Nandakumar et al.,Towards Deep Neural Network Training on Encrypted Data,2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW),米国,IEEE,2019年06月16日,pp. 40-48
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
G06N 20/00
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
THE ACM DIGITAL LIBRARY
(57)【特許請求の範囲】
【請求項1】
クライアント装置から完全準同型暗号化(FHE)情報を受信することと、
前記FHE情報を用いて機械学習(ML)モデルを訓練し、FHE暗号文を生成することと、
前記FHE暗号文に第1変換を適用し、難読化FHE暗号文を生成することと、
前記難読化FHE暗号文をセキュアデバイスに送信することと、
前記セキュアデバイスから前記難読化FHE暗号文の再暗号化バージョンを受信することと、
前記難読化FHE暗号文の前記再暗号化バージョンに第2変換を適用し、難読化解除された再暗号化FHE暗号文を生成することと、
前記再暗号化FHE暗号文を用いて前記MLモデルを訓練し、FHE MLモデルパラメータを生成することと、
前記FHE MLモデルパラメータを前記クライアント装置に送信することと、を含むコンピュータ実装方法。
【請求項2】
前記FHE情報は、クライアント装置の秘密鍵またはクライアント装置の公開鍵を用いて暗号化されたデータを含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記再暗号化FHE暗号文は、クライアント装置の秘密鍵を用いて再暗号化された難読化FHE暗号文を含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記セキュアデバイスは、ハードウェアセキュリティモジュール(HSM)を含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記第1変換を適用することは、前記FHE暗号文の頻度の態様を難読化する、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記第1変換は、前記FHE暗号文にランダムに適用される、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記第1変換を適用することは、前記FHE情報にスプリアスデータを追加する、請求項1に記載のコンピュータ実装方法。
【請求項8】
準同型暗号化データを保護するためのコンピュータプログラムであって、前記コンピュータプログラムは、コンピュータに
クライアント装置から完全準同型暗号化(FHE)情報を受信する機能と、
前記FHE情報を用いて機械学習(ML)モデルを訓練し、FHE暗号文を生成する機能と、
前記FHE暗号文に第1変換を適用し、難読化FHE暗号文を生成する機能と、
前記難読化FHE暗号文をセキュアデバイスに送信する機能と、
前記セキュアデバイスから前記難読化FHE暗号文の再暗号化バージョンを受信する機能と、
前記難読化FHE暗号文の前記再暗号化バージョンに第2変換を適用し、難読化解除された再暗号化FHE暗号文を生成する機能と、
前記再暗号化FHE暗号文を用いて前記MLモデルを訓練し、FHE MLモデルパラメータを生成する機能と、
前記FHE MLモデルパラメータを前記クライアント装置に送信する機能と、を実現させるためのコンピュータプログラム
【請求項9】
前記FHE情報は、クライアント装置の秘密鍵またはクライアント装置の公開鍵を用いて暗号化されたデータを含む、請求項8に記載のコンピュータプログラム
【請求項10】
前記再暗号化FHE暗号文は、クライアント装置の秘密鍵を用いて再暗号化された難読化FHE暗号文を含む、請求項8によるコンピュータプログラム
【請求項11】
前記セキュアデバイスは、ハードウェアセキュリティモジュール(HSM)を含む、請求項8に記載のコンピュータプログラム
【請求項12】
前記第1変換を適用することは、前記FHE暗号文の頻度の態様を難読化する、請求項8に記載のコンピュータプログラム
【請求項13】
前記第1変換は、前記FHE暗号文にランダムに適用される、請求項8に記載のコンピュータプログラム
【請求項14】
前記第1変換を適用することは、前記FHE情報にスプリアスデータを追加する、請求項8に記載のコンピュータプログラム
【請求項15】
準同型暗号化データを保護するためのコンピュータシステムであって、前記コンピュータシステムは、
1つまたは複数のコンピュータプロセッサと、
1つまたは複数のコンピュータ可読記憶装置と、
前記1つまたは複数のコンピュータプロセッサによる実行のために、前記1つまたは複数のコンピュータ可読記憶装置上に格納されたプログラム命令であって、前記格納されたプログラム命令は、
クライアント装置から完全準同型暗号化(FHE)情報を受信するためのプログラム命令と、
前記FHE情報を用いて機械学習(ML)モデルを訓練し、FHE暗号文を生成するためのプログラム命令と、
前記FHE暗号文に第1変換を適用し、難読化FHE暗号文を生成するためのプログラム命令と、
前記難読化FHE暗号文をセキュアデバイスに送信するためのプログラム命令と、
前記セキュアデバイスから前記難読化FHE暗号文の再暗号化バージョンを受信するためのプログラム命令と、
前記難読化FHE暗号文の前記再暗号化バージョンに第2変換を適用し、難読化解除された再暗号化FHE暗号文を生成するためのプログラム命令と、
前記再暗号化FHE暗号文を用いて前記MLモデルを訓練し、FHE MLモデルパラメータを生成するためのプログラム命令と、
前記FHE MLモデルパラメータを前記クライアント装置に送信するためのプログラム命令と、を含むコンピュータシステム。
【請求項16】
前記FHE情報は、クライアント装置の秘密鍵またはクライアント装置の公開鍵を用いて暗号化されたデータを含む、請求項15に記載のコンピュータシステム。
【請求項17】
前記再暗号化FHE暗号文は、クライアント装置の秘密鍵を用いて再暗号化された難読化FHE暗号文を含む、請求項15に記載のコンピュータシステム。
【請求項18】
前記セキュアデバイスは、ハードウェアセキュリティモジュール(HSM)を含む、請求項15に記載のコンピュータシステム。
【請求項19】
前記第1変換を適用することは、前記FHE暗号文の頻度の態様を難読化する、請求項15に記載のコンピュータシステム。
【請求項20】
前記第1変換は、前記FHE暗号文にランダムに適用される、請求項15に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、完全準同型暗号化(FHE)を用いて保護されるデータの保護に関するものである。本開示は、特に、サービスプロバイダとハードウェアセキュリティモジュール(HSM)プロバイダとの間で渡されるFHE(完全準同型暗号)データを難読化することに関係する。
【背景技術】
【0002】
サービスとしての機械学習(MLaaS)は、クライアントがモデルの訓練のために、クラウドや他のネットワークベースのサービスプロバイダに訓練データセットを提供することを可能にする。サービスプロバイダは、訓練データセットを受け取り、訓練データを利用してモデルを開発し、訓練済みモデルのモデルパラメータをクライアントに渡す。
【0003】
訓練データの暗号化とモデルパラメータの復号化にFHEを使用することで、サービスプロバイダが訓練データセットにアクセスしたり、訓練データや関連するモデルパラメータに関する詳細を知ることなく、訓練プロセスを進行させることができる。完全準同型暗号により、データを復号化することなく、モデルの訓練とモデルのパラメータの決定に使用できる暗号化データを提供する。暗号化データでモデルを訓練すると、暗号化モデルパラメータが生成され、これはユーザに渡され、FHEを使用して復号化される。FHEは、訓練データや最終的なモデルのパラメータをサービスプロバイダに公開することなく、サービスプロバイダから訓練されたモデルのパラメータにユーザがアクセスすることを可能にする。
【発明の概要】
【0004】
以下は、本開示の1つまたは複数の実施形態の基本的な理解を提供するための概要を提示する。この概要は、重要な要素または重要な要素を特定すること、または特定の実施形態の任意の範囲または特許請求の範囲の任意の範囲を画定することを意図していない。その唯一の目的は、後に提示されるより詳細な説明の前段階として、簡略化された形態で概念を提示することである。本明細書に記載される1つまたは複数の実施形態において、デバイス、システム、コンピュータ実装方法、装置、もしくはコンピュータプログラム製品またはこれらの組み合わせは準同型暗号化データの安全な再暗号化を可能にする。
【0005】
本発明の態様は、クライアント装置から完全準同型暗号化(FHE)情報を受信することと、FHE情報を用いて機械学習モデルを訓練することと、FHE暗号文を生成することと、FHE暗号文に第1変換を適用することと、難読化FHE暗号文を生成することと、難読化FHE暗号文をセキュアデバイスに送信し、難読化FHE暗号文の再暗号化バージョンをセキュアデバイスから受信することと、難読化FHE暗号文の再暗号化バージョンに第2変換を適用することと、難読化解除された再暗号化FHE暗号文を生成することと、難読化解除された再暗号化文に従ってFHE MLモデルパラメータを決定することと、FHE MLモデルパラメータをクライアント装置に送信することによって、準同型暗号化データを安全に再暗号化することに関連する方法、システムおよびコンピュータ可読媒体を開示する。
【0006】
添付図面における本開示のいくつかの実施形態のより詳細な説明を通じて、本開示の上記および他の目的、特徴および利点がより明らかになるであろうが、ここで、同じ参照は、本開示の実施形態における同じ構成要素を概して指す。
【図面の簡単な説明】
【0007】
図1】本発明の実施形態による、コンピューティング環境の概略を示す図である。
図2】本発明の実施形態による、動作シーケンスを示すフローチャートである。
図3】本発明の実施形態による、ネットワークアーキテクチャの概略図である。
図4】本発明の実施形態による、通信のタイムラインを提供する。
図5】本発明の実施形態による、クラウドコンピューティング環境を示す図である。
図6】本発明の実施形態による、抽象化モデルレイヤを示す図である。
【発明を実施するための形態】
【0008】
いくつかの実施形態は、本開示の実施形態が図示された添付の図面を参照してより詳細に説明される。しかしながら、本開示は、様々な態様で実施することができ、したがって、ここに開示された実施形態に限定されると解釈されるべきではない。
【0009】
実施形態では、システムの1つまたは複数の構成要素は、ハードウェアもしくはソフトウェアまたはその両方を採用して、本質的に高度に技術的な問題を解決することができる(例えば、クライアント装置から情報を受信することと、情報に第1変換を適用することであって第1変換により難読化情報が生成することと、難読化情報をセキュリティデバイスに送信することと、セキュリティデバイスから変換された難読化情報を受信することと、変換された難読化情報に第2変換を適用して難読化解除された変換情報をすることと、難読化解除された変換情報をクライアント装置に送信するなど)。これらの解決策は抽象的ではなく、例えば、データおよびモデルパラメータのFHE暗号化、ネットワーク上でのFHEデータの安全な送信、FHEデータの受信およびFHEデータの復号化を容易にするために必要な処理能力のために、人間による一連の精神的行為として実行することはできない。さらに、実行される処理のいくつかは、FHEの使用に関連する定義されたタスクを実行するための専用のコンピュータによって実行され得る。例えば、ネットワーク上でFHEデータを安全に送信することなどに関連するタスクを遂行するために、専用のコンピュータを採用することができる。
【0010】
FHEデータに対するいかなる数学的演算も、データにノイズを発生させる。ノイズは演算の深さ(順次動作の数)に応じて蓄積され、高いレベルでは復号化エラーが発生する可能性がある。FHEデータのノイズを低減する取り組みとして、暗号化された秘密鍵を使用してデータのノイズを低減するブートストラップが含まれる。ブートストラップは、大規模に実施するには計算量が多くなる可能性がある。また、サービスプロバイダがFHEデータをハードウェア支援モジュールに送信し、これが、FHEデータを安全に復号化し、再暗号化してから送り返すという方法もある。後者のアプローチには、主に2つの制限がある。第一に、サービスプロバイダとハードウェアセキュリティとの間の通信リンクを監視している敵対者は、サービスプロバイダによって実行されている計算の種類を識別することができる。第二に、ハードウェア支援モジュールは、サービスプロバイダによって実行されている計算を解読する可能性がある。本開示は、上記2つの制限を克服するために、サービスプロバイダとハードウェア支援モジュールとの間で交換されるデータを難読化する方法を提供する。
【0011】
訓練された機械学習モデルを必要とするクライアントは、サービスプロバイダにモデルの構築を依頼することができる。サービスプロバイダは、モデルのアーキテクチャと、モデルの訓練に必要なコンピューティングリソースを提供することができる。クライアントは、訓練データセットを提供する。クライアントは、モデルの構築と訓練にサービスプロバイダを利用しながらも、訓練セットのデータをサービスプロバイダから保護したいと思うかもしれない。準同型暗号化(HE)により、暗号化されたデータを使用して論理回路を評価することができ、この例では機械学習モデルを訓練することができる。HEデータはサービスプロバイダに到着する前に暗号化されるため、サービスプロバイダは基礎となるデータ値にアクセスすることができない。訓練は、関連する復号化鍵へのアクセスまたはデータを復号化する能力なしに、HEデータを使用して行われ得る。訓練プロセスの各段階において、暗号化されたデータにノイズが混入するため、訓練にHEを使用することは制限される場合がある。このノイズは、HEを使用した機械学習の範囲を制限する可能性がある。HEデータを使用してモデル学習を進めると、データ内のノイズが増大する。ノイズの程度が大きくなると、ノイズの多い信号を解読するシステムの能力を超えて、暗号化されたデータを使用できなくなる可能性がある。一つの解決策として、秘密鍵の暗号化を使用して、HE暗号文を定期的に再暗号化することが挙げられる。このプロセスは「ブートストラップ」と呼ばれ、暗号文のノイズを低減させることができる。この再暗号化/ブートストラッププロセスは、すべてのシステムで利用できるとは限らず、実装するのに計算コストがかかる可能性がある。開示された実施形態は、HSMサービスプロバイダとのネットワークを介したFHEデータの交換を可能にし、データの復号化及び再暗号化によってノイズを低減しつつ、HSMサービスプロバイダ又はネットワーク通信トラフィックにアクセスする悪意のあるエンティティなどのエンティティからデータのプライバシー及びセキュリティを維持する。
【0012】
実施形態では、FHEデータは、クライアントからクラウドまたは他のネットワークサービスプロバイダに渡される。サービスプロバイダは、論理回路を評価するため、またはニューラルネットワークモデルなどの機械学習モデルの訓練において、FHEデータを利用する。FHEデータは、クライアントによって秘密鍵または公開鍵のペアの公開-秘密鍵を用いて暗号化される。クライアントは、秘密鍵をサービスプロバイダに渡さない。モデルの訓練や回路の評価は、FHE入力データから中間結果を得ることができる。中間結果には、データの基礎的な暗号化に起因するノイズが含まれる。本実施形態では、方法は、サービスプロバイダのシステムから、ハードウェアセキュリティモジュール(HSM)などの外部のエンティティに中間結果を渡す。本実施形態において、本方法は、暗号化されたデータのセキュリティを強化するために、中間結果を加法的にブラインドする。HSMは、受信した暗号文を変更する。HSMは、サービスプロバイダのシステムから受信した中間結果を含む暗号文を復号化し、その後再暗号化する。クライアントは、サービスプロバイダからの中間結果を復号化し、その後再暗号化するために、秘密鍵をHSMに提供する。クライアントは、FHEデータに使用されるチャネルとは別の通信チャネルを使用して、秘密鍵をHSMに提供することができる。
【0013】
秘密鍵を用いて中間結果を復号化、再暗号化することで、中間結果のノイズを低減、除去することができる。再暗号化された中間結果をサービス提供者に渡すことで、ノイズの少ない結果を用いてモデル学習や回路評価を継続することができる。これにより、訓練中にノイズが蓄積されないため、より多くの階層を持つモデル構造を訓練することが可能となる。FHEの訓練データを使ってモデルを訓練することで、暗号化されたモデルパラメータが生成される。訓練終了後、暗号化されたモデルパラメータはクライアントに渡され、秘密鍵を使って復号化される。サービスプロバイダは、暗号化されたデータと暗号化されたモデルパラメータのみを「見る」ことができる。
【0014】
本実施形態では、サービスプロバイダからHSMへの中間結果の往復は、モデルアーキテクチャに関連する一定の間隔で行われる。中間結果を含む暗号文は、ネットワークの各層に対する計算の後、または結果のノイズがシステムの乗算深度を使い果たした後に、HSMに渡される場合がある。暗号文の間隔と数は、モデルのアーキテクチャ構造の性質に関係し、この情報を得るための経路として機能することがある。例えば、モデル層の数、層ごとのノードの数、活性化のタイプ、及びトレーニング戦略は、サービスプロバイダのシステムとHSMとの間の通信の分析から見分けることができる。
【0015】
実施形態では、サービスプロバイダのシステムとHSMの間に難読化モジュール(OM)を追加することで、モデルのプライバシー保護が強化される。本実施形態では、OMは、システムとHSMの間で渡される暗号文を難読化し、システムのHSM通信トラフィックの分析から得られるあらゆる情報の正確性を低下させる。
【0016】
情報に難読化を適用することにより、開示された実施形態は、CAMの処理の詳細がメッセージングトラフィックから識別可能であるという懸念なしに、CAMとHAMとの間の通信を進めることを可能にする。難読化は、CAMによる機械学習モデルの訓練中にFHEデータのノイズを低減することに関連する暗号文を渡す際に、他の方法で利用可能な詳細を隠す。
【0017】
実施形態では、OMは、中間結果を含む暗号文に追加の暗号文を付加する。OMは、ランダムな間隔で追加の暗号文をHSMに送信し、実際の中間結果を含む暗号文に関連する規則的なパターンを変更する。
【0018】
実施形態では、OMは暗号文のタイミングを変更し、一部または全ての暗号文の送信を遅延させ、サービスプロバイダのシステムから受信した暗号文の元のストリームのパターンを変更する。実施形態では、OMは暗号文の頻度を変更し、一部または全ての暗号文を時間軸に沿ってシフトさせ、暗号文のストリームの周期的側面の全てまたは一部を除去することである。
【0019】
実施形態では、暗号文は多数のスロットからなり、各スロットは中間値に関連する値を含む。本実施形態では、OMは、HSMにテキストを送信する前に、暗号文のスロットの順序を変更する。暗号文の再暗号化バージョンを受け取ると、OMは、再暗号化された暗号文をサービスプロバイダのシステムに送り返す前に、暗号文のスロット値を元の順序に再整理する。
【0020】
実施形態では、OMは、サービスプロバイダシステムの暗号文の全体セットから再暗号化のための暗号文をランダムに選択する。本実施形態では、OMは、残りの暗号文の深さ(暗号化データのノイズが復号化ノイズ閾値を超える前に、あといくつの暗号文演算を実行できるか)に基づくランダム選択を含む任意の既知のランダム化機能を使用して暗号文をランダムに選択し得る。残りの暗号文の深さが高い場合、選択の確率は通常より低くなる。残りの暗号文の深さが減少するにつれて、暗号文の選択確率は増加するだろう。ノイズが蓄積されると、暗号文の深さは、ノイズによって機械学習モデルのさらなる生産的な評価や開発ができなくなる暗号文の深さ枯渇の時点まで減少する。暗号文の深さが減少するにつれて、ランダム選択の確率が増加し、枯渇する前に上昇するノイズのレベルを減少させることができる。残りの暗号文の深さが高いレベルで示されるノイズのレベルが低い場合、ノイズを減らす必要性は低く、暗号文の選択の確率は低くなる。
【0021】
実施形態では、OMは、モデルプライバシーの確保と、難読化の追加に関連するコンピューティングリソースコスト及びプロセス遅延との間の最適なトレードオフを決定する。本実施形態では、方法は、追加された暗号文の計算コストに対して難読化によって変更される元の暗号文ストリームの割合を決定し、難読化なしで情報を渡すことに関連する時間に対して、暗号文の遅延に関連する総時間を評価する。
【0022】
図1は、開示された発明の実践に関連する例示的なネットワークリソースを示す概略図である。本発明は、命令ストリームを処理する開示された要素のいずれかのプロセッサで実践され得る。図に示すように、ネットワーク化されたハードウェアセキュリティモジュール(HSM)110は、サーバサブシステム102に接続し、クライアント装置104と無線で、または有線接続で接続する。HSM110は、OM112及びネットワーク114により、サービスプロバイダのサーバサブシステム102と有線又は無線接続で接続する。また、クライアント装置104は、ネットワーク114を介してサーバサブシステム102と有線または無線接続で接続することができる。クライアント装置104、HSM110、およびOM112は、FHEセキュリティプログラム(図示せず)を、プログラムを実行するのに十分なコンピューティング資源(プロセッサ、メモリ、ネットワーク通信ハードウェア)と共に構成する。図1に示すように、サーバサブシステム102は、サーバコンピュータ150を含む。図1は、本発明の実施形態によるネットワーク化されたコンピュータシステム1000内のサーバコンピュータ150の構成要素のブロック図を示している。図1は、1つの実施形態の例示に過ぎず、異なる実施形態が実施され得る環境に関していかなる制限も意味しないことを理解されたい。描かれた環境に対して多くの修正を加えることができる。実施形態では、(図示せず)、OM112は、サーバサブシステム102内に存在する。本実施形態では、サーバサブシステム102とHSM110との間の全ての通信は、OM112を通過する。
【0023】
サーバコンピュータ150は、プロセッサ154、メモリ158、永続ストレージ170、通信ユニット152、入力/出力(I/O)インタフェース156および通信ファブリック140を含むことができる。通信ファブリック140は、キャッシュ162、メモリ158、永続ストレージ170、通信ユニット152、および入力/出力(I/O)インタフェース156間の通信を提供する。通信ファブリック140は、プロセッサ(マイクロプロセッサ、通信およびネットワークプロセッサなど)、システムメモリ、周辺デバイス、およびシステム内の他の任意のハードウェアコンポーネント間でデータもしくは制御情報またはこれらの組み合わせを渡すために設計された任意のアーキテクチャで実装することができる。例えば、通信ファブリック140は、1つまたは複数のバスで実装することができる。
【0024】
メモリ158および永続ストレージ170は、コンピュータ可読記憶媒体である。本実施形態では、メモリ158は、ランダムアクセスメモリ(RAM)160を含む。一般に、メモリ158は、任意の適切な揮発性または不揮発性のコンピュータ可読記憶媒体を含むことができる。キャッシュ162は、最近アクセスされたデータ、および最近アクセスされたデータの近くのデータをメモリ158から保持することによって、プロセッサ154の性能を向上させる高速メモリである。
【0025】
本発明の実施形態を実践するために使用されるプログラム命令およびデータ、例えば、FHEセキュリティプログラム175は、キャッシュ162を介してサーバコンピュータ150のそれぞれのプロセッサ154の1つまたは複数による実行もしくはアクセスまたはその両方のために永続ストレージ170に格納される。この実施形態では、永続ストレージ170は、磁気ハードディスクドライブを含む。代替的に、または磁気ハードディスクドライブに加えて、永続ストレージ170は、ソリッドステートハードドライブ、半導体ストレージデバイス、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROM)、フラッシュメモリ、またはプログラム命令またはデジタル情報を格納することができる他の任意のコンピュータ可読記憶媒体を含み得る。
【0026】
また、永続ストレージ170が使用する媒体は、取り外し可能であってもよい。例えば、永続ストレージ170には、取り外し可能なハードディスクが使用される場合がある。他の例としては、永続ストレージ170の一部でもある別のコンピュータ可読記憶媒体上に転送するためにドライブに挿入される光および磁気ディスク、サムドライブ、およびスマートカードがある。
【0027】
通信ユニット152は、これらの例では、クライアントコンピューティング装置104のリソース、および110を含む他のデータ処理システムまたは装置との通信を提供する。これらの実施例では、通信ユニット152は、1つまたは複数のネットワークインタフェースカードを含む。通信ユニット152は、物理的および無線通信リンクのいずれかまたは両方の使用を通じて通信を提供し得る。ソフトウェア配布プログラム、および本発明の実施に使用される他のプログラムおよびデータは、通信ユニット152を通じてサーバコンピュータ150の永続ストレージ170にダウンロードされることがある。
【0028】
I/Oインタフェース156は、サーバコンピュータ150に接続され得る他の装置とのデータの入力および出力を可能にする。例えば、I/Oインタフェース156は、キーボード、キーパッド、タッチスクリーン、マイク、デジタルカメラ、もしくは他の適切な入力装置またはこれらの組み合わせなどの外部装置190への接続を提供できる。外部装置190は、例えば、サムドライブ、ポータブル光または磁気ディスク、およびメモリカードなどのポータブルコンピュータ可読記憶媒体を含むこともできる。本発明の実施形態を実践するために使用されるソフトウェアおよびデータ、例えば、サーバコンピュータ150上のFHEセキュリティプログラム175は、そのようなポータブルコンピュータ可読記憶媒体に格納されることができ、I/Oインタフェース156を介して永続ストレージ170上にロードされ得る。I/Oインタフェース156は、ディスプレイ180にも接続する。
【0029】
ディスプレイ180は、データをユーザに表示する機構を提供し、例えば、コンピュータモニタであってもよい。ディスプレイ180は、タブレットコンピュータのディスプレイのようなタッチスクリーンとしても機能することができる。
【0030】
実施形態において、クライアント装置104は、機械学習モデルの訓練に使用することを意図した訓練データセットに暗号化を適用する。暗号化は、データセットを準同型暗号化するための秘密鍵または公開鍵の使用を含む。準同型暗号化データセットは、クライアント装置104からネットワーク114を介してサーバサブシステム102に渡される。サーバサブシステム102は、ローカルで、クライアント装置104と同じエンティティの制御下にある場合もあれば、サーバサブシステム102は、機械学習モデルの開発および訓練のためにクラウドサービスプロバイダによって使用のために提供されるクラウドリソースとなる場合もある。サーバサブシステムは、データを復号化することなく、提供されたデータを評価または訓練のために使用するので、全体のプロセスは完全準同型暗号化(FHE)を使用する。サーバサブシステム102は、クライアント装置104からFHEデータを受信し、FHEデータを使用して、指定された回路を評価し、または指定された機械学習モデルを訓練する。評価または訓練の間、サーバサブシステムは、評価または訓練に関連する、中間値または暗号文を生成する。FHEデータであるため、これらの暗号文にはノイズが含まれる。ノイズを減らす努力をしなければ、ノイズは増加し、最終的な結果に復号化エラーが発生する。
【0031】
一部のシステムでは、サーバサブシステム102は、暗号化された中間結果を、暗号文ごとに1つまたは複数の中間結果を含む暗号文のストリームとしてHSM110に渡す。HSM110は、クライアント104から受信した秘密鍵を利用して、各暗号文を復号化し、その後再暗号化する。この復号-再暗号化処理により、暗号文で運ばれる中間結果からのノイズが低減または除去される。HSM110は、再暗号化された中間結果を、元のストリームに対応する暗号文のストリームとして、サーバサブシステム102に戻す。
【0032】
このようなシステムでは、機械学習モデルのアーキテクチャの性質は、暗号文のストリームに漏れる情報を用いて判別されることがある。モデル層の数、層ごとのノードの数、CAMの計算の詳細、活性化のタイプ、訓練戦略などのモデルに関する情報は、暗号文のストリームの分析から決定することができる。
【0033】
図1に示す実施形態では、本方法は、難読化モジュール(OM)112をネットワーク化されたシステム全体に追加する。OM112は、サーバサブシステム102とHSM110との間に存在し、サーバサブシステム102とHSM110との間の全ての通信トラフィックがOM112を通過する。本実施形態では、OM112は、サーバサブシステム102からHSM110に送信される暗号文のストリームを変更する。この改変は、モデル層の数、層ごとのノードの数、活性化のタイプ及び訓練戦略などのアーキテクチャの詳細を難読化し、そうでなければメッセージングストリームから識別可能である。OM112は、HSM110からサーバサブシステム102へのメッセージパッシングを難読化解除して、サーバサブシステムにノイズを低減した暗号文を提供する。実施形態において、OM112は、サーバサブシステム102の組み込み部分として存在し、サーバサブシステム102とHSM110との間の通信は、サーバサブシステム102からOM112へ流れ、ネットワーク114を介してHSM110へ流れ、そして同じルーティングに沿って戻る。
【0034】
難読化解除された暗号文を受け取った後、本方法はMLモデルの訓練を進める。訓練の複数のエポックまたは反復が発生する可能性がある。複数の中間暗号文のセットは、OM112を介してHSM110に渡され、サーバサブシステム102に戻される場合がある。MLモデルの訓練の完了後、本方法は、FHE MLモデルパラメータのセットをクライアント装置104に渡す。クライアント装置104は、クライアントの秘密鍵を利用してFHE MLモデルパラメータの暗号化を解除し、クライアントが新しいデータを分析するために訓練されたMLモデルを利用できるようにする。
【0035】
図2は、本開示の実施に関連する例示的な動作を示す、フローチャート200を提供する。プログラム開始後、ブロック210において、難読化モジュール(OM)を介して動作するFHEセキュリティプログラム175の方法は、コンピューティングエージェントモジュール(CAM)などのクライアント装置から情報を受信する。実施形態では、情報は、FHEデータ中間結果を含むCAMからの暗号文を含み、CAMは、リモートクライアントのための機械学習モデルを訓練するクラウドベースのサービスプロバイダのシステムプロセッサを含む。受信された情報は、CAMのクライアントの秘密鍵または公開鍵を使用して暗号化されたデータを含む。
【0036】
ブロック220において、FHEセキュリティプログラム175の方法は、OMを介して動作し、CAMから受信した情報に第1変換を適用する。適用された変換は、受信した情報に「偽」の暗号文のような生成されたスプリアス情報を追加することによって、情報を補足することができる。偽の暗号文が追加されると、OMから下流の通信における暗号文のパターンが変化する。この変更は、モデル層の数、層ごとのノードの数、活性化のタイプ及び訓練戦略、並びにCAMの計算の詳細を含む、CAMから受信した情報の元のストリームにおいて識別可能なあらゆる情報を難読化する。適用された変換は、下流に渡された情報がCAMから受信した情報ともはや同一でないように、受信した各暗号文にデータを追加することによって、受信した情報を加法的にブラインドすることを含むことができる。
【0037】
実施形態において、適用された変換は、受信した暗号文または他の情報を下流要素に沿って渡すタイミングまたは頻度にランダムな遅延を導入する。本実施形態では、遅延は、暗号文の元のストリームのすべてまたは一部のタイミングを遅延させること、または元の暗号文のすべてまたは一部のタイミングを変更する一方で、下流の要素に渡される受信情報のストリームに偽の暗号文を追加することを含むことができる。実施形態において、本方法は、受信した暗号文に関連する任意の規則的な頻度パターンを乱すために、一部またはすべての受信した暗号文をシフトすることによって、暗号文の頻度を変更することができる。
【0038】
実施形態において、適用された変換は、受信した暗号文をランダムに選択し、HSMによる復号化、再暗号化などの下流処理のために選択した暗号文のみを送信する。本実施形態では、変換は、下流処理のための次の暗号文を決定するために乱数発生器を使用して暗号文をランダムに選択してもよく、例えば、最初に選択された暗号文から、変換は、下流処理のために選択された次の暗号文の前にスキップする暗号文の数を示す乱数を決定する。暗号文の全体セットの一部のみを下流処理のために選択すると、暗号文メッセージの元のパターンを変更することでFHEのセキュリティが向上するが、回路の評価または機械学習モデルの訓練にCAMが使用する暗号文の全体ストリームにノイズが多く含まれるようになる。ストリームの一部のみが復号化、再暗号化のためにHSMに渡されるため、全体のストリームはより多くのノイズを含む。本実施形態では、方法は残りの暗号文の深さに従って暗号文を選択することができる。
【0039】
実施形態において、本方法は、様々な難読化技術に関連する計算コストと、各技術または技術の組み合わせがCAMによって提供される情報の元のストリームを変更する程度とのバランスをとる。
【0040】
ブロック230において、FHEセキュリティプログラム175の方法は、OMから、ハードウェアセキュリティモジュール(HSM)のようなハードウェア支援モジュール(HAM)へのような下流のエンティティに、変換された情報を送信する。HAM/HSMに送信された情報は、OMによって変更され、もはやCAMからOMによって受信された情報のストリームと同一ではない。
【0041】
HAM/HSMは、OMから受信した情報を変換する。実施形態では、HSMは、クライアント又はクライアント装置によってHSMに直接提供される暗号化秘密鍵を利用して、OMから受信した情報を復号化し、その後情報を再暗号化する。情報を復号化し、再暗号化するステップは、処理のためにクライアントからCAMにデータを送信する前に、クライアントによって元のデータに適用された元の暗号化によってもたらされたノイズを低減、又は除去する。中間結果のノイズレベルが変化することで、CAMは、クライアントからのFHEを使用して、より広範で深い機械学習モデルを訓練することができる。ノイズの低減により、より深いモデルを訓練することができるが、CAMには、クライアントの訓練データを解読したり、クライアントの暗号化されていないデータを見たりする機能はない。CAMからHAMに渡される情報のストリームが難読化されているため、HAMには、提供された情報のストリームから、評価対象の回路や訓練中のモデルに関する意味のある情報を導き出す能力がない。OMから受け取った情報を復号化し、再暗号化した後、HAMは再暗号化された情報をOMに送信する。
【0042】
ブロック240において、FHEセキュリティプログラム175の方法は、OMが、HAM/HSMから変換された難読化情報を受信する。元の難読化情報は、HSMによって、情報から蓄積されたノイズを除去して復号化及び再暗号化されている。
【0043】
ブロック250において、OMは、元の難読化変換の逆を、受信した情報に適用する。例えば、OMは、受信した情報から偽の暗号文を除去し、受信した暗号文からあらゆる加法的ブラインディングを除去する。
【0044】
ブロック260において、FHEセキュリティプログラム175の方法は、難読化解除された変換された情報をCAMに送り返す。一例として、OMは、HSMから受信した再暗号化された暗号文のストリームを難読化解除し、以前に追加された偽の暗号文を除去し、あらゆる加法的ブラインディングアーティファクトも除去する。その後、OMは、回路の評価または機械学習モデルの訓練にさらに使用するために、暗号文の難読化解除されたストリームをCAMに送信する。実施形態において、本方法は、MLモデルのパラメータを決定する際に、受信した再暗号化暗号文を使用する。FHEデータと暗号化された暗号文の使用により、MLaaSプロバイダが読み取ることができないFHE MLモデルパラメータを生成することができる。
【0045】
ブロック270において、本方法は、FHE MLモデルパラメータをクライアント装置に引き戻す。本実施形態では、クライアント装置は、受信したFHE MLモデルパラメータを復号化する。その後、クライアントは、新しいデータを分析するために、復号化されたMLモデルパラメータを使用することができる。
【0046】
図3は、本発明の実施形態によるネットワーク化されたコンピューティング環境の概略図300を提供する。概略図300は、クライアントが訓練データセット311を所有し、データを分析するためのMLモデルパラメータ315を有するMLモデルを所望するシナリオのための環境を示している。図に示すように、訓練データ311は、312で完全準同型暗号化(FHE)訓練データとなり、クライアント装置310から、MLaaSプロバイダサーバ320に渡される。クライアント装置310は、クライアント秘密-公開鍵のペアからのクライアント秘密鍵またはクライアント公開鍵のいずれかを使用して、312で訓練データを暗号化し、FHE訓練データを生成する。MLaaSサーバ320は、FHE訓練データを使用してMLモデル322を訓練する。MLモデルの訓練の進行は、暗号化された暗号文の形態での中間結果の生成をもたらす。これらの暗号文は、FHE訓練データの使用に起因するノイズを含む。本方法は、暗号化された暗号文を、難読化モジュール(OM)330に通して暗号文ストリームを変更し、モデル層の数、層ごとのノードの数、活性化のタイプ及び訓練戦略を含むMLモデルについて他の方法で識別できる情報を隠す。OM330は、偽の暗号文を追加したり、暗号文の頻度を変更したり、暗号文の全体のストリームの一部だけをランダムに選択したり、そうでなければ暗号文の情報のパターンを変更したりすることができる。
【0047】
図に示すように、本方法は、難読化暗号文をOM330から外部のHSM340に渡す。クライアント装置310は、FHE訓練データ312を暗号化することに関連するクライアント秘密-公開鍵ペアのクライアント秘密鍵318をHSM340に提供する。HSMは、受信した秘密鍵318を使用して、受信した中間結果の暗号文を復号化し、その後、再暗号化する。暗号文の復号化及びその後の再暗号化は、MLaaSサーバ320によるMLモデルの更なる訓練を可能にする暗号文のノイズを低減する。
【0048】
HSM340は、再暗号化された暗号文を、OM330を介してMLaaSプロバイダサーバ320に戻す。OM330は、ストリームから以前に適用された難読化を除去し、再暗号化された暗号文のストリームの難読化解除を行う。
【0049】
MLaaSサーバ320は、MLモデル322をさらに訓練するために、再暗号化された暗号文を利用する。MLaaSサーバ320は、中間結果の暗号文の複数の反復を、OM330を介してHSM340に渡し、対応する再暗号化された暗号文を返送で受け取ることができる。反復は、MLaaSサーバ320によってMLモデルが完全に訓練されるまで継続することができる。完全に訓練されたMLモデルは、MLモデルを定義するFHE MLモデルパラメータのセットを含む。FHE MLモデルパラメータは、暗号化され、MLaaSプロバイダによって読み取られることはない。MLaaSサーバ320は、FHE MLモデルパラメータをクライアント装置310に渡す。クライアント装置310は、314でクライアント秘密鍵を使用してFHE MLモデルパラメータを復号化する。クライアント装置310は、復号化されたMLモデルパラメータ315を所有し、新しいデータを分析するためにMLモデルを構築し使用することができる。
【0050】
図4は、CAMとHSMとの間の通信メッセージングタイムラインを、410においてデータの難読化なし、および420において上述のようにデータの難読化ありで示す。図に示すように、タイムライン410に沿って配置され、開示された難読化なしで通信されたメッセージ415の規則的なパターン及び間隔は、CAMとHSMとの間にOMを加えることによって情報のストリームを難読化することによって排除された。タイムライン420に沿って配置された難読化メッセージ425のストリームは、もはや、明らかになったMLモデルのアーキテクチャの詳細を含んでいない。
【0051】
開示された実施形態は、エッジクラウド又はクラウドリソースプロバイダから利用可能なMLaaSリモートリソースの使用を提供するものである。これらのリソースは、MLaaS消費者が、必要に応じてMLアーキテクチャ及び関連するコンピューティング環境リソースにアクセスすることを可能にする。
【0052】
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実装は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られている又は後に開発される任意の他のタイプのコンピューティング環境と組み合わせて実施することが可能である。
【0053】
クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、リソースは、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含むことがある。
【0054】
特性は以下の通りである。
【0055】
オンデマンド・セルフサービス:クラウドの消費者は、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
【0056】
ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
【0057】
リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数の消費者に提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
【0058】
迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
【0059】
測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
【0060】
サービスモデルは以下の通りである。
【0061】
サービスとしての機械学習(MLaaS):消費者が、プロバイダの機械学習モデルアーキテクチャを利用して、消費者の訓練データを使用してMLモデルを訓練し、その後、訓練されたモデルを利用するために提供される機能である。消費者は、データをプロバイダに渡し、訓練されたモデルから出力を受け取る。消費者はモデルのために使用される基礎となるクラウドリソースを管理しない。
【0062】
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。
【0063】
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
【0064】
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティングシステムやアプリケーションを含む任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
【0065】
展開モデルは以下の通りである。
【0066】
プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0067】
コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0068】
パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
【0069】
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
【0070】
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0071】
ここで、図5に例示的なクラウドコンピューティング環境50を示す。図示するように、クラウドコンピューティング環境50は1つ以上のクラウドコンピューティングノード10を含む。これらに対して、クラウド消費者が使用するローカルコンピュータ装置(例えば、PDAもしくは携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはこれらの組み合わせなど)は通信を行うことができる。ノード10は互いに通信することができる。ノード10は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つ以上のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウド消費者はこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、図5に示すコンピュータ装置54A~Nの種類は例示に過ぎず、コンピューティングノード10およびクラウドコンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
【0072】
ここで、クラウドコンピューティング環境50(図5)によって提供される機能的抽象化レイヤのセットを図6に示す。なお、図6に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
【0073】
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0074】
仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば以下の仮想エンティティを提供することができる:仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75。
【0075】
一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウド消費者およびタスクの識別確認を可能にする。ユーザポータル83は、消費者およびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
【0076】
ワークロードレイヤ90は、クラウドコンピューティング環境が利用可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、およびFHEセキュリティプログラム175が含まれる。
【0077】
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。本発明は、命令ストリームを処理する、単一または並列の任意のシステムで有益に実施され得る。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。
【0078】
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶装置は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
【0079】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピュータ装置/処理装置へダウンロード可能である。あるいは、ネットワーク(例えばインターネット、LAN、WANもしくはワイヤレスネットワークまたはこれらの組み合わせ)を介して、外部コンピュータまたは外部記憶装置へダウンロード可能である。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを備えることができる。各コンピュータ装置/処理装置内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、各々のコンピュータ装置/処理装置におけるコンピュータ可読記憶媒体に記憶するために転送する。
【0080】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、スモールトークやC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行する目的で当該電子回路をカスタマイズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【0081】
本発明の実施形態は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャートもしくはブロック図またはその両方を参照して説明されている。フローチャートもしくはブロック図またはその両方における各ブロック、および、フローチャートもしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実行可能である。
【0082】
上記のコンピュータ可読プログラム命令は、機械を生産するために、コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供してよい。これにより、かかるコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行するための手段を創出する。上記のコンピュータ可読プログラム命令はさらに、コンピュータ、プログラマブルデータ処理装置もしくは他の装置またはこれらの組み合わせに対して特定の態様で機能するよう命令可能なコンピュータ可読記憶媒体に記憶してよい。これにより、命令が記憶された当該コンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作の態様を実行するための命令を含む製品を構成する。
【0083】
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル装置、または他の装置にロードし、一連の動作ステップを当該コンピュータ、他のプログラマブル装置、または他の装置上で実行させることにより、コンピュータ実行プロセスを生成してもよい。これにより、当該コンピュータ、他のプログラマブル装置、または他の装置上で実行される命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行する。
【0084】
本開示の図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に係るシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図における各ブロックは、特定の論理機能を実行するための1つ以上の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことができる。他の一部の実装形態において、ブロック内に示した機能は、各図に示す順序とは異なる順序で実行してもよい。例えば、連続して示される2つのブロックは、実際には、関係する機能に応じて、同時もしくは略同時に実行してもよいし、または場合により逆順で実行してもよい。なお、ブロック図もしくはフローチャートまたはその両方における各ブロック、および、ブロック図もしくはフローチャートまたはその両方における複数のブロックの組み合わせは、特定の機能または動作を行う、または専用ハードウェアとコンピュータ命令との組み合わせを実行する専用ハードウェアベースのシステムによって、実行可能である。
【0085】
本明細書における「一実施形態」、「実施形態」、「例示的実施形態」等への言及は、記載された実施形態が特定の特徴、構造、または特性を含み得ることを示すが、すべての実施形態が必ずしも特定の特徴、構造、または特性を含むとは限らない。さらに、そのような言い回しは、必ずしも同じ実施形態を指すとは限らない。さらに、特定の特徴、構造、または特性が実施形態に関連して説明される場合、明示的に説明されているかどうかにかかわらず、他の実施形態に関連してそのような特徴、構造、または特性に影響を与えることは、当業者の知識の範囲内であると提出される。
【0086】
本明細書で使用される用語は、特定の実施形態を説明する目的のみのものであり、本発明を限定することを意図するものではない。本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、限定することを意図するものではない。本明細書で使用される場合、単数形「a」、「an」および「the」は、文脈が明確に他のことを示さない限り、複数形も含むことを意図している。本明細書で使用される場合、「含む(comprises)」という用語もしくは「含む(comprising)」という用語またはその両方は、記載された特徴、整数、ステップ、操作、要素、もしくは構成要素またはその組み合わせの存在を指定するが、1つ以上の他の特徴、整数、ステップ、操作、要素コンポーネント、もしくはそれらのグループまたはその組み合わせの存在または追加を排除するものではない。
【0087】
本発明の様々な実施形態の説明は、例示を目的として提示されたが、開示された実施形態を網羅的または限定することを意図するものではない。本発明の範囲から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見出される技術に対する実用化または技術的改良を最もよく説明するため、または当業者が本明細書に開示された実施形態を理解することができるように選択された。
図1
図2
図3
図4
図5
図6