JP7452669B2 - 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム - Google Patents

秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム Download PDF

Info

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
Application number
JP2022544975A
Other languages
English (en)
Other versions
JPWO2022044173A1 (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 JPWO2022044173A1 publication Critical patent/JPWO2022044173A1/ja
Application granted granted Critical
Publication of JP7452669B2 publication Critical patent/JP7452669B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49931Modulo N reduction of final result
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/723Modular exponentiation
    • 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

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には、指数を秘密にした秘密計算の指数演算の例が記載されている。
国際公開第2020/152831号
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の実施形態における秘密計算サーバ装置の機能構成例を示すブロック図である。 図3は、第2の実施形態における秘密計算システムの機能構成例を示すブロック図である。 図4は、第2の実施形態における秘密計算サーバ装置の機能構成例を示すブロック図である。 図5は、秘密計算方法の手順の概略を示すフローチャートである。 図6は、秘密計算サーバ装置のハードウェア構成例を示す図である。
以下、図面を参照しながら、本発明の実施形態について説明する。ただし、以下に説明する実施形態により本発明が限定されるものではない。また、各図面において、同一または対応する要素には適宜同一の符号を付している。さらに、図面は模式的なものであり、各要素の寸法の関係、各要素の比率などは、現実のものとは異なる場合があることに留意する必要がある。図面の相互間においても、互いの寸法の関係や比率が異なる部分が含まれている場合がある。
[第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)が相互に送受信する情報に不正(例えば改ざん)があるか否かを検証することができるシェアの構成として以下の構成を採用することができる。
各参加者 Pi(i=0,1,2,3) に対する x∈Zq のシェアを以下のように定める。
Figure 0007452669000001

Figure 0007452669000002

Figure 0007452669000003

Figure 0007452669000004

Figure 0007452669000005

Figure 0007452669000006

Figure 0007452669000007

Figure 0007452669000008

Figure 0007452669000009
上記のようにシェアを構成すると、非特許文献1に記載の方法にしたがって、通常の加算および乗算と共に、第1~第4の秘密計算サーバ装置100_i(i=1,2,3,4)が相互に送受信する情報に不正(例えば改ざん)があるか否かを検証することができる。
そこで、次に考えるのが指数演算である。すなわち、ここで考える指数演算は、秘密ではない底と秘密である指数との指数演算の秘密計算であるので、秘密分散されていないbと秘密分散されている[x]qとを入力とし、[bx]qを得る演算である。
Figure 0007452669000010
ここで、x=-σx 1x 2x 1x 2 mod qであることを考えると、以下のようにbxは分解することができる。
Figure 0007452669000011
つまり、各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の再分散を出力する。
Figure 0007452669000012

Figure 0007452669000013

Figure 0007452669000014
も同様に定める。
上記定義から解るように、この再分散の演算では自己が保有しているシェア以外を0として扱う。つまり、自己が保有していないシェアを得るために他の秘密計算サーバ装置と通信を行う必要がない。この再分散は、秘密計算サーバ装置のそれぞれで完結した演算であり、このような再分散を局所的再分散(local reshare)と呼ぶことがある。
一方、乗算部102_i(i=1,2,3,4)は、再分散部101_i(i=1,2,3,4)にて再分散して得られたシェアを用いて、以下のように底bに関する指数[x]qの指数演算の結果[bx]qを得る。
Figure 0007452669000015
このように、本実施形態では、第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の場合)の構成例について説明する。
図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)とを備える。
本実施形態においてもシェアの構成は、第1の実施形態と同じである。すなわち、各参加者 Pi(i=0,1,2,3) に対する x∈Zq のシェアを以下のように定める。
Figure 0007452669000016

Figure 0007452669000017

Figure 0007452669000018

Figure 0007452669000019

Figure 0007452669000020

Figure 0007452669000021

Figure 0007452669000022
ここで、既に説明したように、pを素数とし、フェルマーの小定理を用いると、bx=bx’+kp = bx’+k mod pとなるのであった。一方、x=-σx 1x 2x 1x 2であったことを考えると、k∈{0,1,2,3}である。つまり、指数xは高々3回法pを超える可能性がある。
指数剰余判定部203_i(i=1,2,3,4)は、指数のシェアの加算の分解に対して、指数が法を超えるか否かを判断する。具体的には、-σx 1x 2と(-σx 1x 2)+μx 1と((-σx 1x 2)+μx 1)+μx 2の3回の加算について指数が法を超えるか否かを判断する。
指数が法を超えるか否かを判断する方法は、法pが素数であることに注意すれば、法pを超えると偶奇が反転することに着目すればよいことが解る。例えば、a0が偶数でありa1が奇数の場合、(1)a0+a1が法を超えていれば、a0+a1は偶数である。一方、(1)a0+a1が法を超えていなければ、a0+a1は奇数である。そして、偶奇の反転は、最下位ビットの反転で判断することができる。
(秘密計算方法)
以下、秘密計算方法の詳細を説明する。図5は、秘密計算方法の手順の概略を示すフローチャートである。
ステップA1では、再分散を行う。つまり、底bと指数xのシェアを含む入力に対して底bに関する指数xの指数演算の結果bxの再分散と、指数xのシェアを含む入力に対して指数xの最下位ビットの再分散とを計算する。具体的には、以下のような計算を行う。
Figure 0007452669000023

Figure 0007452669000024

Figure 0007452669000025
も同様に定める。

Figure 0007452669000026

Figure 0007452669000027
についても上記同様に定める。

Figure 0007452669000028

Figure 0007452669000029
についても上記同様に定める。
ステップA2では、指数剰余判定を行う。つまり、指数xが法を超えるか否かを判断する。このために以下のような計算を行う。
ステップA1における再分散の結果を用いて、以下の計算をする。なお、以下の値は指数演算の結果のシェアを与えているように見えるが、先述したように指数xが法を超える場合に適切な値を与えない。
Figure 0007452669000030
そこで、先述した方針に従い、指数xが法pを超えたか否かを、-σx 1x 2と(-σx 1x 2)+μx 1と((-σx 1x 2)+μx 1)+μx 2の3回の加算について指数が法を超えるか否かで判断する。
(1)-σx 1x 2が法を超えたか否かを判断する。なお、以下の計算においてLSB(least significant bit)は最下位ビットを意味する。そして、[k0]pは-σx 1x 2が法pを超えた場合に1となり、超えない場合に0となるように設計された変数である。偶奇の反転を判断するために、途中論理演算が表れるが、最下位ビットの計算に帰着する。
Figure 0007452669000031

Figure 0007452669000032

Figure 0007452669000033
(2)(-σx 1x 2)+μx 1が法を超えたか否かを判断する。以下の計算において、[k1]pは(-σx 1x 2)+μx 1が法pを超えた場合に1となり超えない場合に0となるように設計された変数である。
Figure 0007452669000034

Figure 0007452669000035
(3)((-σx 1x 2)+μx 1)+μx 2が法を超えたか否かを判断する。以下の計算において、[k2]pは(-σx 1x 2)+μx 1が法pを超えた場合に1となり、超えない場合に0となるように設計された変数である。
Figure 0007452669000036

Figure 0007452669000037
ステップA3では、乗算補正を行う。つまり、ステップA2における指数剰余判定の結果に基づいて値を補正する。上記のように計算された,[k0]p,[k1]p,[k2]pを用いて、以下のように[res0]pを補正する。
Figure 0007452669000038

Figure 0007452669000039

Figure 0007452669000040
[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回あったが、底と指数の法が異なる場合は条件判定の数を減らすことができる場合がある。
例えば、底の法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 1x 2x 1x 2が法を超えるのは1回に削減できる。
本実施形態は、第2の実施形態で説明した構成および計算の手順を踏襲することができるので、ここでは説明を省略するが、本実施形態においても秘密分散されていない底bと秘密分散されている指数[x]pとを入力とし、[bx]pを得る指数演算を行うことができる。また、本実施形態でも相互に送受信する情報に不正(例えば改ざん)があるか否かを検証することができるので、指数演算の秘密計算において決定的な不正検知をすることに寄与することができる。
[第4の実施形態]
次に、法が2のべき乗の場合の実施形態について説明する。法が2のべき乗の場合、すなわち、q=2mの場合もb∈Z2 mとして、秘密分散されていないbと秘密分散されている[x]qとを入力とし、以下のように[bx]qを得る指数演算を考えることができる。ただし、ここでは底bは奇数である場合のみを考える。
Figure 0007452669000041
この場合も、第1の実施形態と同様に、秘密分散されていない底bと秘密分散されている指数[x]qとを入力とし、底bに関する指数[x]qの指数演算の結果[bx]qの再分散を定めることができる。
Figure 0007452669000042

Figure 0007452669000043

Figure 0007452669000044
も同様に定める。
ここで、本実施形態の場合(法が2のべき乗の場合)も、法が素数である場合と同様に、指数xが法を超えた場合に補正をする必要があるか否かを検討する。
底bが奇数の場合、底bと法2mは互いに素になる。すると、オイラーの定理から以下の関係式が成り立つ。
Figure 0007452669000045

Figure 0007452669000046
つまり、指数が2mを超える場合も補正を加える必要がない。従って、上記再分散から下記計算を行うことで底bに関する指数[x]qの指数演算を行うことができる。
Figure 0007452669000047
本実施形態は、第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に示すハードウェア構成例は、秘密計算サーバ装置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台以上の秘密計算サーバ装置に、秘密ではない底と秘密である指数との指数演算の秘密計算を実行させる秘密計算プログラムであって、
前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散処理と、
前記指数が前記指数のシェアの加算に分解されており、前記再分散処理にて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算処理と、
を有する秘密計算プログラム。
なお、引用した上記の特許文献及び非特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択(部分的削除を含む)が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。さらに、上記引用した文献の各開示事項は、必要に応じ、本発明の趣旨に則り、本発明の開示の一部として、その一部又は全部を、本書の記載事項と組み合わせて用いることも、本願の開示事項に含まれるものと、みなされる。
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)部

Claims (10)

  1. 相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置を備え、秘密ではない底と秘密である指数との指数演算の秘密計算をする秘密計算システムであって、
    前記秘密計算サーバ装置のそれぞれが、
    前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散部と、
    前記指数が前記指数のシェアの加算に分解されており、前記再分散部にて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算部と、
    を有する秘密計算システム。
  2. 前記秘密計算サーバ装置のそれぞれが
    前記指数が法を超えるか否かを判断する指数剰余判定部と、
    前記指数剰余判定部の結果に基づいて値を補正する乗算を行う乗算補正部と、
    をさらに備える請求項1に記載の秘密計算システム。
  3. 前記指数剰余判定部は、前記指数のシェアの加算の分解に対して、各回の加算において前記指数の最下位ビットの反転を判断することで、前記指数が法を超えるか否かを判断する、請求項2に記載の秘密計算システム。
  4. 前記再分散部は、前記底と前記指数のシェアを含む入力に対して前記底に関する前記指数の指数演算の再分散と、前記指数のシェアを含む入力に対して前記指数の最下位ビットの再分散とを出力する請求項3に記載の秘密計算システム。
  5. 相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置の一つであって、
    前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも指数のシェアを含む入力に対して再分散を出力する再分散部と、
    前記指数が前記指数のシェアの加算に分解されており、前記再分散部にて再分散して得られたシェアを用いて乗算を行うことで指数演算の秘密計算をする乗算部と、
    を有する秘密計算サーバ装置。
  6. 相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置を用いて、秘密ではない底と秘密である指数との指数演算の秘密計算をする秘密計算方法であって、
    前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散ステップと、
    前記指数が前記指数のシェアの加算に分解されており、前記再分散ステップにて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算ステップと、
    を有する秘密計算方法。
  7. 前記指数が法を超えるか否かを判断する指数剰余判定ステップと、
    指数剰余判定部の結果に基づいて値を補正する乗算を行う乗算補正ステップと、
    をさらに有する請求項6に記載の秘密計算方法。
  8. 前記指数剰余判定ステップは、前記指数のシェアの加算の分解に対して、各回の加算において前記指数の最下位ビットの反転を判断することで、前記指数が法を超えるか否かを判断する請求項7に記載の秘密計算方法。
  9. 前記再分散ステップは、前記底と前記指数のシェアを含む入力に対して前記底に関する前記指数の指数演算の再分散と、前記指数のシェアを含む入力に対して前記指数の最下位ビットの再分散とを出力する請求項8に記載の秘密計算方法。
  10. 相互にネットワークで接続した少なくとも4台以上の秘密計算サーバ装置に、秘密ではない底と秘密である指数との指数演算の秘密計算を実行させる秘密計算プログラムであって、
    前記秘密計算サーバ装置のそれぞれの内部で完結した演算によって、少なくとも前記指数のシェアを含む入力に対して再分散を出力する再分散処理と、
    前記指数が前記指数のシェアの加算に分解されており、前記再分散処理にて再分散して得られたシェアを用いて乗算を行うことで前記指数演算の秘密計算をする乗算処理と、
    を有する秘密計算プログラム。
JP2022544975A 2020-08-26 2020-08-26 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム Active JP7452669B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018135566A1 (ja) 2017-01-20 2018-07-26 日本電信電話株式会社 秘密計算システム、秘密計算装置、秘密計算方法、プログラム
WO2018135511A1 (ja) 2017-01-18 2018-07-26 日本電信電話株式会社 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
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