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

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

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

特表2024-518450準同型推論のための事前に暗号化されたデータの効率的なバッチ化
<>
  • 特表-準同型推論のための事前に暗号化されたデータの効率的なバッチ化 図1
  • 特表-準同型推論のための事前に暗号化されたデータの効率的なバッチ化 図2
  • 特表-準同型推論のための事前に暗号化されたデータの効率的なバッチ化 図3
  • 特表-準同型推論のための事前に暗号化されたデータの効率的なバッチ化 図4
  • 特表-準同型推論のための事前に暗号化されたデータの効率的なバッチ化 図5
  • 特表-準同型推論のための事前に暗号化されたデータの効率的なバッチ化 図6
  • 特表-準同型推論のための事前に暗号化されたデータの効率的なバッチ化 図7
  • 特表-準同型推論のための事前に暗号化されたデータの効率的なバッチ化 図8
  • 特表-準同型推論のための事前に暗号化されたデータの効率的なバッチ化 図9
  • 特表-準同型推論のための事前に暗号化されたデータの効率的なバッチ化 図10
  • 特表-準同型推論のための事前に暗号化されたデータの効率的なバッチ化 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-05-01
(54)【発明の名称】準同型推論のための事前に暗号化されたデータの効率的なバッチ化
(51)【国際特許分類】
   G09C 1/00 20060101AFI20240423BHJP
【FI】
G09C1/00 650Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023568626
(86)(22)【出願日】2022-05-10
(85)【翻訳文提出日】2023-11-07
(86)【国際出願番号】 EP2022062676
(87)【国際公開番号】W WO2022238426
(87)【国際公開日】2022-11-17
(31)【優先権主張番号】17/315,433
(32)【優先日】2021-05-10
(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)【復代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
(74)【復代理人】
【識別番号】100118108
【弁理士】
【氏名又は名称】久保 洋之
(72)【発明者】
【氏名】サルパトワール、カンティ
(72)【発明者】
【氏名】ヴァクリン、ローマン
(72)【発明者】
【氏名】アハロニ、エフード
(72)【発明者】
【氏名】レイフィールド、ジェームズ
(72)【発明者】
【氏名】ソセアヌ、オムリ
(57)【要約】
プライバシー保護準同型推論は、暗号化されたデータレコードのバッチ処理を利用する。各データレコードは、推論が実行される対象のプライベートデータ部分を有する。バッチ処理は、各暗号化されたデータレコードが他のデータレコードに対して固有の位置に関連するプライベートデータ部分を持つことを保証する技術によって、暗号化されたデータレコードのセットに関して可能になる。その後、暗号化されたデータレコードのセットは、推論が行われる単一の暗号化されたデータレコードを生成するために合計される。第1の実施形態では、対象のプライベートデータ部分は、(推論が適用される)実行時に選択的に固有に配置される。第2の実施形態では、対象のプライベートデータ部分は、好ましくはオフラインプロセスで、最初に保存データと一緒に配置される。その後、実行時に個々の暗号化されたデータレコードが、バッチ化前にプライベートデータ部分を固有の位置に調整するために、必要に応じて処理される。
【特許請求の範囲】
【請求項1】
リアルタイムプライバシー保護推論のための方法であって、
時間窓の間にリアルタイムで識別されたトランザクションのセットについて、および前記セット内の各トランザクションについて、暗号化されたデータレコードを取得することであって、前記暗号化されたデータレコードは、対象のプライベートデータ部分を有する、取得することと、
各々が固有の位置に前記対象のプライベートデータ部分を有する変換され暗号化されたデータレコードのセットを生成するために、前記暗号化されたデータレコードの各々に1または複数の変換を適用することと、
バッチ化され暗号化されたデータレコードを生成するために、前記変換され暗号化されたデータレコードを追加することであって、前記バッチ化され暗号化されたデータレコードは、すべての前記変換され暗号化されたデータレコードからの前記対象のプライベートデータ部分を含む、追加することと、
前記バッチ化され暗号化されたデータレコードに対して準同型推論を実行することと、
前記準同型推論に応答して、前記トランザクションのセットの1または複数を所定の特性を有するものとして識別することと、
を含む、方法。
【請求項2】
前記1または複数の変換を適用することは、
対象の特徴セットに対応する前記部分以外の、前記暗号化されたデータレコードのすべての部分をゼロパディングすることと、
第1の暗号化されたデータレコード以外の各暗号化されたデータレコードについて、
前記対象のプライベートデータ部分を前記固有の位置に配置するために、シフト回転関数をリアルタイムでインクリメンタルに適用することと、
を含む、請求項1に記載の方法。
【請求項3】
前記トランザクションのセットは、リアルタイムのトランザクションデータのストリームから評価のためにフラグを立てられたトランザクションである、前記請求項のいずれか1項に記載の方法。
【請求項4】
プライバシー保護推論のための方法であって、
第1の保存データフェーズ中に、
データレコードのセットを特定することであって、各データレコードは、対象のプライベートデータ部分を有する、特定することと、
各々が位置に前記対象のプライベートデータ部分を有する暗号化されたデータレコードのセットを生成し、保存状態で記憶するために、前記データレコードの各々の生データに1または複数の変換を適用することと、
第2の実行フェーズ中に、および時間窓の間にリアルタイムで識別されたトランザクションのセットについて、
前記トランザクションのセットに対応する前記暗号化されたデータレコードを取得することと、
前記暗号化されたデータレコードのセットが各々固有の位置に前記対象のプライベートデータ部分を持つように、取得された前記暗号化されたデータレコードのうち、0個以上の前記対象のプライベートデータ部分の前記位置を調整することと、
バッチ化され暗号化されたデータレコードを生成するために取得された前記暗号化されたデータレコードを追加することであって、前記バッチ化され暗号化されたデータレコードは、取得されたすべての前記変換され暗号化されたデータレコードからの前記対象のプライベートデータ部分を含む、追加することと、
前記バッチ化され暗号化されたデータレコードに対して準同型推論を実行することと、
前記準同型推論に応答して、前記トランザクションのセットの1または複数を所定の特性を有するものとして識別することと、
を含む、方法。
【請求項5】
1または複数の変換を適用することは、
所定のデータレコードについて、ランダムな値を取得することと、
前記対象のプライベートデータ部分を前記位置にシフトさせるために、前記ランダムな値を使用して、前記所定のデータレコードに対応する前記暗号化されたデータレコードを生成するために、暗号化を適用することと、
前記暗号化されたデータレコードに関連付けて前記ランダムな値を記憶することと、
を含む、請求項4に記載の方法。
【請求項6】
前記対象のプライベートデータ部分の前記位置を調整することは、
少なくとも第1および第2の暗号化されたデータレコードについて、前記位置の重複があるかどうかを判定することと、
前記重複があると判定された場合、前記第1および第2の暗号化されたデータレコードの少なくとも一方において、前記対象のプライベートデータ部分を、占有されていないスペースに再配置することと、
を含む、請求項4または5のいずれか1項に記載の方法。
【請求項7】
前記トランザクションのセットは、リアルタイムのトランザクションデータのストリームから評価のフラグを立てられたトランザクションである、請求項4から6のいずれか1項に記載の方法。
【請求項8】
装置であって、
プロセッサと、
前記プロセッサによって実行されるコンピュータプログラム命令を保持するコンピュータメモリと、を備え、前記コンピュータプログラム命令は、リアルタイムプライバシー保護推論を実行するように構成され、前記コンピュータプログラム命令は、
時間窓の間にリアルタイムで識別されたトランザクションのセットについて、および前記セット内の各トランザクションについて、暗号化されたデータレコードを取得することであって、前記暗号化されたデータレコードは、対象のプライベートデータ部分を有する、取得することと、
各々が固有の位置に前記対象のプライベートデータ部分を有する変換され暗号化されたデータレコードのセットを生成するために、前記暗号化されたデータレコードの各々に1または複数の変換を適用することと、
バッチ化され暗号化されたデータレコードを生成するために、前記変換され暗号化されたデータレコードを追加することであって、前記バッチ化され暗号化されたデータレコードは、すべての前記変換され暗号化されたデータレコードからの前記対象のプライベートデータ部分を含む、追加することと、
前記バッチ化され暗号化されたデータレコードに対して準同型推論を実行することと、
前記準同型推論に応答して、前記トランザクションのセットの1または複数を所定の特性を有するものとして識別することと、
を実行するように構成される、
装置。
【請求項9】
適用するように構成された前記コンピュータプログラム命令は、
対象の特徴セットに対応する前記部分以外の、前記暗号化されたデータレコードのすべての部分をゼロパディングすることと、
第1の暗号化されたデータレコード以外の各暗号化されたデータレコードについて、
前記対象のプライベートデータ部分を前記固有の位置に配置するために、シフト回転関数をリアルタイムでインクリメンタルに適用することと、
をさらに実行するように構成されたコンピュータプログラム命令を含む、請求項8に記載の装置。
【請求項10】
前記トランザクションのセットは、リアルタイムのトランザクションデータのストリームから評価のフラグを立てられたトランザクションである、請求項8または9のいずれか1項に記載の装置。
【請求項11】
装置であって、
プロセッサと、
前記プロセッサによって実行されるコンピュータプログラム命令を保持するコンピュータメモリと、を備え、前記コンピュータプログラム命令は、プライバシー保護推論のために構成され、前記コンピュータプログラム命令は、
第1の保存データフェーズ中に、
データレコードのセットを特定することであって、各データレコードは、対象のプライベートデータ部分を有する、特定することと、
各々が位置に前記対象のプライベートデータ部分を有する暗号化されたデータレコードのセットを生成し、保存状態で記憶するために、前記データレコードの各々の生データに1または複数の変換を適用することと、
第2の実行フェーズ中に、および時間窓の間にリアルタイムで識別されたトランザクションのセットについて、
前記トランザクションのセットに対応する前記暗号化されたデータレコードを取得することと、
取得された前記暗号化されたデータレコードのセットが各々固有の位置に前記対象のプライベートデータ部分を持つように、取得された前記暗号化されたデータレコードのうち、0個以上の前記対象のプライベートデータ部分の前記位置を調整することと、
バッチ化され暗号化されたデータレコードを生成するために取得された前記暗号化されたデータレコードを追加することであって、前記バッチ化され暗号化されたデータレコードは、取得されたすべての前記暗号化されたデータレコードからの前記対象のプライベートデータ部分を含む、追加することと、
前記バッチ化され暗号化されたデータレコードに対して準同型推論を実行することと、
前記準同型推論に応答して、前記トランザクションのセットの1または複数を所定の特性を有するものとして識別することと、
を実行するように構成される、装置。
【請求項12】
1または複数の変換を適用するように構成された前記コンピュータプログラム命令は、
所定のデータレコードについて、ランダムな値を取得することと、
前記対象のプライベートデータ部分を前記位置にシフトさせるために、前記ランダムな値を使用して、前記所定のデータレコードに対応する前記暗号化されたデータレコードを生成するために、暗号化を適用することと、
前記暗号化されたデータレコードに関連付けて前記ランダムな値を記憶することと、
をさらに実行するように構成されるコンピュータプログラム命令を含む、
請求項11に記載の装置。
【請求項13】
前記対象のプライベートデータ部分の前記位置を調整するように構成された前記コンピュータプログラム命令は、
少なくとも第1および第2の暗号化されたデータレコードについて、前記位置の重複があるかどうかを判定することと、
前記重複があると判定された場合、前記第1および第2の暗号化されたデータレコードの少なくとも一方において、前記対象のプライベートデータ部分を、占有されていないスペースに再配置することと、
をさらに実行するように構成されたコンピュータプログラム命令を含む、請求項11または12のいずれか1項に記載の装置。
【請求項14】
前記トランザクションのセットは、リアルタイムのトランザクションデータのストリームから評価のフラグを立てられたトランザクションである、請求項11から13のいずれか1項に記載の装置。
【請求項15】
リアルタイムのプライバシー保護推論を実行するデータ処理システムで使用するための、非一時的コンピュータ可読媒体中のコンピュータプログラム製品であって、前記コンピュータプログラム製品は、コンピュータプログラム命令を保持し、前記コンピュータプログラム命令は、前記データ処理システムによって実行されると、
時間窓の間にリアルタイムで識別されたトランザクションのセットについて、および前記セット内の各トランザクションについて、暗号化されたデータレコードを取得することであって、前記暗号化されたデータレコードは、対象のプライベートデータ部分を有する、取得することと、
各々が固有の位置に前記対象のプライベートデータ部分を有する変換され暗号化されたデータレコードのセットを生成するために、前記暗号化されたデータレコードの各々に1または複数の変換を適用することと、
バッチ化され暗号化されたデータレコードを生成するために、前記変換され暗号化されたデータレコードを追加することであって、前記バッチ化され暗号化されたデータレコードは、すべての前記変換され暗号化されたデータレコードからの前記対象のプライベートデータ部分を含む、追加することと、
前記バッチ化され暗号化されたデータレコードに対して準同型推論を実行することと、前記準同型推論に応答して、前記トランザクションのセットの1または複数を所定の特性を有するものとして識別することと、
を実行するように構成される、コンピュータプログラム製品。
【請求項16】
適用するように構成された前記コンピュータプログラム命令は、
対象の特徴セットに対応する前記部分以外の、前記暗号化されたデータレコードのすべての部分をゼロパディングすることと、
第1の暗号化されたデータレコード以外の各暗号化されたデータレコードについて、
前記対象のプライベートデータ部分を前記固有の位置に配置するために、シフト回転関数をリアルタイムでインクリメンタルに適用することと、
をさらに実行するように構成されたコンピュータプログラム命令を含む、
請求項15に記載のコンピュータプログラム製品。
【請求項17】
前記トランザクションのセットは、リアルタイムのトランザクションデータのストリームから評価のフラグを立てられたトランザクションである、請求項15または16のいずれか1項に記載のコンピュータプログラム製品。
【請求項18】
プライバシー保護推論のためのデータ処理システムで使用するための、非一時的コンピュータ可読媒体中のコンピュータプログラム製品であって、前記コンピュータプログラム製品は、コンピュータプログラム命令を保持し、前記コンピュータプログラム命令は、前記データ処理システムによって実行されると、
第1の保存データフェーズ中に、
データレコードのセットを特定することであって、各データレコードは、対象のプライベートデータ部分を有する、特定することと、
各々が位置に前記対象のプライベートデータ部分を有する暗号化されたデータレコードのセットを生成し、保存状態で記憶するために、前記データレコードの各々の生データに1または複数の変換を適用することと、
第2の実行フェーズ中に、および時間窓の間にリアルタイムで識別されたトランザクションのセットについて、
前記トランザクションのセットに対応する前記暗号化されたデータレコードを取得することと、
取得された前記暗号化されたデータレコードのセットが各々固有の位置に前記対象のプライベートデータ部分を持つように、取得された前記暗号化されたデータレコードのうち、0個以上の前記対象のプライベートデータ部分の前記位置を調整することと、
バッチ化され暗号化されたデータレコードを生成するために取得された前記暗号化されたデータレコードを追加することであって、前記バッチ化され暗号化されたデータレコードは、取得されたすべての前記暗号化されたデータレコードからの前記対象のプライベートデータ部分を含む、追加することと、
前記バッチ化され暗号化されたデータレコードに対して準同型推論を実行することと、
前記準同型推論に応答して、前記トランザクションのセットの1または複数を所定の特性を有するものとして識別することと、
を実行するように構成される、コンピュータプログラム製品。
【請求項19】
1または複数の変換を適用するように構成された前記コンピュータプログラム命令は、
所定のデータレコードについて、ランダムな値を取得することと、
前記対象のプライベートデータ部分を前記位置にシフトさせるために、前記ランダムな値を使用して、前記所定のデータレコードに対応する前記暗号化されたデータレコードを生成するために、暗号化を適用することと、
前記暗号化されたデータレコードに関連付けて前記ランダムな値を記憶することと、
をさらに実行するように構成されるコンピュータプログラム命令を含む、
請求項18に記載のコンピュータプログラム製品。
【請求項20】
前記対象のプライベートデータ部分の前記位置を調整するように構成された前記コンピュータプログラム命令は、
少なくとも第1および第2の暗号化されたデータレコードについて、前記位置の重複があるかどうかを判定することと、
前記重複があると判定された場合、前記第1および第2の暗号化されたデータレコードの少なくとも一方において、前記対象のプライベートデータ部分を、占有されていないスペースに再配置することと、
をさらに実行するように構成されたコンピュータプログラム命令を含む、請求項18または19のいずれか1項に記載のコンピュータプログラム製品。
【請求項21】
前記トランザクションのセットは、リアルタイムのトランザクションデータのストリームから評価のフラグを立てられたトランザクションである、請求項18から20のいずれか1項に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、高スループットのトランザクション処理環境におけるAIベースのプライバシー保護推論に関する。
【背景技術】
【0002】
クレジットカードの不正検知のようなアプリケーションでは、トランザクションはリアルタイムで到着し、不正を検知するために高精度の機械学習モデルに照らしてスコアリングする必要がある。不正検知に使用されるユーザプロファイルやその他の機密情報(個人情報やクレジットカード情報など)は、多くの場合「静的」であり、暗号化された形式で行単位で保存され、通常はユーザごとに1つの暗号文が使用される。このような状況では、トランザクション単位のモデルスコアリングを実行することは、処理する必要がある量が多い(例えば、毎秒数万件)ため、実行不可能である。問題は、実行時に動的に暗号化されたトランザクションデータ(例えば、販売時点情報管理財務データ)と統計的に暗号化されたデータ(例えば、ユーザプロファイル)を組み合わせた方法で、例えば、ML推論に基づく効率的なトランザクションスコアリングを実行する方法である。トランザクションを個別に処理することは非効率的であることが多い。公知技術はバッチ化を使用するが、これらのアプローチは、入力データが平文であり、バッチ化が暗号化時に行われることを前提としており、データがオフラインで事前に暗号化される(推論時ではない)ため、例のユースケース(クレジットカード詐欺検知)では実現不可能である。
【0003】
トランザクションをバッチ化し(すなわち、ほぼリアルタイム設定)、単一命令複数データ(SIMD)型の推論計算を実行すれば、この運用シナリオではスループットが大幅に向上するが、ユーザ情報が行単位で事前に暗号化されていること、トランザクションの順序が不明であることなど、いくつかの課題がある。
【0004】
さらに背景を説明すると、準同型暗号化(Homomorphic Encryption:HE)とは、暗号文に対して計算を実行することを可能にする暗号化の一形態であり、その結果、暗号化された結果が生成され、それが復号されると、平文に対して実行された演算の結果と一致する。準同型暗号化スキームは、データを復号することなく計算を実行できる暗号システムである。HEベースのスキームは、暗号化されたユーザプロファイルとカード情報を使用したMLモデルの訓練を容易にするために有用であるかもしれないが、トランザクションデータ量自体が多いため、このような方法で訓練された高精度モデルに直接準同型推論を適用することは不可能である。
【発明の概要】
【0005】
本開示は、事前に暗号化されたデータベースまたはデータセットに対して、効率的で安全なバッチ化推論を可能にする方法、装置、およびコンピュータプログラム製品を提供する。
【0006】
使用例では、リアルタイムのトランザクションデータが検知システムで受信される。トランザクションデータにおけるトランザクションのセットは、例えば不正の可能性があるとしてフラグが立てられたと仮定され、セットにおける特定のトランザクションを不正として確定的に分類すべきかどうかに関する判定を下すことが望まれる。個々のトランザクションごとにこの判定を行う代わりに、バッチ指向のソリューションが提供される。第1の実施形態では、時間窓の間にリアルタイムで識別されたトランザクションのセットについて、リアルタイムプライバシー保護推論が実行される。本実施形態では、セット内の各トランザクションについて、暗号化されたデータレコードが取得される。各暗号化されたデータレコードは、同じフォーマット(サイズ)と、対象のプライベートデータ部分(すなわち、プライバシー保護推論に使用されるデータ部分)を有する。対象のプライベートデータ部分は、ユーザのプライベートデータである。本実施形態によると、次に、各々が固有の位置に対象のプライベートデータ部分を有する変換され暗号化されたデータレコードのセットを生成するために、暗号化されたデータレコードの各々に1または複数の変換が適用される。バッチ化され暗号化されたデータレコードを生成するために、変換され暗号化されたデータレコードが追加され、バッチ化され暗号化されたデータレコードは、すべての変換され暗号化されたデータレコードからの対象のプライベートデータ部分を含む。バッチ化され暗号化されたデータレコードに対して準同型推論が実行される。推論に応答して、トランザクションのセットの1または複数が所定の特性を有するものとして識別される。
【0007】
第2の実施形態では、オフラインで最初に前処理されたデータレコードに関しても、プライバシー保護推論が行われる。このアプローチでは、第1の保存データフェーズ中に、データレコードのセットが特定される。各データレコードは、対象のプライベートデータ部分を有し、各データレコードは本実施形態では実際の生データ(平文)である。各々が位置に対象のプライベートデータ部分を有する暗号化されたデータレコードのセットを生成するために、データレコードの各々に1または複数の変換が適用される(他のデータレコードと比較して固有であってもなくてもよい)。その後、これらの暗号化されたデータレコードが記憶され、第1のフェーズが完了する。その後、第2の実行フェーズ中に、時間窓の間にリアルタイムで識別されたトランザクションのセットについて、以下の操作が実行される。特に、トランザクションのセットに対応する暗号化されたデータレコード(オフラインフェーズの間に生成された)が取得される。そして、変換され暗号化されたデータレコードのセットが各々固有の位置に対象のプライベートデータ部分を持つように、(1または複数の暗号化されたデータレコードにおいて)対象のプライベートデータ部分の位置が必要に応じて調整される。すなわち、処理は第1の実施形態と同様に継続し、バッチ化され暗号化されたデータレコードを生成するために、暗号化されたデータレコードが追加され、バッチ化され暗号化されたデータレコードは、トランザクションのセットに対して取得されたすべての変換され暗号化されたデータレコードからの対象のプライベートデータ部分を含む。バッチ化され暗号化されたデータレコードに対して準同型推論が実行される。それに応答して、トランザクションのセットの1または複数が所定の特性を有するものとして識別される。
【0008】
このように、第1の実施形態では、暗号化されたデータレコードに対するバッチ処理(および関連する推論)はリアルタイムで行われる。対照的に、第2の実施形態では、処理は保存データで、生データ自体が暗号化される(場合によっては再暗号化される)前から開始される。第1の実施形態と同様に、この処理は、暗号化されたデータレコードのセットを(単一の)バッチ化され暗号化されたデータレコードにバッチ処理できるように、対象のプライベートデータ部分の初期位置を変更するように設計される。この処理はオフラインで行われ、暗号化されると、暗号化されたレコードはストレージに戻される。その後の実行時操作において、関連する暗号化されたデータレコードが取り出され、バッチ処理を容易にするために必要に応じてさらに処理される(すなわち、プライベートデータ部分の位置が重ならないように調整される)。いずれの実施形態においても、バッチ処理は、複数の個別の暗号化されたデータレコードからの対象のプライベートデータ部分を含む単一の暗号化されたデータレコードに関して実行され、それにより、プライバシーを維持しながら、大幅なスループット効率を提供する。
【0009】
以上、主題のより適切な特徴のいくつかを概説した。これらの特徴は、単なる例示であると解釈されるべきである。他の多くの有益な結果は、開示された主題を異なる方法で適用することによって、または、これから説明されるように主題を変更することによって達成することができる。
【0010】
次に、本発明およびその利点をより完全に理解するために、添付図面と併せて以下の説明を参照する。
【図面の簡単な説明】
【0011】
図1】例示的な実施形態の例示的な態様が実装され得る分散データ処理環境の例示的なブロック図を示す。
図2】例示的な実施形態の例示的な態様が実施され得るデータ処理システムの例示的なブロック図である。
図3】開示された主題が実装され得る例示的なクラウドコンピューティングアーキテクチャを示す。
図4】本開示の技術が実装され得る機械学習アズ・ア・サービス(MLaaS)の動作環境を示している。
図5】不正検知が実行されるトランザクションデータのストリームをリアルタイムで受信する検知システムを含む代表的なユースケースを示す。
図6】実施形態による第1および第2の機械学習モデルがどのように訓練されるかを示す図である。
図7】第1モデルと第2モデルを用いて実装される2段階の推論フローを示している。
図8】事前に暗号化されたデータセット、例えば不正検知のために評価された暗号化されたユーザプロファイルに対して、効率的で安全なバッチ式のリアルタイム推論を可能にする、本開示の技術の第1の実施形態を示している。
図9図8に示した第1のバッチ化の実施形態を実装するアルゴリズムである。
図10】本開示の技術の第2の実施形態を示す。
図11図10に描かれた第2の実施形態を実装するアルゴリズムを示す。
【発明を実施するための形態】
【0012】
ここで図面を参照し、特に図1~2を参照すると、本開示の例示的な実施形態が実装され得るデータ処理環境の例示的な図が提供されている。図1~2は、例示に過ぎず、開示された主題の態様または実施形態が実装され得る環境に関して、いかなる限定も主張または暗示することを意図していない。本発明の精神および範囲から逸脱することなく、描かれた環境に対する多くの修正を行うことができる。
【0013】
<クライアントサーバ技術>
ここで図面を参照すると、図1は、例示的な実施形態の態様が実装され得る例示的な分散データ処理システムの絵画表現を示す。分散データ処理システム100は、例示的な実施形態の態様が実装され得るコンピュータのネットワークを含み得る。分散データ処理システム100は、分散データ処理システム100内で共に接続された様々なデバイスおよびコンピュータ間の通信リンクを提供するために使用される媒体である少なくとも1つのネットワーク102を含む。ネットワーク102は、有線、無線通信リンク、または光ファイバケーブルなどの接続を含み得る。
【0014】
描かれている例では、サーバ104とサーバ106は、記憶装置108とともにネットワーク102に接続されている。さらに、クライアント110、112、114もネットワーク102に接続されている。これらのクライアント110、112、114は、例えば、パーソナルコンピュータ、ネットワークコンピュータなどであってもよい。図示の例では、サーバ104は、ブートファイル、オペレーティングシステムイメージ、およびアプリケーションなどのデータをクライアント110、112、および114に提供する。クライアント110、112、および114は、描かれている例では、サーバ104に対するクライアントである。分散データ処理システム100は、図示しない追加のサーバ、クライアント、および他のデバイスを含んでもよい。
【0015】
描かれている例では、分散データ処理システム100は、互いに通信するためにプロトコルのTCP/IP(Transmission Control Protocol/Internet Protocol)スイートを使用するネットワークおよびゲートウェイの世界的なコレクションを表すネットワーク102を有するインターネットである。インターネットの中心には、主要なノードまたはホストコンピュータ間の高速データ通信回線のバックボーンがあり、データやメッセージをルーティングする何千もの商業、政府、教育、その他のコンピュータシステムで構成されている。もちろん、分散データ処理システム100は、例えば、イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)等のような多数の異なるタイプのネットワークを含むように実装することもできる。上述したように、図1は、開示された主題の異なる実施形態に対するアーキテクチャ上の限定ではなく、例として意図されており、したがって、図1に示された特定の要素は、本発明の例示的な実施形態が実施され得る環境に関して限定的であると考えられるべきではない。
【0016】
ここで図2を参照すると、例示的な実施形態の態様が実装され得る例示的なデータ処理システムのブロック図が示されている。データ処理システム200は、図1のクライアント110のようなコンピュータの一例であり、本開示の例示的な実施形態のプロセスを実装するコンピュータ使用可能なコードまたは命令が配置され得る。
【0017】
ここで図2を参照すると、例示的な実施形態が実装され得るデータ処理システムのブロック図が示されている。データ処理システム200は、図1におけるサーバ104またはクライアント110のようなコンピュータの一例であり、その中に、例示的な実施形態に係るプロセスを実装するコンピュータ使用可能なプログラムコードまたは命令が配置され得る。この例示的な実施例では、データ処理システム200は、プロセッサユニット204、メモリ206、永続ストレージ208、通信ユニット210、入力/出力(I/O)ユニット212、およびディスプレイ214の間の通信を提供する通信ファブリック202を含む。
【0018】
プロセッサユニット204は、メモリ206にロードされ得るソフトウェアの命令を実行する役割を果たす。プロセッサユニット204は、特定の実装に応じて、1または複数のプロセッサのセットであってもよいし、マルチプロセッサコアであってもよい。さらに、プロセッサユニット204は、メインプロセッサが単一チップ上にセカンダリプロセッサと共に存在する1または複数のヘテロジニアスプロセッサシステムを使用して実装されてもよい。別の例示的な例として、プロセッサユニット204は、同じタイプの複数のプロセッサを含む対称型マルチプロセッサ(SMP)システムであってもよい。
【0019】
メモリ206および永続ストレージ208は、記憶装置の一例である。記憶装置は、情報を一時的もしくは永続的またはその両方で記憶することができるハードウェアの任意の部分である。メモリ206は、これらの例では、例えば、ランダムアクセスメモリ、または任意の他の適切な揮発性または不揮発性記憶装置であってもよい。永続ストレージ208は、特定の実装に応じて様々な形態をとることができる。例えば、永続ストレージ208は、1または複数のコンポーネントまたはデバイスを含むことができる。例えば、永続ストレージ208は、ハードドライブ、フラッシュメモリ、書換え可能な光ディスク、書換え可能な磁気テープ、またはこれらの組み合わせであってもよい。永続ストレージ208によって使用される媒体はまた、取り外し可能であってもよい。例えば、取り外し可能なハードドライブは永続ストレージ208に使用され得る。
【0020】
通信ユニット210は、これらの実施例では、他のデータ処理システムまたは装置との通信を提供する。これらの実施例では、通信ユニット210はネットワークインタフェースカードである。通信ユニット210は、物理通信リンクおよび無線通信リンクのいずれか一方または両方の使用を通じて通信を提供することができる。
【0021】
入力/出力ユニット212は、データ処理システム200に接続され得る他の装置とのデータの入力および出力を可能にする。例えば、入力/出力ユニット212は、キーボードおよびマウスを介したユーザ入力のための接続を提供することができる。さらに、入力/出力ユニット212は、出力をプリンタに送信してもよい。ディスプレイ214は、ユーザに情報を表示する機構を提供する。
【0022】
オペレーティングシステムおよびアプリケーションまたはプログラムの命令は、永続ストレージ208に配置される。これらの命令は、プロセッサユニット204による実行のためにメモリ206にロードされてもよい。異なる実施形態の処理は、メモリ206などのメモリに配置されてもよいコンピュータ実装命令を使用して、プロセッサユニット204によって実行されてもよい。これらの命令は、プロセッサユニット204内のプロセッサによって読み取られ実行され得るプログラムコード、コンピュータ使用可能なプログラムコード、またはコンピュータ可読プログラムコードと呼ばれる。異なる実施形態におけるプログラムコードは、メモリ206または永続ストレージ208などの異なる物理的または有形コンピュータ可読媒体上に実装されてもよい。
【0023】
プログラムコード216は、選択的に取り外し可能なコンピュータ可読媒体218上に機能形態で配置され、プロセッサユニット204による実行のために、データ処理システム200上にロードされるか、またはデータ処理システム200に転送され得る。プログラムコード216およびコンピュータ可読媒体218は、これらの例ではコンピュータプログラム製品220を形成する。一実施例では、コンピュータ可読媒体218は、例えば、永続ストレージ208の一部であるハードドライブなどの記憶装置上に転送するために永続ストレージ208の一部であるドライブや他の装置などに挿入または配置される光学または磁気ディスクなどの有形の形態であってもよい。有形の形態では、コンピュータ可読媒体218はまた、データ処理システム200に接続されるハードドライブ、サムドライブ、またはフラッシュメモリなどの永続ストレージの形態をとることができる。コンピュータ可読媒体218の有形形態は、コンピュータ記録可能記憶媒体とも呼ばれる。いくつかの実施態様では、コンピュータ記録可能媒体218は取り外し可能でなくてもよい。
【0024】
あるいは、プログラムコード216は、通信ユニット210への通信リンクを介して、もしくは入力/出力ユニット212への接続を介して、またはその両方で、コンピュータ可読媒体218からデータ処理システム200に転送されてもよい。通信リンクもしくは接続またはその両方は、図示の例では物理的または無線であってもよい。コンピュータ可読媒体はまた、プログラムコードを含む通信リンクまたは無線伝送などの非有形媒体の形態をとることもできる。データ処理システム200について例示された異なる構成要素は、異なる実施形態が実装され得る方法に対するアーキテクチャ上の制限を提供することを意図するものではない。異なる例示的な実施形態は、データ処理システム200について図示した構成要素に加えて、またはデータ処理システム200について図示した構成要素の代わりに、構成要素を含むデータ処理システムにおいて実装することができる。図2に示された他の構成要素は、示された例示から変化させることができる。一例として、データ処理システム200における記憶装置は、データを記憶することができる任意のハードウェア装置である。メモリ206、永続ストレージ208、およびコンピュータ可読媒体218は、有形の形態の記憶装置の例である。
【0025】
別の例では、通信ファブリック202を実装するためにバスシステムが使用されることがあり、システムバスまたは入力/出力バスなどの1または複数のバスで構成されることがある。もちろん、バスシステムは、バスシステムに接続された異なるコンポーネントまたはデバイス間のデータ転送を提供する任意の適切なタイプのアーキテクチャを使用して実装されてもよい。さらに、通信ユニットは、モデムやネットワークアダプタなど、データの送信および受信に使用される1または複数のデバイスを含むことができる。さらに、メモリは、例えば、メモリ206、または通信ファブリック202に存在し得るインタフェースおよびメモリコントローラハブに見られるようなキャッシュであってもよい。
【0026】
本発明の動作を実行するためのコンピュータプログラムコードは、Java(商標)、Smalltalk、C++、C#、Objective-Cなどのオブジェクト指向プログラミング言語、および従来の手続き型プログラミング言語を含む、1または複数のプログラミング言語の任意の組み合わせで記述することができる。プログラムコードは、スタンドアロンソフトウェアパッケージとして、完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または完全にリモートコンピュータまたはサーバ上で実行可能である。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され、または(例えば、インターネットサービスプロバイダーを使用したインターネット経由で)外部コンピュータに接続されてよい。
【0027】
当業者であれば、図1~2のハードウェアは、実装形態によって異なる可能性があることを理解するであろう。フラッシュメモリ、同等の不揮発性メモリ、または光ディスクドライブなどの他の内部ハードウェアまたは周辺デバイスが、図1~2に描かれたハードウェアに加えて、またはその代わりに使用されてもよい。また、例示の実施形態のプロセスは、開示された主題の精神および範囲から逸脱することなく、先に述べたSMPシステム以外のマルチプロセッサデータ処理システムに適用することができる。
【0028】
これからわかるように、本明細書で説明する技術は、図1に示すような標準的なクライアントサーバパラダイム内で連動して動作することができ、クライアントマシンは、1または複数台のマシンのセットで実行されるインターネットにアクセス可能なウェブベースのポータルと通信する。エンドユーザは、ポータルにアクセスして対話できるインターネット接続可能なデバイス(デスクトップコンピュータ、ノートブックコンピュータ、インターネット対応モバイルデバイスなど)を操作する。典型的には、各クライアントまたはサーバマシンは、ハードウェアおよびソフトウェアを含む図2に示されるようなデータ処理システムであり、これらのエンティティは、インターネット、イントラネット、エクストラネット、プライベートネットワーク、または任意の他の通信媒体またはリンクなどのネットワークを介して互いに通信する。データ処理システムは通常、1または複数のプロセッサ、オペレーティングシステム、1または複数のアプリケーション、および1または複数のユーティリティを含む。データ処理システム上のアプリケーションは、HTTP、SOAP、XML、WSDL、UDDI、WSFLなどのサポートを含むがこれらに限定されない、Webサービスのネイティブサポートを提供する。SOAP、WSDL、UDDI、およびWSFLに関する情報は、これらの標準の開発および保守を担当するWorld Wide Web Consortium(W3C)から入手可能である。HTTPとXMLに関する詳しい情報は、インターネット・エンジニアリング・タスク・フォース(IETF)から入手できる。これらの標準に精通していることが前提となる。
【0029】
<クラウドコンピューティングモデル>
クラウドコンピューティングは、共有リソース、ソフトウェア、情報をインターネット経由でコンピュータやその他のデバイスにオンデマンドで提供する、新たな情報技術(IT)提供モデルである。クラウドコンピューティングは、ワークロードの最適化とサービス提供を改善しながら、ITコストと複雑さを大幅に削減することができる。このアプローチでは、アプリケーションインスタンスをホストし、HTTP経由で従来のWebブラウザからアクセス可能なインターネットベースのリソースから利用できるようにすることができる。アプリケーションの例としては、電子メール、カレンダー、連絡先管理、インスタントメッセージングなど、メッセージング機能の共通セットを提供するものが考えられる。ユーザは、インターネット経由でこのサービスに直接アクセスする。このサービスを利用することで、企業は電子メール、カレンダー、コラボレーションのインフラストラクチャ、またはその組み合わせをクラウドに置き、エンドユーザは適切なクライアントを使用して電子メールにアクセスしたり、カレンダー操作を行ったりすることができる。
【0030】
クラウドのコンピュートリソースは、通常、大規模なサーバファームに収容され、1または複数のネットワークアプリケーションを実行する。通常、データセンター施設内の物理サーバにマッピングされた仮想サーバ、いわゆる「仮想マシン」(VM)内でアプリケーションが実行される仮想化アーキテクチャを使用する。仮想マシンは通常、ハイパーバイザー上で実行され、ハイパーバイザーは仮想マシンに物理リソースを割り当てる制御プログラムである。
【0031】
クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、リソースは、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの実装モデルを含むことがあり、これらはすべて、2009年10月7日付のPeter MellおよびTim Granceによる「Draft NIST Working Definition of Cloud Computing(クラウドコンピューティングのNIST作業定義草案)」でより詳細に説明および定義されている。
【0032】
特性は以下の通りである。
【0033】
オンデマンド・セルフサービス:クラウドの消費者は、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
【0034】
ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
【0035】
リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数の消費者に提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
【0036】
迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
【0037】
測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
【0038】
サービスモデルは以下の通りである。
【0039】
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。
【0040】
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
【0041】
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティングシステムやアプリケーションを含み得る任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
【0042】
展開モデルは以下の通りである。
【0043】
プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0044】
コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0045】
パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
【0046】
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
【0047】
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。代表的なクラウドコンピューティングノードは、前述の図2に示されている通りである。特に、クラウドコンピューティングノードには、コンピュータシステム/サーバがあり、多数の他の汎用または特殊目的のコンピューティングシステム環境または構成と運用可能である。コンピュータシステム/サーバと共に使用するのに適し得る周知のコンピューティングシステム、環境、もしくは構成、またはその組み合わせの例としては、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家電、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、および上記のシステムまたはデバイスのいずれかを含む分散型クラウドコンピューティング環境などが挙げられるが、これらに限定されない。コンピュータシステム/サーバは、プログラムモジュールなどのコンピュータシステム実行可能命令がコンピュータシステムによって実行されるという一般的な文脈で説明される場合がある。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含むことができる。コンピュータシステム/サーバは、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散クラウドコンピューティング環境で実施される場合がある。分散型クラウドコンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモートのコンピュータシステムの記憶媒体の両方に配置されることがある。
【0048】
図3を参照すると、さらなる背景として、クラウドコンピューティング環境によって提供される機能的抽象化レイヤのセットが示されている。なお、図3に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
【0049】
ハードウェアおよびソフトウェアレイヤ300は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム(一例としてIBM(登録商標)zSeries(登録商標)システム)、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ(一例としてIBM pSeries(登録商標)システム、IBM xSeries(登録商標)システム、IBM BladeCenter(登録商標)システム)、記憶装置、ならびにネットワークおよびネットワークコンポーネントが含まれる。ソフトウェアコンポーネントの例としては、IBM WebSphere(登録商標)アプリケーションサーバソフトウェアなどのネットワークアプリケーションサーバソフトウェア、IBM DB2(登録商標)データベースソフトウェアなどのデータベースソフトウェアがある。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere、およびDB2は、世界中の多くの法域で登録されているInternational Business Machines Corporationの商標である。)
【0050】
仮想化レイヤ302は、抽象化レイヤを提供する。当該レイヤから、例えば以下の仮想エンティティを提供することができる:仮想サーバ、仮想ストレージ、仮想プライベートネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティングシステム、ならびに仮想クライアント。
【0051】
一例として、管理レイヤ304は以下の機能を提供することができる。リソース準備は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウドコンシューマおよびタスクの識別確認を可能にする。ユーザポータルは、コンシューマおよびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
【0052】
ワークロードレイヤ306は、クラウドコンピューティング環境が利用可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想教室教育の配信、データ分析処理、取引処理、プライベートクラウド内の企業固有の機能、および一実施形態によれば、安全なクレジットカード詐欺検知技術308が含まれる。
【0053】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載した教示の実装形態はクラウドコンピューティング環境に限定されない。むしろ、開示される技術の実施形態は、現在公知のまたは将来開発される他の任意の種類のコンピュータ環境と共に実施することができる。これらには、スタンドアロンコンピューティング環境(例えば、オンプレミスのデスクトップマシン)、クライアントサーバベースのアーキテクチャなどが含まれる。
【0054】
したがって、代表的なクラウドコンピューティング環境は、フロントエンドIDマネジャ、ビジネスサポートサービス(BSS)機能コンポーネント、運用サポートサービス(OSS)機能コンポーネント、およびコンピュートクラウドコンポーネントを含むハイレベル機能コンポーネントのセットを有する。IDマネージャは、ID管理を提供するように要求するクライアントとのインタフェースを担当し、このコンポーネントは、ニューヨーク州アーモンクのIBM社から入手可能なTivoli Federated Identity Manager(TFIM)など、1または複数の既知のシステムで実装することができる。適切な状況では、TFIMを使用して、他のクラウドコンポーネントに連携シングルサインオン(F-SSO)を提供することができる。ビジネスサポートサービスコンポーネントは、課金サポートなど特定の管理機能を提供する。運用サポートサービスコンポーネントは、仮想マシン(VM)インスタンスなど、他のクラウドコンポーネントのプロビジョニングと管理を提供するために使用される。クラウドコンポーネントは、主要な計算リソースを表し、典型的には、クラウドを介してアクセスできるようにされているターゲットアプリケーションを実行するために使用される複数の仮想マシンインスタンスである。1または複数のデータベースは、ディレクトリ、ログ、およびその他の作業データを記憶するために使用される。これらのコンポーネント(フロントエンドアイデンティティマネージャを含む)はすべてクラウド「内」に配置されるが、これは要件ではない。代替実施形態では、IDマネージャはクラウドの外部で運用される場合がある。サービスプロバイダもクラウドの外部で動作させることができる。
【0055】
いくつかのクラウドは、非伝統的なIPネットワークに基づくものもある。したがって、例えば、クラウドは、MACアドレスのハッシュを使用する特別なシングルレイヤーIPルーティングを備えた2層のCLOSベースのネットワークに基づく場合がある。本明細書で説明する技術は、このような非伝統的なクラウドでも使用することができる。
【0056】
一般化すると、クラウドコンピューティングインフラストラクチャは、ネットワークを介して接続されたホストマシン(例えば、サーバまたは同様の物理マシンコンピューティングデバイス)と、1または複数の管理サーバを備える仮想マシンホスティング環境を提供する。通常、物理サーバはそれぞれ、VMware ESX/ESXiなどの仮想化技術を使用して、1または複数の仮想マシンを動的に提供するように適合されている。複数のVMを単一のホストマシンに配置し、ホストマシンのCPU、メモリ、その他のリソースを共有することで、組織のデータセンターの利用率を高めることができる。他のタスクの中でも、管理サーバはインフラストラクチャを監視し、必要に応じて例えば仮想マシンをホスト間で移動させるなど、VMの配置を自動的に操作する。
【0057】
非限定的な実装では、代表的なプラットフォーム技術として、VMware vSphere 4.1 Update 1および5.0を搭載したIBM System x(登録商標)サーバが挙げられるが、これらに限定されるものではない。
【0058】
上述した商用実装は、限定を意図したものではなく、クラウドコンピューティング環境でサポートされ、コグニティブサービスと対話するクライアントアプリケーションの代表的な一実施形態に過ぎない。
【0059】
<準同型暗号化>
さらに背景を説明すると、準同型暗号化(Homomorphic Encryption:HE)とは、暗号文に対して計算を実行することを可能にする暗号化の一形態であり、その結果、暗号化された結果が生成され、それが復号されると、平文に対して実行された演算の結果と一致する。準同型暗号化スキームは、データを復号することなく計算を実行できる暗号システムである。完全な準同型暗号化(FHE)は、ブートストラッピングや再暗号化技術と組み合わせて、ある程度準同型な(SWHE)または平準化されたHEスキームを採用することで達成されることが多い。SWHEスキームは、そのパラメータによって決定されるあらかじめ設定された複雑さのレベルまでしか計算をサポートすることができない。これは、暗号文が「ノイズ」であり、HE計算のたびにノイズが増大し続けるためであり、ノイズがパラメータに依存する閾値を超えると、暗号文はもはや解読できない。この問題は、暗号文をリフレッシュしてノイズレベルを下げるブートストラップによって対処できるかもしれないが、その代償として循環的なセキュリティに頼ることになる。しかし、ブートストラップは計算量が多く、時間のかかる作業である。したがって、実用性を考えると、ブートストラップ操作の回数は最小限に抑えるべきであり、場合によっては避けるべきである。
【0060】
準同型暗号化は、暗号化された入力に対して実行することで、結果の暗号化を生成することができる、任意の望ましい機能を持つプログラムを構築することを可能にする。かかるプログラムは入力を復号する必要がないため、入力や内部状態を明らかにすることなく、信頼できないパーティによって実行することができる。準同型暗号化を実装するためのツールキットが知られている。よく知られているツールキットは、オープンソースのプロジェクトであるHElibである。HElibの現在のバージョンは、個々のビットを暗号化することで、2進数表現による任意の数の加算と乗算の演算をサポートしている。
【0061】
さらに背景として、RLWE(Ring Learning with Errors)として知られる計算問題の難度に基づいて、いくつかのFHEスキームが提案されている。かかるスキームの顕著な例としては、BFV(Brakerski/Fan-Vercauteren)スキーム、BGV(Brakerski-Gentry-Vaikuntanathan)スキーム、CKKS(Cheon-Kim-Kim-Song)スキームがあり、これらのスキーム(最初の提案者の名前にちなんで命名)は、加法的および乗法的に準同型である。BFVスキームとBGVスキームが整数に対するベクトル演算に効率的であるのに対し、CKKSスキームは「近似」(限定精度)浮動小数点演算に適している。さらに、これらのスキームはSIMD(Single Instruction Multiple Data)演算をサポートしており、特に異なる平文値を暗号文の異なるスロットにパッキングすることができる。この暗号文のパッキングにより、加算や乗算演算の並列化が可能になるが、パッキング後の暗号文の個々のスロット内の値にランダムにアクセスすることはできない。むしろ、暗号文内のスロットの回転など、限られた操作のみが可能である。
【0062】
HE演算にCKKSスキーム(HELibライブラリに実装)を使用する場合、実数値の特徴を直接決定木に入力することができ、すなわち入力を整数として変換する必要はない。
【0063】
<準同型暗号化を用いた機械学習アズ・ア・サービス>
機械学習アズ・ア・サービス(Machine Learning as a Service:MLaaS)は、現在一般的なパラダイムであり、そこでは事前に訓練されたモデルがパブリッククラウド上でホストされ、推論は照会ごとの支払いベースで実行される。しかし、MLaaSの利用は、推論が実行されるクライアントデータのプライバシー(機密性)が最も懸念されるため、多くのアプリケーションドメイン(金融サービス、ヘルスケアなど)では制限されている。完全な準同型暗号化(FHE)は、復号を必要とせずに暗号化されたデータに対してある種の計算を許可することで、上記のプライバシーの難問を解決することができる。上述したように、FHEスキームは次のように定義できる:H=(ε,D,λ,EVAL)、ここでεとDはそれぞれ暗号化と復号の操作を表し、λはセキュリティパラメータ、そしてEVALは評価関数であり、任意の関数fと暗号化された入力ε(I)を受け取り、暗号化された結果EVAL(f,ε(I))=ε(f(I))を返す。表現を簡単にするためにεとEVAL演算は公開鍵へのアクセスを必要とし、Dは秘密鍵へのアクセスを必要とする。
【0064】
【0065】
以上を背景として、次に本開示の技術を説明する。
【0066】
<大容量データのプライバシー保護推論のためにユーザデータを安全に活用する>
以下では、プライバシーを保護した方法で多段階(例えば、2段階)の推論を行う技術について説明する。少なくとも第1の推論は、暗号化されていない非常に高いスループットのデータを処理し、少なくとも第2の推論は、比較的小さいスループットで実行されるが、全体的な結果を改善するためにプライベートデータ(例えば、FHEを使用して暗号化された機密性の高いユーザデータ)を組み込む。説明の便宜上、この技術をアプリケーション例、すなわち不正行為の予測、検知、および防止において説明するが、この使用例は限定を意図するものではない。同じ基本的な多段階推論技法は、データの整合性、可用性、およびセキュリティを保証し、高速な応答時間と高いトランザクションスループットを持つ実行環境を持つあらゆるトランザクション処理(または他のコンピューティング)システムにとって有用である。
【0067】
図5は、不正行為の予測、検知、および予防のための動作環境を示しており、その中で本技法が実施される可能性がある。上述したように、多段階推論の恩恵を受けることができる特定のユースケースには、クレジットカードの不正検知が含まれ、システムは、好ましくは、トランザクション自体が様々な販売/使用のポイントで発生しているときに、トランザクションデータを受信し、検証するように設計されている。したがって、図示のように、多数のトランザクション処理システム500が検知システム502に照会しており、特定の照会は、リアルタイムで発生し、(潜在的な不正行為に対する)検証を必要とする1または複数の実際に試みられたクレジットカードトランザクションに関連付けられている。この実施形態では、非常に多くのトランザクション(例えば、数万/秒)が検知システムに到着しており、検知システムは、カードの販売/使用時点において、非常に低い待ち時間または知覚される待ち時間で応答(例えば、「不正」または「安全」)を指示するサービスレベル要件を有すると想定される。検知システム502は、図3に関連して既に説明したような、クラウドアクセス可能なサービスとして動作することができる。上述したように、検知システム502は、1または複数のトランザクション処理(または他のコンピューティング)システムに関連して動作させるか、またはそれに関連するサービスとして動作させることができる。検知システム502は、例えば、潜在的な不正トランザクションにフラグが立てられると、通知、警告、ロギング、緩和などを提供する他の管理(administrative)、管理(management)、または報告システムなどと関連していてもよい。検知システムは、図2に関して上述したような、1または複数のコンピューティングプラットフォーム上で実行される1または複数のアプリケーションとして実装されてもよい。
【0068】
図6に示すように、検知システム600は、第1の機械学習モデル602と、第2の機械学習モデル604とを備える。これらのモデルは、実際のトランザクションフローに対してオフラインまたはアウトオブバンドで発生するセットアップ(訓練)段階で訓練される。一旦訓練されると、モデルは次に、好ましくはリアルタイムで、検知システムに到着している実際のトランザクションデータに対する推論に使用される。
【0069】
図6に描かれているように、この例の不正検知ユースケースでは、第1のモデル602は、好ましくは、利用可能な非プライベート(非機密)トランザクションデータ606のコーパスで訓練される。限定するものではないが、第1のモデル602を訓練するために使用されるトランザクションデータ606は、各トランザクションについて、ユーザ、カード、年、月、日、時間、金額、使用チップ、加盟店名、加盟店都市、加盟店州、郵便番号、加盟店カテゴリコード(MCC)等のうちの1または複数を含む。第1のデータモデルの訓練は、平文で行われてもよい。対照的に、第2のモデル604は、プライベートユーザプロファイルデータ608と共に、このような非機密トランザクションデータ606で訓練される。第2のモデルを訓練するために使用されるトランザクションデータ606は、第1のモデル602を訓練するために使用されるのと同じであっても異なっていてもよい。しかし、この使用例では、第2のデータモデル604のみが、プライベートユーザプロファイルデータ608を使用して訓練され、そのデータは、機密性が高いため、常に保護(暗号化)される必要がある。限定するものではないが、ユーザプロファイルデータ608は、各ユーザについて、カードブランド、カードタイプ、カード番号、有効期限、CVV、チップの有無、発行されたカード、残高、クレジット限度額、アカウントオープンデータ、最後の不正使用、最後にPINが変更された年、ダークウェブ上のカード表示、生涯取引、不正取引などのうちの1または複数を含む。ユーザプロファイルデータ自体は暗号化されたままである必要があるが、第2のデータモデルの訓練自体は平文で行われることもある。
【0070】
一般化すると、第1のMLモデルは第1の訓練データを用いて訓練されるが、典型的には、第2のMLモデルは、付加的なプライベートデータ(例えば、プライベートユーザプロファイル)で補強された第1の訓練データを用いて訓練される。第2のデータモデルのみがプライベートユーザデータを使用して訓練されるため、第1および第2のモデル602および604は、異なる特徴セットで訓練される。訓練は、定期的に、または新しい訓練データセットが得られてシステムが利用できるようになったときに、繰り返されることがある。
【0071】
図7は、この例示的な実施形態に従って実装される二相推論フローを示し、多相推論アプローチはクレジットカード不正検知に使用される。この実施形態では、コンピューティングシステム700は、不正検知を提供するアプリケーション702をホストし、コンピューティングシステム700は、非プライベートトランザクションデータ708のデータベース706と、プライベートユーザデータ710とを関連付けている(704)。典型的には、プライベートユーザデータ710を記憶するデータベース706は、潜在的に信頼されていない環境にあるものであっても、他のサーバ上でホストされてもよい。描かれているように、(図示されていないトランザクション処理システムからの)トランザクションデータは、好ましくはリアルタイムでステップ(1)に到着する。基本的な不正検知操作は、ここではトランザクションごとに実行され、ステップ(2)で第1のモデルを使って不正の可能性があるかどうかを判定する。もしそうでなければ、アプリケーション702は何もしない。しかし、「不正の可能性があるか」テストの結果が肯定的である場合、制御はステップ(3)に移行し、アプリケーション702はデータベース706に記憶された追加の暗号化データ710に対して完全な準同型暗号化(FHE)に基づく推論を適用し、トランザクションが不正としてタグ付けされるべきかどうかの最終決定を行う。この目的のために、前述の図4で説明したFHE技術を使用することができる。
【0072】
より正式には、もう一度図7を参照すると、ステップ(1)でトランザクションTが到着する。ステップ(2)で、アプリケーション702はTに第1のモデルMi1を適用する→不正の可能性に関する第1の推論。ステップ(3)でMi1(T)=不正であれば、制御はステップ(4)に続く。このステップで、アプリケーション702は、トランザクションTに対して暗号化されたユーザデータUを照会し、ここでUはユーザデータであり、Tはトランザクションデータである。第2のモデルMはT+Uに対して適用される→Mに対するFHE推論。もしM(T+U)=不正の場合、アプリケーションは不正を報告し、処理は完了する。
【0073】
上記の2段階の推論フローは、リアルタイムで到着する大量のトランザクションデータに関しても、また潜在的に信頼されていない環境上で暗号化された形で保存されたデータに関しても、アプリケーションが推論、例えばFHEを直接適用し、高精度モデル(トランザクションデータとプライベートユーザデータの両方で訓練された)を使用することを可能にするため、大きな利点を提供する。代表的な運用シナリオ例では、アプリケーションモデルはIBM(登録商標) Watson(登録商標) Machine Learning Accelerator(WML)のような深層学習プラットフォームで訓練され、推論サポートが提供される。トランザクションは高速(例えば毎秒30~60,000件)でシステムに流入すると想定される。この種の典型的なシナリオでは、不正の可能性があるとラベル付けされるのは取引のごく一部(例えば約100TPS)に過ぎない。したがって、FHE推論はこの程度の作業負荷を処理すればよい。この作業負荷は、既存のFHEモデル(例えば、ロジスティック回帰や線形回帰)とマルチスレッドリソースを使用して実現可能である。
【0074】
一般化すると、当業者であれば、非プライベートデータで訓練された第1のモデルが、疑わしいデータの比較的小さなサブセットを特定する第1のレベルの判定に使用され、そのサブセットが、最終的な第2のレベルの検知判定を提供するために、さらに推論(好ましくは準同型)される、2段階の推論から利益を得ることができる他の多くのタイプのユースケースが存在することを理解するであろう。別の言い方をすれば、第1のフェーズの推論は粗いレベルの検知を提供し、第2のフェーズの推論はきめの細かい決定を提供する。この2段階のアプローチは、第1のレベルのフィルタを通過すると予想されるトランザクション数が比較的少ない(あるいは割合が高い)ため、処理に大きな利点をもたらす。したがって、はるかに計算量の多い準同型推論に必要な実際のリソースは限られている。したがって、トランザクション量が増加しても、システム全体のリソース消費は削減される。
【0075】
このプライバシー保護推論アプローチから恩恵を受ける可能性のある他の技術例としては、オンライン予約・注文システム、ロギングシステム、データベース・情報管理システム、侵入・異常検知システム、ID・アクセス管理システム、サイバーセキュリティシステム、その他のクラウドベースシステムなどが挙げられるが、これらに限定されるものではない。この技術は、プライバシー規制やコンプライアンス、その他のセキュリティ要件に準拠しながら、大量のデータを受信および処理するあらゆるアプリケーションやサービスをサポートするために使用することができるため、潜在的な使用例に制限はない。多くの新しい産業アプリケーションは、このようなクラウドベースの検知サービスを利用することで、より強化されたプライバシー保証を提供することができる。他の例としては、クライアントのプライバシーに関するコンプライアンスが最重要であるか、そうでなければ要求されるヘルスケア、銀行、金融、マーケティング、ファイナンスなどがある。より一般的には、このアプローチは、個人データのスコアリングや推論を含むあらゆるアプリケーションに使用することができる。
【0076】
<準同型推論のための事前暗号化データの効率的なバッチ化>
上述した技法は(不正検知システムを通じて)かなりのデータスループットを提供するが、以下ではさらに高いスループットを実現するいくつかの追加技法について説明する。非限定的なシナリオ例、すなわちクレジットカードの不正検知を続けると、第1のレベルの検知プロセスが実施され、不正の可能性が高いトランザクションが特定されたと仮定する。かかるトランザクションごとに準同型推論を実行する代わりに(例えば、図7のステップ(3)を使用)、今説明するようなバッチベースのアプローチが使用される。特に、トランザクションのセットが詐欺の可能性があると識別され、かかる各トランザクションは、暗号化された形で、典型的には行単位で保存されているユーザプロファイルおよびその他の機密情報(個人情報やクレジットカード情報など)を使って、さらにチェックされなければならないと仮定する。このユーザプロファイルおよびその他の機密情報は、図7のユーザプライベートデータ710に対応する。一般に、特定のユーザ(非プライベートデータ708のユーザ識別子に対応する)には、暗号化されたレコード710が関連付けられている。生データレコード(すなわち、暗号化が適用される前)は、典型的には、例えば、ユーザがクレジットカードを取得したとき、ユーザアカウント情報が更新されたときなど、オフラインで記入されるデータ値を有するデータフィールドの大きなセットを有する。これらのデータフィールドの一部は空であってもよい。本開示の特徴によれば、これから説明するように、バッチ処理は、データレコードを含むデータフィールドの全体集合のうちの一部の定義されたサブセットに関して実行され、この定義されたサブセットは、本明細書では「対象のプライベートデータ部分」と呼ばれる。データベース内の各データレコード(暗号化前と暗号化後の両方)は共通の構造(サイズ、フィールド数、対象のプライベートデータ部分の初期位置など)を有する。これからわかるように、以下に説明する技術の基本的な目標は、暗号化されたデータレコードを、個々のレコードのプライベートデータ部分をすべて含む単一の暗号化されたデータレコードにバッチ化することができるように、暗号化されたデータレコード全体のプライベートデータ部分の特定の位置を変更することである。不正検知のために、単一の暗号化データレコード内の対象のプライベートデータ部分のデータ値は、その後、これらのデータ値のプライバシーを確保するために準同型推論を使用して対応するリアルタイムのトランザクションデータと照合される。
【0077】
図8は、本開示の第1の実施形態を示しており、暗号化されたデータに対する効率的な(ほぼ)リアルタイムのシフトおよびバッチを提供する。この特定のユースケースにおいて、また上述のように、この操作は好ましくは完全に実行時に、図7に描かれた不正検知ワークフローによってトランザクションのセットが不正の可能性があると識別された後に(例示のユースケースにおいて)行われる。各トランザクションに対してHEベースの推論を(一度に一つずつ)実行する代わりに、以下のバッチ技法が使用される。本実施形態では、サイズのバッチ化時間窓Wは固定であり、fは、所定の暗号化されたデータレコード内の対象のプライベートデータ部分に対応し、検査されるデータフィールドの数を示す。
【0078】
このルーチンは、バッチ化時間窓W内で到着するトランザクションTを収集することから始まる。前述の通り、この使用例では、これらのトランザクションは既に不正の可能性があるとみなされたものである。暗号化されたレコードのデータベースが照会され、Tに対応するすべての暗号化されたレコードが(例えばユーザ識別子708を使用して)データベースから取得される。図8は、かかる暗号化されたレコード800、802、804の3つ(3)を示しており、より一般的には、E(R),E(R),...E(R)によって示される。図8の上部に示すように、各暗号化されたデータレコードは同じフォーマット(サイズ、データフィールドの数、それらのデータフィールドの初期位置など)を有する。したがって、上述したように、本明細書で以下に説明する処理が開始される前に、対象の各プライベートデータ部分は(各暗号化されたデータレコード内の)同じ位置にある。これらのレコードは、図9に示す本実施形態のバッチ化アルゴリズム900に描かれているように、入力を含む。見てわかるように、暗号化されたレコードの各々は、準同型推論のために対象のプライベートデータ部分に対応する第1の部分801と、何らかの理由(関連性、計算効率など)で使用されないデータフィールドを含む第2の部分803とを有する。各i∈[N]について、i番目のレコードに対して以下の変換が実行される:E(R)にベクトル1...f倍...100...0を掛けて、レコードRに対応するものを除く、対象の特徴に対応するレコードにおけるすべてのエントリがゼロであることを確認する。このゼロパディング806は、レコード800、802、804の各々について図8に描かれている。次に、アルゴリズムに描かれているようにi番目のレコードE(R)をファクターf・iによって回転させる(すなわちE(R)←shiftRotate(E(R),f・i))。シフトおよび回転関数の結果は、図8に描かれているように、(暗号化されたレコードの各々に対応する)変換され暗号化されたデータレコードである。したがって、暗号化されたデータレコード800は変換され暗号化されたデータレコード808に変換され、暗号化されたデータレコード802は変換され暗号化されたデータレコード810に変換され、暗号化されたデータレコード804は変換され暗号化されたデータレコード812に変換される。見てわかるように、そして変換に基づいて、変換され暗号化されたデータレコードは、固有の(そして重複しない)位置に対象のプライベートデータ部分を有する。プロセスを完了させるために、変換され暗号化されたデータレコード808、810、812のすべてが一緒に加算される:E←Σi∈[N](R)、バッチ化され暗号化されたデータレコードを作成する。これはアルゴリズムにおける出力に対応する。図示されるように、バッチ化され暗号化されたデータレコード814は、個々の暗号化されたデータレコード800、802、804に元々あったプライベートデータ部分を含む。FHE推論M(E)は、バッチ化され暗号化されたレコード814に対して実行される。準同型推論に応答して、トランザクションのセットの1または複数が所定の特性、例えば不正を有するものとして識別される。これで処理が完了する。
【0079】
形式的には、図9のアルゴリズム900は、本開示による効率的な暗号化されたデータレコードのバッチ処理のための第1の実施形態を示す。このバッチ処理は、事前に暗号化されたレコードのセットである入力E(R),E(R),...E(R)で動作し、図示のようにシフト回転関数を使用して、出力E(R,R...R)を生成する。その後、出力に対して準同型暗号化が実行される。
【0080】
図10は、本明細書では保存/暗号化時のランダム化シフトと呼ばれることもある第2の実施形態を示し、この実施形態に関連するアルゴリズム1100を図11に示す。この第2の実施形態では、第1の実施形態とは対照的に、すべての処理が実行時に行われるのではなく、「保存状態」にある、すなわちデータベースなどに記憶される(または記憶されている)生のデータレコードに関して行われる第1のフェーズと、記憶され暗号化されたデータレコードを使用して推論のために識別されたトランザクションに関して実行時に行われる第2のフェーズとの2つのフェーズがある。第1のフェーズはオフラインで行われる。このフェーズでは、保存状態にある生のデータレコードが、これから説明する方法で変換される。
【0081】
特にMは、FHEコンテキストのスロット数を表す。アルゴリズム1100で説明したように、データベースR内の各データレコードに対してランダムな整数r(R)∈[0,N-1]が生成される。これらのレコードの各々について、前処理には、r(R)によるシフト回転レコードRを含み、レコードを暗号化してE(R)を取得する。このように、本実施形態では、シフト回転演算は生データ上で行われ、それによって理論的には対象のプライベートデータ部分の位置が変更され、その後データレコードが暗号化される。これらのレコードと値(r,E(R))がデータベースに記憶され、これでオフラインフェーズが完了する。
【0082】
その後、オンライン(実行時)推論は以下のように進行する。第1の実施形態と同様に、サイズのバッチ化時間窓Wは固定であり、(対象のプライベートデータ部分に対応する)特徴数がfで示され、所定の時間窓W内に到着するトランザクションTが収集される。データベース(本実施形態では、上述のように処理された暗号化されたデータレコードを含む)が照会され、関連するすべての暗号化データレコードと、Tに対応するそのランダムシフトが取得される。図10に示す例では、この実行時操作は、3つのレコード1000、1002、1004を返し、その各レコードは、前処理の結果として、対象のプライベートデータ部分1001(バッチ化されたレコードの準同型推論中に検査される)をすでに含んでいる。より正式には、この操作は以下の入力を取得する:(r(R),E(R)),(r(R),E(R)),...(r(R),E(R))。前処理中に使用されるランダムな(第1の実施形態における決定論的アプローチとは対照的な)シフトのため、暗号化されたデータレコードが重複する(したがって衝突する)部分1001を有し得る可能性がある。いくつかのr(R)=r(R)間での衝突が存在する場合、E(R)は空き領域にシフトされる。いずれかの衝突が特定され、解決されると、バッチ処理は、第1の実施形態と同様に継続される。特に、暗号化されたレコードが足し合わされる:E←Σi∈[N](R)、出力であるバッチ化され暗号化されたデータレコード1006を作成する。第1の実施形態と同様に、バッチ化され暗号化されたデータレコードは、レコード1000、1002、1004に最初に見つかったプライベートデータ部分のすべてを含む。FHE推論M(E)は、上述したように、バッチ化され暗号化されたデータレコード1006に対して実行される。これで処理が完了する。
【0083】
形式的には、図11のアルゴリズム1100は、本開示による効率的なバッチ化のための第2の実施形態を示す。本実施形態では、上述したように、前処理として、ランダム整数を選び、生データに対してシフト回転を実行し、その後、データレコードを暗号化して、入力(この場合、事前に暗号化されたレコードのセットE(R),E(R),...E(R))を生成し、このアルゴリズムが出力E(R,R...R)を生成し、その上で準同型推論が実行される。どちらの場合も、暗号化された複数のデータレコードは、推論が実行される単一レコードに結合(バッチ化またはプール)される。
【0084】
第1および第2の実施形態は、典型的には互いに独立しているが、これは限定ではない。トランザクションを一緒にバッチ化することによって(そしてこのほぼリアルタイムの方法で)、実行時の計算効率が大幅に向上し、それによって検知システム全体のスループットが大幅に向上する。さらに、当業者であれば、効率的なバッチ化を容易にする上述のシフト/追加方法は、事前に暗号化されたデータベースまたはデータセットが使用されるあらゆるユースケースにおいて有用であることを理解するであろう。
【0085】
説明したように、典型的には、このアプローチを実装するコンピューティングシステムは、ソフトウェア、例えば、1または複数のハードウェアプロセッサによって実行されるコンピュータプログラム命令のセットとして実装される。システム内の特定のツールまたはコンポーネントは、ツールまたはコンポーネントによって使用または作成されるデータをサポートするための適切なインタフェースおよびデータベースとともに、任意の数のプログラム、プロセス、実行スレッドなどを含んでもよい。ツールまたはコンポーネントは、ウェブベースのフロントエンド、コマンドラインなどを介して構成または管理することができる。ツールまたはコンポーネントは、プログラム的に実装される、またはアプリケーションプログラミングインタフェース(API)、または任意の便利なリクエストレスポンスプロトコルを介して他のコンピューティングエンティティまたはソフトウェアシステムと相互運用する1または複数の機能を含むことができる。
【0086】
本明細書における1または複数の市販製品またはサービスへの言及は、例示的なものであり、開示された技術を限定するものであってはならない。開示された技術は、説明された一般的な特性および動作機能を有する任意のシステム、装置、器具(または、より一般的には、機械)に実装することができる。
【0087】
前述したように、この主題の1つの好ましい実装はアズ・ア・サービスであるが、これも限定ではない。本技術のHEベースの推論部分は、完全にオンプレミスまたはスタンドアロンの動作環境で実施されてもよい。前述したように、また限定するものではないが、主題は、クラウド展開プラットフォームシステムまたはアプライアンス内またはそれらに関連して、あるいは任意の他のタイプの展開システム、製品、デバイス、プログラム、またはプロセスを使用して実施されてもよい。さらに、モデル構築または推論システムの機能は、スタンドアロン機能として提供されてもよいし、他の製品やサービスの機能を活用してもよい。
【0088】
本技術が実装され得る代表的なクラウドアプリケーションプラットフォームには、限定されるものではないが、クラウドでサポートされるアプリケーションフレームワーク、製品、サービスが含まれる。
【0089】
一般化すると、本明細書の技法は、管理ソリューション、サービス、製品、アプライアンス、デバイス、プロセス、プログラム、実行スレッドなどとして実装することができる。典型的には、本技術は、ハードウェア処理要素で実行される1または複数のコンピュータプログラムとして、問題データベースなどの1または複数のデータソースに記憶されたデータに関連付けて、ソフトウェアで実装される。説明された処理ステップの一部またはすべては自動化され、他のシステムと関連して自律的に動作することができる。自動化は全体的であっても部分的であってもよく、動作(全体的であっても部分的であっても)は同期的であっても非同期的であっても、要求ベースであっても、そうでなくてもよい。
【0090】
これらの上述の構成要素は、通常、それぞれソフトウェアとして、すなわち、1または複数のハードウェアプロセッサで実行されるコンピュータプログラム命令のセットとして実装される。構成要素は別個のものとして示されているが、構成要素の全部または一部を互いに統合することもできるため、別個であることは要件ではない。1または複数の構成要素は、専用の場所で実行してもよいし、互いに離れた場所で実行してもよい。1または複数の構成要素が、機能を提供するために一緒に実行されるサブコンポーネントを有していてもよい。本明細書の機能性(またはその任意の態様)は、他のまたはシステムで実装されてもよいため、ジェネレーターサービスの特定の機能が、上記で命名された特定のコンポーネントによって実行される必要はない。
【0091】
ツールおよび応答機能は、セキュリティ分析システムまたはサービスと相互作用または相互運用することができる。
【0092】
これまで説明してきたように、上述した機能は、スタンドアロンのアプローチ、例えば、1または複数のハードウェアプロセッサによって実行される1または複数のソフトウェアベースの機能として実装されてもよいし、(SOAP/XMLインタフェースを介したウェブサービスを含む)マネージドサービスとして利用可能であってもよい。本明細書で説明する特定のハードウェアおよびソフトウェアの実装の詳細は、単に例示を目的としたものであり、説明する主題の範囲を限定するものではない。
【0093】
より一般的には、開示された主題のコンテキスト内のコンピューティングデバイスは、それぞれハードウェアおよびソフトウェアを含むデータ処理システム(図2に示すような)であり、これらのエンティティは、インターネット、イントラネット、エクストラネット、プライベートネットワーク、または任意の他の通信媒体もしくはリンクなどのネットワークを介して互いに通信する。データ処理システム上のアプリケーションは、HTTP、FTP、SMTP、SOAP、XML、WSDL、UDDI、WSFLなどのサポートを含むがこれらに限定されない、ウェブおよびその他の既知のサービスおよびプロトコルのネイティブサポートを提供する。SOAP、WSDL、UDDI、WSFLに関する情報は、これらの標準の開発と保守を担当するワールドワイドウェブコンソーシアム(W3C)から入手できる。HTTP、FTP、SMTP、XMLに関する詳細情報は、インターネットエンジニアリングタスクフォース(IETF)から入手できる。
【0094】
前述のように、またクラウドベースの環境に加えて、本明細書で説明する技術は、単純なn層アーキテクチャ、ウェブポータル、連携システムなどを含む様々なサーバサイドアーキテクチャで、またはそれらと連携して実装することができる。
【0095】
さらに一般的には、本明細書で説明する主題は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアとソフトウェアの両方の要素を含む実施形態の形態をとることができる。好ましい実施形態では、機密データ検知サービス(またはその任意の構成要素)はソフトウェアで実装され、これにはファームウェア、常駐ソフトウェア、マイクロコードなどが含まれるが、これらに限定されない。さらに、ダウンロードおよび削除インタフェースおよび機能は、コンピュータまたは任意の命令実行システムによって、またはそれらに関連して使用するためのプログラムコードを提供する、コンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形態をとることができる。本明細書において、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって、またはそれらに関連して使用するためのプログラムを格納または記憶することができる任意の装置であることができる。媒体は、電子的、磁気的、光学的、電磁気的、赤外線的、または半導体システム(または装置またはデバイス)とすることができる。コンピュータ可読媒体の例としては、半導体またはソリッドステートメモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、硬質磁気ディスク、光ディスクなどがある。光ディスクの現在の例としては、コンパクトディスクリードオンリーメモリ(CD-ROM)、コンパクトディスクリード/ライト(CD-R/W)、DVDなどがある。コンピュータ可読媒体は、有形で非一過性のものである。
【0096】
コンピュータプログラム製品は、説明した機能の1または複数を実装するためのプログラム命令(またはプログラムコード)を有する製品であってよい。それらの命令またはコードは、遠隔のデータ処理システムからネットワークを介してダウンロードされた後、データ処理システム内のコンピュータ可読記憶媒体に記憶されてもよい。あるいは、それらの命令またはコードは、サーバデータ処理システム内のコンピュータ可読記憶媒体に記憶され、遠隔システム内のコンピュータ可読記憶媒体で使用するために、遠隔データ処理システムにネットワークを介してダウンロードされるように適合させることもできる。
【0097】
代表的な実施形態では、本技術は、特別な目的のコンピューティングプラットフォーム、好ましくは1または複数のプロセッサによって実行されるソフトウェアに実装される。ソフトウェアは、1または複数のプロセッサに関連する1または複数のデータストアまたはメモリに保持され、ソフトウェアは、1または複数のコンピュータプログラムとして実装されてもよい。集合的に、この特別目的のハードウェアとソフトウェアは、上述した機能を含む。
【0098】
上記では、本発明の特定の実施形態によって実行される操作の特定の順序について説明したが、代替の実施形態では、異なる順序で操作を実行したり、特定の操作を組み合わせたり、特定の操作を重複させたりすることができるため、かかる順序は例示的なものであることを理解されたい。本明細書における所定の実施形態への言及は、記載された実施形態が特定の特徴、構造、または特性を含み得ることを示すが、すべての実施形態が必ずしも特定の特徴、構造、または特性を含むとは限らない。
【0099】
最後に、システムの所定の構成要素を個別に説明してきたが、当業者であれば、所定の命令、プログラムシーケンス、コード部分などにおいて、機能の一部を組み合わせたり、共有したりすることができることを理解できよう。
【0100】
さらに、FHEは代表的な暗号プロトコルに過ぎず、限定することを意図していない。さらに、第2のフェーズの推論は、好ましくはFHEプロトコルを使用して行われるが、本明細書におけるアプローチは、ユーザ(または他の)機密データの復号を必要としない他のマルチパーティセキュア計算技術と共に活用することができる。FHEに代わるものとして、例えば、セキュリティエンクレーブベースの暗号化、量子安全暗号化、Yao garbled circuitなどが挙げられる。
【0101】
本明細書の技術は、別の技術または技術分野、すなわち不正検知システム、およびかかる技術を組み込んだり公開したりするクラウドベースの検知システムの改善を提供する。
【0102】
フレームワークが使用される特定のユースケースやアプリケーションは、本開示を限定するものではない。
【0103】
上述した方式は通常2つのフェーズを使用するが、これは制限ではなく、さらに(階層的な)区別レベルを実装することもできる。
【0104】
主題を説明したが、特許請求の範囲は以下の通りである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
【手続補正書】
【提出日】2024-01-23
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
リアルタイムプライバシー保護推論のための方法であって、
時間窓の間にリアルタイムで識別されたトランザクションのセットについて、および前記セット内の各トランザクションについて、暗号化されたデータレコードを取得することであって、前記暗号化されたデータレコードは、対象のプライベートデータ部分を有する、取得することと、
各々が固有の位置に前記対象のプライベートデータ部分を有する変換され暗号化されたデータレコードのセットを生成するために、前記暗号化されたデータレコードの各々に1または複数の変換を適用することと、
バッチ化され暗号化されたデータレコードを生成するために、前記変換され暗号化されたデータレコードを追加することであって、前記バッチ化され暗号化されたデータレコードは、すべての前記変換され暗号化されたデータレコードからの前記対象のプライベートデータ部分を含む、追加することと、
前記バッチ化され暗号化されたデータレコードに対して準同型推論を実行することと、
前記準同型推論に応答して、前記トランザクションのセットの1または複数を所定の特性を有するものとして識別することと、
を含む、方法。
【請求項2】
前記1または複数の変換を適用することは、
対象の特徴セットに対応する前記部分以外の、前記暗号化されたデータレコードのすべての部分をゼロパディングすることと、
第1の暗号化されたデータレコード以外の各暗号化されたデータレコードについて、
前記対象のプライベートデータ部分を前記固有の位置に配置するために、シフト回転関数をリアルタイムでインクリメンタルに適用することと、
を含む、請求項1に記載の方法。
【請求項3】
前記トランザクションのセットは、リアルタイムのトランザクションデータのストリームから評価のためにフラグを立てられたトランザクションである、請求項1または2のいずれか1項に記載の方法。
【請求項4】
プライバシー保護推論のための方法であって、
第1の保存データフェーズ中に、
データレコードのセットを特定することであって、各データレコードは、対象のプライベートデータ部分を有する、特定することと、
各々が位置に前記対象のプライベートデータ部分を有する暗号化されたデータレコードのセットを生成し、保存状態で記憶するために、前記データレコードの各々の生データに1または複数の変換を適用することと、
第2の実行フェーズ中に、および時間窓の間にリアルタイムで識別されたトランザクションのセットについて、
前記トランザクションのセットに対応する前記暗号化されたデータレコードを取得することと、
前記暗号化されたデータレコードのセットが各々固有の位置に前記対象のプライベートデータ部分を持つように、取得された前記暗号化されたデータレコードのうち、0個以上の前記対象のプライベートデータ部分の前記位置を調整することと、
バッチ化され暗号化されたデータレコードを生成するために取得された前記暗号化されたデータレコードを追加することであって、前記バッチ化され暗号化されたデータレコードは、取得されたすべての前記変換され暗号化されたデータレコードからの前記対象のプライベートデータ部分を含む、追加することと、
前記バッチ化され暗号化されたデータレコードに対して準同型推論を実行することと、
前記準同型推論に応答して、前記トランザクションのセットの1または複数を所定の特性を有するものとして識別することと、
を含む、方法。
【請求項5】
1または複数の変換を適用することは、
所定のデータレコードについて、ランダムな値を取得することと、
前記対象のプライベートデータ部分を前記位置にシフトさせるために、前記ランダムな値を使用して、前記所定のデータレコードに対応する前記暗号化されたデータレコードを生成するために、暗号化を適用することと、
前記暗号化されたデータレコードに関連付けて前記ランダムな値を記憶することと、
を含む、請求項4に記載の方法。
【請求項6】
前記対象のプライベートデータ部分の前記位置を調整することは、
少なくとも第1および第2の暗号化されたデータレコードについて、前記位置の重複があるかどうかを判定することと、
前記重複があると判定された場合、前記第1および第2の暗号化されたデータレコードの少なくとも一方において、前記対象のプライベートデータ部分を、占有されていないスペースに再配置することと、
を含む、請求項4または5のいずれか1項に記載の方法。
【請求項7】
前記トランザクションのセットは、リアルタイムのトランザクションデータのストリームから評価のフラグを立てられたトランザクションである、請求項4または5のいずれか1項に記載の方法。
【請求項8】
装置であって、
プロセッサと、
前記プロセッサによって実行されるコンピュータプログラム命令を保持するコンピュータメモリと、を備え、前記コンピュータプログラム命令は、リアルタイムプライバシー保護推論を実行するように構成され、前記コンピュータプログラム命令は、
時間窓の間にリアルタイムで識別されたトランザクションのセットについて、および前記セット内の各トランザクションについて、暗号化されたデータレコードを取得することであって、前記暗号化されたデータレコードは、対象のプライベートデータ部分を有する、取得することと、
各々が固有の位置に前記対象のプライベートデータ部分を有する変換され暗号化されたデータレコードのセットを生成するために、前記暗号化されたデータレコードの各々に1または複数の変換を適用することと、
バッチ化され暗号化されたデータレコードを生成するために、前記変換され暗号化されたデータレコードを追加することであって、前記バッチ化され暗号化されたデータレコードは、すべての前記変換され暗号化されたデータレコードからの前記対象のプライベートデータ部分を含む、追加することと、
前記バッチ化され暗号化されたデータレコードに対して準同型推論を実行することと、
前記準同型推論に応答して、前記トランザクションのセットの1または複数を所定の特性を有するものとして識別することと、
を実行するように構成される、
装置。
【請求項9】
適用するように構成された前記コンピュータプログラム命令は、
対象の特徴セットに対応する前記部分以外の、前記暗号化されたデータレコードのすべての部分をゼロパディングすることと、
第1の暗号化されたデータレコード以外の各暗号化されたデータレコードについて、
前記対象のプライベートデータ部分を前記固有の位置に配置するために、シフト回転関数をリアルタイムでインクリメンタルに適用することと、
をさらに実行するように構成されたコンピュータプログラム命令を含む、請求項8に記載の装置。
【請求項10】
前記トランザクションのセットは、リアルタイムのトランザクションデータのストリームから評価のフラグを立てられたトランザクションである、請求項8または9のいずれか1項に記載の装置。
【請求項11】
装置であって、
プロセッサと、
前記プロセッサによって実行されるコンピュータプログラム命令を保持するコンピュータメモリと、を備え、前記コンピュータプログラム命令は、プライバシー保護推論のために構成され、前記コンピュータプログラム命令は、
第1の保存データフェーズ中に、
データレコードのセットを特定することであって、各データレコードは、対象のプライベートデータ部分を有する、特定することと、
各々が位置に前記対象のプライベートデータ部分を有する暗号化されたデータレコードのセットを生成し、保存状態で記憶するために、前記データレコードの各々の生データに1または複数の変換を適用することと、
第2の実行フェーズ中に、および時間窓の間にリアルタイムで識別されたトランザクションのセットについて、
前記トランザクションのセットに対応する前記暗号化されたデータレコードを取得することと、
取得された前記暗号化されたデータレコードのセットが各々固有の位置に前記対象のプライベートデータ部分を持つように、取得された前記暗号化されたデータレコードのうち、0個以上の前記対象のプライベートデータ部分の前記位置を調整することと、
バッチ化され暗号化されたデータレコードを生成するために取得された前記暗号化されたデータレコードを追加することであって、前記バッチ化され暗号化されたデータレコードは、取得されたすべての前記暗号化されたデータレコードからの前記対象のプライベートデータ部分を含む、追加することと、
前記バッチ化され暗号化されたデータレコードに対して準同型推論を実行することと、
前記準同型推論に応答して、前記トランザクションのセットの1または複数を所定の特性を有するものとして識別することと、
を実行するように構成される、装置。
【請求項12】
1または複数の変換を適用するように構成された前記コンピュータプログラム命令は、
所定のデータレコードについて、ランダムな値を取得することと、
前記対象のプライベートデータ部分を前記位置にシフトさせるために、前記ランダムな値を使用して、前記所定のデータレコードに対応する前記暗号化されたデータレコードを生成するために、暗号化を適用することと、
前記暗号化されたデータレコードに関連付けて前記ランダムな値を記憶することと、
をさらに実行するように構成されるコンピュータプログラム命令を含む、
請求項11に記載の装置。
【請求項13】
前記対象のプライベートデータ部分の前記位置を調整するように構成された前記コンピュータプログラム命令は、
少なくとも第1および第2の暗号化されたデータレコードについて、前記位置の重複があるかどうかを判定することと、
前記重複があると判定された場合、前記第1および第2の暗号化されたデータレコードの少なくとも一方において、前記対象のプライベートデータ部分を、占有されていないスペースに再配置することと、
をさらに実行するように構成されたコンピュータプログラム命令を含む、請求項11または12のいずれか1項に記載の装置。
【請求項14】
前記トランザクションのセットは、リアルタイムのトランザクションデータのストリームから評価のフラグを立てられたトランザクションである、請求項11または12のいずれか1項に記載の装置。
【請求項15】
リアルタイムのプライバシー保護推論を実行するデータ処理システムで使用するための、非一時的コンピュータ可読媒体中のコンピュータプログラム製品であって、前記コンピュータプログラム製品は、コンピュータプログラム命令を保持し、前記コンピュータプログラム命令は、前記データ処理システムによって実行されると、
時間窓の間にリアルタイムで識別されたトランザクションのセットについて、および前記セット内の各トランザクションについて、暗号化されたデータレコードを取得することであって、前記暗号化されたデータレコードは、対象のプライベートデータ部分を有する、取得することと、
各々が固有の位置に前記対象のプライベートデータ部分を有する変換され暗号化されたデータレコードのセットを生成するために、前記暗号化されたデータレコードの各々に1または複数の変換を適用することと、
バッチ化され暗号化されたデータレコードを生成するために、前記変換され暗号化されたデータレコードを追加することであって、前記バッチ化され暗号化されたデータレコードは、すべての前記変換され暗号化されたデータレコードからの前記対象のプライベートデータ部分を含む、追加することと、
前記バッチ化され暗号化されたデータレコードに対して準同型推論を実行することと、前記準同型推論に応答して、前記トランザクションのセットの1または複数を所定の特性を有するものとして識別することと、
を実行するように構成される、コンピュータプログラム製品。
【請求項16】
適用するように構成された前記コンピュータプログラム命令は、
対象の特徴セットに対応する前記部分以外の、前記暗号化されたデータレコードのすべての部分をゼロパディングすることと、
第1の暗号化されたデータレコード以外の各暗号化されたデータレコードについて、
前記対象のプライベートデータ部分を前記固有の位置に配置するために、シフト回転関数をリアルタイムでインクリメンタルに適用することと、
をさらに実行するように構成されたコンピュータプログラム命令を含む、
請求項15に記載のコンピュータプログラム製品。
【請求項17】
前記トランザクションのセットは、リアルタイムのトランザクションデータのストリームから評価のフラグを立てられたトランザクションである、請求項15または16のいずれか1項に記載のコンピュータプログラム製品。
【請求項18】
プライバシー保護推論のためのデータ処理システムで使用するための、非一時的コンピュータ可読媒体中のコンピュータプログラム製品であって、前記コンピュータプログラム製品は、コンピュータプログラム命令を保持し、前記コンピュータプログラム命令は、前記データ処理システムによって実行されると、
第1の保存データフェーズ中に、
データレコードのセットを特定することであって、各データレコードは、対象のプライベートデータ部分を有する、特定することと、
各々が位置に前記対象のプライベートデータ部分を有する暗号化されたデータレコードのセットを生成し、保存状態で記憶するために、前記データレコードの各々の生データに1または複数の変換を適用することと、
第2の実行フェーズ中に、および時間窓の間にリアルタイムで識別されたトランザクションのセットについて、
前記トランザクションのセットに対応する前記暗号化されたデータレコードを取得することと、
取得された前記暗号化されたデータレコードのセットが各々固有の位置に前記対象のプライベートデータ部分を持つように、取得された前記暗号化されたデータレコードのうち、0個以上の前記対象のプライベートデータ部分の前記位置を調整することと、
バッチ化され暗号化されたデータレコードを生成するために取得された前記暗号化されたデータレコードを追加することであって、前記バッチ化され暗号化されたデータレコードは、取得されたすべての前記暗号化されたデータレコードからの前記対象のプライベートデータ部分を含む、追加することと、
前記バッチ化され暗号化されたデータレコードに対して準同型推論を実行することと、
前記準同型推論に応答して、前記トランザクションのセットの1または複数を所定の特性を有するものとして識別することと、
を実行するように構成される、コンピュータプログラム製品。
【請求項19】
1または複数の変換を適用するように構成された前記コンピュータプログラム命令は、
所定のデータレコードについて、ランダムな値を取得することと、
前記対象のプライベートデータ部分を前記位置にシフトさせるために、前記ランダムな値を使用して、前記所定のデータレコードに対応する前記暗号化されたデータレコードを生成するために、暗号化を適用することと、
前記暗号化されたデータレコードに関連付けて前記ランダムな値を記憶することと、
をさらに実行するように構成されるコンピュータプログラム命令を含む、
請求項18に記載のコンピュータプログラム製品。
【請求項20】
前記対象のプライベートデータ部分の前記位置を調整するように構成された前記コンピュータプログラム命令は、
少なくとも第1および第2の暗号化されたデータレコードについて、前記位置の重複があるかどうかを判定することと、
前記重複があると判定された場合、前記第1および第2の暗号化されたデータレコードの少なくとも一方において、前記対象のプライベートデータ部分を、占有されていないスペースに再配置することと、
をさらに実行するように構成されたコンピュータプログラム命令を含む、請求項18または19のいずれか1項に記載のコンピュータプログラム製品。
【請求項21】
前記トランザクションのセットは、リアルタイムのトランザクションデータのストリームから評価のフラグを立てられたトランザクションである、請求項18または19のいずれか1項に記載のコンピュータプログラム製品。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0071
【補正方法】変更
【補正の内容】
【0071】
図7は、この例示的な実施形態に従って実装される二相推論フローを示し、多相推論アプローチはクレジットカード不正検知に使用される。この実施形態では、コンピューティングシステム700は、不正検知を提供するアプリケーション702をホストし、コンピューティングシステム700は、非プライベートトランザクションデータ70のデータベース70と、プライベートユーザデータ708とを関連付けている。典型的には、プライベートユーザデータ708を記憶するデータベース70は、潜在的に信頼されていない環境にあるものであっても、他のサーバ上でホストされてもよい。描かれているように、(図示されていないトランザクション処理システムからの)トランザクションデータは、好ましくはリアルタイムでステップ(1)に到着する。基本的な不正検知操作は、ここではトランザクションごとに実行され、ステップ(2)で第1のモデルを使って不正の可能性があるかどうかを判定する。もしそうでなければ、アプリケーション702は何もしない。しかし、「不正の可能性があるか」テストの結果が肯定的である場合、制御はステップ(3)に移行し、アプリケーション702はデータベース70に記憶された追加の暗号化データ708に対して完全な準同型暗号化(FHE)に基づく推論を適用し、トランザクションが不正としてタグ付けされるべきかどうかの最終決定を行う。この目的のために、前述の図4で説明したFHE技術を使用することができる。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0076
【補正方法】変更
【補正の内容】
【0076】
<準同型推論のための事前暗号化データの効率的なバッチ化>
上述した技法は(不正検知システムを通じて)かなりのデータスループットを提供するが、以下ではさらに高いスループットを実現するいくつかの追加技法について説明する。非限定的なシナリオ例、すなわちクレジットカードの不正検知を続けると、第1のレベルの検知プロセスが実施され、不正の可能性が高いトランザクションが特定されたと仮定する。かかるトランザクションごとに準同型推論を実行する代わりに(例えば、図7のステップ(3)を使用)、今説明するようなバッチベースのアプローチが使用される。特に、トランザクションのセットが詐欺の可能性があると識別され、かかる各トランザクションは、暗号化された形で、典型的には行単位で保存されているユーザプロファイルおよびその他の機密情報(個人情報やクレジットカード情報など)を使って、さらにチェックされなければならないと仮定する。このユーザプロファイルおよびその他の機密情報は、図7のユーザプライベートデータ708に対応する。一般に、特定のユーザ(非プライベートデータ70のユーザ識別子に対応する)には、暗号化されたレコード708が関連付けられている。生データレコード(すなわち、暗号化が適用される前)は、典型的には、例えば、ユーザがクレジットカードを取得したとき、ユーザアカウント情報が更新されたときなど、オフラインで記入されるデータ値を有するデータフィールドの大きなセットを有する。これらのデータフィールドの一部は空であってもよい。本開示の特徴によれば、これから説明するように、バッチ処理は、データレコードを含むデータフィールドの全体集合のうちの一部の定義されたサブセットに関して実行され、この定義されたサブセットは、本明細書では「対象のプライベートデータ部分」と呼ばれる。データベース内の各データレコード(暗号化前と暗号化後の両方)は共通の構造(サイズ、フィールド数、対象のプライベートデータ部分の初期位置など)を有する。これからわかるように、以下に説明する技術の基本的な目標は、暗号化されたデータレコードを、個々のレコードのプライベートデータ部分をすべて含む単一の暗号化されたデータレコードにバッチ化することができるように、暗号化されたデータレコード全体のプライベートデータ部分の特定の位置を変更することである。不正検知のために、単一の暗号化データレコード内の対象のプライベートデータ部分のデータ値は、その後、これらのデータ値のプライバシーを確保するために準同型推論を使用して対応するリアルタイムのトランザクションデータと照合される。
【国際調査報告】