한국의 개발자들을 위한 Google Developers 국문 블로그입니다.
더 많은 데이터를 수집하지 않고도 더 많은 성과를 거둘수 있도록 지원합니다.
Thursday, August 1, 2019
<블로그 원문은
이곳
에서 확인하실 수 있으며 블로그 번역 리뷰는 양찬석(Google) 님이 참여해 주셨습니다>
게시자: Amanda Walker(엔지니어링 디렉터), Sarvar Patel(소프트웨어 엔지니어), Moti Yung(연구원) - Private Computing
Google은 개인정보를 안전하게 보호하기 위해 끊임없이 노력합니다. 동시에 수집된 데이터로부터 중요한 통찰을 얻어내는
연구에 투자
합니다. 올해 초, Google은 사용자가 웹사이트에서 입력하는 사용자 이름과 비밀번호가 이미 노출된 경우, 이를 쉽게 확인할 수 있는
Password Checkup
Chrome 확장 프로그램을 출시했습니다. 이 확장 프로그램은
PSI(Private Set Intersection)
로 알려진 암호화 프로토콜를 기반으로 특정 로그인 사용자 인증 정보와 Google이 안전하지 않은 것으로 파악한 40억 개 이상의 사용자 인증 정보를 비교하여 해당 사용자 이름 및 비밀번호가 안전할지 여부를 확인해 줍니다. 이때 Google을 포함한 그 누구도 실제 사용자 인증 정보는 절대 알아낼 수 없습니다.
추가로 Google은 코어 PSI 프로토콜을 강화하는 새로운 유형의
보안 MPC(Multi-Party Computation)
인 Private Join and Compute의
오픈소스
를 공개하고 배포할 예정입니다. 이는 여러 조직간에 기밀 데이터세트를 기반으로 작업을 하면서도 개인정보 보호의 기준을 높이는 데 도움이 될 수 있습니다.
개인정보를 안전하게 보호하는 방식으로 데이터를 이용한 협업 진행
각각의 독립적 당사자가 공유되는 식별자 집합(예: 이메일 주소)에 관해 자체적으로 고유한 정보(그중 일부는 공통된 정보임)를 보유하는 상황에서, 각 당사자가 제공하는 데이터세트를 결합함으로써 많은 중요한 연구, 비즈니스 및 사회적 문제에 답할 수 있습니다. 하지만 민감한 데이터를 사용할 때, 한 당사자가 데이터세트에 포함된 개인에 대한 어떤 정보도 알아내지 못하는 채로 어떻게 다른 당사자의 데이터에 관해 집계된 통계를 얻을 수 있을까요? Private Join and Compute가 해결에 도움을 주는 문제가 바로 정확히 이런 문제입니다.
두 당사자는 이 암호화 프로토콜을 사용하여 식별자와 관련 데이터를 암호화한 다음 조인할 수 있습니다. 그런 다음, 데이터세트에서 겹치는 부분에 대해 특정 유형의 계산을 수행하여 두 데이터세트를 모두 합쳐 유용한 데이터를 추출할 수 있습니다. 모든 입력 데이터(식별자와 관련 데이터)는 프로세스 전체에 걸쳐 완전히 암호화되고 읽을 수 없는 상태로 유지됩니다. 어떤 당사자든 원시 데이터를 드러내지도 않지만, 계산 결과를 사용하여 당면 문제에 답할 수 있습니다. 이 최종 결과만 복호화되며 집계된 통계 형태로 표현됩니다. 예를 들어 이 결과는 두 데이터세트에 모두 있는 데이터의 개수, 합계 또는 평균일 수도 있습니다.
기술에 대한 더욱 심층적인 이해
Private Join and Compute는 다음 두 가지 기본적인 암호화 기법을 결합하여 개인 데이터를 보호합니다.
PSI(Private Set Intersection)
를 사용하면 두 당사자가 각자의 데이터세트를 비공개로 조인하고 공통적으로 보유한 식별자를 발견할 수 있습니다. 식별자를 단 하나도 학습하지 않고 오직 암호화된 식별자만 표시하는 변형 모델을 사용합니다.
준동형 암호화
를 사용하면 암호화된 데이터에 대해 직접 어떤 유형의 계산을 수행할 수 있는데, 이 계산을 위해 먼저 해당 데이터를 암호 해독할 필요가 없으므로 원시 데이터의 개인정보가 보호됩니다. 이 프로세스 내내 개별 식별자와 값은 숨겨진 상태로 유지됩니다. 예를 들어 개인에 대한 그 어떤 정보도 학습하지 않고 공통 데이터세트에 식별자가 몇 개나 있는지 세거나 표시된 암호화된 식별자와 관련된 값의 합을 계산할 수 있습니다.
이들 기법을 결합하면 조인된 세트의 크기와 관련된 값의 통계(예: 합계) 외에는 아무 것도 드러나지 않습니다. 이 프로세스 내내 개별 항목은 임의의 키로 강력하게 암호화되고 상대방은 물론이고 다른 누구도 원시 형식의 데이터로 활용할 수 없습니다.
아래 동영상을 시청하거나 전체
인포그래픽
을 클릭하면 Private Join and Compute의 작동 방식을 확인할 수 있습니다.
다자간 계산을 사용하여 실제 문제 해결
다자간 연산(MPC)은 오랜 역사를 지닌 분야이지만, 대체로 학계를 뛰어넘어 널리 채택되기까지는 넘어야 할 장애물이 많습니다. 그 중에는 실제 문제를 해결하기 위해 암호화 기법과 도구를 효과적이고도 효율적으로 맞춤화할 방법을 찾는 문제가 포함됩니다.
Google은
개인정보 보호 기술을 더욱 널리 사용할 수 있도록 하여
Google은 물론이고 다른 곳에서도 더 구체적이고 실질적인 문제에 MPC 및 암호화 기술을 적용할 수 있도록 최선을 다하고 있습니다. Google에서는
협업적 머신러닝
(
Federated Learning
), 사용자 보안, 집계된 광고 측정 등의 영역에서 여러 가지 잠재적 사용 사례를 탐구하고 있습니다.
아직은 가능성의 세계에 막 발을 들여놓은 것일 뿐입니다. 이 기술은 데이터에 표현되어 있는 개인에 대한 어떤 정보도 드러내지 않고, 여러 조직이 협력하는게 필수적인 다양한 분야에서 귀중한 연구를 진전시키는 데 도움이 될 수 있습니다.
예:
공공 정책
- 정부가 공립학교에 새로운 건강 프로그램(예: 점심 식단 및 체육 교과 커리큘럼 개선)을 시행하는 경우, 대상 학생의 장기적인 건강 상태에 어떤 성과가 있을까요?
다양성과 포용성
- 산업계에서 성별과 인종에 따른 임금 격차를 해소하기 위한 새로운 프로그램을 만들 때, 이 프로그램이 인구통계를 기준으로 여러 회사에 걸쳐 급여에 어떤 영향을 미칠까요?
헬스케어
- 전국적으로 환자에게 새로운 예방약을 처방할 때 해당 질병의 발병률이 감소할까요?
자동차 안전 기준
- 자동차 제조업체에서 차량에 더욱 발전된 안전 기능을 추가할 때, 자동차 사고 신고 건수가 감소할까요?
Private Join and Compute는 조직에서 수집한 데이터를 정확히 계산하고 집계된 통계로부터 유용한 통찰을 끌어낼 수 있도록 하면서도 개인정보는 안전하게 보호해 줍니다. 우리는 이 기술을 더 널리 공유함으로써 보안 컴퓨팅의 사용 사례가 확대되기 바랍니다. Private Join and Compute와 관련된 이면의 연구 및 방법론에 관해 더 자세히 알아보려면
전문을 읽고
오픈소스 코드와 문서에 액세스
하시기 바랍니다. 다른 조직에서도 MPC와 암호화 기술을 발전시켜 나가면서 어떻게 개인정보를 안전하게 지키면서도 중요한 문제에 답할지, 설레는 마음으로 지켜보겠습니다.
감사의 말
제품 관리자 - Nirdhar Khazanie
소프트웨어 엔지니어 - Mihaela Ion, Benjamin Kreuter, Erhan Nergiz, Quan Nguyen, Karn Seth
연구원 - Mariana Raykova
Tag
ad
AdMob
admob_sdk
Advanced Power Searching
Android
Android App Quality
android back button
Android back end
Android navigation
Android Player API
android server
android up button
androidL
androidtv
androidwear
App Translate Service
Audio Focus
Chrome
Chromecast
Code-in 2012
Core App Quality Guidelines
Daydream
design
designing for Tablets
designsprint
dialog
Drive SDK
Game Developers Conference
GCi
GCi 참가자
GCPNEXT16
GDA
GDC
gdg
gdgkorea
Go
Google Cast
Google Code-in
Google Play
Google Play 스토어
Google Search
Google Summer of Code
Google+ Sign-In
Google+ Sign-In Bootcamps
Google+ 로그인
Google+ 로그인 부트캠프
googleanalytics
googleio
GooglePlay #AndroidDevStory #PlayStore #MaterialDesign #AndroidStudio #DeveloperConsole
GSOC
hackathon
HackFair 출품작
In-app Billing
io
io2014
ioapp
iobytes
ioextended
IRC Talk
IRC 서버
java7
kitkat
launch
Marshmallow
materialdesign
mobile ad
mobile_ads_sdk
multiscreen
NaCl
Native YouTube Player API
NRRN 사용 제한
Power Searching
product launch
SD 카드에 앱 설치
SecureKeyFactory
ux
webview
YouTube
YouTube Android Player API
YouTube API
YouTube API 3.0
YouTube API Update RSS Feed
광고
구글 HackFair
구글 Summer of Code
구글 개발자 사이트 홍보
구글 개발자 아카데미
구글 개발자 온라인 강좌
구글 검색
구글 고급 파워 서치
구글 드라이브 앱
구글 부트캠프
구글 아카데미
구글 코드인
구글 클라우드 플랫폼
구글 플러스 로그인
구글 핵페어
구글로 로그인하기
네이티브 클라이언트
데이드림
멀티 모바일
멀티 플랫폼
모바일 광고
수익화
스마트 브라우저
안드로이드
안드로이드 4.2
안드로이드 Back 버튼
안드로이드 Up 버튼
안드로이드 개인 정보 보호 정책
안드로이드 네비게이션
안드로이드 데이드림
안드로이드 디자인
안드로이드 방향탐색
안드로이드 보안
안드로이드 사용자 데이터
안드로이드 서버 백엔드
안드로이드 앱 품질
안드로이드 원격 제어
안드로이드 태블릿 디자인
안드로이드 현지화
안드로이드 화면 보호기
애드몹
애플리케이션 SD카드 설치
애플리케이션 개발 주민등록번호 사용 제한
애플리케이션 외부 저장 장치
앱 품질 체크리스트
오픈 소스
오픈소스 프로그램
웹 DMB
유튜브
유튜브 API
유튜브 API 3.0
유튜브 API 업데이트
유튜브 모바일
유튜브 안드로이드 플레이어 API
인앱 결제
인터넷상 주민등록번호 수집 이용 제한
주민등록번호 사용제한
추천이미지
출시
크롬브라우저
태블릿 디자인
태블릿용 앱
파워서치
한국 구글 개발자
한국 구글 개발자 사이트
핵심 앱 품질 가이드라인
핵심 태블릿 앱 품질 체크리스트
핵페어
핵페어 출품작
Archive
2019
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2018
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2017
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2016
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2015
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2014
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2013
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2012
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Mar
Feb
Jan
2011
Dec
Nov
Feed