KR20200041466A - Block Encryption Method - Google Patents
Block Encryption Method Download PDFInfo
- Publication number
- KR20200041466A KR20200041466A KR1020180121532A KR20180121532A KR20200041466A KR 20200041466 A KR20200041466 A KR 20200041466A KR 1020180121532 A KR1020180121532 A KR 1020180121532A KR 20180121532 A KR20180121532 A KR 20180121532A KR 20200041466 A KR20200041466 A KR 20200041466A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- round
- box
- encryption method
- dummy
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H04L2209/38—
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
Description
본 발명은 보안성이 향상된 블록 암호화 방법에 관한 것으로, 보다 상세하게는 부채널 분석을 통한 공격에 대한 보안성이 향상된 블록 암호화 방법에 관한 것이다. The present invention relates to a block encryption method with improved security, and more particularly, to a block encryption method with improved security against attack through sub-channel analysis.
암호화 방법은 암/복호화에 사용되는 키의 특성에 따라 암/복호화 키가 같은 대칭키 암호화 방법과 암/복호화 키가 다른 비대칭키 암호화 방법으로 크게 대별하여 볼 수 있으며, 대칭키 암호화 방법은 메시지 처리 형식에 따라 스트림 암호화 방법과 블록 암호화 방법으로 나누어 볼 수 있다. The encryption method can be largely divided into a symmetric key encryption method with the same encryption / decryption key and an asymmetric key encryption method with different encryption / decryption keys depending on the characteristics of the key used for encryption / decryption. According to the format, it can be divided into a stream encryption method and a block encryption method.
여기에서, 블록 암호화 방법은 블록 단위로 메시지를 처리하는 암호화 방법을 말하는데, n비트 블록 암호화 방법이라 하면 고정된 n비트 평문을 같은 길이의 n비트 암호문으로 바꾸는 함수를 말한다. 이러한 변형 과정에 암호키가 작용하여 암호화와 복호화를 수행하게 된다. Here, the block encryption method refers to an encryption method for processing a message in units of blocks, and the n-bit block encryption method refers to a function that converts a fixed n-bit plaintext into an n-bit ciphertext of the same length. The encryption key acts on this transformation process to perform encryption and decryption.
블록 암호화 방법은 파이스텔(Feistel)구조 또는 SPN 구조로 설계된다.The block encryption method is designed in a Feistel structure or an SPN structure.
파이스텔(Feistel) 구조란, 각 t비트인 Lo, Ro 블록으로 이루어진 2t비트 평문 블록(Lo, Ro)을 r라운드(r≥1)를 거쳐 암호문 (Lr, Rr)을 내는 반복 구조를 말한다. 반복 구조란 평문 블록이 몇번의 라운드를 거쳐 암호화를 수행하는 것을 말하고, 라운드 i(1≤i≤r)란 암호키 K로부터 유도된 각 서브키 Ki(또는, 라운드 키라 불림)를 중요 입력으로 하는 를 통해 로 바꾸어주는 함수를 말한다. 또한, 전체 암호화 방법의 라운드 수는 요구되는 보안 강도와 수행 효율성의 상호 절충적 관계에서 결정된다. 보통 파이스텔 구조는 3라운드 이상이며, 짝수 라운드로 구성된다. 이러한 파이스텔 구조는 라운드 함수에 관계없이 역변환이 가능하며(즉, 암복호화 과정이 같음), 두번의 수행으로 블록간의 완전한 Diffusion이 이루어지며, 수행속도가 빠르다는 장점이 있다. The Feistel structure is a 2t bit plaintext block (L o , R o ) composed of L o , R o blocks, each t bit, and r ciphers (L r , R r ) through r rounds ( r ≥ 1). I mean the repeating structure. The repetitive structure means that the plaintext block performs encryption after several rounds, and round i (1≤ i ≤ r ) is the key input of each subkey K i (or called a round key) derived from the encryption key K. doing Through the Refers to a function that changes to. In addition, the number of rounds of the entire encryption method is determined in a tradeoff between the required security strength and performance efficiency. Usually, the pastel structure is more than 3 rounds and consists of even rounds. This Pastel structure has the advantage of being capable of inverse transformation regardless of the round function (that is, the encryption / decryption process is the same), complete diffusion between blocks in two executions, and fast execution speed.
반면, SPN 구조는 암호화 복호화 과정에서 역함수가 필요하도록 설계되어야 한다는 단점이 있지만 중간에 비트의 이동없이 한번에 암호화 복호화가 가능하기 때문에 효율적으로 설계할 수 있다는 장점이 있다. On the other hand, the SPN structure has the disadvantage that it must be designed to require an inverse function in the process of encryption and decryption, but it has the advantage that it can be designed efficiently because encryption and decryption can be performed at once without moving bits.
한편, 최근 이러한 블록 암호화 방법에 대해서 부채널 분석을 통한 공격이 성행하고 있다. 이러한 부채널 분석을 통한 공격은 암호의 생성원리를 공격하는 것이 아니라 다른 부가 정보를 통해서 공격을 하는 것으로서, 예를 들어 전력의 차이를 분석하는 방법이 있을 수 있는데, 스마트카드나 암호연산장비가 연산과정에서 전력을 얼마나 소모하는지를 분석하여 어떤 연산이 이루어지는지를 파악하여 공격하는 것을 말한다. On the other hand, an attack through sub-channel analysis has been popular for such a block encryption method. The attack through the analysis of the sub-channel does not attack the principle of generating the password, but rather attacks through other additional information. For example, there may be a method of analyzing the difference in power. It refers to an attack by analyzing how much power is consumed in the process and determining what operation is being performed.
이에 따라, 이러한 부채널 분석을 통한 공격을 방지할 수 있도록 하는 블럭 암호화 방법이 요구되고 있다. Accordingly, there is a demand for a block encryption method that can prevent an attack through such sub-channel analysis.
본 발명은 부채널 분석을 통한 공격에 대한 보안성이 강화된 블럭 암호화 방법을 제공하는 것을 그 목적으로 한다. An object of the present invention is to provide a block encryption method with enhanced security against attacks through sub-channel analysis.
본 발명에 의한 블록 암호화 방법은, 암호키를 이용하여 라운드키를 생성하는 라운드키 생성단계; t비트 크기의 평문 블록을 입력하는 평문 블록 입력단계; 및 상기 평문 블록과 상기 라운드키를 입력값으로 제1함수에 의한 제1내지 제n라운드 연산단계를 수행하여 t비트 크기의 암호문 블록을 출력하는 암호문 블록 출력단계;를 포함하는 블록 암호화 방법으로서, 상기 암호문 블록 출력단계는, 상기 제1내지 상기 제n라운드 연산단계의 입력 또는 출력값이 영향을 미치지 않는 적어도 하나의 더미라운드 연산단계를 더 포함할 수 있다. The block encryption method according to the present invention includes: a round key generation step of generating a round key using an encryption key; a plaintext block input step of inputting a plaintext block having a t-bit size; And a ciphertext block output step of performing a first to nth round operation step by a first function using the plaintext block and the round key as input values to output a ciphertext block having a t-bit size. The ciphertext block output step may further include at least one dummy round calculation step in which input or output values of the first to nth round calculation steps do not affect.
본 발명에 의한 블록 암호화 방법에서, 상기 라운드키 생성단계에서는 제1 내지 제n라운드키를 생성하고, 상기 제1라운드 연산단계는 상기 평문 블록과 제1라운드키를 입력값으로 하여 상기 제1함수에 의한 연산을 수행하여 제1암호화 블록을 출력하는 단계이고, 제2라운드 연산단계 내지 제n라운드 연산단계는, 각각 이전에 수행된 제1라운드 연산단계 내지 제n-1라운드 연산단계에서 출력된 제1암호화 블록 내지 제n-1암호화 블록과 제2라운드키 내지 제n라운드키를 각각 입력값으로 하여 상기 제1함수에 의한 연산을 수행하여 제2 내지 제n암호화 블록을 출력하는 단계이며, 상기 제n암호화 블록이 상기 암호문 블록이 될 수 있다. In the block encryption method according to the present invention, in the round key generation step, first to nth round keys are generated, and in the first round calculation step, the first function is performed using the plaintext block and the first round key as input values. The first encryption block is output by performing an operation by, and the second round operation step through the n-th round operation step are output from the first round operation step through the n-1 round operation step, respectively. The first encryption block to the n-1 encryption block and the second round key to the n-th round key as input values, respectively, and performing operations by the first function to output the second to n-th encryption blocks, The nth encryption block may be the ciphertext block.
본 발명에 의한 블록 암호화 방법에서, 상기 더미라운드 연산단계는, 더미 입력문 블록과 더미키를 입력값으로 하여 상기 제1함수에 의한 연산을 수행할 수 있다. In the block encryption method according to the present invention, the dummy round operation step may perform calculation by the first function using the dummy input statement block and the dummy key as input values.
본 발명에 의한 블록 암호화 방법에서, 상기 더미 입력문 블록은 상기 평문 블록과 동일하고, 상기 더미키는 랜덤하게 생성될 수 있다. In the block encryption method according to the present invention, the dummy input text block is the same as the plain text block, and the dummy key may be randomly generated.
본 발명에 의한 블록 암호화 방법에서, 상기 더미 입력문 블록은 랜덤하게 생성되고, 상기 더미키는 상기 라운드키 중 어느 하나와 동일할 수 있다. In the block encryption method according to the present invention, the dummy input block is randomly generated, and the dummy key may be the same as any one of the round keys.
본 발명에 의한 블록 암호화 방법에서, 상기 더미 입력문 블록과 상기 더미키는 랜덤하게 생성될 수 있다.In the block encryption method according to the present invention, the dummy input block and the dummy key may be randomly generated.
본 발명에 의한 블록 암호화 방법에서, 상기 더미라운드 연산단계는 상기 제1 내지 제n라운드 연산단계의 전후에 랜덤하게 적어도 한번 이상 삽입될 수 있다. In the block encryption method according to the present invention, the dummy round calculation step may be randomly inserted at least once before and after the first to n-th round calculation steps.
본 발명에 의한 블록 암호화 방법에서, 상기 더미라운드 연산단계는 상기 제1라운드 연산단계, 제2라운드 연산단계, 제n-1라운드 연산단계, 및 제n라운드 연산단계가 각각 수행되기 전과 후에 랜덤한 횟수만큼 수행될 수 있다. In the block encryption method according to the present invention, the dummy round calculation step is random before and after the first round calculation step, the second round calculation step, the n-1 round calculation step, and the n-th round calculation step are respectively performed. It can be performed as many times as possible.
본 발명에 의한 블록 암호화 방법에서, 상기 제1함수의 연산과정에서 제2함수가 사용되고, 상기 제2함수는 일반에 공개된 S-box에 특정상수를 이용하여 생성된 변형S-box를 적용하여 연산하는 것일 수 있다. In the block encryption method according to the present invention, a second function is used in the operation of the first function, and the second function is a modified S-box generated by using a specific constant to the publicly disclosed S-box It can be arithmetic.
본 발명에 의한 블록 암호화 방법에서, 상기 S-box는 하나 이상 공개되어 있고, 상기 변형 S-box는 각각의 상기 S-box에 하나씩 대응되도록 동수(同數)가 생성될 수 있다. In the block encryption method according to the present invention, one or more of the S-boxes are publicly available, and the modified S-box can be generated with the same number to correspond to each of the S-boxes.
본 발명에 의한 블록 암호화 방법에서, 상기 S-box는 하나 이상 공개되어 있고, 상기 변형 S-box는 각각의 상기 S-box에 두개씩 대응되도록 2배수가 생성될 수 있다. In the block encryption method according to the present invention, one or more of the S-boxes are publicly available, and the modified S-box may be generated in multiples to correspond to each of the two S-boxes.
본 발명에 의한 블록 암호화 방법에서, 상기 S-box는 S-box1과 S-box2의 두가지가 공개되어 있고, 상기 특정상수는 특정상수0(), 특정상수1(), 특정상수2(), 및 특정상수3()의 4개이며, 상기 변형S-box는 제1 내지 제4변형S-box1()의 4개가 생성될 수 있다. In the block encryption method according to the present invention, two types of S-boxes, S-box1 and S-box2, are disclosed, and the specific constant is a specific constant 0 ( ), Specific constant 1 ( ), Specific constant 2 ( ), And specific constant 3 ( ), The modified S-box is the first to fourth modified S-box1 ( ) Can be generated.
본 발명에 의한 블록 암호화 방법에서, 상기 제1변형S-box는 상기 S-box1에 특정상수0을 이용하여 생성되고, 상기 제2변형S-box는 상기 S-box1에 특정상수1을 이용하여 생성되고, 상기 제3변형S-box는 상기 S-box2에 특정상수2를 이용하여 생성되며, 상기 제4변형S-box는 상기 S-box2에 특정상수3을 이용하여 생성될 수 있다.In the block encryption method according to the present invention, the first modified S-box is generated using a specific constant 0 to the S-box1, and the second modified S-box is used to use the specific constant 1 to the S-box1. The third modified S-box may be generated using the
본 발명에 의한 블록 암호화 방법에서, 상기 특정상수0과 상기 특정상수1은 같은 값이고, 상기 특정상수2와 상기 특정상수3은 같은 값일 수 있다. In the block encryption method according to the present invention, the specific constant 0 and the specific constant 1 may have the same value, and the
본 발명에 의한 블록 암호화 방법에서, 상기 특정상수는 고정값일 수 있다. In the block encryption method according to the present invention, the specific constant may be a fixed value.
본 발명에 의한 블록 암호화 방법에서, 상기 특정상수는 랜덤값일 수 있다. In the block encryption method according to the present invention, the specific constant may be a random value.
본 발명에 의한 블록 암호화 방법에서, 상기 제2함수는 상기 변형S-box를 이용한 치환단계, 보정상수를 생성하는 보정상수 생성단계, 및 상기 보정상수를 이용하여 공개된 상기 S-box를 사용한 경우와 동일한 출력이 나오도록 보정하는 특정상수 보정단계를 포함할 수 있다. In the block encryption method according to the present invention, the second function is a substitution step using the modified S-box, a correction constant generation step for generating a correction constant, and the published S-box using the correction constant It may include a specific constant correction step for correcting to output the same as.
본 발명에 의한 블록 암호화 방법에서, 상기 제2함수는 t비트를 4개의 t/16비트 블록으로 분할한 입력값에 대해 4개의 t/16비트 블록()을 출력하여, 하기 수식으로 표현될 수 있다. In the block encryption method according to the present invention, the second function is a block of four t / 16 bits in t bits. 4 t / 16 bit blocks for input values divided by ), It can be expressed by the following formula.
, , , , , ,
본 발명에 의한 블록 암호화 방법에서, n=16일 수 있다. In the block encryption method according to the present invention, n = 16.
본 발명에 의한 블록 암호화 방법에서, t=128일 수 있다. In the block encryption method according to the present invention, t = 128.
본 발명에 의한 블록 암호화 방법은 라운드 연산단계에 영향을 미치지 않는 동일한 알고리즘의 더미라운드 연산단계를 각 라운드 연산단계의 전후에 랜덤하게 삽입함으로써, 부채널 공격자가 실제 라운드 연산단계와 더미라운드 연산단계를 구분하지 못하게 하여 보안성을 향상시킬 수 있다. In the block encryption method according to the present invention, a dummy round operation step of the same algorithm that does not affect the round operation step is randomly inserted before and after each round operation step, so that a sub-channel attacker can perform an actual round operation step and a dummy round operation step. It can improve security by not distinguishing.
더불어, 본 발명에 의한 블록 암호화 방법은 공개된 S-box 대신 특정상수에 의해 변형된 변형S-box를 사용하여 입력값에 대한 결과값을 예상할 수 없도록 하여 보안성을 더욱 향상시킬 수 있다. In addition, the block encryption method according to the present invention can further improve security by using a modified S-box modified by a specific constant instead of the published S-box, so that a result value for an input value cannot be predicted.
도 1은 본 발명의 일 실시예에 의한 블록 암호화 방법의 순서도.
도 2는 암호문 블록 출력단계의 순서도.
도 3은 더미라운드 연산단계를 제외한 암호문 블록 출력단계의 전체 구조도.
도 4는 제1함수(F함수)의 연산과정을 도식화한 제1함수(F함수)의 구조도.
도 5는 변형S-box의 생성방법을 도시한 참고도.
도 6은 제2함수(G함수)를 도식화한 구조도.1 is a flowchart of a block encryption method according to an embodiment of the present invention.
2 is a flow chart of the ciphertext block output step.
3 is an overall structure diagram of the ciphertext block output step except the dummy round operation step.
4 is a structural diagram of a first function (F function) schematically illustrating a calculation process of a first function (F function).
Figure 5 is a reference diagram showing a method of creating a modified S-box.
6 is a structural diagram schematically illustrating a second function (G function).
이하에서는 도면을 참조하여 본 발명의 구체적인 실시예를 상세하게 설명한다. 다만, 본 발명의 사상은 제시되는 실시예에 제한되지 아니하고, 본 발명의 사상을 이해하는 당업자는 동일한 사상의 범위 내에서 다른 구성요소를 추가, 변경, 삭제 등을 통하여, 퇴보적인 다른 발명이나 본 발명의 사상의 범위 내에 포함되는 다른 실시예를 용이하게 제안할 수 있을 것이나, 이 또한 본원 발명 사상의 범위 내에 포함된다고 할 것이다. Hereinafter, specific embodiments of the present invention will be described in detail with reference to the drawings. However, the spirit of the present invention is not limited to the presented embodiments, and a person skilled in the art who understands the spirit of the present invention may add another component within the scope of the same spirit, change, delete, etc. Other embodiments that fall within the scope of the spirit of the invention can be easily proposed, but this will also be included within the scope of the spirit of the invention.
또한, 실시예의 도면에 나타나는 동일한 사상의 범위 내의 기능이 동일한 구성요소는 동일한 참조부호를 사용하여 설명한다. In addition, elements having the same function within the scope of the same idea appearing in the drawings of the embodiments will be described using the same reference numerals.
한편, 이하에서는 본 발명에 대한 설명의 편의를 위하여 SEED 블록 암호화 방법을 사용하는 것을 예로 들어 설명하기로 한다. 그러나, 본 발명은 SEED 블록 암호화 방법에 제한되지 않고, 통상의 기술자에게 알려진 다른 블록 암호화 방법에도 적용할 수 있음은 자명한 사실이다. Meanwhile, hereinafter, for convenience of description of the present invention, an example of using the SEED block encryption method will be described. However, it is apparent that the present invention is not limited to the SEED block encryption method, and can be applied to other block encryption methods known to those skilled in the art.
도 1은 본 발명의 일 실시예에 의한 블록 암호화 방법의 순서도(S1000)이다.1 is a flowchart (S1000) of a block encryption method according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일 실시예에 의한 블록 암호화 방법(S1000)은 암호키를 이용하여 라운드키()를 생성하는 라운드키 생성단계(S1100), 평문 블록()을 입력하는 평문 블록 입력단계(S1200), 상기 평문 블록()과 상기 라운드키()를 입력값으로 제1함수에 의한 n회 라운드 연산을 통해 암호문 블록()을 출력하는 암호문 블록 출력단계(S1300)를 포함할 수 있다. 1, the block encryption method (S1000) according to an embodiment of the present invention is a round key ( ) Generating a round key (S1100), plaintext block ( ) To input the plaintext block (S1200), the plaintext block ( ) And the round key ( ) As the input value, block the ciphertext through n round operations by the first function ( ) May include a step of outputting a ciphertext block (S1300).
라운드키 생성단계(S1100)는 암호키로부터 라운드키()를 생성하는 단계일 수 있다. SEED 블록암호화 방법을 예로 들면, 상기 라운드키 생성단계(S1100)는 SEED의 키 생성 알고리즘에 의해 암호키로부터 라운드키()를 생성하는 단계일 수 있다. The round key generation step (S1100) is a round key ( ). For example, in the SEED block encryption method, the round key generation step (S1100) is a round key (from the encryption key by the SEED key generation algorithm). ).
즉, 128비트의 암호키를 64비트씩 좌우로 나누어 이들을 교대로 8비트씩 좌/우로 회전이동한 후, 결과의 4워드들에 대한 간단한 산술연산과 제2함수(G함수)를 적용하여 라운드키를 생성할 수 있다. That is, after dividing the 128-bit encryption key into 64 bits by left and right, and rotating them alternately by 8 bits left and right, a simple arithmetic operation on the 4 words of the result and the second function (G function) are applied to the round. You can generate keys.
보다 상세히 설명하면, 상기 라운드키 생성단계(S1100)는 후술하는 암호문 블록 출력단계(S1300)의 각 라운드 연산단계에 사용되는 라운드키()를 생성하는 단계로서,In more detail, the round key generation step (S1100) is a round key used in each round calculation step of the ciphertext block output step (S1300) described later ( ),
128비트 상기 암호키를 32비트 4개의 조각으로 쪼갠 후(A, B, C, D)After dividing the 128-bit encryption key into 4 pieces of 32-bit (A, B, C, D)
(단, : 라운드 상수)로 제1라운드키()를 생성하고,(only, : Round constant) as the first round key ( ),
(단, : 라운드 상수)로 제2라운드키()를 생성하고,(only, : Round constant) as the second round key ( ),
(단, : 라운드 상수)로 제3라운드키()를 생성하고,(only, : Round constant) as the third round key ( ),
이후 제n라운드키 생성까지 반복하는 단계일 수 있다.Thereafter, it may be a step of repeating until the n-th round key is generated.
여기에서 n=16일 수 있다. 즉, 상기 라운드키 생성단계(S1100)는 제1라운드키() 내지 제16라운드키()를 생성하는 단계일 수 있다.Where n = 16. That is, the round key generation step (S1100) is the first round key ( ) To 16th round key ( ).
한편, 제2함수(G함수)의 상세한 내용에 대해서는 후술하기로 한다. Meanwhile, details of the second function (G function) will be described later.
평문 블록 입력단계(S1200)는 t비트로 이루어진 평문블록을 입력하는 단계일 수 있다. SEED 블록 암호화방법을 예로 들어 설명하면, 상기 평문 블록 입력단계(S1200)는 t 비트로 이루어진 평문블록()을 입력하는 단계일 수 있으며, 여기에서 는 t/2비트 크기의 왼쪽 평문블록, 는 t/2비트 크기의 오른쪽 평문블록일 수 있다. 다시 말해서, 상기 평문블록()은 t/2비트 크기의 왼쪽 평문블록()과 t/2비트 크기의 오른쪽 평문블록()로 이루어진 t비트 크기의 메세지 블록일 수 있다. The plaintext block input step S1200 may be a step of inputting a plaintext block composed of t bits. If the SEED block encryption method is described as an example, the plaintext block input step (S1200) includes a plaintext block composed of t bits ( ), Where Is t / 2 bit left plaintext block, May be a right plaintext block of size t / 2 bits. In other words, the plaintext block ( ) Is t / 2 bit size left plaintext block ( ) And t / 2 bit right plaintext block ( ) May be a t-bit message block.
이때에, t=128일 수 있다. 즉, 상기 평문블록()은 128비트 크기의 메세지 블록일 수 있다. At this time, t = 128. That is, the plaintext block ( ) May be a 128-bit message block.
암호문 블록 출력단계(S1300)는 상기 평문 블록()과 상기 라운드키()를 입력값으로 제1함수에 의한 n회 라운드 연산을 통해 암호문 블록()을 출력하는 단계일 수 있다. In the step of outputting the ciphertext block (S1300), the plaintext block ( ) And the round key ( ) As the input value, block the ciphertext through n round operations by the first function ( ).
이때에, 상기 제1함수는 SEED 블록 암호화 방법에서 F함수일 수 있다. At this time, the first function may be an F function in the SEED block encryption method.
도 2는 암호문 블록 출력단계(S1300)의 순서도이다. 2 is a flowchart of the ciphertext block output step (S1300).
도 2를 참조하면, 암호문 블록 출력단계(S1300)는 제1라운드 연산단계(S1301) 내지 제n라운드 연산단계(S1316) 및 적어도 하나의 더미라운드 연산단계(S1301d)를 포함할 수 있다. Referring to FIG. 2, the ciphertext block output step (S1300) may include a first round operation step (S1301) to an nth round operation step (S1316) and at least one dummy round operation step (S1301d).
도 3은 암호문 블록 출력단계(S1300)에서 제1라운드 연산단계(S1301) 내지 제n라운드 연산단계(S1316)만을 도시한 전체 구조도이다. 즉, 더미라운드 연산단계(S1301d)를 제외한 암호문 블록 출력단계(S1300)의 전체 구조도이다. 3 is an overall structural diagram showing only the first round operation step (S1301) to the n-th round operation step (S1316) in the ciphertext block output step (S1300). That is, it is an overall structure diagram of the ciphertext block output step S1300 except for the dummy round operation step S1301d.
도 3을 참조하면, 제1라운드 연산단계(S1301)는 상기 평문 블록()과 제1라운드키()를 입력값으로 하여 제1함수(F함수)에 의한 연산을 수행하여 제1암호화 블록()을 출력하는 단계일 수 있고, 제2라운드 연산단계(S1303)는 상기 제1암호화 블록()과 제2라운드키()를 입력값으로 하여 제1함수(F함수)에 의한 연산을 수행하여 제2암호화 블록()을 출력하는 단계일 수 있으며, 제3라운드 연산단계(S1303)는 상기 제2암호화 블록()과 제3라운드키()를 입력값으로 하여 제1함수(F함수)에 의한 연산을 수행하여 제3암호화 블록()을 출력하는 단계일 수 있다. 다시 말해서, 상기 암호문 블록 출력단계(S1300)에서는 이와 같은 과정을 n회 반복수행하여 제n암호화 블록()을 출력할 수 있으며, 상기 제n암호화 블록()은 암호문 블록()일 수 있다. 이때에 n=16일 수 있으며, 다시 말해서, 상기 암호문 블록 출력단계(S1300)는 16회의 라운드 연산단계를 포함할 수 있다. Referring to Figure 3, the first round operation step (S1301) is the plaintext block ( ) And the first round key ( ) As the input value to perform the operation by the first function (F function) to perform the first encryption block ( ) May be output, and the second round operation step (S1303) may include the first encryption block ( ) And the second round key ( ) As the input value to perform the operation by the first function (F function) to perform the second encryption block ( ) May be output, and the third round calculation step (S1303) may include the second encryption block ( ) And the third round key ( ) As the input value to perform the operation by the first function (F function) to perform the third encryption block ( ). In other words, in the step of outputting the ciphertext block (S1300), this process is repeated n times to perform the nth encryption block ( ), And the nth encryption block ( ) Is the ciphertext block ( ). In this case, n = 16, that is, the ciphertext block output step (S1300) may include 16 round calculation steps.
여기에서, 상기 제1함수(F함수)는 t/2비트 파이스텔(Feistel) 알고리즘으로 구성될 수 있으며, t=128일 수 있다. Here, the first function (F function) may be configured with a t / 2 bit Feistel algorithm, and t = 128.
즉, 상기 제1함수(F함수)는 연산과정에서 t/4비트 2개의 블록(C, D)과 t/2비트 키 을 입력으로 받아, t/4비트 2개의 블록(C', D')을 출력할 수 있다. That is, the first function (F function) is a t / 4 bit two blocks (C, D) and a t / 2 bit key in the operation process. Received as input, it is possible to output two blocks (C ', D') of t / 4 bits.
이때에, C와 D는 또는 를 각각 t/4비트 두 블록으로 쪼갠 값일 수 있다. At this time, C and D are or May be divided into two blocks of t / 4 bits each.
한편, 상기 제1함수(F함수)의 연산과정에서 제2함수가 사용되는데, SEED 블록암호화 방법에서, 상기 제2함수는 G함수일 수 있다.Meanwhile, a second function is used in the operation of the first function (F function). In the SEED block encryption method, the second function may be a G function.
아울러, SEED 블록 암호화 방법에서, 상기 제1함수(F함수)의 연산과정을 식으로 표현하면 아래와 같으며, 도 4는 이를 도식화한 제1함수(F함수)의 구조도이다. In addition, in the SEED block encryption method, the operation process of the first function (F function) is expressed as follows, and FIG. 4 is a structural diagram of the first function (F function) schematically illustrating it.
상기 식 및 도 4를 참조하면, 상기 제2함수(G함수)는 t/4비트를 4개의 t/16비트 블록으로 분할하여 변형 S-box()를 적용하여 4개의 t/16비트 블록()을 출력할 수 있다. 한편, 상기 제1함수(F함수)의 연산과정에서 사용되는 제2함수(G함수)는 상기 라운드키 생성단계(S1100)에서 사용되는 제2함수(G함수)와 동일할 수 있다. Referring to the above equation and FIG. 4, the second function (G function) is a block of t / 4 bits and four t / 16 bits. Divide into and transform S-box ( ) To apply 4 t / 16 bit blocks ( ). Meanwhile, the second function (G function) used in the operation of the first function (F function) may be the same as the second function (G function) used in the round key generation step (S1100).
이때에, t=128일 수 있으며, 다시 말해서 상기 제2함수(G함수)는 32비트를 4개의 8비트 블록으로 분할하여 변형S-box()를 적용하여 4개의 8비트 블록()을 출력할 수 있다. At this time, t = 128 may be used, that is, the second function (G function) has 32 bits and 4 8-bit blocks. Divide into and transform S-box ( ) To apply 4 8-bit blocks ( ).
여기에서, 상기 변형S-box()는 공개된 S-box에 특정상수를 이용하여 생성할 수 있다. Here, the modified S-box ( ) Can be generated using a specific constant in the public S-box.
SEED 알고리즘을 예를 들어 설명하면, SEED 알고리즘에서는 S-box1(), S-box2()가 공개되어 있는데, 상기 변형S-box는 특정상수()를 이용하여 상기 변형S-box()를 생성할 수 있다. The SEED algorithm is described as an example. In the SEED algorithm, S-box1 ( ), S-box2 ( ), The modified S-box has a specific constant ( ) Using the modified S-box ( ).
도 5는 변형S-box의 생성방법을 도시한 참고도이다. 5 is a reference diagram showing a method of generating a modified S-box.
도 5를 참조하면, S-box1()에 특정상수0()를 이용하여 제1변형S-box()를 생성하고, S-box1()에 특정상수1()를 이용하여 제2변형S-box()를 생성하고, S-box2()에 특정상수2()를 이용하여 제3변형S-box()를 생성하며, S-box2()에 특정상수3()를 이용하여 제4변형S-box()를 생성할 수 있다. Referring to Figure 5, S-box1 ( ) To a specific constant 0 ( ) Using the first modified S-box ( ), And S-box1 ( ) To a specific constant 1 ( ) To the second modified S-box ( ), S-box2 ( ) To a specific constant 2 ( ) To the third modified S-box ( ), S-box2 ( ) To a specific constant 3 ( ) To the fourth modified S-box ( ).
여기에서, 상기 특정상수()는 고정값을 사용할 있으며, 사용시마다 다른 값을 사용할 수도 있다. 즉, 상기 특정상수()는 고정값이거나 랜덤값일 수 있다. Here, the specific constant ( ) May use a fixed value, and different values may be used each time. That is, the specific constant ( ) May be a fixed value or a random value.
아울러, 상기 특정상수0()는 상기 특정상수1()과 같은 값일 수 있으며, 상기 특정상수2()는 상기 특정상수3()과 같은 값일 수 있다. 다시 말해서, 상기 제1변형S-box()와 상기 제2변형S-box()가 동일하고, 상기 제3변형S-box()와 상기 제4변형S-box()가 동일 할 수 있다. In addition, the specific constant 0 ( ) Is the specific constant 1 ( ), And the specific constant 2 ( ) Is the specific constant 3 ( ). In other words, the first modified S-box ( ) And the second modified S-box ( ) Is the same, and the third modified S-box ( ) And the fourth modified S-box ( ) Can be the same.
즉, 두개의 특정상수를 이용하여 두개의 변형S-box를 사용할 수 있다. That is, two modified S-boxes can be used using two specific constants.
한편, 도 6은 G함수를 도식화한 구조도이다. On the other hand, Figure 6 is a schematic diagram of the G function.
도 6을 참조하면, G함수는 변형S-box를 이용한 치환단계(G01), 보정상수(Q)를 생성하는 보정상수 생성단계(G02) 및 상기 보정상수(Q)를 이용하여 공개된 상기 S-box를 사용한 경우와 동일한 출력이 나오도록 보정하는 특정상수 보정단계(G03)을 포함할 수 있다. Referring to FIG. 6, the G function is a substitution step (G01) using a modified S-box, a correction constant generating step (G02) to generate a correction constant (Q), and the S published using the correction constant (Q) It may include a specific constant correction step (G03) to correct so that the same output as the case of using -box.
한편, 상기 G함수는 아래 수식으로 표현될 수 있다. Meanwhile, the G function can be expressed by the following equation.
, , , , , ,
이와 같이, 본 발명의 G함수에서는 종래의 SEED 알고리즘의 G함수와 달리, 보정상수(Q)를 생성하고, 이를 이용하여 특정상수 보정단계(G03)을 거쳐 4개의 8비트 블록()을 출력하게 되는데, 이는 종래의 SEED 알고리즘의 G함수와 동일한 4개의 8비트 블록()을 출력하기 위함이다. As described above, unlike the G function of the conventional SEED algorithm, the G function of the present invention generates a correction constant (Q) and uses it to perform four constant 8-bit blocks through a specific constant correction step (G03). ), Which is the same as the 8 G-bit blocks of the G function of the conventional SEED algorithm ( ) To print.
종래의 SEED 알고리즘의 G함수와 같이 공개된 S-box를 사용하는 경우 S-box 연산부분에 대한 부채널 공격에 취약할 수 있는데, 이는 S-box의 입력값에 대한 결과값을 예상할 수 있기 때문이다. 한편, 본 발명의 경우 상기 변형S-box()를 사용하기 때문에 상기 변형S-box()의 내용을 공격자가 알 수 없고, 이에 따라 입력값에 대한 결과값을 예상할 수 없으므로 부채널 공격에 대한 보안성을 강화할 수 있다. When using the public S-box like the G function of the conventional SEED algorithm, it may be vulnerable to a sub-channel attack on the S-box operation part, which can predict the result of the input value of the S-box. Because. Meanwhile, in the case of the present invention, the modified S-box ( ), So the above modified S-box ( ), The attacker does not know the contents, and accordingly, the result value for the input value cannot be predicted, so it is possible to enhance the security for the side channel attack.
또한, 종래의 입출력값을 masking하여 보안을 강화한 기법보다 적은 메모리로 강화된 퍼포먼스, 높은 보안성을 나타낼 수 있다. In addition, it is possible to exhibit enhanced performance and high security with less memory than a technique that enhances security by masking conventional input / output values.
한편, 상기에서는 변형 S-box의 상세한 설명의 편의를 위하여 SEED 블록 암호화 방법을 예를 들어 설명하였지만, 공개된 S-box를 사용하는 당업자에게 알려진 다른 블록 암호화 방법에 있어서도, 특정상수를 이용하여 변형 S-box를 생성하고, 변형 S-box를 이용하여 제2함수를 연산함으로써, 부채널 공격에 대한 보안성을 강화할 수 있다. On the other hand, in the above, for convenience of detailed description of the modified S-box, the SEED block encryption method has been described as an example, but other block encryption methods known to those skilled in the art using the published S-box can also be modified using specific constants. By generating the S-box and calculating the second function using the modified S-box, security against side-channel attacks can be enhanced.
이때에, 블록 암호화 방법에 따라 공개된 S-box의 개수는 다를 수 있는데, 상기 변형 S-box는 각각의 공개된 S-box 마다 하나씩, 또는 그 이상씩 생성될 수 있다. At this time, depending on the block encryption method, the number of published S-boxes may be different, and the modified S-box may be generated one for each published S-box, or more.
앞서 SEED 블록 암호화 방법을 예로 들어 설명한 내용에 따르면, SEED 블록 암호화 방법에서는 S-box1(), S-box2() 두 개의 S-box가 공개되어 있고, 특정상수()를 이용하여 4개의 변형S-box()를 생성하였는데, 제1변형S-box()와 2변형S-box()는 S-box1()를 이용하여 생성된 것이고, 제3변형S-box()와 제4변형S-box()는 S-box2()를 이용하여 생성된 것이다. 즉, 각 S-box((,)마다 두 개씩의 변형 S-box가 생성된 것이다. According to the above description using the SEED block encryption method as an example, in the SEED block encryption method, S-box1 ( ), S-box2 ( ) Two S-boxes are open and a specific constant ( 4 variants using S-box ( ), The first modified S-box ( ) And 2-strain S-box ( ) Is S-box1 ( ), And the third modified S-box ( ) And fourth variant S-box ( ) Is S-box2 ( ). That is, each S-box (( , ), There are two modified S-boxes.
이때에, 상기 특정상수0()와 상기 특정상수1()가 같은 값인 경우에는 상기 제1변형S-box()와 상기 제2변형S-box()가 동일하고, 상기 특정상수2()와 상기 특정상수3()이 같은 값인 경우에는 상기 제3변형S-box()와 상기 제4변형S-box()가 동일하여, 각 S-box(,)마다 하나씩의 변형 S-box가 생성된 것으로 볼 수 있다. At this time, the specific constant 0 ( ) And the specific constant 1 ( ) Is the same value, the first modified S-box ( ) And the second modified S-box ( ) Is the same, and the specific constant 2 ( ) And the specific constant 3 ( ) Is the same value, the third modified S-box ( ) And the fourth modified S-box ( ) Is the same, so each S-box ( , It can be seen that one modified S-box for each) has been created.
한편, 다시 도 2를 참조하면, 더미라운드 연산단계(S1301d)는 제1 내지 제n라운드 연산단계(S1301, S1302, ..., S1316) 각각의 앞 또는 뒤에 랜덤하게 수행될 수 있다. Meanwhile, referring to FIG. 2 again, the dummy round operation step S1301d may be randomly performed before or after each of the first to n-th round operation steps S1301, S1302, ..., S1316.
다시 말해서, 상기 더미라운드 연산단계(S1301d)가 수행되는 위치 및 횟수는 랜덤하게 선택될 수 있다.In other words, the position and number of times the dummy round operation step S1301d is performed may be randomly selected.
보다 바람직하게는, 상기 더미라운드 연산단계(S1301d)는 제1라운드 연산단계(S1301)가 수행되기 전, 제2라운드 연산단계(S1302)가 수행되기 전과 후, 제n-1라운드 연산단계(S1315)가 수행되기 전, 및 제n라운드 연산단계(S1316)가 수행되기 전과 후에 수행될 수 있다. More preferably, the dummy round operation step (S1301d) is performed before and after the first round operation step (S1301), the second round operation step (S1302), and the n-1 round operation operation (S1315). ) May be performed before and after the n-th round operation step S1316 is performed.
이는 주로 제1라운드 연산단계(S1301), 제2라운드 연산단계(S1302), 제n-1라운드 연산단계(S1315), 및 제n라운드 연산단계(S1316)가 부채널 공격(DPA)의 주 공격대상이 됨을 고려한 것이다. This is mainly the first round calculation step (S1301), the second round calculation step (S1302), the n-1 round calculation step (S1315), and the n-th round calculation step (S1316) is the main attack of the sub-channel attack (DPA) Considering being a target.
한편, 이때에도 상기 더미라운드 연산단계(S1301d)가 각각의 위치에서 수행되는 횟수는 고정되거나 램덤하게 수행될 수 있다. Meanwhile, even in this case, the number of times the dummy round operation step S1301d is performed at each location may be fixed or randomly performed.
다른 한편으로, 상기 더미라운드 연산단계(S1301d)는 더미 입력문 블록과 더미키()를 입력값으로 하여 상기 제1함수(F함수)에 의한 연산을 수행하는 단계일 수 있다. On the other hand, the dummy round operation step (S1301d) is a dummy input block and a dummy key ( ) May be a step of performing an operation by the first function (F function) as an input value.
이때에, 상기 더미 입력문 블록은 상기 평문 블록()일 수 있고, 상기 더미키()는 랜덤하게 생성될 수 있다. At this time, the dummy input block is the plaintext block ( ), The dummy key ( ) May be randomly generated.
즉, 각각의 상기 더미라운드 연산단계(S1301d)는 제1라운드 연산단계(S1301)와 동일한 과정을 통해 연산을 수행하되, 그 입력값이 상이할 수 있다. 다시 말해서, 상기 더미라운드 연산단계(S1301d)는 제1라운드 연산단계(S1301)에서 사용되는 제1라운드키() 대신 상기 더미키()를 사용하여 동일한 연산을 수행하는 단계일 수 있다. That is, each of the dummy round operation step S1301d performs an operation through the same process as the first round operation step S1301, but the input values may be different. In other words, the dummy round calculation step (S1301d) is the first round key used in the first round calculation step (S1301) ( ) Instead of the dummy key ( ) To perform the same operation.
아울러, 상기 더미 입력문 블록은 상기 평문 블록()과 동일한 크기로 랜덤하게 생성되고, 상기 더미키()는 상기 라운드키() 중 어느 하나와 동일할 수 있다. In addition, the dummy input block is the plaintext block ( ) And randomly generated with the same size, the dummy key ( ) Is the round key ( ).
즉, 상기 더미라운드 연산단계(S1301d)는 제n라운드 연산단계(S1301)에서 사용되는 상기 평문 블록() 대신 상기 더미 입력문 블록을 입력값으로 하여 동일한 연산을 수행하는 단계일 수 있다. That is, the dummy round calculation step (S1301d) is the plaintext block used in the n-th round calculation step (S1301) ( ) Instead, it may be a step of performing the same operation using the dummy input statement block as an input value.
또한, 상기 더미 입력문 블록은 상기 평문 블록()과 동일한 크기로 랜덤하게 생성되고, 상기 더미키() 또한 랜덤하게 생성될 수도 있다.In addition, the dummy input block is the plaintext block ( ) And randomly generated with the same size, the dummy key ( ) It can also be generated randomly.
즉, 상기 더미라운드 연산단계(S1301d)는 제n라운드 연산단계(S1301)와 동일하게 제1함수를 사용하여 연산하되, 상기 평문 블록() 대신 상기 더미 입력문 블록을, 상기 라운드키() 대신 상기 더미키()를 입력값으로 하여 동일한 연산을 수행하는 단계일 수 있다. That is, the dummy round operation step (S1301d) is performed using the same first function as the n-th round operation step (S1301), but the plaintext block ( ) Instead of the dummy input block, the round key ( ) Instead of the dummy key ( ) As an input value.
이와 같이, 상기 더미라운드 연산단계(S1301d)는 제1내지 제n라운드 연산단계(S1301, S1302, S1303, ..., S1306)와 동일한 알고리즘으로 연산을 수행하므로, 부채널 공격(DPA)을 수행하는 공격자가 상기 더미라운드 연산단계(S1301d)와 제1 내지 제n라운드 연산단계(S1301, S1302, S1303, ..., S1306)를 구분하기 어렵게 만들어 보안성을 향상시킬 수 있다. As described above, the dummy round operation step (S1301d) performs the same algorithm as the first to nth round operation steps (S1301, S1302, S1303, ..., S1306), thereby performing a sub-channel attack (DPA). The attacker can improve the security by making it difficult to distinguish the dummy round calculation step (S1301d) from the first to n-th round calculation steps (S1301, S1302, S1303, ..., S1306).
상술한 바와 같이, 본 발명에 의한 블록 암호화 방법(S1000)은 더미라운드 연산단계(S1301d)를 제1내지 제n라운드 연산단계(S1301, S1302, S1303, ..., S1306)의 전후에 랜덤하게 삽입함으로써, 부채널 공격자가 실제 라운드 연산단계와 더미라운드 연산단계를 구분하지 못하게 하여 보안성을 향상시킬 수 있다. As described above, the block encryption method (S1000) according to the present invention randomly before and after the first to n-th round calculation steps (S1301, S1302, S1303, ..., S1306) of the dummy round calculation step (S1301d). By inserting, it is possible to improve security by preventing a sub-channel attacker from distinguishing between a real round calculation step and a dummy round calculation step.
더불어, 본 발명에 의한 블록 암호화 방법(S1000)은 공개된 S-box 대신 특정상수에 의해 변형된 변형S-box를 사용하여 입력값에 대한 결과값을 예상할 수 없도록 하여 보안성을 더욱 향상시킬 수 있다. In addition, the block encryption method (S1000) according to the present invention uses the modified S-box modified by a specific constant instead of the published S-box to further improve the security by not predicting the result value for the input value. You can.
이상에서, 본 발명의 일 실시예에 대하여 상세하게 설명하였지만, 본 발명의 권리범위는 이에 한정되는 것은 아니고, 청구범위에 기재된 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 수정 및 변형이 가능하다는 것은 당 기술분야의 통상의 지식을 가진 자에게는 자명할 것이다. In the above, one embodiment of the present invention has been described in detail, but the scope of the present invention is not limited to this, and various modifications and variations are possible without departing from the technical spirit of the present invention as set forth in the claims. It will be apparent to those skilled in the art.
S1000: 본 발명의 일 실시예에 의한 블록 암호화 방법
S1100: 라운드키 생성단계
S1200: 평문 블록 입력단계
S1300: 암호문 블록 출력단계
S1301: 제1라운드 연산단계
S1302: 제2라운드 연산단계
S1303: 제3라운드 연산단계
S1315: 제n-1라운드 연산단계
S1316: 제n라운드 연산단계
S1301d: 더미라운드 연산단계
G01: 변형S-box를 이용한 치환단계
G02: 보정상수 생성단계
G03: 특정상수 보정단계S1000: Block encryption method according to an embodiment of the present invention
S1100: Round key generation step
S1200: Plain text block input step
S1300: Cryptographic block output step
S1301: first round operation step
S1302: second round operation step
S1303: Third round operation step
S1315: Round n-1 calculation step
S1316: n-th round operation step
S1301d: Dummy round calculation step
G01: Substitution step using modified S-box
G02: Correction constant generation step
G03: Specific constant correction step
Claims (20)
t비트 크기의 평문 블록을 입력하는 평문 블록 입력단계; 및
상기 평문 블록과 상기 라운드키를 입력값으로 제1함수에 의한 제1내지 제n라운드 연산단계를 수행하여 t비트 크기의 암호문 블록을 출력하는 암호문 블록 출력단계;를 포함하는 블록 암호화 방법으로서,
상기 암호문 블록 출력단계는, 상기 제1내지 상기 제n라운드 연산단계의 입력 또는 출력값이 영향을 미치지 않는 적어도 하나의 더미라운드 연산단계를 더 포함하는 것을 특징으로 하는 블록 암호화 방법.
A round key generation step of generating a round key using an encryption key;
a plaintext block input step of inputting a plaintext block having a t-bit size; And
A block encryption method comprising: a ciphertext block output step of performing a first to nth round operation step by a first function using the plaintext block and the round key as input values to output a ciphertext block having a t-bit size;
The ciphertext block output step further comprises at least one dummy round calculation step in which the input or output values of the first to nth round calculation steps do not affect.
상기 라운드키 생성단계에서는 제1 내지 제n라운드키를 생성하고,
상기 제1라운드 연산단계는 상기 평문 블록과 제1라운드키를 입력값으로 하여 상기 제1함수에 의한 연산을 수행하여 제1암호화 블록을 출력하는 단계이고,
제2라운드 연산단계 내지 제n라운드 연산단계는, 각각 이전에 수행된 제1라운드 연산단계 내지 제n-1라운드 연산단계에서 출력된 제1암호화 블록 내지 제n-1암호화 블록과 제2라운드키 내지 제n라운드키를 각각 입력값으로 하여 상기 제1함수에 의한 연산을 수행하여 제2 내지 제n암호화 블록을 출력하는 단계이며,
상기 제n암호화 블록이 상기 암호문 블록이 되는 것을 특징으로 하는 블록 암호화 방법.
According to claim 1,
In the round key generation step, first to nth round keys are generated,
The first round operation step is a step of performing an operation by the first function using the plaintext block and the first round key as input values, and outputting a first encryption block.
The second round operation step to the n-th round operation step, the first encryption block to the n-1 encryption block and the second round key output from the first round operation step to the n-1 round operation step previously performed, respectively. And outputting second to nth encryption blocks by performing calculations by the first function using the n-th round keys as input values, respectively.
The block encryption method, characterized in that the nth encryption block is the ciphertext block.
상기 더미라운드 연산단계는, 더미 입력문 블록과 더미키를 입력값으로 하여 상기 제1함수에 의한 연산을 수행하는 것을 특징으로 하는 블록 암호화 방법.
According to claim 2,
In the dummy round operation step, the block encryption method is characterized in that the dummy input statement block and the dummy key are used as input values to perform the operation by the first function.
상기 더미 입력문 블록은 상기 평문 블록과 동일하고,
상기 더미키는 랜덤하게 생성되는 것을 특징으로 하는 블록 암호화 방법.
According to claim 3,
The dummy input block is the same as the plain text block,
The dummy key is randomly generated block encryption method.
상기 더미 입력문 블록은 랜덤하게 생성되고,
상기 더미키는 상기 라운드키 중 어느 하나와 동일한 것을 특징으로 하는 블록 암호화 방법.
According to claim 3,
The dummy input block is randomly generated,
The dummy key is a block encryption method, characterized in that the same as any one of the round keys.
상기 더미 입력문 블록과 상기 더미키는 랜덤하게 생성되는 것을 특징으로 하는 블록 암호화 방법.
According to claim 3,
The dummy input block and the dummy key are randomly generated block encryption method.
상기 더미라운드 연산단계는 상기 제1 내지 제n라운드 연산단계의 전후에 랜덤하게 적어도 한번 이상 삽입되는 것을 특징으로 하는 블록 암호화 방법.
According to claim 3,
The dummy round calculation step is a block encryption method characterized in that it is randomly inserted at least once before and after the first to n-th round calculation steps.
상기 더미라운드 연산단계는 상기 제1라운드 연산단계, 제2라운드 연산단계, 제n-1라운드 연산단계, 및 제n라운드 연산단계가 각각 수행되기 전과 후에 랜덤한 횟수만큼 수행되는 것을 특징으로 하는 블록 암호화 방법.
According to claim 3,
The dummy round operation step is a block characterized in that the first round operation step, the second round operation step, the n-1 round operation step, and the n-th round operation step are performed a random number of times before and after each, respectively. Encryption method.
상기 제1함수의 연산과정에서 제2함수가 사용되고,
상기 제2함수는 일반에 공개된 S-box에 특정상수를 이용하여 생성된 변형S-box를 적용하여 연산하는 것을 특징으로 하는 블록 암호화 방법.
According to claim 1,
In the process of calculating the first function, a second function is used,
The second function is a block encryption method characterized in that it is calculated by applying a modified S-box generated using a specific constant to a publicly available S-box.
상기 S-box는 하나 이상 공개되어 있고, 상기 변형 S-box는 각각의 상기 S-box에 하나씩 대응되도록 동수(同數)가 생성되는 것을 특징으로 하는 블록 암호화 방법.
The method of claim 9,
At least one of the S-boxes is publicly available, and the modified S-box is a block encryption method characterized in that the same number is generated so as to correspond to each of the S-boxes one by one.
상기 S-box는 하나 이상 공개되어 있고, 상기 변형 S-box는 각각의 상기 S-box에 두 개씩 대응되도록 2배수가 생성되는 것을 특징으로 하는 블록 암호화 방법.
The method of claim 9,
At least one of the S-boxes has been published, and the modified S-box is a block encryption method characterized in that two times are generated so as to correspond to each of the two S-boxes.
상기 S-box는 S-box1과 S-box2의 두가지가 공개되어 있고, 상기 특정상수는 특정상수0(), 특정상수1(), 특정상수2(), 및 특정상수3()의 4개이며, 상기 변형S-box는 제1 내지 제4변형S-box1()의 4개가 생성되는 것을 특징으로 하는 블록 암호화 방법.
The method of claim 11,
In the S-box, two types of S-box1 and S-box2 are disclosed, and the specific constant is a specific constant 0 ( ), Specific constant 1 ( ), Specific constant 2 ( ), And specific constant 3 ( ), The modified S-box is the first to fourth modified S-box1 ( Block encryption method characterized in that four are generated.
상기 제1변형S-box는 상기 S-box1에 특정상수0을 이용하여 생성되고, 상기 제2변형S-box는 상기 S-box1에 특정상수1을 이용하여 생성되고, 상기 제3변형S-box는 상기 S-box2에 특정상수2를 이용하여 생성되며, 상기 제4변형S-box는 상기 S-box2에 특정상수3을 이용하여 생성되는 것을 특징으로 하는 블록 암호화 방법.
The method of claim 12,
The first modified S-box is generated using a specific constant 0 to the S-box1, the second modified S-box is generated using a specific constant 1 to the S-box1, and the third modified S-box The box is created using a specific constant 2 to the S-box2, and the fourth modified S-box is generated using the specific constant 3 to the S-box2.
상기 특정상수0과 상기 특정상수1은 같은 값이고, 상기 특정상수2와 상기 특정상수3은 같은 값인 것을 특징으로 하는 블록 암호화 방법.
The method of claim 13,
The specific constant 0 and the specific constant 1 have the same value, and the specific constant 2 and the specific constant 3 have the same value.
상기 특정상수는 고정값인 것을 특징으로 하는 블록 암호화 방법.
The method of claim 9,
The specific constant is a block encryption method, characterized in that the fixed value.
상기 특정상수는 랜덤값인 것을 특징으로 하는 블록 암호화 방법.
The method of claim 9,
The specific constant is a block encryption method, characterized in that the random value.
상기 제2함수는 상기 변형S-box를 이용한 치환단계, 보정상수를 생성하는 보정상수 생성단계, 및 상기 보정상수를 이용하여 공개된 상기 S-box를 사용한 경우와 동일한 출력이 나오도록 보정하는 특정상수 보정단계를 포함하는 것을 특징으로 하는 블록 암호화 방법.
The method of claim 9,
The second function is specified to correct so that the same output as when using the modified S-box, the replacement step using the modified S-box, a correction constant generating step to generate a correction constant, and the published S-box using the correction constant. Block encryption method comprising a constant correction step.
상기 제2함수는 t비트를 4개의 t/16비트 블록으로 분할한 입력값에 대해 4개의 t/16비트 블록()을 출력하여, 하기 수식으로 표현되는 것을 특징으로 하는 블록 암호화 방법.
, , ,
The method of claim 17,
The second function is a t-bit block of 4 t / 16 bits. 4 t / 16 bit blocks for input values divided by ) Is output, and it is represented by the following formula.
, , ,
n=16인 것을 특징으로 하는 블록 암호화 방법.
The method according to any one of claims 1 to 18,
Block encryption method, characterized in that n = 16.
t=128인것을 특징으로 하는 블록 암호화 방법.
The method according to any one of claims 1 to 18,
Block encryption method characterized in that t = 128.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180121532A KR102109895B1 (en) | 2018-10-12 | 2018-10-12 | Block Encryption Method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180121532A KR102109895B1 (en) | 2018-10-12 | 2018-10-12 | Block Encryption Method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200041466A true KR20200041466A (en) | 2020-04-22 |
KR102109895B1 KR102109895B1 (en) | 2020-05-12 |
Family
ID=70472904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180121532A KR102109895B1 (en) | 2018-10-12 | 2018-10-12 | Block Encryption Method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102109895B1 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005527150A (en) * | 2002-05-23 | 2005-09-08 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | S-box encryption in block cipher implementation |
KR20100079060A (en) * | 2008-12-30 | 2010-07-08 | 고려대학교 산학협력단 | Method for encrypting with seed applying mask |
KR20150123476A (en) * | 2014-04-25 | 2015-11-04 | 한국전자통신연구원 | Function masking apparatus in symmetric cryptographic algorithm for preventing side channel attacks and method thereof |
KR101623493B1 (en) | 2014-07-31 | 2016-05-23 | 국민대학교산학협력단 | Appropriate Countermeasure against Side Channel Analysis on Cryptogram Generating Process of Financial IC Cards |
KR20160099864A (en) * | 2015-02-13 | 2016-08-23 | 금오공과대학교 산학협력단 | Device For Performing Block Cipher Algorithm LEA |
KR20160117032A (en) * | 2015-03-31 | 2016-10-10 | 국민대학교산학협력단 | Apparatus and Method for Protecting Side channel Attacks on |
-
2018
- 2018-10-12 KR KR1020180121532A patent/KR102109895B1/en active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005527150A (en) * | 2002-05-23 | 2005-09-08 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | S-box encryption in block cipher implementation |
KR20100079060A (en) * | 2008-12-30 | 2010-07-08 | 고려대학교 산학협력단 | Method for encrypting with seed applying mask |
KR20150123476A (en) * | 2014-04-25 | 2015-11-04 | 한국전자통신연구원 | Function masking apparatus in symmetric cryptographic algorithm for preventing side channel attacks and method thereof |
KR101623493B1 (en) | 2014-07-31 | 2016-05-23 | 국민대학교산학협력단 | Appropriate Countermeasure against Side Channel Analysis on Cryptogram Generating Process of Financial IC Cards |
KR20160099864A (en) * | 2015-02-13 | 2016-08-23 | 금오공과대학교 산학협력단 | Device For Performing Block Cipher Algorithm LEA |
KR20160117032A (en) * | 2015-03-31 | 2016-10-10 | 국민대학교산학협력단 | Apparatus and Method for Protecting Side channel Attacks on |
Also Published As
Publication number | Publication date |
---|---|
KR102109895B1 (en) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | AEGIS: A fast authenticated encryption algorithm | |
De Mulder et al. | Cryptanalysis of the Xiao–Lai white-box AES implementation | |
JP5229315B2 (en) | Encryption device and built-in device equipped with a common key encryption function | |
EP2924677B1 (en) | Splitting s-boxes in a white-box implementation to resist attacks | |
CN107005404B (en) | Processor apparatus implementing executable white-box mask implementations of cryptographic algorithms | |
US8966285B2 (en) | Securing implementation of a cryptographic process having fixed or dynamic keys | |
Blazhevski et al. | Modes of operation of the AES algorithm | |
US9565018B2 (en) | Protecting cryptographic operations using conjugacy class functions | |
US8675866B2 (en) | Multiplicative splits to protect cipher keys | |
US20130067212A1 (en) | Securing implementation of cryptographic algorithms using additional rounds | |
Choi et al. | An improved LEA block encryption algorithm to prevent side-channel attack in the IoT system | |
KR101095386B1 (en) | A Cryptosystem with a Discretized Chaotic Map | |
EP3477889A1 (en) | Using white-box in a leakage-resilient primitive | |
Dewangan et al. | Study of avalanche effect in AES using binary codes | |
Teh et al. | A Chaos‐Based Authenticated Cipher with Associated Data | |
CN109714154B (en) | Implementation method of white-box cryptographic algorithm under white-box security model with difficult code volume | |
Duta et al. | Randomness evaluation framework of cryptographic algorithms | |
KR101506499B1 (en) | Method for encrypting with SEED applying mask | |
US8891761B2 (en) | Block encryption device, decryption device, encrypting method, decrypting method and program | |
KR102109895B1 (en) | Block Encryption Method | |
KR102109902B1 (en) | Block Encryption Method | |
CN115632765A (en) | Encryption method, decryption device, electronic equipment and storage medium | |
Saudagar et al. | Image Encryption based on Advanced Encryption Standard (AES) | |
Ghosh et al. | Isomorphic cipher reduction | |
Liu et al. | Generating dynamic box by using an input string |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |