JP2023506234A - スプリットデータおよびスプリットアルゴリズムに対する効率的な計算のためのシステムおよび方法 - Google Patents

スプリットデータおよびスプリットアルゴリズムに対する効率的な計算のためのシステムおよび方法 Download PDF

Info

Publication number
JP2023506234A
JP2023506234A JP2022536496A JP2022536496A JP2023506234A JP 2023506234 A JP2023506234 A JP 2023506234A JP 2022536496 A JP2022536496 A JP 2022536496A JP 2022536496 A JP2022536496 A JP 2022536496A JP 2023506234 A JP2023506234 A JP 2023506234A
Authority
JP
Japan
Prior art keywords
algorithm
subset
data
entity
provider
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022536496A
Other languages
English (en)
Inventor
ストーム,グレッグ
ダス,リッディマン
ギルカレイ,ババック,プーレブラヒム
Original Assignee
トリプルブラインド,インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by トリプルブラインド,インク. filed Critical トリプルブラインド,インク.
Publication of JP2023506234A publication Critical patent/JP2023506234A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • G06Q20/1235Shopping for digital content with control of digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Item investigation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • G06F18/2113Selection of the most significant subset of features by ranking or filtering the set of features, e.g. using a measure of variance or of feature cross-correlation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Finance (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Algebra (AREA)
  • Medical Informatics (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Biodiversity & Conservation Biology (AREA)

Abstract

開示された概念は、効率的な方法でアルゴリズムによって動作するデータに対するプライバシーを達成する。方法は、第1のアルゴリズムサブセットを受信することと、第2のアルゴリズムサブセットを受信することと、第1のアルゴリズムサブセットに基づく第1の数学的セットの2つのシェアを生成することと、第1の数学的セットの2つのシェアを第1のエンティティから第2のエンティティに送信することと、を含む。方法は、第2のアルゴリズムサブセットに基づく第2の数学的セットの2つのシェアを生成することと、第2の数学的セットの2つのシェアを第2のエンティティから第1のエンティティに送信することと、完全なデータセットの第1のスプリットデータサブセットを受信することと、完全なデータセットの第2のスプリットデータサブセットを受信することと、を含むことができる。システムは、これらのデータサブセットに基づいて、最終出力のために組み合わされる第1の出力サブセットおよび第2の出力サブセットを生成する。【選択図】図1

Description

関連出願の相互参照
本出願は、2020年3月24日に出願された米国仮特許出願第16/828,216号の優先権を主張し、これは、「Systems and Methods for Encryption」と題する、2019年12月13日に出願された米国仮特許出願第62/948,105号の優先権を主張し、その開示は、参照により本明細書に組み込まれる。
関連出願
本開示は、2020年3月24日に各々出願された出願第16/828,085号(整理番号213-0100)、出願第16/828,354号(整理番号213-0102)および出願第16/828,420号(213-0103)に関するものであり、それらの各々は参照により本明細書に組み込まれる。
本技術は、データ、アルゴリズム、ニューラルネットワーク、および他の情報を暗号化し、スプリットまたは暗号化されたデータに対する複雑な動作を正確かつより効率的に実行することに関する。
人、エンティティ、または会社が、別の人、エンティティ、または会社と対話し得る状況が多数存在する。これらの状況では、ジョブ、プロジェクト、またはタスクに対して作業するために、第1のエンティティが第2のエンティティと情報を交換し、第2のエンティティが第1のエンティティと情報を交換する必要があり得る。しかしながら、第1のエンティティは、その情報が専有情報を含み得るため、第2のエンティティがその情報を閲覧することができることを制限することを欲し得る。さらに、第2のエンティティは、その情報が専有情報を含み得るため、第1のエンティティがその情報を閲覧することができることを制限することを欲し得る。
上に列挙した、および本開示の他の利点ならびに特徴を得ることができる様態を記載するために、簡潔に上述した原理のより具体的な説明を、別添の図面に例示されたその特有の実施形態を参照することによって行う。これらの図面は、本開示の例示的な実施形態のみを描写し、したがって、その範囲を限定するものと考えられるべきではないと理解し、本明細書の原理は、添付の図面の使用を通じて、さらなる具体性かつ詳細によって記載および説明される。
様々な実施形態による、例示的な計算環境を示す。 様々な実施形態による、データプロバイダおよびアルゴリズムプロバイダを示す。 様々な実施形態による、データを分割するデータプロバイダ、およびアルゴリズムを分割するアルゴリズムプロバイダを示す。 様々な実施形態による、アルゴリズムを共同で計算するデータプロバイダおよびアルゴリズムプロバイダを示す。 データプロバイダとアルゴリズムプロバイダとの間の情報の通信を示す。 アルゴリズムプロバイダ、データプロバイダ、およびアグリゲータ間のデータの通信を示す。 安全なマルチパーティ算出アプローチの適用を含む、アルゴリズムプロバイダ、データプロバイダ、およびアグリゲータ間のデータの通信を示す。 様々な実施形態による、複数のデータプロバイダおよび複数のアルゴリズムプロバイダを示す。 様々な実施形態による、アルゴリズムに関連付けられた例示的な回路を示す。 様々な実施形態による、隠れ回路に変換される例示的なアルゴリズムを示す。 様々な実施形態による、第1のスプリットおよび第2のスプリットに分割された隠れ回路を示す。 データをアルゴリズムに提供するデータプロバイダからアルゴリズムを隠すもしくは暗号化するか、またはデータに対して動作するアルゴリズムを提供するアルゴリズムプロバイダからデータを隠すもしくは暗号化するための例示的な方法を示す。 別の例示的な方法を示す。 ビーバーセットの使用に関するさらに別の例示的な方法を示す。 別の例示的な方法を示す。 例示的なニューラルネットワークを示す。 ニューラルネットワークで使用される様々な層の別の例を示す。 ニューラルネットワークにおけるフィルタの使用に関連付けられた例示的な方法を示す。 様々な実施形態による例示的な計算デバイスを示す。
例示的な実施形態の説明
本開示の様々な実施形態が、以下で詳細に考察される。具体的な実装態様が考察されるが、これは例示の目的のために行われることが理解されるべきである。当業者は、他の構成要素および構成が、本開示の趣旨および範囲から逸脱することなく使用され得ることを認識するであろう。
概説
続く説明において、本開示の追加の特徴および利点を述べ、一部は、説明から明らかであるか、または本明細書に開示される原理の実践により知得できる。本開示の特徴および利点は、別添の特許請求の範囲で特に指摘される器具および組み合わせによって実現および取得することができる。本開示のこれらおよび他の特徴は、以下の説明および別添の特許請求の範囲からより完全に明らかになるか、または本明細書で述べる原理の実践によって知得することができる。
本明細書で開示されているのは、データ、アルゴリズム、ニューラルネットワーク、および他の情報を暗号化し、スプリットまたは暗号化されたデータに対して複雑な動作を正確かつより効率的に実行するためのシステム、方法、およびコンピュータ可読媒体である。少なくとも1つの例によれば、データおよびデータに対して動作するアルゴリズムの両方に対するプライバシーを達成するためのシステムが提供される。システムは、メモリと、メモリによって記憶された命令を実行するための少なくとも1つのプロセッサとを含む少なくとも1つの計算デバイスとすることができる。少なくとも1つの計算デバイスは、アルゴリズムプロバイダからアルゴリズムを受信することができ、データプロバイダからデータを受信することができる。アルゴリズムは、アルゴリズムプロバイダによって提供されるアルゴリズムのリストから選択され得、データは、データプロバイダによってデータベースから取り出され得る。データベースは、ディスク、RAM、キャッシュなどの任意のタイプのメモリからアクセスすることができる。さらに、計算デバイスは、アルゴリズムを暗号化し、データを暗号化し得る。一例では、計算デバイスは、アルゴリズムプロバイダに関連付けられた計算デバイスであってもよい。別の例では、計算デバイスは、データプロバイダに関連付けられた計算デバイスであってもよい。さらなる例では、計算デバイスは、サードパーティの計算デバイスであってもよく、アルゴリズムプロバイダまたはデータプロバイダに関連付けられていなくてもよい。
以下の開示物は、データに対して動作するであろうアルゴリズムを、どのようにして少なくとも2つのサブ部分にスプリットまたは分割することができるかを記載する。データはまた、サブ部分に分割することができる。アルゴリズムプロバイダとデータプロバイダとの間のプライバシーを維持するためのデータサブ部分に対するアルゴリズムサブ部分の動作。アルゴリズムを分割するプロセスおよびその後の処理は、いくつかの異なる方法で達成することができる。例えば、アルゴリズムは、ブール論理ゲートセットに変換することができるか、またはニューラルネットワークもしくは代数もしくは非ブール回路として表すことができる。これらの様々なアプローチは、各々、新しい方法でアルゴリズムを介してデータを処理する、より一般的なアイデアに適用される。
少なくとも1つの計算デバイスは、アルゴリズムを第1のアルゴリズムサブセットおよび第2のアルゴリズムサブセットに分割することができ、データを第1のデータサブセットおよび第2のデータサブセットに分割することができる。少なくとも1つの計算デバイスは、第1のアルゴリズムサブセットおよび第1のデータサブセットをアルゴリズムプロバイダに送信することができ、第2のアルゴリズムサブセットおよび第2のデータサブセットをデータプロバイダに送信することができる。次に、少なくとも1つの計算デバイスは、アルゴリズムプロバイダから第1のアルゴリズムサブセットおよび第1のデータサブセットに基づく第1の部分結果を受信することができ、データプロバイダから第2のアルゴリズムサブセットおよび第2のデータサブセットに基づく第2の部分結果を受信することができる。少なくとも1つの計算デバイスは、第1の部分結果および第2の部分結果に基づく組み合わされた結果を判定することができる。
さらなる例では、アルゴリズムに関連付けられたブール論理ゲートセットがあり得る。このアルゴリズムは、ブール論理ゲートセットに変換することができる。計算デバイスは、第1のアルゴリズムサブセットをブール論理ゲートセットからの第1のブール論理ゲートサブセットに変換し得、第2のアルゴリズムサブセットをブール論理ゲートセットからの第2のブール論理ゲートサブセットに変換し得る。これは、非ニューラルネットワークに使用されるアプローチである。元のブール論理ゲートサブセット(複数可)は、ANDゲートおよびXORゲートを含むことができ、サブセットは、単に割り当てられた符号化のシェアである。例えば、システムが1、1でANDゲートを符号化する場合、第1のサブセットは、0、1とすることができ、第2のサブセットは、1、0とすることができる。本明細書で考察されるように、アルゴリズムプロバイダは、少なくとも1つの第1の計算デバイスを含み得、データプロバイダは、少なくとも1つの第2の計算デバイスを含み得る。一例では、組み合わされた結果は、データプロバイダに送信され得、データプロバイダは、組み合わされた結果の表現を表示し得る。別の例では、組み合わされた結果は、アルゴリズムプロバイダに送信され得、アルゴリズムプロバイダは、組み合わされた結果の表現を表示し得る。別の例では、組み合わされた結果は、別の計算デバイスに送信され得、他の計算デバイスは、組み合わされた結果の表現を表示し得る。
ニューラルネットワークの場合、本開示は、重みに従ってアルゴリズムをスプリットする概念を導入し、ブール論理ゲートセットは、ネットワークの構造によって置き換えられる。基本的に、ニューラルネットワークは(非ブール)回路そのものとして扱われる。別の態様では、この概念は、(単なるアルゴリズムのブール論理ゲートセットの分解ではなく)アルゴリズムの代数的分解に一般化することができる。例えば、ニューラルネットワークの場合に、システムは、ノードがゲートを表し、それらの間の接続がワイヤを表す、ニューラルネットワークのノードのアーキテクチャをそれ自身の回路として扱うことができる。本開示はまた、純粋に代数的構造におけるアルゴリズムを表すものを網羅する。したがって、アルゴリズムは、これらの3つの方法(回路、ニューラルネットワーク、代数的構造)で表すことができる。アルゴリズムは、同様に他の構造として変換または表現され得ることがさらに企図される。本開示は、アルゴリズムを表すリストされた3つの方法に限定されない。
別の例では、データおよびデータに対して動作するアルゴリズムの両方に対してプライバシーを達成するための方法が提供される。システムは、少なくとも1つのプロセッサによって、アルゴリズムプロバイダからアルゴリズムを受信することと、少なくとも1つのプロセッサによって、データプロバイダからデータを受信することと、少なくとも1つのプロセッサによって、アルゴリズムを第1のアルゴリズムサブセットおよび第2のアルゴリズムサブセットに分割することと、少なくとも1つのプロセッサによって、データを第1のデータサブセットおよび第2のデータサブセットに分割することと、少なくとも1つのプロセッサによって、第1のアルゴリズムサブセットおよび第1のデータサブセットをアルゴリズムプロバイダに送信することと、少なくとも1つのプロセッサによって、第2のアルゴリズムサブセットおよび第2のデータサブセットをデータプロバイダに送信することと、少なくとも1つのプロセッサによって、アルゴリズムプロバイダから第1のアルゴリズムサブセットおよび第1のデータサブセットに基づく第1の部分結果を受信し、データプロバイダから第2のアルゴリズムサブセットおよび第2のデータサブセットに基づく第2の部分結果を受信することと、少なくとも1つのプロセッサによって、第1の部分結果および第2の部分結果に基づく組み合わされた結果を判定することと、を含むことができる。
例示的なシステムは、1つ以上のプロセッサと、コンピュータ命令を記憶するコンピュータ可読記憶デバイスと、を含むことができ、そのコンピュータ命令が、少なくとも1つのプロセッサによって実行されると、プロセッサに、アルゴリズムプロバイダからアルゴリズムを受信することと、データプロバイダからデータを受信することと、アルゴリズムを第1のアルゴリズムサブセットおよび第2のアルゴリズムサブセットに分割することと、データを第1のデータサブセットおよび第2のデータサブセットに分割することと、第1のアルゴリズムサブセットおよび第1のデータサブセットをアルゴリズムプロバイダに送信することと、を含む動作を実行させる。動作はさらに、第2のアルゴリズムサブセットおよび第2のデータサブセットをデータプロバイダに送信することと、アルゴリズムプロバイダから第1のアルゴリズムサブセットおよび第1のデータサブセットに基づく第1の部分結果を受信することと、データプロバイダから第2のアルゴリズムサブセットおよび第2のデータサブセットに基づく第2の部分結果を受信することと、第1の部分結果および第2の部分結果に基づく組み合わされた結果を判定することと、を含む。
別の例では、データおよびデータに対して動作するアルゴリズムの両方に対するプライバシーを達成するための非一時的なコンピュータ可読記憶媒体が提供される。非一時的なコンピュータ可読記憶媒体は、命令を記憶することができ、命令が、1つ以上のプロセッサによって実行されたときに、1つ以上のプロセッサに、先に記載された方法および/または動作を実行させる。例えば、命令は、1つ以上のプロセッサに、アルゴリズムプロバイダからアルゴリズムを受信することと、データプロバイダからデータを受信することと、アルゴリズムを第1のアルゴリズムサブセットおよび第2のアルゴリズムサブセットに分割し、データを第1のデータサブセットおよび第2のデータサブセットに分割することと、第1のアルゴリズムサブセットおよび第1のデータサブセットをアルゴリズムプロバイダに送信することと、第2のアルゴリズムサブセットおよび第2のデータサブセットをデータプロバイダに送信することと、アルゴリズムプロバイダから第1のアルゴリズムサブセットおよび第1のデータサブセットに基づく第1の部分結果を受信し、データプロバイダから第2のアルゴリズムサブセットおよび第2のデータサブセットに基づく第2の部分結果を受信することと、第1の部分結果および第2の部分結果に基づく組み合わされた結果を判定することと、を行わせることができる。
別の例示的な方法は、少なくとも1つのプロセッサによって、アルゴリズムプロバイダからアルゴリズムを受信することと、少なくとも1つのプロセッサによって、データプロバイダからデータを受信することと、少なくとも1つのプロセッサによって、アルゴリズムを第1のアルゴリズムサブセットおよび第2のアルゴリズムサブセットに分割することと、少なくとも1つのプロセッサによって、データを第1のデータサブセットおよび第2のデータサブセットに分割することと、を含む。方法は、少なくとも1つのプロセッサによって、第1のアルゴリズムサブセットおよび第1のデータサブセットを処理することと、少なくとも1つのプロセッサによって、第2のアルゴリズムサブセットおよび第2のデータサブセットを処理することと、を含むことができる。方法はまた、少なくとも1つのプロセッサによって、第1のアルゴリズムサブセットおよび第1のデータサブセットに基づく第1の部分結果を受信し、第2のアルゴリズムサブセットおよび第2のデータサブセットに基づく第2の部分結果を受信することと、少なくとも1つのプロセッサによって、第1の部分結果および第2の部分結果に基づく組み合わされた結果を判定することと、を含むことができる。
本開示の別の態様は、アルゴリズムサブセットによってデータサブセットを処理するときに追加の効率を提供することに関する。アルゴリズムは、2つの部分にスプリットされ、次いで、トランザクションにおいて2つのパーティ間に配分される。制御ビットは、回路の実際の最終評価が何であるかを最終的に解読する、異なるデータサブセットおよびアルゴリズムサブセットに対して算出を実行する2つの異なるスポットまたは位置の間で使用されるだろう。
本明細書に開示される1つのアプローチは、ビーバーセットを使用して、通信ホップを前処理ステップに移動させることによって、より少ない通信ホップでの乗算を可能にする。ビーバーセットは、算出時(例えば、アルゴリズムが暗号化および/または配分された後)に用いられ、計算が発生している異なるデバイスまたは場所間の交換の量を低減する。このアプローチにより、交換が必要になる前に、より多くの算出をより高速に実行することが可能になる。このアプローチは、ニューラルネットワークの様々な層におけるフィルタのコンテキストで記載される。
例示的な方法は、1つ以上の計算デバイスを介して、ニューラルネットワークの第1の層における複数のフィルタを第1のフィルタセットおよび第2のフィルタセットに分割することと、1つ以上の計算デバイスを介して、第1のフィルタセットの各々を、ニューラルネットワークの入力に適用して、第1の出力セットを生成することと、第2のフィルタセットに関連付けられた第2の出力セットを取得することと、を含み、第2の出力セットは、第2のフィルタセットの各々のニューラルネットワークの入力への適用に基づく。複数のフィルタからの同じフィルタに対応する第1のフィルタセットおよび第2のフィルタセットにおける各フィルタセットに対して、方法は、1つ以上の計算デバイスを介して、ニューラルネットワークの第2の層において、フィルタセットにおける第1のフィルタに関連付けられた第1の出力セットのそれぞれの1つと、フィルタセットにおける第2のフィルタに関連付けられた第2の出力セットのそれぞれの1つとをアグリゲートして、第1のフィルタセットおよび第2のフィルタセットに関連付けられたアグリゲートされた出力セットを生成することを含む。
本方法は、1つ以上の計算デバイスを介して、ニューラルネットワークの各残りの層において活性化された特定のニューロンのそれぞれの重みをスプリットして、第1の重みセットおよび第2の重みセットを生成することをさらに含み、特定のニューロンは、アグリゲートされた出力セットに適用された1つ以上の活性化関数に基づいて活性化される。各残りの層からの各特定のニューロンにおいて、本方法は、1つ以上の計算デバイスを介して、各特定のニューロンに関連付けられたそれぞれのフィルタおよび第1の重みセットからの第1の対応する重みを適用して、第1のニューロン出力セットを生成することと、特定のニューロンに関連付けられた第2のニューロン出力セットを取得することであって、第2のニューロン出力セットは、各特定のニューロンに関連付けられたそれぞれのフィルタの、第2の重みセットからの第2の対応する重みへの適用に基づく、取得することと、各特定のニューロンに対して、特定のニューロンに関連付けられた第1のニューロン出力セットのうちの1つと、特定のニューロンに関連付けられた第2のニューロン出力セットのうちの1つをアグリゲートして、特定のニューロンに関連付けられアグリゲートされたニューロン出力を生成することと、アグリゲートされたニューロン出力のうちの1つ以上に基づくニューラルネットワークの出力を生成することと、を含む。上記方法は、任意の順序で識別されたステップのうちの任意の1つ以上を含むことができる。
一例では、ビーバーセット(または同様の数学的構造)の使用は、アルゴリズムおよびデータをスプリットし、本明細書に開示される動作を実行するために必要とされる算出の量を低減するために使用することができる。ビーバーセットは、通常、乗算を安全に実行するために過去に使用されている。本開示は、より少ない通信ホップで乗算を達成するために、新しい方法でビーバーセットを適用することによって、最新技術を拡張する。一般に、ビーバーセットは乗算を計算するために使用される。本開示は、ビーバーセットを除算および指数関数の計算に適用するために、ビーバーセットの使用を拡大する。例示的な方法は、各パーティまたはエンティティが、アルゴリズムサブセットを受信することと、ファーストパーティによって、第1のアルゴリズムの性質(または他の要因)に基づく第1のビーバーセットの2つのシェアを生成することと、セカンドパーティによって、第2のアルゴリズムサブセットの性質(または他の要因)に基づく第2のビーバーセットの2つのシェアを生成することと、次いで、第1のデータサブセットをファーストパーティに提供し、第2のデータサブセットをセカンドパーティに提供することと、第1のビーバーセットの2つのシェアに基づいて第1のアルゴリズムサブセットを第1のデータサブセットに対して実行して、第1の出力サブセットを取得することと、第2のビーバーセットの2つのシェアに基づいて第2のアルゴリズムサブセットを第2のデータサブセットに対して実行して、第2の出力サブセットを取得することと、を含む。次いで、システムは、最終結果として第1の出力サブセットおよび第2の出力サブセットを組み合わせる。
この簡単な導入は、特許請求の範囲の主題の主要または本質的な特徴を識別することを意図しておらず、特許請求の範囲の主題の範囲を判定するために単独で使用されることを意図していない。主題は、本特許の明細書全体の適切な部分、いずれかまたはすべての図面、および各請求項を参照することによって理解されるべきである。
上記は、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照すると、より明らかになるであろう。
発明を実施するための形態
開示されている技術は、データ、アルゴリズム、ニューラルネットワーク、および他の情報を暗号化し、スプリットまたは暗号化されたデータに対して複雑な動作を正確かつより効率的に実行するためのシステム、方法、およびコンピュータ可読媒体を伴う。本技術は、以下の開示において以下のように記載される。考察は、この技術を適用できる一般的なシナリオの紹介から始まり、次にマルチパーティ計算の概説を行う。
本明細書に開示されている概念を適用できる1つの例示的なシナリオは、医療コンテキストにおけるものである。個人の医療データは、HIPAA(Health Insurance Portability and Accountability Act)などの法律によって保護されている。場合によっては、畳み込みニューラルネットワーク(CNN)が、画像内のパターンを識別するための価値がある。患者は、心電図(EKG)を評価してもらう必要があり得る。通常、CNN(アルゴリズム)は、患者の識別につながる可能性のあるEKGデータを「見る」。別の態様では、専有CNNの特徴はまた、データを提供する者から取得され得る。企業は、患者データを識別から保護することを欲し得るだけでなく、専有アルゴリズムを開示することから保護することを欲するだろう。本明細書に開示される概念は、アルゴリズムが、データおよびアルゴリズムの両方を識別から保護する方法でデータに対して動作することを可能にする。本開示は、以下でより完全に医療、クレジットカード、保険などの様々なシナリオに対処するだろう。
次に、図1に示されるように、例示的なマルチパーティ計算環境の説明、ならびに図2~図9Bに示されるように、データおよびデータに対して動作するアルゴリズムの両方に対するプライバシーを達成するための例示的な方法および技術の説明を提供する。図9C~図12は、本明細書に開示されている実施形態のさらなる例示を提供し、効率的な方式でアルゴリズムおよびデータの両方に対するプライバシーを達成することに関する様々な方法の畳み込みニューラルネットワークおよびフロー図を含む。考察は、図13に示されるように、マルチパーティ計算動作を実行するのに好適な例示的なハードウェア構成要素を含む例示的な計算デバイスアーキテクチャの説明で終わる。一態様では、標準的または暗号化されていないアルゴリズムも、同様に安全なマルチパーティ計算で処理され得る。これは、本明細書に記載されるように、準同型暗号化、安全な要素(ハードウェアベースまたはそれ以外)ベースのアプローチの使用に加えるものである。システムは、暗号化された標準的なアルゴリズムを使用することにより、(安全なマルチパーティ計算を使用せずに)準同型暗号化されたデータ、または安全なエンクレーブを使用してさえも対話することができる。ここで、開示は、マルチパーティ計算の導入概説に移る。
図1に示されるように、本明細書におけるアプローチは、データ108をアルゴリズム106に提供するデータプロバイダ102からアルゴリズム106を隠すまたは暗号化し、データ108に対して動作するアルゴリズム106を提供するアルゴリズムプロバイダ102からデータ108を隠すまたは暗号化するためのシステムおよび/またはプロセスを提供する。いくつかの例では、アルゴリズム106は、アルゴリズムを共同で実行する少なくとも1つのパーティ間で分割またはスプリットされ得る。さらに、いくつかの例では、データ108は、少なくとも1つのパーティ間でスプリットまたは分割され得る。一態様では、通信ネットワーク110は、データプロバイダ102とアルゴリズムプロバイダ104との間で構成され得る。本明細書で考察されるシステムは、データおよびデータに対する動作するアルゴリズムの両方に対する暗号化によってプライバシーを達成し得る。一例として、ファーストパーティによって提供される専有アルゴリズム106を、セカンドパーティには秘密にしておくことができ、セカンドパーティからの専有データ108を、ファーストパーティには秘密にしておくことができる。別の例では、サードパーティが関与し得る。
一例として、安全なマルチパーティ計算(MPC)は、任意の専有情報を取得する各データセットの所有者または管理者なしで、2つのデータセットに対する関数の動作を可能にし得る。MPCは、秘密シェアリングなどの多数の暗号化ツールおよび戦略に基づく。例として、ファーストパーティは、10などの数を表すデータを所有していてもよい。数10は、動作6+4などの複数の数を使用して表され得る。セカンドパーティは、5などの数を表すデータを所有していてもよい。数5は、動作7+(-2)などの複数の数を使用して表され得る。一例として、ファーストパーティおよびセカンドパーティは、データを識別することなく、加算などのデータに対する動作を実行することができる。
ファーストパーティは、それらのデータの一部をセカンドパーティに送信し得、セカンドパーティは、それらのデータの一部をファーストパーティに送信し得る。ファーストパーティは、データを表す2つの数字のうちの1つ、例えば4をセカンドパーティに送信し得る。セカンドパーティは、データを表す2つの数字のうちの1つ、例えば7をファーストパーティに送信し得る。ファーストパーティは、残りの数、例えば6を、セカンドパーティからの2つの数のうちの1つ、例えば7と加算して、合計13を判定し得る。セカンドパーティは、残りの数、例えば-2を、ファーストパーティからの2つの数のうちの1つ、例えば4と加算して、合計2を判定し得る。ファーストパーティまたはセカンドパーティのいずれかは、合計を加算して、15の結果を判定し得る。
本明細書で考察されるような安全なマルチパーティ計算は、例示的なプロトコルに基づき、以下で考察されるシナリオなどのいくつかのシナリオにおいて、いくつかの利点を提供する。上記のように一例では、医師は、心電図(EKG)情報などの患者に関連付けられたデータを取得し得る。従来、医師はEKG情報を分析し、EKG情報に異常がないかどうかの診断を行っていたことがある。異常は、心房細動などの患者に関連付けられた1つ以上の状態があることを示し得る。そのような判定を行うことが非常に難しい可能性がある。しかしながら、診断を改善する方法があり、各患者は、各診断を互いに異なるものにする特定の属性を有し得る。一例として、患者の年齢、患者の性別、および他の情報は、診断に関連し得る。医師は、マルチパーティ計算を利用して、おそらく診断を改善することができる。
医師は、ファーストパーティを表し得、データのより詳細な分析を実行するためにアルゴリズムへのアクセスを有するセカンドパーティと通信することを望み得る。データは、患者に関連付けられた識別情報を含み得る。セカンドパーティは、EKG情報をEKG情報のライブラリと比較することによってEKG情報の分析を実行し、患者に関連付けられた異常があり得るかどうかを判定するアルゴリズム保持者であってもよい。CNNが、EKG情報を評価するためのアルゴリズムであってもよい。例として、セカンドパーティは、患者のEKG情報をライブラリ内のEKG情報の各インスタンスと比較することによって、画像分析を実行することが可能であり得る。これにより、EKG情報をEKG情報のライブラリと比較することにより、医師がより正確な診断を提供することを可能にし得る。別の態様では、EKG情報の分析のためにCNNを提供する所有者またはエンティティは、それらのアルゴリズムに関する詳細が開示または公開されないようにすることを欲し得る。本明細書に開示されているアプローチは、データが処理されている間に、データおよびアルゴリズムの両方が相手のパーティに識別可能であることから保護する特定の技術的な方式で、データをアルゴリズムによって処理することを可能にする。
上記の例は、EKG情報の分析に限定されない。別の例では、医師は、X線、磁気共鳴画像(MRI)画像、コンピュータ断層撮影(CT)スキャン、または別のタイプの画像などの患者を表す医療画像を取得し得る。医師は、医療画像を取得し、医療画像に基づいて診断を実行することを欲し得る。医師は、マルチパーティ計算を利用して、おそらく診断を改善することができる。医師は、ファーストパーティを表し得、データの詳細な分析を実行するためにアルゴリズムへのアクセスを有するセカンドパーティと通信することを望み得る。例として、セカンドパーティは、医療画像を医療画像のライブラリと比較することによって医療画像の分析を実行し、患者に関連付けられた異常あり得るかどうかを判定するアルゴリズム保持者であってもよい。アルゴリズムは、提示された医療データで問題を診断する目的で様々な医療画像に対して訓練されたCNNまたは機械学習もしくは人工知能システムとすることができる。本明細書で考察されるシステムおよび方法は、患者のプライバシーおよびアルゴリズム保持者のプライバシーを維持する方法で、医師が医療画像をアルゴリズム保持者と通信することを可能にすることができる。識別データおよび患者に関連付けられた医療画像は、HIPAA保護データであってもよい。同様に、アルゴリズム保持者は、アルゴリズムが専有性を維持するように、アルゴリズムを医師とシェアすることなく、医療画像に対して分析を実行し得る。
別の例では、小売店舗は、クレジットアカウントを開くことを望む顧客を有し得、顧客は、名前、住所、および社会保障番号などの顧客を表す一意の識別情報などの顧客に関連付けられたデータを提供するように要求され得る。小売店舗は、ファーストパーティであってもよい。小売店舗は、データを分析することが可能であってもよいが、追加の情報およびアルゴリズムへのアクセスを取得することによって、データのより徹底的な分析を実行することが可能であり得る。小売店舗は、マルチパーティ計算を利用して、おそらく分析を改善することができる。小売店舗は、顧客データの詳細な分析を実行し、クレジットアカウントを開くかどうかを判定するために、1つ以上のアルゴリズムへのアクセスを有するセカンドパーティと通信することを望み得る。本明細書で考察されるシステムおよび方法は、小売店舗が、顧客のプライバシーを維持する方法で、顧客データをアルゴリズム保持者と通信することを可能にすることができる。同様に、アルゴリズム保持者は、アルゴリズムが専有性を維持するように、小売店舗とアルゴリズムをシェアすることなく、顧客データに対して分析を実行し得る。
別の例として、顧客は、車両保険または財産保険などの保険を取得するプロセス中であってもよい。顧客は、名前、住所、および社会保障番号などの顧客を表す一意の識別情報などの顧客に関連付けられたデータを提供するように要求され得る。保険代理店が、ファーストパーティであってもよい。保険代理店はデータを分析することが可能であってもよいが、追加の情報およびアルゴリズムへのアクセスを取得することによって、データのより徹底的な分析を実行することが可能であり得る。保険代理店は、マルチパーティ計算を利用して、おそらく分析を改善することができる。保険代理店は、顧客データの詳細な分析を実行し、顧客に保険を提供するかどうかを判定するために、1つ以上のアルゴリズムへのアクセスを有するセカンドパーティと通信することを望み得る。本明細書で考察されるシステムおよび方法は、保険代理店が、顧客のプライバシーを維持する方法で、顧客データをアルゴリズム保持者と通信することを可能にすることができる。同様に、アルゴリズム保持者は、アルゴリズムが専有性を維持するように、保険代理店とアルゴリズムをシェアすることなく、顧客データに対して分析を実行し得る。
上記のように、図1は、いくつかの例による、例示的な計算環境100を示す。図1に示されるように、例示的な計算環境は、少なくとも1つのデータプロバイダ計算デバイス102を含み得、少なくとも1つのアルゴリズムプロバイダ計算デバイス104を含み得る。少なくとも1つのアルゴリズムプロバイダ計算デバイス104は、1つ以上のアルゴリズム106に関連付けられた情報へのアクセスを有し得、および/またはその情報を記憶し得る。少なくとも1つのデータプロバイダ計算デバイス102は、データ108へのアクセスを有し得、および/またはデータ108を記憶し得る。データ108は、1つ以上のデータベースに記憶され得る。少なくとも1つのデータプロバイダ計算デバイス102は、通信ネットワーク110を使用して、少なくとも1つのアルゴリズムプロバイダ計算デバイス104と通信し得る。
少なくとも1つのデータプロバイダ計算デバイス102は、通信ネットワーク110を介して少なくとも1つのアルゴリズムプロバイダ計算デバイス104からデータを受信し、および/またはこれにデータを送信するように構成されている。少なくとも1つのデータプロバイダ計算デバイス102が単一の計算デバイスとして示されるが、少なくとも1つのデータプロバイダ計算デバイス102が複数の計算デバイスを含み得ることが想定される。
通信ネットワーク110は、インターネット、イントラネット、または別の有線もしくは無線通信ネットワークとすることができる。例えば、通信ネットワーク110は、移動体通信(GSM)ネットワーク、コード分割多重アクセス(CDMA)ネットワーク、第3世代パートナーシッププロジェクト(GPP)ネットワーク、インターネットプロトコル(IP)ネットワーク、無線アプリケーションプロトコル(WAP)ネットワーク、WiFiネットワーク、Bluetoothネットワーク、衛星通信ネットワーク、またはIEE802.11標準ネットワーク、ならびにそれらの様々な通信を含み得る。他の従来のおよび/または後に開発された有線および無線ネットワークも使用され得る。
少なくとも1つのデータプロバイダ計算デバイス102は、データを処理するための少なくとも1つのプロセッサおよびデータを記憶するためのメモリを含む。プロセッサは、通信を処理し、通信を構築し、メモリからデータを取得し、メモリにデータを記憶する。プロセッサおよびメモリはハードウェアである。メモリは、揮発性および/または不揮発性メモリ、例えば、キャッシュ、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、またはアプリケーションの一部もしくは構成要素などのデータおよび/またはコンピュータ可読実行可能命令を記憶するための他のメモリなどのコンピュータ可読記憶媒体を含み得る。さらに、少なくとも1つのデータプロバイダ計算デバイス102は、通信、メッセージ、および/または信号を送信および受信するための少なくとも1つの通信インターフェースをさらに含む。
少なくとも1つのアルゴリズムプロバイダ計算デバイス104は、データを処理するための少なくとも1つのプロセッサおよびデータを記憶するためのメモリを含む。プロセッサは、通信を処理し、通信を構築し、メモリからデータを取得し、メモリにデータを記憶する。プロセッサおよびメモリはハードウェアである。メモリは、揮発性および/または不揮発性メモリ、例えば、キャッシュ、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、またはアプリケーションの一部もしくは構成要素などのデータおよび/またはコンピュータ可読実行可能命令を記憶するための他のメモリなどのコンピュータ可読記憶媒体を含み得る。さらに、少なくとも1つのアルゴリズムプロバイダ計算デバイス104は、通信、メッセージ、および/または信号を送信および受信するための少なくとも1つの通信インターフェースをさらに含む。
少なくとも1つのデータプロバイダ計算デバイス102は、ラップトップコンピュータ、スマートフォン、パーソナルデジタルアシスタント、タブレットコンピュータ、標準パーソナルコンピュータ、または別の処理デバイスとすることができる。少なくとも1つのデータプロバイダ計算デバイス102は、データおよび/またはグラフィカルユーザインターフェースを表示するためのコンピュータモニタなどのディスプレイを含み得る。少なくとも1つのデータプロバイダ計算デバイス102はまた、グラフィカルおよび/または他のタイプのユーザインターフェースにデータを入力するか、またはそれと対話するために、カメラ、キーボード、またはポインティングデバイス(例えば、マウス、トラックボール、ペン、またはタッチスクリーン)などの入力デバイスを含み得る。例示的な実施形態では、ディスプレイおよび入力デバイスは、スマートフォンまたはタブレットコンピュータのタッチスクリーンとして一緒に組み込まれてよい。
少なくとも1つのアルゴリズムプロバイダ計算デバイス104は、ラップトップコンピュータ、スマートフォン、パーソナルデジタルアシスタント、タブレットコンピュータ、標準パーソナルコンピュータ、または別の処理デバイスとすることができる。少なくとも1つのデータプロバイダ計算デバイス102は、データおよび/またはグラフィカルユーザインターフェースを表示するためのコンピュータモニタなどのディスプレイを含み得る。少なくとも1つのアルゴリズムプロバイダ計算デバイス104はまた、グラフィカルおよび/または他のタイプのユーザインターフェースにデータを入力するか、またはそれと対話するために、カメラ、キーボード、またはポインティングデバイス(例えば、マウス、トラックボール、ペン、またはタッチスクリーン)などの入力デバイスを含み得る。例示的な実施形態では、ディスプレイおよび入力デバイスは、スマートフォンまたはタブレットコンピュータのタッチスクリーンとして一緒に組み込まれてよい。
専有アルゴリズムによってデータを処理するために、本明細書に開示されるアルゴリズムまたはアルゴリズムを実装するように動作する計算デバイス(複数可)は、専用計算デバイスと考えられる。例えば、図13に関連して説明されるアルゴリズムを実行する計算デバイスは、計算デバイスが実行するようにプログラムされるステップまたは動作によって定義されるような専用計算デバイスである。
図2は、例示的な計算環境100の別の表現200を示す。図2に示されるように、少なくとも1つのデータプロバイダ計算デバイス102は、平文データ206へのアクセスを有し得、および/または平文データ206を記憶し得る。少なくとも1つのデータプロバイダ計算デバイス102は、平文データを暗号化されたデータ204に暗号化し得る。さらに、少なくとも1つのアルゴリズムプロバイダ計算デバイス104は、アルゴリズム214へのアクセスを有し得、および/またはアルゴリズム214を記憶し得る。少なくとも1つのアルゴリズムプロバイダ計算デバイス104は、アルゴリズムを暗号化して、暗号化されたアルゴリズム212を生成し得る。少なくとも1つのデータプロバイダ計算デバイス102は、暗号化されたデータ204をユーザまたはアグリゲータ202に送信し得る。さらに、少なくとも1つのアルゴリズムプロバイダ計算デバイス104は、暗号化されたアルゴリズム212をユーザまたはアグリゲータ202に送信し得る。ユーザまたはアグリゲータ202は、暗号化されたアルゴリズムを暗号化されたデータ208に対して実行して、専有プロセス210を実行し得る。ユーザまたはアグリゲータ202は、少なくとも1つのデータプロバイダ計算デバイス102であってもよいが、ユーザまたはアグリゲータ202は、異なるエンティティであってもよい。別の例では、ユーザまたはアグリゲータ202は、アルゴリズムプロバイダ計算デバイス104であってもよい。この例では、アルゴリズムプロバイダがアルゴリズムを暗号化しているが、これは任意選択的である。さらに、この例では、データプロバイダがデータを暗号化しているが、これは任意選択的である。アルゴリズムおよび/またはデータが暗号化されていない場合、これは、アルゴリズムが比例的により速く実行され得るようなパフォーマンスの改善を可能にし得る。
一例では、アグリゲータ202は、専有の畳み込みニューラルネットワーク(CNN)を開発したエンティティなどのアルゴリズムプロバイダが、本明細書に開示される専有の方法でEKGを評価するためにそのアルゴリズムを提供することを可能にするエンティティと考えることができ、アグリゲータ202が医師からEKGデータを受信し、EKGデータを処理し、出力データの指定された受信者に出力を提供することができるようにする。このようにして、アグリゲータ202は、データおよびアルゴリズムの両方に対してプライバシーが維持されることを可能にする構成の下で、データおよびアルゴリズムが一緒に実行することができる「マーケットプレイス」を動作させることができる。
図3は、様々な実施形態による、安全なマルチパーティ計算アプローチをセットアップするために、データを分割するデータプロバイダ計算デバイス102およびアルゴリズムを分割するアルゴリズムプロバイダ計算デバイス104を示す。図3に示されるように、データプロバイダ計算デバイス102は、データベース302からデータを取り出し、データを第1のサブセットまたは第1のシェア304および第2のサブセットまたは第2のシェア306に分割するための動作を実行することができる。さらに、図3に示されるように、アルゴリズムプロバイダ計算デバイス104は、元のアルゴリズムが二値化されるブール論理ゲートセット形態でのアルゴリズムの表現であり得るアルゴリズム308を取得し、アルゴリズム309を匿名化し、アルゴリズム309を第1のサブセットまたは第1のアルゴリズム310および第2のサブセットまたは第2のアルゴリズム312に分割するための動作を実行し得る。例えば、システムは、まず、アルゴリズムをブール論理セット309に変換し、次いで、これは、第1のブール論理サブセット310および第2のブール論理サブセット212にスプリットされ得る。計算デバイスは、コンピュータ可読命令をバイナリ決定またはブール論理動作もしくはゲート309に低減することによって動作を実行することができる。したがって、データプロバイダ計算デバイス102およびアルゴリズムプロバイダ計算デバイス104は、アルゴリズムを、データおよび/またはアルゴリズムを表し、回路を匿名化することができるエミュレート回路または仮想化回路に低減し得る。別の例では、回路は、ハードウェアによって表され得る。一例として、第1のデータサブセットおよび第2のデータサブセットは、データの意味のないスプリットであってもよい。さらに、第1のアルゴリズムサブセット310およびの第2のアルゴリズムサブセット312は、意味のないスプリットであってもよい。2つのパーティは、アルゴリズムのそれぞれのスプリットに対して動作し得る。いずれのパーティも、データセット全体に対してアルゴリズム全体を実行せず、アルゴリズム全体が何を判定するかを理解しない。データのスプリットおよび/またはアルゴリズムのスプリットは、本明細書に開示される構成要素のいずれかで発生することができる。例えば、エンティティは、データがアグリゲータ202などのエンティティに送信される前に、暗号化およびデータスプリットの1つ以上の観点からデータを前処理または準備することができるデータプロバイダ102にプログラミングを提供する可能性がある。アグリゲータは、単にデータを受信し、同様に暗号化およびその計算システム上でのスプリットも実行する可能性がある。同様のプロセスは、アルゴリズムプロバイダ104に対して発生することができる。
図4Aは、様々な実施形態による、ブール論理ゲートセットの形態のアルゴリズム308およびデータ302を処理する計算デバイスを示す。一例として、データベース302は、第1のデータサブセット304および第2のデータサブセット306に分割され得る。さらに、アルゴリズム308は、匿名化回路(ブール論理ゲートセット309)に変換され得、次いで、(ブール論理ゲートセット309を第1のブール論理ゲートサブセットに分割することによって)第1のアルゴリズムサブセット310および(ブール論理ゲートセット309を第2のブール論理ゲートサブセットに分割することによって)第2のアルゴリズムサブセット312に分割され得る。データプロバイダ計算デバイス102は、第2のデータサブセットをアルゴリズムプロバイダ計算デバイス104、またはアグリゲータ202に送信し得る。アルゴリズムプロバイダ計算デバイス104は、第1のアルゴリズムサブセット310をデータプロバイダ計算デバイス102、またはアグリゲータ202に送信し得る。データプロバイダ計算デバイス102またはアグリゲータ202は、第1のデータサブセット304に対して第1のアルゴリズムサブセット310を実行し得る。さらに、アルゴリズムプロバイダ計算デバイス104またはアグリゲータ202は、第2のデータサブセット306に対して第2のアルゴリズムサブセット312を実行し得る。データプロバイダ計算デバイス102およびアルゴリズムプロバイダ計算デバイス104(またはアグリゲータ202)は、それらの部分結果を一緒にマージして、最終結果または回答402を形成し得る。
上記に概説したように、本開示のコンテキストは、他のパーティとシェアすることが許されていないいくつかのプライベートな情報を含むデータベースを有するパーティAに関する。パーティBは、アルゴリズムを有し、何らかのセキュリティ上の理由により、パーティBは、そのアルゴリズムをシェアまたは開示することができない。このコンテキストから生じるこの問題に対処するために、いくつかの利用可能な解決策がある。例えば、パーティAが、病院であり、パーティBが、がん診断アルゴリズムを有する場合、パーティAは暗号化されたバージョンの患者の医療記録を送信することができ、パーティBはパーティAの入力に対して準同型にアルゴリズムを適用し、結果をパーティAに戻すように送信することができる。最後に、パーティAは結果を復号する。別のシナリオでは、パーティAが顔データセットを有し、パーティBがパーティAのデータベースに基づいてモデルを訓練したいと仮定する。安全なマルチパーティ計算(SMPC)が、可能な解決策である。しかしながら、MPCの欠点は、パーティAがパーティBの訓練されたアルゴリズムに関する情報を学習することである。本明細書で開示されるのは、以前のスキームよりも速い新しいSMPCスキームである。また、ゲート情報を回路への入力に変換する新しい回路隠れスキームも開示されている。開示されているSMPCのアイデアは、多項式環で中国の余剰定理を使用して、多項式の次数を低く保ち、計算の後、得られる多項式が再構成可能であるようにすることである。このアプローチはまた、パーティAがパーティBのアルゴリズムに関して何も学ばないことを保証する。これらのアイデアは次に構築される。
図4Bは、アルゴリズムプロバイダ410とデータプロバイダ414との間の対話を示す408。アルゴリズムプロバイダ410は、パラメータを選択し、アルゴリズムを使用してデータの処理に関連付けられたコンテキストを構築する。コンテキスト416は、データプロバイダ414に通信される。アルゴリズムプロバイダは、アルゴリズムを論理ゲート418に合成し、図7などの本明細書に開示されている原理を使用してアルゴリズム420を「隠す」。隠れプロセスの結果は、ゲート422および一般または汎用回路424を含む。アルゴリズムプロバイダ410は、一般回路426をデータプロバイダ414に送信する。次に、アルゴリズムプロバイダは、本明細書に開示されるようにシェア428を生成し、データプロバイダ414は、入力436からシェアを生成する。アルゴリズムプロバイダ410は、シェア434をデータプロバイダ414に送信し、データプロバイダ414は、シェア442をアルゴリズムプロバイダ410に送信する。アルゴリズムプロバイダ410は、アルゴリズムプロバイダのゲートシェア430、およびデータプロバイダのゲートシェア432を使用するプロセスを実行する。データプロバイダ414は、アルゴリズムプロバイダの入力シェア438およびデータプロバイダの入力シェア440を使用してプロセスを実行する。アルゴリズムプロバイダの生成がデータプロバイダの入力からシェアした後、2つのパーティはMPCプロトコルを開始する準備ができている。図6および本明細書における関連する考察を参照のこと。
「隠れ」は、アルゴリズムプロバイダが匿名化回路内の各ゲートを汎用回路に置き換え、機能「一般回路」424を生成し、各ゲートの情報を別個のテーブルに記憶するときに発生する。各ゲートを汎用回路に置き換えることで、回路を隠し、回路のほとんどの情報をゲートテーブルに転送する。残っているのは、図7に示す各ゲートの位置のみである。図7の隠れ回路702は、公開されているものの例を示しており、各ゲートの位置のみを確認することができるものとしての例を示す。回路の一般構造は明らかにされる。このアプローチのセキュリティは、各ゲートに関する情報がゲートテーブルに別個に記憶されるため、回路隠れ方法の上に使用されるMPC方式のセキュリティに依存する。各ゲートの実際の出力は、相手方のパーティに利用可能ではなく、その一部のみ利用可能であるため、相手方による各ゲートの計算された出力を回路のリバースエンジニアリングに使用することができない。回路プロバイダは、それらのゲートの出力を計算する可能性のみを許可する。
MPCの問題の1つは、異なるパーティ間の通信の数である。MPCプロトコルは、計算中に多くの通信を伴う可能性がある。その主な理由は、「乗算」または「AND」動作計算の複雑さである。ビーバートリプル(Beaver Triplet)を使用することは、乗算(ANDゲート)を扱うための実用的な方法の1つである。ただし、このアプローチは、プロトコルにいくつかの前処理計算を追加し、各乗算に対して2つの通信を必要とし、GMW(Goldreich-Micali-Wigderson)プロトコルの場合と同じ問題である。
本明細書に開示されているのは、いかなる通信もなしでデータのシェアに対する加算および乗算をサポートするシステムである。言い換えると、システムが、データセットAをA1、A2にスプリットし、別のデータセットBをB1、B2にスプリットする場合、システムが、A*Bをどのように効率的に計算するかである。最も望ましい解決策は、A1*B1およびA2*B2を使用してA*Bを計算することができ、A1+B1およびA2+B2を使用してA+Bを計算することも可能であることである。現在、これを行うことができるSMPCスキームはない。
GMWは加算のみをサポートし、乗算を計算するためにオンライン通信が必要である。GMWが乗算をサポートしていない理由は、システムが2つの多項式を加算する場合、多項式の次数は増加しないが、システムが2つの多項式を乗算する場合、次数は増加するため、GMWは多項式の次数を低いままにするために通信を必要とすることによる。本開示の主なアイデアは、商多項式環を使用して多項式の次数を低いままにして、利用可能な点を使用してそれを再構築できるようにすることである(ラグランジュ多項式再構築)。中国の余剰定理(CRT)は、主イデアルのルートを知ることにより、主イデアルへの任意の多項式の低減(主イデアルが十分なルートを有する場合)を計算するための強力なツールを提供する。
BGW(Ben-Or,Goldwasser,Wigderson)プロトコルは、GMWプロトコル上に構築され、計算設定で安全なマルチパーティ計算を考える。BGWプロトコルは、準同型算出を自然にサポートする多項式秘密シェアアイデアを使用する。システムが、いくつかの多項式にそれらの多項式の定数値としてデータを記憶する場合、2つの多項式を乗算した後、記憶されたデータが乗算されることが期待され得る。
例えば、次の2つのデータセットを考える。
データA:4 対応する多項式:P(x)=2x+3x+4
データB:7 対応する多項式:P(x)=x+7
およびpを乗算すると、以下を提供する。すなわち、p*p=2x+17x+25x+28である。p*pの定数値は、確かにデータA*データB=28に等しいことが確認できる。しかし、問題は、多項式の次数が増加し、システムは最終多項式を再構築するためにもっと多くの点が必要になるということである。
最終多項式を再構築するためにより多くのデータを必要とすることに対する解決策は、多項式の次数を小さいままにするため、整数環において係数を有する商多項式環の使用で見つけることができる。残念ながら、このアプローチは他にも2つの問題を引き起こす。第1に、低減後に定数値を保持しない。第2の問題は、システムがいくつかの点しか有さないときに、秘密多項式を別の多項式に低減することができることである。
第1の問題の例として、以下を考える。
データA:4 対応する多項式:P(x)=x+4
データB:7 対応する多項式:P(x)=x+7
主イデアル=x+1を考える
coeff.modulus(q)=1001
*p=x+11x+28=11x+27 mod(x+1)
*pmod x^2+1の定数値は27であり、これは28に等しくない。
しかし、上の環多項式を使用するときに、低減の後に保持される他の情報、すなわち、
Figure 2023506234000002
で得られる多項式の評価とxでの環多項式の評価がある。すなわち、
Figure 2023506234000003
は、xでの得られる多項式の評価=xでの低減された多項式の評価(xでの主イデアルのmod評価)を意味する。
一例では、x=10とする。
*p(10)=11x+27=137=36 mod 101
(10)*p(10)=36 mod 101
101は、10でのx^2+1の評価である。
次の点は価値があり、解決策の基礎となる。係数にオーバーフローがある場合、この事実はもう有効ではない。したがって、coeff modulus=1001の代わりに、システムが17のようなより小さなcoeffを使用する場合、結果は間違っている。
一例として、x=1を評価点とし、円分多項式オーダ2を主イデアルとする。
これらの決定により、システムは、係数の和としてビットを多項式に隠すことができ、円分多項式オーダ2は、
Figure 2023506234000004
の形態になるため、したがって、P(1)=2であり、すべてが、所望のように、mod 2となる。
このアプローチを使用して、いくつかの情報は、別の多項式によって多項式を低減した後に保存されるため、プロセスは、他の技術を用いて多項式にデータを隠す必要がある。しかし、上記に特定された第2の問題は依然として存在し、それは、多項式のいくつかの点のみが知られているときに、どのようにして多項式を別の多項式に低減することができるかである。
この問題に対する1つの解は、中国の剰余定理を適用することであり得る。このアイデアをより明確にするために、本開示は多項式環に対する中国の剰余定理の一例を提供する。
データA:4 対応する多項式:P(x)=x+4
データB:7 対応する多項式:P(x)=x+7
主イデアル(I)=x+1
商環=Z17[x]/I
*p=11x+27 mod x+1=11x+10 mod(x2+1,17)
システムは、別の方法で11x+10を算出することができた。
+1=(x+4)(x+12)mod 17であり、ルートは4、-4である。
(4)=8,P(-4)=0,
(4)=11,P(-4)=3
乗算を算出するために、システムは、p(root1)*p(root1)=Aおよびp(root2)*p(root2)=Bを乗算し、2つの点(root1,A)および(root2,B)で多項式を再構築することができる。(4,88)=(4,3)および(-4,0)を通過する線は、11x+10 mod 17である。
本開示は次に、マルチパーティ計算(MPC)プロトコルをより詳細に考察する。プロトコルは、1つのゲート(XORまたはAND)のみを実行するために、パーティAからの1ビットa∈{1,0}およびパーティBからの1ビットb∈{1,0}に対して2つのパーティ間で説明される。
q=coeff.modulus
n=形態2の多項式の次数
B=多項式係数に対する境界
プロトコルでは、Zに低減された任意の数は
Figure 2023506234000005

Figure 2023506234000006
との間にある。プロトコルは、(1)λ(セキュリティパラメータ)に基づいて、q、n、Bが選択され、(2)Zにわたって多項式P(x)=x+1個のnルートが2つのセット
Figure 2023506234000007
に記憶される。例えば、Z17にわたってx+1である場合、S={4}であり、S={-4}である。
ステップ(3)において、パーティAは、
Figure 2023506234000008
であるように多項式次数n Pにおいてビット「a」を記憶し、パーティBは、
Figure 2023506234000009
であるように多項式次数n Pにおいてビット「b」を記憶する。ステップ(4)において、パーティAは、
Figure 2023506234000010
を記憶し、
Figure 2023506234000011
をパーティBに送信する。
さらに、パーティBは、
Figure 2023506234000012
を記憶し、
Figure 2023506234000013
をパーティAに送信する。ステップ(5)において、
Figure 2023506234000014
を計算するために、パーティAは、SAA+SBAを計算し、パーティBは、SBB+SABを計算する。ステップ(6)において、(a∧b)を計算するために、パーティAは、SAA×SBAを計算し、パーティBは、SBB×SABを計算する。これらは、要素ごとの乗算である。ステップ(7)において、計算の最後に、両方のパーティが最終結果をシェアし、得られる多項式Pを、n個の点
Figure 2023506234000015
を使用して共同で再構築する。すなわち、
XORゲートに対して、
Figure 2023506234000016
であり、ANDゲートに対して、
Figure 2023506234000017
である。
ステップ(8)において、最終結果を計算するために、P(1)∈Z[X]mod 2が計算される。
このプロトコルは、多項式の係数にオーバーフローがない場合に機能する(係数はqより大きくなる)。このようなオーバーフローは、より多くのゲートを評価した後に発生する可能性がある。オーバーフローを避けるために、2つの方法が提案されている。第1の方法は、計算をサポートするのに十分に大きいパラメータを選択することである。例えば、システムが多項式、言うなれば、xを計算する場合、法qは3Bより大きくするべきであり、Bは、多項式係数に対する境界である。多項式の領域が許容可能なセキュリティを達成するのに十分に大きくすべきことが有用である。
計算の制限のため、システムが、システムが回路を正しく計算することを可能にするために望まれる可能性があるものほど大きいqを単に選択することができない。次に、オーバーフローを防止するために係数を低減するための方法を提案する。本開示は、ここで言及する係数が、他で参照されるシェアとは異なっていることに留意する。シェアは、オーバーフローする可能性がある。
提案されている方法は、多項式環Pの更新を伴う。多項式環における中国の余剰定理(CRT)と全く等価なラグランジュ多項式再構成に基づいて、以下の式を仮定する。
Figure 2023506234000018
λは、容易に算出され、公開情報である。Sは秘密シェアであり、そのうちの半分がパーティAによって保持され、他の半分がパーティBによって保持される。Sをシェアする場合、多項式を再構築することができ、ビット値を明らかにされる。以下のプロトコルを使用して、2つのパーティが多項式を更新することができる。このプロセスを記載する別の方法は、多項式をより小さな係数を有する新しい多項式に置き換えることである。
ステップ(1)において、パーティAは、
Figure 2023506234000019
を計算し、
Figure 2023506234000020
となり、P係数がBによって境界されるようなPを生成し、パーティAは、
Figure 2023506234000021
を計算する。
ステップ(2)において、パーティAは、SAB,SsA+rand(1,0)をパーティBに送信する。ステップ(3)において、パーティBは、
Figure 2023506234000022
である場合、
Figure 2023506234000023
を計算する。パーティBは、
Figure 2023506234000024
を生成し、そうでなければ、パーティBは、
Figure 2023506234000025
を生成し、
Figure 2023506234000026
を計算する。ステップ(4)において、パーティBは、SBAをパーティAに送信し、ステップ(5)において、パーティAは、SBA+SAAを計算し、パーティBは、SBB+SABを計算する。
このプロトコルを実行した後、両方のパーティは、元のノイズ多項式として復号されるが、更新された多項式の係数が2Bによって境界される更新された多項式のシェアを有する。
3つ以上のパーティに対しては、各パーティが環多項式のいくつかのルートを制御するという点で、アイデアは同様である。以下のセクションでは、本開示は、このプロトコルの適用を記載する。図4Cは、新しい入力464およびいくつかのプライベートデータベースに対してプライベート関数(アルゴリズムプロバイダ410によって提供される)を実行したいデータプロバイダ414およびアグリゲータ462のグループがいる「マルチパーティ問題」へのMPCの適用450を示す。パーティは、どのパーティが多項式環のどのルートを担当するかという合意に達する必要があり、次いで、プロトコルは、アルゴリズムプロバイダ410で開始する。両パーティは、2つのパーティの問題と同じステップのうちのいくつかを取り、「ゲートシェア」458および「一般回路」458を他のパーティとシェアする。データベースプロバイダ414は、データベース460のシェアをアグリゲータ462に提供する。このプロトコルと2つのパーティのプロトコルとの間の唯一の違いは、新しい入力454、456のシェアがあり、ルートにおける多項式の評価が異なるパーティによって保持されることである。
図4Dは、SMPCを適用するアプローチ470を示す。新しい入力472は、アグリゲータ478に提供される。アグリゲータ478は、データプロバイダの公開鍵KPd476を使用するデータプロバイダ474から暗号化されたデータを受信する。アグリゲータはまた、アルゴリズムプロバイダの公開鍵KPa480の下で暗号化された、暗号化された関数fをアルゴリズムプロバイダ482から受信する。どちらの暗号化も準同型暗号であり、これは、ユーザが復号を必要とせずに、暗号化されたデータのみを使用して暗号化された結果を計算することを可能にする。アグリゲータ478は、準同型暗号を使用して結果484を計算する。結果は、新しい入力およびデータに基づく関数結果を含むことができる。計算の終了時に、データプロバイダ474およびアルゴリズムプロバイダ482は、SMPCを使用して復号アルゴリズムを計算する。SMPC486は、結果、KSdおよびKSaを復号するために使用することができる。SMPCプロトコルでは、アルゴリズムプロバイダ入力は、その対応する秘密鍵KSaであり、データプロバイダ入力は、秘密鍵KSdである。
図5は、様々な実施形態による、複数のデータプロバイダおよび複数のアルゴリズムプロバイダを示す。本明細書で考察されるアプローチは、1つのデータプロバイダまたは1つのアルゴリズムプロバイダに限定されない。一例として、データは、複数のプロバイダによって提供され得、アルゴリズムは、複数のプロバイダによって提供され得る。一例として、図5は、第1のデータプロバイダ502および第2のデータプロバイダ508を有する配置500を示す。さらに、図5は、第1のアルゴリズムプロバイダ518および第2のアルゴリズムプロバイダ524を示す。図5に示されるように、第1のデータプロバイダ502からの第1のデータ506および第2のデータプロバイダ504からの第2のデータ512は、暗号化(504、510)され得る。さらに、第1のアルゴリズムプロバイダ518からのアルゴリズム522および第2のアルゴリズムプロバイダ524からのアルゴリズム528は、暗号化(520、526)され得る。その結果、複数のデータプロバイダおよび複数のアルゴリズムプロバイダは、互いに通信し、互いに機能し得る。
ユーザまたはアグリゲータ510は、第1のデータプロバイダ502から暗号化されたデータ504および第2のデータプロバイダ508から第2の暗号化されたデータ510を受信し得、第1のアルゴリズムプロバイダ518から暗号化されたアルゴリズム520および第2のアルゴリズムプロバイダ524から第2の暗号化されたアルゴリズム526を受信し得る。ユーザまたはアグリゲータ510は、データに対してアルゴリズムを実行し、専有ビジネスプロセス516を含み得る結果を判定し得る。上記のように、ユーザまたはアグリゲータ510は、第1のデータプロバイダ502または第2のデータプロバイダ508、第1のアルゴリズムプロバイダ518、第2のアルゴリズムプロバイダ5524のうちの1つであってもよく、または異なるエンティティであってもよい。アグリゲータ510はまた、それぞれのデータプロバイダおよび/またはそれぞれのアルゴリズムプロバイダの組み合わせまたはハイブリッドであってもよい。アグリゲータ510はまた、一態様では、暗号化されていないデータまたはアルゴリズムを受信し、アグリゲータ510内で暗号化動作を実行することができる。
図6は、様々な実施形態による、アルゴリズムに関連付けられた例示的な回路600を示す。いくつかの安全なマルチパーティ計算(MPC)では、回路ガーブリングは、ガーブラーおよび評価者などの2つの参加者間の安全な通信のために使用されている。本明細書で考察される実施形態は、回路ガーブリングとは異なる。マルチパーティ計算(MPC)は、乗算(および)および加算(XOR)を含む2つの動作を実行することができる。その結果、複雑な動作と機能を実行するために、動作および機能は、ANDおよびXORの動作に分解されることになる。図6に示される例示的な回路600は、XOR、およびNOTゲートのみを含む。NOTゲートは、回路がANDおよびXORゲートのみを表すことを可能にする「1」のビットでXORゲートに置き換えられる。
実施形態によれば、アルゴリズムを隠すために、ゲートは、図6に示すように、汎用回路を有するAおよびBを含む入力で置き換えられ得る。図6の入力g0およびg1が、g1g0=11であるときに、回路全体がAおよびBに対するANDゲートとして作用し得るように、制御ビットとして作用し得る。g1g0が01に等しいときに、回路全体がA EXOR Bに等しくてもよく、g1g0=10であるときに、回路全体がNOT Aとして作用し得る。
アルゴリズムは、図6に示されるような特定の回路600にアルゴリズムを変換することによって、論理回路またはエミュレート回路に符号化され得る。回路は、それがアルゴリズムを表すようなゲートの正しい数および配置を含み得る。回路内の特定のゲートの各々は、汎用ゲートスロットに置き換えられ得る。汎用ゲートスロットの各々は、ゲートをそのまま機能させるために、正しいビットパターンで投入され得る。次いで、ゲート情報は、行列にコピーされ得る。
一例では、真理値表は、図6に示されるゲートを実際のゲートに記述または解決するために使用することができる。例えば、以下の真理値表を使用することができる。
Figure 2023506234000027
図7は、様々な実施形態による、隠れ回路309に変換される(700)例示的なアルゴリズム308を示す。隠れ回路は、例えば、図3に示されるブール論理ゲートセット309であり得る。一例として、図6に示される回路内のゲートに関連付けられた情報は、図7に示されるように、匿名化され隠れ表現309と置き換えられ得る。一例として、アルゴリズム308は、隠れ表現309に変換され得る。これは、回路構造を匿名化する1つ例示的な方法を提供する。匿名化への他のアプローチが、同様に適用可能であり得る。
図8は、様々な実施形態による、第1のスプリットまたは第1のサブセット310および第2のスプリットまたは第2のサブセット312に分割される隠れ回路309を示す(800)。言い換えると、隠れ表現309は、2つのスプリットまたはサブセットに分割され得る。第1のアルゴリズムサブセット310は、ファーストパーティ、第1の計算デバイスまたは第1の仮想計算環境によって評価され得、第2のアルゴリズムサブセット312は、セカンドパーティ、第2の計算デバイスまたは第2の仮想計算環境によって評価され得る。一般的に言えば、ブール論理ゲートセット309のこれらの異なるスプリットは、異なる計算スポット、場所、部分、物理的な構成要素または仮想的な構成要素に分離されており、それらの分離された処理が分離された方法で実行され得るようになっている。
図9Aは、データをアルゴリズムに提供するデータプロバイダからアルゴリズムを隠すまたは暗号化し、データをデータに対して動作するアルゴリズムを提供するアルゴリズムプロバイダからデータを隠すまたは暗号化するための例示的な方法900を示す。方法は、任意の順序で実行される任意の1つ以上のステップを含むことができる。本明細書に開示される順序は、例としてである。例示的な方法によれば、ステップ902において、アルゴリズムプロバイダは、計算デバイスにアルゴリズムプロバイダを送信し得る。さらに、データプロバイダは、データを計算デバイスに送信し得る。計算デバイスは、アルゴリズムを受信し、データを受信し得る。アルゴリズムは、アルゴリズムプロバイダによって提供されるアルゴリズムのリストから選択され得、データは、データプロバイダによってデータベースから取り出され得る。さらに、計算デバイスは、アルゴリズムを暗号化し、データを暗号化し得る。一例では、計算デバイスは、アルゴリズムプロバイダに関連付けられた計算デバイスであってもよい。別の例では、計算デバイスは、データプロバイダに関連付けられた計算デバイスであってもよい。さらなる例では、計算デバイスは、サードパーティの計算デバイスであってもよく、アルゴリズムプロバイダまたはデータプロバイダに関連付けられていなくてもよい。
ステップ904において、計算デバイスは、アルゴリズムを第1のアルゴリズムサブセットおよび第2のアルゴリズムサブセットに分割し得る。第1のアルゴリズムサブセットおよび第2のアルゴリズムサブセットは、等しいサイズのサブセットではなくてもよい。一例として、第1のアルゴリズムサブセットは、アルゴリズムに関連付けられた動作の3分の1を含み得、第2のアルゴリズムサブセットは、アルゴリズムに関連付けられた動作の3分の2を含み得る。代替的に、第1のアルゴリズムサブセットおよび第2のアルゴリズムサブセットは、等しいサイズのサブセットに分割され得る。上記のように、代替的なステップは、一般にアルゴリズムまたはアルゴリズムサブセットを匿名化することを含む。
さらに、計算デバイスは、データを第1のデータサブセットおよび第2のデータサブセットに分割し得る。一例として、第1のデータサブセットは、データの3分の1を含み得、第2のデータサブセットは、データの3分の2を含み得る。代替的に、第1のデータサブセットおよび第2のデータサブセットは、等しいサイズのサブセットに分割され得る。ステップ906において、計算デバイスは、第1のアルゴリズムサブセットおよび第1のデータサブセットをアルゴリズムプロバイダに送信し得る。ステップ908において、計算デバイスは、第2のアルゴリズムサブセットおよび第2のデータサブセットをデータプロバイダに送信し得る。ステップ910において、計算デバイスは、アルゴリズムプロバイダから第1の部分結果を受信し得る。第1の部分結果は、第1のアルゴリズムサブセットおよび第1のデータサブセットに基づき得る。さらに、計算デバイスは、データプロバイダから第2の部分結果を受信し得る。第2の部分結果は、第2のアルゴリズムサブセットおよび第2のデータサブセットに基づき得る。ステップ912において、計算デバイスは、第1の部分結果および第2の部分結果に基づく組み合わされた結果を判定し得る。
さらなる例では、アルゴリズムに関連付けられたブール論理ゲートセットがあり得る。このアルゴリズムは、ブール論理ゲートセットに変換することができる。これは、アルゴリズムプロバイダによって実行されることができる。計算デバイスは、第1のアルゴリズムサブセットをブール論理ゲートセットからの第1のブール論理ゲートサブセットに変換し得、第2のアルゴリズムサブセットをブール論理ゲートセットからの第2のブール論理ゲートサブセットに変換し得る。第1のブール論理ゲートサブセットおよび第2のブール論理ゲートサブセットが、ANDゲートおよびXORゲートを含む。本明細書で考察されるように、アルゴリズムプロバイダは、少なくとも1つの第1の計算デバイスを含み得、データプロバイダは、少なくとも1つの第2の計算デバイスを含み得る。一例では、組み合わされた結果は、データプロバイダに送信され得、データプロバイダは、組み合わされた結果の表現を表示し得る。別の例では、組み合わされた結果は、アルゴリズムプロバイダに送信され得、アルゴリズムプロバイダは、組み合わされた結果の表現を表示し得る。別の例では、組み合わされた結果は、別の計算デバイスに送信され得、他の計算デバイスは、組み合わされた結果の表現を表示することができる。
別の態様では、計算デバイスは、第1のアルゴリズムサブセットおよび第1のデータサブセットならびに第2のアルゴリズムサブセットおよび第2のデータサブセットを任意のエンティティに保持または送信し得る。例えば、アグリゲータ202などのエンティティは、分割ステップおよび処理ステップを実行して、第1の部分結果および第2の部分結果を取得することができる。一般に、システムは、第1のデータサブセットで第1のアルゴリズムサブセットを、第2のデータサブセットで第2のアルゴリズムサブセットを別個に処理することができ、それぞれのアルゴリズムおよびデータが互いに開示されないようにする。
図9Bは、別の例示的な方法918を示す。この例示的な方法は、ステップ920において、少なくとも1つのプロセッサによって、アルゴリズムプロバイダからアルゴリズムを受信することと、ステップ922において、少なくとも1つのプロセッサによって、データプロバイダからデータを受信することと、を含む。方法はまた、ステップ924において、少なくとも1つのプロセッサによって、アルゴリズムを第1のアルゴリズムサブセットおよび第2のアルゴリズムサブセットに分割することと、ステップ926において、少なくとも1つのプロセッサによって、データを第1のデータサブセットおよび第2のデータサブセットに分割することと、ステップ928において、少なくとも1つのプロセッサによって、第1のアルゴリズムサブセットおよび第1のデータサブセットを処理することと、ステップ930において、少なくとも1つのプロセッサによって、第2のアルゴリズムサブセットおよび第2のデータサブセットを処理することと、を含むことができる。方法はまた、ステップ932において、少なくとも1つのプロセッサによって、第1のアルゴリズムサブセットおよび第1のデータサブセットに基づく第1の部分結果を受信し、第2のアルゴリズムサブセットおよび第2のデータサブセットに基づく第2の部分結果を受信することと、ステップ934において、少なくとも1つのプロセッサによって、第1の部分結果および第2の部分結果に基づく組み合わされた結果を判定することと、を含むことができる。
アルゴリズムを分割するプロセスおよびその後の処理は、いくつかの異なる方法で達成することができる。例えば、アルゴリズムは、ブール論理ゲートセットに変換することができるか、またはニューラルネットワークもしくは代数もしくは非ブール回路として表すことができる。
いくつかの実施形態では、アルゴリズムは、(例えば、CNNの間で一般的である)数千の動作が行に一緒にストリングされたアルゴリズムを含む、大規模で複雑な代数式を含むことができる。そのような複雑なアルゴリズムを扱うために、例えば、2つ以上のパーティ間のより少ない通信交換(例えば、データプロバイダ、アルゴリズムプロバイダ、アグリゲータなどの間のより少ない通信交換)を使用して、多数の任意の動作のはるかに高速な算出を実行するために、ビーバーセットベースの数学技術を使用することができる。通常、乗算に使用されるビーバーセットを、計算を前処理ステップに変換するために、本明細書に開示される概念に新しい方法で適用することができる。ビーバーセットは通常、前処理を使用する。全体のプロセスに対する本明細書に開示されている追加の概念は、除算および指数をサポートするために異なって処理を行う能力、ならびにより高速な乗算を含む。図9Cは、例えば、本明細書に開示される原理を実装するときに、コンピュータ計算要件を改善するためにビーバーセットを使用することに関連付けられた例示的な方法を示す。
マルチパーティ計算の1つの問題は、データプロバイダ計算デバイス102とアルゴリズムプロバイダ計算デバイス104との間の通信ネットワーク110を介して送信され得る通信の数に関連付けられ得る。通信は、乗算および「AND」動作計算の複雑さに関連付けられ得る。MPCは加算および乗算をサポートすることができるが、乗算は通常制限される。乗算されている数がサイズを増加させ続けると、MPCの算出能力は、整数サイズの制限および計算ストレージの制限により、上限に近づき、それに達し始める。限界に遭遇すると、MPCは、動作を実行する計算デバイス間で情報を交換することを目指す。この交換は、全体的な計算パフォーマンスを低下させる。
本明細書で考察される実施形態は、通信およびネットワークオーバーヘッドを低減するために、ビーバーセット乗算を利用して、データプロバイダ計算デバイス102とアルゴリズムプロバイダ計算デバイス104との間の通信を制限する。ビーバーセット乗算の使用は、本明細書に記載されるように、処理のために、データをスプリットし、アルゴリズムをスプリットするために使用される任意の2つのデバイスまたは仮想マシンに適用され得る。したがって、問題は、本明細書に開示される原理に関連して使用され得る、仮想または物理的な任意の2つのデバイス間で生じる可能性がある。いくつかの実施形態では、1つのビーバーセットトリプルが、各動作(例えば、乗算動作またはANDゲート)に使用され得る。ビーバーセットトリプルは、2つのパーティが一緒に作業して組み合わされた結果を判定するときに、一方のパーティまたは一方の計算デバイスによって予め生成され得る。一例として、データプロバイダ計算デバイス102は、ビーバーセットを予め生成し得、アルゴリズムプロバイダ計算デバイス104は、ビーバーセットを予め生成し得る。別の態様では、アグリゲータ202は、アルゴリズム、データ、アルゴリズムのサブセット、およびデータのサブセットのうちの1つ以上に対して様々なビーバーセットを予め生成することができる。
実施形態によれば、ビーバーセットは、算出時(例えば、アルゴリズムが暗号化され、データプロバイダ計算デバイス102とアルゴリズムプロバイダ計算デバイス104との間で配分された後)に利用することができる。例えば、アルゴリズムが暗号化され、スプリットされ、2つのパーティに配分された後、ビーバーセットは、パーティの一方または両方が算出を実行する準備ができているときに用いられ得る。暗号化された回路の算出が遅いため、ビーバーセット(交換を行う前に各パーティがより多くの数学的算出を行うことを可能にする)を使用することにより、2つのパーティ間の情報交換の量を低減することは、アルゴリズムおよびデータ処理全体の速度および効率を増加させる。言い換えると、以下のビーバーセットベースの技術は、以前のアプローチよりもはるかに高速に、スプリットデータおよび/またはアルゴリズムに対して複雑な動作を実行することができる。なぜなら、この技術は、2つのパーティ間の交換が必要になる(例えば、閾値誤差を超える)前に、分離されている間に、より多くの動作を算出することを可能にするためである。
図9Cに示される例示的な方法938は、各パーティまたはエンティティが、ステップ940において、少なくとも1つのプロセッサによって、アルゴリズムプロバイダからアルゴリズムサブセットを受信することを含むことができる。アルゴリズムサブセットは、例えば、第1のアルゴリズムサブセットおよび第2のアルゴリズムサブセットに分割されたアルゴリズムからの第1のアルゴリズムサブセットとすることができる。ステップ942において、ファーストパーティは、第1のアルゴリズムサブセットの性質に基づく、または他のパラメータに基づく、ビーバーセットの2つのシェアを生成することができる。
例えば、ファーストパーティ(例えば、データプロバイダ計算デバイス102またはアルゴリズムプロバイダ計算デバイス104などのユーザA)は、N×3の行列、Beavを生成することができる。Beavは、ランダムに生成される第1および第2の列を含むことができ、第3の列は、アルゴリズムサブセットの動作を含むことができる。Beavは、部分的にランダムに生成され得るか、またはおそらく非ランダムプロセスに基づいて生成され得る。この例示的な実施形態では、第3の列は、最初の2つの列の乗算を含む。ビーバーセットの最初の2つの列は、実際のデータ(EKGシェア)をマスクするためにランダムに生成することができ、第3の列は、用途(乗算、除算、指数関数、..)に応じて計算することができる。実際のデータを隠すことができるように、最初の2つの列をランダムに生成することが好ましい。
次いで、ユーザAは、Beavの2つのシェア、[Beavおよび[Beav]を生成することができる。次いで、ユーザAは、公開鍵および暗号化を使用して、
Figure 2023506234000028
をセカンドパーティ(例えば、データプロバイダ計算デバイス102またはアルゴリズムプロバイダ計算デバイス104などのユーザB)に送信することができ、
Figure 2023506234000029
は、公開鍵Aであり、
Figure 2023506234000030
は、公開鍵Aを使用した暗号化された[Beavである。
いくつかの実施形態では、ENCは、1回の乗算および1回の加算のための準同型暗号化をサポートする。準同型暗号は、暗号文に対する計算を可能にする暗号化の形態であり、復号化されたときに、あたかも平文に対して実行された動作の結果と一致する暗号化された結果を生成する。準同型暗号は、秘密鍵にアクセスすることなく暗号化されたデータにわたって計算するための追加の評価能力を有する暗号化の形態である。そのような計算結果は、暗号化されたままである。
ステップ944において、セカンドパーティ(ユーザB)は、第2のアルゴリズムサブセットの性質に基づく、または他の要因に基づく、ビーバーセットのその2つのシェアを生成することができる。データプロバイダ計算デバイス102またはアルゴリズムプロバイダ計算デバイス104などのユーザBは、N×3行列、Beav、およびビーバーセットと同じサイズ(Nx3)を有するランダム行列Rを生成することができる。行列Rはまた、非ランダムプロセスに基づいて生成され得る。Beavと同様に、Beavは、ランダムに生成されるか、またはいくつかの非ランダムプロセスに基づいて生成される第1および第2の列を含み得、第3の列は、アルゴリズムサブセットの動作を含むことができる。この例示的な実施形態では、第3の列は、最初の2つの列の乗算を含む。
次いで、ユーザBは、Beavの2つのシェア、[Beavおよび[Beavを生成することができる。次いで、ユーザBは、[Beav]=[Beav×[Beav-Rおよび
Figure 2023506234000031
をセットすることができる。次いで、ユーザBは、vおよび[BeavをユーザAに送信することができる。
ファーストパーティおよびセカンドパーティのデータプロバイダ計算デバイス102およびアルゴリズムプロバイダ計算デバイス104は、以下を実行することができる。ユーザAは、
Figure 2023506234000032
をセットすることができる。次いで、ユーザBは、[Beav]=[Beav×[Beav-Rのシェアを有し、ユーザAは、
Figure 2023506234000033
のシェアを有する。いくつかの実施形態では、ビーバーセットはまた、データプロバイダ計算デバイス102とアルゴリズムプロバイダ計算デバイス104との間の除算動作のために使用され得る。2つのパーティは、例えば、6つの通信のみを使用して、除算を実行するために一緒に作業し得る。一例として、2つのパーティは、e、dおよびe/dビーバートリプルを使用して、x/yの除算動作を実行し得る。例えば、eは、ビーバーセットの第1の列とすることができ、dは、ビーバーセットの第2の列とすることができる。第3の列は、e/d(eをdで除算したもの)とすることができる。最初の2つの列はランダムに生成され、第3の列は、第1の列を第2の列で除算したものとすることができる。
ファーストパーティ(ユーザA)および/またはセカンドパーティ(ユーザB)は、第3の列が、第1の列を第2の列で除算したものを含む、N×3行列ビーバートリプルセットを生成することができる。次いで、ユーザAおよびユーザBは、x’=x×dおよびy’=y×eを協働して計算することができる(例えば、両パーティは、x’およびy’の値を知っているであろう)。次いで、ユーザAは、[xd]を計算することができ、ユーザBは、[xd]を計算することができる。次いで、ユーザAおよびユーザBの両方は、xdを共同で再構築することができる。
一態様では、データプロバイダ計算デバイス102およびアルゴリズムプロバイダ計算デバイス104は、除算の
Figure 2023506234000034
および除算の
Figure 2023506234000035
を実行することができる。
ステップ946において、データプロバイダは、スプリットデータセットを2つのパーティに提供し、対応するビーバーセットを使用して、スプリットデータセットに対してスプリットアルゴリズムを実行することができる。いくつかの実施形態では、データは、機密情報(例えば、人口統計、性別、年齢、人種、または患者識別を明らかにする他の生体認証などを明らかにするパターン)をさらに隠すために、完全なデータセットのランダムなシェアにスプリットされ得る。この点において、方法は、第1の数学的セットの2つのシェアに基づいて第1のスプリットデータサブセットに対して第1のアルゴリズムサブセットを実行して、第1の出力サブセットを生成し、第2の数学的セットの2つのシェアに基づいて第2のスプリットデータサブセットに対して第2のアルゴリズムサブセットを実行して、第2の出力サブセットを生成することを含むことができる。次いで、方法は、第1の出力サブセットと第2の出力サブセットとを組み合わせることを含むことができる。
いくつかの実施形態では、算出速度は、高価な関数呼び出しの結果を記憶し、同じ入力が再び発生したときにキャッシュされた結果を返すことによって計算を高速化するために使用され得る最適化技術である1つ以上のメモ化技術を通じてさらに増加させることができる。メモ化された関数は、例えば、特定の入力のいくつかのセットに対応する結果をキャッシュすることができる。(キャッシュからの)思い出される入力を有する後続の呼び出しは、再度算出することなく思い出される結果を返すことができるため、所与のパラメータを有する呼び出しの主要なコストは、これらのパラメータを持つ関数に対して最初に行われた呼び出しを除き除去される。したがって、メモ化は、必要に応じて、事前にではなく、その結果のキャッシュを透過的にオンザフライで投入することができる。
別の例では、チェスゲームでは、1人のプレイヤーが利用可能なオープニングムーブの数を計算したいと仮定する。最初のムーブの後、プレイヤーはその最初のムーブの結果として可能なムーブなどを計算する。プレイヤーは、そのムーブの結果として可能なすべてのムーブを再度算出する代わりに、チェスゲームがより高速になるように、特定の設定に従って行うことができるすべての可能なムーブのリストを保持する。プレイヤーは、毎回可能なムーブを再度算出する代わりに、メモを保持する。この例示的なモデルは、システムができるだけ誤差を少なく蓄積することを可能にする動作のメモ化に関係するビーバーセットに適用される。各パーティは、各自でビーバーセットを生成する。アルゴリズムの例では、システムは、ビーバーセットを生成し、データに対してアルゴリズムを実行する。
別の例として、メモ化技術は、両パーティ間の各トランザクションに適用することができる。一例では、多数のEKG(例えば、50個のEKG)をバッチ処理のために指定することができる。同じビーバーセットは、セット内の各EKGについて再度算出するのではなく、すべての50個のEKGに対して使用し得る。しかしながら、パターン認識を妨げるために、ビーバーセットは、配分方式で次のトランザクション(例えば、次のバッチのEKG)で再生成される。
本開示の別の態様は、アルゴリズムサブセットによってデータサブセットを処理するときに追加の効率を提供することに関する。アルゴリズムは、2つの部分にスプリットされ、次いで、トランザクションにおいて2つのパーティ間に配分される。制御ビットは、回路の実際の最終評価が何であるかを最終的に解読する、異なるデータサブセットおよびアルゴリズムサブセットに対して算出を実行する2つの異なるスポットまたは位置の間で使用されるだろう。
本明細書に開示される1つのアプローチは、ビーバーセットを使用して、より少ない通信ホップでの乗算を可能にする。ビーバーセット(または同様の数学的構造)は、上記で導入され、算出時(例えば、アルゴリズムが暗号化および/または配分された後)に用いられて、デバイス、または計算が発生している異なる場所間の交換の量を低減することができる。このアプローチにより、交換が必要になる前に、計算をより高速に実行することが可能になる。次に、このアプローチは、ニューラルネットワークの様々な層におけるフィルタのコンテキストで記載される。
図9Dは、例示的な方法948を示す。方法は、ステップ950において、1つ以上の計算デバイスを介して、ニューラルネットワークの第1の層における複数のフィルタを第1のフィルタセットおよび第2のフィルタセットに分割することと、ステップ952において、1つ以上の計算デバイスを介して、第1のフィルタセットの各々をニューラルネットワークの入力に適用して、第1の出力セットを生成することと、ステップ954において、第2のフィルタセットに関連付けられた第2の出力セットを取得することと、を含み、第2の出力セットは、第2のフィルタセットの各々のニューラルネットワークの入力への適用に基づく。ステップ956において、複数のフィルタからの同じフィルタに対応する第1のフィルタセットおよび第2のフィルタセットにおける各フィルタセットに対して、方法は、1つ以上の計算デバイスを介して、ニューラルネットワークの第2の層で、フィルタセットにおける第1のフィルタに関連付けられた第1の出力セットのそれぞれの1つと、フィルタセットにおける第2のフィルタに関連付けられた第2の出力セットのそれぞれの1つとをアグリゲートして、第1のフィルタセットおよび第2のフィルタセットに関連付けられたアグリゲートされた出力セットを生成することを含む。
方法は、ステップ958において、1つ以上の計算デバイスを介して、ニューラルネットワークの各残りの層において活性化された特定のニューロンのそれぞれの重みをスプリットして、第1の重みセットおよび第2の重みセットを生成することをさらに含み、特定のニューロンは、アグリゲートされた出力セットに適用された1つ以上の活性化関数に基づいて活性化される。各残りの層からの各特定のニューロンにおいて、方法は、ステップ960において、1つ以上の計算デバイスを介して、各特定のニューロンに関連付けられたそれぞれのフィルタおよび第1の重みセットからの第1の対応する重みを適用して、第1のニューロン出力セットを生成することと、ステップ962において、特定のニューロンに関連付けられた第2のニューロン出力セットを取得することであって、第2のニューロン出力セットは、各特定のニューロンに関連付けられたそれぞれのフィルタの、第2の重みセットからの第2の対応する重みへの適用に基づく、取得することと、ステップ964において、各特定のニューロンに対して、特定のニューロンに関連付けられた第1のニューロン出力セットのうちの1つと特定のニューロンに関連付けられた第2のニューロン出力セットのうちの1つをアグリゲートして、特定のニューロンに関連付けられアグリゲートされたニューロン出力を生成することと、ステップ966において、アグリゲートされたニューロン出力のうちの1つ以上に基づくニューラルネットワークの出力を生成することと、を含む。上記方法は、任意の順序で識別されたステップのうちの任意の1つ以上を含むことができる。
図10は、本明細書に説明されるように処理されるアルゴリズムを表すことができる例示的なニューラルネットワーク1000を示す。ニューラルネットワークは、多くの場合、視覚画像を分析または評価するために使用されるか、または画像認識、ビデオ認識、音声もしくは自然言語処理などに使用され得る。畳み込みニューラルネットワーク(CNN)は、入力を受信し、入力を畳み込み、それを次の隠れ層104Aまたは隠れ層1004A、1004B、1004Cのグループに渡す入力層1002を有する。各層は、前の層の制限されたサブエリアであり得る前の層から入力を受信する。CNN1000の隠れ層は、乗算または他のドット積で畳み込む一連の畳み込み層を含むことができる。活性化関数、またはRe-LU層は、その後、隠れ層1004A、1004B、1004Cと呼ばれる、プーリング層、全結合層、および正規化層などの追加の畳み込みが続く。「隠れ」という用語は、入力および出力が活性化関数および最終畳み込みによってマスクされているために使用される。最終畳み込みは、出力層1006で最終生成物をより正確に重み付けするための逆伝播を伴うことができる。数学的には、「畳み込み」は、スライドドット積または相互相関を適用することを含むことができる。
ニューラルネットワーク内の各ニューロンは、出力値を計算する。前の層からの入力値に特定の関数を適用する。適用される関数は、重みおよびバイアスのベクトルによって判定され得る。学習プロセスには、バイアスおよび重みに対する調整を反復的に行うことを伴う。一態様では、重みおよびバイアスのベクトルはフィルタと呼ばれ、入力における特定の特徴を表す。例えば、特徴は、画像の色、または形状を含むことができる。CNNでは、一部のニューロンは、同じフィルタをシェアすることができ、これは、単一のフィルタがグループにわたって使用され得るか、またはフィルタをシェアするすべての受容野にわたって使用され得るため、メモリ要件を低減することができる。他の態様では、各受容野は、独自のバイアスおよびベクトル重み付けを有し得る。出力層1006は、ニューラルネットワークプロセスの結果を提供する。
CNNが、本開示において主に言及されるが、本開示は、任意の特定のタイプのニューラルネットワークまたは機械学習技術に限定されない。
図11は、CNN1100の例示的な用途を示す。入力層1102は、示されるように画像または画像の特定の部分を処理し始める。画像は、1つ以上の畳み込み隠れ層1104Aによって上述のように処理され、次いでプーリング隠れ層1104Bに通信される。プーリング層は、1つの層におけるニューロンクラスタの出力を次の層における単一のニューロンに組み合わせることによって、データの次元を低減することができる。グローバルプーリングは、畳み込み層のすべてのニューロンに対して動作することができる。さらに、プーリングは、最大または平均を計算し得る。最大プーリングは、前の層におけるニューロンのクラスタの各々からの最大値を使用する。平均プーリングは、前の層におけるニューロンのクラスタの各々からの平均値を使用する。プーリング層1104Aは、これらの動作のうちのいずれかを実行することができる。
全結合層1104Cは、ある層におけるすべてのニューロンを別の層におけるすべてのニューロンに接続する。この層は、従来の多層パーセプトロンニューラルネットワーク(MLP)と類似している。フラット化された行列は、画像を分類するために全結合層を通過する。フラット化層は、シェアの再配置を伴う可能性のあるデータの再配置である。次いで、出力画像1110を分類することができる。例えば、出力は、画像を公園、または都市などとして識別し得る。
畳み込みニューラルネットワークは、多くの異なる層を通じてデータを処理する。システムは、最初にCNNの1つの層において畳み込み動作を適用する。1100.次いで、次の層は、各行列に畳み込み動作を適用した後にシステムが最大値を取る最大プールとすることができる。CNNの第1の層では、システムは畳み込み動作を実行しているが、CNNのスプリットバージョンを実行している。画像データに対して、例えばシステムは、依然として、画像全体にわたって、ピクセルごとに同じウィンドウを実行する。しかし、フィルタ(重み、バイアス、または言い換えれば、数)は、2つのスプリットに変換され、フィルタの1は0.5および0.5になり、2は1および1になり、3は2および1になる。このように画像をスプリットすることもできる。
システムは、次いで、この画像のスプリットバージョンにたして再び動作を実行する。一例では、システムは、色チャネルの各々に対して、ピクセル値をランダムにスプリットすることができる。色コンテキストでは、値は、0~256の任意の値であってもよい。同様に、システムは、反対側が何らかの動作が起こっていることを認識しているが、フィルタが何であるかを具体的に知らない畳み込み動作を実行することができる。次に、次の層である最大プール層でアグリゲーションが発生することができる。次に、畳み込みおよび最大プール動作がどのように起こるかに基づいて、ニューラルネットワークの特定の点を活性化することができる。これらの点は通常、ニューラルネットワークにおけるニューロンと呼ばれ、活性化関数は、Re-LU関数、シグモイド関数、または他の関数とすることができる。
Re-LU関数の例示的な用途では、Re-LU関数は、本質的に、特定の.0[point 0]までであり、その後、ニューロンは、1である。ニューロンはオンまたはオフのいずれかである。画像の入力値に応じて、Re-LU関数はニューラルネットワークにおける特定の点をオンにし、本質的にニューロンをオンおよびオフに分離し、それらの異なるニューロンは異なって重み付けされる。本開示によれば、システムは、交換に参加するエンティティが、それらがそれ自体何をしているか知らないように、ここで重みをスプリットする。
システムは、層がこれらの種類の動作を適用することによって、層ごとにデータを処理することに進む。最後の層は、ソフトマックス層とすることができる。アプローチは、システムが複雑な数学を実行してそれを隠すにもかかわらず、同じソフトマックス層を出力する。ソフトマックス層はニューラルネットワークの出力を明らかにするものである。このプロセスの1つの技術的な利点は、より少ないネットワークホップで結果を取得することである。
さらに、図11およびCNNの様々な層を参照すると、本開示は、CNN1100の例示的な評価を通じて次のステップに進む。一例では、入力A:n*m*dと仮定する。各カーネルに対応する重みを隠すことによって、畳み込み層1104Aを隠すことができる。したがって、各カーネルは、(m*n)サイズおよび深さdで入力の各層に沿って移動する。この例では、層内および層間の乗算および加算がある。通信の数を最小限に抑えるために、本開示は、最初にすべての乗算を計算し、次いで、加算を計算することを提供する。各カーネルに対して、システムは通信上で必要となる。
フラット化層を使用して、シェアを再配置することができる。最大プーリング層1104Bを使用することができる。最大プーリングには2つの例示的なアプローチがある。最初に、入力>入力である場合、関数f=max(入力,入力)の出力はAである。このような場合に、システムは、SMPCを使用して2つの通信で最大2つの入力を求めることができる。別の例では、入力>入力である場合、関数f=max(入力,入力)の出力は、入力とすることができる。この場合に、システムは比較回路を作成し、((1-(A>B))*B+(A>B)*Aを使用して、より大きな値を出力する必要がある。第1の方法に対するこの方法の利点は、どのパーティも最大値の場所について学習しないことであるが、一方で、計算および時間の観点からは費用がかかる。
シグモイド関数は、上記で言及した。シグモイド関数は、e/(1+e)である。入力Xに対してこの関数を評価するには、以下のように新しいアイデアが適用される。プロセスは、2つの部分に分割される。最初に、システムは、本明細書に開示されているビーバーセットのアイデアを使用して、eを計算する。以下を含む前処理部分がある。
・ユーザAおよびユーザBは、第1の列がランダムであり、第2の列がランダムであり、第2の列が1/eAおよび1/eBとなるように2つのランダムビーバーセットを生成し、rおよびrは、第1の列における値である。
・ユーザAは、enc(r)およびenc(1/eA)をユーザBに送信する。
・ユーザBは、最終的なビーバーセットからユーザBのシェアであるランダム列[a]=mおよび[b]=mを生成する。
・ユーザBは、enc(m-(r+r))およびenc(m-(1/eAx1/eB))を計算し、それらをユーザAに送信する。
・ユーザAのシェアは、[a]=(r+r)-mおよび[b]=(1/eAx1/eB)-mである。
次に、eを計算するアプローチを示す。
・ユーザAは、[x]+[a]をオープンにし、ここで、aは第1の列であり、第nの列(nは、システムが1行にわたって消費する各aに対するカウンタである。
・ユーザBは、[x]+[a]をオーブンにし、ここで、両方のパーティが、x+aを学習する。
・eのユーザAのシェアは、(e(x+a))x[b]であり、eのユーザBのシェアは、(e(x+a)x[b])である。
Nestは、x/yに対する除算アルゴリズムの一例を示す。
・ユーザAおよびユーザBは、2つのランダム数[r]および[r]を選択し、共同でyrおよび1/yrを計算する。
・ユーザAおよびユーザBは、[xr]および[xr]を共同で計算する。
・除算のユーザAのシェアは、[xr]/yrであり、ユーザBのシェアは、[xr]/yrである。
シグモイド関数は、除算および指数関数からなるため、システムは、上記に説明したようにそれを計算することができる。本開示は、指数関数的発明を使用して、次いで、ニューラルネットワークに対するReLU活性化を計算する。これは、シグモイド様関数を介して近似的にReLUによって達成される。Relu関数は、シグモイド様関数として機能し、上記のアイデアの導関数として計算することもできる。Reluを計算するためのいくつかの可能なアプローチがある。まず、両パーティは、xがゼロより大きいか小さいかを学習する。ゼロより大きい場合、パーティはシェアを変更しない。ゼロより小さい場合、それらのシェアは0に置き換えられる。このアプローチには、いくつかのセキュリティ上の問題を有する。別のアプローチでは、パーティは何も学習しないが、ゲートレベルで動作するため、より遅い。
全結合層1104Cでは、各層は、入力に対する行列乗算として作用し、SMPCは、加算および乗算をサポートする。この層を隠すために、システムは、すべてゼロに等しい入力重みでいくつかのダミーノードを追加するため、重みもネットワークの構造も学習されない。
畳み込みニューラルネットの基本的なアイデアは、システムが次の層まで畳み込みネットの出力を必要としないということである。システムは、乗算通信を延期することができる。言い換えると、各フィルタ、fおよび入力Iに対して、システムは、フィルタを沿って移動させ、部分的に乗算を計算することができる。あるいは、システムは、次の層への通信が発生する前に、必要なことは何でも実行することができる。
図12は、本明細書に開示される原理によるニューラルネットワークを処理する方法1200を示す。ステップ1202において、方法は、ニューラルネットワークの第1の層における複数のフィルタを、第1のフィルタセットおよび第2のフィルタセットに分割することを含む。ステップ1204において、方法は、第1のフィルタセットの各々をニューラルネットワークの入力に適用して、第1の出力セットを生成することと、ステップ1206において、第2のフィルタセットに関連付けられた第2の出力セットを取得することと、を含み、第2の出力セットは、第2のフィルタセットの各々のニューラルネットワークの入力への適用に基づく。ステップ1208において、複数のフィルタからの同じフィルタに対応する第1のフィルタセットおよび第2のフィルタセットにおける各フィルタセットに対して、方法は、ニューラルネットワークの第2の層で、フィルタセットにおける第1のフィルタに関連付けられた第1の出力セットのそれぞれ1つと、フィルタセットにおける第2のフィルタに関連付けられた第2の出力セットのそれぞれ1つとをアグリゲートして、第1のフィルタセットおよび第2のフィルタセットに関連付けられたアグリゲートされた出力セットを生成することを含む。ステップ1210において、方法は、ニューラルネットワークの各残りの層において活性化された特定のニューロンのそれぞれの重みをスプリットして、第1の重みセットおよび第2の重みセットを生成することを含み、特定のニューロンは、アグリゲートされた出力セットに適用された1つ以上の活性化関数に基づいて活性化される。ステップ1212において、方法は、各残りの層からの各特定のニューロンにおいて、各特定のニューロンに関連付けられたそれぞれのフィルタおよび第1の重みセットからの第1の対応する重みを適用して、第1のニューロン出力セットを生成することを含む。ステップ1214において、方法は、特定のニューロンに関連付けられた第2のニューロン出力セットを取得することを含み、第2のニューロン出力セットは、各特定のニューロンに関連付けられたそれぞれのフィルタの第2の重みセットからの第2の対応する重みへの適用に基づく。方法は、ステップ1216において、各特定のニューロンに対して、特定のニューロンに関連付けられた第1のニューロン出力セットのうちの1つと特定のニューロンに関連付けられた第2のニューロン出力セットのうちの1つをアグリゲートして、特定のニューロンに関連付けられアグリゲートされたニューロン出力を生成することと、ステップ1218において、アグリゲートされたニューロン出力のうちの1つ以上に基づいてニューラルネットワークの出力を生成することと、を含む。
一態様では、複数のフィルタは、複数のフィルタ値を含むことができ、第1のフィルタセットは、第1の値セットを含み、第2のフィルタセットは、第2の値セットを含む。上述のように、ニューラルネットワークの入力は、画像データまたは任意の他のタイプのデータを含むことができる。第1の出力セットは、第1のフィルタセット内の各フィルタからの第1のそれぞれの出力をさらに含み得る。
一態様では、ニューラルネットワークの第1の層は、畳み込み層を含むことができ、ニューラルネットワークは、畳み込みニューラルネットワークを含むことができる。しかしながら、上述したように、本開示は、特定の畳み込みニューラルネットワークに限定されない。ニューラルネットワーク内の少なくとも1つの残りの層は、プーリング層、正規化層、完全接続層、および出力層のうちの少なくとも1つを含むことができる。正規化層は、非表示層の1つにすることができる。最先端の深層ニューラルネットワークを訓練することは、計算コストがかかる可能性がある。訓練時間を短縮する1つの方法は、ニューラルネットワーク内のニューロンの活動を正規化することである。バッチ正規化は、トレーニングケースのミニバッチにわたるニューロンへの合計された入力の分布を使用して、平均および分散を計算し、これを使用して各トレーニングケースでそのニューロンへの合計された入力を正規化する。これにより、フィードフォワード型ニューラルネットワークの訓練時間が大幅に短縮される。一態様では、正規化層を使用することは、隠れた状態のダイナミクスを安定させることができる。
別の態様において、1つ以上の活性化関数は、整流された線形単位関数、シグモイド関数、双曲線接線関数、およびソフトマックス関数のうちの少なくとも1つを含むことができる。
ニューラルネットワークの入力は、画像を含むことができ、ニューラルネットワークの出力は、画像内で検出された1つ以上の特徴の表示および/または画像内の1つ以上の特徴の分類の少なくとも1つを含むことができる。
別の態様では、複数のフィルタを第1のフィルタセットおよび第2のフィルタセットに分割することは、複数のフィルタ内の各フィルタを、組み合わされたときに、フィルタの値に等しい第1の値および第2の値のセットにランダムに分割することを含むことができる。
方法は、第2のフィルタセットをリモート計算デバイスに送信し、リモート計算デバイスから第2のフィルタセットに関連付けられた第2の出力セットを取得することをさらに含むことができる。別の態様では、方法は、重みの第2のセットをリモート計算デバイスに送信することと、特定のニューロンと関連付けられたニューロン出力の第2のセットをリモート計算デバイスから取得することとを含むことができる。
図13は、データ動作および要求を処理し、データコンテンツおよび/またはメタデータを記憶し、他の計算動作を実行するために使用され得るシステム1300の例示的な計算システムアーキテクチャを示す。この例では、システム1300の構成要素は、バスなどの接続1305を使用して互いに電気通信する。システム1300は、処理ユニット(CPUまたはプロセッサ)1310と、プロセッサ1310に、読み出し専用メモリ(ROM)1320およびランダムアクセスメモリ(RAM)1325などのメモリ1315を含む様々なシステム構成要素を結合する接続1305と、を含む。システム1300は、プロセッサ1310に直接接続されるか、プロセッサ1310に近接するか、またはプロセッサ1310の一部として一体化される高速メモリのキャッシュを含むことができる。システム1300は、プロセッサ1310による迅速なアクセスのために、メモリ1315および/または記憶デバイス1330からキャッシュ1312にデータをコピーすることができる。このようにして、キャッシュは、データを待つ間プロセッサ1310の遅延を回避するパフォーマンスブーストを提供することができる。これらおよび他のモジュールは、様々なアクションを実行するようにプロセッサ1310を制御する、または制御するように構成され得る。他のメモリ1315が、同様に利用可能であってもよい。メモリ1315は、異なる性能特性を有する複数の異なるタイプのメモリを含むことができる。プロセッサ1310は、プロセッサ1310を制御するように構成された、任意の汎用プロセッサ、およびハードウェア、または記憶デバイス1330に記憶されるサービス1 1332、サービス2 1334、およびサービス3 1336などのソフトウェアサービス、ならびにソフトウェア命令が実際のプロセッサ設計に組み込まれた専用プロセッサを含むことができる。プロセッサ1310は、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む完全に自己完結型の計算システムであってもよい。マルチコアプロセッサは、対称的または非対称的であり得る。
計算システム1300とのユーザ対話を可能にするために、入力デバイス1345は、発話用マイク、ジェスチャまたはグラフィカル入力用のタッチ感知スクリーン、キーボード、マウス、モーション入力、発話などの任意の数の入力機構を表すことができる。出力デバイス1335はまた、当業者に既知のいくつかの出力機構のうちの1つ以上とすることができる。場合によっては、マルチモーダルシステムは、ユーザが計算システム1300と通信するために複数のタイプの入力を提供することを可能にすることができる。通信インターフェース1340は、一般に、ユーザ入力およびシステム出力を統括および管理することができる。任意の特定のハードウェア配置に対する動作に制限はなく、したがって、ここでの基本的な特徴は、それらが開発されるにつれて、改善されたハードウェアまたはファームウェア配置に容易に代替され得る。
記憶デバイス1330は、不揮発性メモリであり、ハードディスク、または磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル汎用ディスク、カートリッジ、ランダムアクセスメモリ(RAM)1325、読み出し専用メモリ(ROM)1320、およびそれらのハイブリッドなど、コンピュータによってアクセス可能なデータを記憶することができる他のタイプのコンピュータ可読媒体とすることができる。
記憶デバイス1330は、プロセッサ1310を制御するためのサービス1332、1334、1336を含むことができる。他のハードウェアまたはソフトウェアモジュールが企図される。記憶デバイス1330は、接続1305に接続され得る。一態様では、特定の機能を実行するハードウェアモジュールは、機能を実施するために、プロセッサ1310、接続1305、出力デバイス1335などの必要なハードウェア構成要素に関連してコンピュータ可読媒体に記憶されたソフトウェア構成要素を含むことができる。
説明を明確にするために、いくつかの例では、本技術は、デバイス、デバイス構成要素、ソフトウェアに具現化された方法におけるステップもしくはルーチン、またはハードウェアおよびソフトウェアの組み合わせを含む、個々の機能ブロックを含むものとして提示され得る。
いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームなどを含有するケーブルまたは無線信号を含むことができる。ただし、言及されるとき、非一時的なコンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波、および信号自体などの媒体を明示的に除外する。
上述の例による方法は、コンピュータ可読媒体に記憶されているか、またはそうでなければコンピュータ可読媒体から利用可能なコンピュータ実行可能命令を使用して実装することができる。このような命令は、例えば、特定の機能または機能のグループを実行するために汎用コンピュータ、専用コンピュータ、または専用処理デバイスを生じさせるか、または他の方法で構成する命令およびデータを含むことができる。使用されるコンピュータリソースの部分は、ネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間形態命令、ファームウェア、またはソースコードであってもよい。説明された例による方法中に作成された命令、使用される情報、および/または情報を記憶するために使用され得るコンピュータ可読媒体の例としては、磁気ディスクまたは光ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワーク記憶デバイスなどを含む。
これらの開示による方法を実装するデバイスは、ハードウェア、ファームウェア、および/またはソフトウェアを含むことができ、多様なフォームファクターのうちのいずれかを取ることができる。このようなフォームファクターの典型的な例として、ラップトップ、スマートフォン、小型フォームファクタパーソナルコンピュータ、パーソナルデジタルアシスタント、ラックマウントデバイス、スタンドアロンデバイスなどが挙げられる。本明細書に記載される機能性はまた、周辺機器またはアドインカードにおいて具現化され得る。このような機能性はまた、さらなる例として、単一のデバイスで実行される異なるチップまたは異なるプロセスの間で回路基板上に実装することができる。
命令、そのような命令を搬送するための媒体、それらを実行するための計算リソース、およびそのような計算リソースをサポートするための他の構造は、これらの開示で記載される機能を提供するための手段である。
多様な実施例および他の情報が別添の特許請求の範囲内の態様を説明するために使用されたが、当業者であれば、これらの実施例を使用して多種多様な実装形態を導出することができるため、特許請求の範囲の限定は、このような実施例の特定の特徴または配置に基づいて含意されるものではない。さらに、いくつかの主題は、構造的特徴および/または方法ステップの例に特有の言語で記載され得るが、添付の特許請求の範囲で定義される主題が、必ずしもこれらの記載された特徴または行為に限定されないことを理解されたい。例えば、このような機能性は、本明細書で識別されるもの以外の構成要素において異なるように配分され得るか、または実施され得る。むしろ、記載される特徴およびステップは、別添の特許請求の範囲内のシステムおよび方法の構成要素の例として開示されている。
セット「のうちの少なくとも1つ」を列挙する請求項の言語は、セットの1つのメンバーまたはセットの複数のメンバーが請求項を満たすことを示す。例えば、「AおよびBのうちの少なくとも1つ」を列挙する請求項の言語は、A、B、またはAおよびBを意味する。
ステートメントバンク
ステートメント1.以下のステップ:少なくとも1つのプロセッサを介して、第1のエンティティにおいて、アルゴリズムプロバイダから第1のアルゴリズムサブセットを受信するステップであって、第1のアルゴリズムサブセットが、アルゴリズム全体よりも小さいアルゴリズムの第1の部分を表す、受信するステップ、少なくとも1つのプロセッサを介して、第2のエンティティにおいて、アルゴリズムプロバイダから第2のアルゴリズムサブセットを受信するステップであって、第2のアルゴリズムサブセットが、アルゴリズム全体よりも小さいアルゴリズムの第2の部分を表し、アルゴリズムの第2の部分が、アルゴリズムの第1の部分とは異なる、受信するステップ、第1のエンティティを介して、第1のアルゴリズムサブセットに関連付けられた第1のパラメータに基づく第1の数学的セットの2つのシェアを生成するステップ、第1の数学的セットの2つのシェアの少なくとも一部分を第1のエンティティから第2のエンティティに送信するステップ、第2のエンティティを介して、第2のアルゴリズムサブセットに関連付けられた第2のパラメータに基づく第2の数学的セットの2つのシェアを生成するステップ、第2の数学的セットの2つのシェアの少なくとも一部分を第2のエンティティから第1のエンティティに送信するステップ、第1のエンティティにおいて、完全なデータセットの第1のスプリットデータサブセットを受信するステップ、第2のエンティティにおいて、完全なデータセットの第2のスプリットデータサブセットを受信するステップ、第1の数学的セットの2つのシェアに基づいて第1のスプリットデータサブセットに対して第1のアルゴリズムを実行して、第1の出力サブセットを生成するステップ、第2の数学的セットの2つのシェアに基づいて第2のスプリットデータサブセットに対して第2のアルゴリズムを実行して、第2の出力サブセットを生成するステップ、および/または第1の出力サブセットと第2の出力サブセットを組み合わせるステップ、のうちの1つ以上を任意の順序で含む方法。
ステートメント2.アルゴリズムからの第1のアルゴリズムサブセットが、第3のアルゴリズムサブセットおよび第4のアルゴリズムサブセットに分割されている、ステートメント1に記載の方法。
ステートメント3.第1のパラメータが、第1のアルゴリズムサブセットの第1の特性を含み、第2のパラメータが、第2のアルゴリズムサブセットの第2の特性を含む、先行ステートメントのいずれか1つに記載の方法。
ステートメント4.第1のパラメータが、第1のアルゴリズムサブセットの性質に関連し、第2のパラメータが、両方とも第2のアルゴリズムサブセットの性質に関連する、先行ステートメントのいずれか1つに記載の方法。
ステートメント5.第1のスプリットデータサブセットが、完全なデータセットの一部としてランダムに生成される、先行ステートメントのいずれか1つに記載の方法。
ステートメント6.第2のスプリットデータサブセットが、完全なデータセットの一部としてランダムに生成される、先行ステートメントのいずれか1つに記載の方法。
ステートメント7.第1のエンティティおよび第2のエンティティが、2つの別個の物理的な計算デバイスまたは2つの別個の仮想的な計算デバイスのうちの1つを含む、先行ステートメントのいずれか1つに記載の方法。
ステートメント8.第1の数学的セットおよび第2の数学的セットの各々が、ビーバーセットを含む、先行ステートメントのいずれか1つに記載の方法。
ステートメント9.第1の数学的セットおよび第2の数学的セットの各々が、NxM行列を含む、先行ステートメントのいずれか1つに記載の方法。
ステートメント10.第1の数学的セットの2つのシェアに基づいて第1のスプリットデータサブセットに対して第1のアルゴリズムサブセットを実行して、第1の出力サブセットを生成すること、および第2の数学的セットの2つのシェアに基づいて第2のスプリットデータサブセットに対して第2のアルゴリズムサブセットを実行して、第2の出力サブセットを生成することが、メモ化技術を使用して発生する、先行ステートメントのいずれか1つに記載の方法。
ステートメント11.システムであって、少なくとも1つのプロセッサと、命令を記憶するコンピュータ可読記憶媒体と、を含み、命令が、少なくとも1つのプロセッサによって実行されるときに、少なくとも1つのプロセッサに、以下の動作のうちの1つ以上を任意の順序で行わせる。動作は、第1のエンティティにおいて、アルゴリズムプロバイダから第1のアルゴリズムサブセットを受信することであって、第1のアルゴリズムサブセットが、アルゴリズム全体よりも小さいアルゴリズムの第1の部分を表す、受信すること、第2のエンティティにおいて、アルゴリズムプロバイダから第2のアルゴリズムサブセットを受信することであって、第2のアルゴリズムサブセットが、アルゴリズム全体よりも小さいアルゴリズムの第2の部分を表し、アルゴリズムの第2の部分が、アルゴリズムの第1の部分とは異なる、受信すること、第1のエンティティを介して、第1のアルゴリズムサブセットに関連付けられた第1のパラメータに基づく第1の数学的セットの2つのシェアを生成すること、第1の数学的セットの2つのシェアの少なくとも一部分を第1のエンティティから第2のエンティティに送信すること、第2のエンティティを介して、第2のアルゴリズムサブセットに関連付けられた第2のパラメータに基づく第2の数学的セットの2つのシェアを生成すること、第2の数学的セットの2つのシェアの少なくとも一部分を第2のエンティティから第1のエンティティに送信すること、第1のエンティティにおいて、完全なデータセットの第1のスプリットデータサブセットを受信すること、第2のエンティティにおいて、完全なデータセットの第2のスプリットデータサブセットを受信すること、第1の数学的セットの2つのシェアに基づいて第1のスプリットデータサブセットに対して第1のアルゴリズムを実行して、第1の出力サブセットを生成すること、第2の数学的セットの2つのシェアに基づいて第2のスプリットデータサブセットに対して第2のアルゴリズムを実行して、第2の出力サブセットを生成すること、および/または第1の出力サブセットと第2の出力サブセットを組み合わせることを含む。
ステートメント12.アルゴリズムからの第1のアルゴリズムサブセットが、第3のアルゴリズムサブセットおよび第4のアルゴリズムサブセットに分割されている、ステートメント11に記載のシステム。
ステートメント13.第1のパラメータが、第1のアルゴリズムサブセットの第1の特性を含み、第2のパラメータが、第2のアルゴリズムサブセットの第2の特性を含む、先行ステートメントのいずれか1つに記載のシステム。
ステートメント14.第1のパラメータが、第1のアルゴリズムサブセットの性質に関連し、第2のパラメータは両方とも、第2のアルゴリズムサブセットの性質に関連する、先行ステートメントのいずれか1つに記載のシステム。
ステートメント15.第1のスプリットデータサブセットが、完全なデータセットの一部としてランダムに生成される、先行ステートメントのいずれか1つに記載のシステム。
ステートメント16.第2のスプリットデータサブセットが、完全なデータセットの一部としてランダムに生成される、先行ステートメントのいずれか1つに記載のシステム。
ステートメント17.第1のエンティティおよび第2のエンティティが、2つの別個の物理的な計算デバイスまたは2つの別個の仮想的な計算デバイスのうちの1つを含む、先行ステートメントのいずれか1つに記載のシステム。
ステートメント18.第1の数学的セットおよび第2の数学的セットの各々が、ビーバーセットを含む、先行ステートメントのいずれか1つに記載のシステム。
ステートメント19.第1の数学的セットおよび第2の数学的セットの各々は、NxM行列を含む、先行ステートメントのいずれか1つに記載のシステム。
ステートメント20.第1の数学的セットの2つのシェアに基づいて第1のスプリットデータサブセットに対して第1のアルゴリズムサブセットを実行して、第1の出力サブセットを生成すること、および第2の数学的セットの2つのシェアに基づいて第2のスプリットデータサブセットに対して第2のアルゴリズムサブセットを実行して、第2の出力サブセットを生成することは、メモ化技術を使用して発生する、先行ステートメントのいずれか1つに記載のシステム。

Claims (20)

  1. 方法であって、
    アルゴリズムプロバイダにおいて、アルゴリズムを第1のアルゴリズムサブセットおよび第2のアルゴリズムサブセットに分割することであって、前記第1のアルゴリズムサブセットが、アルゴリズム全体よりも小さい前記アルゴリズムの第1の部分を表し、前記第2のアルゴリズムサブセットが、前記アルゴリズム全体よりも小さい前記アルゴリズムの第2の部分を表し、前記アルゴリズムの前記第2の部分が、前記アルゴリズムの前記第1の部分とは異なる、分割することと、
    少なくとも1つのプロセッサを介して、第1のエンティティにおいて、前記アルゴリズムプロバイダから前記第1のアルゴリズムサブセットを受信することと、
    少なくとも1つのプロセッサを介して、第2のエンティティにおいて、前記アルゴリズムプロバイダから前記第2のアルゴリズムサブセットを受信することであって、前記第1のエンティティが、前記第2のアルゴリズムサブセットを受信せず、前記第2のエンティティが、前記第1のアルゴリズムサブセットを受信しない、受信することと、
    前記第1のエンティティを介して、前記第1のアルゴリズムサブセットに関連付けられた第1のパラメータに基づく第1の数学的セットの2つのシェアを生成することと、
    前記第1の数学的セットの前記2つのシェアの少なくとも一部分を前記第1のエンティティから前記第2のエンティティに送信することと、
    前記第2のエンティティを介して、前記第2のアルゴリズムサブセットに関連付けられた第2のパラメータに基づく第2の数学的セットの2つのシェアを生成することと、
    前記第2の数学的セットの前記2つのシェアの少なくとも一部分を前記第2のエンティティから前記第1のエンティティに送信することと、
    前記第1のエンティティにおいて、完全なデータセットの第1のスプリットデータサブセットを受信することと、
    前記第2のエンティティにおいて、前記完全なデータセットの第2のスプリットデータサブセットを受信することと、
    前記第1の数学的セットの前記2つのシェアに基づいて前記第1のスプリットデータサブセットに対して前記第1のアルゴリズムを実行して、第1の出力サブセットを生成することと、
    前記第2の数学的セットの前記2つのシェアに基づいて前記第2のスプリットデータサブセットに対して前記第2のアルゴリズムを実行して、第2の出力サブセットを生成することと、
    前記第1の出力サブセットと前記第2の出力サブセットとを組み合わせることと、を含む、方法。
  2. 前記アルゴリズムからの前記第1のアルゴリズムサブセットが、第3のアルゴリズムサブセットおよび第4のアルゴリズムサブセットに分割されている、請求項1に記載の方法。
  3. 前記第1のパラメータが、前記第1のアルゴリズムサブセットの第1の特性を含み、前記第2のパラメータが、前記第2のアルゴリズムサブセットの第2の特性を含む、請求項1に記載の方法。
  4. 前記第1のパラメータが、前記第1のアルゴリズムサブセットの性質に関連し、前記第2のパラメータは両方とも、前記第2のアルゴリズムサブセットの性質に関連する、請求項1に記載の方法。
  5. 前記第1のスプリットデータサブセットが、前記完全なデータセットの一部としてランダムに生成される、請求項1に記載の方法。
  6. 前記第2のスプリットデータサブセットが、前記完全なデータセットの一部としてランダムに生成される、請求項1に記載の方法。
  7. 前記第1のエンティティおよび前記第2のエンティティが、2つの別個の物理的な計算デバイスまたは2つの別個の仮想的な計算デバイスのうちの1つを含む、請求項1に記載の方法。
  8. 前記第1の数学的セットおよび前記第2の数学的セットの各々が、ビーバーセットを含む、請求項1に記載の方法。
  9. 前記第1の数学的セットおよび前記第2の数学的セットの各々が、NxM行列を含む、請求項1に記載の方法。
  10. 前記第1の数学的セットの前記2つのシェアに基づいて前記第1のスプリットデータサブセットに対して前記第1のアルゴリズムサブセットを実行して、前記第1の出力サブセットを生成すること、および前記第2の数学的セットの前記2つのシェアに基づいて前記第2のスプリットデータサブセットに対して前記第2のアルゴリズムサブセットを実行して、前記第2の出力サブセットを生成することが、メモ化技術を使用して発生する、請求項1に記載の方法。
  11. システムであって、
    少なくとも1つのプロセッサと、
    命令を記憶するコンピュータ可読記憶媒体と、を含み、前記命令が、前記少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、
    アルゴリズムプロバイダにおいて、アルゴリズムを第1のアルゴリズムサブセットおよび第2のアルゴリズムサブセットに分割することであって、前記第1のアルゴリズムサブセットが、アルゴリズム全体よりも小さい前記アルゴリズムの第1の部分を表し、前記第2のアルゴリズムサブセットが、前記アルゴリズム全体よりも小さい前記アルゴリズムの第2の部分を表し、前記アルゴリズムの前記第2の部分が、前記アルゴリズムの前記第1の部分とは異なる、分割することと、
    第1のエンティティにおいて、前記アルゴリズムプロバイダから前記第1のアルゴリズムサブセットを受信することと、
    第2のエンティティにおいて、前記アルゴリズムプロバイダから前記第2のアルゴリズムサブセットを受信することであって、前記第1のエンティティが、前記第2のアルゴリズムサブセットを受信せず、前記第2のエンティティが、前記第1のアルゴリズムサブセットを受信しない、受信することと、
    前記第1のエンティティを介して、前記第1のアルゴリズムサブセットに関連付けられた第1のパラメータに基づく第1の数学的セットの2つのシェアを生成することと、
    前記第1の数学的セットの前記2つのシェアの少なくとも一部分を前記第1のエンティティから前記第2のエンティティに送信することと、
    前記第2のエンティティを介して、前記第2のアルゴリズムサブセットに関連付けられた第2のパラメータに基づく第2の数学的セットの2つのシェアを生成することと、
    前記第2の数学的セットの前記2つのシェアの少なくとも一部分を前記第2のエンティティから前記第1のエンティティに送信することと、
    前記第1のエンティティにおいて、完全なデータセットの第1のスプリットデータサブセットを受信することと、
    前記第2のエンティティにおいて、前記完全なデータセットの第2のスプリットデータサブセットを受信することと、
    前記第1の数学的セットの前記2つのシェアに基づいて前記第1のスプリットデータサブセットに対して前記第1のアルゴリズムを実行して、第1の出力サブセットを生成することと、
    前記第2の数学的セットの前記2つのシェアに基づいて前記第2のスプリットデータサブセットに対して前記第2のアルゴリズムを実行して、第2の出力サブセットを生成することと、
    前記第1の出力サブセットと前記第2の出力サブセットとを組み合わせることと、を含む動作を行わせる、システム。
  12. 前記アルゴリズムからの前記第1のアルゴリズムサブセットが、第3のアルゴリズムサブセットおよび第4のアルゴリズムサブセットに分割されている、請求項11に記載のシステム。
  13. 前記第1のパラメータが、前記第1のアルゴリズムサブセットの第1の特性を含み、前記第2のパラメータが、前記第2のアルゴリズムサブセットの第2の特性を含む、請求項11に記載のシステム。
  14. 前記第1のパラメータが、前記第1のアルゴリズムサブセットの性質に関連し、前記第2のパラメータは両方とも、前記第2のアルゴリズムサブセットの性質に関連する、請求項11に記載のシステム。
  15. 前記第1のスプリットデータサブセットが、前記完全なデータセットの一部としてランダムに生成される、請求項11に記載のシステム。
  16. 前記第2のスプリットデータサブセットが、前記完全なデータセットの一部としてランダムに生成される、請求項11に記載のシステム。
  17. 前記第1のエンティティおよび前記第2のエンティティが、2つの別個の物理的な計算デバイスまたは2つの別個の仮想的な計算デバイスのうちの1つを含む、請求項11に記載のシステム。
  18. 前記第1の数学的セットおよび前記第2の数学的セットの各々が、ビーバーセットを含む、請求項11に記載のシステム。
  19. 前記第1の数学的セットおよび前記第2の数学的セットの各々は、NxM行列を含む、請求項11に記載のシステム。
  20. 前記第1の数学的セットの前記2つのシェアに基づいて前記第1のスプリットデータサブセットに対して前記第1のアルゴリズムサブセットを実行して、第1の出力サブセットを生成すること、および前記第2の数学的セットの前記2つのシェアに基づいて前記第2のスプリットデータサブセットに対して前記第2のアルゴリズムサブセットを実行して、第2の出力サブセットを生成することは、メモ化技術を使用して発生する、請求項11に記載のシステム。
JP2022536496A 2019-12-13 2020-12-10 スプリットデータおよびスプリットアルゴリズムに対する効率的な計算のためのシステムおよび方法 Pending JP2023506234A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962948105P 2019-12-13 2019-12-13
US62/948,105 2019-12-13
US16/828,216 US20200220851A1 (en) 2019-12-13 2020-03-24 Systems and methods for efficient computations on split data and split algorithms
US16/828,216 2020-03-24
PCT/US2020/064389 WO2021119367A1 (en) 2019-12-13 2020-12-10 Systems and methods for efficient computations on split data and split algorithms

Publications (1)

Publication Number Publication Date
JP2023506234A true JP2023506234A (ja) 2023-02-15

Family

ID=71403979

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2022536507A Pending JP2023506238A (ja) 2019-12-13 2020-12-10 データおよびアルゴリズムを暗号化するためのシステムおよび方法
JP2022536496A Pending JP2023506234A (ja) 2019-12-13 2020-12-10 スプリットデータおよびスプリットアルゴリズムに対する効率的な計算のためのシステムおよび方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2022536507A Pending JP2023506238A (ja) 2019-12-13 2020-12-10 データおよびアルゴリズムを暗号化するためのシステムおよび方法

Country Status (6)

Country Link
US (5) US10924460B2 (ja)
EP (2) EP4062620A4 (ja)
JP (2) JP2023506238A (ja)
KR (2) KR20220113714A (ja)
CA (2) CA3159667A1 (ja)
WO (2) WO2021119367A1 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102667837B1 (ko) 2017-08-30 2024-05-21 인퍼, 인코포레이티드 고정밀 프라이버시 보호 실가 함수 평가
IL285484B1 (en) * 2019-02-22 2024-03-01 Inpher Inc Arithmetic for secure multipart computation with modular integers
US11431688B2 (en) 2019-12-13 2022-08-30 TripleBlind, Inc. Systems and methods for providing a modified loss function in federated-split learning
US11599671B1 (en) 2019-12-13 2023-03-07 TripleBlind, Inc. Systems and methods for finding a value in a combined list of private values
US11973743B2 (en) 2019-12-13 2024-04-30 TripleBlind, Inc. Systems and methods for providing a systemic error in artificial intelligence algorithms
US11531782B1 (en) * 2022-05-13 2022-12-20 TripleBlind, Inc. Systems and methods for finding a value in a combined list of private values
US11528259B2 (en) 2019-12-13 2022-12-13 TripleBlind, Inc. Systems and methods for providing a systemic error in artificial intelligence algorithms
US10924460B2 (en) 2019-12-13 2021-02-16 TripleBlind, Inc. Systems and methods for dividing filters in neural networks for private data computations
CA3177679A1 (en) 2020-05-06 2021-11-11 Greg STORM Systems and methods for providing a private multi-modal artificial intelligence platform
CN111859454B (zh) * 2020-07-28 2024-03-29 桂林慧谷人工智能产业技术研究院 防御基于图神经网络链路预测的隐私保护方法
CN112001452B (zh) * 2020-08-27 2021-08-27 深圳前海微众银行股份有限公司 特征选择方法、装置、设备及可读存储介质
US20230353571A1 (en) * 2020-08-28 2023-11-02 Nippon Telegraph And Telephone Corporation Processing apparatus, processing method, and program
US20220121953A1 (en) * 2020-10-21 2022-04-21 Nec Laboratories America, Inc. Multi-task learning via gradient split for rich human analysis
US11507693B2 (en) 2020-11-20 2022-11-22 TripleBlind, Inc. Systems and methods for providing a blind de-identification of privacy data
IL279405B2 (en) * 2020-12-13 2024-01-01 Google Llc Using a secure multi-participant calculation to improve the integrity of the content selection process
CN112598127B (zh) * 2020-12-16 2023-07-25 百度在线网络技术(北京)有限公司 联邦学习模型训练方法和装置、电子设备、介质和产品
CN112311546B (zh) * 2020-12-25 2021-04-09 鹏城实验室 数据保密判定方法、装置、设备及计算机可读存储介质
CN113807380B (zh) * 2020-12-31 2023-09-01 京东科技信息技术有限公司 一种联邦学习模型的训练方法、装置及电子设备
CN113822311B (zh) * 2020-12-31 2023-09-01 京东科技控股股份有限公司 一种联邦学习模型的训练方法、装置及电子设备
US20220247548A1 (en) * 2021-02-01 2022-08-04 Sap Se Efficient distributed privacy-preserving computations
JP7451445B2 (ja) * 2021-02-10 2024-03-18 株式会社東芝 秘匿演算方法、秘匿演算システム及び秘匿演算管理装置
CN112966865B (zh) * 2021-03-04 2023-06-02 中国联合网络通信集团有限公司 携号转网预测方法、装置及设备
CN113052323B (zh) * 2021-03-23 2023-05-23 支付宝(杭州)信息技术有限公司 基于联邦学习的模型训练方法、装置和电子设备
CN113240524B (zh) * 2021-05-10 2024-05-14 深圳前海微众银行股份有限公司 联邦学习系统中账户的异常检测方法、装置及电子设备
CN117616719A (zh) * 2021-07-06 2024-02-27 华为技术有限公司 多片语法零知识联合证明方法、装置及系统
CN114362994B (zh) * 2021-11-26 2023-01-06 北京交通大学 多层异粒度智能聚合铁路系统运行行为安全风险识别方法
US11625377B1 (en) 2022-02-03 2023-04-11 TripleBlind, Inc. Systems and methods for enabling two parties to find an intersection between private data sets without learning anything other than the intersection of the datasets
US11539679B1 (en) 2022-02-04 2022-12-27 TripleBlind, Inc. Systems and methods for providing a quantum-proof key exchange
CN114996915B (zh) * 2022-05-11 2024-05-28 电子科技大学 基于归一化算子库的专用处理器指令系统设计方法
CN116032663B (zh) * 2023-03-27 2023-06-02 湖南红普创新科技发展有限公司 基于边缘设备的隐私数据处理系统、方法、设备及介质
CN116522988B (zh) * 2023-07-03 2023-10-31 粤港澳大湾区数字经济研究院(福田) 基于图结构学习的联邦学习方法、系统、终端及介质
CN117035074B (zh) * 2023-10-08 2024-02-13 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 基于反馈强化的多模态知识生成方法及装置

Family Cites Families (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1045208A (en) 1912-02-09 1912-11-26 Universal Machine Screw Company Machine for tapping couplings.
JPH05265975A (ja) 1992-03-16 1993-10-15 Hitachi Ltd 並列計算処理装置
JP3568181B2 (ja) 1997-06-23 2004-09-22 株式会社東芝 ニューラルネット分析装置、記憶媒体
CN102609640B (zh) 2004-10-25 2015-07-15 安全第一公司 安全数据分析方法和系统
US20060233377A1 (en) 2005-03-31 2006-10-19 Hwang-Daw Chang Key distribution method of mobile ad hoc network
US9106616B2 (en) 2005-07-27 2015-08-11 International Business Machines Corporation Systems and method for secure delivery of files to authorized recipients
US20120047097A1 (en) 2005-11-23 2012-02-23 Beyondcore, Inc. Secure Handling of Documents with Fields that Possibly Contain Restricted Information
US8855296B2 (en) 2006-06-28 2014-10-07 Voltage Security, Inc. Data processing systems with format-preserving encryption and decryption engines
US8028045B2 (en) 2006-09-29 2011-09-27 Rockwell Automation Technologies, Inc. Web-based configuration server for automation systems
US8010954B2 (en) 2007-02-14 2011-08-30 The Mathworks, Inc. Parallel programming interface to dynamically allocate program portions
US10419360B2 (en) 2007-05-31 2019-09-17 International Business Machines Corporation Market-driven variable price offerings for bandwidth-sharing ad hoc networks
US10623998B2 (en) 2007-05-31 2020-04-14 International Business Machines Corporation Price offerings for bandwidth-sharing ad hoc networks
US7908283B2 (en) 2007-08-29 2011-03-15 Red Hat, Inc. Finding superlatives in an unordered list
US7663400B1 (en) 2007-12-21 2010-02-16 Actel Corporation Flexible carry scheme for field programmable gate arrays
US20110161091A1 (en) * 2009-12-24 2011-06-30 Vertical Acuity, Inc. Systems and Methods for Connecting Entities Through Content
US8494674B2 (en) 2011-08-24 2013-07-23 International Business Machines Corporation Fast-access self-repairing tape library using mobile robots
US11290261B2 (en) 2011-10-31 2022-03-29 Reid Consulting Group, Inc. System and method for securely storing and sharing information
US20130124491A1 (en) 2011-11-11 2013-05-16 Gerald Pepper Efficient Pipelined Binary Search
CN106469029B (zh) 2011-12-31 2019-07-23 华为数字技术(成都)有限公司 数据分层存储处理方法、装置和存储设备
US9264706B2 (en) 2012-04-11 2016-02-16 Qualcomm Incorporated Bypass bins for reference index coding in video coding
WO2014059622A1 (en) 2012-10-17 2014-04-24 Nokia Corporation Method and apparatus for providing secure communications based on trust evaluations in a distributed manner
US20220050921A1 (en) 2013-11-01 2022-02-17 Anonos Inc. Systems and methods for functionally separating heterogeneous data for analytics, artificial intelligence, and machine learning in global data ecosystems
US9264407B2 (en) 2014-04-03 2016-02-16 Palo Alto Research Center Incorporated Computer-implemented system and method for establishing distributed secret shares in a private data aggregation scheme
US10396984B2 (en) 2014-05-02 2019-08-27 Barclays Services Limited Apparatus and system having multi-party cryptographic authentication
US9627532B2 (en) 2014-06-18 2017-04-18 Nuance Communications, Inc. Methods and apparatus for training an artificial neural network for use in speech recognition
EP3195522B1 (en) 2014-08-01 2019-08-21 National ICT Australia Limited Generating shares of secret data
US9984337B2 (en) 2014-10-08 2018-05-29 Nec Corporation Parallelized machine learning with distributed lockless training
WO2016134380A1 (en) 2015-02-20 2016-08-25 Pristine Machine, LLC Method to split data operational function among system layers
US9813234B2 (en) 2015-05-11 2017-11-07 The United States of America, as represented by the Secretery of the Air Force Transferable multiparty computation
WO2016187315A1 (en) 2015-05-19 2016-11-24 Cryptomove, Inc. Security via data concealment
US10110566B2 (en) * 2015-07-21 2018-10-23 Baffle, Inc. Systems and processes for executing private programs on untrusted computers
US10474951B2 (en) 2015-10-23 2019-11-12 Nec Corporation Memory efficient scalable deep learning with model parallelization
US10791123B2 (en) * 2015-11-25 2020-09-29 Yaron Gvili Selectivity in privacy and verification with applications
US9646043B1 (en) 2015-11-25 2017-05-09 International Business Machines Corporation Combining data matches from multiple sources in a deduplication storage system
US10095552B2 (en) * 2016-02-05 2018-10-09 Sas Institute Inc. Automated transfer of objects among federated areas
WO2017141517A1 (ja) * 2016-02-17 2017-08-24 ソニー株式会社 情報処理方法および情報処理装置
GB201607713D0 (en) 2016-05-03 2016-06-15 Imagination Tech Ltd Convolutional neural network
US20170359321A1 (en) 2016-06-13 2017-12-14 Microsoft Technology Licensing, Llc Secure Data Exchange
US10755172B2 (en) 2016-06-22 2020-08-25 Massachusetts Institute Of Technology Secure training of multi-party deep neural network
EP3483791A4 (en) 2016-07-11 2020-03-18 UEI Corporation CALCULATION SYSTEM USING A HIERARCHICAL NETWORK
US20180039884A1 (en) * 2016-08-03 2018-02-08 Barnaby Dalton Systems, methods and devices for neural network communications
US20180129900A1 (en) 2016-11-04 2018-05-10 Siemens Healthcare Gmbh Anonymous and Secure Classification Using a Deep Learning Network
CN108122027B (zh) 2016-11-29 2021-01-12 华为技术有限公司 一种神经网络模型的训练方法、装置及芯片
US20180157972A1 (en) 2016-12-02 2018-06-07 Apple Inc. Partially shared neural networks for multiple tasks
US10523665B2 (en) 2017-02-03 2019-12-31 Wyse Technology L.L.C. Authentication on thin clients using independent devices
WO2018188023A1 (en) 2017-04-13 2018-10-18 Siemens Healthcare Diagnostics Inc. Methods and apparatus for determining label count during specimen characterization
JP6355800B1 (ja) 2017-06-28 2018-07-11 ヤフー株式会社 学習装置、生成装置、学習方法、生成方法、学習プログラム、および生成プログラム
KR102667837B1 (ko) 2017-08-30 2024-05-21 인퍼, 인코포레이티드 고정밀 프라이버시 보호 실가 함수 평가
US11195099B2 (en) 2017-09-01 2021-12-07 Facebook, Inc. Detecting content items in violation of an online system policy using semantic vectors
CN111133719B (zh) 2017-09-29 2024-01-26 罗伯特·博世有限公司 用于利用spdz的更快速的安全多方内积计算的方法
CN107832839B (zh) 2017-10-31 2020-02-14 南京地平线机器人技术有限公司 执行卷积神经网络中的运算的方法和装置
US11316676B2 (en) 2017-11-29 2022-04-26 Nippon Telegraph And Telephone Corporation Quantum-proof multiparty key exchange system, quantum-proof multiparty terminal device, quantum-proof multiparty key exchange method, program, and recording medium
US10460234B2 (en) 2018-01-19 2019-10-29 Microsoft Technology Licensing, Llc Private deep neural network training
US10592012B2 (en) 2018-02-07 2020-03-17 Mark Gordon Arnold Five-rectangle method for dispatching touch events from motion-disabled users
US20190286973A1 (en) * 2018-03-14 2019-09-19 Microsoft Technology Licensing, Llc Hardware accelerated neural network subgraphs
US11816226B2 (en) 2018-03-22 2023-11-14 Via Science, Inc. Secure data processing transactions
WO2019190886A1 (en) 2018-03-29 2019-10-03 The Regents Of The University Of California Digital watermarking of machine learning models
US10728091B2 (en) 2018-04-04 2020-07-28 EMC IP Holding Company LLC Topology-aware provisioning of hardware accelerator resources in a distributed environment
CN110622165B (zh) 2018-04-19 2023-05-30 谷歌有限责任公司 用于确定隐私集交集的安全性措施
US10902302B2 (en) 2018-04-23 2021-01-26 International Business Machines Corporation Stacked neural network framework in the internet of things
US20210406386A1 (en) 2018-05-28 2021-12-30 Royal Bank Of Canada System and method for multiparty secure computing platform
US11934540B2 (en) 2018-05-28 2024-03-19 Royal Bank Of Canada System and method for multiparty secure computing platform
US11201734B2 (en) 2018-06-04 2021-12-14 Robert Bosch Gmbh Method and system for fault tolerant and secure multiparty computation with SPDZ
US11575500B2 (en) * 2018-07-25 2023-02-07 Sap Se Encrypted protection system for a trained neural network
US11444779B2 (en) 2018-08-02 2022-09-13 Paypal, Inc. Techniques for securing application programming interface requests using multi-party digital signatures
US11824882B2 (en) 2018-08-13 2023-11-21 Ares Technologies, Inc. Systems, devices, and methods for determining a confidence level associated with a device using heuristics of trust
US11403303B2 (en) 2018-09-07 2022-08-02 Beijing Bytedance Network Technology Co., Ltd. Method and device for generating ranking model
EP3640856A1 (en) 2018-10-19 2020-04-22 Fujitsu Limited A method, apparatus and computer program to carry out a training procedure in a convolutional neural network
US10833871B2 (en) 2018-11-08 2020-11-10 Unbound Tech Ltd. System and method for deterministic signing of a message using a multi-party computation (MPC) process
US11042611B2 (en) 2018-12-10 2021-06-22 XNOR.ai, Inc. Digital watermarking of machine-learning models
US11494626B2 (en) 2018-12-13 2022-11-08 Sri International Runtime-throttleable neural networks
US11195067B2 (en) 2018-12-21 2021-12-07 Ambient AI, Inc. Systems and methods for machine learning-based site-specific threat modeling and threat detection
US11620403B2 (en) 2019-01-11 2023-04-04 Experian Information Solutions, Inc. Systems and methods for secure data aggregation and computation
US20220012672A1 (en) 2019-02-08 2022-01-13 My Job Matcher, Inc. D/B/A Job.Com Systems and methods for score genration for applicant tracking
US20200265301A1 (en) 2019-02-15 2020-08-20 Microsoft Technology Licensing, Llc Incremental training of machine learning tools
US20200342288A1 (en) 2019-04-23 2020-10-29 Microsoft Technology Licensing, Llc Direct computation with compressed weight in training deep neural network
US11823121B2 (en) 2019-04-25 2023-11-21 Inxeption Corporation Systems and methods for processing, securing, and communicating industrial commerce transactions
US11568257B2 (en) 2019-05-20 2023-01-31 Vmware, Inc. Secure cloud-based machine learning without sending original data to the cloud
US11238167B2 (en) 2019-06-14 2022-02-01 Sap Se Secure sublinear time differentially private median computation
US11487902B2 (en) 2019-06-21 2022-11-01 nference, inc. Systems and methods for computing with private healthcare data
WO2020257783A1 (en) 2019-06-21 2020-12-24 nference, inc. Systems and methods for computing with private healthcare data
US20220051276A1 (en) 2019-07-11 2022-02-17 Enzo Zelocchi Data Analytics System, Method and Program Product for Processing Health Insurance Claims and Targeted Advertisement-Based Healthcare Management
US11010929B2 (en) 2019-07-30 2021-05-18 Hewlett Packard Enterprise Development Lp Image compression with bounded deep neural network perception loss
US11755743B2 (en) 2019-09-03 2023-09-12 Microsoft Technology Licensing, Llc Protecting machine learning models from privacy attacks
US20210142177A1 (en) 2019-11-13 2021-05-13 Nvidia Corporation Synthesizing data for training one or more neural networks
US11308205B2 (en) 2019-11-15 2022-04-19 Bank Of America Corporation Security tool for preventing internal data breaches
US11893111B2 (en) 2019-11-26 2024-02-06 Harman International Industries, Incorporated Defending machine learning systems from adversarial attacks
US10924460B2 (en) 2019-12-13 2021-02-16 TripleBlind, Inc. Systems and methods for dividing filters in neural networks for private data computations
US11239996B2 (en) 2019-12-18 2022-02-01 International Business Machines Corporation Weighted partial matching under homomorphic encryption
US11954186B2 (en) 2019-12-20 2024-04-09 Cambrian Designs, Inc. System and method for effectuating data countermeasures
US20210266170A1 (en) 2020-02-26 2021-08-26 Antonio Rossi System and method of trustless confidential positive identification and de-anonymization of data using blockchain
US11552785B2 (en) 2020-04-02 2023-01-10 Epidaurus Health, Inc. Methods and systems for a synchronized distributed data structure for federated machine learning
US20210350357A1 (en) 2020-04-30 2021-11-11 Intelli Network Corporation System and method for participant vetting and resource responses
US11755998B2 (en) 2020-05-18 2023-09-12 International Business Machines Corporation Smart data annotation in blockchain networks
US20210374502A1 (en) 2020-06-01 2021-12-02 Nvidia Corporation Technique to perform neural network architecture search with federated learning
US11658815B2 (en) 2020-08-03 2023-05-23 Coinbase Il Rd Ltd. System and method for performing key operations during a multi-party computation process
US20210117578A1 (en) 2020-12-23 2021-04-22 Intel Corporation Apparatus, systems, and methods to protect hardware and software
US20220247548A1 (en) 2021-02-01 2022-08-04 Sap Se Efficient distributed privacy-preserving computations

Also Published As

Publication number Publication date
EP4062620A1 (en) 2022-09-28
CA3159677A1 (en) 2021-06-17
US20200226470A1 (en) 2020-07-16
US11895220B2 (en) 2024-02-06
US11363002B2 (en) 2022-06-14
US20200286145A1 (en) 2020-09-10
EP4062326A1 (en) 2022-09-28
WO2021119367A1 (en) 2021-06-17
US20210194858A1 (en) 2021-06-24
US20220311750A1 (en) 2022-09-29
KR20220116455A (ko) 2022-08-23
KR20220113714A (ko) 2022-08-16
CA3159667A1 (en) 2021-06-17
WO2021119365A1 (en) 2021-06-17
JP2023506238A (ja) 2023-02-15
US11582203B2 (en) 2023-02-14
US20200228313A1 (en) 2020-07-16
US20230198741A1 (en) 2023-06-22
US10924460B2 (en) 2021-02-16
US20200220851A1 (en) 2020-07-09
EP4062326A4 (en) 2023-01-04
EP4062620A4 (en) 2023-01-04

Similar Documents

Publication Publication Date Title
US11895220B2 (en) Systems and methods for dividing filters in neural networks for private data computations
US20220092216A1 (en) Privacy-preserving machine learning in the three-server model
US11222138B2 (en) Privacy-preserving machine learning in the three-server model
Liu et al. Oblivious neural network predictions via minionn transformations
Malekzadeh et al. Dopamine: Differentially private federated learning on medical data
CN110059501B (zh) 一种基于差分隐私的安全外包机器学习方法
CN113065145B (zh) 一种基于秘密共享和随机扰动的隐私保护线性回归方法
Paul et al. Privacy-preserving collective learning with homomorphic encryption
Chao et al. CaRENets: Compact and resource-efficient CNN for homomorphic inference on encrypted medical images
Imakura et al. Non-readily identifiable data collaboration analysis for multiple datasets including personal information
CN113849828B (zh) 经处理的数据的匿名生成和证明
Adjei-Mensah et al. Cov-Fed: Federated learning-based framework for COVID-19 diagnosis using chest X-ray scans
Chen et al. Fed-EINI: an efficient and interpretable inference framework for decision tree ensembles in federated learning
Tang et al. IHVFL: a privacy-enhanced intention-hiding vertical federated learning framework for medical data
US12019704B2 (en) Systems and methods for encrypting data and algorithms
Liu et al. PE-HEALTH: Enabling fully encrypted CNN for health monitor with optimized communication
Sun et al. A novel privacy-preserving deep learning scheme without a cryptography component
Sun et al. A Novel Privacy-Preserving Deep Learning Scheme without Using Cryptography Component
US20240073012A1 (en) Method and system for generating cryptographic keys associated with biological extraction data
Deshmukh et al. A survey on privacy preserving data mining techniques for clinical decision support system
US20230306254A1 (en) Systems and methods for quantifying data leakage from a split layer
US20230044776A1 (en) Privacy preserving artificial intelligence based clinical decision support
Rodriguez et al. An Autoencoder-Based Image Anonymization Scheme for Privacy Enhanced Deep Learning
Ramkumar et al. An Experiment to Develop an Enhanced Medical Image Security by using Deep Learning Assisted Crypto Policy
Lu Privacy Preserving Data Mining For Horizontally Distributed Medical Data Analysis

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231208