JP7259876B2 - 情報処理装置、秘密計算方法及びプログラム - Google Patents

情報処理装置、秘密計算方法及びプログラム Download PDF

Info

Publication number
JP7259876B2
JP7259876B2 JP2020571933A JP2020571933A JP7259876B2 JP 7259876 B2 JP7259876 B2 JP 7259876B2 JP 2020571933 A JP2020571933 A JP 2020571933A JP 2020571933 A JP2020571933 A JP 2020571933A JP 7259876 B2 JP7259876 B2 JP 7259876B2
Authority
JP
Japan
Prior art keywords
share
shares
unit
information processing
generation unit
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
JP2020571933A
Other languages
English (en)
Other versions
JPWO2020165932A1 (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 JPWO2020165932A1 publication Critical patent/JPWO2020165932A1/ja
Application granted granted Critical
Publication of JP7259876B2 publication Critical patent/JP7259876B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Description

本発明は、情報処理装置、秘密計算方法及びプログラムに関する。特に、不正検知可能な4者秘密計算におけるビット埋込に関する情報処理装置、秘密計算方法及びプログラムに関する。
近年、秘密計算に関する研究開発が盛んに行われている。秘密計算では、入力データを秘匿したまま所定の処理を実行し、結果を得ることができる。
秘密計算プロトコルは大きく2つの種類に大別される。第1の方式は、特定の計算に限って実行可能な秘密計算プロトコルである。第2の方式は、任意の計算が実行可能な秘密計算プロトコルである。また、第2の方式には種々の方式が存在し、方式間で通信量(データ量)や通信ラウンド数をはじめとした様々なコストにおけるトレードオフが成立する。たとえば、通信量が少ない代わりに通信回数が多い方式や通信量は多いが通信回数が少ない方式が存在する。
代表的な秘密計算プロトコルとして、マルチパーティ計算(MPC;Multi Party Computation)が挙げられる。MPCとは、各参加者の入力を秘匿しながら、複数の参加者間で任意の関数を計算できる秘密計算プロトコルである。MPCにも、いくつかの方式があるが、近年注目を集める方式は、秘密分散ベースのMPCである。秘密分散ベースのMPCでは、入力を各参加者に分散する。ここで、分散データのことをシェアと呼称する。各参加者は各自のシェアを用いて、参加者間で協調しながら、目的の関数を計算する。このとき、計算過程の値に関してもシェアの形式を保っているために、元々の入力や計算過程の値が明らかになることはない。最終的な計算結果のシェアだけが、復元され、安全に任意の関数が計算できる。以降、n≧2のときの
Figure 0007259876000001
の値のシェアを
Figure 0007259876000002
、n=1のときの
Figure 0007259876000003
の値のシェアを
Figure 0007259876000004
として表記する。
ここで、MPCが達成する安全性は、大きく2つある。1つは秘匿性(Secrecy)である。もう1つは正当性(Correctness)である。秘匿性は、MPCを実行するにあたり、想定する攻撃者が存在したとしても、参加者に対し、入力に関する情報が漏れないことを保証する安全性となる。正当性は、秘密計算プロトコルを実行するにあたり、想定する攻撃者が存在したとしても、実行結果が正しいことを保証する安全性となる。
ここで、上記の「想定する攻撃者」には、いくつかの指標がある。代表的な指標として、1つ目は攻撃者の振舞いが挙げられる。2つ目は参加者における攻撃者の割合である。
攻撃者の振舞いに着目した場合、代表的な攻撃者の種類として、セミオネスト攻撃者(Semi-honest Adversary)とマリシャス攻撃者(Malicious Adversary)が挙げられる。セミオネスト攻撃者は、プロトコルに従いつつも、可能な範囲で得られる情報を増やそうと試みる攻撃者である。マリシャス攻撃者は、プロトコルから逸脱した振舞いを取ることで、自身が得られる情報を増やそうと試みる攻撃者である。ここで、プロトコルから逸脱する振舞いとは、たとえば本来送信すべきデータに対し、ビット反転を行うことによって、送信データを改ざんすることが挙げられる。
参加者における攻撃者の割合に着目した場合、大きく2つの種類が挙げられる。1つは、過半数が不正者(Dishonest majority)の場合である。もう1つは、過半数が正直者(Honest majority)の場合である。ここで、全参加者数をnとし、攻撃者の数をtとする。過半数が不正者の場合とは、つまり、t<nが成り立つ場合を意味する。過半数が正直者の場合とは、つまり、t<n/2が成り立つ場合を意味する。過半数が正直者である場合としてt<n/3が成り立つ場合も含まれるが、本書では特に断りが無い限り、t<n/2が成り立つ場合を過半数が正直者である場合とする。
近年、注目を集めるMPCとして3者間MPCが挙げられる。非特許文献1は、過半数が正直者で、かつ、攻撃者がセミオネスト攻撃者である場合の3者間MPCを開示する。非特許文献1に開示されたMPCは、
Figure 0007259876000005
上での算術演算を実現する。非特許文献1に開示されたMPCは、
Figure 0007259876000006
上での乗算1回あたり、3nビットの通信コストを要する。つまり、参加者あたりnビットの通信コストで乗算を実現できる。
非特許文献2は、過半数が正直者で、かつ、攻撃者がマリシャス攻撃者である場合の3者間MPCを開示する。これは、非特許文献1の方式をベースとした方式である。非特許文献2に開示されたMPCは、非特許文献1に開示されたMPCとは異なり、マリシャス攻撃者の存在を許容する。非特許文献2に開示されたMPCではマリシャス攻撃者による不正を、確率的に検知することが可能となる。検知確率を上げるほど、つまり、不正が成功する確率を下げようとするほど、通信コストが増加することとなる。たとえば、不正が成功する確率を2-40とした場合、非特許文献2では、
Figure 0007259876000007
上での乗算1回あたり、21nビットの通信コストを要する。つまり、参加者あたり7nビットの通信コストで不正検知機能付きの乗算を実現できる。
非特許文献3では、非特許文献1におけるシェアに対するビット埋込処理の方法が提案されている。ビット埋込とは、たとえば、
Figure 0007259876000008
から
Figure 0007259876000009
のシェアを得ることが挙げられる。このような処理は、算術回路や論理回路が混在した混合回路に対し、効率よくMPCを実行したい場合に重要な処理となる。特に、条件判定の結果を用いて、処理を分岐させる場合に、重要な処理となる。たとえば、非特許文献2の方式を用いて非特許文献3で提案されたビット埋込を実行した場合、マリシャス攻撃者の存在を許容できる、通信コストは42nビット・2ラウンドとなる。
多くの場合、MPCにおいて参加者が少なく、過半数が正直者の場合の方が、通信コストは低くなる。このため、前述のような3者間MPCが計算効率の良い方式であると考えられてきた。しかし、想定する攻撃者がマリシャス攻撃者の場合、計算効率は4者間MPCの方が良い場合がある。
たとえば、非特許文献4は、t<n/3、つまりt=1で、かつ、攻撃者がマリシャス攻撃者である場合の4者間MPCを開示する。非特許文献4に開示されたMPCは、
Figure 0007259876000010
上での乗算1回あたり、6nビットの通信コストを要する。つまり、参加者あたり1.5nビットの通信コストで乗算を実現できる。しかし、非特許文献4では方式固有のビット埋込処理が提案されていない。非特許文献3に記載のあるビット埋込は、シェアの形式が特定の形式であることを要求するため、非特許文献3に記載のビット埋込を非特許文献4の方式に適用することはできない。
T. Araki et al.、"High-Throughput Semi-Honest Secure Three-Party Computation with an Honest Majority."、2016、In Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security (CCS '16). ACM, New York, NY, USA, 805-817. T. Araki et al.、"Optimized Honest-Majority MPC for Malicious Adversaries - Breaking the 1 Billion-Gate Per Second Barrier"、2017、IEEE Symposium on Security and Privacy (SP), San Jose, California, USA, 2017, pp. 843-862. 大原ら.、"異なるサイズの環が混在する不正検知可能なマルチパーティ計算."、In SCIS 2018, 2A1-4. S. Dov Gordon et al.、"Secure Computation with Low Communication from Cross-checking."、Cryptology ePrint Archive, Report 2018/216, 2018, https://eprint.iacr.org/2018/216.
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
MPCを行うにあたり、可能な限り通信コストが軽減された方式が望まれる。通信コストには通信量と通信ラウンド回数とがあるが、単位時間あたりの処理件数の効率を重視する場合、特に通信量が重要となる。
たとえば、t<n/3、つまりt=1で、かつ、攻撃者がマリシャス攻撃者である場合での4者間MPCであれば、
Figure 0007259876000011
上での乗算1回あたり、5nビットの通信コストで実現できる。つまり、参加者あたり1.25nビットの通信コストで乗算を実現できる。これは2-out-of-4複製型秘密分散を用いた方法である。
各参加者をP_i(i=1、…、4)としたとき、
Figure 0007259876000012
のシェアを
Figure 0007259876000013
として、
Figure 0007259876000014
をP_iのシェアとする。また、
Figure 0007259876000015
のシェアを
Figure 0007259876000016
として、
Figure 0007259876000017
をP_iのシェアとする。このとき、
Figure 0007259876000018
に対して、
Figure 0007259876000019
とすると、
Figure 0007259876000020
とする。また、
Figure 0007259876000021
に対して、
Figure 0007259876000022
とすると、
Figure 0007259876000023
とする。
なお、
Figure 0007259876000024
とし、疑似ランダム関数
Figure 0007259876000025
とする。また、
Figure 0007259876000026
を文字列連結演算子とする。ここで、P_1は
Figure 0007259876000027
を、P_2は
Figure 0007259876000028
を、P_3は
Figure 0007259876000029
を、P_4は
Figure 0007259876000030
を、それぞれ有する。
なお、
Figure 0007259876000031
に関して、参加者の内、ある一人の参加者は
Figure 0007259876000032
の出力を計算できず、他の三人の参加者は
Figure 0007259876000033
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
Figure 0007259876000034
の扱いは特に制限されない。本書での
Figure 0007259876000035
はあくまでも一例である。
ここで、
Figure 0007259876000036

Figure 0007259876000037
上のシェアに関する加法演算子、減法演算子、乗法演算子とする。なお、これらの演算子は
Figure 0007259876000038
上の要素に対する二項演算子としての加法演算子、減法演算子、乗法演算子としても以降用いることに注意されたい。
Figure 0007259876000039
上のシェアに関する加法演算子、乗法演算子について、
Figure 0007259876000040
としたとき、以下の4つの式が成り立つ。
Figure 0007259876000041

Figure 0007259876000042

Figure 0007259876000043

Figure 0007259876000044
また、
Figure 0007259876000045

Figure 0007259876000046
上のシェアに関する排他的論理和、論理積とする。なお、これらの演算子は
Figure 0007259876000047
上の要素に対する二項演算子としての排他的論理和、論理積としても以降用いることに注意されたい。
Figure 0007259876000048
上のシェアに関する排他的論理和、論理積について、
Figure 0007259876000049
としたとき、以下の4つの式が成り立つ。
Figure 0007259876000050

Figure 0007259876000051

Figure 0007259876000052

Figure 0007259876000053
たとえば、前述の2-out-of-4複製型秘密分散を用いた4者間MPCでは、
Figure 0007259876000054

Figure 0007259876000055

Figure 0007259876000056

Figure 0007259876000057

Figure 0007259876000058
となり
Figure 0007259876000059
から
Figure 0007259876000060
が計算できる。また、
Figure 0007259876000061
としたとき、
Figure 0007259876000062
に関しても、以下の手順で
Figure 0007259876000063
を用いて計算できる。
1.各参加者(P_1~P3)のそれぞれは以下の計算を行う。
P_1:
Figure 0007259876000064

Figure 0007259876000065

Figure 0007259876000066

Figure 0007259876000067
P_2:
Figure 0007259876000068

Figure 0007259876000069

Figure 0007259876000070

Figure 0007259876000071
P_3:
Figure 0007259876000072

Figure 0007259876000073

Figure 0007259876000074

Figure 0007259876000075
2.上記計算が終了すると、各参加者は以下の通信を行う。
・P_1は
Figure 0007259876000076
をP_3に送信する。
・P_2は
Figure 0007259876000077
をP_1に送信する。
・P_3は
Figure 0007259876000078
をP_2に送信する。
・P_1は
Figure 0007259876000079
をP_4に送信する。
・P_2は
Figure 0007259876000080
をP_4に送信する。
3.各参加者は、上記通信により得た情報を用いて以下の計算により
Figure 0007259876000081
を得る。
Figure 0007259876000082

Figure 0007259876000083

Figure 0007259876000084

Figure 0007259876000085
なお、P_4のシェアは以下のようにして、計算する。
P_4:
Figure 0007259876000086

Figure 0007259876000087
シェアと定数倍算、および定数加算については当業者にとって自明なので説明を割愛する。また、
Figure 0007259876000088
上のシェアに関する演算についても、
Figure 0007259876000089
上のシェアに関する演算と同様に実行できるので説明を割愛する。このとき、参加者中にマリシャス攻撃者が1人存在したとしても、各自のシェアと異なる参加者から受信した値を用いて、値の改ざんがなかったか検証できる。改ざんがあった場合は、プロトコルを中断する。
しかし、上記2-out-of-4複製型秘密分散を用いた方法を用いた4者間MPCでは、ビット埋込を行うことが難しい。シェアの形式が異なるため、非特許文献3に開示された方法を直接用いることができないためである。よって、混合回路の計算を不正検知可能なMPCで効率よく行いたい場合、非特許文献4に開示された4者間MPCもしくは上記2-out-of-4複製型秘密分散を用いた4者間MPCで実行可能な、効率の良いビット埋込処理の提案が求められる。
本発明は、2-out-of-4複製型秘密分散を用いた4者間MPCにてビット埋込処理を実行することに寄与する、情報処理装置、秘密計算方法及びプログラムを提供することを主たる目的とする。
本発明乃至開示の第1の視点によれば、シェアについての演算を行う際の乱数を生成するためのシードを格納する、基本演算シード記憶部と、前記シードを用いてビット埋込を行う際に用いられるシェアを再構成するためのシェア再構成データを生成する、シェア再構成データ生成部と、少なくとも前記シェア再構成データを用いてビット埋込用のシェアを構成する、シェア構成部と、を備える、情報処理装置が提供される。
本発明乃至開示の第2の視点によれば、シェアについての演算を行う際の乱数を生成するためのシードを格納する、基本演算シード記憶部を備える情報処理装置において、前記シードを用いてビット埋込を行う際に用いられるシェアを再構成するためのシェア再構成データを生成するステップと、少なくとも前記シェア再構成データを用いてビット埋込用のシェアを構成するステップと、を含む、秘密計算方法が提供される。
本発明乃至開示の第3の視点によれば、シェアについての演算を行う際の乱数を生成するためのシードを格納する、基本演算シード記憶部を備える情報処理装置に搭載されたコンピュータに、前記シードを用いてビット埋込を行う際に用いられるシェアを再構成するためのシェア再構成データを生成する処理と、少なくとも前記シェア再構成データを用いてビット埋込用のシェアを構成する処理と、を実行させるプログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
本発明によれば、前記2-out-of-4複製型秘密分散を用いた4者間MPCにて混合回路を計算する際に、効率よく計算可能なビット埋込を実行する情報処理装置、秘密計算方法及びプログラムが、提供される。
一実施形態の概要を説明するための図である。 第1の実施形態におけるビット埋込システムの機能構成例を示すブロック図である。 第1の実施形態によるサーバ装置の機能構成を示すブロック図である。 第1の実施形態におけるビット埋込についてのビット埋込システムの動作例を示すフローチャートである。 第2の実施形態におけるビット埋込システムの機能構成例を示すブロック図である。 第2の実施形態によるサーバ装置の機能構成を示すブロック図である。 第2の実施形態におけるビット埋込についてのビット埋込システムの動作例を示すフローチャートである。 第3の実施形態におけるビット埋込システムの機能構成例を示すブロック図である。 第3の実施形態によるサーバ装置の機能構成を示すブロック図である。 第3の実施形態におけるビット埋込についてのビット埋込システムの動作例を示すフローチャートである。 第4の実施形態におけるビット埋込システムの機能構成例を示すブロック図である。 第4の実施形態によるサーバ装置の機能構成を示すブロック図である。 第4の実施形態におけるビット埋込についてのビット埋込システムの動作例を示すフローチャートである。 第5の実施形態におけるビット埋込の機能構成例を示すブロック図である。 第5の実施形態によるサーバ装置の機能構成を示すブロック図である。 第5の実施形態におけるビット埋込についてのビット埋込システムの動作例を示すフローチャートである。 秘密計算サーバ装置のハードウェア構成の一例を示す図である。
初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。また、各図におけるブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号(データ)の流れを模式的に示すものであり、双方向性を排除するものではない。さらに、本願開示に示す回路図、ブロック図、内部構成図、接続図などにおいて、明示は省略するが、入力ポート及び出力ポートが各接続線の入力端及び出力端のそれぞれに存在する。入出力インターフェイスも同様である。
一実施形態に係る情報処理装置10は、基本演算シード記憶部11と、シェア再構成データ生成部12と、シェア構成部13と、を備える(図1参照)。基本演算シード記憶部11は、シェアについての演算を行う際の乱数を生成するためのシードを格納する。シェア再構成データ生成部12は、シードを用いてビット埋込を行う際に用いられるシェアを再構成するためのシェア再構成データを生成する。シェア構成部13は、少なくともシェア再構成データを用いてビット埋込用のシェアを構成する。
ここで、4者MPCにおいてもビット埋込は効率よく秘密計算を実行するためには有益な処理であるが、各装置が保有するシェアの形式が不統一であるとその恩恵が得られない。そこで、上記情報処理装置10は、各装置が保有するシェアの形式を統一しビット埋込が容易となるようにシェアを再構成する。
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。
[第1の実施形態]
第1の実施形態について、図面を用いてより詳細に説明する。
図2~図4を参照して、第1の実施形態に係るビット埋込処理システムについて説明する。
図2は、第1の実施形態によるビット埋込処理システムの機能構成例を示すブロック図である。図2を参照すると、第1の実施形態によるビット埋込処理システムは、後述する図3で参照される第i(i=1、2、3、4)の秘密計算サーバ装置(以下、単にサーバ装置と表記する)から成る。第1の実施形態によるビット埋込処理システムにおいて、サーバ装置100_1、100_2、100_3、100_4は、自身と異なるサーバ装置とネットワーク経由で通信可能に接続されている。
図3は、第iのサーバ装置100_i(i=1、2、3、4)の機能構成例を示すブロック図である。図3に示すように、第iのサーバ装置100_iは、第iのシェア再構成データ生成部102_iと、第iのシェア構成部103_iと、第iの不正検知部104_iと、第iの算術演算部105_iと、第iの基本演算シード記憶部106_iと、第iのデータ記憶部107_iと、を含む。なお、第iのシェア再構成データ生成部102_iと、第iのシェア構成部103_iと、第iの不正検知部104_iと、第iの算術演算部105_iと、第iの基本演算シード記憶部106_iと、第iのデータ記憶部107_iとは、それぞれ接続されている。
このような構成のビット埋込処理システムにおいては、第1乃至第4のサーバ装置100_1~100_4の内のいずれかの装置が入力した値
Figure 0007259876000090
、あるいは第1乃至第4のデータ記憶部107_1~107_4に記憶されたシェア
Figure 0007259876000091
、あるいは第1乃至第4のサーバ装置100_1~100_4ではない外部から入力されたシェア
Figure 0007259876000092

に対し、その入力や計算過程の値から
Figure 0007259876000093
の値を知られることなく、
Figure 0007259876000094
を計算し、第1乃至第4のデータ記憶部107_1~107_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置100_1~100_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置100_1~100_4ではない外部にシェアが送信され、復元されてもよい。
次に、第1の実施形態におけるビット埋込処理システムおよび第1乃至第4のサーバ装置100_1~100_4の動作について、詳細に説明する。図4は、第1乃至第4のサーバ装置100_1~100_4のビット埋込に関する動作例を示すフローチャートである。
第1の実施形態では、
Figure 0007259876000095
上の値xのシェア
Figure 0007259876000096
に対してビット埋込を行う場合について説明する。その際、各サーバ装置100_iは、
Figure 0007259876000097
上の値xのシェア
Figure 0007259876000098
から
Figure 0007259876000099
上の値xのシェア
Figure 0007259876000100

Figure 0007259876000101
のシェア
Figure 0007259876000102
を計算(構成)するためのデータを生成する。各サーバ装置100_iは、
Figure 0007259876000103
上の値xのシェア
Figure 0007259876000104
を保持する。例えば、
Figure 0007259876000105
とした際、各サーバ装置100_iは、以下の値の組を保持する。
サーバ装置100_1:
Figure 0007259876000106
サーバ装置100_2:
Figure 0007259876000107
サーバ装置100_3:
Figure 0007259876000108
サーバ装置100_4:
Figure 0007259876000109
例えば、値x=1とし、
Figure 0007259876000110

Figure 0007259876000111

Figure 0007259876000112
であれば、サーバ装置100_1は(1、0)を保持する。
このような状況下において、ビット埋込を行う場合、
Figure 0007259876000113
上の値xのシェア
Figure 0007259876000114
から
Figure 0007259876000115
上の値xのシェア
Figure 0007259876000116
と値
Figure 0007259876000117
のシェア
Figure 0007259876000118
を計算する。
(ステップA1)
各基本演算シード記憶部106_1、106_2、106_3、106_4は、それぞれ
Figure 0007259876000119

Figure 0007259876000120

Figure 0007259876000121

Figure 0007259876000122
を記憶する。
また、各サーバ装置100_1~100_4は疑似ランダム関数
Figure 0007259876000123
を共有する。なお、
Figure 0007259876000124
とし、疑似ランダム関数
Figure 0007259876000125
とする。また、各データ記憶部107_1~107_4に、それぞれ
Figure 0007259876000126
を記憶する。ここで、
Figure 0007259876000127
は各データ記憶部107_iに記憶された
Figure 0007259876000128
である。
なお、
Figure 0007259876000129
に関して、サーバ装置100_i(i=1、2、3、4)の内、ある一台の参加者は
Figure 0007259876000130
の出力を計算できず、他の三台の参加者は
Figure 0007259876000131
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
Figure 0007259876000132
の扱いは特に制限されない。本書での
Figure 0007259876000133
はあくまでも一例である。
(ステップA2)
ステップA2において、第iのシェア再構成データ生成部102_iは、ビット埋込を行う際に用いられるシェアを再構成するためのデータ(シェア再構成データ)を生成する。具体的には、第iのシェア再構成データ生成部102_iは、
Figure 0007259876000134
上の値xのシェア
Figure 0007259876000135
から
Figure 0007259876000136
上の値xのシェア
Figure 0007259876000137

Figure 0007259876000138
のシェア
Figure 0007259876000139
を計算(構成)するためのデータを生成する。
具体的には、第iのシェア再構成データ生成部102_iは、ある値x(例えば、上記値x)のシェアを再構成するためのデータを生成する際、x=x+x+xとした場合(xは3つの値の和とした場合)、x、x、xのうち2つの値が等しくなるように乱数を生成する。さらに、第iのシェア再構成データ生成部102_iは、ある値x’(例えば、上記
Figure 0007259876000140
)のシェアを再構成するためのデータを生成する際、x’=x’+x’+x’とした場合、rを乱数としてx’=x’+r、x’=0、x’=-rとなるように乱数rを生成する。
第1のシェア再構成データ生成部102_1、第2のシェア再構成データ生成部102_2及び第3のシェア再構成データ生成部102_3はそれぞれ、第1の基本演算シード記憶部106_1、第2の基本演算シード記憶部106_2、第3の基本演算シード記憶部106_3より、
Figure 0007259876000141
を取得する。
そして、第1のシェア再構成データ生成部102_1、第2のシェア再構成データ生成部102_2及び第3のシェア再構成データ生成部102_3は
Figure 0007259876000142
を生成(計算)する。さらに、第1のシェア再構成データ生成部102_1は、
Figure 0007259876000143
を第1のデータ記憶部107_1に記憶する。第3のシェア再構成データ生成部102_3は、
Figure 0007259876000144
を、第3のシェア構成部103_3に送信する。また、第2のシェア再構成データ生成部102_2は、第2のデータ記憶部107_2から
Figure 0007259876000145
を取り出し、
Figure 0007259876000146
を、第4のシェア構成部103_4に送信する。
第2のシェア再構成データ生成部102_2は、第2の基本演算シード記憶部106_2から
Figure 0007259876000147
を取得する。第3のシェア再構成データ生成部102_3は、第3の基本演算シード記憶部106_3から
Figure 0007259876000148
を取得する。第4のシェア再構成データ生成部102_4は、第4の基本演算シード記憶部106_4から
Figure 0007259876000149
を取得する。また、第4のシェア再構成データ生成部102_4は、第4のデータ記憶部107_4から
Figure 0007259876000150
を取得する。
ここで、第2のシェア再構成データ生成部102_2、第3のシェア再構成データ生成部102_3および第4のシェア再構成データ生成部102_4は
Figure 0007259876000151
を計算する。第2のシェア再構成データ生成部102_2、第3のシェア再構成データ生成部102_3および第4のシェア再構成データ生成部102_4は、それぞれ、第2のデータ記憶部107_2、第3のデータ記憶部107_3および第4のデータ記憶部107_4に上記
Figure 0007259876000152
を送信する。
さらに第4のシェア再構成データ生成部102_4は、
Figure 0007259876000153
を用いて、
Figure 0007259876000154
を生成し、第1のシェア構成部103_1および第4のシェア構成部103_4に送信する。同様に第3のシェア再構成データ生成部102_3は、
Figure 0007259876000155
を生成し、第3のシェア構成部103_3に
Figure 0007259876000156
、第3のデータ記憶部107_3に
Figure 0007259876000157
を送信する。
ここで、
Figure 0007259876000158
である。
Figure 0007259876000159
は、たとえば、カウンタであり、各サーバ装置100_1~100_4の間で共有している。
(ステップA3)
各シェア構成部103_1、103_2、103_3、103_4は各データ記憶部107_1、107_2、107_3、107_4からそれぞれ、
Figure 0007259876000160

Figure 0007259876000161

Figure 0007259876000162

Figure 0007259876000163
を取り出す。さらに、各シェア構成部104_1、104_2、104_3、104_4は上記ステップA2で送信された値を用いて、以下の8の式によりシェアを構成する。
Figure 0007259876000164

Figure 0007259876000165

Figure 0007259876000166

Figure 0007259876000167

Figure 0007259876000168

Figure 0007259876000169

Figure 0007259876000170

Figure 0007259876000171

Figure 0007259876000172

Figure 0007259876000173
は各i番目のデータ記憶部108_iに記憶される。
このように、各シェア構成部103_iは、各サーバ装置100_iが保持する値
Figure 0007259876000174
と、シェア再構成データ生成部102_iが生成したデータ(例えば、乱数r、r’、z等)を用いて
Figure 0007259876000175
上の値xのシェア
Figure 0007259876000176
から
Figure 0007259876000177
上の値xのシェア
Figure 0007259876000178

Figure 0007259876000179
のシェア
Figure 0007259876000180
を再構成する。具体的には、上記8の式のうち上から4番目までの式は、
Figure 0007259876000181
に関する再構成されたシェアを示す。また、上記8の式のうち上から5番目~8番目までの式は、
Figure 0007259876000182
に関する再構成されたシェアを示す。
上記8つの式のうち上から4番目までの式を確認すると、値x=x_1+x_2+x_3とした場合、
_1=r
_2=x-2r
_3=r
となり、第iのシェア再構成データ生成部102_iによる値xのシェアを再構成するためのデータ生成時に作られる乱数rは正しく生成されていることが分かる。つまり、第iのシェア再構成データ生成部102_iは、ある値xのシェアを再構成するためのデータを生成する際、x=x+x+xとした場合、x、x、xのうち2つの値が等しくなるように乱数を生成する。
さらに、上記8つの式のうち上から5番目~8番目までの式を確認すると、
Figure 0007259876000183
とした場合、
Figure 0007259876000184

Figure 0007259876000185

Figure 0007259876000186
となり、第iのシェア再構成データ生成部102_iによる値
Figure 0007259876000187
のシェアを再構成するためのデータ生成時に作られる乱数rは正しく生成されていることが分かる。
つまり、第iのシェア再構成データ生成部102_iは、ある値x’のシェアを再構成するためのデータを生成する際、x’=x’+x’+x’とした場合、rを乱数としてx’=x’+r、x’=0、x’=-rとなるように乱数rを生成する。
(ステップA4)
各i番目の算術演算部105_iが互いに通信することで、環上での排他的論理和処理
Figure 0007259876000188
を以下のように計算する。ここで、
Figure 0007259876000189
とは、
Figure 0007259876000190

Figure 0007259876000191
を入力とし、
Figure 0007259876000192
を出力する処理である。例えば、以下の式がなりたつ。
Figure 0007259876000193
ここで、
Figure 0007259876000194
である。各i番目の算術演算部105_iは、
Figure 0007259876000195
を各データ記憶部107_iに記憶する。このように、算術演算部105_iは、ビット埋込用のシェアを用いて環上での排他的論理和を計算する。
(ステップA5)
第1のシェア再構成データ生成部102_1は、
Figure 0007259876000196
を第1のデータ記憶部107_1から取り出す。次に、第1のシェア再構成データ生成部102_1は、
Figure 0007259876000197
を、第4の不正検知部104_4に送信する。
第4の不正検知部104_4は、第4のデータ記憶部107_4に記憶されている
Figure 0007259876000198
を取り出し、
Figure 0007259876000199
、かつ、
Figure 0007259876000200
が成立するか否かを検証する。
成立した場合、第4の不正検知部104_4は、successの文字列を各サーバ装置100_1、100_2、100_3、100_4にブロードキャストし、次のステップに進む。成立しなかった場合、第4の不正検知部104_4は、abortの文字列を各サーバ装置100_1、100_2、100_3、100_4にブロードキャストし、秘密計算に関するプロトコルを中断する。
さらに第3の不正検知部104_3は、
Figure 0007259876000201
を第3のデータ記憶部107_3から取出し、
Figure 0007259876000202
を第1の不正検知部104_1に送信する。
第1の不正検知部104_1は、第1のデータ記憶部107_1から
Figure 0007259876000203
を取出し、
Figure 0007259876000204
が成り立つか否かを検証する。
Figure 0007259876000205
が成り立つ場合は、第1の不正検知部104_1はsuccessの文字列を各サーバ装置100_2、100_3、100_4にブロードキャストし、次のステップに進む。
Figure 0007259876000206
が成り立たない場合は、第1の不正検知部104_1はabortの文字列を各サーバ装置100_2、100_3、100_4にブロードキャストし、プロトコルを中断する。
なお、大量のビット埋込処理を並列に行う場合、
Figure 0007259876000207

Figure 0007259876000208
に関しては、それぞれの値を連結したものに対するハッシュ値を送信し、ハッシュ値同士の比較によって検証してもよい。このとき、処理全体の計算量に対して、ハッシュ値の送信量は無視できるものと捉えることができる。
(ステップA6)
各i番目の不正検知部104_iは、上記ステップA4の
Figure 0007259876000209
における送受信データを用いて、突き合わせることで不正検知を行う。不正が検知されなかった第1乃至第4のサーバ装置100_1、100_2、100_3、100_4は、successの文字列を各サーバ装置にブロードキャストする。不正が検知された第1乃至第4のサーバ装置100_1、100_2、100_3、100_4は、abortの文字列を各サーバ装置にブロードキャストし、秘密計算に関するプロトコルを中断する。これは上述の不正検知可能な4者間秘密計算によって実現される。ステップA6は上記ステップA5と並列に実行することが可能である。
このように、不正検知部104_iは、ビット埋込用のシェアや排他的論理和の計算時に送受信されたデータを用いて不正行為者の有無を検知する。
以上、説明した第1の実施形態においては、以下に記載するような効果を奏する。
第1の効果は、不正検知可能な4者間秘密計算を用いて、シェアのビット埋込が実行できる。複雑な混合回路を実行する際に不正検知に関するステップを並列に行った場合、不正検知に関する通信コストを消却できるものとする。このときの通信コストは、7nビット・2ラウンドとなる。一方で、非特許文献2と非特許文献3を組み合わせた場合のビット埋込の通信コストは、不正が成功する確率を2-40としたとき、42nビット・2ラウンドである。これより、本願開示の方が効率の良い方式となる(通信コストが低減される)。
第2の効果は、不正検知可能な4者間秘密計算を用いて、シェアのビット埋込を行う際に、不正検知確率が常に「1」となることである。非特許文献2と非特許文献3を組み合わせた場合、不正検知確率はパラメタライズであるため、不正検知確率を向上させようとした際に、通信コストも大きくなる。秘密計算を適用できるアプリケーションには様々なものがあり、そのアプリケーションに応じて求められる不正検知確率は異なる。求められる要件の調査と、調査に伴う各パラメータの設定は利用者にとって負担となる。本願開示では、不正検知確率が「1」なので、要件の調査やパラメータ設定の負担が軽減される。
[第2の実施形態]
図5~図7を参照して、第2の実施形態に係るビット埋込処理システムについて説明する。
図5は、第2の実施形態によるビット埋込処理システムの機能構成例を示すブロック図である。第2の実施形態に係るビット埋込処理システムは、上述した第1の実施形態に係るビット埋込処理システムの変形例である。以下、第2の実施形態において、第1の実施形態において既に説明した部分と同等な機能を有する部分には同一符号を付し、説明を省略する。
図5を参照すると、第1の実施形態によるビット埋込処理システムは、後述する図6で参照される第i(i=1、2、3、4)のサーバ装置から成る。第2の実施形態によるビット埋込処理システムにおいて、サーバ装置200_1、200_2、200_3、200_4は、自身と異なるサーバ装置とネットワーク経由で通信可能に接続されている。図6は、第iのサーバ装置200_i(i=1、2、3、4)の機能構成例を示すブロック図である。
図6に示すように、第iのサーバ装置200_iは、第iのシェア再構成データ生成部202_iと、第iのシェア構成部203_iと、第iの不正検知部204_iと、第iの算術演算部205_iと、第iの基本演算シード記憶部206_iと、第iのデータ記憶部207_iと、を含む。なお、第iのシェア再構成データ生成部202_i第iのシェア構成部203_iと、第iの不正検知部204_iと、第iの算術演算部205_iと、第iの基本演算シード記憶部206_iと、第iのデータ記憶部207_iとは、それぞれ接続されている。
このような構成のビット埋込処理システムにおいては、第1乃至第4のサーバ装置200_1~200_4の内のいずれかの装置が入力した値
Figure 0007259876000210
、あるいは第1乃至第4のデータ記憶部207_1~207_4に記憶されたシェア
Figure 0007259876000211
、あるいは第1乃至第4のサーバ装置200_1~200_4ではない外部から入力されたシェア
Figure 0007259876000212
に対し、その入力や計算過程の値から
Figure 0007259876000213
の値を知られることなく、
Figure 0007259876000214
を計算し、第1乃至第4のデータ記憶部207_1~207_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置200_1~200_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置200_1~200_4ではない外部にシェアが送信され、復元してもよい。
次に、第2の実施形態におけるビット埋込処理システムおよび第1乃至第4のサーバ装置200_1~200_4の動作について、詳細に説明する。図7は、第1乃至第4のサーバ装置200_1~200_4のビット埋込に関する動作例を示すフローチャートである。
(ステップB1)
各基本演算シード記憶部206_1~206_4は、それぞれ
Figure 0007259876000215

Figure 0007259876000216

Figure 0007259876000217

Figure 0007259876000218
を記憶する。
また、各サーバ装置200_1~200_4は疑似ランダム関数
Figure 0007259876000219
を共有する。なお、
Figure 0007259876000220
とし、疑似ランダム関数
Figure 0007259876000221
とする。
また、各データ記憶部207_1~207_4は、それぞれ
Figure 0007259876000222
を記憶する。ここで、
Figure 0007259876000223

は各データ記憶部108_iに記憶された
Figure 0007259876000224
である。
なお、
Figure 0007259876000225
に関して、サーバ装置200_i(i=1、2、3、)の内、ある一台の参加者は
Figure 0007259876000226
の出力を計算できず、他の三台の参加者は
Figure 0007259876000227
の出力を計算できるという状況を作ることを意図している。また、
Figure 0007259876000228
は、サーバ装置200_1、200_2、200_3の内、ある一台の参加者は
Figure 0007259876000229
の出力を計算できず、他の二台の参加者は
Figure 0007259876000230
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
Figure 0007259876000231
の扱いは特に制限されない。本書での
Figure 0007259876000232
はあくまでも一例である。
(ステップB2)
第1のシェア再構成データ生成部202_1と第2のシェア再構成データ生成部202_2はそれぞれ、第1の基本演算シード記憶部207_1、第2の基本演算シード記憶部206_2より、
Figure 0007259876000233
を取得する。
次に、第1のシェア再構成データ生成部202_1と第2のシェア再構成データ生成部202_2は
Figure 0007259876000234
を生成する。そして、第1のシェア再構成データ生成部202_1は、
Figure 0007259876000235
を第1のデータ記憶部207_1に記憶する。第2のシェア再構成データ生成部202_2は、
Figure 0007259876000236
を、第3のシェア構成部203_3に送信する。また、第2のシェア再構成データ生成部202_2は
Figure 0007259876000237

Figure 0007259876000238
を、第4のシェア構成部203_4に送信する。
同様に、第2のシェア再構成データ生成部202_2と第3のシェア再構成データ生成部202_3は
Figure 0007259876000239
を生成する。第2のシェア再構成データ生成部202_2は、
Figure 0007259876000240
を第2のデータ記憶部207_2に記憶する。第3のシェア再構成データ生成部202_3は、
Figure 0007259876000241
を、第1のシェア構成部203_1に送信する。また、第3のシェア再構成データ生成部202_3は
Figure 0007259876000242

Figure 0007259876000243
を、第4のシェア構成部203_4に送信する。
さらに同様に、第3のシェア再構成データ生成部202_3と第1のシェア再構成データ生成部202_1は
Figure 0007259876000244
を生成する。第3のシェア再構成データ生成部202_3は、
Figure 0007259876000245
を第3のデータ記憶部207_3に記憶する。第1のシェア再構成データ生成部202_1は、
Figure 0007259876000246
を、第2のシェア構成部203_2に送信する。また、第1のシェア再構成データ生成部202_1は
Figure 0007259876000247

Figure 0007259876000248
を、第4のシェア構成部203_4に送信する。
ここで、
Figure 0007259876000249
である。
Figure 0007259876000250
は、たとえば、カウンタであり、各サーバ装置200_1~200_4の間で共有している。
(ステップB3)
各シェア構成部204_1、204_2、204_3、204_4は上記ステップB2で送信された値を用いて、以下の12の式によりシェアを構成する。
Figure 0007259876000251

Figure 0007259876000252

Figure 0007259876000253

Figure 0007259876000254

Figure 0007259876000255

Figure 0007259876000256

Figure 0007259876000257

Figure 0007259876000258

Figure 0007259876000259

Figure 0007259876000260

Figure 0007259876000261

Figure 0007259876000262

Figure 0007259876000263

Figure 0007259876000264

Figure 0007259876000265
は各i番目のデータ記憶部207_iに記憶される。
(ステップB4)
各i番目の算術演算部205_iは互いに通信することで、環上での排他的論理和処理
Figure 0007259876000266
を以下のように計算する。ここで、
Figure 0007259876000267
とは、
Figure 0007259876000268

Figure 0007259876000269
を入力とし、
Figure 0007259876000270
を出力する処理である。例えば、以下の式が成り立つ。
Figure 0007259876000271

Figure 0007259876000272
ここで、
Figure 0007259876000273
である。各i番目の算術演算部205_iは、
Figure 0007259876000274
を各データ記憶部207_iに記憶する。
(ステップB5)
第1のシェア再構成データ生成部202_1は、第1のデータ記憶部207_1から
Figure 0007259876000275
を取り出す。次に、第1のシェア再構成データ生成部202_1は、
Figure 0007259876000276
を、第3の不正検知部204_3に送信する。また、第1のシェア再構成データ生成部202_1は、
Figure 0007259876000277

Figure 0007259876000278
を、第4の不正検知部204_4に送信する。
第3の不正検知部204_3および第4の不正検知部204_4は、それぞれ、第3のデータ記憶部208_3に記憶されている
Figure 0007259876000279
、第4のデータ記憶部207_4に記憶されている
Figure 0007259876000280
を取出し、値が一致するか否かを検証する。
一致した場合、第3の不正検知部204_3又は第4の不正検知部204_4は、successの文字列を各サーバ装置200_1、200_2、200_3、200_4にブロードキャストし、次のステップに進む。一致しなかった場合、第3の不正検知部204_3又は第4の不正検知部204_4は、abortの文字列を各サーバ装置200_1、200_2、200_3、200_4にブロードキャストし、秘密計算に関するプロトコルを中断する。
なお、大量のビット埋込処理を並列して行う場合、上記検証は、
Figure 0007259876000281
それぞれとを連結した値に対するハッシュ値と、
Figure 0007259876000282
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するか否かを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
Figure 0007259876000283
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
Figure 0007259876000284

Figure 0007259876000285
に関しても同様である。
同様に、第2のシェア再構成データ生成部202_2は、
Figure 0007259876000286
を第2のデータ記憶部207_2から取り出す。次に、第2のシェア再構成データ生成部202_2は、
Figure 0007259876000287
を、第1の不正検知部204_1に送信する。また、第2のシェア再構成データ生成部202_2は、
Figure 0007259876000288

Figure 0007259876000289
を、第4の不正検知部204_4に送信する。
第1の不正検知部204_1および第4の不正検知部204_4は、それぞれ、第1のデータ記憶部207_1に記憶されている
Figure 0007259876000290
、第4のデータ記憶部207_4に記憶されている
Figure 0007259876000291
を取出し、値が一致するか否かを検証する。
一致した場合、第1の不正検知部204_1又は第4の不正検知部204_4は、successの文字列を各サーバ装置200_1、200_2、200_3、200_4にブロードキャストし、次のステップに進む。一致しなかった場合、第1の不正検知部204_1又は第4の不正検知部204_4は、abortの文字列を各サーバ装置200_1、200_2、200_3、200_4にブロードキャストし、秘密計算に関するプロトコルを中断する。
なお、大量のビット埋込処理を並列して行う場合、上記検証は、
Figure 0007259876000292
それぞれとを連結した値に対するハッシュ値と、
Figure 0007259876000293
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するか否かを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
Figure 0007259876000294
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
Figure 0007259876000295

Figure 0007259876000296
に関しても同様である。
さらに同様に、第3のシェア再構成データ生成部202_3は、
Figure 0007259876000297
を第3のデータ記憶部208_3から取り出す。次に、第3のシェア再構成データ生成部202_3は、
Figure 0007259876000298
を、第2の不正検知部204_2に送信する。また、第3のシェア再構成データ生成部202_3は、
Figure 0007259876000299

Figure 0007259876000300
を、第4の不正検知部204_4に送信する。
第2の不正検知部204_2および第4の不正検知部204_4は、それぞれ、第2のデータ記憶部207_2に記憶されている
Figure 0007259876000301
、第4のデータ記憶部207_4に記憶されている
Figure 0007259876000302
を取り出し、値が一致するか否かを検証する。
一致した場合、第2の不正検知部204_2又は第4の不正検知部204_4は、successの文字列を各サーバ装置200_1、200_2、200_3、200_4にブロードキャストし、次のステップに進む。一致しなかった場合、第2の不正検知部204_1又は第4の不正検知部204_4は、abortの文字列を各サーバ装置200_1、200_2、200_3、200_4にブロードキャストし、秘密計算に関するプロトコルを中断する。
なお、大量のビット埋込処理を並列して行う場合、上記検証は、
Figure 0007259876000303
それぞれとを連結した値に対するハッシュ値と、
Figure 0007259876000304
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するか否かを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
Figure 0007259876000305
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
Figure 0007259876000306

Figure 0007259876000307
に関しても同様である。
(ステップB6)
各i番目の不正検知部204_iは、上記ステップB4の
Figure 0007259876000308
における送受信データを用いて、突き合わせることで不正検知を行う。不正が検知されなかった第1乃至第4のサーバ装置200_1、200_2、200_3、200_4は、successの文字列を各サーバ装置にブロードキャストする。不正が検知された第1乃至第4のサーバ装置200_1、200_2、200_3、200_4は、abortの文字列を各サーバ装置にブロードキャストし、秘密計算に関するプロトコルを中断する。これは上記の不正検知可能な4者間秘密計算によって実現される。ステップB6は上記ステップB5と並列に実行することが可能である。
以上、説明した第2の実施形態においては、第1の実施形態における効果と同じ効果を奏する。ただし、第1の実施形態における第1の効果に関して、第2の実施形態では環上での排他的論理和計算に相当する
Figure 0007259876000309
の計算回数が増加していることに注意する。第1の実施形態では、ビット埋込に関して
Figure 0007259876000310
の計算を1回で実行できる。一方で第2の実施形態では、ビット埋込に関して
Figure 0007259876000311
の計算を2回で実行できる。通信コストとしては、16nビット・3ラウンドとなる。
上述のように、理論的な通信コストとしては、第2の実施形態の方が第1の実施形態よりも劣っているが、通信の形態が変化していることに注意されたい。たとえば、第1の実施形態における図4のステップA2では、第4のサーバ装置200_4から、第1のサーバ装置200_1への通信が発生している。一方で、第2の実施形態では、ビット埋込の実行にあたり、第4のサーバ装置200_4から、第1のサーバ装置200_1への通信が発生していない。このように通信の形態が変わるため、通信環境によっては第2の実施形態の方が、効率が良い場合がある。
[第3の実施形態]
図8~図10を参照して、第3の実施形態に係るビット埋込処理システムについて説明する。
図8は、第3の実施形態によるビット埋込処理システムの機能構成例を示すブロック図である。第3の実施形態に係るビット埋込処理システムは、上述した第1の実施形態および第2の実施形態に係るビット埋込処理システムの変形例である。以下、第3の実施形態において、第1の実施形態および第2の実施形態において既に説明した部分と同等な機能を有する部分には同一符号を付し、説明を省略する。
図8を参照すると、第3の実施形態によるビット埋込処理システムは、後述する図9で参照される第i(i=1、2、3、4)のサーバ装置から成る。第3の実施形態によるビット埋込処理システムにおいて、サーバ装置300_1、300_2、300_3、300_4は、自身と異なるサーバ装置とネットワーク経由で通信可能に接続されている。図9は、第iのサーバ装置300_i(i=1、2、3、4)の機能構成例を示すブロック図である。
図9に示すように、第iのサーバ装置300_iは、第iのシェア再構成データ生成部302_iと、第iのシェア構成部303_iと、第iの不正検知部304_iと、第iの算術演算部205_iと、第iの基本演算シード記憶部106_iと、第iのデータ記憶部307_iと、を含む。なお、第iのシェア再構成データ生成部302_iと、第iのシェア構成部303_iと、第iの不正検知部304_iと、第iの算術演算部205_iと、第iの基本演算シード記憶部106_iと、第iのデータ記憶部307_iとは、それぞれ接続されている。
このような構成のビット埋込処理システムにおいては、第1乃至第4のサーバ装置300_1~300_4の内のいずれかの装置が入力した値
Figure 0007259876000312
、あるいは第1乃至第4のデータ記憶部307_1~307_4に記憶されたシェア
Figure 0007259876000313
、あるいは第1乃至第4のサーバ装置300_1~300_4ではない外部から入力されたシェア
Figure 0007259876000314

に対し、その入力や計算過程の値から
Figure 0007259876000315
の値を知られることなく、
Figure 0007259876000316
を計算し、第1乃至第4のデータ記憶部307_1~307_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置300_1~300_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置300_1~300_4ではない外部にシェアが送信され、復元されてもよい。
次に、第3の実施形態におけるビット埋込処理システムおよび第1乃至第4のサーバ装置300_1~300_4の動作について、詳細に説明する。図10は、第1乃至第4のサーバ装置300_1~300_4のビット埋込に関する動作例を示すフローチャートである。
(ステップC1)
各基本演算シード記憶部106_1、106_2、106_3、106_4は、それぞれ
Figure 0007259876000317

Figure 0007259876000318

Figure 0007259876000319

Figure 0007259876000320
を記憶する。
また、各サーバ装置300_1~300_4は疑似ランダム関数
Figure 0007259876000321
を共有する。なお、
Figure 0007259876000322
とし、疑似ランダム関数
Figure 0007259876000323
とする。また、各データ記憶部307_1~307_4に、それぞれ
Figure 0007259876000324
を記憶する。ここで、
Figure 0007259876000325
は各データ記憶部307_iに記憶された
Figure 0007259876000326
である。
なお、
Figure 0007259876000327
に関して、サーバ装置300_i(i=1、2、3、4)の内、ある一台の参加者は
Figure 0007259876000328
の出力を計算できず、他の三台の参加者は
Figure 0007259876000329
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
Figure 0007259876000330
の扱いは特に制限されない。本書での
Figure 0007259876000331
はあくまでも一例である。
(ステップC2)
第1のシェア再構成データ生成部302_1、第2のシェア再構成データ生成部302_2及び第3のシェア再構成データ生成部302_3はそれぞれ、第1の基本演算シード記憶部106_1、第2の基本演算シード記憶部106_2、第3の基本演算シード記憶部106_3より、
Figure 0007259876000332
を取得する。
次に、第1のシェア再構成データ生成部302_1、第2のシェア再構成データ生成部302_2及び第3のシェア再構成データ生成部302_3は
Figure 0007259876000333
を生成する。そして、第1のシェア再構成データ生成部302_1は、
Figure 0007259876000334
を第1のシェア構成部303_1に送信する。第3のシェア再構成データ生成部302_2は
Figure 0007259876000335
を、第3のシェア構成部303_4に送信する。
第2のシェア再構成データ生成部302_2は、第2のデータ記憶部307_2から
Figure 0007259876000336
を取出し、
Figure 0007259876000337
を、第4のシェア構成部303_4に送信する。
同様に、第1のシェア再構成データ生成部302_1、第2のシェア再構成データ生成部302_2及び第3のシェア再構成データ生成部302_3は
Figure 0007259876000338
を生成する。第2のシェア再構成データ生成部302_2は、
Figure 0007259876000339
を第2のシェア構成部303_2に送信する。第1のシェア再構成データ生成部302_3は、
Figure 0007259876000340
を第1のシェア構成部303_1に送信する。
また、第3のシェア再構成データ生成部302_3は、第3のデータ記憶部307_2から
Figure 0007259876000341
を取出し、
Figure 0007259876000342
を、第4のシェア構成部303_4に送信する。
さらに同様に、第1のシェア再構成データ生成部302_1、第2のシェア再構成データ生成部302_2及び第3のシェア再構成データ生成部302_3は
Figure 0007259876000343
を生成する。第3のシェア再構成データ生成部302_3は、
Figure 0007259876000344
を第3のシェア構成部303_3に送信する。第2のシェア再構成データ生成部302_2は、
Figure 0007259876000345
を第2のシェア構成部303_2に送信する。
また、第1のシェア再構成データ生成部302_1は、第1のデータ記憶部307_1から
Figure 0007259876000346
を取出し、
Figure 0007259876000347
を第4のシェア構成部303_4に送信する。
ここで、
Figure 0007259876000348
である。
Figure 0007259876000349
は、たとえば、カウンタであり、各サーバ装置300_1~300_4の間で共有している。
(ステップC3)
各シェア構成部304_1、304_2、304_3、304_4は上記ステップC2で送信された値と、各i番目のデータ記憶部308_iに記憶された
Figure 0007259876000350
を用いて、以下の12の式によりシェアを構成する。
Figure 0007259876000351

Figure 0007259876000352

Figure 0007259876000353

Figure 0007259876000354

Figure 0007259876000355

Figure 0007259876000356

Figure 0007259876000357

Figure 0007259876000358

Figure 0007259876000359

Figure 0007259876000360

Figure 0007259876000361

Figure 0007259876000362

Figure 0007259876000363

Figure 0007259876000364

Figure 0007259876000365
は各i番目のデータ記憶部307_iに記憶される。
このように、各シェア再構成データ生成部302_iは、シェアの再構成に使用される乱数を生成する。その際、各シェア再構成データ生成部302_iは、値
Figure 0007259876000366
に関するシェア再構成データを生成する際、値
Figure 0007259876000367
とした場合に、
Figure 0007259876000368

Figure 0007259876000369
及び
Figure 0007259876000370
のうち2つの値が等しくなるように、乱数を生成する。上記ステップC3の例では、例えば、
Figure 0007259876000371
のとき、
Figure 0007259876000372
となるように乱数が生成されている。
(ステップC4)
各i番目の算術演算部205_iは相互に通信することで、環上での排他的論理和処理
Figure 0007259876000373
を以下のように計算する。ここで、
Figure 0007259876000374
とは、
Figure 0007259876000375

Figure 0007259876000376
を入力とし、
Figure 0007259876000377
を出力する処理である。例えば、以下の式が成り立つ。
Figure 0007259876000378

Figure 0007259876000379
ここで、
Figure 0007259876000380
である。各i番目の算術演算部205_iは、
Figure 0007259876000381
を各データ記憶部307_iに記憶する。
(ステップC5)
第1のシェア再構成データ生成部302_1は、第1のデータ記憶部307_1から
Figure 0007259876000382
を取り出す。次に、第1のシェア再構成データ生成部302_1は、
Figure 0007259876000383
を、第4の不正検知部304_4に送信する。第4の不正検知部304_4は、第4のデータ記憶部307_4に記憶されている
Figure 0007259876000384
を取出し、
Figure 0007259876000385
、かつ、
Figure 0007259876000386
が成り立つかを検証する。
成り立つ場合、第4の不正検知部304_4は、successの文字列を各サーバ装置300_1、300_2、300_3、300_4にブロードキャストし、次のステップに進む。成立しなかった場合、第4の不正検知部304_4は、abortの文字列を各サーバ装置300_1、300_2、300_3、300_4にブロードキャストし、秘密計算に関するプロトコルを中断する。
同様に、第2のシェア再構成データ生成部302_2は、第2のデータ記憶部307_2から
Figure 0007259876000387
を取り出す。次に、第2のシェア再構成データ生成部302_2は、
Figure 0007259876000388
を、第4の不正検知部304_4に送信する。第4の不正検知部304_4は、第4のデータ記憶部307_4に記憶されている
Figure 0007259876000389
を取出し、
Figure 0007259876000390
が成立するか否かを検証する。
成立した場合、第4の不正検知部304_4は、successの文字列を各サーバ装置300_1、300_2、300_3、300_4にブロードキャストし、次のステップに進む。成立しなかった場合、第4の不正検知部304_4は、abortの文字列を各サーバ装置300_1、300_2、300_3、300_4にブロードキャストし、秘密計算に関するプロトコルを中断する。
さらに同様に、第3のシェア再構成データ生成部302_3は、第3のデータ記憶部307_3から
Figure 0007259876000391
を取り出す。次に、第3のシェア再構成データ生成部302_3は、
Figure 0007259876000392
を、第4の不正検知部304_4に送信する。第4の不正検知部304_4は、第4のデータ記憶部307_4に記憶されている
Figure 0007259876000393
を取出し、
Figure 0007259876000394
が成立するか否かを検証する。
成立した場合、第4の不正検知部304_4は、successの文字列を各サーバ装置300_1、300_2、300_3、300_4にブロードキャストし、次のステップに進む。一致しなかった場合、第4の不正検知部304_4は、abortの文字列を各サーバ装置300_1、300_2、300_3、300_4にブロードキャストし、プロトコルを中断する。
なお、大量のビット埋込処理を並列して行う場合、
Figure 0007259876000395
については、それぞれの値を連結したものに対するハッシュ値を送信し、ハッシュ値同士の比較によって検証してもよい。このとき、処理全体の計算量に対して、ハッシュ値の送信量は無視できるものと捉えることができる。
(ステップC6)
各i番目の不正検知部304_iは、上記ステップC4の
Figure 0007259876000396
における送受信データを用いて、突き合わせることで不正検知を行う。不正が検知されなかった第1乃至第4のサーバ装置300_1、300_2、300_3、300_4は、successの文字列を各サーバ装置にブロードキャストする。不正が検知された第1乃至第4のサーバ装置300_1、300_2、300_3、300_4は、abortの文字列を各サーバ装置にブロードキャストし、プロトコルを中断する。これは上述の不正検知可能な4者間秘密計算によって実現される。ステップC6は上記ステップC5と並列に実行することが可能である。つまり、ビット埋込用のシェアを用いた不正行為者の有無を検知することと、排他的論理和の計算時に送受信されたデータを用いて不正行為者の有無を検知することは並列に実行することができる。
以上、説明した第3の実施形態においては、第1の実施形態および第2の実施形態における効果と同じ効果を奏する。ただし、第2の実施形態における第1の効果に関して、第3の実施形態の方が通信コストの点で効率が良いことに注意する。第3の実施形態では、第2の実施形態と同様、環上での排他的論理和計算に相当する
Figure 0007259876000397
の計算を2回行うことで実行できる。第3の実施形態と第2の実施形態とで異なる点は、環上での排他的論理和計算前の再分散が効率よく行われている点である。不正検知に関する処理を並列に行った場合、第3の実施形態では、ビット埋込の通信コストとして、13nビット・3ラウンドを要する。これより、第3の実施形態の方が第1又は第2の実施形態よりも通信コストの点で効率が良い。
[第4の実施形態]
図11~図13を参照して、第4の実施形態に係るビット埋込システムについて説明する。
図11は、第4の実施形態によるビット埋込システムの機能構成例を示すブロック図である。図11を参照すると、第4の実施形態によるビット埋込処理システムは、後述する図12で参照される第i(i=1、2、3、4)のサーバ装置から成る。第4の実施形態によるビット埋込処理システムにおいて、サーバ装置400_1、400_2、400_3、400_4は、自身と異なるサーバ装置とネットワーク経由で通信可能に接続されている。図12は、第iのサーバ装置400_i(i=1、2、3、4)の機能構成例を示すブロック図である。
図12に示すように、第iのサーバ装置400_iは、第iのマスク値計算部401_iと、第iのシェア構成部403_iと、第iの不正検知部404_iと、第iの算術演算部405_iと、第iの基本演算シード記憶部106_iと、第iのデータ記憶部407_iと、を含む。なお、第iのマスク値計算部401_iと、第iのシェア構成部403_iと、第iの不正検知部404_iと、第iの算術演算部405_iと、第iの基本演算シード記憶部106_iと、第iのデータ記憶部407_iとは、それぞれ接続されている。
このような構成のビット埋込処理システムにおいては、第1乃至第4のサーバ装置400_1~400_4の内のいずれかの装置が入力した値
Figure 0007259876000398
、あるいは第1乃至第4のデータ記憶部407_1~407_4に記憶されたシェア
Figure 0007259876000399
、あるいは第1乃至第4のサーバ装置400_1~400_4ではない外部から入力されたシェア
Figure 0007259876000400

に対し、その入力や計算過程の値から
Figure 0007259876000401
の値を知られることなく、
Figure 0007259876000402
を計算し、第1乃至第4のデータ記憶部407_1~407_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置400_1~400_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置400_1~400_4ではない外部にシェアが送信され、復元されてもよい。
次に、第4の実施形態におけるビット埋込処理システムおよび第1乃至第4のサーバ装置400_1~400_4の動作について、詳細に説明する。図13は、第1乃至第4のサーバ装置400_1~400_4のビット埋込に関する動作例を示すフローチャートである。
(ステップD1)
各基本演算シード記憶部106_1、106_2、106_3、106_4は、それぞれ
Figure 0007259876000403

Figure 0007259876000404

Figure 0007259876000405

Figure 0007259876000406
を記憶する。
また、各サーバ装置400_1~400_4は疑似ランダム関数
Figure 0007259876000407
を共有する。なお、
Figure 0007259876000408
とし、疑似ランダム関数
Figure 0007259876000409
とする。また、各データ記憶部407_1~407_4に、それぞれ
Figure 0007259876000410
を記憶する。
ここで、
Figure 0007259876000411
は各データ記憶部407_iに記憶された
Figure 0007259876000412
である。なお、
Figure 0007259876000413
に関して、サーバ装置400_i(i=1、2、3、4)の内、ある一台の参加者は
Figure 0007259876000414
の出力を計算できず、他の三台の参加者は
Figure 0007259876000415
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
Figure 0007259876000416
の扱いは特に制限されない。本書での
Figure 0007259876000417
はあくまでも一例である。
(ステップD2)
第1、第2、第3のマスク値計算部401_1、401_2、401_3は
Figure 0007259876000418

を計算し、第1、第2、第3のデータ記憶部407_1、407_2、407_3に
Figure 0007259876000419
を記憶する。第2のマスク値計算部401_2は、データ記憶部407_2からシェア
Figure 0007259876000420
を取り出す。
第2のマスク値計算部401_2は、
Figure 0007259876000421
を生成し、
Figure 0007259876000422
を第4のサーバ装置400_4に送信する。第4のサーバ装置400_4は、第4のデータ記憶部407_4に
Figure 0007259876000423
を記憶する。
ここで、
Figure 0007259876000424
である。
Figure 0007259876000425
は、たとえば、カウンタであり、各サーバ装置400_1~400_4の間で共有している。
(ステップD3)
各シェア構成部403_1、403_2、403_3、403_4は各データ記憶部407_1、407_2、407_3、407_4からそれぞれ、
Figure 0007259876000426

Figure 0007259876000427

Figure 0007259876000428

Figure 0007259876000429
を取り出し、以下の16の式によりシェアを構成する。
Figure 0007259876000430

Figure 0007259876000431

Figure 0007259876000432

Figure 0007259876000433

Figure 0007259876000434

Figure 0007259876000435

Figure 0007259876000436

Figure 0007259876000437

Figure 0007259876000438

Figure 0007259876000439

Figure 0007259876000440

Figure 0007259876000441

Figure 0007259876000442

Figure 0007259876000443

Figure 0007259876000444

Figure 0007259876000445

Figure 0007259876000446

Figure 0007259876000447

Figure 0007259876000448

Figure 0007259876000449
は各i番目のデータ記憶部407_iに記憶される。なお、3-1
Figure 0007259876000450
上での3の乗法逆元を意味する。ここで、3と2は互いに素なので、任意のn(≧2)に対して、
Figure 0007259876000451
上で3-1は存在する。
(ステップD4)
各i番目の算術演算部405iは互いに通信することで、環上での排他的論理和処理
Figure 0007259876000452
を以下のように計算する。ここで、
Figure 0007259876000453
とは、
Figure 0007259876000454

Figure 0007259876000455
を入力とし、
Figure 0007259876000456
を出力する処理である。例えば、以下の式が成り立つ。
Figure 0007259876000457

Figure 0007259876000458

Figure 0007259876000459
ここで、
Figure 0007259876000460
である。各i番目の算術演算部405_iは、
Figure 0007259876000461
を各データ記憶部407_iに記憶する。
(ステップD5)
第1のサーバ装置400_1は、上記ステップD3における第2のサーバ装置400_2と同様、第1のマスク値計算部401_1は、
Figure 0007259876000462
を生成し、
Figure 0007259876000463
を第4のサーバ装置400_4に送信する。第4のサーバ装置400_4は、第4のデータ記憶部407_4に
Figure 0007259876000464
を記憶する。第4の不正検知部404_4は、第4のデータ記憶部407_4から
Figure 0007259876000465
を取り出し、
Figure 0007259876000466
が成り立つか否かを検証する。
Figure 0007259876000467
が成り立つ場合は、第4の不正検知部404_4はsuccessの文字列を各サーバ装置400_1、400_2、400_3にブロードキャストし、次のステップに進む。
Figure 0007259876000468
が成り立たない場合は、第4の不正検知部404_4はabortの文字列を各サーバ装置400_1、400_2、400_3にブロードキャストし、プロトコルを中断する。
なお、大量のビット埋込処理を並列に行う際に、各ステップD5において
Figure 0007259876000469
を連結してハッシュ値
Figure 0007259876000470
を計算し、
Figure 0007259876000471
に対しても連結した値に対するハッシュ値
Figure 0007259876000472
を計算することで、
Figure 0007259876000473
が成り立つか否かの検証を
Figure 0007259876000474
が成り立つか否かの検証と捉えてもよい。このとき、
Figure 0007259876000475
に関する通信量は処理全体の計算量に対し、無視できるものと捉えることができる。
(ステップD6)
各i番目の不正検知部404_iは、上記ステップD4の
Figure 0007259876000476
における送受信データを用いて、突き合わせることで不正検知を行う。不正が検知されなかった第1乃至第4のサーバ装置400_1、400_2、400_3、400_4は、successの文字列を各サーバ装置にブロードキャストする。不正が検知された第1乃至第4のサーバ装置400_1、400_2、400_3、400_4は、abortの文字列を各サーバ装置にブロードキャストし、プロトコルを中断する。これは上述の不正検知可能な4者間秘密計算によって実現される。ステップD6は上記ステップD5と並列に実行することが可能である。
以上、第4の実施形態においては、第1乃至第3の実施形態における効果と同じ効果を奏する。ただし、第1乃至第3の実施形態それぞれにおける第1の効果に関して、通信の形態が異なる点に注意する。たとえば、第4の実施形態では、図13のステップD2にて第2のサーバ装置400_2から第4のサーバ装置400_4に対する通信と、その検証のためのステップD5にて第1のサーバ装置400_1から第4のサーバ装置400_4に対する通信が発生している。これは上記
Figure 0007259876000477
の環上で実行される2-out-of-4複製型秘密分散を用いた不正検知可能な4者間MPCによる乗算に要する通信路の一部である。つまり、第4の実施形態ではビット埋込を行うにあたり、上記MPCによる乗算に要する通信路以外は必要としない。第1乃至第3の実施形態では、上記MPCによる乗算に要する通信路以外に、追加の通信が必要である。このため、通信環境によっては、第4の実施形態の方が効率の面で良い場合がある。なお、第4の実施形態によるビット埋込のコストは、大量の処理を並列に行う場合は、16nビット・3ラウンドとなる。
[第5の実施形態]
図14~図16を参照して、第5の実施形態に係るビット埋込処理システムについて説明する。
図14は、第5の実施形態によるビット埋込処理システムの機能構成例を示すブロック図である。第5の実施形態に係るビット埋込処理システムは、上述した第1乃至第4の実施形態に係るビット埋込処理システムの変形例である。以下、第5の実施形態において、第1乃至第4の実施形態において既に説明した部分と同等な機能を有する部分には同一符号を付し、説明を省略する。
図14を参照すると、第5の実施形態によるビット埋込処理システムは、後述する図15で参照される第i(i=1、2、3、4)のサーバ装置から成る。第5の実施形態によるビット埋込処理システムにおいて、サーバ装置500_1、500_2、500_3、500_4は、自身と異なるサーバ装置とネットワーク経由で通信可能に接続されている。図15は、第iのサーバ装置500_i(i=1、2、3、4)の機能構成例を示すブロック図である。
図15に示すように、第iのサーバ装置500_iは、第iのマスク値計算部401_iと、第iのシェア再構成データ生成部502_iと、第iのシェア構成部503_iと、第iの不正検知部504_iと、第iの算術演算部505_iと、第iの基本演算シード記憶部106_iと、第iのデータ記憶部507_iと、を含む。なお、第iのマスク値計算部401_iと、第iのシェア再構成データ生成部502_iと、第iのシェア構成部503_iと、第iの不正検知部504_iと、第iの算術演算部505_iと、第iの基本演算シード記憶部106_iと、第iのデータ記憶部507_iとは、それぞれ接続されている。
このような構成のビット埋込処理システムにおいては、第1乃至第4のサーバ装置500_1~500_4の内のいずれかの装置が入力した値
Figure 0007259876000478
、あるいは第1乃至第4のデータ記憶部507_1~507_4に記憶されたシェア
Figure 0007259876000479
、あるいは第1乃至第4のサーバ装置500_1~500_4ではない外部から入力されたシェア
Figure 0007259876000480

に対し、その入力や計算過程の値から
Figure 0007259876000481
の値を知られることなく、
Figure 0007259876000482
を計算し、第1乃至第4のデータ記憶部507_1~507_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置500_1~500_4がシェアを送受信し、復元されてよい。あるいは、第1乃至第4のサーバ装置500_1~500_4ではない外部にシェアが送信され、復元されてもよい。
次に、第5の実施形態におけるビット埋込処理システムおよび第1乃至第4のサーバ装置500_1~500_4の動作について、詳細に説明する。図15は、第1乃至第4のサーバ装置500_1~500_4のビット埋込に関する動作例を示すフローチャートである。
(ステップE1)
各基本演算シード記憶部106_1、106_2、106_3、106_4は、それぞれ
Figure 0007259876000483

Figure 0007259876000484

Figure 0007259876000485

Figure 0007259876000486
を記憶する。
また、各サーバ装置500_1~500_4は疑似ランダム関数
Figure 0007259876000487
を共有する。なお、
Figure 0007259876000488
とし、疑似ランダム関数
Figure 0007259876000489
とする。また、各データ記憶部507_1~507_4に、それぞれ
Figure 0007259876000490
を記憶する。ここで、
Figure 0007259876000491
は各データ記憶部507_iに記憶された
Figure 0007259876000492
である。
なお、
Figure 0007259876000493
に関して、サーバ装置500_i(i=1、2、3、4)の内、ある一台の参加者は
Figure 0007259876000494
の出力を計算できず、他の三台の参加者は
Figure 0007259876000495
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
Figure 0007259876000496
の扱いは特に制限されない。本書での
Figure 0007259876000497
はあくまでも一例である。
(ステップE2)
第1、第2、第3のマスク値計算部401_1、401_2、401_3は
Figure 0007259876000498
を計算し、第1、第2、第3のデータ記憶部507_1、507_2、507_3に
Figure 0007259876000499
を記憶する。第2のマスク値計算部401_2は、データ記憶部507_2からシェア
Figure 0007259876000500
を取り出す。第2のマスク値計算部401_2は、
Figure 0007259876000501
を生成し、
Figure 0007259876000502
を第4のサーバ装置500_4に送信する。第4のサーバ装置500_4は、第4のデータ記憶部507_4に
Figure 0007259876000503
を記憶する。
ここで、
Figure 0007259876000504
である。
Figure 0007259876000505
は、たとえば、カウンタであり、各サーバ装置500_1~500_4の間で共有している。
第1のシェア再構成データ生成部502_1、第2のシェア再構成データ生成部502_2及び第3のシェア再構成データ生成部502_3はそれぞれ、第1の基本演算シード記憶部307_1、第2の基本演算シード記憶部307_2、第3の基本演算シード記憶部307_3より、
Figure 0007259876000506
を取得する。そして、
Figure 0007259876000507
を生成する。
第2のシェア再構成データ生成部502_2は、
Figure 0007259876000508
を第2のシェア構成部503_2に送信する。第1のシェア再構成データ生成部502_1は、
Figure 0007259876000509
を第1のシェア構成部503_1に送信する。
また、第3のシェア再構成データ生成部502_3は、第3のデータ記憶部507_2から
Figure 0007259876000510
を取出し、
Figure 0007259876000511
を、第4のシェア構成部503_4に送信する。
ここで、
Figure 0007259876000512
である。
Figure 0007259876000513
は、たとえば、カウンタであり、各サーバ装置500_1~500_4の間で共有している。
(ステップE3)
各シェア構成部503_1、503_2、503_3、503_4は各データ記憶部507_1、507_2、507_3、507_4からそれぞれ、
Figure 0007259876000514

Figure 0007259876000515

Figure 0007259876000516

Figure 0007259876000517
を取り出す。さらに、各シェア構成部503_1、503_2、503_3、503_4は上記ステップE2で送信された値を用いて、以下の12の式によりシェアを構成する。
Figure 0007259876000518

Figure 0007259876000519

Figure 0007259876000520

Figure 0007259876000521

Figure 0007259876000522

Figure 0007259876000523

Figure 0007259876000524

Figure 0007259876000525

Figure 0007259876000526

Figure 0007259876000527

Figure 0007259876000528

Figure 0007259876000529

Figure 0007259876000530

Figure 0007259876000531

Figure 0007259876000532
は各i番目のデータ記憶部507_iに記憶される。
このように、各シェア再構成データ生成部502_iは、シェアの再構成に使用される乱数を生成する。その際、各シェア再構成データ生成部502_iは、値
Figure 0007259876000533
に関するシェア再構成データを生成する際、値
Figure 0007259876000534
とした場合に、
Figure 0007259876000535

Figure 0007259876000536
及び
Figure 0007259876000537
のうち2つがゼロとなるように乱数を生成する。上記ステップE3の例では、例えば、
Figure 0007259876000538
のとき、
Figure 0007259876000539
となるように乱数が生成されている。
(ステップE4)
各i番目の算術演算部505_iは互いに通信することで、環上での排他的論理和処理
Figure 0007259876000540
を以下のように計算する。ここで、
Figure 0007259876000541
とは、
Figure 0007259876000542

Figure 0007259876000543
を入力とし、
Figure 0007259876000544
を出力する処理である。例えば、下記の式が成り立つ。
Figure 0007259876000545

Figure 0007259876000546
ここで、
Figure 0007259876000547
である。各i番目の算術演算部505_iは、
Figure 0007259876000548
を各データ記憶部507_iに記憶する。
(ステップE5)
第1のサーバ装置500_1は、上記ステップE3における第2のサーバ装置500_2と同様、第1のマスク値計算部401_1は、
Figure 0007259876000549
を生成し、
Figure 0007259876000550
を第4のサーバ装置500_4に送信する。第4のサーバ装置500_4は、第4のデータ記憶部507_4に
Figure 0007259876000551
を記憶する。第4の不正検知部504_4は、第4のデータ記憶部507_4から
Figure 0007259876000552
を取り出し、
Figure 0007259876000553
が成り立つか否かを検証する。
Figure 0007259876000554
が成り立つ場合は、第4の不正検知部504_4はsuccessの文字列を各サーバ装置500_1、500_2、500_3にブロードキャストし、次のステップに進む。
Figure 0007259876000555
が成り立たない場合は、第4の不正検知部504_4はabortの文字列を各サーバ装置500_1、500_2、500_3にブロードキャストし、プロトコルを中断する。
次に、第2のシェア再構成データ生成部502_2は、第2のデータ記憶部507_2から
Figure 0007259876000556
を取り出す。次に、第2のシェア再構成データ生成部502_2は、
Figure 0007259876000557
を、第4の不正検知部504_4に送信する。第4の不正検知部504_4は、第4のデータ記憶部507_4に記憶されている
Figure 0007259876000558
を取出し、
Figure 0007259876000559
が成立するか否かを検証する。
成立した場合、第4の不正検知部504_4は、successの文字列を各サーバ装置500_1、500_2、500_3、500_4にブロードキャストし、次のステップに進む。成立しなかった場合、第4の不正検知部504_4は、abortの文字列を各サーバ装置500_1、500_2、500_3、500_4にブロードキャストし、プロトコルを中断する。
なお、大量のビット埋込処理を並列して実行する場合、
Figure 0007259876000560
に関しては、それぞれの値を連結したものに対するハッシュ値を送信し、ハッシュ値同士の比較によって検証してもよい。このとき、処理全体の計算量に対して、ハッシュ値の送信量は無視できるものと捉えることができる。
(ステップE6)
各i番目の不正検知部504_iは、上記ステップE4の
Figure 0007259876000561
における送受信データを用いて、突き合わせることで不正検知を行う。不正が検知されなかった第1乃至第4のサーバ装置500_1、500_2、500_3、500_4は、successの文字列を各サーバ装置にブロードキャストする。不正が検知された第1乃至第4のサーバ装置500_1、500_2、500_3、500_4は、abortの文字列を各サーバ装置にブロードキャストし、プロトコルを中断する。これは上述の不正検知可能な4者間秘密計算によって実現される。ステップE6は上記ステップE5と並列に実行することが可能である。
以上、説明した第5の実施形態においては、第1乃至第4の実施形態における効果と同じ効果を奏する。ただし、第1乃至第4の実施形態における第1の効果に関して、第5の実施形態は、通信の形態が異なる。このため、通信環境によっては、第5の実施形態の方が効率良く実行できる場合がある。なお、不正検知に関する処理を並列に行った場合、第5の実施形態では、ビット埋込の通信コストとして、12nビット・3ラウンドを要する。
[ハードウェア構成]
続いて、秘密計算システムをなす秘密計算サーバのハードウェア構成について説明する。
図17は、第iの秘密計算サーバ装置100_iのハードウェア構成の一例を示す図である。第iの秘密計算サーバ装置100_iは、所謂、情報処理装置(コンピュータ)により実現され、図17に例示する構成を備える。例えば、第iの秘密計算サーバ装置100_iは、内部バスにより相互に接続される、CPU(Central Processing Unit)21、メモリ22、入出力インターフェイス23、通信手段であるNIC(Network Interface Card)24等を備える。
但し、図17に示す構成は、第iの秘密計算サーバ装置100_iのハードウェア構成を限定する趣旨ではない。第iの秘密計算サーバ装置100_iは、図示しないハードウェアを含んでもよい。第iの秘密計算サーバ装置100_iに含まれるCPU等の数も図17の例示に限定する趣旨ではなく、例えば、複数のCPU21が第iの秘密計算サーバ装置100_iに含まれていてもよい。
メモリ22は、RAM(Random Access Memory)、ROM(Read Only Memory)、補助記憶装置(ハードディスク等)等である。
入出力インターフェイス23は、図示しない入出力装置のインターフェイスである。入出力装置には、例えば、表示装置、操作デバイス等が含まれる。表示装置は、例えば、液晶ディスプレイ等である。操作デバイスは、例えば、キーボードやマウス等である。
第iの秘密計算サーバ装置100_iの機能は、上述の処理モジュールにより実現される。当該処理モジュールは、例えば、メモリ22に格納されたプログラムをCPU21が実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能は、何らかのハードウェア、或いはハードウェアを利用して実行されるソフトウェアにより実現できればよい。
[変形例]
なお、第1乃至第5の実施形態にて説明した秘密計算検証システムの構成及び動作は例示であって、種々の変形が可能である。例えば、上記実施形態では、4つの秘密計算サーバ装置100_1~100_4が対等である場合を説明したが、1つのサーバ装置を代表サーバとして定めてもよい。この場合、代表サーバが秘密計算に用いるデータの入出力(入力データの分散及び配布、計算結果の復号)を制御してもよい。
上述の説明で用いたフローチャートでは、複数の工程(処理)が順番に記載されているが、各実施形態で実行される工程の実行順序は、その記載の順番に制限されない。各実施形態では、例えば各処理を並行して実行する等、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態は、内容が相反しない範囲で組み合わせることができる。即ち、上記各実施形態の任意の組み合わせが更なる実施形態として含まれる。
上述の説明で用いたフローチャートでは、複数の工程(処理)が順番に記載されているが、各実施形態で実行される工程の実行順序は、その記載の順番に制限されない。各実施形態では、例えば各処理を並行して実行する等、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態は、内容が相反しない範囲で組み合わせることができる。即ち、上記各実施形態の任意の組み合わせが更なる実施形態として含まれる。
上記の説明により、本発明の産業上の利用可能性は明らかであるが、本発明は、たとえば、
Figure 0007259876000562
の環上で実行される2-out-of-4複製型秘密分散を用いた不正検知可能な4者間MPCにて、生体テンプレート照合や統計演算などの混合回路の計算を効率よく実現する場合に好適である。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
上述の第1の視点に係る情報処理装置のとおりである。
[付記2]
前記シェア再構成データ生成部は、前記シェアの再構成に使用される乱数を生成する、好ましくは付記1に記載の情報処理装置。
[付記3]
前記シェア再構成データ生成部は、値x’に関する前記シェア再構成データを生成する際、値x’=x’+x’+x’とした場合に、x’、x’及びx’のうち2つの値が等しくなるように、乱数を生成する、好ましくは付記2に記載の情報処理装置。
[付記4]
前記シェア再構成データ生成部は、値x’に関する前記シェア再構成データを生成する際、値x’=x’+x’+x’とした場合に、x’、x’及びx’のうち2つがゼロとなるように乱数を生成する、好ましくは付記2に記載の情報処理装置。
[付記5]
前記シェア再構成データ生成部は、値xに関する前記シェア再構成データを生成する際、値x=x1+x2+x3とした場合に、x1、x2及びx3のうち2つの値が等しくなるように、乱数を生成すると共に、
値x’に関する前記シェア再構成データを生成する際、x’=x1’+x2’+x3’とした場合、x1’=x’+r、x2’=0、x3’=-rとなるように乱数rを生成する、好ましくは付記2に記載の情報処理装置。
[付記6]
前記ビット埋込用のシェアを用いて不正行為者の有無を検知する、不正検知部をさらに備える、好ましくは付記1乃至5のいずれか一に記載の情報処理装置。
[付記7]
前記ビット埋込用のシェアを用いて環上での排他的論理和を計算する、算術演算部をさらに備え、
前記不正検知部は、前記排他的論理和の計算時に送受信されたデータを用いて不正行為者の有無を検知する、好ましくは付記6に記載の情報処理装置。
[付記8]
前記ビット埋込用のシェアを用いた不正行為者の有無を検知することと、前記排他的論理和の計算時に送受信されたデータを用いて不正行為者の有無を検知すること、が並列に実行される、好ましくは付記7に記載の情報処理装置。
[付記9]
シェアをマスクするためのマスク値を計算すると共に、前記計算されたマスク値によりマスクされたシェアを他の装置に送信する、マスク値計算部をさらに備え、
前記シェア構成部は、前記送信されたマスク値を用いて前記ビット埋込用のシェアを構成する、好ましくは付記1乃至8のいずれか一に記載の情報処理装置。
[付記10]
前記不正検知部は、前記マスク値を用いて不正行為者の有無を検知する、好ましくは付記6乃至8のいずれか一項を引用する好ましくは付記6に記載の情報処理装置。
[付記11]
前記不正検知部は、前記不正行為者を検知した場合には、秘密計算に関するプロトコルを中断する、好ましくは付記6乃至10のいずれか一に記載の情報処理装置。
[付記12]
上述の第2の視点に係る秘密計算方法のとおりである。
[付記13]
上述の第3の視点に係るプログラムのとおりである。
なお、付記12の形態及び付記13の形態は、付記1の形態と同様に、付記2の形態~付記11の形態に展開することが可能である。
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択(部分的削除を含む)が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
10 情報処理装置
11、106_1、206_1、106_i、206_i 基本演算シード記憶部
12、102_1、202_1、302_1、402_1、502_1、102_i~502_i シェア再構成データ生成部
13、103_1、203_1、303_1、403_1、503_1、103_i~503_i シェア構成部
21 CPU(Central Processing Unit)
22 メモリ
23 入出力インターフェイス
24 NIC(Network Interface Card)
100_1~100_4、200_1~200_4、300_1~300_4、400_1~400_4、500_1~500_4、100_i~500_i 秘密計算サーバ装置
401_1、401_i マスク値計算部
104_1、204_1、304_1、404_1、504_1、104_i~504_i 不正検知部
105_1、205_1、305_1、405_1、505_1、105_i~505_i 算術演算部
107_1、207_1、307_1、407_1、507_1、107_i~507_i データ記憶部

Claims (11)

  1. 4者の装置間で値を秘密分散したシェアを記憶するデータ記憶部と、
    前記シェアについての演算を行う際に用いられる乱数を生成するためのシードを格納する、基本演算シード記憶部と、
    ビット埋込を行う際に用いられるシェアを再構成するためのシェア再構成データを前記シードを用いて生成する、シェア再構成データ生成部と、
    少なくとも前記シェア再構成データを用いて前記4者の装置が保有するシェアの数学的表現形式を統一したビット埋込用のシェアに前記シェアを変換する、シェア構成部と、
    を備える、情報処理装置。
  2. 前記シェア再構成データ生成部は、前記シェアの再構成に使用される乱数を生成する、請求項1に記載の情報処理装置。
  3. 前記シェア再構成データ生成部は、値x’に関する前記シェア再構成データを生成する際、値x’=x’+x’+x’とした場合に、x’、x’及びx’のうち2つの値が等しくなるように、前記生成された乱数を割り当てる、請求項2に記載の情報処理装置。
  4. 前記シェア再構成データ生成部は、値x’に関する前記シェア再構成データを生成する際、値x’=x’+x’+x’とした場合に、x’、x’及びx’のうち2つがゼロとなるように前記生成された乱数を割り当てる、請求項2に記載の情報処理装置。
  5. 前記シェア再構成データ生成部は、値xに関する前記シェア再構成データを生成する際、値x=x+x+xとした場合に、x、x及びxのうち2つの値が等しくなるように、前記生成された乱数を割り当てると共に、
    値x’に関する前記シェア再構成データを生成する際、x’=x’+x’+x’とした場合、x’=x’+r、x’=0、x’=-rとなるように前記生成された乱数rを割り当てる、請求項2に記載の情報処理装置。
  6. 前記ビット埋込用のシェアを用いて不正行為者の有無を検知する、不正検知部をさらに備える、請求項1乃至5のいずれか一項に記載の情報処理装置。
  7. 前記ビット埋込用のシェアを用いて環上での排他的論理和を計算する、算術演算部をさらに備え、
    前記不正検知部は、前記排他的論理和を行うのに不足している情報を補うために計算時に送受信された秘密分散データを用いて不正行為者の有無を検知する、請求項6に記載の情報処理装置。
  8. 前記ビット埋込用のシェアを用いた不正行為者の有無を検知することと、前記排他的論理和を行うのに不足している情報を補うために計算時に送受信された秘密分散データを用いて不正行為者の有無を検知すること、が並列に実行される、請求項7に記載の情報処理装置。
  9. シェアについての演算を行う際の乱数を生成するためのシードを格納する、基本演算シード記憶部を備える情報処理装置において、
    4者の装置間で値を秘密分散したシェアを取得するステップと、
    ビット埋込を行う際に用いられる前記シェアを再構成するためのシェア再構成データを前記シードを用いて生成するステップと、
    少なくとも前記シェア再構成データを用いて前記4者の装置が保有するシェアの数学的表現形式を統一したビット埋込用のシェアに前記シェアを変換するステップと、
    を含む、秘密計算方法。
  10. シェアについての演算を行う際の乱数を生成するためのシードを格納する、基本演算シード記憶部を備える情報処理装置に搭載されたコンピュータに、
    4者の装置間で値を秘密分散したシェアを取得する処理と、
    ビット埋込を行う際に用いられる前記シェアを再構成するためのシェア再構成データを前記シードを用いて生成する処理と、
    少なくとも前記シェア再構成データを用いて前記4者の装置が保有するシェアの数学的表現形式を統一したビット埋込用のシェアに前記シェアを変換する処理と、
    を実行させるプログラム。
  11. 前記情報処理装置は、ネットワークを介して第2乃至第4の前記情報処理装置と通信接続し、前記情報処理装置と第2乃至第4の前記情報処理装置は、2-out-of-4複製型秘密分散を用いた4者間MPCのサーバを構成する請求項1乃至8のいずれか一項に記載の情報処理装置。
JP2020571933A 2019-02-12 2019-02-12 情報処理装置、秘密計算方法及びプログラム Active JP7259876B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/004794 WO2020165932A1 (ja) 2019-02-12 2019-02-12 情報処理装置、秘密計算方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2020165932A1 JPWO2020165932A1 (ja) 2021-12-09
JP7259876B2 true JP7259876B2 (ja) 2023-04-18

Family

ID=72044666

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020571933A Active JP7259876B2 (ja) 2019-02-12 2019-02-12 情報処理装置、秘密計算方法及びプログラム

Country Status (3)

Country Link
US (1) US20220141000A1 (ja)
JP (1) JP7259876B2 (ja)
WO (1) WO2020165932A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210127168A (ko) * 2019-02-22 2021-10-21 인퍼, 인코포레이티드 모듈러 정수를 사용한 보안 다자간 계산을 위한 산술
WO2022153532A1 (ja) * 2021-01-18 2022-07-21 日本電気株式会社 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム
JPWO2022195799A1 (ja) * 2021-03-18 2022-09-22
US11881933B2 (en) * 2021-10-20 2024-01-23 VMware LLC Enhanced robust input protocol for secure multi-party computation (MPC) via hierarchical pseudorandom secret sharing
CN117118602B (zh) * 2023-06-29 2024-02-23 济南大学 一种基于复制秘密分享的安全比较协议的实现方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9813234B2 (en) * 2015-05-11 2017-11-07 The United States of America, as represented by the Secretery of the Air Force Transferable multiparty computation
US10778439B2 (en) * 2015-07-14 2020-09-15 Fmr Llc Seed splitting and firmware extension for secure cryptocurrency key backup, restore, and transaction signing platform apparatuses, methods and systems
US11222138B2 (en) * 2018-05-29 2022-01-11 Visa International Service Association Privacy-preserving machine learning in the three-server model

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MOHASSEL, Payman and RINDAL, Peter,ABY3: A Mixed Protocol Framework for Machine Learning,Cryptology ePrint Archive,2018年09月,Report 2018/403, Ver. 20180907:215141,pp. 1-40,[2019年4月26日検索], インターネット<URL:https://eprint.iacr.org/2018/403/20180907:215141>
大原 一真, 他,異なるサイズの環が混在する不正検知可能なマルチパーティー計算,2018年暗号と情報セキュリティシンポジウム(SCIS 2018),2018年01月23日,2A1-4, pp.1-8

Also Published As

Publication number Publication date
JPWO2020165932A1 (ja) 2021-12-09
WO2020165932A1 (ja) 2020-08-20
US20220141000A1 (en) 2022-05-05

Similar Documents

Publication Publication Date Title
JP7259876B2 (ja) 情報処理装置、秘密計算方法及びプログラム
Chaudhari et al. Trident: Efficient 4pc framework for privacy preserving machine learning
US10083310B1 (en) System and method for mobile proactive secure multi-party computation (MPMPC) using commitments
US10375070B2 (en) Generating cryptographic function parameters from compact source code
JP5925969B2 (ja) 2パーティ秘匿関数計算向けの入力整合性検証
EP2701337B1 (en) Secret sharing method and system
JP6016948B2 (ja) 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム
CN113591146B (zh) 基于合作的高效安全两方计算系统及计算方法
JP2021515271A (ja) コンピュータにより実施される投票処理およびシステム
CN105337736A (zh) 全同态消息认证方法、装置及系统
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
JP2021510954A (ja) デジタル署名されたデータを取得するためのコンピュータにより実施される方法及びシステム
JPWO2017099117A1 (ja) 事前計算装置、方法、およびコンピュータ読取可能な記録媒体、並びにベクトル乗算装置、および方法
CN108028751B (zh) 用于移动主动秘密共享的系统、计算机可读介质和方法
WO2017006118A1 (en) Secure distributed encryption system and method
JP7047764B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法および秘密計算プログラム
JP7259875B2 (ja) 情報処理装置、秘密計算方法及びプログラム
JP6607257B2 (ja) 秘密計算システム、秘密計算装置、および、秘密計算方法
EP4348924A1 (en) Multi-party computation for many computers
CN110622232B (zh) 秘密篡改探测系统、秘密篡改探测装置、秘密篡改探测方法以及程序
US20230046000A1 (en) Secure computation system, secure computation server apparatus, securecomputation method, and secure computation program
EP3675088B1 (en) Share generating device, share converting device, secure computation system, share generation method, share conversion method, program, and recording medium
JP6881588B2 (ja) 秘密計算装置、秘密計算方法、プログラム、および記録媒体
CN110557245B (zh) 用于spdz的容错和安全多方计算的方法和系统
Chandrashekhar et al. VERIFICATION OF DATA INTEGRITY, COMPLETION, AND ORDERING IN A GENERALIZED DATA TRANSFER NETWORK USING DECOMPOSITION

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210811

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230209

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230320

R151 Written notification of patent or utility model registration

Ref document number: 7259876

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151