KR101476039B1 - Method for encrypting database and method for real-time search thereof - Google Patents

Method for encrypting database and method for real-time search thereof Download PDF

Info

Publication number
KR101476039B1
KR101476039B1 KR1020130070095A KR20130070095A KR101476039B1 KR 101476039 B1 KR101476039 B1 KR 101476039B1 KR 1020130070095 A KR1020130070095 A KR 1020130070095A KR 20130070095 A KR20130070095 A KR 20130070095A KR 101476039 B1 KR101476039 B1 KR 101476039B1
Authority
KR
South Korea
Prior art keywords
database
bloom filter
hash function
encrypted
tuple
Prior art date
Application number
KR1020130070095A
Other languages
Korean (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 세명대학교 산학협력단
Priority to KR1020130070095A priority Critical patent/KR101476039B1/en
Application granted granted Critical
Publication of KR101476039B1 publication Critical patent/KR101476039B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • 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
    • G06F16/2228Indexing 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

A method for encrypting a database is disclosed. To build encrypted data in a database server, a method for encrypting a database in a database client terminal generates an index by constructing a bloom filter for element units of a plaintext database, and generates an encrypted tuple by encrypting tuple units for the plaintext database.

Description

데이터베이스 암호화 방법 및 이의 실시간 검색 방법{METHOD FOR ENCRYPTING DATABASE AND METHOD FOR REAL-TIME SEARCH THEREOF}METHOD FOR ENCRYPTING DATABASE AND METHOD FOR REAL-TIME SEARCH THEREOF "

본 발명은 데이터베이스 암호화 방법 및 이의 실시간 검색 방법에 관한 것이다.
The present invention relates to a database encryption method and its real-time retrieval method.

일반적으로, 데이터베이스에 저장된 정보를 암호화하는 방법은, 데이터베이스를 구성하는 단위별로 수행되며, 테이블 전체를 암호화하는 테이블 기반 암호화 방법과, 열단위를 암호화하는 속성 기반 암호화 방법, 행단위를 암호화하는 튜플(tuple) 단위 암호화 방법, 및 각각의 요소 단위로 암호화하는 요소 기반 암호화 방법으로 구분된다.Generally, a method for encrypting information stored in a database is performed for each unit constituting a database, and a table-based encryption method for encrypting an entire table, an attribute-based encryption method for encrypting a column unit, a tuple tuple) unit encryption method, and an element-based encryption method in which each element is encrypted.

테이블 기반과 속성 기반 방식은 데이터베이스 백업용으로 사용되는 방법으로서, 실시간 검색이 불가능하고, 요소 기반 방식은 암호화된 데이터의 양이 너무 많고, 동일값 검색 외에는 다른 검색에는 사용될 수 없다. 반면에 튜플 기반의 암호화 방법은 튜플 단위로 암호하기 때문에, 튜플 단위의 삽입과 삭제가 가능하며, 실시간 검색을 위하여 각 튜플내의 속성에 대한 별도의 인덱스를 필요로 한다.The table-based and attribute-based methods are used for database backup, and real-time retrieval is not possible, and the element-based method is too much for encrypted data and can not be used for other retrieval except for the same value retrieval. On the other hand, since the tuple-based encryption method encrypts data in tuples, insertion and deletion in units of tuples can be performed, and a separate index for attributes in each tuple is required for real-time retrieval.

데이터베이스를 구성하는 요소는 민감정보와 비민감 정보로 구분된다. 비민감 정보의 경우에는 암호화를 필요로 하지 않지만, 민감정보는 암호화할 필요가 있다. 그러나, 암호화된 데이터베이스는 사용자가 실시간으로 검색하기 어려운 문제점이 있다.
The elements constituting the database are classified into sensitive information and non-sensitive information. Non-sensitive information does not require encryption, but sensitive information needs to be encrypted. However, there is a problem that the encrypted database is difficult for the user to retrieve in real time.

본 발명이 해결하고자 하는 기술적 과제는, 데이터베이스에 저장된 민감정보에 대해 충분한 보안을 제공하고, 데이터의 삽입 및 삭제 뿐 아니라 실시간으로 검색이 가능하게 하는 데이터베이스 암호화 방법과 이의 실시간 검색 방법을 제공하는 것이다.
It is an object of the present invention to provide a database encryption method and a real-time retrieval method thereof, which provide sufficient security for sensitive information stored in a database and enable real-time retrieval as well as insertion and deletion of data.

상기와 같은 기술적 과제를 해결하기 위해, 데이터베이스 서버에 암호화된 데이터를 구축하기 위한, 데이터베이스 클라이언트 단말에서의 본 발명의 일실시예의 데이터베이스 암호화 방법은, 평문 데이터베이스의 요소단위에 대해 블룸필터를 구성하여 인덱스를 생성하는 단계; 및 상기 평문 데이터베이스의 튜플단위를 암호화하여 암호화된 튜플을 생성하는 단계를 포함할 수 있다.According to an embodiment of the present invention, there is provided a database encryption method for establishing encrypted data in a database server, the method comprising the steps of: ≪ / RTI > And encrypting the tuple unit of the plain text database to generate an encrypted tuple.

본 발명의 일실시예에서, 상기 암호화 방법은, 상기 블룸필터와 상기 암호화된 튜플을 데이터베이스 서버로 전송하는 단계를 더 포함할 수 있다.In one embodiment of the present invention, the encryption method may further include transmitting the Bloom filter and the encrypted tuple to a database server.

본 발명의 일실시예에서, 상기 암호화 방법은, 상기 데이터베이스 서버가 상기 블룸필터와 상기 암호화된 튜플을 이용하여 암호화된 데이터베이스를 구축하는 단계를 더 포함할 수 있다.In one embodiment of the present invention, the encryption method may further include the step of the database server constructing an encrypted database using the Bloom filter and the encrypted tuple.

본 발명의 일실시예에서, 상기 데이터베이스 서버는, 상기 암호화된 튜플과 상기 블룸필터를 테이블내 개별 필드로 저장할 수 있다. In an embodiment of the present invention, the database server may store the encrypted tuple and the Bloom filter as individual fields in a table.

본 발명의 일실시예에서, 상기 인덱스를 생성하는 단계는, 상기 평문 데이터베이스의 요소단위에 대하여 키워드를 추출하는 단계; 추출한 키워드에 대해 해쉬함수를 적용하는 단계; 및 해쉬함수 결과값을 블룸필터로 구성하는 단계를 포함할 수 있다.In one embodiment of the present invention, the step of generating an index includes: extracting a keyword for an element unit of the plain text database; Applying a hash function to the extracted keyword; And constructing a hash function result value as a Bloom filter.

본 발명의 일실시예에서, 상기 평문 데이터베이스는, 숫자 데이터와 문자 데이터를 포함할 수 있다.In one embodiment of the present invention, the plain text database may include numeric data and character data.

본 발명의 일실시예에서, 숫자 데이터에 대하여, 다양한 범위형 키워드를 생성할 수 있다. In one embodiment of the present invention, for a numerical data, various range type keywords can be generated.

본 발명의 일실시예에서, 상기 암호화된 튜플을 생성하는 단계는, 상기 평문 데이터베이스의 튜플단위를 소정의 암호화 키를 이용하여 암호화를 수행하여, 상기 암호화된 튜플을 생성할 수 있다.
In an embodiment of the present invention, the step of generating the encrypted tuple may generate the encrypted tuple by encrypting the tuple unit of the plain text database using a predetermined encryption key.

또한, 상기와 같은 기술적 과제를 해결하기 위해, 상기의 방법에 의해 암호화된 데이터베이스를 상기 데이터베이스 클라이언트 단말에서 검색하는 본 발명의 일실시예의 방법은, 사용자가 입력한 평문 질의어에 포함된 키워드를 추출하는 단계; 추출한 키워드에 대해 해쉬함수를 적용하는 단계; 해쉬함수 결과를 이용하여, 상기 데이터베이스 서버에 저장된 블룸필터의 비트가 설정되어 있는지 체크할 수 있도록, 질의어를 변형하여, 상기 데이터베이스 서버에 전송하는 단계; 상기 데이터베이스 서버로부터, 변형된 질의어에 포함된 해쉬함수 결과에 따른 비트가 설정된 블룸필터에 해당하는 암호문을 수신하는 단계; 및 수신된 암호문을 복호화하는 단계를 포함할 수 있다.
According to another aspect of the present invention, there is provided a method for searching a database encrypted by the above method in a database client terminal, the method comprising: extracting a keyword included in a plain- step; Applying a hash function to the extracted keyword; Modifying a query term so as to check whether a bit of the Bloom filter stored in the database server is set using the hash function result and transmitting the modified query term to the database server; Receiving, from the database server, a ciphertext corresponding to a Bloom filter in which a bit according to a hash function result included in the modified query term is set; And decrypting the received ciphertext.

또한, 상기와 같은 기술적 과제를 해결하기 위해, 상기의 방법에 의해 암호화된 데이터베이스에서 통계 데이터를 추출하는 본 발명의 일실시예의 방법은, 사용자가 입력한 평문 질의어에 포함된 키워드를 추출하는 단계; 추출한 키워드에 대해 해쉬함수를 적용하는 단계; 해쉬함수 결과를 이용하여, 상기 데이터베이스 서버에 저장된 블룸필터의 비트가 설정되어 있는지 체크할 수 있도록, 질의어를 변형하여, 상기 데이터베이스 서버에 전송하는 단계; 및 상기 데이터베이스 서버로부터 변형된 질의어에 포함된 해쉬함수 결과에 따른 비트가 설정된 블룸필터의 개수를 수신하는 단계를 포함할 수 있다.
According to another aspect of the present invention, there is provided a method of extracting statistical data from a database encrypted by the above method, comprising the steps of: extracting keywords included in a plain-text query input by a user; Applying a hash function to the extracted keyword; Modifying a query term so as to check whether a bit of the Bloom filter stored in the database server is set using the hash function result and transmitting the modified query term to the database server; And receiving the number of bloom filters having bits set according to a hash function result included in the modified query word from the database server.

상기와 같은 본 발명은, 데이터베이스의 소유자가 암호화키 및 복호화키를 소유하여, 보다 안전한 암호화를 제공하도록 하는 효과가 있다.The present invention as described above is effective in that the owner of the database possesses the encryption key and the decryption key to provide more secure encryption.

또한, 본 발명은 데이터베이스의 요소단위에 대한 키워드를 해쉬함수에 적용하고, 이에 대한 블룸필터를 구성하는 것에 의해 인덱스를 생성하여, 데이터베이스에 대한 실시간 검색 및 통계가 가능하게 하는 효과가 있다.
In addition, the present invention has an effect of applying a keyword to an element unit of a database to a hash function and constructing a bloom filter thereon to generate an index, thereby enabling real-time searching and statistics on the database.

도 1은 블룸필터를 설명하기 위한 일예시도이다.
도 2는 본 발명에 따른 데이터베이스 암호화 방법을 설명하기 위한 일실시예 개념도이다.
도 3은 본 발명에 따라 구축된 암호화 데이터베이스를 이용하여 검색하는 과정을 설명하기 위한 일실시예 개념도이다.
도 4는 본 발명에 따라 구축된 암호화 데이터베이스를 이용하여 통계 데이터를 추출하는 과정을 설명하기 위한 일예시도이다.
도 5는 본 발명에 따른 암호화 방법을 설명하기 위한 일실시예 흐름도이다.
도 6a 내지 도 6c는 본 발명의 암호화 방법에 따른 결과를 설명하기 위한 일예시도이다.
1 is an exemplary view for explaining a Bloom filter.
2 is a conceptual diagram for explaining a database encryption method according to the present invention.
3 is a conceptual diagram for explaining a process of searching using an encryption database constructed according to the present invention.
FIG. 4 is a diagram for explaining a process of extracting statistical data using an encryption database constructed according to the present invention.
5 is a flowchart illustrating an encryption method according to an embodiment of the present invention.
6A to 6C are diagrams for explaining the results of the encryption method of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다. Hereinafter, a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings.

본 발명은, 튜플 단위의 데이터베이스 암호화와 함께 블룸필터를 적용한 인덱스를 사용함으로써 검색기능을 향상시킬 수 있는 방안을 제시한다.The present invention proposes a method for improving a search function by using an index to which a Bloom filter is applied together with database encryption in units of tuples.

또한, 본 발명은, 데이터베이스의 관리를 직접 관리하지 않고, 외부의 클라우드 업체에서 제공하는 데이터베이스를 사용하는 경우에, 외부 업체의 데이터베이스 관리자가 고의로 자신이 관리하는 키를 이용하여 데이터베이스에 저장된 민감정보를 열람할 수 없도록 하기 위한 구조를 제시한다. 이를 위해, 본 발명은, 키는 데이터베이스 소유자만이 소유하게 하고 외부업체의 데이터베이스 관리자는 단지 튜플 단위로 암호화된 암호화 데이터베이스와 인덱스로 사용되는 블룸필터만을 열람할 수 있게 함으로써 암호화된 데이터를 해독할 수 없도록 한다.Further, in the present invention, when a database provided by an external cloud company is used without directly managing the database, the database manager of the external company intentionally uses the key managed by the database manager to store the sensitive information stored in the database We suggest a structure to make it impossible to browse. To this end, the invention allows the key owner to be owned only by the database owner, and the database administrator of the external vendor can only view the Bloom filter, which is used as an encryption database and index encrypted by the tuple, to decrypt the encrypted data I will not.

또한, 본 발명은 튜플 단위의 블룸필터 값들은 의료정보 분석용으로 사용될 수 있게 한다. 블룸필터 값에 대한 긍정오류(false positive) 확률을 최소화하여, 최소한의 오차 범위를 가진 분포 데이터를 추출할 수 있다. 이는 암호화 정보는 열람하지 않더라도 데이터베이스 정보에 대한 통계치를 알 수 있게 하는 것이다. 예를 들면 데이터베이스에 기록된 튜플 단위의 블룸필터 값만으로 서울에 사는 50대 남성의 혈액형의 분포를 구할 수 있다. 이는 의료정보에 대한 개인정보를 보호할 수 있는 역할을 한다.In addition, the present invention allows Bloom filter values in tuple units to be used for medical information analysis. It is possible to extract distribution data having a minimum error range by minimizing a false positive probability for the Bloom filter value. This makes it possible to know the statistics on the database information without browsing the encryption information. For example, the Bloom filter value in tuple units recorded in the database can be used to obtain the blood type distribution of men in their 50s living in Seoul. This protects personal information about medical information.

먼저, 블룸필터에 대해 설명한다. 블룸필터란, 데이터의 존재유무를 확인할 수 있는 비트 어레이로 정의된다. 도 1은 블룸필터를 설명하기 위한 일예시도이다.First, the Bloom filter will be described. A bloom filter is defined as a bit array that can check the presence or absence of data. 1 is an exemplary view for explaining a Bloom filter.

데이터의 종류는 숫자형 데이터와 문자형 데이터로 구분된다. 문자 데이터의 검색에는 데이터 자체인 키워드를 이용한다. 반면에 숫자 데이터의 경우에는 구간을 나타내는 수치를 사용한다. 예를 들어, 주민등록번호의 경우, 주민등록번호의 상위 6바이트는 년/월/일을 의미한다. 그러므로 상위 첫 바이트를 이용하여 10년 단위의 키워드로 사용할 수 있으며, 상위 두 바이트를 이용하여 년 단위의 키워드로 사용할 수 있다. 또한 세 번째와 네 번째 바이트는 월을 의미하는 키워드로 사용할 수 있다. 마찬가지로 주민등록번호의 하위 7바이트 중 첫 번째 바이트는 성별을 의미하는 키워드로 사용될 수 있다. 이와 같이 숫자 데이터에 대하여 다양한 범위형 키워드를 사용하여 블룸필터에 저장함으로써, 범위연산과 집계연산 및 통계분석에 유용하게 사용될 수 있다.The type of data is divided into numeric data and character data. To retrieve character data, keywords that are data itself are used. On the other hand, in the case of numerical data, a numerical value indicating an interval is used. For example, in the case of a resident registration number, the top six bytes of the resident registration number means year / month / day. Therefore, it can be used as a 10-year unit keyword by using the upper first byte, and can be used as a year unit keyword by using the upper two bytes. In addition, the third and fourth bytes can be used as keywords for the month. Likewise, the first byte of the lower 7 bytes of the resident registration number can be used as a keyword indicating gender. Thus, by storing various numerical data in Bloom filter using various range type keywords, it can be useful for range calculation, aggregation calculation and statistical analysis.

먼저, 데이터 검색에 필요한 키워드와 다양한 범위를 나타내는 수치를 모두 데이터라고 정의한다. 도 1에서 데이터는 k 개의 해쉬(hash)함수를 통과한다. 해쉬함수의 계산결과는 블룸필터의 크기 m보다 작으며, 해쉬함수의 결과가 블룸필터에 저장된다.First, the data required to search for data and the numerical values indicating various ranges are defined as data. In Figure 1, the data passes through k hash functions. The calculation result of the hash function is smaller than the size m of the Bloom filter, and the result of the hash function is stored in the Bloom filter.

블룸필터의 초기값은 '0'으로 초기화되어 있으며, 해쉬함수의 결과에 따라 해당 비트가 '1'로 세트된다. 이렇게 저장된 블룸필터의 값은 데이터의 존재 유무를 확인하기 위해 사용된다. 즉, 데이터의 존재를 확인하기 위해서는 데이터의 해쉬함수 결과에 의해 블룸필터에서 k 개의 비트들이 전부 '1'로 설정되어 있으면 존재한다는 것을 확인할 수 있다. 또한 k 개의 비트 중 하나라도 '0'으로 설정되어 있으면 데이터가 존재하지 않는 것으로 알 수 있다. The initial value of the Bloom filter is initialized to '0', and the corresponding bit is set to '1' according to the result of the hash function. The value of the stored Bloom filter is used to check for the presence of data. That is, in order to confirm the existence of data, it can be confirmed that the k-bit is set to '1' in the bloom filter according to the result of the hash function of the data. Also, if any one of k bits is set to '0', it can be known that no data exists.

그러나 블룸필터의 각 비트는 '0'과 '1'로만 설정되기 때문에, 실제로 존재하지 않는 데이터에 대해서도 존재한다고 판단할 수 있다. 이를 긍정오류확률(false positive probability)이라고 하며, 이러한 확률을 최소화하기 위해서 적절한 크기의 m 비트를 사용한다.However, since each bit of the bloom filter is set to only '0' and '1', it can be determined that there is also data that does not actually exist. This is called a false positive probability, and an appropriate size of m bits is used to minimize this probability.

일반적으로 블룸필터의 크기가 m 비트이며, k 개의 해쉬함수를 사용하고, 블룸필터에 입력된 데이터의 개수가 n개일 때, 블룸필터의 긍정오류확률은 다음과 같은 식으로 표기된다.Generally, when the size of the Bloom filter is m bits, k hash functions are used, and the number of data input to the Bloom filter is n, the positive error probability of the Bloom filter is expressed by the following equation.

Figure 112013054419012-pat00001
Figure 112013054419012-pat00001

본 발명은 이러한 블룸필터의 특성을 이용하여, 블룸필터를 암호화된 데이터 검색을 위한 인덱스로 사용한다. 즉, 블룸필터를 이용한 기본 검색에서 데이터가 존재하는 것으로 판정되면, 튜플 단위로 암호화된 데이터에 대한 복호화 과정이 이루어지며, 또한 복호화된 데이터 중에서 긍정오류 부분을 제거하면 원하는 결과를 찾을 수 있다. The present invention uses the characteristics of the Bloom filter and uses the Bloom filter as an index for retrieving the encrypted data. That is, if it is determined that the data exists in the basic search using the Bloom filter, the decryption process is performed for the data encrypted in units of tuples, and a desired result can be found by removing the positive error part from the decrypted data.

다시, 도 1을 참조로 하면, 도 1은 블룸필터를 구축하는 방법을 나타낸 것이다.Referring again to FIG. 1, FIG. 1 illustrates a method for building a Bloom filter.

먼저 데이터 검색에 필요한 키워드와 범위를 나타내는 수치를 모두 데이터라 정의하고, 이러한 데이터는 k 개의 해쉬함수를 통과한다. 해쉬함수란 일방향 함수로서, 해쉬함수의 계산결과에 따른 결과는 블룸필터의 크기 m보다 작으며, 해쉬함수의 결과가 블룸필터에 저장된다. First, all the numerical values representing the keywords and ranges required for data retrieval are defined as data, and these data pass through k hash functions. The hash function is a one-way function. The result of the calculation of the hash function is smaller than the size m of the bloom filter, and the result of the hash function is stored in the bloom filter.

예를 들어 해쉬함수의 결과가 7이면, 블룸필터의 7번째 비트가 1로 설정된다. 블룸필터는 초기에 모든 비트들이 0으로 설정되어 있으므로, 해쉬함수의 결과에 따라 블룸필터를 1로 설정하는 것은 해당 데이터가 존재한다는 것을 나타내는 것이 된다.
For example, if the result of the hash function is 7, the seventh bit of the Bloom filter is set to one. Since the Bloom filter initially sets all the bits to 0, setting the Bloom filter to 1 according to the result of the hash function indicates that the corresponding data exists.

도 2는 본 발명에 따른 데이터베이스 암호화 방법을 설명하기 위한 일실시예 개념도이다.2 is a conceptual diagram for explaining a database encryption method according to the present invention.

도면에 도시된 바와 같이, 본 발명이 적용되는 시스템은, 데이터베이스 사용자 부분에 해당하는 DB 클라이언트(20)와, DB 서버(30)를 포함한다. DB 클라이언트(20)는 데이터의 소유자측 단말이고, DB 서버(30)는 데이터 관리를 담당하는 클라우드 서비스 업체측 서버일 수 있다. DB 클라이언트(20)와 DB 서버(30)는 네트워크를 통해 연결되어 있을 수 있다. DB 클라이언트(20)는 사용자 단말(도시되지 않음)에 포함될 수 있다.As shown in the figure, the system to which the present invention is applied includes a DB client 20 corresponding to a database user part and a DB server 30. The DB client 20 is the owner side terminal of the data, and the DB server 30 may be a server of the cloud service provider responsible for data management. The DB client 20 and the DB server 30 may be connected through a network. The DB client 20 may be included in a user terminal (not shown).

DB 클라이언트(20)는 평문 데이터베이스(10)의 내용을 튜플 단위로 암호화하는 동시에, 튜플 내 각 요소들에 대한 해쉬함수를 계산하고, 해쉬함수의 결과를 블룸필터로 구성한다.The DB client 20 encrypts the contents of the plain text database 10 in units of tuples, calculates a hash function for each element in the tuple, and constructs a result of the hash function as a bloom filter.

이러한 튜플 단위의 암호화 데이터와 블룸필터는 각각 테이블 형식으로 DB 서버(30)에 보관된다(도 6c 참조). 이와 같이 암호화된 데이터와 블룸필더가 각각 테이블 내의 별도의 필드로 보관되어, 실시간 검색이 용이하고, 조인연산에 더욱 효과적으로 대응할 수 있다. 이때, 조인연산이란, 두 개 이상의 테이블에서 관계되는 데이터를 추출하는 연산으로, 예를 들어 신상정보 테이블에서 1970년생을 검색하고, 성적 테이블에서 B 학점 이상인 학생을 동시에 검색하는 연산이다.  The encryption data and the Bloom filter in units of tuples are stored in the DB server 30 in the form of a table, respectively (see FIG. 6C). The encrypted data and the bloom field are stored as separate fields in the table, so that real-time retrieval is easy, and the user can more effectively cope with the join operation. In this case, the join operation is an operation for extracting related data from two or more tables. For example, it is an operation for searching for a student in 1970 in the personal information table and searching for a student having B or more in the grade table at the same time.

본 발명에 의하면, 모든 암호화 과정과 블룸필터 구성과정이 튜플 단위로 이루어지므로 추가 삽입, 혹은 삭제가 가능하다. DB 서버(30)내의 암호화된 DB 구성부분은 암호화된 데이터베이스(E_tuple)과 블룸필터 값(bloom)으로 표기될 수 있다.
According to the present invention, since all the encryption processes and the Bloom filter configuration process are performed on a tuple-by-tuple basis, additional insertion or deletion is possible. The encrypted DB configuration part in the DB server 30 can be represented by an encrypted database E_tuple and a Bloom filter value bloom.

도 3은 본 발명에 따라 구축된 암호화 데이터베이스를 이용하여 검색하는 과정을 설명하기 위한 일실시예 개념도이다.3 is a conceptual diagram for explaining a process of searching using an encryption database constructed according to the present invention.

사용자(40)가 작성한 평문 질의어(query)는 DB 클라이언트(20)에서 변형되어 DB 서버(30)로 전송된다.The plain-text query created by the user 40 is transformed in the DB client 20 and transmitted to the DB server 30. [

DB 클라이언트(20)는, 평문 질의어 내에 포함된 키워드를 추출하고, 해쉬함수를 이용하여 해쉬함수 결과값을 계산한다. 계산된 해쉬함수의 결과값으로 DB 서버(30)에 저장된 블룸필터의 비트가 설정되어 있는지 체크할 수 있도록 평문 질의어가 변형된다. 예를 들면 다음과 같다.The DB client 20 extracts keywords included in the plain-text query word, and calculates a hash function result value using the hash function. The plaintext query term is modified to check whether the bit of the Bloom filter stored in the DB server 30 is set as the result value of the calculated hash function. For example:

평문 질의어: 서울에 사는 AB형 혈액형을 가진 사람을 찾으시오.Plain text Query: Find someone with AB blood type living in Seoul.

평문 질의어 형식:Plain text query format:

SELECT * FROM Std_info WHERE address = '서울' and blood_type = 'AB'  SELECT * FROM Std_info WHERE address = 'Seoul' and blood_type = 'AB'

변형된 질의어 형식: Modified query format:

SELECT E_tuple FROM Std_info_bf SELECT E_tuple FROM Std_info_bf

WHERE ((CONVERT(bit, SUBSTRING(bloom, [h1],1)) & 1) = 1 WHERE ((CONVERT (bit, SUBSTRING (bloom, [h1], 1)) & 1) = 1

AND (CONVERT(bit, SUBSTRING(bloom, [h2],1)) & 1) = 1
AND (CONVERT (bit, SUBSTRING (bloom, [h2], 1) & 1) = 1

DB 서버(30)는 사용자(40)로부터 입력된 질의어에 포함된 키워드 '서울'과 'AB'에 대한 해쉬함수 결과값에 따른 비트들이 설정된 블룸필터를 찾고, 이에 해당하는 암호문을 DB 클라이언트 모듈(20)로 전송한다. The DB server 30 finds the bloom filter in which the bits corresponding to the result values of the hash function for the keywords 'Seoul' and 'AB' included in the query entered from the user 40 are found and transmits the corresponding ciphertext to the DB client module 20).

DB 클라이언트(20)는 이를 복호화키를 이용하여 복호화하여 긍정오류가 발생된 부분은 제외하고 최종 결과를 평문으로 출력할 수 있다.
The DB client 20 may decode the decrypted key using the decryption key to exclude the part where the positive error has occurred, and output the final result as a plain text.

도 4는 본 발명에 따라 구축된 암호화 데이터베이스를 이용하여 통계 데이터를 추출하는 과정을 설명하기 위한 일예시도이다.FIG. 4 is a diagram for explaining a process of extracting statistical data using an encryption database constructed according to the present invention.

도 3을 통해 설명한 바와 같이, 이 경우에도, 사용자(40)가 입력한 평문 질의를, DB 클라이언트(20)가 변형하여 DB 서버(30)로 전송한다.3, the DB client 20 modifies the plain text query input by the user 40 and transmits it to the DB server 30 as well.

즉, DB 클라이언트(20)는 평문 질의어 내에 포함된 키워드를 추출하고, 해쉬함수를 이용하여 해쉬함수 결과값을 계산하고, 계산된 해쉬함수의 결과값으로 DB 서버(30)에 저장된 블룸필터의 비트가 설정되어 있는지 체크할 수 있도록 평문 질의어가 변형된다. That is, the DB client 20 extracts keywords included in the plain-text query, calculates a hash function result using the hash function, and outputs the result of the hash function as a bit of the bloom filter stored in the DB server 30 Is set, the plain-text query is modified.

DB 서버(30)는 변형된 질의어를 수신하여, 해쉬함수 결과값에 따른 비트들이 설정된 블룸필터를 찾아, 이에 해당하는 블룸필터의 개수를 확인하여, 이를 DB 클라이언트(20)로 전송할 수 있다.The DB server 30 receives the modified query, finds the bloom filter in which bits corresponding to the hash function result value are set, confirms the number of bloom filters corresponding to the bloom filter, and transmits the bloom filter to the DB client 20.

이때, 도 3에서의 과정과는 달리, 암호문 데이터에 대한 복호화 과정이 필요 없으며, 블룸필터의 개수에 의해 통계 데이터를 추출할 수 있다. 이때, 발생가능한 긍정오류확률에 대해서는 식(1)을 이용하여 최소화할 수 있다. 예를 들어, k=1, m = cn 값을 이용하여 c 값을 조절함으로써, 긍정오류확률을 최소화할 수 있다. c=8 인 경우, 긍정오류 확률은 0.4 % 이하로 줄일 수 있다.
At this time, unlike the procedure in FIG. 3, a decryption process for ciphertext data is not necessary, and statistical data can be extracted by the number of Bloom filters. At this time, the possible positive error probability can be minimized by using Equation (1). For example, by adjusting the c value using k = 1 and m = cn, the probability of positive error can be minimized. For c = 8, the probability of positive error can be reduced to less than 0.4%.

도 5는 본 발명에 따른 암호화 방법을 설명하기 위한 일실시예 흐름도이다.5 is a flowchart illustrating an encryption method according to an embodiment of the present invention.

도면에 도시된 바와 같이, 본 발명의 데이터베이스 암호화 방법은, 평문 데이터베이스의 요소 단위에 대하여 키워드를 추출하고(S1), 추출한 키워드에 대해 해쉬함수를 적용한다(S2). 또한, DB 클라이언트(20)는, 해쉬함수를 적용한 해쉬함수 결과값을 블룸필터로 구성하여(S3), 블룸필터의 결과값을 DB 서버(30)로 전송한다(S4). S1 내지 S4는 데이터베이스에 대한 실시간 검색을 위한 인덱스 생성과정이라 할 수 있다 As shown in the figure, in the database encryption method of the present invention, a keyword is extracted for each element unit of a plain text database (S1), and a hash function is applied to the extracted keyword (S2). The DB client 20 constructs a hash function result value using the hash function as a bloom filter (S3), and transmits the result value of the bloom filter to the DB server 30 (S4). S1 through S4 may be referred to as an index generation process for real-time searching of a database

문자 데이터에 대해서는 키워드를 사용하여 블룸필터로 구성하고, 숫자 데이터에 대하여 다양한 범위형 키워드를 사용하여 블룸필터로 구성함으로써, 범위연산과 집계연산 및 통계분석에 유용하게 사용될 수 있음은, 이미 설명한 바와 같다. The fact that character data is constituted by a Bloom filter using a keyword and that a numerical data is constituted by a Bloom filter using various range type keywords can be used for range calculation and aggregation calculation and statistical analysis, same.

한편, DB 클라이언트(20)는, 평문 데이터베이스의 튜플 단위에 대하여, 암호화키를 이용하여 암호화를 수행하고(S5), 암호화한 튜플 단위의 암호문을 DB 서버(30)로 전송한다.On the other hand, the DB client 20 encrypts the tuple unit of the plaintext database using the encryption key (S5), and transmits the encrypted ciphertext unit encrypted to the DB server 30.

DB 서버(30)는, 블룸필터의 결과값과 튜플 단위의 암호문을 수신하여, 암호화 데이터베이스를 구축할 수 있다(S7).
The DB server 30 can receive the ciphertext of the tuple unit and the result value of the bloom filter to construct an encryption database (S7).

도 6a 내지 도 6c는 본 발명의 암호화 방법에 따른 결과를 설명하기 위한 일예시도로서, 도 6a는 평문 데이터를, 도 6b는 종래의 버킷 인덱스를 사용한 암호화 방법에 의해 암호화된 데이터를, 도 6c는 본 발명에 따라 블룸필터를 이용한 암호화 방법에 의해 암호화된 데이터를 나타낸다.6A to 6C are diagrams for explaining results according to the encryption method of the present invention. FIG. 6A shows plain text data, FIG. 6B shows data encrypted by an encryption method using a conventional bucket index, Represents data encrypted by the encryption method using the Bloom filter according to the present invention.

도 6b에 도시된 바와 같이, 종래 버킷 인덱스를 이용한 암호화 방법에 의하면 동일한 크기의 버킷을 사용하게 됨을 알 수 있고, 도 6c를 참조로 하면, 본 발명은 다양한 크기의 버킷을 이용하여 블룸필터로 구성됨을 알 수 있다.As shown in FIG. 6B, according to the encryption method using the conventional bucket index, it can be seen that buckets of the same size are used. Referring to FIG. 6C, the present invention is configured as a bloom filter using buckets of various sizes .

위의 도 6a 내지 도 6c의 예와 같은 데이터베이스에서, 사용자가 질의어를 '1971년생인 학생들을 찾으시오'라고 입력하는 경우, 결과를 나타내면 다음 표와 같다.In the database as in the examples of FIGS. 6A to 6C, when the user inputs the query term 'Find students born in 1971', the results are shown in the following table.

평문Plain text 버킷 인덱스 방식Bucket index method 블룸필터 방식Bloom filter method 처리 시간Processing time 0.0338010.033801 0.5997000.599700 0.2640150.264015 검색결과의 수Number of results 33323332 3336333363 33423342

또한, 위의 도 6a 내지 도 6c의 예와 같은 데이터베이스에서, 사용자가 질의어를 '1980년부터 1991년생까지의 학생들을 찾으시오'라고 입력하는 경우, 결과를 나타내면 다음 표와 같다.In the database shown in the example of FIGS. 6A to 6C, when the user inputs the query term 'Find students from 1980 to 1991,' the results are shown in the following table.

평문Plain text 버킷 인덱스 방식Bucket index method 블룸필터 방식Bloom filter method 처리 시간Processing time 0.0638360.063836 1.1905681.190568 0.7702440.770244 검색결과의 수Number of results 3997239972 6663766637 3998739987

위와 같이, 본 발명에 의하면, 종래 버킷 인덱스 방식에 비해, 처리 시간이 매우 빨라지고, 검색결과의 개수도 평문 데이터에 대한 검색결과의 수와 유사함을 알 수 있다.
As described above, according to the present invention, the processing time is much faster than the conventional bucket index method, and the number of retrieval results is also similar to the number of retrieval results for plaintext data.

데이터베이스에 저장된 민감한 개인정보를 보호하는 방법은 민감정보를 암호화하는 것이 최상의 방법이다. 그러나 데이터베이스가 일단 암호화되면 실시간 검색에 상당한 장애가 발생한다. 또한, DB 서버에서 데이터베이스를 암호화하는 경우, 데이터베이스 관리자에 의해 고의로 암호화 및 복호화 키가 누출될 수 있으며, 따라서, 암호화된 내용이 해독될 위험이 있다. 따라서, 데이터베이스의 소유자가 암호화 및 복호화 키를 소유하는 것이 안전하다.Encrypting sensitive information is the best way to protect sensitive personal information stored in the database. However, once the database is encrypted, there is a significant barrier to real-time scanning. In addition, when the database is encrypted in the DB server, the encryption / decryption key may be intentionally leaked by the database administrator, and thus the encrypted content may be decrypted. Therefore, it is safe for the owner of the database to own the encryption and decryption keys.

본 발명은, 이와 같이 데이터베이스 관리자와 소유자가 다른 환경, 즉 외주업체에 의해 운영되는 데이터베이스 혹은 클라우드 서비스 업체에서 관리되는 데이터베이스에 대하여, 데이터베이스의 소유자 만의 합법적인 권한과 함께, 암호화된 데이터베이스에 대한 실시간 검색이 가능한 방법을 제안한다. In this way, the present invention is applied to a database managed by a database manager or a cloud service provider in a different environment, that is, a database managed by a subcontractor or the owner of the database, We suggest a possible method.

본 발명은 암호화된 데이터베이스에 대한 실시간 검색을 위하여 블룸필터를 이용한 인덱스 구성방법을 제안하였으며, 문자형 데이터에 대해서는 키워드를 사용하였으며, 숫자형 데이터에 대해서는 상위 바이트들을 이용하여 인덱스로서 블룸필터를 구성함으로써, 동일값 검색, 범위형 검색, 집계 연산 등이 가능한 구조로 제안하였다. The present invention proposes a method for constructing an index using a Bloom filter for real-time retrieval of an encrypted database. A keyword is used for character data, and a Bloom filter is configured as an index using upper bytes for numeric data, It is proposed that the same value retrieval, range type retrieval, and aggregation operation are possible.

또한, 본 발명은 통계 데이터 분석을 위해서는 오로지 블룸필터만을 체크함으로써 분포를 알 수 있다. 예를 들어, '1970년대에 태어난 여아의 혈액형 분포'와 같은 형태의 범위형 질의어를 일반적인 암호화된 데이터베이스에서 처리하기 위해서는 상당한 시간이 소요되었지만, 본 발명에 의하면, 10년, 1년, 월, 성별 단위의 다양한 종류의 키워드를 사용함으로써, 질의어의 범위에 적합한 키워드가 블룸필터에 저장되어 있기 때문에 보다 빠르게 실시간 검색이 가능하다.Further, in order to analyze the statistical data, the present invention can know the distribution by checking only the Bloom filter. For example, although it took a considerable time to process a range-type query such as 'blood type distribution of a girl born in the 1970's' in a general encrypted database, according to the present invention, a 10-year, 1-year, By using various kinds of keywords of the unit, since the keyword suitable for the range of the query term is stored in the Bloom filter, it is possible to perform real-time searching more quickly.

또한, 본 발명은, 데이터의 삽입 및 삭제가 개별적으로 가능한 것으로서, 데이터베이스를 외주업체에서 관리하는 경우에도 그 운용이 용이하며, 데이터베이스를 내부에서 보관하는 경우에도 보안을 효과적으로 유지할 수 있는 동시에, 실시간 검색이 가능하다.
In addition, the present invention is capable of individually inserting and deleting data, and is easy to operate even when a database is managed by a subcontractor. Security can be effectively maintained even when a database is stored internally, This is possible.

이상에서 본 발명에 따른 실시예들이 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 범위의 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 다음의 특허청구범위에 의해서 정해져야 할 것이다.
While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of the invention as defined by the appended claims. Accordingly, the true scope of the present invention should be determined by the following claims.

20: DB 클라이언트 30: DB 서버20: DB client 30: DB server

Claims (10)

삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 숫자 데이터와 문자 데이터를 포함하는 평문 데이터베이스의 요소단위에 대해 블룸필터를 구성하여 인덱스를 생성하는 단계; 상기 평문 데이터베이스의 튜플단위를 소정의 암호화 키를 이용하여 암호화를 수행하여, 상기 암호화된 튜플을 생성하는 단계; 상기 블룸필터와 상기 암호화된 튜플을 데이터베이스 서버로 전송하는 단계; 상기 데이터베이스 서버가 상기 암호화된 튜플과 상기 블룸필터를 테이블내 개별 필드로 저장하여 암호화된 데이터베이스를 구축하는 단계를 포함하여 암호화한 암호화된 데이터베이스를 상기 데이터베이스 클라이언트 단말에서 검색하는 방법에 있어서, 상기 인덱스를 생성하는 단계는, 상기 평문 데이터베이스의 요소단위에 대하여 키워드를 추출하는 단계; 추출한 키워드에 대해 해쉬함수를 적용하는 단계; 및 해쉬함수 결과값을 블룸필터로 구성하는 단계를 포함하고, 상기 검색방법은,
사용자가 입력한 평문 질의어에 포함된 키워드를 추출하는 단계;
추출한 키워드에 대해 해쉬함수를 적용하는 단계;
해쉬함수 결과를 이용하여, 상기 데이터베이스 서버에 저장된 블룸필터의 비트가 설정되어 있는지 체크할 수 있도록 질의어를 변형하여 상기 데이터베이스 서버에 전송하는 단계;
상기 데이터베이스 서버로부터, 변형된 질의어에 포함된 해쉬함수 결과에 따른 비트가 설정된 블룸필터에 해당하는 암호문을 수신하는 단계; 및
수신된 암호문을 복호화하는 단계를 포함하는 검색방법.
Comprising the steps of: constructing a Bloom filter for element units of a plaintext database including numeric data and character data to generate an index; Encrypting the tuple unit of the plain text database using a predetermined encryption key to generate the encrypted tuple; Transmitting the Bloom filter and the encrypted tuple to a database server; And storing the encrypted tuple and the Bloom filter as individual fields in a table, the database server constructing an encrypted database, the method comprising the steps of: The generating step may include: extracting a keyword for each element unit of the plain text database; Applying a hash function to the extracted keyword; And constructing a hash function result value as a Bloom filter,
Extracting a keyword included in a plain-text query input by a user;
Applying a hash function to the extracted keyword;
Transforming the query term so as to check whether the bit of the Bloom filter stored in the database server is set using the hash function result and transmitting the modified query term to the database server;
Receiving, from the database server, a ciphertext corresponding to a Bloom filter in which a bit according to a hash function result included in the modified query term is set; And
And decrypting the received ciphertext.
숫자 데이터와 문자 데이터를 포함하는 평문 데이터베이스의 요소단위에 대해 블룸필터를 구성하여 인덱스를 생성하는 단계; 상기 평문 데이터베이스의 튜플단위를 소정의 암호화 키를 이용하여 암호화를 수행하여, 상기 암호화된 튜플을 생성하는 단계; 상기 블룸필터와 상기 암호화된 튜플을 데이터베이스 서버로 전송하는 단계; 상기 데이터베이스 서버가 상기 암호화된 튜플과 상기 블룸필터를 테이블내 개별 필드로 저장하여 암호화된 데이터베이스를 구축하는 단계를 포함하여 암호화한 암호화된 데이터베이스를 상기 데이터베이스 클라이언트 단말에서 검색하는 방법에 있어서, 상기 인덱스를 생성하는 단계는, 상기 평문 데이터베이스의 요소단위에 대하여 키워드를 추출하는 단계; 추출한 키워드에 대해 해쉬함수를 적용하는 단계; 및 해쉬함수 결과값을 블룸필터로 구성하는 단계를 포함하고, 상기 검색방법은,
사용자가 입력한 평문 질의어에 포함된 키워드를 추출하는 단계;
추출한 키워드에 대해 해쉬함수를 적용하는 단계;
해쉬함수 결과를 이용하여, 상기 데이터베이스 서버에 저장된 블룸필터의 비트가 설정되어 있는지 체크할 수 있도록 질의어를 변형하여 상기 데이터베이스 서버에 전송하는 단계; 및
상기 데이터베이스 서버로부터 변형된 질의어에 포함된 해쉬함수 결과에 따른 비트가 설정된 블룸필터의 개수를 수신하는 단계를 포함하는 추출방법.
Comprising the steps of: constructing a Bloom filter for element units of a plaintext database including numeric data and character data to generate an index; Encrypting the tuple unit of the plain text database using a predetermined encryption key to generate the encrypted tuple; Transmitting the Bloom filter and the encrypted tuple to a database server; And storing the encrypted tuple and the Bloom filter as individual fields in a table, the database server constructing an encrypted database, the method comprising the steps of: The generating step may include: extracting a keyword for each element unit of the plain text database; Applying a hash function to the extracted keyword; And constructing a hash function result value as a Bloom filter,
Extracting a keyword included in a plain-text query input by a user;
Applying a hash function to the extracted keyword;
Transforming the query term so as to check whether the bit of the Bloom filter stored in the database server is set using the hash function result and transmitting the modified query term to the database server; And
And receiving a number of bloom filters in which a bit according to the hash function result included in the modified query term is set from the database server.
KR1020130070095A 2013-06-19 2013-06-19 Method for encrypting database and method for real-time search thereof KR101476039B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130070095A KR101476039B1 (en) 2013-06-19 2013-06-19 Method for encrypting database and method for real-time search thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130070095A KR101476039B1 (en) 2013-06-19 2013-06-19 Method for encrypting database and method for real-time search thereof

Publications (1)

Publication Number Publication Date
KR101476039B1 true KR101476039B1 (en) 2014-12-23

Family

ID=52679804

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130070095A KR101476039B1 (en) 2013-06-19 2013-06-19 Method for encrypting database and method for real-time search thereof

Country Status (1)

Country Link
KR (1) KR101476039B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273467A (en) * 2017-06-06 2017-10-20 南京搜文信息技术有限公司 A kind of Security Index structure and its building method for supporting to can search for encryption
CN107659405A (en) * 2017-11-01 2018-02-02 南京国电南自电网自动化有限公司 The encrypting and decrypting method that data communicate between a kind of transformer station boss station
CN110096899A (en) * 2019-04-29 2019-08-06 腾讯科技(深圳)有限公司 A kind of data query method and device
WO2021066257A1 (en) * 2019-10-01 2021-04-08 인하대학교 산학협력단 Efficient ransomware detection method and system using bloom-filter
US20220027498A1 (en) * 2020-07-21 2022-01-27 4IQ, Inc. Secure exchange of password presence data
CN114491613A (en) * 2021-11-11 2022-05-13 北京航空航天大学 Efficient searchable agent privacy set intersection method and device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120020014A (en) * 2010-08-27 2012-03-07 고려대학교 산학협력단 Set operation system for protecting privacy and method thereof
JP2013506215A (en) * 2009-09-29 2013-02-21 エヌイーシー ヨーロッパ リミテッド Method and system for stochastic processing of data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013506215A (en) * 2009-09-29 2013-02-21 エヌイーシー ヨーロッパ リミテッド Method and system for stochastic processing of data
KR20120020014A (en) * 2010-08-27 2012-03-07 고려대학교 산학협력단 Set operation system for protecting privacy and method thereof

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SAAR COHEN , PRINCETON UNIVERSITY , COMPUTER SCIENCE, (2003.06) *
유천영 외 , 한국정보통신학회논문지 , V.16 NO.5, 2012년, PP-939-946 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273467A (en) * 2017-06-06 2017-10-20 南京搜文信息技术有限公司 A kind of Security Index structure and its building method for supporting to can search for encryption
CN107659405A (en) * 2017-11-01 2018-02-02 南京国电南自电网自动化有限公司 The encrypting and decrypting method that data communicate between a kind of transformer station boss station
CN107659405B (en) * 2017-11-01 2019-11-22 南京国电南自电网自动化有限公司 The encrypting and decrypting method of data communication between a kind of substation boss station
CN110096899A (en) * 2019-04-29 2019-08-06 腾讯科技(深圳)有限公司 A kind of data query method and device
CN110096899B (en) * 2019-04-29 2023-06-23 腾讯科技(深圳)有限公司 Data query method and device
WO2021066257A1 (en) * 2019-10-01 2021-04-08 인하대학교 산학협력단 Efficient ransomware detection method and system using bloom-filter
KR20210039212A (en) * 2019-10-01 2021-04-09 인하대학교 산학협력단 Efficient ransomware detection method and system using bloom-filter
KR102259158B1 (en) * 2019-10-01 2021-06-02 인하대학교 산학협력단 Efficient ransomware detection method and system using bloom-filter
US20220027498A1 (en) * 2020-07-21 2022-01-27 4IQ, Inc. Secure exchange of password presence data
US11550949B2 (en) * 2020-07-21 2023-01-10 Constella Intelligence, Inc. Secure exchange of password presence data
CN114491613A (en) * 2021-11-11 2022-05-13 北京航空航天大学 Efficient searchable agent privacy set intersection method and device
CN114491613B (en) * 2021-11-11 2024-04-16 北京航空航天大学 Efficient searchable proxy privacy set intersection method and device

Similar Documents

Publication Publication Date Title
US10762241B1 (en) Third-party platform for tokenization and detokenization of network packet data
US10097522B2 (en) Encrypted query-based access to data
US9977918B2 (en) Method and system for verifiable searchable symmetric encryption
US9503432B2 (en) Secure linkage of databases
KR101476039B1 (en) Method for encrypting database and method for real-time search thereof
US9275250B2 (en) Searchable encryption processing system
US10664610B2 (en) Method and system for range search on encrypted data
US7426752B2 (en) System and method for order-preserving encryption for numeric data
US8639947B2 (en) Structure preserving database encryption method and system
US10615976B2 (en) Lightweight key management system for multi-tenant cloud environment
KR100839220B1 (en) Method for searching encrypted database and System thereof
US11082205B2 (en) Methods for securing data
US20230306131A1 (en) Systems and methods for tracking propagation of sensitive data
US10284535B2 (en) Secure database
CN103607420A (en) Safe electronic medical system for cloud storage
US10402587B2 (en) Application-level in-place encryption
US11295635B2 (en) Data processing system and data processing method
EP2775420A1 (en) Semantic search over encrypted data
KR100910303B1 (en) Data encryption and decryption apparatus using variable code table and method thereof
US20230144072A1 (en) Data storage server and client devices for securely storing data
Yao et al. Efficient and privacy-preserving search in multi-source personal health record clouds
CN106789007B (en) Network information examination method and system based on ciphertext retrieval
CN115455463A (en) Hidden SQL query method based on homomorphic encryption
Schroeder Pad and Chaff: secure approximate string matching in private record linkage
JP2018097625A (en) Database system, encrypted data search method, and computer program

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171110

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191125

Year of fee payment: 6