DOI QR코드

DOI QR Code

A Study on Efficient Signing Methods and Optimal Parameters Proposal for SeaSign Implementation

SeaSign에 대한 효율적인 서명 방법 및 최적 파라미터 제안 연구

  • Received : 2024.01.10
  • Accepted : 2024.02.21
  • Published : 2024.04.30

Abstract

This paper proposes optimization techniques for SeaSign, an isogeny-based digital signature algorithm. SeaSign combines class group actions of CSIDH with the Fiat-Shamir with abort. While CSIDH-based algorithms have regained attention due to polynomial time attacks for SIDH-based algorithms, SeaSiogn has not undergone significat optimization because of its inefficiency. In this paper, an efficient signing method for SeaSign is proposed. The proposed signing method is simple yet powerful, achived by repositioning the rejection sampling within the algorithm. Additionally, this paper presnts parameters that can provide optimal performance for the proposed algorithm. As a result, by using the original parameters of SeaSign, the proposed method is three times faster than the original SeaSign. Additonally, combining the newly suggested parameters with the signing method proposed in this paper yields a performance that is 290 times faster than the original SeaSign and 7.47 times faster than the method proposed by Decru et al.

본 논문은 isogeny 기반 전자 서명 알고리즘인 SeaSign의 최적화 방안을 제안한다. SeaSign은 CSIDH의 class group action에 Fiat-Shamir with abort를 결합한 전자서명 알고리즘이다. CSIDH 기반 암호는 SIDH 기반 암호가 다항시간안에 공격됨에 따라 다시 주목받고 있지만, 이를 기반한 전자서명인 SeaSign은 비효율적인 속도로 많은 최적화가 진행되지 않았다. 본 논문에서는 SeaSign에 대한 효율적인 서명 방법을 제안한다. 제안하는 서명 방법은 간단하지만 강력하며, 알고리즘 내에서 rejection sampling의 위치 변경을 통해 이루어진다. 추가로, 본 논문에서는 제안하는 알고리즘이 최적 성능을 제공할 수 있는 파라미터를 제시한다. 제시한 결과, 기존 SeaSign의 파라미터를 사용할 경우, 본 논문에서 제안한 서명방법은 기존 SeaSign 대비 3배 빠른 성능을 보인다. 추가로 신규 제시된 파라미터와 본 논문의 서명 방법을 결합한 경우, 기존 SeaSign 대비 290배 빠른 성능과 Decru 등이 제안한 방법 대비 7.47배 빠른 성능을 제공한다.

Keywords

I. 서론

Isogeny 기반 암호의 시작은 Couveignes의 제안으로 부터라고 볼 수 있다[1]. 2006년 Couveignes는 유한체 위에서 정의된 두 타원곡선 사이의 isogeny를 찾는 어려움을 기반으로 키 교환 방식과 전자 서명 방법을 제안하였으며, 이후 이 아이디어가 Rostovtsev와 Stolbunov에 의해 발전되어 오늘날 CRS 암호라고 불리게 된다. CRS는 ordinary curve를 사용하여 암호를 제안하였는데, ordinary curve의 경우 endomorphism ring이 가환적이라는 특징이 있어, 후에 2014년 Childs 등에 의해 이를 활용한 양자 하지수시간 알고리즘에 의해 공격당하게 된다[2]. 하지만 CRS 암호의 더 큰 문제점은 하지수시간의 공격 보다도 느린 속도에 문제가 있었으며, 지수시간의 복잡도를 가진 래티스 기반 암호와 같은 다른 PQC (Post-quantum cryptography) 암호에 비해 몇 배나 느린 속도로 주목받지 못하게 되었다. Isogeny 기반 암호가 다시 활발하게 연구되기 시작한 것은 2011년 De Feo와 Jao에 의해 제안된 Supersingular Isogeny Diffie-Hellman (SIDH) 부터이다[3]. SIDH는 supersingular 곡선을 사용하여 endomorphism ring이 가환적이지 않아 기존 Childs 등의 공격에 대응하여 양자 지수시간의 복잡도를 가진다. 또한, 최적 알고리즘 개발로 인해 CRS보다 훨씬 효율적인 성능을 자랑한다. SIDH 에 기반한Supersingular Isogeny Key Encapsulation (SIKE)는 NIST PQC 표준화 공모전에 제출되어 Round 4의 대체 후보로 선정되었다. 이후, SIKE를 비롯한 SIDH 기반 암호는 제안된 지 10년 동안 Meet-in-the-Middle (MitM)보다 효율적인 공격 방법이 제안되지 않았으며, 심지어 양자 컴퓨터를 활용해서 공격하는 것보다 고전 컴퓨터를 활용한 공격이 더 효율적일 수 있다는 연구결과가 나오면서 표준화될 PQC 암호의 후보로 자리매김하였다. 하지만, 2023 Castryck-Decru의 키 복구 공격에 의해 모든 보안강도에서 SIDH 기반 암호의 개인키가 다항 시간안에 분석되면서 더 이상 사용할 수 없게 된다. [4]에서 제안된 Castryck-Decru의 공격은 Alice와 Bob이 키를 교환하는 과정에서 주고받는 torsion point 정보를 활용한다. SIDH 기반 암호의 경우 비가환적인 성질로 인해 Diffie-Hellman 키 교환처럼 단순히 값을 연산해서 전달해주는 것으로 같은 공유키를 유도할 수 있는 것이 아니라, 자신의 개인키로 상대방의 공개키를 연산한 결과를 전달해 주어야 같은 공유키를 유도할 수 있다. 이 정보를 torsion point information이라 하며, 이 정보와 Kani의 알고리즘을 활용하면 SIDH 기반 암호의 개인키가 복구된다. 이렇듯 SIDH 기반 암호가 더 이상 사용할 수 없게 되면서 CSIDH 기반 암호가 isogeny 기반 암호의 대체로 떠오르게 된다.

Castryck 등에 의해 제안된 CSIDH (Commutative SIDH)는 기존 CRS 기반 암호를 supersingular curve를 활용하는 것을 통해 파라미터 선택을 모던화 한 키 교환 알고리즘이다[5]. CRS 기반 암호의 장점은 CCA 안전한 암호화 설계가 가능하며, 가환적인 성질로 non-interactive 키 교환 알고리즘 설계가 가능하다. 따라서, 이 장점을 살리고자 De Feo, Kieffer 등과 Castryck 등이 독립적으로 CRS 기반 암호의 최적화 방법을 제안하였다. 이 중 CSIDH는 Fp2에서 정의된 supersingular curve를 Fp로 제안하여, 가환성을 유지하면서 supersingular curve의 효율적인 파라미터 선택을 가능하게 하였다. 현재, 고전 128-비트 보안강도에서 CSIDH 기반 암호의 키 교환을 진행하는데 대략 80ms 정도의 시간이 걸린다. 처음 제안당시에는 동일한 양자 보안강도에서는 SIDH 기반 암호보다 더 느린 속도와 더 큰 키 사이즈로 주목받지 못하다가, SIDH 기반 암호가 Castryck-Decru 공격으로 인해 다항시간 안에 해결되면서 CSIDH 기반 암호가 다시 주목받기 시작하였다.

Isogeny 기반 암호는 느린 속도가 큰 단점으로 여겨지고 있지만, 사실 이 못지 않게 단점으로는 효율적인 전자 서명 알고리즘의 부재라고 볼 수 있다. 처음 제안된 isogeny 기반 전자서명으로는 Yoo 등이 제안하였다[6]. Yoo 등은 양자 컴퓨팅 환경에서도 안전한 Fiat-Shamir transform 인 Unruh의 방법을 사용하여 isogeny 기반 전자서명을 제안하였다. 하지만, 제안한 전자서명은 속도가 느릴 뿐만 아니라, 다른 PQC 전자 서명에 비해 훨씬 큰 서명과 키 사이즈로 isogeny 기반 암호가 가지고 있던 장점마저도 사라진 형태의 전자서명이였다. 또한, 마찬가지로 SIDH 기반으로 설계가 되었기 때문에 기존 Castryck-Decru 공격에 대응할 경우 성능이 더 좋지 않은 결과를 가져온다. 이와 독립적으로 비슷한 시기에 Galbraith, Petit, Silva는 KLPT 알고리즘을 사용하여 isogeny 기반 전자 서명 알고리즘을 제안하였다[7]. 해당 알고리즘은 수학적으로 완성도가 높은 알고리즘이나, 마찬가지로 비효율적인 성능이였는데, 이후 이 KLPT 알고리즘을 최적화하는 파라미터를 활용한 SQISign은 현재 isogeny 기반 암호중에서 가장 효율적인 전자서명으로 주목받고 있다. SQISign은 NIST PQC 전자서명 표준화 공모전 Round 1의 후보로 등록되어있다.

한편, 2019년에 CSIDH 기반 전자서명인 SeaSign이 De Feo와 Galbraith에 의해 제안되었다[8]. 해당 방법은 기존 Stolbunov가 제안한 전자서명 알고리즘에서 개인키가 노출되는 부분을 rejection sampling을 적용하여 대응하였으며, Lyubashevsky의 ‘Fiat-Shamir with abort’을 활용하여 안전한 전자 서명을 제안하였다. 초기 제안된 Stolbunov의 버전에서는 같은 균등 분포에서 선택된 개인키 벡터와 랜덤한 벡터의 차를 서명값에 포함한다. 균등 분포에서 선택된 벡터의 차는 균등 분포를 이루지 않기 떄문에 다량의 서명값을 획득할 경우 개인키의 분포가 노출되는 위험이 있다. 따라서 De Feo와 Galbraith는 rejection sampling 방법을 활용하여, 랜덤한 벡터는 더 큰 범위의 균등분포에서 선택하고, 개인키와 랜덤한 벡터의 차의 성분이 특정 범위 안에 존재할 때만 서명값으로하여 개인 키 분포의 노출을 막았다. 하지만, 랜덤한 벡터를 선택하는 범위가 isogeny 연산 횟수에 영향을 미치는 만큼 몇 시간 이상이 되는 서명 속도로 비효율적이다. 한편, SeaSign 논문에는 만약 class group의 구조를 파악할 수 있을 경우, class group의 랜덤한 ideal을 기존 벡터형태가 아니라 이산대수 문제와 유사하게 generator에 대한 지수 형태로 선택할 수 있고, 이 경우에는 랜덤 ideal을 선택하기 위해 더 큰 범위를 사용할 필요가 없어 효율적이라고 제시하였다. 해당 방법을 실제로 구현하여 제시한 결과가 CSI-FiSh 이다[9]. CSI-FiSh는 기존 CSIDH-512 파라미터에 사용된 512비트 소수 위에 정의된 타원곡선에 대해 class group 연산을 실제로 수행하여 해당 class group의 generator 하나로 생성된 cyclic group이라는 결론을 통해 효율적인 서명 속도를 제시하였다. 제안하는 방법을 활용하면 고전 128비트 보안강도에서 서명하는데 대략 390ms 정도의 속도로, 이는 isogeny 기반 암호에서는 획기적인 결과로 CSIDH 기반 전자서명이 주목받게 되었다. 그러나 최근 CSIDH 기반 암호에 대한 엄밀한 양자 분석 결과 128비트 양자 보안강도를 위해서는 1024비트 이상의 큰 유한체가 필요하고, class group 연산은 현재 컴퓨팅 환경에서 하지수시간 복잡도를 가지고 있기 때문에, CSI-FiSh는 확장성이 부족하다. 이후, CSI-FiSh의 확장성을 위해 KLPT 알고리즘처럼 두 타원곡선 사이의 ideal을 직접 찾는 방법을 활용한 전자서명인 SCALLOP이 제안되고, Kani 방법과 결합해서 이를 고차원에서 확장한 SCALLOP-HD가 제안되었으나, 공격 방법인 Clapoti(s) 알고리즘이 제안되면서 더 이상 사용할 수 없게 된다[10].

본 논문은 SeaSign의 성능 향상을 목적으로 한다. 결론적으로 SeaSign에서 성능 측면에서의 주된 병목 현상은 rejection sampling 과정에 있으므로, 본 논문에서는 이를 개선하는 방안에 대해 제안한다. 본 논문의 기여는 다음과 같이 정리할 수 있다.

- 본 논문에서는 먼저 rejection sampling이 사용되지 않은 환경에서 SeaSign의 안전성을 확인한다. 이를 위해 rejection sampling을 사용하지 않을 경우 SeaSign 서명을 수집한 뒤 개인키를 복원하는 공격 도구를 개발하였다. 또한, 해당 공격 도구를 사용하여 rejection sampling이 포함된 SeaSign의 안전성을 분석하였다.

- 본 논문에서는 SeaSign의 효율적인 성능을 위한 새로운 파라미터를 제안한다. 기존 rejection sampling을 사용한 경우에는 높은 rejection율일 경우에 성능 저하가 심하므로, 큰 범위에서 벡터를 선택하게 된다. 하지만 본 논문에서는 추가로 SeaSign의 서명 알고리즘을 변경하여 작은 범위에서도 안전성을 만족하면서 효율적인 전자서명이 가능한 방법을 제안한다.

- 제안한 서명방법은 간단하지만 강력한 방법으로, rejection sampling의 위치 조정을 통해 효율적인 서명 생성 방법을 제안한다. 이를 활용하면 rejection 이 일어나지 않으면서도 기존 SeaSign의 아이디어와 유사하게 개인키의 노출이 일어나지 않는다. 제안하는 서명 방법에 대한 자세한 내용은 3장에서 소개한다.

- 본 논문에서는 SeaSign과[11]에서 제안된 최적화 방법, 그리고 본 논문에서 제안한 방법의 파라미터를 활용하여 서명 속도 비교를 진행한다. 실험 결과, SeaSign의 기본 파라미터를 사용할 경우, 본 논문의 서명 방법은 기존 SeaSign 대비 3배 빠른 성능을 보인다. 추가로, 본 논문에서 제시한 파라미터를 사용할 경우 기존 SeaSign보다 약 290배 빠르며, Decru 등이 제안한 방법보다 7.47 배 빠르다.

본 논문의 구성은 다음과 같다. 2장에서는 본 논문에서 필요한 CSIDH, SeaSign을 소개한다. 3장에서는 rejection sampling을 사용하지 않은 SeaSign에 대한 공격 결과를 제시하고, 이를 활용해서 rejection sampling을 사용할 경우 적정 파라미터를 신규 서명 알고리즘과 함께 소개한다. 4장에서는 기존 SeaSign의 최적화와 비교하여 본 논문의 구현 결과를 제시하고, 5장의 결론으로 마무리한다.

II. 배경지식

본 장에서는 논문에 필요한 배경 지식을 소개한다. 먼저 CSIDH에 대해 소개를 한 다음 여기에 기반을 둔 전자서명인 SeaSign을 소개한다.

2.1 CSIDH

CSIDH는 기존 CRS 기반의 non-interactive key exchange가 가능하다는 장점을 살리기 위해 supersingular curve를 사용하는 아이소제니 기반 키 교환 프로토콜이다[5]. 기존 CRS 기반 암호의 경우 ordinary curve를 사용하였는데 ordinary curve의 경우 특정 조건을 만족하는 위수를 선택하는 부분이 어렵다. 반면에 CSIDH는 Fp 위에 정의된 supersingular curve를 사용하여, 가환성을 가지는 group action을 활용할 수 있을 뿐만 아니라 효율적인 파라미터 선택이 가능해져 기존 CRS 기반 키 교환 알고리즘보다 속도를 향상시켰다.

E를 Fp위에서 정의된 supersingular 타원곡선이라 하고, 이 경우 타원곡선 E의 Fp위에서 정의된 endomorphism ring Endp(E)은 Endp(E) = Z[π]를 만족한다. 한편, End(E)는 quaternion order로 Endp(E)는 End(E)의 가환적인 subring이 되며, supersingularity로 인해 trace는 0이 되고, E(Fp) = p + 1을 만족한다. 만약 유한체 Fp의 소수 p를 p = fΠℓi - 1 의 형태라고 가정하자. 여기에서 ℓi는 서로 다른 홀수 소수를 의미하고 f는 p가 소수가 되게하는 cofactor를 의미한다. 이 경우 E(Fp) = p + 1 = fΠℓi로 가 되어 모든 ℓi의 torsion point를 가질 뿐만 아니라, 각 소수 ℓi에 대해 π2 - 1 ≡ 0 mod ℓi를 만족하게 된다. 따라서 ideal ℓiO는 \(\begin{align}\ell_{i} O=\imath_{i} \overline{l_{i}}\end{align}\)의 형태로 분해가 가능한데, 여기에서 𝚤i = (ℓi, π - 1), \(\begin{align}\bar{\imath}_{i}=\left(\ell_{i}, \pi+1\right)\end{align}\)을 의미한다. 이는 group action [𝚤i]E는 Fp위의 아이소제니 𝛷𝚤i로 연산할 수 있음을 의미한다.

CSIDH를 활용한 키 교환 방법은 다음과 같다. Alice와 Bob가 서로 키를 교환한다고 하자. Alice는 랜덤한 ideal [𝑎] = [𝚤e11⋯𝚤enn]를 선택하는데, 여기에서 𝚤i는 고정이 되기 때문에 e1,⋯,en만 선택하면 된다고 볼 수 있으며, 이는 벡터 (e1,⋯,en)∈Zn를 선택한다고 볼 수 있다. 따라서 CSIDH 기반 암호에서 개인키 ideal [𝑎]과 동치인 것은 Zn의 랜덤한 벡터 (e1,⋯,en)이다. 이때 각각의 ei는 양의 정수 m에 대해서 ei∈[-m,m]의 범위를 가지게 되어 전체 가능한 벡터의 가지수 (2m + 1)n가 class group의 원소의 개수를 포함하도록 한다.

Alice는 Velu 공식을 활용하여 공개키 EA = [𝑎]E를 연산하고 EA를 Bob에게 전달한다. Bob도 마찬가지로 개인 ideal [b]에 해당하는 벡터를 선택한 뒤, 공개키 EB = [b]E를 Alice에게 전달한다. Alice는 Bob으로 받은 EB에 대해 자신의 개인 ideal로 [𝑎]EB를 연산하고, Bob도 Alice로부터 받은 EA에 대해 자신의 개인 ideal로 [b]EA를 연산한다. CSIDH는 가환적인 성질을 가지기 때문에 Diffie-Hellman 키 교환과 유사하게 연산된 결과가 [𝑎]EB = [b]EA를 만족한다.

2.2 SeaSign

De Feo와 Galbraith에 의해 제안된 SeaSign은 CSIDH의 class group action에 Fiat-Shamir with abort를 적용하였다[8]. SeaSign은 기존 제안된 Stolbunov의 방법에서 개인키의 분포가 노출되는 것을 rejection sampling을 통해 해결하였다. CSIDH 기반 알고리즘에서는 공개키는 유한체 Fp위에 정의된 supersingular curve E와 EA = [𝑎]E다. 여기에서 [𝑎]는 개인키로, class group에서 ideal을 나타낸다. 소수 p가 p = 4ℓ12⋯ℓn - 1의 형태를 가지므로, \(\begin{align}[a]=\prod_{i=1}^{n} \iota_{i}^{\ell_{i}}\end{align}\) 형태라고 볼 수 있으며, 따라서 [𝑎] = (e1,⋯,en)의 벡터 형태로 표현된다. 일반적으로 ei는 양의 정수 B에 대해서 ei ∈ [-B,B] 범위에서 균등하게 선택된다.

Stolbunov의 identification protocol에서는 검증자는 랜덤한 ideal [b] = (f1, ⋯, fn)에서 선택한다. 여기에서 fi ∈ [-B,B]를 따른다. 만약에 challenge bit가 0일 경우에 검증자는 [b]를 제시하고, challenge bit가 1일 경우에 [b][𝑎]-1을 제시한다. 여기에서 [b][𝑎]-1는 (f1 - e1, ⋯, fn - en)으로 표현될 수 있으며, fi - ei의 분포는 더 이상 균등하지 않기 때문에 ei의 분포가 드러나게 된다.

이러한 현상을 제거하기 위해, SeaSign에서는 fi를 [-B,B]에서 선택하지 않고, 양의 정수 δ에 대해 [-(δ + 1) B, (δ + 1)B] 범위에서 선택한다. SeaSign에서 δ = nt + 1로, n은 유한체에 사용된 홀수 소수의 개수, t는 전자서명에 사용되는 해시 함수의 출력 비트의 크기이다. [b][𝑎]-1를 진행하는 과정에서 f - e를 연산한 뒤, 만약 모든 fi - ei가 [-δB,δB] 범위에 있을 경우 accept하고 그렇지 않으면 reject 한다. 해당 과정을 알고리즘으로 나타내면 다음과 같다.

JBBHCB_2024_v34n2_167_5_f0001.png 이미지

Fig. 1. SeaSign Signature Generation in [8]

512비트 유한체 상에서는 실제 class group 연산을 통해서 SeaSign을 최적화 할 수 있다. [] 에서는 CSIDH-512 파라미터를 타겟으로 class group을 연산하고, 그 결과 Cl(O)는 ideal 𝚤 = 〈3,π - 1〉 로 생성되는 cyclic group이라는 것을 확인하였다. 따라서 기존에 class group을 모르기 때문에 랜덤한 벡터 e를 선택하여 ideal \(\begin{align}[a]=\prod_{i=1}^{n} \iota_{i}^{\ell_{i}}\end{align}\)을 Cl(O)에서 랜덤하게 ideal을 선택했다 여기는 것과 다르게, #Cl(O) = n일 경우, 이산대수 형태처럼 Zn에서 랜덤한 수 r을 선택하면 𝚤r은 Cl(O)의 랜덤한 ideal이 된다. 따라서 이를 활용할 경우, [b][𝑎]-1의 연산이 𝚤r-r' 형태로 변경될 수 있어, 더 이상 개인키에 대한 노출 없이 연산이 가능하다. 이 결과 512비트 유한체에서 서명하는데 390ms 가 걸리게 되었으며, 하루 이상이 걸리던 기존 SeaSign보다 빠를 뿐만 아니라, 그때 제안되었던 다른 isogeny 기반 전자서명에 비해서도 효율적인 속도를 제공하였다. 하지만, CSIDH에 대한 면밀한 양자 안전성 분석 결과, 128비트 양자 안전성을 이루기 위해서 유한체 크기는 1024비트 보다 커져야 하고, class group 연산 자체도 현재 컴퓨팅 환경에서 하지수시간 복잡도가 걸리는 만큼, CSI-FiSh의 다른 파라미터로의 확장은 불가능한 상황이다.

III. SeaSign 안전성 분석 및 최적화

본 장에서는 기존 SeaSign의 최적화 방법에 대해 소개한 뒤, SeaSign 안전성 분석을 통한 새로운 최적화 방안에 대해 제시한다.

3.1 기존 최적화 방안

[11]에서는 향상된 rejection sampling 방법을 활용하여 SeaSign의 최적화 방안을 제안하였다. 해당 논문에는 SeaSign 최적화를 위한 2가지 방안이 제시되었지만, 가장 핵심적인 아이디어는 ‘Fiat-Shamir with aborts’에 대한 변형이라고 볼 수 있다. 해당 방법은 서명자가 서명시에 몇 개의 challenge를 reject 할 수 있도록 하는 방안이다. 이를 위해 새로운 파라미터 u ≥ 0이 사용되는데, 이는 서명자가 응답을 거부할 수 있는 challenge의 개수를 의미한다.[11]에 제안하는 서명 방법은 다음 알고리즘으로 요약할 수 있다.

JBBHCB_2024_v34n2_167_6_f0001.png 이미지

Fig. 2. Proposed optimizatino of SeaSign Signature Generation in [11]

Algorithm 2를 활용하여 서명을 진행하면, 서명값에 정확히 u개의 reject 범위 안에 있는 zk들이 존재한다. u = 0일 경우에는 기존 SeaSign과 동일하다는 것을 의미하며, u > 0인 경우에는 reject 범위 안에 있는 zk를 포함한다는 의미이며, 이는 기존 SeaSign일 경우라면은 바로 reject하고 다시 서명 생성을 시작한다면, Algorithm 2의 경우에는 u번까지만 허용하고 u+1번째 서명 생성을 다시 신작한다는 의미이다. 한편, t개 미만으로 accept 범위 안에 있는 zk가 생성될 때에도 서명을 다시 생성한다. 이를 통해 rejection 확률이 기존 SeaSign 보다 줄어들기 때문에 더 효율적인 속도를 기대할 수 있다.

3.2 제안하는 최적화 방안

본 논문에서는 서명 알고리즘의 변경을 통해 서명 속도를 향상시키는 방안에 대해 제안한다. 제안하는 방법은 기존처럼 벡터 zk를 생성한 뒤, hash output이 1일 경우 랜덤한 벡터와 개인키 e의 차를 계산한 결과인 zk - e 의 성분의 범위가 특정 조건을 만족하지 않으면 바로 reject 하는 것이 아니라, 벡터 zk를 생성할 때, 먼저 zk - e를 계산해서 특정 범위 안에 있는 벡터들을 필요한 개수대로 모은 다음에, hash output 이 0일 경우 원래의 zk를, 1일 경우 zk - e를 서명값에 포함하는 방법에 대해 제안한다. 이 경우 zk는 zk - e가 [-δB, δB]인 범위가 되도록 하게 zk가 선택된다. 하지만, 해당 zk는 개인 키 정보를 포함하지 않기 때문에 개인키 정보가 드러나지 않는다. 최적의 δ를 선택하기 위해 먼저 알고리즘을 제안한 후, SeaSign의 안전성을 분석한다.

3.2.1 서명 알고리즘의 변형

제안하는 알고리즘은 간단하지만 강력한 방법으로, 알고리즘 내의 rejection sampling에 대한 변경이다. 방법은 랜덤한 ideal (vector)를 먼저 샘플한 다음에, 개인키 벡터와의 차를 구한 다음, 특정 범위 내에 있으면 isogeny 연산을 수행하고 그렇지 않으면 다시 선택한다. 좀 더 명확하게 설명하자면, 랜덤한 ideal [bk] = (fk,1,⋯,fk,n)에 대해 bk - e의 각 성분 fk,i - ei가 [-δB, δB]내에 있을 경우 저장한다. 이러한 t개의 [bk]에 대해, Ek = [bk]E를 연산한다. 그 후 서명 과정에서 메시지 m에 대해 H(j(E1),⋯j(Et), m)을 연산한다. 여기에서 j(∙)는 타원곡선의 j-invariant를 의미한다. 만약 해시의 output 비트가 0일 경우 [bk]를 출력하고, 1일 경우 [bk][𝑎]-1 = fk - e를 출력한다. 이미 fk를 선택하는 과정에서 fk - e가 개인키의 정보를 노출하지 않기 때문에 안전하다.

기존 SeaSign의 경우에는, t개의 랜덤한 ideal을 샘플한 뒤, Ek = [bk]E를 연산하고, 해시값을 마찬가지로 계산하여, 해시 output이 1일 경우 fk - e 서명값에 포함하는 과정에서 fk - e의 범위가 특정 조건을 만족하지 않으면 다시 t개의 랜덤한 ideal을 선택하는 과정으로 돌아간다. Ek = [bk]E 연산과정이 가장 성능이 저하되는 부분이기 때문에, 해당 과정을 반복함으로써 SeaSign의 성능이 저하되었다. 하지만 제안하는 방법의 경우 먼저 ideal이 특정 범위를 만족하는지 확인하고, 범위을 만족하는 ideal에 대해서만 isogeny 연산과정이 들어가기 때문에 rejection이 일어나지 않으며 더 효율적으로 동작한다. 제안하는 방법을 알고리즘으로 나타내면 다음과 같다.

JBBHCB_2024_v34n2_167_7_f0001.png 이미지

Fig. 3. Proposed Signature Generation

정리 1. 벡터 zk의 분포는 개인키 e에 대해 독립적이다.

proof. Algorithm 3은 f - e의 각 성분의 분포가 [-δB, δB]에 있을 경우에만 f를 sample 한다. f - e가 [-δB, δB] 범위에 존재한다는 의미는, f가 [-(δ - 1)B, (δ+1)B]에 존재한다는 의미이다.

만약 bi = 0이면, f가 결과적으로는 [-(δ - 1)B, (δ+1)B] 범위에 존재하지만, 해당 부분에 개인키 정보가 포함되지 않고, f 자체는 [-(δ + 1)B, (δ+1)B]에서 sampling 한 결과이다. 따라서 f는 개인키 정보를 포함하지 않는다. bi = 1일 경우에는 Algorithm 3은 f - e를 공개하고, 이 결과는 [-δB, δB] 범위 내에 존재하며, 마찬가지로 개인키 정보를 노출하지 않는다. 다시 말해, 원래 SeaSign도 bi = 1 경우에는 f자체가 [-(δ - 1)B, (δ+1)B] 범위를 가져 f - e의 결과가 [-δB, δB]가 된다는 경우를 의미하고, 본 논문에서 제안된 결과는 bi = 0인 경우에도 [-(δ - 1)B, (δ+1)B] 범위에 있는 f를 선택한다는 것을 의미한다.

3.2.2 분석을 통해 변형된 서명 알고리즘에 대한 최적 파라미터 제안

본 장에서는 서명값에서 얻은 f - e를 통해 개인 키를 분석하는 도구에 대해 설명한다. 해당 도구를 활용하여 기존 CRS 기반 전자서명의 안전성과 SeaSign을 분석한 후, 제안하는 새로운 서명 알고리즘의 최적 파라미터를 제시한다.

3.2.2.1 서명알고리즘에 대한 안전성 분석

먼저, 목표는 개인키에 해당하는 ideal [𝑎] 혹은 이에 대응하는 벡터 e = (e1, ⋯, en)의 복원이다. 해당 공격은 SeaSign-512 파라미터를 대상으로 제시하였으며, 해당 파라미터는 [Table 1]과 같이 주어진다. 여기에서 사용하는 512비트 소수 p는

Table 1. Parameter for SeaSign-512

JBBHCB_2024_v34n2_167_8_t0001.png 이미지

\(\begin{align}p=4 \prod_{i=1}^{n-1} \ell_{i} \cdot \ell_{f}-1\end{align}\)

형태로 주어지며, 여기에서 ℓ1, ⋯, ℓn-1은 처음부터 작은 n - 1개의 서로 다른 홀수 소수를 의미하며, ℓf는 p + 1의 가장 큰 소수 인수에 해당한다. B는 개인키 선택의 범위를 의미하는데, 개인키를 [𝑎] = (e1, ⋯, en)이라 할 때, ei ∈ [-B, B]를 의미한다. t는 해시함수의 출력 비트의 크기를 의미하는데, 본 논문에서는 SHA-256을 고려한다. 마지막으로 랜덤한 벡터 f의 성분이 선택되는 범위인 [-(δ + 1)B, (δ+1)B]에서 δ = nt에 해당된다.

공격은 다음과 같이 진행된다. 먼저 개인키 e = (e1, ⋯, e74)가 선택된다. 그 뒤 랜덤한 벡터 f = (f1, ⋯, f74)가 선택된 다음에 f - e가 연산된다. ci = fi - ei라 하자. 각 ci에 대해서 가능한 ei의 값들이 list의 i 번째에 저장된다. 예를 들어 c1 = 9인 경우, f1 = 5, e1 = -4 이거나 f1 = 4, e1 = -5가 가능하다. 따라서 index 1번째에 –4와 –5를 저장한다. 74개의 성분에 대해서 저장한 뒤, 랜덤한 f를 다시 선택하고 f - e를 연산한다. 마찬가지로 ci = fi - ei라 하자. 이번 f1 = 4, e1 = -4에 c1 = 8이라 하자. 이 경우 f1 = 5, e1 = -3, , f1 = 3, e1 = -5가 가능하다. 따라서, 가능한 e1의 값으로는 -3, -4, -5 이지만, 기존 index 1번째에 저장된 값이 -4, -5이기 때문에, -3은 불가능하다는 것을 의미한다. 따라서 기존 list와 충돌이 일어나는 -4, -5만 저장한다. 해당 방법은 index에 해당하는 개인키 성분의 후보가 전수조사가 가능해지는 범위 (260 이하) 가 될 때까지 수행한다. 해당 공격 방법을 알고리즘화 하면 다음과 같이 정리할 수 있다.

JBBHCB_2024_v34n2_167_8_f0001.png 이미지

Fig. 4. Recovering the private key

실제 공격을 기존 CRS 전자서명에 수행한 결과는 다음 [Table 2]와 같다. [Table 2]에서 n은 벡터의 차원을 의미하고, B는 개인키의 성분이 선택되는 범위를 의미한다. d는 랜덤한 벡터가 선택되는 범위를 의미한다. 또한, attempts는 개인키를 완전히 복원하는데 필요한 횟수를 의미하고 success는 성공여부를 의미한다. 0은 개인키 복원이 불가능함을 의미하고 1은 가능함을 의미한다.

Table 2. Attack on original CRS signature

JBBHCB_2024_v34n2_167_9_t0001.png 이미지

[Table 2]의 결과에서 확인할 수 있듯이 rejection sampling을 사용하지 않을 경우 100%로 개인키를 복원할 수 있음을 의미한다. 특히, 해당 경우 각 성분의 index당 개인키로 가능한 값이 1개씩 밖에 남지 않아 추가 전수조사 없이 다항시간 안에 복원이 가능함을 의미한다. 또한, Fiat-Shamir를 활용한 전자서명의 특성상, 4번째 공격의 공격시도 11,832의 경우 SHA-256을 사용한다면 각 서명당 256개의 랜덤한 벡터 f가 사용되기 때문에 이는 실제로 대략 46개의 서명값을 획득하면 개인키가 완전히 복원된다는 것을 의미한다.

다음 [Table 3]는 rejection sampling이 사용될 경우에 공격복잡도를 나타낸다. [Table 3]에서 rej는 f - e가 [-rej,rej]일 경우에만 공개되는 것을 의미한다.

Table 3. Attack results when rejection sampling is used

JBBHCB_2024_v34n2_167_9_t0002.png 이미지

[Table 3]에서 제시된 대로 rejection sampling을 사용할 경우 개인키를 복원하는데 성공하는 경우는 없음을 의미한다. 또한, 실제로 공격을 분석한 결과, [Table 2]의 공격과 다르게, [Table 3]에서는 가능한 개인키의 값으로 [-B, B]에 해당하는 모든 정수값이 저장되어, f - e를 통해 개인키에 대한 유의미한 결과를 얻어낼 수 없다는 것이 확인되었다.

3.2.2.2 제안하는 최적 파라미터

[Table 3]에서 확인할 수 있듯이, 랜덤한 벡터 f의 성분의 범위를 [-55,55]에 설정하여도 안전성에 문제는 되지 않지만, 실제 SeaSign 기반 전자서명에서는 해당 범위를 사용하지 않는다. 그 이유는 rejection sampling으로, n차원의 벡터에 대해 n개의 성분이 모두 [-rej,rej]안에 들어야 rejection 없이 서명이 가능해져서, [Table 3]의 1에 해당하는 파라미터를 사용할 경우 각 성분에 대한 accept할 확률은 90%로, 전체 nt개의 성분이 다 성공할 확률은 9.2×10-195정도로 매우 낮다. 따라서 d를 충분히 크게 하여 rejection rate를 허용 범위내로 설정한 부분이 SeaSign에서 제안한 파라미터이다.

하지만, 본 논문에서 제안한 Algorithm 3 방법으로 서명과정을 진행할 경우, 미리 범위 안에 들어 있는 t개의 랜덤한 백터들을 선택하기 때문에 rejection이 일어나지 않아 δ의 크기를 효율적으로 작게 조정할 수 있다. 고려해야 할 부분은 δ의 크기가 작아 효율적이면서 [-(δ + 1)B, (δ+1)B]가 충분한 서명 횟수에도 중복되는 벡터 f가 없도록 커야 한다. 마지막으로 rejection이 없더라도 t개의 벡터에 대한 총 n·t개의 [-(δ + 1)B,(δ+1)B]에서 선택된 성분들이 [-(δ - 1)B, (δ+1)B]에 있도록 선택하는데 시간이 짧은 δ를 선택해야 한다. δ를 변화하며 성공률과 선택 시간을 확인한 결과 제안하는 두개의 파라미터는 다음과 같다. [Table 4]에서 rate은 벡터의 한 성분이 정해진 범위 안에 있을 확률을 의미한다.

Table 4. Proposed parameter for SeaSign-512 optimization

JBBHCB_2024_v34n2_167_9_t0003.png 이미지

IV. 구현 결과

본 장에서는 SeaSign 구현에 대한 비교를 제시한다. 본 논문에서는 기존 SeaSign, [11]에서의 최적화, 그리고 본 논문에서의 최적화된 SeaSign의 총 세 가지의 버전의 서명 시간을 비교한다. 측정에 사용한 CPU는 3.40GHz의 동작 주파수를 가지는 Intel Core i7-6700를 사용했으며, Ubuntu 18.04.2 LTS 운영체제상에서 최적화 옵션 –O3과 clang-6.0.0 컴파일러를 이용했다.

4.1 SeaSign 파라미터

SeaSign기반 전자서명의 성능 비교를 위해 공통적으로 73개의 서로 다른 홀수 소수를 인수로 가지는 다음 511비트 소수를 사용하였다,

p = 24 ⦁ 33 ⦁ 5 ⦁ 7 ⦁ 112 ⦁ 13⋯373-1

이 유한체 위에서 supersingular 몽고메리 곡선

M0 : y2 = x3 + x

을 시작 곡선으로 사용하였으며, 각각의 최적화 버전에 대한 추가적인 파라미터는 다음과 같다.

Table 5. Parameters for comparison

JBBHCB_2024_v34n2_167_10_t0001.png 이미지

4.2 SeaSign 구현 결과

제시한 파라미터를 활용하여 구현한 SeaSign의 서명 생성 속도는 다음과 같다. 키 생성의 경우 모든 SeaSign 버전이 동일하기 때문에 한 번만 측정하였다. [Table 6] 에서의 Rej. 은 rejection 횟수를 의미한다.

Table 6. Implementation results

JBBHCB_2024_v34n2_167_10_t0002.png 이미지

위의 표에서 확인할 수 있듯이, Ours1은 기존 SeaSign보다 약 290배 빠르고, [11]에서 제시된 방법보다 약 7.47배 빠르다. 특히, 본 논문에서 제안된 파라미터의 경우 rejection rate이 높기 때문에, rejection 이 일어나는 SeaSign 및 [11]의 제안방법에는 사용할 수 없고 본 논문의 변형된 서명 알고리즘에서만 사용할 수 있다는 점에서 장점을 가지게 된다. 특히, 기존 SeaSign의 경우 서명하는데 하루 정도 걸리는 반면, 본 논문에서 제안된 방법과 파라미터를 사용할 경우 5분 정도 걸리게 된다.

V. 결론

본 논문에서는 rejection sampling의 변형을 통해서 rejection 없이 효율적이며 안전한 서명이 가능한 새로운 SeaSign 서명 방법을 제안하였다. 제안한 방법과 기존 SeaSign과 비교한 결과, 기존 SeaSign 대비 3배나 빠른 속도를 얻을 수 있었다. 추가로, CRS 기반 전자 서명 알고리즘에 대한 분석 도구를 개발하여, 본 논문에서 제안하는 알고리즘에 특화된 파라미터를 설정하였다. 해당 파라미터로 구현을 진행한 결과, 전자서명에 5분정도 걸리게 된다. 아직 다른 PQC 기반 암호에 비해서는 느린 속도이지만, SeaSign 기반 전자서명이 기존 1일 정도 걸린 것과 비교해보면 큰 향상이다. 한편, [11]에 추가로 제안한 여러 비트씩 암호화를 진행한다면 공개 키의 크기는 커지지만, 서명 생성 속도는 더 향상될 수 있다. 앞으로는 여러 비트를 사용하는 환경에서도 추가로 안전성 분석을 통해 최적인 파라미터를 제안하고, 서명 검증과정의 최적화에 관한 연구를 진행할 예정이다.

References

  1. J.M. Couveignes, "Hard homogenous spaces," IACR Cryptology ePrint Archive, 2006:291, 2006 
  2. A. Childs et al. "Constructing elliptic curve isogenies in quantum subexponential time," Journal of Mathematical Cryptology, vol. 8, no. 1, pp. 1-29, 2014  https://doi.org/10.1515/jmc-2012-0016
  3. D. Jao, L. De Feo "Towards quantum-resistant cryptosystems from supersingular elliptic curve isogenies," PQCrypto, LNCS 7071, pp. 19-34, Aug. 2011 
  4. W. Castryck and Tomas Decru, "An efficient key recovery attack on SIDH," Annual International Conference on the Theory and Applications of Cryptographic Techniques, pp. 423-447, 2023 
  5. W. Castryck et al. "CSIDH: An efficient post-quantum commutaitve group action," ASIACRYPT, LNCS 11274, Dec. 2018 
  6. Y. Yoo et al. "A post-quantum digital signature scheme based on supersingular isogenies," FC 2017, pp. 163-181, 2017 
  7. S. Galbraith et al. "Identification protocols and signature schemes based on supersingular isogeny problems," ASIACRYPT 2017, pp. 3-33, 2017 
  8. L. De Feo and Steven Galbrith, "SeaSign: compact isogeny signatures from class group actions," EUROCRYPT 2019, pp. 759-789, 2019 
  9. W. Beullens et al. "CSI-FiSh: efficient isogeny based signatures through class group actions," International Conference on the Theory and Application of Cryptology and Information Security, pp. 227-247, 2019 
  10. Aurel Page and Damien Robert, "Introducing Clapoti(s): Evaluating the isogeny class group action in polynomial time," IACR Cryptology ePrint Archive, 2023:1766, 2023 
  11. T. Decru et al. "Faster SeaSign signatures through improved rejection sampling," PQCrypto 2019, pp. 271-285, 2019