기사

동형 암호화 가속화

FPGA 가속화를 통해 키를 해독하거나 공유하지 않고도 암호화된 데이터에서 컴퓨팅할 수 있는 고유한 솔루션을 구현합니다.
암호 배경 키

기존 암호화 제한

데이터 암호화는 기하급수적으로 증가하는 의료 파일이나 금융 정보와 같은 민감한 정보에 필수적입니다. 이러한 데이터는 데이터베이스에서 기록을 조회하는 등의 처리 기능을 포함하여 경제적인 퍼블릭 클라우드 인프라에 저장하는 것이 이상적입니다. 하지만 암호화로 인해 클라우드 스토리지 제공업체는 개인 키가 필요하며 검색어와 결과를 볼 수 있어야 합니다. 이러한 키 공유와 개인 정보 노출은 심각한 보안 위험을 초래합니다.

클라우드 스토리지 및 컴퓨팅을 사용한 기존 암호화

표준 클라우드 검색

위의 예에서는 암호화된 데이터베이스가 퍼블릭 클라우드 서버에 저장되어 있습니다. 검색과 같은 데이터를 검색하려면 클라우드 시스템이 데이터베이스의 암호화를 해제할 수 있는 개인 키를 보유하고 있어야 할 뿐만 아니라 검색어와 결과에 대한 가시성도 확보해야 합니다. 이러한 데이터는 보안되지 않은 링크를 통해 전달되기 전에 암호화되지만, 클라우드 제공업체가 개인 키를 보유하고 있으며 보안이 손상되지 않도록 클라우드 제공업체의 시스템에 의존한다는 위험이 있습니다.

이러한 제한으로 인해 의료 기록과 같이 보안이 중요한 많은 유형의 데이터는 퍼블릭 클라우드 인프라를 활용할 수 없습니다.

동형 암호화

그러나 수십 년 된 기술을 사용하면 개인 키를 해독하거나 개인 키에 대한 액세스를 제공하지 않고도 텍스트 검색과 같은 암호화된 데이터를 처리할 수 있습니다. 또한 처리 요청(예: 검색어)과 결과도 암호화할 수 있습니다. 스토리지 제공업체는 민감한 암호화된 데이터를 위험 없이 저장하고 처리할 수 있습니다.

동형 클라우드 검색

이 기술을 동형 암호화(HE) 라고 하며 컴퓨팅 요구 사항이 증가하는 몇 가지 수준에서 사용할 수 있습니다. 사실, 비트웨어의 IA-440i와 같은 강력한 FPGA 카드가 출시되기 전까지는 동형 암호화에 필요한 컴퓨팅으로 인해 실제 사용 사례가 심각하게 제한되었습니다.

동형 암호화 사용 사례

데이터베이스 검색에 대해 언급했지만, 동형 암호화의 잠재적 용도는 다양합니다:

  • 암호화된 데이터는 일반 텍스트로 저장되거나 전송되지 않으므로 데이터 자체가 노출될 위험 없이 여러 사용자가 암호화된 데이터로 공동 작업할 수 있습니다.
  • 조직은 암호 해독 키를 공유할 위험 없이 사이트 간에 민감한 데이터를 자유롭게 공유할 수 있습니다.
  • 데이터베이스를 완전히 암호화된 상태로 퍼블릭 클라우드에 저장하고도 계속 사용할 수 있으며, 클라우드가 침해되면 개인 키에 액세스하지 않고 암호화된 데이터만 노출됩니다.
  • 머신러닝 이미지 또는 오디오 검색은 검색 자체, 결과, 심지어 데이터 소스 풀까지 모두 컴퓨팅/스토리지 제공업체가 식별할 수 없는 퍼블릭 추론 컴퓨팅 리소스를 통해 수행될 수 있습니다.

작동 방식

동형 암호화 체계는 일반적으로 두 가지 접근 방식 중 하나를 따릅니다:

평준화된 HE 체계

이 접근 방식을 사용하면 모든 HE 스키마에 존재하는 내부 오류가 너무 커지기 전에 일정량의 처리가 수행될 수 있습니다. 필요한 처리 깊이를 미리 알면 사용자는 적절한 허용 오차를 가진 HE 스키마를 만들 수 있습니다. 이렇게 하면 최소한의 처리량만 수행하여 처리량을 늘릴 수 있다는 장점이 있습니다.

전체 HE 계획(FHE)

이 방식 역시 노이즈 증가로 어려움을 겪지만 "부스트래핑"이라는 기술을 사용하여 오류가 너무 커지기 전에 제거합니다. 부스트래핑은 매우 느리지만, 최근 이 성능 병목 현상을 가속화하는 데 일부 진전이 있었습니다.

사용할 HE 체계의 선택은 사용자의 문제 사례에 따라 매우 달라집니다. 따라서 하나의 솔루션이 모든 경우에 적합할 가능성은 낮습니다. 또한 HE에서 암호화된 데이터를 처리하는 것은 매우 느리기 때문에 상당한 가속화가 필요합니다. 다행히도 FPGA는 암호화 체계에 필요한 계산 유형에 매우 능숙하며, 어떤 HE 체계가 적합하든 효율적으로 처리할 수 있을 만큼 유연합니다.

FPGA 가속 동형 암호화 시스템

AI 멀티 HE 시스템 스토리지
IA-440i PCIe 카드
BittWare IA-440i FPGA 가속 카드

사용자는 이더넷 지원 FPGA 카드를 사용하여 암호화된 데이터베이스 요청을 전송할 수 있습니다. FPGA의 HE 로직은 이 요청을 연결된 영구 메모리에 저장된 암호화된 데이터베이스 내에서 적절한 조회로 변환합니다. 해커가 유용한 정보를 추출할 수 없으므로 퍼블릭 도메인 내에서 데이터베이스를 자유롭게 사용할 수 있습니다. 데이터베이스는 암호화된 형식이므로 데이터에 불법적으로 액세스하더라도 민감한 정보나 알고리즘 IP를 추출할 수 없습니다.

동형 암호화를 사용한 머신 러닝 추론

동형 암호화는 텍스트 기반 데이터베이스 애플리케이션에만 국한되지 않습니다. 위에서 설명한 것과 동일한 FPGA 가속 시스템은 머신 러닝(ML) 추론과 같은 계산을 위한 서비스로서의 가속화를 제공할 수 있습니다. 예를 들어 의료 분야에서는 환자의 엑스레이를 이미지로 전송하여 클라우드 기반 ML 모델이 이상 징후를 감지하도록 할 수 있습니다. 그러나 데이터베이스 예제와 마찬가지로 이러한 조회를 위해서는 개인 의료 정보(엑스레이 이미지)를 공유 ML 모델 제공업체에 보내야 하며, 이 제공업체는 추론을 수행하기 위해 이미지의 암호화를 해제해야 합니다. 대신, 다음 다이어그램에서 여러 사용자에게 안전한 조회를 제공하는 FPGA 가속 HE 및 추론 시스템을 통해 어떤 것이 가능한지 살펴보십시오:

AI 다중 동형암호 시스템의 블록 다이어그램

이 HE 보안 시스템에서는 환자의 엑스레이, 학습된 ML 모델 및 결과가 공유 의료 제공자의 시스템에서 암호화된 상태로 유지됩니다. 데이터베이스 검색 예시와 마찬가지로, 이상적인 호스트는 공유 리소스에서 많은 사용자와 조회를 처리합니다. 이러한 시스템을 보호하기 위한 동형 암호화의 경우, 레이아웃은 데이터베이스 검색 예제와 매우 유사합니다.

오늘날의 성능 제한

FPGA의 고성능 가속화에도 불구하고 오늘날의 HE 시스템은 암호화되지 않은 동급 제품보다 훨씬 느립니다. 따라서 광범위한 채택을 위해서는 이러한 성능 격차를 줄이기 위해 더 많은 작업이 필요합니다.

더 자세히 알아보기: 동형 암호화의 간략한 역사

완전 동형 암호화(FHE)가 실현되기 전에 일부 잘 알려진 암호화 체계는 이미 부분 동형화 기능을 일부 보여주었습니다. 암호화 체계 RSA는 두 개의 암호화된 암호 텍스트를 함께 곱하여 복호화할 때 동등한 일반 텍스트 곱셈 결과를 반환할 수 있다는 점에서 곱셈 동형성을 나타냅니다.

RSA 곱셈형 동형 암호화
방정식: 메시지 m에 대한 RSA 곱셈 동형성

Paillier 암호화 시스템은 추가 암호화 체계의 한 예입니다. 이는 다음과 같이 작성할 수 있습니다...

Paillier 동형 암호화
방정식: 가산적 동형성 페일리어 암호체계

앞서 언급했듯이 완전 동형 암호화(FHE) 방식은 덧셈과 곱셈 연산을 모두 수행할 수 있는 방식입니다. 이 경우 암호 텍스트의 반복적인 곱셈 또는 덧셈이 허용되며, 원본 평문은 복구할 수 있습니다.

완전 동형
완전 동형 암호화 체계에 대한 설명

HE 방식이 곱셈과 덧셈을 모두 허용하면 논리 NAND 게이트를 수행할 수 있으므로 모든 논리 회로를 수행할 수 있습니다. 

DGHV 완전 동형 암호화 체계

최초의 FHE 방식 중 하나는 DGHV 방식이었습니다. 이는 우수한 보안을 보장하기 위해 매우 큰 암호 텍스트에 의존했습니다. 암호화 및 복호화 체계는 다음 방정식으로 표현됩니다.

메시지 m의 DGHV 암호화
Equation: DGHV Encryption of message m to ciphertext c for m ∈{0,1}, p is the sercret key, q and r are random numbers
암호 텍스트의 DGHV 복호화
방정식: 메시지 m에 대한 암호 텍스트의 DGHV 복호화.

암호 텍스트는 수천만 비트의 비밀 키와 큰 노이즈 값을 사용하여 암호화가 잘 되려면 수천만 비트의 매우 큰 용량이 되어야 합니다. 암호화 체계가 선형 대수 공격에 취약하지 않도록 하려면 노이즈(r)를 신중하게 도입해야 합니다. 아래 그림과 같습니다.

DGHV 암호 텍스트 크기
무작위 노이즈가 추가된 경우의 DGHV 암호문 크기 그림

이렇게 큰 암호 텍스트를 사용하면 단일 비트의 평문 텍스트가 수백만 개의 암호 텍스트 비트로 확장되는 등 성능 문제가 발생하여 실제 사용 사례에서는 비실용적입니다. 하지만 이 방식은 최초로 만들어진 기능적 HE 체계 중 하나이며 HE에 대한 학술 연구를 다시 시작하게 되었습니다.

DGHV 체계의 또 다른 문제점은 암호화에 필요한 무작위 계수가 추가되어 발생하는 노이즈 증가입니다. 이 경우 암호 텍스트를 추가하면 이 노이즈가 1비트씩 증가하지만, 곱하면 적용될 때마다 노이즈가 두 배로 증가합니다.

에포셜 노이즈 증가
암호화된 데이터의 곱셈을 위한 기하급수적인 노이즈 증가

그림은 비밀 키 크기 q에 비해 곱셈 노이즈 ρ가 두 배로 증가하는 것을 보여줍니다. 노이즈가 q를 초과하면 더 이상 오류 없이 평문 텍스트를 복구할 수 없습니다. 즉, 프로세스가 중단되기 전까지 제한된 수의 연산만 처리할 수 있습니다.

이러한 오류 증가를 해결하기 위해 부트스트래핑이라는 기술이 사용됩니다. 부트스트래핑은 암호화 로직을 통해 암호 텍스트를 전달하고 공유 공개 키를 사용하여 암호화함으로써 노이즈를 제거할 수 있습니다. 이는 암호화 텍스트를 복호화(노이즈 제거)한 후 다시 암호화하는 것과 동일하지만, 공개 키를 사용하여 원본 평문 텍스트를 복구할 수 없으므로 데이터는 전체적으로 비공개로 유지됩니다. 이 프로세스는 계산 비용이 많이 들지만 노이즈를 제거하여 암호화된 계산을 무제한으로 수행할 수 있는 완전 동형 암호화(FHE) 방식입니다.

새로 고침을 통한 부트스트랩
오른쪽의 암호화된 일반 텍스트와 왼쪽의 암호 해독을 새로 고침하여 부트스트랩하는 예시

오류를 통한 학습(LWE)

오류를 이용한 학습(LWE) 방식은 다항식 평가를 기반으로 하며, 여기서 암호화 키는 이제 N차 다항식의 계수입니다. 다항식의 계수는 단어 크기가 소인수인 유한 필드에 있습니다. 보안을 강화하려면 시스템에 노이즈(e)를 추가해야 하며, 그렇지 않으면 선형 대수를 사용하여 쉽게 풀 수 있습니다.

메시지 M의 암호화 기능
메시지 m의 암호화 함수 f, 여기서 s(→)는 계수 배열, e는 도입된 잡음, q는 소인수 계수입니다.

두 다항식을 더하면 같은 차수의 세 번째 다항식이 생성되지만, 두 다항식을 곱하면 (n+1)2 계수의 이차 다항식이 생성됩니다. 이러한 다항식 항 수의 증가를 보정하기 위해 재선형화라는 기법이 사용됩니다. 다항식의 이차 항을 공개한 다음 이진 분해를 사용하여 결과에서 차감하여 확장된 다항식을 다시 (n+1) 계수로 줄일 수 있습니다. 이 곱셈은 DGHV와 동일한 노이즈 증가 문제를 겪지만, 모듈러스 스위칭이라는 기술을 사용하여 그 영향을 줄일 수 있습니다.

계수를 새로운 소수로 스케일링하여 새로운 계수 "c"가 cnew = c mod 2가 되도록 하면 복호화 결과가 동일하게 유지된다는 것을 알 수 있습니다. 이 관계를 사용하면 노이즈의 기하급수적인 증가를 선형적인 증가로 바꿀 수 있으므로 노이즈 증가가 너무 커지기 전에 암호 텍스트에 대해 더 많은 연산을 수행할 수 있습니다(아래 그림 참조).

모듈러스 스위칭
기하급수적인 노이즈 증가를 선형 노이즈 증가로 줄이기 위한 모듈러스 전환 예시

이를 평준화된 FHE라고 합니다. 계산의 깊이를 알면 초기 계수의 크기를 주어진 문제에 대해 충분히 크게 선택할 수 있으므로 비용이 많이 드는 부트스트랩 단계를 피할 수 있습니다.

오류를 포함한 링 학습(RLWE)

LWE 방식의 확장은 다항식 링을 사용하는 것인데, 여기서 N은 2의 거듭제곱입니다. 이제 다항식은 링에 존재합니다. . 이 경우 두 다항식을 더하거나 곱해도 계수는 여전히 소수 계수만큼 줄어듭니다. 곱셈 후 2N 계수는 (X로 나눌 때 나머지를 취하여 감소합니다.N + 1).

계수의 수가 일반적으로 N = [210,214] 범위에 있다는 점을 고려할 때 다항식의 곱셈은 이 HE 구현의 주요 병목 현상입니다. 다항식 곱셈을 최적화하는 방법은 음의 수 이론 변환(NTT)입니다. 이 변환은 계산 횟수를 NN에서 Nlog(N)으로 줄입니다. NTT는 정수의 유한 필드에 대한 고속 푸리에 변환(FFT)입니다.

두 다항식 f(x)와 g(x)를 곱하면 다음과 같이 됩니다.

InvNTT (FwdNTT(f(x)) * FwdNTT(g(x)))

퍼블릭 도메인 API

퍼블릭 도메인에서 사용할 수 있는 여러 HE API가 있으며, 대부분 CPU에 최적화되어 있습니다. 다음은 몇 가지 예입니다:

대부분 성능 개선이 이루어지고 더 빠른 기술이 실현됨에 따라 지속적으로 유동적인 상태입니다.

인텔 HEXL - FPGA

인텔은 또한 HEXL 라이브러리에 병렬 FPGA 브랜치를 보유하고 있습니다. FPGA용 인텔 동형 암호화 가속 라이브러리(HEXL-fpga)는 HE 기능의 FPGA 구현 예제를 제공하는 오픈 소스 라이브러리입니다.

현재 FPGA API에 포함된 연산자는 다음과 같습니다:

  • 이항 곱셈: 다항식 곱셈: 두 다항식의 곱셈
  • 키스위치: 공개 암호화 키 또는 매개변수 전환하기
  • 순방향 및 역음수 이론 변환(NTT)

이를 통해 사용자는 FPGA에서 다양한 HE 워크플로우를 실험할 수 있습니다. BittWare USM(통합 공유 메모리) BSP는 이 라이브러리와 호환됩니다.

결론

동형 암호화의 잠재적 이점은 의료 및 금융 분야에서 사용되는 고위험 데이터에 대한 공공의 공유 리소스를 훨씬 더 잘 활용할 수 있게 해준다는 점입니다. HE는 새로운 기술로 성능 문제를 해결하기 위해 진화하고 있습니다.

FPGA는 매우 유연하고 성능이 뛰어난 아키텍처로 인해 HE 채택을 달성하는 데 이상적인 기술입니다. IA-440i와 같은 비트웨어 카드는 고객이 학술 연구부터 실제 배포에 이르기까지 동형 암호화를 위한 전환을 추진하는 데 매우 적합합니다.

Agilex 기반 FPGA 가속기 카드에 대해 자세히 알아보기 →

약어

HE: 동형 암호화

RSA: 리베스트, 샤미르, 애들먼

FHE: 완전 동형 암호화

DGHV: 디지 젠트리 할레비 바이쿤타나탄

RLWE: 오류를 동반한 링 학습

동형 암호화에 대한 동영상 자료