I. 서론
양자 알고리즘을 활용하는 양자 컴퓨터는 특정 문제를 해결하는 데 있어 기존 컴퓨터보다 월등한 계산 능력을 보여준다. 대표적으로, Grover 알고리즘은 정렬되지 않은 N개의 데이터 셋에서 특정 데이터를 \(O(\sqrt{N})\)번 만에 높은 확률로 찾는 양자 알고리즘이다[1]. Grover 알고리즘은 대칭키 암호의 키를 복구하는 전수조사에 사용될 수 있어 대칭키 암호의 보안 레벨을 기존 n-bit에서 n/2-bit로 줄일 수 있다. 양자 컴퓨터에서 동작하기 때문에 우선 대상 암호의 암호화가 양자 회로로 구현되어야 한다. 이에, 많이 활용되고 있는 대칭키 암호 AES 양자 회로 구현을 시작으로[2], 다양한 대칭키 암호들을 양자 회로로 최적화 구현하는 연구들이 진행되고 있다 [3-7]. 중첩 성질의 큐비트를 사용하는 양자 컴퓨터 상에서 암호화를 수행하면 모든 키 값에 해당하는 암호문들을 한 번에 생성할 수 있다. 하지만 생성된 암호문들은 확률로서 존재하기 때문에 Grover 알고리즘을 사용하여 올바른 암호문인지 비교한 뒤, 해당 암호문을 생성하는 키 값의 관측 확률을 증가시키는 과정이 필요하다.
본 논문에서는 대칭키 암호 DES의 암호화를 효율적으로 구현한다. NIST는 대칭키 암호의 양자 후 보안 강도 추정에 있어 Grover 알고리즘의 공격 비용(양자 게이트 × 회로 depth)을 기준으로 활용하고 있다[8]. 제안하는 DES 양자 회로를 기반으로 Grover 알고리즘 공격 비용을 추정하고 DES의 양자 후 보안 강도를 평가한다. 양자 회로 구현 및 분석에는 양자 프로그래밍 툴인 ProjectQ가 사용되었으며 구현 코드는 GitHub[9]에 공개되어 있다.
II. 관련 연구
2.1 DES
DES는 64-bit 키와 64-bit 평문을 사용하는 대칭키 블록암호 알고리즘이다. 64-bit 키 중 8-bit는 parity bit로 사용된다. Fig,1.과 같은 Feistel 구조를 가지고 있으며 Permutation 연산과 Substitution 연산들이 사용되며 F 함수 내부 연산은 Fig.2.와 같다.
Fig. 1. DES structure
Fig. 2. F function
2.2 양자 컴퓨팅
양자 컴퓨터는 모든 연산들에 대해 가역적인 특징을 가지고 있다. 즉 출력 값들만을 사용하여 다시 초기 상태로 복구할 수 있어야 한다. Fig.3.은 고전 컴퓨터들의 대표적인 논리 게이트들을 대체할 수 있는 가역적 특징의 양자 게이트들이다. 첫 번째 행은 NOT 연산과 XOR 연산을 대체하는 X 게이트와 CNOT 게이트이며, 두 번째 행은 AND 연산과 OR 연산을 대체하는 Toffoli 게이트와 양자 OR 게이트이다. Fig.3.의 양자 게이트들을 활용하여 다양한 암호 알고리즘에 필요한 연산들을 구현할 수 있다.
Fig. 3. Quantum gates
2.3 Grover 알고리즘을 활용한 키 복구
대칭키 암호에 대한 brute force 공격은 특정 평문, 암호문 쌍에 대한 비밀 키를 찾는 것이다. n-bit 키를 사용하는 대칭키 암호에 대한 brute force 공격의 경우 O(2n)의 무작위 대입이 필요하다. Grover 알고리즘은 대칭키 암호에 대한 brute force 공격 시 \(\sqrt{2^{n}}\)번 만에 높은 확률로 키를 복구하는 양자 알고리즘이다. Grover 알고리즘을 활용한 키 복구 절차는 다음과 같다.
첫 번째, 다음 수식과 같이 Hadmard 게이트를 통과한 중첩 상태(\(|\psi\rangle\))의 n-qubit 키를 준비한다. 그 결과, n-qubit에는 2n개의 모든 키 값들이 동일한 amplitude로서 존재하게 된다.
\(\begin{aligned} |\psi\rangle &=H^{\otimes n}|0\rangle^{\otimes n}=\left(\frac{|0>+| 1>j^{\otimes n}}{\sqrt{2}}\right)^{n} \\ &=\frac{1}{2^{n / 2}} \sum_{x=0}^{2^{*}-1}|x\rangle \end{aligned}\) (1)
두 번째, 양자 게이트들로 구현된 공격 대상 알고리즘의 암호화 양자 회로가 Oracle에 자리한다. Oracle f(x)에서는 중첩 상태의 n-qubit 키로 입력 평문을 암호화하여 모든 키 값에 대한 암호문을 생성한다. 이후 알고 있는 암호문과 비교하여 일치하는 경우의 키 값의 부호를 음수로 변경시킨다. f(x) = 1일 때 부호가 음수로 변경되며 모든 상태에 적용한다.
\(f(x)=\left\{\begin{array}{l} 1 \text { if } \operatorname{Enc}(k)=C \\ 0 \text { if } \operatorname{Enc}(k) \neq C \end{array}\right.\) (2)
\(U_{f}(|\psi\rangle|-\rangle)=\frac{1}{2^{n / 2}} \sum_{x=0}^{2^{x}-1}(-1)^{f(x)}|x\rangle|-\rangle\) (3)
마지막으로, Diffusion operator가 동작하며 Oracle에서 반환한 키의 amplitude를 증폭시킨다.
Grover 알고리즘은 Oracle과 Diffusion operator를 반복하여 올바른 키의 amplitude를 충분히 높인 뒤 관측한다. [10]에서는 Grover 알고리즘의 상세한 분석을 통해 2n의 탐색 공간에 최적의 반복 횟수는 \(\frac{\pi}{4} \sqrt{2^{n}}\)임을 제시하였다. Grover 알고리즘을 활용한 키 복구에서 가장 많은 비용을 차지하는 부분은 Oracle이다. Oracle에 자리하는 암호화 회로를 얼마나 효율적으로 구현하는지에 따라 최종 비용이 결정된다. Diffusion operator는 정해진 구조를 가지고 있어 특별한 구현 기법이 요구되지 않는다. Grover 알고리즘 양자 회로는 Oracle이 대부분을 차지하기 때문에 비용 추정 시 Diffusion operator는 대부분 무시된다.
III. 제안 기법
제안하는 DES 양자 회로는 최초 구현 결과이며, 본 장에서는 해당 구현 기법에 대해 상세히 설명한다. Permutation 연산인 Initial Permutation과 Final Permutation 구현에는 실제 양자 Swap 게이트를 사용하는 것이 아닌 logical swap을 활용함으로써 양자 자원을 전혀 사용하지 않는다. F 함수를 구현하기 위한 양자 자원만이 사용 되는 데, F 함수에서 사용하는 라운드 키 생성을 위한 키 스케줄 또한 logical swap을 활용하여 양자 자원이 소비되지 않는다.
3.1 Logical swap을 활용한 IP, FP 구현
양자 컴퓨터에서는 두 큐비트간의 상태를 서로 변경하기 위해 Swap 게이트가 사용된다. 비트 순서를 변경하는 IP, FP는 Swap 게이트들로 구현할 수 있지만 본 구현에서는 logical swap을 사용하여 Swap 게이트를 사용하지 않고 공격 비용을 최소화하였다. Logical swap은 큐비트간의 인덱스들을 변경하여 Swap gate를 대체하는 것을 의미한다. 이와 같이 논리적인 연산을 통해 물리적인 연산을 대체할 수 있다. ProjectQ는 파이썬을 기반으로 하는 양자 프로그래밍 툴이며 이를 활용한 IP logical swap구현은 Fig.4.에 나타나 있다. Index의 요소들은 IP 테이블과 같다. 동일한 방식으로의 FP의 테이블을 구성하여 Fig.4.와 같이 구현할 수 있기 때 문에 FP logical swap에 대한 자세한 설명은 생략하도록 한다.
Fig. 4. IP logical swap
3.2 F 함수 양자 회로 구현
F 함수에의 입력 단계에서는 48-bit 라운드 키를 XOR하기 위해 32-bit 중간 값을 48-bit로 확장하는 과정이 존재한다. 확장된 48-bit는 라운드 키와 XOR되고 6-bit씩 8개의 Sbox(S1, S2,...,S8)에 입력되어 Sbox 출력 4-bit가 8개인 최종 32-bit를 출력한다. 마지막으로 출력한 32-bit에 Permutation 연산을 수행하고 F 함수가 종료된다. F 함수의 양자 회로 구현은 Fig.5.와 같다.
DES는 48-bit로 확장하기위해 32-bit 중 16-bit를 temp 값으로 복사하여 사용한다. 제안하는 양자 회로 구현 기법은 큐비트 사용 최적화를 위해 32-qubit을 48-qubit으로 확장하지 않고 on-the fly 방식을 사용한다. 즉 32-qubt을 확장하지 않고, CNOT 게이트를 사용하여 S1을 위한 라운드 키만을 XOR한 뒤, S1을 수행한다. S1에 입력되는 6-qubit에만 라운드 키를 XOR하기 때문에, 6개의 CNOT가 사용된다. S1이 끝났다면 수행했던 라운드 키의 XOR 연산을 다시 수행한다 (reverse). 그 결과, reverse 연산으로 인해 32-qubit은 다시 초기 상태로 돌아오게 되고 S2를 위한 라운드 키만을 XOR한 뒤, S2를 수행한다. 이러한 방식으로 라운드 키 XOR + S + reverse 연산을 S8까지 반복한다. F 함수의 Sbox 연산 후 IP와 유사한 Permutation 연산이 수행되는데, IP 와 동일한 방식으로 Fig.6.과 같이 구현한다.
Fig. 5. Quantum circuit design for F
함수가 끝났다면 마지막으로 우측 32-bit를 좌 측 32-bit에 XOR하는 연산을 수행하며 이는 32개의 CNOT 게이트를 사용하여 간단하게 구현 가능하다.
Fig. 6. Permutation in F
3.3 Sbox 양자 회로 구현
SPN(Substitution Permutation Network) 구조 블록 암호의 양자 회로 구현 시, 대부분의 경우 Substitution 연산에 가장 많은 자원이 소모된다. 따라서 Sbox 부분이 양자 회로 구현에서 최적화될 수 있는 구조를 가지고 있다면 전체적으로 낮은 자원이 요구된다.
사전 테이블을 활용한 Sbox 구현은 고전 컴퓨터에서 일반적으로 사용되는 기법이다, 하지만 출력 값 만으로 입력값이 복구되어야 하는 가역적인 양자 컴퓨터에서는 사전 테이블 방식의 Sbox 구현은 매우 비효율적이다. 따라서 입력 값끼리의 연산들을 통해 결과 값을 출력하는 ANF(Algebraic Normal Form)의 Sbox가 구현되어야 한다. 이를 위해 본 논문에서는 M. Kwan이 제시한 bit-sliced DES[11]의 Sbox를 활용한다. 해당 bit-sliced Sbox 구현을 살펴보면, 다수의 XOR, AND, OR 연산들로 구성되어 많은 양자 게이트가 사용되어야 한다. 또한 temp 값을 위한 추가 큐비트들이 할당되어야 한다. 제안하는 DES의 양자 회로의 대부분의 큐비트, 양자 게이트는 Sbox 구현에 사용된다. S1,S2,...,S8의 세부적인 양자 게이트 구성은 본 논문에서 생략하도록 하며 [9]에서 확인할 수 있다.
3.4 키 스케줄
DES는 64-bit 키를 사용하지만 8-bit는 parity bit로 사용되고 암호화에서는 56-bit만이 라운드 키 생성에 사용된다. 라운드 키 생성에는 28-bit로 나 뉘어져 28-bit 단위의 좌측 j-bit Rotation (j = 1.2)이 수행된다. Rotation 연산 또한 logical swap을 사용하여 구현하며 Fig.7.과 같다. 마지막으로 Rotation이 수행된 56-bit에서 8의 배수 bit가 버려지고 48-bit 라운드 키가 생성된다.
Fig. 7. Rotation using logical swap
IV. 성능 평가 및 양자 암호 분석
본 장에서는 제안하는 DES 암호화 양자 회로를 기반으로 Grover 공격 비용을 추정한다. 제안하는 DES 양자 회로에 필요한 양자 자원들은 Table.1.과 같다. Table.1.에는 NCT(NOT, CNOT, Toffoli) 단계의 양자 게이트 자원 분석이 나타나 있다.
Grover 공격 비용 추정에는 Clifford + T 게이트 단계의 세부적인 자원 분석이 필요하다. CNOT, X 게이트는 각각 Clifford 게이트로 대응되며 Toffoli 게이트는 Clifford와 T 게이트의 다양한 조합으로 분해될 수 있다. 우리는 [12]의 접근 방식을 따라 1개의 Toffoli 게이트를 7개의 T 게이트와 8개의 Clifford 게이트로 분해하여 Oracle에 필요한 양자 자원들을 추정한다. Oracle에서는 DES 양자 회로가 2번 작동한다. 첫 번째는 암호화를 위한 수행이며 두 번째는 다음 Grover 반복을 위해 다시 평문으로 복구하는 reverse 연산이다. 따라서 큐비트를 제외하고 Table.1. × 2의 자원이 수행된다. 추가적으로 암호화 회로와 reverse 연산 사이에 생성된 암호문이 알려진 암호문과 일치하는지 확인하는 과정이 필요하다. 이때 n-bit 암호문의 경우 n-controlled X 게이트가 필요하며 (32×n-84) T 게이트로 분해된다. 최종적으로 Grover Oracle의 Clifford + T 게이트 단계의 자원 분석 결과는 Table.2.와 같다.
Table 1. Quantum resources for DES implementation (NCT)
Table 2. Quantum resources for Grover Oracle (Clfford + T)
DES는 64-bit 키 중 56-bit 키만이 암호화에 사용되지만 블록 암호에 대한 표준을 제시하기 위해 64-bit 키에 대한 Grover 공격 비용을 추정한다. 사용하는 DES는 Grover 알고리즘을 적용하면 ⌊\(\frac{\pi}{4} 2^{32}\)⌋번의 검색만으로 키를 복구할 수 있다. Grover 알고리즘은 Oracle과 Diffusion operator로 구성되어 동작하지만 2.3 장에서 언급하였듯이, Diffusion operator에 대한 비용은 무시하고 Oracle에 대한 비용만을 공격 비용으로 추정한다. Oracle은 ⌊\(\frac{\pi}{4} 2^{32}\)⌋번 반복되어 큐비트를 제외하고 Table.2. × ⌊\(\frac{\pi}{4} 2^{32}\)⌋가 되어 DES에 대한 최종 Grover 공격 비용은 Table.3.과 같다.
Table 3. Quantum resources for Grover key search
Grover 공격 알고리즘이 대칭키 암호 시스템에 적용되어 보안 레벨이 절반으로 떨어지는 것은 정립된 사실이다. 따라서 2차적으로 판단해야 하는 중요 요소는 공격 요구 비용이다. 보안 레벨을 떨어뜨릴 수 있다 해도 공격에 필요한 비용이 너무 크다면 해당 대칭키 암호 시스템은 양자 컴퓨터의 공격에 내성을 가지고 있다고 판단이 가능하다. Table.3.의 비용 추정 결과를 보면, DES의 보안 강도를 기존 258에서 절반인 229로 감소시키는 양자 공격에는 293의 양자 자원이 필요하다는 것을 알 수 있다.
NIST는 AES의 128, 192, 256-bit 키를 기준으로 Grover 공격 비용 추정하여 양자 후 보안 강도를 제시하는 지표로 활용하고 있다[8]. 비용 추정 에는2016년 Grassl et al.의 AES에 대한 Grover 공격 비용 추정 결과[2]를 사용하고 있다. 최종 비용 추정에는 Clifford 게이트와 T 게이트를 더한 총 양자게이트와 최종 양자 회로 depth를 곱하는 방식을 따른다. [2]의 AES를 양자 회로를 기반으로 최종 공격 비용은 AES-128의 경우 2170 (Level 1), AES-192의 경우 2233(Level 3), AES-256의 경우 2298(Level 5)로 추정하고 있다. 양자 후 보안 강도로 해당 지표를 활용하는데, 예를 들어 Grover 공격 비용이 2250인 블록암호는 Level 3을 만족한다. Level 5를 달성하기 위해서는 공격 비용이 증가하여 2298 이상을 필요로 해야 한다.
Table.3.의 DES 최종 공격 비용은 293으로 양 자 후 보안 강도 Level 1을 달성하지 못한다. 이는 64-bit 키의 작은 크기를 사용하기 때문이다. NIST는 128-bit 키를 시작으로 기준을 제시하고 있기 때문에 64-bit 키를 사용하는 블록암호에 대한 기준이 모호하다. 본 논문에서는 64-bit 키를 사용하는 DES를 기준으로 Grover 공격 비용을 추정하였으며 더 작은 키를 사용하는 블록암호에 대한 평가 기준으로 활용될 수 있다.
V. 결론
대칭키 암호에 대한 Grover 키 복구 공격은 대상 암호 양자 회로를 얼마나 효율적으로 구현하는지에 따라 최종적으로 필요한 양자 자원이 결정된다. 본 논문에서는 대칭키 암호 DES를 양자 회로를 최적화하여 구현하고 이를 기반으로 최종 Grover 공격 비용을 추정하였다. 현재 NIST에서는 AES의 128, 192, 256-bit 키를 기준으로 한 공격 비용을 추정해 양자 후 보안 강도를 제시하고 있다. 작은 크기의 64-bit 키를 사용하는 DES의 경우 NIST에서 제시하는 128-bit 키의 AES에 대한 공격 비용, Level 1의 양자 후 보안 강도를 달성하지 못했으며 어떻게 보면 키 크기에 따른 당연한 결과이다. 64-bit 키에 대한 양자 후 보안 강도 기준은 현재 없기 때문에 제안하는 64-bit 키를 사용하는 DES 공격 비용은 더 적은 키 길이를 사용하는 즉, 새로운 파라미터에 대한 양자 후 보안 강도 지표로 활용될 수 있다.
References
- L.K. Grover, "A fast quantum mechanical algorithm for database search," Proceedings of the twenty-eighth annual ACM symposium on Theory of computing, pp. 212-219, Jul. 1996.
- M. Grassl, B. Langenberg, M. Roetteler and R. Steinwandt, "Applying Grover's algorithm to AES: quantum resource estimates," Post-Quantum Cryptography, PQCrypto'16, LNCS, 9606, pp. 29-43, Sep. 2016
- R. Anand, A. Maitra, and S. Mukhopadhyay, "Grover on SIMON," arXiv:2004.10686, Sep. 2020. https://doi.org/10.1007/s11128-020-02844-w
- K.B. Jang, G.J. Song, H.J. Kim, H.D. Kwon, H,J. Kim, and H.J. Seo, "Efficient Implementation of PRESENT and GIFT on Quantum Computers," Applied Sciences, vol.11, no.11, pp. 4776, May. 2021. https://doi.org/10.3390/app11114776
- K.B. Jang, G.J. Song, H.D. Kwon, S.W. Uhm, H,J. Kim, W.K. Lee, and H.J. Seo, "Grover on PIPO," Electronics, vol.10, no.10, pp. 1194, May. 2021. https://doi.org/10.3390/electronics10101194
- K.B. Jang, S.J. Choi, H.D. Kwon, H.J. Kim, J.H. Park, and H.J. Seo, "Grover on Korean Block Ciphers," Applied Sciences, vol. 10, no. 18, pp. 6407, Sep. 2020. https://doi.org/10.3390/app10186407
- Kyung-bae Jang, Hyung-jun Kim, Jae-hoon Park, Gyeung-ju Song and Hwa-jeong Seo, "Optimization of LEA Quantum Circuits to Apply Grover's Algorithm," KIPS Transactions on Computer and Communication Systems, 10(4), pp. 101-106, Apr. 2021. https://doi.org/10.3745/KTCCS.2021.10.4.101
- NIST, "Submission requirements and evaluation criteria for the post-quantum cryptography standardization process," [internet], https://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptography/documents/call-for-proposals-final-dec-2016.pdf.
- Github: source code [internet], https://github.com/starj1023/DES_QC
- M. Boyer, G. Brassard, P. Hoeyer, and A. Tapp, "Tight bounds on quantum searching," arXiv:quant-ph/9605034, May. 1996. https://doi.org/10.1002/(SICI)1521-3978(199806)46:4/5<493::AID-PROP493>3.0.CO;2-P
- M. Kwan, "Reducing the Gate Count of Bitslice DES," Cryptology ePrint Archive, Report 2000/051, Oct. 2000.
- M. Amy, D. Maslov, M. Mosca, and M. Roetteler, "A meet-in-the-middle algorithm for fast synthesis of depth-optimal quantum circuits," IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 32, no 6, pp. 818-830, Jun. 2013. https://doi.org/10.1109/TCAD.2013.2244643