KR20100135533A - Method for converting user programs or queries into automated ones for transparent data encryption - Google Patents

Method for converting user programs or queries into automated ones for transparent data encryption Download PDF

Info

Publication number
KR20100135533A
KR20100135533A KR1020090053971A KR20090053971A KR20100135533A KR 20100135533 A KR20100135533 A KR 20100135533A KR 1020090053971 A KR1020090053971 A KR 1020090053971A KR 20090053971 A KR20090053971 A KR 20090053971A KR 20100135533 A KR20100135533 A KR 20100135533A
Authority
KR
South Korea
Prior art keywords
query
database
encryption
data
application
Prior art date
Application number
KR1020090053971A
Other languages
Korean (ko)
Other versions
KR101100724B1 (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 KR1020090053971A priority Critical patent/KR101100724B1/en
Publication of KR20100135533A publication Critical patent/KR20100135533A/en
Application granted granted Critical
Publication of KR101100724B1 publication Critical patent/KR101100724B1/en

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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PURPOSE: A method for automatically connecting encrypted database of an application program is provided to automate SQL query correction of work program constructed based on java. CONSTITUTION: A query correction module(20) receives query including data from an application program(S201). The query correction module requests data encryption to a encode/decode API(Application Programming Interface)(S202). The query correction module receives encrypted data from a encode/decode API(S203). The query correction module corrects query suitable for the encrypted data. The query correction module transmits the corrected query to a database connectivity driver(S204).

Description

응용 프로그램의 암호화 데이터베이스 자동 연동 방법{Method for Converting User Programs or Queries into Automated Ones for Transparent Data Encryption} Method for Converting User Programs or Queries into Automated Ones for Transparent Data Encryption}

본 발명은 응용 프로그램의 암화화 데이터베이스 자동 연동 방법에 관한 것으로서, 응용 프로그램에서 요청하는 쿼리의 컬럼이 암호화 대상일 경우, 자바 JDBC 드라이버로 가기 전에 JDBC 드라이버가 가로채어 상기 쿼리를 암복호화가 되게끔 자동으로 수정해주는 방법에 관한 것이다. The present invention relates to a method for automatically interlocking an encryption database of an application. When a column of a query requested by the application is an encryption target, the JDBC driver intercepts and decrypts the query before going to the Java JDBC driver. It is about how to fix it.

초창기의 컴퓨터에서는 운영체제가 제공하는 파일 시스템을 이용하여 데이터를 단순히 저장하고 읽기만 했지만, 점차 그러한 데이터를 효율적으로 관리하거나 접근하기 위해서는 응용프로그래머가 직접 파일 시스템 상에 필요한 응용프로그램을 개발해야 하는 필요성이 대두되었다. In the early days of computers, data was simply stored and read using the file system provided by the operating system. However, in order to efficiently manage or access such data, there is a need for an application programmer to develop an application program directly on the file system. It became.

하지만 사용자의 필요 및 요구에 따라서 응용 프로그램은 계속적으로 변경되어져야 하고, 심지어는 처음부터 다시 개발이 되어야 했다. 1960년대부터는 소개된 데이터베이스란 용어는 응용시스템들이 공유하기 위해 통합되고 저장된 운영 데이 터의 집합을 의미한다. 그리고 이러한 데이터 베이스를 관리하기 위한 시스템인 데이터베이스 관리 시스템(DBMS; Database Management System)이 도입되기 시작하였다. But depending on the user's needs and needs, the application had to be constantly changed, and even rebuilt from scratch. The term database, introduced since the 1960s, refers to a collection of operational data that is integrated and stored for sharing by application systems. In addition, a database management system (DBMS), which is a system for managing such a database, has been introduced.

데이터베이스 관리 시스템이란 다수의 컴퓨터 사용자들이 데이터베이스 안에 데이터를 기록하거나 접근할 수 있게 해주는 프로그램으로서 통상적으로 약어인 DBMS라는 용어를 더욱 많이 사용한다. A database management system is a program that allows a large number of computer users to write or access data in a database. The term DBMS is more commonly used.

목적은 데이터베이스 내의 정보를 검색하거나, 데이터베이스에 정보를 저장하기 편리하고 효율적인 환경을 제공하는데에 있다. 데이터베이스 관리 시스템은 운영체제 및 통신 관리 시스템과 함께 컴퓨터의 3대 기간 소프트웨어로 자리잡고 있다. The purpose is to provide a convenient and efficient environment for retrieving information in a database or storing information in a database. The database management system, along with the operating system and communication management system, has become the three main software of computers.

기능은 1) 축적된 자료구조의 정의, 2) 자료구조에 따른 자료의 축적, 3) 데이터베이스 언어에 의한 자료 검색 및 갱신, 4) 복수 사용자로부터 자료처리의 동시실행제어, 5) 갱신 중에 이상이 발생했을 때 갱신 이전의 상태로 복귀, 6) 정보의 기밀보호 등이다. 일반적 형태의 DBMS는 관계형 데이터베이스 관리 시스템(Relational DBMS)인데, RDBMS의 표준화된 사용자 및 프로그램 인터페이스를 SQL(Structured Query Language)이라고 한다. 관계형 DBMS로는 오러클(Oracle), 사이베이스(Sybase), 인포믹스(Infomix)등이 대표적이다. Functions include 1) the definition of accumulated data structures, 2) the accumulation of data according to data structures, 3) the retrieval and updating of data by database language, 4) the simultaneous execution control of data processing from multiple users, and 5) the failure during updating. 6) return to the state before the update when the error occurred. A common type of DBMS is a relational database management system. The standardized user and program interface of an RDBMS is called Structured Query Language (SQL). Typical relational DBMSs include Oracle, Sybase, and Infomix.

SQL은 구조화 질의어라고도 하는데, 데이터 정의어(DDL)와 데이터 조작어(DML)를 포함한 데이터베이스용 질의언어(query language)의 일종이다. 초기에는 IBM의 관계형 데이터베이스인 시스템에서만 사용되었으나 지금은 다른 데이터 베이스에서도 널리 사용되고 있다. SQL, also known as structured query language, is a type of query language for databases, including data definition words (DDL) and data manipulation words (DML). It was initially used only on systems that were IBM's relational database, but is now widely used in other databases.

응용 프로그램이 운영체제나 데이터베이스 관리 시스템과 같은 시스템 프로그램과 통신할 때에는 특정언어 및 메시지 형식을 사용하는데, 일반적으로 데이터 베이스를 이용하는 응용 프로그램을 개발할 때에는 데이터 베이스 데이터 쿼리부분을 응용 프로그램과 분리된 라이브러리인 응용 프로그램 인터페이스(API; Application Programming Interface)를 사용한다. API는 프로그램 내에서 실행을 위해 특정 서브루틴에 연결을 제공하는 함수를 호출하는 것으로 구현되고, 실질적으로 응용프로그램을 이용할 때에도 이미 구현되어 있는 API를 이용하는 것이 가장 효율적이다. When an application communicates with a system program such as an operating system or a database management system, it uses a specific language and message format. Generally, when developing an application that uses a database, the database data query part is a library that is separate from the application. Application Programming Interface (API) is used. An API is implemented by calling a function that provides a link to a specific subroutine for execution in a program, and it is most efficient to use an already implemented API even when using an application.

특히 , Java 환경에서 데이터베이스를 사용하는 응용 프로그램 개발 시 API 를 application 계층과 분리하여 개발하면, 데이터베이스 처리관련 코드를 application과 분리할 수 있어 프로그램 개발자 간 업무의 전문성과 효율성을 증대시킬 수 있으며, application code 변경으로 인한 데이터 베이스 코드의 변경을 최소화할 수 있다. In particular, when developing an application that uses a database in a Java environment, if API is separated from the application layer, database processing-related code can be separated from the application, thereby increasing the professionalism and efficiency of work among program developers. Minimize database code changes due to changes.

자바 데이터 베이스 커넥티버티(JDBC; Java Database connectivity)는 자바 프로그램 내에서 데이터 베이스 질의문 즉, SQL을 실행하기 위한 자바 API의 일종이다. 이는 데이터베이스 및 애플리케이션의 개발자들을 위한 표준 API를 제공하고 순수 자바 API만으로도 데이터베이스 응용업무를 만들게 해준다. 또한, 응용업무를 자바로 작성한다면 보유한 기종이나 소프트웨어에 따라 다르게 작성하지 않아도 되기 때문에 자바와 JDBC의 결합은 하나의 프로그램이 어디에서나 동작할 수 있게 해준다. 자바는 사용하기에 견고하고 안전하고 쉽고 이해하기 쉬우며 데이터베이스 응용업무를 만드는데 있어서 최적의 언어라 할 수 있고, 단지 필요한 것은 다양한 데이터 베이스에 연결하는 방법인데, JDBC는 이러한 것을 위한 도구이다. Java Database Connectivity (JDBC) is a Java API for executing database queries, or SQL, in Java programs. It provides a standard API for developers of databases and applications and allows you to create database applications with pure Java APIs. Also, if you write an application task in Java, you do not need to write it differently according to your own model or software, so the combination of Java and JDBC allows a single program to run anywhere. Java is the best language for building database applications that are robust, secure, easy to use, easy to understand, and all that's needed is to connect to a variety of databases. JDBC is the tool for this.

최근에는 보안을 위해 데이터베이스 내의 데이터를 암호화하는 제품들을 이용하고 있고, 이를 위한 유저 응용 프로그램들은 암호화 방식에 맞는 암호화/복호화 함수를 통해 작업이 수행되어야 한다. 이를 위해 데이터 암호화/복호화 API를 사용하고, 상기 데이터 암호화/복호화 API가, 암호화/복호화 대상이 되는 테이블/컬럼 등에 대한 정보를 저장하고 관리하는 Policy Daemon과의 통신을 수행하게 된다. Recently, products that encrypt data in a database have been used for security, and user application programs for this task must be performed through an encryption / decryption function suitable for the encryption method. To this end, a data encryption / decryption API is used, and the data encryption / decryption API communicates with a policy daemon that stores and manages information on tables / columns to be encrypted / decrypted.

다만, 이러한 종래의 API 방식의 데이터베이스 암호화 제품은 데이터베이스 내의 데이터를 암호화하기 위해서 적절한 암/복호화 함수를 명시적으로 호출하여 받은 암호화 결과값을 가지고 데이터베이스 관리 시스템에 저장하여 사용하고 있기 때문에, 데이터베이스 암호화 제품을 적용하기 위해서는 개별적으로 응용 프로그램의 소스코드를 모두 수정해야 한다는 문제점을 가지고 있다. However, the database encryption product of the conventional API type database encryption product is stored in the database management system with the encryption result received by explicitly calling the appropriate encryption / decryption function to encrypt the data in the database. To apply this problem, the source code of the application program must be modified individually.

도 1은 이러한 종래의 자바 응용프로그램과, 데이터베이스 관리 시스템, 자 바 데이터베이스 커넥티버티(JDBC), 데이터 암호화/복호화 API 및 Policy Daemon을 포함한 암호화 모듈 간의 개략적인 흐름도를 도시하고 있다. Figure 1 shows a schematic flowchart between such a conventional Java application and a cryptographic module including a database management system, a Java database connectivity (JDBC), a data encryption / decryption API, and a policy daemon.

응용 프로그램의 쿼리에 포함되는 데이터를 암호화하는 작업을 수행할 경우, 암호화 작업을 마친 데이터를 포함하는 쿼리는 자바 데이터베이스 커넥티버티가 인식할 수 있는 쿼리와는 상이하게 된다. 이러한 경우 기존에는 사용자가 응용 프로그램의 코드를 수정하여 암호화 작업을 마친 데이터를 포함하면서, 자바 데이터베이스 커텍티버티가 인식할 수 있는 쿼리의 형식으로 수정하는 작업이 필요하다. When you encrypt data included in an application's query, the query that contains the encrypted data is different from the query that Java database connectivity can recognize. In such a case, the user needs to modify the application's code to include the data that has been encrypted and modify it in the form of a query that can be recognized by Java Database Connectivity.

데이터를 실시간으로 암호화하기 위해서는 데이터베이스 암호화 제품과 데이터베이스 관리 시스템간의 연동이 필요한데, 현재까지는 이를 사용자가 직접 응용 프로그램의 소스 코드를 항상 수정하는 작업이 필요했기 때문에 제품의 단가가 증가하고, 개발자의 업무 부담이 증대하는 문제점이 있었다. In order to encrypt data in real time, it is necessary to interoperate between the database encryption product and the database management system. Up to now, the user has to modify the source code of the application by himself. There was an increasing problem.

본 발명은 상기에 언급되었던 종래의 직접 API를 통하여 암호화/복호화 작업을 수행함으로써 생기게 되는 문제점을 해결하기 위해, API 및 유저 응용프로그램 사이에 자바 데이터베이스 커넥티버티 랩퍼(JDBC wrapper) 모듈을 도입하고 있다. 즉, 데이터 암호화/복호화 API에서의 필요한 함수를 선택하고 그 결과를 받고, 초기의 쿼리문을 이에 맞게 수정하는 것을 자바 데이터베이스 커넥티버티 랩퍼(wrapper) 모듈이 자동적으로 처리를 함으로써 기존의 데이터베이스 암호화 제품 적용 시 소스 수정이 수반되어야 한다는 문제점을 해결하고 있다.The present invention introduces a Java database connectivity wrapper module between the API and a user application to solve the problems caused by performing encryption / decryption operations through the conventional direct API mentioned above. . That is, the Java database connectivity wrapper module automatically selects the necessary functions from the data encryption / decryption API, receives the results, and modifies the initial query accordingly. It solves the problem that source modification must be accompanied by application.

컴퓨터에 의해 실행되며, 데이터베이스 관리 시스템(50)과의 관계에서 암호화 자료를 처리하기 위하여 응용 프로그램(10)의 삽입(insert) 또는 갱신(update)쿼리(query)를 자동으로 수정하는 암호화 데이터베이스 자동 연동 방법에 있어서, 상기 방법은, 상기 응용 프로그램(10)으로부터 데이터가 포함된 쿼리를 전달받는 제1 단계; 암/복호화 API(30)로 상기 데이터의 암호화를 요청하는 제2 단계; 상기 암/복호화 API(30)로부터 암호화된 데이터를 전달받는 제3 단계; 상기 암호화된 데이터에 맞게 쿼리를 수정하는 제4 단계; 상기 수정된 쿼리를 데이터베이스 커넥티버티 드라이버(40)에 전달하는 제5단계를 포함한다. Encrypted database automatic linkage that is executed by a computer and automatically corrects an insert or update query of the application 10 to process encrypted data in relation to the database management system 50. In the method, the method comprises: a first step of receiving a query including data from the application (10); Requesting encryption of the data to an encryption / decryption API (30); A third step of receiving encrypted data from the encryption / decryption API (30); Modifying a query to fit the encrypted data; And a fifth step of delivering the modified query to the database connectivity driver 40.

상기 쿼리는 자바 데이터베이스 커넥티버티(JDBC)의 SQL 인 것을 특징으로 하고, SEED, ARIA, AES, DES 또는 3-DES의 암호화 알고리즘을 사용한다. The query is characterized in that the SQL of the Java Database Connectivity (JDBC), and uses an encryption algorithm of SEED, ARIA, AES, DES or 3-DES.

상기 데이터베이스 커넥티버티 드라이버(40)가 상기 수정된 쿼리에 따라 상기 암호화된 데이터를 데이터베이스 관리 시스템(50)에 삽입 또는 갱신하는 제6단계를 더 포함할 수 있다.The database connectivity driver 40 may further include a sixth step of inserting or updating the encrypted data into the database management system 50 according to the modified query.

또한, 컴퓨터에 의해 실행되며, 데이터베이스 관리 시스템(50)과의 관계에서 암호화 자료를 처리하기 위하여 응용 프로그램(10)의 독출(select) 쿼리(query)를 자동으로 수정하는 암호화 데이터베이스 자동 연동 방법에 있어서, 상기 방법은, 상기 응용 프로그램(10)으로부터 독출할 데이터의 정보가 포함된 쿼리를 전달받는 제1 단계; 상기 독출할 데이터의 정보에 맞게 쿼리를 수정하는 제2 단계; 상기 수정된 쿼리를 데이터베이스 커넥티버티 드라이버(40)에 전달하는 제3 단계; 상기 데이터베이스 커넥티버티 드라이버(40)로부터 암호화된 데이터를 전달받는 제4 단계; 암/복호화 API(30)로 상기 암호화된 데이터의 복호화를 요청하는 제5 단계; 상기 암/복호화 API(30)로부터 복호화된 데이터를 전달받는 제6 단계; 상기 복호화된 데이터를 상기 응용 프로그램(10)으로 전달하는 제7단계를 포함한다. In addition, in the encryption database automatic interworking method executed by a computer, which automatically modifies a select query of the application program 10 to process encrypted data in relation to the database management system 50. The method may include: a first step of receiving a query including information of data to be read from the application program; A second step of modifying a query according to the information of the data to be read; Transmitting the modified query to a database connectivity driver (40); A fourth step of receiving encrypted data from the database connectivity driver 40; A fifth step of requesting decryption of the encrypted data to an encryption / decryption API (30); A sixth step of receiving decrypted data from the encryption / decryption API (30); And a seventh step of transmitting the decrypted data to the application program 10.

이러한 자바 데이터베이스 커넥티버티 랩퍼 모듈을 도입함으로써, 자바 기반 으로 구축된 업무 프로그램의 SQL 쿼리 수정을 자동화할 수 있고, 암호화 모듈과의 연동 또한 시스템 내부적으로 자동화되어 있기 때문에 개발자의 부담을 최소화할 수 있는 효과를 제공한다. By introducing the Java database connectivity wrapper module, it is possible to automate the SQL query modification of the Java-based business program, and the linkage with the encryption module is also internally automated to minimize the burden on the developer. Provide effect.

이하 도면을 중심으로 본 발명에 대해 자세하게 설명하기로 한다. Hereinafter, the present invention will be described in detail with reference to the drawings.

도 2는 응용 프로그램의 삽입 또는 갱신 쿼리를 자동으로 수정하는 과정을 도식적으로 나타낸 도면을 나타낸다. 2 is a diagram schematically illustrating a process of automatically modifying an insert or update query of an application program.

상기 과정은 1) 응용 프로그램(10)으로부터 데이터가 포함된 쿼리가 쿼리 수정 모듈(20)로 전달되는 단계(S201), 2) 쿼리 수정 모듈(20)이 데이터 암/복호화 API(30)로 데이터의 암호화를 요청하는 단계(S202), 3) 데이터 암/복호화 API(30)가 데이터의 암화화를 수행한 후 이를 쿼리 수정 모듈(20)로 전달하는 단계(S203), 4) 쿼리 수정 모듈(20)이 암화화된 데이터에 맞게 쿼리를 수정하는 단계, 5) 쿼리 수정 모듈(20)이 수정된 쿼리를 데이터베이스 커넥티버티 드라이버(40)에 전달하는 단계(S204)로 구성된다. The process includes 1) a step in which a query including data from the application 10 is transmitted to the query modification module 20 (S201), and 2) the query modification module 20 sends data to the data encryption / decryption API 30. Requesting encryption (S202), 3) data encryption / decryption API 30 performs data encryption after passing it to the query modification module 20 (S203), and 4) query modification module ( 20) modifying the query according to the encrypted data, 5) the query modification module 20 passes the modified query to the database connectivity driver 40 (S204).

이후, 6) 데이터베이스 커넥티버티 드라이버(40)가 상기 수정된 쿼리에 따라 상기 암호화된 데이터를 데이터베이스 관리 시스템(50)에 삽입 또는 갱신하는 단계(S205)가 더 포함될 수 있다.Thereafter, 6) the database connectivity driver 40 may further include inserting or updating the encrypted data into the database management system 50 according to the modified query (S205).

상기 쿼리는 자바 데이터베이스 커넥티버티(JDBC)의 SQL 인 것을 특징으로 한다. The query is characterized in that the SQL of the Java Database Connectivity (JDBC).

SQL문은 크게 데이터 정의문, 제어문, 조작문, 트랜잭션 처리로 나누어 진다. 이중 삽입(insert) 및 갱신(update) 쿼리는 데이터 조작문에 속한다. SQL statements are divided into data definition statements, control statements, operation statements, and transaction processing. Double insert and update queries belong to data manipulation statements.

쿼리 수정 모듈(20)은 1) 응용 프로그램에서 넘겨진 쿼리를 파싱(Parcing)하고 SQL 요청을 분석하는 분석 모듈, 2) 설정 파일과 암호화 모듈인 Crypto 모듈을 처리하는 처리 모듈, 3) 자바 표준 JDBC 드라이버를 랩핑(wrapping)하는 랩핑 모듈의 세 가지로 구성된다. The query modification module 20 includes 1) an analysis module for parsing queries passed from an application and analyzing SQL requests, 2) a processing module for processing a Crypto module, a configuration file and an encryption module, and 3) a Java standard JDBC driver. It consists of three kinds of wrapping module that wraps.

도 4는 쿼리 수정 모듈(20)을 구성하는 각 모듈에 대한 설명도이다. 4 is an explanatory diagram for each module constituting the query modification module 20.

com.initech.driverwrapper.parser 모듈은 분석 모듈의 예이고, com.initech.driverwrapper.request 모듈은 처리 모듈의 예이고, com.initech.driverwrapper.wrapper 모듈은 래핑 모듈의 예이다. The com.initech.driverwrapper.parser module is an example of an analysis module, the com.initech.driverwrapper.request module is an example of a processing module, and the com.initech.driverwrapper.wrapper module is an example of a wrapping module.

도 2의 S201 단계를 com.initech.driverwrapper.parser 모듈에서 수행하고, S203 단계를 com.initech.driverwrapper.request 모듈에서 수행한다. 쿼리를 수정하는 단계 및 S204 단계는 com.initech.driverwrapper.wrapper 모듈에서 수행된다. Step S201 of FIG. 2 is performed in the com.initech.driverwrapper.parser module, and step S203 is performed in the com.initech.driverwrapper.request module. The step of modifying the query and the step S204 are performed in the com.initech.driverwrapper.wrapper module.

도 5는 com.initech.driverwrapper.parser 모듈에 속한 클래스에 관한 도식도를 나타낸다. 도 6은 com.initech.driverwrapper.parser 모듈을 구성하는 각 클래스에 대한 설명도이다. 5 shows a schematic diagram of a class belonging to the com.initech.driverwrapper.parser module. 6 is an explanatory diagram for each class constituting the com.initech.driverwrapper.parser module.

응용 프로그램으로부터 삽입 쿼리의 요청을 받으면 Insert 클래스에서 이를 파싱하는 작업을 수행하고, InsertRequest 클래스에서 삽입하기 위한 암호화와 관련된 행위를 처리하는 작업을 수행한다. When an application receives a request for an insert query, the Insert class parses it, and the InsertRequest class handles the encryption-related behavior for insertion.

독출 쿼리의 요청을 받으면 Select 클래스에서 이를 파싱하는 작업을 수행하고, 독출하기 위한 관련 암/복호화 행위를 처리하는 작업을 수행한다. 그 밖에 삭체(Delete) 쿼리 또는 갱신(update) 쿼리에 대한 처리도 가능하다. When a read query is requested, the Select class parses it and handles the relevant encryption / decryption behavior for reading. Other delete or update queries can also be processed.

도 7은 com.initech.driverwrapper.request 모듈을 구성하는 각 클래스에 대한 설명도이다. 이는 암호화 모듈인 Crypto 모듈을 호출하는 Encorder 클래스와 암호화 인자에 관련된 요청을 처리하는 EncryptedTables 클래스와, Application 클래스로 구성된다. 도 8은 com.initech.driverwrapper.wrapper 모듈을 구성하는 각 클래스에 대한 설명도이다. 각각의 클래스에 관한 설명은 도면에 자세하게 설명되어 있으므로, 이에 대한 중복 설명은 제외하기로 한다.7 is an explanatory diagram for each class constituting the com.initech.driverwrapper.request module. It consists of an Encorder class that calls the Crypto module, an encryption module, an EncryptedTables class that handles requests related to cryptographic arguments, and an Application class. 8 is an explanatory diagram for each class constituting the com.initech.driverwrapper.wrapper module. Description of each class is described in detail in the drawings, a duplicate description thereof will be omitted.

아래의 설정 파일은 암호화 대상을 설정하는 XML 파일의 예시이다. 내용은 암호화 대상 테이블의 SID(오라클의 경우), Table이름, Column 이름을 등록한다. 이 경우 쿼리 수정 모듈에서는 아래 기재된 암호화 대상 정보를 크로스 체크(cross check)하여 암/복호화 적용을 하게 된다. The following configuration file is an example of an XML file that sets the encryption target. The contents are registered SID (Oracle), Table name, and Column name of the table to be encrypted. In this case, the query modification module cross-checks the encryption target information described below and applies encryption / decryption.

예를 들어, 암호화 적용 전의 데이터가For example, data before encryption is applied

주민번호(Varchar(15)):700130-1735245 라고 하면,Social Security Number (Varchar (15)): 700130-1735245

암호화 적용 후 데이터는 After encryption is applied

주민번호(Varchar(45)):fZ4et74Hs4bAmsedhB6A== 와 같은 값을 얻을 수 있다. You can get a value like Social Security Number (Varchar (45)): fZ4et74Hs4bAmsedhB6A ==.

암호화 설정 파일의 예는 아래와 같다. An example of an encryption configuration file is shown below.

<ENCRYPTED INFO><ENCRYPTED INFO>

<DB SID=”ORA_SID”><DB SID = ”ORA_SID”>

<TABLE=”TEST_TABLE” COLUMN=”TEST_COLUMN”/><TABLE = ”TEST_TABLE” COLUMN = ”TEST_COLUMN” />

<TABLE=”TEST_TABLE2” COLUMN=”TEST_COLUMN2”/><TABLE = ”TEST_TABLE2” COLUMN = ”TEST_COLUMN2” />

</DB SID></ DB SID>

<DB SID=”ORA_SID2”><DB SID = ”ORA_SID2”>

<TABLE=”TEST_TABLE3” COLUMN=”TEST_COLUMN3”/><TABLE = ”TEST_TABLE3” COLUMN = ”TEST_COLUMN3” />

<TABLE="TEST_TABLE4" COLUMN="TEST_COLUMN4"/><TABLE = "TEST_TABLE4" COLUMN = "TEST_COLUMN4" />

</DB SID></ DB SID>

</ENCRYPTED INFO></ ENCRYPTED INFO>

도 9는 본 발명에 의한 응용 프로그램(10)의 암호화 데이터베이스 자동 연동 방법이 적용되지 않았을 때의 응용 프로그램 코드의 예이다. 9 is an example of an application program code when the encryption database automatic linkage method of the application program 10 according to the present invention is not applied.

번호, 컬럼이름, 이름의 필드를 갖는 테이블에 삽입 쿼리에 대해 암호화를 수행하는 것이다. ssdb.encrypt 함수는 데이터를 암호화 하는 함수이다. 쿼리 수정 모듈에서 쿼리에 포함된 데이터를 ssdb.encrypt 함수를 호출하여 암호화 작업을 요 청하여야 하는데, 이러한 부분이 자동화되지 못하고, 응용 프로그램의 소스 코드에 ssdb.encrypt 함수를 호출하는 부분을 데이터의 형식에 맞게 일일이 수정을 하여야 하는 불편함이 있다.To encrypt an insert query on a table with fields of number, column name, and name. The ssdb.encrypt function encrypts data. The query modification module needs to request the encryption operation by calling the ssdb.encrypt function on the data contained in the query. This part is not automated, and the part that calls the ssdb.encrypt function in the application's source code is the type of data. There is an inconvenience of having to modify one by one.

patchData에는 최종적으로 암호화된 데이터가 저장되어 있다. 이러한 암호화를 마친 후에, 테이블의 필드를 번호, patchData(암호화된 데이터), plainData(평문데이터)로 변경하여 새로운 쿼리를 작성하여야 한다.patchData stores the final encrypted data. After this encryption, the fields in the table must be changed to number, patchData (encrypted data), and plain Data (plain data) to create a new query.

암호화 과정에서 사용되는 알고리즘은 SEED, ARIA, AES 또는 3-DES의 암호화 알고리즘을 사용하는 것이 바람직하다.As the algorithm used in the encryption process, it is preferable to use an encryption algorithm of SEED, ARIA, AES or 3-DES.

도 10는 본 발명에 의한 응용 프로그램(10)의 암호화 데이터베이스 자동 연동 방법이 적용되었을 때의 응용 프로그램 코드의 예이다. 10 is an example of an application program code when the encryption database automatic linkage method of the application program 10 according to the present invention is applied.

사용하는 데이터베이스에 member 라는 테이블이 존재하고, member 테이블은 번호, 주민등록번호, 이름의 필드를 갖는다. The member table exists in the database you are using, and the member table has fields of number, social security number, and name.

주민등록번호와 관련된 ssn 필드에 평문값으로 쿼리를 작성한 후에, pstmt.executeUpdate() 함수에 의해 암호화 함수를 내부적으로 자동 호출하여 자바 데이터베이스 커넥티버티의 형식에 맞는 쿼리문으로 자동으로 수정하여 DB에 저장하게 된다. 따라서, 도 9에서와는 다르게 ssdb.encrypt 함수를 호출하거나, 개별적으로 쿼리문을 새로 생성하는 과정이 생략된다. After the query is written in the ssn field related to the social security number with the plain text value, the encryption function is automatically called internally by the pstmt.executeUpdate () function to automatically modify the query statement according to the type of Java database connectivity and save it in the DB. do. Therefore, unlike in FIG. 9, the process of calling the ssdb.encrypt function or generating a new query statement separately is omitted.

도 3은 응용 프로그램의 독출(select) 쿼리를 자동으로 수정하는 블록절차도를 나타낸다. 3 is a block diagram of automatically modifying a select query of an application.

상기의 과정은 1) 응용 프로그램(10)으로부터 독출할 데이터의 정보가 포함된 쿼리가 쿼리 수정 모듈(20)로 전달되는 단계(S301), 2) 쿼리 수정 모듈(20)이 독출할 데이터의 정보에 맞게 전달받은 쿼리를 수정하는 단계, 3) 쿼리 수정 모듈(20)이 수정된 쿼리를 데이터베이스 커넥티버티 드라이버(40)에 전달하는 단계(S302), 4) 데이터베이스 커넥티버티 드라이버(40)가 수정된 쿼리를 바탕으로 데이터베이스 관리시스템(50)으로부터 암호화된 데이터를 독출하는 단계(S303), 5) 데이터베이스 커넥티버티 드라이버(40)가 독출한 암호화된 데이터를 쿼리 수정 모듈(20)로 전달하는 단계(S304), 6) 쿼리 수정 모듈(20)이 암/복호화 API(30)로 암호화된 데이터의 복호화를 요청하는 단계(S305), 7) 쿼리 수정 모듈(20)이 암/복호화 API로부터 복호화된 데이터를 전달받는 단계(S306), 8) 쿼리 수정 모듈(20)이 전달받은 복호화된 데이터를 응용 프로그램으로 전달하는 단계(S307)로 이루어진다. In the above process, 1) the step including the information of the data to be read from the application 10 is transmitted to the query modification module 20 (S301), 2) the information of the data to be read by the query modification module 20 Modifying the received query according to, 3) transmitting the modified query to the database connectivity driver 40 by the query modification module 20 (S302), and 4) the database connectivity driver 40 Reading encrypted data from the database management system 50 based on the modified query (S303), 5) Delivering the encrypted data read by the database connectivity driver 40 to the query modification module 20. (S304), 6) the query modification module 20 requests decryption of the encrypted data with the encryption / decryption API 30 (S305), and 7) the query modification module 20 from the encryption / decryption API. Receiving the decrypted data (S306), 8) Qu Modification is made to the decoding data received module 20 is transferred to the step (S307) for transmitting to the application.

독출 쿼리에 사용되는 쿼리 수정 모듈(20)도 1) 응용 프로그램에서 넘겨진 쿼리를 파싱(Parcing)하고 SQL 요청을 분석하는 분석 모듈, 2) 설정 파일과 암호화 모듈인 Crypto 모듈을 처리하는 처리 모듈, 3) 자바 표준 JDBC 드라이버를 랩핑(wrapping)하는 랩핑 모듈의 세 가지로 구성된다. The query modification module 20 used for the read query is also 1) an analysis module for parsing a query passed from an application and analyzing an SQL request, 2) a processing module for processing a configuration file and a Crypto module, an encryption module, 3 It consists of three kinds of wrapping modules that wrap the Java standard JDBC driver.

상기의 과정 중에 S301 단계 및 S307 단계는 분석 모듈에서 수행하고, 쿼리를 수정하는 단계 및 S302 단계는 랩핑 모듈에서 수행한다. S305 단계 및S306 단계는 분석 모듈에서 수행한다. S303 단계 및 S304 단계는 쿼리 수정 모듈과 연결된 데이터베이스 커넥티버티 드라이버에서 쿼리 수정 모듈로부터 요청에 따라 수행된다. In the above process, steps S301 and S307 are performed by the analysis module, and steps of modifying a query and steps S302 are performed by the wrapping module. Steps S305 and S306 are performed in the analysis module. Steps S303 and S304 are performed according to a request from the query modification module in the database connectivity driver connected with the query modification module.

암호화 과정에서 사용한 필드값을 입력값으로 하는 쿼리를 생성하고, 데이터베이스로부터 암호화 데이터를 독출하는 함수인 stmt.executeQuery(query) 함수를 호출하는 모듈과, 독출된 암호화 데이터를 포함한 값을 입력값으로 하여 암/복호화 API(30)의 복호화 함수인 ssdb.decrypt 함수를 호출하는 모듈로 구성된다.  Create a query that takes the field value used as an input value as an input value, and uses the module that calls the stmt.executeQuery (query) function, which is a function that reads encrypted data from the database, and a value including the read encrypted data as an input value. It consists of a module for calling the ssdb.decrypt function, which is a decryption function of the encryption / decryption API (30).

도 11은 본 발명에 의한 응용 프로그램(10)의 암호화 데이터베이스 자동 연동 방법이 적용되지 않았을 때의 독출 쿼리와 관련된 어플리케이셔 코드의 예이다. 11 is an example of an applicator code related to a read query when the encryption database automatic linkage method of the application program 10 according to the present invention is not applied.

번호, 컬럼이름, 이름의 필드값과 이를 포함하는 테이블이름으로 구성된 독출쿼리를 수정하고, 데이터베이스로부터 상기 필드값을 독출하고, 이를 복호화하는 것이다. ssdb.decrypt 함수는 데이터를 복호화 하는 함수이다. 쿼리 수정 모듈에서 쿼리에 포함된 데이터를 ssdb.decrypt 함수를 호출하여 복호화 작업을 요청한다. patchData에는 최종적으로 복호화된 데이터가 저장된다. 삽입 쿼리의 과정과 마찬가지로, 이의 작업을 응용 프로그램의 소스코드에 직접 수정을 가하여 작성하고, 또한 관련된 암호화 쿼리에 맞게 일일이 코드를 수정하여야 한다.Modifying a read query consisting of a number, a column name, a field value of a name, and a table name including the same, reading the field value from a database, and decrypting it. The ssdb.decrypt function decrypts data. The query modification module requests the decryption operation by calling the ssdb.decrypt function. Finally, the decoded data is stored in patchData. As in the insert query process, its work must be written directly in the application program's source code, and the code must be modified manually to match the associated encryption query.

복호화 과정에서 사용되는 알고리즘은 SEED, ARIA, AES 또는 3-DES의 복호화 알고리즘을 사용하는 것이 바람직하다.As the algorithm used in the decoding process, it is preferable to use a decoding algorithm of SEED, ARIA, AES or 3-DES.

도 12는 본 발명에 의한 응용 프로그램(10)의 암호화 데이터베이스 자동 연동 방법이 적용었을 때의 독출 쿼리와 관련된 어플리케이셔 코드의 예이다.12 is an example of an applicator code related to a read query when the encryption database automatic linkage method of the application program 10 according to the present invention is applied.

사용하는 데이터베이스에 member 라는 테이블이 존재하고, member 테이블은 번호, 주민등록번호, 이름의 필드를 갖는다. 상기 ssn 필드는 필드값이 암호화 되어 저장되어 있는 상태이다. stmt.executeQuery(query) 함수를 호출하여 이를 바탕으로 수정된 쿼리를 작성한 후에 자동으로 암호화 데이터를 데이터베이스로부터 불러들인다. The member table exists in the database you are using, and the member table has fields of number, social security number, and name. The ssn field is a state in which a field value is encrypted and stored. After calling stmt.executeQuery (query) function to create modified query based on this, encrypted data is automatically loaded from the database.

본 발명은 상기와 같은 실시예에 의해 권리범위가 한정되는 것은 아니며, 본 발명의 기술적인 사상을 가지고 있다면 모두 본 발명의 권리범위에 해당된다고 볼 수 있으며, 본 발명은 특허청구범위에 의해 권리범위가 정해짐을 밝혀둔다.The present invention is not limited to the scope of the embodiments by the above embodiments, all having the technical spirit of the present invention can be seen to fall within the scope of the present invention, the present invention is the scope of the claims by the claims Note that is determined.

도 1은 종래의 응용프로그램과, 암/복호화 API 및 데이터베이스 관리 시스템 간의 블럭도1 is a block diagram between a conventional application and an encryption / decryption API and a database management system.

도 2는 응용 프로그램의 삽입 또는 갱신 쿼리를 자동으로 수정하는 과정을 도식적으로 나타낸 도면2 is a diagram illustrating a process of automatically modifying an insert or update query of an application.

도 3은 응용 프로그램의 독출 쿼리를 자동으로 수정하는 과정을 도식적으로 나타낸 도면3 is a diagram illustrating a process of automatically modifying a read query of an application.

도 4는 쿼리 수정 모듈(20)을 구성하는 각 모듈에 대한 설명도 4 is an explanatory diagram of each module constituting the query modification module 20

도 5는 com.initech.driverwrapper.parser 모듈에 속한 클래스에 관한 도식도5 is a schematic diagram of a class belonging to the com.initech.driverwrapper.parser module

도 6은 com.initech.driverwrapper.parser 모듈을 구성하는 각 클래스에 대한 설명도6 is an explanatory diagram of each class constituting the com.initech.driverwrapper.parser module

도 7은 com.initech.driverwrapper.request 모듈을 구성하는 각 클래스에 대한 설명도 7 is an explanatory diagram of each class constituting the com.initech.driverwrapper.request module

도 8은 com.initech.driverwrapper.wrapper 모듈을 구성하는 각 클래스에 대한 설명도8 is an explanatory diagram of each class constituting the com.initech.driverwrapper.wrapper module

도 9는 본 발명에 의한 응용 프로그램(10)의 암호화 데이터베이스 자동 연동 방법이 적용되지 않았을 때의 삽입 쿼리와 관련된 어플리케이셔 코드의 예9 is an example of an applicator code associated with the insert query when the encryption database automatic linkage method of the application 10 according to the present invention is not applied.

도 10은 본 발명에 의한 응용 프로그램(10)의 암호화 데이터베이스 자동 연동 방법이 적용었을 때의 삽입 쿼리와 관련된 어플리케이셔 코드의 예10 shows an example of an applicator code related to an insert query when the encryption database automatic linkage method of the application 10 according to the present invention is applied.

도 11은 본 발명에 의한 응용 프로그램(10)의 암호화 데이터베이스 자동 연동 방법이 적용되지 않았을 때의 독출 쿼리와 관련된 어플리케이셔 코드의 예11 is an example of an applicator code associated with a read query when the encryption database automatic linkage method of the application 10 according to the present invention is not applied.

도 12는 본 발명에 의한 응용 프로그램(10)의 암호화 데이터베이스 자동 연동 방법이 적용었을 때의 독출 쿼리와 관련된 어플리케이셔 코드의 예12 is an example of an applicator code associated with a read query when the encryption database automatic linkage method of the application 10 according to the present invention is applied.

Claims (7)

컴퓨터에 의해 실행되며, 데이터베이스 관리 시스템(50)과의 관계에서 암호화 자료를 처리하기 위하여 응용 프로그램의 삽입(insert) 또는 갱신(update) 쿼리(query)를 자동으로 수정하는 암호화 데이터베이스 자동 연동 방법에 있어서, 상기 방법은,In the encryption database automatic interworking method, which is executed by a computer and automatically corrects an insert or update query of an application program to process encrypted data in relation to the database management system 50. , The method, 상기 응용 프로그램으로부터 데이터가 포함된 쿼리를 전달받는 제1 단계;A first step of receiving a query including data from the application program; 암/복호화 API로 상기 데이터의 암호화를 요청하는 제2 단계;Requesting encryption of the data with an encryption / decryption API; 상기 암/복호화 API로부터 암호화된 데이터를 전달받는 제3 단계;A third step of receiving encrypted data from the encryption / decryption API; 상기 암호화된 데이터에 맞게 쿼리를 수정하는 제4 단계;Modifying a query to fit the encrypted data; 상기 수정된 쿼리를 데이터베이스 커넥티버티 드라이버에 전달하는 제5단계를 포함하는,And passing a modified query to a database connectivity driver. 응용 프로그램의 암호화 데이터베이스 자동 연동 방법How to automatically link the encryption database of the application 청구항 1항에 있어서,The method according to claim 1, 상기 쿼리는 자바 데이터베이스 커넥티버티(JDBC)의 SQL 인 것을 특징으로 하는,The query is characterized in that the SQL of the Java Database Connectivity (JDBC), 응용 프로그램의 암호화 데이터베이스 자동 연동 방법How to automatically link the encryption database of the application 청구항 1항에 있어서,The method according to claim 1, 상기 데이터베이스 커넥티버티 드라이버가 상기 수정된 쿼리에 따라 상기 암호화된 데이터를 데이터베이스 관리 시스템에 삽입 또는 갱신하는 제6단계를 더 포함하는,A sixth step of the database connectivity driver inserting or updating the encrypted data into a database management system according to the modified query; 응용 프로그램의 암호화 데이터베이스 자동 연동 방법How to automatically link the encryption database of the application 청구항 1항에 있어서, The method according to claim 1, SEED, ARIA, AES, DES 또는 3-DES의 암호화 알고리즘을 사용하는 Using encryption algorithms of SEED, ARIA, AES, DES or 3-DES 응용 프로그램의 암호화 데이터베이스 자동 연동 방법How to automatically link the encryption database of the application 컴퓨터에 의해 실행되며, 데이터베이스 관리 시스템과의 관계에서 암호화 자료를 처리하기 위하여 응용 프로그램의 독출(select) 쿼리(query)를 자동으로 수정하는 암호화 데이터베이스 자동 연동 방법에 있어서, 상기 방법은,A method for automatically interlocking a cryptographic database, which is executed by a computer and automatically modifies a select query of an application to process encrypted data in relation to a database management system. 상기 응용 프로그램으로부터 독출할 데이터의 정보가 포함된 쿼리를 전달받는 제1 단계;A first step of receiving a query including information of data to be read from the application program; 상기 독출할 데이터의 정보에 맞게 쿼리를 수정하는 제2 단계;A second step of modifying a query according to the information of the data to be read; 상기 수정된 쿼리를 데이터베이스 커넥티버티 드라이버에 전달하는 제3 단계;Transmitting the modified query to a database connectivity driver; 상기 데이터베이스 커넥티버티 드라이버로부터 암호화된 데이터를 전달받는 제4 단계;A fourth step of receiving encrypted data from the database connectivity driver; 암/복호화 API로 상기 암호화된 데이터의 복호화를 요청하는 제5 단계;A fifth step of requesting decryption of the encrypted data with an encryption / decryption API; 상기 암/복호화 API로부터 복호화된 데이터를 전달받는 제6 단계;A sixth step of receiving decrypted data from the encryption / decryption API; 상기 복호화된 데이터를 상기 응용 프로그램으로 전달하는 제7단계를 포함하는, A seventh step of delivering the decrypted data to the application program; 응용 프로그램의 암호화 데이터베이스 자동 연동 방법How to automatically link the encryption database of the application 청구항 5항에 있어서,The method according to claim 5, 상기 쿼리는 자바 데이터베이스 커넥티버티(JDBC)의 SQL 인 것을 특징으로 하는,The query is characterized in that the SQL of the Java Database Connectivity (JDBC), 응용 프로그램의 암호화 데이터베이스 자동 연동 방법How to automatically link the encryption database of the application 청구항 5항에 있어서, The method according to claim 5, SEED, ARIA, AES 또는 3-DES의 복호화 알고리즘을 사용하는 Using a decoding algorithm of SEED, ARIA, AES or 3-DES 응용 프로그램의 암호화 데이터베이스 자동 연동 방법How to automatically link the encryption database of the application
KR1020090053971A 2009-06-17 2009-06-17 Data Processing Method Between Encrypted Database and Application Program KR101100724B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090053971A KR101100724B1 (en) 2009-06-17 2009-06-17 Data Processing Method Between Encrypted Database and Application Program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090053971A KR101100724B1 (en) 2009-06-17 2009-06-17 Data Processing Method Between Encrypted Database and Application Program

Publications (2)

Publication Number Publication Date
KR20100135533A true KR20100135533A (en) 2010-12-27
KR101100724B1 KR101100724B1 (en) 2011-12-29

Family

ID=43509965

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090053971A KR101100724B1 (en) 2009-06-17 2009-06-17 Data Processing Method Between Encrypted Database and Application Program

Country Status (1)

Country Link
KR (1) KR101100724B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101329789B1 (en) * 2012-03-28 2013-11-15 이니텍(주) Encryption Method of Database of Mobile Communication Device
KR20180126853A (en) 2017-05-18 2018-11-28 뱅크웨어글로벌 주식회사 System and Method for automatic generation and execution of encryption SQL statements using meta-information and enterprise framework
CN109688116A (en) * 2018-12-11 2019-04-26 北京数盾信息科技有限公司 A kind of dense tubular system (DTS) for supporting dynamic expansion algorithm and operational capability
KR20200120372A (en) * 2019-04-12 2020-10-21 성균관대학교산학협력단 Storing fully-homomorphically encrypted data into databases

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101329789B1 (en) * 2012-03-28 2013-11-15 이니텍(주) Encryption Method of Database of Mobile Communication Device
KR20180126853A (en) 2017-05-18 2018-11-28 뱅크웨어글로벌 주식회사 System and Method for automatic generation and execution of encryption SQL statements using meta-information and enterprise framework
CN109688116A (en) * 2018-12-11 2019-04-26 北京数盾信息科技有限公司 A kind of dense tubular system (DTS) for supporting dynamic expansion algorithm and operational capability
KR20200120372A (en) * 2019-04-12 2020-10-21 성균관대학교산학협력단 Storing fully-homomorphically encrypted data into databases

Also Published As

Publication number Publication date
KR101100724B1 (en) 2011-12-29

Similar Documents

Publication Publication Date Title
US11475034B2 (en) Schemaless to relational representation conversion
US10936744B1 (en) Mathematical method for performing homomorphic operations
US8504844B2 (en) System, method, and computer-readable medium for cryptographic key rotation in a database system
AU2004254893B2 (en) Method and apparatus for encrypting database columns
US20050256742A1 (en) Data encryption applications for multi-source longitudinal patient-level data integration
EP2189925A2 (en) Database obfuscation system and method
US20090125540A1 (en) Method for executing federated database queries using aliased keys
US20150039901A1 (en) Field level database encryption using a transient key
Shmueli et al. Implementing a database encryption solution, design and implementation issues
US20200117745A1 (en) Dynamic data movement using application relationships with encryption keys in different environments
GB2519779A (en) Triplestore replicator
US20100030795A1 (en) Maintaining referential integrity while masking
US10528556B1 (en) Database methodology for searching encrypted data records
US10866955B2 (en) Storing multi-level metadata in database systems
CN113111082B (en) Structured query statement rewriting method, device, equipment and medium
US11438143B2 (en) Method and system for optimization of blockchain data storage
KR20140053898A (en) System and method for management of encrypted data
KR101100724B1 (en) Data Processing Method Between Encrypted Database and Application Program
US9525673B1 (en) Content protection for extract, transform, load (ETL) scripts
US7711675B2 (en) Database simulation of data types
US10528557B1 (en) Database methodology for searching encrypted data records
US20230205761A1 (en) Method of creating a distributed ledger for a blockchain via encapsulation of off-chain data
US11836130B2 (en) Relational database blockchain accountability
Beine et al. Bidirectional Transformations in Database Evolution: A Case Study" At Scale".
US11893016B1 (en) Secure predicate derivation of queries using metadata

Legal Events

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

Payment date: 20151111

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171011

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180921

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190930

Year of fee payment: 9