JPWO2016042693A1 - 秘密計算装置、方法、記録媒体、および秘密計算システム - Google Patents

秘密計算装置、方法、記録媒体、および秘密計算システム Download PDF

Info

Publication number
JPWO2016042693A1
JPWO2016042693A1 JP2016548533A JP2016548533A JPWO2016042693A1 JP WO2016042693 A1 JPWO2016042693 A1 JP WO2016042693A1 JP 2016548533 A JP2016548533 A JP 2016548533A JP 2016548533 A JP2016548533 A JP 2016548533A JP WO2016042693 A1 JPWO2016042693 A1 JP WO2016042693A1
Authority
JP
Japan
Prior art keywords
secret
nth
logical product
computing device
local
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.)
Granted
Application number
JP2016548533A
Other languages
English (en)
Other versions
JP6493697B2 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2016042693A1 publication Critical patent/JPWO2016042693A1/ja
Application granted granted Critical
Publication of JP6493697B2 publication Critical patent/JP6493697B2/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

ビットの元の排他的論理和を、複数の秘密計算装置で分散したまま計算しつつ、これらの秘密計算装置間に通信が発生せず、ビットの論理積も少ない通信量と計算で分散したまま計算するために、秘密計算装置は、局所論理積装置と、論理積再分配装置と、を備える。局所論理積装置は、少なくとも2つの1ビットの入力要素を受け、第1の局所積要素を出力する。論理積再分配装置は、1ビットのマスクと、第1の局所積要素とP(Pは0以上の整数)個のビットとの排他的論理和を計算して得られる第2の局所積要素とを受け、第1論理和を計算し、他の秘密計算装置の論理積分配装置と通信して、少なくとも1つの1ビットの出力要素を出力する。(図1)

Description

本発明は、秘密計算装置、方法、記録媒体、および秘密計算システムに関する。
秘密計算方法とは、複数の秘密計算装置が互いに通信を介しながら計算することで、与えられた関数を計算する方法である。そして、秘密計算方法は、これらのいずれの秘密計算装置も十分な数の多装置間で互いに扱うデータを共有しない限り、関数への入力や出力に関する情報を得ることができない特徴を持つ。
公知の秘密計算方法として、非特許文献1に挙げられる方法が知られている。
非特許文献1に記載の方法では、ある体上の値である秘密Sを、この体上の多項式FでF(0)=Sとなるものを使って複数の装置に分散する。装置の数をN、秘密の個数がK未満であれば、関数の入力や出力に関する情報を得ることができないとする。装置毎に異なるこの体上の値が割り当てられているとし、i番目の装置に割り当てられている体の値をX[i]とする。ここで、1≦i≦Nである。
秘密Aをこれら複数の装置に分散する時、各i番目の装置にはF(0)=Aなるランダムに選ばれた(K-1)次多項式Fに関する、F[i]:=F(X[i])を配る。
秘密Bに関しても同様に、G(0)=Bなる(K-1)次多項式Gに関する、G[i]:=G(X[i])を各i番目の装置に配る。
秘密は、K個以上の装置が集まれば(K-1)次多項式を解くことが可能で、FやGの係数を求めることができ、F(0)やG(0)を計算することが可能になる。
A+Bを分散した値を計算するには、各i番目の装置は H[i]=F[i]+G[i]を計算する。この値はFとGのそれぞれ対応する係数を足したものを係数とする多項式Hに、X[i]を代入して得られたものH(X[i])であるので、秘密Aや秘密Bと同様にA+Bを複数の装置で分散したものとなる。
秘密Aや秘密Bの場合と同様に、K個以上の装置が集まれば(K-1)次多項式を解くことが可能で、Hの係数を求めることができ、H(0)を計算することが可能になる。
K*2 ≦N+1 の場合は、A*Bを分散した値を計算するには、各i番目の装置は H[i]=F[i]*G[i]を計算する。この値は2K次多項式H(X)=F(X)*G(X)、X[i]を代入して得られたものH(X[i])であるので、秘密Aや秘密Bと同様にA*Bを複数の装置で分散したものとなる。ただし、秘密Aや秘密Bの場合とは異なりHの次数は2Kとなるので、2K個以上の装置が集まれば2K次多項式を解くことが可能で、Hの係数を求めることができ、H(0)を計算することが可能になる。
A*Bの分散方法は、秘密Aや秘密Bとは分散のされ方が異なる。これを同様に(K-1)次多項式を用いた形で分散するには、それぞれi番目の装置がH[i]からK-1次多項式Gを生成して、他のそれぞれj番目の装置にG(X[j])を配ることでなされる。このようにして、非特許文献1記載の方法では、加算と乗算からなる全ての関数を計算することができる。
この非特許文献1に記載の方法は、体上の乗算と加算が容易に行われるが、条件として2K≦N+1がある。Kは2以上でなければ装置単独で秘密を求めることができるため、Nは3以上である。
異なるiに関するX[i]は異ならなければならないので、非特許文献1記載の方法では、利用できる体にガロア体GF(2)は含まれない。ガロア体GF(2)が含まれないため、非特許文献1記載の方法では、加算を用いて排他的論理和とすることはできない。
その他の公知の秘密計算方法として、非特許文献2に挙げられる方法が知られている。
非特許文献2には、装置の数が二つの場合の方法に関する記述がある。この方法では、二つの装置がビット、すなわちガロア体GF(2)上のある要素bを分散して保持する場合は、 b+c=b mod 2 となるbとcを、それぞれの装置で分けて保持する。
この様な方法を使うと、あるビットAとあるビットBを装置1と装置2で分散する場合、A=C+D mod 2, B=E+F mod 2として、装置1はCとEを、装置2はDとFを保持する。この時、ビットAとビットBの排他的論理和Gは G=A+B mod 2となり、これらの装置1と装置2との分散は、それぞれ、H=C+E mod 2とJ=D+F mod 2 とすることができる。
それぞれの装置は、他の装置と通信することなく、軽い計算で分散された二つの値の排他的論理和の分散が計算できたことになる。
同様に、ビットAとビットBが分散されて保持されているとき、この二つのビットの論理積 K=A・Bのそれぞれの分散、すなわち L+M=K mod 2なるLとMを、装置1がLを装置2がMを得るように計算を行うには、次のようにする。
装置1はLをランダムに生成する。この時、M=(C+D)・(E+F)=L mod 2 であるので、装置2が持つ値DとFに応じて、装置1がMの値を知らずに装置2に次の値を返す。(D,F)=(0,0)ならM=(C+0)・(E+0)+L mod 2を返す。(D,F)=(0,1)ならM=(C+0)・(1+E)+L mod 2 を返す。(D,F)=(1,0)ならM=(1+C)・(E+0)+L mod 2 を返す。(D,F)=(1,1)ならM=(1+C)・(1+E)+L mod 2 を返す。
装置2の入力に依存する値を装置1が装置2に送付する。装置1が装置2の入力を知ることができない方法は、装置1と装置2との間の oblivious transfer と呼ばれる技術で実現される。しかしながら、この技術では、一般に両者に多くの計算と通信を要求する。
Tal Rabin, Michael Ben-Or: Verifiable Secret Sharing and Multiparty Protocols with Honest Majority (Extended Abstract). STOC 1989: 73-85 Oded Goldreich, Ronen Vainish: How to Solve any Protocol Problem - An Efficiency Improvement. CRYPTO 1987: 73-86
非特許文献1に記述される方法は、通信を必要とするものの少ない通信量で論理積を分散して計算することが可能になる。また、非特許文献1に記述される方法は、必要な計算も少ない。一方、非特許文献1に記述される方法は、排他的論理和を分散して計算するために、論理積の計算と同様に通信と若干の計算を必要とする。
非特許文献2に記述される方法は、排他的論理和を分散して計算することに通信を伴わない利点がある。一方、非特許文献2に記述される方法は、論理積演算に通信も計算も必要とする。
本発明の目的は、上記先行技術の問題を踏まえ、ビット、すなわちガロア体GF(2) の元の排他的論理和を、複数の秘密計算装置で分散したまま計算しつつ、これらの秘密計算装置間に通信が発生せず、ビットの論理積も、少ない通信量と計算で分散したまま、計算することを実現する秘密計算装置、方法、記録媒体、および秘密計算システムを提供することにある。
本発明の秘密計算装置は、少なくとも2つの1ビットの入力要素を受け、第1の局所積要素を出力する局所論理積装置と;1ビットのマスクと、前記第1の局所積要素とP(Pは0以上の整数)個のビットとの排他的論理和を計算して得られる第2の局所積要素とを受け、第1論理和を計算し、他の秘密計算装置の論理積再分配装置と通信して、少なくとも1つの1ビットの出力要素を出力する論理積再分配装置と;を備える。
本発明の秘密計算方法は、少なくとも2つの1ビットの入力要素を受けて、第1の局所積要素を出力するステップと;1ビットのマスクと、前記第1の局所積要素とP(Pは0以上の整数)個のビットとの排他的論理和を計算して得られる第2の局所積要素とを受けて、第1論理和を計算し、他の秘密計算装置の論理積再分配装置と通信して、少なくとも1つの1ビットの出力要素を出力するステップと;を含む。
本発明のコンピュータ読み取り可能な記録媒体に記録された秘密計算プログラムは、コンピュータに、少なくとも2つの1ビットの入力要素を受けて、第1の局所積要素を出力する機能と;1ビットのマスクと、前記第1の局所積要素とP(Pは0以上の整数)個のビットとの排他的論理和を計算して得られる第2の局所積要素とを受けて、第1論理和を計算し、他の秘密計算装置の論理積再分配装置と通信して、少なくとも1つの1ビットの出力要素を出力する機能と;を実現させる。
本発明によれば、ビット、すなわちガロア体GF(2) の元の排他的論理和を、複数の秘密計算装置で分散したまま計算しつつ、これらの秘密計算装置間に通信が発生せず、ビットの論理積も、少ない通信量と計算で分散したまま、計算することを実現する秘密計算装置、方法、記録媒体、および秘密計算システムを提供できる。
本発明の第1の実施形態に係る秘密計算装置の構成を示すブロック図である。 本発明の第1の実施形態に係る秘密計算システムの一構成例を示すブロック図である。 本発明の第2の実施形態に係る秘密計算装置の構成を示すブロック図である。 本発明の第2の実施形態に係る秘密計算システムの一構成例を示すブロック図である。 本発明の実施例に係る秘密計算装置に使用される、局所論理積装置の構成を示すブロック図である。 本発明の実施例に係る秘密計算装置に使用される、論理積再分配装置の構成を示すブロック図である。 本発明の実施例に係る秘密計算装置に使用される、マスク生成装置の構成を示すブロック図である。 3台の秘密計算装置のうち2台が協力するとビットWを復元できる、実施例に係る秘密計算システムの構成を示すブロック図である。 ビットWとビットW’とがそれぞれ分散されている時に、分散されたままでこれらの排他的論理和を計算する、実施例に係る秘密計算システムの構成を示すブロック図である。 ビットWが分散されている時に、分散されたままでこれらの否定を計算する、実施例に係る秘密計算システムの構成を示すブロック図である。 ビットWとビットW’とがそれぞれ分散されている時に、分散されたままでこれらの論理積を計算する、実施例に係る秘密計算システムの構成を示すブロック図である。 図11に示す秘密計算システムに対して、大量の論理積を計算するように変更された、秘密計算システムの構成を示すブロック図である。
[実施形態1]
最初に、図1を参照して、本発明の第1の実施形態に係る秘密計算装置1について説明する。
図1は秘密計算装置1の構成を示すブロック図である。秘密計算装置1は、局所論理積装置100と、論理積再分配装置200と、排他的論理和回路300と、を備える。
局所論理積装置100は、少なくとも2つの1ビットの入力要素を受け、第1の局所積要素を出力する。排他的論理和回路300は、第1の局所積要素とP(Pは0以上の整数)個のビットとの排他的論理和を計算して、第2の局所積要素を出力する。論理積再分配装置200は、1ビットのマスクと、第2の局所積要素とを受け、第1論理和(排他的論理和)を計算し、他の秘密計算装置の論理積再分配装置と通信して、少なくとも1つの1ビットの出力要素を出力する。
尚、第1の局所積要素をそのまま第2の局所積要素として使用してもよい。この場合、すなわちP=0個の場合、排他的論理和回路300を省略することができる。
図2を参照すると、本発明の第1の実施形態による秘密計算システムは、図1に示す秘密計算装置1をN(Nは3以上の整数)台備えている。ここでは、N台の秘密計算装置を、それぞれ、第1乃至第Nの秘密計算装置1−1、1−2、・・・、1−Nと記す。
したがって、図示はしないが、第1乃至第Nの秘密計算装置1−1〜1−Nは、それぞれ、第1乃至第Nの局所論理積装置と、第1乃至第Nの論理積再分配装置とを含んでいる。
この場合、第1の秘密計算装置1−1の第1の論理積再分配装置は、上記第1論理和を第Nの秘密計算装置1−Nの第Nの論理積再分配装置へ送る。また、第Nの秘密計算装置1−Nの第Nの論理積再分配装置は、第1の秘密計算装置1−1から上記第1論理和を受け付ける。同様に、各々の第n(2≦n≦N)の秘密計算装置1−nの第nの論理積再分配装置は、上記第1論理和を第(n−1)の秘密計算装置1−(n−1)の第(n−1)の論理積再分配装置へ送る。また、第(n−1)の秘密計算装置1−(n−1)の第(n−1)の論理積再分配装置は、第nの秘密計算装置1−nの第nの論理積再分配装置からそれぞれ送られてきた上記第1論理和を受け付ける。
図2に示した秘密計算システムでは、第1乃至第Nの秘密計算装置1−1〜1−Nのすべてが互いに第1論理和を送受信している。しかしながら、すべての秘密計算装置が第1論理和を互いに送受信する必要はない。すなわち、第1乃至第Nの秘密計算装置1−1〜1−Nの内、いずれか1つが第1論理和を送信のみをし、他の1つが第1論理和を受信のみをしてもよい。
このような構成の秘密計算システムでは、ビットの排他的論理和を、複数の秘密計算装置1−1〜1−Nで分散したまま計算しつつ、これらの秘密計算装置1−1〜1−N間に通信が発生しない。また、このような構成の秘密計算システムによれば、ビットの論理積も、少ない通信量と計算で分散したまま計算することができる。
したがって、第1の実施形態による秘密計算システムによれば、任意の関数を、複数の秘密計算装置1−1〜1−Nで分散したまま、かつデータをどの秘密計算装置1−1〜1−Nも知ることなく、高速に計算することが可能となる。
[実施形態2]
次に、図3を参照して、本発明の第2の実施形態に係る秘密計算装置1’について説明する。
図3は秘密計算装置1’の構成を示すブロック図である。図示の秘密計算装置1’は、マスク生成装置400を更に備えている点を除いて、図1に示した秘密計算装置1と同様の構成を有し動作をする。したがって、図1の構成要素と同一の機能を有するものには同一の参照符号を付し、説明の簡略化のために、それらの説明については省略する。
マスク生成装置400は、他の秘密計算装置のマスク生成装置と通信し、鍵を使用して乱数を生成する。この乱数から選ばれた1ビットが上記マスクとして論理積再分配装置200へ供給される。鍵は、自マスク生成装置400で生成したものを使用しても良いし、他のマスク生成装置で生成された鍵を受信したものを使用しても良い。
図4を参照すると、本発明の第2の実施形態による秘密計算システムは、図3に示す秘密計算装置1’をN台備えている。ここでは、N台の秘密計算装置を、それぞれ、第1乃至第Nの秘密計算装置1’−1、1’−2、・・・、1’−Nと記す。
したがって、図示はしないが、第1乃至第Nの秘密計算装置1’−1〜1’−Nは、それぞれ、第1乃至第Nの局所論理積装置と、第1乃至第Nの論理積再分配装置と、第1乃至第Nのマスク生成装置とを含んでいる。
この場合、第1の秘密計算装置1’−1の第1の論理積再分配装置は、上記第1論理和を第Nの秘密計算装置1’−Nの第Nの論理積再分配装置へ送る。そして、第n(2≦n≦N)の秘密計算装置1’−nの第nの論理積再分配装置は、上記第1論理和を第(n−1)の秘密計算装置1’−(n−1)の第(n−1)の論理積再分配装置へ送る。
一方、第1の秘密計算装置1’−1の第1のマスク生成装置は、上記鍵を第Nの秘密計算装置1’−Nの第Nのマスク生成装置へ送る。そして、第nの秘密計算装置1’−nの第nのマスク生成装置は、上記鍵を第(n−1)の秘密計算装置1’−(n−1)の第(n−1)のマスク生成装置へ送る。
第1乃至第Nの秘密計算装置1’−1〜1’−Nの第1乃至第Nのマスク生成装置は、それぞれ、送られてきた上記鍵を受け付ける。
図4に示した秘密計算システムでは、第1乃至第Nの秘密計算装置1’−1〜1’−Nのすべてが互いに第1論理和および鍵を送受信している。しかしながら、すべての秘密計算装置が第1論理和および鍵を互いに送受信する必要はない。すなわち、第1乃至第Nの秘密計算装置1’−1〜1’−Nの内、いずれか1つが第1論理和を送信のみをし、他の1つが第1論理和を受信のみをしてもよい。そして、第1乃至第Nの秘密計算装置1’−1〜1’−Nの内、いずれか1つが鍵を送信のみをし、他の1つが鍵を受信のみをしてもよい。
このような構成の秘密計算システムでは、ビットの排他的論理和を、複数の秘密計算装置1’−1〜1’−Nで分散したまま計算しつつ、これらの秘密計算装置1’−1〜1’−N間に通信が発生しない。また、このような構成の秘密計算システムによれば、ビットの論理積も、少ない通信量と計算で分散したまま計算することができる。
したがって、第2の実施形態による秘密計算システムによれば、任意の関数を、複数の秘密計算装置1’−1〜1’−Nで分散したまま、かつデータをどの秘密計算装置1’−1〜1’−Nも知ることなく、高速に計算することが可能となる。
次に、本発明の実施例について説明する。なおビットRとビットR’の排他的論理和は、R+R’ mod 2 と表現される。
図5は、図1に示した秘密計算装置1又は図3に示した秘密計算装置1’に使用される、本発明の実施例に係る局所論理積装置100を示すブロックである。
局所論理積装置100には、1ビットの第1入力第1要素101と、1ビットの第1入力第2要素103と、1ビットの第2入力第1要素102と、1ビットの第2入力第2要素104とが入力される。
局所論理積装置100は、第1の論理積回路105と、第2の論理積回路106と、排他的論理和回路107と、から成る。
第1の論理積回路105は、第1入力第1要素101と第2入力第1要素102との論理積をとり、その論理積結果を第1論理積108として出力する。第2の論理積回路106は、第1入力第2要素103と第2入力第2要素104との論理積をとり、その論理積結果を第2論理積109として出力する。排他的論理和回路107は、第1論理積108と第2論理積109との排他的論理和をとり、その排他的論理和結果を局所積要素(第1の局所積要素)110として出力する。
図6は、図1に示した秘密計算装置1又は図3に示した秘密計算装置1’に使用される、本発明の実施例に係る論理積再分配装置200を示すブロック図である。
論理積再分配装置200には、1ビットのマスク201と1ビットの局所積要素(第2の局所積要素)202とが入力される。
論理積再分配装置200は、第1の排他的論理和回路203と、通信装置204と、第2の排他的論理和回路206と、から成る。
第1の排他的論理和回路203は、マスク201と局所積要素202との排他的論理和をとり、その排他的論理和を第1論理和205として出力する。通信装置204は、第1論理和205を第1の他の秘密計算装置の論理積再分配装置へ送信する。また、通信装置204は、第2の他の秘密計算装置の論理積再分配装置より、その第2の他の秘密計算装置の論理積再分配装置で同様に生成された第1論理和を受信第1論理和207として受信する。
また、第1の排他的論理和回路203は、第1論理和205を、信号線210を介して出力第1要素208として出力する。したがって、信号線210は、第1論理和205を出力第1要素208として出力する手段として働く。
第2の排他的論理和回路206は、第1論理和205と受信第1論理和207との排他的論理和をとり、その排他的論理和結果を出力第2要素209として出力する。
論理積再分配装置200は、後述する図7に示すマスク生成装置400が出力する乱数407から選ばれた1ビットを、マスク201として利用しても良い。
図7は、図3に示した秘密計算装置1’に使用される、本発明の実施例に係るマスク生成装置400を示すブロック図である。マスク生成装置400は、乱数生成装置とも呼ばれる。
マスク生成装置400には、鍵401が入力される。
マスク生成装置400は、第1の疑似乱数生成器402と、通信装置403と、第2の疑似乱数生成器404と、排他的論理和回路409と、から成る。
第1の疑似乱数生成器402は、鍵401を入力して第1疑似乱数405を生成する。通信装置403は、鍵401を第1の他の秘密計算装置のマスク生成装置へ送信する。また、通信装置403は、第2の他の秘密計算装置のマスク生成装置より鍵を受信鍵410として受信する。第2の疑似乱数生成器404は、受信鍵410を入力して第2疑似乱数406を生成する。排他的論理和回路409は、第1疑似乱数405と第2疑似乱数409とのビット毎の排他的論理和をとり、その排他的論理和結果を乱数407として出力する。
図8に示されるように、本発明の実施例に係る秘密計算システムは、図1又は図3に示した秘密計算装置1又は1’を3台備えている。ここでは、3台の秘密計算装置を、それぞれ第1の秘密計算装置1A、第2の秘密計算装置2A、および第3の秘密計算装置3Aとする。
ビットWが3台の秘密計算装置1A,2A,3Aに分散されている。この時、R[1]+R[2]+R[3]=0 mod 2 なる三つのランダムに選ばれたビットR[1]、R[2]、R[3]をもちいる。第1の秘密計算装置1Aには(R[1],W+R[2] mod 2)が格納されている。第2の秘密計算装置2Aには(R[2],W+R[3] mod 2)が格納されている。第3の秘密計算装置3Aには(R[3],W+R[1] mod 2)が格納されている。
3台の秘密計算装置1A,2A,3Aのうち2台の秘密計算装置が協力すると、ビットWを復元することができる。これは、一般性を失わずに、第1の秘密計算装置1Aと第2の秘密計算装置2Aが協力する場合に、この復元方法を説明できる。例えば、第1の秘密計算装置1AからのW+R[2] mod 2と、第2の秘密計算装置2AからのR[2]とを用いて、W=W+R[2]+R[2] mod 2 と計算することができる。
(排他的論理和の通信を伴わない計算)
図9に示されるように、本発明の実施例に係る秘密計算システムは、図1又は図3に示した秘密計算装置1又は1’を3台備えている。ここでは、3台の秘密計算装置を、それぞれ第1の秘密計算装置1B、第2の秘密計算装置2B、および第3の秘密計算装置3Bとする。
ビットWとビットW’とがそれぞれ分散されている時に、分散されたままでこれらの排他的論理和を計算するには、次のようにする。
ビットWは、R[1]+R[2]+R[3]=0 mod 2 なる三つのランダムに選ばれたビットR[1]、R[2]、R[3]をもちいる。そのとき、第1の秘密計算装置1Bには(S[1],T[1])=(R[1],W+R[2] mod 2)が格納される。第2の秘密計算装置2Bには(S[2],T[2])=(R[2],W+R[3] mod 2)が格納される。第3の秘密計算装置3Bには(S[3],T[3])=(R[3],W+R[1] mod 2) が格納される。
ビットW’は、R’[1]+R’[2]+R’[3]=0 mod 2 なる三つのランダムに選ばれたビットをもちいる。このとき、第1の秘密計算装置1Bには(S’[1],T’[1])=(R’[1],W’+R’[2] mod 2)が格納される。第2の秘密計算装置2Bには(S’[2],T’[2])=(R’[2],W’+R’[3]mod 2)が格納される。第3の秘密計算装置3Bには(S’[3],T’[3])=(R’[3],W’+R’[1] mod 2) が格納される。
このとき、第1の秘密計算装置1Bは、(S”[1],T”[1])=(S[1]+S’[1] mod 2, T[1]+T’[1] mod 2)を計算する。第2の秘密計算装置2Bは、(S”[2],T”[2])=(S[2]+S’[2] mod 2, T[2]+T’[2] mod 2)を計算する。第3の秘密計算装置3Bは、(S”[3],T”[3])=(S[3]+S’[3] mod 2, T[3]+T’[3] mod 2)を計算する。
第1の秘密計算装置1B、第2の秘密計算装置2B、第3の秘密計算装置3Bは、それぞれの計算結果をもってW”=W+W’ mod 2を分散して保持したとする。これらの結果から、もとのビットWあるいはビットW’と同様に、W”を復元することができる。
(否定の計算)
図10に示されるように、本発明の実施例に係る秘密計算システムは、図1又は図3に示した秘密計算装置1又は1’を3台備えている。ここでは、3台の秘密計算装置を、それぞれ第1の秘密計算装置1C、第2の秘密計算装置2C、第3の秘密計算装置3Cとする。
ビットWが分散されている時に、分散されたままでこれらの否定を計算するには次のようにする。
ビットWは、R[1]+R[2]+R[3]=0 mod 2 なる三つのランダムに選ばれたビットR[1]、R[2]、R[3]をもちいる。第1の秘密計算装置1Cには(S[1],T[1])=(R[1],W+R[2] mod 2)が格納されている。第2の秘密計算装置2Cには(S[2],T[2])=(R[2],W+R[3] mod 2)が格納されている。第3の秘密計算装置3Cには(S[3],T[3])=(R[3],W+R[1] mod 2)が格納されている。
第1の秘密計算装置1Cは、(S’[1],T’[1])=(S[1],T[1]+1 mod 2)を計算する。第2の秘密計算装置2Cは、(S’[2],T’[2])=(S[2],T[2]+1 mod 2)を計算する。第3の秘密計算装置3Cは、(S’[3],T’[3])=(S[3], T[3]+1 mod 2)を計算する。
第1の秘密計算装置1C、第2の秘密計算装置2C、第3の秘密計算装置3Cは、それぞれの計算結果をもってW’=W+1 mod 2を分散して保持したとする。これらの結果から、もとのビットWと同様に、W’を復元することができる。
(論理積の計算)
図11に示されるように、本発明の実施例に係る秘密計算システムは、図1に示した秘密計算装置1を3台備えている。ここでは、3台の秘密計算装置を、それぞれ第1の秘密計算装置1D、第2の秘密計算装置2D、第3の秘密計算装置3Dとする。ビットWとビットW’とがそれぞれ分散されている時に、分散されたままでこれらの論理積を計算するには次のようにする。
ビットWは、R[1]+R[2]+R[3]=0 mod 2 なる三つのランダムに選ばれたビットR[1]、R[2]、R[3]をもちいる。第1の秘密計算装置1Dには(S[1],T[1])=(R[1],W+R[2] mod 2)が格納されている。第2の秘密計算装置2Dには(S[2],T[2])=(R[2],W+R[3] mod 2)が格納されている。第3の秘密計算装置3Dには(S[3],T[3])=(R[3],W+R[1] mod 2) が格納されている。
ビットW’は、R’[1]+R’[2]+R’[3]=0 mod 2 なる三つのランダムに選ばれたビットR’[1]、R’[2]、R’[3]をもちいる。第1の秘密計算装置1Dには(S’[1],T’[1])=(R’[1],W’+R’[2] mod 2)が格納されている。第2の秘密計算装置2Dには(S’[2],T’[2])=(R’[2],W’+R’[3] mod 2)が格納されている。第3の秘密計算装置3Dには(S’[3],T’[3])=(R’[3],W’+R’[1] mod 2) が格納されている。
第1乃至第3の秘密計算装置1D、2D、3Dは、図5に示した局所論理積装置100を、それぞれ、第1乃至第3の局所論理積装置100−1、100−2、100−3として備える。
第1の局所論理装置1Dは、第1の局所論理積装置100−1に、その第1入力第1要素101としてS[1]を、第1入力第2要素103としてT[1]を、第2入力第1要素102としてS’[1]を、第2入力第2要素104としてT’[1]を与える。これにより、第1の局所論理積装置100−1は、局所積要素(第1の局所積要素)110として、U[1]=S[1]・S’[1] + T[1]・T’[1] mod 2を得る。
第2の秘密計算装置2Dも、同様に、第2の局所論理積装置100−2を用いて、局所積要素(第1の局所積要素)110として、U[2]=S[2]・S’[2]+T[2]・T’[2] mod 2を得る。第3の秘密計算装置3Dも、同様に、第3の局所論理積装置100−3を用いて、局所積要素(第1の局所積要素)110として、U[3]=S[3]・S’[3] + T[3]・T’[3] mod 2を同様に得る。
第1乃至第3の秘密計算装置1D、2D、3Dは、それぞれの計算結果をもってW”=W・W’ mod 2を分散して保持したとする。
ただし、この結果からは、もとのビットWあるいはビットW’と同様に、W”を復元することができない。
この結果から直接W”を復元するには、W”=U[1]+U[2]+U[3] mod 2 と計算すれば良い。この復元ができることは、次の式から分かる。
U[1]+U[2]+U[3]
= (S[1]・S’[1] + T[1]・T’[1])+(S[2]・S’[2]+T[2]・T’[2])+(S[3]・S’[3] + T[3]・T’[3]) mod 2
=3W・W’+(W・(R’[2]+R’[3]+R’[1]))+(W’・(R[2]+R[3]+R[1]) +(R[1]・R’[1]+R[2]・R’[2]+R[3]・R’[3]) +(R[2]・R’[2]+R[3]・R’[3]+R[1]・R’[1]) mod 2
=W・W’ mod 2
(U[1],U[2],U[3])はW・W’を三つの値に分散したものである。
同様に、(U’[1],U’[2],U’[3])がZ=U’[1]+U’[2]+U’[3] mod 2なるZ を三つの値に分散したものであるとき、W・W’+Z mod 2 は、(U[1]+U’[1] mod 2, U[2]+U’[2] mod 2, U[3]+U’[3] mod 2)の三つの値に分散される。
U[1]とU’[1]とを第1の秘密計算装置1Dが保持し、U[2]とU’[2]とを第2の秘密計算装置2Dが保持し、U[3]とU’[3]とを第3の秘密計算装置3Dが保持しているとする。この場合、あらたな分散された値は、それぞれの秘密計算装置が他と通信することなく計算できる。
すなわち、ある関数が排他的論理和と論理積のゲートで構成されている場合、論理積ゲートの計算結果は、次の論理積ゲートの入力となるまでの間、何度でも互いに通信することなく、排他的論理和ゲートの計算を実行することができる。
論理積を計算した結果を用いた論理積を計算する場合は、次の処理を実施すればよい。
W”をビットWやビットW’と同様の形で、3台の秘密計算装置に分散するとする。この場合、第1乃至第3の秘密計算装置1D、2D、3Dは、図6に示す論理積再分配装置200を、それぞれ、第1乃至第3の論理積再分配装置200−1、200−2、200−3として備える。
V[1]+V[2]+V[3]=0 mod 2 となるランダムに選ばれたビットであるマスク201としてV[1],V[2],V[3]があるとする。そして、第1の秘密計算装置1Dには、マスク201としてV[1]が、予め渡されているとする。第2の秘密計算装置2Dには、マスク201としてV[2]が、予め渡されているとする。第3の秘密計算装置3Dには、マスク201としてV[3]が、予め渡されているとする。第1乃至第3の秘密計算装置1D、2D、3Dは、渡されているマスク201を、それぞれ、第1乃至第3の論理積再分配装置200−1、200−2、200−3に入力する。
第3の秘密計算装置3Dは、X[3]=U[3]+V[3] mod 2のように、第1の排他的論理和回路203で局所積要素202とマスク201との排他的論理和をとる。そして、第3の秘密計算装置3Dは、その第1の排他的論理和結果X[3]を第1論理和205として、通信装置204から第2の秘密計算装置2Cに送る。
第2の秘密計算装置2Dも同様に、第1論理和205として、X[2]=U[2]+V[2] mod 2を生成して、第1の秘密計算装置1Dに送る。第1の秘密計算装置1Dも同様に、第1論理和205として、 X[1]=U[1]+V[1] mod 2を生成して、第3の秘密計算装置3Dに送る。
第1乃至第3の秘密計算装置1D,2D,3Dは、第1乃至第3の論理積再分配装置200−1、200−2、200−3のそれぞれの通信装置204から、第1論理和X[2],X[3],X[1]を受信第1論理和207として受け取る。
第1乃至第3の論理積再分配装置200−1、200−2、200−3は、それぞれ第2の排他的論理和回路206で、受信第1論理和207と第1論理和205との排他的論理和をとり、出力第2要素209を生成する。また、第1論理和205は、信号線210を介して、出力第1要素208として出力される。
これにより、第1の秘密計算装置1Dは、出力第2要素209および出力第1要素208として、それぞれ、(T”[1],S”[1])=(X[1]+X[2] mod 2,X[1])を生成する。第2の秘密計算装置2Dは、出力第2要素209および出力第1要素208として、それぞれ、(T”[2],S”[2])=(X[2]+X[3] mod 2,X[2])を生成する。第3の秘密計算装置3Dは、出力第2要素209および出力第1要素208として、それぞれ、(T”[3],S”[3])=(X[3]+X[1] mod 2,X[3])を生成する。
WとW’と同様にW”が2台の秘密計算装置から復元できることは、一般性を失わずに、第1の秘密計算装置1Dと第2の秘密計算装置2Dとが協力する場合の復元方法から説明できる。
第1の秘密計算装置1DからのS”[1]と、第2の秘密計算装置2DからのT”[2]とを用いて、次のように計算することができる。
W・W’=S”[1]+T”[2]mod2
=U[1]+V[1]+U[2]+V[2]+U[3]+V[3]mod2
=U[1]+U[2]+U[3] mod 2
=W”
また、
T”[1]+T”[2]+T”[3] mod 2
=2・(U[1]+U[2]+U[3]+V[1]+V[2]+V[3])
=0 mod 2
となり、WやW’と同様にW” が分散されていることが分かる。
(乱数の計算)
図11では、第1乃至第3の秘密計算装置1D,2D,3DがそれぞれランダムなビットV[1], V[2], V[3]を保持し、V[1]+V[2]+V[3]=0 mod 2 を満たしているとした。この様なランダムなビットは、論理積を一つ計算するたびに一揃い必要になる。
次に図12を参照して、大量の論理積を計算する場合、次の様にマスク生成装置400を用いて、V[i,1]+V[i,2]+V[i,3]=0 mod 2 なるV[i,1],V[i,2],V[i,3]を多くのi=1,…,Nに関して生成する方法について説明する。
図12に示されるように、本発明の実施例に係る秘密計算システムは、図3に示した秘密計算装置1’を3台備えている。ここでは、3台の秘密計算装置を、それぞれ第1の秘密計算装置1E、第2の秘密計算装置2E、第3の秘密計算装置3Eとする。
第1乃至第3の秘密計算装置1E,2E,3Eは、それぞれ、図11に示した第1乃至第3の秘密計算装置1D,2D,3Dの構成要素を含んでいるが、以下の説明では不要なので、図示を省略している。第1乃至第3の秘密計算装置1E,2E,3Eは、図7に示したマスク生成装置400を、それぞれ、第1乃至第3のマスク生成装置400−1、400−2、400−3として備える。
Kを安全変数とする。第1乃至第3の秘密計算装置1E,2E,3Eは、鍵401として、それぞれKビットの鍵 L[1],L[2],L[3]を生成する。第1の秘密計算装置1Eは鍵L[1]を第3の秘密計算装置3Eへ送り、第2の秘密計算装置2Eは鍵L[2]を第1の秘密計算装置1Eへ送り、第3の秘密計算装置3Eは鍵L[3]を第2の秘密計算装置2Eへ送る。従って、第1の秘密計算装置1E,第2の秘密計算装置2E,第3の秘密計算装置3Eは、それぞれ、鍵L[2], L[3],L[1]を、第2の秘密計算装置2E,第3の秘密計算装置3E,第1の秘密計算装置1Eから受け取る。
第1乃至第3の秘密計算装置1E,2E,3Eでは、第1乃至第3のマスク生成装置400−1、400−2、400−3が、この受け取った鍵L[2], L[3],L[1]を受信鍵410として受信する。
PRGをKビットの文字列からNビットの文字列を出力する疑似乱数生成器とする。
第1の秘密計算装置1Eでは、第1のマスク生成装置200−1において、第1の疑似乱数生成器402が、鍵401から第1疑似乱数405をPRG(L[1])として生成する。また、第2の疑似乱数生成器404が、受信鍵410から第2疑似乱数406をPRG(L[2])として生成する。そして、排他的論理和回路409が、PRG(L[1])とPRG(L[2])とのビット毎の排他的論理和を取り、Nビットの乱数407を作る。この乱数407の最初からi番目のビットをV[i.1]とする。
第2の秘密計算装置2Eは、同様に、第1疑似乱数PRG(L[2])と第2擬似乱数PRG(L[3])とのビット毎の排他的論理和を取り、Nビットの文字列(乱数)407を作る。この文字列407の最初からi番目のビットをV[i.2]とする。
第3の秘密計算装置3Eは、同様に、第1疑似乱数PRG(L[3])と第2擬似乱数PRG(L[1])とのビット毎の排他的論理和を取り、Nビットの文字列(乱数)407を作る。この文字列407の最初からi番目のビットをV[i.3]とする。
(任意の関数に対する適用方法)
ビット列が入力されてビット列を出力する全ての関数は、定数の入力を含めてビット毎の論理和と論理積から構成が可能であることが知られている。ゆえに、上記論理和と論理積の計算方法を用いれば、このような関数は全てデータを分散したまま計算することができる。
次に、本発明の実施例の効果について説明する。
本秘密計算方法を用いれば、3台の秘密計算装置に分散されて保持された二つのビットの論理和を、これら秘密計算装置が互いに通信することなく計算することで、3台の秘密計算装置に分散された形で保持することができる。この結果のビットを保持する方法は、最初に二つのそれぞれのビットを保持していた時の方法と同一である。
さらに、3台の秘密計算装置に分散されて保持された二つのビットの論理積を、これら秘密計算装置が互いに通信しながら計算することで、3台の秘密計算装置に分散された形で保持することができる。この時に発生する通信は、全体で3ビットとランダムなビットV[1],V[2],V[3]を生成するのに必要な通信のみであり、非特許文献2に記載の2者間の秘密計算で必要なそれと比べると大変少ない。この結果のビットを保持する方法は、最初に二つのそれぞれのビットを保持していた時の方法と同一である。
この様に論理積と論理和との両方において、計算の結果が、計算の前の各ビットの保持方法と同じ方法で保持されていることから、結果に対してさらに論理積や論理和の演算を続けることができる。すなわち、論理和と論理積で記述できる任意の関数を、データを分散したまま3台の秘密計算装置で少ない通信量で計算する事ができる。これは、各論理積や論理和に必要な計算量の、単純な論理積や論理和の計算に必要な計算量の6倍や3倍である。この様な秘密計算方法は、データを各秘密計算装置に対して開示せずに計算を行いたい時に有効である。
以上説明した様に、本発明を用いれば、複数の秘密計算装置にデータを分散して各秘密計算装置にデータを隠ぺいしたまま任意の関数を計算することが可能になる。また、この計算に必要な通信量と計算量は小さい。これはある秘密計算装置で秘密のデータを扱ってなんらかのサービスを提供する時に、秘密計算装置の管理者がデータを盗む出すことを防止する。なぜなら、複数の秘密計算装置に異なる管理者を割り当てれば、一人で全ての秘密計算装置中のデータを見ることのできる管理者がいなくなるからである。このように、本発明は、このような管理者を通じたデータの盗み出しを防止することに貢献する。
なお、本発明は、上記実施形態や上記実施例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、上記実施例では、秘密計算装置が3台ある場合についてのみ説明している。しかしながら、本発明は、一般的に、図2や図4に示すように、秘密計算装置がN台(Nは3以上の整数)ある場合にも同様に適用できるのは言うまでもない。
すなわち、本発明によれば、任意の関数を、複数の秘密計算装置で分散したまま、かつデータをどの秘密計算装置も知ることなく、高速に計算することが可能となる。
なお、本発明に記載した方法は、コンピュータに実行させることができる。この方法を実行させるプログラムは、フロッピー(登録商標)ディスク、ハードディスクなどの磁気ディスク、CD-ROM(Compact Disc- Read Only Memory)、DVD(digital versatile disc)などの光ディスク、光磁気ディスク(MO)、半導体メモリなどの記録媒体に格納して頒布することもできる。
また、この記録媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。
また、記録媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが各処理の一部を実行してもよい。
さらに、本発明における記録媒体は、コンピュータと独立した媒体に限らず、LAN(Local Area Network)やインターネットなどにより伝送されたプログラムをダウンロードして記憶または一時記憶した記録媒体も含まれる。
また、記録媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記録媒体に含まれ、媒体構成は何れの構成であってもよい。
本発明におけるコンピュータは、記録媒体に記憶されたプログラムに基づき各処理を実行するものであって、パソコンなどからなる装置、複数の装置がネットワーク接続されたシステムなどの何れの構成であってもよい。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置を含み、プログラムによって本発明の機能を実現することが可能な機器、装置である。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1) 少なくとも2つの1ビットの入力要素を受け、第1の局所積要素を出力する局所論理積装置と、
1ビットのマスクと、前記第1の局所積要素とP(Pは0以上の整数)個のビットとの排他的論理和を計算して得られる第2の局所積要素とを受け、第1論理和を計算し、他の秘密計算装置の論理積再分配装置と通信して、少なくとも1つの1ビットの出力要素を出力する論理積再分配装置と、
を備える秘密計算装置。
(付記2) 他の秘密計算装置のマスク生成装置と通信し、鍵を使用して乱数を生成するマスク生成装置を更に備え、
前記乱数から選ばれた1ビットが前記マスクとして前記論理積再分配装置へ供給される、付記1に記載の秘密計算装置。
(付記3) 前記局所論理積装置は、1ビットの第1入力第1要素と、1ビットの第1入力第2要素と、1ビットの第2入力第1要素と、1ビットの第2入力第2要素とを受け、
前記局所論理積装置は、
前記第1入力第1要素と前記第2入力第1要素との論理積をとり、その論理積結果を第1論理積として出力する第1の論理積回路と、
前記第1入力第2要素と前記第2入力第2要素との論理積をとり、その論理積結果を第2論理積として出力する第2の論理積回路と、
前記第1論理積と前記第2論理積との排他的論理和をとり、その排他的論理和結果を前記第1の局所積要素として出力する第1の排他的論理和回路と、
を備える、付記1又は2に記載の秘密計算装置。
(付記4) 前記論理積再分配装置は、
前記マスクと前記第2の局所積要素との排他的論理和をとり、その排他的論理和結果を前記第1論理和として出力する第1の排他的論理和回路と、
前記第1論理和を第1の他の秘密計算装置の論理積再分配装置へ送信すると共に、第2の他の秘密計算装置の論理積再分配装置より、該第2の他の秘密計算装置の論理積再分配装置で生成された第1論理和を受信第1論理和として受信する通信装置と、
前記第1論理和を出力第1要素として出力する手段と、
前記第1論理和と前記受信第1論理和との排他的論理和をとり、その排他的論理和結果を出力第2要素として出力する第2の排他的論理和回路と、
を備える、付記1又は2に記載の秘密計算装置。
(付記5) 前記マスク生成装置は、
前記鍵から第1疑似乱数を生成する第1の疑似乱数生成器と、
前記鍵を第1の他の秘密計算装置のマスク生成装置へ送信すると共に、第2の他の秘密計算装置のマスク生成装置より鍵を受信鍵として受信する通信装置と、
前記受信鍵から第2疑似乱数を生成する第2の疑似乱数生成器と、
前記第1疑似乱数と前記第2疑似乱数とのビット毎の排他的論理和をとって、その排他的論理和結果を前記乱数として出力する排他的論理和回路と、
を備える、付記2に記載の秘密計算装置。
(付記6) 付記1に記載の局所論理積装置および論理積再分配装置を、それぞれ、第1乃至第N(Nは3以上の整数)の局所論理積装置および第1乃至第Nの論理積再分配装置として含む、第1乃至第Nの秘密計算装置を有する秘密計算システムであって、
前記第1の秘密計算装置の前記第1の論理積再分配装置は、前記第1論理和を前記第Nの秘密計算装置の前記第Nの論理積再分配装置へ送り、
第n(2≦n≦N)の秘密計算装置の第nの論理積再分配装置は、前記第1論理和を第(n−1)の秘密計算装置の第(n−1)の論理積再分配装置へ送る、
ことを特徴とする秘密計算システム。
(付記7) 付記2に記載の局所論理積装置、論理積再分配装置、およびマスク生成装置を、それぞれ、第1乃至第N(Nは3以上の整数)の局所論理積装置、第1乃至第Nの論理積再分配装置、および第1乃至第Nのマスク生成装置として含む、第1乃至第Nの秘密計算装置を有する秘密計算システムであって、
前記第1の秘密計算装置の前記第1の論理積再分配装置は、前記第1論理和を前記第Nの秘密計算装置の前記第Nの論理積再分配装置へ送り、
第n(2≦n≦N)の秘密計算装置の第nの論理積再分配装置は、前記第1論理和を第(n−1)の秘密計算装置の第(n−1)の論理積再分配装置へ送り、
前記第1の秘密計算装置の前記第1のマスク生成装置は、前記鍵を前記第Nの秘密計算装置の前記第Nのマスク生成装置へ送り、
前記第nの秘密計算装置の第nのマスク生成装置は、前記鍵を前記第(n−1)の秘密計算装置の第(n−1)のマスク生成装置へ送る、
ことを特徴とする秘密計算システム。
(付記8) 少なくとも2つの1ビットの入力要素を受けて、第1の局所積要素を出力するステップと、
1ビットのマスクと、前記第1の局所積要素とP(Pは0以上の整数)個のビットとの排他的論理和を計算して得られる第2の局所積要素とを受けて、第1論理和を計算し、他の秘密計算装置の論理積再分配装置と通信して、少なくとも1つの1ビットの出力要素を出力するステップと、
を含む秘密計算方法。
(付記9) 前記他の秘密計算装置のマスク生成装置と通信して、鍵を使用して乱数を生成するステップと、
前記乱数から選ばれた1ビットを前記マスクとして供給するステップと、
を更に含む、付記8に記載の秘密計算方法。
(付記10) 付記1に記載の局所論理積装置および論理積再分配装置を、それぞれ、第1乃至第N(Nは3以上の整数)の局所論理積装置および第1乃至第Nの論理積再分配装置として含む、第1乃至第Nの秘密計算装置を有する秘密計算システムにおける秘密計算方法であって、
前記第1の秘密計算装置の前記第1の論理積再分配装置が、前記第1論理和を前記第Nの秘密計算装置の前記第Nの論理積再分配装置へ送るステップと、
第n(2≦n≦N)の秘密計算装置の第nの論理積再分配装置が、前記第1論理和を第(n−1)の秘密計算装置の第(n−1)の論理積再分配装置へ送るステップと、
を含む秘密計算方法。
(付記11) 付記2に記載の局所論理積装置、論理積再分配装置、およびマスク生成装置を、それぞれ、第1乃至第N(Nは3以上の整数)の局所論理積装置、第1乃至第Nの論理積再分配装置、および第1乃至第Nのマスク生成装置として含む、第1乃至第Nの秘密計算装置を有する秘密計算システムにおける秘密計算方法であって、
前記第1の秘密計算装置の前記第1の論理積再分配装置が、前記第1論理和を前記第Nの秘密計算装置の前記第Nの論理積再分配装置へ送るステップと、
第n(2≦n≦N)の秘密計算装置の第nの論理積再分配装置が、前記第1論理和を第(n−1)の秘密計算装置の第(n−1)の論理積再分配装置へ送るステップと、
前記第1の秘密計算装置の前記第1のマスク生成装置が、前記鍵を前記第Nの秘密計算装置の前記第Nのマスク生成装置へ送るステップと、
前記第nの秘密計算装置の第nのマスク生成装置が、前記鍵を前記第(n−1)の秘密計算装置の第(n−1)のマスク生成装置へ送るステップと、
を含む秘密計算方法。
(付記12) 秘密計算プログラムを記録したコンピュータ読み取り可能な記録媒体であって、前記秘密計算プログラムは、コンピュータに、
少なくとも2つの1ビットの入力要素を受けて、第1の局所積要素を出力する機能と、
1ビットのマスクと、前記第1の局所積要素とP(Pは0以上の整数)個のビットとの排他的論理和を計算して得られる第2の局所積要素とを受けて、第1論理和を計算し、他の秘密計算装置の論理積再分配装置と通信して、少なくとも1つの1ビットの出力要素を出力する機能と、
を実現させるコンピュータ読み取り可能な記録媒体。
(付記13) 前記秘密計算プログラムは、前記コンピュータに、
前記他の秘密計算装置のマスク生成装置と通信して、鍵を使用して乱数を生成する機能と、
前記乱数から選ばれた1ビットを前記マスクとして供給する機能と、
を更に実現させる、付記12に記載のコンピュータ読み取り可能な記録媒体。
この出願は、2014年9月19日に出願された日本出願特願2014−191151を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1,1’ 秘密計算装置
1−1,1’−1,1A〜1E 第1の秘密計算装置
1−2,1’−2,2A〜2E 第2の秘密計算装置
3A〜3E 第3の秘密計算装置
1−N,1’−N 第Nの秘密計算装置
100 局所論理積装置
100−1 第1の局所論理積装置
100−2 第2の局所論理積装置
100−3 第3の局所論理積装置
101 第1入力第1要素
102 第2入力第1要素
103 第1入力第2要素
104 第2入力第2要素
105 第1の論理積回路
106 第2の論理積回路
107 排他的論理和回路
108 第1論理積
109 第2論理積
110 局所積要素(第1の局所積要素)
200 論理積再分配装置
200−1 第1の論理積再分配装置
200−2 第2の論理積再分配装置
200−3 第3の論理積再分配装置
201 マスク
202 局所積要素(第2の局所積要素)
203 第1の排他的論理和回路
204 通信装置
205 第1論理和
206 第2の排他的論理和回路
207 受信第1論理和
208 出力第1要素
209 出力第2要素
210 信号線
300 排他的論理和回路
400 マスク生成装置
400−1 第1のマスク生成装置
400−2 第2のマスク生成装置
400−3 第3のマスク生成装置
401 鍵
402 第1の疑似乱数生成器
403 通信装置
404 第2の疑似乱数生成器
405 第1疑似乱数
406 第2擬似乱数
407 乱数
409 排他的論理和回路
410 受信鍵

Claims (10)

  1. 少なくとも2つの1ビットの入力要素を受け、第1の局所積要素を出力する局所論理積装置と、
    1ビットのマスクと、前記第1の局所積要素とP(Pは0以上の整数)個のビットとの排他的論理和を計算して得られる第2の局所積要素とを受け、第1論理和を計算し、他の秘密計算装置の論理積再分配装置と通信して、少なくとも1つの1ビットの出力要素を出力する論理積再分配装置と、
    を備える秘密計算装置。
  2. 他の秘密計算装置のマスク生成装置と通信し、鍵を使用して乱数を生成するマスク生成装置を更に備え、
    前記乱数から選ばれた1ビットが前記マスクとして前記論理積再分配装置へ供給される、請求項1に記載の秘密計算装置。
  3. 請求項1に記載の局所論理積装置および論理積再分配装置を、それぞれ、第1乃至第N(Nは3以上の整数)の局所論理積装置および第1乃至第Nの論理積再分配装置として含む、第1乃至第Nの秘密計算装置を有する秘密計算システムであって、
    前記第1の秘密計算装置の前記第1の論理積再分配装置は、前記第1論理和を前記第Nの秘密計算装置の前記第Nの論理積再分配装置へ送り、
    第n(2≦n≦N)の秘密計算装置の第nの論理積再分配装置は、前記第1論理和を第(n−1)の秘密計算装置の第(n−1)の論理積再分配装置へ送る、
    ことを特徴とする秘密計算システム。
  4. 請求項2に記載の局所論理積装置、論理積再分配装置、およびマスク生成装置を、それぞれ、第1乃至第N(Nは3以上の整数)の局所論理積装置、第1乃至第Nの論理積再分配装置、および第1乃至第Nのマスク生成装置として含む、第1乃至第Nの秘密計算装置を有する秘密計算システムであって、
    前記第1の秘密計算装置の前記第1の論理積再分配装置は、前記第1論理和を前記第Nの秘密計算装置の前記第Nの論理積再分配装置へ送り、
    第n(2≦n≦N)の秘密計算装置の第nの論理積再分配装置は、前記第1論理和を第(n−1)の秘密計算装置の第(n−1)の論理積再分配装置へ送り、
    前記第1の秘密計算装置の前記第1のマスク生成装置は、前記鍵を前記第Nの秘密計算装置の前記第Nのマスク生成装置へ送り、
    前記第nの秘密計算装置の第nのマスク生成装置は、前記鍵を前記第(n−1)の秘密計算装置の第(n−1)のマスク生成装置へ送る、
    ことを特徴とする秘密計算システム。
  5. 少なくとも2つの1ビットの入力要素を受けて、第1の局所積要素を出力するステップと、
    1ビットのマスクと、前記第1の局所積要素とP(Pは0以上の整数)個のビットとの排他的論理和を計算して得られる第2の局所積要素とを受けて、第1論理和を計算し、他の秘密計算装置の論理積再分配装置と通信して、少なくとも1つの1ビットの出力要素を出力するステップと、
    を含む秘密計算方法。
  6. 前記他の秘密計算装置のマスク生成装置と通信して、鍵を使用して乱数を生成するステップと、
    前記乱数から選ばれた1ビットを前記マスクとして供給するステップと、
    を更に含む、請求項5に記載の秘密計算方法。
  7. 請求項1に記載の局所論理積装置および論理積再分配装置を、それぞれ、第1乃至第N(Nは3以上の整数)の局所論理積装置および第1乃至第Nの論理積再分配装置として含む、第1乃至第Nの秘密計算装置を有する秘密計算システムにおける秘密計算方法であって、
    前記第1の秘密計算装置の前記第1の論理積再分配装置が、前記第1論理和を前記第Nの秘密計算装置の前記第Nの論理積再分配装置へ送るステップと、
    第n(2≦n≦N)の秘密計算装置の第nの論理積再分配装置が、前記第1論理和を第(n−1)の秘密計算装置の第(n−1)の論理積再分配装置へ送るステップと、
    を含む秘密計算方法。
  8. 請求項2に記載の局所論理積装置、論理積再分配装置、およびマスク生成装置を、それぞれ、第1乃至第N(Nは3以上の整数)の局所論理積装置、第1乃至第Nの論理積再分配装置、および第1乃至第Nのマスク生成装置として含む、第1乃至第Nの秘密計算装置を有する秘密計算システムにおける秘密計算方法であって、
    前記第1の秘密計算装置の前記第1の論理積再分配装置が、前記第1論理和を前記第Nの秘密計算装置の前記第Nの論理積再分配装置へ送るステップと、
    第n(2≦n≦N)の秘密計算装置の第nの論理積再分配装置が、前記第1論理和を第(n−1)の秘密計算装置の第(n−1)の論理積再分配装置へ送るステップと、
    前記第1の秘密計算装置の前記第1のマスク生成装置が、前記鍵を前記第Nの秘密計算装置の前記第Nのマスク生成装置へ送るステップと、
    前記第nの秘密計算装置の第nのマスク生成装置が、前記鍵を前記第(n−1)の秘密計算装置の第(n−1)のマスク生成装置へ送るステップと、
    を含む秘密計算方法。
  9. 秘密計算プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
    前記秘密計算プログラムは、コンピュータに、
    少なくとも2つの1ビットの入力要素を受けて、第1の局所積要素を出力する機能と、
    1ビットのマスクと、前記第1の局所積要素とP(Pは0以上の整数)個のビットとの排他的論理和を計算して得られる第2の局所積要素とを受けて、第1論理和を計算し、他の秘密計算装置の論理積再分配装置と通信して、少なくとも1つの1ビットの出力要素を出力する機能と、
    を実現させるコンピュータ読み取り可能な記録媒体。
  10. 前記秘密計算プログラムは、前記コンピュータに、
    前記他の秘密計算装置のマスク生成装置と通信して、鍵を使用して乱数を生成する機能と、
    前記乱数から選ばれた1ビットを前記マスクとして供給する機能と、
    を更に実現させる、請求項9に記載のコンピュータ読み取り可能な記録媒体。
JP2016548533A 2014-09-19 2015-07-09 秘密計算装置、方法、記録媒体、および秘密計算システム Active JP6493697B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014191151 2014-09-19
JP2014191151 2014-09-19
PCT/JP2015/003455 WO2016042693A1 (ja) 2014-09-19 2015-07-09 秘密計算装置、方法、記録媒体、および秘密計算システム

Publications (2)

Publication Number Publication Date
JPWO2016042693A1 true JPWO2016042693A1 (ja) 2017-07-27
JP6493697B2 JP6493697B2 (ja) 2019-04-03

Family

ID=55532754

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016548533A Active JP6493697B2 (ja) 2014-09-19 2015-07-09 秘密計算装置、方法、記録媒体、および秘密計算システム

Country Status (3)

Country Link
US (1) US10490107B2 (ja)
JP (1) JP6493697B2 (ja)
WO (1) WO2016042693A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6006842B1 (ja) * 2015-07-22 2016-10-12 日本電信電話株式会社 秘密計算装置、その方法、およびプログラム
CN109478132B (zh) * 2016-08-19 2023-03-24 甲骨文国际公司 在计算装置中产生熵和在伪随机数发生器中播种熵的方法
EP3596651A4 (en) * 2017-02-27 2021-01-06 Cord3 Innovation Inc. SYMMETRICAL CRYPTOGRAPHIC PROCESS AND SYSTEM AND THEIR APPLICATIONS
US10742408B2 (en) 2017-02-27 2020-08-11 Cord3 Innovation Inc. Many-to-many symmetric cryptographic system and method
WO2018211675A1 (en) 2017-05-18 2018-11-22 Nec Corporation Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program
WO2018212015A1 (ja) 2017-05-18 2018-11-22 日本電気株式会社 秘密計算装置、比較方法、比較プログラム記録媒体、および秘密計算システム
WO2019176520A1 (ja) * 2018-03-12 2019-09-19 日本電信電話株式会社 秘密計算装置、秘密計算方法、プログラム、および記録媒体
US10885205B2 (en) * 2018-10-31 2021-01-05 Nec Corporation Of America Secure multiparty computation
JP7334789B2 (ja) * 2019-10-04 2023-08-29 日本電気株式会社 秘密計算システム、秘密計算サーバ、補助サーバ、秘密計算方法及びプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012078446A (ja) * 2010-09-30 2012-04-19 Nippon Telegr & Teleph Corp <Ntt> 不正検知方法、秘密計算システム、計算装置、計算プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2956541B1 (fr) * 2010-02-18 2012-03-23 Centre Nat Rech Scient Procede cryptographique de communication d'une information confidentielle.
US20150227472A1 (en) * 2014-02-10 2015-08-13 Kabushiki Kaisha Toshiba Memory system, controller, and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012078446A (ja) * 2010-09-30 2012-04-19 Nippon Telegr & Teleph Corp <Ntt> 不正検知方法、秘密計算システム、計算装置、計算プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
加藤遼, 他: "部分的に小さな法を用いたマルチパーティ計算のビット演算効率化", 情報処理学会論文誌, vol. 55, no. 9, JPN6015031095, 15 September 2014 (2014-09-15), JP, pages 1971 - 1991 *

Also Published As

Publication number Publication date
WO2016042693A1 (ja) 2016-03-24
US20170278433A1 (en) 2017-09-28
US10490107B2 (en) 2019-11-26
JP6493697B2 (ja) 2019-04-03

Similar Documents

Publication Publication Date Title
JP6493697B2 (ja) 秘密計算装置、方法、記録媒体、および秘密計算システム
JP7007384B2 (ja) 曖昧さの増加
JP6934963B2 (ja) データを暗号化する方法およびシステム
US7418100B2 (en) Enciphering method
JP4828068B2 (ja) コンピュータで効率的な線形フィードバック・シフト・レジスタ
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
US20220045840A1 (en) Methods and systems for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger/blockchain technology
JPWO2019130528A1 (ja) 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
WO2016088453A1 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
JP6607257B2 (ja) 秘密計算システム、秘密計算装置、および、秘密計算方法
JP2002505550A (ja) 暗号法として安全な代数キー設定プロトコルについての方法と装置
JP7047838B2 (ja) 秘密計算装置、比較方法、比較プログラム、および秘密計算システム
CN113992325B (zh) 一种隐私数据共享方法及装置
Holz et al. Linear-complexity private function evaluation is practical
JPWO2020152831A1 (ja) 情報処理装置、秘密計算方法及びプログラム
US20230004356A1 (en) Secure random number generation system, secure computation apparatus, secure random number generation method, and program
US20080181397A1 (en) Secure data transmission and storage using limited-domain functions
US10615961B2 (en) Method and encryption node for encrypting message
WO2021005748A1 (ja) 暗号システム、鍵生成装置、暗号化装置、復号装置、方法及びプログラム
WO2019111319A1 (ja) 秘密等号判定システム、秘密等号判定方法および秘密等号判定プログラム記録媒体
JP2007124610A (ja) 秘密情報分散装置及び秘密情報復元装置及び方法及びプログラム
JP2000035757A (ja) 暗号化/復号化装置と公開鍵暗号化システムおよび暗号化/復号化方法と公開鍵暗号化方法
JP3908106B2 (ja) 量子情報分散生成方法、その装置
JP2010164899A (ja) 秘密計算システム、秘密計算方法、秘密計算プログラム
JP2019040047A (ja) 計算システム、計算方法及び計算プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170315

AA64 Notification of invalidation of claim of internal priority (with term)

Free format text: JAPANESE INTERMEDIATE CODE: A241764

Effective date: 20170524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170531

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190111

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190219

R150 Certificate of patent or registration of utility model

Ref document number: 6493697

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150