JP7452669B2 - 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム - Google Patents
秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム Download PDFInfo
- Publication number
- JP7452669B2 JP7452669B2 JP2022544975A JP2022544975A JP7452669B2 JP 7452669 B2 JP7452669 B2 JP 7452669B2 JP 2022544975 A JP2022544975 A JP 2022544975A JP 2022544975 A JP2022544975 A JP 2022544975A JP 7452669 B2 JP7452669 B2 JP 7452669B2
- Authority
- JP
- Japan
- Prior art keywords
- exponent
- secure
- secure computation
- redistribution
- calculation
- 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 37
- 238000004364 calculation method Methods 0.000 claims description 105
- 238000012937 correction Methods 0.000 claims description 9
- 238000000354 decomposition reaction Methods 0.000 claims description 5
- 238000007792 addition Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000010365 information processing Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000002708 enhancing 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
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49931—Modulo N reduction of final result
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/723—Modular exponentiation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Description
本発明は、秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラムに関するものである。
近年、秘密計算と呼ばれる技術の研究開発が盛んに行われている。秘密計算は、第三者に対して計算過程とその結果を秘密にしつつ所定の処理を実行する技術の一つである。秘密計算における代表的な技術の一つとして、マルチパーティ計算技術が挙げられる。マルチパーティ計算技術では、秘密にするデータを複数のサーバ(秘密計算サーバ装置)に分散配置し、秘密にしたまま当該データの任意の演算を実行する。なお、各秘密計算サーバ装置に分散配置したデータをシェアと呼ぶ。以降、特に断りがない限り、本書で「秘密計算」という語を用いた場合は、マルチパーティ計算技術を意味するものとする。
秘密計算の処理の一つとして、指数演算があり、秘密計算における指数演算には、大きく分けて二つがある。一つは、指数の値と底の値の両方を秘密にする方法であり、もう一つは、指数の値は秘密であるが底の値は秘密でない方法である。なお、組合せとしては、底の値は秘密であるが指数の値は秘密でない方法も存在し得るが、乗算の秘密計算から自明に導かれるので秘密計算における指数演算としての問題は生じない。
底の値は秘密でない指数演算の秘密計算であっても、実用上のメリットがある。例えば、底の値が素数である場合や2の冪である場合など、底の値を公開した上で秘密計算を行うことがある。例えば、特許文献1には、指数を秘密にした秘密計算の指数演算の例が記載されている。
Megha Byali, et al. FLASH: Fast and Robust Framework for Privacy-preserving Machine Learning, Proceedings on Privacy Enhancing Technologies 2020
Harsh Chaudhari, et al. Trident: Efficient 4PC Framework for Privacy Preserving Machine Learning, The Network and Distributed System Security Symposium (NDSS) 2020
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
ところで、秘密計算には、安全性の程度に種別があり、その代表的な安全性としてセミオネスト安全とマリシャス安全がある。プロトコルに従う範囲で可能な限り入力や計算過程の値に関する情報を得ようとする攻撃をセミオネスト攻撃と呼び、このセミオネスト攻撃に対する安全性が確保されていることをセミオネスト安全という。また、プロトコルを逸脱して情報を得ようとするだけでなく,計算結果を改ざんしようとする攻撃をマリシャス攻撃と呼び、このマリシャス攻撃に対する安全性が確保されていることをマリシャス安全という。
ここで、特許文献1に記載の指数演算の秘密計算は、基本的にセミオネスト安全であり、マリシャス攻撃がなされたときに確率的にそのことを検知することができたとしても、決定的な不正検知をすることができない。その理由は、特許文献1に記載の指数演算の秘密計算が、秘密にするデータを三つの秘密計算サーバ装置に分散配置する方式だからである。三つの秘密計算サーバ装置のうち一つが計算結果を改ざんした場合、残り二つの秘密計算サーバ装置が秘密性を維持した状態で計算結果の改ざんを検証することができない。決定的なマリシャス安全性を確保するためには少なくとも四つ以上の秘密計算サーバ装置を用いた秘密計算を必要とする(例えば、非特許文献1および2参照)。
本発明の目的は、上述した課題を鑑み、指数演算の秘密計算において決定的な不正検知をすることに寄与する秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラムを提供する。
本発明の第1の視点では、相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置を備え、秘密ではない底と秘密である指数との指数演算の秘密計算をする秘密計算システムであって、前記秘密計算サーバ装置のそれぞれが、前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散部と、前記指数が前記指数のシェアの加算に分解されており、前記再分散部にて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算部と、を有する秘密計算システムが提供される。
本発明の第2の視点では、相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置の一つであって、前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散部と、前記指数が前記指数のシェアの加算に分解されており、前記再分散部にて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算部と、を有する秘密計算サーバ装置が提供される。
本発明の第3の視点では、相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置を用いて、秘密ではない底と秘密である指数との指数演算の秘密計算をする秘密計算方法であって、前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散ステップと、前記指数が前記指数のシェアの加算に分解されており、前記再分散ステップにて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算ステップと、を有する秘密計算方法が提供される。
本発明の第4の視点では、相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置に、秘密ではない底と秘密である指数との指数演算の秘密計算を実行させる秘密計算プログラムであって、前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散ステップと、前記指数が前記指数のシェアの加算に分解されており、前記再分散ステップにて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算ステップと、を有する秘密計算プログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
本発明の各視点によれば、指数演算の秘密計算において決定的な不正検知をすることに寄与する秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラムを提供することができる。
以下、図面を参照しながら、本発明の実施形態について説明する。ただし、以下に説明する実施形態により本発明が限定されるものではない。また、各図面において、同一または対応する要素には適宜同一の符号を付している。さらに、図面は模式的なものであり、各要素の寸法の関係、各要素の比率などは、現実のものとは異なる場合があることに留意する必要がある。図面の相互間においても、互いの寸法の関係や比率が異なる部分が含まれている場合がある。
[第1の実施形態]
以下、図1、図2を参照して、第1の実施形態に係る秘密計算システムおよび秘密計算サーバ装置について説明する。
以下、図1、図2を参照して、第1の実施形態に係る秘密計算システムおよび秘密計算サーバ装置について説明する。
図1は、第1の実施形態における秘密計算システムの機能構成例を示すブロック図である。図1に示すように、第1の実施形態による秘密計算システム100は、第1の秘密計算サーバ装置100_1と第2の秘密計算サーバ装置100_2と第3の秘密計算サーバ装置100_3と第4の秘密計算サーバ装置100_4とを備えている。第1の秘密計算サーバ装置100_1、第2の秘密計算サーバ装置100_2、第3の秘密計算サーバ装置100_3、および第4の秘密計算サーバ装置100_4は、それぞれが互いにネットワーク経由で通信可能に接続されている。
第1~第4の秘密計算サーバ装置100_i(i=1,2,3,4)を備える秘密計算システム100においては、第1~第4の秘密計算サーバ装置100_i(i=1,2,3,4)の内のいずれかの秘密計算サーバ装置100_iが入力した値に対し、その入力や計算過程の値を知られることなく目的のシェアを計算し、その計算結果を第1~第3の秘密計算サーバ装置100_i(i=1,2,3)に分散して記憶することができる。
また、第1~第4の秘密計算サーバ装置100_i(i=1,2,3,4)を備える秘密計算システム100においては、第1~第4の秘密計算サーバ装置100_i(i=1,2,3,4)に分散して記憶されているシェアに対し、その計算過程の値を知られることなく目的のシェアを計算し、その計算結果を第1~第3の秘密計算サーバ装置100_i(i=1,2,3,4)に分散して記憶することができる。
なお、上記計算結果のシェアは、第1~第4の秘密計算サーバ装置100_1~100_4とシェアを送受信することで、復元してもよい。あるいは、第1~第4の秘密計算サーバ装置100_1~100_4ではない外部にシェアを送信することで、復号してもよい。
さらに、第1~第4の秘密計算サーバ装置100_i(i=1,2,3,4)を備える秘密計算システム100においては、第1~第4の秘密計算サーバ装置100_i(i=1,2,3,4)が相互に送受信する情報に不正(例えば改ざん)があるか否かを検証することができる。例えば、第4の秘密計算サーバ装置100_4が第1~第3の秘密計算サーバ装置100_i(i=1,2,3)に送信する情報に不正があるか否かを、第1~第3の秘密計算サーバ装置100_i(i=1,2,3)の間で秘密を維持しながら検証することができる。
第1~第3の秘密計算サーバ装置100_i(i=1,2,3)は、第4の秘密計算サーバ装置100_4から受け取った情報を第1~第3の秘密計算サーバ装置100_i(i=1,2,3)のそれぞれが保持しているシェアと組み合わせた計算結果を第1~第3の秘密計算サーバ装置100_i(i=1,2,3)の間で照らし合わせることで、第4の秘密計算サーバ装置100_4から受け取った情報に不正(例えば改ざん)があるか否かを検証することができる。
例えば上記のように、第1~第4の秘密計算サーバ装置100_i(i=1,2,3,4)が相互に送受信する情報に不正(例えば改ざん)があるか否かを検証することができるシェアの構成として以下の構成を採用することができる。
上記のようにシェアを構成すると、非特許文献1に記載の方法にしたがって、通常の加算および乗算と共に、第1~第4の秘密計算サーバ装置100_i(i=1,2,3,4)が相互に送受信する情報に不正(例えば改ざん)があるか否かを検証することができる。
そこで、次に考えるのが指数演算である。すなわち、ここで考える指数演算は、秘密ではない底と秘密である指数との指数演算の秘密計算であるので、秘密分散されていないbと秘密分散されている[x]qとを入力とし、[bx]qを得る演算である。
つまり、各b^{-σx
1}, b^{-σx
2}, b^{μx
1}, b^{μx
2}が得られればbxも計算できることになる。ただし、{-σx
1, -σx
2, μx
1, μx
2}は、第1~第4の秘密計算サーバ装置100_i(i=1,2,3,4)に分散して保持されているシェアを構成する値であるので、同時に第1~第4の秘密計算サーバ装置100_i(i=1,2,3,4)のうち一つに揃うことはない。また、求めたいものは、bxを秘密計算で得るためのシェア[bx]qである。
そこで、本実施形態では、図2に示すように、第1~第4の秘密計算サーバ装置100_i(i=1,2,3,4)が、それぞれの内部で完結した演算によって、少なくとも指数xのシェアを含む入力に対して再分散を出力する再分散部101_i(i=1,2,3,4)と、再分散部101_i(i=1,2,3,4)にて再分散して得られたシェアを用いて乗算を行うことで指数演算の秘密計算をする乗算部102_i(i=1,2,3,4)とを備える。
そして、再分散部101_i(i=1,2,3,4)は、以下のように、秘密分散されていない底bと秘密分散されている指数[x]qとを入力とし、底bに関する指数[x]qの指数演算の結果[bx]qの再分散を出力する。
も同様に定める。
も同様に定める。
上記定義から解るように、この再分散の演算では自己が保有しているシェア以外を0として扱う。つまり、自己が保有していないシェアを得るために他の秘密計算サーバ装置と通信を行う必要がない。この再分散は、秘密計算サーバ装置のそれぞれで完結した演算であり、このような再分散を局所的再分散(local reshare)と呼ぶことがある。
このように、本実施形態では、第1~第4の秘密計算サーバ装置100_i(i=1,2,3,4)のそれぞれが、第1~第4の秘密計算サーバ装置100_i(i=1,2,3,4)のそれぞれの内部で完結した演算によって、少なくとも指数xのシェアを含む入力に対して再分散を出力する再分散部101_i(i=1,2,3,4)と、指数xが指数のシェアの加算に分解されており、再分散部101_i(i=1,2,3,4)にて再分散して得られたシェアを用いて乗算を行うことで指数演算の秘密計算をする乗算部102_i(i=1,2,3,4)とを備えることで、秘密分散されていないbと秘密分散されている[x]qとを入力とし、[bx]qを得る指数演算を行うことができる。
また、秘密計算システム100が第1~第4の秘密計算サーバ装置100_i(i=1,2,3,4)を備えており、第1~第4の秘密計算サーバ装置100_i(i=1,2,3,4)が相互に送受信する情報に不正(例えば改ざん)があるか否かを検証することができるので、指数演算の秘密計算において決定的な不正検知をすることに寄与することができる。
[第2の実施形態]
次に、第1の実施形態で説明した指数演算の秘密計算をより具体化した実施形態について説明する。第1の実施形態では、指数演算を単純に積に分解しているが、それだけでは不十分である場合もある。例えば、法qが素数pである場合、フェルマーの小定理を用いると、bx=bx’+kq = bx’+k mod qとなる。すると、指数xが法qを超えた場合、指数演算の結果の値bxにb-1を乗する必要がある。第2の実施形態では、法qが素数pである場合(q=pの場合)の構成例について説明する。
次に、第1の実施形態で説明した指数演算の秘密計算をより具体化した実施形態について説明する。第1の実施形態では、指数演算を単純に積に分解しているが、それだけでは不十分である場合もある。例えば、法qが素数pである場合、フェルマーの小定理を用いると、bx=bx’+kq = bx’+k mod qとなる。すると、指数xが法qを超えた場合、指数演算の結果の値bxにb-1を乗する必要がある。第2の実施形態では、法qが素数pである場合(q=pの場合)の構成例について説明する。
図3は、第2の実施形態における秘密計算システムの機能構成例を示すブロック図である。図3に示すように、第2の実施形態による秘密計算システム200は、第1の秘密計算サーバ装置200_1と第2の秘密計算サーバ装置200_2と第3の秘密計算サーバ装置200_3と第4の秘密計算サーバ装置200_4とを備えている。第1の秘密計算サーバ装置200_1、第2の秘密計算サーバ装置200_2、第3の秘密計算サーバ装置200_3、および第4の秘密計算サーバ装置200_4は、それぞれが互いにネットワーク経由で通信可能に接続されている。
そして第1の実施形態と同様に秘密計算ができると共に、第1~第4の秘密計算サーバ装置200_i(i=1,2,3,4)を備える秘密計算システム200においては、第1~第4の秘密計算サーバ装置200_i(i=1,2,3,4)が相互に送受信する情報に不正(例えば改ざん)があるか否かを検証することができる。
また、図4に示すように、第1~第4の秘密計算サーバ装置200_i(i=1,2,3,4)が、それぞれの内部で完結した演算によって、少なくとも指数xのシェアを含む入力に対して再分散を出力する再分散部201_i(i=1,2,3,4)と、再分散部201_i(i=1,2,3,4)にて再分散して得られたシェアを用いて乗算を行うことで指数演算の秘密計算をする乗算部202_i(i=1,2,3,4)とを備えている。
その上でさらに、第1~第4の秘密計算サーバ装置200_i(i=1,2,3,4)が、指数xが法pを超えるか否かを判断する指数剰余判定部203_i(i=1,2,3,4)と、指数剰余判定部203_i(i=1,2,3,4)の結果に基づいて値を補正する乗算を行う乗算補正部204_i(i=1,2,3,4)とを備える。
ここで、既に説明したように、pを素数とし、フェルマーの小定理を用いると、bx=bx’+kp = bx’+k mod pとなるのであった。一方、x=-σx
1-σx
2+μx
1+μx
2であったことを考えると、k∈{0,1,2,3}である。つまり、指数xは高々3回法pを超える可能性がある。
指数剰余判定部203_i(i=1,2,3,4)は、指数のシェアの加算の分解に対して、指数が法を超えるか否かを判断する。具体的には、-σx
1-σx
2と(-σx
1-σx
2)+μx
1と((-σx
1-σx
2)+μx
1)+μx
2の3回の加算について指数が法を超えるか否かを判断する。
指数が法を超えるか否かを判断する方法は、法pが素数であることに注意すれば、法pを超えると偶奇が反転することに着目すればよいことが解る。例えば、a0が偶数でありa1が奇数の場合、(1)a0+a1が法を超えていれば、a0+a1は偶数である。一方、(1)a0+a1が法を超えていなければ、a0+a1は奇数である。そして、偶奇の反転は、最下位ビットの反転で判断することができる。
(秘密計算方法)
以下、秘密計算方法の詳細を説明する。図5は、秘密計算方法の手順の概略を示すフローチャートである。
以下、秘密計算方法の詳細を説明する。図5は、秘密計算方法の手順の概略を示すフローチャートである。
ステップA1では、再分散を行う。つまり、底bと指数xのシェアを含む入力に対して底bに関する指数xの指数演算の結果bxの再分散と、指数xのシェアを含む入力に対して指数xの最下位ビットの再分散とを計算する。具体的には、以下のような計算を行う。
ステップA2では、指数剰余判定を行う。つまり、指数xが法を超えるか否かを判断する。このために以下のような計算を行う。
そこで、先述した方針に従い、指数xが法pを超えたか否かを、-σx
1-σx
2と(-σx
1-σx
2)+μx
1と((-σx
1-σx
2)+μx
1)+μx
2の3回の加算について指数が法を超えるか否かで判断する。
(1)-σx
1-σx
2が法を超えたか否かを判断する。なお、以下の計算においてLSB(least significant bit)は最下位ビットを意味する。そして、[k0]pは-σx
1-σx
2が法pを超えた場合に1となり、超えない場合に0となるように設計された変数である。偶奇の反転を判断するために、途中論理演算が表れるが、最下位ビットの計算に帰着する。
(2)(-σx
1-σx
2)+μx
1が法を超えたか否かを判断する。以下の計算において、[k1]pは(-σx
1-σx
2)+μx
1が法pを超えた場合に1となり超えない場合に0となるように設計された変数である。
(3)((-σx
1-σx
2)+μx
1)+μx
2が法を超えたか否かを判断する。以下の計算において、[k2]pは(-σx
1-σx
2)+μx
1が法pを超えた場合に1となり、超えない場合に0となるように設計された変数である。
ステップA3では、乗算補正を行う。つまり、ステップA2における指数剰余判定の結果に基づいて値を補正する。上記のように計算された,[k0]p,[k1]p,[k2]pを用いて、以下のように[res0]pを補正する。
[k0]p,[k1]p,[k2]pは、指数が法を超えた場合に1となり、超えない場合に0となるので、上記式の右辺は、指数が法を超えた場合にb-1が掛けられる式になっている。
ステップA4では、補正された[res3]pを底bに関する指数xの指数演算の結果[bx]pとして出力する。
このように、本実施形態では、法pが素数の場合でも、指数xが法pを超えるか否かを判断し、秘密分散されていない底bと秘密分散されている指数[x]pとを入力とし、[bx]pを得る指数演算を行うことができる。
また、秘密計算システム200が第1~第4の秘密計算サーバ装置200_i(i=1,2,3,4)を備えており、第1~第4の秘密計算サーバ装置200_i(i=1,2,3,4)が相互に送受信する情報に不正(例えば改ざん)があるか否かを検証することができるので、指数演算の秘密計算において決定的な不正検知をすることに寄与することができる。
[第3の実施形態]
次に、第2の実施形態で説明した指数演算の秘密計算を変形した実施形態について説明する。第2の実施形態では指数が法を超える可能性が3回あったが、底と指数の法が異なる場合は条件判定の数を減らすことができる場合がある。
次に、第2の実施形態で説明した指数演算の秘密計算を変形した実施形態について説明する。第2の実施形態では指数が法を超える可能性が3回あったが、底と指数の法が異なる場合は条件判定の数を減らすことができる場合がある。
例えば、底の法p’と指数の法q’をp’=3q’+1を満たす素数とし、[bx]p’ ← exp(b,[x]q’)を実行することを考える。このとき、-σx
1, -σx
2, μx
1, μx
2∈[0, q’-1]かつb∈[0, p’-1]であれば、x=-σx
1-σx
2+μx
1+μx
2が法を超えるのは1回に削減できる。
本実施形態は、第2の実施形態で説明した構成および計算の手順を踏襲することができるので、ここでは説明を省略するが、本実施形態においても秘密分散されていない底bと秘密分散されている指数[x]pとを入力とし、[bx]pを得る指数演算を行うことができる。また、本実施形態でも相互に送受信する情報に不正(例えば改ざん)があるか否かを検証することができるので、指数演算の秘密計算において決定的な不正検知をすることに寄与することができる。
[第4の実施形態]
次に、法が2のべき乗の場合の実施形態について説明する。法が2のべき乗の場合、すなわち、q=2mの場合もb∈Z2 mとして、秘密分散されていないbと秘密分散されている[x]qとを入力とし、以下のように[bx]qを得る指数演算を考えることができる。ただし、ここでは底bは奇数である場合のみを考える。
次に、法が2のべき乗の場合の実施形態について説明する。法が2のべき乗の場合、すなわち、q=2mの場合もb∈Z2 mとして、秘密分散されていないbと秘密分散されている[x]qとを入力とし、以下のように[bx]qを得る指数演算を考えることができる。ただし、ここでは底bは奇数である場合のみを考える。
この場合も、第1の実施形態と同様に、秘密分散されていない底bと秘密分散されている指数[x]qとを入力とし、底bに関する指数[x]qの指数演算の結果[bx]qの再分散を定めることができる。
ここで、本実施形態の場合(法が2のべき乗の場合)も、法が素数である場合と同様に、指数xが法を超えた場合に補正をする必要があるか否かを検討する。
本実施形態は、第1の実施形態で説明した構成および計算の手順を踏襲することができるので、ここでは説明を省略するが、本実施形態においても秘密分散されていない底bと秘密分散されている指数[x]qとを入力とし、[bx]qを得る指数演算を行うことができる。また、本実施形態でも相互に送受信する情報に不正(例えば改ざん)があるか否かを検証することができるので、指数演算の秘密計算において決定的な不正検知をすることに寄与することができる。
[ハードウェア構成例]
図6は、秘密計算サーバ装置のハードウェア構成例を示す図である。すなわち、図6に示すハードウェア構成例は、秘密計算サーバ装置100_i,200_i(i=1,2,3,4)のハードウェア構成例である。図6に示すハードウェア構成を採用した情報処理装置(コンピュータ)は、上記説明した秘密計算方法をプログラムとして実行することで、秘密計算サーバ装置100_i,200_i(i=1,2,3,4)の各機能を実現することを可能にする。
図6は、秘密計算サーバ装置のハードウェア構成例を示す図である。すなわち、図6に示すハードウェア構成例は、秘密計算サーバ装置100_i,200_i(i=1,2,3,4)のハードウェア構成例である。図6に示すハードウェア構成を採用した情報処理装置(コンピュータ)は、上記説明した秘密計算方法をプログラムとして実行することで、秘密計算サーバ装置100_i,200_i(i=1,2,3,4)の各機能を実現することを可能にする。
ただし、図6に示すハードウェア構成例は、秘密計算サーバ装置100_i,200_i(i=1,2,3,4)の各機能を実現するハードウェア構成の一例であり、秘密計算サーバ装置100_i,200_i(i=1,2,3,4)のハードウェア構成を限定する趣旨ではない。秘密計算サーバ装置100_i,200_i(i=1,2,3,4)は、図6に示さないハードウェアを含むことができる。
図6に示すように、秘密計算サーバ装置100_i,200_i(i=1,2,3,4)が採用し得るハードウェア構成10は、例えば内部バスにより相互に接続される、CPU(Central Processing Unit)11、主記憶装置12、補助記憶装置13、およびIF(Interface)部14を備える。
CPU11は、秘密計算サーバ装置100_i,200_i(i=1,2,3,4)が実行する秘密計算プログラムに含まれる各指令を実行する。主記憶装置12は、例えばRAM(Random Access Memory)であり、秘密計算サーバ装置100_i,200_i(i=1,2,3,4)が実行する秘密計算プログラムなどの各種プログラムなどをCPU11が処理するために一時記憶する。
補助記憶装置13は、例えば、HDD(Hard Disk Drive)であり、秘密計算サーバ装置100_i,200_i(i=1,2,3,4)が実行する秘密計算プログラムなどの各種プログラムなどを中長期的に記憶しておくことが可能である。秘密計算プログラムなどの各種プログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することができる。補助記憶装置13は、非一時的なコンピュータ可読記録媒体に記録された秘密計算プログラムなどの各種プログラムを中長期的に記憶することに利用することが可能である。IF部14は、秘密計算サーバ装置100_i,200_i(i=1,2,3,4)間の入出力に関するインターフェイスを提供する。
上記のようなハードウェア構成10を採用した情報処理装置は、先述した秘密計算方法をプログラムとして実行することで、秘密計算サーバ装置100_i,200_i(i=1,2,3,4)の各機能を実現する。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置を備え、秘密ではない底と秘密である指数との指数演算の秘密計算をする秘密計算システムであって、
前記秘密計算サーバ装置のそれぞれが、
前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散部と、
前記指数が前記指数のシェアの加算に分解されており、前記再分散部にて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算部と、
を有する秘密計算システム。
[付記2]
前記秘密計算サーバ装置のそれぞれが
前記指数が法を超えるか否かを判断する指数剰余判定部と、
前記指数剰余判定部の結果に基づいて値を補正する乗算を行う乗算補正部と、
をさらに備える付記1に記載の秘密計算システム。
[付記3]
前記指数剰余判定部は、前記指数のシェアの加算の分解に対して、各回の加算において前記指数の最下位ビットの反転を判断することで、前記指数が法を超えるか否かを判断する、付記2に記載の秘密計算システム。
[付記4]
前記再分散部は、前記底と前記指数のシェアを含む入力に対して前記底に関する前記指数の指数演算の再分散と、前記指数のシェアを含む入力に対して前記指数の最下位ビットの再分散とを出力する付記3に記載の秘密計算システム。
[付記5]
相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置の一つであって、
前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも指数のシェアを含む入力に対して再分散を出力する再分散部と、
前記指数が前記指数のシェアの加算に分解されており、前記再分散部にて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算部と、
を有する秘密計算サーバ装置。
[付記6]
相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置を用いて、秘密ではない底と秘密である指数との指数演算の秘密計算をする秘密計算方法であって、
前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散ステップと、
前記指数が前記指数のシェアの加算に分解されており、前記再分散ステップにて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算ステップと、
を有する秘密計算方法。
[付記7]
前記指数が法を超えるか否かを判断する指数剰余判定ステップと、
前記指数剰余判定部の結果に基づいて値を補正する乗算を行う乗算補正ステップと、
をさらに有する付記6に記載の秘密計算方法。
[付記8]
前記指数剰余判定ステップは、前記指数のシェアの加算の分解に対して、各回の加算において前記指数の最下位ビットの反転を判断することで、前記指数が法を超えるか否かを判断する付記7に記載の秘密計算方法。
[付記9]
前記再分散ステップは、前記底と前記指数のシェアを含む入力に対して前記底に関する前記指数の指数演算の再分散と、前記指数のシェアを含む入力に対して前記指数の最下位ビットの再分散とを出力する付記8に記載の秘密計算方法。
[付記10]
相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置に、秘密ではない底と秘密である指数との指数演算の秘密計算を実行させる秘密計算プログラムであって、
前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散処理と、
前記指数が前記指数のシェアの加算に分解されており、前記再分散処理にて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算処理と、
を有する秘密計算プログラム。
[付記1]
相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置を備え、秘密ではない底と秘密である指数との指数演算の秘密計算をする秘密計算システムであって、
前記秘密計算サーバ装置のそれぞれが、
前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散部と、
前記指数が前記指数のシェアの加算に分解されており、前記再分散部にて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算部と、
を有する秘密計算システム。
[付記2]
前記秘密計算サーバ装置のそれぞれが
前記指数が法を超えるか否かを判断する指数剰余判定部と、
前記指数剰余判定部の結果に基づいて値を補正する乗算を行う乗算補正部と、
をさらに備える付記1に記載の秘密計算システム。
[付記3]
前記指数剰余判定部は、前記指数のシェアの加算の分解に対して、各回の加算において前記指数の最下位ビットの反転を判断することで、前記指数が法を超えるか否かを判断する、付記2に記載の秘密計算システム。
[付記4]
前記再分散部は、前記底と前記指数のシェアを含む入力に対して前記底に関する前記指数の指数演算の再分散と、前記指数のシェアを含む入力に対して前記指数の最下位ビットの再分散とを出力する付記3に記載の秘密計算システム。
[付記5]
相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置の一つであって、
前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも指数のシェアを含む入力に対して再分散を出力する再分散部と、
前記指数が前記指数のシェアの加算に分解されており、前記再分散部にて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算部と、
を有する秘密計算サーバ装置。
[付記6]
相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置を用いて、秘密ではない底と秘密である指数との指数演算の秘密計算をする秘密計算方法であって、
前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散ステップと、
前記指数が前記指数のシェアの加算に分解されており、前記再分散ステップにて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算ステップと、
を有する秘密計算方法。
[付記7]
前記指数が法を超えるか否かを判断する指数剰余判定ステップと、
前記指数剰余判定部の結果に基づいて値を補正する乗算を行う乗算補正ステップと、
をさらに有する付記6に記載の秘密計算方法。
[付記8]
前記指数剰余判定ステップは、前記指数のシェアの加算の分解に対して、各回の加算において前記指数の最下位ビットの反転を判断することで、前記指数が法を超えるか否かを判断する付記7に記載の秘密計算方法。
[付記9]
前記再分散ステップは、前記底と前記指数のシェアを含む入力に対して前記底に関する前記指数の指数演算の再分散と、前記指数のシェアを含む入力に対して前記指数の最下位ビットの再分散とを出力する付記8に記載の秘密計算方法。
[付記10]
相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置に、秘密ではない底と秘密である指数との指数演算の秘密計算を実行させる秘密計算プログラムであって、
前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散処理と、
前記指数が前記指数のシェアの加算に分解されており、前記再分散処理にて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算処理と、
を有する秘密計算プログラム。
なお、引用した上記の特許文献及び非特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択(部分的削除を含む)が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。さらに、上記引用した文献の各開示事項は、必要に応じ、本発明の趣旨に則り、本発明の開示の一部として、その一部又は全部を、本書の記載事項と組み合わせて用いることも、本願の開示事項に含まれるものと、みなされる。
100,200 秘密計算システム
100_i,200_i 秘密計算サーバ装置
101_i,201_i 再分散部
102_i,202_i 乗算部
203_i 指数剰余判定部
204_i 乗算補正部
10 ハードウェア構成
11 CPU(Central Processing Unit)
12 主記憶装置
13 補助記憶装置
14 IF(Interface)部
100_i,200_i 秘密計算サーバ装置
101_i,201_i 再分散部
102_i,202_i 乗算部
203_i 指数剰余判定部
204_i 乗算補正部
10 ハードウェア構成
11 CPU(Central Processing Unit)
12 主記憶装置
13 補助記憶装置
14 IF(Interface)部
Claims (10)
- 相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置を備え、秘密ではない底と秘密である指数との指数演算の秘密計算をする秘密計算システムであって、
前記秘密計算サーバ装置のそれぞれが、
前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散部と、
前記指数が前記指数のシェアの加算に分解されており、前記再分散部にて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算部と、
を有する秘密計算システム。 - 前記秘密計算サーバ装置のそれぞれが
前記指数が法を超えるか否かを判断する指数剰余判定部と、
前記指数剰余判定部の結果に基づいて値を補正する乗算を行う乗算補正部と、
をさらに備える請求項1に記載の秘密計算システム。 - 前記指数剰余判定部は、前記指数のシェアの加算の分解に対して、各回の加算において前記指数の最下位ビットの反転を判断することで、前記指数が法を超えるか否かを判断する、請求項2に記載の秘密計算システム。
- 前記再分散部は、前記底と前記指数のシェアを含む入力に対して前記底に関する前記指数の指数演算の再分散と、前記指数のシェアを含む入力に対して前記指数の最下位ビットの再分散とを出力する請求項3に記載の秘密計算システム。
- 相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置の一つであって、
前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも指数のシェアを含む入力に対して再分散を出力する再分散部と、
前記指数が前記指数のシェアの加算に分解されており、前記再分散部にて再分散して得られたシェアを用いて乗算を行うことで指数演算の秘密計算をする乗算部と、
を有する秘密計算サーバ装置。 - 相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置を用いて、秘密ではない底と秘密である指数との指数演算の秘密計算をする秘密計算方法であって、
前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散ステップと、
前記指数が前記指数のシェアの加算に分解されており、前記再分散ステップにて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算ステップと、
を有する秘密計算方法。 - 前記指数が法を超えるか否かを判断する指数剰余判定ステップと、
指数剰余判定部の結果に基づいて値を補正する乗算を行う乗算補正ステップと、
をさらに有する請求項6に記載の秘密計算方法。 - 前記指数剰余判定ステップは、前記指数のシェアの加算の分解に対して、各回の加算において前記指数の最下位ビットの反転を判断することで、前記指数が法を超えるか否かを判断する請求項7に記載の秘密計算方法。
- 前記再分散ステップは、前記底と前記指数のシェアを含む入力に対して前記底に関する前記指数の指数演算の再分散と、前記指数のシェアを含む入力に対して前記指数の最下位ビットの再分散とを出力する請求項8に記載の秘密計算方法。
- 相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置に、秘密ではない底と秘密である指数との指数演算の秘密計算を実行させる秘密計算プログラムであって、
前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散処理と、
前記指数が前記指数のシェアの加算に分解されており、前記再分散処理にて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算処理と、
を有する秘密計算プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/032229 WO2022044173A1 (ja) | 2020-08-26 | 2020-08-26 | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2022044173A1 JPWO2022044173A1 (ja) | 2022-03-03 |
JP7452669B2 true JP7452669B2 (ja) | 2024-03-19 |
Family
ID=80352819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022544975A Active JP7452669B2 (ja) | 2020-08-26 | 2020-08-26 | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230333813A1 (ja) |
JP (1) | JP7452669B2 (ja) |
WO (1) | WO2022044173A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018135566A1 (ja) | 2017-01-20 | 2018-07-26 | 日本電信電話株式会社 | 秘密計算システム、秘密計算装置、秘密計算方法、プログラム |
WO2018135511A1 (ja) | 2017-01-18 | 2018-07-26 | 日本電信電話株式会社 | 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム |
-
2020
- 2020-08-26 JP JP2022544975A patent/JP7452669B2/ja active Active
- 2020-08-26 WO PCT/JP2020/032229 patent/WO2022044173A1/ja active Application Filing
- 2020-08-26 US US18/023,317 patent/US20230333813A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018135511A1 (ja) | 2017-01-18 | 2018-07-26 | 日本電信電話株式会社 | 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム |
WO2018135566A1 (ja) | 2017-01-20 | 2018-07-26 | 日本電信電話株式会社 | 秘密計算システム、秘密計算装置、秘密計算方法、プログラム |
Also Published As
Publication number | Publication date |
---|---|
JPWO2022044173A1 (ja) | 2022-03-03 |
US20230333813A1 (en) | 2023-10-19 |
WO2022044173A1 (ja) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3850786B1 (en) | System and method for secure multi-party computation based blockchain transactions | |
JP4555859B2 (ja) | 認証システム、認証方法、証明装置、検証装置、それらのプログラム及び記録媒体 | |
Mandal et al. | Symmetric key image encryption using chaotic Rossler system | |
WO2020006319A1 (en) | Method and apparatus for obtaining input of secure multiparty computation protocol | |
US20230246825A1 (en) | Generating secret shares | |
Khedr et al. | Cryptographic accumulator-based scheme for critical data integrity verification in cloud storage | |
WO2020165932A1 (ja) | 情報処理装置、秘密計算方法及びプログラム | |
JP2021507615A (ja) | パスワード認証のための準同型暗号 | |
US20220413807A1 (en) | Secure random number generation system, secure computation apparatus, secure random number generation method, and program | |
KR20210018240A (ko) | 물리적 복제방지 기능을 이용해 암호 키를 온-보드로 생성하기 위한 방법 | |
Syam Kumar et al. | RSA-based dynamic public audit service for integrity verification of data storage in cloud computing using Sobol sequence | |
US9419789B2 (en) | Method and apparatus for scalar multiplication secure against differential power attacks | |
JP7452669B2 (ja) | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム | |
CN111475690B (zh) | 字符串的匹配方法和装置、数据检测方法、服务器 | |
US20190294821A1 (en) | Determining pseudonym values using tweak-based encryption | |
JP6933290B2 (ja) | 秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム | |
US10853502B1 (en) | Systems and methods for reducing computational difficulty of cryptographic operations | |
CN114244517A (zh) | 数据加密及签名方法、装置、计算机设备和存储介质 | |
US11399017B1 (en) | Quantum and classical cryptography (QCC) for data encryption and data decryption | |
Sreelaja et al. | An image edge based approach for image password encryption | |
JP7359212B2 (ja) | 秘密計算システム、秘密計算方法、および秘密計算プログラム | |
Inam et al. | Blockchain based medical image encryption using Arnold’s cat map in a cloud environment | |
Smriti et al. | Secure File Storage in Cloud Computing Using a Modified Cryptography Algorithm | |
JP6927332B2 (ja) | 検索装置、検索方法、プログラム、および記録媒体 | |
Kaur et al. | Data deduplication methods: a review |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230224 |
|
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: 20240206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240219 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7452669 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |