KR20030000720A - Symmetric key block cipher algorithm design method with no operation between key and plaintext - Google Patents

Symmetric key block cipher algorithm design method with no operation between key and plaintext Download PDF

Info

Publication number
KR20030000720A
KR20030000720A KR1020010036798A KR20010036798A KR20030000720A KR 20030000720 A KR20030000720 A KR 20030000720A KR 1020010036798 A KR1020010036798 A KR 1020010036798A KR 20010036798 A KR20010036798 A KR 20010036798A KR 20030000720 A KR20030000720 A KR 20030000720A
Authority
KR
South Korea
Prior art keywords
key
round
block
algorithm
function
Prior art date
Application number
KR1020010036798A
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 KR1020010036798A priority Critical patent/KR20030000720A/en
Publication of KR20030000720A publication Critical patent/KR20030000720A/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Abstract

PURPOSE: A method for designing a symmetric key block cipher algorithm without calculation between a key and a plaintext is provided to obtain a high degree of encryption by varying an executing routine of an algorithm according to key values and by not performing a calculation process between a round key and a round block. CONSTITUTION: An input process is performed to receive a secret key corresponding to a size of 8 bitsxr(r is a positive integer) and a plaintext corresponding to a size of a multiple of 8(S10). Round keys of r number are generated by using the secret key according to a predetermined key scheduling algorithm(S12). The plaintext is encoded by performing repeatedly a round calculation process by using a bijective function selected according to the round keys of r number(S14). An output process is performed to output a cipher text generated from an encryption process(S16).

Description

키와 평문 사이에 연산이 이루어지지 않는 대칭키 블록 암호 알고리즘 설계방법{SYMMETRIC KEY BLOCK CIPHER ALGORITHM DESIGN METHOD WITH NO OPERATION BETWEEN KEY AND PLAINTEXT}SYMMETRIC KEY BLOCK CIPHER ALGORITHM DESIGN METHOD WITH NO OPERATION BETWEEN KEY AND PLAINTEXT}

본 발명은 암호 알고리즘 설계 방법에 관한 것으로, 구체적으로는 대칭키 블록 암호 알고리즘(symmetric key block cipher algorithm)의 설계 방법에 관한 것으로 라운드 키(round key) 값에 따라 알고리즘의 수행 루틴을 달리하며, 라운드 키와 라운드 블록(round block) 사이에 연산이 행하여지지 않아 높은 비도를 얻을 수 있는 대칭키 블록 암호 알고리즘의 설계 방법에 관한 것이다.The present invention relates to a method for designing a cryptographic algorithm, and more particularly, to a method for designing a symmetric key block cipher algorithm, wherein a routine of performing an algorithm is changed according to a round key value. The present invention relates to a method of designing a symmetric key block cryptographic algorithm in which a high degree of non-computation is obtained between a key and a round block.

현대 사회에서 인터넷은 생활의 일부가 되어가고 있다. 인터넷은 시간적, 거리적 제약을 없애면서 점차 하나의 거대한 정보 창구가 되어가고 있다. 최근에는 많은 사람들이 상점에서 물건을 구매하는 대신 전자상거래를 이용하여 상품 구매를 하면서 인터넷은 점차 경제 활동에도 깊게 영향을 미치고 있다. 컴퓨터 보급의 확대와 인터넷 사용자의 증가는 정보 보호의 중요성을 증대시키고 있다. 정보 보호는 정보 보호 서비스의 제공에 의해 이루어지며 정보 보호 서비스를 제공하는 가장 일반적인 방법은 암호 시스템을 사용하는 것이다.In modern society, the Internet is becoming part of life. The Internet is gradually becoming a huge information point by eliminating time and distance constraints. In recent years, the Internet has been profoundly affecting economic activity as many people buy products using e-commerce instead of purchasing in stores. The proliferation of computers and the growing number of Internet users have increased the importance of protecting information. Information protection is achieved by the provision of information protection services, and the most common way of providing information protection services is through the use of cryptographic systems.

암호 시스템을 이용한 보안 방법에는 하드웨어적인 방법과 소프트웨어적인방법 두 가지가 있다. 그러나 하드웨어적인 방법의 경우, 이용 대상에 따른 유연성이 떨어진다는 단점을 가지고 있으므로 일반 사용자들을 위한 시스템의 경우에는 소프트웨어적인 방법이 주로 사용되고 있다.There are two methods of security using cryptosystems: hardware and software. However, since the hardware method has a disadvantage in that flexibility is inferior to the use target, a software method is mainly used in a system for general users.

암호 시스템은 정보에 대한 다양한 공격으로부터 정보를 보호하기 위한 것이다. 공격의 유형은 여러 가지가 있는데, 대표적으로 방해(interruption), 가로채기(interception), 위조/변조(modification), 위장(fabrication) 등이 있다. 이러한 공격 방법은 서로 유기적인 관계를 가지고 있으므로, 정보를 안전하게 보호하기 위해서는 각각의 공격방법으로부터 안전한 메커니즘을 찾고 이들을 조합한 보안 기술을 이용하여 정보가 안전하도록 해야한다. 이러한 암호 시스템은 가용성(interruption-availability), 기밀성(interception-confidentiality), 무결성(modification-integrity) 및 인증(fabrication-authentication)의 특성을 제공하기 위하여 사용된다.Cryptographic systems are intended to protect information from various attacks on it. There are many types of attacks, such as interruption, interception, forgery / modification, and fabrication. Since these attack methods have an organic relationship with each other, in order to secure the information, it is necessary to find a safe mechanism from each attack method and to make the information safe using a combination of security technologies. Such cryptosystems are used to provide the characteristics of interruption-availability, interception-confidentiality, modification-integrity, and fabrication-authentication.

암호 알고리즘은 특정 내용을 정해진 사람만이 알 수 있도록 하기 위하여 개발되기 시작했다. 지금까지 암호 알고리즘은 많은 발전을 거듭하였고, 현재 DES(Data Encryption Standard), RSA(Rivest, Shamir, Adleman) 등의 보다 발전된 암호 알고리즘으로 변환되어 왔다.Cryptographic algorithms are being developed to ensure that only certain people know specific content. To date, cryptographic algorithms have evolved a lot and have been converted to more advanced cryptographic algorithms such as Data Encryption Standard (DES) and RSA (Rivest, Shamir, Adleman).

암호 알고리즘은 암호화 알고리즘과 복호화 알고리즘으로 구성된다. 암호화 알고리즘은 암호화 키(encryption key)를 사용하며, 복호화 알고리즘은 복호화 키(decryption key)를 사용한다. 암호화 및 복호화 알고리즘은 일종의 함수로써 각기 암호화(복호화) 키와 평문(암호문)을 입력으로 받아서 암호문(평문)을 생성한다.The encryption algorithm consists of encryption algorithm and decryption algorithm. The encryption algorithm uses an encryption key, and the decryption algorithm uses a decryption key. Encryption and decryption algorithms are a kind of function, each of which receives an encryption (decryption) key and a plain text (cipher text) as input and generates a cipher text (plain text).

암호 알고리즘은 크게 비밀키 암호(secret-key cryptography) 알고리즘과 공개키 암호(public-key cryptography) 알고리즘으로 구분할 수 있다. 비밀키 암호 알고리즘은 암호화 키와 복호화 키가 동일하여 대칭키 암호 알고리즘(symmetric key encryption algorithm)이라고도 하며, 공개키 암호 알고리즘은 이들이 서로 달라 비대칭키 암호 알고리즘(asymmetric key encryption algorithm)이라고도 한다. 대칭키 암호 시스템은 암호화 단위에 의해 스트림 암호 알고리즘(stream encryption algorithm) 과 블록 암호 알고리즘(block encryption algorithm)으로 구분된다. 스트림 암호 알고리즘은 비트 또는 바이트 단위로 암호화하고, 블록 암호 알고리즘은 블록 단위로 암호화한다. 그리고 전자 서명(digital signature)등에 이용되는 해쉬 알고리즘(hash algorithm)이 있다.Cryptographic algorithms can be broadly classified into secret-key cryptography algorithms and public-key cryptography algorithms. The secret key encryption algorithm is called a symmetric key encryption algorithm because the encryption key and the decryption key are the same, and the public key encryption algorithm is also called an asymmetric key encryption algorithm. The symmetric key encryption system is divided into a stream encryption algorithm and a block encryption algorithm by an encryption unit. The stream cipher algorithm encrypts in bits or bytes, and the block cipher algorithm encrypts in blocks. And a hash algorithm that is used for digital signatures.

지금까지 대칭키 블록 암호 알고리즘을 위한 많은 기본 구조들이 제안되었다. 그 중에서 파이스텔 네트웍(feistel network)은 가장 많이 사용되는 기본 구조이며, 지금까지 제안된 대부분의 대칭키 블록 암호 알고리즘은 이 파이스텔 네트웍에 기반하고 있다. 대칭 키 블록 암호 알고리즘에서 입력 값은 키와 평문이며, 이들은 대칭 키 블록 암호 알고리즘의 고정된 루틴을 통하여 암호문으로 생성된다.Many basic structures for symmetric key block cryptographic algorithms have been proposed. Among them, the feistel network is the most commonly used basic structure, and most of the symmetric key block cryptographic algorithms proposed so far are based on this FIELStel network. In symmetric key block cryptographic algorithms, the input values are keys and plain text, which are generated as ciphertext through a fixed routine of the symmetric key block cryptographic algorithm.

도 1은 대칭 키 블록 암호 알고리즘에 사용되는 전형적인 파이스텔 네트워크의 기본 구조를 보여주는 도면이다.1 shows the basic structure of a typical Fiestel network used in a symmetric key block cryptographic algorithm.

도면을 참조하여,K i(i=1,2,3,...)는 키 스케줄링 알고리즘에 의해 생성된라운드 키(round key)이며,L 0R 0은 입력된 평문의 왼쪽 절반과 오른쪽 절반이다. 심벌는 배타적 논리합(exclusive OR) 연산을 의미한다. 대칭키 블록 암호 알고리즘의 동작 과정은 다음과 같다.Referring to the drawings, K i (i = 1,2,3, ...) is a round key generated by a key scheduling algorithm, and L 0 and R 0 are the left half and right of the input plaintext. Half. symbol Means an exclusive OR operation. The operation process of the symmetric key block encryption algorithm is as follows.

먼저, 키 스케줄링 알고리즘을 수행하여 라운드 키들K i(i=1,2,3,...)을 생성한다. 그리고 각 라운드에서는 알고리즘의 고정된 함수F에 의해 입력R i-1K i의 연산이 수행되고, 그 결과F(R i-1,K i)는L i-1과 배타적 논리합의 연산이 이루어진다. 그리고 최종 연산 결과L i-1 F(R i-1,K i)는 다음 라운드의 입력R i로 제공되며, 전 라운드의 입력R i-1은 다음 라운드의 입력L i로 제공된다. 이와 같은 대칭 키 블록 암호 알고리즘의 수행이 완료되어 최종 라운드에서 출력되는 한 쌍의R r,L r가 암호문이 된다. 이를 수학식으로 표시하면 하기 수학식 1과 같다.First, a key scheduling algorithm is performed to generate round keys K i (i = 1,2,3, ...). In each round, the operation of inputs R i-1 and K i is performed by the fixed function F of the algorithm, and as a result, F ( R i-1 , K i ) is the exclusive OR of L i-1. . And the final result L i-1 F (R i-1, K i) is provided as an input R i of the next round, and the input R i-1 of the prior round is provided as an input L i of the next round. The execution of the symmetric key block encryption algorithm is completed, and a pair of R r and L r output in the final round becomes a ciphertext. This is represented by the following equation (1).

F(R i-1,K i) F ( R i-1 , K i )

L i=R i-1 L i = R i-1

이와 같이 대칭 키 블록 암호 알고리즘은 평문이 주어지면 알고리즘에서 기술한 고정된 루틴(고정된 함수)을 통하여 암호문을 생성하며, 각 라운드에서는 서브 키와 서브 블록 사이에 연산이 이루어진다.As such, the symmetric key block cipher algorithm generates ciphertext through a fixed routine (fixed function) described in the algorithm given a plaintext, and operations are performed between subkeys and subblocks in each round.

한편, 이와 같은 파이스텔 암호(feistel cipher)에 대한 다양한 공격 방법들이 제안되고 있는데, 대표적인 것으로는 차분 분석법(differential cryptanalysis)과 선형 분석법(linear cryptanalysis)이 있다. 이들은 파이스텔 네트웍은 각 라운드에서 라운드 블록과 라운드 키 사이에 연산이 이루어진다는 성질을 이용하고 있다. 또한 지금까지 제안된 파이스텔 네트웍에서는 그 특성상 라운드 키와 평문의 길이가 동시에 가변인 대칭 키 블록 암호 알고리즘을 설계하기가 어려운 것으로 알려지고 있다.On the other hand, various attack methods have been proposed for the Feistel cipher, and the representative ones include differential cryptanalysis and linear cryptanalysis. They take advantage of the fact that the Fiestel network operates between round blocks and round keys in each round. In addition, it has been known that it is difficult to design a symmetric key block cryptographic algorithm in which the length of round key and plain text are variable at the same time in the proposed Feistel network.

만약, 대칭키 블록 암호 알고리즘을 이용한 암호화 방법에서 키 값에 따라 알고리즘의 수행 루틴을 달리하며, 라운드 키와 라운드 블록 사이에 어떠한 연산도 수행되지 않도록 한다면 높은 비도를 확보할 수 있는 암호화 방법을 제공할 수 있을 것이다.If the encryption method using the symmetric key block cipher algorithm differs in the execution routine of the algorithm according to the key value, and if no operation is performed between the round key and the round block, an encryption method that can secure a high degree of security may be provided. Could be.

따라서, 본 발명의 목적은 상술한 제반 문제점을 해결하기 위해 제안된 것으로서 키 값에 따라 알고리즘의 수행 루틴을 달리하며, 라운드 키와 라운드 블록 사이에 연산이 수행되지 않는 대칭키 블록 암호 알고리즘의 설계 방법을 제공하는데 있다.Accordingly, an object of the present invention is proposed to solve the above-mentioned problems, and a method of designing a symmetric key block cryptographic algorithm in which an algorithm execution routine differs according to a key value and no operation is performed between a round key and a round block. To provide.

본 발명의 다른 목적은 라운드 키와 평문의 길이가 동시에 가변인 대칭 키 블록 암호 알고리즘을 제공할 수 있는 설계 방법을 제공하는데 있다.Another object of the present invention is to provide a design method capable of providing a symmetric key block cryptographic algorithm having a variable length of a round key and a plain text.

도 1은 대칭 키 블록 암호 알고리즘에 사용되는 전형적인 파이스텔 네트워크의 기본 구조를 보여주는 도면;1 shows the basic structure of a typical Fiestel network used in a symmetric key block cryptographic algorithm;

도 2는 본 발명의 바람직한 실시예에 따른 대칭키 블록 암호 알고리즘을 이용한 암호화 방법의 메인 플로우챠트;2 is a main flowchart of an encryption method using a symmetric key block encryption algorithm according to a preferred embodiment of the present invention;

도 3은 도 2의 키 스케줄링 서브루틴의 플로우챠트;3 is a flowchart of the key scheduling subroutine of FIG. 2;

도 4는 본 발명의 바람직한 실시예에 따른 키 스케줄링 알고리즘을 도식화한 블록도;4 is a block diagram illustrating a key scheduling algorithm in accordance with a preferred embodiment of the present invention;

도 5는 라운드 키를 이용하여 10개의 정수를 구하는 일 예를 설명하기 위한 도면;5 is a view for explaining an example of obtaining ten integers using a round key;

도 6은 본 발명의 바람직한 실시예에 따른 도 2의 라운드 연산 처리 서브루틴을 보여주는 플로우챠드;6 is a flowchart showing the round operation processing subroutine of FIG. 2 in accordance with a preferred embodiment of the present invention;

도 7은 도 6의 보수 함수의 서브루틴을 보여주는 플로우챠트;7 is a flowchart showing a subroutine of the complement function of FIG. 6;

도 8은 도 6의 전이 함수의 서브루틴을 보여주는 플로우챠트;8 is a flowchart showing a subroutine of the transition function of FIG. 6;

도 9는 도 6의 대치 함수의 서브루틴을 보여주는 플로우챠트;9 is a flowchart showing a subroutine of the substitution function of FIG. 6;

도 10은 도 9의 S-XOR 함수의 서브루틴을 보여주는 플로우챠트; 그리고10 is a flowchart showing a subroutine of the S-XOR function of FIG. 9; And

도 11은 도 6의 쉬프트 함수의 서브루틴을 보여주는 플로우챠트이다.FIG. 11 is a flowchart showing a subroutine of the shift function of FIG. 6.

상술한 바와 같은 본 발명의 목적을 달성하기 위한 본 발명의 특징에 의하면, 본 발명의 대칭키 블록 암호 알고리즘을 이용한 암호화 방법은: 비밀키와 평문을 입력받는 단계; 키 스케줄링 알고리즘에 따라 비밀키로부터 복수개의 라운드 키를 생성하는 단계; 생성된 복수개의 라운드 키에 따라 선택되는 전단사 함수 및 이들의 합성 함수들로 각 라운드 블록의 상을 구하는 과정을 반복하여 암호문을 생성하는 라운드 블록 연산 단계; 라운드 블록 연산 단계에서 생성된 암호문을 출력하는 단계를 포함한다.According to a feature of the present invention for achieving the object of the present invention as described above, the encryption method using a symmetric key block encryption algorithm of the present invention comprises: receiving a secret key and plain text; Generating a plurality of round keys from a secret key according to a key scheduling algorithm; A round block operation step of generating a cipher text by repeating a process of obtaining an image of each round block using a shear history function selected from a plurality of generated round keys and their synthesis functions; Outputting a cipher text generated in the round block operation step.

본 발명의 바람직한 실시예에 있어서, 상기 비밀키는 n비트×r(n, r은 양의 정수)로 구성되며, 상기 키 스케줄링 알고리즘에 의해 r개의 라운드 키가 생성된다. 여기서 비밀키를K=k 1k 2k 3...∥k r-1k r(k는 n비트, '∥'는 연접)로, r개의 라운드 키를K 1,K 2,K 3, ...,K r-1,K r로 각각 정의하면 라운드 키는K i =k ik r-i+1(1≤i≤r, i는 정수)로 결정된다.In a preferred embodiment of the present invention, the secret key is composed of n bits x r (n, r is a positive integer), and r round keys are generated by the key scheduling algorithm. Here, the secret key is K = k 1k 2k 3 ... ∥ k r-1k r ( k is n bits, '∥' is concatenated), r round keys K 1 , K 2 , k 3, ..., when each defined as k r-1, k r round keys is determined as k i = k i ∥ k r -i + 1 (1≤i≤r, i is an integer).

본 발명의 바람직한 실시예에 있어서, 상기 라운드 키는 2n 비트 중 선택된 비트의 조합들에 의해 복수개의 정수로 결정되고, 복수개의 정수는 상기 라운드 블록의 연산에서 복수개의 전단사 함수 및 이들의 합성 함수를 결정한다.In a preferred embodiment of the present invention, the round key is determined as a plurality of integers by combinations of selected bits of 2n bits, and the plurality of integers are a plurality of shear history functions and their synthesis functions in the operation of the round block. Determine.

본 발명의 실시예는 여러 가지 형태로 변형될 수 있으며, 본 발명의 범위가 아래에서 상술하는 실시예로 인해 한정되어 지는 것으로 해석되어져서는 안 된다.본 실시예는 당업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 명확하게 설명하기 위해서 제공되어지는 것이다.The embodiments of the present invention may be modified in various forms, and the scope of the present invention should not be construed as being limited by the embodiments described below. It is provided to explain the present invention more clearly.

(실시예)(Example)

이하, 본 발명에 따른 실시예를 첨부된 도면을 참조하여 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명의 신규한 대칭키 블록 암호 알고리즘 설계 방법은 라운드 키 값에 따라 전단사 함수들을 결정하고, 결정된 전단사 함수들의 합성함수를 통하여 주어진 라운드 블록의 상을 구하는 과정을 일정 횟수 반복하는 암호 알고리즘에 의해 주어진 평문을 암호화한다. 복호화는 암호화의 역순으로 라운드 키 값에 따라 전단사 함수들을 결정하고, 결정된 전단사 함수들의 합성함수의 역함수를 통하여 주어진 라운드 블록의 원상을 구하는 과정을 일정 횟수 반복하는 암호 알고리즘에 의해 주어진 암호문으로부터 평문을 얻는다.The novel symmetric key block cryptographic algorithm design method is based on a cipher algorithm that determines the shear function according to the round key value and repeats the process of obtaining the image of a given round block through a composite function of the determined shear history functions. Encrypt the plain text given by Decryption is the plaintext from the ciphertext given by the encryption algorithm which determines the shear function according to the round key value in the reverse order of encryption, and repeats the process of obtaining the original shape of the given round block through the inverse of the determined composite function of the shear history functions. Get

도 2는 본 발명의 바람직한 실시예에 따른 대칭키 블록 암호 알고리즘을 이용한 설계 방법의 메인 플로우챠트이다.2 is a main flowchart of a design method using a symmetric key block cryptographic algorithm according to a preferred embodiment of the present invention.

도면을 참조하여, 본 발명의 바람직한 실시예에 따른 암호화 방법은 단계 S10에서 8비트(bit)×r(r은 양의 정수) 크기의 비밀키K와 8의 배수 크기의 평문을 입력받는다. 단계 S12에서는 소정의 키 스케줄링 알고리즘에 따라 비밀키K를 이용하여 r개의 라운드 키들을 생성한다. 키 스케줄링 알고리즘에 따른 라운드 키 생성 방법의 구체적인 설명은 후술한다.Referring to the drawing, in the encryption method according to the preferred embodiment of the present invention, a secret key K having a size of 8 bits x r (r is a positive integer) and a plaintext of multiples of 8 are input in step S10. In step S12, r round keys are generated using the secret key K according to a predetermined key scheduling algorithm. A detailed description of the round key generation method according to the key scheduling algorithm will be given later.

단계 S14에서는 생성된 r개의 라운드 키에 따라 선택되는 전단사 함수들을이용하여 각 라운드 블록의 상을 구하는 라운드 연산 과정을 r라운드 반복하여 주어진 평문을 암호화한다. 이에 대한 구체적인 설명은 후술한다. 단계 S16에서는 암호화 과정을 통해 생성된 암호문을 출력한다.In step S14, the given plaintext is encrypted by r-rounding a round operation process of obtaining an image of each round block by using shear yarn functions selected according to the generated r round keys. Detailed description thereof will be described later. In step S16, the cipher text generated through the encryption process is output.

이와 같이, 본 발명의 대칭 키 블록 암호 알고리즘을 이용한 암호화 방법은 라운드 키와 라운드 블록간에는 어떠한 연산도 이루어지지 않게 되며, 복수개의 전단사 함수들 중에서 라운드 키에 의해 지정되어지는 특정 함수에 의해 라운드 블록이 연산되어져 각 라운드 블록에서의 상이 구해진다.As described above, in the encryption method using the symmetric key block encryption algorithm of the present invention, no operation is performed between the round key and the round block, and the round block is determined by a specific function designated by the round key among the plurality of shear company functions. This operation is performed to obtain an image in each round block.

도 3은 도 2의 키 스케줄링 서브루틴의 플로우챠트이다.3 is a flowchart of the key scheduling subroutine of FIG.

도면을 참조하여, 단계 S20에서 라운드 키 생성을 위한 비밀키K가 입력된다. 비밀키K는 8비트×r의 크기를 갖는 것으로 비밀키K는 다음과 같이 수학식 2로 표시할 수 있다. 수학식 2에서 기호 '∥'는 연접을 의미한다.Referring to the drawing, in step S20 a secret key K for round key generation is input. The secret key K has a size of 8 bits × r. The secret key K can be expressed by Equation 2 as follows. In Equation 2, the symbol '∥' means a concatenation.

K=k 1k 2k 3...∥k r-1k r(k는 8비트, r은 양의 정수) K = k 1k 2k 3 ... ∥ k r-1k r ( k is 8 bits, r is a positive integer)

예를 들어, r=4인 경우 비밀키KK=k 1k 2k 3k 4로 표시할 수 있고 크기는 8비트×4=32비트가 된다. 단계 S22에서는 비밀키K를 이용하여 키 스케줄링 알고리즘에 따라 r개의 라운드 키가 생성되고, 단계 S23에서 생성된 r개의 라운드 키가 출력된다.For example, when r = 4, the secret key K can be represented as K = k 1k 2k 3k 4 and the size is 8 bits × 4 = 32 bits. In step S22, r round keys are generated according to the key scheduling algorithm using the secret key K, and r round keys generated in step S23 are output.

도 4는 본 발명의 바람직한 실시예에 따른 키 스케줄링 알고리즘을 도식화한 블록도이다.4 is a block diagram illustrating a key scheduling algorithm according to a preferred embodiment of the present invention.

도면을 참조하여, r개의 라운드 키K 1,K 2,K 3, ...,K r-1,K r는 비밀키K의 우측과 좌측의 최 외각에서부터 선택되는 두 8비트를 한 쌍으로 하여 16비트 크기의 라운드 키를 생성한다. 이를 하기 수학식 3과 같이 표시할 수 있다.Referring to the drawings, r round keys K 1 , K 2 , K 3 , ..., K r-1 , K r are paired with two 8-bits selected from the rightmost and left outermost sides of the secret key K. To generate a 16-bit round key. This may be expressed as in Equation 3 below.

K 1 =k 1k r,K 2 =k 2k r-1,K 3 =k 3k r-2, ...K r-1 =k r-1k 2,K r =k rk 1 K 1 = k 1k r , K 2 = k 2k r-1 , K 3 = k 3k r-2 , ... K r-1 = k r-1k 2 , K r = k rk 1

그리고 이를 일반화하여 표시하면 하기 수학식 4와 같이 표시할 수 있다.And if this is generalized and displayed, it can be expressed as Equation 4 below.

K i =k ik r-i+1(1≤i≤r, i는 정수) K i = k ik r-i + 1 (1≤i≤r, i is an integer)

예를 들어, r=4일 때 비밀키KK=k 1k 2k 3k 4로 표시할 수 있다. 이때 상술한 바와 같은 키 스케줄링 알고리즘에 따라 생성되는 4개의 라운드 키는 하기 수학식 5와 같다.For example, when r = 4, the secret key K can be represented as K = k 1k 2k 3k 4 . At this time, four round keys generated according to the key scheduling algorithm as described above are represented by Equation 5 below.

K 1 =k 1k 4,K 2 =k 2k 3,K 3 =k 3k 2,K 4 =k 4k 1 K 1 = k 1k 4 , K 2 = k 2k 3 , K 3 = k 3k 2 , K 4 = k 4k 1

이와 같이 생성되는 각각의 라운드 키는 각기 10개의 정수로 구분되어 지며, 10개의 정수들은 후술하는 복수개의 전단사 함수들을 선택하기 위해 사용된다. 다시 말하면, 10개의 정수로 이루어진 각 라운드 키를 이용하여 복수개의 함수집합들로부터 각기 하나의 함수를 결정하고, 결정된 함수들의 합성함수를 이용하여 라운드 블록의 상을 구한다.Each round key generated as described above is divided into 10 integers, and the 10 integers are used to select a plurality of shear yarn functions described later. In other words, each round key of 10 integers is used to determine one function from the plurality of function sets, and the phase of the round block is obtained using the synthesis function of the determined functions.

본 발명의 대칭키 블록 암호 알고리즘을 이용한 복호화 방법에 있어서의 키 스케줄링 알고리즘은 암호화 키 스케쥴링 알고리즘과 동일하고, 라운드 키의 적용 순서는 암호화의 라운드 키 적용 순서의 역순으로 반복 설명은 생략한다.The key scheduling algorithm in the decryption method using the symmetric key block encryption algorithm of the present invention is the same as the encryption key scheduling algorithm, and the order of applying the round key is the reverse of the order of applying the encryption round key.

이 실시예에서는 비밀키를 8비트의 배수인 경우를 일 예로 하였으나 이로서 한정되는 것은 아니다. 4비트의 배수, 16비트의 배수 등 n 비트(n은 양의 정수)의 배수로 다양하게 변형하여 설계가 가능하며 이는 이 분야의 통상적인 지식을 갖는 기술자들에게는 자명한 것이다.In this embodiment, the secret key is a multiple of 8 bits, but is not limited thereto. The design can be variously modified into multiples of n bits (n is a positive integer) such as multiples of 4 bits and multiples of 16 bits, which is obvious to those skilled in the art.

도 5는 라운드 키를 이용하여 10개의 정수를 구하는 일 예를 설명하기 위한 도면이다.5 is a diagram for describing an example of obtaining ten integers using a round key.

도면을 참조하여, i번째 라운드 키K i =k ik r-i+1는 총 16비트로 구성되는데, 좌측으로부터 비트 b0, b1은 제1 정수 I1로, 비트 b2, b3은 제2 정수 I2로, 비트 b4, b5는 제3 정수 I3으로, 비트 b6, b7은 제4 정수 I4로, 비트 b8, b9는 제5 정수 I5로,비트 b10은 제6 정수 I6으로, 비트 b11, b12는 제7 정수 I7로, 비트 b13은 제8 정수 I8로, 비트 b14는 제9 정수 I9로, 그리고 비트 b15는 제10 정수 I10으로 각기 대응된다. 예를 들어,K i =k r-i+1k i=1001110101010101(이진수)라 하면, I1=2, I2=1, I3=3, I4=1, I5=1, I6=0, I7=2, I8=1, I9=0 및, I10=1로 10개의 정수가 결정된다.With reference to the drawings, i-th round key K i = k ik r-i + 1 is composed of 16 bits, bits b 0, b 1 from the left is first to one integer I 1, the bit b 2, b 3 Is the second integer I 2 , bits b 4 , b 5 are the third integer I 3 , bits b 6 , b 7 are the fourth integer I 4 , bits b 8 , b 9 are the fifth integer I 5 , Bit b 10 is the sixth integer I 6 , bit b 11 , b 12 the seventh integer I 7 , bit b 13 the eighth integer I 8 , bit b 14 the ninth integer I 9 , and bit b 15 corresponds to the tenth integer I 10 , respectively. For example, if K i = k r-i + 1k i = 1001110101010101 (binary), then I 1 = 2, I 2 = 1, I 3 = 3, I 4 = 1, I 5 = 1, I Ten integers are determined by 6 = 0, I 7 = 2, I 8 = 1, I 9 = 0, and I 10 = 1.

도 6은 도 2의 라운드 연산 처리 서브루틴을 보여주는 플로우챠드이다.6 is a flowchart showing the round operation processing subroutine of FIG.

도면을 참조하여, 상술한 바와 같이 키 스케줄링 알고리즘에 의해 생성된 r 개의 라운드 키를 제공받아 라운드 블록 연산 루틴이 시작된다. 라운드 블록 연산 루틴에서는 해당되는 라운드 키에 의해서 결정되는 10개의 정수들 I1, I2, I3,...,I10에 의해 복수개의 전단사 함수 집합으로부터 해당되는 전단사 함수들이 선택되어 연산된다.Referring to the drawing, the round block operation routine is started by receiving r round keys generated by the key scheduling algorithm as described above. In the round block operation routine, the corresponding shear yarn functions are selected from a plurality of shear yarn function sets by ten integers I 1 , I 2 , I 3 , ..., I 10 determined by the corresponding round key. do.

단계 S30에서 보수 함수(complement function)가 호출되어 라운드 블록 연산이 수행되고, 연산 결과는 다음 단계로 제공된다. 단계 S32에서는 전이 함수(transposition function)가 호출되고, 보수 함수에 의해 연산된 결과가 호출된 전이함수로 제공되어 라운드 블록 연산이 이루어지고 그 결과는 다음 단계로 제공된다.In step S30, a complement function is called to perform a round block operation, and the operation result is provided to the next step. In step S32, a transition function is called, and the result calculated by the complement function is provided to the called transition function to perform a round block operation, and the result is provided to the next step.

단계 S34에서는 대치 함수(substitution function)가 호출되고, 전이 함수에 의해 연산된 결과가 호출된 대치 함수로 제공되어 라운드 블록 연산이 이루어져 다음 단계로 제공된다. 그리고 단계 S36에서는 쉬프트 함수(shift function)가 호출되고, 대치 함수에 의해 연산된 결과가 호출된 쉬프트 함수로 제공되어 라운드 블록 연산이 이루어진다. 이와 같은 라운드 블록의 연산은 r 라운드 동안 이루어지며, 최종 라운드의 연산 결과가 암호문으로서 출력된다.In step S34, a substitution function is called, and the result calculated by the transition function is provided to the called substitution function, and a round block operation is performed to provide to the next step. In step S36, a shift function is called, and the result calculated by the substitution function is provided to the called shift function to perform a round block operation. This round block operation is performed during r rounds, and the result of the final round operation is output as a cipher text.

좀더 구체적으로, 각 함수에 의한 라운드 블록의 연산 과정을 첨부도면 도 7내지 도 10을 참조하여 구체적으로 설명한다.More specifically, the operation of the round block by each function will be described in detail with reference to FIGS. 7 to 10.

도 7은 도 6의 보수 함수의 서브루틴을 보여주는 플로우챠트이다.FIG. 7 is a flowchart showing a subroutine of the complement function of FIG. 6.

도면을 참조하여, 보수 함수의 연산 루틴이 시작되면, 단계 S40에서 i 라운드 블록 B=B1∥B2∥B3∥B4와 i 라운드 키K i에 의해 결정되는 정수 I1을 입력받는다. 단계 S42에서는 라운드 블록에서 (I1+1)번째 서브 블록 전체를 보수로 취한다. 그리고 단계 S44에서 연산 결과를 리턴 한다.Referring to the drawing, when the calculation routine of the complement function is started, in step S40, an integer I 1 determined by i round block B = B 1 ∥B 2 ∥B 3 ∥B 4 and i round key K i is input. In step S42, the entire (I 1 +1) th sub block in the round block is taken as a complement. In operation S44, the operation result is returned.

도 8은 도 6의 전이 함수의 서브루틴을 보여주는 플로우챠트이다.FIG. 8 is a flowchart showing a subroutine of the transition function of FIG. 6.

도면을 참조하여, 전이 함수의 연산 루틴이 시작되면, 단계 S50에서 i 라운드 블록 B=B1∥B2∥B3∥B4와 i 라운드 키K i의 I1, I2를 입력한다. 이때, i 라운드 블록은 전 단계에서 보수 함수에 의해 연산된 결과이다. 단계 S52에서는 (I1+1)번째 서브블록의 4i+1번째 비트와 (I2+1)번째 서브블록의 4i+j번째 비트를 전이한다(1≤4i+1≤|B1|, j=1,2,3,4,1,2,3,4,...반복). 여기서 기호 |B1|는 B1의 길이를 의미한다.Referring to the drawing, when the calculation routine of the transition function starts, in step S50, i 1 , I 2 of i round block B = B 1 ∥B 2 ∥B 3 ∥B 4 and i round key K i are input. In this case, the i round block is a result calculated by the complement function in the previous step. In step S52 (I 1 +1) to the 4i + 1-th bit and the (I 2 +1) 4i + j th bit of the second sub-block of the first sub-block transition (1≤4i + 1≤ | B 1 | , j = 1,2,3,4,1,2,3,4, ... repeat). The symbol | B 1 | here means the length of B 1 .

단계 S54에서는 (I1+1)번째 서브블록의 4i+2번째 비트와 (I2+1)번째 서브블록의 4i+j번째 비트를 전이한다(1≤4i+1≤|B1|, j=2,3,4,1,2,3,4,1,...반복). 단계 S56에서는 (I1+1)번째 서브블록의 4i+3번째 비트와 (I2+1)번째 서브블록의 4i+j번째 비트를 전이한다(1≤4i+1≤|B1|, j=3,4,1,2,3,4,1,2,...반복). 단계 S58에서는 (I1+1)번째 서브블록의 4i+4번째 비트와 (I2+1)번째 서브블록의 4i+j번째 비트를 전이한다(1≤4i+1≤|B1|, j=4,1,2,3,4,1,2,3,...반복). 그리고 단계 S59에서 연산 결과를 리턴 한다.In step S54 (I 1 +1) to the 4i + 2-th bit and the (I 2 +1) 4i + j th bit of the second sub-block of the first sub-block transition (1≤4i + 1≤ | B 1 | , j = 2,3,4,1,2,3,4,1, ... repeat). In step S56 (I 1 +1) to the 4i + 3-th bit and the (I 2 +1) 4i + j th bit of the second sub-block of the first sub-block transition (1≤4i + 1≤ | B 1 | , j = 3,4,1,2,3,4,1,2, ... repeat). In step S58 (I 1 +1) to the 4i + 4-th bit and the (I 2 +1) 4i + j th bit of the second sub-block of the first sub-block transition (1≤4i + 1≤ | B 1 | , j = 4,1,2,3,4,1,2,3, ... repeat). In operation S59, the operation result is returned.

도 9는 도 6의 대치 함수의 서브루틴을 보여주는 플로우챠트이다.FIG. 9 is a flowchart showing a subroutine of the substitution function of FIG. 6.

도면을 참조하여, 대치함수의 연산 루틴이 시작되면, 단계 S60에서 i 라운드 블록 B=B1∥B2∥B3∥B4와 i 라운드 키K i의 I3, I4를 입력한다. 이때, i 라운드 블록은 전 단계에서 전이 함수에 의해 연산된 결과이다. 단계 S61에서 함수 CLS(Circular Left Shift)에 의해서 라운드 블록 B의 비트 스트링(bit string)이 |B1|×I3비트만큼 좌순환 이동된다. 함수 CLS(x,y)는x의 비트 스트링을y비트 수만큼 좌순환 이동하는 함수이다.Referring to the drawing, when the calculation routine of the substitution function is started, in step S60, i 3 , I 4 of i round block B = B 1 ∥B 2 ∥B 3 ∥B 4 and i round key K i are input. In this case, the i round block is a result calculated by the transition function in the previous step. In step S61, the bit string of the round block B is left-circulated shifted by | B 1 | × I 3 bits by the function CLS (Circular Left Shift). The function CLS ( x , y ) is a function to left-circulate the bit string of x by y bits.

단계 S62에서는 정수 I4의 정수 값을 판단하여 해당되는 단계로 진행한다. 즉, I4의 정수 값이 '0'인 경우, 단계 S63으로 진행하여 함수 S-XOR(B, L)가 수행되고, I4의 정수 값이 '1'인 경우, 단계 S64로 진행하여 함수 S-XOR(B, R)가 수행된다. I4의 정수 값이 '2'인 경우에는 단계 S65로 진행하여 함수 S-NXOR(B, L)가 수행되며 그리고 I4의 정수 값이 '3'인 경우, 단계 S66으로 진행하여 함수 S-NXOR(B, R)가 수행된다.In step S62, the integer value of the integer I 4 is determined, and the process proceeds to the corresponding step. In other words, when the integer value of I 4 is '0', the function S-XOR (B, L) is performed in step S63, and when the integer value of I 4 is '1', the function proceeds to step S64. S-XOR (B, R) is performed. If the integer value of I 4 is '2', the function S-NXOR (B, L) is performed in step S65. If the integer value of I 4 is '3', the function S- proceeds to step S66. NXOR (B, R) is performed.

함수 S-XOR(B, D)는 B의 비트 스트링을 D가 지시하는 방향으로 순환하면서 연접하는 두 비트를 배타적 논리합(exclusive OR) 연산하여 그 결과를 어느 하나의 비트로 설정하는 것이다. 순환 방향 D가 L인 경우 좌순환, R인 경우 우순환으로 정의된다. 함수 S-NXOR(B, D)는 B의 비트 스트링을 D가 지시하는 방향으로 순환하면서 연접하는 두 비트를 배타적 논리곱(exclusive NOR) 연산하여 그 결과를 어느 하나의 비트로 설정하는 것이다.The function S-XOR (B, D) performs an exclusive OR operation on two concatenated bits while circulating the bit string of B in the direction indicated by D, and sets the result to any one bit. If the circulation direction D is L, it is defined as left circulation, and in R, right circulation. The function S-NXOR (B, D) performs an exclusive NOR operation on two concatenated bits while circulating the bit string of B in the direction indicated by D, and sets the result to any one bit.

도 10은 도 9의 S-XOR 함수의 서브루틴을 보여주는 플로우챠트이다.FIG. 10 is a flowchart showing a subroutine of the S-XOR function of FIG. 9.

도면을 참조하여, 단계 S70에서 라운드 블록 B=b1b2...b8×m(비트 스트링으로 표시, 8×m은 평문 크기)과 순환 방향 D를 입력받는다. 단계 S71에서 순환 방향을 판단한다. L인 경우, 좌순환으로 단계 S72로 진행하여 b8×m=b8×m b1연산을 수행하고, 단계 S73에서 bi=bi bi+1연산을 i=8×m-1 에서 1 까지 반복 수행한다. 순환 방향 D가 R인 경우, 우순환으로 단계 S74에서 bi=bi bi-1연산을 2에서 i=8×m까지 반복 수행하고, 단계 S74에서 b1=b1 b8×m연산을 수행한다. 그리고 단계 S76에서 연산 결과를 리턴 한다. 함수 S-XNOR는 상술한 S-XOR의 연산 과정에서 배타적 논리합 연산을 배타적 논리곱 연산으로 수행하는 것으로 반복 설명은 생략한다.Referring to the drawing, in step S70, a round block B = b 1 b 2 ... b 8xm (represented as a bit string, 8xm is a plaintext size) and a circulation direction D are input. In step S71, the circulation direction is determined. If L, then proceed to step S72 with left circulation and b 8 x m = b 8 x m perform the operation b 1 , and in step S73, b i = b i b Repeats i + 1 operation from i = 8 × m-1 to 1. If the circulation direction D is R, then b i = b i in step S74 with the right cycle b i-1 operation is repeated from 2 to i = 8 × m, and b 1 = b 1 in step S74 b Perform 8xm operation. In operation S76, the operation result is returned. The function S-XNOR performs an exclusive OR operation as an exclusive AND operation during the operation of the above-described S-XOR, and description thereof will be omitted.

다시 도 9를 참조하여, 단계 S67에서는 함수 CRS(Circular Right Shift)에의해서 라운드 블록 B의 비트 스트링(bit string)이 |B1|×I3비트만큼 우순환 이동된다. 함수 CRS(x,y)는x의 비트 스트링을y비트 수만큼 우순환 이동하는 함수이다. 단계 S68에서는 연산 결과를 리턴 한다.Referring back to FIG. 9, in step S67, the bit string of the round block B is cyclically shifted by | B 1 | × I 3 bits by the function CRS (Circular Right Shift). The function CRS ( x , y ) is a function that cyclically shifts the bit string of x by y bits. In step S68, the operation result is returned.

도 11은 도 6의 쉬프트 함수의 서브루틴을 보여주는 플로우챠트이다.FIG. 11 is a flowchart showing a subroutine of the shift function of FIG. 6.

도면을 참조하여, 단계 S80에서 i 라운드 블록 B=B1∥B2∥B3∥B4와 i 라운드 키K i의 I5~I10을 입력받는다. 단계 S81에서 I6의 정수 값을 판단한다. I6이 1인 경우, 단계 S82로 진행하여 연산 B=CLS(B, I5)를 수행한다. 그리고 I6이 0인 경우에는 단계 S83으로 진행하여 연산 B=CRS(B, I5)를 수행한다.With reference to the drawings, receives a round block i B = B 1 ∥B 2 ∥B 3 ∥B 4 and i of the round key K i I I 5 ~ 10 at step S80. In step S81, the integer value of I 6 is determined. If I 6 is 1, the flow advances to step S82 to perform the operation B = CLS (B, I 5 ). If I 6 is 0, the flow advances to step S83 to perform operation B = CRS (B, I 5 ).

단계 S84에서 I8의 정수 값을 판단한다. I8이 1인 경우, 단계 S85로 진행하여 연산 B=CLS(B1B2,I7)∥CLS(B3B4,I7)를 수행한다. 그리고 I8이 0인 경우에는 단계 S86으로 진행하여 연산 B=CRS(B1B2,I7)∥CRS(B3B4,I7)를 수행한다.In step S84 determines the integer value of I 8. If I 8 is 1, the flow advances to step S85 to perform the operation B = CLS (B 1 B 2 , I 7 ) ∥ CLS (B 3 B 4 , I 7 ). If I 8 is 0, the process proceeds to step S86 where the operation B = CRS (B 1 B 2 , I 7 ) ∥ CRS (B 3 B 4 , I 7 ) is performed.

단계 S87에서 I10의 정수 값을 판단한다. I10이 1인 경우, 단계 S88로 진행하여 연산 B=CLS(B1,I9)∥CLS(B2,I9)∥CLS(B3,I9)∥CLS(B4,I9)를 수행한다. 그리고 I10이 0인 경우에는 단계 S89로 진행하여 연산 B=CRS(B1,I9)∥CRS(B2,I9)∥CRS(B3,I9)∥CRS(B4,I9)를 수행한다. 그리고 단계 S90에서 연산 결과를 리턴 한다.In step S87, the integer value of I 10 is determined. If I 10 is 1, the process proceeds to step S88 where operation B = CLS (B 1 , I 9 ) ∥CLS (B 2 , I 9 ) ∥CLS (B 3 , I 9 ) ∥CLS (B 4 , I 9 ) Perform If I 10 is 0, the process proceeds to step S89 where the operations B = CRS (B 1 , I 9 ) ∥CRS (B 2 , I 9 ) ∥CRS (B 3 , I 9 ) ∥CRS (B 4 , I 9 ). In operation S90, the operation result is returned.

이상의 복수개의 함수에 의한 연산은 r 라운드 동안 수행되어 최종적으로 암호문이 출력된다.The above operations by the plurality of functions are performed during r rounds, and finally the ciphertext is output.

암호문으로부터 평문으로의 복호는 라운드 키 값에 따라 전단사 함수 집합들로부터 전단사 함수들을 결정하고, 결정된 전단사 함수들의 합성함수의 역함수를 통하여 주어진 라운드 블록의 원상을 구하는 과정을 라운드 횟수 동안 반복하여 암호문으로부터 평문을 생성하는 것으로 반복 설명은 생략한다.Decryption from ciphertext to plaintext determines the shear history functions from the set of shear history functions according to the round key value, and repeats the process of obtaining the original image of a given round block through the inverse of the composite function of the determined shear history functions for the number of rounds. Since the plain text is generated from the ciphertext, repeated descriptions are omitted.

이 실시예에서는 보수 함수, 전이 함수, 대치 함수, 쉬프트 함수를 사용하여 라운드 블록의 연산을 하도록 하였으나, 함수들의 연산 순서나 종류, 연산 적용 방법이 실시예로 한정되는 것은 아니다. 즉, 연산 순서의 변경이나 다양한 다른 함수들을 적용할 수 있다.In this embodiment, a round block operation is performed using a complement function, a transition function, a substitution function, and a shift function. However, the operation order, type, and operation application method of the functions are not limited to the embodiment. That is, changes in the order of operations or various other functions can be applied.

상술한 바와 같은, 본 발명의 바람직한 실시예에 따른 키와 평문 사이에 연산이 이루어지지 않는 대칭키 블록 암호 알고리즘을 이용한 암호화 방법의 구성 및 동작을 상기한 설명 및 도면에 따라 도시하였지만, 이는 예를 들어 설명한 것에 불과하며 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능하다는 것을 이 분야의 통상적인 기술자들은 잘 이해할 수 있을 것이다.As described above, the configuration and operation of an encryption method using a symmetric key block cryptographic algorithm in which no operation is performed between a key and plain text according to a preferred embodiment of the present invention are illustrated according to the above description and drawings. Those skilled in the art will appreciate that various changes and modifications can be made without departing from the spirit and scope of the present invention.

이상과 같은 본 발명에 의하면, 라운드 키 값에 따라 알고리즘의 수행 루틴을 달리하고, 라운드 키와 라운드 블록 사이에 연산이 행하여지지 않도록 함으로 높은 비도를 얻을 수 있는 암호화 방법을 제공한다. 또한 라운드 키와 평문의 길이가 동시에 가변인 대칭 키 블록 암호 알고리즘을 제공할 수 있다.According to the present invention as described above, there is provided an encryption method that can obtain a high degree of security by varying the execution routine of the algorithm according to the round key value, so that no operation is performed between the round key and the round block. In addition, it is possible to provide a symmetric key block cryptographic algorithm having a variable length of round key and plain text at the same time.

Claims (4)

대칭키 블록 암호 알고리즘 설계 방법에 있어서:In the design method of symmetric key block cipher algorithm: 비밀키 평문을 입력받는 단계;Receiving a private key plain text; 키 스케줄링 알고리즘에 따라 비밀키로부터 복수개의 라운드 키를 생성하는 단계;Generating a plurality of round keys from a secret key according to a key scheduling algorithm; 생성된 복수개의 라운드 키에 따라 선택되는 전단사 함수 및 이들의 합성 함수들로 각 라운드 블록의 상을 구하는 과정을 반복하여 암호문을 생성하는 라운드 블록 연산 단계;A round block operation step of generating a cipher text by repeating a process of obtaining an image of each round block using a shear history function selected from a plurality of generated round keys and their synthesis functions; 라운드 블록 연산 단계에서 생성된 암호문을 출력하는 단계를 포함하는 것을 특징으로 하는 대칭키 블록 암호 알고리즘 설계 방법.And a step of outputting a cipher text generated in the round block operation step. 제1 항에 있어서,According to claim 1, 상기 비밀키는 n비트×r(n, r은 양의 정수)로 구성되며, 상기 키 스케줄링 알고리즘에 의해 r개의 라운드 키가 생성되는 것을 특징으로 하는 대칭키 블록 암호 알고리즘을 이용한 암호화 방법.The secret key is composed of n bits x r (n, r is a positive integer), r round key is generated by the key scheduling algorithm, characterized in that the encryption method using a symmetric key block encryption algorithm. 제2 항에 있어서,The method of claim 2, 상기 라운드 키를 생성하는 단계는:Generating the round key includes: n비트×r의 비밀키를 입력받는 단계;receiving an n-bit x r secret key; r개의 라운드 키를 생성하는 단계, 여기서generating r round keys, where 비밀키를K=k 1k 2k 3...∥k r-1k r(k는 n비트, '∥'는 연접)로, r개의 라운드 키를K 1,K 2,K 3, ...,K r-1,K r로 각각 정의하면 K = k 1k 2k 3 ... ∥ k r-1k r ( k is n bits, '∥' is concatenated), r round keys K 1 , K 2 , K 3 , ..., K r-1 , K r , 라운드 키는K i =k ik r-i+1(1≤i≤r, i는 정수)로 결정되며;Round keys are determined to K i = k i ∥ k r -i + 1 (1≤i≤r, i is an integer); 생성된 r개의 라운드 키를 출력하는 단계를 포함하는 것을 특징으로 하는 대칭키 블록 암호 알고리즘을 이용한 암호화 방법.And outputting the generated r round keys. 제1 항에 있어서,According to claim 1, 상기 라운드 키는 2n 비트 중 선택된 비트의 조합들에 의해 복수개의 정수로 결정되고,The round key is determined as a plurality of integers by combinations of selected bits of 2n bits, 복수개의 정수는 상기 라운드 블록의 연산에서 복수개의 전단사 함수 및 이들의 합성 함수를 결정하는 것을 특징으로 하는 대칭키 블록 암호 알고리즘을 이용한 암호화 방법.And a plurality of integers determine a plurality of shear history functions and their synthesis functions in the operation of the round block.
KR1020010036798A 2001-06-26 2001-06-26 Symmetric key block cipher algorithm design method with no operation between key and plaintext KR20030000720A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010036798A KR20030000720A (en) 2001-06-26 2001-06-26 Symmetric key block cipher algorithm design method with no operation between key and plaintext

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010036798A KR20030000720A (en) 2001-06-26 2001-06-26 Symmetric key block cipher algorithm design method with no operation between key and plaintext

Publications (1)

Publication Number Publication Date
KR20030000720A true KR20030000720A (en) 2003-01-06

Family

ID=27711320

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010036798A KR20030000720A (en) 2001-06-26 2001-06-26 Symmetric key block cipher algorithm design method with no operation between key and plaintext

Country Status (1)

Country Link
KR (1) KR20030000720A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100494560B1 (en) * 2002-11-23 2005-06-13 한국전자통신연구원 Real time block data encryption/decryption processor using Rijndael block cipher and method therefor
KR100790511B1 (en) * 2006-11-03 2008-01-02 김경원 Encrypting and decrypting system, encrypting and decrypting method
KR102020804B1 (en) 2018-11-16 2019-09-11 국민대학교산학협력단 Apparatus and method for generating a crypto algorithm based on a global optimal security component
KR20210081908A (en) * 2019-12-24 2021-07-02 주식회사 텔레칩스 Data processing method in system with encryption algorithm

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000021130A (en) * 1998-09-25 2000-04-15 김용만 Symmetrical key block encryption algorithm
US6185304B1 (en) * 1998-02-23 2001-02-06 International Business Machines Corporation Method and apparatus for a symmetric block cipher using multiple stages
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block
US6185304B1 (en) * 1998-02-23 2001-02-06 International Business Machines Corporation Method and apparatus for a symmetric block cipher using multiple stages
KR20000021130A (en) * 1998-09-25 2000-04-15 김용만 Symmetrical key block encryption algorithm

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100494560B1 (en) * 2002-11-23 2005-06-13 한국전자통신연구원 Real time block data encryption/decryption processor using Rijndael block cipher and method therefor
KR100790511B1 (en) * 2006-11-03 2008-01-02 김경원 Encrypting and decrypting system, encrypting and decrypting method
KR102020804B1 (en) 2018-11-16 2019-09-11 국민대학교산학협력단 Apparatus and method for generating a crypto algorithm based on a global optimal security component
KR20210081908A (en) * 2019-12-24 2021-07-02 주식회사 텔레칩스 Data processing method in system with encryption algorithm

Similar Documents

Publication Publication Date Title
US5222139A (en) Cryptographic method and apparatus
Brown et al. Improving resistance to differential cryptanalysis and the redesign of LOKI
US8787563B2 (en) Data converter, data conversion method and program
Zhang et al. Cryptanalysis and improvement of an image encryption algorithm based on hyper-chaotic system and dynamic S-box
JP2008514975A (en) s box
JPH1173101A (en) High speed block ciphering method, and medium usable in computer
JPWO2009122464A1 (en) Encryption device and built-in device equipped with a common key encryption function
KR100800468B1 (en) Hardware cryptographic engine and method improving power consumption and operation speed
CN112100144A (en) Block chain file sharing method and device, storage medium and electronic equipment
Arshad et al. New extension of data encryption standard over 128-bit key for digital images
Ara et al. Dynamic key dependent S-Box for symmetric encryption for IoT devices
Andreeva et al. AES-COPA v.
MAQABLEH Analysis and design security primitives based on chaotic systems for ecommerce
US20220382521A1 (en) System and method for encryption and decryption using logic synthesis
US7233662B2 (en) Numerical array output device, a numerical array output method, an encryption device, and a decryption device
KR20030000720A (en) Symmetric key block cipher algorithm design method with no operation between key and plaintext
Schaefer An introduction to cryptography and Cryptanalysis
AbuJoodeh Exploring and Adapting AES Algorithm for Optimal Use as a Lightweight IoT Crypto Algorithm
JP2002510058A (en) Method for cryptographic conversion of binary data blocks
Polimón et al. Automated design of a lightweight block cipher with genetic programming
KR100434558B1 (en) A fast block encryption algorithm
Pal et al. A novel block cipher technique using binary field arithmetic based substitution (BCTBFABS)
Ghosh et al. Performance analysis of AES, DES, RSA and AES-DES-RSA hybrid algorithm for data security
KR20030001888A (en) Cipher algorithm design method using block information without using key
Siddavaatam et al. An adaptive security framework with extensible computational complexity for cipher systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application