KR102576566B1 - Data encryption system and method thereof - Google Patents

Data encryption system and method thereof Download PDF

Info

Publication number
KR102576566B1
KR102576566B1 KR1020210063322A KR20210063322A KR102576566B1 KR 102576566 B1 KR102576566 B1 KR 102576566B1 KR 1020210063322 A KR1020210063322 A KR 1020210063322A KR 20210063322 A KR20210063322 A KR 20210063322A KR 102576566 B1 KR102576566 B1 KR 102576566B1
Authority
KR
South Korea
Prior art keywords
value
key
encryption
hash
algorithm
Prior art date
Application number
KR1020210063322A
Other languages
Korean (ko)
Other versions
KR20220155732A (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 KR1020210063322A priority Critical patent/KR102576566B1/en
Publication of KR20220155732A publication Critical patent/KR20220155732A/en
Application granted granted Critical
Publication of KR102576566B1 publication Critical patent/KR102576566B1/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 일 실시예에 따른 데이터 암호화 방법은 a) 서비스 인터페이스 모듈을 통해, 밸류를 저장하고자 하는 사용자 단말로부터 키와 밸류를 입력받는 단계; b) 키제너레이터 모듈을 통해, 데이터 암호화 시스템의 고유정보를 추출하는 단계; c) 키제너레이터 모듈을 통해, 상기 고유정보를 기반으로 제2 해쉬 알고리즘을 선정하는 단계; d) 인크립트 모듈을 통해, 상기 키를 제2 해쉬 알고리즘으로 해쉬하여 해쉬 키를 생성하는 단계; e) 키제너레이터 모듈을 통해, 상기 고유정보와 상기 해쉬 키를 기반으로 제2 암호화 알고리즘을 선정하는 단계; f) 키제너레이터 모듈을 통해, 제2 암호화 알고리즘에 관한 정보를 포함하는 암호화 키를 생성하는 단계; g) 인크립트 모듈을 통해, 상기 밸류를 상기 제2 암호화 알고리즘으로 암호화하여 암호화 밸류를 생성하는 단계; 및 h) 스토리지 모듈을 통해, 상기 해쉬 키와 상기 암호화 밸류를 저장소에 저장하는 단계를 포함한다.A data encryption method according to an embodiment of the present invention includes the steps of a) receiving a key and value from a user terminal that wants to store value through a service interface module; b) extracting unique information of the data encryption system through a key generator module; c) selecting a second hash algorithm based on the unique information through a key generator module; d) generating a hash key by hashing the key with a second hash algorithm through an encrypt module; e) selecting a second encryption algorithm based on the unique information and the hash key through a key generator module; f) generating an encryption key containing information about a second encryption algorithm through a key generator module; g) generating an encryption value by encrypting the value with the second encryption algorithm through an encrypt module; and h) storing the hash key and the encryption value in storage through a storage module.

Description

데이터 암호화 시스템 및 방법{DATA ENCRYPTION SYSTEM AND METHOD THEREOF}Data encryption system and method {DATA ENCRYPTION SYSTEM AND METHOD THEREOF}

본 발명은 데이터 암호화 시스템 및 방법에 관한 것이다.The present invention relates to data encryption systems and methods.

컴퓨터 장치에서 실행하는 클라이언트 프로그램은 서버와 연결하여 통신을 수행한다. 클라이언트/서버간 데이터 통신의 보안을 위해 암호화를 적용한다. 기존에는 일반적으로 데이터 통신의 암호화를 위해서는 개인 키 또는 패스워드를 로컬 컴퓨터 장치에 파일 또는 설정 파일 형태로 저장한다. 데이터 통신은 암호화를 통해 보호되더라도 암호화 키로 사용된 파일은 보호를 받지 못한다. 저장 장치의 유출로 인하여 암호화 키 정보가 유출되면 피해 데이터 통신까지 이르게 된다. 따라서, 저장하고자 하는 데이터를 암호화하여 저장하고, 이후 이를 복호화하여 불러오는 기술의 개발이 지속적으로 이루어지고 있다.A client program running on a computer device connects to the server and communicates. Encryption is applied to secure data communication between clients and servers. Conventionally, for encryption of data communication, private keys or passwords are generally stored in the form of a file or settings file on a local computer device. Even though data communication is protected through encryption, files used as encryption keys are not protected. If encryption key information is leaked due to a leak in the storage device, it can lead to damage to data communication. Accordingly, the development of technology to encrypt and store data to be stored, and then decrypt and retrieve it, is continuously being developed.

대한민국 등록특허공보 10-0799167Republic of Korea Registered Patent Publication 10-0799167 대한민국 등록특허공보 10-1443405Republic of Korea Patent Publication 10-1443405

본 발명의 일 실시예는 데이터를 입력 받은 후 이를 시스템의 고유정보를 기반으로 암호화하여 저장하며, 사용자가 필요할 경우 이를 다시 시스템의 고유정보를 기반으로 복호화 하여 사용자에게 제공할 수 있는 데이터 암호화 시스템 및 방법을 제공하는 것을 목적으로 한다.One embodiment of the present invention is a data encryption system that receives data, encrypts and stores it based on the unique information of the system, and, if necessary, decrypts it again based on the unique information of the system and provides it to the user. The purpose is to provide a method.

한편, 본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.Meanwhile, the technical problems to be achieved in the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly apparent to those skilled in the art from the description below. It will be understandable.

본 발명의 일 실시예에 따른 데이터 암호화 방법은 a) 서비스 인터페이스 모듈을 통해, 밸류를 저장하고자 하는 사용자 단말로부터 키와 밸류를 입력받는 단계; b) 키제너레이터 모듈을 통해, 데이터 암호화 시스템의 고유정보를 추출하는 단계; c) 키제너레이터 모듈을 통해, 상기 고유정보를 기반으로 제2 해쉬 알고리즘을 선정하는 단계; d) 인크립트 모듈을 통해, 상기 키를 제2 해쉬 알고리즘으로 해쉬하여 해쉬 키를 생성하는 단계; e) 키제너레이터 모듈을 통해, 상기 고유정보와 상기 해쉬 키를 기반으로 제2 암호화 알고리즘을 선정하는 단계; f) 키제너레이터 모듈을 통해, 제2 암호화 알고리즘에 관한 정보를 포함하는 암호화 키를 생성하는 단계; g) 인크립트 모듈을 통해, 상기 밸류를 상기 제2 암호화 알고리즘으로 암호화하여 암호화 밸류를 생성하는 단계; 및 h) 스토리지 모듈을 통해, 상기 해쉬 키와 상기 암호화 밸류를 저장소에 저장하는 단계를 포함한다.A data encryption method according to an embodiment of the present invention includes the steps of a) receiving a key and value from a user terminal that wants to store value through a service interface module; b) extracting unique information of the data encryption system through a key generator module; c) selecting a second hash algorithm based on the unique information through a key generator module; d) generating a hash key by hashing the key with a second hash algorithm through an encrypt module; e) selecting a second encryption algorithm based on the unique information and the hash key through a key generator module; f) generating an encryption key containing information about a second encryption algorithm through a key generator module; g) generating an encryption value by encrypting the value with the second encryption algorithm through an encrypt module; and h) storing the hash key and the encryption value in storage through a storage module.

상기 c) 단계는: c-1) 각각의 상기 고유정보에서 기 설정된 위치의 데이터를 추출하여 이진수로 변환하는 단계; c-2) 변환된 값에 배타적 논리합(exclusive-OR, EOR)을 수행하여 제1 EOR 값을 산출하는 단계; c-3) 상기 제1 EOR 값을 기 설정된 제1 해쉬 알고리즘의 총 개수로 나눈 나머지 값인 제1 나머지 값을 산출하는 단계; 및 c-4) 제1 해쉬 알고리즘 중 상기 제1 나머지 값을 고유번호로 갖는 해쉬 알고리즘을 제2 해쉬 알고리즘으로 선정하는 단계를 포함할 수 있다.The step c) includes: c-1) extracting data at a preset position from each of the unique information and converting it into binary numbers; c-2) calculating a first EOR value by performing exclusive-OR (EOR) on the converted value; c-3) calculating a first remainder value, which is a remainder value obtained by dividing the first EOR value by the total number of preset first hash algorithms; and c-4) selecting a hash algorithm having the first remainder value as a unique number among the first hash algorithms as the second hash algorithm.

상기 e) 단계는: e-1) 상기 해쉬 키를 상기 고유정보의 총 개수로 분할하여 해쉬 키 절편을 생성하는 단계; e-2) 각각의 상기 고유정보에서 기 설정된 위치의 데이터를 추출하여 키 생성 마스크 절편 중 어느 하나를 생성하는 단계; e-3) 상기 해쉬 키 절편에서 추출한 데이터와 각각의 상기 고유정보에서 추출한 데이터를 상기 키 생성 마스크 절편을 기반으로 조합하여 임시 키 절편을 생성하는 단계; e-4) 각각의 상기 임시 키 절편의 데이터를 이진수로 변환한 후 배타적 논리합(exclusive-OR, EOR)을 수행하여 제2 EOR 값을 산출하는 단계; e-5) 상기 제2 EOR 값을 기 설정된 제1 암호화 알고리즘의 총 개수로 나눈 나머지 값인 제2 나머지 값을 산출하는 단계; 및 e-6) 제1 암호화 알고리즘 중 상기 제2 나머지 값을 고유번호로 갖는 암호화 알고리즘을 제2 암호화 알고리즘으로 선정하는 단계를 포함할 수 있다.The step e) includes: e-1) dividing the hash key by the total number of unique information to generate a hash key fragment; e-2) generating one of the key generation mask fragments by extracting data at a preset position from each of the unique information; e-3) generating a temporary key fragment by combining data extracted from the hash key fragment and data extracted from each of the unique information based on the key generation mask fragment; e-4) converting the data of each temporary key fragment into binary numbers and then performing exclusive-OR (EOR) to calculate a second EOR value; e-5) calculating a second remainder value that is the remainder obtained by dividing the second EOR value by the total number of preset first encryption algorithms; and e-6) selecting, as the second encryption algorithm, an encryption algorithm that has the second remainder value as a unique number among the first encryption algorithms.

상기 e-3) 단계는: 상기 키 생성 마스크 절편의 n번째 값이 1인 경우, 상기 고유정보의 n번째 값을 상기 임시 키 절편의 n번째 값으로 설정하고, 상기 키 생성 마스크 절편의 n번째 값이 0인 경우 또는 상기 고유정보의 n번째 값이 존재하지 않는 경우, 상기 해쉬 키 절편의 n번째 값을 상기 임시 키 절편의 n번째 값으로 설정하는 단계이고, 상기 n은 0을 포함하는 양의 정수일 수 있다.Step e-3) is: when the nth value of the key generation mask fragment is 1, set the nth value of the unique information to the nth value of the temporary key fragment, and set the nth value of the key generation mask fragment to the nth value of the key generation mask fragment. If the value is 0 or the nth value of the unique information does not exist, setting the nth value of the hash key fragment as the nth value of the temporary key fragment, where n is a quantity including 0. It can be an integer of .

상기 f) 단계는: f-1) 상기 제2 EOR 값을 기 설정된 제1 해쉬 알고리즘의 총 개수로 나눈 나머지 값인 제3 나머지 값을 산출하는 단계; 및 f-2) 상기 임시 키 절편을 포함하는 임시 키의 좌측 끝단으로부터 제3 나머지 값에 해당하는 번째 값을 상기 제2 암호화 알고리즘의 고유번호로 대체하여 암호화 키를 생성하는 단계를 포함할 수 있다.The step f) includes: f-1) calculating a third remainder value, which is the remainder obtained by dividing the second EOR value by the total number of preset first hash algorithms; and f-2) generating an encryption key by replacing the third value corresponding to the third remainder from the left end of the temporary key including the temporary key fragment with the unique number of the second encryption algorithm. .

상기 g) 단계는: g-1) 키제너레이터 모듈로부터 상기 암호화 키와 상기 제2 암호화 알고리즘의 고유번호의 위치에 관한 정보를 반환받는 단계; g-2) 상기 암호화 키로부터 상기 제2 암호화 알고리즘의 고유번호를 추출하는 단계; 및 g-3) 상기 밸류를 상기 제2 암호화 알고리즘으로 암호화하여 상기 암호화 밸류를 생성하는 단계를 포함할 수 있다.The step g) includes: g-1) receiving information about the location of the encryption key and the unique number of the second encryption algorithm from the key generator module; g-2) extracting the unique number of the second encryption algorithm from the encryption key; and g-3) encrypting the value with the second encryption algorithm to generate the encryption value.

본 발명의 일 실시예에 따른 데이터 암호화 방법은 i) 서비스 인터페이스 모듈을 통해, 상기 밸류를 불러오고자 하는 사용자 단말로부터 상기 키를 입력받는 단계; j) 인크립트 모듈을 통해, 상기 키를 상기 제2 해쉬 알고리즘으로 해쉬하여 상기 해쉬 키를 생성하는 단계; k) 스토리지 모듈을 통해, 상기 저장소로부터 상기 해쉬 키에 대응되는 상기 암호화 밸류를 불러오는 단계; l) 인크립트 모듈을 통해, 상기 암호화 밸류를 상기 제2 암호화 알고리즘으로 복호화하여 상기 밸류를 생성하는 단계; 및 m) 서비스 인터페이스 모듈을 통해, 상기 사용자 단말에 상기 밸류를 출력하는 단계를 더 포함할 수 있다.A data encryption method according to an embodiment of the present invention includes the steps of i) receiving the key from a user terminal that wishes to retrieve the value through a service interface module; j) generating the hash key by hashing the key with the second hash algorithm through an encrypt module; k) retrieving the encryption value corresponding to the hash key from the storage through a storage module; l) generating the value by decrypting the encryption value with the second encryption algorithm through an encrypt module; and m) outputting the value to the user terminal through a service interface module.

본 발명의 일 실시예에 따른 데이터 암호화 시스템은 밸류를 저장하고자 하는 사용자 단말로부터 키와 밸류를 입력받고, 밸류를 불러오고자 하는 사용자 단말로부터 상기 키를 입력받은 경우 상기 밸류를 출력하도록 구성되는 서비스 인터페이스 모듈; 데이터 암호화 시스템의 고유정보를 추출하고, 상기 고유정보를 기반으로 제2 해쉬 알고리즘과 제2 암호화 알고리즘을 선정하도록 구성되는 키제너레이터 모듈; 상기 키를 상기 제2 해쉬 알고리즘으로 해쉬하여 해쉬 키를 생성하고, 상기 밸류를 상기 제2 암호화 알고리즘으로 암호화하여 암호화 밸류를 생성하거나 상기 암호화 밸류를 상기 제2 암호화 알고리즘으로 복호화하여 상기 밸류를 생성하도록 구성되는 인크립트 모듈; 및 상기 해쉬 키와 상기 암호화 밸류를 저장소에 저장하고, 상기 저장소로부터 상기 해쉬 키에 대응되는 암호화 밸류를 불러오도록 구성되는 스토리지 모듈을 포함한다.The data encryption system according to an embodiment of the present invention is a service configured to receive a key and value from a user terminal that wants to store value, and output the value when the key is input from a user terminal that wants to retrieve the value. interface module; a key generator module configured to extract unique information of the data encryption system and select a second hash algorithm and a second encryption algorithm based on the unique information; Hashing the key with the second hash algorithm to generate a hash key, encrypting the value with the second encryption algorithm to generate an encryption value, or decrypting the encryption value with the second encryption algorithm to generate the value. Consisting of an encrypt module; and a storage module configured to store the hash key and the encryption value in a storage, and retrieve the encryption value corresponding to the hash key from the storage.

상기 키제너레이터 모듈은: 데이터 암호화 시스템의 고유정보를 추출하도록 구성되는 고유정보 추출부; 상기 고유정보를 기반으로 상기 제2 해쉬 알고리즘을 선정하도록 구성되는 제2 해쉬 알고리즘 선정부; 상기 고유정보와 상기 해쉬 키를 기반으로 제2 암호화 알고리즘을 선정하도록 구성되는 제2 암호화 알고리즘 선정부; 및 상기 제2 암호화 알고리즘에 관한 정보를 포함하는 암호화 키를 생성하도록 구성되는 암호화 키 생성부를 포함할 수 있다.The key generator module includes: a unique information extraction unit configured to extract unique information of a data encryption system; a second hash algorithm selection unit configured to select the second hash algorithm based on the unique information; a second encryption algorithm selection unit configured to select a second encryption algorithm based on the unique information and the hash key; and an encryption key generator configured to generate an encryption key including information about the second encryption algorithm.

상기 제2 해쉬 알고리즘 선정부는: 각각의 상기 고유정보에서 기 설정된 위치의 데이터를 추출하여 이진수로 변환하고; 변환된 값에 배타적 논리합(exclusive-OR, EOR)을 수행하여 제1 EOR 값을 산출하고; 상기 제1 EOR 값을 기 설정된 제1 해쉬 알고리즘의 총 개수로 나눈 나머지 값인 제1 나머지 값을 산출하고; 제1 해쉬 알고리즘 중 상기 제1 나머지 값을 고유번호로 갖는 해쉬 알고리즘을 제2 해쉬 알고리즘으로 선정하도록 구성될 수 있다.The second hash algorithm selection unit: extracts data at a preset position from each of the unique information and converts it into binary numbers; Performing exclusive-OR (EOR) on the converted value to calculate a first EOR value; Calculating a first remainder value that is a remainder value obtained by dividing the first EOR value by the total number of preset first hash algorithms; Among the first hash algorithms, a hash algorithm having the first remainder value as a unique number may be selected as the second hash algorithm.

상기 제2 암호화 알고리즘 선정부는: 상기 해쉬 키를 상기 고유정보의 총 개수로 분할하여 해쉬 키 절편을 생성하고; 각각의 상기 고유정보에서 기 설정된 위치의 데이터를 추출하여 키 생성 마스크 절편 중 어느 하나를 생성하고; 상기 해쉬 키 절편에서 추출한 데이터와 각각의 상기 고유정보에서 추출한 데이터를 상기 키 생성 마스크 절편을 기반으로 조합하여 임시 키 절편을 생성하고; 각각의 상기 임시 키 절편의 데이터를 이진수로 변환한 후 배타적 논리합(exclusive-OR, EOR)을 수행하여 제2 EOR 값을 산출하고; 상기 제2 EOR 값을 기 설정된 제1 암호화 알고리즘의 총 개수로 나눈 나머지 값인 제2 나머지 값을 산출하고; 제1 암호화 알고리즘 중 상기 제2 나머지 값을 고유번호로 갖는 암호화 알고리즘을 제2 암호화 알고리즘으로 선정하도록 구성될 수 있다.The second encryption algorithm selection unit: generates a hash key fragment by dividing the hash key by the total number of unique information; extracting data at a preset location from each of the unique information to generate one of the key generation mask fragments; generating a temporary key fragment by combining data extracted from the hash key fragment and data extracted from each of the unique information based on the key generation mask fragment; converting the data of each temporary key fragment into binary numbers and then performing exclusive-OR (EOR) to calculate a second EOR value; Calculating a second remainder value that is a remainder value obtained by dividing the second EOR value by the total number of preset first encryption algorithms; Among the first encryption algorithms, the encryption algorithm having the second remainder value as a unique number may be selected as the second encryption algorithm.

상기 제2 암호화 알고리즘 선정부는: 상기 키 생성 마스크 절편의 n번째 값이 1인 경우, 상기 고유정보의 n번째 값을 상기 임시 키 절편의 n번째 값으로 설정하고; 상기 키 생성 마스크 절편의 n번째 값이 0인 경우 또는 상기 고유정보의 n번째 값이 존재하지 않는 경우, 상기 해쉬 키 절편의 n번째 값을 상기 임시 키 절편의 n번째 값으로 설정하도록 구성되고, 상기 n은 0을 포함하는 양의 정수일 수 있다.The second encryption algorithm selection unit: when the nth value of the key generation mask fragment is 1, sets the nth value of the unique information as the nth value of the temporary key fragment; If the nth value of the key generation mask fragment is 0 or the nth value of the unique information does not exist, the nth value of the hash key fragment is configured to be set as the nth value of the temporary key fragment, The n may be a positive integer including 0.

상기 암호화 키 생성부는: 상기 제2 EOR 값을 기 설정된 제1 해쉬 알고리즘의 총 개수로 나눈 나머지 값인 제3 나머지 값을 산출하고; 임시 키의 좌측 끝단으로부터 상기 제3 나머지 값에 해당하는 번째 값을 상기 제2 암호화 알고리즘의 고유번호로 대체하여 상기 암호화 키를 생성하도록 구성될 수 있다.The encryption key generator: calculates a third remainder value, which is a remainder value obtained by dividing the second EOR value by the total number of preset first hash algorithms; The encryption key may be generated by replacing the third value corresponding to the third remaining value from the left end of the temporary key with the unique number of the second encryption algorithm.

상기 인크립트 모듈은: 상기 키제너레이터 모듈로부터 상기 암호화 키와 상기 제2 암호화 알고리즘의 고유번호의 위치에 관한 정보를 반환받고; 상기 암호화 키로부터 상기 제2 암호화 알고리즘의 고유번호를 추출하고; 상기 밸류를 상기 제2 암호화 알고리즘으로 암호화하여 상기 암호화 밸류를 생성하도록 구성될 수 있다.The encrypt module: receives information regarding the location of the encryption key and the unique number of the second encryption algorithm from the key generator module; extracting a unique number of the second encryption algorithm from the encryption key; It may be configured to generate the encryption value by encrypting the value with the second encryption algorithm.

본 발명의 일 실시예에 따른 데이터 암호화 시스템 및 방법은 데이터를 입력 받은 후 이를 시스템의 고유정보를 기반으로 암호화하여 저장하며, 사용자가 필요할 경우 이를 다시 시스템의 고유정보를 기반으로 복호화 하여 사용자에게 제공할 수 있다.The data encryption system and method according to an embodiment of the present invention receives data, encrypts and stores it based on the system's unique information, and if the user needs it, decrypts it again based on the system's unique information and provides it to the user. can do.

한편, 본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.Meanwhile, the effects that can be obtained from the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below. You will be able to.

도 1은 본 발명의 일 실시예에 따른 데이터 암호화 시스템(10), 사용자 단말(20) 및 저장소(30)의 구성을 개략적으로 나타낸 도면이다.
도 2는 데이터 암호화 시스템(10)이 사용자 단말(20)로부터 입력 받은 밸류를 암호화하여 저장소(30)에 저장하는 과정을 나타낸 도면이다.
도 3은 고유정보를 기반으로 제2 해쉬 알고리즘을 선정하는 S300 단계를 보다 상세히 나타낸 도면이다.
도 4는 고유정보와 해쉬 키를 기반으로 제2 암호화 알고리즘을 선정하는 S500 단계 중 S510 내지 S530 단계를 보다 상세히 나타낸 도면이다.
도 5는 고유정보와 해쉬 키를 기반으로 제2 암호화 알고리즘을 선정하는 S500 단계 중 S540 내지 S560 단계를 보다 상세히 나타낸 도면이다.
도 6은 제2 암호화 알고리즘에 관한 정보를 포함하는 암호화 키를 생성하는 S600 단계를 보다 상세히 나타낸 도면이다.
도 7은 데이터 암호화 시스템(10)이 저장소(30)에 저장되었던 밸류를 복호화하여 사용자 단말(20)에 출력하는 과정을 나타낸 도면이다.
Figure 1 is a diagram schematically showing the configuration of a data encryption system 10, a user terminal 20, and a storage 30 according to an embodiment of the present invention.
FIG. 2 is a diagram showing a process in which the data encryption system 10 encrypts the value input from the user terminal 20 and stores it in the storage 30.
Figure 3 is a diagram showing in more detail the S300 step of selecting a second hash algorithm based on unique information.
Figure 4 is a diagram showing steps S510 to S530 in more detail among steps S500 of selecting a second encryption algorithm based on unique information and a hash key.
Figure 5 is a diagram showing steps S540 to S560 in more detail among steps S500 of selecting a second encryption algorithm based on unique information and a hash key.
Figure 6 is a diagram showing in more detail the step S600 of generating an encryption key including information about the second encryption algorithm.
FIG. 7 is a diagram showing a process in which the data encryption system 10 decrypts the value stored in the storage 30 and outputs it to the user terminal 20.

본 발명의 다른 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술 되는 실시 예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예는 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Other advantages and features of the present invention and methods for achieving them will become clear by referring to the embodiments described in detail below along with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and may be implemented in various different forms. The present embodiments are only provided to ensure that the disclosure of the present invention is complete and to provide common knowledge in the technical field to which the present invention pertains. It is provided to fully inform those who have the scope of the invention, and the present invention is only defined by the scope of the claims.

만일 정의되지 않더라도, 여기서 사용되는 모든 용어들(기술 혹은 과학 용어들을 포함)은 이 발명이 속한 종래 기술에서 보편적 기술에 의해 일반적으로 수용되는 것과 동일한 의미를 가진다.Even if not defined, all terms (including technical or scientific terms) used herein have the same meaning as generally accepted by the general art in the prior art to which this invention belongs.

일반적인 사전들에 의해 정의된 용어들은 관련된 기술 그리고/혹은 본 출원의 본문에 의미하는 것과 동일한 의미를 갖는 것으로 해석될 수 있고, 그리고 여기서 명확하게 정의된 표현이 아니더라도 개념화되거나 혹은 과도하게 형식적으로 해석되지 않을 것이다.Terms defined by general dictionaries may be interpreted as having the same meaning as they have in the related art and/or text of the present application, and should not be conceptualized or interpreted in an overly formal manner even if expressions are not clearly defined herein. won't

본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.The terms used in this specification are for describing embodiments and are not intended to limit the invention. As used herein, singular forms also include plural forms, unless specifically stated otherwise in the context.

명세서에서 사용되는 '포함한다' 및/또는 이 동사의 다양한 활용형들 예를 들어, '포함', '포함하는', '포함하고', '포함하며' 등은 언급된 조성, 성분, 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 조성, 성분, 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다. 본 명세서에서 '및/또는' 이라는 용어는 나열된 구성들 각각 또는 이들의 다양한 조합을 가리킨다.As used in the specification, 'comprises' and/or various conjugations of this verb, such as 'comprises', 'comprising', 'includes', 'comprises', etc., refer to the composition, ingredient, or component mentioned. A step, operation and/or element does not exclude the presence or addition of one or more other compositions, ingredients, components, steps, operations and/or elements. As used herein, the term 'and/or' refers to each of the listed components or various combinations thereof.

한편, 본 명세서 전체에서 사용되는 '~부', '~기', '~블록', '~모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미할 수 있다. 예를 들어 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미할 수 있다.Meanwhile, terms such as '~unit', '~unit', '~block', and '~module' used throughout this specification may mean a unit that processes at least one function or operation. For example, it can refer to software, hardware components such as FPGAs or ASICs.

그렇지만 '~부', '~기', '~블록', '~모듈' 등이 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부', '~기', '~블록', '~모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.However, '~part', '~unit', '~block', '~module', etc. are not limited to software or hardware. '~ part', '~ base', '~ block', and '~ module' may be configured to reside in an addressable storage medium and may be configured to reproduce one or more processors.

따라서, 일 예로서 '~부', '~기', '~블록', '~모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다.Therefore, as an example, '~part', '~gi', '~block', and '~module' refer to components such as software components, object-oriented software components, class components, and task components. , processes, functions, properties, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and Contains variables.

구성요소들과 '~부', '~기', '~블록', '~모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부', '~기', '~블록', '~모듈'들로 결합되거나 추가적인 구성요소들과 '~부', '~기', '~블록', '~모듈'들로 더 분리될 수 있다.The functions provided within components and '~part', '~unit', '~block', and '~module' are divided into smaller numbers of components and '~unit', '~unit', '~block'. ', '~module' or can be further separated into additional components and '~sub', '~base', '~block', and '~module'.

이하, 본 명세서의 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings attached to this specification.

도 1은 본 발명의 일 실시예에 따른 데이터 암호화 시스템(10), 사용자 단말(20) 및 저장소(30)의 구성을 개략적으로 나타낸 도면이다.Figure 1 is a diagram schematically showing the configuration of a data encryption system 10, a user terminal 20, and a storage 30 according to an embodiment of the present invention.

도 1을 참조하면, 데이터 암호화 시스템(10)은 사용자 단말(20)로부터 키(key)와 밸류(value) 쌍을 입력 받을 수 있다. 이때 밸류는 암호화하고자 하는 데이터를 말하며, 키는 밸류를 식별하기 위한 데이터를 말한다. 즉, 서비스 인터페이스 모듈(100)은 사용자 단말(20)로부터 키와 밸류 쌍을 입력 받을 수 있다.Referring to FIG. 1, the data encryption system 10 can receive a key and value pair as input from the user terminal 20. At this time, the value refers to the data to be encrypted, and the key refers to data to identify the value. That is, the service interface module 100 can receive a key and value pair from the user terminal 20.

키와 밸류 쌍을 입력받은 데이터 암호화 시스템(10)은 키를 해쉬(hash)한 해쉬 키(hash key)와 밸류를 암호화한 암호화 밸류를 저장소(30)에 저장할 수 있다.The data encryption system 10 that receives the key and value pair may store the hash key obtained by hashing the key and the encryption value obtained by encrypting the value in the storage 30.

이후, 데이터 암호화 시스템(10)이 사용자 단말(20)로부터 키 만을 입력 받으면, 데이터 암호화 시스템(10)은 키를 해쉬한 해쉬 키를 생성한 후, 해쉬 키와 함께 저장된 암호화 밸류를 저장소(30)로부터 불러와 복호화 한 다음 사용자 단말(20)에 제공할 수 있다.Thereafter, when the data encryption system 10 receives only the key input from the user terminal 20, the data encryption system 10 generates a hash key by hashing the key and then stores the encryption value stored with the hash key in the storage 30. It can be loaded from, decrypted, and then provided to the user terminal 20.

본 발명의 특징은 키를 해쉬하기 위한 해쉬 알고리즘과 밸류를 암호화하기 위한 암호화 알고리즘을 선정하는 과정에서 데이터 암호화 시스템(10)만의 고유정보를 이용하는데 있다.A feature of the present invention is that unique information unique to the data encryption system 10 is used in the process of selecting a hash algorithm for hashing the key and an encryption algorithm for encrypting the value.

이하에서는 데이터 암호화 시스템(10)의 고유정보를 이용하여 해쉬 알고리즘 및 암호화 알고리즘을 선정하는 과정과, 선정된 해쉬 알고리즘 및 암호화 알고리즘이 이용되는 과정을 보다 상세히 설명하도록 한다.Below, the process of selecting a hash algorithm and encryption algorithm using unique information of the data encryption system 10 and the process of using the selected hash algorithm and encryption algorithm will be described in more detail.

데이터 암호화 시스템(10)은 서비스 인터페이스 모듈(100), 스토리지 모듈(200), 인크립트 모듈(300) 및 키제너레이터 모듈(400)을 포함할 수 있다.The data encryption system 10 may include a service interface module 100, a storage module 200, an encrypt module 300, and a key generator module 400.

서비스 인터페이스 모듈(100)은 밸류를 암호화하여 저장하고자 하는 사용자의 사용자 단말(20)로부터 키와 밸류 쌍을 입력 받을 수 있다.The service interface module 100 can receive a key and value pair input from the user terminal 20 of a user who wants to encrypt and store the value.

또한, 암호화 밸류를 밸류로 복호화하여 불러오고자 하는 사용자의 사용자 단말(20)로부터 키를 입력 받은 경우 해당 키와 쌍을 이루는 밸류를 출력하도록 구성될 수 있다.In addition, when a key is input from the user terminal 20 of a user who wishes to decrypt and load an encryption value into a value, it may be configured to output a value paired with the corresponding key.

키제너레이터 모듈(400)은 데이터 암호화 시스템(10)의 고유정보를 추출하고, 해당 고유정보를 기반으로 제2 해쉬 알고리즘과 제2 암호화 알고리즘을 선정하도록 구성될 수 있다.The key generator module 400 may be configured to extract unique information of the data encryption system 10 and select a second hash algorithm and a second encryption algorithm based on the unique information.

이때, 제2 해쉬 알고리즘은 키를 해쉬하여 해쉬 키를 생성할 때 사용될 수 있는 해쉬 알고리즘을 말하며, 제2 암호화 알고리즘은 밸류를 암호화하여 암호화 밸류를 생성할 때 사용될 수 있는 암호화 알고리즘을 말한다.At this time, the second hash algorithm refers to a hash algorithm that can be used when generating a hash key by hashing the key, and the second encryption algorithm refers to an encryption algorithm that can be used when generating an encryption value by encrypting the value.

이러한 제2 해쉬 알고리즘은 기 설정된 개수의 제1 해쉬 알고리즘 중 어느 하나일 수 있으며, 제2 암호화 알고리즘은 기 설정된 개수의 제1 암호화 알고리즘 중 어느 하나일 수 있다.This second hash algorithm may be any one of a preset number of first hash algorithms, and the second encryption algorithm may be any one of a preset number of first encryption algorithms.

예를 들어, 본 발명의 제2 해쉬 알고리즘은 32개의 제1 해쉬 알고리즘 중 어느 하나일 수 있으며, 제2 암호화 알고리즘은 256개의 제1 암호화 알고리즘 중 어느 하나일 수 있다. 다만, 제1 해쉬 알고리즘 및 제1 암호화 알고리즘의 총 개수는 설정에 따라 변경될 수 있다For example, the second hash algorithm of the present invention may be any one of 32 first hash algorithms, and the second encryption algorithm may be any one of 256 first encryption algorithms. However, the total number of first hash algorithms and first encryption algorithms can be changed depending on settings.

제1 해쉬 알고리즘에 포함된 각각의 해쉬 알고리즘과 각각의 제1 암호화 알고리즘에 포함된 각각의 암호화 알고리즘은 저마다 서로 다른 고유번호를 갖고 있다.Each hash algorithm included in the first hash algorithm and each encryption algorithm included in each first encryption algorithm each have a different unique number.

예를 들어, 제1 해쉬 알고리즘은 0부터 31까지의 고유번호를 갖는 복수의 제2 해쉬 알고리즘을 포함할 수 있으며, 제1 암호화 알고리즘은 0부터 255까지의 고유번호를 갖는 복수의 제2 암호화 알고리즘을 포함할 수 있다.For example, the first hash algorithm may include a plurality of second hash algorithms with unique numbers from 0 to 31, and the first encryption algorithm may include a plurality of second encryption algorithms with unique numbers from 0 to 255. may include.

따라서, 고유번호를 알 경우 제2 해쉬 알고리즘과 제2 암호화 알고리즘을 특정할 수 있다.Therefore, if the unique number is known, the second hash algorithm and the second encryption algorithm can be specified.

인크립트 모듈(300)은 키를 제2 해쉬 알고리즘으로 해쉬하여 해쉬 키를 생성할 수 있다.The encrypt module 300 may generate a hash key by hashing the key using a second hash algorithm.

또한, 밸류를 제2 암호화 알고리즘으로 암호화하여 암호화 밸류를 생성하거나 암호화 밸류를 제2 암호화 알고리즘으로 복호화하여 밸류를 생성하도록 구성될 수 있다.Additionally, it may be configured to generate an encrypted value by encrypting the value with a second encryption algorithm or to generate a value by decrypting the encrypted value with a second encryption algorithm.

예를 들어, 제1 암호화 알고리즘과 이에 포함된 제2 암호화 알고리즘은 대칭키 암호 방식일 수 있으며, 따라서 같은 암호화 알고리즘으로 암호화 및 복호화가 모두 가능할 수 있다.For example, the first encryption algorithm and the second encryption algorithm included therein may be a symmetric key encryption method, and therefore both encryption and decryption may be possible using the same encryption algorithm.

스토리지 모듈(200)은 해쉬 키와 암호화 밸류를 저장소(30)에 저장할 수 있다. 또한, 저장소(30)로부터 특정 해쉬 키에 대응되는 특정 암호화 밸류를 불러오도록 구성될 수 있다.The storage module 200 may store the hash key and encryption value in the storage 30. Additionally, it may be configured to retrieve a specific encryption value corresponding to a specific hash key from storage 30.

키제너레이터 모듈(400)에 대해 보다 상세히 살펴보면, 키제너레이터 모듈(400)은 고유정보 추출부(410), 제2 해쉬 알고리즘 선정부(420), 제2 암호화 알고리즘 선정부(430) 및 암호화 키 생성부(440)를 포함할 수 있다.Looking at the key generator module 400 in more detail, the key generator module 400 includes a unique information extraction unit 410, a second hash algorithm selection unit 420, a second encryption algorithm selection unit 430, and an encryption key generation unit. It may include unit 440.

고유정보 추출부(410)는 데이터 암호화 시스템(10)의 고유정보를 추출하도록 구성될 수 있다.The unique information extraction unit 410 may be configured to extract unique information of the data encryption system 10.

고유정보는 데이터 암호화 시스템(10)만의 고유한 정보일 수 있는데, 예를 들어, ip address, mac address, 제1 저장 디스크의 블록 아이디 또는 제2 저장 디스크의 블록 아이디일 수 있다.The unique information may be information unique to the data encryption system 10, for example, an ip address, a mac address, a block ID of the first storage disk, or a block ID of the second storage disk.

제2 해쉬 알고리즘 선정부(420)는 고유정보를 기반으로 제1 해쉬 알고리즘 중 어느 하나를 제2 해쉬 알고리즘으로 선정하도록 구성될 수 있다.The second hash algorithm selection unit 420 may be configured to select one of the first hash algorithms as the second hash algorithm based on unique information.

제2 암호화 알고리즘 선정부(430)는 고유정보와 해쉬 키를 기반으로 제1 암호화 알고리즘 중 어느 하나를 제2 암호화 알고리즘으로 선정하도록 구성될 수 있다.The second encryption algorithm selection unit 430 may be configured to select one of the first encryption algorithms as the second encryption algorithm based on unique information and a hash key.

암호화 키 생성부(440)는 제2 암호화 알고리즘에 관한 정보를 포함하는 암호화 키를 생성하도록 구성될 수 있다.The encryption key generator 440 may be configured to generate an encryption key including information about the second encryption algorithm.

도 2는 데이터 암호화 시스템(10)이 사용자 단말(20)로부터 입력 받은 밸류를 암호화하여 저장소(30)에 저장하는 과정을 나타낸 도면이다.FIG. 2 is a diagram showing a process in which the data encryption system 10 encrypts the value input from the user terminal 20 and stores it in the storage 30.

도 1 및 도 2를 참조하면, 사용자가 사용자 단말(20)를 통해 키와 밸류 쌍을 입력하면, 데이터 암호화 시스템(10)은 밸류를 암호화하여 저장소(30)에 저장할 수 있다.Referring to Figures 1 and 2, when a user inputs a key and value pair through the user terminal 20, the data encryption system 10 can encrypt the value and store it in the storage 30.

S100 내지 S800 단계를 포함하는 데이터 암호화 단계는 다음과 같다.The data encryption steps including steps S100 to S800 are as follows.

먼저, 밸류를 암호화하여 저장하고자 하는 사용자는 사용자 단말(20)을 통해 키와 밸류 쌍을 입력한다. 서비스 인터페이스 모듈(100)은 이러한 사용자 단말(20)로부터 키와 밸류 쌍을 입력 받을 수 있다(S100).First, a user who wishes to encrypt and store value inputs a key and value pair through the user terminal 20. The service interface module 100 can receive a key and value pair from the user terminal 20 (S100).

다음으로, 서비스 인터페이스 모듈(100)은 입력 받은 키와 밸류 쌍을 스토리지 모듈(200)에 전달할 수 있다.Next, the service interface module 100 may transmit the input key and value pair to the storage module 200.

다음으로, 스토리지 모듈(200)은 해쉬 키와 암호화 밸류를 인크립트 모듈(300)에 요청할 수 있다. 이때 해쉬 키는 키를 해쉬 알고리즘으로 해쉬한 것을 말하며, 암호화 밸류는 밸류를 암호화 알고리즘으로 암호화한 것을 말한다.Next, the storage module 200 may request a hash key and encryption value from the encrypt module 300. In this case, the hash key refers to the key being hashed using the hash algorithm, and the encryption value refers to the value being encrypted using the encryption algorithm.

다음으로, 인크립트 모듈(300)은 해쉬 키를 생성하기 위한 해쉬 알고리즘을 키제너레이터 모듈(400)에 요청할 수 있다.Next, the encrypt module 300 may request a hash algorithm for generating a hash key from the key generator module 400.

다음으로, 키제너레이터 모듈(400)은 데이터 암호화 시스템(10)에 대한 고유정보를 추출할 수 있다(S200).Next, the key generator module 400 can extract unique information about the data encryption system 10 (S200).

다음으로, 키제너레이터 모듈(400)은 추출된 고유정보를 기반으로 제2 해쉬 알고리즘을 선정할 수 있다(S300).Next, the key generator module 400 may select a second hash algorithm based on the extracted unique information (S300).

도 3은 고유정보를 기반으로 제2 해쉬 알고리즘을 선정하는 S300 단계를 보다 상세히 나타낸 도면이다.Figure 3 is a diagram showing in more detail the S300 step of selecting a second hash algorithm based on unique information.

도 3을 참조하면, S300 단계는 S310 내지 S340 단계를 포함할 수 있다.Referring to FIG. 3, step S300 may include steps S310 to S340.

S310 내지 S340 단계를 포함하는 제2 해쉬 알고리즘 선정 단계는 다음과 같다.The second hash algorithm selection step including steps S310 to S340 is as follows.

먼저, 각 고유정보에서 기 설정된 위치의 데이터를 추출하여 이들을 이진수로 변환할 수 있다(S310).First, data at a preset location can be extracted from each unique information and converted into binary numbers (S310).

예를 들어, 제1 고유정보는 데이터 암호화 시스템(10)의 ip address, 제2 고유정보는 데이터 암호화 시스템(10)의 mac address, 제3 고유정보는 데이터 암호화 시스템(10)에 포함된 제1 저장 디스크의 블록 아이디, 제4 고유정보는 데이터 암호화 시스템(10)에 포함된 제2 저장 디스크의 블록 아이디일 수 있다. 다만, 고유정보는 이에 한정되지 않으며 데이터 암호화 시스템(10)만의 고유한 정보라면 제한 없이 적용될 수 있다.For example, the first unique information is the IP address of the data encryption system 10, the second unique information is the MAC address of the data encryption system 10, and the third unique information is the first unique information included in the data encryption system 10. The block ID of the storage disk and the fourth unique information may be the block ID of the second storage disk included in the data encryption system 10. However, the unique information is not limited to this and can be applied without limitation as long as it is information unique to the data encryption system 10.

S310 단계에서는 제1 내지 제4 고유정보에서 기 설정된 위치의 데이터를 추출하는데, 예를 들어, 기 설정된 위치는 각 고유정보를 구성하는 복수개의 바이트 중에서 제일 좌측의 바이트일 수 있다.In step S310, data at a preset position is extracted from the first to fourth unique information. For example, the preset position may be the leftmost byte among a plurality of bytes constituting each unique information.

각 고유정보의 제일 좌측의 바이트에 포함된 데이터가 추출되면 이들은 이진수로 변환될 수 있는데, 예를 들어, 변환된 이진수는 11001101, 11111100, 11111111 및 11111111일 수 있다.Once the data contained in the leftmost byte of each unique information is extracted, they can be converted to binary numbers. For example, the converted binary numbers can be 11001101, 11111100, 11111111, and 11111111.

다음으로, 이진수로 변환된 값에 배타적 논리합(exclusive-OR, EOR)을 수행하여 제1 EOR 값을 산출할 수 있다(S320).Next, the first EOR value can be calculated by performing exclusive-OR (EOR) on the value converted to binary number (S320).

예를 들어, 제1 EOR 값은 00110001일 수 있으며 이를 십진수로 바꾸면 49가 된다.For example, the first EOR value may be 00110001, which when converted to decimal becomes 49.

다음으로, 제1 EOR 값을 기 설정된 개수의 제1 해쉬 알고리즘의 총 개수로 나눈 나머지 값인 제1 나머지 값을 산출할 수 있다(S330).Next, the first remainder value, which is the remaining value obtained by dividing the first EOR value by the total number of the preset number of first hash algorithms, can be calculated (S330).

예를 들어, 기 설정된 개수의 제1 해쉬 알고리즘의 총 개수가 32개인 경우, 49를 32로 나눈 나머지 값인 17을 제1 나머지 값으로 산출할 수 있다.For example, if the total number of the preset number of first hash algorithms is 32, 17, which is the remainder obtained by dividing 49 by 32, can be calculated as the first remainder value.

다음으로, 제1 해쉬 알고리즘 중 제1 나머지 값을 고유번호로 갖는 해쉬 알고리즘을 제2 해쉬 알고리즘으로 설정할 수 있다(S340).Next, a hash algorithm having the first remainder value as a unique number among the first hash algorithms can be set as the second hash algorithm (S340).

예를 들어, 저보다 서로 다른 고유번호가 부여된 32개의 제1 해쉬 알고리즘들 중 고유번호가 17인 해쉬 알고리즘을 제2 해쉬 알고리즘으로 선정할 수 있다.For example, among the 32 first hash algorithms assigned different unique numbers, the hash algorithm with a unique number of 17 can be selected as the second hash algorithm.

다시 도 1 및 도 2를 참조하면, 키제너레이터 모듈(400)은 선정된 제2 해쉬 알고리즘을 인크립트 모듈(300)에 반환할 수 있다.Referring again to FIGS. 1 and 2, the key generator module 400 may return the selected second hash algorithm to the encrypt module 300.

다음으로, 인크립트 모듈(300)은 키를 제2 해쉬 알고리즘으로 해쉬하여 해쉬 키를 생성할 수 있다(S400).Next, the encrypt module 300 may generate a hash key by hashing the key using a second hash algorithm (S400).

다음으로, 인크립트 모듈(300)은 생성된 해쉬 키를 키제너레이터 모듈(400)로 전달하면서 암호화 키를 요청할 수 있다.Next, the encrypt module 300 may request an encryption key while transmitting the generated hash key to the key generator module 400.

다음으로, 키제너레이터 모듈(400)은 S200 단계에서 추출된 고유정보와 인크립트 모듈(300)로부터 전달받은 해쉬 키를 기반으로 제2 암호화 알고리즘을 선정할 수 있다(S500).Next, the key generator module 400 may select a second encryption algorithm based on the unique information extracted in step S200 and the hash key received from the encrypt module 300 (S500).

도 4는 고유정보와 해쉬 키를 기반으로 제2 암호화 알고리즘을 선정하는 S500 단계 중 S510 내지 S530 단계를 보다 상세히 나타낸 도면이고, 도 5는 고유정보와 해쉬 키를 기반으로 제2 암호화 알고리즘을 선정하는 S500 단계 중 S540 내지 S560 단계를 보다 상세히 나타낸 도면이다.Figure 4 is a diagram showing steps S510 to S530 in more detail among the S500 steps for selecting a second encryption algorithm based on unique information and a hash key, and Figure 5 is a diagram showing steps S510 to S530 for selecting a second encryption algorithm based on unique information and a hash key. This is a diagram showing steps S540 to S560 of step S500 in more detail.

도 4 및 도 5를 참조하면, S500 단계는 S510 내지 S560 단계를 포함할 수 있다.Referring to Figures 4 and 5, step S500 may include steps S510 to S560.

S510 내지 560 단계를 포함하는 제2 암호화 알고리즘 선정 단계는 다음과 같다.The second encryption algorithm selection step including steps S510 to S560 is as follows.

먼저, 해쉬 키를 고유정보의 총 개수로 분할하여 해쉬 키 절편을 생성할 수 있다(S510).First, a hash key fragment can be generated by dividing the hash key by the total number of unique information (S510).

예를 들어, 고유정보의 총 개수가 4개이고 해쉬 키가 32바이트로 이루어진 경우, 해쉬 키를 4개로 분할하여 각각 8바이트로 이루어진 제1 내지 제4 해쉬 키 절편을 생성할 수 있다.For example, if the total number of unique information is 4 and the hash key consists of 32 bytes, the hash key can be divided into 4 pieces to generate first to fourth hash key fragments of 8 bytes each.

이하에서는, 각각의 해쉬 키 절편의 첫 번째 바이트를 0번째 값이라고 하고, 두 번째 바이트를 1번째 값이라고 하고, (n+1)번째 바이트를 n번째 값이라고 하기로 한다. 이때, n은 0을 포함하는 양의 정수일 수 있다.Hereinafter, the first byte of each hash key fragment will be referred to as the 0th value, the second byte will be referred to as the 1st value, and the (n+1)th byte will be referred to as the nth value. At this time, n may be a positive integer including 0.

다음으로, 각 고유정보에서 기 설정된 위치의 데이터를 추출하여 키 생성 마스크 절편 중 어느 하나를 생성할 수 있다(S520).Next, one of the key generation mask fragments can be generated by extracting data at a preset position from each unique information (S520).

이하에서는, 각각의 고유정보의 첫 번째 바이트를 0번째 값이라고 하고, 두 번째 바이트를 1번째 값이라고 하고, (n+1)번째 바이트를 n번째 값이라고 하기로 한다. 이때, n은 0을 포함한 양의 정수일 수 있다.Hereinafter, the first byte of each unique information will be referred to as the 0th value, the second byte will be referred to as the 1st value, and the (n+1)th byte will be referred to as the nth value. At this time, n may be a positive integer including 0.

예를 들어, 제2 고유정보에서 첫 번째 바이트(0번째 값)의 데이터를 추출하여 제1 키 생성 마스크 절편을 생성할 수 있고, 제3 고유정보에서 첫 번째 바이트(0번째 값)의 데이터를 추출하여 제2 키 생성 마스크 절편을 생성할 수 있고, 제4 고유정보에서 첫 번째 바이트(0번째 값)의 데이터를 추출하여 제3 키 생성 마스크 절편을 생성할 수 있고, 제1 고유정보에서 첫 번째 바이트(0번째 값)의 데이터를 추출하여 제4 키 생성 마스크 절편을 생성할 수 있다.For example, the first key generation mask fragment can be generated by extracting the data of the first byte (0th value) from the second unique information, and the data of the first byte (0th value) can be extracted from the third unique information. The second key generation mask fragment can be generated by extracting the data of the first byte (0th value) from the fourth unique information, and the third key generation mask fragment can be generated. The fourth key generation mask fragment can be generated by extracting the data of the th byte (0th value).

다음으로, 해쉬 키 절편에서 추출한 데이터와 각각의 고유정보에서 추출한 데이터를 키 생성 마스크 절편을 기반으로 조합하여 임시 키 절편을 생성할 수 있다(S530).Next, a temporary key fragment can be generated by combining the data extracted from the hash key fragment and the data extracted from each unique information based on the key generation mask fragment (S530).

예를 들어, 제1 키 생성 마스크 절편의 n번째 값이 1인 경우, 제1 고유정보의 n번째 값을 제1 임시 키 절편의 n번째 값으로 설정하고, 제1 키 생성 마스크 절편의 n번째 값이 0인 경우 또는 제1 고유정보의 n번째 값이 존재하지 않는 경우, 제1 해쉬 키 절편의 n번째 값을 제1 임시 키 절편의 n번째 값으로 설정할 수 있다. 마찬가지로, 제2 키 생성 마스크 절편의 n번째 값이 1인 경우, 제2 고유정보의 n번째 값을 제2 임시 키 절편의 n번째 값으로 설정하고, 제2 키 생성 마스크 절편의 n번째 값이 0인 경우 또는 제2 고유정보의 n번째 값이 존재하지 않는 경우, 제2 해쉬 키 절편의 n번째 값을 제2 임시 키 절편의 n번째 값으로 설정할 수 있다. 이때, n은 0을 포함한 양의 정수일 수 있다.For example, if the nth value of the first key generation mask fragment is 1, the nth value of the first unique information is set as the nth value of the first temporary key fragment, and the nth value of the first key generation mask fragment is set to the nth value of the first key generation mask fragment. If the value is 0 or the nth value of the first unique information does not exist, the nth value of the first hash key fragment may be set as the nth value of the first temporary key fragment. Likewise, if the nth value of the second key generation mask fragment is 1, the nth value of the second unique information is set to the nth value of the second temporary key fragment, and the nth value of the second key generation mask fragment is set to 1. If it is 0 or the nth value of the second unique information does not exist, the nth value of the second hash key fragment may be set as the nth value of the second temporary key fragment. At this time, n may be a positive integer including 0.

다음으로, 각 임시 키 절편의 데이터를 이진수로 변환한 후 배타적 논리합(exclusive-OR, EOR)을 수행하여 제2 EOR 값을 산출할 수 있다(S540).Next, the data of each temporary key fragment can be converted to binary and then exclusive-OR (EOR) is performed to calculate the second EOR value (S540).

다음으로, 제2 EOR 값을 기 설정된 제1 암호화 알고리즘의 총 개수로 나눈 나머지 값인 제2 나머지 값을 산출할 수 있다(S550).Next, a second remainder value, which is the remaining value obtained by dividing the second EOR value by the total number of preset first encryption algorithms, can be calculated (S550).

예를 들어, 기 설정된 개수의 제1 암호화 알고리즘의 총 개수가 256개인 경우, 제2 EOR 값을 256으로 나눈 나머지 값인 제2 나머지 값으로 산출할 수 있는데, 도 5에서는 제2 나머지 값을 11로 가정하였다.For example, if the total number of the preset number of first encryption algorithms is 256, the second remainder value can be calculated as the remainder obtained by dividing the second EOR value by 256. In FIG. 5, the second remainder value is 11. It was assumed.

다음으로, 제1 암호화 알고리즘 중 제2 나머지 값을 고유번호로 갖는 암호와 알고리즘을 제2 암호화 알고리즘으로 선정할 수 있다(S560).Next, the password and algorithm having the second remainder value as the unique number among the first encryption algorithms can be selected as the second encryption algorithm (S560).

예를 들어, 도 5와 같이 제2 나머지 값이 11인 경우, 256개의 제1 암호와 알고리즘 중 고유번호가 11인 암호화 알고리즘을 제2 암호화 알고리즘으로 선정할 수 있다.For example, if the second remainder value is 11 as shown in FIG. 5, the encryption algorithm with a unique number of 11 among the 256 first passwords and algorithms can be selected as the second encryption algorithm.

다시 도 1 및 도 2를 참조하면, 키제너레이터 모듈(400)은 제2 암호화 알고리즘에 관한 정보를 포함하는 암호화 키를 생성할 수 있다(S600).Referring again to FIGS. 1 and 2, the key generator module 400 may generate an encryption key including information about the second encryption algorithm (S600).

도 6은 제2 암호화 알고리즘에 관한 정보를 포함하는 암호화 키를 생성하는 S600 단계를 보다 상세히 나타낸 도면이다.Figure 6 is a diagram showing in more detail the step S600 of generating an encryption key including information about the second encryption algorithm.

도 6을 참조하면 S600 단계는 S610 내지 S620 단계를 포함할 수 있다.Referring to FIG. 6, step S600 may include steps S610 to S620.

S610 내지 S620 단계를 포함하는 암호화 키 생성 단계는 다음과 같다.The encryption key generation step including steps S610 to S620 is as follows.

먼저, S540 단계를 통해 생성된 제2 EOR 값을 기 설정된 제1 해쉬 알고리즘의 총 개수로 나눈 나머지 값인 제3 나머지 값을 산출할 수 있다(S610).First, a third remainder value, which is the remainder obtained by dividing the second EOR value generated through step S540 by the total number of preset first hash algorithms, can be calculated (S610).

예를 들어, 기 설정된 개수의 제1 해쉬 알고리즘의 총 개수가 32개인 경우, 제2 EOR 값을 32로 나눈 나머지 값인 제3 나머지 값을 산출할 수 있는데, 도 6에서는 제3 나머지 값을 7로 가정하였다.For example, if the total number of the preset number of first hash algorithms is 32, the third remainder value can be calculated, which is the remainder obtained by dividing the second EOR value by 32. In FIG. 6, the third remainder value is 7. It was assumed.

다음으로, S530 단계를 통해 생성된 임시 키의 좌측 끝단으로부터 제3 나머지 값에 해당하는 번째의 값을 제2 암호화 알고리즘의 고유번호로 대체하여 암호화 키를 생성할 수 있다(S620).Next, an encryption key can be generated by replacing the value corresponding to the third remaining value from the left end of the temporary key generated through step S530 with the unique number of the second encryption algorithm (S620).

이하에서는, 암호화 키의 첫 번째 바이트를 n번째 값이라고 하고, 두 번째 바이트를 1번째 값이라고 하고, (n+1)번째 바이트를 n번째 값이라고 하기로 한다. 이때, n은 0을 포함하는 양의 정수일 수 있다.Hereinafter, the first byte of the encryption key will be referred to as the nth value, the second byte will be referred to as the 1st value, and the (n+1)th byte will be referred to as the nth value. At this time, n may be a positive integer including 0.

예를 들어, S610 단계에서 산출된 제3 나머지 값이 7이고For example, the third remainder value calculated in step S610 is 7 and

S560 단계에서 선정된 제2 암호화 알고리즘의 고유번호가 11인 경우, 임시 키의 7번째 값을 11로 대체하여 암호화 키를 생성할 수 있다.If the unique number of the second encryption algorithm selected in step S560 is 11, the encryption key can be generated by replacing the 7th value of the temporary key with 11.

다시 도 1 및 도 2를 참조하면, 인크립트 모듈(300)은 키제너레이터 모듈(400)로부터 암호화 키와 제2 암호화 알고리즘의 고유번호의 위치에 관한 정보를 반환받을 수 있다(S710).Referring again to FIGS. 1 and 2, the encrypt module 300 may receive information regarding the location of the encryption key and the unique number of the second encryption algorithm from the key generator module 400 (S710).

다음으로, 인크립트 모듈(300)은 암호화 키로부터 제2 암호화 알고리즘의 고유번호를 추출할 수 있다(S720).Next, the encrypt module 300 may extract the unique number of the second encryption algorithm from the encryption key (S720).

다음으로, 인크립트 모듈(300)은 밸류를 제2 암호화 알고리즘으로 암호화하여 암호화 밸류를 생성할 수 있다.Next, the encrypt module 300 may generate an encryption value by encrypting the value with a second encryption algorithm.

다음으로, 인크립트 모듈(300)은 S400 단계를 통해 생성된 해쉬 키와 S700 단계를 통해 생성된 암호화 밸류를 스토리지 모듈(200)에 반환할 수 있다.Next, the encrypt module 300 may return the hash key generated through step S400 and the encryption value generated through step S700 to the storage module 200.

다음으로, 스토리지 모듈(200)은 해쉬 키와 암호화 밸류를 저장소(30)에 저장할 수 있다(S800).Next, the storage module 200 may store the hash key and encryption value in the storage 30 (S800).

다음으로, 스토리지 모듈(200)은 해쉬 키와 암호화 밸류의 저장 결과를 서비스 인터페이스 모듈(100)에 전달할 수있다.Next, the storage module 200 may transmit the storage result of the hash key and encryption value to the service interface module 100.

마지막으로, 서비스 인터페이스 모듈(100)은 해쉬 키와 암호화 키의 저장 결과를 사용자 단말(20)에 출력할 수 있다.Finally, the service interface module 100 may output the storage result of the hash key and encryption key to the user terminal 20.

즉, 데이터 암호화 시스템(10)은 S100 내지 S800 단계를 통해 사용자 단말(20)로부터 입력 받은 밸류를 암호화하여 암호화 밸류를 생성한 후, 해당 암호화 밸류와 대응되는 해쉬 키를 저장소(30)에 함께 저장함으로써, 밸류를 안전하게 저장할 수 있다.That is, the data encryption system 10 encrypts the value input from the user terminal 20 through steps S100 to S800 to generate an encryption value, and then stores the hash key corresponding to the encryption value in the storage 30. By doing so, the value can be stored safely.

도 7은 데이터 암호화 시스템(10)이 저장소(30)에 저장되었던 밸류를 복호화하여 사용자 단말(20)에 출력하는 과정을 나타낸 도면이다.FIG. 7 is a diagram showing a process in which the data encryption system 10 decrypts the value stored in the storage 30 and outputs it to the user terminal 20.

도 1 및 도 7을 참조하면, 사용자가 사용자 단말(20)을 통해 키를 입력하면, 데이터 암호화 시스템(10)은 입력된 키와 함께 저장되었던 암호화 밸류를 저장소(30)로부터 불러와 복호화 한 후 사용자 단말(20)에 출력할 수 있다.Referring to Figures 1 and 7, when a user inputs a key through the user terminal 20, the data encryption system 10 retrieves the encryption value stored with the input key from the storage 30 and decrypts it. It can be output to the user terminal 20.

S900 내지 S1300 단계를 포함하는 데이터 복호화 단계는 다음과 같다.The data decoding steps including steps S900 to S1300 are as follows.

먼저, 서비스 인터페이스 모듈(100)을 통해 밸류를 불러오고자 하는 사용자 단말(20)로부터 키를 입력받을 수 있다(S900).First, a key can be input from the user terminal 20 wishing to retrieve value through the service interface module 100 (S900).

다음으로, 스토리지 모듈(200)은 해쉬키를 인크립트 모듈(300)에 요청할 수 있다. 이때 해쉬 키는 키를 해쉬 알고리즘으로 해쉬한 것을 말한다.Next, the storage module 200 may request a hash key from the encrypt module 300. At this time, the hash key refers to a key hashed using a hash algorithm.

다음으로, 인크립트 모듈(300)은 해쉬 키를 생성하기 위한 해쉬 알고리즘을 키제너레이터 모듈(400)에 요청할 수 있다.Next, the encrypt module 300 may request a hash algorithm for generating a hash key from the key generator module 400.

다음으로, 키제너레이터 모듈(400)은 데이터 암호화 시스템(10)에 대한 고유정보를 추출할 수 있다.Next, the key generator module 400 can extract unique information about the data encryption system 10.

다음으로, 키제너레이터 모듈(400)은 추출된 고유정보를 기반으로 제2 해쉬 알고리즘을 선정할 수 있다.Next, the key generator module 400 may select a second hash algorithm based on the extracted unique information.

키제너레이터 모듈(400)이 제2 해쉬 알고리즘을 선정하는 방법은 상술한 바와 같기에 생략하도록 한다.The method for the key generator module 400 to select the second hash algorithm is the same as described above, so it will be omitted.

다음으로, 키제너레이터 모듈(400)은 선정된 제2 해쉬 알고리즘을 인크립트 모듈(300)에 반환할 수 있다.Next, the key generator module 400 may return the selected second hash algorithm to the encrypt module 300.

다음으로, 인크립트 모듈(300)은 키를 제2 해쉬 알고리즘으로 해쉬하여 해쉬 키를 생성할 수 있다(S1000).Next, the encrypt module 300 may generate a hash key by hashing the key using a second hash algorithm (S1000).

다음으로, 인크립트 모듈(300)은 생성된 해쉬 키를 스토리지 모듈(200)로 반환할 수 있다.Next, the encrypt module 300 may return the generated hash key to the storage module 200.

다음으로, 스토리지 모듈(200)은 해쉬 키와 대응되는 암호화 밸류를 저장소(30)로부터 불러올 수 있다(S1100).Next, the storage module 200 may load the hash key and the corresponding encryption value from the storage 30 (S1100).

이때, 해쉬 키와 대응되는 암호화 밸류는 해쉬 키와 쌍을 이루는 암호화 밸류일 수 있다.At this time, the encryption value corresponding to the hash key may be an encryption value paired with the hash key.

다음으로, 저장소(30)는 암호화 밸류를 스토리지 모듈(200)에 반환할 수 있다.Next, the storage 30 may return the encryption value to the storage module 200.

다음으로, 스토리지 모듈(200)은 인크립트 모듈(300)에 암호화 밸류의 복호화를 요청할 수 있다.Next, the storage module 200 may request the encrypt module 300 to decrypt the encryption value.

다음으로, 인크립트 모듈(300)은 키제너레이터 모듈(400)에 암호화 밸류를 복호화하는데 사용되는 암호화 알고리즘에 대한 정보를 포함하는 암호화 키를 키제너레이터 모듈(400)에 요청할 수 있다.Next, the encrypt module 300 may request the key generator module 400 for an encryption key containing information about the encryption algorithm used to decrypt the encryption value.

다음으로, 키제너레이터 모듈(400)은 고유정보와 해쉬 키를 기반으로 암호화 알고리즘을 선정하고, 선정된 암호화 알고리즘에 관한 정보를 포함하는 암호화 키를 생성할 수 있다.Next, the key generator module 400 may select an encryption algorithm based on the unique information and the hash key and generate an encryption key containing information about the selected encryption algorithm.

키제너레이터 모듈(400)이 암호화 알고리즘을 선정하고, 암호화 키를 선정하는 방법은 상술한 바와 같기에 생략하도록 한다.The key generator module 400 selects the encryption algorithm and the method of selecting the encryption key is the same as described above, so it will be omitted.

다음으로, 키제너레이터 모듈(400)은 암호화 키를 인크립트 모듈(300)에 반환할 수 있다.Next, the key generator module 400 may return the encryption key to the encrypt module 300.

다음으로, 인크립트 모듈(300)은 암호화 밸류를 제2 암호화 알고리즘으로 복호화하여 밸류를 생성할 수 있다(S1200).Next, the encrypt module 300 may generate a value by decrypting the encryption value with a second encryption algorithm (S1200).

다음으로, 인크립트 모듈(300)은 밸류를 스토리지 모듈(200)에 반환할 수 있다.Next, the encrypt module 300 may return the value to the storage module 200.

다음으로, 스토리지 모듈(200)은 밸류를 서비스 인터페이스 모듈(100)에 전달할 수 있다.Next, the storage module 200 may transmit the value to the service interface module 100.

마지막으로, 서비스 인터페이스 모듈(100)은 밸류를 사용자 단말(20)에 출력할 수 있다(S1300).Finally, the service interface module 100 may output the value to the user terminal 20 (S1300).

즉, 데이터 암호화 시스템(10)은 S900 내지 S1200 단계를 통해 사용자 단말(20)로부터 입력 받은 키에 대응되는 암호화 밸류를 저장소(30)로부터 불러온 후, 이를 복호화하여 사용자 단말(20)에 출력할 수 있다.That is, the data encryption system 10 loads the encryption value corresponding to the key input from the user terminal 20 through steps S900 to S1200 from the storage 30, decrypts it, and outputs it to the user terminal 20. You can.

이상에서 실시예를 통해 본 발명을 설명하였으나, 위 실시예는 단지 본 발명의 사상을 설명하기 위한 것으로 이에 한정되지 않는다. 통상의 기술자는 전술한 실시예에 다양한 변형이 가해질 수 있음을 이해할 것이다. 본 발명의 범위는 첨부된 특허청구범위의 해석을 통해서만 정해진다.Although the present invention has been described above through examples, the above examples are merely for illustrating the spirit of the present invention and are not limited thereto. Those skilled in the art will understand that various modifications may be made to the above-described embodiments. The scope of the present invention is determined only through interpretation of the appended claims.

10 데이터 암호화 시스템
20 사용자 단말
30 저장소
100 서비스 인터페이스 모듈
200 스토리지 모듈
300 인크립트 모듈
400 키제너레이터 모듈
410 고유정보 추출부
420 제2 해쉬 알고리즘 선정부
430 제2 암호화 알고리즘 선정부
440 암호화 키 생성부
10 data encryption system
20 user terminals
30 store
100 service interface module
200 storage modules
300 Encrypt Module
400 key generator module
410 Unique information extraction unit
420 Second hash algorithm selection unit
430 Second encryption algorithm selection unit
440 encryption key generation unit

Claims (14)

a) 서비스 인터페이스 모듈을 통해, 밸류를 저장하고자 하는 사용자 단말로부터 키와 밸류를 입력받는 단계;
b) 키제너레이터 모듈을 통해, 데이터 암호화 시스템의 고유정보를 추출하는 단계;
c) 키제너레이터 모듈을 통해, 상기 고유정보를 기반으로 제2 해쉬 알고리즘을 선정하는 단계;
d) 인크립트 모듈을 통해, 상기 키를 제2 해쉬 알고리즘으로 해쉬하여 해쉬 키를 생성하는 단계;
e) 키제너레이터 모듈을 통해, 상기 고유정보와 상기 해쉬 키를 기반으로 제2 암호화 알고리즘을 선정하는 단계;
f) 키제너레이터 모듈을 통해, 제2 암호화 알고리즘에 관한 정보를 포함하는 암호화 키를 생성하는 단계;
g) 인크립트 모듈을 통해, 상기 밸류를 상기 제2 암호화 알고리즘으로 암호화하여 암호화 밸류를 생성하는 단계; 및
h) 스토리지 모듈을 통해, 상기 해쉬 키와 상기 암호화 밸류를 저장소에 저장하는 단계를 포함하는, 데이터 암호화 방법.
a) receiving a key and value from a user terminal that wishes to store the value through a service interface module;
b) extracting unique information of the data encryption system through a key generator module;
c) selecting a second hash algorithm based on the unique information through a key generator module;
d) generating a hash key by hashing the key with a second hash algorithm through an encrypt module;
e) selecting a second encryption algorithm based on the unique information and the hash key through a key generator module;
f) generating an encryption key containing information about a second encryption algorithm through a key generator module;
g) generating an encryption value by encrypting the value with the second encryption algorithm through an encrypt module; and
h) storing the hash key and the encryption value in storage, via a storage module.
제1항에 있어서,
상기 c) 단계는:
c-1) 각각의 상기 고유정보에서 기 설정된 위치의 데이터를 추출하여 이진수로 변환하는 단계;
c-2) 변환된 값에 배타적 논리합(exclusive-OR, EOR)을 수행하여 제1 EOR 값을 산출하는 단계;
c-3) 상기 제1 EOR 값을 기 설정된 제1 해쉬 알고리즘의 총 개수로 나눈 나머지 값인 제1 나머지 값을 산출하는 단계; 및
c-4) 제1 해쉬 알고리즘 중 상기 제1 나머지 값을 고유번호로 갖는 해쉬 알고리즘을 제2 해쉬 알고리즘으로 선정하는 단계를 포함하는, 데이터 암호화 방법.
According to paragraph 1,
Step c) above is:
c-1) extracting data at a preset location from each of the unique information and converting it into binary numbers;
c-2) calculating a first EOR value by performing exclusive-OR (EOR) on the converted value;
c-3) calculating a first remainder value, which is a remainder value obtained by dividing the first EOR value by the total number of preset first hash algorithms; and
c-4) A data encryption method comprising the step of selecting a hash algorithm having the first remainder as a unique number among the first hash algorithms as a second hash algorithm.
제1항에 있어서,
상기 e) 단계는:
e-1) 상기 해쉬 키를 상기 고유정보의 총 개수로 분할하여 해쉬 키 절편을 생성하는 단계;
e-2) 각각의 상기 고유정보에서 기 설정된 위치의 데이터를 추출하여 키 생성 마스크 절편 중 어느 하나를 생성하는 단계;
e-3) 상기 해쉬 키 절편에서 추출한 데이터와 각각의 상기 고유정보에서 추출한 데이터를 상기 키 생성 마스크 절편을 기반으로 조합하여 임시 키 절편을 생성하는 단계;
e-4) 각각의 상기 임시 키 절편의 데이터를 이진수로 변환한 후 배타적 논리합(exclusive-OR, EOR)을 수행하여 제2 EOR 값을 산출하는 단계;
e-5) 상기 제2 EOR 값을 기 설정된 제1 암호화 알고리즘의 총 개수로 나눈 나머지 값인 제2 나머지 값을 산출하는 단계; 및
e-6) 제1 암호화 알고리즘 중 상기 제2 나머지 값을 고유번호로 갖는 암호화 알고리즘을 제2 암호화 알고리즘으로 선정하는 단계를 포함하는, 데이터 암호화 방법.
According to paragraph 1,
Step e) above is:
e-1) generating a hash key fragment by dividing the hash key by the total number of unique information;
e-2) generating one of the key generation mask fragments by extracting data at a preset position from each of the unique information;
e-3) generating a temporary key fragment by combining data extracted from the hash key fragment and data extracted from each of the unique information based on the key generation mask fragment;
e-4) converting the data of each temporary key fragment into binary numbers and then performing exclusive-OR (EOR) to calculate a second EOR value;
e-5) calculating a second remainder value that is the remainder obtained by dividing the second EOR value by the total number of preset first encryption algorithms; and
e-6) A data encryption method comprising the step of selecting an encryption algorithm that has the second remainder value as a unique number among the first encryption algorithms as a second encryption algorithm.
제3항에 있어서,
상기 e-3) 단계는:
상기 키 생성 마스크 절편의 n번째 값이 1인 경우, 상기 고유정보의 n번째 값을 상기 임시 키 절편의 n번째 값으로 설정하고, 상기 키 생성 마스크 절편의 n번째 값이 0인 경우 또는 상기 고유정보의 n번째 값이 존재하지 않는 경우, 상기 해쉬 키 절편의 n번째 값을 상기 임시 키 절편의 n번째 값으로 설정하는 단계이고,
상기 n은 0을 포함하는 양의 정수인, 데이터 암호화 방법.
According to paragraph 3,
Step e-3) above is:
If the nth value of the key generation mask fragment is 1, the nth value of the unique information is set to the nth value of the temporary key fragment, and if the nth value of the key generation mask fragment is 0, or the unique If the nth value of information does not exist, setting the nth value of the hash key fragment as the nth value of the temporary key fragment,
Wherein n is a positive integer including 0.
제3항에 있어서,
상기 f) 단계는:
f-1) 상기 제2 EOR 값을 기 설정된 제1 해쉬 알고리즘의 총 개수로 나눈 나머지 값인 제3 나머지 값을 산출하는 단계; 및
f-2) 상기 임시 키 절편을 포함하는 임시 키의 좌측 끝단으로부터 제3 나머지 값에 해당하는 번째 값을 상기 제2 암호화 알고리즘의 고유번호로 대체하여 암호화 키를 생성하는 단계를 포함하는, 데이터 암호화 방법.
According to paragraph 3,
Step f) above is:
f-1) calculating a third remainder value, which is a remainder value obtained by dividing the second EOR value by the total number of preset first hash algorithms; and
f-2) generating an encryption key by replacing the third value from the left end of the temporary key including the temporary key fragment with the unique number of the second encryption algorithm, data encryption. method.
제5항에 있어서,
상기 g) 단계는:
g-1) 키제너레이터 모듈로부터 상기 암호화 키와 상기 제2 암호화 알고리즘의 고유번호의 위치에 관한 정보를 반환받는 단계;
g-2) 상기 암호화 키로부터 상기 제2 암호화 알고리즘의 고유번호를 추출하는 단계; 및
g-3) 상기 밸류를 상기 제2 암호화 알고리즘으로 암호화하여 상기 암호화 밸류를 생성하는 단계를 포함하는, 데이터 암호화 방법.
According to clause 5,
Step g) above is:
g-1) receiving information about the location of the encryption key and the unique number of the second encryption algorithm from the key generator module;
g-2) extracting the unique number of the second encryption algorithm from the encryption key; and
g-3) A data encryption method comprising generating the encryption value by encrypting the value with the second encryption algorithm.
제1항에 있어서,
i) 서비스 인터페이스 모듈을 통해, 상기 밸류를 불러오고자 하는 사용자 단말로부터 상기 키를 입력받는 단계;
j) 인크립트 모듈을 통해, 상기 키를 상기 제2 해쉬 알고리즘으로 해쉬하여 상기 해쉬 키를 생성하는 단계;
k) 스토리지 모듈을 통해, 상기 저장소로부터 상기 해쉬 키에 대응되는 상기 암호화 밸류를 불러오는 단계;
l) 인크립트 모듈을 통해, 상기 암호화 밸류를 상기 제2 암호화 알고리즘으로 복호화하여 상기 밸류를 생성하는 단계; 및
m) 서비스 인터페이스 모듈을 통해, 상기 사용자 단말에 상기 밸류를 출력하는 단계를 더 포함하는, 데이터 암호화 방법.
According to paragraph 1,
i) receiving the key from a user terminal that wishes to retrieve the value through a service interface module;
j) generating the hash key by hashing the key with the second hash algorithm through an encrypt module;
k) retrieving the encryption value corresponding to the hash key from the storage through a storage module;
l) generating the value by decrypting the encryption value with the second encryption algorithm through an encrypt module; and
m) Data encryption method further comprising outputting the value to the user terminal through a service interface module.
밸류를 저장하고자 하는 사용자 단말로부터 키와 밸류를 입력받고, 밸류를 불러오고자 하는 사용자 단말로부터 상기 키를 입력받은 경우 상기 밸류를 출력하도록 구성되는 서비스 인터페이스 모듈;
데이터 암호화 시스템의 고유정보를 추출하고, 상기 고유정보를 기반으로 제2 해쉬 알고리즘과 제2 암호화 알고리즘을 선정하도록 구성되는 키제너레이터 모듈;
상기 키를 상기 제2 해쉬 알고리즘으로 해쉬하여 해쉬 키를 생성하고, 상기 밸류를 상기 제2 암호화 알고리즘으로 암호화하여 암호화 밸류를 생성하거나 상기 암호화 밸류를 상기 제2 암호화 알고리즘으로 복호화하여 상기 밸류를 생성하도록 구성되는 인크립트 모듈; 및
상기 해쉬 키와 상기 암호화 밸류를 저장소에 저장하고, 상기 저장소로부터 상기 해쉬 키에 대응되는 암호화 밸류를 불러오도록 구성되는 스토리지 모듈을 포함하는, 데이터 암호화 시스템.
a service interface module configured to receive a key and value input from a user terminal wanting to store value, and output the value when the key is input from a user terminal wanting to retrieve value;
a key generator module configured to extract unique information of the data encryption system and select a second hash algorithm and a second encryption algorithm based on the unique information;
Hashing the key with the second hash algorithm to generate a hash key, encrypting the value with the second encryption algorithm to generate an encryption value, or decrypting the encryption value with the second encryption algorithm to generate the value. Consisting of an encrypt module; and
A data encryption system comprising a storage module configured to store the hash key and the encryption value in a storage, and retrieve the encryption value corresponding to the hash key from the storage.
제8항에 있어서,
상기 키제너레이터 모듈은:
데이터 암호화 시스템의 고유정보를 추출하도록 구성되는 고유정보 추출부;
상기 고유정보를 기반으로 상기 제2 해쉬 알고리즘을 선정하도록 구성되는 제2 해쉬 알고리즘 선정부;
상기 고유정보와 상기 해쉬 키를 기반으로 제2 암호화 알고리즘을 선정하도록 구성되는 제2 암호화 알고리즘 선정부; 및
상기 제2 암호화 알고리즘에 관한 정보를 포함하는 암호화 키를 생성하도록 구성되는 암호화 키 생성부를 포함하는, 데이터 암호화 시스템.
According to clause 8,
The key generator module is:
A unique information extraction unit configured to extract unique information of the data encryption system;
a second hash algorithm selection unit configured to select the second hash algorithm based on the unique information;
a second encryption algorithm selection unit configured to select a second encryption algorithm based on the unique information and the hash key; and
A data encryption system comprising an encryption key generator configured to generate an encryption key containing information about the second encryption algorithm.
제9항에 있어서,
상기 제2 해쉬 알고리즘 선정부는:
각각의 상기 고유정보에서 기 설정된 위치의 데이터를 추출하여 이진수로 변환하고;
변환된 값에 배타적 논리합(exclusive-OR, EOR)을 수행하여 제1 EOR 값을 산출하고;
상기 제1 EOR 값을 기 설정된 제1 해쉬 알고리즘의 총 개수로 나눈 나머지 값인 제1 나머지 값을 산출하고;
제1 해쉬 알고리즘 중 상기 제1 나머지 값을 고유번호로 갖는 해쉬 알고리즘을 제2 해쉬 알고리즘으로 선정하도록 구성되는, 데이터 암호화 시스템.
According to clause 9,
The second hash algorithm selection unit:
Extracting data at a preset location from each of the unique information and converting it into binary numbers;
Performing exclusive-OR (EOR) on the converted value to calculate a first EOR value;
Calculating a first remainder value that is a remainder value obtained by dividing the first EOR value by the total number of preset first hash algorithms;
A data encryption system configured to select a hash algorithm having the first remainder value as a unique number among the first hash algorithms as the second hash algorithm.
제9항에 있어서,
상기 제2 암호화 알고리즘 선정부는:
상기 해쉬 키를 상기 고유정보의 총 개수로 분할하여 해쉬 키 절편을 생성하고;
각각의 상기 고유정보에서 기 설정된 위치의 데이터를 추출하여 키 생성 마스크 절편 중 어느 하나를 생성하고;
상기 해쉬 키 절편에서 추출한 데이터와 각각의 상기 고유정보에서 추출한 데이터를 상기 키 생성 마스크 절편을 기반으로 조합하여 임시 키 절편을 생성하고;
각각의 상기 임시 키 절편의 데이터를 이진수로 변환한 후 배타적 논리합(exclusive-OR, EOR)을 수행하여 제2 EOR 값을 산출하고;
상기 제2 EOR 값을 기 설정된 제1 암호화 알고리즘의 총 개수로 나눈 나머지 값인 제2 나머지 값을 산출하고;
제1 암호화 알고리즘 중 상기 제2 나머지 값을 고유번호로 갖는 암호화 알고리즘을 제2 암호화 알고리즘으로 선정하도록 구성되는, 데이터 암호화 시스템.
According to clause 9,
The second encryption algorithm selection unit:
generating a hash key fragment by dividing the hash key by the total number of unique information;
extracting data at a preset location from each of the unique information to generate one of the key generation mask fragments;
generating a temporary key fragment by combining data extracted from the hash key fragment and data extracted from each of the unique information based on the key generation mask fragment;
converting the data of each temporary key fragment into binary numbers and then performing exclusive-OR (EOR) to calculate a second EOR value;
Calculating a second remainder value that is a remainder value obtained by dividing the second EOR value by the total number of preset first encryption algorithms;
A data encryption system configured to select an encryption algorithm having the second remainder value as a unique number among the first encryption algorithms as the second encryption algorithm.
제11항에 있어서,
상기 제2 암호화 알고리즘 선정부는:
상기 키 생성 마스크 절편의 n번째 값이 1인 경우, 상기 고유정보의 n번째 값을 상기 임시 키 절편의 n번째 값으로 설정하고;
상기 키 생성 마스크 절편의 n번째 값이 0인 경우 또는 상기 고유정보의 n번째 값이 존재하지 않는 경우, 상기 해쉬 키 절편의 n번째 값을 상기 임시 키 절편의 n번째 값으로 설정하도록 구성되고,
상기 n은 0을 포함하는 양의 정수인, 데이터 암호화 시스템.
According to clause 11,
The second encryption algorithm selection unit:
If the nth value of the key generation mask fragment is 1, set the nth value of the unique information as the nth value of the temporary key fragment;
If the nth value of the key generation mask fragment is 0 or the nth value of the unique information does not exist, the nth value of the hash key fragment is configured to be set as the nth value of the temporary key fragment,
A data encryption system, wherein n is a positive integer including 0.
제11항에 있어서,
상기 암호화 키 생성부는:
상기 제2 EOR 값을 기 설정된 제1 해쉬 알고리즘의 총 개수로 나눈 나머지 값인 제3 나머지 값을 산출하고;
임시 키의 좌측 끝단으로부터 상기 제3 나머지 값에 해당하는 번째 값을 상기 제2 암호화 알고리즘의 고유번호로 대체하여 상기 암호화 키를 생성하도록 구성되는, 데이터 암호화 시스템.
According to clause 11,
The encryption key generator:
Calculate a third remainder value, which is a remainder value obtained by dividing the second EOR value by the total number of preset first hash algorithms;
A data encryption system configured to generate the encryption key by replacing the third value corresponding to the third remaining value from the left end of the temporary key with a unique number of the second encryption algorithm.
제13항에 있어서,
상기 인크립트 모듈은:
상기 키제너레이터 모듈로부터 상기 암호화 키와 상기 제2 암호화 알고리즘의 고유번호의 위치에 관한 정보를 반환받고;
상기 암호화 키로부터 상기 제2 암호화 알고리즘의 고유번호를 추출하고;
상기 밸류를 상기 제2 암호화 알고리즘으로 암호화하여 상기 암호화 밸류를 생성하도록 구성되는, 데이터 암호화 시스템.
According to clause 13,
The encrypt module:
Receiving information about the location of the encryption key and the unique number of the second encryption algorithm from the key generator module;
extracting a unique number of the second encryption algorithm from the encryption key;
A data encryption system configured to generate the encryption value by encrypting the value with the second encryption algorithm.
KR1020210063322A 2021-05-17 2021-05-17 Data encryption system and method thereof KR102576566B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210063322A KR102576566B1 (en) 2021-05-17 2021-05-17 Data encryption system and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210063322A KR102576566B1 (en) 2021-05-17 2021-05-17 Data encryption system and method thereof

Publications (2)

Publication Number Publication Date
KR20220155732A KR20220155732A (en) 2022-11-24
KR102576566B1 true KR102576566B1 (en) 2023-09-08

Family

ID=84235502

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210063322A KR102576566B1 (en) 2021-05-17 2021-05-17 Data encryption system and method thereof

Country Status (1)

Country Link
KR (1) KR102576566B1 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100799167B1 (en) 2006-06-07 2008-01-29 주식회사 네토미 Data recoding apparatus, and imformation providing service system using the same and method thereof
FR2906380B1 (en) 2006-09-27 2008-12-19 Trusted Logic Sa SYSTEM AND METHOD FOR SECURING DATA.
KR102263877B1 (en) * 2018-12-18 2021-06-14 시큐리티플랫폼 주식회사 Unique encryption key generator for device and method thereof
KR20200139063A (en) * 2019-06-03 2020-12-11 권민정 Apparatus and method for data encryption

Also Published As

Publication number Publication date
KR20220155732A (en) 2022-11-24

Similar Documents

Publication Publication Date Title
US11647007B2 (en) Systems and methods for smartkey information management
RU2718689C2 (en) Confidential communication control
US8694467B2 (en) Random number based data integrity verification method and system for distributed cloud storage
US9208491B2 (en) Format-preserving cryptographic systems
US20050097348A1 (en) Password-based key management
CN110138739B (en) Data information encryption method and device, computer equipment and storage medium
CN101218589A (en) Generating a secret key from an asymmetric private key
CN113489710B (en) File sharing method, device, equipment and storage medium
EP1501238A1 (en) Method and system for key distribution comprising a step of authentication and a step of key distribution using a KEK (key encryption key)
KR20180108008A (en) Apparatus and method for generating key, apparatus and method for encryption
CN111859435B (en) Data security processing method and device
CN114443718A (en) Data query method and system
CN113449338A (en) Information encryption storage method and system based on block chain
US20090010433A1 (en) Schryption method and device
CN112818404B (en) Data access permission updating method, device, equipment and readable storage medium
CN113078992B (en) High-performance data multi-stage encryption and decryption method and system based on complete homomorphic encryption
US20230289345A1 (en) Searchable encryption system
CN112528309A (en) Data storage encryption and decryption method and device
KR102576566B1 (en) Data encryption system and method thereof
US10853502B1 (en) Systems and methods for reducing computational difficulty of cryptographic operations
JP2005167794A (en) Secret information storage method and apparatus, secret information restoration method and program, secret information storage program, and secret information restoration program
CN116866029B (en) Random number encryption data transmission method, device, computer equipment and storage medium
KR20200089832A (en) Apparatus and method for order-revealing encryption in multi-client environment without trusted authority
CN115442102B (en) Equation test method based on SM9 algorithm
KR20120090901A (en) Method and device for cipher-deciphering data automatically

Legal Events

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