동형암호 (Homomorphic Encryption)

컴퓨터과학·AI
한 줄 정의: 데이터를 암호화한 상태 그대로 계산해도, 그 결과를 복호화하면 원본 데이터를 계산한 것과 같은 답이 나오는 암호화 방식입니다.

쉽게 풀면

보통의 암호화는 금고에 서류를 넣고 잠그는 것과 비슷합니다. 안에 있는 서류로 뭔가 계산을 하려면 반드시 금고를 열어야 합니다. 그런데 동형암호는 "금고를 열지 않고도 안의 서류를 계산할 수 있게 특수 장갑이 달린 금고"와 같습니다. 잠긴 채로 더하기, 곱하기 같은 연산을 수행한 뒤, 그 결과를 금고 밖에서 열어보면 원본 데이터로 직접 계산했을 때와 똑같은 답이 나옵니다. 그래서 병원이나 은행처럼 민감한 데이터를 다루는 곳에서, 데이터를 외부 서버(클라우드)에 맡겨 계산시키면서도 내용은 절대 노출하지 않는 용도로 연구되고 있습니다.

왜 중요한가

클라우드 컴퓨팅이 보편화되면서 민감한 데이터를 외부 서버에 맡겨 계산해야 하는 상황이 늘었지만, 데이터 유출이나 오남용에 대한 우려도 함께 커졌습니다. 동형암호는 이 딜레마를 근본적으로 해결할 수 있는 이론적 수단이기 때문에 프라이버시 보호 머신러닝, 보안 클라우드 컴퓨팅, 연합학습 등 여러 응용 연구의 핵심 축으로 자주 다뤄집니다. 또한 완전동형암호(FHE)의 실용화 여부는 암호학 이론과 시스템 성능 최적화가 만나는 지점이라 두 분야 모두에서 활발히 연구됩니다.

논문에서는 이렇게 쓰입니다

"환자 데이터의 프라이버시를 보호하기 위해 동형암호 기반 연산을 적용하여 원본을 복호화하지 않고도 통계 분석을 수행했다."

이 문장은 "환자의 실제 정보를 누구도 볼 수 없는 암호화된 상태 그대로 계산해서 분석 결과만 얻어냈다"는 뜻입니다.

"제안하는 프레임워크는 동형암호를 활용해 서버가 사용자의 모델 가중치를 노출하지 않고도 연합학습의 집계 연산을 수행할 수 있도록 한다."

이 문장은 "여러 참여자의 모델 업데이트를 서버가 내용을 보지 못한 채로 합산·평균 내는 방식을 제안했다"는 뜻입니다.

"금융 거래 데이터의 이상 탐지를 수행하는 과정에서 동형암호 연산으로 인한 지연 시간을 줄이기 위해 경량화된 암호화 스킴을 설계했다."

이 문장은 "동형암호를 쓰면 계산이 느려지는 문제를 완화하기 위해 더 가벼운 암호화 방식을 새로 고안했다"는 뜻입니다.

조금 더 깊게 보면

동형암호는 지원하는 연산의 범위에 따라 부분동형암호(덧셈이나 곱셈 중 한 가지 연산만 무제한 지원), 준동형암호(제한된 횟수의 덧셈·곱셈 조합을 지원), 완전동형암호(FHE, 임의 횟수의 덧셈·곱셈을 모두 지원)로 구분됩니다. 완전동형암호는 계산이 반복될수록 암호문에 노이즈가 누적되는데, 이를 주기적으로 제거해 다시 계산을 이어갈 수 있게 하는 부트스트래핑(bootstrapping) 기법이 핵심 메커니즘입니다. 실제 논문에서는 연산 속도, 암호문 크기, 노이즈 예산(noise budget) 등을 지표로 삼아 스킴 간 효율성을 비교하는 경우가 많습니다.

주의할 점

동형암호는 차분 프라이버시데이터 익명화와 목적은 비슷하지만 방식이 다릅니다. 동형암호는 데이터를 아예 노출하지 않으면서 정확한 계산 결과를 보장하는 대신, 계산량이 매우 많아 속도가 느리다는 단점이 있습니다. 반면 익명화나 차등 프라이버시는 계산은 빠르지만 정보가 부분적으로 손실되거나 노이즈가 섞일 수 있습니다.

관련 용어