KR20220116455A - 데이터 및 알고리즘의 인코딩을 위한 시스템 및 방법 - Google Patents

데이터 및 알고리즘의 인코딩을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20220116455A
KR20220116455A KR1020227020594A KR20227020594A KR20220116455A KR 20220116455 A KR20220116455 A KR 20220116455A KR 1020227020594 A KR1020227020594 A KR 1020227020594A KR 20227020594 A KR20227020594 A KR 20227020594A KR 20220116455 A KR20220116455 A KR 20220116455A
Authority
KR
South Korea
Prior art keywords
subset
algorithm
data
algorithms
provider
Prior art date
Application number
KR1020227020594A
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 KR20220116455A publication Critical patent/KR20220116455A/ko

Links

Images

Classifications

    • G06N3/0454
    • 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
    • G06N3/0481
    • 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)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Algebra (AREA)
  • Medical Informatics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Biodiversity & Conservation Biology (AREA)

Abstract

데이터 및 그 데이터에 대해 동작하는 알고리즘 양자에 대한 프라이버시를 달성하기 위한 시스템들, 방법들, 및 컴퓨터 판독가능 매체들. 시스템은 알고리즘 제공자로부터 알고리즘을 수신하고, 데이터 제공자로부터 데이터를 수신하는 단계, 알고리즘을 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트로 분할하고, 데이터를 제1 데이터 서브세트 및 제2 데이터 서브세트로 분할하는 단계, 제1 알고리즘 서브세트 및 제1 데이터 서브세트를 알고리즘 제공자에 발송하고, 제2 알고리즘 서브세트 및 제2 데이터 서브세트를 데이터 제공자에 발송하는 단계, 제1 알고리즘 서브세트 및 제1 데이터 서브세트에 기초하여 알고리즘 제공자로부터 제1 부분 결과를 수신하고, 제2 알고리즘 서브세트 및 제2 데이터 서브세트에 기초하여 데이터 제공자로부터 제2 부분 결과를 수신하는 단계, 및 제1 부분 결과 및 제2 부분 결과에 기초하여 조합된 결과를 결정하는 단계를 수반할 수 있다.

Description

데이터 및 알고리즘의 인코딩을 위한 시스템 및 방법
관련 출원 상호 참조
본 출원은 2020년 3월 24일에 출원된 미국 정규 출원 제16/828,085호에 대한 우선권을 주장하며, 이는 발명의 명칭이 "Systems and Methods for Encryption"인, 2019년 12월 13일에 출원된 미국 가출원 제62/948,105호에 대한 우선권을 주장하며, 이의 개시는 본원에 원용된다.
관련 출원들
본 개시는 각각 2020년 3월 24일에 출원된 출원 제16/828,216호(참조 번호 213-0101), 출원 제16/828,354호(참조 번호 213-0102) 및 제16/82,420호(213-0103)에 관한 것이며, 이들 각각은 본원에 원용된다.
기술분야
본 기술은 데이터, 알고리즘들, 뉴트럴 네트워크들, 및 다른 정보를 암호화하는 것 및 나뉘거나 암호화된 데이터에 대한 복잡한 동작들을 정확하고 보다 더 율으로 수행하는 것에 관한 것이다.
한 개인, 엔티티 또는 회사가 다른 개인, 엔티티 또는 회사와 상호작용할 수 있는 수많은 상황들이 있다. 이러한 상황들에서, 과제, 프로젝트, 또는 작업을 하기 위해, 제1 엔티티가 제2 엔티티와 정보를 교환하고 제2 엔티티가 제1 엔티티와 정보를 교환할 필요가 있을 수 있다. 그러나, 제1 엔티티는 제2 엔티티가 그의 정보를 볼 수 있는 것을 제한하기를 원할 수 있는데, 그 이유는 그것이 전용 정보를 포함할 수 있기 때문이다. 또한, 제2 엔티티는 제1 엔티티가 그의 정보를 볼 수 있는 것을 제한하기를 원할 수 있는데, 그 이유는 그것이 전용 정보를 포함할 수 있기 때문이다.
본 개시의 위에서 인용된 그리고 다른 이점들 및 특징들이 얻어질 수 있는 방식을 설명하기 위해, 위에서 간략히 설명된 원리들에 대한 보다 더 구체적인 설명이 첨부된 도면들에 도시된 특정 실시예들을 참조하여 제공될 것이다. 이들 도면들은 본 개시의 예시적인 실시예들만을 도시하고, 이에 따라 이의 범위를 제한하는 것으로 간주되어서는 안 된다는 것을 이해하면서, 본원의 원리들은 첨부 도면들을 사용하여 부가적으로 구체적이고 상세하게 기술되고 설명된다.
도 1은 다양한 실시예들에 따른, 예시적인 컴퓨팅 환경을 도시한다;
도 2는 다양한 실시예들에 따른, 데이터 제공자 및 알고리즘 제공자를 도시한다;
도 3은 다양한 실시예들에 따른, 데이터를 분할하는 데이터 제공자 및 알고리즘을 분할하는 알고리즘 제공자를 도시한다;
도 4a는 다양한 실시예들에 따른, 데이터 제공자 및 알고리즘 제공자가 알고리즘을 공동으로 컴퓨팅하는 것을 도시한다;
도 4b는 데이터 제공자와 알고리즘 제공자 사이의 정보의 통신을 도시한다;
도 4c는 알고리즘 제공자, 데이터 제공자와 종합자 사이의 데이터의 통신을 도시한다;
도 4d는 보안 다자간 계산 접근법의 적용을 포함하는 알고리즘 제공자, 데이터 제공자와 종합자 사이의 데이터의 통신을 도시한다;
도 5는 다양한 실시예들에 따른, 다수의 데이터 제공자들 및 다수의 알고리즘 제공자들을 도시한다;
도 6은 다양한 실시예들에 따른, 알고리즘과 연관된 예시적인 회로를 도시한다;
도 7은 다양한 실시예들에 따라, 은닉된 회로로 변환되는 예시적인 알고리즘을 도시한다;
도 8은 다양한 실시예들에 따른, 제1 분할 및 제2 분할로 분할된 은닉된 회로를 도시한다;
도 9a는 알고리즘에 데이터를 제공하는 데이터 제공자로부터의 알고리즘을 은닉하거나 암호화하고, 데이터에 대해 동작하는 알고리즘을 제공하는 알고리즘 제공자로부터의 데이터를 은닉하거나 암호화하는 예시적인 방법을 도시한다;
도 9b는 다른 예시적인 방법을 도시한다;
도 9c는 비버 세트들의 사용에 관련된 또 다른 예시적인 방법을 도시한다;
도 9d는 다른 예시적인 방법을 도시한다;
도 10은 예시적인 뉴트럴 네트워크를 도시한다;
도 11은 뉴트럴 네트워크 상에서 사용되는 다양한 계층들의 다른 예를 도시한다;
도 12는 뉴트럴 네트워크에서 필터들을 사용하는 것과 연관된 예시적인 방법을 도시한다; 그리고
도 13은 다양한 실시예들에 따른 예시적인 컴퓨팅 디바이스를 도시한다.
본 발명의 다양한 실시예들이 아래에서 상세히 논의된다. 특정 구현들이 논의되지만, 이는 예시의 목적들을 위해 행해진다는 것이 이해되어야 한다. 당업자는 다른 구성요소들 및 구성들이 본 개시의 사상 및 범위로부터 벗어나지 않고 사용될 수 있다는 것을 인식할 것이다.
개요
본 개시의 추가적인 특징들 및 이점들은 다음의 설명에서 설명될 것이고, 부분적으로는 설명으로부터 명백할 것이며, 또는 본원에 개시된 원리들의 실시에 의해 학습될 수 있다. 본 발명의 특징들 및 이점들은 첨부된 청구항들에서 특별히 지적된 기구들 및 조합들에 의해 실현되고 획득될 수 있다. 본 개시의 이들 및 다른 특징들은 다음의 설명 및 첨부된 청구항들로부터 더 완전히 명백해질 것이고, 또는 본원에 설명된 원리들의 실시에 의해 학습될 수 있다.
본원에서는 데이터, 알고리즘들, 뉴트럴 네트워크들, 및 다른 정보를 암호화하고 나뉘거나 암호화된 데이터에 대한 복잡한 동작들을 정확하고 보다 더 효율적으로 수행하기 위한 시스템들, 방법들, 및 컴퓨터 판독가능 매체가 개시된다. 적어도 하나의 예에 따르면, 데이터 및 데이터에 대해 동작하는 알고리즘 양자에 대한 프라이버시를 달성하기 위한 시스템이 개시된다. 시스템은 메모리 및 메모리에 의해 저장된 명령들을 실행하기 위한 적어도 하나의 처리기를 포함하는 적어도 하나의 컴퓨팅 디바이스일 수 있다. 적어도 하나의 컴퓨팅 디바이스는 알고리즘 제공자로부터 알고리즘을 수신할 수 있고 데이터 제공자로부터 데이터를 수신할 수 있다. 알고리즘은 알고리즘 제공자에 의해 제공된 알고리즘의 리스트로부터 선택될 수 있고, 데이터는 데이터베이스로부터 데이터 제공자에 의해 검색될 수 있다. 데이터베이스는 디스크, RAM, 캐시 등과 같은 임의의 유형의 메모리로부터 액세스될 수 있다. 또한, 컴퓨팅 디바이스는 알고리즘을 암호화하고 데이터를 암호화할 수 있다. 일 예에서, 컴퓨팅 디바이스는 알고리즘 제공자와 연관된 컴퓨팅 디바이스일 수 있다. 다른 예에서, 컴퓨팅 디바이스는 데이터 제공자와 연관된 컴퓨팅 디바이스일 수 있다. 추가적인 예에서, 컴퓨팅 디바이스는 제3자 컴퓨팅 디바이스일 수 있고, 알고리즘 제공자 또는 데이터 제공자와 연관되지 않을 수 있다.
다음은 데이터에 대해 동작할 알고리즘이 적어도 2개의 서브부분들로 분할 또는 분할될 수 있는 방법을 설명한다. 데이터는 서브부분들로 분할될 수 있다. 알고리즘 서브부분 연산은 알고리즘 제공자와 데이터 제공자 사이의 프라이버시를 보존하기 위한 데이터 서브부분에 대한 연산이다. 알고리즘을 분할하는 프로세스 및 후속하는 처리는 다수의 상이한 방식으로 달성될 수 있다. 예를 들어, 알고리즘은 부울 논리 게이트 세트로 변환될 수 있거나, 뉴트럴 네트워크 또는 대수 또는 비-부울 회로로 표현될 수 있다. 이들 다양한 접근법들 각각은 새로운 방식으로 알고리즘들을 통해 데이터를 처리하는 더 일반적인 아이디어에 적용된다.
적어도 하나의 컴퓨팅 디바이스는 알고리즘을 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트로 분할할 수 있고, 데이터를 제1 데이터 서브세트와 제2 데이터 서브세트로 분리할 수 있다. 적어도 하나의 컴퓨팅 디바이스는 제1 알고리즘 서브세트 및 제1 데이터 서브세트를 알고리즘 제공자에게 발송할 수 있고, 제2 알고리즘 서브세트와 제2 데이터 서브세트를 데이터 제공자에게 보낼 수 있다. 다음으로, 적어도 하나의 컴퓨팅 디바이스는 제1 알고리즘 서브세트 및 제1 데이터 서브세트에 기초하여 알고리즘 제공자로부터 제1 부분 결과를 수신할 수 있고, 제2 알고리즘 서브세트에 기초하여 데이터 제공자로부터 제2 부분 결과들을 수신할 수 있다. 적어도 하나의 컴퓨팅 디바이스는 제1 부분 결과 및 제2 부분 결과에 기초하여 조합된 결과를 결정할 수 있다.
다른 예에서, 알고리즘과 연관된 부울 논리 게이트 세트가 존재할 수 있다. 알고리즘은 부울 논리 게이트 세트로 변환될 수 있다. 컴퓨팅 디바이스는 제1 알고리즘 서브세트를 부울 논리 게이트 세트로부터의 제1 부울 논리 게이트 서브세트로 변환할 수 있고, 제2 알고리즘 서브세트를 부울 논리 게이트 세트에서의 제2 부울 논리 게이트 서브세트로 변환할 수 있다.이것은 비-뉴런 네트워크에 사용되는 접근법이다. 원래의 부울 논리 게이트 서브세트(들)는 AND 게이트들 및 XOR 게이트들을 포함할 수 있고, 서브세트들은 단지 할당된 인코딩의 공유분들이다. 예를 들어, 시스템이 AND 게이트들을 1, 1로 인코딩하면, 제1 서브세트는 0, 1일 수 있고, 제2 서브세트는 1, 0일 수 있다. 본원에서 논의되는 바와 같이, 알고리즘 제공자는 적어도 하나의 제1 컴퓨팅 디바이스를 포함할 수 있고, 데이터 제공자는 하나 이상의 제2 컴퓨팅 디바이스를 포함할 수 있다. 일 예에서, 조합된 결과는 데이터 제공자에게 발송될 수 있고, 데이터 제공자는 조합된 결과의 표현을 디스플레이할 수 있다. 다른 예에서, 조합된 결과는 알고리즘 제공자에게 발송될 수 있고, 알고리즘 제공자는 조합된 결과의 표현을 디스플레이할 수 있다. 다른 예에서, 조합된 결과는 다른 컴퓨팅 디바이스로 발송될 수 있고, 다른 컴퓨팅 디바이스는 조합된 결과의 표현을 디스플레이할 수 있다.
뉴트럴 네트워크들에 대해, 본 개시는 가중치들에 따라 알고리즘을 분할하는 개념을 도입하고, 부울 논리 게이트 세트는 네트워크의 구조로 대체된다. 본질적으로, 뉴트럴 네트워크는(비-부울) 회로 자체로서 취급된다. 다른 양태에서, 개념은(그것의 단지 부울 논리 게이트 세트 분해보다는) 알고리즘의 대수 분해로 일반화될 수 있다. 예를 들어, 뉴트럴 네트워크의 경우에, 시스템은 뉴트럴 네트워크의 노드들의 아키텍처를 그 자신의 회로로서 취급할 수 있고, 노드들은 게이트들을 나타내고 이들 사이의 접속들은 와이어들을 나타낸다. 본 발명은 또한 순수하게 대수 구조들로 알고리즘을 표현하는 것을 포함한다. 이에 따라, 알고리즘은 3가지 방식(회로, 뉴트럴 네트워크, 대수 구조)으로 표현될 수 있다. 알고리즘들은 다른 구조들로서 또한 변환되거나 표현될 수 있다는 것이 추가로 고려된다. 본 개시는 알고리즘을 표현하는 열거된 3가지 방식으로 제한되지 않는다.
다른 예에서, 데이터 및 데이터에 대해 동작하는 알고리즘 모두에 대한 프라이버시를 달성하기 위한 방법이 제공된다.이 방법은 적어도 하나의 처리기에 의해, 알고리즘 제공자로부터 알고리즘을 수신하는 단계, 적어도 하나의 프로세스에 의해, 데이터 제공자로부터 데이터를 수신하는 단계; 적어도 하나의 처리기들에 의해, 알고리즘을 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트로 분할하는 단계; 제1 데이터 서브세트와 제2 데이터 서브세트로 데이터를 나누는 단계; 알고리즘 제공자에게 제1 알고리즘 서브세트를 발송하는 단계; 데이터 제공자에게 제2 알고리즘 서브세트를 발송하는 단계를 포함할 수 있다.
예시적인 시스템은 하나 이상의 처리기 및 컴퓨터 명령어를 저장하는 컴퓨터 판독가능 저장 디바이스를 포함할 수 있으며, 컴퓨터 명령어는 적어도 하나의 처리기에 의해 실행될 때 처리기로 하여금, 알고리즘 제공자로부터 알고리즘을 수신하는 것, 데이터 제공자로부터 데이터를 수신하는 것과, 알고리즘을 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트로 분할하는 것과, 데이터를 제1 데이터 서브세트와 제2 데이터 서브세트로 나누는 것과, 제1 알고리즘 서브세트와 제1 데이터 서브세트를 알고리즘 제공자에게 발송하는 것을 포함하는 동작을 수행하게 한다. 동작들은 제2 알고리즘 서브세트 및 제2 데이터 서브세트를 데이터 제공자에게 발송하는 것, 제1 알고리즘 서브세트와 제1 데이터 서브세트에 기초하여 알고리즘 제공자로부터 제1 부분 결과를 수신하는 것, 그리고 제2 알고리즘 서브세트에 기초하여 데이터 제공자로부터 제2 부분 결과를 수신하기 위한 것, 및 제1 부분 결과와 제2 부분 결과에 기초하여 조합 결과를 결정하기 위한 것을 더 포함한다.
다른 예에서, 데이터 및 데이터에 대해 동작하는 알고리즘 양자에 대한 프라이버시를 달성하기 위한 비일시적 컴퓨터 판독가능 저장 매체가 제공된다. 비일시적 컴퓨터 판독가능 저장 매체는 하나 이상의 처리기들에 의해 실행될 때, 하나 이상의 처리기들로 하여금 이전에 설명된 방법 및/또는 동작들을 수행하게 하는 명령들을 저장할 수 있다.예를 들어, 명령들은 하나 이상의 처리기들로 하여금, 알고리즘 제공자로부터 알고리즘을 수신하게 하고, 데이터 제공자로부터 데이터를 수신하게 하며, 알고리즘을 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트로 분할하게 하고, 데이터를 제1 데이터 서브세트와 제2 데이터 서브세트로 분배하게 하며, 제1 알고리즘 서브세트 및 첫 번째 데이터 서브세트를 알고리즘 제공자에게 송신하게 하고, 제2 알고리즘 서브세트 및 두번째 데이터 서브세트를 데이터 제공자에게 송신하게 하며, 첫번째 알고리즘 서브세트와 첫번째 데이터 서브세트에 기초하여 알고리즘 제공자로부터 제1 부분 결과를 수신하게 하고 그리고 두번째 알고리즘 서브세트와 두번째 데이터 서브세트에 기초하여 데이터 제공자로부터 제2 부분 결과를 수신하게 하며, 그리고 첫번째 부분 결과 및 두번째 부분 결과에 기초하여 조합된 결과를 결정하게 할 수 있다
또 다른 예시적인 방법은 적어도 하나의 처리기에 의해, 알고리즘 제공자로부터 알고리즘을 수신하는 단계, 적어도 하나의 프로세스에 의해, 데이터 제공자로부터 데이터를 수신하는 단계; 적어도 하나의 처리기들에 의해, 알고리즘을 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트로 분할하는 단계; 및 적어도 하나의 처리기에 의해, 데이터를 제1 데이터 서브세트 및 2 데이터 서브세트로 나누는 단계를 포함한다. 방법은 적어도 하나의 처리기에 의해, 제1 알고리즘 서브세트 및 제1 데이터 서브세트를 처리하는 단계, 및 적어도 하나의 처리기들에 의해, 제2 알고리즘 서브세트와 제2 데이터 서브세트를 처리하는 단계를 포함할 수 있다. 이 방법은 또한, 적어도 하나의 처리기에 의해, 제1 알고리즘 서브세트 및 제1 데이터 서브세트에 기초하여 제1 부분 결과를 수신하는 단계, 및 제2 알고리즘 서브세트와 제2 데이터 서브세트에 기초한 제2 부분 결과를 수신하고, 그리고 적어도 하나의 처리기들에 의해, 제1 부분 결과 및 제2 부분 결과에 기초하여 조합된 결과를 결정하는 단계를 포함할 수 있다.
본 개시의 다른 양태는 알고리즘 서브세트들에 의해 데이터 서브세트들을 처리할 때 추가적인 효율을 제공하는 것에 관한 것이다. 알고리즘은 두 부분으로 분할되어 트랜잭션에서 두 당사자 사이에 분배된다. 제어 비트는 회로의 실제 최종 평가가 무엇인지를 궁극적으로 해독하는 상이한 데이터 서브세트 및 알고리즘 서브세트에 대한 계산을 수행하는 2개의 상이한 스폿 또는 위치 사이에서 사용될 것이다.
본원에 개시된 하나의 접근법은 비버 세트들을 이용하여 사전 처리 단계들로 이동시킴으로써 더 적은 통신 홉들과의 승산들을 허용한다. 비버 세트는 계산시(예를 들어, 알고리즘이 암호화 및/또는 분배된 후)에 이용되어, 장치 또는 계산이 발생하는 상이한 위치 사이의 교환량을 축소시킨다. 이 접근법은 교환이 필요하기 전에 더 많은 계산들이 더 빨리 수행될 수 있게 한다. 이 접근법은 뉴트럴 네트워크의 다양한 계층들에서의 필터들의 맥락에서 설명된다.
예시적인 방법은 하나 이상의 컴퓨팅 디바이스들을 통해, 뉴트럴 네트워크의 제1 계층 내의 복수의 필터들을 제1 세트의 필터들 및 제2 세트의 필터들로 분할하는 단계, 하나 이상의 컴퓨팅 디바이스들을 통해 제1 세트 필터들의 각각을 뉴트럴 네트워크의 입력에 적용하여 제1 출력 세트를 산출하는 단계, 및 제2 세트 필터들과 연관된 제2 출력 세트를 획득하는 단계를 포함하고, 제2 출력 세트는 뉴트럴 네트워크에 대한 제3 세트 필터들 각 적용에 기초한다. 복수의 필터들로부터의 동일한 필터에 대응하는 제1 세트의 필터들 및 제2 세트의 필터들 내의 필터들의 각 세트에 대해, 방법은 하나 이상의 컴퓨팅 디바이스들을 통해 그리고 뉴트럴 네트워크의 제2 계층에서, 필터들의 세트 내의 제1 필터와 연관된 출력들의 제1 세트 중 각자의 출력을 필터들의 세트의 제2 필터와 연관된 입력들의 제2 세트 중 각 출력과 집성하여 필터들의 제1 세트 및 필터들 제2 세트와 연관된 집성된 출력들의 세트를 산출하는 단계를 포함한다.
방법은 하나 이상의 컴퓨팅 디바이스들을 통해, 제1 세트의 가중치들 및 제2 세트의 가중치들을 산출하기 위해 뉴트럴 네트워크의 각 나머지 계층에서 활성화된 특정 뉴런들의 개개의 가중치들을 분할하는 단계를 더 포함하고, 특정 뉴런들은 집성된 출력들의 세트에 적용된 하나 이상의 활성화 함수들에 기초하여 활성화된다. 각 나머지 계층으로부터의 각 특정 뉴런에서, 그 방법은 하나 이상의 컴퓨팅 디바이스들을 통해, 각 특정한 뉴런과 연관된 개개의 필터 및 가중치들의 제1 세트로부터의 제1 대응하는 가중치를 적용하여, 제1 세트의 뉴런 출력들을 산출하는 단계, 특정한 뉴런들과 연관된 뉴런 출력들의 제2 세트를 획득하는 단계로서, 뉴런 출력들 중의 제2 세트는 가중치들의 제2 세트로부터의 제2 대응하는 가중치에 대한 각 특정한 뉴런과 연관된 각 필터의 적용에 기초하는 뉴런 출력의 제2 세트를 획득하는 단계, 각 특정 뉴런에 대해, 특정한 뉴런들과 연관된 집성된 뉴런 출력들을 산출하기 위해 특정한 뉴런세포와 연관된 뉴런 출력들의 제1 세트 중의 하나를 특정한 뉴런단백질과 연관된 뉴런출력들의 제2 세트 중의 하나와 집성하는 단계, 및 집성된 뉴런 출력들 중 하나 이상에 기초하여 뉴런 네트워크의 출력을 생성하는 단계를 포함한다. 방법은 식별된 단계들 중 임의의 하나 이상을 임의의 순서로 포함할 수 있다.
일 예에서, 비버 세트들(또는 유사한 수학적 구조들)의 사용은 알고리즘들 및 데이터를 분할하고 본원에 개시된 동작들을 수행하는데 필요한 계산들의 양을 축소시키기 위해 사용될 수 있다. 비버 세트들은 통상적으로 승산들을 안전하게 수행하기 위해 과거에 사용되었다. 본 개시는 더 적은 통신 홉들과의 승산들을 달성하기 위해 새로운 방식으로 비버 세트들을 적용함으로써 최신 기술을 확장한다. 비버 세트들은 일반적으로 승산들을 계산하기 위해 사용된다. 본 발명은 제산 및 지수 계산에 적용하기 위해 비버 세트의 사용을 확장한다. 예시적인 방법은 각 당사자 또는 엔티티가 알고리즘 서브세트를 수신하는 단계, 제1 당사자에 의해, 제1 알고리즘의 속성(또는 다른 인자들)에 기초하여 제1 비버 세트들의 2개의 공유분들을 생성하는 단계, 및 제2 당사자에 의해 제2 알고리즘 서브세트의 속성(또는 다른 인자)에 기초한 제2 비버 세트의 2개의 공유분들을 생성하고, 그 후 제1 데이터 서브세트를 제1 당사자에 제공하고 제2 데이터 서브세트를 제2 당사자에 제공하는 단계 및 제1 출력 서브세트를 획득하기 위해 제 그 후, 시스템은 최종 결과로서 제1 출력 서브세트와 제2 출력 서브세트를 조합한다.
이러한 간단한 도입은 청구된 주제의 핵심적인 또는 필수적인 특징들을 식별하기 위한 것이 아니며, 청구된 요지의 범위를 결정하기 위해 별개로 사용되도록 의도된 것도 아니다. 주제는 본 특허의 전체 명세서, 임의의 또는 모든 도면, 및 각 청구항의 적절한 부분을 참조하여 이해되어야 한다.
전술한 내용은 다른 특징들 및 실시예들과 함께, 다음의 명세서, 청구항들, 및 첨부 도면들을 참조하여 더 명백해질 것이다.
상세한 설명
개시된 기술은 데이터, 알고리즘들, 뉴트럴 네트워크들, 및 다른 정보를 암호화하고 나뉘거나 암호화된 데이터에 대한 복잡한 동작들을 정확하고 보다 더 효율적으로 수행하기 위한 시스템들, 방법들, 및 컴퓨터 판독가능 매체들을 수반한다. 본 기술은 다음과 같이 다음의 개시에서 설명될 것이다. 논의는 본 기술이 적용될 수 있는 일반적인 시나리오에 대한 도입 및 이후 다자간 계산의 개요로 시작한다.
본원에 개시된 개념들이 적용될 수 있는 하나의 예시적인 시나리오는 의료 상황이다. 개인 의료 데이터는 HIPAA(Health Insurance Portability and Accountability Act)와 같은 법률에 의해 보호된다. 일부 경우들에서, 컨볼루셔널 뉴럴 네트워크(convolutional neural network; CNN)들은 이미지들에서 패턴들을 식별하는데 유용하다. 환자는 심전도(EKG)가 평가될 필요가 있을 수 있다. 보통, CNN (알고리즘)은 환자의 식별로 이어질 수 있는 EKG 데이터를 "보는" 것이다. 다른 양태에서, 전용 CNN의 특성들은 또한 데이터를 제공하는 개인으로부터 획득될 수 있다. 기업은 환자 데이터가 식별되지 않도록 보호하기를 원할 뿐만 아니라, 전용 알고리즘들이 발견되지 않도록 보호하기를 원할 수도 있다. 본원에 개시된 개념들은 데이터 및 알고리즘 양자가 식별되지 않도록 보호하는 방식으로 알고리즘이 데이터에 대해 동작할 수 있게 한다. 본 개시는 아래에서 의료, 신용 카드, 보험 등과 같은 다양한 시나리들을 다루고 보다 더 충분히 제시할 것이다.
도 1에 도시된 바와 같은 예시적인 다자간 컴퓨팅 환경에 대한 설명, 및 도 2 내지 도 9b에 도시된 바와 같은 데이터 및 그 데이터에 대해 동작하는 알고리즘 양자에 대한 프라이버시를 달성하기 위한 예시적인 방법들 및 기술들에 대한 설명이 이어질 것이다. 도 9c 내지 도 12는 효율적인 방식으로 알고리즘들 및 데이터 양자에 대한 프라이버시를 달성하는 것과 관련된 컨볼루션 뉴트럴 네트워크들 및 다양한 방법들의 흐름도들을 포함하는 본원에 개시된 실시예들의 추가 도시들을 제공한다. 논의는 도 13에 도시된 바와 같이, 다자간 컴퓨팅 동작들을 수행하기에 적합한 예시적인 하드웨어 구성요소들을 포함하는 예시적인 컴퓨팅 디바이스 아키텍처의 설명으로 끝난다. 일 양태에서, 표준 또는 암호화되지 않은 알고리즘들은 또한 보안 다자간 계산으로 처리될 수 있다. 이는 본원에서 설명된 바와 같은 동형 암호화(homomorphic encryption), 보안 요소(하드웨어 기반 또는 기타)-기반 접근법들의 사용에 추가된다. 암호화된 표준 알고리즘들을 사용함으로써, 본 시스템은 동형 암호화되는(보안 다자간 계산을 사용하지 않는) 또는 심지어 보안 엔클레이브를 사용하는 데이터와 상호작용할 수 있다. 본 개시는 이제 다자간 계산의 도입 개요로 넘어간다.
도 1에 도시된 바와 같이, 본원에서의 접근법들은 데이터(108)를 알고리즘(106)에 제공하는 데이터 제공자(102)로부터 알고리즘(104)을 은닉하거나 암호화하고, 데이터(108)에 대해 동작하는 알고리즘(106)을 제공하는 알고리즘 제공자(102)로부터 데이터(108)를 은닉하거나 암호화하기 위한 시스템 및/또는 프로세스를 제공한다. 일부 예들에서, 알고리즘(106)은 알고리즘을 공동으로 실행하는 적어도 하나의 당사자 사이에 나뉘거나 분할될 수 있다. 또한, 일부 예들에서, 데이터(108)는 적어도 하나의 당사자 사이에 나뉘거나 분할될 수 있다. 일 양태에서, 통신 네트워크(110)는 데이터 제공자(102)와 알고리즘 제공자(104) 사이에 구성될 수 있다. 본원에서 논의되는 시스템은 데이터 및 그 데이터에 대해 동작하는 알고리즘들 양자에 대한 암호화에 의해 프라이버시를 달성할 수 있다. 예로서, 제1 당사자에 의해 제공되는 전용 알고리즘(106)은 제2 당사자로부터 비밀로 유지될 수 있고, 제2 당사자로부터의 전용 데이터(108)는 제1 당사자로부터 비밀로 유지될 수 있다. 다른 예에서, 제3 당사자가 수반될 수 있다.
예로서, 보안 다자간 계산(secure multi-party computation, MPC)은 각 데이터세트의 소유자 또는 고객이 어떠한 전용 정보도 획득하지 않고 2개의 데이터세트들에 대한 함수가 동작하게 할 수 있다. MPC는 다수의 암호화 툴들 및 전략들, 이를테면 비밀 공유에 기초한다. 예로서, 제1 당사자는 10과 같은 숫자를 나타내는 데이터를 소유할 수 있다. 숫자 10은 연산 6 더하기 4와 같은 다수의 숫자들을 사용하여 나타내어질 수 있다. 제2 당사자는 5와 같은 숫자를 나타내는 데이터를 소유할 수 있다. 숫자 5는 연산 7 더하기 -2와 같은 다수의 숫자들을 사용하여 나타내어질 수 있다. 예로서, 제1 당사자 및 제2 당사자는 데이터를 식별하지 않고, 덧셈과 같은 데이터에 대한 연산을 수행할 수 있다.
제1 당사자는 자신들의 데이터의 일부를 제2 당사자에게 발송할 수 있고, 제2 당사자는 자신들의 데이터의 일부를 제1 당사자에게 발송할 수 있다. 제1 당사자는 데이터를 나타내는 2개의 숫자들 중 하나, 예를 들어, 4를 제2 당사자에게 발송할 수 있다. 제2 당사자는 데이터를 나타내는 2개의 숫자들 중 하나, 예를 들어, 7을 제1 당사자에게 발송할 수 있다. 제1 당사자는 나머지 숫자, 예를 들어, 6과 제2 당사자로부터의 두 개의 숫자들 중 하나, 예를 들어, 7과 더해, 합계 13을 결정할 수 있다. 제2 당사자는 나머지 숫자, 예를 들어, -2와 제1 당사자로부터의 두 개의 숫자들 중 하나, 예를 들어, 4와 더해, 합계 2를 결정할 수 있다. 제1 당사자 또는 제2 당사자 중 어느 한 당사자는 합계들을 함께 더해 결과 15를 결정할 수 있다.
본원에서 논의되는 바와 같은 보안 다자간 계산은 예시적인 프로토콜에 기초하고, 아래에서 논의되는 시나리오들과 같은 다수의 시나리오들에서 다수의 이점들을 제공한다. 상술한 일 예에서, 의사는 심전도(EKG) 정보와 같은 환자와 연관된 데이터를 획득할 수 있다. 통상적으로, 의사는 EKG 정보를 분석했고, EKG 정보에서 임의의 이상이 있었는지 여부에 대해 진단했을 수 있다. 이상은 심방 세동과 같은 환자와 연관된 하나 이상의 병태가 존재함을 나타낼 수 있다. 이러한 결정을 내리는 것은 매우 어려울 수 있다. 그러나, 진단을 개선하기 위한 방식들이 존재하고, 각 환자는 각 진단을 서로 상이하게 만드는 특정 속성들을 가질 수 있다. 예로서, 환자의 연령, 환자의 성별, 및 다른 정보가 진단과 관련될 수 있다. 의사는 진단을 가능한 개선하기 위해 다자간 계산을 이용할 수 있다.
의사는 제1 당사자를 나타낼 수 있고, 데이터의 보다 더 심층적인 분석을 수행하기 위해 알고리즘에 액세스하는 제2 당사자와 통신하기를 원할 수 있다. 데이터는 환자와 연관된 식별 정보를 포함할 수 있다. 제2 당사자는 EKG 정보를 EKG 정보의 라이브러리와 비교함으로써 EKG 정보의 분석을 수행하고 환자와 연관된 이상이 있을 수 있는지 여부를 결정하는 알고리즘 홀더일 수 있다. CNN은 EKG 정보를 평가하기 위한 알고리즘일 수 있다. 예로서, 제2 당사자는 환자의 EKG 정보를 라이브러리 내의 EKG 정보의 각 인스턴스와 비교함으로써 이미지 분석을 수행할 수 있을 수 있다. 이는 의사가 EKG 정보를 EKG 정보의 라이브러리와 비교함으로써 보다 더 정확한 진단을 제공하게 할 수 있다. 다른 양태에서, EKG 정보의 분석을 위해 CNN을 제공하는 소유자 또는 엔티티는 자신들의 알고리즘에 관한 세부사항들이 개시되거나 공개되는 것을 원하지 않을 수 있다. 본원에서 개시되는 접근법은 데이터가 처리되는 동안 데이터 및 알고리즘 양자가 다른 당사자에게 식별가능하지 않도록 보호하는 특정 기술적 방식으로 알고리즘에 의해 데이터가 처리될 수 있게 한다.
상기의 예는 EKG 정보의 분석에 제한되지 않는다. 다른 예에서, 의사는 x-선, 자기 공명 영상(MRI) 영상, 컴퓨터 단층 촬영(CT) 스캔, 또는 다른 유형의 영상과 같은 환자를 나타내는 의료 영상을 획득할 수 있다. 의사는 의료 이미지를 획득하고 의료 이미지에 기초하여 진단을 수행하기를 원할 수 있다. 의사는 진단을 가능한 개선하기 위해 다자간 계산을 이용할 수 있다. 의사는 제1 당사자를 나타낼 수 있고, 데이터의 심층적인 분석을 수행하기 위해 알고리즘에 액세스하는 제2 당사자와 통신하기를 원할 수 있다. 예로서, 제2 당사자는 의료 이미지를 의료 이미지들의 라이브러리와 비교함으로써 의료 이미지의 분석을 수행하고 환자와 연관된 이상이 있을 수 있는지 여부를 결정하는 알고리즘 홀더일 수 있다. 알고리즘은 제시된 의료 데이터의 문제를 진단할 목적으로 다양한 의료 이미지들에 대해 훈련된 CNN 또는 기계 학습 또는 인공 지능 시스템일 수 있다. 본원에서 논의되는 시스템들 및 방법들은 의사가 환자의 프라이버시뿐만 아니라 알고리즘 홀더의 프라이버시를 유지하는 방식으로 의료 이미지를 알고리즘 홀더와 통신하게 할 수 있다. 환자와 연관된 식별 데이터 및 의료 이미지는 HIPAA-보호 데이터일 수 있다. 동일한 방식으로, 알고리즘 홀더는 알고리즘이 전용로 유지되도록 의사와 알고리즘을 공유하지 않고 의료 이미지에 대한 분석을 수행할 수 있다.
다른 예에서, 소매점은 신용 계좌를 개설하기 원하는 고객을 가질 수 있고, 고객은 이름, 주소, 및 사회 보장 번호와 같은 고객을 나타내는 고유 식별 정보와 같은 고객과 연관된 데이터를 제공하도록 요청받을 수 있다. 소매점은 제1 당사자일 수 있다. 소매점은 데이터를 분석할 수 있지만, 추가적인 정보 및 알고리즘들에 대한 액세스를 획득함으로써 데이터의 보다 더 완전한 분석을 수행하는 것이 가능할 수 있다. 소매점은 분석을 가능한 개선하기 위해 다자간 계산을 이용할 수 있다. 소매점은 고객 데이터의 심층 분석을 수행하고 신용 계좌를 개설할지 여부를 결정하기 위해 하나 이상의 알고리즘에 액세스하는 제2 당사자와 통신하기를 원할 수 있다. 본원에서 논의되는 시스템들 및 방법들은 소매점이 고객의 프라이버시를 유지하는 방식으로 고객 데이터를 알고리즘 홀더와 통신할 수 있게 할 수 있다. 동일한 방식으로, 알고리즘 홀더는 알고리즘이 전용로 유지되도록 소매점와 알고리즘을 공유하지 않고 고객 데이터에 대한 분석을 수행할 수 있다.
다른 예로서, 고객은 차량 보험 또는 재산 보험과 같은 보험에 가입하는 과정에 있을 수 있다. 고객은 이름, 주소, 및 사회 보장 번호와 같은 고객을 나타내는 고유 식별 정보와 같은 고객과 연관된 데이터를 제공하도록 요청받을 수 있다. 보험사는 제1 당사자일 수 있다. 보험사는 데이터를 분석할 수 있지만, 추가적인 정보 및 알고리즘들에 대한 액세스를 획득함으로써 데이터의 보다 더 완전한 분석을 수행하는 것이 가능할 수 있다. 보험사는 분석을 가능한 개선하기 위해 다자간 계산을 이용할 수 있다. 보험사는 고객 데이터의 심층 분석을 수행하고 고객에게 보험을 제공할지 여부를 결정하기 위해 하나 이상의 알고리즘에 액세스하는 제2 당사자와 통신하기를 원할 수 있다. 본원에서 논의되는 시스템들 및 방법들은 보험사가 고객의 프라이버시를 유지하는 방식으로 고객 데이터를 알고리즘 홀더와 통신할 수 있게 할 수 있다. 동일한 방식으로, 알고리즘 홀더는 알고리즘이 전용로 유지되도록 보험사와 알고리즘을 공유하지 않고 고객 데이터에 대한 분석을 수행할 수 있다.
상술된 바와 같이, 도 1은 일부 예들에 따른 예시적인 컴퓨팅 환경(100)을 도시한다. 도 1에 도시된 바와 같이, 예시적인 컴퓨팅 환경은 적어도 하나의 데이터 제공자 컴퓨팅 디바이스(102)를 포함할 수 있고, 적어도 하나의 알고리즘 제공자 컴퓨팅 디바이스(104)를 포함할 수 있다. 적어도 하나의 알고리즘 제공자 컴퓨팅 디바이스(104)는 하나 이상의 알고리즘(106)에 액세스할 수 있고/있거나 하나 이상의 알고리즘(106)과 연관된 정보를 저장할 수 있다. 적어도 하나의 데이터 제공자 컴퓨팅 디바이스(102)는 데이터(108)에 액세스할 수 있고/있거나 이를를 저장할 수 있다. 데이터(108)는 하나 이상의 데이터베이스에 저장될 수 있다. 적어도 하나의 데이터 제공자 컴퓨팅 디바이스(102)는 통신 네트워크(110)를 사용하여 적어도 하나의 알고리즘 제공자 컴퓨팅 디바이스(104)와 통신할 수 있다.
적어도 하나의 데이터 제공자 컴퓨팅 디바이스(102)는 통신 네트워크(110)를 통해 적어도 하나의 알고리즘 제공자 컴퓨팅 디바이스(104)로부터 데이터를 수신하고/하거나 이에 데이터를 송신하도록 구성된다. 적어도 하나의 데이터 제공자 컴퓨팅 디바이스(102)가 단일 컴퓨팅 디바이스로서 도시되지만, 적어도 하나의 데이터 제공자 컴퓨팅 디바이스(102)는 다수의 컴퓨팅 디바이스들을 포함할 수 있다.
통신 네트워크(110)는 인터넷, 인트라넷, 또는 다른 유선 또는 무선 통신 네트워크일 수 있다. 예를 들어, 통신 네트워크(110)는 GSM(Mobile Communications) 네트워크, CDMA(code division multiple access), 3GPP(3rd Generation Partnership Project), IP(Internet Protocol), WAP(wireless application protocol), WiFi 네트워크, 블루투스 네트워크, 위성 통신 네트워크, 또는 IEEE 802.11 표준 네트워크뿐만 아니라, 이들의 다양한 통신을 포함할 수 있다. 다른 종래의 및/또는 나중에 개발될 유선 및 무선 네트워크들이 또한 사용될 수 있다.
적어도 하나의 데이터 제공자 컴퓨팅 디바이스(102)는 데이터를 처리하는 적어도 하나의 처리기 및 데이터를 저장하는 메모리를 포함한다. 처리기는 통신을 처리하고, 통신을 구축하고, 메모리로부터 데이터를 검색하며, 메모리에 데이터를 저장한다. 처리기 및 메모리는 하드웨어이다. 메모리는 휘발성 및/또는 비휘발성 메모리, 예를 들어, 캐시와 같은 컴퓨터 판독가능 저장 매체, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리, 또는 애플리케이션의 일부 또는 구성요소와 같은 컴퓨터 판독가능 실행가능 명령어들 및/또는 데이터를 저장하기 위한 다른 메모리를 포함할 수 있다. 또한, 적어도 하나의 데이터 제공자 컴퓨팅 디바이스(102)는 통신, 메시지 및/또는 신호를 송신 및 수신하기 위한 적어도 하나의 통신 인터페이스를 더 포함한다.
적어도 하나의 알고리즘 제공자 컴퓨팅 디바이스(104)는 데이터를 처리하는 적어도 하나의 처리기 및 데이터를 저장하는 메모리를 포함한다. 처리기는 통신을 처리하고, 통신을 구축하고, 메모리로부터 데이터를 검색하며, 메모리에 데이터를 저장한다. 처리기 및 메모리는 하드웨어이다. 메모리는 휘발성 및/또는 비휘발성 메모리, 예를 들어, 캐시와 같은 컴퓨터 판독가능 저장 매체, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리, 또는 애플리케이션의 일부 또는 구성요소와 같은 컴퓨터 판독가능 실행가능 명령어들 및/또는 데이터를 저장하기 위한 다른 메모리를 포함할 수 있다. 또한, 적어도 하나의 알고리즘 제공자 컴퓨팅 디바이스(104)는 통신, 메시지 및/또는 신호를 송신 및 수신하기 위한 적어도 하나의 통신 인터페이스를 더 포함한다.
적어도 하나의 데이터 제공자 컴퓨팅 디바이스(102)는 랩톱 컴퓨터, 스마트폰, 개인 휴대 정보 단말기, 태블릿 컴퓨터, 표준 개인용 컴퓨터, 또는 다른 처리 디바이스일 수 있다. 적어도 하나의 데이터 제공자 컴퓨팅 디바이스(102)는 데이터 및/또는 그래픽 사용자 인터페이스들을 디스플레이하기 위한 컴퓨터 모니터와 같은 디스플레이를 포함할 수 있다. 적어도 하나의 데이터 제공자 컴퓨팅 디바이스(102)는 또한 그래픽 및/또는 다른 유형의 사용자 인터페이스들에 데이터를 입력하거나 상호작용하기 위해 카메라, 키보드 또는 포인팅 디바이스(예를 들어, 마우스, 트랙볼, 펜, 또는 터치 스크린)와 같은 입력 디바이스를 포함할 수 있다. 예시적인 실시예에서, 디스플레이 및 입력 디바이스는 스마트폰 또는 태블릿 컴퓨터의 터치 스크린으로서 함께 통합될 수 있다.
적어도 하나의 알고리즘 제공자 컴퓨팅 디바이스(104)는 랩톱 컴퓨터, 스마트폰, 개인 휴대 정보 단말기, 태블릿 컴퓨터, 표준 개인용 컴퓨터, 또는 다른 처리 디바이스일 수 있다. 적어도 하나의 데이터 제공자 컴퓨팅 디바이스(102)는 데이터 및/또는 그래픽 사용자 인터페이스들을 디스플레이하기 위한 컴퓨터 모니터와 같은 디스플레이를 포함할 수 있다. 적어도 하나의 알고리즘 제공자 컴퓨팅 디바이스(104)는 또한 그래픽 및/또는 다른 유형의 사용자 인터페이스들에 데이터를 입력하거나 상호작용하기 위해 카메라, 키보드 또는 포인팅 디바이스(예를 들어, 마우스, 트랙볼, 펜, 또는 터치 스크린)와 같은 입력 디바이스를 포함할 수 있다. 예시적인 실시예에서, 디스플레이 및 입력 디바이스는 스마트폰 또는 태블릿 컴퓨터의 터치 스크린으로서 함께 통합될 수 있다.
전용 알고리즘에 의해 데이터를 처리하기 위해 본원에 개시된 알고리즘 또는 알고리즘들을 구현하도록 동작하는 컴퓨팅 디바이스(들)는 특수 목적 컴퓨팅 디바이스로 간주된다. 예를 들어, 도 13과 관련하여 설명된 알고리즘을 수행하는 컴퓨팅 디바이스는 컴퓨팅 디바이스가 수행하도록 프로그래밍되는 단계들 또는 동작들에 의해 정의되는 바와 같은 특수 목적 컴퓨팅 디바이스이다.
도 2는 예시적인 컴퓨팅 환경(100)의 다른 표현(200)을 도시한다. 도 2에 도시된 바와 같이, 적어도 하나의 데이터 제공자 컴퓨팅 디바이스(102)는 평문 데이터(206)에 액세스하고/하거나 이를 저장할 수 있다. 적어도 하나의 데이터 제공자 컴퓨팅 디바이스(102)는 평문 데이터를 암호화된 데이터(204)로 암호화할 수 있다. 또한, 적어도 하나의 알고리즘 제공자 컴퓨팅 디바이스(104)는 알고리즘(214)에 액세스하고/하거나 이를 저장할 수 있다. 적어도 하나의 알고리즘 제공자 컴퓨팅 디바이스(104)는 알고리즘을 암호화하여 암호화된 알고리즘(212)을 산출할 수 있다. 적어도 하나의 데이터 제공자 컴퓨팅 디바이스(102)는 암호화된 데이터(204)를 사용자 또는 종합자(202)에 발송할 수 있다. 또한, 적어도 하나의 알고리즘 제공자 컴퓨팅 디바이스(104)는 암호화된 알고리즘(212)을 사용자 또는 종합자(202)에 발송할 수 있다. 사용자 또는 종합자(202)는 전용 프로세스(210)를 수행하기 위해 암호화된 데이터(208) 에 대해 암호화된 알고리즘을 실행할 수 있다. 사용자 또는 종합자(202)는 적어도 하나의 데이터 제공자 컴퓨팅 디바이스(102)일 수 있지만, 사용자 또는 종합자(204)는 상이한 엔티티일 수 있다. 다른 예에서, 사용자 또는 종합자(202)는 알고리즘 제공자 컴퓨팅 디바이스(104)일 수 있다. 이 예에서 알고리즘 제공자가 알고리즘을 암호화하였지만, 이는 임의사항적이다. 또한, 이 예에서 데이터 제공자가 데이터를 암호화하였지만, 이는 임의사항적이다. 알고리즘 및/또는 데이터가 암호화되지 않으면, 이는 알고리즘이 비례적으로 보다 더 빨리 실행될 수 있도록 성능 개선을 가능하게 할 수 있다.
일 예에서, 종합자(202)는 전용 컨볼루션 뉴트럴 네트워크(CNN)를 개발한 엔티티들과 같은 알고리즘 제공자들이 본원에서 개시된 바와 같은 전용 방식으로 EKG들을 평가하기 위한 알고리즘을 제공할 수 있게 하는 엔티티로 간주될 수 있어서, 종합자(202)는 의사로부터 EKKG 데이터를 수신하고, EKE 데이터를 처리하며, 출력 데이터의 지정된 수신자에게 출력을 제공할 수 있다. 이러한 방식으로, 종합자(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 서브세트는 데이터의 무의미한 분할일 수 있다. 또한, 알고리즘(310)의 제1 서브세트 및 알고리즘(312)의 제2 서브세트는 무의미한 분할일 수 있다. 두 당사자들은 알고리즘의 각 분할분에 대해 동작할 수 있다. 어떤 당사자도 데이터의 전체 세트에 대해 전체 알고리즘을 실행하지 않고, 전체 알고리즘이 무엇을 결정하는지를 이해하지 않는다. 데이터의 분할 및/또는 알고리즘의 분할은 본원에서 개시된 구성요소들 중 임의의 구성요소에 대해 일어날 수 있다. 예를 들어, 엔티티는 데이터가 종합자(202)와 같은 엔티티에 발송되기 전에 암호화 및 데이터 분할 중 하나 이상의 관점에서 데이터를 사전 처리 또는 준비할 수 있는 프로그래밍을 데이터 제공자(102)에 제공할 수 있다. 종합자는 단순히 데이터를 수신하고 그 계산 시스템들 상에서 암호화 및 분할을 수행할 수도 있다. 유사한 프로세스들이 알고리즘 제공자(104)에 대해 일어날 수 있다.
도 4a는 다양한 실시예들에 따른, 부울 논리 게이트 세트 형태의 알고리즘(308) 및 데이터(302)를 처리하는 컴퓨팅 디바이스를 도시한다. 예로서, 데이터베이스(302)는 데이터의 제1 서브세트(304) 및 데이터의 제2 서브세트(406)로 분할될 수 있다. 또한, 알고리즘(308)은 익명화된 회로(부울 논리 게이트 세트(309))로 변환될 수 있고, 그 다음 알고리즘의 제1 서브세트(부울 논리 게이트 세트(309)를 제1 부울 논리 게이트 서브세트로 분할함으로써)(310) 및 알고리즘의 제2 서브세트(부울 논리 게이트 세트(309)를 제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의 데이터베이스에 기초하여 모델을 트레이닝하기를 원한다고 가정한다. 보안 다자간 계산(Secure Multi-party computation, SMPC)은 가능한 솔루션이다. 그러나, MPC의 단점은 당사자 A가 당사자 B의 트레이닝된 알고리즘에 대한 정보를 학습할 것이라는 점이다. 이전 방식들보다 더 빠른 새로운 SMPC 방식이 본원에서 개시된다. 또한, 게이트 정보를 회로에 대한 입력들로 전환하는 새로운 회로 은닉 방식이 개시된다. 개시된 SMPC의 아이디어는 다항식의 차수를 낮게 유지하기 위해 다항식 환(polynomial ring)에 중국인의 나머지 정리(Chinese Remainder Theorem)를 사용하여, 계산 후에, 결과적인 다항식이 재구성가능할 수 있도록 하는 것이다. 이 접근법은 또한 당사자 A가 당사자 B의 알고리즘에 대해 아무것도 학습하지 않는 것을 보장한다. 이러한 아이디어들은 다음에 개발된다.
도 4b는 알고리즘 제공자(410)와 데이터 제공자(414) 사이의 상호작용을 도시한다(408). 알고리즘 제공자(410)는 알고리즘을 사용하여 파라미터들을 선택하고, 데이터의 처리와 연관된 컨텍스트를 구축한다. 컨텍스트(416)는 데이터 제공자(414)에 전달된다. 알고리즘 제공자는 도 7에서와 같이, 본원에서 개시된 원리들을 사용하여 알고리즘을 논리 게이트들(418)로 합성하고, 알고리즘(420)을 "은닉"한다. 은닉 프로세스의 결과는 게이트들(422) 및 범용 또는 포괄 회로(424)를 포함한다. 알고리즘 제공자(410)는 범용 회로(426)를 데이터 제공자(414)에 발송한다. 다음으로, 알고리즘 제공자는 본원에서 개시된 바와 같이 공유분들(428)을 생성하고, 데이터 제공자(414)는 입력들(436)로부터 공유분들을 생성한다. 알고리즘 제공자(410)는 공유분들(434)을 데이터 제공자들(414)에 발송하고, 데이터 제공자(414)는 공유분들(442)을 알고리즘 제공자(410)에 발송한다. 알고리즘 제공자(410)는 알고리즘 제공자의 게이트 공유분들(430) 및 데이터 제공자의 게이트 공유분들(432)을 사용하여 프로세스를 수행한다. 데이터 제공자(414)는 알고리즘 제공자의 입력 공유분들(438) 및 데이터 제공자의 입력 공유분들(440)을 사용하여 프로세스를 수행한다. 데이터 제공자의 입력들로부터의 알고리즘 제공자 공유분들의 생성 후에, 두 당사자들은 MPC 프로토콜을 시작할 준비가 된다. 도 6 및 관련 논의를 참조한다.
"은닉"은 알고리즘 제공자가 익명화된 회로에서의 각 게이트를 범용 회로로 대체하고, 함수 "범용 회로"(424)를 생성하며, 각 게이트의 정보를 개별 테이블에 저장할 때 발생한다. 각 게이트를 범용 회로로 대체함으로써, 회로는 은닉되고, 회로의 대부분의 정보는 게이트 테이블에 전달된다. 좌측은 도 7에 도시된 바와 같은 각 게이트의 위치이다. 도 7에서의 은닉된 회로(702)는 공개된 것과 각 게이트의 위치만을 확인할 수 있는 것의 예를 도시한다. 회로의 범용 구조가 드러난다. 이 접근법의 보안은 각 게이트에 관한 정보가 게이트 테이블에 개별적으로 저장되기 때문에 회로 은닉 방법 외에 사용되는 MPC 방법의 보안에 따른다. 다른 당사자에 의한 각 게이트의 계산된 출력은 각 게이트의 실제 출력이 다른 당사자에게 이용가능하지 않고 그 일부만이 이용가능하기 때문에, 회로를 역설계하는데 사용될 수 없다. 회로 제공자는 단지 이들 게이트들의 출력을 계산하는 것의 가능성을 허용한다.
MPC가 갖는 문제들 중 하나는 상이한 당사자들 사이의 통신의 수이다. MPC 프로토콜emf은 계산 동안 많은 통신을 수반할 수 있다. 그 주요 이유는 "승산" 또는 "AND" 연산 계산 복잡도이다. 비버 트리플렛을 사용하는 것은 승산(AND 게이트)을 핸들링하는 하나의 실제적인 방법이다. 그러나, 이러한 접근법은 프로토콜에 일부 사전 처리 계산들을 추가하고, 각 승산에 대해 두 통신을 필요로 하며, 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 대응 다항식:
Figure pct00001
데이터 B: 7 대응 다항식:
Figure pct00002
p1과 p2를 승산하는 것은 다음을 제공한다:
Figure pct00003
. p1*p2의 상수 값은 실제로 데이터 A * 데이터 B = 28과 동일함이 확인될 수 있다. 그러나, 문제는 다항식의 차수가 증가했고, 시스템이 최종 다항식을 재구성하기 위해 보다 더 많은 지점들을 필요로 할 것이라는 것이다.
최종 다항식을 재구성하기 위해 보다 더 많은 데이터에 대한 필요성에 대한 솔루션은 다항식의 차수를 작게 유지하기 때문에 정수 환에서의 계수들을 갖는 몫 다항식 환의 사용에서 발견될 수 있다. 불행하게도, 이러한 접근법은 두 가지 다른 문제들을 야기한다. 첫째, 축소 후에 상수 값을 동일하게 보존한다. 두 번째 문제는 본 시스템이 지점들 중 일부만을 가질 때 본 시스템이 비밀 다항식을 다른 다항식으로 축소시킬 수 있다는 것이다.
제1 문제의 예로서 다음을 고려한다:
데이터 A: 4 대응 다항식:
Figure pct00004
데이터 B: 7 대응 다항식:
Figure pct00005
주 아이디얼 =
Figure pct00006
계수 모듈러스(q) = 1001
Figure pct00007
이에 따라, p1*p2 mod x^2+1의 상수 값은 27이며, 이는 28과 동일하지 않다.
그러나, 상기한 환 다항식을 사용할 때, 축소 후에 보존되는 다른 정보, 즉
Figure pct00008
mod에서의 결과 다항식의 평가 및 x에서의 환 다항식의 평가를 포함한다. 다시 말해서,
Figure pct00009
는 결과적인 다항식 @x의 평가 = 축소된 다항 @x의 평가(주 아이디얼 @x의 mod 평가)를 의미한다.
일 예에서, x=10이라고 한다:
Figure pct00010
Figure pct00011
101은 10에서 x^2 + 1의 평가이다,
다음 지점은 가치가 있고, 솔루션의 기초이다. 계수들에 오버플로가 있다면, 이 사실은 더 이상 유효하지 않다. 이에 따라, 계수 모듈러스 = 1001 대신에, 시스템이 17과 같은 보다 더 작은 계수를 사용한다면, 그 결과는 잘못될 것이다.
예로서, x=1을 평가 지점으로서 가정하고, 원분 다항식 차수
Figure pct00012
를 주 아이디얼로서 가정한다.
이러한 결정들에 의해, 본 시스템은 계수들의 합으로서 다항식으로 비트를 은닉할 수 있고, 원분 다항식 차수
Figure pct00013
Figure pct00014
의 형태가 될 것이므로, 이로 인해
Figure pct00015
이며, 이에 따라 모든 것은 원하는 대로 mod 2가 될 것이다.
이러한 접근법을 사용하여, 다항식을 다른 다항식에 의해 축소한 후에 일부 정보가 보존되므로, 프로세스는 다른 기법들로 다항식으로 데이터를 은닉할 필요가 있다. 그러나, 위에서 식별된 두 번째 문제는 여전히 존재하며, 이는 다항식의 일부 지점들만이 알려져 있을 때 다항식이 다른 다항식으로 어떻게 축소될 수 있는지이다.
이 문제에 대한 한 가지 솔루션은 중국인의 나머지 정리를 적용하는 것일 수 있다. 이 아이디어를 보다 더 명확하게 하기 위해, 본 개시는 다항식 환에 대한 중국인의 나머지 정리의 예를 제공한다.
데이터 A: 4 대응 다항식:
Figure pct00016
데이터 B: 7 대응 다항식:
Figure pct00017
주 아이디얼(I) =
Figure pct00018
몫 환 = Z17[x]/I
Figure pct00019
본 시스템은 다음과 같은 다른 방식으로 11x+10을 계산할 수 있다:
Figure pct00020
여기서, 근들은 4, -4이다
Figure pct00021
,
Figure pct00022
,
Figure pct00023
,
Figure pct00024
승산을 계산하기 위해, 본 시스템은 p 1 (근1)*p 2 (근1)= A 및 p 1 (근2)* p 2 (근2) = B를 승산할 수 있고, 2개의 지점들 (근1, A) 및 (근2, B)로 다항식을 재구성할 수 있다. 라인 패싱 (4,88)=(4,3) 및 (-4,0)은 11x+10 mod 17이다.
본 개시는 다음에 다자간 계산(MPC) 프로토콜을 보다 더 상세히 논의한다. 프로토콜은 단지 하나의 게이트(XOR 또는 AND)를 실행하기 위해 당사자 A로부터의 1 비트
Figure pct00025
및 당사자 B로부터의 1 비트
Figure pct00026
에 대해 두 당사자들 사이에서 설명된다:
q = 계수 모듈러스
n =
Figure pct00027
형태의 다항식의 차수
B = 다항식 계수에 대한 경계.
프로토콜에서,
Figure pct00028
로 축소되는 임의의 수는
Figure pct00029
Figure pct00030
사이에 놓인다. 프로토콜은 (1)
Figure pct00031
(보안 파라미터)q, n, B에 기초하여 선택되고, (2)
Figure pct00032
에 대한 다항식
Figure pct00033
의 n개의 근들이 두 세트들
Figure pct00034
에 저장되는 것을 포함한다. 예를 들어,
Figure pct00035
에 대한
Figure pct00036
에 대해,
Figure pct00037
이고,
Figure pct00038
이다.
단계 (3)에서, 당사자 A는
Figure pct00039
가 되도록 다항식 차수
Figure pct00040
에 비트 "a"를 저장하고, 당사자 B는
Figure pct00041
가 되도록 다항식 차수
Figure pct00042
에 비트 "b"를 저장한다. 단계 (4)에서, 당사자 A는
Figure pct00043
를 저장하고,
Figure pct00044
를 당사자 B에 발송한다.
또한, 당사자 B는
Figure pct00045
를 저장하고,
Figure pct00046
를 당사자 A에 발송한다. 단계(5)에서,
Figure pct00047
를 계산하기 위해, 당사자 A는
Figure pct00048
를 계산하고, 당사자 B는
Figure pct00049
를 계산한다. 단계 (6)에서,
Figure pct00050
를 계산하기 위해, 당사자 A는
Figure pct00051
를 계산하고, 당사자 B는
Figure pct00052
를 계산한다. 요소별로 승산된다. 단계(7)에서, 계산의 종료 시에, 양 당사자들은 결과들을 공유하고, n개의 지점들
Figure pct00053
XOR 게이트에 대해
Figure pct00054
및 AND 게이트에 대해
Figure pct00055
을 사용하여 결과 다항식 PR을 공동으로 재구성한다.
단계 (8)에서, 최종 결과를 계산하기 위해,
Figure pct00056
가 계산된다.
이 프로토콜은 다항식들의 계수들에 오버플로가 없는 경우에(계수들이 q보다 더 커짐) 작동한다. 이러한 오버플로는 보다 더 많은 게이트들을 평가한 후에 발생할 가능성이 있다. 오버플로를 피하기 위해, 두 가지 방법들이 제안된다. 첫 번째 방법은 계산을 지원하기에 충분히 큰 파라미터들을 선택하는 것이다. 예를 들어, 시스템이 다항식, 즉 x2를 계산하는 경우, 모듈러스 q는 3B2(여기서 B는 다항식 계수에 대한 경계임)보다 더 커야 한다. 다항식들의 도메인은 수용가능한 보안을 달성하기에 충분히 커야 하는 것이 유용하다.
계산 제한들 때문에, 본 시스템은 본 시스템이 회로를 정확하게 컴퓨팅하는 것을 가능하게 하기 위해 원하는 크기대로 q를 선택할 수 없다. 다음으로, 오버플로를 방지하기 위해 계수들을 축소시키는 방법이 제안된다. 본 개시는 본원에서 언급된 계수들이 다른 곳에서 참조된 공유분들과 상이하다는 것에 유의한다. 공유분들은 오버플로될 수 있다.
제안된 방법은 다항식 P를 재생하는 것을 수반한다. 다항식 환에서 중국인의 나머지 정리(CRT)와 정확히 동등한 라그랑지 다항식 재구성에 기초하여, 다음 식을 가정한다:
Figure pct00057
Figure pct00058
들은 쉽게 계산되고, 공개된 정보이다.
Figure pct00059
들은 비밀 공유분들이며, 이들 중 절반은 당사자 A에 의해 유지되고, 다른 것들은 당사자 B에 의해 유지된다. 이들이
Figure pct00060
들을 공유하는 경우, 다항식은 재구성될 수 있고, 비트 값은 드러난다. 다음의 프로토콜을 사용하여, 두 당사자들은 다항식을 재생할 수 있다. 이 프로세스를 설명하는 다른 방법은 다항식을 보다 더 작은 계수를 갖는 새로운 다항식으로 대체하는 것이다.
단계 (1)에서, 당사자 A는
Figure pct00061
를 계산하고,
Figure pct00062
를 생성한다. 계수들은 B에 의해 경계가 정해지고, 당사자 A는
Figure pct00063
,
Figure pct00064
Figure pct00065
를 계산한다.
단계 (2)에서, 당사자 A는
Figure pct00066
을 당사자 B에 발송한다. 단계 (3)에서, 당사자 B는
Figure pct00067
인 경우
Figure pct00068
를 계산한다. 당사자 B는
Figure pct00069
를 생성하고, 그렇지 않으면 당사자 B는
Figure pct00070
를 생성하고,
Figure pct00071
Figure pct00072
를 계산한다. 단계(4)에서, 당사자 B는 SBA를 당사자 A에 발송하고, 단계 (5)에서, 당사자 A는
Figure pct00073
를 계산하고, 당사자 B는
Figure pct00074
를 계산한다.
이 프로토콜을 실행한 후, 양 당사자들은 원래의 노이지 다항식으로서 디코딩되는 재생된 다항식의 공유분들을 갖지만, 재생된 다항식들의 계수들은 2B에 의해 경계가 정해진다.
둘 이상의 당사자들에 대해, 동일한 각 당사자가 환 다항식의 일부 근들을 제어한다는 점에서 아이디어는 유사하다. 다음의 섹션에서, 본 개시는 이 프로토콜의 적용을 설명한다. 도 4c는 새로운 입력(464) 및 일부 개인 데이터베이스에 대해 (알고리즘 제공자(410)에 의해 제공되는) 비밀 함수를 수행하기를 원하는 데이터 제공자들(414) 및 종합자(462)의 그룹이 존재하는 "다자 문제"에 대한 MPC의 적용(450)을 도시한다. 당사자들은 어느 당사자가 다항식 환들의 어느 근들을 처리하는지를 합의할 필요가 있고, 그 후 프로토콜들은 알고리즘 제공자(410)에서 시작한다. 당사자들은 2자 문제와 동일한 단계들 중 일부를 취하고 "게이트 공유분들"(458) 및 "범용 회로"(458)를 다른 당사자들에 공유한다. 데이터베이스 제공자(414)는 데이터베이스(460)의 공유분들을 종합자(462)에 제공한다. 이 프로토콜과 2자 프로토콜 간의 유일한 차이점은 새로운 입력들(454, 456)의 공유분들이 존재하고, 근들에서의 다항식들의 평가가 상이한 당사자들에 의해 유지된다는 것이다.
도 4d는 SMPC를 적용하기 위한 접근법(470)을 도시한다. 새로운 입력(472)은 종합자(478)에 제공된다. 종합자(478)는 데이터 제공자의 공개 키 KPd(476)를 사용하는 데이터 제공자(474)로부터 암호화된 데이터를 수신한다. 종합자는 또한 알고리즘 제공자의 공개 키 KPa(480) 하에서 암호화되는 알고리즘 제공자(482)로부터 암호화된 함수 f를 수신한다. 양 암호화는 복호화를 요구하지 않고, 사용자가 암호화된 데이터만을 사용하여 암호화된 결과들을 컴퓨팅할 수 있게 하는 동형 암호화이다. 종합자(478)는 동형 암호화를 사용하여 결과(484)를 컴퓨팅한다. 결과는 새로운 입력 및 데이터에 기초한 함수 결과를 포함할 수 있다. 계산의 끝에서, 데이터 제공자(474) 및 알고리즘 제공자(482)는 SMPC를 사용하여 복호화 알고리즘을 계산한다. SMPC(486)는 결과, KSd 및 KSa를 복호화하는데 사용될 수 있다. SMPC 프로토콜에서, 알고리즘 제공자 입력은 이의 대응하는 비밀 키(KSa)이고, 데이터 제공자 입력은 이의 비밀 키(KSd)이다.
도 5는 다양한 실시예들에 따른, 다수의 데이터 제공자들 및 다수의 알고리즘 제공자들을.도시한다. 본원에서 논의되는 접근법은 하나의 데이터 제공자 또는 하나의 알고리즘 제공자에 제한되지 않는다. 예로서, 데이터가 다수의 제공자들에 의해 제공될 수 있고, 알고리즘이 다수의 제공자들에 의해 제공될 수 있다. 예로서, 도 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) 중 하나일 수 있거나, 또는 상이한 엔티티일 수 있다. 종합자(510)는 또한 각 데이터 제공자 및/또는 각 알고리즘 제공자의 조합 또는 하이브리드일 수 있다. 종합자(510)는 또한 일 양태에서 암호화되지 않은 데이터 또는 알고리즘들을 수신하고, 종합자(510) 내에서 암호화 동작을 수행할 수 있다.
도 6은 다양한 실시예들에 따른, 알고리즘과 연관된 예시적인 회로를 도시한다. 일부 보안 다자간 계산(MPC)에서, 회로 가블링(circuit garbling)이 가블러(garbler) 및 평가자와 같은 두 참가자들 사이의 보안 통신을 위해 사용되어 왔다. 본원에서 논의된 실시예들은 회로 가블링과 상이하다. 다자간 계산(MPC)은 승산(AND) 및 가산(XOR)을 포함하는 2개의 연산들을 실행할 수 있다. 그 결과, 복잡한 연산들 및 함수들을 수행하기 위해, 연산들 및 함수들은 AND 및 XOR 연산들로 분해된다. 도 6에 도시된 예시적인 회로(600)는 XOR, AND, 및 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에 도시된 게이트들을 실제 게이트들로 설명 또는 분해하는데 사용될 수 있다. 예를 들어, 다음의 진리표가 사용될 수 있다:
g1 g2 게이트
1 0 NOT
0 1 XOR
0 0 없음
1 1 AND
도 7은 다양한 실시예들에 따라, 은닉된 회로(309)로 변환되는(700) 예시적인 알고리즘(308)을 도시한다. 은닉된 회로는 예를 들어, 도 3에 도시된 부울 논리 게이트 세트(309)일 수 있다. 예로서, 도 6에 도시된 회로에서의 게이트들과 연관된 정보는 도 7에 도시된 바와 같이 은닉되고 익명화된 은닉된 표현(309)으로 대체될 수 있다. 예로서, 알고리즘(308)은 은닉된 표현(309)으로 변환될 수 있다. 이는 회로 구조를 익명화하는 하나의 예시적인 방법을 제공한다. 익명화에 대한 다른 접근법들이 또한 적용가능할 수 있다.
도 8은 다양한 실시예들에 따른, 제1 분할분 또는 제1 서브세트(310) 및 제2 분할분 또는 제2 서브세트(312)로 분할된 은닉된 회로(309)를 도시한다(800). 즉, 은닉된 표현(309)은 2개의 분할분들 또는 서브세트들로 분할될 수 있다. 알고리즘의 제1 서브세트(310)는 제1 당사자, 제1 컴퓨팅 디바이스 또는 제1 가상 컴퓨트 환경에 의해 평가될 수 있고, 알고리즘의 제2 서브세트(312)는 제2 당사자, 제2 컴퓨팅 디바이스 또는 제2 가상 컴퓨트 환경에 의해 평가될 수 있다. 일반적으로 말하면, 부울 논리 게이트 세트(309)의 이러한 상이한 분할분들은 상이한 컴퓨트 스폿들, 위치들, 부분들, 물리적 구성요소들 또는 가상 구성요소로 분리되어, 이들의 별개의 처리가 별개의 방식으로 수행될 수 있다.
도 9a는 알고리즘에 데이터를 제공하는 데이터 제공자로부터의 알고리즘을 은닉하거나 암호화하고, 데이터에 대해 동작하는 알고리즘을 제공하는 알고리즘 제공자로부터의 데이터를 은닉하거나 암호화하는 예시적인 방법(900)을 도시한다. 본 방법은 임의의 순서로 수행되는 임의의 하나 이상의 단계를 포함할 수 있다. 본원에서 개시된 순서는 예로서이다. 예시적인 방법에 따르면, 단계(902)에서, 알고리즘 제공자는 알고리즘 제공자를 컴퓨팅 디바이스에 발송할 수 있다. 또한, 데이터 제공자는 데이터를 컴퓨팅 디바이스에 발송할 수 있다. 컴퓨팅 디바이스는 알고리즘을 수신하고, 데이터를 수신할 수 있다. 알고리즘은 알고리즘 제공자에 의해 제공된 알고리즘의 리스트로부터 선택될 수 있고, 데이터는 데이터 제공자에 의해 데이터베이스로부터 검색될 수 있다. 또한, 컴퓨팅 디바이스는 알고리즘을 암호화하고, 데이터를 암호화할 수 있다. 일 예에서, 컴퓨팅 디바이스는 알고리즘 제공자와 연관된 컴퓨팅 디바이스일 수 있다. 다른 예에서, 컴퓨팅 디바이스는 데이터 제공자와 연관된 컴퓨팅 디바이스일 수 있다. 추가 예에서, 컴퓨팅 디바이스는 제3자 컴퓨팅 디바이스일 수 있고, 알고리즘 제공자 또는 데이터 제공자와 연관되지 않을 수 있다.
단계(904)에서, 컴퓨팅 디바이스는 알고리즘을 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트로 분할할 수 있다. 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트는 동일한 크기의 서브세트들이 아닐 수 있다. 예로서, 제1 알고리즘 서브세트는 알고리즘과 연관된 동작들의 1/3을 포함할 수 있고, 제2 알고리즘 서브세트는 알고리즘들과 연관된 동작들의 2/3를 포함할 수 있다. 대안적으로, 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트는 동일한 크기의 서브세트들로 분할될 수 있다. 상술한 바와 같이, 대안적인 단계는 알고리즘을 일반적으로 또는 알고리즘 서브세트들을 익명화하는 단계를 포함한다.
또한, 컴퓨팅 디바이스는 데이터를 제1 데이터 서브세트 및 제2 데이터 서브세트로 분할할 수 있다. 일 예로서, 제1 데이터 서브세트는 데이터의 1/3을 포함할 수 있고, 제2 데이터 서브세트는 데이터의 2/3을 포함할 수 있다. 대안적으로, 제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 컴퓨팅 디바이스를 포함할 수 있고, 데이터 제공자는 적어도 하나의 제2 컴퓨팅 디바이스를 포함할 수 있다. 일 예에서, 조합된 결과는 데이터 제공자에 발송될 수 있고, 데이터 제공자는 조합된 결과의 표현을 디스플레이할 수 있다. 다른 예에서, 조합된 결과는 알고리즘 제공자에 발송될 수 있고, 알고리즘 제공자는 조합된 결과의 표현을 디스플레이할 수 있다. 다른 예에서, 조합된 결과는 다른 컴퓨팅 디바이스에 발송될 수 있고, 다른 컴퓨팅 디바이스는 조합된 결과의 표현을 디스플레이할 수 있다.
다른 양태에서, 컴퓨팅 디바이스는 제1 알고리즘 서브세트 및 제1 데이터 서브세트, 및 제2 알고리즘 서브세트 및 제2 데이터 서브세트를 임의의 엔티티에 유지하거나 발송할 수 있다. 예를 들어, 종합자(202)와 같은 엔티티는 분할 단계들 및 처리 단계들을 수행하여 제1 부분 결과 및 제2 부분 결과를 획득할 수 있다. 일반적으로, 본 시스템은 각 알고리즘들 및 데이터가 서로 개시되지 않도록 제1 알고리즘 서브세트를 제1 데이터 서브세트로 그리고 제2 알고리즘 서브세트를 제2 데이터 서브세트로 개별적으로 처리할 수 있다.
도 9b는 다른 예시적인 방법(918)을 도시한다. 이 예시적인 방법은 단계(920)에서, 적어도 하나의 처리기에 의해, 알고리즘 제공자로부터 알고리즘을 수신하는 단계, 및 단계(922)에서, 적어도 하나의 프로세스에 의해, 데이터 제공자로부터 데이터를 수신하는 단계를 포함한다. 본 방법은 또한 단계(924)에서, 적어도 하나의 처리기에 의해, 알고리즘을 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트로 분할하는 단계, 단계(926)에서, 적어도 하나의 처리기에 의해, 데이터를 제1 데이터 서브세트와 제2 데이터 서브세트로 분할하는 단계, 및 단계(928)에서, 적어도 하나의 처리기에 의해, 제1 알고리즘 서브세트 및 제1 데이터 서브세트를 처리하는 단계, 및 단계(930)에서, 적어도 하나의 처리기에 의해, 제2 알고리즘 서브세트 및 제2 데이터 서브세트를 처리하는 단계를 포함할 수 있다. 본 방법은 또한 단계(932)에서, 적어도 하나의 처리기에 의해, 제1 알고리즘 서브세트 및 제1 데이터 서브세트에 기초한 제1 부분 결과를 수신하는 단계, 및 제2 알고리즘 서브세트 및 제2 데이터 서브세트에 기초한 제2 부분 결과를 수신하는 단계, 및 단계(934)에서, 적어도 하나의 처리기에 의해, 제1 부분 결과 및 제2 부분 결과에 기초하여 조합된 결과를 결정하는 단계를 포함할 수 있다.
알고리즘을 분할하는 프로세스 및 후속하는 처리는 다수의 상이한 방식들로 달성될 수 있다는 것에 유의된다. 예를 들어, 알고리즘은 부울 논리 게이트 세트로 변환될 수 있거나, 뉴트럴 네트워크 또는 대수 또는 비-부울 회로로서 표현될 수 있다.
일부 실시예들에서, 알고리즘은 (예를 들어, CNN들 사이에서 공통인) 행으로 함께 나열되는 수천 개의 동작들을 갖는 알고리즘들을 포함하는 크고 복잡한 대수식들을 포함할 수 있다. 이러한 복잡한 알고리즘들을 핸들링하기 위해, 예를 들어, 둘 이상의 당사자들 사이의 보다 더 적은 통신 교환들(예를 들어, 데이터 제공자들, 알고리즘 제공자들, 종합자들 등 사이의 더 적은 통신 교환들)을 사용하여 많은 수의 임의의 동작들의 훨씬 더 빠른 계산을 수행하기 위해 비버 세트 기반 수학적 기법이 사용될 수 있다. 승산에 통상적으로 사용되는 비버 세트들은 계산들을 사전 처리 단계들로 변환하기 위해 본원에서 개시된 개념들에 새로운 방식으로 적용될 수 있다. 비버 세트들은 통상적으로 사전 처리를 이용한다. 전체 프로세스에 대해 본원에서 개시된 추가적인 개념들은 제산 및 지수, 보다 더 빠른 승산을 지원하기 위해 상이하게 처리할수 있는 능력을 포함한다. 도 9c는 예를 들어, 본원에서 개시된 원리들을 구현할 때 컴퓨터 계산 요건을 개선하기 위해 비버 세트들을 사용하는 것과 연관된 예시적인 방법을 도시한다.
다자간 계산이 갖는 하나의 문제는 데이터 제공자 컴퓨팅 디바이스(102)와 알고리즘 제공자 컴퓨팅 디바이스(104) 사이의 통신 네트워크(110)를 통해 발송될 수 있는 통신들의 수와 연관될 수 있다. 통신들은 승산 및 "AND" 연산 계산 복잡도와 연관될 수 있다. MPC가 가산 및 승산을 지원할 수 있지만, 승산은 보통 제한된다. 피승수들이 크기가 계속 증가함에 따라, MPC의 계산 능력은 정수 크기의 제한들 및 계산 저장 제한들로 인해 상한에 접근하고 상한에 달하기 시작한다. 한계에 직면할 때, MPC는 동작들을 수행하는 컴퓨팅 디바이스들 사이에서 정보를 교환하는 것을 고려한다. 이러한 교환은 전체 계산 성능을 느리게 한다.
본원에서 논의된 실시예들은 통신 및 네트워크 오버헤드를 감소시키기 위해 데이터 제공자 컴퓨팅 디바이스(102)와 알고리즘 제공자 컴퓨팅 디바이스(104) 사이의 통신들을 제한하기 위해 비버 세트 승산을 이용한다. 비버 세트 승산의 사용은 본원에서 설명된 바와 같은 처리를 위해 데이터를 분할하고 알고리즘들을 분할하는데 사용되는 임의의 2개의 디바이스들 또는 가상 기계들에 적용될 수 있다. 이에 따라, 문제는 본원에서 개시된 원리들과 관련하여 사용될 수 있는 가상 또는 물리적 임의의 2개의 디바이스들 사이에서 일어날 수 있다. 일부 실시예들에서, 하나의 비버 세트 트리플이 각 연산(예를 들어, 승산 연산 또는 AND 게이트들)에 사용될 수 있다. 비버 세트 트리플들은 조합된 결과를 결정하기 위해 두 당사자들이 함께 동작할 때 한 당사자 또는 하나의 컴퓨팅 디바이스에 의해 미리 생성될 수 있다. 예로서, 데이터 제공자 컴퓨팅 디바이스(102)는 비버 세트들을 사전 생성할 수 있고, 알고리즘 제공자 컴퓨팅 디바이스(104)는 비버 세트들을 사전 생성할 수 있다. 다른 양태에서, 종합자(202)는 알고리즘들, 데이터, 알고리즘들의 서브세트들, 및 데이터의 서브세트들 중 하나 이상에 대한 다양한 비버 세트들을 사전 생성할 수 있다.
실시예들에 따르면, 비버 세트는 계산 시에(예를 들어, 알고리즘이 암호화되고 데이터 제공자 컴퓨팅 디바이스(102)와 알고리즘 제공자 컴퓨팅 디바이스(104) 사이에 분배된 후에) 이용될 수 있다. 예를 들어, 알고리즘이 암호화되고, 분할되며, 두 당사자들에 분배된 후, 당사자들 중 하나 또는 양자가 계산을 수행할 준비가 될 때 비버 세트가 채용될 수 있다. 암호화된 회로들을 계산하는 것이 느리기 때문에, (교환이 이루어지기 전에 각 당사자에 의해 보다 더 많은 수학적 계산들이 수행될 수 있게 하는) 비버 세트들을 사용함으로써 두 당사자들 사이의 정보 교환의 양을 감소시키는 것은 전체 알고리즘 및 데이터 처리의 속도 및 효율을 증가시킬 것이다. 즉, 다음의 비버 세트 기반 기술은 두 당사자들 사이의 교환이 필요해지기 전에(예를 들어, 임계 에러를 초과하기 전에) 분리되면서 보다 더 많은 연산들이 계산되게 하기 때문에, 이전 접근법들보다 훨씬 더 빠르게 분할된 데이터 및/또는 알고리즘들에 대해 복잡한 동작들을 수행할 수 있다.
도 9c에 도시된 예시적인 방법(938)은 단계(940)에서, 적어도 하나의 처리기에 의해, 알고리즘 제공자로부터 알고리즘 서브세트를 수신하는 각 당사자 또는 엔티티를 포함할 수 있다. 알고리즘 서브세트는 예를 들어, 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트로 분할된 알고리즘으로부터의 제1 알고리즘 서브세트일 수 있다. 단계(942)에서, 제1 당사자는 제1 알고리즘 서브세트의 속성에 기초하여 또는 다른 파라미터들에 기초하여 비버 세트들의 2개의 공유분들을 생성할 수 있다.
예를 들어, 제1 당사자(예를 들어, 데이터 제공자 컴퓨팅 디바이스(102) 또는 알고리즘 제공자 컴퓨팅 디바이스(104)와 같은 사용자 A)는 N×3 행렬, BeavA를 생성할 수 있다. BeavA는 랜덤하게 생성되는 제1 및 제2 열들을 포함할 수 있고, 제3 열은 알고리즘 서브세트의 동작을 포함할 수 있다. BeavA는 또한 부분적으로 랜덤하게 생성될 수 있거나 또는 아마도 비-랜덤 프로세스에 기초하여 생성될 수 있다. 이 예시적인 실시예에서, 제3 열은 처음 2개의 열들의 승산을 포함한다. 비버 세트들의 처음 2개의 열들은 실제 데이터(EKG 공유분들)를 마스킹하기 위해 랜덤하게 생성될 수 있고, 제3 열은 적용(승산, 제산, 지수, ...)에 따라 계산될 수 있다. 처음 2개의 열들은 실제 데이터를 은닉할 수 있도록 랜덤하게 생성되는 것이 바람직하다.
그 후, 사용자 A는 2개의 공유분들
Figure pct00075
Figure pct00076
를 생성할 수 있다. 그 후, 사용자 A는 공개 키 및 암호화를 사용하여
Figure pct00077
,
Figure pct00078
, 및
Figure pct00079
(여기서
Figure pct00080
는 공개 키 A이고,
Figure pct00081
는 공개 키 A를 사용하여 암호화된
Figure pct00082
임)를 제2 당사자(예를 들어, 데이터 제공자 컴퓨팅 디바이스(102) 또는 알고리즘 제공자 컴퓨팅 디바이스(104)와 같은 사용자 B)에 발송할 수 있다.
일부 실시예들에서, ENC는 1 승산 및 1 가산에 대한 동형 암호화를 지원한다. 동형 암호화는 암호문들에 대한 계산을 허용하는 암호화의 형태이며, 복호화될 때, 이들이 평문에 대해 수행된 것처럼 연산들의 결과와 매칭하는 암호화된 결과를 생성한다. 동형 암호화는 비밀 키에 대한 액세스 없이 암호화된 데이터에 대해 계싼하기 위한 추가적인 평가 능력을 갖는 암호화의 형태이다. 이러한 계산의 결과는 암호화된 채로 유지된다.
단계(944)에서, 제2 당사자(사용자 B)는 제2 알고리즘 서브세트의 속성에 기초하여, 또는 다른 인자들에 기초하여 비버 세트들의 2개의 공유분들을 생성할 수 있다. 데이터 제공자 컴퓨팅 디바이스(102) 또는 알고리즘 제공자 컴퓨팅 디바이스(104)와 같은 사용자 B는 동일한 크기의 비버 세트들(Nx3)을 갖는 N×3 행렬 BeavB 및 랜덤 행렬 R을 생성할 수 있다. 행렬 R은 또한 비-랜덤 프로세스에 기초하여 생성될 수 있다. BeavA와 유사하게, BeavB는 랜덤하게 생성되거나, 또는 일부 비-랜덤 프로세스에 기초하여 생성되는 제1 및 제2 열들을 포함할 수 있고, 제3 열은 알고리즘 서브세트의 동작을 포함할 수 있다. 이 예시적인 실시예에서, 제3 열은 처음 2개의 제1 열들의 승산을 포함한다.
그 후, 사용자 B는 사용자 B의 2개의 공유분들
Figure pct00083
Figure pct00084
를 생성할 수 있다. 그 후, 사용자 B는
Figure pct00085
Figure pct00086
를 설정할 수 있다. 그 후, 사용자 B는
Figure pct00087
Figure pct00088
를 사용자 A에 발송할 수 있다.
제1 당사자 및 제2 당사자의 데이터 제공자 컴퓨팅 디바이스(102) 및 알고리즘 제공자 컴퓨팅 디바이스(104)는 다음을 수행할 수 있다: 사용자 A는
Figure pct00089
를 설정할 수 있다. 그 후, 사용자 B는
Figure pct00090
의 공유분을 갖고; 사용자 A는
Figure pct00091
의 공유분을 갖는다. 일부 실시예들에서, 비버 세트는 또한 데이터 제공자 컴퓨팅 디바이스(102)와 알고리즘 제공자 컴퓨팅 디바이스(104) 사이의 제산 연산들을 위해 사용될 수 있다. 두 당사자들은 예를 들어 단지 6 통신만을 사용하여 분할을 수행하기 위해 함께 동작할 수 있다. 예로서, 두 당사자들은 e, d 및 e/d 비버 트리플을 사용하여 x/y의 제산 연산을 수행할 수 있다. 예를 들어, e는 비버 세트의 제1 열일 수 있고, d는 비버 세트의 제2 열일 수 있다. 제3 열은 e/d(e를 d로 나눈 것)일 수 있다. 2개의 제1 열들은 랜덤하게 생성되고, 제3 열은 제1 열을 제2열로 나눈 것일 수 있다.
제1 당사자(사용자 A) 및/또는 제2 당사자(사용자 B)는 N×3 행렬 비버 트리플 세트(여기서 제3 열은 제1 열을 제2열로 나눈 것을 포함함)를 생성할 수 있다. 그 후, 사용자 A 및 사용자 B는 협력하여
Figure pct00092
Figure pct00093
를 계산할 수 있다(예를 들어, 양 당사자들은 x' 및 y' 값들을 알 것이다). 그 후, 사용자 A는
Figure pct00094
를 계산할 수 있고, 사용자 B는
Figure pct00095
를 계산할 수 있다. 그 후, 사용자 A 및 사용자 B 양자는 xd를 공동으로 재구성할 수 있다.
일 양태에서, 데이터 제공자 컴퓨팅 디바이스(102) 및 알고리즘 제공자 컴퓨팅 디바이스(104)는, 사용자 A의 제산의 공유분 =
Figure pct00096
및 사용자 B의 제산의 공유분 =
Figure pct00097
를 수행할 수 있다.
단계(946)에서, 데이터 제공자는 분할된 데이터 세트들을 두 당사자들에게 제공할 수 있고, 대응하는 비버 세트들을 사용하여, 분할된 데이터 세트들에 대해 분할된 알고리즘들을 실행할 수 있다. 일부 실시예들에서, 데이터는 민감한 정보(예를 들어, 인구통계학적 정보, 성별, 연령, 인종, 또는 환자 신원을 노출시키는 다른 생체측정을 노출시키는 패턴 등)를 추가로 은닉하기 위해 전체 데이터세트의 랜덤 공유분으로 분할될 수 있다. 이 방법은 이와 관련하여, 제1 수학적 세트의 2개의 공유분들에 기초하여 제1 분할 데이터 서브세트에 대해 제1 알고리즘 서브세트를 실행하여 제1 출력 서브세트를 산출하는 단계, 및 제2 수학적 세트의 2개의 공유분들에 기초하여 제2 분할 데이터 서브세트에 대해 제2 알고리즘 서브세트를 실행하여 제2 출력 서브세트를 산출하는 단계를 포함할 수 있다. 그 후, 방법은 제1 출력 서브세트와 제2 출력 서브세트를 조합하는 단계를 포함할 수 있다
일부 실시예들에서, 계산 속도는 고가의 함수 호출들의 결과들을 저장하고 동일한 입력들이 다시 발생할 때 캐싱된 결과를 반환함으로써 계산들을 가속화하는데 사용될 수 있는 최적화 기술인 하나 이상의 메모이제이션 기법을 통해 더 증가될 수 있다. 예를 들어, 기억 기능은 특정 입력들의 일부 세트에 대응하는 결과들을 캐싱할 수 있다. (캐시로부터의) 기억 입력들을 갖는 후속 호출들은 기억 결과를 재계산하기보다는 기억 결과를 반환할 수 있고, 이에 따라, 이들 파라미터들을 갖는 기능에 행해진 제1 호출을 제외한 모든 것으로부터 주어진 파라미터들을 갖는 호출의 주요 비용을 제거한다. 이에 따라, 기억은 사전에 보다는 필요에 따라 즉시 투명하게 결과의 캐시를 채울 수 있다.
다른 예에서, 체스 게임에서, 한 플레이어가 이용가능한 오프닝 이동의 수를 계산하기를 원한다고 가정한다. 첫 번째 이동 후, 플레이어는 그 첫 번째 움직임 등의 결과로서 가능한 이동을 계산한다. 그 이동의 결과로서 모든 가능한 이동을 재계산하는 대신에, 플레이어는 체스 게임이 더 빨라지도록 특정 구성에 따라 행해질 수 있는 모든 가능한 이동의 리스트를 유지한다. 플레이어는 매번 가능한 이동을 재계산하는 대신에 메모를 유지한다. 이 예시적인 모델은 시스템이 가능한 한 적은 에러를 축적할 수 있게 하는 기억 동작과 관련된 비버 세트에 적용된다. 각 당사자는 그들의 종단에 비버 세트를 생성한다. 알고리즘 예에서, 시스템은 비버 세트를 생성하고 데이터에 대해 알고리즘을 실행한다.
다른 예로서, 메모이제이션 기법들은 두 당사자들 사이의 각 트랜잭션에 대해 적용될 수 있다. 일 예에서, 다수의 EKG(예를 들어, 50개의 EKG)가 배치 처리를 위해 지정될 수 있다. 동일한 비버 세트가 세트 내의 각 EKG에 대해 재계산하기 보다는 모든 50개의 EKG에 대해 사용될 수 있다. 그러나, 패턴 인식을 좌절시키기 위해, 비버 세트는 분산 방식으로 다음 트랜잭션(예를 들어, EKG의 다음 배치)에서 재생될 수 있다.
본 개시의 다른 양태는 알고리즘 서브세트들에 의해 데이터 서브세트들을 처리할 때 추가적인 효율을 제공하는 것에 관한 것이다. 알고리즘은 두 부분으로 분할되어 트랜잭션에서 두 당사자 사이에 분배된다. 제어 비트는 회로의 실제 최종 평가가 무엇인지를 궁극적으로 해독하는 상이한 데이터 서브세트 및 알고리즘 서브세트에 대한 계산을 수행하는 2개의 상이한 스폿 또는 위치 사이에서 사용될 것이다.
여기에 개시된 하나의 접근법은 더 적은 통신 홉들과의 승산들을 허용하기 위해 비버 세트들을 사용한다. 비버 세트(또는 유사한 수학적 구조)는 위에서 소개되었고 계산 시(예를 들어, 알고리즘이 암호화 및/또는 분배된 후)에 이용되어 계산이 발생하는 상이한 위치들 또는 디바이스들 사이의 교환의 양을 축소시킬 수 있다. 이 접근법은 교환이 필요하기 전에 계산이 더 빨리 수행될 수 있게 한다. 이 접근법은 뉴트럴 네트워크의 다양한 계층들에서의 필터들의 맥락에서 다음에 설명된다.
도 9d는 예시적인 방법(948)을 도시한다. 방법은 단계(950)에서, 하나 이상의 컴퓨팅 디바이스들을 통해, 뉴트럴 네트워크의 제1 계층 내의 복수의 필터들을 제1 세트의 필터들 및 제2 세트의 필터들로 분할하는 단계, 및 단계(952)에서, 제1 출력들의 세트를 산출하기 위해 하나 이상의 컴퓨팅 디바이스들을 통해 제1 필터들의 세트의 각각을 뉴트럴 네트워크의 입력에 적용하는 단계, 그리고 단계(944)에서, 필터들의 제2 세트와 연관된 제2 출력들의 세트의 획득을 포함하고, 제2 입력들의 세트는 뉴트럴 네트워크의 입력으로의 제2 필터들 세트의 각 적용에 기초한다. 단계(956)에서, 복수의 필터들로부터의 동일한 필터에 대응하는 제1 세트의 필터들 및 제2 세트의 필터들 내의 필터들의 각 세트에 대해, 방법은 하나 이상의 컴퓨팅 디바이스들을 통해 그리고 뉴트럴 네트워크의 제2 계층에서, 필터들의 세트 내의 제1 필터와 연관된 출력들의 제1 세트 중 각자의 출력을 필터들의 세트의 제2 필터와 연관된 입력들의 제2 세트 중 각 출력과 집성하여 필터들의 제1 세트 및 필터들 제2 세트와 연관된 집성된 출력들의 세트를 산출하는 단계를 포함한다.
방법은 단계(958)에서, 하나 이상의 컴퓨팅 디바이스들을 통해, 제1 세트의 가중치들 및 제2 세트의 가중치들을 산출하기 위해 뉴트럴 네트워크의 각 나머지 계층에서 활성화된 특정 뉴런들의 각 가중치들을 분할하는 단계를 더 포함하고, 특정 뉴런들은 집성된 출력들의 세트에 적용된 하나 이상의 활성화 함수들에 기초하여 활성화된다. 각 나머지 계층으로부터의 각 특정 뉴런에서, 방법은 단계(960)에서, 하나 이상의 컴퓨팅 디바이스들을 통해, 각 특정한 뉴런과 연관된 각 필터 및 가중치들의 제1 세트로부터의 제2 대응하는 가중치를 적용하여, 뉴런 출력들의 제1 세트를 산출하는 단계, 및 단계(962)에서, 특정한 뉴런들과 연관된 뉴런 출력들 중 제2 세트를 획득하는 단계로서, 뉴런 입력들의 제2 세트는 가중치들의 제2 세트로부터의 2 대응하는 가중치에 대한 각 특정한 뉴론과 연관된 각 필터의 적용에 기초하는 뉴런 출력들을 획득하는 단계를 포함한다. 방법은 식별된 단계들 중 임의의 하나 이상을 임의의 순서로 포함할 수 있다.
도 10은 본원에 기술된 바와 같이 처리된 알고리즘을 나타낼 수 있는 예시적인 뉴트럴 네트워크(1000)을 도시한다. 뉴트럴 네트워크는 종종 시각적 이미지를 분석 또는 평가하는데 사용되거나 이미지 인식, 비디오 인식, 음성 또는 자연어 처리 등에 사용될 수 있다. 컨볼루셔널 뉴럴 네트워크(CNNs)는 입력을 수신하고 입력을 컨볼빙하고 그것을 다음 은닉 계층(104A) 또는 은닉 계층들의 그룹(1004A, 1004B, 1004C)으로 전달하는 입력 계층(1002)을 가질 것이다. 각 계층은 이전 계층의 제한된 서브영역일 수 있는 이전 계층으로부터의 입력을 수신한다. CNN(1000)의 은닉 계층들은 승산 또는 다른 내적(dot product)과 컨벌루션하는 일련의 컨벌루션 계층들을 포함할 수 있다. 활성화 함수, 또는 Re-LU 계층은 후속하여, 은닉층들(1004A, 1004B, 1004C)로서 지칭되는 풀링층들, 완전 접속층들 및 정규화층들과 같은 추가적인 컨볼루션들이 뒤따른다."은닉된"이라는 용어는 활성화 함수 및 최종 컨볼루션에 의해 마스킹되는 입력들 및 출력들로 인해 사용된다. 최종 컨벌루션은 출력 계층(1006)에서 최종 제품을 보다 정확하게 가중하기 위한 역전파를 포함할 수 있다. 수학적으로, "컨볼루션"은 내적 슬라이딩(sliding dot product) 또는 상호-상관(cross-correlation)을 적용하는 것을 포함할 수 있다.
뉴트럴 네트워크에서의 각 뉴런은 출력 값을 계산한다. 이것은 이전 계층으로부터의 입력 값들에 특정 함수를 적용한다. 적용되는 함수는 가중치의 벡터 및 바이어스에 의해 결정될 수 있다. 학습 프로세스는 반복적으로 바이어스 및 가중치를 조정하는 것을 포함한다. 일 양태에서, 가중치들 및 바이어스의 벡터는 필터들로 불리고 입력에서의 특정 특징들을 나타낸다. 예를 들어, 특징들은 컬러, 또는 이미지의 형상을 포함할 수 있다. CNN에서, 단일 필터가 필터를 공유하는 그룹 또는 모든 수용 필드에 걸쳐 사용될 수 있기 때문에, 일부 뉴런은 메모리 요건을 축소시킬 수 있는 동일한 필터를 공유할 수 있다. 다른 양태에서, 각 수용 필드는 그 자신의 바이어스 및 벡터 가중을 가질 수 있다. 출력 계층(1006)은 뉴트럴 네트워크 프로세스의 결과를 제공한다.
CNN들이 본 개시에서 주로 언급되지만, 본 개시는 임의의 특정 유형의 뉴트럴 네트워크 또는 기계 학습 기술에 제한되지 않는다.
도 11은 CNN(1100)의 예시적인 적용을 도시한다. 입력 계층(1102)은 도시된 바와 같이 이미지 또는 이미지의 특정 부분을 처리하기 시작할 것이다. 이미지는 하나 이상의 컨벌루션 은닉된 레이어(1104A)에 의해 상술한 바와 같이 처리된 후, 풀링 은닉된 레이어(1104B)로 전달될 것이다. 풀링 계층은 하나의 계층에서의 뉴런 클러스터들의 출력들을 다음 계층에서의 단일 뉴런으로 조합함으로써 데이터의 차원들을 축소시킬 수 있다. 글로벌 풀링은 컨볼루션 계층의 모든 뉴런들에 대해 동작할 수 있다. 또한, 풀링은 최대 또는 평균을 계산할 수 있다. 최대 풀링은 이전 계층에서 뉴런들의 클러스터 각각으로부터의 최대값을 사용한다. 평균 풀링은 이전 계층에서 뉴런들의 클러스터 각각으로부터의 평균값을 사용한다. 풀링 계층(1104A)은 이들 동작들 중 임의의 것을 수행할 수 있다.
완전히 연결된 계층들(1104C)은 하나의 계층의 모든 뉴런을 다른 계층의 모든 뉴런에 연결한다. 이 계층은 전통적인 다층 퍼셉트론 뉴트럴 네트워크(MLP)과 유사하다. 평탄화된 행렬은 이미지를 분류하기 위해 완전히 연결된 계층을 통과한다. 평탄 계층은 공유분들을 재배열하는 것을 수반할 수 있는 데이터의 재배열이다. 출력 이미지(1110)는 이후 분류될 수 있다. 예를 들어, 출력은 이미지를 공원 또는 도시 등으로 식별할 수 있다.
컨볼루셔널 뉴럴 네트워크는 많은 상이한 계층들을 통해 데이터를 처리한다. 시스템은 먼저 CNN의 한 계층에서 컨볼루션 연산을 적용한다. 1100. 그 후, 다음 계층은 최대 풀(max-pool)일 수 있으며, 여기서 시스템은 행렬들 각각에서 컨볼루션 연산들을 적용한 후 최대값을 취한다. CNN의 제1 계층에서, 시스템은 컨벌루션 연산을 수행하지만 CNN에 대한 분할 버전을 수행한다. 이미지 데이터에 대해, 예를 들어, 시스템은 여전히 전체 이미지에 걸쳐 동일한 윈도우를 픽셀 단위로 실행한다. 그러나, 필터(가중치, 바이어스, 즉 숫자)는 2개의 분할로 변환되어, 필터의 1은 0.5가 되고, 2는 1과 1이 되며, 3은 2와 1이 된다. 이미지들은 이러한 방식으로 또한 분할될 수 있다.
그 후, 시스템은 이 이미지의 분할된 버전들에 대해 다시 동작을 실행한다. 일 예에서, 시스템은 컬러 채널들 각각에 대한 픽셀 값들을 랜덤하게 분할할 수 있다. 컬러 컨텍스트에서, 값들은 0 내지 256의 임의의 값일 수 있다. 유사하게, 시스템은 컨볼루션 연산을 수행할 수 있으며, 여기서 다른 측은 일부 연산이 발생하고 있음을 인식하지만, 필터가 무엇인지를 구체적으로 알지 못한다. 그 후, 다음 계층인 최대-풀 계층에서 응집이 발생할 수 있다. 그 후, 컨볼루션들 및 최대-풀 연산들이 어떻게 발생하는지에 기초하여, 뉴트럴 네트워크의 특정 지점들이 활성화될 수 있다. 이들 지점들은 통상적으로 뉴트럴 네트워크에서 뉴런으로 지칭되고, 활성화 함수는 Re-LU 함수, 시그모이드 함수 또는 어떤 다른 함수일 수 있다.
Re-LU 기능의 예시적인 적용에서, Re-UR 기능은 본질적으로 소정의 .0[지점 0]까지 상승하고, 그 후, 뉴런은 1이다. 뉴런은 온 또는 오프이다. 이미지의 입력 값들에 따라, Re-LU 함수는 뉴트럴 네트워크에서의 특정 지점들을 턴온하고, 본질적으로 별개의 뉴런들을 턴온 및 턴오프할 것이고, 이들 상이한 뉴런들은 상이하게 가중된다. 본 개시에 따르면, 시스템은 교환에 참여하는 엔티티들이 자신이 무엇을 하고 있는지를 알지 않도록 여기서 가중치들을 분할한다.
시스템은 이러한 종류의 동작들을 적용하여 계층별로 데이터를 처리하도록 진행한다. 최종 계층은 소프트맥스 계층일 수 있다.이 접근법은 시스템이 그것을 은닉하기 위해 복잡한 수학을 수행하더라도 동일한 softmax 계층을 출력한다. softmax 계층은 뉴트럴 네트워크의 출력을 나타내는 것이다. 이 프로세스의 하나의 기술적 이점은 그것이 더 적은 네트워크 홉들을 얻는다는 것이다.
또한, 도 11 및 CNN의 다양한 계층들을 참조하여, 본 개시는 다음으로 CNN(1100)의 예시적인 평가를 통해 스텝핑될 것이다. 하나의 예에서 입력 A: n*m*d를 가정하자. 이에 따라, 각 커널은(m*n) 크기 및 깊이 d로 입력의 각 계층을 따라 이동한다. 통신의 수를 최소화하기 위해, 본 발명은 모든 승산을 먼저 계산한 다음 가산을 계산하는 것을 제공한다. 각 커널에 대해, 시스템은 통신을 필요로 할 것이다.
평탄층은 공유분들을 재배열하는데 사용될 수 있다. 최대 풀링 계층(1104B)이 사용될 수 있다. 최대 풀링을 위한 두 가지 예시적인 접근법이 있다. 먼저, inputA > inputB이면, 함수 f = max(inputA, inputB)의 출력은 A이다. 이러한 경우에, 시스템은 2개의 통신을 갖는 SMPC를 사용하여 최대 2개의 입력을 찾을 수 있다. 또 다른 예에서, inputA > inputB이면, 함수 f = max(inputA, inputB)의 출력은 inputA일 수 있다. 이 경우, 시스템은 비교 회로를 생성하고 더 큰 값을 출력하기 위해((1-(A>B))*B+(A >B)*A를 사용할 필요가 있다. 제1 방법에 비해 이 방법의 이점은 어떤 당사자도 최대값의 위치에 대해 아무것도 학습하지 않고, 다른 한편으로는 계산 및 시간의 관점에서 비용이 든다는 것이다.
시그모이드 함수는 위에서 언급하였다. 시그모이드 함수는 ex/(1+ ex)이다. 입력 X에 대한 이 함수를 평가하기 위해, 새로운 아이디어가 다음과 같이 적용된다. 프로세스는 두 부분으로 나뉜다. 먼저, 본 시스템은 ex을 계산하기 위해 본원에 개시된 비버 세트 아이디어를 사용할 것이다. 다음을 포함하는 사전 처리 부분이 있다:
Figure pct00098
사용자 A 및 사용자 B는 제1 열이 랜덤하고 제2 열이 랜덤하며 제2 열은 1/erA 및 1/erB(여기서 rA 및 rB는 제1 열에서의 값들임)가 되도록 2개의 랜덤 비버 세트들을 생성한다.
Figure pct00099
사용자 A는 enc(rA) 및 encA(1/erA)를 사용자 B에 발송한다.
Figure pct00100
사용자 B는 랜덤 열 [a]B = m1 및 [b]B = m2를 생성하고, 이는 최종 비버 세트로부터의 사용자 B의 공유분이다.
Figure pct00101
사용자 B는 encA(m1 - (rA + rB)) 및 encA(m2 - (1/erA x 1/erB)를 계산하고, 이것들을 사용자 A에 발송한다.
Figure pct00102
사용자 A의 공유분은 [a]A = (rA + rB) - m1 및 [b]A = (1/erA x 1/erB) - m2이다.
다음으로, ex를 계산하기 위한 접근법이 제시된다.
Figure pct00103
사용자 A는 [x]A + [a]A(여기서, a는 제1 열이고, 제n 행(n은 본 시스템이 하나의 행에 걸쳐 소비하는 각 a에 대한 카운터임)를 개방한다.
Figure pct00104
사용자 B는 또한 [x]B + [a]B를 개방하여서, 양 당사자들이 x + a를 학습한다.
Figure pct00105
ex의 사용자 A의 공유분은 (e(x+a)) x [b]A이고, ex의 사용자 B의 공유분은 (e(x+a) x [b]B)이다.
다음으로, x/y에 대한 제산 알고리즘의 예가 제시된다.
Figure pct00106
사용자 A 및 사용자 B는 2개의 난수들 [r]A 및 [r]B를 선택하고, yr 및 1/yr을 공동으로 계산한다.
Figure pct00107
사용자 A 및 사용자 B는 [xr]A 및 [xr]B를 공동으로 계산한다.
Figure pct00108
사용자 A의 제산의 공유분은 [xr]A/yr 이고, 사용자 B의 제산의 공유분은 [xr]B/yr이다.
S자형 함수가 제산 및 지수함수로 구성되기 때문에, 시스템은 위에서 설명된 바와 같이 이를 계산할 수 있다. 본원은 뉴트럴 네트워크에 대한 ReLU 활성화를 계산하기 위해 지수 발명을 이용한다. 이는 S자형 기능을 통해 거의 ReLU에 의해 달성된다. S자형-유사 함수로서의 Relu 함수는 또한 전술한 아이디어들의 도함수로서 계산될 수 있다. Relu를 계산하기 위한 몇몇 가능한 접근법들이 존재한다. 첫째, 양 당사자들은 x가 0보다 크거나 작다는 것을 알게 된다. 0보다 큰 경우, 당사자들은 공유분들을 변경하지 않는다. 0보다 작으면, 그들의 공유분들은 0으로 대체된다. 이러한 접근법은 일부 보안 문제들을 갖는다. 다른 접근법에서, 어떤 당사자도 아무것도 알 수 없지만, 게이트 레벨에서 동작하기 때문에 더 느리다.
완전히 연결된 계층(1104C)에서, 각 계층은 입력에 대한 행렬 승산으로서 작용하고, SMPC는 가산 및 승산을 지원한다. 이 계층을 은닉하기 위해, 시스템은 모든 입력 가중치가 0인 일부 더미 노드를 추가하므로, 가중치도 네트워크의 구조도 습득되지 않는다.
컨벌루션 뉴트럴 네트워크의 기본 아이디어는 시스템이 다음 계층까지 컨볼루션 망의 출력을 필요로 하지 않는다는 것이다. 시스템은 승산 통신들을 연기할 수 있다. 즉, 각 필터, fi 및 입력 I에 대해, 시스템은 필터를 따라 이동시키고 승산을 부분적으로 계산할 수 있다. 또는 시스템은 통신이 다음 계층으로 발생하기 전에 행해질 필요가 무엇이든 수행할 수 있다.
도 12는 본원에 개시된 원리들에 따른 뉴트럴 네트워크를 처리하는 방법(1200)을 도시한다. 단계(1202)에서, 방법은 뉴트럴 네트워크의 제1 계층 내의 복수의 필터를 제1 필터 세트 및 제2 필터 세트로 분할하는 단계를 포함한다. 단계(1204)에서, 방법은 제1 세트의 출력들을 산출하기 위해 뉴트럴 네트워크의 입력에 필터들의 제1 세트 각각을 적용하는 단계, 및 단계(1206)에서, 제2 세트의 필터들과 연관된 출력들의 제2 세트를 획득하는 단계를 포함하고, 출력들의 제2 세트는 뉴트럴 네트워크의 입력에 대한 필터들 각 적용에 기초한다. 단계(1208)에서, 방법은 복수의 필터들로부터의 동일한 필터에 대응하는 제1 세트의 필터들 및 제2 세트의 필터들 내의 필터들의 각 세트에 대해, 뉴트럴 네트워크의 제2 계층에서, 필터들의 세트 내의 제1 필터와 연관된 출력들의 제1 세트 중 각자의 출력을 필터들의 세트의 제2 필터와 연관된 입력들의 제2 세트 중 각 출력과 집성하여 필터들의 제1 세트 및 필터들 제2 세트와 연관된 집성된 출력들의 세트를 산출하는 단계를 포함한다. 단계(1210)에서, 방법은 제1 세트의 가중치 및 제2 세트의 가중치를 산출하기 위해 뉴트럴 네트워크의 각 나머지 계층에서 활성화된 특정 뉴런의 각 가중치를 분할하는 단계를 포함하고, 특정 뉴런은 세트된 출력의 세트에 적용된 하나 이상의 활성화 함수에 기초하여 활성화된다. 단계(1212)에서, 방법은 각 나머지 계층으로부터의 각 특정 뉴런에서, 제1 세트의 뉴런 출력들을 산출하기 위해, 각 특정한 뉴런과 연관된 각 필터 및 가중치들의 제1 세트로부터 제1 대응하는 가중치를 적용하는 단계를 포함한다. 단계(1214)에서, 방법은 특정 뉴런들과 연관된 뉴런 출력들의 제2 세트를 획득하는 단계를 포함하고, 뉴런 출력의 제2 세트는 가중치들의 제2 세트로부터 제2 대응하는 가중치에 대한 각 특정 뉴런과 연관된 각 필터의 적용에 기초한다. 방법은 단계(1216)에서, 각 특정 뉴런에 대해, 특정 뉴런과 연관된 제1 세트의 뉴런 출력들 중 하나를 특정 뉴런들과 연관된 제2 세트의 뉴런 입력들 중 하나와 집성하여 특정 뉴런들에 연관된 집성된 뉴런 출력들을 산출하는 단계, 및 단계(1218)에서, 집성된 뉴런 출력들 중 하나 이상에 기초하여 뉴트럴 네트워크의 출력을 생성하는 단계를 포함한다.
일 양태에서, 복수의 필터들은 복수의 필터 값들을 포함할 수 있고, 여기서, 필터들의 제1 세트는 값들의 제1 세트를 포함하고, 필터들 제2 세트는 값들을 포함한다. 전술한 바와 같이, 뉴트럴 네트워크의 입력은 이미지 데이터 또는 임의의 다른 유형의 데이터를 포함할 수 있다. 출력들의 제1 세트는 필터들의 제1 세트 내의 각 필터로부터의 제1 개별 출력을 더 포함할 수 있다.
일 양태에서, 뉴트럴 네트워크의 제1 계층은 컨볼루션 계층을 포함할 수 있고 뉴트럴 네트워크는 컨볼루션 뉴트럴 네트워크를 포함할 수 있다. 그러나, 전술한 바와 같이, 본 개시는 특정 컨볼루션 뉴트럴 네트워크들에 제한되지 않는다. 뉴트럴 네트워크에서의 적어도 하나의 나머지 계층은 풀링 계층, 정규화 계층, 완전 접속 계층, 및 출력 계층 중 적어도 하나를 포함할 수 있다. 정규화 계층은 은닉 계층들 중 하나일 수 있다. 최신 기술의 트레이닝 심층 뉴트럴 네트워크는 계산 비용이 많이 들 수 있다. 훈련 시간을 축소시키는 하나의 방법은 뉴트럴 네트워크에서 뉴런의 활동을 정규화하는 것이다. 배치 정규화는 평균 및 분산을 계산하기 위해 훈련 경우들의 미니-배치(mini-batch)에 걸친 뉴런에 대한 합산된 입력의 분포를 사용하고, 그 후 평균 및 분산은 각 훈련 경우 상에서 그 뉴런에 대한 합산된 입력을 정규화하기 위해 사용된다. 이것은 피드-포워드 뉴트럴 네트워크들에서 트레이닝 시간을 상당히 축소시킨다. 일 양태에서, 정규화 계층을 사용하는 것은 은닉된 상태 다이내믹스를 안정화시킬 수 있다.
다른 양태에서, 하나 이상의 활성화 함수는 정류된 선형 단위 함수, 시그모이드 함수, 쌍곡선 탄젠트 함수, 및 소프트맥스 함수 중 적어도 하나를 포함할 수 있다.
뉴트럴 네트워크의 입력은 이미지를 포함할 수 있고 뉴트럴 네트워크의 출력은 이미지에서 검출된 하나 이상의 특징의 표시 및/또는 이미지에서 하나 이상의 특징들의 분류 중 적어도 하나를 포함할 수 있다.
다른 양태에서, 복수의 필터들을 제1 세트의 필터들 및 제2 세트의 필터들로 분할하는 단계는 복수의 필터들에서의 각 필터를, 조합될 때, 필터의 값과 동일한 제1 값과 제2 값의 세트로 랜덤하게 분할하는 단계를 포함할 수 있다.
방법은 필터들의 제2 세트를 원격 컴퓨팅 디바이스로 발송하는 단계 및 필터들의 제2 세트와 연관된 출력들의 2 세트를 원격 컴퓨팅 디바이스로부터 획득하는 단계를 더 포함할 수 있다.다른 양태에서, 방법은 가중치들의 제2 세트를 원격 컴퓨팅 디바이스로 발송하는 단계 및 원격 컴퓨팅 디바이스로부터 특정 뉴런들과 연관된 뉴런 출력들의 제2 세트를 획득하는 단계를 포함할 수 있다.
도 13은 데이터 동작 및 요청을 처리하고, 데이터 컨텐츠 및/또는 메타데이터를 저장하고, 다른 컴퓨팅 동작을 수행하는데 사용될 수 있는 시스템(1300)의 예시적인 컴퓨팅 시스템 아키텍처를 도시한다.이 예에서, 시스템(1300)의 구성요소들은 버스와 같은 접속부(1305)를 사용하여 서로 전기 통신한다.시스템(1300)은 처리 유닛(CPU 또는 처리기)(1310), 및 ROM(1320) 및 RAM(1325)과 같은 메모리(1315)를 포함하는 다양한 시스템 구성요소들을 처리기(1330)에 조합하는 접속부(1305)를 포함한다.시스템(1300)은 처리기(1310)와 직접 연결되거나, 이에 매우 근접하거나, 이의 일부로서 통합된 고속 메모리의 캐시를 포함할 수 있다.시스템(1300)은 처리기(1310)에 의한 신속한 액세스를 위해 메모리(1315) 및/또는 저장 디바이스(1330)로부터 데이터를 캐시(1312)에 복사할 수 있다.이러한 방식으로, 캐시는 데이터를 대기하는 동안 처리기(1310) 지연들을 회피하는 성능 부스트를 제공할 수 있다.이들 및 다른 모듈들은 다양한 동작들을 수행하도록 처리기(1310)를 제어하거나 또는 제어하도록 구성될 수 있다.다른 메모리(1315)도 역시 사용할 수 있다.메모리(1315)는 상이한 성능 특성을 갖는 다수의 상이한 유형의 메모리를 포함할 수 있다.처리기(1310)는 임의의 범용 처리기, 및 저장 디바이스(1330)에 저장된 서비스 1(1332), 서비스 2(1334), 및 서비스 3(1336)과 같은 하드웨어 또는 소프트웨어 서비스를 포함할 수 있으며, 이는 소프트웨어 명령들이 실제 처리기 설계에 통합되는 특수-목적 처리기뿐만 아니라 처리기(1410)를 제어하도록 구성된다.처리기(1310)는 다수의 코어들 또는 처리기들, 버스, 메모리 제어기, 캐시 등을 포함하는 완전히 자체-포함된 컴퓨팅 시스템일 수 있다.
컴퓨팅 시스템(1300)과의 사용자 상호작용을 가능하게 하기 위해, 입력 디바이스(1345)는 스피치를 위한 마이크로폰, 제스처 또는 그래픽 입력을 위한 터치 감지 스크린, 키보드, 마우스, 모션 입력, 스피치 등과 같은 임의의 수의 입력 메커니즘들을 나타낼 수 있다출력 장치(1335)는 또한 당업자에게 공지된 다수의 출력 메커니즘 중 하나 이상일 수 있다.일부 예에서, 멀티모달 시스템은 사용자가 컴퓨팅 시스템(1300)과 통신하기 위해 다수의 유형의 입력을 제공하는 것을 가능하게 할 수 있다.통신 인터페이스(1340)는 일반적으로 사용자 입력 및 시스템 출력을 관리 및 관리할 수 있다. 임의의 특정 하드웨어 장치에 대한 동작에 대한 제한은 없으며, 이에 따라 여기서의 기본 특징들은 개발될 때 개선된 하드웨어 또는 펌웨어 장치들을 쉽게 대체할 수 있다.
저장 디바이스(1330)는 비휘발성 메모리이고, 자기 카세트, 플래시 메모리 카드, 고체 상태 메모리 장치, 디지털 다기능 디스크, 카트리지, RAM(1325), ROM(1320) 및 이들의 하이브리드와 같은 컴퓨터에 의해 액세스 가능한 데이터를 저장할 수 있는 하드 디스크 또는 다른 유형의 컴퓨터 판독가능 매체일 수 있다.
저장 디바이스(1330)는 처리기(1310)를 제어하기 위한 서비스들(1332, 1334, 1336)을 포함할 수 있다. 다른 하드웨어 또는 소프트웨어 모듈이 고려된다.저장 디바이스(1330)는 접속부(1305)에 접속될 수 있다.일 양태에서, 특정 기능을 수행하는 하드웨어 모듈은 기능을 수행하기 위해 처리기(1310), 접속(1305), 출력 디바이스(1335) 등과 같은 필요한 하드웨어 구성요소들과 관련하여 컴퓨터 판독가능 매체에 저장된 소프트웨어 구성요소를 포함할 수 있다.
설명의 명료함을 위해, 일부 경우들에서, 본 기술은 소프트웨어로 구현된 방법에서의 디바이스들, 디바이스 구성요소들, 단계들 또는 루틴들, 또는 하드웨어 및 소프트웨어의 조합들을 포함하는 기능 블록들을 포함하는 개별 기능 블록들을 포함하도록 제공될 수 있다.
일부 실시예들에서, 컴퓨터 판독가능 저장 디바이스들, 매체들, 및 메모리들은 비트 스트림 등을 포함하는 케이블 또는 무선 신호를 포함할 수 있다. 그러나, 언급될 때, 비일시적 컴퓨터 판독가능 저장 매체는 에너지, 반송파 신호, 전자기파 및 신호 그 자체와 같은 매체를 명시적으로 배제한다.
전술한 예들에 따른 방법들은 컴퓨터 판독가능 매체로부터 저장되거나 또는 다른 방식으로 이용가능한 컴퓨터 실행가능 명령어들을 사용하여 구현될 수 있다. 이러한 명령들은 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터, 또는 특수 목적 처리 디바이스로 하여금 특정 기능 또는 기능들의 그룹을 수행하게 하거나 그렇지 않으면 구성하는 명령들 및 데이터를 포함할 수 있다. 사용되는 컴퓨터 자원들의 부분들은 네트워크를 통해 액세스가능할 수 있다. 컴퓨터 실행가능 명령들은 예를 들어, 바이너리들, 어셈블리 언어, 펌웨어, 또는 소스 코드와 같은 중간 포맷 명령들일 수 있다.설명된 예들에 따른 방법들 동안 생성된 명령들, 사용된 정보, 및/또는 정보를 저장하는데 사용될 수도 있는 컴퓨터 판독가능 매체의 예들은 자기 또는 광학 디스크들, 플래시 메모리, 비휘발성 메모리가 제공된 USB 디바이스들, 네트워킹된 저장 디바이스들 등을 포함한다.
본 개시들에 따른 방법들을 구현하는 디바이스들은 하드웨어, 펌웨어 및/또는 소프트웨어를 포함할 수 있고, 다양한 폼 팩터들 중 임의의 것을 취할 수 있다. 이러한 폼 팩터들의 전형적인 예들은 랩톱들, 스마트 폰들, 소형 폼 팩터 개인용 컴퓨터들, 개인용 디지털 보조기들, 랙마운트 디바이스들, 독립형 디바이스들 등을 포함한다. 본원에 기술된 기능은 또한 주변 장치 또는 애드-인 카드(add-in card)로 구현될 수 있다. 이러한 기능은 또한 다른 예로서 단일 디바이스에서 실행되는 상이한 칩들 또는 상이한 프로세스들 사이의 회로 보드 상에서 구현될 수 있다.
명령들, 이러한 명령들을 전달하기 위한 매체, 이들을 실행하기 위한 컴퓨팅 리소스들, 및 이러한 컴퓨팅 리소스들을 지원하기 위한 다른 구조들은 본 개시들에 설명된 기능들을 제공하기 위한 수단이다.
다양한 예들 및 다른 정보가 첨부된 청구항들의 범위 내의 양태들을 설명하기 위해 사용되었지만, 당업자들이 다양한 구현들을 도출하기 위해 이들 예들을 사용할 수 있기 때문에, 그러한 예들에서의 특정 특징들 또는 배열들에 기초하여 청구항들의 제한이 암시되지 않아야 한다. 또한, 일부 주제가 구조적 특징들 및/또는 방법 단계들의 예들에 특정한 언어로 설명되었지만, 첨부된 청구항들에 정의된 주제는 반드시 이들 설명된 특징들 또는 동작들로 제한되는 것은 아니라는 것을 이해해야 한다. 예를 들어, 이러한 기능은 다르게 배포될 수 있거나, 본원에서 식별된 것 이외의 구성요소에서 수행될 수 있다. 오히려, 설명된 특징들 및 단계들은 첨부된 청구항들의 범위 내에서 시스템들 및 방법들의 구성요소들의 예들로서 개시된다.
세트 중 적어도 하나를 인용하는 클레임 언어는 세트 중 하나의 멤버 또는 세트 중 다수의 멤버가 클레임을 만족함을 나타낸다. 예를 들어, "A 및 B 중 적어도 하나"를 인용하는 클레임 언어는 A, B, 또는 A 및 B를 의미한다.
조항들
조항 1: 시스템으로서, 적어도 하나의 처리기 및 명령어들을 저장하는 컴퓨터 판독가능 저장 디바이스를 포함하며, 명령어들은 적어도 하나의 처리기에 의해 실행될 때, 적어도 하나의 처리기로 하여금: 알고리즘 제공자로부터 알고리즘을 수신하는 단계, 데이터 제공자로부터 데이터를 수신하는 단계, 및 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트에 의한 각 데이터 세트들의 개별적이고 독립적인 처리를 위해 알고리즘을 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트로 분할하는 단계 - 제1 알고리즘 서브세트와 제2 알고리즘 서브세트는 조합될 때, 알고리즘을 포함함 - 를 수행하게 하는 것인, 시스템. 단계들은 처리기로 하여금: 데이터를 제1 데이터 서브세트 및 제2 데이터 서브세트로 분할하게 하는 단계, 제1 알고리즘 서브세트 및 제1 데이터 서브세트를 처리를 위해 제1 엔티티에 송신하게 하는 단계, 및 제2 알고리즘 서브세트 및 제2 데이터 서브세트를 처리를 위해 제2 엔티티에 송신하게 하는 단계 - 제1 엔티티는 제1 데이터 서브세트로 제1 알고리즘 서브세트를 처리하고, 제2 엔티티는 제2 데이터로 제2 알고리즘 서브세트를 처리하며, 제1 엔티티 및 제2 엔티티는 제1 데이터 서브세트로 제1 알고리즘 서브세트를 처리하고 제2 데이터로 제2 알고리즘 서브세트를 처리하면서, 중간의 부분 결과들을 교환함 - 를 더 포함할 수 있다. 단계들은 처리기로 하여금: 제1 엔티티로부터, 제1 알고리즘 서브세트 및 제1 데이터 서브세트에 기초한 제1 부분 결과를 수신하고, 제2 엔티티로부터, 제2 알고리즘 서브세트 및 제2 데이터 서브세트에 기초한 제2 부분 결과를 수신하게 하는 단계, 및/또는 제1 부분 결과 및 제2 부분 결과에 기초하여 조합된 결과를 결정하게 하는 단계를 더 포함할 수 있다. 조항 1의 단계들 중 임의의 하나 이상의 단계는 임의의 순서로 수행될 수 있다.
조항 2: 조항 1에 있어서, 컴퓨터 판독가능 저장 디바이스는 추가 명령어들을 저장하며, 추가 명령어들은 적어도 하나의 처리기에 의해 실행될 때, 적어도 하나의 처리기로 하여금: 알고리즘을 부울 논리 게이트 세트로 변환하는 단계를 수행하게 하는 명령어들을 저장하며, 제1 알고리즘 서브세트는 부울 논리 게이트 세트의 제1 부울 논리 게이트 서브세트에 대응하고, 제2 알고리즘 서브세트는 부울 논리 게이트 세트의 제2 부울 논리 게이트 서브세트에 대응하는 것인, 시스템.
조항 3. 조항 1 또는 2에 있어서, 제1 부울 논리 게이트 서브세트 및 제2 부울 논리 게이트 서브세트는 AND 게이트들 및 XOR 게이트들을 포함하는 것인, 시스템.
조항 4. 조항 1 내지 3 중 어느 하나에 있어서, 알고리즘 제공자는 적어도 하나의 제1 컴퓨팅 디바이스를 포함하고, 데이터 제공자는 제2 컴퓨팅 디바이스를 포함하는 것인, 시스템.
조항 5. 조항 1 내지 4 중 어느 하나에 있어서, 컴퓨터 판독가능 저장 디바이스는 추가 명령어들을 저장하며, 추가 명령어들은 적어도 하나의 처리기에 의해 실행될 때, 적어도 하나의 처리기로 하여금: 조합된 결과를 데이터 제공자에게 발송하고, 조합된 결과의 표현을 디스플레이하는 단계를 수행하게 하는 것인, 시스템.
조항 6. 조항 1 내지 5 중 어느 하나에 있어서, 컴퓨터 판독가능 저장 디바이스는 추가 명령어들을 저장하며, 추가 명령어들은 적어도 하나의 처리기에 의해 실행될 때, 적어도 하나의 처리기로 하여금: 조합된 결과를 알고리즘 제공자에게 발송하고, 조합된 결과의 표현을 디스플레이하는 단계를 수행하게 하는 것인, 시스템.
조항 7. 조항 1 내지 6 중 어느 하나에 있어서, 알고리즘은 알고리즘 제공자에 의해 제공되는 알고리즘들의 리스트로부터 선택되는 것인, 시스템.
조항 8. 조항 1 내지 7 중 어느 하나에 있어서, 알고리즘은 부울 논리 세트, 뉴트럴 네트워크 또는 대수 회로 중 하나에 의해 표현되는 것인, 시스템.
조항 9. 조항 1 내지 8 중 어느 하나에 있어서, 컴퓨터 판독가능 저장 디바이스는 추가 명령어들을 저장하며, 추가 명령어들은 적어도 하나의 처리기에 의해 실행될 때, 적어도 하나의 처리기로 하여금: 알고리즘을 암호화하고 데이터를 암호화하는 단계를 수행하게 하는 것인, 시스템.
조항 10. 다음 단계들 중 임의의 하나 이상의 단계를 임의의 순서로 포함하는 방법으로서, 적어도 하나의 처리기에 의해, 알고리즘 제공자로부터 알고리즘을 수신하는 단계, 적어도 하나의 처리기에 의해, 데이터 제공자로부터 데이터를 수신하는 단계, 적어도 하나의 처리기에 의해, 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트에 의한 각 데이터 세트들의 개별적이고 독립적인 처리를 위해 알고리즘을 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트로 분할하는 단계 - 제1 알고리즘 서브세트와 제2 알고리즘 서브세트는 조합될 때, 알고리즘을 포함함 -, 적어도 하나의 처리기에 의해, 데이터를 제1 데이터 서브세트 및 제2 데이터 서브세트로 분할하는 단계, 제1 알고리즘 서브세트 및 제1 데이터 서브세트를 처리를 위해 제1 엔티티에 송신하는 단계, 제2 알고리즘 서브세트 및 제2 데이터 서브세트를 처리를 위해 제2 엔티티에 송신하는 단계 - 알고리즘 제공자는 제1 알고리즘 서브세트 및 제1 데이터 서브세트를 처리하고, 데이터 제공자는 제2 알고리즘 서브세트 및 제2 데이터 서브세트를 처리하며, 제1 엔티티 및 제2 엔티티는 제1 데이터 서브세트로 제1 알고리즘 서브세트를 처리하고 제2 데이터 서브세트로 제2 알고리즘 서브세트를 처리하면서, 중간의 부분 결과들을 교환함 -, 적어도 하나의 처리기에 의해, 제1 알고리즘 서브세트 및 제1 데이터 서브세트에 기초한 제1 부분 결과를 수신하고, 제2 알고리즘 서브세트 및 제2 데이터 서브세트에 기초한 제2 부분 결과를 수신하는 단계, 및/또는 적어도 하나의 처리기에 의해, 제1 부분 결과 및 제2 부분 결과에 기초하여 조합된 결과를 결정하는 단계를 포함하는, 방법.
조항 11. 조항 10에 있어서, 알고리즘을 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트로 분할하는 단계는: 알고리즘을 부울 논리 게이트 세트로 변환하는 단계를 더 포함하며, 제1 알고리즘 서브세트는 부울 논리 게이트 세트의 제1 부울 논리 게이트 서브세트에 의해 표현되고, 제2 알고리즘 서브세트는 제2 부울 논리 게이트 서브세트에 의해 표현되는 것인, 방법.
조항 12. 조항 10 또는 11에 있어서, 제1 부울 논리 게이트 서브세트 및 제2 부울 논리 게이트 서브세트는 AND 게이트들 및 XOR 게이트들을 포함하는 것인, 방법.
조항 13. 조항 10 내지 12 중 어느 하나에 있어서, 알고리즘 제공자는 적어도 하나의 제1 컴퓨팅 디바이스를 포함하고, 데이터 제공자는 제2 컴퓨팅 디바이스를 포함하는 것인, 방법.
조항 14. 조항 10 내지 13 중 어느 하나에 있어서,
조합된 결과를 데이터 제공자에게 발송하고, 조합된 결과의 표현을 디스플레이하는 단계를 수행하는 단계를 더 포함하는, 방법.
조항 15. 조항 10 내지 14 중 어느 하나에 있어서,
조합된 결과를 알고리즘 제공자에게 발송하고, 조합된 결과의 표현을 디스플레이하는 단계를 수행하는 단계를 더 포함하는, 방법.
조항 16. 조항 10 내지 15 중 어느 하나에 있어서, 알고리즘은 알고리즘 제공자에 의해 제공되는 알고리즘들의 리스트로부터 선택되는 것인, 방법.
조항 17. 조항 10 내지 16 중 어느 하나에 있어서, 알고리즘은 부울 논리 세트, 뉴트럴 네트워크 또는 대수 회로 중 하나에 의해 표현되는 것인, 방법.
조항 18. 조항 10 내지 17 중 어느 하나에 있어서, 알고리즘을 암호화하고 데이터를 암호화하는 단계를 더 포함하는, 방법.
조항 19. 하나 이상의 처리기에 의해 실행될 때, 하나 이상의 처리기로 하여금 다음 동작들 중 하나 이상의 동작을 임의의 순서로 수행하게 하는 명령어들이 저장된 비일시적 컴퓨터 판독가능 매체로서, 동작들은: 알고리즘 제공자로부터 알고리즘을 수신하는 동작, 데이터 제공자로부터 데이터를 수신하는 동작, 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트에 의한 각 데이터의 개별적이고 독립적인 처리를 위해 알고리즘을 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트로 분할하는 동작 - 제1 알고리즘 서브세트와 제2 알고리즘 서브세트는 조합될 때, 알고리즘을 포함함 -, 데이터를 제1 데이터 서브세트 및 제2 데이터 서브세트로 분할하게 하는 동작, 제1 알고리즘 서브세트 및 제1 데이터 서브세트를 제1 엔티티에 발송하는 동작, 제2 알고리즘 서브세트 및 제2 데이터 서브세트를 제2 엔티티에 발송하는 동작 - 제1 엔티티 및 제2 엔티티는 제1 데이터 서브세트로 제1 알고리즘 서브세트를 처리하고 제2 데이터로 제2 알고리즘 서브세트를 처리하면서, 중간의 부분 결과들을 교환함 -, 제1 엔티티로부터 제1 알고리즘 서브세트 및 제1 데이터 서브세트에 기초한 제1 부분 결과를 수신하고, 제2 엔티티로부터 제2 알고리즘 서브세트 및 제2 데이터 서브세트에 기초한 제2 부분 결과를 수신하는 동작, 및/또는 제1 부분 결과 및 제2 부분 결과에 기초하여 조합된 결과를 결정하는 동작인 것인, 비일시적 컴퓨터 판독가능 매체.
조항 20. 조항 19에 있어서, 하나 이상의 처리기에 의해 실행될 때, 하나 이상의 처리기로 하여금: 알고리즘을 부울 논리 게이트 세트로 변환하게 하는 명령어들을 저장하며, 제1 알고리즘 서브세트는 부울 논리 게이트 세트의 제1 부울 논리 게이트 서브세트에 대응하고, 제2 알고리즘 서브세트는 부울 논리 게이트 세트의 제2 부울 논리 게이트 서브세트에 대응하는 것인, 비일시적 컴퓨터 판독가능 매체.

Claims (20)

  1. 시스템으로서,
    적어도 하나의 처리기; 및
    명령어들을 저장하는 컴퓨터 판독가능 저장 디바이스를 포함하며, 상기 명령어들은 상기 적어도 하나의 처리기에 의해 실행될 때, 상기 적어도 하나의 처리기로 하여금:
    알고리즘 제공자로부터 알고리즘을 수신하고;
    데이터 제공자로부터 데이터를 수신하고;
    제1 알고리즘 서브세트 및 상기 제2 알고리즘 서브세트에 의한 각 데이터 세트들의 개별적이고 독립적인 처리를 위해 상기 알고리즘을 상기 제1 알고리즘 서브세트 및 상기 제2 알고리즘 서브세트로 분할하고 - 상기 제1 알고리즘 서브세트와 상기 제2 알고리즘 서브세트는 조합될 때, 상기 알고리즘을 포함함 -;
    상기 데이터를 제1 데이터 서브세트 및 제2 데이터 서브세트로 분할하고;
    상기 제1 알고리즘 서브세트 및 상기 제1 데이터 서브세트를 처리를 위해 제1 엔티티에 송신하고;
    상기 제2 알고리즘 서브세트 및 상기 제2 데이터 서브세트를 처리를 위해 제2 엔티티에 송신하고 - 상기 제1 엔티티는 상기 제1 데이터 서브세트로 상기 제1 알고리즘 서브세트를 처리하고, 상기 제2 엔티티는 상기 제2 데이터로 상기 제2 알고리즘 서브세트를 처리하며, 상기 제1 엔티티 및 상기 제2 엔티티는 상기 제1 데이터 서브세트로 상기 제1 알고리즘 서브세트를 처리하고 상기 제2 데이터로 상기 제2 알고리즘 서브세트를 처리하면서, 중간의 부분 결과들을 교환함 -;
    상기 제1 엔티티로부터, 상기 제1 알고리즘 서브세트 및 상기 제1 데이터 서브세트에 기초한 제1 부분 결과를 수신하고, 상기 제2 엔티티로부터, 상기 상기 제2 알고리즘 서브세트 및 상기 제2 데이터 서브세트에 기초한 제2 부분 결과를 수신하며;
    상기 제1 부분 결과 및 상기 제2 부분 결과에 기초하여 조합된 결과를 결정하게 하는 것인, 시스템.
  2. 제1항에 있어서, 상기 컴퓨터 판독가능 저장 디바이스는 추가 명령어들을 저장하며, 상기 추가 명령어들은 상기 적어도 하나의 처리기에 의해 실행될 때, 상기 적어도 하나의 처리기로 하여금:
    상기 알고리즘을 부울 논리 게이트 세트로 변환하게 하며, 상기 제1 알고리즘 서브세트는 상기 부울 논리 게이트 세트의 제1 부울 논리 게이트 서브세트에 대응하고, 상기 제2 알고리즘 서브세트는 상기 부울 논리 게이트 세트의 제2 부울 논리 게이트 서브세트에 대응하는 것인, 시스템.
  3. 제2항에 있어서, 상기 제1 부울 논리 게이트 서브세트 및 상기 제2 부울 논리 게이트 서브세트는 AND 게이트들 및 XOR 게이트들을 포함하는 것인, 시스템.
  4. 제1항에 있어서, 상기 알고리즘 제공자는 적어도 하나의 제1 컴퓨팅 디바이스를 포함하고, 상기 데이터 제공자는 제2 컴퓨팅 디바이스를 포함하는 것인, 시스템.
  5. 제1항에 있어서, 상기 컴퓨터 판독가능 저장 디바이스는 추가 명령어들을 저장하며, 상기 추가 명령어들은 상기 적어도 하나의 처리기에 의해 실행될 때, 상기 적어도 하나의 처리기로 하여금:
    상기 조합된 결과를 상기 데이터 제공자에게 발송하고, 상기 조합된 결과의 표현을 디스플레이하게 하는 것인, 시스템.
  6. 제1항에 있어서, 상기 컴퓨터 판독가능 저장 디바이스는 추가 명령어들을 저장하며, 상기 추가 명령어들은 상기 적어도 하나의 처리기에 의해 실행될 때, 상기 적어도 하나의 처리기로 하여금:
    상기 조합된 결과를 상기 알고리즘 제공자에게 발송하고, 상기 조합된 결과의 표현을 디스플레이하게 하는 것인, 시스템.
  7. 제1항에 있어서, 상기 알고리즘은 상기 알고리즘 제공자에 의해 제공되는 알고리즘들의 리스트로부터 선택되는 것인, 시스템.
  8. 제1항에 있어서, 상기 알고리즘은 부울 논리 세트, 뉴트럴 네트워크 또는 대수 회로 중 하나에 의해 표현되는 것인, 시스템.
  9. 제1항에 있어서, 상기 컴퓨터 판독가능 저장 디바이스는 추가 명령어들을 저장하며, 상기 추가 명령어들은 상기 적어도 하나의 처리기에 의해 실행될 때, 상기 적어도 하나의 처리기로 하여금:
    상기 알고리즘을 암호화하고 상기 데이터를 암호화하게 하는 것인, 시스템.
  10. 방법으로서,
    적어도 하나의 처리기에 의해, 알고리즘 제공자로부터 알고리즘을 수신하는 단계;
    상기 적어도 하나의 처리기에 의해, 데이터 제공자로부터 데이터를 수신하는 단계;
    상기 적어도 하나의 처리기에 의해, 제1 알고리즘 서브세트 및 상기 제2 알고리즘 서브세트에 의한 각 데이터 세트들의 개별적이고 독립적인 처리를 위해 상기 알고리즘을 상기 제1 알고리즘 서브세트 및 상기 제2 알고리즘 서브세트로 분할하는 단계 - 상기 제1 알고리즘 서브세트와 상기 제2 알고리즘 서브세트는 조합될 때, 상기 알고리즘을 포함함 -;
    상기 적어도 하나의 처리기에 의해, 상기 데이터를 제1 데이터 서브세트 및 제2 데이터 서브세트로 분할하는 단계;
    상기 제1 알고리즘 서브세트 및 상기 제1 데이터 서브세트를 처리를 위해 제1 엔티티에 송신하는 단계;
    상기 제2 알고리즘 서브세트 및 상기 제2 데이터 서브세트를 처리를 위해 제2 엔티티에 송신하는 단계 - 상기 알고리즘 제공자는 상기 제1 알고리즘 서브세트 및 상기 제1 데이터 서브세트를 처리하고, 상기 데이터 제공자는 상기 제2 알고리즘 서브세트 및 상기 제2 데이터 서브세트를 처리하며, 상기 제1 엔티티 및 상기 제2 엔티티는 상기 제1 데이터 서브세트로 상기 제1 알고리즘 서브세트를 처리하고 상기 제2 데이터 서브세트로 상기 제2 알고리즘 서브세트를 처리하면서, 중간의 부분 결과들을 교환함 -;
    상기 적어도 하나의 처리기에 의해, 상기 제1 알고리즘 서브세트 및 상기 제1 데이터 서브세트에 기초한 제1 부분 결과를 수신하고, 상기 상기 제2 알고리즘 서브세트 및 상기 제2 데이터 서브세트에 기초한 제2 부분 결과를 수신하는 단계; 및
    상기 적어도 하나의 처리기에 의해, 상기 제1 부분 결과 및 상기 제2 부분 결과에 기초하여 조합된 결과를 결정하는 단계를 포함하는, 방법.
  11. 제10항에 있어서, 상기 알고리즘을 제1 알고리즘 서브세트 및 제2 알고리즘 서브세트로 분할하는 단계는:
    상기 알고리즘을 부울 논리 게이트 세트로 변환하는 단계를 더 포함하며, 상기 제1 알고리즘 서브세트는 상기 부울 논리 게이트 세트의 제1 부울 논리 게이트 서브세트에 의해 표현되고, 상기 제2 알고리즘 서브세트는 제2 부울 논리 게이트 서브세트에 의해 표현되는 것인, 방법.
  12. 제11항에 있어서, 상기 제1 부울 논리 게이트 서브세트 및 상기 제2 부울 논리 게이트 서브세트는 AND 게이트들 및 XOR 게이트들을 포함하는 것인, 방법.
  13. 제10항에 있어서, 상기 알고리즘 제공자는 적어도 하나의 제1 컴퓨팅 디바이스를 포함하고, 상기 데이터 제공자는 제2 컴퓨팅 디바이스를 포함하는 것인, 방법.
  14. 제10항에 있어서,
    상기 조합된 결과를 상기 데이터 제공자에게 발송하고, 상기 조합된 결과의 표현을 디스플레이하는 단계를 수행하는 단계를 더 포함하는, 방법.
  15. 제10항에 있어서,
    상기 조합된 결과를 상기 알고리즘 제공자에게 발송하고, 상기 조합된 결과의 표현을 디스플레이하는 단계를 수행하는 단계를 더 포함하는, 방법.
  16. 제10항에 있어서, 상기 알고리즘은 상기 알고리즘 제공자에 의해 제공되는 알고리즘들의 리스트로부터 선택되는 것인, 방법.
  17. 제10항에 있어서, 상기 알고리즘은 부울 논리 세트, 뉴트럴 네트워크 또는 대수 회로 중 하나에 의해 표현되는 것인, 방법.
  18. 제10항에 있어서, 상기 알고리즘을 암호화하고 상기 데이터를 암호화하는 단계를 더 포함하는, 방법.
  19. 명령어들이 저장된 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어들은 하나 이상의 처리기에 의해 실행될 때, 상기 하나 이상의 처리기로 하여금:
    알고리즘 제공자로부터 알고리즘을 수신하고;
    데이터 제공자로부터 데이터를 수신하고;
    제1 알고리즘 서브세트 및 상기 제2 알고리즘 서브세트에 의한 각 데이터의 개별적이고 독립적인 처리를 위해 상기 알고리즘을 상기 제1 알고리즘 서브세트 및 상기 제2 알고리즘 서브세트로 분할하고 - 상기 제1 알고리즘 서브세트와 상기 제2 알고리즘 서브세트는 조합될 때, 상기 알고리즘을 포함함 -;
    상기 데이터를 제1 데이터 서브세트 및 제2 데이터 서브세트로 분할하고;
    상기 제1 알고리즘 서브세트 및 상기 제1 데이터 서브세트를 제1 엔티티에 발송하고;
    상기 제2 알고리즘 서브세트 및 상기 제2 데이터 서브세트를 제2 엔티티에 발송하고 - 상기 제1 엔티티 및 상기 제2 엔티티는 상기 제1 데이터 서브세트로 상기 제1 알고리즘 서브세트를 처리하고 상기 제2 데이터로 상기 제2 알고리즘 서브세트를 처리하면서, 중간의 부분 결과들을 교환함 -;
    상기 제1 엔티티로부터 상기 제1 알고리즘 서브세트 및 상기 제1 데이터 서브세트에 기초한 제1 부분 결과를 수신하고, 상기 제2 엔티티로부터 상기 제2 알고리즘 서브세트 및 상기 제2 데이터 서브세트에 기초한 제2 부분 결과를 수신하며;
    상기 제1 부분 결과 및 상기 제2 부분 결과에 기초하여 조합된 결과를 결정하게 하는 것인, 비일시적 컴퓨터 판독가능 매체.
  20. 제19항에 있어서, 상기 하나 이상의 처리기에 의해 실행될 때, 상기 하나 이상의 처리기로 하여금:
    상기 알고리즘을 부울 논리 게이트 세트로 변환하게 하는 명령어들을 저장하며, 상기 제1 알고리즘 서브세트는 상기 부울 논리 게이트 세트의 제1 부울 논리 게이트 서브세트에 대응하고, 상기 제2 알고리즘 서브세트는 상기 부울 논리 게이트 세트의 제2 부울 논리 게이트 서브세트에 대응하는 것인, 비일시적 컴퓨터 판독가능 매체.
KR1020227020594A 2019-12-13 2020-12-10 데이터 및 알고리즘의 인코딩을 위한 시스템 및 방법 KR20220116455A (ko)

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,085 US11582203B2 (en) 2019-12-13 2020-03-24 Systems and methods for encrypting data and algorithms
US16/828,085 2020-03-24
PCT/US2020/064387 WO2021119365A1 (en) 2019-12-13 2020-12-10 Systems and methods for encrypting data and algorithms

Publications (1)

Publication Number Publication Date
KR20220116455A true KR20220116455A (ko) 2022-08-23

Family

ID=71403979

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227020594A KR20220116455A (ko) 2019-12-13 2020-12-10 데이터 및 알고리즘의 인코딩을 위한 시스템 및 방법
KR1020227020592A KR20220113714A (ko) 2019-12-13 2020-12-10 분할 데이터 및 분할 알고리즘에 대한 효율적인 계산을 위한 시스템 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227020592A KR20220113714A (ko) 2019-12-13 2020-12-10 분할 데이터 및 분할 알고리즘에 대한 효율적인 계산을 위한 시스템 및 방법

Country Status (6)

Country Link
US (7) US12026219B2 (ko)
EP (2) EP4062620A4 (ko)
JP (2) JP2023506234A (ko)
KR (2) KR20220116455A (ko)
CA (2) CA3159677A1 (ko)
WO (2) WO2021119367A1 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111543025A (zh) 2017-08-30 2020-08-14 因福尔公司 高精度隐私保护实值函数评估
AU2020225657A1 (en) * 2019-02-22 2021-08-19 Inpher, Inc. Arithmetic for secure multi-party computation with modular integers
US11599671B1 (en) 2019-12-13 2023-03-07 TripleBlind, Inc. Systems and methods for finding a value in a combined list of private values
US12088565B2 (en) 2019-12-13 2024-09-10 Triplelind Holdings, Inc. Systems and methods for privacy preserving training and inference of decentralized recommendation systems from decentralized data
US11531782B1 (en) * 2022-05-13 2022-12-20 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
US11431688B2 (en) 2019-12-13 2022-08-30 TripleBlind, Inc. Systems and methods for providing a modified loss function in federated-split learning
US11528259B2 (en) 2019-12-13 2022-12-13 TripleBlind, Inc. Systems and methods for providing a systemic error in artificial intelligence algorithms
US12026219B2 (en) 2019-12-13 2024-07-02 TripleBlind, Inc. Systems and methods for efficient computations on split data and split algorithms
US12039543B2 (en) * 2020-04-06 2024-07-16 Capital One Services, Llc System and method for establishing secure transactions among a group of transacting parties
CN111523642B (zh) * 2020-04-10 2023-03-28 星宸科技股份有限公司 用于卷积运算的数据重用方法、运算方法及装置、芯片
EP4147178A4 (en) 2020-05-06 2023-10-18 Tripleblind, Inc. SYSTEMS AND METHODS FOR PROVIDING A PRIVATE MULTIMODAL ARTIFICIAL INTELLIGENCE PLATFORM
CN111859454B (zh) * 2020-07-28 2024-03-29 桂林慧谷人工智能产业技术研究院 防御基于图神经网络链路预测的隐私保护方法
CN112001452B (zh) * 2020-08-27 2021-08-27 深圳前海微众银行股份有限公司 特征选择方法、装置、设备及可读存储介质
EP4206970A4 (en) * 2020-08-28 2024-05-22 Nippon Telegraph And Telephone Corporation PROCESSING DEVICE, 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
WO2022109215A1 (en) * 2020-11-20 2022-05-27 TripleBlind, Inc. Systems and methods for providing a blind de-identification of privacy data
CN114548094B (zh) * 2020-11-27 2024-09-10 新智数字科技有限公司 一种用于命名实体识别的模型训练方法和装置
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 百度在线网络技术(北京)有限公司 联邦学习模型训练方法和装置、电子设备、介质和产品
US20210119766A1 (en) * 2020-12-24 2021-04-22 Intel Corporation Technologies for memory and i/o efficient operations on homomorphically encrypted data
CN112311546B (zh) * 2020-12-25 2021-04-09 鹏城实验室 数据保密判定方法、装置、设备及计算机可读存储介质
CN113807380B (zh) * 2020-12-31 2023-09-01 京东科技信息技术有限公司 一种联邦学习模型的训练方法、装置及电子设备
CN113822311B (zh) * 2020-12-31 2023-09-01 京东科技控股股份有限公司 一种联邦学习模型的训练方法、装置及电子设备
US12081644B2 (en) * 2021-02-01 2024-09-03 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
US20230297649A1 (en) * 2022-03-21 2023-09-21 International Business Machines Corporation Neural network training with homomorphic encryption
CN114996915B (zh) * 2022-05-11 2024-05-28 电子科技大学 基于归一化算子库的专用处理器指令系统设计方法
CN115033903B (zh) * 2022-06-13 2024-07-02 湖北工业大学 一种神经网络训练中不完整数据的隐私保护方法及系统
CN116032663B (zh) * 2023-03-27 2023-06-02 湖南红普创新科技发展有限公司 基于边缘设备的隐私数据处理系统、方法、设备及介质
CN116522988B (zh) * 2023-07-03 2023-10-31 粤港澳大湾区数字经济研究院(福田) 基于图结构学习的联邦学习方法、系统、终端及介质
CN117035074B (zh) * 2023-10-08 2024-02-13 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 基于反馈强化的多模态知识生成方法及装置
CN117877006B (zh) * 2024-01-11 2024-09-10 重庆大学 一种基于数据混合式自主共享的仪器仪表数据异常检测方法

Family Cites Families (135)

* 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 並列計算処理装置
AU7957998A (en) 1997-06-09 1999-01-25 Intertrust, Incorporated Obfuscation techniques for enhancing software security
JP3568181B2 (ja) * 1997-06-23 2004-09-22 株式会社東芝 ニューラルネット分析装置、記憶媒体
US6732116B2 (en) 2001-06-21 2004-05-04 International Business Machines Corporation Method and system for dynamically managing data structures to optimize computer network performance
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
PL1908249T3 (pl) 2005-07-27 2012-10-31 Ibm Systemy i sposób bezpiecznego dostarczania plików do autoryzowanych odbiorców
US20120047097A1 (en) 2005-11-23 2012-02-23 Beyondcore, Inc. Secure Handling of Documents with Fields that Possibly Contain Restricted Information
US7870399B2 (en) 2006-02-10 2011-01-11 Arxan Defense Systems Software trusted platform module and application security wrapper
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
US8249984B2 (en) 2007-05-31 2012-08-21 International Business Machines Corporation System and method for fair-sharing in bandwidth sharing ad-hoc networks
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
EP2909964B1 (en) 2012-10-17 2019-04-24 Nokia Technologies Oy Method and apparatus for providing secure communications based on trust evaluations in a distributed manner
EP2874341B1 (en) 2013-09-26 2019-03-06 Koninklijke KPN N.V. Secure evaluation of a program
CN105611920B (zh) 2013-10-12 2021-07-16 泰拉科斯萨普有限责任公司 羟基-二苯甲烷衍生物的制备
US12093426B2 (en) 2013-11-01 2024-09-17 Anonos Ip Llc Systems and methods for functionally separating heterogeneous data for analytics, artificial intelligence, and machine learning in global data ecosystems
US9900316B2 (en) 2013-12-04 2018-02-20 International Business Machines Corporation Accessing storage units of a dispersed storage network
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
EP3089091B1 (en) 2014-05-02 2020-03-11 Barclays Execution Services Limited Transaction 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
AU2015296901B2 (en) * 2014-08-01 2019-10-10 Commonwealth Scientific And Industrial Research Organisation Generating shares of secret data
US9984337B2 (en) 2014-10-08 2018-05-29 Nec Corporation Parallelized machine learning with distributed lockless training
US9787647B2 (en) 2014-12-02 2017-10-10 Microsoft Technology Licensing, Llc Secure computer evaluation of decision trees
US10311372B1 (en) 2014-12-19 2019-06-04 Amazon Technologies, Inc. Machine learning based content delivery
FR3031641B1 (fr) 2015-01-08 2017-01-13 Morpho Procede d'identification d'une entite
US10178073B2 (en) * 2015-02-20 2019-01-08 Toucanh 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
US9753931B2 (en) 2015-05-19 2017-09-05 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
US9646043B1 (en) 2015-11-25 2017-05-09 International Business Machines Corporation Combining data matches from multiple sources in a deduplication storage system
US10791123B2 (en) * 2015-11-25 2020-09-29 Yaron Gvili Selectivity in privacy and verification with applications
US10360220B1 (en) 2015-12-14 2019-07-23 Airbnb, Inc. Classification for asymmetric error costs
US10002029B1 (en) * 2016-02-05 2018-06-19 Sas Institute Inc. Automated transfer of neural network definitions among federated areas
EP3418949A4 (en) * 2016-02-17 2019-02-27 Sony Corporation INFORMATION PROCESSING METHOD AND INFORMATION PROCESSING DEVICE
US10871947B2 (en) 2016-03-03 2020-12-22 Cryptography Research, Inc. Converting a boolean masked value to an arithmetically masked value for cryptographic operations
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
JPWO2018011842A1 (ja) 2016-07-11 2019-04-25 株式会社Uei 階層ネットワークを用いた演算処理システム
US20180039884A1 (en) * 2016-08-03 2018-02-08 Barnaby Dalton Systems, methods and devices for neural network communications
CN107809411B (zh) 2016-09-09 2021-12-03 华为技术有限公司 移动网络的认证方法、终端设备、服务器和网络认证实体
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
US10547592B2 (en) 2017-01-19 2020-01-28 Hewlett Packard Enterprise Development Lp Computing a global sum that preserves privacy of parties in a multi-party environment
US11438155B2 (en) 2017-01-24 2022-09-06 Microsoft Technology Licensing, Llc Key vault enclave
US10523665B2 (en) 2017-02-03 2019-12-31 Wyse Technology L.L.C. Authentication on thin clients using independent devices
US11313869B2 (en) 2017-04-13 2022-04-26 Siemens Healthcare Diagnostics Inc. Methods and apparatus for determining label count during specimen characterization
US10891295B2 (en) * 2017-06-04 2021-01-12 Apple Inc. Methods and systems using linear expressions for machine learning models to rank search results
JP6355800B1 (ja) 2017-06-28 2018-07-11 ヤフー株式会社 学習装置、生成装置、学習方法、生成方法、学習プログラム、および生成プログラム
CN111543025A (zh) 2017-08-30 2020-08-14 因福尔公司 高精度隐私保护实值函数评估
US20190073580A1 (en) 2017-09-01 2019-03-07 Facebook, Inc. Sparse Neural Network Modeling Infrastructure
US11132604B2 (en) 2017-09-01 2021-09-28 Facebook, Inc. Nested machine learning architecture
US10943171B2 (en) 2017-09-01 2021-03-09 Facebook, Inc. Sparse neural network training optimization
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的更快速的安全多方内积计算的方法
EP3622520A1 (en) 2017-10-16 2020-03-18 Illumina, Inc. Deep learning-based techniques for training deep convolutional neural networks
CN107832839B (zh) * 2017-10-31 2020-02-14 南京地平线机器人技术有限公司 执行卷积神经网络中的运算的方法和装置
WO2019107129A1 (ja) 2017-11-29 2019-06-06 日本電信電話株式会社 鍵交換システム、端末装置、鍵交換方法、プログラム、および記録媒体
US20200167834A1 (en) 2017-12-28 2020-05-28 Google Llc Intelligent identification and provisioning of devices and services for a smart home environment
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
US11275848B2 (en) 2018-03-22 2022-03-15 Via Science, Inc. Secure data processing
US11972408B2 (en) 2018-03-29 2024-04-30 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
US11682074B2 (en) 2018-04-13 2023-06-20 Gds Link Llc Decision-making system and method based on supervised learning
US11494506B2 (en) 2018-04-19 2022-11-08 Google Llc Security measures for determination of private set intersections
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
US11222138B2 (en) 2018-05-29 2022-01-11 Visa International Service Association Privacy-preserving machine learning in the three-server model
US11201734B2 (en) 2018-06-04 2021-12-14 Robert Bosch Gmbh Method and system for fault tolerant and secure multiparty computation with SPDZ
US20210089927A9 (en) 2018-06-12 2021-03-25 Ciena Corporation Unsupervised outlier detection in time-series data
US11362841B2 (en) * 2018-07-06 2022-06-14 Nec Corporation Method and system for providing security in trusted execution environments
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
EP3617953A1 (en) 2018-08-30 2020-03-04 Koninklijke Philips N.V. An adaptable neural network
US11403303B2 (en) 2018-09-07 2022-08-02 Beijing Bytedance Network Technology Co., Ltd. Method and device for generating ranking model
US11544524B2 (en) 2018-09-28 2023-01-03 Samsung Electronics Co., Ltd. Electronic device and method of obtaining emotion information
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
WO2020092257A1 (en) 2018-10-29 2020-05-07 Cryptography Research, Inc. Constant time secure arithmetic-to-boolean mask conversion
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
US10705797B2 (en) 2018-11-27 2020-07-07 Marvell International Ltd. Parallel-prefix adder and method
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
US11989633B2 (en) 2019-01-25 2024-05-21 Stripe, Inc. Shared learning across separate entities with private data features
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
EP3959679A4 (en) 2019-04-25 2023-01-11 Inxeption SYSTEMS AND METHODS FOR PROCESSING, SECURE AND COMMUNICATING INDUSTRIAL COMMERCE TRANSACTIONS
US11139961B2 (en) 2019-05-07 2021-10-05 International Business Machines Corporation Private and federated learning
US20200364608A1 (en) 2019-05-13 2020-11-19 International Business Machines Corporation Communicating in a federated learning environment
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
EP3987426B1 (en) 2019-06-21 2024-07-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
US11487580B2 (en) 2019-09-06 2022-11-01 Western Digital Technologies, Inc. Computational resource allocation in ensemble machine learning systems
US11836615B2 (en) 2019-09-20 2023-12-05 International Business Machines Corporation Bayesian nonparametric learning of neural networks
JP7383803B2 (ja) 2019-10-04 2023-11-20 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 不均一モデルタイプおよびアーキテクチャを使用した連合学習
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
US12026219B2 (en) 2019-12-13 2024-07-02 TripleBlind, Inc. Systems and methods for efficient computations on split data and split algorithms
US11239996B2 (en) 2019-12-18 2022-02-01 International Business Machines Corporation Weighted partial matching under homomorphic encryption
US11429808B2 (en) 2019-12-19 2022-08-30 Varian Medical Systems International Ag Systems and methods for scalable segmentation model training
US20240080341A1 (en) 2019-12-20 2024-03-07 Cambrian Designs, Inc. System & Method for Implementing A Privacy Policy
US20210209514A1 (en) 2020-01-06 2021-07-08 Electronics And Telecommunications Research Institute Machine learning method for incremental learning and computing device for performing the machine learning method
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
US12081644B2 (en) 2021-02-01 2024-09-03 Sap Se Efficient distributed privacy-preserving computations

Also Published As

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

Similar Documents

Publication Publication Date Title
US12019704B2 (en) Systems and methods for encrypting data and algorithms
Liu et al. Oblivious neural network predictions via minionn transformations
Xu et al. Cryptonn: Training neural networks over encrypted data
Rahulamathavan et al. Privacy-preserving clinical decision support system using gaussian kernel-based classification
Kim et al. Secure human action recognition by encrypted neural network inference
Paul et al. Privacy-preserving collective learning with homomorphic encryption
CN113065145B (zh) 一种基于秘密共享和随机扰动的隐私保护线性回归方法
CN114730389A (zh) 双重服务器隐私保护聚类
Chao et al. CaRENets: Compact and resource-efficient CNN for homomorphic inference on encrypted medical images
Ramkumar et al. An Experiment to Develop an Enhanced Medical Image Security by using Deep Learning Assisted Crypto Policy
WO2022233605A1 (en) Blind rotation for use in fully homomorphic encryption
Son et al. Privacy-preserving breast cancer recurrence prediction based on homomorphic encryption and secure two party computation
CN113849828B (zh) 经处理的数据的匿名生成和证明
Adjei-Mensah et al. Cov-Fed: Federated learning-based framework for COVID-19 diagnosis using chest X-ray scans
EP4087177A1 (en) Blind rotation for use in fully homomorphic encryption
Liu et al. PE-HEALTH: Enabling fully encrypted CNN for health monitor with optimized communication
Zhang et al. Scalable Binary Neural Network applications in Oblivious Inference
Wang et al. pCOVID: A Privacy-Preserving COVID-19 Inference Framework
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
Deshmukh et al. A survey on privacy preserving data mining techniques for clinical decision support system
Kanpak et al. CURE: Privacy-Preserving Split Learning Done Right
CN117337553A (zh) 用于全同态加密的盲旋转
Mittal et al. Data Analytics over Encrypted Data from Fully Homomorphic Encryption
Rodriguez et al. An Autoencoder-Based Image Anonymization Scheme for Privacy Enhanced Deep Learning