KR20200067414A - Method of switching arithmetic to boolean masking, computer readable medium for performing the method - Google Patents

Method of switching arithmetic to boolean masking, computer readable medium for performing the method Download PDF

Info

Publication number
KR20200067414A
KR20200067414A KR1020180154236A KR20180154236A KR20200067414A KR 20200067414 A KR20200067414 A KR 20200067414A KR 1020180154236 A KR1020180154236 A KR 1020180154236A KR 20180154236 A KR20180154236 A KR 20180154236A KR 20200067414 A KR20200067414 A KR 20200067414A
Authority
KR
South Korea
Prior art keywords
masking
bit
arithmetic
data
state
Prior art date
Application number
KR1020180154236A
Other languages
Korean (ko)
Other versions
KR102192055B1 (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 KR1020180154236A priority Critical patent/KR102192055B1/en
Publication of KR20200067414A publication Critical patent/KR20200067414A/en
Application granted granted Critical
Publication of KR102192055B1 publication Critical patent/KR102192055B1/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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Image Processing (AREA)

Abstract

Disclosed are a method for switching arithmetic masking into Boolean masking to manage side channel analysis attack in a low-memory environment and a recording medium and a device for executing the same. According to the present invention, the method comprises the following steps of: excluding the least significant bit from data of an arithmetic masking state and processing Boolean masking for each bit to generate a G table; processing Boolean masking for a carry bit generated in the G table generation step to generate a C table; checking whether the carry bit is generated in the step of using the G table to process Boolean masking for each bit of the data of the arithmetic masking state; and using the C table to remove the carry bit from the data of the arithmetic masking state and using the G table to switch the data of the arithmetic masking state into the data of a Boolean masking state.

Description

산술 마스킹-불 마스킹 변환 방법, 이를 수행하기 위한 기록매체 및 장치{METHOD OF SWITCHING ARITHMETIC TO BOOLEAN MASKING, COMPUTER READABLE MEDIUM FOR PERFORMING THE METHOD}Arithmetic masking-to-bulk masking conversion method, recording medium and apparatus for performing the same METHOD OF SWITCHING ARITHMETIC TO BOOLEAN MASKING, COMPUTER READABLE MEDIUM FOR PERFORMING THE METHOD}

본 발명은 산술 마스킹-불 마스킹 변환 방법, 이를 수행하기 위한 기록매체 및 장치에 관한 것으로, 보다 상세하게는 불 연산자와 산술 연산자를 사용하는 암호 알고리즘에서 산술 마스킹에서 불 마스킹으로 마스킹의 형태를 변환하는 산술 마스킹-불 마스킹 변환 방법, 이를 수행하기 위한 기록매체 및 장치에 관한 것이다.The present invention relates to an arithmetic masking-bull masking conversion method, a recording medium and a device for performing the same, and more specifically, to convert a form of masking from arithmetic masking to fire masking in a cryptographic algorithm using a Boolean operator and an arithmetic operator It relates to an arithmetic masking-to-bull masking conversion method, a recording medium and a device for performing the same.

전력 분석 공격은 공격자가 암호 알고리즘이 수행되는 동안 발생하는 전력 신호를 분석하여 비밀 정보를 알아내는 부채널 공격 기법이다. The power analysis attack is a side-channel attack technique in which an attacker analyzes a power signal generated while a cryptographic algorithm is being executed to discover secret information.

이러한 부채널 공격의 대응 방안으로 널리 알려진 방법 중 하나는 마스킹 기법이다.One of the methods widely known as a countermeasure for such side-channel attacks is a masking technique.

마스킹 기법은 크게 불 마스킹(Boolean Masking) 기법과 산술 마스킹(Arithmetic Masking) 기법의 두 종류로 나뉠 수 있다. 불 마스킹 기법은 XOR 연산을 통한 형태가 대표적이고, 산술 마스킹 기법은 뺄셈 연산을 이용한 형태가 대표적이다. The masking technique can be roughly divided into two types: a boolean masking technique and an arithmetic masking technique. Bull masking technique is representative of the form through XOR operation, and arithmetic masking technique is typical of using subtraction operation.

이러한 두 마스킹 기법은 ARX(addition, Rotation, XOR) 블록 암호 알고리즘에 적용될 수 있다. ARX 블록 암호 알고리즘은 불 마스킹 기법과 산술 마스킹 기법을 반복하여 사용하기 때문에 불 마스킹과 산술 마스킹을 전환하는 단계가 필요하다.These two masking techniques can be applied to the ARX (addition, rotation, XOR) block encryption algorithm. Since the ARX block cipher algorithm repeatedly uses a fire masking technique and an arithmetic masking technique, a step of switching between fire masking and arithmetic masking is required.

산술 마스킹에서 불 마스킹으로 전환하는 알고리즘은 활발히 연구되고 있다. 산술 마스킹에서 불 마스킹으로 전환하는 알고리즘은 덧셈의 캐리(carry)를 처리하는 방식에 따라 자리 올림수 예측 가산기(carry look-ahead adder)에 기반한 알고리즘과 리플 자리 올림수 가산기(ripple-carry adder)에 기반한 알고리즘으로 나뉠 수 있다.Algorithms for switching from arithmetic masking to fire masking are actively being studied. Algorithm masking to bull masking algorithms are based on a carry look-ahead adder and a ripple-carry adder based on how the carry of addition is handled. It can be divided into based algorithms.

자리 올림수 예측 가산기에 기반한 알고리즘의 경우, 불 연산만으로 캐리를 처리할 수 있다는 장점이 있으나 메모리를 사용하여 연산 속도를 높이기에는 한계가 있다.Algorithm based on the digit prediction adder has the advantage of being able to handle carry with only boolean operations, but there is a limit to speed up computation using memory.

리플 자리 올림수 가산기에 기반한 알고리즘의 경우 메모리를 사용하여 연산 속도를 최적화하기에 용이하나, 저장 공간의 활용과 연산 속도 최적화 사이에 적절한 균형을 유지하여야 한다.In the case of algorithms based on the ripple digit adder, it is easy to optimize the calculation speed using memory, but it is necessary to maintain an appropriate balance between utilization of storage space and optimization of calculation speed.

본 발명의 일측면은 LSB(Least significant bit) 트릭 기술을 적용하여 사전 연산 테이블을 생성하고, 리플 자리 올림수 가산기에 기반한 A2B 알고리즘을 수행하는 산술 마스킹-불 마스킹 변환 방법, 이를 수행하기 위한 기록매체 및 장치를 제공한다.One aspect of the present invention is arithmetic masking-bull masking conversion method for generating a pre-calculation table by applying a least significant bit (LSB) trick technique and performing an A2B algorithm based on a ripple digit adder, a recording medium for performing the same And devices.

본 발명에 따른 산술 마스킹-불 마스킹 변환 방법은 산술 마스킹(Arithmetic Masking) 상태의 데이터에서 최하위 비트(LSB: Least significant bit)를 제외하고 각 비트를 불 마스킹(Boolean Masking) 처리하여 G 테이블을 생성하는 단계, 상기 G 테이블 생성 단계에서 발생하는 캐리 비트를 불 마스킹 처리하여 C 테이블을 생성하는 단계, 상기 G 테이블을 이용하여 상기 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 처리하는 단계에서 캐리 비트의 발생 여부를 확인하는 단계 및 상기 C 테이블을 이용하여 상기 산술 마스킹 상태의 데이터에서 캐리 비트를 제거한 뒤 상기 G 테이블을 이용하여 상기 산술 마스킹 상태의 데이터를 불 마스킹 상태로 변환하는 단계를 포함한다.The arithmetic masking-bull masking conversion method according to the present invention generates a G table by boolean masking each bit except for least significant bits (LSB) from data in arithmetic masking state Step, generating a C table by bull-masking the carry bits generated in the G table generating step, and whether or not carry bits occur in the step of bull-masking each bit in the arithmetic masking state using the G table. And removing the carry bit from the arithmetic masking state data using the C table and converting the arithmetic masking state data to a non-masking state using the G table.

한편, 상기 G 테이블 생성 단계에서 발생하는 캐리 비트를 불 마스킹 처리하여 C 테이블을 생성하는 단계는, 상기 산술 마스킹 상태의 데이터를 불 마스킹 상태로 변환하는 경우, 상기 C 테이블을 생성하는 단계에서 캐리 비트와 더해지는 난수(α)를 제거할 수 있도록 상기 산술 마스킹 상태의 데이터의 각 비트 마다 상기 G 테이블 생성 단계에서 발생하는 캐리 비트를 불 마스킹 처리한 값을 더하여 저장하는 단계를 포함할 수 있다.On the other hand, the step of generating a C table by bull masking the carry bit generated in the G table generation step, when converting the data of the arithmetic masking state into a bull masking state, the carry bit in the step of generating the C table And removing the carry bit generated in the G table generation step for each bit of the data in the arithmetic masking state so as to remove the random number α to be added, and storing the bit.

또한, 산술 마스킹 상태의 데이터에서 최하위 비트(LSB: Least significant bit)를 제외하고 각 비트를 불 마스킹 처리하여 G 테이블을 생성하는 단계는, 상기 산술 마스킹 상태의 데이터 각 비트에 랜덤 값(r)을 더하고 불 마스킹 처리하여 상기 G 테이블을 생성하는 단계를 포함할 수 있다.Further, except for the least significant bit (LSB: Least significant bit) from the data in the arithmetic masking state, the step of generating a G table by performing a non-masking of each bit, a random value (r) is assigned to each bit of the data in the arithmetic masking state. In addition, it may include the step of generating the G table by bull masking.

또한, 상기 G 테이블 생성 단계에서 발생하는 캐리 비트를 불 마스킹 처리하여 C 테이블을 생성하는 단계는, 상기 캐리 비트와 난수(α)의 합에 2k(여기서, k는 상기 데이터의 비트 자리 수)를 곱한 값으로 연산하여 상기 C 테이블을 생성하는 단계를 포함할 수 있다.In addition, the step of generating a C table by bull-masking the carry bit generated in the G table generating step is 2 k to the sum of the carry bit and the random number α (where k is the number of bit digits of the data). It may include the step of generating the C table by calculating a value multiplied by.

또한, 상기 G 테이블을 이용하여 상기 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 처리하는 단계에서 캐리 비트의 발생 여부를 확인하는 단계는, 상기 산술 마스킹 상태의 데이터 각 비트에 상기 랜덤 값(r) 및 상기 난수(α)를 뺀 값을 초기 값으로 설정하는 단계 및 하위 비트를 상위 비트로 올릴 수 있도록 상기 초기 값에 마스킹 값(R)을 더하여 하위 비트를 상위 비트로 올리는 단계를 포함할 수 있다.In addition, in the step of bull masking each bit of data in the arithmetic masking state using the G table, the step of checking whether a carry bit is generated may include the random value (r) and each bit of the data in the arithmetic masking state. The method may include setting a value obtained by subtracting the random number α as an initial value and raising a lower bit to a higher bit by adding a masking value R to the initial value so that a lower bit can be raised to a higher bit.

또한, 상기 C 테이블을 이용하여 상기 산술 마스킹 상태의 데이터에서 캐리 비트를 제거한 뒤 상기 G 테이블을 이용하여 상기 산술 마스킹 상태의 데이터를 불 마스킹 상태로 변환하는 단계는, 상기 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 처리하는 단계에서 캐리 비트가 발생한 경우, 상기 초기 값에 마스킹 값(R)을 더한 값에 상기 난수(α) 및 1을 더하여 상기 캐리 비트 및 상기 난수(α)를 제거하는 단계 및 상기 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 처리하는 단계에서 캐리 비트가 발생하지 않은 경우, 상기 난수(α)를 더하여 상기 캐리 비트 및 상기 난수(α)를 제거하는 단계를 포함할 수 있다.In addition, after removing the carry bit from the data in the arithmetic masking state using the C table, converting the data in the arithmetic masking state into a non-masking state using the G table, each bit of the data in the arithmetic masking state When a carry bit occurs in the step of bull masking, removing the carry bit and the random number (α) by adding the random number (α) and 1 to the initial value plus the masking value (R) and the When the carry bit does not occur in the step of bull masking each bit of the arithmetic masking state, the method may include removing the carry bit and the random number α by adding the random number α.

또한, 상기 C 테이블을 이용하여 상기 산술 마스킹 상태의 데이터에서 캐리 비트를 제거한 뒤 상기 G 테이블을 이용하여 상기 산술 마스킹 상태의 데이터를 불 마스킹 상태로 변환하는 단계는, 상기 C 테이블을 이용하여 상기 산술 마스킹 상태의 데이터에서 캐리 비트를 제거하고, XOR 연산을 이용하여 상기 랜덤 값(r)을 반환하는 단계를 포함할 수 있다.In addition, after removing the carry bit from the arithmetic masking state data using the C table, converting the arithmetic masking state data into a non-masking state using the G table is performed using the C table. The method may include removing a carry bit from the masking data and returning the random value r using an XOR operation.

또한, 상기 C 테이블을 이용하여 상기 산술 마스킹 상태의 데이터에서 캐리 비트를 제거한 뒤 상기 G 테이블을 이용하여 상기 산술 마스킹 상태의 데이터를 불 마스킹 상태로 변환하는 단계는, 상기 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 상태로 변환하고 데이터의 각 비트 자리에 저장되도록 처리하는 단계를 포함할 수 있다.In addition, after removing the carry bit from the data in the arithmetic masking state using the C table, converting the data in the arithmetic masking state into a non-masking state using the G table, each bit of the data in the arithmetic masking state And converting to a non-masking state and processing to be stored in each bit position of the data.

또한, 상기 산술 마스킹-불 마스킹 변환 방법을 수행하기 위한, 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체일 수 있다.In addition, a computer-readable recording medium in which a computer program is recorded for performing the arithmetic masking-to-bulk masking conversion method.

한편, 본 발명의 산술 마스킹-불 마스킹 변환 장치는 산술 마스킹(Arithmetic Masking) 상태의 데이터에서 최하위 비트(LSB: Least significant bit)를 제외하고 각 비트를 불 마스킹(Boolean Masking) 처리하여 G 테이블을 생성하고, 상기 G 테이블 생성 단계에서 발생하는 캐리 비트를 불 마스킹 처리하여 C 테이블을 생성하는 사전 연산 테이블 생성부 및 상기 G 테이블을 이용하여 상기 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 처리하는 단계에서 캐리 비트의 발생 여부를 확인하고, 상기 C 테이블을 이용하여 상기 산술 마스킹 상태의 데이터에서 캐리 비트를 제거한 뒤 상기 G 테이블을 이용하여 상기 산술 마스킹 상태의 데이터를 불 마스킹 상태로 변환하는 산술 마스킹-불 마스킹 변환부를 포함한다.On the other hand, the arithmetic masking-bull masking conversion apparatus of the present invention generates a G table by boolean masking each bit except for the least significant bit (LSB) from the data in the arithmetic masking state. Then, a pre-operation table generator for generating a C table by bull-masking the carry bits generated in the G table generation step and carry in the step of bull-masking each bit of the arithmetic masking data using the G table Arithmetic masking-Bull masking that checks whether a bit has occurred and removes a carry bit from the arithmetic masking state data using the C table, and then converts the arithmetic masking state data into a fire masking state using the G table. It includes a conversion unit.

본 발명에 따르면 사전 연산 테이블 저장에 필요한 메모리를 적게 사용할 수 있으며 연산 소요시간을 향상시킬 수 있다. 따라서 저메모리 환경에서 부채널 분석 공격에 대응할 수 있다.According to the present invention, it is possible to use less memory for storing the pre-calculation table and improve the computation time. Therefore, it is possible to cope with a sub-channel analysis attack in a low memory environment.

도 1은 본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 장치의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 방법의 순서도이다.
도 3 및 도 4는 도 2에 도시된 산술 마스킹-불 마스킹 변환 방법을 보여주는 실행 코드의 일 예이다.
1 is a block diagram of an arithmetic masking-bull masking conversion apparatus according to an embodiment of the present invention.
2 is a flow chart of an arithmetic masking-to-bull masking conversion method according to an embodiment of the present invention.
3 and 4 are examples of executable code showing the arithmetic masking-to-bull masking conversion method illustrated in FIG. 2.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Advantages and features of the present invention, and methods for achieving them will be clarified with reference to embodiments described below in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in various different forms, and only the embodiments allow the disclosure of the present invention to be complete, and the ordinary knowledge in the technical field to which the present invention pertains. It is provided to fully inform the holder of the scope of the invention, and the invention is only defined by the scope of the claims. The same reference numerals refer to the same components throughout the specification.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계 및 동작은 하나 이상의 다른 구성요소, 단계 및 동작의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for describing the embodiments and is not intended to limit the present invention. In the present specification, the singular form also includes the plural form unless otherwise specified in the phrase. As used herein, "comprises" and/or "comprising" does not exclude the presence or addition of one or more other components, steps and actions.

도 1은 본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 장치의 블록도이다.1 is a block diagram of an arithmetic masking-bull masking conversion apparatus according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 장치(1)는 사전 연산 테이블 생성부(10) 및 산술 마스킹-불 마스킹 변환부(30)를 포함할 수 있다.Referring to FIG. 1, the arithmetic masking-bull masking conversion apparatus 1 according to an embodiment of the present invention may include a pre-operation table generation unit 10 and an arithmetic masking-bull masking conversion unit 30.

본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 장치(1)는 ARX(Addition, Rotation, XOR) 블록 암호 알고리즘에서 마스킹 기법을 산술 마스킹으로부터 불 마스킹으로 변환하는 산술 마스킹-불 마스킹 변환(A2B, Authmetic to Boolean Masking Conversion) 알고리즘을 수행할 수 있다.The arithmetic masking-bull masking conversion apparatus 1 according to an embodiment of the present invention is an arithmetic masking-bull masking transform (A2B) that converts a masking technique from an arithmetic masking to a fire masking in an ARX (Addition, Rotation, XOR) block encryption algorithm. , Authmetic to Boolean Masking Conversion) algorithm.

ARX 블록 암호 알고리즘은 산술 마스킹(Authmetic Masking)으로 연산되는 덧셈 과정과 불 마스킹(Boolean Masking)으로 연산되는 순환 및 XOR 연산이 하나의 라운드에 존재한다.In the ARX block encryption algorithm, the addition process computed by arithmetic masking and the cyclic and XOR computation computed by Boolean masking exist in one round.

마스킹 기법은 암호 알고리즘이 연산될 때 발생하는 중간 값을 랜덤하게 만들어 공격자에게 필요한 정보의 누출을 막는 대응 기법이다.The masking technique is a countermeasure technique that randomly generates the intermediate value that occurs when the cryptographic algorithm is operated to prevent the information leaked by the attacker.

산술 마스킹은 덧셈, 뺄셈 또는 곱셈의 대수 연산을 이용한 마스킹 기법으로, 뺄셈을 이용한 x'=x-rxmod2k(x는 데이터, rx는 난수 값)와 같은 형태가 대표적이다.Arithmetic masking is a masking technique using algebraic operations of addition, subtraction, or multiplication, and forms such as x'=xr x mod2 k (x is data, r x is random value) using subtraction.

불 마스킹은 배타적 논리합(XOR: Exclusive Or)을 이용한 마스킹 기법으로, x'=x

Figure pat00001
rx(x는 데이터, rx는 난수 값)과 같은 형태가 대표적이다.Bull masking is a masking technique using exclusive OR (XOR: x'=x
Figure pat00001
Types such as r x (x is data, r x is random value) are typical.

본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 장치(1)는 리플 자리 올림수 가산기(ripple-carry adder)를 기반으로 한 산술 마스킹-불 마스킹 변환 알고리즘을 수행할 수 있다. The arithmetic masking-bull masking conversion apparatus 1 according to an embodiment of the present invention can perform an arithmetic masking-bull masking conversion algorithm based on a ripple-carry adder.

리플 자리 올림수 가산기는 하나의 비트를 보고 이 비트에 캐리 비트(올림수)가 발생하는지를 확인하고, 다음 비트에 캐리 비트를 전파하는 일련의 과정을 반복하여 비트를 처리한다. 즉, 리플 자리 올림수 가산기에 기반한 산술 마스킹-불 마스킹 변환 알고리즘은 상위 비트의 A2B 변환을 위해 하위 비트에서 생성되는 캐리 비트를 필요로 한다. 이러한 리블 자리 올림수 가산기는 메모리를 사용하여 동작 시간을 최적화하기에 용이하다는 장점을 갖는다.The ripple digit rounder adder processes a bit by looking at one bit, checking whether a carry bit (rounding number) occurs in the bit, and repeating a series of steps to propagate the carry bit to the next bit. That is, an arithmetic masking-to-bulk masking conversion algorithm based on a ripple digit rounder adder requires a carry bit generated in a lower bit for A2B conversion of a higher bit. The rib digit rounder adder has the advantage of being easy to optimize the operating time using memory.

본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 장치(1)는 메모리를 사용하는 기기에 탑재되어 기기의 마스킹 기법을 지원할 수 있다.The arithmetic masking-to-bulk masking conversion apparatus 1 according to an embodiment of the present invention may be mounted on a device using a memory to support the masking technique of the device.

이하, 도 1에 도시된 본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 장치(1)의 각 구성에 대하여 구체적으로 설명한다.Hereinafter, each configuration of the arithmetic masking-bull masking conversion apparatus 1 according to an embodiment of the present invention shown in FIG. 1 will be described in detail.

사전 연산 테이블 생성부(10)는 산술 마스킹-불 마스킹 변환에 필요한 참조 테이블(LUT: Look-Up Table)을 생성할 수 있다.The pre-calculation table generator 10 may generate a look-up table (LUT) required for arithmetic masking-to-bulk masking conversion.

사전 연산 테이블 생성부(10)는 G 테이블 및 C 테이블을 생성할 수 있다.The pre-calculation table generator 10 may generate a G table and a C table.

G 테이블은 산술 마스킹 상태의 데이터의 각 비트를 불 마스킹 처리하여 배열 G 에 저장한 테이블이다.The G table is a table in which each bit of data in the arithmetic masking state is fire-masked and stored in the array G.

사전 연산 테이블 생성부(10)는 이러한 G 테이블을 생성하는데, LSB(Least Significant bit) 트릭 기술을 적용하여 산술 마스킹 상태의 데이터에서 최하위 비트(LSB)를 제외하고, 각 비트를 불 마스킹 처리하여 G 테이블을 생성할 수 있다. 여기서, LSB 트릭 기술은 산술 마스킹과 불 마스킹 간에 최하위 비트의 결과 값이 동일하다는 성질을 이용하여 메모리를 줄이는 기술이다. The pre-calculation table generation unit 10 generates such a G table, and applies the least significant bit (LSB) trick technique to exclude each least significant bit (LSB) from the data in the arithmetic masking state, and fires each bit to perform G masking. You can create tables. Here, the LSB trick technique is a technique for reducing memory by using a property that the result value of the least significant bit is the same between arithmetic masking and bull masking.

데이터의 크기가 (nㆍk)비트인 것을 예로 들어 설명하면, 참조 테이블 및 변환 연산의 크기는 k 비트일 수 있다.If the size of data is (n·k) bits as an example, the size of the reference table and the conversion operation may be k bits.

사전 연산 테이블 생성부(10)는 산술 마스킹 상태의 데이터의 (k+1) 비트에 해당하는 값(A)을

Figure pat00002
과 같이 연산하여 불 마스킹 처리하고, 배열 G에 저장하여 G 테이블을 생성할 수 있다. 이때,
Figure pat00003
에서의 뺄셈 연산은 (1-1≡0, 1-0≡1, 0-1≡1, 0-0≡0)mod2 이고, XOR 연산은 (1
Figure pat00004
1≡0, 1
Figure pat00005
0≡1, 0
Figure pat00006
1≡1, 0
Figure pat00007
0≡0)mod2 로 그 결과가 동일하다. 따라서 사전 연산 테이블 생성부(10)는 최하위 비트를 제외하고 k 비트만을 불 마스킹 처리하여 G 테이블을 생성하여도 무방하다. 이로 인해 본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 장치(1)는 메모리 처리 단위로 8-bit의 char 형을 이용하는 기기에 적용되는 경우, 사용 메모리 양을 크게 줄일 수 있다.The pre-calculation table generator 10 sets the value (A) corresponding to the (k+1) bit of the arithmetic masking state
Figure pat00002
As described above, the bull masking process is performed, and the G table can be generated by storing it in the array G. At this time,
Figure pat00003
The subtraction operation at (1-1≡0, 1-0≡1, 0-1≡1, 0-0≡0) is mod2, and the XOR operation is (1
Figure pat00004
1≡0, 1
Figure pat00005
0≡1, 0
Figure pat00006
1≡1, 0
Figure pat00007
The result is the same with 0≡0)mod2. Therefore, the pre-computation table generation unit 10 may generate the G table by performing bull masking on only k bits excluding the least significant bit. Therefore, when the arithmetic masking-to-bulk masking conversion apparatus 1 according to an embodiment of the present invention is applied to a device using an 8-bit char type as a memory processing unit, the amount of used memory can be greatly reduced.

C 테이블을 G 테이블 생성 단계에서 발생하는 캐리 비트를 불 마스킹 처리하여 배열 C 에 저장한 테이블이다.This table stores the C table in the array C by bull-masking the carry bit generated in the G table generation step.

사전 연산 테이블 생성부(10)는 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 처리하는 단계에서 발생하는 캐리 비트(c)를 불 마스킹 처리하여 C 테이블을 생성할 수 있다.The pre-operation table generation unit 10 may generate a C table by bull-masking the carry bit c generated in the step of bull-masking each bit of arithmetic masking data.

사전 연산 테이블 생성부(10)는 캐리 비트(c)를

Figure pat00008
와 같이 연산하여 C 테이블을 생성할 수 있다. 여기서, α는 차분 전력 분석으로부터 캐리 비트를 안전하게 만드는 난수이다.The pre-operation table generation unit 10 uses the carry bit (c)
Figure pat00008
You can create a C table by computing as follows. Here, α is a random number that makes the carry bit safe from differential power analysis.

차분 전력 분석은 대표적인 부채널 공격 기법의 하나로 암호 알고리즘이 연산될 때 발생하는 중간 값을 누출하여 비밀 정보를 알아내는 공격 기법이다.Differential power analysis is one of the typical sub-channel attack techniques, and it is an attack technique that finds secret information by leaking intermediate values that occur when cryptographic algorithms are computed.

사전 연산 테이블 생성부(10)는 이러한 차분 전력 분석으로부터 캐리 비트를 안전하게 만드는 난수를 더하여 보안성을 강화할 수 있다.The pre-calculation table generation unit 10 may enhance security by adding a random number that makes the carry bit safe from the differential power analysis.

이외에도, 사전 연산 테이블 생성부(10)는 산술 마스킹 상태의 데이터의 각 비트 마다 G 테이블 생성 단계에서 발생하는 캐리 비트를 불 마스킹 처리한 값을 더하여 저장할 수 있다.In addition, the pre-operation table generation unit 10 may store and store the carry bit generated in the G table generation step for each bit of the data in the arithmetic masking state, by adding the value of the non-masking process.

사전 연산 테이블 생성부(10)는 후술하는 산술 마스킹-불 마스킹 변환부(30)에서 산술 마스킹 상태의 데이터를 불 마스킹 상태로 변환하는 경우, C 테이블을 생성하는 단계에서 캐리 비트와 더해지는 난수를 제거할 수 있도록 캐리 비트의 연산 값을 k 비트 마다 저장한 Γ 값을 산출하여 저장할 수 있다.The pre-calculation table generation unit 10 removes the carry bit and the random number added in the step of generating the C table when the arithmetic masking-to-nothing masking conversion unit 30 to be described later converts the arithmetic masking state data into a non-masking state. In order to be able to do so, the calculated Γ value for each k bit can be calculated and stored.

이와 같은 사전 연산 테이블 생성부(10)에서의 사전 연산 테이블 생성 알고리즘에 대한 구체적인 설명은 도 2 이하를 참조하여 후술한다.A detailed description of the algorithm for generating the pre-calculation table in the pre-calculation table generator 10 will be described later with reference to FIG. 2 and below.

산술 마스킹-불 마스킹 변환부(30)는 G 테이블 및 C 테이블을 이용하여 산술 마스킹 상태의 데이터를 불 마스킹 상태의 데이터로 변환할 수 있다.The arithmetic masking-to-bulk masking conversion unit 30 may convert data in the arithmetic masking state into data in a fire masking state using the G table and the C table.

산술 마스킹-불 마스킹 변환부(30)는 리플 자리 올림수 가산기에 기반하여 산술 마스킹 상태의 데이터를 불 마스킹 상태의 데이터로 변환할 수 있다.The arithmetic masking-to-bulk masking conversion unit 30 may convert data in the arithmetic masking state into data in a fire masking state based on a ripple digit rounder adder.

이때, 산술 마스킹-불 마스킹 변환부(30)는 G 테이블 및 C 테이블을 이용하여 연산의 시간 복잡도를 줄일 수 있다.At this time, the arithmetic masking-to-bulk masking conversion unit 30 can reduce the time complexity of the calculation using the G table and the C table.

산술 마스킹-불 마스킹 변환부(30)는 G 테이블을 이용하여 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 처리하는 단계에서 캐리 비트의 발생 여부를 확인할 수 있다.The arithmetic masking-to-bulk masking conversion unit 30 may check whether a carry bit is generated in a step of bull masking each bit of arithmetic masking data using a G table.

산술 마스킹-불 마스킹 변환부(30)는 C 테이블을 이용하여 산술 마스킹 상태의 데이터에서 캐리 비트를 제거한 뒤 불 마스킹 처리하여 산술 마스킹 상태의 데이터를 불 마스킹 상태로 변환할 수 있다.The arithmetic masking-to-bulk masking conversion unit 30 may convert the data of the arithmetic masking state to a bull masking state by removing the carry bit from the arithmetic masking state data using the C table and then performing bull masking.

산술 마스킹-불 마스킹 변환부(30)에서의 산술 마스킹-불 마스킹 변환 알고리즘에 대한 구체적인 설명은 도 2 이하를 참조하여 후술한다.A detailed description of the arithmetic masking-bull masking conversion algorithm in the arithmetic masking-bull masking conversion unit 30 will be described later with reference to FIG. 2 and below.

이와 같이, 본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 장치(1)는 사전 연산 테이블을 이용하는 리플 자리 올림수 가산기에 기반한 A2B 알고리즘을 수행하는데, LSB 트릭 기술을 적용하여 사전 연산 테이블을 생성함으로써 사전 연산 테이블 저장에 필요한 메모리를 적게 사용할 수 있으며 연산 소요시간을 향상시킬 수 있다. 따라서 본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 장치(1)는 저메모리 환경에서 부채널 분석 공격에 대응할 수 있을 것이다.As described above, the arithmetic masking-to-bulk masking conversion apparatus 1 according to an embodiment of the present invention performs an A2B algorithm based on a ripple digit adder using a pre-calculation table, and applies a pre-calculation table by applying LSB trick technology. By generating, it is possible to use less memory for storing the pre-calculation table and improve the computation time. Therefore, the arithmetic masking-to-bulk masking conversion apparatus 1 according to an embodiment of the present invention may respond to a sub-channel analysis attack in a low memory environment.

도 2는 본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 방법의 순서도이고, 도 3 및 도 4는 도 2에 도시된 산술 마스킹-불 마스킹 변환 방법을 보여주는 실행 코드의 일 예이다.2 is a flowchart of an arithmetic masking-bull masking conversion method according to an embodiment of the present invention, and FIGS. 3 and 4 are examples of execution codes showing the arithmetic masking-bull masking conversion method illustrated in FIG. 2.

본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 방법은 도 1에 도시된 산술 마스킹-불 마스킹 변환 장치(1)와 실질적으로 동일한 구성에서 실행될 수 있다. 따라서 도 1에 도시된 산술 마스킹-불 마스킹 변환 장치(1)와 동일한 구성요소는 동일한 도면부호를 부여하고, 반복되는 설명은 생략한다.The arithmetic masking-bull masking conversion method according to an embodiment of the present invention can be performed in substantially the same configuration as the arithmetic masking-bull masking conversion device 1 shown in FIG. 1. Therefore, the same components as those of the arithmetic masking-bull masking conversion device 1 shown in FIG. 1 are given the same reference numerals, and repeated descriptions are omitted.

도 2를 참조하면, 사전 연산 테이블 생성부(10)는 G 테이블을 생성하고(S100), C 테이블을 생성할 수 있다(S200). Referring to FIG. 2, the pre-calculation table generator 10 may generate a G table (S100) and a C table (S200).

사전 연산 테이블 생성부(10)는 산술 마스킹 상태의 데이터에서 최하위 비트(LSB)를 제외하고 각 비트를 불 마스킹 처리하여 G 테이블을 생성할 수 있으며, G 테이블 생성 단계에서 발생하는 캐리 비트를 불 마스킹 처리하여 C 테이블을 생성할 수 있다. 이와 관련하여 구체적인 설명은 도 3을 참조하여 후술한다.The pre-operation table generation unit 10 may generate a G table by excluding each least significant bit (LSB) from the data in the arithmetic masking state, and perform G masking, and carry masking occurring in the G table generation step. You can create a C table by processing. A detailed description of this will be described later with reference to FIG. 3.

산술 마스킹-불 마스킹 변환부(30)는 G 테이블을 이용하여 캐리 비트의 발생 여부를 확인하고(S300), C 테이블을 이용하여 캐리 비트를 제거한 뒤 G 테이블을 이용하여 산술 마스킹-불 마스킹 변환을 수행할 수 있다(S400).The arithmetic masking-bull masking conversion unit 30 checks whether a carry bit is generated using the G table (S300), removes the carry bit using the C table, and then performs an arithmetic masking-bull masking conversion using the G table. It can be performed (S400).

산술 마스킹-불 마스킹 변환부(30)는 리플 자리 올림수 가산기에 기반한 A2B 알고리즘을 수행할 수 있으며, 이때, G 테이블 및 C 테이블을 이용할 수 있다. 이와 관련하여 구체적인 설명은 도 4를 참조하여 후술한다.The arithmetic masking-to-bulk masking conversion unit 30 may perform an A2B algorithm based on a ripple digit rounder adder, and may use a G table and a C table. A detailed description of this will be described later with reference to FIG. 4.

도 3을 참조하면, 사전 연산 테이블 생성부(10)는 (nㆍk) 비트의 데이터를 A2B 변환시킬 수 있으며, 이때 테이블 및 전환 연산의 크기는 k 비트이다.Referring to FIG. 3, the pre-operation table generation unit 10 may A2B convert (n·k) bits of data, and the size of the table and the conversion operation is k bits.

사전 연산 테이블 생성부(10)는 산술 마스킹 상태의 데이터 각 비트에 랜덤 값(r)을 더하고 불 마스킹 처리하여 G 테이블을 생성할 수 있다. 즉, 사전 연산 테이블 생성부(10)는 산술 마스킹 상태의 데이터의 (k+1) 비트에 해당하는 값(A)을

Figure pat00009
과 같이 연산하여 불 마스킹 처리하고, 배열 G에 저장하여 G 테이블을 생성할 수 있으며, 이때, 최하위 비트(LSB)는 제외하고 k 비트만을 불 마스킹 처리하여 G 테이블을 생성할 수 있다(Step 3).The pre-operation table generator 10 may generate a G table by adding a random value r to each bit of arithmetic masking state and performing bull masking. That is, the pre-calculation table generator 10 sets the value (A) corresponding to the (k+1) bit of the arithmetic masking state data.
Figure pat00009
As described above, a bull table can be processed and stored in an array G to generate a G table. At this time, only the k bits, excluding the least significant bit (LSB), can be bull masked to generate a G table (Step 3). .

사전 연산 테이블 생성부(10)는 G 테이블 생성 단계에서 발생하는 캐리 비트와 차분 전력 분석으로부터 캐리 비트를 안전하게 만드는 난수(α)의 합에 2k(여기서, k는 상기 데이터의 비트 자리 수)를 곱한 값으로 연산하여 C 테이블을 생성할 수 있다. 즉, 사전 연산 테이블 생성부(10)는 G 테이블 생성 단계에서 발생하는 캐리 비트(c)를

Figure pat00010
와 같이 연산하여 C 테이블을 생성할 수 있다(Step 5,6). The pre-calculation table generation unit 10 adds 2 k (where k is the number of bit digits of the data) to the sum of the carry bit generated in the G table generation step and the random number (α) that makes the carry bit safe from differential power analysis. A C table can be created by operating with multiplied values. That is, the pre-operation table generation unit 10 uses the carry bit c generated in the G table generation step.
Figure pat00010
You can create a C table by computing as in (Step 5, 6).

또한, 사전 연산 테이블 생성부(10)는 캐리 비트의 연산 값을 k 비트 마다 저장한 Γ 값을 산출하여 저장할 수 있다(Step 7).In addition, the pre-operation table generation unit 10 may calculate and store the Γ value stored for each k bit of the operation value of the carry bit (Step 7).

이와 같이 사전 연산 테이블 생성부(10)에 의해 정의되는 랜덤 값(r), G 테이블, C 테이블 및 Γ 값은 A2B 변환 알고리즘에 사용될 수 있다.As described above, random values (r), G tables, C tables, and Γ values defined by the pre-operation table generator 10 may be used in the A2B conversion algorithm.

도 4를 참조하면, 산술 마스킹-불 마스킹 변환부(30)는 산술 마스킹 상태의 데이터 각 비트에 랜덤 값(r) 및 캐리 비트를 안전하게 만드는 난수(α)를 뺀 값(Ai-r-α)을 초기 값으로 설정할 수 있다. 이때, 산술 마스킹-불 마스킹 변환부(30)는 캐리 비트의 연산 값을 k 비트 마다 저장한 Γ 값을 이용하여 캐리 비트를 안전하게 만드는 난수(α)를 추가 연산 없이 제거할 수 있다(Step 1).Referring to FIG. 4, the arithmetic masking-bulk masking conversion unit 30 is a value obtained by subtracting a random value (r) and a random number (α) that makes a carry bit safe for each bit of the arithmetic masking state (A i -r-α ) As the initial value. At this time, the arithmetic masking-to-bulk masking conversion unit 30 can remove the random number (α) that makes the carry bit safe by using the Γ value that stores the operation value of the carry bit for every k bits without additional operation (Step 1). .

산술 마스킹-불 마스킹 변환부(30)는 리플 자리 올림수 가산기에 기반하여 하위 비트를 상위 비트로 올릴 수 있다. 산술 마스킹-불 마스킹 변환부(30)는 초기 값에 마스킹 값(R)을 더한 값(Ai-r-α+Ri)을 변환 대상 데이터 비트로 저장하는 방식으로 하위 비트를 상위 비트로 올릴 수 있다(Step 3). 이러한 리플 자리 올림수 가산기에 기반한 방식은 A2B 알고리즘 속도를 최적화 할 수 있다.The arithmetic masking-to-bulk masking conversion unit 30 may raise the lower bit to the upper bit based on the ripple digit rounder adder. The arithmetic masking-Bull masking conversion unit 30 may raise the lower bit to the higher bit by storing the initial value plus the masking value (R) (A i -r-α+R i ) as the data bit to be converted. (Step 3). The method based on the ripple digit rounder adder can optimize the speed of the A2B algorithm.

산술 마스킹-불 마스킹 변환부(30)는 G 테이블을 이용하여 변환 대상 데이터 비트를 불 마스킹 처리할 수 있으며, 불 마스킹 처리하는 단계에서의 캐리 비트 발생 여부를 확인할 수 있다. 산술 마스킹-불 마스킹 변환부(30)는 G 테이블을 이용하여 변환 대상 데이터 비트를 불 마스킹 처리한 Bi

Figure pat00011
과 같이 연산하여 저장할 수 있다. 이때, 산술 마스킹-불 마스킹 변환부(30)는 t를 캐리 비트를 알아내기 위한 인자로 함께 저장할 수 있다(step 4). The arithmetic masking-to-bulk masking conversion unit 30 may perform a bull-masking of the data bits to be converted using the G table, and check whether a carry bit is generated in the step of bull-masking. The arithmetic masking-to-bulk masking conversion unit 30 uses the G table to perform B i , which is the masking process of the data bits to be converted.
Figure pat00011
It can be calculated and stored as At this time, the arithmetic masking-to-bulk masking conversion unit 30 may store t together as a factor for determining the carry bit (step 4).

산술 마스킹-불 마스킹 변환부(30)는 G 테이블을 이용하여 변환 대상 데이터 비트를 불 마스킹 처리한 Bi를 마스킹 값(Ri)으로 불 마스킹 처리할 수 있다. 산술 마스킹-불 마스킹 변환부(30)는 Step 4에서 G 테이블을 이용하여

Figure pat00012
과 같이 연산하여 저장한 Bi
Figure pat00013
와 같이 연산하여 저장할 수 있다(Step 5).The arithmetic masking-to-bulk masking conversion unit 30 may perform a bull masking of B i, which is a bulls masking the data bits to be converted, using a G table as a masking value R i . The arithmetic masking-fire masking conversion unit 30 uses the G table in Step 4
Figure pat00012
B i calculated and stored as
Figure pat00013
Can be calculated and stored as (Step 5).

산술 마스킹-불 마스킹 변환부(30)는 C 테이블을 이용하여 산술 마스킹 상태의 데이터에서 캐리 비트를 제거할 수 있다. 산술 마스킹-불 마스킹 변환부(30)는 Step 4에서 저장된 t에 따라 변환 대상 데이터 비트인 초기 값에 마스킹 값(R)을 더한 값(Ai-r-α+Ri)에 캐리 비트를 안전하게 만드는 난수(α)를 더하거나, 캐리 비트를 안전하게 만드는 난수(α) 및 1을 더하여 캐리 비트 및 캐리 비트를 안전하게 만드는 난수(α)를 제거할 수 있다. 이때, t는 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 처리하는 단계에서 캐리 비트가 발생하는 경우에는 변환 대상 데이터 비트에 (α+1)이 더해지도록 하고, 캐리 비트가 발생하지 않은 경우에는 변환 대상 데이터 비트에 (α)가 더해지도록 할 수 있다(Step 6).The arithmetic masking-to-bulk masking conversion unit 30 may remove the carry bit from the arithmetic masking state data using the C table. The arithmetic masking-bull masking conversion unit 30 securely carries the carry bit to the value (A i -r-α+R i ) of the initial value, which is the data bit to be converted, according to t stored in Step 4, plus the masking value (R). The random number (α) that makes the carry bit and the carry bit can be removed by adding the random number (α) that makes the carry bit safe or 1 and the random number (α) that makes the carry bit and the carry bit safe can be removed. At this time, t is (a + 1) is added to the conversion target data bit when a carry bit occurs in the step of non-masking each bit in the arithmetic masking state, and when the carry bit does not occur, the conversion target (Α) may be added to the data bits (Step 6).

산술 마스킹-불 마스킹 변환부(30)는 Step 6으로부터 캐리 비트 및 난수(α)가 처리된 변환 대상 데이터 비트가 데이터의 각 비트 자리에 저장되도록 처리할 수 있다(Step 7). 산술 마스킹-불 마스킹 변환부(30)는 이러한 clearing 과정을 통해 부채널 안전성을 보장할 수 있다.The arithmetic masking-to-bulk masking conversion unit 30 may process the bit data to be converted from the carry bit and the random number α from Step 6 to be stored in each bit position of the data (Step 7). The arithmetic masking-to-bulk masking conversion unit 30 can ensure sub-channel safety through this clearing process.

산술 마스킹-불 마스킹 변환부(30)는 최종적으로 Step 5에서 저장한

Figure pat00014
를 최종적으로 반환하는데, 랜덤 값(r)을 XOR 연산을 이용하여 반환할 수 있다. 따라서 산술 마스킹-불 마스킹 변환부(30)는 결과적으로는 캐리 비트 및 난수(α)가 처리된 변환 대상 데이터 비트를 마스킹 값으로 불 마스킹 처리한
Figure pat00015
를 최종 반환할 수 있다(Step 9).The arithmetic masking-fire masking conversion unit 30 is finally saved in Step 5
Figure pat00014
Finally, random value (r) can be returned using XOR operation. Therefore, the arithmetic masking-to-bulk masking conversion unit 30 results in a bulls-masking of the data bits to be converted, where the carry bit and the random number (α) are processed as a masking value.
Figure pat00015
You can finally return (Step 9).

산술 마스킹-불 마스킹 변환부(30)는 이와 같은 단계를 거쳐 산술 마스킹 상태의 데이터를 마스킹 값으로 불 마스킹 처리하여 불 마스킹 상태로 변환활 수 있다.The arithmetic masking-to-bulk masking conversion unit 30 may perform the above steps to convert the arithmetic masking state data into a masking value by performing a bull masking process.

이와 같은, 본 발명의 산술 마스킹-불 마스킹 변환 방법은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.As described above, the arithmetic masking-to-bulk masking conversion method of the present invention may be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, or the like alone or in combination.

상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.The program instructions recorded on the computer-readable recording medium are specially designed and configured for the present invention, and may be known and available to those skilled in the computer software field.

컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs, DVDs, and magneto-optical media such as floptical disks. media), and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like.

프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of program instructions include not only machine language codes produced by a compiler, but also high-level language codes executable by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform processing according to the present invention, and vice versa.

이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.Although the embodiments of the present invention have been described with reference to the accompanying drawings, those skilled in the art to which the present invention pertains may be implemented in other specific forms without changing the technical spirit or essential features of the present invention. You will understand. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.

1: 산술 마스킹-불 마스킹 변환 장치
10: 사전 연산 테이블 생성부
30: 산술 마스킹-불 마스킹 변환부
1: Arithmetic masking-fire masking conversion device
10: pre-calculation table generator
30: arithmetic masking-fire masking conversion unit

Claims (10)

산술 마스킹(Arithmetic Masking) 상태의 데이터에서 최하위 비트(LSB: Least significant bit)를 제외하고 각 비트를 불 마스킹(Boolean Masking) 처리하여 G 테이블을 생성하는 단계;
상기 G 테이블 생성 단계에서 발생하는 캐리 비트를 불 마스킹 처리하여 C 테이블을 생성하는 단계;
상기 G 테이블을 이용하여 상기 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 처리하는 단계에서 캐리 비트의 발생 여부를 확인하는 단계; 및
상기 C 테이블을 이용하여 상기 산술 마스킹 상태의 데이터에서 캐리 비트를 제거한 뒤 상기 G 테이블을 이용하여 상기 산술 마스킹 상태의 데이터를 불 마스킹 상태로 변환하는 단계를 포함하는 산술 마스킹-불 마스킹 변환 방법.
Generating a G table by performing boolean masking on each bit, except for least significant bits (LSBs), in arithmetic masking data;
Generating a C table by bull masking the carry bit generated in the G table generation step;
Checking whether a carry bit is generated in the step of bull-masking each bit of the arithmetic masking state data using the G table; And
And removing the carry bit from the data in the arithmetic masking state using the C table and then converting the data in the arithmetic masking state into a non-masking state using the G table.
제1항에 있어서,
상기 G 테이블 생성 단계에서 발생하는 캐리 비트를 불 마스킹 처리하여 C 테이블을 생성하는 단계는,
상기 산술 마스킹 상태의 데이터를 불 마스킹 상태로 변환하는 경우, 상기 C 테이블을 생성하는 단계에서 캐리 비트와 더해지는 난수(α)를 제거할 수 있도록 상기 산술 마스킹 상태의 데이터의 각 비트 마다 상기 G 테이블 생성 단계에서 발생하는 캐리 비트를 불 마스킹 처리한 값을 더하여 저장하는 단계를 포함하는 산술 마스킹-불 마스킹 변환 방법.
According to claim 1,
The step of generating the C table by bull masking the carry bit generated in the G table generation step,
When converting the data in the arithmetic masking state into a non-masking state, the G table is generated for each bit of the data in the arithmetic masking state so that a carry bit and a random number (α) added in the step of generating the C table can be removed. The arithmetic masking-to-bulk masking conversion method comprising the step of adding and storing the carry-masked value of the carry bit generated in the step.
제1항에 있어서,
산술 마스킹 상태의 데이터에서 최하위 비트(LSB: Least significant bit)를 제외하고 각 비트를 불 마스킹 처리하여 G 테이블을 생성하는 단계는,
상기 산술 마스킹 상태의 데이터 각 비트에 랜덤 값(r)을 더하고 불 마스킹 처리하여 상기 G 테이블을 생성하는 단계를 포함하는 산술 마스킹-불 마스킹 변환 방법.
According to claim 1,
The step of generating a G table by bull-masking each bit except for the least significant bit (LSB) from the data in the arithmetic masking state is:
And generating the G table by adding a random value (r) to each bit of the arithmetic masking state and performing bull masking.
제3항에 있어서,
상기 G 테이블 생성 단계에서 발생하는 캐리 비트를 불 마스킹 처리하여 C 테이블을 생성하는 단계는,
상기 캐리 비트와 난수(α)의 합에 2k(여기서, k는 상기 데이터의 비트 자리 수)를 곱한 값으로 연산하여 상기 C 테이블을 생성하는 단계를 포함하는 산술 마스킹-불 마스킹 변환 방법.
According to claim 3,
The step of generating the C table by bull masking the carry bit generated in the G table generation step,
And generating the C table by calculating a value obtained by multiplying the sum of the carry bit and the random number (α) by 2 k (where k is the number of bits in the data) and generating the C table.
제4항에 있어서,
상기 G 테이블을 이용하여 상기 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 처리하는 단계에서 캐리 비트의 발생 여부를 확인하는 단계는,
상기 산술 마스킹 상태의 데이터 각 비트에 상기 랜덤 값(r) 및 상기 난수(α)를 뺀 값을 초기 값으로 설정하는 단계; 및
하위 비트를 상위 비트로 올릴 수 있도록 상기 초기 값에 마스킹 값(R)을 더하여 하위 비트를 상위 비트로 올리는 단계를 포함하는 산술 마스킹-불 마스킹 변환 방법.
The method of claim 4,
In the step of bull-masking each bit of data in the arithmetic masking state using the G table, checking whether a carry bit is generated may be performed.
Setting a value obtained by subtracting the random value (r) and the random number (α) from each bit of the arithmetic masking state to an initial value; And
Arithmetic masking-Bull masking conversion method comprising the step of raising the lower bit to the upper bit by adding a masking value (R) to the initial value so that the lower bit can be raised to the upper bit.
제5항에 있어서,
상기 C 테이블을 이용하여 상기 산술 마스킹 상태의 데이터에서 캐리 비트를 제거한 뒤 상기 G 테이블을 이용하여 상기 산술 마스킹 상태의 데이터를 불 마스킹 상태로 변환하는 단계는,
상기 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 처리하는 단계에서 캐리 비트가 발생한 경우, 상기 초기 값에 마스킹 값(R)을 더한 값에 상기 난수(α) 및 1을 더하여 상기 캐리 비트 및 상기 난수(α)를 제거하는 단계; 및
상기 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 처리하는 단계에서 캐리 비트가 발생하지 않은 경우, 상기 난수(α)를 더하여 상기 캐리 비트 및 상기 난수(α)를 제거하는 단계를 포함하는 산술 마스킹-불 마스킹 변환 방법.
The method of claim 5,
After removing the carry bit from the arithmetic masking state data using the C table, converting the arithmetic masking state data into a non-masking state using the G table,
When a carry bit occurs in the step of bull masking each bit of the arithmetic masking state, the carry bit and the random number (() are added by adding the random number (α) and 1 to the initial value plus the masking value (R). removing α); And
Arithmetic masking-not including adding the random number (α) and removing the carry bit and the random number (α) when a carry bit does not occur in the step of bull masking each bit of the arithmetic masking state data. Masking conversion method.
제6항에 있어서,
상기 C 테이블을 이용하여 상기 산술 마스킹 상태의 데이터에서 캐리 비트를 제거한 뒤 상기 G 테이블을 이용하여 상기 산술 마스킹 상태의 데이터를 불 마스킹 상태로 변환하는 단계는,
상기 C 테이블을 이용하여 상기 산술 마스킹 상태의 데이터에서 캐리 비트를 제거하고, XOR 연산을 이용하여 상기 랜덤 값(r)을 반환하는 단계를 포함하는 산술 마스킹-불 마스킹 변환 방법.
The method of claim 6,
After removing the carry bit from the arithmetic masking state data using the C table, converting the arithmetic masking state data into a non-masking state using the G table,
And removing the carry bit from the data in the arithmetic masking state using the C table and returning the random value (r) using an XOR operation.
제7항에 있어서,
상기 C 테이블을 이용하여 상기 산술 마스킹 상태의 데이터에서 캐리 비트를 제거한 뒤 상기 G 테이블을 이용하여 상기 산술 마스킹 상태의 데이터를 불 마스킹 상태로 변환하는 단계는,
상기 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 상태로 변환하고 데이터의 각 비트 자리에 저장되도록 처리하는 단계를 포함하는 산술 마스킹-불 마스킹 변환 방법.
The method of claim 7,
After removing the carry bit from the arithmetic masking state data using the C table, converting the arithmetic masking state data into a non-masking state using the G table,
And converting each bit of data in the arithmetic masking state into a non-masking state and processing to be stored in each bit position of the data.
제1항 내지 제8항 중 어느 하나의 항에 따른 산술 마스킹-불 마스킹 변환 방법을 수행하기 위한, 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.A computer-readable recording medium having a computer program recorded thereon for performing the arithmetic masking-to-bulk masking conversion method according to any one of claims 1 to 8. 산술 마스킹(Arithmetic Masking) 상태의 데이터에서 최하위 비트(LSB: Least significant bit)를 제외하고 각 비트를 불 마스킹(Boolean Masking) 처리하여 G 테이블을 생성하고, 상기 G 테이블 생성 단계에서 발생하는 캐리 비트를 불 마스킹 처리하여 C 테이블을 생성하는 사전 연산 테이블 생성부; 및
상기 G 테이블을 이용하여 상기 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 처리하는 단계에서 캐리 비트의 발생 여부를 확인하고, 상기 C 테이블을 이용하여 상기 산술 마스킹 상태의 데이터에서 캐리 비트를 제거한 뒤 상기 G 테이블을 이용하여 상기 산술 마스킹 상태의 데이터를 불 마스킹 상태로 변환하는 산술 마스킹-불 마스킹 변환부를 포함하는 산술 마스킹-불 마스킹 변환 장치.
A G table is generated by boolean masking each bit, except for the least significant bit (LSB) in the arithmetic masking data, and the carry bit generated in the G table generation step is generated. A pre-operation table generator for generating a C table by performing bull masking; And
In the step of bull masking each bit of the arithmetic masking state data using the G table, check whether a carry bit is generated, remove the carry bit from the arithmetic masking state data using the C table, and then perform the G An arithmetic masking-bull masking conversion device comprising an arithmetic masking-bull masking conversion unit for converting the data of the arithmetic masking state to a fire-masking state using a table.
KR1020180154236A 2018-12-04 2018-12-04 Method of switching arithmetic to boolean masking, computer readable medium for performing the method KR102192055B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180154236A KR102192055B1 (en) 2018-12-04 2018-12-04 Method of switching arithmetic to boolean masking, computer readable medium for performing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180154236A KR102192055B1 (en) 2018-12-04 2018-12-04 Method of switching arithmetic to boolean masking, computer readable medium for performing the method

Publications (2)

Publication Number Publication Date
KR20200067414A true KR20200067414A (en) 2020-06-12
KR102192055B1 KR102192055B1 (en) 2020-12-16

Family

ID=71088448

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180154236A KR102192055B1 (en) 2018-12-04 2018-12-04 Method of switching arithmetic to boolean masking, computer readable medium for performing the method

Country Status (1)

Country Link
KR (1) KR102192055B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100079060A (en) * 2008-12-30 2010-07-08 고려대학교 산학협력단 Method for encrypting with seed applying mask
KR20170025523A (en) * 2015-08-28 2017-03-08 고려대학교 산학협력단 Method of encrypting with lea applying mask and shuffling scheme

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100079060A (en) * 2008-12-30 2010-07-08 고려대학교 산학협력단 Method for encrypting with seed applying mask
KR20170025523A (en) * 2015-08-28 2017-03-08 고려대학교 산학협력단 Method of encrypting with lea applying mask and shuffling scheme

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Blandine Debraize, Efficient and Provably Secure Methods for Switching from Arithmetic to Boolean Masking", International Workshop on Cryptographic Hardware and Embedded Systems(CHES 2012), LNCS 7428 (2012.)* *
김한빛 외 3명, 저메모리 기반의 산술 마스킹에서 불 마스킹 변환 알고리즘, 정보보호학회논문지 Vol.26, No.1 (2016.02.)* *

Also Published As

Publication number Publication date
KR102192055B1 (en) 2020-12-16

Similar Documents

Publication Publication Date Title
KR101992270B1 (en) Method and device for generating digital signature
KR100891323B1 (en) Method and apparatus to increase complexity of power analysis based on random point representation in binary field Elliptic Curve CryptographyECC
JP5001176B2 (en) Signature generation apparatus, signature generation method, and signature generation program
EP3126959B1 (en) Elliptic curve point multiplication procedure resistant to side-channel information leakage
US20070064930A1 (en) Modular exponentiation with randomized exponent
EP3930252A1 (en) Countermeasures for side-channel attacks on protected sign and key exchange operations
JPWO2006077651A1 (en) Encryption processor with tamper resistance against power analysis attacks
CN104917608B (en) A kind of method of the anti-power consumption attack of key
JP2019515353A (en) Countermeasures against Safe-Error Fault Injection Attack on Cryptographic Power-up Algorithm
US20200380122A1 (en) Elliptic curve point multiplication operation method and apparatus
CN104836808A (en) Method for verifying safety of SM2 signature algorithm based on improved difference error attack
EP3085005B1 (en) Secure data transformations
Luo et al. Effective simple-power analysis attacks of elliptic curve cryptography on embedded systems
JP5553773B2 (en) Apparatus and method for calculating scalar multiple of points on elliptic curve
US20090238360A1 (en) Exponentiation ladder for cryptography
KR102192055B1 (en) Method of switching arithmetic to boolean masking, computer readable medium for performing the method
US20120039462A1 (en) Rsa signature method and apparatus
US12008146B2 (en) Code-based signatures for secure programs
CN116842532A (en) Data processing method, device, computer equipment and computer readable storage medium
KR102019369B1 (en) Elliptic curve cryptography apparatus and method for blocking single trace attack
KR102507861B1 (en) Apparatus and method for performing operation being secure against side channel attack
KR102595938B1 (en) Polynomial inverse generating apparatus and method for an encryption system that encrypts and decrypts data using polynomials
JP6212377B2 (en) Arithmetic device, arithmetic method and computer program
KR102510077B1 (en) Apparatus and method for performing operation being secure against side channel attack
KR101423947B1 (en) Modular multiplication and modular exponentiation using extended NIST prime

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