KR20180127506A - 동형적으로 암호화된 데이터의 유효성 확인 및 이에 대한 연산을 수행하기 위한 시스템 및 방법 - Google Patents

동형적으로 암호화된 데이터의 유효성 확인 및 이에 대한 연산을 수행하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20180127506A
KR20180127506A KR1020187032522A KR20187032522A KR20180127506A KR 20180127506 A KR20180127506 A KR 20180127506A KR 1020187032522 A KR1020187032522 A KR 1020187032522A KR 20187032522 A KR20187032522 A KR 20187032522A KR 20180127506 A KR20180127506 A KR 20180127506A
Authority
KR
South Korea
Prior art keywords
data
encrypted
confidential
request
calculation
Prior art date
Application number
KR1020187032522A
Other languages
English (en)
Other versions
KR102403295B1 (ko
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 KR20180127506A publication Critical patent/KR20180127506A/ko
Application granted granted Critical
Publication of KR102403295B1 publication Critical patent/KR102403295B1/ko

Links

Images

Classifications

    • 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/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/72Signal processing specially adapted for physiological signals or for diagnostic purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • 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/382Payment protocols; Details thereof insuring higher security of transaction
    • 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/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H10/00ICT specially adapted for the handling or processing of patient-related medical or healthcare data
    • G16H10/40ICT specially adapted for the handling or processing of patient-related medical or healthcare data for data related to laboratory analysis, e.g. patient specimen analysis
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H10/00ICT specially adapted for the handling or processing of patient-related medical or healthcare data
    • G16H10/60ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
    • 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/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0414Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden during transmission, i.e. party's identity is protected against eavesdropping, e.g. by using temporary identifiers, but is known to the other party or parties involved in the communication
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Public Health (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Primary Health Care (AREA)
  • Epidemiology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Psychiatry (AREA)
  • Physiology (AREA)
  • Pathology (AREA)
  • Animal Behavior & Ethology (AREA)
  • Surgery (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Veterinary Medicine (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)

Abstract

동형적으로 암호화된 데이터에 대한 연산의 유효성을 검사하고 그 연산을 수행하기 위한 시스템, 방법 및 디바이스가 본 명세서에서 설명된다. 그 방법은 데이터를 완전히 암호 해독하지 않고도 암호화된 데이터로부터 정보를 안전하게 송신 및 추출하는 것을 포함한다. 데이터 요청은 기밀 데이터의 세트를 포함하는 암호화된 부분을 포함할 수도 있다. 그 다음, 암호화된 비교 데이터의 하나 이상의 세트가 데이터 요청에 응답하여 데이터베이스로부터 검색될 수도 있다. 그 다음, 데이터 요청으로부터의 기밀 데이터의 암호화된 세트는 하나 이상의 동형 연산을 사용하여 암호화된 비교 데이터의 각각의 세트와 비교되어 암호화된 비교 데이터의 어떤 세트가 기밀 데이터의 암호화된 세트와 매칭되는지를 결정한다. 매칭이 존재하면, 이것은 기밀 데이터의 세트의 유효성을 확인한다. 그 다음, 기밀 데이터의 세트의 유효성 확인에서의 성공 또는 실패를 나타내는 암호화된 표시자가 생성되는데, 그 암호화된 표시자는, 그 다음, 암호화된 표시자는 데이터 요청과 관련되는 당사자에게 포워딩될 수도 있다.

Description

동형적으로 암호화된 데이터의 유효성 확인 및 이에 대한 연산을 수행하기 위한 시스템 및 방법
본 개시내용은 동형적으로 암호화된 데이터 시스템 및 방법(homomorphically encrypted data systems and methods)에 관한 것으로, 더 구체적으로는, 기밀 데이터(confidential data)의 암호 해독(decryption) 없이 동형적으로 암호화된 기밀 데이터의 유효성 확인(validation), 및 동형적으로 암호화된 기밀 데이터에 대한 연산을 수행하는 것에 관한 것이다.
민감한 개인 정보의 프라이버시는, 더 많은 개인 데이터가, 특히 무선 송신 및 클라우드 데이터 서비스의 사용을 통해, 송신되고 공유됨에 따라, 점점 더 중요해지는 주제이다. 프라이버시 문제는, 클라우드 서버에 보안 침범이 발생한다는 두려움으로 인해 또는 서비스 공급자 자체가 이 민감한 정보를 오용한다는(misuse) 두려움으로 인해 발생한다. 표준 암호화 스킴(standard encryption scheme)은, 깨지기 어려운 암호화 스킴을 고안하여 이들 우려를 해소하려고 시도하지만, 이들은 서비스 공급자에 의한 이 민감한 데이터의 오용의 가능성을 여전히 해결하지 못한다.
금융 및 의료 데이터와 같은 비밀 및 개인 데이터의 프라이버시가 가장 중요한 관심사이다. 그러나, 예컨대 금융 거래를 실행하기 위한 합법적인 목적, 또는 연구를 수행하거나 또는 건강상의 응급 상황을 해결하기 위해 의료 데이터에 대한 액세스를 제공하는 합법적인 목적을 위해 이 데이터에 액세스하는 것도 또한 중요하다.
따라서, 본 기술 분야에서 개선에 대한 필요성이 존재한다.
본 발명의 실시형태에 따르면, 데이터를 완전히 암호 해독하지(decrypting) 않고도 암호화된 데이터로부터 정보를 안전하게 송신하고 추출하기 위한 방법이 제공되는데, 그 방법은, 데이터 요청을 수신하는 것으로서, 데이터 요청 중 적어도 일부는 동형 암호화 스킴(homomorphic encryption scheme)에 따라 암호화되고, 데이터 요청의 암호화된 부분은 적어도 기밀 데이터의 세트를 포함하는, 데이터 요청을 수신하는 것; 데이터베이스로부터 암호화된 비교 데이터의 하나 이상의 세트를 검색하는(retrieving) 것으로서, 암호화된 비교 데이터의 각각의 세트는 동형 암호화 스킴에 따라 암호화되는, 암호화된 비교 데이터의 하나 이상의 세트를 검색하는 것; 데이터 요청으로부터의 기밀 데이터의 암호화된 세트를, 하나 이상의 동형 연산(homomorphic operation)을 사용하여, 암호화된 비교 데이터의 각각의 세트와 비교하여, 암호화된 비교 데이터의 어떤 세트가 기밀 데이터의 암호화된 세트와 매칭되는지를 결정하고, 매칭 시, 기밀 데이터의 세트의 유효성을 확인하는(validating) 것; 기밀 데이터의 세트의 유효성 확인의 성공 또는 실패를 나타내는 암호화된 표시자를 생성하는 것; 및 암호화된 표시자를 데이터 요청과 관련되는 당사자(party)에게 포워딩하는 것을 포함하고, 기밀 데이터 세트는 방법 동안 절대 암호 해독되지 않는다.
본 발명의 또 다른 실시형태에 따르면, 데이터 시스템이 제공되는데, 그 데이터 시스템은, 복수의 원격 데이터 디바이스로부터 동형적으로(homomorphically) 암호화된 데이터를 수신하기 위해 네트워크에 연결하기 위한 네트워크 인터페이스로서, 동형적으로 암호화된 데이터는 원격 데이터 디바이스와 관련되는 사용자와 관련되는, 네트워크 인터페이스; 및 네트워크 인터페이스에 연결되는 계산 엔진으로서, 계산 엔진은 데이터에 대한 동형 계산을 수행하여 선택적으로 암호 해독될 수 있는 계산 결과를 획득하도록 구성되는, 계산 엔진을 포함한다.
본 발명의 또 다른 실시형태에 따르면, 동형 계산을 수행하기 위한 디바이스가 제공되는데, 그 디바이스는, 메모리 및 적어도 하나의 프로세서를 포함하고, 디바이스는, 동형 계산을 다항식 급수(polynomial series)로서 모델링하도록 그리고 암호화된 데이터를 사용하여 다항식 급수의 값을 계산하여 암호화된 결과를 획득하도록 구성되고, 암호화된 데이터는 암호화 스킴에 따라 암호화되고, 디바이스는 또한 암호화된 결과를 암호화된 조건과 비교하기 위해 동형 관계 연산을 수행하도록 구성되고, 암호화된 조건은 암호화 스킴에 따라 암호화되고, 디바이스는 또한 비교의 결과를 출력하도록 구성된다.
본 발명의 또 다른 실시형태에 따르면, 컴퓨터 판독 가능 명령어를 포함하는 비일시적 컴퓨터 판독 가능 매체가 제공되는데, 컴퓨터 판독 가능 명령어는, 컴퓨터 프로세서에 의한 실행 시, 데이터의 유효성을 확인하기 위한 데이터 요청을 수신하는 것으로서, 데이터 요청의 적어도 일부는 동형 암호화 스킴에 따라 암호화되고, 데이터 요청은 적어도 기밀 데이터의 세트를 포함하는, 데이터 요청을 수신하는 것; 데이터베이스로부터 암호화된 비교 데이터의 하나 이상의 세트를 검색하는 것으로서, 암호화된 비교 데이터의 각각의 세트는 동형 암호화 스킴에 따라 암호화되는, 암호화된 비교 데이터의 하나 이상의 세트를 검색하는 것; 기밀 데이터의 세트를, 하나 이상의 동형 연산을 사용해서, 암호화된 비교 데이터의 각각의 세트와 비교하여, 암호화된 비교 데이터의 어떤 세트가 기밀 데이터의 세트와 매칭되는지를 결정하고, 매칭 시, 기밀 데이터의 상기 세트의 유효성을 확인하는 것; 기밀 데이터의 세트의 유효성 확인의 성공 또는 실패를 나타내는 암호화된 표시자를 생성하는 것; 및 암호화된 표시자를 데이터 요청과 관련되는 당사자에게 포워딩하는 것의 방법을 수행하고, 기밀 데이터 세트는 절대 암호 해독되지 않는다.
본 발명의 또 다른 실시형태에 따르면, 보안 금융 거래를 프로세싱하는 방법이 제공되는데, 그 방법은, 격자 기반의(lattice-based) 완전 동형 암호화(Fully Homomorphic Encryption: FHE) 스킴에 따라 동형적으로 암호화되는 금융 거래를 완료하기 위한 적어도 부분적으로 동형적으로 암호화된 요청을 수신하는 것으로서, 거래 요청은 계정 번호를 포함하는 기밀의 카드 소지자 데이터, 비 기밀의 카드 소지자 데이터 및 거래 데이터를 포함하는, 적어도 부분적으로 동형적으로 암호화된 요청을 수신하는 것; 격자 기반의 FHE 스킴에 따라 암호화되는 동형적으로 암호화된 비교 카드 소지자 데이터의 하나 이상의 세트를 검색하는 것; 하나 이상의 동형 연산을 사용하여 기밀의 카드 소지자 데이터를 비교 카드 소지자 데이터의 각각에 세트와 비교하여, 비교 카드 소지자 데이터의 어떤 세트가 기밀의 카드 소지자 데이터와 매칭되는지를 결정하고 기밀의 카드 소지자 데이터의 유효성을 확인하는 것; 기밀의 카드 소지자 데이터의 적어도 상기 유효성 확인에 기초하여 금융 거래를 완료하기 위한 요청의 승인 또는 거절을 나타내는 표시자를 생성 및 암호화하는 것; 및 금융 거래를 완료하기 위한 요청의 승인 또는 거절을 나타내는 암호화된 표시자를, 금융 거래를 완료하기 위해 승인을 구하고 있는 당사자에게 포워딩하는 것을 포함하고, 기밀의 카드 소지자 데이터는 방법 동안 절대 암호 해독되지 않는다.
본 발명의 또 다른 실시형태에 따르면, 컴퓨터 판독 가능 명령어를 포함하는 비일시적 컴퓨터 판독 가능 매체가 제공되는데, 컴퓨터 판독 가능 명령어는, 컴퓨터 프로세서에 의한 실행 시, 격자 기반의 완전 동형 암호화(FHE) 스킴에 따라 동형적으로 암호화되는 금융 거래를 완료하기 위한 적어도 부분적으로 동형적으로 암호화된 요청을 수신하는 것으로서, 상기 거래 요청은 계정 번호를 포함하는 기밀의 카드 소지자 데이터, 비 기밀의 카드 소지자 데이터 및 거래 데이터를 포함하는, 적어도 부분적으로 동형적으로 암호화된 요청을 수신하는 것; 격자 기반의 FHE 스킴에 따라 암호화되는 동형적으로 암호화된 비교 카드 소지자 데이터의 하나 이상의 세트를 검색하는 것; 하나 이상의 동형 연산을 사용하여 기밀의 카드 소지자 데이터를 비교 카드 소지자 데이터의 각각에 세트와 비교하여, 비교 카드 소지자 데이터의 어떤 세트가 기밀의 카드 소지자 데이터와 매칭되는지를 결정하고 기밀의 카드 소지자 데이터의 유효성을 확인하는 것; 기밀의 카드 소지자 데이터의 적어도 유효성 확인에 기초하여 금융 거래를 완료하기 위한 요청의 승인 또는 거절을 나타내는 표시자를 생성 및 암호화하는 것; 및 금융 거래를 완료하기 위한 요청의 승인 또는 거절을 나타내는 암호화된 표시자를, 금융 거래를 완료하기 위해 승인을 구하고 있는 당사자에게 포워딩하는 것의 방법을 수행하고, 기밀의 카드 소지자 데이터는 방법 동안 절대 암호 해독되지 않는다.
본 발명의 또 다른 실시형태에 따르면, 암호화된 데이터와의 비교를 수행하는 방법이 제공되는데, 그 방법은, 계산을 다항식 급수로서 모델링하는 것; 암호화된 데이터를 사용하여 다항식 급수의 값을 계산하여 암호화된 결과를 획득하는 것으로서, 암호화된 데이터는 암호화 스킴에 따라 암호화되는, 암호화된 결과를 획득하는 것; 동형 관계 연산을 수행하여 암호화된 결과를 암호화된/암호화 되지 않은 조건과 비교하는 것으로서, 암호화된 조건은 암호화 스킴에 따라 암호화되는, 암호화된 결과를 암호화된/암호화 되지 않은 조건과 비교하는 것; 및 비교의 결과를 출력하는 것을 포함한다.
본 발명의 또 다른 실시형태에 따르면, 의료 데이터 시스템이 제공되는데, 그 의료 데이터 시스템은, 복수의 원격 의료 디바이스로부터 동형적으로 암호화된 데이터를 수신하기 위해 네트워크에 연결하기 위한 네트워크 인터페이스로서, 동형적으로 암호화된 데이터는 원격 의료 디바이스와 관련되는 환자의 측정된 생리학적 데이터를 나타내는, 네트워크 인터페이스; 및 네트워크 인터페이스에 연결되는 계산 엔진으로서, 계산 엔진은 상기 데이터에 대한 동형 계산을 수행하여 선택적으로 암호 해독될 수 있는 계산 결과를 획득하도록 구성되는, 계산 엔진을 포함한다.
본 발명의 또 다른 실시형태에 따르면, 동형 계산을 수행하기 위한 디바이스가 제공되는데, 그 디바이스는 메모리 및 적어도 하나의 프로세서를 포함하고, 디바이스는, 동형 계산을 다항식 급수로서 모델링하도록 그리고 암호화된 데이터를 사용하여 다항식 급수의 값을 계산하여 암호화된 결과를 획득하도록 구성되고, 암호화된 데이터는 암호화 스킴에 따라 암호화되고, 디바이스는 또한 암호화된 결과를 암호화된 조건과 비교하기 위해 동형 관계 연산을 수행하도록 구성되고, 암호화된 조건은 암호화 스킴에 따라 암호화되고, 디바이스는 또한 비교의 결과를 출력하도록 구성된다.
본 출원에 따른 다른 양태 및 특징부는, 첨부하는 도면과 연계한 본 발명의 실시형태의 다음의 설명의 검토 시 기술 분야의 숙련된 자에게 명백해질 것이다.
도면은 본 개시내용의 실시형태를 단지 예로서 예시한다.
도 1은 본 발명의 일 실시형태에 따른 보안 컴퓨팅 환경(secure computing environment)의 도면;
도 2는 본 발명의 일 실시형태에 따른 원격 디바이스의 도면;
도 3은 본 발명의 일 실시형태에 따른 데이터 시스템의 도면;
도 4는 본 발명의 일 실시형태에 따른 키 인가 시스템(key authority system)의 도면;
도 5는 본 발명의 일 실시형태에 따른 다른 데이터 시스템의 도면;
도 6a 내지 도 6w는 본 발명의 일 실시형태에 따른 계산을 수행하기 위한 수학식을 나타낸 도면;
도 7 내지 도 10은 본 발명의 일 실시형태에 대한 다양한 예에서 사용되는 데이터의 테이블;
도 11은 본 발명의 일 실시형태에 따른 관계 연산(relational operation)을 구현하기 위한 의사 코드의 목록;
도 12 내지 도 14는 테스트용 파라미터 및 수행되는 테스트의 결과를 나타낸 도면;
도 15는 4자(four-party) 신용 카드 거래 시스템의 도면;
도 16은 본 발명의 일 실시형태에 따른 지불 처리 체인(payment processing chain)의 도면;
도 17은 본 발명의 일 실시형태에 따른 보안 지불 처리 시스템의 도면;
도 18은 본 발명의 일 실시형태에 따른 비밀 키 사이즈 축소를 도시하는 차트;
도 19는 암호문 사이즈 축소를 도시하며 병합 함수(flatten function)를 제거하는 차트;
도 20은 암호문 승산 연산을 위한 의사 코드를 나타낸 도면;
도 21은 본 발명의 일 실시형태에 따른 예시적인 파라미터 선택의 테이블; 및
도 22a 내지 도 22g는 본 발명의 일 실시형태에 따른 표현식/수학식을 나타낸 도면.
유사한 참조 번호는 도면에서 동일한 또는 대응하는 요소를 나타낸다.
의료 및 금융 응용분야가 본 명세서에서 논의되는 발명적 예의 기초를 형성하지만, 논의되는 발명적 기술은 다른 형태의 기밀 데이터에도 적용된다. 이러한 맥락에서, 데이터 획득, 저장, 및 분석에 수반되는 상이한 디바이스 및 당사자(party)는, 프로세싱되고 있는 기밀 데이터의 타입에 대해 적절한 것으로 재고될 수도 있다.
동형 암호화/암호 해독
기밀 데이터에 대해 수행되는 동형 암호화/암호 해독 연산은, 도 1 내지 도 5 및 도 6a 내지 도 6e에서 도시되는 바와 같이 수행될 수도 있다. 키 생성은, 키 인가 시스템(36)과 같은 보안 시스템에서 수행될 수도 있다. 공개 키(public key)(68)는, 원격 디바이스(20)의 배치 이전에, 기밀 정보를 포함하는 원격 디바이스(20)(예컨대, 의료 디바이스, 신용 카드, 원격 센서 등) 상에 사전 적재될 수도 있다. 대안적으로 또는 추가적으로, 공개 키(68)는 원격 디바이스(20)가 네트워크 리소스(예컨대 공공 클라우드)를 통해 이용 가능하게 만들어질 수도 있는데, 원격 디바이스는 공개 키(68)에 액세스하기 위해서는 자격 증명 검증(credential verification) 또는 승인(예를 들면, 사용자명 및 패스워드)을 필요로 하도록 구성될 수도 있다. 원격 디바이스(20) 온보드의, 그리고 데이터 시스템(120) 내의 암호화 엔진(62)은, 하기에서 논의되는 동형 암호화 기술을 구현하도록 구성될 수도 있다. 키 인가 시스템(36)에서의 암호 해독 엔진(104)은, 하기에서 논의되는 동형 암호 해독 기술을 구현하도록 구성될 수도 있다. 데이터 시스템(22, 120)에서의 계산 엔진(88)은, 수학식, 계산 파라미터, 상한/하한, 및 중간/누적된 결과의 저장 및 프로세싱을 비롯한, 하기에서 논의되는 계산 기술을 구현하도록 구성될 수도 있다.
하기의 논의를 위한 표기법과 관련하여, 홀수 소수(odd prime number) q에 대하여, 간격
Figure pct00001
를 갖는 링 Z/qZ(또는 Zq)가 식별된다. 표기법 [x]q는 x modulo q를 푸는 것을 나타낸다. 본 명세서에서 논의되는 예는, 몫 다항식
Figure pct00002
에 의해 정의되는 다항식 고리(polynomial ring)을 사용하는데, 여기서
Figure pct00003
은 약분할 수 없는 제m 번째 원분 다항식(cyclotomic polynomial)이고, 여기서 n은 2의 멱승이고 m = 2n이다. Rq = R/qR라고 한다. 행렬 및 다항식 승산(multiplication)을 포함하는 임의의 타입의 승산은, 본 명세서에서, 승산 연산자 '·'에 의해 표시된다. 가장 가까운 정수로 반올림하는 것은 |a|에 의해 표시된다. 고리의 행렬은 AM×N로서 정의되는데, 여기서 Aij ∈ Rq이고, M과 N은 행렬 차원이다.
Figure pct00004
는 고리의 항등 행렬을 나타낸다. 행 벡터는 [a b]로 표현되며, 여기서 a와 b는 벡터 요소(vector element)이다. 반면 열 벡터는 [a ; b]로 표현된다.
암호화 스킴의 파라미터는, 수체(number field)의 차수인 n; 계수(modulus)인 q; 키 공간 및 암호문 공간 각각에서 이산 가우스 오차 분포의 표준 편차인
Figure pct00005
Figure pct00006
; 암호문에서의 고리 요소(ring element)의 수를 지배하는
Figure pct00007
이다. 이들 파라미터의 설정은 보안 레벨
Figure pct00008
(예를 들면,
Figure pct00009
= 80 또는 128 비트)뿐만 아니라 및 암호문을 평가하도록 고려되는 함수의 복잡도에 의존한다.
비트 분해 함수(bit decompose function) BD(정수)는 l 비트 입력 정수를 취하고, 그 다음, 이 정수의 비트 분해를 포함하는 사이즈
Figure pct00010
을 갖는 행 벡터를 출력한다. (여기에서, 숫자를 비롯한, 본 명세서에서 언급되는 문자 "
Figure pct00011
"은 소문자 문자 "L"이다). 마찬가지로 BD(다항식)은, 각각의 계수가
Figure pct00012
비트 정수인 사이즈 n의 입력 다항식을 취하고, 그 다음, 입력 다항식의 각각의 계수의 비트 분해를 포함하는 다항식(사이즈 n의 각각)의
Figure pct00013
사이즈의 행 벡터를 출력하여, 사이즈
Figure pct00014
×n의 행렬을 산출한다. 마지막으로, BD(다항식의 행렬)는 사이즈 x×y의 다항식의 입력 행렬을 취하고(각각의 다항식은 정수 계수를 갖는 사이즈 n임), 그 다음, 열(column) 차원에서 인자
Figure pct00015
만큼 확장되는 다항식의 행렬을 출력하여, 사이즈
Figure pct00016
의 행렬을 산출하는데, 여기서 행을 따르는 각각의 연속하는
Figure pct00017
개의 요소는 입력 다항식의 각각의 입력 다항식의 각각의 계수의 비트 표현을 포함한다. 예를 들면, 입력 다항식 행렬 Bx×y×n의 비트 분해는
Figure pct00018
이다. 행렬
Figure pct00019
Figure pct00020
의 다항식 계수가 단일 비트 값이지만, CPU 또는 GPU 메모리에서의 행렬
Figure pct00021
의 저장 요건은
Figure pct00022
비트와 동일하지 않다는 것을 유의한다. 이것은, 메모리의 최소 주소 지정 가능한 단위가 바이트(즉, 바이트 주소 지정 가능)이다는 사실에 기인한다. 그러므로, β는
Figure pct00023
바이트의 스토리지를 필요로 한다. 이것은,
Figure pct00024
의 저장 요건이 Bx×y×n의 저장 요건의 적어도 8 배이다는 추가적인 관찰로 나타난다.
비트 분해 역함수(bit decompose Inverse function) BDI()는, 비트 분해 함수 BD()의 역이다. BDI() 함수는, 행을 따르는 연속하는
Figure pct00025
개의 계수를 그룹화하고(계수는 이진화될 필요가 없음), 이들
Figure pct00026
비트에 대응하는 정수를 출력한다. 수학적으로, BDI() 함수는, 다항식의 확장된 행렬
Figure pct00027
을 우측으로부터 도 6a의 식에서 정의되는 행렬
Figure pct00028
로 승산하는 것으로서 정의될 수 있다. (다항식 차원 n은 명확성을 위해가 이 지점부터 앞으로 생략된다). 그러므로,
Figure pct00029
이다.
에러를 갖는 고리 학습(Ring Learning With Errors: RLWE) 기반의 암호화 스킴.
방법 및 시스템은, RLWE(에러를 갖는 고리 학습) 암호화 스킴을 활용할 수도 있고, 이러한 스킴의 일반적인 원리가 이제 설명될 것이다. 그러나, 이 스킴은 특별히 제한적이지는 않으며, 다른 적절한 다항식 기반의 완전히 동형의 암호화 스킴이 사용될 수도 있다. 또한, 하기에서의 임의의 간극(gap)은 공지된 기술을 고려하여 암호학에서의 숙련자에 의해 잘 이해될 것이다.
시스템 및 방법은, 키를 생성하도록, 정보를 암호화하도록, 그리고 정보를 암호 해독하도록 구성된다.
키 생성기는 다음과 같이 Keygen(1λ) 함수를 구현하도록 구성된다. 다항식
Figure pct00030
가 선택된다. 비밀 키는
Figure pct00031
가 된다. 공개 키는 pk = A1×2 = [b a]이고, 균일한 샘플
Figure pct00032
에 기초하여, b = a·t + e를 설정한다. 도 22a의 표현식이 유효하다는 것을 유의한다.
도 18에서 도시되는 바와 같이, 이것은
Figure pct00033
로 정의되는 PO2(x)와 같은 2의 멱승 확장에 기초한 공지된 비밀 키 sk = v = PO2(s)보다 유리하다. 그러므로, 키 생성기는 이론적인
Figure pct00034
배만큼 더 작은 비밀 키를 생성한다.
암호화 엔진(62)은 다음과 같이
Figure pct00035
함수를 구현하도록 구성된다. 메시지 공간은 Rq이다. 균일한 벡터
Figure pct00036
가 샘플링되는데, 여기서 다항식의 각각의 계수는 {0,1}로부터 r 샘플링된다,
Figure pct00037
. 평문 다항식
Figure pct00038
은 도 22b의 표현식을 계산하는 것에 의해 암호화된다. 도 19에서 도시되는 바와 같이, 이것은, 암호화 엔진(62)이 이론적인
Figure pct00039
배만큼 더 작은 암호문으로 나타나기 때문에, CN×N을 사용하는 종래 기술에 비해 유리하다.
암호 해독 엔진(104)은 다음과 같이 Dec(sk, C) 함수를 구현하도록 구성된다. 암호문 C가 주어지면, 도 22c의 표현식에 따라 C에 비밀 키 s를 승산하는 것에 의해 평문
Figure pct00040
가 복원된다.
이것은, 암호 해독 엔진(104)이 이론적인
Figure pct00041
배만큼 더 적은 연산의 수행을 필요로 하기 때문에, Dec(sk, C) = CN×N·vN×1을 구현하는 종래의 기술에 비해 유리하다.
도 22c의 표현식의 첫 번째 항의 처음
Figure pct00042
개의 계수는
Figure pct00043
의 형태라는 것을 유의한다. 이것은, 위치
Figure pct00044
에서의 요소가
Figure pct00045
의 형태라는 것을 의미한다. 즉, 각각의 엔트리의 최상위 비트는, 에러 < q/2라는 것 및 종래의 기술에서 발견될 수도 있는 바와 같이 이론적으로 랩 어라운드 mod q(wrap-around mod q)가 없다는 것을 가정하여 수 μ로부터의 단일 비트를 지닌다.
이제, 암호문을 먼저 암호 해독하지 않고도 암호문에 대한 연산을 수행하는 것이 가능하다. μ1 및 μ2를 각각 암호화하는 입력 암호문 CN×2
Figure pct00046
의 경우, 동형 연산은 다음과 같이 구현된다.
가산 연산자는, 엔트리 단위의 가산 CN ×2 + DN ×2를 수행하는 것에 의해, 두 개의 암호문 CN×2 및 DN×2를 가산하는 ADD(C, D) 함수를 구현한다.
승산 연산자 및 비트 분해 함수는, 하나의 암호문에 대해 비트 분해 함수(또는 BD)를 수행하고 그 다음 BD(CN ×2)·DN ×2로서 승산을 실행하는 것에 의해 두 개의 암호문 CN ×2 및 DN × 2을 승산하는 MULT(C,D) 함수를 구현한다.
도 19에서 도시되는 바와 같이, 이것은 MULT(C, D) = FLATTEN(CN×N·DN×N)를 정의하는 종래 기술에 비해 유리한데, 여기서 FLATTEN(A)는 BD(BDI(A))로서 정의된다. 본 기술은 적어도 이론적인
Figure pct00047
배만큼 더 적은 연산을 요구한다.
상기 동형 가산의 정확성은 기술 분야의 숙련된 자에게 쉽게 명백해야 한다. 승산은 입력 암호문 C와 D에서 비대칭이다. 즉, D의 컴포넌트는 전체적으로 처리되고, 반면 C의 컴포넌트는 비트 단위의 분해로 분해된다. 승산은, 하기에서 논의되는 바와 같이, 정확하며, 느린 노이즈 성장률을 제공한다.
승산 연산의 정확성은, 명확성을 위해 행렬 차원이 제거되어 있는 도 22d의 표현식의 관점에서 통상의 숙련자에게 쉽게 명백해야 한다. 도 22d의 표현식의 마지막 라인의 조작에서 μ = μ2·μ1의 암호화가 명백하다.
정확한 암호 해독은 암호문 노이즈가 제한되는 것에 의존한다. 따라서 동형 연산이 암호문 노이즈를 증가시키는 방식을 이해하는 것이 중요하다. C를 새로운 암호문으로 생각하면, v개의 암호문의 동형 가산은 최악의 경우 v 배만큼 노이즈를 증가시킨다. 다양한 고려되는 구현예에서, 에러 다항식의 계수가 가우스 분포를 따르도록 고려되기 때문에, 그 인자는
Figure pct00048
에 더 가깝다.
에러 크기 B1 및 B2를 각각 갖는 두 개의 암호문 C = Enc(μ1) 및 D = Enc(μ2)의 동형 승산은 에러를, 최악의 경우에
Figure pct00049
로, 다양한 고려되는 구현예에서는
Figure pct00050
로 증가시킨다는 것이 더욱 명확하다. 여기서,
Figure pct00051
는 메시지 다항식 μ의
Figure pct00052
놈(norm)을 나타낸다. 상기로부터 명백한 바와 같이, 두 개의 암호문에 대한 에러 의존성은 비대칭인 것이 유리하다.
v개의 암호문을 승산하기 위해, 승산의 순서는 에러에서 역할을 하도록 고려된다. 본 명세서에 설명되는 기술에서, 입력 μ는 통상적으로 0 또는 1일 것인데, 성장이 B1에 대해 단순히 가법적이라는 것을 의미한다. 따라서, 초다항식 레이트로 에러를 증가시키는 경향이 있는, 승산의 이진 트리를 사용하는 대신, 도 20에서 도시되는 바와 같이 누산기형 함수(accumulator-like function)를 통해 v개의 암호문을 (동일한) 에러 레벨 B로 승산하는 것이 유리하다. 결과적으로 나타나는 에러 성장은, 최악의 경우에
Figure pct00053
이고, 다양한 고려되는 구현예에서
Figure pct00054
이다. 그러므로, 제어 로직은 도 20에서 도시되는 바와 같이 그리고 다양한 고려되는 구현예에 의해 요구될 수도 있는 바와 같이, 누적 승산을 구현하도록 구성될 수도 있다.
예를 들면, 이제 도 22e의 표현식을 참조하면, 여기서,
Figure pct00055
는 입력 암호화된 비트의 v개의 쌍이고,
Figure pct00056
는 몇몇 세트 S에서의 비트의 v개의 쌍이고, 연산
Figure pct00057
는 비트 xi와 yi 사이의 이진 XNOR을 나타낸다. 항들 중 정확하게 하나가 생존할 수도 있다는 것(
Figure pct00058
인 경우 F =1, 그렇지 않으면 F = 0)을 도 25e의 표현식의 형태가 규정하기 때문에, 비록, 어떤 항이 생존할지를 도 22e의 표현식에 기초한 컴포넌트 계산이 정확하게 결정할 수 없을 수도 있더라도, 작은 총 에러 성장이 나타날 수 있다.
노이즈는, 최악의 경우
Figure pct00059
로, 또는 다양한 고려되는 구현예에서
Figure pct00060
로 성장한다는 것이 명백하다. 이것은, IBM HElib에서 구현되는, 공지된 Brakerski-Gentry-Vaikuntanathan 암호화 스킴을 사용할 때의
Figure pct00061
와는 대조적이다. 실제로, 도 22e의 표현식에서와 같은 이러한 표현식은, 비전형적인 것과는 거리가 멀고, 그들은, 하기에서 더 논의되는 바와 같이, 결정 트리 및 PIR형 함수를 평가함에 있어서 상당히 자연스럽게 발생한다.
현재 개시된 기술에 의해 제공되는 개선의 다른 소스는, 에러 항
Figure pct00062
로부터 명백하다. 도 20에서 도시되는 바와 같이 누산기를 사용하여 승산이 수행되는 경우, B2는 새로운 암호문 Ci에서 더 작은 에러를 나타내고, B1은 누적된 암호문 Caccum에서 더 큰 에러를 나타낸다. Ci가 μ2 = 0을 암호화하면, 더 큰 에러 항 B1은 에러 표현식으로부터 사라진다.
이 에러 감소는 또한 도 22e의 표현식으로부터 명백하다. 도 22e의 표현식에서 적(product)의 각각을 평가할 때, 에러는, 승산의 총 수인 v에 비례하는 것이 아니라, 오히려, 끝에서부터 시작하는 1의 가장 긴 연속하는 체인인 k와 비례하여 성장하는 것으로 보일 수 있다. 이것은, 승산 체인에서 제로가 조우되는 마지막 시간에, 상기의 관찰에 의해, 에러가 감소되기 때문이라는 것이 고려된다. S가 예상된 세트라고 가정하면, 뒤에서 이어지는 1의 연속하는 체인의 예상된 길이는
Figure pct00063
이다. 다시 말하면, v의 승산 인자도 또한 에러 표현식으로부터 사라지고, 에러 성장은
Figure pct00064
에 가깝게 된다. 이것은, 마치
Figure pct00065
개의 암호문이 추가된 것과 실질적으로 동일한 효과이다.
또한, f가 평가될 함수, 예를 들면 도 22e의 표현식으로 취해지면,
Figure pct00066
는, 크기 B의 초기 에러를 갖는 Rq의 암호문에 대한 함수 f를 평가할 때 에러가 얼마나 많이 성장하는지를 나타낸다. 정확한 암호 해독을 위해, 도 22f의 표현식이 유효하다는 것이 예상된다. 본 기술을 사용하여 에러가 더 느리게 성장하는 경향이 있기 때문에, q는 종래 기술의 보안 레벨과 동등한 보안 레벨을 충족하도록 상응하여 더 작게 설정될 수 있다. Lindner 및 Peikert의 분석에 따르면, λ 비트의 보안 레벨의 경우, 다음식이 유효하다는 것이 예상된다:
Figure pct00067
본 기술의 로그 q는 더 작기 때문에, n은, 동일한 보안 레벨 λ에 대해, 더 작게 설정될 수 있다. 결국에는, 더 작은 n은 더 작은
Figure pct00068
로 나타날 수 있고, 심지어 더 작은 q로 이어질 수 있고, 이런 식으로 계속된다. 적절한 파라미터는 도 22f 및 22g의 상기 부등식 둘 모두를 함께 푸는 것에 의해 획득된다. 도 21은 이러한 파라미터 선택의 예를 요약한다.
NTRU 기반의 FHE 스킴
RLWE 기반의 FHE 스킴에 대한 대안으로서, 본 발명의 몇몇 예에서, 연산의 복잡성을 감소시키기 위해 그리고 연산을 가속화하기 위해, 하기에서 상세히 설명되는 바와 같이, 암호화 스킴의 NTRU 변형예가 사용된다. 암호화 시스템은 다음과 같이 작동한다.
키 생성 함수, Keygen(1λ)은, (a) f가 고리 Rq에서 가역적이도록; 그리고 (b) f ≡ 1(mod 2)이도록, 두 개의 다항식
Figure pct00069
의 선택을 필요로 한다. 이것은, 조건 (a) 및 (b)를 만족할 때까지, 분포
Figure pct00070
로부터 다항식 f를 샘플링하는 것에 의해 수행될 수 있다.
공개 키 pk 및 개인(비밀) 키 sk는, 도 6b에서 도시되는 수학식으로부터 계산될 수 있다.
암호화 함수 Enc(pk, m)의 경우, 메시지 공간은 Rq이다. 평문 다항식
Figure pct00071
는 도 6c의 수학식을 평가하는 것에 의해 암호화되는데, 여기서
Figure pct00072
는 표준 편차
Figure pct00073
를 갖는 이산 가우스 분포로부터 샘플링된다. 이러한 암호화 함수는 암호화 엔진(62)에서 구현될 수 있다.
주어진 암호문 C에 대한 암호 해독 함수 Dec(sk, C)와 관련하여, 평문
Figure pct00074
는, 도 6d의 수학식을 사용하여 C를 비밀 키 f로 승산하는 것에 의해 복원된다. 이 암호 해독 함수는 암호 해독 엔진(104)에서 구현될 수 있다.
도 6d를 참조하면, 마지막 라인의 첫 번째 항의
Figure pct00075
개의 다항식은
Figure pct00076
형태이다. 이것은, 위치
Figure pct00077
에서의 요소가
Figure pct00078
의 형태라는 것을 의미한다. 즉, 각각의 엔트리의 최상위 비트는, 에러 < q/2라는 것 및 종래의 기술에서 발견되는 바와 같이 랩 어라운드 mod q가 없다는 것을 가정하여, μf에서의 각각의 계수로부터 단일의 비트를 지닌다. 그와 같이, "μf"는 C로부터 완전히 복구될 수 있는데, 그것은, 그 다음, f-1로 승산되어 μ를 복구할 수 있다.
메시지 다항식 μ를 복원하는 능력에 더하여, 암호문 내의
Figure pct00079
개의 고리 요소는, 하기에서 설명되는 바와 같이 동형 연산(특히, 동형 승산)에서의 노이즈 성장을 용이하게 하고 관리한다.
동형 연산에 관해서, μ1 및 μ2를 각각 암호화하는 입력 암호문
Figure pct00080
Figure pct00081
의 경우, 동형 연산은 다음과 같이 정의된다. 두 개의 암호문
Figure pct00082
Figure pct00083
을 가산하기 위한 가산 연산 ADD(C, D)의 경우, 출력은
Figure pct00084
인데, 이것은 엔트리 단위 가산이다. 두 개의 암호문
Figure pct00085
Figure pct00086
을 승산하기 위한 승산 연산 MULT(C, D)의 경우, 출력은
Figure pct00087
이다. 가산 및 승산 연산은 계산 엔진(88)에서 구현될 수 있다.
상기의 동형 가산 및 동형 승산의 정확성은, 본 개시내용의 관점에서 기술 분야의 숙련된 자에게 명백해야 한다. 승산 연산이 입력 암호문 C와 D에서 비대칭적이라는 것은 분명하다. 즉, D의 컴포넌트는 전체적으로 다루어지고, 반면 C의 컴포넌트는 그들의 "비트 단위 분해"로 분할된다. 이 승산 방법이 정확하고 느린 노이즈 성장률을 제공한다는 것이 하기에서 표시된다.
승산 연산의 정확성은 도 6e에서 도시되는 암호 해독 연산으로부터 명백한데, 여기에서는 명확성을 위해 행렬 차원이 제거되어 있다. 도 6e의 마지막 라인은 μ = μ2·μ1·f의 암호화이다.
Figure pct00088
이라는 것을 또한 유의한다.
노이즈 분석과 관련하여, C를 새로운 암호문으로 취하면, 도 6e에서 도시되는 동작의 관점에서 다음의 관찰이 이루어질 수 있다. v개의 암호문의 동형 가산은, 최악의 경우, 노이즈를 v 배만큼 증가시킨다. 일부 구현예에서, 에러 다항식의 계수가 가우스 분포를 따르기 때문에, 이 인자는
Figure pct00089
에 가깝다. 또한, 에러 크기 B1 및 B2를 각각 갖는 두 개의 암호문 C = Enc(μ1) 및 D = Enc(μ2)의 동형 승산은 에러를, 최악의 경우에
Figure pct00090
로, 다양한 고려되는 응용분야에서는
Figure pct00091
로 증가시킨다. 여기서,
Figure pct00092
은 메시지 다항식 μ의 l 1 놈을 나타낸다. 알 수 있는 바와 같이, 두 암호문에 대한 에러 의존성은 비대칭적이다.
파라미터의 설정과 관련하여, f를 평가되고 있는 그리고 v개의 암호문의 승산을 계산하는 함수로 하면,
Figure pct00093
는 크기 B의 초기 에러를 갖는 Rq의 암호문에 대한 함수 f를 평가할 때 에러가 얼마나 많이 성장하는지를 나타낸다. 정확한 암호 해독을 위해서, 도 6f의 수학식이 충족되어야 한다.
본 발명에 따른 에러가 몇몇 공지된 스킴에서의 것보다 더 느리게 성장할 수도 있기 때문에 그리고 노이즈 성장을 제어하기 위한 계수의 체인에 대한 필요성이 없을 수도 있기 때문에, q, 이러한 공지된 스킴에 의해 제공되는 동일한 보안 레벨에 대해 상응하여 더 작게 설정될 수 있다. λ 비트의 보안 레벨의 경우, 도 6g의 수학식이 충족되어야 한다.
본 발명에 따른 로그 q가 공지된 스킴에 비해 더 작을 수도 있기 때문에, n은 동일한 보안 레벨 λ에 대해 더 작게 설정될 수도 있다. 결국, 더 작은 n을 통해, 새로운
Figure pct00094
는 더 작아져서, 심지어 더 작은 q로 이어지고, 이런 식으로 계속된다. 최적의 파라미터는 도 6f 및 6g의 상기의 부등식 모두를 푸는 것에 의해 획득될 수 있다. 도 7의 테이블은 예시적인 파라미터 선택을 요약한다.
또한, 본 실시형태에 따른 암호화 스킴은 GSW 스킴에 의해 도입되는 병합 연산(flatten operation)을 사용하지 않는다. 병합된 암호문(Ctxt)은 많은 메모리 공간을 차지한다. 그것은 또한, 엔트리를 결합하고 그들을 다시 비트로 분해하기 위해(또는 심지어 더 높은 기수 분해 연산자의 경우 그들을 "m" 비트의 그룹으로 분해하기 위해) 상당한 계산 시간을 필요로 한다. 또한, 본 발명에 따른 암호화 스킴이 병합 연산을 사용하지 않기 때문에, 그것은 암호문을 나타내는 단일의 비트를 갖지 않는다. 오히려, 암호문은 패킹된 수(packed numbers) mod q로 표현된다. 암호문을 승산하기 위해서는, 규칙적인 다항식 순환 컨볼루션을 사용하는 것과는 대조적으로, 암호문 승산 연산을 가속시키도록 빠른 NTT 알고리즘을 사용하는 것이 유리하다. 본 실시형태에 따른 암호화 스킴은, 암호문 내의 단일의 다항식으로부터 단일의 비트만을 암호 해독하는 것과는 대조적으로, 암호문 내의 모든 l개의 다항식으로부터의 최상위 비트를 암호 해독한다. 이 방식에서, 각각의 다항식으로부터 하나씩의 l개의 비트가 암호 해독될 수 있다. 이들 비트는 도 6w에서 도시되는 공식을 사용하여 암호화된 다항식으로 다시 결합된다.
수집될 수 있는 암호화된 기밀 데이터의 타입 및 그에 수행될 수 있는 동형 계산이 이제 논의된다. 하기에서 논의되는 특정한 데이터/계산은, 의료 데이터, 예컨대 암호화된 게놈 데이터의 분석, 질병의 예측 분석, 및 관계 연산 평가를 포함한다. 본 명세서에서 포함되는 다른 데이터는, 금융 거래 데이터, 특히 신용 카드 데이터이다. 비록 논의되는 예 중 몇몇이 특정한 데이터에 관련되지만, 몇몇 계산은 다른 타입의 데이터(예를 들면, 관계 연산)에 대해 사용될 수 있다는 것을 유의한다. 또한, 하기에서 논의되는 예는 제한하는 것이 아니며 본 발명의 범위 내의 다른 예가 고려된다는 것을 유의한다.
금융 거래
동형 암호화 시스템의 실시형태에 대한 응용분야의 다른 영역은 금융 거래, 특히 신용 카드 거래이다. 최근 몇 년 동안 신용 카드에 대한 공격이 엄청나게 증가했는데, 주요 침해는 수백만 건의 고객 기록이 노출되는 것으로 나타났다. 일단 노출되면, 고객 정보는 (예를 들면, 다크 웹(dark web) 상에서) 재판매될 수도 있고, 사기 거래를 위해, 특히 카드가 존재하지 않는(card not present: CNP) 거래를 위해 사용될 수도 있거나, 또는 판매 시점(Point-of-Sale: POS) 시스템에 대한 직접적인 공격을 위해 사용될 수도 있다.
이들 공격은, 데이터베이스 내의 신용 카드 정보 또는 고객용의 신용 카드 정보 중 어느 하나가 신용 카드 승인 프로세스(credit card authorization process)의 어떤 지점에서 평문 포맷으로 존재하기 때문에 발생한다. 본 발명의 일 실시형태에 따르면, 시스템은 신용 카드 정보를 그것이 획득되는 지점부터 암호화할 수도 있고 심지어 인증 단계에서도 암호문을 결코 암호 해독하지 않을 수도 있다.
지불 처리
VISA™ 및 MasterCard™와 같은 주요 신용 카드 회사는, 4자 모델(four-party model)로 칭해지는 은행 카드 거래를 구축한다. 이 모델의 당사자는 카드 소지자(1500), 상인(1510)(서비스 공급자), 지불 프로세서(1520)(획득자(acquirer)), 및 카드 발급자(1540)이다. 또한, 모두 도 15에서 도시되는 바와 같이, 신용 카드 회사(지불 브랜드)(1530)인 제5 당사자가 잠재적으로 존재한다.
무언가를 구매하기를 원하는 카드 소지자(1500)가 온라인 상인에게 그의 신용 카드 정보를 사용하거나 또는 상점에서 상인(1510)에게 그의 신용 카드(1505)를 제시하는 경우 거래는 시작된다. 온라인의 또는 판매 시점 시스템을 사용하는 상인(1510)은 신용 카드 정보를 획득하여 암호화하고 그것을 네트워크를 통해 지불 프로세서(1520)로 전송한다(1515). 상인에서의 암호화는 POS 단말에서 행해질 수도 있거나 공개 암호화 키를 사용하여 상인의 시스템 상에 설치되어 있는 애플리케이션을 사용하여 행해질 수도 있다. 그 다음, 지불 프로세서(1520)는 신용 카드 정보를 암호 해독하고 그것을 승인(authorization)을 위해 카드 발급자(1530)에게 포워딩한다(1525). 상인(1510)은 신용 카드에 요금을 청구하고, 일단 신용 카드 승인이 수신되면 카드 소지자(1500)에게 서비스 또는 제품을 제공한다. 지불 프로세서(1520)는 서비스에 대해 상인에게 상환하고, 그 이후, 카드 발급자(1530)는 24 시간 또는 48 시간 내에 지불 프로세서(1520)에게 다시 비용을 지불한다. 상인이 카드 소지자 정보를 저장할 필요성을 제거하기 위해, 지불 프로세서와 상인 사이에 토큰화된 시스템이 활용될 수도 있다. 상인은 카드 소지자 계좌에 대응하는 토큰 또는 개개의 거래에 대응하는 토큰 중 어느 하나만 저장한다.
카드 소지자 및 거래 데이터와 같은 정보뿐만 아니라, 네트워크 및 상호 교환 수수료와 같은 내부 수수료는, 거래 동안, 또는 거래 이후 어느 한 경우에 필요에 따라, 지불 프로세서(1520)와 신용 카드 회사(1540) 사이에서 전달될 수도 있고(1545), 또는 카드 발급자(1530)와 신용 카드 회사(1540) 사이에서 전달될 수도 있고(1555), 또는 둘 모두에서 전달될 수도 있다.
이 신용 카드 시스템에는 공격자가 신용 카드 정보를 훔치는 것을 허용할 수도 있는 다수의 취약성의 지점이 존재한다.
판매 시점 시스템(Point of Sale System: POS): 카드 소지자가 그의 카드를 상인 상점에 제시할 때, 이 정보를 컴퓨터로 전송하는 카드 판독기 또는 신용 카드 머신에서 그의/그녀의 카드를 긁는다. 이 카드 정보가 지불 프로세서로 전송되기 이전에 얼마의 시간 동안 이 카드 정보가 암호화되지 않는 시스템의 몇몇 지점이 존재할 수도 있다. 이 지점에서, 시스템에 설치된 멀웨어(malware)가 이 정보를 수집하여 그것을 공격자에게 다시 전송할 수 있다. 이 취약성을 해결하기 위해, 신용 카드 정보는, 그것이 카드 판독기를 사용하여 판독되는 순간에 암호화되어야만 한다. 이렇게 하면, 멀웨어가 이 방법을 사용하여 카드 정보를 수집할 수 없을 것이다. 현재, 신용 카드 정보를 POS 시스템으로부터 지불 프로세서로 안전하게 송신하기 위해, 포인트 투 포인트 암호화(Point to Point Encryption: P2PE)가 사용되는데, 지불 프로세서는, 그 다음, 검증을 위해 카드 발급자로 전송할 신용 카드 정보를 암호 해독한다. P2PE는 암호화를 위해 3DES 또는 AES를 사용하는데, 이들은 당분간 안전하다고 여겨질 수도 있지만 장래에는 양자 컴퓨터에 대해 안전하지 않을 수도 있다.
지불 프로세서: 지불 프로세서가 상인으로부터 암호화된 신용 카드 정보를 수신하면, 지불 프로세서는 그것을 암호 해독하고 그것을 인증을 위해 카드 발급자에게 평문으로 전송한다. 이것은 약점의 명확한 지점이다. 지불 프로세서 시스템에 설치되어 있는 임의의 멀웨어, 또는 지불 프로세서와 카드 발급자 사이의 보안 채널을 뚫은 임의의 공격자는, 평문 형태인 동안 신용 카드 정보를 수집할 수 있다. 이 취약성을 해결하기 위해, 신용 카드 정보는 어느 지점에서도 절대 암호 해독되지 않아야 한다. 추가적으로, 토큰화된 시스템의 경우, 거래를 토큰으로 또는 그 반대로 변환하는 보안 금고(secure vault)의 존재 여부. 이 금고는 모든 카드 소지자 정보 및 그들의 대응하는 토큰을 저장한다. 이 금고가 해킹되면, 중요한 정보가 위험에 처하게 될 것이다.
카드 발급자는 취약성의 두 지점을 갖는다: 1) 카드 발급자가 고객 신용 카드 정보를 평문으로 수신함. 이것은 고객 신용 카드 정보를 공격의 가능성에 노출시킴; 및 2) 신용 카드 정보를 착신하는 카드 정보와 비교하기 위해, 카드 발급자의 모든 고객에 대한 신용 카드 정보의 카드 발급자 데이터베이스가 보안 서버에서 평문으로 방치됨. 이것은 신용 카드 정보에 대한 가장 큰 보안 위협이다. 이것은, 이 보안 데이터베이스에 대한 공격이 모든 신용 카드 정보의 손실을 초래할 것이기 때문이다.
평문의 데이터베이스 내의 신용 카드 정보 및 또한 착신하는 카드 정보 모두가 암호화되고 암호문인 상태 동안 비교되면, 이들 취약성은 해결될 수도 있다.
도 16에서 도시되는 바와 같은 실시형태에 따르면, 현재 시스템보다 훨씬 높은 레벨의 보안성을 제공할 수도 있는 신용 카드 승인 시스템에서의 변화인 본 발명의 실시형태가 제시된다. 구현되는 시스템은, 격자 기반의 암호화에 기초하는 양자 보안(quantum secure) 완전 동형 암호화(Fully Homomorphic Encryption: FHE)를 사용하여 POS 시스템에서 신용 카드 정보를 암호화하는 것에 기초할 수도 있다. FHE에 대한 필요성은, 암호화된 데이터에 대한 동형 가산 및 승산 연산 둘 모두에 대한 필요성에 기초한다. 단지 하나의 타입의 연산만이 필요로 되는 경우, 부분 동형 암호화(somewhat homomorphic encryption)가 사용될 수도 있다. 일단 카드 정보가 온라인 웹 사이트에서 또는 POS에서 암호화되면, 이후 어느 지점에서든 암호 해독할 필요가 없을 수도 있다. 암호화된 신용 카드 정보는, 동일한 FHE 암호화를 사용하여 또한 암호화될 수도 있는 카드 발급자측에서 신용 카드 데이터베이스 데이터(예를 들면, 데이터베이스에서 유지되는 다양한 카드 소지자에 대한 카드 소지자 데이터의 세트)에 대해 비교될 수도 있다.
따라서, 시스템은, 네트워크, 또는 데이터베이스 서버 중 어느 하나 내의 신용 카드 정보에 대한 임의의 가능한 공격을 제거할 수도 있는데, 그 이유는, 그들 모두가 양자 보안 FHE 암호화 스킴을 사용하여 암호화될 수도 있기 때문이다.
소비자(1610)로부터의 카드 소지자 데이터(주 계정 번호(PAN))는 온라인 거래 데이터 엔트리(또는 POS)에 의해 캡처되고, 데이터는 공개 키 완전 동형 암호화(FHE) 스킴을 사용하여 암호화된다. 신용 카드 번호(첫 자리 숫자 및 마지막 4 자리 숫자 제외), 월, 연도, 및 CVV 번호는 신용 카드 회사에 의해 공개되는 FHE 공개 암호화 키를 사용하여 암호화될 수도 있다. 카드 소지자의 이름 및 신용 카드 번호의 첫 자리 숫자 및 마지막 4 자리 숫자는 통상적인 암호화 스킴을 사용하여 암호화될 수도 있다. 그 다음, 상인(1620)은 암호화된 PAN을 획득자(acquirer)/지불 프로세서(1630)로 전송한다.
지불 프로세서(1630)는 신용 카드의 첫 자리 숫자를 사용하여 암호화된 PAN을 적절한 지불 브랜드(1640)(예를 들면, Visa™, MasterCard™, American Express™ 등)로 포워딩한다. 그 다음, 지불 브랜드(1640)는 다음 번 다섯 자리 숫자(BIN: 은행 식별 번호(Bank Identification Number))를 사용하여 암호화된 PAN을 카드 발급자(1650)(발행 은행)으로 포워딩한다.
카드 발급자(1650)는 카드 소지자 이름 및 마지막 4자리 신용 카드 숫자를 사용하여, 이 정보와 매칭되는 데이터베이스 내의 신용 카드 엔트리를 좁힐 수도 있다. 좁혀진 목록 내의 각각의 엔트리가 열거될 수도 있고, FHE 알고리즘을 사용하여 암호화된 PAN에 대해 비교될 수도 있고, 암호화된 매칭되는 표시자가 목록 내의 각각의 엔트리에 대응하는 번호로 승산될 것이다. 각각의 엔트리로부터의 암호화된 결과가 모두 더해져서 최종 결과를 얻을 수도 있다. 최종 결과는 매칭 계정의 번호를 암호화할 수도 있고, 모든 다른 모든 계정에 대응하는 번호는 (불일치로 인해) '0'으로 승산될 것인데, 이것은 결과를 무효로 할 것이다. 암호화된 결과는 지불 브랜드(1640)로 다시 전송되는데, 지불 브랜드는 암호화된 결과를 암호 해독하고, 매칭 계정에 대응하는 단일의 숫자인 최종 결과를 카드 발급자(1650)에게 다시 전송하여, 그 카드가 분실 또는 도난 신고되지 않았다는 것, 및 계정이 거래에 대해 지불하는 데 이용 가능한 적절한 양의 크레딧/자금을 가지고 있다는 것을 검증한다. 카드 엔트리는 가장 자주 사용되는 것 단위로 순서가 정해질 수도 있고 엔트리의 나머지는, 일단 적중(hit)이 발견되면, 검증 시간을 감소시키기 위해 무시될 수도 있다.
승인되면, 발급자(1650)는 승인 번호를 생성하고 이 번호를, 카드 고유의 FHE 암호화된 PAN과 함께, 지불 브랜드(1640)로 다시 경로 지정한다. 지불 브랜드(1640)는 승인 코드 및 암호화된 PAN을 획득자/프로세서(1630)로 다시 포워딩한다.
획득자/프로세서(1630)는 보안 금고(1660)에 액세스하여 암호화된 PAN에 대응하는 토큰을 검색/생성한다. 보안 금고(1660)는 토큰을 제외하고는 FHE로 또한 암호화될 수도 있다는 것을 유의한다.
획득자/프로세서(1630)는 토큰을 상인(1620)에게 다시 반환한다. 상인은, 반품의 처리, 보상 요청 또는 지불 거절(chargeback)을 위해, 뿐만 아니라, 소비자 구매 거동의 분석 및 마케팅 프로그램의 생성과 같은 비즈니스 인텔리전스 이유를 위해, 토큰을 상인 데이터베이스(1670)에 장기간 유지할 수도 있다.
이 실시형태는, 단지 하나의 엔티티, 즉 신용 카드 회사(1640)가 비밀 암호 해독 키를 소유하고 공개 암호화 키를 분배하는 중앙 집중화식 시스템의 예이다. 다른 실시형태는, 각각의 카드 발급자(1650)가 자기 자신의 비밀 암호 해독 키를 보유하고, POS 시스템이, 신용 카드가 어떤 카드 발급자에 속하는지를 인식하고 이 카드 발급자에 대응하는 적절한 공개 암호화 키를 사용하여 카드의 정보를 암호화하는 분산식 시스템(decentralized system)이다. 이 분산 시스템은 암호화된 비교 결과의 암호 해독을 전적으로 담당하는 다른 엔티티 를 필요로 할 수도 있다. 이것은, 귀중한 비밀 암호 해독 키를 보유하는 서버로부터 암호화된 신용 카드 정보를 보유하는 카드 발급자 서버를 분리하도록 요구 받을 수도 있다.
다른 실시형태는 FHE 다중 당사자 계산의 사용이다. 각각의 사용자에 대해 상이한 비밀 키가 생성될 것이고 공개 키는 신용 카드 자체에 저장될 것이다. 카드 소지자 데이터는 사용자의 공개 키에 의해 암호화될 것이고 다른 계정에 대한 매칭을 위해 시스템으로 전송될 수도 있다. 최종 결과를 암호 해독하기 위해서는 다수의 비밀 암호 해독 키가 필요로 될 것이다. 추가적으로, 다수의 키를 통해, 각각의 당사자는 그들의 키와 관련되는 정보의 암호 해독만으로 제한될 수도 있고, 임의의 다른 정보를 암호 해독할 수 없을 수도 있어서, 데이터의 전반적인 보안을 향상시킬 수도 있다.
시스템은 다수의 상이한 레벨에 적용될 수도 있다: 제1 버전은, 정보가 원점으로부터 암호화되고 시스템의 어떠한 지점에서도 절대 암호 해독되지 않는 완전한 시스템이다.
제2 버전은, 현재 지불 시스템을 수용하기 위해, 그리고 데이터 공격의 위험성을 감소시키기 위해, 지불 프로세서에서, 카드 정보 암호 해독 이후, 카드 정보가 카드 발급자에게 전송되기 이전에 FHE를 사용하여 다시 암호화될 수 있는 부분 시스템이다. 이것은 공격의 가능성을 감소시킬 수도 있지만, 그러나, 데이터가 공격에 취약한 디바이스 메모리에 상주할 수 있는 정보 암호 해독과 재암호화 사이에서 데이터가 명확한 상태가 되는 시간적으로 짧은 순간이 존재한다. 그러나, 카드 발급자의 신용 카드 데이터베이스는 FHE를 사용하여 항상 암호화된 상태로 유지될 수도 있다.
시스템은 또한, 신용 카드 또는 페이팔(PayPal)을 사용하는 온라인 지불 시스템 또는 지불 정보가 인터넷을 통해 전송되기 이전에 고객 PC 상에서 암호화될 수도 있는 다른 온라인 거래 서비스를 사용하는 온라인 거래를 지원한다.
일 실시형태에 따르면, 신용 카드는 다음의 주요 정보로 구성된다: 은행 이름(앞면); 13 내지 19 자리 숫자의 신용 카드 번호(앞면); 신용 카드 만료일(expiry date)(앞면); 카드 소지자 이름(앞면); 및 카드 검증 값(Card Verification Value: CVV)(뒷면). 신용 카드 번호는, 발급자 식별자 번호(Issuer Identifier Number: IIN)로 또한 알려져 있는 6 자리 숫자의 은행 식별 번호(BIN), 및 6 내지 12 자리 숫자의 계정 번호, 및 한 자리 숫자의 체크섬 수(checksum number)로 구성된다. 계정 번호 및 체크섬 수의 마지막 3 자리 숫자는 동일한 FHE 스킴을 가지고 그러나 암호 해독을 위해 특정한 당사자에게 주어질 수도 있는 상이한 키를 사용하여 암호화된다. 직불 카드, 보상 카드 및 상인 고유의 카드와 같은 BIN 또는 IIN을 기반으로 하는 다른 카드도 또한 사용될 수도 있고 등가의 번호 매김 시스템(numbering system)을 가질 수도 있다.
일 실시형태에서, 다음 필드는 양자 보안 격자 기반의 완전 동형 암호화(Fully Homomorphic Encryption: FHE)를 사용하여 암호화될 수도 있다: 신용 카드 번호의 중간의 3 내지 9 자리의 숫자(예를 들면, 계정 번호의 보안 부분), 만료일 및 CVV 번호. 이들 필드는 검증 프로세스의 어떤 시점에서도 절대 암호 해독되지 않을 수도 있다. 그들은 항상 암호문(Ctxt) 형태일 수도 있다.
신용 카드의 나머지 항목은 동일한 암호화 스킴을 사용하여 그러나 하나 이상의 상이한 공개/비밀 키 쌍을 가지고 암호화될 수도 있다. 적절한 키 관리 시스템은 시스템의 전반적인 보안에 중요하다. 다른 키는 필요로 되는 필드를 암호 해독하기 위해 중간 당사자에 의해 사용될 수도 있다. 비록 나머지 필드가 FHE 스킴을 사용하여 암호화될 수도 있지만, 그들에 대해서는 어떠한 동형 연산도 적용되지 않을 수도 있다. 나머지 필드의 모든 문자는 동일한 다항식의 인접한 계수에 부호화될(encoded) 수도 있다. 나머지 필드는, 은행 이름, 카드 소지자 이름, 신용 카드 번호의 처음 6 자리 숫자(BIN 번호) 및 마지막 4자리 숫자이다.
이들 나머지 필드는 검증 프로세스의 몇몇 지점에서 평문(Ptxt) 형태일 수도 있다. 그들은 신용 카드 회사(첫 번째 숫자)를 식별하는 것뿐만 아니라 카드 발급자 신용 카드 데이터베이스(마지막 네 자리 숫자 + 카드 소지자 이름)에서 신용 카드 엔트리를 좁히는 것을 돕는다. 이 선택은 가능한 매칭 카드를 몇몇 개로 좁힌다. 추가적으로, 필드를 분할하는 것에 의해, 시스템은 국제 표준화기구(International Organization for Standardization: ISO)에 의해 개발된 8 자리 숫자 및 영숫자 BIN 제안과 같은, 신용 카드 번호 시스템에 대한 향후의 변경을 수용할 수도 있다.
추가적으로, 데이터가 암호 해독되지 않고, 데이터의 실제 소스 및 콘텐츠가 중요하지 않기 때문에, 데이터의 유효성을 확인하고 인증하는 능력으로서만, 추가적인 필드가 거래 요청에 포함되어 혼란 없이 핸들링될 수도 있다. 따라서, 생체 인식(예를 들면, 지문) 식별, 회전하는 또는 가변적인 CVV 번호, 일회용 카드 번호와 같은 개발은, 본 방법 및 시스템을 통해, 그리고, 몇몇 경우에는, 어떠한 실질적인 변경도 없이, 모두 유효성이 확인되고 인증될 수도 있다.
앞서 언급되는 바와 같이, 신용 카드 정보의 몇몇 필드는 검증 프로세스에서 어떤 시간에도 절대 암호 해독되지 않을 수도 있다. 이들 암호화된 항목을 사용하여 신용 카드 인증을 수행하는 것은, FHE 암호화 스킴의 속성을 사용한다.
완전 동형 암호화는, 암호화된 데이터에 대한 가산 및 승산 연산이 암호화된 결과를 생성하는 것을 허용하는데, 암호화된 결과는, 암호 해독될 때, 암호화되지 않은 데이터(unencrypted data)에 연산의 동일한 세트가 적용되는 경우 정확한 결과를 제공한다.
두 개의 단일의 비트 x 및 y 사이의 블라인드 매칭을 수행하기 위해, 이들 두 개의 비트에 대해 XNOR 이진 연산
Figure pct00095
을 적용하는 것이 가능하다. XNOR 연산자를 동형적으로 구현하기 위해서는, 그것은 가산 및 승산 연산으로 분해될 필요가 있다, 구체적으로
Figure pct00096
로 분해될 필요가 있다.
다수의 비트 입력, 즉 x = x1x2...xn 및 y = y1y2...yn을 매칭시키기 위해, 이것은, 대응하는 동일 차수의 개개의 비트를 매칭시키고, 개개의 비트 매칭의 결과를 함께 승산하는 것 z = z1×z2×...×zn에 의해 간단히 행해질 수 있다. 여기서 최종 결과 z는 x가 y와 동일한지 또는 아닌지를 나타내는 단일의 비트이다.
Figure pct00097
를 사용하여 XNOR 연산을 구현하는 것은, 다수의 누산기 Ctxts(이전의 Ctxt 승산의 결과를 암호화하는 Ctxts)를 지원하는 다른 동형 암호화 스킴에 대해 사용된다. 이 다수의 누산기 승산은, 보안 레벨을 일정하게 유지하면서, 파라미터 값이 가능한 한 작게 설정되어야 하기 때문에, 구현된 암호화 스킴에 대해 적합하지 않고, 그 결과, 그것은, 누산기를, 새로운 Ctxts, 또는 Ctxt 가산/감산 연산으로부터의 결과인 Ctxts 중 어느 하나와만 승산하는 것을 지원한다. 이것은, Ctxts의 메모리 및 네트워크 사용량을 감소시킬 수도 있고, Ctxt 연산을 또한 가속시킬 수도 있다.
이것을 해결하기 위해, XNOR 연산을 구현된 암호화 스킴에 대해 적합하게 만들도록, XNOR 연산은 재작성될 수 있다. XNOR은
Figure pct00098
가 되도록 다시 공식화되고(reformulated) 이 공식을 x와 y에 적용하는 것은, x = y인 경우에만 z = 1로 나타날 것이다. 이것은, 다중 비트 입력 x 및 y의 경우, 매칭되는 비트 z가 z =(1 - x1 - y1)(1 - x1 - y1)(1 - x2 - y2)(1 - x2 - y2)...(1 - xn - yn)(1 - xn - yn)와 동일하기 때문에, 시스템 요건을 해결한다. 이제, 각각의 개개의 괄호는, 구현된 암호화 스킴을 사용하여 구현 가능한 Ctxt 가산/감산 연산으로만 구성된다.
x > y이면 z = 1이고, 그렇지 않은 경우 z = 0인 보안 관계 연산도, 상기의 도 6u 및 도 6v에서 논의되는 바와 같은 보안 관계 연산을 사용하는 FHE 암호화 스킴을 사용하여 또한 가능하다. 이것은, 신용 카드 거래 "y"에 대한 필요한 금액이 이 계좌 "x"의 신용 한도를 초과하는지(또는 직불 카드의 경우 계좌 한도를 초과하는지)를 또한 체크할 수 있는 것에 매우 유용할 수 있다.
일 실시형태에 따르면, 보안 신용 카드 인증을 수행함에 있어서, 신용 카드 번호의 중간 숫자(이 예의 경우, 16 자리 숫자 카드 번호에 대한 6 자리 숫자)가 먼저 비트로 변환되는데, 각각의 비트는 그 다음 FHE 암호화를 사용하여 암호화된다. 동일한 프로세스가 만료일 및 CVV 번호에 대해 수행된다. 그 다음, 이들 암호화된 비트는, 신용 카드의 카드 소지자 이름, 은행 이름, BIN 번호, 및 신용 카드의 마지막 4 자리 숫자와 함께, 지불 프로세서로 전송되는데, 지불 프로세서는 그 다음 그들을 적절한 카드 발급자로 포워딩한다. 그 다음, 카드 발급자는 이 정보를 수신할 것이고, 카드 소지자 이름 및 카드 번호의 마지막 4자리 숫자를 사용하여, 검색을 (이름 및 마지막 4자리 숫자에서의 매칭에 기인하는) 단지 몇몇의 가능한 매칭 계정으로 좁힐 것이고, 대응하는 암호화 정보가 페치(fetch)될 것이다. 그 다음, 착신하는 암호화된 정보와 가능한 매칭 계정 사이에서 보안 인증이 적용된다. 매칭하지 않는 계정에 대해 수행되는 인증 연산은, z = 0인 암호화된 표시자로 나타날 것이다. 매칭 계정은, 신용 카드 번호, 만료일, 및 CVV 번호(및 사용되는 경우 어쩌면 BIN 번호)의 모든 비트가 일치하면, 그리고 요청된 거래 금액이 계정 잔액 또는 한도 미만이면, z = 1의 암호화된 표시자가 생성될 것이다. 그 다음, '0' 또는 '1' 중 어느 하나인 암호화된 표시자는, 감소된 목록에 대한 이 엔트리의 순서에 대응하는 번호로 승산될 수 있다. 이 최종 결과의 암호 해독하기 위해 그리고 이 거래에 대한 확인을 얻기 위해, 감소된 목록에서의 매칭 계정의 순서를 암호화하는 이 암호화된 표시자는, 신용 카드 회사에서(또는 분산 스킴의 경우 카드 발급자에 의해 소유되는 별개의 보안 서버 상에서) 이용 가능한 비밀 암호 해독 키를 사용하여 암호 해독될 필요가 있다. 암호 해독 후, 감소된 목록에서의 매칭 계정의 순서에 대응하는 단일의 숫자만이 리턴된다.
다른 실시형태에서, 입력 카드에 대한 그리고 매칭 계정의 각각에 대한 민감한 비트는, "k"개의 부분으로 분할되는데, 여기서 "k"는 각각의 머신에서 이용 가능한 프로세서(예를 들면, GPU)의 수에 대응하고, 각각의 부분은 상이한 GPU로 전송된다. 각각의 GPU는 0에서부터 k-1까지의 범위에 이르는 숫자에 의해 열거될 수도 있다. 각각의 GPU로부터의 결과는, 대응하는 위치로 1 시프트된 다항식으로 승산하는 것에 의해 자신의 GPU 번호에 대응하는 다항식 슬롯의 수만큼 회전될 수도 있다. 결과가 각각의 GPU로부터 이용 가능한 경우, 모든 결과는 가산된다. 이것은, 암호화된 다항식의 k개의 슬롯 각각이 대응하는 비트에 대한 매칭 또는 비매칭(non-match)에 대응하는 비트를 갖는 결과를 생성할 것이다. 암호 해독 이후, 모든 비트가 넌제로이면, 이것은 이 계정이 매치한다는 것을 의미한다. 매칭 계정이 발견되면, 그것은, 다음 번에 매칭 시간을 더 빨리 만들기 위해, 데이터베이스의 목록의 최상부에 놓일 수도 있고, 또한 나머지 계정은 무시될 수도 있다.
이 시스템에 대해 사용되는 양자 보안, 격자 기반의 FHE 스킴은 계산 집약적일 수도 있다. 동형 연산을 가속화하기 위해, 그래픽 프로세싱 유닛(graphical processing unit: GPU)이 CPU와 나란히 시스템에서 사용된다. 각각의 GPU는 초당 다수의 거래를 지원할 수 있다. VISA™ 및 MasterCard™과 같은 큰 거래 기업에 의해 요구되는 초당 많은 거래(각각은 초당 최대 4000 거래를 필요로 할 수도 있음)를 수행하기 위해, 많은 GPU 카드가 필요로 된다. 이러한 성능 처리량을 실현하기 위해, 임의의 레벨의 수요를 서비스하도록 확장될 수 있는 다중 서버 환경이 구현될 수도 있다.
또한, 상기의 실시형태가 유효한 계정의 존재를 결정하기 위해 거래 요청에서 계정 이름 및 번호의 목록에 대한 신용 카드의 단순한 매칭을 제시하지만, 유효성 확인의 다른 목록 및 타입이 또한 발생할 수도 있다. 예를 들면, 도난/분실 카드 및 카드 소지자 데이터의 별개의 목록이 존재할 수도 있고, 그 목록에 대해서 거래 요청이 또한 비교될 수도 있다. 그 경우, 카드 번호는 유효할 수도 있지만, 그 카드가 도난/분실 목록 상에서 또한 나타나는 경우, 인증은 거절될 수도 있다. 유사한 프로세스가, 이러한 정보의 개시에 관한 법을 계속 준수하면서, 거래에 대한 블랙리스트화된 국가와 같은, 다른 유효성 확인 및 인증 목록에 대해 또한 사용될 수도 있다.
이것은 또한, 데이터를 요청으로부터 추출하는 것, 또는 그것을 목록에서 매칭시키는 것 중 어느 하나에 의해, 예컨대 요청의 데이터를 상인 보상 프로그램에 매칭시키는 것에 의해, 사용자 및/또는 상인의 이익으로도 또한 유도될 수도 있다. 이것은 다수의 거래 및 별개의 프로세싱에 대한 필요성을 감소시켜서, 잠재적으로 더 큰 거래 효율성으로 이어진다. 더 많은 확장 및 변형은 데이터 대역폭 및 프로세싱 시간 요건에 의해서만 제한될 수도 있다.
효과적으로, 임의의 암호화된 데이터는, 암호 해독에 대한 필요 없이 암호화된 데이터의 임의의 세트에 대해 유효성이 확인될 수도 있고 인증될 수도 있다. 암호 해독 정보가 공유될 필요가 없기 때문에, 데이터 포맷, 데이터 구조, 또는 심지어 데이터 자체에서의 변경은 더욱 쉽게 수용될 수도 있다.
동형 암호화는 기본적으로 데이터 무결성을 제공하지는 않는다. 해커는, 암호화된 데이터를, 정지 상태에 있는 동안 또는 움직이는 동안, 데이터에 그들의 수학적 연산을 적용하는 것에 의해, 함부로 변경할 수도 있다. 이것은 조작된 데이터의 결과에 영향을 미칠 수도 있으며, 공격에서 해커를 도울 수도 있는 어떤 것으로 결과를 변경할 수도 있다. 예를 들면, 암호화된 "1"을 갖는 최종 암호화된 플래그에 동형 OR 연산을 적용하는 것은, 결과를 항상 "1" 또는 "거래 허가"로 만들 것이다. 승인되지 않은 당사자의 수정으로부터의 데이터 무결성의 보호는, 변조 방지 신용 카드 인증 시스템을 제공하도록 여분의 수학적 기계류(machinery)를 적용하는 것에 의해 제공될 수도 있다. 제한이 없는 한 예로서, 메시지 무결성의 필수 인증을 제공하기 위해, 해시 기반의 메시지 인증 코드(Hash-based Message Authentication Code: HMAC)가 암호화된 메시지에 추가될 수 있다.
또한, 신용 카드 거래에 대한 추가적인 보안 보호 레이어로서, 시스템은 시간이 경과함에 따라 주기적으로 변화하는 신용 카드 CVV 번호의 암호화를 지원할 수도 있다. 시스템은, CVV 번호 생성기 키를 동형적으로 암호화하고 그것을 은행 데이터베이스에 저장할 수도 있다. 새로운 고객 신용 카드가 검증되고 구매 승인되는 경우, 수학적 연산은 CVV 생성기 키에 동형적으로 적용되어, 검증될 고객 신용 카드에 대해 매칭될 새로운 유효한 CVV 번호를 생성한다.
예를 들면, 요청에 대한 유효성 확인과 인증 및 기밀의/암호화된 처리 둘 모두를 요구한 다른 형태의 정적인 또는 준정적인(quasi-static) 개인 식별 데이터가 이 시스템 및 방법 내에서 사용될 수도 있다. 은행 직불 카드(신용 카드와 유사한 데이터 구조)뿐만 아니라, 카드 또는 유사한 포맷에서 통상적으로 발견되는 다른 개인 식별 정보가 사용될 수도 있다. 예컨대, 유효성 확인을 위한 데이터를 검색할 보험 공급자의 이름과 함께, 이름, 그룹 또는 플랜 번호, 및 개인 식별자를 포함할 수도 있는, 의료 ID 및 보험 카드. 또는, 유효성 확인을 위한, 번호, 여권 번호, 발행일 및 만료일, 시민권, 및 발행 국가를 포함할 수도 있는 여권. 신용 카드에서와 마찬가지로, 기밀로 간주되는 데이터 및 일반 텍스트로서 공유될 수도 있는 데이터는, 식별 데이터를 담당하는 관리 단체, 예를 들면, 여권의 경우 정부의 결정에 의존한다.
또 다른 예로서, 이 시스템 및 방법은 또한, 인증의 분야에서 사용될 수도 있는데, 예컨대, 다양한 디바이스를 사용하는 잠재적으로 다수의 사용자에 의해 전세계 임의의 곳으로부터 액세스될 수도 있는 상이한 위치의 데이터 및 애플리케이션에 대한 액세스를 안전하게 하기 위한 클라우드 기반의 신원 관리 서비스로서 동작하는 서비스로서의 인증(Authentication as a Service: AaaS)에서 사용될 수도 있다. 식별 및 인증을 넘어, 본 시스템 및 방법은 또한, 예를 들면, 다른 정보를 오퍼레이터에게 노출시키지 않으면서 리스트 상에 개개인의 존재 또는 부재를 확인하도록, 기밀의 및/또는 민감한 개인 정보를 포함하는 정부 유지 비공개 목록 또는 다른 형태의 감시 목록 또는 레지스트리를 검색하기 위해 사용될 수도 있다.
일 실시형태에 따른 전체 시스템이 도 17에서 도시된다. 인증 프로세스는, 지불 프로세서(1710)가 신용 카드 정보를 카드 발급자에게 전송할 때 발생할 수도 있다. 카드 발급자는 착신하는 요청을 수용하는 프론트 엔드 서버(1720)를 구비할 수도 있다. 이 프론트 엔드 서버(1720)는, 자신의 점유 상태(미사용 상태(free)인지 또는 아닌지)에 관해 프론트 엔드 서버(1720)에게 빈번한 업데이트를 전송하는 GPU 머신 팜(1730)의 네트워크에 연결될 수도 있다. 프론트 엔드 서버(1720)가 요청을 수신하는 경우, 이 프론트 엔드 서버는, 미사용 상태의 머신(1740)에 대해 자신의 서버 테이블을 체크할 수도 있고, 그것의 대응하는 IP 주소를 페치할 수도 있다. 그 다음, 이 IP 주소는 지불 프로세서(1710)로 다시 전송된다. 그 다음, 지불 프로세서(1710)는 이 미사용 상태의 컴퓨팅 노드(1740)에 연결되고 카드 소지자 카드 정보를 그것으로 전송한다. 컴퓨팅 노드(1740)가 그 정보를 획득하는 경우, 그것은 데이터베이스로부터, 카드 소지자 이름 및 마지막 4자리 숫자와 매칭되는 신용 카드의 데이터를 페치할 수도 있다. 그 다음, 인증 프로세스는 이 특정한 머신(1740) 상의 그 GPU 상에서 발생할 수도 있다. 그 다음, 인증 연산의 결과는, 암호 해독을 위해 신용 카드 회사(1750)로 전송될 수도 있다. 그 다음, 암호 해독된 인증 숫자는, 최종 결과를 나타내도록 카드 발급자(1710)에게 다시 전송될 수도 있다. 이 시스템은, 프론트 엔드 서버(1720)에 대한 네트워크 연결 요건을 용이하게 하도록 그리고 그것을 모든 컴퓨팅 노드(1730) 상에 분배하도록 구현될 수도 있다.
의료 데이터 수집
도 1은 기밀의 의료 데이터와 함께 사용하기 위한 본 발명의 일 실시형태의 다양한 양태를 구현하는 네트워크화된 컴퓨터 시스템을 도시한다. 복수의 원격 의료 디바이스(20)가 광역 네트워크(24)를 통해 의료 데이터 시스템(22)에 연결된다. 원격 의료 디바이스(20)는 웨어러블 디바이스(26), 환자 단말(28), 실험실 단말(30), 및 등등과 같은 디바이스를 포함할 수도 있다. 웨어러블 디바이스(26)는, 특수 목적의 의료 디바이스, 스마트워치, 웨어러블 컴퓨터, 웨어러블 활동 추적기, 스마트 의류, 및 유사한 것과 같은 디바이스를 포함할 수도 있다. 웨어러블 디바이스(26)는, 가속도계, 심박수 모니터, 온도 모니터, 호흡 모니터, 포도당 모니터, 전지구 위치 결정 시스템(global positioning system: GPS) 수신기, 기압 센서, 이러한 것의 조합, 및 유사한 것과 같은 센서를 포함할 수도 있지만, 그러나 이들로 제한되지는 않는다. 환자 단말(28) 및 실험실 단말(30)은, 스마트폰, 태블릿 컴퓨터, 데스크탑/랩탑 컴퓨터, 및 유사한 것과 같은 디바이스를 포함할 수도 있다. 웨어러블 디바이스(26), 환자 단말(28), 및 실험실 단말(30)과 같은 원격 의료 디바이스(20)를 상호 구별하는 특징부는 본 발명을 제한하도록 고려되지는 않는다. 이들 디바이스(26 내지 30)의 기능성(functionality)은 중첩될 수도 있다. 웨어러블 디바이스(26) 및 환자 단말(28)은 환자로부터 직접적으로 데이터를 수집하고, 환자의 수동 입력에 대한 필요 없이 그렇게 할 수도 있다. 웨어러블 디바이스(26) 및 환자 단말(28)은, 데이터의 환자(32)에 의한 수동 입력(예를 들면, 타이핑 또는 선택)을 허용할 수도 있다. 실험실 단말(30)은, 환자(32)에 대해 수행되는 의료 테스트(예를 들면, 혈액 작업의 결과) 및 다른 의료적 절차에 관련되는 데이터를 입력하기 위해, 의료 종사자(34)(예를 들면, 임상의, 실험실 기술자, 간호사, 의사 등)에 의한 수동 입력의 어떤 형태를 요구할 수도 있다.
원격 의료 디바이스(20)는 환자의 의료 상태 또는 건강에 관한 데이터를 수집하도록 구성될 수도 있다. 이러한 데이터는 다음의 두 개의 일반적인 범주에 속하는 것으로 간주될 수 있다: 의료 데이터 및 비 의료 데이터. 이들 범주는 제한하는 것이 아니며 중첩이 존재할 수도 있거나 또는 다양한 타입의 데이터가 범주 둘 모두에 속할 수도 있다. 의료 데이터는, 생리학적 데이터 및/또는 사람의 의료적 상태 또는 건강을 직접적으로 나타내는 데이터를 포함할 수도 있지만, 그러나 이들로 제한되지는 않는다. 의료 데이터의 예는, 심박수, 체온, 호흡수, 및 유사한 것을 포함한다. 의료 데이터는 원격 의료 디바이스(20)(예를 들면, 심박수 모니터)에 의해 직접적으로 측정될 수도 있거나 또는 환자 또는 의료 전문가에 의해 디바이스(20)에 입력될 수도 있다(예를 들면, 단말에 혈압 측정치를 입력하는 것).
비 의료 데이터는, 의학적 결과/진단에 간접적으로 관련될 수도 있는 데이터이며, 환경적 요인, 유전적 요인, 건강 행태(health behaviour), 사회 및 공동체 요인, 사회 경제적 요인, 사회 인구 통계학적 요인, 및 정부 또는 주정부 요인을 포함할 수도 있지만, 그러나 이들로 제한되지는 않는 데이터이다. 환경적 요인은, 인간 건강에 영향을 끼치는 잠재성을 갖는 물리적인 환경적 요인, 예를 들면, 수질, 대기 질, 소음 공해(sound pollution), 근로 조건일 수도 있다. 유전적 요인은, 개인 행태에 의해 또는 사회적, 경제적 또는 물리적 환경에 의해 일반적으로 영향을 받는 요인 이외의 유전적 요인에 관련될 수도 있고; 유전적 요인은 소정의 조건에 대한 질병 소질(predisposition)을 결정한다. 건강 행태 요인은, 개인 행태의 양태에 관련되는 요인 및 역학 조사가 밝힌, 건강 상태, 예를 들면, 개인 건강 수칙, 건강한 아동 발달에 영향을 미치는 위험 요인일 수도 있다. 사회 및 공동체 요인은, 사회 및 공동체 요인의 유행의 측정에 관련되는 요인, 예컨대 사회적 지지(social support), 생활 스트레스, 또는 건강에 관련이 있는 것으로 역학 조사가 밝힌 사회 자본, 예를 들면, 학교 준비 상태(school readiness), 문화적 배경, 사회적 지지, 사회적 환경, 사회적 상태, 주택 확보력(housing affordability) 및 문자 해독 능력(literacy)일 수도 있다. 사회 경제적 요인은, 건강에 관련이 있는 것으로 역학 조사가 밝힌 모집단의 사회 경제적 특성에 관련되는 요인, 예를 들면, 고용 상태, 소득, 사회적 지위, 교육 수준일 수도 있다. 사회 모집단 통계 학적 요인은, 모집단의 사회 인구 통계학적 특성에 관련되는 요인일 수도 있다. 이들 지표는 다음에 포함되는 사회 및 인구 통계학적 요인의 조합에 관련되거나 또는 그것을 내포할 수도 있다: 성별, 연령, 교육 수준, 문화적 배경, 고용 상태, 직업, 결혼 상태, 집에 살고 있는 사람의 총 수 및 거주 형태(living arrangements). 정부 또는 주정부 요인은, 정부 정책, 자금 조달, 인프라와 프로그램, 및 유사한 것에 관련되는 요인일 수도 있다. 숙련된 자는, 상기 요인이 결정적인 것이 아니며 몇몇 요인은 하나보다 많은 범주에서 발견될 수도 있다는 것을 이해할 것이다. 비 의료 데이터는, 환자 또는 의료 전문가에 의해 디바이스(20)에 입력될 수도 있다(예를 들면, 환자의 소득층(income group)을 단말에 입력하는 것).
광역 네트워크(24)는, 근거리 통신망, 무선 네트워크, 셀룰러 네트워크, 인트라넷, 가상 사설망(virtual private network: VPN), 및 인터넷과 같은 데이터 네트워크 중 하나 또는 그 조합을 포함할 수도 있다.
의료 데이터 시스템(22)은, 하기에서 상세히 논의되는 바와 같이, 메모리에 저장되며 원격 의료 디바이스(20)로부터 수집되는 데이터에 대한 동형 계산을 수행하기 위해 하나 이상의 프로세서에 의해 실행되는 프로그램 코드를 가지고 구성되는, 서버로서 공지될 수도 있는 하나 이상의 컴퓨터를 포함할 수도 있다.
시스템은 키 인가 시스템(36) 및 분석자 단말(analyst terminal)(38)을 더 포함할 수도 있다.
키 인가 시스템(36)은, 완전 동형 비대칭 암호화 스킴, 예컨대 에러를 갖는 고리 학습(RWLE) 또는 NTRU 동형 암호화 스킴에 대한 하나 이상의 개인(비밀 키)와 같은 하나 이상의 암호화 키를 저장한다. 키 인가 시스템(36)은, 이러한 개인 키(private key)를 저장하도록 그리고 개인 키의 사용을 승인된 사용자로 제한하도록 구성되는 하나 이상의 서버를 포함한다.
키 인가 시스템(36)에 의해 제어되는 각각의 개인 키는, 원격 의료 디바이스(20)로 분배되는 공개 키에 대응할 수도 있다. 원격 의료 디바이스(20)에 의해 암호화되는 데이터는 각각의 개인 키에 대한 액세스를 갖는 사용자에 의해 암호 해독될 수 있지만, 이것이 본 실시형태의 중심은 아니다. 본 실시형태에 따르면, 암호화된 데이터에 대해 수행된 동형 계산의 결과는, 각각의 개인 키에 대한 액세스를 갖는 사용자에 의해 암호 해독될 수도 있다. 많은 수의 원격 의료 디바이스(20)가 동일한 공개 키를 공유할 수도 있고 따라서 데이터의 암호 해독을 필요로 하지 않는 동형 계산을 위한 크고 연속적인 데이터 소스를 형성할 수도 있다는 것이 고려된다. 오히려, 개인 키는 계산 결과의 암호 해독을 위해 유일하게 필요로 될 수도 있다.
임의의 수의 공개-개인 키 쌍이 사용될 수도 있다. 이러한 디바이스에 상이한 공개 키를 제공하는 것에 의해, 의료 디바이스(20)를 디바이스 타입 또는 다른 요인에 따라 상이한 세트로 분할하는 것이 유리할 수도 있다. 예를 들면, 웨어러블 심박수 모니터에게는 하나의 공개 키가 주어질 수도 있고, 한편 혈액 작업의 결과를 기록하기 위해 사용되는 실험실 단말(30)에게는 상이한 공개 키가 주어질 수도 있다. 이것은, 심박수 및 혈액 작업 데이터에 대한 계산을 수행할 때 의료 데이터 시스템(22)에서의 추가적인 프로세싱을 필요로 할 수도 있지만, 그러나 대응하는 개인 키들 중 하나가 손상되는 경우, 환자 데이터의 노출을 감소시키는 이점을 제공할 수도 있다. 상이한 세트 또는 타입의 의료 디바이스(20)에게는, 건강 관리 그룹/조직, 보험업자, 디바이스 제조자 등과 같은 다른 요인에 기초하여 상이한 공개 키가 주어질 수도 있다. 또한, 다수 타입의 데이터(예를 들면, 의료 및/또는 비 의료 데이터)를 수집하는 의료 디바이스(20)에 대해, 데이터의 각각의 타입은 그 공개 키에 의한 암호화를 위해 상이한 공개 키에 할당될 수도 있다. 다시 말하면, 이것은 환자 데이터의 노출을 감소시킬 수도 있다. 명확화를 위해, 본 명세서에서 논의되는 예는 단일의 공개-개인 키 쌍을 언급하지만, 그러나 본 발명은 다양한 공개-개인 키 쌍을 고려한다는 것을 유의해야 한다. 또한, 데이터의 세트를 사용하는 협업 및 계산은, 동일한 개인 키에 의해 암호 해독될 수 있는 암호화된 데이터의 세트로 제한된다는 것을 유의하는 것이 중요하다. 그러므로, 광범위한 협업 및 계산을 용이하게 하기 위해, 시스템을 단일의 개인 키로 제한하는 것이 유리할 수도 있다.
분석자 단말(38)은, 스마트폰, 태블릿 컴퓨터, 데스크탑/랩탑 컴퓨터, 및 연구원, 임상의, 의사, 관리자, 보험 회사, 및 등등과 같은 분석자(40)에 의해 동작 가능한 유사한 것과 같은 디바이스를 포함할 수도 있다. 분석자 단말(38)은, 의료 데이터 시스템(22)에서 수행되는 동형 계산을 개시할 수도 있고 키 인가 시스템(36)에 의해 보유되는 개인 키에 의해 암호 해독되는 그러한 계산의 암호화된 결과를 가질 수도 있다. 그 다음, 계산의 평문 결과는, 이후의 계산 및 연구를 위해 분석자 단말(38)에서 출력될 수도 있다.
개인 키는, 본 발명에 따른 다양한 구현의 특정한 요건에 따라, 다양한 방식으로 계산 결과를 암호 해독하기 위해 제공될 수 있다. 계산의 암호 해독된 평문 결과(DR)(42)가, 보안 채널(44), 예컨대 보안 서브네트워크, 광역 네트워크(24)를 통해 동작하는 VPN, 또는 증가된 보안을 제공하는 유사한 네트워크를 통한 출력을 위해 하나 이상의 분석자 단말(38)로 송신되고 있는 상태에서, 계산의 암호화된 결과는 키 인가 시스템(36)에서의 암호 해독을 위해 키 인가 시스템(36)으로 송신될 수도 있다. 추가적으로 또는 대안적으로, 이러한 보안 채널(44)은, 하나 이상의 분석자 단말(38)에서 계산 결과를 암호 해독하도록, 키 인가 시스템(36)으로부터 분석자 단말(38)로 개인 키를 송신하기 위해 사용될 수도 있다. 보안 채널(44)은 네트워크 통신으로 제한될 필요는 없다. 예를 들면, 개인 키 또는 암호화된 데이터가 네트워크를 통해 송신되어야 하는 경우, 분석자 단말(38)은 보안 위치에 위치될 수도 있고, 예컨대 건강 관리 또는 연구 시설의 물리적으로 안전한 영역 내에 위치될 수도 있고, 그에 의해 보안 채널(44)에 물리적 양태를 제공할 수도 있다. 대안적으로, 보안 채널(44)은 주로 또는 배타적으로 물리적일 수도 있고 개인 키 또는 암호화된 데이터는, 개인 키 또는 암호화된 데이터를 분석자 단말(38)로 수동으로 전달하기 위해 사용될 수 있는 물리적인 키 카드, 메모리 스틱, 또는 유사한 디바이스 상으로 복사될 수 있다.
동작에서, 데이터는 원격 의료 디바이스(20)에 의해 연속적으로 수집될 수도 있고, 원격 의료 디바이스(20)에서 암호화될 수도 있고, 암호화된 데이터(encrypted data: ED)(50)로서 의료 데이터 시스템(22)으로 송신될 수도 있다. 일반적으로, 의료 데이터 시스템(22)으로 데이터를 송신하는 임의의 디바이스는 송신 이전에 자신의 데이터를 암호화하도록 구성될 수도 있다. 의료 데이터 시스템(22)은 소망되는 것 만큼 오랫동안 암호화된 데이터(50)를 저장할 수도 있다. 임의의 시간에, 분석자 단말(38)은 분석을 위한 데이터의 세트를 선택하기 위해 그리고 선택된 데이터의 세트에 대해 수행될 계산을 구성하기 위해 사용될 수도 있다. 이 정보는, 암호화된 결과(54)를 획득하기 위해 데이터를 암호 해독하지 않고도, 동형 기술에 따라, 선택된 암호화된 데이터에 대한 계산을 수행하도록 의료 데이터 시스템(22)을 트리거하는 계산 커맨드(calculation command: CC)(52)로서, 분석자 단말(38)에 의해 의료 데이터 시스템(22)으로 전송될 수도 있다. 그 다음, 계산의 암호화된 결과(54)는 분석자 단말(38)로 송신될 수도 있다. 그 다음, 분석자 단말(38)은, 키 인가 시스템(36)과 통신하기 위해, 보안 채널(44)을 사용하여 암호 해독된 결과(42)를 획득할 수도 있다.
유익하게는, 데이터는 계산의 수행 동안 암호 해독되지 않을 수도 있다. 환자의 프라이버시는 개선될 수도 있고, 더 많은 환자는 그들의 데이터가 더 잘 보호된다는 것을 알면 그들의 의료 데이터가 의학적 연구에서 사용되도록 지원할 수도 있다는 것이 고려된다. 또한, 데이터 및 계산 결과가 암호화된 형태로 송신되는 것에 기인하여 그리고 개인 키의 엄격한 제어에 기인하여, 중간자(man-in-the-middle) 및 다른 타입의 공격에 대한 기회가 경감될 수도 있다.
다른 응용분야에서, 원격 디바이스(20), 예컨대, 웨어러블 디바이스(26), 환자 단말(28), 실험실 단말(30), 데이터 시스템(22), 단말(38), 원격 디바이스(130) 및 다른 컴포넌트는, 구체적으로 의학적으로 지향된 디바이스가 아닐 수도 있고 범용 디바이스 또는 선택된 애플리케이션에 고유하게 만들어진 디바이스일 수도 있다.
도 2는 예시적인 원격 의료 디바이스(20)를 도시한다. 원격 의료 디바이스(20)는 센서(60) 및/또는 입력 디바이스, 암호화 엔진(62), 및 네트워크 인터페이스(64)를 포함할 수도 있다. 원격 의료 디바이스(20)는, 캡처된 데이터(66), 공개 키(68) 및 암호화된 의료 데이터(50)를 저장하기 위한 메모리(예를 들면, RAM, 하드 드라이브, 솔리드 스테이트 드라이브 등)를 더 포함할 수도 있다. 원격 의료 디바이스(20)는 또한, 암호화 엔진(62)을 실행하도록 그리고 원격 의료 디바이스(20)의 동작을 제어하도록 구성되는 프로세서를 포함할 수도 있다.
센서 및/또는 입력 디바이스(60)는, 환자와 같은 개인의 의료/생리학적 데이터 및/또는 비 의료 데이터(66)를 캡처하도록 구성될 수도 있다. 예시적인 센서는, 심박수 센서, 호흡 센서, 혈당 센서, 혈압 센서, 및 등등을 포함하는데, 수 많은 다른 예가 본 명세서의 그 밖의 곳에서 논의된다. 의료 데이터를 측정 또는 캡처할 수 있는 임의의 센서 및/또는 입력 디바이스(60)가 고려된다. 예시적인 입력 디바이스는 의료 또는 비 의료 데이터의 수동 입력을 위한 키보드 또는 터치스크린을 포함한다. 입력 디바이스는 센서와 함께 사용될 수도 있고, 그 결과, 수집된 데이터는 수동으로 입력된 데이터뿐만 아니라 직접 측정된 데이터도 포함한다. 캡처되는 데이터의 타입 및 본질(nature)은 특별히 제한되지는 않는다.
암호화 엔진(62)은, 캡처된 데이터(66)를 암호화하여 암호화된 데이터(50)를 생성하기 위해, 공개 키(68)를 적용하도록 구성될 수도 있다. 암호화 엔진(62)은 상기에서 논의되는 바와 같이 완전 동형 암호화를 수행하도록 구성될 수도 있다.
네트워크 인터페이스(64)는, 암호화된 데이터(50)를 네트워크(24)로, 그리고 구체적으로는, 의료 데이터 시스템(22)(도 1)으로 전달하도록 구성될 수도 있다. 암호화된 데이터(50)가 의료 데이터 시스템(22)으로 송신된 이후, 그것은 메모리를 절약하기 위해 삭제될 수도 있다.
도 3은, 언급된 바와 같이, 의료 데이터 시스템(22)일 수도 있는 데이터 시스템(22)의 예를 도시한다. 의료 데이터 시스템(22)은 네트워크 인터페이스(80), 데이터 누산기(82), 쿼리 생성자(query constructor)(84), 환자/사용자 인터페이스(86), 및 계산 엔진(88)을 포함할 수도 있다. 의료 데이터 시스템(22)은, 암호화된 데이터(50), 암호화된 계산 결과(ER)(54), 환자 데이터(90)(또는 비 의료 애플리케이션의 다른 데이터), 및 승인(92)을 저장하기 위한 메모리(예를 들면, RAM, 하드 드라이브, 솔리드 스테이트 드라이브 등)를 더 포함할 수도 있다. 의료 데이터 시스템(22)은 또한, 데이터 누산기(82), 쿼리 생성자(84), 환자/사용자 인터페이스(86), 및 계산 엔진(88)을 실행하도록 그리고 의료 데이터 시스템(22)의 동작을 제어하도록 구성되는 프로세서를 포함할 수도 있다. 의료 데이터 시스템(22)이 암호화된 데이터에 대한 자신의 계산을 수행하기 때문에, 암호화 키가 의료 데이터 시스템(22)에 저장될 필요가 없다는 것을 유의한다.
네트워크 인터페이스(80)는 네트워크(24)로부터 데이터 및 커맨드를 수신하도록 구성될 수도 있다. 네트워크 인터페이스(80)는 원격 의료 디바이스(20)로부터 암호화된 데이터(50) 및 환자 커맨드를 수신하도록 구성될 수도 있다. 네트워크 인터페이스(80)는, 분석자 단말(38)로부터 계산 커맨드를 수신하도록 구성될 수도 있다.
데이터 누산기(82)는 복수의 원격 의료 디바이스(20)로부터 암호화된 데이터(50)의 캡처를 제어하도록 구성될 수도 있다. 데이터 누산기(82)는 새로운 암호화된 데이터에 대해 각각의 원격 의료 디바이스(20)에 주기적으로 질의하도록(interrogate), 응답으로 이러한 암호화된 데이터를 수신하도록, 그리고 이러한 암호화된 데이터(50)를 의료 데이터 시스템(22)의 메모리에 저장하도록 구성될 수도 있다. 데이터 누산기(82)는, 데이터를 수집하기 위한 조건으로서, 승인(92)을 조회하도록 구성될 수도 있다.
쿼리 생성자(84)는 분석자 단말(38)로부터 계산 커맨드를 수신하도록 구성될 수도 있다. 계산 커맨드는 계산 엔진(88)에 의한 계산의 개시를 트리거한다. 계산 커맨드는, 계산을 수행할 암호화된 데이터(50)의 세트를 명시하는 파라미터뿐만 아니라, 계산의 본질을 명시하는 파라미터를 포함할 수도 있다. 쿼리 생성자(84)는, 계산을 위해 이용 가능한 암호화된 데이터(50)의 요약을 분석자 단말(38)에 제공하도록 구성될 수도 있다. 쿼리 생성자(84)는, 계산에서 암호화된 데이터(50)의 요소를 사용하기 위한 조건으로서, 승인(92)을 조회하도록 구성될 수도 있다.
환자/사용자 인터페이스(86)는, 원격 의료 디바이스(20), 분석자 단말(38), 또는 다른 디바이스로부터 환자 커맨드 및 데이터를 수신하도록 그리고 암호화된 데이터(50)에 관한 정보를 출력하도록 구성될 수도 있다. 구체적으로, 환자/사용자 인터페이스(86)는, 반드시 암호화되지는 않는 환자 데이터(90)를 수신하도록 구성될 수도 있다. 환자 데이터(90)는, 고유 식별자, 이름, 주소, 생년월일, 일반적인 건강 상태 및 표시, 수집되는 암호화된 데이터(50)의 타입의 설명, 및 유사한 것과 같은 데이터를 포함할 수도 있다. 환자 데이터(90)는 의학적 연구를 설계함에 있어서 유용한 데이터를 포함할 수도 있다. 환자 데이터(90)는 또한 암호화된 데이터(50)에 대한 관련성을 포함할 수도 있고, 그 결과 암호화된 데이터(50)의 요소가 의학적 연구를 설계함에 있어서 유용한 것으로 간주되는 환자 데이터(90)에 링크될 수도 있다. 예를 들면, 암호화 데이터(50)에 대한 환자 데이터(90)의 관련성은, 암호화 데이터(50) 및 환자 데이터(90) 둘 모두에서, 환자의 고유 식별자, 예컨대, 해시 또는 일련 번호를 포함할 수도 있다. 예컨대, 암호화된 데이터(50)에 첨부되는 암호화되지 않은 메타데이터 필드, 파일 이름, 또는 데이터베이스에 저장되는 암호화된 데이터(50)와 관련한 암호화되지 않은 데이터베이스 필드를 통해, 고유의 식별자를 암호화된 데이터(50)에 평문 형태로 포함하는 것이 유익할 수도 있다.
환자/사용자 인터페이스(86)는, 환자 또는 다른 개인에 의해, 예를 들면, 분석자 단말(38)에게 허가되는 승인(92)을 제어하기 위한 커맨드를 수신하도록 구성될 수도 있다. 승인(92)은, 암호화된 데이터(50)를 수집 및 저장하는 것에 대한 동의 및 암호화된 데이터(50)를 계산 엔진(88)이 이용 가능하게 만드는 것에 대한 동의를 나타내는 데이터를 포함할 수도 있다. 의료 응용분야에서, 승인(92)은, 환자를 데이터에 매핑하는 그리고 또한 개인 또는 단체에 매핑하는 하나 이상의 다대다(many-to-many) 매핑을 포함할 수도 있고, 그 결과 각각의 환자(또는 그의/그녀의 법적 대리인)는 임의의 타입의 데이터(예를 들면, 혈압, 심장박동 등)를 임의의 개인 또는 단체(예를 들면, 환자의 주 간병인, 담당 의사 또는 의학적 연구, 병원 등)에 제공하는 것에 대한 동의를 제공할 수 있다. 승인(92)은 또한 동의에 대한 시간 윈도우를 포함할 수도 있고, 그 결과, 선택된 시간의 만료 이후에 동의는 자동으로 철회된다.
환자/사용자 인터페이스(86)는, 환자 데이터(90) 및 승인(92)을 수정하는 사용자가 그러한 변경을 행하도록 승인되었다는 것을 검증하기 위한, 사용자명 및 패스워드 로그인 인증 시스템과 같은 인증 시스템을 포함할 수도 있다.
계산 엔진(88)은, 암호화된 데이터(50)의 세트 및 수행할 계산을 정의하는 수신된 파라미터에 따라, 암호화된 데이터(50)에 대해 동형 계산을 수행하도록 구성될 수도 있다. 계산 엔진(88)은, 네트워크 인터페이스를 통해 키 인가 시스템(36) 또는 분석자 단말(38)로 송신되는 암호화된 결과(54)를 출력한다. 계산 엔진(88)은 암호화된 도메인에서 임의의 적합한 계산을 수행하도록 구성될 수 있다.
이러한 계산은, 가산, 승산, 이산 계산(discrete calculation), 연속 계산, 관계 연산을 사용한 비교, 이러한 것의 조합, 및 유사한 것을 포함하도록 고려된다. 특정한 의료적 계산은, 심방 세동 뇌졸중 위험 점수 계산, 심혈관 위험 점수 계산, 및 유전자형 계산을, 제한 없이, 포함할 수도 있다. 또한, 이러한 계산은 다항식 급수로서 모델링될 수도 있다. 이것을 달성하기 위해, 계산 엔진(88)은 하기에서 설명되는 바와 같이 구성될 수도 있다.
도 4는 예시적인 키 인가 시스템(36)을 도시한다. 키 인가 시스템(36)은, 네트워크 인터페이스(100), 승인 프로세서(102), 및 암호 해독 엔진(104)을 포함할 수도 있다. 키 인가 시스템(36)은, 암호화된 계산 결과(54), 개인 키(106), 및 암호 해독된 결과(42)를 저장하기 위한 메모리(예를 들면, RAM, 하드 드라이브, 솔리드 스테이트 드라이브 등)를 더 포함할 수도 있다. 개인 키(106)는 원격 의료 디바이스(20)에 저장되는 공개 키(68)(도 2)에 대응한다. 키 인가 시스템(36)은 또한, 승인 프로세서(102) 및 암호 해독 엔진(104)을 실행하도록, 뿐만 아니라, 키 인가 시스템(36)의 동작을 제어하도록 구성되는 프로세서를 포함할 수도 있다.
네트워크 인터페이스(100)는 보안 채널(44)(도 1)을 통해 분석자 단말(38)로부터 암호화된 결과(54)를 수신하도록 구성될 수도 있다. 네트워크 인터페이스(100)는 또한, 암호 해독된 결과(42)를 분석자 단말(38)로 송신하도록 구성될 수도 있다. 대안적으로, 또는 추가적으로, 네트워크 인터페이스(100)는 보안 채널(44)을 통해 개인 키(106)를 분석자 단말(38)로 송신하도록 구성될 수도 있다.
승인 프로세서(102)는 키 인가 시스템(36)에 대한 액세스를 승인된 사용자로 제한하도록 구성될 수도 있다. 승인 프로세서(102)는, 암호 해독된 결과(42) 또는 개인 키(106) 또는 둘 모두에 액세스하려고 시도하는 사용자를 검증하기 위한 인증 시스템, 예컨대 사용자명 및 패스워드 로그인 인증 시스템 또는 전자적 자격 증명 검증 시스템을 포함할 수도 있다.
암호 해독 엔진(104)은, 암호화된 계산 결과(54)를 암호 해독하여 암호 해독된 결과(42)를 생성하기 위해, 개인 키(106)를 적용하도록 구성될 수도 있다. 암호 해독 엔진(104)은 본 명세서에서 논의되는 바와 같이 동형 암호 해독을 수행하도록 구성될 수도 있다.
도 5는, 언급된 바와 같이, 의료 데이터 시스템(120)일 수도 있는 데이터 시스템(120)을 도시한다. 의료 데이터 시스템(120)은, 의료 데이터 시스템(22)과 같은, 본 명세서에서 논의되는 컴포넌트를 포함할 수도 있다. 이러한 컴포넌트에 대한 설명은 동일한 컴포넌트를 나타내는 동일한 참조 번호로 참조될 수 있다. 명확화를 위해, 차이점만이 상세하게 논의될 것이다. 의료 데이터 시스템(120)은 도 1의 시스템에서의 의료 데이터 시스템(22)을 대체할 수도 있다.
의료 데이터 시스템(120)은, 환자 원격 의료 디바이스(20)로부터 수신되는 암호화된 데이터(50)에 대해 수행되는 계산에 기초하여 경보를 생성하도록 구성될 수도 있다. 의료 데이터 시스템(120)은 이들 경보를 네트워크(24)를 통해, 이러한 경보에 대해 행동할 수도 있는 의료 전문가에 의해 동작되는 원격 디바이스(130)(도 1)로 송신할 수도 있다. 생성된 경보는 암호화된 도메인에 남아 있는 것이 고려된다. 이와 같이, 경보는 평문 형태로 관련 원격 디바이스(130)에 송신되기 이전에 암호 해독을 위해 키 인가 시스템(36)을 통해 경로 지정될 수도 있다. 이러한 경우, 경보 수신자가 특정 의학적 상태의 배경 지식 및 어쩌면 특정한 경보 트리거 값의 지식이 가질 수도 있다는 것이 고려되기 때문에, 특정한 수치적 값보다는, 평문 형태의 형태(예를 들면, "혈압 경보"와 같은 텍스트 경보)의 경보가 경보의 본질의 일반적인 표시이도록 하는 것에 의해 프라이버시가 향상될 수도 있다. 대안적으로, 원격 디바이스(130)는 수신된 경보를 암호 해독하기 위해 개인 키를 제공받을 수도 있다.
의료 데이터 시스템(120)은, 프로세서에 의해 실행 가능하며 승인된 사용자에 의해 구성 가능한 경보 트리거(122)를 포함할 수도 있다. 경보 트리거(122) 및 계산 엔진(88)은, 메모리에 저장되며 승인된 사용자에 의해 구성 가능한 암호화된 경보 조건(124)과 암호화된 결과(54) 사이의 비교를 수행할 수도 있다. 암호화된 경보 조건(124)은 초기에, 원격 의료 디바이스(20)에서 데이터를 암호화하는 동일한 공개 키(68)를 사용하여 암호화 엔진(62)에 의해 암호화되기 이전에, 네트워크 인터페이스(80)를 통해 암호화되지 않은 형태로 수신될 수도 있다. 암호화된 경보 조건(124)은 암호화된 결과(54)에 의해 표현되는 데이터에 적용될 수도 있고, 경보 트리거(122)는, 조건을 충족하는 데이터에 대해 경보를 발생시킨다. 이러한 경보는, 네트워크 인터페이스(80) 및 네트워크(24)를 통해 의료 전문가와 같은 선택된 승인된 사용자의 원격 디바이스(130)로 송신되도록 구성될 수도 있다. 경보는, 선택된 승인된 사용자에게 평문 형태로 포워딩되기 이전에, 중앙 집중식 암호 해독을 위해 키 인가 시스템(36)을 통해 전달될 수도 있다. 대안적으로, 원격 디바이스(130)는 개인 키(106)를 저장할 수도 있고 경보를 암호 해독하기 위한 암호 해독 엔진(104)을 가지고 구성될 수도 있다. 예를 들면, 의사는, 웨어러블 의료 디바이스(26)에 의해 연속적으로 수집되는 암호화된 원시 압력 데이터를 사용하여 계산 엔진(88)에 의해 암호화된 도메인에서 동형적으로 평가되는 혈압 방정식(blood pressure equation)을 사용하여, 환자 데이터(90)에 의해 식별되는, 환자에 대한 경보 조건(124)을 설정할 수도 있다. 암호화된 경보 조건(124)은, 충족되거나 또는 초과되는 경우, 경보 트리거(122)로 하여금, 의사에 의해 또는 특정한 경보 조건을 달리 인식할 수 없을 수도 있는 전문가에 의해 동작되는 원격 디바이스(130)로 전자적 경보 메시지를 전송하게 하는 혈압 방정식의 특정한 최대치, 최소치, 또는 간격일 수도 있다. 유리하게도, 특정한 평가 및 평가되는 값은 환자의 프라이버시를 향상시키기 위해, 암호화된 도메인에 남아 있을 수도 있다. 즉, 환자 및 경보를 설정하는 사용자를 제외한 어떠한 엔티티도, 혈압 방정식, 조건(들), 및 고려되는 혈압 데이터를 반드시 아는 것은 아니지만, 경보는 혈압 방정식, 조건(들), 및 고려되는 혈압 데이터에 기초하여 임의의 엔티티에게 발행될 수도 있다.
경보 트리거(122)는 주기적 기반으로 또는 새로운 암호화 데이터(50)의 검출시 평가될 수도 있다. 경보 트리거(122)는, 경보를 수신할 목적지 원격 디바이스(130)의 네트워크 주소와 같은 경보의 전달에 관한 정보(예를 들면, 이메일 주소, 전화 번호 등)를 저장할 수도 있다.
의료 데이터 시스템(22, 120)의 다양한 컴포넌트, 구체적으로 계산 엔진(88)은, 하나 이상의 하드웨어 디바이스로서 구현될 수도 있다. 이러한 하드웨어 디바이스는, 하드웨어만을 사용하여 또는 프로그램 코드를 실행하는 하드웨어를 사용하는 것에 의해, 본 명세서에서 논의되는 계산 기술을 구현하도록 구성될 수도 있다. 적절한 하드웨어 디바이스는, 예를 들면, 중국인의 나머지 정리(Chinese Remainder Theorem: CRT), 수론 변환(Number Theoretic Transform: NTT), 하나 이상의 메모리 블록, 하나 이상의 메모리 인터페이스, 행렬 곱셈, 행렬 덧셈, 또는 이러한 것의 조합을 사용하여, 본 명세서에서 논의되는 계산 기술을 구현하도록 구성될 수도 있다. 이것을 실현하는 하나의 이러한 적절한 하드웨어 디바이스는 그래픽 프로세싱 유닛(GPU)이다. 적합한 하드웨어 디바이스의 다른 예는 필드 프로그래머블 게이트 어레이(field-programmable gate array: FPGA) 및 주문형 반도체(application-specific integrated circuit: ASIC)를 포함한다.
본 발명의 실시형태는 게놈 관련 연구(genomic association study)에서 사용되는 통계 기술을 구현하기 위해 사용될 수도 있다. 이러한 기술의 예는 Pearson(피어슨)의 적합도(Goodness-of-Fit) 테스트 및 트렌드에 대한 코크란-아미티지 테스트(Cochran-Armitage Test for Trend: CATT)를 포함한다.
유전자형(genotype) 및 표현형(phenotype)은 다음과 같이 부호화 및 암호화될 수도 있다. 이 예에서, 실험실 단말(30)(도 1)는 환자(32)로부터 의료 종사자(34)에 의해 획득되는 유전 데이터의 부호화 및 암호화를 수행하도록 구성된다.
유전자형 부호화와 관련하여, 유전자형 정보를 포함하는 테이블이 구성되는데, 각각의 행은 단일의 사람에 관한 유전자형 정보에 대응한다. 복대립형질성 유전자(bi-allelic gene)의 경우, 각각의 사람의 유전자는 세 개의 암호문 cAA, cAa, caa를 사용하여 부호화된다. 이들 암호문은 도 6h의 등식 선언문이 충족되는 경우에만 "1"을 암호화할 것이고, 그렇지 않으면 그들은 "0"을 암호화할 것이다. 명시된 자리(locus)에 있는 사람의 유전자형이 알려지지 않은 경우, 모든 암호문은 "0"을 암호화할 것이다.
유전자형/표현형 상관 관계 부호화와 관련하여, 사전 계산 시간, 및 최종 암호화된 결과에서의 노이즈는 감소될 수 있는데, 이것은 필요하다면 최종 암호문에 대한 추가 계산을 허용할 것이다. 도 8에서 도시되는 바와 같이, 암호문이 이 사람의 유전자형/표현형 조건에 대응하는 단일의 위치에서는 "1"을, 그 외에는 "0"을 암호화하는 3×2 상관 행렬을 생성하도록, 유전자형 {AA, Aa, aa}와 표현형 {영향을 받음, 영향을 받지 않음} 사이의 상관 매트릭스가 생성된다. 이 사람의 유전자형 또는 표현형이 알려지지 않으면, 모든 암호문은 "0"을 암호화할 것이다.
피어슨의 적합도 테스트와 관련하여, 이 테스트는 유전자가 하디-바인베르크 평형(Hardy-Weinberg Equilibrium: HWE) 상태에 있는지를 체크하기 위해 사용된다. HWE는 유전자 대립형질 빈도(gene allele frequency)가 독립적이면 테스트에 사용될 수 있다. A 및 a가 주어진 유전자에서의 두 개의 대립형질이라는 것, 및 NAA, NAa, 및 Naa는, 각각, 유전자형 AA, Aa, 및 aa의 대응하는 수라고 가정한다. N = NAA + NAa + Naa이 유전자형의 총 수인 것으로 하면, 도 6i의 파라미터는 동형적으로 계산될 수 있는데, 여기서 Nij는 도 6j에서와 같이 계산될 수 있다. 그 다음, 이들 파라미터는 도 6k의 수학식에 의해 최종 편차 테스트 통계치(final deviation test statistic)를 계산하기 위해 사용될 수 있다.
대립형질이 질병과 관련되는지 또는 그렇지 않은지를 결정하기 위해, 트렌드에 대한 코크란-아미티지 테스트(CATT)가 사용된다. 테스트는 도 6m의 계산된 파라미터를 사용하여 도 6l의 수학식에 의해 표시되는 바와 같이 계산될 수 있는데, 여기서 wi는 미리 결정된 가중치
Figure pct00099
이고, Nij는 소정의 질병에 영향을 받으며/영향을 받지 않으며 유전형 ij를 갖는 개인의 수를 나타낸다. 파라미터 Nij, Ri, Ci는 도 9에서 설명된다.
예측 수학식은 상이한 질병을 체크하기 위해 사용될 수도 있다. 예측 수학식을 계산하기 위해, 환자 의료 데이터가 사용될 수도 있다. 이러한 의료 데이터를 보호하기 위해, 동형 암호화가 사용되어 이들 데이터를 암호화할 수도 있고, 회귀 수학식의 계산이 보안 환경에서, 예컨대 의료 데이터 시스템(22, 120)의 계산 엔진(88)을 사용하는 것에 의해 수행될 수도 있다. 하나의 예에서, 불특정 기간에 심장 발작을 일으킬 가능성에 대한 예측 모델은 도 6n에서 도시되는 로지스틱 회귀 함수에 의해 주어지는데, 이 함수에서의 x는 도 6o의 수학식으로부터 계산되고, 이 수학식에서, a는 연령, sys는 수축기 혈압, dia는 이완기 혈압, chol은 콜레스테롤 수치, ht는 신장, wt는 체중이다.
도 6l의 수학식에서의 지수 표현을 구현하기 위해, 도 6p에서 도시되는 바와 같이 충분한 정확도로 나타나는 허용 가능한 차수(예를 들면, 차수 7)까지 테일러 급수가 사용될 수 있다. 동형 암호화가 정수 연산을 사용하기 때문에, 도 6o 및 도 6p의 수학식은 적절한 정확도를 가지고 도 6q 및 6r의 수학식으로 정규화될 수도 있다.
도 6q 및 6r의 수학식에 대한 입력은 정수로서 표현되고 인접한 다항식 슬롯에서 이진 포맷으로 부호화된다. 이들 이진 다항식이 함께 승산되면, 그들은 정확한 출력으로 나타나게 된다. 상수에 의한 승산은 순차적인 가산을 통해 구현될 수도 있다. 정확한 출력을 계산하기 위해, 도 6q의 수학식의 결과는, 암호화 엔진(62)을 구비하는 디바이스(예를 들면, 원격 디바이스(20))로 다시 송신되어 재암호화되고 도 6r의 수학식에 적용되어 최종 값을 계산할 수 있다.
계산 엔진(88)과 관련하여 상기에서 논의되는 것과 같은 관계 연산과 관련하여, 동형 관계 연산, 예컨대, ~보다 더 큰 및 ~보다 더 작은(> 및 <)이 구현될 수도 있다. 관계 연산 a > b는 단지 1 비트로 나타나는데, 그 1 비트는, a > b인 경우 "1"과, 그 외의 경우, "0"과 동일하다. 각각의 입력 a 및 b의 개개의 비트는, 각각, ai 및 bi로 암호화되고 표시된다. k 비트 숫자를 가지고 그리고 최하위 비트부터 시작하여, 도 6s에서 도시되는 바와 같이 출력은 zk에 의해 주어진다. 두 입력 중 임의의 것이 암호화되지 않으면, 도 6s에서 표현되는 계산의 복잡성은 크게 감소될 수도 있다. 예를 들면, b가 암호화되지 않은 경우, 결과적으로 나타나는 수학식은 도 6t에서 도시되는 바와 같을 것이다.
혈압 테스트와 관련하여, 계산 엔진(88)은 암호화된 수축기 및 이완기 압력을 수용하도록 그리고 도 10에서 열거되는 것과 같은 혈압 분류를 리턴하도록 구성될 수도 있다. 이러한 계산을 구현하기 위해, 입력 혈압은 다수의 범위와 비교되어 혈압 분류를 결정한다. 이것은, 계산 엔진(88)이 도 11의 의사 코드에 따르는 함수와 같은 함수로 구성되는 것에 의해 행해질 수도 있다. 의사 코드 함수의 "Res_Sys" 및 "Res_Dia" 입력 파라미터 각각은, 수축기 "Sys_Ref" 및 확장기 "Dia_Ref" 기준 목록의 혈압 범위에, 각각, 비교되는 입력된 암호화된 혈압 측정치의 분류를 나타내는 0에서부터 5까지의 범위에 이르는 암호화된 숫자를 포함한다.
상기의 혈압 계산은 하나의 예에 불과하며, 이러한 관계 연산을 적용하는 많은 유사한 예가 고려된다. 예를 들면, 심방 세동 뇌졸중 위험에 대한 CHADS2 점수를 계산하는 것이 유사한 방식으로 수행될 수도 있다. 많은 다른 유사한 계산이 본 발명의 범위 내에 있다.
다른 예에서, 프래밍햄 관상동맥성 심질환 위험 점수(Framingham Coronary Heart Disease Risk Score: FCRS)는, 사람의 10년의 심장혈관 위험을 평가하기 위해 사용되는 계산 결과이다. 이 계산 결과는, 성별, 연령, 흡연, 총 콜레스테롤, 고밀도 지단백질(high-density lipoprotein: HDL) 콜레스테롤, 및 수축기 혈압을 비롯한, 여러 가지 요인을 기반으로 한다. 각각의 변수는 숫자의 범위에 대해 비교되고, 점수가 각각의 범위에 대해 할당되고 전체 프래밍햄(Framingham) 점수에 가산된다. 예를 들면, 남성의 나이가 50 세인 경우, 총 점수에 6 점이 가산된다.
이 계산을 구현하기 위해, 상기에서 설명되는 관계 연산 개념은, 입력 b를 하한 "a"에 대해서 그리고 상한 "c"에 대해서 비교하기 위해 확장될 수도 있다. 함수 a < b < c가 구현되어, "b"가 이 범위 내에 있으면 "1"을 제공하고 그렇지 않으면 "0"을 제공한다.
a < b < c를 구현하는 하나의 방식은, 그것을 두 단계, 즉 a < b 그리고 그 다음 b < c에서 구현하고 결과를 승산하는 것이다. 그러나, 이 접근법에서, 많은 GSW 유도 동형 암호화 스킴에서와 같이, 동형 승산은 비대칭적인데, 이것은 두 개의 새롭지 않은(non-fresh) 암호문을 승산하는 것을 방지하고, 새롭지 않은 암호문은 암호문 승산의 결과를 포함하는 암호문이다. a < b < c에 대한 수학식은, 새로운 암호문이 누산기에 의해 승산될 수도 있도록, 계산 엔진(88)에서의 구현을 위해 유리하게 다시 공식화될 수도 있다.
이러한 재공식화를 달성하기 위해, "a" 및 "c"(암호화된 또는 암호화되지 않은)에 대해 비교되는 암호화된 비트 [b0, b1, ..., bk-1]를 갖는 k 비트 입력 "b"에 대해, 도 6u 및 도 6v의 수학식에서 도시되는 바와 같이, 함수 a < b < c가 구현될 수도 있다. 도 6u의 수학식은 비트 "0"을 정의하고 도 6v의 수학식은 각 비트 "i"를 정의하는데, 여기서 xi, yi, zi는 누산기이고 bi는 입력 b의 암호화된 비트 i이고, ai, ci는, 각각, 상한 및 하한의 비트이다. 관계 연산의 결과는 zk에 포함된다. ai 및 ci가 평문인 경우, 도 6v의 수학식은 도 6t와 관련하여 설명되는 바와 같이 추가로 단순화될 수도 있다.
테스트는 본 발명에 따라 구성되는 시스템 상에서 수행되었다. 도 12는 사용되는 테스트 시스템을 상세히 나타낸다. 도 13은, 도 13의 "Khedr 2014"에서 도시되는 [Khedr, A., Gulak, G., and Vaikuntanathan, V. SHIELD: Scalable Homomorphic Implementation of Encrypted Data-Classifiers, Cryptology ePrint Archive, Report 2014/838, 2014 (http://eprint.iacr.org/2014/838.pdf)]; 도 13의 "Lauter 2014"에서 도시되는 [Lauter, K., Lopez-Alt, A., and Naehrig, M. Private Computation on Encrypted Genomic Data. Tech. Rep, MSR-TR-2014-93, June 2014]; 및 도 13의 "LBos 2014"에서 도시되는 [LBos, J. W., Lauter, K., and Naehrig, M. Private predictive analysis on encrypted medical data, In Journal of biomedical informatics, Elsevier Inc., 2014, pp. 234-243]와 비교되는 본 발명에 대한 동형 연산의 성능 결과를 요약한다. "Lauter 2014"에 대해 보고된 결과는, 본 발명을 테스트하기 위해 사용되는 회로 깊이가 선택된 파라미터를 갖는 "Lauter 2014"에서의 것보다 더 높기 때문에, 더 큰 회로 깊이를 갖는 더 큰 파라미터에 대한 것이다. 알 수 있는 바와 같이, 본 발명의 CPU 구현은, "LBos 2014"와 비교했을 때, 승산 연산에 대해 58 배의 속도 향상을 달성할 수도 있다. 본 발명의 병렬화 가능한 속성을 추가적으로 탐색하는 것에 의해, GPU 코어 상에 계산을 분산시키는 것에 의해 104 배의 속도 향상이 달성될 수도 있다. 이것은, "LBos 2014"와 비교되는 승산 연산의 경우 전체적으로 6085 배의 속도 향상으로 그리고 "Lauter 2014"와 비교하여 286 배의 속도 향상으로 나타났다.
본 발명은 다수의 GPU 카드에 걸쳐 유리하게 확장 가능할 수도 있다. 실험은, GPU간 통신에 기인하는 성능에서의 손실을 측정하기 위해, 동일한 컴퓨터에 연결된 네 개의 GPU 카드를 사용하여 이루어졌다. 커다란 문제를 작은 문제로 나누는 것에 의해, 계산은 모두 네 개의 GPU 사이에서 스케줄링되어 3.946 배의 속도 향상을 획득할 수 있는데, 이것은 통신 오버헤드가 감소되었다는 것을 나타낸다.
피어슨의 적합도 테스트 및 CAAT 테스트, 예측 분석, 및 상기에서 설명되는 관계 연산 및 혈압 응용분야의 성능 결과는 도 14에서 요약되어 있다. 결과는 "Lauter 2014", "LBos 2014" 및 도 14의 "Cheon 2014"에서 제시되는 [Cheon, J. H., Kim, M., and Kim, M. Search-and-compute on Encrypted Data, Cryptology ePrint Archive, Report 2014/812, 2014 (http://eprint.iacr.org/)]와 비교된다. "Cheon 2014"에 대해 보고된 결과는 고리 Z14에 대응하는데, 이것은, 본 발명의 혈압 예에서, 두 개보다 많은 수가 가산되어 최종적인 정확한 결과를 획득하기 때문이라는 것을 유의한다.
생리학적 데이터를 포함하는 의료 데이터는 복잡하고, 양이 많으며 노이즈가 아주 많을 수도 있다. 데이터 수집에서의 노이즈는, 예를 들면, 데이터를 수집하기 위해 사용되는 기술, 사람의 실수, 시스템 자체의 내재하는 확률론, 반복된 관찰의 개인 내적(intra-individual) 변동성 및 그룹/모집단 내 변동성으로부터 발생할 수도 있거나 또는 이상(abnormality), 질병 또는 병(illness)을 나타낼 수도 있다. 노이즈 때문에, 데이터 마이닝은 데이터 탐색을 위해 그리고 저장된 환자 데이터로부터 패턴화된 질병을 발견하기 위해 사용될 수도 있는 데이터 클러스터링 및 특성 묘사 애플리케이션을 포함한다. 머신 학습 애플리케이션은 또한, 최종 진단이 검증된 과거에 치료된 환자로부터의 수집된 데이터로부터 개개의 환자 결과를 예측함에 있어서 유용할 수도 있다. 데이터 마이닝 및 머신 학습 둘 모두는, 선별(screening), 진단, 치료, 예후, 모니터링, 역학 연구, 생물 의학적/생물학적 분석, 병원 관리, 의학 교육 및 트레이닝 동안 도움이 될 수도 있다.
추가적으로, 일 실시형태에 따르면, 본 명세서에서 설명되는 암호화 스킴은, 프라이버시 보존 머신 학습 애플리케이션(privacy-preserving machine learning application)에서, 프라이버시 보존 데이터 클러스터링 애플리케이션(privacy-preserving data clustering application)을 포함하는 프라이버시 보존 데이터 마이닝(privacy-preserving data mining)에서, 그리고 의료, 금융 또는 다른 기밀 데이터에 대한 일반적인 보안 계산에서 사용될 수도 있다. 예를 들면, 계산 엔진(88)은, 암호화된 데이터에 대한 프라이버시 보존 데이터 클러스터링 애플리케이션을 포함하는 프라이버시 보존 데이터 마이닝에서, 프라이버시 보존 머신 학습 애플리케이션에 관련되는 동형 계산을 수행하도록 구성될 수도 있다.
수 많은 이점이 본 발명의 상기의 설명으로부터 명백할 수도 있다. 웨어러블 및 휴대형 디바이스 및 "사물 인터넷(Internet of Things: IoT)"과 관련하여, 본 발명은 웨어러블 및 휴대형 디바이스에 의해 측정되는 모든 데이터를, 이러한 데이터를 클라우드로 업로드하기 이전에, 암호화하기 위해 사용될 수 있다. 이것은, 연구원과 임상의가 기밀 데이터에 대한 연구를, 프라이버시를 보호하는 방식으로, 수행하는 것을 돕는 데 매우 유용할 수 있다. 논의된 바와 같이, 이들 디바이스는, 예를 들면, 계산 결과/경보가 암호 해독되어야 하는 병원 및 기타 의료 시설로의 개인/비밀 키의 제어 및 분배를 또한 담당하는 중앙집중식 엔티티에 의해 생성되는 공개 암호화 키를 저장할 수 있다. 웨어러블/휴대형 디바이스는, 캡처된 데이터만을 암호화할 필요가 있으며, 이들 종류의 디바이스에서 알려져 있는 알맞은 프로세싱 전력은 구현에 큰 장애가 되지 않는다. 암호화 함수의 성능이 반드시 시간적으로 중요한 것은 아니기 때문에, 임베딩된 프로세서는, 밀리초 대신, 수 초 내에 측정된 데이터를 암호화할 수 있고 여전히 허용 가능한 성능을 가질 수 있다.
본 발명은 본 발명의 취지 또는 본질적인 특성으로부터 벗어나지 않으면서 다른 특정한 형태로 구체화될 수도 있다. 본 발명의 소정의 적응예 및 변형예는 기술 분야의 숙련된 자에게 자명할 것이다. 따라서, 현재 논의된 실시형태는 예시적인 것이며 제한적이지 않은 것으로 간주되며, 본 발명의 범위는 전술한 설명보다는 첨부된 청구범위에 의해 제시되며, 따라서, 청구범위의 등가범위의 의미 및 범위 내에 들어오는 모든 변경예는 청구범위 내에 포괄되도록 의도된다.

Claims (99)

  1. 데이터를 완전히 암호 해독하지(decrypting) 않고도 암호화된 데이터로부터 정보를 안전하게 송신하고 추출하기 위한 방법으로서,
    데이터 요청을 수신하는 단계로서, 상기 데이터 요청 중 적어도 일부는 동형 암호화 스킴(homomorphic encryption scheme)에 따라 암호화되고, 상기 데이터 요청의 상기 암호화된 부분은 적어도 기밀 데이터(confidential data)의 세트를 포함하는, 상기 데이터 요청을 수신하는 단계;
    데이터베이스로부터 암호화된 비교 데이터의 하나 이상의 세트를 검색하는(retrieving) 단계로서, 암호화된 비교 데이터의 각각의 세트는 동형 암호화 스킴에 따라 암호화되는, 상기 암호화된 비교 데이터의 하나 이상의 세트를 검색하는 단계;
    상기 데이터 요청으로부터의 기밀 데이터의 상기 암호화된 세트를, 하나 이상의 동형 연산(homomorphic operation)을 사용하여, 암호화된 비교 데이터의 각각의 세트와 비교하여, 암호화된 비교 데이터의 어떤 세트가 기밀 데이터의 상기 암호화된 세트와 매칭되는지를 결정하고, 매칭 시, 기밀 데이터의 상기 세트의 유효성을 확인하는(validating) 단계;
    기밀 데이터의 상기 세트의 유효성 확인의 성공 또는 실패를 나타내는 암호화된 표시자를 생성하는 단계; 및
    상기 암호화된 표시자를 상기 데이터 요청과 관련되는 당사자(party)에게 포워딩하는 단계를 포함하고,
    기밀 데이터 상기 세트는 상기 방법 동안 절대 암호 해독되지 않는, 암호화된 데이터로부터 정보를 안전하게 송신하고 추출하기 위한 방법.
  2. 제1항에 있어서, 상기 동형 암호화 스킴은 완전 동형 암호화 스킴(fully homomorphic encryption scheme) 또는 부분 동형 암호화 스킴(somewhat homomorphic encryption scheme)인, 암호화된 데이터로부터 정보를 안전하게 송신하고 추출하기 위한 방법.
  3. 제1항에 있어서, 상기 데이터 요청은 적어도 비 기밀 데이터(non-confidential data)의 세트를 더 포함하는, 암호화된 데이터로부터 정보를 안전하게 송신하고 추출하기 위한 방법.
  4. 제1항에 있어서, 상기 데이터 요청은 기밀 데이터의 복수의 세트를 포함하는, 암호화된 데이터로부터 정보를 안전하게 송신하고 추출하기 위한 방법.
  5. 제4항에 있어서, 기밀 데이터의 어떤 세트가 유효성이 확인되어야 하는지를 결정하는 스텝을 실행하는 단계를 더 포함하는, 암호화된 데이터로부터 정보를 안전하게 송신하고 추출하기 위한 방법.
  6. 제1항에 있어서, 상기 데이터 요청의 일부는 비교 데이터의 상기 세트와 비교되어, 기밀 데이터의 상기 암호화된 세트의 비교 이전에, 비교 데이터의 상기 세트의 사이즈를 감소시키는, 암호화된 데이터로부터 정보를 안전하게 송신하고 추출하기 위한 방법.
  7. 제1항에 있어서, 상기 하나 이상의 동형 연산은 결합되어 XNOR 연산을 형성하는, 암호화된 데이터로부터 정보를 안전하게 송신하고 추출하기 위한 방법.
  8. 제1항에 있어서, 기밀 데이터의 상기 세트는, 신분증, 여권, 운전 면허증, 보안 카드, 은행 카드, 신용 카드 및 건강 카드 중 하나로부터 유래하는, 암호화된 데이터로부터 정보를 안전하게 송신하고 추출하기 위한 방법.
  9. 제1항에 있어서, 상기 암호화된 표시자는, 상기 데이터 요청이 수신되었던 상기 당사자와는 상이한 당사자에게 전송되는, 암호화된 데이터로부터 정보를 안전하게 송신하고 추출하기 위한 방법.
  10. 데이터 시스템으로서,
    복수의 원격 데이터 디바이스로부터 동형적으로(homomorphically) 암호화된 데이터를 수신하기 위해 네트워크에 연결하기 위한 네트워크 인터페이스로서, 상기 동형적으로 암호화된 데이터는 상기 원격 데이터 디바이스와 관련되는 사용자와 관련되는, 상기 네트워크 인터페이스; 및
    상기 네트워크 인터페이스에 연결되는 계산 엔진으로서, 상기 계산 엔진은 상기 데이터에 대한 동형 계산을 수행하여 선택적으로 암호 해독될 수 있는 계산 결과를 획득하도록 구성되는, 상기 계산 엔진을 포함하는, 데이터 시스템.
  11. 제10항에 있어서, 상기 계산 엔진은 이산 계산(discrete calculation)을 수행하도록 구성되는, 데이터 시스템.
  12. 제10항에 있어서, 상기 계산 엔진은 연속 계산(continuous calculation)을 수행하도록 구성되는, 데이터 시스템.
  13. 제10항에 있어서, 상기 계산 엔진은 관계 연산(relational operation)을 수행하도록 구성되는, 데이터 시스템.
  14. 제10항에 있어서, 상기 동형적으로 암호화된 데이터는 공개 키(public key)를 사용하여 암호화되되, 상기 공개 키는 분석을 위해 계산 결과를 선택적으로 암호 해독하기 위해 사용되는 개인 키에 대응하는, 데이터 시스템.
  15. 제14항에 있어서, 상기 개인 키를 저장하는 키 인가 시스템(key authority system)을 더 포함하되, 상기 키 인가 시스템은 승인된(authorized) 당사자에 대한 계산 결과의 선택적인 암호 해독을 위해 상기 개인 키를 제공하도록 구성되는, 데이터 시스템.
  16. 제15항에 있어서, 상기 키 인가 시스템은, 분석자 단말(analyst terminal)에서의 출력을 위해 계산 결과의 선택적 암호 해독을 위해 상기 개인 키를 제공하도록 구성되는, 데이터 시스템.
  17. 제10항에 있어서, 상기 계산 결과에 기초하여 경보를 출력하도록 구성되는 경보 트리거를 더 포함하는, 데이터 시스템.
  18. 제10항에 있어서, 상기 계산 엔진은, 중국인의 나머지 정리(Chinese Remainder Theorem: CRT), 수론 변환(Number Theoretic Transform: NTT), 하나 이상의 메모리 블록, 하나 이상의 메모리 인터페이스, 행렬 곱셈, 행렬 덧셈, 또는 이러한 것의 조합을 구현하도록 구성되는 하드웨어 디바이스를 포함하는, 데이터 시스템.
  19. 제18항에 있어서, 상기 하드웨어 디바이스는 적어도 하나의 그래픽 프로세싱 유닛(Graphics Processing Unit: GPU)을 포함하는, 데이터 시스템.
  20. 제18항에 있어서, 상기 하드웨어 디바이스는 적어도 하나의 필드 프로그래머블 게이트 어레이(field-programmable gate array: FPGA)를 포함하는, 데이터 시스템.
  21. 제18항에 있어서, 상기 하드웨어 디바이스는 적어도 하나의 주문형 반도체(application-specific integrated circuit: ASIC)를 포함하는, 데이터 시스템.
  22. 제10항에 있어서, 상기 계산 엔진은 프라이버시 보존 데이터 클러스터링(privacy preserving data clustering)을 수행하도록 더 구성되는, 데이터 시스템.
  23. 제10항에 있어서, 상기 계산 엔진은 프라이버시 보존 머신 학습(privacy preserving machine learning)을 수행하도록 더 구성되는, 데이터 시스템.
  24. 동형 계산을 수행하기 위한 디바이스로서, 상기 디바이스는 메모리 및 적어도 하나의 프로세서를 포함하되, 상기 디바이스는, 동형 계산을 다항식 급수(polynomial series)로서 모델링하도록 그리고 암호화된 데이터를 사용하여 상기 다항식 급수의 값을 계산하여 암호화된 결과를 획득하도록 구성되고, 상기 암호화된 데이터는 암호화 스킴에 따라 암호화되며, 상기 디바이스는 상기 암호화된 결과를 암호화된 조건과 비교하기 위해 동형 관계 연산을 수행하도록 더 구성되고, 상기 암호화된 조건은 상기 암호화 스킴에 따라 암호화되며, 상기 디바이스는 상기 비교의 결과를 출력하도록 더 구성되는, 동형 계산을 수행하기 위한 디바이스.
  25. 제24항에 있어서, 적어도 하나의 그래픽 처리 유닛(GPU)을 포함하는, 동형 계산을 수행하기 위한 디바이스.
  26. 제24항에 있어서, 적어도 하나의 필드 프로그래머블 게이트 어레이(FPGA)를 포함하는, 동형 계산을 수행하기 위한 디바이스.
  27. 제24항에 있어서, 적어도 하나의 주문형 반도체(ASIC)를 포함하는, 동형 계산을 수행하기 위한 디바이스.
  28. 제24항에 있어서, 중국인의 나머지 정리(CRT), 수론 변환(NTT), 하나 이상의 메모리 블록, 하나 이상의 메모리 인터페이스, 행렬 곱셈, 행렬 덧셈, 또는 이러한 것의 조합을 구현하도록 구성되는, 동형 계산을 수행하기 위한 디바이스.
  29. 제24항에 있어서, 상기 계산은 의료 계산이고 상기 암호화된 데이터는 환자의 측정된 생리학적 데이터를 나타내는, 동형 계산을 수행하기 위한 디바이스.
  30. 제24항에 있어서, 상기 암호화 스킴은 RLWE 동형 암호화 스킴을 포함하는, 동형 계산을 수행하기 위한 디바이스.
  31. 제24항에 있어서, 상기 암호화 스킴은 NTRU 동형 암호화 스킴을 포함하는, 동형 계산을 수행하기 위한 디바이스.
  32. 제24항에 있어서, 상기 디바이스는 프라이버시 보존 데이터 클러스터링을 수행하도록 더 구성되는, 동형 계산을 수행하기 위한 디바이스.
  33. 제24항에 있어서, 상기 디바이스는 프라이버시 보존 머신 학습을 수행하도록 더 구성되는, 동형 계산을 수행하기 위한 디바이스.
  34. 컴퓨터 판독 가능 명령어를 포함하는 비일시적 컴퓨터 판독 가능 매체로서, 상기 컴퓨터 판독 가능 명령어는, 컴퓨터 프로세서에 의한 실행 시,
    데이터의 유효성을 확인하기 위한 데이터 요청을 수신하는 단계로서, 상기 데이터 요청의 적어도 일부는 동형 암호화 스킴에 따라 암호화되고, 상기 데이터 요청은 적어도 기밀 데이터의 세트를 포함하는, 상기 데이터 요청을 수신하는 단계;
    데이터베이스로부터 암호화된 비교 데이터의 하나 이상의 세트를 검색하는 단계로서, 암호화된 비교 데이터의 각각의 세트는 동형 암호화 스킴에 따라 암호화되는, 상기 암호화된 비교 데이터의 하나 이상의 세트를 검색하는 단계;
    기밀 데이터의 상기 세트를, 하나 이상의 동형 연산을 사용해서, 상기 암호화된 비교 데이터의 각각의 세트와 비교하여, 암호화된 비교 데이터의 어떤 세트가 기밀 데이터의 상기 세트와 매칭되는지를 결정하고, 매칭 시, 기밀 데이터의 상기 세트의 유효성을 확인하는 단계;
    기밀 데이터의 상기 세트의 유효성 확인의 성공 또는 실패를 나타내는 암호화된 표시자를 생성하는 단계; 및
    상기 암호화된 표시자를 상기 데이터 요청과 관련되는 당사자에게 포워딩하는 단계
    의 방법을 수행하고,
    기밀 데이터 상기 세트는 절대 암호 해독되지 않는, 비일시적 컴퓨터 판독 가능 매체.
  35. 제34항에 있어서, 상기 동형 암호화 스킴은 완전 동형 암호화 스킴 또는 부분 동형 암호화 스킴인, 비일시적 컴퓨터 판독 가능 매체.
  36. 제34항에 있어서, 상기 데이터 요청은 적어도 비 기밀 데이터의 세트를 더 포함하는, 비일시적 컴퓨터 판독 가능 매체.
  37. 제34항에 있어서, 상기 데이터 요청은 기밀 데이터의 복수의 세트를 포함하는, 비일시적 컴퓨터 판독 가능 매체.
  38. 제37항에 있어서, 기밀 데이터의 어떤 세트가 유효성이 확인되어야 하는지를 결정하는 스텝을 실행하는 단계를 더 포함하는, 비일시적 컴퓨터 판독 가능 매체.
  39. 제34항에 있어서, 상기 데이터 요청의 일부는 비교 데이터 상기 세트와 비교되어, 기밀 데이터의 상기 암호화된 세트의 비교 이전에, 비교 데이터의 상기 세트의 사이즈를 감소시키는, 비일시적 컴퓨터 판독 가능 매체.
  40. 제34항에 있어서, 상기 하나 이상의 동형 연산은 결합되어 XNOR 연산을 형성하는, 비일시적 컴퓨터 판독 가능 매체.
  41. 제34항에 있어서, 기밀 데이터의 상기 세트는, 신분증, 여권, 운전 면허증, 보안 카드, 은행 카드, 신용 카드, 및 건강 카드 중 하나로부터 유래하는, 비일시적 컴퓨터 판독 가능 매체.
  42. 제34항에 있어서, 상기 암호화된 표시자는, 상기 데이터 요청이 수신되었던 상기 당사자와는 상이한 당사자에게 전송되는, 비일시적 컴퓨터 판독 가능 매체.
  43. 보안 금융 거래를 프로세싱하는 방법으로서,
    격자 기반의(lattice-based) 완전 동형 암호화(Fully Homomorphic Encryption: FHE) 스킴에 따라 동형적으로 암호화되는 금융 거래를 완료하기 위한 적어도 부분적으로 동형적으로 암호화된 요청을 수신하는 단계로서, 상기 거래 요청은 계정 번호를 포함하는 기밀의 카드 소지자 데이터, 비 기밀의 카드 소지자 데이터 및 거래 데이터를 포함하는, 상기 적어도 부분적으로 동형적으로 암호화된 요청을 수신하는 단계;
    격자 기반의 FHE 스킴에 따라 암호화되는 동형적으로 암호화된 비교 카드 소지자 데이터의 하나 이상의 세트를 검색하는 단계;
    하나 이상의 동형 연산을 사용하여 상기 기밀의 카드 소지자 데이터를 상기 비교 카드 소지자 데이터의 각각에 세트와 비교하여, 비교 카드 소지자 데이터의 어떤 세트가 상기 기밀의 카드 소지자 데이터와 매칭되는지를 결정하고 상기 기밀의 카드 소지자 데이터의 유효성을 확인하는 단계;
    상기 기밀의 카드 소지자 데이터의 적어도 상기 유효성 확인에 기초하여 상기 금융 거래를 완료하기 위한 상기 요청의 승인 또는 거절을 나타내는 표시자를 생성 및 암호화하는 단계; 및
    상기 금융 거래를 완료하기 위한 상기 요청의 승인 또는 거절을 나타내는 상기 암호화된 표시자를, 상기 금융 거래를 완료하기 위해 승인을 구하고 있는 당사자에게 포워딩하는 단계를 포함하고,
    상기 기밀의 카드 소지자 데이터는 상기 방법 동안 절대 암호 해독되지 않는, 보안 금융 거래를 프로세싱하는 방법.
  44. 제43항에 있어서, 상기 기밀의 카드 소지자 데이터는, 상기 계정 번호의 일부, 상기 계정 번호, 만료일 및 카드 검증 값(Card Verification Value: CVV) 번호 중 하나 이상을 포함하는, 보안 금융 거래를 프로세싱하는 방법.
  45. 제43항에 있어서, 상기 비 기밀의 카드 소지자 데이터는, 은행 이름, 카드 소지자 이름, 은행 식별 번호(Bank Identification Number: BIN) 및 상기 계정 번호의 마지막 4자리 숫자 중 하나 이상을 포함하는, 보안 금융 거래를 프로세싱하는 방법.
  46. 제43항에 있어서, 상기 거래 데이터는, 거래 금액, 거래 날짜 및 상인 식별자 중 하나 이상을 포함하는, 보안 금융 거래를 프로세싱하는 방법.
  47. 제43항에 있어서, 상기 거래 데이터를 검색하는 스텝을 실행하는 단계 및 하나 이상의 동형 연산을 사용하여 상기 거래 데이터를 비교하여 상기 거래 금액이 승인될 수 있는지의 여부를 결정하는 스텝을 실행하는 단계를 더 포함하는, 보안 금융 거래를 프로세싱하는 방법.
  48. 제43항에 있어서, 상기 비 기밀의 카드 소지자 데이터는 공개 키를 사용하여 암호화되는, 보안 금융 거래를 프로세싱하는 방법.
  49. 제48항에 있어서, 상기 공개 키는, 상기 금융 거래를 완료하기 위한 상기 요청을 당사자가 행하는 것에 의해 유지되고, 개인 키(private key)는 상기 금융 거래를 완료하기 위한 상기 요청을 당사자가 수신하는 것에 의해 유지되는, 보안 금융 거래를 프로세싱하는 방법.
  50. 제43항에 있어서, 상기 하나 이상의 동형 연산은 결합되어 XNOR 연산을 형성하는, 보안 금융 거래를 프로세싱하는 방법.
  51. 제43항에 있어서, 상기 금융 거래는 신용 카드 거래인, 보안 금융 거래를 프로세싱하는 방법.
  52. 제43항에 있어서, 상기 금융 거래를 완료하기 위한 상기 요청은 은행, 신용 카드 회사, 카드 발급자 또는 지불 프로세서 중 하나 이상에 의해 수신되는, 보안 금융 거래를 프로세싱하는 방법.
  53. 컴퓨터 판독 가능 명령어를 포함하는 비일시적 컴퓨터 판독 가능 매체로서, 상기 컴퓨터 판독 가능 명령어는, 컴퓨터 프로세서에 의한 실행 시,
    격자 기반의 완전 동형 암호화(FHE) 스킴에 따라 동형적으로 암호화되는 금융 거래를 완료하기 위한 적어도 부분적으로 동형적으로 암호화된 요청을 수신하는 단계로서, 상기 거래 요청은 계정 번호를 포함하는 기밀의 카드 소지자 데이터, 비 기밀의 카드 소지자 데이터 및 거래 데이터를 포함하는, 상기 적어도 부분적으로 동형적으로 암호화된 요청을 수신하는 단계;
    격자 기반의 FHE 스킴에 따라 암호화되는 동형적으로 암호화된 비교 카드 소지자 데이터의 하나 이상의 세트를 검색하는 단계;
    하나 이상의 동형 연산을 사용하여 상기 기밀의 카드 소지자 데이터를 상기 비교 카드 소지자 데이터의 각각에 세트와 비교하여, 비교 카드 소지자 데이터의 어떤 세트가 상기 기밀의 카드 소지자 데이터와 매칭되는지를 결정하고 상기 기밀의 카드 소지자 데이터의 유효성을 확인하는 단계;
    상기 기밀의 카드 소지자 데이터의 적어도 상기 유효성 확인에 기초하여 상기 금융 거래를 완료하기 위한 상기 요청의 승인 또는 거절을 나타내는 표시자를 생성 및 암호화하는 단계; 및
    상기 금융 거래를 완료하기 위한 상기 요청의 승인 또는 거절을 나타내는 상기 암호화된 표시자를, 상기 금융 거래를 완료하기 위해 승인을 구하고 있는 당사자에게 포워딩하는 단계
    의 방법을 수행하고,
    상기 기밀의 카드 소지자 데이터는 상기 방법 동안 절대 암호 해독되지 않는, 비일시적 컴퓨터 판독 가능 매체.
  54. 제53항에 있어서, 상기 기밀의 카드 소지자 데이터는, 상기 계정 번호의 일부, 계정 번호, 만료일 및 카드 검증 값(CVV) 번호 중 하나 이상을 포함하는, 비일시적 컴퓨터 판독 가능 매체.
  55. 제53항에 있어서, 상기 비 기밀의 카드 소지자 데이터는, 은행 이름, 카드 소지자 이름, 은행 식별 번호(BIN) 및 상기 계정 번호의 마지막 4자리 숫자 중 하나 이상을 포함하는, 비일시적 컴퓨터 판독 가능 매체.
  56. 제53항에 있어서, 상기 거래 데이터는, 거래 금액, 거래 날짜 및 상인 식별자 중 하나 이상을 포함하는, 비일시적 컴퓨터 판독 가능 매체.
  57. 제53항에 있어서, 상기 거래 데이터를 검색하는 스텝을 실행하는 단계 및 하나 이상의 동형 연산을 사용하여 상기 거래 데이터를 비교하여 상기 거래 금액이 승인될 수 있는지의 여부를 결정하는 스텝을 실행하는 단계를 더 포함하는, 비일시적 컴퓨터 판독 가능 매체.
  58. 제53항에 있어서, 상기 비 기밀의 카드 소지자 데이터는 공개 키를 사용하여 암호화되는, 비일시적 컴퓨터 판독 가능 매체.
  59. 제58항에 있어서, 상기 공개 키는, 상기 금융 거래를 완료하기 위한 상기 요청을 당사자가 행하는 것에 의해 유지되고, 개인 키는 금융 거래를 완료하기 위한 상기 요청을 당사자가 수신하는 것에 의해 유지되는, 비일시적 컴퓨터 판독 가능 매체.
  60. 제53항에 있어서, 상기 하나 이상의 동형 연산은 결합되어 XNOR 연산을 형성하는, 비일시적 컴퓨터 판독 가능 매체.
  61. 제53항에 있어서, 상기 금융 거래는 신용 카드 거래인, 비일시적 컴퓨터 판독 가능 매체.
  62. 제53항에 있어서, 상기 금융 거래를 완료하기 위한 상기 요청은 은행, 신용 카드 회사, 카드 발급자 또는 지불 프로세서 중 하나 이상에 의해 수신되는, 비일시적 컴퓨터 판독 가능 매체.
  63. 암호화된 데이터와의 비교를 수행하는 방법으로서,
    계산을 다항식 급수로서 모델링하는 단계;
    암호화된 데이터를 사용하여 상기 다항식 급수의 값을 계산하여 암호화된 결과를 획득하는 단계로서, 상기 암호화된 데이터는 암호화 스킴에 따라 암호화되는, 상기 암호화된 결과를 획득하는 단계;
    동형 관계 연산을 수행하여 상기 암호화된 결과를 암호화된/암호화 되지 않은 조건과 비교하는 단계로서, 상기 암호화된 조건은 상기 암호화 스킴에 따라 암호화되는, 상기 암호화된 결과를 암호화된/암호화 되지 않은 조건과 비교하는 단계; 및
    상기 비교의 결과를 출력하는 단계를 포함하는, 암호화된 데이터와의 비교를 수행하는 방법.
  64. 제63항에 있어서, 상기 계산은 의료 계산이고 상기 암호화된 데이터는 환자의 측정된 생리학적 데이터를 나타내는, 암호화된 데이터와의 비교를 수행하는 방법.
  65. 제64항에 있어서, 상기 결과를 출력하는 단계는 상기 결과를 암호 해독하는 단계를 포함하는, 암호화된 데이터와의 비교를 수행하는 방법.
  66. 제64항에 있어서, 상기 결과를 출력하는 단계는 경보를 트리거하는 단계를 포함하는, 암호화된 데이터와의 비교를 수행하는 방법.
  67. 제63항에 있어서, 상기 암호화 스킴은 RLWE 동형 암호화 스킴을 포함하는, 암호화된 데이터와의 비교를 수행하는 방법.
  68. 제63항에 있어서, 상기 암호화 스킴은 NTRU 동형 암호화 스킴을 포함하는, 암호화된 데이터와의 비교를 수행하는 방법.
  69. 제63항에 있어서, 상기 계산 및 수행은, 중국인의 나머지 정리(CRT), 수론 변환(NTT), 하나 이상의 메모리 블록, 하나 이상의 메모리 인터페이스, 행렬 곱셈, 행렬 덧셈, 또는 이러한 것의 조합을 사용하여 하드웨어 디바이스에 의해 실행되는, 암호화된 데이터와의 비교를 수행하는 방법.
  70. 제63항 내지 제69항 중 어느 한 항의 방법을 수행하도록 구성되는, 시스템.
  71. 의료 데이터 시스템으로서,
    복수의 원격 의료 디바이스로부터 동형적으로 암호화된 데이터를 수신하기 위해 네트워크에 연결하기 위한 네트워크 인터페이스로서, 상기 동형적으로 암호화된 데이터는 상기 원격 의료 디바이스와 관련되는 환자의 측정된 생리학적 데이터를 나타내는, 상기 네트워크 인터페이스; 및
    상기 네트워크 인터페이스에 연결되는 계산 엔진으로서, 상기 계산 엔진은 상기 데이터에 대한 동형 계산을 수행하여 선택적으로 암호 해독될 수 있는 계산 결과를 획득하도록 구성되는, 상기 계산 엔진을 포함하는, 의료 데이터 시스템.
  72. 제71항에 있어서, 상기 계산 엔진은 심방 세동 뇌졸중 위험 점수 계산을 수행하도록 구성되는, 의료 데이터 시스템.
  73. 제71항에 있어서, 상기 계산 엔진은 심장혈관 위험 점수 계산을 수행하도록 구성되는, 의료 데이터 시스템.
  74. 제71항에 있어서, 상기 계산 엔진은 유전자형 계산(genotype calculation)을 수행하도록 구성되는, 의료 데이터 시스템.
  75. 제71항에 있어서, 상기 계산 엔진은 이산 계산을 수행하도록 구성되는, 의료 데이터 시스템.
  76. 제71항에 있어서, 상기 계산 엔진은 연속 계산을 수행하도록 구성되는, 의료 데이터 시스템.
  77. 제71항에 있어서, 상기 계산 엔진은 관계 연산을 수행하도록 구성되는, 의료 데이터 시스템.
  78. 제71항에 있어서, 상기 동형적으로 암호화된 데이터는 공개 키를 사용하여 암호화되되, 상기 공개 키는 분석을 위해 계산 결과를 선택적으로 암호 해독하기 위해 사용되는 개인 키에 대응하는, 의료 데이터 시스템.
  79. 제78항에 있어서, 상기 개인 키를 저장하는 키 인가 시스템을 더 포함하되, 상기 키 인가 시스템은 승인된 당사자에 대한 계산 결과의 선택적인 암호 해독을 위해 상기 개인 키를 제공하도록 구성되는, 의료 데이터 시스템.
  80. 제79항에 있어서, 상기 키 인가 시스템은, 분석자 단말에서의 출력을 위해 계산 결과의 선택적 암호 해독을 위해 상기 개인 키를 제공하도록 구성되는, 의료 데이터 시스템.
  81. 제71항에 있어서, 상기 계산 결과에 기초하여 경보를 출력하도록 구성되는 경보 트리거를 더 포함하는, 의료 데이터 시스템.
  82. 제71항에 있어서, 상기 계산 엔진은, 중국인의 나머지 정리(CRT), 수론 변환(NTT), 하나 이상의 메모리 블록, 하나 이상의 메모리 인터페이스, 행렬 곱셈, 행렬 덧셈, 또는 이러한 것의 조합을 구현하도록 구성되는 하드웨어 디바이스를 포함하는, 의료 데이터 시스템.
  83. 제82항에 있어서, 상기 하드웨어 디바이스는 적어도 하나의 그래픽 프로세싱 유닛(GPU)을 포함하는, 의료 데이터 시스템.
  84. 제82항에 있어서, 상기 하드웨어 디바이스는 적어도 하나의 필드 프로그래머블 게이트 어레이(FPGA)를 포함하는, 의료 데이터 시스템.
  85. 제82항에 있어서, 상기 하드웨어 디바이스는 적어도 하나의 주문형 반도체(ASIC)를 포함하는, 의료 데이터 시스템.
  86. 제71항에 있어서, 상기 계산 엔진은 프라이버시 보존 데이터 클러스터링을 수행하도록 더 구성되는, 의료 데이터 시스템.
  87. 제71항에 있어서, 상기 계산 엔진은 프라이버시 보존 머신 학습을 수행하도록 더 구성되는, 의료 데이터 시스템.
  88. 제71항에 있어서, 상기 계산 엔진은 비 의료 데이터에 대한 보안 계산을 수행하도록 더 구성되는, 의료 데이터 시스템.
  89. 동형 계산을 수행하기 위한 디바이스로서, 상기 디바이스는 메모리 및 적어도 하나의 프로세서를 포함하되, 상기 디바이스는, 동형 계산을 다항식 급수로서 모델링하도록 그리고 암호화된 데이터를 사용하여 상기 다항식 급수의 값을 계산하여 암호화된 결과를 획득하도록 구성되고, 상기 암호화된 데이터는 암호화 스킴에 따라 암호화되며, 상기 디바이스는 또한 상기 암호화된 결과를 암호화된 조건과 비교하기 위해 동형 관계 연산을 수행하도록 구성되고, 상기 암호화된 조건은 상기 암호화 스킴에 따라 암호화되며, 상기 디바이스는 또한 상기 비교의 결과를 출력하도록 구성되는, 동형 계산을 수행하기 위한 디바이스.
  90. 제89항에 있어서, 적어도 하나의 그래픽 처리 유닛(GPU)을 포함하는, 동형 계산을 수행하기 위한 디바이스.
  91. 제89항에 있어서, 적어도 하나의 필드 프로그래머블 게이트 어레이(FPGA)를 포함하는, 동형 계산을 수행하기 위한 디바이스.
  92. 제89항에 있어서, 적어도 하나의 주문형 반도체(ASIC)를 포함하는, 동형 계산을 수행하기 위한 디바이스.
  93. 제89항에 있어서, 중국인의 나머지 정리(CRT), 수론 변환(NTT), 하나 이상의 메모리 블록, 하나 이상의 메모리 인터페이스, 행렬 곱셈, 행렬 덧셈, 또는 이러한 것의 조합을 구현하도록 구성되는, 동형 계산을 수행하기 위한 디바이스.
  94. 제89항에 있어서, 상기 계산은 의료 계산이고 상기 암호화된 데이터는 환자의 측정된 생리학적 데이터를 나타내는, 동형 계산을 수행하기 위한 디바이스.
  95. 제89항에 있어서, 상기 암호화 스킴은 RLWE 동형 암호화 스킴을 포함하는, 동형 계산을 수행하기 위한 디바이스.
  96. 제89항에 있어서, 상기 암호화 스킴은 NTRU 동형 암호화 스킴을 포함하는, 동형 계산을 수행하기 위한 디바이스.
  97. 제89항에 있어서, 상기 디바이스는 프라이버시 보존 데이터 클러스터링을 수행하도록 더 구성되는, 동형 계산을 수행하기 위한 디바이스.
  98. 제89항에 있어서, 상기 디바이스는 프라이버시 보존 머신 학습을 수행하도록 더 구성되는, 동형 계산을 수행하기 위한 디바이스.
  99. 제89항에 있어서, 상기 디바이스는 비 의료 데이터에 대한 보안 계산을 수행하도록 더 구성되는, 동형 계산을 수행하기 위한 디바이스.
KR1020187032522A 2016-04-12 2017-03-27 동형적으로 암호화된 데이터의 유효성 확인 및 이에 대한 연산을 수행하기 위한 시스템 및 방법 KR102403295B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662321411P 2016-04-12 2016-04-12
US62/321,411 2016-04-12
US201662417490P 2016-11-04 2016-11-04
US62/417,490 2016-11-04
PCT/CA2017/050382 WO2017177313A1 (en) 2016-04-12 2017-03-27 System and methods for validating and performing operations on homomorphically encrypted data

Publications (2)

Publication Number Publication Date
KR20180127506A true KR20180127506A (ko) 2018-11-28
KR102403295B1 KR102403295B1 (ko) 2022-05-27

Family

ID=59998250

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187032522A KR102403295B1 (ko) 2016-04-12 2017-03-27 동형적으로 암호화된 데이터의 유효성 확인 및 이에 대한 연산을 수행하기 위한 시스템 및 방법

Country Status (10)

Country Link
US (3) US20170293913A1 (ko)
EP (1) EP3443706B1 (ko)
JP (1) JP7165292B2 (ko)
KR (1) KR102403295B1 (ko)
CN (1) CN109314641B (ko)
CA (1) CA3002582C (ko)
IL (1) IL262352B (ko)
PH (1) PH12018502196A1 (ko)
SG (1) SG11201809010TA (ko)
WO (1) WO2017177313A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020116807A1 (ko) * 2018-12-07 2020-06-11 주식회사 크립토랩 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
KR20200070090A (ko) * 2018-12-07 2020-06-17 주식회사 크립토랩 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
WO2020154769A1 (en) 2019-02-01 2020-08-06 Secure Logic Pty Ltd System, method and computer readable medium for performing a transaction in relation to an identity centric dataset
KR20210067958A (ko) * 2019-11-29 2021-06-08 고려대학교 산학협력단 완전동형암호 기법으로 암호화된 데이터의 로지스틱 회귀 분석 연산 장치 및 방법
WO2024210231A1 (ko) * 2023-04-03 2024-10-10 엘지전자 주식회사 통신 시스템에서 동형 암호 기반의 통신 방법 및 이를 위한 장치

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3270321B1 (en) * 2016-07-14 2020-02-19 Kontron Modular Computers SAS Technique for securely performing an operation in an iot environment
US10812252B2 (en) 2017-01-09 2020-10-20 Microsoft Technology Licensing, Llc String matching in encrypted data
FR3062936B1 (fr) * 2017-02-15 2021-01-01 Wallix Procede de recherche d'informations dans un corpus chiffre stocke sur un serveur
US10496994B2 (en) * 2017-03-31 2019-12-03 Ca, Inc. Enhanced authentication with dark web analytics
US10580225B2 (en) * 2017-03-31 2020-03-03 Toyota Motor Engineering & Manufacturing North America, Inc. Privacy-aware signal monitoring systems and methods
SG11201909441XA (en) * 2017-04-11 2020-03-30 Governing Council Univ Toronto A homomorphic processing unit (hpu) for accelerating secure computations under homomorphic encryption
US10491373B2 (en) * 2017-06-12 2019-11-26 Microsoft Technology Licensing, Llc Homomorphic data analysis
US10554390B2 (en) * 2017-06-12 2020-02-04 Microsoft Technology Licensing, Llc Homomorphic factorization encryption
US11196539B2 (en) * 2017-06-22 2021-12-07 Microsoft Technology Licensing, Llc Multiplication operations on homomorphic encrypted data
US10541805B2 (en) 2017-06-26 2020-01-21 Microsoft Technology Licensing, Llc Variable relinearization in homomorphic encryption
US10749665B2 (en) 2017-06-29 2020-08-18 Microsoft Technology Licensing, Llc High-precision rational number arithmetic in homomorphic encryption
US20190005498A1 (en) * 2017-06-29 2019-01-03 Comenity Llc Private label account number protection
US10333698B2 (en) * 2017-07-14 2019-06-25 Raytheon Company Entwined encryption and error correction
KR102411883B1 (ko) * 2018-01-11 2022-06-22 삼성전자주식회사 전자 장치, 서버 및 그 제어 방법
US11074997B2 (en) * 2018-01-23 2021-07-27 Statum Systems Inc. Multi-modal encrypted messaging system
US10893505B2 (en) 2018-01-23 2021-01-12 Statum Systems Inc. Enhanced pager network
KR102103731B1 (ko) * 2018-04-02 2020-05-29 서울과학기술대학교 산학협력단 비대화식 통신을 이용한 암호화 데이터의 기계학습 시스템
US20190332814A1 (en) * 2018-04-27 2019-10-31 Nxp B.V. High-throughput privacy-friendly hardware assisted machine learning on edge nodes
US10693628B2 (en) 2018-05-04 2020-06-23 International Business Machines Corporation Enabling distance-based operations on data encrypted using a homomorphic encryption scheme with inefficient decryption
US20210287573A1 (en) * 2018-05-25 2021-09-16 Nippon Telegraph And Telephone Corporation Secret batch approximation system, secure computation device, secret batch approximation method, and program
KR102040120B1 (ko) 2018-07-27 2019-11-05 주식회사 크립토랩 근사 암호화된 암호문에 대한 연산을 수행하는 장치 및 방법
KR102157695B1 (ko) * 2018-08-07 2020-09-18 한국스마트인증 주식회사 익명 디지털 아이덴티티 수립 방법
EP3618388A1 (en) * 2018-08-30 2020-03-04 Nagravision SA Local decision making
US11177935B2 (en) * 2018-08-31 2021-11-16 Microsoft Technology Licensing, Llc Homomorphic evaluation of tensor programs
CN109284627B (zh) * 2018-09-10 2022-02-08 中山大学 一种基于区块链智能合约的征信信誉方法及装置
US11444926B1 (en) * 2018-10-15 2022-09-13 Inpher, Inc. Privacy-preserving efficient subset selection of features for regression models in a multi-party computation setting
US11469878B2 (en) * 2019-01-28 2022-10-11 The Toronto-Dominion Bank Homomorphic computations on encrypted data within a distributed computing environment
US20220100889A1 (en) * 2019-02-13 2022-03-31 Agency For Science, Technology And Research Method and system for determining an order of encrypted inputs
US11907952B2 (en) * 2019-03-12 2024-02-20 Cox Communications, Inc. Secured analytics using encrypted data
AU2019203863B2 (en) * 2019-03-18 2021-01-28 Advanced New Technologies Co., Ltd. Preventing misrepresentation of input data by participants in a secure multi-party computation
US11641274B2 (en) * 2019-03-22 2023-05-02 Jpmorgan Chase Bank, N.A. Systems and methods for manipulation of private information on untrusted environments
US11631117B2 (en) * 2019-05-10 2023-04-18 Sap Se Method, system, and non-transitory computer readable storage device for a pooling requirement while preserving privacy
US11005654B2 (en) * 2019-05-14 2021-05-11 Google Llc Outsourcing exponentiation in a private group
US11991283B2 (en) * 2019-06-05 2024-05-21 Nitromia Ltd. Accelerated execution of applications with fully homomorphically encrypted input data
EP4026032A4 (en) * 2019-06-13 2023-11-08 Lorica Cybersecurity Inc. STORAGE, TRANSFER AND CALCULATION OF SECURE INFORMATION
CN111835762A (zh) * 2019-07-11 2020-10-27 中国医学科学院阜外医院 一种基于非对称秘钥算法的硬件系统
CN110190946B (zh) * 2019-07-12 2021-09-03 之江实验室 一种基于同态加密的隐私保护多机构数据分类方法
US12120248B2 (en) * 2019-08-01 2024-10-15 Nippon Telegraph And Telephone Corporation Owner identity confirmation system, terminal and owner identity confirmation method
WO2021019781A1 (ja) * 2019-08-01 2021-02-04 日本電信電話株式会社 所有者同一性確認システム、認証局サーバおよび所有者同一性確認方法
US11431470B2 (en) * 2019-08-19 2022-08-30 The Board Of Regents Of The University Of Texas System Performing computations on sensitive data while guaranteeing privacy
US10839060B1 (en) * 2019-08-27 2020-11-17 Capital One Services, Llc Techniques for multi-voice speech recognition commands
US20210090077A1 (en) * 2019-09-19 2021-03-25 Bank Of America Corporation System architectures for point-of-sale data obfuscation, data removal and data encryption
CN111125735B (zh) * 2019-12-20 2021-11-02 支付宝(杭州)信息技术有限公司 一种基于隐私数据进行模型训练的方法及系统
CN111259442B (zh) * 2020-01-15 2022-04-29 广西师范大学 MapReduce框架下决策树的差分隐私保护方法
CN111245610B (zh) * 2020-01-19 2022-04-19 浙江工商大学 基于ntru同态加密的数据隐私保护深度学习方法
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
EP3873023A1 (en) * 2020-02-25 2021-09-01 Thales Dis France Sa Method for testing if a data element belongs to a list of reference data elements
CN111061720B (zh) * 2020-03-12 2021-05-07 支付宝(杭州)信息技术有限公司 数据筛选方法、装置和电子设备
US11544389B2 (en) * 2020-03-16 2023-01-03 Acronis International Gmbh Systems and methods for performing secure computing while maintaining data confidentiality
CN111431922A (zh) * 2020-03-31 2020-07-17 中国建设银行股份有限公司 物联网数据加密传输方法及系统
CN111586685B (zh) * 2020-04-26 2022-05-03 重庆邮电大学 一种基于格的匿名漫游认证方法
KR20210146513A (ko) * 2020-05-27 2021-12-06 삼성전자주식회사 인공 지능 연산 반도체 장치 및 이를 포함하는 저장 장치
US11502820B2 (en) 2020-05-27 2022-11-15 International Business Machines Corporation Privacy-enhanced decision tree-based inference on homomorphically-encrypted data
JP7527866B2 (ja) * 2020-07-01 2024-08-05 キヤノン株式会社 プログラム、情報処理装置及び制御方法
US20220020002A1 (en) * 2020-07-17 2022-01-20 Home Depot Product Authority, Llc Post payment processing tokenization in merchant payment processing
EP4189573A4 (en) * 2020-07-28 2024-08-14 Geneial Llc SECURE DATA EXCHANGE
AU2021337529A1 (en) * 2020-09-05 2023-05-18 Icu Medical, Inc. Identity-based secure medical device communications
CN112000940B (zh) * 2020-09-11 2022-07-12 支付宝(杭州)信息技术有限公司 一种隐私保护下的用户识别方法、装置以及设备
US11405176B2 (en) * 2020-09-18 2022-08-02 Intel Corporation Homomorphic encryption for machine learning and neural networks using high-throughput CRT evaluation
US11588617B2 (en) * 2020-11-01 2023-02-21 The Toronto-Dominion Bank Validating confidential data using homomorphic computations
KR20220078155A (ko) 2020-12-03 2022-06-10 삼성전자주식회사 암호 프로세서, 암호 프로세서의 동작 방법 및 이를 포함한 전자 장치
KR102467595B1 (ko) * 2021-01-18 2022-11-16 서울대학교산학협력단 재부팅 및 제어신호의 재암호화가 필요없으며 무한 연산이 가능한 동형암호화기반의 동적 데이터 처리 방법
CN114978518B (zh) * 2021-02-20 2024-06-11 南京如般量子科技有限公司 基于量子通信服务站的抗量子计算数字签名方法及系统
CN112925956B (zh) * 2021-03-25 2022-03-08 广西师范大学 一种物联网大规模时序数据访问控制方法
JP7084067B1 (ja) 2021-03-26 2022-06-14 株式会社アクセル 暗号処理装置、暗号処理方法、及び暗号処理プログラム
US11861666B2 (en) * 2021-03-31 2024-01-02 Toast, Inc. Stochastic apparatus and method for estimating credit card type when predicting interchange code to process credit card transactions
US11983731B2 (en) * 2021-03-31 2024-05-14 Toast, Inc. Optimized interchange code prediction system for processing credit card transactions
US12002022B2 (en) 2021-03-31 2024-06-04 Toast, Inc. Interchange code prediction system for processing credit card transactions
US11775969B2 (en) 2021-03-31 2023-10-03 Toast, Inc. Low latency bank card type prediction system for estimation of interchange codes during transaction processing
EP4099609A1 (en) * 2021-06-04 2022-12-07 Zama SAS Computational network conversion for fully homomorphic evaluation
US12021967B2 (en) * 2021-07-14 2024-06-25 Siemens Healthineers Ag Privacy preserving artificial intelligence based clinical decision support
US11636027B2 (en) * 2021-07-21 2023-04-25 Bank Of America Corporation Homomorphic encryption-based testing computing system
CN113660085B (zh) * 2021-08-13 2023-06-06 北方工业大学 一种基于量子同态加密的量子安全多方计算方法
KR102615381B1 (ko) * 2021-08-24 2023-12-19 서울대학교산학협력단 동형 암호를 활용한 사적 변수의 보안 방법 및 장치
US11818244B2 (en) 2021-12-15 2023-11-14 The Governing Council Of The University Of Toronto Cryptographic processor for fully homomorphic encryption (FHE) applications
WO2023168099A2 (en) * 2022-03-03 2023-09-07 AiOnco, Inc. Secure two-way messaging based on genetic information
CN116155509B (zh) * 2023-01-13 2024-09-17 海南大学 一种用于可穿戴设备数据比对的隐私保护方法
CN116757698B (zh) * 2023-04-20 2024-05-14 广东盛迪嘉电子商务股份有限公司 一种用于完善支付安全性能的加密方法及系统
CN117135000B (zh) * 2023-10-27 2024-02-02 深圳鼎智通讯有限公司 一种pos机动态数据远程管理方法及系统
CN118297593A (zh) * 2024-06-05 2024-07-05 福建米花信息科技有限公司 一种支付系统的安全防护方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120082024A (ko) * 2009-12-03 2012-07-20 오소캐드 리모트 리미티드 라이어빌리티 컴퍼니 거래를 승인하는 시스템 및 방법
US20140233727A1 (en) * 2012-11-16 2014-08-21 Raytheon Bbn Technologies Corp. Method for secure substring search
JP2015184594A (ja) * 2014-03-25 2015-10-22 富士通株式会社 暗号文処理装置、暗号文処理方法、暗号文処理プログラムおよび情報処理装置
KR20160030573A (ko) * 2013-07-15 2016-03-18 비자 인터네셔널 서비스 어소시에이션 보안 원격 지불 거래 처리

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7856100B2 (en) * 2005-12-19 2010-12-21 Microsoft Corporation Privacy-preserving data aggregation using homomorphic encryption
US8712915B2 (en) * 2006-11-01 2014-04-29 Palo Alto Research Center, Inc. System and method for providing private demand-driven pricing
US8433925B2 (en) * 2009-09-04 2013-04-30 Gradiant Cryptographic system for performing secure computations and signal processing directly on encrypted data in untrusted environments
US8630422B2 (en) 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
US8515058B1 (en) 2009-11-10 2013-08-20 The Board Of Trustees Of The Leland Stanford Junior University Bootstrappable homomorphic encryption method, computer program and apparatus
JP5573293B2 (ja) 2010-03-30 2014-08-20 富士通株式会社 認証装置、暗号化装置、トークンデバイス、認証方法、および認証プログラム
US8532289B2 (en) 2010-08-16 2013-09-10 International Business Machines Corporation Fast computation of a single coefficient in an inverse polynomial
WO2012149395A1 (en) * 2011-04-29 2012-11-01 International Business Machines Corporation Fully homomorphic encryption
US20160365973A1 (en) 2012-10-30 2016-12-15 Nederlandse Organisatie Voor Toegepast-Natuurwetenschappelijk Onderzoek Tno Secure Distribution of Watermarked Content
JP2014119486A (ja) 2012-12-13 2014-06-30 Hitachi Solutions Ltd 秘匿検索処理システム、秘匿検索処理方法、および秘匿検索処理プログラム
CN102970143B (zh) * 2012-12-13 2015-04-22 中国科学技术大学苏州研究院 采用加法同态加密方法进行安全计算双方持有数和的指数的方法
US9306738B2 (en) * 2012-12-21 2016-04-05 Microsoft Technology Licensing, Llc Managed secure computations on encrypted data
EP2755158A1 (en) * 2013-01-09 2014-07-16 Thomson Licensing Method and device for privacy-respecting data processing
WO2014177581A1 (en) * 2013-04-30 2014-11-06 Thomson Licensing Threshold encryption using homomorphic signatures
WO2015017787A2 (en) * 2013-08-01 2015-02-05 Visa International Service Association Homomorphic database operations apparatuses, methods and systems
JP2015099961A (ja) 2013-11-18 2015-05-28 三菱電機株式会社 情報配信システム、サーバ装置、情報生成装置、端末装置、情報配信方法及びプログラム
US9524392B2 (en) * 2013-11-30 2016-12-20 Microsoft Technology Licensing, Llc Encrypting genomic data for storage and genomic computations
CN104700277A (zh) * 2013-12-05 2015-06-10 华为技术有限公司 电子记账方法、装置及终端设备
US10719828B2 (en) * 2014-02-11 2020-07-21 Square, Inc. Homomorphic passcode encryption
US10075288B1 (en) * 2014-02-28 2018-09-11 The Governing Council Of The University Of Toronto Systems, devices, and processes for homomorphic encryption
CA2887191C (en) 2014-04-04 2021-05-25 University Of Ottawa Secure linkage of databases
GB2526059A (en) * 2014-05-13 2015-11-18 Ibm Managing unlinkable identifiers for controlled privacy-friendly data exchange
CN105337736B (zh) * 2014-06-30 2018-10-30 华为技术有限公司 全同态消息认证方法、装置及系统
US10629296B2 (en) * 2014-08-29 2020-04-21 Nanthealth, Inc. Mobile carrier-centric data record custodian systems and methods
WO2016036969A1 (en) * 2014-09-03 2016-03-10 Nantomics, Llc Synthetic genomic variant-based secure transaction devices, systems and methods
US9946970B2 (en) * 2014-11-07 2018-04-17 Microsoft Technology Licensing, Llc Neural networks for encrypted data
US20170053282A1 (en) * 2015-08-21 2017-02-23 Pitney Bowes Inc. Fraud risk score using location information while preserving privacy of the location information
US9742556B2 (en) * 2015-08-25 2017-08-22 International Business Machines Corporation Comparison and search operations of encrypted data
US10015007B2 (en) * 2015-11-25 2018-07-03 International Business Machines Corporation Performing efficient comparison operations on encrypted data
US10581812B2 (en) * 2015-12-01 2020-03-03 Duality Technologies, Inc. Device, system and method for fast and secure proxy re-encryption
US9900147B2 (en) * 2015-12-18 2018-02-20 Microsoft Technology Licensing, Llc Homomorphic encryption with optimized homomorphic operations
US10761877B2 (en) * 2017-07-21 2020-09-01 Intel Corporation Apparatuses, methods, and systems for blockchain transaction acceleration

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120082024A (ko) * 2009-12-03 2012-07-20 오소캐드 리모트 리미티드 라이어빌리티 컴퍼니 거래를 승인하는 시스템 및 방법
US20140233727A1 (en) * 2012-11-16 2014-08-21 Raytheon Bbn Technologies Corp. Method for secure substring search
KR20160030573A (ko) * 2013-07-15 2016-03-18 비자 인터네셔널 서비스 어소시에이션 보안 원격 지불 거래 처리
JP2015184594A (ja) * 2014-03-25 2015-10-22 富士通株式会社 暗号文処理装置、暗号文処理方法、暗号文処理プログラムおよび情報処理装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020116807A1 (ko) * 2018-12-07 2020-06-11 주식회사 크립토랩 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
KR20200070090A (ko) * 2018-12-07 2020-06-17 주식회사 크립토랩 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
US11799628B2 (en) 2018-12-07 2023-10-24 Crypto Lab Inc. Apparatus and method for processing non-polynomial operation on encrypted messages
WO2020154769A1 (en) 2019-02-01 2020-08-06 Secure Logic Pty Ltd System, method and computer readable medium for performing a transaction in relation to an identity centric dataset
KR20210067958A (ko) * 2019-11-29 2021-06-08 고려대학교 산학협력단 완전동형암호 기법으로 암호화된 데이터의 로지스틱 회귀 분석 연산 장치 및 방법
WO2024210231A1 (ko) * 2023-04-03 2024-10-10 엘지전자 주식회사 통신 시스템에서 동형 암호 기반의 통신 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
US11257076B2 (en) 2022-02-22
CN109314641B (zh) 2023-04-18
CA3002582C (en) 2022-11-29
IL262352A (en) 2018-11-29
US12093939B2 (en) 2024-09-17
EP3443706A4 (en) 2019-09-25
CA3002582A1 (en) 2017-10-19
US20220129892A1 (en) 2022-04-28
JP2019514301A (ja) 2019-05-30
EP3443706B1 (en) 2023-09-13
US20190205875A1 (en) 2019-07-04
PH12018502196A1 (en) 2019-09-16
US20170293913A1 (en) 2017-10-12
WO2017177313A1 (en) 2017-10-19
CN109314641A (zh) 2019-02-05
IL262352B (en) 2021-12-01
EP3443706A1 (en) 2019-02-20
US20190182216A1 (en) 2019-06-13
JP7165292B2 (ja) 2022-11-04
SG11201809010TA (en) 2018-11-29
KR102403295B1 (ko) 2022-05-27

Similar Documents

Publication Publication Date Title
KR102403295B1 (ko) 동형적으로 암호화된 데이터의 유효성 확인 및 이에 대한 연산을 수행하기 위한 시스템 및 방법
Antwi et al. The case of HyperLedger Fabric as a blockchain solution for healthcare applications
US20240321416A1 (en) Healthcare transaction validation via blockchain, systems and methods
EP2365458B1 (en) A computer implemented method for determining the presence of a disease in a patient
EP3844934B1 (en) A computer system and method of operating same for handling anonymous data
US20160359819A1 (en) Encryption and Distribution of Health-related Data
Shamila et al. A review on several critical issues and challenges in IoT based e-healthcare system
US20150161413A1 (en) Encryption and distribution of health-related data
Vimalachandran et al. Ensuring data integrity in electronic health records: A quality health care implication
Esther Omolara et al. HoneyDetails: A prototype for ensuring patient’s information privacy and thwarting electronic health record threats based on decoys
Sharma et al. Healthify: a blockchain-based distributed application for health care
Bajrić Data security and privacy issues in healthcare
Altameem et al. Patient's data privacy protection in medical healthcare transmission services using back propagation learning
Kumar et al. A lightweight blockchain-based framework for medical cyber-physical system
US12131319B2 (en) System and methods for validating and performing operations on homomorphically encrypted data
Sujan Securing Distributed Data Mechanism Based On Blockchain Technology
Shingari et al. The Importance of Data Encryption in Ensuring the Confidentiality and Security of Financial Records of Medical Health
Mao Using Smart and Secret Sharing for Enhanced Authorized Access to Medical Data in Blockchain
Bose et al. A Survey on Privacy of Health Data Lifecycle: A Taxonomy, Review, and Future Directions
Gupta et al. How artificial intelligence can undermine security: an overview of the intellectual property rights and legal problems involved
Rastogi et al. Fully decentralized block chain with proxy re-encryption algorithm for healthcare security
Dilmaghani A privacy-preserving solution for storage and processing of personal health records against brute-force attacks
JP6805584B2 (ja) 関係暗号化
Sun et al. Enhancing Smart Healthcare Networks: Integrating Attribute-Based Encryption for Optimization and Anti-Corruption Mechanisms
Ali Secured data masking framework and technique for preserving privacy in a business intelligence analytics platform

Legal Events

Date Code Title Description
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant