WO2019117565A1 - 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법 - Google Patents

공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법 Download PDF

Info

Publication number
WO2019117565A1
WO2019117565A1 PCT/KR2018/015617 KR2018015617W WO2019117565A1 WO 2019117565 A1 WO2019117565 A1 WO 2019117565A1 KR 2018015617 W KR2018015617 W KR 2018015617W WO 2019117565 A1 WO2019117565 A1 WO 2019117565A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
encryption algorithm
secret key
key bit
hardware
Prior art date
Application number
PCT/KR2018/015617
Other languages
English (en)
French (fr)
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 CN201880089099.3A priority Critical patent/CN111742519A/zh
Priority to EP18888199.9A priority patent/EP3726772A4/en
Publication of WO2019117565A1 publication Critical patent/WO2019117565A1/ko

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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • 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/12Details relating to cryptographic hardware or logic circuitry

Definitions

  • the present invention relates to a sub-channel analysis counterpart. Specifically, the present invention initializes a random value every time before the iterative operation for confirming a secret key bit value is performed.
  • the n-bit secret key is masked with an n-bit random value,
  • RSA which is the core algorithm of accredited authentication system used in many electronic transactions such as Internet banking and internet securities transactions
  • ECC Elliptic
  • Curve Cryptography algorithm is vulnerable to subchannel analysis attacks.
  • the subchannel analysis is a physical attack that utilizes the subchannel information that occurs while the encryption algorithm is running on the secure device.
  • SCA Side Channel Analysis
  • the power analysis attack that is used for the observation and analysis of the power pattern consumed while the encryption algorithm is executed is the strongest.
  • Typical examples are Simple Power Analysis (SPA) and Differential Power Analysis , Differential Power Analysis).
  • CA Collision Attack
  • the collision attack is a public key cryptographic algorithm such as RSA and ECC, which are designed securely for simple power analysis and differential power analysis. It is a very powerful attack technique.
  • the security of the past information protection device depends on the mathematical safety of the embedded cryptographic algorithm.
  • it is essential to design a secure countermeasure technique.
  • Patent Document 1 Korean Patent No. 10-0891323
  • the present invention initializes the random key value each time with a random value before starting the iterative operation for checking the secret key bit value.
  • the present invention provides an apparatus and method for randomizing a key bit variable of a public key cryptographic algorithm that can solve the vulnerability of a public key cryptosystem by masking a bit secret key with an n-bit random value.
  • a key bit variable random key of a public key cryptographic algorithm that can solve a vulnerability of a public key cryptographic algorithm is implemented by implementing a random value every time before initialization of a repetitive operation for confirming a secret key bit value in a cryptographic algorithm hardware implementation. And to provide a device and a method for an image forming apparatus.
  • the present invention realizes randomization of key bits in a public key cryptographic algorithm that can solve the vulnerability of the public key cryptosystem algorithm by implementing a random value masking in the pre-
  • an object of the present invention is to provide a device and a method for the same.
  • the present invention it is determined whether or not the same equipment as the attack target can be utilized in the step of judging vulnerability of the encryption algorithm implemented by hardware and software, so that the vulnerability of the encryption algorithm is discriminated according to whether the same equipment is utilized or not, And an apparatus and method for randomizing a key bit variable of a public key encryption algorithm.
  • an apparatus for randomizing a key bit parameter of a public key cryptographic algorithm includes an information check unit for checking chip information on which an encryption algorithm operates, a cryptographic algorithm judgment
  • the hardware-compatible processor that initializes the random value each time before the iteration operation to check the bit value of the secret key in the hardware implementation, the random value
  • a software-corresponding processing unit for implementing the masking with the masking unit.
  • the step of checking the value of the secret key bit k i in hardware implementation of the hardware correspondence processing unit and the encryption algorithm hardware the sum of k i + 1 and k i (0 ⁇ i ⁇ n-1) (K + 1) and k i (0 ⁇ i < n-1) in the step of checking the secret key bit k i in the hardware implementation of the encryption algorithm, Since the address of the register R, which is called in the iteration operation, is determined according to the value of k i + 1 and k i , the power consumption due to the hemming distance of the register address used in the operation occurs. Thereby eliminating the vulnerability by randomly classifying the power waveform characteristics into two sets irrespective of the characteristics according to the secret key bit value.
  • the software correspondence processor calculates the power according to the hemming weight value which is the number of 1 when k i (0? I ⁇ n-1) when consumption occurs properties and, expressing the value k i (0 ⁇ i ⁇ n -1) as a binary number in step to determine the encryption algorithm software implementation secret key bits k i values according to the number of hemming weight value of 1 Since the address of the register R, which is called in the iterative operation, is determined according to the value of k i , when the register address used in the operation is represented by binary numbers, power consumption is caused according to the hemming weight value of 1 Characteristics are eliminated and the power waveform characteristics are randomly classified into two sets irrespective of the characteristics according to the secret key bit value, thereby eliminating the vulnerability.
  • the hardware correspondence processor includes a vulnerability determiner for determining a vulnerability of a cryptographic algorithm implemented in hardware and a randomizer for initializing the secret key bit value to a random value prior to the start of the iterative operation, A power waveform collecting unit for collecting a power waveform generated when the public key cryptographic algorithm is performed once, a power waveform collecting unit for collecting power waveforms collected during one execution of the encryption algorithm into n repetitive calculation units, And judges whether or not the operation unit and the position selection unit for performing n repetitive operations and the n power waveforms can be classified into two sets according to the values, and judges that the vulnerability is removed when it is not classified And a safety judgment unit.
  • the software correspondence processor includes a vulnerability judging unit for judging vulnerability of a cryptographic algorithm implemented by software, a random bit masking unit for applying random bit masking by applying a corresponding technique implemented by software, A power waveform collecting unit for collecting power waveforms generated at the time of performing the encryption algorithm, a power waveform collected at one execution of the encryption algorithm is cut into n repetitive calculation units, an operation position for key bit verification is selected, And a safety judgment unit for judging whether or not the vulnerability has been removed when the power unit can not be classified by judging whether the n units of power waveforms can be classified into two sets based on the values.
  • a method for randomizing a key bit parameter of a public key encryption algorithm comprising: checking chip information on which an encryption algorithm operates; determining an implementation method of the encryption algorithm; In the case of hardware, a hardware countermeasure is performed in which a random value is initialized before the start of the iterative operation for checking the secret key bit value in the hardware implementation of the encryption algorithm.
  • the encryption algorithm implementation is software, And performing a software-corresponding process of masking a random value at a stage before execution of an iterative operation for checking a value.
  • the vulnerability of the cryptographic algorithm implemented in the hardware is determined, and a countermeasure implemented in hardware is applied to initialize the random key value before the iteration operation to check the secret key bit value Collecting a power waveform generated when the public key cryptographic algorithm is performed once, collecting a power waveform collected at the time of execution of the cryptographic algorithm in n repeated operation units, And determining whether the n power waveforms can be classified into two sets based on the values, and determining that the vulnerability is removed when the n power waveforms are not classified.
  • a step of determining the vulnerability of the encryption algorithm implemented by the software, a random bit masking by applying a corresponding technique implemented in software, and a step of performing power- A step of collecting a waveform and a step of cutting the power waveform collected in one execution of the encryption algorithm into n repetitive operation units, selecting an operation position for key bit confirmation and performing n repetitive operations, Judging whether the vulnerability can be classified into two sets according to the value, and judging that the vulnerability has been removed when it is not classified.
  • step of verifying the secret key bit k i in the implementation of the encryption algorithm software by performing the software corresponding processing for random bit masking when k i (0? I ⁇ n-1) when expressing the value k i (0 ⁇ i ⁇ n -1) as a binary number in step to determine the number of hemming characteristics that the power consumption according to the weight value generated and, the encryption algorithm software implementation secret key bits k i value 1
  • the address of the register R which is called in the iterative operation, is determined according to the value of k i . Therefore, when the address of the register used for the operation is represented by a binary number, The power waveform characteristics are classified randomly into two sets irrespective of the characteristics according to the secret key bit value, And it characterized in that.
  • the same equipment as the attack target can be used in the step of judging the vulnerability of the encryption algorithm implemented by hardware and software, the power waveform generated when the public key encryption algorithm is performed once after setting the n-bit secret key in the same equipment as the attack target And a step of dividing the power waveform collected in one execution of the algorithm into n repetitive operation units and classifying the n power waveforms into two sets based on the set n bit key, And determining whether or not the SOST peak value is present.
  • the step of judging the vulnerability of the encryption algorithm implemented by hardware and software if the same device as the attack target can not be utilized, the step of collecting the power waveform generated in the attack of the attacking target device and the algorithm Dividing the power waveforms collected during execution into n pieces of iterative operation units, discriminating operation steps for key bit identification by checking the operation frequency of the attack target chip and analyzing algorithm structure, and dividing n power waveforms into secret key bit values k i < / RTI >
  • the apparatus and method for randomizing the key bit parameters of the public key encryption algorithm according to the present invention have the following effects.
  • the present invention can be applied to an organization that designs sub- It is useful for organizations that perform safety verification.
  • 1 is a block diagram illustrating a scalar multiplication algorithm
  • FIG. 2 is a graph showing a power waveform for a repetitive operation in a hardware implementation
  • FIG. 3 is a graph showing a power waveform for a repetitive operation in software implementation
  • FIG. 4 is a block diagram illustrating random value initialization by hardware implementation
  • FIG. 5 shows a result graph
  • FIG. 6 is a block diagram illustrating random bit masking by software implementation
  • FIG. 7 is a graph showing a result graph
  • FIG. 8 is a block diagram of an apparatus for randomizing key bit parameters of a public key encryption algorithm according to the present invention
  • FIG. 9 is a flowchart illustrating a method for randomizing key bit parameters of a public key encryption algorithm according to the present invention
  • 10 is a graph showing a hardware power waveform and a repetitive calculation unit
  • 11 is a flowchart showing a process of determining vulnerability of a cryptographic algorithm implemented by hardware and software
  • FIG. 8 is a block diagram of an apparatus for randomizing key bit parameters of a public key encryption algorithm according to the present invention
  • FIG. 9 is a flowchart illustrating a method for randomizing key bit variables of a public key encryption algorithm according to the present invention .
  • An apparatus and method for randomizing key bit parameters of a public key cryptographic algorithm according to the present invention is implemented so that a random value is initialized before a repeated operation to check a secret key bit value in a cryptographic algorithm hardware implementation.
  • An apparatus and method for randomizing key bit parameters of a public key cryptographic algorithm is to implement a random value masking at a stage before execution of an iterative operation for checking a secret key bit value in an encryption algorithm software implementation.
  • An apparatus and method for randomizing key bit parameters of a public key cryptographic algorithm according to the present invention is related to a subchannel analysis countermeasure method and is a method for compensating a simple power analysis vulnerability of a public key cryptographic algorithm such as RSA and ECC Method.
  • n-bit secret key array k (k n-1, ... k 1, k 0) on the second secret key bits k i values for performing RSA, cyclic operation according to this ECC encryption algorithm secret key bit value Is applied in order to securely design the step of checking.
  • the scalar multiplication operation which is a representative operation of the ECC encryption algorithm, is implemented to perform the iterative operation (2-5) according to the value of the secret key bit k i as in FIG.
  • 1 is a block diagram illustrating a scalar multiplication algorithm.
  • n-bit secret key array k (k n-1, ... k 1, k 0) 2 before the operation performed .
  • the modular exponential multiplication operation which is a representative operation of the RSA encryption algorithm, is similar to the scalar multiplication operation, the addition operation is implemented as a multiplication operation, and the double operation is implemented as a square operation.
  • n power waveforms for n repetitive operations (2-5) RSA and ECC cryptographic algorithms that can recover the entire n-bit secret key bits using only one power waveform and that use simple power analysis and differential power analysis countermeasures are also vulnerable.
  • FIG. 2 is a classification graph dividing a power waveform for a repetitive operation in hardware implementation according to characteristics
  • FIG. 3 is a classification graph dividing a power waveform for a repetitive operation in software implementation according to characteristics.
  • the present invention is designed to eliminate the vulnerability to the characteristics (1), (2), (3), (4).
  • FIG. 4 is a diagram showing the initialization of a random value by a hardware implementation
  • FIG. 5 is a graph of a result obtained by hardware implementation.
  • the k i value is initialized to a random value every time before the start of the iterative operation as shown in FIG.
  • the vulnerability can be eliminated by being randomly classified into two sets (probability of 1/2) irrespective of the characteristics according to the secret key bit value.
  • FIG. 6 is a configuration diagram showing a random bit masking by a software implementation
  • FIG. 7 is a result graph corresponding to implementation by software.
  • the n-bit secret key key is masked with a n-bit random value r (as a random value) to eliminate characteristics (2) and (4) as shown in FIG.
  • the vulnerability can be eliminated by randomly classifying the two sets into a set (1/2 probability) irrespective of the characteristics according to the secret key bit value.
  • an apparatus for randomizing key bit parameters of a public key encryption algorithm includes an information check unit 80 for checking chip information on which an encryption algorithm operates, A hardware correspondence processor 100 for initializing the random number to a random value before starting the iterative operation for checking the secret key bit value in the hardware implementation of the encryption algorithm, And a software-corresponding processing unit 110 for masking a random value in a stage before performing an iterative operation for checking a bit value.
  • the hardware correspondence processing unit 100 determines whether the secret key bit k i is equal to or less than the sum k i + 1 and k i (0 ⁇ i ⁇ n-1) 1 and k i (0 ⁇ i < n-1) in the step of checking the value of the secret key bit k i in the hardware implementation of the encryption algorithm (characteristic 1) Since the address of the register R, which is called in the iteration operation, is determined according to the value of k i + 1 and k i , power consumption is caused by the hemming distance of the register address used in the operation 3) to eliminate the vulnerability by randomly classifying the power waveform characteristics into two sets regardless of the characteristics according to the secret key bit value.
  • Software corresponding processing unit 110 when expressing the hemming weight, that is, k i values of k i (0 ⁇ i ⁇ n -1) in the step to determine the encryption algorithm software implementation secret key bits k i values to binary 1 (characteristic 2), the power consumption according to the number of occurrence of and the encryption algorithm software hemming weight of the implement when the secret key bits k in the step to determine the value of i k i (0 ⁇ i ⁇ n -1), i.e., k value of i And the address of the register R, which is called in the iteration operation, is determined according to the value of k i .
  • the hardware correspondence processing unit 100 includes a vulnerability determining unit 100a for determining a vulnerability of a cryptographic algorithm implemented in hardware, and a random value
  • a power waveform collecting unit 100c for collecting a power waveform generated when the public key cryptographic algorithm is performed once, a power waveform collecting unit 100c for collecting the power waveform collected at one time of the cryptographic algorithm as n
  • a position selecting unit 100d for performing n repetitive calculations on the n bits of the electric power waveform and dividing the n power waveforms into two sets according to the values, And judges that the vulnerability is removed when it is judged and not classified.
  • the software correspondence processing unit 110 includes a vulnerability determination unit 110a for determining vulnerability of a cryptographic algorithm implemented by software, a random bit masking unit 110b for performing random bit masking by applying a corresponding technique implemented by software, A power waveform collecting unit 110c for collecting a power waveform generated when the key encryption algorithm is performed once, a power waveform collecting unit 110c for dividing the power waveform collected during one execution of the encryption algorithm into n repetitive calculation units, An operation unit and a position selection unit 110d for selecting an operation position and performing n iterative operations, and judging whether or not the n power waveforms can be classified into two sets according to their values, And a safety judgment unit 110e for judging whether or not there is a danger.
  • a vulnerability determination unit 110a for determining vulnerability of a cryptographic algorithm implemented by software
  • a random bit masking unit 110b for performing random bit masking by applying a corresponding technique implemented by software
  • a power waveform collecting unit 110c for collecting a power waveform generated when the key encryption algorithm is performed once
  • the method for randomizing the key bit parameters of the public key cryptographic algorithm comprises the steps of: confirming chip information in which the cryptographic algorithm operates; determining an implementation method of the cryptographic algorithm; If the implementation of the cryptographic algorithm is hardware, the hardware implementation of the cryptographic algorithm hardware performs hardware-compatible processing to initialize the random value every time before the iteration operation to check the secret key bit value. If the cryptographic algorithm implementation is software, And performing a software-corresponding process of masking a random value in a step before execution of an iterative operation for checking a secret key bit value.
  • the encryption algorithm hardware implementation secret key bits k i in the step to determine the value k i + 1 and k i (0 ⁇ i ⁇ n -1) of hemming distance (Characteristic 1) of the power consumption according to the value generated and, Hemming distance hardware implementation of an encryption algorithm upon the secret key bits k i in steps to determine a value i k + 1 and k i (0 ⁇ i ⁇ n -1) Since the address of the register R, which is called in the iteration operation, is determined according to the value of k i + 1 and k i , power consumption is caused by the hemming distance of the register address used in the operation 3) to eliminate the vulnerability by randomly classifying the power waveform characteristics into two sets irrespective of the characteristics according to the secret key bit value.
  • the weight that is, the k i value is represented by a binary number
  • the power consumption according to the number of 1 occurs, and since the address of the register R called in the iterative operation is determined according to the value of k i , (Characteristic 4), which is caused by the number of 1s, that is, the power consumption according to the hemming weight value of the register address (characteristic 4), so that the power waveform characteristics can be divided into two sets To ensure that classification may eliminate the vulnerability.
  • the chip information on which the encryption algorithm operates is checked (S901), and an implementation method of the encryption algorithm is determined (S902).
  • the vulnerability of the encryption algorithm implemented in hardware is determined (S903), and a corresponding technique implemented in hardware is applied to initialize the secret key bit value to a random value before the start of the iteration operation (S904).
  • step S906 the power waveforms collected in one execution of the encryption algorithm are divided into n repetitive calculation units (S906), and an operation position for key bit verification is selected and n repetition operations are performed (S907).
  • n power waveforms can be classified into two sets according to the value, and if it is not classified, it is judged that the vulnerability is removed (S908).
  • the encryption algorithm implementation is software
  • the vulnerability of the encryption algorithm implemented by the software is determined (S913), and random-bit masking is performed by applying a corresponding technique implemented in software (S914).
  • step S916 the power waveform collected in one execution of the encryption algorithm is cut into n repetitive calculation units (S916), the operation position for key bit verification is selected, and n repetitive calculations are performed (S917).
  • FIG. 10 is a graph showing a hardware power waveform and a repetitive calculation unit.
  • 11 is a flowchart illustrating a process of determining vulnerability of a cryptographic algorithm implemented by hardware and software.
  • step S913 the vulnerability of the encryption algorithm implemented by hardware and software is determined.
  • the power waveforms collected in one execution of the algorithm are cut into n repetitive operation units (S1103), and n power waveforms are classified into two sets based on the set n-bit key (S1104).
  • S1105 the SOST values of the two sets are calculated as shown in Equation 1 below (S1105), and it is determined whether there is a SOST peak value (S1106).
  • the power waveform collected in one execution of the algorithm is cut into n pieces of iterative operation units, and an operation step for identifying the key bit is identified by checking the operation frequency of the attack target chip and analyzing the algorithm structure in operation S1114.
  • An apparatus and method for randomizing key bit parameters of a public key cryptographic algorithm is a countermeasure method for improving subchannel analysis security for a public key system based on RSA and ECC cryptographic algorithms, Since the ECC cryptographic algorithm is used in the ePassport and the smart car, the corresponding technology performs the subchannel safety verification of the agency designing the subchannel correspondence techniques such as the national and international certificates, the ePassport, and the smart car It is available at the institution.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하고, n-비트 비밀 키를 n-비트 랜덤 값으로 마스킹하여 공개키 암호 알고리즘이 갖는 취약성을 해결할 수 있도록 한 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법에 관한 것으로, 암호 알고리즘이 동작하는 칩 정보를 확인하는 정보 확인부, 암호 알고리즘의 구현 방법을 판단하는 암호 알고리즘 판단부, 암호 알고리즘 하드웨어 구현시 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하는 하드웨어 대응 처리부 및 암호 알고리즘 소프트웨어 구현시 비밀키 비트 값을 확인하는 반복 연산 수행 전 단계에서 랜덤 값으로 마스킹 하는 소프트웨어 대응 처리부를 포함하는 것이다.

Description

공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법
본 발명은 부채널 분석 대응에 관한 것으로, 구체적으로 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하고, n-비트 비밀 키를 n-비트 랜덤 값으로 마스킹하여 공개키 암호 알고리즘이 갖는 취약성을 해결할 수 있도록 한 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법에 관한 것이다.
일반적으로 인터넷뱅킹, 인터넷 증권거래 등 많은 전자거래에서 사용되는 공인 인증체계의 핵심 알고리즘인 RSA와 전자여권, USIM, 스마트카드, 스마트카 등의 임베디드 플랫폼에 적합하여 그 수요가 증가하고 있는 ECC(Elliptic Curve Cryptography) 알고리즘은 부채널 분석 공격에 취약하다.
부채널 분석은 암호 알고리즘이 보안 디바이스 위에서 수행되는 동안 발생하는 부채널 정보를 활용한 물리적 공격이다.
부채널 분석(Side Channel Analysis, SCA)은 1996년 Paul Kocher가 최초로 제안한 분석 기법으로, 암호 기기가 암호 알고리즘 수행 시 노출하는 물리적 정보를 이용하여 키를 찾는 분석 기법이다.
이와 같이 부채널 분석공격 중에서 암호 알고리즘이 수행되는 동안 소비되는 전력 패턴을 관찰하여 분석에 활용하는 전력분석공격이 가장 강력하며, 대표적으로 단순전력분석(SPA, Simple Power Analysis)과 차분전력분석(DPA, Differential Power Analysis)이 있다.
그리고 이 외 충돌공격(CA, Collision Attack) 등이 있으며, 충돌공격은 단순전력분석 및 차분전력분석에 안전하게 설계된 RSA, ECC와 같은 공개키 암호 알고리즘이라도 단일 파형을 이용하여 비밀 키 값을 찾을 수 있는 매우 강력한 공격기법이다.
지금까지 RSA 및 ECC 암호 알고리즘을 부채널 분석에 안전하게 설계하기 위해 제안된 대응기법이 적용되어 있어도 암호 알고리즘 연산 파형을 이용하여 쉽게 n-bit 비밀 키 비트를 모두 복구할 수 있다는 취약점이 존재한다.
그러므로 이에 대응할 수 있는 안전한 공개키 암호 알고리즘에 대한 연구 개발이 필요하다.
즉, 과거 정보보호 디바이스의 안전성은 탑재된 암호 알고리즘의 수학적 안전성에 의존하였던 것과 달리 이와 별개로 부채널 분석공격에 의한 물리적 취약성이 존재함에 따라 이에 안전한 대응기법의 설계가 필수적이다.
[선행기술문헌]
[특허문헌]
(특허문헌 1) 한국등록특허 제10-0891323호
본 발명은 이와 같은 종래 기술의 공개키 암호 알고리즘의 부채널 분석에 대응하는 기술의 문제를 해결하기 위한 것으로, 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하고, n-비트 비밀 키를 n-비트 랜덤 값으로 마스킹하여 공개키 암호 알고리즘이 갖는 취약성을 해결할 수 있도록 한 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명은 암호 알고리즘 하드웨어 구현시 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하도록 구현하여 공개키 암호 알고리즘이 갖는 취약성을 해결할 수 있도록 한 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명은 암호 알고리즘 소프트웨어 구현시 비밀키 비트 값을 확인하는 반복 연산 수행 전 단계에서 랜덤 값으로 마스킹하도록 구현하여 공개키 암호 알고리즘이 갖는 취약성을 해결할 수 있도록 한 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명은 하드웨어 및 소프트웨어로 구현된 암호 알고리즘의 취약성을 판단하는 단계에서 공격 대상과 동일한 장비를 활용할 수 있는지 판단하여 동일한 장비 활용 여부에 따라 구분하여 암호 알고리즘의 취약성을 판단하여 판단 정확도를 높일 수 있도록 한 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
이와 같은 목적을 달성하기 위한 본 발명에 따른 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치는 암호 알고리즘이 동작하는 칩 정보를 확인하는 정보 확인부, 암호 알고리즘의 구현 방법을 판단하는 암호 알고리즘 판단부, 암호 알고리즘 하드웨어 구현시 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하는 하드웨어 대응 처리부, 암호 알고리즘 소프트웨어 구현시 비밀키 비트 값을 확인하는 반복 연산 수행 전 단계에서 랜덤 값으로 마스킹하도록 구현하는 소프트웨어 대응 처리부를 포함하는 것을 특징으로 한다.
여기서, 상기 하드웨어 대응 처리부, 암호 알고리즘 하드웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki+1과 ki(0 ≤ i < n-1)의 헤밍 디스턴스
Figure PCTKR2018015617-appb-I000001
값에 따른 전력 소모가 발생하는 특성 및, 암호 알고리즘 하드웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki+1과 ki(0 ≤ i < n-1)의 헤밍 디스턴스
Figure PCTKR2018015617-appb-I000002
값에 따른 전력 소모가 발생하고, 반복 연산에서 불려오는 레지스터 R의 주소는 ki+1과 ki값에 따라 결정되기 때문에 연산에 활용되는 레지스터 주소의 헤밍 디스턴스에 따른 전력 소모가 발생하는 특성을 없애 전력 파형 특성을 비밀 키 비트값에 따른 특성에 관계없이 두 집합으로 랜덤하게 분류되도록 하여 취약점을 제거하는 것을 특징으로 한다.
그리고 소프트웨어 대응 처리부는, 암호 알고리즘 소프트웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki(0 ≤ i < n-1)값을 이진수로 표현했을 때 1의 개수인 헤밍 웨이트 값에 따른 전력 소모가 발생하는 특성 및, 암호 알고리즘 소프트웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki(0 ≤ i < n-1)값을 이진수로 표현했을 때 1의 개수인 헤밍 웨이트 값에 따른 전력 소모가 발생하고, 반복 연산에서 불려오는 레지스터 R의 주소는 ki값에 따라 결정되기 때문에 연산에 활용되는 레지스터 주소를 이진수로 표현했을 때 1의 개수인 헤밍 웨이트 값에 따른 전력 소모도 발생하는 특성을 없애 전력 파형 특성을 비밀 키 비트값에 따른 특성에 관계없이 두 집합으로 랜덤하게 분류되도록 하여 취약점을 제거하는 것을 특징으로 한다.
그리고 하드웨어 대응 처리부는, 하드웨어로 구현된 암호 알고리즘의 취약성을 판단하는 취약성 판단부와, 하드웨어로 구현된 대응 기법을 적용하여 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 초기화하는 랜덤 초기화부와, 공개키 암호 알고리즘의 1회 수행시 발생하는 전력 파형을 수집하는 전력 파형 수집부와, 암호 알고리즘의 1회 수행시에 수집한 전력 파형을 n개의 반복 연산 단위로 자르고, 키 비트 확인을 위한 연산 위치를 선택하고 n개의 반복 연산을 하는 연산단위 및 위치 선택부와 n개의 전력파형을 값에 따른 두 집합으로 분류할 수 있는 지를 판단하여 분류되지 않는 경우에 취약성이 제거된 것으로 판단하는 안전성 판단부를 포함하는 것을 특징으로 한다.
그리고 소프트웨어 대응 처리부는, 소프트웨어로 구현된 암호 알고리즘의 취약성을 판단하는 취약성 판단부와, 소프트웨어로 구현된 대응 기법을 적용하여 랜덤 비트 마스킹을 하는 랜덤 비트 마스킹부와, 공개키 암호 알고리즘의 1회 수행시 발생하는 전력 파형을 수집하는 전력 파형 수집부와, 암호 알고리즘의 1회 수행시에 수집한 전력 파형을 n개의 반복 연산 단위로 자르고, 키 비트 확인을 위한 연산 위치를 선택하고 n개의 반복 연산을 하는 연산단위 및 위치 선택부와 n개의 전력파형을 값에 따른 두 집합으로 분류할 수 있는 지를 판단하여 분류되지 않는 경우에 취약성이 제거된 것으로 판단하는 안전성 판단부를 포함하는 것을 특징으로 한다.
다른 목적을 달성하기 위한 본 발명에 따른 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 방법은 암호 알고리즘이 동작하는 칩 정보를 확인하는 단계;암호 알고리즘의 구현 방법을 판단하는 단계 및 암호 알고리즘 구현이 하드웨어인 경우에는 암호 알고리즘 하드웨어 구현시 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하는 하드웨어 대응 처리를 하고, 암호 알고리즘 구현이 소프트웨어인 경우에는 암호 알고리즘 소프트웨어 구현시 비밀키 비트 값을 확인하는 반복 연산 수행 전 단계에서 랜덤 값으로 마스킹 하는 소프트웨어 대응 처리를 하는 단계를 포함하는 것을 특징으로 한다.
여기서, 암호 알고리즘 구현이 하드웨어인 경우에는, 하드웨어로 구현된 암호 알고리즘의 취약성을 판단하고, 하드웨어로 구현된 대응 기법을 적용하여 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 초기화하는 단계와, 공개키 암호 알고리즘의 1회 수행시 발생하는 전력 파형을 수집하는 단계와, 암호 알고리즘의 1회 수행시에 수집한 전력 파형을 n개의 반복 연산 단위로 자르고, 키 비트 확인을 위한 연산 위치를 선택하고 n개의 반복 연산을 하는 단계와 n개의 전력파형을 값에 따른 두 집합으로 분류할 수 있는 지를 판단하여 분류되지 않는 경우에 취약성이 제거된 것으로 판단하는 단계를 포함하는 것을 특징으로 한다.
그리고 암호 알고리즘 구현이 소프트웨어인 경우에는, 소프트웨어로 구현된 암호 알고리즘의 취약성을 판단하고, 소프트웨어로 구현된 대응 기법을 적용하여 랜덤 비트 마스킹을 하는 단계와 공개키 암호 알고리즘의 1회 수행시 발생하는 전력 파형을 수집하는 단계와 암호 알고리즘의 1회 수행시에 수집한 전력 파형을 n개의 반복 연산 단위로 자르고, 키 비트 확인을 위한 연산 위치를 선택하고 n개의 반복 연산을 하는 단계와 n개의 전력파형을 값에 따른 두 집합으로 분류할 수 있는 지를 판단하여 분류되지 않는 경우에 취약성이 제거된 것으로 판단하는 단계를 포함하는 것을 특징으로 한다.
그리고 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하는 하드웨어 대응 처리를 하는 것에 의해, 암호 알고리즘 하드웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki+1과 ki(0 ≤ i < n-1)의 헤밍 디스턴스
Figure PCTKR2018015617-appb-I000003
값에 따른 전력 소모가 발생하는 특성 및, 암호 알고리즘 하드웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki+1과 ki(0 ≤ i < n-1)의 헤밍 디스턴스
Figure PCTKR2018015617-appb-I000004
값에 따른 전력 소모가 발생하고, 반복 연산에서 불려오는 레지스터 R의 주소는 ki+1과 ki값에 따라 결정되기 때문에 연산에 활용되는 레지스터 주소의 헤밍 디스턴스에 따른 전력 소모가 발생하는 특성을 없애 전력 파형 특성을 비밀 키 비트값에 따른 특성에 관계없이 두 집합으로 랜덤하게 분류되도록 하여 취약점을 제거하는 것을 특징으로 한다.
그리고 랜덤 비트 마스킹을 하는 소프트웨어 대응 처리를 하는 것에 의해, 암호 알고리즘 소프트웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki(0 ≤ i < n-1)값을 이진수로 표현했을 때 1의 개수인 헤밍 웨이트 값에 따른 전력 소모가 발생하는 특성 및, 암호 알고리즘 소프트웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki(0 ≤ i < n-1)값을 이진수로 표현했을 때 1의 개수인 헤밍 웨이트 값에 따른 전력 소모가 발생하고, 반복 연산에서 불려오는 레지스터 R의 주소는 ki값에 따라 결정되기 때문에 연산에 활용되는 레지스터 주소를 이진수로 표현했을 때 1의 개수인 헤밍 웨이트 값에 따른 전력 소모도 발생하는 특성을 없애 전력 파형 특성을 비밀 키 비트값에 따른 특성에 관계없이 두 집합으로 랜덤하게 분류되도록 하여 취약점을 제거하는 것을 특징으로 한다.
그리고 하드웨어 및 소프트웨어로 구현된 암호 알고리즘의 취약성 판단하는 단계에서, 공격 대상과 동일한 장비를 활용할 수 있다면, 공격 대상과 동일한 장비에서 n 비트 비밀 키 설정 후 공개키 암호 알고리즘 1회 수행시 발생하는 전력 파형을 수집하는 단계와 알고리즘 1회 수행시 수집한 전력 파형을 n개의 반복 연산 단위로 자르고, 설정된 n 비트 키를 기반으로 n 개의 전력 파형을 두 집합으로 분류하는 단계와 분류된 두 집합의 SOST 값을 계산하고, SOST 피크 값의 존재 여부를 판단하는 단계를 포함하는 것을 특징으로 한다.
그리고 하드웨어 및 소프트웨어로 구현된 암호 알고리즘의 취약성 판단하는 단계에서, 공격 대상과 동일한 장비를 활용할 수 없다면, 공격 대상 장비에서 공개키 암호 알고리즘 1회 수행시 발생하는 전력 파형을 수집하는 단계와 알고리즘 1회 수행시 수집한 전력 파형을 n개의 반복 연산 단위로 자르고, 공격 대상 칩의 동작 주파수 확인 및 알고리즘 구조 분석을 통하여 키 비트 확인을 위한 연산 단계를 구분하는 단계와 n개의 전력 파형을 비밀 키 비트 값 ki에 따른 두 집합으로 분류할 수 있는지 확인하는 단계를 포함하는 것을 특징으로 한다.
이와 같은 본 발명에 따른 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법은 다음과 같은 효과를 갖는다.
첫째, RSA, ECC 암호 알고리즘을 기반으로 하는 공개키 시스템에 대한 부채널 분석 안전성을 향상시킬 수 있다.
둘째, 암호 알고리즘 하드웨어 구현시 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하도록 구현하여 공개키 암호 알고리즘이 갖는 취약성을 해결할 수 있다.
셋째, 암호 알고리즘 소프트웨어 구현시 비밀키 비트 값을 확인하는 반복 연산 수행 전 단계에서 랜덤 값으로 마스킹하도록 구현하여 공개키 암호 알고리즘이 갖는 취약성을 해결할 수 있다.
넷째, 하드웨어 및 소프트웨어로 구현된 암호 알고리즘의 취약성을 판단하는 단계에서 공격 대상과 동일한 장비를 활용할 수 있는지 판단하여 동일한 장비 활용 여부에 따라 구분하여 암호 알고리즘의 취약성을 판단하여 판단 정확도를 높일 수 있다.
다섯째, RSA 암호 알고리즘은 공인인증서, ECC 암호 알고리즘은 전자여권, 스마트카에서 활용되는 것에 의해 본 발명은 국내·외 공인인증서, 전자여권, 스마트카 등의 부채널 대응기법을 설계하는 기관 및 부채널 안전성 검증을 수행하는 기관에서 유용하게 활용 가능하다.
도 1은 스칼라 곱셈 알고리즘을 나타낸 구성도
도 2는 하드웨어 구현시의 반복 연산에 대한 전력 파형을 특성에 따라 구분한 분류 그래프
도 3은 소프트웨어 구현시의 반복 연산에 대한 전력 파형을 특성에 따라 구분한 분류 그래프
도 4는 하드웨어 구현에 의한 랜덤값 초기화를 나타낸 구성도
도 5는 하드웨어에 의해 구현하여 대응한 결과 그래프
도 6은 소프트웨어 구현에 의한 랜덤 비트마스킹을 나타낸 구성도
도 7은 소프트웨어에 의해 구현하여 대응한 결과 그래프
도 8은 본 발명에 따른 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치의 구성도
도 9는 본 발명에 따른 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 방법을 나타낸 플로우 차트
도 10은 하드웨어 전력 파형 및 반복 연산 단위를 나타낸 그래프
도 11은 하드웨어 및 소프트웨어로 구현된 암호 알고리즘의 취약성 판단 과정을 나타낸 플로우 차트
이하, 본 발명에 따른 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법의 바람직한 실시 예에 관하여 상세히 설명하면 다음과 같다.
본 발명에 따른 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법의 특징 및 이점들은 이하에서의 각 실시 예에 대한 상세한 설명을 통해 명백해질 것이다.
도 8은 본 발명에 따른 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치의 구성도이고, 도 9는 본 발명에 따른 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 방법을 나타낸 플로우 차트이다.
본 발명에 따른 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법은 암호 알고리즘 하드웨어 구현시 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하도록 구현하는 것이다.
본 발명에 따른 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법은 암호 알고리즘 소프트웨어 구현시 비밀키 비트 값을 확인하는 반복 연산 수행 전 단계에서 랜덤 값으로 마스킹 하도록 구현하는 것이다.
이와 같은 본 발명에 따른 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법은 부채널 분석 대응기법에 관한 것으로, RSA, ECC와 같은 공개키 암호 알고리즘에 대한 단순 전력 분석 취약점을 보완하기 위한 방법이다.
이 기술은 RSA, ECC 암호 알고리즘이 비밀 키 비트 값에 따른 반복 연산을 수행하기 위해 n-bit 비밀 키 배열 k=(kn-1,…k1,k0)2에서 비밀 키 비트 ki값을 확인하는 단계를 안전하게 설계하기 위해 적용한다.
ECC 암호 알고리즘의 대표 연산인 스칼라 곱셈 연산은 도 1에서와 같이 비밀 키 비트 ki값에 따른 반복 연산(2-5)을 수행하도록 구현된다.
도 1은 스칼라 곱셈 알고리즘을 나타낸 구성도이다.
따라서, 각 반복 연산 수행 전에 비밀 키 비트 ki값을 확인하는 단계가 존재하며, n-bit 비밀 키 배열 k=(kn-1,…k1,k0)2에서 추출하여 ki변수에 저장한다.
RSA 암호 알고리즘의 대표 연산인 모듈러 지수승 연산은 스칼라 곱셈 연산과 유사한 구조로, 덧셈 연산은 곱셈 연산으로, 두 배 연산은 제곱 연산으로 구현된다.
이와 같은 공개키 암호 알고리즘이 갖는 비밀 키 비트 ki값을 확인하는 단계에서의 특성을 설명하면 다음과 같다.
(특성 1) 암호 알고리즘 하드웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki+1과 ki(0 ≤ i < n-1)의 헤밍 디스턴스, 즉,
Figure PCTKR2018015617-appb-I000005
값에 따른 전력 소모가 발생한다.
⇒ ki+1 = ki일 때
Figure PCTKR2018015617-appb-I000006
과 연관된 전력 소모가 발생
⇒ ki+1 ≠ ki일 때
Figure PCTKR2018015617-appb-I000007
과 연관된 전력 소모가 발생
(특성 2) 암호 알고리즘 소프트웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki(0 ≤ i < n-1)의 헤밍 웨이트, 즉, ki값을 이진수로 표현했을 때 1의 개수에 따른 전력 소모가 발생한다.
⇒ ki = 0일 때 0과 연관된 전력 소모가 발생
⇒ ki = 1일 때 1과 연관된 전력 소모가 발생
(특성 3) 암호 알고리즘 하드웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki+1과 ki(0 ≤ i < n-1)의 헤밍 디스턴스, 즉,
Figure PCTKR2018015617-appb-I000008
값에 따른 전력 소모가 발생한다. 그리고 반복 연산(2-5)에서 불려오는 레지스터 R의 주소는 ki+1과 ki값에 따라 결정되기 때문에 연산에 활용되는 레지스터 주소 RegAddrRki+1 과 RegAddrRki(0 ≤ i < n-1)의 헤밍 디스턴스, 즉,
Figure PCTKR2018015617-appb-I000009
값에 따른 전력 소모도 발생한다.
⇒ ki+1 = ki일 때
Figure PCTKR2018015617-appb-I000010
,
Figure PCTKR2018015617-appb-I000011
과 연관된 전력 소모가 발생
⇒ ki+1 ≠ ki일 때
Figure PCTKR2018015617-appb-I000012
,
Figure PCTKR2018015617-appb-I000013
과 연관된 전력 소모가 발생
(특성 4) 암호 알고리즘 소프트웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki(0 ≤ i < n-1)의 헤밍 웨이트, 즉, ki값을 이진수로 표현했을 때 1의 개수에 따른 전력 소모가 발생한다. 그리고 반복 연산(2-5)에서 불려오는 레지스터 R의 주소는 ki값에 따라 결정되기 때문에 연산에 활용되는 레지스터 주소 RegAddrRki(0 ≤ i < n-1)의 헤밍 웨이트, 즉, RegAddrRki값을 이진수로 표현했을 때 1의 개수에 따른 전력 소모도 발생한다.
⇒ ki = 0일 때 0, RegAddrR0과 연관된 전력 소모가 발생
⇒ ki = 1일 때 1, RegAddrR1과 연관된 전력 소모가 발생
따라서 n번의 반복 연산(2-5)에 대한 n개의 전력 파형을 특성 (1), (2), (3), (4)를 기반으로 도 2 및 도 3에서와 같이, 두 집합으로 분류할 수 있으며, 단 하나의 전력 파형을 이용하여 n-bit 비밀 키 비트 전체를 복구할 수 있고, 단순 전력 분석 및 차분 전력 분석 대응기법이 적용되어 있는 RSA, ECC 암호 알고리즘도 본 취약성이 존재한다.
도 2는 하드웨어 구현시의 반복 연산에 대한 전력 파형을 특성에 따라 구분한 분류 그래프이고, 도 3은 소프트웨어 구현시의 반복 연산에 대한 전력 파형을 특성에 따라 구분한 분류 그래프이다.
본 발명은 특성 (1), (2), (3), (4)에 대한 취약성을 없애기 위해 대응기법을 설계한 것이다.
도 4는 하드웨어 구현에 의한 랜덤값 초기화를 나타낸 구성도이고, 도 5는 하드웨어에 의해 구현하여 대응한 결과 그래프이다.
하드웨어 구현의 경우 특성 (1), (3)을 없애기 위해 도 4에서와 같이 ki 값을 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하도록 구성한다.
그 결과 도 5에서와 같이 비밀 키 비트 값에 따른 특성에 상관없이 두 집합으로 랜덤하게(1/2의 확률) 분류되어 취약점을 제거할 수 있다.
도 6은 소프트웨어 구현에 의한 랜덤 비트마스킹을 나타낸 구성도이고, 도 7은 소프트웨어에 의해 구현하여 대응한 결과 그래프이다.
소프트웨어 구현의 경우 특성 (2), (4)를 없애기 위해 도 6에서와 같이 n-bit 비밀 키 key를 n-비트 랜덤 값 r로 마스킹(랜덤한 값으로 감춘다)한다.
그 결과 도 7에서와 같이 비밀 키 비트 값에 따른 특성에 상관없이 두 집합으로 랜덤하게(1/2의 확률) 분류되어 취약점을 제거할 수 있다.
이와 같은 본 발명에 따른 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법의 구성을 구체적으로 설명하면 다음과 같다.
먼저, 본 발명에 따른 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치는 도 8에서와 같이, 암호 알고리즘이 동작하는 칩 정보를 확인하는 정보 확인부(80)와, 암호 알고리즘의 구현 방법을 판단하는 암호 알고리즘 판단부(900)와, 암호 알고리즘 하드웨어 구현시 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하는 하드웨어 대응 처리부(100)와, 암호 알고리즘 소프트웨어 구현시 비밀키 비트 값을 확인하는 반복 연산 수행 전 단계에서 랜덤 값으로 마스킹 하는 소프트웨어 대응 처리부(110)를 포함한다.
하드웨어 대응 처리부(100)는 암호 알고리즘 하드웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki+1과 ki(0 ≤ i < n-1)의 헤밍 디스턴스
Figure PCTKR2018015617-appb-I000014
값에 따른 전력 소모가 발생하는 (특성 1) 및 암호 알고리즘 하드웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki+1과 ki(0 ≤ i < n-1)의 헤밍 디스턴스
Figure PCTKR2018015617-appb-I000015
값에 따른 전력 소모가 발생하고, 반복 연산에서 불려오는 레지스터 R의 주소는 ki+1과 ki값에 따라 결정되기 때문에 연산에 활용되는 레지스터 주소의 헤밍 디스턴스에 따른 전력 소모가 발생하는 (특성 3)을 없애 전력 파형 특성을 비밀 키 비트값에 따른 특성에 관계없이 두 집합으로 랜덤하게 분류되도록 하여 취약점을 제거하는 것이다.
소프트웨어 대응 처리부(110)는 암호 알고리즘 소프트웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki(0 ≤ i < n-1)의 헤밍 웨이트, 즉, ki값을 이진수로 표현했을 때 1의 개수에 따른 전력 소모가 발생하는 (특성 2) 및 암호 알고리즘 소프트웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki(0 ≤ i < n-1)의 헤밍 웨이트, 즉, ki값을 이진수로 표현했을 때 1의 개수에 따른 전력 소모가 발생하고, 반복 연산에서 불려오는 레지스터 R의 주소는 ki값에 따라 결정되기 때문에 연산에 활용되는 레지스터 주소 값을 이진수로 표현했을 때 1의 개수, 즉 레지스터 주소의 헤밍 웨이트 값에 따른 전력 소모도 발생하는 (특성 4)를 없애 전력 파형 특성을 비밀 키 비트값에 따른 특성에 관계없이 두 집합으로 랜덤하게 분류되도록 하여 취약점을 제거하는 것이다.
하드웨어 대응 처리부(100)는 하드웨어로 구현된 암호 알고리즘의 취약성을 판단하는 취약성 판단부(100a)와, 하드웨어로 구현된 대응 기법을 적용하여 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 초기화하는 랜덤 초기화부(100b)와, 공개키 암호 알고리즘의 1회 수행시 발생하는 전력 파형을 수집하는 전력 파형 수집부(100c)와, 암호 알고리즘의 1회 수행시에 수집한 전력 파형을 n개의 반복 연산 단위로 자르고, 키 비트 확인을 위한 연산 위치를 선택하고 n개의 반복 연산을 하는 연산단위 및 위치 선택부(100d)와, n개의 전력파형을 값에 따른 두 집합으로 분류할 수 있는 지를 판단하여 분류되지 않는 경우에 취약성이 제거된 것으로 판단하는 안전성 판단부(100e)를 포함한다.
소프트웨어 대응 처리부(110)는 소프트웨어로 구현된 암호 알고리즘의 취약성을 판단하는 취약성 판단부(110a)와, 소프트웨어로 구현된 대응 기법을 적용하여 랜덤 비트 마스킹을 하는 랜덤 비트 마스킹부(110b)와, 공개키 암호 알고리즘의 1회 수행시 발생하는 전력 파형을 수집하는 전력 파형 수집부(110c)와, 암호 알고리즘의 1회 수행시에 수집한 전력 파형을 n개의 반복 연산 단위로 자르고, 키 비트 확인을 위한 연산 위치를 선택하고 n개의 반복 연산을 하는 연산단위 및 위치 선택부(110d)와, n개의 전력파형을 값에 따른 두 집합으로 분류할 수 있는 지를 판단하여 분류되지 않는 경우에 취약성이 제거된 것으로 판단하는 안전성 판단부(110e)를 포함한다.
본 발명에 따른 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 방법은 도 9에서와 같이, 암호 알고리즘이 동작하는 칩 정보를 확인하는 단계;암호 알고리즘의 구현 방법을 판단하는 단계; 암호 알고리즘 구현이 하드웨어인 경우에는 암호 알고리즘 하드웨어 구현시 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하는 하드웨어 대응 처리를 하고, 암호 알고리즘 구현이 소프트웨어인 경우에는 암호 알고리즘 소프트웨어 구현시 비밀키 비트 값을 확인하는 반복 연산 수행 전 단계에서 랜덤 값으로 마스킹 하는 소프트웨어 대응 처리를 하는 단계;를 포함한다.
여기서, 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하는 하드웨어 대응 처리를 하는 것에 의해, 암호 알고리즘 하드웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki+1과 ki(0 ≤ i < n-1)의 헤밍 디스턴스
Figure PCTKR2018015617-appb-I000016
값에 따른 전력 소모가 발생하는 (특성 1) 및, 암호 알고리즘 하드웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki+1과 ki(0 ≤ i < n-1)의 헤밍 디스턴스
Figure PCTKR2018015617-appb-I000017
값에 따른 전력 소모가 발생하고, 반복 연산에서 불려오는 레지스터 R의 주소는 ki+1과 ki값에 따라 결정되기 때문에 연산에 활용되는 레지스터 주소의 헤밍 디스턴스에 따른 전력 소모가 발생하는 (특성 3)을 없애 전력 파형 특성을 비밀 키 비트값에 따른 특성에 관계없이 두 집합으로 랜덤하게 분류되도록 하여 취약점을 제거할 수 있다.
그리고 랜덤 비트 마스킹을 하는 소프트웨어 대응 처리를 하는 것에 의해, 암호 알고리즘 소프트웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki(0 ≤ i < n-1)의 헤밍 웨이트, 즉 ki값을 이진수로 표현했을 때 1의 개수에 따른 전력 소모가 발생하는 (특성 2) 및, 암호 알고리즘 소프트웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki(0 ≤ i < n-1)의 헤밍 웨이트, 즉, ki값을 이진수로 표현했을 때 1의 개수에 따른 전력 소모가 발생하고, 반복 연산에서 불려오는 레지스터 R의 주소는 ki값에 따라 결정되기 때문에 연산에 활용되는 레지스터 주소 값을 이진수로 표현했을 때 1의 개수, 즉 레지스터 주소의 헤밍 웨이트 값에 따른 전력 소모도 발생하는 (특성 4)를 없애 전력 파형 특성을 비밀 키 비트값에 따른 특성에 관계없이 두 집합으로 랜덤하게 분류되도록 하여 취약점을 제거할 수 있다.
구체적으로, 암호 알고리즘이 동작하는 칩 정보를 확인하고(S901), 암호 알고리즘의 구현 방법을 판단한다(S902).
암호 알고리즘 구현이 하드웨어인 경우에는 하드웨어로 구현된 암호 알고리즘의 취약성을 판단하여(S903), 하드웨어로 구현된 대응 기법을 적용하여 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 초기화한다(S904).
그리고 공개키 암호 알고리즘의 1회 수행시 발생하는 전력 파형을 수집한다(S905).
이어, 암호 알고리즘의 1회 수행시에 수집한 전력 파형을 n개의 반복 연산 단위로 자르고(S906), 키 비트 확인을 위한 연산 위치를 선택하고 n개의 반복 연산을 한다(S907).
그리고 n개의 전력파형을 값에 따른 두 집합으로 분류할 수 있는 지를 판단하여 분류되지 않는 경우에 취약성이 제거된 것으로 판단한다(S908).
그리고 암호 알고리즘 구현이 소프트웨어인 경우에는, 소프트웨어로 구현된 암호 알고리즘의 취약성을 판단하고(S913), 소프트웨어로 구현된 대응 기법을 적용하여 랜덤 비트 마스킹을 한다(S914).
이어, 공개키 암호 알고리즘의 1회 수행시 발생하는 전력 파형을 수집한다(S915).
그리고 암호 알고리즘의 1회 수행시에 수집한 전력 파형을 n개의 반복 연산 단위로 자르고(S916), 키 비트 확인을 위한 연산 위치를 선택하고 n개의 반복 연산을 한다(S917).
이어, n개의 전력파형을 값에 따른 두 집합으로 분류할 수 있는 지를 판단하여 분류되지 않는 경우에 취약성이 제거된 것으로 판단한다(S918).
여기서, 암호 알고리즘의 1회 수행시에 수집한 전력 파형을 n개의 반복 연산 단위로 자르고(S916), 키 비트 확인을 위한 연산 위치를 선택하고 n개의 반복 연산을 하는(S917) 단계의 일 예는 도 10에서와 같다.
도 10은 하드웨어 전력 파형 및 반복 연산 단위를 나타낸 그래프이다.
하드웨어 및 소프트웨어로 구현된 암호 알고리즘의 취약성 판단 과정을 구체적으로 설명하면 다음과 같다.
도 11은 하드웨어 및 소프트웨어로 구현된 암호 알고리즘의 취약성 판단 과정을 나타낸 플로우 차트이다.
하드웨어 및 소프트웨어로 구현된 암호 알고리즘의 취약성 판단하는 단계(S913)는,
공격 대상과 동일한 장비를 활용할 수 있다면(S1101), 공격 대상과 동일한 장비에서 n 비트 비밀 키 설정 후 공개키 암호 알고리즘 1회 수행시 발생하는 전력 파형을 수집한다(S1102).
그리고 알고리즘 1회 수행시 수집한 전력 파형을 n개의 반복 연산 단위로 자르고(S1103), 설정된 n 비트 키를 기반으로 n 개의 전력 파형을 두 집합으로 분류한다(S1104).
이어, 분류된 두 집합의 SOST 값을 아래의 수학식 1에서와 같이 계산하고(S1105), SOST 피크 값의 존재 여부를 판단한다(S1106).
Figure PCTKR2018015617-appb-M000001
그리고 공격 대상과 동일한 장비를 활용할 수 없다면(S1101), 공격 대상 장비에서 공개키 암호 알고리즘 1회 수행시 발생하는 전력 파형을 수집한다(S1112).
그리고 알고리즘 1회 수행시 수집한 전력 파형을 n개의 반복 연산 단위로 자르고(S1113), 공격 대상 칩의 동작 주파수 확인 및 알고리즘 구조 분석을 통하여 키 비트 확인을 위한 연산 단계를 구분한다(S1114).
이어, n개의 전력 파형을 비밀 키 비트 값 ki에 따른 두 집합으로 분류할 수 있는지 확인한다(S1115).
이와 같은 본 발명에 따른 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법은 RSA, ECC 암호 알고리즘을 기반으로 하는 공개키 시스템에 대한 부채널 분석 안전성을 향상시키는 대응기법으로, RSA 암호 알고리즘은 공인인증서, ECC 암호 알고리즘은 전자여권, 스마트 카에서 활용되기 때문에, 해당 기술은 국내·외 공인인증서, 전자여권, 스마트 카 등의 부채널 대응기법을 설계하는 기관 및 부채널 안전성 검증을 수행하는 기관에서 활용 가능하다.
이상에서의 설명에서와 같이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 본 발명이 구현되어 있음을 이해할 수 있을 것이다.
그러므로 명시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 하고, 본 발명의 범위는 전술한 설명이 아니라 특허청구 범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명을 지원한 국가연구개발사업
과제고유번호:1711055423
부처명:미래창조과학부
연구관리전문기관:정보통신기술진흥센터
연구사업명:정보보호핵심원천기술개발(R&D) (조사분석사업명: 정보보호핵심원천기술개발)
연구과제명:(ICT 기초연구실) SCR-Friendly 대칭키 암호 및 응용 모드개발
기여율:1/1
주관기관:국민대학교 산학협력단
연구기간:2017.04.01 ~ 2017.12.31
[부호의 설명]
80. 정보 확인부 90. 암호 알고리즘 판단부
100. 하드웨어 대응 처리부 110. 소프트웨어 대응 처리부

Claims (12)

  1. 암호 알고리즘이 동작하는 칩 정보를 확인하는 정보 확인부;
    암호 알고리즘의 구현 방법을 판단하는 암호 알고리즘 판단부;
    암호 알고리즘 하드웨어 구현시 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하는 하드웨어 대응 처리부;
    암호 알고리즘 소프트웨어 구현시 비밀키 비트 값을 확인하는 반복 연산 수행 전 단계에서 랜덤 값으로 마스킹 하는 소프트웨어 대응 처리부;를 포함하는 것을 특징으로 하는 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치.
  2. 제1항에 있어서, 상기 하드웨어 대응 처리부는
    암호 알고리즘 하드웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki+1과 ki(0 ≤ i < n-1)의 헤밍 디스턴스
    Figure PCTKR2018015617-appb-I000018
    값에 따른 전력 소모가 발생하는 특성 및,
    암호 알고리즘 하드웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki+1과 ki(0 ≤ i < n-1)의 헤밍 디스턴스
    Figure PCTKR2018015617-appb-I000019
    값에 따른 전력 소모가 발생하고, 반복 연산에서 불려오는 레지스터 R의 주소는 ki+1과 ki값에 따라 결정되기 때문에 연산에 활용되는 레지스터 주소의 헤밍 디스턴스에 따른 전력 소모가 발생하는 특성을 없애 전력 파형 특성을 비밀 키 비트값에 따른 특성에 관계없이 두 집합으로 랜덤하게 분류되도록 하여 취약점을 제거하는 것을 특징으로 하는 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치.
  3. 제1항에 있어서, 상기 소프트웨어 대응 처리부는
    암호 알고리즘 소프트웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki(0 ≤ i < n-1)의 헤밍웨이트, 즉 ki값을 이진수로 표현했을 때 1의 개수인 헤밍 웨이트 값에 따른 전력 소모가 발생하는 특성 및,
    암호 알고리즘 소프트웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki(0 ≤ i < n-1)의 헤밍웨이트, 즉 ki값을 이진수로 표현했을 때 1의 개수인 헤밍 웨이트 값에 따른 전력 소모가 발생하고, 반복 연산에서 불려오는 레지스터 R의 주소는 ki값에 따라 결정되기 때문에 연산에 활용되는 레지스터 주소의 헤밍 웨이트, 즉, 레지스터 주소를 이진수로 표현했을 때 1의 개수에 따른 전력 소모도 발생하는 특성을 없애 전력 파형 특성을 비밀 키 비트값에 따른 특성에 관계없이 두 집합으로 랜덤하게 분류되도록 하여 취약점을 제거하는 것을 특징으로 하는 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치.
  4. 제1항 또는 제2항에 있어서, 상기 하드웨어 대응 처리부는
    하드웨어로 구현된 암호 알고리즘의 취약성을 판단하는 취약성 판단부와,
    하드웨어로 구현된 대응 기법을 적용하여 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 초기화하는 랜덤 초기화부와,
    공개키 암호 알고리즘의 1회 수행시 발생하는 전력 파형을 수집하는 전력 파형 수집부와,
    암호 알고리즘의 1회 수행시에 수집한 전력 파형을 n개의 반복 연산 단위로 자르고, 키 비트 확인을 위한 연산 위치를 선택하고 n개의 반복 연산을 하는 연산단위 및 위치 선택부와,
    n개의 전력파형을 값에 따른 두 집합으로 분류할 수 있는 지를 판단하여 분류되지 않는 경우에 취약성이 제거된 것으로 판단하는 안전성 판단부를 포함하는 것을 특징으로 하는 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치.
  5. 제1항 또는 제3항에 있어서, 상기 소프트웨어 대응 처리부는
    소프트웨어로 구현된 암호 알고리즘의 취약성을 판단하는 취약성 판단부와,
    소프트웨어로 구현된 대응 기법을 적용하여 랜덤 비트 마스킹을 하는 랜덤 비트 마스킹부와,
    공개키 암호 알고리즘의 1회 수행시 발생하는 전력 파형을 수집하는 전력 파형 수집부와,
    암호 알고리즘의 1회 수행시에 수집한 전력 파형을 n개의 반복 연산 단위로 자르고, 키 비트 확인을 위한 연산 위치를 선택하고 n개의 반복 연산을 하는 연산단위 및 위치 선택부와,
    n개의 전력파형을 값에 따른 두 집합으로 분류할 수 있는 지를 판단하여 분류되지 않는 경우에 취약성이 제거된 것으로 판단하는 안전성 판단부를 포함하는 것을 특징으로 하는 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치.
  6. 암호 알고리즘이 동작하는 칩 정보를 확인하는 단계;
    암호 알고리즘의 구현 방법을 판단하는 단계; 및
    암호 알고리즘 구현이 하드웨어인 경우에는 암호 알고리즘 하드웨어 구현시 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하는 하드웨어 대응 처리를 하고, 암호 알고리즘 구현이 소프트웨어인 경우에는 암호 알고리즘 소프트웨어 구현시 비밀키 비트 값을 확인하는 반복 연산 수행 전 단계에서 랜덤 값으로 마스킹 하는 소프트웨어 대응 처리를 하는 단계;를 포함하는 것을 특징으로 하는 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치.
  7. 제6항에 있어서, 상기 암호 알고리즘 구현이 하드웨어인 경우에는,
    하드웨어로 구현된 암호 알고리즘의 취약성을 판단하고, 하드웨어로 구현된 대응 기법을 적용하여 비밀키 비트 값을 확인하기 위한 반복 연산 시작 전에 랜덤한 값으로 초기화하는 단계와,
    공개키 암호 알고리즘의 1회 수행시 발생하는 전력 파형을 수집하는 단계와,
    암호 알고리즘의 1회 수행시에 수집한 전력 파형을 n개의 반복 연산 단위로 자르고, 키 비트 확인을 위한 연산 위치를 선택하고 n개의 반복 연산을 하는 단계와,
    n개의 전력파형을 값에 따른 두 집합으로 분류할 수 있는 지를 판단하여 분류되지 않는 경우에 취약성이 제거된 것으로 판단하는 단계를 포함하는 것을 특징으로 하는 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치.
  8. 제6항에 있어서, 상기 암호 알고리즘 구현이 소프트웨어인 경우에는,
    소프트웨어로 구현된 암호 알고리즘의 취약성을 판단하고, 소프트웨어로 구현된 대응 기법을 적용하여 랜덤 비트 마스킹을 하는 단계와,
    공개키 암호 알고리즘의 1회 수행시 발생하는 전력 파형을 수집하는 단계와,
    암호 알고리즘의 1회 수행시에 수집한 전력 파형을 n개의 반복 연산 단위로 자르고, 키 비트 확인을 위한 연산 위치를 선택하고 n개의 반복 연산을 하는 단계와,
    n개의 전력파형을 값에 따른 두 집합으로 분류할 수 있는 지를 판단하여 분류되지 않는 경우에 취약성이 제거된 것으로 판단하는 단계를 포함하는 것을 특징으로 하는 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치.
  9. 제6항에 있어서, 반복 연산 시작 전에 랜덤한 값으로 매번 초기화하는 하드웨어 대응 처리를 하는 것에 의해,
    암호 알고리즘 하드웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki+1과 ki(0 ≤ i < n-1)의 헤밍 디스턴스
    Figure PCTKR2018015617-appb-I000020
    값에 따른 전력 소모가 발생하는 특성 및,
    암호 알고리즘 하드웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki+1과 ki(0 ≤ i < n-1)의 헤밍 디스턴스
    Figure PCTKR2018015617-appb-I000021
    값에 따른 전력 소모가 발생하고, 반복 연산에서 불려오는 레지스터 R의 주소는 ki+1과 ki값에 따라 결정되기 때문에 연산에 활용되는 레지스터 주소의 헤밍 디스턴스에 따른 전력 소모가 발생하는 특성을 없애 전력 파형 특성을 비밀 키 비트값에 따른 특성에 관계없이 두 집합으로 랜덤하게 분류되도록 하여 취약점을 제거하는 것을 특징으로 하는 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 방법.
  10. 제6항에 있어서, 랜덤 비트 마스킹을 하는 소프트웨어 대응 처리를 하는 것에 의해,
    암호 알고리즘 소프트웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki(0 ≤ i < n-1)의 헤밍웨이트, 즉 ki값을 이진수로 표현했을 때 1의 개수인 헤밍 웨이트 값에 따른 전력 소모가 발생하는 특성 및,
    암호 알고리즘 소프트웨어 구현 시 비밀 키 비트 ki값을 확인하는 단계에서 ki(0 ≤ i < n-1)의 헤밍웨이트, 즉 ki값을 이진수로 표현했을 때 1의 개수인 헤밍 웨이트 값에 따른 전력 소모가 발생하고, 반복 연산에서 불려오는 레지스터 R의 주소는 ki값에 따라 결정되기 때문에 연산에 활용되는 레지스터 주소의 헤밍 웨이트, 즉 레지스터 주소 값을 이진수로 표현했을 때 1의 개수에 따른 전력 소모도 발생하는 특성을 없애 전력 파형 특성을 비밀 키 비트값에 따른 특성에 관계없이 두 집합으로 랜덤하게 분류되도록 하여 취약점을 제거하는 것을 특징으로 하는 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 방법.
  11. 제8항에 있어서, 하드웨어 및 소프트웨어로 구현된 암호 알고리즘의 취약성 판단을 하는 단계에서,
    공격 대상과 동일한 장비를 활용할 수 있다면,
    공격 대상과 동일한 장비에서 n 비트 비밀 키 설정 후 공개키 암호 알고리즘 1회 수행시 발생하는 전력 파형을 수집하는 단계와,
    알고리즘 1회 수행시 수집한 전력 파형을 n개의 반복 연산 단위로 자르고, 설정된 n 비트 키를 기반으로 n 개의 전력 파형을 두 집합으로 분류하는 단계와,
    분류된 두 집합의 SOST 값을 계산하고, SOST 피크 값의 존재 여부를 판단하는 단계를 포함하는 것을 특징으로 하는 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 방법.
  12. 제8항에 있어서, 하드웨어 및 소프트웨어로 구현된 암호 알고리즘의 취약성 판단을 하는 단계에서,
    공격 대상과 동일한 장비를 활용할 수 없다면,
    공격 대상 장비에서 공개키 암호 알고리즘 1회 수행시 발생하는 전력 파형을 수집하는 단계와,
    알고리즘 1회 수행시 수집한 전력 파형을 n개의 반복 연산 단위로 자르고, 공격 대상 칩의 동작 주파수 확인 및 알고리즘 구조 분석을 통하여 키 비트 확인을 위한 연산 단계를 구분하는 단계와,
    n개의 전력 파형을 비밀 키 비트 값 ki에 따른 두 집합으로 분류할 수 있는지 확인하는 단계를 포함하는 것을 특징으로 하는 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 방법.
PCT/KR2018/015617 2017-12-11 2018-12-10 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법 WO2019117565A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201880089099.3A CN111742519A (zh) 2017-12-11 2018-12-10 用于公开密钥加密算法的密钥比特变数随机化的装置及方法
EP18888199.9A EP3726772A4 (en) 2017-12-11 2018-12-10 APPARATUS AND METHOD FOR RANDOMIZING VARIABLES OF KEY BITS OF A PUBLIC KEY ENCRYPTION ALGORITHM

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0169558 2017-12-11
KR1020170169558A KR101981621B1 (ko) 2017-12-11 2017-12-11 공개키 암호 알고리즘의 키 비트 변수 램덤화를 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
WO2019117565A1 true WO2019117565A1 (ko) 2019-06-20

Family

ID=66820745

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/015617 WO2019117565A1 (ko) 2017-12-11 2018-12-10 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법

Country Status (4)

Country Link
EP (1) EP3726772A4 (ko)
KR (1) KR101981621B1 (ko)
CN (1) CN111742519A (ko)
WO (1) WO2019117565A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113300840A (zh) * 2021-05-21 2021-08-24 福建师范大学 一种联合汉明码的数据随机加密通信方法
CN113962174A (zh) * 2021-12-21 2022-01-21 佛山芯珠微电子有限公司 一种基于物联网信息安全芯片的软硬件兼容方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100580844B1 (ko) * 2003-12-17 2006-05-16 한국전자통신연구원 무선 랜(lan) 시스템에서의 데이터 보안 및 운용장치와 그 방법
KR20080016887A (ko) * 2005-05-31 2008-02-22 엔엑스피 비 브이 전자 회로 장치 및 그 동작 방법과, 그러한 장치 및 방법의용도
KR100891323B1 (ko) 2005-05-11 2009-03-31 삼성전자주식회사 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치
KR101589185B1 (ko) * 2014-11-05 2016-01-28 국방과학연구소 중간값 평균기법을 이용한 부 채널 분석 성능 향상방법
KR20160020866A (ko) * 2014-08-14 2016-02-24 현대오토에버 주식회사 폐쇄형 네트워크에서 암복호화 서비스 제공 시스템 및 방법
KR101665600B1 (ko) * 2015-07-07 2016-10-12 국민대학교산학협력단 Ecc 암호 알고리즘의 전력 충돌 공격 대응을 위한 장치 및 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7124170B1 (en) * 1999-08-20 2006-10-17 Intertrust Technologies Corp. Secure processing unit systems and methods
EP2506176A1 (en) * 2011-03-30 2012-10-03 Irdeto Corporate B.V. Establishing unique key during chip manufacturing
WO2013172790A1 (en) * 2012-05-16 2013-11-21 Nanyang Technological University Methods for determining a result of applying a function to an input and evaluation devices
KR20140072283A (ko) 2012-11-29 2014-06-13 한국전자통신연구원 부채널 분석 방지 마스킹 방법 및 장치
KR101586811B1 (ko) 2015-03-31 2016-01-19 국민대학교산학협력단 Hight 부채널 분석에 대응하기 위한 장치 및 방법
KR20170108595A (ko) 2016-03-18 2017-09-27 한국전자통신연구원 논리적 보수 관계값을 이용한 부채널 분석 방지 암호화 장치 및 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100580844B1 (ko) * 2003-12-17 2006-05-16 한국전자통신연구원 무선 랜(lan) 시스템에서의 데이터 보안 및 운용장치와 그 방법
KR100891323B1 (ko) 2005-05-11 2009-03-31 삼성전자주식회사 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치
KR20080016887A (ko) * 2005-05-31 2008-02-22 엔엑스피 비 브이 전자 회로 장치 및 그 동작 방법과, 그러한 장치 및 방법의용도
KR20160020866A (ko) * 2014-08-14 2016-02-24 현대오토에버 주식회사 폐쇄형 네트워크에서 암복호화 서비스 제공 시스템 및 방법
KR101589185B1 (ko) * 2014-11-05 2016-01-28 국방과학연구소 중간값 평균기법을 이용한 부 채널 분석 성능 향상방법
KR101665600B1 (ko) * 2015-07-07 2016-10-12 국민대학교산학협력단 Ecc 암호 알고리즘의 전력 충돌 공격 대응을 위한 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3726772A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113300840A (zh) * 2021-05-21 2021-08-24 福建师范大学 一种联合汉明码的数据随机加密通信方法
CN113300840B (zh) * 2021-05-21 2023-05-16 福建师范大学 一种联合汉明码的数据随机加密通信方法
CN113962174A (zh) * 2021-12-21 2022-01-21 佛山芯珠微电子有限公司 一种基于物联网信息安全芯片的软硬件兼容方法

Also Published As

Publication number Publication date
CN111742519A (zh) 2020-10-02
EP3726772A4 (en) 2021-04-07
EP3726772A1 (en) 2020-10-21
KR101981621B1 (ko) 2019-08-28

Similar Documents

Publication Publication Date Title
Nepomuceno et al. Image encryption based on the pseudo-orbits from 1D chaotic map
CN1989726B (zh) 用于执行加密计算的方法和装置
Coron et al. On boolean and arithmetic masking against differential power analysis
Medwed et al. Template attacks on ECDSA
US7292060B2 (en) Logic circuit and method thereof
EP1840794A2 (en) Method, system and program for authenticating a user by biometric information
EP1648111A1 (en) Tamper-resistant encryption using individual key
DE60044168D1 (de) Verfahren zur sicherung einer elektronischen verschlüsselungsvorrichtung mit geheimschlüssel gegen angriffe mittels physischer analyse
Strobel et al. Microcontrollers as (in) security devices for pervasive computing applications
WO2019117565A1 (ko) 공개키 암호 알고리즘의 키 비트 변수 랜덤화를 위한 장치 및 방법
WO2019160195A1 (ko) 파일 내 포함된 악성 위협 탐지 장치 및 방법, 그 기록매체
WO2019088313A1 (ko) 딥러닝을 이용한 암호화 방법
EP3040901A1 (en) System and method for aligning time-series data over a large range of time indices
CN111817842A (zh) 一种针对rsa-crt运算的能量分析攻击测试装置和方法
CN109428707A (zh) 测试电路对侧信道分析的抵抗的方法
Kasper et al. Side channels as building blocks
CN106357378B (zh) 用于sm2签名的密钥检测方法及其系统
Rae et al. A taxonomy of attacks on secure devices
CN105897401B (zh) 基于比特的通用差分功耗分析方法及系统
Ghouzali et al. Private chaotic biometric template protection algorithm
CN1723436A (zh) 抗隐蔽信道攻击的整数除法或模数简化保密方法
Feix et al. Defeating iso9797-1 mac algo 3 by combining side-channel and brute force techniques
Zaccaria et al. Spectral features of higher-order side-channel countermeasures
WO2019146885A1 (ko) 암호 해독 장치 및 방법, 이를 기록한 기록매체
Kordi et al. Cost-effective and practical countermeasure against the template side channel attack

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18888199

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018888199

Country of ref document: EP

Effective date: 20200713