원본을 넘기지 않고 계산하는 법 — 차등 프라이버시·동형암호·다자간 계산
Differential Privacy·Homomorphic Encryption·Secure Multi-Party Computation의 위협 모델, 아키텍처, 성능 트레이드오프를 코드 예시와 함께 정리한다
2026-08-12 · 최초 발행 2025-12-12
여러 기관이 데이터를 합쳐 분석해야 하는데, 그중 어느 한 곳도 원본 레코드를 다른 곳에 넘길 수 없는 상황이 있다. 병원 간 임상 연구, 금융기관 간 신용위험 산정, 광고 전환 측정이 대체로 이런 구조다. Differential Privacy, Homomorphic Encryption, Secure Multi-Party Computation은 모두 "원본은 안 되지만 계산 결과는 필요하다"는 같은 문제를 다른 방식으로 푼다.
노이즈로 개인을 지우는 차등 프라이버시
차등 프라이버시(DP)는 통계적 노이즈를 주입해 개별 레코드의 기여 여부를 구별 불가능하게 만드는 프라이버시 보장 메커니즘이다. ε(엡실론)·δ(델타)로 위험을 정량화하는 프라이버시 예산 모델을 쓰는데, 중앙형(집중형 DP)과 로컬형(LDP)으로 나뉘고 쿼리 단위로 예산을 소모하므로 예산을 장부처럼 관리해야 한다.
암호문 상태로 계산하는 동형암호
동형암호(HE)는 암호문 상태에서 연산을 수행해 복호화했을 때 평문 연산과 동일한 결과를 얻는 암호 방식이다. 덧셈·곱셈 중 일부만 지원하는 부분동형(PHE), 정확 연산을 지원하는 준동형(SHE), 둘 다 되는 완전동형(FHE)으로 구분된다. 실제 구현은 가법 연산의 Paillier, 정확 연산의 BFV/BGV, 근사 연산의 CKKS를 주로 쓰는데, 키 관리와 암호문 팽창, 연산 지연이 운영에서 계속 부딪히는 지점이다.
아무도 입력을 보지 않고 값을 구하는 다자간 계산
다자간 계산(MPC)은 여러 참여자가 각자의 입력을 노출하지 않고 공동으로 함수 값을 안전하게 계산하는 보안 프로토콜이다. 비밀분산, 가비지 회로, OT(Oblivious Transfer) 같은 구성요소를 쓴다. 위협 모델은 참여자가 규칙은 지키되 정보를 캐려는 준정직(semi-honest)과, 규칙 자체를 어길 수 있는 악의적(malicious) 모델로 나뉘고, 장애·이탈에 대처하는 동기화와 커밋/어보트 합의 메커니즘이 따로 필요하다.
위협 모델과 키 관리가 설계의 출발점이다
세 기술 모두 내부자 위협, 외부 공격자, 제3자 처리자 같은 행위자 모델을 먼저 명세하고 데이터 노출면을 최소화하는 데서 설계가 시작된다. HE의 비밀키는 HSM·KMS에 보관하고 사용 시 권한·회전·폐기 절차를 적용해야 하며, MPC는 세션 키와 비밀분산 파라미터를 안전하게 배포·동기화해야 한다.
DP는 ε/δ 예산을 장부화해 쿼리 단위로 소비량을 추적하고 임계 초과 시 차단하는 규칙이 필요하고, 메트릭 민감도(sensitivity) 관리와 결과 릴리스 정책도 함께 설계해야 한다. HE는 암호화→연산→복호화 파이프라인을 최적화해야 하고, MPC는 파티 수와 지연(latency), 신뢰도에 따라 라운드 수와 비버 트리플 같은 프리프로세싱을 설계한다. 세 기술 공통으로 감사 로그와 재현 가능한 감사 절차, GDPR·HIPAA 같은 규제 준수와 프라이버시 영향평가(PIA) 연계가 따라붙는다.
데이터가 흐르는 경로
원본 데이터가 들어오면 사전 처리(스키마 정합성 검증, 민감도 추정)를 거쳐 DP·HE·MPC 중 하나의 경로를 탄다. DP는 노이즈를 주입한 뒤 프라이버시 예산을 점검해 한도 안이면 통계·학습 작업을 실행하고, 초과하면 실패 처리와 감사 로그로 빠진다. HE는 키 관리·공개키 배포 후 암호문 연산을 수행하고 비밀키 접근 권한을 점검한 뒤 복호화한다. MPC는 파티 간 프로토콜을 초기화하고 참여자 상태를 확인한 뒤 비밀분산·OT·비버 트리플 기반 연산을 수행하며, 커밋 합의가 되지 않으면 중단·롤백한다.
무엇이 다른가
| 항목 | Differential Privacy | Homomorphic Encryption | Secure Multi-Party Computation |
|---|---|---|---|
| 성능 | 높음(노이즈 연산 경량) | 낮음~중간(암호문 연산 비용 큼) | 중간(암호연산+네트워크 왕복) |
| 확장성 | 높음(쿼리 병렬화 용이) | 중간(암호문 팽창·연산 제약) | 중간(파티 수 증가 시 라운드 비용 증가) |
| 일관성 | 확률적 결과 변동 허용 | 결정론적(스킴 정확도 의존) | 결정론적(프로토콜 완료 시) |
| 안정성 | 높음(운영 성숙) | 중간(스킴/파라미터 민감) | 중간(네트워크 품질 영향) |
| 운영 편의 | 높음(프라이버시 회계 필요) | 낮음~중간(키 수명주기·튜닝 필요) | 중간(세션 관리·장애 복구 필요) |
워크로드와 구현에 따라 이 수치·등급은 달라지므로 최신 벤치마크를 확인하는 편이 안전하다.
실무에서는 이렇게 조합한다
사용자 지표 집계와 퍼널 분석에는 중앙형 DP로 주·월간 지표를 공개하고, 프라이버시 예산 관리와 쿼리 템플릿화를 함께 적용한다. 암호문 상태의 집계·스코어링은 HE(Paillier/CKKS)로 파트너사 데이터의 합계·평균·간단한 선형 모델 추론까지 수행하며, 키는 KMS에서 짧은 세션으로 임대한다.
금융기관 간 공동 신용위험 산정은 MPC로 비식별화가 불가능한 컬럼을 노출 없이 결합해 통계·스코어를 계산하는데, 준정직 모델에서 시작해 악의적 모델로 단계적으로 강화하는 경로를 따른다. 의료 연구의 다기관 합동 분석은 MPC 또는 HE로 환자 데이터를 공동 연구하고 결과 공개 시 DP 후처리를 붙인다. 광고 전환 측정은 LDP나 MPC 기반으로 컨버전 리프트를 측정하며 소량 노이즈 주입과 비밀분산을 결합한다.
최소로 돌려보는 코드
전제는 Python 3.10+, 가상환경 권장이다.
Differential Privacy(IBM diffprivlib) — 설치는 pip install diffprivlib numpy.
import numpy as np
from diffprivlib.tools import mean
data = np.array([42, 45, 47, 50, 55, 60])
# 값 범위(bounds) 설정 중요: 민감도 제한
dp_mean = mean(data, epsilon=1.0, bounds=(0, 100))
print("DP 평균:", dp_mean)
Homomorphic Encryption(Paillier, phe) — 설치는 pip install phe.
from phe import paillier
pub, priv = paillier.generate_paillier_keypair()
values = [10, 20, 30]
enc_vals = [pub.encrypt(v) for v in values]
enc_sum = sum(enc_vals)
result = priv.decrypt(enc_sum)
print("암호문 합계 복호화:", result)
Secure MPC(MPyC, 단일 노드 데모) — 설치는 pip install mpyc, 다중 파티 실행은 python -m mpyc your_script.py --parties 3.
from mpyc.runtime import mpc
secint = mpc.SecInt()
async def main():
await mpc.start()
# 데모용 로컬 입력, 실제 배포에서는 각 파티의 mpc.input 사용
xs = [secint(10), secint(20), secint(30)]
s = await mpc.output(mpc.sum(xs))
print("보안 합계:", s)
await mpc.shutdown()
mpc.run(main())
얻는 것과 트레이드오프
DP를 적용하면 쿼리별 위험이 ε로 상한화되면서 통계 공개 시 공격 가능성이 크게 줄어든다. ε=1.0± 수준에서는 집계 정확도 손실이 1~5% 범위에서 관찰되는데, 이는 지표와 데이터 분포에 따라 달라진다. HE·MPC는 원본 이전 없이 협업을 가능하게 해 보안 검토·전송 계약 비용을 줄이고 파트너 온보딩 리드타임을 단축한다. 결과와 절차의 감사 가능성이 확보되면서 PIA·DPIA 연계가 쉬워지고, 민감 데이터 영역이 최소화되면서 SOC2·ISO 27001 통제 충족에도 도움이 된다. 데이터 노출면이 줄어들면 키 탈취·남용 탐지와 격리도 강화되고, 사고가 나더라도 영향 반경이 제한된다.
DP는 정확도와 프라이버시가 항상 맞물려 있어 쿼리를 반복 호출하면 예산이 빠르게 소진되므로 민감도 관리와 ε/δ 거버넌스, 결과 릴리스 정책 자동화가 모범사례다. HE는 BFV/BGV(정확)와 CKKS(근사) 중 스킴을 고르고 키를 회전·분리하며 복호화 접근을 최소권한으로 두는 게 기본인데, 연산·메모리 비용이 높고 회로 깊이가 제한되며 배포 복잡도도 크다. MPC는 네트워크 지연을 고려해 라운드 수를 최소화하고 프리프로세싱 자원을 분리하며 장애·이탈 내성을 설계해야 하지만, 파티 수가 늘면 지연·비용이 커지고 악의적 모델로 전환하면 성능이 떨어진다.
결국 DP·HE·MPC는 상호 대체재가 아니라 상보적인 스택이다. 집계 공개는 DP, 파트너 협업은 HE·MPC, 고위험 릴리스는 DP 후처리를 결합하는 전략이 실무에서는 더 안전하다. 위협 모델을 먼저 정하고, 키와 예산 거버넌스를 세운 뒤, 프로토콜 운영성을 확보하는 순서로 단계적으로 도입하는 편이 낫다.