본 논문에서는 인공지능(AI) 및 클라우드(Cloud) 환경에서 외부로부터의 정보 유출의 위험성과 클라우드 컴퓨팅 환경에서 암호화된 데이터의 값을 이용하여 동형연산을 수행하는 CKKS-기반 동형암호 아키텍처를 제안한다.
제안된 CKKS-기반 동형암호 아키텍처는 양자 컴퓨터로 해독되지 않으면서도 클라우드 컴퓨팅 환경에서 암호화된 데이터의 연산을 수행할 수 있는 Ring-LWE 암호 알고리즘이며 Large N의 값의 파라미터를 통해 연산을 수행한다.
Cheon-Kim-Kim-Song 에 의해 개발된 CKKS 알고리즘은 HEAAN(Homomorphic Encryption for Arithmetic of Approximate Numbers)의 일종으로 암호화된 결과의 근사치를 제공한다. 제안하는 CKKS 암호 아키텍처는 공개키를 이용하여 암호화 하는 암호화(Encryption) 및 비밀키를 이용하여 복호화 하는 복호화(Deccryption)로 구성된다.
동형암호 CKKS 알고리즘은 격자-기반의 암호로 에러를 삽입하여 데이터의 내용을 유추하기 어렵도록 하는 기법인 Ring-LWE(Learning With Error)의 방법을 사용하며 환(Ring) 내에서 계산된다. 동형연산을 수행할 수 있는 횟수인 Level 의 개념을 도입하여 효율적으로 계산하기 위해 RNS(Residue Number System)을 통해 환 내에서 계산되는 Q 값을 나눠서 고성능 NTT(Number Theoretic Transform) 연산을 통해 곱셈들을 가속화 한다. 제안된 NTT 곱셈기 아키텍처는 기존 연구와는 달리 파이프라인을 통해 높은 데이터 처리율을 가진다. 이는 기존 반복 NTT 구조를 사용하지 않고 레지스터를 활용하는 연속적 NTT 연산을 통해 데이터 처리율을 높였다.
CKKS 암호 아키텍처는 안전성에 따라서 파라미터를 임의로 결정할 수 있으며 n = 2¹⁴로 하고 높은 보안강도를 가지는 438 비트의 Q 값 내에서 q 의 기저들을 선택한다. 안정적인 보안을 위해 기본 파라미터를 60 비트로 선정하였으며 Level 의 개수에 따라 달라지는 나머지 파라미터를 48 비트로 구성하였다. 그로 인해 60 비트 NTT 와 48 비트 NTT 의 구현 및 성능 검증을 수행하였다. 또한 암호 아키텍처에서 자주 사용되는 모듈러 곱셈기(Modular Multiplier)를 Barrett 알고리즘을 이용해 FPGA 내의 DSP 자원을 통해 효율적으로 계산하는 방법을 제안하였다.
제안된 CKKS 알고리즘 기반 동형암호 아키텍처는 Xilinx VIVADO 툴과 Alveo U250 FPGA 플랫폼에서 구현하고 성능 비교 및 검증을 하였다. 그 결과 CPU 대비 암호화 모듈은 152 배 및 복호화 모듈은 2,822 배의 속도가 향상되었다.
본 논문에서 제안하는 CKKS 알고리즘 기반 동형암호는 앞으로 도래할 양자 컴퓨터 및 클라우드 컴퓨팅 시스템에 대비해 데이터 유출의 위험성을 줄이는 암호 알고리즘으로 사용될 것으로 기대되며, 제안하는 하드웨어 아키텍처를 이용하여 실제 상용화가 가능할 것으로 기대된다.