JP7517475B2 - 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム - Google Patents
秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム Download PDFInfo
- Publication number
- JP7517475B2 JP7517475B2 JP2022574879A JP2022574879A JP7517475B2 JP 7517475 B2 JP7517475 B2 JP 7517475B2 JP 2022574879 A JP2022574879 A JP 2022574879A JP 2022574879 A JP2022574879 A JP 2022574879A JP 7517475 B2 JP7517475 B2 JP 7517475B2
- Authority
- JP
- Japan
- Prior art keywords
- secure computation
- shares
- secure
- arithmetic
- server devices
- 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
Links
- 238000000034 method Methods 0.000 title claims description 54
- 238000004891 communication Methods 0.000 claims description 87
- 238000004364 calculation method Methods 0.000 claims description 67
- 238000012795 verification Methods 0.000 claims description 33
- 238000006243 chemical reaction Methods 0.000 claims description 27
- 230000000052 comparative effect Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 20
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 230000005477 standard model Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000000354 decomposition reaction Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000010365 information processing Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0869—Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer And Data Communications (AREA)
- Complex Calculations (AREA)
Description
本発明は、秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラムに関するものである。
近年、秘密計算と呼ばれる技術の研究開発が盛んに行われている。秘密計算は、第三者に対して計算過程とその結果を秘密にしつつ所定の処理を実行する技術の一つである。秘密計算における代表的な技術の一つとして、マルチパーティ計算技術が挙げられる。マルチパーティ計算技術では、秘密にするデータを複数のサーバ(秘密計算サーバ装置)に分散配置し、秘密にした状態を維持しながら当該データの任意の演算を実行する。なお、各秘密計算サーバ装置に分散配置したデータをシェアと呼ぶ。以下、特に断りがない限り、「秘密計算」という語を用いた場合は、マルチパーティ計算技術を意味するものとする。
このような秘密計算には、四則演算だけではなく、特定用途の計算プロトコルも実装することが一般的である。その特定用途の計算プロトコルの一つとして、ビット変換プロトコルがある。ビット変換は、法の変換を伴う型変換のことであり、例えば、位数2の剰余類環Z2上のシェアから位数nの剰余類環Zn上のシェアを得る変換が該当する。このようなビット変換は、例えば、算術演算と論理演算の混合回路における計算効率を向上させることができる。
算術演算と論理演算の混合回路の簡単な例としてハミング距離(Hamming distance)の計算がある。ハミング距離とは、2つの2進数の比較において異なっている桁の個数のことであり、例えば1111111と1010101とのハミング距離は3である。このようなハミング距離の計算では、桁が異なっているか否かは排他的論理和であるので論理演算とし、異なっている桁の個数を集計するのは算術演算とすることが好ましい。ビット変換のためのプロトコルを備えた秘密計算は、このような算術演算と論理演算の混合回路における秘密計算の処理をそれぞれに適した法で計算することができるので、計算効率を向上させることが可能である。
Byali, M., Chaudhari, H., Patra, A., & Suresh, A. (2020). FLASH: fast and robust framework for privacy-preserving machine learning. Proceedings on Privacy Enhancing Technologies, 2020(2), 459-480.
なお、上記先行技術文献の開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
ところで、一般に秘密計算と呼ばれる技術の中にも、達成されている安全性の程度には高低がある。例えば、秘密計算を行うマルチパーティの参加者の中に不正者が紛れたとする。その場合に、不正者の存在を検知し処理を中断することができる秘密計算の技術と、たとえ不正者が存在しても処理を中断することなく正しい計算結果を得ることができる秘密計算の技術とでは、後者の方が前者よりも安全性が高い。そして、後者の安全性を満たす秘密計算はGuaranteed Output Delivery (GOD)と呼ばれ、これを実現する秘密計算の例も知られている(例えば、非特許文献1参照)。
また、秘密計算における安全性の評価には、達成できる安全性の効果だけではなく、前提条件も重要な意味を持つ。代表的な前提条件としてハッシュ関数のランダムオラクルモデルないしランダムオラクル仮定がある。
ハッシュ関数は、入力に対し一意の出力を返す関数であるが、出力から入力を推定することが困難であるように構成されている。ここで、出力から入力を推定することが困難であるとはいうものの、絶対に不可能であるかというとその保証はできない。そこで、安全性の評価に際し、用いられているハッシュ関数が脆弱性を持たないという前提で安全性が評価される。この前提の安全性を「ランダムオラクルモデルにおいて安全」あるいは「ランダムオラクル仮定のもとで安全」という。そして、非特許文献1における秘密計算の安全性は「ランダムオラクルモデルにおいて安全」である。
一方、「ランダムオラクルモデルにおいて安全」の対義語は、「標準モデルにおいて安全」である。すなわち、ハッシュ関数の出力から入力を推定することができたとしても、そのこと自体が秘密計算の脆弱性とはならないことをいう。当然のことながら、達成できる安全性が同じであれば、ランダムオラクルモデルにおける安全性よりも、標準モデルにおける安全性の方が高度な安全性が達成できることになる。したがって、ビット変換のプロトコルにおいても標準モデルにてGuaranteed Output Delivery (GOD)を達成することが望ましいことになる。
本発明の目的は、上述した課題を鑑み、標準モデルにおいてGuaranteed Output Delivery (GOD)を達成するビット変換に寄与する秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラムを提供することである。
本発明の第1の視点では、相互にネットワークで接続した5台の秘密計算サーバ装置を備え、秘密分散して保持されている位数2の剰余類環上の論理シェアから位数n(n=2m;mは2以上の整数)の剰余類環上の算術シェアにビット変換する秘密計算システムであって、前記秘密計算サーバ装置のそれぞれが、前記論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアを計算するローカル再分散部と、前記論理シェアをビット変換した算術シェアを得るために、前記ローカル再分散部が得た算術シェアを用いて通信を伴った秘密計算を行う秘密計算部と、少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用する比較検証部と、を有し、前記通信を伴った秘密計算における受信値を前記比較検証部が検証する、秘密計算システムが提供される。
本発明の第2の視点では、秘密分散して保持されている位数2の剰余類環上の論理シェアから位数n(n=2m;mは2以上の整数)の剰余類環上の算術シェアにビット変換するために、相互にネットワークで接続した少なくとも5台の秘密計算サーバ装置の一つであって、前記論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアを計算するローカル再分散部と、前記論理シェアをビット変換した算術シェアを得るために、前記ローカル再分散部が得た算術シェアを用いて通信を伴った秘密計算を行う秘密計算部と、少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用する比較検証部と、を有し、前記通信を伴った秘密計算における受信値を前記比較検証部が検証する、秘密計算サーバ装置が提供される。
本発明の第3の視点では、相互にネットワークで接続した5台の秘密計算サーバ装置を用いて、秘密分散して保持されている位数2の剰余類環上の論理シェアから位数n(n=2m;mは2以上の整数)の剰余類環上の算術シェアにビット変換する秘密計算方法であって、前記秘密計算サーバ装置のそれぞれが、前記論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアに再分散し、前記論理シェアをビット変換した算術シェアを得るために、前記再分散された算術シェアを用いて通信を伴った秘密計算を行い、少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、前記通信を伴った秘密計算における受信値を検証する、秘密計算方法が提供される。
本発明の第4の視点では、相互にネットワークで接続した少なくとも5台以上の秘密計算サーバ装置に、秘密分散して保持されている値の秘密計算をさせる秘密計算プログラムであって、相互にネットワークで接続した5台の秘密計算サーバ装置に、秘密分散して保持されている位数2の剰余類環上の論理シェアから位数n(n=2m;mは2以上の整数)の剰余類環上の算術シェアにビット変換をさせる秘密計算プログラムであって、前記秘密計算サーバ装置のそれぞれが、前記論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアに再分散し、前記論理シェアをビット変換した算術シェアを得るために、前記再分散された算術シェアを用いて通信を伴った秘密計算を行い、少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、前記通信を伴った秘密計算における受信値を検証する、秘密計算プログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
本発明の各視点によれば、標準モデルにおいてGuaranteed Output Delivery (GOD)を達成するビット変換に寄与する秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラムを提供することができる。
以下、図面を参照しながら、本発明の実施形態について説明する。ただし、以下に説明する実施形態により本発明が限定されるものではない。また、各図面において、同一または対応する要素には適宜同一の符号を付している。さらに、図面は模式的なものであり、各要素の寸法の関係、各要素の比率などは、現実のものとは異なる場合があることに留意する必要がある。図面の相互間においても、互いの寸法の関係や比率が異なる部分が含まれている場合がある。
[第1の実施形態]
以下、図1、図2を参照して、第1の実施形態に係る秘密計算システムおよび秘密計算サーバ装置について説明する。第1の実施形態は、本発明の基本的なコンセプトのみを説明する実施形態である。
以下、図1、図2を参照して、第1の実施形態に係る秘密計算システムおよび秘密計算サーバ装置について説明する。第1の実施形態は、本発明の基本的なコンセプトのみを説明する実施形態である。
図1は、第1の実施形態における秘密計算システムの機能構成例を示すブロック図である。図1に示すように、第1の実施形態による秘密計算システム100は、第1の秘密計算サーバ装置100_0と第2の秘密計算サーバ装置100_1と第3の秘密計算サーバ装置100_2と第4の秘密計算サーバ装置100_3と第5の秘密計算サーバ装置100_4とを備えている。第1の秘密計算サーバ装置100_0、第2の秘密計算サーバ装置100_1、第3の秘密計算サーバ装置100_2、第4の秘密計算サーバ装置100_3、および第5の秘密計算サーバ装置100_4は、それぞれが互いにネットワーク経由で通信可能に接続されている。
第1~第5の秘密計算サーバ装置100_i(i=0,1,2,3,4)を備える秘密計算システム100においては、第1~第5の秘密計算サーバ装置100_i(i=0,1,2,3,4)の内のいずれかの秘密計算サーバ装置100_iが入力した値に対し、その入力や計算過程の値を知られることなく目的のシェアを計算し、その計算結果を第1~第5の秘密計算サーバ装置100_i(i=0,1,2,3,4)に分散して記憶することができる。
また、第1~第5の秘密計算サーバ装置100_i(i=0,1,2,3,4)を備える秘密計算システム100においては、第1~第5の秘密計算サーバ装置100_i(i=0,1,2,3,4)に分散して記憶されているシェアに対し、その計算過程の値を知られることなく目的のシェアを計算し、その計算結果を第1~第5の秘密計算サーバ装置100_i(i=0,1,2,3,4)に分散して記憶することができる。
なお、上記計算結果のシェアは、第1~第5の秘密計算サーバ装置100_0~100_4とシェアを送受信することで、復元してもよい。あるいは、第1~第5の秘密計算サーバ装置100_0~100_4ではない外部にシェアを送信することで、復号してもよい。
さらに、第1~第5の秘密計算サーバ装置100_i(i=0,1,2,3,4)を備える秘密計算システム100においては、第1~第5の秘密計算サーバ装置100_i(i=0,1,2,3,4)のうち1つが不正者によって運営されている場合であっても、処理を停止することなく、正しい秘密計算を継続することができる。
例えば上記のように、第1~第5の秘密計算サーバ装置100_i(i=0,1,2,3,4)のうち1つが不正者によって運営されている場合であっても、処理を停止することなく、正しい秘密計算を継続することができるシェアの構成として以下の構成を採用することができる。
位数nの剰余類環Znの元x∈Znの剰余類環Zn上のシェア(以下、これを算術シェアということがある)を以下のように定義する。ただし、mは2以上の整数とし、n=2mであるとする。つまり、位数2の剰余類環Z2は、位数nの剰余類環Znと区別する。
位数nの剰余類環Znの元x∈Znを
x = x0 + x1 + x2 + x3 + x4 mod n
との関係を満たすように分解し、各参加者 Pi (i = 0, 1, 2, 3, 4)が分散保持する[x]iは、以下のようにする。
[x]i = (xi, xi+1, xi+2, xi+3), ただし、x4+1 = x0
x = x0 + x1 + x2 + x3 + x4 mod n
との関係を満たすように分解し、各参加者 Pi (i = 0, 1, 2, 3, 4)が分散保持する[x]iは、以下のようにする。
[x]i = (xi, xi+1, xi+2, xi+3), ただし、x4+1 = x0
一方、位数2の剰余類環Z2の元x∈Z2の剰余類環Z2上のシェア(以下、これを論理シェアということがある)は、上記剰余類環Zn上のシェアにおけるn=2の場合と同様の定義であるが、記法としては位数nの剰余類環Znと区別し、[x]Bのように表す。すなわち、具体的には以下のように定める。
そして、各参加者 Pi (i = 0, 1, 2, 3, 4)が分散保持する[x]B
iは、以下のようにする。
[x]B i = (xi, xi+1, xi+2, xi+3), ただし、x4+1 = x0
[x]B i = (xi, xi+1, xi+2, xi+3), ただし、x4+1 = x0
このように各参加者Pi (i = 0, 1, 2, 3, 4)が保持するシェア[x]0, [x]1, [x]2, [x]3, [x]4を定めると、各参加者Pi (i = 0, 1, 2, 3, 4)は、自己が保持するシェア[x]0, [x]1, [x]2, [x]3, [x]4からはxを復元することはできない。一方、参加者Pi (i = 0, 1, 2, 3, 4)のうち、少なくとも2名が保持しているシェアを合わせるとxを復元することができるという秘密分散が実現する。なお、この秘密分散方式は、2-out-of-5複製型秘密分散(Replicated Secret Sharing Scheme)と呼ばれている。
ところで、この秘密分散方式の秘密計算では、xを復元する場合に限らず、ビット変換をする場合でも、各参加者が、自己が保持していないサブシェアの値を他の参加者から直接ないし間接的に受信する状況が発生する。
例えば、1という数を考えた場合、(1, 0, 0, 0, 0)と(1, 1, 1, 1, 1)は、共に1を排他的論理和に分解したものである。しかしながら、1+0+0+0+0=1であるが、1+1+1+1+1=5であるので、(1, 1, 1, 1, 1)は、1という数の算術和ではない。つまり、(1, 0, 0, 0, 0)と(1, 1, 1, 1, 1)は、位数2の剰余類環Z2の元x∈Z2の剰余類環Z2上のシェアとしては同値であっても、位数nの剰余類環Znの元x∈Znの剰余類環Zn上のシェアとしては同値にならない。
そこで、ビット変換をする場合でも、各参加者が、自己が保持していないサブシェアの値を他の参加者から直接ないし間接的に受信する状況が発生するが、他の参加者の中に不正者が紛れたとすると、本来は受信したい値の代わりに別の値が送信されてくることが起こり得る。すると、誤った値に基づいて秘密計算を実行することになり、誤った計算を得ることになったり、そもそも計算自体を正常に実行することができなくなったりするのである。
そこで、本実施形態の秘密計算システム100では、図2に示すように、第1~第5の秘密計算サーバ装置100_i(i=0,1,2,3,4)が、ローカル再分散部101_iと秘密計算部102_iと比較検証部103_iを備える。図2は、第1の実施形態における秘密計算サーバ装置の機能構成例を示すブロック図である。
ローカル再分散部101_iは、論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアを計算し、秘密計算部102_iは、論理シェアをビット変換した算術シェアを得るために、ローカル再分散部101_iが得た算術シェアを用いて通信を伴った秘密計算を行う。そして、比較検証部103_iは、少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、通信を伴った秘密計算における受信値を検証する。
このように、本実施形態の秘密計算システム100は、位数2の剰余類環上の論理シェアから位数nの剰余類環上の算術シェアにビット変換する際に、最初に通信を伴うことなく再分散(ローカル再分散)を行い、当該ローカル再分散された算術シェアから論理シェアをビット変換した算術シェアを得るために行う通信を伴った秘密計算を行い、当該通信を伴った秘密計算における受信値を少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較することで検証を行う。
なお、本実施形態を秘密計算方法として捉えると、以下のようになる。図3は、秘密計算方法の手順の概略を示すフローチャートである。
図3に示すように、本実施形態に係る秘密計算方法は、ローカル再分散ステップ(S11)と通信を伴った秘密計算ステップ(S12)と比較検証ステップ(S13)とを有する。ローカル再分散ステップ(S11)では、論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアを計算し、通信を伴った秘密計算ステップ(S12)では、論理シェアをビット変換した算術シェアを得るために、再分散された算術シェアを用いて通信を伴った秘密計算を行う。そして、比較検証ステップ(S13)にて、少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、通信を伴った秘密計算における受信値を検証する。なお、比較検証ステップ(S13)は、通信を伴った秘密計算ステップ(S12)を行う度に行う。
このように、本実施形態の秘密計算システム100および秘密計算方法は、少なくとも3人の他の参加者から同一となるはずの受信値を受信し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、他の参加者の中に不正者が紛れたとしても正しい値を判別することができる。すなわち、不正者が紛れたとしても処理を停止することなく、正しい計算を得ることができるGuaranteed Output Delivery (GOD)が実現されている。また、上記処理では、そもそもハッシュ関数を用いていないので、標準モデルにおいてGuaranteed Output Delivery (GOD)が実現されている。
さらに、本実施形態の秘密計算システム100および秘密計算方法は、最初に通信を伴うことなく再分散(ローカル再分散)を行い、その後に通信を伴った秘密計算を行うので、通信コストが低減されている。
以上説明した第1の実施形態は、本発明の基本的なコンセプトのみを説明する実施形態である。以下で説明する第2の実施形態は、上記説明したコンセプトを実用的な実施形態に適用したものである。
[第2の実施形態]
以下、図4および図5を参照して、第2の実施形態に係る秘密計算システムおよび秘密計算サーバ装置について説明する。
以下、図4および図5を参照して、第2の実施形態に係る秘密計算システムおよび秘密計算サーバ装置について説明する。
図4は、第2の実施形態における秘密計算システムの機能構成例を示すブロック図である。図4に示すように、第2の実施形態による秘密計算システム200は、第1の秘密計算サーバ装置200_0と第2の秘密計算サーバ装置200_1と第3の秘密計算サーバ装置200_2と第4の秘密計算サーバ装置200_3と第5の秘密計算サーバ装置200_4とを備えている。第1の秘密計算サーバ装置200_0、第2の秘密計算サーバ装置200_1、第3の秘密計算サーバ装置200_2、第4の秘密計算サーバ装置200_3、および第5の秘密計算サーバ装置200_4は、それぞれが互いにネットワーク経由で通信可能に接続されている。
第1~第5の秘密計算サーバ装置200_i(i=0,1,2,3,4)を備える秘密計算システム200においては、第1~第5の秘密計算サーバ装置200_i(i=0,1,2,3,4)の内のいずれかの秘密計算サーバ装置200_iが入力した値に対し、その入力や計算過程の値を知られることなく目的のシェアを計算し、その計算結果を第1~第5の秘密計算サーバ装置200_i(i=0,1,2,3,4)に分散して記憶することができる。
さらに、第1~第5の秘密計算サーバ装置200_i(i=0,1,2,3,4)を備える秘密計算システム200においては、第1~第5の秘密計算サーバ装置200_i(i=0,1,2,3,4)のうち1つが不正者によって運営されている場合であっても、処理を停止することなく、正しい秘密計算を継続することができる。
図5は、第2の実施形態における秘密計算サーバ装置の機能構成例を示すブロック図である。本実施形態の秘密計算システム200は、図5に示すように、第1~第5の秘密計算サーバ装置200_i(i=0,1,2,3,4)が、ローカル再分散部201_iと秘密計算部202_iと比較検証部203_iを備える。
ローカル再分散部201_iは、論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアを計算し、秘密計算部202_iは、論理シェアをビット変換した算術シェアを得るために、ローカル再分散部201_iが得た算術シェアを用いて通信を伴った秘密計算を行う。そして、比較検証部203_iは、少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、通信を伴った秘密計算における受信値を検証する。
以下、本実施形態におけるビット変換の実施に用いられるビルディングブロックについて説明する。なお、以下ではビット変換の実施に用いられるビルディングブロックの全てを説明することはしない。基本となる四則演算の秘密計算のうち、自明ではない乗算を中心に説明を行う。
[疑似乱数の生成とシードの共有]
疑似ランダム関数Fn,F2とシードおよび識別子の関係は次の通りである。疑似ランダム関数Fn,F2は、セキュリティパラメータκに対して定められた2項演算である。
Fn:{0,1}κ×{0,1}κ→{0,1}n
F2:{0,1}κ×{0,1}κ→{0,1}2
一方、シードseedi∈{0,1}κ(i=0, 1, 2, 3, 4)は、各秘密計算サーバ装置200_iが適切に共有している値であり、識別子vid∈{0,1}κはカウンタなどの公開された値である。これらシードと識別子を入力として、疑似ランダム関数Fn,F2は、決定的に疑似乱数を生成する。
疑似ランダム関数Fn,F2とシードおよび識別子の関係は次の通りである。疑似ランダム関数Fn,F2は、セキュリティパラメータκに対して定められた2項演算である。
Fn:{0,1}κ×{0,1}κ→{0,1}n
F2:{0,1}κ×{0,1}κ→{0,1}2
一方、シードseedi∈{0,1}κ(i=0, 1, 2, 3, 4)は、各秘密計算サーバ装置200_iが適切に共有している値であり、識別子vid∈{0,1}κはカウンタなどの公開された値である。これらシードと識別子を入力として、疑似ランダム関数Fn,F2は、決定的に疑似乱数を生成する。
5つのシードseedi∈{0,1}κ(i=0, 1, 2, 3, 4)は、各秘密計算サーバ装置200_iが(seedi, seedi+1, seedi+2, seedi+3)を保持する。ただし、seed4+1 = seed0である。すなわち、各秘密計算サーバ装置200_iは、すべてのシードseediを保持するのではなく、秘密計算サーバ装置200_iは、シードseedi+4のみを保持していないという関係となっている。これらシードの共有は、例えば、各秘密計算サーバ装置200_iにおける事前の設定として管理者などが適切に設定することができる。
[マスク作成]
ここでは、参加者Pi+4からは乱数に見えて除去できないが、残りの参加者Pi, Pi+1, Pi+2, Pi+3にとっては決定的に計算可能であるような、疑似乱数(Correlated Randomness)を作成し、これを後に説明する乗算の秘密計算においてマスクとして用いる。
ここでは、参加者Pi+4からは乱数に見えて除去できないが、残りの参加者Pi, Pi+1, Pi+2, Pi+3にとっては決定的に計算可能であるような、疑似乱数(Correlated Randomness)を作成し、これを後に説明する乗算の秘密計算においてマスクとして用いる。
まず、参加者Pi+4がシードseedi+3を保持していないことに着目すると、疑似ランダム関数Fnの入力としてシードseedi+3を用いれば以下の疑似乱数は上記条件を満たす。すなわち、下記αkは、参加者Pi+4からは乱数に見えて除去できないが、残りの参加者Pi, Pi+1, Pi+2, Pi+3にとっては決定的に計算可能である。
αk = Fn(vidk, seedi+3)- Fn(vidk+1, seedi+3) mod n
αk = Fn(vidk, seedi+3)- Fn(vidk+1, seedi+3) mod n
また、識別子vidkにおけるインデックスkをk=0からk=4まで変化させると、αkを5つ作成することが可能である。そこで、これらαkの組を以下のように定める。このように定めたα0, α1, α2, α3, α4がα0+α1+α2+α3+α4=0を満たすことは容易に確かめることができる。
(α0, α1, α2, α3, α4) = CR(i+4, {vidk}4 k=0, seedi+3)
(α0, α1, α2, α3, α4) = CR(i+4, {vidk}4 k=0, seedi+3)
このように作成された疑似乱数α0, α1, α2, α3, α4は、参加者Pi+4からは乱数に見えて除去できないが、残りの参加者Pi, Pi+1, Pi+2, Pi+3にとっては決定的に計算可能である。一方、参加者Pi+4にとっても、各疑似乱数α0, α1, α2, α3, α4は除去できないが、すべての疑似乱数α0, α1, α2, α3, α4が揃うと総和は0であり除去可能になるという性質がある。
さらに、上記疑似乱数の作成は、すべての参加者Pi+4に対しても同様に行うことができる。具体的には、以下のように定めればよい。
(αi,0, αi,1, αi,2, αi,3, αi,4) = CR(i, {vidk}4 k=0, seedi+4) for i=0,1,2,3,4
αi,k = Fn(vidk, seedi+4)- Fn(vidk+1, seedi+4) mod n for i=0,1,2,3,4
(αi,0, αi,1, αi,2, αi,3, αi,4) = CR(i, {vidk}4 k=0, seedi+4) for i=0,1,2,3,4
αi,k = Fn(vidk, seedi+4)- Fn(vidk+1, seedi+4) mod n for i=0,1,2,3,4
上記疑似乱数の表では、第1のインデックス(縦方向)に関する総和はゼロであり、第2のインデックス(横方向)に関する総和はゼロではないという性質を有する。
[秘密計算(乗算)]
次に、秘密計算の重要な因子である乗算について説明する。つまり、2つのシェア[x],[y]から[z]=[x・y]=[x]・[y]を計算する秘密計算の具体例を説明する。なお、x,y,zは以下のように分解されているとする。
次に、秘密計算の重要な因子である乗算について説明する。つまり、2つのシェア[x],[y]から[z]=[x・y]=[x]・[y]を計算する秘密計算の具体例を説明する。なお、x,y,zは以下のように分解されているとする。
参加者Pi(i=0,1,2,3,4)は、以下のようなtmpzkを計算する。このtmpzkは参加者Piがzkを計算するためにはxk・yi+4が足りない(保持しているシェアから計算できない)ので、代わりに計算する値である。なお、αj,kは、上述の[マスク作成]の項目にて説明した疑似乱数である。
ここで、送信者集合Si={Pi+2, Pi+3, Pi+4}, Si+1={Pi+3, Pi+4, Pi+1}, Si+2={Pi+4, Pi+1, Pi+2}, Si+3={Pi+1, Pi+2, Pi+3}を定める。するとSkに属する参加者は、xkyi+4を保持しているシェアから計算することができる。そこで、例えば、送信者集合Si={Pi+2, Pi+3, Pi+4}に属する参加者Pi+2, Pi+3, Pi+4は、xk・yi+4を上記疑似乱数αi,kでマスクをしたmk,i+2, mk,i+3, mk,i+4を計算する。
Pi+2: mk,i+2 = αi,k + xk・yi+4 mod n
Pi+3: mk,i+3 = αi,k + xk・yi+4 mod n
Pi+4: mk,i+4 = αi,k + xk・yi+4 mod n
Pi+2: mk,i+2 = αi,k + xk・yi+4 mod n
Pi+3: mk,i+3 = αi,k + xk・yi+4 mod n
Pi+4: mk,i+4 = αi,k + xk・yi+4 mod n
そして、送信者集合Si={Pi+2, Pi+3, Pi+4}に属する参加者Pi+2, Pi+3, Pi+4は、例えば、参加者Pi+2, Pi+3がmk,i+2, mk,i+3をそのまま参加者Piに送信し、参加者Pi+4がmk,i+4のハッシュ値hk,i+4を参加者Piに送信する。ここで、mk,i+2, mk,i+3, mk,i+4は疑似乱数αi,kでマスクをしているのでxkyi+4が漏洩することはない。つまり、ここではハッシュ関数も用いているが、これは安全性の確保のためではなく、通信コストを削減するためである。
その後、mk,i+2, mk,i+3およびmk,i+4のハッシュ値hk,i+4を受信した参加者Piは、mk,i+2, mk,i+3およびmk,i+4のハッシュ値hk,i+4の比較検証を行う。まず、参加者Piは、mk,i+2, mk,i+3のハッシュ値hk,i+2, hk,i+3を計算する。そして、hk,i+2=hk,i+3またはhk,i+2=hk,i+4であれば、mk = mk,i+2とする。一方、hk,i+3=hk,i+4であれば、mk = mk,i+2とする。
上記のようにxkyi+4を参加者Piへ受け渡せば、少なくとも3人の他の参加者Pjから同一となるはずのmk(のハッシュ値)を受信し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、他の参加者Pjの中に不正者が紛れたとしても正しい値を判別することができる。
このように計算されたzkは、余計な付加項が含まれているが、[z]=[xy]=[x][y]の計算結果のシェア[z]i=(zi, zi+1, zi+2, zi+3)として機能する。それは、実際に以下のようにz=z0+z1+z2+z3+z4を計算すると明らかとなる。
すなわち、上述の[マスク作成]の項目にて説明したように、本構成の疑似乱数は、第1のインデックス(縦方向)に関する総和はゼロであり、第2のインデックス(横方向)に関する総和はゼロではないという性質を有する。zk = tmpzk + mk mod n (k=i,i+1,i+2,i+3)の計算結果に表れていた付加項は、第2のインデックス(横方向)に関する総和であり、ゼロとはならないが、[z]=[x・y]=[x] ・ [y]の計算結果を復元する際には、第1のインデックス(縦方向)に関する総和がゼロになるという性質を用いて、結果的に付加項(マスク)の影響を除去することが可能になる。つまり、上記計算されたzkは、余計な付加項が含まれているが、[z]=[x・y]=[x]・[y]の計算結果のシェア[z]i=(zi, zi+1, zi+2, zi+3)として機能する。
以上、上記のような[z]=[x・y]=[x]・[y]の計算結果のシェア[z]i=(zi, zi+1, zi+2, zi+3)は、少なくとも3人の他の参加者Pjから同一となるはずのmk(のハッシュ値)を受信し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、他の参加者Pjの中に不正者が紛れたとしても正しい値を判別することができる。つまり、参加者の中に不正者が紛れたとしても処理を停止することなく、正しい計算を得ることができるGuaranteed Output Delivery (GOD)が実現されている。また、上記処理では、ハッシュ関数を用いているが、通信量の削減を目的として利用しているのであり、出力から入力が推定されたとしても安全性に影響を与えないので、標準モデルにおいてGuaranteed Output Delivery (GOD)が実現されている。
[ビット変換]
ビット変換とは、位数2の剰余類環Z2上の論理シェア[x]Bから位数nの剰余類環Zn上の算術シェア[x]を得るビット変換:[x]←BC([x]B)である。まず、ローカル再分散として、論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアに再分散する。具体的には以下のように行う。
ビット変換とは、位数2の剰余類環Z2上の論理シェア[x]Bから位数nの剰余類環Zn上の算術シェア[x]を得るビット変換:[x]←BC([x]B)である。まず、ローカル再分散として、論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアに再分散する。具体的には以下のように行う。
各参加者Pi(i=0,1,2,3,4)は以下のように、[x0]iを設定する。
P0: [x0]0 = (x0, 0, 0, 0)
P1: [x0]1 = (0, 0, 0, 0)
P2: [x0]2 = (0, 0, 0, x0)
P3: [x0]3 = (0, 0, x0, 0)
P4: [x0]4 = (0, x0, 0, 0)
P0: [x0]0 = (x0, 0, 0, 0)
P1: [x0]1 = (0, 0, 0, 0)
P2: [x0]2 = (0, 0, 0, x0)
P3: [x0]3 = (0, 0, x0, 0)
P4: [x0]4 = (0, x0, 0, 0)
各参加者Pi(i=0,1,2,3,4)は以下のように、[x1]iを設定する。
P0: [x1]0 = (0, x1, 0, 0)
P1: [x1]1 = (x1, 0, 0, 0)
P2: [x1]2 = (0, 0, 0, 0)
P3: [x1]3 = (0, 0, 0, x1)
P4: [x1]4 = (0, 0, x1, 0)
P0: [x1]0 = (0, x1, 0, 0)
P1: [x1]1 = (x1, 0, 0, 0)
P2: [x1]2 = (0, 0, 0, 0)
P3: [x1]3 = (0, 0, 0, x1)
P4: [x1]4 = (0, 0, x1, 0)
各参加者Pi(i=0,1,2,3,4)は以下のように、[x2]iを設定する。
P0: [x2]0 = (0, 0, x2, 0)
P1: [x2]1 = (0, x2, 0, 0)
P2: [x2]2 = (x2, 0, 0, 0)
P3: [x2]3 = (0, 0, 0, 0)
P4: [x2]4 = (0, 0, 0, x2)
P0: [x2]0 = (0, 0, x2, 0)
P1: [x2]1 = (0, x2, 0, 0)
P2: [x2]2 = (x2, 0, 0, 0)
P3: [x2]3 = (0, 0, 0, 0)
P4: [x2]4 = (0, 0, 0, x2)
各参加者Pi(i=0,1,2,3,4)は以下のように、[x3]iを設定する。
P0: [x3]0 = (0, 0, 0, x3)
P1: [x3]1 = (0, 0, x3, 0)
P2: [x3]2 = (0, x3, 0, 0)
P3: [x3]3 = (x3, 0, 0, 0)
P4: [x3]4 = (0, 0, 0, 0)
P0: [x3]0 = (0, 0, 0, x3)
P1: [x3]1 = (0, 0, x3, 0)
P2: [x3]2 = (0, x3, 0, 0)
P3: [x3]3 = (x3, 0, 0, 0)
P4: [x3]4 = (0, 0, 0, 0)
各参加者Pi(i=0,1,2,3,4)は以下のように、[x4]iを設定する。
P0: [x4]0 = (0, 0, 0, 0)
P1: [x4]1 = (0, 0, 0, x4)
P2: [x4]2 = (0, 0, x4, 0)
P3: [x4]3 = (0, x4, 0, 0)
P4: [x4]4 = (x4, 0, 0, 0)
P0: [x4]0 = (0, 0, 0, 0)
P1: [x4]1 = (0, 0, 0, x4)
P2: [x4]2 = (0, 0, x4, 0)
P3: [x4]3 = (0, x4, 0, 0)
P4: [x4]4 = (x4, 0, 0, 0)
なお、上記ローカル再分散は、通信を伴った計算ではないので、参加者の中に不正者が紛れたとしても計算の実行に影響を及ぼさない。
次に、上記のように再分散された算術シェアを用いて通信を伴った秘密計算を行い、論理シェアをビット変換した算術シェアを得る。なお、ここで再度の注意を述べるが、例えば、(1, 0, 0, 0, 0)と(1, 1, 1, 1, 1)は、位数2の剰余類環Z2の元x∈Z2の剰余類環Z2上のシェアとしては同値であっても、位数nの剰余類環Znの元x∈Znの剰余類環Zn上のシェアとしては同値にならない。これは、排他的論理和を用いた分解は、算術和の分解に対応しないからである。そこで、排他的論理和と算術和との違いを相殺するために以下のような秘密計算を行う。
ここで、上記秘密計算は、2乗が含まれているので乗算の秘密計算を含む。そして、乗算の秘密計算では、他の秘密計算サーバ装置との間で通信が必要となる。そこで、上述の[秘密計算(乗算)]を用い、少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、通信を伴った秘密計算における受信値を検証する。
以上のように、第2の実施形態の秘密計算システム200および秘密計算方法は、少なくとも3人の他の参加者から同一となるはずの受信値を受信し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、他の参加者の中に不正者が紛れたとしても正しい値を判別することができる。すなわち、不正者が紛れたとしても処理を停止することなく、正しい計算を得ることができるGuaranteed Output Delivery (GOD)が実現されている。
また、上記処理では、ハッシュ関数を用いているが、通信量の削減を目的として利用しているのであり、出力から入力が推定されたとしても安全性に影響を与えないので、標準モデルにおいてGuaranteed Output Delivery (GOD)が実現されている。さらに、本実施形態の秘密計算システム200および秘密計算方法は、最初に通信を伴うことなく再分散(ローカル再分散)を行い、その後に通信を伴った秘密計算を行うので、通信コストが低減されている。
[第3の実施形態]
以下、図6および図7を参照して、第3の実施形態に係る秘密計算システムおよび秘密計算サーバ装置について説明する。
以下、図6および図7を参照して、第3の実施形態に係る秘密計算システムおよび秘密計算サーバ装置について説明する。
図6は、第3の実施形態における秘密計算システムの機能構成例を示すブロック図である。図6に示すように、第3の実施形態による秘密計算システム300は、第1の秘密計算サーバ装置300_0と第2の秘密計算サーバ装置300_1と第3の秘密計算サーバ装置300_2と第4の秘密計算サーバ装置300_3と第5の秘密計算サーバ装置300_4とを備えている。第1の秘密計算サーバ装置300_0、第2の秘密計算サーバ装置300_1、第3の秘密計算サーバ装置300_2、第4の秘密計算サーバ装置300_3、および第5の秘密計算サーバ装置300_4は、それぞれが互いにネットワーク経由で通信可能に接続されている。
第1~第5の秘密計算サーバ装置300_i(i=0,1,2,3,4)を備える秘密計算システム300においては、第1~第5の秘密計算サーバ装置300_i(i=0,1,2,3,4)の内のいずれかの秘密計算サーバ装置300_iが入力した値に対し、その入力や計算過程の値を知られることなく目的のシェアを計算し、その計算結果を第1~第5の秘密計算サーバ装置300_i(i=0,1,2,3,4)に分散して記憶することができる。
さらに、第1~第5の秘密計算サーバ装置300_i(i=0,1,2,3,4)を備える秘密計算システム300においては、第1~第5の秘密計算サーバ装置300_i(i=0,1,2,3,4)のうち1つが不正者によって運営されている場合であっても、処理を停止することなく、正しい秘密計算を継続することができる。
図7は、第3の実施形態における秘密計算サーバ装置の機能構成例を示すブロック図である。本実施形態秘密計算システム300は、図7に示すように、第1~第5の秘密計算サーバ装置300_i(i=0,1,2,3,4)が、ローカル再分散部301_iと秘密計算部302_iと比較検証部303_iと再分散部304_iを備える。
ローカル再分散部301_iは、論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアを計算し、秘密計算部302_iは、論理シェアをビット変換した算術シェアを得るために、ローカル再分散部301_iが得た算術シェアを用いて通信を伴った秘密計算を行う。そして、比較検証部303_iは、少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、通信を伴った秘密計算における受信値を検証する。再分散部304_iは、論理シェアにおけるサブシェアから計算された一時的変数を算術シェアとして再分散する。
このように、第3の実施形態における秘密計算サーバ装置300_iは、第2の実施形態における秘密計算サーバ装置200_iの構成に加えて再分散部304_iを備えている。この再分散部304_iの役割を秘密計算方法の中で説明すると、以下のようになる。図8は、秘密計算方法の手順の概略を示すフローチャートである。
図8に示すように、本実施形態に係る秘密計算方法は、再分散ステップ(S21)とローカル再分散ステップ(S22)と通信を伴った秘密計算ステップ(S23)と比較検証ステップ(S24)とを有する。再分散ステップ(S21)では、論理シェアにおけるサブシェアから計算された一時的変数を算術シェアとして再分散し、ローカル再分散ステップ(S22)では、論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアを計算する。なお、再分散ステップ(S21)とローカル再分散ステップ(S22)は順序が逆になってもよい。
通信を伴った秘密計算ステップ(S23)では、論理シェアをビット変換した算術シェアを得るために、再分散された算術シェアを用いて通信を伴った秘密計算を行う。そして、比較検証ステップ(S24)にて、少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、通信を伴った秘密計算における受信値を検証する。なお、比較検証ステップ(S24)は、通信を伴った秘密計算を行う度に行う。したがって、通信を伴った秘密計算ステップ(S23)の受信値に対してだけではなく、再分散ステップ(S21)の受信値に対しても比較検証ステップ(S24)が行われる。
[再分散]
まず、本実施形態において追加された再分散部304_iの機能について説明する。本実施形態で用いられる再分散は、以下のように定義される。すなわち、参加者Pi,Pi+1,Pi+2が値cを保持していた場合に、シードと識別子から決定的に定められる再分散である。
まず、本実施形態において追加された再分散部304_iの機能について説明する。本実施形態で用いられる再分散は、以下のように定義される。すなわち、参加者Pi,Pi+1,Pi+2が値cを保持していた場合に、シードと識別子から決定的に定められる再分散である。
ただし、rj = Fn(vidk, seedi+2)かつr´j = Fn(vidk+1, seedi+3)であり、シードseedi∈{0,1}κ(i=0, 1, 2, 3, 4)は、先述の[疑似乱数の生成とシードの共有]の項で説明した性質のシードである。したがって、参加者Pi+3は、seedi+2を知らず、また、参加者Pi+4は、seedi+3を知らない。つまり、参加者Pi+3, Pi+4は、自分でci+3,ci+4を計算することができず、参加者Pi,Pi+1,Pi+2からci+3,ci+4を受信する必要がある。
ここで、通信を伴った秘密計算が発生するので、参加者Pi+3, Pi+4は、参加者Pi,Pi+1,Pi+2から受信した同一の値となるはずの受信値ci+3,ci+4を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用する。具体的には、以下のように行うことができる。
参加者Pi,Pi+1は、cj+1,cj+2,cj+3(j=i+3)を参加者Pi+3に送信する。一方、参加者Pi+2は、cj+1,cj+2,cj+3(j=i+3)のハッシュ値を各参加者に送信する。さらに、参加者Pi,Pi+1は、cj´+1,cj´+2,cj´+3(j´=i+3)を参加者Pi+4に送信する。一方、参加者Pi+2は、cj´+1,cj´+2,cj´+3(j´=i+3)を各参加者に送信する。そして、参加者Pi+3, Pi+4は、参加者Pi,Pi+1,Pi+2から受信した受信値のうち少なくとも2つ以上が同一である受信値を正しい値として採用する。
次に、上記説明した再分散をビット変換の中でどのように用いるかを説明する。
[ビット変換]
ビット変換とは、位数2の剰余類環Z2上の論理シェア[x]Bから位数nの剰余類環Zn上の算術シェア[x]を得るビット変換:[x]←BC([x]B)であった。まず、参加者P3,P4,P0および参加者P0,P1,P2は、それぞれ以下のように、論理シェア[x]Bにおけるサブシェアxiから計算された一時的変数y0,y1を計算する。
ビット変換とは、位数2の剰余類環Z2上の論理シェア[x]Bから位数nの剰余類環Zn上の算術シェア[x]を得るビット変換:[x]←BC([x]B)であった。まず、参加者P3,P4,P0および参加者P0,P1,P2は、それぞれ以下のように、論理シェア[x]Bにおけるサブシェアxiから計算された一時的変数y0,y1を計算する。
なお、上記再分散は、通信を伴った秘密計算であるので、既に説明したように、参加者Pi+3, Pi+4は、参加者Pi,Pi+1,Pi+2から受信した受信値のうち少なくとも2つ以上が同一である受信値を正しい値として採用する。
一方、各参加者Pi(i=0,1,2,3,4)は以下のように、[x4]iを設定する。なお、この処理は通信を伴った秘密計算ではないので、検証は必要ない。
P0: [x4]0 = (0, 0, 0, 0)
P1: [x4]1 = (0, 0, 0, x4)
P2: [x4]2 = (0, 0, x4, 0)
P3: [x4]3 = (0, x4, 0, 0)
P4: [x4]4 = (x4, 0, 0, 0)
P0: [x4]0 = (0, 0, 0, 0)
P1: [x4]1 = (0, 0, 0, x4)
P2: [x4]2 = (0, 0, x4, 0)
P3: [x4]3 = (0, x4, 0, 0)
P4: [x4]4 = (x4, 0, 0, 0)
そして、最終的に、一時的変数y0,y1の算術シェアと算術シェア[x4]i(i=0,1,2,3,4)とを用いて、前記論理シェアをビット変換した算術シェアを以下のように秘密計算する。
なお、ここでも、上記秘密計算は、乗算の秘密計算を含むので、上述の[秘密計算(乗算)]を用い、少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、通信を伴った秘密計算における受信値を検証する。
以上のように、第3の実施形態の秘密計算システム300および秘密計算方法は、少なくとも3人の他の参加者から同一となるはずの受信値を受信し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、他の参加者の中に不正者が紛れたとしても正しい値を判別することができる。すなわち、不正者が紛れたとしても処理を停止することなく、正しい計算を得ることができるGuaranteed Output Delivery (GOD)が実現されている。
また、上記処理では、ハッシュ関数を用いているが、通信量の削減を目的として利用しているのであり、出力から入力が推定されたとしても安全性に影響を与えないので、標準モデルにおいてGuaranteed Output Delivery (GOD)が実現されている。さらに、本実施形態の秘密計算システム300および秘密計算方法は、最初に通信を伴うことなく再分散(ローカル再分散)を行い、その後に通信を伴った秘密計算を行うので、通信コストが低減されている。
特に、第3の実施形態の秘密計算システム300および秘密計算方法は、通信を伴った再分散と通信を伴わない再分散とを組み合わせて用いているので、第2の実施形態よりも通信コストが低減されている。具体的には、第2の実施形態の通信コストは、ラウンド数が3ラウンドであり、通信量が160kビットである。一方、第3の実施形態の通信コストは、ラウンド数が3ラウンドであり、通信量が112kビットである。つまり、第3の実施形態の秘密計算システム300および秘密計算方法は、第2の実施形態との比較において、ラウンド数が同じでありながら、通信量48kビット削減することができている。
[ハードウェア構成例]
図9は、秘密計算サーバ装置のハードウェア構成例を示す図である。すなわち、図9に示すハードウェア構成例は、秘密計算サーバ装置100_i,200_i,300_i(i=0,1,2,3,4)のハードウェア構成例である。図9に示すハードウェア構成を採用した情報処理装置(コンピュータ)は、上記説明した秘密計算方法をプログラムとして実行することで、秘密計算サーバ装置100_i,200_i,300_i(i=0,1,2,3,4)の各機能を実現することを可能にする。
図9は、秘密計算サーバ装置のハードウェア構成例を示す図である。すなわち、図9に示すハードウェア構成例は、秘密計算サーバ装置100_i,200_i,300_i(i=0,1,2,3,4)のハードウェア構成例である。図9に示すハードウェア構成を採用した情報処理装置(コンピュータ)は、上記説明した秘密計算方法をプログラムとして実行することで、秘密計算サーバ装置100_i,200_i,300_i(i=0,1,2,3,4)の各機能を実現することを可能にする。
ただし、図9に示すハードウェア構成例は、秘密計算サーバ装置100_i,200_i,300_i(i=0,1,2,3,4)の各機能を実現するハードウェア構成の一例であり、秘密計算サーバ装置100_i,200_i,300_i(i=0,1,2,3,4)のハードウェア構成を限定する趣旨ではない。秘密計算サーバ装置100_i,200_i,300_i(i=0,1,2,3,4)は、図9に示さないハードウェアを含むことができる。
図9に示すように、秘密計算サーバ装置100_i,200_i,300_i(i=0,1,2,3,4)が採用し得るハードウェア構成10は、例えば内部バスにより相互に接続される、CPU(Central Processing Unit)11、主記憶装置12、補助記憶装置13、およびIF(Interface)部14を備える。
CPU11は、秘密計算サーバ装置100_i,200_i,300_i(i=0,1,2,3,4)が実行する秘密計算プログラムに含まれる各指令を実行する。主記憶装置12は、例えばRAM(Random Access Memory)であり、秘密計算サーバ装置100_i,200_i,300_i(i=0,1,2,3,4)が実行する秘密計算プログラムなどの各種プログラムなどをCPU11が処理するために一時記憶する。
補助記憶装置13は、例えば、HDD(Hard Disk Drive)であり、秘密計算サーバ装置100_i,200_i,300_i(i=0,1,2,3,4)が実行する秘密計算プログラムなどの各種プログラムなどを中長期的に記憶しておくが可能である。秘密計算プログラムなどの各種プログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することができる。補助記憶装置13は、非一時的なコンピュータ可読記録媒体に記録された秘密計算プログラムなどの各種プログラムを中長期的に記憶することに利用することが可能である。IF部14は、秘密計算サーバ装置100_i,200_i,300_i(i=0,1,2,3,4)間の入出力に関するインターフェイスを提供する。
上記のようなハードウェア構成10を採用した情報処理装置は、先述した秘密計算方法をプログラムとして実行することで、秘密計算サーバ装置100_i,200_i,300_i(i=0,1,2,3,4)の各機能を実現する。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
相互にネットワークで接続した5台の秘密計算サーバ装置を備え、秘密分散して保持されている位数2の剰余類環上の論理シェアから位数n(n=2m;mは2以上の整数)の剰余類環上の算術シェアにビット変換する秘密計算システムであって、
前記秘密計算サーバ装置のそれぞれが、
前記論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアを計算するローカル再分散部と、
前記論理シェアをビット変換した算術シェアを得るために、前記ローカル再分散部が得た算術シェアを用いて通信を伴った秘密計算を行う秘密計算部と、
少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用する比較検証部と、
を有し、
前記通信を伴った秘密計算における受信値を前記比較検証部が検証する、秘密計算システム。
[付記2]
前記秘密計算サーバ装置のそれぞれが、
前記論理シェアにおけるサブシェアから計算された一時的変数を算術シェアとして分散する再分散部をさらに有し、
前記再分散部が分散した前記一時的変数の算術シェアの受信値を前記比較検証部が検証し、
前記再分散部が分散した前記一時的変数の算術シェアと前記ローカル再分散部が得た算術シェアとを用いて、前記論理シェアをビット変換した算術シェアを秘密計算する、付記1に記載の秘密計算システム。
[付記3]
前記一時的変数は、前記秘密計算サーバ装置の5台のうち3台が共通して保持している前記論理シェアにおけるサブシェアから計算され、
前記再分散部は、前記3台の秘密計算サーバ装置が共通して計算する前記一時的変数から決定的に生成した算術シェアを分散し、
前記比較検証部は、前記3台の秘密計算サーバ装置から受信した算術シェアに対して、少なくとも2つ以上が同一である受信値を正しい値として採用する、付記2に記載の秘密計算システム。
[付記4]
前記比較検証部は、前記受信値のハッシュ値が同一であることを判断して、前記受信値が正しい値であることを判断する、付記1から付記3のいずれか1つに記載の秘密計算システム。
[付記5]
秘密分散して保持されている位数2の剰余類環上の論理シェアから位数n(n=2m;mは2以上の整数)の剰余類環上の算術シェアにビット変換するために、相互にネットワークで接続した少なくとも5台の秘密計算サーバ装置の一つであって、
前記論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアを計算するローカル再分散部と、
前記論理シェアをビット変換した算術シェアを得るために、前記ローカル再分散部が得た算術シェアを用いて通信を伴った秘密計算を行う秘密計算部と、
少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用する比較検証部と、
を有し、
前記通信を伴った秘密計算における受信値を前記比較検証部が検証する、秘密計算サーバ装置。
[付記6]
相互にネットワークで接続した5台の秘密計算サーバ装置を用いて、秘密分散して保持されている位数2の剰余類環上の論理シェアから位数n(n=2m;mは2以上の整数)の剰余類環上の算術シェアにビット変換する秘密計算方法であって、
前記秘密計算サーバ装置のそれぞれが、
前記論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアに再分散し、
前記論理シェアをビット変換した算術シェアを得るために、前記再分散された算術シェアを用いて通信を伴った秘密計算を行い、
少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、前記通信を伴った秘密計算における受信値を検証する、秘密計算方法。
[付記7]
前記秘密計算サーバ装置のそれぞれが、
前記論理シェアにおけるサブシェアから計算された一時的変数を算術シェアとして再分散し、
少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、前記再分散した前記一時的変数の算術シェアの受信値を検証し、
前記再分散した前記一時的変数の算術シェアと前記通信を伴うことなく計算した算術シェアとを用いて、前記論理シェアをビット変換した算術シェアを秘密計算する、付記6に記載の秘密計算方法。
[付記8]
前記一時的変数を、前記秘密計算サーバ装置の5台のうち3台が共通して保持している前記論理シェアにおけるサブシェアから計算し、
前記3台の秘密計算サーバ装置が共通して計算する前記一時的変数から決定的に生成した算術シェアを再分散し、
前記3台の秘密計算サーバ装置から受信した算術シェアに対して、少なくとも2つ以上が同一である受信値を正しい値として採用する、付記7に記載の秘密計算方法。
[付記9]
前記受信値が正しい値であることを判断する際には、前記受信値のハッシュ値が同一であることを用いて判断する、付記6から付記8のいずれか1つに記載の秘密計算方法。
[付記10]
相互にネットワークで接続した少なくとも5台以上の秘密計算サーバ装置に、秘密分散して保持されている値の秘密計算をさせる秘密計算プログラムであって、
相互にネットワークで接続した5台の秘密計算サーバ装置に、秘密分散して保持されている位数2の剰余類環上の論理シェアから位数n(n=2m;mは2以上の整数)の剰余類環上の算術シェアにビット変換をさせる秘密計算プログラムであって、
前記秘密計算サーバ装置のそれぞれが、
前記論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアに再分散し、
前記論理シェアをビット変換した算術シェアを得るために、前記再分散された算術シェアを用いて通信を伴った秘密計算を行い、
少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、前記通信を伴った秘密計算における受信値を検証する、秘密計算プログラム。
[付記1]
相互にネットワークで接続した5台の秘密計算サーバ装置を備え、秘密分散して保持されている位数2の剰余類環上の論理シェアから位数n(n=2m;mは2以上の整数)の剰余類環上の算術シェアにビット変換する秘密計算システムであって、
前記秘密計算サーバ装置のそれぞれが、
前記論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアを計算するローカル再分散部と、
前記論理シェアをビット変換した算術シェアを得るために、前記ローカル再分散部が得た算術シェアを用いて通信を伴った秘密計算を行う秘密計算部と、
少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用する比較検証部と、
を有し、
前記通信を伴った秘密計算における受信値を前記比較検証部が検証する、秘密計算システム。
[付記2]
前記秘密計算サーバ装置のそれぞれが、
前記論理シェアにおけるサブシェアから計算された一時的変数を算術シェアとして分散する再分散部をさらに有し、
前記再分散部が分散した前記一時的変数の算術シェアの受信値を前記比較検証部が検証し、
前記再分散部が分散した前記一時的変数の算術シェアと前記ローカル再分散部が得た算術シェアとを用いて、前記論理シェアをビット変換した算術シェアを秘密計算する、付記1に記載の秘密計算システム。
[付記3]
前記一時的変数は、前記秘密計算サーバ装置の5台のうち3台が共通して保持している前記論理シェアにおけるサブシェアから計算され、
前記再分散部は、前記3台の秘密計算サーバ装置が共通して計算する前記一時的変数から決定的に生成した算術シェアを分散し、
前記比較検証部は、前記3台の秘密計算サーバ装置から受信した算術シェアに対して、少なくとも2つ以上が同一である受信値を正しい値として採用する、付記2に記載の秘密計算システム。
[付記4]
前記比較検証部は、前記受信値のハッシュ値が同一であることを判断して、前記受信値が正しい値であることを判断する、付記1から付記3のいずれか1つに記載の秘密計算システム。
[付記5]
秘密分散して保持されている位数2の剰余類環上の論理シェアから位数n(n=2m;mは2以上の整数)の剰余類環上の算術シェアにビット変換するために、相互にネットワークで接続した少なくとも5台の秘密計算サーバ装置の一つであって、
前記論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアを計算するローカル再分散部と、
前記論理シェアをビット変換した算術シェアを得るために、前記ローカル再分散部が得た算術シェアを用いて通信を伴った秘密計算を行う秘密計算部と、
少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用する比較検証部と、
を有し、
前記通信を伴った秘密計算における受信値を前記比較検証部が検証する、秘密計算サーバ装置。
[付記6]
相互にネットワークで接続した5台の秘密計算サーバ装置を用いて、秘密分散して保持されている位数2の剰余類環上の論理シェアから位数n(n=2m;mは2以上の整数)の剰余類環上の算術シェアにビット変換する秘密計算方法であって、
前記秘密計算サーバ装置のそれぞれが、
前記論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアに再分散し、
前記論理シェアをビット変換した算術シェアを得るために、前記再分散された算術シェアを用いて通信を伴った秘密計算を行い、
少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、前記通信を伴った秘密計算における受信値を検証する、秘密計算方法。
[付記7]
前記秘密計算サーバ装置のそれぞれが、
前記論理シェアにおけるサブシェアから計算された一時的変数を算術シェアとして再分散し、
少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、前記再分散した前記一時的変数の算術シェアの受信値を検証し、
前記再分散した前記一時的変数の算術シェアと前記通信を伴うことなく計算した算術シェアとを用いて、前記論理シェアをビット変換した算術シェアを秘密計算する、付記6に記載の秘密計算方法。
[付記8]
前記一時的変数を、前記秘密計算サーバ装置の5台のうち3台が共通して保持している前記論理シェアにおけるサブシェアから計算し、
前記3台の秘密計算サーバ装置が共通して計算する前記一時的変数から決定的に生成した算術シェアを再分散し、
前記3台の秘密計算サーバ装置から受信した算術シェアに対して、少なくとも2つ以上が同一である受信値を正しい値として採用する、付記7に記載の秘密計算方法。
[付記9]
前記受信値が正しい値であることを判断する際には、前記受信値のハッシュ値が同一であることを用いて判断する、付記6から付記8のいずれか1つに記載の秘密計算方法。
[付記10]
相互にネットワークで接続した少なくとも5台以上の秘密計算サーバ装置に、秘密分散して保持されている値の秘密計算をさせる秘密計算プログラムであって、
相互にネットワークで接続した5台の秘密計算サーバ装置に、秘密分散して保持されている位数2の剰余類環上の論理シェアから位数n(n=2m;mは2以上の整数)の剰余類環上の算術シェアにビット変換をさせる秘密計算プログラムであって、
前記秘密計算サーバ装置のそれぞれが、
前記論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアに再分散し、
前記論理シェアをビット変換した算術シェアを得るために、前記再分散された算術シェアを用いて通信を伴った秘密計算を行い、
少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、前記通信を伴った秘密計算における受信値を検証する、秘密計算プログラム。
なお、引用した上記の特許文献の開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択(部分的削除を含む)が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。さらに、上記引用した文献の各開示事項は、必要に応じ、本発明の趣旨に則り、本発明の開示の一部として、その一部又は全部を、本書の記載事項と組み合わせて用いることも、本願の開示事項に含まれるものと、みなされる。
100,200,300 秘密計算システム
100_i,200_i,300_i 秘密計算サーバ装置
101_i,201_i,301_i ローカル再分散部
102_i,202_i,302_i 秘密計算部
103_i,203_i,303_i 比較検証部
304_i 再分散部
10 ハードウェア構成
11 CPU(Central Processing Unit)
12 主記憶装置
13 補助記憶装置
14 IF(Interface)部
100_i,200_i,300_i 秘密計算サーバ装置
101_i,201_i,301_i ローカル再分散部
102_i,202_i,302_i 秘密計算部
103_i,203_i,303_i 比較検証部
304_i 再分散部
10 ハードウェア構成
11 CPU(Central Processing Unit)
12 主記憶装置
13 補助記憶装置
14 IF(Interface)部
Claims (10)
- 相互にネットワークで接続した5台の秘密計算サーバ装置を備え、秘密分散して保持されている位数2の剰余類環上の論理シェアから位数n(n=2m;mは2以上の整数)の剰余類環上の算術シェアにビット変換する秘密計算システムであって、
前記秘密計算サーバ装置のそれぞれが、
前記論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアを計算するローカル再分散部と、
前記論理シェアをビット変換した算術シェアを得るために、前記ローカル再分散部が得た算術シェアを用いて通信を伴った秘密計算を行う秘密計算部と、
少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用する比較検証部と、
を有し、
前記通信を伴った秘密計算における受信値を前記比較検証部が検証する、秘密計算システム。 - 前記秘密計算サーバ装置のそれぞれが、
前記論理シェアにおけるサブシェアから計算された一時的変数を算術シェアとして分散する再分散部をさらに有し、
前記再分散部が分散した前記一時的変数の算術シェアの受信値を前記比較検証部が検証し、
前記再分散部が分散した前記一時的変数の算術シェアと前記ローカル再分散部が得た算術シェアとを用いて、前記論理シェアをビット変換した算術シェアを秘密計算する、請求項1に記載の秘密計算システム。 - 前記一時的変数は、前記秘密計算サーバ装置の5台のうち3台が共通して保持している前記論理シェアにおけるサブシェアから計算され、
前記再分散部は、前記3台の秘密計算サーバ装置が共通して計算する前記一時的変数から決定的に生成した算術シェアを分散し、
前記比較検証部は、前記3台の秘密計算サーバ装置から受信した算術シェアに対して、少なくとも2つ以上が同一である受信値を正しい値として採用する、請求項2に記載の秘密計算システム。 - 前記比較検証部は、前記受信値のハッシュ値が同一であることを判断して、前記受信値が正しい値であることを判断する、請求項1から請求項3のいずれか1項に記載の秘密計算システム。
- 秘密分散して保持されている位数2の剰余類環上の論理シェアから位数n(n=2m;mは2以上の整数)の剰余類環上の算術シェアにビット変換するために、相互にネットワークで接続した少なくとも5台の秘密計算サーバ装置の一つであって、
前記論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアを計算するローカル再分散部と、
前記論理シェアをビット変換した算術シェアを得るために、前記ローカル再分散部が得た算術シェアを用いて通信を伴った秘密計算を行う秘密計算部と、
少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用する比較検証部と、
を有し、
前記通信を伴った秘密計算における受信値を前記比較検証部が検証する、秘密計算サーバ装置。 - 相互にネットワークで接続した5台の秘密計算サーバ装置を用いて、秘密分散して保持されている位数2の剰余類環上の論理シェアから位数n(n=2m;mは2以上の整数)の剰余類環上の算術シェアにビット変換する秘密計算方法であって、
前記秘密計算サーバ装置のそれぞれが、
前記論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアに再分散し、
前記論理シェアをビット変換した算術シェアを得るために、前記再分散された算術シェアを用いて通信を伴った秘密計算を行い、
少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、前記通信を伴った秘密計算における受信値を検証する、秘密計算方法。 - 前記秘密計算サーバ装置のそれぞれが、
前記論理シェアにおけるサブシェアから計算された一時的変数を算術シェアとして再分散し、
少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、前記再分散した前記一時的変数の算術シェアの受信値を検証し、
前記再分散した前記一時的変数の算術シェアと前記通信を伴うことなく計算した算術シェアとを用いて、前記論理シェアをビット変換した算術シェアを秘密計算する、請求項6に記載の秘密計算方法。 - 前記一時的変数を、前記秘密計算サーバ装置の5台のうち3台が共通して保持している前記論理シェアにおけるサブシェアから計算し、
前記3台の秘密計算サーバ装置が共通して計算する前記一時的変数から決定的に生成した算術シェアを再分散し、
前記3台の秘密計算サーバ装置から受信した算術シェアに対して、少なくとも2つ以上が同一である受信値を正しい値として採用する、請求項7に記載の秘密計算方法。 - 前記受信値が正しい値であることを判断する際には、前記受信値のハッシュ値が同一であることを用いて判断する、請求項6から請求項8のいずれか1項に記載の秘密計算方法。
- 相互にネットワークで接続した少なくとも5台以上の秘密計算サーバ装置に、秘密分散して保持されている値の秘密計算をさせる秘密計算プログラムであって、
相互にネットワークで接続した5台の秘密計算サーバ装置に、秘密分散して保持されている位数2の剰余類環上の論理シェアから位数n(n=2m;mは2以上の整数)の剰余類環上の算術シェアにビット変換をさせる秘密計算プログラムであって、
前記秘密計算サーバ装置のそれぞれが、
前記論理シェアから、自己が保持していないサブシェアをゼロに設定することで他の秘密計算サーバ装置との通信を伴うことなく算術シェアに再分散し、
前記論理シェアをビット変換した算術シェアを得るために、前記再分散された算術シェアを用いて通信を伴った秘密計算を行い、
少なくとも3台以上の秘密計算サーバ装置から受信した同一の値となるはずの受信値を比較し、少なくとも2つ以上が同一である受信値を正しい値として採用することで、前記通信を伴った秘密計算における受信値を検証する、秘密計算プログラム。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2021/000661 WO2022153358A1 (ja) | 2021-01-12 | 2021-01-12 | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2022153358A1 JPWO2022153358A1 (ja) | 2022-07-21 |
| JP7517475B2 true JP7517475B2 (ja) | 2024-07-17 |
Family
ID=82447013
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022574879A Active JP7517475B2 (ja) | 2021-01-12 | 2021-01-12 | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20240073008A1 (ja) |
| JP (1) | JP7517475B2 (ja) |
| WO (1) | WO2022153358A1 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116192372A (zh) * | 2022-12-31 | 2023-05-30 | 支付宝(杭州)信息技术有限公司 | 多方安全计算系统之间的数据传输方法及装置 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018053185A1 (en) | 2016-09-14 | 2018-03-22 | Alios Biopharma, Inc. | Modified oligonucleotides and methods of use |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015053185A1 (ja) * | 2013-10-10 | 2015-04-16 | 日本電信電話株式会社 | 秘密商転移装置、秘密ビット分解装置、秘密モジュラス変換装置、秘密商転移方法、秘密ビット分解方法、秘密モジュラス変換方法、プログラム |
-
2021
- 2021-01-12 JP JP2022574879A patent/JP7517475B2/ja active Active
- 2021-01-12 WO PCT/JP2021/000661 patent/WO2022153358A1/ja not_active Ceased
- 2021-01-12 US US18/271,802 patent/US20240073008A1/en not_active Abandoned
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018053185A1 (en) | 2016-09-14 | 2018-03-22 | Alios Biopharma, Inc. | Modified oligonucleotides and methods of use |
Non-Patent Citations (2)
| Title |
|---|
| KIKUCHI, R. et al.,Efficient Bit-Decomposition and Modulus-Conversion Protocols with an Honest Majority,Cryptology ePrint Archive,Report 2018/387,[online],2018年04月,pp.1-19,URL:https://eprint.iacr.org/2018/387 |
| 加藤遼, 西出隆志, 吉浦裕 ,部分的に小さな法を用いたマルチパーティ計算のビット演算効率化,情報処理学会論文誌(ジャーナル) Vol.55 No.9 [online] ,2014年09月15日,第55巻 第9号,pp.1971-1991 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20240073008A1 (en) | 2024-02-29 |
| WO2022153358A1 (ja) | 2022-07-21 |
| JPWO2022153358A1 (ja) | 2022-07-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7554493B2 (ja) | 閾ボールトを生成する、コンピュータにより実施される方法 | |
| TWI797147B (zh) | 臨界數位簽章方法及系統 | |
| Goryczka et al. | A comprehensive comparison of multiparty secure additions with differential privacy | |
| US7770032B2 (en) | Secure logging for irrefutable administration | |
| TW201946412A (zh) | 用以移轉數位資產支配權之電腦實施方法及系統 | |
| AU2009201192B2 (en) | Incorporating shared randomness into distributed cryptography | |
| CN111615810B (zh) | 获取数字签名的数据的计算机实现方法和系统 | |
| WO2022022924A1 (en) | Generating shared private keys | |
| JP7517475B2 (ja) | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム | |
| JP2024532557A (ja) | 共有された暗号鍵の生成 | |
| JP7480857B2 (ja) | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム | |
| JP7582337B2 (ja) | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム | |
| JP7517478B2 (ja) | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム | |
| Aditia et al. | Certificate-less public key encryption for secure e-healthcare systems | |
| EP4470154A1 (en) | Generating shared private keys | |
| Lee et al. | An Efficient date-constraint hierarchical key management scheme with fast key validation checking for mobile agents in e-medicine system | |
| Yu et al. | Study on security enhancement technology for disaster tolerant system | |
| MXPA01004303A (en) | Incorporating shared randomness into distributed cryptography |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230711 |
|
| 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: 20240604 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240617 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7517475 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |




























