KR101282653B1 - Data substitution encryption device and method - Google Patents
Data substitution encryption device and method Download PDFInfo
- Publication number
- KR101282653B1 KR101282653B1 KR1020130022993A KR20130022993A KR101282653B1 KR 101282653 B1 KR101282653 B1 KR 101282653B1 KR 1020130022993 A KR1020130022993 A KR 1020130022993A KR 20130022993 A KR20130022993 A KR 20130022993A KR 101282653 B1 KR101282653 B1 KR 101282653B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- substitution
- characters
- plain text
- unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
Description
본 발명의 실시예들은 개인 정보와 같이 보안이 필요한 평문 데이터에 대한 암호화와 연관된 기술들에 대한 것이다.Embodiments of the present invention are directed to techniques associated with encryption of plain text data that requires security, such as personal information.
최근, 인터넷이 널리 보급되면서, 전자상거래 사이트 등을 통해 쇼핑을 하거나, 인터넷 뱅킹과 같은 웹 기반의 금융 거래를 이용하는 사용자들이 증가하고 있다.Recently, with the widespread use of the Internet, more and more users are shopping through e-commerce sites or using web-based financial transactions such as Internet banking.
보통, 사용자들이 이러한 웹 기반의 서비스를 이용하기 위해서는 보안 상의 문제로 웹 사이트에 회원으로 등록할 필요가 있다.In general, users need to register as a member of a web site for security reasons in order to use such a web-based service.
또한, 최근에는 대부분의 웹 사이트에서 사용자들을 회원으로 가입하도록 유도하여 가입된 회원만이 웹 사이트에서 제공하는 정보나 기능을 모두 이용할 수 있도록 제한을 두는 경우가 많다.In addition, in recent years, most web sites encourage users to join as members, so that only the subscribed members can use all the information or functions provided by the web site.
보통, 일반적인 웹 사이트에서는 회원 가입 시에 사용자들의 주민등록번호와 같은 개인 정보를 수집하는 경우가 많다. 이렇게 수집된 개인 정보는 각 사이트 운영사의 개인 정보 데이터베이스에 저장되어 관리되곤 한다.In general, a general web site collects personal information such as social security numbers of users at the time of membership registration. The collected personal information is often stored and managed in the personal information database of each site operator.
이로 인해, 최근에는 키로깅(Keylogging), 스니핑(Sniffing), 피싱(Phishing) 등과 같은 점차 고도화되어 가고 있는 해킹 기술로 인해 개인 정보가 유출되어 경제적, 사회적 피해가 발생하는 경우가 증가하고 있다.As a result, recently, hacking technologies such as keylogging, sniffing, phishing, and the like are increasingly being used to increase personal information and cause economic and social damage.
이에 따라, 각 사이트의 운영사는 개인 정보 데이터베이스에 저장되어 있는 회원들의 개인 정보의 유출을 방지하기 위해, 다양한 암호화 기술을 이용하여 회원들의 개인 정보를 암호화하여 개인 정보 데이터베이스에 저장해 두는 경우가 많다.Accordingly, in order to prevent leakage of the personal information of members stored in the personal information database, the operator of each site often encrypts the personal information of the members by using various encryption techniques and stores the personal information in the personal information database.
보통, 데이터베이스 상에 데이터를 암호화하여 저장하기 위해서는 상기 데이터를 상기 데이터베이스의 저장 규격에 매칭되도록 인코딩(encoding)을 수행해야 할 필요가 있다.In general, in order to encrypt and store data on a database, it is necessary to encode the data so as to match the storage standard of the database.
예컨대, 상기 데이터베이스 상에 base64 인코딩이 수행된 데이터만이 저장될 수 있는 경우에는 base64 인코딩이 24비트(bit)의 크기를 갖는 입력 데이터를 지원한다는 점에서, 상기 데이터베이스에 저장되어야 할 데이터는 24비트의 크기를 갖는 데이터로 변경되어야 한다.For example, if only data that has been subjected to base64 encoding on the database can be stored, the data to be stored in the database is 24 bits in that base64 encoding supports input data having a size of 24 bits. It should be changed to data having a size of.
따라서, 개인 정보 유출에 따른 피해를 방지하면서, 다양한 보안 데이터가 데이터베이스 상에 효율적으로 저장될 수 있도록 하는 데이터 암호화 기법에 대한 연구가 필요하다.Therefore, there is a need for a study on a data encryption technique that can efficiently store various security data on a database while preventing damage caused by personal information leakage.
본 발명의 실시예들은 데이터베이스 등에 저장되어야 할 개인 정보 등과 같은 보안이 필요한 평문 데이터를 암호화할 때, 상기 평문 데이터를 소정의 치환 테이블을 이용하여 데이터의 크기를 감소시킨 치환 데이터로 변환한 후 상기 변환된 치환 데이터에 대해 암호화 및 인코딩(encoding)을 수행함으로써, 데이터 암호화에 있어 보안성을 더욱 강화할 수 있도록 한다.Embodiments of the present invention, when encrypting the plain text data that requires security, such as personal information to be stored in a database, etc., converts the plain text data into the replacement data reduced in the size of the data using a predetermined substitution table and then converting By performing encryption and encoding on the replaced data, it is possible to further enhance security in data encryption.
본 발명의 일실시예에 따른 데이터 치환 암호화 장치는 복수의 문자들과, 상기 복수의 문자들 각각을 선정된(predetermined) 개수의 비트열로 표현한 복수의 선정된 데이터 코드들이 서로 대응되도록 기록된 치환 테이블을 저장하여 유지하는 치환 테이블 관리부, 상기 복수의 문자들 중 적어도 하나의 문자로 구성된 평문 데이터가 입력되면, 상기 치환 테이블을 참조하여 상기 적어도 하나의 문자 각각에 대응되는 적어도 하나의 데이터 코드를 선택하는 선택부, 상기 적어도 하나의 문자 각각에 대한 데이터 코드를 상기 선택된 적어도 하나의 데이터 코드로 치환하여 상기 평문 데이터를 상기 선택된 적어도 하나의 데이터 코드로 구성된 치환 데이터로 변환하는 데이터 변환부 및 상기 치환 데이터를 선정된 암호화 키를 이용하여 암호화하고, 상기 암호화된 치환 데이터에 대해 데이터 인코딩(encoding)을 수행하는 인코딩부를 포함한다.In a data substitution encryption apparatus according to an embodiment of the present invention, a plurality of characters and a plurality of predetermined data codes representing each of the plurality of characters in a predetermined number of bit strings are recorded so as to correspond to each other. Substitution table management unit for storing and maintaining a table, when plain text data composed of at least one of the plurality of characters is input, referring to the substitution table, selecting at least one data code corresponding to each of the at least one character A selection unit to convert the data code for each of the at least one character into the selected at least one data code to convert the plain text data into replacement data comprising the selected at least one data code and the replacement data Encrypt using a selected encryption key and encrypt It includes a portion encoded for performing data encoding (encoding) for the replacement data.
또한, 본 발명의 일실시예에 따른 데이터 치환 암호화 방법은 복수의 문자들과, 상기 복수의 문자들 각각을 선정된 개수의 비트열로 표현한 복수의 선정된 데이터 코드들이 서로 대응되도록 기록된 치환 테이블을 유지하는 단계, 상기 복수의 문자들 중 적어도 하나의 문자로 구성된 평문 데이터가 입력되면, 상기 치환 테이블을 참조하여 상기 적어도 하나의 문자 각각에 대응되는 적어도 하나의 데이터 코드를 선택하는 단계, 상기 적어도 하나의 문자 각각에 대한 데이터 코드를 상기 선택된 적어도 하나의 데이터 코드로 치환하여 상기 평문 데이터를 상기 선택된 적어도 하나의 데이터 코드로 구성된 치환 데이터로 변환하는 단계 및 상기 치환 데이터를 선정된 암호화 키를 이용하여 암호화하고, 상기 암호화된 치환 데이터에 대해 데이터 인코딩을 수행하는 단계를 포함한다.In addition, the data substitution encryption method according to an embodiment of the present invention is a substitution table in which a plurality of characters and a plurality of predetermined data codes representing each of the plurality of characters represented by a predetermined number of bit strings are recorded so as to correspond to each other. Maintaining at least one of the plurality of characters, and selecting at least one data code corresponding to each of the at least one character by referring to the substitution table, when plain text data including at least one of the plurality of characters is input. Converting the data code for each character into the selected at least one data code, converting the plain text data into substitution data composed of the selected at least one data code, and converting the substitution data using a selected encryption key. Encrypt the data encoding for the encrypted replacement data. And a step of performing.
본 발명의 실시예들은 데이터베이스 등에 저장되어야 할 개인 정보 등과 같은 보안이 필요한 평문 데이터를 암호화할 때, 상기 평문 데이터를 소정의 치환 테이블을 이용하여 데이터의 크기를 감소시킨 치환 데이터로 변환한 후 상기 변환된 치환 데이터에 대해 암호화 및 인코딩(encoding)을 수행함으로써, 데이터 암호화에 있어 보안성을 더욱 강화할 수 있다.Embodiments of the present invention, when encrypting the plain text data that requires security, such as personal information to be stored in a database, etc., converts the plain text data into the replacement data reduced in the size of the data using a predetermined substitution table and then converting By performing encryption and encoding on the substituted data, security can be further enhanced in data encryption.
도 1은 본 발명의 일실시예에 따른 데이터 치환 암호화 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 데이터 치환 암호화 장치의 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 데이터 치환 암호화 장치의 동작을 설명하기 위한 또 다른 도면이다.
도 4는 본 발명의 일실시예에 따른 데이터 치환 암호화 방법을 도시한 순서도이다.1 is a diagram showing the structure of a data substitution encryption apparatus according to an embodiment of the present invention.
2 is a view for explaining the operation of the data substitution encryption apparatus according to an embodiment of the present invention.
3 is another diagram for describing an operation of a data substitution encryption apparatus according to an embodiment of the present invention.
4 is a flowchart illustrating a data substitution encryption method according to an embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일실시예에 따른 데이터 치환 암호화 장치의 구조를 도시한 도면이다.1 is a diagram showing the structure of a data substitution encryption apparatus according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일실시예에 따른 데이터 치환 암호화 장치(110)는 치환 테이블 관리부(111), 선택부(112), 데이터 변환부(113) 및 인코딩부(114)를 포함한다.Referring to FIG. 1, the data
치환 테이블 관리부(111)는 복수의 문자들과, 상기 복수의 문자들 각각을 선정된(predetermined) 개수의 비트열로 표현한 복수의 선정된 데이터 코드들이 서로 대응되도록 기록된 치환 테이블을 저장하여 유지한다.The substitution
이때, 상기 선정된 개수는 상기 적어도 하나의 문자 각각에 대한 데이터 코드에 포함된 비트열의 개수보다 작은 값이되, 상기 복수의 문자들의 개수에 기초하여 상기 복수의 문자들 전부를 상기 복수의 선정된 데이터 코드들로 표현 가능하도록 선정된 값을 의미한다.In this case, the selected number is a value smaller than the number of bit strings included in the data code for each of the at least one character, and the plurality of the plurality of selected characters are selected based on the number of the plurality of characters. A value selected to be represented by data codes.
관련하여, 상기 치환 테이블에 대해 예를 들어 설명하면, 다음과 같다.In relation to this, the substitution table is described by way of example as follows.
보통, 영문이나 숫자 등과 같은 문자는 8비트(bit)의 크기를 갖는 데이터이기 때문에 상기 문자에 대한 데이터 코드에 포함된 비트열의 개수는 8개가 된다. In general, since characters such as alphabets and numbers are 8 bits of data, the number of bit strings included in the data code for the characters is eight.
하지만, 영문자와 숫자만 고려하였을 때, 영문자와 숫자의 개수는 총 62개에 불과하기 때문에 영문자와 숫자만을 데이터로 사용하는 경우에는 6개의 비트열만을 갖는 데이터 코드를 이용하더라도 영문자와 숫자를 모두 표현할 수 있다.However, considering only English letters and numbers, only 62 letters and numbers are used. Therefore, if only English letters and numbers are used as data, only English letters and numbers can be represented even if a data code having only 6 bit strings is used. Can be.
즉, 마이크로프로세서 기반의 컴퓨팅 기기에서 오로지 영문자와 숫자만을 데이터로 사용하는 경우에는 문자를 8비트의 크기를 갖는 데이터 코드가 아닌 6비트의 크기를 갖는 데이터 코드로 표현해도 충분하다.That is, in the case of using only English letters and numbers as data in a microprocessor-based computing device, it is sufficient to represent a character as a data code having a size of 6 bits rather than a data code having a size of 8 bits.
이에, 데이터 치환 암호화 장치(110)가 오로지 영문자와 숫자에 해당되는 문자만을 암호화 대상 데이터로 지원한다고 가정하면, 사용자는 원래 문자 데이터를 표현하기 위해 사용되는 비트열의 개수인 8개보다 작은 값임과 동시에, 총 62개의 문자를 모두 표현할 수 있는 비트열의 개수인 '6개'라는 값을 선정한 후 상기 62개의 영문자와 숫자 각각에 대해 6개의 비트열로 표현한 6비트 크기의 데이터 코드를 할당하여 상기 치환 테이블을 만들 수 있고, 치환 테이블 관리부(111)를 통해 상기 치환 테이블이 저장되어 유지되도록 할 수 있다.Thus, assuming that the data
이와 관련하여, 하기의 표 1에는 상기 치환 테이블의 예가 나타나 있다.
In this regard, Table 1 below shows an example of the substitution table.
선택부(112)는 상기 복수의 문자들 중 적어도 하나의 문자로 구성된 평문 데이터가 입력되면, 상기 치환 테이블을 참조하여 상기 적어도 하나의 문자 각각에 대응되는 적어도 하나의 데이터 코드를 선택한다.When the plain text data including at least one of the plurality of characters is input, the selecting
데이터 변환부(113)는 상기 적어도 하나의 문자 각각에 대한 데이터 코드를 상기 선택된 적어도 하나의 데이터 코드로 치환하여 상기 평문 데이터를 상기 선택된 적어도 하나의 데이터 코드로 구성된 치환 데이터로 변환한다.The
예컨대, 데이터 치환 암호화 장치(110)에 'sa'라는 문자로 구성된 평문 데이터가 입력되었고, 상기 치환 테이블이 상기 표 1과 같다고 가정하는 경우, 선택부(112)는 상기 치환 테이블을 참조하여 's'라는 문자에 대한 데이터 코드로 '010100'을 선택할 수 있고, 'a'라는 문자에 대한 데이터 코드로 '010101'을 선택할 수 있다.For example, when the plain text data composed of the letters' sa 'is input to the data
그리고 나서, 데이터 변환부(113)는 's'라는 문자에 대한 아스키코드표에 따른 데이터 코드인 '01110011'을 '010100'으로 치환하고, 'a'라는 문자에 대한 아스키코드표에 따른 데이터 코드인 '01100001'을 '010101'으로 치환하여 'sa'라는 문자로 구성된 평문 데이터인 '0111001101100001'을 '010100010101'로 구성된 치환 데이터로 변환할 수 있다.Then, the
인코딩(encoding)부(114)는 상기 치환 데이터를 선정된 암호화 키를 이용하여 암호화하고, 상기 암호화된 치환 데이터에 대해 데이터 인코딩을 수행한다.An
이때, 본 발명의 일실시예에 따르면, 데이터 치환 암호화 장치(110)는 비율 연산부(115)를 더 포함할 수 있다.In this case, according to an embodiment of the present invention, the data
비율 연산부(115)는 상기 데이터 인코딩이 지원하는 입력 데이터의 크기 값을 확인하여 상기 선정된 개수의 비트열로 표현되는 데이터 코드 1개의 크기 값 대비 상기 입력 데이터의 크기 값에 대한 비율을 연산한다.The
이때, 본 발명의 일실시예에 따르면, 인코딩부(114)는 그룹화(grouping)부(116), 데이터 인코딩부(117) 및 출력 데이터 생성부(118)를 포함할 수 있다.In this case, according to an embodiment of the present invention, the
그룹화부(116)는 상기 치환 데이터를 구성하는 상기 적어도 하나의 데이터 코드를 상기 연산된 비율에 해당하는 개수 별로 그룹화하여 상기 치환 데이터를 상기 입력 데이터의 크기 값에 매칭되는 데이터 크기를 갖는 적어도 하나의 치환 데이터 그룹으로 분할할 수 있다.The
데이터 인코딩부(117)는 상기 적어도 하나의 치환 데이터 그룹 각각에 대해 상기 선정된 암호화 키를 이용하여 암호화를 수행하고, 상기 암호화가 수행된 적어도 하나의 치환 데이터 그룹 각각에 대해 상기 데이터 인코딩을 수행한다.The
출력 데이터 생성부(118)는 상기 데이터 인코딩이 수행된 적어도 하나의 치환 데이터 그룹을 하나의 데이터로 병합하여 출력 데이터를 생성한다.The
이하에서는 도 2를 참조하여, 본 발명의 일실시예에 따른 데이터 치환 암호화 장치(110)의 동작에 대해 예를 들어 상세히 설명하기로 한다.Hereinafter, an operation of the data
우선, 치환 테이블 관리부(111)에는 상기 표 1과 같이, 영문자에 대해 6개의 비트열로 표현한 복수의 선정된 데이터 코드들이 대응되도록 기록되어 있는 치환 테이블이 저장되어 있다고 가정하고, 인코딩부(114)는 입력 데이터에 대해 base64 인코딩을 수행하는 것으로 가정하자.First, it is assumed that the
데이터 치환 암호화 장치(110)에 도면부호 210에 도시된 바와 같이, 'software'라는 문자로 구성된 평문 데이터가 입력되면, 선택부(112)는 상기 치환 테이블을 참조하여 상기 평문 데이터에 포함된 'software'라는 문자 각각에 대응되는 8개의 데이터 코드를 선택할 수 있다.When the plain text data composed of the letters 'software' is input to the data
이때, 선택부(112)는 's'라는 문자에 대해 '010100'(221)을 선택할 수 있고, 'o'라는 문자에 대해 '010010'(222)을 선택할 수 있으며, 'f'라는 문자에 대해 '000100'(223)을 선택할 수 있고, 't'라는 문자에 대해 '110101(224)을 선택할 수 있고, 'w'라는 문자에 대해 '100000'(225)을 선택할 수 있고, 'a'라는 문자에 대해 '010101'(226)을 선택할 수 있고, 'r'이라는 문자에 대해 '000011'(227)을 선택할 수 있고, 'e'라는 문자에 대해 '001001'(228)을 선택할 수 있다.In this case, the
그리고 나서, 데이터 변환부(113)는 'software'라는 문자 각각에 대한 데이터 코드를 상기 선택된 8개의 데이터 코드로 치환하여 상기 평문 데이터를 상기 선택된 8개의 데이터 코드로 구성된 치환 데이터로 변환할 수 있다.Then, the
이때, 비율 연산부(115)는 상기 base64 인코딩이 지원하는 입력 데이터의 크기 값을 확인할 수 있고, 6개의 비트열로 표현되는 데이터 코드 1개의 크기 값 대비 상기 입력 데이터의 크기 값에 대한 비율을 연산할 수 있다.In this case, the
base64 인코딩이란 8비트 단위의 문자 3개를 입력으로 받아, 6비트 단위의 문자 4개를 출력으로 얻을 수 있는 인코딩 기법으로, 기본적으로 24비트 크기의 입력 데이터를 지원한다.base64 encoding is an encoding method that receives 3 characters in 8-bit units as input and obtains 4 characters in 6-bit units as output. It basically supports 24 bits of input data.
따라서, 비율 연산부(115)는 6개의 비트열로 표현되는 데이터 코드 1개의 크기 값이 6비트이고, base64 인코딩이 지원하는 상기 입력 데이터의 크기 값이 24비트이므로, 상기 데이터 코드 1개의 크기 값 대비 base64 인코딩이 지원하는 상기 입력 데이터의 크기 값에 대한 비율을 '4'로 연산할 수 있다.Therefore, the
이렇게, 상기 비율에 대한 연산이 완료되면, 그룹화부(116)는 상기 치환 데이터를 구성하는 8개의 데이터 코드를 도면부호 231과 232에 도시된 바와 같이, 상기 연산된 비율에 해당하는 개수인 4개씩 그룹화하여 상기 치환 데이터를 base64 인코딩이 지원하는 입력 데이터의 크기 값인 24비트에 매칭되는 데이터 크기를 갖는 치환 데이터 그룹 1(231)과 치환 데이터 그룹 2(232)로 분할할 수 있다.As such, when the calculation for the ratio is completed, the
그리고 나서, 데이터 인코딩부(117)는 도면부호 240에 도시된 바와 같이, 치환 데이터 그룹 1(231)과 치환 데이터 그룹 2(232) 각각에 대해 선정된 암호화 키를 이용하여 암호화를 수행할 수 있고, 상기 암호화가 수행된 치환 데이터 그룹 1(231)과 치환 데이터 그룹 2(232) 각각에 대해 base64 인코딩을 수행할 수 있다.Then, as shown at 240, the
그리고, 출력 데이터 생성부(118)는 도면부호 240에 도시된 바와 같이, 상기 base64 인코딩이 수행된 치환 데이터 그룹 1(231)과 치환 데이터 그룹 2(232)를 하나의 데이터로 병합하여 도면부호 250에 도시된 바와 같은 'mhk4r3bn'이라는 최종 출력 데이터를 생성할 수 있다.As shown by
결국, 본 발명의 일실시예에 따른 데이터 치환 암호화 장치(110)는 데이터베이스 등에 저장되어야 할 개인 정보 등과 같은 보안이 필요한 평문 데이터를 암호화할 때, 상기 평문 데이터를 소정의 치환 테이블을 이용하여 데이터의 크기를 감소시킨 치환 데이터로 변환한 후 상기 변환된 치환 데이터에 대해 암호화 및 인코딩을 수행함으로써, 데이터 암호화에 있어 보안성을 더욱 강화할 수 있다.As a result, the data
또한, 데이터 암호화에 있어서, base64 인코딩과 같은 인코딩 기법을 사용하는 경우, base64 인코딩 기법이 8비트 단위의 문자 3개를 입력으로 받아, 6비트 단위의 문자 4개를 출력으로 얻을 수 있는 인코딩 기법이라는 점에서 평문 데이터에 포함된 문자의 개수보다 출력 데이터에 포함된 문자의 개수가 증가되거나, 4개의 문자로 구성된 32비트 크기의 평문 데이터가 입력되는 경우, base64 인코딩 과정을 통해 패딩(padding) 문자가 추가되어 6비트 단위의 8개의 문자로 구성된 총 48비트 크기의 출력 데이터가 얻어질 수 있다는 점에서 입력 데이터보다 출력 데이터의 크기가 증가될 수 있다.In addition, in the case of data encryption, when an encoding method such as base64 encoding is used, the base64 encoding method is an encoding method that receives 3 characters in 8-bit units as inputs and obtains 4 characters in 6-bit units as outputs. If the number of characters included in the output data is increased from the number of characters included in the plain text data, or if the 32-bit sized plain text data consisting of four characters is input, the padding character is generated through the base64 encoding process. In addition, the size of the output data may be increased than that of the input data in that output data having a total size of 48 bits consisting of eight characters in units of 6 bits may be obtained.
이렇게, 출력 데이터의 크기가 증가하거나, 문자의 개수가 증가하는 경우, 상기 출력 데이터가 저장될 데이터베이스의 용량이나 형식이 제한적일 수 있다는 점에서 상기 데이터베이스에 대한 관리가 어려울 수 있다.As such, when the size of the output data increases or the number of characters increases, management of the database may be difficult in that the capacity or format of the database in which the output data is to be stored may be limited.
하지만, 본 발명의 일실시예에 따른 데이터 치환 암호화 장치(110)는 4개의 문자로 구성된 32비트 크기의 평문 데이터가 입력되더라도, 상기 4개의 문자에 대한 데이터 코드를 6비트 단위의 데이터 코드로 치환함으로써, 상기 평문 데이터의 크기를 24비트로 감소시킬 수 있다는 점에서, 상기 24비트의 크기로 감소된 치환 데이터에 대해 base64 인코딩을 수행하면, 24비트의 크기를 갖는 4개의 문자로 구성된 출력 데이터를 얻을 수 있어서, 기존의 암호화 방법과 달리, base64 인코딩을 이용하더라도 출력 데이터의 크기가 증가하지 않고, 출력 데이터에 포함된 문자의 개수가 증가하지 않을 수 있다.However, the data
이상, 도 2를 참조하여, 본 발명의 일실시예에 따른 데이터 치환 암호화 장치(110)의 동작에 대해 예를 들어 상세히 설명하였다. 이하에서는 도 1을 참조하여, 데이터 치환 암호화 장치(110)의 구조에 대해 계속 설명하기로 한다.The operation of the data
본 발명의 일실시예에 따르면, 데이터 치환 암호화 장치(110)는 배수 판단부(119), 개수 연산부(120) 및 데이터 보정부(121)를 더 포함할 수 있다.According to an embodiment of the present invention, the data
배수 판단부(119)는 상기 적어도 하나의 문자로 구성된 평문 데이터가 입력되면, 상기 평문 데이터를 구성하는 상기 적어도 하나의 문자의 개수가 상기 연산된 비율에 해당하는 값의 배수에 해당하는지 여부를 판단한다.When the plain text data composed of the at least one character is input, the
개수 연산부(120)는 상기 적어도 하나의 문자의 개수가 상기 연산된 비율에 해당하는 값의 배수에 해당하지 않는 것으로 판단된 경우, 상기 적어도 하나의 문자의 개수를 기초로 상기 평문 데이터에 상기 연산된 비율에 해당하는 값의 배수만큼 문자가 포함되기 위해 추가되어야 할 문자의 최소 개수를 연산한다.When it is determined that the number of the at least one character does not correspond to a multiple of a value corresponding to the calculated ratio, the
데이터 보정부(121)는 상기 복수의 문자들 중에서 상기 연산된 최소 개수만큼의 패딩 문자를 선택한 후 상기 평문 데이터에 대해 상기 패딩 문자를 추가하여 상기 평문 데이터를 보정한다.The
이때, 선택부(112)는 상기 보정이 완료된 평문 데이터를 기초로 상기 적어도 하나의 데이터 코드를 선택할 수 있다.In this case, the
이하에서는 도 3을 참조하여, 배수 판단부(119), 개수 연산부(120) 및 데이터 보정부(121)의 동작에 대해 예를 들어 상세히 설명하기로 한다.Hereinafter, with reference to FIG. 3, the operation of the
우선, 치환 테이블 관리부(111)에는 상기 표 1과 같이, 영문자에 대해 6개의 비트열로 표현한 복수의 선정된 데이터 코드들이 대응되도록 기록되어 있는 치환 테이블이 저장되어 있다고 가정하고, 인코딩부(114)는 입력 데이터에 대해 base64 인코딩을 수행하는 것으로 가정하자.First, it is assumed that the
또한, 비율 연산부(115)는 앞서 도 2를 이용하여 설명한 실시예에서와 같이, 6개의 비트열로 표현되는 데이터 코드 1개의 크기 값이 6비트이고, base64 인코딩이 지원하는 상기 입력 데이터의 크기 값이 24비트이므로, 상기 데이터 코드 1개의 크기 값 대비 base64 인코딩이 지원하는 상기 입력 데이터의 크기 값에 대한 비율을 '4'로 연산하였다고 가정하자.In addition, as in the embodiment described with reference to FIG. 2, the
이때, 데이터 치환 암호화 장치(110)에 도면부호 310에 도시된 바와 같이, 'softw'라는 문자로 구성된 평문 데이터가 입력되면, 배수 판단부(119)는 상기 평문 데이터를 구성하는 문자의 개수가 상기 연산된 비율인 '4'의 배수에 해당하는지 여부를 판단할 수 있다.At this time, when the plain text data composed of the letters 'softw' is input to the data
관련하여, base64 인코딩은 24비트의 입력 데이터를 지원하는 인코딩 기법이고, 상기 치환 테이블은 8비트의 데이터 코드를 6비트의 데이터 코드로 치환하도록 하는 지원하는 테이블이라는 점에서, 4의 배수에 해당되는 개수의 문자로 구성된 평문 데이터가 입력되는 경우에만 치환 데이터를 4개의 문자씩 24비트의 데이터 그룹으로 분할하여 base64 인코딩이 지원하는 입력 데이터의 크기에 매칭시킬 수 있기 때문에 배수 판단부(119)는 상기 평문 데이터를 구성하는 문자의 개수가 상기 연산된 비율인 '4'의 배수에 해당하는지 여부를 판단할 수 있다.In this regard, base64 encoding is an encoding scheme that supports input data of 24 bits, and the permutation table is a multiple of 4 in that the permutation table is a table that supports substituting 8-bit data codes with 6-bit data codes. Only when plain text data consisting of a number of characters is input, the replacement data may be divided into four groups of 24-bit data groups to match the size of the input data supported by base64 encoding, so the
본 실시예에서 상기 평문 데이터에 포함된 문자의 개수는 5개에 불과하여 4의 배수에 해당되지 않기 때문에 개수 연산부(120)는 상기 평문 데이터에 포함될 문자의 개수가 4의 배수만큼 되기 위해 추가되어야 할 문자의 최소 개수를 연산할 수 있다.In the present embodiment, since the number of characters included in the plain text data is only five and does not correspond to a multiple of four, the
본 실시예에서 상기 평문 데이터에 포함된 문자의 개수는 5개이기 때문에 상기 평문 데이터에 포함될 문자의 개수가 4의 배수가 되기 위해 추가되어야 할 문자의 최소 개수는 3개이다. 따라서, 개수 연산부(120)는 상기 문자의 최소 개수를 '3개'로 연산할 수 있다.In the present embodiment, since the number of characters included in the plain text data is five, the minimum number of characters to be added in order for the number of characters to be included in the plain text data to be a multiple of four is three. Accordingly, the
그리고 나서, 데이터 보정부(121)는 상기 치환 테이블에 등록되어 있는 영문자들 중에서 3개의 패딩 문자를 선택한 후 상기 평문 데이터에 대해 상기 패딩 문자를 추가하여 상기 평문 데이터를 보정할 수 있다.Then, the
관련하여, 데이터 보정부(121)는 도면부호 320에 도시된 바와 같이, 'a'라는 패딩 문자 3개 선택하여 'softw'로 구성된 평문 데이터에 대해 'a'라는 패딩 문자 3개를 추가함으로써, 'softwaaa'라는 보정된 평문 데이터를 생성할 수 있다.In relation to this, the
그리고 나서, 선택부(112)는 상기 치환 테이블을 참조하여 상기 보정된 평문 데이터에 포함된 'softwaaa'라는 문자 각각에 대응되는 8개의 데이터 코드를 선택할 수 있다.Then, the selecting
이때, 선택부(112)는 's'라는 문자에 대해 '010100'(331)을 선택할 수 있고, 'o'라는 문자에 대해 '010010'(332)을 선택할 수 있으며, 'f'라는 문자에 대해 '000100'(333)을 선택할 수 있고, 't'라는 문자에 대해 '110101(334)을 선택할 수 있고, 'w'라는 문자에 대해 '100000'(335)을 선택할 수 있고, 'a'라는 문자에 대해 '010101'(336)을 선택할 수 있고, 'a'이라는 문자에 대해 '010101'(337)을 선택할 수 있고, 'a'라는 문자에 대해 '010101'(338)을 선택할 수 있다.In this case, the
그리고, 데이터 변환부(113)는 'softwaaa'라는 문자 각각에 대한 데이터 코드를 상기 선택된 8개의 데이터 코드로 치환하여 상기 보정된 평문 데이터를 상기 선택된 8개의 데이터 코드로 구성된 치환 데이터로 변환할 수 있다.The
이때, 그룹화부(116)는 상기 치환 데이터를 구성하는 8개의 데이터 코드를 도면부호 341과 342에 도시된 바와 같이, 비율 연산부(115)에서 연산된 비율에 해당하는 개수인 4개씩 그룹화하여 상기 치환 데이터를 base64 인코딩이 지원하는 입력 데이터의 크기 값인 24비트에 매칭되는 데이터 크기를 갖는 치환 데이터 그룹 1(341)과 치환 데이터 그룹 2(342)로 분할할 수 있다.At this time, the
그리고 나서, 데이터 인코딩부(117)는 도면부호 350에 도시된 바와 같이, 치환 데이터 그룹 1(341)과 치환 데이터 그룹 2(342) 각각에 대해 선정된 암호화 키를 이용하여 암호화를 수행할 수 있고, 상기 암호화가 수행된 치환 데이터 그룹 1(341)과 치환 데이터 그룹 2(342) 각각에 대해 base64 인코딩을 수행할 수 있다.Then, the
그리고, 출력 데이터 생성부(118)는 도면부호 350에 도시된 바와 같이, 상기 base64 인코딩이 수행된 치환 데이터 그룹 1(341)과 치환 데이터 그룹 2(342)를 하나의 데이터로 병합하여 도면부호 360에 도시된 바와 같은 'grTw28Eb'라는 최종 출력 데이터를 생성할 수 있다.As shown by
도 4는 본 발명의 일실시예에 따른 데이터 치환 암호화 방법을 도시한 순서도이다.4 is a flowchart illustrating a data substitution encryption method according to an embodiment of the present invention.
단계(S410)에서는 복수의 문자들과, 상기 복수의 문자들 각각을 선정된 개수의 비트열로 표현한 복수의 선정된 데이터 코드들이 서로 대응되도록 기록된 치환 테이블을 유지한다.In step S410, a plurality of characters and a plurality of predetermined data codes representing each of the plurality of characters in a predetermined number of bit strings are maintained to correspond to each other.
이때, 본 발명의 일실시예에 따르면, 상기 선정된 개수는 상기 적어도 하나의 문자 각각에 대한 데이터 코드에 포함된 비트열의 개수보다 작은 값이되, 상기 복수의 문자들의 개수에 기초하여 상기 복수의 문자들 전부를 상기 복수의 선정된 데이터 코드들로 표현 가능하도록 선정된 값일 수 있다.In this case, according to an embodiment of the present invention, the predetermined number is a value smaller than the number of bit strings included in the data code for each of the at least one character, and the plurality of the plurality of characters is based on the number of the plurality of characters. It may be a predetermined value so that all of the characters can be represented by the plurality of predetermined data codes.
단계(S420)에서는 상기 복수의 문자들 중 적어도 하나의 문자로 구성된 평문 데이터가 입력되면, 상기 치환 테이블을 참조하여 상기 적어도 하나의 문자 각각에 대응되는 적어도 하나의 데이터 코드를 선택한다.In operation S420, when plain text data including at least one of the plurality of characters is input, at least one data code corresponding to each of the at least one character is selected with reference to the substitution table.
단계(S430)에서는 상기 적어도 하나의 문자 각각에 대한 데이터 코드를 상기 선택된 적어도 하나의 데이터 코드로 치환하여 상기 평문 데이터를 상기 선택된 적어도 하나의 데이터 코드로 구성된 치환 데이터로 변환한다.In step S430, the data code for each of the at least one character is replaced with the selected at least one data code to convert the plain text data into replacement data composed of the selected at least one data code.
단계(S440)에서는 상기 치환 데이터를 선정된 암호화 키를 이용하여 암호화하고, 상기 암호화된 치환 데이터에 대해 데이터 인코딩을 수행한다.In step S440, the replacement data is encrypted using the selected encryption key, and data encoding is performed on the encrypted replacement data.
이때, 본 발명의 일실시예에 따르면, 상기 데이터 치환 암호화 방법은 단계(S410)이후에 상기 데이터 인코딩이 지원하는 입력 데이터의 크기 값을 확인하여 상기 선정된 개수의 비트열로 표현되는 데이터 코드 1개의 크기 값 대비 상기 입력 데이터의 크기 값에 대한 비율을 연산하는 단계를 더 포함할 수 있다.At this time, according to an embodiment of the present invention, the data substitution encryption method is a data code 1 represented by the predetermined number of bit strings after checking the size value of the input data supported by the data encoding after step (S410) The method may further include calculating a ratio of the size value of the input data to the size value of the dog.
이때, 단계(S440)에서는 상기 치환 데이터를 구성하는 상기 적어도 하나의 데이터 코드를 상기 연산된 비율에 해당하는 개수 별로 그룹화하여 상기 치환 데이터를 상기 입력 데이터의 크기 값에 매칭되는 데이터 크기를 갖는 적어도 하나의 치환 데이터 그룹으로 분할하는 단계, 상기 적어도 하나의 치환 데이터 그룹 각각에 대해 상기 선정된 암호화 키를 이용하여 암호화를 수행하고, 상기 암호화가 수행된 적어도 하나의 치환 데이터 그룹 각각에 대해 상기 데이터 인코딩을 수행하는 단계 및 상기 데이터 인코딩이 수행된 적어도 하나의 치환 데이터 그룹을 하나의 데이터로 병합하여 출력 데이터를 생성하는 단계를 포함할 수 있다.In this case, in step S440, the at least one data code constituting the replacement data is grouped by the number corresponding to the calculated ratio, and the replacement data is at least one having a data size matching the size value of the input data. Dividing into at least one substituting data group, performing encryption using the selected encryption key for each of the at least one substituting data group, and performing the data encoding on each of the at least one substituting data group on which the encryption is performed. And performing at least one substitution data group on which the data encoding is performed into one data to generate output data.
또한, 본 발명의 일실시예에 따르면, 상기 데이터 치환 암호화 방법은 단계(S420)이전에 상기 적어도 하나의 문자로 구성된 평문 데이터가 입력되면, 상기 평문 데이터를 구성하는 상기 적어도 하나의 문자의 개수가 상기 연산된 비율에 해당하는 값의 배수에 해당하는지 여부를 판단하는 단계, 상기 적어도 하나의 문자의 개수가 상기 연산된 비율에 해당하는 값의 배수에 해당하지 않는 것으로 판단된 경우, 상기 적어도 하나의 문자의 개수를 기초로 상기 평문 데이터에 상기 연산된 비율에 해당하는 값의 배수만큼 문자가 포함되기 위해 추가되어야 할 문자의 최소 개수를 연산하는 단계 및 상기 복수의 문자들 중에서 상기 연산된 최소 개수만큼의 패딩 문자를 선택한 후 상기 평문 데이터에 대해 상기 패딩 문자를 추가하여 상기 평문 데이터를 보정하는 단계를 더 포함할 수 있다.Further, according to an embodiment of the present invention, in the data substitution encryption method, if plain text data composed of the at least one character is input before step S420, the number of the at least one character constituting the plain text data is increased. Determining whether it corresponds to a multiple of the value corresponding to the calculated ratio, and if it is determined that the number of the at least one character does not correspond to a multiple of the value corresponding to the calculated ratio, the at least one Calculating a minimum number of characters to be added in order to include the characters in the plain text data by a multiple of a value corresponding to the calculated ratio based on the number of characters and the calculated minimum number of characters among the plurality of characters. Select a padding character to correct the plaintext data by adding the padding character to the plaintext data. It may further comprise the step.
이때, 단계(S420)에서는 상기 보정이 완료된 평문 데이터를 기초로 상기 적어도 하나의 데이터 코드를 선택할 수 있다.In this case, in step S420, the at least one data code may be selected based on the plain text data on which the correction is completed.
이상, 도 4를 참조하여 본 발명의 일실시예에 따른 데이터 치환 암호화 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 데이터 치환 암호화 방법은 도 1 내지 도 3을 이용하여 설명한 데이터 치환 암호화 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.The data substitution encryption method according to an embodiment of the present invention has been described above with reference to FIG. 4. Here, since the data substitution encryption method according to an embodiment of the present invention may correspond to the configuration of the operation of the data
본 발명의 일실시예에 따른 데이터 치환 암호화 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Data substitution encryption method according to an embodiment of the present invention is implemented in the form of program instructions that can be executed by various computer means may be recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. As described above, the present invention has been described by specific embodiments such as specific components and the like. For those skilled in the art, various modifications and variations are possible from these descriptions.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be construed as being limited to the embodiments described, and all of the equivalents or equivalents of the claims, as well as the following claims, belong to the scope of the present invention .
110: 데이터 치환 암호화 장치
111: 치환 테이블 관리부 112: 선택부
113: 데이터 변환부 114: 인코딩(encoding)부
115: 비율 연산부 116: 그룹화(grouping)부
117: 데이터 인코딩부 118: 출력 데이터 생성부
119: 배수 판단부 120: 개수 연산부
121: 데이터 보정부110: data substitution encryption device
111: substitution table management unit 112: selection unit
113: data conversion section 114: encoding section
115: ratio calculator 116: grouping unit
117: data encoding unit 118: output data generation unit
119: drainage determination unit 120: number calculation unit
121: data correction unit
Claims (9)
상기 복수의 문자들 중 적어도 하나의 문자로 구성된 평문 데이터가 입력되면, 상기 치환 테이블을 참조하여 상기 적어도 하나의 문자 각각에 대응되는 적어도 하나의 데이터 코드를 선택하는 선택부;
상기 적어도 하나의 문자 각각에 대한 데이터 코드를 상기 선택된 적어도 하나의 데이터 코드로 치환하여 상기 평문 데이터를 상기 선택된 적어도 하나의 데이터 코드로 구성된 치환 데이터로 변환하는 데이터 변환부; 및
상기 치환 데이터를 선정된 암호화 키를 이용하여 암호화하고, 상기 암호화된 치환 데이터에 대해 데이터 인코딩(encoding)을 수행하는 인코딩부
를 포함하고,
상기 선정된 개수는
상기 적어도 하나의 문자 각각에 대한 데이터 코드에 포함된 비트열의 개수보다 작은 값이되, 상기 복수의 문자들의 개수에 기초하여 상기 복수의 문자들 전부를 상기 복수의 선정된 데이터 코드들로 표현 가능하도록 선정된 값인 데이터 치환 암호화 장치.A substitution table management unit which stores and maintains a substitution table in which a plurality of characters and a plurality of predetermined data codes representing each of the plurality of characters in a predetermined number of bit strings correspond to each other;
A selection unit for selecting at least one data code corresponding to each of the at least one character by referring to the substitution table when plain text data including at least one character among the plurality of characters is input;
A data converter for converting the data code for each of the at least one character into the selected at least one data code and converting the plain text data into replacement data composed of the selected at least one data code; And
An encoding unit for encrypting the substitution data using a predetermined encryption key and performing data encoding on the encrypted substitution data
Lt; / RTI >
The selected number is
The value is smaller than the number of bit strings included in the data code for each of the at least one character, and all of the plurality of characters may be represented by the plurality of predetermined data codes based on the number of the plurality of characters. A data substitution encryption device that is a predetermined value.
상기 데이터 인코딩이 지원하는 입력 데이터의 크기 값을 확인하여 상기 선정된 개수의 비트열로 표현되는 데이터 코드 1개의 크기 값 대비 상기 입력 데이터의 크기 값에 대한 비율을 연산하는 비율 연산부
를 더 포함하고,
상기 인코딩부는
상기 치환 데이터를 구성하는 상기 적어도 하나의 데이터 코드를 상기 연산된 비율에 해당하는 개수 별로 그룹화(grouping)하여 상기 치환 데이터를 상기 입력 데이터의 크기 값에 매칭되는 데이터 크기를 갖는 적어도 하나의 치환 데이터 그룹으로 분할하는 그룹화부;
상기 적어도 하나의 치환 데이터 그룹 각각에 대해 상기 선정된 암호화 키를 이용하여 암호화를 수행하고, 상기 암호화가 수행된 적어도 하나의 치환 데이터 그룹 각각에 대해 상기 데이터 인코딩을 수행하는 데이터 인코딩부; 및
상기 데이터 인코딩이 수행된 적어도 하나의 치환 데이터 그룹을 하나의 데이터로 병합하여 출력 데이터를 생성하는 출력 데이터 생성부
를 포함하는 데이터 치환 암호화 장치.The method of claim 1,
A ratio calculator for checking a size value of the input data supported by the data encoding and calculating a ratio of the size value of the input data to the size value of one data code represented by the predetermined number of bit strings;
Further comprising:
The encoding unit
At least one replacement data group having a data size that matches the size value of the input data by grouping the at least one data code constituting the replacement data by the number corresponding to the calculated ratio Grouping unit to divide into;
A data encoding unit performing encryption on each of the at least one replacement data group using the selected encryption key, and performing data encoding on each of the at least one replacement data group on which the encryption is performed; And
An output data generation unit for generating output data by merging at least one substitution data group on which the data encoding is performed into one data;
Data substitution encryption device comprising a.
상기 적어도 하나의 문자로 구성된 평문 데이터가 입력되면, 상기 평문 데이터를 구성하는 상기 적어도 하나의 문자의 개수가 상기 연산된 비율에 해당하는 값의 배수에 해당하는지 여부를 판단하는 배수 판단부;
상기 적어도 하나의 문자의 개수가 상기 연산된 비율에 해당하는 값의 배수에 해당하지 않는 것으로 판단된 경우, 상기 적어도 하나의 문자의 개수를 기초로 상기 평문 데이터에 상기 연산된 비율에 해당하는 값의 배수만큼 문자가 포함되기 위해 추가되어야 할 문자의 최소 개수를 연산하는 개수 연산부; 및
상기 복수의 문자들 중에서 상기 연산된 최소 개수만큼의 패딩(padding) 문자를 선택한 후 상기 평문 데이터에 대해 상기 패딩 문자를 추가하여 상기 평문 데이터를 보정하는 데이터 보정부
를 더 포함하고,
상기 선택부는
상기 보정이 완료된 평문 데이터를 기초로 상기 적어도 하나의 데이터 코드를 선택하는 데이터 치환 암호화 장치.The method of claim 3,
A multiplier determination unit determining whether the number of the at least one character constituting the plain text data corresponds to a multiple of a value corresponding to the calculated ratio when the plain text data including the at least one character is input;
If it is determined that the number of the at least one character does not correspond to a multiple of the value corresponding to the calculated ratio, the value of the value corresponding to the calculated ratio in the plain text data based on the number of the at least one character A number calculating unit that calculates a minimum number of characters to be added in order to include characters by multiples; And
A data correction unit for correcting the plain text data by selecting the padding character from the plurality of characters and adding the padding character to the plain text data
Further comprising:
The selection unit
And selecting the at least one data code based on the corrected plain text data.
상기 복수의 문자들 중 적어도 하나의 문자로 구성된 평문 데이터가 입력되면, 상기 치환 테이블을 참조하여 상기 적어도 하나의 문자 각각에 대응되는 적어도 하나의 데이터 코드를 선택하는 단계;
상기 적어도 하나의 문자 각각에 대한 데이터 코드를 상기 선택된 적어도 하나의 데이터 코드로 치환하여 상기 평문 데이터를 상기 선택된 적어도 하나의 데이터 코드로 구성된 치환 데이터로 변환하는 단계; 및
상기 치환 데이터를 선정된 암호화 키를 이용하여 암호화하고, 상기 암호화된 치환 데이터에 대해 데이터 인코딩(encoding)을 수행하는 단계
를 포함하고,
상기 선정된 개수는
상기 적어도 하나의 문자 각각에 대한 데이터 코드에 포함된 비트열의 개수보다 작은 값이되, 상기 복수의 문자들의 개수에 기초하여 상기 복수의 문자들 전부를 상기 복수의 선정된 데이터 코드들로 표현 가능하도록 선정된 값인 데이터 치환 암호화 방법.Maintaining a substitution table in which a plurality of characters and a plurality of predetermined data codes representing each of the plurality of characters in a predetermined number of bit strings correspond to each other;
Selecting at least one data code corresponding to each of the at least one character by referring to the substitution table when plain text data composed of at least one of the plurality of characters is input;
Replacing the data code for each of the at least one character with the selected at least one data code to convert the plain text data into replacement data consisting of the selected at least one data code; And
Encrypting the substitution data using a predetermined encryption key and performing data encoding on the encrypted substitution data
Lt; / RTI >
The selected number is
The value is smaller than the number of bit strings included in the data code for each of the at least one character. A data substitution encryption method that is a predetermined value.
상기 데이터 인코딩이 지원하는 입력 데이터의 크기 값을 확인하여 상기 선정된 개수의 비트열로 표현되는 데이터 코드 1개의 크기 값 대비 상기 입력 데이터의 크기 값에 대한 비율을 연산하는 단계
를 더 포함하고,
상기 데이터 인코딩을 수행하는 단계는
상기 치환 데이터를 구성하는 상기 적어도 하나의 데이터 코드를 상기 연산된 비율에 해당하는 개수 별로 그룹화(grouping)하여 상기 치환 데이터를 상기 입력 데이터의 크기 값에 매칭되는 데이터 크기를 갖는 적어도 하나의 치환 데이터 그룹으로 분할하는 단계;
상기 적어도 하나의 치환 데이터 그룹 각각에 대해 상기 선정된 암호화 키를 이용하여 암호화를 수행하고, 상기 암호화가 수행된 적어도 하나의 치환 데이터 그룹 각각에 대해 상기 데이터 인코딩을 수행하는 단계; 및
상기 데이터 인코딩이 수행된 적어도 하나의 치환 데이터 그룹을 하나의 데이터로 병합하여 출력 데이터를 생성하는 단계
를 포함하는 데이터 치환 암호화 방법.The method of claim 5,
Checking a size value of the input data supported by the data encoding and calculating a ratio of the size value of the input data to the size value of one data code represented by the predetermined number of bit strings;
Further comprising:
Performing the data encoding is
At least one replacement data group having a data size that matches the size value of the input data by grouping the at least one data code constituting the replacement data by the number corresponding to the calculated ratio Dividing into;
Performing encryption using the selected encryption key on each of the at least one replacement data group, and performing data encoding on each of the at least one replacement data group on which the encryption is performed; And
Generating output data by merging the at least one substitution data group on which the data encoding is performed into one data;
Data substitution encryption method comprising a.
상기 적어도 하나의 문자로 구성된 평문 데이터가 입력되면, 상기 평문 데이터를 구성하는 상기 적어도 하나의 문자의 개수가 상기 연산된 비율에 해당하는 값의 배수에 해당하는지 여부를 판단하는 단계;
상기 적어도 하나의 문자의 개수가 상기 연산된 비율에 해당하는 값의 배수에 해당하지 않는 것으로 판단된 경우, 상기 적어도 하나의 문자의 개수를 기초로 상기 평문 데이터에 상기 연산된 비율에 해당하는 값의 배수만큼 문자가 포함되기 위해 추가되어야 할 문자의 최소 개수를 연산하는 단계; 및
상기 복수의 문자들 중에서 상기 연산된 최소 개수만큼의 패딩(padding) 문자를 선택한 후 상기 평문 데이터에 대해 상기 패딩 문자를 추가하여 상기 평문 데이터를 보정하는 단계
를 더 포함하고,
상기 적어도 하나의 데이터 코드를 선택하는 단계는
상기 보정이 완료된 평문 데이터를 기초로 상기 적어도 하나의 데이터 코드를 선택하는 데이터 치환 암호화 방법.The method of claim 7, wherein
When plain text data consisting of the at least one character is input, determining whether the number of the at least one character constituting the plain text data corresponds to a multiple of a value corresponding to the calculated ratio;
If it is determined that the number of the at least one character does not correspond to a multiple of the value corresponding to the calculated ratio, the value of the value corresponding to the calculated ratio in the plain text data based on the number of the at least one character Calculating a minimum number of characters to be added in order for the characters to be included in multiples; And
Correcting the plain text data by selecting the minimum number of padding characters from the plurality of characters and then adding the padding characters to the plain text data;
Further comprising:
Selecting the at least one data code
And selecting the at least one data code based on the corrected plain text data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130022993A KR101282653B1 (en) | 2013-03-04 | 2013-03-04 | Data substitution encryption device and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130022993A KR101282653B1 (en) | 2013-03-04 | 2013-03-04 | Data substitution encryption device and method |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101282653B1 true KR101282653B1 (en) | 2013-07-12 |
Family
ID=48996645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130022993A KR101282653B1 (en) | 2013-03-04 | 2013-03-04 | Data substitution encryption device and method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101282653B1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101428650B1 (en) * | 2014-03-07 | 2014-08-13 | (주)케이사인 | Method of encryption and method of decryption |
KR20180098782A (en) * | 2017-02-27 | 2018-09-05 | 주식회사 한컴시큐어 | Fixed length encryption apparatus and method for long text strings |
KR20210084000A (en) * | 2019-12-27 | 2021-07-07 | 주식회사 안랩 | Identifier generating device and identifier generating method |
CN114257442A (en) * | 2021-12-20 | 2022-03-29 | 山石网科通信技术股份有限公司 | Method and device for detecting transmission loophole and storage medium |
WO2024117755A1 (en) * | 2022-12-01 | 2024-06-06 | 서강대학교 산학협력단 | System and device for controlling data access using blockchain-based substitution encryption, and method thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110089379A (en) * | 2004-08-12 | 2011-08-05 | 씨엠엘에이 엘엘씨 | Permutation data transformation to enhance security |
KR101193599B1 (en) | 2011-05-30 | 2012-10-23 | 주식회사 코맥스 | System for encryption and decryption of data and thereof |
KR20130012540A (en) * | 2011-07-25 | 2013-02-04 | 소프트포럼 주식회사 | Data size adjustment apparatus and method |
-
2013
- 2013-03-04 KR KR1020130022993A patent/KR101282653B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110089379A (en) * | 2004-08-12 | 2011-08-05 | 씨엠엘에이 엘엘씨 | Permutation data transformation to enhance security |
KR101193599B1 (en) | 2011-05-30 | 2012-10-23 | 주식회사 코맥스 | System for encryption and decryption of data and thereof |
KR20130012540A (en) * | 2011-07-25 | 2013-02-04 | 소프트포럼 주식회사 | Data size adjustment apparatus and method |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101428650B1 (en) * | 2014-03-07 | 2014-08-13 | (주)케이사인 | Method of encryption and method of decryption |
KR20180098782A (en) * | 2017-02-27 | 2018-09-05 | 주식회사 한컴시큐어 | Fixed length encryption apparatus and method for long text strings |
KR101977128B1 (en) * | 2017-02-27 | 2019-05-10 | 주식회사 한컴시큐어 | Fixed length encryption apparatus and method for long text strings |
KR20210084000A (en) * | 2019-12-27 | 2021-07-07 | 주식회사 안랩 | Identifier generating device and identifier generating method |
KR102465429B1 (en) * | 2019-12-27 | 2022-11-10 | 주식회사 안랩 | Identifier generating device and identifier generating method |
CN114257442A (en) * | 2021-12-20 | 2022-03-29 | 山石网科通信技术股份有限公司 | Method and device for detecting transmission loophole and storage medium |
WO2024117755A1 (en) * | 2022-12-01 | 2024-06-06 | 서강대학교 산학협력단 | System and device for controlling data access using blockchain-based substitution encryption, and method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10778441B2 (en) | Redactable document signatures | |
KR101282653B1 (en) | Data substitution encryption device and method | |
US8891768B2 (en) | Increasing data security in enterprise applications by obfuscating encryption keys | |
JP5548218B2 (en) | System for establishing a cryptographic key that depends on a physical system | |
JP6323338B2 (en) | Bit string collation system, method and program | |
CN106610995B (en) | Method, device and system for creating ciphertext index | |
CN100431293C (en) | Linear transformation for symmetric-key ciphers | |
US11902417B2 (en) | Computer-implemented method of performing format-preserving encryption of a data object of variable size | |
CN106612172A (en) | Data change recovery algorithm capable of restoring data authenticity in cloud storage | |
KR101989813B1 (en) | Generating and verifying the alternative data in a specified format | |
KR101768605B1 (en) | Data transmission apparatus and method for non-repudiation of the transmission message | |
CN103780379A (en) | Password encryption method and system, and cryptographic check method and system | |
JP2014515203A (en) | A variable-tolerance method for generating identifiers for asset sets in a computing environment using error correction coding schemes | |
Kumar et al. | A high capacity email based text steganography scheme using Huffman compression | |
US20160105277A1 (en) | Encrypted text matching system, method, and computer readable medium | |
KR101599144B1 (en) | Apparatus and method for generating key | |
CN102222188A (en) | Information system user password generation method | |
CN110738513A (en) | method and device for generating and verifying redemption codes | |
CN112613008A (en) | Student identity online authentication method and system | |
KR101977128B1 (en) | Fixed length encryption apparatus and method for long text strings | |
KR102211648B1 (en) | Electronic device capable of data communication through electronic signatures based on syndrome and operating method thereof | |
US9900146B2 (en) | Encrypted text matching system, method, and computer readable medium | |
KR101741186B1 (en) | Data distribution storage apparatus and method for verifying the locally repairable code | |
CN112613844A (en) | Personnel contract electronic signature method | |
CN106156655B (en) | A kind of compressing file and authentication method towards cloud storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160704 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170703 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180702 Year of fee payment: 6 |