KR20210127168A - 모듈러 정수를 사용한 보안 다자간 계산을 위한 산술 - Google Patents
모듈러 정수를 사용한 보안 다자간 계산을 위한 산술 Download PDFInfo
- Publication number
- KR20210127168A KR20210127168A KR1020217026016A KR20217026016A KR20210127168A KR 20210127168 A KR20210127168 A KR 20210127168A KR 1020217026016 A KR1020217026016 A KR 1020217026016A KR 20217026016 A KR20217026016 A KR 20217026016A KR 20210127168 A KR20210127168 A KR 20210127168A
- Authority
- KR
- South Korea
- Prior art keywords
- value
- secret
- modular representation
- representation
- promotion
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Operations Research (AREA)
- Storage Device Security (AREA)
Abstract
보안 다자간 계산은 백엔드에서 모듈러 정수 표현을 사용하여 실수 산술을 구현한다. 구현의 일부로서, 제1 모듈러 표현으로 여러 당사자에 의해 공동으로 저장된 비밀 공유된 값은 더 큰 최상위 비트를 갖는 제2 모듈러 표현으로 캐스팅된다. 당사자는 제1 표현에서 비밀 공유된 마스킹 값을 사용하며, 그 범위는 2개의 절반으로 나누어져 비밀 공유된 값과 비밀 공유된 마스킹 값의 합계를 마스킹하고 노출한다. 당사자는 합계와 함께 마스킹 값을 함유하는 범위의 절반을 식별하는 비밀 공유된 비트를 사용하여 제2 모듈러 포맷으로 비밀 공유된 값을 표현하는 비밀 지분의 세트를 협력하여 구성한다. 이전 연구와는 달리, 개시된 해결책은 효율성이나 보안을 희생하지 않고 0이 아닌 오류의 확률을 제거한다.
Description
관련 출원
본 출원의 주제는 2019년 2월 22일에 출원된 미국 가출원 번호 62809543에 관련하며, 이는 그 전체가 참조로 본 출원에 통합된다. 본 출원의 주제는 또한 2018년 8월 30일에 출원되고 2019년 3월 7일에 세계 지적 재산권 기구 국제 공개 번호 WO2019046651A2로 공개된 특허 협력 조약 출원 번호 PCT/US2018/048963과 관련되며, 이는 그 전체가 참조로 본 출원에 통합된다.
프라이버시 보존 다자간 계산(MPC) 기술은 여러 당사자가 협력하여 함수를 평가하여 입력을 비공개로 유지하면서 공유 또는 노출된 출력을 생성하는 것을 가능하게 한다. 이러한 계산은 예를 들어 의료 및 금융 분야에서 입력 데이터가 그 데이터를 공개할 수 없는 별개의 비공개 데이터 소스에서 유래되지만 기밀 데이터를 기초로 하는 공개적 결과가 필요한 경우에 사용된다.
MPC는 일반적으로 여러 참가자에 걸쳐 시간적으로 및 지리적으로 모두 분할된다. 각각 별개의 계산 시스템을 나타내는 참가자는 전형적으로 당사자와 하나의 신뢰할 수 있는 딜러를 포함한다. 본 출원에서 사용될 때, 당사자 및 플레이어라는 용어는 상호 교환적으로 사용되며 다자간 계산에 참여하는 개별 당사자 컴퓨터 시스템을 지칭한다.
계산을 구현하기 위해 코드를 컴파일한 후 신뢰할 수 있는 딜러가 먼저 MPC의 오프라인 페이즈(offline phase)를 실행한다. 오프라인 페이즈에서 신뢰할 수 있는 딜러는 마스크(마스킹 데이터, 트리플릿이라고도 지칭됨)를 생성하고, 이들 마스크의 지분을 당사자에게 배포하며, 각 당사자는 마스크의 그 지분만을 알고, 당사자들 중 누구도 지분의 합으로 표현되는 평문 마스크 값을 알지 못한다. 마스크의 결정은 전형적으로 마스크가 데이터와 관련하여 적절하게 구성되도록 통계 분석 관점에서 작동될 것으로 예상되는 데이터에 의존한다.
그 다음, 당사자는 정의된 MPC 프로토콜에 따라 당사자가 메시지를 교환하거나 브로드캐스트할 수 있는 동기화 단계를 동반하는 MPC의 온라인 페이즈를 협력하여 실행한다. 온라인 페이즈는 신뢰할 수 있는 딜러가 액세스할 수 없는 방화벽 환경에서 실행할 수 있다.
MPC는 MPC 친화적인 기본 연산의 단일 정적 할당(SSA) 그래프로서 설명할 수 있는 평문 의사코드의 분산된 등가물일 수 있다. SSA 그래프의 노드는 평문 변수이며 각 당사자는 변수의 로컬 뷰(또는 비밀 지분)를 얻는다. 이 로컬 뷰를 MPC 컨테이너로 표시한다. MPC 친화적인 기본 연산은 빌트인(builtin)이라 지칭되며, MPC 컨테이너와 선택적으로 일부 정적 파라미터를 입력으로 사용하고 MPC 컨테이너를 출력으로 생성한다.
도 1은 다자간 계산의 k 당사자에 대한 MPC 컨테이너의 개요를 예시한다. 전역적으로, MPC 컨테이너는 SSA의 한 변수에 대한 모든 정보, 즉, 공개(모든 당사자가 알고 있지만, 신뢰할 수 있는 딜러는 그렇지 않음) 또는 비밀 공유된 (각 당사자는 그 지분만을 알고 있음)일 수 있는 평문 값 , 하나의 마스크 (딜러가 알고, 모든 당사자가 공유하는 비밀) 및 선택적 마스킹된 값 (모든 당사자가 알고 있지만 전형적으로 딜러는 그렇지 않음)를 보유한다. 표기 참고: 이중 대괄호 표기 은 비밀 공유된 값을 표시하기 위해 본 출원에서 사용된다.
로컬에서, 각 당사자는 다음과 같은 필드를 갖는 구조일 수 있는 MPC 컨테이너의 트레이스를 가지고 있다 :
컨테이너의 합집합을 분석하면 다음이 성립한다: 컨테이너의 평문 값은 정의에 따라 모든 지분의 합계 이고, 컨테이너가 공개적인 경우, 모든 당사자는 평문 값을 알고, 각 당사자는 이 값 을 채워둔 상태이다. 이 경우, MPC 프로토콜에서 다른 필드를 사용할 필요가 없다. 컨테이너의 마스크는 이다. 마스크의 값은 신뢰할 수 있는 딜러만 알고 있다(오프라인 페이즈 동안). 당사자 중 누구도 온라인 페이즈 동안 실제 마스크를 알거나 학습하지 못한다. 마스킹된 값 는 와 같다. 특수 마스크 및 노출 동작은 각 당사자에게 그 를 브로드캐스트하도록 지시하고, 이는 이들이 동일한 필드 를 공동으로 재구성하고 저장하게 한다. 빌트인에서 나타나는 다른 모든 기술적 또는 로컬 변수는 임시 변수라 지칭된다.
이전의 두 연구에서는 MPC에 관련하여 실수를 표현하기 위해 부동 소수점 표현과 반대되는 고정 소수점 정수 표현의 사용을 제안했다. P. Mohassel 및 Y. Zhang의 첫 번째 이전 연구는 이후 "SecureML"이라 지칭되며, 명칭은 "SecureML: A system for scalable privacy-preserving machine learning"(2017 IEEE Symposium on Security and Privacy, SP 2017, San Jose, CA, USA, May 22-26, 2017, pages 19-38, 2017)이다. P. Mohassel 및 P. Rindal의 두 번째 이전 연구는 이후 "ABY3"으로 지칭되며, 명칭은 "ABY3: A mixed protocol framework for machine learning"(Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security, CCS 2018, Toronto, ON, Canada, October 15-19, 2018, pages 35-52, 2018)이다.
modReal 표현. 이들 연구에서 실수 산술은 고정 크기 정수 유형(예컨대, int64, 즉, 정수 모듈로 264)에 대한 가산, 감산 및 반올림 제산의 평가를 통해 구현된다. 예를 들어, 2개의 30 비트 정수 x와 y를 승산하고 결과의 30개 최상위 비트를 유지하려면(부동 소수점 승산과 유사), (임의의 오버플로우 없이 64 비트 정수에 곱을 피팅함으로서) 먼저 xy를 계산하고, 그 후, 결과를 30 비트만큼 우측 시프트할 수 있다. 두 연구는 평문 x∈가 k 당사자(SecureML에서 k = 2, ABY3에서 k ≥ 3) 간에 비밀 공유된 MPC 설정에 이들 연산을 (x1,…, x k )∈(/q) k (일부 정수 q에 대해)로서 적응시키며, 그래서, x = 센터모드 q ( x1 + … + x k )이다. 부호 있는 수학적 승급(lift) 센터모드 q (x)는 고유 정수 로 정의되며, 그래서, 이다. 우리는 산술 지분에 대한 실수의 이 특정 표현을 modReal 표현으로 표시한다.
SecureML, 섹션 4.1, "공유된 소수에 대한 산술 연산"이라는 명칭의 서브 섹션은 다음과 같이 제안한다. 각 수의 비트가 수치의 소수부(fractional part)(소수점 이후의 이진 자릿수)를 나타내도록 정의되도록 공통 정수 표현에 저장된 두 이진 소수 x와 y의 고정 소수점 곱을 고려한다. 이 경우, 및는 기본적으로 정수 백엔드를 사용하여 표현할 수 있는 정수일 것이다. 그러나, 승산이 일부 정수 에 대해 에서 이루어진 곱 은 표현의 소수부에서 최대 비트를 가질 것이다. 그러나, 특히 MPC와 관련하여 데시멀(decimal) 이후에 추가 이진 자릿수를 유지하는 것은 실용적이지 않을 수 있다. SecureML은 마지막 비트를 무시하거나 절단하여 결과의 소수부를 나타내는 비트 수를 감소시킬 것을 제안한다. 예를 들어, 곱은 다음과 같이 표현될 수 있다: , 여기서, 이며, 결과는 만 포함하는 것으로 고려.
그 후, SecureML은 위의 절단 기술을 비밀 공유된 값 으로 확장한다. 실제로 의 각각의 비밀 지분을 보유한 두 당사자는 그 개별 지분을 절단할 수 있다. 그 후, 정리 1에서 높은 확률로 2개의 절단된 지분이 의 절단 를 재구성할 수 있음이 나타난다. 이 해결책은 다음 전제를 기초로 한다: x1 및 x2가 매우 작은 x의 2개의 비밀 지분인 경우, 이때, 매우 높은 확률로 2개의 지분 x1 및 x2은 2개의 반대 반원 에 있다. 두 당사자와만 작동하는 해결책은 지분을 절단하기 위해 로컬 절차에 의존하지만 결과적인 비밀 공유된 값이 정확하지 않을 확률은 0이 아니다.
ABY3은 §5.1.1에서 SecureML 두 당사자 절단 기술의 한계를 해결하고, §5.2.2는 MPC 설정에서 셋 이상의 당사자로 확장되는 절단에 대한 추가 기술을 제시한다. 그러나, 역시, 이들 추가 기술은 실제로 실패할 확률을 무시할 수 없다.
이전의 두 연구에서 승산은 비버(Beaver) 트리플릿 모듈로 q를 사용하여 수행되며 반올림은 각 지분에서 로컬로 수행될 수 있으며(에 의해 바운드된(bounded) 평문 값에 대한 작은 오류를 대가로 함) 및 가산은 각 지분에서 로컬로 수행될 수 있다. 제산에 대한 2개의 변형이 제안된다: SecureML에서의 첫 번째 변형은 두 당사자 사이의 통신이 없는 두 당사자 해결책이고 ABY3에서의 두 번째 변형은 k 당사자를 위한 비버 트리플릿 기반 해결책이다. 두 경우 모두, 제산의 결과는 대부분 정확하지만; 그러나, 거대한 검출할 수 없는 오버플로우가 작지만 0이 아닌 확률로 발생한다. M 정수 요소 및 지분 모듈로 q의 평문 범위에 대한 오버플로우 확률은 M/q이다. 앞서 설명한 2개의 30 비트 정수를 승산하는 예에서 오버플로우 확률은 261/264 = 1/8이고 정밀도를 20 비트로 감소시키면 241/264까지 강하한다. 오버플로우가 발생할 때, 오버플로우는 크다(SecureML 이후 오버플로우 진폭이 완화되었지만, 그러나, 이는 새로운 ABY3 개정판에서 여전히 결과의 최상위 비트를 변경한다). 따라서 이러한 잘못된 값을 포함하는 임의의 집계 함수가 영향을 받게 된다. 오버플로우 확률은 계수에 따르므로, N 계수의 벡터 또는 행렬에서 계산을 수행하면(로지스틱 회귀, 선형 회귀, 신경망과 같은 대부분의 ML 사용 사례의 경우와 마찬가지로) 적어도 하나의 파괴적인 오버플로우의 존재에 N이 승산되고 무시할 수 없게 된다.
수백만 개의 계수를 처리하기 위해 이전 두 연구에서 제안한 2개의 가능한 대책은 정밀도를 감소시키거나(64 비트 백엔드에서 최대 10 비트의 정밀도 제공), 백엔드 크기를 예를 들어 128 비트로 증가시키는 것이다(4 내지 16배 느림). 수치적으로 안정적인 사용 사례에서는 10 비트의 고정 소수점 정밀도로 충분할 수 있음에 유의하여야 하며, 이는 평문의 정확한 분포(예를 들어, 피처-스케일링된 입력, 시그모이드 출력 등)를 알고 있는 경우이다. 그러나, 고정 소수점 지수가 비밀 평문 분포에 대한 불확실성으로 인해 실제 값보다 4 또는 5 비트 더 높게 추정되는 경우, 또한 주요 언더플로우 상황이 발생할 수 있다.
보안 다자간 계산에 관련하여, 제1 모듈러 표현으로 여러 당사자에 의해 공동으로 저장된 비밀 공유된 값은 더 큰 최상위 비트를 갖는 제2 모듈러 표현으로 캐스팅된다. 캐스트는 그 범위가 2개의 절반으로 나누어지는 마스킹 값을 당사자와 비밀 공유하는 신뢰할 수 있는 딜러를 포함한다. 당사자는 마스킹 값을 사용하여 비밀 공유된 값과 마스킹 값의 합계를 마스킹하고 노출한다. 또한 신뢰할 수 있는 딜러는 마스킹 값을 함유하는 범위의 절반을 인코딩하는 비트를 당사자와 비밀 공유한다. 당사자는 합계와 함께 비밀 공유된 비트를 사용하여 제2 모듈러 포맷으로 비밀 공유된 값을 표현하는 비밀 공유 세트를 협력하여 재구성한다. 이전 연구와는 달리, 개시된 해결책은 효율성이나 보안을 희생하지 않고 오류의 0이 아닌 확률을 제거한다. 이 방법은 아래 상세한 설명의 섹션 3.1에 추가로 상세히 설명되어 있다.
방법은 비밀 공유된 값에 대한 다자간 계산을 수행하도록 구성된 보안 다자간 계산 시스템(SMPCS : secure multi-party computing system)에 의해 수행될 수 있고, 여기서 SMPCS는 보안 네트워크 통신에서 복수의 당사자 계산 시스템과 신뢰할 수 있는 딜러 계산 시스템을 포함한다. 이 방법은 비밀 공유된 값을 제1 모듈러 표현에서 제2 모듈러 표현으로 캐스팅하기 위한 것이고, 제1 모듈러 표현은 제1 모듈러 표현의 최상위 비트 위치 및 최하위 비트 위치에 의해 정의된 범위를 가지며, 제2 모듈러 표현은 제2 모듈러 표현의 최상위 비트 위치 및 최하위 비트 위치에 의해 정의된 범위를 가지며, 제2 모듈러 표현의 최상위 비트 위치는 제1 모듈러 표현의 최상위 비트 위치보다 더 크다.
일 실시예에 따르면, 각각의 당사자 계산 시스템은 제1 모듈러 표현에서 비밀 공유된 값의 각각의 비밀 지분을 저장한다. 신뢰할 수 있는 딜러 계산 시스템은 마스킹 값을 저장하고 마스킹 값이 제1 모듈러 표현에서 당사자 계산 시스템 사이에 비밀 공유되도록 제1 모듈러 표현에서 마스킹 값의 각각의 비밀 지분을 당사자 계산 시스템 각각에 전달한다. 신뢰할 수 있는 딜러 계산 시스템은 마스킹 값이 존재하는 서브 범위를 결정하고- 서브 범위는 제1 모듈러 표현의 범위를 표현하는 복수의 미리 결정된 비중첩 서브 범위로부터 선택됨 -; 결정된 서브 범위를 수치 서브 범위 식별자로 인코딩하고 수치 서브 범위 식별자가 당사자 계산 시스템 사이에 비밀 공유되도록 수치 서브 범위 식별자의 각각의 비밀 지분을 각각의 당사자 계산 시스템에 전달한다. 신뢰할 수 있는 딜러 계산 시스템은 제1 변환에서 마스킹 값에 대해 적어도 제1 수학적 승급을 수행함으로써 변환된 마스킹 값으로 마스킹 값을 변환한다. 신뢰할 수 있는 딜러 계산 시스템은 변환된 마스킹 값이 제2 모듈러 표현에서 당사자 계산 시스템 사이에 비밀 공유되도록 제2 모듈러 표현에서 변환된 마스킹 값의 각각의 비밀 지분을 당사자 계산 시스템 각각에 전달한다. 당사자 계산 시스템은 비밀 공유된 값의 비밀 지분 또는 마스킹 값의 비밀 지분을 노출하지 않고 비밀 공유된 값과 마스킹 값의 합계를 마스킹된 값으로 협력하여 계산하여 노출한다.
SMPCS는 마스킹된 값에 대해 적어도 제2 수학적 승급을 수행함으로써 제2 변환에서 마스킹된 값을 제1 변환된 마스킹된 값으로 변환한다. SMPCS는 마스킹된 값에 대해 적어도 제3 수학적 승급을 수행함으로써 제3 변환에서 마스킹된 값을 제2 변환된 마스킹된 값으로 변환하며, 여기서 제1 수학적 승급, 제2 수학적 승급 및 제3 수학적 승급은 각각 서로 상이하다. 당사자 계산 시스템은 각각의 당사자 계산 시스템이 제1 변환된 마스킹된 값, 제2 변환된 마스킹된 값, 각각의 당사자 계산 시스템에 대해 수치 서브 범위 식별자의 각각의 비밀 지분 및 각각의 당사자 계산 시스템에 대해 변환된 마스킹 값의 각각의 비밀 지분에 기초하여 제2 모듈러 표현에서 비밀 공유된 값의 각각의 비밀 지분을 계산하도록 제2 모듈러 표현에서 비밀 공유된 값을 협력하여 계산한다.
방법이 수행되고, 여기서, 제1 수학적 승급 및 제2 수학적 승급이 제1 모듈러 표현의 범위의 1/4만큼 오프셋된 값을 서로에 대하여 생성하고, 제2 수학적 승급 및 제3 수학적 승급이 제1 모듈러 표현의 범위의 1/2만큼 오프셋된 값을 서로에 대하여 생성할 수 있다.
제1 수학적 승급, 제2 수학적 승급, 및 제3 수학적 승급은 각각 다음으로 구성된 그룹으로부터 선택되는 방법이 수행될 수 있다: 에 의해 파라미터화된 쿼터모드 승급- 은 제1 모듈러 표현의 최상위 비트 위치임 -,에 의해 파라미터화된 센터모드 승급 및 에 의해 파라미터화된 포스모드 승급.
제1 수학적 승급은 에 의해 파라미터화된 마스킹 값에 대한 쿼터모드 승급이고, 제2 수학적 승급은 에 의해 파라미터화된 마스킹된 값에 대한 센터모드 승급이고, 제3 수학적 승급은 에 의해 파라미터화된 마스킹된 값에 대한 포스모드 승급이며, 여기서 는 제1 모듈러 표현의 최상위 비트 위치인 방법이 수행될 수 있다.
에 의해 파라미터화된 x에 대한 쿼터모드 승급은 고유 실수 로서 정의되고, 그래서, 이며, 에 의해 파라미터화된 x에 대한 센터모드 승급은 고유 실수 로 정의되고, 그래서, 이며, 에 의해 파라미터화된 x에 대한 포스모드 승급 고유 실수 로서 정의되며, 그래서, 인 방법이 수행될 수 있다.
제1 변환은 제1 수학적 승급의 결과를의 가장 가까운 배수로 반올림하는 단계- 는 제2 모듈러 표현의 최하위 비트 위치임 - 및 반올림의 모듈로 를 취하는 단계- 는 제2 모듈러 표현의 최상위 비트 위치임-를 더 포함하고, 제2 변환은 제2 수학적 승급의 결과를 의 가장 가까운 배수로 반올림하는 단계 및 반올림의 모듈로 를 취하는 단계를 더 포함하고, 제3 변환은 제3 수학적 승급의 결과를 의 가장 가까운 배수로 반올림하는 단계 및 반올림의 모듈로 를 취하는 단계를 더 포함하는 방법이 수행될 수 있다.
"복수의 미리 결정된 비중첩 서브 범위"는 2개의 동일한 크기의 서브 범위로 구성되고, 여기서 수치 서브 범위 식별자는 수치 0과 1로 구성된 그룹에서 선택되는 방법이 수행될 수 있다.
비밀 공유된 수치 서브 범위 식별자가 제2 모듈러 표현에서 비밀 공유된 값을 계산하는 데 사용하기 위해 제1 변환된 마스킹된 값과 제2 변환된 마스킹된 값 사이에서 선택하도록 협력하여 당사자 계산 시스템에 의해 사용되는 방법이 수행될 수 있다.
제1 모듈러 표현 및 제2 모듈러 표현은 실수의 고정 소수점 정수 표현인 방법이 수행될 수 있다.
방법은 비밀 공유된 값에 대한 다자간 계산을 수행하도록 구성된 SMPCS에 의해 수행될 수 있고, 여기서 SMPCS는 보안 네트워크 통신에서 복수의 당사자 계산 시스템을 포함한다. 이 방법은 비밀 공유된 값을 제1 모듈러 표현에서 제2 모듈러 표현으로 캐스팅하기 위한 것이고, 제1 모듈러 표현은 제1 모듈러 표현의 최상위 비트 위치 및 최하위 비트 위치에 의해 정의된 범위를 가지며, 제2 모듈러 표현은 제2 모듈러 표현의 최상위 비트 위치 및 최하위 비트 위치에 의해 정의된 범위를 가지며, 제2 모듈러 표현의 최상위 비트 위치는 제1 모듈러 표현의 최상위 비트 위치보다 더 크다.
일 실시예에 따르면, 각각의 당사자 계산 시스템은 제1 모듈러 표현에서 비밀 공유된 값의 각각의 비밀 지분을 저장한다. SMPCS는 마스킹 값이 당사자 계산 시스템 사이에 비밀 공유되도록 마스킹 값의 각각의 비밀 지분을 당사자 계산 시스템 각각에 전달한다. SMPCS는 마스킹 값이 존재하는 서브 범위의 표시에 대한 각각의 비밀 지분을 당사자 계산 시스템 각각에 전달하고, 서브 범위는 제1 모듈러 표현의 범위를 표현하는 미리 결정된 복수의 비중첩 서브 범위로부터 선택되어 서브 범위 표시가 당사자 계산 시스템 사이에 비밀 공유된다. SMPCS는 제1 변환에서 마스킹 값에 대해 적어도 제1 수학적 승급을 수행함으로써 마스킹 값을 변환된 마스킹 값으로 변환한다. SMPCS는 변환된 마스킹 값이 제2 모듈러 표현에서 당사자 계산 시스템 사이에 비밀 공유되도록 제2 모듈러 표현에서 변환된 마스킹 값의 각각의 비밀 지분을 당사자 계산 시스템 각각에 전달한다. 당사자 계산 시스템은 비밀 공유된 값의 비밀 지분 또는 마스킹 값의 비밀 지분을 노출하지 않고 비밀 공유된 값과 마스킹 값의 합계를 마스킹된 값으로 협력하여 계산하여 노출한다. SMPCS는 마스킹된 값에 대해 적어도 제2 수학적 승급을 수행함으로써 제2 변환에서 마스킹된 값을 제1 변환된 마스킹된 값으로 변환한다. SMPCS는 마스킹된 값에 대해 적어도 제3 수학적 승급을 수행함으로써 제3 변환에서 마스킹된 값을 제2 변환된 마스킹된 값으로 변환하며, 여기서 제1 수학적 승급, 제2 수학적 승급 및 제3 수학적 승급은 각각 서로 상이하다. 당사자 계산 시스템은 각각의 당사자 계산 시스템이 제1 변환된 마스킹된 값, 제2 변환된 마스킹된 값, 각각의 당사자 계산 시스템에 대해 서브 범위 표시의 각각의 비밀 지분, 및 각각의 당사자 계산 시스템에 대해 변환된 마스킹 값의 각각의 비밀 지분에 기초하여 제2 모듈러 표현에서 비밀 공유된 값의 각각의 비밀 지분을 계산하도록 제2 모듈러 표현에서 비밀 공유된 값을 협력하여 계산한다.
방법이 수행되고, 제1 변환, 제2 변환 및 제3 변환 각각은 관련된 수학적 승급의 결과를 에 투영하는 것을 포함하며, 여기서 은 제2 모듈러 표현의 최상위 비트 위치일 수 있다.
방법이 수행되고, "복수의 미리 결정된 비중첩 서브 범위"는 2개의 동일한 크기의 서브 범위로 구성되고, 여기서 수치 서브 범위 식별자는 수치 0과 1로 구성된 그룹에서 선택될 수 있다.
방법이 수행되고, 비밀 공유된 수치 서브 범위 식별자가 제2 모듈러 표현에서 비밀 공유된 값을 계산하는 데 사용하기 위해 제1 변환된 마스킹된 값과 제2 변환된 마스킹된 값 사이에서 선택하도록 협력하여 당사자 계산 시스템에 의해 사용될 수 있다.
방법이 수행되고, 제1 모듈러 표현 및 제2 모듈러 표현은 실수의 고정 소수점 정수 표현일 수 있다.
각각의 초기 모듈러 표현에 저장된 제1 비밀 공유된 값과 각각의 초기 모듈러 표현에 저장된 제2 비밀 공유된 값의 승산을 수행하기 위한 방법은 앞서 설명한 캐스팅 방법 중 어느 하나에 따라, 제1 비밀 공유된 값 및 제2 비밀 공유된 값 모두가 공통 모듈러 표현에 저장되도록 제1 비밀 공유된 값 및 제2 비밀 공유된 값 중 적어도 하나를 공통 모듈러 표현으로 캐스팅하는 단계; 및 공통 모듈러 표현에서 제1 비밀 공유된 값 및 제2 비밀 공유된 값에 대해 비버 승산을 수행하는 단계를 포함할 수 있다.
각각의 초기 모듈러 표현에 각각 저장되어 있는 복수의 비밀 공유된 값과 대응하는 복수의 정적 계수를 조합하는 방법은 앞서 설명한 캐스팅 방법 중 어느 하나에 따라, 복수의 비밀 공유된 값 모두가 공통 모듈러 표현에 저장되도록 복수의 비밀 공유된 값 중 적어도 하나를 공통 모듈러 표현으로 캐스팅하는 단계; 및 공통 모듈러 표현에 저장된 복수의 비밀 공유된 값과 대응하는 복수의 정적 계수에 대해 선형 조합을 수행하는 단계를 포함한다.
비밀 공유된 값에 대한 연속 함수를 평가하는 방법은 결정된 복수의 푸리에 급수로부터, 비밀 공유된 값에 기초하여 푸리에 급수를 선택하는 단계- 결정된 복수의 푸리에 급수 각각은 연속 함수의 도메인의 관련된 서브 구간에 대해 연속 함수를 근사하도록 구성됨 -; 선택에 기초하여, 앞서 설명한 캐스팅 방법 중 어느 하나에 따라, 제1 모듈러 표현으로부터 제2 모듈러 표현으로 비밀 공유된 값을 캐스팅하는 단계; 및 선택된 푸리에 급수를 사용하여 제2 모듈러 표현에서 비밀 공유된 값에 대한 연속 함수의 값을 근사화하는 단계를 포함할 수 있다.
시스템은 앞서 설명한 방법 중 어느 하나를 수행하도록 구성된 복수의 컴퓨터 시스템을 포함할 수 있다.
비일시적 컴퓨터 판독 가능 매체는 복수의 컴퓨터 시스템에 의해 실행될 때 복수의 컴퓨터 시스템이 앞서 설명한 방법 중 임의의 하나를 수행하게 하는 컴퓨터 코드로 인코딩될 수 있다.
도 1은 MPC 컨테이너의 개요를 예시한다.
도 2는 고정 소수점 표현에서 비트 사이의 관계를 예시한다.
도 3은 클래스 사이에서 표현을 캐스팅하기 위한 네 가지 캐스팅 연산을 예시한다.
도 4는 예제 입력 값에 대한 네 가지 캐스팅 연산 각각의 예시적 응용을 예시한다.
도 5는 승급 연산의 오프라인 페이즈에 대한 의사코드 구현을 예시한다.
도 6은 승급 연산의 온라인 페이즈에 대한 의사코드 구현을 예시한다.
도 7은 지분 리프레시 연산의 오프라인 페이즈에 대한 의사코드 구현을 예시한다.
도 8은 지분 리프레시 연산의 온라인 페이즈에 대한 의사코드 구현을 예시한다.
도 9는 모듈러 표현에서 2개의 비밀 공유된 값에 대한 비버 승산 연산의 의사코드 구현을 예시한다.
도 10은 비버 승산 연산의 개요를 예시한다.
도 11은 모듈러 표현에서 하나의 비밀 공유된 값과 하나의 공개 값에 대한 비버 승산 연산의 의사코드 구현을 예시한다.
도 12는 비버 승산 연산의 개요를 예시한다.
도 13은 클리닝 단계가 수행될 수 있는 예시적인 입력을 예시한다.
도 14는 ModReal 표현을 사용한 선형 조합 연산의 의사코드 구현을 예시한다.
도 15는 선형 조합 연산의 개요를 예시한다.
도 16a는 신뢰할 수 있는 딜러 모델에 대한 통신 채널을 도시한다.
도 16b 정직하지만 호기심 많은 모델(honest but curious model)에 대한 통신 채널이다.
도 17은 온라인 페이즈 동안 당사자 사이의 통신 채널의 개요를 예시한다.
도 18은 본 출원에 개시된 컴포넌트를 구현하도록 적절하게 구성될 수 있는 범용 컴퓨터 아키텍처를 예시한다.
도 2는 고정 소수점 표현에서 비트 사이의 관계를 예시한다.
도 3은 클래스 사이에서 표현을 캐스팅하기 위한 네 가지 캐스팅 연산을 예시한다.
도 4는 예제 입력 값에 대한 네 가지 캐스팅 연산 각각의 예시적 응용을 예시한다.
도 5는 승급 연산의 오프라인 페이즈에 대한 의사코드 구현을 예시한다.
도 6은 승급 연산의 온라인 페이즈에 대한 의사코드 구현을 예시한다.
도 7은 지분 리프레시 연산의 오프라인 페이즈에 대한 의사코드 구현을 예시한다.
도 8은 지분 리프레시 연산의 온라인 페이즈에 대한 의사코드 구현을 예시한다.
도 9는 모듈러 표현에서 2개의 비밀 공유된 값에 대한 비버 승산 연산의 의사코드 구현을 예시한다.
도 10은 비버 승산 연산의 개요를 예시한다.
도 11은 모듈러 표현에서 하나의 비밀 공유된 값과 하나의 공개 값에 대한 비버 승산 연산의 의사코드 구현을 예시한다.
도 12는 비버 승산 연산의 개요를 예시한다.
도 13은 클리닝 단계가 수행될 수 있는 예시적인 입력을 예시한다.
도 14는 ModReal 표현을 사용한 선형 조합 연산의 의사코드 구현을 예시한다.
도 15는 선형 조합 연산의 개요를 예시한다.
도 16a는 신뢰할 수 있는 딜러 모델에 대한 통신 채널을 도시한다.
도 16b 정직하지만 호기심 많은 모델(honest but curious model)에 대한 통신 채널이다.
도 17은 온라인 페이즈 동안 당사자 사이의 통신 채널의 개요를 예시한다.
도 18은 본 출원에 개시된 컴포넌트를 구현하도록 적절하게 구성될 수 있는 범용 컴퓨터 아키텍처를 예시한다.
다음 설명에서, 개시된 주제가 실시될 수 있는 다양한 실시예에 대한 참조가 이루어진다. 일부 실시예는 하나의/일/다른 실시예 등의 표현을 사용하여 설명될 수 있으며, 그 다수의 경우가 반드시 동일한 실시예를 참조하는 것은 아니다. 이러한 경우와 관련된 특정 특징, 구조 또는 특성은 달리 언급되지 않는 한 다양한 실시예에서 임의의 적절한 방식으로 조합될 수 있다. 예로서, 본 개시는 실시예에 대한 다수의 옵션 또는 가능성의 세트 또는 목록을 설명할 수 있고, 이러한 경우, 본 개시는 세트 또는 목록에 있는 항목의 명확하게 실현 가능한 모든 조합 및/또는 순열을 구체적으로 고려한다.
1 개요
본 개시에서, 다자간 연산(MPC) 설정에서 모듈러 정수 표현을 사용하여 높은 수치 정밀도로 실수 산술을 수행하기 위한 새로운 기술을 제시한다. 특히, 제1 모듈러 표현에 저장된 비밀 공유된 값을 제2 모듈러 표현으로 캐스팅하는 방법을 개시한다. 이전 연구와 달리, 개시된 해결책은 선형 및 로지스틱 회귀와 같은 기계 학습 기술에 중요한 효율성 및 보안을 희생하지 않고 오류를 유리하게 제거한다.
MPC에 대해 전체 임계값 보안 모델을 채택하고 계산을 오프라인 및 온라인 페이즈로 분할한다. 오프라인 페이즈(입력 데이터에 독립적)는 신뢰할 수 있는 딜러 또는 정직하지만 호기심 많은 딜러가 수행할 수 있다. 이 페이즈의 더 강력한 모델과 검증 가능성은 불확정 전송(oblivious transfer) 및 잘라내기 및 선택(cut-and-choose)과 같은 표준 기술을 통해 달성할 수 있다. 온라인 페이즈에서는 결과의 추가 지분을 계산한다.
우리의 연구에서는 이전 연구에서와 동일한 지분 정의를 유지하지만, 오버플로우를 완전히 제거하는(M/q ≤ 1/2인 한) 작은 항을 추가하여 트리플릿(마스킹 값) 정의를 수정한다. 이 방법은 온라인 페이즈 동안 단일 통신 라운드를 유지하고 전체 실행 시간을 보존하는 몇 가지 이진 연산만을 추가한다. 이 새로운 방법은 항상 정확하고, 보안은 무조건적이며, 임의의 수의 당사자에게 적용된다.
간단히 요약하면 ABY3의 오버플로우는 예를 들어 제산 연산 동안 랜덤 마스크 r' mod q(오프라인 페이즈 동안 선택됨)와 마스킹된 값 a = x'-r' mod q에서 작은 평문 x∈를 재구성해야 한다는 사실에서 유래된다. 후자는 mod q 클래스와 호환되지 않는 제산 연산을 적용하기 전에 온라인 페이즈 동안 노출된다. 그렇게 하기 위해, r'과 a 모두는 암시적으로의 정수로 승급된다. 보다 정확하게는 ABY3 § 5.1.1, 5.1.2에서 이러한 2개의 암시적 중심 승급(implicit centered lift)은 2개의 연산 동안 발생한다: 1) 트리플릿의 정의에서, r = r'/2d, 여기서 r'∈/q는 랜덤임 및 2) 노출에서, x'-r'∈/q 및 로컬 계산 (x'-r')/2d 연산. 이 두 승급은 a-r'이 실수에 대해 x'와 같다는 추가 가정과 항상 호환되는 것은 아니다(동등성은 작은 확률로 +q 또는 -q 만큼 상이할 수 있음). 새로운 설정에서는 무조건적인 보안을 보장하는 의 전체 범위를 보존한다. 그러나, 그룹 /q를 2개의 절반으로 분할하고, 오프라인 페이즈 동안 r'을 함유하는 절반 그룹을 인코딩하는 추가 비트를 비밀 공유하고 이 비밀 공유된 비트를 동일한 트리플릿에 추가한다. 각 절반 그룹은 -r'에 대한 상이한 승급에 대응하므로 당사자는 두 승급을 모두 계산한 다음 공유된 비트를 사용하여 온라인 페이즈 동안 무의식적으로 올바른 것을 선택할 수 있다.
2. 평문 값 및 비밀 지분의 표현
2.1 부동 소수점 및 고정 소수점 표현
이 표현은 m과 e가 모두 평문 값 x에 의존한다는 점에서 명확히 데이터 의존적이다. 특히, 지수 e의 값은 정확하게 이다. 부동 소수점 표현은 지수 를 결정하기 위해 의 크기에 대한 정보가 필요하기 때문에, 이는 데이터 의존적이고, 이 값 e가 다자간 계산 이전에 컴파일러에 의해 알려져 있지 않으므로, MPC 친화적이지 않다.
다자간 계산을 시작하기 전에 컴파일러의 관점에서 지수는 공개로 고려되거나 처리될 수 있는 반면 가수는 비공개로 처리될 수 있다. 컴파일러는 계산 전에 비밀 번호 를 알지 못하기 때문에, 컴파일러가 에 대해 위의 정규화를 보장하는 정확한 를 결정하는 것은 불가능하다. 이 표현은 다음 두 예에 나타난 바와 같이 쉽게 오버플로우 또는 언더플로우될 수 있기 때문에 적합하지 않다:
오버플로우(overflow). 다음 2개의 수(이진수)를 승산한다고 가정한다 : x = 10.1(2) 및 y = 10(2). 이 둘 모두의 지수는 2이다. 그러나, 결과의 미리 계산된 공개 지수가 여전히 2인 경우, x x y = 101(2)이기 때문에 계산이 오버플로우될 것이다. 따라서, 오버플로우를 피하려면 적어도 3의 지수가 필요하다.
언더플로우(underflow). 가수의 비트 수가 바운드(bound)되어 있고(예를 들어, 4 비트) x2 = 1.1(2) Υ 1.1(2) = 10.01(2)를 계산하려는 시나리오를 가정한다. 사전 계산된 지수가 2 대신 3인 경우, 이 제한으로 인해 정밀도가 손실되고, 즉, 결과는 10.01(2) 대신 010.0(2)이 될 것이다.
따라서 우리는 프로그램의 각 값에 대한 지수에 대해 충분히 좋은 바운드를 유지(book-keep)하는 중간 방법을 채택한다. 이 바운드는 특수 목적 컴파일러를 통해 특정 통계 분석을 통해 정적으로 추정할 수 있다. 이 방법은 비밀 값 자체를 노출하지 않고 비밀 값에 대한 공개 바운드(public bound)를 가능한 정확하게 추적한다. 이러한 관점에서 우리의 실수 표현은 고정 소수점 수치와 부동 소수점 수치 둘 모두의 특징을 조합함으로써 혼성적이다.
컴파일러의 관점에서 지수는 공개로 고려될 수 있는 반면 가수는 비공개로 고려될 수 있다. 그러나 컴파일러는 비밀 번호 x를 확실히 알지 못하기 때문에 컴파일러가 m에 대한 위의 정규화를 보장하는 정확한 지수 e를 결정하는 것은 불가능하며, 상부 바운드만을 결정할 수 있다.
2.2 실수의 혼성 평문 표현
고정 소수점(정수) 표현으로 실수를 표현하기 위한 다음 파라미터를 소개한다.
파라미터 및 는 적용될 것으로 예상되는 데이터의 통계 분석을 기초로 컴파일러에 의해 결정될 수 있다. 실제로 제한 인자는 수치 윈도우의 크기 ρ이다(즉, 가수 m의 비트 수; 동등하게, 컴파일러에 의해 유지되는 지수 바운드와 유지될 소수부의 이진 자릿수의 수치 사이의 차이). ρ가 작을수록 백엔드에서 산술이 더 효율적이다. 따라서 정적 분석은 다음 2개의 조건을 보장해야 한다:
- 정적으로 결정된 바운드는 오버플로우를 피하기에 충분하다.
- 바운드는 정밀도 손실을 피하기 위해 가능한 정밀하다(ρ에 대한 제한이 주어짐).
예를 들어, x = 1은 = 1이고 x = 3은 = 2이다. 클래스는 단계 로 엄격하게 와 사이의 모든 실수(이 경우 유리수)를 나타냄을 유의한다. 는 종종 음수이지만(정확한 정수부와 소수부로부터의 몇 비트의 정밀도를 계산하기를 원할 때), 일반적으로는 그럴 필요는 없다는 것을 유의한다. 음수 는 소수부에 대한 비트를 고려하고 있음을 의미한다. 는 본질적으로 수치를 나타내는 데 얼마나 많은 비트가 필요한 지를 알려준다. 음수 가 클수록 소수점 자릿수에 대한 정밀도가 더 높아지고 이를 표현하는 데 더 많은 비트가 필요하다.
예 1. = 40 및 = -10에 대해, ρ = 40 - (-10) = 50이다. 이 경우, 최하위 비트는 위치 -10에 있고 최상위 비트는 위치 39에 있으며 최하위 비트 비소수 비트는 위치 0에 있다.
예 2. = -2 및 = 5에 대해, 수치는 1011.1(2)과 같은 이진수로 표현되고, 에서 01011.10(2)로서 표현된다. 이 경우, 2개의 소수 비트는 비트 위치 -2 및 -1을 점유하는 반면 비소수 비트는 위치 0에서 4를 점유한다. 주어진 실수는 많은 상이한 평문 클래스에 속할 수 있음에 유의한다(즉, 상기 예에서 11.5는 에 속하지만, 이는 또한 및 에도 속한다).
평문 오버플로우(Plaineext overflow). 세트 는 그룹도 링도 아니며; 특히 가산, 감산, 승산 등과 같은 실제 산술 연산 하에서는 안정적이지 않다. 예를 들어, 수치 은 에 속하지만 , 및 모두 바운드 를 초과한다. 보다 일반적으로, 수학식의 결과가 출력 평문 세트의 를 초과하는 임의의 경우에 평문 오버플로우를 호출한다.
평문 오버플로우의 위험을 피하기 위해 가 적어도 인 것을 보장한다. 그러나, 변수의 파라미터 및 는 컴파일 시간에(값 의 실제 값을 알기 전에) 지정되어야 하며, 위험을 완화하기 위해, 를 가능한 모든 값의 상부 바운드가 되도록 설정할 필요가 있다. 이는 변수에 실제 값을 할당할 때 오버플로우가 발생하지 않는 것을 보장한다. 이는 또한 실제(또는 부동 소수점) 정밀도가 항상 고정 소수점 정밀도 보다 더 작다는 것을 의미한다.
평문 언더플로우. 고정 지수를 너무 크게 선택하면 평문 정보를 완전히 손실할 수 있다. 예를 들어, 및 , 인 경우, 이때, 부동 소수점 표현에 대해 1개의 십진 자릿수는 곱의 가수를 나타내기에 충분하고 계산된 지수는 이다.
반면, 고정 소수점 세계에서 입력의 평문 파라미터가 정밀도의 4개의 십진 자릿수에 대응하는 로 설정된 경우, 일반적인 실수는 곱 가 두 입력 의 합이라고 가정하고, 여기서, 동일한 14 비트 고정 소수점 정밀도의 결과를 예상하며, 그래서, 파라미터 를 사용하는 것이며: 이 경우 결과는 다음과 같이 계산되고: , 이는 결과를 완전히 손실하게 되는 것이다. 이러한 경우를 평문 언더플로우라고 하며, 이 예에서 사실상 14 비트의 고정 소수점 정밀도를 갖고 있지만 계산된 결과는 부동 소수점 관점에서 완전히 잘못된 것이다.
2.3 ModReal - 실수의 모듈러 표현
ModReal 표현은 예를 들어 64 비트 또는 128 비트 정수를 기초로 할 수 있는 모듈러 정수 표현 실수 산술을 나타낸다. 이 표현은 소수점 후방에 고정된 수의 이진 자릿수를 갖는 실수의 고정 소수점 표현으로 컴퓨터 프로세서의 고정 소수점 단위를 사용할 수 있다.
다자간 계산에서 보안을 달성하기 위해 특정 크기의 평문 값은 전형적으로 더 큰 파라미터를 가진 값의 클래스에 속하는 값을 공유하기 위해 비밀 공유된다. 또한 비밀 지분은 더 큰 클래스의 값으로 마스킹된다. 이러한 더 큰 비밀 지분 클래스는 두 정수 및로 파라미터화된다. 모든 경우에 평문 최하위 위치와 일치하기 때문에 자발적으로 동일한 기호 를 사용하지만; 그러나, 비밀 공유된 데이터에 사용되는 파라미터 는 전형적으로 대응 평문에 사용되는 보다 크다.
예. 및 에 대해, 수치 x = 11.5 = 12 + 1 + 2 + 8은 이진수로 1011.1로 표현되고 에서 001011.10으로 표현된다. 반대 수 x' =-11.5 = 52.5 = 1/2+ 4 + 16 + 32 mod 64는 이진수로 110100.1로 표현되고, 에서 110100.10으로 표현된다. x와 x'의 정수부의 비트가 반대임에 유의한다. 제1 비트는 수치의 부호를 제공하고: 제1 비트가 0이면, 이때, 수치는 양수이고, 그렇지 않으면 음수이다.
2.4 ModReal 수학적 승급
비밀 지분의 개념을 정의하기 전에, 전체에 걸쳐 사용될 (실수)로의 토러스 (양의 정수 )의 여러 자연 승급을 제시한다. 여기에서, 승급은 자연 전사함수 의 섹션을 의미한다. 정수 로 파라미터화되는 로부터 로 진행하는 4가지 수학적 승급을 다음과 같이 정의한다:
2.5 지분의 모듈러 표현
모듈러 표현은 비밀 공유된 실수의 지분을 나타내기 위해 유리하게 사용될 수 있다.
MPC 지분의 비모듈러 표현에 비교하여 모듈러 표현의 이점이 예를 통해 예시될 수 있다.
예 1. 먼저 위의 비모듈러 클래스 를 사용한 각 지분의 비모듈러 표현의 경우를 고려한다. 평문 정수 42는 에서 [33, 97, -88]로 또는 에서 [164301, -806845, 642586]로 세 당사자 사이에서 비밀 공유될 수 있다. 두 경우 모두, 정확한 평문 정수를 재계산하려면 세 가지 지분이 모두 필요하다. 그러나, 제1 시나리오에서 처음 두 지분의 합은 에 비교하여 상당히 크며, 평문 정수가 양수라는 강한 표시를 제공한다. 이 문제는 더 큰 를 사용하지만 더 큰 표현을 대가로 하는 제2 예에서 완화된다.
예 2: 다음으로 동일한 정수 42가 에서 [33, 97, 40]으로서 세 당사자 사이에 비밀 공유된 것으로 고려한다. 정확한 정수 평문을 재계산하기 위해 3개의 지분이 모두 필요하지만, 이번에는이 그룹이고 균일한 분포를 가지므로, 처음 2개의 지분은 평문 값에 대한 정보를 전혀 제공하지 않는다. k 중 k-1 당사자의 연합에 대해 이러한 지분의 보안은 정보 이론적이다.
3 캐스팅 연산
모듈러 정수 형식으로 표현된 비밀 공유된 실수에 대한 가산 및 승산과 같은 기본 산술 연산을 지원하기 위해, 먼저 두 피연산자가 호환되는 클래스(평문 및 비밀 지분 클래스)에서 캐스팅될 수 있다는 것을 보장할 필요가 있다. 따라서, 캐스팅 연산이 주어진 파라미터 세트에 대한 표현을 다른 파라미터 세트에 대한 표현으로 효율적으로 변환할 수 있게 하는 것이 중요하다. 이 섹션에서, 주어진 클래스 로부터의 모듈러 지분의 세트를 상이한 파라미터 , 를 갖는 다른 클래스 로부터의 다른 모듈러 지분 세트로 변환하는 방식을 설명한다. 캐스팅 연산은 파라미터 및를 감소시키거나 증가시키는지 여부에 따라 통신이 필요하거나 필요하지 않을 수 있다.
도 3은 파라미터 및 중 하나를 증가시키거나 감소시키는지 여부에 따라 클래스 사이에서 표현을 캐스팅하기 위한 네 가지 캐스팅 연산을 예시한다. 이 네 가지 캐스팅 연산은 확장(Extend), 반올림(Round), 투영(Project) 및 승급(Lift)을 포함한다(승급은 앞서 설명한 네 가지 자연 승급(natural lift)과 구별됨).
도 4는 예제 입력 값에 대한 네 가지 캐스팅 연산 각각의 예시적 응용을 예시한다. 예시된 예에서, 평문 값 x = 1011.1(2)에 대한 모듈러 지분은 에서 모듈러 지분 x1 = 001000.10 및 x2 = 000011.00로 두 당사자 사이에서 비밀 공유된다. 이 예는 지분 x1가 상이한 파라미터 또는를 사용하여 다른 모듈러 수치로 캐스팅되는 방식을 보여준다. 단순화를 위해 연산은 스칼라로 표시되지만 보다 일반적으로 이러한 모든 연산은 임의의 벡터/행렬/텐서의 각 계수에 대해 독립적으로 수행된다.
확장((): 확장 캐스팅 연산은 각 입력 지분에 추가적 최하위 비트를 추가하고 새로운 최하위 비트를 표현의 새로운 비트를 채우기 위해 새로운 표현에서 0으로 설정한다. 확장 연산에는 당사자 사이의 통신이 필요하지 않다.
반올림(): 반올림 캐스팅 연산은 각 입력 지분에서 최하위 비트를 삭제한다. 반올림 캐스팅 연산은 지분을 보유한 당사자 사이의 통신 여부에 무관하게 구현될 수 있다. 반올림 캐스팅 연산이 통신 없이 구현되는 경우 각 당사자는 그 지분으로부터 로컬로 최하위 비트를 제거하기 위해 반올림한다. 이 구현은, 캐리 관련 오류(carry-related error)로 인해 평문의 최하위 비트가 정확하다는 것을 보장하지 않는다. 그러나, 반올림 캐스팅 연산은 당사자 사이의 통신과 함께 구현되어 이 올바른 평문 값에 비밀 지분이 추가되는 것을 보장할 수 있다. ShareRefresh라 지칭되는 정밀도를 보존하는 반올림 캐스팅 연산의 구현이 아래에 표시되어 있지만 이는 런타임, 메모리 및 통신 측면에서 더 비싸다.
승급(): 승급 캐스팅 연산은 당사자 사이의 통신은 물론 오프라인 및 온라인 페이즈가 필요하다. 결과를 시기마다 100% 정확하게 계산하는 승급 캐스팅 연산의 구현이 아래에 제시되어 있다. 이 구현은 연산이 확률적이고 실패 확률이 0이 아닌 이전 작업을 개선한다.
아래에서, 일 실시예에 따른 그 온라인 및 오프라인 페이즈를 갖는 승급 캐스팅 연산의 구현을 설명한다. 를 반드시 가정하지는 않음으로써 약간 더 일반적인 방식으로 이를 수행한다. 이는 종종 캐스트 연산 승급 및 지분 리프레시를 2개의 별개의 연산 대신 통신이 필요한 단일 작업으로 병합할 수 있다는 실용적인 이점을 갖는다.
3.1 정수 모듈러 표현에서 비밀 지분에 대한 승급 캐스팅 연산의 구현
이 섹션에서는 제1 모듈러 클래스 에서 지분 세트를 제2 모듈러 클래스 의 다른 지분 세트로 변환하거나 캐스팅하는 방식을 설명하고, 여기서 제2 클래스의 는 제1 클래스의 보다 크고, 여기서 제2 클래스의 는 제1 클래스의 보다 더 작거나 같거나 더 클 수 있다. 정수 모듈러 표현의 비밀 지분에 대한 이 특정 캐스트 작업을 승급(앞서 설명된 보다 일반적인 자연 승급과 구별하기 위해 굵은 글씨로 표시됨)라 지칭한다. 일 실시예에서, 승급 연산은 신뢰할 수 있는 딜러를 포함하는 다자간 계산을 위한 시스템에서 부분적으로 오프라인(당사자 사이의 통신 없음) 및 부분적으로 온라인(당사자 사이의 통신 동반)으로 실행된다.
일 실시예에 따르면, 승급 연산은 다음과 같이 마스킹되고 노출되는 비밀 공유된 MPC 컨테이너(위의 배경기술 섹션에서 소개된 것과 같음을 상기)에서 동작한다:
정의 4.
선택 변수 또는 비트를 다음과 같이 정의한다:
또는 더 간결하게
이 수학식을 다음과 같이 논리적으로 다시 쓸 수 있으며:
에 대한 지분 모듈로 를 얻기 위해(제2 클래스로의 의 마스킹 해제), 자연 전사함수 를 통해 토러스 로 상기 등식을 투영할 수 있다. 신뢰할 수 있는 딜러는 의 이미지 를 미리 계산하고 비밀 공유할 수 있기 때문에(에서), 당사자는 다음에 대한 지식 없이 를 복구할 수 있고:
이는 더 구체적으로 다음과 같이 수행될 수 있다. 에 대해, 라 한다. 당사자는 노출된 마스킹된 값 을 기초로 를 결정할 수 있다. 신뢰할 수 있는 딜러는 를 미리 계산하고 당사자 사이에서 이를 로 비밀 공유한다. 의 비밀 공유는 <에서 수행될 수 있지만, 의 이진 표현의 최상위 비트를 제외한 모두는 항상 0임을 유의한다. 따라서, 당사자가 와 의 지분에 대한 승산을 수행하기 위해서는 신뢰할 수 있는 딜러가 더 작은 모듈러 클래스 를 사용하여 비트 를 비밀 공유하는 것으로 충분하다.
요약하자면, 신뢰할 수 있는 딜러는 다음을 수행할 필요가 있다:
3.1.1 승급 연산의 의사코드 구현
도 5는 일 실시예에 따른 승급 연산의 오프라인 페이즈의 의사코드 구현을 예시한다. 도 6은 이 실시예에 따른 승급 연산의 온라인 페이즈의 의사코드 구현을 예시한다.
앞서 설명한 roundTo 함수에 추가하여, 도 5 및 도 6에 예시된 승급 연산은 입력으로 클래스의 값과 명세(specification)를 취하고 클래스의 공급된 명세의 표현에서 입력 값에 합산하는 복수의 비밀 지분을 출력하는 secretShares 함수를 활용한다.
3.2 ShareRefresh 연산
다음과 같이 다시 쓸 수 있음을 알 수 있다:
일 실시예에서, 지분 리프레시 연산은 부분적으로 오프라인(당사자 사이의 통신이 없음) 및 부분적으로 온라인(당사자 사이의 통신 있음)으로 실행된다. 도 7은 일 실시예에 따른 지분 리프레시 연산의 오프라인 페이즈의 의사코드 구현을 예시한다. 도 8은 이 실시예에 따른 지분 리프레시 연산의 온라인 페이즈의 의사코드 구현을 예시한다.
4 비버 승산(Beaver Multiplication)
4.1 ModReal 백엔드에 대한 승산
4.2 파라미터 계산 수학식
다음 수학식은 다음과 같은 비버 승산 연산의 도표 및 설명과 함께 사용되는 다양한 파라미터의 계산을 보여준다:
4.3 모듈러 백엔드에서의 비버 승산(비밀-비밀)
도 9는 일 실시예에 따른 모듈러 표현으로 2개의 비밀 공유된 값에 대한 비버 승산 연산의 의사코드 구현을 예시한다. 도 10은 비버 승산 연산의 개요를 예시한다.
4.4 모듈러 백엔드에서의 비버 승산(비밀-공개)
도 11은 일 실시예에 따른 모듈러 표현의 하나의 비밀 공유된 값과 하나의 공개 값에 대한 비버 승산 연산의 의사코드 구현을 예시한다. 도 12는 비버 승산 연산의 개요를 예시한다.
5 선형 조합(Linear Combination)
c(1),…,c( n )이 배정도 부동 소수점 수치로 주어진 공개 실수라 하고, ,…,이 대응 파라미터 , ,를 갖는 비밀 지분이라 한다. , , 및 라 하고, 여기서 소수(prime) p의 경우 은 정수 m∈의 p-adic 평가를 나타낸다. 실제로 이러한 정수는 64 비트 부호 있는 정수로 표현될 수 있다. 공개 벡터
목표는 다음의 비밀 지분을 계산하는 것이며:
대응 파라미터 및 를 사용한다. 우리는 입력 지분이 부동 소수점 표현 또는 모듈러 표현에서 동시에 있다고 가정한다. 일 실시예에서, 혼합 입력은 지원되지 않으며 명시적 캐스트가 필요하다. 그러나 출력 백엔드는 입력 백엔드와 상이할 수 있다(예를 들어, 부동 소수점 표현의 입력과 모듈러 표현의 출력을 갖는 것은 괜찮음).
5.1 디폴트 출력 파라미터
출력에 이용 가능한 수 있는 평문 파라미터가 없는 경우, 컴파일러의 통계 분석기는 다음 전파 공식을 사용하여 결과의 통계를 추정할 수 있다: 모든 평문이 평균 및 분산 , 의 독립변수인 경우, 이때, 출력의 평균 및 분산은 다음과 같다:
마지막 공식은 독립 변수에 대해서만 참임을 유의한다. 일 실시예에서, 합계의 분산에 대해 다음 추정치를 사용한다:
Var(X + Y) = Var(X) + Var(Y) + 2Cov(X, Y) ≤
이 전파 공식을 기초로, 컴파일러는 이미 출력 컨테이너에 대해 합리적인 , 를 추론한 다음 계산의 정확성과 보안을 보장하기 위해 를 할당할 수 있다. 컴파일러가 독립성을 가정할 수 없는 경우, 예를 들어 가짜 값에 대한 시뮬레이션과 같은 다른 기술을 사용하여 결과 통계를 추정해야 한다.
5.2 클리닝 단계
일 실시예에서, 선형 조합을 실행하기 전에 컴파일러는 다음과 같이 선형 조합 입력을 사전 처리한다: 모든 1 ≤ i ≤ n에 대해,
- 다음과 같은 모든 인덱스 i를 제거한다:
. 이는 이 항이 무시 가능하고 버릴 수 있음을 의미한다. 항을 하나씩 동적으로 제거하는 경우, 위 부등식의 우측은 변경되지 않을 것임에 유의한다(제거된 항은 최대값과 동일한 plsb을 가질 수 없음).
도 13은 클리닝 단계가 수행될 수 있는 예시적인 입력을 예시한다. 예에서, 라벨 1인 간격은 pmsb 위치가 나머지 간격의 최대 plsb 위치의 좌측에 있기 때문에 무시할 수 있으므로 버려야 한다.
- 다음 부등식을 보장한다
- 다음 부등식을 보장한다
5.3 선형 조합 빌트인: ModReal 경우
- 입력의 ModReal 지분 클래스 로의 승급은 개별 스칼라 곱 이 오버플로우 없이 계산될 수 있고 충분한 정밀도를 유지할 수 있는 것(후자는 정확하게 정의될 것임)을 보장한다.
- 모든 개별 항(스칼라 곱; 이들 중 n개가 있음)의 모든 비밀 지분(이들 중 k개가 존재)의 합계는 오버플로우 없이 이 클래스에서 계산될 수 있다(후자는 정확하게 정의될 것임).
이는 다음과 같은 디폴트 파라미터 선택이 합리적이게 한다:
각 1 ≤ i ≤ n에 대해, i번째 입력 컨테이너는 파라미터 및 를 사용하여 ModReal 수치로 먼저 캐스팅된다. 일 때, 이는 승급 트리플릿(컨테이너의 마스크 λ 및 2개의 임시 미리 계산된 데이터 b, ν 수반)이 필요하다. 그 다음, 에 의한 승산은 파라미터 및 의 직렬화 가능한 값을 산출하며, 이는 다른 값과 누적된다. 마지막으로, 합계는 출력 파라미터로 캐스팅된다.
도 14는 일 실시예에 따른 ModReal 표현을 사용한 선형 조합 연산의 의사코드 구현을 예시한다. 도 15는 선형 조합 연산의 개요를 예시한다.
6 실수 값 함수의 푸리에 근사
이는 다음의 변환을 산출한다:
6.1 푸리에 급수 평가: ModReal 경우
그 다음, 온라인 계산은 다음과 같이 수행된다:
결과의 평문 파라미터를 결정하기 위해 전체 계산이 비트의 최대 수치 윈도우 내에서 발생한다는 제약을 부과한다(예를 들어, 백엔드에서 64 비트 정수만을 사용하기를 원하는 경우 ).
이는 계산의 출력에 대한 최대 수치 윈도우를 결정할 필요가 있음을 의미한다. 이 부등식이 유지되어야 하는 이유를 찾기 위해, 곱의 각 승수에 대해 비트의 정밀도가 필요한 경우 다음과 같고,
또한, 컴파일러는 푸리에 급수 빌트인에 대한 작용 파라미터를 제공할 필요가 있다:
작용 파라미터를 결정하기 위해, 최하위 비트 위치를 결정하는 것으로 시작한다(충분한 정밀도를 보장하기 위해 이 작업을 수행함). 다음 공식은 합리적이다:
이 선택에는 몇 가지 정당성이 필요하다: 파라미터 는 의 계산에서 크기 의 수치 윈도우를 갖는 것을 보장한다. 실제로, 해당 수량의 최상위 비트 위치는 이므로 소수부에 적어도 이진 자릿수가 필요하다. 그러나 계산은 비버에 대한 두 입력 모두 동일한 수치 윈도우를 필요로 한다고 가정하고, 즉, 맵으로 볼 수 있는 승산을 갖는다.
7 통신 모델
도 16a 및 도 16b는 다자간 계산(MPC)의 오프라인 페이즈 동안 계산 시스템 사이의 통신 채널의 개요를 예시한다. 도 16a는 신뢰할 수 있는 딜러 모델에 대한 통신 채널을 보여주고 도 16b는 정직하지만 호기심 많은 모델에 대한 채널을 보여준다. 신뢰할 수 있는 딜러 모델에서 딜러는 비공개 채널을 통해 각 당사자에게 수치 마스킹 데이터(트리플릿이라고도 지칭됨)를 전송한다. 정직하지만 호기심 많은 모델에서 당사자는 이들 모두 사이에 공유된 비공개 브로드캐스트 채널에 액세스할 수 있으며 각 당사자는 딜러와 추가 비공개 채널을 공유한다. 비공개 채널은 점선으로 표시된다. 신뢰할 수 있는 딜러 모델에서, 딜러는 마스킹 데이터를 생성하고 비공개 채널을 사용하여 각 당사자에게 데이터의 각각의 지분을 전송한다(단방향 화살표). 정직하지만 호기심 많은 모델에서 당사자는 수치 마스킹 데이터 생성을 위해 협력하며 이를 위해서 딜러가 액세스할 수 없는 이들 사이의 추가 비공개 브로드캐스트 채널이 필요하다. 세 당사자만 표시되지만 모델은 임의의 수의 당사자로 확장될 수 있다.
도 17은 일 실시예에 따른 온라인 페이즈 동안 당사자 사이의 통신 채널의 개요를 예시한다. 당사자는 실선으로 표시된 공개 브로드캐스트 채널을 통해 마스킹된 값을 전송하고 수신한다. 온라인 페이즈는 신뢰할 수 있는 딜러와 정직하지만 호기심 많은 모델 둘 모두에서 동일하며 딜러는 존재하지 않는다.
본 출원에 개시된 방법은 일부 경우에 신뢰할 수 있는 딜러 모델과 관련하여 설명되지만 이러한 방법은 정직하지만 호기심 많은 모델에서도 사용할 수 있다.
8 컴퓨터 구현
방법, 프로세스, 애플리케이션, 프로그램, 모듈, 엔진, 기능 등으로 지칭될 수 있는 본 출원에 개시된 실시예의 컴포넌트는 비일시적 컴퓨터 판독 가능 매체 상의 명령어로서 구현된 특수 목적 소프트웨어를 사용하여 하나 이상의 컴퓨터 또는 컴퓨터 시스템을 구성함으로써 구현될 수 있다. 하나 이상의 컴퓨터 또는 컴퓨터 시스템은 하나 이상의 독립형, 클라이언트 및/또는 서버 컴퓨터이거나 이를 포함할 수 있으며, 이는 선택적으로 네트워크화된 컴퓨터 시스템으로서 유선 및/또는 무선 네트워크를 통해 네트워크화될 수 있다.
특수 목적 소프트웨어는 그 하나 이상의 인스턴스를 포함할 수 있으며, 이들 각각은 예를 들어 클라이언트 소프트웨어, 서버 소프트웨어, 데스크탑 애플리케이션 소프트웨어, 앱 소프트웨어, 데이터베이스 소프트웨어, 운영 체제 소프트웨어 및 드라이버 소프트웨어 중 하나 이상을 포함할 수 있다. 클라이언트 소프트웨어는 시스템을 하나 이상의 서버 및/또는 데이터베이스에 대한 요청을 전송하고 정보를 수신하는 클라이언트로 작동하도록 구성된다. 서버 소프트웨어는 시스템을 하나 이상의 클라이언트에 대한 요청을 수신하고 정보를 전송하는 하나 이상의 서버로 작동하도록 구성할 수 있다. 데스크탑 애플리케이션 소프트웨어 및/또는 앱 소프트웨어는 데스크탑 및/또는 휴대용 컴퓨터에서 데스크탑 애플리케이션 또는 앱을 작동할 수 있다. 데이터베이스 소프트웨어는 데이터 및/또는 정보를 저장하고 데이터를 검색, 저장 및/또는 업데이트하기 위한 클라이언트 소프트웨어의 요청에 응답하기 위해 시스템에서 하나 이상의 데이터베이스를 작동하도록 구성될 수 있다. 운영 체제 소프트웨어 및 드라이버 소프트웨어는 플랫폼으로서 운영 체제 및/또는 컴퓨터 또는 컴퓨터 시스템의 다른 소프트웨어에서 사용하기 위한 하드웨어 또는 프로세스에 대한 인터페이스로서 드라이버를 제공하도록 구성될 수 있다. 예로서, 본 출원에 개시된 실시예에 의해 생성, 사용 또는 작동되는 임의의 데이터는 컴퓨터 시스템에서 작동하는 데이터베이스에 저장, 액세스 및/또는 수정될 수 있다.
도 18은 다양한 실시예에 따라 개시된 컴포넌트를 구현하도록 적절하게 구성될 수 있는 일반적인 컴퓨터 아키텍처(1800)를 예시한다. 컴퓨팅 아키텍처(1800)는 컴퓨터(1801), 네트워크(1818), 및 하나 이상의 원격 컴퓨터(1830)와 같은 다양한 공통 컴퓨팅 요소를 포함할 수 있다. 그러나, 본 출원에 개시된 실시예는 범용 컴퓨팅 아키텍처(1800)에 의한 구현으로 제한되지 않는다.
도 18을 참조하면, 컴퓨터(1801)는 예를 들어 서버, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터 또는 모바일 컴퓨팅 디바이스와 같은 다양한 범용 컴퓨터 중 임의의 것일 수 있다. 컴퓨터(1801)는 처리 유닛(1802), 시스템 메모리(1804) 및 시스템 버스(1806)를 포함할 수 있다.
처리 유닛(1802)은 서로 독립적으로 작동할 수 있는 하나 이상의 처리 코어를 각각 포함할 수 있는 다양한 상업적으로 이용 가능한 컴퓨터 프로세서 중 임의의 하나 이상이거나 이를 포함할 수 있다. 그래픽 처리 유닛(1803)과 같은 추가 공동 처리 유닛도 컴퓨터에 존재할 수 있다.
시스템 메모리(1804)는 동적 랜덤 액세스 메모리(DRAM) 또는 다른 랜덤 액세스 메모리 디바이스와 같은 휘발성 디바이스를 포함할 수 있다. 시스템 메모리(1804)는 또한 또는 대안적으로 판독 전용 메모리 또는 플래시 메모리와 같은 비휘발성 디바이스를 포함할 수 있다.
컴퓨터(1801)는 디스크 드라이브, 솔리드 스테이트 디스크, 또는 착탈식 메모리 카드와 같은 로컬 비휘발성 2차 저장소(1808)를 포함할 수 있다. 로컬 저장소(1808)는 하나 이상의 이동식 및/또는 비이동식 저장 유닛을 포함할 수 있다. 로컬 저장소(1808)는 컴퓨터에서 실행되는 다양한 애플리케이션을 시작하고 관리하는 운영 체제를 저장하는 데 사용될 수 있다. 로컬 저장소(1808)는 또한 본 출원에 개시된 실시예의 컴포넌트를 구현하도록 구성되고 운영 체제 하에서 하나 이상의 애플리케이션으로서 실행될 수 있는 특수 목적 소프트웨어를 저장하는 데 사용될 수 있다.
컴퓨터(1801)는 또한 컴퓨터가 유선 및/또는 무선 컴퓨터 네트워크(1818)를 통해 하나 이상의 원격 컴퓨터(1830)와 같은 다른 디바이스와 통신하는 통신 디바이스(들)(1812)를 포함할 수 있다. 통신 디바이스(들)(1812)는 예를 들어 유선 컴퓨터 네트워크를 통해 데이터를 통신하기 위한 네트워크 인터페이스를 포함할 수 있다. 통신 디바이스(들)(1812)는 예를 들어 Wi-Fi, 블루투스, 및/또는 이동 전화 네트워크를 통한 통신을 위한 하나 이상의 무선 송신기를 포함할 수 있다.
컴퓨터(1801)는 또한 컴퓨터 네트워크(1818)를 통해 네트워크 저장소(1820)에 액세스할 수 있다. 네트워크 저장소는 예를 들어 로컬 네트워크에 위치한 네트워크 연결 저장소 디바이스, 또는 하나 이상의 원격 데이터 센터에서 호스팅되는 클라우드 기반 저장소를 포함할 수 있다. 운영 체제 및/또는 특수 목적 소프트웨어는 대안적으로 네트워크 저장소(1820)에 저장될 수 있다.
컴퓨터(1801)는 키보드, 마우스, 터치스크린, 카메라, 마이크로폰, 가속도계, 온도계, 자력계, 또는 임의의 다른 센서와 같은 다양한 입력 디바이스(들)(1814)를 가질 수 있다. 디스플레이, 스피커, 프린터 또는 편심 회전 질량 진동 모터와 같은 출력 디바이스(들)(1816)도 포함될 수 있다.
다양한 저장소(1808), 통신 디바이스(들)(1812), 출력 디바이스(1816) 및 입력 디바이스(1814)가 컴퓨터의 하우징 내에 통합될 수 있거나 컴퓨터의 다양한 입력/출력 인터페이스 디바이스를 통해 연결될 수 있으며, 이 경우 참조 번호 1808, 1812, 1814 및 1816은 경우에 따라 디바이스에 연결하기 위한 인터페이스 또는 디바이스 자체 중 어느 하나를 나타낼 수 있다.
앞서 설명한 양태 중 임의의 것은 하나 이상의 경우에 컴퓨터 시스템으로서, 이러한 컴퓨터 시스템에 의해 수행되는 프로세스로서, 이러한 컴퓨터 시스템의 임의의 개별 컴포넌트로서, 또는 컴퓨터 프로그램 명령어가 저장되고 하나 이상의 컴퓨터에 의해 처리될 때 이러한 컴퓨터 시스템 또는 이러한 컴퓨터 시스템의 임의의 개별 컴포넌트를 제공하도록 하나 이상의 컴퓨터를 구성하는 컴퓨터 저장소를 포함하는 제조 물품으로서 구현될 수 있다. 서버, 컴퓨터 서버, 호스트 또는 클라이언트 디바이스는 각각 컴퓨터 또는 컴퓨터 시스템으로 구현될 수 있다. 컴퓨터 시스템은 통신 네트워크를 통해 연결된 여러 컴퓨터에 의해 동작이 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서 컴퓨터 프로그램은 로컬 및 원격 컴퓨터 저장 매체 둘 모두에 위치할 수 있다.
본 출원에 설명되고 하나 이상의 컴퓨터에서 동작하는 컴퓨터 시스템의 각 컴포넌트는 컴퓨터의 하나 이상의 처리 유닛 및 하나 이상의 처리 유닛에 의해 처리되는 하나 이상의 컴퓨터 프로그램을 사용하여 구현될 수 있다. 컴퓨터 프로그램은 컴퓨터에서 실행 가능한 명령어 및/또는 프로그램 모듈과 같은 컴퓨터 해석 명령어를 포함하며, 명령어는 컴퓨터의 하나 이상의 처리 유닛에 의해 처리된다. 일반적으로 이러한 명령어는 처리 유닛에 의해 처리될 때 처리 유닛에 데이터에 대한 동작을 수행하도록 지시하거나 다양한 컴포넌트 또는 데이터 구조를 구현하도록 프로세서 또는 컴퓨터를 구성하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 정의한다.
모듈, 엔진, 프로세스, 기능 등으로 지칭될 수 있는 본 출원에 개시된 실시예의 컴포넌트는 예컨대 특수 목적 하드웨어 로직 컴포넌트를 사용함으로써, 특수 목적 소프트웨어를 사용하여 범용 컴퓨팅 리소스를 구성함으로써 또는 특수 목적 하드웨어 및 구성된 범용 컴퓨팅 리소스의 조합에 의해 하드웨어로 구현될 수 있다. 사용할 수 있는 예시적인 유형의 하드웨어 로직 컴포넌트는 예를 들어 FPGA(Field-programmable Gate Array), ASIC(Application-specific Integrated Circuit), ASSP(Application-specific Standard Product), SOC(System-on-a-chip) 시스템 및 CPLD(Complex Programmable Logic Device)를 포함한다.
9 결론 논평
주제가 특정 실시예의 관점에서 설명되었지만, 본 출원에 설명된 다양한 특징 및 양태를 제공하거나 제공하지 않을 수 있는 다른 실시예가 본 개시에 의해 고려되는 것으로 이해하여야 한다. 앞서 설명된 특정 실시예는 단지 예로서 개시된 것일 뿐이며, 특허 주제의 범위는 다음 청구범위에 의해 정의된다. 청구범위에서 "기초하여"라는 용어는 결과 또는 효과를 생성할 때 요인이 직접 및/또는 간접적으로, 가능하면 다른 요인과 함께 고려되는 상황을 포함한다. 청구범위에서, "일부"는 없는 것보다 크고 최대 사물의 전체를 포함하며; 사물의 암호화는 사물의 일부에 대한 암호화를 포함한다. 방법 청구항에서 임의의 참조 번호는 설명의 편의를 위해서만 사용되며 방법을 수행하기 위한 특정 순서를 나타내지 않는다.
Claims (20)
- 비밀 공유된 값에 대한 다자간 계산을 수행하도록 구성된 보안 다자간 계산 시스템(secure multi-party computing system)에 의해 수행되는 방법에 있어서, 상기 보안 다자간 계산 시스템은 보안 네트워크 통신에서 복수의 당사자 계산 시스템 및 신뢰할 수 있는 딜러 계산 시스템(dealer computing system)을 포함하며, 상기 방법은 비밀 공유된 값을 제1 모듈러 표현(modular representation)으로부터 제2 모듈러 표현으로 캐스팅(casting)하기 위한 것이고, 상기 방법은,
상기 당사자 계산 시스템 각각은 상기 제1 모듈러 표현에서 상기 비밀 공유된 값의 각각의 비밀 지분(secret share)을 저장하고,
상기 제1 모듈러 표현은 상기 제1 모듈러 표현의 최상위 비트 위치 및 최하위 비트 위치에 의해 정의된 범위를 가지고,
상기 신뢰할 수 있는 딜러 계산 시스템은 마스킹 값(masking valu)을 저장하고 상기 마스킹 값이 상기 제1 모듈러 표현에서 상기 당사자 계산 시스템 사이에 비밀 공유되도록 상기 제1 모듈러 표현에서 상기 마스킹 값의 각각의 비밀 지분을 상기 당사자 계산 시스템 각각에 전달하며;
상기 신뢰할 수 있는 딜러 계산 시스템은,
마스킹 값이 존재하는 서브 범위를 결정하고- 상기 서브 범위는 상기 제1 모듈러 표현의 범위를 나타내는 복수의 미리 결정된 비중첩 서브 범위로부터 선택됨 -,
상기 결정된 서브 범위를 수치 서브 범위 식별자로 인코딩하고,
상기 수치 서브 범위 식별자가 상기 당사자 계산 시스템 사이에서 비밀 공유되도록, 상기 수치 서브 범위 식별자의 각각의 비밀 지분을 상기 당사자 계산 시스템 각각에 전달하며;
상기 신뢰할 수 있는 딜러 계산 시스템은 제1 변환에서 상기 마스킹 값에 대해 적어도 제1 수학적 승급(mathematical lift)을 수행함으로써 상기 마스킹 값을 변환된 마스킹 값으로 변환하고;
상기 신뢰할 수 있는 딜러 계산 시스템은 상기 변환된 마스킹 값이 상기 제2 모듈러 표현에서 상기 당사자 계산 시스템 사이에 비밀 공유되도록 상기 제2 모듈러 표현에서 상기 변환된 마스킹 값의 각각의 비밀 지분을 상기 당사자 계산 시스템 각각에 전달하며,
상기 제2 모듈러 표현은 상기 제2 모듈러 표현의 최상위 비트 위치 및 최하위 비트 위치에 의해 정의된 범위를 가지며, 상기 제2 모듈러 표현의 상기 최상위 비트 위치는 상기 제1 모듈러 표현의 상기 최상위 비트 위치보다 더 크고;
상기 당사자 계산 시스템은 상기 비밀 공유된 값의 상기 비밀 지분 또는 상기 마스킹 값의 상기 비밀 지분을 노출하지 않고 상기 비밀 공유된 값과 상기 마스킹 값의 합계를 마스킹된 값으로 협력하여(collaboratively) 계산하여 노출하며;
제2 변환에서 상기 마스킹된 값에 대해 적어도 제2 수학적 승급을 수행함으로써 상기 마스킹된 값을 제1 변환된 마스킹된 값으로 변환하고;
제3 변환에서, 상기 마스킹된 값에 대해 적어도 제3 수학적 승급을 수행함으로써 상기 마스킹된 값을 제2 변환된 마스킹된 값으로 변환하고,
상기 제1 수학적 승급, 상기 제2 수학적 승급 및 상기 제3 수학적 승급은 각각 서로 상이하고;
상기 당사자 계산 시스템은,
상기 제1 변환된 마스킹된 값,
상기 제2 변환된 마스킹된 값,
각각의 당사자 계산 시스템에 대해, 상기 수치 서브 범위 식별자의 각각의 비밀 지분 및
각각의 당사자 계산 시스템에 대해, 상기 변환된 마스킹 값의 각각의 비밀 지분에 기초하여 각각의 상기 당사자 계산 시스템이 상기 제2 모듈러 표현에서 비밀 공유된 값의 각각의 비밀 지분을 계산하도록 상기 제2 모듈러 표현에서 비밀 공유된 값을 협력하여 계산하는 것을 포함하는, 방법. - 청구항 1에 있어서,
상기 제1 수학적 승급 및 상기 제2 수학적 승급은 상기 제1 모듈러 표현의 범위의 1/4만큼 오프셋된 값을 서로에 대하여 생성하고,
상기 제2 수학적 승급 및 상기 제3 수학적 승급은 상기 제1 모듈러 표현의 범위의 1/2만큼 오프셋된 값을 서로에 대하여 생성하는, 방법. - 청구항 5에 있어서,
상기 제1 변환은,
상기 제1 수학적 승급의 결과를 의 가장 가까운 배수로 반올림하는 것- 여기서 는 상기 제2 모듈러 표현의 최하위 비트 위치임 -, 및
상기 반올림의 모듈로(modulo) 를 취하는 것- 여기서 은 상기 제2 모듈러 표현의 최상위 비트 위치임 -을 더 포함하고,
상기 제2 변환은,
상기 제2 수학적 승급의 결과를 의 가장 가까운 배수로 반올림하는 것, 및
상기 반올림의 모듈로(modulo) 를 취하는 것을 더 포함하고;
상기 제3 변환은,
상기 제3 수학적 승급의 결과를 의 가장 가까운 배수로 반올림하는 것, 및
상기 반올림의 모듈로(modulo) 를 취하는 것을 더 포함하는, 방법. - 청구항 1에 있어서, 상기 "복수의 미리 결정된 비중첩(non-overlapping) 서브 범위"는 2개의 동일한 크기의 서브 범위로 구성되고, 상기 수치 서브 범위 식별자는 수치 0과 1로 구성된 그룹에서 선택되는, 방법.
- 청구항 8에 있어서, 상기 비밀 공유된 수치 서브 범위 식별자가 상기 제2 모듈러 표현에서 상기 비밀 공유된 값을 계산하는 데 사용하기 위해 상기 제1 변환된 마스킹된 값과 상기 제2 변환된 마스킹된 값 사이에서 선택하도록 협력하여 상기 당사자 계산 시스템에 의해 사용되는, 방법.
- 청구항 1에 있어서, 상기 제1 모듈러 표현 및 상기 제2 모듈러 표현은 실수의 고정 소수점 정수 표현(fixed point integer representation)인, 방법.
- 비밀 공유된 값에 대한 다자간 계산을 수행하도록 구성된 보안 다자간 계산 시스템에 의해 수행되는 방법에 있어서, 상기 보안 다자간 계산 시스템은 보안 네트워크 통신에서 복수의 당사자 계산 시스템을 포함하며, 상기 방법은 비밀 공유된 값을 제1 모듈러 표현으로부터 제2 모듈러 표현으로 캐스팅하기 위한 것이고, 상기 방법은,
상기 당사자 계산 시스템 각각이 상기 제1 모듈러 표현에서 상기 비밀 공유된 값의 각각의 비밀 지분을 저장하고,
상기 제1 모듈러 표현은 상기 제1 모듈러 표현의 최상위 비트 위치 및 최하위 비트 위치에 의해 정의된 범위를 가지고,
마스킹 값이 상기 당사자 계산 시스템 사이에 비밀 공유되도록 상기 마스킹 값의 각각의 비밀 지분을 상기 당사자 계산 시스템 각각에 전달하고,
상기 마스킹 값이 존재하는 서브 범위의 표시에 대한 각각의 비밀 지분을 상기 당사자 계산 시스템 각각에 전달하고, 상기 서브 범위는 상기 제1 모듈러 표현의 범위를 표현하는 미리 결정된 복수의 비중첩 서브 범위로부터 선택되어 상기 서브 범위 표시가 상기 당사자 계산 시스템 사이에 비밀 공유되며;
제1 변환에서, 상기 마스킹 값에 대해 적어도 제1 수학적 승급을 수행함으로써 상기 마스킹 값을 변환된 마스킹 값으로 변환하고;
상기 변환된 마스킹 값이 상기 제2 모듈러 표현에서 상기 당사자 계산 시스템 사이에 비밀 공유되도록 상기 제2 모듈러 표현에서 상기 변환된 마스킹 값의 각각의 비밀 지분을 상기 당사자 계산 시스템 각각에 전달하고,
상기 제2 모듈러 표현은 상기 제2 모듈러 표현의 최상위 비트 위치 및 최하위 비트 위치에 의해 정의된 범위를 가지며, 상기 제2 모듈러 표현의 최상위 비트 위치는 상기 제1 모듈러 표현의 최상위 비트 위치보다 더 크고;
상기 당사자 계산 시스템은 상기 비밀 공유된 값의 상기 비밀 지분 또는 상기 마스킹 값의 상기 비밀 지분을 노출하지 않고 상기 비밀 공유된 값과 상기 마스킹 값의 합계를 마스킹된 값으로 협력하여 계산하여 노출하며;
제2 변환에서, 상기 마스킹된 값에 대해 적어도 제2 수학적 승급을 수행함으로써 상기 마스킹된 값을 제1 변환된 마스킹된 값으로 변환하고,
제3 변환에서, 상기 마스킹된 값에 대해 적어도 제3 수학적 승급을 수행함으로써 상기 마스킹된 값을 제2 변환된 마스킹된 값으로 변환하고,
상기 제1 수학적 승급, 상기 제2 수학적 승급 및 상기 제3 수학적 승급은 각각 서로 상이하고;
상기 당사자 계산 시스템은
상기 제1 변환된 마스킹된 값,
상기 제2 변환된 마스킹된 값,
각각의 당사자 계산 시스템에 대해, 상기 서브 범위 표시의 각각의 비밀 지분 및
각각의 당사자 계산 시스템에 대해, 상기 변환된 마스킹 값의 각각의 비밀 지분에 기초하여 각각의 상기 당사자 계산 시스템이 상기 제2 모듈러 표현에서 비밀 공유된 값의 각각의 비밀 지분을 계산하도록 상기 제2 모듈러 표현에서 비밀 공유된 값을 협력하여 계산하는 것을 포함하는, 방법. - 청구항 11에 있어서, 상기 "복수의 미리 결정된 비중첩 서브 범위"는 2개의 동일한 크기의 서브 범위로 구성되고, 상기 수치 서브 범위 식별자는 수치 0과 1로 구성된 그룹에서 선택되는, 방법.
- 청구항 13에 있어서, 상기 비밀 공유된 수치 서브 범위 식별자가 상기 제2 모듈러 표현에서 상기 비밀 공유된 값을 계산하는 데 사용하기 위해 상기 제1 변환된 마스킹된 값과 상기 제2 변환된 마스킹된 값 사이에서 선택하도록 협력하여 상기 당사자 계산 시스템에 의해 사용되는, 방법.
- 청구항 11에 있어서, 상기 제1 모듈러 표현 및 상기 제2 모듈러 표현은 실수의 고정 소수점 정수 표현인, 방법.
- 각각의 초기 모듈러 표현에 저장된 제1 비밀 공유된 값과 각각의 초기 모듈러 표현에 저장된 제2 비밀 공유된 값의 승산(multiplication)을 수행하기 위한 방법에 있어서, 상기 방법은,
청구항 11의 방법에 따라, 상기 제1 비밀 공유된 값 및 상기 제2 비밀 공유된 값 둘 모두가 공통 모듈러 표현에 저장되도록 상기 제1 비밀 공유된 값 및 상기 제2 비밀 공유된 값 중 적어도 하나를 상기 공통 모듈러 표현으로 캐스팅하는 단계(casting); 및
상기 공통 모듈러 표현에서 상기 제1 비밀 공유된 값 및 상기 제2 비밀 공유된 값에 대해 비버 승산(beaver multiplication)을 수행하는 단계를 포함하는, 방법. - 각각의 초기 모듈러 표현에 각각 저장되어 있는 복수의 비밀 공유된 값과 대응하는 복수의 정적 계수(static coefficient)를 조합하는 방법에 있어서, 상기 방법은,
청구항 11의 방법에 따라, 복수의 비밀 공유된 값 모두가 공통 모듈러 표현에 저장되도록 상기 복수의 비밀 공유된 값 중 적어도 하나를 상기 공통 모듈러 표현으로 캐스팅하는 단계; 및
상기 공통 모듈러 표현에 저장된 상기 복수의 비밀 공유된 값과 대응하는 복수의 정적 계수에 대해 선형 조합(linear combination)을 수행하는 단계를 포함하는, 방법. - 비밀 공유된 값에 대한 연속 함수를 평가하는 방법에 있어서,
결정된 복수의 푸리에 급수로부터, 상기 비밀 공유된 값에 기초하여 푸리에 급수를 선택하는 단계- 상기 결정된 복수의 푸리에 급수 각각은 상기 연속 함수의 도메인의 관련된 서브 구간에 대해 상기 연속 함수를 근사하도록 구성됨 -;
상기 선택에 기초하여, 청구항 11의 방법에 따라, 제1 모듈러 표현으로부터 제2 모듈러 표현으로 상기 비밀 공유된 값을 캐스팅하는 단계; 및
상기 선택된 푸리에 급수를 사용하여 상기 제2 모듈러 표현에서 상기 비밀 공유된 값에 대한 상기 연속 함수의 값을 근사화하는 단계를 포함하는, 방법. - 복수의 컴퓨터 시스템을 포함하는 시스템에 있어서, 상기 복수의 컴퓨터 시스템은 청구항 1 내지 18 중 어느 한 항의 방법을 수행하도록 구성된, 시스템.
- 복수의 컴퓨터 시스템에 의해 실행될 때, 상기 복수의 컴퓨터 시스템으로 하여금 청구항 1 내지 18 중 어느 한 항의 방법을 수행하게 하는 컴퓨터 코드로 인코딩된 비일시적 컴퓨터 판독 가능 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962809543P | 2019-02-22 | 2019-02-22 | |
US62/809,543 | 2019-02-22 | ||
PCT/US2020/019551 WO2020172683A1 (en) | 2019-02-22 | 2020-02-24 | Arithmetic for secure multi-party computation with modular integers |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210127168A true KR20210127168A (ko) | 2021-10-21 |
Family
ID=69846600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217026016A KR20210127168A (ko) | 2019-02-22 | 2020-02-24 | 모듈러 정수를 사용한 보안 다자간 계산을 위한 산술 |
Country Status (10)
Country | Link |
---|---|
US (2) | US11050558B2 (ko) |
EP (1) | EP3928462A1 (ko) |
JP (1) | JP2022523182A (ko) |
KR (1) | KR20210127168A (ko) |
CN (1) | CN113841356B (ko) |
AU (1) | AU2020225657A1 (ko) |
CA (1) | CA3128241A1 (ko) |
IL (1) | IL285484B2 (ko) |
SG (1) | SG11202108072QA (ko) |
WO (1) | WO2020172683A1 (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG11202001591UA (en) | 2017-08-30 | 2020-03-30 | Inpher Inc | High-precision privacy-preserving real-valued function evaluation |
IL285484B2 (en) | 2019-02-22 | 2024-07-01 | Inpher Inc | Arithmetic for secure multipart computation with modular integers |
CN113761469B (zh) * | 2021-08-10 | 2024-05-17 | 支付宝(杭州)信息技术有限公司 | 一种保护数据隐私的最高位进位计算方法 |
CN114584396B (zh) * | 2022-04-25 | 2024-01-26 | 北京原语科技有限公司 | 一种多方安全计算协议的数据转换方法 |
CN115225264A (zh) * | 2022-06-17 | 2022-10-21 | 上海富数科技有限公司广州分公司 | 一种安全多方计算方法、装置、电子设备及存储介质 |
US20240184522A1 (en) * | 2022-10-19 | 2024-06-06 | TripleBlind, Inc. | Fast secure multiparty comparison optimized for common computing architectures |
CN116248266B (zh) * | 2022-12-16 | 2023-11-14 | 北京海泰方圆科技股份有限公司 | 基于秘密分享的安全多方计算方法及系统 |
CN116108473B (zh) * | 2023-04-10 | 2023-06-27 | 极术(杭州)科技有限公司 | 多方安全计算中的数据处理方法及装置 |
CN118378302B (zh) * | 2024-06-24 | 2024-08-20 | 浪潮(北京)电子信息产业有限公司 | 基于秘密分享的数据处理方法、设备、程序产品及介质 |
Family Cites Families (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7181017B1 (en) * | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
US7945784B1 (en) * | 2005-08-19 | 2011-05-17 | Adobe Systems Incorporated | Method and system to perform secret sharing |
US20090327141A1 (en) * | 2007-04-18 | 2009-12-31 | Rabin Michael O | Highly efficient secrecy-preserving proofs of correctness of computation |
KR100966071B1 (ko) * | 2007-12-18 | 2010-06-28 | 한국전자통신연구원 | 겹선형 사상을 이용한 다자간 키 공유 방법 및 그 시스템 |
WO2011047085A2 (en) * | 2009-10-13 | 2011-04-21 | Certimix, Inc. | Method and apparatus for efficient and secure creating transferring, and revealing of messages over a network |
FR2960727B1 (fr) | 2010-05-26 | 2016-04-15 | Oberthur Technologies | Procede d'evaluation d'une fonction |
US9077539B2 (en) | 2011-03-09 | 2015-07-07 | Microsoft Technology Licensing, Llc | Server-aided multi-party protocols |
WO2012158621A1 (en) | 2011-05-13 | 2012-11-22 | Indiana University Reaserch And Technology Coporation | Secure and scalable mapping of human sequencing reads on hybrid clouds |
US9281941B2 (en) * | 2012-02-17 | 2016-03-08 | International Business Machines Corporation | Homomorphic evaluation including key switching, modulus switching, and dynamic noise management |
US9252942B2 (en) | 2012-04-17 | 2016-02-02 | Futurewei Technologies, Inc. | Method and system for secure multiparty cloud computation |
WO2013172790A1 (en) | 2012-05-16 | 2013-11-21 | Nanyang Technological University | Methods for determining a result of applying a function to an input and evaluation devices |
US8839410B2 (en) * | 2012-11-20 | 2014-09-16 | Sap Ag | Type-system for mixed protocol secure computation |
US20160019394A1 (en) * | 2013-03-04 | 2016-01-21 | Thomson Licensing | Method and system for privacy preserving counting |
US9450938B1 (en) * | 2013-03-13 | 2016-09-20 | Hrl Laboratories, Llc | Information secure proactive multiparty computation (PMPC) protocol with linear bandwidth complexity |
US10083310B1 (en) * | 2013-03-13 | 2018-09-25 | Hrl Laboratories, Llc | System and method for mobile proactive secure multi-party computation (MPMPC) using commitments |
US9742739B2 (en) * | 2013-04-25 | 2017-08-22 | Secretskydb Ltd. | Accumulating automata and cascaded equations automata for non-interactive and perennial secure multi-party computation |
EP3528233B1 (en) * | 2013-10-10 | 2021-03-10 | Nippon Telegraph and Telephone Corporation | Secret bit decomposition device, secret bit decomposition method, and program therefor |
EP3050011B1 (en) | 2014-05-02 | 2017-09-20 | Barclays Bank Plc. | Transaction authentication |
US10333696B2 (en) * | 2015-01-12 | 2019-06-25 | X-Prime, Inc. | Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency |
US10467389B2 (en) | 2015-01-15 | 2019-11-05 | Secretskydbltd | Secret shared random access machine |
US9813243B1 (en) * | 2015-03-30 | 2017-11-07 | EMC IP Holding Company LLC | Methods and apparatus for password-based secret sharing schemes |
WO2016159357A1 (ja) * | 2015-04-03 | 2016-10-06 | 日本電気株式会社 | 秘密計算システム、サーバ装置、秘密計算方法、および、プログラム |
US9813234B2 (en) | 2015-05-11 | 2017-11-07 | The United States of America, as represented by the Secretery of the Air Force | Transferable multiparty computation |
US10791123B2 (en) * | 2015-11-25 | 2020-09-29 | Yaron Gvili | Selectivity in privacy and verification with applications |
US10664604B2 (en) | 2015-12-03 | 2020-05-26 | Unbound Tech Ltd. | Securing SQL based databases with cryptographic protocols |
US10972260B2 (en) * | 2015-12-10 | 2021-04-06 | Nec Corporation | Pre-calculation device, method, computer-readable recording medium, vector multiplication device, and method |
US9929860B1 (en) * | 2015-12-30 | 2018-03-27 | Emc Corporation | Methods and apparatus for generalized password-based secret sharing |
US9954684B2 (en) | 2016-02-29 | 2018-04-24 | PreVeil LLC | Secure sharing |
WO2017179059A1 (en) | 2016-04-14 | 2017-10-19 | B. G. Negev Technologies And Applications Ltd., At Ben-Gurion University | Self-stabilizing secure and heterogeneous systems |
US11063941B2 (en) | 2016-05-13 | 2021-07-13 | Nec Corporation | Authentication system, authentication method, and program |
US11042358B2 (en) | 2016-08-18 | 2021-06-22 | Nec Corporation | Secure computation system, secure computation method, secure computation apparatus, distribution information generation apparatus, and methods and programs therefor |
EP3535924A4 (en) * | 2016-11-04 | 2020-06-17 | Nokia Technologies Oy | SECURE DISTRIBUTED DATA PROCESSING |
US20190386814A1 (en) * | 2016-11-07 | 2019-12-19 | Sherjil Ahmed | Systems and Methods for Implementing an Efficient, Scalable Homomorphic Transformation of Encrypted Data with Minimal Data Expansion and Improved Processing Efficiency |
US10360390B2 (en) * | 2016-12-14 | 2019-07-23 | Sap Se | Oblivious order-preserving encryption |
US10547592B2 (en) * | 2017-01-19 | 2020-01-28 | Hewlett Packard Enterprise Development Lp | Computing a global sum that preserves privacy of parties in a multi-party environment |
EP3573040B1 (en) * | 2017-01-20 | 2021-07-21 | Nippon Telegraph and Telephone Corporation | Secure computation system, secure computation device, secure computation method, and program |
US10565524B2 (en) * | 2017-01-31 | 2020-02-18 | Hewlett Packard Enterprise Development Lp | Performing privacy-preserving multi-party analytics on horizontally partitioned local data |
CN110537191A (zh) * | 2017-03-22 | 2019-12-03 | 维萨国际服务协会 | 隐私保护机器学习 |
DE102017209014A1 (de) * | 2017-05-30 | 2018-12-06 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Anfügen von Transaktionen an eine Blockkette |
EP3646327B1 (en) * | 2017-06-27 | 2024-05-22 | Bonnie Berger Leighton | Secure genome crowdsourcing for large-scale association studies |
EP3439233B1 (en) * | 2017-07-31 | 2020-12-30 | Koninklijke Philips N.V. | Distributing a computation output |
US20200151356A1 (en) * | 2017-08-11 | 2020-05-14 | Duality Technologies, Inc. | System and method for fast and efficient searching of encrypted ciphertexts |
US11381389B2 (en) * | 2017-08-15 | 2022-07-05 | Nchain Holdings Ltd. | Computer-implemented method of generating a threshold vault |
SG11202001591UA (en) | 2017-08-30 | 2020-03-30 | Inpher Inc | High-precision privacy-preserving real-valued function evaluation |
WO2019111319A1 (ja) * | 2017-12-05 | 2019-06-13 | 日本電気株式会社 | 秘密等号判定システム、秘密等号判定方法および秘密等号判定プログラム記録媒体 |
WO2019115697A1 (en) * | 2017-12-14 | 2019-06-20 | Robert Bosch Gmbh | Method for faster secure multiparty inner product with spdz |
WO2019133858A1 (en) * | 2017-12-29 | 2019-07-04 | Bonnie Berger Leighton | Realizing private and practical pharmacological collaboration |
WO2019170908A1 (en) * | 2018-03-09 | 2019-09-12 | Koninklijke Philips N.V. | Batch-wise verification of multiparty computations |
US10797868B2 (en) * | 2018-05-31 | 2020-10-06 | Irdeto B.V. | Shared secret establishment |
US11201734B2 (en) * | 2018-06-04 | 2021-12-14 | Robert Bosch Gmbh | Method and system for fault tolerant and secure multiparty computation with SPDZ |
US11580417B2 (en) * | 2018-07-10 | 2023-02-14 | City University Of Hong Kong | System and method for processing data and managing information |
US11087223B2 (en) * | 2018-07-11 | 2021-08-10 | International Business Machines Corporation | Learning and inferring insights from encrypted data |
CN109120398B (zh) * | 2018-08-03 | 2021-07-27 | 河南师范大学 | 一种基于区块链系统的秘密共享方法与装置 |
US11334547B2 (en) * | 2018-08-20 | 2022-05-17 | Koninklijke Philips N.V. | Data-oblivious copying from a first array to a second array |
US10885205B2 (en) * | 2018-10-31 | 2021-01-05 | Nec Corporation Of America | Secure multiparty computation |
WO2020165932A1 (ja) * | 2019-02-12 | 2020-08-20 | 日本電気株式会社 | 情報処理装置、秘密計算方法及びプログラム |
IL285484B2 (en) | 2019-02-22 | 2024-07-01 | Inpher Inc | Arithmetic for secure multipart computation with modular integers |
US12026219B2 (en) * | 2019-12-13 | 2024-07-02 | TripleBlind, Inc. | Systems and methods for efficient computations on split data and split algorithms |
-
2020
- 2020-02-24 IL IL285484A patent/IL285484B2/en unknown
- 2020-02-24 WO PCT/US2020/019551 patent/WO2020172683A1/en unknown
- 2020-02-24 CN CN202080016170.2A patent/CN113841356B/zh active Active
- 2020-02-24 CA CA3128241A patent/CA3128241A1/en active Pending
- 2020-02-24 SG SG11202108072QA patent/SG11202108072QA/en unknown
- 2020-02-24 EP EP20712780.4A patent/EP3928462A1/en active Pending
- 2020-02-24 KR KR1020217026016A patent/KR20210127168A/ko unknown
- 2020-02-24 AU AU2020225657A patent/AU2020225657A1/en active Pending
- 2020-02-24 JP JP2021548139A patent/JP2022523182A/ja active Pending
- 2020-11-09 US US17/093,008 patent/US11050558B2/en active Active
-
2021
- 2021-06-29 US US17/362,889 patent/US11716196B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN113841356B (zh) | 2024-06-04 |
CN113841356A (zh) | 2021-12-24 |
US11716196B2 (en) | 2023-08-01 |
IL285484A (en) | 2021-09-30 |
US20210058241A1 (en) | 2021-02-25 |
IL285484B2 (en) | 2024-07-01 |
IL285484B1 (en) | 2024-03-01 |
AU2020225657A1 (en) | 2021-08-19 |
WO2020172683A1 (en) | 2020-08-27 |
CA3128241A1 (en) | 2020-08-27 |
EP3928462A1 (en) | 2021-12-29 |
US20210399879A1 (en) | 2021-12-23 |
SG11202108072QA (en) | 2021-09-29 |
JP2022523182A (ja) | 2022-04-21 |
US11050558B2 (en) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20210127168A (ko) | 모듈러 정수를 사용한 보안 다자간 계산을 위한 산술 | |
JP7272363B2 (ja) | 高精度プライバシ保護実数値関数評価 | |
Chen et al. | Logistic regression over encrypted data from fully homomorphic encryption | |
US20220014355A1 (en) | Oblivious Comparisons and Quicksort of Secret Shared Arithmetic Values in a Multi-Party Computing Setting | |
Kerik et al. | Optimizing MPC for robust and scalable integer and floating-point arithmetic | |
Drucker et al. | BLEACH: cleaning errors in discrete computations over CKKS | |
Rathee et al. | Secure {Floating-Point} Training | |
EP4016506A1 (en) | Softmax function secret calculation system, softmax function secret calculation device, softmax function secret calculation method, neural network secret calculation system, neural network secret learning system, and program | |
Basilakis et al. | Efficient parallel binary operations on homomorphic encrypted real numbers | |
Harmon et al. | Pie: p-adic encoding for high-precision arithmetic in homomorphic encryption | |
US20230016859A1 (en) | Multi-Pivot Partial Quicksort and Oblivious Comparisons of Secret Shared Arithmetic Values in a Multi-Party Computing Setting | |
Chung et al. | Encoding of rational numbers and their homomorphic computations for FHE-based applications | |
CN114721623A (zh) | 多方安全除法 | |
EP3566423B1 (en) | Verification of fixed-point arithmetic | |
US20230379151A1 (en) | Secure shift system, secure shift apparatus, secure shift method, and program | |
EP4213135A1 (en) | Secret exponent part unifying system, secret exponent part unifying device, secret exponent part unifying method, secret sum calculation system, secret product sum calculation system, and program | |
Dong | Accelerating BGV scheme of fully homomorphic encryption using GPUs | |
Mihalkovich et al. | On the decisional problem based on matrix power function defined over non-commutative group | |
CN117075844A (zh) | 数据分解任务的处理方法、装置、存储介质及电子装置 | |
Zou et al. | Semi-Honest 2-Party Faithful Truncation from Two-Bit Extraction | |
Zhou et al. | Parallel FDFM Approach for Computing GCDs Using the FPGA | |
Paniraja Guptha | Enhancing OSU Micro-Benchmarks to be an All-In-One Solution for MPI Benchmarking | |
CN114722435A (zh) | 多方安全乘法 | |
Liu | New Implementations for Tabulating Pseudoprimes and Liars | |
CN117035103A (zh) | 数据分解任务的处理方法、装置、存储介质及电子装置 |