KR102667837B1 - 고정밀 프라이버시 보호 실가 함수 평가 - Google Patents

고정밀 프라이버시 보호 실가 함수 평가 Download PDF

Info

Publication number
KR102667837B1
KR102667837B1 KR1020207008986A KR20207008986A KR102667837B1 KR 102667837 B1 KR102667837 B1 KR 102667837B1 KR 1020207008986 A KR1020207008986 A KR 1020207008986A KR 20207008986 A KR20207008986 A KR 20207008986A KR 102667837 B1 KR102667837 B1 KR 102667837B1
Authority
KR
South Korea
Prior art keywords
secret
party
data
function
computing system
Prior art date
Application number
KR1020207008986A
Other languages
English (en)
Other versions
KR20200044103A (ko
Inventor
니콜라스 가마
조던 브란트
디미타르 예트셰브
스타니슬라브 페세니
알렉산더 페트릭
Original Assignee
인퍼, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인퍼, 인코포레이티드 filed Critical 인퍼, 인코포레이티드
Priority claimed from PCT/US2018/048963 external-priority patent/WO2019046651A2/en
Publication of KR20200044103A publication Critical patent/KR20200044103A/ko
Application granted granted Critical
Publication of KR102667837B1 publication Critical patent/KR102667837B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Abstract

프라이버시 보호 또는 보안 다자간 연산을 수행하기 위한 방법은 다수 당사자가 개별 당사자들에 의해 제공되는 입력 데이터의 프라이버시를 보호하면서 공유되는 결과를 생성하도록 협력할 수 있게 한다. 상기 방법은 과도한 당사자간 통신량없이, 결과의 틀림없이 정확한 평문(비-프아리버시-보호) 연산과 관련하여 지정된 높은 정밀도 또는 정확도로 결과를 낼 수 있다. 상기 다자간 연산들은 예를 들어, 비밀 공유된 입력 데이터를 사용하여 기계 학습 분류기를 훈련함에 있어서, 연속 함수의 푸리에 급수 근산 또는 삼각 함수 다항식들을 사용하는 연속 함수의 근산을 포함할 수 있다. 다자간 연산은 부동 소수점 표현으로 저장된 연산된 비밀 공유된 데이터의 인스턴스를 메모리 저장 요구량이 감소된 연산된 비밀 공유된 데이터의 동등한, 동등하게 정밀한 그리고 동등하게 안전한 인스턴스로 변환하는 비밀 공유 감소를 포함할 수 있다.

Description

고정밀 프라이버시 보호 실가 함수 평가
관련 출원들
본 출원의 기술 요지는 2017-08-30에 출원된 미국 가 출원 번호 62552161, 2017-09-18에 출원된 미국 가 출원 번호 62560175, 2018-03-09에 출원된 미국 가 출원 번호 62641256 및 2018-03-24에 출원된 미국 가 출원 번호 62647635에 관련되어 있으며, 이 출원들은 모두 그 전문이 여기에 참고로 포함된다.
프라이버시 보호 또는 보안 다자간 컴퓨팅에는 종래 기술에서 효과적인 해결책이 없는 문제점들이 존재한다. 예를 들어, 금융 사기 또는 피싱 공격과 같은 사기 행위를 탐지하기 위해 기계 학습 분류기를 훈련시키는 데 협력하려는 다수의 조직이 있다고 가정한다. 각 조직은 적법 및 사기 행위의 예들을 갖는 훈련 데이터 집합을 갖지만, 개별 조직들은 그들의 데이터를 분류기의 훈련에 협력적으로 제공할 수 있으면서도 그들의 데이터의 프라이버시 및 기밀을 유지할 수 있기를 원한다. 그러한 훈련은 이론적으로 프라이버시 보호 또는 보안 다자간 컴퓨팅 기술들을 사용하여 실현될 수 있다. 그러나, 효과가 있기 위해, 분류기는 훨씬 더 높은 수준의 정밀성을 지원하여 훨씬 더 빈번한 적법 행위와 비교해서 사기 행위가 상대적으로 드물게 발생할 수 있는 것을 탐지해야 한다. 기존의 보안 당사자간 컴퓨팅 기술들은 다자간 과도한 통신량을 요구하지 않으면서 그러한 훈련에 필요한 수준의 정밀성을 제공하지 않는다.
프라이버시 보호 또는 보안 다자간 연산을 수행하기 위한 방법은 다수 당사자가 개별 당사자들에 의해 제공되는 입력 데이터의 프라이버시를 보호하면서 공유되는 결과를 생성하도록 협력할 수 있게 한다. 상기 방법은 과도한 당사자간 통신량없이, 결과의 틀림없이 정확한 평문(비-프아리버시-보호) 연산과 관련하여 지정된 높은 정밀도 또는 정확도로 결과를 낼 수 있다. 상기 다자간 연산들은 예를 들어, 비밀 공유된 입력 데이터를 사용하여 기계 학습 분류기를 훈련함에 있어서, 연속 함수의 푸리에 급수 근산 또는 삼각 함수 다항식들을 사용하는 연속 함수의 근산을 포함할 수 있다. 다자간 연산은 부동 소수점 표현으로 저장된 연산된 비밀 공유된 데이터의 인스턴스를 메모리 저장 요구량이 감소된 연산된 비밀 공유된 데이터의 동등한, 동등하게 정밀한 그리고 동등하게 안전한 인스턴스로 변환하는 비밀 공유 감소를 포함할 수 있다.
해당 기술분야의 통상의 기술자에 의해 이해될 바와 같이, 본 발명의 내용의 나머지에서 설명되는 다수의 양태는 상이한 동작 가능한 실시 예들에서 다양하게 조합될 수 있다. 그러한 모든 동작 가능한 조합이 효율성을 위해 명시적으로 제시될 수는 없지만, 본 개시에 의해 명확하게 고려된다.
보안 다자간 연산을 수행하기 위한 방법은 개별 당사자들에 의해 제공되는 입력 데이터의 프라이버시를 보호하면서 결과를 낼 수 있다.
상기 방법에서, 딜러 컴퓨팅 시스템(dealer computing system)은 복수의 관련 수치 마스킹 데이터 구성요소 집합을 생성할 수 있으며, 각 관련 수치 마스킹 데이터 구성요소 집합에 대해, 상기 집합의 각 구성요소는 스칼라, 벡터 및 행렬 중 하나이다. 상기 딜러 컴퓨팅 시스템은 복수 당사자 컴퓨팅 시스템 중에, 상기 복수의 관련 수치 마스킹 데이터 구성요소 집합의 각 집합의 각 구성요소를 비밀 공유할 수 있다.
상기 방법에서, 상기 복수 당사자 컴퓨팅 시스템의 각 당사자 컴퓨팅 시스템마다, 상기 당사자 컴퓨팅 시스템은 신뢰할 수 있는 상기 딜러로부터 상기 복수의 관련 수치 마스킹 데이터 구성요소 집합의 각 집합의 각 구성요소의 각각의 비밀 공유를 수신할 수 있다. 상기 당사자 컴퓨팅 시스템은 적어도 하나의 입력 데이터 집합에 대해, 상기 입력 데이터 집합의 비밀 공유를 수신할 수 있다. 상기 당사자 컴퓨팅 시스템은 상기 당사자 컴퓨팅 시스템이 상기 당사자 컴퓨팅 시스템들의 다른 당사자 컴퓨팅 시스템들과 함께, 하나 이상의 다자간 연산을 수행하여 연산된 비밀 공유된 데이터의 하나 이상의 인스턴스를 생성하게 하는 프로그램 명령 집합을 실행할 수 있다. 각 인스턴스마다, 상기 당사자 컴퓨팅 시스템은 입력 데이터 집합의 적어도 하나의 비밀 공유 또는 연산된 비밀 공유된 데이터의 다른 인스턴스의 적어도 하나의 비밀 공유에 기초하여 상기 인스턴스의 비밀 공유를 연산할 수 있다. 수치 마스킹 데이터 구성요소들의 수신된 비밀 공유들은 상기 연산들 동안 통신된 데이터를 마스킹하기 위해 사용될 수 있다.
상기 연산들은 예를 들어, 연속 함수의 푸리에 급수 근산 또는 삼각 함수 다항식들을 사용하는 연속 함수의 근산을 포함할 수 있다. 상기 연산들은 또한 또는 대안적으로 예를 들어, 부동 소수점 표현으로 저장된 연산된 비밀 공유된 데이터의 인스턴스를 메모리 저장 요구량이 감소된 연산된 비밀 공유된 데이터의 동등한, 동등하게 정밀한 그리고 동등하게 안전한 인스턴스로 변환하는 비밀 공유 감소를 포함할 수 있다.
상기 방법에서, 상기 당사자 컴퓨팅 시스템은 연산된 비밀 공유된 데이터의 인스턴스의 비밀 공유를 상기 복수 당사자 컴퓨팅 시스템의 하나 이상의 다른 당사자 컴퓨팅 시스템으로 송신할 수 있다. 적어도 하나의 당사자 컴퓨팅 시스템에 대해, 상기 당사자 컴퓨팅 시스템은 상기 복수 당사자 컴퓨팅 시스템의 하나 이상의 다른 당사자 컴퓨팅 시스템으로부터 연산된 비밀 공유된 데이터의 인스턴스의 하나 이상의 비밀 공유를 수신할 수 있다. 상기 당사자 컴퓨팅 시스템은 연산된 비밀 공유된 데이터의 상기 인스턴스의 수신된 상기 비밀 공유들을 조합하여 결과를 생성할 수 있다.
상기 방법은 상기 연산들이 함수의 도메인을 복수의 부분 구간으로 분할하는 것; 그리고 상기 복수의 부분 구간의 각 부분 구간마다: 상기 부분 구간에 대한 상기 함수의 근사치를 결정하는 것, 그리고 가블드 회로들(garbled circuits) 및 불확정 선택(oblivious selection) 중 적어도 하나를 사용하여 연산된 비밀 공유된 데이터의 인스턴스를 연산하는 것을 더 포함하도록 수행될 수 있다.
상기 연속 함수의 상기 근산은 구간에 대한 것일 수 있다. 상기 근산은 상기 연속 함수의 균일한 근산일 수 있다. 상기 연속 함수는 기계 학습 활성화 함수일 수 있다. 상기 기계 학습 활성화 함수는 시그모이드 함수(sigmoid function)일 수 있다. 상기 기계 학습 활성화 함수는 하이퍼볼릭 탄젠트 함수(hyperbolic tangent function)일 수 있다. 상기 기계 학습 활성화 함수는 신경망에 대한 정류기 활성화 함수(rectifier activation function)일 수 있다. 상기 연속 함수는 시그모이드 함수일 수 있다.
상기 비밀 공유 감소는 연산된 비밀 공유된 데이터의 인스턴스의 각 비밀 공유의 하나 이상의 최상위 비트를 마스킹하는 것을 포함할 수 있다. 상기 결과는 로지스틱 회귀 분류 모델의 계수 집합일 수 있다. 상기 방법은 로지스틱 회귀 분류기를 구현할 수 있고, 상기 결과는 상기 입력 데이터에 기초한 상기 로지스틱 회귀 분류기의 예측일 수 있다.
상기 딜러 컴퓨팅 시스템은 신뢰할 수 있는 딜러 컴퓨팅 시스템일 수 있고, 상기 당사자 컴퓨팅 시스템들 간 통신은 상기 신뢰할 수 있는 딜러 컴퓨팅 시스템이 액세스할 수 없게 이루어질 수 있다.
상기 딜러 컴퓨팅 시스템은 정직하지만 기이한(honest-but-curious) 딜러 컴퓨팅 시스템일 수 있고, 상기 당사자 컴퓨팅 시스템들 중 하나 이상에 의해 제공된 비밀 공유된 입력 데이터의 프라이버시는 상기 당사자 컴퓨팅 시스템들 간 통신이 상기 정직하지만 기이한 딜러 컴퓨팅 시스템에 의해 액세스될 수 있는지 여부에 관계 없이 보호될 수 있다.
상기 방법은: 적어도 하나의 입력 데이터 집합에 대해, 상기 입력 데이터 집합에 대한 통계 분석을 수행하여 입력 데이터 통계 집합을 결정하는 단계; 상기 입력 데이터 통계 집합을 사용하는 소스 코드 명령 집합의 사전 실행을 수행하여 하나 이상의 변수 유형의 각각에 대한 통계 유형 매개변수들을 생성하는 단계; 및 상기 통계 유형 매개변수 집합에 기초하여 상기 소스 코드 명령 집합을 컴파일링하여 상기 프로그램 명령 집합을 생성하는 단계를 더 포함할 수 있다. 상기 사전 실행은: 결정 가능한 반복 횟수를 갖는 상기 소스 코드 명령 집합에서 루프들을 펼치는 단계; 및 상기 소스 코드 명령 집합에서 함수 호출들을 펼치는 단계에 후속하여 수행될 수 있다.
상기 방법은 적어도 하나의 관련 수치 마스킹 데이터 구성요소 집합이 상기 구성요소들 중 하나의 구성요소가 상기 구성요소들의 나머지 두 구성요소의 곱과 동등한 관계를 갖는 세 구성요소로 구성되도록 수행될 수 있다.
상기 방법은 적어도 하나의 관련 수치 마스킹 데이터 구성요소 집합이 푸리에 기저 함수들의 수에 대해 평가된 다수의 상기 푸리에 기저 함수들 및 이의 하나 이상의 관련 값들의 집합을 포함하도록 수행될 수 있다.
상기 방법은 상기 결과가 상기 결과의 평문 연산에 관한 미리 결정된 정밀도를 갖도록 수행될 수 있다.
상기 방법은 상기 복수 당사자 컴퓨팅 시스템 중 적어도 하나가 상기 복수 당사자 컴퓨팅 시스템 중에, 각각의 입력 데이터 집합을 비밀 공유하도록 수행될 수 있다.
상기 방법을 수행하도록 구성되는 복수의 컴퓨터 시스템을 시스템이 포함할 수 있다.
상기 프로그램 명령 집합으로 비일시적 컴퓨터 판독 가능한 매체가 인코딩될 수 있다.
복수의 컴퓨터 시스템에 의해 실행될 때, 상기 복수의 컴퓨터 시스템이 상기 방법을 수행하게 하는 컴퓨터 코드로 비일시적 컴퓨터 판독 가능한 매체가 인코딩될 수 있다.
도 1은 리스케일링된 시그모이드의 홀-짝 주기 확장의 그래프를 도시한다.
도 2는 정리 1을 통한 시그모이드의 점근적 근사화를 도시한다.
도 3은 일 실시 예에 따른 MPC 프로토콜들의 오프라인 단계 동안의 개략적인 연결들을 도시한다.
도 4는 일 실시 예에 따른 온라인 단계 동안 플레이어들 간 개략적인 통신 채널들을 도시한다.
도 5는 n = 3 플레이어에 대해 실험 동안 획득한 상이한 측정치들을 요약한 구현 결과들의 표를 도시한다.
도 6은 로지스틱 회귀 동안 비용 함수의 진전을 반복 횟수의 함수로서 도시한다.
도 7은 동일한 로지스틱 회귀 동안 F-스코어의 평가를 반복 횟수의 함수로서 도시한다.
도 8은 예시적인 진리표 및 대응하는 암호화된 진리표(암호화 표)를 도시한다.
도 9는 상이한 가블링 최적화들(garbling optimizations)에 대한 가블링 시간, 가블링 크기 및 평가 시간을 제공하는 표를 도시한다.
도 10은 예시적인 비교 회로를 도시한다.
도 11은 예시적인 비밀 가산 회로를 도시한다.
도 12는 두 개의 예시적인 함수의 도해를 도시한다.
도 13은 n개의 문자를 처리하는 상태 기계의 개략도를 도시한다.
도 14는 일 실시 예에 따라 컴파일을 수행하기 위한 방법을 도시한다.
도 15는 다양한 실시 예에 따라 개시된 구성요소들을 구현하도록 적절하게 구성될 수 있는 범용 컴퓨터 아키텍처를 도시한다.
도 16은 다양한 실시 예에 따라 보안 다자간 연산들을 수행하기 위한 방법을 도시한다.
다음의 설명에서, 개시된 기술 요지가 실시될 수 있는 다양한 실시 예가 참조된다. 일부 실시 예는 일/하나의/다른 실시 예 등의 표현을 사용하여 설명될 수 있으며, 이들의 다수의 경우는 반드시 동일한 실시 예를 나타내는 것이 아니다. 그러한 경우들과 연관된 특정 특징들, 구조들 또는 특성들은 달리 언급되지 않는 한 다양한 실시 예에서 임의의 적합한 방식으로 조합될 수 있다.
I. 고정밀 프라이버시 보호 실가 함수 평가
0 개요
연속 실가 함수들을 높은 수치의 정밀도로 평가하기 위한 신규한 다자간 연산 프로토콜을 제안한다. 본 방법은 푸리에 급수를 이용한 근사치들에 기초하고 온라인 단계 동안 최대한으로 잡아서 두 차례의 통신을 사용한다. 오프라인 단계 동안, 각각 신뢰할 수 있는(trusted)-딜러 및 정직하지만 기이한(honest-but-curious) 보조 해결책을 제안한다.. 이전에 제안된 프라이버시 보호 최적화 방법들(예를 들어, 시그모이드 함수의 구분적-선형 근사에 기초하는)을 사용하여 해결될 수 없고 회귀 사상을 탐지하는 불균형 분류 문제들을 해결하기 위해 본 방법이 뉴튼(IRLS로서 알려져 있는)의 변형을 통해 로지스틱 회귀 분류기를 훈련하는 데 적용된다. 본 프로토콜은 표준 4중-정밀도 부동 소수점 산술을 사용하여 구현될 수 있음에 따라 효율적이다. 다수의 실험을 보고하고 로지스틱 회귀 모델 훈련 방법을 구현하는 데모 응용 프로그램을 제공한다.
1 도입
프라이버시 보호 컴퓨팅은 다수 당사자가 입력들을 비공개로 유지하고 단지 함수의 출력만 드러내고 그 외에는 드러내지 않으면서 함수를 평가할 수 있게 한다. 최근 다자간 연산(MPC, multi-party computation), 동형 암호화(homomorphic encryption) 및 차등 사생활(differential privacy) 기술의 발전으로 이러한 모델들이 실용화되었다. 특히 의학 및 금융 분야에 적용되는 그러한 연산들의 일례는 입력 데이터가 별개의 비밀 데이터 출처들로부터 유래되는 지도 훈련 모델들[17], [23], [25], [26] 및 이러한 모델들을 사용한 예측 평가이다.
기계 학습 분류 문제들에서, 이는 새로운 입력들을 예측하기 위해 주어지는 데이터 집합에 관해 그것들을 별개의 카테고리들에 매핑시킴으로써 모델을 훈련한다. 고전적 로지스틱 회귀 모델은 예측과 연관된 확률을 제공함으로써 부류를 예측한다. 모델의 품질은 여러 방식으로, 가장 통상적인 방식으로는 정확하게 예측된 답변들의 백분율을 나타내는 정확도로 측정될 수 있다.
다수의 데이터 집합의 경우(예를 들어, 손으로 쓴 숫자들의 MNIST 데이터베이스[15] 또는 ARCENE 데이터 집합[14]), 분류는 시그모이드 함수 시그모 : 아래와 같이 정의되는 → [0, 1] 의 구분적-선형 근사를 사용하여 경사 하강을 몇 번 반복한 후 매우 양호한 정확도를 달성하는 것으로 보인다
,
현재 비용 함수는 여전히 최소값과는 거리가 멀지만[25]. 시그모이드 함수의 다른 근사화 방법들도 과거에 제안되었다. [29]에서, 저차수 다항식들을 이용하는 근사화는 보다 효율적이지만 정확도가 떨어지는 방법을 야기했다. 반대로, [24]에서 딥 러닝 방법들에 적용된 고차수 다항식 근사화는 보다 정확하지만, 덜 효율적인 방법들(그리고 그에 따라, 프라이버시 보호 컴퓨팅에 덜 적합한)을 냈다. 동시에, 동형 암호[2], [27], [18], [22] 및 차등 사생활[1], [10] 기술에 기초한 프라이버시 보호 방법들에 대한 근사화 솔루션들은 분류 방법들 및 딥 러닝 둘 다의 상황에서 제안되었다.
그럼에도 불구하고, 정확도 자체가 항상 모델의 품질에 대한 충분한 척도가 아니고, 특히 [19, p.423]에 언급된 바와 같이, 본 출원의 목표는 희귀 질병 또는 사기 금융 거래와 같은 회귀 사상을 탐지하는 것이다. 예를 들어, 천 건의 거래 중 하나가 사기일 경우, 모든 거래를 정직한 것으로 분류하는 단순 모델은 99.9%의 정확도를 달성하나; 이러한 모델에는 예측 기능이 없다. 그러한 경우들에서는, 정밀도, 리콜 및 F1-스코어와 같은 측정치들을 통해 모델의 품질을 보다 정확하게 추정할 수 있다. 그것들은 전체 데이터 집합이 아닌 긍정적 사건들만을 기준으로 허위 긍정 비율 또는 부정 비율을 제한한다.
위에서 인용된 기술들은 대부분의 균형 잡힌 데이터 집합에 대해 우수한 정확도를 달성하지만, 시그모이드 함수의 대략적인 근사화에 의존하기 때문에, 동일한 모델로 수렴하지 않고, 그에 따라 수락률이 매우 낮은 데이터 집합들에 대해 낮은 스코어를 제공한다. 본 문서에서는, MPC로 이러한 수치 정밀도를 회복하고 평문 회귀와 동일한 스코어에 도달하는 방법을 제시한다. 본 출원의 MPC 접근법은 대부분 사전 연산된 곱셈 수치 마스킹 데이터를 이용하는 가산적 비밀 공유를 기반으로 한다[4].. 이는 연산이 다음과 같이 두 단계로 나뉘어짐을 의미한다: 데이터가 플레이어들(당사자들 또는 당사자 컴퓨팅 시스템들이라고도 함) 간에 공유되기 전에 실행될 수 있는 오프라인 단계, 및 실제 결과를 연산하는 온라인 단계. 오프라인 단계에 대해, 본 출원은 신뢰할 수 있는 딜러를 기반으로 하는 첫 번째 솔루션을 제안한 다음, 딜러가 정직하지만 기이한(honest-but-curious) 프로토콜에 대해 논의한다. 딜러 또는 신뢰할 수 있는 딜러는 딜러 컴퓨팅 시스템이라고도 할 수 있다.
1.1 본 출원의 제시 의견
첫 번째 제시 의견은 시그모이드 함수의 푸리에 근사화이다.
실가 함수들의 평가는 프라이버시 보호 연산들에 널리 사용되어져 왔다. 예를 들어, 선형 및 로지스틱 회귀 모델들을 훈련시키기 위해서는, 제곱근, 지수, 로그, 시그모이드 또는 소프트맥스 함수와 같은 실가 함수들을 연산하고 이것들을 사용하여 비선형 최적화 문제들을 풀어야 한다. 로지스틱 회귀 모델을 훈련시키기 위해서는, 연속 시그모이드 함수의 로그로 표현되는 비용 함수를 최소화해야 한다. 이 최소화는 통상적으로 경사 하강과 같은 반복적 방법들을 통해 연산된다. 수락률이 낮은 데이터 집합들의 경우, 충분히 정확한 모델을 얻기 위해서는 정확한 최소화에 훨씬 더 가까워야 한다. 따라서 본 출원은 반복 횟수들(단순 또는 확률적 경사 하강)을 크게 늘리거나 보다 빠른 수렴 방법들(예를 들어, IRLS [5, §4.3])을 사용해야 한다. 후자는 특히 입력 데이터가 정규화되거나 특징 크기 조정되지 않을 때, MPC 상황에서 이전에 달성된 것보다 훨씬 더 나은 시그모이드의 수치 근사화를 필요로 한다. 이전에는 점 주위 멱급수에 의한 근사화(해당 지점에 국지적으로 양호한 근사치만 냄) 또는 다항식 근사화(예를 들어, 최소 제곱을 추정하는 것에 의해)와 같은 상이한 접근법들이 고려되었다. 첫 번째 접근법보다는 양호하지만, 이러한 방법은 계수들의 크기 변동으로 인해 수치적으로 불안정하다. 구분적-선형 함수들에 의한 근사화를 기반으로 하는 대안적인 방법도 고려되었다. MPC에서, 이러한 방법은 비밀 공유 및 마스킹 대신 가블드 회로들과 함께 사용될 때 성능이 우수하지만, 충분한 정확도를 제공하지는 않는다.
본 출원의 경우, 본 출원은 이러한 상황에서 처음으로 적용되는 접근법인 푸리에 급수를 사용하여 시그모이드를 근사화한다. 이러한 방법은 그것이 함수가 충분히 평활함을 가정하여(시그모이드의 경우와 같이) 보다 균일한 근사화를 제공하기 때문에 잘 작동한다. 특히, 본 출원은 시그모이드를 삼각 함수 다항식으로 근사화한 다음 안정적인 프라이버시 보호 방식으로 평가한 주기 함수로 가상 리스케일링하고 확장한다. 제네릭 함수를 MPC으로 평가될 수있는 삼각 함수 다항식들로 근사화하기 위해, 평활한 주기 확장의 푸리에 급수를 사용하거나 반주기 거리의 최소 제곱법으로 가장 가까운 삼각 함수 다항식을 직접 찾는다. 첫 번째 접근법은 최상으로 초대수적 수렴을 생성하는 반면, 두 번째 접근법은 지수적으로 빠르게 수렴한다. 다른 한편으로, 첫 번째는 수치적으로 안정적인 반면 두 번째는(표준 푸리에 기준에 따라) 그렇지 않다. 시그모이드의 경우, 본 출원은 동시에 두 속성을 모두 달성할 수 있음을 보여준다.
두 번째 제시 의견은 부동 소수점 표현 및 마스킹이다. 마스킹 기능을 갖춘 다자간 연산 프로토콜들에 대한 통상적인 접근법은 고정 소수점 값들을 유한 그룹들에 포함시키고 균일한 마스킹 및 비밀 공유를 사용하는 것이다. 그 다음 산술 회로들이 예를 들어, 사전 연산된 곱셈 수치 마스킹 데이터를 사용하고 Beaver의 방법[4]에 따라 평가될 수 있다. 이러한 아이디어는 [13]과 [12]에서 성공적으로 사용되었다. 이 방법은 상관 또는 선형 회귀[17]와 같은 낮은 곱셈 깊이 회로들에서 잘 작동하는 반면, 일반적으로 필요한 그룹 크기는 곱셈 깊이에 따라 기하 급수적으로 증가한다. [25]에서, 이러한 기하 급수적인 증가는 2자간 반올림 솔루션에 의해 완화되지만, 이러한 기술은 최상위 비트들에서 오버플로가 발생할 수 있는 셋 이상의 플레이어로 확장되지 않는다. 이 작업에서는, 고정 소수점 값들을(가능한 다중 비트) 부동 소수점들을 사용하여 직접 공유되고 각 곱셈 후 공유 크기들을 감소시키는 기술을 제시하는 대안적인 공유 방식을 소개한다. 이 기술은 임의의 수의 플레이어로 쉽게 확장된다.
세 번째 제시 의견은 통신 시간의 상당한 감소이다. 본 문서에서, 본 출원은 [25]에서와 같은 접근법을 따르고 큰 행렬 곱셈, 시스템 해상도, 또는 시그모이드의 불확정 평가와 같은 높은 수준의 명령들에 대한 전용 수치 마스킹 데이터를 정의한다. 이러한 접근법은 SPDZ에서와 같이 저수준 명령들을 마스킹하는 것보다 덜 일반적이지만 통신 및 메모리 요구 사항을 크게 줄일 수 있다. 마스크들 및 연산들은 벡터 또는 행렬 차원의 유형을 알고 있고 높은 수준의 연산들의 벡터 성질을 활용할 수 있다. 예를 들어, 두 행렬을 곱하는 것은 컴파일러의 일괄 처리 품질에 따라 계수식 접근법들로 최대 O(n3) 대신 한 차례 통신을 필요로 한다. 또한, 마스킹은 기본 연산이 아니라 불변 변수에 따라 획정되므로, 콘스탄트 행렬은 전체 방법 동안 한 번 마스킹된다. 사소한 로컬 연산들과 조합된 이러한 수치 마스킹 데이터는 단순한 고리 추가 또는 곱셈 이상의 것을 달성하는 데 사용될 수 있다. 요컨대, 동일한 마스크들을 재사용하는 결과로서 통신량이 감소되고 직접 행력들 및 다른 대형 구조들을 마스킹하는 결과로서 통신 차례 수가 감소된다. 따라서, 총 통신 시간은 컴퓨팅 비용에 비해 무시할 수 있게 된다.
네 번째 제시 의견은 n 플레이어로 확장 가능한 정직하지만 기이한 오프라인 단계에 대한 새로운 프로토콜이다. 본 출원은 효율성을 유지하면서 일반 플레이어 수 n으로 쉽게 확장 가능한 정직하지만 기이한 모델에서 오프라인 단계를 실행하기 위한 새로운 프로토콜을 소개한다. 이를 달성하기 위해 피어 투 피어 통신 대신 브로드 캐스트 채널을 사용하여 통신 수의 이차 폭발적인 증가를 방지한다. 이 모델에서 n > 3 플레이어에 대한 이전 프로토콜 중 어느 것도 효율적이지 않기 때문에 이는 중요한 제시 의견이다. 예를 들어 [17]에서 편저자들은 신뢰할 수 있는 딜러 모델에서 매우 효율적인 방법을 제안하나; 불확정 전송 프로토콜의 실행 시간은 상당히 느리다.
2 표기법 및 준비 절차들
P1, . . ., Pn은 별개의 컴퓨팅 당사자들(플레이어들)이라고 가정한다. 본 문서에 필요할 다자간 연산으로부터 몇 가지 기본 개념을 상기한다.
2.1 비밀 공유 및 마스킹
(G, )를 그룹으로 하고 x ∈ G를 그룹 요소로 한다. (약간의 표기법 남용에 의해 ) 로 표기되는 x의 비밀 공유는 튜플(x1, ..., xn) ∈ Gn이므로 x = x1 . . . xn이 된다. (G, +)가 아벨(abelian)이면 비밀 공유 x1, ..., xn, 가산적 비밀 공유를 호출한다. 비밀 공유 방식은 임의의 두 요소 x, y ∈ G에 대해 공유의 엄격한 하위 튜플( 또는 )이 구분 가능하지 않은 경우 연산적으로 안전한다. G가 균일 분포를 수용하면, 정보-이론적 보안 비밀 공유 방식은 x1, ..., xn-1을 임의로 균일하게 얻는 것 그리고 를 선택하는 것으로 이루어진다. G가 콤팩트하지 않을 때, 조건은 통계적 또는 연산상 비구별성으로 완화될 수 있다.
밀접하게 관련된 개념은 그룹 마스킹의 개념이다. G의 부분 집합 X가 주어지면, 마스킹 X의 목표는 x ∈ X에 대한 x D의 분포가 모두 구별 가능하지 않도록 하는 G에 대한 분포 D를 찾는 것이다. 실제로, 그러한 분포는 비밀 공유를 생성하는 데 사용될 수 있다: λ ← D를 샘플링하고 λ-1을 플레이어에 그리고 xλ를 다른 플레이어에 제공할 수 있다. 마스킹은 또한 (예를 들어, Beaver의 삼중항 곱셈 기술[4]에서와 같이) 결과가 준동형사상을 통해 비공개적으로 마스킹 해제될 수 있는 즉시, 마스킹된 데이터에 대해 자유롭게 비선형 연산들을 평가하는 데 사용될 수 있다.
2.2 마스킹을 통한 비밀 공유를 이용하는 산술
합 x + y(또는 (G, +)가 모듈 구조를 갖는 경우 선형 조합)에 대한 비밀 공유를 연산하는 것은 x 및 y의 대응하는 공유를 가산함으로써 각 플레이어에 의해 비대화식으로 이루어질 수 있다. 곱에 대한 비밀 공유를 연산하는 것은 더 어렵다. 이를 위한 한 가지 방식은 사전 연산되고 비밀 공유된 곱의 수치 마스킹 데이터를 기반으로 Beaver 아이디어를 사용하는 것이다. 일반적인 관점에서, (G1, +), (G2, +) 및 (G3, +)를 세 개의 아벨 그룹으로하고 π : G1 × G2 → G3 를 쌍선형 맵으로 한다.
2 개의 원소 x ∈ G1 및 y ∈ G2에 대한 가산적 비밀 공유 가 주어지면, π(x, y) ∈ G3 원소에 대한 비밀 공유를 연산하려고 한다. Beaver의 방법을 이용하면, 플레이어들은 λ ∈ G1 및 μ ∈ G2의 경우 사전 연산된 일회용 임의의 숫치 마스킹 데이터(, , ) 를 사용한 다음 그것들을 사용하여 a = x + λ 및 b = y + μ를 마스킹하고 드러내야 한다. 그 다음 플레이어들은 다음과 같이 π(x, y)에 대한 비밀 공유를 연산한다:
-플레이어 1은 을 연산한다;
-플레이어 i(i = 2, ..., n)는 를 연산한다.
연산된 z1,. . ., zn은 π(x, y)의 가산적 공유이다. 주어진 λ는 하나의 변수만 마스킹하는 데 사용될 수 있으므로, 오프라인 단계 동안(즉, 데이터가 플레이어들이 이용 가능하게 되기 전에) 각 곱에 대해 하나의 삼중항(보다 일반적으로, 수치 마스킹 데이터의 집합)이 사전 연산되어야 한다. 적절한 그룹들로 인스턴스화되면, 이러한 추상 방식은 곱을 고리에서 평가할 수 있지만, 벡터 내적, 행렬-벡터 곱 또는 행렬-행렬 곱도 평가할 수 있다.
2.3 실가 연속 함수의 MPC 평가
다양한 적용(예를 들어, 아래 섹션 6의 로지스틱 회귀)을 위해서는, 비밀 공유된 데이터에 대한 연속 실가 함수를 연산할 필요가 있다. 비선형 함수(예를 들어, 지수, 로그, 거듭 제곱, cos, sin, 시그모이드 등)의 경우, 문헌에 상이한 방법들이 제안된다.
간단한 접근법은 완전 부동 소수점 산술 프레임워크[6, 12]를 구현하는 것 그리고 부동 소수점들에 대한 함수를 평가하는 데이터-불확정 방법을 컴파일하는 것으로 이루어진다. 이는 예를 들어 Sharemind와 SPDZ가 사용하는 것이다. 그러나, 부동 소수점 함수가 수백만 번 평가되어야 한다면 이 두 가지 일반적인 방법으로 인해 엄두도 못 낼 정도로 높은 실행 시간을 초래한다.
두 번째 접근법은 함수를 연산하기 보다 쉬운 근사치로 대체하는 것이다: 예를 들어, [25]는 고정 소수점 비교 및 절대 값들을 평가하기 위해 가블드 회로들을 사용하고; 그 다음 로지스틱 회귀의 시그모이드 함수를 구분적-선형 함수로 대체한다. 그렇지 않으면, [24]는 고정된 차수의 다항식으로 시그모이드를 근사화하고 다항식을 Horner 방법으로 평가하므로, 차수에 비례하는 많은 차례의 통신이 필요하다.
SPDZ[13]이 유한체에서 역수들을 연산하는 방법에 가까운 다른 방법은 곱셈 마스킹을 통한 다항식 평가에 기초한다: 형태()의 사전 연산된 수치 마스킹 데이터를 사용하여, 플레이어들은 u = xλ를 드러내고 선형 조합 을 출력함으로써 P(x) = 을 평가할 수 있다.
그러나, 곱셈 마스킹은 약간의 누설을 수반한다: 유한체에서, 그것은 x가 널인지 여부를 나타낸다. x의 곱셈 궤도가 공개되는(예를 들어, 행렬들의 고리에서 랭크가 드러날 수 있는) 유한 고리에서는 상황이 더욱 악화되어, 에 대해, x의 크기 순서가 드러난다.
실가 다항식의 경우, 변수 x가 [1, 2) 범위에 있도록 그것을 변환하고 리스케일링함으로써 누설이 완화될 수 있다. 그러나, 일반적으로는, 변환된 함수를 근사화하는 다항식들의 계수들이 폭발적으로 증가하여 심각한 수치 문제들이 야기된다.
2.4 완전 임계 정직하지만 기이한 프로토콜
본 출원의 목표는 실가 연속 함수들의 효율적인 평가 및 양질의 로지스틱 회귀와 같은 새로운 기능들을 강조하는 것이므로, 보통 모든 플레이어가 오류 없이 프로토콜을 따르는 시나리오를 고려한다. 그러나 플레이어들은 전체 거래 이력을 기록하고 데이터에 대한 불법 정보를 학습하려고 시도할 수 있다. 온라인 단계 동안, 보안 모델은 n 중 최대 n-1의 플레이어의 결탁이 합법적이고 명시적으로 드러난 집계 결과를 넘어서 데이터의 임의의 시맨틱 속성을 구별할 수 없다고 규정한다. 이를 달성하기 위해, Beaver 삼중항들(플레이어의 비밀 공유를 마스킹하는 데 사용되는 수치 마스킹 데이터라고도 함)은 신뢰할 수 있는 딜러라고 하는 단일 엔티티에 의해 생성 및 분포될 수 있다. 이 경우, 최대 n-1 플레이어의 결탁이 평문 수치 마스킹 데이터 정보에 대한 연산상의 이점을 얻지 않아야 한다. 그러나 딜러 자신은 평문 수치 마스킹 데이터 그리고 그로 인해 전체 데이터를 알고 있으며, 이는 일부 연산 아웃소싱 사례에서만 의미가 있다. 아래 섹션 5에서, 딜러와의 양방향 통신을 수반하여 동일한 수치 마스킹 데이터를 생성하기 위해 대안적인 정직하지만 기이한(또는 반-정직한) 프로토콜을 제공한다. 이 경우, 딜러와 플레이어들은 오프라인 단계 동안 사전 연산된 자료를 생성하기 위해 결탁하지만, 전체 평문 수치 마스킹 데이터에 액세스할 수 있는 당사자는 없다. 이는 딜러가 플레이어와 결탁하지 않고 적어도 하나의 플레이어가 다른 플레이어들과 결탁하지 않는 한 의미가 있다. 적극적으로 안전한 프로토콜들은 향후 연구 과정으로 남긴다.
3 통계적 마스킹 및 비밀 공유 감소
이 섹션에서, 고정 소수점 산술을 위한 본 출원의 마스킹 기술을 제시하고 실가 연속 함수들의 MPC 평가를 위한 방법을 제공한다. 특히, MPC에서 p 비트의 수치 정밀도를 달성하기 위해, τ이 고정된 보안 매개변수인 p + 2τ-비트 부동 소수점을 갖기에 충분하다는 것을 제시한다.
본 출원이 고려하는 비밀 공유는 실수이다. 부동 소수점 숫자들을 사용하여 이러한 공유를 마스킹하려고 한다. 그러나 에 관한 균일한 분포가 없기 때문에 실수들에 대한 가산적 마스킹 분포는 임의의 입력을 완벽하게 숨길 수 없다. 비밀 공유가 일부 알려진 수치 정밀도 범위에 속하는 경우, 정밀 범위에 따라 마스킹 분포를 신중하게 선택하여 마스킹된 값이 입력에 대한 정보를 누설하지 않도록 할 수 있다. 표준 편차가 충분히 큰 분포는 작업을 수행할 수 있다: 본 문서 나머지에서, 이러한 유형의 마스킹을 "통계적 마스킹"이라고 한다. 실제로, 표준 편차 σ = 240 인 정규 분포를 선택한다.
다른 한편으로, 그러한 마스킹을 사용함으로써, Beaver 기술을 통해 곱셈을 평가할 때마다 비밀 공유의 크기가 증가한다는 것을 관찰한다(섹션 2.2). 섹션 3.3에서는 (비밀 공유의 합이 여전히 그것들의 크기보다 훨씬 작다는 사실을 사용하여) 각 비밀 공유의 최상위 비트를 폐기함으로써 비밀 공유 크기를 줄일 수 있는 기술을 도입하여이 문제를 해결한다.
3.1 부동 소수점, 고정 소수점 및 구간 정밀도
B가 정수이고 p가 음이 아닌 정수(비트들의 수)라고 가정한다. 지수 B의 고정 소수점 수와 수치 정밀도 p의 부류는 다음과 같다:
.
각각의 부류 C(B, p)는 유한하고, 2p+1 +1 수들을 포함한다. 그것들은 리스케일링되어 (p + 2)-비트 정수들로 저장될 수 있다. 대안적으로, 부동 소수점 표현이적어도 p 비트의 가수를 갖는 경우, 수 x ∈ C(B, p)는 부동 소수점 값 x로 표현될 수도 있다. 이 경우, 동일한 수치 정밀도의 부류들에 걸쳐 수들의 덧셈 및 곱셈은 기본적으로 부동 소수점 산술에 매핑된다. 이 부류들에 관한 주요 산술 연산은 다음과 같다:
-무손실 덧셈 : 여기서 이고 ;
-무손실 곱셈 : 여기서 이고 ;
-반올림 : , 이는 x를 내 가장 가까운 원소에 매핑.
무손실 연산들은 p의 곱셈 깊이가 지수적으로 증가할 것을 필요로 하는 반면, 고정된 정밀 연산들은 최종 반올림을 적용함으로써 p를 일정하게 유지한다. 마지막으로, 지수 B는 가산의 결과를 저장하기 위해 증분되어야 하지만, B는 고정 소수점 산술의 사용자 정의 매개변수이다. 사용자가 B를 변경하지 않고 그대로 유지하기로 선택하면, 임의의 결과 |x| > 2B는 출력 도메인에 표현 가능하지 않을 것이다(이러한 유형의 오버플로를 평문 오버플로라고 한다).
3.2 부동 소수점 표현
보안 파라미터 τ를 고려하여, 다음의 구별 게임이 ≥ 2-τ를 유리하게 이길 수 없다면 집합 S가 부류 C(B, p)에 대한 τ-보안 마스킹 집합이라고 한다: 상대방은 C(B, p)의 두 평문 m0, m1을 선택하고, 도전자는 b ∈ {0, 1} 그리고 α ∈ S를 균일하게 임의로 선택하며, 상대방에게 c = mb + α를 송신한다. 상대방은 b를 추측해야 한다. 그러한 구별되는 이점을 2-τ에서
Figure 112020032383667-pct00034
1/2로 늘리려면 공격자에게 최소 2τ개의 샘플을 제공해야 하므로, 실제로 τ = 40이면 충분하다.
제안 1. 클래스 C(B, p, τ) = 는 C(B, p)에 대해 설정된 τ-보안 마스킹이다
증명. a, b ∈ C(B, p) 및 U가 C(B, p, τ)에 관한 균일 분포일 경우, a + U와 b + U 간 통계적 거리는 이다. 이 거리는 모든 연산상의 이점을 상회한다. ■
다시, 클래스 C(B, p, τ) = C(B + τ, p + τ)는 가수의 p + τ- 비트들의 부동 소수점 수들에 적합하므로, 고정 소수점을 수치 정밀도 p로 안전하게 마스킹하는 데 사용될 수 있다. 확장하여 C(B, p)에 대한 모든 가산적 공유는 C(B, p, τ)로 취해질 것이다.
이제 Beaver의 프로토콜을 사용하여 두 평문 x ∈ C(B1, p) 및 y ∈ C(B2, p)를 곱하면 어떻게 되는지 분석한다. 마스킹된 값들 x + λ 및 y + μ는 각각 로 경계가 정해진다. 마스크 λ는 로 μ는 로 또한 경계가 정해지므로, x·y의 연산된 비밀 공유는 로 경계가 정해질 것이다. 따라서 무손실 곱셈은 C(B1, p, τ) × C(B2, p, τ) → C(B, 2p, 2τ)(여기서 B = B1 + B2(C(B, p, τ) 대신)를 송신한다. p를 감소시키는 것은 반올림의 문제이며 부동 소수점 표현에 의해 자동으로 이루어진다. 그러나 출력 비밀 공유가 로 경계가 정해지도록 τ를 감소시키는 방법이 여전히 필요하다.
3.3 비밀 공유 감소 방법
본 출원이 제안하는 방법은 두 개의 보조 매개 변수: 즉 2η가 원하는 절대 값의 경계가 되도록 η = B + τ로 정의된 컷오프 및 플레이어들의 수보다 큰 보조 매개 변수 M = 2k에 따른다.
주요 아이디어는 초기 공유가 작은 비밀 공유 값 z까지 합산하는 큰 성분 z1,. . . , zn을 포함한다는 것이다. 또한 컷오프 위치(라고 한다)를 넘어서는 공유의 최상위 비트들은 데이터에 관한 아무런 정보도 포함하지 않고, 모두 드러내기 안전하다. 또한 공유의 합의 MSB(즉, 데이터의 MSB)가 널이므로, 공유의 MSB의 합은 매우 작다는 것을 알고 있다. 공유 감소 방법은 이러한 합을 단순히 연산하고, 그것을 플레이어들 중에 균일하게 재분포한다. 합이 작게 보장되므로. 연산은 큰 정수들이 아닌 모듈로 M으로 이루어진다. 보다 정확하게는, i = 1,. . ., n에 대해 컷오프 매개 변수 η를 사용하여, 플레이어 i가 z의 비밀 공유 zi(이고 )로 작성한다. 그 다음, 그는 mod M을 브로드캐스트하여 각 플레이어가 합을 연산하게 된다. 개별 공유는 임의적으로 사전 연산된 공유 ()를 사용하여 재임의화될 수 있다. 사이임이 보장되므로, 그것은 그것의 표현 으로부터 복구될 수 있다. 그에 따라, 각 플레이어는 그 공유를 구성에 따라 원래 공유와 동일하나, 으로 경계가 정해지는 로 로컬 업데이트한다.
3.4 마스크 감소 방법
다음의 방법은 섹션 3.3에서 상술된 비밀 공유의 크기를 감소시키기 위한 일 실시 예를 상세히 설명한다. 이 절차는 부동 소수점들을 수반하는 고전적 MPC 곱셈 내에서 사용할 수 있다.
입력 : 및 수치 마스크 데이터 ()의 하나의 집합.
출력 : 공유의 절대값들이 더 작은 동일한 값 z에 대한 비밀 공유.
1 : 각 플레이어 Pi이 되도록 하는 를 연산한다.
2 : 각 플레이어 Pi을 다른 플레이어들에 브로드캐스트한다.
3 : 플레이어들은 를 연산한다.
4 : 각 플레이어 Pi는 z의 tofhdns 공유를 로서 연산한다.
4 푸리에 근사화
푸리에 이론은 삼각 함수 다항식들로 특정 주기 함수들을 근사화할 수 있게 한다. 이 섹션의 목표는 다음 두 가지이다: MPC에서 삼각 함수 다항식들을 평가하는 방법을 제시하는 것 그리고 비주기 함수들에 대한 일부 근사화 결과들의 확장을 검토하고 제시하는 것.
4.1 MPC에서 삼각 함수 다항식 또는 푸리에 급수의 평가
복소 삼각 함수 다항식은 t(x) = 형태의 유한 합이며, 여기서 과 동일하며, 이다. 각 삼각 함수 다항식은 주기가 2π인 주기 함수이다. 모든 에 대해 이면, t는 실가이고, t(x) = a0 + 에 대응한다. 여기서, MPC 상황에서 삼각 함수 다항식을 평가하는 방법을 설명하고 그것이 왜 일반 다항식들보다 나은지 설명한다.
모든 m에 대해, t의 계수 am 및 bm이 공개적으로 액세스 가능하고 0 ≤ am, bm ≤ 1인 것으로 가정한다. t가 2π 주기이므로, 그것을 입력 모듈로 2π에 관해 평가할 수 있다. mod 2π가 균일한 분포를 허용함에 따라, 균일한 마스킹을 사용할 수 있다는 것을 상기한다: 이 방법은 곱셈 마스킹을 통한 고전적 다항식들의 평가와 관련된 누설 문제들을 완전히 해결한다. 반면, 평가의 출력은 여전히 에 있다: 이 경우 이전 섹션들에서 설명된 통계적 마스킹을 계속 사용한다. 입력들은 비공개적으로 공유되고 가산적으로 마스킹된다: 명확성을 기하기 위해 실수들에 대한 고전적 덧셈을 덧셈 모듈로 2π와 구별하기 위해, 이를 일시적으로 문자 로 표기한다. 동일한 방식으로, 덧셈 모듈로 2π에 대한 가산적 비밀 공유를 로 표기한다. 그 다음, 로부터 로의 전이를 공유 모듈로 2π를 사소하게 감소시킴으로써 달성할 수 있다.
그 다음, 비밀 공유된 입력 에 관해 t를 평가하는 방식은 로 변환하고 그것을 공유된 마스킹 로 가산적으로 마스킹한 다음, 를 드러내고 본 출원의 타겟 로서 재작성한다. 실제로, 가 드러나기 때문에, 계수 는 자유롭게 연산될 수 있다. 전반적으로, 전체 삼각법 다항식 t는 사전 연산된 삼각법 다항식 또는 푸리에 급수 마스킹 데이터 이를테면 를 고려하고 가 드러났다는 사실에 기인하여 단일 차례의 통신으로 평가될 수 있다.
또한, 복소수의 절대값 1로 작업하는 것은 일반 다항식들의 거듭 제곱에 비해 방법을 수치적으로 안정적이게 만든다는 것을 알 수 있다. 이런 이유로 삼각법 다항식들의 평가는 본 출원의 상황에서 더 나은 솔루션이다.
4.2 비-주기 함수 근하솨
비주기 함수 f를 (주어진 구간, 예를 들어, [-π/2, π/2]에 관해 삼각 함수 다항식들로) 균일하게 근사화하는 데 관심이 있다면, 단순히 푸리에 계수들을 사용할 수 없다. 실제로, 함수가 분석적일지라도, 그것의 푸리에 급수는 깁스 현상으로 인해 종점 근처에서 균일하게 수렴할 필요가 없다.
4.2.1 C-확장을 통한 근사화.
이 문제를 해결하는 한가지 방법은 더 큰 구간으로 함수의 주기적인 확장을 찾고 그 확장에 대한 푸리에 급수의 수렴 속성들을 보는 것이다. 지수적 수렴을 얻으려면, 확장도 분석할 필요가 있으며, 거의 보장할 수없는 조건이다. 다시 말해서, 고전적 Whitney 확장 정리[28]는 거의 주기적으로 분석 확장을 동시에 산출하지 않을 것이다. 미분 가능한 함수들을 확장하기 위한 건설적인 접근은 Hestenes[20]와 Fefferman[16]에 의해 더 일반적으로 제공된다. 가장 좋은 것은 함수를 C-함수(분석적이지 않은)로 확장하는 것이다. [8], [9]에 설명된 바와 같이, 그러한 확장은 지수적이지 않은 초대수적 근사를 산출한다.
4.2.2 최소 제곱 근사화.
삼각 함수들을 이용하여 비주기 함수를 근사화하기 위한 대안적인 접근법은 원래 함수와 근사화 간 L2-거리의 제한(원래 구간에 대한)이 최소화되도록 더 큰 구간([-π, π]라고 한다)에 관한 이들 함수를 찾는 것이다. 이 방법은 [7]에 의해 처음 제안되었지만, 이는 표준 푸리에 기준에 대한 계수들이 기저 함수들의 수가 증가함에 따라 (최적 솔루션을 위해서는) 발산한다는 점에서 수치적으로 불안정한 것으로 관찰되었다. [21]의 방법은 최적 해의 계수들이 수치적으로 안정하게 되는 첫 번째와 두 번째 종류의 특정 하프-범위 Chebyshev 다항식들의 상이한 직교 정규 기초를 사용하여 이 문제를 해결할 수 있다. 또한, 가우스 구적 법칙을 사용하여 이러한 계수들을 수치적으로 연산할 수 있다.
4.2.2.1 반주기에 걸친 삼각 함수 다항식에 의한 함수들의 근사화
f를 반드시 매끄럽거나 주기적일 필요는 없는 구간 [-π/2, π/2]에서 제곱적분 가능 함수라고 하자.
4.2.2.1.1 근사화 문제
2π-주기 함수 및 문제의 다음 집합을 고려한다
.
[7]에서 관찰된 바와 같이, 기초를 사용하여 해를 쓰면, 함수 gn의 푸리에 계수들은 경계가 없어 수치적으로 불안정해진다. [21]에서 첫 번째와 두 번째 종류의 Chebyshev 다항식들과 밀접하게 관련된 직교 다항식의 두 가지 군의 면에서 해를 설명하는 방법에 대해 설명했다. 더 중요한 것은, 해가 대수적으로가 아니라 지수적으로 수렴한다는 것이 증명되었으며, 이러한 베이스들의 관점에서 해 gn x)를 수치적으로 추정하는 방법이 제시된다.
이제 [21]의 방법을 요약할 것이다.
라고 하고 을 이러한 함수들(짝수 함수들의 부분 공간)에 의해 걸쳐 이어지는 -벡터 공간이라 한다. 유사하게,
라 하고, 을 Sn(홀수 함수들의 공간)의 -공간이라 한다. 이 Gn의 기초임에 주의한다.
4.2.2.1.2 Chebyshev의 첫 번째 및 두 번째 종류의 다항식들
y ∈ [-1, 1]에 대한 Tk(y)를 첫 번째 유형의 k 번째 Chebyshev 다항식, 즉 모든 θ에 대해 다항식이 Tk(cosθ) = cos kθ를 만족한다고 하고 Tk(1) = 1(Tk는 차수 k를 가짐)이도록 정규화된다고 한다. k가 변함에 따라, 이 다항식들은 가중치 함수 에 대하여 직교한다. 유사하게, y ∈ [-1, 1]에 대한 Uk (y)를 두 번째 유형의 k 번째 Chebyshev 다항식, 즉 Uk(cosθ) = sin((k+1)θ)/ sin θ을 만족한다고 하고 Uk(1) = k + 1이도록 정규화된다고 한다. 다항식 {(Uk(y)}가 가중치 함수 에 대해 직교한다.
[21, Thm.3.3]에서 짝수 함수들의 공간에 대한 직교 정규 베이스들을 형성하는 하프-범위 Chebyshev 다항식들의 시퀀스 를 정의하는 방법이 설명된다. 유사하게, [21, Thm.3.4]는 홀수 함수들에 대한 직교 정규 기초 (제2 유형의 하프-범위 Chebyshev 다항식들)를 산출한다. [21, Thm.3.7]에 따르면 위의 문제에 대한 해 gn
로 주어지며 여기서
,
그리고
.
표준 푸리에 기준으로 솔루션 해 gn을 표현하는 것이 수치적으로 불안정하지만, 정규 직교 기준 면에서 그것들을 표현하는 것은 안정적이다. 또한, 수렴은 지수적임이 [21, Thm.3.14]에 제시된다. 계수들 ak 및 bk를 수치적으로 연산하기 위해서는, [21, §5]에 설명된 가우스 구적 법칙들을 사용한다.
4.2.3 시그모이드 함수의 근사화.
이제 일부 B > 0에 대해 [-B/2, B/2] 구간에 걸쳐 시그모이드 함수의 경우로 제한한다. 변수를 [-π/2, π/2]에 대해 대략 g(x) = sigmo(Bx/π)로 리스케일링할 수 있다. 거울 조건 g(x) = g(π-x)를 이용하여 반-주기성(홀-짝)에 의해 g를 구간 [π/2, 3π/2]까지 연장하면, 연속적인 2π-주기 구분적 C1 함수를 얻는다. Dirichlet의 전역적 정리에 따르면, g의 푸리에 급수는 에 대해 균일하게 수렴하므로, 모든 ε> 0에 대해, 이도록 차수 N 및 삼각 함수 다항식 gN이 존재한다. 비밀 공유 t에 대해 sigmo(t)를 연산하기 위해, 먼저 변수의 아핀 변경 (MPC에서 쉽게 평가할 수 있음)을 적용하여, 대응하는 x ∈ [-π/2, π/2]를 얻은 다음, 푸리에 수치 마스킹 데이터를 사용하여 삼각 함수 다항식 gN(x)를 평가한다. 이 방법은 단지 10항의 다항식으로 24 비트의 정밀도를 얻기에 충분하지만, g의 미분의 불연속성으로 인해 무조건 수렴 속도가 이다. 다시 말해, g를 λ 비트 정밀도로 근사화하려면 차수 2λ/2의 삼각 함수 다항식을 평가해야 한다. 운 좋게도, 시그모이드 함수의 특별한 경우에, 전체 구간 [-π, π](하프 구간이 아닌)에 관해 리스케일링된 시그모이드에 지수적으로 가까운 2π-주기 분석 함수를 명시적으로 구성함으로써 이 차수의 다항식을 연산할 수 있다. 또한, 삼각 함수 다항식 계수들의 기하학적 붕괴는 완벽한 수치 안정성을 보장한다. 다음 정리는이 구성을 요약 한 것이다.
정리 1. x ∈ (-π, π)에 대해 라고 한다. 모든 ε> 0에 대해, 가 2π-주기 분석 함수 g로부터 균일한 거리 ε/2에 있도록 하는 가 존재한다. g의 푸리에 급수의 n 번째 항이 g의 거리 ε/2에 그에 따라 로부터의 거리 에 있도록 하는 가 존재한다.
이제 다음 방법론으로 정리 1을 증명한다. 먼저 미분 방정식을 사용하여 시그모이드 함수의 연속 미분의 경계를 정했다. 그 다음, 시그모이드의 1차 도함수가 지수적으로 빠르게 붕괴하기 때문에, 모든 x modulo 2π에 대한 모든 값을 합산하고 [-π, π]에 대해 직교 함수를 밀접하게 근사화하는 C주기 함수를 구성할 수 있다. 마지막으로, 연속적인 도함수의 경계는 푸리에 계수들의 기하학적 감소를 직접적으로 입증한다.
증명. 먼저, 에 대한 시그모이드 함수를 고려한다. σ는 미분 방정식 σ' = σ-σ2를 충족시킨다. n번 미분함으로써, 다음을 얻는다
,
(n + 1)!로 나누면, 다음을 낸다
그로부터, 모든 n ≥ 0에 대해 그리고 모든 에 대해 을 유도함으로써 그것이 n에 따라 감소되며, 그에 따라 모든 n ≥ 1에 대해, 다음을 추론한다
.
도 1은 리스케일링된 시그모이드의 홀-짝 주기 확장의 그래프를 도시한다.
리스케일링된 시그모이드 로부터 까지 반주기(anti-periodicity)에 의해 확장된다. 이 그래프는 = 1, 3, 5의 경우 확장된 함수를 도시한다. 요컨대, 출력 함수의 푸리에 급수는 다음과 같이 단지 홀수 사인 항들만 갖는다: . 의 경우, 제1 푸리에는 다음과 같이 급격히 감소하는 시퀀스를 형성하며: [6.12e-1, 1.51e-1, 5.37e-2, 1.99e-2, 7.41e-3, 2.75e-3, 1.03e-3, 3.82e-4, 1.44e-4, 5.14e-5, 1.87e-5, ...], 이는 24 비트의 정확도를 빠르게 달성한다. 그러나, 시퀀스는 미분의 불연속성으로 인해 O(n-2)로 점근적으로 감소하므로, 이 방법은 지수적으로 양호한 근사치를 얻기에는 적합하지 않다.
도 2는 정리 1을 통한 시그모이드의 점근적 근사화를 도시한다. 가 증가함에 따라, 리스케일링된 시그모이드 함수 의 불연속성이 사라지고, 푸리에 계수들이 기하학적으로 빠르게 감소하는 분해 주기 함수에 지수적으로 가까워진다. 이 방법은 수치적으로 안정적이고, 다항식 시간에서 임의의 정밀도로 시그모이드를 평가할 수 있다.
이제 의 미분에 매우 가까워야 하는 주기 함수를 구성한다: 라고 가정. 기하 급수의 요약에 의해, 에 대해 명확한 무한 미분 2π-주기 함수이다. 모든 에 대해, 차 에 의해 경계지어지므로, 를 선택함으로써, 이 차는 보다 작아질 수 있음을 쉽게 확인할 수 있다.
이제 가 고정된다고 가정하고 가 분해됨, 즉 그것의 푸리에 계수들이 지수적으로 빠르게 감소됨을 입증한다. 정의 에 의해, 모든 에, 이 적용되므로, 이다. 이는 n-차 푸리에 계수 임을 입증한다. 이 최소는 에 대해 도달되고, 를 낸다.
마지막으로, 이는 를 선택함으로써, 의 푸리에 급수의 N-차 항이 거리에 있고, 그에 따라 로부터 거리를 두고 있음을 입증한다. 이러한 경계는 삼각 함수 다항식을 적분함으로써 보존되며(정리로부터 의 원형이다), 이는 전체 구간 에 대해 시그모이드의 목적하는 근사화를 낸다.
5 정직하지만 기이한 모델
이전 섹션들에서, 곱, 거듭 제곱 및 푸리에 수치 마스킹 데이터의 공유를 정의했지만, 그것들을 생성하는 방법은 설명하지 않았다. 물론 모든 플레이어에 의해 승인된 신뢰할 수 있는 단일 딜러(TD 모델)는 플레이어들에 필요한 모든 공유를 생성하여 배포할 수 있다. 신뢰할 수 있는 딜러는 모든 마스크, 그리고 그에 따라 모든 데이터를 알고 있으므로, TD 모델은 소수의 연산 아웃소싱 시나리오에만 적합하다.
이제 보다 전통적인 정직하지만 기이한(HBC) 모델에서 동일한 수치 마스킹 데이터를 효율적으로 생성하는 방법을 설명한다. 이를 위해, 수치 마스킹 데이터를 생성하기 위해 대화형 프로토콜에 참여하지만, 마스킹된 정보만을 보는, 다시 딜러라고 하는 외부 엔터티를 유지한다. HBC 및 TD 모델들 둘 다의 수치 마스킹 데이터는 유사하기 때문에, 온라인 단계는 변경되지 않는다. 이 HBC 모델에서, 딜러가 비밀 공유에 액세스할 수 없더라도, 여전히 플레이어들보다 많은 권한을 갖는다. 실제로 플레이어들 중 하나가 비밀 데이터에 관한 정보를 얻으려면, 다른 모든 플레이어와 결탁해야 하지만, 딜러는 그 중 하나와만 협력하면 될 것이다.
5. 1 정직하지만 기이한 통신 채널들
다음에서, 오프라인 단계 동안, 각 플레이어와 딜러 간에는 비공개 채널이 존재한다고 가정한다. HBC 딜러의 경우, 또한 모든 플레이어 간에 추가적인 비공개 브로드캐스트 채널(딜러가 액세스할 수 없는 채널)이 존재한다고 가정한다. 이후, 온라인 단계에는 플레이어들 간 공개 브로드캐스트 채널만 있으면 된다. 실제로, 기본 암호화로 인해, 비공개 채널들(예를 들어, SSL 연결들)은 공개 채널들(일반적으로 클라우드 인스턴스들 간 100 내지 1000MB/s의 평 TCP 연결들)보다 처리량이 낮다(일반적으로 20MB/s).
이 섹션에 제시되는 도면들은 신뢰할 수 있는 딜러와 정직하지만 기이한 모델들에서 플레이어들과 딜러 간 통신 채널들을 나타낸다. 다음과 같은 두 가지 유형의 통신 채널이 사용된다: 실제로는 SSL 채널들(일반적으로 < 20MB/s)에 해당하는 비공개 채널들, 및 실제로는 TCP 연결들(일반적으로 100MB 내지 1GB/s)에 해당하는 공개 채널들. 도면들에서 비공개 채널들은 점선들로 표현되는 한편, 공개 채널들은 평선들로 표현된다.
도 3은 일 실시 예에 따른 MPC 프로토콜들의 오프라인 단계 동안의 개략적인 연결들을 도시한다. 도면은 오프라인 단계 동안 사용되는 신뢰할 수 있는 딜러 모델(왼쪽) 및 정직하지만 기이한 모델(오른쪽) 둘 다의 통신 채널들을 도시한다. 첫 번째 모델에서, 딜러는 비공개 채널을 통해 수치 마스킹 데이터를 각 플레이어에게 송신한다. 두 번째 모델에서는, 플레이어들이 모든 플레이어 간에 공유되는 비공개 브로드캐스트 채널에 액세스할 수 있고 각 플레이어는 딜러와 추가 비공개 채널을 공유한다. 비공개 채널들은 점선들로 표기된다. 도면은 3 플레이어를 나타내지만, 각 모델은 임의의 수 n 플레이어로 확장될 수 있다. TD 모델에서 딜러는 사전 연산된 모든 데이터를 생성하는 유일한 것이다. 그것은 비공개 채널들을 사용하여 그것의 수치 마스킹 데이터 공유를 각 플레이어에게 송신한다(일방 화살표). HBC 모델에서, 플레이어들은 수치 마스킹 데이터 생성을 위해 협력한다. 그러기 위해서는, 그들 사이에 딜러가 액세스할 수 없는 추가적인 개인 브로드캐스트 채널이 필요하다.
도 4는 일 실시 예에 따른 온라인 단계 동안 플레이어들 간 개략적인 통신 채널들을 도시한다. 도면은 온라인 단계 동안 사용되는 통신 채널들을 도시한다. 플레이어들은 공개 브로드캐스트 채널을 통해 마스킹된 값들을 송수신한다(공개 채널들은 평선들로 표기됨). 예에서 3으로 제한되는 그들의 수는 일반적인 수 n 플레이어로 쉽게 확장될 수 있다. 온라인 단계는 TD 및 HBC 모델들 둘 다에서 동일하고 딜러는 존재하지 않는다.
5.2 정직하지만 기이안 방법들
문헌에서 제안된 대부분의 HBC 프로토콜은 단지 2 플레이어를 갖는 시나리오를 제시한다. [11] 및 [3]에서, 편저자들은 3 플레이어가 있는 모델에서 빠른 MPC 곱을 수행하는 데 사용될 수 있는 효율적인 HBC 프로토콜들을 설명한다. 두 방식은 당사자들이 프로토콜을 올바르게 따르고 두 플레이어가 결탁하지 않는다고 가정한다. [11]에서 제안된 방식은 셋보다 많은 당사자로 스케일링하기가 매우 복잡한 한편, [3]의 프로토콜은 일반 플레이어 수로 확장될 수 있지만, 이차 수의 비공개 채널을 필요로 한다(모든 플레이어 쌍마다 하나씩). 임의의 수의 플레이어에 효율적인 HBC 시나리오에서 곱의 수치 마스킹 데이터를 생성하기 위한 다른 프로토콜을 제안한다. 본 출원의 방식에서, 딜러는 플레이어들에 의해 생성된 마스킹된 데이터에 대해, 수치 마스킹 데이터 생성에서의 비선형 부분들을 평가한 다음 마스킹된 공유를 분배한다. 마스크는 모든 플레이어에게 공통적이고, 그들이 공유하는 비공개 브로드캐스트 채널 덕분에 생성된다. 마지막으로, 각 플레이어는 딜러로부터 수신되는 사전 연산된 데이터를 마스킹 해제함으로써 그것의 수치 마스킹 데이터를 생성한다.
이제 정직하지만 기이한 시나리오에서 다음 두 가지 방법: 곱의 Beaver의 수치 마스킹 데이터 생성을 위한 첫 번째 방법 및 거듭 제곱 함수의 연산에 사용되는 수치 마스킹 데이터 생성을 위한 두 번째 방법을 상세하게 제시한다. 두 방법 모두에서, 딜러 및 플레이어들은 수치 마스킹 데이터 생성을 위해 협력하고 그 중 어느 것도 전체 정보에 액세스할 수 있다고 가정되지 않는다. 일반적인 아이디어는 플레이어들이 각자 비밀을 유지하는 그들의 비밀 공유(첫 번째 경우 λ 및 μ, 두 번째 경우 λ만의)를 생성한다는 것이다. 또한 그들은 그들이 브로드캐스트 채널을 통해 서로 공유하지만 딜러에게는 비밀로 유지되는 공통 마스크의 비밀 공유를 생성한다. 그 다음 플레이어들은 공통 마스크로 비밀 공유를 마스킹하고 그것을 비선형 부분들(첫 번째 방법의 곱과 두 번째 방법의 거듭 제곱)을 평가하는 딜러에게 송신한다. 딜러는 결과에 대한 새로운 가산적 공유를 생성하고 이 값들을 비공개 채널을 통해 다시 각 플레이어에게 송신한다. 이런 식으로, 플레이어들은 서로의 공유를 알지 못한다. 마지막으로, 공통 마스크를 알고 있는 플레이어들은 그들의 비밀 공유를 독립적으로 마스킹 해제하고, 수치 마스킹 데이터의 그들의 최종 공유를 얻을 수 있으며, 그에 따라 이는 딜러에게 알려지지 않는다.
정직하지만 기이한 수치 마스킹 데이터 생성 방법
출력 : 를 공유하며 이다.
1 : 각 플레이어 Pi는 ai, bi, λi, μi를 생성한다(일치되는 분포로부터).
2 : 각 플레이어 Pi는 다른 모든 플레이어 ai, bi와 공유한다.
3 : 각 플레이어는 a = a1 + ··· + an 및 b = b1 + ··· + bn을 연산한다.
4 : 각 플레이어 Pi는 딜러에 ai + λi 및 bi + μi를 송신한다.
5 : 딜러는 a + λ, b + μ 및 w =(a + λ)(b + μ)를 연산한다.
6 : 딜러는 를 생성하고 wi를 플레이어 Ρi(i = 1, . . , n)에 송신한다.
7 : 플레이어 P1는 z1 = w1 - ab - aμ1 - bλ1을 연산한다.
8 : 플레이어 i(i = 2, . . . n)는 zi = wi - aμi - bλi를 연산한다.
거듭 제곱 함수 방법을 위한 정직하지만 기이한 수치 마스킹 데이터 생성
출력 : 를 공유
1 : 각 플레이어 Pi는 λi, ai를 생성한다(일치되는 분포로부터).
2 : 각 플레이어 Pi는 다른 모든 플레이어 ai와 공유한다.
3 : 각 플레이어는 a = a1 + ··· + an을 연산한다.
4 : 각 플레이어 Pi인 방식으로 zi를 생성한다.
5 : 각 플레이어 Pi는 딜러에 zi + aλi를 송신한다.
6 : 딜러는 μλ 및 , b + μ 및 를 연산한다.
7 : 딜러는 를 생성하고 wi를 플레이어 Ρi(i = 1, . . , n)에 송신한다.
8 : 각 플레이어 P1는 wi로 오른-곱하여 를 얻는다.
이제 HBC 시나리오에서 삼각 함수 다항식의 평가에 사용되는 수치 마스킹 데이터의 생성을 위한 세 번재 방법을 제시한다.
출력 : 을 공유
1 : 각 플레이어 Pi는 λi, ai를 생성한다(균일하게 모듈로 2π).
2 : 각 플레이어 Pi는 ai를 다른 모든 플레이어에 브로드캐스트한다.
3 : 각 플레이어 Pi는 a = a1 + ··· + an mod 2π를 연산한다.
4 : 각 플레이어 Pi는 딜러에 λi + ai mod 2π를 송신한다.
5 : 딜러는 λ + a mod 2π 및 를 연산한다.
6 : 딜러는 를 생성하고 를 플레이어 Pi에 송신한다.
7 : 각 플레이어 Pi는 각 로 곱하여 모든 에 대해 를 얻는다.
6 로지스틱 회귀에의 적용
분류 문제에서는 훈련 세트(training set)라고도 하는 데이터 집합이 주어지며, 이는 여기서 행렬 및 훈련 벡터 로 나타낼 것이다. 데이터 집합은 각각 k개의 피처의 N개의 입력 벡터로 구성되고, 벡터 y의 좌표 yi는 데이터 집합의 i번째 요소가 속하는 부류(0 또는 1)에 대응한다. 공식적으로, 목표는 k개의 피처를 포함하는 벡터 x를 입력 a로 취하고, 대응하는 출력 값 y를 합리적으로 잘 예측하는 를 출력하는 함수 를 결정하는 것이다.
로지스틱 회귀에서는, 통상적으로 형태의 가설 함수들 을 사용하며, 여기서 이고 이다. 모델이라고도 하는 벡터 는 결정되어야 하는 매개변수이다. 이를 위해, 데이터 지점(x, y)에서 모델의 품질을 측정하는 볼록한 비용 함수 는 다음과 같이 정의된다
.
그에 따라 전체 데이터 집합에 대한 비용은 로서 연산된다. 전체 목표는 비용 함수가 가능한 0에 가까운 모델()을 결정하는 것이다. 이를 달성하기 위한 통상의 방법은 모델()을
로서 지속적으로 업데이트하는 것으로 이루어지는 소위 경사 하강이며, 여기서 는 비용 함수의 경사이고 는 학습율이라 하는 상수이다. 최적의 를 선택하는 것은 다음과 같이 주로 데이터 집합의 품질에 따른다: 가 너무 클 경우, 방법은 발산할 수 있고, 가 너무 작을 경우, 최소에 도달하는 데 매우 많은 반복 횟수가 요구된다. 불행하게도, 이러한 매개변수를 조정하는 것은 데이터에 관한 정보를 드러내는 것 또는 공개 거짓 훈련 집합에 액세스하는 것 중 어느 하나를 필요로 하며, 이는 비공개 MPC 연산들에서 항상 실행 가능하지도 않다. 이 단계는 보통 문헌에서 조용히 무시된다. 유사하게, 피처 스케일링 또는 직교화 기술들과 같은 전처리 기술은 데이터 집합을 개선할 수 있고, 학습율을 상당히 증가시킬 수 있다. 그러나 다시, 이러한 기술들은 입력 데이터가 공유되고, 상관 정보가 비공개로 유지되어야 하는 때 쉽게 구현될 수 없다.
이 작업에서, 충분한 부동 소수점 정밀도를 갖는다면, 피처 스케일링을 필요로하지 않고 학습율 1로 작동하며 훨씬 적은 반복으로 수렴하는 IRLS 방법[5, §4.3]을 구현하기로 선택한다. 이 경우, 모델은:
로 업데이트되며, 여기서 는 Hessian 행렬이다.
6.1 구현 및 실험 결과들
C++로 로지스틱 회귀 방법의 MPC 개념 증명을 구현했다. 128 비트 부동 소수점 숫자들로 C(B, p) 부류들의 숫자들을 나타내고, 마스킹 보안 매개변수를 τ = 40 비트로 설정했다. 128 비트 숫자는 113 비트의 정밀도이고, 곱 방법은 2τ = 80 비트의 마스킹을 필요로 하므로, 여전히 연산 전체에서 자유롭게 사용할 수 있는 33 비트의 정밀도를 갖는다. 벤치마크는 일반 x86_64 CPU에서 수행되므로, GCC의 quadmath 라이브러리를 사용하여 128 비트 부동 소수점 산술이 에뮬레이트되지만, 이러한 연산들을 기본적으로 지원하는 보다 최신 하드웨어(예를 들어, IBM의 다음 POWER9 프로세서)에서는 추가 속도 증가가 달성될 수 있다. 개념 증명에서, 주요 초점은 실행 시간, 부동 소수점 정밀도 및 온라인 단계의 통신 복잡도를 개선하는 것이었으므로, 신뢰할 수 있는 딜러 시나리오에 대해서만 오프라인 단계를 구현하여, 정직하지만 기이한 딜러 변형 예는 앞으로의 연구 과정으로 남는다.
IRLS 방법을 이용하는 모델 훈련 방법을 아래에 제시한다. 이 방법은 아래에서 평문 구현을 위해 먼저 설명된다. MPC 인스턴스화에서, 각 플레이어는 각 변수들에 대한 비밀 공유를 얻는다. 모든 곱은 섹션 2의 겹선형 공식을 사용하고 섹션 4의 푸리에 방법을 사용하는 시그모이드를 사용하여 평가된다.
모델 훈련 방법 : Train(X, y)
입력 : 데이터 집합 X ∈ MN,k() 및 훈련 벡터 y ∈ {0,1}N
출력 : 비용X,y(θ)를 최소화하는 모델 θ ∈ Rk
1 : Prodsi = (i ∈ [0, N-1]))를 사전 연산
2 : θ ← [0,..., 0] ∈ Rk
3 : for iter = 1 to IRLS_ ITERS do // 실제 IRLS_ITERS = 8
4 : a ← Χ·θ
5 : p ← [sigmo(a0),..., sigmo(aN-1)]
6 : pmp ← [po(1-po),..., pN-1(1-pN-1)]
7 : grad ← XT(p-y)
8 : H ← pmp · Prods
9 : θ = θ - H-1 · grad
10 : end for
11 : θ 리턴
이 방법에서 설명된 로지스틱 회귀 모델 훈련을 구현 하였다. 메인 루프의 각 반복은 현재 위치 θ에서 비용 함수의 경사(grad) 및 Hessian(H)을 평가하고 다음 위치를 찾기 위해 Hessian 시스템(7행)을 해결한다. 대부분의 연산 단계는 큰 행렬들 또는 벡터들 상의 겹선형이고, 각각이 단일 통신 차례에서 Beaver 삼중항(수치 마스킹 데이터)을 통해 평가된다. 단계 5에서, 시그모이드 함수들은 전체 구간에 대해 20 비트의 정밀도를 제공하는 차수 23의 홀수 삼각 함수 다항식에 의해 근사화(병렬)된다. 따라서 섹션 4에 설명된 바와 같이, 푸리에 수치 마스킹 데이터의 벡터를 사용한다. Hessian 시스템(단계 9)은 왼쪽과 오른쪽에 두 개의(균일 임의) 정규 직교 행렬들로 마스킹되어 드러나므로. 평문으로 해석될 수 있다. 이 방법은 경사의 norm을 드러내지만(어쨌든 예측 가능한), 방향은 완전히 숨겨서, 최종 모델이 비공개로 유지되기에 충분하다. 마지막으로, 입력 데이터는 반드시 리스케일링되는 것은 아니므로, 임의의 위치가 아닌 제로 위치에서 시작하는 것이 추천되는데(단계 2), 이는 첫 번째가 IRLS 수렴 도메인에 있는 것으로 보장되기 때문이다.
본 방법의 MPC 평가를 구축하기 위해, 이 상위 레벨 리스팅을 전처리하고 모든 for 루프를 풀며 불변 변수들에 대한 명령 시퀀스로 전환하는 작은 컴파일러를 작성하였다(이는 영향을 받으면 판독 전용임). 더 중요한 것은, 컴파일러가 단일 가산적 마스크 λu를 이러한 불변 변수들 U 각각에 연관시키는 것이다. 이는 이전 섹션들에서 본 다음 두 가지 중요한 문제를 해결한다: 첫 번재, 전체 프로토콜 동안 한 번만(이 최적화는 [25]에 이미 나타나 있으며, 본 출원의 경우 상수 입력 행렬 및 모든 IRLS 반복에서 재사용되는 사전 연산된 곱들에 큰 영향을 미친다). 또한 공격자가 동일한 분포의 두 샘플을 절대 얻지 않기 때문에, 그것의 마스킹된 분포를 평균화하여 정보를 검색할 수 있는 공격을 완화한다. 이는 마스킹을 위한 40 비트의 보안 선택을 정당화한다.
오프라인 단계 동안, 신뢰할 수 있는 딜러는 각 불변 변수에 대해 하나의 임의 마스크 값을 생성하고, 이러한 마스크들을 비밀 공유한다. 임의의 두 불변 변수 U와 V 간 모든 행렬-벡터 또는 행렬-행렬 곱에 대해(위의 모델 훈련 방법의 1, 4, 6, 7 및 8행에서 나오는), 신뢰할 수 있는 딜러는 또한 U의 마스크 λu 및 V의 마스크 λv를 사용하여 특정 곱 삼중항을 생성한다. 보다 정확하게, 그것은 λu·λv 뿐만 아니라 에 대한 가산적 공유를 공유 감소 단계의 곱과 동일한 차원의 정수 벡터들/행렬들도 생성 및 분포한다. 이러한 정수 계수들은 효율상의 이유로 모듈로 256으로 취한다.
6.2 결과들
모든 설명된 방법을 구현했고 Xeon E5-2666 v3 프로세서들을 갖는 AWS 및 Azure 플랫폼 둘 다에서 클라우드 인스턴스들을 사용하여 2 및 3 당사자에 대해 코드를 테스트했다. 적용시, 각 인스턴스는 그것의 공개 IP 주소를 통해 통신한다. 또한, zeroMQ 라이브러리를 사용하여 플레이어들 간의 낮은 수준의 통신(피어 투 피어, 브로드캐스트, 중앙 노드 등)을 핸들링한다.
도 5는 n = 3 플레이어에 대해 실험 동안 획득한 상이한 측정치들을 요약한 구현 결과들의 표를 도시한다. 각각 8, 12 또는 20개의 피처를 갖는 10000 내지 1500000개의 지점을 포함하는 데이터 집합들을 고려했다. 제공된 결과들에서 IRLS 반복 횟수는 대부분의 데이터 집합에 대한 완벽한 수렴에 도달하기에 충분한 8로 고정하였고, MPC 연산이 평문 반복이 있는 것과 동일한 모델을 출력하는지 실험적으로 확인했다. 150000개의 지점의 데이터 집합들에 대해 온라인 단계의 총 실행 시간의 범위는 1분에서 5분에 이른다. 이 실행 시간은 대부분 에뮬레이트된 quadfloat 산술을 사용하기 때문이고, 이 MPC 연산은 동일한 128 비트 부동 소수점을 사용하여 구현할 경우 동일한 데이터 집합들서 평문 로지스틱 회귀보다 20배 이상 느리지 않다(그러나, 물론, 단순 이중 정밀도 버전이 훨씬 더 빠르다). 더 흥미롭게도, 수치 마스킹 데이터 및 온라인 통신량의 전체 크기가 작다는 것을 알 수 있다: 예를 들어 8개의 피처를 가진 150000 지점의 로지스틱 회귀는 플레이어당 756MB의 수치 마스킹 데이터만을 필요로 하고, 그 중 플레이어당 온라인 단계 동안 205MB의 데이터만 브로드캐스트된다. 이는 푸리에 수치 마스킹 데이터가 마스킹 및 교환되는 값보다 훨씬 크기 때문이다. 이 때문에, 일반적인 WAN 대역폭을 이용하더라도, 전체 실행 시간과 비교하여 통신 시간은 사소하다.
마지막으로, 입력 데이터가 피처-스케일링되는 것으로 보장될 때, 3번의 고전적 경사 하강 반복을 수행한 후 8번의 IRLS 반복 대신 5번의 IRLS 반복을 수행함으로써 전체 시간, 메모리 및 통신 복잡성을 약 30% 개선할 수 있다. 평문과 MPC 버전 둘 다에 대해 이 최적화를 테스트했고 사용된 방법에 따라 로지스틱 회귀 및 F-스코어의 비용 함수 진전을 보여준다.
도 6은 8개의 피처 및 0.5%의 수락률을 갖는 150000개의 샘플의 테스트 데이터 집합에 관한, 로지스틱 회귀 동안 비용 함수의 진전을 반복 횟수의 함수로서 도시한다. 황색은 최적의 학습률을 가진 표준 경사 하강, 적색은 시그모이드 함수의 구분적 선형 근사([25]에서와 같이)를 사용하는 경사 하강 그리고 녹색은 MPC 모델(IRLS 방법을 기반으로 함)을 사용한다. MPC IRLS 방법(평문 IRLS 뿐만 아니라) 방법은 표준 경사 방법의 500회 반복에 대해 8회 미만의 반복으로 수렴된다. 예상대로, 근사화 방법은 최소 비용에 도달하지 않는다.
도 7은 동일한 로지스틱 회귀 동안 F-스코어의 평가를 반복 횟수의 함수로서 도시한다. 표준 경사 하강과 본 출원의 MPC는 동일한 모델을 생성하며, 한계 F-스코어는 0.64이다. 그러나, 구분적 선형 근사화에 의해 양성 샘플이 검출되지 않아 널 F-스코어가 발생된다. 그러나, 세 가지 경우, 정확도(자색)는 첫 번째 반복에서 거의 100%이다.
금융 산업에 의해 제공된 데이터 집합들에 관해 본 출원의 플랫폼을 테스트했다. 프라이버시 상의 이유로, 이러한 데이터 집합들은 드러낼 수 없다. 그러나 예를 들어, 가우스 분포를 이용하여 임의 데이터 집합들을 생성하고 허용 임계치를 0.5%로 설정하며 몇 개의 라벨을 임의로 교환하여 일정 노이즈를 추가함으로써 본 문서에 설명된 거동을 재현할 수 있다.
미해결 문제들. 첫 번째 중요한 미해결 문제는 노이즈 감소 방법을 사용한 후의 분포를 구별할 수 없다는 것이다. 보다 근본적인 수준에서, 표준 푸리에 기준과는 대조적으로 부록에 정의된 하스-범위 Chebyshev 다항식을 기반으로 마스킹하는 방법을 찾으려고 한다. 그러한 방법은 지수적 근사와 함께, L2([-1, 1])의 임의의 함수를(MPC로) 평가할 수 있게 할 것이다.
7 참고 문헌들
1. M. Abadi, A. Chu, I. Goodfellow, H. Brendan McMahan, I. Mironov, K. Talwar 및 L. Zhang. Deep learning with differential privacy. CoRR, abs/1607.00133, 2016.
2. Y. Aono, T. Hayashi, L. Trieu Phong 및 L. Wang. Privacy-preserving logistic regression with distributed data sources via homomorphic encryption. IEICE Transactions, 99-D(8):2079-2089, 2016.
3. T. Araki, J. Furukawa, Y. Lindell, A. Nof 및 K. Ohara. High-throughput semihonest secure three-party computation with an honest majority. 2016 ACM SIGSAC Conference on Computer and Communications Security 히의록, 오스트리아, 비엔나, 2016. 10. 24-28., 페이지 805-817, 2016.
4. D. Beaver. Efficient Multiparty Protocols Using Circuit Randomization. CRYPTO '91, Lecture Notes in Computer Science 576권, 페이지 420-432. Springer, 1992.
5. A. Bjorck. Numerical Methods for Least Squares Problems. Siam Philadelphia, 1996.
6. D. Bogdanov, S. Laur 및 J. Willemson. Sharemind: A framework for fast privacy preserving computations. ESORICS 2008, 페이지 192-206. Springer, 2008.
7. J. Boyd. A comparison of numerical algorithms for Fourier extension of the first, second, and third kinds. J. Comput. Phys., 178(1):118-160, 2002. 05.
8. J. Boyd. Fourier embedded domain methods: Extending a function defined on an irregular region to a rectangle so that the extension is spatially periodic and c∞. Appl. Math. Comput., 161(2):591-597, 2005. 02.
9. J. Boyd. Asymptotic fourier coefficients for a C infinity bell(smoothed-"top-hat") & the fourier extension problem. J. Sci. Comput., 29(1):1-24, 2006.
10. K. Chaudhuri 및 C. Monteleoni. Privacy-preserving logistic regression. Daphne Koller, Dale Schuurmans, Yoshua Bengio 및 Leon Bottou, 편저자, Advances in Neural Information Processing Systems 21, Twenty-Second Annual Conference on Neural Information Processing Systems 회의록, 캐나다, 브리티시 컬럼비아, 2008. 12. 08-11., 페이지 289-296. Curran Associates, Inc., 2008.
11. R. Cramer, I. Damard 및 J. B. Nielsen. Secure Multiparty Computation and Secret Sharing. Cambridge University Press, 2015.
12. I. Damard, V. Pastro, N. Smart 및 S. Zakarias. Multiparty computation from somewhat homomorphic encryption. Reihaneh Safavi-Naini 및 Ran Canetti, 편저자, Advances in Cryptology CRYPTO 2012 32nd Annual Cryptology Conference, 미국, 캘리포니아, 샌타바버라, 2012. 08. 19-23. 회의록, Computer Science 원서 자료 7417권, 페이지 643-662. Springer, 2012.
13. I. Damard, V. Pastro, N. P. Smart 및 S. Zakarias. SPDZ Software. www.cs.bris.ac.uk/Research/CryptographySecurity/SPDZ/
14. Dataset. Arcene Data Set. archive. ics.uci.edu/ml/datasets/Arcene.
15. Dataset. MNIST Database. yann.lecun.com/exdb/mnist/.
16. C. Fefferman. Interpolation and extrapolation of smooth functions by linear operators. Rev. Mat. Iberoamericana, 21(1):313-348, 2005.
17. A. Gascon, P. Schoppmann, B. Balle, M. Raykova, J. Doerner, S. Zahur 및 D. Evans. Privacy-preserving distributed linear regression on high-dimensional data. Privacy Enhancing Technologies 회의록, 4:248-267, 2017.
18. R. Gilad-Bachrach, N. Dowlin, K. Laine, K. E. Lauter, M. Naehrig 및 J. Wernsing.
Cryptonets: Applying neural networks to encrypted data with high throughput and accuracy. 33nd International Conference on Machine Learning 회의록, ICML 2016, 미국, 뉴욕주, 뉴욕시, 2016. 06. 19-24., 페이지 201-210, 2016.
19. I. Goodfellow, Y. Bengio 및 A. Courville. Deep Learning. MIT Press, 2016. www.deeplearningbook.org.
20. M. R. Hestenes. Extension of the range of a differentiable function. Duke Math. J., 8:183-192, 1941.
21. D. Huybrechs. On the fourier extension of nonperiodic functions. SIAM J. Numerical Analysis, 47(6):4326-4355, 2010.
22. A. Jaschke and F. Armknecht. Accelerating homomorphic computations on rational numbers. ACNS 2016, LNCS 9696권, 페이지 405-423. Springer, 2016.
23. Y. Lindell 및 B. Pinkas. Privacy preserving data mining. Advances in Cryptology CRYPTO 2000, 20th Annual International Cryptology Conference, 미국, 캘리포니아, 샌타바버라, 2000. 08. 20-24., 회의록, 페이지 36-54, 2000.
24. R. Livni, S. Shalev-Shwartz 및 O. Shamir. On the computational efficiency of training neural networks. Zoubin Ghahramani, Max Welling, Corinna Cortes, Neil D. Lawrence 및 Kilian Q. Weinberger, 편저자, Advances in Neural Information Processing Systems 27: Annual Conference on Neural Information Processing Systems 2014, 2014. 12. 08-13., 캐나다, 퀘백, 몬트리올, 페이지 855-863, 2014.
25. P. Mohassel 및 Y. Zhang. SecureML: A system for scalable privacy-preserving machine learning. 2017 IEEE Symposium on Security and Privacy, SP 2017, 미국, 캘리포니아, 새너제이, 2017. 05. 22-26., 페이지 19-38. IEEE Computer Society, 2017.
26. V. Nikolaenko, U. Weinsberg, S. loannidis, M. Joye, D. Boneh 및 N. Taft. Privacy-preserving ridge regression on hundreds of millions of records. 2013 IEEE Symposium on Security and Privacy, SP 2013, 미국, 캘리포니아, 버클리, 2013. 05. 19-22., 페이지 334-348. IEEE Computer Society, 2013.
27. L. Trieu Phong, Y. Aono, T. Hayashi, L. Wang 및 S. Moriai. Privacy-preserving deep learning: Revisited and enhanced. Lynn Batten, Dong Seong Kim, Xuyun Zhang 및 Gang Li, editors, Applications and Techniques in Information Security - 8th International Conference, ATIS 2017, 뉴질랜드, 오클랜드, 2017. 07. 06-07., 회의록, Communications in Computer and Information Science 719권, 페이지 100-110. Springer, 2017.
28. H. Whitney. Analytic extensions of differentiable functions defined in closed sets. Trans. Amer. Math. Soc, 36(l):63-89, 1934.
29. S. Wu, T. Teruya, J. Kawamoto, J. Sakuma 및 H. Kikuchi. Privacy-preservation for stochastic gradient descent application to secure logistic regression. The 27th Annual Conference of the Japanese Society for Artificial Intelligence, 27:1-4, 2013.
II. 푸리에 및 다항식 스플라인을 통한 실가 함수의 고정밀 프라이버시 보호 평가
1 개요
다항식 및 푸리에 스플라인은 기계 학습의 다양한 기능을 근사화하는 데 유용한 다항식 또는 푸리에 급수(삼각 함수) 중 어느 하나에 의해 정의되는 구분적 함수들이다.
하이브리드 다자간 연산 솔루션에 기초하여 그러한 스플라인의 고정밀 프라이버시 보호 기능 평가 방법이 개시된다. 이 방법은 비밀 공유 방법을 통한 푸리에 급수 및 다항식 평가를 가블드 회로를 통한 경계 확인과 조합한다. 구간 내 푸리에 및 다항식 함수의 프라이버시 보호 고정밀 평가는 "I 고정밀 프라이버시 보호 실가 함수 평가"섹션에서 상술한 기술들을 사용한다(또한 [3] 참조).
마지막으로, 본 출원은 고전적 가블드 회로(공개 기능이 비밀 입력에 관해 평가되는 경우)를 공개 입력에 관한 비밀 기능을 평가하는 회로로 이중화함으로써가블드 오토마타(garbled automata)로 알려진 새로운 개념을 제시한다. 이를 통해 비교 연산자와 같은 가블드 회로 설정시 일부 평가의 속도를 높일 수 있다.
2 가블드 회로를 불확정 전달과 함께 사용
먼저 다양한 최적화와 함께 불확정 전달과 기본 가블드 회로 프로토콜을 상기한다. 논리적 합성 기술은 회로를 최적화하는 데 사용되고 후술된다. 그 다음 가산적 비밀 공유를 가블드 회로 비밀 공유로 변환하고 검사를 수행한 다음 다시 가산적 비밀 공유로 변환하는 표준 기술을 설명한다.
2.1 가블드 회로에 대한 배경
일반적인 가블드 회로에서,(공개) 기능은 AND 및 XOR 게이트로 구성된 부울린 회로로 설명된다. "Protocols for Secure Computations(보안 연산을 위한 프로토콜)", IEEE, 1982 에서 Yao에 의해 설명된 프로토콜의 기본 버전은 다음 세 단계로 이루어진다: 1) 가블링 단계; 2) 전달 단계; 3) 평가 단계. 이제 각 개별 단계에 대한 설명을 상기한다.
2.1.1 가블링 단계
각 논리 게이트(AND 또는 XOR)는 두 개의 입력선(통상적으로 a 및 b로 표기됨) 및 출력선(c로 표기됨)를 갖는다. w ∈ {a, b, c}의 경우,가블러는 가능한 두 값에 해당하는 라벨들 ({0. 1}k에서)을 선택한다. 도 8은 예시적인 진리표 및 대응하는 암호화된 진리표(암호화 표)를 도시한다. 각 행을 사용하여 해당 입력선들에 두 키를 사용하여 출력선에 대응하는 라벨을 대칭적으로 암호화한다. 그 다음 가블러는 암호화 표의 행들을 임의로 치환하여 평가자(각 게이트에 대해)로 송신되는 가블드 표를 얻는다.
2.1.2 전달 단계
그 다음 가블러 및 평가자는 그것들의 비공개 입력 비트들을 u1 . . . un 및 v1. . . vn으로 표기한다. 여기서, 각 비트 ui 또는 vi는 다른 당사자 드러내서는 안 되는 {0, 1} 내 비공개 값을 갖는다.
가블러가 비트의 라벨들을 평가자에게 전송하는 것은 용이하다(간단히 대응하는 라벨들()을 송신한다). 평가자는 가블러에게 이러한 비트들의 비공개 값들을 드러내지 않고 그것의 대응하는 라벨들()을 얻는 것이 필요하다. 이는 2 중 1의 불확정 전달을 통해 이루어진다 - 평가자는 각 에 대한 (여기서 )를 질의한다. OT는 가블러가 b에 대해 아무것도 학습하지 않음을 보장하고 평가자는 에 대해 아무것도 학습하지 않는다.
2.1.3 평가 단계
평가 단계에서, 가블러의 키 (OT를 통해) 및 키 을 수신한 평가자는 부울린 회로를 순차적으로 평가하기 시작한다. 주어진 게이트에 대해, 평가자가 입력선들(Ka 및 Kb)에 대한 라벨들을 이미 결정했다고 가정하면, 평가자는 Kc - 출력 선에 대한 라벨 - 의 성공적인 해독이 될 때까지 대응하는 가블드 표의 엔트리들을 KaKb로 해독하려고 한다.
2.2 최적화
2.2.1 점-치환
평가자는 4개 모두가 아닌 가블드 표의 하나의 행을 간단히 해독할 수 있다. 이느느 임의 선택 비트에 기초하여 표를 정렬하는 것이기 때문이다. 자세한 내용은 [8]을 참조한다.
2.2.2 프리 XOR
이 최적화는 XOR 게이트가 아니라 AND 게이트의 수에만 의존하여 데이터 전송량 및 암호화 및 복호화의 수를 초래한다. 이 기술은 [7]에 소개되어 있다.
비고 1. 가블러는 전역 오프셋 R(가블러에게만 알려져 있음)을 선택하고 전체 회로에 걸쳐 유효하다. 참 및 거짓 논리 값 XOR 대 R의 라벨들(두 색상에 동등하게). "전역" 오프셋의 범위는 XOR 게이트들에 의해 연결되는 선들로 제힌될 수 있음이 FalXOR[5]에서 관찰되었다. 이는 회로를 XOR-영역들로 나누고, R은 XOR-영역마다 고유해야 한다. 논-부울린 회로들과 작동할 경우(예를 들어, 선의 논리 값들이 숫자들 모듈로 B(모듈로 2가 아니라)일 경우, 오프셋 로 대체한다.
2.2.3 고정 키 AES
이 방법은 고가의 암호화 해시 함수[2] 대신 고정 키 AES를 사용하여 AND 게이트의 가블링 및 평가를 가능하게 한다. 보다 정확하게는 EncA, B(C) = 이며 여기서 이고 이며 는 게이트당 공개 트위크(게이트 수)이다.
2.2.4 행 감소
이 최적화는 가블드 표의 크기를 4행에서 3행으로 감소시킨다. 출력선의 라벨은 입력 라벨들의 함수로서 생성된다. 가블드 표의 첫 번째 행은 전체가 0으로 구성되어 전송될 필요가 없도록 생성된다. 자세한 내용은 [9]를 참조한다.
2.2.5 하프-게이트
하프-게이트 방법은 가블드 표의 크기를 3행에서 행 감소 후 2행으로 감소시킨다. 이 최적화는 AND 게이트에 적용된다.
도 9는 상이한 가블링 최적화들에 대한 가블링 시간, 가블링 크기 및 평가 시간을 제공하는 표를 도시한다. 가블링 및 평가 시간은 게이트당 해시(AES) 수이고 평가 시간은 게이트당 128 비트 암호문 수이다. 자세한 내용은 [10]을 참조한다.
2.2.6 순차 회로 가블링
순차 회로는 전통적인 게이트, 전역 클록 및 시프트 레지스터를 갖는 회로이다. 선의 논리적 값은 일정하지 않고 클록 틱 사이에서 달라진다: 본 출원은 이를 값들의 시퀀스로 나타낼 수 있다. 클록 및 시프트 레지스터는 비밀을 수반하지 않기 때문에, MPC 및 FHE 회로는 이를 기본적으로 이를 핸들링할 수 있다.
메모리 관점에서, 회로는 보다 콤팩트하고(설명은 더 작음), 평가 동안 주어진 시간에 두 연속 타임 스탬프만 메모리에 유지될 필요가 있다(메모리가 적음). 그러나 순수한 조합 회로에 비해, 총 실행 시간, OT 전송 또는 사전 연산된 데이터 크기를 줄이지는 않다.
2.3 비밀 공유 방식로서의 가블드 회로
직관적으로, P1(평가자)이 함수의 출력 비트에 대한 라벨(부울린 회로로 표현됨)을 해독한 후, P1이 가블러(P0)와 결탁하면, P1은 출력을 연산할 수 있다. 그러나 P0 및 P1이 결탁하지 않으면, 출력에 대해 아무것도 학습하지 않고 출력이 비밀로 공유된다.
이 간단한 관찰은 프리-XOR 최적화[7] 및 점-치환 최적화[8] 둘 다를 사용하여 가블드 회로 프로토콜 상황에서 공식화될 수 있다. R ∈ {0, 1}k는 최하위 비트 1을 갖는 이진 스트링이라고 가정한다. 이 경우 주어진 선 w에 해당하는 키들은 이고 선 w에 대한 치환 비트는 의 최하위 비트이다.
비공개 입력 에 대해, 공유된 값들은 다음과 같다
.
공유 프로토콜은 다음과 같이 설명된
공유: 여기서, P0(가블러)는 비밀 비트 를 보유한다. P0는 K0 ∈ {0, 1}k이고 을 P1에 송신하다.
공유: 여기서, P1(평가자)은 비밀 비트 를 보유한다. 비밀 공유를 위해, 프로토콜은 상관 OT[1]를 사용한다: P0(송신자)는(상관) 함수 f(z) = 을 입력하고 을 수신한다. P1(수신자)는 불확정하게 을 수신한다. 
2.4 공유 방식의 변환
가산적 비밀 공유와 GC 공유 사이의 기본 변환 방식을 상기한다. 자세한 내용은 [4, §III -IV]에 요약되어 있다.
임의의 입력 y에 대해, 공유0(y)는 다음과 같다: 가블러는 k0 ∈ {0, 1}k를 샘플링하고 을 연산한다. 그 다음 가블러는 kx를 평가자에게 전송한다.
2.4.1 가산적 비밀 공유 => GC 공유
가 그룹 내부에서 가산적으로 비밀 공유된다고 가정한다, 즉 . 변환은 표준이고 부울린 가산 회로를 안전하게 평가함으로써 이루어질 수 있다(자세한 내용은 [6] 참조). 그 다음 GC 비밀 공유가 로서 정의되며 여기서
= 공유 그리고 = 공유
2.4.2 GC 공유 => 가산적 비밀 공유
가 GC 비밀 공유된 값이라고 가정한다. 하나는 다음과 같이 가산적 비밀 공유로 변환될 수 있다: 가블러는 임의의 r을 생성하고 GC는 그것을 비밀 공유한다, 즉 공유0(r)을 연산한다. 그 다음 두 당사자는 를 연산할 수 있다. 그 다음 P1은 d를 재구성하고 산술 공유는 로 정의된다. 그것을 위해, 재구성 프로토콜 을 호출할 필요가 있다.
대안적으로, [4, §IV.F]에서, 먼저 부울린 비밀 공유를 거친 다음 부울린을 산술로 변환함으로써 변환할 수 있다고 제안된다.
3 신뢰할 수 있는 딜러를 통한 가블드 회로 사용
신뢰할 수 있는 딜러(TD)가 가블러이고(즉, 가블러가 비밀 공유를 위한 수치 마스킹 데이터도 생성함) 컴퓨팅 당사자들이 평가자인 신뢰할 수 있는 딜러 모델을 소개한다.
이 경우에,(상이한 당사자들 P1, ..., Pn - 평가자들 중에) 비밀 공유되는 y의 부호를 연산하는 것을 다음의 관점에서 볼 수 있다: 가블러 P0는 당사자들 중에 비밀 공유되는 y에 대한 마스크 λ를 생성한다(변환 수치 마스킹 데이터라고 함). 마스킹된 값 x = y + λ가 P1, ..., Pn 중에 드러나면(그러나 x는 가블러에게 알려지지 않음), 각 Pi(i = 1,. . ., n)은 x <λ인지 여부(sign(y) = -1인지 여부과 동등함)를 확인하기 위해 P0과 함께 가블드 회로 프로토콜을 실행할 수 있다.
이 모델 하에서, 불확정 전달 프로토콜(통상적으로 가블드 회로 프로토콜의 온라인 단계에서 실행됨)을 오프라인 단계의 비밀 공유 프로토콜로 대체할 필요가 있다. 실제로, 이는 온라인 단계로부터 가블러를 완전히 배제해야 함을 의미한다.
4 시그모이드 함수에의 적용
이제 제한되지 않은 시그모이드를 높은 정밀도로 평가하는 방법을 제시한다.
4.1 시그모이드 함수의 고정밀 평가
시그모이드 함수 를 고려하고, 고정 경계 구간 [-B, B](예를 들어, [-10, 10])에서 푸리에 급수에 의해 이 함수의 충분히 양호한 근사치를 갖는다고 가정한다. 그러나, 푸리에 급수는 이 구간의 보수에 대한 함수를 근사화할 필요는 없다. 실제로, 그것들은 이 구간을 벗어나 발산될 가능성이 높기 때문에 [-B, B] 외부 x에 대한 σ(x)의 수치 정확도에서 큰 손실을 초래할 것이다.
이 문제를 해결하기 위해, 정밀도 p, x 및 σ(x)가 주어지면, 실제 시그모이드를 다음과 같이 연산하고자 한다: 먼저 σ(―B) < p 및 σ(Β)> 1-p이도록 구간 [-B, B]를 결정한다. 그 다음 모든 x < -B에 대해 0을 반환한다. 유사하게, 모든 x > B에 대해 1을 반환한다. 그렇지 않으면, 푸리에 근사법에 의해 연산된 σ(x)를 반환한다. 푸리에 기반 평가는 [3]에 설명된대 로 보조 마스킹 데이터와 함께 비밀 MPC를 통해 수행된다. 비교 연산들은 가블드 회로들을 통해 수행된다.
주요한 아이디어는 경계 B가 주어지면, 함수 σFour(x)를 구간 [-B, B]에 관한 함수 σ(x)를 균일하게 근사화하는 고조파들의 선형 조합으로서 정의한다는 것이다. σFour(x)는 [3]에 제시된 Beaver 수치 마스킹 데이터와 함께 비밀 공유 프로토콜을 통해 MPC 평가될 수 있다.
그러나, 이러한 구간을 벗어나, 두 함수는 통상적으로 빠르게 발산되므로, σ(x)를 σFour(x)로 단순히 대체할 수는 없다. 이상적으로, 함수를 평가하려고 한다.
가산적으로 비밀 공유되는 입력 x에서.
아이디어는 x가 가산적으로 비밀 공유될 경우, 섹션 2.4의 변환 기술을 사용하여 그것을 GC 비밀 공유로 변환할 것이라는 것이다. 그 다음 가블드 부울 회로(다음 섹션에 제시됨)를 평가하여 x가 놓이는 구간(즉, 그것이(-∞, -B)에 있는지, [―B, B]에 있는지 또는(B, + ∞)에 있는지)을 불확정 검출한다.
4.2 부울린 비교 및 가산 회로
이제 가산적 비밀 공유로부터 GC 비밀 공유로 변환하는 방법을 알았으므로, 두 비교를 이미 가블링 및 평가할 수 있다. 이를 위해서는, 두 개의 각 n 비트 수를 비교하기 위한 명시적 부울린 회로가 필요하다.
4.2.1 비교 회로
도 10은 다음과 같은 예시적인 비교 회로를 도시한다:
입력 : 평가자에 의해 알려진 x(가블러에게만 알려진 색상으로 마스킹될 수 있음)
입력 : 가블러에 의해 알려진 λ
출력 : x < λ(가블러에만 알려진 색상으로 마스킹될 수 있음)
도시된 회로에서, 하프-게이트 기술로부터 잠재적으로 이익을 얻을 수 있음을 주목한다.
4.2.2 비밀 가산 회로
도 11은 다음과 같은 예시적인 비밀 가산 회로를 도시한다:
입력 : 평가자에 의해 알려진 x(가블러에게만 알려진 색상으로 마스킹될 수 있음)
입력 :가블러에 의해 알려진 λ
출력 : x + λ(가블러에만 알려진 색상으로 마스킹될 수 있음)
이 경우, 하프-게이트 기술로부터 잠재적으로 이익을 얻을 수 있음을 주목한다.
5 가블드 오토마타
가블드 회로와 마스킹 기술을 조합하고 있기 때문에, 또 다른 관점이 있다. 일반 가블드 회로에서, 각 선은 두 가지 가능한 논리 상태(진리 값 0,1)를 갖고 게이트는 이러한 상태 간 전이를 인코딩한다.
5.1 가블드 GC 비밀 공유의 이중화
여기서, 유한 상태 오토마타와 관련하여 유용할 고전적인 왜곡 회로 방법에 대한 이중 관점을 설명한다.
5.1.1 공개된 값에 대한 비밀 연산
도 12는 두 개의 예시적인 함수의 도해를 도시한다.(비밀) 출력 z, 즉 z = F(x, y)를 생성하는 두 개의 비밀 입력 x 및 y에 공개 함수 F가 있다고 가정한다. 예를 들어, F는 고전적인 가블드 회로 의미에서 부울린 게이트로 간주될 수 있으며 x 및 y는 비공개 입력으로 간주될 수 있다. 섹션 2.3에 설명된 의미에서 x와 y가 가블러와 평가자 사이에 비밀로 공유되어 있다고 가정 할 때, 이 방식에 대한 대안적인 사고 방식은 마스킹의 관점에서 볼 수 있다: 가블러는 출력 z = F(x, y)에 대한 마스크 v뿐만 아니라 x 및 y에 대한 마스크 λ 및 μ를 생성했다. UF가 도해를 가환성으로 만들도록 공개된 값 a와 b에 대해 작동하는 함수 G를 찾고 있다.
예를 들어, Beaver 곱에서, F = ×이고 maskλ = +λ이므로, 다음을 쉽게 결장한다
. (1)
알 수 있듯이, 이 함수는 가블러(마스크 λ, μ 및 v를 아는 유일한 당사자)에게만 알려져 있다. 그에 따라, 그것은 비밀 함수라고 간주될 수 있다.
여기서, 연산 maskλ : D → R을 두 집합(D - 변수 x의 도메인 그리고 R - 마스킹된/공개된 값들의 집합) 사이의(비밀) 전단사로 본다(엄밀히 말하면, 표기 λ는 필요하지 않음 - 필요한 모든 것은 단순히 각 선에 연관된 함수 마스크이다.). 역 맵을 표기하기 위해서는 unmaskλ : R → D를 사용한다. 보안 측면에서, maskλ(x)를 안다는 것은 x 또는 전단사 마스크 λ 중 어느 하나에 대한 정보를 드러내서는 안 된다.
비고 2 마스크가 D와 R 사이에 균일한 임의의 전단사일 필요는 없음을 주목한다. 이는 예를 들어, [3]에 설명된 통계적 마스킹의 경우이다.
5.1.2 라벨링
각각의 가능한 마스킹된 값 a = maskλ(x)에 대해, Xa가 주어지면 누구나 쉽게 a를 추출할 수 있지만, a가 주어지면 평가자는 Xa를 결정할 수 없도록 라벨 Xa를 정의한다.
5.1.3 가블드 표
가블러는 다음과 같이 가블드 표을 생성한다: 표의 행들은 다음과 같다.
,
여기서 a, b는 대응하는 공개 집합들의 순으로 나열된다(자연 순서라고 함).
5.2 이중 관점을 통한 가블드 오토마타
도 13은 n개의 문자를 처리하는 상태 기계의 개략도를 도시한다. 상태 기계는 다음과 같이 설명될 수 있다:
반복할 때마다 기계의 상태는 이다. 도메인 는 공개적이지만 는 일반적으로 비공개이다(즉, 가블러도 평가자도 알 수 없음). 여기서, 는 초기 상태이다: 평가하려는 함수에 따라 공개 또는 비공개일 수 있다.
반복할 때마다 기계는 알파벳 에서 문자 를 읽는다. 알파벳 는 공개적이고 반복마다 상이할 수 있다. 본 출원의 모델에서는 문자가 평가자에게 알려지지만 가블러에게는 알려지지 않았다.
각 반복 사이에서 상태는 결정적 전이 함수 에 의해 연결된다. 도 12의 오해를 통해 에 관련된 함수 는 가블러에게만 알려져 있다(의 마스킹 값 를 아는 유일한 당사자). 그러나, 이 함수의 도메인은 공개적이다(예를 들어, 함수 는(1)의 함수일 수 있음).
5.2.1 가블링 단계
각 상태 에 대해, 가블러는 우리가 의 치환, 즉 (여기서, 는 공개된 값을 표기함)이라 여기는 마스크 를 선택한다. 이제 이라 하고 가블러를 제외하고 값은 상태 에 대해 아무것도 드러내지 않는다.
마스킹 중에서, 가블러는 또한 가블드 표(Ti)를 정의할 수 있다. Xi, j를 사용하여 ri, j의 라벨을 나타내며 Xi, j 중에서 j(그리고 그로 인해, ri, j)를 추론할 수 있음을 확인한다(예를 들어, 라벨의 최상위 비트가 j와 같을 수 있음). 가블러는 또한 가능한 모든 문자 αi, j ∈ ∑i에 대해 마스킹 값 maski, j를 선택하지만 이번에는 순서에 대한 프라이버시 요구 사항이 없다(인덱스 j는 문자를 공개적으로 표시하거나 문자와 동일할 수 있음).
각 반복 i에 대해, 각 문자 α ∈ ∑i에 대해,가블러는 암호문들의 리스트로 구성된 전이 함수들 을 암호화한다. 보다 정확하게는, 가블러가 비공개 함수()뿐만 아니라 마스크(에 대한 에 대한 )를 사용하여 섹션 5.1.3에 정의된 가블드 표()를 연산한다.
행 감소 : 각 전이 함수의 첫 번째 암호문(즉, , α, 0)이 항상 0이고 전송될 필요가 없도록 라벨이 항상 선택될 수 있다.
5.2.2 평가 단계
평가자는(OT를 통해 또는 마스킹을 통해) n개의 문자 αi에 대한 라벨들 yi 및 초기 상태의 초기 라벨 x0을(그에 따라, 그 색상 j0를 추론한다)을 수신했다. i = 1 내지 n의 경우, 를 해독하고 다음 라벨 ji를 추론한다.
 마지막 상태의 라벨은 회로의 결과이다. 결과가 비공개, 마스킹 또는 공개 중 무엇이 되어야 하는지에 따라 가블러가 매핑 해제 마스크를 제공할 수 있다.
5.3 예들
이제 오토마타의 관점이 유용할 수 있고 보다 일반적인 오토마타를 생각하면 실제로 일부 프로토콜의 속도를 높이는 데 유용한 몇 가지 예를 제시한다.
5.3.1 비트 비교 오토마타를 사용한 예
가산적으로 공유된 128 비트 수 x의 부호를 연산할 필요가 있다고 가정한다. 가블러는 마스크 λ를 선택한다(온라인 단계 동안, a = x + λ가 드러난 것이다). 질의 x ≤ 0은 a ≤ λ와 동등하므로, 가블러는 다음과 같이 "람다와 비교" 오토마타를 인코딩한다:
qi로 a와 λ의 i 최하위 비트들을 비교한 결과를 표기한다.(비공식적으로, ). 정의에 따르면,
초기 상태 :
전이 : 일 경우 , 그렇지 않으면 .
출력: 에 대한 답변이다.
모든 i에 대해 .
가블링 단계 : 암호, 암호문(행 감소)
평가 단계 : 해독
오토마타 접근법은 알려진 모든 최적화(하프 게이트, 점-치환)를 포함하는 것으로 보인다.
5.3.2 베이스 4 비교 오토마타를 사용한 예
이것은 베이스 4를 비교한다는 점을 제외하고는 위의 베이스 2 비교 오토마타와 동일하다. 상태 Qi는 여전히 부울린 의미를 갖지만 알파벳 ∑i = 0, 1, 2, 3이다. 다시, a와 λ의 i 최하위 비트들의 비교 결과를 qi로 표기한다.(비공식적으로, ). 정의에 따르면,
일 경우 , 그렇지 않으면 .
에 대한 답변이다.
모든 i에 대해 .
가블링 단계 : 암호, 암호문(행 감소)
평가 단계 : 해독
베이스-4 오토마타는 알려진 모든 최적화(하프 게이트, 점-치환)가 있는 전통적인 가블드 회로보다 훨씬 우수하다.
5.3.3 비밀 정수 가산 예
(공개 또는 마스킹된) 정수(a0, ..., an)를 리틀 엔디안 순서의 숫자들(베이스 B라고 한다)을 입력으로 취한다. λ가 가블러에게만 알려진 a + λ를 연산하려고 한다. 이 경우, 자리 올림 비트, 및 자리 올림을 입력과 xor하기 위한 고전적인 프리-xor 기술들을 연산하기 위해 오토마타를 사용할 것이고 다음 최종 결과를 얻는다:
.
모든 i에 대해 .
(프리-xor mod B를 사용)
참고 문헌들
1. G. Asharov, Y. Lindell, T. Schneider 및 M. Zohner. More efficient oblivious transfer and extensions for faster secure computation. Ahmad-Reza Sadeghi, Virgil D. Gligor 및 Moti Yung, 편저자, 2013 ACM SIGSAC Conference on Computer and Communications Security, CCS'13, 독일, 베를린, 2013.11. 04-08., 페이지 535-548. ACM, 2013.
2. M. Bellare, V. Hoang, S. Keelveedhi 및 P. Rogaway. Efficient garbling from a fixed-key blockcipher. 2013 IEEE Symposium on Security and Privacy, SP 2013, 미국, 캘리포니아, 버클리, 2013. 05. 19-22., 페이지 478-492. IEEE Computer Society, 2013.
3. C. Boura, I. Chillotti, N. Gama, D. Jetchev, S. Peceny 및 A. Petric. High-precision privacy-preserving real-valued function evaluation. Cryptology ePrint Archive, Report 2017/1234, 2017. eprint.iacr.org/2017/1234.
4. D. Demmler, T. Schneider 및 M. Zohner. ABY - A framework for efficient mixed-protocol secure two-party computation. 22nd Annual Network and Distributed System Security Symposium, NDSS 2015, 미국, 캘리포이나, 샌디에고, 2015. 02. 08-11., The Internet Society, 2015.
5. V. Kolesnikov, P. Mohassel 및 M. Rosulek. Flexor: Flexible garbling for XOR gates that beats free-xor. J. Garay 및 R. Gennaro, 편저자, Advances in Cryptology - CRYPTO 2014 - 34th Annual Cryptology Conference, 미국, 캘리포니아, 샌타바버라, 2014. 08. 17-21., Proceedings, Part II, Lecture Notes in Computer Science 8617권, 페이지 440-457. Springer, 2014.
6. V. Kolesnikov, A. Sadeghi 및 T. Schneider. A systematic approach to practically efficient general two-party secure function evaluation protocols and their modular design. Journal of Computer Security, 21(2):283-315, 2013.
7. V. Kolesnikov 및 T. Schneider. Improved garbled circuit: Free XOR gates and applica-tions. Luca Aceto, Ivan Damrd, Leslie Ann Goldberg, Magn
Figure 112020032383667-pct00331
s M. Halldorsson, Anna Inglfsdttir 및 Igor Walukiewicz, 편저자, Automata, Languages and Programming, 35th International Colloquium, ICALP 2008, 아이슬란드, 레이캬비크, 2008. 07. 07-11., Proceedings, Part II - Track B: Logic, Semantics, and Theory of Programming & Track C: Security and Cryptography Foundations, Lecture Notes in Computer Science 5126권, 페이지 486-498. Springer, 2008.
8. D. Malkhi, N. Nisan, B. Pinkas 및 Y. Sella. Fairplay - secure two-party computation system. Matt Blaze, 편저자, Proceedings of the 13th USENIX Security Symposium, 2004. 08. 09-13., 미국, 캘리포이나, 샌디에고, 페이지 287-302. USENIX, 2004.
9. M. Naor, B. Pinkas 및 R. Sumner. Privacy preserving auctions and mechanism design.
EC, 페이지 129-139, 1999.
10. S. Zahur, M. Rosulek 및 D. Evans. Two halves make a whole - reducing data transfer in garbled circuits using half gates. E. Oswald 및 M. Fischlin, 편저자, Advances in Cryptology - EUROCRYPT 2015 - 34th Annual International Conference on the Theory and Applications of Cryptographic Techniques, 불가리아, 소피아, 2015. 04. 26-30., 회의록, Part II, Lecture Notes in Computer Science 9057권, 페이지 220-250. Springer, 2015.
III. 프라이버시 보호 프로그램을 컴파일하기 위한 방법
0 개요
도메인 특정 프로그래밍 언어(DSL)가 데이터 분석가가 입력 데이터가 여러 비공개 데이터 소스에 저장되는 프라이버시 보호 연산을 위한 코드를 작성할 수 있게 하는 프라이버시 보호 프로그램을 컴파일하는 방법이 개시된다. 프라이버시 보호 컴퓨팅 자체는 상기 "고정밀 프라이버시 보호 실가 함수 평가"라는 명칭의 섹션 I에서 개시된 방법을 사용하여 수행될 수 있다.
DSL 코드는 다자간 연산을 위한 특수 목적 컴파일러에 의해 별개의 비공개 데이터 소스 또는 당사자에 특정한 다수의 컴퓨팅 시스템 노드에 의해 실행될 수 있는 저수준 가상 기계 코드로 컴파일될 수 있다.
프로그래밍 언어는 공개 조건을 갖는 조건문뿐만 아니라(컴파일시에 알려진) 반복 횟수가 한정된 루프에 대한 함수 및 함수 호출을 지원할 수 있다. 언어는 범위가 지정된 변수를 지원할 수 있다. 마지막으로 변수는 타이핑될 수 있고 유형은 사용자 입력 또는 컴파일러에 의해 추론되는 특정 유형 통계 매개변수를 가질 수 있다.
이하, DSL 컴파일러뿐만 아니라 특수 목적 컴파일러 둘 다의 실시 예에 대한보다 상세한 설명을 제공한다.
1 DSL, 컴파일 및 런타임 아키텍처
일 실시 예에서, DSL 코드는 함수 정의를 포함할 수 있다. 하나의 함수 정의는 진입 지점(인수가 없는 void main() 함수)일 수 있다. DSL 수준에서 함수의 내용은 구문적으로 문들의 트리가 될 수 있다: 블록, 공개 if-then-else, 공개 경계가 정해진 for 및 MPC 컴퓨팅에서 지원되는 기타 특정 문들. 문들은 다른 매개변수뿐만 아니라 자식문들도 가질 수 있다. 특정 문들은 일 실시 예에 따라 아래에서 설명된다.
블록은 오프라인 평가 및 온라인 평가 모두에서 순차적으로 평가되는 자식문들의 리스트이다. 예를 들면 다음과 같다:
{
/* 일련의 자식문들 */
. . .
}
범위가 지정된 변수는 문에서 또는 최상위 수준에서 선언되는 변수(전역 변수)이다. 공개 if-then-else는 범위 변수와 두 개의 자식문으로 매개변수화된다. 조건의 공개 값에 따라 오프라인 단계 동안, 두 개의 자식문이 동일한 입력 바인딩으로부터 평가되고 온라인 단계 동안, 하나의 자식문만 평가된다. 경계가 정해진 for 루프는 N 값들의 공개 정수 범위에서 반복되는 범위 변수, 하나의 자식 명령 및 중단 조건으로 매개변수화된다. 오프라인 단계 동안, 자식 명령은 순차적으로 N번 반복된다. 온라인 단계 동안, 중단 조건이 공개적으로 참으로 평가되지 않는 한, 자식 명령이 반복되며, 중단 조건이 공개적으로 참으로 평가되는 경우 for 루프는 종료된다. 중단 조건이 없으면, 디폴트로 거짓이다. 예를 들면 다음과 같다:
for i 범위(0,10) {
/* 시퀀스 자식 명령들 */
중단 표현;
}
오프라인 실행에서, 불변은 특정 시점에서 범위 변수의 특정 발생에 대응한다. 각 불변은 글로벌 순차 인덱스를 얻는다. 그에 따라, 특수 목적 컴파일러는 범위 변수를 불변으로 해석한다.
컴파일러는 DSL 코드를 명령들의 트리 및 불변의 선언들로 변환한다(문, 예를 들어, 블록은 둘 이상의 명령 또는 불변의 선언을 포함할 수 있다). 그 다음 이 트리는 위의 "고정밀 프라이버시 보호 실가 함수 평가" 섹션 I에서 설명한 방법을 통해 각 당사자 컴퓨팅 시스템에서 실행되는 저수준 가상 기계 코드로 변환될 수 있다.
동일한 프로그램을 평가하는 두 가지 방법이 있다 : 각 명령을 적어도 한 번 실행하는 오프라인 평가 및 오프라인 평가의 부분 집합인 온라인 평가(예를 들어, 아래 "공개 if-then-else" 참조)
1.1 오프라인 명령 인덱스
오프라인 평가 동안 명령의 각 실행은 명령 인덱스인 전역 순차 인덱스를 얻는다. for 루프 및 함수 호출의 경우, 구문 명령에 다수의 오프라인 인덱스가 있을 수 있다. 조건부 점프가 발생할 수 있는 if-then-else 또는 for 루프 동안을 제외하고 대부분의 오프라인 인덱스는 온라인 단계 동안 순차적으로 실행된다.
1.2 범위 변수
변수의 범위는 변수가 정의된 명령의 오프라인 평가의 수명이다. 각 변수는 오프라인 평가 동안 나타나는 전역 고유 순차 인덱스 variableIdx를 얻는다.
{
/* 변수는 그 선언 전에 액세스 가능하지 않다 */
MPCReal x; /* 블록 내 선언 */
/* 명령들의 시퀀스 */
/* x의 범위는 이 블록으로 제한된다 */
}
상기한 예에서, x의 범위는 위에 제시된 블록으로 제한된다. 따라서, 변수의 범위를 설명하려면, 선언된 블록을 추적해야 한다.
1.3 유형
의사 코드에서, 각 변수는 그것이 사용되기 전에 선언되어야하고, 예를 들어, 변수가 행렬, 벡터 또는 숫자를 포함하도록 의도된 경우, 사용자는(부분) 유형 정보를 지정하는 옵션을 갖는다. 사용자에 의해 제공된 정보를 기반으로, 컴파일러는 통계 연산기라고 하는 구성요소를 사용하여 전체 유형 추론을 수행한다. 할당된 함수 인수 또는 즉각적인 선언의 경우, 사용자는 var 또는 auto 유형만 제공할 수 있으며, 이는 컴파일러가 전체 추론을 수행함을 의미한다. 또한, 컴파일러는 추론된 유형들을 사용하여 함수 또는 연산자를 고유하게 해결해야 한다. 예를 들어, 다음과 같은 코드가 있다고 가정한다:
/* a, b는 이전에 정의되었고, c는 선언되고 그것의 유형은 추론된다 */
auto c = a + b;
. . .
컴파일러는 유형 확인을 수행할 필요가 있다. 이는 추상 구문 트리(AST)가 작성된 후(변수들이 불변으로 해석되고 유형 확인이 이루어진 시간 동안) 수행될 것이다. 이 단계에서, 컴파일러는 a 및 b 유형에 따라 사용해야 하는 연산자 "+"를 결정하고 c의 전체 유형을 추론한다.
1.4 블록 ID
일 실시 예에서, MPC 프로그램을 컴파일할 수 있을 유일한 방법은 각 블록이 실행될 최대 횟수를 알고 있는 경우이다(이 정보는 오프라인 단계에 필요하다). 따라서, 각 블록문은 지정된 blockid를 가질 수 있다.
1.5 함수 호출
MPC에 다음과 같은 함수가 있다고 가정한다:
def foo() {
/* 함수 코드 */
MPCType x;
}
여기서 문제는 컴파일시에, 함수가 호출될 횟수를 정확히 알지 못하므로 값 x를 마스킹해야 하는 횟수(동등하게, x에 대응해야 하는 상이한 불변 갯수)를 알 수 없다는 것이다. 모든 것이 풀리므로, 컴파일러는 컴파일시에 스택 오버플로를 감지할 수 있을 것이다. 일 실시 예에서, 함수 및 함수 호출은: 컴파일러가 함수 호출의 최대 횟수를 결정할 수 있고; 컴파일러가 함수를 풀 수 있다는 제약하에서 지원된다.
1.6 불변
일 실시 예에서, 각 불변은 전역 순차 인덱스-immutableIdx를 얻는다. 불변은 컴파일시에 결정되는 매개변수화된 유형(MPCType)을 갖는다. 초기화되면, 불변의 논리 값은 일정하다. 일 실시 예에서, 불변은 마스킹 유형당 최대 하나의 마스크와 관련되며, 따라서 마스킹 유형당 최대 하나의 마스킹된 값을 갖는다. 불변의 실제 값들(표현들)은 온라인 평가 동안 느리게 연산되고, 각 플레이어에 의해 자체 컨테이너에 저장된다. 이러한 값들은 예를 들면 다음과 같은 것들을 포함할 수 있다:
모든 플레이어에 대해 동일한 공개 값(논리 값과 동등)(존재하는 경우, 다른 모든 표현보다 우선됨);
모든 플레이어에 대해 상이한 비밀 공유 값(비밀 공유 방식에 따라);
모든 플레이어에 대해 동일한 마스킹 값(마스킹 유형에 따라).
예를 들어, 다음의 DSL 발췌는
/* x는 MPCType이다. */
MPCType x;
x : = x + y;
x : = x * x;
불변을 수반하는 다음 중간 코드로 해결해야 한다.
/* x는 MPCType이다. */
MPCType x1;
x2 : = x1 + y;
x3 : = x2 * x2;
여기서 x1, x2, x3은 모두 MPC 변수 x에 해당하는 불변이다.
1.7 공개 if-then-else
일반적인 공개 if-then-else 조건문은 다음과 같은 구성이다:
if(/* 공개 조건 */) then {
/* 여기에 코드를 추가 */
} else {
/* 여기에 코드를 추가 */
}
일례로, 다음 소스 코드 발췌를 고려한다:
/* x, y는 비밀 공유 MPC 유형으로 선언되었다 */
if(/* 공개 조건 */) then {
x : = 2 * x;
} else {
x : = x + y;
x : = 2 * x;
}
z : = x * x;
여기서, 내부적으로 불변의 집합으로 표현될 MPC 변수 x를 가진다. 실제로, 컴파일러는 위의 문을 다음 코드로 변환하여 다음과 같은 방식으로 범위가 지정된 변수 x를 다수의 불변으로 대체한다:
/* xi, yi는 x 및 y에 대응하는 불변이다.
/* x5는 x2 및 x4에 대한 최대 매개변수들로 보조 불변이다.
*/
if(/* 공개 조건 */) then {
x2 : = 2 * x1;
x5 : = x2;
} else {
x3 : = x1 + y1;
x4 : = 2 * x3;
x5 : = x4;
}
여기서, x5는 두 블록을 동기화시키는 역할을 한다. x의 각 발생을 상이한 불변으로 대체했다. 각 단계에서, x는 일부 불변의 발생과 관련된다. 각 불변은 매개변수화된 MPCType이므로, 각 xi는 특정 매개변수들 및 마스킹 데이터를 갖는다. x는 if 블록에 대해서도 then 블록에 대해서도 로컬이 아니므로, 불변 x2와 x4는 조건 블록 후에 동기화되어야 한다. 이를 위해서는 컴파일러가 블록들 중 어느 하나의 결과를 카피할 x에 해당하는 추가 보조 불변 x5를 생성해야 한다.
모든 경우에, 부울린 조건의 값은 온라인 단계 동안 공개적으로 드러날 것이지만, 컴파일러의 관점에서 볼 때, 푸는 동안 두 경우가 발생할 수 있다.
조건은 컴파일러에 의해 알려진 즉각적인 부울린이다: 이 경우, 컴파일러는 연산된 부울린 값에 따라 then 블록 또는 else 블록 중 어느 하나를 생성한다.
조건은 컴파일시에 알려지지 않은 데이터에 따른다. 이 경우, 컴파일러는 then 및 else 블록에 대한 코드를 생성하고 두 블록 사이의 불변 인덱스들을 동기화한다. 온라인 단계 동안, 부울린 조건 값이 공개적으로 드러나고 실행이 then 또는 else 시작으로 점프한다. 컴파일러는 이 부울린을 연산하는 중간 단계들이 아닌 조건의 부울린 값만 드러낸다: 예를 들어, 조건이 y < 3이면, 비교는 프라이버시 보호 방식으로 평가된다(y는 비밀로 유지됨). y의 값이 감지 불가능하면, 사용자는 y의 값을 공개적으로 드러낸 다음 공개 비교를 수행하는 reveal(y)<3을 작성하여 수행을 얻을 수 있다.
일 실시 예에서, 공개 조건은 컴파일러가 조건을 즉각적으로 해결하면 그것의 breakif 코드가 완전히 생략되므로, 부작용을 포함할 수 없다. 예를 들어,
boolean weirdos(auto& x) {
x = x + 1;
return true;
}
. . .
if(weirdos(x)) {
/* 명령들 */
}
1.8 공개 경계가 정해진 for 루프
일 실시 예에서, 공개 경계가 정해진 MPC for 루프는 다음 구성이다:
for(i 범위(0,10)) {
/* 여기는 코드 */
breakif 조건; // 임의적인 공개 중단 조건, 종내
}
일 실시 예에서, 컴파일러가 조건을 즉각적으로 해결하면 break-if의 코드가 완전히 생략되므로 breakif 조건은 부작용을 포함할 수 없다. 예를 들어,
boolean weirdos(auto& x) {
x = x + 1
return true;
}
. . .
for(i 범위(0,10)) {
breakif weirdos(x);
}
다시, 컴파일러는 모든 실행에 대한 코드를 순서대로 생성하고 모든 반복에서 중단 조건을 평가하려고 시도한다. 조건 중 하나가 즉각적인 참이면 현재 반복 후에 for 루프가 항상 중단된다는 경고가 표시된다. 모든 조건이 즉각적인 거짓인 경우(또는 breakif가 없는 경우) 모든 블록의 코드가 순서대로 생성된다. 그렇지 않으면, 컴파일러는 액세스 가능한 모든 반복에 대한 코드를 생성하고 각 비-즉각적인 조건 후에 각 변수를 동기화한다. 공개 if-then-else 구문의 경우와 마찬가지로 반복 횟수에 따라 변수들을 동기화해야 한다.
2 DSL, 중간 및 기계 언어
도 14는 일 실시 예에 따라 컴파일을 수행하기 위한 방법을 도시한다. 컴파일 프로세스를 수행하기 위해 컴파일러는 먼저 DSL 코드를 다양한 유형 확인을 수행하는 중간 표현으로 변환하고 불변으로 변수를 대체할 뿐만 아니라 경계 for 루프, 공개 if-then-else, 함수 및 함수 호출을 해결한다. 다음 두 가지 즉각적인 표현이 있다: 즉각적인 표현 1(IR1) 및 즉각적인 표현 2(IR2). 시맨틱 분석 및 유형 확인의 제 1 단계를 수행함으로써 추상 구문 트리(AST)가 IR1로 변환되나; 이 단계에서는 변수가 불변으로 해석되지 않는다. 여기서 부분 유형이 결정되지만 전체 유형은 아직 확인되지 않는다(통계 유형 매개변수는 이 단계에서 아직 연산되지 않음). 그 다음, 표현 IR1은 변수를 불변으로 대체하고 루프를 풀며 동기화하여, if-then-else 문들을 동기화하고, 함수 호출을 풀고, 가장 중요한 것으로 통계적 유형 매개변수를 연산하여 전체 유형을 결정함으로써 IR2로 변환된다. 후자는 사용자 입력 매개변수 및/또는 컴파일러의 통계 연산기를 통해 달성된다.
2.1 DSL 문법 정의
DSL 문법은 문(이들에는 블록, if-then-else, 경계가 정해진 for, 함수 본문, 할당 등을 포함)뿐만 아니라 식을 포함할 것이다. 문과 달리 식은 평가될 수 있다. 식에는 특수 식, 산술 식이 포함된다.
2.2 중간 식 1(IR1)
중간 식 1(IR1)은 DSL의 부분 시맨틱 분석의 결과인 중간 언어이다. 시맨틱 분석은 두 가지 단계, 즉 변수 해석 및 유형 매개변수 연산(시맨틱 단계 1; 또는 SP1) 전 하나의 단계 및 변수가 불변으로 대체되어, 전체 유형이 유형 매개변수가 추론하여 결정되는 다른 하나의 단계(시맨틱 단계 2; 또는 SP2). 두 단계를 분리하는 주된 이유는 IR1(SP1의 결과)이 직렬화 가능할 것이기 때문에 IR1에서 사전 컴파일된 라이브러리를 정의할 수 있기 때문이다. IR2 이외의 것은 입력 데이터의 통계에 의존하므로, 미리 컴파일할 수 없다(따라서 시맨틱 분석을 SP1과 SP2로 분리하는 이유).
언어 IR1은 자체 추상 구문 트리(AST-IR1)를 갖는다. 이 지점에서, 변수는 아직 불변으로 대체되지 않는다; 그러나, IR1은 다음과 같은 컴파일러 속성 및 컴파일러 검사를 수행한다:
식은 일련의 표준 연산자로 대체된다:
res = a + b * c;
/* 대체됨 */
tmp = b * c;
res = a + tmp;
/* 또는 */
res = foo(u + v * t, bar(w))
/* 대체됨 */
t1 = v * t;
t2 = u + tl;
t3 = bar(w);
res = foo(t2, t3);
이 지점에서 선언되지 않은 변수가 보고된다
반환이 없는 비-보이드 함수 또는 그 반대
MPCReal foo(MPCReal u, MPCReal v) {
MPCReal r = u + v;
}
부분 유형 검사 오류가 보고된다 - 예를 들어:
MPCReal r;
MPCMatrix M;
MPCReal res = r + M;
경계가 정해진 for 루프에서 breakif 문 해결:
s = 0;
for i 범위(0, 10) {
s = s + i;
breakif(s >= 10);
}
대안적으로, 전체 유형을 이미 결정한 후 SP2에 대해 후자를 예약할 수 있다. 운영 수준 노드에 중점을 두고(예를 들어, 할당 및 반환이 부분적으로 해결됨) 변수명의 부분 해결을 수행한다; 그러나, 함수 정의와 함수 호출을 그대로 유지한다.
2.3 중간 식 2(IR2)
중간 식 2(IR2)은 최종 컴파일된 프로그램을 갖는 전단사에서 거의 컴파일되고 풀린 프로그램이다. 이 표현에서, 모든 루프와 함수 호출은 풀리고, 즉각적인 상수가 실행 전체에 전파되며 모든 변수는 유형이 전체가 조건을 갖추는 불변으로 모두 해석된다. 삼중항 및 마스킹 데이터도 마찬가지이다. 결과적으로 더 이상 함수 정의 노드가 없으며 모든 함수 호출이 단일 트리로서 확장된다(함수 호출은 더 이상 리프가 아니라 내부 노드). 사용자에게 보고될 수 있는 오류는 다음과 같다:
이 단계에서 재귀 오류가 감지 및 보고된다(스택 오버플로).
유형 오류(또는 관련 매개변수를 찾을 수 없음).
프라이버시 보호 연산 프로토콜의 오프라인 단계에서 사용되는 보조 수치 마스킹 데이터(삼중항) 면에서, 이 표현에는 다음이 포함된다:
보조 데이터의 전역 인덱스
전체가 조건을 갖추는 MPC 유형.
불변도 다음을 포함하여 전체가 조건을 갖춘다:
불변의 전역 인덱스
전체가 조건을 갖추는 MPC 유형(통계 유형 매개변수 포함).
3 컴파일 단계
일 실시 예에서, 편집 방법은 다음 단계들을 갖는다:
어휘 분석
구문 분석/파싱 => AST 생성
시맨틱 분석 단계 1(SP1) AST => IR1
시맨틱 분석 단계 2(SP2) IR1 => IR2
아래에서 이러한 각 단계에 대해 자세히 설명한다.
3.1 어휘 분석 및 파싱 단계
이들 단계는 상당히 표준적이고 사용된 프라이버시 보호 방법과 무관하다. 어휘 분석기는 소스 코드를 스캔하고 어휘소(토큰)를 생성한다. 그 다음 DSL 문법 규칙에 대한 정확한 설명을 사용하여 추상 구문 트리(AST)를 생성하기 위해 파서로 전달된다. 토큰 범주에는 식별자, 키워드, 리터럴, 연산자, 구분 기호 등이 있다.
3.2 시맨틱 단계 1(SP1)
이 시맨틱 분석 단계는 프라이버시 보호 컴퓨팅 방법에 매우 특이적이다.
3.2.1 깊이 우선 탐색 탐색 방법
SP1의 주된 방법은 그래프 AST에 대해 깊이 우선 검색(DFS)을 수행한다. 아이디어는 DFS가 AST를 횡단하는 것에 의해 AST-IR1 노드들을 결정하고 이러한 노드 각각에 대해 노드 컨텍스트(정의에 대해서는 다음 섹션 참조)를 정의할 수 있다는 것이다. 이 접근법은 선언되지 않은 변수 또는 호환되지 않는 부분 유형을 감지하거나 비-보이드 함수가 호환되지 않는 유형을 리턴하는지 여부를 감지할 수 있다.
3.2.2 산술식 전개
DFS 순회 방법 동안, 또한 산술 표현을 전개할 필요가 있다(후자는 DSL 문법의 의미에서 취해진다). 예를 들면:
res = u + foo(v * w);
는 다음으로 해결되어야 한다
해결해야
tmp1 = v * w;
tmp2 = foo(tmp1);
res = u + tmp2;
슬롯의 장점은 모든 보조 변수에 식별자를 도입할 필요가 없으며, 전개된 식의 근을 적절한 슬롯에 삽입하기만하면 된다는 것이다. 따라서 입력으로 산술 표현식(AST의 노드)을 취하고 전개된 표현식을 슬롯 형태로 출력하는 재귀 절차를 고려한다.
3.2.3 노드 컨텍스트(임시 심벌 테이블)
이 심벌 테이블은 임시일 뿐이고 AST-IR1을 생성하는 데 사용된다. 이 임시 테이블의 표현은 컨텍스트를 각 노드(노드 컨텍스트)에 연관시킨다. 이 컨텍스트에는 주어진 노드에 해당하는 모든 선언과 슬롯이 포함된다. AST-IR1 그래프의 각 노드에는 이 노드에 대한 모든 변수 선언과 변수의(부분) 유형을 포함하는 노드 컨텍스트가 있다. 변수 선언 여부를 확인하기 위해 해당 노드에서 루트로 이동하여 각 노드의 환경을 확인한다. 우선 순위가 높은 선언이 처음이다. 예를 들면 다음과 같다:
void main() {
/* 노드1에 대응하는 블록 */
MPCReal r = 1;
/* 이 컨텍스트에서 u는 이미 선언됨 */
{
/* 노드2에 대응하는 블록 */
MPCReal r = 0;
{
/* 노드3에 대응하는 블록 */
r += u;
}
}
}
이 예에서 변수 r은 주 함수(노드1)의 블록에 정의된 다음 자식 블록(node2)에 다시 정의된다. 그 다음 가장 안쪽 블록(node3)에 할당이 있다. SP1 동안 컴파일러는 먼저 node3의 부모 컨텍스트인 node2를 확인한 다음 r의 선언과 할당이 있는지 감지한다. 이 선언/할당에 해당하는 슬롯은 이미 AST를 통과하는 데 사용되는 깊이 우선 검색 방법으로 인해 node2의 노드 컨텍스트에 이미 나타날 것이다.
3.3 시맨틱 단계 2(SP2)
이 시맨틱 분석 단계는 프라이버시 보호 컴퓨팅 방법에 매우 특이적이다.
3.3.1 즉시 전파
방법에서 지금까지 사용된 모든 불변의 현재 인덱스를 유지하고 이 시맨틱 단계를 두 단계로 수행한다:
첫 번째 패스(AST 깊이 우선 검색)
즉시 전파
함수 풀기
경계가 정해진 for 문 풀기
공개 if-then-else 문 풀기
불변으로 변수를 해결(if-then-else, 경계가 정해진 for 및 return 문 동기화)
두번째 패스
통계 연산기 실행 및 불변의 전체 유형 결정
3.3.2 해결된 문
해결된 문은 함수 호출이 해결되고(블록으로 대체됨) 변수가 불변으로 대체되며 변수 바인딩(변수에서 불변으로 그리고 그 반대로 매핑됨)이 채워진 문이다. 해결된 문은 트리 형태일 수 있지만 최종 컴파일된 프로그램은 일련의 명령일뿐이다.
3.3.3 통계 연산기
또한, 유형이 확인되었고, 유형 연산기는 통계 연산기라 불리는 컴파일러의 특별한 구성요소에 의해 연산되었다. 이 구성요소의 주요 기능은 모든 명령을 순차적으로 진행하고 해당 명령에 대한 입력 변수의 유형 매개변수가 설정되었다고 가정하면 출력 변수의 유형 매개변수를 연산한다. 가상 기계의 명령은 명시적인 수학 함수에 해당하므로 컴파일러는 출력의 통계적 분포를 연산할 수 있으므로 전체 유형(사용자가 지정하지 않은 경우)을 추론할 수 있다.
4 섹션 용어
다음은 이 섹션 III에서 사용된 용어의 용어집이다. 본 명세서의 설명은 독자가 개시된 실시 예들을 이해하도록 돕기 위한 목적으로 만 제공되며 청구된 발명에 제한적이지 않다.
AST1 : DSL에서 직접 생성된 추상 구문 트리.
AST2 : 산술 표현식이 MPC 최적화된 AST1에서 파생된 추상 구문 트리(초기에는 AST1과 AST2가 같다고 가정).
AST-IR1 : 중간 언어 1(IL1)에 해당하는 추상 구문 트리
블록 : 범위를 정의하는 데 사용되는 기본 문
식 : 평가될 수 있는 문법 구성
IR1 : 중간 표현 1
IR2 : 중간 표현 2
불변 : 특정 변수의 하나의 할당(각 변수는 대응하는 불변의 세트를 가질 수 있음)
범위 변수 : 특정 블록(범위)에만 보이는 변수
시맨틱 단계 1(SP1) : 유형 매개변수 및 불변에 관계없이 부분 시맨틱 분석
시맨틱 단계 2(SP2) : 완전한 시맨틱 분석으로 프라이버시 보호 프로그램 컴파일
문 : 문법 구성(블록, if-then-else, 경계가 정해진 for 루프, 함수 본문 등)
통계 연산기 : SP2에서 명령을 통과하고 형식 매개변수를 추론하는 컴파일러 구성요소
VI. 컴퓨터 구현
방법, 프로세스, 애플리케이션, 프로그램, 모듈, 엔진, 기능 등으로 지칭될 수 있는 본 출원에 개시된 실시 예들의 구성요소들은 비일시적 컴퓨터 판독 가능 매체상의 명령들로서 구현된 특수 목적 소프트웨어를 사용하여 하나 이상의 컴퓨터 또는 컴퓨터 시스템을 구성함으로써 구현될 수 있다. 하나 이상의 컴퓨터 또는 컴퓨터 시스템은 독립형, 클라이언트 및/또는 서버 컴퓨터들이거나 이것들을 포함할 수 있으며, 이것들은 네트워크 컴퓨터 시스템으로서 유선 및/또는 무선 네트워크를 통해 선택적으로 네트워킹될 수 있다.
도 15는 다양한 실시 예에 따라 개시된 구성요소들을 구현하도록 적절하게 구성될 수 있는 범용 컴퓨터 아키텍처(1500)를 도시한다. 컴퓨팅 아키텍처(1500)는 컴퓨터(1501), 네트워크(1518) 및 하나 이상의 원격 컴퓨터(1530)와 같은 다양한 공통 컴퓨팅 요소를 포함할 수 있다. 그러나 본 출원에 개시된 실시 예들은 일반적인 컴퓨팅 아키텍처(1500)에 의한 구현으로 제한되지 않는다.
도 15를 참조하면, 컴퓨터(1501)는 예를 들어, 서버, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터 또는 모바일 컴퓨팅 디바이스와 같은 다양한 범용 컴퓨터 중 임의의 것일 수 있다. 컴퓨터(1501)는 처리 유닛(1502), 시스템 메모리(1504) 및 시스템 버스(1506)를 포함할 수 있다.
처리 유닛(1502)은 서로 독립적으로 동작할 수 있는 하나 이상의 처리 코어를 포함할 수 있는 다양한 시중에서 구할 수 있는 컴퓨터 프로세서 중 임의의 것일 수 있다. 그래픽 처리 유닛(1503)과 같은 추가적인 공동 처리 유닛들도 컴퓨터에 존재할 수 있다.
시스템 메모리(1504)는 동적 랜덤 액세스 메모리(DRAM) 또는 다른 랜덤 액세스 메모리 디바이스들과 같은 휘발성 디바이스들을 포함할 수 있다. 시스템 메모리(1504)는 또한 또는 대안적으로 판독 전용 메모리 또는 플래시 메모리와 같은 비휘발성 디바이스들을 포함할 수 있다.
컴퓨터(1501)는 디스크 드라이브, 고체 상태 디스크 또는 이동식 메모리 카드와 같은 로컬 비휘발성 이차 스토리지(1508)를 포함할 수 있다. 로컬 스토리지(1508)는 하나 이상의 이동식 및/또는 비이동식 스토리지 유닛들을 포함할 수 있다. 로컬 스토리지(1508)는 컴퓨터 상에서 실행되는 다양한 애플리케이션을 개시하고 관리하는 운영 체제를 저장하는 데 사용될 수 있다. 로컬 스토리지(1508)는 또한 본 출원에 개시된 실시 예들의 구성요소들을 구현하도록 구성되고 운영 체제 하에서 하나 이상의 애플리케이션으로서 실행될 수 있는 특수 목적 소프트웨어를 저장하는 데 사용될 수 있다.
컴퓨터(1501)는 또한 유선 및/또는 무선 컴퓨터 네트워크들(1518)을 통해 컴퓨터가 하나 이상의 원격 컴퓨터(1530)와 같은 다른 디바이스와 통신하는 통신 디바이스(들)(1512)를 포함할 수 있다. 통신 디바이스(들)(1512)는 예를 들어, 유선 컴퓨터 네트워크를 통해 데이터를 통신하기 위한 네트워크 인터페이스를 포함할 수 있다. 통신 디바이스(들)(1512)는 예를 들어, Wi-Fi, 블루투스 및/또는 이동 전화 네트워크들을 통한 통신을 위한 하나 이상의 무선 송신기를 포함할 수 있다.
컴퓨터(1501)는 또한 컴퓨터 네트워크(1518)를 통해 네트워크 스토리지(1520)에 액세스할 수 있다. 네트워크 스토리지는 예를 들어, 로컬 네트워크 상에 위치된 네트워크 접속 스토리지 디바이스, 또는 하나 이상의 원격 데이터 센터에서 호스팅되는 클라우드 기반 스토리지를 포함할 수 있다. 운영 체제 및/또는 특수 목적 소프트웨어는 대안적으로 네트워크 스토리지(1520)에 저장될 수 있다.
컴퓨터(1501)는 키보드, 마우스, 터치 스크린, 카메라, 마이크로폰, 가속도계, 온도계, 자력계 또는 임의의 다른 센서와 같은 다양한 입력 디바이스(들)(1514)를 가질 수 있다. 디스플레이, 스피커, 프린터, 편심 회전 질량 진동 모터와 같은 출력 디바이스(들)(1516)도 포함될 수 있다.
다양한 저장 디바이스(1508), 통신 디바이스(들)(1512), 출력 디바이스들(1516) 및 입력 디바이스들(1514)은 컴퓨터의 하우징 내에 통합될 수 있거나, 또는 컴퓨터 상의 다양한 입/출력 인터페이스 디바이스를 통해 연결될 수 있으며, 이 경우 참조 부호들(1508, 1512, 1514 및 1516)이 경우에 따라 디바이스에 연결하기 위한 인터페이스 또는 디바이스 자체를 나타낼 수 있다.
앞에서의 양태들 중 임의의 양태는 컴퓨터 프로그램 명령들이 저장되고, 하나 이상의 컴퓨터에 의해 처리될 때, 하나 이상의 컴퓨터가 그러한 컴퓨터 시스템 또는 그러한 컴퓨터 시스템의 임의의 개별 구성요소를 제공하도록 구성하는 컴퓨터 스토리지를 포함하는 컴퓨터 시스템, 그러한 컴퓨터 시스템에 의해 수행되는 프로세스, 그러한 컴퓨터 시스템의 임의의 개별 구성요소, 또는 제조품으로서 하나 이상의 예에서 구현될 수 있다. 서버, 컴퓨터 서버, 호스트 또는 클라이언트 디바이스는 각각 컴퓨터 또는 컴퓨터 시스템으로 구현될 수 있다. 컴퓨터 시스템은 통신 네트워크를 통해 연결되는 다수의 컴퓨터에 의해 동작들이 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 컴퓨터 프로그램들은 로컬 및 원격 컴퓨터 저장 매체 둘 다에 위치할 수 있다.
본 출원에서 설명되고 하나 이상의 컴퓨터 상에서 동작하는 컴퓨터 시스템의 각 구성요소는 컴퓨터의 하나 이상의 처리 유닛 및 하나 이상의 처리 유닛에 의해 처리되는 하나 이상의 컴퓨터 프로그램을 사용하여 구현될 수 있다. 컴퓨터 프로그램은 컴퓨터에서 하나 이상의 처리 유닛에 의해 처리되는 컴퓨터 실행 가능 명령들 및/또는 같은 컴퓨터 해석 명령들, 이를테면 프로그램 모듈들을 포함한다. 일반적으로, 그러한 명령들은 처리 유닛에 의해 처리될 때, 처리 유닛이 데이터에 대한 동작들을 수행하도록 지시하거나 프로세서 또는 컴퓨터를 다양한 구성요소 또는 데이터 구조를 구현하도록 구성하는 루틴, 프로그램, 객체, 구성요소, 데이터 구조 등을 정의한다.
모듈, 엔진, 프로세스, 기능 등으로 지칭될 수 있는 본 출원에 개시된 실시 예들의 구성요소들은 하드웨어로, 이를테면 특수 목적 하드웨어 로직 구성요소들을 사용함으로써, 특수 목적 소프트웨어하여 범용 컴퓨팅 자원들을 구성함으로써, 또는 특수 목적 하드웨어 및 구성된 범용 컴퓨팅 자원들의 조합에 의해 구현될 수 있다. 사용될 수 있는 하드웨어 로직 구성요소들의 예시적인 유형들은 예를 들어, FPGA(Field-programmable Gate Array), ASIC(Application-Specific Integrated Circuits), APS(Application-Specific Standard Products), SOC(System-on-a-chip systems) 및 CPLD(Complex Programmable Logic Devices)를 포함한다.
V. 결론 코멘트
기술 요지가 특정 실시 예들의 관점에서 설명되었지만, 본 출원에 제시된 다양한 특징 및 이점을 제공할 수 있거나 제공하지 않을 수 있는 실시 예들을 비롯한 다른 실시 예들이 앞에서의 개시의 관점에서 해당 기술분야의 통상의 기술자들에게 명백할 것이다. 상술된 특정 실시 예들은 단지 예들로서 개시되고, 특허 기술 요지의 범위는 뒤따르는 청구범위에 의해 정의된다.
청구범위에서, "~에 기초하여"라는 용어는 요인이 결과를 생성하거나 냄에 있어, 직접적으로 그리고/또는 간접적으로, 그리고 가능하게는 다른 요인들과 함께 고려되는 상황들을 포함해야 한다. 청구범위에서, 부분은 아무것도 아닌 것보다 크고 전체 이하를 포함해야 한다; 암호화는 부분의 암호화를 포함해야 한다. 청구범위에서, 임의의 참조 문자들은 설명의 편의를 위해서만 사용되고, 방법을 수행하기 위한 특정 순서를 나타내지 않는다.

Claims (30)

  1. 개별 당사자들에 의해 제공되는 입력 데이터의 프라이버시를 보호하면서 결과를 생성하기 위해 보안 다자간 연산을 수행하기 위한 방법으로서,
    딜러 컴퓨팅 시스템(dealer computing system)이 관련 수치 마스킹 데이터 구성요소들의 복수의 집합들을 생성하는 단계로서, 관련 수치 마스킹 데이터 구성요소들의 각 집합에 대해, 상기 집합의 각 구성요소는 스칼라, 벡터 및 매트릭스 중 하나인, 단계;
    상기 딜러 컴퓨팅 시스템이 복수의 당사자 컴퓨팅 시스템 중에, 상기 관련 수치 마스킹 데이터 구성요소들의 복수의 집합들의 각 집합의 각 구성요소를 비밀 공유하는 단계;
    상기 복수의 당사자 컴퓨팅 시스템의 각 당사자 컴퓨팅 시스템마다, 상기 당사자 컴퓨팅 시스템이:
    상기 딜러 컴퓨팅 시스템으로부터 상기 관련 수치 마스킹 데이터 구성요소들의 복수의 집합들의 각 집합의 각 구성요소의 각각의 비밀 공유를 수신하는 단계, 및
    적어도 하나의 입력 데이터 집합에 대해, 상기 입력 데이터 집합의 비밀 공유를 수신하는 단계;
    상기 당사자 컴퓨팅 시스템들이 하나 이상의 다자간 연산을 수행하여 연산된 비밀 공유된 데이터의 하나 이상의 제1 인스턴스를 생성하게 하는 프로그램 명령 집합을 실행하는 단계로서, 각 제1 인스턴스에 대해, 각 당사자 컴퓨팅 시스템은 입력 데이터 집합의 적어도 하나의 비밀 공유 또는 연산된 비밀 공유된 데이터의 제2 인스턴스의 적어도 하나의 비밀 공유에 기초하여 상기 제1 인스턴스의 비밀 공유를 연산하고, 수치 마스킹 데이터 구성요소들의 수신된 비밀 공유들은 상기 연산 동안 통신된 데이터를 마스킹하기 위해 사용되며, 상기 연산은 다음과 같은 (a), (b) 및 (c) 중 적어도 하나를 포함하는, 단계:
    (a) 복수의 결정된 푸리에 급수로부터, 상기 입력 데이터 집합 또는 상기 연산된 비밀 공유된 데이터의 제2 인스턴스에 기초하여, 선택되는 푸리에 급수를 사용하여 연속 함수의 값을 근사화하는 단계로서, 상기 복수의 결정된 푸리에 급수의 각각은 상기 연속 함수의 도메인의 관련 부분 구간에 대한 상기 연속 함수를 근사화하도록 구성되는, 연속 함수의 값을 근사화하는 것,
    (b) 부동 소수점 표현으로 저장된 연산된 비밀 공유된 데이터의 제3 인스턴스를 동등한 값, 동등한 수준의 정밀도 및 동등한 수준의 보안을 갖는 연산된 비밀 공유된 데이터의 제4 인스턴스로 변환하는 비밀 공유 감소로서, 상기 제4 인스턴스의 각 비밀 공유의 메모리 저장 요구량이 상기 제3 인스턴스에 비해 감소되고, 상기 변환은 적어도 다음에 의해 수행되는, 상기 비밀 공유 감소:
    상기 복수의 당사자 컴퓨팅 시스템의 각 당사자 컴퓨팅 시스템이:
    미리 결정된 컷오프 위치를 넘는 비밀 공유의 최고차 숫자 집합을 선택하는 것; 그리고
    상기 비밀 공유의 최저차 숫자 집합을 상기 컷오프 위치까지 유지시키는 것;
    상기 복수의 당사자 컴퓨팅 시스템에 걸쳐 선택된 상기 최고차 숫자 집합으로 표현되는 값들의 합을 결정하는 것; 그리고
    결정된 상기 합을 상기 복수의 당사자 컴퓨팅 시스템이 상기 비밀 공유의 유지된 상기 최저차 숫자 집합들에 걸쳐 분산시키는 것, 그리고
    (c) 적어도 다음에 의해 상기 입력 데이터 집합 또는 상기 연산된 비밀 공유된 데이터의 제2 인스턴스에 대한 푸리에 급수 평가의 비밀 공유를 결정하는 것:
    상기 입력 데이터 집합 또는 상기 연산된 비밀 공유된 데이터의 제2 인스턴스의 비밀 공유를 수치 마스킹 데이터 구성요소들의 상기 비밀 공유로 마스킹하는 것;
    마스킹된 상기 비밀 공유로 표현되는 값을 결정하고 드러내는 것;
    마스킹된 상기 비밀 공유로 표현되는 결정된 상기 값에 기초하여 푸리에 급수 기저 함수들의 값들을 연산하는 것; 그리고
    상기 푸리에 급수 기저 함수들의 연산된 상기 값들 및 수치 마스킹 데이터 구성요소들의 상기 비밀 공유에 기초하여 상기 푸리에 급수 평가의 상기 비밀 공유를 연산하는 것;
    상기 복수의 당사자 컴퓨팅 시스템의 각 당사자 컴퓨팅 시스템마다, 상기 당사자 컴퓨팅 시스템이 연산된 비밀 공유된 데이터의 제5 인스턴스의 비밀 공유를 상기 복수의 당사자 컴퓨팅 시스템의 하나 이상의 다른 당사자 컴퓨팅 시스템으로 송신하는 단계; 그리고
    상기 복수의 당사자 컴퓨팅 시스템 중 적어도 하나의 당사자 컴퓨팅 시스템에 대해, 상기 당사자 컴퓨팅 시스템이:
    상기 복수의 당사자 컴퓨팅 시스템의 하나 이상의 다른 당사자 컴퓨팅 시스템으로부터 연산된 비밀 공유된 데이터의 제6 인스턴스의 하나 이상의 비밀 공유를 수신하는 단계; 및
    연산된 비밀 공유된 데이터의 상기 제6 인스턴스의 수신된 상기 비밀 공유들을 조합하여 결과를 생성하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 연산은 (a) 및 (b)를 포함하는, 방법.
  3. 청구항 1에 있어서, 상기 연산은 (a)를 포함하는, 방법.
  4. 청구항 3에 있어서,
    상기 연속 함수의 상기 도메인의 일부를 복수의 부분 구간으로 분할하는 단계; 그리고
    상기 복수의 부분 구간의 각 부분 구간마다:
    상기 부분 구간에 대한 상기 함수의 푸리에 급수 근사치를 결정하는 단계를 더 포함하는, 방법.
  5. 청구항 3에 있어서, 상기 다자간 연산들은 가블드 회로들(garbled circuits) 및 불확정 선택(oblivious selection) 중 적어도 하나를 사용하여 상기 관련 부분 구간을 선택하는 단계를 더 포함하는, 방법.
  6. 청구항 3에 있어서, 상기 근사화는 상기 연속 함수의 균일한 근사화인, 방법.
  7. 청구항 3에 있어서, 상기 연속 함수는 기계 학습 활성화 함수인, 방법.
  8. 청구항 7에 있어서, 상기 기계 학습 활성화 함수는 시그모이드 함수(sigmoid function)인, 방법.
  9. 청구항 7에 있어서, 상기 기계 학습 활성화 함수는 하이퍼볼릭 탄젠트 함수 (hyperbolic tangent function)인, 방법.
  10. 청구항 7에 있어서, 상기 기계 학습 활성화 함수는 신경망에 대한 정류기 활성화 함수(rectifier activation function)인, 방법.
  11. 청구항 3에 있어서, 상기 연속 함수는 시그모이드 함수인, 방법.
  12. 청구항 1에 있어서, 상기 연산은 (b)를 포함하는, 방법.
  13. 청구항 12에 있어서, 상기 복수의 당사자 컴퓨팅 시스템에 걸쳐 선택된 상기 최고차 숫자 집합으로 표현되는 값들의 합을 결정하는 것은:
    합이 제로가 되는 수치 마스킹 데이터 구성요소들의 집합을 결정하는 단계;
    결정된 상기 집합의 하나의 원소를 상기 당사자 컴퓨팅 시스템들의 각각으로 분산시키는 단계;
    각 당사자 컴퓨팅 시스템이 결정된 상기 집합의 각각의 원소를 수신하는 단계;
    각 당사자 컴퓨팅 시스템이 수신된 상기 원소를 당해 각 당사자 컴퓨팅 시스템의 비밀 공유의 당해 각 당사자 컴퓨팅 시스템의 선택된 상기 최고차 숫자 집합에 가산하여 마스킹된 최고차 숫자 집합을 얻는 단계; 및
    상기 마스킹된 최고차 숫자 집합을 합산하는 단계를 포함하는, 방법.
  14. 청구항 1에 있어서, 상기 결과는 로지스틱 회귀 분류 모델의 계수 집합인, 방법.
  15. 청구항 1에 있어서, 상기 방법은 로지스틱 회귀 분류기를 구현하고, 상기 결과는 상기 입력 데이터에 기초한 상기 로지스틱 회귀 분류기의 예측인, 방법.
  16. 청구항 1에 있어서, 상기 딜러 컴퓨팅 시스템은 신뢰할 수 있는 딜러 컴퓨팅 시스템이고, 상기 당사자 컴퓨팅 시스템들 간 통신은 상기 신뢰할 수 있는 딜러 컴퓨팅 시스템이 액세스할 수 없는, 방법.
  17. 청구항 1에 있어서, 상기 딜러 컴퓨팅 시스템은 정직하지만 기이한(honest-but-curious) 딜러 컴퓨팅 시스템이고, 상기 당사자 컴퓨팅 시스템들 중 하나 이상에 의해 제공된 비밀 공유된 입력 데이터의 프라이버시는 상기 당사자 컴퓨팅 시스템들 간 통신이 상기 정직하지만 기이한 딜러 컴퓨팅 시스템에 의해 액세스될 수 있는지 여부에 관계 없이 보호되는, 방법.
  18. 청구항 1에 있어서,
    적어도 하나의 입력 데이터 집합에 대해, 상기 입력 데이터 집합에 대한 통계 분석을 수행하여 입력 데이터 통계 집합을 결정하는 단계;
    상기 입력 데이터 통계 집합을 사용하는 소스 코드 명령 집합의 사전 실행을 수행하여 하나 이상의 변수 유형의 각각에 대한 통계 유형 파라미터들을 생성하는 단계; 및
    상기 통계 유형 파라미터 집합에 기초하여 상기 소스 코드 명령 집합을 컴파일링하여 상기 프로그램 명령 집합을 생성하는 단계를 더 포함하는, 방법.
  19. 청구항 18에 있어서, 상기 사전 실행은:
    결정 가능한 반복 횟수를 갖는 상기 소스 코드 명령 집합에서 루프들을 펼치는 단계; 및
    상기 소스 코드 명령 집합에서 함수 호출들을 펼치는 단계에 후속하여 수행되는, 방법.
  20. 청구항 1에 있어서, 관련 수치 마스킹 데이터 구성요소들의 적어도 하나의 집합은 상기 구성요소들 중 하나의 구성요소가 상기 구성요소들의 나머지 두 구성요소의 곱과 동등한 관계를 갖는 세 구성요소로 구성되는, 방법.
  21. 청구항 1에 있어서, 관련 수치 마스킹 데이터 구성요소들의 적어도 하나의 집합은 수 및 상기 수에 대해 평가된 푸리에 기저 함수들의 하나 이상의 관련 값들의 집합을 포함하는, 방법.
  22. 청구항 1에 있어서, 상기 연산은 (c)를 포함하는, 방법.
  23. 청구항 22에 있어서, 상기 푸리에 급수 평가의 상기 비밀 공유를 연산하는 것은 다음 식:

    을 기반으로 수행되며, 여기서 는 상기 입력 데이터 집합 또는 상기 연산된 비밀 공유된 데이터의 제2 인스턴스를 나타내고, 는 마스킹 데이터를 나타내고, 은 정수를 나타내고, 표기 는 수 의 가산적 비밀 공유를 표기하며, 표기 는 가산 모듈로 를 표기하는, 방법.
  24. 청구항 1에 있어서, 상기 연산은 (a), (b) 및 (c)를 포함하는, 방법.
  25. 청구항 1에 있어서, 상기 연산은 (a) 및 (c)를 포함하는, 방법.
  26. 청구항 1 내지 25 중 어느 한 항에 있어서, 상기 결과는 상기 결과의 평문 연산에 관한 미리 결정된 정밀도를 갖는, 방법.
  27. 청구항 1 내지 25 중 어느 한 항에 있어서, 상기 복수의 당사자 컴퓨팅 시스템 중 적어도 하나가 상기 복수의 당사자 컴퓨팅 시스템 중에, 각각의 입력 데이터 집합을 비밀 공유하는 단계를 더 포함하는, 방법.
  28. 청구항 1 내지 25 중 어느 한 항의 방법을 수행하도록 구성되는 복수의 컴퓨터 시스템을 포함하는 시스템.
  29. 당사자 컴퓨팅 시스템이 청구항 1 내지 25 중 어느 한 항의 하나 이상의 다자간 연산을 수행하게 하는 프로그램 명령 집합으로 인코딩된 비일시적 컴퓨터 판독 가능한 저장 매체.
  30. 복수의 컴퓨터 시스템에 의해 실행될 때, 상기 복수의 컴퓨터 시스템이 청구항 1 내지 25 중 어느 한 항의 방법을 수행하게 하는 컴퓨터 코드로 인코딩된 비일시적 컴퓨터 판독 가능한 저장 매체.
KR1020207008986A 2017-08-30 2018-08-30 고정밀 프라이버시 보호 실가 함수 평가 KR102667837B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201762552161P 2017-08-30 2017-08-30
US62/552,161 2017-08-30
US201762560175P 2017-09-18 2017-09-18
US62/560,175 2017-09-18
US201862641256P 2018-03-09 2018-03-09
US62/641,256 2018-03-09
US201862647635P 2018-03-24 2018-03-24
US62/647,635 2018-03-24
PCT/US2018/048963 WO2019046651A2 (en) 2017-08-30 2018-08-30 EVALUATION OF REAL-VALUE FUNCTION PRESERVING HIGH PRECISION CONFIDENTIALITY

Publications (2)

Publication Number Publication Date
KR20200044103A KR20200044103A (ko) 2020-04-28
KR102667837B1 true KR102667837B1 (ko) 2024-05-21

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015194959A (ja) 2014-03-31 2015-11-05 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
JP2016131271A (ja) 2015-01-13 2016-07-21 国立研究開発法人情報通信研究機構 サーバ、サービス方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015194959A (ja) 2014-03-31 2015-11-05 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
JP2016131271A (ja) 2015-01-13 2016-07-21 国立研究開発法人情報通信研究機構 サーバ、サービス方法

Similar Documents

Publication Publication Date Title
US11539515B2 (en) High-precision privacy-preserving real-valued function evaluation
Pulido-Gaytan et al. Privacy-preserving neural networks with homomorphic encryption: C hallenges and opportunities
Abspoel et al. Secure training of decision trees with continuous attributes
Ball et al. Garbled neural networks are practical
Andrychowicz et al. Circuit Compilers with O (1/\log (n)) O (1/log (n)) Leakage Rate
Hülsing et al. Rounded Gaussians: fast and secure constant-time sampling for lattice-based crypto
Grassi et al. Quantum Algorithms for the-xor Problem
Boura et al. High-precision privacy-preserving real-valued function evaluation
Schoppmann et al. Make some ROOM for the zeros: data sparsity in secure distributed machine learning
Saarinen et al. Shorter messages and faster post-quantum encryption with Round5 on Cortex M
Du et al. GraphShield: Dynamic large graphs for secure queries with forward privacy
Wagh Pika: Secure computation using function secret sharing over rings
Vákár et al. CHAD: Combinatory homomorphic automatic differentiation
Bordes et al. Fast verification of masking schemes in characteristic two
Drucker et al. BLEACH: cleaning errors in discrete computations over CKKS
Bellini et al. CLAASP: a cryptographic library for the automated analysis of symmetric primitives
Pang et al. BOLT: Privacy-Preserving, Accurate and Efficient Inference for Transformers
KR102667837B1 (ko) 고정밀 프라이버시 보호 실가 함수 평가
Hao et al. Fastsecnet: An efficient cryptographic framework for private neural network inference
Goyal et al. Private circuits with quasilinear randomness
Jahan et al. Design of a secure sum protocol using trusted third party system for secure multi-party computations
Molteni et al. A relation calculus for reasoning about t-probing security
Akavia et al. Privacy preserving feature selection for sparse linear regression
Fontes et al. The communication complexity of functions with large outputs
Molteni et al. ADD-based spectral analysis of probing security