[go: up one dir, main page]

JP5957126B1 - 秘密計算装置、秘密計算方法、およびプログラム - Google Patents

秘密計算装置、秘密計算方法、およびプログラム Download PDF

Info

Publication number
JP5957126B1
JP5957126B1 JP2015126179A JP2015126179A JP5957126B1 JP 5957126 B1 JP5957126 B1 JP 5957126B1 JP 2015126179 A JP2015126179 A JP 2015126179A JP 2015126179 A JP2015126179 A JP 2015126179A JP 5957126 B1 JP5957126 B1 JP 5957126B1
Authority
JP
Japan
Prior art keywords
value
bit string
bit
secret
secret sharing
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
JP2015126179A
Other languages
English (en)
Other versions
JP2017009840A (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
Priority to JP2015126179A priority Critical patent/JP5957126B1/ja
Priority to CN201680033336.5A priority patent/CN107735830B/zh
Priority to US15/737,915 priority patent/US10679522B2/en
Priority to EP16814208.1A priority patent/EP3316235B1/en
Priority to PCT/JP2016/067529 priority patent/WO2016208437A1/ja
Application granted granted Critical
Publication of JP5957126B1 publication Critical patent/JP5957126B1/ja
Publication of JP2017009840A publication Critical patent/JP2017009840A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】秘密計算による空値検査を効率化する。【解決手段】秘密計算装置は、分散装置が生成した、対象ビット列1100が表す値の秘密分散値を用い、秘密計算により、対象ビット列1100をローテーションし、最上位ビットの値を最上位ビットよりも下位の検査ビット1201の値とした検査ビット列1200が表す値の秘密分散値を得る。ただし、対象ビット列1100は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する。次に、秘密計算装置は検査ビット列1200が表す値の秘密分散値を用い、秘密計算により、検査ビット列1200の最下位ビットから検査ビット1201または1211までのビット値の秘密分散値を得る。【効果】検査ビットが最下位に近いほど秘密計算の対象となるビット数を小さくでき、通信量および/または通信段数を削減できる。【選択図】図5

Description

本発明は、秘密計算技術に関し、特に、秘密計算で空値検査を行う技術に関する。
秘密計算を用いて符号付き数を扱う技術が知られている(例えば、「非特許文献1」等参照)。
D. Bogdanov, M. Niitsoo, T. Toft, and J. Willemson, "High-performance secure multi-party computation for data mining applications," Int. J. Inf. Sec., 11(6):403-418, 2012.
上記の従来技術には、通信量・通信段数が大きいという課題がある。また秘密計算で空値検査を行うことには言及がない。
本発明の課題は、秘密計算による空値検査を効率化することである。
「第1対象ビット列」が表す値の秘密分散値を用い、「第1対象ビット列」の最上位ビットの値を最上位ビットよりも下位の「第1検査ビット」の値とした「第1検査ビット列」が表す値の秘密分散値を得る。ただし、「第1対象ビット列」は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する。次に、「第1検査ビット列」が表す値の秘密分散値を用い、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値を得る。
以上により、秘密計算による空値検査を効率化できる。
図1は実施形態の秘密計算システムの構成を例示したブロック図である。 図2は実施形態の秘密計算装置の構成を例示したブロック図である。 図3は第1実施形態の処理を例示するためのフロー図である。 図4は実施形態の処理を例示するための概念図である。 図5Aは実施形態の対象ビット列の構成を例示するための概念図である。図5Bおよび図5Cは実施形態の検査ビット列の構成を例示するための概念図である。 図6は第2実施形態の処理を例示するためのフロー図である。 図7Aおよび図7Bは実施形態の大小比較ビット列の構成を例示するための概念図である。 図8は第2実施形態の変形例1の処理を例示するためのフロー図である。 図9は第3実施形態の処理を例示するためのフロー図である。 図10は第3実施形態の変形例1の処理を例示するためのフロー図である。
以下、本発明の実施形態を説明する。
[概要]
まず、概要を説明する。各実施形態の秘密計算装置は、「第1対象ビット列」が表す値の秘密分散値を用い、「第1対象ビット列」の最上位ビットの値を最上位ビットよりも下位の「第1検査ビット」の値とした「第1検査ビット列」が表す値の秘密分散値を得る。ただし、「第1対象ビット列」は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する。なお、「第1検査ビット列」は、例えば「第1対象ビット列」のローテーションによって得られる。ローテーションは剰余環上の乗算で実現できる。秘密計算での剰余環上の乗算方法に限定はなく、公知の方法で実現できる(例えば、参考文献1「千田浩司,濱田浩気,五十嵐大,高橋克巳,“軽量検証可能3パーティ秘匿関数計算の再考”,CSS2010,2010年」等参照)。ただし、これは一例であって、「第1対象ビット列」の最上位ビットの値を「第1検査ビット」の値とできるのであれば、その他の方法が用いられてもよい。次に秘密計算装置は、「第1検査ビット列」が表す値の秘密分散値を用い、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値を得る。ここで、「第1対象ビット列」が空値に対応する場合には「第1検査ビット」の値は「1」となり、「第1対象ビット列」が実数値に対応する場合には「第1検査ビット」の値は「0」となる。そのため、「第1検査ビット」の値の秘密分散値は、空値検査結果を表す値の秘密分散値となる。また、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値のみを求めればよいため、すべてのビットの秘密分散値を求めて空値検査結果を表す値の秘密分散値を得る場合に比べ、通信量および/または通信段数を削減できる。また「第1検査ビット」が最下位ビットに近いほど秘密計算の対象となるビット数を小さくでき、通信量および/または通信段数をより削減できる。そのため、「第1検査ビット」が最下位ビットであることがより望ましい。なお、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値を得るための公知の方法としては、例えば参考文献2「五十嵐大,濱田浩気,菊池亮,千田浩司,“少パーティの秘密分散ベース秘密計算のためのO(l)ビット通信ビット分解およびO(p’)ビット通信modulus変換法”,CSS2013,2013年」の「商転移を用いたビット分解」がある。この方法では、最下位ビット(0ビット目)から所望のビットまでの各ビット値の秘密分散値を効率的に得ることができる。なお、最下位ビットから所望のビットまでの各ビット値の秘密分散値のみを効率的に得る方法は知られているが、最上位ビットから所望のビットまでの各ビット値の秘密分散値のみを効率的に得る方法や、最上位ビットと最下位ビットとの間に位置するビット値の秘密分散値のみを効率的に得る方法は知られていない。本形態の方式は、このことに着目して秘密計算での空値検査の効率を向上するものである。
上述の構成はメルセンヌ数P=2−1を法とした剰余環上で実現できる。例えば、各秘密計算装置に入力値Wの秘密分散値[W]が入力されるとする。ただし、Nは2以上の整数であり、Pはメルセンヌ数P=2−1であり、Nの値によってはメルセンヌ素数となる。空値に対応する値WがW=(P+1)/2 mod Pであり、0以上の整数Xに対応する値WがW=X mod Pであり、負の整数Xに対応する値WがW=(P+X) mod Pである。Lは0≦L≦N−u’の整数であり、Xは−2≦X≦2N−1−2−1の整数である。ただし、u’は秘密分散方式に応じた2以上N以下の正の整数である。例えば、2-out-of-3のShamirの秘密分散方式の場合、u’=2となる。この場合、0以上の整数Xは小さな入力値Wに対応し、負の整数Xは大きな入力値Wに対応し、「Xが空値であること」はそれらの間の入力値Wに対応する。各秘密計算装置は、入力値Wの秘密分散値[W]を用い、Y=(W+2) mod Pの秘密分散値[Y]を得る。この演算は秘密計算での剰余環上の加算である。秘密計算での剰余環上の加算方法に限定はなく、公知の方法で実現できる(例えば「参考文献1」等参照)。Yは空値に対してY={2+(P+1)/2} mod Pとなり、0以上の整数Xに対してY=(2+X) mod Pとなり、負の整数Xに対してY=(P+2+X) mod Pとなる。ここでメルセンヌ数P=2−1の性質から、空値に対応するYを表すNビットのビット列の最上位ビットは1となり、実数値X(0以上の整数Xまたは負の整数X)に対応するYを表すNビットのビット列の最上位ビットは0となる。−2≦X≦2N−1−2−1の条件を満たす限り、異なる実数値Xが同じYに対応することはない。このようなYを表すNビットのビット列を「第1対象ビット列」とすることができる。この場合、「第1検査ビット列」が表す値をV=2×Y mod Pとでき、下位からTビット目のビットを「第1検査ビット」とできる。ただし、Tは1≦T<Nの整数である。好ましくはT=1であり、この場合には「第1検査ビット」が最下位ビットとなる(「第1対象ビット列」および「第1検査ビット列」のフォーマットの具体例)。
上述した秘密計算での空値検査に加え、秘密計算で大小比較が行われてもよい。この場合、各秘密計算装置は、「比較結果値」の秘密分散値を得、「比較結果値」を表すビット列の下位からKビット目の値の秘密分散値を得る。ただし、「比較結果値」は、「第1対象ビット列」が表す値から「第2対象ビット列」が表す値を減じた値に2K−1を加算した値を表す。「第2対象ビット列」は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応するビット列である。また、Kが2以上の整数であり、最上位ビットが0の第1対象ビット列が表す値および最上位ビットが0の第2対象ビット列が表す値の大きさは0以上2K−1未満である。なお、秘密計算での加減算およびビット値の抽出は公知の方法で実現できる(例えば「参考文献1,2」等参照)。ここで、「第1対象ビット列」が表す値が「第2対象ビット列」が表す値以上である場合、「比較結果値」を表すビット列の下位からKビット目の値は「1」となる。一方、「第1対象ビット列」が表す値が「第2対象ビット列」が表す値未満である場合、「比較結果値」を表すビット列の下位からKビット目の値は「0」となる。すなわち、「比較結果値」を表す下位からKビット目の値は、「第1対象ビット列」が表す値と「第2対象ビット列」が表す値との大小比較結果を表す。
「第2対象ビット列」に対して秘密計算での空値検査が行われてもよい。すなわち、各秘密計算装置が、「第2対象ビット列」が表す値の秘密分散値を用い、「第2対象ビット列」の最上位ビットの値を最上位ビットよりも下位の「第2検査ビット」の値とした「第2検査ビット列」が表す値の秘密分散値を得、「第2検査ビット列」が表す値の秘密分散値を用い、「第2検査ビット」の値の秘密分散値を得てもよい。「第2対象ビット列」および「第2検査ビット列」のフォーマットの具体例は、前述の「第1対象ビット列」および「第1検査ビット列」のフォーマットの具体例と同じである。
上述した秘密計算での空値検査に加え、秘密計算でのソートが行われてもよい。この場合、各秘密計算装置は、「対象ビット列A(d)」が表す値の秘密分散値を用い、「対象ビット列A(d)」の最上位ビットの値を最上位ビットよりも下位の「検査ビット」の値r(d)とした「検査ビット列C(d)」が表す値の秘密分散値を得る。ただし、d=0,…,D−1であり、Dが2以上の整数である。「対象ビット列A(d)」は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する。各秘密計算装置は、「検査ビット列C(d)」が表す値の秘密分散値を用い、「検査ビット列C(d)」の最下位ビットから「対象ビット列A(d)」までのビット値の秘密分散値を得る。さらに、各秘密計算装置は、「対象ビット列A(d)」が表す値の大きさに応じたソート結果の秘密分散値を得る。ただし、最上位ビットが0の「対象ビット列A(d)」が表す値は、「対象ビット列A(d)」が表す値が大きいほど大きな実数値に対応する。各秘密計算装置は、「検査ビット列C(d)」が表す値の大きさに応じたソート結果の秘密分散値を得てもよい。ただし、最上位ビットが0の「対象ビット列A(d)」に対応する「検査ビット列C(d)」が表す値は、「検査ビット列C(d)」が表す値が大きいほど大きな実数値に対応する。さらに、この秘密計算でのソート結果を用い、最大値、最小値、および中央値の少なくとも何れかの秘密分散値を得てもよい。なお、秘密計算でのソート方法には限定はなく、公知の方法でよい(例えば、参考文献3「五十嵐大,濱田浩気,菊池亮,千田浩司,“インターネット環境レスポンス1秒の統計処理を目指した,秘密計算基数ソートの改良”,SCIS2014,2014年」、参考文献4「濱田浩気,五十嵐大,千田浩司,高橋克巳,“秘匿関数計算上の線形時間ソート”,CSS2011,2011年」等参照)。
[第1実施形態]
以降、図面を参照しつつ、各実施形態を説明する。
<構成>
図1に例示するように、第1実施形態の秘密計算システム1は、分散装置11およびM個の秘密計算装置12−12M−1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。ただし、Mは2以上の整数である。説明の便宜上、秘密計算システム1が1個の分散装置11のみを有することにするが、複数個の分散装置11が存在してもよい。あるいは、その他の秘密計算装置が存在してもよい。
図2に例示するように、本形態の秘密計算装置12(ただし、m=0,…,M−1)は、通信部121、記憶部122、制御部123、入力演算部124、検査ビット列取得部125、および空値検査部126を有する。秘密計算装置12は、制御部123の制御の下で各処理を実行する。各部で得られたデータは、一時メモリ(図示せず)に格納され、必要に応じて読み出されて使用される。
各装置は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
<処理>
次に、図3を参照して本形態の処理を説明する。分散装置11が入力値Wの秘密分散値[W]を生成して秘密計算装置12(ただし、m=0,…,M−1)に送信する。本形態の入力値Wのフォーマットは以下の通りである(図4参照)。
(1)空値に対応する値がW=(P+1)/2 mod Pである。
(2)0以上の整数であるXに対応する値がW=X mod Pである。
(3)負の整数であるXに対応する値がW=(P+X) mod Pである。
ただし、Nが2以上の整数であり、Pがメルセンヌ数P=2−1であり、Lが0≦L≦N−u’の整数であり、Xが−2≦X≦2N−1−2−1の整数である。Pは素数(メルセンヌ素数)であってもよいし、素数でなくてもよい。入力値WをN桁2進数で表したビット列を入力ビット列と呼ぶ。N=7、u’=2、およびL=5の場合、入力ビット列は以下のようになる。
Figure 0005957126
なお、秘密分散方式に限定はなく、Shamirの秘密分散方式等の線形秘密分散方式、複製秘密分散方式、その他どのような方式(例えば、「参考文献2」等参照)であってもよい。秘密分散値[W]は、秘密計算装置12(図2)の通信部121で受信され、入力演算部124に送られる(ステップS11)。
入力演算部124は、秘密計算により、入力値Wの秘密分散値[W]を用い、Y=(W+2) mod Pの秘密分散値[Y]を得て出力する。空値に対応するYは{2+(P+1)/2} mod Pであり、0以上の整数であるXに対応するYは(2+X) mod Pであり、負の整数であるXに対応するYは(P+2+X) mod Pである(図4)。YをN桁2進数で表したビット列を対象ビット列と呼ぶ。図5Aに例示するように、Yが空値に対応する場合、対象ビット列1100の最上位ビット1101はaN−1=1となる。Yが実数値X(−2≦X≦2N−1−2−1の整数)に対応する場合、対象ビット列1100の最上位ビット1101はaN−1=0となる。この特徴はPがメルセンヌ数であることに基づく。例えば、N=7およびL=5の場合、対象ビット列1100は以下のようになる。
Figure 0005957126
検査ビット列取得部125は、Yの秘密分散値[Y]を入力とし、秘密計算により、V=2×Y mod Pの秘密分散値[V]を得て出力する。ただし、Tは1≦T<Nの整数である。VをN桁2進数で表したビット列を検査ビット列と呼ぶ。検査ビット列は、対象ビット列1100をTビット左ローテーションしたビット列である。対象ビット列1100の最上位ビット1101の値aN−1は、検査ビット列の最上位ビットよりも下位のビット(検査ビット)の値となる。図5BはT=1の例であり、検査ビット列1200の最下位ビットが検査ビット1201となる。図5CはT=2の例であり、検査ビット列1200の最下位から2ビット目が検査ビット1211となる。例えば、N=7およびL=5の場合、検査ビットは以下のようになる。
Figure 0005957126
このように、検査ビット列1200の最下位からTビット目の値が「Xが空値であるか否か」を表している(ステップS13)。
空値検査部126は、Vの秘密分散値[V]を入力とし、検査ビット列1200の最下位ビットから検査ビットまでの各ビット値の秘密分散値[r]を得て出力する。例えば、T=1の場合、空値検査部126は、最下位ビットである検査ビットの値の秘密分散値[r]を得て出力する。
《参考文献2のビット分解を用いる例》
参考文献2のビット分解を用いる例を示す。この例では、複製秘密分散方式に則った秘密分散値[V]を用いる。ただし、任意の線形秘密分散方式に則った秘密分散値を、複製秘密分散方式の秘密分散値に変換することが可能である(例えば、参考文献5「R. Cramer, I. Damg_ard, and Y. Ishai, “Share conversion, pseudorandom secret-sharing and applications to secure computation,” In J. Kilian ed., TCC, Vol. 3378 of Lecture Notes in Computer Science, pp. 342-362. Springer, 2005.」等参照)。そのため、複製秘密分散方式への限定は利用上の制限とはならない。
この例では、Vの線形秘密分散値を[V]と表記し、Vの複製秘密分散値を{V}と表記する。Vのサブシェアの個数をνとし、自然数である境界値uをlog ν以上の最小の整数とする。νはν≦2を満たす整数である。Vが2を法として0と合同となり、VがPを法としてサブシェアx,…,xν-1の和x+…+xν-1と合同であるとする。この例のPはメルセンヌ素数であるが、Pがその他のメルセンヌ数であってもよい。この例では2V<Pとする。iをi=0,1,…,ν−1を満たす整数とし、jをj=0,1,…,ν−1を満たす整数とする。任意の命題PROに対して、〔PRO〕は、PROの真偽を整数に変換する演算子である。
この例の空値検査部126の公開値倍秘密計算部は、複製秘密分散値{V}ZPを取得して、公開値倍の秘密計算により変形秘密分散値{V’}ZP=2×ZP{V}ZPを計算する。ただし、{・}ZPはZの元である複製秘密分散値を表し、「×ZP」はZ上での乗算を表す。空値検査部126の下位ビット分散部は、i<νを満たすすべてのiについて、変形秘密分散値{V’}ZPのj番目のサブシェア{V’}ZP〈j〉の0ビット目からuビットをビットごとに分散して下位ビット分散値
Figure 0005957126

を取得する。ただし、[・]αはαの元である線形秘密分散値を表す。空値検査部126の上位ビット分散部は、i<νを満たすすべてのiについて、変形秘密分散値のj番目のサブシェア{V’}ZP〈j〉のuビット目からTビットをビットごとに分散して上位ビット分散値
Figure 0005957126

を取得する。空値検査部126の下位ビット加算部は、加算回路の秘密計算により下位ビット加算値
Figure 0005957126

を計算する。この下位ビット加算値のうち下位uビットを
Figure 0005957126

上位uビットを
Figure 0005957126

と表す。空値検査部126の零判定部は、下位ビット加算値の下位uビットを取得して、零判定回路の秘密計算により、零判定値[〔η≠0〕]Z2を計算する。空値検査部126の上位ビット加算部は、i<νを満たすすべてのiについて、上位ビット加算値と、下位ビット加算値の上位uビットと、零判定値を取得して、加算回路の秘密計算により、ビットの秘密分散列
Figure 0005957126

を計算して出力する。ただし
Figure 0005957126

はZ 上での総和を表し、
Figure 0005957126

はZ 上での加算を表す。式(1)の演算により、VをN桁2進数表記した場合の最下位ビットからTビット目(すなわち、検査ビット)までの各ビット値の秘密分散値[r]が得られる。式(1)の演算は最下位ビットからTビット目までのみについて実行され、その通信量および演算量は全体のビット数Nに依存しない。T=1の場合、最下位ビットのみについて式(1)の演算を行えばよく、大変効率がよい。特に3パーティの秘密計算では数ビットの通信量と2ラウンドで処理可能である(ステップS14)。
秘密計算装置12は秘密分散値[r]を出力する(ステップS15)。
[第1実施形態の変形例1]
第1実施形態では、秘密計算装置12が秘密分散値[r]を出力した。しかしながら、T≧2の場合であっても、秘密分散値[r]に代えて検査ビット列Cの各検査ビットの値の秘密分散値のみが出力されてもよい。
[第1実施形態の変形例2]
第1実施形態では各秘密計算装置12に入力値Wの秘密分散値[W]が入力され、各秘密計算装置12がY=(W+2) mod Pの秘密分散値[Y]を得た。しかしながら、各秘密計算装置12に秘密分散値[Y]が入力され、ステップS13からS15の処理が実行されてもよい。
[第2実施形態]
第2実施形態では、秘密計算での空値検査に加え、秘密計算での大小比較を行う。以下では、これまでに説明した事項との相違点を中心に説明し、既に説明した事項についてはこれまでに用いた参照番号を流用して説明を簡略化する。
<構成>
図1に例示するように、第2実施形態の秘密計算システム2は、分散装置11およびM個の秘密計算装置22−22M−1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。図2に例示するように、本形態の秘密計算装置22(ただし、m=0,…,M−1)は、通信部121、記憶部122、制御部123、入力演算部224、検査ビット列取得部225、空値検査部226、大小比較ビット列取得部227、および大小比較部228を有する。秘密計算装置22は、制御部123の制御の下で各処理を実行する。
<処理>
次に、図3を参照して本形態の処理を説明する。
分散装置11は入力値W(0)の秘密分散値[W(0)]および入力値W(1)の秘密分散値[W(1)]を生成して秘密計算装置22(ただし、m=0,…,M−1)に送信する。入力値W(0)は空値または実数値X(0)に対応し、入力値W(1)は空値または実数値X(1)に対応する。入力値W(0),W(1)のフォーマットは前述した入力値Wのフォーマットと同じである。秘密分散値[W(0)],[W(1)]は、秘密計算装置22(図2)の通信部121で受信され、入力演算部124に送られる(ステップS21)。
入力演算部224は、秘密計算により、入力値W(0)の秘密分散値[W(0)]を用いてY(0)=(W(0)+2) mod Pの秘密分散値[Y(0)]を得て出力する。また、入力演算部224は、秘密計算により、入力値W(1)の秘密分散値[W(1)]を用い、Y(1)=(W(1)+2) mod Pの秘密分散値[Y(1)]を得て出力する。Y(0)は「対象ビット列A(0)が表す値」に相当し、Y(1)は「対象ビット列A(1)が表す値」に相当する。対象ビット列A(0)およびA(1)は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応するビット列である(ステップS22)。
検査ビット列取得部225は、秘密分散値[Y(0)]および[Y(1)]を入力とし、秘密計算により、V(0)=2×Y(0) mod Pの秘密分散値[V(0)]およびV(1)=2×Y(0) mod Pの秘密分散値[V(0)]を得て出力する。V(0)は「検査ビット列C(0)が表す値」に相当し、V(1)は「検査ビット列C(1)が表す値」に相当する(ステップS23)。
空値検査部226は、秘密分散値[V(0)]を入力とし、検査ビット列C(0)の最下位ビットから検査ビットまでの各ビット値の秘密分散値[r(0)]を得て出力する。また空値検査部226は、秘密分散値[V(1)]を入力とし、検査ビット列C(1)の最下位ビットから検査ビットまでの各ビット値の秘密分散値[r(1)]を得て出力する。例えば、T=1の場合、空値検査部226は、最下位ビットである検査ビットの値の秘密分散値[r(0)]および[r(1)]を得て出力する(ステップS24)。
大小比較ビット列取得部227は、秘密分散値[Y(0)]および[Y(1)]を入力とし、秘密計算により、比較結果値(Y(0)−Y(1)+2K−1) mod P(対象ビット列A(0)が表す値から対象ビット列A(1)が表す値を減じた値に2K−1を加算した値)の秘密分散値[(Y(0)−Y(1)+2K−1) mod P]を得て出力する。ただし、Kは2以上の整数であり、最上位ビットが0の対象ビット列A(0)が表す値Y(0)および最上位ビットが0の対象ビット列A(1)が表す値Y(1)の大きさは0以上2K−1未満である。ここで、比較結果値(Y(0)−Y(1)+2K−1) mod PのN桁2進数表現であるビット列を大小比較ビット列と呼ぶ。図7AはN=Kの場合の大小比較ビット列2210を例示した概念図であり、最上位ビットが検査ビット2211となっている。図7AはN>Kの場合の大小比較ビット列2220を例示した概念図であり、最上位ビットよりも下位のビットが検査ビット2221となっている。
K−1 mod PのN桁2進数表現値の下位からKビット目の値は1である。ここでY(0)−Y(1)の大きさは0以上2K−1未満であるため、X(0)≧X(1)である場合、(Y(0)−Y(1)+2K−1) mod PのN桁2進数表現値は2K−1 mod PのN桁2進数表現値以上となり、下位からKビット目の値は必ず1となる。一方、X(0)<X(1)である場合、(Y(0)−Y(1)+2K−1) mod PのN桁2進数表現値は2K−1 mod PのN桁2進数表現値未満となり、下位からKビット目の値は必ず0となる。そのため、X(0)≧X(1)である場合、大小比較ビット列の下位からKビット目の値は1となり、X(0)<X(1)である場合、大小比較ビット列の下位からKビット目の値は0となる。N=K=7およびL=5の場合の具体例を示す。例えば、X(0)=0,X(1)=−1の場合、Y(0)=32,Y(1)=31であり、大小比較ビット列が1000001となり、下位から7ビット目の値が1となる。例えば、X(0)=−10,X(1)=−5の場合、Y(0)=22,Y(1)=27であり、大小比較ビット列が0111011となり、下位から7ビット目の値が0となる(ステップS25)。
大小比較部228は、秘密分散値[(Y(0)−Y(1)+2K−1) mod P]を入力とし、秘密計算により、比較結果値(Y(0)−Y(1)+2K−1) mod Pを表す大小比較ビット列の下位からKビット目の値qの秘密分散値[q]を得て出力する。この処理は、例えば参考文献2のビット分解を用いて実行できる。ただし、その他のビット分解方法が用いられてもよい(例えば、参考文献6「I. Damgard, M. Fitzi, E. Kiltz, J. B. Nielsen, and T. Toft, “Unconditionally secure constant-rounds multi-party computation for equality, comparison, bits and exponentiation,” In S. Halevi and T. Rabin eds., TCC, Vol. 3876 of Lecture Notes in Computer Science, pp. 285-304. Springer, 2006.」等参照)(ステップS26)。
秘密計算装置22は、秘密分散値[r(0)],[r(1)],[q]を出力する(ステップS27)。
[第2実施形態の変形例1]
第2実施形態では、(Y(0)−Y(1)+2K−1) mod Pを比較結果値(対象ビット列A(0)が表す値から対象ビット列A(1)が表す値を減じた値に2K−1を加算した値)とした。しかしながら、Y(0)=(W(0)+2) mod PおよびY(1)=(W(1)+2) mod Pであり、(Y(0)−Y(1)+2K−1) mod P=(W(0)−W(1)+2K−1) mod Pである。そのため、(W(0)−W(1)+2K−1) mod Pを比較結果値(対象ビット列A(0)が表す値から対象ビット列A(1)が表す値を減じた値に2K−1を加算した値)としてもよい。この場合には、図8に例示するように、第2実施形態のステップS21−S24の実行後、大小比較ビット列取得部227が秘密分散値[W(0)]および[W(1)]を入力とし、秘密計算により、比較結果値(W(0)−W(1)+2K−1) mod Pの秘密分散値[(W(0)−W(1)+2K−1) mod P]を得て出力する(ステップS25’)。その後、秘密分散値[(Y(0)−Y(1)+2K−1) mod P]に代えて秘密分散値[(W(0)−W(1)+2K−1) mod P]を用い、第2実施形態のステップS26−S27を実行する。
[第2実施形態の変形例2]
第2実施形態およびその変形例1では、秘密計算装置22が秘密分散値[r(0)],[r(1)],秘密分散値[q]を出力した。しかしながら、T≧2の場合であっても、[r(0)],[r(1)]に代えて検査ビット列C(0),C(1)の各検査ビットの値の秘密分散値のみが出力されてもよい。また、秘密計算装置22が、各検査ビットの値がともに0の場合に秘密分散値[q]となり、何れかの検査ビットの値が1の場合にエラーを表す秘密分散値となる値を生成して出力してもよい。
[第2実施形態の変形例3]
各秘密計算装置22に秘密分散値[Y(0)]および[Y(1)]が入力され、ステップS23からS27の処理が実行されてもよい。
[第3実施形態]
第3実施形態では、秘密計算での空値検査に加え、秘密計算でのソートを行う。
<構成>
図1に例示するように、第3実施形態の秘密計算システム3は、分散装置11およびM個の秘密計算装置32−32M−1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。図2に例示するように、本形態の秘密計算装置32(ただし、m=0,…,M−1)は、通信部121、記憶部122、制御部123、入力演算部224、検査ビット列取得部225、空値検査部226、ソート部327、およびソート結果利用演算部328を有する。秘密計算装置32は、制御部123の制御の下で各処理を実行する。
<処理>
次に、図3を参照して本形態の処理を説明する。
分散装置11は入力値W(d)の秘密分散値[W(d)]を生成して秘密計算装置22(ただし、m=0,…,M−1、d=0,…,D−1であり、Dが2以上の整数である)に送信する。入力値W(d)は空値または実数値X(d)に対応する。入力値W(d)のフォーマットは前述した入力値Wのフォーマットと同じである。秘密分散値[W(d)]mmは、秘密計算装置32(図2)の通信部121で受信され、入力演算部124に送られる(ステップS31)。
入力演算部324は、秘密計算により、入力値W(d)の秘密分散値[W(d)]を用いてY(d)=(W(d)+2) mod Pの秘密分散値[Y(d)]を得て出力する。Y(d)は「対象ビット列A(d)が表す値」に相当する。対象ビット列A(d)は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応するビット列である(ステップS32)。
検査ビット列取得部325は、秘密分散値[Y(d)]を入力とし、秘密計算により、V(d)=2×Y(d) mod Pの秘密分散値[V(d)]を得て出力する。V(d)は「検査ビット列C(d)が表す値」に相当する(ステップS33)。
空値検査部326は、秘密分散値[V(d)]を入力とし、検査ビット列C(d)の最下位ビットから検査ビットまでの各ビット値の秘密分散値[r(d)]を得て出力する。例えば、T=1の場合、空値検査部326は、最下位ビットである検査ビットの値の秘密分散値[r(d)]を得て出力する(ステップS34)。
ソート部327は、対象ビット列A(d)(ただし、d=0,…,D−1)が表すY(d)の秘密分散値[Y(d)]を入力とし、秘密計算により、Y(d)の大きさに応じたソートを行い、そのソート結果の秘密分散値[θ]を得て出力する。Y(d)はY(d)が大きいほど大きな実数値X(d)に対応している。なお、秘密計算によるソート方法に限定はなく、公知の方法によって実行すればよい。例えば、ソート部327は、参考文献2のビット分解により、象ビット列A(d)の各ビット値の秘密分散値からなるベクトル[BitA(d)]の列を得、ベクトル[BitA(d)]の列を参考文献3,4等の方法でソートし、その結果の秘密分散値[θ]を出力する。秘密分散値[θ]は、例えばソートされた[BitA(d)]の列である(ステップS35)。
ソート結果利用演算部328は、ソート結果の秘密分散値[θ]を得、最大値、最小値、中央値の少なくとも何れの秘密分散値[Φ]を得て出力する。最大値の秘密分散値を得る場合、ソート結果利用演算部328は、例えばソートされた[BitA(d)]の列のうち最後の要素を選択して出力する。最小値の秘密分散値を得る場合、ソート結果利用演算部328は、例えばソートされた[BitA(d)]の列のうち最初の要素を選択して出力する。中央値の秘密分散値を得る場合には、例えば次のような処理を行う。Dが奇数のとき、ソート結果利用演算部328は、ソートされた[BitA(d)]の列の中央の列の各要素の2倍値を要素とする列の秘密分散値を出力する。Dが偶数のとき、ソート結果利用演算部328は、ソートされた[BitA(d)]の列の中央に最も近い2列を加算した列の秘密分散値を出力する(ステップS36)。
秘密計算装置32は、秘密分散値[r(d)](ただし、d=0,…,D−1)および[Φ]を出力する(ステップS37)。
[第3実施形態の変形例1]
第3実施形態では、ソート部327が、対象ビット列A(d)(ただし、d=0,…,D−1)が表すY(d)の秘密分散値[Y(d)]を入力とし、秘密計算により、Y(d)の大きさに応じたソートを行い、そのソート結果の秘密分散値[θ]を得て出力した(ステップS35)。これに代え、図10に示すように、ソート部327が、秘密分散値[V(d)]を入力とし、秘密計算により、検査ビット列C(d)が表す値V(d)の大きさに応じたソートを行い、そのソート結果の秘密分散値[θ]を得て出力してもよい(ステップS35’)。
[第3実施形態の変形例2]
第3実施形態およびその変形例1では、秘密計算装置32が、秘密分散値[r(d)](ただし、d=0,…,D−1)および[Φ]を出力した。しかしながら、T≧2の場合であっても、[r(d)](ただし、d=0,…,D−1)に代えて、検査ビット列C(d)の各検査ビットの値の秘密分散値のみが出力されてもよい。[Φ]に代えて[θ]が出力されてもよい。また、秘密計算装置32が、各検査ビットの値がすべて0の場合に秘密分散値[Φ]または[θ]となり、何れかの検査ビットの値が1の場合にエラーを表す秘密分散値となる値を生成して出力してもよい。
[第3実施形態の変形例3]
各秘密計算装置32に秘密分散値[Y(d)]が入力され、ステップS33からS37の処理が実行されてもよい。
[第4実施形態]
第1から第3実施形態を組み合わせた形態であってもよいし、それらの少なくとも一部が前述の変形例に置き換えられた形態であってもよい。図1に例示するように、このような形態の計算システム4は、分散装置11およびM個の秘密計算装置42−42M−1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。秘密計算装置42(ただし、m=0,…,M−1)は、通信部121、記憶部122、制御部123、入力演算部124、検査ビット列取得部125、空値検査部126、大小比較ビット列取得部227、大小比較部228、ソート部327、およびソート結果利用演算部328を有する。秘密計算装置42は、制御部123の制御の下で各処理を実行する。各部の処理は第1から第3実施形態およびそれらの変形例で説明した通りである。
[その他の変形例等]
本発明は上述の実施の形態に限定されるものではない。例えば、秘密分散値[W]がその他の秘密計算装置での秘密計算結果であってもよい。また、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。あるいは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。これらの装置の一部からなる組み合わせが、同一の装置であってもよい。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
1−4 秘密計算システム
11 分散装置
12−42 秘密計算装置

Claims (8)

  1. 最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する第1対象ビット列が表す値の秘密分散値を用い、前記第1対象ビット列の最上位ビットの値を最上位ビットよりも下位の第1検査ビットの値とした第1検査ビット列が表す値の秘密分散値を得る第1検査ビット列取得部と、
    前記第1検査ビット列が表す値の秘密分散値を用い、前記第1検査ビット列の最下位ビットから前記第1検査ビットまでのビット値の秘密分散値を得る第1空値検査部と、
    を有する秘密計算装置。
  2. 請求項1の秘密計算装置であって、
    Nが2以上の整数であり、P=2−1であり、Lが0≦L≦N−u’の整数であり、u’が2以上N以下の正の整数であり、Xが−2≦X≦2N−1−2−1の整数であり、
    前記第1対象ビット列がN個のビットからなる列であり、
    空値に対応する前記第1対象ビット列が表す値は、Y={2+(P+1)/2} mod Pであり、
    0以上の整数であるXに対応する前記第1対象ビット列が表す値は、Y=(2+X) mod Pであり、
    負の整数であるXに対応する前記第1対象ビット列が表す値は、Y=(P+2+X) mod Pである、秘密計算装置。
  3. 請求項2の秘密計算装置であって、
    空値に対応する値がW=(P+1)/2 mod Pであり、0以上の整数であるXに対応する値がW=X mod Pであり、負の整数であるXに対応する値がW=(P+X) mod Pである入力値Wの秘密分散値を用い、前記第1対象ビット列が表す値Y=(W+2) mod Pの秘密分散値を得る入力演算部を有する、秘密計算装置。
  4. 請求項1から3の何れかの秘密計算装置であって、
    第2対象ビット列が、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応するビット列であり、
    前記第1対象ビット列が表す値から前記第2対象ビット列が表す値を減じた値に2K−1を加算した値を表す比較結果値の秘密分散値を得る大小比較ビット列取得部と、
    前記比較結果値を表すビット列の下位からKビット目の値の秘密分散値を得る大小比較部と、を有し、
    Kが2以上の整数であり、最上位ビットが0の前記第1対象ビット列が表す値および最上位ビットが0の前記第2対象ビット列が表す値の大きさは0以上2K−1未満である、秘密計算装置。
  5. 請求項4の秘密計算装置であって、
    前記第2対象ビット列が表す値の秘匿値を用い、前記第2対象ビット列の最上位ビットの値を最上位ビットよりも下位の第2検査ビットの値とした第2検査ビット列が表す値の秘密分散値を得る第2検査ビット列取得部と、
    前記第2検査ビット列が表す値の秘密分散値を用い、前記第1検査ビット列の最下位ビットから前記第2検査ビットまでのビット値の秘密分散値を得る第2空値検査部と、
    を有する、秘密計算装置。
  6. d=0,…,D−1であり、Dが2以上の整数であり、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する対象ビット列A(d)が表す値の秘密分散値を用い、前記対象ビット列A(d)の最上位ビットの値を最上位ビットよりも下位の検査ビットの値r(d)とした検査ビット列C(d)が表す値の秘密分散値を得る検査ビット列取得部と、
    前記検査ビット列C(d)が表す値の秘密分散値を用い、前記第1検査ビット列C(d)の最下位ビットから前記検査ビットまでのビット値の秘密分散値を得る空値検査部と、
    前記対象ビット列A(d)が表す値の大きさに応じたソート結果の秘密分散値、または検査ビット列C(d)が表す値の大きさに応じたソート結果の秘密分散値を得るソート部と、
    を有し、
    前記ソート部で前記対象ビット列A(d)が表す値の大きさに応じたソート結果の秘密分散値を得る場合には、最上位ビットが0の前記対象ビット列A(d)が表す値が、前記対象ビット列A(d)が表す値が大きいほど大きな実数値に対応しており、
    前記ソート部で検査ビット列C(d)が表す値の大きさに応じたソート結果の秘密分散値を得る場合には、最上位ビットが0の前記対象ビット列A(d)に対応する前記検査ビット列C(d)が表す値が、前記検査ビット列C(d)が表す値が大きいほど大きな実数値に対応している、秘密計算装置。
  7. 第1検査ビット列取得部において、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する第1対象ビット列が表す値の秘密分散値を用い、前記第1対象ビット列の最上位ビットの値を最上位ビットよりも下位の第1検査ビットの値とした第1検査ビット列が表す値の秘密分散値を得るステップと、
    第1空値検査部において、前記第1検査ビット列が表す値の秘密分散値を用い、前記第1検査ビット列の最下位ビットから前記第1検査ビットまでのビット値の秘密分散値を得るステップと、
    を有する秘密計算方法。
  8. 請求項1から6の何れかの秘密計算装置としてコンピュータを機能させるためのプログラム。
JP2015126179A 2015-06-24 2015-06-24 秘密計算装置、秘密計算方法、およびプログラム Active JP5957126B1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2015126179A JP5957126B1 (ja) 2015-06-24 2015-06-24 秘密計算装置、秘密計算方法、およびプログラム
CN201680033336.5A CN107735830B (zh) 2015-06-24 2016-06-13 秘密计算装置、秘密计算方法和记录介质
US15/737,915 US10679522B2 (en) 2015-06-24 2016-06-13 Secure computation apparatus, secure computation method and program
EP16814208.1A EP3316235B1 (en) 2015-06-24 2016-06-13 Device, method and program for secure multiparty comparison
PCT/JP2016/067529 WO2016208437A1 (ja) 2015-06-24 2016-06-13 秘密計算装置、秘密計算方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015126179A JP5957126B1 (ja) 2015-06-24 2015-06-24 秘密計算装置、秘密計算方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP5957126B1 true JP5957126B1 (ja) 2016-07-27
JP2017009840A JP2017009840A (ja) 2017-01-12

Family

ID=56513738

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015126179A Active JP5957126B1 (ja) 2015-06-24 2015-06-24 秘密計算装置、秘密計算方法、およびプログラム

Country Status (5)

Country Link
US (1) US10679522B2 (ja)
EP (1) EP3316235B1 (ja)
JP (1) JP5957126B1 (ja)
CN (1) CN107735830B (ja)
WO (1) WO2016208437A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018212015A1 (ja) * 2017-05-18 2018-11-22 日本電気株式会社 秘密計算装置、比較方法、比較プログラム記録媒体、および秘密計算システム
WO2019208486A1 (ja) * 2018-04-26 2019-10-31 日本電信電話株式会社 秘密集約中央値システム、秘密計算装置、秘密集約中央値方法、およびプログラム
WO2019208485A1 (ja) * 2018-04-25 2019-10-31 日本電信電話株式会社 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム
WO2023233622A1 (ja) * 2022-06-02 2023-12-07 日本電信電話株式会社 秘密計算装置、秘密計算方法、プログラム

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11599681B2 (en) 2017-05-18 2023-03-07 Nec Corporation Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program
WO2019073858A1 (ja) * 2017-10-12 2019-04-18 日本電信電話株式会社 置換装置、置換方法、およびプログラム
TWI692743B (zh) * 2018-01-08 2020-05-01 國立高雄科技大學 以調色盤壓縮為基礎的彩色影像驗證方法與電腦程式產品
JP6973629B2 (ja) * 2018-04-20 2021-12-01 日本電信電話株式会社 秘密集約順位システム、秘密計算装置、秘密集約順位方法、およびプログラム
JP7067624B2 (ja) * 2018-08-13 2022-05-16 日本電信電話株式会社 秘密強写像計算システム、これらの方法、秘密計算装置及びプログラム
WO2020075273A1 (ja) * 2018-10-11 2020-04-16 日本電気株式会社 情報処理装置、秘密計算方法及びプログラム
BR112021023407A2 (pt) 2019-05-24 2022-01-04 Lummus Technology Inc Produção flexível de gasolina e combustível de aviação em reator de alquilação
US11290264B2 (en) * 2019-11-06 2022-03-29 Robert Bosch Gmbh Secure and efficient multi-server oblivious random access machine in a malicious execution environment
WO2021149105A1 (ja) * 2020-01-20 2021-07-29 日本電信電話株式会社 秘密計算装置、秘密計算方法、およびプログラム
CN114981864B (zh) * 2020-01-20 2025-01-07 日本电信电话株式会社 秘密选择积计算系统、秘密选择积计算方法、秘密计算装置以及程序产品
US20220407682A1 (en) * 2020-01-20 2022-12-22 Nippon Telegraph And Telephone Corporation Secure computation apparatus, secure computation method, and program
CN114981860A (zh) * 2020-01-20 2022-08-30 日本电信电话株式会社 秘密计算装置、秘密计算方法、以及程序
EP4095826A4 (en) * 2020-01-20 2023-10-25 Nippon Telegraph And Telephone Corporation SECURE CALCULATION DEVICE, SECURE CALCULATION METHOD AND PROGRAM
JP7380843B2 (ja) * 2020-03-24 2023-11-15 日本電気株式会社 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム
CN116324933A (zh) * 2020-10-16 2023-06-23 日本电信电话株式会社 隐匿msb标准化系统、分散处理装置、隐匿msb标准化方法以及程序
JP7451445B2 (ja) * 2021-02-10 2024-03-18 株式会社東芝 秘匿演算方法、秘匿演算システム及び秘匿演算管理装置
CN114760055B (zh) * 2022-06-15 2022-09-09 山东区块链研究院 基于梅森素数的秘密分享方法、系统、存储介质及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015053185A1 (ja) * 2013-10-10 2015-04-16 日本電信電話株式会社 秘密商転移装置、秘密ビット分解装置、秘密モジュラス変換装置、秘密商転移方法、秘密ビット分解方法、秘密モジュラス変換方法、プログラム
WO2015107951A1 (ja) * 2014-01-17 2015-07-23 日本電信電話株式会社 秘密計算方法、秘密計算システム、ソート装置及びプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7899184B2 (en) * 2004-09-02 2011-03-01 Pisaramedia Oy Ends-messaging protocol that recovers and has backward security
JP2007189517A (ja) * 2006-01-13 2007-07-26 Nec Corp 量子暗号装置
EP1835657B1 (en) * 2006-03-16 2014-11-12 Sap Se Methods and systems for multi-party sorting of private values
JP4901311B2 (ja) * 2006-06-01 2012-03-21 株式会社東芝 データ処理装置、データ処理方法、およびデータ処理プログラム
JP5424974B2 (ja) * 2010-04-27 2014-02-26 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
JP5411994B2 (ja) * 2010-10-06 2014-02-12 日本電信電話株式会社 秘密分散システム、秘密分散装置、秘密分散方法、秘密ソート方法、秘密分散プログラム
CN103329185B (zh) * 2011-01-24 2015-07-15 日本电信电话株式会社 隐匿积和计算方法、隐匿积和计算系统、计算装置
JP5480828B2 (ja) * 2011-01-24 2014-04-23 日本電信電話株式会社 秘密ソートシステム、秘密ソート装置、秘密ソート方法、秘密ソートプログラム
JP5826934B2 (ja) * 2012-07-05 2015-12-02 日本電信電話株式会社 秘密分散システム、データ分散装置、分散データ変換装置、秘密分散方法、およびプログラム
EP2947642B1 (en) * 2013-01-17 2017-09-06 Nippon Telegraph and Telephone Corporation Secret computation system, arithmetic unit, secret computation method and program
JP6034927B1 (ja) * 2015-07-27 2016-11-30 日本電信電話株式会社 秘密計算システム、秘密計算装置、およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015053185A1 (ja) * 2013-10-10 2015-04-16 日本電信電話株式会社 秘密商転移装置、秘密ビット分解装置、秘密モジュラス変換装置、秘密商転移方法、秘密ビット分解方法、秘密モジュラス変換方法、プログラム
WO2015107951A1 (ja) * 2014-01-17 2015-07-23 日本電信電話株式会社 秘密計算方法、秘密計算システム、ソート装置及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6016022282; 加藤遼,他: '小さい法を用いたセキュアマルチパーティ計算のビット演算の効率化' コンピュータセキュリティシンポジウム2013論文集 , 20131014, pp. 419-426, 一般社団法人情報処理学会 *
JPN6016022285; 五十嵐大: '少パーティの秘密分散ベース秘密計算のためのO(l)ビット通信ビット分解およびO(|p'|)ビット通信' コンピュータセキュリティシンポジウム2013論文集 , 20131014, pp. 785-792, 一般社団法人情報処理学会 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018212015A1 (ja) * 2017-05-18 2018-11-22 日本電気株式会社 秘密計算装置、比較方法、比較プログラム記録媒体、および秘密計算システム
JPWO2018212015A1 (ja) * 2017-05-18 2020-03-12 日本電気株式会社 秘密計算装置、比較方法、比較プログラム、および秘密計算システム
JP7047838B2 (ja) 2017-05-18 2022-04-05 日本電気株式会社 秘密計算装置、比較方法、比較プログラム、および秘密計算システム
US11314506B2 (en) 2017-05-18 2022-04-26 Nec Corporation Secure computation device, comparison method, comparison program recording medium, and secure computation system
WO2019208485A1 (ja) * 2018-04-25 2019-10-31 日本電信電話株式会社 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム
CN112074890A (zh) * 2018-04-25 2020-12-11 日本电信电话株式会社 秘密聚合最大值系统、秘密聚合最小值系统、秘密计算装置、秘密聚合最大值方法、秘密聚合最小值方法以及程序
JPWO2019208485A1 (ja) * 2018-04-25 2021-04-22 日本電信電話株式会社 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム
CN112074890B (zh) * 2018-04-25 2024-03-22 日本电信电话株式会社 秘密聚合最大值系统和方法、秘密聚合最小值系统和方法、秘密计算装置、以及记录介质
WO2019208486A1 (ja) * 2018-04-26 2019-10-31 日本電信電話株式会社 秘密集約中央値システム、秘密計算装置、秘密集約中央値方法、およびプログラム
JPWO2019208486A1 (ja) * 2018-04-26 2021-04-22 日本電信電話株式会社 秘密集約中央値システム、秘密計算装置、秘密集約中央値方法、およびプログラム
WO2023233622A1 (ja) * 2022-06-02 2023-12-07 日本電信電話株式会社 秘密計算装置、秘密計算方法、プログラム

Also Published As

Publication number Publication date
EP3316235A1 (en) 2018-05-02
CN107735830A (zh) 2018-02-23
US20180158377A1 (en) 2018-06-07
JP2017009840A (ja) 2017-01-12
EP3316235A4 (en) 2019-01-30
EP3316235B1 (en) 2020-04-29
US10679522B2 (en) 2020-06-09
CN107735830B (zh) 2020-10-20
WO2016208437A1 (ja) 2016-12-29

Similar Documents

Publication Publication Date Title
JP5957126B1 (ja) 秘密計算装置、秘密計算方法、およびプログラム
Bauer et al. Clear and compress: Computing persistent homology in chunks
JP6095792B2 (ja) 秘密ビット分解装置、秘密モジュラス変換装置、秘密ビット分解方法、秘密モジュラス変換方法、プログラム
JP2017515195A (ja) 断熱量子計算を介してデジタル論理制約問題を解く
JP7031682B2 (ja) 秘密計算装置、システム、方法、プログラム
WO2019208484A1 (ja) 秘密集約総和システム、秘密計算装置、秘密集約総和方法、およびプログラム
CN112805770B (zh) 秘密右移位运算系统及方法、秘密除法运算系统及方法、秘密计算装置以及记录介质
JP5872085B1 (ja) 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム
JPWO2019208485A1 (ja) 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム
JP2014081475A (ja) 秘密計算システム、集約関数装置、秘密計算方法、およびプログラム
CN112434317A (zh) 数据处理方法、装置、设备及存储介质
JP7327510B2 (ja) 秘密乱数生成システム、秘密計算装置、秘密乱数生成方法、およびプログラム
US10469257B2 (en) Matrix and key generation device, matrix and key generation system, matrix coupling device, matrix and key generation method, and program
JP6367959B2 (ja) 部分文字列位置検出装置、部分文字列位置検出方法及びプログラム
CN106796765B (zh) 非减序列判定装置、非减序列判定方法以及记录介质
CN112417478A (zh) 数据处理方法、装置、设备及存储介质
JP5875717B1 (ja) 乱数生成装置、乱数生成方法、およびプログラム
JP2014137740A (ja) 計算装置、計算システム、計算方法
JP7331952B2 (ja) 秘密平方根逆数計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム
JP5875719B1 (ja) 乱数生成装置、乱数生成方法、およびプログラム
Xu et al. High-efficiency realization of SRT division on ternary optical computers
JP7331951B2 (ja) 秘密平方根計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム
JP7331953B2 (ja) 秘密逆数計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム
WO2023233622A1 (ja) 秘密計算装置、秘密計算方法、プログラム
Tchinda et al. A Polynomial Algorithm for Solving the Closest Vector Problem in Tensored Root Lattices of Type D

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160608

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: 20160614

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160617

R150 Certificate of patent or registration of utility model

Ref document number: 5957126

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150