(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-05-14
(54)【発明の名称】セキュアなデータ分析
(51)【国際特許分類】
G06F 21/62 20130101AFI20240507BHJP
【FI】
G06F21/62 345
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023562496
(86)(22)【出願日】2022-04-21
(85)【翻訳文提出日】2023-10-11
(86)【国際出願番号】 CN2022088195
(87)【国際公開番号】W WO2022233236
(87)【国際公開日】2022-11-10
(32)【優先日】2021-05-04
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】バニパル、インダービル サイ
(72)【発明者】
【氏名】クワトラ、シカール
(72)【発明者】
【氏名】フォアマン、パーク
(72)【発明者】
【氏名】マイルス、キャレブ
(57)【要約】
初期データセットの機密データ・フィールドおよびデータセットの機密データ・フィールドと他のデータ・フィールドとの間のマッピングを識別することであって、分析処理が、初期データセットに対して実施されることになる、識別することと、次いで、分析処理の実施時に使用されることになる、初期データセットのデータ・フィールドの予想に基づいて、および識別された機密データ・フィールドに基づいて、機密データ・フィールドにマスクしてマスク済みデータセットを生み出すための初期データセットへのマスク方法を選択して適用することと、マスク済みデータセットを分析処理のリクエストと共に分析提供者に提供し、これに応答して、分析処理を実施するように構成された、マスク済みデータセットに基づいて生成された、生成済み分析機能を受け取ることと、初期データセットに対し分析処理を実施するために、初期データセットに対する生成済み分析機能を起動することと、を行うプロセスを介してセキュアなデータ分析が提供される。
【特許請求の範囲】
【請求項1】
初期データセットの機密データ・フィールドおよび前記データセットの前記機密データ・フィールドと他のデータ・フィールドとの間のマッピングを識別することであって、分析処理が、前記初期データセットに対して実施されることになる、前記識別することと、
前記初期データセットに対する前記分析処理の実施時に使用されることになる、前記初期データセットのデータ・フィールドの予想に基づいて、および前記識別された機密データ・フィールドに基づいて、前記初期データセットの前記機密データ・フィールドにマスクしてマスク済みデータセットを生み出すための前記初期データセットへのマスク方法を選択して適用することと、
前記マスク済みデータセットを前記分析処理のリクエストと共に分析提供者に提供し、前記提供に応答して、前記初期データセットに対する前記分析処理を実施するように構成された、前記マスク済みデータセットに基づいて生成された、生成済み分析機能を受け取ることと、
前記初期データセットに対する前記分析処理を実施するために、前記初期データセットに対し前記生成済み分析機能を起動することと
を含む、コンピュータ実装方法。
【請求項2】
前記生成済み分析機能は、関数型プログラミングで書かれたロジックを含み、前記生成済み分析機能を前記起動することが、前記分析処理を実施するために前記関数型プログラミングを実行することを含む、請求項1に記載の方法。
【請求項3】
前記機密データ・フィールドおよびマッピングを前記識別することは、前記初期データセットの候補データ・フィールドのリストを生成して、前記初期データセットの所有者に推奨することを含み、候補データ・フィールドの前記リストは、前記識別された機密データ・フィールドの最終判定のために前記初期データセットの前記所有者によって変更される、請求項1に記載の方法。
【請求項4】
前記生成して推奨することは、
前記分析処理の要件についての指示を機械学習モデルに入力することであって、前記機械学習モデルが、分析要件および前記分析要件に対応するデータ・フィールド使用についての知識に基づいて訓練される、前記入力することと、
前記分析処理で使用されることが予想される前記分析処理の要件についての前記指示に基づいて、前記初期データセットのデータ・フィールドの予測および識別を、前記機械学習モデルの出力として受け取ることであって、前記識別された機密データ・フィールドが、前記機械学習モデルの前記出力に少なくとも部分的に基づいて識別される、前記受け取ることと
を含む、請求項3に記載の方法。
【請求項5】
前記選択して適用することは、前記機密データ・フィールドと前記他のデータ・フィールドとの間の前記マッピングを変更することを含むマスク方法を選択して適用する、請求項1に記載の方法。
【請求項6】
前記マッピングを前記変更することは、(i)前記機密データ・フィールドのうちの少なくとも1つの機密データ・フィールドから、前記初期データセットの他の任意のデータ・フィールドへの、前記機密データ・フィールドが有するいずれかのマッピングを除去することと、(ii)前記機密データ・フィールドと前記他のデータ・フィールドとの間の関係を無作為化するために、前記マッピングを無作為化することとから成る群から選択された少なくとも1つを含む、請求項5に記載の方法。
【請求項7】
前記選択して適用することは、前記識別された機密データ・フィールドのうちの少なくともいくつかの機密データ・フィールドのデータを無作為化することを含むマスク方法を選択して適用する、請求項1に記載の方法。
【請求項8】
前記選択して適用することは、前記機密データ・フィールドのデータを準同形的に暗号化することを含むマスク方法を選択して適用し、前記準同形的に暗号化することは、前記初期データセットのデータ・レコードの対応する人々を一意に識別することなく、前記機密データ・フィールドと前記他のデータ・フィールドとの間のマッピングの参照整合性を維持する、請求項1に記載の方法。
【請求項9】
前記選択されたマスク方法は、(i)前記初期データセットに対する分析処理のために前記生成済み分析機能を使用するときの、前記マスク済みデータセットに基づいて生成された前記生成済み分析機能の正確度を維持することと、(ii)前記マスク方法を明らかにするための前記マスク済みデータセットの逆行分析可能性を最小化することとを行いつつ、前記初期データセットのデータ・レコードの対応する人々を一意に識別する情報にマスクするために選択される、請求項1に記載の方法。
【請求項10】
前記初期データセットは、アプリケーション・プログラミング・インターフェース(API)を同様にホストするクラウド・コンピューティング環境上でホストされ、前記マスク方法を前記選択して適用すること、前記マスク済みデータセットを前記提供し前記生成済み分析機能を前記受け取ること、および前記生成済み分析機能を前記起動することが、前記初期データセットの前記所有者による前記APIの起動に基づいて前記クラウド・コンピューティング環境によって実施される、請求項1に記載の方法。
【請求項11】
前記機密データ・フィールドは、前記初期データセットのデータ・レコードの対応する人々を一意に識別するデータ・フィールドを備える、請求項1に記載の方法。
【請求項12】
前記生成済み分析機能は、暗号化形式で受け取られ、前記生成済み分析機能を前記起動することが、暗号化形式の前記分析機能を、実行用の復号形式に復号することを含む、請求項1に記載の方法。
【請求項13】
前記初期データセットのスキーマを使用して前記初期データセットの特性を識別することであって、前記特性が、前記データセットのデータ・フィールド間のマッピングおよび依存関係を含む、前記識別することをさらに含む、請求項1に記載の方法。
【請求項14】
前記マスク済みデータセットが初期データからマスクされたマスク済みデータのデータセットであることを、前記分析提供者にアラートすることをさらに含む、請求項1に記載の方法。
【請求項15】
コンピュータ・システムであって、
メモリと、
前記メモリと通信状態にあるプロセッサと
を備え、前記コンピュータ・システムは、
初期データセットの機密データ・フィールドおよび前記データセットの前記機密データ・フィールドと他のデータ・フィールドとの間のマッピングを識別することであって、分析処理が、前記初期データセットに対して実施されることになる、前記識別することと、
前記初期データセットに対する前記分析処理の実施時に使用されることになる、前記初期データセットのデータ・フィールドの予想に基づいて、および前記識別された機密データ・フィールドに基づいて、前記初期データセットの前記機密データ・フィールドにマスクしてマスク済みデータセットを生み出すための前記初期データセットへのマスク方法を選択して適用することと、
前記マスク済みデータセットを前記分析処理のリクエストと共に分析提供者に提供し、前記提供に応答して、前記初期データセットに対する前記分析処理を実施するように構成された、前記マスク済みデータセットに基づいて生成された、生成済み分析機能を受け取ることであって、前記生成済み分析機能が、関数型プログラミングで書かれたロジックを含む、前記受け取ることと、
前記初期データセットに対する前記分析処理を実施するために、前記初期データセットに対し前記生成済み分析機能を起動することであって、前記生成済み分析機能を前記起動することが、前記分析処理を実施するために前記関数型プログラミングを実行することを含む、前記起動することと
を含む方法を実施するように構成される、コンピュータ・システム。
【請求項16】
前記機密データ・フィールドおよびマッピングを前記識別することは、前記初期データセットの候補データ・フィールドのリストを生成して、前記初期データセットの所有者に推奨することを含み、候補データ・フィールドの前記リストは、前記識別された機密データ・フィールドの最終判定のために前記初期データセットの前記所有者によって変更され、前記生成して推奨することは、
前記分析処理の要件についての指示を機械学習モデルに入力することであって、前記機械学習モデルが、分析要件および前記分析要件に対応するデータ・フィールド使用についての知識に基づいて訓練される、前記入力することと、
前記分析処理で使用されることが予想される前記分析処理の要件についての前記指示に基づいて、前記初期データセットのデータ・フィールドの予測および識別を、前記機械学習モデルの出力として受け取ることであって、前記識別された機密データ・フィールドが、前記機械学習モデルの前記出力に少なくとも部分的に基づいて識別される、前記受け取ることと
を含む、請求項15に記載のコンピュータ・システム。
【請求項17】
前記選択されたマスク方法は、(i)前記初期データセットに対する分析処理のために前記生成済み分析機能を使用するときの、前記マスク済みデータセットに基づいて生成された前記生成済み分析機能の正確度を維持することと、(ii)前記マスク方法を明らかにするための前記マスク済みデータセットの逆行分析可能性を最小化することとを行いつつ、前記初期データセットのデータ・レコードの対応する人々を一意に識別する情報にマスクするために選択される、請求項15に記載のコンピュータ・システム。
【請求項18】
処理回路によって可読であり、
初期データセットの機密データ・フィールドおよび前記データセットの前記機密データ・フィールドと他のデータ・フィールドとの間のマッピングを識別することであって、分析処理が、前記初期データセットに対して実施されることになる、前記識別することと、
前記初期データセットに対する前記分析処理の実施時に使用されることになる、前記初期データセットのデータ・フィールドの予想に基づいて、および前記識別された機密データ・フィールドに基づいて、前記初期データセットの前記機密データ・フィールドにマスクしてマスク済みデータセットを生み出すための前記初期データセットへのマスク方法を選択して適用することと、
前記マスク済みデータセットを前記分析処理のリクエストと共に分析提供者に提供し、前記提供に応答して、前記初期データセットに対する前記分析処理を実施するように構成された、前記マスク済みデータセットに基づいて生成された、生成済み分析機能を受け取ることであって、前記生成済み分析機能が、関数型プログラミングで書かれたロジックを含む、前記受け取ることと、
前記初期データセットに対する前記分析処理を実施するために、前記初期データセットに対し前記生成済み分析機能を起動することであって、前記生成済み分析機能を前記起動することが、前記分析処理を実施するために前記関数型プログラミングを実行することを含む、前記起動することと
を含む方法を実施するための前記処理回路による実行のための命令を格納する、コンピュータ可読ストレージ媒体
を備える、コンピュータ・プログラム製品。
【請求項19】
前記機密データ・フィールドおよびマッピングを前記識別することは、前記初期データセットの候補データ・フィールドのリストを生成して、前記初期データセットの所有者に推奨することを含み、候補データ・フィールドの前記リストは、前記識別された機密データ・フィールドの最終判定のために前記初期データセットの前記所有者によって変更され、前記生成して推奨することは、
前記分析処理の要件についての指示を機械学習モデルに入力することであって、前記機械学習モデルが、分析要件および前記分析要件に対応するデータ・フィールド使用についての知識に基づいて訓練される、前記入力することと、
前記分析処理で使用されることが予想される前記分析処理の要件についての前記指示に基づいて、前記初期データセットのデータ・フィールドの予測および識別を、前記機械学習モデルの出力として受け取ることであって、前記識別された機密データ・フィールドが、前記機械学習モデルの前記出力に少なくとも部分的に基づいて識別される、前記受け取ることと
を含む、請求項18に記載のコンピュータ・プログラム製品。
【請求項20】
前記選択されたマスク方法は、(i)前記初期データセットに対する分析処理のために前記生成済み分析機能を使用するときの、前記マスク済みデータセットに基づいて生成された前記生成済み分析機能の正確度を維持することと、(ii)前記マスク方法を明らかにするための前記マスク済みデータセットの逆行分析可能性を最小化することとを行いつつ、前記初期データセットのデータ・レコードが対応する人々を一意に識別する情報にマスクするために選択される、請求項18に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【背景技術】
【0001】
分析提供者は、特に、ラージ・データセットといったデータから、見識および他の価値ある情報を抽出するための、データを分析する専門的知識を有する組織である。独自の分析を実施するデータ所有者もあるが、データ所有者が外部のデータ分析提供者を雇って、データ所有者のデータに対する分析を実施することが一般的である。それには従来、提供者が分析を実施するために、データ所有者がデータまたは少なくともデータへのアクセス権を分析提供者に与えることが必要である。
【発明の概要】
【0002】
先行技術の欠点が克服され、コンピュータ実装方法の提供を通じて追加の利点が提供される。方法は、分析処理が実施されることになる初期データセットの機密データ・フィールド、およびデータセットの機密データ・フィールドと他のデータ・フィールドとの間のマッピングを識別する。初期データセットに対する分析処理の実施時に使用されることになる、初期データセットのデータ・フィールドの予想に基づいて、および識別された機密データ・フィールドにさらに基づいて、方法は、初期データセットの機密データ・フィールドにマスクしてマスク済みデータセットを生み出すための初期データセットへのマスク方法を選択して適用する。方法は、マスク済みデータセットを分析処理のリクエストと共に分析提供者に提供し、提供に応答して生成済み分析機能を受け取るが、この生成済み分析機能は、初期データセットに対する分析処理を実施するように構成されたマスク済みデータセットに基づいて生成されたものである。方法はまた、初期データセットに対し生成済み分析機能を起動して、初期データセットに対する分析処理を実施する。
【0003】
さらに、メモリと、メモリと通信状態にあるプロセッサとを含むコンピュータ・システムが提供され、コンピュータ・システムは、方法を実施するように構成される。方法は、分析処理が実施されることになる初期データセットの機密データ・フィールド、およびデータセットの機密データ・フィールドと他のデータ・フィールドとの間のマッピングを識別する。初期データセットに対する分析処理の実施時に使用されることになる、初期データセットのデータ・フィールドの予想に基づいて、および識別された機密データ・フィールドにさらに基づいて、方法は、初期データセットの機密データ・フィールドにマスクしてマスク済みデータセットを生み出すための初期データセットへのマスク方法を選択して適用する。方法は、マスク済みデータセットを分析処理のリクエストと共に分析提供者に提供し、提供に応答して生成済み分析機能を受け取るが、この生成済み分析機能は、初期データセットに対する分析処理を実施するように構成されたマスク済みデータセットに基づいて生成されたものである。方法はまた、初期データセットに対し生成済み分析機能を起動して、初期データセットに対する分析処理を実施する。
【0004】
さらに、処理回路によって可読であり、処理回路による実行のための命令を格納する、コンピュータ可読ストレージ媒体を含むコンピュータ・プログラム製品が、方法を実施するために提供される。方法は、分析処理が実施されることになる初期データセットの機密データ・フィールド、およびデータセットの機密データ・フィールドと他のデータ・フィールドとの間のマッピングを識別する。初期データセットに対する分析処理の実施時に使用されることになる、初期データセットのデータ・フィールドの予想に基づいて、および識別された機密データ・フィールドにさらに基づいて、方法は、初期データセットの機密データ・フィールドにマスクしてマスク済みデータセットを生み出すための初期データセットへのマスク方法を選択して適用する。方法は、マスク済みデータセットを分析処理のリクエストと共に分析提供者に提供し、提供に応答して生成済み分析機能を受け取るが、この生成済み分析機能は、初期データセットに対する分析処理を実施するように構成されたマスク済みデータセットに基づいて生成されたものである。方法はまた、初期データセットに対し生成済み分析機能を起動して、初期データセットに対する分析処理を実施する。
【0005】
本明細書で説明される概念を通じて追加の特徴および利点が実現される。
【0006】
本明細書で説明される態様が具体的に指摘され、本明細書の結論における特許請求の範囲において例として明確に特許請求される。本開示の前述および他の目的、特徴、および利点は、添付の図面と併用して行われる以下の詳細な説明から明らかである。
【図面の簡単な説明】
【0007】
【
図1】本明細書で説明される態様を組み込み、使用するための環境の例の図である。
【
図4】本明細書で説明される態様を組み込み、使用するための環境の別の例の図である。
【
図5】本明細書で説明される態様による、セキュアなデータ分析のための方法の例の図である。
【
図6】本明細書で説明される態様を組み込むこと、もしくは使用すること、またはその両方を行うための、コンピュータ・システムおよび関連付けられたデバイスの一例の図である。
【
図7】本発明の実施形態によるクラウド・コンピューティング環境の図である。
【
図8】本発明の実施形態による抽象化モデル層の図である。
【発明を実施するための形態】
【0008】
セキュアなデータ分析のためのアプローチが本明細書で説明される。例えばデータ所有者または提供者といった、別のエンティティによって保持または制御されるデータセットに対する分析を、外部の分析提供者(AP:analytics provider)が実施する契約を結ぶとき、懸念が生じることがある。典型的には、APは、データセットを無差別に分析する権限を有することになり、そのようなデータセットは、機密データを収めた大企業データセットである場合もあり、そうであることが多い。データセットは、機密の個人情報、個人的に識別する情報、個人的な識別情報、個人的な識別可能情報、個人情報、もしくは個人データ、またはそれらの組合せとも呼ばれる、例えば個人的に識別可能な情報といった、プライベート/機密情報を収めることがあり、これらは、典型的には、「PII」または「SPI」と短縮されてもよい。データが関係するユーザまたは他のエンティティのプライベート情報へのAPのアクセスは、リスクを引き起こす。このようなユーザ/エンティティは、便宜上本明細書では「サブジェクト」または「サブジェクト・エンティティ」と呼ばれる。データへのアクセス権を取得したAPまたは別のエンティティは、例として、顧客同意の中で指定されていない第三者にプライベート情報を売ることによって、データを使用するいくつかのアクションを取ることによって、もしくはデータから他のいくつかの不正な利益を導出することによって、またはそれらの組合せによって、このアクセスを悪用することがある。
【0009】
したがって、少なくとも以下の難題が指摘される。処理されることになるデータセットのデータに反映されたサブジェクトのプライバシを維持するために、および、サブジェクトのプライベート・データに対する(データ所有者の観点からの)望ましくない見識を分析提供者が得るのを阻止するために、保護が望まれることがある。分析提供者によって実行される1つまたは複数のクエリに基づいてデータにマスクするために使用される方法に対する制御をデータセットのデータ所有者が維持することが望まれることがあり、データ所有者は、APによってデータセットに対して実施されることになる分析をリクエストした顧客である。関数型プログラミングを使用して前述が実施されることがさらに望まれることがあり、この場合、分析モデルの正確度が影響を受けないことと、サブジェクトのプライバシが大いに維持されることと、分析提供者への提供の前にデータセットに対して実施された任意のマスキングに関わらず、依然として分析の結論または結果が同じであることとを保証するのに役立てるために、データと共に、分析を実行および実施するためのロジックも、実データに対して実行するために顧客に提供することができる。
【0010】
図1は、本明細書で説明される態様を組み込み、使用するための環境の例を描写している。
図1を参照すると、環境100は、サブジェクト・エンティティに関係のあるデータのデータセットを保持/所有するデータ所有者102を含む。分析提供者104とは、データ分析の提供者であり、このことは、提供者がその顧客(データ所有者)からデータセットを受け取り、次いで、顧客によってリクエストされるどのような分析または見識にも従ってデータを処理するように分析処理を構築および実施可能であることを意味する。概念上、データ所有者102と分析提供者104との間にはネットワーク106があり、ネットワーク106は、ネットワーク通信のためのネットワーク・インフラストラクチャだけでなく、クラウド環境も含むことができる。いくつかの例では、データ所有者102は、オンプレミスでデータセットを保持し、ネットワーク106を介してデータセットを分析提供者104に送り、分析提供者は、独自のコンピュータ・システム上で分析を実施し、その後、結果をデータ所有者102に送り返す。他の例では、これらの交換の一部/全ての態様は、クラウド・プラットフォームを使用して容易にされる。例えば、データセットが、(ネットワーク106の一部として存在する)顧客のプライベート・クラウドに格納されてもよいし、または分析提供者104が、ネットワーク106の一部として存在するクラウド・プラットフォーム上で/クラウド・プラットフォームを使用して、分析提供者104の分析処理を実施してもよいし、またはその両方でもよい。いずれの場合でも、本明細書で分析提供者の「顧客」と呼ばれることもあるデータ所有者は、データセットへのアクセスおよびデータセットの提供を制御する。分析提供者側では、分析提供者は、データセットに対して分析を実施してほしいという、分析提供者の顧客(データ所有者)からのリクエストを受け取り、分析提供者は、分析提供者の顧客からデータセットへのアクセス権を受け取る。
【0011】
図1の構成要素は、デバイスの有線またはワイヤレス・ネットワークを形成し、デバイス間の通信は、デバイス間のデータを通信するための有線またはワイヤレス通信リンク112を介して行われる。
図1は、本明細書で説明される態様を組み込み、使用するための環境の一例にすぎず、他の多くの例が可能であり、本明細書で説明される能力と互換性のあるものとして意図される。
【0012】
本明細書で説明される態様は、セキュアなデータ分析のための多層フレームワークにおける、関係データ間のプライバシ依存関係およびキュレーション・メカニズムの動的な維持を提供する。この一部として、およびデータ所有者側において、データセット自体と、データセットの近くに保管された(スキーマ情報などの)メタデータとに基づいて、データセットの様々な特性は、自動もしくは手動またはその両方で識別することができる。このような特性は、例として、データセット内のデータ・フィールドの特性、ならびに、データ・フィールド間のマッピングおよび依存関係を含むことができる。データ・フィールドは、データセットに反映されたサブジェクトのために保管されたデータ・ポイントのカテゴリに対応する。リレーショナル・データベースでは、各列または「属性」が、例えば、それぞれのデータ・フィールドに対応することもある。
【0013】
例として、データ所有者のコンピュータ・システム(データ所有者によって所有されるか、またはデータ所有者に代わって動作するもの)は、機密データ・フィールド、すなわち機密/プライベート・データを収めたフィールドを識別することができる。例えば、(i)これらのフィールドの実際のデータ(例えば社会保障番号)にマスクすること、もしくは(ii)機密フィールドと、サブジェクト・エンティティ(例えばユーザ)の任意の個人識別子(ID)との間の任意のマッピングを匿名化/変更すること、またはその両方など、機密データ・フィールドの態様にマスクすることが望まれることもある。これに関して、マッピングおよび依存関係は、特定のサブジェクト・エンティティに対応するデータを一緒にリンクするために、データ・フィールド間に存在することが可能である。データを匿名化するのに役立てるための1つのオプションは、マッピングが、エンティティのデータのうちの全てをこの特定のエンティティにもはや相関させないように、データセット内で識別されたサブジェクト・エンティティについてのデータのうちの全てを一緒に相関させるマッピングを変更することである。変更の例は、マッピングを再マッピングまたは削除することである。追加または代替として、特に、マッピングへの変更が、サブジェクト・エンティティから1つまたは複数の属性を匿名化または非相関させるのに十分でない場合、実際のサブジェクト・エンティティ属性データ(ユーザ名、社会保障番号(SSN)、住所、電話番号、等)がマスクされてもよい。
【0014】
データ所有者側では、システムはまた、非機密フィールド、すなわち、特定のエンティティへの関連がマスクされることが望まれるデータを収めていないフィールドを、識別可能である。これに関して、非機密データ・フィールドへの、ユーザIDなどのサブジェクト・エンティティ識別子の任意の相関関係を維持することが受入れ可能な場合もある。フィールドが機密であるか非機密であるかが、コンテキストによって決まることもある。例えば、会社の米国の全ての顧客のデータセット内において、発送先国についてのデータ・フィールドは非機密とされてもよいが、なぜなら、データセット内に表現された各人はマッチした発送先国(米国)を有し、それは任意の特定の顧客を識別していないためである。対照的に、いくつかの異なる国のうちのそれぞれから、ただ1人の個人を反映したデータセットを扱うとき、発送先国は、機密とされてもよい。
【0015】
機密および非機密データ・フィールド、ならびにこれらの間のマッピングおよび依存関係を識別することの一部として、システムは、データセットのどのデータ・フィールドが機密であるか、もしくはどれが非機密であるか、またはその両方についての推奨を、データ所有者に提供することができる。これは、機密であるかもしくはマスクされるべきであるかまたはその両方である、候補データ・フィールドのリストを推奨することと共に行うことができる。推奨リストは、この特定のデータセットにとって、どのデータ・フィールドが機密とされるべきかについての最終判定のために、データ所有者が変更し、さらにカスタマイズすることができる。例えば、データ所有者は、リストからの機密フィールドの追加もしくは除去またはその両方を行うことができる。しばしば、データ所有者は、分析に対する刺激、現在および過去の分析要件、ならびに、履歴上、どのデータ・フィールドがマスクされてきたか、またはマスクされるべきかを、適宜理解することになる。これは、どのデータ・フィールドが機密とみなされ、データ所有者が望む特定の分析を実施するためにマスクされるべきかを最終判定するのに有益な場合がある。
【0016】
いくつかの例では、分析要件を表す情報は、米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシンズ・コーポレーションによって供給されているディスカバリ・プラットフォームなどの、人工知能(AI)によるインテリジェント・サーチおよびテキスト分析プラットフォームへの入力のために、(エクステンシブル・マークアップ・ランゲージ(XML)またはJavaScriptオブジェクト表記法(JSON)フォーマットなどの)特定のフォーマットで格納することができる。過去の分析と、対応するフィールドとの間の関係を予測するようにモデルを訓練するために使用される現在および過去の使用法に基づいて、ルール・ベースのカスタム機械学習/自然言語処理モデルを確立することができるが、上記対応するフィールドは、分析処理を実施するためにこれらのフィールドのデータへのアクセスを分析が必要とすることが予想されるゆえに、マスクされるべきものを含む。個々のデータ保持者に固有のモデルを訓練することができるか、または異なるデータ保持者の集団からの情報に基づく集約モデルを訓練することができる。モデルは、所与のデータセット内のどのデータ・フィールドにマスクするべきか、およびどれを維持するべきかについての提案/推奨を提供するように、過去の分析要件およびマスキングに基づいて訓練することができる。
【0017】
データ・フィールドの機密性、およびデータ・フィールド間に存在するマッピングを識別することに加えて、データ所有者側のシステムはさらに、データセットの機密データ・フィールドにマスクしてマスク済みデータセットを生み出すために適用されることになるマスク方法を理解する。機密データを収めた上記で論じられたデータセットは、本明細書では、「初期」データセットと呼ばれる。本明細書で説明される態様によれば、初期データセットの機密フィールドにマスクして、本明細書で「マスク済み」データセットと呼ばれる別のデータセットを生み出すために、少なくとも1つのマスク方法が選択され、この初期データセットに適用される。データ所有者は、マスク済みデータセットを分析提供者に提供することができ、分析提供者は、これを使用して、リクエストされた分析を実施するように構成された分析機能を構築することができる。分析提供者はしばしば、データに対する所望の分析を実施する(いくつかの機能/クエリからなることが可能な)正確な分析機能を生成するために、データのセットを必要とする。データ所有者は、初期データセットの機密データを明らかにすることなく、適切な分析機能を生成するために、初期データセットではなくマスク済みデータセットを提供することによって、分析提供者にデータを与える。生成済み分析機能は、次いで、本当の(マスクされていない)データを収めた初期データセットに対して起動するために、データ所有者に対して利用可能とすることができ、したがって、分析が実行されることが意図される実データに固有のリクエストされた分析結果を配信する。
【0018】
したがって、マスク方法は、分析提供者のデータ所有者/顧客によって、選択/指定することができる。顧客は、生成されることになる分析機能、または、これらの分析機能を生成する際にどのデータ/データ・フィールドへのアクセスを分析提供者が必要とするかについて知らないが、過去の経験および機械学習が、実行され得る特定の機能、もしくは、分析機能を生成するために必要とされ得るデータ・フィールド、またはその両方を通知することができ、したがって、どのフィールドが渡されるもしくはマスクされるまたはその両方が行われる必要があり得るかについて、通知することができる。いくつかの例では、マスク方法の選択は、分析提供者がデータセット上で実行することになる分析/機能のタイプの予測、上記で論じられたように識別された特定の機密もしくは非機密またはその両方のデータ・フィールド、または、(特に顧客によってリクエストされた分析によって通知された)分析要件と、マスクされるべき対応するデータ・フィールドとの間の現在/過去の関係についてのこの理解、またはそれらの組合せに部分的に基づく。したがって、顧客によるマスク方法の選択および適用は、(i)どのデータ・フィールドが機密として識別されるか、および(ii)初期データセットのどのデータ・フィールドが、リクエストされた分析を実施する際に究極的に使用されるかという(顧客の側の)予想に、少なくとも部分的に基づくことが可能である。使用されるために実行されるいずれかのデータ・フィールドが機密の場合、これらをマスクすることができる。初期データセットの他の機密データ・フィールドは、同様にマスクされるか、マスク済みデータセットから完全に除外することができる。
【0019】
データ・フィールドとサブジェクト・エンティティ(例えばユーザ)IDとの間のデータもしくはマッピングまたはその両方にマスクするための特定のマスク方法は、いくつかの例ではハッシュ関数であって、データ所有者には秘密のままであり、このことは、マスクされたもの、もしくはそれがマスクされた方法、またはその両方を、分析提供者が知らないことを意味する。機密/非機密属性、およびどの属性が分析機能を生成する際に使用されることが予想されるかについての、上記の識別情報に基づいて、システムは、マスク済みデータセットの一部として分析提供者に送られる予定の初期データセットの機密データ・フィールドにマスクすることができる。データ・フィールドにマスクすることは、(i)このデータ・フィールド/属性についてのサブジェクト・エンティティ・データを変更すること(削除、編集、拡大、無作為化すること等を包含する)、または、(ii)データセットのこのデータ・フィールドと、1つもしくは複数の他のデータ・フィールドとの間の1つもしくは複数のマッピングを変更すること(削除/除去/再マッピングすること)、またはその両方を指す。いくつかの例では、マスキングは、各エンティティの属性にマスクすることによって、言い換えれば、これらの属性値を変更すること(例えば、9桁の社会保障番号を「111-11-1111」もしくは「XXX-XX-XXXX」であるように変更すること)、または、等式を使用して、フィールドの1つのセットからフィールドの異なるセットへの、データ・フィールドが有する任意のマッピングおよび関係をランダムに再マッピングすること、またはその両方によって、データ・フィールドにマスクする。マッピングを変更する他の例では、マッピングは、属性間の関連がもはや存在しないように、除去/削除される。
【0020】
データ所有者が使用する特定のマスク方法は要望通りに変更可能であることに留意されたい。データ所有者は、同じデータセットであるか異なるデータセットであるかに関わらず、データ所有者がAPによる分析をリクエストするたびに、異なるマスク方法を選択することができる。新しいもしくは異なるまたはその両方の無作為化およびマッピング戦略は、データ所有者の無作為化された入力をAPが経時的に理解するのを阻止し、したがって、エンティティのプライバシをさらに保証するために使用することができる。
【0021】
具体例として、初期データセットの例を描写した
図2を最初に参照する。この例におけるデータセットの例は、非常に基本的なものであり、3つの異なるサブジェクト・エンティティに関する3つのレコードだけが示されており、レコードのそれぞれに関する5つのデータ・フィールド/属性だけが示されている。各レコードは、名、姓、出生データ、識別番号、およびロケールを含む。識別番号は、サブジェクト・エンティティのロケール、この実例では国、ごとに割り当てられた一意の番号であり、このロケールにおけるサブジェクト・エンティティを一意に識別するものである。この基本的な例では、識別番号データ・フィールドだけが機密と考えられていることを想定する。
【0022】
図3は、
図2からの初期データセットであるが、機密データ・フィールドのデータにマスクするマスク方法が適用され、マスク方法が適用された再マッピングを(概念的に)示した、マスク済みデータセットの例を描写している。マスク方法は、ここでは、3つのサブジェクト・エンティティのそれぞれに関する識別番号にマスクしており、それぞれの識別番号を、同様にフォーマットされたランダムな数字/文字で置き換えている。追加として、再マッピングが、データ・フィールドのうちのいくつかを再マッピングした。Tobias Baumerエンティティに関する名および姓データ・フィールドは、John Smithエンティティの出生日、マスク済みの識別番号、およびロケールに再マッピングされたものである。John Smithエンティティに関する名および姓フィールドは、Ryan Jamesエンティティの出生データ、マスク済みの識別番号、およびロケールに再マッピングされたものであり、Ryan Jamesエンティティの名および姓フィールドは、Tobias Baumerエンティティの出生日、識別番号、およびロケールに再マッピングされたものである。名、姓、出生日、およびロケールは、この例では機密と考えられておらず、この例のデータ所有者は、各エンティティの識別番号/出生日/ロケール属性と、これらのエンティティの名/姓属性との間のマッピングを変更した再マッピングと組み合わせて、識別番号属性のマスキングによって、初期データセットが十分に匿名化されたことに納得する。この例では、マスク方法は、エンティティ・データ(識別番号データ・フィールド)を変更すること、およびいくつかのデータ・フィールドを他のデータ・フィールドに再マッピングすることの両方を含む。実際には、マスク方法は、データ所有者が望むのと同じくらい複雑とすることも簡単とすることもできる。
【0023】
マスク済みデータセットが生み出されると、マスク済みデータセットは、次いで、分析処理のリクエストと共に分析提供者に提供される。送られるものは、マスク済みデータセット、およびマスク方法についての情報であり、このデータセットのどのデータがマスクされ、マスクされなかったかは、APに知られておらず、マスク済みデータセット自体からも解明不可能なので、データ所有者は、初期データセットに対して実行された場合に、リクエストされた分析を実施する適切な分析機能を生成する分析専門的知識をAPが適用可能な、データを安全に伝える。再度コンピュータ・システムを利用して本明細書で論じられた態様を実施するAP側では、APシステムは、マスク済みデータセットを、これがマスクされていない実データであるかのように理解する。実際に、APは、マスク済みデータを扱っていることを完全に未認識であってもよいが、APは、場合によっては、AP側のアクターに忠告してデータを悪用しようとするのを思いとどまらせるために、データがマスクされたことをAPがアラートされることを望んでもよい。一方で、APシステムはまた、顧客の分析処理のリクエストに基づいて、特定の分析要件を理解し、この分析要件に基づいて、APは、リクエストされた分析を実施するために要求されるロジックを生成することになる。APシステムは次いで、リクエストされた分析を達成するために使用されることになる分析機能を、マスク済みデータに基づいて導出/生成する。このゴールは、データ所有者の観点から、実データ(初期データセット)に対して適切に機能する分析機能をAPが提供することである。ゴールは、マスク済みデータセットに基づいて生成されたにもかかわらず、生成された機能が初期データセットに適用されるとき、統計的なレベルで(正確度、精度、等の観点から測定された)分析出力を維持することでもよい。言い換えれば、APに提供されたデータセットが初期データセットだった場合に分析機能が生み出したはずのものと比較して、マスク済みデータセットに対して分析機能が生み出すものの観点で一貫した分析機能をAPが生成できることが望まれる。この文脈での「一貫した」は、必ずしも文字通りに同じ出力値を指すのではなく、むしろ、入力データセットを考慮した正しい分析出力を生み出すための同じビルディング・ブロックを指す。これに関して、実際の(マスクされていない)データ・フィールドに依拠しない分析機能をAPシステムが生成することを保証するのに役立てるための努力を行うことができる。
【0024】
別の態様によれば、APシステムは、マスク済みデータセットに基づいて生成され、顧客によって保持される初期データセットに対する所望の分析処理を実施するように構成された、生成済み分析機能を顧客システムに伝え、顧客の分析処理のリクエストに応答して分析処理を実施する。したがって、APがアクセス権を有していない初期データセットに対してAPの側でAPが分析機能を実行するのではなく、APは、分析機能をデータ所有者に渡す。生成された機能は、関数型プログラミング・パラダイムに従うことが可能であり、生成された機能は、初期データセットに対する分析処理を実施するために初期データセットに対して起動および実行することのできる関数型プログラミングで書かれたロジック(複数の関数でもよい)として生成することができる。言い換えれば、生成された機能のロジックは、初期データセットに対して顧客が実行するために、顧客に渡されるか利用可能にすることができ、顧客が初期データセットを保持し、したがって実データを見せるのを避けることを可能にする。これは、APがAP側で実データに対して関数を実行し、データ結果をデータ所有者に送り返す従来の状況とは対照的なものである。
【0025】
いくつかの例では、AP側が、暗号化形式の生成済み機能を渡す。次いで顧客側が、顧客の初期データセットに対して実行されるようにこの生成済み機能を復号して準備をすることができる。分析機能は本質的に独自のものとすることが可能なので、APは、復号形式のロジックが顧客によって閲覧可能でないことを望むことがある。これらの実施形態では、セキュアなエンジンがソフトウェア・モジュールとしてAPによって提供され、顧客に対して利用可能にされる。セキュアなエンジンは、生成された機能を取り入れ、これが顧客によって閲覧可能でないように、復号されたロジックをセキュアに保ちつつ、復号を実施することができる。顧客は、次いで、エンジンを使用して、顧客の初期データセットに対して関数(実用的には、数十または数百の関数型プログラミング関数でもよい)を実行し、分析処理の結果を取得することができる。
【0026】
本明細書で説明される態様を示すために、イベントのシーケンスの例のさらなる詳細が提供される。データ所有者が保管しているデータに対して分析を分析提供者が実施することをデータ所有者が望む状況では、データ所有者のコンピュータ・システムは、分析されることになるデータセットの一連の/いくつかのデータ・フィールドと、データ・フィールドのこのセットの機密データ・フィールドのリストと、データ・フィールドのこのセットの一意に識別したデータ・フィールドのリストとを識別する。一意に識別することによって、個人など、固有のサブジェクト・エンティティを一意に識別するデータをフィールドが保持することが意図される。一意に識別するデータ・フィールドの例は、被雇用者またはユーザID、被雇用者の名前、および被雇用者の住所であり、これらは、ユーザ/人を一意に識別するために使用することができる。機密データ・フィールドの例は、社会保障番号(SSN)または納税者識別番号など、政府発行の識別番号である。機密データ・フィールド(SSNなど)はまた、一意に識別するデータ・フィールドであることもあり、逆もまた同様であるが、これは、常にあてはまるわけではない。例えば、個人についての情報は、この情報自体では個人を一意に識別不能であっても、それでも、機密情報であると考えられる。データ所有者のシステムはまた、例えば、一意に識別されたサブジェクト・エンティティに/の間でマッピングするフィールドといった、他のデータ・フィールドへの機密データ・フィールドのマッピングを識別する。最終的に、データ所有者のシステムは、初期データセットの実データに対して実施されたとき、顧客に配信して戻された分析機能の結果が正確なままであるように、機密データを無作為化/マスクすることが可能なデータ無作為化/マスク・ロジック、もしくは機密データ・フィールドと他のデータ・フィールド(機密もしくは非機密)との間の関係、またはその両方を選択し実施する。分析提供者は、データにマスクするために使用されるロジック/マスク方法はもちろん、どのデータセット・フィールドがマスクされたかを知らず、代わりに、その知識は、リクエストした顧客にある。
【0027】
マスク方法は、1つもしくは複数のフィールドのデータをマスクすることのみ、いくつかのフィールドを再マッピングすることのみ、両方の組合せ、または、データセットのデータを匿名化/マスクするための任意の他の変更、またはそれらの組合せを含むことができるということが指摘される。追加または代替として、マスク済みデータセットは、関係/マッピングの参照整合性を維持するが、個人情報を明らかにしない、データ・フィールドの準同形的に暗号化されたバージョンを含むことができる。いずれの場合でも、APに送られるマスク済みデータセットは、データ所有者がAPから生成済み分析機能を受け取ったときに、データ・フィールド/列にまたがる関係がデータ所有者側で維持され、回復可能であるような方式で、暗号化/無作為化/マスクされてもよい。
【0028】
関数型プログラミング・パラダイムは、データ所有者とAPとの間の交換の様々な態様で使用可能である。一実施形態は、データ所有者による起動のためのアプリケーション・プログラミング・インターフェース(API)のコレクション、およびAPによる起動のためのAPIのコレクションを提供する。データ所有者側には、例として、API提供者システムにマスク済みデータを渡すこと、API提供者に渡されたデータ、もしくはAPI提供者が既にアクセス可能なデータ、またはその両方を無作為化/マスクするための無作為化ロジックまたは他のマスク動作をコール/選択/指定/起動すること、または、データセットに対する生成済み分析機能を取り出すこともしくは起動することを、データ所有者が行うためのAPIがあってもよい。これに関して、マスキング/無作為化は、マスキング/無作為化のために採用される関数型プログラミングベースのロジックのスニペットを用いて達成することができ、これらは、適用されたマスク方法をAPが知るのを阻止するように変更することができる。AP側には、例として、データセットを取り出すこと、分析機能を生成するためにデータセットに対して処理を起動すること、または生成済み分析機能/ロジックを提供することを、APが行うためのAPIがあってもよい。上述のように、生成済み分析機能は、API提供者システム上でまたは他の場所で、起動のためにAPIを介してデータ所有者に渡された関数型プログラミングで書かれた生成済みロジックとすることが可能である。
【0029】
図4は、本明細書で説明される態様を組み込み、使用するための環境の別の例を描写している。この例では、(1つまたは複数のプライベート/パブリック・クラウドを包含し得る)クラウド提供者400が、API410をホストし、データ所有者402および分析提供者404に見せる。上述のようなAPIは、データ所有者402と分析提供者404との間の少なくとも通信/データの受け渡しを容易にする。この特定の例では、クラウド提供者400は、データセット414、416および分析エンジン420をホストする信頼できるクラウド(データ所有者のプライベート・クラウドなど)である。データ所有者の初期データセット414は、クラウド400上でホストされ、データ所有者は、マスク方法を初期データセット414に適用することによって初期データセットをマスク済みデータセット416に加工するマスク方法を選択して適用するために、API400のうちの1つまたは複数を起動する。データ所有者402はまた、APIを介して、または別個のチャネルを通じて、分析提供者の分析処理をリクエストする。分析提供者404は、分析機能を生成する際にマスク済みデータセット416にアクセスする。分析機能を生成するための処理は、クラウド提供者によって、もしくは分析提供者404によって、またはその両方によって、部分的または全面的に実施することができる。いくつかの例では、分析提供者404は、マスク済みデータセット416のコピーまたはその一部を分析提供者のローカル・システムに引き抜き、完全にローカル・システム側で分析機能を生成する。他の例では、分析提供者404は、クラウド提供者が様々な処理を実施してクラウド上で分析機能を生成するために、API400のうちの1つまたは複数を起動する。さらなる例では、生成は、2つの組合せである。
【0030】
いずれの場合でも、生成済み分析機能は、データ所有者402によって「受け取られる」-この例では、機能は、初期データセット414に対して実行するためにデータ所有者によってアクセス/使用するために利用可能にされる。分析エンジン420は、初期データセットに対する分析機能の実行を容易にし、したがって、生成済み分析機能のロジックを実行するために必要なソフトウェアを含んでいる。生成済み機能は、データ所有者402が生成済み機能のロジックを見ることができず、分析エンジン420が機能を実行して初期データセット414に対し分析を実施できるように、必要に応じて、データ所有者402から隠された状態に保たれること、もしくは暗号化されること、またはその両方が可能である。
【0031】
図4の特定の例では、クラウドのサービス提供者が顧客データ(例えば初期データセット)を保持し、顧客は、マスク済みデータセットを提供するために初期データセットに対しマスク方法を起動する。サービス提供者は次いで、マスク済みデータセットをAPに提供するように分析提供者と共に作業する。サービス提供者は、例として、データセットを分析提供者に送ること、または、データがクラウド提供者から分析提供者に出荷されなかったとしても、分析提供者にデータへのアクセスを提供することが可能である。分析提供者は、(サービス提供者のクラウド上でまたは他の場所で)分析機能を生成し、サービス提供者は、分析機能をその顧客402に発送するか、代替として、サービス提供者がホストする初期データセットに分析機能を適用し、次いで、分析結果をデータ所有者であるサービス提供者の顧客に提供する。
【0032】
代替的な実施形態では、およびセキュリティまたは他の理由のために、
図4にクラウド上で実施されるように説明されたいくつかの態様は、代わりに、データ所有者402または分析提供者404によって実施することができる。一例として、初期データセットはクラウド上でホストされず、代わりに、マスク済みデータセットが、データ所有者のシステム上で生成され、クラウド提供者400にアップロードされる。追加または代替として、分析提供者404は、マスク済みデータセット416をダウンロードし、分析提供者404のシステム上で分析機能を生成し、次いで、機能をクラウド400にアップロードすることができる。追加または代替として、生成済み分析機能は、クラウド上ではなく、データ所有者によって収納された初期データセットに対する実行のために、データ所有者システムに引き抜くことができる。
【0033】
本明細書で説明される態様のさらに別の実施形態は以下の通りであり、これは、任意選択として、上述の態様と組み合わせることができる。すなわち、データ所有者は、実データセットを基にしておよび手本にして偽造データセットを生成し、分析提供者が偽造データセットの構造およびスキーマを理解できるように偽造データセットを分析提供者に送る。データ所有者は、分析提供者が偽造データセットに対して固有の分析(分析の「要件」としてA1およびA2)を実施することをリクエストする。分析会社はA1およびA2を理解し、これに基づいて、分析のためにアクセスされることが必要な全フィールド(例えば、f1~f10)からデータ・フィールド(例えば、f1、f2、f3、f4、およびf5)のリスト、ならびに、分析を実施する際にデータセット上で実施されることになる1つまたは複数のデータセット・クエリQを、引き換えにAPIコールを通じてデータ所有者に送る。これは、実質的に、(従来行われるはずのようにデータセット全体を渡すのではなく)分析提供者にどのデータを後で渡すべきかにデータ所有者が焦点を合わせることができるように、リクエストされた分析を考慮してどのフィールドに関心があるかをデータ所有者に告げる。これは、また、例えば、どのフィールドがA1に必要なのか、どのフィールドがA2に必要なのかなど、どのデータ・フィールドがどのリクエストされた分析に必要なのかを、データ所有者が分析提供者から学習するようになるので、訓練のために使用可能である。データ所有者は、分析A1またはA2のためにAPと対話するとき、これらのフィールドだけを含めるように、将来のリクエストを、先を見越して限定するように学習することが可能である。
【0034】
データ所有者は、APIコールを通じてAPから情報を受け取り、次いで、どのデータ・フィールドが必要であるかを通知するためにAPが提供したものに基づいて、実データセット、特にその関連部分のみを、切り取り、マスク/無作為化して、Qの最終的な結論が同じままとなるようにマスク済みデータセットにすることができる。言い換えれば、クエリ結果は、最終的な結果分析またはパターンについて関知しないままである。データ所有者は、マスク済みデータセットをAPに送り、APは、マスク済みデータセットを受け取り、マスク済みデータセットを使用して、データ所有顧客が実データセットに対して利用するための分析機能を生成する。例として、ロジックは、データ所有者/顧客自身のシステム上、またはデータ所有者のプライベート・クラウドなどのクラウド環境上で実行するために、データ所有者/顧客に送られる。初期/実データセットに対する最終的な分析は、次いで、(例として)データ所有者のプライベート・クラウド上で実施されるが、分析提供者によって採用される分析方法を保護するために、分析方法およびロジックは保護されたままであり、顧客によって直接的にアクセス可能ではない。一方で、分析提供者は、分析提供者が有するマスク済みデータセットを削除することができ、データ所有者は、生成済み分析機能に関するどのデータも削除することができる。データまたは機能のこの保持/削除は、データ所有者と分析提供者との間で施行中のサービス契約によって規定することができる。
【0035】
図5は、本明細書で説明される態様による、セキュアなデータ分析のためのプロセスの例を描写している。いくつかの例では、プロセスは、本明細書で説明されるものなど、1つまたは複数のコンピュータ・システムによって実施され、コンピュータ・システムは、データ所有者の1つもしくは複数のコンピュータ・システム、1つもしくは複数のクラウド・サーバ、または1つもしくは複数の他のコンピュータ・システム、またはそれらの組合せを含んでもよい。
【0036】
プロセスは、分析処理が実施されることになる初期データセットの特性を識別すること(502)を含む。特性の例は、初期データセットの機密もしくは非機密またはその両方のデータ・フィールド、データセットの機密データ・フィールドと(機密または非機密の)他のデータ・フィールドとの間のマッピングもしくは依存関係またはその両方、およびデータセットの他の任意の特性を含むことができる。初期データセットは、元または「実」データであり、これらのうちのいくつかは、機密のもの、もしくはデータセット内で表されるサブジェクト・エンティティを一意に識別するもの、またはその両方でもよい。いくつかの機密データ・フィールドは、初期データセットのデータ・レコードの対応する固有の人々を同様に一意に識別するデータ・フィールドを含むことができる。いくつかの例では、初期データセットの特性は、例えば、データセットのスキーマといった、初期データセットについてのメタデータによって、少なくとも部分的に通知することができる。
【0037】
特定の例では、初期データセットの機密のまたは他のデータ・フィールドおよびマッピングの識別は、システムが初期データセットの候補データ・フィールドのリストを生成し、初期データセットの所有者に推奨することを含み、候補データ・フィールドのリストは、機密と考えるための候補データ・フィールド、もしくは非機密と考えるための候補データ・フィールド、またはその両方を指示する。リストは、どのデータ・フィールドが機密データ・フィールドとして識別されるかについての最終判定のために、初期データセットの所有者によって変更されてもよい。
【0038】
いくつかの実施形態では、機密データ・フィールド、もしくは実施されることになる分析処理において使用されることが予想されるデータ・フィールド、またはその両方についての識別情報は、データセットの特性および(データ所有者がどの分析をリクエストするかによって通知される)分析要件の指示を、リクエストされた分析処理においてどのデータ・フィールドが使用され得るかを予測するように訓練された機械学習モデルに入力することによって、支援することができる。機械学習モデルは、分析提供者によって使用されることになるとモデルが予測する初期データセットのデータ・フィールド、もしくは、どのデータ・フィールドが、データ所有者がマスクすることを望み得る機密データ・フィールドであるか、またはその両方についての指示を出力し、これにより、これらのフィールドを生成し、データ所有者に推奨することができる。したがって、候補データ・フィールドのリストの生成/推奨の一部として、プロセスは、分析要件およびこれらの分析要件に対応するデータ・フィールドの用途についての知識に基づいて訓練された機械学習モデルに、分析処理の要件についての指示を入力することと、次いで、分析処理において使用されることが予想される分析処理の要件についての指示に基づいた、初期データセットのデータ・フィールドの予測および識別情報を、機械学習モデルの出力として受け取ることとを含む。識別された機密データ・フィールド(マスクするべき機密データ・フィールドであるとデータ所有者が最終判定したもの)は、次いで、機械学習モデルのこの出力に少なくとも部分的に基づいて識別することができる。
【0039】
初期データセットに対する分析処理の実施時に使用されることが予想される初期データセットのデータ・フィールドを通知するのにモデルが使用されるか否かに関わらず、これは、使用されることになるデータ・フィールドの予想と、識別された機密データ・フィールドとに基づき、識別された機密データ・フィールドは、初期データセットの機密データ・フィールドにマスクしてマスク済みデータセットを生み出すために、方法が初期データセットへのマスク方法を選択して適用したものである(504)。例として、特定のマスク方法は、データ所有者によって全面的に定義もしくは指定することができ、または場合によっては、この所定の方法に従って発生するマスキングを無作為化するために、おそらくデータ所有者によってカスタマイズ/パラメータ化された所定のマスク方法から選択することができる。追加/代替として、特定のマスク方法は、可能なマスク方法のコレクションからランダムに選択することができる。マスク方法は、方法の仕様に応じて、マスクされることになる全てのデータ・フィールドに適用される単一のマスク戦略と同じくらい簡単であることも、様々な機能を様々なデータ・フィールドに適用するのと同じくらい複雑であることも可能である。単一のマスク方法は、したがって、データセットの異なるデータおよびフィールドに適用されるいくつかの複雑な機能を包含することができる。
【0040】
態様の一例では、選択して適用すること(504)は、機密データ・フィールドと他のデータ・フィールドとの間のマッピングを変更することを含むマスク方法を選択して適用することができる。これは、単一のエンティティについての様々なデータを、このエンティティについての他のデータからリンク解除し、任意選択的にこれを別のエンティティのデータに再マッピングする。一個人についての機密の健康データは、例えば、この人から関連付けが外された場合、非機密化されてもよい。機密データ・フィールドと他のデータ・フィールドとの間のマッピングを変更することは、(i)機密データ・フィールドのうちの少なくとも1つの機密データ・フィールドから、初期データセットの他の任意のデータ・フィールドへの、機密データ・フィールドが有するいずれかのマッピングを除去すること、もしくは、(ii)機密データ・フィールドと他のデータ・フィールドとの間の関係を無作為化するために、マッピングのうちの少なくともいくつかを無作為化すること、またはその両方を含むことができる。
【0041】
態様の別の例では、追加として、またはマッピングの変更に対する代替として、選択して適用すること(504)は、識別された機密データ・フィールドのうちの少なくともいくつかの機密データ・フィールドのデータを変更/無作為化することを含むマスク方法を選択して適用する。これは、データセットの1つまたは複数のエンティティの固有の属性データを変更することを含む。
【0042】
選択して適用すること(504)についての態様のさらなる別の例では、選択して適用すること(504)は、機密データ・フィールドのデータを準同形的に暗号化することを含むマスク方法を選択して適用し、準同形的に暗号化することは、機密データ・フィールドと他のデータ・フィールドとの間のマッピングの参照整合性を維持するが、初期データセットのデータ・レコードの対応するエンティティ(例えば人々)を一意に識別しない。
【0043】
初期データセットにマスク方法を適用すると、マスク済みデータセットになる。
図5のプロセスは、次いで、このマスク済みデータセットを分析処理のリクエストと共に分析提供者に提供する(506)。分析処理のリクエストは、データ所有者が具体的にリクエストしている分析を分析提供者に通知する。データ所有者は、任意選択として、マスク済みデータセットが、初期データからマスクされたマスク済みデータのデータセットであることを、分析提供者にアラートすることができる。
【0044】
分析提供者はこの時点で、実行されると入力データセットに対してリクエストされた分析を実施する分析機能を生成する。実際には、生成済み分析機能は、関数型プログラミング関数のコレクションを含むことができる。分析機能は、リクエストされた分析を実施する機能を構成するために、マスク済みデータセットに関する分析提供者の用途に部分的に基づいて、分析提供者によって生成される。データ所有者の観点からより重要なことだが、分析機能は、データ所有者によって保持される初期データセットに対して実行されると、データ所有者が初期データセットに対して実施されることを望む分析処理を実施するように構成される。データ所有者は、マスク済みデータセットの提供に応答して、分析提供者がマスク済みデータセットに基づいて生成した分析機能を受け取る(508)が、データ所有者は、この分析機能を初期のマスクされていないデータセットに対して起動することができる。プロセスは、したがって、初期データセットに対する分析処理を実施するために、初期データセットに対する生成済み分析機能を起動すること(510)を進める。分析処理は、データ所有者による使用のために、典型的には出力データの形式で、何らかの出力を提供する。分析機能の起動は、自動で、またはデータ所有者によって、トリガすることができる。
【0045】
特定の例では、生成済み分析機能は、関数型プログラミングで書かれたロジックを含み、生成済み分析機能を起動すること(510)は、初期データセットに対する分析処理を実施するために関数型プログラミングを実行することを含む。いくつかの事例では、生成済み分析機能は、暗号化形式で提供され、受け取られる。これは、セキュリティのため、もしくは分析機能の独自の性質により、またはその両方のために、望ましい場合がある。この場合、生成済み分析機能を起動することは、暗号化形式の分析機能を、実行用の復号形式に復号することを含む。いくつかの例では、これは、暗号化または非暗号化形式の分析機能と初期データセットとを入力として利用し、分析処理の結果を出力するためにデータセットに対して分析機能を実行するように構成された分析エンジンによって、支援することができる。分析エンジンは、データ所有者システムに配布された、もしくはクラウド上でホストされた、またはその両方の、セキュアなコードとすることが可能であり、入力を受け取って出力を配信するが、外部のソフトウェア/エンティティのシステムのデータ所有者など、外部のソフトウェア/エンティティが観察可能ないずれの様式でも分析エンジンの処理および機能を提示しない、「ブラック・ボックス」式に機能を実行することができる。いくつかの例では、エンジンは、APによって構築され、データ所有者システムのためのクライアント・ソフトウェアとして提供されるか、もしくは起動用にセキュアなクラウド環境で提供されるか、またはその両方である。
【0046】
どのようなマスク方法が選択されて適用されても、選択は、初期データセットに対する分析処理のために生成済み分析機能を使用するときの、マスク済みデータセットに基づいて生成された生成済み分析機能の正確度を維持することと、マスク方法を明らかにするためのマスク済みデータセットの逆行分析可能性(reverse engineerability)を最小化することとの両方を行いつつ、初期データセットのデータ・レコードの対応する人々(または他のエンティティ)を一意に識別する情報にマスクするために行うことができる。
【0047】
いくつかの実施形態では、初期データセットは、アプリケーション・プログラミング・インターフェース(API)を同様にホストするクラウド・コンピューティング環境上でホストされる。マスク方法の選択および適用、マスク済みデータセットの提供および生成済み分析機能の受け取り、もしくは生成済み分析機能の起動、またはそれらの組合せは、初期データセットの所有者によるAPIの起動に基づいて、クラウド・コンピューティング環境によって個別にまたは全て実施することができる。追加または代替として、APIは、例えば、分析機能の生成またはデータ所有者への送付/提供など、その関与の態様を実施するために、分析提供者による起動のためのインターフェースを見せることができる。いくつかの例では、データ所有者および分析提供者の両者は、本明細書で論じられた態様を実施するようにクラウド環境に命令する、クラウド環境へのパラメータ化されたAPIコールを行うことによって、プロセスの両者のそれぞれのステップを実施する。クラウド環境におけるデータのアクセス/使用に対する制御は、異なるAPIコールの使用を取り巻く特権を制御することによって達成可能である。
【0048】
様々な例が提供されているが、特許請求の範囲に記載される態様の思想から逸脱することのない変形が可能である。
【0049】
本明細書で説明されるプロセスは、1つまたは複数のコンピュータ・システムによって単独または集団で実施されてもよい。
図6は、本明細書で説明される態様を組み込むこと、もしくは使用すること、またはその両方を行うための、このようなコンピュータ・システムおよび関連付けられたデバイスの一例を描写している。コンピュータ・システムはまた、本明細書では、データ処理デバイス/システム、コンピューティング・デバイス/システム/ノード、または単純にコンピュータと呼ばれることもある。コンピュータ・システムは、例として、インターナショナル・ビジネス・マシンズ・コーポレーション(米国ニューヨーク州アーモンク)、インテル・コーポレーション(米国カリフォルニア州サンタ・クララ)、またはアーム・ホールディング・ピーエルシー(英国イングランド、ケンブリッジ)によって供給されるものなど、様々なシステム・アーキテクチャもしくはインストラクション・セット・アーキテクチャまたはその両方のうちの1つまたは複数に基づいてもよい。
【0050】
図6は、外部デバイス612と通信しているコンピュータ・システム600を示している。コンピュータ・システム600は、例えば、中央処理ユニット(CPU)といった、1つまたは複数のプロセッサ602を含む。プロセッサは、キャッシュまたはメイン・メモリなどの場所からプログラム命令をフェッチすること、プログラム命令をデコードすること、およびプログラム命令を実行すること、命令実行のためにメモリにアクセスすること、ならびに実行された命令の結果を書き込むことを行うための機能構成要素など、命令の実行時に使用される機能構成要素を含むことができる。プロセッサ602はまた、機能構成要素のうちの1つまたは複数によって使用されることになるレジスタを含む。コンピュータ・システム600はまた、メモリ604、入出力(I/O)デバイス608、およびI/Oインターフェース610を含み、これらは、1つもしくは複数のバスもしくは他の接続またはその両方を介して、プロセッサ602におよび互いに連結されてもよい。バス接続は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレイティッド・グラフィックス・ポート、および、様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含むバス構造のいくつかのタイプのいずれかのうちの1つまたは複数を表す。例として、また限定ではなく、このようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(ISA)、マイクロ・チャネル・アーキテクチャ(MCA)、エンハンストISA(EISA)、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)を含む。
【0051】
メモリ604は、例として、プログラム命令の実行時に使用されるメインもしくはシステム・メモリ(例えばランダム・アクセス・メモリ)、ハード・ドライブなどのストレージ・デバイス、フラッシュ・メディア、もしくは例として光媒体、またはキャッシュ・メモリ、またはそれらの組合せであるかこれらを含むことが可能である。メモリ604は、例えば、共有キャッシュなどのキャッシュを含むことができ、キャッシュは、プロセッサ602のローカル・キャッシュ(例は、L1キャッシュ、L2キャッシュ、等を含む)に連結されてもよい。追加として、メモリ604は、1つまたは複数のプロセッサによって実行されると、本明細書で説明される実施形態の機能を実行するように構成された、プログラム・モジュール、命令、コード、または同様のもののセット(例えば、少なくとも1つ)を有する少なくとも1つのコンピュータ・プログラム製品であるかこれらを含んでもよい。
【0052】
メモリ604は、オペレーティング・システム605、および、本明細書で説明される態様を実施するために実行する1つまたは複数のコンピュータ・プログラム/アプリケーションなどの他のコンピュータ・プログラム606を格納することができる。具体的には、プログラム/アプリケーションは、本明細書で説明される態様の実施形態の機能を実行するように構成され得るコンピュータ可読プログラム命令を含むことができる。
【0053】
I/Oデバイス608の例は、マイクロフォン、スピーカ、全地球測位システム(GPS)デバイス、カメラ、ライト、加速度計、ジャイロスコープ、磁力計、(光、近接性、心拍数、体温および/もしくは周囲の温度、血圧、または皮膚抵抗、またはそれらの組合せを検知するように構成された)センサ・デバイス、ならびに活動モニタを含むがこれらに限定されない。I/Oデバイスは、図示のようなコンピュータ・システムに組み込まれてもよいが、実施形態によっては、I/Oデバイスは、1つまたは複数のI/Oインターフェース610を通じてコンピュータ・システムに連結された外部デバイス(612)とみなされてもよい。
【0054】
コンピュータ・システム600は、1つまたは複数のI/Oインターフェース610を介して1つまたは複数の外部デバイス612と通信してもよい。外部デバイスの例は、キーボード、ポインティング・デバイス、ディスプレイ、または、ユーザがコンピュータ・システム600と対話することを可能にする他の任意のデバイス、またはそれらの組合せを含む。外部デバイスの他の例は、1つもしくは複数の他のコンピューティング・システム、または、プリンタなどの周辺デバイスと、コンピュータ・システム600が通信することを可能にする任意のデバイスを含む。ネットワーク・インターフェース/アダプタは、他のコンピューティング・デバイスもしくはシステム、ストレージ・デバイス、または同様のものとの通信を提供する、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)、もしくはパブリック・ネットワーク(例えば、インターネット)、またはそれらの組合せなどの1つまたは複数のネットワークと、コンピュータ・システム600が通信することを可能にするI/Oインターフェースの例である。(Wi-Fiなどの)イーサネット(登録商標)ベースのインターフェースおよびBluetooth(登録商標)アダプタは、コンピュータ・システムにおいて使用されるネットワーク・アダプタの現在利用可能なタイプの例にすぎない(BLUETOOTHは、米国ワシントン州カークランドのブルートゥース・エスアイジー・インクの登録商標である)。
【0055】
I/Oインターフェース610と外部デバイス612との間の通信は、イーサネット(登録商標)ベースの有線またはワイヤレス接続など、有線もしくはワイヤレスまたはその両方の通信リンク611にまたがって発生することが可能である。ワイヤレス接続の例は、セルラ、Wi-Fi、Bluetooth(登録商標)、近接ベース、ニアフィールド、または他のタイプのワイヤレス接続を含む。より一般には、通信リンク611は、データを通信するための、任意の適切なワイヤレスもしくは有線またはその両方の通信リンクでもよい。
【0056】
特定の外部デバイス612は、1つもしくは複数のプログラム、1つもしくは複数のコンピュータ可読プログラム命令、またはデータ、またはそれらの組合せなどを格納し得る、1つまたは複数のデータ・ストレージ・デバイスを含んでもよい。コンピュータ・システム600は、(例えばコンピュータ・システムの外部デバイスとして)取外し可能/取外し不能な、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体を含むか、もしくはこの媒体に連結されてこの媒体と通信しているか、またはその両方でもよい。例えば、コンピュータ・システム600は、取外し不能な不揮発性磁気媒体(典型的には「ハード・ドライブ」と呼ばれる)、取外し可能な不揮発性磁気ディスク(例えば、「フロッピー(登録商標)・ディスク」)を読み書きするための磁気ディスク・ドライブ、またはCD-ROM、DVD-ROM、もしくは他の光媒体などの取外し可能な不揮発性光ディスクを読み書きするための光ディスク・ドライブ、またはそれらの組合せを含むか、または連結されるか、またはその両方でもよい。
【0057】
コンピュータ・システム600は、数多くの他の汎用または専用コンピューティング・システム環境または構成と共に動作可能でもよい。コンピュータ・システム600は、様々な形式のいずれかをとっていてもよく、その良く知られた例は、パーソナル・コンピュータ(PC)システム、メッセージング・サーバなどのサーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ワークステーション、ラップトップ、ハンドヘルド・デバイス、(スマートフォン、タブレット、およびウェアラブル・デバイスなどの)モバイル・デバイス/コンピュータ、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、電話通信デバイス、(エッジ・アプライアンスなどの)ネットワーク機器、仮想化デバイス、ストレージ・コントローラ、セット・トップ・ボックス、プログラム可能消費者向けエレクトロニクス、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境、ならびに同様のものを含むがこれらに限定されない。
【0058】
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書で列挙される教示の実装形態は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られているか後で開発される、他の任意のタイプのコンピューティング環境と併用して実施される能力がある。
【0059】
クラウド・コンピューティングは、最低限の管理努力またはサービスの提供者との対話で素早く提供および解放されることが可能な、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含み得る。
【0060】
特性は以下の通りである。
【0061】
オンデマンド・セルフサービス:クラウド利用者は、サービスの提供者との人間対話を必要とすることなく必要に応じて自動で、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を一方的に提供することができる。
【0062】
ブロード・ネットワーク・アクセス:能力は、ネットワークを介して利用可能であり、異種混合のシンまたはシック・クライアント・プラットフォーム(例えば、モバイル・フォン、ラップトップ、およびPDA)による使用を促進する標準メカニズムを通じてアクセスされる。
【0063】
リソース・プーリング:提供者のコンピューティング・リソースは、マルチ・テナント・モデルを使用して複数の利用者をサーブするためにプールされ、種々の物理および仮想リソースが、要求に応じて動的に割当ておよび再割当てされる。利用者には一般に、提供されるリソースの正確な位置についての制御権も知識もなく、抽象化のより高いレベル(例えば、国、州、またはデータセンタ)の位置を指定でき得るという点で位置独立の意味がある。
【0064】
迅速な弾力性:能力は、素早くスケール・アウトするために迅速かつ伸縮自在に、場合によっては自動的に提供され、素早くスケール・インするために迅速に解放することができる。利用者にとって、提供のために利用可能な能力は無制限のように見えることが多く、いつでも任意の量で購入可能である。
【0065】
測定されるサービス:クラウド・システムは、サービスのタイプに適する何らかの抽象化レベル(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)で計量能力を活用することによって、リソース使用量を自動で制御し、最適化する。リソース使用率は、監視、制御、およびレポートすることができ、利用されるサービスの提供者と利用者双方に透明性をもたらす。
【0066】
サービス・モデルは以下の通りである。
【0067】
サービスとしてのソフトウェア(SaaS):利用者に提供される能力は、クラウド・インフラストラクチャ上で動く提供者のアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースのeメール)などの、シン・クライアント・インターフェースを通じて様々なクライアント・デバイスからアクセス可能である。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または、ことによると個々のアプリケーション能力を含む、基礎をなすクラウド・インフラストラクチャの管理も制御も行わないが、限定的なユーザ固有アプリケーション構成設定を例外とする可能性がある。
【0068】
サービスとしてのプラットフォーム(PaaS):利用者に提供される能力は、提供者によってサポートされるプログラミング言語およびツールを使用して制作された利用者制作または獲得アプリケーションを、クラウド・インフラストラクチャ上に配置することである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎をなすクラウド・インフラストラクチャの管理も制御も行わず、配置されたアプリケーション、および場合によっては、アプリケーション・ホスティング環境構成に対する制御を行う。
【0069】
サービスとしてのインフラストラクチャ(IaaS):利用者に提供される能力は、処理、ストレージ、ネットワーク、ならびに、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを利用者が展開して動かすことができる他の基本的なコンピューティング・リソースを提供することである。利用者は、基礎をなすクラウド・インフラストラクチャの管理も制御も行わず、オペレーティング・システム、ストレージ、展開されたアプリケーションに対する制御、および場合によっては、選択されたネットワーキング構成要素(例えば、ホスト・ファイアウォール)の限定的な制御を行う。
【0070】
展開モデルは以下の通りである。
【0071】
プライベート・クラウド:クラウド・インフラストラクチャは、組織のためにだけ運用される。クラウド・インフラストラクチャは、この組織または第三者によって管理されてもよく、オンプレミスであってもオフプレミスであってもよい。
【0072】
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、懸念(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス考慮)を共有してきた固有のコミュニティをサポートする。クラウド・インフラストラクチャは、これらの組織または第三者によって管理されてもよく、オンプレミスであってもオフプレミスであってもよい。
【0073】
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大規模業界団体に対して利用可能にされ、クラウド・サービスを売る組織によって所有される。
【0074】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、一意のエンティティのままであるが、データおよびアプリケーションの移植性を可能にする標準化されたまたは独自の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって一緒に結びつけられた、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成物である。
【0075】
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、およびセマンティック相互運用性に焦点を置いたサービス指向のものである。クラウド・コンピューティングの中心には、相互接続ノードのネットワークを含むインフラストラクチャがある。
【0076】
図7をここで参照すると、例証的なクラウド・コンピューティング環境50が描写されている。図示のように、クラウド・コンピューティング環境50は、例えば、パーソナル・デジタル・アシスタント(PDA)もしくはセルラ電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、またはそれらの組合せなどの、クラウド利用者によって使用されるローカル・コンピューティング・デバイスが通信し得る、1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信してもよい。ノード10は、上記で説明されたようなプライベート、コミュニティ、パブリック、またはハイブリッド・クラウド、またはその組合せなどの、1つまたは複数のネットワーク内で、物理的または仮想的にグループ化されてもよい(図示せず)。これは、クラウド利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のない、サービスとしてのインフラストラクチャ、プラットフォーム、もしくはソフトウェア、またはそれらの組合せを、クラウド・コンピューティング環境50が提供できるようにする。
図7に示されたコンピューティング・デバイス54A~Nのタイプは、例証にすぎないことが意図され、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワークもしくはネットワーク・アドレス可能接続またはその両方を介して(例えば、ウェブ・ブラウザを使用して)任意のタイプのコンピュータ化デバイスと通信可能であることが理解されている。
【0077】
図8をここで参照すると、クラウド・コンピューティング環境50(
図7)によって提供される機能抽象化層のセットが示されている。
図8に示された構成要素、層、および機能は例証にすぎないことが意図され、本発明の実施形態はこれらに限定されないことを予め理解されたい。描写されたように、以下の層および対応する機能が提供される。
【0078】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング構成要素66を含む。いくつかの実施形態では、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0079】
仮想化層70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75といった、仮想エンティティの例が提供され得る抽象化層を提供する。
【0080】
一例では、管理層80は、下記で説明される機能を提供してもよい。リソース提供81は、クラウド・コンピューティング環境内でタスクを実施するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を行う。計量および価格設定82は、クラウド・コンピューティング環境内でリソースが利用されるときのコスト追跡、および、これらのリソースの利用量に対する請求またはインボイスを行う。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでもよい。セキュリティは、クラウド利用者およびタスクの本人確認、ならびに、データおよび他のリソースの保護を行う。ユーザ・ポータル83は、利用者およびシステム・アドミニストレータに、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの配分および管理を行う。サービス・レベル・アグリーメント(SLA)計画およびフルフィルメント85は、SLAに応じて、将来の要件が予想されるクラウド・コンピューティング・リソースの事前配置および調達を行う。
【0081】
ワークロード層90は、クラウド・コンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育配信93、データ分析処理94、トランザクション処理95、ならびにセキュアなデータ分析96を含む。
【0082】
本発明は、統合の任意の可能な技術的詳細レベルにおけるシステム、方法、もしくはコンピュータ・プログラム製品、またはそれらの組合せでもよい。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(または複数の媒体)を含んでもよい。
【0083】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持および格納可能な有形デバイスとすることが可能である。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組合せでもよいがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の完全に網羅されていないリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(登録商標)・ディスク、命令を記録したパンチ・カードまたは溝内隆起構造などの機械的にエンコードされたデバイス、および前述した媒体の任意の適切な組合せを含む。本明細書で使用されるようなコンピュータ可読ストレージ媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号など、本質的に一時的な信号であると解釈されるべきではない。
【0084】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、または、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはそれらの組合せといった、ネットワークを介して外部コンピュータもしくは外部ストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバ、またはそれらの組合せを備えてもよい。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0085】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、Smalltalk(登録商標)、C++、もしくは同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードでもよい。コンピュータ可読プログラム命令は、全面的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンド・アロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモート・コンピュータ上で、または全面的にリモート・コンピュータもしくはサーバ上で実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、または接続は、(例えば、インターネット・サービス提供者を使用してインターネットを通じて)外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することによって、コンピュータ可読プログラム命令を実行してもよい。
【0086】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら本明細書で説明される。フローチャート図もしくはブロック図またはその両方の各ブロック、ならびにフローチャート図もしくはブロック図またはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実行可能であることが理解されよう。
【0087】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作を実行するための手段を作り出すべく、コンピュータ、または機械を生み出すための他のプログラム可能データ処理装置のプロセッサに提供されてもよい。これらのコンピュータ可読プログラム命令はまた、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作の態様を実行する命令を含む製品を、命令を格納したコンピュータ可読ストレージ媒体が備えるべく、コンピュータ可読ストレージ媒体に格納されてもよく、コンピュータ、プログラム可能データ処理装置、もしくは他のデバイス、またはそれらの組合せに特定の様式で機能するように指図することができる。
【0088】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作を実行するべく、コンピュータ実行処理を生み出すために、コンピュータ、他のプログラム可能装置、または他のデバイスで一連の動作ステップを実施するために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされてもよい。
【0089】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の中の各ブロックは、指定の論理機能を実施するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部を表してもよい。いくつかの代替実装形態では、ブロックに記された機能は、図に記された順序とは無関係に行われてもよい。例えば、連続して示された2つのブロックは、実際には、同時に、実質的に同時に、部分的もしくは全面的に時間重複した様式で実行される1つのステップとして行われてもよく、またはブロックは、含まれる機能に応じて逆の順序で実行されることがあってもよい。ブロック図もしくはフローチャート図またはその両方の各ブロック、および、ブロック図もしくはフローチャート図またはその両方におけるブロックの組合せは、指定の機能もしくは動作を行うか、または、専用ハードウェアとコンピュータ命令との組合せを実行する、専用ハードウェア・ベースのシステムによって実施可能であることも指摘される。
【0090】
上記に加えて、顧客環境の管理をオファーするサービス提供者によって、1つまたは複数の態様の提供、オファー、導入、管理、サービス等が行われてもよい。例えば、サービス提供者は、1人または複数の顧客のために1つまたは複数の態様を実施するコンピュータ・コードもしくはコンピュータ・インフラストラクチャまたはその両方の作成、維持、サポート等を行うことができる。代わりに、サービス提供者は、例として、加入もしくは料金またはその両方の同意に基づいて、顧客から支払いを受けてもよい。追加または代替として、サービス提供者は、1つまたは複数の第三者への広告コンテンツの売上からの支払いを受けてもよい。
【0091】
一態様では、1つまたは複数の実施形態を実施するためのアプリケーションが導入されてもよい。一例として、アプリケーションの導入は、1つまたは複数の実施形態を実施するように動作可能なコンピュータ・インフラストラクチャを提供することを含む。
【0092】
さらなる態様として、コンピューティング・インフラストラクチャが、コンピュータ可読コードをコンピューティング・システムに統合することを含めて導入されてもよく、コンピューティング・システムと組み合わせたコードは、1つまたは複数の実施形態を実施する能力がある。
【0093】
さらなる態様として、コンピュータ・システムにコンピュータ可読コードを統合することを含めた、コンピューティング・インフラストラクチャを統合するためのプロセスが提供されてもよい。コンピュータ・システムは、コンピュータ可読媒体を備え、コンピュータ媒体は、1つまたは複数の実施形態を備える。コンピュータ・システムと組み合わせたコードは、1つまたは複数の実施形態を実施する能力がある。
【0094】
様々な実施形態が上述されたが、これらは例にすぎない。
【0095】
本明細書で使用される専門用語は、特定の実施形態を説明するためのものにすぎず、限定であることを意図するものではない。本明細書で使用されるように、単数形「a」、「an」、および「the」は、別途文脈が明確に指示しない限り、複数形を同様に含むことを意図する。用語「備える(comprises)」もしくは「備えること(comprising)」またはその両方は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、もしくは構成要素、またはそれらの組合せの存在を指定するが、1つもしくは複数の他の特徴、整数、ステップ、動作、要素、構成要素、もしくはそのグループ、またはそれらの組合せの存在または追加を排除しないことがさらに理解されよう。
【0096】
下記の特許請求の範囲における全ての手段またはステップと機能要素の対応する構造、材料、動作、および同等物は、もしあれば、具体的に特許請求されるような、他の請求要素と組み合わせて機能を実施するためのいずれかの構造、材料、または動作を含むことを意図する。1つまたは複数の実施形態の説明は、例証および説明のために提示されてきたが、網羅的であること、または開示の形式に限定されることを意図するものではない。多くの変更形態および変形形態が当業者には明らかであろう。実施形態は、様々な態様および実用的用途を最も良く説明するように、ならびに、意図される特定の使用法に適するような様々な変更形態と共に様々な実施形態を当業者が理解できるように、選ばれ説明された。
【手続補正書】
【提出日】2023-11-06
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
初期データセットの機密データ・フィールドおよび前記
初期データセットの前記機密データ・フィールドと他のデータ・フィールドとの間のマッピングを識別することであって、分析処理が、前記初期データセットに対して実施されることになる、前記識別することと、
前記初期データセットに対する前記分析処理の実施時に使用されることになる、前記初期データセットのデータ・フィールドの予想に基づいて、および前記識別された機密データ・フィールドに基づいて、前記初期データセットの前記機密データ・フィールドにマスクしてマスク済みデータセットを生み出すための前記初期データセットへのマスク方法を選択して適用することと、
前記マスク済みデータセットを前記分析処理のリクエストと共に分析提供者に提供し、前記提供に応答して、前記初期データセットに対する前記分析処理を実施するように構成された、前記マスク済みデータセットに基づいて生成された、生成済み分析機能を受け取ることと、
前記初期データセットに対する前記分析処理を実施するために、前記初期データセットに対し前記生成済み分析機能を起動することと
を含む、コンピュータ
の情報処理により実行される方法。
【請求項2】
前記生成済み分析機能は、関数型プログラミングで書かれたロジックを含み、前記生成済み分析機能を前記起動することが、前記分析処理を実施するために前記関数型プログラミングを実行することを含む、請求項1に記載の方法。
【請求項3】
前記機密データ・フィールドおよびマッピングを前記識別することは、前記初期データセットの候補データ・フィールドのリストを生成して、前記初期データセットの所有者に推奨することを含み、候補データ・フィールドの前記リストは、前記識別された機密データ・フィールドの最終判定のために前記初期データセットの前記所有者によって変更される、請求項1に記載の方法。
【請求項4】
前記生成して推奨することは、
前記分析処理の要件についての指示を機械学習モデルに入力することであって、前記機械学習モデルが、分析要件および前記分析要件に対応するデータ・フィールド使用についての知識に基づいて訓練される、前記入力することと、
前記分析処理で使用されることが予想される前記分析処理の要件についての前記指示に基づいて、前記初期データセットのデータ・フィールドの予測および識別を、前記機械学習モデルの出力として受け取ることであって、前記識別された機密データ・フィールドが、前記機械学習モデルの前記出力に少なくとも部分的に基づいて識別される、前記受け取ることと
を含む、請求項3に記載の方法。
【請求項5】
前記選択して適用することは、前記機密データ・フィールドと前記他のデータ・フィールドとの間の前記マッピングを変更することを含むマスク方法を選択して適用する、請求項1に記載の方法。
【請求項6】
前記マッピングを前記変更することは、(i)前記機密データ・フィールドのうちの少なくとも1つの機密データ・フィールドから、前記初期データセットの他の任意のデータ・フィールドへの、前記機密データ・フィールドが有するいずれかのマッピングを除去することと、(ii)前記機密データ・フィールドと前記他のデータ・フィールドとの間の関係を無作為化するために、前記マッピングを無作為化することとから成る群から選択された少なくとも1つを含む、請求項5に記載の方法。
【請求項7】
前記選択して適用することは、前記識別された機密データ・フィールドのうちの少なくともいくつかの機密データ・フィールドのデータを無作為化することを含むマスク方法を選択して適用する、請求項1に記載の方法。
【請求項8】
前記選択して適用することは、前記機密データ・フィールドのデータを準同形的に暗号化することを含むマスク方法を選択して適用し、前記準同形的に暗号化することは、前記初期データセットのデータ・レコードの対応する人々を一意に識別することなく、前記機密データ・フィールドと前記他のデータ・フィールドとの間のマッピングの参照整合性を維持する、請求項1に記載の方法。
【請求項9】
前記選択されたマスク方法は、(i)前記初期データセットに対する分析処理のために前記生成済み分析機能を使用するときの、前記マスク済みデータセットに基づいて生成された前記生成済み分析機能の正確度を維持することと、(ii)前記マスク方法を明らかにするための前記マスク済みデータセットの逆行分析可能性を最小化することとを行いつつ、前記初期データセットのデータ・レコードの対応する人々を一意に識別する情報にマスクするために選択される、請求項1に記載の方法。
【請求項10】
前記初期データセットは、アプリケーション・プログラミング・インターフェース(API)を同様にホストするクラウド・コンピューティング環境上でホストされ、前記マスク方法を前記選択して適用すること、前記マスク済みデータセットを前記提供し前記生成済み分析機能を前記受け取ること、および前記生成済み分析機能を前記起動することが、前記初期データセットの前記所有者による前記APIの起動に基づいて前記クラウド・コンピューティング環境によって実施される、請求項1に記載の方法。
【請求項11】
前記機密データ・フィールドは、前記初期データセットのデータ・レコードの対応する人々を一意に識別するデータ・フィールドを備える、請求項1に記載の方法。
【請求項12】
前記生成済み分析機能は、暗号化形式で受け取られ、前記生成済み分析機能を前記起動することが、暗号化形式の前記分析機能を、実行用の復号形式に復号することを含む、請求項1に記載の方法。
【請求項13】
前記初期データセットのスキーマを使用して前記初期データセットの特性を識別することであって、前記特性が、前記
初期データセットのデータ・フィールド間のマッピングおよび依存関係を含む、前記識別することをさらに含む、請求項1に記載の方法。
【請求項14】
前記マスク済みデータセットが初期データからマスクされたマスク済みデータのデータセットであることを、前記分析提供者にアラートすることをさらに含む、請求項1に記載の方法。
【請求項15】
コンピュータ・システムであって、
メモリと、
前記メモリと通信状態にあるプロセッサと
を備え、前記コンピュータ・システムは、
初期データセットの機密データ・フィールドおよび前記
初期データセットの前記機密データ・フィールドと他のデータ・フィールドとの間のマッピングを識別することであって、分析処理が、前記初期データセットに対して実施されることになる、前記識別することと、
前記初期データセットに対する前記分析処理の実施時に使用されることになる、前記初期データセットのデータ・フィールドの予想に基づいて、および前記識別された機密データ・フィールドに基づいて、前記初期データセットの前記機密データ・フィールドにマスクしてマスク済みデータセットを生み出すための前記初期データセットへのマスク方法を選択して適用することと、
前記マスク済みデータセットを前記分析処理のリクエストと共に分析提供者に提供し、前記提供に応答して、前記初期データセットに対する前記分析処理を実施するように構成された、前記マスク済みデータセットに基づいて生成された、生成済み分析機能を受け取ることであって、前記生成済み分析機能が、関数型プログラミングで書かれたロジックを含む、前記受け取ることと、
前記初期データセットに対する前記分析処理を実施するために、前記初期データセットに対し前記生成済み分析機能を起動することであって、前記生成済み分析機能を前記起動することが、前記分析処理を実施するために前記関数型プログラミングを実行することを含む、前記起動することと
を含む方法を実施するように構成される、コンピュータ・システム。
【請求項16】
コンピュータ・システムに、
初期データセットの機密データ・フィールドおよび前記
初期データセットの前記機密データ・フィールドと他のデータ・フィールドとの間のマッピングを識別することであって、分析処理が、前記初期データセットに対して実施されることになる、前記識別することと、
前記初期データセットに対する前記分析処理の実施時に使用されることになる、前記初期データセットのデータ・フィールドの予想に基づいて、および前記識別された機密データ・フィールドに基づいて、前記初期データセットの前記機密データ・フィールドにマスクしてマスク済みデータセットを生み出すための前記初期データセットへのマスク方法を選択して適用することと、
前記マスク済みデータセットを前記分析処理のリクエストと共に分析提供者に提供し、前記提供に応答して、前記初期データセットに対する前記分析処理を実施するように構成された、前記マスク済みデータセットに基づいて生成された、生成済み分析機能を受け取ることであって、前記生成済み分析機能が、関数型プログラミングで書かれたロジックを含む、前記受け取ることと、
前記初期データセットに対する前記分析処理を実施するために、前記初期データセットに対し前記生成済み分析機能を起動することであって、前記生成済み分析機能を前記起動することが、前記分析処理を実施するために前記関数型プログラミングを実行することを含む、前記起動することと
を含む方法を実行させるためのコンピュータ・プログラム。
【請求項17】
請求項16に記載のコンピュータ・プログラムを記録した、コンピュータ可読ストレージ媒体。
【国際調査報告】