IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許7521622秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム
<>
  • 特許-秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム 図1
  • 特許-秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム 図2
  • 特許-秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム 図3
  • 特許-秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム 図4
  • 特許-秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム 図5
  • 特許-秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-16
(45)【発行日】2024-07-24
(54)【発明の名称】秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム
(51)【国際特許分類】
   G09C 1/00 20060101AFI20240717BHJP
【FI】
G09C1/00 650Z
【請求項の数】 10
(21)【出願番号】P 2022581064
(86)(22)【出願日】2021-02-10
(86)【国際出願番号】 JP2021004893
(87)【国際公開番号】W WO2022172345
(87)【国際公開日】2022-08-18
【審査請求日】2023-08-09
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100080816
【弁理士】
【氏名又は名称】加藤 朝道
(74)【代理人】
【識別番号】100098648
【弁理士】
【氏名又は名称】内田 潔人
(72)【発明者】
【氏名】土田 光
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2012-027587(JP,A)
【文献】濱田 浩気 ほか,秘匿計算上の一括写像アルゴリズム,電子情報通信学会論文誌A,日本,一般社団法人電子情報通信学会 THE INSTITUTE OF ELE,2013年04月01日,Vol.J96-A, No.4,pp.157-165
【文献】辻下 健太郎,パスワード付秘密分散法の秘匿検索への応用,研究報告インターネットと運用技術(IOT),日本,情報処理学会,2017年05月18日,Vol.2017-IOT-37, No.15,pp.1-8
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
相互にネットワークで接続した複数の秘密計算サーバ装置を備え、秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、前記第1の値と前記第2の値との積を秘密分散したシェアの秘密計算をする秘密計算システムであって、
前記秘密計算サーバ装置のそれぞれが、
前記第1の値が取り得る値のシェアと前記第2の値が取り得る値のシェアとの組み合わせに対する前記第1の値と前記第2の値との積を秘密分散したシェアのテーブルを記憶するテーブル記憶部と、
前記テーブルにおける前記第1の値が取り得る値のインデックスおよび前記第2の値が取り得る値のインデックスをシャッフルするテーブルシャッフル部と、
前記シャッフル後の前記テーブルのインデックスと前記第1の値および前記第2の値とが一致した前記テーブルの要素を選択する積算部と、
他の秘密計算サーバ装置から受信した複数のデータのうち、多数派が一致するデータを正しい値として採用する比較検証部と、
を有する秘密計算システム。
【請求項2】
前記秘密分散は、(N-3t)-out-of-N複製型秘密分散であり、
前記シャッフルは、前記秘密計算サーバ装置のうちt台におけるシェアの置換を、前記秘密計算サーバ装置のうち他の秘密計算サーバ装置がローカルに計算するミニシャッフルを合成したものである、請求項1に記載の秘密計算システム。
【請求項3】
前記比較検証部は、前記他の秘密計算サーバ装置から受信したシェアの置換のうち少なくともt+1個が一致するものを正しい値として採用する、請求項2に記載の秘密計算システム。
【請求項4】
前記他の秘密計算サーバ装置がローカルに計算するミニシャッフルは、前記t台の秘密計算サーバ装置が保持せず、前記他の秘密計算サーバ装置が共有しているシードから生成する疑似乱数を用いて構成される、請求項2または請求項3に記載の秘密計算システム。
【請求項5】
前記シャッフルは、N台の秘密計算サーバ装置のうち前記t台の秘密計算サーバ装置を選択する組み合わせの数の前記ミニシャッフルを合成したものである、請求項2から請求項4のいずれか1項に記載の秘密計算システム。
【請求項6】
前記比較検証部は、前記受信した複数のデータのハッシュ値が同一であることを判断して、前記受信した値が正しい値であることを判断する、請求項1から請求項4のいずれか1項に記載の秘密計算システム。
【請求項7】
秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、前記第1の値と前記第2の値との積を秘密分散したシェアの秘密計算をするために、相互にネットワークで接続した複数の秘密計算サーバ装置の一つであって、
前記第1の値が取り得る値のシェアと前記第2の値が取り得る値のシェアとの組み合わせに対する前記第1の値と前記第2の値との積を秘密分散したシェアのテーブルを記憶するテーブル記憶部と、
前記テーブルにおける前記第1の値が取り得る値のインデックスおよび前記第2の値が取り得る値のインデックスをシャッフルするテーブルシャッフル部と、
前記シャッフル後の前記テーブルのインデックスと前記第1の値および前記第2の値とが一致した前記テーブルの要素を選択する積算部と、
他の秘密計算サーバ装置から受信した複数のデータのうち、多数派が一致するデータを正しい値として採用する比較検証部と、
を有する秘密計算サーバ装置。
【請求項8】
相互にネットワークで接続した複数の秘密計算サーバ装置を備え、秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、前記第1の値と前記第2の値との積を秘密分散したシェアの秘密計算をする秘密計算方法であって、
前記秘密計算サーバ装置のそれぞれが、
前記第1の値が取り得る値のシェアと前記第2の値が取り得る値のシェアとの組み合わせに対する前記第1の値と前記第2の値との積を秘密分散したシェアのテーブルを記憶し、
前記テーブルにおける前記第1の値が取り得る値のインデックスおよび前記第2の値が取り得る値のインデックスをシャッフルし、
前記シャッフル後の前記テーブルのインデックスと前記第1の値および前記第2の値とが一致した前記テーブルの要素を選択し、
他の秘密計算サーバ装置から受信した複数のデータのうち、多数派が一致するデータを正しい値として採用する、秘密計算方法。
【請求項9】
前記秘密分散は、(N-3t)-out-of-N複製型秘密分散であり、
前記シャッフルは、前記秘密計算サーバ装置のうちt台におけるシェアの置換を、前記秘密計算サーバ装置のうち他の秘密計算サーバ装置がローカルに計算するミニシャッフルを合成したものである、請求項8に記載の秘密計算方法。
【請求項10】
秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、前記第1の値と前記第2の値との積を秘密分散したシェアの秘密計算をするために、相互にネットワークで接続した複数の秘密計算サーバ装置に処理をさせる秘密計算プログラムであって、
前記第1の値が取り得る値のシェアと前記第2の値が取り得る値のシェアとの組み合わせに対する前記第1の値と前記第2の値との積を秘密分散したシェアのテーブルを記憶し、
前記テーブルにおける前記第1の値が取り得る値のインデックスおよび前記第2の値が取り得る値のインデックスをシャッフルし、
前記シャッフル後の前記テーブルのインデックスと前記第1の値および前記第2の値とが一致した前記テーブルの要素を選択し、
他の秘密計算サーバ装置から受信した複数のデータのうち、多数派が一致するデータを正しい値として採用する、秘密計算プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラムに関するものである。
【背景技術】
【0002】
近年、秘密計算と呼ばれる技術の研究開発が盛んに行われている。秘密計算は、第三者に対して計算過程とその結果を秘密にしつつ所定の処理を実行する技術の一つである。秘密計算における代表的な技術の一つとして、マルチパーティ計算技術が挙げられる。マルチパーティ計算技術では、秘密にするデータを複数のサーバ(秘密計算サーバ装置)に分散配置し、秘密にした状態を維持しながら当該データの任意の演算を実行する。なお、各秘密計算サーバ装置に分散配置したデータをシェアと呼ぶ。以降、特に断りがない限り、本書で「秘密計算」という語を用いた場合は、マルチパーティ計算技術を意味するものとする。
【0003】
一般に秘密計算と呼ばれる技術の中にも、達成されている安全性の程度には高低がある。例えば、秘密計算を行うマルチパーティの参加者の中に不正者が紛れたとする。その場合に、不正者の存在を検知し処理を中断することができる秘密計算の技術と、たとえ不正者が存在しても処理を中断することなく正しい計算結果を得ることができる秘密計算の技術とでは、後者の方が前者よりも安全性が高い。そして、後者の安全性を満たす秘密計算はGuaranteed Output Delivery (GOD)と呼ばれ、これを実現する秘密計算の例も知られている(例えば、非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0004】
【文献】Byali, M., Chaudhari, H., Patra, A., & Suresh, A., FLASH: fast and robust framework for privacy-preserving machine learning. Proceedings on Privacy Enhancing Technologies, 2020(2), 459-480.
【発明の概要】
【発明が解決しようとする課題】
【0005】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
【0006】
ところで、秘密計算における安全性の評価には、達成できる安全性の効果だけではなく、前提条件も重要な意味を持つ。代表的な前提条件としてハッシュ関数のランダムオラクルモデルないしランダムオラクル仮定がある。
【0007】
ハッシュ関数は、入力に対し一意の出力を返す関数であるが、出力から入力を推定することが困難であるように構成されている。ここで、出力から入力を推定することが困難であるとはいうものの、絶対に不可能であるかというとその保証はできない。そこで、安全性の評価に際し、用いられているハッシュ関数が脆弱性を持たないという前提で安全性が評価される。この前提の安全性を「ランダムオラクルモデルにおいて安全」あるいは「ランダムオラクル仮定のもとで安全」という。そして、非特許文献1における秘密計算の安全性は「ランダムオラクルモデルにおいて安全」である。
【0008】
一方、「ランダムオラクルモデルにおいて安全」の対義語は、「標準モデルにおいて安全」である。すなわち、ハッシュ関数の出力から入力を推定することができたとしても、そのこと自体が秘密計算の脆弱性とはならないことをいう。当然のことながら、達成できる安全性が同じであれば、ランダムオラクルモデルにおける安全性よりも、標準モデルにおける安全性の方が高度な安全性が達成できることになる。
【0009】
また、非特許文献1における秘密計算は、参加者の数が4人に限定されており、適用場面も限定されてしまう。したがって、参加者の数に対しても柔軟性が求められている。
【0010】
本発明の目的は、上述した課題を鑑み、安全性と柔軟性を高めることに寄与する秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラムを提供することにある。
【課題を解決するための手段】
【0011】
本発明の第1の視点では、相互にネットワークで接続した複数の秘密計算サーバ装置を備え、秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、前記第1の値と前記第2の値との積を秘密分散したシェアの秘密計算をする秘密計算システムであって、前記秘密計算サーバ装置のそれぞれが、前記第1の値が取り得る値のシェアと前記第2の値が取り得る値のシェアとの組み合わせに対する前記第1の値と前記第2の値との積を秘密分散したシェアのテーブルを記憶するテーブル記憶部と、前記テーブルにおける前記第1の値が取り得る値のインデックスおよび前記第2の値が取り得る値のインデックスをシャッフルするテーブルシャッフル部と、前記シャッフル後の前記テーブルのインデックスと前記第1の値および前記第2の値とが一致した前記テーブルの要素を選択する積算部と、他の秘密計算サーバ装置から受信した複数のデータのうち、多数派が一致するデータを正しい値として採用する比較検証部と、を有する秘密計算システムが提供される。
【0012】
本発明の第2の視点では、秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、前記第1の値と前記第2の値との積を秘密分散したシェアの秘密計算をするために、相互にネットワークで接続した複数の秘密計算サーバ装置の一つであって、前記第1の値が取り得る値のシェアと前記第2の値が取り得る値のシェアとの組み合わせに対する前記第1の値と前記第2の値との積を秘密分散したシェアのテーブルを記憶するテーブル記憶部と、前記テーブルにおける前記第1の値が取り得る値のインデックスおよび前記第2の値が取り得る値のインデックスをシャッフルするテーブルシャッフル部と、前記シャッフル後の前記テーブルのインデックスと前記第1の値および前記第2の値とが一致した前記テーブルの要素を選択する積算部と、他の秘密計算サーバ装置から受信した複数のデータのうち、多数派が一致するデータを正しい値として採用する比較検証部と、を有する秘密計算サーバ装置が提供される。
【0013】
本発明の第3の視点では、相互にネットワークで接続した複数の秘密計算サーバ装置を備え、秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、前記第1の値と前記第2の値との積を秘密分散したシェアの秘密計算をする秘密計算方法であって、前記秘密計算サーバ装置のそれぞれが、前記第1の値が取り得る値のシェアと前記第2の値が取り得る値のシェアとの組み合わせに対する前記第1の値と前記第2の値との積を秘密分散したシェアのテーブルを記憶し、前記テーブルにおける前記第1の値が取り得る値のインデックスおよび前記第2の値が取り得る値のインデックスをシャッフルし、前記シャッフル後の前記テーブルのインデックスと前記第1の値および前記第2の値とが一致した前記テーブルの要素を選択し、他の秘密計算サーバ装置から受信した複数のデータのうち、多数派が一致するデータを正しい値として採用する、秘密計算方法が提供される。
【0014】
本発明の第4の視点では、秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、前記第1の値と前記第2の値との積を秘密分散したシェアの秘密計算をするために、相互にネットワークで接続した複数の秘密計算サーバ装置に処理をさせる秘密計算プログラムであって、前記第1の値が取り得る値のシェアと前記第2の値が取り得る値のシェアとの組み合わせに対する前記第1の値と前記第2の値との積を秘密分散したシェアのテーブルを記憶し、前記テーブルにおける前記第1の値が取り得る値のインデックスおよび前記第2の値が取り得る値のインデックスをシャッフルし、前記シャッフル後の前記テーブルのインデックスと前記第1の値および前記第2の値とが一致した前記テーブルの要素を選択し、他の秘密計算サーバ装置から受信した複数のデータのうち、多数派が一致するデータを正しい値として採用する、秘密計算プログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【0015】
本発明の各視点によれば、安全性と柔軟性を高めることに寄与する秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラムを提供することができる。
【図面の簡単な説明】
【0016】
図1図1は、第1の実施形態に係る秘密計算システムの機能構成例を示すブロック図である。
図2図2は、第1の実施形態における秘密計算サーバ装置の機能構成例を示すブロック図である。
図3図3は、第1の実施形態にかかる秘密計算方法の手順の概略を示すフローチャートである。
図4図4は、第2の実施形態に係る秘密計算システムの機能構成例を示すブロック図である。
図5図5は、第2の実施形態に係る秘密計算方法の手順の概略を示すフローチャートである。
図6図6は、秘密計算サーバ装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【0017】
以下、図面を参照しながら、本発明の実施形態について説明する。ただし、以下に説明する実施形態により本発明が限定されるものではない。また、各図面において、同一または対応する要素には適宜同一の符号を付している。さらに、図面は模式的なものであり、各要素の寸法の関係、各要素の比率などは、現実のものとは異なる場合があることに留意する必要がある。図面の相互間においても、互いの寸法の関係や比率が異なる部分が含まれている場合がある。
【0018】
[第1の実施形態]
以下、図1図2を参照して、第1の実施形態に係る秘密計算システムおよび秘密計算サーバ装置について説明する。第1の実施形態は、本発明の基本的なコンセプトのみを説明する実施形態である。
【0019】
図1は、第1の実施形態に係る秘密計算システムの機能構成例を示すブロック図である。図1に示すように、第1の実施形態に係る秘密計算システム100は、第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)を備えている(Nは自然数)。第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)は、それぞれが互いにネットワーク経由で通信可能に接続されている。図1中央の丸印は、ネットワークを示す。
【0020】
第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)を備える秘密計算システム100においては、第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)の内のいずれかの秘密計算サーバ装置110が入力した値に対し、その入力や計算過程の値を知られることなく目的のシェアを計算し、その計算結果を第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)に分散して記憶することができる。
【0021】
また、第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)を備える秘密計算システム100においては、第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)に分散して記憶されているシェアに対し、その計算過程の値を知られることなく目的のシェアを計算し、その計算結果を第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)に分散して記憶することができる。
【0022】
なお、上記計算結果のシェアは、第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)にシェアを送受信することで、復元してもよい。あるいは、第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)ではない外部にシェアを送信することで、復元してもよい。
【0023】
第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)のそれぞれは、独立した各参加者P(i=0,1,…,N-1)によって運営されている。さらに、第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)を備える秘密計算システム100においては、第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)のうち一部が不正者によって運営されている場合であっても、処理を停止することなく、正しい秘密計算を継続することができる。
【0024】
第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)のそれぞれは、例えば以下の構成を採用することができる。
【0025】
各参加者P(i=0,1,…,N-1)に対する、位数Lの剰余類環Zのシェアを以下のように定める。
【0026】
位数Lの剰余類環Zの元x∈Zの剰余類環Z上のシェアを以下のように表す。
[x]=([x]L,0,[x]L,1,…,[x]L,N-1
そして、位数Lの剰余類環Zの元x∈Z
x=x+x+…+xN-1 mod L
との関係を満たすように分解し、各参加者P(i=0,1,…,N-1)が分散保持する[x]L,iは、以下のようにする。すなわち、複製度は3t+1である。ただし、tは許容し得る不正者の数であり、t(3t+1)<Nを満たす自然数とする。
[x]L,i=(x,xi+1,…,xi+3t),ただし、x(N-1)+1=x
【0027】
このように各参加者P(i=0,1,…,N-1)が保持するシェア[x]L,0,[x]L,1,…,[x]L,N-1を定めると、各参加者P(i=0,1,…,N-1)は、自己が保持するシェア[x]L,0,[x]L,1,…,[x]L,N-1からはxを復元することはできない。一方、参加者P(i=0,1,…,N-1)のうち、少なくともt+1名が保持しているシェアを合わせるとxを復元することができるという秘密分散が実現する。なお、この秘密分散方式は、(N-3t)-out-of-N複製型秘密分散(Replicated Secret Sharing Scheme)と呼ばれている。
【0028】
ところで、この秘密分散方式では、xを復元する場合に限らず、例えば積算などの秘密計算を実行する際に、参加者Pが、自己が保持していないシェアの値を他の参加者Pから受信する状況が発生する。このとき、参加者Pが保持していないシェアの値は、他の参加者Pが保持しているはずなので、本来的には、他の参加者Pの誰かから参加者Pが保持していないシェアの値を受信して計算に用いることが予定されている。しかしながら、他の参加者Pの中に不正者が紛れたとすると、本来は受信したい値の代わりに別の値が送信されてくることが起こり得る。すると、誤った値に基づいて秘密計算を実行することになり、誤った計算を得ることになったり、そもそも計算自体を正常に実行することができなくなったりする。
【0029】
そこで、本実施形態では、図2に示すように、秘密計算サーバ装置110がテーブル記憶部111とテーブルシャッフル部112と積算部113と比較検証部114を備えることで、秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、第1の値と第2の値との積を秘密分散したシェアの秘密計算をする。図2は、第1の実施形態における秘密計算サーバ装置の機能構成例を示すブロック図である。
【0030】
具体的には、次のような処理の例が考えられる。
【0031】
テーブル記憶部111は、第1の値が取り得る値のシェアと第2の値が取り得る値のシェアとの組み合わせに対する第1の値と第2の値との積を秘密分散したシェアのテーブルを記憶する。ここで、テーブルとは、いわゆる掛け算表を秘密分散したものである。例えば第1の値のシェアを[i(i∈Z)とし、第2の値のシェアを[j(j∈Z)とすると以下のようなテーブルになる。なお、テーブル記憶部111は、以下のようなテーブルを事前に記憶しておいてもよいが、このテーブル自体は通常の掛け算から容易に構成することができるので、実装上は必要なときに変数に[Zi,j]=[i]を格納すればよい。
【0032】
【表1】
【0033】
上記のようなテーブルがあれば、第1の値のシェア[i]と第2の値のシェア[j]から、第1の値iと第2の値jとの積を秘密分散したシェア[i]を得ることができる。しかしながら、直接的にテーブルを参照した場合、秘密計算としては問題がある。テーブルを参照した個所からシェア[i]の値が漏洩してしまうからである。
【0034】
そこで、テーブルシャッフル部112は、テーブルにおける第1の値iが取り得る値のインデックスiおよび第2の値jが取り得る値のインデックスjをシャッフルする。ここでは当該シャッフルをすることによって、インデックスiはインデックスpへ置換し、インデックスjはインデックスqへ置換するものとする。すると、シャッフル後のテーブルは例えば以下のように行と列の情報が失われる。
【0035】
【表2】
【0036】
すると、今度は各参加者が、インデックスiがどのインデックスpへ置換したのか、インデックスjがどのインデックスqへ置換したのかを知らないので、第1の値iと第2の値jとの積を秘密分散したシェア[i]を得るために、どの行jと列iを参照すればよいのかが自明ではなくなる。
【0037】
そこで、積算部113は、シャッフル後のテーブルのインデックスと第1の値および第2の値とが一致したテーブルの要素を選択することで、第1の値iと第2の値jとの積を秘密分散したシェア[i]を得る。すなわち、シャッフル後のテーブルのインデックス(p,q)のうちどれかと第1の値および第2の値(i,j)が一致するので、その一致したインデックス(p,q)の[Zp,q]が、第1の値iと第2の値jとの積を秘密分散したシェア[i]である。
【0038】
なお、シャッフル後のテーブルのインデックス(p,q)と第1の値および第2の値(i,j)との一致判定は、第1の値のシェア[i]および第2の値のシェア[j]の入力と、シャッフル後のテーブルのインデックスのシェア([p],[q])を用いて秘密計算することができる。([i-p],[j-q])が([0],[0])であるか否かを計算すればよい。
【0039】
ところで、先述したように、上記計算でも、自己が保持していないシェアの値を他の参加者から受信する状況が発生する。そして、自己が保持していないシェアの値を他の参加者から受信する状況では、他の参加者に不正者が紛れ込み、本来は受信したい値の代わりに別の値が送信されてくることが起こり得る。
【0040】
そこで、比較検証部114は、他の秘密計算サーバ装置から受信した複数のデータのうち、多数派が一致するデータを正しい値として採用する。上述したように、本構成例では、複製度が3t+1の秘密分散方式を採用している。したがって、各シェアの同一の要素を3t+1人の参加者が保持していることになる。つまり、自己が保持していないシェアの値を他の参加者から受信する場合、3t+1人の参加者から同一の要素を受信することが可能であり、これら複数のうち多数派が一致するデータを正しい値として採用する。このように、第1の実施形態の構成では、第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)のうち一部が不正者によって運営されている場合であっても、処理を停止することなく、正しい秘密計算を継続することができる。
【0041】
以上のように、第1の実施形態に係る秘密計算システム100では、第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)のそれぞれが、テーブル記憶部111とテーブルシャッフル部112と積算部113と比較検証部114を備えることで、秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、第1の値と第2の値との積を秘密分散したシェアの秘密計算をする。そして、第1の実施形態に係る秘密計算システム100では、第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)のそれぞれが、上記構成を有することにより、第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)のうち一部が不正者によって運営されている場合であっても、処理を停止することなく、正しい秘密計算を継続することができる。また、t(3t+1)<Nを満たす秘密計算サーバ装置110(i=0,1,…,N-1)の台数の構成を採用することができる。つまり、第1の実施形態に係る秘密計算システム100および第0~第N-1の秘密計算サーバ装置110(i=0,1,…,N-1)のそれぞれは、秘密計算技術の安全性と柔軟性を高めることに寄与することが可能である。
【0042】
(秘密計算方法)
図3は、第1の実施形態にかかる秘密計算方法の手順の概略を示すフローチャートである。図3に示される秘密計算方法の手順は、説明を容易にするための秘密計算の手順の典型例に過ぎず、実際の秘密計算方法では、一部のステップのみの実施であったり、順序を変えて実施したり、一部のステップを繰り返すなどの変更がなされることが通常である。
【0043】
図3に示されるように、第1の実施形態にかかる秘密計算方法は、テーブル記憶ステップ(ステップS1)と、テーブルシャッフルステップ(ステップS2)と、積算ステップ(ステップS3)と、比較検証ステップ(ステップS4)とを有している。
【0044】
テーブル記憶ステップ(ステップS1)では、秘密計算サーバ装置110が第1の値が取り得る値のシェアと第2の値が取り得る値のシェアとの組み合わせに対する第1の値と第2の値との積を秘密分散したシェアのテーブルを記憶する。ここで、テーブルとは、先述した掛け算表を秘密分散したものである。なお、このテーブル自体は通常の掛け算から容易に構成することができるので、実装上は必要なときに変数に格納すればよい。また、テーブルを構成する処理は入力を待たずに行う、いわゆるオフライン処理を行うことができる。
【0045】
テーブルシャッフルステップ(ステップS2)では、秘密計算サーバ装置110がテーブルにおける第1の値が取り得る値のインデックスおよび第2の値が取り得る値のインデックスをシャッフルする。すると、シャッフル後のテーブルは行と列の情報が失われる。
【0046】
積算ステップ(ステップS3)では、秘密計算サーバ装置110がシャッフル後のテーブルのインデックスと第1の値および第2の値とが一致したテーブルの要素を選択することで、第1の値iと第2の値jとの積を秘密分散したシェア[i]を得る。
【0047】
一方、比較検証ステップ(ステップS4)では、秘密計算サーバ装置110が他の秘密計算サーバ装置から受信した複数のデータのうち、多数派が一致するデータを正しい値として採用する。ただし、比較検証ステップ(ステップS4)は、自己が保持していないシェアの値を他の参加者から受信する処理に付随して実行される。すなわち、テーブルシャッフルステップ(ステップS2)および積算ステップ(ステップS3)の一部として自己が保持していないシェアの値を他の参加者から受信する度に実行される。
【0048】
以上のように、第1の実施形態にかかる秘密計算方法は、テーブル記憶ステップ(ステップS1)と、テーブルシャッフルステップ(ステップS2)と、積算ステップ(ステップS3)と、比較検証ステップ(ステップS4)とを有することで、秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、第1の値と第2の値との積を秘密分散したシェアの秘密計算をする。そして、第1の実施形態にかかる秘密計算方法は、上記処理を実行することで、秘密計算サーバ装置110のうち一部が不正者によって運営されている場合であっても、処理を停止することなく、正しい秘密計算を継続することができる。また、t(3t+1)<Nを満たす秘密計算サーバ装置110の台数の構成を採用することができる。つまり、第1の実施形態にかかる秘密計算方法は、秘密計算技術の安全性と柔軟性を高めることに寄与することが可能である。
【0049】
以上説明した第1の実施形態は、本発明の基本的なコンセプトのみを説明する実施形態である。したがって、本発明を実用的な実施形態に適用するためには、加算や乗算などを含む一連の処理において、上記説明したコンセプトを適用する必要がある。以下で説明する第2の実施形態は、上記説明したコンセプトを実用的な実施形態に適用したものである。
【0050】
[第2の実施形態]
以下、図4を参照して、第2の実施形態に係る秘密計算システムについて説明する。
【0051】
図4は、第2の実施形態に係る秘密計算システムの機能構成例を示すブロック図である。図4に示すように、第2の実施形態に係る秘密計算システム200は、第0~第N-1の秘密計算サーバ装置210(i=0,1,…,N-1)を備えている。第0~第N-1の秘密計算サーバ装置210(i=0,1,…,N-1)は、それぞれが互いにネットワーク経由で通信可能に接続されている。
【0052】
第0~第N-1の秘密計算サーバ装置210(i=0,1,…,N-1)のそれぞれは、独立した各参加者P(i=0,1,…,N-1)によって運営されている。さらに、第0~第N-1の秘密計算サーバ装置210(i=0,1,…,N-1)を備える秘密計算システム200においては、第0~第N-1の秘密計算サーバ装置210(i=0,1,…,N-1)のうち一部が不正者によって運営されている場合であっても、処理を停止することなく、正しい秘密計算を継続することができる。
【0053】
〔準備〕
第2の実施形態に係る秘密計算システム200は、例えば以下の構成を採用することができる。
【0054】
第2の実施形態に係る秘密計算システム200は、第1の実施形態と同様に、(N-3t)-out-of-N複製型秘密分散の秘密分散方式を採用することができる。すなわち、位数Lの剰余類環Zの元x∈Zの剰余類環Z上のシェアを以下のように構成する。
[x]=([x]L,0,[x]L,1,…,[x]L,N-1
x=x+x+…+xN-1 mod L
[x]L,i=(x,xi+1,…,xi+3t),ただし、x(N-1)+1=x
【0055】
ここで、記号の定義として、上記のように秘密分散されてシェアの要素xを保持する参加者の集合をP(x)と定める。定義から解るように、集合の元の個数|P(x)|=3t+1である。
【0056】
また、各参加者Pは、(k,…,ki+3t)をシードとして持つ。なお、k∈{0,1}κである。
【0057】
さらに、後で説明するシャッフルのために、P(x)\Nに属する参加者は、追加のシードkx,jを持つ。ただし、Nは任意のt人の参加者の集合である(j=0,1,…,-1)。
【0058】
疑似ランダム関数Fは、下記のように、シードを入力としてZを出力する。
:{0,1}κ×{0,1}κ→Z
【0059】
また、配列長Mの配列x=(x,…,x,…,xM―1)としたときに、xに対して、x=xj,0+xj,1+…+xj,N-1 mod Lと分解し、x=(x0,i,…,xM―1,i)とする。
【0060】
〔ビルディングブロック〕
ここで、第2の実施形態に係る秘密計算システム200において、秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、第1の値と第2の値との積を秘密分散したシェアの秘密計算をするために要素として用いるビルディングブロックの説明をする。
【0061】
〔復元〕
ここでは、ある参加者Pが[x]からx∈Zを復元することを考える。
【0062】
参加者Pがx∈Zを復元するには、x,…,xi-1,xi+(3t+1),…,xN-1が必要である。つまり、参加者Pは、[x]L,i=(x,xi+1,…,xi+3t)を保持しているので、残りのx,…,xi-1,xi+(3t+1),…,xN-1を必要とする。
【0063】
ここで、シェアの要素x(j=1,…,i-1,i+(3t+1),…,N-1)を保持する参加者の集合P(x)を考える。そして、参加者P∈P(x)は、xを参加者Pに送信する。なお、この送信処理は、シェアの各要素x(j=1,…,i-1,i+(3t+1),…,N-1)について実行する。
【0064】
一方、参加者Pは、集合P(x)に属する参加者から送信された値に対して、値同士の比較検証を行い、多数決における多数派のxを正しい値として選択する。|P(x)|=3t+1であることから、不正者がt人以下である限り、多数決によって多数派のxを正しい値として必ず選択することができる。なお、集合P(x)に属する参加者の一部が送信する値をハッシュ値とすることで、通信コストを低減することが可能である。
【0065】
最終的に、参加者Pは、[x]L,i=(x,xi+1,…,xi+3t)と比較検証を行い正しい値であることが確認されたx,…,xi-1,xi+(3t+1),…,xN-1を用いて、x=Σi=0 N-1 mod Lを計算する。このxが目的の値である。
【0066】
〔入力〕
ここでは、参加者Pがx∈Zを入力することを考える。なお、この場合の出力は[x]である。
【0067】
まず、参加者Pは、乱数x,…,xN-1∈Zを生成する。そして、x=x-Σi=1 N-1 mod Lとする。
【0068】
次に、参加者Pは、他の参加者P(j≠i)に対して[x]L,iを送信する。
【0069】
全参加者Pは、シードと疑似ランダム関数から[r]を生成する。具体的には、r=F(uid,k)として、r=Σi=1 N-1 mod Lとすると、通信なしで乱数rのシェアを作ることができる。なお、このとき誰もrの値を知らないことに注意する。
【0070】
そして、全参加者Pは[x+r]=[x]+[r]を計算する。なお、シェア同士の加算[x]+[y]=[z]は、z=x+y mod Lとなるように、[z]=([z]L,0,[z]L,1,…,[z]L,N-1)を計算すればよい。
【0071】
その後、全参加者Pは[x+r]を復元してx+rを得る。ここでの復元には先述のビルディングブロック〔復元〕を用いることができる。
【0072】
ここで、全参加者Pが復元して得られたx+rを交換し、受信したx+rの値の比較検証を行う。受信したx+rの値のうち、多数派を正しい値として選択する。なお、多数決が成立しない場合は、インプットディーラーである参加者Pが不正者であるので、参加者Pと参加者Pが入力したx∈Zを排除する。なお、x+rを交換する際の通信の一部をハッシュ値とすることで、通信コストを低減することが可能である。
【0073】
最終的に、[x]=x+r-[r]が出力として得られる。
【0074】
〔シャッフル〕
ここでのシャッフルは、参加者のうちt人における置換を、他の参加者がローカルに計算するミニシャッフルを合成したものである。したがって、このミニシャッフルの構成方法から説明する。
【0075】
まず、参加者のうちt人が知らず、他の参加者が知っている置換を構成する。先述したように、N(j=0,1,…,-1)を任意のt人の参加者の集合としたときに、P(x)\Nに属する参加者は、シードkx,jを共有している。したがって、このシードkx,jから生成される疑似乱数を用いた置換は、Nに属する参加者(t人)が知らず、P(x)\Nに属する他の参加者が知っている置換となる。
【0076】
そして、P(x)\Nに属する参加者は、自己が構成した置換であるので、この置換πをシェアの要素xに適用し、ローカルに(通信を伴うことなく)π(x)を計算することができる。
【0077】
一方、Nに属する参加者(t人)は、π(x)を計算することができないので、P(x)\Nに属する参加者が計算したπ(x)を送信してもらう。このとき、|P(x)|=3t+1であり、|N|=tであることに着目すれば、P(x)\Nに属する参加者は、2t+1人であることが解る。そして、P(x)\Nに属する参加者の中にt人の不正者が紛れ込んだとしても、2t+1人のなかでは少数派になる。
【0078】
したがって、Nに属する参加者(t人)は、P(x)\Nに属する参加者から受信したπ(x)を比較検証し、少なくともt+1個が一致するものを正しい値として採用する。なお、P(x)\Nに属する参加者がNに属する参加者に送信するシェアの置換をハッシュ値として送信することで通信コストを低減することができる。
【0079】
このような置換をすべてのxに対して行うことで、参加者のうちt人における置換を、他の参加者がローカルに計算するミニシャッフルを構成することができる。
【0080】
ここで、上記のように構成したミニシャッフルは、Nに属する参加者にとっては置換の行き先を追跡することができないのでシャッフルとして機能する。一方、P(x)\Nに属する参加者にとっては置換の行き先を追跡することができてしまうのでシャッフルとして機能しない。
【0081】
そこでシャッフルを、t人の参加者を選択する組み合わせの数のミニシャッフルを合成したものとして構成する。すると、すべての参加者にとって、合成されたミニシャッフルのいずれかが置換の行き先を追跡することができないものとなっており、シャッフルとして機能する。
【0082】
〔積算〕
図5は、第2の実施形態に係る秘密計算方法の手順の概略を示すフローチャートである。すなわち、図5に示されるフローチャートは、上記ビルディングブロックを用いて、秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、第1の値と第2の値との積を秘密分散したシェアの秘密計算をする方法を示している。
【0083】
図5に示されるように、第2の実施形態にかかる秘密計算方法は、テーブル記憶ステップ(ステップS11)と、テーブルシャッフルステップ(ステップS12)と、積算ステップ(ステップS13)と、比較検証ステップ(ステップS14)とを有している。
【0084】
テーブル記憶ステップ(ステップS11)では、秘密計算サーバ装置210が第1の値が取り得る値のシェアと第2の値が取り得る値のシェアとの組み合わせに対する第1の値と第2の値との積を秘密分散したシェアのテーブルを記憶する。ここで、テーブルとは、第1の実施形態で説明したテーブルと同じものを用いることができる。
【0085】
テーブルシャッフルステップ(ステップS12)では、秘密計算サーバ装置210がテーブルにおける第1の値が取り得る値のインデックスおよび第2の値が取り得る値のインデックスをシャッフルする。ここでのシャッフルには、上記説明したビルディングブロックの〔シャッフル〕を用いることができる。
【0086】
そして、積算ステップ(ステップS13)では、秘密計算サーバ装置210がシャッフル後のテーブルのインデックスと第1の値および第2の値とが一致したテーブルの要素を選択することで、第1の値と第2の値との積を秘密分散したシェアを得る。この処理についても第1の実施形態で説明した処理と同様にすることができる。
【0087】
また、比較検証ステップ(ステップS14)では、秘密計算サーバ装置210が他の秘密計算サーバ装置から受信した複数のデータのうち、多数派が一致するデータを正しい値として採用する。上記ビルディングブロックの説明でも解るように、比較検証ステップは、シャッフルの内部処理や復元の内部処理としても組み込まれている。
【0088】
以上のように、第2の実施形態にかかる秘密計算方法は、テーブル記憶ステップ(ステップS11)と、テーブルシャッフルステップ(ステップS12)と、積算ステップ(ステップS13)と、比較検証ステップ(ステップS14)とを有することで、秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、第1の値と第2の値との積を秘密分散したシェアの秘密計算をする。そして、第2の実施形態にかかる秘密計算方法は、上記処理を実行することで、秘密計算サーバ装置210のうち一部が不正者によって運営されている場合であっても、処理を停止することなく、正しい秘密計算を継続することができる。また、t(3t+1)<Nを満たす秘密計算サーバ装置210の台数の構成を採用することができる。つまり、第2の実施形態にかかる秘密計算方法は、秘密計算技術の安全性と柔軟性を高めることに寄与することが可能である。
【0089】
[ハードウェア構成例]
図6は、秘密計算サーバ装置のハードウェア構成例を示す図である。すなわち、図6に示すハードウェア構成例は、秘密計算サーバ装置110,210(i=0,1,…,N-1)のハードウェア構成例である。図6に示すハードウェア構成を採用した情報処理装置(コンピュータ)は、上記説明した秘密計算方法をプログラムとして実行することで、秘密計算サーバ装置110,210(i=0,1,…,N-1)の各機能を実現することを可能にする。
【0090】
ただし、図6に示すハードウェア構成例は、秘密計算サーバ装置110,210(i=0,1,…,N-1)の各機能を実現するハードウェア構成の一例であり、秘密計算サーバ装置110,210(i=0,1,…,N-1)のハードウェア構成を限定する趣旨ではない。秘密計算サーバ装置110,210(i=0,1,…,N-1)は、図6に示さないハードウェアを含むことができる。
【0091】
図6に示すように、秘密計算サーバ装置110,210(i=0,1,…,N-1)が採用し得るハードウェア構成10は、例えば内部バスにより相互に接続される、CPU(Central Processing Unit)11、主記憶装置12、補助記憶装置13、およびIF(Interface)部14を備える。
【0092】
CPU11は、秘密計算サーバ装置110,210(i=0,1,…,N-1)が実行する秘密計算プログラムに含まれる各指令を実行する。主記憶装置12は、例えばRAM(Random Access Memory)であり、秘密計算サーバ装置110,210(i=0,1,…,N-1)が実行する秘密計算プログラムなどの各種プログラムなどをCPU11が処理するために一時記憶する。
【0093】
補助記憶装置13は、例えば、HDD(Hard Disk Drive)であり、秘密計算サーバ装置110,210(i=0,1,…,N-1)が実行する秘密計算プログラムなどの各種プログラムなどを中長期的に記憶しておくことが可能である。秘密計算プログラムなどの各種プログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することができる。補助記憶装置13は、非一時的なコンピュータ可読記録媒体に記録された秘密計算プログラムなどの各種プログラムを中長期的に記憶することに利用することが可能である。IF部14は、秘密計算サーバ装置110,210(i=0,1,…,N-1)間の入出力に関するインターフェイスを提供する。
【0094】
上記のようなハードウェア構成10を採用した情報処理装置は、先述した秘密計算方法をプログラムとして実行することで、秘密計算サーバ装置110,210(i=0,1,…,N-1)の各機能を実現する。
【0095】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
相互にネットワークで接続した複数の秘密計算サーバ装置を備え、秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、前記第1の値と前記第2の値との積を秘密分散したシェアの秘密計算をする秘密計算システムであって、
前記秘密計算サーバ装置のそれぞれが、
前記第1の値が取り得る値のシェアと前記第2の値が取り得る値のシェアとの組み合わせに対する前記第1の値と前記第2の値との積を秘密分散したシェアのテーブルを記憶するテーブル記憶部と、
前記テーブルにおける前記第1の値が取り得る値のインデックスおよび前記第2の値が取り得る値のインデックスをシャッフルするテーブルシャッフル部と、
前記シャッフル後の前記テーブルのインデックスと前記第1の値および前記第2の値とが一致した前記テーブルの要素を選択する積算部と、
他の秘密計算サーバ装置から受信した複数のデータのうち、多数派が一致するデータを正しい値として採用する比較検証部と、
を有する秘密計算システム。
[付記2]
前記秘密分散は、(N-3t)-out-of-N複製型秘密分散であり、
前記シャッフルは、前記秘密計算サーバ装置のうちt台におけるシェアの置換を、前記秘密計算サーバ装置のうち他の秘密計算サーバ装置がローカルに計算するミニシャッフルを合成したものである、付記1に記載の秘密計算システム。
[付記3]
前記比較検証部は、前記他の秘密計算サーバ装置から受信したシェアの置換のうち少なくともt+1個が一致するものを正しい値として採用する、付記2に記載の秘密計算システム。
[付記4]
前記他の秘密計算サーバ装置がローカルに計算するミニシャッフルは、前記t台の秘密計算サーバ装置が保持せず、前記他の秘密計算サーバ装置が共有しているシードから生成する疑似乱数を用いて構成される、付記2または付記3に記載の秘密計算システム。
[付記5]
前記シャッフルは、N台の秘密計算サーバ装置のうち前記t台の秘密計算サーバ装置を選択する組み合わせの数の前記ミニシャッフルを合成したものである、付記2から付記4のいずれか1つに記載の秘密計算システム。
[付記6]
前記比較検証部は、前記受信した複数のデータのハッシュ値が同一であることを判断して、前記受信した値が正しい値であることを判断する、付記1から付記4のいずれか1つに記載の秘密計算システム。
[付記7]
秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、前記第1の値と前記第2の値との積を秘密分散したシェアの秘密計算をするために、相互にネットワークで接続した複数の秘密計算サーバ装置の一つであって、
前記第1の値が取り得る値のシェアと前記第2の値が取り得る値のシェアとの組み合わせに対する前記第1の値と前記第2の値との積を秘密分散したシェアのテーブルを記憶するテーブル記憶部と、
前記テーブルにおける前記第1の値が取り得る値のインデックスおよび前記第2の値が取り得る値のインデックスをシャッフルするテーブルシャッフル部と、
前記シャッフル後の前記テーブルのインデックスと前記第1の値および前記第2の値とが一致した前記テーブルの要素を選択する積算部と、
他の秘密計算サーバ装置から受信した複数のデータのうち、多数派が一致するデータを正しい値として採用する比較検証部と、
を有する秘密計算サーバ装置。
[付記8]
相互にネットワークで接続した複数の秘密計算サーバ装置を備え、秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、前記第1の値と前記第2の値との積を秘密分散したシェアの秘密計算をする秘密計算方法であって、
前記秘密計算サーバ装置のそれぞれが、
前記第1の値が取り得る値のシェアと前記第2の値が取り得る値のシェアとの組み合わせに対する前記第1の値と前記第2の値との積を秘密分散したシェアのテーブルを記憶し、
前記テーブルにおける前記第1の値が取り得る値のインデックスおよび前記第2の値が取り得る値のインデックスをシャッフルし、
前記シャッフル後の前記テーブルのインデックスと前記第1の値および前記第2の値とが一致した前記テーブルの要素を選択し、
他の秘密計算サーバ装置から受信した複数のデータのうち、多数派が一致するデータを正しい値として採用する、秘密計算方法。
[付記9]
前記秘密分散は、(N-3t)-out-of-N複製型秘密分散であり、
前記シャッフルは、前記秘密計算サーバ装置のうちt台におけるシェアの置換を、前記秘密計算サーバ装置のうち他の秘密計算サーバ装置がローカルに計算するミニシャッフルを合成したものである、付記8に記載の秘密計算方法。
[付記10]
秘密分散された第1の値のシェアと秘密分散された第2の値のシェアから、前記第1の値と前記第2の値との積を秘密分散したシェアの秘密計算をするために、相互にネットワークで接続した複数の秘密計算サーバ装置に処理をさせる秘密計算プログラムであって、
前記第1の値が取り得る値のシェアと前記第2の値が取り得る値のシェアとの組み合わせに対する前記第1の値と前記第2の値との積を秘密分散したシェアのテーブルを記憶し、
前記テーブルにおける前記第1の値が取り得る値のインデックスおよび前記第2の値が取り得る値のインデックスをシャッフルし、
前記シャッフル後の前記テーブルのインデックスと前記第1の値および前記第2の値とが一致した前記テーブルの要素を選択し、
他の秘密計算サーバ装置から受信した複数のデータのうち、多数派が一致するデータを正しい値として採用する、秘密計算プログラム。
【0096】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択(部分的削除を含む)が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。さらに、上記引用した文献の各開示事項は、必要に応じ、本発明の趣旨に則り、本発明の開示の一部として、その一部又は全部を、本書の記載事項と組み合わせて用いることも、本願の開示事項に含まれるものと、みなされる。
【符号の説明】
【0097】
100,200 秘密計算システム
110,210 秘密計算サーバ装置
111 テーブル記憶部
112 テーブルシャッフル部
113 積算部
114 比較検証部
10 ハードウェア構成
11 CPU(Central Processing Unit)
12 主記憶装置
13 補助記憶装置
14 IF(Interface)部
図1
図2
図3
図4
図5
図6