KR101790325B1 - Encryption and Decryption System - Google Patents

Encryption and Decryption System Download PDF

Info

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
Application number
KR1020170094515A
Other languages
Korean (ko)
Inventor
김용대
유호일
Original Assignee
주식회사 차칵
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 차칵 filed Critical 주식회사 차칵
Priority to KR1020170094515A priority Critical patent/KR101790325B1/en
Application granted granted Critical
Publication of KR101790325B1 publication Critical patent/KR101790325B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation 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

암호화 및 복호화 시스템 {Encryption and Decryption System}[0001] The present invention relates to an encryption and decryption system,

본 발명은 다중 형태를 보존하는 암호화 및 복호화 시스템에 관한 것이다.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 / decryption system 100 according to the present invention. Referring to FIG. 1, the encryption / decryption system 100 for storing a multi- It is possible to encrypt / decrypt a text string without restriction on the type and length of the value that can be inserted into a plain text (for example, a character string "123214afbbsg Korean ai," composed of numerals, Decryption system.

이러한 다중 형태를 보존하는 암호화/복호화 시스템(100)은, 사전처리부(110), 문자집합 변환부(120), 부분문자집합 분별부(130), 암호화/복호화부(140), 형식재구성부(150) 및 문자집합 역변환부(160)를 포함할 수 있다.The encrypting / decrypting system 100 for storing such a multi-type includes a preprocessing unit 110, a character set conversion unit 120, a partial character set discrimination unit 130, an encryption / decryption unit 140, a format re- 150 and a character set inversion unit 160. [

상기 사전처리부(110)는, 상기 암호화/복호화 시스템(100)의 초기화 시 암호화/복호화에 사용하는 부분문자집합 관련 사항을 정의하는 구성을 말한다.The preprocessing unit 110 defines a partial character set related to encryption / decryption when the encryption / decryption system 100 is initialized.

상기 문자집합 변환부(120)는, 상기 암호화/복호화 시스템(100)에 입력된 입력값을 암호화/복호화 시스템(100) 내부 처리용 문자집합으로 변환하는 구성을 말한다. The character set conversion unit 120 converts an input value input to the encryption / decryption system 100 into a character set for internal processing of the encryption / decryption system 100.

상기 부분문자집합 분별부(130)는, 상기 문자집합 변환부(120)에서 변환된 문자집합을 부분문자집합으로 분별하는 구성을 말한다.The partial character set discrimination unit 130 discriminates the character set converted by the character set conversion unit 120 as a partial character set.

상기 암호화/복호화부(140)는, 상기 부분문자집합 분별부(130)에서 분별된 부분문자집합의 각각의 블록별로 형태보존암호화를 이용하여 암호화/복호화를 수행하는 구성을 말한다.The encrypting / decrypting unit 140 encrypts / decrypts each block of the partial character set discriminated by the partial character set discriminating unit 130 using shape-preserving encryption.

상기 형식재구성부(150)는, 상기 암호화/복호화부(140)에서 암호화/복호화된 부분문자집합의 각각의 블록을 재배열하는 구성을 말한다.The format reconstruction unit 150 rearranges each block of the partial character set encrypted / decrypted by the encryption / decryption unit 140. [

상기 문자집합 역변환부(160)는, 상기 형식 재구성부(150)에서 재구성된 문자집합을 암호화/복호화 시스템의 출력 문자집합으로 변환하는 구성을 말한다.The character set inversion unit 160 converts the character set reconstructed by the format reconstruction unit 150 into an output character set of the encryption / decryption system.

상기 다중 형태를 보존하는 암호화/복호화 시스템(100)에 의해, 평문으로 넣을 수 있는 값의 형태 및 길이에 대한 제한이 없고, 여러가지 종류의 문자집합의 문자로 구성되어 있는 문자열의 암호화/복호화가 가능하게 된다.The encrypting / decrypting system 100 for storing the above-described multi-types allows encryption / decryption of a character string composed of characters of various kinds of character sets without restriction on the type and length of values that can be inserted into a plain text .

도 2는 본 발명인 다중 형태를 보존하는 암호화/복호화 시스템(100)의 구성인 문자집합 변환부(120)와 문자집합 역변환부(160)에 관한 도면으로, 외부 입력/출력 문자집합과 내부 처리용 문자집합 상호간에 변환/역변환을 통해 암호화/복호화가 이루어지는 부분을 보여 준다.FIG. 2 is a diagram of a character set conversion unit 120 and a character set inversion unit 160, which are configurations of an encryption / decryption system 100 for storing multiple forms according to the present invention. Encryption / decryption is performed through conversion / inverse transformation between sets.

도 3은 본 발명인 다중 형태를 보존하는 암호화/복호화 시스템(100)의 구성인 부분문자집합 분별부(130), 형식재구성부(150)에 관한 도면으로, 문자열 내의 문자집합이 부분문자집합으로 분별되었다가, 다시 원래의 문자열로 형식이 재구성되는 부분을 보여 준다.FIG. 3 is a diagram of a partial character set discrimination unit 130 and a format reconstruction unit 150, which are structures of an encryption / decryption system 100 for storing multiple forms according to the present invention. , And again shows the part where the format is reorganized into the original string.

도 4은 본 발명인 사전처리부(110)에 관한 도면으로, 도 4를 참고하여 설명하면, 상기 사전처리부(110)는 부분문자집합 정의부(111), 부분문자집합 암호화/복호화 순서 정의부(112) 및 부분문자집합 문자순서 정의부(113)를 포함할 수 있다.4, the preprocessing unit 110 includes a partial character set defining unit 111, a partial character set encryption / decryption order defining unit 112 And a partial character set character sequence definition unit 113. [

상기 부분문자집합 정의부(111)는, 표현가능한 모든 문자에 대해서 각각의 문자가 최대한 한번 포함되는 부분문자집합을 정의하는 구성을 말한다.The partial character set definition unit 111 defines a partial character set including at least once each character for all expressible characters.

상기 부분문자집합 암호화/복호화 순서 정의부(112)는, 상기 부분문자집합 정의부(111)에서 정의된 각각의 부분문자집합에 대해서 부분문자집합 사이의 암호화/복호화 순서를 정의하는 구성을 말한다.The partial character set encryption / decryption sequence definition unit 112 defines an encryption / decryption sequence between partial character sets for each partial character set defined by the partial character set definition unit 111. [

상기 부분문자집합 문자순서 정의부(113)는, 상기 부분문자집합 정의부(111)에서 정의된 각각의 부분문자집합에 대해서 동일한 부분문자집합에 속하는 각각의 문자 사이의 순서를 정의하는 구성을 말한다.The partial character set character sequence defining unit 113 defines a sequence of characters between the partial character sets belonging to the same partial character set for each partial character set defined by the partial character set defining unit 111 .

상기 암호화/복호화 시스템(100)은, 상기 사전처리부(110)에 의해 정의된 부분문자집합에 포함되지 않는 문자가 있을 경우, 입력값 그대로 출력하도록 하여, 부분문자집합 정의부(111)에 없는 문자가 있더라도, 암호화에 문제가 없는 암호화/복호화 시스템을 구현하는 효과를 도출한다.The encryption / decryption system 100 outputs the input value as it is when there is a character that is not included in the partial character set defined by the preprocessing unit 110, It is possible to obtain an effect of implementing an encryption / decryption system free from the problem of encryption.

상기 사전처리부(110)에 의해, 문자집합에 대한 처리 순서를 부여하고, 바람직하게는, 암호화에서 중복적으로 수행될 필요가 없는 처리를 한번만 수행하도록 함으로써, 암호화/복호화를 빠르고 효율적으로 가능하게 하는 효과를 가진다. 또한 문자집합 사이의 처리 순서를 바꾸면, 해당되는 부분문자 집합의 카운터 값이 변화하므로 암호화의 결과도 달라진다. 이에 따라 다양한 언어로 구성된 문자열에 대해서는 더 다양한 결과를 얻을 수 있으므로, 보안성이 향상되는 효과를 도출할 수 있다. The preprocessing unit 110 assigns a processing order to the character set, and preferably performs the processing that is not required to be performed redundantly in encryption once, thereby enabling encryption / decryption to be performed quickly and efficiently Effect. Also, if the order of processing between character sets is changed, the result of encryption varies because the counter value of the corresponding partial character set changes. As a result, a variety of results can be obtained for a character string composed of various languages, thereby improving the security.

본 명세서에서 문자집합이란, 문자열 중 암호화의 대상이 되는 문자를 가리킨다. 도 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'는, 영어의 문자체계에서도 사용하지만, 독일어의 문자체계에서도 동일한 문자를 사용한다. 그러나 문자

Figure 112017071815352-pat00001
는, 독일어의 문자체계에서는 사용하지만, 영어의 문자체계에서는 사용하지 않는다. 따라서, 영어의 문자체계에 대한 형태보존 암호화와, 독일어의 문자체계에 대한 형태보존 암호화는, 정의역과 치역에 있어서, 문자 'a'와 같이 서로 공통되는 문자와 문자
Figure 112017071815352-pat00002
와 같이 서로 공통되지 않는 문자가 존재한다. 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,
Figure 112017071815352-pat00001
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'
Figure 112017071815352-pat00002
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 / decryption unit 140 of the encryption / decryption system 100 for storing multiple types according to an embodiment of the present invention. , The alphabet, and the partial character set of the complete Hangul. The characters classified into the corresponding partial character set are divided into block units that can be processed by the encryption / decryption unit 140, and are numbered according to the order of each block, and encrypt / decrypt them with a counter value. Particularly, FIG. 6 shows a case where a maximum of 4 Hangul characters constitute one block. In the present invention, in the encrypting / decrypting system 100, the configuration excluding the pre-processing unit 110 may be configured to save the form so as to belong to the same set as the input value with respect to an arbitrary input value, . This leads to the effect that a particular type of value can be converted to a value of the same type without any significant modification of the database statement for additional storage space or data utilization.

예를 들면, 한글과 숫자로 구성되어 있는 주소 문자열은, 하기 '실시예 5' 항목의 알고리즘 6, 하기 '실시예 4' 항목의 알고리즘 5, 하기 '실시예 1' 항목의 알고리즘 2, 하기 '[알고리즘 1]' 항목의 알고리즘 1과 형태보존암호 FEA-1의 조합을 통하여 다음과 같이 형태보존 암호화 될 수 있다.For example, the address string composed of Korean and numerals is composed of an algorithm 6 of item 5, an algorithm 5 of item 4, an algorithm 2 of item 1, [Algorithm 1] 'algorithm 1 and the shape preservation cipher FEA-1.

"문지로 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 이 전제조건의 자연수열

Figure 112017095424916-pat00140
로 이용된다.
자연수열에 의해 결정되는 함수
Figure 112017095424916-pat00141
는 상기 알고리즘 6의 단계 1 에서의 대응으로 정의된, 문자열에서에 포함된 문자가 어느 부분문자집합에 속하는지를 의미하는 함수이다.
함수
Figure 112017095424916-pat00142
는 특수 문자집합에 대해서는 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에서 설명하고 있다.
정수열
Figure 112017095424916-pat00143
는 각각의 부분문자집합에 대해서 정의된다. 본 예시에서는
Figure 112017095424916-pat00144
이 48인 경우를 설명한다. 숫자 문자 3글자 표현에 필요한 정보량은 10비트이므로, 한 블록 안에 모두 표현이 가능하다. 따라서
Figure 112017095424916-pat00145
,
Figure 112017095424916-pat00146
로 정의된다. 완성형 한글 문자에 대해서 4글자의 연속한 표현에 필요한 정보량은 45비트이며, 5글자의 연속한 표현에 필요한 정보량은 56비트이다. 따라서 48비트 한 블록으로 표현 가능한 글자 수는 완성형 한글 4글자이다. 그리고 문자열 내의 형식에서 결정한 완성형 한글의 전체 글자 수는 5글자이므로
Figure 112017095424916-pat00147
,
Figure 112017095424916-pat00148
,
Figure 112017095424916-pat00149
로 정의된다.
알고리즘 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를 수행한다. 이때 입력하는 평문 문자열은
Figure 112017095424916-pat00150
을 이용하여 정의되는 부분 정수열로 나누어 처리한다. 숫자 문자에 대해서는 정수열 1, 9, 3 에 대해 카운터 값을
Figure 112017095424916-pat00151
의 계산 결과인 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 이므로,
Figure 112017095424916-pat00152
의 값은 1000 이다. 알고리즘 2의 단계 1에서 정의한 수학식에 의해 정수
Figure 112017095424916-pat00153
의 값은 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 이므로,
Figure 112017095424916-pat00154
의 값은 30498006250000 이다. 알고리즘 2의 단계 1에서 정의한 수학식에 의해 정수
Figure 112017095424916-pat00155
의 값은 11157290644550 으로 계산된다. 알고리즘 2의 단계 2에서는 알고리즘 1을 이용하여 암호화한 결과로서, 예를 들면 5292804701843 과 같은 정수가 출력된다. 해당 값을 이용하면 알고리즘 2의 단계 3에서 정의된 수학식에 의해 정수열 407, 1957, 869, 2193 을 얻을 수 있다. 이 값은 모두 암호화 대상이므로 알고리즘 2의 단계 4에서 알고리즘 2의 출력값으로서 정수열 407, 1957, 869, 2193 을 출력한다.
정수열 1 에 대한 알고리즘 2의 전제조건 자연수열은 2350 이므로,
Figure 112017095424916-pat00156
의 값은 2350 이다. 알고리즘 2의 단계 1에서 정의한 수학식에 의해 정수
Figure 112017095424916-pat00157
의 값은 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 에 대해서 첨자에 의해 정렬을 수행한다. 여기에서 첨자에 의한 정렬이란 함수
Figure 112017095424916-pat00158
의 대응과 수열
Figure 112017095424916-pat00159
에 의해 각 정수열을 구분하였던 것을 알고리즘 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 Algorithm 6 to the string "Rule 193 with Unicode Characters" is as follows.
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 number 0, and then maps the characters up to 0x0039 to the numbers up to 9. This corresponds to the number of digits from 0 to 9 minus one, and corresponds to the integer that the numeric character means. The shear function that matches the complete Hangul character to an integer is a function that matches the value obtained by subtracting 1 from the value of how many times the Hangul character appears in the order of the Hangul character codes defined in KS X 1001 . A shear function that maps special characters to integers is a function that maps Unicode characters to integers. This means that the special character corresponds to an integer obtained by subtracting 1 from the value of how many times the special character appears as a Unicode character.
The input value for applying the algorithm 6 to the string "193 distinct by rubbing" is the value of the randomly generated nonces with the string "rubbing 193".
When Step 1 of Algorithm 6 is applied, each character of the string "Rule 193 with rubbing" consists of a complete Hangul character, a complete Hangul character, a complete Hangul character, a special character, a numeric character, a numeric character, a numeric character, It can be seen that it is a Korean character.
When Step 2 of Algorithm 6 is applied, each character of the string "193 distinct by rubbing" is composed of 860th, 1684th and 704th successive Hangul characters, 33th special character, 2nd, 10th, Character, the first and second complete Hangul characters. Therefore, each character in the string can be converted into an integer sequence of 859, 1683, 703, 32, 1, 9, 3, 0,
In Step 3 of Algorithm 6, one of Algorithms 2 to 5 is applied. Here, Algorithm 5 is applied.
It is preferable that the preprocessing unit 110 processes the encryption key and the natural sequence, which are prerequisites for applying the algorithm 5, However, it can be processed at a necessary point other than the pre-processing unit 110. [
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
Figure 112017095424916-pat00140
.
Function determined by natural sequence
Figure 112017095424916-pat00141
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 step 1 of the algorithm 6.
function
Figure 112017095424916-pat00142
Is a function that maps 1 to 4 for a special character set and a function that maps integers 1 to 3 to 5, 6, and 7 for a numeric character set, and integers from 1 to 5 for a complete Hangul character set To 1, 2, 3, 8, and 9, which means the position of the corresponding character in the input string. (5,3), (1,3) and (8,2), respectively, and converted into an ordered pair of string positions and run-lengths, , 3) and (0, 3), (8, 2). This correspondence is shown in Fig.
Water heat
Figure 112017095424916-pat00143
Is defined for each partial character set. In this example
Figure 112017095424916-pat00144
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
Figure 112017095424916-pat00145
,
Figure 112017095424916-pat00146
. 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
Figure 112017095424916-pat00147
,
Figure 112017095424916-pat00148
,
Figure 112017095424916-pat00149
.
The input values of the algorithm 5 are the values of the nonces inputted to the plaintext constants 859, 1683, 703, 32, 1, 9, 3, 0,
As a result of the processing in the step 1 of the algorithm 5, the partial integer rows defined for the numeric character set are 1, 9, and 3 as the 5th, 6th, and 7th integers in the integer row. The partial constants defined for the complete Hangul character set are the constants 859, 1683, 703, 0, and 1, which are 1, 2, 3, 8,
In step 2 of algorithm 5, algorithm 2 is performed on integer strings of each partial character set. The input plain text string is
Figure 112017095424916-pat00150
And a partial integer sequence defined by using the partial sequence. For numeric characters, the counter value for integer 1, 9,
Figure 112017095424916-pat00151
0 " The complete Hangul character set is divided into two integer columns 859, 1683, 703, 0 and 1, and the counter values are set to 1 and 2, respectively. Therefore, the execution of Algorithm 2 is divided into the case of integer 1, 9, and 3, the case of integer columns 859, 1683, 703, 0, and the case of integer 1.
Since the prerequisite natural sequence of Algorithm 2 for integer 1, 9, and 3 is 10, 10, and 10,
Figure 112017095424916-pat00152
Lt; / RTI > According to the equation defined in the step 1 of the algorithm 2,
Figure 112017095424916-pat00153
Is calculated as 193. In step 2 of algorithm 2, encryption is performed using algorithm 1. The result is changed depending on the selection of the diffusion function of the algorithm 1, the value of the input nonce, and the cryptographic value of the precondition. In this example, a case of obtaining an integer value of 379 as a result of a specific selection is considered. Next, the constants 3, 7, and 9 are obtained from the integer 379 by the mathematical expression defined in the step 3 of the algorithm 2. Since all of these values are to be encrypted, step 4 of the algorithm 2 outputs the integer numbers 3, 7, and 9 as the output values of the algorithm 2.
Since the prerequisite natural sequence of the algorithm 2 for the integer sequences 859, 1683, 703, and 0 is 2350, 2350, 2350, and 2350,
Figure 112017095424916-pat00154
Is 30498006250000. According to the equation defined in the step 1 of the algorithm 2,
Figure 112017095424916-pat00155
Lt; RTI ID = 0.0 > 11157290644550 < / RTI > In step 2 of the algorithm 2, an integer such as 5292804701843 is output as a result of the encryption using the algorithm 1, for example. By using the corresponding values, the integer rows 407, 1957, 869, and 2193 can be obtained by the mathematical expression defined in Step 3 of Algorithm 2. Since these values are all to be encrypted, in step 4 of the algorithm 2, the integer values 407, 1957, 869, and 2193 are output as the output values of the algorithm 2.
The prerequisite natural sequence of Algorithm 2 for integer 1 is 2350,
Figure 112017095424916-pat00156
Lt; / RTI > According to the equation defined in the step 1 of the algorithm 2,
Figure 112017095424916-pat00157
Is calculated as 1. In Step 2 of Algorithm 2, an integer such as 1465 is output as a result of encryption using Algorithm 1, for example. Using this value, the integer 1465 can be obtained by the mathematical expression defined in Step 3 of Algorithm 2. Since all of these values are to be encrypted, in step 4 of the algorithm 2, the integer number 1465 is output as the output value of the algorithm 2.
Step 2 of algorithm 5 is then terminated, and step 3 of algorithm 5 is then performed. In step 3 of algorithm 5, alignment is performed by subscripts for three cipher constants 3, 7, 9 and 407, 1957, 869, 2193 and 1465. Here, the subscript sort function
Figure 112017095424916-pat00158
And
Figure 112017095424916-pat00159
To the input constants of the algorithm 5, as shown in Fig. Therefore, if the constants of the respective cipher constants are returned to the plaintext constants 859, 1683, 703, 32, 1, 9, 3, 0 and 1 inputted to the algorithm 5, then 407, 1957, 869, 32, 3, 7, 9, 2193, 1465. < / RTI >
In step 4 of the algorithm 5, the integer strings 407, 1957, 869, 32, 3, 7, 9, 2193, and 1465 are output.
In step 4 of the algorithm 6, the integer strings 407, 1957, 869, 32, 3, 7, 9, 2193 and 1465 are converted into strings. The string obtained by this conversion consists of the 328th special character, the 4th numeric character, the 8th numeric character, the 10th numeric character, and the 2194th and 1466th complete Korean characters following the 408th, 1958th, and 870th complete Hangul characters Since it is a string, it is completed like "뭏 뭏 379 퓽 Wan".
In Step 5 of Algorithm 6, algorithm 6 is terminated by outputting the string " No Cook 379 ".
In this example, by using a decryption function instead of the encryption function of the algorithm 1, decryption can be performed through the same process as encryption.

7, the encryption / decryption system 100 according to the present invention includes a counter mode encryption / decryption system using a counter mode, There is a difference in that the encryption / decryption unit 140 is constituted to encrypt / decrypt the encrypted data.

FIG. 8 is a diagram of an encryption / decryption system 100a for preserving multiple types according to another embodiment of the present invention. Referring to FIG. 8, And a modified counter mode based shape preserving encryption / decryption system for encrypting and decrypting information by including information of each counter value as an index into a tweak value.

The encrypting / decrypting system 100a for storing such a multi-type may include a setting unit 170, a random number bit string generating unit 180 and a cryptographic key combining unit 190. [
The setting unit 170 defines a function used for encryption / decryption at the time of initialization of the encryption / decryption system.
The random number bit string generating unit 180 generates a random number bit string using the counter value.
The cryptographic combination unit 190 is configured to generate an encrypted value using the random number bit string generated by the random number bit string generation unit 180.

The setting unit 170 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 100a for storing the multiple types.

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 setting unit 170 .

삭제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 string generating unit 180 includes a random number bit string generating unit 180 and a cryptographic key combining unit 190. The random number bit string generating unit 180 generates a spreading function And a spread value encryption unit 182 for encrypting the spread value using a variable block encryption function.

상기 확산값 생성부(181)는, 논스값과 카운터값의 결합값을 카운터값으로 하여 확산 함수를 적용할 수 있다.The diffusion value generator 181 may apply the diffusion function using the combined value of the nonce value and the counter value as a counter value.

상기 확산값 암호화부(182)는 확산값 암호값이 치역에 속하면, 상기 암호 결합부(190)로 확산값 암호값을 전송하는 구성을 말한다. 만약 상기 확산값 암호화부(182)의 제1 확산 함수를 적용한 확산값 암호값이 치역에 속하지 않으면, (a) 확산값 암호값에 제2 확산 함수를 적용하고, (b) 확산값 암호값이 정의역에 속하도록 모듈로 연산을 하며, (c) 확산값 암호값이 치역에 속할 때까지 확산값 암호값을 반복하여 가변 블록 암호화하여, 암호 결합부(190)로 치역에 속하는 확산값 암호값을 전송하는 구성을 말한다.The diffusion value encryption unit 182 transmits the spread value encryption value to the encryption unit 190 when the spread value encryption value belongs to the root zone. If the spreading value encryption value to which the first spreading function of the spreading value encryption unit 182 is applied does not belong to the range, (a) a second spreading function is applied to the spreading value encryption value, (b) (C) the variable value cipher is repeatedly subjected to variable block cipher until the cipher value of the spread value cipher is in the range, and the spreading cipher value cipher belonging to the root value is sent to the cipher combining unit 190 Transmission configuration.

상기 확산값 생성부(181)에 적용될 함수는, 카운터값에 대해 카운터값을 변경시키지 않는 동치함수, 카운터값을 비트열로서 순환시키는 함수, 부분 블록의 순서를 변경하는 함수, 카운터값에 대한 해시값을 바람직한 확산값 크기에 맞춰 자르는 함수, 임의의 트윅을 이용한 가변 블록 암호 함수, 모듈로에 의한 몫과 나머지 값을 모듈로의 비트 크기에 맞게 정렬하는 함수 또는 이 함수들의 합성함수를 포함할 수 있다.The function to be applied to the diffusion value generator 181 may include an equivalence 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 to sort the modulo quotient and residual values according to the bit size of the module, or a composite function of these functions have.

그리고, 상기 암호 결합부(190)는, 난수 비트열 생성부(180)에서 암호 결합부(190)로 전송된 확산값 암호값에 입력값을 결합하여 암호화값을 생성할 수 있다. The encryption unit 190 may generate an encryption value by combining an input value with a spreading value encryption value transmitted from the random number bit string generating unit 180 to the encryption combining unit 190. [

또한, 암호문/평문을 생성하기 위해 상기 암호화값을 치역에 속하도록 모듈로 연산할 수 있다.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 algorithm 1 used in the random number bit stream generation unit 180 and the cryptographic combination unit 190 will be described. In the case of the random number bit string generating section 180, steps 1 to 4 of the algorithm 1 are associated. In the case of the cryptographic combiner 190, steps 5 and 6 of the algorithm 1 are involved.


[알고리즘 1]
전제조건:

Figure 112017095424916-pat00160
: 암호화 함수에 이용되는 키이다. 랜덤으로 생성되는 것이 바람직하다.
Figure 112017095424916-pat00161
: 평문 집합의 요소 개수이며 암호문 집합의 요소 개수와 동일하다.

입력:
Figure 112017095424916-pat00162
: 평문으로서, 부등식
Figure 112017095424916-pat00163
을 만족하는 정수이다.
Figure 112017095424916-pat00164
: 카운터값으로서
Figure 112017095424916-pat00165
비트 값이다.
Figure 112017095424916-pat00166
: 논스값으로서
Figure 112017095424916-pat00167
비트 값이다. 랜덤으로 생성되는 것이 바람직하다.

출력:
Figure 112017095424916-pat00168
: 암호문으로서, 부등식
Figure 112017095424916-pat00169
을 만족시키는 정수이다.

단계 :
1.
Figure 112017095424916-pat00170

2.
Figure 112017095424916-pat00171

3.
Figure 112017095424916-pat00172

4. 만약
Figure 112017095424916-pat00173
을 만족시키면:
a.
Figure 112017095424916-pat00174

b.
Figure 112017095424916-pat00175

c.
Figure 112017095424916-pat00176

d. 만약
Figure 112017095424916-pat00177
을 만족시키면 단계 4.c로 이동
5.
Figure 112017095424916-pat00178

6. 결과값으로
Figure 112017095424916-pat00179
를 반환

상기 알고리즘에서
Figure 112017095424916-pat00180
Figure 112017095424916-pat00181
의 비트길이를 의미한다. 따라서 부등식
Figure 112017095424916-pat00182
을 만족시킨다.
상기 알고리즘에서
Figure 112017095424916-pat00183
은 트윅의 비트길이를 의미한다. 해당 비트길이는 알고리즘 1에서 이용하는 암호화 함수에 의해 결정되는 값이다.
상기 알고리즘에서 이용된 수학식
Figure 112017095424916-pat00184
은 비트열
Figure 112017095424916-pat00185
에서 최상위
Figure 112017095424916-pat00186
번째 비트부터
Figure 112017095424916-pat00187
번째 비트까지의 부분 비트열을 의미한다.
상기 알고리즘에서 이용된 수학식
Figure 112017095424916-pat00188
는 트윅 값이 이용가능한 블록 암호화 함수이다. 특히
Figure 112017095424916-pat00189
비트의 블록
Figure 112017095424916-pat00190
Figure 112017095424916-pat00191
비트의 트윅
Figure 112017095424916-pat00192
를 이용하여
Figure 112017095424916-pat00193
비트의 암호문을 생성한다. 이러한 암호화 함수는 예를 들면 하기와 같이 구성될 수 있다.
1) 형태보존 암호화 함수
2)
Figure 112017095424916-pat00194
:
Figure 112017095424916-pat00195
Figure 112017095424916-pat00196
를 키로 하는 128비트 블록을 암호화 하는 함수이며, 트윅
Figure 112017095424916-pat00197
는 최대 128비트의 비트열이다. 또한 연산자
Figure 112017095424916-pat00198
는 오른쪽 시프트 연산이며, 생성 비트열에서 부분
Figure 112017095424916-pat00199
비트를 임의로 결정하는 함수로 대체될 수 있다.
3)
Figure 112017095424916-pat00200
:
Figure 112017095424916-pat00201
Figure 112017095424916-pat00202
를 키로 하는 메시지 인증 코드이다.
Figure 112017095424916-pat00203
는 트윅으로서 길이는 가변이며,
Figure 112017095424916-pat00204
Figure 112017095424916-pat00205
의 출력값의 비트길이이다. 여기에서도 2)의 경우와 마찬가지로 오른쪽 시프트 연산자
Figure 112017095424916-pat00206
는 생성 비트열에서 부분
Figure 112017095424916-pat00207
비트를 임의로 결정하는 함수로 대체할 수 있다.

상기 수학식의
Figure 112017095424916-pat00208
Figure 112017095424916-pat00209
는 각각 제1 확산 함수와 제2 확산 함수이다.
Figure 112017095424916-pat00210
비트 입력값에 대해
Figure 112017095424916-pat00211
비트 값을 결정론적으로 출력한다. 확산 함수
Figure 112017095424916-pat00212
Figure 112017095424916-pat00213
는 동일한 함수로 설정할 수 있으나, 다른 함수임이 바람직하다. 예를 들면 하기와 같이 구성될 수 있다.
1)
Figure 112017095424916-pat00214
: 동치함수
2)
Figure 112017095424916-pat00215
: 비트열을 오른쪽으로
Figure 112017095424916-pat00216
비트 순환시키는 함수
3)
Figure 112017095424916-pat00217
: 비트열을
Figure 112017095424916-pat00218
비트 단위 블록으로 쪼개어 각 블록의 순서를 역순으로 하는 함수.
4)
Figure 112017095424916-pat00219
:
Figure 112017095424916-pat00220
비트 출력값을 갖는 해시함수
5)
Figure 112017095424916-pat00221
:
Figure 112017095424916-pat00222
비트 트윅
Figure 112017095424916-pat00223
를 이용한 블록 암호화 함수

알고리즘 1은 카운터값이 0에서 시작하여 동일한 값으로 되돌아오기 직전까지의 수열에 대해 사용할 수 있다. 해당 수열의 최대 주기는
Figure 112017095424916-pat00224
이다. 특히, 동일한 입력 평문값
Figure 112017095424916-pat00225
에 대해 카운터를 1씩 증가시켜 얻어지는 출력값
Figure 112017095424916-pat00226
의 수열은, 암호함수
Figure 112017095424916-pat00227
가 출력값에 대해 충돌확률이 충분히 작다면, 주기를 최대의 경우
Figure 112017095424916-pat00228
이 되도록 구성할 수 있다.

알고리즘 1은 단계 1-4와 같이 카운터값으로부터 암호키
Figure 112017095424916-pat00229
에 대한 지식 없이는 계산적으로 예측 불가능한,
Figure 112017095424916-pat00230
을 만족하는 정수를 생성하는 부분과, 단계 5와 같이 해당 비트열을 입력값
Figure 112017095424916-pat00231
와 결합하여 암호화를 수행하는 부분으로 구성된다.

단계 4의 결과,
Figure 112017095424916-pat00232
값은
Figure 112017095424916-pat00233
의 범위를 만족시킨다. 이 값이 어떠한 값으로 대응될지에 대해서는 단계 4에서 결정된 트윅값
Figure 112017095424916-pat00234
에 의해 다양한 변화를 줄 수 있다.
단계 4에서, 임의의 초기값
Figure 112017095424916-pat00235
에 대해 함수
Figure 112017095424916-pat00236
의 재귀적 호출로 얻어지는 수열은
Figure 112017095424916-pat00237
의 약수를 주기로하여 반복된다. 이때 초기치를 단계 4에서
Figure 112017095424916-pat00238
값을
Figure 112017095424916-pat00239
의 만족시키는 범위로 변경하게 되면, 해당 주기 내에서 반복의 종료 조건을 만족시키는 경우가 반드시 존재한다. 만약 초기값이
Figure 112017095424916-pat00240
이라면 반복의 종료 조건
Figure 112017095424916-pat00241
을 만족시키지 않는 함수 가 존재한다.

단계 5의 모듈로 연산
Figure 112017095424916-pat00243
Figure 112017095424916-pat00244
의 값이
Figure 112017095424916-pat00245
보다 큰 경우에
Figure 112017095424916-pat00246
을 빼는 연산으로 대체할 수 있다.
복호화 알고리즘은 단계 5 의 연산을
Figure 112017095424916-pat00247
로 바꿈으로서 정의할 수 있다.
[Algorithm 1]
precondition:
Figure 112017095424916-pat00160
: This is the key used for the encryption function. It is preferably generated randomly.
Figure 112017095424916-pat00161
: The number of elements in the plaintext set and equal to the number of elements in the set of ciphertexts.

input:
Figure 112017095424916-pat00162
: As a plain text, inequality
Figure 112017095424916-pat00163
Lt; / RTI >
Figure 112017095424916-pat00164
: As a counter value
Figure 112017095424916-pat00165
Bit value.
Figure 112017095424916-pat00166
: As a nonce value
Figure 112017095424916-pat00167
Bit value. It is preferably generated randomly.

Print:
Figure 112017095424916-pat00168
: Cipher text, inequality
Figure 112017095424916-pat00169
Lt; / RTI >

step :
One.
Figure 112017095424916-pat00170

2.
Figure 112017095424916-pat00171

3.
Figure 112017095424916-pat00172

4. If
Figure 112017095424916-pat00173
:
a.
Figure 112017095424916-pat00174

b.
Figure 112017095424916-pat00175

c.
Figure 112017095424916-pat00176

d. if
Figure 112017095424916-pat00177
If it satisfies, go to step 4.c
5.
Figure 112017095424916-pat00178

6. As the result
Figure 112017095424916-pat00179
Return

In the algorithm
Figure 112017095424916-pat00180
silver
Figure 112017095424916-pat00181
Lt; / RTI > Therefore,
Figure 112017095424916-pat00182
Lt; / RTI >
In the algorithm
Figure 112017095424916-pat00183
Means the bit length of the tweak. The bit length is a value determined by the encryption function used in Algorithm 1.
In the algorithm used in the above equation
Figure 112017095424916-pat00184
Bit string
Figure 112017095424916-pat00185
At the top
Figure 112017095424916-pat00186
From the ith bit
Figure 112017095424916-pat00187
Lt; th > bit.
In the algorithm used in the above equation
Figure 112017095424916-pat00188
Is a block encryption function with tweak values available. Especially
Figure 112017095424916-pat00189
Block of bits
Figure 112017095424916-pat00190
To
Figure 112017095424916-pat00191
Bit tweak
Figure 112017095424916-pat00192
Using
Figure 112017095424916-pat00193
Bit cipher text. This encryption function can be configured as follows, for example.
1) Shape-preserving cryptographic function
2)
Figure 112017095424916-pat00194
:
Figure 112017095424916-pat00195
The
Figure 112017095424916-pat00196
Is a function for encrypting a 128-bit block using a key
Figure 112017095424916-pat00197
Is a bit string of a maximum of 128 bits. Also,
Figure 112017095424916-pat00198
Is a right shift operation,
Figure 112017095424916-pat00199
It can be replaced with a function that arbitrarily determines the bit.
3)
Figure 112017095424916-pat00200
:
Figure 112017095424916-pat00201
silver
Figure 112017095424916-pat00202
As a key.
Figure 112017095424916-pat00203
Is a tweak, the length is variable,
Figure 112017095424916-pat00204
The
Figure 112017095424916-pat00205
Is the bit length of the output value. Here, as in the case of 2), the right shift operator
Figure 112017095424916-pat00206
Lt; RTI ID = 0.0 >
Figure 112017095424916-pat00207
The bit can be replaced with a function that randomly determines.

In the above equation
Figure 112017095424916-pat00208
Wow
Figure 112017095424916-pat00209
Are the first diffusion function and the second diffusion function, respectively.
Figure 112017095424916-pat00210
For bit input values
Figure 112017095424916-pat00211
And outputs the bit value deterministically. Diffusion function
Figure 112017095424916-pat00212
and
Figure 112017095424916-pat00213
Can be set to the same function, but it is preferable that the function is another function. For example, as follows.
One)
Figure 112017095424916-pat00214
: Equivalent function
2)
Figure 112017095424916-pat00215
: Move the bit string to the right
Figure 112017095424916-pat00216
Functions that cycle bits
3)
Figure 112017095424916-pat00217
Bit string
Figure 112017095424916-pat00218
A function that breaks up into blocks of bits and reverses the order of each block.
4)
Figure 112017095424916-pat00219
:
Figure 112017095424916-pat00220
Hash function with bit output value
5)
Figure 112017095424916-pat00221
:
Figure 112017095424916-pat00222
Beatwick
Figure 112017095424916-pat00223
Block encryption function using

Algorithm 1 can be used for a sequence up to just before the counter value starts at 0 and returns to the same value. The maximum period of the sequence is
Figure 112017095424916-pat00224
to be. In particular,
Figure 112017095424916-pat00225
The output value obtained by incrementing the counter by 1
Figure 112017095424916-pat00226
The sequence of < RTI ID = 0.0 >
Figure 112017095424916-pat00227
If the probability of collision with the output value is sufficiently small,
Figure 112017095424916-pat00228
. ≪ / RTI >

Algorithm 1 decrypts the cipher key from the counter value
Figure 112017095424916-pat00229
Without knowledge of the computationally unpredictable,
Figure 112017095424916-pat00230
, And a part for generating the integer satisfying the input value
Figure 112017095424916-pat00231
And performs encryption in combination with the encryption key.

As a result of step 4,
Figure 112017095424916-pat00232
The value is
Figure 112017095424916-pat00233
≪ / RTI > As to what value this value is to correspond to, the threshold value determined in step 4
Figure 112017095424916-pat00234
Can make various changes.
In step 4, any initial value
Figure 112017095424916-pat00235
About functions
Figure 112017095424916-pat00236
The sequence obtained by recursive invocation of
Figure 112017095424916-pat00237
Is repeated. At this time,
Figure 112017095424916-pat00238
Value
Figure 112017095424916-pat00239
, There is always a case where the end condition of the repetition is satisfied within the period. If the initial value is
Figure 112017095424916-pat00240
End condition of the iteration
Figure 112017095424916-pat00241
Function that does not satisfy Lt; / RTI >

Modulo operation in step 5
Figure 112017095424916-pat00243
silver
Figure 112017095424916-pat00244
The value of
Figure 112017095424916-pat00245
If greater than
Figure 112017095424916-pat00246
Can be replaced with an operation to subtract.
The decryption algorithm uses the operation of step 5
Figure 112017095424916-pat00247
Can be defined.

삭제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 string generating unit 180 and the algorithm 1 used by the cryptographic unit 190 will be described. The description of the present invention will be continued below.

도 9는 상기 언급한 바와 같이, 본 발명인 난수 비트열 생성부(180)와 암호 결합부(190)에 관한 도면으로, 도 9를 참고하여 설명하면, 모두 다른 형태로 암호화 될 수 있도록 인덱스로서 서로 다른 카운터값을 부여하고, 인덱스로서 각각의 카운터값의 정보는 트윅값에 포함시켜 암호화 및 복호화를 수행하는 암호화/복호화 시스템을 말한다. 9 is a diagram illustrating a random number bit string generating unit 180 and an encryption unit 190 according to the present invention. Referring to FIG. 9, Decryption system that encrypts and decrypts each of the counter values by adding other counter values to the tweak value as indexes and information of each counter value as an index.

같은 형태의 데이터 집합을 암호화 할 때, 각각의 요소 데이터에 대해 개별적으로 키를 설정하게 되면, 데이터 집합의 크기에 비례하는 안전한 저장공간이 필요하고, 각각의 키를 관리하기 위한 시스템은 매우 복잡해질 수밖에 없다. 또한 요소 데이터의 크기가 작은 경우 데이터를 보관하기 위한 공간보다 키를 보관하기 위한 공간이 훨씬 더 거대해질 수도 있다. 따라서 요소 데이터를 암호화하기 위해 필요한 암호키나 트윅값과 같은 매개변수를 요소데이터 사이의 관계에 의해 정의하는 방법이 저장 공간의 측면에서 바람직하다. 이때 암호키를 요소데이터에 의존하여 변경하는 방법은, 대부분의 대칭키 암호에서 수행하는 키 스케쥴링 과정을 키가 변경될 때마다 수행되어야 하기 때문에 데이터에 대한 암호화 및 복호화 속도를 크게 저하시킨다. 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.


첫째, 논스와 카운터의 결합값

Figure 112017095424916-pat00248
을 치역의 요소 개수로 나눔으로서 몫과 나머지로 분해하여 각각을 트윅과 평문으로하여 암호화 할 수 있다. 그러나 128비트 정수의 나눗셈과 같은 연산을 한번 수행해야 한다는 점은 성능적으로 고려해봐야 한다. 이 방법은, 알고리즘 1에서 제1 확산 함수
Figure 112017095424916-pat00249
을 상위
Figure 112017095424916-pat00250
비트의 값을 나머지로 하고 하위
Figure 112017095424916-pat00251
비트의 값을 몫으로 하는 함수로 정의하고, 제2 확산 함수
Figure 112017095424916-pat00252
Figure 112017095424916-pat00253
에만 대응시키는 상수 함수로 정의하여 구현할 수 있다.

둘째, 첫번째 경우에서 일반적인 128비트 정수의 나눗셈을 피하기 위해
Figure 112017095424916-pat00254
Figure 112017095424916-pat00255
에 의한 나눗셈을 이용하는 것을 고려할 수 있다. 이때
Figure 112017095424916-pat00256
에 의한 나눗셈은 비트열에 대한 시프트 연산으로 구현할 수 있으므로, 나눗셈을 매우 빠르게 처리할 수 있다는 장점이 있다. 이렇게 정의한 암호화 함수의 치역의 요소 개수는 최종적으로 출력해야 하는 치역의 요소 개수와 서로 다르게 되므로, CW 를 이용해야 한다. 그러나
Figure 112017095424916-pat00257
Figure 112017095424916-pat00258
에 의한 나눗셈의 나머지는 정의역의 요소 개수보다 큰 값을 가질 수 있으므로, 상기 알고리즘 1에서 CW의 종료 조건
Figure 112017095424916-pat00259
을 만족시키지 않는
Figure 112017095424916-pat00260
가 FEA 에 대해서도 존재하므로, FEA의 CW가 종료하지 않을 수 있다. 이 경우에
Figure 112017095424916-pat00261
Figure 112017095424916-pat00262
에 의한 나눗셈의 나머지에 대해서
Figure 112017095424916-pat00263
비트 정수의 나눗셈을 이용할 수 있다.
Figure 112017095424916-pat00264
비트 정수의 나눗셈은 128비트 정수의 나눗셈보다 빠르게 처리할 수 있는 경우가 있다는 장점이 있다. 그러나
Figure 112017095424916-pat00265
개의 연속한 암호값에 대해서 후반
Figure 112017095424916-pat00266
개의 값은 전반
Figure 112017095424916-pat00267
개의 반복이므로, 취약점을 갖는다는 문제가 있다.

셋째, 두번째 경우에서 가까운 과거의 출력값이 상관관계를 갖는 것을 막기 위해서, CW에 이용되는 입력값을 제2 확산 함수
Figure 112017095424916-pat00268
를 이용하여 랜덤하게 변경시켜 준다면, 주기 내에서의 직접적인 반복은 없앨 수 있다. 하지만, 여전히
Figure 112017095424916-pat00269
개를 단위로 하여 치역의 값이 반드시 1번 또는 2번 등장한다는 특징에 의해 통계적인 추측이 가능하다는 취약점을 갖는다.

넷째, 주기 내에서의 통계적인 추측을 어렵게 하기 위해서, 제1 확산 함수
Figure 112017095424916-pat00270
을 좋은 성질을 갖는 함수로 선택한다면, 수로서 1씩 증가하는
Figure 112017095424916-pat00271
의 변화를 비트열로서
Figure 112017095424916-pat00272
의 전체로 균등하고 랜덤하게 확산시킬 수 있다. 그 결과로서
Figure 112017095424916-pat00273
개를 단위로 하여 존재하는 통계적인 성질을 없앨 수 있다.

First, the combined value of the nonce and counter
Figure 112017095424916-pat00248
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
Figure 112017095424916-pat00249
Top
Figure 112017095424916-pat00250
Let the value of the bit be the remainder,
Figure 112017095424916-pat00251
The value of the bit is defined as a quotient, and the second diffusion function
Figure 112017095424916-pat00252
To
Figure 112017095424916-pat00253
As a constant function.

Second, to avoid the division of a common 128-bit integer in the first case
Figure 112017095424916-pat00254
of
Figure 112017095424916-pat00255
May be considered. At this time
Figure 112017095424916-pat00256
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
Figure 112017095424916-pat00257
of
Figure 112017095424916-pat00258
The rest of the division by CW may have a value larger than the number of elements of the domain,
Figure 112017095424916-pat00259
Does not satisfy
Figure 112017095424916-pat00260
Is also present for FEA, CW of FEA may not be terminated. In this case
Figure 112017095424916-pat00261
of
Figure 112017095424916-pat00262
For the remainder of division by
Figure 112017095424916-pat00263
You can use bit integer division.
Figure 112017095424916-pat00264
The advantage of division of bit integers is that they can be processed faster than division of 128-bit integers. But
Figure 112017095424916-pat00265
For consecutive cipher values,
Figure 112017095424916-pat00266
The values of
Figure 112017095424916-pat00267
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
Figure 112017095424916-pat00268
, The direct repetition within the period can be eliminated. However,
Figure 112017095424916-pat00269
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
Figure 112017095424916-pat00270
Is selected as a function having a good property,
Figure 112017095424916-pat00271
As a bit string
Figure 112017095424916-pat00272
It is possible to uniformly and randomly diffuse the light beams. As a result
Figure 112017095424916-pat00273
The statistical properties existing in units of dogs can be eliminated.

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete


[알고리즘 2]
전제조건 :

Figure 112017095424916-pat00274
: 암호함수에 이용되는 키로서 랜덤으로 생성되는 것이 바람직하다.
Figure 112017095424916-pat00275
: 개의 자연수.
Figure 112017095424916-pat00277
: 알고리즘 1의 전제조건에 이용되는 값으로서 곱셈값
Figure 112017095424916-pat00278
이다.

입력 :
Figure 112017095424916-pat00279
: 평문 정수열로서 각각
Figure 112017095424916-pat00280
를 만족한다.
Figure 112017095424916-pat00281
: 카운터값으로서
Figure 112017095424916-pat00282
비트 값이다.
Figure 112017095424916-pat00283
: 논스값으로서
Figure 112017095424916-pat00284
비트 값이다. 랜덤으로 생성되는 것이 바람직하다.

출력 :
Figure 112017095424916-pat00285
: 암호 정수열로서 각각
Figure 112017095424916-pat00286
를 만족한다.

단계 :
1. 평문열
Figure 112017095424916-pat00287
을 이용하여 정수
Figure 112017095424916-pat00288
를 계산한다.
2. 알고리즘 1에 대해
Figure 112017095424916-pat00289
,
Figure 112017095424916-pat00290
,
Figure 112017095424916-pat00291
을 입력으로 하여 결과로서 정수
Figure 112017095424916-pat00292
를 얻는다.
3. 정수
Figure 112017095424916-pat00293
로부터 정수열
Figure 112017095424916-pat00294
를 각각
Figure 112017095424916-pat00295
로 계산한다. 여기에서
Figure 112017095424916-pat00296
는 실수
Figure 112017095424916-pat00297
에 대해
Figure 112017095424916-pat00298
보다 크지 않은 최대의 정수이고,
Figure 112017095424916-pat00299
는 정수
Figure 112017095424916-pat00300
Figure 112017095424916-pat00301
에 대해
Figure 112017095424916-pat00302
Figure 112017095424916-pat00303
로 나눈 나머지값이다.
4. 입력 정수열
Figure 112017095424916-pat00304
전체가 암호화 대상이라면,
Figure 112017095424916-pat00305
를 출력한다. 만약
Figure 112017095424916-pat00306
가 암호화 대상이 아닌 경우에는 정수열
Figure 112017095424916-pat00307
에서
Figure 112017095424916-pat00308
를 제외하여
Figure 112017095424916-pat00309
를 출력한다.

복호화의 경우에는 단계 2에서 알고리즘 1의 암호화 함수 대신 복호화 함수를 이용하면 된다.
상기 알고리즘 2에서와 같이
Figure 112017095424916-pat00310
개의 자연수
Figure 112017095424916-pat00311
를 알고리즘 1의 전제조건
Figure 112017095424916-pat00312
로서 자연수의 곱셈값
Figure 112017095424916-pat00313
을 이용하는 방법과는 달리, 하기 실시예 2 와 같이 알고리즘 1을 이용하는 방법도 있다.

[Algorithm 2]
precondition :
Figure 112017095424916-pat00274
: It is preferable to generate randomly as a key used for a cryptographic function.
Figure 112017095424916-pat00275
: Natural number.
Figure 112017095424916-pat00277
: The multiplication value as a value used in the precondition of Algorithm 1
Figure 112017095424916-pat00278
to be.

input :
Figure 112017095424916-pat00279
: Each of the plaintext constants
Figure 112017095424916-pat00280
.
Figure 112017095424916-pat00281
: As a counter value
Figure 112017095424916-pat00282
Bit value.
Figure 112017095424916-pat00283
: As a nonce value
Figure 112017095424916-pat00284
Bit value. It is preferably generated randomly.

Print :
Figure 112017095424916-pat00285
: As cipher constants, respectively
Figure 112017095424916-pat00286
.

step :
1. Plain column heat
Figure 112017095424916-pat00287
Using an integer
Figure 112017095424916-pat00288
.
2. About Algorithm 1
Figure 112017095424916-pat00289
,
Figure 112017095424916-pat00290
,
Figure 112017095424916-pat00291
As a result,
Figure 112017095424916-pat00292
.
3. Integer
Figure 112017095424916-pat00293
From the heat pump
Figure 112017095424916-pat00294
Respectively
Figure 112017095424916-pat00295
. From here
Figure 112017095424916-pat00296
Is a mistake
Figure 112017095424916-pat00297
About
Figure 112017095424916-pat00298
Is the largest integer not greater than < RTI ID = 0.0 >
Figure 112017095424916-pat00299
Is an integer
Figure 112017095424916-pat00300
Wow
Figure 112017095424916-pat00301
About
Figure 112017095424916-pat00302
To
Figure 112017095424916-pat00303
.
4. Input water heat
Figure 112017095424916-pat00304
If the whole is to be encrypted,
Figure 112017095424916-pat00305
. if
Figure 112017095424916-pat00306
Is not an encryption target,
Figure 112017095424916-pat00307
in
Figure 112017095424916-pat00308
Except
Figure 112017095424916-pat00309
.

In the case of decryption, a decryption function may be used in place of the encryption function of the algorithm 1 in step 2.
As in the algorithm 2
Figure 112017095424916-pat00310
Natural number of
Figure 112017095424916-pat00311
Is the precondition of Algorithm 1
Figure 112017095424916-pat00312
The multiplication value of the natural number
Figure 112017095424916-pat00313
There is also a method using the algorithm 1 as in the second embodiment.


[알고리즘 3]
전제조건 :

Figure 112017095424916-pat00314
: 암호함수에 이용되는 키로서 랜덤으로 생성되는 것이 바람직하다.
Figure 112017095424916-pat00315
:
Figure 112017095424916-pat00316
개의 자연수.
Figure 112017095424916-pat00317
: 자연수열
Figure 112017095424916-pat00318
를 중복 없는 자연수열
Figure 112017095424916-pat00319
로 고쳐 적었을 때,
Figure 112017095424916-pat00320
에 의해 정의되는 함수. 정의역을
Figure 112017095424916-pat00321
로 하고 치역을
Figure 112017095424916-pat00322
로 한다.
Figure 112017095424916-pat00323
이 결정되는 것으로서 유일하게 결정될 수 있다.
Figure 112017095424916-pat00324
: 함수
Figure 112017095424916-pat00325
의 역상에 의한
Figure 112017095424916-pat00326
의 분할은
Figure 112017095424916-pat00327
개의 집합
Figure 112017095424916-pat00328
으로 구성된다. 각
Figure 112017095424916-pat00329
에 대해서 역상
Figure 112017095424916-pat00330
의 요소수를
Figure 112017095424916-pat00331
라 하였을 때, 역상
Figure 112017095424916-pat00332
의 요소를 크기순으로 나열한 정수열을
Figure 112017095424916-pat00333
라고 썼을 때, 정의역을
Figure 112017095424916-pat00334
로 하고 치역을
Figure 112017095424916-pat00335
로 하는 단사이며 단조증가하는 함수
Figure 112017095424916-pat00336
를 정의할 수 있다.
Figure 112017095424916-pat00337
이 결정되는 것으로서 유일하게 결정 될수 있다. 한편, 정의에 의해 합성함수
Figure 112017095424916-pat00338
는 정의역의 모든 요소를
Figure 112017095424916-pat00339
에 대응시키는 상수 함수이므로,
Figure 112017095424916-pat00340
는 모두
Figure 112017095424916-pat00341
와 같은 자연수이다.

입력 :
Figure 112017095424916-pat00342
: 평문 정수열로서 각각
Figure 112017095424916-pat00343
를 만족한다.
Figure 112017095424916-pat00344
: 논스값으로서
Figure 112017095424916-pat00345
비트 값이다. 랜덤으로 생성되는 것이 바람직하다.

출력 :
Figure 112017095424916-pat00346
: 암호 정수열로서 각각
Figure 112017095424916-pat00347
를 만족한다.

단계 :
1. 각각의
Figure 112017095424916-pat00348
에 대해서 부분 정수열
Figure 112017095424916-pat00349
을 구성한다.
2. 각각의
Figure 112017095424916-pat00350
에 대해서
Figure 112017095424916-pat00351
를 계산한다.
3. 각각의
Figure 112017095424916-pat00352
에 대해 알고리즘 1을 수행한다. 여기에서 전제조건
Figure 112017095424916-pat00353
Figure 112017095424916-pat00354
로 한다. 평문은
Figure 112017095424916-pat00355
로 입력하고 카운터값
Figure 112017095424916-pat00356
Figure 112017095424916-pat00357
로 입력하며 논스값은
Figure 112017095424916-pat00358
으로 입력하여
Figure 112017095424916-pat00359
개의 암호문
Figure 112017095424916-pat00360
를 얻는다.
4. 각각의
Figure 112017095424916-pat00361
Figure 112017095424916-pat00362
에 대해서
Figure 112017095424916-pat00363
를 계산한다. 만약 어떠한
Figure 112017095424916-pat00364
에 대해서 암호화 대상이 아니라면, 각
Figure 112017095424916-pat00365
에 대해서
Figure 112017095424916-pat00366
로 정의한다. 여기에서
Figure 112017095424916-pat00367
는 실수
Figure 112017095424916-pat00368
에 대해
Figure 112017095424916-pat00369
보다 크지 않은 최대의 정수이고,
Figure 112017095424916-pat00370
는 정수
Figure 112017095424916-pat00371
Figure 112017095424916-pat00372
에 대해
Figure 112017095424916-pat00373
Figure 112017095424916-pat00374
로 나눈 나머지값이다.
5. 각
Figure 112017095424916-pat00375
에 대해서 얻어진 정수열
Figure 112017095424916-pat00376
를 모두 모아 첨자에 의해 정렬을 수행하여
Figure 112017095424916-pat00377
을 얻는다.
6. 정수열
Figure 112017095424916-pat00378
를 출력한다.

복호화의 경우에는, 단계 3에서 알고리즘 1을 수행할 때, 복호화 함수를 이용하면 된다.
상기 알고리즘 2 와 3 에서 가정되어 있는 사항으로서, 형태보존 암호는 임의의 크기를 갖는 수에 대해 적용 가능하다는 것이 있다. 그러나 형태보존 암호가 한번에 처리할 수 있는 수의 크기를 제한하는 것이, 실제 구현상에 있어서는 더 효율적인 구현을 이끌어 낸다.
형태보존 암호가
Figure 112017095424916-pat00379
비트까지 처리할 수 있다고 가정하면, 다음과 같은 방법으로 긴 입력 정수열을 여러 개의 부분 정수열로 나누어 각각에 대해 암호화 및 복호화를 수행할 수 있다.

[Algorithm 3]
precondition :
Figure 112017095424916-pat00314
: It is preferable to generate randomly as a key used for a cryptographic function.
Figure 112017095424916-pat00315
:
Figure 112017095424916-pat00316
Natural number.
Figure 112017095424916-pat00317
: Natural sequence
Figure 112017095424916-pat00318
Natural sequence without redundancy
Figure 112017095424916-pat00319
When you rewrite it,
Figure 112017095424916-pat00320
A function defined by. Domain
Figure 112017095424916-pat00321
And
Figure 112017095424916-pat00322
.
Figure 112017095424916-pat00323
Can be determined solely as being determined.
Figure 112017095424916-pat00324
: function
Figure 112017095424916-pat00325
By the reversed phase of
Figure 112017095424916-pat00326
The division of
Figure 112017095424916-pat00327
A set of
Figure 112017095424916-pat00328
. bracket
Figure 112017095424916-pat00329
Inverse to
Figure 112017095424916-pat00330
The number of elements in
Figure 112017095424916-pat00331
In this case,
Figure 112017095424916-pat00332
A sequence of elements in ascending order of magnitude
Figure 112017095424916-pat00333
When you write,
Figure 112017095424916-pat00334
And
Figure 112017095424916-pat00335
And a monotone increasing function
Figure 112017095424916-pat00336
Can be defined.
Figure 112017095424916-pat00337
Can be determined solely as being determined. On the other hand, by definition,
Figure 112017095424916-pat00338
All elements of the domain
Figure 112017095424916-pat00339
And therefore,
Figure 112017095424916-pat00340
All
Figure 112017095424916-pat00341
Is a natural number.

input :
Figure 112017095424916-pat00342
: Each of the plaintext constants
Figure 112017095424916-pat00343
.
Figure 112017095424916-pat00344
: As a nonce value
Figure 112017095424916-pat00345
Bit value. It is preferably generated randomly.

Print :
Figure 112017095424916-pat00346
: As cipher constants, respectively
Figure 112017095424916-pat00347
.

step :
1. Each
Figure 112017095424916-pat00348
Lt; RTI ID = 0.0 >
Figure 112017095424916-pat00349
.
2. Each
Figure 112017095424916-pat00350
about
Figure 112017095424916-pat00351
.
3. Each
Figure 112017095424916-pat00352
Algorithm 1 is performed. Here,
Figure 112017095424916-pat00353
silver
Figure 112017095424916-pat00354
. The plain text
Figure 112017095424916-pat00355
And the counter value
Figure 112017095424916-pat00356
The
Figure 112017095424916-pat00357
And the nonce value is
Figure 112017095424916-pat00358
By typing
Figure 112017095424916-pat00359
Cipher text
Figure 112017095424916-pat00360
.
4. Each
Figure 112017095424916-pat00361
Wow
Figure 112017095424916-pat00362
about
Figure 112017095424916-pat00363
. If any
Figure 112017095424916-pat00364
Is not an encryption target,
Figure 112017095424916-pat00365
about
Figure 112017095424916-pat00366
. From here
Figure 112017095424916-pat00367
Is a mistake
Figure 112017095424916-pat00368
About
Figure 112017095424916-pat00369
Is the largest integer not greater than < RTI ID = 0.0 >
Figure 112017095424916-pat00370
Is an integer
Figure 112017095424916-pat00371
Wow
Figure 112017095424916-pat00372
About
Figure 112017095424916-pat00373
To
Figure 112017095424916-pat00374
.
5. Each
Figure 112017095424916-pat00375
The obtained pseudo heat
Figure 112017095424916-pat00376
And the alignment is performed by subscripts
Figure 112017095424916-pat00377
.
6. Pump heat
Figure 112017095424916-pat00378
.

In the case of decoding, when performing the algorithm 1 in step 3, a decoding function may be used.
It is assumed in Algorithms 2 and 3 that the shape preservation cipher is applicable for numbers of arbitrary sizes. However, restricting the size of the number of pieces of shape-preserving cipher that can be processed at one time leads to a more efficient implementation in the real world.
Shape preservation password
Figure 112017095424916-pat00379
It is possible to divide a long input sequence into several partial sequences and perform encryption and decryption for each.


[알고리즘 4]
전제 조건 :

Figure 112017095424916-pat00380
: 암호함수에 이용되는 키로서 랜덤으로 생성되는 것이 바람직하다.
Figure 112017095424916-pat00381
:
Figure 112017095424916-pat00382
개의 자연수.
Figure 112017095424916-pat00383
: 정수열.
Figure 112017095424916-pat00384
에서부터
Figure 112017095424916-pat00385
를 만족하도록 순차적으로 선택한다. 자연수열
Figure 112017095424916-pat00386
의 분할에 대한 곱이 앞에서부터 제일 크게 되도록 선택하는 방법을 이용해
Figure 112017095424916-pat00387
에 대해 유일하게 결정할 수 있다.

입력 :
Figure 112017095424916-pat00388
: 평문 정수열로서 각각
Figure 112017095424916-pat00389
를 만족한다.
Figure 112017095424916-pat00390
: 논스값으로서
Figure 112017095424916-pat00391
비트 값이다. 랜덤으로 생성되는 것이 바람직하다.

출력 :
Figure 112017095424916-pat00392
: 암호 정수열로서 각각
Figure 112017095424916-pat00393
를 만족한다.

단계 :
1. 정수열
Figure 112017095424916-pat00394
에서 각
Figure 112017095424916-pat00395
에 대해
Figure 112017095424916-pat00396
를 이용하여 부분 정수열
Figure 112017095424916-pat00397
를 첨자에 의해 선택한다.
2. 각
Figure 112017095424916-pat00398
에 대하여 평문 정수열로서 부분 정수열
Figure 112017095424916-pat00399
를 입력하고, 카운터값으로서
Figure 112017095424916-pat00400
을 입력하고 논스값으로
Figure 112017095424916-pat00401
을 입력하여 알고리즘 2를 수행한다. 알고리즘 2의 출력으로서 암호 정수열
Figure 112017095424916-pat00402
를 얻는다.
3. 각
Figure 112017095424916-pat00403
에 대한 암호 정수열
Figure 112017095424916-pat00404
를 모두 모아 첨자에 의해 정렬하여 정수열
Figure 112017095424916-pat00405
를 얻는다.
4. 정수열
Figure 112017095424916-pat00406
를 출력한다.

[Algorithm 4]
precondition :
Figure 112017095424916-pat00380
: It is preferable to generate randomly as a key used for a cryptographic function.
Figure 112017095424916-pat00381
:
Figure 112017095424916-pat00382
Natural number.
Figure 112017095424916-pat00383
: Integer.
Figure 112017095424916-pat00384
From
Figure 112017095424916-pat00385
Are sequentially selected. Natural sequence
Figure 112017095424916-pat00386
Using the method of selecting the product of the division of
Figure 112017095424916-pat00387
≪ / RTI >

input :
Figure 112017095424916-pat00388
: Each of the plaintext constants
Figure 112017095424916-pat00389
.
Figure 112017095424916-pat00390
: As a nonce value
Figure 112017095424916-pat00391
Bit value. It is preferably generated randomly.

Print :
Figure 112017095424916-pat00392
: As cipher constants, respectively
Figure 112017095424916-pat00393
.

step :
1. Pump heat
Figure 112017095424916-pat00394
In each
Figure 112017095424916-pat00395
About
Figure 112017095424916-pat00396
,
Figure 112017095424916-pat00397
Are selected by subscripts.
2. Each
Figure 112017095424916-pat00398
A partial padded string
Figure 112017095424916-pat00399
And as a counter value,
Figure 112017095424916-pat00400
And enter the value
Figure 112017095424916-pat00401
To perform algorithm 2. As the output of the algorithm 2,
Figure 112017095424916-pat00402
.
3. Each
Figure 112017095424916-pat00403
Ciphers
Figure 112017095424916-pat00404
Are collected and sorted by subscripts,
Figure 112017095424916-pat00405
.
4. Water heat
Figure 112017095424916-pat00406
.


[알고리즘 5]
전제 조건 :

Figure 112017095424916-pat00407
: 암호함수에 이용되는 키로서 랜덤으로 생성되는 것이 바람직하다.
Figure 112017095424916-pat00408
:
Figure 112017095424916-pat00409
개의 자연수. 중복 없는 자연수열
Figure 112017095424916-pat00410
로 고쳐 적을 수 있다.
Figure 112017095424916-pat00411
,
Figure 112017095424916-pat00412
: 알고리즘 3의 전제조건에서와 같이
Figure 112017095424916-pat00413
에 의해 결정되는 함수이다.
Figure 112017095424916-pat00414
:
Figure 112017095424916-pat00415
에 대해 각각 정의되는 정수열.
Figure 112017095424916-pat00416
에서부터
Figure 112017095424916-pat00417
Figure 112017095424916-pat00418
를 만족하도록 순차적으로 선택한다. 여기에서
Figure 112017095424916-pat00419
는 역상
Figure 112017095424916-pat00420
요소수이다. 자연수열
Figure 112017095424916-pat00421
의 분할에 대한 곱이 앞에서부터 제일 크게 되도록 선택하는 방법을 이용해
Figure 112017095424916-pat00422
에 대해 유일하게 결정할 수 있다.

입력 :
Figure 112017095424916-pat00423
: 평문 정수열로서 각각
Figure 112017095424916-pat00424
를 만족한다.
Figure 112017095424916-pat00425
: 논스값으로서
Figure 112017095424916-pat00426
비트 값이다. 랜덤으로 생성되는 것이 바람직하다.

출력 :
Figure 112017095424916-pat00427
: 암호 정수열로서 각각
Figure 112017095424916-pat00428
를 만족한다.

단계 :
1. 각각의
Figure 112017095424916-pat00429
에 대해서 부분 정수열
Figure 112017095424916-pat00430
을 구성한다.
2. 각각의
Figure 112017095424916-pat00431
Figure 112017095424916-pat00432
에 대해서,
Figure 112017095424916-pat00433
개의
Figure 112017095424916-pat00434
를 전제조건의 자연수열로 하고, 부분 정수열
Figure 112017095424916-pat00435
을 평문 정수열로 입력하고
Figure 112017095424916-pat00436
을 카운터로 입력하여 알고리즘 2를 수행한다. 알고리즘 2의 출력으로 암호 정수열
Figure 112017095424916-pat00437
를 얻는다.
3. 각각의
Figure 112017095424916-pat00438
Figure 112017095424916-pat00439
에 대한 암호 정수열
Figure 112017095424916-pat00440
를 모두 모아 첨자에 의해 정렬하여 정수열
Figure 112017095424916-pat00441
를 얻는다.
4. 정수열
Figure 112017095424916-pat00442
를 출력한다.

[Algorithm 5]
precondition :
Figure 112017095424916-pat00407
: It is preferable to generate randomly as a key used for a cryptographic function.
Figure 112017095424916-pat00408
:
Figure 112017095424916-pat00409
Natural number. Without duplication Natural sequence
Figure 112017095424916-pat00410
Can be rewritten as.
Figure 112017095424916-pat00411
,
Figure 112017095424916-pat00412
: As in the precondition of Algorithm 3
Figure 112017095424916-pat00413
. ≪ / RTI >
Figure 112017095424916-pat00414
:
Figure 112017095424916-pat00415
A string of integers, each defined for.
Figure 112017095424916-pat00416
From
Figure 112017095424916-pat00417
Wow
Figure 112017095424916-pat00418
Are sequentially selected. From here
Figure 112017095424916-pat00419
Inverse phase
Figure 112017095424916-pat00420
of Number of elements. Natural sequence
Figure 112017095424916-pat00421
Using the method of selecting the product of the division of
Figure 112017095424916-pat00422
≪ / RTI >

input :
Figure 112017095424916-pat00423
: Each of the plaintext constants
Figure 112017095424916-pat00424
.
Figure 112017095424916-pat00425
: As a nonce value
Figure 112017095424916-pat00426
Bit value. It is preferably generated randomly.

Print :
Figure 112017095424916-pat00427
: As cipher constants, respectively
Figure 112017095424916-pat00428
.

step :
1. Each
Figure 112017095424916-pat00429
Lt; RTI ID = 0.0 >
Figure 112017095424916-pat00430
.
2. Each
Figure 112017095424916-pat00431
Wow
Figure 112017095424916-pat00432
about,
Figure 112017095424916-pat00433
doggy
Figure 112017095424916-pat00434
As a natural sequence of preconditions,
Figure 112017095424916-pat00435
Into a plaintext string
Figure 112017095424916-pat00436
Is input to the counter and the algorithm 2 is performed. As the output of Algorithm 2,
Figure 112017095424916-pat00437
.
3. Each
Figure 112017095424916-pat00438
Wow
Figure 112017095424916-pat00439
Ciphers
Figure 112017095424916-pat00440
Are collected and sorted by subscripts,
Figure 112017095424916-pat00441
.
4. Water heat
Figure 112017095424916-pat00442
.


[알고리즘 6]
전제 조건 :

Figure 112017095424916-pat00443
: 암호화 함수에 이용되는 키이다. 랜덤으로 생성되는 것이 바람직하다.
Figure 112017095424916-pat00444
: 문자집합에 속하는 부분 문자집합.
Figure 112017095424916-pat00445
: 각
Figure 112017095424916-pat00446
는 부분 문자집합
Figure 112017095424916-pat00447
의 요소수.
Figure 112017095424916-pat00448
: 부분 문자집합
Figure 112017095424916-pat00449
의 요소를 정수의 부분집합
Figure 112017095424916-pat00450
의 요소에 일대일로 대응시키는 전단사 함수.

입력 :
Figure 112017095424916-pat00451
:
Figure 112017095424916-pat00452
개의 문자로 구성된 문자열로서 각각의 문자
Figure 112017095424916-pat00453
는 어떠한 부분 문자집합의 요소이다.
Figure 112017095424916-pat00454
: 카운터값으로서
Figure 112017095424916-pat00455
비트 값이다. 알고리즘 2를 이용하는 경우에 필요하다.
Figure 112017095424916-pat00456
: 논스값으로서
Figure 112017095424916-pat00457
비트 값이다. 랜덤으로 생성되는 것이 바람직하다.

출력 :
Figure 112017095424916-pat00458
:
Figure 112017095424916-pat00459
개의 문자로 구성된 문자열. 각각의 문자
Figure 112017095424916-pat00460
는 문자
Figure 112017095424916-pat00461
와 동일한 부분 문자집합의 요소이다.

단계 :
1. 입력 문자열
Figure 112017095424916-pat00462
에 대해 각각의 문자가 속하는 부분 문자집합
Figure 112017095424916-pat00463
을 찾는다. 이때, 함수
Figure 112017095424916-pat00464
는 입력 문자열의 첨자 집합
Figure 112017095424916-pat00465
의 요소를 부분 문자집합의 첨자 집합
Figure 112017095424916-pat00466
의 요소에 대응시키며, 문자
Figure 112017095424916-pat00467
는 부분 문자집합
Figure 112017095424916-pat00468
의 요소이다.
2. 각 문자
Figure 112017095424916-pat00469
를 정수
Figure 112017095424916-pat00470
로 변환한다.
3. 알고리즘 2~5 중 하나에 대해서
Figure 112017095424916-pat00471
를 전제조건의 자연수열로 하고, 정수열
Figure 112017095424916-pat00472
을 평문 정수열로 입력하고, 입력된 논스값을 입력하고, 필요한 경우 카운터값을 입력하여 수행한다. 알고리즘의 수행 결과로 암호 정수열
Figure 112017095424916-pat00473
을 얻는다.
4. 암호 정수열
Figure 112017095424916-pat00474
와 역함수
Figure 112017095424916-pat00475
를 이용하여 출력 문자열
Figure 112017095424916-pat00476
을 얻는다.
[Algorithm 6]
precondition :
Figure 112017095424916-pat00443
: This is the key used for the encryption function. It is preferably generated randomly.
Figure 112017095424916-pat00444
: A partial character set belonging to a character set.
Figure 112017095424916-pat00445
: Angle
Figure 112017095424916-pat00446
Is a partial character set
Figure 112017095424916-pat00447
Number of elements in.
Figure 112017095424916-pat00448
: Partial character set
Figure 112017095424916-pat00449
Elements of a subset of integers
Figure 112017095424916-pat00450
One-to-one correspondence of the elements of the shear function.

input :
Figure 112017095424916-pat00451
:
Figure 112017095424916-pat00452
As a string consisting of four characters, each character
Figure 112017095424916-pat00453
Is an element of any partial character set.
Figure 112017095424916-pat00454
: As a counter value
Figure 112017095424916-pat00455
Bit value. This is necessary when Algorithm 2 is used.
Figure 112017095424916-pat00456
: As a nonce value
Figure 112017095424916-pat00457
Bit value. It is preferably generated randomly.

Print :
Figure 112017095424916-pat00458
:
Figure 112017095424916-pat00459
A string of characters. Each character
Figure 112017095424916-pat00460
Character
Figure 112017095424916-pat00461
Is an element of the same partial character set.

step :
1. Input string
Figure 112017095424916-pat00462
The partial character set to which each character belongs
Figure 112017095424916-pat00463
. At this time,
Figure 112017095424916-pat00464
Is a set of subscripts of the input string
Figure 112017095424916-pat00465
Element of a partial character set
Figure 112017095424916-pat00466
To the element of < RTI ID = 0.0 >
Figure 112017095424916-pat00467
Is a partial character set
Figure 112017095424916-pat00468
.
2. Each character
Figure 112017095424916-pat00469
Integer
Figure 112017095424916-pat00470
.
3. For one of the algorithms 2 to 5
Figure 112017095424916-pat00471
As the natural sequence of the prerequisite condition,
Figure 112017095424916-pat00472
Is entered as a plain-text integer, the input nonce value is input, and a counter value is input if necessary. As a result of the algorithm,
Figure 112017095424916-pat00473
.
4. Password cipher
Figure 112017095424916-pat00474
And inverse function
Figure 112017095424916-pat00475
To output string
Figure 112017095424916-pat00476
.

5. 열

Figure 112017095424916-pat00477
한다.5. Column
Figure 112017095424916-pat00477
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.
제1항에 있어서,
상기 사전처리부는 표현가능한 모든 문자에 대해서 각각의 문자가 최대한 한번 포함되는 부분문자집합을 정의하는 부분문자집합 정의부;
상기 부분문자집합 정의부에서 정의된 각각의 부분문자집합에 대해서 부분문자집합 사이의 암호화/복호화 순서를 정의하는 부분문자집합 암호화/복호화 순서 정의부; 및
상기 부분문자집합 정의부에서 정의된 각각의 부분문자집합에 대해서 동일한 부분문자집합에 속하는 각각의 문자 사이의 순서를 정의하는 부분문자집합 문자순서 정의부;를 포함하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
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.
제1항에 있어서,
상기 암호화/복호화 시스템은, 상기 사전처리부에 의해 정의된 부분문자집합에 포함되지 않는 문자가 있을 경우, 상기 입력값을 그대로 출력하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
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.
제1항에 있어서,
상기 암호화/복호화부는, 입력값을 입력값과 동일한 길이의 암호문/평문으로 변환하는 형태보존암호화 함수를 포함하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
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.
제5항에 있어서,
상기 설정부는, 상기 암호화/복호화 시스템에서 사용할 가변 블록 암호화 함수, 제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.
제6항에 있어서,
상기 가변 블록 암호화 함수는 트윅값이 이용 가능한 형태보존 암호화 함수, 블록암호를 포함한 메시지 인증 코드 또는 암호키를 포함한 메시지 인증 코드;를 포함하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
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.
제6항에 있어서,
상기 난수 비트열 생성부는, 상기 카운터값에 확산 함수를 적용하여 확산값을 생성하는 확산값 생성부;및
상기 가변 블록 암호화 함수를 이용하여 확산값을 암호화하는 확산값 암호화부;를 포함하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
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.
제8항에 있어서,
상기 확산값 생성부는, 논스값과 상기 카운터값의 결합값을 카운터값으로 하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
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.
제8항에 있어서,
상기 확산값 암호화부는, 확산값 암호값이 치역에 속하면, 상기 암호 결합부로 상기 확산값 암호값을 전송하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
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.
제8항에 있어서,
상기 확산값 암호화부는, 상기 확산값 암호화부의 제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.
제8항에 있어서,
상기 확산값 생성부에 적용될 함수는,
카운터값에 대해 카운터값을 변경시키지 않는 동치함수, 카운터값을 비트열로서 순환시키는 함수, 부분 블록의 순서를 변경하는 함수, 카운터값에 대한 해시값을 바람직한 확산값 크기에 맞춰 자르는 함수, 임의의 트윅을 이용한 가변 블록 암호 함수, 모듈로에 의한 몫과 나머지 값을 모듈로의 비트 크기에 맞게 정렬하는 함수 또는 이 함수들의 합성함수를 포함하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
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. .
제5항에 있어서,
상기 암호 결합부는, 상기 난수 비트열 생성부에서 상기 암호 결합부로 전송된 확산값 암호값에 상기 입력값을 결합하여 암호화값을 생성하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
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.
제13항에 있어서,
상기 암호화/복호화 시스템은, 상기 암호화값을 치역에 속하도록 모듈로 연산하여 암호문/평문을 생성하는 것을 특징으로 하는, 다중 형태를 보존하는 암호화/복호화 시스템.
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.
KR1020170094515A 2017-07-26 2017-07-26 Encryption and Decryption System KR101790325B1 (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113486126A (en) * 2021-07-20 2021-10-08 西安地球环境创新研究院 Underground water big data platform

Citations (2)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
CA3007348A1 (en) Fast format-preserving encryption for variable length data
CN109951268B (en) Encryption and decryption method and device based on bit permutation and bit permutation
Marzan et al. An enhanced key security of Playfair cipher algorithm
Geetha et al. Tamilian cryptography: an efficient hybrid symmetric key encryption algorithm
US20220311596A1 (en) A computer-implemented method of performing feistel-network-based block-cipher encryption of plaintext
Rajput et al. An improved cryptographic technique to encrypt text using double encryption
Sermeno et al. Modified Vigenere cryptosystem: An integrated data encryption module for learning management system
KR101445339B1 (en) Integrated cryptographic apparatus for providing confidentiality and integrity
US20020136400A1 (en) R-conversion encryption method and system
WO2015166701A1 (en) Encryption method, program, and system
KR101790325B1 (en) Encryption and Decryption System
AL-Shakarchy et al. Cryptographic system based on Unicode
US11038668B2 (en) Transposition encryption alphabet method (TEAM)
AB et al. A New Security Mechanism for Secured Communications Using Steganography and CBA
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
CN111314052A (en) Data encryption and decryption method based on uniformly distributed symmetric compression algorithm
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
Jirjees et al. Text Encryption by Indexing ASCII of Characters Based on the Locations of Pixels of the Image
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