KR101586811B1 - Hight 부채널 분석에 대응하기 위한 장치 및 방법 - Google Patents

Hight 부채널 분석에 대응하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR101586811B1
KR101586811B1 KR1020150045585A KR20150045585A KR101586811B1 KR 101586811 B1 KR101586811 B1 KR 101586811B1 KR 1020150045585 A KR1020150045585 A KR 1020150045585A KR 20150045585 A KR20150045585 A KR 20150045585A KR 101586811 B1 KR101586811 B1 KR 101586811B1
Authority
KR
South Korea
Prior art keywords
masking
masked
value
byte
unit
Prior art date
Application number
KR1020150045585A
Other languages
English (en)
Inventor
한동국
김태종
원유승
박진학
안현진
Original Assignee
국민대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 국민대학교산학협력단 filed Critical 국민대학교산학협력단
Priority to KR1020150045585A priority Critical patent/KR101586811B1/ko
Application granted granted Critical
Publication of KR101586811B1 publication Critical patent/KR101586811B1/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 B to A 변환을 하여 안전한 덧셈연산을 하고 다시 A to B 변환을 시키는 것으로 나머지 연산을 수행하는 덧셈연산을 포함하는 부울린 마스킹 대응기법을 HIGHT 알고리즘에 적용하는 HIGHT 부채널 분석에 대응하기 위한 장치 및 방법에 관한 것으로, 8비트 랜덤 값을 XOR 연산하여 마스킹을 적용하고, 각 라운드가 시작할 때와 끝날 때 같은 마스킹 값을 가지도록 구성하여 라운드 함수를 반복적으로 사용 가능하게 하고, 라운드 키에는 각 바이트에 랜덤 값 m0을 XOR 연산하여 사용하여 HIGHT 부채널 분석에 대응할 수 있도록 한 것이다.

Description

HIGHT 부채널 분석에 대응하기 위한 장치 및 방법{Apparatus and Method for Protecting Side channel Attacks on HIGHT}
본 발명은 HIGHT 부채널 분석 대응에 관한 것으로, 구체적으로 B to A 변환을 하여 안전한 덧셈연산을 하고 다시 A to B 변환을 시키는 것으로 나머지 연산을 수행하는 덧셈연산을 포함하는 부울린 마스킹 대응기법을 HIGHT 알고리즘에 적용한 HIGHT 부채널 분석에 대응하기 위한 장치 및 방법에 관한 것이다.
사물인터넷(Internet of Things, IoT) 환경에서는 다양한 장비에서 인터넷 통신이 가능해야 한다. 사물인터넷 통신환경에서도 보안적인 요소를 고려해야하기 때문에 다양한 장비에 알맞은 암호알고리즘이 필요하다.
다양한 사물인터넷 환경에 적용 가능한 알고리즘은 경량블록 암호 알고리즘이 될 것이다. 이러한 환경에서 사용되는 경량블록알고리즘은 부채널 분석에 대한 취약점이 존재할 수 있다.
즉, 이론적으로 안전하다고 증명된 암호알고리즘이라 하더라도 장비에 탑재되어 구동될 때 발생하는 부가적인 정보로 비밀 키를 찾아내는 부채널 분석(Side Channel Analysis, SCA)에 취약점이 존재한다.
이러한 부채널 분석은 1996년 최초로 Paul Kocher에 의해 소개 되었다. 부채널 분석기법중에 일반적으로 사용되는 상관전력분석(Correlation Power Analysis, CPA)은 전력과 추측 값 사이의 상관도를 이용하여 비밀 키를 찾아내는 방법이다.
이러한 기법들의 발전으로 다양한 장비에서 부채널 취약점이 확인되고 있다.
한편, 환경에 알맞은 알고리즘의 필요성으로 인하여 다양한 경량 블록 암호알고리즘이 제안되고 있다.
이론적인 안정성이 증명된 국산 경량 블록 암호알고리즘으로는 SEED, ARIA, HIGHT, LEA가 있다. 이러한 블록 암호알고리즘에도 부채널 분석에 취약점이 존재한다.
그럼에도 불구하고 현재에는 심각하게 고려되지 않고 있는 실정이다.
이러한 부채널 분석에 대한 다양한 방법들이 존재하며, 이를 통해 알고리즘 내에 비밀 키를 추출할 수 있다. 이와 같은 부채널 분석에 대응하기 위하여 경량 대칭키 암호 알고리즘을 분석에 안전하기 위한 대응기법을 고려한 설계가 필요하다.
한국등록특허번호 10-1362675호 한국공개특허번호 10-2012-0129045호
본 발명은 이와 같은 종래 기술의 HIGHT 알고리즘에서 부채널 분석의 문제를 해결하기 위한 것으로, 부울린 마스킹 대응기법을 HIGHT 알고리즘에 적용하여 안전성을 높일 수 있도록 한 HIGHT 부채널 분석에 대응하기 위한 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명은 B to A 변환을 하여 안전한 덧셈연산을 하고 다시 A to B 변환을 시키는 것으로 나머지 연산을 수행하는 덧셈연산을 포함하는 부울린 마스킹 대응기법을 HIGHT 알고리즘에 적용하는 HIGHT 부채널 분석에 대응하기 위한 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명은 부울린 마스킹을 위한 HIGHT의 MA 연산을 두 입력에 같은 8비트 마스킹 값 m0이 되도록 구성하고, MA 연산 후 출력 마스킹 값은 8비트 m1이 되도록 구성하여 효율성을 높인 HIGHT 부채널 분석에 대응하기 위한 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명은 HIGHT 마스킹 구조가 사전 연산 단계와 마스킹 적용 단계와 마스킹 라운드 과정 단계를 갖는 HIGHT 부채널 분석에 대응하기 위한 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명은 8비트 랜덤 값을 XOR 연산하여 마스킹을 적용하고, 각 라운드가 시작할 때와 끝날 때 같은 마스킹 값을 가지도록 구성하여 라운드 함수를 반복적으로 사용 가능하게 하고, 라운드 키에는 각 바이트에 랜덤 값 m0을 XOR 연산하여 사용하여 효율성을 높인 HIGHT 부채널 분석에 대응하기 위한 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
이와 같은 목적을 달성하기 위한 본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 장치는 입력된 평문에 마스크 값 생성부에서 생성된 랜덤 마스크 값을 각각 XOR 연산 수행하여 랜덤한 평문 바이트를 생성하는 마스크 값 적용부;마스킹된 평문 바이트를 마스킹된 화이트키와 각각 MA 연산을 하여 마스킹 값을 보정하거나, XOR 연산을 수행하는 초기변환 연산 수행부;마스킹된 중간 상태문에 함수 연산을 수행하고 마스킹된 중간값의 마스킹 값을 보정하는 시프트 연산 수행부;마스킹된 중간 상태문을 마스킹된 라운드 키와 XOR 연산 후 보정하거나, MA 연산을 실시하여 결과 값을 생성하는 라운드 키 연산 수행부;마스킹된 중간 상태문에 각각 마스킹된 상태문을 MA 연산 또는 XOR 연산을 하여 마스킹값을 보정하는 마스킹 값 보정부;마스킹된 중간 상태문을 마스킹 된 화이트 키와 MA 연산을 실시하여 덧셈 연산의 결과 값을 생성하거나, 마스킹 된 화이트 키와 XOR 연산을 실시하여 마스킹이 제거된 암호문 바이트를 생성하는 최종 변환 연산 수행부;각 바이트에 마스킹된 값을 해체하여 암호문 바이트를 생성하는 마스킹 값 해제부; 및 이전 단계에서 생성된 암호문을 출력하는 암호문 출력부;를 포함하는 것을 특징으로 한다.
다른 목적을 달성하기 위한 본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 방법은 입력된 평문에 랜덤 마스크 값을 각각 XOR 연산 수행하여 랜덤한 평문 바이트를 생성하는 제 1 단계;마스킹된 평문 바이트를 마스킹된 화이트키와 각각 MA 연산을 하여 마스킹 값을 보정하거나, XOR 연산을 수행하는 제 2 단계;마스킹된 중간 상태문에 함수 연산을 수행하고 마스킹된 중간값의 마스킹 값을 보정하는 제 3 단계;마스킹된 중간 상태문을 마스킹된 라운드 키와 XOR 연산 후 보정하거나, MA 연산을 실시하여 결과 값을 생성하는 제 4 단계;마스킹된 중간 상태문에 각각 마스킹된 상태문을 MA 연산 또는 XOR 연산을 하여 마스킹값을 보정하는 제 5 단계;마스킹된 중간 상태문을 마스킹 된 화이트 키와 MA 연산을 실시하여 덧셈 연산의 결과 값을 생성하거나, 마스킹 된 화이트 키와 XOR 연산을 실시하여 마스킹이 제거된 암호문 바이트를 생성하는 제 6 단계;각 바이트에 마스킹된 값을 해체하여 암호문 바이트를 생성하고, 이전 단계에서 생성된 암호문을 출력하는 제 7 단계;를 포함하는 것을 특징으로 한다.
이와 같은 본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 장치 및 방법은 다음과 같은 효과를 갖는다.
첫째, 부울린 마스킹 대응기법을 HIGHT 알고리즘에 적용하여 성능을 높일 수 있다.
둘째, B to A 변환을 하여 안전한 덧셈연산을 하고 다시 A to B 변환을 시키는 것으로 나머지 연산을 수행하는 덧셈연산을 포함하는 부울린 마스킹 대응기법을 HIGHT 알고리즘에 적용하여 HIGHT 부채널 분석에 안전하다.
셋째, 부울린 마스킹을 위한 HIGHT의 MA 연산을 두 입력에 같은 8비트 마스킹 값 m0이 되도록 구성하고, MA 연산 후 출력 마스킹 값은 8비트 m1이 되도록 구성하여 효율성을 높일 수 있다.
넷째, 8비트 랜덤 값을 XOR 연산하여 마스킹을 적용하고, 각 라운드가 시작할 때와 끝날 때 같은 마스킹 값을 가지도록 구성하여 라운드 함수를 반복적으로 사용 가능하게 하여 효율성을 높일 수 있다.
도 1은 본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 장치의 구성 블록도
도 2는 본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 장치의 상세 구성도
도 3은 마스크 값 적용부의 상세 구성도
도 4는 마스크 덧셈부의 상세 구성도
도 5는 마스킹 덧셈 연산 알고리즘을 나타낸 구성도
도 6a와 도 6b는 초기변환 연산 수행부의 상세 구성도
도 7a와 도 7b는 시프트 연산 수행부의 연산식을 나타낸 구성도
도 8a와 도 8b는 라운드 키 연산 수행부의 상세 구성도
도 9a와 도 9b는 마스킹 값 보정부의 상세 구성도
도 10a와 도 10b는 최종변환 연산 수행부의 상세 구성도
이하, 본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 장치 및 방법의 바람직한 실시 예에 관하여 상세히 설명하면 다음과 같다.
본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 장치 및 방법의 특징 및 이점들은 이하에서의 각 실시 예에 대한 상세한 설명을 통해 명백해질 것이다.
도 1은 본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 장치의 구성 블록도이고, 도 2는 본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 장치의 상세 구성도이다.
본 발명은 B to A 변환을 하여 안전한 덧셈연산을 하고 다시 A to B 변환을 시키는 것으로 나머지 연산을 수행하는 덧셈연산을 포함하는 부울린 마스킹 대응기법을 HIGHT 알고리즘에 적용하는 것이다.
또한, 부울린 마스킹을 위한 HIGHT의 MA 연산을 두 입력에 같은 8비트 마스킹 값 m0이 되도록 구성하고, MA 연산 후 출력 마스킹 값은 8비트 m1이 되도록 구성하여 효율성을 높인 것이다.
본 발명은 8비트 랜덤 값을 XOR 연산하여 마스킹을 적용하고, 각 라운드가 시작할 때와 끝날 때 같은 마스킹 값을 가지도록 구성하여 라운드 함수를 반복적으로 사용 가능하게 하고, 라운드 키에는 각 바이트에 랜덤 값 m0을 XOR 연산하여 사용하여 HIGHT 부채널 분석에 대응할 수 있도록 한 것이다.
먼저, HIFHT 알고리즘에 관하여 설명하면 다음과 같다.
CHES 2006에 발표된 HIGHT(HIGh security and light weigHT) 알고리즘은 적은 자원을 갖는 장비에 알맞게 설계된 경량 블록 암호알고리즘이다.
HIGHT는 64비트의 블록 크기를 가지며 128비트의 비밀 키를 가진다. HIGHT 알고리즘에서는 표 1에서와 같은 표기법을 사용한다.
Figure 112015031697196-pat00001
HIGHT 키 스케쥴은 각 바이트 별로 키가 유도되는 특징을 갖는다. 화이트 키는 수학식 1에서와 같이 나타낼 수 있다.
Figure 112015031697196-pat00002
그리고 라운드 키 유도를 위한 알고리즘은 표 2에서와 같다.
Figure 112015031697196-pat00003
표 2에서와 같이, 각 라운드 키의 바이트는 특정 위치의 비밀 키 바이트에 의해서 유도된다.
HIGHT는 암호화 과정에 연산이 덧셈, 로테이션, XOR 연산으로 구성된 ARX 구조이다. 전체구조는 초기변환, 32번의 라운드 과정, 최종변환과 같이 3단계로 구성된다.
HIGHT 전체 구조에서 초기변환은 수학식 2에서와 같이 표현된다.
Figure 112015031697196-pat00004
그리고 HIGHT 라운드 함수는 F0,F1가 있으며 수학식 3에서와 같이 표현된다.
Figure 112015031697196-pat00005
라운드 함수의 다른 연산은 8비트 덧셈연산과 비트단위 XOR 연산으로 이루어져 있다.
32번의 라운드 과정을 거친 상태문은 화이트 키를 이용한 최종변환 과정을 가지며 암호문이 생성된다.
이는 수학식 4에서와 같다.
Figure 112015031697196-pat00006
본 발명은 이와 같은 HIGHT 경량 블록암호 알고리즘에서 확인되는 부채널 분석 취약점을 해결하기 위하여 부울린 마스킹 대응기법을 HIGHT 알고리즘에 적용하는 것이다.
이를 위한 본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 장치는 도 1에서와 같이, 8비트 랜덤값 m0을 생성하고, F0[m0] = m1이 되는 값 생성, m0
Figure 112015031697196-pat00007
m1 = m2이 되는 값 생성, F1[m0] = m3이 되는 값을 생성하는 마스크 값 생성부(12)와, 마스크 값 생성부(12)에서 입력된 8비트 랜덤값 m0을, 평문 입력부(11)에서 입력된 평문 p0,p1,p2,p3,p4,p5,p6,p7에서 평문 p2,p6을 제외한 6개 바이트에 각각 XOR 연산 수행하여 랜덤한 평문 바이트를 생성하는 마스크 값 적용부(13)와, 마스킹된 평문 바이트 p0
Figure 112015031697196-pat00008
m0, p4
Figure 112015031697196-pat00009
m0에는 마스킹된 화이트키 WK0
Figure 112015031697196-pat00010
m0, WK2
Figure 112015031697196-pat00011
m0와 각각 MA 연산이 수행되고 수행 후 m1 마스킹값을 m0 마스킹 값으로 보정하고, 평문 바이트 p2,p6에는 마스킹 된 화이트 키 WK1
Figure 112015031697196-pat00012
m0, WK3
Figure 112015031697196-pat00013
m0와 XOR 연산을 수행하는 초기변환 연산 수행부(14)와, 마스킹된 중간상태문 s0
Figure 112015031697196-pat00014
m0, s4
Figure 112015031697196-pat00015
m0에는 F1 함수 연산을 수행하고, s2
Figure 112015031697196-pat00016
m0, s6
Figure 112015031697196-pat00017
m0에는 F0 함수 연산을 수행하고, 마스킹된 중간값 F0[s2]
Figure 112015031697196-pat00018
m1, F0[s6]
Figure 112015031697196-pat00019
m1을 마스킹 덧셈의 입력 마스킹 값을 같게 하기 위하여 m1 마스킹 값을 m0 마스킹 값으로 보정하는 시프트 연산 수행부(15)와, 마스킹된 중간상태문 F1[s0]
Figure 112015031697196-pat00020
m3, F1[s4]
Figure 112015031697196-pat00021
m3에는 마스킹된 라운드 키 RKr ,0
Figure 112015031697196-pat00022
m0,RKr ,2
Figure 112015031697196-pat00023
m0와 XOR 연산 후 덧셈의 입력 마스킹 값을 같게 하기 위하여 m0
Figure 112015031697196-pat00024
m3값을 m0으로 보정하고, 마스킹된 중간상태문 F0[s2]
Figure 112015031697196-pat00025
m0, F0[s6]
Figure 112015031697196-pat00026
m0에는 마스킹된 라운드 키 RKr ,1
Figure 112015031697196-pat00027
m0,RKr ,3
Figure 112015031697196-pat00028
m0와 MA 연산을 실시하여 m1 부울린 마스킹 값을 덧셈 연산하여 결과 값을 생성하는 라운드 키 연산 수행부(16)와, 마스킹된 중간 상태문 F1[s0]
Figure 112015031697196-pat00029
RKr ,0
Figure 112015031697196-pat00030
m0,F1[s4]
Figure 112015031697196-pat00031
RKr ,2
Figure 112015031697196-pat00032
m0에 각각 마스킹된 상태문 s1
Figure 112015031697196-pat00033
m0, s5
Figure 112015031697196-pat00034
m0과 MA 연산을 실시하고 마스킹값을 보정하여 s'2,s'6값을 생성하고, 마스킹된 중간 상태문 (F0[s2]+RKr ,1)
Figure 112015031697196-pat00035
m1, (F0[s6]+RKr ,3)
Figure 112015031697196-pat00036
m1에 각각 마스킹된 상태문 s3
Figure 112015031697196-pat00037
m0, s7
Figure 112015031697196-pat00038
m0과 XOR 연산을 실시하고 마스킹 값을 보정하여 s'4,s'0값을 생성하는 마스킹 값 보정부(17)와, 마스킹된 중간 상태문 s0
Figure 112015031697196-pat00039
m0, s4
Figure 112015031697196-pat00040
m0에 각각 마스킹 된 화이트 키 WK4
Figure 112015031697196-pat00041
m0,WK6
Figure 112015031697196-pat00042
m0과 MA 연산을 실시하여 m1 부울린 마스킹 값을 가지는 덧셈 연산의 결과 값을 생성하고, 마스킹된 중간 상태문 s2
Figure 112015031697196-pat00043
m0, s6
Figure 112015031697196-pat00044
m0에 각각 마스킹 된 화이트 키 WK5
Figure 112015031697196-pat00045
m0,WK7
Figure 112015031697196-pat00046
m0과 XOR 연산을 실시하여 마스킹이 제거된 암호문 바이트 c2,c6을 각각 생성하는 최종 변환 연산 수행부(18)와, 각 바이트에 마스킹된 값을 해체하여 c0,c1,c3,c4,c5,c7 암호문 바이트를 생성하는 마스킹 값 해제부(19)와, 이전 단계에서 생성된 암호문을 출력하는 암호문 출력부(20)를 포함한다.
그리고 본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 장치는 부울린 마스킹이 적용된 두 입력 X
Figure 112015031697196-pat00047
m0, Y
Figure 112015031697196-pat00048
m0을 안전하게 더하기 위하여 각각 부울린 마스킹을 산술 마스킹으로 변환을 실시하고 안전한 덧셈을 실시한 후 산술 마스킹을 부울린 마스킹으로 변환하여 덧셈의 결과값에 부울린 마스킹 m1값이 적용된 값을 생성하는 과정을 수행하는 마스킹 덧셈부(21)를 더 구비한다.
마스킹 덧셈부(21)에서의 연산 과정에서 입력은 8비트 X'(=X
Figure 112015031697196-pat00049
m0),Y'(=Y
Figure 112015031697196-pat00050
m0),m1이고, 출력은 8비트(x+y)
Figure 112015031697196-pat00051
m1이다.
이와 같은 출력을 갖도록 하기 위하여, (X-m0)=BtoA(X') 연산, (Y-m0)=BtoA(Y') 연산, ((x+y)-m1=((x-m0)-m1)+(y-m0))+2m0 연산, Return(x+y)
Figure 112015031697196-pat00052
m1=AtoB((x+y)-m1) 연산을 수행한다.
그리고 본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 방법은 도 2에서와 같이, 8비트 랜덤값 m0을 생성하고, F0[m0] =m1이 되는 값 생성, m0
Figure 112015031697196-pat00053
m1 = m2이 되는 값 생성, F1[m0] = m3이 되는 값을 생성하는 단계와, 마스크 값 생성부(12)에서 입력된 8비트 랜덤값 m0을, 평문 입력부(11)에서 입력된 평문 p2,p6을 제외한 6개 바이트에 각각 XOR 연산 수행하여 랜덤한 평문 바이트를 생성하는 단계와, 마스킹된 평문 바이트 p0
Figure 112015031697196-pat00054
m0, p4
Figure 112015031697196-pat00055
m0에는 마스킹된 화이트키 WK0
Figure 112015031697196-pat00056
m0, WK2
Figure 112015031697196-pat00057
m0와 각각 MA 연산이 수행되고 수행 후 m1 마스킹값을 m0 마스킹 값으로 보정하고, 평문 바이트 p2,p6에는 마스킹 된 화이트 키 WK1
Figure 112015031697196-pat00058
m0, WK3
Figure 112015031697196-pat00059
m0와 XOR 연산을 수행하는 단계와, 마스킹된 중간상태문 s0
Figure 112015031697196-pat00060
m0, s4
Figure 112015031697196-pat00061
m0에는 F1 함수 연산을 수행하고, s2
Figure 112015031697196-pat00062
m0, s6
Figure 112015031697196-pat00063
m0에는 F0 함수 연산을 수행하고, 마스킹된 중간값 F0[s2]
Figure 112015031697196-pat00064
m1, F0[s6]
Figure 112015031697196-pat00065
m1을 마스킹 덧셈의 입력 마스킹 값을 같게 하기 위하여 m1 마스킹 값을 m0 마스킹 값으로 보정하는 단계와, 마스킹된 중간상태문 F1[s0]
Figure 112015031697196-pat00066
m3, F1[s4]
Figure 112015031697196-pat00067
m3에는 마스킹된 라운드 키 RKr,0
Figure 112015031697196-pat00068
m0,RKr,2
Figure 112015031697196-pat00069
m0와 XOR 연산 후 덧셈의 입력 마스킹 값을 같게 하기 위하여 m0
Figure 112015031697196-pat00070
m3값을 m0으로 보정하고, 마스킹된 중간상태문 F0[s2]
Figure 112015031697196-pat00071
m0, F0[s6]
Figure 112015031697196-pat00072
m0에는 마스킹된 라운드 키 RKr,1
Figure 112015031697196-pat00073
m0,RKr,3
Figure 112015031697196-pat00074
m0와 MA 연산을 실시하여 m1 부울린 마스킹 값을 덧셈 연산하여 결과 값을 생성하는 단계와, 마스킹된 중간 상태문 F1[s0]
Figure 112015031697196-pat00075
RKr,0
Figure 112015031697196-pat00076
m0,F1[s4]
Figure 112015031697196-pat00077
RKr,2
Figure 112015031697196-pat00078
m0에 각각 마스킹된 상태문 s1
Figure 112015031697196-pat00079
m0, s5
Figure 112015031697196-pat00080
m0과 MA 연산을 실시하고 마스킹값을 보정하여 s'2,s'6값을 생성하고, 마스킹된 중간 상태문 (F0[s2]+RKr ,1)
Figure 112015031697196-pat00081
m1, (F0[s6]+RKr ,3)
Figure 112015031697196-pat00082
m1에 각각 마스킹된 상태문 s3
Figure 112015031697196-pat00083
m0, s7
Figure 112015031697196-pat00084
m0과 XOR 연산을 실시하고 마스킹 값을 보정하여 s'4,s'0값을 생성하는 단계와, 마스킹된 중간 상태문 s0
Figure 112015031697196-pat00085
m0, s4
Figure 112015031697196-pat00086
m0에 각각 마스킹 된 화이트 키 WK4
Figure 112015031697196-pat00087
m0,WK6
Figure 112015031697196-pat00088
m0과 MA 연산을 실시하여 m1 부울린 마스킹 값을 가지는 덧셈 연산의 결과 값을 생성하고, 마스킹된 중간 상태문 s2
Figure 112015031697196-pat00089
m0, s6
Figure 112015031697196-pat00090
m0에 각각 마스킹 된 화이트 키 WK5
Figure 112015031697196-pat00091
m0,WK7
Figure 112015031697196-pat00092
m0과 XOR 연산을 실시하여 마스킹이 제거된 암호문 바이트 c2,c6을 각각 생성하는 단계와, 각 바이트에 마스킹된 값을 해체하여 c0,c1,c3,c4,c5,c7 암호문 바이트를 생성하는 단계와, 이전 단계에서 생성된 암호문을 출력하는 단계를 포함한다.
이와 같은 본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 장치 및 방법에 관하여 구체적으로 설명하면 다음과 같다.
HIGHT 알고리즘은 ARX 구조로, 덧셈, 로테이션과 XOR 연산으로 구성되어 있다.
본 발명에서는 부채널 대응기법인 1차 부울린 마스킹을 적용하는데, 부울린 마스킹을 적용하기 위해서는 선형연산인 로테이션과 XOR 연산에서는 마스킹 값이 변화함에 따라 그 값을 저장하는 것으로 간단히 마스킹 값의 관리가 가능하다.
하지만 비선형연산인 덧셈연산에서는 다음과 같이 덧셈연산에 대한 마스킹 관리가 필요하다.
1차 부울린 마스킹에서 덧셈연산을 하기 위해서는 B to A 변환을 하여 안전한 덧셈연산을 한다. 덧셈연산을 한 이후에 다시 A to B 변환을 시키는 것으로 나머지 연산을 수행한다.
HIGHT에서 마스킹 덧셈연산(Masking Addition, MA)을 도식화하면 도 4 및 도 5에서와 같다.
HIGHT의 MA 연산은 도 4 및 도 5에서와 같이 두 입력에 같은 8비트 마스킹 값 m0이 되도록 구성하였고, MA 연산 후 출력 마스킹 값은 8비트 m1이 되도록 구성한다.
HIGHT 마스킹 구조는 사전 연산 단계와, 마스킹 적용 단계와, 마스킹 라운드 과정 단계를 갖는다.
기본 개념은 8비트 랜덤 값을 XOR 연산하여 마스킹을 적용한다.
또한, 각 라운드가 시작할 때와 끝날 때 같은 마스킹 값을 가지도록 구성하여 라운드 함수를 반복적으로 사용 가능하게 하고, 라운드 키에는 각 바이트에 랜덤 값 m0을 XOR 연산하여 사용한다.
사전연산단계에서 8비트 랜덤한 값 m0이 생성되고 선형연산에서 마스킹 값 관리를 위해 m1=F0[m0], m3=F1[m0]값을 저장한다. 또한, 중간에 마스킹 값의 변환을 위해 m2=m0
Figure 112015031697196-pat00093
m1을 저장한다.
그리고 마스킹 적용 단계에서 최초에는 평문 p2,p6을 제외한 각 바이트와 모든 라운드 키 각 바이트에 랜덤한 8비트 값 m0을 XOR하고 암호화 과정이 시작된다.
평문 2바이트 p2,p6에 마스킹을 적용하지 않는 이유는 초기변환과정에서 각각 WK0, WK3가 XOR 연산 되면서 마스킹이 적용되기 때문이다.
또한 p0,p4는 화이트 키 덧셈 후 마스킹 변환 연산이 추가된다.
이는 도 6a와 도 6b에서와 같이 표현되고, 초기변환 후에 모든 바이트를 m0 마스킹 값으로 유지하기 위하여 MA연산이 일어난 바이트는 m2를 추가적으로 XOR 연산한다.
그리고 마스킹 라운드 단계에서, HIGHT 마스킹 라운드는 입력 마스킹과 출력 마스킹이 m0로 같게 구성한다.
선형연산 중에는 마스킹 값이 제거되지 않도록 한다. 비선형연산(덧셈)은 입력 마스킹 값을 같게 하여 구성한다.
도 8a와 도 8b에서 보면, F1을 거치며 변형된 마스킹 값 m3는 키 XOR 연산 후에 m3를 연산하여 MA입력 마스킹 값을 m0로 유지한다. MA연산 후에는 m2를 XOR 연산하여 m0로 마스킹 값을 유지한다.
F0을 거쳐 변형된 마스킹 값 m1은 m2를 XOR 연산하여 MA 입력 마스킹 값을 m0로 유지한다. 그 후 s3와 연산하여 라운드 연산이 끝나면 m1을 XOR 연산하여 마스킹 보정 과정을 거친다.
본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 장치 및 방법에서 각 구성 블록의 연산 동작을 구체적으로 설명하면 다음과 같다.
먼저, 마스크 값 생성부(12)는 8비트 랜덤값 m0을 생성하고, F0[m0] =m1이 되는 값 생성, m0
Figure 112015031697196-pat00094
m1 = m2이 되는 값 생성, F1[m0] = m3이 되는 값을 생성한다.
그리고 마스크 값 적용부(13)는 마스크 값 생성부(12)에서 입력된 8비트 랜덤값 m0을, 평문 입력부(11)에서 입력된 평문 p0,p1,p2,p3,p4,p5,p6,p7에서 평문 p2,p6을 제외한 6개 바이트에 각각 XOR 연산 수행하여 랜덤한 평문 바이트를 생성한다.
도 3은 마스크 값 적용부의 상세 구성도이다.
그리고 마스킹 덧셈부(21)에서의 연산 과정을 설명하면 다음과 같다.
도 4는 마스크 덧셈부의 상세 구성도이고, 도 5는 마스킹 덧셈 연산 알고리즘을 나타낸 구성도이다.
마스킹 덧셈부(21)에서의 연산 과정은 부울린 마스킹이 적용된 두 입력 X
Figure 112015031697196-pat00095
m0, Y
Figure 112015031697196-pat00096
m0을 안전하게 더하기 위하여 각각 부울린 마스킹을 산술 마스킹으로 변환을 실시하고 안전한 덧셈을 실시한 후 산술 마스킹을 부울린 마스킹으로 변환하여 덧셈의 결과값에 부울린 마스킹 m1값이 적용된 값을 생성하는 과정을 수행한다.
마스킹 덧셈부(21)에서의 연산 과정에서 입력은 8비트 X'(=X
Figure 112015031697196-pat00097
m0),Y'(=Y
Figure 112015031697196-pat00098
m0),m1이고, 출력은 8비트(x+y)
Figure 112015031697196-pat00099
m1이다.
이와 같은 출력을 갖도록 하기 위하여, (X-m0)=BtoA(X') 연산, (Y-m0)=BtoA(Y') 연산, ((x+y)-m1=((x-m0)-m1)+(y-m0))+2m0 연산, Return(x+y)
Figure 112015031697196-pat00100
m1=AtoB((x+y)-m1) 연산을 수행한다.
그리고 초기변환 연산 수행부(14)에서의 연산 과정은 다음과 같다.
도 6a와 도 6b는 초기변환 연산 수행부의 상세 구성도이다.
p1
Figure 112015031697196-pat00101
m0, p3
Figure 112015031697196-pat00102
m0,p5
Figure 112015031697196-pat00103
m0,p7
Figure 112015031697196-pat00104
m0와 같이 홀수 번째 마스킹된 평문 바이트에는 별도의 연산이 수행되지 않고, 마스킹된 평문 바이트 p0
Figure 112015031697196-pat00105
m0, p4
Figure 112015031697196-pat00106
m0에는 마스킹된 화이트키 WK0
Figure 112015031697196-pat00107
m0, WK2
Figure 112015031697196-pat00108
m0와 각각 MA 연산이 수행되고 수행 후 m1 마스킹값을 m0 마스킹 값으로 보정한다.
이를 위하여, MA[p0
Figure 112015031697196-pat00109
m0, WK0
Figure 112015031697196-pat00110
m0]=p0+WK0
Figure 112015031697196-pat00111
m1, p0+WK0
Figure 112015031697196-pat00112
m1
Figure 112015031697196-pat00113
m2= p0+WK0
Figure 112015031697196-pat00114
m0 연산, MA[p2
Figure 112015031697196-pat00115
m0, WK1
Figure 112015031697196-pat00116
m0]=p2+WK1
Figure 112015031697196-pat00117
m1, p2+WK1
Figure 112015031697196-pat00118
m1
Figure 112015031697196-pat00119
m2= p2+WK1
Figure 112015031697196-pat00120
m0 연산을 수행한다.
그리고 평문 바이트 p2,p6에는 마스킹 된 화이트 키 WK1
Figure 112015031697196-pat00121
m0, WK3
Figure 112015031697196-pat00122
m0와 XOR 연산을 수행한다.
이를 위하여, p2
Figure 112015031697196-pat00123
(WK1
Figure 112015031697196-pat00124
m0)=(p2
Figure 112015031697196-pat00125
WK1)
Figure 112015031697196-pat00126
m0 연산, p6
Figure 112015031697196-pat00127
(WK3
Figure 112015031697196-pat00128
m0)=(p6
Figure 112015031697196-pat00129
WK3)
Figure 112015031697196-pat00130
m0 연산을 수행한다.
그리고 시프트 연산 수행부(15)에서의 연산 과정은 다음과 같다.
도 7a와 도 7b는 시프트 연산 수행부의 연산식을 나타낸 구성도이다.
마스킹된 중간상태문 s0
Figure 112015031697196-pat00131
m0, s4
Figure 112015031697196-pat00132
m0에는 F1 함수 연산을 수행한다.
이를 위하여 F1[s0
Figure 112015031697196-pat00133
m0]은 선형연산이므로 F1[s0]
Figure 112015031697196-pat00134
F1[m0] 분리가 가능하고 이는 F1[s0]
Figure 112015031697196-pat00135
m3와 같은 값을 생성한다.
그리고 F1[s4
Figure 112015031697196-pat00136
m0]은 선형연산이므로 F1[s4]
Figure 112015031697196-pat00137
F1[m0] 분리가 가능하고 이는 F1[s4]
Figure 112015031697196-pat00138
m3와 같은 값을 생성한다.
그리고 마스킹된 중간상태문 s2
Figure 112015031697196-pat00139
m0, s6
Figure 112015031697196-pat00140
m0에는 F0 함수 연산을 수행한다.
이를 위하여 F0[s2
Figure 112015031697196-pat00141
m0]은 선형연산이므로 F0[s2]
Figure 112015031697196-pat00142
F0[m0] 분리가 가능하고 이는 F0[s2]
Figure 112015031697196-pat00143
m1와 같은 값을 생성한다.
그리고 F0[s6
Figure 112015031697196-pat00144
m0]은 선형연산이므로 F0[s6]
Figure 112015031697196-pat00145
F0[m0] 분리가 가능하고 이는 F0[s6]
Figure 112015031697196-pat00146
m1와 같은 값을 생성한다.
그리고 마스킹된 중간값 F0[s2]
Figure 112015031697196-pat00147
m1, F0[s6]
Figure 112015031697196-pat00148
m1을 마스킹 덧셈의 입력 마스킹 값을 같게 하기 위하여 m1 마스킹 값을 m0 마스킹 값으로 보정한다.
이를 위하여, F0[s2]
Figure 112015031697196-pat00149
m1
Figure 112015031697196-pat00150
m2=F0[s2]
Figure 112015031697196-pat00151
m0 연산, F0[s6]
Figure 112015031697196-pat00152
m1
Figure 112015031697196-pat00153
m2=F0[s6]
Figure 112015031697196-pat00154
m0 연산을 수행한다.
그리고 라운드 키 연산 수행부(16)에서의 연산 과정은 다음과 같다.
도 8a와 도 8b는 라운드 키 연산 수행부의 상세 구성도이다.
마스킹된 중간상태문 F1[s0]
Figure 112015031697196-pat00155
m3, F1[s4]
Figure 112015031697196-pat00156
m3에는 마스킹된 라운드 키 RKr,0
Figure 112015031697196-pat00157
m0,RKr,2
Figure 112015031697196-pat00158
m0와 XOR 연산 후 덧셈의 입력 마스킹 값을 같게 하기 위하여 m0
Figure 112015031697196-pat00159
m3값을 m0으로 보정한다.
이를 위하여, ((F1[s0]
Figure 112015031697196-pat00160
m3)
Figure 112015031697196-pat00161
(RKr ,0
Figure 112015031697196-pat00162
m0))
Figure 112015031697196-pat00163
m3=F1[s0]
Figure 112015031697196-pat00164
RKr ,0
Figure 112015031697196-pat00165
m0 연산, ((F1[s4]
Figure 112015031697196-pat00166
m3)
Figure 112015031697196-pat00167
(RKr,2
Figure 112015031697196-pat00168
m0))
Figure 112015031697196-pat00169
m3=F1[s4]
Figure 112015031697196-pat00170
RKr,2
Figure 112015031697196-pat00171
m0 연산을 수행한다.
그리고 마스킹된 중간상태문 F0[s2]
Figure 112015031697196-pat00172
m0, F0[s6]
Figure 112015031697196-pat00173
m0에는 마스킹된 라운드 키 RKr,1
Figure 112015031697196-pat00174
m0,RKr,3
Figure 112015031697196-pat00175
m0와 MA 연산을 실시하여 m1 부울린 마스킹 값을 덧셈 연산하여 결과 값을 생성한다.
이를 위하여,
MA[F0[s2]
Figure 112015031697196-pat00176
m0,RKr ,1
Figure 112015031697196-pat00177
m0]=F0[s2]+RKr ,1
Figure 112015031697196-pat00178
m1 연산,
MA[F0[s6]
Figure 112015031697196-pat00179
m0,RKr ,3
Figure 112015031697196-pat00180
m0]=F0[s6]+RKr ,3
Figure 112015031697196-pat00181
m1 연산을 수행한다.
그리고 마스킹 값 보정부(17)에서의 연산 과정은 다음과 같다.
도 9a와 도 9b는 마스킹 값 보정부의 상세 구성도이다.
마스킹된 중간 상태문 F1[s0]
Figure 112015031697196-pat00182
RKr ,0
Figure 112015031697196-pat00183
m0,F1[s4]
Figure 112015031697196-pat00184
RKr ,2
Figure 112015031697196-pat00185
m0에 각각 마스킹된 상태문 s1
Figure 112015031697196-pat00186
m0, s5
Figure 112015031697196-pat00187
m0과 MA 연산을 실시하고 마스킹값을 보정하여 s'2,s'6값을 생성한다.
MA[F1[s0]
Figure 112015031697196-pat00188
RKr ,0
Figure 112015031697196-pat00189
m0,s1
Figure 112015031697196-pat00190
m0]
Figure 112015031697196-pat00191
m2=((F1[s0]
Figure 112015031697196-pat00192
RKr ,0)+s1)
Figure 112015031697196-pat00193
m1
Figure 112015031697196-pat00194
m2=((F1[s0]
Figure 112015031697196-pat00195
RKr ,0)+s1)
Figure 112015031697196-pat00196
m0=s'2 연산,
MA[F1[s4]
Figure 112015031697196-pat00197
RKr ,2
Figure 112015031697196-pat00198
m0,s5
Figure 112015031697196-pat00199
m0]
Figure 112015031697196-pat00200
m2=((F1[s4]
Figure 112015031697196-pat00201
RKr ,2+s5)
Figure 112015031697196-pat00202
m1
Figure 112015031697196-pat00203
m2=((F1[s4]
Figure 112015031697196-pat00204
RKr ,2+s5)
Figure 112015031697196-pat00205
m0=s'6연산을 수행한다.
그리고 마스킹된 중간 상태문 (F0[s2]+RKr ,1)
Figure 112015031697196-pat00206
m1, (F0[s6]+RKr ,3)
Figure 112015031697196-pat00207
m1에 각각 마스킹된 상태문 s3
Figure 112015031697196-pat00208
m0, s7
Figure 112015031697196-pat00209
m0과 XOR 연산을 실시하고 마스킹 값을 보정하여 s'4,s'0값을 생성한다.
이를 위하여, (F0[s2]+RKr ,1)
Figure 112015031697196-pat00210
m1
Figure 112015031697196-pat00211
(s3
Figure 112015031697196-pat00212
m0)
Figure 112015031697196-pat00213
m1=(F0[s2]+RKr ,1
Figure 112015031697196-pat00214
s3)
Figure 112015031697196-pat00215
m0)=s'4 연산,
(F0[s6]+RKr ,3)
Figure 112015031697196-pat00216
m1
Figure 112015031697196-pat00217
(s7
Figure 112015031697196-pat00218
m0)
Figure 112015031697196-pat00219
m1=(F0[s6]+RKr ,3
Figure 112015031697196-pat00220
s7)
Figure 112015031697196-pat00221
m0=s'0 연산을 수행한다.
이와 같은 시프트 연산 수행부(15),라운드 키 연산 수행부(16),마스킹 값 보정부(17)에서의 연산에서 32회 라운드가 반복될 때마다 다른 라운드 키가 사용된다.
그리고 최종변환 연산 수행부(18)에서의 연산 과정은 다음과 같다.
도 10a와 도 10b는 최종변환 연산 수행부의 상세 구성도이다.
마스킹된 중간 상태문 s0
Figure 112015031697196-pat00222
m0, s4
Figure 112015031697196-pat00223
m0에 각각 마스킹 된 화이트 키 WK4
Figure 112015031697196-pat00224
m0,WK6
Figure 112015031697196-pat00225
m0과 MA 연산을 실시하여 m1 부울린 마스킹 값을 가지는 덧셈 연산의 결과 값을 생성한다.
이를 위하여,
MA[s0
Figure 112015031697196-pat00226
m0,WK4
Figure 112015031697196-pat00227
m0]=(s0+WK4)
Figure 112015031697196-pat00228
m1 연산, MA[s4
Figure 112015031697196-pat00229
m0,WK6
Figure 112015031697196-pat00230
m0]=(s4+WK6)
Figure 112015031697196-pat00231
m1 연산을 수행한다.
그리고 마스킹된 중간 상태문 s2
Figure 112015031697196-pat00232
m0, s6
Figure 112015031697196-pat00233
m0에 각각 마스킹 된 화이트 키 WK5
Figure 112015031697196-pat00234
m0,WK7
Figure 112015031697196-pat00235
m0과 XOR 연산을 실시하여 마스킹이 제거된 암호문 바이트 c2,c6을 각각 생성한다.
이를 위하여,
(s2
Figure 112015031697196-pat00236
m0)
Figure 112015031697196-pat00237
(WK5
Figure 112015031697196-pat00238
m0)=s2
Figure 112015031697196-pat00239
WK5=c2 연산, (s6
Figure 112015031697196-pat00240
m0)
Figure 112015031697196-pat00241
(WK7
Figure 112015031697196-pat00242
m0)=s6
Figure 112015031697196-pat00243
WK7=c6 연산을 수행한다.
그리고 마스킹 값 해제부(19)에서의 연산 과정은 다음과 같다.
각 바이트에 마스킹된 값을 해체하여 c0,c1,c3,c4,c5,c7 암호문 바이트를 생성한다.
이를 위하여,
(si
Figure 112015031697196-pat00244
m0)
Figure 112015031697196-pat00245
m0=ci,i=1,3,5,7 연산, ((s0+WK4)
Figure 112015031697196-pat00246
m1)
Figure 112015031697196-pat00247
m1=c0 연산, ((s4+WK6)
Figure 112015031697196-pat00248
m1)
Figure 112015031697196-pat00249
m1=c4 연산을 수행한다.
그리고 암호문 출력부(20)는 이전 단계에서 생성된 암호문을 출력하는 것이다.
이상에서 설명한 본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 장치 및 방법은 B to A 변환을 하여 안전한 덧셈연산을 하고 다시 A to B 변환을 시키는 것으로 나머지 연산을 수행하는 덧셈연산을 포함하는 부울린 마스킹 대응기법을 HIGHT 알고리즘에 적용하는 것이다.
또한, 8비트 랜덤 값을 XOR 연산하여 마스킹을 적용하고, 각 라운드가 시작할 때와 끝날 때 같은 마스킹 값을 가지도록 구성하여 라운드 함수를 반복적으로 사용 가능하게 하고, 라운드 키에는 각 바이트에 랜덤 값 m0을 XOR 연산하여 사용하여 HIGHT 부채널 분석에 대응할 수 있도록 한 것이다.
이상에서의 설명에서와 같이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 본 발명이 구현되어 있음을 이해할 수 있을 것이다.
그러므로 명시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 하고, 본 발명의 범위는 전술한 설명이 아니라 특허청구 범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
11. 평문 입력부 12. 마스크 값 생성부
13. 마스크 값 적용부 14. 초기변환 연산 수행부
15. 시프트 연산 수행부 16. 라운드 키 연산 수행부
17. 마스킹 값 보정부 18. 최종 변환 연산 수행부
19. 마스킹 값 해제부 20. 암호문 출력부
21. 마스킹 덧셈부

Claims (33)

  1. 입력된 평문에 마스크 값 생성부에서 생성된 랜덤 마스크 값을 각각 XOR 연산 수행하여 랜덤한 평문 바이트를 생성하는 마스크 값 적용부;
    마스킹된 평문 바이트를 마스킹된 화이트키와 각각 MA 연산을 하여 마스킹 값을 보정하거나, XOR 연산을 수행하는 초기변환 연산 수행부;
    마스킹된 중간 상태문에 함수 연산을 수행하고 마스킹된 중간값의 마스킹 값을 보정하는 시프트 연산 수행부;
    마스킹된 중간 상태문을 마스킹된 라운드 키와 XOR 연산 후 보정하거나, MA 연산을 실시하여 결과 값을 생성하는 라운드 키 연산 수행부;
    마스킹된 중간 상태문에 각각 마스킹된 상태문을 MA 연산 또는 XOR 연산을 하여 마스킹값을 보정하는 마스킹 값 보정부;
    마스킹된 중간 상태문을 마스킹 된 화이트 키와 MA 연산을 실시하여 덧셈 연산의 결과 값을 생성하거나, 마스킹 된 화이트 키와 XOR 연산을 실시하여 마스킹이 제거된 암호문 바이트를 생성하는 최종 변환 연산 수행부;
    각 바이트에 마스킹된 값을 해체하여 암호문 바이트를 생성하는 마스킹 값 해제부; 및 이전 단계에서 생성된 암호문을 출력하는 암호문 출력부;를 포함하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 장치.
  2. 제 1 항에 있어서, 부울린 마스킹이 적용된 두 입력 X
    Figure 112015031697196-pat00250
    m0, Y
    Figure 112015031697196-pat00251
    m0을,
    각각 부울린 마스킹을 산술 마스킹으로 변환을 실시하고,
    덧셈을 실시한 후 산술 마스킹을 부울린 마스킹으로 변환하여 덧셈의 결과값에 부울린 마스킹 m1값이 적용된 값을 생성하는 과정을 수행하는 마스킹 덧셈부를 더 구비하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 장치.
  3. 제 2 항에 있어서, 마스킹 덧셈부에서의 연산 과정에서 입력은 8비트 X'(=X
    Figure 112015031697196-pat00252
    m0),Y'(=Y
    Figure 112015031697196-pat00253
    m0),m1이고, 출력은 8비트(x+y)
    Figure 112015031697196-pat00254
    m1이고,
    (X-m0)=BtoA(X') 연산, (Y-m0)=BtoA(Y') 연산, ((x+y)-m1=((x-m0)-m1)+(y-m0))+2m0 연산, Return(x+y)
    Figure 112015031697196-pat00255
    m1=AtoB((x+y)-m1) 연산을 수행하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 장치.
  4. 제 1 항에 있어서, 마스크 값 생성부는,
    8비트 랜덤값 m0을 생성하고, F0[m0] =m1이 되는 값 생성, m0
    Figure 112015031697196-pat00256
    m1 = m2이 되는 값 생성, F1[m0] = m3이 되는 값을 생성하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 장치.
  5. 제 1 항에 있어서, 마스크 값 적용부는,
    마스크 값 생성부에서 입력된 8비트 랜덤값 m0을, 평문 입력부에서 입력된 평문 p0,p1,p2,p3,p4,p5,p6,p7에서 평문 p2,p6을 제외한 6개 바이트에 각각 XOR 연산 수행하여 랜덤한 평문 바이트를 생성하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 장치.
  6. 제 1 항에 있어서, 초기변환 연산 수행부는,
    마스킹된 평문 바이트 p0
    Figure 112015031697196-pat00257
    m0, p4
    Figure 112015031697196-pat00258
    m0에는 마스킹된 화이트키 WK0
    Figure 112015031697196-pat00259
    m0, WK2
    Figure 112015031697196-pat00260
    m0와 각각 MA 연산이 수행되고 수행 후 m1 마스킹값을 m0 마스킹 값으로 보정하고,
    평문 바이트 p2,p6에는 마스킹 된 화이트 키 WK1
    Figure 112015031697196-pat00261
    m0, WK3
    Figure 112015031697196-pat00262
    m0와 XOR 연산을 수행하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 장치.
  7. 제 1 항에 있어서, 시프트 연산 수행부는,
    마스킹된 중간상태문 s0
    Figure 112015031697196-pat00263
    m0, s4
    Figure 112015031697196-pat00264
    m0에는 F1 함수 연산을 수행하고,
    s2
    Figure 112015031697196-pat00265
    m0, s6
    Figure 112015031697196-pat00266
    m0에는 F0 함수 연산을 수행하고,
    마스킹된 중간값 F0[s2]
    Figure 112015031697196-pat00267
    m1, F0[s6]
    Figure 112015031697196-pat00268
    m1을 마스킹 덧셈의 입력 마스킹 값을 같게 하기 위하여 m1 마스킹 값을 m0 마스킹 값으로 보정하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 장치.
  8. 제 1 항에 있어서, 라운드 키 연산 수행부는,
    마스킹된 중간상태문 F1[s0]
    Figure 112015031697196-pat00269
    m3, F1[s4]
    Figure 112015031697196-pat00270
    m3에는 마스킹된 라운드 키 RKr,0
    Figure 112015031697196-pat00271
    m0,RKr,2
    Figure 112015031697196-pat00272
    m0와 XOR 연산 후 덧셈의 입력 마스킹 값을 같게 하기 위하여 m0
    Figure 112015031697196-pat00273
    m3값을 m0으로 보정하고,
    마스킹된 중간상태문 F0[s2]
    Figure 112015031697196-pat00274
    m0, F0[s6]
    Figure 112015031697196-pat00275
    m0에는 마스킹된 라운드 키 RKr,1
    Figure 112015031697196-pat00276
    m0,RKr,3
    Figure 112015031697196-pat00277
    m0와 MA 연산을 실시하여 m1 부울린 마스킹 값을 덧셈 연산하여 결과 값을 생성하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 장치.
  9. 제 1 항에 있어서, 마스킹 값 보정부는,
    마스킹된 중간 상태문 F1[s0]
    Figure 112015031697196-pat00278
    RKr ,0
    Figure 112015031697196-pat00279
    m0,F1[s4]
    Figure 112015031697196-pat00280
    RKr ,2
    Figure 112015031697196-pat00281
    m0에 각각 마스킹된 상태문 s1
    Figure 112015031697196-pat00282
    m0, s5
    Figure 112015031697196-pat00283
    m0과 MA 연산을 실시하고 마스킹값을 보정하여 s'2,s'6값을 생성하고,
    마스킹된 중간 상태문 (F0[s2]+RKr ,1)
    Figure 112015031697196-pat00284
    m1, (F0[s6]+RKr ,3)
    Figure 112015031697196-pat00285
    m1에 각각 마스킹된 상태문 s3
    Figure 112015031697196-pat00286
    m0, s7
    Figure 112015031697196-pat00287
    m0과 XOR 연산을 실시하고 마스킹 값을 보정하여 s'4,s'0값을 생성하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 장치.
  10. 제 1 항에 있어서, 최종 변환 연산 수행부는,
    마스킹된 중간 상태문 s0
    Figure 112015031697196-pat00288
    m0, s4
    Figure 112015031697196-pat00289
    m0에 각각 마스킹 된 화이트 키 WK4
    Figure 112015031697196-pat00290
    m0,WK6
    Figure 112015031697196-pat00291
    m0과 MA 연산을 실시하여 m1 부울린 마스킹 값을 가지는 덧셈 연산의 결과 값을 생성하고,
    마스킹된 중간 상태문 s2
    Figure 112015031697196-pat00292
    m0, s6
    Figure 112015031697196-pat00293
    m0에 각각 마스킹 된 화이트 키 WK5
    Figure 112015031697196-pat00294
    m0,WK7
    Figure 112015031697196-pat00295
    m0과 XOR 연산을 실시하여 마스킹이 제거된 암호문 바이트 c2,c6을 각각 생성하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 장치.
  11. 제 1 항에 있어서, 마스킹 값 해제부는,
    각 바이트에 마스킹된 값을 해체하여 c0,c1,c3,c4,c5,c7 암호문 바이트를 생성하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 장치.
  12. 제 1 항에 있어서, 시프트 연산 수행부,라운드 키 연산 수행부,마스킹 값 보정부에서의 연산에서 32회 라운드가 반복될 때마다 다른 라운드 키가 사용되는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 장치.
  13. 입력된 평문에 랜덤 마스크 값을 각각 XOR 연산 수행하여 랜덤한 평문 바이트를 생성하는 제 1 단계;
    마스킹된 평문 바이트를 마스킹된 화이트키와 각각 MA 연산을 하여 마스킹 값을 보정하거나, XOR 연산을 수행하는 제 2 단계;
    마스킹된 중간 상태문에 함수 연산을 수행하고 마스킹된 중간값의 마스킹 값을 보정하는 제 3 단계;
    마스킹된 중간 상태문을 마스킹된 라운드 키와 XOR 연산 후 보정하거나, MA 연산을 실시하여 결과 값을 생성하는 제 4 단계;
    마스킹된 중간 상태문에 각각 마스킹된 상태문을 MA 연산 또는 XOR 연산을 하여 마스킹값을 보정하는 제 5 단계;
    마스킹된 중간 상태문을 마스킹 된 화이트 키와 MA 연산을 실시하여 덧셈 연산의 결과 값을 생성하거나, 마스킹 된 화이트 키와 XOR 연산을 실시하여 마스킹이 제거된 암호문 바이트를 생성하는 제 6 단계;
    각 바이트에 마스킹된 값을 해체하여 암호문 바이트를 생성하고, 이전 단계에서 생성된 암호문을 출력하는 제 7 단계;를 포함하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  14. 제 13 항에 있어서, 부울린 마스킹이 적용된 두 입력 X
    Figure 112015031697196-pat00296
    m0, Y
    Figure 112015031697196-pat00297
    m0을,
    각각 부울린 마스킹을 산술 마스킹으로 변환을 실시하고,
    덧셈을 실시한 후 산술 마스킹을 부울린 마스킹으로 변환하여 덧셈의 결과값에 부울린 마스킹 m1값이 적용된 값을 생성하는 과정을 수행하는 단계를 더 포함하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  15. 제 14 항에 있어서, 입력은 8비트 X'(=X
    Figure 112015031697196-pat00298
    m0),Y'(=Y
    Figure 112015031697196-pat00299
    m0),m1이고, 출력은 8비트(x+y)
    Figure 112015031697196-pat00300
    m1이고,
    (X-m0)=BtoA(X') 연산, (Y-m0)=BtoA(Y') 연산, ((x+y)-m1=((x-m0)-m1)+(y-m0))+2m0 연산, Return(x+y)
    Figure 112015031697196-pat00301
    m1=AtoB((x+y)-m1) 연산을 수행하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  16. 제 13 항에 있어서, 제 1 단계에서,
    랜덤 마스크값을 8비트 랜덤값 m0을 생성하고, F0[m0] =m1이 되는 값 생성, m0
    Figure 112015031697196-pat00302
    m1 = m2이 되는 값 생성, F1[m0] = m3이 되는 값을 생성하여 사용하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  17. 제 13 항에 있어서, 제 1 단계에서,
    입력된 8비트 랜덤값 m0을, 평문 입력부에서 입력된 평문 p0,p1,p2,p3,p4,p5,p6,p7에서 평문 p2,p6을 제외한 6개 바이트에 각각 XOR 연산 수행하여 랜덤한 평문 바이트를 생성하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  18. 제 13 항에 있어서, 제 2 단계에서,
    마스킹된 평문 바이트 p0
    Figure 112015031697196-pat00303
    m0, p4
    Figure 112015031697196-pat00304
    m0에는 마스킹된 화이트키 WK0
    Figure 112015031697196-pat00305
    m0, WK2
    Figure 112015031697196-pat00306
    m0와 각각 MA 연산이 수행되고 수행 후 m1 마스킹값을 m0 마스킹 값으로 보정하고,
    평문 바이트 p2,p6에는 마스킹 된 화이트 키 WK1
    Figure 112015031697196-pat00307
    m0, WK3
    Figure 112015031697196-pat00308
    m0와 XOR 연산을 수행하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  19. 제 18 항에서, MA 연산은,
    MA[p0
    Figure 112015031697196-pat00309
    m0, WK0
    Figure 112015031697196-pat00310
    m0]=p0+WK0
    Figure 112015031697196-pat00311
    m1, p0+WK0
    Figure 112015031697196-pat00312
    m1
    Figure 112015031697196-pat00313
    m2= p0+WK0
    Figure 112015031697196-pat00314
    m0 연산,
    MA[p2
    Figure 112015031697196-pat00315
    m0, WK1
    Figure 112015031697196-pat00316
    m0]=p2+WK1
    Figure 112015031697196-pat00317
    m1, p2+WK1
    Figure 112015031697196-pat00318
    m1
    Figure 112015031697196-pat00319
    m2= p2+WK1
    Figure 112015031697196-pat00320
    m0 연산인 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  20. 제 18 항에서, XOR 연산은,
    p2
    Figure 112015031697196-pat00321
    (WK1
    Figure 112015031697196-pat00322
    m0)=(p2
    Figure 112015031697196-pat00323
    WK1)
    Figure 112015031697196-pat00324
    m0 연산, p6
    Figure 112015031697196-pat00325
    (WK3
    Figure 112015031697196-pat00326
    m0)=(p6
    Figure 112015031697196-pat00327
    WK3)
    Figure 112015031697196-pat00328
    m0 연산인 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  21. 제 13 항에 있어서, 제 3 단계에서,
    마스킹된 중간상태문 s0
    Figure 112015031697196-pat00329
    m0, s4
    Figure 112015031697196-pat00330
    m0에는 F1 함수 연산을 수행하고,
    s2
    Figure 112015031697196-pat00331
    m0, s6
    Figure 112015031697196-pat00332
    m0에는 F0 함수 연산을 수행하고,
    마스킹된 중간값 F0[s2]
    Figure 112015031697196-pat00333
    m1, F0[s6]
    Figure 112015031697196-pat00334
    m1을 마스킹 덧셈의 입력 마스킹 값을 같게 하기 위하여 m1 마스킹 값을 m0 마스킹 값으로 보정하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  22. 제 21 항에 있어서, F1 함수 연산을,
    F1[s0
    Figure 112015031697196-pat00335
    m0]은 선형연산이므로 F1[s0]
    Figure 112015031697196-pat00336
    F1[m0] 분리가 가능하고 이는 F1[s0]
    Figure 112015031697196-pat00337
    m3와 같은 값을 생성하고,
    F1[s4
    Figure 112015031697196-pat00338
    m0]은 선형연산이므로 F1[s4]
    Figure 112015031697196-pat00339
    F1[m0] 분리가 가능하고 이는 F1[s4]
    Figure 112015031697196-pat00340
    m3와 같은 값을 생성하여 실행하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  23. 제 21 항에 있어서, F0 함수 연산을,
    F0[s2
    Figure 112015031697196-pat00341
    m0]은 선형연산이므로 F0[s2]
    Figure 112015031697196-pat00342
    F0[m0] 분리가 가능하고 이는 F0[s2]
    Figure 112015031697196-pat00343
    m1와 같은 값을 생성하고,
    F0[s6
    Figure 112015031697196-pat00344
    m0]은 선형연산이므로 F0[s6]
    Figure 112015031697196-pat00345
    F0[m0] 분리가 가능하고 이는 F0[s6]
    Figure 112015031697196-pat00346
    m1와 같은 값을 생성하여 실행하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  24. 제 21 항에 있어서, m1 마스킹 값을 m0 마스킹 값으로 보정하기 위하여,
    F0[s2]
    Figure 112015031697196-pat00347
    m1
    Figure 112015031697196-pat00348
    m2=F0[s2]
    Figure 112015031697196-pat00349
    m0 연산, F0[s6]
    Figure 112015031697196-pat00350
    m1
    Figure 112015031697196-pat00351
    m2=F0[s6]
    Figure 112015031697196-pat00352
    m0 연산을 수행하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  25. 제 13 항에 있어서, 제 4 단계에서,
    마스킹된 중간상태문 F1[s0]
    Figure 112015031697196-pat00353
    m3, F1[s4]
    Figure 112015031697196-pat00354
    m3에는 마스킹된 라운드 키 RKr,0
    Figure 112015031697196-pat00355
    m0,RKr,2
    Figure 112015031697196-pat00356
    m0와 XOR 연산 후 덧셈의 입력 마스킹 값을 같게 하기 위하여 m0
    Figure 112015031697196-pat00357
    m3값을 m0으로 보정하고,
    마스킹된 중간상태문 F0[s2]
    Figure 112015031697196-pat00358
    m0, F0[s6]
    Figure 112015031697196-pat00359
    m0에는 마스킹된 라운드 키 RKr,1
    Figure 112015031697196-pat00360
    m0,RKr,3
    Figure 112015031697196-pat00361
    m0와 MA 연산을 실시하여 m1 부울린 마스킹 값을 덧셈 연산하여 결과 값을 생성하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  26. 제 25 항에 있어서, XOR 연산을,
    ((F1[s0]
    Figure 112015031697196-pat00362
    m3)
    Figure 112015031697196-pat00363
    (RKr ,0
    Figure 112015031697196-pat00364
    m0))
    Figure 112015031697196-pat00365
    m3=F1[s0]
    Figure 112015031697196-pat00366
    RKr ,0
    Figure 112015031697196-pat00367
    m0 연산,
    ((F1[s4]
    Figure 112015031697196-pat00368
    m3)
    Figure 112015031697196-pat00369
    (RKr ,2 m0))
    Figure 112015031697196-pat00371
    m3=F1[s4]
    Figure 112015031697196-pat00372
    RKr ,2
    Figure 112015031697196-pat00373
    m0 연산으로 진행하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  27. 제 25 항에 있어서, MA 연산을,
    MA[F0[s2]
    Figure 112015031697196-pat00374
    m0,RKr ,1
    Figure 112015031697196-pat00375
    m0]=F0[s2]+RKr ,1
    Figure 112015031697196-pat00376
    m1 연산,
    MA[F0[s6]
    Figure 112015031697196-pat00377
    m0,RKr ,3
    Figure 112015031697196-pat00378
    m0]=F0[s6]+RKr ,3
    Figure 112015031697196-pat00379
    m1 연산으로 진행하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  28. 제 13 항에 있어서, 제 5 단계에서,
    마스킹된 중간 상태문 F1[s0]
    Figure 112015031697196-pat00380
    RKr ,0
    Figure 112015031697196-pat00381
    m0,F1[s4]
    Figure 112015031697196-pat00382
    RKr ,2
    Figure 112015031697196-pat00383
    m0에 각각 마스킹된 상태문 s1
    Figure 112015031697196-pat00384
    m0, s5
    Figure 112015031697196-pat00385
    m0과 MA 연산을 실시하고 마스킹값을 보정하여 s'2,s'6값을 생성하고,
    마스킹된 중간 상태문 (F0[s2]+RKr ,1)
    Figure 112015031697196-pat00386
    m1, (F0[s6]+RKr ,3)
    Figure 112015031697196-pat00387
    m1에 각각 마스킹된 상태문 s3
    Figure 112015031697196-pat00388
    m0, s7
    Figure 112015031697196-pat00389
    m0과 XOR 연산을 실시하고 마스킹 값을 보정하여 s'4,s'0값을 생성하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  29. 제 28 항에 있어서, MA 연산을,
    MA[F1[s0]
    Figure 112015031697196-pat00390
    RKr ,0
    Figure 112015031697196-pat00391
    m0,s1
    Figure 112015031697196-pat00392
    m0]
    Figure 112015031697196-pat00393
    m2=((F1[s0]
    Figure 112015031697196-pat00394
    RKr ,0)+s1)
    Figure 112015031697196-pat00395
    m1
    Figure 112015031697196-pat00396
    m2=((F1[s0]
    Figure 112015031697196-pat00397
    RKr ,0)+s1)
    Figure 112015031697196-pat00398
    m0=s'2 연산,
    MA[F1[s4]
    Figure 112015031697196-pat00399
    RKr ,2
    Figure 112015031697196-pat00400
    m0,s5
    Figure 112015031697196-pat00401
    m0]
    Figure 112015031697196-pat00402
    m2=((F1[s4]
    Figure 112015031697196-pat00403
    RKr ,2+s5)
    Figure 112015031697196-pat00404
    m1
    Figure 112015031697196-pat00405
    m2=((F1[s4]
    Figure 112015031697196-pat00406
    RKr ,2+s5)
    Figure 112015031697196-pat00407
    m0=s'6연산으로 진행하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  30. 제 28 항에 있어서, XOR 연산을,
    (F0[s2]+RKr ,1)
    Figure 112015031697196-pat00408
    m1
    Figure 112015031697196-pat00409
    (s3
    Figure 112015031697196-pat00410
    m0)
    Figure 112015031697196-pat00411
    m1=(F0[s2]+RKr ,1
    Figure 112015031697196-pat00412
    s3)
    Figure 112015031697196-pat00413
    m0)=s'4 연산,
    (F0[s6]+RKr ,3)
    Figure 112015031697196-pat00414
    m1
    Figure 112015031697196-pat00415
    (s7
    Figure 112015031697196-pat00416
    m0)
    Figure 112015031697196-pat00417
    m1=(F0[s6]+RKr ,3
    Figure 112015031697196-pat00418
    s7)
    Figure 112015031697196-pat00419
    m0=s'0 연산으로 진행하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  31. 제 13 항에 있어서, 제 6 단계에서,
    마스킹된 중간 상태문 s0
    Figure 112015031697196-pat00420
    m0, s4
    Figure 112015031697196-pat00421
    m0에 각각 마스킹 된 화이트 키 WK4
    Figure 112015031697196-pat00422
    m0,WK6
    Figure 112015031697196-pat00423
    m0과 MA 연산을 실시하여 m1 부울린 마스킹 값을 가지는 덧셈 연산의 결과 값을 생성하고,
    마스킹된 중간 상태문 s2
    Figure 112015031697196-pat00424
    m0, s6
    Figure 112015031697196-pat00425
    m0에 각각 마스킹 된 화이트 키 WK5
    Figure 112015031697196-pat00426
    m0,WK7
    Figure 112015031697196-pat00427
    m0과 XOR 연산을 실시하여 마스킹이 제거된 암호문 바이트 c2,c6을 각각 생성하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  32. 제 31 항에 있어서, MA 연산을,
    MA[s0
    Figure 112015031697196-pat00428
    m0,WK4
    Figure 112015031697196-pat00429
    m0]=(s0+WK4)
    Figure 112015031697196-pat00430
    m1 연산, MA[s4
    Figure 112015031697196-pat00431
    m0,WK6
    Figure 112015031697196-pat00432
    m0]=(s4+WK6)
    Figure 112015031697196-pat00433
    m1 연산으로 진행하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
  33. 제 31 항에 있어서, XOR 연산을,
    (s2
    Figure 112015031697196-pat00434
    m0)
    Figure 112015031697196-pat00435
    (WK5
    Figure 112015031697196-pat00436
    m0)=s2
    Figure 112015031697196-pat00437
    WK5=c2 연산, (s6
    Figure 112015031697196-pat00438
    m0)
    Figure 112015031697196-pat00439
    (WK7
    Figure 112015031697196-pat00440
    m0)=s6
    Figure 112015031697196-pat00441
    WK7=c6 연산으로 진행하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.



KR1020150045585A 2015-03-31 2015-03-31 Hight 부채널 분석에 대응하기 위한 장치 및 방법 KR101586811B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150045585A KR101586811B1 (ko) 2015-03-31 2015-03-31 Hight 부채널 분석에 대응하기 위한 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150045585A KR101586811B1 (ko) 2015-03-31 2015-03-31 Hight 부채널 분석에 대응하기 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101586811B1 true KR101586811B1 (ko) 2016-01-19

Family

ID=55306326

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150045585A KR101586811B1 (ko) 2015-03-31 2015-03-31 Hight 부채널 분석에 대응하기 위한 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101586811B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107786323A (zh) * 2016-08-30 2018-03-09 航天信息股份有限公司 一种在相关性侧信道攻击中校正中间变量计算结果的方法
CN107786324A (zh) * 2016-08-30 2018-03-09 航天信息股份有限公司 一种在相关性侧信道攻击中校正中间变量计算结果的方法
WO2018199442A1 (en) * 2017-04-28 2018-11-01 Samsung Sds Co., Ltd. Apparatus and method for performing operation being secure against side channel attack
WO2018199443A1 (en) * 2017-04-28 2018-11-01 Samsung Sds Co., Ltd. Apparatus and method for performing operation being secure against side channel attack
WO2018199444A1 (en) * 2017-04-28 2018-11-01 Samsung Sds Co., Ltd. Apparatus and method for performing operation being secure against side channel attack
KR101981621B1 (ko) 2017-12-11 2019-08-28 국민대학교산학협력단 공개키 암호 알고리즘의 키 비트 변수 램덤화를 위한 장치 및 방법
US11386239B2 (en) * 2017-03-06 2022-07-12 Giesecke+Devrient Mobile Security Gmbh Transition from a Boolean masking to an arithmetic masking

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100079060A (ko) * 2008-12-30 2010-07-08 고려대학교 산학협력단 마스킹이 적용된 seed를 이용한 암호화 방법
KR20110020153A (ko) * 2009-08-21 2011-03-02 한국전자통신연구원 Seed 암호화 시스템의 f-함수 처리 장치 및 방법
KR20120129045A (ko) 2011-05-18 2012-11-28 한국전자통신연구원 부채널 공격에 대응하는 대칭치 암호 알고리즘 구현 방법
KR101362675B1 (ko) 2012-11-30 2014-02-12 한국전자통신연구원 저전력 암호화 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100079060A (ko) * 2008-12-30 2010-07-08 고려대학교 산학협력단 마스킹이 적용된 seed를 이용한 암호화 방법
KR20110020153A (ko) * 2009-08-21 2011-03-02 한국전자통신연구원 Seed 암호화 시스템의 f-함수 처리 장치 및 방법
KR20120129045A (ko) 2011-05-18 2012-11-28 한국전자통신연구원 부채널 공격에 대응하는 대칭치 암호 알고리즘 구현 방법
KR101362675B1 (ko) 2012-11-30 2014-02-12 한국전자통신연구원 저전력 암호화 장치 및 방법

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107786323A (zh) * 2016-08-30 2018-03-09 航天信息股份有限公司 一种在相关性侧信道攻击中校正中间变量计算结果的方法
CN107786324A (zh) * 2016-08-30 2018-03-09 航天信息股份有限公司 一种在相关性侧信道攻击中校正中间变量计算结果的方法
US11386239B2 (en) * 2017-03-06 2022-07-12 Giesecke+Devrient Mobile Security Gmbh Transition from a Boolean masking to an arithmetic masking
WO2018199442A1 (en) * 2017-04-28 2018-11-01 Samsung Sds Co., Ltd. Apparatus and method for performing operation being secure against side channel attack
WO2018199443A1 (en) * 2017-04-28 2018-11-01 Samsung Sds Co., Ltd. Apparatus and method for performing operation being secure against side channel attack
WO2018199444A1 (en) * 2017-04-28 2018-11-01 Samsung Sds Co., Ltd. Apparatus and method for performing operation being secure against side channel attack
KR101914028B1 (ko) * 2017-04-28 2018-11-01 삼성에스디에스 주식회사 부채널 공격에 안전한 연산 장치 및 방법
US10659224B2 (en) 2017-04-28 2020-05-19 Samsung Sds Co., Ltd. Apparatus and method for performing operation being secure against side channel attack
US10812260B2 (en) 2017-04-28 2020-10-20 Samsung Sds Co., Ltd. Apparatus and method for performing operation being secure against side channel attack
US10999056B2 (en) 2017-04-28 2021-05-04 Samsung Sds Co., Ltd. Apparatus and method for performing operation being secure against side channel attack
KR101981621B1 (ko) 2017-12-11 2019-08-28 국민대학교산학협력단 공개키 암호 알고리즘의 키 비트 변수 램덤화를 위한 장치 및 방법

Similar Documents

Publication Publication Date Title
KR101586811B1 (ko) Hight 부채널 분석에 대응하기 위한 장치 및 방법
US10567162B2 (en) Mask S-box, block ciphers algorithm device and corresponding construction process
D'souza et al. Advanced encryption standard (AES) security enhancement using hybrid approach
US8369516B2 (en) Encryption apparatus having common key encryption function and embedded apparatus
KR101026439B1 (ko) Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법
US8971526B2 (en) Method of counter-measuring against side-channel attacks
EP2316189B1 (en) Method for generating a cipher-based message authentication code
CN1989726A (zh) 用于执行加密计算的方法和装置
JP2013186157A (ja) 暗号処理装置
CN113940028A (zh) 实现白盒密码的方法和装置
US20170366339A1 (en) Method of encryption with dynamic diffusion and confusion layers
CN107204841B (zh) 一种抵御差分功耗攻击的分组密码多s盒实现的方法
KR100834096B1 (ko) 고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법
KR101506499B1 (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
KR101362675B1 (ko) 저전력 암호화 장치 및 방법
Liang et al. Design of a masked S-box for SM4 based on composite field
CN107872317A (zh) 一种用于aes密钥扩展的随机掩码方法及其装置
KR101665595B1 (ko) Lea 부채널 분석에 대응하기 위한 장치 및 방법
CN109936437B (zh) 一种基于d+1阶掩码的抗功耗攻击方法
KR100991713B1 (ko) 마스킹을 이용한 aes 역원 연산 장치 및 방법과 이를 이용한 aes 암호 시스템
Chou et al. A high performance, low energy, compact masked 128-bit AES in 22nm CMOS technology
CN115664634A (zh) 一种抗侧信道攻击的aes加密算法硬件实现方法及系统
Sharma et al. On security of Hill cipher using finite fields
JP3782210B2 (ja) 暗号装置
JP2014153552A (ja) 暗号処理装置、暗号処理方法およびプログラム

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 5