Zeppelin: Helium 기반 마이크로컨트롤러를 위한 클라이언트 측 BFV 암호화 및 복호화
요약
Zeppelin은 IoT 환경에서 자원 제약적인 마이크로컨트롤러(MCU)를 위한 클라이언트 측 BFV 암호화 및 복호화 라이브러리입니다. 이 라이브러리는 ARM Helium 벡터 명령어 세트를 활용하여 수론 변환(NTT)을 가속하고, MCU급 하드웨어에서 완전한 암호화와 복호화를 모두 지원하는 최초의 솔루션입니다. 이를 통해 데이터 프라이버시를 유지하며 엣지 디바이스에서 안전하게 데이터를 처리할 수 있습니다.
핵심 포인트
- ARM Helium 확장을 활용하여 NTT 엔진을 벡터화, 성능 향상.
- MCU급 장치에서 암호화와 복호화를 모두 지원하는 최초의 라이브러리 구현.
- BFV를 사용하여 정수 산술 기반의 정확한 복호화가 가능함.
- STM32N6 MCU에서 4096개 값 인코딩/암호화 및 복호화 성능 입증.
사물 인터넷(IoT)의 성장은 자원 제약적인 센싱 장치가 수집하는 데이터의 프라이버시에 대한 우려를 높였습니다. 동형암호(Homomorphic Encryption, HE)는 이 문제를 해결하며, 장치가 데이터를 한 번 암호화하면 신뢰할 수 없는 클라우드 서버가 값을 보지 않고도 암호문 위에서 계산을 수행하도록 합니다. 실제로는 HE의 메모리 및 연산 비용 때문에 마이크로컨트롤러급 장치에서는 사용하기 어려웠습니다. 이전 연구인 SEAL-Embedded는 CKKS를 사용하여 이를 가능하게 했지만, 세 가지 격차를 남겼습니다. 첫째, 그 산술 연산이 벡터 명령어 세트를 가진 하드웨어에서도 완전히 스칼라(scalar) 방식입니다. 둘째, 장치에서 복호화하지 않아 클라이언트가 결과를 소비할 수 없습니다. 셋째, 정수 산술만을 사용하고 정확하게 복호화되는 BFV를 탐구하지 않았습니다. 우리는 Zeppelin을 제시합니다. 이는 임베디드 벡터 명령어 세트를 사용하는 최초의 HE 라이브러리이며, 임베디드 장치에서 암호화와 복호화를 모두 지원하는 최초의 라이브러리이고, MCU급 하드웨어에서의 최초 BFV 구현체입니다. Zeppelin은 HE의 주요 병목 지점인 수론 변환(number-theoretic transform)을 ARM의 Helium 확장을 위해 벡터화하고, 비밀 키의 대규모 정수 산술 및 타이밍 누출을 피하는 복호화 절차를 포함합니다. 서버 측 어댑터는 Zeppelin의 암호문을 Microsoft SEAL과 호환되는 형식으로 변환하여, 장치는 암호화와 복호화를 처리하고 서버가 모든 동형 계산을 수행하도록 합니다. ARM Cortex-M55가 탑재된 STM32N6 MCU에서, Zeppelin은 4096개의 패킹된 값을 4.76 ms 만에 인코딩 및 암호화(시드된 대칭 방식, HE 표준에 따른 128비트 보안)하고, 5.38 ms 만에 결과를 복호화 및 디코드하며, 이 과정에서 500 KB 미만의 RAM을 사용했습니다. 벡터화된 NTT 엔진은 동일 코어의 동등한 스칼라 구현보다 ${ ext{약}}2.7 imes$ 더 빠릅니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv cs.AR의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기