KR20210127168A - 모듈러 정수를 사용한 보안 다자간 계산을 위한 산술 - Google Patents

모듈러 정수를 사용한 보안 다자간 계산을 위한 산술 Download PDF

Info

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
Application number
KR1020217026016A
Other languages
English (en)
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 인퍼, 인코포레이티드
Publication of KR20210127168A publication Critical patent/KR20210127168A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • 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

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는 일반적으로 여러 참가자에 걸쳐 시간적으로 및 지리적으로 모두 분할된다. 각각 별개의 계산 시스템을 나타내는 참가자는 전형적으로
Figure pct00001
당사자와 하나의 신뢰할 수 있는 딜러를 포함한다. 본 출원에서 사용될 때, 당사자 및 플레이어라는 용어는 상호 교환적으로 사용되며 다자간 계산에 참여하는 개별 당사자 컴퓨터 시스템을 지칭한다.
계산을 구현하기 위해 코드를 컴파일한 후 신뢰할 수 있는 딜러가 먼저 MPC의 오프라인 페이즈(offline phase)를 실행한다. 오프라인 페이즈에서 신뢰할 수 있는 딜러는 마스크(마스킹 데이터, 트리플릿이라고도 지칭됨)를 생성하고, 이들 마스크의 지분을 당사자에게 배포하며, 각 당사자는 마스크의 그 지분만을 알고, 당사자들 중 누구도 지분의 합으로 표현되는 평문 마스크 값을 알지 못한다. 마스크의 결정은 전형적으로 마스크가 데이터와 관련하여 적절하게 구성되도록 통계 분석 관점에서 작동될 것으로 예상되는 데이터에 의존한다.
그 다음,
Figure pct00002
당사자는 정의된 MPC 프로토콜에 따라 당사자가 메시지를 교환하거나 브로드캐스트할 수 있는 동기화 단계를 동반하는 MPC의 온라인 페이즈를 협력하여 실행한다. 온라인 페이즈는 신뢰할 수 있는 딜러가 액세스할 수 없는 방화벽 환경에서 실행할 수 있다.
MPC는 MPC 친화적인 기본 연산의 단일 정적 할당(SSA) 그래프로서 설명할 수 있는 평문 의사코드의 분산된 등가물일 수 있다. SSA 그래프의 노드는 평문 변수이며 각 당사자는 변수의 로컬 뷰(또는 비밀 지분)를 얻는다. 이 로컬 뷰를 MPC 컨테이너로 표시한다. MPC 친화적인 기본 연산은 빌트인(builtin)이라 지칭되며, MPC 컨테이너와 선택적으로 일부 정적 파라미터를 입력으로 사용하고 MPC 컨테이너를 출력으로 생성한다.
도 1은 다자간 계산의 k 당사자에 대한 MPC 컨테이너의 개요를 예시한다. 전역적으로, MPC 컨테이너는 SSA의 한 변수에 대한 모든 정보, 즉, 공개(모든 당사자가 알고 있지만, 신뢰할 수 있는 딜러는 그렇지 않음) 또는 비밀 공유된
Figure pct00003
(각 당사자는 그 지분만을 알고 있음)일 수 있는 평문 값
Figure pct00004
, 하나의 마스크
Figure pct00005
(딜러가 알고, 모든 당사자가 공유하는 비밀) 및 선택적 마스킹된 값
Figure pct00006
(모든 당사자가 알고 있지만 전형적으로 딜러는 그렇지 않음)를 보유한다. 표기 참고: 이중 대괄호 표기
Figure pct00007
은 비밀 공유된 값을 표시하기 위해 본 출원에서 사용된다.
로컬에서, 각 당사자는 다음과 같은 필드를 갖는 구조일 수 있는 MPC 컨테이너의 트레이스를 가지고 있다 :
- 공개 값
Figure pct00008
(컨테이너가 공개적으로 노출된 경우)
- 공개 값의 하나의 지분
Figure pct00009
- 컨테이너의 마스크의 하나의 지분
Figure pct00010
- 마스킹된 값
Figure pct00011
(컨테이너가 마스킹되고 노출되는 경우).
Figure pct00012
컨테이너의 합집합을 분석하면 다음이 성립한다: 컨테이너의 평문 값은 정의에 따라 모든 지분의 합계
Figure pct00013
이고, 컨테이너가 공개적인 경우, 모든 당사자는 평문 값을 알고, 각 당사자는 이 값
Figure pct00014
을 채워둔 상태이다. 이 경우, MPC 프로토콜에서 다른 필드를 사용할 필요가 없다. 컨테이너의 마스크는
Figure pct00015
이다. 마스크의 값은 신뢰할 수 있는 딜러만 알고 있다(오프라인 페이즈 동안). 당사자 중 누구도 온라인 페이즈 동안 실제 마스크를 알거나 학습하지 못한다. 마스킹된 값
Figure pct00016
Figure pct00017
와 같다. 특수 마스크 및 노출 동작은 각 당사자에게 그
Figure pct00018
를 브로드캐스트하도록 지시하고, 이는 이들이 동일한 필드
Figure pct00019
를 공동으로 재구성하고 저장하게 한다. 빌트인에서 나타나는 다른 모든 기술적 또는 로컬 변수는 임시 변수라 지칭된다.
이전의 두 연구에서는 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∈
Figure pct00020
가 k 당사자(SecureML에서 k = 2, ABY3에서 k ≥ 3) 간에 비밀 공유된 MPC 설정에 이들 연산을 (x1,…, x k )∈(
Figure pct00021
/q
Figure pct00022
) k (일부 정수 q에 대해)로서 적응시키며, 그래서, x = 센터모드 q ( x1 + … + x k )이다. 부호 있는 수학적 승급(lift) 센터모드 q (x)는 고유 정수
Figure pct00023
로 정의되며, 그래서,
Figure pct00024
이다. 우리는 산술 지분에 대한 실수의 이 특정 표현을 modReal 표현으로 표시한다.
SecureML, 섹션 4.1, "공유된 소수에 대한 산술 연산"이라는 명칭의 서브 섹션은 다음과 같이 제안한다. 각 수의
Figure pct00025
비트가 수치의 소수부(fractional part)(소수점 이후의 이진 자릿수)를 나타내도록 정의되도록 공통 정수 표현에 저장된 두 이진 소수 x와 y의 고정 소수점 곱을 고려한다. 이 경우,
Figure pct00026
Figure pct00027
는 기본적으로 정수 백엔드를 사용하여 표현할 수 있는 정수일 것이다. 그러나, 승산이 일부 정수
Figure pct00028
에 대해
Figure pct00029
에서 이루어진 곱
Figure pct00030
은 표현의 소수부에서 최대
Figure pct00031
비트를 가질 것이다. 그러나, 특히 MPC와 관련하여 데시멀(decimal) 이후에 추가 이진 자릿수를 유지하는 것은 실용적이지 않을 수 있다. SecureML은 마지막
Figure pct00032
비트를 무시하거나 절단하여 결과의 소수부를 나타내는 비트 수를 감소시킬 것을 제안한다. 예를 들어, 곱은 다음과 같이 표현될 수 있다:
Figure pct00033
, 여기서,
Figure pct00034
이며, 결과는
Figure pct00035
만 포함하는 것으로 고려.
그 후, SecureML은 위의 절단 기술을 비밀 공유된 값
Figure pct00036
으로 확장한다. 실제로
Figure pct00037
의 각각의 비밀 지분을 보유한 두 당사자는 그 개별 지분을 절단할 수 있다. 그 후, 정리 1에서 높은 확률로 2개의 절단된 지분이
Figure pct00038
의 절단
Figure pct00039
를 재구성할 수 있음이 나타난다. 이 해결책은 다음 전제를 기초로 한다: x1 및 x2가 매우 작은 x의 2개의 비밀 지분인 경우, 이때, 매우 높은 확률로 2개의 지분 x1 및 x2은 2개의 반대 반원
Figure pct00040
에 있다. 두 당사자와만 작동하는 해결책은 지분을 절단하기 위해 로컬 절차에 의존하지만 결과적인 비밀 공유된 값이 정확하지 않을 확률은 0이 아니다.
ABY3은 §5.1.1에서 SecureML 두 당사자 절단 기술의 한계를 해결하고, §5.2.2는 MPC 설정에서 셋 이상의 당사자로 확장되는 절단에 대한 추가 기술을 제시한다. 그러나, 역시, 이들 추가 기술은 실제로 실패할 확률을 무시할 수 없다.
이전의 두 연구에서 승산은 비버(Beaver) 트리플릿 모듈로 q를 사용하여 수행되며 반올림은 각 지분에서 로컬로 수행될 수 있으며(
Figure pct00041
에 의해 바운드된(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 수학적 승급은 각각 다음으로 구성된 그룹으로부터 선택되는 방법이 수행될 수 있다:
Figure pct00042
에 의해 파라미터화된 쿼터모드 승급-
Figure pct00043
은 제1 모듈러 표현의 최상위 비트 위치임 -,
Figure pct00044
에 의해 파라미터화된 센터모드 승급 및
Figure pct00045
에 의해 파라미터화된 포스모드 승급.
제1 수학적 승급은
Figure pct00046
에 의해 파라미터화된 마스킹 값에 대한 쿼터모드 승급이고, 제2 수학적 승급은
Figure pct00047
에 의해 파라미터화된 마스킹된 값에 대한 센터모드 승급이고, 제3 수학적 승급은
Figure pct00048
에 의해 파라미터화된 마스킹된 값에 대한 포스모드 승급이며, 여기서
Figure pct00049
는 제1 모듈러 표현의 최상위 비트 위치인 방법이 수행될 수 있다.
Figure pct00050
에 의해 파라미터화된 x에 대한 쿼터모드 승급은 고유 실수
Figure pct00051
로서 정의되고, 그래서,
Figure pct00052
이며,
Figure pct00053
에 의해 파라미터화된 x에 대한 센터모드 승급은 고유 실수
Figure pct00054
로 정의되고, 그래서,
Figure pct00055
이며,
Figure pct00056
에 의해 파라미터화된 x에 대한 포스모드 승급 고유 실수
Figure pct00057
로서 정의되며, 그래서,
Figure pct00058
인 방법이 수행될 수 있다.
제1 변환은 제1 수학적 승급의 결과를
Figure pct00059
의 가장 가까운 배수로 반올림하는 단계-
Figure pct00060
는 제2 모듈러 표현의 최하위 비트 위치임 - 및 반올림의 모듈로
Figure pct00061
를 취하는 단계-
Figure pct00062
는 제2 모듈러 표현의 최상위 비트 위치임-를 더 포함하고, 제2 변환은 제2 수학적 승급의 결과를
Figure pct00063
의 가장 가까운 배수로 반올림하는 단계 및 반올림의 모듈로
Figure pct00064
를 취하는 단계를 더 포함하고, 제3 변환은 제3 수학적 승급의 결과를
Figure pct00065
의 가장 가까운 배수로 반올림하는 단계 및 반올림의 모듈로
Figure pct00066
를 취하는 단계를 더 포함하는 방법이 수행될 수 있다.
제1 변환, 제2 변환 및 제3 변환 각각은 관련된 수학적 승급의 결과를
Figure pct00067
에 투영하는 것을 포함하며, 여기서
Figure pct00068
은 제2 모듈러 표현의 최상위 비트 위치인 방법이 수행될 수 있다.
"복수의 미리 결정된 비중첩 서브 범위"는 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 변환 각각은 관련된 수학적 승급의 결과를
Figure pct00069
에 투영하는 것을 포함하며, 여기서
Figure pct00070
은 제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은 본 출원에 개시된 컴포넌트를 구현하도록 적절하게 구성될 수 있는 범용 컴퓨터 아키텍처를 예시한다.
다음 설명에서, 개시된 주제가 실시될 수 있는 다양한 실시예에 대한 참조가 이루어진다. 일부 실시예는 하나의/일/다른 실시예 등의 표현을 사용하여 설명될 수 있으며, 그 다수의 경우가 반드시 동일한 실시예를 참조하는 것은 아니다. 이러한 경우와 관련된 특정 특징, 구조 또는 특성은 달리 언급되지 않는 한 다양한 실시예에서 임의의 적절한 방식으로 조합될 수 있다. 예로서, 본 개시는 실시예에 대한 다수의 옵션 또는 가능성의 세트 또는 목록을 설명할 수 있고, 이러한 경우, 본 개시는 세트 또는 목록에 있는 항목의 명확하게 실현 가능한 모든 조합 및/또는 순열을 구체적으로 고려한다.
1 개요
본 개시에서, 다자간 연산(MPC) 설정에서 모듈러 정수 표현을 사용하여 높은 수치 정밀도로 실수 산술을 수행하기 위한 새로운 기술을 제시한다. 특히, 제1 모듈러 표현에 저장된 비밀 공유된 값을 제2 모듈러 표현으로 캐스팅하는 방법을 개시한다. 이전 연구와 달리, 개시된 해결책은 선형 및 로지스틱 회귀와 같은 기계 학습 기술에 중요한 효율성 및 보안을 희생하지 않고 오류를 유리하게 제거한다.
MPC에 대해 전체 임계값 보안 모델을 채택하고 계산을 오프라인 및 온라인 페이즈로 분할한다. 오프라인 페이즈(입력 데이터에 독립적)는 신뢰할 수 있는 딜러 또는 정직하지만 호기심 많은 딜러가 수행할 수 있다. 이 페이즈의 더 강력한 모델과 검증 가능성은 불확정 전송(oblivious transfer) 및 잘라내기 및 선택(cut-and-choose)과 같은 표준 기술을 통해 달성할 수 있다. 온라인 페이즈에서는 결과의 추가 지분을 계산한다.
우리의 연구에서는 이전 연구에서와 동일한 지분 정의를 유지하지만, 오버플로우를 완전히 제거하는(M/q ≤ 1/2인 한) 작은 항을 추가하여 트리플릿(마스킹 값) 정의를 수정한다. 이 방법은 온라인 페이즈 동안 단일 통신 라운드를 유지하고 전체 실행 시간을 보존하는 몇 가지 이진 연산만을 추가한다. 이 새로운 방법은 항상 정확하고, 보안은 무조건적이며, 임의의 수의 당사자에게 적용된다.
간단히 요약하면 ABY3의 오버플로우는 예를 들어 제산 연산 동안 랜덤 마스크 r' mod q(오프라인 페이즈 동안 선택됨)와 마스킹된 값 a = x'-r' mod q에서 작은 평문 x∈
Figure pct00071
를 재구성해야 한다는 사실에서 유래된다. 후자는 mod q 클래스와 호환되지 않는 제산 연산을 적용하기 전에 온라인 페이즈 동안 노출된다. 그렇게 하기 위해, r'과 a 모두는 암시적으로
Figure pct00072
의 정수로 승급된다. 보다 정확하게는 ABY3 § 5.1.1, 5.1.2에서 이러한 2개의 암시적 중심 승급(implicit centered lift)은 2개의 연산 동안 발생한다: 1) 트리플릿의 정의에서, r = r'/2d, 여기서 r'∈
Figure pct00073
/q
Figure pct00074
는 랜덤임 및 2) 노출에서, x'-r'∈
Figure pct00075
/q
Figure pct00076
및 로컬 계산 (x'-r')/2d 연산. 이 두 승급은 a-r'이 실수에 대해 x'와 같다는 추가 가정과 항상 호환되는 것은 아니다(동등성은 작은 확률로 +q 또는 -q 만큼 상이할 수 있음). 새로운 설정에서는 무조건적인 보안을 보장하는
Figure pct00077
의 전체 범위를 보존한다. 그러나, 그룹
Figure pct00078
/q
Figure pct00079
를 2개의 절반으로 분할하고, 오프라인 페이즈 동안 r'을 함유하는 절반 그룹을 인코딩하는 추가 비트를 비밀 공유하고 이 비밀 공유된 비트를 동일한 트리플릿에 추가한다. 각 절반 그룹은 -r'에 대한 상이한 승급에 대응하므로 당사자는 두 승급을 모두 계산한 다음 공유된 비트를 사용하여 온라인 페이즈 동안 무의식적으로 올바른 것을 선택할 수 있다.
2. 평문 값 및 비밀 지분의 표현
2.1 부동 소수점 및 고정 소수점 표현
평문 실수 값 x는 부동 소수점 형식으로 x = m · 2 e
Figure pct00080
로 표현될 수 있고, 여기서
- 가수 m은
Figure pct00081
이 되도록 정규화되고,
- 지수
Figure pct00082
(데이터에 의존적임)이다.
이 표현은 m과 e가 모두 평문 값 x에 의존한다는 점에서 명확히 데이터 의존적이다. 특히, 지수 e의 값은 정확하게
Figure pct00083
이다. 부동 소수점 표현은 지수
Figure pct00084
를 결정하기 위해
Figure pct00085
의 크기에 대한 정보가 필요하기 때문에, 이는 데이터 의존적이고, 이 값 e가 다자간 계산 이전에 컴파일러에 의해 알려져 있지 않으므로, MPC 친화적이지 않다.
평문 실수 값 x는 또한 고정 소수점(정수) 형식으로
Figure pct00086
로 표현될 수 있고, 여기서
가수
Figure pct00087
Figure pct00088
이 되도록 정규화되고,
지수
Figure pct00089
(공개 값)이다.
다자간 계산을 시작하기 전에 컴파일러의 관점에서 지수는 공개로 고려되거나 처리될 수 있는 반면 가수는 비공개로 처리될 수 있다. 컴파일러는 계산 전에 비밀 번호
Figure pct00090
를 알지 못하기 때문에, 컴파일러가
Figure pct00091
에 대해 위의 정규화를 보장하는 정확한
Figure pct00092
를 결정하는 것은 불가능하다. 이 표현은 다음 두 예에 나타난 바와 같이 쉽게 오버플로우 또는 언더플로우될 수 있기 때문에 적합하지 않다:
오버플로우(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 실수의 혼성 평문 표현
고정 소수점(정수) 표현으로 실수를 표현하기 위한 다음 파라미터를 소개한다.
-
Figure pct00093
는 최하위 비트의 비트 위치를 나타내고;
-
Figure pct00094
은 최상위 비트의 비트 위치를 나타내고;
-
Figure pct00095
는 평문 수치 윈도우, 즉, 고정 소수점 정밀도를 나타낸다.
파라미터
Figure pct00096
Figure pct00097
는 적용될 것으로 예상되는 데이터의 통계 분석을 기초로 컴파일러에 의해 결정될 수 있다. 실제로 제한 인자는 수치 윈도우의 크기 ρ이다(즉, 가수 m의 비트 수; 동등하게, 컴파일러에 의해 유지되는 지수 바운드와 유지될 소수부의 이진 자릿수의 수치 사이의 차이). ρ가 작을수록 백엔드에서 산술이 더 효율적이다. 따라서 정적 분석은 다음 2개의 조건을 보장해야 한다:
- 정적으로 결정된 바운드는 오버플로우를 피하기에 충분하다.
- 바운드는 정밀도 손실을 피하기 위해 가능한 정밀하다(ρ에 대한 제한이 주어짐).
정의 1(실수의 정수 표현). 파라미터
Figure pct00098
Figure pct00099
가 주어지면 이러한 파라미터를 사용하여 표현되는 평문 값의 클래스는
Figure pct00100
로 표시되고, 다음과 같이 정의된다:
Figure pct00101
예를 들어, x = 1은
Figure pct00102
= 1이고 x = 3은
Figure pct00103
= 2이다.
Figure pct00104
클래스는 단계
Figure pct00105
로 엄격하게
Figure pct00106
Figure pct00107
사이의 모든 실수(이 경우 유리수)를 나타냄을 유의한다.
Figure pct00108
는 종종 음수이지만(정확한 정수부와 소수부로부터의 몇 비트의 정밀도를 계산하기를 원할 때), 일반적으로는 그럴 필요는 없다는 것을 유의한다. 음수
Figure pct00109
는 소수부에 대한 비트를 고려하고 있음을 의미한다.
Figure pct00110
는 본질적으로 수치를 나타내는 데 얼마나 많은 비트가 필요한 지를 알려준다. 음수
Figure pct00111
가 클수록 소수점 자릿수에 대한 정밀도가 더 높아지고 이를 표현하는 데 더 많은 비트가 필요하다.
예 1.
Figure pct00112
= 40 및
Figure pct00113
= -10에 대해, ρ = 40 - (-10) = 50이다. 이 경우, 최하위 비트는 위치 -10에 있고 최상위 비트는 위치 39에 있으며 최하위 비트 비소수 비트는 위치 0에 있다.
예 2.
Figure pct00114
= -2 및
Figure pct00115
= 5에 대해, 수치는 1011.1(2)과 같은 이진수로 표현되고,
Figure pct00116
에서 01011.10(2)로서 표현된다. 이 경우, 2개의 소수 비트는 비트 위치 -2 및 -1을 점유하는 반면 비소수 비트는 위치 0에서 4를 점유한다. 주어진 실수는 많은 상이한 평문 클래스에 속할 수 있음에 유의한다(즉, 상기 예에서 11.5는
Figure pct00117
에 속하지만, 이는 또한
Figure pct00118
Figure pct00119
에도 속한다).
도 2는 고정 소수점 표현의 비트
Figure pct00120
Figure pct00121
와 언더플로우 및 오버플로우 조건에서 영향을 받는 관련 비트 사이의 관계를 예시한다.
평문 오버플로우(Plaineext overflow). 세트
Figure pct00122
는 그룹도 링도 아니며; 특히 가산, 감산, 승산 등과 같은 실제 산술 연산 하에서는 안정적이지 않다. 예를 들어, 수치
Figure pct00123
Figure pct00124
에 속하지만
Figure pct00125
,
Figure pct00126
Figure pct00127
모두 바운드
Figure pct00128
를 초과한다. 보다 일반적으로, 수학식의 결과가 출력 평문 세트의
Figure pct00129
를 초과하는 임의의 경우에 평문 오버플로우를 호출한다.
평문 오버플로우의 위험을 피하기 위해
Figure pct00130
가 적어도
Figure pct00131
인 것을 보장한다. 그러나, 변수의 파라미터
Figure pct00132
Figure pct00133
는 컴파일 시간에(값
Figure pct00134
의 실제 값을 알기 전에) 지정되어야 하며, 위험을 완화하기 위해,
Figure pct00135
를 가능한 모든 값의 상부 바운드가 되도록 설정할 필요가 있다. 이는 변수에 실제 값을 할당할 때 오버플로우가 발생하지 않는 것을 보장한다. 이는 또한 실제(또는 부동 소수점) 정밀도가 항상 고정 소수점 정밀도
Figure pct00136
보다 더 작다는 것을 의미한다.
평문 언더플로우. 고정 지수를 너무 크게 선택하면 평문 정보를 완전히 손실할 수 있다. 예를 들어,
Figure pct00137
Figure pct00138
,
Figure pct00139
인 경우, 이때, 부동 소수점 표현에 대해 1개의 십진 자릿수는 곱의 가수를 나타내기에 충분하고 계산된 지수는
Figure pct00140
이다.
반면, 고정 소수점 세계에서 입력의 평문 파라미터가 정밀도의 4개의 십진 자릿수에 대응하는
Figure pct00141
로 설정된 경우, 일반적인 실수는 곱
Figure pct00142
가 두 입력
Figure pct00143
의 합이라고 가정하고, 여기서, 동일한 14 비트 고정 소수점 정밀도의 결과를 예상하며, 그래서, 파라미터
Figure pct00144
를 사용하는 것이며: 이 경우 결과는 다음과 같이 계산되고:
Figure pct00145
, 이는 결과를 완전히 손실하게 되는 것이다. 이러한 경우를 평문 언더플로우라고 하며, 이 예에서 사실상 14 비트의 고정 소수점 정밀도를 갖고 있지만 계산된 결과는 부동 소수점 관점에서 완전히 잘못된 것이다.
2.3 ModReal - 실수의 모듈러 표현
ModReal 표현은 예를 들어 64 비트 또는 128 비트 정수를 기초로 할 수 있는 모듈러 정수 표현 실수 산술을 나타낸다. 이 표현은 소수점 후방에 고정된 수의 이진 자릿수를 갖는 실수의 고정 소수점 표현으로 컴퓨터 프로세서의 고정 소수점 단위를 사용할 수 있다.
다자간 계산에서 보안을 달성하기 위해 특정 크기의 평문 값은 전형적으로 더 큰 파라미터를 가진 값의 클래스에 속하는 값을 공유하기 위해 비밀 공유된다. 또한 비밀 지분은 더 큰 클래스의 값으로 마스킹된다. 이러한 더 큰 비밀 지분 클래스는 두 정수
Figure pct00146
Figure pct00147
로 파라미터화된다. 모든 경우에 평문 최하위 위치와 일치하기 때문에 자발적으로 동일한 기호
Figure pct00148
를 사용하지만; 그러나, 비밀 공유된 데이터에 사용되는 파라미터
Figure pct00149
는 전형적으로 대응 평문에 사용되는
Figure pct00150
보다 크다.
-
Figure pct00151
는 마스크/지분의 최하위 비트의 비트 위치를 나타낸다;
-
Figure pct00152
는 마스크/지분의 최상위 비트의 비트 위치를 나타낸다.
정의 2(실수의 모듈러 표현). 파라미터
Figure pct00153
Figure pct00154
가 주어지면 실수의 비밀 지분의 모듈러 표현에 사용되는 클래스는 유한 아벨군으로 정의된다.
Figure pct00155
Figure pct00156
Figure pct00157
에 대해 동형(아벨군으로서)이며 우리가 사용하는 자연적
Figure pct00158
-모듈 구조를 갖는다는 점을 유의한다.
궁극적으로 MPC 계산의 정보 이론적인 보안 속성을 달성할 수 있게 하는 클래스
Figure pct00159
의 중요한 속성(모든 실수의 세트
Figure pct00160
과 다름)은 균일한 분포를 허용한다는 것이다.
예.
Figure pct00161
Figure pct00162
에 대해, 수치 x = 11.5 = 12 + 1 + 2 + 8은 이진수로 1011.1로 표현되고
Figure pct00163
에서 001011.10으로 표현된다. 반대 수 x' =-11.5 = 52.5 = 1/2+ 4 + 16 + 32 mod 64는 이진수로 110100.1로 표현되고,
Figure pct00164
에서 110100.10으로 표현된다. x와 x'의 정수부의 비트가 반대임에 유의한다. 제1 비트는 수치의 부호를 제공하고: 제1 비트가 0이면, 이때, 수치는 양수이고, 그렇지 않으면 음수이다.
2.4 ModReal 수학적 승급
비밀 지분의 개념을 정의하기 전에, 전체에 걸쳐 사용될
Figure pct00165
(실수)로의 토러스
Figure pct00166
(양의 정수
Figure pct00167
)의 여러 자연 승급을 제시한다. 여기에서, 승급은 자연 전사함수
Figure pct00168
의 섹션을 의미한다. 정수
Figure pct00169
로 파라미터화되는
Figure pct00170
로부터
Figure pct00171
로 진행하는 4가지 수학적 승급을 다음과 같이 정의한다:
-
Figure pct00172
는 고유 실수
Figure pct00173
로 정의되고, 그래서,
Figure pct00174
이다.
-
Figure pct00175
는 고유 실수
Figure pct00176
로 정의되며, 그래서,
Figure pct00177
이다.
-
Figure pct00178
은 고유 실수
Figure pct00179
로 정의되며, 그래서,
Figure pct00180
이다.
-
Figure pct00181
Figure pct00182
로 정의된다. 이 차이는 x가 속하는 절반 공간에 따라 0 또는
Figure pct00183
이다.
2.5 지분의 모듈러 표현
모듈러 표현은 비밀 공유된 실수의 지분을 나타내기 위해 유리하게 사용될 수 있다.
정의 3(비밀 지분의 모듈러 표현). 일 실시예에서, 수치 x∈
Figure pct00184
는 다음의 경우 클래스
Figure pct00185
에서
Figure pct00186
로서 비밀 공유된다:
Figure pct00187
Figure pct00188
이면 지분은 정확하고 무조건 보안되며, 이 조건은
Figure pct00189
일 때 충족된다.
MPC 지분의 비모듈러 표현에 비교하여 모듈러 표현의 이점이 예를 통해 예시될 수 있다.
예 1. 먼저 위의 비모듈러 클래스
Figure pct00190
를 사용한 각 지분의 비모듈러 표현의 경우를 고려한다. 평문 정수 42는
Figure pct00191
에서 [33, 97, -88]로 또는
Figure pct00192
에서 [164301, -806845, 642586]로 세 당사자 사이에서 비밀 공유될 수 있다. 두 경우 모두, 정확한 평문 정수를 재계산하려면 세 가지 지분이 모두 필요하다. 그러나, 제1 시나리오에서 처음 두 지분의 합은
Figure pct00193
에 비교하여 상당히 크며, 평문 정수가 양수라는 강한 표시를 제공한다. 이 문제는 더 큰
Figure pct00194
를 사용하지만 더 큰 표현을 대가로 하는 제2 예에서 완화된다.
예 2: 다음으로 동일한 정수 42가
Figure pct00195
에서 [33, 97, 40]으로서 세 당사자 사이에 비밀 공유된 것으로 고려한다. 정확한 정수 평문을 재계산하기 위해 3개의 지분이 모두 필요하지만, 이번에는
Figure pct00196
이 그룹이고 균일한 분포를 가지므로, 처음 2개의 지분은 평문 값에 대한 정보를 전혀 제공하지 않는다. k 중 k-1 당사자의 연합에 대해 이러한 지분의 보안은 정보 이론적이다.
3 캐스팅 연산
모듈러 정수 형식으로 표현된 비밀 공유된 실수에 대한 가산 및 승산과 같은 기본 산술 연산을 지원하기 위해, 먼저 두 피연산자가 호환되는 클래스(평문 및 비밀 지분 클래스)에서 캐스팅될 수 있다는 것을 보장할 필요가 있다. 따라서, 캐스팅 연산이 주어진 파라미터 세트에 대한 표현을 다른 파라미터 세트에 대한 표현으로 효율적으로 변환할 수 있게 하는 것이 중요하다. 이 섹션에서, 주어진 클래스
Figure pct00197
로부터의 모듈러 지분의 세트를 상이한 파라미터
Figure pct00198
,
Figure pct00199
를 갖는 다른 클래스
Figure pct00200
로부터의 다른 모듈러 지분 세트로 변환하는 방식을 설명한다. 캐스팅 연산은 파라미터
Figure pct00201
Figure pct00202
를 감소시키거나 증가시키는지 여부에 따라 통신이 필요하거나 필요하지 않을 수 있다.
도 3은 파라미터
Figure pct00203
Figure pct00204
중 하나를 증가시키거나 감소시키는지 여부에 따라 클래스 사이에서 표현을 캐스팅하기 위한 네 가지 캐스팅 연산을 예시한다. 이 네 가지 캐스팅 연산은 확장(Extend), 반올림(Round), 투영(Project) 및 승급(Lift)을 포함한다(승급은 앞서 설명한 네 가지 자연 승급(natural lift)과 구별됨).
도 4는 예제 입력 값에 대한 네 가지 캐스팅 연산 각각의 예시적 응용을 예시한다. 예시된 예에서, 평문 값 x = 1011.1(2)에 대한 모듈러 지분은
Figure pct00205
에서 모듈러 지분 x1 = 001000.10 및 x2 = 000011.00로 두 당사자 사이에서 비밀 공유된다. 이 예는 지분 x1가 상이한 파라미터
Figure pct00206
또는
Figure pct00207
를 사용하여 다른 모듈러 수치로 캐스팅되는 방식을 보여준다. 단순화를 위해 연산은 스칼라로 표시되지만 보다 일반적으로 이러한 모든 연산은 임의의 벡터/행렬/텐서의 각 계수에 대해 독립적으로 수행된다.
확장((
Figure pct00208
): 확장 캐스팅 연산은 각 입력 지분에 추가적 최하위 비트를 추가하고 새로운 최하위 비트를 표현의 새로운 비트를 채우기 위해 새로운 표현에서 0으로 설정한다. 확장 연산에는 당사자 사이의 통신이 필요하지 않다.
반올림(
Figure pct00209
): 반올림 캐스팅 연산은 각 입력 지분에서 최하위 비트를 삭제한다. 반올림 캐스팅 연산은 지분을 보유한 당사자 사이의 통신 여부에 무관하게 구현될 수 있다. 반올림 캐스팅 연산이 통신 없이 구현되는 경우 각 당사자는 그 지분으로부터 로컬로 최하위 비트를 제거하기 위해 반올림한다. 이 구현은, 캐리 관련 오류(carry-related error)로 인해 평문의
Figure pct00210
최하위 비트가 정확하다는 것을 보장하지 않는다. 그러나, 반올림 캐스팅 연산은 당사자 사이의 통신과 함께 구현되어
Figure pct00211
이 올바른 평문 값에 비밀 지분이 추가되는 것을 보장할 수 있다. ShareRefresh라 지칭되는 정밀도를 보존하는 반올림 캐스팅 연산의 구현이 아래에 표시되어 있지만 이는 런타임, 메모리 및 통신 측면에서 더 비싸다.
투영(
Figure pct00212
): 또한 당사자 사이의 통신이 필요하지 않은 투영 캐스팅 연산은 다음의 같은 자연 전사 준동형사상에 따라 지분을 변환한다:
Figure pct00213
승급(
Figure pct00214
): 승급 캐스팅 연산은 당사자 사이의 통신은 물론 오프라인 및 온라인 페이즈가 필요하다. 결과를 시기마다 100% 정확하게 계산하는 승급 캐스팅 연산의 구현이 아래에 제시되어 있다. 이 구현은 연산이 확률적이고 실패 확률이 0이 아닌 이전 작업을 개선한다.
아래에서, 일 실시예에 따른 그 온라인 및 오프라인 페이즈를 갖는 승급 캐스팅 연산의 구현을 설명한다.
Figure pct00215
를 반드시 가정하지는 않음으로써 약간 더 일반적인 방식으로 이를 수행한다. 이는 종종 캐스트 연산 승급 및 지분 리프레시를 2개의 별개의 연산 대신 통신이 필요한 단일 작업으로 병합할 수 있다는 실용적인 이점을 갖는다.
3.1 정수 모듈러 표현에서 비밀 지분에 대한 승급 캐스팅 연산의 구현
이 섹션에서는 제1 모듈러 클래스
Figure pct00216
에서 지분 세트를 제2 모듈러 클래스
Figure pct00217
의 다른 지분 세트로 변환하거나 캐스팅하는 방식을 설명하고, 여기서 제2 클래스의
Figure pct00218
는 제1 클래스의
Figure pct00219
보다 크고, 여기서 제2 클래스의
Figure pct00220
는 제1 클래스의
Figure pct00221
보다 더 작거나 같거나 더 클 수 있다. 정수 모듈러 표현의 비밀 지분에 대한 이 특정 캐스트 작업을 승급(앞서 설명된 보다 일반적인 자연 승급과 구별하기 위해 굵은 글씨로 표시됨)라 지칭한다. 일 실시예에서, 승급 연산은 신뢰할 수 있는 딜러를 포함하는 다자간 계산을 위한 시스템에서 부분적으로 오프라인(당사자 사이의 통신 없음) 및 부분적으로 온라인(당사자 사이의 통신 동반)으로 실행된다.
일 실시예에 따르면, 승급 연산은 다음과 같이 마스킹되고 노출되는 비밀 공유된 MPC 컨테이너(위의 배경기술 섹션에서 소개된 것과 같음을 상기)에서 동작한다:
- 평문
Figure pct00222
의 비밀 지분
Figure pct00223
, 여기서,
Figure pct00224
- 합계 λ가
Figure pct00225
에서 균일하게 랜덤이고, 당사자에게 알려져 있지 않은 마스크 지분
Figure pct00226
.
- 모든 당사자에게 노출되고 알려져 있는 마스킹된 값
Figure pct00227
승급 연산의 목표는 동일한 평문 x의 비밀 지분
Figure pct00228
를 계산하는 것이며, 여기서,
Figure pct00229
Figure pct00230
보다 크다.
정의 4.
Figure pct00231
Figure pct00232
라고 한다.
범위
Figure pct00233
를 분리합집합
Figure pct00234
Figure pct00235
으로서 분할하고, 여기서,
Figure pct00236
Figure pct00237
이다.
선택 변수 또는 비트를 다음과 같이 정의한다:
Figure pct00238
특히,
Figure pct00239
Figure pct00240
와 등가이고, 이는
Figure pct00241
로 다시 쓰여질 수 있다. 유사하게,
Figure pct00242
Figure pct00243
와 등가이고, 이는
Figure pct00244
로 다시 쓰여질 수 있다.
캐스트 연산은
Figure pct00245
에 대해 비트
Figure pct00246
로 인코딩될 수 있는 이들 2개의 가능성을 활용한다:
Figure pct00247
또는
Figure pct00248
.
Figure pct00249
라 하면, 2가지 수학적 승급을 고려할 수 있다(둘 모두
Figure pct00250
에서).
Figure pct00251
비밀 공유된 값
Figure pct00252
Figure pct00253
범위 내에 있어야 할 필요가 있고, 이 조건이 충족되면 다음과 같은 등식을 찾는다:
Figure pct00254
또는 더 간결하게
Figure pct00255
이 수학식을 다음과 같이 논리적으로 다시 쓸 수 있으며:
Figure pct00256
(1)
이는
Figure pct00257
의 값에 따라 값
Figure pct00258
Figure pct00259
사이에서 효과적으로 선택하기 위한 것이다.
Figure pct00260
에 대한 지분 모듈로
Figure pct00261
를 얻기 위해(제2 클래스로의
Figure pct00262
의 마스킹 해제), 자연 전사함수
Figure pct00263
를 통해 토러스
Figure pct00264
로 상기 등식을 투영할 수 있다. 신뢰할 수 있는 딜러는
Figure pct00265
의 이미지
Figure pct00266
를 미리 계산하고 비밀 공유할 수 있기 때문에(
Figure pct00267
에서), 당사자는 다음에 대한 지식 없이
Figure pct00268
를 복구할 수 있고:
Figure pct00269
이는 위의 수학식 (1)에 기초하여
Figure pct00270
와 함께 온라인 페이즈에서 이루어진다.
이는 더 구체적으로 다음과 같이 수행될 수 있다.
Figure pct00271
에 대해,
Figure pct00272
라 한다. 당사자는 노출된 마스킹된 값
Figure pct00273
을 기초로
Figure pct00274
를 결정할 수 있다. 신뢰할 수 있는 딜러는
Figure pct00275
를 미리 계산하고 당사자 사이에서 이를
Figure pct00276
로 비밀 공유한다.
Figure pct00277
의 비밀 공유는 <
Figure pct00278
에서 수행될 수 있지만,
Figure pct00279
의 이진 표현의 최상위
Figure pct00280
비트를 제외한 모두는 항상 0임을 유의한다. 따라서, 당사자가
Figure pct00281
Figure pct00282
의 지분에 대한 승산을 수행하기 위해서는 신뢰할 수 있는 딜러가 더 작은 모듈러 클래스
Figure pct00283
를 사용하여 비트
Figure pct00284
를 비밀 공유하는 것으로 충분하다.
요약하자면, 신뢰할 수 있는 딜러는 다음을 수행할 필요가 있다:
1. 랜덤 마스크
Figure pct00285
생성
2. 선택 비트
Figure pct00286
를 계산하고, 이를
Figure pct00287
에서 비밀 공유
3. 해당
Figure pct00288
Figure pct00289
로의 특정 승급
Figure pct00290
를 계산하고, 이를
Figure pct00291
에서 비밀 공유. 더 정확하게,
Figure pct00292
여기서, 함수
Figure pct00293
는 실수
Figure pct00294
와 정수
Figure pct00295
를 취하고,
Figure pct00296
Figure pct00297
의 가장 가까운 정수 배수로 반올림한다. 그 다음,
Figure pct00298
Figure pct00299
에서
Figure pct00300
로서 비밀 공유될 수 있다.
계산의 온라인 페이즈에서 당사자는 승급
Figure pct00301
Figure pct00302
to
Figure pct00303
를 사용하고, 상기
Figure pct00304
의 계산에서 불확정 선택을 위해 최상위
Figure pct00305
비트를 추출할 뿐이다.
3.1.1 승급 연산의 의사코드 구현
도 5는 일 실시예에 따른 승급 연산의 오프라인 페이즈의 의사코드 구현을 예시한다. 도 6은 이 실시예에 따른 승급 연산의 온라인 페이즈의 의사코드 구현을 예시한다.
앞서 설명한 roundTo 함수에 추가하여, 도 5 및 도 6에 예시된 승급 연산은 입력으로 클래스의 값과 명세(specification)를 취하고 클래스의 공급된 명세의 표현에서 입력 값에 합산하는 복수의 비밀 지분을 출력하는 secretShares 함수를 활용한다.
도 6에 예시된 연산의 온라인 페이즈와 관련하여, 연산
Figure pct00306
(
Figure pct00307
Figure pct00308
에 대해)를 다음과 같이 정의한다:
-
Figure pct00309
는 끝에서
Figure pct00310
0들로 확장된다.
이 정의에서,
Figure pct00311
함수는
Figure pct00312
의 N개의 최상위 비트를 출력한다.
3.2 ShareRefresh 연산
정의 5.
Figure pct00313
Figure pct00314
Figure pct00315
가 되도록 하는 파라미터의 2개의 쌍이라고 한다. 맵
Figure pct00316
는 다음과 같이 정의된다:
Figure pct00317
에 대해,
Figure pct00318
Figure pct00319
에서 그 대표 중 임의의 것이라고 하고, 다음을 설정한다:
Figure pct00320
다음과 같이 다시 쓸 수 있음을 알 수 있다:
Figure pct00321
표기 참고: 표기
Figure pct00322
는 수치 x를 가장 가까운 정수로 반올림하는 것을 나타내기 위해 본 출원에서 사용된다.
명제 1. 정의 5는 잘 정의되어 있고, 즉, 대표
Figure pct00323
의 선택에 의존하지 않는다.
증명.
Figure pct00324
라고 하고
Figure pct00325
Figure pct00326
에서
Figure pct00327
의 2개의 대표라 한다. 정의에 따르면,
Figure pct00328
가 되도록 하는
Figure pct00329
가 존재한다.
Figure pct00330
이므로
Figure pct00331
가 된다. 특히,
Figure pct00332
이다.
Figure pct00333
이기 때문에,
Figure pct00334
를 얻는다.
이 시점부터,
Figure pct00335
Figure pct00336
가 명제 1의 가정을 충족한다고 가정한다.
일 실시예에서, 지분 리프레시 연산은 부분적으로 오프라인(당사자 사이의 통신이 없음) 및 부분적으로 온라인(당사자 사이의 통신 있음)으로 실행된다. 도 7은 일 실시예에 따른 지분 리프레시 연산의 오프라인 페이즈의 의사코드 구현을 예시한다. 도 8은 이 실시예에 따른 지분 리프레시 연산의 온라인 페이즈의 의사코드 구현을 예시한다.
4 비버 승산(Beaver Multiplication)
4.1 ModReal 백엔드에 대한 승산
두 비밀 지분
Figure pct00337
Figure pct00338
사이의 승산은 다음과 같이 정의된다:
Figure pct00339
여기서
Figure pct00340
Figure pct00341
는 출력 파라미터라 지칭된다. 이러한 파라미터는 전형적으로 정적 분석 동안 컴파일러에 의해 결정된다.
4.2 파라미터 계산 수학식
다음 수학식은 다음과 같은 비버 승산 연산의 도표 및 설명과 함께 사용되는 다양한 파라미터의 계산을 보여준다:
-
Figure pct00342
-
Figure pct00343
-
Figure pct00344
-
Figure pct00345
-
Figure pct00346
-
Figure pct00347
-
Figure pct00348
-
Figure pct00349
4.3 모듈러 백엔드에서의 비버 승산(비밀-비밀)
도 9는 일 실시예에 따른 모듈러 표현으로 2개의 비밀 공유된 값에 대한 비버 승산 연산의 의사코드 구현을 예시한다. 도 10은 비버 승산 연산의 개요를 예시한다.
4.4 모듈러 백엔드에서의 비버 승산(비밀-공개)
도 11은 일 실시예에 따른 모듈러 표현의 하나의 비밀 공유된 값과 하나의 공개 값에 대한 비버 승산 연산의 의사코드 구현을 예시한다. 도 12는 비버 승산 연산의 개요를 예시한다.
5 선형 조합(Linear Combination)
c(1),…,c( n )이 배정도 부동 소수점 수치로 주어진 공개 실수라 하고,
Figure pct00350
,…,
Figure pct00351
이 대응 파라미터
Figure pct00352
,
Figure pct00353
,
Figure pct00354
를 갖는 비밀 지분이라 한다.
Figure pct00355
,
Figure pct00356
, 및
Figure pct00357
라 하고, 여기서 소수(prime) p의 경우
Figure pct00358
은 정수 m∈
Figure pct00359
의 p-adic 평가를 나타낸다. 실제로 이러한 정수는 64 비트 부호 있는 정수로 표현될 수 있다. 공개 벡터
Figure pct00360
가 계수에 대한 근사치가 될 것이다. 위의 24를 선택한 것은 타입 float32의 평문과 유사하게 하기 위한 것이며, 여기서 가수는 24 비트이다.
목표는 다음의 비밀 지분을 계산하는 것이며:
Figure pct00361
대응 파라미터
Figure pct00362
Figure pct00363
를 사용한다. 우리는 입력 지분이 부동 소수점 표현 또는 모듈러 표현에서 동시에 있다고 가정한다. 일 실시예에서, 혼합 입력은 지원되지 않으며 명시적 캐스트가 필요하다. 그러나 출력 백엔드는 입력 백엔드와 상이할 수 있다(예를 들어, 부동 소수점 표현의 입력과 모듈러 표현의 출력을 갖는 것은 괜찮음).
5.1 디폴트 출력 파라미터
출력에 이용 가능한 수 있는 평문 파라미터가 없는 경우, 컴파일러의 통계 분석기는 다음 전파 공식을 사용하여 결과의 통계를 추정할 수 있다: 모든 평문이 평균 및 분산
Figure pct00364
,
Figure pct00365
의 독립변수인 경우, 이때, 출력
Figure pct00366
의 평균 및 분산은 다음과 같다:
Figure pct00367
Figure pct00368
마지막 공식은 독립 변수에 대해서만 참임을 유의한다. 일 실시예에서, 합계의 분산에 대해 다음 추정치를 사용한다:
Var(X + Y) = Var(X) + Var(Y) + 2Cov(X, Y) ≤
≤ Var(X) + Var(Y) +
Figure pct00369
.
이 전파 공식을 기초로, 컴파일러는 이미 출력 컨테이너에 대해 합리적인
Figure pct00370
,
Figure pct00371
를 추론한 다음 계산의 정확성과 보안을 보장하기 위해
Figure pct00372
를 할당할 수 있다. 컴파일러가 독립성을 가정할 수 없는 경우, 예를 들어 가짜 값에 대한 시뮬레이션과 같은 다른 기술을 사용하여 결과 통계를 추정해야 한다.
5.2 클리닝 단계
일 실시예에서, 선형 조합을 실행하기 전에 컴파일러는 다음과 같이 선형 조합 입력을 사전 처리한다: 모든 1 ≤ i ≤ n에 대해,
-
Figure pct00373
인 모든 인덱스 i를 제거한다.
- 다음과 같은 모든 인덱스 i를 제거한다:
Figure pct00374
. 이는 이 항이 무시 가능하고 버릴 수 있음을 의미한다. 항을 하나씩 동적으로 제거하는 경우, 위 부등식의 우측은 변경되지 않을 것임에 유의한다(제거된 항은 최대값과 동일한 plsb을 가질 수 없음).
도 13은 클리닝 단계가 수행될 수 있는 예시적인 입력을 예시한다. 예에서, 라벨 1인 간격은 pmsb 위치가 나머지 간격의 최대 plsb 위치의 좌측에 있기 때문에 무시할 수 있으므로 버려야 한다.
더욱이,
Figure pct00375
을 나머지 인덱스 세트로 하면, 다음 기준에 따라 테스트할 수 있다(출력 파라미터는 입력 파라미터 윈도우와 교차해야함) :
- 다음 부등식을 보장한다
Figure pct00376
그렇지 않으면, 결과를 무시할 수 있는 것이거나 0인 것으로 선언한다.
- 다음 부등식을 보장한다
Figure pct00377
그렇지 않으면, 정의되지 않은 거동이 발생한다.
5.3 선형 조합 빌트인: ModReal 경우
일 실시예에서, 컴파일러는 선형 조합을 위한 2개의 작용 파라미터를 제공한다:
Figure pct00378
Figure pct00379
. 이들은 다음 속성을 충족하는 방식으로 선택된다:
- 입력의 ModReal 지분 클래스
Figure pct00380
로의 승급은 개별 스칼라 곱
Figure pct00381
이 오버플로우 없이 계산될 수 있고 충분한 정밀도를 유지할 수 있는 것(후자는 정확하게 정의될 것임)을 보장한다.
- 모든 개별 항(스칼라 곱; 이들 중 n개가 있음)의 모든 비밀 지분(이들 중 k개가 존재)의 합계는 오버플로우 없이 이 클래스에서 계산될 수 있다(후자는 정확하게 정의될 것임).
이는 다음과 같은 디폴트 파라미터 선택이 합리적이게 한다:
-
Figure pct00382
,
-
Figure pct00383
,
-
Figure pct00384
,
-
Figure pct00385
.
각 1 ≤ i ≤ n에 대해, i번째 입력 컨테이너는 파라미터
Figure pct00386
Figure pct00387
를 사용하여 ModReal 수치로 먼저 캐스팅된다.
Figure pct00388
일 때, 이는 승급 트리플릿(컨테이너의 마스크 λ 및 2개의 임시 미리 계산된 데이터 b, ν 수반)이 필요하다. 그 다음,
Figure pct00389
에 의한 승산은 파라미터
Figure pct00390
Figure pct00391
의 직렬화 가능한 값을 산출하며, 이는 다른 값과 누적된다. 마지막으로, 합계는 출력 파라미터로 캐스팅된다.
도 14는 일 실시예에 따른 ModReal 표현을 사용한 선형 조합 연산의 의사코드 구현을 예시한다. 도 15는 선형 조합 연산의 개요를 예시한다.
6 실수 값 함수의 푸리에 근사
일반적으로, 복소 값 함수
Figure pct00392
의 푸리에 근사는 다음 형식으로 주어질 것이고,
Figure pct00393
여기서
Figure pct00394
는 주기이고
Figure pct00395
이다. 계수
Figure pct00396
은 일반적으로 복소수이지만
Figure pct00397
가 실수값 함수이면 이때
Figure pct00398
for
Figure pct00399
Figure pct00400
이다. 이때, 다음을 얻는다:
Figure pct00401
이는 다음의 변환을 산출한다:
Figure pct00402
푸리에 항은
Figure pct00403
에 대해 트리플
Figure pct00404
이 될 것이고, 여기서,
Figure pct00405
은 실수 계수이고
Figure pct00406
은 위상이다.
예로서, 시그모이드 함수
Figure pct00407
를 고려한다. 실수 값 함수
Figure pct00408
는 이때 홀수이며, 이는 위상
Figure pct00409
이 모두
Figure pct00410
와 같음을 암시한다.
6.1 푸리에 급수 평가: ModReal 경우
이제
Figure pct00411
및 비밀 지분
Figure pct00412
에 대해 수학식 (2)을 평가하는 방식을 설명한다.
마스크
Figure pct00413
임을 상기한다.
신뢰할 수 있는 딜러는 먼저 마스크
Figure pct00414
, 대응 비트
Figure pct00415
를 계산한 다음
Figure pct00416
에 대해 벡터
Figure pct00417
를 계산하고 비밀 공유한다(오프라인 페이즈에서).
그 다음, 온라인 계산은 다음과 같이 수행된다:
1.
Figure pct00418
Figure pct00419
의 요소로 계산.
2.
Figure pct00420
Figure pct00421
의 비밀 지분을 사용하여 올바른 승급
Figure pct00422
를 계산. 이는
Figure pct00423
이기 때문에 가능하다.
3.
Figure pct00424
for
Figure pct00425
를 계산(이는 승급
Figure pct00426
을 필요로 하고, 단지 원본
Figure pct00427
를 필요로 하는 것은 아니다)
4.
Figure pct00428
의 비밀 지분을 계산. 이를 위해서는 특정 평문 클래스의 로컬 승산이 결정될 필요가 있다.
결과의 평문 파라미터를 결정하기 위해 전체 계산이
Figure pct00429
비트의 최대 수치 윈도우 내에서 발생한다는 제약을 부과한다(예를 들어, 백엔드에서 64 비트 정수만을 사용하기를 원하는 경우
Figure pct00430
).
먼저,
Figure pct00431
는 트라이벌 바운드(trivial bound)를 사용하여 추정할 수 있다, 즉, 다음과 같다:
Figure pct00432
최적의
Figure pct00433
를 얻기 위해,
Figure pct00434
를 수치 윈도우라고 하며, 즉
Figure pct00435
이다.
Figure pct00436
이라고 하면 제약 조건은 부등식으로 주어진다:
Figure pct00437
즉,
Figure pct00438
이는 계산의 출력에 대한 최대 수치 윈도우를 결정할 필요가 있음을 의미한다. 이 부등식이 유지되어야 하는 이유를 찾기 위해, 곱의 각 승수에 대해
Figure pct00439
비트의 정밀도가 필요한 경우 다음과 같고,
Figure pct00440
따라서
Figure pct00441
임에 유의한다. 그런 다음, 이러한 항의
Figure pct00442
의 합계를 취하고, 모듈러 지분 클래스에 대해 2개의 추가 비트를 추가해야 한다. 따라서, 다음과 같이 설정할 수 있다:
Figure pct00443
또한, 컴파일러는 푸리에 급수 빌트인에 대한 작용 파라미터를 제공할 필요가 있다:
-
Figure pct00444
- 마스킹된 값
Figure pct00445
에 대한 승급 파라미터,
-
Figure pct00446
- 마스크
Figure pct00447
에 대한 승급 파라미터.
작용 파라미터를 결정하기 위해, 최하위 비트 위치를 결정하는 것으로 시작한다(충분한 정밀도를 보장하기 위해 이 작업을 수행함). 다음 공식은 합리적이다:
-
Figure pct00448
Figure pct00449
,
-
Figure pct00450
Figure pct00451
.
이 선택에는 몇 가지 정당성이 필요하다: 파라미터
Figure pct00452
Figure pct00453
의 계산에서 크기
Figure pct00454
의 수치 윈도우를 갖는 것을 보장한다. 실제로, 해당 수량의 최상위 비트 위치는
Figure pct00455
이므로 소수부에 적어도
Figure pct00456
이진 자릿수가 필요하다. 그러나 계산은 비버에 대한 두 입력 모두 동일한 수치 윈도우를 필요로 한다고 가정하고, 즉, 맵으로 볼 수 있는 승산을 갖는다.
Figure pct00457
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)

  1. 비밀 공유된 값에 대한 다자간 계산을 수행하도록 구성된 보안 다자간 계산 시스템(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 모듈러 표현에서 비밀 공유된 값을 협력하여 계산하는 것을 포함하는, 방법.
  2. 청구항 1에 있어서,
    상기 제1 수학적 승급 및 상기 제2 수학적 승급은 상기 제1 모듈러 표현의 범위의 1/4만큼 오프셋된 값을 서로에 대하여 생성하고,
    상기 제2 수학적 승급 및 상기 제3 수학적 승급은 상기 제1 모듈러 표현의 범위의 1/2만큼 오프셋된 값을 서로에 대하여 생성하는, 방법.
  3. 청구항 1에 있어서, 상기 제1 수학적 승급(mathematical lift), 상기 제2 수학적 승급, 및 상기 제3 수학적 승급은,
    Figure pct00458
    로 파라미터화된(parameterized) 쿼터모드 승급(quartermod lift) - 여기서
    Figure pct00459
    은 상기 제1 모듈러 표현의 최상위 비트 위치임 -,
    Figure pct00460
    로 파라미터화된 센터모드 승급(centermod lift), 및
    Figure pct00461
    로 파라미터화된 포스모드 승급(posmod lift)으로 구성되는 그룹으로부터 각각 선택되는, 방법.
  4. 청구항 1에 있어서,
    상기 제1 수학적 승급은
    Figure pct00462
    로 파라미터화된 상기 마스킹 값에 대한 쿼터모드 승급이고,
    상기 제2 수학적 승급은
    Figure pct00463
    로 파라미터화된 상기 마스킹된 값에 대한 센터모드 승급이고,
    상기 제3 수학적 승급은
    Figure pct00464
    로 파라미터화된 상기 마스킹된 값에 대한 포스모드 승급이고,
    여기서,
    Figure pct00465
    은 상기 제1 모듈러 표현의 최상위 비트 위치인, 방법.
  5. 청구항 4에 있어서,
    Figure pct00466
    로 파라미터화된 x에 대한 쿼터모드 승급은 고유 실수(unique real)
    Figure pct00467
    로 정의되고, 그래서,
    Figure pct00468
    이고,
    Figure pct00469
    로 파라미터화된 x에 대한 센터모드 승급은 고유 실수
    Figure pct00470
    로 정의되고, 그래서,
    Figure pct00471
    이며,
    Figure pct00472
    로 파라미터화된 x에 대한 포스모드 승급은 고유 실수
    Figure pct00473
    이고, 그래서,
    Figure pct00474
    인, 방법.
  6. 청구항 5에 있어서,
    상기 제1 변환은,
    상기 제1 수학적 승급의 결과를
    Figure pct00475
    의 가장 가까운 배수로 반올림하는 것- 여기서
    Figure pct00476
    는 상기 제2 모듈러 표현의 최하위 비트 위치임 -, 및
    상기 반올림의 모듈로(modulo)
    Figure pct00477
    를 취하는 것- 여기서
    Figure pct00478
    은 상기 제2 모듈러 표현의 최상위 비트 위치임 -을 더 포함하고,
    상기 제2 변환은,
    상기 제2 수학적 승급의 결과를
    Figure pct00479
    의 가장 가까운 배수로 반올림하는 것, 및
    상기 반올림의 모듈로(modulo)
    Figure pct00480
    를 취하는 것을 더 포함하고;
    상기 제3 변환은,
    상기 제3 수학적 승급의 결과를
    Figure pct00481
    의 가장 가까운 배수로 반올림하는 것, 및
    상기 반올림의 모듈로(modulo)
    Figure pct00482
    를 취하는 것을 더 포함하는, 방법.
  7. 청구항 1에 있어서, 상기 제1 변환, 상기 제2 변환 및 상기 제3 변환 각각은 상기 관련된 수학적 승급의 결과를
    Figure pct00483
    에 투영하는 것(projecting)을 포함하며, 여기서
    Figure pct00484
    은 상기 제2 모듈러 표현의 최상위 비트 위치인, 방법.
  8. 청구항 1에 있어서, 상기 "복수의 미리 결정된 비중첩(non-overlapping) 서브 범위"는 2개의 동일한 크기의 서브 범위로 구성되고, 상기 수치 서브 범위 식별자는 수치 0과 1로 구성된 그룹에서 선택되는, 방법.
  9. 청구항 8에 있어서, 상기 비밀 공유된 수치 서브 범위 식별자가 상기 제2 모듈러 표현에서 상기 비밀 공유된 값을 계산하는 데 사용하기 위해 상기 제1 변환된 마스킹된 값과 상기 제2 변환된 마스킹된 값 사이에서 선택하도록 협력하여 상기 당사자 계산 시스템에 의해 사용되는, 방법.
  10. 청구항 1에 있어서, 상기 제1 모듈러 표현 및 상기 제2 모듈러 표현은 실수의 고정 소수점 정수 표현(fixed point integer representation)인, 방법.
  11. 비밀 공유된 값에 대한 다자간 계산을 수행하도록 구성된 보안 다자간 계산 시스템에 의해 수행되는 방법에 있어서, 상기 보안 다자간 계산 시스템은 보안 네트워크 통신에서 복수의 당사자 계산 시스템을 포함하며, 상기 방법은 비밀 공유된 값을 제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 모듈러 표현에서 비밀 공유된 값을 협력하여 계산하는 것을 포함하는, 방법.
  12. 청구항 11에 있어서, 상기 제1 변환, 상기 제2 변환 및 상기 제3 변환 각각은 상기 관련된 수학적 승급의 결과를
    Figure pct00485
    에 투영하는 것을 포함하며, 여기서,
    Figure pct00486
    은 상기 제2 모듈러 표현의 최상위 비트 위치인, 방법.
  13. 청구항 11에 있어서, 상기 "복수의 미리 결정된 비중첩 서브 범위"는 2개의 동일한 크기의 서브 범위로 구성되고, 상기 수치 서브 범위 식별자는 수치 0과 1로 구성된 그룹에서 선택되는, 방법.
  14. 청구항 13에 있어서, 상기 비밀 공유된 수치 서브 범위 식별자가 상기 제2 모듈러 표현에서 상기 비밀 공유된 값을 계산하는 데 사용하기 위해 상기 제1 변환된 마스킹된 값과 상기 제2 변환된 마스킹된 값 사이에서 선택하도록 협력하여 상기 당사자 계산 시스템에 의해 사용되는, 방법.
  15. 청구항 11에 있어서, 상기 제1 모듈러 표현 및 상기 제2 모듈러 표현은 실수의 고정 소수점 정수 표현인, 방법.
  16. 각각의 초기 모듈러 표현에 저장된 제1 비밀 공유된 값과 각각의 초기 모듈러 표현에 저장된 제2 비밀 공유된 값의 승산(multiplication)을 수행하기 위한 방법에 있어서, 상기 방법은,
    청구항 11의 방법에 따라, 상기 제1 비밀 공유된 값 및 상기 제2 비밀 공유된 값 둘 모두가 공통 모듈러 표현에 저장되도록 상기 제1 비밀 공유된 값 및 상기 제2 비밀 공유된 값 중 적어도 하나를 상기 공통 모듈러 표현으로 캐스팅하는 단계(casting); 및
    상기 공통 모듈러 표현에서 상기 제1 비밀 공유된 값 및 상기 제2 비밀 공유된 값에 대해 비버 승산(beaver multiplication)을 수행하는 단계를 포함하는, 방법.
  17. 각각의 초기 모듈러 표현에 각각 저장되어 있는 복수의 비밀 공유된 값과 대응하는 복수의 정적 계수(static coefficient)를 조합하는 방법에 있어서, 상기 방법은,
    청구항 11의 방법에 따라, 복수의 비밀 공유된 값 모두가 공통 모듈러 표현에 저장되도록 상기 복수의 비밀 공유된 값 중 적어도 하나를 상기 공통 모듈러 표현으로 캐스팅하는 단계; 및
    상기 공통 모듈러 표현에 저장된 상기 복수의 비밀 공유된 값과 대응하는 복수의 정적 계수에 대해 선형 조합(linear combination)을 수행하는 단계를 포함하는, 방법.
  18. 비밀 공유된 값에 대한 연속 함수를 평가하는 방법에 있어서,
    결정된 복수의 푸리에 급수로부터, 상기 비밀 공유된 값에 기초하여 푸리에 급수를 선택하는 단계- 상기 결정된 복수의 푸리에 급수 각각은 상기 연속 함수의 도메인의 관련된 서브 구간에 대해 상기 연속 함수를 근사하도록 구성됨 -;
    상기 선택에 기초하여, 청구항 11의 방법에 따라, 제1 모듈러 표현으로부터 제2 모듈러 표현으로 상기 비밀 공유된 값을 캐스팅하는 단계; 및
    상기 선택된 푸리에 급수를 사용하여 상기 제2 모듈러 표현에서 상기 비밀 공유된 값에 대한 상기 연속 함수의 값을 근사화하는 단계를 포함하는, 방법.
  19. 복수의 컴퓨터 시스템을 포함하는 시스템에 있어서, 상기 복수의 컴퓨터 시스템은 청구항 1 내지 18 중 어느 한 항의 방법을 수행하도록 구성된, 시스템.
  20. 복수의 컴퓨터 시스템에 의해 실행될 때, 상기 복수의 컴퓨터 시스템으로 하여금 청구항 1 내지 18 중 어느 한 항의 방법을 수행하게 하는 컴퓨터 코드로 인코딩된 비일시적 컴퓨터 판독 가능 매체.
KR1020217026016A 2019-02-22 2020-02-24 모듈러 정수를 사용한 보안 다자간 계산을 위한 산술 KR20210127168A (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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) 数据分解任务的处理方法、装置、存储介质及电子装置