KR20240066806A - Method of storing encryption key using table and method of extracting encryption key - Google Patents

Method of storing encryption key using table and method of extracting encryption key Download PDF

Info

Publication number
KR20240066806A
KR20240066806A KR1020220148041A KR20220148041A KR20240066806A KR 20240066806 A KR20240066806 A KR 20240066806A KR 1020220148041 A KR1020220148041 A KR 1020220148041A KR 20220148041 A KR20220148041 A KR 20220148041A KR 20240066806 A KR20240066806 A KR 20240066806A
Authority
KR
South Korea
Prior art keywords
key
encryption
encryption key
data
pieces
Prior art date
Application number
KR1020220148041A
Other languages
Korean (ko)
Inventor
최우림
손정락
김민우
신재민
김자민
문승규
김윤지
김치헌
정준우
유수민
곽철훈
임승준
Original Assignee
주식회사 에스위너스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 에스위너스 filed Critical 주식회사 에스위너스
Priority to KR1020220148041A priority Critical patent/KR20240066806A/en
Publication of KR20240066806A publication Critical patent/KR20240066806A/en

Links

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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/043Masking or blinding of tables, e.g. lookup, substitution or mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

암호화 데이터 및 암호 키가 입력되면, 암호화 데이터 및 암호 키를 저장할 테이블을 생성하고, 미리 설정된 단위로 상기 암호 키를 분리하여 다수의 키 조각을 생성하며, 암호화 데이터 및 미리 설정된 주소 지정 알고리즘 중 적어도 하나를 이용하여 상기 테이블 내에서 다수의 키 조각 각각이 저장될 서로 다른 테이블 주소를 지정하고, 테이블에 암호화 데이터를 저장하고, 설정된 테이블 주소에 기초하여 테이블에 다수의 키 조각 각각을 저장하는, 암호 키 저장 방법을 개시한다.When the encryption data and encryption key are input, a table to store the encryption data and encryption key is created, the encryption key is separated into preset units to generate a plurality of key pieces, and at least one of the encryption data and the preset addressing algorithm is generated. An encryption key that specifies different table addresses in the table where each of the multiple key pieces will be stored, stores the encrypted data in the table, and stores each of the multiple key pieces in the table based on the set table address. A storage method is disclosed.

Description

테이블을 이용하는 암호 키 저장 방법 및 암호 키 추출 방법{METHOD OF STORING ENCRYPTION KEY USING TABLE AND METHOD OF EXTRACTING ENCRYPTION KEY}Method of storing encryption key using table and method of extracting encryption key {METHOD OF STORING ENCRYPTION KEY USING TABLE AND METHOD OF EXTRACTING ENCRYPTION KEY}

본 발명은 테이블을 이용하는 암호 키 저장 방법 및 암호 키 추출 방법에 관한 것이다.The present invention relates to an encryption key storage method and an encryption key extraction method using a table.

통신 기술이 발달하고 통신 서비스가 일반화되면서, 통신 네트워크 상에서 공격자로부터의 시스템 및 사용자의 안전성을 보장하기 위하여 다양한 암호 기술이 이용되고 있다. 암호 기술은 평문(Plain text)을 암호문(Cipher text)으로 바꿈으로써 공격자가 평문의 내용을 알 수 없도록 하는 기술이라고 할 수 있으며, 이러한 암호화를 위해서 암호화 알고리즘과 암호 키(key)가 이용될 수 있다.As communication technology develops and communication services become more common, various encryption technologies are being used to ensure the safety of systems and users from attackers on communication networks. Encryption technology can be said to be a technology that prevents attackers from knowing the contents of the plain text by changing plain text into cipher text. For this encryption, an encryption algorithm and encryption key can be used. .

종래에는 주로 암호 키를 숨겨 공격자가 암호문으로부터 평문을 복호화하지 못하도록 하는 기술들이 활용되었으나, 공격자가 공격 대상의 암호 키를 획득하는 다양한 기법들이 개발되었고, 나아가 암호 키의 유출을 완전하게 차단할 수는 없다는 한계가 존재할 수밖에 없는 바, 암호 키가 유출될 수 있음을 전제로 하는 암호화 기법이 시도되고 있다.In the past, techniques were mainly used to hide the encryption key to prevent attackers from decrypting the plaintext from the ciphertext, but various techniques have been developed for attackers to obtain the encryption key of the attack target, and furthermore, it is impossible to completely prevent the leakage of the encryption key. Since there are bound to be limitations, encryption techniques that assume that encryption keys can be leaked are being attempted.

이와 관련하여, 암호화 기술의 하나로서 암호화 알고리즘과 암호 키를 테이블로 구성하여 동작시키는 테이블 룩업 방식의 암호화 기술이 시도되고 있다. 이에 대한 대표적인 예로서 화이트 박스 암호화 기법을 들 수 있는데, 화이트 박스 암호화 기법에서는 암호화 알고리즘 및 암호 키를 테이블로 구성함으로써, 테이블이 공격자에게 노출되더라도 공격자가 테이블로부터 암호 키를 추출하기 어렵게 하여 공격자의 공격을 방지할 수 있다.In this regard, as one of the encryption technologies, a table lookup encryption technology that operates by organizing the encryption algorithm and encryption key into a table is being attempted. A representative example of this is the white box encryption technique. In the white box encryption technique, the encryption algorithm and encryption key are organized into a table, so even if the table is exposed to the attacker, it is difficult for the attacker to extract the encryption key from the table, preventing the attacker's attack. can be prevented.

이와 같은 화이트 박스 암호화 기법에서 테이블은 통상 앱이나 프로그램과 같이 패키징되거나 별도의 테이블 파일로 데이터베이스 또는 파일 시스템 등에 저장된다.In this white box encryption technique, tables are usually packaged with an app or program or stored in a database or file system as a separate table file.

본 발명은 암호화된 데이터가 저장되는 테이블에, 암호 키를 분산시켜 저장하는 암호 키 저장 방법에 관한 것이다.The present invention relates to an encryption key storage method that distributes and stores encryption keys in a table where encrypted data is stored.

또한, 본 발명은 암호화된 데이터와 암호 키가 분산되어 저장된 테이블에서, 암호 키를 추출하는 암호 키 추출 방법에 관한 것이다.Additionally, the present invention relates to an encryption key extraction method for extracting an encryption key from a table in which encrypted data and encryption keys are distributed and stored.

본 발명에 따른 암호 키 저장 방법은, 암호화 데이터 및 암호 키가 입력되면, 상기 암호화 데이터 및 상기 암호 키를 저장할 테이블을 생성하는 단계; 미리 설정된 단위로 상기 암호 키를 분리하여 다수의 키 조각을 생성하는 단계; 상기 암호화 데이터 및 미리 설정된 주소 지정 알고리즘 중 적어도 하나를 이용하여 상기 테이블 내에서 상기 다수의 키 조각 각각이 저장될 서로 다른 테이블 주소를 지정하는 단계; 및 상기 테이블에 상기 암호화 데이터를 저장하고, 상기 설정된 테이블 주소에 기초하여 상기 테이블에 상기 다수의 키 조각 각각을 저장하는 단계;를 포함할 수 있다.An encryption key storage method according to the present invention includes the steps of, when encryption data and an encryption key are input, creating a table to store the encryption data and the encryption key; generating a plurality of key pieces by dividing the encryption key into preset units; Specifying different table addresses in the table where each of the plurality of key pieces will be stored using at least one of the encryption data and a preset addressing algorithm; and storing the encrypted data in the table and storing each of the plurality of key pieces in the table based on the set table address.

또한, 상기 테이블 주소를 지정하는 단계는, 상기 암호화 데이터에 기초하여 상기 다수의 키 조각 중 가장 앞선 키 조각에 대한 테이블 주소를 지정할 수 있다.Additionally, the step of specifying the table address may specify a table address for the most advanced key fragment among the plurality of key fragments based on the encryption data.

또한, 상기 테이블 주소를 지정하는 단계는, 상기 다수의 키 조각 중 어느 하나인, 제 1 키 조각에 할당된 제 1 테이블 주소를 확인하는 단계; 상기 제 1 키 조각에 인접한 다음 키 조각인 제 2 키 조각의 인덱스를 확인하는 단계; 상기 암호화 데이터 및 상기 제 2 키 조각의 인덱스 중 적어도 하나를 고려하여 제 2 테이블 주소를 결정하는 단계; 및 상기 제 2 키 조각에 상기 제 2 테이블 주소를 지정하는 단계;를 포함할 수 있다.In addition, the step of specifying the table address includes checking a first table address assigned to a first key piece, which is one of the plurality of key pieces; checking the index of a second key piece, which is the next key piece adjacent to the first key piece; determining a second table address by considering at least one of the encrypted data and an index of the second key piece; and specifying the second table address to the second key piece.

또한, 상기 테이블 주소를 지정하는 단계는, 상기 다수의 키 조각 각각에 지정될 서로 다른 테이블 주소 간의 연관성을 나타내도록 상기 암호화 데이터의 일측에 연관성 부호를 추가할 수 있다.Additionally, in the step of specifying the table address, an association code may be added to one side of the encrypted data to indicate the association between different table addresses to be assigned to each of the plurality of key pieces.

또한, 상기 테이블 주소를 지정하는 단계는, 상기 다수의 키 조각을 미리 설정된 순서로 재 배치하는 단계;를 포함할 수 있다.Additionally, the step of specifying the table address may include rearranging the plurality of key pieces in a preset order.

한편, 본 발명에 따른 암호 키 저장 장치는, 암호화 데이터 및 암호 키가 입력되면, 상기 암호화 데이터 및 상기 암호 키를 저장할 테이블을 생성하는 테이블 생성부; 미리 설정된 단위로 상기 암호 키를 분리하여 다수의 키 조각을 생성하는 암호 키 분리부; 상기 암호화 데이터 및 미리 설정된 주소 지정 알고리즘 중 적어도 하나를 이용하여 상기 테이블 내에서 상기 다수의 키 조각 각각이 저장될 서로 다른 테이블 주소를 지정하는 주소 지정부; 및 상기 테이블에 상기 암호화 데이터를 저장하고, 상기 설정된 테이블 주소에 기초하여 상기 테이블에 상기 다수의 키 조각 각각을 저장하는 데이터 처리부;를 포함할 수 있다.Meanwhile, an encryption key storage device according to the present invention includes a table generator that, when encryption data and an encryption key are input, creates a table to store the encryption data and the encryption key; an encryption key separation unit that separates the encryption key into preset units to generate a plurality of key pieces; an address designation unit that designates different table addresses in the table where each of the plurality of key pieces will be stored using at least one of the encryption data and a preset addressing algorithm; and a data processing unit that stores the encrypted data in the table and stores each of the plurality of key pieces in the table based on the set table address.

한편, 본 발명에 따른 컴퓨터로 판독될 수 있는 기록매체에 저장된 프로그램은, 전자기기에서 하나 이상의 프로세스에 의하여 실행되며, 컴퓨터로 판독될 수 있는 기록매체에 저장된 프로그램으로서, 상기 프로그램은, 암호화 데이터 및 암호 키가 입력되면, 상기 암호화 데이터 및 상기 암호 키를 저장할 테이블을 생성하는 단계; 미리 설정된 단위로 상기 암호 키를 분리하여 다수의 키 조각을 생성하는 단계; 상기 암호화 데이터 및 미리 설정된 주소 지정 알고리즘 중 적어도 하나를 이용하여 상기 테이블 내에서 상기 다수의 키 조각 각각이 저장될 서로 다른 테이블 주소를 지정하는 단계; 및 상기 테이블에 상기 암호화 데이터를 저장하고, 상기 설정된 테이블 주소에 기초하여 상기 테이블에 상기 다수의 키 조각 각각을 저장하는 단계;를 수행하도록 하는 명령어들을 포함할 수 있다.Meanwhile, a program stored in a computer-readable recording medium according to the present invention is a program stored in a computer-readable recording medium that is executed by one or more processes in an electronic device, and the program includes encrypted data and When an encryption key is input, creating a table to store the encryption data and the encryption key; generating a plurality of key pieces by dividing the encryption key into preset units; Specifying different table addresses in the table where each of the plurality of key pieces will be stored using at least one of the encryption data and a preset addressing algorithm; and storing the encrypted data in the table and storing each of the plurality of key pieces in the table based on the set table address.

한편, 본 발명에 따른 암호 키 추출 방법은, 암호화 데이터 및 다수의 키 조각이 저장된 테이블을 불러오는 단계; 상기 테이블에서 암호화 데이터를 불러오는 단계; 상기 암호화 데이터 및 미리 설정된 주소 지정 알고리즘 중 적어도 하나를 이용하여 상기 테이블 내에서 상기 다수의 키 조각 각각이 저장된 서로 다른 테이블 주소를 판단하는 단계; 상기 판단된 테이블 주소에 기초하여 상기 테이블에서 상기 다수의 키 조각 각각을 추출하는 단계; 및 상기 추출된 다수의 키 조각을 나열하여 암호 키를 생성하는 단계;를 포함할 수 있다.Meanwhile, the encryption key extraction method according to the present invention includes the steps of loading a table in which encryption data and a plurality of key pieces are stored; Loading encrypted data from the table; determining different table addresses in the table where each of the plurality of key pieces is stored using at least one of the encryption data and a preset addressing algorithm; extracting each of the plurality of key pieces from the table based on the determined table address; and generating an encryption key by listing the extracted plurality of key pieces.

한편, 본 발명에 따른 암호 키 추출 장치는, 암호화 데이터 및 다수의 키 조각이 저장된 테이블을 불러오는 테이블 로드부; 상기 암호화 데이터 및 미리 설정된 주소 지정 알고리즘 중 적어도 하나를 이용하여 상기 테이블 내에서 상기 다수의 키 조각 각각이 저장된 서로 다른 테이블 주소를 판단하는 주소 판단부; 상기 테이블에서 암호화 데이터를 불러오고, 상기 판단된 테이블 주소에 기초하여 상기 테이블에서 상기 다수의 키 조각 각각을 추출하는 데이터 로드부; 및 상기 추출된 다수의 키 조각을 나열하여 암호 키를 생성하는 암호 키 생성부;를 포함할 수 있다.Meanwhile, an encryption key extraction device according to the present invention includes a table loader that loads a table in which encryption data and a plurality of key pieces are stored; an address determination unit that determines different table addresses where each of the plurality of key pieces is stored in the table using at least one of the encryption data and a preset addressing algorithm; a data load unit that loads encrypted data from the table and extracts each of the plurality of key pieces from the table based on the determined table address; and an encryption key generator that generates an encryption key by listing the extracted plurality of key pieces.

한편, 본 발명에 따른 컴퓨터로 판독될 수 있는 기록매체에 저장된 프로그램은, 전자기기에서 하나 이상의 프로세스에 의하여 실행되며, 컴퓨터로 판독될 수 있는 기록매체에 저장된 프로그램으로서, 상기 프로그램은, 암호화 데이터 및 다수의 키 조각이 저장된 테이블을 불러오는 단계; 상기 테이블에서 암호화 데이터를 불러오는 단계; 상기 암호화 데이터 및 미리 설정된 주소 지정 알고리즘 중 적어도 하나를 이용하여 상기 테이블 내에서 상기 다수의 키 조각 각각이 저장된 서로 다른 테이블 주소를 판단하는 단계; 상기 판단된 테이블 주소에 기초하여 상기 테이블에서 상기 다수의 키 조각 각각을 추출하는 단계; 및 상기 추출된 다수의 키 조각을 나열하여 암호 키를 생성하는 단계;를 수행하도록 하는 명령어들을 포함할 수 있다.Meanwhile, a program stored in a computer-readable recording medium according to the present invention is a program stored in a computer-readable recording medium that is executed by one or more processes in an electronic device, and the program includes encrypted data and Loading a table in which a plurality of key fragments are stored; Loading encrypted data from the table; determining different table addresses in the table where each of the plurality of key pieces is stored using at least one of the encryption data and a preset addressing algorithm; extracting each of the plurality of key pieces from the table based on the determined table address; and generating an encryption key by listing the extracted plurality of key pieces.

위에서 살펴본 것과 같이, 본 발명에 따른 암호 키 저장 방법은, 암호화된 데이터가 저장되는 테이블에, 암호 키를 분산시켜 저장함으로써, 역공학(RE, Reverse Engineering)을 통한 암호 키 추출에 대한 난독화를 실현할 수 있다.As seen above, the encryption key storage method according to the present invention stores the encryption key in a distributed manner in a table where encrypted data is stored, thereby obfuscating encryption key extraction through reverse engineering (RE). It can be realized.

또한, 본 발명에 따른 암호 키 추출 방법은 암호화된 데이터와 암호 키가 분산되어 저장된 테이블에서, 안전하고 정확하게 암호 키를 추출할 수 있다.Additionally, the encryption key extraction method according to the present invention can safely and accurately extract the encryption key from a table where encrypted data and encryption keys are distributed and stored.

도 1은 본 발명에 따른 암호 키 저장 시스템을 도시한다.
도 2는 본 발명에 따른 암호 키 저장 방법을 나타내는 흐름도이다.
도 3은 본 발명에 따른 암호 키 추출 방법을 나타내는 흐름도이다.
도 4 내지 도 8은 본 발명에 따른 암호 키 저장 장치가 테이블을 구성하는 과정을 도시한다.
도 9는 본 발명에 따른 암호 키 추출 장치가 테이블로부터 암호 키를 생성하는 과정을 도시한다.
Figure 1 shows a cryptographic key storage system according to the present invention.
Figure 2 is a flowchart showing an encryption key storage method according to the present invention.
Figure 3 is a flowchart showing an encryption key extraction method according to the present invention.
Figures 4 to 8 show the process of configuring a table by the encryption key storage device according to the present invention.
Figure 9 shows a process in which the encryption key extraction device according to the present invention generates an encryption key from a table.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소에는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Hereinafter, embodiments disclosed in the present specification will be described in detail with reference to the accompanying drawings. However, identical or similar components will be assigned the same reference numbers regardless of drawing symbols, and duplicate descriptions thereof will be omitted. Suffix "module" for components used in the description below. and "Part" are given or used interchangeably considering only the ease of preparing the specification, and do not have distinct meanings or roles in themselves. Additionally, in describing the embodiments disclosed in this specification, if it is determined that detailed descriptions of related known technologies may obscure the gist of the embodiments disclosed in this specification, the detailed descriptions will be omitted. In addition, the attached drawings are only for easy understanding of the embodiments disclosed in this specification, and the technical idea disclosed in this specification is not limited by the attached drawings, and all changes included in the spirit and technical scope of the present invention are not limited. , should be understood to include equivalents or substitutes.

제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms containing ordinal numbers, such as first, second, etc., may be used to describe various components, but the components are not limited by the terms. The above terms are used only for the purpose of distinguishing one component from another.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.A component is "connected" to another component. present or "connected" When it is mentioned that there is, it may be directly connected or connected to the other component, but it should be understood that other components may exist in the middle. On the other hand, a component is "directly connected" to another component. or "directly connected" When mentioned, it should be understood that no other intermediate components exist.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.Singular expressions include plural expressions unless the context clearly dictates otherwise.

본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.In this application, "includes" or "have" Terms such as are intended to designate the presence of features, numbers, steps, operations, components, parts, or a combination thereof described in the specification, but are intended to indicate the presence of one or more other features, numbers, steps, operations, components, parts, or It should be understood that the existence or addition possibility of combinations of these is not excluded in advance.

도 1은 본 발명에 따른 암호 키 저장 시스템을 도시한다.Figure 1 shows a cryptographic key storage system according to the present invention.

본 발명에 따른 암호 키 저장 시스템(1)은 메모리에 암호화 데이터와 암호 키를 저장하고, 저장된 암호화 데이터와 암호키를 불러올 수 있다. 여기에서, 암호화 데이터는 다양한 암호화 기법(예를 들면, 해시(Hash) 암호화, 대칭키 암호화 등)을 통해 암호화된 데이터일 수 있다. 또한, 암호 키는 데이터를 암호화하는 과정에서 이용되는 키 또는 암호화 데이터를 복호화하는 과정에서 이용되는 키일 수 있다.The encryption key storage system 1 according to the present invention can store encryption data and encryption keys in memory and load the stored encryption data and encryption keys. Here, the encrypted data may be data encrypted through various encryption techniques (eg, hash encryption, symmetric key encryption, etc.). Additionally, the encryption key may be a key used in the process of encrypting data or a key used in the process of decrypting encrypted data.

이때, 암호 키 저장 시스템(1)은 테이블을 생성하여, 생성된 테이블에 암호화 데이터 및 암호 키를 저장하거나, 테이블에서 암호화 데이터 및 암호 키를 추출할 수 있다. 여기에서, 테이블은 정수, 문자 또는 문자열 등의 값을 저장하기 위한 다수의 공간을 포함할 수 있으며, 이때, 각 공간은 서로 다른 테이블 주소가 할당될 수 있다. 이와 같은, 테이블은 암호화 데이터가 이용되는 어플리케이션(Application) 또는 응용 프로그램 등에 포함되거나, 별도의 파일로써 저장될 수 있다. 예를 들어, 테이블은 화이트 박스 암호화(White-Box Cryptography)에 기반하여 마련되는 것일 수 있다. 이러한 경우에, 테이블은 암호화 데이터, 암호 키 및 암호화 알고리즘 등을 포함할 수 있다.At this time, the encryption key storage system 1 may create a table and store the encryption data and encryption key in the created table, or extract the encryption data and encryption key from the table. Here, the table may include multiple spaces for storing values such as integers, characters, or strings, and in this case, each space may be assigned a different table address. Such a table may be included in an application or application program that uses encrypted data, or may be stored as a separate file. For example, the table may be prepared based on White-Box Cryptography. In this case, the table may contain encryption data, encryption keys and encryption algorithms, etc.

이와 관련하여 도 1을 참조하면, 암호 키 저장 시스템(1)은 암호 키 저장 장치(100), 저장 서버(500) 및 암호 키 추출 장치(300)를 포함할 수 있다. 한편, 상기와 같은 구성은 암호 키 저장 시스템(1)의 구성 및 동작을 개념적으로 설명하기 위한 것이며, 즉, 본 발명에 따른 암호 키 저장 시스템(1)은 하나 또는 둘 이상의 장치로 통합되거나 개별적으로 마련될 수 있다.In this regard, referring to FIG. 1 , the encryption key storage system 1 may include an encryption key storage device 100, a storage server 500, and an encryption key extraction device 300. Meanwhile, the above configuration is intended to conceptually explain the configuration and operation of the encryption key storage system 1, that is, the encryption key storage system 1 according to the present invention is integrated into one or two or more devices or individually. It can be provided.

암호 키 저장 장치(100)는 암호화 모듈로부터 암호화 데이터 및 암호 키가 입력되면, 테이블을 생성하고, 생성된 테이블에 암호화 데이터 및 암호 키를 저장할 수 있다. 여기에서, 암호화 모듈은 임의의 암호화 알고리즘을 이용하여 암호 키를 생성하고, 데이터를 암호화하도록 마련된 것일 수 있다. 이러한, 암호 키 저장 장치(100)는 암호화 모듈과 통합되거나, 개별적으로 구현될 수 있다.When encryption data and an encryption key are input from an encryption module, the encryption key storage device 100 may create a table and store the encryption data and encryption key in the created table. Here, the encryption module may be designed to generate an encryption key and encrypt data using an arbitrary encryption algorithm. This encryption key storage device 100 may be integrated with the encryption module or may be implemented separately.

이를 위해, 암호 키 저장 장치(100)는 저장부(110), 통신부(130) 및 제어부(150)를 포함할 수 있다.For this purpose, the encryption key storage device 100 may include a storage unit 110, a communication unit 130, and a control unit 150.

저장부(110)는 암호 키를 저장하는 과정에서 발생하는 데이터들을 저장하도록 구현될 수 있다.The storage unit 110 may be implemented to store data generated in the process of storing an encryption key.

구체적으로, 저장부(110)는 제어부(150)에 의해 생성된 테이블과, 테이블에 암호화 데이터 및 암호 키를 저장하기 위한 명령어 또는 알고리즘이 저장될 수 있다.Specifically, the storage unit 110 may store a table created by the control unit 150 and a command or algorithm for storing encryption data and an encryption key in the table.

예를 들어, 저장부(110)는 주소 지정 알고리즘이 저장될 수 있다. 여기에서, 주소 지정 알고리즘은 테이블에서 암호화 데이터 및 암호 키가 저장될 위치를 결정하는 알고리즘일 수 있다.For example, the storage unit 110 may store an addressing algorithm. Here, the addressing algorithm may be an algorithm that determines where in the table the encryption data and encryption key will be stored.

통신부(130)는 암호화 모듈, 저장 서버(500), 암호 키 추출 장치(300) 중 적어도 하나와 유선 또는 무선 통신을 수행하도록 구현될 수 있다.The communication unit 130 may be implemented to perform wired or wireless communication with at least one of the encryption module, the storage server 500, and the encryption key extraction device 300.

구체적으로, 통신부(130)는 암호화 모듈로부터 유선 또는 무선 통신을 통해 암호화 데이터 및 암호 키를 수신할 수 있다. 또한, 통신부(130)는 저장 서버(500) 및 암호 키 추출 장치(300) 중 적어도 하나에 암호화 데이터 및 암호 키가 저장된 테이블을 송신할 수 있다.Specifically, the communication unit 130 may receive encryption data and an encryption key from the encryption module through wired or wireless communication. Additionally, the communication unit 130 may transmit a table storing the encryption data and the encryption key to at least one of the storage server 500 and the encryption key extraction device 300.

제어부(150)는 암호 키 저장 장치(100)의 전반적인 동작을 제어할 수 있다. 구체적으로, 제어부(150)는 통신부(130)를 통해 암호화 데이터 및 암호 키가 입력되면, 테이블을 생성하고, 테이블에 암호화 데이터 및 암호 키를 저장할 수 있다.The control unit 150 may control the overall operation of the encryption key storage device 100. Specifically, when encryption data and an encryption key are input through the communication unit 130, the control unit 150 may create a table and store the encryption data and encryption key in the table.

이를 위해, 제어부(150)는 테이블 생성부(151), 암호 키 분리부(153), 주소 지정부(155) 및 데이터 처리부(157)를 포함할 수 있다.To this end, the control unit 150 may include a table creation unit 151, an encryption key separation unit 153, an address designation unit 155, and a data processing unit 157.

테이블 생성부(151)는 암호화 데이터 및 암호 키가 입력되면, 암호화 데이터 및 암호 키를 저장할 테이블을 생성할 수 있다. 이때, 테이블을 생성하는 것은 저장부(110)에서 암호 키를 저장하도록 미리 저장된 테이블을 불러오는 것일 수도 있다.When the encryption data and encryption key are input, the table creation unit 151 may create a table to store the encryption data and encryption key. At this time, creating a table may mean loading a table previously stored in the storage unit 110 to store the encryption key.

암호 키 분리부(153)는 미리 설정된 단위로 암호 키를 분리하여 다수의 키 조각을 생성할 수 있다. 여기에서, 미리 설정된 단위는 하나의 키 조각에 대한 데이터 크기(예를 들면, 1 Byte)를 의미할 수 있다.The encryption key separation unit 153 may separate the encryption key into preset units and generate a plurality of key pieces. Here, the preset unit may mean the data size (for example, 1 Byte) for one key piece.

주소 지정부(155)는 암호화 데이터 및 미리 설정된 주소 지정 알고리즘 중 적어도 하나를 이용하여 테이블 내에서 다수의 키 조각 각각이 저장될 서로 다른 테이블 주소를 지정할 수 있다.The address designation unit 155 may use at least one of encryption data and a preset address designation algorithm to designate different table addresses in the table where each of the plurality of key pieces will be stored.

데이터 처리부(157)는 테이블에 암호화 데이터를 저장하고, 설정된 테이블 주소에 기초하여 테이블에 다수의 키 조각 각각을 저장할 수 있다.The data processing unit 157 may store encrypted data in a table and store each of a plurality of key pieces in the table based on the set table address.

상기와 같은 과정을 거쳐, 제어부(150)는 테이블에 암호화 데이터 및 암호 키(또는, 다수의 키 조각)를 저장할 수 있다. 이에 따라, 제어부(150)는 통신부(130)를 통해, 저장 서버(500) 및 암호 키 추출 장치(300)로 암호화 데이터 및 암호 키가 저장된 테이블을 송신할 수 있다.Through the above process, the control unit 150 can store the encryption data and encryption key (or multiple key pieces) in the table. Accordingly, the control unit 150 may transmit the table storing the encryption data and the encryption key to the storage server 500 and the encryption key extraction device 300 through the communication unit 130.

저장 서버(500)는 암호화 데이터 및 암호 키가 저장된 테이블이 저장될 수 있다. 즉, 저장 서버(500)는 암호 키 저장 장치(100)로부터 테이블을 수신하여 저장할 수 있다.The storage server 500 may store a table in which encryption data and encryption keys are stored. That is, the storage server 500 can receive the table from the encryption key storage device 100 and store it.

따라서, 저장 서버(500)는 암호 키 추출 장치(300)로부터의 요청 명령에 기초하여, 암호 키 추출 장치(300)에 암호화 데이터 및 암호 키가 저장된 테이블을 송신할 수 있다.Accordingly, the storage server 500 may transmit the table in which the encryption data and the encryption key are stored to the encryption key extraction device 300 based on the request command from the encryption key extraction device 300.

암호 키 추출 장치(300)는 저장 서버(500)로부터 암호화 데이터 및 암호 키(또는, 다수의 키 조각)가 저장된 테이블을 수신하면, 테이블에서 암호화 데이터 및 암호 키를 추출할 수 있다. 이에 따라, 암호 키 추출 장치(300)는 복호화 모듈에 암호화 데이터 및 암호 키를 전달할 수 있다. 여기에서, 복호화 모듈은 임의의 복호화 알고리즘과 암호 키(또는, 복호 키)를 이용하여 암호화된 데이터를 복호화하도록 마련된 것일 수 있다. 이때, 암호 키 추출 장치(300)는 복호화 모듈과 통합되거나, 개별적으로 구현될 수 있다.When the encryption key extraction device 300 receives a table in which encryption data and encryption keys (or multiple key pieces) are stored from the storage server 500, the encryption key extraction device 300 may extract the encryption data and encryption keys from the table. Accordingly, the encryption key extraction device 300 can transmit the encryption data and encryption key to the decryption module. Here, the decryption module may be provided to decrypt encrypted data using an arbitrary decryption algorithm and encryption key (or decryption key). At this time, the encryption key extraction device 300 may be integrated with the decryption module or may be implemented separately.

이를 위해, 암호 키 추출 장치(300)는 저장부(310), 통신부(330) 및 제어부(350)를 포함할 수 있다.For this purpose, the encryption key extraction device 300 may include a storage unit 310, a communication unit 330, and a control unit 350.

저장부(310)는 암호 키를 추출하는 과정에서 발생하는 데이터들을 저장하도록 구현될 수 있다.The storage unit 310 may be implemented to store data generated in the process of extracting an encryption key.

구체적으로, 저장부(310)는 통신부(330)를 통해 수신된 테이블과, 테이블로부터 암호화 데이터 및 암호 키를 추출하기 위한 명령어 또는 알고리즘이 저장될 수 있다.Specifically, the storage unit 310 may store a table received through the communication unit 330 and a command or algorithm for extracting encryption data and an encryption key from the table.

예를 들어, 저장부(310)는 주소 지정 알고리즘이 저장될 수 있다. 여기에서, 주소 지정 알고리즘은 테이블에서 암호화 데이터 및 암호 키가 저장된 위치를 판단하는 알고리즘일 수 있다. 이때, 주소 지정 알고리즘은 앞서 암호 키 저장 장치(100)에서 이용된 주소 지정 알고리즘과 동일하거나 대응되도록 설정된 것일 수 있다. 즉, 암호 키 저장 장치(100) 및 암호 키 추출 장치(300)에 각각 마련된 주소 지정 알고리즘은 서로 동일한 규칙으로 테이블(50) 내의 암호 키(또는, 키 조각들)에 대한 테이블 주소를 지정 또는 판단하도록 설정될 수 있다. 또는, 암호 키 추출 장치(300)의 주소 지정 알고리즘은 테이블에서 암호 키가 저장된 위치를 판단하도록 일부 변형된 것일 수 있다.For example, the storage unit 310 may store an addressing algorithm. Here, the addressing algorithm may be an algorithm that determines where the encryption data and encryption key are stored in the table. At this time, the addressing algorithm may be the same as or set to correspond to the addressing algorithm previously used in the encryption key storage device 100. That is, the addressing algorithms provided in each of the encryption key storage device 100 and the encryption key extraction device 300 specify or determine the table address for the encryption key (or key fragments) in the table 50 using the same rules. It can be set to do so. Alternatively, the addressing algorithm of the encryption key extraction device 300 may be partially modified to determine the location in the table where the encryption key is stored.

통신부(330)는 복호화 모듈, 저장 서버(500), 암호 키 저장 장치(100) 중 적어도 하나와 유선 또는 무선 통신을 수행하도록 구현될 수 있다.The communication unit 330 may be implemented to perform wired or wireless communication with at least one of the decryption module, the storage server 500, and the encryption key storage device 100.

구체적으로, 통신부(330)는 저장 서버(500) 및 암호 키 저장 장치(100) 중 적어도 하나로부터 유선 또는 무선 통신을 통해 테이블을 수신할 수 있다. 또한, 통신부(330)는 복호화 모듈에 암호화 데이터 및 암호 키를 송신할 수 있다.Specifically, the communication unit 330 may receive the table from at least one of the storage server 500 and the encryption key storage device 100 through wired or wireless communication. Additionally, the communication unit 330 may transmit encryption data and an encryption key to the decryption module.

제어부(350)는 암호 키 추출 장치(300)의 전반적인 동작을 제어할 수 있다. 구체적으로, 제어부(350)는 통신부(330)를 통해, 암호화 데이터 및 암호 키(또는, 다수의 키 조각)가 저장된 테이블을 수신하면, 테이블에서 암호화 데이터 및 암호 키를 추출할 수 있다.The control unit 350 may control the overall operation of the encryption key extraction device 300. Specifically, when the control unit 350 receives a table storing encryption data and encryption keys (or multiple key pieces) through the communication unit 330, the control unit 350 may extract the encryption data and encryption keys from the table.

이를 위해, 제어부(350)는 테이블 로드부(351), 데이터 로드부(353), 주소 판단부(355) 및 암호 키 생성부(357)를 포함할 수 있다.To this end, the control unit 350 may include a table load unit 351, a data load unit 353, an address determination unit 355, and an encryption key generation unit 357.

테이블 로드부(351)는 암호화 데이터 및 다수의 키 조각이 저장된 테이블을 불러올 수 있다. 이때, 테이블 로드부(351)는 통신부(330)를 통해 저장 서버(500)에 저장된 테이블을 수신하여 불러오거나, 저장부(310)에 저장된 테이블을 불러올 수 있다.The table loader 351 can load a table in which encrypted data and multiple key pieces are stored. At this time, the table load unit 351 may receive and load a table stored in the storage server 500 through the communication unit 330, or load a table stored in the storage unit 310.

데이터 로드부(353)는 테이블에서 암호화 데이터를 추출할 수 있다. 또한, 데이터 로드부(353)는, 주소 판단부(355)에서 다수의 키 조각 각각이 저장된 테이블 주소가 판단되면, 판단된 테이블 주소에 기초하여 테이블에서 다수의 키 조각 각각을 추출할 수 있다.The data load unit 353 may extract encrypted data from the table. Additionally, when the address determination unit 355 determines the table address where each of the plurality of key pieces is stored, the data load unit 353 may extract each of the plurality of key pieces from the table based on the determined table address.

주소 판단부(355)는 암호화 데이터 및 미리 설정된 주소 지정 알고리즘 중 적어도 하나를 이용하여 테이블 내에서 다수의 키 조각 각각이 저장된 서로 다른 테이블 주소를 판단할 수 있다.The address determination unit 355 may use at least one of encryption data and a preset addressing algorithm to determine different table addresses where each of the plurality of key pieces is stored in the table.

암호 키 생성부(357)는 추출된 다수의 키 조각을 나열하여 암호 키를 생성할 수 있다.The encryption key generator 357 may generate an encryption key by listing a plurality of extracted key pieces.

상기와 같은 과정을 거쳐, 제어부(350)는 테이블로부터 암호화 데이터 및 암호 키(또는, 다수의 키 조각)를 추출할 수 있다. 이에 따라, 제어부(350)는 통신부(330)를 통해, 복호화 모듈로 암호화 데이터 및 암호 키를 송신할 수 있다.Through the above process, the control unit 350 can extract the encryption data and encryption key (or multiple key pieces) from the table. Accordingly, the control unit 350 can transmit the encryption data and encryption key to the decryption module through the communication unit 330.

한편, 암호 키 저장 장치(100) 및 암호 키 추출 장치(300) 각각에는 미리 생성된 테이블이 저장될 수도 있다. 이때, 암호 키 저장 장치(100) 및 암호 키 추출 장치(300) 각각에 저장된 테이블은 서로 다른 테이블일 수 있다. 이러한 경우에, 암호 키 저장 장치(100) 및 암호 키 추출 장치(300) 각각은 미리 저장된 각각의 테이블을 이용하여 동일한 암호 키를 생성하도록 마련될 수도 있다.Meanwhile, a pre-generated table may be stored in each of the encryption key storage device 100 and the encryption key extraction device 300. At this time, the tables stored in each of the encryption key storage device 100 and the encryption key extraction device 300 may be different tables. In this case, each of the encryption key storage device 100 and the encryption key extraction device 300 may be arranged to generate the same encryption key using each pre-stored table.

예를 들어, 암호 키 저장 장치(100)는 테이블이 미리 저장되는 경우에, 암호화 모듈로부터의 암호 키 요청 신호에 따라 테이블로부터 암호 키를 생성하고, 암호 키를 암호화 모듈에 전달할 수 있다. 이에 따라, 암호 키 저장 장치(100)는 암호화 모듈로부터 암호화 데이터를 수신하고, 수신된 암호화 데이터를 서버 장치(500) 및 암호 키 추출 장치(300) 중 적어도 하나에 송신할 수 있다.For example, when the table is stored in advance, the encryption key storage device 100 may generate an encryption key from the table according to an encryption key request signal from the encryption module and transmit the encryption key to the encryption module. Accordingly, the encryption key storage device 100 may receive encryption data from the encryption module and transmit the received encryption data to at least one of the server device 500 and the encryption key extraction device 300.

또한, 암호 키 추출 장치(300)는 암호 키 저장 장치(100)에 저장된 테이블과는 다른 테이블이 미리 저장되고, 암호 키 저장 장치(100) 및 서버 장치(500) 중 적어도 하나로부터 암호화 데이터를 수신하면, 미리 저장된 테이블로부터 암호 키를 생성할 수 있다. 이에 따라, 암호 키 추출 장치(300)는 복호화 모듈에 암호화 데이터와 암호 키를 전달할 수 있다.In addition, the encryption key extraction device 300 pre-stores a table different from the table stored in the encryption key storage device 100 and receives encryption data from at least one of the encryption key storage device 100 and the server device 500. Then, you can generate an encryption key from a pre-stored table. Accordingly, the encryption key extraction device 300 can transmit the encryption data and encryption key to the decryption module.

상기와 같이, 암호 키 저장 시스템(1)은 암호 키가 저장되는 테이블을 생성하고, 생성된 테이블을 다른 장치에 전송하여 테이블로부터 암호 키가 추출되도록 구성되거나, 또는, 미리 저장된 테이블로부터 암호 키를 생성하여 데이터를 암호화하거나 복호화하는데 이용되도록 구성되어 암호화된 데이터만을 송수신할 수도 있다.As described above, the encryption key storage system 1 is configured to create a table in which the encryption key is stored, and transmit the created table to another device to extract the encryption key from the table, or extract the encryption key from the table stored in advance. It is configured to be used to generate and encrypt or decrypt data, so only encrypted data can be transmitted and received.

이상에서 살펴본 암호 키 저장 시스템(1)의 구성에 근거하여, 아래에서는 테이블에 암호화 데이터 및 암호 키를 저장하는 방법 및 암호화 데이터 및 암호 키가 저장된 테이블로부터 암호화 데이터 및 암호 키를 추출하는 방법에 대해 보다 구체적으로 설명하도록 한다.Based on the configuration of the encryption key storage system (1) discussed above, the following describes a method of storing encryption data and encryption keys in a table and a method of extracting encryption data and encryption keys from the table where the encryption data and encryption keys are stored. Let me explain in more detail.

도 2는 본 발명에 따른 암호 키 저장 방법을 나타내는 흐름도이고, 도 3은 본 발명에 따른 암호 키 추출 방법을 나타내는 흐름도이다. 또한, 도 4 내지 도 8은 본 발명에 따른 암호 키 저장 장치가 테이블을 구성하는 과정을 도시하고, 도 9는 본 발명에 따른 암호 키 추출 장치가 테이블로부터 암호 키를 생성하는 과정을 도시한다.Figure 2 is a flowchart showing a method for storing an encryption key according to the present invention, and Figure 3 is a flowchart showing a method for extracting an encryption key according to the present invention. In addition, Figures 4 to 8 show the process of constructing a table by the encryption key storage device according to the present invention, and Figure 9 shows the process of generating the encryption key from the table by the encryption key extraction device according to the present invention.

도 4를 참조하면, 암호 키 저장 장치(100)는 암호화 모듈로부터 암호화 데이터(10) 및 암호 키(30)가 입력되면, 암호화 데이터(10) 및 암호 키(30)를 저장할 테이블(50)을 생성할 수 있다.Referring to FIG. 4, when the encryption data 10 and the encryption key 30 are input from the encryption module, the encryption key storage device 100 creates a table 50 to store the encryption data 10 and the encryption key 30. can be created.

예를 들어, 암호 키 저장 장치(100)는, 암호화 모듈에서 암호화 알고리즘을 저장하기 위해 테이블을 생성하는 경우에는, 암호화 모듈에서 생성한 테이블과 동일한 크기의 테이블(50)을 생성할 수 있다.For example, when an encryption module creates a table to store an encryption algorithm, the encryption key storage device 100 may create a table 50 of the same size as the table created in the encryption module.

다른 예를 들면, 암호 키 저장 장치(100)는 암호화 데이터(10)의 크기 및 암호 키(30)의 크기 중 적어도 하나를 고려하여 테이블(50)을 생성할 수 있다. 구체적으로, 암호 키 저장 장치(100)는 암호화 데이터(10)의 크기 및 암호 키(30)의 크기 중 적어도 하나에 비례하도록 테이블(50)의 크기를 결정할 수 있다.For another example, the encryption key storage device 100 may create the table 50 by considering at least one of the size of the encryption data 10 and the size of the encryption key 30. Specifically, the encryption key storage device 100 may determine the size of the table 50 to be proportional to at least one of the size of the encryption data 10 and the size of the encryption key 30.

한편, 암호 키 저장 장치(100)는 미리 설정된 단위로 암호화 데이터(10) 및 암호 키(30) 중 적어도 하나를 분리할 수 있다.Meanwhile, the encryption key storage device 100 may separate at least one of the encryption data 10 and the encryption key 30 into preset units.

예를 들어, 암호 키 저장 장치(100)는 암호화 데이터(10) 및 암호 키(30) 중 적어도 하나를 1 Byte의 크기로 분리할 수 있다.For example, the encryption key storage device 100 may separate at least one of the encryption data 10 and the encryption key 30 into a size of 1 byte.

다른 예를 들면, 암호 키 저장 장치(100)는 암호화 데이터(10) 및 암호 키(30) 중 적어도 하나를 문자 단위로 분리할 수 있다. 구체적으로, 암호 키 저장 장치(100)는 암호 키(30)가 " swinnus"인 경우에, 다수의 키 조각으로서, "s", "w", "i", "n", "n", "u" 및 "s"를 생성할 수 있다. 또한, 암호 키 저장 장치(100)는 암호화 데이터(10)가 "23fdkefa23"인 경우에, "2", "3", "f", "d", "k", "e", "f", "a", "2" 및 "3"을 생성할 수 있다.For another example, the encryption key storage device 100 may separate at least one of the encryption data 10 and the encryption key 30 on a character basis. Specifically, the encryption key storage device 100 is configured so that the encryption key 30 is "swinnus", as multiple key pieces, "s", "w", "i", "n", "n", "u" and "s". In addition, when the encryption data 10 is "23fdkefa23", the encryption key storage device 100 is "2", "3", "f", "d", "k", ";e","f","a","2" and "3".

나아가, 암호 키 저장 장치(100)는 분리된 다수의 키 조각을 미리 설정된 순서로 재 배치할 수 있다. 즉, 암호 키 저장 장치(100)는 다수의 키 조각 각각에 대해 테이블 주소를 할당할 순서를 결정할 수 있다.Furthermore, the encryption key storage device 100 can rearrange a plurality of separated key pieces in a preset order. That is, the encryption key storage device 100 can determine the order in which table addresses will be assigned to each of the plurality of key pieces.

예를 들어, 암호 키 저장 장치(100)는 주소 지정 알고리즘에 따라, 미리 지정된 순서로 다수의 키 조각을 재 배치할 수 있다. 구체적으로, 암호 키 저장 장치(100)는 다수의 키 조각이 "s", "w", "i", "n", "n", "u" 및 "s"를 포함하는 경우에, "s", "u", "w", "n", "n", "i" 및 "s"의 순서로 다수의 키 조각을 재 배치할 수 있다.For example, the cryptographic key storage device 100 may rearrange a plurality of key pieces in a predetermined order according to an addressing algorithm. Specifically, the cryptographic key storage device 100 includes a plurality of key pieces such as "s", "w", "i", "n", "n", "u" and "s", "s", "u", "w", "n", "n", "i" You can rearrange multiple key pieces in the order of and "s"

다른 예를 들면, 암호 키 저장 장치(100)는 암호 키(30)의 역순으로 다수의 키 조각의 순서를 재 배치할 수 있다. 다시 말해서, 암호 키 저장 장치(100)는 다수의 키 조각이 "s", "w", "i", "n", "n", "u" 및 "s"를 포함하는 경우에, "s", "u", "n", "n", "i", "w" 및 "s"의 순서와 같이 역순으로 다수의 키 조각을 재 배치할 수 있다.For another example, the encryption key storage device 100 may rearrange the order of the plurality of key pieces in the reverse order of the encryption key 30. In other words, the cryptographic key storage device 100 includes a plurality of key pieces such as "s", "w", "i", "n", "n", "u" and "s", "s", "u", "n", "n", "i", "w" You can rearrange multiple key pieces in reverse order, such as the order of "s"

나아가, 암호 키 저장 장치(100)는 테이블(50)에 암호화 데이터(10)를 저장할 수 있다. 이때, 암호 키 저장 장치(100)는 다양한 방식으로 암호화 데이터(10)를 저장할 수 있다.Furthermore, the encryption key storage device 100 may store the encryption data 10 in the table 50. At this time, the encryption key storage device 100 may store the encryption data 10 in various ways.

예를 들어, 암호 키 저장 장치(100)는 테이블(50) 내에서 가장 앞에 위치한 하나의 테이블 주소에 암호화 데이터(10)를 저장할 수 있다.For example, the encryption key storage device 100 may store the encryption data 10 in one table address located at the front within the table 50.

다른 예를 들면, 도 5와 같이, 암호 키 저장 장치(100)는 암호화 데이터(10)를 문자 단위로 분리하여 테이블(50)에 저장할 수 있으며, 이러한 경우에, 암호 키 저장 장치(100)는 테이블(50) 내에서 가장 앞에 위치한 테이블 주소부터 순차적으로 암호화 데이터(10)를 저장할 수 있다.For another example, as shown in FIG. 5, the encryption key storage device 100 may separate the encryption data 10 into characters and store them in the table 50. In this case, the encryption key storage device 100 may store the encryption data 10 in the table 50. The encrypted data 10 can be stored sequentially starting from the table address located at the front within the table 50.

한편, 암호 키 저장 장치(100)는 암호화 데이터(10) 및 주소 지정 알고리즘 중 적어도 하나를 이용하여 테이블(50) 내에서 다수의 키 조각 각각이 저장될 서로 다른 테이블 주소를 지정할 수 있다.Meanwhile, the encryption key storage device 100 may use at least one of the encryption data 10 and an addressing algorithm to designate different table addresses in the table 50 where each of the plurality of key pieces will be stored.

구체적으로, 암호 키 저장 장치(100)는 주소 지정 알고리즘을 통해, 암호화 데이터(10)의 크기, 암호화 데이터(10)에 포함된 값, 다수의 키 조각들의 개수, 각각의 키 조각들의 인덱스(또는, 순서) 및 다수의 키 조각 각각의 값 등을 고려하여 테이블 주소를 지정할 수 있다. 또는, 암호 키 저장 장치(100)는 주소 지정 알고리즘을 통해, 각각의 키 조각들의 순서에 따라 미리 지정된 테이블 주소를 지정할 수도 있다.Specifically, the encryption key storage device 100 uses an addressing algorithm to determine the size of the encryption data 10, the value included in the encryption data 10, the number of key pieces, and the index (or , order) and the value of each key piece, etc., can be used to specify the table address. Alternatively, the encryption key storage device 100 may designate a pre-designated table address according to the order of each key piece through an addressing algorithm.

예를 들어, 도 6과 같이, 암호 키 저장 장치(100)는 테이블(50) 내에서 미리 지정된 테이블 주소(예를 들면, 33, 83, 45, 51, 62, 76 및 87)에 각각의 키 조각들을 지정할 수 있다.For example, as shown in FIG. 6, the encryption key storage device 100 stores each key at a pre-designated table address (e.g., 33, 83, 45, 51, 62, 76, and 87) in the table 50. Pieces can be specified.

다른 예를 들면, 암호 키 저장 장치(100)는 순서가 인접한 두 개의 키 조각들이 다수의 키 조각들의 개수만큼의 간격을 갖도록 테이블 주소를 지정할 수 있다. 이때, 첫 번째 키 조각은 암호화 데이터(10)의 말단 테이블 주소로부터 암호화 데이터(10)의 크기만큼 이격된 테이블 주소가 지정될 수 있다.For another example, the encryption key storage device 100 may specify a table address so that two key pieces that are adjacent in order have a gap equal to the number of key pieces. At this time, the first key piece may be assigned a table address spaced apart from the end table address of the encrypted data 10 by the size of the encrypted data 10.

또 다른 예를 들면, 암호 키 저장 장치(100)는 암호화 데이터(10)에 기초하여 다수의 키 조각 중 가장 앞선 키 조각에 대한 테이블 주소를 지정할 수 있다. 이에 따라, 암호 키 저장 장치(100)는 다수의 키 조각 중 어느 하나인, 제 1 키 조각에 할당된 제 1 테이블 주소를 확인하고, 제 1 키 조각에 인접한 다음 키 조각인 제 2 키 조각의 인덱스를 확인하며, 암호화 데이터(10) 및 제 2 키 조각의 인덱스 중 적어도 하나를 고려하여 제 2 테이블 주소를 결정하고, 제 2 키 조각에 제 2 테이블 주소를 지정하는 과정을 반복하여 다수의 키 조각들에 대한 테이블 주소를 지정할 수 있다.As another example, the encryption key storage device 100 may specify a table address for the most advanced key piece among the plurality of key pieces based on the encryption data 10. Accordingly, the cryptographic key storage device 100 checks the first table address assigned to the first key fragment, which is one of the plurality of key fragments, and the second key fragment, which is the next key fragment adjacent to the first key fragment. The process of checking the index, determining the second table address by considering at least one of the encryption data 10 and the index of the second key fragment, and assigning the second table address to the second key fragment is repeated to create a plurality of keys. You can specify table addresses for pieces.

구체적으로, 도 7을 참조하면, 암호 키 저장 장치(100)는 다수의 키 조각 중 가장 앞선 키 조각인 "s"에 대한 테이블 주소로서, 암호화 데이터(10)의 크기만큼 이격된 테이블 주소인 20을 지정할 수 있다. 이에 따라, 암호 키 저장 장치(100)는 "w"에 대한 테이블 주소로서, "w"의 인덱스인 1만큼 이격된 테이블 주소인 22를 지정할 수 있다. 이후, 상기와 같은 과정을 반복하여 다수의 키 조각들에 대해 각각 20, 22, 25, 29, 34, 40 및 47의 테이블 주소를 지정할 수 있다.Specifically, referring to FIG. 7, the encryption key storage device 100 is a table address for "s", which is the most advanced key fragment among a plurality of key fragments, and is a table address spaced apart by the size of the encryption data 10. You can specify 20. Accordingly, the encryption key storage device 100 can designate 22, a table address spaced apart by 1, which is the index of "w", as the table address for "w". Thereafter, the above process can be repeated to specify table addresses of 20, 22, 25, 29, 34, 40, and 47 for multiple key pieces, respectively.

한편, 암호 키 저장 장치(100)는 다수의 키 조각 각각에 지정될 서로 다른 테이블 주소 간의 연관성을 나타내도록 암호화 데이터(10)의 일측에 연관성 부호를 추가할 수 있다. 이때, 연관성 부호는 주소 지정 알고리즘이 어떤 방식으로 동작하여 각각의 키 조각들이 테이블(50)에 저장되었는지를 나타내도록 설정될 수 있다.Meanwhile, the encryption key storage device 100 may add a correlation code to one side of the encryption data 10 to indicate the correlation between different table addresses to be assigned to each of the plurality of key pieces. At this time, the correlation code can be set to indicate how the addressing algorithm operates and each key piece is stored in the table 50.

구체적으로, 연관성 부호는 다수의 값을 포함할 수 있다. 이러한 경우에, 각각의 연관성 부호는 서로 다른 방식으로 각각의 키 조각들에 대한 테이블 주소를 지정할 수 있다. 따라서, 암호 키 저장 장치(100)는 서로 다른 연관성 부호가 설정되면 동일한 키 조각이더라도 서로 다른 테이블 주소가 지정될 수 있다.Specifically, the association symbol may include multiple values. In this case, each association code can specify the table address for each key piece in a different way. Accordingly, if different association codes are set in the encryption key storage device 100, different table addresses may be assigned even to the same key piece.

도 8을 참조하여 예를 들면, 암호 키 저장 장치(100)는 암호화 데이터(10)의 말단에 연관성 부호로서 "1"이 저장되고, 이에 따라, 암호 키 저장 장치(100)는 각각의 키 조각들에 미리 지정된 테이블 주소가 지정될 수 있다.For example, with reference to FIG. 8, the encryption key storage device 100 stores "1" as an association code at the end of the encryption data 10, and accordingly, the encryption key storage device 100 stores each key. Pieces can be assigned pre-assigned table addresses.

다른 예를 들면, 암호 키 저장 장치(100)는 암호화 데이터(10)의 말단에 연관성 부호로서 "2"가 저장될 수 있고, 이러한 경우에, 암호 키 저장 장치(100)는 첫 번째 키 조각에 암호화 데이터(10)의 말단 테이블 주소로부터 암호화 데이터(10)의 크기만큼 이격된 테이블 주소가 지정되고, 이후, 순서가 인접한 두 개의 키 조각들에 다수의 키 조각들의 개수만큼의 간격을 갖도록 테이블 주소가 지정될 수 있다.For another example, the encryption key storage device 100 may store "2" as an association code at the end of the encryption data 10, and in this case, the encryption key storage device 100 may store the first key piece. A table address spaced apart from the end table address of the encrypted data 10 by the size of the encrypted data 10 is designated, and thereafter, the table is set so that two key pieces adjacent in order have an interval equal to the number of key pieces. Addresses can be specified.

상기와 같이, 암호 키 저장 장치(100)는 테이블(50)에 다양한 방식으로 암호화 데이터(10) 및 암호 키(30)를 저장할 수 있다.As described above, the encryption key storage device 100 can store the encryption data 10 and the encryption key 30 in the table 50 in various ways.

나아가, 암호 키 저장 장치(100)는 각각의 키 조각들에 지정된 테이블 주소에 각각의 키 조각들을 저장할 수 있다.Furthermore, the encryption key storage device 100 may store each key fragment at a table address designated for each key fragment.

상기와 같은 구성을 통해, 암호 키 저장 장치(100)는 테이블(50)에 암호화 데이터(10) 및 암호 키(30)(또는, 다수의 키 조각)를 저장하고, 암호화 데이터(10) 및 암호 키(30)가 저장된 테이블(50)을 저장 서버(500) 및 암호 키 추출 장치(300) 중 어느 하나로 송신할 수 있다.Through the above configuration, the encryption key storage device 100 stores the encryption data 10 and the encryption key 30 (or multiple key pieces) in the table 50, and stores the encryption data 10 and the encryption key 30 in the table 50. The table 50 in which the key 30 is stored can be transmitted to either the storage server 500 or the encryption key extraction device 300.

한편, 암호 키 추출 장치(300)는 저장 서버(500) 및 암호 키 저장 장치(100) 중 어느 하나로부터 테이블(50)이 전달되면, 테이블(50)에서 암호화 데이터(10)를 불러올 수 있다. 이후, 암호 키 추출 장치(300)는 암호화 데이터(10) 및 미리 설정된 주소 지정 알고리즘 중 적어도 하나를 이용하여 테이블(50) 내에서 다수의 키 조각 각각이 저장된 서로 다른 테이블 주소를 판단할 수 있다.Meanwhile, when the table 50 is delivered from either the storage server 500 or the encryption key storage device 100, the encryption key extraction device 300 can retrieve the encryption data 10 from the table 50. Thereafter, the encryption key extraction device 300 may use at least one of the encryption data 10 and a preset addressing algorithm to determine different table addresses in the table 50 where each of the plurality of key pieces is stored.

여기에서, 암호 키 추출 장치(300)는 앞서 설명한 암호 키 저장 장치(100)의 주소 지정 알고리즘과 동일한 규칙으로 설정된 주소 지정 알고리즘을 이용하여, 테이블(50)에 저장된 암호 키(30)(또는, 키 조각들)에 대한 테이블 주소를 판단할 수 있다. 따라서, 반복되는 설명은 생략하도록 한다.Here, the encryption key extraction device 300 uses an addressing algorithm set to the same rules as the addressing algorithm of the encryption key storage device 100 described above to extract the encryption key 30 (or, You can determine the table address for key pieces). Therefore, repeated explanations will be omitted.

이를 통해, 암호 키 추출 장치(300)는 판단된 테이블 주소에 기초하여 테이블(50)에서 다수의 키 조각 각각을 추출하고, 추출된 다수의 키 조각을 나열하여 암호 키(30)를 생성할 수 있다.Through this, the encryption key extraction device 300 can extract each of a plurality of key fragments from the table 50 based on the determined table address and generate the encryption key 30 by listing the extracted plurality of key fragments. there is.

구체적으로, 암호 키 추출 장치(300)는 주소 지정 알고리즘에 기초하여 다수의 키 조각들의 순서를 테이블(50)에 저장되기 전 상태로 복원할 수 있다.Specifically, the encryption key extraction device 300 can restore the order of a plurality of key pieces to the state before they were stored in the table 50 based on an addressing algorithm.

상기와 같은 구성을 통해, 암호 키 추출 장치(300)는 테이블(50)로부터 암호화 데이터(10) 및 암호 키(30)(또는, 다수의 키 조각)를 추출할 수 있다. 이에 따라, 암호 키 추출 장치(300)는 통신부(330)를 통해, 복호화 모듈로 암호화 데이터(10) 및 암호 키(30)를 송신할 수 있다.Through the above configuration, the encryption key extraction device 300 can extract the encryption data 10 and the encryption key 30 (or a plurality of key pieces) from the table 50. Accordingly, the encryption key extraction device 300 can transmit the encryption data 10 and the encryption key 30 to the decryption module through the communication unit 330.

나아가, 위에서 살펴본 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드 또는 명령어로서 구현하는 것이 가능하다. 즉, 본 발명에 따른 다양한 제어방법은 통합하여 또는 개별적으로 프로그램의 형태로 제공될 수 있다.Furthermore, the present invention discussed above can be implemented as computer-readable codes or instructions on a program-recorded medium. That is, various control methods according to the present invention may be provided in the form of programs, either integrated or individually.

한편, 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.Meanwhile, computer-readable media includes all types of recording devices that store data that can be read by a computer system. Examples of computer-readable media include HDD (Hard Disk Drive), SSD (Solid State Disk), SDD (Silicon Disk Drive), ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc. There is.

나아가, 컴퓨터가 읽을 수 있는 매체는, 저장소를 포함하며 전자기기가 통신을 통하여 접근할 수 있는 서버 또는 클라우드 저장소일 수 있다. 이 경우, 컴퓨터는 유선 또는 무선 통신을 통하여, 서버 또는 클라우드 저장소로부터 본 발명에 따른 프로그램을 다운로드 받을 수 있다.Furthermore, the computer-readable medium may be a server or cloud storage that includes storage and can be accessed by electronic devices through communication. In this case, the computer can download the program according to the present invention from a server or cloud storage through wired or wireless communication.

나아가, 본 발명에서는 위에서 설명한 컴퓨터는 프로세서, 즉 CPU(Central Processing Unit, 중앙처리장치)가 탑재된 전자기기로서, 그 종류에 대하여 특별한 한정을 두지 않는다.Furthermore, in the present invention, the computer described above is an electronic device equipped with a processor, that is, a CPU (Central Processing Unit), and there is no particular limitation on its type.

한편, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.Meanwhile, the above detailed description should not be construed as restrictive in all respects and should be considered illustrative. The scope of the present invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the present invention are included in the scope of the present invention.

1: 암호 키 저장 시스템
10: 암호화 데이터
30: 암호 키
50: 테이블
100: 암호 키 저장 장치
300: 암호 키 추출 장치
500: 저장 서버
1: Cryptographic key storage system
10: Encrypted data
30: encryption key
50: table
100: Cryptographic key storage device
300: Cryptographic key extraction device
500: storage server

Claims (10)

암호화 데이터 및 암호 키가 입력되면, 상기 암호화 데이터 및 상기 암호 키를 저장할 테이블을 생성하는 단계;
미리 설정된 단위로 상기 암호 키를 분리하여 다수의 키 조각을 생성하는 단계;
상기 암호화 데이터 및 미리 설정된 주소 지정 알고리즘 중 적어도 하나를 이용하여 상기 테이블 내에서 상기 다수의 키 조각 각각이 저장될 서로 다른 테이블 주소를 지정하는 단계; 및
상기 테이블에 상기 암호화 데이터를 저장하고, 상기 설정된 테이블 주소에 기초하여 상기 테이블에 상기 다수의 키 조각 각각을 저장하는 단계;를 포함하는, 암호 키 저장 방법.
When encryption data and encryption key are input, creating a table to store the encryption data and encryption key;
generating a plurality of key pieces by dividing the encryption key into preset units;
Specifying different table addresses in the table where each of the plurality of key pieces will be stored using at least one of the encryption data and a preset addressing algorithm; and
Storing the encryption data in the table and storing each of the plurality of key pieces in the table based on the set table address.
제 1 항에 있어서, 상기 테이블 주소를 지정하는 단계는,
상기 암호화 데이터에 기초하여 상기 다수의 키 조각 중 가장 앞선 키 조각에 대한 테이블 주소를 지정하는, 암호 키 저장 방법.
The method of claim 1, wherein specifying the table address comprises:
An encryption key storage method that specifies a table address for the most advanced key piece among the plurality of key pieces based on the encryption data.
제 2 항에 있어서, 상기 테이블 주소를 지정하는 단계는,
상기 다수의 키 조각 중 어느 하나인, 제 1 키 조각에 할당된 제 1 테이블 주소를 확인하는 단계;
상기 제 1 키 조각에 인접한 다음 키 조각인 제 2 키 조각의 인덱스를 확인하는 단계;
상기 암호화 데이터 및 상기 제 2 키 조각의 인덱스 중 적어도 하나를 고려하여 제 2 테이블 주소를 결정하는 단계; 및
상기 제 2 키 조각에 상기 제 2 테이블 주소를 지정하는 단계;를 포함하는, 암호 키 저장 방법.
The method of claim 2, wherein specifying the table address includes:
Confirming a first table address assigned to a first key fragment, which is one of the plurality of key fragments;
checking the index of a second key piece, which is the next key piece adjacent to the first key piece;
determining a second table address by considering at least one of the encrypted data and an index of the second key piece; and
Specifying the second table address to the second key fragment.
제 1 항에 있어서, 상기 테이블 주소를 지정하는 단계는,
상기 다수의 키 조각 각각에 지정될 서로 다른 테이블 주소 간의 연관성을 나타내도록 상기 암호화 데이터의 일측에 연관성 부호를 추가하는, 암호 키 저장 방법.
The method of claim 1, wherein specifying the table address comprises:
An encryption key storage method of adding an association code to one side of the encryption data to indicate a relationship between different table addresses to be assigned to each of the plurality of key pieces.
제 1 항에 있어서, 상기 테이블 주소를 지정하는 단계는,
상기 다수의 키 조각을 미리 설정된 순서로 재 배치하는 단계;를 포함하는, 암호 키 저장 방법.
The method of claim 1, wherein specifying the table address comprises:
A method of storing an encryption key, comprising: rearranging the plurality of key pieces in a preset order.
암호화 데이터 및 암호 키가 입력되면, 상기 암호화 데이터 및 상기 암호 키를 저장할 테이블을 생성하는 테이블 생성부;
미리 설정된 단위로 상기 암호 키를 분리하여 다수의 키 조각을 생성하는 암호 키 분리부;
상기 암호화 데이터 및 미리 설정된 주소 지정 알고리즘 중 적어도 하나를 이용하여 상기 테이블 내에서 상기 다수의 키 조각 각각이 저장될 서로 다른 테이블 주소를 지정하는 주소 지정부; 및
상기 테이블에 상기 암호화 데이터를 저장하고, 상기 설정된 테이블 주소에 기초하여 상기 테이블에 상기 다수의 키 조각 각각을 저장하는 데이터 처리부;를 포함하는, 암호 키 저장 장치.
When encryption data and encryption key are input, a table creation unit that creates a table to store the encryption data and encryption key;
an encryption key separation unit that separates the encryption key into preset units to generate a plurality of key pieces;
an address designation unit that designates different table addresses in the table where each of the plurality of key pieces will be stored using at least one of the encryption data and a preset addressing algorithm; and
An encryption key storage device comprising: a data processing unit that stores the encryption data in the table and stores each of the plurality of key pieces in the table based on the set table address.
전자기기에서 하나 이상의 프로세스에 의하여 실행되며, 컴퓨터로 판독될 수 있는 기록매체에 저장된 프로그램으로서,
상기 프로그램은,
암호화 데이터 및 암호 키가 입력되면, 상기 암호화 데이터 및 상기 암호 키를 저장할 테이블을 생성하는 단계;
미리 설정된 단위로 상기 암호 키를 분리하여 다수의 키 조각을 생성하는 단계;
상기 암호화 데이터 및 미리 설정된 주소 지정 알고리즘 중 적어도 하나를 이용하여 상기 테이블 내에서 상기 다수의 키 조각 각각이 저장될 서로 다른 테이블 주소를 지정하는 단계; 및
상기 테이블에 상기 암호화 데이터를 저장하고, 상기 설정된 테이블 주소에 기초하여 상기 테이블에 상기 다수의 키 조각 각각을 저장하는 단계;를 수행하도록 하는 명령어들을 포함하는 것을 특징으로 하는 컴퓨터로 판독될 수 있는 기록매체에 저장된 프로그램.
A program that is executed by one or more processes in an electronic device and stored on a computer-readable recording medium,
The above program is,
When encryption data and encryption key are input, creating a table to store the encryption data and encryption key;
generating a plurality of key pieces by dividing the encryption key into preset units;
Specifying different table addresses in the table where each of the plurality of key pieces will be stored using at least one of the encryption data and a preset addressing algorithm; and
Storing the encrypted data in the table and storing each of the plurality of key pieces in the table based on the set table address; A computer-readable record comprising instructions for performing the following steps: Program stored on media.
암호화 데이터 및 다수의 키 조각이 저장된 테이블을 불러오는 단계;
상기 테이블에서 암호화 데이터를 불러오는 단계;
상기 암호화 데이터 및 미리 설정된 주소 지정 알고리즘 중 적어도 하나를 이용하여 상기 테이블 내에서 상기 다수의 키 조각 각각이 저장된 서로 다른 테이블 주소를 판단하는 단계;
상기 판단된 테이블 주소에 기초하여 상기 테이블에서 상기 다수의 키 조각 각각을 추출하는 단계; 및
상기 추출된 다수의 키 조각을 나열하여 암호 키를 생성하는 단계;를 포함하는, 암호 키 추출 방법.
Loading a table storing encryption data and multiple key pieces;
Loading encrypted data from the table;
determining different table addresses in the table where each of the plurality of key pieces is stored using at least one of the encryption data and a preset addressing algorithm;
extracting each of the plurality of key pieces from the table based on the determined table address; and
A method of extracting an encryption key comprising: generating an encryption key by listing the extracted plurality of key pieces.
암호화 데이터 및 다수의 키 조각이 저장된 테이블을 불러오는 테이블 로드부;
상기 암호화 데이터 및 미리 설정된 주소 지정 알고리즘 중 적어도 하나를 이용하여 상기 테이블 내에서 상기 다수의 키 조각 각각이 저장된 서로 다른 테이블 주소를 판단하는 주소 판단부;
상기 테이블에서 암호화 데이터를 불러오고, 상기 판단된 테이블 주소에 기초하여 상기 테이블에서 상기 다수의 키 조각 각각을 추출하는 데이터 로드부; 및
상기 추출된 다수의 키 조각을 나열하여 암호 키를 생성하는 암호 키 생성부;를 포함하는, 암호키 추출 장치.
A table load unit that loads a table storing encrypted data and multiple key pieces;
an address determination unit that determines different table addresses where each of the plurality of key pieces is stored in the table using at least one of the encryption data and a preset addressing algorithm;
a data load unit that loads encrypted data from the table and extracts each of the plurality of key pieces from the table based on the determined table address; and
An encryption key generator that generates an encryption key by listing the extracted plurality of key pieces.
전자기기에서 하나 이상의 프로세스에 의하여 실행되며, 컴퓨터로 판독될 수 있는 기록매체에 저장된 프로그램으로서,
상기 프로그램은,
암호화 데이터 및 다수의 키 조각이 저장된 테이블을 불러오는 단계;
상기 테이블에서 암호화 데이터를 불러오는 단계;
상기 암호화 데이터 및 미리 설정된 주소 지정 알고리즘 중 적어도 하나를 이용하여 상기 테이블 내에서 상기 다수의 키 조각 각각이 저장된 서로 다른 테이블 주소를 판단하는 단계;
상기 판단된 테이블 주소에 기초하여 상기 테이블에서 상기 다수의 키 조각 각각을 추출하는 단계; 및
상기 추출된 다수의 키 조각을 나열하여 암호 키를 생성하는 단계;를 수행하도록 하는 명령어들을 포함하는 것을 특징으로 하는 컴퓨터로 판독될 수 있는 기록매체에 저장된 프로그램.
A program that is executed by one or more processes in an electronic device and stored on a computer-readable recording medium,
The above program is,
Loading a table storing encryption data and multiple key pieces;
Loading encrypted data from the table;
determining different table addresses in the table where each of the plurality of key pieces is stored using at least one of the encryption data and a preset addressing algorithm;
extracting each of the plurality of key pieces from the table based on the determined table address; and
Generating an encryption key by listing the plurality of extracted key pieces. A program stored in a computer-readable recording medium, comprising instructions to perform the following.
KR1020220148041A 2022-11-08 2022-11-08 Method of storing encryption key using table and method of extracting encryption key KR20240066806A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220148041A KR20240066806A (en) 2022-11-08 2022-11-08 Method of storing encryption key using table and method of extracting encryption key

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220148041A KR20240066806A (en) 2022-11-08 2022-11-08 Method of storing encryption key using table and method of extracting encryption key

Publications (1)

Publication Number Publication Date
KR20240066806A true KR20240066806A (en) 2024-05-16

Family

ID=91276695

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220148041A KR20240066806A (en) 2022-11-08 2022-11-08 Method of storing encryption key using table and method of extracting encryption key

Country Status (1)

Country Link
KR (1) KR20240066806A (en)

Similar Documents

Publication Publication Date Title
CN105187364B (en) Protect whitepack implementation not under fire
US8077863B2 (en) Secret sharing apparatus, method, and program
EP3174238B1 (en) Protecting white-box feistel network implementation against fault attack
US9602273B2 (en) Implementing key scheduling for white-box DES implementation
US20160350520A1 (en) Diversifying Control Flow of White-Box Implementation
US20150312039A1 (en) Behavioral fingerprint in a white-box implementation
US10700849B2 (en) Balanced encoding of intermediate values within a white-box implementation
CN114327261B (en) Data file storage method and data security agent
US20240370562A1 (en) Use of data entanglement for improving the security of search indexes while using native enterprise search engines and for protecting computer systems against malware including ransomware
EP3068067B1 (en) Implementing padding in a white-box implementation
EP2960891B1 (en) Method for introducing dependence of white-box implementationon a set of strings
US11121867B2 (en) Encryption methods based on plaintext length
US10922292B2 (en) Metamorphic storage of passcodes
US10853502B1 (en) Systems and methods for reducing computational difficulty of cryptographic operations
KR101045222B1 (en) Method of encrypting and synthesizing personal information into order information and contents information, apparatus, server and recording media
EP2940917B1 (en) Behavioral fingerprint in a white-box implementation
KR20240066806A (en) Method of storing encryption key using table and method of extracting encryption key
KR20170103321A (en) Order preserving encryption method and apparatus with enhanced security
EP3413509A1 (en) Cmac computation using white-box implementations with external encodings
WO2016102202A1 (en) Cryptographic system and method
US9058507B2 (en) Signal processor with an encrypting or decrypting device in a memory system
JP4338185B2 (en) How to encrypt / decrypt files
EP2940920B1 (en) Security patch without changing the key
US11669506B2 (en) Searchable encryption
US11971998B2 (en) Data comparison device, data comparison system, and data comparison method