KR20210082019A - 교집합 연산을 위한 장치 및 방법 - Google Patents
교집합 연산을 위한 장치 및 방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 239000013598 vector Substances 0.000 claims abstract description 269
- 238000010586 diagram Methods 0.000 description 15
- 238000004364 calculation method Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure 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
개시되는 실시예들은 교집합 연산을 지원하는 암호 기술과 관련된다.
사용자 데이터에 대한 프라이버시 이슈가 날로 중요해지면서 유럽의 GDPR과 같은 개인정보보호 관련 법들이 생겨나고 있다. 그러나 데이터 소유자 또는 수집가들은 이런 개인정보보호 이슈 없이 관련 정보를 이용한 서비스를 제공하거나 이용하기에는 여러 어려움이 있다. 이러한 이유로 개인정보보호를 위한 프라이버시 보호 기술이 근래 많은 관심을 받고 있는 가운데, 데이터를 노출하지 않고 암호화된 상태로 데이터의 일치 여부를 판단하는 PSI(Private Set Intersection) 기술에 대한 연구가 활발히 이루어지고 있다.
PSI 기술은 보통 다자간 연산(multi-party computation, MPC)의 한 예로서 두 개체가 각각 보유한 집합을 노출시키지 않고 서로 겹치는 교집합(공통원소)을 찾아내는 것으로 기존 방법으로 해시 기반의 PSI, 공개키 암호 기반의 PSI, 서킷 기반(Circuit-based)의 PSI, OT(Oblivious Transfer) 기반의 PSI 등이 있다. 그러나, 이러한 종래 기술들은 비교 대상 증가할수록 교집합 연산을 위한 두 개체 사이의 데이터 전송량 또는 연산량이 크게 증가하게 되므로, 큰 데이터에 대한 교집합 연산이 불가능하거나 연산 속도가 지나치게 느리다는 문제점이 있다.
개시되는 실시예들은 교집합 연산을 위한 장치 및 방법을 제공하기 위한 것이다.
일 실시예에 따른 암호화 장치는, 복수의 원소를 포함하는 전체 집합에 대한 제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은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
도 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 벡터 는 예를 들어, 과 같이 전체 집합 U에 포함된 각 원소에 대응되는 10개의 값을 포함하고, 10개의 값 중 제1 부분 집합에 포함된 원소인 x1, x5 및 x7 각각에 대응되는 값이 1이고 나머지 값은 0인 벡터일 수 있다.
암호화부(112)는 제1 부분 집합에 대응되는 제1 벡터에 대한 암호문을 생성하고, 생성된 제1 벡터에 대한 암호문을 교집합 연산 장치(120)로 제공한다.
일 실시예에 따르면, 암호화부(112)는 예를 들어, n차원의 벡터 에 대한 암호문을 암호화된 상태로 n차원의 벡터 와 연산하여 과 사이의 요소별 곱셈 결과에 해당하는 n차원의 벡터 에 대한 암호문을 생성할 수 있도록 하는 다양한 암호 기술을 이용하여 제1 벡터에 대한 암호문을 생성할 수 있다.
구체적인 예로, 암호화부(112)는 RSA(Rivest Shamir Adleman) 알고리즘, 이산로그 기반 알고리즘(예를 들어, El Garmal 알고리즘), 동형 암호(Homomorphic encryption) 등과 같이 아래의 수학식 1에 따른 연산을 지원하는 공지된 다양한 암호 기술의 암호화 알고리즘을 이용하여 제1 부분 집합에 대응되는 벡터에 대한 암호문을 생성할 수 있다.
[수학식 1]
암호문 획득부(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 벡터 과 제2 부분 집합에 대응되는 제2 벡터 는 각각 과 일 수 있다. 또한, 제1 부분 집합과 제2 부분 집합의 교집합이 M3=M1∩M2={x5}이므로, 제3 벡터 는 일 수 있으며, 이는 과 사이의 요소별 곱셈 결과와 동일하다.
교집합 결정부(114)는 교집합 연산 장치(120)로부터 수신된 제3 벡터에 대한 암호문을 복호화하여 제3 벡터를 획득한다.
이때, 교집합 결정부(114)는 암호화부(112)에서 암호화를 위해 이용된 암호 기술의 복호화 알고리즘을 이용하여 제3 벡터에 대한 암호문을 복호화할 수 있다.
한편, 교집합 결정부(114)는 복호화를 통해 제3 벡터를 획득한 경우, 전체 집합 및 획득된 제3 벡터에 기초하여 제1 부분 집합과 제2 부분 집합의 교집합을 결정한다.
예를 들어, 전체 집합이 U={x1, x2, x3, x4, x5, x6, x7, x8, x9, x10}이고, 제3 벡터가 인 것으로 가정하면, 에 포함된 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 벡터 는 예를 들어, 과 같이 전체 집합 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 벡터 과 제2 부분 집합에 대응되는 제2 벡터 는 각각 과 일 수 있다. 또한, 제1 부분 집합과 제2 부분 집합의 교집합이 M3=M1∩M2={x5}이므로, 제3 벡터 는 일 수 있으며, 이는 과 사이의 요소별 곱셈 결과와 동일하다.
암호문 제공부(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).
이때, 벡터 는 전체 집합 U에 포함된 원소 각각에 대응되는 25개의 값을 가지며, 집합 M1에 포함된 원소 x7에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다(즉, ).
이때, 벡터 는 전체 집합 U에 포함된 원소 각각에 대응되는 25개의 값을 가지며, 집합 M2에 포함된 원소 x1, X6 및 x7 각각에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다(즉, ).
이때, 벡터 는 전체 집합 U에 포함된 원소 각각에 대응되는 25개의 값을 가지며, 교집합 M3에 포함된 원소 x7에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있으며(즉, ), 이는 과 사이의 요소별 곱셈 결과와 동일하다.
구체적으로, 상술한 바와 같이 는 원소 x7에 대응되는 값이 1이고 나머지 값이 0인 벡터이므로, 암호화 장치(110)는 에 기초하여 교집합 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}에 대응되는 벡터 을 생성한다(604).
이때, 벡터 는 전체 집합 U(즉, S0)에 포함된 원소 각각에 대응되는 5개의 값을 가지며, 집합 N1에 포함된 원소 S2에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다(즉, ).
한편, 교집합 연산 장치(120)는 도 4에 도시된 수형도에서 집합 M2에 포함된 원소 x1, X6 및 x7 각각의 부모 노드인 S1 및 S2를 원소로 포함하는 S0의 부분 집합 N2={S1, S2}에 대응되는 벡터 를 생성한다(607).
이때, 벡터 는 전체 집합 U(즉, S0)에 포함된 원소 각각에 대응되는 5개의 값을 가지며, 집합 N2에 포함된 원소 S1 및 S2 각각에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다(즉, ).
이때, 벡터 는 전체 집합 U(즉, S0)에 포함된 원소 각각에 대응되는 5개의 값을 가지며, 교집합 N3에 포함된 원소 S2에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있으며(즉, ), 이는 과 사이의 요소별 곱셈 결과와 동일하다.
구체적으로, 상술한 바와 같이 는 전체 집합 U(즉, S0)에 포함된 원소들 중 S2에 대응되는 값이 1이고 나머지 값이 0인 벡터이므로, 암호화 장치(110)는 에 기초하여 교집합 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).
이때, 벡터 는 전체 집합 U(즉, S2)에 포함된 원소 각각에 대응되는 5개의 값을 가지며, 집합 M1에 포함된 원소 x7에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다(즉, ).
이때, 벡터 는 전체 집합 U(즉, S2)에 포함된 원소 각각에 대응되는 5개의 값을 가지며, 집합 M2에 포함된 원소 중 전체 집합에 포함된 원소 x6 및 x7 각각에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있다(즉, ).
이때, 벡터 는 전체 집합 U(즉, S2)에 포함된 원소 각각에 대응되는 5개의 값을 가지며, 집합 M3에 포함된 원소 X에 대응되는 값이 1이고 나머지 값이 0인 벡터일 수 있으며(즉, ), 이는 과 사이의 요소별 곱셈 결과와 동일하다.
구체적으로, 상술한 바와 같이 는 전체 집합 U(즉, S2)에 포함된 원소들 중 x7에 대응되는 값이 1이고 나머지 값이 0인 벡터이므로, 암호화 장치(110)는 에 기초하여 교집합 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: 암호문 제공부
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 부분 집합과 상기 전체 집합에 대한 제2 부분 집합의 교집합에 대응되는 제3 벡터에 대한 암호문을 수신하는 암호문 획득부; 및
상기 제3 벡터에 대한 암호문을 복호화하고, 상기 전체 집합 및 제3 벡터에 기초하여 상기 교집합을 결정하는 교집합 결정부를 포함하고,
상기 제3 벡터에 대한 암호문은, 상기 제1 벡터에 대한 암호문 및 상기 제2 부분 집합에 대응되는 제2 벡터에 기초하여 생성되는 암호화 장치.
- 청구항 1에 있어서,
상기 제3 벡터에 대한 암호문은, 상기 제1 벡터에 대한 암호문을 암호화된 상태로 상기 제2 벡터와 연산하여 생성되는 암호화 장치.
- 청구항 1에 있어서,
상기 제1 벡터는, 상기 복수의 원소 각각에 대응되는 n(이때, n은 상기 복수의 원소의 개수)개의 값을 포함하되, 상기 n개의 값 중 상기 제1 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이고,
상기 제2 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 제2 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이며,
상기 제3 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 교집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터인 암호화 장치.
- 청구항 3에 있어서,
상기 전체 집합은, n개의 데이터를 원소로 포함하는 집합 또는 각각 m(이때, m은 m≥2를 만족하는 자연수)개의 원소를 포함하는 n개의 집합을 원소로 포함하는 집합인 암호화 장치.
- 청구항 3에 있어서,
상기 제3 벡터는, 상기 제1 벡터 및 상기 제2 벡터 사이의 요소별 곱셈 결과와 동일한 암호화 장치.
- 암호화 장치로부터 복수의 원소를 포함하는 전체 집합에 대한 제1 부분 집합에 대응되는 제1 벡터에 대한 암호문을 획득하는 암호문 획득부;
상기 전체 집합에 대한 제2 부분 집합에 대응되는 제2 벡터를 생성하는 변환부;
상기 제1 벡터에 대한 암호문 및 상기 제2 벡터에 기초하여, 상기 제1 부분 집합과 상기 제2 부분 집합의 교집합에 대응되는 제3 벡터에 대한 암호문을 생성하는 연산부; 및
상기 제3 벡터에 대한 암호문을 상기 암호화 장치로 제공하는 암호문 제공부를 포함하는 교집합 연산 장치.
- 청구항 6에 있어서,
상기 연산부는, 상기 제1 벡터에 대한 암호문을 암호화된 상태로 상기 제2 벡터와 연산하여 상기 제3 벡터에 대한 암호문을 생성하는 교집합 연산 장치.
- 청구항 6에 있어서,
상기 제1 벡터는, 상기 복수의 원소 각각에 대응되는 n(이때, n은 상기 복수의 원소의 개수)개의 값을 포함하되, 상기 n개의 값 중 상기 제1 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이고,
상기 제2 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 제2 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이며,
상기 제3 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 교집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터인 교집합 연산 장치.
- 청구항 8에 있어서,
상기 전체 집합은, n개의 데이터를 원소로 포함하는 집합 또는 각각 m(이때, m은 m≥2를 만족하는 자연수)개의 원소를 포함하는 n개의 집합을 원소로 포함하는 집합인 교집합 연산 장치.
- 청구항 8에 있어서,
상기 제3 벡터는, 상기 제1 벡터 및 상기 제2 벡터 사이의 요소별 곱셈 결과와 동일한 교집합 연산 장치.
- 복수의 원소를 포함하는 전체 집합에 대한 제1 부분 집합에 대응되는 제1 벡터를 생성하는 단계;
상기 제1 벡터에 대한 암호문을 생성하는 단계;
상기 암호문을 교집합 연산 장치로 제공하는 단계;
상기 교집합 연산 장치로부터 상기 제1 부분 집합과 상기 전체 집합에 대한 제2 부분 집합의 교집합에 대응되는 제3 벡터에 대한 암호문을 수신하는 단계;
상기 제3 벡터에 대한 암호문을 복호화하는 단계; 및
상기 전체 집합 및 제3 벡터에 기초하여 상기 교집합을 결정하는 단계를 포함하고,
상기 제3 벡터에 대한 암호문은, 상기 제1 벡터에 대한 암호문 및 상기 제2 부분 집합에 대응되는 제2 벡터에 기초하여 생성되는 암호화 방법.
- 청구항 11에 있어서,
상기 제3 벡터에 대한 암호문은, 상기 제1 벡터에 대한 암호문을 암호화된 상태로 상기 제2 벡터와 연산하여 생성되는 암호화 방법.
- 청구항 11에 있어서,
상기 제1 벡터는, 상기 복수의 원소 각각에 대응되는 n(이때, n은 상기 복수의 원소의 개수)개의 값을 포함하되, 상기 n개의 값 중 상기 제1 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이고,
상기 제2 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 제2 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이며,
상기 제3 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 교집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터인 암호화 방법.
- 청구항 13에 있어서,
상기 전체 집합은, n개의 데이터를 원소로 포함하는 집합 또는 각각 m(이때, m은 m≥2를 만족하는 자연수)개의 원소를 포함하는 n개의 집합을 원소로 포함하는 집합인 암호화 방법.
- 청구항 13에 있어서,
상기 제3 벡터는, 상기 제1 벡터 및 상기 제2 벡터 사이의 요소별 곱셈 결과와 동일한 암호화 방법.
- 암호화 장치로부터 복수의 원소를 포함하는 전체 집합에 대한 제1 부분 집합에 대응되는 제1 벡터에 대한 암호문을 획득하는 단계;
상기 전체 집합에 대한 제2 부분 집합에 대응되는 제2 벡터를 생성하는 단계;
상기 제1 벡터에 대한 암호문 및 상기 제2 벡터에 기초하여, 상기 제1 부분 집합과 상기 제2 부분 집합의 교집합에 대응되는 제3 벡터에 대한 암호문을 생성하는 단계; 및
상기 제3 벡터에 대한 암호문을 상기 암호화 장치로 제공하는 단계를 포함하는 교집합 연산 방법.
- 청구항 16에 있어서,
상기 암호문을 생성하는 단계는, 상기 제1 벡터에 대한 암호문을 암호화된 상태로 상기 제2 벡터와 연산하여 상기 제3 벡터에 대한 암호문을 생성하는 교집합 연산 방법.
- 청구항 16에 있어서,
상기 제1 벡터는, 상기 복수의 원소 각각에 대응되는 n(이때, n은 상기 복수의 원소의 개수)개의 값을 포함하되, 상기 n개의 값 중 상기 제1 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이고,
상기 제2 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 제2 부분 집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터이며,
상기 제3 벡터는, 상기 n개의 값을 포함하되, 상기 n개의 값 중 상기 교집합에 포함된 각 원소에 대응되는 값이 1이고 나머지 값이 0인 벡터인 교집합 연산 방법.
- 청구항 18에 있어서,
상기 전체 집합은, n개의 데이터를 원소로 포함하는 집합 또는 각각 m(이때, m은 m≥2를 만족하는 자연수)개의 원소를 포함하는 n개의 집합을 원소로 포함하는 집합인 교집합 연산 방법.
- 청구항 18에 있어서,
상기 제3 벡터는, 상기 제1 벡터 및 상기 제2 벡터 사이의 요소별 곱셈 결과와 동일한 교집합 연산 방법.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101947871B1 (ko) | 2016-10-11 | 2019-02-13 | 홍익대학교세종캠퍼스산학협력단 | 내적 값을 출력하는 함수 암호화 시스템 및 방법 |
Family Cites Families (3)
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 |
-
2019
- 2019-12-24 KR KR1020190174543A patent/KR20210082019A/ko not_active Application Discontinuation
-
2020
- 2020-10-26 US US17/079,982 patent/US11329798B2/en active Active
- 2020-10-30 EP EP20204811.2A patent/EP3843319A1/en active Pending
Patent Citations (1)
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 |