연합학습은 원시 데이터가 클라이언트 장치를 떠나지 않도록 하지만, 모델 업데이트 자체가 민감한 정보를 유출할 수 있습니다. 연구자들은 그래디언트 정보를 사용하여 학습 샘플을 재구성하고, 멤버십을 추론하며, 개인 속성을 추출할 수 있음을 입증했습니다. 이 장에서는 연합학습 시스템의 프라이버시 보장을 강화하는 기술을 탐구합니다.
연합학습만으로는 프라이버시를 보장할 수 없습니다. 추가 보호 없이 모델 업데이트는 그래디언트 역전 공격, 멤버십 추론, 모델 역전을 통해 학습 데이터에 대한 정보를 드러낼 수 있습니다.
차등 프라이버시(Differential Privacy, DP)는 프라이버시 손실을 정량화하기 위한 수학적 프레임워크를 제공합니다. 무작위 알고리즘 M은 하나의 레코드에서 다른 두 데이터셋 D와 D'에 대해, 그리고 모든 가능한 출력 S에 대해 다음을 만족하면 (ε, δ)-차등 프라이버시를 충족합니다:
Pr[M(D) ∈ S] ≤ exp(ε) × Pr[M(D') ∈ S] + δ
여기서:
| 엡실론 범위 | 프라이버시 수준 | 일반적인 사용 사례 |
|---|---|---|
| ε < 1 | 매우 강함 | 의료 기록, 금융 데이터 |
| ε = 1-3 | 강함 | 개인 선호도, 위치 기록 |
| ε = 3-6 | 보통 | 집계 통계, 인구통계 정보 |
| ε > 6 | 약함 | 공개 또는 준공개 데이터 |
연합학습에 차등 프라이버시를 적용하는 두 가지 주요 접근 방식이 있습니다:
각 클라이언트는 서버로 전송하기 전에 모델 업데이트에 노이즈를 추가합니다. 이는 서버도 깨끗한 업데이트를 볼 수 없기 때문에 가장 강력한 프라이버시 보장을 제공합니다.
def add_local_noise(gradient, epsilon, sensitivity):
"""
로컬 차등 프라이버시를 위한 라플라스 노이즈 추가
인자:
gradient: 로컬 데이터에서 계산된 모델 그래디언트
epsilon: 프라이버시 예산
sensitivity: 그래디언트의 L2 민감도
반환:
epsilon-DP를 만족하는 노이즈가 추가된 그래디언트
"""
scale = sensitivity / epsilon
noise = np.random.laplace(0, scale, gradient.shape)
noisy_gradient = gradient + noise
# 민감도를 제한하기 위해 그래디언트 클리핑
clip_norm = 1.0
gradient_norm = np.linalg.norm(noisy_gradient)
if gradient_norm > clip_norm:
noisy_gradient = noisy_gradient * (clip_norm / gradient_norm)
return noisy_gradient
서버가 업데이트를 집계한 후 노이즈를 추가합니다. 더 나은 유용성(정확도)을 제공하지만 서버가 깨끗한 집계 업데이트를 보도록 신뢰해야 합니다.
def aggregate_with_central_dp(client_updates, epsilon, delta, num_clients):
"""
중앙 차등 프라이버시를 사용하여 클라이언트 업데이트 집계
(epsilon, delta)-DP를 위한 가우시안 메커니즘 사용
"""
# 클라이언트 업데이트 집계
aggregated = sum(client_updates) / num_clients
# 가우시안 메커니즘을 위한 노이즈 스케일 계산
sensitivity = 2.0 / num_clients # 클리핑된 그래디언트 가정
sigma = sensitivity * math.sqrt(2 * math.log(1.25 / delta)) / epsilon
# 가우시안 노이즈 추가
noise = np.random.normal(0, sigma, aggregated.shape)
private_aggregated = aggregated + noise
return private_aggregated
그래디언트 클리핑은 업데이트의 민감도를 제한하므로 차등 프라이버시에 필수적입니다:
def clip_gradients(gradients, max_norm=1.0):
"""
그래디언트를 제한된 L2 노름으로 클리핑
민감도를 제한하여 의미 있는 차등 프라이버시 가능
"""
total_norm = 0.0
for grad in gradients:
param_norm = np.linalg.norm(grad)
total_norm += param_norm ** 2
total_norm = math.sqrt(total_norm)
clip_coef = max_norm / (total_norm + 1e-6)
if clip_coef < 1:
for grad in gradients:
grad *= clip_coef
return gradients
보안 다자간 계산(Secure Multi-Party Computation)은 여러 당사자가 입력을 비공개로 유지하면서 입력에 대한 함수를 공동으로 계산할 수 있게 합니다. 연합학습에서 SMPC는 서버가 개별 기여가 아닌 집계 결과만 학습하는 보안 집계를 가능하게 합니다.
비밀 공유는 값을 여러 당사자에게 분산된 공유로 분할합니다. 원래 값은 임계값의 공유가 결합될 때만 재구성할 수 있습니다:
def shamir_share(secret, num_shares, threshold):
"""
Shamir의 비밀 공유: 비밀을 공유로 분할
인자:
secret: 공유할 값
num_shares: 생성할 총 공유 수
threshold: 재구성에 필요한 최소 공유 수
반환:
공유 목록
"""
import random
# 무작위 다항식 계수 생성
coefficients = [secret] + [random.randint(0, 2**32)
for _ in range(threshold - 1)]
def evaluate_polynomial(x):
result = 0
for i, coef in enumerate(coefficients):
result += coef * (x ** i)
return result
# 공유 생성
shares = [(i, evaluate_polynomial(i))
for i in range(1, num_shares + 1)]
return shares
동형 암호화는 데이터를 복호화하지 않고 암호화된 데이터에 대한 계산을 가능하게 합니다. 연합학습의 경우, 이를 통해 서버가 암호화된 모델 업데이트를 집계할 수 있습니다.
연합학습 집계의 경우, 덧셈을 지원하는 부분 동형 암호화(PHE)로 충분합니다:
from phe import paillier
class HomomorphicAggregator:
def __init__(self):
# 공개/개인 키 쌍 생성
self.public_key, self.private_key = paillier.generate_paillier_keypair()
def encrypt_update(self, update):
"""클라이언트가 공개 키로 업데이트 암호화"""
encrypted = [self.public_key.encrypt(float(x)) for x in update]
return encrypted
def aggregate_encrypted(self, encrypted_updates):
"""
서버가 복호화 없이 암호화된 업데이트 집계
동형 속성: Enc(a) + Enc(b) = Enc(a + b)
"""
num_updates = len(encrypted_updates)
dimension = len(encrypted_updates[0])
# 첫 번째 암호화된 업데이트로 초기화
aggregated = encrypted_updates[0]
# 나머지 암호화된 업데이트 추가
for i in range(1, num_updates):
for j in range(dimension):
aggregated[j] += encrypted_updates[i][j]
# 클라이언트 수로 나누기 (스칼라 곱셈)
aggregated = [x / num_updates for x in aggregated]
return aggregated
def decrypt_result(self, encrypted_aggregated):
"""서버가 최종 집계 결과 복호화"""
decrypted = [self.private_key.decrypt(x)
for x in encrypted_aggregated]
return np.array(decrypted)
동형 암호화는 계산 비용이 많이 듭니다. 단일 모델 업데이트의 암호화/복호화는 수 초에서 수 분이 걸릴 수 있으며, 하드웨어 가속 없이는 대규모 모델이나 빈번한 업데이트에 비실용적입니다.
Intel SGX 및 ARM TrustZone과 같은 신뢰 실행 환경은 운영 체제 및 다른 애플리케이션으로부터 코드와 데이터가 보호되는 하드웨어 격리 보안 엔클레이브를 제공합니다.
TEE는 다음에 사용할 수 있습니다:
공격자는 모델 파라미터 또는 예측에서 학습 샘플을 재구성하려고 시도합니다. 방어 전략은 다음과 같습니다:
특정 데이터 포인트가 학습 세트에 있었는지 확인합니다. 방어:
최근 연구에 따르면 그래디언트가 상당한 정보를 유출할 수 있습니다. 방어 예시:
def defend_gradient_leakage(gradient, epsilon=1.0):
"""
그래디언트 공격에 대한 여러 방어 기술 결합
"""
# 1. 그래디언트 클리핑
max_norm = 1.0
grad_norm = np.linalg.norm(gradient)
if grad_norm > max_norm:
gradient = gradient * (max_norm / grad_norm)
# 2. 차등 프라이버시 노이즈 추가
sensitivity = max_norm
scale = sensitivity / epsilon
noise = np.random.laplace(0, scale, gradient.shape)
gradient = gradient + noise
# 3. 그래디언트 압축 (희소화)
k = int(0.1 * len(gradient)) # 상위 10% 유지
threshold = np.sort(np.abs(gradient))[-k]
gradient[np.abs(gradient) < threshold] = 0
return gradient
더 강한 프라이버시 보장은 일반적으로 모델 유용성(정확도)을 감소시킵니다. 이 트레이드오프에 영향을 미치는 주요 요인:
| 요인 | 프라이버시에 미치는 영향 | 유용성에 미치는 영향 |
|---|---|---|
| 낮은 ε (엡실론) | 더 강한 프라이버시 | 낮은 정확도 (더 많은 노이즈) |
| 더 강한 클리핑 | 더 나은 프라이버시 | 느린 수렴 |
| 더 많은 참가자 | 더 나은 프라이버시 (더 큰 군중) | 더 나은 유용성 (더 많은 데이터) |
| 더 적은 학습 라운드 | 더 나은 프라이버시 (적은 노출) | 낮은 유용성 (학습 부족) |
프라이버시 보존 기술은 연합학습이 弘益人間(홍익인간)의 철학을 실현하는 핵심입니다. 강력한 프라이버시 보장을 통해 개인의 존엄성과 데이터 주권을 보호하면서도 집단 지식으로부터 이익을 얻을 수 있어 진정으로 모든 인류에게 이익이 되는 AI를 만들 수 있습니다.
한국 일반 인프라 — 과기정통부(MSIT)·행정안전부(MOIS)·KISA·KCMVP·NIS·NIA·TTA·KATS·KOLAS·ETRI·KAIST·KIST·KISTI·POSTECH·서울대·연세대·고려대·삼성·LG·SK·KT·LG U+·NAVER·카카오 협력 표준화 작업반 운영 중. 「개인정보 보호법」(법률 제19234호, 2024년 9월 시행)·「전자정부법」·「전자서명법」·「정보통신망법」·「정보통신기반 보호법」·「데이터 산업법」·「공공데이터법」·「인공지능 기본법」 적용. KS X ISO/IEC 27001/27017/27018/27040/27701·ISMS-P·KCMVP·KS X ISO/IEC 18033 (암호)·KS X ISO/IEC 19790 (암호모듈)·KS X ISO/IEC 15408 (Common Criteria) 한국 프로파일 적용. NIA「ICT 표준화 추진체계 운영」·KISA「개인정보보호 종합 포털」·MSIT「K-디지털 2030」 로드맵 운영 중.
한국의 산업·기술 표준화는 다음 협력 체계를 통해 운영된다. 국가표준 거버넌스: 국가표준심의회(국무총리실 소속, 「국가표준기본법」 제5조)·국가기술표준원(KATS)·식품의약품안전처(MFDS)·산업통상자원부(MOTIE)·과학기술정보통신부(MSIT)·행정안전부(MOIS)·환경부(MOE)·보건복지부(MOHW)·국방부(MND)·문화체육관광부(MCST)·외교부(MOFA)·법무부(MOJ)·금융위원회(FSC). 한국 인정기구·시험기관: 한국인정기구(KOLAS, Korea Laboratory Accreditation Scheme)·한국제품인정기관(KAS)·한국시험인증연구원(KTC)·한국화학융합시험연구원(KTR)·한국산업기술시험원(KTL)·한국건설생활환경시험연구원(KCL)·KOLAS 인정 시험기관 800+개·KAS 인정 인증기관 50+개. 전기·전자·통신 인증: 방송통신위원회(KCC)·한국방송통신전파진흥원(KCA)·정보통신기술협회(TTA)·정보통신기획평가원(IITP)·정보통신산업진흥원(NIPA)·한국인터넷진흥원(KISA, Korea Internet & Security Agency)·KCMVP (국가용 암호모듈 검증제도)·NIS(국가정보원)·NSR(국가보안기술연구소)·NCSC(국가사이버안보센터). 국가 R&D 거점: 한국과학기술연구원(KIST)·한국전자통신연구원(ETRI)·한국과학기술원(KAIST)·서울대학교·연세대학교·고려대학교·POSTECH·UNIST·GIST·DGIST·한국과학기술정보연구원(KISTI)·한국에너지기술연구원(KIER)·한국기계연구원(KIMM)·한국화학연구원(KRICT)·한국식품연구원(KFRI)·한국생명공학연구원(KRIBB). 국제 표준 협력: ISO TC/SC 한국 간사·IEC TC/SC 한국 간사·ITU-T SG 한국 의장·3GPP RAN/SA 한국 의장·IEEE 802 한국 의장·W3C 한국지부·OASIS 한국지부·IETF 한국 협력단·OECD CSTP·UN ESCAP·APEC SCSC 한국 협력. 한국 표준 카탈로그: KS X (정보) 25,000+종·KS A (기본) 15,000+종·KS B (기계) 25,000+종·KS C (전기) 18,000+종·KS D (금속) 12,000+종·KS E (광산) 5,000+종·KS F (건설) 18,000+종·KS H (식품) 8,000+종·KS I (환경) 5,000+종·KS J (생물) 3,000+종·KS K (섬유) 15,000+종·KS L (요업) 7,000+종·KS M (화학) 12,000+종·KS P (의료) 5,000+종·KS Q (품질) 4,000+종·KS R (수송기계) 12,000+종·KS S (서비스) 3,000+종·KS T (포장) 4,000+종·KS V (조선) 5,000+종·KS W (항공) 3,000+종·KS X (정보) 25,000+종 — 총 220,000+ 한국산업표준(KS). 「개인정보 보호법」(법률 제19234호, 2024년 9월 15일 시행)·「전자정부법」·「전자서명법」·「정보통신망법」·「정보통신기반 보호법」·「데이터 산업법」·「공공데이터법」·「인공지능 기본법」(법률 제20212호, 2026년 7월 시행)·「산업기술혁신 촉진법」·「과학기술기본법」 등 70+개 한국 표준화 관련 법령이 운영된다.