사물인터넷 장비 상에서의 양자내성암호 구현 동향

  • 권혁동 (한성대학교 IT융합공학부) ;
  • 엄시우 (한성대학교 IT융합공학부) ;
  • 심민주 (한성대학교 IT융합공학부) ;
  • 서화정 (한성대학교 IT융합공학부)
  • Published : 2022.04.30

Abstract

양자컴퓨터의 발전에 따라 양자알고리즘에 대한 보안성을 보장하는 양자내성암호의 중요성이 대두되고 있다. 미국 국립표준기술연구소 (NIST, National Institute of Standards and Technology)는 양자내성암호 표준화 공모전을 개최하여 차세대 공개키 암호에 대한 검증을 현재 Round 3까지 진행한 상태이다. 본 고에서는 최근에 활발히 연구되고 있는 NIST 양자내성암호 공모전에 제안된 양자내성암호에 대해서 확인해 보도록 한다. 또한 해당 양자내성암호의 연산 효율성을 높이기 위해 사물인터넷 장비 상에서 최적 구현 기법에 대해 확인해 보도록 한다.

Keywords

Ⅰ. 서 론

양자컴퓨터의 발전에 따라 기존 공개키암호 알고리즘에 대한 위협이 증가하고 있다. 이를 해결하기 위해 양자내성암호에 대한 필요성이 증가하고 있으며 이에 대응하여 미국 국립표준기술연구소(NIST, National Institute of Standards and Technology)는 양자내성암호 표준화를 위한 공모전을 개최하여 진행 중에 있다. 본고에서는 양자컴퓨터의 발전과 양자내성암호의 최신 동향에 대해서 확인해 보도록 한다. 또한 한정된 자원 환경을 가지는 사물인터넷 기기 상에서의 양자내성암호 최적화 구현 기법에 대해서 확인해 보도록 한다.

Ⅱ. 양자컴퓨터의 도래와 양자내성암호 공모전

양자컴퓨터는 양자역학을 이용한 컴퓨터로 Feynman의 아이디어에서 비롯되었다[1]. 일반적인 컴퓨터가 전기신호를 사용하여 0과 1을 표현한다면, 양자컴퓨터는 0과 1의 중첩 상태를 사용한다. 양자컴퓨터는 중첩상태를 표현하기 위해서 큐빗 (qubit)이라는 표기법을 사용하며, 지속적인 연구로 양자컴퓨터 상에서 운용 가능한 큐빗의 수는 점차 증가하고 있다. 2019년 구글에서 발표한 Sycamore 프로세서는 54개의 큐빗을 가지고 있었지만 [2], 2021년 IBM에서 발표한 Eagle 프로세서는 127 큐빗을 보유하고 있다 [3]. 현재 IBM은 표 1과 같은 로드맵을 공개하며 양자컴퓨터의 전망을 보여주고 있다.

양자컴퓨터의 발전은 기술 발전 측면에서 이로운 점이 많지만 암호 분야에서는 큰 위협으로 다가오고 있다. 현대 암호의 안전성은 수학적 문제의 복잡함에 기반한다. 하지만 양자 알고리즘은 일부 수학 문제를 손쉽게 풀 수 있다. Grover가 제안한 Grover 알고리즘은 n 개의 데이터 상에서 특정 데이터를 찾아내는 알고리즘이다. 기존 Brute force attack은 O(2n)의 검색 횟수가 필요하다면, Grover 알고리즘을 사용한 경우에는 최대 O(2n/2) 검색으로 데이터를 찾아낼 수 있다. 이는 대칭키 알고리즘과 해시 함수에 특히 위협적이다[4]. Shor 알고리즘은 소인수 분해에 최적화된 알고리즘으로, 기존 n-bit의 숫자를 소인수 분해할 때는 지수함수적으로 연산량이 증가하나 Shor 알고리즘을 사용할 경우 연산량이 로그함수적으로 증가하게 된다[5]. 따라서 소인수분해를 중점으로 사용하는 공개키 알고리즘은 Shor 알고리즘에 위협을 받게 된다.

[표 1] IBM 양자컴퓨터 로드맵.

미국의 NIST는 현재 암호체계는 양자컴퓨터 시대에 붕괴될 것으로 판단하여, 양자내성암호 표준화 공모전을 개최하여 운영 중에 있다. Round 3까지 진행한 결과, 최종 후보군에는 공개키 알고리즘 4개, 전자서명 알고리즘 3개가 진출하였으며 대체 후보군에는 공개키 알고리즘 5개, 전자서명 알고리즘 3개가 진출하였다.

Ⅲ. 양자내성암호 소개

본 장에서는 NIST 양자 내성 암호공모전의 일부 양자 내성 암호에 대해서 소개한다.

3.1. Saber

Saber는 NIST 양자내성암호 공모전의 Round 3에 진출한 공개키 알고리즘으로, 격자 기반 암호 중 하나이다 [6]. Saber는 Module Learning With Rounding (M-LWR)을 사용한다. LWR은 Learning With Errors (LWE)와 비슷한 문제로, LWE는 연산 결과에 오류를 주입하는 반면 LWR은 연산 결과에 Least Significant Bit (LSB) 일부를 버린다. Saber는 수식 1의 ring 상에서 연산을 진행한다. 수식 2는 ring의 매개변수이다.

\(R_{q}=Z_{q}[x] /<x^{256}+1>\)   (1)

\(q=2^{13}, n=256\)   (2)

표 2는 Saber에서 사용되는 매개변수를 나열한 것이다. Saber의 종류별로 각기 다른 매개변수를 확인할 수 있다.

Saber는 Fujisaki-Okamoto 변환을 응용하여 안전성을 확보하였고, 2n의 modulus를 사용하는 것으로 modular reduction 연산을 최적화하였다. 이는 Number Theoretic Transform (NTT)를 사용하지 않고서도 빠른 속도로 곱셈 연산을 할 수 있다. 표 3, 4, 5는 CPA 보안을 제공하는 키 생성, 암호화, 복호화 과정을 각각 나타내고 있다 [7].

[표 2] Saber의 파라미터, Type: 알고리즘이름, l: 모듈 디멘션, T: 라운딩 파라미터, μ: 비밀분산값파라미터.

[표 3] Saber 키 생성 과정.

[표 4] Saber CPA 암호화 과정.

[표 5] Saber CPA 복호화 과정.

Saber의 키 생성과 암호화에서 가장 많은 시간이 소요되는 작업은 다항식 행렬 곱셈으로, AT · s, As’이다. 복호화 과정에서는 b’T · s 내적 연산에 많은 연산 자원이 소모된다.

3.2. Dilithium

Dilithium은 NIST 양자내성암호 공모전의 Round 3에 진출한 전자서명 알고리즘으로 격자기반 문제를 사용한다[8]. Dilithium은 Module Small Integer Solutions (M-SIS)와 M-LWE 문제에 기반한다. Dilithium에서 사용하는 모듈은 수식 3과 같으며, 수식 4는 Dilithium의 ring의 매개변수이다.

\(R_{q}=Z_{q}[x] /<x^{261}+1>\)  (3)

\(q=2^{23}-2^{13}+1=8380417\)    (4)

표 6은 Dilithium에서 사용되는 매개변수의 종류를 나열한다. 보안 강도 별로 Dilithium의 종류가 나누어져 있으며, 각각의 Dilithium 마다 사용하는 매개변수 를 확인할 수 있다.

Dilithium의 키 생성, 서명 생성 및 검증에서(k × l) × (l × 1) 행렬-벡터 다항식 곱셈이 주된 연산을 차지한다. 이 연산은 반복적으로 실행되며 연산 시간의 대부분을 차지한다. 추가적으로 SHAKE-256을 사용하여 연산 효율을 향상시켰다.

3.3. Kyber

Kyber는 Dilithium과 기본적인 특성과 구조를 공유하는 알고리즘으로, NIST 양자내성암호 공모전 Round 3에 진출하였다 [8]. Kyber는 공개키 알고리즘으로 Dilithium과 동일하게 격자 기반 문제 중 하나인 M-LWE를 기반으로 한다. Kyber는 Dilithium과 같은 ring을 사용하나, 수식 5의 매개변수를 사용한다.

\(q=3329, n=256\)   (5)

Kyber는 Fujisaki-Okamoto 변환을 사용하며 cyclotomic ring을 적용하는 것으로 NTT를 사용할 수 있다. 표 7은 Kyber의 매개변수를 나열한 것이다. 대부분의 매개변수의 크기가 작기 때문에 효율적인 연산 및 관리가 가능하다.

[표 6] Dilithium의 파라미터, Type: 알고리즘 이름, NIST level: NIST 권장 보안 강도, (k, l): 행렬 크기, η: 샘플링경계값, β, ω: 거부 임계 값, |pk|: 공개키 크기(byte), |sig|: 서명 크기(byte), exp. 반복 횟수.

[표 7] Kyber의 파라미터, Type: 알고리즘이름, l: 모듈디멘션, T: 라운딩 파라미터, μ: 비밀 분산값파라미터.

3.4. SIKE

SIKE는 Supersingular Isogeny Key Encapsulation의 줄임말로, NIST 양자내성암호 공모전의 Round 3 대체 후보군에 진출한 공개키 알고리즘이다. SIKE는 SIDH (Supersingular Isogeny Diffie-Hellman)를 KEM 버전으로 확장한 암호로서, 양자내성암호 공모전에 남은 암호 중 유일하게 타원 곡선 기반의 아이소지니 (isogeny) 문제에 기반한다[9]. SIKE는 키와 암호문의 크기가 매우 작다는 장점을 갖지만 연산속도가 매우 느리다는 단점이 있다[10]. 표 8, 9, 10은 SIKE의 키 생성, 암호화, 복호화 과정을 각각 나타내고 있다[11].[표 8] SIKE 키 생성 과정.

[표 9] SIKE 암호화 과정.

[표 10] SIKE 복호화 과정.

3.5. Rainbow

Rainbow는 NIST 양자내성암호 공모전의 Round 3 대체후보군 알고리즘 중 하나로, 다변수 기반의 전자서명 알고리즘이다. Rainbow는 UoV( Unbalanced Oil-Vinegar) 문제를 사용하여 빠른 속도로 서명을 생성 및 검증이 가능하며, 다른 전자서명 알고리즘에 비해 짧은 서명 길이를 가진다[12]. Rainbow는 일반적인 버전인 Standard와 키 사이즈를 줄인 Cyclic의 두 가지가 존재한다. 표 11은 Rainbow의 매개변수를 소개 한다[13].

표12, 13, 14는Rainbow 전자서명의키생성, 서명생성, 검증과정을나타낸것이다[14].

[표11]Rainbow의파라미터. Lv:NIST권장보안강도, |pk|: 공개키 크기(KB), |sk|: 비밀키 크기(KB), |sig|:서명크기(KB).

[표12]Rainbow키생성과정.

[표13]Rainbow서명생성과정.

[표14]Rainbow서명검증과정.

3.6. UoV(Unbalanced Oil-Vinegar)

UoV의 원형인 Oil and Vinegar는 Jacques Patarin 이 디자인한 알고리즘으로, 다변수 기반의 전자서명 알고리즘이다. Oil and Vinegar는 단순한 구조를 지니고 빠른 연산속도를 제공하며 RAM 소모량이 적기 때문에 스마트카드와 같은 자원이 제한된 환경에서 원활하게 구현되었다 [15]. Oil and Vinegar는 선형 비밀 함수를 사용하여 유한체 K 상에 Oil 값 n 개와 v = n 개인 Vinegar에 2차 방정식을 숨기게 된다. 하지만 Kipnis와 Shamir가 Oil and Vinegar 구조의 취약점을 발견하였다 [16].

이후 Oil and Vinegar를 개선한 UoV가 제안되었다. UoV는 v = n 대신 v > n의 비대칭 형태로 간단한 변형을 주었다. Oil 값보다 Vinegar 값이 더 많기 때문에 UoV라는 이름을 갖게 되었다[17]. UoV는 Oil and Vinegar과 동일한 다변수 기반의 알고리즘이다. UoV는 2차 방정식을 풀기 위해 n개의 변수로 m개의 방정식을 푸는 것이 NP-hard라는 점에 착안하였다 [18].

표15, 16, 17는UoV 전자서명의키생성, 서명생성, 검증과정을나타낸것이다[14].

[표 15] UoV 키생성 과정.

[표 16] UoV 서명 생성 과정.

[표 17] UoV 서명 검증 과정.

3.7. ROLLO

ROLLO (Rank-Ouroboros, Lake and LOcker)는 코드 기반 암호로 고전 컴퓨터와 양자컴퓨터 양쪽 모두에서 안전하게 사용할 수 있도록 구현된 양자내성 공개키암호 알고리즘이다[19]. ROLLO는 NIST 양자내성 암호 공모전의 Round 2 진출 암호로, 일반적인 코드 기반 암호가 Goppa 코드를 사용하지만 ROLLO는 Rank metric [20] 코드를 사용하여 키 사이즈를 줄이고 연산 효율을 늘렸다. 표 18은 ROLLO의 매개변수를 나타낸 것이다[21].

[표 18] ROLLO의 파라미터.

Ⅳ. 사물인터넷 프로세서 소개

4.1. 저성능 사물인터넷 프로세서

Cortex-M 프로세서는 저성능 프로세서로 낮은 비용과 낮은 전력 소모로 다양한 확장성을 제공하며, IoT에서 매우 효율적인 특징을 가지고 있다. Cortex-M 프로세서는 ARM 기반 프로세서로 RISC (reduced in-struction set computer) 형태의낮은전력, 높은성능의임베디드프로세서로시장의95%를점유 하고있다[22].

4.1.1. Cortex-M3

Arduino DUE의 프로세서로 활용되는 Cortex-M3 프로세서는 IoT 구현에 매우 효율적인 특징을 가진다. Cortex-M3의 장점으로는 32-bit로 동작하는 연산자, 낮은 전력 프로세싱 그리고 저렴한 가격이 있다. Cortex-M3 프로세서는 3단계 파이프라인을 지원하며, ARMv7-M 구조를 따른다. Thumb-1과 Thumb-2 명령어 셋을 지원하며, Thumb-1의 경우 16-bit 단위로 연산자를 구성하는 데 이를 이용하면동일한32-bit ARM 연산자로 동작하는 코드를 절반으로 줄이는 구현이 가능하다 [23].

4.1.2. Cortex-M4

Cortex-M4는 NIST에 의해 공모전 프로세스상에서 후보군들을 평가하기 위한 표준임베디드플랫폼으로 추천되었다. Cortex-M4 프로세서는ARMv7E-M 구조를 따르는 32-bit 프로세서이며, 핵심특징은다음과 같다.

Cortex-M4는 14개의 범용레지스터를가진다. r0-r15의 16개 레지스터를 가지나, 스택포인터(r13) 과 프로그램 카운터 (r15)를 제외한 14개의 레지스터를 범용 레지스터로 사용가능하다. Store 명령어는 항상 1 cycle이며, 연관없는 H개의배열을Load할때는(H+1) cycle 이다. Cortex-M3보다효율적인명령어를지원하여 긴 곱셈과 누적 곱셈을 낮은 비용으로 연산이 가능하다. 배럴 시프터를 지원하여, 추가 비용 없이 시프트 및 회전 연산을 구현 가능하다[6].

4.2. 고성능 사물인터넷 프로세서

4.2.1. Cortex-A72

ARM이 2015년에 발표한 Cortex-A72의 경우 동일한 프로세서 설계에서 전력 감소와 성능 향상이 결합되어 효율성이 크게 향상되었다. Cortex-A72는 스마트폰 전력 예산에서 3.5배 향상된 성능을 제공할 수 있다. Cortex-A72는 ARMv8-A 구조를 따르며 64-bit를 지원하면서 기존 32-bit 소프트웨어에 대한 하위호환성도 지원한다. Cortex-A72는 모바일, 네트워킹 및 인프라/데이터 센터에서 사용할 수 있다[24].

4.2.2. Apple M1

Apple M1 프로세서는 최신 ARM 프로세서 중 하나이다. M1은 Mac 및 iPad와 같은 장치에서 사용하기 위해 Apple에서 설계한 프로세서다. M1 프로세서는 CPU, GPU, DSP, 신경망 엔진 등을 하나의 칩에 집적한 일종의 SoC (System on Chip)이다. 5nm 공정으로 생산되며 약 160억 개의 트랜지스터로 구성되어 있다 [13].

ARMv8-A은 고성능 임베디드 애플리케이션용 64-bit 아키텍쳐이다. 64-bit ARMv8 프로세서는 32-bit (AArch32) 아키텍처와 64-bit (AArch64) 아키텍처 모두를 지원한다. 레지스터 w0-w30의 32-bit값 또는 x0-x30의 64-bit값을 유지할 수 있는 31개의 범용 레지스터를 제공한다. ARMv8 프로세서는 2011년 출시되어 스마트폰 시장을 선점하기 시작했으며, 오늘날에는 다양한 스마트폰과 노트북에 널리 사용되고 있다. 프로세서는 주로 임베디드 시스템, 스마트폰, 노트북에 사용되기 때문에 효율적인 구현은 실제 어플리케이션에서 특히 중요하다. ARMv8 프로세서는 강력한 64-bit 효율적인 부호 없는 정수 곱셈 명령을 지원한다. 모듈러 곱셈의 구현은 AArch64 아키텍처를 사용 한다[25].

4.2.3. AVX-2

2013년에는 Haswell이라는 최신 인텔 마이크로아 키텍처가 출시되었다. 이 아키텍처에는 128-bit 또는 256-bit 레지스터에서 동작하는 AVX2 (Advanced Vector Extensions 2) 명령어 세트가 포함되어 있다. 이 전의 AVX와 달리, AVX2는 정수 산술 연산과 레지스터 내의 워드 배열(8~64비트)을 실행하는 벡터 명령을 가지고 있다. 이러한 명령어를 사용하면 데이터 수준의 병렬화를 이용하여 효율적인 구현을 할 수 있 다 [26]. AVX-2는 256-bit 크기의 레지스터를 16개를 지원한다. 이때 각각의 레지스터는 8-bit*32, 16-bit*16, 32-bit*8 벡터로 사용 가능하며, 벡터 명령을 통해 연산이 가능하다.

4.2.4. AVX-512

AVX-512는 AVX (Advanced Vector eXtensions)의 최신 세대이며 32개의 512-bit 레지스터(zmm0– zmm31)와 다양한 512-bit 명령어로 x64 실행 환경에서 효율적으로 동작한다. AVX-512는 다중 확장으로 구성되며, AVX-512F는 32비트 벡터 곱셈기가 있는 핵심 확장이다. Cannon Lake (Palm Cove 마이크로아 키텍처)를 시작으로 Intel은 공개키 암호화 속도를 높이기 위해 특별히 설계된 AVX-512에 소위 Integer Fused Multiply-Add extension (AVX-512IFMA 또는 간단히 IFMA)을 통합했다. 두 개의 새로운 IFMA 명령어 vpmadd52luq 및 vpmadd52huq는 8개의 압축된 부호 없는 52-bit 정수쌍 (2개의 512비트벡터의 64비트 요소 각각에 위치)을 곱하여 각각 길이가 104-bit인 8개의 중간곱을 얻는다. 그런 다음 이러한 결과의 하위 52-bit (vpmadd52luq) 또는 상위 52-bit (vpmadd52huq)가 최종 결과를 보유하는 512-bit 대상 레지스터의 8개의 압축되지 않은 64-bit 정수에 추가된다. AVX-512F의 vpmuludq 및 vpmuldq 곱셈 명령어와 비교하여 IFMA 확장은 52-bit의 더 넓은 곱셈기를 제공할 뿐만 아니라 벡터 곱셈과 벡터 덧셈을 단일 명령어로 결합하였다 [11].

Ⅴ. 양자내성암호 최적구현 사례

[11]은 AVX-512FMA의 대규모 병렬처리 기능을 사용하여 SIKE 기반 키 캡슐화의 효율성 개선 방법 연구를 진행하였다. 해당 논문에서는 필드 산술, 포인트 산술 및 아이도 지니 계산의 병렬화를 목표로 하였다. Operand에 radix-251 표현을 사용하고 모듈식 축소를 위해 몽고메리의 곱셈 알고리즘을 채택한 Fp, Fp2 산술 연산을 위해 최적화된 라이브러리를 제시하고 있다. 해당 논문에서는 산술 연산의 두 인스턴스 지연 시간을 최소화하는 것과 limb-slicing 기법을 사용하여 8개 인스턴스의 처리량을 최대화하는 것을 포함하여 산술 라이브러리의 다양한 변형을 개발하였다. 몽고메리 곡선에서 병렬점 산술연산을 위한 기술을 설명하고 있으며, 벡터화된 아이 소지니 연산 및 키 캡슐화를 위한 구현 기법을 제시하고 있다. AvxSike-LL (낮은 대기시간), AvxSike-HT (높은 처리량) 두 개의 버전을 제공하고 있으며, 두 개의 버전은 비밀에 의존하는 조건문이나 메모리 액세스를 포함하지 않아 타이밍 기반 부채 늘 공격에 내성이 있다.

SIKEp503 매개변수로 인스턴스화된LL 버전은[27]에 제시된 AVX-512IFMA기반SIKE 소프트웨어 구현보다 약 1.5배 빠른 성능을 보여주고 있으며, Intel Core i3-1005G1 프로세서에서 벤치마킹할 경우키 생성과 캡슐화 해제 모두에서 Microsoft의 x64 Assembler SIKE 구현보다 약 2.5배 높은 성능을 보여주고 있다. 또한 HT 버전은 Microsoft의SIKE 라이브러리보다 최대 4.6배 높은 처리량 성능을 보여준다. 자세한 성능 결과는 표 19, 20에서 확인할수있다.

SIKEp503 매개변수로 인스턴스화된 LL 버전은 [27]에제시된AVX-512IFMA기반SIKE 소프트 웨어구현보다 약 1.5배빠른성능을보여주고있으며, Intel Core i3-1005G1 프로세서에서 벤치마킹할 경우 키 생성과 캡슐화 해제 모두에서 Microsoft의 x64 Assembler SIKE 구현보다 약 2.5배높은성능을보여주고있다. 또한HT 버전은Microsoft의SIKE 라이브러리보다 최대 4.6배높은처리량성능을보여준다. 자세한 성능 결과는 표19, 20에서 확인할수있다.

[표 19] Intel Core i3-1005G1 프로세서 상의 SIKEp503 구현결과. op: 연산종류, K: 키생성, E: 암호화, D:복호화.

[표 20] Intel Core i3-1005G1 프로세서 상의 SIKEp434, SIKEp610 구현 결과, op: 연산 종류, K: 키생성, E:암호화, D:복호화.

[6]은 Saber를 Cortex-M3와 Cortex-M4 프로세서상에서 구현하였다. 특히 해당 연구에서는 NTT (Number Theoretic Transform) 연산을 중점적으로 최적화하였다. Saber는 Matrix Vector Multiplication에 대해 NTT를 계산하는 과정에서 많은 시간이 소요된다. 제안하는 기법은 Multi-moduli NTT를 사용하여 연산 시간과 메모리 소요의 트레이드 오프를 가능하게 하였다.

Cortex-M4 상에서는 마스킹 유무에 따라 구현 방법을 두가지로나눈다. 마스킹을사용하지않을경우, 16비트에서32비트로메모리를확장하여구현한다. 마스킹을 사용할 경우에는 big × big 다항식 곱셈을 처리하기 위해서 비대칭 NTT를사용한다.

Cortex-M3 상에서는 16비트, 32비트 두 가지 방식을 제안한다. 16비트 방식은 [28]의 방식을 하였다. 32 비트는NTT 연산 중 비밀 값이 포함될 때마다 연산속도와constant time을맞추기위해public matrix에 non-constant time 연산을 적용하였다.

마지막으로 [28]은 스택 사용을 최적화하지 않았다. [6]에서 제안하는 기법은 스택 사용을 최소로 줄이기 위해 Matrix Vector Multiplication 과정에서 특정 다항식만 메모리상에 유지시킨다. 특정 다항식에서 연산에 필요한 값들을 전부 계산할 수 있으므로, 다른 값들은 메모리에 잔존하지 않고 필요에 따라 연산을 수행한다. 이를 통해 스택 사용량을 최적화하였다. 대신 연산 과정이 추가로 발생함에 따라 연산 시간이 증가하게 된다. 이는 스택을 추가로 사용하는 것으로 연산 시간과 메모리 사이의 트레이드오프를 지원하게 된다.

표 21, 22는 Cortex-M3, Cortex-M4 상에서 최적 구현물과 비교 알고리즘의 성능 비교를진행한것이다.

[8]은 Dilithium, Kyber, Saber 알고리즘을 Cortex-A74과 Apple M1 칩상에 구현하였다. Cortex-A74와 Apple M1은 ARMv8에 속하는 동일 계열의 프로세서로 제공하는 ISA (Instruction Set Architecture)가 동일하다.

[표 21] 마스크가 없는 Saber의 구현 결과 비교, LS: LightSaber, FS: FireSaber, cc: 클록 사이클(단위: k), st:스택크기, K:키생성, E:암호화, D:복호화.

[표 22] 마스크가 있는 Saber의 복호화 성능 비교.

제안하는 기법은 Barret multiplication과 Montgomery multiplication을 NEON SIMD 명령어로 구현하는 데 중점을 두었다. 특히 사용하는 명령어의 숫자를 최소화하여 연산에 소요되는 시간을 줄였다. 각 연산에 따라 사용한 명령어의 수는 Barrett multiplication에서 3개, Montgomery multiplication에 서 5개 또는 상수가 있을 경우 4개, 반올림을 사용하는 Montgomery multiplication에서 3개, 그리고 숫자가 큰 경우의 Montgomery multiplication에서 7개이 다.

또한 Saber, Dilithium, 그리고Kyber 알고리즘별로 효율적인 NTT 연산을 위해 Butterfly 알고리즘을 NEON SIMD 명령어를 활용하여 구현하였다. 표23 은구현물의성능측정결과이다.

[21]는 ROLLO-I의 변형인 ROLLO+를 소개하며 AVX2 구현에서의 성능을 제시한다. ROLLO+는 ROLLO-I의디코딩알고리즘을조정하여일부유효하 지않은암호문을식별하고거절할수있다.

디코딩 알고리즘은 여러 벡터 공간의 교차점을 계산한다. 교집합을 계산하는 한 가지 방법은 Zassennhaus 알고리즘을 사용하는 것이다. 두 벡터 공간의 집합을 생성하는 입력에서 Zassenhaus 알고리즘은 생성집합에서 행렬을 만들고 가우스를 제거한다. 가우스 제거는 키 생성 및 캡슐화에서 샘플링된 요소의 가중치를 확인하는 데 유용하다. 일정한 시간에 가우스 제거를 수행하기 위해 [33]에 제시된 알고리즘을 일반화하여 최초로 도입하였다.

또한 키 생성에서 2mn에서 한 번의 필드 반전을 포함시켜 2mn-2의 거듭 제곱으로 올리는 것보다 빠르다는 것을 발견하였다. ROLLO+의 레벨 1 매개변수 세트 중 하나인 ROLLO+-I-128 구현은 키 생성에 851,823 Cycle, 캡슐화에 30,361 Cycle, 캡슐화해제에 673,666 Cycle를 사용하였다. [34]의 최신 ROLLO-I-128 구현과 비교하여 Encapsulation의 경우 10.6배, Decapsulation의 경우 14.5배 빨라졌다. [35] 의 BIKE 레벨 1 매개변수 세트의 최신 구현과 비교할 때 키 생성 시간은 1.4배 느리지만 캡슐화 시간은 3.8배 빠르며 캡슐화 해제 시간은 2.4배 빠르다. 자세한 성능은 표 24에서 확인할 수 있다.

[표 23] Cortex-A72와 Apple M1 프로세서 상에서의 Kyber, Saber, Dilithium구현결과비교, K:키생성, E: 암호화, D:복호화, (ref):레퍼런스Dilithium코드, (단위: 클록사이클, k)

[14]는 UoV와 Rainbow를 AVX2 명령어 셋을 사용하여 구현하였다. 주된 구현사항으로는 이차 다항식 연산을 사용하는 vinegar 값을 선형 연산으로 바꾸는 것이다. 또한 vinegar 값을 central polynomial 값으로 치환하여 사용한다.

선형 연산을 빠르게 계산하기 위해서 Block Matrix Inversion을 사용한다. 기본적으로 UoV와 Rainbow는 가우에 안소거법을 사용하는데, 이때 사용되는 행렬의 크기가 매우 크기 때문에 연산에 소요되는 시간 또한 증가하게 된다. 본 연구에서는 Block Matrix Inversion 은 역행렬의 크기를 줄이는 것으로 연산에 소요되는 시간을 줄인다. 추가로 서명할 메시지가 주어지기 전에 일부 연산을 미리 계산해두는 사전 연산이 가능하다. 이는 일부 연산이 메시지와는 독립적으로 연산이 가능한 UoV에 적용이 가능하다. Rainbow의 경우에도 UoV에 적용한 기법과 동일하게 적용이 가능하나, 첫 번째 레이어에서만 적용이 가능하다. 표 25는 최적 구현된 UoV와 Rainbow의 성능을 측정한 것이다.

[표 24] Intel Core i7-8850H(Coffee Lake) 상에서의 ROLLO-I[36], Intel Xeon E3-1220v5(Skylake) 상에서의 ROLLO+, BIKE[35]의 키 생성, 암호화, 복호화 과정에 대한 사이클 수 비교(ROLLO-II은 구현하지 않음, 단위: 클록 사이클)

[표 25] UoV와 Rainbow의 성능 비교, Lv: 보안 강도, 성능평가단위:클록사이클, k, 메모리 단위:bytes.

Ⅵ. 결 론

본고에서는 NIST에서 진행하고 있는 양자내성 암호 표준화 공모전의 다양한 양자내성 암호에 대해서 확인해 보았다. 이와 더불어 해당 양자내성 암호의 복잡한 연산을, 자원이 한정된 사물인터넷 환경상에서 구현한 방법 및 구현 결과물의 성능을 확인해 보았다. 해당 구현 기법에 대한 최신 동향은 현재 국내에서 진행되고 있는 양자내성 암호 표준화 공모전에 적용하여 성능을 개선하는 데 활용 가능할 것으로 사료된다. 본고에서 살펴본 바와 같이 빠르게 발전해가고 있는 양자컴퓨터와 양자내성 암호에 보다 관심을 가지고 지속적인 연구가 되어야 할 것으로 사료된다.

References

  1. R.P.Feynman, "Simulating physics with computers," International Journal of Theoretical Physics, 21, pp.467-488 Jun 1982. https://doi.org/10.1007/BF02650179
  2. F.Arute, K.Arya, R.Babbush, D.Bacon, J.C.Bardin, R.Barends, and J.M.Martinis, "Quantum supremacy using a programmable superconducting processor," Nature, 574(7779), pp.505-510, Oct 2019. https://doi.org/10.1038/s41586-019-1666-5
  3. J.Chow, O.Dial and J.Gambetta, "IBM Quantum breaks the 100 qubit processor barrier," IBM Research Blog, Nov 2021.
  4. S.Jaques, M.Naehrig, M.Roetteler, and F.Virdia, "Implementing Grover oracles for quantum key search on AES and LowMC," In Annual International Conference on the Theory and Applications of Cryptographic Techniques, Springer, Cham, pp.280-310, May 2020.
  5. P.W.Shor, "Algorithms for quantum computation: discrete logarithms and factoring," In Proceedings 35th annual symposium on foundations of computer science, Ieee, pp.124-134, Nov 1994.
  6. A.Abdulrahman, J.P.Chen, Y.J.Chen, V.Hwang, M.J. Kannwischer, and B.Y.Yang, "Multi-moduli NTTs for saber on Cortex-M3 and Cortex-M4," Cryptology ePrint Archive, Jul 2021.
  7. J.P.D'Anvers, A.Karmakar, S.S.Roy, and F.Vercauteren. "Saber: Module-LWR based key exchange, CPA-secure encryption and CCA-secure KEM." International Conference on Cryptology in Africa, pp.282-305, 2018.
  8. H.Becker, V.Hwang, M.J.Kannwischer, B.Y.Yang, and S.Y.Yang, "Neon NTT: Faster Dilithium, Kyber, and Saber on Cortex-A72 and Apple M1," Cryptology ePrint Archive, Nov 2021.
  9. D.Jao, and L.D.Feo, "Towards quantum-resistant cryptosystems from supersingular elliptic curve isogenies," In International Workshop on Post-Quantum Cryptography, Springer, Berlin, Heidelberg, pp. 19-34, Nov 2011.
  10. D. Jao, et al, "Supersingular Isogeny Key Encapsulation," NIST PQC Round 3 submission, Oct. 1, 2020.
  11. H.Cheng, G.Fotiadis, J.Grossschadl, and P.Y.Ryan, "Highly vectorized SIKE for AVX-512," IACR Transactions on Cryptographic Hardware and Embedded Systems, pp.41-68, Feb 2022.
  12. J.Ding, B.Y.Yang, C.H.O.Chen, M.S.Chen, and C.M.Cheng, "New differential-algebraic attacks and reparametrization of rainbow," International Conference on Applied Cryptography and Network Security. Springer, Berlin, Heidelberg, pp.242-257, 2008.
  13. H.Kwon, H.Kim, M.Sim, W.K.Lee, and H.Seo, "Look-up the Rainbow: Efficient Table-based Parallel Implementation of Rainbow Signature on 64-bit ARMv8 Processors," Cryptology ePrint Archive, Jul 2021
  14. K.A.Shim, S.Lee, and N.Koo, "Efficient Implementations of Rainbow and UOV using AVX2," IACR Transactions on Cryptographic Hardware and Embedded Systems, pp.245-269. Nov 2022.
  15. J.Patarin, "The oil and vinegar signature scheme," In Dagstuhl Workshop on Cryptography September, Sep 1997.
  16. A.Kipnis, and A.Shamir, "Cryptanalysis of the oil and vinegar signature scheme," In Annual international cryptology conference, Springer, Berlin, Heidelberg, pp.257-266, Aug 1998.
  17. A.Kipnis, J.Patarin, and L.Goubin, "Unbalanced oil and vinegar signature schemes," In International Conference on the Theory and Applications of Cryptographic Techniques, Springer, Berlin, Heidelberg, pp.206-222, May 1999.
  18. N.Courtois, L.Goubin, W.Meier, and J.D.Tacier, "Solving underdefined systems of multivariate quadratic equations," In International Workshop on Public Key Cryptography, Springer, Berlin, Heidelberg. pp.211-227, Feb 2002.
  19. C.A.Melchor, N.Aragon, M.Bardet, S.Bettaieb, L.Bidoux, O.Blazy, J.C.Deneuville, P.Gaborit, A.Hauteville, A.Otmani, O.Ruatta, J.P.Tillich, and G.Zemor, "ROLLO-Rank-Ouroboros, LAKE& LOCKER," Submission to the NIST Post Quantum Standardization Process, Round 2, Apr 2019.
  20. E.Gorla, "Rank-metric codes", Journal of Algebraic Combinatorics, 52(1), pp.1-19, 2020. https://doi.org/10.1007/s10801-019-00889-4
  21. T.Chou, and J.H. Liou, "A Constant-time AVX2 Implementation of a Variant of ROLLO," IACR Transactions on Cryptographic Hardware and Embedded Systems, vol 2022, no. 1, pp. 152-174. Nov 2021.
  22. S.Y.Lee, G.S.Yoo, "Implementation of IoT Sensor Communication Platformusing ARM Cortex-M4," The Journal of Korean Association of Computer Education, 25(1), pp.283-285, 2021.
  23. H.J.Seo, "High Speed Implementation of LEA on ARM Cortex-M3 processor," Journal of the Korea Institute of Information and Communication Engineering, 22(8), pp.1133-1138, 2018. https://doi.org/10.6109/JKIICE.2018.22.8.1133
  24. I.Lin, B.Jeff, and I.Rickard, "ARM platform for performance and power efficiency-Hardware and software perspectives," 2016 International Symposium on VLSI Design, Automation and Test (VLSI-DAT), pp.1-5, 2016.
  25. H.J.Seo, P.Sanal, and W.K.Lee, "No Silver Bullet: Optimized Montgomery Multiplication on Various 64-Bit ARM Platforms," International Conference on Information Security Applications. Springer, Cham, pp.194-205, 2021.
  26. C.Roberto, and J.Lopez. "Software implementation of SHA-3 family using AVX2," Simposio Brasileiro em Seguranca da Informacao e de Sistemas Computacionais 14 (2014), pp.330-333, 2014.
  27. D.Kostic and S.Gueron. "Using the new VPMADD instructions for the new post quantum key encapsulation mechanism SIKE," 2019 IEEE 26th Symposium on Computer Arithmetic (ARITH), pp.215-218, 2019.
  28. C.M.M.Chung, V.Hwang, M.J.Kannwischer, G.Seiler, C.J.Shih, and B.Y.Yang. "NTT multiplication for NTT- unfriendly rings new speed records for saber and NTRU on Cortex-M4 and AVX2," IACR Transactions on Cryptographic Hardware and Embedded Systems, pp.159-188, Feb 2021.
  29. J.M.Bermudo Mera, A.Karmakar, and I.Verbauwhede. "Time-memory trade-off in Toom-Cook multiplication: an application to module-lattice based cryptography," IACR Transactions on Cryptographic Hardware and Embedded Systems, pp.222-244, Feb 2020.
  30. M.V.Beirendonck, J.P.D'Anvers, A.Karmakar, J.Balasch, and I.Verbauwhede. "A side-channel resistant implementation of SABER," ACM Journal on Emerging Technologies in Computing Systems (JETC), 17(2) pp.1-26, 2021.
  31. D.T.Nguyen and K.Gaj. "Optimized software implementations of CRYSTALS-Kyber, NTRU, and Saber using NEON-based special instructions of ARMv8," Proceedings of the NIST 3rd PQC Standardization Conference (NIST PQC 2021). 2021.
  32. P.Sanal, E.Karagoz, H.Seo, R.Azarderakhsh, and M.M.Kermani. "Kyber on ARM64: compact implementations of Kyber on 64-bit ARM Cortex-A processors," Cryptology ePrint Archive, Report 2021/561, 2021.
  33. D.J.Bernstein, T.Chou, and Peter Schwabe. "Mcbits: fast constant- time code-based cryptography," Cryptographic Hardware and Embedded Systems - CHES 2013, pp.250-272, Springer, 2013.
  34. C.Aguilar-Melchor, N.Aragon, S.Bettaieb, L.Bidoux, O.Blazy, J.C.Deneuville, P.Gaborit, G.Zemor, A.Couvreur, and A.Hauteville. "RQC," 2020. Available: https://pqc-rqc.org/.
  35. M.S.Chen, T.Chou, and M.Krausz. "Optimizing BIKE for the Intel Haswell and ARM Cortex-M4", IACR Transactions on Cryptographic Hardware and Embedded Systems, pp.97-124, 2021.
  36. C.Aguilar-Melchor, N.Aragon, E.Bellini, F.Caullery, R.H.Makarim, and C.Marcolla. "Constant time algorithms for ROLLO-I-128", SN Computer Science, 2(5), pp.1-19, 2021. https://doi.org/10.1007/s42979-020-00382-x