KR20200041466A - Block Encryption Method - Google Patents

Block Encryption Method Download PDF

Info

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
Application number
KR1020180121532A
Other languages
Korean (ko)
Other versions
KR102109895B1 (en
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 KR1020180121532A priority Critical patent/KR102109895B1/en
Publication of KR20200041466A publication Critical patent/KR20200041466A/en
Application granted granted Critical
Publication of KR102109895B1 publication Critical patent/KR102109895B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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/08Randomization, 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

Provided is a block encryption method comprising: 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 first to n^th round operation steps by a first function using the plaintext block and the round key as input values to output a ciphertext block having the t-bit size. The ciphertext block output step further includes at least one dummy round operation step in which an input or output value of the first to n^th operation steps does not affect. According to the present invention, by providing the block encryption method, it is possible to increase security by preventing a side channel attacker from distinguishing between a real round operation step and a dummy round operation step.

Description

보안성이 향상된 블록 암호화 방법{Block Encryption Method}Block encryption method with improved security

본 발명은 보안성이 향상된 블록 암호화 방법에 관한 것으로, 보다 상세하게는 부채널 분석을 통한 공격에 대한 보안성이 향상된 블록 암호화 방법에 관한 것이다. 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≤ir)란 암호키 K로부터 유도된 각 서브키 Ki(또는, 라운드 키라 불림)를 중요 입력으로 하는

Figure pat00001
를 통해
Figure pat00002
로 바꾸어주는 함수를 말한다. 또한, 전체 암호화 방법의 라운드 수는 요구되는 보안 강도와 수행 효율성의 상호 절충적 관계에서 결정된다. 보통 파이스텔 구조는 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≤ ir ) is the key input of each subkey K i (or called a round key) derived from the encryption key K. doing
Figure pat00001
Through the
Figure pat00002
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.

대한민국 등록특허 제10-1623493호(2016.05.17)Republic of Korea Registered Patent No. 10-1623493 (2016.05.17)

본 발명은 부채널 분석을 통한 공격에 대한 보안성이 강화된 블럭 암호화 방법을 제공하는 것을 그 목적으로 한다. 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(

Figure pat00003
), 특정상수1(
Figure pat00004
), 특정상수2(
Figure pat00005
), 및 특정상수3(
Figure pat00006
)의 4개이며, 상기 변형S-box는 제1 내지 제4변형S-box1(
Figure pat00007
)의 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 (
Figure pat00003
), Specific constant 1 (
Figure pat00004
), Specific constant 2 (
Figure pat00005
), And specific constant 3 (
Figure pat00006
), The modified S-box is the first to fourth modified S-box1 (
Figure pat00007
) 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 specific constant 2 to the S-box2, and the fourth modified S-box may be generated using the specific constant 3 to the S-box2.

본 발명에 의한 블록 암호화 방법에서, 상기 특정상수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 specific constant 2 and the specific constant 3 may have the same value.

본 발명에 의한 블록 암호화 방법에서, 상기 특정상수는 고정값일 수 있다. 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비트 블록

Figure pat00008
으로 분할한 입력값에 대해 4개의 t/16비트 블록(
Figure pat00009
)을 출력하여, 하기 수식으로 표현될 수 있다. In the block encryption method according to the present invention, the second function is a block of four t / 16 bits in t bits.
Figure pat00008
4 t / 16 bit blocks for input values divided by
Figure pat00009
), It can be expressed by the following formula.

Figure pat00010
,
Figure pat00011
,
Figure pat00012
,
Figure pat00013
Figure pat00010
,
Figure pat00011
,
Figure pat00012
,
Figure pat00013

Figure pat00014
Figure pat00014

본 발명에 의한 블록 암호화 방법에서, 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)은 암호키를 이용하여 라운드키(

Figure pat00015
)를 생성하는 라운드키 생성단계(S1100), 평문 블록(
Figure pat00016
)을 입력하는 평문 블록 입력단계(S1200), 상기 평문 블록(
Figure pat00017
)과 상기 라운드키(
Figure pat00018
)를 입력값으로 제1함수에 의한 n회 라운드 연산을 통해 암호문 블록(
Figure pat00019
)을 출력하는 암호문 블록 출력단계(S1300)를 포함할 수 있다. 1, the block encryption method (S1000) according to an embodiment of the present invention is a round key (
Figure pat00015
) Generating a round key (S1100), plaintext block (
Figure pat00016
) To input the plaintext block (S1200), the plaintext block (
Figure pat00017
) And the round key (
Figure pat00018
) As the input value, block the ciphertext through n round operations by the first function (
Figure pat00019
) May include a step of outputting a ciphertext block (S1300).

라운드키 생성단계(S1100)는 암호키로부터 라운드키(

Figure pat00020
)를 생성하는 단계일 수 있다. SEED 블록암호화 방법을 예로 들면, 상기 라운드키 생성단계(S1100)는 SEED의 키 생성 알고리즘에 의해 암호키로부터 라운드키(
Figure pat00021
)를 생성하는 단계일 수 있다. The round key generation step (S1100) is a round key (
Figure pat00020
). 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).
Figure pat00021
).

즉, 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)의 각 라운드 연산단계에 사용되는 라운드키(

Figure pat00022
)를 생성하는 단계로서,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 (
Figure pat00022
),

128비트 상기 암호키를 32비트 4개의 조각으로 쪼갠 후(A, B, C, D)After dividing the 128-bit encryption key into 4 pieces of 32-bit (A, B, C, D)

Figure pat00023
Figure pat00023

(단,

Figure pat00024
: 라운드 상수)로 제1라운드키(
Figure pat00025
)를 생성하고,(only,
Figure pat00024
: Round constant) as the first round key (
Figure pat00025
),

Figure pat00026
Figure pat00026

Figure pat00027
Figure pat00027

(단,

Figure pat00028
: 라운드 상수)로 제2라운드키(
Figure pat00029
)를 생성하고,(only,
Figure pat00028
: Round constant) as the second round key (
Figure pat00029
),

Figure pat00030
Figure pat00030

Figure pat00031
Figure pat00031

(단,

Figure pat00032
: 라운드 상수)로 제3라운드키(
Figure pat00033
)를 생성하고,(only,
Figure pat00032
: Round constant) as the third round key (
Figure pat00033
),

이후 제n라운드키 생성까지 반복하는 단계일 수 있다.Thereafter, it may be a step of repeating until the n-th round key is generated.

여기에서 n=16일 수 있다. 즉, 상기 라운드키 생성단계(S1100)는 제1라운드키(

Figure pat00034
) 내지 제16라운드키(
Figure pat00035
)를 생성하는 단계일 수 있다.Where n = 16. That is, the round key generation step (S1100) is the first round key (
Figure pat00034
) To 16th round key (
Figure pat00035
).

한편, 제2함수(G함수)의 상세한 내용에 대해서는 후술하기로 한다. Meanwhile, details of the second function (G function) will be described later.

평문 블록 입력단계(S1200)는 t비트로 이루어진 평문블록을 입력하는 단계일 수 있다. SEED 블록 암호화방법을 예로 들어 설명하면, 상기 평문 블록 입력단계(S1200)는 t 비트로 이루어진 평문블록(

Figure pat00036
)을 입력하는 단계일 수 있으며, 여기에서
Figure pat00037
는 t/2비트 크기의 왼쪽 평문블록,
Figure pat00038
는 t/2비트 크기의 오른쪽 평문블록일 수 있다. 다시 말해서, 상기 평문블록(
Figure pat00039
)은 t/2비트 크기의 왼쪽 평문블록(
Figure pat00040
)과 t/2비트 크기의 오른쪽 평문블록(
Figure pat00041
)로 이루어진 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 (
Figure pat00036
), Where
Figure pat00037
Is t / 2 bit left plaintext block,
Figure pat00038
May be a right plaintext block of size t / 2 bits. In other words, the plaintext block (
Figure pat00039
) Is t / 2 bit size left plaintext block (
Figure pat00040
) And t / 2 bit right plaintext block (
Figure pat00041
) May be a t-bit message block.

이때에, t=128일 수 있다. 즉, 상기 평문블록(

Figure pat00042
)은 128비트 크기의 메세지 블록일 수 있다. At this time, t = 128. That is, the plaintext block (
Figure pat00042
) May be a 128-bit message block.

암호문 블록 출력단계(S1300)는 상기 평문 블록(

Figure pat00043
)과 상기 라운드키(
Figure pat00044
)를 입력값으로 제1함수에 의한 n회 라운드 연산을 통해 암호문 블록(
Figure pat00045
)을 출력하는 단계일 수 있다. In the step of outputting the ciphertext block (S1300), the plaintext block (
Figure pat00043
) And the round key (
Figure pat00044
) As the input value, block the ciphertext through n round operations by the first function (
Figure pat00045
).

이때에, 상기 제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)는 상기 평문 블록(

Figure pat00046
)과 제1라운드키(
Figure pat00047
)를 입력값으로 하여 제1함수(F함수)에 의한 연산을 수행하여 제1암호화 블록(
Figure pat00048
)을 출력하는 단계일 수 있고, 제2라운드 연산단계(S1303)는 상기 제1암호화 블록(
Figure pat00049
)과 제2라운드키(
Figure pat00050
)를 입력값으로 하여 제1함수(F함수)에 의한 연산을 수행하여 제2암호화 블록(
Figure pat00051
)을 출력하는 단계일 수 있으며, 제3라운드 연산단계(S1303)는 상기 제2암호화 블록(
Figure pat00052
)과 제3라운드키(
Figure pat00053
)를 입력값으로 하여 제1함수(F함수)에 의한 연산을 수행하여 제3암호화 블록(
Figure pat00054
)을 출력하는 단계일 수 있다. 다시 말해서, 상기 암호문 블록 출력단계(S1300)에서는 이와 같은 과정을 n회 반복수행하여 제n암호화 블록(
Figure pat00055
)을 출력할 수 있으며, 상기 제n암호화 블록(
Figure pat00056
)은 암호문 블록(
Figure pat00057
)일 수 있다. 이때에 n=16일 수 있으며, 다시 말해서, 상기 암호문 블록 출력단계(S1300)는 16회의 라운드 연산단계를 포함할 수 있다. Referring to Figure 3, the first round operation step (S1301) is the plaintext block (
Figure pat00046
) And the first round key (
Figure pat00047
) As the input value to perform the operation by the first function (F function) to perform the first encryption block (
Figure pat00048
) May be output, and the second round operation step (S1303) may include the first encryption block (
Figure pat00049
) And the second round key (
Figure pat00050
) As the input value to perform the operation by the first function (F function) to perform the second encryption block (
Figure pat00051
) May be output, and the third round calculation step (S1303) may include the second encryption block (
Figure pat00052
) And the third round key (
Figure pat00053
) As the input value to perform the operation by the first function (F function) to perform the third encryption block (
Figure pat00054
). In other words, in the step of outputting the ciphertext block (S1300), this process is repeated n times to perform the nth encryption block (
Figure pat00055
), And the nth encryption block (
Figure pat00056
) Is the ciphertext block (
Figure pat00057
). 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비트 키

Figure pat00058
을 입력으로 받아, 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.
Figure pat00058
Received as input, it is possible to output two blocks (C ', D') of t / 4 bits.

이때에, C와 D는

Figure pat00059
또는
Figure pat00060
를 각각 t/4비트 두 블록으로 쪼갠 값일 수 있다. At this time, C and D are
Figure pat00059
or
Figure pat00060
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.

Figure pat00061
Figure pat00061

상기 식 및 도 4를 참조하면, 상기 제2함수(G함수)는 t/4비트를 4개의 t/16비트 블록

Figure pat00062
으로 분할하여 변형 S-box(
Figure pat00063
)를 적용하여 4개의 t/16비트 블록(
Figure pat00064
)을 출력할 수 있다. 한편, 상기 제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.
Figure pat00062
Divide into and transform S-box (
Figure pat00063
) To apply 4 t / 16 bit blocks (
Figure pat00064
). 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비트 블록

Figure pat00065
으로 분할하여 변형S-box(
Figure pat00066
)를 적용하여 4개의 8비트 블록(
Figure pat00067
)을 출력할 수 있다. At this time, t = 128 may be used, that is, the second function (G function) has 32 bits and 4 8-bit blocks.
Figure pat00065
Divide into and transform S-box (
Figure pat00066
) To apply 4 8-bit blocks (
Figure pat00067
).

여기에서, 상기 변형S-box(

Figure pat00068
)는 공개된 S-box에 특정상수를 이용하여 생성할 수 있다. Here, the modified S-box (
Figure pat00068
) Can be generated using a specific constant in the public S-box.

SEED 알고리즘을 예를 들어 설명하면, SEED 알고리즘에서는 S-box1(

Figure pat00069
), S-box2(
Figure pat00070
)가 공개되어 있는데, 상기 변형S-box는 특정상수(
Figure pat00071
)를 이용하여 상기 변형S-box(
Figure pat00072
)를 생성할 수 있다. The SEED algorithm is described as an example. In the SEED algorithm, S-box1 (
Figure pat00069
), S-box2 (
Figure pat00070
), The modified S-box has a specific constant (
Figure pat00071
) Using the modified S-box (
Figure pat00072
).

도 5는 변형S-box의 생성방법을 도시한 참고도이다. 5 is a reference diagram showing a method of generating a modified S-box.

도 5를 참조하면, S-box1(

Figure pat00073
)에 특정상수0(
Figure pat00074
)를 이용하여 제1변형S-box(
Figure pat00075
)를 생성하고, S-box1(
Figure pat00076
)에 특정상수1(
Figure pat00077
)를 이용하여 제2변형S-box(
Figure pat00078
)를 생성하고, S-box2(
Figure pat00079
)에 특정상수2(
Figure pat00080
)를 이용하여 제3변형S-box(
Figure pat00081
)를 생성하며, S-box2(
Figure pat00082
)에 특정상수3(
Figure pat00083
)를 이용하여 제4변형S-box(
Figure pat00084
)를 생성할 수 있다. Referring to Figure 5, S-box1 (
Figure pat00073
) To a specific constant 0 (
Figure pat00074
) Using the first modified S-box (
Figure pat00075
), And S-box1 (
Figure pat00076
) To a specific constant 1 (
Figure pat00077
) To the second modified S-box (
Figure pat00078
), S-box2 (
Figure pat00079
) To a specific constant 2 (
Figure pat00080
) To the third modified S-box (
Figure pat00081
), S-box2 (
Figure pat00082
) To a specific constant 3 (
Figure pat00083
) To the fourth modified S-box (
Figure pat00084
).

여기에서, 상기 특정상수(

Figure pat00085
)는 고정값을 사용할 있으며, 사용시마다 다른 값을 사용할 수도 있다. 즉, 상기 특정상수(
Figure pat00086
)는 고정값이거나 랜덤값일 수 있다. Here, the specific constant (
Figure pat00085
) May use a fixed value, and different values may be used each time. That is, the specific constant (
Figure pat00086
) May be a fixed value or a random value.

아울러, 상기 특정상수0(

Figure pat00087
)는 상기 특정상수1(
Figure pat00088
)과 같은 값일 수 있으며, 상기 특정상수2(
Figure pat00089
)는 상기 특정상수3(
Figure pat00090
)과 같은 값일 수 있다. 다시 말해서, 상기 제1변형S-box(
Figure pat00091
)와 상기 제2변형S-box(
Figure pat00092
)가 동일하고, 상기 제3변형S-box(
Figure pat00093
)와 상기 제4변형S-box(
Figure pat00094
)가 동일 할 수 있다. In addition, the specific constant 0 (
Figure pat00087
) Is the specific constant 1 (
Figure pat00088
), And the specific constant 2 (
Figure pat00089
) Is the specific constant 3 (
Figure pat00090
). In other words, the first modified S-box (
Figure pat00091
) And the second modified S-box (
Figure pat00092
) Is the same, and the third modified S-box (
Figure pat00093
) And the fourth modified S-box (
Figure pat00094
) 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.

Figure pat00095
,
Figure pat00096
,
Figure pat00097
,
Figure pat00098
Figure pat00095
,
Figure pat00096
,
Figure pat00097
,
Figure pat00098

Figure pat00099
Figure pat00099

이와 같이, 본 발명의 G함수에서는 종래의 SEED 알고리즘의 G함수와 달리, 보정상수(Q)를 생성하고, 이를 이용하여 특정상수 보정단계(G03)을 거쳐 4개의 8비트 블록(

Figure pat00100
)을 출력하게 되는데, 이는 종래의 SEED 알고리즘의 G함수와 동일한 4개의 8비트 블록(
Figure pat00101
)을 출력하기 위함이다. 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).
Figure pat00100
), Which is the same as the 8 G-bit blocks of the G function of the conventional SEED algorithm (
Figure pat00101
) To print.

종래의 SEED 알고리즘의 G함수와 같이 공개된 S-box를 사용하는 경우 S-box 연산부분에 대한 부채널 공격에 취약할 수 있는데, 이는 S-box의 입력값에 대한 결과값을 예상할 수 있기 때문이다. 한편, 본 발명의 경우 상기 변형S-box(

Figure pat00102
)를 사용하기 때문에 상기 변형S-box(
Figure pat00103
)의 내용을 공격자가 알 수 없고, 이에 따라 입력값에 대한 결과값을 예상할 수 없으므로 부채널 공격에 대한 보안성을 강화할 수 있다. 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 (
Figure pat00102
), So the above modified S-box (
Figure pat00103
), 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(

Figure pat00104
), S-box2(
Figure pat00105
) 두 개의 S-box가 공개되어 있고, 특정상수(
Figure pat00106
)를 이용하여 4개의 변형S-box(
Figure pat00107
)를 생성하였는데, 제1변형S-box(
Figure pat00108
)와 2변형S-box(
Figure pat00109
)는 S-box1(
Figure pat00110
)를 이용하여 생성된 것이고, 제3변형S-box(
Figure pat00111
)와 제4변형S-box(
Figure pat00112
)는 S-box2(
Figure pat00113
)를 이용하여 생성된 것이다. 즉, 각 S-box((
Figure pat00114
,
Figure pat00115
)마다 두 개씩의 변형 S-box가 생성된 것이다. According to the above description using the SEED block encryption method as an example, in the SEED block encryption method, S-box1 (
Figure pat00104
), S-box2 (
Figure pat00105
) Two S-boxes are open and a specific constant (
Figure pat00106
4 variants using S-box (
Figure pat00107
), The first modified S-box (
Figure pat00108
) And 2-strain S-box (
Figure pat00109
) Is S-box1 (
Figure pat00110
), And the third modified S-box (
Figure pat00111
) And fourth variant S-box (
Figure pat00112
) Is S-box2 (
Figure pat00113
). That is, each S-box ((
Figure pat00114
,
Figure pat00115
), There are two modified S-boxes.

이때에, 상기 특정상수0(

Figure pat00116
)와 상기 특정상수1(
Figure pat00117
)가 같은 값인 경우에는 상기 제1변형S-box(
Figure pat00118
)와 상기 제2변형S-box(
Figure pat00119
)가 동일하고, 상기 특정상수2(
Figure pat00120
)와 상기 특정상수3(
Figure pat00121
)이 같은 값인 경우에는 상기 제3변형S-box(
Figure pat00122
)와 상기 제4변형S-box(
Figure pat00123
)가 동일하여, 각 S-box(
Figure pat00124
,
Figure pat00125
)마다 하나씩의 변형 S-box가 생성된 것으로 볼 수 있다. At this time, the specific constant 0 (
Figure pat00116
) And the specific constant 1 (
Figure pat00117
) Is the same value, the first modified S-box (
Figure pat00118
) And the second modified S-box (
Figure pat00119
) Is the same, and the specific constant 2 (
Figure pat00120
) And the specific constant 3 (
Figure pat00121
) Is the same value, the third modified S-box (
Figure pat00122
) And the fourth modified S-box (
Figure pat00123
) Is the same, so each S-box (
Figure pat00124
,
Figure pat00125
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)는 더미 입력문 블록과 더미키(

Figure pat00126
)를 입력값으로 하여 상기 제1함수(F함수)에 의한 연산을 수행하는 단계일 수 있다. On the other hand, the dummy round operation step (S1301d) is a dummy input block and a dummy key (
Figure pat00126
) May be a step of performing an operation by the first function (F function) as an input value.

이때에, 상기 더미 입력문 블록은 상기 평문 블록(

Figure pat00127
)일 수 있고, 상기 더미키(
Figure pat00128
)는 랜덤하게 생성될 수 있다. At this time, the dummy input block is the plaintext block (
Figure pat00127
), The dummy key (
Figure pat00128
) May be randomly generated.

즉, 각각의 상기 더미라운드 연산단계(S1301d)는 제1라운드 연산단계(S1301)와 동일한 과정을 통해 연산을 수행하되, 그 입력값이 상이할 수 있다. 다시 말해서, 상기 더미라운드 연산단계(S1301d)는 제1라운드 연산단계(S1301)에서 사용되는 제1라운드키(

Figure pat00129
) 대신 상기 더미키(
Figure pat00130
)를 사용하여 동일한 연산을 수행하는 단계일 수 있다. 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) (
Figure pat00129
) Instead of the dummy key (
Figure pat00130
) To perform the same operation.

아울러, 상기 더미 입력문 블록은 상기 평문 블록(

Figure pat00131
)과 동일한 크기로 랜덤하게 생성되고, 상기 더미키(
Figure pat00132
)는 상기 라운드키(
Figure pat00133
) 중 어느 하나와 동일할 수 있다. In addition, the dummy input block is the plaintext block (
Figure pat00131
) And randomly generated with the same size, the dummy key (
Figure pat00132
) Is the round key (
Figure pat00133
).

즉, 상기 더미라운드 연산단계(S1301d)는 제n라운드 연산단계(S1301)에서 사용되는 상기 평문 블록(

Figure pat00134
) 대신 상기 더미 입력문 블록을 입력값으로 하여 동일한 연산을 수행하는 단계일 수 있다. That is, the dummy round calculation step (S1301d) is the plaintext block used in the n-th round calculation step (S1301) (
Figure pat00134
) Instead, it may be a step of performing the same operation using the dummy input statement block as an input value.

또한, 상기 더미 입력문 블록은 상기 평문 블록(

Figure pat00135
)과 동일한 크기로 랜덤하게 생성되고, 상기 더미키(
Figure pat00136
) 또한 랜덤하게 생성될 수도 있다.In addition, the dummy input block is the plaintext block (
Figure pat00135
) And randomly generated with the same size, the dummy key (
Figure pat00136
) It can also be generated randomly.

즉, 상기 더미라운드 연산단계(S1301d)는 제n라운드 연산단계(S1301)와 동일하게 제1함수를 사용하여 연산하되, 상기 평문 블록(

Figure pat00137
) 대신 상기 더미 입력문 블록을, 상기 라운드키(
Figure pat00138
) 대신 상기 더미키(
Figure pat00139
)를 입력값으로 하여 동일한 연산을 수행하는 단계일 수 있다. 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 (
Figure pat00137
) Instead of the dummy input block, the round key (
Figure pat00138
) Instead of the dummy key (
Figure pat00139
) 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항에 있어서,
상기 라운드키 생성단계에서는 제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.
제2항에 있어서,
상기 더미라운드 연산단계는, 더미 입력문 블록과 더미키를 입력값으로 하여 상기 제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.
제3항에 있어서,
상기 더미 입력문 블록은 상기 평문 블록과 동일하고,
상기 더미키는 랜덤하게 생성되는 것을 특징으로 하는 블록 암호화 방법.
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.
제3항에 있어서,
상기 더미 입력문 블록은 랜덤하게 생성되고,
상기 더미키는 상기 라운드키 중 어느 하나와 동일한 것을 특징으로 하는 블록 암호화 방법.
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.
제3항에 있어서,
상기 더미 입력문 블록과 상기 더미키는 랜덤하게 생성되는 것을 특징으로 하는 블록 암호화 방법.
According to claim 3,
The dummy input block and the dummy key are randomly generated block encryption method.
제3항에 있어서,
상기 더미라운드 연산단계는 상기 제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.
제3항에 있어서,
상기 더미라운드 연산단계는 상기 제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항에 있어서,
상기 제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.
제9항에 있어서,
상기 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.
제9항에 있어서,
상기 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.
제11항에 있어서,
상기 S-box는 S-box1과 S-box2의 두가지가 공개되어 있고, 상기 특정상수는 특정상수0(
Figure pat00140
), 특정상수1(
Figure pat00141
), 특정상수2(
Figure pat00142
), 및 특정상수3(
Figure pat00143
)의 4개이며, 상기 변형S-box는 제1 내지 제4변형S-box1(
Figure pat00144
)의 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 (
Figure pat00140
), Specific constant 1 (
Figure pat00141
), Specific constant 2 (
Figure pat00142
), And specific constant 3 (
Figure pat00143
), The modified S-box is the first to fourth modified S-box1 (
Figure pat00144
Block encryption method characterized in that four are generated.
제12항에 있어서,
상기 제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.
제13항에 있어서,
상기 특정상수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.
제9항에 있어서,
상기 특정상수는 고정값인 것을 특징으로 하는 블록 암호화 방법.
The method of claim 9,
The specific constant is a block encryption method, characterized in that the fixed value.
제9항에 있어서,
상기 특정상수는 랜덤값인 것을 특징으로 하는 블록 암호화 방법.
The method of claim 9,
The specific constant is a block encryption method, characterized in that the random value.
제9항에 있어서,
상기 제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.
제17항에 있어서,
상기 제2함수는 t비트를 4개의 t/16비트 블록
Figure pat00145
으로 분할한 입력값에 대해 4개의 t/16비트 블록(
Figure pat00146
)을 출력하여, 하기 수식으로 표현되는 것을 특징으로 하는 블록 암호화 방법.
Figure pat00147
,
Figure pat00148
,
Figure pat00149
,
Figure pat00150

Figure pat00151

The method of claim 17,
The second function is a t-bit block of 4 t / 16 bits.
Figure pat00145
4 t / 16 bit blocks for input values divided by
Figure pat00146
) Is output, and it is represented by the following formula.
Figure pat00147
,
Figure pat00148
,
Figure pat00149
,
Figure pat00150

Figure pat00151

제1 내지 제18항 중 어느 한 항에 있어서,
n=16인 것을 특징으로 하는 블록 암호화 방법.
The method according to any one of claims 1 to 18,
Block encryption method, characterized in that n = 16.
제1 내지 제18항 중 어느 한 항에 있어서,
t=128인것을 특징으로 하는 블록 암호화 방법.
The method according to any one of claims 1 to 18,
Block encryption method characterized in that t = 128.
KR1020180121532A 2018-10-12 2018-10-12 Block Encryption Method KR102109895B1 (en)

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)

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

Patent Citations (6)

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