(57)【要約】【課題】信頼されていない環境内で暗号化データを自律的に匿名にすることを容易にする技術が提供される。【解決手段】１つの例では、コンピュータ実装方法は、プロセッサに動作可能に結合されたシステムによって、機械学習アルゴリズムを使用して、暗号化されたデータセットから暗号化データの複数のクラスタを生成することを含むことができる。このコンピュータ実装方法は、システムによって、暗号化データの匿名性を促進できる定義された基準に基づいて、複数のクラスタを変更することを含むこともできる。【選択図】図３
2020527794.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサに動作可能に結合されたシステムによって、機械学習アルゴリズムを使用して、暗号化されたデータセットから暗号化データの複数のクラスタを生成することと、
前記システムによって、前記暗号化データの匿名性を促進する定義された基準に基づいて、前記複数のクラスタを変更することとを含んでいる、コンピュータ実装方法。
【請求項２】
前記機械学習アルゴリズムが距離に基づくクラスタ化アルゴリズムである、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記生成することが、前記暗号化データに関連付けられた位置識別子に基づく、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記定義された基準が、複数のクラスタのクラスタごとのメンバーの最小数を設定する、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記変更することが、前記暗号化されたデータセットから除去される暗号化データの量を指定する抑制しきい値に基づいて、前記複数のクラスタのあるクラスタを抑制することを含んでいる、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記抑制することが、
前記システムによって、暗号化データに関連付けられた位置インジケータに基づいて、除去される前記クラスタ内の前記暗号化データを識別することと、
前記システムによって、前記識別された暗号化データを前記暗号化されたデータセットから除去して、第２の暗号化されたデータセットを生成することと、
前記システムによって、前記機械学習アルゴリズムを使用して、前記第２の暗号化されたデータセットから暗号化データの第２の複数のクラスタを生成することとを含んでいる、請求項５に記載のコンピュータ実装方法。
【請求項７】
前記抑制することが、前記クラスタを前記複数のクラスタから除去することを含んでいる、請求項５に記載のコンピュータ実装方法。
【請求項８】
前記変更することが、パラメータに基づいて、前記暗号化データを前記複数のクラスタの第１のクラスタから前記複数のクラスタの第２のクラスタに割り当て直すことを含んでいる、請求項１に記載のコンピュータ実装方法。
【請求項９】
前記パラメータが、割り当て直されている前記暗号化データに関連付けられた位置インジケータである、請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記変更することが、パラメータに基づいて、前記第２の暗号化されたデータセットの前記暗号化データを前記複数のクラスタの第１のクラスタから前記複数のクラスタの第２のクラスタに割り当て直すことを含んでいる、請求項６に記載のコンピュータ実装方法。
【請求項１１】
コンピュータ実行可能コンポーネントを格納するメモリと、
前記メモリに操作可能に結合され、前記メモリに格納された前記コンピュータ実行可能コンポーネントを実行するプロセッサとを備えているシステムであって、前記コンピュータ実行可能コンポーネントが、
機械学習アルゴリズムを使用して、暗号化されたデータセットから暗号化データの複数のクラスタを生成するクラスタ化コンポーネントと、
前記暗号化データの匿名性を促進する定義された基準に基づいて、前記複数のクラスタを変更する変更コンポーネントとを備えている、システム。
【請求項１２】
前記クラスタ化コンポーネントおよび前記変更コンポーネントが、フェデレーテッド・クラウド環境内で動作する、請求項１１に記載のシステム。
【請求項１３】
前記クラスタ化コンポーネントが、前記複数のクラスタのあるクラスタに関してクラスタの代表をさらに生成する、請求項１１に記載のシステム。
【請求項１４】
前記クラスタの代表が、前記クラスタの前記暗号化データに関連付けられた位置識別子に基づく、請求項１３に記載のシステム。
【請求項１５】
前記定義された基準が複数の暗号化データ・レコードである、請求項１１に記載のシステム。
【請求項１６】
クラスタが前記定義された基準よりも少なく含んでいることに応答して、前記変更コンポーネントが、前記クラスタの抑制および前記クラスタの前記暗号化データの再割り当てから成る群から選択された動作を使用して前記複数のクラスタを変更する、請求項１５に記載のシステム。
【請求項１７】
前記クラスタの前記抑制が、抑制しきい値に基づいて、前記暗号化データの一部を前記複数のクラスタから除去することを含んでいる、請求項１６に記載のシステム。
【請求項１８】
暗号化されたデータセットを匿名にすることを容易にするコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、プログラム命令が具現化されているコンピュータ可読記憶媒体を備えており、プロセッサによって実行可能な前記プログラム命令が、前記プロセッサに、
機械学習アルゴリズムを使用して、前記暗号化されたデータセットから暗号化データの複数のクラスタを生成することと、
前記暗号化データの匿名性を促進する定義された基準に基づいて、前記複数のクラスタを変更することとを実行させる、コンピュータ・プログラム製品。
【請求項１９】
前記プログラム命令が、前記プロセッサに、複数の暗号化方式を使用してデータセットをさらに暗号化させて、複数の暗号化されたデータセットを生成し、前記暗号化されたデータセットが前記複数の暗号化されたデータセットから来る、請求項１８に記載のコンピュータ・プログラム製品。
【請求項２０】
前記プログラム命令が、前記プロセッサに、前記複数の暗号化されたデータセットをフェデレーテッド・クラウド環境とさらに共有させる、請求項１９に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化データを匿名にすることに関し、より詳細には、クラウド環境を介して暗号化データを匿名にすることに関する。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
匿名の暗号化データを実現するためのコンピュータ実装方法、システム、およびコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【０００３】
以下に、本発明の１つまたは複数の実施形態の基本的理解を可能にするための概要を示す。この概要は、主要な要素または重要な要素を特定するよう意図されておらず、特定の実施形態の範囲または特許請求の範囲を正確に説明するよう意図されていない。この概要の唯一の目的は、後で提示されるより詳細な説明のための前置きとして、概念を簡略化された形態で提示することである。本明細書に記載された１つまたは複数の実施形態では、１つまたは複数のクラウド環境を介して暗号化データを匿名にすることができるシステム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組合せが説明される。
【０００４】
本発明の一実施形態によれば、コンピュータ実装方法が提供される。このコンピュータ実装方法は、プロセッサに動作可能に結合されたシステムによって、機械学習アルゴリズムを使用して、暗号化されたデータセットから暗号化データの複数のクラスタを生成することを含むことができる。このコンピュータ実装方法は、システムによって、暗号化データの匿名性を促進できる定義された基準に基づいて、複数のクラスタを変更することを含むこともできる。
【０００５】
本発明の別の実施形態によれば、システムが提供される。このシステムは、コンピュータ実行可能コンポーネントを格納できるメモリを備えることができる。このシステムは、メモリに操作可能に結合され、メモリに格納されたコンピュータ実行可能コンポーネントを実行することができる、プロセッサを備えることもできる。コンピュータ実行可能コンポーネントは、機械学習アルゴリズムを使用して、暗号化されたデータセットから暗号化データの複数のクラスタを生成できる、クラスタ化コンポーネントを含むことができる。さらに、コンピュータ実行可能コンポーネントは、暗号化データの匿名性を促進できる定義された基準に基づいて複数のクラスタを変更できる、変更コンポーネントを含むことができる。
【０００６】
本発明の別の実施形態によれば、コンピュータ・プログラム製品が提供される。このコンピュータ・プログラム製品は、暗号化されたデータセットを匿名にすることができる。このコンピュータ・プログラム製品は、プログラム命令が具現化されているコンピュータ可読記憶媒体を備えることができる。それらのプログラム命令は、プロセッサに、機械学習アルゴリズムを使用して、暗号化されたデータセットから暗号化データの複数のクラスタを生成させるために、プロセッサによって実行可能であることができる。また、それらのプログラム命令は、プロセッサに、暗号化データの匿名性を促進できる定義された基準に基づいて、複数のクラスタをさらに変更させることができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の１つまたは複数の実施形態によるクラウド・コンピューティング環境を示す図である。
【図２】本発明の１つまたは複数の実施形態による抽象モデル・レイヤを示す図である。
【図３】本発明の１つまたは複数の実施形態による、信頼されていない環境内で暗号化データを匿名にすることを容易にすることができる、例示的な非限定的システムのブロック図である。
【図４】本発明の１つまたは複数の実施形態による、信頼されていない環境内で暗号化データを匿名にすることを容易にすることができる、例示的なシステムのブロック図である。
【図５】本発明の１つまたは複数の実施形態による、信頼されていない環境内で暗号化データを匿名にすることを容易にすることができる、例示的なシステムの別のブロック図である。
【図６】本発明の１つまたは複数の実施形態による、信頼されていない環境内で暗号化データを匿名にすることを容易にすることができる、例示的なシステムの別のブロック図である。
【図７】本発明の１つまたは複数の実施形態による、機械学習アルゴリズムを使用してクラスタ化している暗号化データの図である。
【図８】本発明の１つまたは複数の実施形態による、暗号化データを匿名にすることを容易にするための１つまたは複数のセキュリティ要件に従ってクラスタ化している、変更されたデータの図である。
【図９】本発明の１つまたは複数の実施形態による、機械学習アルゴリズムを使用してクラスタ化している暗号化データの別の図である。
【図１０】本発明の１つまたは複数の実施形態による、暗号化データを匿名にすることを容易にするための１つまたは複数のセキュリティ要件に基づいてクラスタ化している、変更されたデータの別の図である。
【図１１】本発明の１つまたは複数の実施形態による、信頼されていない環境内で暗号化データを匿名にすることを容易にすることができる、例示的なコンピュータ実装方法のフローチャートである。
【図１２】本発明の１つまたは複数の実施形態による、信頼されていない環境内で暗号化データを匿名にすることを容易にすることができる、例示的なコンピュータ実装方法の別のフローチャートである。
【図１３】本発明の１つまたは複数の実施形態を容易にすることができる例示的な動作環境のブロック図である。
【発明を実施するための形態】
【０００８】
以下の詳細な説明は、例にすぎず、本発明もしくは本出願またはその両方の実施形態、あるいはそのような実施形態の使用を制限するよう意図されていない。さらに、先行する「背景技術」または「発明の概要」のセクション、あるいは「発明を実施するための形態」のセクションで提示された、いずれかの明示されたか、または暗示された情報によって制約されるという意図はない。
【０００９】
ここで、図面を参照して本発明の１つまたは複数の実施形態が説明され、図面全体を通じて、類似する参照番号が、類似する要素を参照するために使用されている。以下の説明では、説明の目的で、本発明を十分に理解できるように、多数の特定の詳細が示されている。しかし、これらの特定の詳細がなくても、さまざまな事例において、本発明の１つまたは複数の実施形態が実践され得るということは明らかである。
【００１０】
本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において示された内容の実装は、クラウド・コンピューティング環境に限定されないと理解されるべきである。本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
【００１１】
クラウド・コンピューティングは、構成可能な計算リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つのデプロイメント・モデルを含むことができる。
【００１２】
特徴は、次のとおりである。
【００１３】
オンデマンドのセルフ・サービス：クラウドの利用者は、サーバの時間、ネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
【００１４】
幅広いネットワーク・アクセス：クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム（例えば、携帯電話、ラップトップ、およびＰＤＡ）による利用を促進する。
【００１５】
リソース・プール：プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベルでは、場所（例えば、国、州、またはデータセンター）を指定できる場合がある。
【００１６】
迅速な順応性：クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
【００１７】
測定されるサービス：クラウド・システムは、計測機能を活用することによって、サービスの種類（例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント）に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用量は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
【００１８】
サービス・モデルは、次のとおりである。
【００１９】
ＳａａＳ（Software as a Service）：利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Ｗｅｂブラウザ（例えば、Ｗｅｂベースの電子メール）などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
【００２０】
ＰａａＳ（Platform as a Service）：利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
【００２１】
ＩａａＳ（Infrastructure as a Service）：利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント（例えば、ホスト・ファイアウォール）を限定的に制御できる。
【００２２】
デプロイメント・モデルは、次のとおりである。
【００２３】
プライベート・クラウド：このクラウド・インフラストラクチャは、組織のためにのみ運用される。この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【００２４】
コミュニティ・クラウド：このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事（例えば、任務、セキュリティ要件、ポリシー、および適合性に関する考慮事項）を共有している特定のコミュニティをサポートする。これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
【００２５】
パブリック・クラウド：このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
【００２６】
ハイブリッド・クラウド：このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術（例えば、クラウド間の負荷バランスを調整するためのクラウド・バースティング）によって固有の実体を残したまま互いに結合された２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）の複合である。
【００２７】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含んでいるインフラストラクチャである。
【００２８】
ここで図１を参照すると、例示的なクラウド・コンピューティング環境５０が示されている。図示されているように、クラウド・コンピューティング環境５０は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス（例えば、パーソナル・デジタル・アシスタント（ＰＤＡ：personal digital assistant）または携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または自動車コンピュータ・システム５４Ｎ、あるいはその組合せなど）が通信できる１つまたは複数のクラウド・コンピューティング・ノード１０を含んでいる。ノード１０は、互いに通信することができる。ノード１０は、１つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組合せなどに、物理的または仮想的にグループ化されてよい（図示せず）。これによって、クラウド・コンピューティング環境５０は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはＳａａＳ、あるいはその組合せを提供できる。図１に示されたコンピューティング・デバイス５４Ａ〜Ｎの種類は、例示のみが意図されており、コンピューティング・ノード１０およびクラウド・コンピューティング環境５０は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続（例えば、Ｗｅｂブラウザを使用した接続）あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信できるということが理解される。
【００２９】
ここで図２を参照すると、クラウド・コンピューティング環境５０（図１）によって提供される機能的抽象レイヤのセットが示されている。本明細書に記載された本発明の他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。図２に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。本明細書に記載された本発明の他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。
【００３０】
ハードウェアおよびソフトウェア・レイヤ６０は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム６１、ＲＩＳＣ（Reduced Instruction Set Computer）アーキテクチャベースのサーバ６２、サーバ６３、ブレード・サーバ６４、ストレージ・デバイス６５、ならびにネットワークおよびネットワーク・コンポーネント６６が挙げられる。本発明の一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア６７およびデータベース・ソフトウェア６８を含む。
【００３１】
仮想化レイヤ７０は、仮想サーバ７１、仮想ストレージ７２、仮想プライベート・ネットワークを含む仮想ネットワーク７３、仮想アプリケーションおよびオペレーティング・システム７４、ならびに仮想クライアント７５などの仮想的実体を提供できる抽象レイヤを備える。
【００３２】
一例を挙げると、管理レイヤ８０は、以下で説明される機能を提供することができる。リソース・プロビジョニング８１は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定８２は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのＩＤ検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータル８３は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理８４は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意（ＳＬＡ：Service Level Agreement）計画および実行８５は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、ＳＬＡに従って行う。
【００３３】
ワークロード・レイヤ９０は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供されてよいワークロードおよび機能の例としては、マッピングおよびナビゲーション９１、ソフトウェア開発およびライフサイクル管理９２、仮想クラスルーム教育の配信９３、データ分析処理９４、トランザクション処理９５、およびデータ匿名化９６が挙げられる。本発明のさまざまな実施形態は、図１および図２を参照して説明されたクラウド・コンピューティング環境を利用して、信頼されていない環境（例えば、パブリック・クラウド環境）で暗号化データを匿名にすることを容易にすることができる。
【００３４】
データ共有およびデータの貨幣化を容易にすることに関する現在のビジネス上の必要性をサポートするために、データ保護アルゴリズムがますます重要になってきている。データを匿名にすることは、データを共有する前の重要なステップであり、データを格納して管理するための効率的な解決策として、クラウド・サービスの人気が高まっている。しかし多くの場合、個人情報または極秘データあるいはその両方を平文で格納するために、第三者は信頼されない。したがって、個人情報または極秘データあるいはその両方を読み取ろうとする意図的な試みおよび意図的でない試みから保護するために、データ暗号化が採用された。したがって、信頼されていない環境内では、平文データを格納することを必要とせずに、暗号化データを匿名にすることに対する必要性が存在する。
【００３５】
本発明のさまざまな実施形態は、信頼されていない環境内で暗号化データを匿名にすることの効率、効果、および匿名性を（例えば、直接的な人間による誘導なしで）促進する、コンピュータ処理システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組合せを対象にすることができる。例えば、本明細書に記載された本発明の１つまたは複数の実施形態は、クラスタ化手法を使用して、信頼されていない環境において、暗号化データを匿名にすることができる。本明細書において使用されるとき、「信頼されていない環境」という用語は、その環境に格納されるデータの所有者ではない第三者によって維持され、運用されている環境を指すことができる。信頼されていない環境の例としては、パブリック・クラウド・サービス・プロバイダが挙げられるが、これに限定されない。さらに、本明細書に記載された本発明の１つまたは複数の実施形態は、暗号化データの類似するレコードをクラスタ化することができ、１つまたは複数のセキュリティ要件を満たすように、クラスタを変更することができる。さらに、本明細書に記載された本発明のさまざまな実施形態は、最小限の数のメンバーを含んでいるクラスタを生成して、匿名性の望ましいレベルを得るために、暗号化データのクラスタの抑制または再割り当てあるいはその両方を実行することができる。
【００３６】
コンピュータ処理システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組合せは、本質的に高度に技術的であり、抽象的ではなく、人間による一連の精神的活動として実行できない、問題（例えば、平文データを暗号化すること、暗号化データを信頼されていない環境に転送すること、および信頼されていない環境内で暗号化データを匿名にすること）を解決するための、ハードウェアまたはソフトウェアあるいはその両方を採用する。例えば、暗号化データを匿名にするために、１人または複数の人間が暗号化データを効率的に解析して、複数のクラスタを生成することはできない。対照的に、本明細書に記載されたハードウェアまたはソフトウェアあるいはその両方を採用するコンピュータ処理システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品、あるいはその組合せのさまざまな実施形態は、膨大な量の暗号化データを効率的に解析し、クラスタに基づく匿名性を実行することができる。さらに、本明細書に記載された本発明の実施形態の利点のうちの１つは、処理されたデータが匿名であることであるため、１人または複数の人間を使用してそのような努力を試みようとすることさえ、望ましくない。人間を使用して、本明細書に記載された本発明の実施形態を実行しようとすることは、少なくとも１人の人間が、匿名であるよう意図されているデータについて複雑な知識を有することにつながるため、データを匿名にする目的に反することになる。
【００３７】
本発明の１つまたは複数の実施形態は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読記憶媒体を含んでよい。コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであってよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）、読み取り専用メモリ（ＲＯＭ：read-only memory）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ：erasable programmable read-only memoryまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：static random access memory）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：compact disc read-only memory）、デジタル多用途ディスク（ＤＶＤ：digital versatile disk）、メモリ・スティック、フロッピー・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組合せを含む。本明細書において使用されるとき、コンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【００３８】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス／処理デバイスへ、またはネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組合せ）を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてよい。各コンピューティング・デバイス／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス／処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【００３９】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：instruction-set-architecture）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）または広域ネットワーク（ＷＡＮ：wide areanetwork）を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行われてよい。本発明の一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ：field-programmable gate arrays）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：programmable logic arrays）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【００４０】
本発明の態様は、本明細書において、本発明の実施形態による、方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組合せが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【００４１】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示できるものであってもよい。
【００４２】
コンピュータ可読プログラム命令は、コンピュータ上、他のプログラム可能な装置上、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施するように、コンピュータ実装プロセスを生成するべく、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスに読み込まれ、一連の動作可能なステップを、コンピュータ上、他のプログラム可能な装置上、または他のデバイス上で実行させるものであってもよい。
【００４３】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための１つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された２つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装され得るということにも留意されたい。
【００４４】
図３は、信頼されていない環境内で暗号化データを匿名にすることを容易にすることができる、例示的なシステム３００のブロック図である。本明細書に記載された本発明の他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。本発明のさまざまな実施形態におけるシステム（例えば、システム３００など）、装置、またはプロセスの態様は、１つまたは複数のマシン内で具現化された（例えば、１つまたは複数のマシンに関連付けられた１つまたは複数のコンピュータ可読媒体内で具現化された）１つまたは複数の機械実行可能コンポーネントを構成することができる。そのようなコンポーネントは、１つまたは複数のマシン（例えば、コンピュータ、コンピューティング・デバイス、仮想マシンなど）によって実行された場合に、マシンに、説明された動作を実行させることができる。
【００４５】
図３に示されているように、システム３００は、１つまたは複数の第１のサーバ３０２と、１つまたは複数のネットワーク３０４と、１つまたは複数の第２のサーバ３０６と、１つまたは複数のクライアント・デバイス３０８とを備えることができる。第１のサーバ３０２は、処理コンポーネント３１０を備えることができる。処理コンポーネント３１０は、第１の受信コンポーネント３１２と、暗号化コンポーネント３１４と、暗号解読コンポーネント３１６と、セキュリティ・コンポーネント３１７とを、さらに備えることができる。また、第１のサーバ３０２は、少なくとも１つの第１のメモリ３１８を備えるか、またはその他の方法で少なくとも１つの第１のメモリ３１８に関連付けられ得る。第１のサーバ３０２は、処理コンポーネント３１０および関連するコンポーネント、第１のメモリ３１８、または第１のプロセッサ３２２、あるいはその組合せなどの、ただしこれらに限定されない、さまざまなコンポーネントに結合することができる、第１のシステム・バス３２０をさらに備えることができる。図３では第１のサーバ３０２が示されているが、他の実施形態では、さまざまな種類の複数のデバイスが、図３に示されている特徴に関連付けられるか、または図３に示されている特徴を備えることができる。さらに、第１のサーバ３０２は、１つまたは複数のネットワーク３０４を介して、図１および図２に示されたクラウド環境と通信することができる。本発明のさまざまな実施形態では、「第１のサーバ」または「第２のサーバ」あるいはその両方は、本発明のさまざまな実施形態において、プロセッサ、またはハードウェアもしくはソフトウェアまたはその両方のうちの１つまたは複数、あるいはその組合せから成ることができる。
【００４６】
１つまたは複数のネットワーク３０４は、セルラー・ネットワーク、広域ネットワーク（ＷＡＮ）（例えば、インターネット）またはローカル・エリア・ネットワーク（ＬＡＮ）を含むが、これらに限定されない、有線ネットワークおよび無線ネットワークを含むことができる。例えば、第１のサーバ３０２は、例えばセルラー方式、ＷＡＮ、ワイヤレス・フィディリティ（Ｗｉ−Ｆｉ：wireless fidelity）、Ｗｉ−Ｍａｘ、ＷＬＡＮ、またはＢｌｕｅｔｏｏｔｈ技術、あるいはその組合せなどを含むが、これらに限定されない、実質的に任意の望ましい有線技術または無線技術を使用して、第２のサーバ３０６と（およびその逆方向に）通信することができる。さらに、示されている本発明の実施形態では、処理コンポーネント３１０を１つまたは複数の第１のサーバ３０２上に設けることができるが、システム３００のアーキテクチャがそのように制限されないということが理解されるべきである。例えば、処理コンポーネント３１０または処理コンポーネント３１０の１つまたは複数のコンポーネントは、別のサーバ・デバイス、クライアント・デバイスなどの別のコンピュータ・デバイスに存在することができる。
【００４７】
第２のサーバ３０６は、分類コンポーネント３２４を備えることができる。分類コンポーネント３２４は、第２の受信コンポーネント３２６と、クラスタ化コンポーネント３２８と、変更コンポーネント３３０とを、さらに備えることができる。また、第２のサーバ３０６は、少なくとも１つの第２のメモリ３３２を備えるか、またはその他の方法で少なくとも１つの第２のメモリ３３２に関連付けられ得る。第２のサーバ３０６は、分類コンポーネント３２４および関連するコンポーネント、第２のメモリ３３２、または第２のプロセッサ３３６、あるいはその組合せなどの、ただしこれらに限定されない、さまざまなコンポーネントに結合することができる、第２のシステム・バス３３４をさらに備えることができる。図３では第２のサーバ３０６が示されているが、本発明の他の実施形態では、さまざまな種類の複数のデバイスが、図３に示されている特徴に関連付けられるか、または図３に示されている特徴を備えることができる。さらに、第２のサーバ３０６は、１つまたは複数のネットワーク３０４を介して、図１および図２に示されたクラウド環境と通信することができる。
【００４８】
１つまたは複数のクライアント・デバイス３０８は、第１のサーバ３０２を管理する１つまたは複数の実体によって所有されているデータを解析すること、格納すること、またはその他の方法で使用すること、あるいはその組合せをしたいと考えている実体によって操作される、コンピュータまたはコンピュータ制御デバイスあるいはその両方であることができる。１つまたは複数のクライアント・デバイス３０８は、１つまたは複数のネットワーク３０４を介して（例えば、インターネット、ローカル・ネットワーク、または直接的電気接続、あるいはその組合せを介して）、第１のサーバ３０２および第２のサーバ３０６に、操作可能に結合され得る。さらに、１つまたは複数のクライアント・デバイス３０８は、第１の手段を使用して第１のサーバ３０２に操作可能に結合することができ、第２の手段を使用して第２のサーバ３０６に操作可能に結合することができ、第１および第２の手段は、１つまたは複数のネットワーク３０４を介して利用可能であり得る。例えば、１つまたは複数のクライアント・デバイス３０８は、インターネットを介して第２のサーバ３０６に操作可能に結合されながら、第１のサーバ３０２に直接的に電気接続され得る。
【００４９】
第１の受信コンポーネント３１２は、第１のシステム・バス３２０を介して、暗号化コンポーネント３１４、暗号解読コンポーネント３１６、第１のメモリ３１８、または第１のプロセッサ３２２、あるいはその組合せに、操作可能に結合され得る。さらに、本発明の１つまたは複数の実施形態では、第１の受信コンポーネント３１２は、１つまたは複数のネットワーク３０４（例えば、ローカル・エリア・ネットワーク）を介して、暗号化コンポーネント３１４、暗号解読コンポーネント３１６、第１のメモリ３１８、または第１のプロセッサ３２２、あるいはその組合せに、操作可能に結合され得る。同様に、第２の受信コンポーネント３２６は、第２のシステム・バス３３４を介して、クラスタ化コンポーネント３２８、変更コンポーネント３３０、第２のメモリ３３２、または第２のプロセッサ３３６、あるいはその組合せに、操作可能に結合され得る。さらに、本発明の１つまたは複数の実施形態では、第２の受信コンポーネント３２６は、１つまたは複数のネットワーク３０４（例えば、ローカル・エリア・ネットワーク）を介して、クラスタ化コンポーネント３２８、変更コンポーネント３３０、第２のメモリ３３２、または第２のプロセッサ３３６、あるいはその組合せに、操作可能に結合され得る。
【００５０】
セキュリティ・コンポーネント３１７は、１つまたは複数のセキュリティ要件を、第１のサーバ３０２のオペレータから受信することができる。１つまたは複数のセキュリティ要件によって規定されたパラメータは、第２のサーバ３０６によって出力される匿名クラスタの望ましい数またはクラスタごとのメンバーの望ましい数（例えば、クラスタごとに少なくともｋ個のメンバー（ｋは０より大きい整数））あるいはその両方を含むことができるが、これらに限定されない。
【００５１】
クラスタ化コンポーネント３２８は、機械学習アルゴリズムを使用して、暗号化データをクラスタ化することができる。機械学習アルゴリズムは、ｋ平均クラスタ化アルゴリズムなどの、距離に基づくアルゴリズムであることができる。機械学習アルゴリズム（例えば、ｋ平均クラスタ化アルゴリズム）は、暗号化データを、位置識別子（例えば、全地球測位座標）などの１つまたは複数のパラメータに基づいて複数のクラスタに分割することができる。しかし、クラスタごとのメンバーの数は、データに依存し、機械学習アルゴリズムは、クラスタごとの最小の数のメンバーを生成することをサポートしない。言い換えると、クラスタ化コンポーネント３２８は、機械学習アルゴリズムを使用して、１つまたは複数のパラメータに基づいて、各クラスタのメンバーが類似している複数のクラスタを生成することができるが、各クラスタのメンバーの数は保証されないことがある。
【００５２】
本発明のさまざまな実施形態では、変更コンポーネント３３０は、定義された基準（例えば、セキュリティ要件のうちの１つまたは複数）に基づいて、暗号化データを匿名にすることを容易にするように、複数のクラスタを変更できる。本発明の１つまたは複数の実施形態では、変更コンポーネント３３０は、ｋ−匿名性を実現するように、複数のクラスタを変更することができ、ｋは各クラスタを構成するメンバーの数であり、０より大きい整数である。例えば、変更コンポーネント３３０は、２−匿名性を実現するように複数のクラスタを変更することができ、その場合、１つまたは複数のセキュリティ要件が、各クラスタが少なくとも２つのメンバーを含むということを規定する。
【００５３】
例えば、クラスタ化コンポーネント３２８は、機械学習アルゴリズムを使用して、暗号化データの１０個のレコードから、クラスＡ、Ｂ、およびＣを生成できる。この例では、クラスタＡは４つのメンバーを含むことができ、クラスタＢは５つのメンバーを含むことができ、クラスタＣは１つのメンバーを含むことができる。さらに、１つまたは複数のセキュリティ要件は、各クラスタが少なくとも２つのメンバーを含むことが望ましいということを規定することができる。変更コンポーネント３３０は、２−匿名性を実現するために、変更されたクラスタのセットが少なくとも２つのメンバーをそれぞれ含むように、クラスＡ、Ｂ、またはＣ、あるいはその組合せを変更することができる。
【００５４】
本発明のさまざまな実施形態では、変更コンポーネント３３０は、抑制動作または再割り当て動作あるいはその両方を実行することによって、複数のクラスタを変更できる。変更コンポーネント３３０は、抑制動作を実行しながら、複数のクラスタから外れ値を取り除くために、定義された量の暗号化データまたはクラスタあるいはその両方を除去することができる。変更コンポーネント３３０は、再割り当て動作を実行しながら、１つもしくは複数の暗号化データ・レコード（encrypted data records）または１つもしくは複数のクラスタあるいはその両方を別のクラスタに割り当て直すことができる。
【００５５】
本発明の１つまたは複数の実施形態では、変更コンポーネント３３０は、抑制しきい値に基づいて、定義された量の暗号化データを抑制できる。抑制しきい値は、破棄できる暗号化データの量（例えば、レコードの割合）を定義する入力パラメータであることができる。１つまたは複数のセキュリティ要件を満たすことができない（例えば、最小の数のメンバーを含むことができない）クラスタのメンバーごとに、変更コンポーネント３３０は、各メンバーと、クラスタの他のメンバーの重心との間の距離を計算し、それらの距離の最小値のみを保存することができる。次に変更コンポーネント３３０は、保存された最小距離を降順に並べ替え、抑制しきい値の量を遠い外れ値として識別することができる。このようにして、クラスタの他のメンバーからの最大の最小距離を有するメンバーが、遠い外れ値として識別される。さらに、変更コンポーネント３３０は、遠い外れ値を除去するか、または遠い外れ値の除去を指示するか、あるいはその両方を実行することができる。１つまたは複数の実施形態では、変更コンポーネント３３０は、１つまたは複数のクラスタ全体を破棄するための抑制を利用することができる。本発明の１つまたは複数の実施形態では、変更コンポーネント３３０は、抑制を利用して新しい暗号化データのセットを生成することができ、この暗号化データのセットから、クラスタ化コンポーネント３２８が新しい複数のクラスタを生成できる。
【００５６】
本発明の１つまたは複数の実施形態では、変更コンポーネント３３０は、あるクラスタからの１つまたは複数の暗号化データ・レコードを別のクラスタに割り当て直すか、または既存のクラスタをマージするか、あるいはその両方を実行できる。例えば、クラスタがセキュリティ要件を満たすことができない場合（例えば、最小の数のメンバーを含むことができない場合）、変更コンポーネント３３０は、過剰なメンバーを含むクラスタ（例えば、最小の数のメンバーより多くのメンバーを含むクラスタ）の最も近いメンバーを、不適合なクラスタに割り当て直すことができる。別の例では、クラスタがセキュリティ要件を満たすことができない場合（例えば、最小の数のメンバーを含むことができない場合）、変更コンポーネント３３０は、不適合なクラスタのメンバーを、そのメンバーに対して最も近いクラスタに割り当て直すことができる。別の例では、クラスタがセキュリティ要件を満たすことができない場合（例えば、最小の数のメンバーを含むことができない場合）、変更コンポーネント３３０は、不適合なクラスタを、最も近いクラスタにマージすることができる。
【００５７】
本発明のさまざまな実施形態では、再割り当て動作を実行するときに、変更コンポーネント３３０は、セキュリティ要件を満たすことができない（例えば、最小の数のメンバーを含むことができない）クラスタを、（例えば、最も少ないメンバーを含むクラスタから最も多いメンバーを含むクラスタまで）サイズで並べ替えることができる。変更コンポーネント３３０は、最小のクラスタ（例えば、最も少ないメンバーを含む不適合なクラスタ）から開始して、最小のクラスタの各メンバーを最も近いクラスタに割り当て直すことができる。最小のクラスタのメンバーが割り当て直された後に、変更コンポーネント３３０は、前述のクラスタを複数のクラスタから除去し、不適合なクラスタに関して、複数のクラスタを再解析することができる。さらに、変更コンポーネント３３０は、残りのすべてのクラスタが１つまたは複数のセキュリティ要件に従うまで、再割り当てプロセスを繰り返すことができる。
【００５８】
図４は、第１のサーバ３０２と第２のサーバ３０６の間で実行できる例示的なプロセスのブロック図である。本明細書に記載された本発明の他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。第１のメモリ３１８は、暗号化されていないデータの１つまたは複数のレコードを含むことができる１つまたは複数の平文データベース４０２を格納することができる。第１のメモリ３１８は、第１のシステム・バス３２０を介して、処理コンポーネント３１０に操作可能に結合され得る。暗号化コンポーネント３１４は、１つまたは複数の平文データベース４０２を（例えば、第１のメモリ３１８から）取り出し、平文データベース４０２に対して１つまたは複数の暗号化方式４０４を適用して、１つまたは複数の暗号化されたデータセット４０６を生成することができる。暗号化方式４０４は、暗号化アルゴリズムまたは暗号鍵あるいはその両方を使用して、平文データベース４０２を暗号化することができる。例示的な暗号化方式４０４は、ＡＥＳ（advanced encryption standard）、ＢＧＮ（Boneh, Goh, and Nissim）の暗号システム、トリプルＤＥＳ（triple data encryption standard）、ＲＳＡ（Rivest, Shamir, and Adelman）暗号化アルゴリズム、Ｂｌｏｗｆｉｓｈ暗号化、またはＴｗｏｆｉｓｈ暗号化、あるいはその組合せを含むことができるが、これらに限定されない。本発明の１つまたは複数の実施形態では、暗号化コンポーネント３１４は、平文データベース４０２に対して複数の異なる暗号化方式４０４を適用して、同じ平文データベース４０２に基づいて複数の暗号化されたデータセット４０６を生成することができる。例えば、暗号化コンポーネント３１４は、平文データベース４０２に対してＡＥＳ暗号化およびＢＧＮ暗号化を適用して、２つの暗号化されたデータセット４０６を作成することができる。
【００５９】
第１のサーバ３０２は（例えば、暗号化コンポーネント３１４を介して）、１つまたは複数の暗号化されたデータセット４０６を、１つまたは複数のネットワーク３０４を介して第２のサーバ３０６に送信できる。さらに、第１のサーバ３０２は（例えば、セキュリティ・コンポーネント３１７を介して）、１つまたは複数のセキュリティ要件を第２のサーバ３０６に送信できる。セキュリティ要件は、１つまたは複数の暗号化されたデータベースを匿名にするときに第２のサーバ３０６が満たす必要がある１つまたは複数のパラメータを含むことができる。例示的なセキュリティ要件は、１つまたは複数の生成されたクラスタ内で許容されるメンバーの最小数を示す数を含むことができるが、これに限定されない。
【００６０】
第２のサーバ３０６は、信頼されていない環境であることができる。さらに、第２のサーバ３０６は、フェデレーテッド・クラウド環境（federated cloud environment）を含むことができる。例えば、図４に示されているように、第２のサーバ３０６は、第１のクラウド４０８および第２のクラウド４１０を含むことができる。本発明のさまざまな実施形態では、第２のサーバ３０６は、３つ以上のクラウド（例えば、３つ、４つ、５つ以上のクラウド）を含むことができる。第２の受信コンポーネント３２６は、第１のクラウド４０８上に存在することができ、１つまたは複数の暗号化されたデータセット４０６および１つまたは複数のセキュリティ要件を受信することができる。
【００６１】
クラスタ化コンポーネント３２８は、第１のクラウド４０８上または第２のクラウド４１８上に存在することができる。変更コンポーネント３１６も、第１のクラウド４０８上または第２のクラウド４１０上に存在することができる。第１のクラウド４０８および第２のクラウド４１０は、クラスタ化通信４１２を容易にするために、１つまたは複数のネットワーク３０４を介して操作可能に結合され得る。第１のクラウド４０８と第２のクラウド４１０の間のクラスタ化通信４１２は、暗号化されたデータセット４０６を匿名にすることを容易にすることができる。本発明のさまざまな実施形態では、第２のサーバ３０６（例えば、信頼されていないフェデレーテッド・クラウド環境）は、１つまたは複数のセキュリティ要件に従って、暗号化されたデータセット４０６から匿名の暗号化されたデータセット４１４を生成できる。このようにして、第２のサーバ３０６は、データの影響を受ける実体が識別され得ないということを保証しながら、暗号化されたデータセット４０６の実際的有用性（例えば、匿名の暗号化データから引き出された任意の洞察が、匿名でない暗号化データから引き出された洞察に類似することができること）を維持することができる。
【００６２】
第２のサーバ３０６は、１つまたは複数の匿名の暗号化されたデータセット４１４を、１つまたは複数のネットワーク３０４を介して第１のサーバ３０２に送信できる。第１の受信コンポーネント３１２は、匿名の暗号化データを受信し、匿名の暗号化データを暗号解読コンポーネント３１６に送信することができる。暗号解読コンポーネント３１６は、暗号解読方式４１６を使用して匿名の暗号化されたデータセット４１４を暗号解読し、匿名の平文データベース４１８を生成することができる。
【００６３】
図５は、システム３００によって実行できる通信およびプロセスの例のブロック図である。本明細書に記載された本発明の他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。５０２で、第１のサーバ３０２が、１つもしくは複数の暗号化されたデータセット４０６または１つもしくは複数のセキュリティ要件あるいはその両方を、第２のサーバ３０６の第１のクラウド４０８に送信することができる。例えば、第１のサーバ３０２は、ＡＥＳによって暗号化されたデータセット４０６およびＢＧＮによって暗号化されたデータセット４０６を、第１のクラウド４０８に送信することができる。また、ＡＥＳによって暗号化されたデータセット４０６およびＢＧＮによって暗号化されたデータセット４０６は、同じ平文データベース４０２に基づくことができる。本発明のさまざまな実施形態では、第１のサーバ３０２によって（例えば、セキュリティ・コンポーネント３１７を介して）第１のクラウド４０８に送信される１つまたは複数のセキュリティ要件は、クラスタ化コンポーネント３２８によって生成され、変更コンポーネント３１６によって変更される、クラスタごとの最小の数のメンバーなどの、１つまたは複数の暗号化されたデータセット４０６の匿名性を促進する定義された基準を含むことができる。第２のメモリ３３２は、第１のクラウド４０８内に存在することができ、１つまたは複数の暗号化されたデータセット４０６および１つまたは複数のセキュリティ要件を格納することができる。
【００６４】
５０４で、第１のサーバ３０２が、１つまたは複数のネットワーク３０４を介して、暗号化されたデータセット４０６のうちの１つまたは複数に関する秘密暗号鍵を、第２のサーバ３０６の第２のクラウド４１０に送信することができる。例えば、第１のサーバ３０２は、ＡＥＳによって暗号化されたデータセット４０６およびＢＧＮによって暗号化されたデータセット４０６を第１のクラウド４０８に送信することができ、ＢＧＮによって暗号化されたデータセット４０６に関するＢＧＮの秘密鍵を、第２のクラウド４１０に送信することもできる。
【００６５】
５０６で、第１のクラウド４０８が（例えば、クラスタ化コンポーネント３２８を介して）、複数のクラスタの最初の中心として機能するための複数の暗号化データ・レコードを、暗号化されたデータセット４０６からランダムに選択することができる。最初の中心の数は、１つまたは複数のセキュリティ要件によって指定され得る。本発明のさまざまな実施形態では、暗号化データ・レコードのパラメータに基づいて、１つまたは複数の暗号化データ・レコードが、複数のクラスタの最初の中心として選択され得る。例えば、暗号化データ・レコードに関連付けられた１つまたは複数の位置識別子に基づいて、１つまたは複数の暗号化データ・レコードを選択することができ、これらの位置識別子は、対象の暗号化データ・レコードのソースに関する１つまたは複数の地理的座標を指定できる。
【００６６】
５１０で、第１のクラウド４０８が（例えば、クラスタ化コンポーネント３２８を介して）、暗号化されたクラスタの合計および数を第２のクラウド４１０（例えば、変更コンポーネント３３０）に送信できる。さまざまな実施形態では、第１のクラウド４０８（例えば、クラスタ化コンポーネント３２８）が、１つまたは複数の暗号化されたデータセット４０６内の暗号化データ・レコードに関連付けられた位置識別子に基づいて、クラスタを生成できる。例えば、クラスタ化コンポーネント３２８は、各暗号化データ・レコードとランダムに選択された最初のクラスタの中心との間の距離を決定できる。第１のクラウド４０８は、第２のクラウド４１０に、対象の暗号化されたデータセット４０６内の暗号化データ・レコードの総数、決定された距離（例えば、クラスタ化コンポーネント３２８によって決定される）、望ましいクラスタの数（例えば、１つまたは複数のセキュリティ要件によって指定される）、最初のクラスタの中心（例えば、クラスタ化コンポーネント３２８によって選択される）、または望ましいクラスタのメンバーの数（例えば、１つまたは複数のセキュリティ要件によって指定される）、あるいはその組合せを送信できる。
【００６７】
５１２で、第２のクラウド４１０は（例えば、変更コンポーネント３３０を介して）、第１のクラウド４０８から受信された入力に基づいて、対象の暗号化されたデータセット４０６の暗号化データ・レコードをクラスタ化するための新しい手段を計算できる。本発明の１つまたは複数の実施形態では、第２のクラウド４１０が（例えば、変更コンポーネント３３０を介して）、各クラスタの数によってクラスタの合計を分割することによってクラスタ化するための新しい手段を決定することができる。
【００６８】
５１４で、第２のクラウド４１０が（例えば、変更コンポーネント３３０を介して）、計算された新しいクラスタ化の手段を、第１のクラウド４０８のクラスタ化コンポーネント３２８に返すことができ、そのときクラスタ化コンポーネント３２８は、新しいクラスタ化の手段に基づいて、生成された１つまたは複数のクラスタを調整できる。第１のクラウド４０８と第２のクラウド４１０の間（例えば、５０８、５１０、および５１４で）の通信は、クラスタ化通信４１２を含むことができる。さまざまな実施形態では、第２のサーバ３０６は、少なくとも１つまたは複数のセキュリティ要件に基づいて望ましい収束を生成するために、クラスタ化通信４１２を複数回繰り返すことができる。このようにして、第１のクラウド４０８は、望ましいパラメータに基づいて、最初のクラスタの中心に対する１つまたは複数の暗号化データ・レコードの類似性などの、暗号化されたデータセット４０６に関する最小限の情報量を公開しながら、第２のクラウド４１０を利用して、１つまたは複数の暗号化されたデータセット４０６の暗号化データ・レコードを分割することができる。
【００６９】
図６は、クライアント・デバイス３０８の照会に関してシステム３００によって実行できる通信およびプロセスの別の例のブロック図である。本明細書に記載された本発明の他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。６０２で、第１のサーバ３０２が（例えば、暗号化コンポーネント３１４および１つまたは複数のネットワーク３０４を介して）、暗号化されたデータセット４０６のうちの１つまたは複数に関する公開暗号鍵を、クライアント・デバイス３０８のうちの１つまたは複数に送信することができる。例えば、第１のサーバ３０２は、ＡＥＳによって暗号化されたデータセット４０６およびＢＧＮによって暗号化されたデータセット４０６を第１のクラウド４０８に送信することができ、ＢＧＮによって暗号化されたデータセット４０６に関するＢＧＮの公開鍵を、１つまたは複数のクライアント・デバイス３０８に送信することもできる。６０４で、クライアント・デバイス３０８のうちの１つまたは複数が、公開暗号鍵を使用して暗号化された照会を（例えば、１つまたは複数のネットワーク３０４を介して）第１のクラウド４０８に送信できる。
【００７０】
６０６で、第１のクラウド４０８が（例えば、クラスタ化コンポーネント３２８を介して）、１つまたは複数の暗号化データ・レコードと暗号化された照会の間の距離（例えば、ユークリッド距離の二乗）を計算できる。６０８で、第１のクラウド４０８が（例えば、クラスタ化コンポーネント３２８を介して）、１つまたは複数の識別子（例えば、匿名の識別子）と共に、暗号化された距離を第２のクラウド４１０に送信できる。これらの識別子は、距離に関連付けられた各暗号化データ・レコードを考慮することができる。これらの識別子の例としては、暗号化されたデータセット４０６内の暗号化データ・レコードの位置を示す行識別子（例えば、匿名の行識別子）が挙げられるが、これに限定されない。
【００７１】
第１のクラウド４０８が同じ平文データベース４０２に関する複数の暗号化されたデータセット４０６を受信する、本発明のさまざまな実施形態では、第１のクラウド４０８は、暗号化されたデータセット４０６のうちの１つの暗号化された距離のみを送信し、暗号化されたデータセット４０６が、５０４で第２のクラウド４１０に送信された秘密暗号鍵に関連する暗号化方式を含んでいるのが好ましい。例えば、第１のクラウド４０８がＡＥＳによって暗号化されたデータセット４０６およびＢＧＮによって暗号化されたデータセット４０６を受信し、第２のクラウド４１０がＢＧＮによって暗号化された秘密鍵を受信する場合、第１のクラウド４０８は、ＢＧＮによって暗号化された距離のみを第２のクラウド４１０に送信できる。このようにして、第２のクラウド４１０は、暗号化された秘密鍵を利用して、計算された暗号化済みの距離を暗号解読することができる。
【００７２】
６１０で、第２のクラウド４１０が（例えば、変更コンポーネント３３０を介して）、１つまたは複数の距離（例えば、ユークリッド距離の二乗）を暗号解読し、少なくとも既定の値の距離に関連付けられた識別子を見つけることができる。例えば、第２のクラウド４１０は（例えば、変更コンポーネント３３０を介して）、暗号化された照会からの最小の計算された距離を含む距離を識別することができる。さらに、第２のクラウド４１０は（例えば、変更コンポーネント３３０を介して）、１つまたは複数のセキュリティ要件に基づいて識別された距離の最小数を識別することができる。
【００７３】
本発明の１つまたは複数の実施形態では、第２のクラウド４１０が（例えば、変更コンポーネント３３０を介して）、複数のセキュリティ要件に基づいて識別子を選択できる。例えば、複数のセキュリティ要件は、１つまたは複数の暗号化されたデータセット４０６を分割するためのクラスタの最小数およびクラスタごとのメンバーの最小数を規定できる。
【００７４】
６１２で、第２のクラウド４１０が（例えば、変更コンポーネント３３０を介して）、選択された識別子を第１のクラウド４０８に送信できる。選択された識別子に基づいて、第１のクラウド４０８は（例えば、クラスタ化コンポーネント３２８を介して）、暗号化されたデータセット４０６のうちの１つまたは複数から、１つまたは複数の暗号化データ・レコードを識別できる。さらに、第１のクラウド４０８は（例えば、クラスタ化コンポーネント３２８を介して）、１つまたは複数の識別子に関連付けられたクラスタごとにクラスタの代表を生成し、匿名の暗号化されたデータセット４１４を生成できる。このようにして、第１のクラウド４０８は、暗号化されたデータセット４０６を暗号解読せずに、暗号化データをクラスタ化することができ、第２のクラウドは、暗号化されたデータセット４０６について、計算された距離を除いて知ることなく、複数のクラスタを変更できる。
【００７５】
６１４で、第１のクラウド４０８が（例えば、クラスタ化コンポーネント３２８を介して）、匿名の暗号化されたデータセット４１４を第１のサーバ３０２に送信できる。第１のサーバ３０２は、匿名の暗号化されたデータセット４１４を（例えば、第１の受信コンポーネント３１２を介して）受信し、暗号解読方式４１６を使用して（例えば、暗号解読コンポーネント３１６を介して）、匿名の暗号化されたデータセット４１４を暗号解読し、匿名の平文データベース４１８を生成することができる。６１６で、第１のサーバ３０２が、匿名の平文データベース４１８を、６０４で暗号化された照会を送信した１つまたは複数のクライアント・デバイス３０８に送信できる。
【００７６】
図７、図８、図９、および図１０は、システム３００によって実行され得るクラスタ変更のさまざまな図である。本明細書に記載された本発明の他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。図７は、１５個の暗号化データ・レコードを円形として表すことができる図７００であり、これらの暗号化データ・レコードは、点々のある円形で示された第１のクラスタ７０２、斜めの縞模様のある円形で示された第２のクラスタ７０４、および空の円形で示された第３のクラスタ７０６という、３つのクラスタに分割され得る。図７００は、変更なしでクラスタ化コンポーネント３２８によって生成され得る３つの例示的なクラスタを示している。
【００７７】
図８は、同じ１５個の暗号化データ・レコードの別の図７０８であるが、第１のクラスタ７０２および第３のクラスタ７０６が、１つまたは複数のセキュリティ要件に基づいて（例えば、変更コンポーネント３３０を介して）変更されている。図７０８に示されている変更に関しては、セキュリティ要件が、各クラスタが少なくとも３つのメンバーを含むということを規定できる。図７に示されているように、第３のクラスタ７０６は、３つのメンバーというセキュリティ要件より少ない２つのメンバーのみで構成されている。セキュリティ要件を満たすために、変更コンポーネント３３０は、第３のクラスタ７０６にすでに含まれている２つの暗号化データ・レコードが第１のクラスタ７０２に割り当て直されるように、第１のクラスタ７０２および第３のクラスタ７０６を変更できる。このようにして、変更コンポーネント３３０は、１つまたは複数のセキュリティ要件に基づいて、１つもしくは複数の暗号化データ・レコードまたは１つもしくは複数のクラスタ全体あるいはその両方を、異なるクラスタに割り当て直すことができる。
【００７８】
図９は、第１のクラスタ７０２、第２のクラスタ７０４、第３のクラスタ７０６、および水平の縞模様のある円形で示された第４のクラスタ７１２に分割された１６個の暗号化データ・レコードの別の図７１０である。図７１０は、変更なしでクラスタ化コンポーネント３２８によって生成され得る４つの例示的なクラスタを示している。
【００７９】
図１０は、同じ１６個の暗号化データ・レコードの別の図７１４であるが、第３のクラスタ７０６および第４のクラスタ７１２が、１つまたは複数のセキュリティ要件に基づいて（例えば、変更コンポーネント３３０を介して）変更されている。図７１４に示されている変更に関しては、セキュリティ要件が、各クラスタが少なくとも３つのメンバーを含むということを規定できる。図９に示されているように、（２つのメンバーを含む）第３のクラスタ７０６および（１つのメンバーを含む）第４のクラスタ７１２は、セキュリティ要件によって規定された３つのメンバーより少ないメンバーをそれぞれ含んでいる。変更コンポーネント３３０は、各クラスタ内のメンバーの数に基づいてクラスタを順序付け、最小の数のメンバーを含むクラスタ（例えば、第４のクラスタ７１２）から開始する順序で、クラスタを変更できる。図１０に示されているように、変更コンポーネント３３０は、１つまたは複数のセキュリティ要件（例えば、少なくとも３つという最小数のメンバー）を満たすために、あるクラスタ（例えば、第４のクラスタ７１２）の暗号化データ・レコードを別のクラスタ（例えば、第３のクラスタ７０６）に割り当て直すことができる。このようにして、クラスタ化コンポーネント３２８が、１つまたは複数のセキュリティ要件を満たすことができない複数のクラスタを生成する場合に、変更コンポーネント３３０は、１つまたは複数のセキュリティ要件を満たすクラスタを形成するために、複数の不適合なクラスタを一緒にマージすることができる。
【００８０】
図１１は、信頼されていない環境内で暗号化データを匿名にすることを容易にすることができる、コンピュータ実装方法８００のフローチャートである。８０２で、方法８００は、プロセッサ（例えば、第１のプロセッサ３２２）に動作可能に結合されたシステム３００によって、機械学習アルゴリズムを使用して（例えば、クラスタ化コンポーネント３２８を介して）、暗号化されたデータセット４０６から暗号化データの複数のクラスタを生成することを含むことができる。８０４で、方法８００は、システム３００によって、暗号化データの匿名性を促進できる定義された基準に基づいて（例えば、変更コンポーネント３３０を介して）、複数のクラスタを変更することを含むこともできる。
【００８１】
図１２は、信頼されていない環境内で暗号化データを匿名にすることを容易にすることができる、コンピュータ実装方法９００のフローチャートである。９０２で、方法９００は、プロセッサ（例えば、第１のプロセッサ３２２）に動作可能に結合されたシステム３００によって、機械学習アルゴリズムを使用して（例えば、クラスタ化コンポーネント３２８を介して）、暗号化されたデータセット４０６から暗号化データの複数のクラスタを生成することを含むことができ、この機械学習アルゴリズムは、距離に基づくアルゴリズムであることができる。また、複数のクラスタを生成することは、暗号化データに関連付けられた１つまたは複数の位置識別子に基づくことができる。
【００８２】
９０４で、方法９００は、システム３００によって、暗号化データの匿名性を促進できる定義された基準に基づいて（例えば、変更コンポーネント３３０を介して）、複数のクラスタを変更することを含むこともできる。例えば、定義された基準は、複数のクラスタのクラスタごとのメンバーの最小数を設定できる。９０６で、方法９００は（例えば、クラスタ化コンポーネント３２８を介して）、複数のクラスタのクラスタごとにクラスタの代表を生成することを、さらに含むことができる。クラスタの代表は、複数のクラスタの変更の前または後に生成され得る。
【００８３】
本発明のさまざまな実施形態では、複数のクラスタを変更することが、暗号化されたデータセット４０６から除去される暗号化データの量を指定できる抑制しきい値に基づいて、複数のクラスタのあるクラスタを抑制することを含むことができる。また、クラスタを抑制することは、システム３００によって（例えば、変更コンポーネント３３０を介して）、暗号化データに関連付けられた位置識別子に基づいて、除去されるクラスタ内の暗号化データを識別することと、システム３００によって（例えば、変更コンポーネント３３０を介して）、識別された暗号化データを暗号化されたデータセット４０６から除去して、第２の暗号化されたデータセットを生成することと、システム３００によって（例えば、クラスタ化コンポーネント３２８を介して）、機械学習アルゴリズムを使用して、第２の暗号化されたデータセットから暗号化データの第２の複数のクラスタを生成することとを含むことができる。
【００８４】
本発明の１つまたは複数の実施形態では、複数のクラスタを変更することが、パラメータ（例えば、位置識別子）に基づいて、暗号化データを複数のクラスタのあるクラスタ（例えば、第３のクラスタ７０６）から複数のクラスタの別のクラスタ（例えば、第１のクラスタ７０２）に割り当て直すことを含むことができる。本発明のさまざまな実施形態では、変更コンポーネント３３０は、暗号化データに対する抑制動作および再割り当て動作の両方を実行できる。本発明の１つまたは複数の実施形態では、変更コンポーネント３３０は、暗号化データに対する抑制動作のみを実行できる。本発明の１つまたは複数の実施形態では、変更コンポーネント３３０は、暗号化データに対する再割り当て動作のみを実行できる。
【００８５】
本発明のさまざまな態様の背景を提供するために、図１３および以下の説明は、本発明のさまざまな態様が実装され得る適切な環境の概要を示すよう意図されている。図１３は、本発明の１つまたは複数の実施形態を容易にすることができる例示的な非限定的動作環境のブロック図を示している。本明細書に記載された本発明の他の実施形態で採用されている類似する要素の説明の繰り返しは、簡潔にするために省略されている。図１３を参照すると、本発明のさまざまな態様を実装するための適切な動作環境１０００は、コンピュータ１０１２を含むことができる。コンピュータ１０１２は、処理ユニット１０１４、システム・メモリ１０１６、およびシステム・バス１０１８を含むこともできる。システム・バス１０１８は、システム・メモリ１０１６を含むが、これに限定されないシステム・コンポーネントを、処理ユニット１０１４に操作可能に結合することができる。処理ユニット１０１４は、さまざまな使用可能なプロセッサのいずれかであることができる。デュアル・マイクロプロセッサおよびその他のマルチプロセッサ・アーキテクチャが、処理ユニット１０１４として採用されてもよい。システム・バス１０１８は、ＩＳＡ（Industry Standard Architecture）、ＭＣＡ（Micro Channel Architecture）、ＥＩＳＡ（Enhanced ISA）、ＩＤＥ（Intelligent Drive Electronics）、ＶＥＳＡローカル・バス（ＶＬＢ：VESA Local Bus）、ＰＣＩ（Peripheral Component Interconnects）、カードバス、ユニバーサル・シリアル・バス（ＵＳＢ：Universal Serial Bus）、ＡＧＰ（Advanced Graphics Port）、ＦｉｒｅＷｉｒｅ、および小型コンピュータ・システム・インターフェイス（ＳＣＳＩ：Small Computer Systems Interface）を含むが、これらに限定されない、任意のさまざまな使用可能なバス・アーキテクチャを使用する、メモリ・バスもしくはメモリ・コントローラ、ペリフェラル・バスもしくは外部バス、またはローカル・バス、あるいはその組合せを含む、複数の種類のバス構造のいずれかであることができる。システム・メモリ１０１６は、揮発性メモリ１０２０および不揮発性メモリ１０２２を含むこともできる。起動中などにコンピュータ１０１２内の要素間で情報を転送するための基本ルーチンを含む基本入出力システム（ＢＩＯＳ：basic input/output system）が、不揮発性メモリ１０２２に格納され得る。不揮発性メモリ１０２２の例としては、読み取り専用メモリ（ＲＯＭ：read only memory）、プログラマブルＲＯＭ（ＰＲＯＭ：programmable ROM）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ：electrically programmable ROM）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ：electrically erasable programmable ROM）、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ（ＲＡＭ：random access memory）（例えば、強誘電体ＲＡＭ（ＦｅＲＡＭ：ferroelectric RAM））が挙げられるが、これらに限定されない。揮発性メモリ１０２０は、外部キャッシュ・メモリとして機能するランダム・アクセス・メモリ（ＲＡＭ）を含むこともできる。例えばＲＡＭは、スタティックＲＡＭ（ＳＲＡＭ：static RAM）、ダイナミックＲＡＭ（ＤＲＡＭ：dynamic RAM）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ：synchronous DRAM）、ダブル・データ・レートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ：double data rate SDRAM）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、シンクリンクＤＲＡＭ（ＳＬＤＲＡＭ：Synchlink DRAM）、ダイレクト・ラムバスＲＡＭ（ＤＲＲＡＭ：direct Rambus RAM）、ダイレクト・ラムバス・ダイナミックＲＡＭ（ＤＲＤＲＡＭ：direct Rambus dynamic RAM）、およびラムバス・ダイナミックＲＡＭなどの、ただしこれらに限定されない、多くの形態で利用可能である。
【００８６】
コンピュータ１０１２は、取り外し可能／取り外し不可能な揮発性／不揮発性のコンピュータ記憶媒体を含むこともできる。例えば図１３は、ディスク・ストレージ１０２４を示している。ディスク・ストレージ１０２４は、磁気ディスク・ドライブ、フロッピー・ディスク・ドライブ、テープ・ドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュ・メモリ・カード、またはメモリ・スティックなどの、ただしこれらに限定されない、デバイスを含むこともできる。ディスク・ストレージ１０２４は、コンパクト・ディスクＲＯＭデバイス（ＣＤ−ＲＯＭ：compact disk ROM device）、記録可能ＣＤドライブ（ＣＤ−Ｒドライブ：CD recordable drive）、再書き込み可能ＣＤドライブ（ＣＤ−ＲＷドライブ：CD rewritable drive）、またはデジタル多用途ディスクＲＯＭドライブ（ＤＶＤ−ＲＯＭ：digital versatile disk ROM drive）などの光ディスク・ドライブを含むが、これらに限定されない記憶媒体を、別々に、または他の記憶媒体と組合せて、含むこともできる。システム・バス１０１８へのディスク・ストレージ１０２４の接続を容易にするために、インターフェイス１０２６などの、取り外し可能または取り外し不可能なインターフェイスが使用され得る。図１３は、ユーザと、適切な動作環境１０００において説明された基本的なコンピュータ・リソースとの間の仲介として機能できるソフトウェアも示している。そのようなソフトウェアは、例えば、オペレーティング・システム１０２８を含むこともできる。ディスク・ストレージ１０２４に格納できるオペレーティング・システム１０２８は、コンピュータ１０１２のリソースを制御し、割り当てるように動作する。システムのアプリケーション１０３０は、プログラム・モジュール１０３２を介して、オペレーティング・システム１０２８によるリソースの管理を利用し、例えばシステム・メモリ１０１６またはディスク・ストレージ１０２４のいずれかに格納されたデータ１０３４をプログラムすることができる。さまざまなオペレーティング・システムまたはオペレーティング・システムの組合せを使用して本発明が実装され得るということが、理解されるべきである。ユーザは、１つまたは複数の入力デバイス１０３６を介して、コマンドまたは情報をコンピュータ１０１２に入力する。入力デバイス１０３６は、マウス、トラックボール、スタイラス、タッチ・パッド、キーボード、マイクロホン、ジョイスティック、ゲーム・パッド、衛星放送受信アンテナ、スキャナ、ＴＶチューナー・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、Ｗｅｂカメラなどのポインティング・デバイスを含むことができるが、これらに限定されない。これらおよびその他の入力デバイスは、１つまたは複数のインターフェイス・ポート１０３８を介してシステム・バス１０１８を通り、処理ユニット１０１４に接続することができる。１つまたは複数のインターフェイス・ポート１０３８は、例えば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス（ＵＳＢ）を含むことができる。１つまたは複数の出力デバイス１０４０は、入力デバイス１０３６と同じ種類のポートの一部を使用できる。このようにして、例えば、ＵＳＢポートを使用して、入力をコンピュータ１０１２に提供し、コンピュータ１０１２から出力デバイス１０４０に情報を出力できる。出力アダプタ１０４２は、特殊なアダプタを必要とする出力デバイス１０４０の中でも特に、モニタ、スピーカ、およびプリンタのような何らかの出力デバイス１０４０が存在することを示すために提供され得る。出力アダプタ１０４２の例としては、出力デバイス１０４０とシステム・バス１０１８の間の接続の手段を提供するビデオ・カードおよびサウンド・カードが挙げられるが、これらに限定されない。１つまたは複数のリモート・コンピュータ１０４４などの、その他のデバイスまたはデバイスのシステムあるいはその両方が、入力機能および出力機能の両方を提供するということに、留意されたい。
【００８７】
コンピュータ１０１２は、リモート・コンピュータ１０４４などの１つまたは複数のリモート・コンピュータへの論理接続を使用して、ネットワーク環境内で動作できる。リモート・コンピュータ１０４４は、コンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサベースの機器、ピア・デバイス、またはその他の一般的なネットワーク・ノードなどであることができ、通常は、コンピュータ１０１２に関連して説明された要素の多くまたはすべてを含むこともできる。簡潔にするために、メモリ・ストレージ・デバイス１０４６のみが、リモート・コンピュータ１０４４と共に示されている。リモート・コンピュータ１０４４は、ネットワーク・インターフェイス１０４８を介してコンピュータ１０１２に論理的に接続されてから、通信接続１０５０を介して物理的に接続され得る。さらに、動作は、複数の（ローカルおよびリモートの）システムにわたって分散され得る。ネットワーク・インターフェイス１０４８は、ローカル・エリア・ネットワーク（ＬＡＮ：local-area networks）、広域ネットワーク（ＷＡＮ：wide-areanetworks）、セルラー・ネットワークなどの、有線通信ネットワークまたは無線通信ネットワークあるいはその両方を包含できる。ＬＡＮ技術は、光ファイバ分散データ・インターフェイス（ＦＤＤＩ：Fiber Distributed Data Interface）、銅線分散データ・インターフェイス（ＣＤＤＩ：Copper Distributed Data Interface）、イーサネット（Ｒ）、トークン・リングなどを含む。ＷＡＮ技術は、ポイントツーポイント・リンク、総合デジタル通信網（ＩＳＤＮ：Integrated Services Digital Networks）およびその変形などの回路交換網、パケット交換網、およびデジタル加入者回線（ＤＳＬ：Digital Subscriber Lines）を含むが、これらに限定されない。１つまたは複数の通信接続１０５０は、ネットワーク・インターフェイス１０４８をシステム・バス１０１８に接続するために採用されたハードウェア／ソフトウェアのことを指す。通信接続１０５０は、説明を明確にするために、コンピュータ１０１２内に示されているが、コンピュータ１０１２の外部に存在することもできる。ネットワーク・インターフェイス１０４８に接続するためのハードウェア／ソフトウェアは、単に例示の目的で、通常の電話の等級のモデム、ケーブル・モデム、およびＤＳＬモデムを含むモデム、ＩＳＤＮアダプタ、およびイーサネット（Ｒ）・カードなどの、内部および外部の技術を含むこともできる。
【００８８】
本発明の実施形態は、任意の可能な統合の技術的詳細レベルで、システム、方法、装置、またはコンピュータ・プログラム製品、あるいはその組合せであることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読記憶媒体を含むことができる。コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであることができるが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）、読み取り専用メモリ（ＲＯＭ：read-only memory）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ：erasable programmable read-only memoryまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：static random access memory）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：compact disc read-only memory）、デジタル多用途ディスク（ＤＶＤ：digital versatile disk）、メモリ・スティック、フロッピー・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組合せを含むこともできる。本明細書において使用されるとき、コンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【００８９】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス／処理デバイスへ、またはネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組合せ）を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含むことができる。各コンピューティング・デバイス／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス／処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。本発明のさまざまな態様の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：instruction-set-architecture）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードであることができる。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行われ得る。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ：field-programmable gate arrays）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：programmable logic arrays）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行することができる。
【００９０】
本発明の態様は、本明細書において、本発明の実施形態による、方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組合せが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであることができる。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作の態様を実施する命令を含んでいる製品を含むように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示できるものであることもできる。コンピュータ可読プログラム命令は、コンピュータ上、他のプログラム可能な装置上、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施するように、コンピュータ実装プロセスを生成するべく、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスに読み込まれ、一連の操作可能な動作を、コンピュータ上、他のプログラム可能な装置上、または他のデバイス上で実行させることもできる。
【００９１】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための１つまたは複数の実行可能な命令を含んでいる、命令のモジュール、セグメント、または部分を表すことができる。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生することができる。例えば、連続して示された２つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装され得るということにも留意されたい。
【００９２】
本発明の実施形態は、１つのコンピュータまたは複数のコンピュータあるいはその両方で実行されるコンピュータ・プログラム製品のコンピュータ実行可能命令との一般的な関連において前述されたが、当業者は、本開示がその他のプログラム・モジュールと組み合わせられるか、またはその他のプログラム・モジュールと組合せて実装されてもよいということを認識するであろう。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するか、あるいはその両方を行うルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、当業者は、本発明のコンピュータ実装方法が、シングルプロセッサ・コンピュータ・システムまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータ、コンピュータ、ハンドヘルド・コンピューティング・デバイス（例えば、ＰＤＡ、電話）、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品または産業用電子機器などを含む、その他のコンピュータ・システム構成を使用して実践され得るということを理解するであろう。示された態様は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境内で実践されてもよい。ただし、本発明の態様の全部ではないとしても一部は、スタンドアロン・コンピュータ上で実践され得る。分散コンピューティング環境において、プログラム・モジュールは、ローカルおよびリモートの両方のメモリ・ストレージ・デバイスに配置され得る。
【００９３】
本明細書において使用されるとき、「コンポーネント」、「システム」、「プラットフォーム」、「インターフェイス」などの用語は、１つまたは複数の特定の機能を含むコンピュータ関連の実体または操作可能なマシンに関連する実体を指すことができるか、またはそれらの実体を含むことができるか、あるいはその両方が可能である。本明細書で開示された実体は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかであることができる。例えば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、またはコンピュータ、あるいはその組合せであることができるが、これらに限定されない。例として、サーバ上で実行されるアプリケーションおよびサーバの両方が、コンポーネントであることができる。１つまたは複数のコンポーネントが、プロセス内または実行のスレッド内あるいはその両方に存在することができ、コンポーネントは、１つのコンピュータ上に局在するか、または２つ以上のコンピュータ間で分散されるか、あるいはその両方が可能である。別の例では、各コンポーネントは、さまざまなデータ構造が格納されているさまざまなコンピュータ可読媒体から実行できる。コンポーネントは、１つまたは複数のデータ・パケット（例えば、ローカル・システム内または分散システム内の別のコンポーネントと情報をやりとりするか、またはインターネットなどのネットワークを経由して、信号を介して他のシステムと情報をやりとりするか、あるいはその両方によって情報をやりとりする、１つのコンポーネントからのデータ）を含んでいる信号などに従って、ローカルまたはリモートあるいはその両方のプロセスを介して通信できる。別の例として、コンポーネントは、電気または電子回路によって操作される機械的部品によって提供される特定の機能を有する装置であることができ、プロセッサによって実行されるソフトウェア・アプリケーションまたはファームウェア・アプリケーションによって操作される。そのような場合、プロセッサは、装置の内部または外部に存在することができ、ソフトウェア・アプリケーションまたはファームウェア・アプリケーションの少なくとも一部を実行できる。さらに別の例として、コンポーネントは、機械的部品を含まない電子コンポーネントを介して特定の機能を提供する装置であることができ、それらの電子コンポーネントは、電子コンポーネントの機能の少なくとも一部を与えるソフトウェアまたはファームウェアを実行するためのプロセッサまたはその他の手段を含むことができる。１つの態様では、コンポーネントは、例えばクラウド・コンピューティング・システム内で、仮想マシンを介して電子コンポーネントをエミュレートすることができる。
【００９４】
加えて、「または」という用語は、排他的論理和ではなく、包含的論理和を意味するよう意図されている。すなわち、特に指定されない限り、または文脈から明らかでない限り、「ＸがＡまたはＢを採用する」は、自然な包含的順列のいずれかを意味するよう意図されている。すなわち、ＸがＡを採用するか、ＸがＢを採用するか、またはＸがＡおよびＢの両方を採用する場合、「ＸがＡまたはＢを採用する」が、前述の事例のいずれかにおいて満たされる。さらに、本明細書および添付の図面において使用される冠詞「ａ」および「ａｎ」は、単数形を対象にすることが特に指定されない限り、または文脈から明らかでない限り、「１つまたは複数」を意味すると一般に解釈されるべきである。本明細書において使用されるとき、「例」または「例示的」あるいはその両方の用語は、例、事例、または実例となることを意味するために使用される。誤解を避けるために、本明細書で開示された主題は、そのような例によって制限されない。加えて、「例」または「例示的」あるいはその両方として本明細書に記載された任意の態様または設計は、他の態様または設計よりも好ましいか、または有利であると必ずしも解釈されず、当業者に知られている同等の例示的な構造および技術を除外するよう意図されていない。
【００９５】
本明細書において使用されるとき、「プロセッサ」という用語は、シングルコア・プロセッサと、ソフトウェアのマルチスレッド実行機能を備えるシングルプロセッサと、マルチコア・プロセッサと、ソフトウェアのマルチスレッド実行機能を備えるマルチコア・プロセッサと、ハードウェアのマルチスレッド技術を備えるマルチコア・プロセッサと、並列プラットフォームと、分散共有メモリを備える並列プラットフォームとを含むが、これらに限定されない、実質的に任意の計算処理ユニットまたはデバイスを指すことができる。さらに、プロセッサは、集積回路、特定用途向け集積回路（ＡＳＩＣ：application specific integrated circuit）、デジタル信号プロセッサ（ＤＳＰ：digital signal processor）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：field programmable gate array）、プログラマブル・ロジック・コントローラ（ＰＬＣ：programmable logic controller）、複合プログラム可能論理デバイス（ＣＰＬＤ：complex programmable logic device）、個別のゲートまたはトランジスタ論理、個別のハードウェア・コンポーネント、あるいは本明細書に記載された機能を実行するように設計されたこれらの任意の組合せを指すことができる。さらに、プロセッサは、空間利用を最適化し、ユーザ機器の性能を向上するために、分子および量子ドットベースのトランジスタ、スイッチ、およびゲートなどの、ただしこれらに限定されない、ナノスケール・アーキテクチャを利用することができる。プロセッサは、計算処理ユニットの組合せとして実装されてもよい。本明細書では、コンポーネントの動作および機能に関連する「ストア」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」、および実質的に任意のその他の情報格納コンポーネントなどの用語は、「メモリ・コンポーネント」、「メモリ」内に具現化された実体、またはメモリを含んでいるコンポーネントを指すために使用される。本明細書に記載されたメモリまたはメモリ・コンポーネントあるいはその両方が、揮発性メモリまたは不揮発性メモリのいずれかであることができ、あるいは揮発性メモリおよび不揮発性メモリの両方を含むことができるということが、理解されるべきである。不揮発性メモリの例としては、読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ（ＲＡＭ）（例えば、強誘電体ＲＡＭ（ＦｅＲＡＭ））が挙げられるが、これらに限定されない。揮発性メモリは、例えば外部キャッシュ・メモリとして機能できる、ＲＡＭを含むことができる。例えばＲＡＭは、シンクロナスＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブル・データ・レートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、シンクリンクＤＲＡＭ（ＳＬＤＲＡＭ）、ダイレクト・ラムバスＲＡＭ（ＤＲＲＡＭ）、ダイレクト・ラムバス・ダイナミックＲＡＭ（ＤＲＤＲＡＭ）、およびラムバス・ダイナミックＲＡＭ（ＲＤＲＡＭ：Rambus dynamic RAM）などの、ただしこれらに限定されない、多くの形態で利用可能である。さらに、本明細書において開示されたシステムまたはコンピュータ実装方法のメモリ・コンポーネントは、これらおよび任意のその他の適切な種類のメモリを含むが、これらに限定されない、メモリを含むよう意図されている。
【００９６】
前述した内容は、システム、コンピュータ・プログラム製品、およびコンピュータ実装方法の単なる例を含んでいる。当然ながら、本発明を説明する目的で、コンポーネント、製品、またはコンピュータ実装方法、あるいはその組合せの考えられるすべての組合せについて説明することは不可能であるが、当業者は、本発明の多くのその他の組合せおよび並べ替えが可能であるということを認識できる。さらに、「含む」、「有する」、「所有する」などの用語が、発明を実施するための形態、特許請求の範囲、付録、および図面において使用される範囲では、それらの用語は、「備えている」が特許請求における暫定的な用語として使用されるときに解釈されるような、用語「備えている」と同様の方法で、包含的であるよう意図されている。本発明のさまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に制限されない。本発明の範囲を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかである。本明細書で使用された用語は、本発明の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本発明を理解できるようにするために選択されている。
【図１】
2020527794.tif 000003
【図２】
2020527794.tif 000004
【図３】
2020527794.tif 000005
【図４】
2020527794.tif 000006
【図５】
2020527794.tif 000007
【図６】
2020527794.tif 000008
【図７】
2020527794.tif 000009
【図８】
2020527794.tif 000010
【図９】
2020527794.tif 000011
【図１０】
2020527794.tif 000012
【図１１】
2020527794.tif 000013
【図１２】
2020527794.tif 000014
【図１３】
2020527794.tif 000015
【国際調査報告】
2020527794.tif 000016
2020527794.tif 000017