KR101586811B1 - Hight 부채널 분석에 대응하기 위한 장치 및 방법 - Google Patents
Hight 부채널 분석에 대응하기 위한 장치 및 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 B to A 변환을 하여 안전한 덧셈연산을 하고 다시 A to B 변환을 시키는 것으로 나머지 연산을 수행하는 덧셈연산을 포함하는 부울린 마스킹 대응기법을 HIGHT 알고리즘에 적용하는 HIGHT 부채널 분석에 대응하기 위한 장치 및 방법에 관한 것으로, 8비트 랜덤 값을 XOR 연산하여 마스킹을 적용하고, 각 라운드가 시작할 때와 끝날 때 같은 마스킹 값을 가지도록 구성하여 라운드 함수를 반복적으로 사용 가능하게 하고, 라운드 키에는 각 바이트에 랜덤 값 m0을 XOR 연산하여 사용하여 HIGHT 부채널 분석에 대응할 수 있도록 한 것이다.
Description
본 발명은 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가 있다. 이러한 블록 암호알고리즘에도 부채널 분석에 취약점이 존재한다.
그럼에도 불구하고 현재에는 심각하게 고려되지 않고 있는 실정이다.
이러한 부채널 분석에 대한 다양한 방법들이 존재하며, 이를 통해 알고리즘 내에 비밀 키를 추출할 수 있다. 이와 같은 부채널 분석에 대응하기 위하여 경량 대칭키 암호 알고리즘을 분석에 안전하기 위한 대응기법을 고려한 설계가 필요하다.
본 발명은 이와 같은 종래 기술의 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는 최종변환 연산 수행부의 상세 구성도
도 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에서와 같은 표기법을 사용한다.
HIGHT 키 스케쥴은 각 바이트 별로 키가 유도되는 특징을 갖는다. 화이트 키는 수학식 1에서와 같이 나타낼 수 있다.
그리고 라운드 키 유도를 위한 알고리즘은 표 2에서와 같다.
표 2에서와 같이, 각 라운드 키의 바이트는 특정 위치의 비밀 키 바이트에 의해서 유도된다.
HIGHT는 암호화 과정에 연산이 덧셈, 로테이션, XOR 연산으로 구성된 ARX 구조이다. 전체구조는 초기변환, 32번의 라운드 과정, 최종변환과 같이 3단계로 구성된다.
HIGHT 전체 구조에서 초기변환은 수학식 2에서와 같이 표현된다.
그리고 HIGHT 라운드 함수는 F0,F1가 있으며 수학식 3에서와 같이 표현된다.
라운드 함수의 다른 연산은 8비트 덧셈연산과 비트단위 XOR 연산으로 이루어져 있다.
32번의 라운드 과정을 거친 상태문은 화이트 키를 이용한 최종변환 과정을 가지며 암호문이 생성된다.
이는 수학식 4에서와 같다.
본 발명은 이와 같은 HIGHT 경량 블록암호 알고리즘에서 확인되는 부채널 분석 취약점을 해결하기 위하여 부울린 마스킹 대응기법을 HIGHT 알고리즘에 적용하는 것이다.
이를 위한 본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 장치는 도 1에서와 같이, 8비트 랜덤값 m0을 생성하고, F0[m0] = m1이 되는 값 생성, m0m1 = m2이 되는 값 생성, F1[m0] = m3이 되는 값을 생성하는 마스크 값 생성부(12)와, 마스크 값 생성부(12)에서 입력된 8비트 랜덤값 m0을, 평문 입력부(11)에서 입력된 평문 p0,p1,p2,p3,p4,p5,p6,p7에서 평문 p2,p6을 제외한 6개 바이트에 각각 XOR 연산 수행하여 랜덤한 평문 바이트를 생성하는 마스크 값 적용부(13)와, 마스킹된 평문 바이트 p0 m0, p4 m0에는 마스킹된 화이트키 WK0 m0, WK2 m0와 각각 MA 연산이 수행되고 수행 후 m1 마스킹값을 m0 마스킹 값으로 보정하고, 평문 바이트 p2,p6에는 마스킹 된 화이트 키 WK1 m0, WK3 m0와 XOR 연산을 수행하는 초기변환 연산 수행부(14)와, 마스킹된 중간상태문 s0 m0, s4 m0에는 F1 함수 연산을 수행하고, s2 m0, s6 m0에는 F0 함수 연산을 수행하고, 마스킹된 중간값 F0[s2]m1, F0[s6]m1을 마스킹 덧셈의 입력 마스킹 값을 같게 하기 위하여 m1 마스킹 값을 m0 마스킹 값으로 보정하는 시프트 연산 수행부(15)와, 마스킹된 중간상태문 F1[s0]m3, F1[s4]m3에는 마스킹된 라운드 키 RKr ,0 m0,RKr ,2 m0와 XOR 연산 후 덧셈의 입력 마스킹 값을 같게 하기 위하여 m0m3값을 m0으로 보정하고, 마스킹된 중간상태문 F0[s2]m0, F0[s6]m0에는 마스킹된 라운드 키 RKr ,1 m0,RKr ,3 m0와 MA 연산을 실시하여 m1 부울린 마스킹 값을 덧셈 연산하여 결과 값을 생성하는 라운드 키 연산 수행부(16)와, 마스킹된 중간 상태문 F1[s0]RKr ,0 m0,F1[s4]RKr ,2 m0에 각각 마스킹된 상태문 s1 m0, s5 m0과 MA 연산을 실시하고 마스킹값을 보정하여 s'2,s'6값을 생성하고, 마스킹된 중간 상태문 (F0[s2]+RKr ,1)m1, (F0[s6]+RKr ,3)m1에 각각 마스킹된 상태문 s3 m0, s7 m0과 XOR 연산을 실시하고 마스킹 값을 보정하여 s'4,s'0값을 생성하는 마스킹 값 보정부(17)와, 마스킹된 중간 상태문 s0 m0, s4 m0에 각각 마스킹 된 화이트 키 WK4 m0,WK6 m0과 MA 연산을 실시하여 m1 부울린 마스킹 값을 가지는 덧셈 연산의 결과 값을 생성하고, 마스킹된 중간 상태문 s2 m0, s6 m0에 각각 마스킹 된 화이트 키 WK5 m0,WK7 m0과 XOR 연산을 실시하여 마스킹이 제거된 암호문 바이트 c2,c6을 각각 생성하는 최종 변환 연산 수행부(18)와, 각 바이트에 마스킹된 값을 해체하여 c0,c1,c3,c4,c5,c7 암호문 바이트를 생성하는 마스킹 값 해제부(19)와, 이전 단계에서 생성된 암호문을 출력하는 암호문 출력부(20)를 포함한다.
그리고 본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 장치는 부울린 마스킹이 적용된 두 입력 Xm0, Ym0을 안전하게 더하기 위하여 각각 부울린 마스킹을 산술 마스킹으로 변환을 실시하고 안전한 덧셈을 실시한 후 산술 마스킹을 부울린 마스킹으로 변환하여 덧셈의 결과값에 부울린 마스킹 m1값이 적용된 값을 생성하는 과정을 수행하는 마스킹 덧셈부(21)를 더 구비한다.
이와 같은 출력을 갖도록 하기 위하여, (X-m0)=BtoA(X') 연산, (Y-m0)=BtoA(Y') 연산, ((x+y)-m1=((x-m0)-m1)+(y-m0))+2m0 연산, Return(x+y)m1=AtoB((x+y)-m1) 연산을 수행한다.
그리고 본 발명에 따른 HIGHT 부채널 분석에 대응하기 위한 방법은 도 2에서와 같이, 8비트 랜덤값 m0을 생성하고, F0[m0] =m1이 되는 값 생성, m0m1 = m2이 되는 값 생성, F1[m0] = m3이 되는 값을 생성하는 단계와, 마스크 값 생성부(12)에서 입력된 8비트 랜덤값 m0을, 평문 입력부(11)에서 입력된 평문 p2,p6을 제외한 6개 바이트에 각각 XOR 연산 수행하여 랜덤한 평문 바이트를 생성하는 단계와, 마스킹된 평문 바이트 p0 m0, p4 m0에는 마스킹된 화이트키 WK0 m0, WK2 m0와 각각 MA 연산이 수행되고 수행 후 m1 마스킹값을 m0 마스킹 값으로 보정하고, 평문 바이트 p2,p6에는 마스킹 된 화이트 키 WK1 m0, WK3 m0와 XOR 연산을 수행하는 단계와, 마스킹된 중간상태문 s0 m0, s4 m0에는 F1 함수 연산을 수행하고, s2 m0, s6 m0에는 F0 함수 연산을 수행하고, 마스킹된 중간값 F0[s2]m1, F0[s6]m1을 마스킹 덧셈의 입력 마스킹 값을 같게 하기 위하여 m1 마스킹 값을 m0 마스킹 값으로 보정하는 단계와, 마스킹된 중간상태문 F1[s0]m3, F1[s4]m3에는 마스킹된 라운드 키 RKr,0 m0,RKr,2 m0와 XOR 연산 후 덧셈의 입력 마스킹 값을 같게 하기 위하여 m0m3값을 m0으로 보정하고, 마스킹된 중간상태문 F0[s2]m0, F0[s6]m0에는 마스킹된 라운드 키 RKr,1 m0,RKr,3 m0와 MA 연산을 실시하여 m1 부울린 마스킹 값을 덧셈 연산하여 결과 값을 생성하는 단계와, 마스킹된 중간 상태문 F1[s0]RKr,0 m0,F1[s4]RKr,2 m0에 각각 마스킹된 상태문 s1 m0, s5 m0과 MA 연산을 실시하고 마스킹값을 보정하여 s'2,s'6값을 생성하고, 마스킹된 중간 상태문 (F0[s2]+RKr ,1)m1, (F0[s6]+RKr ,3)m1에 각각 마스킹된 상태문 s3 m0, s7 m0과 XOR 연산을 실시하고 마스킹 값을 보정하여 s'4,s'0값을 생성하는 단계와, 마스킹된 중간 상태문 s0 m0, s4 m0에 각각 마스킹 된 화이트 키 WK4 m0,WK6 m0과 MA 연산을 실시하여 m1 부울린 마스킹 값을 가지는 덧셈 연산의 결과 값을 생성하고, 마스킹된 중간 상태문 s2 m0, s6 m0에 각각 마스킹 된 화이트 키 WK5 m0,WK7 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=m0m1을 저장한다.
그리고 마스킹 적용 단계에서 최초에는 평문 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이 되는 값 생성, m0m1 = 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)에서의 연산 과정은 부울린 마스킹이 적용된 두 입력 Xm0, Ym0을 안전하게 더하기 위하여 각각 부울린 마스킹을 산술 마스킹으로 변환을 실시하고 안전한 덧셈을 실시한 후 산술 마스킹을 부울린 마스킹으로 변환하여 덧셈의 결과값에 부울린 마스킹 m1값이 적용된 값을 생성하는 과정을 수행한다.
이와 같은 출력을 갖도록 하기 위하여, (X-m0)=BtoA(X') 연산, (Y-m0)=BtoA(Y') 연산, ((x+y)-m1=((x-m0)-m1)+(y-m0))+2m0 연산, Return(x+y)m1=AtoB((x+y)-m1) 연산을 수행한다.
그리고 초기변환 연산 수행부(14)에서의 연산 과정은 다음과 같다.
도 6a와 도 6b는 초기변환 연산 수행부의 상세 구성도이다.
p1 m0, p3 m0,p5 m0,p7 m0와 같이 홀수 번째 마스킹된 평문 바이트에는 별도의 연산이 수행되지 않고, 마스킹된 평문 바이트 p0 m0, p4 m0에는 마스킹된 화이트키 WK0 m0, WK2 m0와 각각 MA 연산이 수행되고 수행 후 m1 마스킹값을 m0 마스킹 값으로 보정한다.
이를 위하여, MA[p0 m0, WK0 m0]=p0+WK0 m1, p0+WK0 m1m2= p0+WK0 m0 연산, MA[p2 m0, WK1 m0]=p2+WK1 m1, p2+WK1 m1m2= p2+WK1 m0 연산을 수행한다.
그리고 시프트 연산 수행부(15)에서의 연산 과정은 다음과 같다.
도 7a와 도 7b는 시프트 연산 수행부의 연산식을 나타낸 구성도이다.
그리고 라운드 키 연산 수행부(16)에서의 연산 과정은 다음과 같다.
도 8a와 도 8b는 라운드 키 연산 수행부의 상세 구성도이다.
마스킹된 중간상태문 F1[s0]m3, F1[s4]m3에는 마스킹된 라운드 키 RKr,0 m0,RKr,2 m0와 XOR 연산 후 덧셈의 입력 마스킹 값을 같게 하기 위하여 m0m3값을 m0으로 보정한다.
이를 위하여, ((F1[s0]m3)(RKr ,0 m0))m3=F1[s0]RKr ,0 m0 연산, ((F1[s4]m3)(RKr,2 m0))m3=F1[s4]RKr,2 m0 연산을 수행한다.
그리고 마스킹된 중간상태문 F0[s2]m0, F0[s6]m0에는 마스킹된 라운드 키 RKr,1 m0,RKr,3 m0와 MA 연산을 실시하여 m1 부울린 마스킹 값을 덧셈 연산하여 결과 값을 생성한다.
이를 위하여,
그리고 마스킹 값 보정부(17)에서의 연산 과정은 다음과 같다.
도 9a와 도 9b는 마스킹 값 보정부의 상세 구성도이다.
마스킹된 중간 상태문 F1[s0]RKr ,0 m0,F1[s4]RKr ,2 m0에 각각 마스킹된 상태문 s1 m0, s5 m0과 MA 연산을 실시하고 마스킹값을 보정하여 s'2,s'6값을 생성한다.
그리고 마스킹된 중간 상태문 (F0[s2]+RKr ,1)m1, (F0[s6]+RKr ,3)m1에 각각 마스킹된 상태문 s3 m0, s7 m0과 XOR 연산을 실시하고 마스킹 값을 보정하여 s'4,s'0값을 생성한다.
이와 같은 시프트 연산 수행부(15),라운드 키 연산 수행부(16),마스킹 값 보정부(17)에서의 연산에서 32회 라운드가 반복될 때마다 다른 라운드 키가 사용된다.
그리고 최종변환 연산 수행부(18)에서의 연산 과정은 다음과 같다.
도 10a와 도 10b는 최종변환 연산 수행부의 상세 구성도이다.
마스킹된 중간 상태문 s0 m0, s4 m0에 각각 마스킹 된 화이트 키 WK4 m0,WK6 m0과 MA 연산을 실시하여 m1 부울린 마스킹 값을 가지는 덧셈 연산의 결과 값을 생성한다.
이를 위하여,
그리고 마스킹된 중간 상태문 s2 m0, s6 m0에 각각 마스킹 된 화이트 키 WK5 m0,WK7 m0과 XOR 연산을 실시하여 마스킹이 제거된 암호문 바이트 c2,c6을 각각 생성한다.
이를 위하여,
그리고 마스킹 값 해제부(19)에서의 연산 과정은 다음과 같다.
각 바이트에 마스킹된 값을 해체하여 c0,c1,c3,c4,c5,c7 암호문 바이트를 생성한다.
이를 위하여,
그리고 암호문 출력부(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. 마스킹 덧셈부
13. 마스크 값 적용부 14. 초기변환 연산 수행부
15. 시프트 연산 수행부 16. 라운드 키 연산 수행부
17. 마스킹 값 보정부 18. 최종 변환 연산 수행부
19. 마스킹 값 해제부 20. 암호문 출력부
21. 마스킹 덧셈부
Claims (33)
- 입력된 평문에 마스크 값 생성부에서 생성된 랜덤 마스크 값을 각각 XOR 연산 수행하여 랜덤한 평문 바이트를 생성하는 마스크 값 적용부;
마스킹된 평문 바이트를 마스킹된 화이트키와 각각 MA 연산을 하여 마스킹 값을 보정하거나, XOR 연산을 수행하는 초기변환 연산 수행부;
마스킹된 중간 상태문에 함수 연산을 수행하고 마스킹된 중간값의 마스킹 값을 보정하는 시프트 연산 수행부;
마스킹된 중간 상태문을 마스킹된 라운드 키와 XOR 연산 후 보정하거나, MA 연산을 실시하여 결과 값을 생성하는 라운드 키 연산 수행부;
마스킹된 중간 상태문에 각각 마스킹된 상태문을 MA 연산 또는 XOR 연산을 하여 마스킹값을 보정하는 마스킹 값 보정부;
마스킹된 중간 상태문을 마스킹 된 화이트 키와 MA 연산을 실시하여 덧셈 연산의 결과 값을 생성하거나, 마스킹 된 화이트 키와 XOR 연산을 실시하여 마스킹이 제거된 암호문 바이트를 생성하는 최종 변환 연산 수행부;
각 바이트에 마스킹된 값을 해체하여 암호문 바이트를 생성하는 마스킹 값 해제부; 및 이전 단계에서 생성된 암호문을 출력하는 암호문 출력부;를 포함하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 장치. - 제 1 항에 있어서, 마스크 값 적용부는,
마스크 값 생성부에서 입력된 8비트 랜덤값 m0을, 평문 입력부에서 입력된 평문 p0,p1,p2,p3,p4,p5,p6,p7에서 평문 p2,p6을 제외한 6개 바이트에 각각 XOR 연산 수행하여 랜덤한 평문 바이트를 생성하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 장치. - 제 1 항에 있어서, 마스킹 값 해제부는,
각 바이트에 마스킹된 값을 해체하여 c0,c1,c3,c4,c5,c7 암호문 바이트를 생성하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 장치. - 제 1 항에 있어서, 시프트 연산 수행부,라운드 키 연산 수행부,마스킹 값 보정부에서의 연산에서 32회 라운드가 반복될 때마다 다른 라운드 키가 사용되는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 장치.
- 입력된 평문에 랜덤 마스크 값을 각각 XOR 연산 수행하여 랜덤한 평문 바이트를 생성하는 제 1 단계;
마스킹된 평문 바이트를 마스킹된 화이트키와 각각 MA 연산을 하여 마스킹 값을 보정하거나, XOR 연산을 수행하는 제 2 단계;
마스킹된 중간 상태문에 함수 연산을 수행하고 마스킹된 중간값의 마스킹 값을 보정하는 제 3 단계;
마스킹된 중간 상태문을 마스킹된 라운드 키와 XOR 연산 후 보정하거나, MA 연산을 실시하여 결과 값을 생성하는 제 4 단계;
마스킹된 중간 상태문에 각각 마스킹된 상태문을 MA 연산 또는 XOR 연산을 하여 마스킹값을 보정하는 제 5 단계;
마스킹된 중간 상태문을 마스킹 된 화이트 키와 MA 연산을 실시하여 덧셈 연산의 결과 값을 생성하거나, 마스킹 된 화이트 키와 XOR 연산을 실시하여 마스킹이 제거된 암호문 바이트를 생성하는 제 6 단계;
각 바이트에 마스킹된 값을 해체하여 암호문 바이트를 생성하고, 이전 단계에서 생성된 암호문을 출력하는 제 7 단계;를 포함하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법. - 제 13 항에 있어서, 제 1 단계에서,
입력된 8비트 랜덤값 m0을, 평문 입력부에서 입력된 평문 p0,p1,p2,p3,p4,p5,p6,p7에서 평문 p2,p6을 제외한 6개 바이트에 각각 XOR 연산 수행하여 랜덤한 평문 바이트를 생성하는 것을 특징으로 하는 HIGHT 부채널 분석에 대응하기 위한 방법.
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)
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)
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 | 한국전자통신연구원 | 저전력 암호화 장치 및 방법 |
-
2015
- 2015-03-31 KR KR1020150045585A patent/KR101586811B1/ko active IP Right Grant
Patent Citations (4)
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)
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 |