JP7540501B2 - 秘匿msb正規化システム、分散処理装置、秘匿msb正規化方法、およびプログラム - Google Patents

秘匿msb正規化システム、分散処理装置、秘匿msb正規化方法、およびプログラム Download PDF

Info

Publication number
JP7540501B2
JP7540501B2 JP2022556803A JP2022556803A JP7540501B2 JP 7540501 B2 JP7540501 B2 JP 7540501B2 JP 2022556803 A JP2022556803 A JP 2022556803A JP 2022556803 A JP2022556803 A JP 2022556803A JP 7540501 B2 JP7540501 B2 JP 7540501B2
Authority
JP
Japan
Prior art keywords
shift
vector
msb
unit
bit
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2022556803A
Other languages
English (en)
Other versions
JPWO2022079891A1 (ja
Inventor
大 五十嵐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2022079891A1 publication Critical patent/JPWO2022079891A1/ja
Application granted granted Critical
Publication of JP7540501B2 publication Critical patent/JP7540501B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/012Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/74Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)

Description

本発明は、秘密計算において、最上位ビット(以下「MSB」(Most Significant Bit)ともいう)を所定のビット位置に合わせる技術(以下、「MSB合わせ」ともいう)に関する。
平文では積和演算は加算の繰り返しだが、秘密分散ベースの秘密計算では計算効率を上げるために並列処理できる必要がある(非特許文献1,2参照)。また精度も考慮すると和、積和については特別に演算を構成する必要がある。
西出隆志,天田拓磨,「通信量を削減した浮動小数点演算のためのマルチパーティ計算」,情報処理学会論文誌,Vol. 60, No.9, pp. 1433- 1447, 2019. Randmets, J.,"Programming Languages for Secure Multiparty Computation Application Development", PhD thesis. University of Tartu. 2017.
積和は出力が高ビットになるため入力時点でMSBを一定に抑えたいが、単純に右シフトすると、小さい入力が桁落ちして精度が落ちるという課題がある。
本発明は、ベクトルに含まれる要素の中で最も絶対値の大きいデータのMSB(ベクトルMSBと呼ぶ)を所定のビット位置に合わせるようなシフトでベクトル全体を一斉にシフトすること(ベクトルMSB正規化と呼ぶ)で精度を保ったままMSB合わせを行うことができる秘匿MSB正規化システム、分散処理装置、秘匿MSB正規化方法、およびプログラムを提供することを目的とする。
上記の課題を解決するために、本発明の一態様によれば、秘匿MSB正規化システムは、n個の分散処理装置を含む。n個の分散処理装置は、それぞれビット分解部、論理和取得部、シフト量取得部およびシフト部を含む。n個のビット分解部は、(k,n)-秘密分散したシェアのベクトル[[a]]Pをビット分解し、ベクトル[[a]]Pのビット表現[[a]]2^Lを得、n個の論理和取得部は、ビット表現[[a]]2^Lの各ビット位置のベクトル[[ai]]に対して、全要素の論理和[[Ai]]2を取得し、n個のシフト量取得部は、論理和[[A0]]2,…,[[AL-1]]2の最上位ビットを固定位置にシフトさせるためのシフト量ρを法pで(k,n)-複製秘密分散したシェア<<ρ>>pを求め、n個のシフト部は、ベクトル[[a]]pの各要素をρビット左シフトさせたベクトル[[2ρ→a]]pを求める。
上記の課題を解決するために、本発明の他の態様によれば、分散処理装置は、秘匿MSB正規化システムに含まれる。分散処理装置は、(n-1)個の分散処理装置とともに、(k,n)-秘密分散したシェアのベクトル[[a]]Pをビット分解し、ベクトル[[a]]Pのビット表現[[a]]2^Lを得るビット分解部と、(n-1)個の分散処理装置とともに、ビット表現[[a]]2^Lの各ビット位置のベクトル[[ai]]に対して、全要素の論理和[[Ai]]2を取得する論理和取得部と、(n-1)個の分散処理装置とともに、論理和[[A0]]2,…,[[AL-1]]2の最上位ビットを固定位置にシフトさせるためのシフト量ρを法pで(k,n)-複製秘密分散したシェア<<ρ>>pを求めるシフト量取得部と、(n-1)個の分散処理装置とともに、ベクトル[[a]]pの各要素をρビット左シフトさせたベクトル[[2ρ→a]]pを求めるシフト部とを含む。
本発明によれば、精度を保ったままMSB合わせを行うことができるという効果を奏する。
第一、第二、第三実施形態に係る秘匿MSB正規化システムの構成例を示す図。 第一実施形態に係る秘匿MSB正規化システムの処理フローの例を示す図。 第一実施形態に係る分散処理装置の機能ブロック図。 第二実施形態に係る秘匿MSB正規化システムの処理フローの例を示す図。 第二実施形態に係る分散処理装置の機能ブロック図。 第三実施形態に係る秘匿MSB正規化システムの処理フローの例を示す図。 第三実施形態に係る分散処理装置の機能ブロック図。 実機実験の結果を示す図。 本手法を適用するコンピュータの構成例を示す図。
以下、本発明の実施形態について、説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。以下の説明において、テキスト中で使用する記号「」等は、本来直後の文字の真上に記載されるべきものであるが、テキスト記法の制限により、当該文字の直前に記載する。式中においてはこれらの記号は本来の位置に記述している。また、ベクトルや行列の各要素単位で行われる処理は、特に断りが無い限り、そのベクトルやその行列の全ての要素に対して適用されるものとする。
<第一実施形態>
まず、本実施形態における記法について説明する。
<記法>
◎ k:秘密分散の閾値。例えば2とする。
◎ n:秘密分散の分散数、言い換えると、秘密計算のパーティ数。例えば3とする。
◎ P:素数。本実施形態ではメルセンヌ素数261-1を想定し、処理の効率化を図る。
◎ p:Pのビット数。Pがメルセンヌ素数のとき、やはり素数であり、61である。
◎ Q:剰余環の位数。P、pや、浮動小数点の指数部に使う位数を含む一般的な位数を意味する。浮動小数点の指数部のシェアに用いたときは特に213-1を想定する。
◎ L:格納されるデータの最大ビット長。pより小さいことを想定する。
◎ λ:格納される指数部の最大ビット長。10以下を想定する。
◎ [[x]]y:mod y要素xを(k,n)-秘密分散したシェア。
◎ <x>y:mod y要素xを(k,k)-加法的秘密分散したシェア。
◎ <<x>>y:mod y要素xを(k,n)-複製秘密分散したシェア。なお、(k,n)-秘密分散であるため、[[x]]yの形式のシェアに適用できるプロトコルはこのシェアにも適用できる。この記法の場合、特に複製秘密分散の性質を利用していることを意味する。
◎[[x]]2^m:[[x]]2の形式のシェアをm個並べたシェア。数値のビット表現と見なすこともある。なお、添え字におけるA^BはABを、A_BはABを意味する。
◎ ρ○a:ベクトルaにローテーションρを施したベクトル。ローテーションは数でもあり置換でもあるため、要素ごとの乗算ρaと区別する。
◎ x≒y:xとyは計算機上の実数として等しい。すなわち、差が一定の誤差範囲内である。
◎ a/d:小数点以下切り捨ての整数除算。特に2べき数での整数除算は右シフトと等しい。
Figure 0007540501000001
◎ {命題}:命題が成り立てば1、成り立たなければ0。
次に、本実施形態で用いる(k,n)-秘密分散、(k,k)-加法的秘密分散の2つの秘密分散について説明する。
<(k,n)-秘密分散>
(k,n)-秘密分散とは、入力された平文をn個の断片(シェアと呼ぶ)に分割し、それぞれn個の異なる主体(パーティと呼ぶ)に分散しておき、うち任意のk個のシェアが揃えば復元でき、そしてk-1個未満では平文に関する一切の情報を得られないようなセキュリティ技術である。例えばShamirの秘密分散、複製秘密分散などがある。本実施形態では(k,n)-秘密分散で分散され、平文がある値xであるようなシェアを全て集めた組((k,n)-秘密分散値ともいう)を[[x]]のように表記する。各シェアのことは、パーティrのシェアを[[x]]y rと表記する。ここではr=0,…,n-1とする。秘密分散値は普段は各パーティに分散されているため、誰も所持しておらず仮想的である。また(k,n)-秘密分散値の列であって平文の列がxとなる列を、[[x]]のように表記する。
<(k,k)-加法的秘密分散>
(k,k)-秘密分散とは、(k,n)-秘密分散で、n=kとした場合である。全パーティのシェアが集まらない限り復元ができない。複製秘密分散による(k,k)-秘密分散は特に、加法的秘密分散と呼ばれ、k個のシェアを加算するだけで平文が復元される最もシンプルな方法である。本実施形態では法yのもとで(k,k)-加法的秘密分散で分散され、平文がある値xであるようなシェアを全て集めた組((k,k)-加法的秘密分散値ともいう)を<x>yのように表記し、パーティrのシェアを<x>y rと表記する。また(k,k)-加法的秘密分散値の列であって平文の列がxとなる列を、<x>Pのように表記する。
まず、第一実施形態に係る秘匿MSB正規化システムで使われるいくつかのプロトコルについて説明する。
<乗法的ローテーションプロトコル>
入力:(k,n)-秘密分散した数値シェア[[a]]P、ローテーション量ρを複製秘密分散したシェア<<ρ>>P
出力:(k,n)-秘密分散したシェア[[2ρa]]P
処理:数値シェア[[a]]Pとシェア<<ρ>>Pとを用いて、数値aをρビットローテーションさせた値2ρaを(k,n)-秘密分散したシェア[[2ρa]]Pを得る。この例では、k=2,n=3とする。以下、処理の詳細を説明する。
1:ラウンド1
2:数値シェア[[a]]Pを、(k,k)-加法的秘密分散したシェア<a>Pに変換する。この例では、パーティ0,1がシェア<a>pを持つ。(k,n)-秘密分散から(k,k)-加法的秘密分散への変換は、公知の技術により行うことができる。例えば、参考文献1を利用する。
(参考文献1)Kikuchi, R., Ikarashi, D., Matsuda, T., Hamada, K. and Chida, K., "Efficient Bit-Decomposition and Modulus-Conversion Protocols with an Honest Majority", Information Security and Privacy - 23rd Australasian Conference, ACISP 2018, Wollongong, NSW, Australia, July 11-13, 2018, Proceedings (Susilo, W. and Yang, G., eds.), Lecture Notes in Computer Science, Vol. 10946, Springer, pp. 64-82 (online).
3:パーティ0,1は、乱数r01、パーティ1,2はr12を共有しておく。なお、乱数は、乱数を共有するパーティの一方が生成し、他方に渡してもよいし、第三者が生成して、対応するパーティに渡してもよいし、トークン等を利用して共有してもよい。
4:パーティ0は
Figure 0007540501000002

を計算してパーティ2に送る。
5:パーティ1は
Figure 0007540501000003

を計算してパーティ0に送る。
6:ラウンド2
7:パーティ0は
Figure 0007540501000004

を計算する。
8:パーティ2は
Figure 0007540501000005

を計算する。
9:ラウンド3
10:(k,k)-加法的秘密分散したシェア<c>Pを(k,n)-秘密分散のシェア[[c]]Pに変換して出力する。ここで、c=2ρaが成り立っている。(k,k)-加法的秘密分散から(k,n)-秘密分散への変換は、公知の技術により行うことができる。例えば、参考文献1を利用する。
<フラグ列→数値シェア変換プロトコル>
入力:長さpのビットシェアベクトル[[f]]2。ただしfの中にはただ一つだけ1が存在する。
出力:fの中に存在する1の位置のmod pシェア[[b]]p
処理:ビットシェアベクトル[[f]]2を用いて、fの中に存在する1の位置bを(k,n)-秘密分散したシェア[[2ρa]]Pを得る。以下、処理の詳細を説明する。
1:一様乱数ρをmod pで(k,n)-複製秘密分散したシェア<<ρ>>pを生成する。
2:公開値出力ローテーションプロトコルにより、公開値ρ○fを計算する。なお、ρが一様乱数で、fは1カ所だけ1と決まっているため、ρ○fは数値をビット位置として表現したローテーション上の一様乱数であり、公開しても安全である。公開値出力ローテーションプロトコルとは、(k,n)-秘密分散したシェアのベクトル[[a]]と(k,n)-複製秘密分散したローテーション量ρのシェア<<ρ>>Qとを入力とし、ベクトルaをρだけローテーションさせて得られるρ○a(公開値)を得るプロトコルであり、公知の技術により実現することができる。例えば、参考文献2の公開値出力ランダム置換プロトコルの、ランダム置換の空間をランダムローテーションに制限することができる。
(参考文献2)五十嵐大、濱田浩気、菊池亮、千田浩司、「インターネット環境レスポンス1秒の統計処理を目指した,秘密計算基数ソートの改良」、SCIS 2014 The 31st Symposium on Cryptography and Information Security.
3:ρ○fの1の位置を得てb'とおく。b'は元の1の位置bに対して、b'=b+ρとなっている。
4:<<b>>p=b'-<<ρ>>pを計算して出力する。
なお、入力のビットシェアベクトル[[f]]2の長さがpより短い場合も、上位ビットに[[0]]2をパディングすることで、本プロトコルを適用することができる。
以下、本実施形態で実現するベクトルMSB正規化について説明する。
<ベクトルMSB正規化プロトコル>
入力:シェアのベクトル[[a]]P
パラメータ:入力の最大ビット数L、ベクトル長m
出力:[[2ρ→a]]P、<<ρ>>p、ただし2ρ→aのベクトルMSBはL-1ビット目とする。
処理:ベクトル[[a]]Pに含まれる要素の中で最も絶対値の大きいデータのMSB(ベクトルMSB)を固定位置(ここではL-1ビット目)に合わせるようにベクトル[[a]]P全体をシフトし、シフト後のベクトル[[2ρ→a]]Pとシフト量<<ρ>>pとを求める。以下、処理の詳細を説明する。
1:ビット分解により[[a]]Pのビット表現[[a]]2^Lを得る。ビット分解は、公知の技術により行うことができる。例えば、参考文献1を利用する。
2:[[a]]2^Lの各ビット位置0≦i<Lのベクトル[[ai]]2に対して、全要素のORをとる。aのs番目の要素をasとし、s=0,1,…,m-1、[[as]]のビット表現を[[as]]2^Lとし、[[as]]2^Lのi番目のビット位置のシェアを[[(ai)s]]2とすると、ベクトル[[ai]]=([[(ai)0]]2, …, [[(ai)m-1]]2)であり、求める論理和は、[[Ai]]2:=[[(ai)0]]2OR … OR[[(ai)m-1]]2である。
3-1: 0≦i<L-1で帰納的に、[[fi]]2:=[[fi+1∨Ai]]2とする。ただし[[fL-1]]2:=[[AL-1]]2とする。ここまでで、ビット表現f=(fL-1,fL-2,…,f0)は、0,0,0,1,1,…,1のような、MSBを境に01が並ぶ形になっている。
3-2:最大p-L個の[[1]]2を下位ビットに挿入し、([[f'0]]2,…[[f'L'-1]]2):=([[1]]2,…,[[1]]2,[[f0]]2,…[[fL-1]]2)とする。L'はLに挿入した[[1]]2の個数を足した数である。この処理により、aの全ての要素が0のときにもMSB位置が定義される。
3-3: 0≦i<L'-1で、[[xi]]2:=[[f'ixor f'i+1]]2とする。ただし[[xL'-1]]2:=[[AL-1]]2である。ここまでで、ビット表現x=(xL'-1,xL'-2,…,x0)は、0,0,0,1,0,…,0のように、MSB位置のみ1となるフラグになっている。
4:上述の<フラグ列→数値シェア変換プロトコル>により、[[xL'-1]]2,[[xL'-2]]2,…,[[x0]]2を<<ρ>>pに変換する。ただし、降順であることに注意する。
5:上述の<乗法的ローテーション>により、シェアのベクトル[[a]]Pとローテーション量の複製秘密分散したシェア<<ρ>>Pから、(k,n)-秘密分散したシェア[[2ρ→a]]Pを求め、出力する。ただし、乗法的ローテーションは、他の公知の技術により行ってもよい。
以下、上述のベクトルMSB正規化を実現するベクトルMSB正規化システムについて説明する。
<第一実施形態に係るベクトルMSB正規化システム>
図1は第一実施形態に係るベクトルMSB正規化システム1の構成例を、図2はベクトルMSB正規化システム1の処理フローの例を示す。
ベクトルMSB正規化システム1は、n個の分散処理装置100-rを含む。ただし、nは3以上の整数の何れかであり、r=0,1,…,n-1である。n個の分散処理装置100-rは、通信回線2を介して互いに通信可能である。
ベクトルMSB正規化システム1は、法Pでベクトルaの各要素asを(k,n)-秘密分散したシェア[[as]]Pのベクトル[[a]]Pを入力とし、ベクトルMSB正規化し、ベクトルMSB正規化後のベクトル[[2ρ→a]]Pとシフト量<<ρ>>pとを求め、出力する。シェア[[as]]Pの最大ビット長L、ベクトル[[a]]Pのベクトル長mをパラメータとする。
分散処理装置は、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。分散処理装置は、例えば、中央演算処理装置の制御のもとで各処理を実行する。分散処理装置に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。分散処理装置の各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。分散処理装置が備える各記憶部は、例えば、RAM(Random Access Memory)などの主記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。ただし、各記憶部は、必ずしも分散処理装置がその内部に備える必要はなく、ハードディスクや光ディスクもしくはフラッシュメモリ(Flash Memory)のような半導体メモリ素子により構成される補助記憶装置により構成し、分散処理装置の外部に備える構成としてもよい。
<分散処理装置100-r>
図3は、分散処理装置100-rの機能ブロック図の例を示す。
分散処理装置100-rは、ビット分解部101、論理和取得部103、シフト量取得部105およびシフト部107を含む。
以下、図2を用いて各部の処理について説明する。
<ビット分解部101>
n個のビット分解部101は、(k,n)-秘密分散したシェアのベクトル[[a]]Pを受け取り、
ビット分解により、ベクトル[[a]]Pのビット表現[[a]]2^Lを得る(S101)。
<論理和取得部103>
n個の論理和取得部103は、ビット表現[[a]]2^Lを受け取り、各ビット位置0≦i<Lのベクトル[[ai]]に対して、全要素の論理和[[Ai]]2を取得する(S103)。ただし、ベクトルaのs番目の要素をasとし、s=0,1,…,m-1、[[as]]のビット表現を[[as]]2^Lとし、[[as]]2^Lのi番目のビット位置のシェアを[[(ai)s]]2とすると、ベクトル[[ai]]=([[(ai)0]]2, …, [[(ai)m-1]]2)であり、求める論理和は、[[Ai]]2:=[[(ai)0]]2OR … OR[[(ai)m-1]]2である。
<シフト量取得部105>
n個のシフト量取得部105は、論理和[[Ai]]2(0≦i<L)を受け取り、最大ビット数L≦p-1をパラメータとして、ベクトル[[A]]2=([[A0]]2,…,[[AL-1]]2)のMSBを固定位置にシフトさせるためのシフト量<<ρ>>pを求める(s105)。
例えば、以下のようにして、シフト量<<ρ>>pを求める。
まず、n個のシフト量取得部105は、[[fL-1]]2:=[[AL-1]]2とし、0≦i<L-1で帰納的に、[[fi]]2:=[[fi+1∨Ai]]2とする。この処理により、ビット表現f=(fL-1,fL-2,…,f0)は、0,0,0,1,1,…,1のような、MSBを境に01が並ぶ形になる。
次に、n個のシフト量取得部105は、[[xL-1]]2:=[[AL-1]]2とし、0≦i<L-1で、[[xi]]2:=[[fixor fi+1]]2とする。この処理により、ビット表現x=(xL-1,xL-2,…,x0)は、0,0,0,1,0,…,0のように、MSB位置のみ1となるフラグになる。
最後に、n個のシフト量取得部105は、上述の<フラグ列→数値シェア変換プロトコル>により、長さpの列[[xL-1]]2,[[xL-2]]2,…,[[x0]]2,[[1]]2,…,[[1]]2を<<ρ>>pに変換する。
<シフト部107>
n個のシフト部107は、[[a]]pと<<ρ>>pとを受け取り、[[a]]pの各要素をρビット左シフトさせたベクトル[[2ρ→a]]pを求め(S107)、出力する。例えば、上述の<乗法的ローテーション>により、シェアのベクトル[[a]]Pとローテーション量の複製秘密分散したシェア<<ρ>>Pとから、(k,n)-秘密分散したシェア[[2ρa]]Pを求める。
<効果>
このような構成により、精度を保ったままMSB合わせを行うことができる。
<第二実施形態>
第一実施形態とは異なる部分を中心に説明する。
第二実施形態では、第一実施形態のベクトルMSB正規化を利用した固定小数点ベクトル積和について説明する。まず、第二実施形態に係る固定小数点ベクトル積和で使われるいくつかのプロトコルについて説明する。
<シフト量秘匿左右シフトプロトコル>
入力:数値シェア[[a]]P、正負ありうる左シフト量のシェア<<ρ>>Q
パラメータ:入力のMSB位置のとりうる上限Mmax、シェアが許容する最大のMSB位置Mlim
出力:ρビットシフトした値[[s]]P
1: まずu:=Mlim-Mmax+1とおき、
Figure 0007540501000006

とおく。uは、一回のシフト量秘匿右シフトでカバーできる右シフト量の範囲の大きさ(0~(Mlim-Mmax)をカバーする)であり、dは1~(Mmax-1)ビットの範囲の右シフトをするのに必要なシフト量秘匿右シフトの回数である。右シフト量が0以下の場合は左シフトでよく、右シフト量がMmax以上の場合、出力は常に0である。
2:商転移を使うモジュラス変換により<<ρ>>pを計算する。商転移を使うモジュラス変換は、公知の技術により行うことができる。例えば、参考文献1を利用する。
3:大小比較により、
[[f0]]2:=[[{ρ≧-Mmax+1}]]2
[[f1]]2:=[[{ρ≧-Mmax+1+u}]]2,…,
[[fd-1]]2:=[[{ρ≧-Mmax+1+(d-1)u}]]2
[[fL]]2:=[[{ρ≧0}]]2
を計算する。ここで、fL、fd-1、fd-2、…は、推移的なフラグであることに注意する。
4: mod 2→mod p変換により、[[f1]]2、[[f2]]2、…、[[fd-1]]2、[[fL]]から<<f1>>p、<<f2>>p、…、<<fd-1>>p、<<fL>>pを計算する。ただし、<<f0>>pは不要である。なお、mod 2→mod P変換は、公知の技術により行うことができる。例えば、参考文献1を利用する。
5:<<ρ'>>p:=<<ρ>>p+Mmax-1-uΣ1≦i<d<<fi>>p+((d-1)u-Mmax+1)<<fL>>pを計算する。
6:[[a]]Pと<<ρ'>>pとを用いて<乗法的ローテーションプロトコル>により[[b]]P:=[[2ρ'a]]Pを計算する。ただし、乗法的ローテーションプロトコルとして、公知の技術を用いてもよい。
7:一括シフト量公開右シフトにより、
[[c0]]P:=[[2ρ'a/2M_(max)-1]]P,
[[c1]]P:=[[2ρ'a/(2M_(max)-1-u)]]P,…,
[[cd-1]]P:=[[2ρ'a/(2M_(max)-1-(d-1)u)]]P
を計算する。
8:mod 2→mod P変換により[[f0]]P,[[f1]]P,…,[[fd-1]]P,[[fL]]Pを計算する。ここでは[[f0]]Pが必要である。
9:積和により[[s]]:=[[c0]]P[[f0]]P+([[c1]]-[[c0]])P[[f1]]P+…+([[cd-1]]-[[cd-2]])P[[fd-1]]P+([[b]]P-[[cd-1]]P)[[fL]]P
を計算して出力する。この式は推移的なフラグに対する選択ゲートになっていることに注意する。
以下、本実施形態で実現する固定小数点ベクトル積和について説明する。
<固定小数点ベクトル積和プロトコル>
入力:固定小数点数ベクトル[[a]]P、[[b]]P
パラメータ:ベクトル長m
出力:[[c]]P、ただしΣ0≦i<maibi≒c
1:第一実施形態のベクトルMSB正規化プロトコルにより、固定小数点数ベクトル[[a]]P、[[b]]PをそれぞれベクトルMSB正規化し、MSB位置を調整したベクトルとシフト量、([[2ρ_a→a]]P,<<ρa>>p)、([[2ρ_b→b]]P,<<ρb>>p)を得る。
2:<<ρa>>p,<<ρb>>pからmod p→mod Q変換により、[[ρa]]Q,[[ρb]]Qを得る。なお、mod p→mod Q変換は、公知の技術により行うことができる。例えば、参考文献1を利用する。また、参考文献1以外のモジュラス変換を用いてもよい。例えば、参考文献1の技術は、空きビットが所定のビット数あること(以下、商転移の条件ともいう)を満たす必要があるが、商転移の条件を満たさないモジュラス変換を利用してもよい。以下、商転移の条件を満たさないモジュラス変換について説明する。
<非商転移モジュラス変換プロトコル>
入力:(k,n)-秘密分散したシェア[[a]]p
パラメータ:pのビット数|p|
出力:異なる法Qで(k,n)-秘密分散したシェア[[a]]Q
2-1 :シェア[[a]]pを(k,k)-加法的秘密分散したシェア<a>pに変換する。k=2とし、パーティp0,p1がシェア<a>pを持つ。(k,n)-秘密分散から(k,k)-加法的秘密分散への変換は、公知の技術により行うことができる。例えば、参考文献1を利用する。
2-2 :パーティp0はa'0:=<a>p 0+(2|p|-p)をZ上加算によりmod pせずに計算し、a'0の各ビットを(k,n)-秘密分散し、ビット表現のシェア[[a'0]]2^|p|を得る。ビット分解は、公知の技術により行うことができる。例えば、参考文献1を利用する。
2-3:パーティp1は<a>p 1の各ビットを(k,n)-秘密分散し、ビット表現のシェア[[a1]]2^|p|を得る。
2-4:加算回路によりa'0+a1のビット表現のシェア[[a'0+a1]]2^(|p|+1)を得る。ここで、加算回路計算後はビット長が|p|から|p|+1に1増える。
2-5:[[a'0+a1]]2^(|p|+1)の最上位ビットを[[q]]2とおく。qはシェア<a>pの商、すなわち<a>0+<a>1=a+qpと表したときのqである。
2-6: mod 2→mod Q変換により、[[q]]2から[[q]]Qを得る。例えば、mod 2→mod Q変換は、公知の技術により行うことができる。例えば、参考文献1を利用する。
2-7:パーティp0、p1はそれぞれ<a>p 0、<a>p 1から<a>p 0 mod Q、<a>p 1 mod Qを得、<a'>Qとする。ここで、a'=a+qp mod Qが成り立っている。
2-8:(k,k)-秘密分散したシェア<a'>Qを(k,n)-秘密分散に変換し、(k,n)-秘密分散したシェア[[a']]Qを得る。(k,k)-加法的秘密分散から(k,n)-秘密分散への変換は、公知の技術により行うことができる。例えば、参考文献1を利用する。
2-9:[[a]]Q=[[a']]Q-p[[q]]Qを計算して出力する。
例えば、p=61の場合、空きビットを残すためには値が31までしかとれないため、ここでの、mod p→mod Q変換は、商転移を使える条件を満たさないことが多いと想定される。そのため、非商転移モジュラス変換プロトコルを利用するとよい。
3:[[c]]P:=[[Σ0≦i<m2ρ_aai2ρ_bbi]]Pを計算する。
4:[[-ρab]]Qを計算し、変換により<<-ρab>>Qを得る。
5:上述の<シフト量秘匿左右シフトプロトコル>により、[[c]]Pを<<-ρab>>Qでシフトし、[[c]]Pを(-ρab)ビットシフトした値を出力する。
以下、上述の<固定小数点ベクトル積和プロトコル>を実現するベクトルMSB正規化システムについて説明する。
<第二実施形態に係るベクトルMSB正規化システム>
図1は第二実施形態に係るベクトルMSB正規化システム1の構成例を、図4はベクトルMSB正規化システム1の処理フローの例を示す。
ベクトルMSB正規化システム1は、二つの固定小数点ベクトル[[a]]P,[[b]]Pを入力とし、要素の積和[[c]]Pを求め、出力する。ただしΣ0≦i<maibi≒cである。ベクトル[[a]]P,[[b]]Pのベクトル長mをパラメータとする。
<分散処理装置100-r>
図5は、分散処理装置100-rの機能ブロック図の例を示す。
分散処理装置100-rは、ビット分解部101、論理和取得部103、シフト量取得部105およびシフト部107に加え、モジュラス変換部109、積和計算部111、秘密分散変換部113およびシフト量秘匿左右シフト部115を含む。
以下、図4を用いて各部の処理について説明する。
S101~S107については第一実施形態で説明したとおりである。ベクトルMSB正規化システム1は、固定小数点ベクトル[[a]]P,[[b]]Pを入力とし、ベクトルMSB正規化し、ベクトルMSB正規化後のベクトルとシフト量([[2ρ_a→a]]P,<<ρa>>p)、([[2ρ_b→b]]P,<<ρb>>p)を求める。S109以降の処理について説明する。
<モジュラス変換部109>
n個のモジュラス変換部109は、([[2ρ_a→a]]P,<<ρa>>p)、([[2ρ_b→b]]P,<<ρb>>p)を受け取り、<<ρa>>p,<<ρb>>pからmod p→mod Q変換により、[[ρa]]Q,[[ρb]]Qを得る(S109)。
<積和計算部111>
n個の積和計算部111は、シェア[[2ρ_a→a]]Pおよび([[2ρ_b→b]]Pを受け取り、積和[[c]]P:=[[Σ0≦i<m2ρ_aai2ρ_bbi]]Pを計算する(S111)。
<秘密分散変換部113>
n個の秘密分散変換部113は、[[ρa]]Q,[[ρb]]Qを受け取り、[[-ρab]]Qを計算し、秘密分散変換により<<-ρab>>Qを得る(S113)。
<シフト量秘匿左右シフト部115>
シフト量秘匿左右シフト部115は、積和のシェア[[c]]Pとシフト量のシェア<<-ρab>>Qとを受け取り、上述の<シフト量秘匿左右シフトプロトコル>により、[[c]]Pを<<-ρab>>Qビットシフトし(S115)、シフト後の値を出力する。なお、上述の<シフト量秘匿左右シフトプロトコル>を使わずに、積和のシェア[[c]]Pとシフト量のシェア<<-ρab>>Qを用いて公知の技術により、[[c]]Pを<<-ρab>>Qビットシフトした値を求めてもよい。
<第三実施形態>
第一実施形態と異なる部分を中心に説明する。
第三実施形態では、第一実施形態のベクトルMSB正規化を利用した浮動小数点ベクトル積和について説明する。まず、第三実施形態に係る浮動小数点ベクトル積和で使われるいくつかのプロトコルについて説明する。
<浮動小数点ベクトルの指数部統一プロトコル>
入力:浮動小数点ベクトル([[a]]P,[[ρa]]Q)、ただし、本実施形態では、仮数部をaとし、指数部をρaとし、実数xを、x=2ρ_aaのように表す。[[a]]P=([[a0]]P,…,[[am-1]]P)、[[ρa]]Q=([[ρa_0]]Q,…,[[ρa_m-1]]Q)であり、浮動小数点ベクトル([[a]]P,[[ρa]]Q)は、i(0≦i<m-1)番目の実数を2ρ_(a_i)aiのように表す。
出力:([[b]]P,[[ρmax]]Q)、ただし各i番目の要素に対して2ρ_(a_i)ai≒2ρ_maxbi
処理:浮動小数点ベクトル([[a]]P,[[ρa]]Q)の指数部[[ρa]]Qを最も大きい値[[ρmax]]Qに統一し、仮数部[[a]]Pを差分[[ρdif]]Q:=[[ρa]]Q-[[ρmax]]Qだけ右シフトし、指数部を統一した浮動小数点ベクトルを求める。
1:最大値計算により、[[ρa]]Qに含まれる全ての要素の中から最も大きい値を[[ρmax]]Qとして得る。
2:[[ρdif]]Q:=[[ρa]]Q-[[ρmax]]Qを計算する。[[ρa]]Qの各要素から[[ρmax]]Qを減算する。
3:上述の<シフト量秘匿左右シフトプロトコル>により、[[a]]Pの各要素を[[-ρdif]]Qの各要素でシフトし、[[b]]Pとする。ただしρdifの各要素が非負なので右シフトとなるため、左シフトの分岐は省いてよい。
4:([[b]]P,[[ρmax]]Q)を出力する。
以下、本実施形態で実現する浮動小数点ベクトル積和について説明する。
<浮動小数点ベクトル積和プロトコル>
入力:浮動小数点ベクトル([[a]]P,[[ρa]]Q)、([[b]]P,[[ρb]]Q)
パラメータ:ベクトル長m
出力:([[c]]P,<<ρb>>Q)、ただしΣ0≦i<m2(ρ_a)_i(ρ_b)_iaibi≒2ρ_bbとする。
1:上述の<ベクトルMSB正規化プロトコル>により[[a]]P、[[b]]PのMSB位置を調整したベクトルとシフト量、([[a']]、<<ρ'a>>p)、([[b']]、<<ρ'b>>p)を得る。
2:mod p→mod Q変換により[[ρa']]Q、[[ρb']]Qを得る。
3:上述の<浮動小数点ベクトルの指数部統一プロトコル>により、([[a']]P、[[ρaa']]Q)、([[b']]P、[[ρbb']]Q)の指数部を統一したベクトルと指数部、([[a'']]、[[ρa'']]Q)、([[b'']]、[[ρb'']]Qを得る。
4:[[c]]P:=[[Σ0≦i<ma''ib''i]]Pを計算し、([[c]]P、[[ρa''b'']]Q)を得る。
さらに、入力のビット数がある程度既知である場合や、MSBが調整してあるなどの理由でa、bのビット数がある程度高いことが既知である場合には、公知のシフト量公開右シフトにより所定のビット数σで右シフトする。
一方、ビット数が不明な場合には、第一実施例と同様の方法によりMSBを固定位置に合わせ、その後、公知のシフト量公開右シフトにより適切なビット位置に右シフトする。右シフト量を[[σ]]Qとする。
以下、上述の<浮動小数点ベクトル積和プロトコル>を実現するベクトルMSB正規化システムについて説明する。
<第三実施形態に係るベクトルMSB正規化システム>
図1は第二実施形態に係るベクトルMSB正規化システム1の構成例を、図6はベクトルMSB正規化システム1の処理フローの例を示す。
ベクトルMSB正規化システム1は、二つの浮動小数点ベクトル([[a]]P,[[ρa]]Q),([[b]]P,[[ρb]]Q)を入力とし、要素の積和([[c]]P,<<ρc>>Q)を求め、出力する。ただしΣ0≦i<m2(ρ_a)_i(ρ_b)_iaibi≒2ρ_ccである。ベクトル[[a]]P,[[b]]Pのベクトル長mをパラメータとする。
<分散処理装置100-r>
図7は、分散処理装置100-rの機能ブロック図の例を示す。
分散処理装置100-rは、ビット分解部101、論理和取得部103、シフト量取得部105およびシフト部107に加え、モジュラス変換部117、指数統一部119および積和部121を含む。
以下、図6を用いて各部の処理について説明する。
S101~S107については第一実施形態で説明したとおりである。ベクトルMSB正規化システム1は、二つの浮動小数点ベクトル([[a]]P,[[ρa]]Q),([[b]]P,[[ρb]]Q)を入力とし、[[a]]P,[[b]]PをベクトルMSB正規化し、ベクトルMSB正規化後のベクトルとシフト量([[a']]P,<<ρ'a>>p)、([[b']]P,<<ρ'b>>p)を求める。S117以降の処理について説明する。
<モジュラス変換部117>
n個のモジュラス変換部117は、<<ρ'a>>pと<<ρ'b>>pとを受け取り,mod p→mod Q変換により[[ρa']]Q、[[ρb']]Qを得る(S117)。
<指数統一部119>
n個の指数統一部119は、二つの浮動小数点ベクトル([[a]]P,[[ρa]]Q),([[b]]P,[[ρb]]Q)の指数部[[ρa]]Q,[[ρb]]Qと、ベクトルMSB正規化後のベクトル[[a']]P,[[b']]Pと、mod p→mod Q変換後のシフト量[[ρa']]Q、[[ρb']]Qとを受け取り、上述の<浮動小数点ベクトルの指数部統一プロトコル>により、([[a']]P,[[ρaa']]Q)、([[b']]P,[[ρbb']]Q)の指数部を統一したベクトルと指数部、([[a'']]P,[[ρa'']]Q)、([[b'']]P,[[ρb'']]Qを得る(S119)。
<積和部121>
n個の積和部121は、[[c]]P:=[[Σ0≦i<ma''ib''i]]Pを計算し、([[c]]P、[[ρa''b'']]Q)を得る(S121)。
(処理効率)
アルゴリズムの処理効率に関して、要素演算である乗法的ローテーション、フラグ列→数値変換、シフト量秘匿左右シフトプロトコルおよび、比較用に浮動小数点加算・乗算について評価する。
(1)乗法的ローテーション:通信量(4/3)|P|ビット、2ラウンド
(2)フラグ列→数値変換:通信量(4/3)|L|ビット、2ラウンド
(4)シフト量秘匿左右シフトプロトコル-その2-:通信量((5/3)d+(10/3))|P|+(2d+1)|p|、ラウンド数λ+4
(5)浮動小数点加算:通信量((5/3)d+(19/3))|P|+3|Q|+2λ+(4d+1)|p|、ラウンド数2λ+7
(6)浮動小数点乗算:通信量(8/3)|P|、3ラウンド
dはシフト量秘匿左右シフトプロトコル中の分割数dである。
比較対象として、参考文献2は、加算については2つ方式があり、通信量は対数以下のコストを丸めれば、22|P|+5|Q|+O(log|P|+log|Q|)と表せる。
(参考文献2)西出隆志、天田拓磨、「通信量を削減した浮動小数点演算のためのマルチパーティ計算」、情報処理学会論文誌、Vol.60、No.9, pp. 1433-1447 (2019).
ラウンド数については良い方で、定数の42である。乗算に関しては通信量12|P|+O(1)、ラウンド数は定数の23である。加算は、dが典型的には1であることを考えると、6|P|+3|Q|+2λ+5|p|である。|P|=61、|Q|=13、λ=10、|p|=6であることを考えると、3倍程度、本方式が効率的である。加算は複雑なため、要素であるシフトを高速化してもまだ桁違いにはならないようである。乗算に関しては5倍程度高速である。
<実機性能評価>
実機実験の結果を報告する。下記のマシン3台の、マルチパーティ計算である。
◎CPU: Xeon Gold 6144 3.5GHz, 6cores x 2 sockets
◎memory: 768GB
◎NW: 10Gbps リングトポロジ
◎OS: CentOS 7.3
図8は各演算の性能である。
パラメータとしてMSB位置の上限が重要になるが、これは28bit(0スタート表記のため、29bit数)とした。符号付きでmod Pで商転移を用いることができる最大のMSB位置が57であり、その半分以内という条件である。28bitは単精度を超えており、多くのアプリケーションで十分と考える。
積和演算としては実際には、行列乗算を選択した。行列乗算は積和から成り、かつ機械学習などで極めて重要だからである。具体的には、左の行列を行数100とし、行数×列数=“件数”となるようにし、右の行列は左の列数を長さとするベクトルとした。処理量は、サイズを列数とする積和を、行数分だけ繰り返す処理量に等しい。
スケールとして、1000件、100万件、1000万件の3つと、遅延を100msと極大にすることで実ラウンド数を計測したものを記した。また、passiveモデルの他にactiveモデルの場合の性能も示した(プロトコルはpassive版から拡張したものである)。activeモデルのセキュリティパラメータは8bitであり、攻撃検知率は約99%である。計算量的安全性と異なりオフライン攻撃が不可能なため、この確率は攻撃を抑止するには十分である。
<その他の変形例>
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
<プログラム及び記録媒体>
上述の各種の処理は、図9に示すコンピュータの記憶部2020に、上記方法の各ステップを実行させるプログラムを読み込ませ、制御部2010、入力部2030、出力部2040などに動作させることで実施できる。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (8)

  1. n個の分散処理装置を含む秘匿MSB正規化システムであって、
    n個の前記分散処理装置は、それぞれビット分解部、論理和取得部、シフト量取得部およびシフト部を含み、
    n個の前記ビット分解部は、(k,n)-秘密分散したシェアのベクトル[[a]]Pをビット分解し、ベクトル[[a]]Pのビット表現[[a]]2^Lを得、
    n個の前記論理和取得部は、前記ビット表現[[a]]2^Lの各ビット位置のベクトル[[ai]]に対して、全要素の論理和[[Ai]]2を取得し、
    n個の前記シフト量取得部は、論理和[[A0]]2,…,[[AL-1]]2の最上位ビットを固定位置にシフトさせるためのシフト量ρを法pで(k,n)-複製秘密分散したシェア<<ρ>>pを求め、
    n個の前記シフト部は、前記ベクトル[[a]]pの各要素をρビット左シフトさせたベクトル[[2ρ→a]]pを求める、
    秘匿MSB正規化システム。
  2. 請求項1の秘匿MSB正規化システムであって、
    固定小数点ベクトル[[a]]P,[[b]]Pから最上位ビットを固定位置にシフトさせた後のベクトルとシフト量([[2ρ_a→a]]P,<<ρa>>p)、([[2ρ_b→b]]P,<<ρb>>p)を求め、
    n個の前記分散処理装置は、それぞれモジュラス変換部、積和計算部、秘密分散変換部およびシフト量秘匿左右シフト部を含み、
    n個の前記モジュラス変換部は、<<ρa>>p,<<ρb>>pからmod p→mod Q変換により、[[ρa]]Q,[[ρb]]Qを得、
    n個の前記積和計算部は、[[c]]P:=[[Σ0≦i<m2ρ_aai2ρ_bbi]]Pを計算し、
    n個の前記秘密分散変換部は、前記[[ρa]]Q,前記[[ρb]]Qから、[[-ρab]]Qを計算し、秘密分散変換により、(k,n)-複製秘密分散したシェア<<-ρab>>Qを求め、
    n個の前記シフト量秘匿左右シフト部は、積和のシェア[[c]]Pとシフト量のシェア<<-ρab>>Qとを受け取り、[[c]]Pを<<-ρab>>Qビットシフトする、
    秘匿MSB正規化システム。
  3. 請求項1の秘匿MSB正規化システムであって、
    浮動小数点ベクトル([[a]]P,[[ρa]]Q),([[b]]P,[[ρb]]Q)から最上位ビットをシフトさせた後のベクトルとシフト量([[a']]P,<<ρ'a>>p)、([[b']]P,<<ρ'b>>p)を求め、
    n個の前記分散処理装置は、それぞれモジュラス変換部、指数統一部および積和計算部を含み、
    n個の前記モジュラス変換部は、前記<<ρ'a>>pと前記<<ρ'b>>pとを、mod p→mod Q変換し[[ρa']]Q、[[ρb']]Qを得、
    n個の前記指数統一部は、前記浮動小数点ベクトル([[a]]P,[[ρa]]Q),([[b]]P,[[ρb]]Q)の指数部[[ρa]]Q,[[ρb]]Qと、最上位ビットをシフトさせた後のベクトル[[a']]P,[[b']]Pと、mod p→mod Q変換後のシフト量[[ρa']]Q、[[ρb']]Qとを用いて、([[a']]P,[[ρaa']]Q)、([[b']]P,[[ρbb']]Q)の指数部を統一したベクトルと指数部、([[a'']]P,[[ρa'']]Q)、([[b'']]P,[[ρb'']]Qを得、
    n個の前記積和計算部は、[[c]]P:=[[Σ0≦i<ma''ib''i]]Pを計算し、([[c]]P、[[ρa''b'']]Q)を得る、
    秘匿MSB正規化システム。
  4. 秘匿MSB正規化システムに含まれる分散処理装置であって、
    (n-1)個の分散処理装置とともに、(k,n)-秘密分散したシェアのベクトル[[a]]Pをビット分解し、ベクトル[[a]]Pのビット表現[[a]]2^Lを得るビット分解部と、
    (n-1)個の分散処理装置とともに、前記ビット表現[[a]]2^Lの各ビット位置のベクトル[[ai]]に対して、全要素の論理和[[Ai]]2を取得する論理和取得部と、
    (n-1)個の分散処理装置とともに、論理和[[A0]]2,…,[[AL-1]]2の最上位ビットを固定位置にシフトさせるためのシフト量ρを法pで(k,n)-複製秘密分散したシェア<<ρ>>pを求めるシフト量取得部と、
    (n-1)個の分散処理装置とともに、前記ベクトル[[a]]pの各要素をρビット左シフトさせたベクトル[[2ρ→a]]pを求めるシフト部とを含む、
    分散処理装置。
  5. n個の分散処理装置を含む秘匿MSB正規化システムを用いる秘匿MSB正規化方法であって、
    n個の前記分散処理装置は、それぞれビット分解部、論理和取得部、シフト量取得部およびシフト部を含み、
    n個の前記ビット分解部が、(k,n)-秘密分散したシェアのベクトル[[a]]Pをビット分解し、ベクトル[[a]]Pのビット表現[[a]]2^Lを得るビット分解ステップと、
    n個の前記論理和取得部が、前記ビット表現[[a]]2^Lの各ビット位置のベクトル[[ai]]に対して、全要素の論理和[[Ai]]2を取得する論理和取得ステップと、
    n個の前記シフト量取得部が、論理和[[A0]]2,…,[[AL-1]]2の最上位ビットを固定位置にシフトさせるためのシフト量ρを法pで(k,n)-複製秘密分散したシェア<<ρ>>pを求めるシフト量取得ステップと、
    n個の前記シフト部が、前記ベクトル[[a]]pの各要素をρビット左シフトさせたベクトル[[2ρ→a]]pを求めるシフトステップとを含む、
    秘匿MSB正規化方法。
  6. 請求項5の秘匿MSB正規化方法であって、
    固定小数点ベクトル[[a]]P,[[b]]Pから最上位ビットを固定位置にシフトさせた後のベクトルとシフト量([[2ρ_a→a]]P,<<ρa>>p)、([[2ρ_b→b]]P,<<ρb>>p)を求め、
    n個の前記分散処理装置は、それぞれモジュラス変換部、積和計算部、秘密分散変換部およびシフト量秘匿左右シフト部を含み、
    n個の前記モジュラス変換部が、<<ρa>>p,<<ρb>>pからmod p→mod Q変換により、[[ρa]]Q,[[ρb]]Qを得るモジュラス変換ステップ、
    n個の前記積和計算部が、[[c]]P:=[[Σ0≦i<m2ρ_aai2ρ_bbi]]Pを計算する積和計算ステップと、
    n個の前記秘密分散変換部が、前記[[ρa]]Q,前記[[ρb]]Qから、[[-ρab]]Qを計算し、秘密分散変換により、(k,n)-複製秘密分散したシェア<<-ρab>>Qを求める秘密分散変換ステップと、
    n個の前記シフト量秘匿左右シフト部が、積和のシェア[[c]]Pとシフト量のシェア<<-ρab>>Qとを受け取り、[[c]]Pを<<-ρab>>Qビットシフトするシフト量秘匿左右シフトステップとを含む、
    秘匿MSB正規化方法。
  7. 請求項5の秘匿MSB正規化方法であって、
    浮動小数点ベクトル([[a]]P,[[ρa]]Q),([[b]]P,[[ρb]]Q)から最上位ビットをシフトさせた後のベクトルとシフト量([[a']]P,<<ρ'a>>p)、([[b']]P,<<ρ'b>>p)を求め、
    n個の前記分散処理装置は、それぞれモジュラス変換部、指数統一部および積和計算部を含み、
    n個の前記モジュラス変換部が、前記<<ρ'a>>pと前記<<ρ'b>>pとを、mod p→mod Q変換し[[ρa']]Q、[[ρb']]Qを得るモジュラス変換ステップと、
    n個の前記指数統一部が、前記浮動小数点ベクトル([[a]]P,[[ρa]]Q),([[b]]P,[[ρb]]Q)の指数部[[ρa]]Q,[[ρb]]Qと、最上位ビットをシフトさせた後のベクトル[[a']]P,[[b']]Pと、mod p→mod Q変換後のシフト量[[ρa']]Q、[[ρb']]Qとを用いて、([[a']]P,[[ρaa']]Q)、([[b']]P,[[ρbb']]Q)の指数部を統一したベクトルと指数部、([[a'']]P,[[ρa'']]Q)、([[b'']]P,[[ρb'']]Qを得る指数統一ステップと、
    n個の前記積和計算部が、[[c]]P:=[[Σ0≦i<ma''ib''i]]Pを計算し、([[c]]P、[[ρa''b'']]Q)を得る積和ステップとを含む、
    秘匿MSB正規化方法。
  8. 請求項4の分散処理装置として、コンピュータを機能させるためのプログラム。
JP2022556803A 2020-10-16 2020-10-16 秘匿msb正規化システム、分散処理装置、秘匿msb正規化方法、およびプログラム Active JP7540501B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/039078 WO2022079891A1 (ja) 2020-10-16 2020-10-16 秘匿msb正規化システム、分散処理装置、秘匿msb正規化方法、およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2022079891A1 JPWO2022079891A1 (ja) 2022-04-21
JP7540501B2 true JP7540501B2 (ja) 2024-08-27

Family

ID=81208979

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022556803A Active JP7540501B2 (ja) 2020-10-16 2020-10-16 秘匿msb正規化システム、分散処理装置、秘匿msb正規化方法、およびプログラム

Country Status (6)

Country Link
US (1) US20230401033A1 (ja)
EP (1) EP4210029A4 (ja)
JP (1) JP7540501B2 (ja)
CN (1) CN116324933A (ja)
AU (1) AU2020472441B2 (ja)
WO (1) WO2022079891A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230016859A1 (en) * 2020-07-13 2023-01-19 Inpher, Inc. Multi-Pivot Partial Quicksort and Oblivious Comparisons of Secret Shared Arithmetic Values in a Multi-Party Computing Setting

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018034079A1 (ja) 2016-08-18 2018-02-22 日本電気株式会社 秘密計算システム、秘密計算方法、秘密計算装置、分散情報生成装置およびそれらの方法とプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE467171T1 (de) * 1998-08-24 2010-05-15 Microunity Systems Eng System mit breiter operandenarchitektur und verfahren
EP2290872B1 (en) * 2009-08-27 2014-06-18 Nxp B.V. Device for generating a message authentication code for authenticating a message
US9054870B2 (en) * 2012-10-22 2015-06-09 Donatello Apelusion Gassi Information security based on eigendecomposition
US20160283242A1 (en) * 2014-12-23 2016-09-29 Intel Corporation Apparatus and method for vector horizontal logical instruction
JP5957126B1 (ja) * 2015-06-24 2016-07-27 日本電信電話株式会社 秘密計算装置、秘密計算方法、およびプログラム
EP3602422B1 (en) * 2017-03-22 2022-03-16 Visa International Service Association Privacy-preserving machine learning
US10460234B2 (en) * 2018-01-19 2019-10-29 Microsoft Technology Licensing, Llc Private deep neural network training
CN109617686A (zh) * 2019-01-10 2019-04-12 江苏理工学院 一种改进的基于格的密钥交换协议算法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018034079A1 (ja) 2016-08-18 2018-02-22 日本電気株式会社 秘密計算システム、秘密計算方法、秘密計算装置、分散情報生成装置およびそれらの方法とプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KAMM,Liina et al.,Secure Floating-Point Arithmetic and Private Satellite Collision Analysis,Version:20131217:154023,2013年12月16日,<https://eprint.iacr.org/2013/850.pdf>
五十嵐 大,秘密計算AIの実装に向けた秘密実数演算群の設計と実装,コンピュータセキュリティシンポジウム2019論文集,日本,情報処理学会,2019年10月14日,No.2019,pp.1557-1564,ISSN 1881-0840

Also Published As

Publication number Publication date
AU2020472441B2 (en) 2024-03-28
US20230401033A1 (en) 2023-12-14
JPWO2022079891A1 (ja) 2022-04-21
CN116324933A (zh) 2023-06-23
EP4210029A4 (en) 2024-05-15
WO2022079891A1 (ja) 2022-04-21
EP4210029A1 (en) 2023-07-12
AU2020472441A1 (en) 2023-05-25

Similar Documents

Publication Publication Date Title
US10467389B2 (en) Secret shared random access machine
EP0917047B1 (en) Apparatus for modular inversion for information security
US11164484B2 (en) Secure computation system, secure computation device, secure computation method, and program
CN112805769B (zh) 秘密s型函数计算系统、装置、方法及记录介质
Dimitrov et al. Alternative implementations of secure real numbers
Tjell et al. Privacy in distributed computations based on real number secret sharing
Moon et al. An Efficient Encrypted Floating‐Point Representation Using HEAAN and TFHE
JP7540501B2 (ja) 秘匿msb正規化システム、分散処理装置、秘匿msb正規化方法、およびプログラム
Mounica et al. Implementation of 5-Qubit approach-based Shor's Algorithm in IBM Qiskit
JP2020519968A (ja) ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム
CN116094686B (zh) 用于量子卷积计算的同态加密方法、系统、设备及终端
US20230119749A1 (en) Large-precision homomorphic comparison using bootstrapping
US12113890B2 (en) Homomorphic encryption using smart contracts
Koseki et al. Homomorphic encryption for stochastic computing
CN111460514B (zh) 数据匹配方法、装置和电子设备
Blanton et al. Secure and Accurate Summation of Many Floating-Point Numbers
CN113467752A (zh) 用于隐私计算的除法运算装置、数据处理系统及方法
EP4095834A1 (en) Secure selective product computation system, secure selective product computation method, secure computation device, and program
KR102687526B1 (ko) 낮은 cnot 카운트 양자 포인트 더블링 회로를 위한 장치
CN116738494B (zh) 基于秘密分享的多方安全计算的模型训练方法和装置
JP7331951B2 (ja) 秘密平方根計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム
EP4095833A1 (en) Secure square root reciprocal computation system, secure normalization system, methods for same, secure computation device, and program
AU2019450855B2 (en) Secure division system, secure computation apparatus, secure division method, and program
US20230069892A1 (en) Secure exponential function computation system, secure exponential function computation method, secure computation apparatus, and program
CN118114311A (zh) 一种数据处理方法、装置及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240703

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240716

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240729

R150 Certificate of patent or registration of utility model

Ref document number: 7540501

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150