(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-22
(45)【発行日】2024-07-30
(54)【発明の名称】暗号化されたデータの異常判定方法、システム、プログラム
(51)【国際特許分類】
G09C 1/00 20060101AFI20240723BHJP
【FI】
G09C1/00 650Z
(21)【出願番号】P 2022515835
(86)(22)【出願日】2020-09-21
(86)【国際出願番号】 EP2020076291
(87)【国際公開番号】W WO2021053223
(87)【国際公開日】2021-03-25
【審査請求日】2023-02-24
(32)【優先日】2019-09-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】サラパトワー、カンシ
(72)【発明者】
【氏名】ガナパヴァラプ、ヴェンカタ、シタラマギリドハーガネシュ
(72)【発明者】
【氏名】サテ、サケト
(72)【発明者】
【氏名】バクリン、ローマン
【審査官】金沢 史明
(56)【参考文献】
【文献】特表2019-505912(JP,A)
【文献】特開2019-074927(JP,A)
【文献】特開2012-163960(JP,A)
【文献】米国特許出願公開第2016/0156595(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
H04L 9/00- 9/40
G06F 21/60-21/62
(57)【特許請求の範囲】
【請求項1】
コンピュータの情報処理により、暗号化されたデータ・セットに関して暗号化されたデータが潜在的に異常であるか否かを判定するための方法であって、
前記方法が、
暗号化されたデータ・ポイントのデータ・セットを受信することであって、各データ・ポイントは複数の暗号化された特徴を含み、前記暗号化されたデータ・ポイントのデータ・セットは、暗号化された特徴ごとに、それぞれの暗号化された特徴に関して最小値から最大値の順にソートされる、前記受信することと、
前記データ・セットについて、いくつかのレベルを有するツリー・データ構造を生成することであって、前記ツリー・データ構造の各レベルは、前記暗号化された複数の特徴の1つに対応し、複数のノードを含み、前記ツリー・データ構造を生成することは、
前記ツリー・データ構造のそれぞれのレベルごとに、
前記それぞれのレベルに対応するそれぞれの暗号化された特徴の値の区間に仮想分割値が存在する確率を表す重みを算出することと、
各データ・ポイントについて、前記それぞれのデータ・ポイントが、前記ツリー・データ構造の上位レベルの親ノードに対する左の子ノードおよび右の子ノードに割り当てられる確率を計算することであって、前記左の子ノードは前記分割値よりも小さい特徴値に対応し、前記右の子ノードは前記分割値よりも大きい特徴値に対応する、前記計算することと、
を含む、前記生成することと、
第1のデータ・ポイントを分析のために受信することであって、前記第1のデータ・ポイントは前記複数の暗号化された特徴を含む、前記受信することと、
前記生成されたツリー・データ構造を使用して、前記第1のデータ・ポイントが潜在的に異常であると判定することと、
を含む、方法。
【請求項2】
前記第1のデータ・ポイントが潜在的に異常であると判定することは、
前記複数の暗号化された特徴について、前記第1のデータ・ポイントが、前記複数の暗号化された特徴のそれぞれに対応する前記ツリー・データ構造のレベルのノードに属する確率を特定するために、前記ツリー・データ構造を走査することと、
前記複数の暗号化された特徴のそれぞれについて特定された前記確率に基づいて、前記第1のデータ・ポイントの異常スコアを計算することと、
前記計算された異常スコアが閾値を超えていると判定すると、前記第1のデータ・ポイントを潜在的な異常データとして識別することと、
を含む、請求項1に記載の方法。
【請求項3】
前記ツリー内のレベルの数は、前記暗号化されたデータ・ポイントに含まれる前記暗号化された特徴の数よりも少ない、請求項1または2に記載の方法。
【請求項4】
前記それぞれの暗号化された特徴の値の区間に仮想分割値が存在する前記確率を表す前記算出された重みは、選択された暗号化されたデータ・ポイントの前記それぞれの暗号化された特徴の値と、後続の暗号化されたデータ・ポイントの前記それぞれの暗号化された特徴の値とについて計算された重みを含む、請求項1ないし3のいずれかに記載の方法。
【請求項5】
前記それぞれのデータ・ポイントが前記左の子ノードに割り当てられる前記確率を計算することは、前記データ・セットの分布における前記分割値を超える値に対応する曲線の面積の、前記データ・セット内の値に対応する前記曲線の総面積に対する割合として計算される、請求項1ないし4のいずれかに記載の方法。
【請求項6】
前記それぞれのデータ・ポイントが前記右の子ノードに割り当てられる前記確率を計算することは、1と、前記それぞれのデータ・ポイントが
左ノードに属する前記計算された確率との差として計算される、請求項5に記載の方法。
【請求項7】
前記ツリー・データ構造の各ノードに関連付けられた確率を復号することと、
前記ツリー・データ構造内のそれぞれのノードごとに、
前記それぞれのノードに関連付けられたデータ・ポイントの期待数を決定することと、
前記復号された確率を使用して、前記それぞれのノードに関連付けられたデータ・ポイントの前記期待数が閾値よりも少ないと判定することと、
前記それぞれのノードに関連付けられた子ノードを前記ツリー・データ構造から除去するために、前記ツリー・データ構造を
枝刈りすることと、
をさらに含む、請求項1ないし6のいずれかに記載の方法。
【請求項8】
前記計算された異常スコアは、前記ツリー・データ構造内のルート・ノードから、前記受信されたデータ・ポイントを含む前記ツリー・データ構造内のノードまでの期待距離に対応する、請求項1ないし7のいずれかに記載の方法。
【請求項9】
前記暗号化されたデータ・ポイント、前記暗号化されたデータ・ポイントの暗号化された特徴、および前記受信されたデータ・ポイントは、前記暗号化されたデータ・ポイントおよび前記受信されたデータ・ポイントを復号せずに、前記暗号化されたデータ・ポイント、前記暗号化されたデータ・ポイントの暗号化された特徴、および前記受信されたデータ・ポイントに対して数学演算を実行できるように、準同型暗号化方式を使用して暗号化される、請求項1ないし8のいずれかに記載の方法。
【請求項10】
暗号化されたデータ・セットに関して暗号化されたデータが潜在的に異常であるか否かを判定するためのシステムであって、
プロセッサと、
前記プロセッサによって実行された場合に、暗号化されたデータ・セットに関して暗号化されたデータが潜在的に異常であるか否かを判定するための動作を実行する命令が記憶されたメモリと、
を備え、前記動作は、
暗号化されたデータ・ポイントのデータ・セットを受信することであって、各データ・ポイントは複数の暗号化された特徴を含み、前記暗号化されたデータ・ポイントのデータ・セットは、暗号化された特徴ごとに、それぞれの暗号化された特徴に関して最小値から最大値の順にソートされる、前記受信することと、
前記データ・セットについて、いくつかのレベルを有するツリー・データ構造を生成することであって、前記ツリー・データ構造の各レベルは、前記暗号化された複数の特徴の1つに対応し、複数のノードを含み、前記ツリー・データ構造を生成することは、
前記ツリー・データ構造のそれぞれのレベルごとに、
前記それぞれのレベルに対応するそれぞれの暗号化された特徴の値の区間に仮想分割値が存在する確率を表す重みを算出することと、各データ・ポイントについて、前記それぞれのデータ・ポイントが、前記ツリー・データ構造の上位レベルの親ノードの左の子ノードおよび右の子ノードに割り当てられる確率を計算することであって、前記左の子ノードは前記分割値よりも小さい特徴値に対応し、前記右の子ノードは前記分割値よりも大きい特徴値に対応する、前記計算することと、
を含む、前記生成することと、
第1のデータ・ポイントを分析のために受信することであって、前記第1のデータ・ポイントは前記複数の暗号化された特徴を含む、前記受信することと、
前記生成されたツリー・データ構造を使用して、前記第1のデータ・ポイントが潜在的に異常であると判定することと、
を含む、システム。
【請求項11】
前記第1のデータ・ポイントが潜在的に異常であると判定することは、
前記複数の暗号化された特徴について、前記第1のデータ・ポイントが、前記複数の暗号化された特徴のそれぞれに対応する前記ツリー・データ構造のレベルのノードに属する確率を特定するために、前記ツリー・データ構造を走査することと、
前記複数の暗号化された特徴のそれぞれについて特定された前記確率に基づいて、前記第1のデータ・ポイントの異常スコアを計算することと、
前記計算された異常スコアが閾値を超えていると判定すると、前記第1のデータ・ポイントを潜在的な異常データとして識別することと、
を含む、請求項10に記載のシステム。
【請求項12】
前記ツリー内のレベルの数は、前記暗号化されたデータ・ポイントに含まれる前記暗号化された特徴の数よりも少ない、請求項10または11に記載のシステム。
【請求項13】
前記それぞれの暗号化された特徴の値の区間に仮想分割値が存在する前記確率を表す前記算出された重みは、選択された暗号化されたデータ・ポイントの前記それぞれの暗号化された特徴の値と、後続の暗号化されたデータ・ポイントの前記それぞれの暗号化された特徴の値とについて計算された重みを含む、請求項10ないし12のいずれかに記載のシステム。
【請求項14】
前記それぞれのデータ・ポイントが前記左の子ノードに属する前記確率を計算することは、前記データ・セットの分布における前記分割値を超える値に対応する曲線の面積の、前記データ・セット内の値に対応する前記曲線の総面積に対する割合として計算される、請求項10ないし13のいずれかに記載のシステム。
【請求項15】
前記それぞれのデータ・ポイントが前記右の子ノードに属する前記確率を計算することは、1と、前記それぞれのデータ・ポイントが
左ノードに属する前記計算された確率との差として計算される、請求項14に記載のシステム。
【請求項16】
前記動作は、
前記ツリー・データ構造の各ノードに関連付けられた確率を復号することと、
前記ツリー・データ構造内のそれぞれのノードごとに、
前記それぞれのノードに関連付けられたデータ・ポイントの期待数を決定することと、
前記復号された確率を使用して、前記それぞれのノードに関連付けられたデータ・ポイントの前記期待数が閾値よりも少ないと判定することと、
前記それぞれのノードに関連付けられた子ノードを前記ツリー・データ構造から除去するために、前記ツリー・データ構造を
枝刈りすることと、
をさらに含む、請求項10ないし15のいずれかに記載のシステム。
【請求項17】
前記計算された異常スコアは、前記ツリー・データ構造内のルート・ノードから、前記受信されたデータ・ポイントを含む前記ツリー・データ構造内のノードまでの期待距離に対応する、請求項10ないし16のいずれかに記載のシステム。
【請求項18】
前記暗号化されたデータ・ポイント、前記暗号化されたデータ・ポイントの暗号化された特徴、および前記受信されたデータ・ポイントは、前記暗号化されたデータ・ポイントおよび前記受信されたデータ・ポイントを復号せずに、前記暗号化されたデータ・ポイント、前記暗号化されたデータ・ポイントの暗号化された特徴、および前記受信されたデータ・ポイントに対して数学演算を実行できるように、準同型暗号化方式を使用して暗号化される、請求項10ないし17のいずれかに記載のシステム。
【請求項19】
請求項1ないし9のいずれかに記載の方法を、コンピュータに実行させる、コンピュータ・プログラム。
【請求項20】
請求項19に記載の前記コンピュータ・プログラムを、コンピュータ可読媒体に記憶した、記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の態様は、暗号化されたデータ・セット内の異常データを検出することに関し、より詳細には、基になる暗号化されたデータ(underlying encrypted data)を復号せずに暗号化されたデータ・セット内の異常データを検出するための技術に関する。
【背景技術】
【0002】
モノのインターネット(IoT)デバイスは、分析すべき大量のデータを生成し得る。IoTデバイスによってキャプチャおよび記録されるデータには、様々なタイプのデータが含まれ、その一部は機密のものであり得る。たとえば、産業環境では、IoTデバイスは、環境データおよび他のプロセス関連データ、たとえば、加工温度、圧力、時間、周囲環境情報、および他の情報などを記録し得、これらは漏洩した場合に、様々な産業プロセスに関する保護された情報を漏洩し得る。他の例では、医療環境では、IoTデバイスは、法的に課せられたプライバシー要求(たとえば、HIPAA)の対象となる情報を記録し得る。他の例として、発電所でのIoTデバイスは、発電所の外部に公開されるべきではない情報、たとえば、タービンの運転時間、発電された総電力、および他の情報などを公開し得る。
【0003】
IoTデバイスは一般的にはストレージ能力が限られており、個々のIoTデバイスからのデータは、有用で実施可能な洞察(usable, actionable insight)を提供しない場合があるので、IoTデバイスによって生成されたデータは他の保管場所に送信され得る。場合によっては、この場所は、ストレージ・スペースが複数の顧客間で共有されるクラウド・データ・ストアであり得る。IoTデータが公開されないように保護するために、IoTデバイスの所有者は、データをクラウド・データ・ストアにコミットする前にデータを暗号化し得る。一般に、データを暗号化することにより、データを復号するための適切な鍵(たとえば、対称鍵アルゴリズムでデータを暗号化するために使用された暗号鍵、公開鍵-秘密鍵ペアの秘密鍵コンポーネントなど)を有さない者が、暗号化されたデータを復号することが事実上防止され得る。たとえば、暗号的に破られていない暗号アルゴリズム(すなわち、ブルート・フォース攻撃が現実的であるか、またはブルート・フォース攻撃は非現実的であるが、鍵空間のサイズよりも少ない鍵を使用してデータを復号することを可能にする弱点が存在するアルゴリズム)を想定すると、ブルート・フォース攻撃を使用してデータを復号するには、2keySize(2keySize operations)回の演算が必要になり得る。鍵サイズが大きい暗号方式に対するブルート・フォース攻撃は計算上非現実的であるので、これらの暗号方式を使用して暗号化されたデータは一般的に安全である。
【0004】
データの暗号化によって、基になるデータのプライバシーが保護されるが、典型的な暗号方式(たとえば、AES、Blowfishなど)では、データを復号せずに、基になるデータに対して演算を実行することは不可能であり得る。IoTデバイスに関する潜在的な問題を示す異常データを識別するようにモデルを訓練するためにデータを復号すると、当然ながら基になるデータが攻撃にさらされるので、モデルを生成するために他の暗号方式が使用される必要があり得る。これらの暗号方式は一般に、基になるデータに対していくつかの数学演算を実行することを可能にする準同型暗号化アルゴリズムである。準同型暗号化技術では、暗号化されたデータを復号せずに基になるデータに対して数学演算を実行することが可能であるが、準同型暗号化されたデータに対して数学演算を実行するシステムは、準同型暗号化されたデータに対する他の操作、たとえば、データ・セットを所与の値より大きい部分と所与の値より小さい部分とに分割することなどを簡単に実行することが不可能であり得る。
【0005】
したがって、当技術分野では、上述の問題に対処する必要がある。
【発明の概要】
【0006】
第1の態様から見ると、本発明は、暗号化されたデータ・セットに関して暗号化されたデータが潜在的に異常であるか否かを判定するための方法であって、暗号化されたデータ・ポイントのデータ・セットを受信することであって、各データ・ポイントは複数の暗号化された特徴を含み、暗号化されたデータ・ポイントのデータ・セットは、暗号化された特徴ごとに、それぞれの暗号化された特徴に関して最小値から最大値の順にソートされる、受信することと、データ・セットについて、いくつかのレベルを有するツリー・データ構造を生成することであって、ツリー・データ構造の各レベルは、暗号化された複数の特徴の1つに対応し、複数のノードを含み、ツリー・データ構造を生成することは、ツリー・データ構造のそれぞれのレベルごとに、それぞれのレベルに対応するそれぞれの暗号化された特徴の値の区間に仮想分割値(imaginary split value)が存在する確率を表す重みを算出することと、各データ・ポイントについて、それぞれのデータ・ポイントが、ツリー・データ構造の上位レベルの親ノードに対する左の子ノードおよび右の子ノードに割り当てられる確率を計算することであって、左の子ノードは分割値よりも小さい特徴値に対応し、右の子ノードは分割値よりも大きい特徴値に対応する、計算することと、を含む、生成することと、第1のデータ・ポイントを分析のために受信することであって、第1のデータ・ポイントは複数の暗号化された特徴を含む、受信することと、生成されたツリー・データ構造を使用して、第1のデータ・ポイントが潜在的に異常であると判定することと、を含む、方法を提供する。
【0007】
さらなる態様から見ると、本発明は、プロセッサと、プロセッサによって実行された場合に、暗号化されたデータ・セットに関して暗号化されたデータが潜在的に異常であるか否かを判定するための動作を実行する命令が記憶されたメモリと、を備えるシステムであって、動作は、暗号化されたデータ・ポイントのデータ・セットを受信することであって、各データ・ポイントは複数の暗号化された特徴を含み、暗号化されたデータ・ポイントのデータ・セットは、暗号化された特徴ごとに、それぞれの暗号化された特徴に関して最小値から最大値の順にソートされる、受信することと、データ・セットについて、いくつかのレベルを有するツリー・データ構造を生成することであって、ツリー・データ構造の各レベルは、暗号化された複数の特徴の1つに対応し、複数のノードを含み、ツリー・データ構造を生成することは、ツリー・データ構造のそれぞれのレベルごとに、それぞれのレベルに対応するそれぞれの暗号化された特徴の値の区間に仮想分割値が存在する確率を表す重みを算出することと、各データ・ポイントについて、それぞれのデータ・ポイントが、ツリー・データ構造の上位レベルの親ノードの左の子ノードおよび右の子ノードに割り当てられる確率を計算することであって、左の子ノードは分割値よりも小さい特徴値に対応し、右の子ノードは分割値よりも大きい特徴値に対応する、計算することと、を含む、生成することと、第1のデータ・ポイントを分析のために受信することであって、第1のデータ・ポイントは複数の暗号化された特徴を含む、受信することと、生成されたツリー・データ構造を使用して、第1のデータ・ポイントが潜在的に異常であると判定することと、を含む、システムを提供する。
【0008】
さらなる態様から見ると、本発明は、暗号化されたデータ・セットに関して暗号化されたデータが潜在的に異常であるか否かを判定するためのコンピュータ・プログラム製品であって、処理回路によって読み取り可能であり、本発明のステップを実施するための方法を実施するための、処理回路によって実行するための命令を記憶するコンピュータ可読記憶媒体を備える、コンピュータ・プログラム製品を提供する。
【0009】
さらなる態様から見ると、本発明は、コンピュータ可読媒体に記憶され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、上記プログラムがコンピュータ上で実行された場合に、本発明のステップを実施するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
【0010】
さらなる態様から見ると、本発明は、プロセッサによって実行された場合に、暗号化されたデータ・セットに関して暗号化されたデータが潜在的に異常であるか否かを判定するための動作を実行する命令が記憶されたコンピュータ可読媒体であって、動作は、暗号化されたデータ・ポイントのデータ・セットを受信することであって、各データ・ポイントは複数の暗号化された特徴を含み、暗号化されたデータ・ポイントのデータ・セットは、暗号化された特徴ごとに、それぞれの暗号化された特徴に関して最小値から最大値の順にソートされる、受信することと、データ・セットについて、いくつかのレベルを有するツリー・データ構造を生成することであって、ツリー・データ構造の各レベルは、暗号化された複数の特徴の1つに対応し、複数のノードを含み、ツリー・データ構造を生成することは、ツリー・データ構造のそれぞれのレベルごとに、それぞれのレベルに対応するそれぞれの暗号化された特徴の値の区間に仮想分割値が存在する確率を表す重みを算出することと、各データ・ポイントについて、それぞれのデータ・ポイントが、ツリー・データ構造の上位レベルの親ノードの左の子ノードおよび右の子ノードに割り当てられる確率を計算することであって、左の子ノードは分割値よりも小さい特徴値に対応し、右の子ノードは分割値よりも大きい特徴値に対応する、計算することと、を含む、生成することと、第1のデータ・ポイントを分析のために受信することであって、第1のデータ・ポイントは複数の暗号化された特徴を含む、受信することと、生成されたツリー・データ構造を使用して、第1のデータ・ポイントが潜在的に異常であると判定することと、を含む、コンピュータ可読媒体を提供する。
【0011】
本開示の一態様は、暗号化されたデータ・セットに関して暗号化されたデータが潜在的に異常であるか否かを判定するための方法を提供する。この方法は一般に、暗号化されたデータ・ポイントのデータ・セットを受信することであって、各データ・ポイントは複数の暗号化された特徴を含み、暗号化されたデータ・ポイントのデータ・セットは、暗号化された特徴ごとに、それぞれの暗号化された特徴に関して最小値から最大値の順にソートされる、受信することを含む。データ・セットについて、いくつかのレベルを有するツリー・データ構造が生成される。ツリー・データ構造の各レベルは一般に、暗号化された複数の特徴の1つに対応し、複数のノードを含む。ツリー・データ構造は、ツリー・データ構造のそれぞれのレベルごとに、それぞれのレベルに対応するそれぞれの暗号化された特徴の値の区間に仮想分割値が存在する確率を表す重みを算出することと、各データ・ポイントについて、それぞれのデータ・ポイントが、ツリー・データ構造の上位レベルの親ノードに対する左の子ノードおよび右の子ノードに属する確率を計算することであって、左の子ノードは分割値よりも小さい特徴値に対応し、右の子ノードは分割値よりも大きい特徴値に対応する、計算することと、によって生成される。第1のデータ・ポイントが分析のために受信され、生成されたツリー・データ構造を使用して、第1のデータ・ポイントが潜在的に異常であると判定される。
【0012】
本開示の他の態様は、暗号化されたデータ・セットに関して暗号化されたデータが潜在的に異常であるか否かを判定するためのシステムを提供する。このシステムは一般に、プロセッサと、プロセッサによって実行された場合に、暗号化されたデータ・セット内の異常データを検出するための動作を実行する命令を有するメモリと、含む。この動作は一般に、暗号化されたデータ・ポイントのデータ・セットを受信することであって、各データ・ポイントは複数の暗号化された特徴を含み、暗号化されたデータ・ポイントのデータ・セットは、暗号化された特徴ごとに、それぞれの暗号化された特徴に関して最小値から最大値の順にソートされる、受信することを含む。データ・セットについて、いくつかのレベルを有するツリー・データ構造が生成される。ツリー・データ構造の各レベルは一般に、暗号化された複数の特徴の1つに対応し、複数のノードを含む。ツリー・データ構造は、ツリー・データ構造のそれぞれのレベルごとに、それぞれのレベルに対応するそれぞれの暗号化された特徴の値の区間に仮想分割値が存在する確率を表す重みを算出することと、各データ・ポイントについて、それぞれのデータ・ポイントが、ツリー・データ構造の上位レベルの親ノードに対する左の子ノードおよび右の子ノードに属する確率を計算することであって、左の子ノードは分割値よりも小さい特徴値に対応し、右の子ノードは分割値よりも大きい特徴値に対応する、計算することと、によって生成される。第1のデータ・ポイントが分析のために受信され、生成されたツリー・データ構造を使用して、第1のデータ・ポイントが潜在的に異常であると判定される。
【0013】
本開示のさらに他の態様は、プロセッサによって実行された場合に、暗号化されたデータ・セットに関して暗号化されたデータが潜在的に異常であるか否かを判定するための動作を実行する命令が記憶されたコンピュータ可読媒体を提供する。この動作は一般に、暗号化されたデータ・ポイントのデータ・セットを受信することであって、各データ・ポイントは複数の暗号化された特徴を含み、暗号化されたデータ・ポイントのデータ・セットは、暗号化された特徴ごとに、それぞれの暗号化された特徴に関して最小値から最大値の順にソートされる、受信することを含む。データ・セットについて、いくつかのレベルを有するツリー・データ構造が生成される。ツリー・データ構造の各レベルは一般に、暗号化された複数の特徴の1つに対応し、複数のノードを含む。ツリー・データ構造は、ツリー・データ構造のそれぞれのレベルごとに、それぞれのレベルに対応するそれぞれの暗号化された特徴の値の区間に仮想分割値が存在する確率を表す重みを算出することと、各データ・ポイントについて、それぞれのデータ・ポイントが、ツリー・データ構造の上位レベルの親ノードに対する左の子ノードおよび右の子ノードに属する確率を計算することであって、左の子ノードは分割値よりも小さい特徴値に対応し、右の子ノードは分割値よりも大きい特徴値に対応する、計算することと、によって生成される。第1のデータ・ポイントが分析のために受信され、生成されたツリー・データ構造を使用して、第1のデータ・ポイントが潜在的に異常であると判定される。
【図面の簡単な説明】
【0014】
【
図1】一実施形態による、ツリー・データ構造が複数のデータ・ソース・デバイスからの暗号化されたデータ・ポイントから生成され、データ・ソース・デバイスによって生成された異常データを識別するために使用される例示的なネットワーク化されたコンピューティング環境を示す図である。
【
図2】一実施形態による、暗号化されたデータ・ポイントから生成されたツリー・データ構造を使用して異常データを識別するための例示的な動作を示す図である。
【
図3】一実施形態による、データ・ソース・デバイスによって生成された異常データを識別するためのツリー・データ構造を暗号化されたデータ・ポイントから生成するための例示的な動作を示す図である。
【
図4】一実施形態による、データ・ソース・デバイスによって生成された異常データを識別するための、暗号化されたデータ・ポイントから生成される例示的なツリー・データ構造を示す図である。
【
図5】本開示の態様が実行される例示的なシステムを示す図である。
【発明を実施するための形態】
【0015】
アイソレーション・フォレスト(isolation forest)は、データ・セット内の外れ値を識別するために使用されるアルゴリズムのクラスである。一般に、データ・セット内の外れ値は、他のデータ・ポイントから大きく偏位しているデータ・ポイントであり、その偏位はそのデータ・ポイントが異なるデバイスまたは異常な状態のデバイスによって生成された可能性を示す。たとえば、グラフにプロットされたデータのクラスタがあり、そのクラスタの中心がグラフの中央にある場合、外れ値(異常値)はグラフの中心からの距離が、ある閾値差を超えるデータ・ポイントである可能性がある。他の例では、外れ値は他のデータ・ポイントから生成された形状のトレンドに沿わないデータ・ポイントであってもよい。アイソレーション・フォレストでは、各データ・ポイントの特徴量の値と定義値との比較に基づいて、データ・ポイントが定義値より小さい(定義値未満の)データ・ポイントに対応する左ノードと、定義値より大きい(定義値以上の)データ・ポイントに対応する右ノードとに分けられるようにアイソレーション・フォレスト・ツリーが生成される。この操作は一般に、O(n)の比較演算で実行できる。
【0016】
データが暗号化されている場合、O(n)の比較演算の実行に関してさらなる複雑性が生じる。たとえば、準同型暗号化されたデータに対する比較演算はコストのかかるタスクであり得、その理由は、これらの演算がビット・レベルで実行され、これには、アイソレーション・フォレスト・ツリーの生成に使用されるデータの2進表現および10進表現の両方を維持する必要があり得るためである。さらに、準同型暗号化方式では、任意の計算の結果も暗号化されている(暗号化データ区域内のデータに対して実行された数学演算の結果の効果であるため)。基になるデータおよび比較演算の結果は共に暗号化されているので、暗号化されたデータ・セットを区分することは、実行がより計算上困難なタスクになる。
【0017】
本開示の態様は、アイソレーション・フォレスト・ツリーを生成し、アイソレーション・フォレスト・ツリーを使用して、新しいイベントの記録のログが取られるときに、暗号化された訓練データ・セットから異常データを識別するための効率的な技術を提供する。以下でさらに詳細に説明するように、ファジー・データ区分を使用することにより、本開示の態様は、大量のドキュメント(a universe of documents)間の網羅的な比較を実行することなく、多数の照合演算および計算集約的なデータの復号を実行することを可能にする。所与のデータ・ポイントの確率分布を使用して暗号化されたデータ・セットを事実上分割してフィルタリングすることにより、暗号化されたデータに対する計算上複雑な比較演算は、複数の暗号化された特徴に対して生成される確率分布に置き換えられ、これにより、アイソレーション・フォレスト・ツリーを生成し、データ・ポイントが異常データに対応するか否かを判定し、異常データを生成するデバイスに関して対策を取る処理が加速され得る。
【0018】
図1は、本開示の一実施形態による、ツリー・データ構造が準同型暗号化されたデータから生成され、他の準同型暗号化されたデータが異常データに対応するか否かを判定するために使用される例示的なネットワーク化されたコンピューティング環境を示している。図示のように、コンピューティング環境100は、クライアント・デバイス120、アプリケーション・サーバ130、暗号化データ・ストア140、および複数のデータ・ソース・デバイス150を含む。
【0019】
クライアント・デバイス120は一般に、ユーザがアプリケーション・サーバ130上で実行されるサービスにアクセスして、準同型暗号化されたデータのデータ・セットからツリー・データ構造を生成し、生成されたツリー構造を使用して、データ・ソース・デバイス150によって生成された異常データを識別することができるコンピューティング・デバイスを表す。図示のように、クライアント・デバイスは、ソフトウェア・アプリケーション122を含む。
【0020】
ソフトウェア・アプリケーション122は一般に、ユーザがアプリケーション・サーバ130のツリー生成動作を呼び出し、生成されたツリーを使用して、1つまたは複数のデータ・ソース・デバイス150からの異常データを識別することができるインターフェースを提供する。いくつかの実施形態では、ソフトウェア・アプリケーション122は、データがデータ・ソース・デバイス150から取り出され、処理され、将来の分析のために暗号化データ・ストア140に記憶される監視制御およびデータ取得(SCADA:Supervisory Control and Data Acquisition)システムのコンポーネントであるか、またはこれを含み得る。いくつかの実施形態では、ソフトウェア・アプリケーション122は、ユーザがアプリケーション・サーバ130上にリモートでホストされているアプリケーションとやりとりすることを可能にするウェブ・ブラウザまたは他のアプリケーションであり得る。
【0021】
いくつかの実施形態では、ソフトウェア・アプリケーション122は、以下でさらに詳細に説明するように、データ・ソース・デバイス150が潜在的な異常データを生成しているか否かを判定するために使用することができるツリー・データ構造を生成するために使用される暗号化されたデータ・ポイントの暗号化されたデータ・セットをソートすることができる。暗号化されたデータ・セット内のデータ・ポイントは準同型暗号化されているので、基になるデータを復号する必要なく、データ・ポイントdのデータ・セットをソートするための数学演算を実行することができる。特徴fの暗号化された値に基づいてデータ・ポイントをソートするために、ソフトウェア・アプリケーション122は様々なソート・メカニズムを使用することができ、たとえば、バブル・ソート、奇数偶数マージ・ソート、挿入ソート、または高性能を提供し得る他のソート・メカニズム(たとえば、ワースト・ケースの時間の複雑性がn2よりも優れているもの)などがある。
【0022】
アプリケーション・サーバ130は一般に、ソフトウェア・アプリケーション122のユーザが所有するデータ・ソース・デバイス150からの暗号化されたデータを使用して、データ・ソース・デバイス150が潜在的な異常データを生成しているか否かを判定するために使用することができるツリー・データ構造を生成する。一般に、データ・ソース・デバイス150が潜在的な異常データを生成していることを識別することにより、ソフトウェア・アプリケーション122またはアプリケーション・サーバ130あるいはその両方は、そのデータ・ソース・デバイスに関する1つまたは複数の改善策、たとえば、データ・ソース・デバイス150をネットワークから切断すること、データ・ソース・デバイス150の活動を停止してデータ・ソース・デバイス150またはデータ・ソース・デバイス150が動作する環境への被害の発生を防ぐことなどを行うように促され得る。図示のように、アプリケーション・サーバ130は、データ外れ値ツリー生成器132および異常データ識別器134を含む。
【0023】
データ外れ値ツリー生成器132は一般に、アプリケーション・サーバ130によってホストされるアプリケーションのユーザが所有する1つまたは複数のデータ・ソース・デバイス150から事前に収集されたデータのデータ・セットを使用して、データ・ソース・デバイスによって生成されたデータが潜在的に異常である(ひいては、データ・ソース・デバイスにおける潜在的な問題を示す)か否かを識別するために使用することができるツリー・データ構造を生成する。データ外れ値ツリー生成器132は、暗号化データ・ストア140からこのデータをn個のデータ・ポイント{d1,d2,d3,...,dn}のデータ・セットとして取得することができ、各エントリはm個の特徴{f1,f2,f3,...,fm}を有し、各データ・ポイントは準同型暗号化方式を使用して暗号化されている。
【0024】
データ外れ値ツリー生成器132は、ルート・ノードを確立することからツリーの組み立てを開始する。ルート・ノードは、n個のデータ・ポイントのデータ・セット内の全てのデータ・ポイントdを含むので、任意のデータ・ポイントdは、ルート・ノードに含まれる確率が1に等しい。続いて、データ外れ値ツリー生成器は、分析のためにランダムな特徴fを選択して、ルート・ノードから2つの子ノードを作成する。
【0025】
ルート・ノードからの2つの子ノードを左ノードおよび右ノードと呼び得る。以下でさらに詳細に説明するように、左ノードは一般に、特徴値が任意に選択された分割値未満である確率分布(「左ノード確率分布」)に対応する。一方、右ノードは一般に、特徴値が任意に選択された分割値以上である確率分布(「右ノード確率分布」)に対応する。左ノード確率分布および右ノード確率分布を生成するために、データ外れ値ツリー生成器132は、各データ・ポイントdの特徴fの値に応じてデータ・ポイントdのデータ・セットを並べる。
【0026】
データ・ポイントdが特徴fの値に基づいてソートされると、データ外れ値ツリー生成器132は、特徴fの最小値
【数1】
および最大値
【数2】
に基づいてルート・ノードのファジー分割を実行する。データ・ポイントd
kが左ノードに属する確率は、式
【数3】
で表され、これにより、データ・ポイントd
kが左ノードに属する暗号化された確率値が得られる。その結果、データ・ポイントd
kが右ノードに属する確率は、式
【数4】
に従って計算され得る。一般に、確率
【数5】
はd
kより大きい任意に選択された分割値が存在する確率を表し、確率
【数6】
はd
kより小さい任意に選択された分割値が存在する確率を表す。
【0027】
ルート・ノードのファジー分割を実行した後、データ外れ値ツリー生成器は、任意の数の後続の特徴fについてファジー分割を実行し、それによってツリーの長さを拡張することができる。いくつかの実施形態では、ツリーは、任意に設定される深さを有し得る。いくつかの実施形態では、任意に設定される深さは、各データ・ポイントに含まれる特徴fの数未満であり得る。任意に設定される深さは、各データ・ポイントに含まれる特徴fの数に対応する深さを有し得る。さらに他の場合には、任意に設定される深さは、各データ・ポイントに含まれる特徴fの数よりも大きい深さを有し得る。任意の実施形態では、データ外れ値ツリーは、任意の所与の特徴fをデータ外れ値ツリーの1つのレベルまたは複数のレベルで考慮することができるように構造化され得る。左右のノードの確率的メンバーシップ(probabilistic membership)は暗号化されるので、左右のノードのメンバーの最小および最大の範囲は、第1の特徴fについてルート・ノードのデータ・セットを左の子ノードおよび右の子ノードに分割することに関して上記で説明したように計算されない場合がある。このため、データ外れ値ツリー生成器132は、重み関数とランダムに選択された分割値とに基づいて、データ・ポイントd
kが左の子ノードまたは右の子ノードに属する確率を算出することができる。重み関数Wは一般に、区間(d
i,d
i+1)内の分割値に重み値を割り当てる。一般に、重み関数Wは、W
l(d
i)およびW
r(d
i)の2つの関数の積として定義され得る。W
l(d
i)は式
【数7】
に従って定義され、その結果、W
l(d
i)の値は、分割値d
iの左側に「高い」確率のポイントがない(すなわち、値がd
i未満の高い確率のポイントがない)場合、約0であり、分割値d
iの左側に少なくとも1つの「高い」確率のポイントがある場合、約1である。一方、W
r(d
i)は式
【数8】
に従って定義され得る。d
iの左側に確率1の1つのポイントおよび確率0のn-1個のポイントがある第1のシナリオでは、W
l(d
i)=1である。d
iの左側に確率1/nのn個のポイントがある第2のシナリオでは、W
l(d
i)=1/nである。
【0028】
重み関数Wが与えられると、ポイントd
kが左の子ノードに属する条件付き確率は、式
【数9】
で表され得る。これに対応して、ポイントd
kが右の子ノードに属する条件付き確率は、式
【数10】
で表され得る。
【0029】
データ外れ値ツリー内の選択された数のレベルについてツリーが生成された後、データ外れ値ツリー生成器132は、データ・ソース・デバイス150からの異常データを識別する際に使用するために、異常データ識別器134に、またはクライアント・デバイス120において異常データ識別器を実装するソフトウェア・アプリケーション122にツリーを配備することができる。異常データ識別器134は一般に、暗号化データ・ストア140のユーザのデータを暗号化するために使用された暗号鍵を使用して、ツリーの各ノードに関連付けられた確率を復号する。ツリーのノードnごとに、異常データ識別器は、データ・ポイントの期待数を調べる。データ・ポイントの期待数は、式
【数11】
で表され得る。εを小さい定数とし、ε>0とした場合に、S
η≦1+εである場合、異常データ識別器134は、ノードnが直接的または間接的に親ノードである全ての子ノードを除去することによって、ツリーを枝刈りする(prune)ことができる。ツリーを枝刈りすることにより、異常データ識別器134は、ツリーのサイズを縮小し、潜在的な異常データへのパスを非異常データへのパスよりも短くすることができる。
【0030】
異常データ識別器134はその後、ツリー・データ構造を生成するために使用されたデータ・セットに含まれていなかった特徴fを含む暗号化されたデータ・ポイントdを受信することができる。暗号化されたデータ・ポイントを使用して、異常データ識別器134は、生成されたツリー・データ構造におけるデータ・ポイントの異常スコアsを生成する。データ・ポイントdの異常スコアsは、式
【数12】
で表され、ここでE(h(d))は、ツリーのルート・ノードからポイントdを含むツリーのリーフまでの期待距離であり、nはツリーに存在するノードの総数である。E(h(d))は式
【数13】
で表され、c(n)は式
【数14】
で表され得る。
【0031】
異常スコアを生成するために、異常データ識別器134は、枝刈りされたツリー・データ構造内の各パスを走査(traverse)して、受信された暗号化されたデータ・ポイントが、枝刈りされたツリー・データ構造内の特定の末端リーフ・ノード(すなわち、子が存在しないノード、たとえば、ツリー・データ構造の枝刈りされたブランチの最後のノード、またはツリー・データ構造の最下位レベルのノード)に属する確率を特定することができる。データ・ポイントdがノードnに属する確率は、dがnおよびnの親ノードに属する確率から生成される条件付き確率であり得、式
【数15】
で表され得る。(数式中の「η」は、文中では「n」で代用される)
【0032】
dが任意の所与の親ノードn
+を有する任意のノードnに属する確率は、再帰式
【数16】
で表され得る。異常データ識別器134は、上記の式に従って異常スコアを計算する際に使用するための最も高い確率値を有するノードを選択することができる。
【0033】
一般に、データ・ポイントdの異常スコアは、データ・ポイントdがツリー・データ構造の生成に使用されたデータとある閾値量だけ異なる尤度(likelihood)を示し得る。異常スコアsが、ユーザ定義値であり得る閾値を超えている場合、異常データ識別器134は、受信されたデータ・ポイントを潜在的な異常データに対応するものとして識別することができ、データ・ポイントdを生成したデータ・ソース・デバイス150に関して対策を取ることができる。データ・ポイントdを生成したデータ・ソース・デバイス150に関して取られる対策は、データ・ソース・デバイスが動作する環境に基づいてユーザにより定義され得る。たとえば、異常データ識別器134は、データ・ソース・デバイス150が故障している可能性があることを示すアラートまたは他の通知をクライアント・デバイス120のユーザに生成することができる。いくつかの場合では、データ・ソース・デバイス150が定期的にデータを生成する場合、異常データ識別器134は、データを分析のためにアプリケーション・サーバ130に報告し続けるが、ツリー・データ構造のその後の生成が異常データの影響を受けないように、暗号化データ・ストア140にはデータを送信しないようデータ・ソース・デバイスに指示することができる。さらに他の場合には、異常データ識別器134は、1つまたは複数の対策を取って、データ・ソース・デバイス150をネットワーク110から切断するか、または別の方法でデータ・ソース・デバイス150の動作を停止することによって、データ・ソース・デバイス150、またはデータ・ソース・デバイス150が動作する環境、あるいはその両方への被害の発生を防ぐことができる。
【0034】
データ外れ値ツリー生成器132および異常データ識別器134は、アプリケーション・サーバ130上で実行されるように図示しているが、ネットワーク化されたコンピューティング環境内の異なるコンピューティング・エンティティに分散されることを認識されたい。いくつかの実施形態では、たとえば、データ外れ値ツリー生成器132は、リモートのアプリケーション・サーバ上で動作し得、異常データ識別器134は、データ外れ値ツリー生成器132によって生成されたツリー・データ構造を使用してクライアント・デバイス120上で実行され得る。他の実施形態では、データ外れ値ツリー生成器132および異常データ識別器134は、クライアント・デバイス120上でローカルに実行されるソフトウェア・アプリケーション122の一部であり得る。
【0035】
暗号化データ・ストア140は一般に、データ・ソース・デバイス150によって生成された準同型暗号化されたデータを記憶し、これは、その後生成されたデータが異常データまたは潜在的な異常データに対応するかを判定する際に使用するためのツリー・データ構造を生成するためにデータ外れ値ツリー生成器132によって使用され得る。暗号化データ・ストア140は、たとえば、あるユーザに関連するデータが他のユーザに関連するデータと混ざらないように、ユーザ別に区分され得る。暗号化データ・ストア140は、たとえば、データ・ソース・デバイス150によって生成されたデータが記憶されるリレーショナル・データベース、非リレーショナル・データベース、フラット・データ・ストアなどであり得る。
【0036】
データ・ソース・デバイス150は一般に、動作データおよび他のデータを記録し、記録されたデータを暗号化し、暗号化されたデータを分析のためにリモート・サーバに送信することができる様々なデバイスを示す。データ・ソース・デバイス150は、モノのインターネット・デバイスと呼ばれ、ユーザの自宅、医療施設、産業施設などの様々な環境に配備され得る。データ・ソース・デバイス150によって生成されるデータは、これらのデバイスが動作する環境、およびこれらのデバイスがどのように構成されるかに依存し得る。
【0037】
図2は、一実施形態による、記録された暗号化されたデータ・ポイントを潜在的な異常データとして識別するためにシステムによって実行される例示的な動作を示している。図示のように、動作200はブロック210から開始し、ここでシステムは暗号化されたデータ・ポイントdのデータ・セットを受信する。各データ・ポイントは、複数の暗号化された特徴fを含む。前述のように、暗号化されたデータ・ポイントは、1つまたは複数のデータ・ソース・デバイス150から取得され、暗号化データ・ストア140に記憶されるデータに対応し得る。暗号化されたデータ・ポイントは、準同型暗号化アルゴリズムを使用して暗号化され、これにより、暗号化されたデータ・ポイントを復号して基になるデータを復元する必要なしに、暗号化されたデータ・ポイントに対して様々な数学演算を実行することが可能になる。
【0038】
ブロック220において、システムは、暗号化されたデータ・ポイントのデータ・セットからアイソレーション・フォレスト・ツリー・データ構造を生成する。アイソレーション・フォレスト・ツリー・データ構造は、データ・セットの複数のファジー分割に基づいて生成され、複数のファジー分割のそれぞれは、暗号化されたデータ・ポイントの特定の特徴での分割に対応し得る。前述のように、アイソレーション・フォレスト・データ・ツリー・データ構造は、複数のデータ・ポイントのそれぞれを含むルート・ノードから構築され得る。第1の分割は、特定の特徴の最小値および最大値に基づいて実行され得る。ツリー・データ・セット内の下位レベルのノードで表される後続の分割は、データ・ポイントが選択された分割値よりも小さいまたは大きい特徴を有する加重確率に基づいて分割され得る。データ・セット内の異なる特徴に対応するノードのレベルは、各特徴がアイソレーション・フォレスト・ツリー・データ構造に追加されるか、閾値数の特徴がアイソレーション・フォレスト・ツリー・データ構造に追加されるまで、アイソレーション・フォレスト・ツリー・データ構造に追加され得る。最初に選択された特徴に対応するツリーのレベルを超えてデータ・ポイントに対して分割が実行されない場合があるので、最初に選択された特徴に対応するツリーのレベルより下の各子ノードは、特徴値が選択された分割値よりも小さいまたは大きい確率として分割をモデル化し得る。結果として、アイソレーション・フォレスト・ツリー・データ構造に実行される枝刈り動作の前に、ツリー・データ構造は、ツリーの各レベルに2feature_number(2feature_number)個のノードを含み得る(たとえば、ルート・ノードは1つのノードを有し(特徴0)、第1レベルは第1の特徴f1でのデータ・ポイントの左/右の分割を表す2つのノードを有し、第2のレベルは第1の特徴f1でのデータ・ポイントの左/右の分割に対する第2の特徴f2でのデータ・ポイントの左/右の分割を表す4つのノードを有する、など)。
【0039】
ブロック230において、システムはデータ・ポイントを分析のために受信する。受信されたデータ・ポイントは一般に、複数のデータ・ソース・デバイス150のうちの1つから受信され、ブロック220においてアイソレーション・フォレスト・ツリー・データ構造を生成するために使用されたデータ・セットに含まれなかったデータを含む。前述のように、受信されたデータ・ポイントもまた、データ・ポイントに含まれる情報のセキュリティおよびプライバシーを保護するために暗号化され、受信されたデータ・ポイントを復号して機密データを攻撃にさらすことなく、データ・ポイントに対して演算が実行され得る。
【0040】
ブロック240において、システムは、ツリー・データ構造を走査して、受信されたデータ・ポイントの各特徴について、受信されたデータ・ポイントがツリー・データ構造のレベルのノードに属する確率を特定する。前述のように、ツリー・データ構造の走査を再帰的に実行して、データ・ポイントdがツリー・データ構造内の各末端ノードに属する確率を、データ・ポイントdが末端ノードおよびその親ノードに属する条件付き確率として特定し得る。
【0041】
ブロック250において、システムは特定された確率に基づいて異常スコアを計算する。受信されたデータ・ポイントを含む計算された確率が最も高いノードは、異常スコアの計算に使用される選択されたノードであり得る。前述のように、異常スコアは、ツリー・データ構造のルート・ノードから選択されたノードまでのパスの長さと、ツリー内のノードの総数とに基づいて計算され得る。ルート・ノードから選択されたノードまでのパスが短いことは、受信されたデータ・ポイントが異常であることを示し得、ルート・ノードから選択されたノードまでのパスが長いことは、受信されたデータ・ポイントがデータ・ソース・デバイスから以前に受信されたデータのパターンに適合していることを示し得る。
【0042】
ブロック260において、システムは、計算された異常スコアが閾値を超えているという判定に基づいて、受信されたデータ・ポイントを潜在的に異常であると識別する。受信されたデータ・ポイントを潜在的に異常であると識別したことに基づいて、システムは、受信されたデータ・ポイントを生成したデータ・ソース・デバイスに関して1つまたは複数の対策を取ることができる。たとえば、対策には、データ・ソース・デバイスが修理または交換されるまでデータ・ソース・デバイスでのデータの記録を中止すること、データ・ソース・デバイスの動作を中止することなどが含まれ得る。
【0043】
図3は、一実施形態による、受信された暗号化されたデータ・ポイントが潜在的な異常データに対応するか否かを判定するために使用することができるツリー・データ構造を構築するためにシステムによって実行される例示的な動作を示している。図示のように、動作300はブロック310から始まり、ここでシステムは、データ・セット内の各暗号化されたデータ・ポイントに含まれる複数の暗号化された特徴のうちの暗号化された特徴を選択する。
【0044】
ブロック320において、システムは、受信されたデータ・セットを、選択された暗号化された特徴について最小値から最大値の順にソートする。前述のように、暗号化されたデータ・ポイント(ひいては暗号化された特徴)は一般に準同型暗号化技術を使用して暗号化されているので、データ・ポイントを復号して基になるデータを復元することなく、暗号化されたデータ・ポイントに対して数学演算が実行され得る。
【0045】
ブロック330において、システムは、暗号化された特徴の仮想分割値の存在を仮定し、仮想分割値が暗号化された特徴の区間内に存在する尤度に対応する、仮想分割値に対する重みを計算する。重み値は、選択されたデータ・ポイントと、データ・セット内の次のデータ・ポイントとの間の暗号化された特徴のスプリッタに重みを割り当てる重み関数に基づいて計算され得る。前述のように、仮想分割値の選択は、ルート・ノード以外のノードに対して実行され、最初に選択された特徴に対応する左右のノードの包含確率(containment probability)は、最初に選択された特徴の最小値および最大値に基づき得る。ルート・ノード以外のノードについて、仮想分割値を選択してデータ・セットのファジー分割を可能にし得、システムは、所与のデータ・ポイントがツリー・データ構造内の直接の親ノードの左または右のノードのいずれに属するかについて知る必要はない。
【0046】
ブロック340において、システムは、それぞれのデータ・ポイントごとに、それぞれのデータ・ポイントが、分割値よりも小さい値に対応する左ノードまたは分割値よりも大きい値に対応する右ノードに属する確率を計算する。システムはどのノードが実際に親ノードに属しているかに関する知識を有さない場合があるので、各ノードはデータ・セット全体の確率分布を含む。
【0047】
ブロック350において、システムは、左右のノードをツリーの下に、直接の親ノードに接続して追加する。左ノードは一般に、データ・セット内の各データ・ポイントの特徴値が選択された分割値未満である、データ・セット全体にわたる確率分布を表し、右ノードは一般に、データ・セット内の各データ・ポイントの特徴値が選択された分割値以上である、データ・セット全体にわたる確率分布を表す。
【0048】
ブロック360において、システムは、分析すべき特徴が残っているか否か、またはツリー・データ構造の深さが最大のツリーの深さ以下であるか否かを判定する。分析すべき特徴が残っている場合、またはツリー構造の深さが最大のツリーの深さ以下である場合、動作300はブロック310に戻ることができ、ここで他の暗号化された特徴がツリー・データ構造への追加のために選択される。そうでない場合、動作300は終了し得、結果として得られたツリー・データ構造をアプリケーション・サーバまたはクライアント・デバイスの異常データ識別器に提供して、1つまたは複数のデータ・ソース・デバイスから新たに生成されたデータ・ポイントが異常データに対応するか否かを判定し、対応する場合、1つまたは複数のデータ・ソース・デバイスに関して対策を取り得る。
【0049】
図4は、一実施形態による、暗号化されたデータ・セットから生成され、データ・ソース・デバイスから受信された暗号化されたデータ・ポイントが潜在的に異常であるか否かを判定するために使用される例示的なツリー・データ構造400を示している。図示のように、ツリー・データ構造400は、ルート・ノード・レベル402と、複数の特徴レベル404、406、408とを含む。ルート・ノード・レベル402は、ツリー・データ構造400を生成するために使用されるデータ・セット全体を表す単一のノードを含み、その結果、データ・セット内の各データ・ポイントはルート・ノードに属する確率が1になる。
【0050】
特徴1レベル404は、第1の特徴のソートされた値を使用してデータ・セットに対して行われる第1の分割を表す。前述のように、第1の分割を実行して左ノード404Lおよび右ノード404Rを生成するために、システムは、データ・セット内の第1の特徴の最小値および最大値に基づいて左包含確率および右包含確率を計算することにより、ファジー分割を実行することができる。これらの特徴は一般に準同型暗号化されているので、準同型暗号化された値に対して数学演算を実行した結果として、左右の包含確率も準同型暗号化され得る。
【0051】
特徴2レベル406は、第2の特徴のソートされた値を使用してデータ・セットに対して行われる第2の分割を表す。前述のように、システムは、どのデータ・ポイントが左ノード404Lおよび右ノード404Rに属するかについての情報を有さない場合があるので、特徴2レベル406から特徴nレベル408までで生成される左/右ノードは、任意に選択された分割値および重み関数が与えられた場合の条件付き確率分布として計算され得る。左ノード406LLは、データ・ポイントがノード404Lからの左のサブツリーに属する尤度の確率分布を表し、右ノード406LRは、データ・ポイントがノード404Lからの右のサブツリーに属する尤度の確率分布を表す。同様に、左ノード406RLは、データ・ポイントがノード404Rからの左のサブツリーに属する尤度の確率分布を表し、右ノード406RRは、データ・ポイントがノード404Rからの右のサブツリーに属する尤度の確率分布を表す。前述のように、ツリーの幅は、ツリー・データ構造に追加される後続の特徴ごとに2倍になり得、その結果、特徴nレベル408は、行われる枝刈りの前では2n個のノードを含む。
【0052】
図5は、一実施形態による、複数の暗号化された特徴を含む暗号化されたデータ・ポイントのセットを使用してアイソレーション・フォレスト・ツリー・データ構造を生成し、ツリー・データ構造を使用してデータ・ソース・デバイスから受信された暗号化されたデータが異常または潜在的に異常であるかを判定する例示的なシステム500を示している。図示のように、システム500は、中央処理装置502、様々なI/Oデバイス514(たとえば、キーボード、ディスプレイ、マウス・デバイス、ペン入力など)をシステム500に接続することを可能にし得る1つまたは複数のI/Oデバイス・インターフェース504、ネットワーク・インターフェース506、メモリ508、ストレージ510、および相互接続512を限定なく含む。
【0053】
CPU502は、メモリ508に記憶されたプログラミング命令を取り出して実行し得る。同様に、CPU502は、メモリ508に存在するアプリケーションを取り出して記憶し得る。相互接続512は、CPU502、I/Oデバイス・インターフェース504、ネットワーク・インターフェース506、メモリ508、およびストレージ510の間でプログラミング命令およびアプリケーション・データを送信する。CPU502は、単一のCPU、複数のCPU、複数の処理コアを有する単一のCPUなどを表すために含まれる。さらに、メモリ508は、ランダム・アクセス・メモリを表すために含まれる。さらに、ストレージ510は、ディスク・ドライブ、ソリッド・ステート・ドライブ、相変化メモリ・デバイスなどであり得る。ストレージ510は、単一のユニットとして示しているが、固定式ディスク・ドライブ、ソリッド・ステート・ドライブ、着脱式メモリ・カードもしくは光ストレージ、ネットワーク接続ストレージ(NAS)、またはストレージ・エリア・ネットワーク(SAN)などの、固定式または着脱式あるいはその両方のストレージ・デバイスの組合せであり得る。
【0054】
図示のように、メモリ508は、データ外れ値ツリー生成器520および異常データ識別器530を含む。データ外れ値ツリー生成器520は一般に、各データ・ポイントが特徴fのセットを含む、暗号化されたデータ・ポイントdのデータ・セットを取得し、データ・ポイントが複数の特徴fについて任意に選択された値よりも小さいまたは大きい条件付き確率を含むツリー・データ構造を生成する。前述のように、そうするために、データ外れ値ツリー生成器520は、各特徴fについてデータ・ポイントをソートして、任意の所与の特徴fについて、データ・ポイントが最小から最大の順に並べられるようにすることができる。前述のように、準同型暗号化技術を使用してデータ・ポイントを暗号化し得るので、データ・ポイントに対して数学演算を実行するためにデータ・ポイントが復号される必要はない。第1の特徴f1の最小値および最大値に基づいて第1の分割が実行され、特徴f2からfnについて重み関数と任意に選択された分割値とに基づいて後続の分割が実行され、ここでnはデータ・ポイントに含まれる特徴の総数、またはユーザ定義の最大のツリーの深さを表す。
【0055】
異常データ識別器530は一般に、データ外れ値ツリー生成器520によって生成されたツリー・データ構造を使用して、ネットワーク・インターフェース506を介してリモートのデータ・ソース・デバイス(たとえば、IoTデバイス)から受信された暗号化されたデータ・ポイントが潜在的な異常データに対応するか否かを判定する。異常データ識別器530は、各ノードについて求められた確率に基づいてツリー・データ構造を枝刈りし、枝刈りされたツリー・データ構造を使用して、受信された暗号化されたデータ・ポイントが属するノードを識別することができる。ツリー・データ構造のルート・ノードから識別されたノードまでのパスの長さと、枝刈りされたデータ構造内のノードの総数とに基づいて、異常データ識別器530は、受信された暗号化されたデータ・ポイントの異常スコアを計算することができる。受信された暗号化されたデータ・ポイントの異常スコアが閾値を超えている場合、異常データ識別器530は、受信された暗号化されたデータ・ポイントを潜在的に異常なものとしてマークし、暗号化されたデータ・ポイントが受信されたデータ・ソース・デバイスに関して1つまたは複数の対策を取ることができる。
【0056】
ストレージ510は、図示のように、暗号化データ・ストア540を含む。暗号化データ・ストア540は一般に、データ・ソース・デバイスから受信されたデータ・ポイントが潜在的な異常データに対応するか否かを判定するために異常データ識別器530によって使用されるツリー・データ構造を生成する際にデータ外れ値ツリー生成器520によって使用するための複数のユーザ・デバイスからの暗号化されたデータが記憶されるデータ・ストアを示す。暗号化データ・ストア540は、複数のユーザからのデータが混ざり合わないように、ユーザごとに分別され得る。暗号化データ・ストア540は、暗号化されたデータが記憶され、取り出される、リレーショナル・データベース、非リレーショナル・データベース、フラット・ファイル・ストア、または他の任意のデータ・リポジトリであり得る。
【0057】
本発明の様々な実施形態の説明は、例示の目的で提示しているが、網羅的であることも、開示した実施形態に限定されることも意図したものではない。記載した実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用する用語は、実施形態の原理、実際の適用、または市場に見られる技術に対する技術的改善を最もよく説明するために、または当業者が本明細書に開示した実施形態を理解できるようにするために選択している。
【0058】
以下では、本開示で提示する実施形態を参照する。しかしながら、本開示の範囲は、記載した特定の実施形態に限定されない。そうではなく、企図した実施形態を実装および実践するために、異なる実施形態に関係するものであるか否かに関係なく、以下の特徴および要素の任意の組合せが考えられる。さらに、本明細書に開示した実施形態は、他の可能な解決策または従来技術に勝る利点を実現し得るが、所与の実施形態によって特定の利点が実現されるか否かは、本開示の範囲を限定するものではない。したがって、以下の態様、特徴、実施形態、および利点は、例示的なものにすぎず、請求項に明示的に記載している場合を除き、添付の特許請求の範囲の要素または限定とは見なされない。同様に、「本発明」への言及は、本明細書に開示した発明の主題の一般化として解釈されるべきではなく、請求項に明示的に記載している場合を除き、添付の特許請求の範囲の要素または限定と見なされるべきではない。
【0059】
本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態を取り得、これらは全て一般に本明細書では、「回路」、「モジュール」または「システム」と呼び得る。
【0060】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組合せであり得る。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0061】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持および記憶可能な有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、限定はしないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック(R)、フロッピー(R)・ディスク、命令が記録されたパンチ・カードまたは溝の隆起構造などの機械的にコード化されたデバイス、およびこれらの任意の適切な組合せが含まれる。コンピュータ可読記憶媒体は、本明細書で使用する場合、たとえば、電波または他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を伝搬する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、または有線で伝送される電気信号などの一過性の信号自体であると解釈されるべきではない。
【0062】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、たとえば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワーク、またはそれらの組合せなどのネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを含み得る。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶する。
【0063】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモート・コンピュータ上で、あるいは完全にリモート・コンピュータまたはサーバ上で実行され得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され、または(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータへの接続がなされ得る。いくつかの実施形態では、たとえば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してコンピュータ可読プログラム命令を実行することによって、電子回路を個人向けにし得る。
【0064】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書で説明している。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せが、コンピュータ可読プログラム命令によって実装できることは理解されよう。
【0065】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/行為を実装するための手段を生成するように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてマシンを生成し得る。また、これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/行為の態様を実装する命令を含む製造品を構成するように、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはそれらの組合せに特定の方法で機能するように指示することが可能なコンピュータ可読記憶媒体に記憶され得る。
【0066】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/行為を実装するように、コンピュータ実装処理を生成するべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させ得る。
【0067】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、指定される論理的機能を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の一部を表し得る。いくつかの代替的実装形態では、ブロックに記載した機能は、図示した順序以外で行われ得る。たとえば、関与する機能に依って、連続して示した2つのブロックは、実際には実質的に同時に実行され、またはそれらのブロックは、場合により逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定される機能もしくは行為を実行するか、または専用ハードウェアおよびコンピュータ命令の組合せを実行する専用のハードウェア・ベースのシステムによって実装できることにも気付くであろう。
【0068】
上記は本発明の実施形態を対象とするものであるが、本発明の他のおよびさらなる実施形態は、その基本的な範囲から逸脱することなく考案され、その範囲は以下の特許請求の範囲によって決まる。