JP7259876B2 - 情報処理装置、秘密計算方法及びプログラム - Google Patents
情報処理装置、秘密計算方法及びプログラム Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Description
の値のシェアを
、n=1のときの
の値のシェアを
として表記する。
上での算術演算を実現する。非特許文献1に開示されたMPCは、
上での乗算1回あたり、3nビットの通信コストを要する。つまり、参加者あたりnビットの通信コストで乗算を実現できる。
上での乗算1回あたり、21nビットの通信コストを要する。つまり、参加者あたり7nビットの通信コストで不正検知機能付きの乗算を実現できる。
から
のシェアを得ることが挙げられる。このような処理は、算術回路や論理回路が混在した混合回路に対し、効率よくMPCを実行したい場合に重要な処理となる。特に、条件判定の結果を用いて、処理を分岐させる場合に、重要な処理となる。たとえば、非特許文献2の方式を用いて非特許文献3で提案されたビット埋込を実行した場合、マリシャス攻撃者の存在を許容できる、通信コストは42nビット・2ラウンドとなる。
上での乗算1回あたり、5nビットの通信コストで実現できる。つまり、参加者あたり1.25nビットの通信コストで乗算を実現できる。これは2-out-of-4複製型秘密分散を用いた方法である。
のシェアを
として、
をP_iのシェアとする。また、
のシェアを
として、
をP_iのシェアとする。このとき、
に対して、
とすると、
とする。また、
に対して、
とすると、
とする。
に関して、参加者の内、ある一人の参加者は
の出力を計算できず、他の三人の参加者は
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
の扱いは特に制限されない。本書での
はあくまでも一例である。
を
上のシェアに関する加法演算子、減法演算子、乗法演算子とする。なお、これらの演算子は
上の要素に対する二項演算子としての加法演算子、減法演算子、乗法演算子としても以降用いることに注意されたい。
上のシェアに関する加法演算子、乗法演算子について、
としたとき、以下の4つの式が成り立つ。
を
上のシェアに関する排他的論理和、論理積とする。なお、これらの演算子は
上の要素に対する二項演算子としての排他的論理和、論理積としても以降用いることに注意されたい。
上のシェアに関する排他的論理和、論理積について、
としたとき、以下の4つの式が成り立つ。
上のシェアに関する演算についても、
上のシェアに関する演算と同様に実行できるので説明を割愛する。このとき、参加者中にマリシャス攻撃者が1人存在したとしても、各自のシェアと異なる参加者から受信した値を用いて、値の改ざんがなかったか検証できる。改ざんがあった場合は、プロトコルを中断する。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
第1の実施形態について、図面を用いてより詳細に説明する。
、あるいは第1乃至第4のデータ記憶部107_1~107_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置100_1~100_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部107_1~107_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置100_1~100_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置100_1~100_4ではない外部にシェアが送信され、復元されてもよい。
上の値xのシェア
に対してビット埋込を行う場合について説明する。その際、各サーバ装置100_iは、
上の値xのシェア
から
上の値x2のシェア
と
のシェア
を計算(構成)するためのデータを生成する。各サーバ装置100_iは、
上の値xのシェア
を保持する。例えば、
とした際、各サーバ装置100_iは、以下の値の組を保持する。
サーバ装置100_1:
サーバ装置100_2:
サーバ装置100_3:
サーバ装置100_4:
例えば、値x=1とし、
、
、
であれば、サーバ装置100_1は(1、0)を保持する。
このような状況下において、ビット埋込を行う場合、
上の値xのシェア
から
上の値x2のシェア
と値
のシェア
を計算する。
を共有する。なお、
とし、疑似ランダム関数
とする。また、各データ記憶部107_1~107_4に、それぞれ
を記憶する。ここで、
は各データ記憶部107_iに記憶された
である。
に関して、サーバ装置100_i(i=1、2、3、4)の内、ある一台の参加者は
の出力を計算できず、他の三台の参加者は
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
の扱いは特に制限されない。本書での
はあくまでも一例である。
ステップA2において、第iのシェア再構成データ生成部102_iは、ビット埋込を行う際に用いられるシェアを再構成するためのデータ(シェア再構成データ)を生成する。具体的には、第iのシェア再構成データ生成部102_iは、
上の値xのシェア
から
上の値x2のシェア
と
のシェア
を計算(構成)するためのデータを生成する。
)のシェアを再構成するためのデータを生成する際、x’=x1’+x2’+x3’とした場合、rを乱数としてx1’=x’+r、x2’=0、x3’=-rとなるように乱数rを生成する。
を取得する。
を生成(計算)する。さらに、第1のシェア再構成データ生成部102_1は、
を第1のデータ記憶部107_1に記憶する。第3のシェア再構成データ生成部102_3は、
を、第3のシェア構成部103_3に送信する。また、第2のシェア再構成データ生成部102_2は、第2のデータ記憶部107_2から
を取り出し、
を、第4のシェア構成部103_4に送信する。
を取得する。第3のシェア再構成データ生成部102_3は、第3の基本演算シード記憶部106_3から
を取得する。第4のシェア再構成データ生成部102_4は、第4の基本演算シード記憶部106_4から
を取得する。また、第4のシェア再構成データ生成部102_4は、第4のデータ記憶部107_4から
を取得する。
を計算する。第2のシェア再構成データ生成部102_2、第3のシェア再構成データ生成部102_3および第4のシェア再構成データ生成部102_4は、それぞれ、第2のデータ記憶部107_2、第3のデータ記憶部107_3および第4のデータ記憶部107_4に上記
を送信する。
を用いて、
を生成し、第1のシェア構成部103_1および第4のシェア構成部103_4に送信する。同様に第3のシェア再構成データ生成部102_3は、
を生成し、第3のシェア構成部103_3に
、第3のデータ記憶部107_3に
を送信する。
各シェア構成部103_1、103_2、103_3、103_4は各データ記憶部107_1、107_2、107_3、107_4からそれぞれ、
、
、
、
を取り出す。さらに、各シェア構成部104_1、104_2、104_3、104_4は上記ステップA2で送信された値を用いて、以下の8の式によりシェアを構成する。
、
は各i番目のデータ記憶部108_iに記憶される。
と、シェア再構成データ生成部102_iが生成したデータ(例えば、乱数r、r’、z等)を用いて
上の値xのシェア
から
上の値x2のシェア
と
のシェア
を再構成する。具体的には、上記8の式のうち上から4番目までの式は、
に関する再構成されたシェアを示す。また、上記8の式のうち上から5番目~8番目までの式は、
に関する再構成されたシェアを示す。
x2_1=r
x2_2=x2-2r
x2_3=r
となり、第iのシェア再構成データ生成部102_iによる値xのシェアを再構成するためのデータ生成時に作られる乱数rは正しく生成されていることが分かる。つまり、第iのシェア再構成データ生成部102_iは、ある値xのシェアを再構成するためのデータを生成する際、x=x1+x2+x3とした場合、x1、x2、x3のうち2つの値が等しくなるように乱数を生成する。
とした場合、
となり、第iのシェア再構成データ生成部102_iによる値
のシェアを再構成するためのデータ生成時に作られる乱数rは正しく生成されていることが分かる。
つまり、第iのシェア再構成データ生成部102_iは、ある値x’のシェアを再構成するためのデータを生成する際、x’=x1’+x2’+x3’とした場合、rを乱数としてx1’=x’+r、x2’=0、x3’=-rとなるように乱数rを生成する。
各i番目の算術演算部105_iが互いに通信することで、環上での排他的論理和処理
を以下のように計算する。ここで、
とは、
、
を入力とし、
を出力する処理である。例えば、以下の式がなりたつ。
ここで、
である。各i番目の算術演算部105_iは、
を各データ記憶部107_iに記憶する。このように、算術演算部105_iは、ビット埋込用のシェアを用いて環上での排他的論理和を計算する。
第1のシェア再構成データ生成部102_1は、
を第1のデータ記憶部107_1から取り出す。次に、第1のシェア再構成データ生成部102_1は、
を、第4の不正検知部104_4に送信する。
が成り立たない場合は、第1の不正検知部104_1はabortの文字列を各サーバ装置100_2、100_3、100_4にブロードキャストし、プロトコルを中断する。
、
に関しては、それぞれの値を連結したものに対するハッシュ値を送信し、ハッシュ値同士の比較によって検証してもよい。このとき、処理全体の計算量に対して、ハッシュ値の送信量は無視できるものと捉えることができる。
各i番目の不正検知部104_iは、上記ステップA4の
における送受信データを用いて、突き合わせることで不正検知を行う。不正が検知されなかった第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と並列に実行することが可能である。
図5~図7を参照して、第2の実施形態に係るビット埋込処理システムについて説明する。
、あるいは第1乃至第4のデータ記憶部207_1~207_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置200_1~200_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部207_1~207_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置200_1~200_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置200_1~200_4ではない外部にシェアが送信され、復元してもよい。
に関して、サーバ装置200_i(i=1、2、3、)の内、ある一台の参加者は
の出力を計算できず、他の三台の参加者は
の出力を計算できるという状況を作ることを意図している。また、
は、サーバ装置200_1、200_2、200_3の内、ある一台の参加者は
の出力を計算できず、他の二台の参加者は
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
の扱いは特に制限されない。本書での
はあくまでも一例である。
第1のシェア再構成データ生成部202_1と第2のシェア再構成データ生成部202_2はそれぞれ、第1の基本演算シード記憶部207_1、第2の基本演算シード記憶部206_2より、
を取得する。
を生成する。そして、第1のシェア再構成データ生成部202_1は、
を第1のデータ記憶部207_1に記憶する。第2のシェア再構成データ生成部202_2は、
を、第3のシェア構成部203_3に送信する。また、第2のシェア再構成データ生成部202_2は
を、第4のシェア構成部203_4に送信する。
を生成する。第2のシェア再構成データ生成部202_2は、
を第2のデータ記憶部207_2に記憶する。第3のシェア再構成データ生成部202_3は、
を、第1のシェア構成部203_1に送信する。また、第3のシェア再構成データ生成部202_3は
を、第4のシェア構成部203_4に送信する。
を生成する。第3のシェア再構成データ生成部202_3は、
を第3のデータ記憶部207_3に記憶する。第1のシェア再構成データ生成部202_1は、
を、第2のシェア構成部203_2に送信する。また、第1のシェア再構成データ生成部202_1は
を、第4のシェア構成部203_4に送信する。
各シェア構成部204_1、204_2、204_3、204_4は上記ステップB2で送信された値を用いて、以下の12の式によりシェアを構成する。
、
、
は各i番目のデータ記憶部207_iに記憶される。
各i番目の算術演算部205_iは互いに通信することで、環上での排他的論理和処理
を以下のように計算する。ここで、
とは、
、
を入力とし、
を出力する処理である。例えば、以下の式が成り立つ。
ここで、
である。各i番目の算術演算部205_iは、
を各データ記憶部207_iに記憶する。
第1のシェア再構成データ生成部202_1は、第1のデータ記憶部207_1から
を取り出す。次に、第1のシェア再構成データ生成部202_1は、
を、第3の不正検知部204_3に送信する。また、第1のシェア再構成データ生成部202_1は、
を、第4の不正検知部204_4に送信する。
、第4のデータ記憶部207_4に記憶されている
を取出し、値が一致するか否かを検証する。
それぞれとを連結した値に対するハッシュ値と、
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するか否かを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
に関しても同様である。
を第2のデータ記憶部207_2から取り出す。次に、第2のシェア再構成データ生成部202_2は、
を、第1の不正検知部204_1に送信する。また、第2のシェア再構成データ生成部202_2は、
を、第4の不正検知部204_4に送信する。
、第4のデータ記憶部207_4に記憶されている
を取出し、値が一致するか否かを検証する。
それぞれとを連結した値に対するハッシュ値と、
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するか否かを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
に関しても同様である。
を第3のデータ記憶部208_3から取り出す。次に、第3のシェア再構成データ生成部202_3は、
を、第2の不正検知部204_2に送信する。また、第3のシェア再構成データ生成部202_3は、
を、第4の不正検知部204_4に送信する。
、第4のデータ記憶部207_4に記憶されている
を取り出し、値が一致するか否かを検証する。
それぞれとを連結した値に対するハッシュ値と、
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するか否かを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
に関しても同様である。
各i番目の不正検知部204_iは、上記ステップB4の
における送受信データを用いて、突き合わせることで不正検知を行う。不正が検知されなかった第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と並列に実行することが可能である。
の計算回数が増加していることに注意する。第1の実施形態では、ビット埋込に関して
の計算を1回で実行できる。一方で第2の実施形態では、ビット埋込に関して
の計算を2回で実行できる。通信コストとしては、16nビット・3ラウンドとなる。
図8~図10を参照して、第3の実施形態に係るビット埋込処理システムについて説明する。
、あるいは第1乃至第4のデータ記憶部307_1~307_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置300_1~300_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部307_1~307_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置300_1~300_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置300_1~300_4ではない外部にシェアが送信され、復元されてもよい。
を共有する。なお、
とし、疑似ランダム関数
とする。また、各データ記憶部307_1~307_4に、それぞれ
を記憶する。ここで、
は各データ記憶部307_iに記憶された
である。
に関して、サーバ装置300_i(i=1、2、3、4)の内、ある一台の参加者は
の出力を計算できず、他の三台の参加者は
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
の扱いは特に制限されない。本書での
はあくまでも一例である。
第1のシェア再構成データ生成部302_1、第2のシェア再構成データ生成部302_2及び第3のシェア再構成データ生成部302_3はそれぞれ、第1の基本演算シード記憶部106_1、第2の基本演算シード記憶部106_2、第3の基本演算シード記憶部106_3より、
を取得する。
を生成する。そして、第1のシェア再構成データ生成部302_1は、
を第1のシェア構成部303_1に送信する。第3のシェア再構成データ生成部302_2は
を、第3のシェア構成部303_4に送信する。
を生成する。第2のシェア再構成データ生成部302_2は、
を第2のシェア構成部303_2に送信する。第1のシェア再構成データ生成部302_3は、
を第1のシェア構成部303_1に送信する。
を生成する。第3のシェア再構成データ生成部302_3は、
を第3のシェア構成部303_3に送信する。第2のシェア再構成データ生成部302_2は、
を第2のシェア構成部303_2に送信する。
各シェア構成部304_1、304_2、304_3、304_4は上記ステップC2で送信された値と、各i番目のデータ記憶部308_iに記憶された
を用いて、以下の12の式によりシェアを構成する。
、
、
は各i番目のデータ記憶部307_iに記憶される。
に関するシェア再構成データを生成する際、値
とした場合に、
、
及び
のうち2つの値が等しくなるように、乱数を生成する。上記ステップC3の例では、例えば、
のとき、
となるように乱数が生成されている。
各i番目の算術演算部205_iは相互に通信することで、環上での排他的論理和処理
を以下のように計算する。ここで、
とは、
、
を入力とし、
を出力する処理である。例えば、以下の式が成り立つ。
ここで、
である。各i番目の算術演算部205_iは、
を各データ記憶部307_iに記憶する。
第1のシェア再構成データ生成部302_1は、第1のデータ記憶部307_1から
を取り出す。次に、第1のシェア再構成データ生成部302_1は、
を、第4の不正検知部304_4に送信する。第4の不正検知部304_4は、第4のデータ記憶部307_4に記憶されている
を取出し、
、かつ、
が成り立つかを検証する。
を取り出す。次に、第2のシェア再構成データ生成部302_2は、
を、第4の不正検知部304_4に送信する。第4の不正検知部304_4は、第4のデータ記憶部307_4に記憶されている
を取出し、
が成立するか否かを検証する。
を取り出す。次に、第3のシェア再構成データ生成部302_3は、
を、第4の不正検知部304_4に送信する。第4の不正検知部304_4は、第4のデータ記憶部307_4に記憶されている
を取出し、
が成立するか否かを検証する。
については、それぞれの値を連結したものに対するハッシュ値を送信し、ハッシュ値同士の比較によって検証してもよい。このとき、処理全体の計算量に対して、ハッシュ値の送信量は無視できるものと捉えることができる。
各i番目の不正検知部304_iは、上記ステップC4の
における送受信データを用いて、突き合わせることで不正検知を行う。不正が検知されなかった第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と並列に実行することが可能である。つまり、ビット埋込用のシェアを用いた不正行為者の有無を検知することと、排他的論理和の計算時に送受信されたデータを用いて不正行為者の有無を検知することは並列に実行することができる。
の計算を2回行うことで実行できる。第3の実施形態と第2の実施形態とで異なる点は、環上での排他的論理和計算前の再分散が効率よく行われている点である。不正検知に関する処理を並列に行った場合、第3の実施形態では、ビット埋込の通信コストとして、13nビット・3ラウンドを要する。これより、第3の実施形態の方が第1又は第2の実施形態よりも通信コストの点で効率が良い。
図11~図13を参照して、第4の実施形態に係るビット埋込システムについて説明する。
、あるいは第1乃至第4のデータ記憶部407_1~407_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置400_1~400_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部407_1~407_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置400_1~400_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置400_1~400_4ではない外部にシェアが送信され、復元されてもよい。
は各データ記憶部407_iに記憶された
である。なお、
に関して、サーバ装置400_i(i=1、2、3、4)の内、ある一台の参加者は
の出力を計算できず、他の三台の参加者は
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
の扱いは特に制限されない。本書での
はあくまでも一例である。
第1、第2、第3のマスク値計算部401_1、401_2、401_3は
を計算し、第1、第2、第3のデータ記憶部407_1、407_2、407_3に
を記憶する。第2のマスク値計算部401_2は、データ記憶部407_2からシェア
を取り出す。
各シェア構成部403_1、403_2、403_3、403_4は各データ記憶部407_1、407_2、407_3、407_4からそれぞれ、
、
、
、
を取り出し、以下の16の式によりシェアを構成する。
、
、
、
は各i番目のデータ記憶部407_iに記憶される。なお、3-1は
上での3の乗法逆元を意味する。ここで、3と2nは互いに素なので、任意のn(≧2)に対して、
上で3-1は存在する。
各i番目の算術演算部405iは互いに通信することで、環上での排他的論理和処理
を以下のように計算する。ここで、
とは、
、
を入力とし、
を出力する処理である。例えば、以下の式が成り立つ。
ここで、
である。各i番目の算術演算部405_iは、
を各データ記憶部407_iに記憶する。
第1のサーバ装置400_1は、上記ステップD3における第2のサーバ装置400_2と同様、第1のマスク値計算部401_1は、
を生成し、
を第4のサーバ装置400_4に送信する。第4のサーバ装置400_4は、第4のデータ記憶部407_4に
を記憶する。第4の不正検知部404_4は、第4のデータ記憶部407_4から
を取り出し、
が成り立つか否かを検証する。
が成り立たない場合は、第4の不正検知部404_4はabortの文字列を各サーバ装置400_1、400_2、400_3にブロードキャストし、プロトコルを中断する。
を連結してハッシュ値
を計算し、
に対しても連結した値に対するハッシュ値
を計算することで、
が成り立つか否かの検証を
が成り立つか否かの検証と捉えてもよい。このとき、
に関する通信量は処理全体の計算量に対し、無視できるものと捉えることができる。
各i番目の不正検知部404_iは、上記ステップD4の
における送受信データを用いて、突き合わせることで不正検知を行う。不正が検知されなかった第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と並列に実行することが可能である。
の環上で実行される2-out-of-4複製型秘密分散を用いた不正検知可能な4者間MPCによる乗算に要する通信路の一部である。つまり、第4の実施形態ではビット埋込を行うにあたり、上記MPCによる乗算に要する通信路以外は必要としない。第1乃至第3の実施形態では、上記MPCによる乗算に要する通信路以外に、追加の通信が必要である。このため、通信環境によっては、第4の実施形態の方が効率の面で良い場合がある。なお、第4の実施形態によるビット埋込のコストは、大量の処理を並列に行う場合は、16nビット・3ラウンドとなる。
図14~図16を参照して、第5の実施形態に係るビット埋込処理システムについて説明する。
、あるいは第1乃至第4のデータ記憶部507_1~507_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置500_1~500_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部507_1~507_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置500_1~500_4がシェアを送受信し、復元されてよい。あるいは、第1乃至第4のサーバ装置500_1~500_4ではない外部にシェアが送信され、復元されてもよい。
を共有する。なお、
とし、疑似ランダム関数
とする。また、各データ記憶部507_1~507_4に、それぞれ
を記憶する。ここで、
は各データ記憶部507_iに記憶された
である。
に関して、サーバ装置500_i(i=1、2、3、4)の内、ある一台の参加者は
の出力を計算できず、他の三台の参加者は
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
の扱いは特に制限されない。本書での
はあくまでも一例である。
第1、第2、第3のマスク値計算部401_1、401_2、401_3は
を計算し、第1、第2、第3のデータ記憶部507_1、507_2、507_3に
を記憶する。第2のマスク値計算部401_2は、データ記憶部507_2からシェア
を取り出す。第2のマスク値計算部401_2は、
を生成し、
を第4のサーバ装置500_4に送信する。第4のサーバ装置500_4は、第4のデータ記憶部507_4に
を記憶する。
を取得する。そして、
を生成する。
各シェア構成部503_1、503_2、503_3、503_4は各データ記憶部507_1、507_2、507_3、507_4からそれぞれ、
、
、
、
を取り出す。さらに、各シェア構成部503_1、503_2、503_3、503_4は上記ステップE2で送信された値を用いて、以下の12の式によりシェアを構成する。
、
、
は各i番目のデータ記憶部507_iに記憶される。
に関するシェア再構成データを生成する際、値
とした場合に、
、
及び
のうち2つがゼロとなるように乱数を生成する。上記ステップE3の例では、例えば、
のとき、
となるように乱数が生成されている。
各i番目の算術演算部505_iは互いに通信することで、環上での排他的論理和処理
を以下のように計算する。ここで、
とは、
、
を入力とし、
を出力する処理である。例えば、下記の式が成り立つ。
ここで、
である。各i番目の算術演算部505_iは、
を各データ記憶部507_iに記憶する。
第1のサーバ装置500_1は、上記ステップE3における第2のサーバ装置500_2と同様、第1のマスク値計算部401_1は、
を生成し、
を第4のサーバ装置500_4に送信する。第4のサーバ装置500_4は、第4のデータ記憶部507_4に
を記憶する。第4の不正検知部504_4は、第4のデータ記憶部507_4から
を取り出し、
が成り立つか否かを検証する。
が成り立たない場合は、第4の不正検知部504_4はabortの文字列を各サーバ装置500_1、500_2、500_3にブロードキャストし、プロトコルを中断する。
を取り出す。次に、第2のシェア再構成データ生成部502_2は、
を、第4の不正検知部504_4に送信する。第4の不正検知部504_4は、第4のデータ記憶部507_4に記憶されている
を取出し、
が成立するか否かを検証する。
に関しては、それぞれの値を連結したものに対するハッシュ値を送信し、ハッシュ値同士の比較によって検証してもよい。このとき、処理全体の計算量に対して、ハッシュ値の送信量は無視できるものと捉えることができる。
各i番目の不正検知部504_iは、上記ステップE4の
における送受信データを用いて、突き合わせることで不正検知を行う。不正が検知されなかった第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と並列に実行することが可能である。
続いて、秘密計算システムをなす秘密計算サーバのハードウェア構成について説明する。
なお、第1乃至第5の実施形態にて説明した秘密計算検証システムの構成及び動作は例示であって、種々の変形が可能である。例えば、上記実施形態では、4つの秘密計算サーバ装置100_1~100_4が対等である場合を説明したが、1つのサーバ装置を代表サーバとして定めてもよい。この場合、代表サーバが秘密計算に用いるデータの入出力(入力データの分散及び配布、計算結果の復号)を制御してもよい。
の環上で実行される2-out-of-4複製型秘密分散を用いた不正検知可能な4者間MPCにて、生体テンプレート照合や統計演算などの混合回路の計算を効率よく実現する場合に好適である。
[付記1]
上述の第1の視点に係る情報処理装置のとおりである。
[付記2]
前記シェア再構成データ生成部は、前記シェアの再構成に使用される乱数を生成する、好ましくは付記1に記載の情報処理装置。
[付記3]
前記シェア再構成データ生成部は、値x’に関する前記シェア再構成データを生成する際、値x’=x1’+x2’+x3’とした場合に、x1’、x2’及びx3’のうち2つの値が等しくなるように、乱数を生成する、好ましくは付記2に記載の情報処理装置。
[付記4]
前記シェア再構成データ生成部は、値x’に関する前記シェア再構成データを生成する際、値x’=x1’+x2’+x3’とした場合に、x1’、x2’及びx3’のうち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の形態に展開することが可能である。
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)
- 4者の装置間で値を秘密分散したシェアを記憶するデータ記憶部と、
前記シェアについての演算を行う際に用いられる乱数を生成するためのシードを格納する、基本演算シード記憶部と、
ビット埋込を行う際に用いられるシェアを再構成するためのシェア再構成データを前記シードを用いて生成する、シェア再構成データ生成部と、
少なくとも前記シェア再構成データを用いて前記4者の装置が保有するシェアの数学的表現形式を統一したビット埋込用のシェアに前記シェアを変換する、シェア構成部と、
を備える、情報処理装置。 - 前記シェア再構成データ生成部は、前記シェアの再構成に使用される乱数を生成する、請求項1に記載の情報処理装置。
- 前記シェア再構成データ生成部は、値x’に関する前記シェア再構成データを生成する際、値x’=x1’+x2’+x3’とした場合に、x1’、x2’及びx3’のうち2つの値が等しくなるように、前記生成された乱数を割り当てる、請求項2に記載の情報処理装置。
- 前記シェア再構成データ生成部は、値x’に関する前記シェア再構成データを生成する際、値x’=x1’+x2’+x3’とした場合に、x1’、x2’及びx3’のうち2つがゼロとなるように前記生成された乱数を割り当てる、請求項2に記載の情報処理装置。
- 前記シェア再構成データ生成部は、値xに関する前記シェア再構成データを生成する際、値x=x1+x2+x3とした場合に、x1、x2及びx3のうち2つの値が等しくなるように、前記生成された乱数を割り当てると共に、
値x’に関する前記シェア再構成データを生成する際、x’=x1’+x2’+x3’とした場合、x1’=x’+r、x2’=0、x3’=-rとなるように前記生成された乱数rを割り当てる、請求項2に記載の情報処理装置。 - 前記ビット埋込用のシェアを用いて不正行為者の有無を検知する、不正検知部をさらに備える、請求項1乃至5のいずれか一項に記載の情報処理装置。
- 前記ビット埋込用のシェアを用いて環上での排他的論理和を計算する、算術演算部をさらに備え、
前記不正検知部は、前記排他的論理和を行うのに不足している情報を補うために計算時に送受信された秘密分散データを用いて不正行為者の有無を検知する、請求項6に記載の情報処理装置。 - 前記ビット埋込用のシェアを用いた不正行為者の有無を検知することと、前記排他的論理和を行うのに不足している情報を補うために計算時に送受信された秘密分散データを用いて不正行為者の有無を検知すること、が並列に実行される、請求項7に記載の情報処理装置。
- シェアについての演算を行う際の乱数を生成するためのシードを格納する、基本演算シード記憶部を備える情報処理装置において、
4者の装置間で値を秘密分散したシェアを取得するステップと、
ビット埋込を行う際に用いられる前記シェアを再構成するためのシェア再構成データを前記シードを用いて生成するステップと、
少なくとも前記シェア再構成データを用いて前記4者の装置が保有するシェアの数学的表現形式を統一したビット埋込用のシェアに前記シェアを変換するステップと、
を含む、秘密計算方法。 - シェアについての演算を行う際の乱数を生成するためのシードを格納する、基本演算シード記憶部を備える情報処理装置に搭載されたコンピュータに、
4者の装置間で値を秘密分散したシェアを取得する処理と、
ビット埋込を行う際に用いられる前記シェアを再構成するためのシェア再構成データを前記シードを用いて生成する処理と、
少なくとも前記シェア再構成データを用いて前記4者の装置が保有するシェアの数学的表現形式を統一したビット埋込用のシェアに前記シェアを変換する処理と、
を実行させるプログラム。 - 前記情報処理装置は、ネットワークを介して第2乃至第4の前記情報処理装置と通信接続し、前記情報処理装置と第2乃至第4の前記情報処理装置は、2-out-of-4複製型秘密分散を用いた4者間MPCのサーバを構成する請求項1乃至8のいずれか一項に記載の情報処理装置。
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)
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)
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 |
-
2019
- 2019-02-12 WO PCT/JP2019/004794 patent/WO2020165932A1/ja active Application Filing
- 2019-02-12 JP JP2020571933A patent/JP7259876B2/ja active Active
- 2019-02-12 US US17/430,507 patent/US20220141000A1/en active Pending
Non-Patent Citations (2)
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 |