I. 서론
1994년 Shor가 제안한 양자 알고리즘[1]에 의해 기존 RSA(Rivest-Shamir-Adelman), ECC(Elliptic-Curve-Cryptography)와 같은 표준 공개키 암호 알고리즘을 양자 컴퓨터를 이용하여 다항시간 내에 해독할 수 있게 되었다. 양자 컴퓨팅 환경의 현실화 가능성이 커짐에 따라 양자 컴퓨팅 환경에서도 안전하면서 기존의 표준 공개키 암호를 대체할 수 있는 암호인 양자내성암호(Post-Quantum Cryptography, PQC)에 대한 연구가 활발히 진행되고 있다.
양자내성암호는 기반 난제의 종류에 따라 분류할 수 있는데, 대표적으로 격자(Lattice) 기반 암호, 코드(Code) 기반 암호, 다변수다항식(Multivariate polynomial) 기반 암호 등이 있다. 또한 알고리즘의 종류에 따라 공개키 암호화(Public-Key Encryption, PKE) 및 키 캡슐화 메커니즘(Key Encapsulation Mechanism, KEM), 그리고 전자서명(Signature)으로 분류한다. 미국 NIST에서는 2016년부터 양자내성암호 표준화 공모를 시작하였고, 2022년 표준 알고리즘으로 격자 기반 PKE/KEM인 CRYSTAL-Kyber (이하 Kyber), 격자 기반 전자서명인 CRYSTAL-Dilithium, Falcon, 해시(hash) 기반 전자서명인 SPHINCS+를 선정하였다[2]. 현재는 추가적인 표준 선정을 위한 4라운드와 전자서명에 대한 재공모(On ramp)를 진행 중이다. 국내에서도 2022년부터 KpqC 공모전을 개최하여 양자내성암호 연구 활성화를 독려하고, 국내 PQC 알고리즘 표준화 공모를 진행하고 있다. KpqC 공모전은 현재 1라운드 진행 중이며 총 16종의 PKE/KEM(7), 전자서명(9) 알고리즘이 표준 후보로 제출되었다[3].
본 논문에서는 KpqC 공모전 1 라운드의 격자 기반 KEM 3종 중 하나인 TiGER KEM에 대해 조합론적 공격의 일종인 Meet-LWE 공격[4]을 적용하여, 제안된 파라미터에 대한 구체적인 안전성 분석결과를 제시한다. 특히, 기존 Meet-LWE 공격은 LWE의 비밀키와 에러가 삼진 벡터인 경우에 대한 공격으로 제안되었으나, 에러의 각 계수가 [-B, B]의 원소인 경우에 대해 공격 알고리즘을 확장하여 각 알고리즘에 대해 더욱 정확한 공격 복잡도를 도출하였다. Meet-LWE는 공격 복잡도를 계산하는 과정에서 별도의 가정이 사용되지 않기 때문에 타 격자 기반 공격에 비해 실질적인 공격량을 도출할 수있다. Meet-LWE 공격 적용 결과 TiGER128, TiGER192, TiGER256에 대해 각각 184-bit, 170-bit, 298-bit classical 안전성을 도출하였다. 특히, TiGER192 파라미터의 경우 Meet-LWE 공격에 대해 170-bit의 classical 안전성을 가지며, TiGER 제안문서에서 달성 목표로 제시한 200-bit classical 안전성1)을 달성하지 못함을 보였다. 또한, 본 논문에서는 TiGER192 파라미터에 대해 Meet-LWE 적용 시 192-bit, 200-bit의 classical 안전성을 달성하기 위한 해밍웨이트(Hamming weight) 값을 각각 제시하였다. 본 논문이 시사하는 바는 다음과 같다.
1) 격자 기반 알고리즘의 파라미터 설정 시 대부분의 제안 문서에서 Lattice estimator[11]를 이용하여 안전성을 분석하고 있다. 그러나, Lattice estimator에서 다루는 공격의 종류가 제한적이기 때문에, Lattice estimator 내에 탑재되어 있는 공격뿐만 아니라 최신 공격을 고려한 파라미터를 도출해야 한다.
2) Sparse 비밀키나 ternary 비밀키를 사용하는 경우 특히 May의 Meet-LWE 공격을고려할 필요가 있다. 공격을 수행할 때 에러의 각 계수가 [-B, B]의 원소인 경우에 대해공격 알고리즘을 확장하여 적용하는 경우 정확한 공격량 계산이 가능하다.
본 논문은 다음과 같이 구성된다: II 장에서는 KEM의 정의와 TiGER KEM의 기반 난제인 LWE, LWR에 대해 소개한다. III 장에서는 TiGER의 주요 특징 및 알고리즘을 소개한다. IV 장에서는 Meet-LWE 공격의 아이디어와 공격복잡도에 대해 소개한다. V 장에서는 Meet-LWE 공격 적용시 스킴의 안전성을 분석하고 추가적인 논의사항을 제안한다. 마지막 VI 장에서는 결론을 서술한다.
II. 배경
2.1 Key Encapsulation Mechanism
키 캡슐화 메커니즘(KEM)은 TLS/IPSec 등의 인터넷 프로토콜에서 대칭키 암호화에 사용될 비밀키(세션 키)를 공유하기 위한 공개키 암호 알고리즘이다. KEM은 안전성 파라미터를 입력값으로 받아 공개키와 개인키 쌍을 생성하는 KeyGen, 공개키를 입력으로 받아 암호문과 비밀키 쌍을 생성하는 캡슐화(Encapsulation), 개인키와 암호문을 입력으로 하여 암호문을 복호화한 결과인 비밀키를 생성하는 디캡슐화(Decapsulation), 이렇게 3가지 알고리즘으로 구성된다 :
- KeyGen(1λ): 키 생성 알고리즘 KeyGen은 보안 매개변수 λ를 입력으로 받아 공개키, 개인키 쌍(pk, sk)를 출력하는 무작위 알고리즘이다.
- Encaps(pk): 공개키 pk를 입력으로 받아 암호문 c와 공유키 K를 출력하는 무작위 알고리즘이다.
- Decaps(sk, c): 개인키 sk와 암호문 c를 입력으로 받아 공유키 K또는 ⊥를 출력한다.
2.2 기반 난제
본 절에서는 TiGER가 기반으로 두고 있는 격자기반 난제 Learning With Errors(LWE)[5], Learning With Rounding (LWR)[6] 각각의 정의를 설명한다.
- Learning With Errors (LWE) 문제
주어진 비밀 벡터 s∈ℤnq에 대하여 ALWEm, n, q, χe(s)분포를 다음과 같이 정의한다: 각 i∈{1, 2, ⋯, n}에 대하여, 랜덤한 ai∈ℤnq와 이산 가우시안 분포 Xe에서 선택한 에러 ei∈ℤ를 선택하여 bi = 〈ai, s〉+ei mod q를 생성하고, {(ai, bi)}mi = 1 를 결과로 내보낸다.
결정 LWE(decision-LWE) 문제는 {(ai, bi)}mi = 1 가 주어졌을 때, 이 순서쌍들의 집합이 ALWEm, n, q, χe(s)를 따르는지, 랜덤하게 생성되었는지 결정하는 문제이다. 탐색 LWE(search-LWE) 문제는 분포 ALWEm, n, q, χe(s)를 따라 생성된 [(ai, bi)}mi = 1 가 주어졌을 때, 비밀키 s∈ℤnq를 찾는 문제이다.
RLWE(Ring-LWE)는 n차 다항식 f(x)∈ℤ[x]에 대해 환(ring) Rq = ℤq[x]/(f(x))위에서 정의된 LWE 문제로 벡터와 환에서 정의된 다항식(polynomial)을 동일시한다. 주어진 비밀키 s(x)에 대하여, 분포 ARLWEn, q, χe(s(x))를 다음과 같이 정의한다: 랜덤한 다항식 a(x)∈Rq와 각 계수들을 이산 가우시안 분포 χe에서 선택하여 만들어진 다항식 e(x)가 주어졌을때, b(x) = a(x)s(x) + e(x) mod Rq를 계산하고, 순서쌍 (a(x), b(x))∈R2q를 결과로 내보낸다. 결정 RLWE 문제는, (a(x), b(x))∈R2q가 주어졌을 때,이 순서쌍이 분포 ARLWEn, q, χe(s(x))를 따르는지, 랜덤하게 생성되었는지 결정하는 문제이다. 탐색RLWE 문제는 주어진 순서쌍 (a(x), b(x))∈R2q이 분포 ARLWEn, q, χe(s(x))를 따를 때, s(x)를 찾는 문제이다.
- Learning With Rounding (LWR) 문제
주어진 비밀 벡터 s∈ℤnq에 대하여 ALWRm, n, q, p(s)분포를 다음과 같이 정의한다: 각i∈{1, 2, ⋯, n}에 대하여, 랜덤한 ai∈ℤnq와 modulus p, q를 이용하여 bi = ⌊(p/q) · (〈ai, s〉 mod q)⌉를 계산하고, 순서쌍들의 집합 {(ai, bi)}mi = 1 를 결과로 내보낸다.
결정 LWR(decision-LWR) 문제는 {(ai, bi)}mi = 1 가 주어졌을 때, 이 순서쌍들의 분포가 ALWRm, n, q, p(s)를 따르는지, 랜덤하게 생성되었는지 결정하는 문제이다. 탐색 LWR(search-LWR) 문제는 분포 ALWRm, n, q, p(s)를 따라 생성된 {(ai, bi)}mi = 1가 주어졌을 때, 비밀키 s∈ℤnq를 찾는 문제이다.
LWE 문제와 마찬가지로 LWR 문제도 Ring-LWR(RLWR)로 확장 가능하다.
III. TiGER KEM 알고리즘 소개
TiGER[3]는 RLWR과 RLWE 문제의 어려움을 기반으로 하여 설계된 IND-CPAPKE와, 이에 대해 Fujisaki-Okamoto(FO) 변환[7]을 적용한 결과인 IND-CCA 안전성을 만족하는 KEM으로 제안되었다. TiGER의 설계상 특징은 다음과 같다.
1) RLWR 인스턴스로 키 생성을, RLWE 인스턴스로 키 캡슐화 및 암호화를 한다. RLWR와 RLWE에 대한 비밀값은 정해진 해밍웨이트를 가지는 벡터로 정해진다. 또한 RLWE의 에러 역시 sparse한 벡터로 샘플링 한다.
2) RLWE(R)에 대한 modulus p, q를 2의 멱승으로 설정하여 Rounding을 비트 시프트 연산(bitwise shift)으로 계산한다.
3) 다항식 간의 연산 시 NTT(Number Theoretic Transform)를 사용하지 않는다.
4) 다양한 보안 프로토콜로의 전환에 유리하도록 작은 대역폭을 만족하도록 하였다. 이를 위해 작은 크기의 modulus q(=256)를 사용한다는 특징이 있다.
5) 작은 q로 인해 증가하는 복호화 실패 확률에 대한 문제를 메시지 인코딩 시 오류정정부호(Error Correctiong Code, ECC)를 사용하여 해결하였다. ECC의 한 종류인 XEf[8] 또는 D2[9]를 사용하여 에러를 복구하는 방식으로 무시 가능한(negligible) 수준으로 복호화 오류율을 조절할 수 있다.
TiGER 파라미터는 다음과 같이 구성된다.
- λ: 안전성 파라미터
- SHAKE256: {0, 1} ×ℤ→{0, 1}*, 입력 비트열과 양의 정수값(출력값 길이)을 받아 정해진 길이만큼 출력값을 생성하는 XOF(eXtendable Output Function)
- HWTn(·): 해밍웨이트 h인 sparse 비밀키를 생성
- ⌊⋅⌉: 다항식 계수에 대해서 가장 가까운 정수로 반올림하는 Rounding 연산
- ECC.Ecd : {0, 1}d→Rq , 인코딩 시 사용되는 오류 정정 코드
- ECC.Dcd : Rq→{0, 1}d, 디코딩 시 사용되는 오류 정정 코드
- H, G: 해시함수
- n : 2의 멱승, 다항식환 Rq = ℤq[X]/(Xn + 1)를 구성하기 위한 다항식의 차수 (LWE, LWR의 dimension)
- q : 2의 멱승, 다항식환 Rq = ℤq[X]/(Xn + 1)를 구성하기 위한 modulus (LWE, LWR의 modulus)
- p : 2의 멱승, 공개키 구성 시 Rounding 후 modulus (LWR의 Rounding modulus)
- k1, k2: 2의 멱승, 암호문 압축 후 modulus
- hs: 양의 정수, 비밀키(s)의 해밍웨이트 (LWR의 비밀키의 해밍웨이트)
- hr: 양의 정수, 키 캡슐화(Encaps) 시 임시 비밀키(ephemeral secret) r의 해밍웨이트(LWE의 비밀키의 해밍웨이트)
- he: 양의 정수, 키 캡슐화(Encaps) 시 에러 벡터의 해밍웨이트 (LWE의 에러에 대한 해밍웨이트)
- d: 양의 정수, 키 캡슐화(Encaps) 시 랜덤 씨드의 비트 수
- f: 양의 정수, ECC를 사용하여 복구 가능한 에러의 비트 수
TiGER의 IND-CCA KEM은 다음과 같이 구성된다.
IV. Meet-LWE 공격 기법
이 절에서는 2021년 Alexander May가 제안한 조합론적 공격인 Meet-LWE 공격 알고리즘[10]을 간략히 소개하고, 공격 복잡도(Complexity)에 관해 다룬다.
4.1 기호
LWE 인스턴스 (A, b = As + e mod q)가 주어져 있다고 하자. A∈ℤn×mq이고, s∈ℤn와 e∈ℤm는 ternary 벡터라고 가정한다. n차원 ternary 벡터들의 집합을 Tn으로 정의한다. 추가적으로 s의 해밍웨이트는 h로 고정하며, s의 1의 원소 개수와 –1의 원소 개수를 동일하게 설정한다. 위 성질을 만족하는 비밀키 s의 집합을 Tn(h)으로 표기한다.
4.2 공격 아이디어
LWE문제를 다음과 같은 리스트(list)를 만드는 것으로 생각할 수 있다.
L = {s ∈ Tn(h) : b - As mod q ∈ Tn}
Meet-LWE는 s∈Tn(h)의 다양한 표현(representation)에서 시작한다. Meet-LWE 공격은 s를 s = s1 + s2로 분할할 때, s1,s2가 Tn(h/2)의 원소가 되도록 하는 표현 방식이 다양할 것이라는 관찰에서 시작한다.2) 이 관찰을 통해, b = As + e mod q의 정의에 따라 다음을 관찰할 수 있다.
b - As2 + e = As1 mod q (1)
e를 분해하여 e1∈Tn/2 × 0n/2, e2∈0n/2 × Tn/2로 정의한다면, 식 (1)을 다음처럼 이해할 수 있다.
b - As2 + e2 = As1 + e1 mod q (2)
식 (2)을 통해 e가 ternary 벡터이기 때문에, As1과 b - As2의 각 성분의 차이가 최대 1이라는 사실을 관찰할 수 있다.
Odlyzko가 제안한 LSH(Locality SensitiveHashing) 방법을 활용하여 s1과 s2를 찾고이를 통해 비밀키 s를 복구할 수 있다. LSH로 사용할 함수 ℓ : ℤnq→{0, 1}n은 다음처럼 정의한다:
\(\begin{aligned}\ell(x)_{i}=\left\{\begin{array}{l}0, \quad 0 \leq x_{i}<\lfloor q / 2\rfloor-1 \\ 1, \quad\lfloor q / 2\rfloor \leq x_{i}<q-1\end{array}\right.\end{aligned}\)
정의되지 않은 경계값(boarder values) ⌊q/2⌋ -1과 q - 1에는 ℓ(x)i에 0과 1 모두 값을 할당하면, 다음 등식들이 높은 확률로 성공함을 기대할 수 있다.
ℓ(As1) = ℓ(As1 + e1)
ℓ(b - As2 + e2) = ℓ(b - As2)
따라서, ℓ(As1) = ℓ(b - As2)가 성립하는 s1과 s2 를 찾고, 최종적으로 b - (As1 + As2) mod q가 ternary 벡터가 됨을 확인함으로써 비밀키 s = s1 + s2의 후보를 찾을 수 있다. 두 개의 리스트
L'1 = {(s1, ℓ(As1) : ℓ(As1) = ℓ(As1 + e1)}
L'2 = {s2, ℓ(b - As2) : ℓ(b - As2 + e2) = ℓ(b - As2)}
를 만들어 ℓ(As1) = ℓ(b - As2), s1 + s2∈Tn(h)을 만족하는 벡터 (s1, s2)를 찾으면 공격이 유의미한 확률로 성공하게 된다. 이 알고리즘의 경우 Meet-in-the-middle로 불리는 알고리즘의 형태로, 두 개의 리스트를 만들고, 리스트 사이의 충돌쌍(collision)을 만들어 비밀키 s를 찾는 방법이다. 두 개의 리스트를 넘어 리스트의 트리(Tree)로 확장시킨 것이 Meet-LWE의 기본 개념이다.
트리 구조로 확장시키기 위해 쓰이는 주요 아이디어는 정사영(projection)이다. s를 s1, s2로 표현할 수 있는 방법의 경우의 수를 R이라고 했을 때, r = ⌊logqR⌋라고 하자. 정사영 함수 πr :ℤnq→ℤrq을 다음과 같이 정의하고,
x = (x1, …, xn)↦πr(x) = (x1, …, xr)
πr을 이용하여 다음 리스트들을 생각한다.
L1(e1) = {(s1, ℓ(As1)) : πr (As1 + e1) = 0 mod q}
L2(e2) = {(s1, ℓ(b - As2)) : πr(b - As2 + e2) = 0 mod q}
이 때, πr의 치역의 원소의 개수는 qr이고, s의 표현방법의 가짓수를 R = qlogqR 로 표기한다면, qr < R 이므로 πr(As1 + e1) =πr(As1) + πr(e1) = 0 mod q가 성립하는 s1이 항상 존재하는 것으로 기대할 수 있다. 또한, 식 (2)와 정사영 πr의 성질을 활용하면 πr(b - As2 + e2) = 0이 자동적으로 성립한다는 것 또한 관찰할 수 있다. 한편, πr(e1)과 πr(e2)는 비밀값이기 때문에, 가능한 모든 πr(e1)과 πr(e2)을 추측하는 방법을 사용한다. 이때, 전수조사에 소요되는 시간은 O(3r/2)이며, r을 작은 값으로 설정한다.
정리하자면, Meet-LWE의 기본적인 아이디어는 트리구조로 확장할 수 있는 리스트를 만들고, 리스트를 통해 s1과 s2를 복구하는 것으로 이해할 수 있다.
L1 = ∪π(e1)L1(e1)
L2 = ∪π(e2)L2(e2)
4.3 공격 알고리즘
본 절에서는 이전 절에서 언급한 Meet-LWE 공격 아이디어를 더 구체화하여 공격 알고리즘을 설명한다. 주로, 정사영을 이용하여 트리구조를 갖는 리스트를 설계하는 방법을 논의한다. 알고리즘의 정확성을 위한 자세한 파라미터 설정은 언급하지 않는다.성능의 최적화를 위한 다양한 요소 또한 생략한다.
서술의 용이함을 위해 L(i)를 레벨-i 리스트라고 하자. Meet-LWE의 공격 아이디어는, LWE 문제를 해결하는 것을 레벨-0의 리스트로 이해하고, 레벨-0의 리스트를 얻기 위해 레벨-1 리스트 두 개를 만드는 것으로 이해할 수 있다. 귀납적으로 생각하면 레벨-i 리스트 하나를 만들기 위해, 레벨-(i + 1) 리스트 두 개가 필요하다. 즉, 레벨-0의 리스트를 만들기 위해, 레벨-2 리스트 네 개가 필요하다. 리스트의 최고 레벨을 t라고 한다면, 레벨-0의 리스트를 만들기 위해 2t개의 레벨-t 리스트가 필요하다.
편의상 t = 3이라고 하고, 각 레벨 리스트들의 생김새를 살핀 후, 알고리즘을 설명한다. 레벨-2 리스트를 설명하기 위해, 레벨-0, 레벨-1 리스트를 다음과 같이 정의한다.3)
L(0) = {s(0)∈Tn(h) : b - As(0) mod q ∈Tn}
L(1)1 = {s(1)1, ℓ(As(1)1)) : πr(1)(As(1)1 + e1) = 0 mod q}
L(1)2 = {s(1)2, ℓ(b - As(1)2)) : πr(1)(b - As(1)2 + e2) = 0 mod q}
이때, s(1)1, s(1)2 ∈ Tn(h/2)가 된다. 만약, L(1)1을 설계하기 위해 레벨-2 리스트 L(2)1, L(2)2가 필요했다면, 레벨-2 리스트 원소는 동시에 Tn(h/4)의 원소이다.
구체적으로 레벨-2 리스트는 다음 과정을 통해 설계된다. 먼저, s(1)1 = s(2)1 +s(2)2, s(1)2 =s(2)3 +s(2)4를 만족하는 Tn(h/4)의 원소 s(2)1, s(2)2, s(2)3, s(2)4를 식(2)에 대입하면, 다음 식을 얻는다.
b - (s(2)3 + s(2)4) + e2 = A(s(2)1 + s(2)2) + e1 mod q
위 식을 통해 레벨-2 리스트는 다음 네 종류로 구성된다.4)
L(2)1 = {(s(2)1, As(2)1) : πr(2)(As1) = t mod q}
L(2)2 = {s(2)2, As(2)2) : πr(2)(As2 + e1) = -t mod q}
L(2)3 = {s(2)3, b - As(2)3) : πr(2)(b - As(2)3) = t' mod q}
L(2)4 = {s(2)4, As(2)4) : πr(2)(As(2)4 + e2) = -t' mod q}
이때, t, t′는 임의의 벡터이고, r(2) < r(1)을 만족해야한다. 파라미터 r(2)는 레벨-1 리스트의 임의의원소 s(1)를 표현(representation)하는 방법의 경우의 수에 의존한다. 표현 경우의 수 R(2)라고 하면, r(2) = ⌊ logqR(2) ⌋이다.
한편, 최고 레벨인 레벨-3리스트는 기존과 다르게 설정한다. 임의의 i∈{1, 2, 3, 4}에 대하여, 다음과 같이 정의한다.
L(3)2i-1 = {s(3)2i-1 ∈ Tn/2(h/8) × 0n/2}
L(3)2i = {s(3)2i ∈ 0n/2 × Tn/2(h/8)}
이때, 레벨-3리스트는 전수조사하여 직접 만든다. 이 시간은 대략 \(\begin{aligned}\left(\begin{array}{l}n / 2 \\ h / 8\end{array}\right)\end{aligned}\) 정도 소요되고, h/8이 작은 경우에 레벨-3리스트를 만들 수 있다.5) 공격 알고리즘은 리스트를 설명했던 방식의 역순으로 진행된다.
1) 레벨-3 리스트 L(3)i를 만든다. (i∈{1, …, 8})
2) L(3)2i - 1 과 L(3)2i를 이용해 레벨-2 리스트 L(2)j를 만든다. (j∈{1, 2, 3, 4})
3) L(3)2j - 1 과 L(3)2j를 이용해 레벨-1 리스트 L(1)1, L(1)2를 만든다.
4) L(1)1, L(1)2를 이용해 비밀키 s를 찾는다.
4.4 공격 복잡도
Meet-LWE의 복잡도는 1) πr(e1), πr(e2)를 전수조사 하는 데 소요되는 시간, 2) 리스트를 만드는데 걸리는 시간 크게 두 부분으로 구성되어 있다. e1과 e2의 구조적 특성 때문에, πr(e1), πr(e2)를 전수 조사하기 위한 공격 복잡도는 에러가 ternary 벡터인 경우 3r로 고정되어 있으며, 만약 ei의 계수가 삼진벡터가 아닌 [-B, B]의 원소라면, 복잡도가 (2B + 1)r이 된다. 리스트를 만드는데 소요되는 복잡도는 아래와 같다. 자세한 설명은 원논문[10]을 참조하면 된다. 먼저 레벨-i의 리스트 크기를 |L(i)|로 표기하고, 만드는데 걸리는 소요시간(cost)를 T(i)로 나타내자.
1) 레벨-3 리스트 소요시간 \(\begin{aligned}T^{(3)}=\sqrt{S^{(2)}}\end{aligned}\) :
MitM(Meet-in-the-Middle)에 의해 성립한다. 이때, S(2)는 s(2)i의 키 공간(key space)의 크기다.
2) 레벨-2 리스트 소요시간 \(\begin{aligned}T^{(2)}=\frac{\left|L^{(3)}\right|^{2}}{q^{r^{(2)}}}\end{aligned}\) :
πr(2)의 정의와 레벨-2 리스트의 정의에 따라 r(2)개의 좌표에서는 등식이 성립해야 한다. 각 좌표가 ℤq위에서 정의되었기 때문에, L(2)i를 만드는데 소요되는 시간의 기대값은 \(\begin{aligned}\frac{\left|L^{(3)}\right|^{2}}{q^{r^{(2)}}}\end{aligned}\) 이다.
3) 레벨-1 리스트 소요시간 \(\begin{aligned}T^{(1)}=\frac{\left|L^{(2)}\right|^{2}}{q^{r^{(1)- r(2)}}}\end{aligned}\) :
πr(1)의 정의와 레벨-1 리스트의 정의에 따라 r(1)개의 좌표에서는 항상 등식이 성립해야 한다. 추가적으로 레벨-1 리스트는 레벨-2 리스트들로부터 설계되기 때문에, r(2)개의 좌표에서는 이미 등식이 성립하고 있는 상황이다. 따라서 남은 r(1) - r(2)개의 좌표에서 등식이 성립함을 확인하면 된다. L(1)i를 만드는데 소요되는 시간의 기대값은 \(\begin{aligned}\frac{\left|L^{(2)}\right|^{2}}{q^{r^{(1)-r(2)}}}\end{aligned}\) 이다.
4) 레벨-0 리스트 소요시간 \(\begin{aligned}T^{(0)}=\frac{\left|L^{(1)}\right|^{2}}{2^{n-r^{(1)}}}\end{aligned}\) :
레벨-1 리스트의 정의에 따라 r(1)개의 표에서는 이미 등식이 성립한 상황이므로 남은 n - r(1)개의 좌표에서 등식이 성립함을 보이면 충분하다. 기존의 레벨-(i ≧ 1) 리스트들과 달리, LSH를 사용하기 때문에 해시값의 각 좌표는 0 또는 1이다. 따라서 L(0)를 만드는데 소요되는 시간의 기대값은 \(\begin{aligned}\frac{\left|L^{(1)}\right|^{2}}{2^{n-r^{(1)}}}\end{aligned}\) 이다.
따라서, Meet-LWE 알고리즘의 총소요시간은 3rmax(T(0), T(1), T(2), T(3))이 되며, 만약 ei의 계수가 삼진벡터가 아닌 [-B, B]의 원소인 경우에는 (2B + 1)r max (T(0), T(1), T(2), T(3))이 된다.
4.5 공격 최적화-다양한 표현방법
4.2절과 4.3절에서 표현의 정의를 s∈Tn(h)를 s = s1 + s2로 나눌 때, s1, s2가 Tn(h/2)의 원소가 되는 s1, s2의 방식으로 정의하였다. 원 논문[10]에서는 세 가지의 표현 방법을 사용한다. 4.2와 4.3절에서 사용했던 표현방법을 Rep-0이라고 부르고, 이를 확장한 방법론으로 Rep-1, Rep-2를 제안하였다. 구체적인 Rep-1과 Rep-2정의는 다음과 같다:
Rep-1: s(i) ∈ Tn(h(i)), s(i) = s(i + 1)1 + s(i + 1)2이면서 s(i + 1)1, s(i + 1)2 ∈ Tn(h(i + 1)), h(i + 1) > h(i)/2 표현
Rep-2: s(i) ∈ Tn(h(i)), s(i) = s(i + 1)1 + s(i + 1)2이면서 s(i + 1)1, s(i + 1)2 ∈ {-2, 1, 0, 1, 2}n 표현
각 표현 방법에 따라 표현 경우의 수 R(i)가 바뀌며, 그에 맞춰서 정사영 파라미터 r(i)의 값이 바뀌게 된다. 실험적으로 Rep-2 표현을 사용했을 때, 알고리즘의 효과가 가장 좋은 것으로 알려져 있다.
V. TiGER KEM 안전성 분석 결과
본 절에서는 TiGER KEM에 대한 파라미터와 안전성 목표를 살펴보고, Meet-LWE 공격 적용 시의 안전성 분석 내용을 다룬다.
5.1 TiGER 파라미터와 안전성 목표
TiGER는 NIST 안전성 레벨 (Security Level) 1, 3, 5에 대응하는 파라미터인 TiGER128, TiGER192, TiGER256을 제안하였으며, 각각은 AES128, AES192, AES256과 동등한 수준의 안전성을 기준으로 하여 선별되었다. 각 안전성 레벨에 따른 구체적인 파라미터 수치는 Table 1. 과 같다.
Table 1. Recommended Parameters of TiGER
또한, TiGER 제안서 5.4절에서는 각각에 대한 공격 시 TiGER128은 120-bit, TiGER 192는 192-bit, TiGER256은 246-bit 이상의 양자 안전성을 만족할 것으로 보고하였다. 이러한 예측은 BKZ 알고리즘[9]의 복잡도를 해당 알고리즘의 부분 알고리즘 중 `SVP oracle’에 대한 복잡도로 환원하는 Core-SVP 모델에 기반한다.
5.2 안전성 분석
본 절에서는 TiGER KEM에 대해 Meet-LWE 적용 시의 공격량을 분석한다. TiGERKEM의 안전성은 sparse한 비밀키를 사용하는 LWE와 LWR에 기반한다. 또한, 키 캡슐화 과정에서 LWE 인스턴스에 대해 추가적인 Rounding을 적용하여 암호문을 압축했기 때문에, 분석의 입장에서는 LWE 에러와 modulus k2로의 Rounding 에러의합산을 고려해야 한다. 이러한 관점에서 TiGER192, TiGER256에 대해서는 hs = hr, q > p > k2를 만족하기 때문에 키 생성에서 사용한 LWR 인스턴스에 대한 공격량이 키 캡슐화에서 사용한 LWE 인스턴스에 대한 공격량보다 더 작을 것이라고 유추할 수 있다. 따라서, TiGER192, TiGER256에 대한 안전성 분석에서는 키 생성에서 사용한 LWR 인스턴스에 대한 공격량을 집중적으로 분석하였다. 또한, TiGER128 파라미터에 대해서는 LWE와 LWR 인스턴스 각각에 대한 공격량 중 작은 값을 표기하였다. 또한, LWE/LWR 에러의 크기에 따라 Meet-LWE의 알고리즘을 변형 및 확장하여 분석하였다. 아래 Table 2. 와 Table 3. 은 각각 Meet-LWE 공격에 대한 시간복잡도와 공간복잡도의 로그값을 나타낸 결과(소수점 아래 첫째 자리에서 반올림함)이다.
Table 2. Estimated log time complexity(log2(time complexity) of Meet-LWE attack for the paramter sets TiGER128, TiGER192, TiGER256.
Table 3. Estimated log memory complexity of Meet-LWE attack for the paramter sets TiGER128, TiGER192, TiGER256.
5.3 Discussion
5.2절에서 TiGER KEM에 대한 Meet-LWE 공격 적용 시의 공격량을 분석한 결과, Fig.1. 과 같이 TiGER128, TiGER192, TiGER256 파라미터에 대해 각각 167-bit, 170-bit, 298-bit의 classical 안전성을 갖는다는 것을 확인하였다. 특히, TiGER192의 경우 Rep-2를 이용하는 Meet-LWE에 대해 170-bit 안전성을 갖기 때문에 TiGER 제안문서에서 주장한 192-bit의 양자안전성을 만족하지 못한다는 것을 확인할 수 있었다.
Fig. 1. Test Results for the Python code to compute Meet-LWE attack time and memory complexities for Rep-0, Rep-1, Rep-2, respectively.
Meet-LWE 공격에 대한 안전성을 보장하기 위해 가장 유효하고 효율적인 방법 중 하나는 LWE/R 비밀키의 해밍웨이트를 늘리는 것이다. 계산 결과, TiGER192 파라미터에 대해 비밀키의 해밍웨이트를 100 이상(resp. 104 이상)으로 설정하면 Meet-LWE 공격에 대해 192-bit(resp. 200-bit)의 classical 안전성을 만족한다는 것을 확인하였다. 비밀키의 해밍웨이트 범위 84~110일 때 TiGER 파라미터에 대한 Meet-LWE 공격의 시간복잡도를 Fig.2. 에 표시하였다.
Fig. 2. Meet-LWE Time Complexity for the LWR Instance in TiGER when increasing hs
VI. 결론
본 논문에서는 KpqC 1 라운드 TiGERKEM에 대해 Meet-LWE 공격 적용 시의 분석 결과를 다루었다. 특히, TiGER192 파라미터에 대해 Meet-LWE 공격 적용 시 170-bit의classical 안전성을 달성하기 때문에 목표하는 안전성을 만족하지 못함을 보였다.
Appendix
본 부록에서는 타 격자 기반 KEM에 대한 Meet-LWE 공격 적용 시 공격복잡도를 분석한다. KpqC 1 라운드 격자 기반 KEM 3종 중 SMAUG, NTRU+ 파라미터에 Meet-LWE 공격 적용 시 시간복잡도의 로그값은 각각 Table 4. , Table 5. 와 같다.
Table 4. Estimated log time complexity(log2 (complexity) of Meet-LWE attack for the paramter sets SMAUG128, SMAUG192, SMAUG256.
Table 5. Estimated log time complexity (log2 (complexity) of Meet-LWE attack for the paramter sets NTRU+576, NTRU+768, NTRU+864, NTRU+1152.
참고문헌
- P.W. Shor, "Algorithms for quantum computation: discrete logarithms and factoring," Proceedings 35th annual symposium on foundations of computer science. IEEE, pp. 124-134, Nov. 1994.
- J.Y. Park, Y.H. Moon, W. Lee, S.H. Kim and K. Sakurai, "A survey of polynomial multiplication with RSA-ECC coprocessors and implementations of NIST PQC round3 kem algorithms in Exynos2100," in IEEE Access, vol. 10, pp. 2546-2563, Dec. 2021.
- KpqC Competition Algorithms, (10/5, 2023), https://kpqc.or.kr/competition.html
- J. Buchmann, et al. "On the hardness of LWE with binary error: Revisiting the hybrid lattice-reduction and meet-in-the-middle attack," International Conference on Cryptology in Africa (AFRICACRYPT 2016), LNCS 9646, pp. 24-43, Apr. 2016.
- V. Lyubashevsky, C. Peikert, and O. Regev. "On ideal lattices and learning with errors over rings," Advances in Cryptology, EUROCRYPT 2010: 29th Annual International Conference on the Theory and Applications of Cryptographic Techniques, LNCS 6110, pp. 1-23, May. 30-Jun. 3, 2010.
- F. Luo, F. Wang, K. Wang and K.Chen, "Fully homomorphic encryption based on the ring learning with rounding problem," IET Information Security, vol. 13, no. 6, pp. 639-648, Nov. 2019. https://doi.org/10.1049/iet-ifs.2018.5427
- D. Hofheinz, K. Hovelmanns, and E. Kiltz. "A modular analysis of the Fujisaki-Okamoto transformation," Theory of Cryptography Conference (TCC 2017), LNCS 10677, pp 341-371, Nov. 2017.
- H. Baan, S. Bhattacharya, S. Fluhrer, O. Garcia-Morchon, T. Laarhoven, R. Rietman, M.O. Saarinen, L. Tolhuizen and Z. Zhang, "Round5: Compact and Fast Post-quantum Public-Key Encryption," Post-Quantum Cryptography (PQCrypto 2019), LNCS 11505, pp. 83-102, Jul. 2019.
- E. Alkim, L. Ducas, T. Poppelmann and P. Schwabe, "Post-quantum key Exchange-A new hope," 25th USENIX Security Symposium (USENIX Security 16). pp. 327-343, Aug. 2016.
- A. May, "How to meet ternary LWE keys" Proceedings of the 2021 Advances in Cryptology-CRYPTO 2021, LNCS 12826, pp.701-731, Aug. 2021.
- M.R. Albrecht, R. Player and S. Scott. "On the concrete hardness of Learning with Errors". Journal of Mathematical Cryptology. vol. 9, no. 3, pp. 169-203, Oct. 2015. https://doi.org/10.1515/jmc-2015-0016
- K. Boudgoust, C. Jeudy, A. Roux-Langlois and W. Wen. "On the hardness of module-LWE with binary secret," Cryptographers' Track at the RSA Conference, pp. 503-526, May 2021.
- KpqC Bulletin Board, (10/5, 2023), https://groups.google.com/g/kpqc-bulletin
- S. Park, C. Jung, A. Park, J. Choi, and H. Kang. "TiGER: Tiny bandwidth key encapsulation mechanism for easy miGration based on RLWE(R)," IACR ePrint 2022-1651, Nov. 2022.