KR102103135B1 - 데이터베이스 질의를 위한 방법 및 시스템 - Google Patents

데이터베이스 질의를 위한 방법 및 시스템 Download PDF

Info

Publication number
KR102103135B1
KR102103135B1 KR1020187007647A KR20187007647A KR102103135B1 KR 102103135 B1 KR102103135 B1 KR 102103135B1 KR 1020187007647 A KR1020187007647 A KR 1020187007647A KR 20187007647 A KR20187007647 A KR 20187007647A KR 102103135 B1 KR102103135 B1 KR 102103135B1
Authority
KR
South Korea
Prior art keywords
proxy
client
database
request
encrypted
Prior art date
Application number
KR1020187007647A
Other languages
English (en)
Other versions
KR20180042327A (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 KR20180042327A publication Critical patent/KR20180042327A/ko
Application granted granted Critical
Publication of KR102103135B1 publication Critical patent/KR102103135B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

네트워크에서의 방법은, 메모리 및 프로세서를 가지는 클라이언트에서, 제1 요청을 프록시에 전송하는 단계 ― 프록시는 메모리 및 프로세서를 포함함 ― , 클라이언트에서, 프록시로부터 제1 응답을 수신하는 단계, 클라이언트에서, 제2 요청을 프록시에 전송하는 단계, 제2 요청에 대한 응답으로, 프록시로부터, 암호화된 컴퓨팅된 함수를 클라이언트에 전송하는 단계, 및 클라이언트에서 컴퓨팅된 함수를 암호화해제하는 단계를 포함한다.

Description

데이터베이스 질의를 위한 방법 및 시스템
[0001] 본 개시내용은 일반적으로, 데이터베이스 질의들의 분야에 관한 것으로, 더 상세하게는, (가블드 회로(garbled circuit)들을 포함하는 그 다양한 형태들의) 동형 암호화(homomorphic encryption), (암호학적, 다-차원 및 이들의 조합들을 포함하는 다양한 형태들의) 블룸 필터들, 및 비공개 정보 리트리브(private information retrieval)를 활용하는 데이터베이스 질의들을 위한 방법 및 시스템에 관한 것이다.
[0002] 최근, 전기 통신 네트워크들 및 다른 정보 시스템들의 개발에 있어서 비공개(privacy)가 보다 큰 공학적 관심이 되었다. 특히, 값들(즉, 입력 값들, 출력 값들 및 임시 값들을 포함하는 중간 값들)이 비공개로 유지되도록 두 당사자들이 함수를 통신 및 컴퓨팅하는 시나리오인 "STC"(secure two-party communication)는 전기 통신 네트워크들과 같은 지능형 시스템들의 설계에서 고려해야 할 중요한 인자가 되었다.
[0003] STC들 및 PIR(private information retrieval)을 지원하는 몇몇 기존의 데이터베이스들(예컨대, CryptDB, TrustedDB® 및 Cipherbase®를 포함함)이 존재한다. CryptDB®은 MIT®에 의해 개발되었으며, 신뢰성 없는 서버에 저장된 암호화된 데이터베이스, 신뢰성 있는 프록시 및 클라이언트의 컴퓨터를 통해 이용가능한 애플리케이션을 포함한다. CryptDB®의 목표는 데이터 컨텐츠를 신뢰성 없는 서버에 나타내지 않으면서 SQL 질의들을 수행(즉, 업데이트, 선택, 조인, 탐색)하는 것이다. CryptDB®에서, 프록시는 클라이언트와 서버 사이의 변환기(translator)로서 역할을 한다.
[0004] TrustedDB®은 신뢰성 있는 하드웨어를 사용함으로써 비공개-보존 SQL 데이터베이스를 제공한다. 그러나, 일부 경우들에서, 신뢰성 있는 하드웨어의 사용은 비용이 많이 들고, 성능이 제한적일 수 있다. Cipherbase®는 TrustedDB®와 유사하지만, 신뢰성 있는 하드웨어를 단독으로 사용하는 대신에, Cipherbase®는 신뢰성 있는 하드웨어 및 소프트웨어 기법들의 조합을 사용하여 SQL 질의들을 지원하는 완전한 동형 데이터베이스를 시뮬레이션한다. 민감한 정보는 네트워크 내의 서버 측에 저장된다.
[0005] 기존 STC 방법들은 연산, 프레임워크 및 입력 사이즈들에 따라 결과들이 변하는 것과 같은 몇몇 단점들을 가진다. 또한, 계산을 완료하는데 요구되는 시간, 소비되는 메모리의 양 및 연산 비용이 엄청나게 비쌀 수 있다. 추가로, 많은 경우들에서, 그러한 기존 방법들을 채택하는 것은 기존 시스템에 대한 새로운 아키텍처를 변경 및/또는 제공하는 것을 요구한다.
[0006] 네트워크에서의 방법은: 메모리 및 프로세서를 가지는 클라이언트에서, 제1 요청을 프록시에 전송하는 단계 ― 프록시는 메모리 및 프로세서를 포함함 ― ; 클라이언트에서, 프록시로부터 제1 응답을 수신하는 단계; 클라이언트에서, 제2 요청을 프록시에 전송하는 단계; 제2 요청에 대한 응답으로, 프록시로부터, 암호화된 컴퓨팅된 함수를 클라이언트에 전송하는 단계; 및 클라이언트에서 컴퓨팅된 함수를 암호화해제하는 단계를 포함한다.
[0007] 시스템은: 메모리 및 프로세서를 포함하는 적어도 하나의 네트워크 컴포넌트; 네트워크 컴포넌트와 통신하는 클라이언트 ― 클라이언트는 메모리 및 프로세서를 포함함 ―; 클라이언트와 통신하는 프록시; 및 프록시와 통신하는 데이터베이스를 포함한다. 시스템은, 클라이언트에서, 제1 요청을 프록시에 전송하고; 클라이언트에서, 프록시로부터 제1 응답을 수신하고; 클라이언트에서, 제2 요청을 프록시에 전송하고; 프록시로부터, 암호화된 컴퓨팅된 함수를 클라이언트에 전송하고; 그리고 클라이언트에서 컴퓨팅된 함수를 암호화해제하도록 구성된다.
[0008] 방법은: 메모리 및 프로세서를 가지는 클라이언트에서, 제1 요청을 프록시에 전송하는 단계 ― 프록시는 메모리 및 프로세서를 포함함 ― ; 클라이언트에서, 프록시로부터 제1 응답을 수신하는 단계; 클라이언트에서, 암호화된 클라이언트 값을 프록시에 전송하는 단계; 및 프록시에서, 프록시와 통신하는 데이터베이스로부터 컴포넌트 값을 리트리브하는 단계를 포함하고, 컴포넌트 값은 네트워크에서의 컴포넌트에 기반한다. 방법은, 프록시에서, 암호화된 클라이언트 값 및 리트리브된 컴포넌트 값에 기반하여 컴퓨팅된 함수를 결정하는 단계; 클라이언트에서, 제2 요청을 프록시에 전송하는 단계; 제2 요청에 대한 응답으로, 프록시로부터, 암호화된 컴퓨팅된 함수를 클라이언트에 전송하는 단계; 및 클라이언트에서 컴퓨팅된 함수를 암호화해제하는 단계를 더 포함한다.
[0009] 본 개시내용의 적절한 이해를 돕기 위해, 첨부한 도면들에 대한 참조가 이루어져야 한다.
[0010] 도 1은 본 개시내용의 실시예에 따른 시스템 아키텍처의 개요이다.
[0011] 도 2는 본 개시내용의 실시예에 따른 방법을 예시하는 흐름도이다.
[0012] 도 3은 본 개시내용의 실시예에 따른 블룸 필터 파퓰레이션(population) 방법을 예시하는 흐름도이다.
[0013] 도 4는 본 개시내용의 실시예에 따른 함수 컴퓨테이션 방법을 예시하는 흐름도이다.
[0014] 도 5는 본 개시내용의 실시예에 따른 시스템을 예시하는 다이어그램이다.
[0015] 도 6은 도 5에서 예시되는 시스템에 따른, 클라이언트, 프록시 및 데이터베이스 사이의 통신을 예시하는 개요이다.
[0016] 도 7은 본 개시내용의 추가적 실시예에 따른 방법을 예시하는 흐름도이다.
[0017] 도 8은 도 7에 도시되는 방법에 따른, 클라이언트, 프록시 및 데이터베이스 사이의 통신을 예시하는 신호 다이어그램이다.
[0018] 도 9는 도 7에 도시되는 방법에 따른, 프록시에서의 블룸 필터 파퓰레이션을 예시하는 흐름 다이어그램이다.
[0019] 도 10은 도 7에 도시되는 방법에 따른, 데이터베이스에서의 블룸 필터 파퓰레이션을 예시하는 흐름 다이어그램이다.
[0020] 도 11은 도 7에 도시되는 방법에 따른, 클라이언트와 프록시 사이의 블룸 필터 질의들을 예시하는 흐름 다이어그램이다.
[0021] 도 12는 도 7에 도시되는 방법에 따른, 함수 평가 동안 클라이언트, 프록시 및 데이터베이스 사이의 통신을 예시하는 흐름 다이어그램이다.
[0022] 도 13은 도 7에 도시되는 방법에 따라 컴퓨팅된 예시적 거리 계산이다.
[0023] 본 개시내용은 데이터베이스에 대한 클라이언트 질의 및 컴퓨테이션 둘 모두가 비공개 관점에서 보호될 수 있는 그러한 방식으로 블룸 필터들, 동형 암호화, 및 신뢰성 있는 프록시를 결합하는 네트워크에서의 방법 및 시스템을 제공한다. 암호학적 블룸 필터들(이하에서 "CBF"로 지칭되는 단일 및 다-차원 둘 모두) 및 "HE"(Homormorphic Encryption) 둘 모두는 당업자들에게 알려져 있다. 간단하게, 블룸 필터는 해시 코딩에 기반하는 확률론적 데이터 구조이며, 주로 전기 통신 네트워크에서의 멤버십 질의들을 위해 사용된다. 블룸 필터의 목표는 필요한 메모리의 양을 감소시키는 것이고, 비트어레이 및 해시 함수들의 조합을 사용함으로써 멤버십 테스트를 위한 더 빠른 방법을 제공하는 것이다. 통상적 블룸 필터는 초기에 모두 "0"으로 세팅된 길이 m의 비트어레이 및 k개의 해시 함수들을 포함한다. CBF들은 클라이언트가 질의의 컨텐츠를 블룸 필터에 나타내지 않으면서 블룸 필터에 질의할 수 있게 허용하는 방식으로서 개발되었다. 더 구체적으로, CBF들은 블라인드 시그니처(blind signature)를 활용할 수 있는데, 이는, 클라이언트가, 서명된 것을 서버에 나타내지 않으면서 서버로부터 시그니처를 획득하는 것을 가능하게 한다. CBF에서, 입력 x를 가지는 정상 해시 함수들은 input (x, signature(x))를 가지는 새로운 해시 함수들로 대체되어서, 블룸 필터가 암호화되고, 블룸 필터에 질의하기 위해 시그니처가 필요하다. 동형 암호화 또는 HE는 암호화된 데이터에 대해 컴퓨테이션들이 수행될 수 있게 하여서, 그에 의해, 예컨대, 클라우드 컴퓨팅에서 데이터 누설을 방지한다. HE가 단독으로 비공개 정보 리트리브를 가능하게 하지 않기 때문에, 본 개시내용은 대응하는 데이터베이스로부터의 클라이언트의 요청들 및 컴퓨테이션을 격리하기 위해 신뢰성 있는 프록시와 CBF들 및 HE의 조합을 제안한다.
[0024] 이제 도 1을 참조하면, 본 개시내용에 따른 시스템 아키텍처(100)는 신뢰성 있는 프록시(104)(본원에서 프록시로 또한 지칭됨)와 통신하는 클라이언트(102)를 포함하며, 여기서, 신뢰성 있는 프록시는 데이터베이스 또는 서버(106)와 통신한다. 도 1에서 알 수 있는 바와 같이, 신뢰성 있는 프록시(104)는 클라이언트(102)와 데이터베이스(106) 사이의 통신을 가능하게 하여서, 클라이언트 및 데이터베이스는 서로 직접적으로 통신하지 않는다. 이것은 클라이언트(102)의 아이덴티티가 데이터베이스(106)에 비공개로 그리고 알려지지 않은 채로 남아 있을 수 있게 한다. 신뢰성 있는 프록시(104)는 2개의 주요 기능들: 1) CBF(108)를 생성하고, 클라이언트(102)에 의해 발행된 CBF 질의들에 응답하는 것; 및 2) HE 기능성(110)을 사용하여, 클라이언트의 입력에 기반하여 데이터베이스(106)로부터 레코드를 리트리브하고 리트리브된 레코드 및 클라이언트의 데이터를 사용하여 함수 평가를 수행하는 것을 수행하도록 구성된다. 데이터베이스(106)는 2개의 주요 기능들: 인덱싱 및 함수 평가를 가진다. 본 개시내용에 따라, CBF(108)를 사용하여, 데이터베이스의 인덱싱이 추출되었으며, 신뢰성 있는 프록시(104) 내에서 수행된다. 유사하게, 데이터베이스(106)에 의해 일반적으로 실행되는 함수 평가가 추출되었으며, (HE 기능성(110)을 사용하여) HE를 적용함으로써 신뢰성 있는 프록시(104) 내에서 수행된다 .
[0025] 도 1에 도시되는 아키텍처에서, 클라이언트(102)는 비공개 데이터를 전송하며, 대신에 공개 데이터를 수신하기를 희망한다. 따라서, 아래에서 더 상세하게 설명될 바와 같이, 클라이언트(102)는, 클라이언트로부터 필요한 임의의 비공개 데이터를 수신하는 프록시(104)에 통신/질의한다. 차례로 그리고 HE(110) 및 CBF(108)의 조합을 사용하여, 프록시(104)는 암호화된 데이터를 포함할 수 있는 데이터베이스(106)와 통신하지만, 본 개시내용의 목적들을 위해, 그 자체는 암호화되지 않는다. 데이터베이스(106)는 암호화된 데이터를 프록시(104)로 리턴하고, 프록시(104)는 이어서 암호화된 데이터를 클라이언트(102)에 다시 전송한다. 이어서, 클라이언트(102)는, 필요한 경우, 수신된 데이터를 암호화해제할 수 있다. 이 아키텍처의 목표는 데이터베이스(106)가 클라이언트(102)와 프록시(104) 사이에서 통신되는 비공개 정보를 알지 못하는 것을 보장하는 것이다. 이 목표를 실현하기 위해 활용되는 방법들 및 시스템은 도 2-13을 참조하여 아래에서 더 상세하게 설명될 것이다.
[0026] 이제 도 2를 참조하면, 전기 통신 네트워크에서의 방법(200)이 제공되며, 클라이언트(102)에서, 제1 요청을 프록시(104)에 전송하는 단계를 포함한다(202). 제1 요청은, 예컨대, 프록시(104)와 통신하는 데이터베이스(106)를 인덱싱하기 위한 요청을 포함할 수 있고, 이는 아래에서 더 상세하게 설명될 것이다. 204에서, 클라이언트(102)는 프록시(104)로부터 제1 응답을 수신한다. 다음으로, 206에서, 클라이언트(102)는 제2 요청을 프록시(104)에 전송하고, 제2 요청에 대한 응답으로, 프록시는 암호화된 컴퓨팅된 함수를 클라이언트에 전송한다(208). 210에서, 클라이언트(102)는 컴퓨팅된 함수를 암호화해제한다.
[0027] 단계(202)에 대해 위에서 서술된 바와 같이, 클라이언트(102)는 제1 요청을 프록시(104)에 전송하고, 제1 요청은 본 개시내용에 따라, 데이터베이스(106)를 인덱싱하기 위한 요청을 포함한다. 데이터베이스의 인덱싱은 프록시(104) 내의 암호학적 블룸 필터(108)에서 수행될 수 있다. 제1 요청에 따라, 클라이언트(102)는, 예컨대, 기지국과 같은 네트워크 컴포넌트/엘리먼트의 존재를 결정하기 위해 프록시(104)에 질의한다(도 4에 도시됨). 이 초기 질의는 네트워크 컴포넌트가 데이터베이스(106)의 일부인지 여부를 결정하며, 네거티브(negative) 응답이 프록시에 의해 제공되는 경우, 추가적인 불필요한 계산들에 대한 필요성을 회피한다. 다시 말해서, 초기 질의가 "거짓(false)" 또는 "네거티브" 응답(즉, 네트워크 컴포넌트가 데이터베이스(106)의 일부가 아님)을 리턴하면, 방법(200)은 종료되거나, 또는 포지티브 또는 "참(true)" 응답(즉, 네트워크 컴포넌트가 데이터베이스의 일부임)이 수신될 때까지 단계(202)(도 2에서의 점선 참조)로 리턴할 수 있다.
[0028] 도 3은 네트워크 컴포넌트가 데이터베이스(106)의 일부인지 여부를 결정하기 위해 사용되는 방법(300)을 예시한다. 302에서, 데이터베이스(106)는, 데이터베이스에서의 데이터세트에 기반하여 최적의 암호학적 블룸 필터를 생성한다. 304에서, 데이터베이스(106)는 데이터베이스에서의 데이터세트 변화들에 기반하여 암호학적 블룸 필터 데이터 엘리먼트들을 컴퓨팅하며, 306에서, 컴퓨팅된 암호학적 블룸 필터 데이터 엘리먼트들을 프록시(104)에 전송한다. 프록시(104)가 이제 CBF(108)에 저장된 필요한 데이터 엘리먼트들을 가지기 때문에, 클라이언트(102)는 이어서, 308에서, 데이터베이스(106) 내의 네트워크 컴포넌트의 존재에 관해 프록시에 질의할 수 있다. 프록시(104)가 "참" 응답을 리턴하면, 310에서, 방법(300)은 단계(204)로 리턴하여, 도 2에 대해 설명되는 방법(200)에 따라 계속된다. 그러나, 프록시(104)가 "거짓" 응답을 리턴하면, 312에서, 방법(300)은 단계(202)로 리턴하여, 표시되는 바와 같이 진행된다. 대안적으로, 312에서, 방법(300)은 단계(302)로 리턴하여, "참" 응답이 프록시(104)로부터 수신될 때까지 반복될 수 있다. 308에서의 질의 이전에, 블라인드 시그니처 방식(도시되지 않음)이 구현될 수 있어서, 클라이언트(102)가 질의를 프록시(104)에 전송하기 이전에 질의된 엘리먼트를 블라인드하는 것을 가능하게 한다. 그러한 블라인드 시그니처 방식은 클라이언트와 프록시 사이의 2회 통신을 요구할 것이고, 이 시점에서, 프록시(104)는 프록시에 "참" 또는 "거짓" 응답을 제공하는 것으로 진행될 수 있다. 블라인드 시그니처는 통신을 보호하고 인증하는 방법이다. 그것은 본 방법의 요건들도 아니며, 유일한 접근법도 아니다. 예컨대, 다른 인증 방식들이 사용될 수 있지만, 블라인드 시그니처들이 다수의 암호학적 핵심 통신 문제들을 해결한다. 따라서, 블라인드 시그니처들은 필요에 따라 그리고/또는 요구에 따라 임의의 다른 전송 및 인증 보호 방식들로 대체될 수 있다.
[0029] 도 3 및 위의 내용은 데이터베이스(106)가 CBF(108)를 생성 및 컴퓨팅한다는 것을 개시하지만, 프록시(104)가 CBF(108)를 생성 및 파퓰레이션하는 것이 또한 가능하다. 구체적으로, 프록시(104)는 데이터베이스(106)에서의 데이터세트에 기반하여 최적의 암호학적 블룸 필터(108)를 생성할 수 있으며, 이어서, 데이터베이스에서의 데이터세트 변화들에 기반하여 암호학적 블룸 필터의 데이터 엘리먼트들을 업데이트할 수 있다. 암호학적 블룸 필터의 업데이트는 블룸 필터에서 데이터 엘리먼트들을 삭제하는 것 및 블룸 필터에 데이터 엘리먼트들을 삽입하는 것 중 하나를 포함할 수 있다. 데이터가 CBF로부터 삭제되면, CBF의 해시 값들이 업데이트될 수 있고, 카운터가 감소될 수 있으며; 대안적으로, 전체 CBF가 재생성될 수 있다. 이로써, CBF들의 그러한 업데이트는 일반적으로 당업자들에게 알려져 있어서, 그것은 본원에서 더 이상 설명되지 않을 것이다.
[0030] 위에서 그리고 도 2에서 서술된 바와 같이, 206에서, 제2 요청이 프록시(104)에 전송된다. 본 개시내용에 따라, 제2 요청은 프록시에 의한 함수의 컴퓨팅을 요청하는 것을 포함할 수 있다. 아래에서 더 상세하게 그리고 도 4에서 예시되는 방법(400)을 참조하여 설명될 바와 같이, 함수의 컴퓨팅이 동형 암호화 또는 HE를 사용하여 프록시(104)에 의해 수행될 수 있다. 구체적으로, 제2 요청의 수신 시에 그리고 402에서, 클라이언트(102)는 암호화된 클라이언트 값을 프록시(104)에 전송할 수 있다. 404에서, 프록시는 프록시와 통신하는 데이터베이스(106)로부터 컴포넌트 값을 리트리브하고, 컴포넌트 값은 네트워크에서의 컴포넌트에 기반한다. 406에서, 프록시는, 암호화된 클라이언트 값 및 리트리브된 컴포넌트 값에 기반하여 컴퓨팅된 함수를 결정한다. 예컨대, 클라이언트 값, 데이터베이스로부터 리트리브된 컴포넌트 값 및 대응하는 컴퓨팅된 함수는 거리, 시간, 위치 및 텍스트 데이터의 스트링 중 하나일 수 있다.
[0031] 이제 도 5-13을 참조하여, 본 개시내용에 대한 특정 사용 사례가 설명될 것이다. 시스템(500)이 제공되며, 시스템(500)은 네트워크 컴포넌트(502)를 포함하고, 네트워크 컴포넌트는 메모리(502a) 및 프로세서(502b)를 포함한다. 시스템(500)은 네트워크 컴포넌트와 통신하는 클라이언트(504)를 더 포함하고, 클라이언트는 메모리(504a) 및 프로세서(504b)를 포함한다. 프록시(506)가 제공되며, 프록시(506)는 클라이언트(504)와 통신하고, 데이터베이스(508)는 프록시와 통신한다. 도 5에 도시되는 바와 같이 그리고 도 6에 도시되는 아키텍처(600)에서, 클라이언트(504)는 단지 프록시(506)와만 통신한다. 다시 말해서, 클라이언트(504)는 데이터베이스(508)와 직접적으로 통신하지 않는다. 아래에서 더 상세하게 설명될 바와 같이, 시스템(500)은, 클라이언트(504)에서, 제1 요청을 프록시(506)에 전송하고; 클라이언트에서, 프록시로부터 제1 응답을 수신하고; 클라이언트에서, 제2 요청을 프록시에 전송하고; 프록시로부터, 암호화된 컴퓨팅된 함수를 클라이언트에 전송하고; 그리고 클라이언트에서 컴퓨팅된 함수를 암호화해제하도록 구성된다.
[0032] 본 시스템(500)에서, 네트워크 컴포넌트(502)는 기지국이고, 클라이언트(504)는 GPS 연결을 가지는 사용자 디바이스이다. 현재 시나리오에서, 클라이언트 또는 사용자 디바이스(504)는 그들의 위치를 데이터베이스(508)에 나타내지 않으면서 기지국(502)에 대한 그들의 위치를 알기를 원한다. 이제 도 7-13을 참조하면, 기지국(502)에 대한 클라이언트(504)의 위치를 결정하기 위한 방법(700)이 제공된다.
[0033] 702에서, 클라이언트 또는 사용자 디바이스(504)는 제1 요청을 프록시(506)에 전송하며, 704에서, 프록시로부터 제1 응답을 수신한다. 706에서, 클라이언트(504)는 암호화된 클라이언트 값을 프록시에 전송한다. 암호화된 클라이언트 값은, 예컨대, 사용자 디바이스(504)의 위치일 수 있다. 이 클라이언트 값은 암호화되며, 신뢰성 있는 프록시(506)에 의해서만 보여진다. 이어서, 프록시(506)는 프록시와 통신하는 데이터베이스(508)로부터 컴포넌트 값을 리트리브한다(708). 이 시나리오에서, 컴포넌트 값은 네트워크에서의 컴포넌트(502)에 기반하며, 더 구체적으로는, 네트워크 내에서의 기지국의 위치이거나, 또는 대안적으로, 클라이언트(504)에 대한 기지국의 근접도 위치이다. 710에서, 프록시(506)는 암호화된 클라이언트 값 및 리트리브된 컴포넌트 값에 기반하여 암호화된 컴퓨팅된 함수를 결정하고, 그 세부사항들은 도 13에 대해 아래에서 추가로 설명된다. 712에서, 사용자 디바이스(504)는 암호화된 컴퓨팅된 함수를 요청하는 제2 요청을 프록시(506)에 전송하고, 이에 대한 응답으로, 프록시는 암호화된 컴퓨팅된 함수를 클라이언트에 전송한다(714). 통상적으로, 클라이언트는 파라미터들을 프록시에서의 함수에 전송하지만, 본 방법(700)에서는, 고차 함수로서 알려진 함수를 파라미터로서 전송하는 것이 가능하다. 716에서, 클라이언트(502)는 컴퓨팅된 함수를 암호화해제한다.
[0034] 사용 사례에 따라, 컴퓨팅된 함수는 사용자 디바이스(504)와 네트워크 컴포넌트 또는 기지국(502) 사이의 거리이다. 방법(700)에 따라, 프록시(506)도 데이터베이스(508)도 사용자 디바이스의 위치를 알지 못하여서, 그에 의해, 사용자 디바이스의 위치의 비공개를 보장한다. 디바이스(504)는 자신과 네트워크 컴포넌트 또는 기지국(502) 사이의 거리를 알고 있는, 시스템(600) 내의 유일한 컴포넌트이다. 따라서, 본 시스템들/방법들은 클라이언트와 관련된 기밀 정보를 누설하지 않으면서, 클라이언트와 프록시 사이의 안전한 양-방향 통신을 보장한다.
[0035] 도 8-12는 방법(700)에 따른, 클라이언트(504), 프록시(506) 및 데이터베이스(508) 사이의 통신을 예시하는 시그널링 다이어그램들을 포함한다. 구체적으로, 도 8은 클라이언트(504)와 프록시(506) 사이의 신호 흐름(800)을 예시하며, 여기서, 클라이언트는 네트워크 컴포넌트(이 경우, 기지국)가 네트워크의 일부로서 존재하는지 여부를 요청한다. 802에서, 사용자 디바이스(504)는 네트워크 내에서의 기지국(502)의 존재에 관해 프록시(506)에 질의한다. 804에서, 프록시(504)는 적절한 기지국 ID가 존재하는지를 결정하기 위해 (아래의 도 9 및 도 10에 따라 생성되는) CBF(108)를 참조한다. 이어서, 프록시(506)는 "참" 또는 "거짓" 응답을 클라이언트(504)로 리턴한다(806).
[0036] 도 9 및 도 10은 프록시(506)와 데이터베이스(508) 사이의 신호 흐름들(900 및 1000)을 각각 예시한다. 신호 흐름들(900 및 1000)에서, CBF들은 프록시(506)(도 9 참조) 또는 데이터베이스(508)(도 10 참조)에 의해 파퓰레이팅된다. 이 신호 흐름들은 위에서 설명되고 도 3에서 예시되는 방법(300)과 대응한다. 신호 흐름(900)에서, 902에서, 프록시(506)는 데이터베이스(508)로부터 데이터세트를 요청하고, 데이터베이스(508)는 이어서, 904에서, 데이터세트를 프록시(506)에 전송한다. 906에서, 프록시(506)는 데이터베이스(508)에서의 데이터세트에 기반하여 최적의 암호학적 블룸 필터(108)를 생성하며, 이어서, 데이터베이스에서의 데이터세트 변화들에 기반하여 암호학적 블룸 필터의 데이터 엘리먼트들을 업데이트할 수 있다(908). 암호학적 블룸 필터의 업데이트는 블룸 필터에서 데이터 엘리먼트들을 삭제하는 것 및 블룸 필터에 데이터 엘리먼트들을 삽입하는 것 중 하나를 포함할 수 있다. 데이터가 CBF로부터 삭제되면, 해시 값들이 업데이트될 수 있고, 카운터가 감소될 수 있으며; 대안적으로, 전체 CBF가 재생성될 수 있다. 이로써, CBF들의 업데이트는 일반적으로 당업자에게 알려져 있어서, 그것은 본원에서 더 이상 설명되지 않을 것이다.
[0037] 신호 흐름(1000)은 CBF를 파퓰레이팅하기 위한 대안적 방법을 예시하고, 여기서, CBF는 데이터베이스(508)에서 생성된다. 1002에서, 데이터베이스(508)는, 데이터베이스에서의 데이터세트에 기반하여 최적의 암호학적 블룸 필터를 생성한다. 1004에서, 데이터베이스(508)는 데이터베이스에서의 데이터세트 변화들에 기반하여 암호학적 블룸 필터 데이터 엘리먼트들을 컴퓨팅하며, 컴퓨팅된 암호학적 블룸 필터 데이터 엘리먼트들을 프록시(506)에 전송한다(단계1006). 프록시(506)는 이제 CBF(108)에 저장된 필요한 데이터 엘리먼트들을 가지기 때문에, 도 11의 신호 다이어그램(1100)에 도시되는 바와 같이, 클라이언트(504)는 이어서, 데이터베이스 내의 기지국(502)의 존재에 관해 프록시(506)에 질의할 수 있다. 1102에서, 블라인드 시그니처 방식은, 사용자 디바이스(504)가 질의를 프록시(506)에 전송하기 이전에 질의된 엘리먼트(즉, 이 시나리오에서는 기지국)를 블라인드할 수 있도록 구성된다. 일단 1104에서 질의가 전송되면, 1106에서, 블라인드 시그니처가 제거될 수 있다. 위에서 표시된 바와 같이, 블라인드 시그니처 방식들이 당해 기술 분야에 알려져 있기 때문에, 그러한 방식의 구성은 본원에서 추가로 설명되지 않을 것이다. 1108에서, 프록시(506)는, 기지국(502)이 데이터베이스(508)의 일부로서 존재함 또는 기지국이 데이터베이스의 일부로서 존재하지 않음을 각각 표시하는 "참" 또는 "거짓" 응답을 사용자 디바이스(504)로 리턴한다. 프록시가 "참" 응답을 사용자 디바이스(504)로 리턴하면, 방법(700)은 아래에서 설명되는 도 12의 신호 다이어그램(1200)에 또한 도시되는 단계들(706-714)로 계속된다.
[0038] 신호 다이어그램(1200)에서의 1202에서, 사용자 디바이스(504)는 암호화된 클라이언트 값을 프록시(506)에 전송하고, 이는 이 시나리오에서 디바이스의 위치이다. 1204에서, 프록시(506)는 데이터베이스(508)로부터 기지국(502)의 위치를 리트리브한다. 1206에서, 프록시(506)는 동형 암호화를 사용하여, 암호화된 디바이스 위치 및 리트리브된 기지국 위치에 기반하여 컴퓨팅된 함수(제2 요청에서 디바이스에 의해 요청되는 바와 같음)를 결정하고, 그 세부사항들은 도 13에 대해 아래에서 추가로 설명된다. 1208에서, 프록시(506)는 암호화된 컴퓨팅된 함수를 클라이언트(504)에 전송한다.
[0039] 도 13은 위에서-설명된 방법(700)을 활용하여 예시적 거리 계산(1300)을 예시한다. 이 계산(1300)에서, 사용자 디바이스(504)는 위치 x를 가지며, 여기서, x = (123,543)이다. 기지국(502)은 위치 y를 가지며, 여기서, y = (3456,2219)이다. 위에서 설명된 안전한 2-자 통신 방법들을 사용하여 x와 y 사이의 거리를 컴퓨팅하기 위해, 컴퓨테이션은 디바이스/클라이언트(504)와 프록시(506) 사이에서 분할되어서, 프록시는 클라이언트의 포지션을 학습하지 못하며, 클라이언트는 거리 d만을 학습한다. 사용자 디바이스(504)는 자신의 위치를 프록시(506)에 전송하기 이전에 그 자신의 위치를 암호화하고, 프록시는 기지국의 암호화되지 않은 위치를 리트리브한다. 128-비트 키를 이용하는 Paillier 컴퓨테이션 방법(이는 암호화 계산을 위해 사용하는 하나의 잘 알려진 방법임)을 사용하여, 암호화된 거리 d는 다음의 함수를 사용하여 계산된다:
Figure 112018026646502-pct00001
속도를 위해 본 예에서 128-비트 키가 활용되었지만, 더 짧은 키들이 사용될 수 있다는 것이 인식된다. 위에서-식별된 거리 함수는 동형으로 암호화된 방식으로 거리를 컴퓨팅하는 일 예이고, 다른 함수들이 활용될 수 있다는 것이 인식된다. 추가로, Pailler 방식이 위에서 활용되었지만, 당업자들에게 알려져 있는 El Gamal 또는 다른 동형 암호화 방식들과 같은 대안적 암호화 방식들이 활용될 수 있다는 것이 인식된다. 계산(1300)은 3823.71089388인, 기지국(502)과 사용자 디바이스(504) 사이의 Euclidian 거리를 초래한다. 기지국(502)과 디바이스(504) 사이의 거리를 컴퓨팅하기 위해 위에서-식별된 방법들을 활용함으로써, 프록시는 디바이스의 포지션에 대해 어떠한 것도 학습하지 못하고, 컴퓨팅된 거리를 수신하는 유일한 컴포넌트는 디바이스이다. 데이터베이스(508)는, 프록시(506)가 기지국 위치를 리트리브할 때 디바이스 질의의 근원을 학습하지 못한다. 따라서, 디바이스/클라이언트는 전체 거리 계산 동안 자신의 프라버시를 유지한다.
[0040] 본 개시내용은 네트워크에서의 데이터베이스로부터 클라이언트의 요청들 및 결과적인 컴퓨팅된 함수를 격리하기 위해 암호학적 블룸 필터들과 동형 암호화의 조합을 사용함으로써 안전한 양-방향 통신을 제공하기 위한 방법 및 시스템을 제공한다. 본 개시내용은 프록시도 데이터베이스도 클라이언트의 위치를 알지 못하도록 클라이언트의 비공개를 유지한다. 본 시스템 및 방법에서의 신뢰성 있는 프록시의 포함은 또한, 프록시가 클라이언트의 질의 및 이의 컨텐츠들의 근원을 숨기므로, 데이터베이스로부터의 클라이언트 보호를 제공한다. 구체적으로, 우리의 방법은 특정 인덱스들(블룸 필터들로서) 및 특정 함수들(동형 암호화 기법들을 사용하여 구현됨)을 신뢰성 있는 프록시로 추출함으로써 기존의 신뢰성 없는 데이터베이스를 "랩핑(wrap)"하기 위한 메커니즘을 제공한다. 위에서 명시한 바와 같이, '신뢰'는 프록시가 어떠한 정보도 데이터베이스에 나타내지 않거나 또는 가능한 한 적은 정보를 데이터베이스에 나타낼뿐만 아니라 클라이언트의 아이덴티티를 숨기는 것을 의미한다. 신뢰성 있는 프록시는, 예컨대, 위에서 상세하게 설명된 HE 및 암호학적 BF들에 의해, 클라이언트의 컴퓨테이션들에 대해 가능한 한 적게 학습한다. 신뢰성 있는 프록시 내의 동형 암호화 및 암호학적 블룸 필터들이 기존 데이터베이스를 "랩핑"하여서 기존 데이터베이스가 클라이언트의 위치/질의들에 대한 지식을 획득하는 것을 방지하기 때문에, 본 시스템 및 방법들이 또한 기존 데이터베이스들에 적용될 수 있다. 추가로, 사전 정의된/최적화된 API가 이미 제공되었다고 가정하면, 본 방법들은 기존 시스템들에 적용될 수 있다.
[0041] 본 개시내용의 실시예들은 (하나 또는 그 초과의 프로세서들에 의해 실행되는) 소프트웨어, 하드웨어(예컨대, 주문형 집적 회로), 또는 소프트웨어와 하드웨어의 조합으로 구현될 수 있다. 예시적 실시예에서, 소프트웨어(예컨대, 애플리케이션 로직, 명령 세트)는 다양한 종래의 비-일시적 컴퓨터-판독가능한 매체들 중 임의의 것 상에 유지된다. 이 문서의 맥락에서, 비-일시적 "컴퓨터-판독가능한 매체"는 컴퓨터와 같은 명령 실행 시스템, 장치 또는 디바이스에 의해 또는 그와 연결하여 사용하기 위한 명령들을 포함, 저장, 통신, 전파 또는 전송할 수 있는 임의의 매체들 또는 수단일 수 있다. 비-일시적 컴퓨터-판독가능한 매체는 컴퓨터와 같은 명령 실행 시스템, 장치 또는 디바이스에 의해 또는 그와 연결하여 사용하기 위해 명령들을 포함 또는 저장할 수 있는 임의의 매체들 또는 수단일 수 있는 컴퓨터-판독가능한 저장 매체(예컨대, 메모리 또는 다른 디바이스)를 포함할 수 있다. 이로써, 본 개시내용은 컴퓨터와 함께 사용하기 위해 컴퓨터 프로그램 코드가 구현된 컴퓨터-판독가능한 저장 매체를 포함하는 컴퓨터 프로그램 제품을 포함할 수 있으며, 컴퓨터 프로그램 코드는 앞서 설명된 바와 같은 방법들 및 그 변형들 중 임의의 것을 수행하기 위한 코드를 포함한다. 추가로, 본 개시내용은 또한, 하나 또는 그 초과의 프로세서들, 및 컴퓨터 프로그램 코드를 포함하는 하나 또는 그 초과의 메모리들을 포함하는 장치를 포함할 수 있으며, 하나 또는 그 초과의 메모리들 및 컴퓨터 프로그램 코드는 하나 또는 그 초과의 프로세서들과 함께, 장치로 하여금, 앞서 설명된 바와 같은 방법들 및 그 변형들 중 임의의 것을 수행하게 하도록 구성된다.
[0042] 원한다면, 본원에서 논의되는 상이한 기능들은 상이한 순서로 그리고/또는 서로 동시에 수행될 수 있다. 게다가, 원한다면, 위에서-설명된 기능들 중 하나 또는 그 초과의 기능들은 선택적일 수 있거나 또는 결합될 수 있다.
[0043] 본 개시내용의 다양한 양상들이 독립항들에 제시되지만, 본 발명의 다른 양상들은 청구항들에 명시적으로 제시되는 조합들만이 아니라, 설명되는 실시예들, 및/또는 종속항들로부터의 특징들과 독립항들의 특징들의 다른 조합들을 포함한다.
[0044] 또한, 위의 내용은 본 개시내용의 예시적 실시예들을 설명하지만, 이 설명들은 제한적 의미로 보아서는 안 된다는 점이 본원에서 주목된다. 오히려, 첨부된 청구항들에서 정의되는 바와 같이, 본 개시내용의 범위로부터 벗어나지 않으면서 이루어질 수 있는 몇몇 변형들 및 수정들이 존재한다.
[0045] 당업자는 위에서 논의된 바와 같은 본 개시내용이 개시되는 것들과 상이한 구성들의 하드웨어 엘리먼트들로 그리고/또는 상이한 순서의 단계들로 실시될 수 있다는 것을 용이하게 이해할 것이다. 따라서, 본 개시내용은 이 바람직한 실시예들에 기반하여 설명되지만, 본 발명의 사상 및 범위 내에 유지되면서 특정 수정들, 변형들 및 대안적 구성들이 명백할 것이라는 것이 당업자들에게 명백할 것이다. 그에 따라서, 본 개시내용의 범위들 또는 경계들을 결정하기 위해, 첨부된 청구항들에 대한 참조가 이루어져야 한다.
[0046] 본 명세서 및/또는 도시한 도면들에서 발견될 수 있는 다음의 약어들은 다음과 같이 정의된다:
CBF Cryptographic Bloom Filter
HE Homomorphic Encryption
STC Secure Two-Party Communication

Claims (20)

  1. 네트워크에서의 방법으로서,
    메모리 및 프로세서를 갖는 클라이언트에서, 프록시에 제1 요청을 전송하는 단계 ― 상기 프록시는 메모리 및 프로세서를 포함함 ―;
    상기 클라이언트에서, 상기 프록시로부터 제1 응답을 수신하는 단계;
    상기 클라이언트에서, 상기 프록시에 제2 요청을 전송하는 단계;
    상기 제2 요청에 대한 응답으로, 상기 프록시로부터, 상기 클라이언트에 암호화된 컴퓨팅된 함수를 전송하는 단계; 및
    상기 클라이언트에서 상기 컴퓨팅된 함수를 암호화해제하는 단계를 포함하고,
    상기 방법은, 상기 클라이언트에 암호화된 컴퓨팅된 함수를 전송하기 이전에:
    상기 클라이언트에서, 상기 프록시에 암호화된 클라이언트 값을 전송하는 단계;
    상기 프록시에서, 상기 프록시와 통신하는 데이터베이스로부터 컴포넌트 값을 리트리브하는 단계 ― 상기 컴포넌트 값은 상기 네트워크에서의 컴포넌트에 기초함 ―; 및
    상기 프록시에서, 상기 암호화된 클라이언트 값 및 상기 리트리브된 컴포넌트 값에 기초하여 상기 컴퓨팅된 함수를 결정하는 단계를 더 포함하는, 네트워크에서의 방법.
  2. 제1 항에 있어서,
    상기 제1 요청은 상기 프록시와 통신하는 데이터베이스의 인덱싱을 요청하는 것을 포함하는, 네트워크에서의 방법.
  3. 제2 항에 있어서,
    상기 데이터베이스의 인덱싱은 상기 프록시 내의 암호학적 블룸 필터(cryptographic bloom filter)에서 수행되는, 네트워크에서의 방법.
  4. 제3 항에 있어서,
    상기 제1 요청은:
    상기 프록시에서, 상기 데이터베이스에서의 데이터세트에 기초하여 최적의 암호학적 블룸 필터를 생성하는 것; 및
    상기 프록시에서, 상기 데이터베이스에서의 데이터세트 변화들에 기초하여 상기 암호학적 블룸 필터에서 데이터 엘리먼트들을 업데이트하는 것
    을 더 포함하고,
    상기 암호학적 블룸 필터를 업데이트하는 것은 상기 블룸 필터에서 데이터 엘리먼트들을 삭제하는 것 및 상기 블룸 필터에 데이터 엘리먼트들을 삽입하는 것 중 하나를 포함하는, 네트워크에서의 방법.
  5. 제3 항에 있어서,
    상기 제1 요청은:
    상기 데이터베이스에서, 상기 데이터베이스에서의 데이터세트에 기초하여 최적의 암호학적 블룸 필터를 생성하는 것;
    상기 데이터베이스에서, 상기 데이터베이스에서의 데이터세트 변화들에 기초하여 암호학적 블룸 필터 데이터 엘리먼트들을 컴퓨팅하는 것; 및
    상기 프록시에 상기 컴퓨팅된 암호학적 블룸 필터 데이터 엘리먼트들을 전송하는 것
    을 더 포함하는, 네트워크에서의 방법.
  6. 제1 항에 있어서,
    상기 제2 요청은 상기 프록시에 의한 함수의 컴퓨팅을 요청하는 것을 포함하는, 네트워크에서의 방법.
  7. 제6 항에 있어서,
    상기 함수의 컴퓨팅은 동형 암호화(homomorphic encryption)를 사용하여 상기 프록시에 의해 수행되는, 네트워크에서의 방법.
  8. 삭제
  9. 제1 항에 있어서,
    상기 데이터베이스로부터 리트리브되는 컴포넌트 값은 텍스트 데이터(textual data)의 스트링, 위치, 시간, 및 거리 중 하나인, 네트워크에서의 방법.
  10. 시스템으로서,
    메모리 및 프로세서를 포함하는 네트워크 컴포넌트;
    상기 네트워크 컴포넌트와 통신하는 클라이언트 ― 상기 클라이언트는 메모리 및 프로세서를 포함함 ―;
    상기 클라이언트와 통신하는 프록시; 및
    상기 프록시와 통신하는 데이터베이스를 포함하고,
    상기 시스템은:
    상기 클라이언트에서, 상기 프록시에 제1 요청을 전송하고;
    상기 클라이언트에서, 상기 프록시로부터 제1 응답을 수신하고;
    상기 클라이언트에서, 상기 프록시에 제2 요청을 전송하고;
    상기 프록시로부터, 상기 클라이언트에 암호화된 컴퓨팅된 함수를 전송하고; 그리고
    상기 클라이언트에서 상기 컴퓨팅된 함수를 암호화해제하도록
    구성되고,
    상기 시스템은, 상기 클라이언트에 암호화된 컴퓨팅된 함수를 전송하기 이전에:
    상기 클라이언트에서, 상기 프록시에 암호화된 클라이언트 값을 전송하고;
    상기 프록시에서, 상기 프록시와 통신하는 데이터베이스로부터 컴포넌트 값을 리트리브하고 ― 상기 컴포넌트 값은 상기 네트워크에서의 컴포넌트에 기초함 ―; 그리고
    상기 프록시에서, 상기 암호화된 클라이언트 값 및 상기 리트리브된 컴포넌트 값에 기초하여 상기 컴퓨팅된 함수를 결정하도록
    추가로 구성되는, 시스템.
  11. 제10 항에 있어서,
    상기 네트워크 컴포넌트는 기지국인, 시스템.
  12. 제10 항에 있어서,
    상기 클라이언트는 단지 상기 프록시와만 통신하는, 시스템.
  13. 제10 항에 있어서,
    상기 프록시는 상기 프록시 및 상기 데이터베이스 둘 모두와 통신하는, 시스템.
  14. 방법으로서,
    메모리 및 프로세서를 갖는 클라이언트에서, 프록시에 제1 요청을 전송하는 단계 ― 상기 프록시는 메모리 및 프로세서를 포함함 ―;
    상기 클라이언트에서, 상기 프록시로부터 제1 응답을 수신하는 단계;
    상기 클라이언트에서, 상기 프록시에 암호화된 클라이언트 값을 전송하는 단계;
    상기 프록시에서, 상기 프록시와 통신하는 데이터베이스로부터 컴포넌트 값을 리트리브하는 단계 ― 상기 컴포넌트 값은 네트워크에서의 컴포넌트에 기초함 ―;
    상기 프록시에서, 상기 암호화된 클라이언트 값 및 상기 리트리브된 컴포넌트 값에 기초하여 컴퓨팅된 함수를 결정하는 단계;
    상기 클라이언트에서, 상기 프록시에 제2 요청을 전송하는 단계;
    상기 제2 요청에 대한 응답으로, 상기 프록시로부터, 상기 클라이언트에 암호화된 컴퓨팅된 함수를 전송하는 단계; 및
    상기 클라이언트에서 상기 컴퓨팅된 함수를 암호화해제하는 단계를 포함하는, 방법.
  15. 제14 항에 있어서,
    상기 프록시에 암호화된 클라이언트 값을 전송하는 단계는 상기 프록시에 클라이언트 위치 값을 전송하는 단계를 포함하고; 그리고
    상기 데이터베이스로부터 컴포넌트 값을 리트리브하는 단계는 네트워크 컴포넌트에 기초하여 근접도 값을 리트리브하는 단계를 포함하고,
    상기 근접도 값은 상기 클라이언트에 대한 상기 네트워크 컴포넌트의 근접도를 포함하는, 방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020187007647A 2015-08-18 2016-08-02 데이터베이스 질의를 위한 방법 및 시스템 KR102103135B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562206414P 2015-08-18 2015-08-18
US62/206,414 2015-08-18
PCT/EP2016/068387 WO2017029108A1 (en) 2015-08-18 2016-08-02 Method and system for database queries

Publications (2)

Publication Number Publication Date
KR20180042327A KR20180042327A (ko) 2018-04-25
KR102103135B1 true KR102103135B1 (ko) 2020-04-23

Family

ID=56557704

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187007647A KR102103135B1 (ko) 2015-08-18 2016-08-02 데이터베이스 질의를 위한 방법 및 시스템

Country Status (6)

Country Link
US (1) US20180248684A1 (ko)
EP (1) EP3338426A1 (ko)
JP (1) JP6732887B2 (ko)
KR (1) KR102103135B1 (ko)
CN (1) CN108141462B (ko)
WO (1) WO2017029108A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017087635A1 (en) * 2015-11-18 2017-05-26 Cabot Corporation Inkjet ink compositions
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
US11515997B2 (en) * 2020-06-19 2022-11-29 Duality Technologies, Inc. Privacy enhanced proximity tracker

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012123614A (ja) * 2010-12-08 2012-06-28 Hitachi Ltd 検索可能暗号処理システム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437550B2 (en) * 1999-12-02 2008-10-14 Ponoi Corp. System for providing session-based network privacy, private, persistent storage, and discretionary access control for sharing private data
JP2004312607A (ja) * 2003-04-10 2004-11-04 Nec Corp 無線lanエリア検索システムおよび無線lanエリア検索方法
US7548908B2 (en) * 2005-06-24 2009-06-16 Yahoo! Inc. Dynamic bloom filter for caching query results
JP4888945B2 (ja) * 2005-12-27 2012-02-29 キヤノンマーケティングジャパン株式会社 電子帳票システム、電子帳票サーバ、クライアント端末、情報提供方法、情報利用方法、サーバプログラム、及びクライアント端末プログラム
US8763071B2 (en) * 2008-07-24 2014-06-24 Zscaler, Inc. Systems and methods for mobile application security classification and enforcement
US8145806B2 (en) * 2008-09-19 2012-03-27 Oracle International Corporation Storage-side storage request management
JP2010266952A (ja) * 2009-05-12 2010-11-25 Nec Corp メンバ管理装置、メンバ管理システム、メンバ管理プログラム、および、メンバ管理方法
CN101848245B (zh) * 2010-02-05 2012-12-19 德讯科技股份有限公司 基于ssl/xml的数据库访问代理方法及系统
US9667713B2 (en) * 2011-03-21 2017-05-30 Apple Inc. Apparatus and method for managing peer-to-peer connections between different service providers
CN102364474B (zh) * 2011-11-17 2014-08-20 中国科学院计算技术研究所 用于机群文件系统的元数据存储系统和管理方法
KR101311031B1 (ko) * 2012-02-01 2013-09-24 이화여자대학교 산학협력단 검증 블룸 필터를 포함하는 멀티 블룸 필터
EP2709028A1 (en) * 2012-09-14 2014-03-19 Ecole Polytechnique Fédérale de Lausanne (EPFL) Privacy-enhancing technologies for medical tests using genomic data
EP2951945B1 (en) * 2013-01-29 2020-09-09 NEC Corporation Method and system for providing encrypted data for searching of information therein and a method and system for searching of information on encrypted data
US9608963B2 (en) * 2015-04-24 2017-03-28 Cisco Technology, Inc. Scalable intermediate network device leveraging SSL session ticket extension
CN107016296B (zh) * 2017-01-18 2020-05-26 阿里巴巴集团控股有限公司 一种数据索引构建、数据读取的方法、装置及电子设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012123614A (ja) * 2010-12-08 2012-06-28 Hitachi Ltd 検索可能暗号処理システム

Also Published As

Publication number Publication date
US20180248684A1 (en) 2018-08-30
EP3338426A1 (en) 2018-06-27
WO2017029108A1 (en) 2017-02-23
JP6732887B2 (ja) 2020-07-29
JP2018525678A (ja) 2018-09-06
KR20180042327A (ko) 2018-04-25
CN108141462A (zh) 2018-06-08
CN108141462B (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
US10880077B2 (en) Processing blockchain data based on smart contract operations executed in a trusted execution environment
US10699006B1 (en) Processing and storing blockchain data under a trusted execution environment
JP4958246B2 (ja) 高速検索可能な暗号化のための方法、装置およびシステム
KR101190059B1 (ko) 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법
US10979403B1 (en) Cryptographic configuration enforcement
JP5084817B2 (ja) 暗号文の索引付けおよび検索方法と装置
US10635824B1 (en) Methods and apparatus for private set membership using aggregation for reduced communications
US11159498B1 (en) Information security proxy service
WO2017019201A2 (en) Cryptographic assurances of data integrity for data crossing trust boundaries
JP6542883B2 (ja) データベースシステム、データベース処理方法
US20190318118A1 (en) Secure encrypted document retrieval
EP4185978B1 (en) Encrypted information retrieval
KR102103135B1 (ko) 데이터베이스 질의를 위한 방법 및 시스템
US10713377B2 (en) System of shared secure data storage and management
CN114840739B (zh) 信息检索方法、装置、电子设备及存储介质
Li et al. Repetitive, Oblivious, and Unlinkable S k NN Over Encrypted-and-Updated Data on Cloud
KR20210046578A (ko) 데이터를 보호하기 위한 시스템 및 방법
Lee et al. A study of practical proxy reencryption with a keyword search scheme considering cloud storage structure
CN113472728B (zh) 一种通信方法和装置
Suga et al. Character‐based symmetric searchable encryption and its implementation and experiment on mobile devices
KR20230096626A (ko) 속성 기반 접근 제어를 지원하는 실시간 IoT 데이터 공유 시스템 및 그 방법
CN118551122A (zh) 一种数据隐匿查询方法、装置、电子设备和存储介质
CN118467604A (zh) 数据查询方法、装置、系统、设备以及存储介质
Abraham et al. A comparative survey on various provable data possession schemes of integrity verification in single and multi cloud environments
Ertaul et al. Implementation of Oblivious Bloom Intersection in Private Set Intersection Protocol (PSI)

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant