서버는 개별 클라이언트의 모델 원본을 복원할 수 없습니다.
SecAgg+ 프로토콜의 핵심적인 보안 설계가 바로 그 지점에 있습니다. 서버가 특정 클라이언트와 관련된 키 정보들을 수집하는 것은 사실이지만, 그 정보는 전체 합산 값에서 불필요한 마스크를 제거하기 위한 최소한의 정보일 뿐, 개별 클라이언트의 원본 값을 역산하기에는 불충분합니다.
왜 그런지 클라이언트가 온라인(online) 상태일 때와 이탈(dropped) 상태일 때로 나누어 살펴보겠습니다.
1. 대상 클라이언트가 '온라인(Online)' 상태일 경우
가장 중요한 시나리오입니다. 클라이언트 $u$가 정상적으로 참여하여 마스킹된 값 $y_u$를 서버에 제출했다고 가정해 봅시다. 서버가 $u$의 원본 모델 $x_u$를 복원하려면 $y_u$에서 $u$가 더했던 모든 마스크 값을 알아내 빼야 합니다.
$$y_u = x_u + \text{(개인 마스크)} + \text{(모든 쌍별 마스크의 합)}$$
서버는 이 중 일부만 알 수 있습니다.
- 개인 마스크: 서버는 다른 온라인 클라이언트들로부터 $u$의 개인 키 조각들을 수집하여 $u$의 개인 비밀 키($s_u$)를 복원할 수 있습니다. 따라서 $u$의 개인 마스크($p_u$)는 계산해낼 수 있습니다.
- 쌍별 마스크: 서버는 $u$와 '이탈한' 클라이언트들 간의 쌍별 공유 키($s_{u,d}$)는 $u$로부터 직접 받아서 알 수 있습니다.
결정적인 한계
서버는 $u$와 '다른 온라인' 클라이언트 $v$ 간의 쌍별 공유 키($s_{u,v}$)는 절대로 알 수 없습니다. 이 키는 오직 $u$와 $v$ 둘만 알고 있으며, 이탈 상황이 발생하지 않았기 때문에 서버에 제출될 이유가 전혀 없습니다.
결과적으로, 서버는 $y_u$에서 개인 마스크와 일부 쌍별 마스크(이탈자와의 관계)는 제거할 수 있지만, 다른 온라인 참여자들과의 쌍별 마스크는 여전히 암호처럼 남아있게 됩니다. 이 알 수 없는 마스크 값 때문에 서버는 절대로 $x_u$ 원본을 복원할 수 없습니다.
2. 대상 클라이언트가 '이탈(Dropped)' 상태일 경우
이 경우는 훨씬 간단합니다.
클라이언트가 이탈했다는 것은 애초에 자신의 마스킹된 모델 값($y_u$)을 서버에 전송조차 하지 못했다는 의미입니다. 서버는 복원하고 싶어도 시작점인 $y_u$ 데이터 자체가 없습니다.
따라서 서버가 이탈한 클라이언트의 키 조각이나 쌍별 공유 키를 다른 클라이언트로부터 수집하더라도, 이는 단지 전체 합산 과정에서 해당 이탈자가 남긴 '오염된 마스크'를 제거하기 위한 목적일 뿐, 존재하지 않는 데이터를 복원할 수는 없습니다.
요약
SecAgg+의 보안은 정보의 비대칭성에 기반합니다. 서버는 '전체 합계'를 올바르게 계산하는 데 필요한 최소한의 키 정보만 접근할 수 있도록 설계되었습니다. 개별 클라이언트의 업데이트는 다른 '온라인' 참여자들과의 비밀(쌍별 공유 키)에 의해 끝까지 보호되므로, 서버가 일부 키를 복원하더라도 개별 모델의 프라이버시는 안전하게 유지됩니다.
'연합학습 > 안전한 집계' 카테고리의 다른 글
| SecAgg+ 프로토콜에서 악의적인 서버의 공격 시나리오 (0) | 2025.10.15 |
|---|---|
| SecAgg+ 프로토콜에서 서버와 클라이언트 간 상태 확인 절차 (0) | 2025.10.15 |
| 연합학습의 안전한 집계를 위한 SecAgg+ 프로토콜 (0) | 2025.10.15 |