KR101790325B1 - Encryption and Decryption System - Google Patents
Encryption and Decryption System Download PDFInfo
- Publication number
- KR101790325B1 KR101790325B1 KR1020170094515A KR20170094515A KR101790325B1 KR 101790325 B1 KR101790325 B1 KR 101790325B1 KR 1020170094515 A KR1020170094515 A KR 1020170094515A KR 20170094515 A KR20170094515 A KR 20170094515A KR 101790325 B1 KR101790325 B1 KR 101790325B1
- Authority
- KR
- South Korea
- Prior art keywords
- encryption
- value
- unit
- character set
- decryption
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 암호화 및 복호화 시스템에 관한 것으로, 더욱 상세하게는, 다중 형태를 보존하는 암호화/복호화 시스템에 있어서, 상기 암호화/복호화 시스템 초기화 시 암호화/복호화에 사용하는 부분문자집합을 정의하는 사전처리부와, 상기 암호화/복호화 시스템에 입력된 입력값을 암호화/복호화 시스템의 내부 처리용 문자집합으로 변환하는 문자집합 변환부와, 상기 문자집합 변환부에서 변환한 문자집합을 부분문자집합으로 분별하는 부분문자집합 분별부와, 상기 부분문자집합 분별부에서 분별한 부분문자집합의 각각의 블록별로 형태보존암호화를 이용하여 암호화/복호화를 수행하는 암호화/복호화부와, 상기 암호화/복호화부에서 암호화/복호화된 부분문자집합의 각각의 블록을 재구성하는 형식 재구성부 및 상기 형식 재구성부에서 재구성된 문자집합을 암호화/복호화 시스템의 출력 문자집합으로 변환하는 문자집합 역변환부를 포함하는 것을 특징으로 하는, 암호화/복호화 시스템에 관한 것이다.
또한, 다중 형태를 보존하는 암호화/복호화 시스템에 있어서, 상기 암호화/복호화 시스템의 초기화 시 암호화/복호화에 사용하는 함수를 규정한 설정부와, 카운터값을 이용하여 난수 비트열을 만드는 난수 비트열 생성부 및 상기 암호화/복호화 시스템에 입력된 입력값과 상기 난수 비트열 생성부에서 생성한 난수 비트열을 이용하여 암호화값을 생성하는 암호 결합부를 포함하는 것을 특징으로 하는, 암호화/복호화 시스템에 관한 것이다.The present invention relates to an encryption and decryption system, and more particularly, to an encryption / decryption system for storing multiple types of data, comprising: a preprocessor for defining a partial character set used for encryption / decryption in initializing the encryption / decryption system; A character set conversion unit for converting an input value input to the encryption / decryption system into a character set for internal processing of the encryption / decryption system, and a character set conversion unit for converting a character set converted by the character set conversion unit into a partial character set An encryption / decryption unit for performing encryption / decryption using shape-preserving encryption for each block of the partial character set discriminated by the partial character set discriminating unit, and an encrypting / decrypting unit for encrypting / A format reconstruction unit for reconstructing each block of the partial character set and a reconstruction unit for reconstructing To the character set, it characterized in that it comprises an encryption / decryption system output character set to the inverse transform unit configured to convert the character set of the present invention relates to an encryption / decryption system.
The encryption / decryption system may further include a setting unit that specifies a function used for encryption / decryption at the time of initialization of the encryption / decryption system, and a random number bit string generating unit that generates a random number bit string using the counter value And an encryption / decryption system for generating an encryption value using an input value input to the encryption / decryption system and a random number bit string generated by the random number bit string generation unit .
Description
본 발명은 다중 형태를 보존하는 암호화 및 복호화 시스템에 관한 것이다.The present invention relates to an encryption and decryption system for preserving multiple forms.
일반적으로 암호화란 디지털 데이터를 일정한 체계에 따라 암호로 바꾸는 것을 말한다. 그래서 암호화는 의미를 알 수 없는 암호문 형식으로 정보를 변환하는 것으로, 암호문의 형태로 정보를 기억 장치에 저장하거나 통신회선을 통해 전송함으로써 보관 및 전달시에 디지털 데이터의 열람을 방지할 수 있다. 암호화는 특정 비트열 암호 키를 사용하여 정보를 암호문으로 변환하는 것이고, 복호화는 복호키를 사용하여 원래의 정보를 복원하는 것이다. 복호키를 갖고 있지 않은 사람은 정보를 올바르게 복원할 수 없으므로, 복호키가 제3자에게 알려지지 않으면 정보는 보호된다. In general, encryption refers to the conversion of digital data into a code according to a certain system. Thus, by converting information into a cipher text format whose meaning is unknown, the information can be stored in a storage device in the form of a cipher text or transmitted through a communication line, thereby preventing the digital data from being read during storage and transmission. Encryption is the conversion of information into ciphertext using a specific bit stream cryptographic key, and decryption is the restoration of original information using a decryption key. A person who does not have a decryption key can not correctly recover the information, so that the information is protected unless the decryption key is known to a third party.
일반적인 암호 알고리즘은 비트열을 비트열로 변환한다. 그러나 신용 카드 번호나 주민등록번호 등과 같이 비트열이 아닌 특정한 형태를 가진 데이터의 경우, 암호 알고리즘 적용에 따른 결과값이 원본 데이터의 형태를 유지하지 않는다. 따라서 데이터베이스와 같이 데이터를 주어진 형태로 저장하고 이를 활용하여 다양한 서비스를 제공해야 하는 응용 환경에서는, 암호화에 따른 저장 데이터 형태의 변경에 의해 여러 가지 문제점이 발생할 수 있다. 대표적인 문제점으로는 추가적인 저장 공간이나 데이터 활용을 위한 데이터베이스 명령문의 대폭적인 변경 필요성을 들 수 있다. 특히 설계 시 저장 데이터의 크기를 고정 시킨 레거시 시스템에서는 암호화에 의한 데이터형 변화가 허용되지 않을 수도 있다. 이러한 경우, 저장 데이터의 보호를 위해서는 암호문이 평문의 형태와 크기를 보존하는 암호 알고리즘의 적용이 필요하다. 이렇게 특정한 형태의 값을 동일한 형태의 값으로 변환하는 암호 알고리즘을 형태 보존 암호(Format-Preserving Encryption)라고 한다.A common encryption algorithm converts a bit string to a bit string. However, in the case of data having a specific form other than a bit string such as a credit card number or a resident registration number, the result of applying the encryption algorithm does not maintain the original data form. Therefore, in an application environment in which data is stored in a given form, such as a database, and a variety of services are provided by utilizing the data, various problems may occur due to changes in stored data types due to encryption. Typical problems include additional storage space and the need to drastically change database statements for data utilization. In particular, in a legacy system in which the size of stored data is fixed at design time, data type change by encryption may not be permitted. In this case, it is necessary to apply a cryptographic algorithm that preserves the form and size of the plaintext in order to protect the stored data. A cryptographic algorithm that converts values of this type to values of the same type is called Format-Preserving Encryption.
대한민국 등록특허공보 제10-1516574호의 경우는 상기 암호화 및 복호화 과정에서의 문제점을 해결하기 위해서 형태보존암호화 방식을 제안한다. 하지만, 평문으로 넣을 수 있는 값의 형태 및 길이에 대한 제한이 있고, 또한, 여러 문자집합의 문자로 구성되어 있는 문자열(예를 들어, 숫자, 영문, 한국어, 일본어로 구성된 문자열 “123214afbbsg한국어あいあうえ”)의 처리는 포함하고 있지 않다. 또한, 안전한 암호값을 생성하기 위한 트윅값의 설정 방법을 포함하고 있지 않다.Korean Patent Registration No. 10-1516574 proposes a shape preservation cipher scheme to solve the problems in the encryption and decryption process. However, there are restrictions on the type and length of values that can be inserted into plain text, and there is also a restriction on the length of a string composed of characters of various character sets (for example, a string composed of numerals, English, Korean, and Japanese characters) "123214afbbsg Korean It does not include the processing of "ue"). It does not include a method of setting a tweak value for generating a secure password value.
따라서, 평문으로 넣을 수 있는 값의 형태 및 길이에 대한 제한이 없고, 여 러가지 종류의 문자집합의 문자로 구성되어 있는 문자열의 암호화/복호화가 가능하면서도, 보안성이 우수하고, 암호화/복호화를 빠르고 효율적으로 처리할 수 있는 암호화/복호화 시스템 기술의 도입이 요구되고 있는 실정이라 하겠다.Therefore, it is possible to encrypt / decrypt a character string composed of characters of various kinds of character sets without restriction on the type and length of the values that can be inserted into the plain text, and it is excellent in security and encryption / It is required to introduce encryption / decryption system technology capable of processing fast and efficiently.
이에 본 발명자는 그런 문제점을 해결하기 위하여 오랫동안 연구하고 시행착오를 거치며 개발한 끝에 본 발명을 완성하기에 이르렀다.Therefore, the inventor of the present invention has studied for a long time to solve such a problem, developed through trial and error, and finally completed the present invention.
본 발명은 상기와 같은 문제점을 해결하고자 안출된 것으로,SUMMARY OF THE INVENTION The present invention has been made to solve the above problems,
본 발명은, 다중 형태를 보존하는 암호화/복호화 시스템에 있어서, 상기 암호화/복호화 시스템 초기화 시 암호화/복호화에 사용하는 부분문자집합을 정의하는 사전처리부와, 상기 암호화/복호화 시스템에 입력된 입력값을 암호화/복호화 시스템의 내부 처리용 문자집합으로 변환하는 문자집합 변환부와, 상기 문자집합 변환부에서 변환한 문자집합을 부분문자집합으로 분별하는 부분문자집합 분별부와, 상기 부분문자집합 분별부에서 분별한 부분문자집합의 각각의 블록별로 형태보존암호화를 이용하여 암호화/복호화를 수행하는 암호화/복호화부와, 상기 암호화/복호화부에서 암호화/복호화된 부분문자집합의 각각의 블록을 재구성하는 형식 재구성부 및 상기 형식 재구성부에서 재구성된 문자집합을 암호화/복호화 시스템의 출력 문자집합으로 변환하는 문자집합 역변환부를 구성하여, 문자집합에 대한 처리 순서를 부여하고, 문자열 속에서 문자집합에 속하는 문자들을 추출하여, 평문으로 넣을 수 있는 값의 형태 및 길이에 대한 제한이 없고, 여러가지 종류의 문자집합의 문자로 구성되어 있는 문자열의 암호화/복호화가 가능한 암호화/복호화 시스템을 제공하는 것을 목적으로 한다.The present invention provides an encryption / decryption system for storing multiple types, comprising: a preprocessor for defining a partial character set used for encryption / decryption at the time of initializing the encryption / decryption system; A partial character set discrimination unit for discriminating the character set converted by the character set conversion unit as a partial character set; and a partial character set discrimination unit for discriminating the partial character set discriminated in the partial character set discrimination unit An encryption / decryption unit for performing encryption / decryption using shape-preserving encryption for each block of the discriminated partial character set; and a format reconstruction unit for reconstructing each block of the partial character set encrypted / decrypted by the encryption / And the type-reconfiguring unit converts the reconstructed character set into an output character set of the encryption / decryption system There is no restriction on the type and length of values that can be inserted into the plain text by extracting the characters belonging to the character set in the character string, and there are no restrictions on the types of characters And an encryption / decryption system capable of encrypting / decrypting a string composed of a set of characters.
본 발명의 다른 목적은, 다중 형태를 보존하는 암호화/복호화 시스템에 있어서, 상기 암호화/복호화 시스템 초기화 시 암호화/복호화에 사용하는 함수를 규정한 설정부와 카운터값을 이용하여 난수 비트열을 만드는 난수 비트열 생성부 및 암호화/복호화 시스템에 입력된 입력값과 상기 난수 비트열 생성부에서 생성한 난수 비트열을 이용하여 암호화값을 생성하는 암호 결합부를 구성하여, 모두 다른 형태로 암호화 될 수 있도록 인덱스로서 서로 다른 카운터값을 부여하고, 인덱스로서 각각의 카운터값의 정보는 트윅값에 포함시켜 암호화 및 복호화를 수행하며, 트윅값에 포함되는 인덱스 정보는 문자열에서 포함하는 문자집합의 구성, 순서, 위치에 의해 변화하므로, 각각의 조합에 의해 암호화 결과를 다양하게 변화시킬 수 있는 암호화/복호화 시스템을 제공하는 것이다.It is another object of the present invention to provide an encryption / decryption system for storing multiple types, the system comprising: a setting unit for defining a function used for encryption / decryption in initializing the encryption / decryption system; And a random number bit string generated by the random number bit string generation unit to generate an encryption value. The encryption unit may include an index The index information included in the tweak value includes the configuration, order, and position of the character set included in the character string, Decryption system < RTI ID = 0.0 > system < / RTI > To provide a system.
가변길이 블록암호 함수를 카운터 모드로 이용하는데 있어서, 기존의 블록암호와 같이 평문 입력값만 변화를 주게 되면, 평문 입력값의 크기가 상대적으로 작아지므로, 그 크기에 따라 보안강도가 매우 약해진다. 예를 들면, 4비트를 입력으로 하는 가변길이 블록암호 함수의 입력값은, 모두 16가지 경우만이 존재하며, 출력값도 16가지 경우만이 존재한다. 이때 카운터 값이 1씩 증가한다고 할 때, 16을 주기로 하여 카운터에 의한 입력값은 반복되므로 결과값도 반복된다. 이는 암호키로서 128비트이상의 정보를 이용한 것에 비하면 매우 약한 보안강도를 갖게 되는 것이다. 다만, 본 발명의 경우, 평문으로 넣을 수 있는 값의 형태 및 길이에 대한 제한이 없는 점에서 상기 예는 일 실시예에 불과하다.In using the variable-length block cipher function in the counter mode, if only the plain-text input value is changed as in the conventional block cipher, the size of the plain-text input value becomes relatively small, so the security strength becomes very weak according to the size thereof. For example, only 16 types of input values of the variable length block cipher function having 4 bits as inputs and 16 output values exist. At this time, when the counter value is incremented by 1, the input value by the counter is repeated with the interval of 16, so the result value is repeated. This results in a very weak security strength compared with the use of information of 128 bits or more as a cryptographic key. However, in the case of the present invention, the above example is merely an example in that there is no restriction on the type and length of values that can be inserted into a plain text.
본 발명의 또 다른 목적은, 상기 보안상 문제점과 관련하여, 상기 암호화/복호화 시스템은, 예를 들면, 순서가 있는 16개 이상의 데이터에 대해 안전한 암호화를 하기 위해서 4비트 이외의 나머지 순서 정보를 트윅에 담아 결과값이 반복되는 주기를 늘려, 보안상의 문제를 해결하고자 하는 암호화/복호화 시스템을 제공하는 것이다.It is a further object of the present invention to provide a method and system for encrypting / decrypting data, comprising the steps of: Decryption system in which a period in which the result value is repeated is increased to solve a security problem.
같은 형태의 데이터 집합을 암호화 할 때에 대해, 각각의 요소 데이터에 대해 개별적으로 키를 설정하게 되면, 데이터 집합의 크기에 비례하는 안전한 저장공간이 필요하고, 각각의 키를 관리하기 위한 시스템은 매우 복잡해질 수밖에 없다. 또한, 요소 데이터의 크기가 작은 경우, 데이터를 보관하기 위한 공간보다 키를 보관하기 위한 공간이 훨씬 더 거대해질 수도 있다. 따라서, 요소 데이터를 암호화 하기 위해 필요한 암호키나 트윅값과 같은 매개변수를, 요소데이터 사이의 관계에 의해 정의하는 방법이 저장 공간의 측면에서 바람직하다. 이때 암호키를 요소데이터에 의존하여 변경하는 방법은, 대부분의 대칭키 암호에서 수행하는 키 스케쥴링 과정을 키가 변경될 때마다 수행되어야 하기 때문에, 데이터에 대한 암호화/복호화 속도를 크게 저하시킨다. When encrypting data sets of the same type, setting keys individually for each element data requires secure storage space proportional to the size of the data set, and a system for managing each key is very complicated There is no choice but to make it. In addition, if the size of the element data is small, the space for storing the key may be much larger than the space for storing the data. Therefore, a method of defining a parameter such as a cryptographic key or a tweak value necessary for encrypting element data by a relation between element data is preferable in terms of storage space. At this time, the method of changing the encryption key depending on the element data greatly degrades the encryption / decryption rate for the data because the key scheduling process performed in most symmetric key ciphers must be performed every time the key is changed.
본 발명의 또 다른 목적은, 상기 데이터에 대한 암호화/복호화 속도를 크게 저하시키는 문제점과 관련하여, 상기 암호화/복호화 시스템은, 본 발명에서는 키 스케쥴링을 반복하지 않도록 트윅값에 요소데이터 사이의 관계 정보를 포함시켜 암호화하도록 하여, 데이터에 대한 암호화/복호화 속도의 저하 문제를 해결하고자 하는 암호화/복호화 시스템을 제공하는 것이다.It is a further object of the present invention to provide a method and system for encrypting / decrypting data, in which the encryption / decryption system, And to provide an encryption / decryption system for solving the problem of lowering the encryption / decryption rate for data.
본 발명은 앞서 본 목적을 달성하기 위해서 다음과 같은 암호화/복호화 시스템을 제안한다.In order to achieve the above object, the present invention proposes an encryption / decryption system as follows.
본 발명은, 다중 형태를 보존하는 암호화/복호화 시스템에 있어서, 상기 암호화/복호화 시스템 초기화 시 암호화/복호화에 사용하는 부분문자집합을 정의하는 사전처리부와, 상기 암호화/복호화 시스템에 입력된 입력값을 암호화/복호화 시스템의 내부 처리용 문자집합으로 변환하는 문자집합 변환부와, 상기 문자집합 변환부에서 변환한 문자집합을 부분문자집합으로 분별하는 부분문자집합 분별부와, 상기 부분문자집합 분별부에서 분별한 부분문자집합의 각각의 블록별로 형태보존암호화를 이용하여 암호화/복호화를 수행하는 암호화/복호화부와, 상기 암호화/복호화부에서 암호화/복호화된 부분문자집합의 각각의 블록을 재구성하는 형식 재구성부 및 상기 형식 재구성부에서 재구성된 문자집합을 암호화/복호화 시스템의 출력 문자집합으로 변환하는 문자집합 역변환부를 포함할 수 있다.The present invention provides an encryption / decryption system for storing multiple types, comprising: a preprocessor for defining a partial character set used for encryption / decryption at the time of initializing the encryption / decryption system; A partial character set discrimination unit for discriminating the character set converted by the character set conversion unit as a partial character set; and a partial character set discrimination unit for discriminating the partial character set discriminated in the partial character set discrimination unit An encryption / decryption unit for performing encryption / decryption using shape-preserving encryption for each block of the discriminated partial character set; and a format reconstruction unit for reconstructing each block of the partial character set encrypted / decrypted by the encryption / And the type-reconfiguring unit converts the reconstructed character set into an output character set of the encryption / decryption system The character set can include an inverse.
또한, 상기 사전처리부는 표현가능한 모든 문자에 대해서 각각의 문자가 최대한 한번 포함되는 부분문자집합을 정의하는 부분문자집합 정의부와 상기 부분문자집합 정의부에서 정의된 각각의 부분문자집합에 대해서 부분문자집합 사이의 암호화/복호화 순서를 정의하는 부분문자집합 암호화/복호화 순서 정의부 및 상기 부분문자집합 정의부에서 정의된 각각의 부분문자집합에 대해서 동일한 부분문자집합에 속하는 각각의 문자 사이의 순서를 정의하는 부분문자집합 문자순서 정의부를 포함할 수 있다.The pre-processing unit may include a partial character set defining unit that defines a partial character set including at least once each character for all representable characters, and a partial character set defining unit for defining a partial character set for each partial character set defined in the partial character set defining unit. A partial character set defining an encryption / decryption sequence between sets, and an encryption / decryption sequence defining unit for defining a sequence between each character belonging to the same partial character set for each partial character set defined in the partial character set defining unit And a character sequence definition portion for performing a character sequence determination.
이때, 일반적으로 문자열은 비트열로 보지 않는 경우가 많지만, 사전처리부에서는 비트열이나 바이트열도 문자열의 하나로 볼 수 있다.At this time, in many cases, a character string is not generally regarded as a bit string, but a bit string or a byte string can be regarded as one of the strings in the preprocessing unit.
만약, 상기 사전처리부에 의해 정의된 부분문자집합에 포함되지 않는 문자가 있을 경우, 입력값 그대로 출력할 수 있다.If there is a character not included in the partial character set defined by the preprocessing unit, the input value can be output as it is.
본 발명은, 다중 형태를 보존하는 암호화/복호화 시스템의 암호화/복호화부에 입력값을 입력값과 동일한 길이의 암호문/평문으로 변환하는 형태보존암호화 함수를 포함할 수 있다. The encryption / decryption unit of the encryption / decryption system for storing multiple types may include a shape preserving cryptographic function for converting an input value into a ciphertext / plaintext having the same length as an input value.
본 발명은, 다중 형태를 보존하는 암호화/복호화 시스템에 있어서, 상기 암호화/복호화 시스템의 초기화 시 암호화/복호화에 사용하는 함수를 규정한 설정부와 카운터값을 이용하여 난수 비트열을 만드는 난수 비트열 생성부 및 상기 암호화/복호화 시스템에 입력된 입력값과 상기 난수 비트열 생성부에서 생성한 난수 비트열을 이용하여 암호화값을 생성하는 암호 결합부를 포함할 수 있다.The present invention relates to an encryption / decryption system for storing multiple types, comprising: a setting unit for defining functions used for encryption / decryption at the time of initialization of the encryption / decryption system; and a random number bit string And an encryption unit for generating an encryption value using an input value input to the encryption / decryption system and a random number bit string generated by the random number bit string generation unit.
상기 설정부는, 상기 암호화/복호화 시스템에서 사용할 가변 블록 암호화 함수, 제1 확산 함수 및 제2 확산 함수를 제공하는 함수 제공부를 포함할 수 있다.The setting unit may include a function providing unit that provides a variable block encryption function, a first spreading function, and a second spreading function to be used in the encryption / decryption system.
또한, 상기 가변 블록 암호화 함수는 트윅값이 이용 가능한 형태보존 암호화 함수, 블록암호를 포함한 메시지 인증 코드 또는 암호키를 포함한 메시지 인증 코드를 포함할 수 있다.In addition, the variable block cryptographic function may include a message authentication code including a shape preserving cryptographic function in which a tweak value is available, a message authentication code including a block cipher, or an encryption key.
그리고, 상기 난수 비트열 생성부는, 상기 카운터값에 확산 함수를 적용하여 확산값을 생성하는 확산값 생성부 및 상기 가변 블록 암호화함수를 이용하여 확산값을 암호화하는 확산값 암호화부를 포함할 수 있다.The random number bit string generating unit may include a spread value generating unit for generating a spread value by applying a spread function to the counter value and a spread value encrypting unit for encoding the spread value using the variable block cryptographic function.
상기 카운터값에 확산 함수를 적용하여 확산값을 생성하는 상기 확산값 생성부에 있어서, 논스값과 상기 카운터값의 결합값을 카운터값으로 할 수 있다.In the diffusion value generation unit for generating a diffusion value by applying a diffusion function to the counter value, a combined value of the nonce value and the counter value may be a counter value.
상기 가변 블록 암호화함수를 이용하여 확산값을 암호화하는 확산값 암호화부에 있어서, 상기 확산값 암호값이 치역에 속하면, 상기 암호 결합부로 확산값 암호값을 전송할 수 있다.A diffusion value encryption unit for encrypting a spread value using the variable block encryption function, wherein the spread value encryption value is transmitted to the encryption unit when the spread value encryption value belongs to a root zone.
만약 상기 확산값 암호화부의 제1 확산 함수를 적용한 확산값 암호값이 치역에 속하지 않으면, (a) 상기 확산값 암호값에 제2 확산 함수를 적용하고, (b) 상기 확산값 암호값이 정의역에 속하도록 모듈로 연산을 하며, (c) 상기 확산값 암호값이 치역에 속할 때까지 확산값 암호값을 반복하여 가변 블록 암호화하여, 상기 암호 결합부로 치역에 속하는 확산값 암호값을 전송할 수 있다.If the spreading value encryption value to which the first spreading function of the spreading value encryption unit is applied does not belong to the range, (a) a second spreading function is applied to the spreading value encryption value, and (b) (C) variable-size ciphering is repeated until the spreading-value cipher value belongs to the root, so that the spreading-value cipher belonging to the root of the cipher-combining unit can be transmitted.
상기 확산값 생성부에 적용될 함수는, 카운터값에 대해 카운터값을 변경시키지 않는 동치함수, 카운터값을 비트열로서 순환시키는 함수, 부분 블록의 순서를 변경하는 함수, 카운터값에 대한 해시값을 바람직한 확산값 크기에 맞춰 자르는 함수, 임의의 트윅을 이용한 가변 블록 암호 함수, 모듈로에 의한 몫과 나머지 값을 모듈로의 비트 크기에 맞게 정렬하는 함수 또는 이 함수들의 합성함수를 포함할 수 있다.The function to be applied to the spread value generator may include an equivalent function that does not change the counter value with respect to the counter value, a function that circulates the counter value as a bit string, a function that changes the order of the partial block, A variable block cryptographic function using arbitrary tweaks, a function for sorting the quotient and remainder values by the modulo according to the bit size of the module, or a combination function of these functions.
그리고, 상기 암호 결합부는, 상기 난수 비트열 생성부에서 암호 결합부로 전송된 확산값 암호값에 상기 입력값을 결합하여 암호화값을 생성할 수 있다. The encryption unit may generate an encryption value by combining the input value with the spread value encryption value transmitted from the random number bit string generation unit to the encryption unit.
또한, 암호문/평문을 생성하기 위해 상기 암호화값을 치역에 속하도록 모듈로 연산할 수 있다.In addition, the encryption value can be modulo-coded to belong to the range to generate ciphertext / plaintext.
본 발명은 앞서 암호화/복호화 시스템의 본 구성과 결합, 사용관계에 의해 다음과 같은 효과를 얻을 수 있다.According to the present invention, the following effects can be obtained depending on the configuration and use of the encryption / decryption system of the present invention.
본 발명은, 다중 형태를 보존하는 암호화/복호화 시스템에 있어서, 상기 암호화/복호화 시스템 초기화 시 암호화/복호화에 사용하는 부분문자집합을 정의하는 사전처리부와, 상기 암호화/복호화 시스템에 입력된 입력값을 암호화/복호화 시스템의 내부 처리용 문자집합으로 변환하는 문자집합 변환부와, 상기 문자집합 변환부에서 변환한 문자집합을 부분문자집합으로 분별하는 부분문자집합 분별부와, 상기 부분문자집합 분별부에서 분별한 부분문자집합의 각각의 블록별로 형태보존암호화를 이용하여 암호화/복호화를 수행하는 암호화/복호화부와, 상기 암호화/복호화부에서 암호화/복호화된 부분문자집합의 각각의 블록을 재구성하는 형식 재구성부 및 상기 형식 재구성부에서 재구성된 문자집합을 암호화/복호화 시스템의 출력 문자집합으로 변환하는 문자집합 역변환부를 포함하여, 외부 입력 문자집합을 내부 처리용 문자집합으로 변환하는 방식을 통해, 평문으로 넣을 수 있는 값의 형태 및 길이에 대한 제한이 없고, 여러가지 종류의 문자집합의 문자로 구성되어 있는 문자열의 암호화/복호화가 가능하게 되는 효과를 도출한다.The present invention provides an encryption / decryption system for storing multiple types, comprising: a preprocessor for defining a partial character set used for encryption / decryption at the time of initializing the encryption / decryption system; A partial character set discrimination unit for discriminating the character set converted by the character set conversion unit as a partial character set; and a partial character set discrimination unit for discriminating the partial character set discriminated in the partial character set discrimination unit An encryption / decryption unit for performing encryption / decryption using shape-preserving encryption for each block of the discriminated partial character set; and a format reconstruction unit for reconstructing each block of the partial character set encrypted / decrypted by the encryption / And the type-reconfiguring unit converts the reconstructed character set into an output character set of the encryption / decryption system There is no restriction on the type and length of values that can be inserted into a plain text through the method of converting an external input character set into an internal processing character set including the character set inversion section and composed of characters of various kinds of character sets It is possible to encrypt / decrypt the character string.
본 발명은, 상기 사전처리부는 표현가능한 모든 문자에 대해서 각각의 문자가 최대한 한번 포함되는 부분문자집합을 정의하는 부분문자집합 정의부와 상기 부분문자집합 정의부에서 정의된 각각의 부분문자집합에 대해서 부분문자집합 사이의 암호화/복호화 순서를 정의하는 부분문자집합 암호화/복호화 순서 정의부 및 상기 부분문자집합 정의부에서 정의된 각각의 부분문자집합에 대해서 동일한 부분문자집합에 속하는 각각의 문자 사이의 순서를 정의하는 부분문자집합 문자순서 정의부를 포함하여, 각각의 부분문자집합에 대해서 동일한 집합에 속하는 문자 사이의 순서를 정의하고, 이후 순서에 의해 문자를 유일하게 식별 가능하게 하는 방식을 취하여, 상기 방식으로 여러가지 종류의 문자집합의 문자로 구성되어 있는 문자열의 암호화/복호화가 빠르고 효율적으로 가능하게 하는 효과 및 순서가 있는 데이터에 대해 안전한 암호화를 하기 위해서 순서 정보를 트윅에 담아 결과값이 반복되는 주기를 늘려, 보안상의 문제를 해결하는 효과를 가진다. The pre-processing unit may include a partial character set defining unit that defines a partial character set including at least once each character for all representable characters, and a partial character set defining unit for each partial character set defined in the partial character set defining unit A partial character set encryption / decryption sequence defining unit for defining a sequence of encryption / decryption between partial character sets, and an ordering unit for determining, for each partial character set defined in the partial character set defining unit, , A sequence is defined between characters belonging to the same set for each partial character set and a character is uniquely identifiable by the following sequence is taken, To encrypt / decrypt a string composed of characters of various kinds of character sets A faster and more efficient for the data that is effective and in order to enable the order to the secure encryption captures the order information to tweak results by increasing the cycle in which the values are repeated, has the effect of solving the security problem.
본 발명은, 상기 암호화/복호화 시스템은, 상기 사전처리부에 의해 정의된 부분문자집합에 포함되지 않는 문자가 있을 경우, 상기 입력값을 그대로 출력하도록 하여, 상기 사전처리부에 의해 정의된 부분문자집합에 포함되지 않는 문자가 있더라도, 암호화에 문제가 없는 암호화/복호화 시스템을 구현하는 효과를 도출한다. The encryption / decryption system according to the present invention is characterized in that, when there is a character which is not included in the partial character set defined by the preprocessing unit, the encryption / decryption system outputs the input value as it is to the partial character set defined by the pre- It is possible to obtain an effect of implementing an encryption / decryption system free from the problem of encryption even if there is a character that is not included.
본 발명은, 상기 사전처리부를 제외한 상기 암호화/복호화 시스템에 입력값을 입력값과 동일한 길이의 암호문/평문으로 변환하는 형태보존암호화 함수를 포함하여, 추가적인 저장 공간이나 데이터 활용을 위한 데이터베이스 명령문의 대폭적인 변경 없이도, 특정한 형태의 값을 동일한 형태의 값으로 변환이 가능하게 되는 효과를 도출한다. The present invention further includes a form preserving cryptographic function for converting the input value into a ciphertext / plaintext having the same length as the input value in the encryption / decryption system excluding the preprocessor, It is possible to convert a value of a specific type into a value of the same type without changing the value.
본 발명은, 다중 형태를 보존하는 암호화/복호화 시스템은, 상기 암호화/복호화 시스템의 초기화 시 암호화/복호화에 사용하는 함수를 규정한 설정부와 카운터값을 이용하여 난수 비트열을 만드는 난수 비트열 생성부 및 상기 암호화/복호화 시스템에 입력된 입력값과 상기 난수 비트열 생성부에서 생성한 난수 비트열을 이용하여 암호화값을 생성하는 암호 결합부를 포함하여, 모두 다른 형태로 암호화 될 수 있도록 인덱스로서 서로 다른 카운터값을 부여하고, 인덱스로서 각각의 카운터값의 정보는 트윅값에 포함시켜 암호화 및 복호화를 수행하는 변형 카운터 모드 기반의 형태 보존 암호화/복호화를 가능하게 하는 효과를 가진다. The present invention provides an encryption / decryption system for storing multiple types, comprising: a random number bit string generating unit for generating a random number bit string by using a setting unit and a counter value defining a function used for encryption / decryption at the time of initialization of the encryption / And an encryption unit for generating an encryption value using an input value input to the encryption / decryption system and a random number bit string generated by the random number bit string generation unit, Decryption can be performed based on a modified counter mode in which encryption and decryption are performed by providing different counter values and information of respective counter values as indexes in a tweak value.
본 발명은, 상기 설정부는, 상기 암호화/복호화 시스템에서 사용할 가변 블록 암호화 함수, 제1 확산 함수 및 제2 확산 함수를 제공하는 함수 제공부를 포함하고, 상기 가변 블록 암호화 함수는 트윅값이 이용 가능한 형태보존 암호화 함수, 블록암호를 포함한 메시지 인증 코드 또는 암호키를 포함한 메시지 인증 코드를 포함하여, 키 스케쥴링을 반복하지 않도록 트윅값에 요소데이터 사이의 관계 정보를 포함시켜 암호화하도록 함으로써, 데이터에 대한 암호화/복호화 속도의 저하 문제를 해결하는 효과를 도출한다.The setting unit may include a function providing unit for providing a variable block cipher function, a first spreading function, and a second spreading function to be used in the encryption / decryption system, wherein the variable block cipher function includes: And a message authentication code including a message authentication code including a block cipher or a message authentication code including a block cipher so as not to repeat the key scheduling so that the tweak value includes the relationship information between the element data, The effect of solving the problem of the decryption rate drop is derived.
본 발명은, 상기 난수 비트열 생성부는, 상기 카운터값에 확산 함수를 적용하여 확산값을 생성하는 확산값 생성부 및 가변 블록 암호화함수를 이용하여 확산값을 암호화하는 확산값 암호화부를 포함하여, 평문으로 넣을 수 있는 값의 형태 및 길이에 대한 제한이 없으면서도, 데이터가 같은 값이더라도 서로 다른 확산값을 생성할 수 있는 점에 비추어, 보안성이 뛰어나고 효율적인 암호화를 가능하게 하는 효과를 가진다.The random number bit string generating unit may include a spread value generating unit for generating a spread value by applying a spread function to the counter value and a spread value encrypting unit for encoding a spread value using a variable block cipher function, It is possible to generate different diffusion values even if the data have the same value, without the restriction on the type and the length of values that can be inserted into the encryption key.
본 발명은, 카운터값은, 논스값과 상기 카운터값의 결합값을 카운터값으로 하여, 통계적인 예측가능성을 감소시킴으로써, 보안성을 더욱더 향상시키는 효과를 도출한다.According to the present invention, the counter value is obtained by decreasing the statistical predictability by using the combined value of the nonce value and the counter value as the counter value, thereby further improving the security.
본 발명은, 상기 확산값 암호화부는, 확산값 암호값이 치역에 속하면, 상기 암호 결합부로 확산값 암호값을 전송하고, 상기 확산값 암호화부의 제1 확산 함수를 적용한 확산값 암호값이 치역에 속하지 않으면, (a) 상기 확산값 암호값에 제2 확산 함수를 적용하고, (b) 상기 확산값 암호값이 정의역에 속하도록 모듈로 연산을 하며, (c) 상기 확산값 암호값이 치역에 속할 때까지 확산값 암호값을 반복하여 가변 블록 암호화하여, 상기 암호 결합부로 치역에 속하는 확산값 암호값을 전송하여, 모듈로의 비트 크기에 의존하는 주기 내에서의 통계적인 성질을 없앰으로써, 보안성을 향상시킬 수 있는 효과를 가진다.The spread value encryption unit may transmit the spread value cipher value to the cipher combining unit when the spread value cipher value belongs to the root zone and to transmit the spread value cipher value to which the first spread function of the spread value cipher unit is applied (A) applying a second spreading function to the spreading value encryption value, (b) performing a modulo operation so that the spreading value encryption value belongs to a domain, and (c) The variable value cipher is repeatedly subjected to variable block cipher until the ciphertext is ciphered, and a spreading cipher value belonging to the ciphertext is transmitted to the cipher combining unit by eliminating the statistical property in the cycle depending on the bit size of the modulo, It is possible to improve the property.
본 발명은, 상기 암호 결합부는, 상기 난수 비트열 생성부에서 암호 결합부로 전송된 확산값 암호값에 상기 입력값을 결합하여 암호화값을 생성하고, 암호문/평문을 생성하기 위해 상기 암호화값을 치역에 속하도록 모듈로 연산함으로써, 암호문/평문을 효율적으로 생성할 수 있는 효과를 도출한다.The encryption unit may combine the input value with a spreading value encrypted value transmitted from the random number bit string generating unit to the encryption unit to generate an encrypted value and compress the encrypted value to generate a ciphertext / , Thereby obtaining an effect of efficiently generating a ciphertext / plaintext.
도 1은 본 발명인 다중 형태를 보존하는 암호화/복호화 시스템에 관한 도면.
도 2는 문자집합 변환부와 문자집합 역변환부에 관한 도면.
도 3은 부분문자집합 분별부와 형식의 재구성부에 관한 도면.
도 4는 사전처리부에 관한 도면.
도 5는 문자열에 관한 도면.
도 6은 암호화/복호화부에 관한 도면.
도 7은 본 발명인 형태보존 암호 기반 카운터 모드 이용 암호화/복호화 시스템에 관한 도면.
도 8은 본 발명인 다중 형태를 보존하는 암호화/복호화 시스템에 관한 도면.
도 9는 난수 비트열 생성부와 암호 결합부에 관한 도면.BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a diagram of an encryption / decryption system for preserving multiple forms of the present invention.
2 is a diagram of a character set conversion unit and a character set inversion unit;
FIG. 3 is a diagram of a partial character set discriminating unit and a form reorganizing unit. FIG.
4 is a diagram relating to a preprocessing section;
5 is a diagram relating to a character string;
6 is a diagram relating to an encryption / decryption unit;
7 is a diagram of an encryption / decryption system using a counter mode based on a shape preservation password according to the present invention.
8 is a diagram of an encryption / decryption system for preserving multiple forms of the present invention.
9 is a diagram illustrating a random number bit string generating unit and a cipher combining unit.
이하에서는 본 발명에 따른 암호화/복호화 시스템의 바람직한 실시 예들을 첨부된 도면을 참조하여 상세히 설명한다. 하기에서 본 발명을 설명함에 있어 공지의 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하도록 한다. 특별한 정의가 없는 한 본 명세서의 모든 용어는 본 발명이 속하는 기술분야의 통상의 지식을 가진 기술자가 이해하는 당해 용어의 일반적 의미와 동일하고 만약 본 명세서에서 사용된 용어의 의미와 충돌하는 경우에는 본 명세서에서 사용된 정의에 따른다.Hereinafter, preferred embodiments of the encryption / decryption system according to the present invention will be described in detail with reference to the accompanying drawings. In the following description, well-known functions or constructions are not described in detail to avoid unnecessarily obscuring the subject matter of the present invention. Unless defined otherwise, all terms used herein are the same as the general meaning of the term understood by those of ordinary skill in the art to which this invention belongs and, if conflict with the meaning of the terms used herein, And the definition used in the specification.
도 1은 본 발명인 다중 형태를 보존하는 암호화/복호화 시스템(100)에 관한 도면으로, 도 1을 참고하여 설명하면, 상기 다중 형태를 보존하는 암호화/복호화 시스템(100)은 여러 문자집합의 문자로 구성되어 있는 문자열(예를 들어, 숫자, 영문, 한국어, 일본어로 구성된 문자열 “123214afbbsg한국어あいあうえ”)을, 평문으로 넣을 수 있는 값의 형태 및 길이에 대한 제한 없이, 형태를 보존하면서 암호화/복호화할 수 있는 시스템을 말한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS FIG. 1 is a block diagram of an encryption /
이러한 다중 형태를 보존하는 암호화/복호화 시스템(100)은, 사전처리부(110), 문자집합 변환부(120), 부분문자집합 분별부(130), 암호화/복호화부(140), 형식재구성부(150) 및 문자집합 역변환부(160)를 포함할 수 있다.The encrypting /
상기 사전처리부(110)는, 상기 암호화/복호화 시스템(100)의 초기화 시 암호화/복호화에 사용하는 부분문자집합 관련 사항을 정의하는 구성을 말한다.The
상기 문자집합 변환부(120)는, 상기 암호화/복호화 시스템(100)에 입력된 입력값을 암호화/복호화 시스템(100) 내부 처리용 문자집합으로 변환하는 구성을 말한다. The character
상기 부분문자집합 분별부(130)는, 상기 문자집합 변환부(120)에서 변환된 문자집합을 부분문자집합으로 분별하는 구성을 말한다.The partial character
상기 암호화/복호화부(140)는, 상기 부분문자집합 분별부(130)에서 분별된 부분문자집합의 각각의 블록별로 형태보존암호화를 이용하여 암호화/복호화를 수행하는 구성을 말한다.The encrypting /
상기 형식재구성부(150)는, 상기 암호화/복호화부(140)에서 암호화/복호화된 부분문자집합의 각각의 블록을 재배열하는 구성을 말한다.The
상기 문자집합 역변환부(160)는, 상기 형식 재구성부(150)에서 재구성된 문자집합을 암호화/복호화 시스템의 출력 문자집합으로 변환하는 구성을 말한다.The character
상기 다중 형태를 보존하는 암호화/복호화 시스템(100)에 의해, 평문으로 넣을 수 있는 값의 형태 및 길이에 대한 제한이 없고, 여러가지 종류의 문자집합의 문자로 구성되어 있는 문자열의 암호화/복호화가 가능하게 된다.The encrypting /
도 2는 본 발명인 다중 형태를 보존하는 암호화/복호화 시스템(100)의 구성인 문자집합 변환부(120)와 문자집합 역변환부(160)에 관한 도면으로, 외부 입력/출력 문자집합과 내부 처리용 문자집합 상호간에 변환/역변환을 통해 암호화/복호화가 이루어지는 부분을 보여 준다.FIG. 2 is a diagram of a character
도 3은 본 발명인 다중 형태를 보존하는 암호화/복호화 시스템(100)의 구성인 부분문자집합 분별부(130), 형식재구성부(150)에 관한 도면으로, 문자열 내의 문자집합이 부분문자집합으로 분별되었다가, 다시 원래의 문자열로 형식이 재구성되는 부분을 보여 준다.FIG. 3 is a diagram of a partial character
도 4은 본 발명인 사전처리부(110)에 관한 도면으로, 도 4를 참고하여 설명하면, 상기 사전처리부(110)는 부분문자집합 정의부(111), 부분문자집합 암호화/복호화 순서 정의부(112) 및 부분문자집합 문자순서 정의부(113)를 포함할 수 있다.4, the
상기 부분문자집합 정의부(111)는, 표현가능한 모든 문자에 대해서 각각의 문자가 최대한 한번 포함되는 부분문자집합을 정의하는 구성을 말한다.The partial character
상기 부분문자집합 암호화/복호화 순서 정의부(112)는, 상기 부분문자집합 정의부(111)에서 정의된 각각의 부분문자집합에 대해서 부분문자집합 사이의 암호화/복호화 순서를 정의하는 구성을 말한다.The partial character set encryption / decryption
상기 부분문자집합 문자순서 정의부(113)는, 상기 부분문자집합 정의부(111)에서 정의된 각각의 부분문자집합에 대해서 동일한 부분문자집합에 속하는 각각의 문자 사이의 순서를 정의하는 구성을 말한다.The partial character set character
상기 암호화/복호화 시스템(100)은, 상기 사전처리부(110)에 의해 정의된 부분문자집합에 포함되지 않는 문자가 있을 경우, 입력값 그대로 출력하도록 하여, 부분문자집합 정의부(111)에 없는 문자가 있더라도, 암호화에 문제가 없는 암호화/복호화 시스템을 구현하는 효과를 도출한다.The encryption /
상기 사전처리부(110)에 의해, 문자집합에 대한 처리 순서를 부여하고, 바람직하게는, 암호화에서 중복적으로 수행될 필요가 없는 처리를 한번만 수행하도록 함으로써, 암호화/복호화를 빠르고 효율적으로 가능하게 하는 효과를 가진다. 또한 문자집합 사이의 처리 순서를 바꾸면, 해당되는 부분문자 집합의 카운터 값이 변화하므로 암호화의 결과도 달라진다. 이에 따라 다양한 언어로 구성된 문자열에 대해서는 더 다양한 결과를 얻을 수 있으므로, 보안성이 향상되는 효과를 도출할 수 있다. The
본 명세서에서 문자집합이란, 문자열 중 암호화의 대상이 되는 문자를 가리킨다. 도 5를 참고하여 설명하면, 문자열은 일정 비트로 표현되는 문자로 구성된 열로서, 하나의 문자는 해당 비트 크기 내에서 표현되며, 모든 문자가 동일한 비트 크기를 갖지 않는 경우도 존재한다. 일반적으로는 문자열을 비트열로 보지 않는 경우가 많다. 다만, 본 명세서에서의 문자열은 비트열이나 바이트열도 모두 포함하는 광의의 개념이라 할 것이다.In this specification, a character set refers to a character to be encrypted in a character string. Referring to FIG. 5, a character string is a column composed of characters represented by a certain bit, one character is represented within the corresponding bit size, and all characters do not have the same bit size. Generally, you do not often see a string as a bit stream. It is to be noted that the character string in the present specification is a broad concept including both a bit string and a byte string.
전자기기에서 문자체계를 다루는 방법에 있어서, 최근에 많이 사용하는 문자집합은 유니코드 문자집합이다. 유니코드 문자집합은, 세계 각국에서 사용하는 문자체계를 하나의 문자집합에서 모두 동시에 사용 가능하도록 하기 때문에, 세계적으로도 공통적으로 사용하고 있다. 어떠한 유니코드 문자가 하나 있다고 하였을 때, 해당 문자는 어떠한 부분 문자집합에 속한다고 구분할 수 있다. In a method of handling character systems in electronic devices, the most common character set is the Unicode character set. The Unicode character set is commonly used worldwide because it allows the character systems used in various countries of the world to be used simultaneously in one character set. When there is one Unicode character, the character can be identified as belonging to any partial character set.
이러한 구분은, 각국에서 사용하는 문자체계에 따라 표준으로서 정의되어 있다. 비록 이러한 표준은, 임의의 글자에 대해 임의의 부분 문자집합을 유일하게 대응시키지는 못하지만, 적절한 문자체계의 선택을 통해 부분 문자집합이 서로 공통요소를 갖지 않도록 구분할 수 있다. 예를 들면, 문자 'a'는, 영어의 문자체계에서도 사용하지만, 독일어의 문자체계에서도 동일한 문자를 사용한다. 그러나 문자 는, 독일어의 문자체계에서는 사용하지만, 영어의 문자체계에서는 사용하지 않는다. 따라서, 영어의 문자체계에 대한 형태보존 암호화와, 독일어의 문자체계에 대한 형태보존 암호화는, 정의역과 치역에 있어서, 문자 'a'와 같이 서로 공통되는 문자와 문자 와 같이 서로 공통되지 않는 문자가 존재한다. This distinction is defined as a standard according to the character system used in each country. Although this standard does not uniquely match any partial character set for any character, it is possible to distinguish partial character sets such that partial character sets do not have a common element through selection of an appropriate character scheme. For example, the letter 'a' is also used in the English character system, but the same character is used in the German character system. However, Is used in the German character system, but not in the English character system. Therefore, the morphological preservation encryption for the English character system and the morphological preservation encoding for the German character system are the same as those for the character 'a' There are characters that are not common to each other.
어떠한 문자열에 대해 형태보존 암호화를 수행함에 있어서, 문자 'a'를 암호화하는 경우, 이를 어떠한 문자체계로 해석해야 하는가에 대한 문제가 발생한다. 이에 대해 유니코드 지원 시스템에서는 사전에 해석할 문자체계를 미리 지정함으로써, 문자 'a'는 해당 문자체계에 속한다고 결정한다. 이러한 방법은 두 문자체계를 공존시키지 않으므로, 특정 상황에서는 특정한 문자체계로 해석하도록 부가정보를 포함시키기도 한다. In performing the shape preserving encryption for a certain string, when the character 'a' is encrypted, there arises a problem as to what character system should be interpreted. In contrast, the Unicode support system determines in advance that the character 'a' belongs to the corresponding character system by specifying the character system to be interpreted in advance. This method does not coexist with the two-character system, so in some situations it may include additional information to be interpreted as a specific character system.
또 다른 경우로서, 한글은 한국어의 문자체계에서 유일하게 사용한다. 그리고 히라가나는 일본어의 문자체계에서 유일하게 사용한다. 따라서, 한글과 히라가나는 서로 공통요소를 갖지 않는 부분 문자집합으로 구분된다. 이로 인하여 한글과 히라가나로 구성되어 있는 문자열에 대해서는, 각각의 문자를 한글과 히라가나의 문자집합 중 하나에 속한다고 유일하게 구분 할 수 있다. In other cases, Hangul is used only in the Korean character system. And Hiragana is used only in the Japanese character system. Hence, Hangeul and Hiragana are divided into partial character sets which have no common elements. As a result, for strings consisting of Hangeul and Hiragana, each character can be uniquely identified as belonging to one of the character sets of Hangeul and Hiragana.
공존가능한 문자체계로 대표적인 것은 10진수에 대한 숫자체계이다. 예를 들면, 한국의 주소 체계에서는 숫자와 한글을 사용한다. 거대한 지역에 대해서는 한글로 명명하고, 길가에 위치한 건물이나 층의 구분과 같이 복잡하고 많은 대상은 숫자로 명명한다. 특히 거대한 지역이라 할지라도, 우편업무와 같이 주소를 다루기 편하게 하기 위해 우편번호와 같이 숫자를 이용한 번호체계도 이용한다. A typical coexistent character system is a number system for decimal numbers. For example, numbers and Hangul are used in Korea's address system. For large areas, it is called Hangul. Many complex objects such as buildings and floors on the roadside are named by numbers. Numbers are also used, such as postal codes, to make addressing easier, especially in large areas, such as postal services.
한편, 유니코드가 아닌 KS X 1001 완성형 문자집합과 같은 경우에도, 숫자, 한글, 히라가나, 가타카나, 한자와 같은 문자체계에 따른 부분 문자집합을 서로 구분하여 공존 가능하다.On the other hand, even in the case of KS X 1001 complete character set other than Unicode, partial character sets according to character systems such as numbers, Hangeul, Hiragana, Katakana, and Hanja can be distinguished from each other and coexist.
유니코드는 연속되어 있는 문자체계로서, 각국의 문자체계와는 구분이 된다. 바람직하게는 유니코드가 아닌 KS X 1001 완성형 문자집합을 암호화/복호화 시스템 내부 처리용 문자집합으로 사용할 경우, 문자집합을 구성하는 문자의 수가 유니코드보다 상대적으로 KS X 1001 완성형 문자집합이 적은 점에서, 암호화 속도가 상대적으로 빨라질 수 있다. 유니코드에 비해 경우의 수가 상대적으로 적어지는 부분이 있긴 하지만, KS X 1001 완성형 문자집합의 경우에도 2350개의 구성문자가 있는 점에서, 보안성에는 문제가 없다.Unicode is a continuous character system, which is different from the national character system. Preferably, when a non-Unicode KS X 1001 completion character set is used as a character set for internal processing in an encryption / decryption system, the number of characters constituting the character set is relatively smaller than that of Unicode, , The encryption speed can be relatively fast. Although there are some cases where the number of cases is relatively small compared to Unicode, the KS X 1001 completion character set also has 2350 constituent characters, so there is no problem in security.
도 6은 본 발명의 일 실시예에 따른 다중 형태를 보존하는 암호화/복호화 시스템(100)의 암호화/복호화부(140)에 관한 도면으로, 도 5의 문자열이 사전처리부(110)에 의해 각각 숫자, 알파벳, 완성형 한글의 부분 문자집합으로 분류된 결과를 보여준다. 해당 부분 문자집합으로 분류된 문자들은 암호화/복호화부(140)에서 처리할 수 있는 블록 단위로 나뉘어 각각의 블록에 대한 순서에 의해 번호를 부여하여, 이를 카운터값으로 암호화/복호화를 수행한다. 특히, 도 6에서는 최대 한글 4글자가 하나의 블록을 구성하는 경우를 보여준다. 또한, 본 발명은, 암호화/복호화 시스템(100)에서 상기 사전처리부(110)를 제외한 구성부에서, 임의의 입력값에 대해 입력값과 동일한 집합에 속하도록 형태를 보존하여 암호문/평문으로 변환할 수 있다. 이로 인하여 추가적인 저장공간이나 데이터 활용을 위한 데이터 베이스 명령문의 대폭적인 변경 없이도, 특정한 형태의 값을 동일한 형태의 값으로 변환이 가능하게 되는 효과를 도출한다.FIG. 6 is a block diagram of the encryption /
예를 들면, 한글과 숫자로 구성되어 있는 주소 문자열은, 하기 '실시예 5' 항목의 알고리즘 6, 하기 '실시예 4' 항목의 알고리즘 5, 하기 '실시예 1' 항목의 알고리즘 2, 하기 '[알고리즘 1]' 항목의 알고리즘 1과 형태보존암호 FEA-1의 조합을 통하여 다음과 같이 형태보존 암호화 될 수 있다.For example, the address string composed of Korean and numerals is composed of an
"문지로 193가각" → "느쿡뭏 379퓽왠"
유니코드 문자로 구성된 문자열 "문지로 193가각" 에 알고리즘 6을 적용하기 위한 전제조건은 다음과 같다.
본 예시에서는 암호화 대상 문자집합에 대한 처리 순서를 숫자 문자집합, 영문 알파벳 문자집합, 완성형 한글 문자집합의 순으로 규정하고, 나머지 문자집합은 모두 비 암호화 대상으로 한다. 그런데 입력 문자열 "문지로 193가각" 에는 영문 알파벳 문자집합에 속하는 문자가 없으므로 해당 문자집합은 처리를 하지 않는다. 그 결과, 숫자 문자집합을 우선 처리하고 나서 완성형 한글 문자집합에 대한 처리를 수행한다.
문자집합에 속하는 부분 문자집합으로는 숫자 문자집합과 완성형 한글 문자집합, 그리고 특수 문자집합이 있다. 숫자 문자집합은 0부터 9까지 10개의 숫자를 표현하는 문자열의 집합이다. 특히 유니코드의 문자코드 0x0030 부터 0x0039 까지에 해당되는 부분과 대응되는 문자의 집합이다. 완성형 한글 문자집합은 통상적으로는 KS X 1001 에서 정의하고 있는 한글 문자집합을 대상으로 한다. 그러나 본 예시에서는 유니코드의 한글 문자 중에서, KS X 1001 에서 정의된 문자만을 선택하여 집합을 구성한다. 그 결과 유니코드 0xAC00 부터 0xD7A3 의 11172자 중에서 2350자만을 포함하는 집합이 정의된다. 특수 문자집합은 유니코드 문자 0x0000 에서부터 0x0020 까지에 대응되는 33개의 문자로 구성된 집합이며, 특히 0x0020 과 같은 공백 문자를 포함한다.
숫자 문자를 정수에 대응시키는 전단사 함수는 유니코드 문자 0x0030 을 숫자 0에 대응시키고, 이후 0x0039 까지의 문자를 순서대로 9까지의 숫자에 대응시키는 함수이다. 이는 곧 숫자 문자가 0에서부터 9까지 중에서 몇 번째로 나왔는가에서 1을 뺀 값에 대응되며, 숫자 문자가 의미하는 정수에 대응된다. 완성형 한글 문자를 정수에 대응시키는 전단사 함수는 해당 한글 문자가 KS X 1001 에서 정의하고 있는 한글 문자 코드에 의한 순서로 세었을 때 몇 번째로 등장하는가의 값에서 1을 뺀 값에 대응시키는 함수이다. 특수 문자를 정수에 대응시키는 전단사 함수는 유니코드 문자의 코드를 정수로 변환한 값에 대응시키는 함수이다. 이는 해당 특수 문자가 유니코드 문자로서 몇 번째로 등장하였는가의 값에서 1을 뺀 정수에 대응됨을 의미한다.
문자열 "문지로 193가각" 에 알고리즘 6을 적용하기 위한 입력값은 문자열 "문지로 193가각" 과 임의로 생성된 논스의 값이다.
알고리즘 6의 단계 1을 적용시키면, 문자열 "문지로 193가각" 의 각 문자는 각각 완성형 한글 문자, 완성형 한글 문자, 완성형 한글 문자, 특수 문자, 숫자 문자, 숫자 문자, 숫자 문자, 완성형 한글 문자, 완성형 한글 문자임을 알 수 있다.
알고리즘 6의 단계 2를 적용시키면, 문자열 "문지로 193가각" 의 각 문자는 각각 860번째, 1684번째, 704번째의 완성형 한글 문자, 33번째의 특수 문자, 2번째, 10번째, 4번째의 숫자 문자, 1번째, 2번째의 완성형 한글 문자이다. 따라서 문자열의 각 문자는 순서대로 859, 1683, 703, 32, 1, 9, 3, 0, 1 이라는 정수열로 변환할 수 있다.
알고리즘 6의 단계 3에서는 알고리즘 2~5 중 하나를 적용하는데, 여기에서는 알고리즘 5를 적용하기로 한다.
알고리즘 5를 적용하는 전제조건인 암호키와 자연수열에 대한 처리는 사전처리부(110)에서 처리됨이 바람직하다. 그러나 사전처리부(110) 이외의 필요한 시점에 처리하는 것이 가능할 것이다.
본 예시의 경우에 전제조건의 자연수열은 사전처리에 필요한 정보가 현재 단계에서 모두 존재하므로, 부분문자집합의 크기를 나열한 자연수열 2350, 2350, 2350, 33, 10, 10, 10, 2350, 2350 이 전제조건의 자연수열 로 이용된다.
자연수열에 의해 결정되는 함수 는 상기 알고리즘 6의 단계 1 에서의 대응으로 정의된, 문자열에서에 포함된 문자가 어느 부분문자집합에 속하는지를 의미하는 함수이다.
함수 는 특수 문자집합에 대해서는 1을 4에 대응시키는 함수이고, 숫자 문자집합에 대해서는 1부터 3까지의 정수를 5, 6, 7 에 대응시키는 함수이고, 완성형 한글 문자집합에 대해서는 1부터 5까지의 정수를 1, 2, 3, 8, 9 에 대응시키는 함수로서, 입력 문자열에서 해당 글자가 몇 번째에 위치하는가를 의미한다. 이를 번째 위치와 런렝스의 순서쌍으로 표현하면, 각각 (5,3) 과 (1,3), (8,2) 로 표현 가능하고, 문자열의 배열위치와 런렝스의 순서쌍으로 변환하면 각각 (4,3) 과 (0,3), (8,2) 가 되며, 이 대응을 도 3에서 설명하고 있다.
정수열 는 각각의 부분문자집합에 대해서 정의된다. 본 예시에서는 이 48인 경우를 설명한다. 숫자 문자 3글자 표현에 필요한 정보량은 10비트이므로, 한 블록 안에 모두 표현이 가능하다. 따라서 , 로 정의된다. 완성형 한글 문자에 대해서 4글자의 연속한 표현에 필요한 정보량은 45비트이며, 5글자의 연속한 표현에 필요한 정보량은 56비트이다. 따라서 48비트 한 블록으로 표현 가능한 글자 수는 완성형 한글 4글자이다. 그리고 문자열 내의 형식에서 결정한 완성형 한글의 전체 글자 수는 5글자이므로 , , 로 정의된다.
알고리즘 5의 입력값은 평문 정수열 859, 1683, 703, 32, 1, 9, 3, 0, 1 과 알고리즘 6에 입력된 논스의 값이다.
알고리즘 5의 단계 1에서의 처리 결과는, 숫자 문자집합에 대해서 정의되는 부분 정수열은 정수열에서 5, 6, 7번째 정수인 1, 9, 3이 된다. 완성형 한글 문자집합에 대해서 정의되는 부분 정수열은 정수열에서 1, 2, 3, 8, 9 번째 정수로 구성된 정수열 859, 1683, 703, 0, 1 이 된다.
알고리즘 5의 단계 2에서는 각 부분 문자집합의 정수열에 대해 알고리즘 2를 수행한다. 이때 입력하는 평문 문자열은 을 이용하여 정의되는 부분 정수열로 나누어 처리한다. 숫자 문자에 대해서는 정수열 1, 9, 3 에 대해 카운터 값을 의 계산 결과인 0으로 하여 암호화한다. 완성형 한글 문자집합에 대해서는 2개의 정수열 859, 1683, 703, 0 과 1 로 나누어 각각 카운터 값을 1과 2로 하여 암호화한다. 따라서 알고리즘 2의 수행에 대해서는 정수열 1, 9, 3 의 경우와 정수열 859, 1683, 703, 0 의 경우와 정수열 1 의 경우를 나누어 설명한다.
정수열 1, 9, 3 에 대한 알고리즘 2의 전제조건 자연수열은 10, 10, 10 이므로, 의 값은 1000 이다. 알고리즘 2의 단계 1에서 정의한 수학식에 의해 정수 의 값은 193으로 계산된다. 알고리즘 2의 단계 2에서는 알고리즘 1을 이용하여 암호화를 수행하게 된다. 그 결과는 알고리즘 1의 확산함수의 선택과 입력 논스의 값 및 전제조건의 암호값에 의존하여 바뀌게 되는데, 본 예시에서는 특정한 선택의 결과로서 379의 정수값을 얻는 경우를 고려한다. 이어서 알고리즘 2의 단계 3에서 정의된 수학식에 의해 정수 379 로부터 정수열 3, 7, 9 를 얻는다. 이 값은 모두 암호화 대상이므로 알고리즘 2의 단계 4에서 알고리즘 2의 출력값으로서 정수열 3, 7, 9 를 출력한다.
정수열 859, 1683, 703, 0 에 대한 알고리즘 2의 전제조건 자연수열은 2350, 2350, 2350, 2350 이므로, 의 값은 30498006250000 이다. 알고리즘 2의 단계 1에서 정의한 수학식에 의해 정수 의 값은 11157290644550 으로 계산된다. 알고리즘 2의 단계 2에서는 알고리즘 1을 이용하여 암호화한 결과로서, 예를 들면 5292804701843 과 같은 정수가 출력된다. 해당 값을 이용하면 알고리즘 2의 단계 3에서 정의된 수학식에 의해 정수열 407, 1957, 869, 2193 을 얻을 수 있다. 이 값은 모두 암호화 대상이므로 알고리즘 2의 단계 4에서 알고리즘 2의 출력값으로서 정수열 407, 1957, 869, 2193 을 출력한다.
정수열 1 에 대한 알고리즘 2의 전제조건 자연수열은 2350 이므로, 의 값은 2350 이다. 알고리즘 2의 단계 1에서 정의한 수학식에 의해 정수 의 값은 1 으로 계산된다. 알고리즘 2의 단계 2에서는 알고리즘 1을 이용하여 암호화한 결과로서, 예를 들면 1465 와 같은 정수가 출력된다. 해당 값을 이용하면 알고리즘 2의 단계 3에서 정의된 수학식에 의해 정수열 1465 를 얻을 수 있다. 이 값은 모두 암호화 대상이므로 알고리즘 2의 단계 4에서 알고리즘 2의 출력값으로서 정수열 1465 를 출력한다.
이로서 알고리즘 5의 단계 2는 종료되고, 이어서 알고리즘 5의 단계 3이 수행된다. 알고리즘 5의 단계 3에서는 3개의 암호 정수열 3, 7, 9 와 407, 1957, 869, 2193 와 1465 에 대해서 첨자에 의해 정렬을 수행한다. 여기에서 첨자에 의한 정렬이란 함수 의 대응과 수열 에 의해 각 정수열을 구분하였던 것을 알고리즘 5의 입력 정수열에 되돌리는 작업을 의미한다. 따라서 각 암호 정수열의 정수를 알고리즘 5에 입력된 평문 정수열 859, 1683, 703, 32, 1, 9, 3, 0, 1 에 되돌리면 407, 1957, 869, 32, 3, 7, 9, 2193, 1465 와 같은 정수열을 얻을 수 있다.
알고리즘 5의 단계 4에서는 정수열 407, 1957, 869, 32, 3, 7, 9, 2193, 1465 를 출력하며, 이것으로 알고리즘 6의 단계 3이 종료된다.
알고리즘 6의 단계 4에서는 정수열 407, 1957, 869, 32, 3, 7, 9, 2193, 1465 를 문자열로 변환한다. 이 변환으로 얻어지는 문자열은 408번째, 1958번째, 870번째 완성형 한글 문자에 이어서 32번째 특수 문자, 4번째 숫자 문자, 8번째 숫자문자, 10번째 숫자문자, 그리고 2194번째, 1466번째 완성형 한글문자로 구성된 문자열이므로 "느쿡뭏 379퓽왠" 과 같이 완성된다.
알고리즘 6의 단계 5에서는 문자열 "느쿡뭏 379퓽왠" 을 출력하는 것으로 알고리즘 6을 종료한다.
본 예제에서, 알고리즘 1의 암호화 함수 대신의 복호화 함수를 이용함으로써, 암호화와 동일한 과정을 통해 복호화를 수행할 수 있다.
도 7은 본 발명인 형태보존 암호 기반 카운터 모드 이용 암호화/복호화 시스템에 관한 도면으로, 도 7을 참고하여 설명하면, 상기 암호화/복호화 시스템(100)은, 기존 형태보존 암호화 시스템과는 달리 카운터 모드 이용 암호화/복호화부(140)를 구성하여 암호화/복호화하는 시스템인 점에서 그 차이가 있다.
도 8은 본 발명의 다른 실시예에 따른 다중 형태를 보존하는 암호화/복호화 시스템(100a)에 관한 도면으로, 도 8을 참고하여 설명하면, 모두 다른 형태로 암호화 될 수 있도록 인덱스로서 서로 다른 카운터값을 부여하고, 인덱스로서 각각의 카운터값의 정보는 트윅값에 포함시켜 암호화 및 복호화를 수행하는 변형 카운터 모드 기반의 형태 보존 암호화/복호화 시스템을 말한다.
이러한 다중 형태를 보존하는 암호화/복호화 시스템(100a)은, 설정부(170), 난수 비트열 생성부(180) 및 암호결합부(190)를 포함할 수 있다.
상기 설정부(170)는, 상기 암호화/복호화 시스템의 초기화 시 암호화/복호화에 사용하는 함수를 규정하는 구성을 말한다.
상기 난수 비트열 생성부(180)는, 카운터값을 이용하여 난수 비트열을 만드는 구성을 말한다.
상기 암호결합부(190)는, 상기 난수 비트열 생성부(180)에서 생성한 난수 비트열을 이용하여 암호화값을 만드는 구성을 말한다.
상기 설정부(170)는, 상기 다중 형태를 보존하는 암호화/복호화 시스템(100a)에서 사용할 가변 블록 암호화 함수, 제1 확산 함수 및 제2 확산 함수를 제공하는 함수 제공부를 포함할 수 있다.
상기 가변 블록 암호화 함수는 트윅값이 이용 가능한 형태보존 암호화 함수, 블록암호를 포함한 메시지 인증 코드 또는 암호키를 포함한 메시지 인증 코드를 포함할 수 있다. 상기 설정부(170)의 구성을 통해 키 스케쥴링을 반복하지 않도록 트윅값에 요소데이터 사이의 관계 정보를 포함시켜 암호화하도록 함으로써, 데이터에 대한 암호화/복호화 속도의 저하 문제를 해결하는 효과를 도출할 수 있게 된다.
"With the rubbing of 193" → "Feeling 379 퓽Wan"
The precondition for applying
In this example, the processing order for the character set to be encrypted is defined in the order of a numeric character set, an alphabet character set, and a complete character set, and the remaining character sets are all unencrypted. However, since there is no character belonging to the English alphabet character set in the input string "193 with rubbing", the corresponding character set is not processed. As a result, the numeric character set is processed first, and then processing for the complete Hangeul character set is performed.
Partial character sets belonging to a character set include a numeric character set, a complete character set, and a special character set. A numeric character set is a set of strings representing ten numbers from 0 to 9. In particular, it is a set of characters corresponding to the portion corresponding to the character codes 0x0030 to 0x0039 of Unicode. The complete Hangul character set usually targets the Hangul character set defined in KS X 1001. In this example, however, only characters defined in KS X 1001 are selected from Unicode Hangul characters to form a set. As a result, a set containing only 2350 characters out of 11172 characters from Unicode 0xAC00 to 0xD7A3 is defined. A special character set is a set of 33 characters that correspond to the Unicode characters 0x0000 through 0x0020, and in particular contain a space character such as 0x0020.
A front-end function that maps a numeric character to an integer is a function that maps the Unicode character 0x0030 to the
The input value for applying the
When
When
In
It is preferable that the
In the case of the present example, since the information necessary for the pre-processing exists in the present stage in the natural sequence of the prerequisite conditions, the number of natural sequences 2350, 2350, 2350, 33, 10, 10, The natural sequence of this precondition .
Function determined by natural sequence Is a function indicating which partial character set belongs to the character included in the character string, which is defined as the correspondence in the
function Is a function that maps 1 to 4 for a special character set and a function that maps
Water heat Is defined for each partial character set. In this example The case of 48 is explained. Since the amount of information required to represent a letter character is 10 bits, it can be expressed in one block. therefore , . For the complete Hangul character, the amount of information required for continuous representation of 4 characters is 45 bits, and the amount of information required for continuous representation of 5 characters is 56 bits. Therefore, the number of characters that can be expressed in one block of 48 bits is 4 characters of complete Korean alphabet. The total number of characters in the complete Hangul character decided by the format in the string is 5 letters , , .
The input values of the
As a result of the processing in the
In
Since the prerequisite natural sequence of
Since the prerequisite natural sequence of the
The prerequisite natural sequence of
In
In
In
In this example, by using a decryption function instead of the encryption function of the
7, the encryption /
FIG. 8 is a diagram of an encryption /
The encrypting /
The
The random number bit
The
The
The variable block encryption function may include a message authentication code including a shape preservation encryption function with tweak value available, a message authentication code including a block secret, or an encryption key. It is possible to obtain the effect of solving the problem of lowering the encryption / decryption rate for the data by including the relationship information between the element data in the tweak value so as not to repeat the key scheduling through the configuration of the
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
도 9는 본 발명인 난수 비트열 생성부(180)와 암호 결합부(190)에 관한 도면으로, 도 9를 참고하여 설명하면, 상기 난수 비트열 생성부(180)는, 카운터값에 확산 함수를 적용하여 확산값을 생성하는 확산값 생성부(181) 및 가변 블록 암호화함수를 이용하여 확산값을 암호화하는 확산값 암호화부(182)를 포함할 수 있다.9, the random number bit
상기 확산값 생성부(181)는, 논스값과 카운터값의 결합값을 카운터값으로 하여 확산 함수를 적용할 수 있다.The
상기 확산값 암호화부(182)는 확산값 암호값이 치역에 속하면, 상기 암호 결합부(190)로 확산값 암호값을 전송하는 구성을 말한다. 만약 상기 확산값 암호화부(182)의 제1 확산 함수를 적용한 확산값 암호값이 치역에 속하지 않으면, (a) 확산값 암호값에 제2 확산 함수를 적용하고, (b) 확산값 암호값이 정의역에 속하도록 모듈로 연산을 하며, (c) 확산값 암호값이 치역에 속할 때까지 확산값 암호값을 반복하여 가변 블록 암호화하여, 암호 결합부(190)로 치역에 속하는 확산값 암호값을 전송하는 구성을 말한다.The diffusion
상기 확산값 생성부(181)에 적용될 함수는, 카운터값에 대해 카운터값을 변경시키지 않는 동치함수, 카운터값을 비트열로서 순환시키는 함수, 부분 블록의 순서를 변경하는 함수, 카운터값에 대한 해시값을 바람직한 확산값 크기에 맞춰 자르는 함수, 임의의 트윅을 이용한 가변 블록 암호 함수, 모듈로에 의한 몫과 나머지 값을 모듈로의 비트 크기에 맞게 정렬하는 함수 또는 이 함수들의 합성함수를 포함할 수 있다.The function to be applied to the
그리고, 상기 암호 결합부(190)는, 난수 비트열 생성부(180)에서 암호 결합부(190)로 전송된 확산값 암호값에 입력값을 결합하여 암호화값을 생성할 수 있다. The
또한, 암호문/평문을 생성하기 위해 상기 암호화값을 치역에 속하도록 모듈로 연산할 수 있다.In addition, the encryption value can be modulo-coded to belong to the range to generate ciphertext / plaintext.
이하에서는, 상기 난수 비트열 생성부(180)와 상기 암호 결합부(190)에서 사용하는 알고리즘 1에 대해 설명한다. 상기 난수 비트열 생성부(180)의 경우 알고리즘 1의 단계 1 내지 4와 관련되고, 상기 암호 결합부(190)의 경우 알고리즘 1의 단계 5 및 6이 관련된다.Hereinafter, the
[알고리즘 1]
전제조건:
: 암호화 함수에 이용되는 키이다. 랜덤으로 생성되는 것이 바람직하다.
: 평문 집합의 요소 개수이며 암호문 집합의 요소 개수와 동일하다.
입력:
: 평문으로서, 부등식 을 만족하는 정수이다.
: 카운터값으로서 비트 값이다.
: 논스값으로서 비트 값이다. 랜덤으로 생성되는 것이 바람직하다.
출력:
: 암호문으로서, 부등식 을 만족시키는 정수이다.
단계 :
1.
2.
3.
4. 만약 을 만족시키면:
a.
b.
c.
d. 만약 을 만족시키면 단계 4.c로 이동
5.
6. 결과값으로 를 반환
상기 알고리즘에서 은 의 비트길이를 의미한다. 따라서 부등식을 만족시킨다.
상기 알고리즘에서 은 트윅의 비트길이를 의미한다. 해당 비트길이는 알고리즘 1에서 이용하는 암호화 함수에 의해 결정되는 값이다.
상기 알고리즘에서 이용된 수학식 은 비트열 에서 최상위 번째 비트부터 번째 비트까지의 부분 비트열을 의미한다.
상기 알고리즘에서 이용된 수학식 는 트윅 값이 이용가능한 블록 암호화 함수이다. 특히 비트의 블록 를 비트의 트윅 를 이용하여 비트의 암호문을 생성한다. 이러한 암호화 함수는 예를 들면 하기와 같이 구성될 수 있다.
1) 형태보존 암호화 함수
2) : 는 를 키로 하는 128비트 블록을 암호화 하는 함수이며, 트윅 는 최대 128비트의 비트열이다. 또한 연산자 는 오른쪽 시프트 연산이며, 생성 비트열에서 부분 비트를 임의로 결정하는 함수로 대체될 수 있다.
3) : 은 를 키로 하는 메시지 인증 코드이다. 는 트윅으로서 길이는 가변이며, 는 의 출력값의 비트길이이다. 여기에서도 2)의 경우와 마찬가지로 오른쪽 시프트 연산자 는 생성 비트열에서 부분 비트를 임의로 결정하는 함수로 대체할 수 있다.
상기 수학식의 와 는 각각 제1 확산 함수와 제2 확산 함수이다. 비트 입력값에 대해 비트 값을 결정론적으로 출력한다. 확산 함수 과 는 동일한 함수로 설정할 수 있으나, 다른 함수임이 바람직하다. 예를 들면 하기와 같이 구성될 수 있다.
1) : 동치함수
2) : 비트열을 오른쪽으로 비트 순환시키는 함수
3) : 비트열을 비트 단위 블록으로 쪼개어 각 블록의 순서를 역순으로 하는 함수.
4) : 비트 출력값을 갖는 해시함수
5) : 비트 트윅 를 이용한 블록 암호화 함수
알고리즘 1은 카운터값이 0에서 시작하여 동일한 값으로 되돌아오기 직전까지의 수열에 대해 사용할 수 있다. 해당 수열의 최대 주기는 이다. 특히, 동일한 입력 평문값 에 대해 카운터를 1씩 증가시켜 얻어지는 출력값 의 수열은, 암호함수 가 출력값에 대해 충돌확률이 충분히 작다면, 주기를 최대의 경우 이 되도록 구성할 수 있다.
알고리즘 1은 단계 1-4와 같이 카운터값으로부터 암호키 에 대한 지식 없이는 계산적으로 예측 불가능한, 을 만족하는 정수를 생성하는 부분과, 단계 5와 같이 해당 비트열을 입력값 와 결합하여 암호화를 수행하는 부분으로 구성된다.
단계 4의 결과, 값은 의 범위를 만족시킨다. 이 값이 어떠한 값으로 대응될지에 대해서는 단계 4에서 결정된 트윅값 에 의해 다양한 변화를 줄 수 있다.
단계 4에서, 임의의 초기값 에 대해 함수 의 재귀적 호출로 얻어지는 수열은 의 약수를 주기로하여 반복된다. 이때 초기치를 단계 4에서 값을 의 만족시키는 범위로 변경하게 되면, 해당 주기 내에서 반복의 종료 조건을 만족시키는 경우가 반드시 존재한다. 만약 초기값이 이라면 반복의 종료 조건 을 만족시키지 않는 함수 가 존재한다.
단계 5의 모듈로 연산 은 의 값이 보다 큰 경우에 을 빼는 연산으로 대체할 수 있다.
복호화 알고리즘은 단계 5 의 연산을 로 바꿈으로서 정의할 수 있다.
[Algorithm 1]
precondition:
: This is the key used for the encryption function. It is preferably generated randomly.
: The number of elements in the plaintext set and equal to the number of elements in the set of ciphertexts.
input:
: As a plain text, inequality Lt; / RTI >
: As a counter value Bit value.
: As a nonce value Bit value. It is preferably generated randomly.
Print:
: Cipher text, inequality Lt; / RTI >
step :
One.
2.
3.
4. If :
a.
b.
c.
d. if If it satisfies, go to step 4.c
5.
6. As the result Return
In the algorithm silver Lt; / RTI > Therefore, Lt; / RTI >
In the algorithm Means the bit length of the tweak. The bit length is a value determined by the encryption function used in
In the algorithm used in the above equation Bit string At the top From the ith bit Lt; th > bit.
In the algorithm used in the above equation Is a block encryption function with tweak values available. Especially Block of bits To Bit tweak Using Bit cipher text. This encryption function can be configured as follows, for example.
1) Shape-preserving cryptographic function
2) : The Is a function for encrypting a 128-bit block using a key Is a bit string of a maximum of 128 bits. Also, Is a right shift operation, It can be replaced with a function that arbitrarily determines the bit.
3) : silver As a key. Is a tweak, the length is variable, The Is the bit length of the output value. Here, as in the case of 2), the right shift operator Lt; RTI ID = 0.0 > The bit can be replaced with a function that randomly determines.
In the above equation Wow Are the first diffusion function and the second diffusion function, respectively. For bit input values And outputs the bit value deterministically. Diffusion function and Can be set to the same function, but it is preferable that the function is another function. For example, as follows.
One) : Equivalent function
2) : Move the bit string to the right Functions that cycle bits
3) Bit string A function that breaks up into blocks of bits and reverses the order of each block.
4) : Hash function with bit output value
5) : Beatwick Block encryption function using
As a result of
In
Modulo operation in
The decryption algorithm uses the operation of
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
이상으로 상기 난수 비트열 생성부(180)와 상기 암호결합부(190)에서 사용하는 알고리즘 1에 대해 설명을 마치고, 이하 본 발명에 대한 설명을 계속 이어가겠다.Hereinafter, the random number bit
도 9는 상기 언급한 바와 같이, 본 발명인 난수 비트열 생성부(180)와 암호 결합부(190)에 관한 도면으로, 도 9를 참고하여 설명하면, 모두 다른 형태로 암호화 될 수 있도록 인덱스로서 서로 다른 카운터값을 부여하고, 인덱스로서 각각의 카운터값의 정보는 트윅값에 포함시켜 암호화 및 복호화를 수행하는 암호화/복호화 시스템을 말한다. 9 is a diagram illustrating a random number bit
같은 형태의 데이터 집합을 암호화 할 때, 각각의 요소 데이터에 대해 개별적으로 키를 설정하게 되면, 데이터 집합의 크기에 비례하는 안전한 저장공간이 필요하고, 각각의 키를 관리하기 위한 시스템은 매우 복잡해질 수밖에 없다. 또한 요소 데이터의 크기가 작은 경우 데이터를 보관하기 위한 공간보다 키를 보관하기 위한 공간이 훨씬 더 거대해질 수도 있다. 따라서 요소 데이터를 암호화하기 위해 필요한 암호키나 트윅값과 같은 매개변수를 요소데이터 사이의 관계에 의해 정의하는 방법이 저장 공간의 측면에서 바람직하다. 이때 암호키를 요소데이터에 의존하여 변경하는 방법은, 대부분의 대칭키 암호에서 수행하는 키 스케쥴링 과정을 키가 변경될 때마다 수행되어야 하기 때문에 데이터에 대한 암호화 및 복호화 속도를 크게 저하시킨다. When encrypting data sets of the same type, setting individual keys for each element data requires secure storage space proportional to the size of the data set, and the system for managing each key becomes very complex There is no other choice. Also, if the size of the element data is small, the space for storing the key may be much larger than the space for storing the data. Therefore, a method of defining a parameter such as a cryptographic key or a tweak value necessary for encrypting element data by a relation between element data is preferable in terms of storage space. At this time, the method of changing the encryption key depending on the element data greatly degrades the encryption / decryption rate for the data since the key scheduling process performed in most symmetric key cryptosystems must be performed every time the key is changed.
해당 속도 저하 문제를 해결하기 위해, 본 발명에서는 키 스케쥴링을 반복하지 않도록 트윅값에 요소데이터 사이의 관계정보를 포함시켜 암호화하도록 한다. In order to solve the speed reduction problem, in the present invention, the tweak value is encrypted by including the relationship information between the element data so as not to repeat the key scheduling.
예를 들면, 요소 데이터는 요소 데이터의 순서, 즉 단조증가하는 인덱스를 주키로 하여 각각의 데이터가 유일하게 구분될 수 있고, 형태보존 암호화에서 인덱스 정보를 트윅값의 일부로 이용하게 되면, 각각의 데이터가 비록 같은 값이라 할지라도 서로 다른 출력값으로 암호화 할 수 있다. 또한, 암호키는 데이터 집합에만 의존하여 설정하므로, 기반이 되는 대칭키 암호에 대해서 단 한번의 키 스케쥴링만으로, 데이터 집합에 속하는 임의의 여러 요소에 대하여 암호화 및 복호화를 수행할 수 있다.For example, the element data can be divided into a plurality of data items, each of which can be uniquely identified by ordering element data, that is, monotone increasing indexes. When index information is used as part of the tweak value in the shape preservation encryption, Can be encrypted with different output values, even if they are the same value. Also, since the encryption key is set depending only on the data set, encryption and decryption can be performed on any arbitrary element belonging to the data set by only one key scheduling with respect to the underlying symmetric key encryption.
가변 블록 암호화 함수를 카운터 모드로 이용하는데 있어서, 기존의 블록암호와 같이 평문 입력값만 변화를 주게 되면, 평문 입력값의 크기가 상대적으로 작아지므로 그 크기에 따라 보안강도가 매우 약해진다. In using the variable block encryption function in the counter mode, if only the plain text input value is changed as in the conventional block cipher, the size of the plain text input value becomes relatively small, so the security strength becomes very weak according to the size thereof.
예를 들면, 4비트를 입력으로 하는 가변 블록 암호화 함수의 입력값은 모두 16가지 경우만이 존재하며, 출력값도 16가지 경우만이 존재한다. 이때, 카운터값이 1씩 증가한다고 할 때, 16을 주기로 하여 카운터에 의한 입력값은 반복되므로 결과값도 반복된다. 이는 암호키로서 128비트 이상의 정보를 이용한 것에 비하면 매우 약한 보안강도를 갖게 되는 것이다. For example, there are only 16 input values of the variable block cipher function having 4 bits as input, and there are only 16 output values. At this time, when the counter value is incremented by 1, the input value by the counter is repeated with the interval of 16, so the result value is repeated. This results in a very weak security strength compared with the use of information of 128 bits or more as a cryptographic key.
따라서, 본 발명에서는, 예를 들면, 상기 예시에서의 문제의 조건을 만족하는 경우에 대해서 순서가 있는 16개 이상의 데이터에 대해 안전한 암호화를 하기 위해서는 4비트 이외의 나머지 순서 정보를 트윅에 담아 결과값이 반복되는 주기를 늘린다. 다만, 본 발명의 경우, 평문으로 넣을 수 있는 값의 형태 및 길이에 대한 제한이 없는 점에서 상기 예는 일 실시예에 불과하다.Therefore, in the present invention, for example, in order to securely encrypt 16 or more data in order when the condition of the problem in the above example is satisfied, the remaining sequence information other than 4 bits is put in the tweak, This cycle is repeated. However, in the case of the present invention, the above example is merely an example in that there is no restriction on the type and length of values that can be inserted into a plain text.
2진수가 아닌 범위의 값을 암호화하기 위해서, 예를 들면, 정보통신단체표준 TTAK.KO-12.0275에서 설명하는 FEA에서는 CW(Cycle-Walking)라는 방법을 추천한다. 이때, 카운터 모드를 구현하기 위해 다음과 같은 문제를 발견하고 해결하기 위한 구성을 할 수 있다.In order to encrypt a value in a range other than a binary number, for example, CEA (Cycle-Walking) is recommended in the FEA described in ITU-T Recommendation TTAK.KO-12.0275. At this time, in order to implement the counter mode, the following problems can be found and a configuration for solving the problems can be made.
첫째, 논스와 카운터의 결합값 을 치역의 요소 개수로 나눔으로서 몫과 나머지로 분해하여 각각을 트윅과 평문으로하여 암호화 할 수 있다. 그러나 128비트 정수의 나눗셈과 같은 연산을 한번 수행해야 한다는 점은 성능적으로 고려해봐야 한다. 이 방법은, 알고리즘 1에서 제1 확산 함수 을 상위 비트의 값을 나머지로 하고 하위 비트의 값을 몫으로 하는 함수로 정의하고, 제2 확산 함수 를 에만 대응시키는 상수 함수로 정의하여 구현할 수 있다.
둘째, 첫번째 경우에서 일반적인 128비트 정수의 나눗셈을 피하기 위해 을 에 의한 나눗셈을 이용하는 것을 고려할 수 있다. 이때 에 의한 나눗셈은 비트열에 대한 시프트 연산으로 구현할 수 있으므로, 나눗셈을 매우 빠르게 처리할 수 있다는 장점이 있다. 이렇게 정의한 암호화 함수의 치역의 요소 개수는 최종적으로 출력해야 하는 치역의 요소 개수와 서로 다르게 되므로, CW 를 이용해야 한다. 그러나 의 에 의한 나눗셈의 나머지는 정의역의 요소 개수보다 큰 값을 가질 수 있으므로, 상기 알고리즘 1에서 CW의 종료 조건 을 만족시키지 않는 가 FEA 에 대해서도 존재하므로, FEA의 CW가 종료하지 않을 수 있다. 이 경우에 의 에 의한 나눗셈의 나머지에 대해서 비트 정수의 나눗셈을 이용할 수 있다. 비트 정수의 나눗셈은 128비트 정수의 나눗셈보다 빠르게 처리할 수 있는 경우가 있다는 장점이 있다. 그러나 개의 연속한 암호값에 대해서 후반 개의 값은 전반 개의 반복이므로, 취약점을 갖는다는 문제가 있다.
셋째, 두번째 경우에서 가까운 과거의 출력값이 상관관계를 갖는 것을 막기 위해서, CW에 이용되는 입력값을 제2 확산 함수 를 이용하여 랜덤하게 변경시켜 준다면, 주기 내에서의 직접적인 반복은 없앨 수 있다. 하지만, 여전히 개를 단위로 하여 치역의 값이 반드시 1번 또는 2번 등장한다는 특징에 의해 통계적인 추측이 가능하다는 취약점을 갖는다.
넷째, 주기 내에서의 통계적인 추측을 어렵게 하기 위해서, 제1 확산 함수 을 좋은 성질을 갖는 함수로 선택한다면, 수로서 1씩 증가하는 의 변화를 비트열로서 의 전체로 균등하고 랜덤하게 확산시킬 수 있다. 그 결과로서 개를 단위로 하여 존재하는 통계적인 성질을 없앨 수 있다.
First, the combined value of the nonce and counter Can be divided into a quotient and a remainder by dividing by the number of elements of the range, and can be encrypted by tweaking and plain text, respectively. However, performance must be considered when performing operations such as division of 128-bit integers once. In this method, the first diffusion function Top Let the value of the bit be the remainder, The value of the bit is defined as a quotient, and the second diffusion function To As a constant function.
Second, to avoid the division of a common 128-bit integer in the first case of May be considered. At this time Division can be implemented by a shift operation on the bit stream, so that the division can be performed very quickly. The number of elements of the range of the cryptographic function defined above is different from the number of elements of the final output range, so CW should be used. But of The rest of the division by CW may have a value larger than the number of elements of the domain, Does not satisfy Is also present for FEA, CW of FEA may not be terminated. In this case of For the remainder of division by You can use bit integer division. The advantage of division of bit integers is that they can be processed faster than division of 128-bit integers. But For consecutive cipher values, The values of There is a problem of having a vulnerability.
Third, in order to prevent the output values of the past past from having a correlation in the second case, the input value used for the CW is called the second diffusion function , The direct repetition within the period can be eliminated. However, It has a vulnerability that statistical speculation can be made by the feature that the value of the range must appear once or twice in units of dogs.
Fourth, in order to make statistical guessing in the cycle difficult, the first diffusion function Is selected as a function having a good property, As a bit string It is possible to uniformly and randomly diffuse the light beams. As a result The statistical properties existing in units of dogs can be eliminated.
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
삭제delete
[알고리즘 2]
전제조건 :
: 암호함수에 이용되는 키로서 랜덤으로 생성되는 것이 바람직하다.
: 개의 자연수.
: 알고리즘 1의 전제조건에 이용되는 값으로서 곱셈값 이다.
입력 :
: 평문 정수열로서 각각 를 만족한다.
: 카운터값으로서 비트 값이다.
: 논스값으로서 비트 값이다. 랜덤으로 생성되는 것이 바람직하다.
출력 :
: 암호 정수열로서 각각 를 만족한다.
단계 :
1. 평문열 을 이용하여 정수
를 계산한다.
2. 알고리즘 1에 대해 , , 을 입력으로 하여 결과로서 정수 를 얻는다.
3. 정수 로부터 정수열 를 각각 로 계산한다. 여기에서 는 실수 에 대해 보다 크지 않은 최대의 정수이고, 는 정수 와 에 대해 를 로 나눈 나머지값이다.
4. 입력 정수열 전체가 암호화 대상이라면, 를 출력한다. 만약 가 암호화 대상이 아닌 경우에는 정수열 에서 를 제외하여 를 출력한다.
복호화의 경우에는 단계 2에서 알고리즘 1의 암호화 함수 대신 복호화 함수를 이용하면 된다.
상기 알고리즘 2에서와 같이 개의 자연수 를 알고리즘 1의 전제조건 로서 자연수의 곱셈값 을 이용하는 방법과는 달리, 하기 실시예 2 와 같이 알고리즘 1을 이용하는 방법도 있다.
[Algorithm 2]
precondition :
: It is preferable to generate randomly as a key used for a cryptographic function.
: Natural number.
: The multiplication value as a value used in the precondition of
input :
: Each of the plaintext constants .
: As a counter value Bit value.
: As a nonce value Bit value. It is preferably generated randomly.
Print :
: As cipher constants, respectively .
step :
1. Plain column heat Using an integer
.
2. About
3. Integer From the heat pump Respectively . From here Is a mistake About Is the largest integer not greater than < RTI ID = 0.0 > Is an integer Wow About To .
4. Input water heat If the whole is to be encrypted, . if Is not an encryption target, in Except .
In the case of decryption, a decryption function may be used in place of the encryption function of the
As in the
[알고리즘 3]
전제조건 :
: 암호함수에 이용되는 키로서 랜덤으로 생성되는 것이 바람직하다.
: 개의 자연수.
: 자연수열 를 중복 없는 자연수열 로 고쳐 적었을 때, 에 의해 정의되는 함수. 정의역을 로 하고 치역을 로 한다. 이 결정되는 것으로서 유일하게 결정될 수 있다.
: 함수 의 역상에 의한 의 분할은 개의 집합 으로 구성된다. 각 에 대해서 역상 의 요소수를 라 하였을 때, 역상 의 요소를 크기순으로 나열한 정수열을 라고 썼을 때, 정의역을 로 하고 치역을 로 하는 단사이며 단조증가하는 함수 를 정의할 수 있다. 이 결정되는 것으로서 유일하게 결정 될수 있다. 한편, 정의에 의해 합성함수 는 정의역의 모든 요소를 에 대응시키는 상수 함수이므로, 는 모두 와 같은 자연수이다.
입력 :
: 평문 정수열로서 각각 를 만족한다.
: 논스값으로서 비트 값이다. 랜덤으로 생성되는 것이 바람직하다.
출력 :
: 암호 정수열로서 각각 를 만족한다.
단계 :
1. 각각의 에 대해서 부분 정수열 을 구성한다.
2. 각각의 에 대해서 를 계산한다.
3. 각각의 에 대해 알고리즘 1을 수행한다. 여기에서 전제조건 은 로 한다. 평문은 로 입력하고 카운터값 는 로 입력하며 논스값은 으로 입력하여 개의 암호문 를 얻는다.
4. 각각의 와 에 대해서 를 계산한다. 만약 어떠한 에 대해서 암호화 대상이 아니라면, 각 에 대해서 로 정의한다. 여기에서 는 실수 에 대해 보다 크지 않은 최대의 정수이고, 는 정수 와 에 대해 를 로 나눈 나머지값이다.
5. 각 에 대해서 얻어진 정수열 를 모두 모아 첨자에 의해 정렬을 수행하여 을 얻는다.
6. 정수열 를 출력한다.
복호화의 경우에는, 단계 3에서 알고리즘 1을 수행할 때, 복호화 함수를 이용하면 된다.
상기 알고리즘 2 와 3 에서 가정되어 있는 사항으로서, 형태보존 암호는 임의의 크기를 갖는 수에 대해 적용 가능하다는 것이 있다. 그러나 형태보존 암호가 한번에 처리할 수 있는 수의 크기를 제한하는 것이, 실제 구현상에 있어서는 더 효율적인 구현을 이끌어 낸다.
형태보존 암호가 비트까지 처리할 수 있다고 가정하면, 다음과 같은 방법으로 긴 입력 정수열을 여러 개의 부분 정수열로 나누어 각각에 대해 암호화 및 복호화를 수행할 수 있다.
[Algorithm 3]
precondition :
: It is preferable to generate randomly as a key used for a cryptographic function.
: Natural number.
: Natural sequence Natural sequence without redundancy When you rewrite it, A function defined by. Domain And . Can be determined solely as being determined.
: function By the reversed phase of The division of A set of . bracket Inverse to The number of elements in In this case, A sequence of elements in ascending order of magnitude When you write, And And a monotone increasing function Can be defined. Can be determined solely as being determined. On the other hand, by definition, All elements of the domain And therefore, All Is a natural number.
input :
: Each of the plaintext constants .
: As a nonce value Bit value. It is preferably generated randomly.
Print :
: As cipher constants, respectively .
step :
1. Each Lt; RTI ID = 0.0 > .
2. Each about .
3. Each
4. Each Wow about . If any Is not an encryption target, about . From here Is a mistake About Is the largest integer not greater than < RTI ID = 0.0 > Is an integer Wow About To .
5. Each The obtained pseudo heat And the alignment is performed by subscripts .
6. Pump heat .
In the case of decoding, when performing the
It is assumed in
Shape preservation password It is possible to divide a long input sequence into several partial sequences and perform encryption and decryption for each.
[알고리즘 4]
전제 조건 :
: 암호함수에 이용되는 키로서 랜덤으로 생성되는 것이 바람직하다.
: 개의 자연수.
: 정수열. 에서부터 를 만족하도록 순차적으로 선택한다. 자연수열 의 분할에 대한 곱이 앞에서부터 제일 크게 되도록 선택하는 방법을 이용해 에 대해 유일하게 결정할 수 있다.
입력 :
: 평문 정수열로서 각각 를 만족한다.
: 논스값으로서 비트 값이다. 랜덤으로 생성되는 것이 바람직하다.
출력 :
: 암호 정수열로서 각각 를 만족한다.
단계 :
1. 정수열 에서 각 에 대해 를 이용하여 부분 정수열 를 첨자에 의해 선택한다.
2. 각 에 대하여 평문 정수열로서 부분 정수열 를 입력하고, 카운터값으로서 을 입력하고 논스값으로 을 입력하여 알고리즘 2를 수행한다. 알고리즘 2의 출력으로서 암호 정수열 를 얻는다.
3. 각 에 대한 암호 정수열 를 모두 모아 첨자에 의해 정렬하여 정수열 를 얻는다.
4. 정수열 를 출력한다.
[Algorithm 4]
precondition :
: It is preferable to generate randomly as a key used for a cryptographic function.
: Natural number.
: Integer. From Are sequentially selected. Natural sequence Using the method of selecting the product of the division of ≪ / RTI >
input :
: Each of the plaintext constants .
: As a nonce value Bit value. It is preferably generated randomly.
Print :
: As cipher constants, respectively .
step :
1. Pump heat In each About , Are selected by subscripts.
2. Each A partial padded string And as a counter value, And enter the value To perform
3. Each Ciphers Are collected and sorted by subscripts, .
4. Water heat .
[알고리즘 5]
전제 조건 :
: 암호함수에 이용되는 키로서 랜덤으로 생성되는 것이 바람직하다.
: 개의 자연수. 중복 없는 자연수열 로 고쳐 적을 수 있다.
, : 알고리즘 3의 전제조건에서와 같이 에 의해 결정되는 함수이다.
: 에 대해 각각 정의되는 정수열. 에서부터 와 를 만족하도록 순차적으로 선택한다. 여기에서 는 역상 의 요소수이다. 자연수열 의 분할에 대한 곱이 앞에서부터 제일 크게 되도록 선택하는 방법을 이용해 에 대해 유일하게 결정할 수 있다.
입력 :
: 평문 정수열로서 각각 를 만족한다.
: 논스값으로서 비트 값이다. 랜덤으로 생성되는 것이 바람직하다.
출력 :
: 암호 정수열로서 각각 를 만족한다.
단계 :
1. 각각의 에 대해서 부분 정수열 을 구성한다.
2. 각각의 와 에 대해서, 개의 를 전제조건의 자연수열로 하고, 부분 정수열 을 평문 정수열로 입력하고 을 카운터로 입력하여 알고리즘 2를 수행한다. 알고리즘 2의 출력으로 암호 정수열 를 얻는다.
3. 각각의 와 에 대한 암호 정수열 를 모두 모아 첨자에 의해 정렬하여 정수열를 얻는다.
4. 정수열 를 출력한다.
[Algorithm 5]
precondition :
: It is preferable to generate randomly as a key used for a cryptographic function.
: Natural number. Without duplication Natural sequence Can be rewritten as.
, : As in the precondition of
: A string of integers, each defined for. From Wow Are sequentially selected. From here Inverse phase of Number of elements. Natural sequence Using the method of selecting the product of the division of ≪ / RTI >
input :
: Each of the plaintext constants .
: As a nonce value Bit value. It is preferably generated randomly.
Print :
: As cipher constants, respectively .
step :
1. Each Lt; RTI ID = 0.0 > .
2. Each Wow about, doggy As a natural sequence of preconditions, Into a plaintext string Is input to the counter and the
3. Each Wow Ciphers Are collected and sorted by subscripts, .
4. Water heat .
[알고리즘 6]
전제 조건 :
: 암호화 함수에 이용되는 키이다. 랜덤으로 생성되는 것이 바람직하다.
: 문자집합에 속하는 부분 문자집합.
: 각 는 부분 문자집합 의 요소수.
: 부분 문자집합 의 요소를 정수의 부분집합 의 요소에 일대일로 대응시키는 전단사 함수.
입력 :
: 개의 문자로 구성된 문자열로서 각각의 문자 는 어떠한 부분 문자집합의 요소이다.
: 카운터값으로서 비트 값이다. 알고리즘 2를 이용하는 경우에 필요하다.
: 논스값으로서 비트 값이다. 랜덤으로 생성되는 것이 바람직하다.
출력 :
: 개의 문자로 구성된 문자열. 각각의 문자 는 문자 와 동일한 부분 문자집합의 요소이다.
단계 :
1. 입력 문자열 에 대해 각각의 문자가 속하는 부분 문자집합을 찾는다. 이때, 함수 는 입력 문자열의 첨자 집합 의 요소를 부분 문자집합의 첨자 집합 의 요소에 대응시키며, 문자 는 부분 문자집합 의 요소이다.
2. 각 문자 를 정수 로 변환한다.
3. 알고리즘 2~5 중 하나에 대해서 를 전제조건의 자연수열로 하고, 정수열 을 평문 정수열로 입력하고, 입력된 논스값을 입력하고, 필요한 경우 카운터값을 입력하여 수행한다. 알고리즘의 수행 결과로 암호 정수열 을 얻는다.
4. 암호 정수열 와 역함수 를 이용하여 출력 문자열 을 얻는다.
[Algorithm 6]
precondition :
: This is the key used for the encryption function. It is preferably generated randomly.
: A partial character set belonging to a character set.
: Angle Is a partial character set Number of elements in.
: Partial character set Elements of a subset of integers One-to-one correspondence of the elements of the shear function.
input :
: As a string consisting of four characters, each character Is an element of any partial character set.
: As a counter value Bit value. This is necessary when
: As a nonce value Bit value. It is preferably generated randomly.
Print :
: A string of characters. Each character Character Is an element of the same partial character set.
step :
1. Input string The partial character set to which each character belongs . At this time, Is a set of subscripts of the input string Element of a partial character set To the element of < RTI ID = 0.0 > Is a partial character set .
2. Each character Integer .
3. For one of the
4. Password cipher And inverse function To output string .
5. 열 한다.5. Column do.
이상의 상세한 설명은 본 발명을 예시하는 것이다. 또한, 전술한 내용은 본 발명의 바람직한 실시 형태를 나타내어 설명하는 것이며, 본 발명은 다양한 다른 조합, 변경 및 환경에서 사용할 수 있다. 즉 본 명세서에 개시된 발명의 개념의 범위, 저술한 개시 내용과 균등한 범위 및/또는 당업계의 기술 또는 지식의 범위 내에서 변경 또는 수정이 가능하다. 전술한 실시예는 본 발명의 기술적 사상을 구현하기 위한 최선의 상태를 설명하는 것이며, 본 발명의 구체적인 적용 분야 및 용도에서 요구되는 다양한 변경도 가능하다. 따라서 이상의 발명의 상세한 설명은 개시된 실시 상태로 본 발명을 제한하려는 의도가 아니다. 또한, 첨부된 청구범위는 다른 실시 상태도 포함하는 것으로 해석되어야 한다.The foregoing detailed description is illustrative of the present invention. In addition, the foregoing is intended to illustrate and explain the preferred embodiments of the present invention, and the present invention may be used in various other combinations, modifications and environments. That is, it is possible to make changes or modifications within the scope of the concept of the invention disclosed in this specification, within the scope of the disclosure, and / or within the skill and knowledge of the art. The above-described embodiments illustrate the best mode for carrying out the technical idea of the present invention, and various modifications required for specific application fields and uses of the present invention are also possible. Accordingly, the detailed description of the invention is not intended to limit the invention to the disclosed embodiments. In addition, the appended claims should be construed to include other embodiments.
100: 다중 형태를 보존하는 암호화/복호화 시스템
100a: 다중 형태를 보존하는 암호화/복호화 시스템
110: 사전처리부
111: 부분문자집합 정의부
112: 부분문자집합 암호화/복호화 순서 정의부
113: 부분문자집합 문자순서 정의부
120: 문자집합 변환부
130: 부분문자집합 분별부
140: 암호화/복호화부
150: 형식재구성부
160: 문자집합 역변환부
170: 설정부
180: 난수 비트열 생성부
181: 확산값 생성부
182: 확산값 암호화부100: Encryption / decryption system to preserve multiple types
100a: Encryption / decryption system to preserve multiple types
110:
111: partial character set definition unit
112: partial character set encryption / decryption sequence definition unit
113: partial character set character order definition unit
120: character set conversion unit
130: partial character set discrimination unit
140: Encryption / Decryption Unit
150: Format reconstruction unit
160: character set inversion section
170: Setting section
180: a random number bit string generating unit
181: diffusion value generating unit
182: diffusion value encryption unit
Claims (14)
상기 암호화/복호화 시스템의 초기화 시 암호화/복호화에 사용하는 부분문자집합을 정의하는 사전처리부;
상기 암호화/복호화 시스템에 입력된 입력값을 암호화/복호화 시스템의 내부 처리용 문자집합으로 변환하는 문자집합 변환부;
상기 문자집합 변환부에서 변환한 문자집합을 부분문자집합으로 분별하는 부분문자집합 분별부;
상기 부분문자집합 분별부에서 분별한 부분문자집합의 각각의 블록별로 형태보존암호화를 이용하여 암호화/복호화를 수행하는 암호화/복호화부;
상기 암호화/복호화부에서 암호화/복호화된 부분문자집합의 각각의 블록을 재구성하는 형식 재구성부; 및
상기 형식 재구성부에서 재구성한 부분문자집합을 암호화/복호화 시스템의 출력 문자집합으로 변환하는 문자집합 역변환부;를 포함하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
An encryption / decryption system for storing multiple forms,
A pre-processing unit for defining a partial character set used for encryption / decryption at the time of initialization of the encryption / decryption system;
A character set conversion unit for converting an input value input to the encryption / decryption system into a character set for internal processing of the encryption / decryption system;
A partial character set discrimination unit for discriminating the character set converted by the character set conversion unit as a partial character set;
An encrypting / decrypting unit for performing encryption / decryption using shape preserving encryption for each block of the partial character set discriminated by the partial character set discriminating unit;
A format reconstruction unit for reconstructing each block of the partial character set encrypted / decrypted by the encryption / decryption unit; And
And a character set inversion unit for converting the partial character set reconstructed by the type reconstruction unit into an output character set of the encryption / decryption system.
상기 사전처리부는 표현가능한 모든 문자에 대해서 각각의 문자가 최대한 한번 포함되는 부분문자집합을 정의하는 부분문자집합 정의부;
상기 부분문자집합 정의부에서 정의된 각각의 부분문자집합에 대해서 부분문자집합 사이의 암호화/복호화 순서를 정의하는 부분문자집합 암호화/복호화 순서 정의부; 및
상기 부분문자집합 정의부에서 정의된 각각의 부분문자집합에 대해서 동일한 부분문자집합에 속하는 각각의 문자 사이의 순서를 정의하는 부분문자집합 문자순서 정의부;를 포함하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
The method according to claim 1,
Wherein the pre-processing unit includes: a partial character set defining unit defining a partial character set including at least once each character for all representable characters;
A partial character set encryption / decryption sequence defining unit for defining an encryption / decryption sequence between partial character sets for each partial character set defined in the partial character set defining unit; And
And a partial character set character sequence defining unit for defining an order of each character belonging to the same partial character set for each partial character set defined in the partial character set defining unit. Encryption / decryption system to preserve.
상기 암호화/복호화 시스템은, 상기 사전처리부에 의해 정의된 부분문자집합에 포함되지 않는 문자가 있을 경우, 상기 입력값을 그대로 출력하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
The method according to claim 1,
Wherein the encryption / decryption system outputs the input value as it is when there is a character which is not included in the partial character set defined by the preprocessing unit.
상기 암호화/복호화부는, 입력값을 입력값과 동일한 길이의 암호문/평문으로 변환하는 형태보존암호화 함수를 포함하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
The method according to claim 1,
Wherein the encryption / decryption unit includes a shape preservation encryption function for converting an input value into a ciphertext / plaintext having a length equal to an input value.
상기 암호화/복호화 시스템의 초기화 시 암호화/복호화에 사용하는 함수를 규정한 설정부;
카운터값을 이용하여 난수 비트열을 만드는 난수 비트열 생성부; 및
상기 암호화/복호화 시스템에 입력된 입력값과 상기 난수 비트열 생성부에서 생성한 난수 비트열을 이용하여 암호화값을 생성하는 암호 결합부;를 포함하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
An encryption / decryption system for storing multiple types including an encryption / decryption unit for performing encryption / decryption using shape-preserving encryption for each block of a partial character set,
A setting unit that defines a function used for encryption / decryption at the time of initialization of the encryption / decryption system;
A random number bit string generating unit for generating a random number bit string using the counter value; And
And an encryption unit for generating an encryption value using an input value input to the encryption / decryption system and a random number bit string generated by the random number bit string generation unit. Decryption system.
상기 설정부는, 상기 암호화/복호화 시스템에서 사용할 가변 블록 암호화 함수, 제1 확산 함수 및 제2 확산 함수를 제공하는 함수 제공부;를 포함하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
6. The method of claim 5,
Wherein the setting unit comprises a function providing unit that provides a variable block encryption function, a first spreading function, and a second spreading function to be used in the encryption / decryption system.
상기 가변 블록 암호화 함수는 트윅값이 이용 가능한 형태보존 암호화 함수, 블록암호를 포함한 메시지 인증 코드 또는 암호키를 포함한 메시지 인증 코드;를 포함하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
The method according to claim 6,
Wherein the variable block cryptographic function includes a message authentication code including a form preserving cryptographic function in which a tweak value is available, a message authentication code including a block cipher or a cipher key.
상기 난수 비트열 생성부는, 상기 카운터값에 확산 함수를 적용하여 확산값을 생성하는 확산값 생성부;및
상기 가변 블록 암호화 함수를 이용하여 확산값을 암호화하는 확산값 암호화부;를 포함하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
The method according to claim 6,
Wherein the random number bit string generator comprises: a spread value generator for generating a spread value by applying a spread function to the counter value;
And a spread value encryption unit for encrypting the spread value using the variable block encryption function.
상기 확산값 생성부는, 논스값과 상기 카운터값의 결합값을 카운터값으로 하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
9. The method of claim 8,
Wherein the spread value generation unit sets the combined value of the nonce value and the counter value as a counter value.
상기 확산값 암호화부는, 확산값 암호값이 치역에 속하면, 상기 암호 결합부로 상기 확산값 암호값을 전송하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
9. The method of claim 8,
Wherein the spread value encryption unit transmits the spread value encryption value to the encryption unit when the spread value encryption value belongs to the root zone.
상기 확산값 암호화부는, 상기 확산값 암호화부의 제1 확산 함수를 적용한 확산값 암호값이 치역에 속하지 않으면,
(a) 상기 확산값 암호값에 제2 확산 함수를 적용하고,
(b) 상기 확산값 암호값이 정의역에 속하도록 모듈로 연산을 하며,
(c) 상기 확산값 암호값이 상기 치역에 속할 때까지 확산값 암호값을 반복하여 가변 블록 암호화하여,
상기 암호 결합부로 치역에 속하는 확산값 암호값을 전송하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
9. The method of claim 8,
Wherein if the spreading value encryption value to which the first spreading function of the spreading value encrypting unit is applied does not belong to the root region,
(a) applying a second spreading function to the spreading factor encryption value,
(b) performing a modulo operation so that the spread value cipher value belongs to a domain,
(c) repeatedly performing variable block encryption of the spread value cipher value until the spread value cipher value belongs to the range,
And transmits a spreading value encryption value belonging to a root region to the encryption combining unit.
상기 확산값 생성부에 적용될 함수는,
카운터값에 대해 카운터값을 변경시키지 않는 동치함수, 카운터값을 비트열로서 순환시키는 함수, 부분 블록의 순서를 변경하는 함수, 카운터값에 대한 해시값을 바람직한 확산값 크기에 맞춰 자르는 함수, 임의의 트윅을 이용한 가변 블록 암호 함수, 모듈로에 의한 몫과 나머지 값을 모듈로의 비트 크기에 맞게 정렬하는 함수 또는 이 함수들의 합성함수를 포함하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
9. The method of claim 8,
Wherein the function to be applied to the spread value generator comprises:
An equivalent function that does not change the counter value with respect to the counter value, a function that circulates the counter value as a bit string, a function that changes the order of the partial block, a function that cuts the hash value of the counter value to a desired spread value size, A variable block cipher function using tweaks, a function for sorting the quotient and remainder values by the modulo in accordance with the bit size of the modulo, or a combination function of these functions. .
상기 암호 결합부는, 상기 난수 비트열 생성부에서 상기 암호 결합부로 전송된 확산값 암호값에 상기 입력값을 결합하여 암호화값을 생성하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
6. The method of claim 5,
Wherein the encryption combining unit combines the input value with the spreading value encryption value transmitted from the random number bit string generating unit to the encryption combining unit to generate an encryption value.
상기 암호화/복호화 시스템은, 상기 암호화값을 치역에 속하도록 모듈로 연산하여 암호문/평문을 생성하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.14. The method of claim 13,
Wherein the encryption / decryption system generates a ciphertext / plaintext by modulo the encryption value so as to belong to a range of the encryption / decryption system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170094515A KR101790325B1 (en) | 2017-07-26 | 2017-07-26 | Encryption and Decryption System |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170094515A KR101790325B1 (en) | 2017-07-26 | 2017-07-26 | Encryption and Decryption System |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101790325B1 true KR101790325B1 (en) | 2017-10-25 |
Family
ID=60300140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170094515A KR101790325B1 (en) | 2017-07-26 | 2017-07-26 | Encryption and Decryption System |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101790325B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113486126A (en) * | 2021-07-20 | 2021-10-08 | 西安地球环境创新研究院 | Underground water big data platform |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101516574B1 (en) * | 2014-02-21 | 2015-05-04 | 한국전자통신연구원 | Variable length block cipher apparatus for providing the format preserving encryption, and the method thereof |
US20170132420A1 (en) | 2015-11-07 | 2017-05-11 | Tata Consultancy Services Limited | Format preservation based masking system and method |
-
2017
- 2017-07-26 KR KR1020170094515A patent/KR101790325B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101516574B1 (en) * | 2014-02-21 | 2015-05-04 | 한국전자통신연구원 | Variable length block cipher apparatus for providing the format preserving encryption, and the method thereof |
US20170132420A1 (en) | 2015-11-07 | 2017-05-11 | Tata Consultancy Services Limited | Format preservation based masking system and method |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113486126A (en) * | 2021-07-20 | 2021-10-08 | 西安地球环境创新研究院 | Underground water big data platform |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109861820B (en) | Encryption and decryption method and device based on random hash and bit operation | |
KR101267109B1 (en) | Cryptographic primitives, error coding, and pseudo-random number improvement methods using quasigroups | |
Omolara et al. | Developing a modified hybrid caesar cipher and vigenere cipher for secure data communication | |
CN109951268B (en) | Encryption and decryption method and device based on bit permutation and bit permutation | |
CA3007348A1 (en) | Fast format-preserving encryption for variable length data | |
Geetha et al. | Tamilian cryptography: an efficient hybrid symmetric key encryption algorithm | |
Marzan et al. | An enhanced key security of Playfair cipher algorithm | |
Rajput et al. | An improved cryptographic technique to encrypt text using double encryption | |
US20220311596A1 (en) | A computer-implemented method of performing feistel-network-based block-cipher encryption of plaintext | |
Sermeno et al. | Modified Vigenere cryptosystem: An integrated data encryption module for learning management system | |
JP5992651B2 (en) | ENCRYPTION METHOD, PROGRAM, AND SYSTEM | |
KR101445339B1 (en) | Integrated cryptographic apparatus for providing confidentiality and integrity | |
US20020136400A1 (en) | R-conversion encryption method and system | |
KR101790325B1 (en) | Encryption and Decryption System | |
AB et al. | A New Security Mechanism for Secured Communications Using Steganography and CBA | |
CN111314052A (en) | Data encryption and decryption method based on uniformly distributed symmetric compression algorithm | |
AL-Shakarchy et al. | Cryptographic system based on Unicode | |
US11038668B2 (en) | Transposition encryption alphabet method (TEAM) | |
Jirjees et al. | Text Encryption by Indexing ASCII of Characters Based on the Locations of Pixels of the Image | |
KR101076747B1 (en) | Method and apparatus for random accessible encryption and decryption by using a hierarchical tree structure of stream cipher module | |
Al-Jarrah et al. | Word-based encryption algorithm using dictionary indexing with variable encryption key length | |
Kashyap et al. | Security techniques using Enhancement of AES Encryption | |
Sermeno et al. | Modified vigenere cryptosystem using matrix manipulation and base94 encoding scheme | |
Aryan et al. | Cloud Cryptography: A Cutting-Edge Method to Protect Your Cloud | |
Baftiu | ANALYSIS AND USE OF CRYPTOGRAPHY TECHNIQUES IN PROGRAMMING LANGUAGE C |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |