제2장: 프라이버시 보존 기법

연합학습에서 데이터를 보호하기 위한 암호화 및 통계적 방법 마스터하기

연합학습의 프라이버시 도전과제

연합학습은 원시 데이터가 클라이언트 장치를 떠나지 않도록 하지만, 모델 업데이트 자체가 민감한 정보를 유출할 수 있습니다. 연구자들은 그래디언트 정보를 사용하여 학습 샘플을 재구성하고, 멤버십을 추론하며, 개인 속성을 추출할 수 있음을 입증했습니다. 이 장에서는 연합학습 시스템의 프라이버시 보장을 강화하는 기술을 탐구합니다.

핵심 이해

연합학습만으로는 프라이버시를 보장할 수 없습니다. 추가 보호 없이 모델 업데이트는 그래디언트 역전 공격, 멤버십 추론, 모델 역전을 통해 학습 데이터에 대한 정보를 드러낼 수 있습니다.

차등 프라이버시

기본 개념

차등 프라이버시(Differential Privacy, DP)는 프라이버시 손실을 정량화하기 위한 수학적 프레임워크를 제공합니다. 무작위 알고리즘 M은 하나의 레코드에서 다른 두 데이터셋 D와 D'에 대해, 그리고 모든 가능한 출력 S에 대해 다음을 만족하면 (ε, δ)-차등 프라이버시를 충족합니다:

Pr[M(D) ∈ S] ≤ exp(ε) × Pr[M(D') ∈ S] + δ

여기서:

프라이버시 예산 가이드라인

엡실론 범위 프라이버시 수준 일반적인 사용 사례
ε < 1 매우 강함 의료 기록, 금융 데이터
ε = 1-3 강함 개인 선호도, 위치 기록
ε = 3-6 보통 집계 통계, 인구통계 정보
ε > 6 약함 공개 또는 준공개 데이터

연합학습의 차등 프라이버시

연합학습에 차등 프라이버시를 적용하는 두 가지 주요 접근 방식이 있습니다:

1. 로컬 차등 프라이버시 (LDP)

각 클라이언트는 서버로 전송하기 전에 모델 업데이트에 노이즈를 추가합니다. 이는 서버도 깨끗한 업데이트를 볼 수 없기 때문에 가장 강력한 프라이버시 보장을 제공합니다.

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

2. 중앙 차등 프라이버시 (CDP)

서버가 업데이트를 집계한 후 노이즈를 추가합니다. 더 나은 유용성(정확도)을 제공하지만 서버가 깨끗한 집계 업데이트를 보도록 신뢰해야 합니다.

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

보안 다자간 계산 (SMPC)

핵심 원리

보안 다자간 계산(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)

성능 고려사항

동형 암호화는 계산 비용이 많이 듭니다. 단일 모델 업데이트의 암호화/복호화는 수 초에서 수 분이 걸릴 수 있으며, 하드웨어 가속 없이는 대규모 모델이나 빈번한 업데이트에 비실용적입니다.

신뢰 실행 환경 (TEE)

하드웨어 기반 프라이버시

Intel SGX 및 ARM TrustZone과 같은 신뢰 실행 환경은 운영 체제 및 다른 애플리케이션으로부터 코드와 데이터가 보호되는 하드웨어 격리 보안 엔클레이브를 제공합니다.

연합학습의 TEE

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를 만들 수 있습니다.

장 요약

복습 질문

  1. (ε, δ)-차등 프라이버시 정의를 설명하세요. 엡실론 값이 작다는 것은 무엇을 의미합니까?
  2. 로컬 차등 프라이버시(LDP)와 중앙 차등 프라이버시(CDP)를 비교하세요. 각각을 언제 사용하겠습니까?
  3. 연합학습에서 차등 프라이버시를 위해 그래디언트 클리핑이 필수적인 이유는 무엇입니까?
  4. 쌍별 비밀 공유를 사용한 보안 집계가 어떻게 작동하는지 설명하세요. 마스크가 왜 상쇄됩니까?
  5. 동형 암호화란 무엇입니까? 연합학습에 왜 계산 비용이 많이 듭니까?
  6. 연합학습 시스템에 대한 세 가지 유형의 프라이버시 공격과 그 방어를 설명하세요.
  7. 프라이버시-유용성 트레이드오프란 무엇입니까? 엡실론을 증가시키면 모델 정확도에 어떤 영향을 미칩니까?
  8. 단일 연합학습 시스템에서 여러 프라이버시 기술을 어떻게 결합할 수 있습니까?
  9. 프라이버시 보존 연합학습에서 신뢰 실행 환경은 어떤 역할을 합니까?
  10. 의료 애플리케이션에 적합한 프라이버시 파라미터(엡실론, 델타, 클리핑 노름)를 어떻게 선택하겠습니까?

한국 일반 인프라 매핑 (제2장)

한국 일반 인프라 — 과기정통부(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+개 한국 표준화 관련 법령이 운영된다.