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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking 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
Description
본 발명은 산술 마스킹-불 마스킹 변환 방법, 이를 수행하기 위한 기록매체 및 장치에 관한 것으로, 보다 상세하게는 불 연산자와 산술 연산자를 사용하는 암호 알고리즘에서 산술 마스킹에서 불 마스킹으로 마스킹의 형태를 변환하는 산술 마스킹-불 마스킹 변환 방법, 이를 수행하기 위한 기록매체 및 장치에 관한 것이다.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
본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 장치(1)는 ARX(Addition, Rotation, XOR) 블록 암호 알고리즘에서 마스킹 기법을 산술 마스킹으로부터 불 마스킹으로 변환하는 산술 마스킹-불 마스킹 변환(A2B, Authmetic to Boolean Masking Conversion) 알고리즘을 수행할 수 있다.The arithmetic masking-bull
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'=xrx(x는 데이터, rx는 난수 값)과 같은 형태가 대표적이다.Bull masking is a masking technique using exclusive OR (XOR: x'=x Types such as r x (x is data, r x is random value) are typical.
본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 장치(1)는 리플 자리 올림수 가산기(ripple-carry adder)를 기반으로 한 산술 마스킹-불 마스킹 변환 알고리즘을 수행할 수 있다. The arithmetic masking-bull
리플 자리 올림수 가산기는 하나의 비트를 보고 이 비트에 캐리 비트(올림수)가 발생하는지를 확인하고, 다음 비트에 캐리 비트를 전파하는 일련의 과정을 반복하여 비트를 처리한다. 즉, 리플 자리 올림수 가산기에 기반한 산술 마스킹-불 마스킹 변환 알고리즘은 상위 비트의 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
이하, 도 1에 도시된 본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 장치(1)의 각 구성에 대하여 구체적으로 설명한다.Hereinafter, each configuration of the arithmetic masking-bull
사전 연산 테이블 생성부(10)는 산술 마스킹-불 마스킹 변환에 필요한 참조 테이블(LUT: Look-Up Table)을 생성할 수 있다.The
사전 연산 테이블 생성부(10)는 G 테이블 및 C 테이블을 생성할 수 있다.The
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
데이터의 크기가 (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)을 과 같이 연산하여 불 마스킹 처리하고, 배열 G에 저장하여 G 테이블을 생성할 수 있다. 이때,에서의 뺄셈 연산은 (1-1≡0, 1-0≡1, 0-1≡1, 0-0≡0)mod2 이고, XOR 연산은 (11≡0, 10≡1, 01≡1, 00≡0)mod2 로 그 결과가 동일하다. 따라서 사전 연산 테이블 생성부(10)는 최하위 비트를 제외하고 k 비트만을 불 마스킹 처리하여 G 테이블을 생성하여도 무방하다. 이로 인해 본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 장치(1)는 메모리 처리 단위로 8-bit의 char 형을 이용하는 기기에 적용되는 경우, 사용 메모리 양을 크게 줄일 수 있다.The
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
사전 연산 테이블 생성부(10)는 캐리 비트(c)를 와 같이 연산하여 C 테이블을 생성할 수 있다. 여기서, α는 차분 전력 분석으로부터 캐리 비트를 안전하게 만드는 난수이다.The pre-operation
차분 전력 분석은 대표적인 부채널 공격 기법의 하나로 암호 알고리즘이 연산될 때 발생하는 중간 값을 누출하여 비밀 정보를 알아내는 공격 기법이다.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
이외에도, 사전 연산 테이블 생성부(10)는 산술 마스킹 상태의 데이터의 각 비트 마다 G 테이블 생성 단계에서 발생하는 캐리 비트를 불 마스킹 처리한 값을 더하여 저장할 수 있다.In addition, the pre-operation
사전 연산 테이블 생성부(10)는 후술하는 산술 마스킹-불 마스킹 변환부(30)에서 산술 마스킹 상태의 데이터를 불 마스킹 상태로 변환하는 경우, C 테이블을 생성하는 단계에서 캐리 비트와 더해지는 난수를 제거할 수 있도록 캐리 비트의 연산 값을 k 비트 마다 저장한 Γ 값을 산출하여 저장할 수 있다.The pre-calculation
이와 같은 사전 연산 테이블 생성부(10)에서의 사전 연산 테이블 생성 알고리즘에 대한 구체적인 설명은 도 2 이하를 참조하여 후술한다.A detailed description of the algorithm for generating the pre-calculation table in the
산술 마스킹-불 마스킹 변환부(30)는 G 테이블 및 C 테이블을 이용하여 산술 마스킹 상태의 데이터를 불 마스킹 상태의 데이터로 변환할 수 있다.The arithmetic masking-to-bulk
산술 마스킹-불 마스킹 변환부(30)는 리플 자리 올림수 가산기에 기반하여 산술 마스킹 상태의 데이터를 불 마스킹 상태의 데이터로 변환할 수 있다.The arithmetic masking-to-bulk
이때, 산술 마스킹-불 마스킹 변환부(30)는 G 테이블 및 C 테이블을 이용하여 연산의 시간 복잡도를 줄일 수 있다.At this time, the arithmetic masking-to-bulk
산술 마스킹-불 마스킹 변환부(30)는 G 테이블을 이용하여 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 처리하는 단계에서 캐리 비트의 발생 여부를 확인할 수 있다.The arithmetic masking-to-bulk
산술 마스킹-불 마스킹 변환부(30)는 C 테이블을 이용하여 산술 마스킹 상태의 데이터에서 캐리 비트를 제거한 뒤 불 마스킹 처리하여 산술 마스킹 상태의 데이터를 불 마스킹 상태로 변환할 수 있다.The arithmetic masking-to-bulk
산술 마스킹-불 마스킹 변환부(30)에서의 산술 마스킹-불 마스킹 변환 알고리즘에 대한 구체적인 설명은 도 2 이하를 참조하여 후술한다.A detailed description of the arithmetic masking-bull masking conversion algorithm in the arithmetic masking-bull
이와 같이, 본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 장치(1)는 사전 연산 테이블을 이용하는 리플 자리 올림수 가산기에 기반한 A2B 알고리즘을 수행하는데, LSB 트릭 기술을 적용하여 사전 연산 테이블을 생성함으로써 사전 연산 테이블 저장에 필요한 메모리를 적게 사용할 수 있으며 연산 소요시간을 향상시킬 수 있다. 따라서 본 발명의 일 실시예에 따른 산술 마스킹-불 마스킹 변환 장치(1)는 저메모리 환경에서 부채널 분석 공격에 대응할 수 있을 것이다.As described above, the arithmetic masking-to-bulk
도 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
도 2를 참조하면, 사전 연산 테이블 생성부(10)는 G 테이블을 생성하고(S100), C 테이블을 생성할 수 있다(S200). Referring to FIG. 2, the
사전 연산 테이블 생성부(10)는 산술 마스킹 상태의 데이터에서 최하위 비트(LSB)를 제외하고 각 비트를 불 마스킹 처리하여 G 테이블을 생성할 수 있으며, G 테이블 생성 단계에서 발생하는 캐리 비트를 불 마스킹 처리하여 C 테이블을 생성할 수 있다. 이와 관련하여 구체적인 설명은 도 3을 참조하여 후술한다.The pre-operation
산술 마스킹-불 마스킹 변환부(30)는 G 테이블을 이용하여 캐리 비트의 발생 여부를 확인하고(S300), C 테이블을 이용하여 캐리 비트를 제거한 뒤 G 테이블을 이용하여 산술 마스킹-불 마스킹 변환을 수행할 수 있다(S400).The arithmetic masking-bull
산술 마스킹-불 마스킹 변환부(30)는 리플 자리 올림수 가산기에 기반한 A2B 알고리즘을 수행할 수 있으며, 이때, G 테이블 및 C 테이블을 이용할 수 있다. 이와 관련하여 구체적인 설명은 도 4를 참조하여 후술한다.The arithmetic masking-to-bulk
도 3을 참조하면, 사전 연산 테이블 생성부(10)는 (nㆍk) 비트의 데이터를 A2B 변환시킬 수 있으며, 이때 테이블 및 전환 연산의 크기는 k 비트이다.Referring to FIG. 3, the pre-operation
사전 연산 테이블 생성부(10)는 산술 마스킹 상태의 데이터 각 비트에 랜덤 값(r)을 더하고 불 마스킹 처리하여 G 테이블을 생성할 수 있다. 즉, 사전 연산 테이블 생성부(10)는 산술 마스킹 상태의 데이터의 (k+1) 비트에 해당하는 값(A)을 과 같이 연산하여 불 마스킹 처리하고, 배열 G에 저장하여 G 테이블을 생성할 수 있으며, 이때, 최하위 비트(LSB)는 제외하고 k 비트만을 불 마스킹 처리하여 G 테이블을 생성할 수 있다(Step 3).The
사전 연산 테이블 생성부(10)는 G 테이블 생성 단계에서 발생하는 캐리 비트와 차분 전력 분석으로부터 캐리 비트를 안전하게 만드는 난수(α)의 합에 2k(여기서, k는 상기 데이터의 비트 자리 수)를 곱한 값으로 연산하여 C 테이블을 생성할 수 있다. 즉, 사전 연산 테이블 생성부(10)는 G 테이블 생성 단계에서 발생하는 캐리 비트(c)를 와 같이 연산하여 C 테이블을 생성할 수 있다(Step 5,6). The pre-calculation
또한, 사전 연산 테이블 생성부(10)는 캐리 비트의 연산 값을 k 비트 마다 저장한 Γ 값을 산출하여 저장할 수 있다(Step 7).In addition, the pre-operation
이와 같이 사전 연산 테이블 생성부(10)에 의해 정의되는 랜덤 값(r), G 테이블, C 테이블 및 Γ 값은 A2B 변환 알고리즘에 사용될 수 있다.As described above, random values (r), G tables, C tables, and Γ values defined by the
도 4를 참조하면, 산술 마스킹-불 마스킹 변환부(30)는 산술 마스킹 상태의 데이터 각 비트에 랜덤 값(r) 및 캐리 비트를 안전하게 만드는 난수(α)를 뺀 값(Ai-r-α)을 초기 값으로 설정할 수 있다. 이때, 산술 마스킹-불 마스킹 변환부(30)는 캐리 비트의 연산 값을 k 비트 마다 저장한 Γ 값을 이용하여 캐리 비트를 안전하게 만드는 난수(α)를 추가 연산 없이 제거할 수 있다(Step 1).Referring to FIG. 4, the arithmetic masking-bulk
산술 마스킹-불 마스킹 변환부(30)는 리플 자리 올림수 가산기에 기반하여 하위 비트를 상위 비트로 올릴 수 있다. 산술 마스킹-불 마스킹 변환부(30)는 초기 값에 마스킹 값(R)을 더한 값(Ai-r-α+Ri)을 변환 대상 데이터 비트로 저장하는 방식으로 하위 비트를 상위 비트로 올릴 수 있다(Step 3). 이러한 리플 자리 올림수 가산기에 기반한 방식은 A2B 알고리즘 속도를 최적화 할 수 있다.The arithmetic masking-to-bulk
산술 마스킹-불 마스킹 변환부(30)는 G 테이블을 이용하여 변환 대상 데이터 비트를 불 마스킹 처리할 수 있으며, 불 마스킹 처리하는 단계에서의 캐리 비트 발생 여부를 확인할 수 있다. 산술 마스킹-불 마스킹 변환부(30)는 G 테이블을 이용하여 변환 대상 데이터 비트를 불 마스킹 처리한 Bi를 과 같이 연산하여 저장할 수 있다. 이때, 산술 마스킹-불 마스킹 변환부(30)는 t를 캐리 비트를 알아내기 위한 인자로 함께 저장할 수 있다(step 4). The arithmetic masking-to-bulk
산술 마스킹-불 마스킹 변환부(30)는 G 테이블을 이용하여 변환 대상 데이터 비트를 불 마스킹 처리한 Bi를 마스킹 값(Ri)으로 불 마스킹 처리할 수 있다. 산술 마스킹-불 마스킹 변환부(30)는 Step 4에서 G 테이블을 이용하여 과 같이 연산하여 저장한 Bi를 와 같이 연산하여 저장할 수 있다(Step 5).The arithmetic masking-to-bulk
산술 마스킹-불 마스킹 변환부(30)는 C 테이블을 이용하여 산술 마스킹 상태의 데이터에서 캐리 비트를 제거할 수 있다. 산술 마스킹-불 마스킹 변환부(30)는 Step 4에서 저장된 t에 따라 변환 대상 데이터 비트인 초기 값에 마스킹 값(R)을 더한 값(Ai-r-α+Ri)에 캐리 비트를 안전하게 만드는 난수(α)를 더하거나, 캐리 비트를 안전하게 만드는 난수(α) 및 1을 더하여 캐리 비트 및 캐리 비트를 안전하게 만드는 난수(α)를 제거할 수 있다. 이때, t는 산술 마스킹 상태의 데이터 각 비트를 불 마스킹 처리하는 단계에서 캐리 비트가 발생하는 경우에는 변환 대상 데이터 비트에 (α+1)이 더해지도록 하고, 캐리 비트가 발생하지 않은 경우에는 변환 대상 데이터 비트에 (α)가 더해지도록 할 수 있다(Step 6).The arithmetic masking-to-bulk
산술 마스킹-불 마스킹 변환부(30)는 Step 6으로부터 캐리 비트 및 난수(α)가 처리된 변환 대상 데이터 비트가 데이터의 각 비트 자리에 저장되도록 처리할 수 있다(Step 7). 산술 마스킹-불 마스킹 변환부(30)는 이러한 clearing 과정을 통해 부채널 안전성을 보장할 수 있다.The arithmetic masking-to-bulk
산술 마스킹-불 마스킹 변환부(30)는 최종적으로 Step 5에서 저장한 를 최종적으로 반환하는데, 랜덤 값(r)을 XOR 연산을 이용하여 반환할 수 있다. 따라서 산술 마스킹-불 마스킹 변환부(30)는 결과적으로는 캐리 비트 및 난수(α)가 처리된 변환 대상 데이터 비트를 마스킹 값으로 불 마스킹 처리한 를 최종 반환할 수 있다(Step 9).The arithmetic masking-fire
산술 마스킹-불 마스킹 변환부(30)는 이와 같은 단계를 거쳐 산술 마스킹 상태의 데이터를 마스킹 값으로 불 마스킹 처리하여 불 마스킹 상태로 변환활 수 있다.The arithmetic masking-to-bulk
이와 같은, 본 발명의 산술 마스킹-불 마스킹 변환 방법은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.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)
상기 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.
상기 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.
산술 마스킹 상태의 데이터에서 최하위 비트(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.
상기 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.
상기 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.
상기 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.
상기 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.
상기 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.
상기 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.
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)
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 |
-
2018
- 2018-12-04 KR KR1020180154236A patent/KR102192055B1/en active IP Right Grant
Patent Citations (2)
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)
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 |