KR20210082019A - 교집합 연산을 위한 장치 및 방법 - Google Patents

교집합 연산을 위한 장치 및 방법 Download PDF

Info

Publication number
KR20210082019A
KR20210082019A KR1020190174543A KR20190174543A KR20210082019A KR 20210082019 A KR20210082019 A KR 20210082019A KR 1020190174543 A KR1020190174543 A KR 1020190174543A KR 20190174543 A KR20190174543 A KR 20190174543A KR 20210082019 A KR20210082019 A KR 20210082019A
Authority
KR
South Korea
Prior art keywords
vector
subset
values
ciphertext
elements
Prior art date
Application number
KR1020190174543A
Other languages
English (en)
Inventor
정진혁
이주희
김은경
최규영
문덕재
윤효진
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020190174543A priority Critical patent/KR20210082019A/ko
Priority to US17/079,982 priority patent/US11329798B2/en
Priority to EP20204811.2A priority patent/EP3843319A1/en
Publication of KR20210082019A publication Critical patent/KR20210082019A/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

교집합 연산을 위한 장치 및 방법이 개시된다. 일 실시예에 따른 교집합 연산 장치는, 암호화 장치로부터 복수의 원소를 포함하는 전체 집합에 대한 제1 부분 집합에 대응되는 제1 벡터에 대한 암호문을 획득하는 암호문 획득부; 상기 전체 집합에 대한 제2 부분 집합에 대응되는 제2 벡터를 생성하는 변환부; 상기 제1 벡터에 대한 암호문 및 상기 제2 벡터에 기초하여, 상기 제1 부분 집합과 상기 제2 부분 집합의 교집합에 대응되는 제3 벡터에 대한 암호문을 생성하는 연산부; 및 상기 제3 벡터에 대한 암호문을 상기 암호화 장치로 제공하는 암호문 제공부를 포함한다.

Description

교집합 연산을 위한 장치 및 방법{APPARATUS AND METHOD FOR SET INTERSECTION OPERATION}
개시되는 실시예들은 교집합 연산을 지원하는 암호 기술과 관련된다.
사용자 데이터에 대한 프라이버시 이슈가 날로 중요해지면서 유럽의 GDPR과 같은 개인정보보호 관련 법들이 생겨나고 있다. 그러나 데이터 소유자 또는 수집가들은 이런 개인정보보호 이슈 없이 관련 정보를 이용한 서비스를 제공하거나 이용하기에는 여러 어려움이 있다. 이러한 이유로 개인정보보호를 위한 프라이버시 보호 기술이 근래 많은 관심을 받고 있는 가운데, 데이터를 노출하지 않고 암호화된 상태로 데이터의 일치 여부를 판단하는 PSI(Private Set Intersection) 기술에 대한 연구가 활발히 이루어지고 있다.
PSI 기술은 보통 다자간 연산(multi-party computation, MPC)의 한 예로서 두 개체가 각각 보유한 집합을 노출시키지 않고 서로 겹치는 교집합(공통원소)을 찾아내는 것으로 기존 방법으로 해시 기반의 PSI, 공개키 암호 기반의 PSI, 서킷 기반(Circuit-based)의 PSI, OT(Oblivious Transfer) 기반의 PSI 등이 있다. 그러나, 이러한 종래 기술들은 비교 대상 증가할수록 교집합 연산을 위한 두 개체 사이의 데이터 전송량 또는 연산량이 크게 증가하게 되므로, 큰 데이터에 대한 교집합 연산이 불가능하거나 연산 속도가 지나치게 느리다는 문제점이 있다.
대한민국 등록특허 제10-1947871호 (2019. 02. 13. 공고)
개시되는 실시예들은 교집합 연산을 위한 장치 및 방법을 제공하기 위한 것이다.
일 실시예에 따른 암호화 장치는, 복수의 원소를 포함하는 전체 집합에 대한 제1 부분 집합에 대응되는 제1 벡터를 생성하는 변환부; 상기 제1 벡터에 대한 암호문을 생성하고, 상기 암호문을 교집합 연산 장치로 제공하는 암호화부; 상기 교집합 연산 장치로부터 상기 제1 부분 집합과 상기 전체 집합에 대한 제2 부분 집합의 교집합에 대응되는 제3 벡터에 대한 암호문을 수신하는 암호문 획득부; 및 상기 제3 벡터에 대한 암호문을 복호화하고, 상기 전체 집합 및 제3 벡터에 기초하여 상기 교집합을 결정하는 교집합 결정부를 포함하고, 상기 제3 벡터에 대한 암호문은, 상기 제1 벡터에 대한 암호문 및 상기 제2 부분 집합에 대응되는 제2 벡터에 기초하여 생성된다.
상기 제3 벡터에 대한 암호문은, 상기 제1 벡터에 대한 암호문을 암호화된 상태로 상기 제2 벡터와 연산하여 생성될 수 있다.
상기 제1 벡터는, 상기 복수의 원소 각각에 대응되는 n(이때, n은 상기 복수의 원소의 개수)개의 값을 포함하되, 상기 n개의 값 중 상기 제1 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이고, 상기 제2 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 제2 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이며, 상기 제3 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 교집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다.
상기 전체 집합은, n개의 데이터를 원소로 포함하는 집합 또는 각각 m(이때, m은 m≥2를 만족하는 자연수)개의 원소를 포함하는 n개의 집합을 원소로 포함하는 집합일 수 있다.
상기 제3 벡터는, 상기 제1 벡터 및 상기 제2 벡터 사이의 요소별 곱셈 결과와 동일할 수 있다.
일 실시예에 따른 교집합 연산 장치는, 암호화 장치로부터 복수의 원소를 포함하는 전체 집합에 대한 제1 부분 집합에 대응되는 제1 벡터에 대한 암호문을 획득하는 암호문 획득부; 상기 전체 집합에 대한 제2 부분 집합에 대응되는 제2 벡터를 생성하는 변환부; 상기 제1 벡터에 대한 암호문 및 상기 제2 벡터에 기초하여, 상기 제1 부분 집합과 상기 제2 부분 집합의 교집합에 대응되는 제3 벡터에 대한 암호문을 생성하는 연산부; 및 상기 제3 벡터에 대한 암호문을 상기 암호화 장치로 제공하는 암호문 제공부를 포함한다.
상기 연산부는, 상기 제1 벡터에 대한 암호문을 암호화된 상태로 상기 제2 벡터와 연산하여 상기 제3 벡터에 대한 암호문을 생성할 수 있다.
상기 제1 벡터는, 상기 복수의 원소 각각에 대응되는 n(이때, n은 상기 복수의 원소의 개수)개의 값을 포함하되, 상기 n개의 값 중 상기 제1 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이고, 상기 제2 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 제2 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이며, 상기 제3 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 교집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다.
상기 전체 집합은, n개의 데이터를 원소로 포함하는 집합 또는 각각 m(이때, m은 m≥2를 만족하는 자연수)개의 원소를 포함하는 n개의 집합을 원소로 포함하는 집합일 수 있다.
상기 제3 벡터는, 상기 제1 벡터 및 상기 제2 벡터 사이의 요소별 곱셈 결과와 동일할 수 있다.
일 실시예에 따른 암호화 방법은, 복수의 원소를 포함하는 전체 집합에 대한 제1 부분 집합에 대응되는 제1 벡터를 생성하는 단계; 상기 제1 벡터에 대한 암호문을 생성하는 단계; 상기 암호문을 교집합 연산 장치로 제공하는 단계; 상기 교집합 연산 장치로부터 상기 제1 부분 집합과 상기 전체 집합에 대한 제2 부분 집합의 교집합에 대응되는 제3 벡터에 대한 암호문을 수신하는 단계; 상기 제3 벡터에 대한 암호문을 복호화하는 단계; 및 상기 전체 집합 및 제3 벡터에 기초하여 상기 교집합을 결정하는 단계를 포함하고, 상기 제3 벡터에 대한 암호문은, 상기 제1 벡터에 대한 암호문 및 상기 제2 부분 집합에 대응되는 제2 벡터에 기초하여 생성된다.
상기 제3 벡터에 대한 암호문은, 상기 제1 벡터에 대한 암호문을 암호화된 상태로 상기 제2 벡터와 연산하여 생성될 수 있다.
상기 제1 벡터는, 상기 복수의 원소 각각에 대응되는 n(이때, n은 상기 복수의 원소의 개수)개의 값을 포함하되, 상기 n개의 값 중 상기 제1 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이고, 상기 제2 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 제2 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이며, 상기 제3 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 교집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다.
상기 전체 집합은, n개의 데이터를 원소로 포함하는 집합 또는 각각 m(이때, m은 m≥2를 만족하는 자연수)개의 원소를 포함하는 n개의 집합을 원소로 포함하는 집합일 수 있다.
상기 제3 벡터는, 상기 제1 벡터 및 상기 제2 벡터 사이의 요소별 곱셈 결과와 동일할 수 있다.
일 실시예에 따른 교집합 연산 방법은, 암호화 장치로부터 복수의 원소를 포함하는 전체 집합에 대한 제1 부분 집합에 대응되는 제1 벡터에 대한 암호문을 획득하는 단계; 상기 전체 집합에 대한 제2 부분 집합에 대응되는 제2 벡터를 생성하는 단계; 상기 제1 벡터에 대한 암호문 및 상기 제2 벡터에 기초하여, 상기 제1 부분 집합과 상기 제2 부분 집합의 교집합에 대응되는 제3 벡터에 대한 암호문을 생성하는 단계; 및 상기 제3 벡터에 대한 암호문을 상기 암호화 장치로 제공하는 단계를 포함한다.
상기 암호문을 생성하는 단계는, 상기 제1 벡터에 대한 암호문을 암호화된 상태로 상기 제2 벡터와 연산하여 상기 제3 벡터에 대한 암호문을 생성할 수 있다.
상기 제1 벡터는, 상기 복수의 원소 각각에 대응되는 n(이때, n은 상기 복수의 원소의 개수)개의 값을 포함하되, 상기 n개의 값 중 상기 제1 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이고, 상기 제2 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 제2 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이며, 상기 제3 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 교집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다.
상기 전체 집합은, n개의 데이터를 원소로 포함하는 집합 또는 각각 m(이때, m은 m≥2를 만족하는 자연수)개의 원소를 포함하는 n개의 집합을 원소로 포함하는 집합일 수 있다.
상기 제3 벡터는, 상기 제1 벡터 및 상기 제2 벡터 사이의 요소별 곱셈 결과와 동일할 수 있다.
본 발명의 실시예들에 따르면, 두 개체가 보유하고 있는 데이터를 상호간에 노출하지 않고 두 개체가 보유하고 있는 데이터 사이의 교집합을 생성하되, 교집합 연산을 위한 두 개체 사이의 전송량을 종래 PSI 기술보다 적거나 동일한 수준으로 유지하면서 연산량을 줄일 수 있으므로, 데이터의 양이 증가하더라도 효율적인 교집합 연산을 가능케 한다.
도 1은 일 실시예에 따른 교집합 연산 시스템의 구성도
도 2는 일 실시예에 따른 암호화 장치의 구성도
도 3은 일 실시예에 따른 교집합 연산 장치의 구성도
도 4는 일 실시예에 따라 복수의 원소를 포함하는 집합을 반복 분할하여 생성되는 부분 집합들 사이의 관계를 수형도(tree diagram)로 나타낸 도면
도 5는 일 실시예에 따라 암호화 장치와 교집합 연산 장치 사이에서 수행되는 교집합 획득 과정을 설명하기 위한 절차도
도 6은 다른 실시예에 따라 암호화 장치와 교집합 연산 장치 사이에서 수행되는 교집합 획득 과정을 설명하기 위한 절차도
도 7은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 일 실시예에 따른 교집합 연산 시스템의 구성도이다.
도 1을 참조하면, 일 실시예에 따른 교집합 연산 시스템(100)은 암호화 장치(110) 및 교집합 연산 장치(120)를 포함한다.
교집합 연산 시스템(100)은 암호화 장치(110)와 교집합 연산 장치(120) 각각이 보유한 데이터를 상대방에게 직접적으로 노출시키지 않으면서 암호화 장치(110)가 보유한 데이터와 교집합 연산 장치(120)가 보유한 데이터 사이의 교집합을 생성할 수 있도록 하기 위한 시스템이다.
구체적으로, 암호화 장치(110)와 교집합 연산 장치(120)는 각각 전체 집합(universal set)에 속하는 부분 집합을 보유할 수 있다. 이때, 전체 집합은 암호화 장치(110)와 교집합 연산 장치(120) 사이에 사전 공유되거나 상호 합의를 통해 결정될 수 있다.
한편, 암호화 장치(110)는 전체 집합에 기초하여 전체 집합에 대한 제1 부분 집합에 대응되는 제1 벡터를 생성한 후, 생성된 제1 벡터에 대한 암호문을 생성할 수 있다. 또한, 암호화 장치(110)는 생성된 암호문을 교집합 연산 장치(120)로 제공하여 교집합 연산 장치(120)로 전체 집합에 대한 제2 부분 집합과 제1 부분 집합 사이의 교집합 생성을 요청할 수 있다.
교집합 연산 장치(120)는 전체 집합에 기초하여 전체 집합에 대한 제2 부분 집합에 대응되는 제2 벡터를 생성할 수 있다. 또한, 교집합 연산 장치(120)는 생성된 제2 벡터와 암호화 장치(110)로부터 수신된 암호문 사이의 연산을 통해 제1 부분 집합과 제2 부분 집합에 대한 교집합에 대응되는 제3 벡터에 대한 암호문을 생성하고, 생성된 암호문을 암호화 장치(110)로 제공할 수 있다.
한편, 암호화 장치(110)는 교집합 연산 장치(120)로부터 제3 벡터에 대한 암호문을 수신한 경우, 수신된 암호문을 복호화하여 제3 벡터를 생성하고, 전체 집합 및 제3 벡터에 기초하여, 제1 부분 집합과 제2 부분 집합의 교집합을 결정할 수 있다.
도 2는 일 실시예에 따른 암호화 장치의 구성도이다.
도 2를 참조하면, 일 실시예에 따른 암호화 장치(110)는 변환부(111), 암호화부(112), 암호문 획득부(113) 및 교집합 결정부(114)를 포함한다.
변환부(111)는 복수의 원소를 포함하는 전체 집합에 기초하여, 전체 집합에 대한 제1 부분 집합에 대응되는 제1 벡터를 생성한다.
이때, 일 실시예에 따르면, 전체 집합은 암호화 장치(110)와 교집합 연산 장치(120) 사이에 사전 공유되거나 상호 합의를 통해 결정될 수 있다.
또한, 일 실시예에 따르면, 전체 집합은 n(이때, n은 n≥2를 만족하는 자연수)개의 데이터를 원소로 포함하는 집합 또는 각각 m(이때, m은 m≥2를 만족하는 자연수)개의 원소를 포함하는 n개의 집합을 원소로 포함하는 집합일 수 있다.
예를 들어, 10개의 수치 데이터를 원소를 포함하는 임의의 집합 S={x1, x2, x3, x4, x5, x6, x7, x8, x9, x10}를 가정하면, 전체 집합 U는 집합 S 그 자체(즉, U=S)일 수 있다. 이 경우, 전체 집합에 대한 제1 부분 집합은 예를 들어, 집합 S에 포함된 원소 중 하나 이상을 포함하는 집합(예를 들어, {x1, x3})일 수 있다.
다른 예로, 전체 집합 U는 예를 들어, S1={x1, x2}, S2={x3, x4}, S3={x5, x6}, S4={x7, x8} 및 S5={x9, x10}와 같이 상술한 집합 S를 원소가 겹치지 않도록 분할하여 생성된 복수의 집합 각각을 원소로 포함하는 집합일 수 있다. 즉, 이 경우, 전체 집합 U는 U={S1, S2, S3, S4, S5}일 수 있으며, 제1 부분 집합은 전체 집합 U에 포함된 원소 중 하나 이상을 포함하는 집합(예를 들어, {S1, S4})일 수 있다.
또 다른 예로, 전체 집합 U는 상술한 집합 S를 분할하여 생성된 집합 S1, S2, S3, S4 및 S5 중 하나일 수 있다. 예를 들어, 전체 집합 U가 U=S1={x1, x2}인 경우, 제1 부분 집합은 집합 S1에 포함된 원소 중 하나 이상을 포함하는 집합(예를 들어, {x2})일 수 있다.
한편, 일 실시예에 따르면, 전체 집합에 n개의 원소가 포함되어 있는 경우, 제1 부분 집합에 대응되는 제1 벡터는 n개의 원소 각각에 대응되는 n개의 값을 포함하는 n차원의 벡터일 수 있다. 구체적으로, 제1 벡터는 전체 집합에 포함된 n개의 원소 각각에 대응되는 n개의 값을 포함하되, n개의 값 중 제1 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다.
예를 들어, 전체 집합이 U={x1, x2, x3, x4, x5, x6, x7, x8, x9, x10}이고, 제1 부분 집합이 M1={x1, x5, x7}인 경우를 가정하자. 이 경우, 제1 부분 집합에 대응되는 제1 벡터
Figure pat00001
는 예를 들어,
Figure pat00002
과 같이 전체 집합 U에 포함된 각 원소에 대응되는 10개의 값을 포함하고, 10개의 값 중 제1 부분 집합에 포함된 원소인 x1, x5 및 x7 각각에 대응되는 값이 1이고 나머지 값은 0인 벡터일 수 있다.
암호화부(112)는 제1 부분 집합에 대응되는 제1 벡터에 대한 암호문을 생성하고, 생성된 제1 벡터에 대한 암호문을 교집합 연산 장치(120)로 제공한다.
일 실시예에 따르면, 암호화부(112)는 예를 들어, n차원의 벡터
Figure pat00003
에 대한 암호문을 암호화된 상태로 n차원의 벡터
Figure pat00004
와 연산하여
Figure pat00005
Figure pat00006
사이의 요소별 곱셈 결과에 해당하는 n차원의 벡터
Figure pat00007
에 대한 암호문을 생성할 수 있도록 하는 다양한 암호 기술을 이용하여 제1 벡터에 대한 암호문을 생성할 수 있다.
구체적인 예로, 암호화부(112)는 RSA(Rivest Shamir Adleman) 알고리즘, 이산로그 기반 알고리즘(예를 들어, El Garmal 알고리즘), 동형 암호(Homomorphic encryption) 등과 같이 아래의 수학식 1에 따른 연산을 지원하는 공지된 다양한 암호 기술의 암호화 알고리즘을 이용하여 제1 부분 집합에 대응되는 벡터에 대한 암호문을 생성할 수 있다.
[수학식 1]
Figure pat00008
수학식 1에서,
Figure pat00009
는 두 벡터 사이의 요소별 곱셈을 의미한다.
암호문 획득부(113)는 교집합 연산 장치(120)로부터 제1 부분 집합과 전체 집합에 대한 제2 부분 집합의 교집합에 대응되는 제3 벡터에 대한 암호문을 수신한다.
이때, 교집합 연산 장치(120)로부터 수신되는 제3 벡터에 대한 암호문은 제1 벡터에 대한 암호문 및 제2 부분 집합에 대응되는 제2 벡터에 기초하여 생성된다.
구체적으로, 교집합 연산 장치(120)로부터 수신되는 제3 벡터에 대한 암호문은 예를 들어, 상술한 수학식 1과 같이 제1 벡터에 대한 암호문을 암호화된 상태로 제2 벡터와 연산하여 생성될 수 있다.
한편, 일 실시예에 따르면, 전체 집합에 n개의 원소가 포함되어 있는 경우, 제2 부분 집합에 대응되는 제2 벡터 및 교집합에 대응되는 제3 벡터는 각각 n개의 원소 각각에 대응되는 n개의 값을 포함하는 n차원의 벡터일 수 있다.
구체적으로, 제2 벡터는 전체 집합에 포함된 n개의 원소 각각에 대응되는 n개의 값을 포함하되, n개의 값 중 제2 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다.
또한, 제3 벡터는 전체 집합에 포함된 n개의 원소 각각에 대응되는 n개의 값을 포함하되, n개의 값 중 제1 부분 집합과 제2 부분 집합의 교집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다.
예를 들어, 전체 집합이 U={x1, x2, x3, x4, x5, x6, x7, x8, x9, x10}, 제1 부분 집합이 M1={x5}, 제2 부분 집합이 M2={x2, x5, x7}인 경우를 가정하자. 이 경우, 제1 부분 집합에 대응되는 제1 벡터
Figure pat00010
과 제2 부분 집합에 대응되는 제2 벡터
Figure pat00011
는 각각
Figure pat00012
Figure pat00013
일 수 있다. 또한, 제1 부분 집합과 제2 부분 집합의 교집합이 M3=M1∩M2={x5}이므로, 제3 벡터
Figure pat00014
Figure pat00015
일 수 있으며, 이는
Figure pat00016
Figure pat00017
사이의 요소별 곱셈 결과와 동일하다.
교집합 결정부(114)는 교집합 연산 장치(120)로부터 수신된 제3 벡터에 대한 암호문을 복호화하여 제3 벡터를 획득한다.
이때, 교집합 결정부(114)는 암호화부(112)에서 암호화를 위해 이용된 암호 기술의 복호화 알고리즘을 이용하여 제3 벡터에 대한 암호문을 복호화할 수 있다.
한편, 교집합 결정부(114)는 복호화를 통해 제3 벡터를 획득한 경우, 전체 집합 및 획득된 제3 벡터에 기초하여 제1 부분 집합과 제2 부분 집합의 교집합을 결정한다.
예를 들어, 전체 집합이 U={x1, x2, x3, x4, x5, x6, x7, x8, x9, x10}이고, 제3 벡터가
Figure pat00018
인 것으로 가정하면,
Figure pat00019
에 포함된 10개의 값들 중 x5에 대응되는 값만 1이고 나머지 값은 0이므로, 교집합 결정부(114)는 제1 부분 집합과 제2 부분 집합의 교집합이 M3=M1∩M2={x5}인 것으로 결정할 수 있다.
도 3은 일 실시예에 따른 교집합 연산 장치의 구성도이다.
도 3을 참조하면, 일 실시예에 따른 교집합 연산 장치(120)는 암호문 획득부(121), 변환부(122), 연산부(123) 및 암호문 제공부(124)를 포함한다.
암호문 획득부(121)는 암호화 장치(110)로부터 전체 집합에 대한 제1 부분 집합에 대응되는 제1 벡터에 대한 암호문을 획득한다.
이때, 암호화 장치(110)로부터 획득되는 제1 벡터에 대한 암호문은 도 2를 참조하여 설명한 것과 동일한 방식으로 생성될 수 있다.
변환부(122)는 전체 집합에 기초하여, 전체 집합에 대한 제2 부분 집합에 대응되는 제2 벡터를 생성한다.
이때, 변환부(122)는 암호화 장치(110)에서 제1 벡터를 생성하는 방식과 동일한 방식으로 제2 벡터를 생성할 수 있다.
구체적으로, 일 실시예에 따르면, 전체 집합에 n개의 원소가 포함되어 있는 경우, 제2 부분 집합에 대응되는 제2 벡터는 n개의 원소 각각에 대응되는 n개의 값을 포함하는 n차원의 벡터일 수 있다. 구체적으로, 제2 벡터는 전체 집합에 포함된 n개의 원소 각각에 대응되는 n개의 값을 포함하되, n개의 값 중 제1 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다.
예를 들어, 전체 집합이 U={x1, x2, x3, x4, x5, x6, x7, x8, x9, x10}이고, 제2 부분 집합이 M2={x7}인 경우를 가정하자. 이 경우, 제2 부분 집합에 대응되는 제2 벡터
Figure pat00020
는 예를 들어,
Figure pat00021
과 같이 전체 집합 U에 포함된 각 원소에 대응되는 10개의 값을 포함하고, 10개의 값 중 제2 부분 집합에 포함된 원소인 x7에 대응되는 값이 1이고 나머지 값은 0인 벡터일 수 있다.
연산부(123)는 암호화 장치(110)로부터 획득된 제1 벡터에 대한 암호문 및 제2 벡터에 기초하여 제1 부분 집합과 제2 부분 집합의 교집합에 대응되는 제3 벡터에 대한 암호문을 생성한다.
구체적으로, 연산부(123)는 예를 들어, 상술한 수학식 1과 같이 제1 벡터에 대한 암호문을 암호화된 상태로 제2 벡터와 연산하여 제3 벡터에 대한 암호문을 생성할 수 있다.
한편, 일 실시예에 따르면, 전체 집합에 n개의 원소가 포함되어 있는 경우, 제3 벡터는 각각 n개의 원소 각각에 대응되는 n개의 값을 포함하는 n차원의 벡터일 수 있다. 구체적으로, 제3 벡터는 전체 집합에 포함된 n개의 원소 각각에 대응되는 n개의 값을 포함하되, n개의 값 중 제1 부분 집합과 제2 부분 집합의 교집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다.
예를 들어, 전체 집합이 U={x1, x2, x3, x4, x5, x6, x7, x8, x9, x10}, 제1 부분 집합이 M1={x5}, 제2 부분 집합이 M2={x2, x5, x7}인 경우를 가정하자. 이 경우, 제1 부분 집합에 대응되는 제1 벡터
Figure pat00022
과 제2 부분 집합에 대응되는 제2 벡터
Figure pat00023
는 각각
Figure pat00024
Figure pat00025
일 수 있다. 또한, 제1 부분 집합과 제2 부분 집합의 교집합이 M3=M1∩M2={x5}이므로, 제3 벡터
Figure pat00026
Figure pat00027
일 수 있으며, 이는
Figure pat00028
Figure pat00029
사이의 요소별 곱셈 결과와 동일하다.
암호문 제공부(124)는 연산부(123)에 의해 생성된 제3 벡터에 대한 암호문을 암호화 장치(110)로 제공한다.
도 4는 일 실시예에 따라 복수의 원소를 포함하는 집합을 반복 분할하여 생성되는 부분 집합들 사이의 관계를 수형도(tree diagram)로 나타낸 도면이다.
구체적으로, 도 4는 25개의 원소를 포함하는 집합 S={x1, x2, ..., x24, x25}를 각각 5개의 원소를 포함하는 5개의 부분 집합 S1={x1, x2, x3, x4, x5}, S2={x6, x7, x8, x9, x10}, S3={x11, x12, x13, x14, x15}, S4={x16, x17, x18, x19, x20} 및 S5={x21, x22, x23, x24, x25}로 분할한 경우에 대한 수형도이며, 수형도의 최상위 노드인 S0는 각 부분 집합 S1, S2, S3, S4 및 S5를 원소로 포함하는 집합(즉, S0={S1, S2, S3, S4, S5})을 나타낸다.
집합 S, S0, S1, S2, S3, S4 및 S5에 대한 정보는 암호화 장치(110) 및 교집합 연산 장치(120) 사이에 사전 공유될 수 있다.
한편, 도 4에 도시된 예에서, 암호화 장치(110)가 집합 S의 부분 집합인 M1={x7}을 보유하고 있고, 교집합 연산 장치(120)가 S의 부분 집합인 M2={x1, X6, x7}을 보유하고 있는 것으로 가정하자. 이 경우, 암호화 장치(110)는 교집합 연산 장치(120)와 도 5 또는 도 6에 도시된 절차를 수행하여, M1과 M2의 부분 집합 M3=M1∩M2을 획득할 수 있다.
구체적으로, 도 5는 일 실시예에 따라 암호화 장치와 교집합 연산 장치 사이에서 수행되는 교집합 획득 과정을 설명하기 위한 절차도이다.
도 5를 참조하면, 우선, 암호화 장치(110)는 전체 집합 U를 S로 설정한다(즉, U=S={x1, x2, ..., x24, x25})(501).
이후, 암호화 장치(110)는 전체 집합 U를 S로 설정할 것을 교집합 연산 장치(120)로 요청하고(502), 교집합 연산 장치(120)는 암호화 장치의 요청에 따라 전체 집합 U를 S로 설정한다(503).
이후, 암호화 장치(110)는 집합 M1에 대응되는 벡터
Figure pat00030
을 생성한다(504).
이때, 벡터
Figure pat00031
는 전체 집합 U에 포함된 원소 각각에 대응되는 25개의 값을 가지며, 집합 M1에 포함된 원소 x7에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다(즉,
Figure pat00032
).
이후, 암호화 장치(110)는
Figure pat00033
에 대한 암호문
Figure pat00034
을 생성한 후(505), 생성된 암호문 C1을 교집합 연산 장치(120)로 제공한다(506).
한편, 교집합 연산 장치(120)는 집합 M2에 대응되는 벡터
Figure pat00035
를 생성한다(507).
이때, 벡터
Figure pat00036
는 전체 집합 U에 포함된 원소 각각에 대응되는 25개의 값을 가지며, 집합 M2에 포함된 원소 x1, X6 및 x7 각각에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다(즉,
Figure pat00037
).
한편, 교집합 연산 장치(120)는 암호문 C1과 벡터
Figure pat00038
에 기초하여 M1과 M2의 교집합 M3에 대응되는 벡터
Figure pat00039
에 대한 암호문
Figure pat00040
를 생성한다(508).
이때, 벡터
Figure pat00041
는 전체 집합 U에 포함된 원소 각각에 대응되는 25개의 값을 가지며, 교집합 M3에 포함된 원소 x7에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있으며(즉,
Figure pat00042
), 이는
Figure pat00043
Figure pat00044
사이의 요소별 곱셈 결과와 동일하다.
한편, 교집합 연산 장치(120)는 벡터
Figure pat00045
에 대한 암호문 C2를 암호화 장치(110)로 제공한다(509).
이후, 암호화 장치(110)는 암호문 C2를 복호화하여 벡터
Figure pat00046
를 획득하고(510), 전체 집합 및 획득된 벡터
Figure pat00047
에 기초하여 교집합 M3를 결정한다(511).
구체적으로, 상술한 바와 같이
Figure pat00048
는 원소 x7에 대응되는 값이 1이고 나머지 값이 0인 벡터이므로, 암호화 장치(110)는
Figure pat00049
에 기초하여 교집합 M3를 M3={x7}로 결정할 수 있다.
도 6은 다른 실시예에 따라 암호화 장치와 교집합 연산 장치 사이에서 수행되는 교집합 획득 과정을 설명하기 위한 절차도이다.
도 4 및 도 6을 참조하면, 우선, 암호화 장치(110)는 전체 집합 U를 S0로 설정한다(즉, U= S0={S1, S2, S3, S4, S5})(601).
이후, 암호화 장치(110)는 전체 집합 U를 S0로 설정할 것을 교집합 연산 장치(120)로 요청하고(602), 교집합 연산 장치(120)는 암호화 장치(110)의 요청에 따라 전체 집합 U를 S0로 설정한다(603).
이후, 암호화 장치(110)는 도 4에 도시된 수형도에 기초하여 집합 M1에 포함된 원소 x7의 부모 노드인 S2를 원소로 포함하는 S0의 부분 집합 N1={S2}에 대응되는 벡터
Figure pat00050
을 생성한다(604).
이때, 벡터
Figure pat00051
는 전체 집합 U(즉, S0)에 포함된 원소 각각에 대응되는 5개의 값을 가지며, 집합 N1에 포함된 원소 S2에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다(즉,
Figure pat00052
).
이후, 암호화 장치(110)는
Figure pat00053
에 대한 암호문
Figure pat00054
을 생성한 후(605), 생성된 암호문
Figure pat00055
을 교집합 연산 장치(120)로 제공한다(606).
한편, 교집합 연산 장치(120)는 도 4에 도시된 수형도에서 집합 M2에 포함된 원소 x1, X6 및 x7 각각의 부모 노드인 S1 S2를 원소로 포함하는 S0의 부분 집합 N2={S1, S2}에 대응되는 벡터
Figure pat00056
를 생성한다(607).
이때, 벡터
Figure pat00057
는 전체 집합 U(즉, S0)에 포함된 원소 각각에 대응되는 5개의 값을 가지며, 집합 N2에 포함된 원소 S1 S2 각각에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다(즉,
Figure pat00058
).
이후, 교집합 연산 장치(120)는 암호문
Figure pat00059
과 벡터
Figure pat00060
에 기초하여 N1과 N2의 교집합 N3에 대응되는 벡터
Figure pat00061
에 대한 암호문
Figure pat00062
를 생성한다(608).
이때, 벡터
Figure pat00063
는 전체 집합 U(즉, S0)에 포함된 원소 각각에 대응되는 5개의 값을 가지며, 교집합 N3에 포함된 원소 S2에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있으며(즉,
Figure pat00064
), 이는
Figure pat00065
Figure pat00066
사이의 요소별 곱셈 결과와 동일하다.
이후, 교집합 연산 장치(120)는 벡터
Figure pat00067
에 대한 암호문
Figure pat00068
를 암호화 장치(110)로 제공한다(609).
한편, 암호화 장치(110)는 암호문
Figure pat00069
를 복호화하여 벡터
Figure pat00070
를 획득하고(610), 전체 집합 및 획득된 벡터
Figure pat00071
에 기초하여 N1과 N2의 교집합 N3를 결정한다(611).
구체적으로, 상술한 바와 같이
Figure pat00072
는 전체 집합 U(즉, S0)에 포함된 원소들 중 S2에 대응되는 값이 1이고 나머지 값이 0인 벡터이므로, 암호화 장치(110)는
Figure pat00073
에 기초하여 교집합 N3를 N3={S2}로 결정할 수 있다.
이후, 암호화 장치(110)는 전체 집합 U를 N3에 포함된 원소인 집합 S2로 설정한다(즉, U= S2={x6, x7, x8, x9, x10})(612).
이후, 암호화 장치(110)는 전체 집합 U를 S2로 설정할 것을 교집합 연산 장치(120)로 요청하고(613), 교집합 연산 장치(120)는 암호화 장치(110)의 요청에 따라 전체 집합 U를 S2로 설정한다(614).
이후, 암호화 장치(110)는 집합 M1에 대응되는 벡터
Figure pat00074
을 생성한다(615).
이때, 벡터
Figure pat00075
는 전체 집합 U(즉, S2)에 포함된 원소 각각에 대응되는 5개의 값을 가지며, 집합 M1에 포함된 원소 x7에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다(즉,
Figure pat00076
).
이후, 암호화 장치(110)는
Figure pat00077
에 대한 암호문
Figure pat00078
을 생성한 후(616), 생성된 암호문
Figure pat00079
을 교집합 연산 장치(120)로 제공한다(617).
한편, 교집합 연산 장치(120)는 집합 M2에 대응되는 벡터
Figure pat00080
를 생성한다(618).
이때, 벡터
Figure pat00081
는 전체 집합 U(즉, S2)에 포함된 원소 각각에 대응되는 5개의 값을 가지며, 집합 M2에 포함된 원소 중 전체 집합에 포함된 원소 x6 x7 각각에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다(즉,
Figure pat00082
).
이후, 교집합 연산 장치(120)는 암호문
Figure pat00083
과 벡터
Figure pat00084
에 기초하여 M1과 M2의 교집합 M3에 대응되는 벡터
Figure pat00085
에 대한 암호문
Figure pat00086
를 생성한다(619).
이때, 벡터
Figure pat00087
는 전체 집합 U(즉, S2)에 포함된 원소 각각에 대응되는 5개의 값을 가지며, 집합 M3에 포함된 원소 X에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있으며(즉,
Figure pat00088
), 이는
Figure pat00089
Figure pat00090
사이의 요소별 곱셈 결과와 동일하다.
한편, 교집합 연산 장치(120)는 벡터
Figure pat00091
에 대한 암호문
Figure pat00092
를 암호화 장치(110)로 제공한다(620).
이후, 암호화 장치(110)는 암호문
Figure pat00093
를 복호화하여 벡터
Figure pat00094
를 획득하고(621), 전체 집합 및 획득된 벡터
Figure pat00095
에 기초하여 M1과 M2의 교집합 M3를 결정한다(622).
구체적으로, 상술한 바와 같이
Figure pat00096
는 전체 집합 U(즉, S2)에 포함된 원소들 중 x7에 대응되는 값이 1이고 나머지 값이 0인 벡터이므로, 암호화 장치(110)는
Figure pat00097
에 기초하여 교집합 M3를 M3={x7}로 결정할 수 있다.
도 7은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다.
도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 본 발명의 실시예들에 따른 암호화 장치(110) 또는 교집합 연산 장치(120)에 포함되는 하나 이상의 컴포넌트일 수 있다. 컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100: 교집합 연산 시스템
110: 암호화 장치
111: 변환부
112: 암호화부
113: 암호문 획득부
114: 교집합 결정부
120: 교집합 연산 장치
121: 암호문 획득부
122: 변환부
123: 연산부
124: 암호문 제공부

Claims (20)

  1. 복수의 원소를 포함하는 전체 집합에 대한 제1 부분 집합에 대응되는 제1 벡터를 생성하는 변환부;
    상기 제1 벡터에 대한 암호문을 생성하고, 상기 암호문을 교집합 연산 장치로 제공하는 암호화부;
    상기 교집합 연산 장치로부터 상기 제1 부분 집합과 상기 전체 집합에 대한 제2 부분 집합의 교집합에 대응되는 제3 벡터에 대한 암호문을 수신하는 암호문 획득부; 및
    상기 제3 벡터에 대한 암호문을 복호화하고, 상기 전체 집합 및 제3 벡터에 기초하여 상기 교집합을 결정하는 교집합 결정부를 포함하고,
    상기 제3 벡터에 대한 암호문은, 상기 제1 벡터에 대한 암호문 및 상기 제2 부분 집합에 대응되는 제2 벡터에 기초하여 생성되는 암호화 장치.
  2. 청구항 1에 있어서,
    상기 제3 벡터에 대한 암호문은, 상기 제1 벡터에 대한 암호문을 암호화된 상태로 상기 제2 벡터와 연산하여 생성되는 암호화 장치.
  3. 청구항 1에 있어서,
    상기 제1 벡터는, 상기 복수의 원소 각각에 대응되는 n(이때, n은 상기 복수의 원소의 개수)개의 값을 포함하되, 상기 n개의 값 중 상기 제1 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이고,
    상기 제2 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 제2 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이며,
    상기 제3 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 교집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터인 암호화 장치.
  4. 청구항 3에 있어서,
    상기 전체 집합은, n개의 데이터를 원소로 포함하는 집합 또는 각각 m(이때, m은 m≥2를 만족하는 자연수)개의 원소를 포함하는 n개의 집합을 원소로 포함하는 집합인 암호화 장치.
  5. 청구항 3에 있어서,
    상기 제3 벡터는, 상기 제1 벡터 및 상기 제2 벡터 사이의 요소별 곱셈 결과와 동일한 암호화 장치.
  6. 암호화 장치로부터 복수의 원소를 포함하는 전체 집합에 대한 제1 부분 집합에 대응되는 제1 벡터에 대한 암호문을 획득하는 암호문 획득부;
    상기 전체 집합에 대한 제2 부분 집합에 대응되는 제2 벡터를 생성하는 변환부;
    상기 제1 벡터에 대한 암호문 및 상기 제2 벡터에 기초하여, 상기 제1 부분 집합과 상기 제2 부분 집합의 교집합에 대응되는 제3 벡터에 대한 암호문을 생성하는 연산부; 및
    상기 제3 벡터에 대한 암호문을 상기 암호화 장치로 제공하는 암호문 제공부를 포함하는 교집합 연산 장치.
  7. 청구항 6에 있어서,
    상기 연산부는, 상기 제1 벡터에 대한 암호문을 암호화된 상태로 상기 제2 벡터와 연산하여 상기 제3 벡터에 대한 암호문을 생성하는 교집합 연산 장치.
  8. 청구항 6에 있어서,
    상기 제1 벡터는, 상기 복수의 원소 각각에 대응되는 n(이때, n은 상기 복수의 원소의 개수)개의 값을 포함하되, 상기 n개의 값 중 상기 제1 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이고,
    상기 제2 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 제2 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이며,
    상기 제3 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 교집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터인 교집합 연산 장치.
  9. 청구항 8에 있어서,
    상기 전체 집합은, n개의 데이터를 원소로 포함하는 집합 또는 각각 m(이때, m은 m≥2를 만족하는 자연수)개의 원소를 포함하는 n개의 집합을 원소로 포함하는 집합인 교집합 연산 장치.
  10. 청구항 8에 있어서,
    상기 제3 벡터는, 상기 제1 벡터 및 상기 제2 벡터 사이의 요소별 곱셈 결과와 동일한 교집합 연산 장치.
  11. 복수의 원소를 포함하는 전체 집합에 대한 제1 부분 집합에 대응되는 제1 벡터를 생성하는 단계;
    상기 제1 벡터에 대한 암호문을 생성하는 단계;
    상기 암호문을 교집합 연산 장치로 제공하는 단계;
    상기 교집합 연산 장치로부터 상기 제1 부분 집합과 상기 전체 집합에 대한 제2 부분 집합의 교집합에 대응되는 제3 벡터에 대한 암호문을 수신하는 단계;
    상기 제3 벡터에 대한 암호문을 복호화하는 단계; 및
    상기 전체 집합 및 제3 벡터에 기초하여 상기 교집합을 결정하는 단계를 포함하고,
    상기 제3 벡터에 대한 암호문은, 상기 제1 벡터에 대한 암호문 및 상기 제2 부분 집합에 대응되는 제2 벡터에 기초하여 생성되는 암호화 방법.
  12. 청구항 11에 있어서,
    상기 제3 벡터에 대한 암호문은, 상기 제1 벡터에 대한 암호문을 암호화된 상태로 상기 제2 벡터와 연산하여 생성되는 암호화 방법.
  13. 청구항 11에 있어서,
    상기 제1 벡터는, 상기 복수의 원소 각각에 대응되는 n(이때, n은 상기 복수의 원소의 개수)개의 값을 포함하되, 상기 n개의 값 중 상기 제1 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이고,
    상기 제2 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 제2 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이며,
    상기 제3 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 교집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터인 암호화 방법.
  14. 청구항 13에 있어서,
    상기 전체 집합은, n개의 데이터를 원소로 포함하는 집합 또는 각각 m(이때, m은 m≥2를 만족하는 자연수)개의 원소를 포함하는 n개의 집합을 원소로 포함하는 집합인 암호화 방법.
  15. 청구항 13에 있어서,
    상기 제3 벡터는, 상기 제1 벡터 및 상기 제2 벡터 사이의 요소별 곱셈 결과와 동일한 암호화 방법.
  16. 암호화 장치로부터 복수의 원소를 포함하는 전체 집합에 대한 제1 부분 집합에 대응되는 제1 벡터에 대한 암호문을 획득하는 단계;
    상기 전체 집합에 대한 제2 부분 집합에 대응되는 제2 벡터를 생성하는 단계;
    상기 제1 벡터에 대한 암호문 및 상기 제2 벡터에 기초하여, 상기 제1 부분 집합과 상기 제2 부분 집합의 교집합에 대응되는 제3 벡터에 대한 암호문을 생성하는 단계; 및
    상기 제3 벡터에 대한 암호문을 상기 암호화 장치로 제공하는 단계를 포함하는 교집합 연산 방법.
  17. 청구항 16에 있어서,
    상기 암호문을 생성하는 단계는, 상기 제1 벡터에 대한 암호문을 암호화된 상태로 상기 제2 벡터와 연산하여 상기 제3 벡터에 대한 암호문을 생성하는 교집합 연산 방법.
  18. 청구항 16에 있어서,
    상기 제1 벡터는, 상기 복수의 원소 각각에 대응되는 n(이때, n은 상기 복수의 원소의 개수)개의 값을 포함하되, 상기 n개의 값 중 상기 제1 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이고,
    상기 제2 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 제2 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이며,
    상기 제3 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 교집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터인 교집합 연산 방법.
  19. 청구항 18에 있어서,
    상기 전체 집합은, n개의 데이터를 원소로 포함하는 집합 또는 각각 m(이때, m은 m≥2를 만족하는 자연수)개의 원소를 포함하는 n개의 집합을 원소로 포함하는 집합인 교집합 연산 방법.
  20. 청구항 18에 있어서,
    상기 제3 벡터는, 상기 제1 벡터 및 상기 제2 벡터 사이의 요소별 곱셈 결과와 동일한 교집합 연산 방법.
KR1020190174543A 2019-12-24 2019-12-24 교집합 연산을 위한 장치 및 방법 KR20210082019A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190174543A KR20210082019A (ko) 2019-12-24 2019-12-24 교집합 연산을 위한 장치 및 방법
US17/079,982 US11329798B2 (en) 2019-12-24 2020-10-26 Apparatus and method for set intersection operation
EP20204811.2A EP3843319A1 (en) 2019-12-24 2020-10-30 Apparatus and method for set intersection operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190174543A KR20210082019A (ko) 2019-12-24 2019-12-24 교집합 연산을 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20210082019A true KR20210082019A (ko) 2021-07-02

Family

ID=73039959

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190174543A KR20210082019A (ko) 2019-12-24 2019-12-24 교집합 연산을 위한 장치 및 방법

Country Status (3)

Country Link
US (1) US11329798B2 (ko)
EP (1) EP3843319A1 (ko)
KR (1) KR20210082019A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113806795B (zh) * 2021-08-10 2024-03-01 中国科学院信息工程研究所 一种两方隐私集合并集计算方法和装置
CN115242514B (zh) * 2022-07-25 2023-03-07 深圳市洞见智慧科技有限公司 基于国密的隐私集合求交方法、系统、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101947871B1 (ko) 2016-10-11 2019-02-13 홍익대학교세종캠퍼스산학협력단 내적 값을 출력하는 함수 암호화 시스템 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10608811B2 (en) * 2017-06-15 2020-03-31 Microsoft Technology Licensing, Llc Private set intersection encryption techniques
US12068060B2 (en) * 2018-04-30 2024-08-20 Koninklijke Philips N.V. Record finding using multi-party computation
US11500959B2 (en) * 2019-08-16 2022-11-15 Google Llc Multiple output fusion for operations performed in a multi-dimensional array of processing units

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101947871B1 (ko) 2016-10-11 2019-02-13 홍익대학교세종캠퍼스산학협력단 내적 값을 출력하는 함수 암호화 시스템 및 방법

Also Published As

Publication number Publication date
US20210194671A1 (en) 2021-06-24
EP3843319A1 (en) 2021-06-30
US11329798B2 (en) 2022-05-10

Similar Documents

Publication Publication Date Title
US10728018B2 (en) Secure probabilistic analytics using homomorphic encryption
US11902413B2 (en) Secure machine learning analytics using homomorphic encryption
US11777729B2 (en) Secure analytics using term generation and homomorphic encryption
US11277256B2 (en) Ciphertext comparison method using homomorphic encryption and apparatus for performing the same
US20170277906A1 (en) Privacy enhanced central data storage
US11381381B2 (en) Privacy preserving oracle
US11277257B2 (en) Method and apparatus for performing operation using encrypted data
US11991271B2 (en) System and method for quantum resistant public key encryption
KR20140095179A (ko) 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치
US11329798B2 (en) Apparatus and method for set intersection operation
JP2018005220A (ja) 多項式ベースの準同型暗号
KR20210130044A (ko) 데이터 분석 장치 및 방법
Riad et al. Secure storage and retrieval of IoT data based on private information retrieval
Kim et al. Compiler-assisted semantic-aware encryption for efficient and secure serverless computing
Ciucanu et al. Secure cumulative reward maximization in linear stochastic bandits
KR102126295B1 (ko) 암호문 비교 방법 및 이를 수행하기 위한 장치
CN114726511B (zh) 数据处理方法和装置
KR102284877B1 (ko) 효율적인 교집합 연산을 위한 함수 암호 기술
KR102281265B1 (ko) 시간 제약을 지원하는 교집합 연산을 위한 함수 암호 기술
KR20210118717A (ko) 암호화된 데이터를 이용한 연산을 수행하기 위한 방법 및 장치
KR20200045820A (ko) 암호화 및 복호화를 위한 장치 및 방법
CN111953480A (zh) 密钥生成装置以及方法、运算密钥生成装置以及方法
KR20200044456A (ko) 프라이버시를 보장하는 데이터 연산 장치 및 방법
KR20220157649A (ko) 일치 확인을 위한 지분 생성 방법 및 장치
KR20210049378A (ko) 암호화 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal