JPWO2020165931A1 - 情報処理装置、秘密計算方法及びプログラム - Google Patents
情報処理装置、秘密計算方法及びプログラム Download PDFInfo
- Publication number
- JPWO2020165931A1 JPWO2020165931A1 JP2020571932A JP2020571932A JPWO2020165931A1 JP WO2020165931 A1 JPWO2020165931 A1 JP WO2020165931A1 JP 2020571932 A JP2020571932 A JP 2020571932A JP 2020571932 A JP2020571932 A JP 2020571932A JP WO2020165931 A1 JPWO2020165931 A1 JP WO2020165931A1
- Authority
- JP
- Japan
- Prior art keywords
- share
- unit
- value
- value calculation
- redispersion
- 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.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 457
- 230000010365 information processing Effects 0.000 title claims abstract description 30
- 238000006243 chemical reaction Methods 0.000 claims abstract description 132
- 238000012545 processing Methods 0.000 claims abstract description 123
- 108010016634 Seed Storage Proteins Proteins 0.000 claims abstract description 59
- 238000001514 detection method Methods 0.000 claims description 220
- 238000004891 communication Methods 0.000 claims description 88
- 238000000034 method Methods 0.000 claims description 85
- 230000008569 process Effects 0.000 claims description 61
- 230000000873 masking effect Effects 0.000 claims description 5
- 239000006185 dispersion Substances 0.000 claims 1
- 230000010076 replication Effects 0.000 abstract description 6
- 238000013500 data storage Methods 0.000 description 219
- 238000000354 decomposition reaction Methods 0.000 description 46
- 238000010586 diagram Methods 0.000 description 33
- 230000015572 biosynthetic process Effects 0.000 description 29
- 238000003786 synthesis reaction Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 26
- 238000012795 verification Methods 0.000 description 15
- 230000000694 effects Effects 0.000 description 13
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 230000006399 behavior Effects 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/764—Masking
-
- 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
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
- Hardware Redundancy (AREA)
Abstract
Description
の値のシェアを
、n=1
のときの
の値のシェアを
として表記する。
上での算術演算を実現する。非特許文献1に開示せれたMPCは、
上での乗算1回あたり、3nビットの通信コストを要する。つまり、参加者あたりnビットの通信コストで乗算を実現できる。
上での乗算1回あたり、21nビットの通信コストを要する。つまり、参加者あたり7nビットの通信コストで不正検知機能付きの乗算を実現できる。
から
のシェア列を得ることが挙げられる。この型変換をビット分解と呼称する。また、異なる型変換の例として、
から、
を得ることが挙げられる。この型変換を環合成と呼称する。
上での乗算1回あたり、6nビットの通信コストを要する。つまり、参加者あたり1.5nビットの通信コストで乗算を実現できる。しかし、非特許文献4では方式固有の型変換が提案されていない。このため、たとえば、非特許文献5に開示されたようなビット分解を用いる必要がある。
上での乗算1回あたり、5nビットの通信コストで実現できる。つまり、参加者あたり1.25nビットの通信コストで乗算を実現できる。これは2−out−of−4複製型秘密分散を用いた方法である。
のシェアを
として、
をP_iのシェアとする。また、
のシェアを
として、
をP_iのシェアとする。このとき、
に対して、
とすると、
とする。また、
に対して、
とすると、
とする。
に関して、参加者の内、ある一人の参加者は
の出力を計算できず、他の三人の参加者は
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
の扱いは特に制限されない。本書での
はあくまでも一例である。
を
上のシェアに関する加法演算子、減法演算子、乗法演算子とする。なお、これらの演算子は
上の要素に対する二項演算子としての加法演算子、減法演算子、乗法演算子としても以降用いることに注意されたい。
上のシェアに関する加法演算子、乗法演算子について、
としたとき、以下の4つの式が成り立つ。
を
上のシェアに関する排他的論理和、論理積とする。なお、これらの演算子は
上の要素に対する二項演算子としての排他的論理和、論理積としても以降用いることに注意されたい。
上のシェアに関する排他的論理和、論理積について、
としたとき、以下の4つの式が成り立つ。
上のシェアに関する演算についても、
上のシェアに関する演算と同様に実行できるので説明を割愛する。このとき、参加者中にマリシャス攻撃者が1人存在したとしても、各自のシェアと異なる参加者から受信した値を用いて、値の改ざんがなかったか検証できる。改ざんがあった場合は、プロトコルを中断する。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
第1の実施形態について、図面を用いてより詳細に説明する。
、あるいは第1乃至第4のデータ記憶部108_1〜108_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置100_1〜100_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部108_1〜108_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置100_1〜100_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置100_1〜100_4ではない外部にシェアが送信され、復元されてもよい。
、あるいは第1乃至第4のデータ記憶部109_1〜109_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置100_1〜100_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部108_1〜108_4に記憶する。
に関して、サーバ装置100_i(i=1〜4)の内、ある一台の参加者は
の出力を計算できず、他の三台の参加者は
の出力を計算できるという状況を作ることを意図している。また、
は、サーバ装置100_1、100_2、100_3の内、ある一台の参加者は
の出力を計算できず、他の二台の参加者は
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
の扱いは特に制限されない。ただし、本書での
はあくまでも一例である。
第1の再分散値計算部102_1と第2の再分散値計算部102_2はそれぞれ、第1の基本演算シード記憶部107_1、第2の基本演算シード記憶部107_2より、
を取得する。次に、第1の再分散値計算部102_1と第2の再分散値計算部102_2は
を生成する。
を第1のデータ記憶部108_1に記憶する。第2の再分散値計算部102_2は、
を、第3のシェア構成部103_3に送信する。また、第2の再分散値計算部102_2は
を、第4のシェア構成部103_4に送信する。
を生成する。第2の再分散値計算部102_2は、
を第2のデータ記憶部108_2に記憶する。第3の再分散値計算部102_3は、
を、第1のシェア構成部103_1に送信する。また、第3の再分散値計算部102_3は
を、第4のシェア構成部103_4に送信する。
を生成する。第3の再分散値計算部102_3は、
を第3のデータ記憶部108_3に記憶する。第1の再分散値計算部102_1は、
を、第2のシェア構成部103_2に送信する。また、第1の再分散値計算部102_1は
を、第4のシェア構成部103_4に送信する。
)を生成する。さらに、再分散値計算部102_iは、シェア(例えば、
)の再分散値(例えば、
)を計算する。その後、再分散値計算部102_iは、生成された乱数に関するデータ(例えば、
)を他のサーバ装置の再分散値計算部102_iに送信する。なお、生成された乱数に関するデータには、乱数自身も含まれる。
に対して、
とすると、
となり、サーバ装置100_1〜100_3のシェアの形式は二つの値の組み合わせからなり、サーバ装置100_4のシェアの形式は2つの排他的論理和による計算結果の組み合わせとなる。本願開示では、これらのシェアの形式を変換前の形式とし、上記12の式で表せるシェアの形式が変換後の形式となる。本願開示では、変換前後の形式を比較すると、変換前後で形式は保持されたままシェアが再構成(ビット分解用のシェアに再構成)されていることが理解される。
上のシェア
にビット分解を行う場合を説明する。このとき、
とすると、各サーバ装置は以下のような形式でシェア
を保有する。
サーバ装置100_1:
サーバ装置100_2:
サーバ装置100_3:
サーバ装置100_4:
、
、
の各桁のビットのシェアを得て(ステップA3)、次に、ステップA3にて得られたビットのシェアを用いて加算器の計算を行うことで値xの各桁のビットのシェアを得ている(ステップA4)。これは、ステップA3は、加算した結果が値xとなる各桁のビットのシェアを生成(値xからの再分散)を目的を有し、その後に続くステップA4における加算器計算に伴う負荷が軽減されるように再分散のシェアの個数自体を少なくするという意義を持つ。
を使用する。その際、各サーバ装置100_iは、自身が保持する
だけでは上記再構成されたシェアを生成することが出来ない場合がある。そこで、各サーバ装置100_iは、他のサーバ装置から当該他のサーバ装置が保持する
の一部を取得する必要があるが、秘密漏洩を防止する観点から当該値を他のサーバ装置から得ることはできない。そこで、各サーバ装置100_iは、乱数でマスクした値(シェアの再分散値)を送受信し、上記再構成されたシェアの再構成に利用する。本願開示では、シェアの再構成に続く加算器の計算負荷が低減されるように、上記乱数(マスク用の乱数)とシェアの再構成が行われる。
は、
により再分散され、再構成された
、
、
のうち
がサーバ装置100_1が保有する値(保有する値の組)となる。その際、
がマスク用のビットの乱数となり、
は、
を
、
でマスクすることで生成された再分散値となる。
を直接保持していないので、これらのサーバ装置が
を生成することは困難である。そこで、サーバ装置100_3やサーバ装置100_4は、上記値を有するサーバ装置100_1やサーバ装置100_2から受信するか、計算可能な乱数により
を構成する必要がある。しかし、サーバ装置100_1やサーバ装置100_2が保有する値自体を送信すると秘密漏洩の危険が増すのでマスク用の乱数が用いられている。そこで、各再分散値計算部102_iは、マスク用の乱数を計算すると共に、例えば、サーバ装置100_2がサーバ装置100_4に
を送信している(ステップA2)。その後、ステップA3において、
を含むシェアの再構成が行われている。
とすると、上記の12の式では、
、
、
と置き換えることできる。従って、サーバ装置100_1は、
を設定(シェアの再構成)する必要がある。即ち、シェアの形式が満たされるように、
や
が選択されている。また、本実施形態では、ステップA4における加算器計算に伴う負荷を軽減するために再分散のシェアの個数自体を少なくする目的でステップA3が実行されている。即ち、加算器の計算コストがビット分解全体の通信コストの大半を占めるため、当該通信コストの重い加算器計算の計算コストを低減するように再分散が行われている。しかし、再分散の目的は上記に限定されず、他の実施形態にて説明するように、「シェアの個数は増加するが、通信の形態に適合させ環合成における通信コストの効率化」や「再分散のシェアの個数は同じであるが、ステップA3における再分散のコスト低減」を目的とした再分散もあり得る。
第1の再分散値計算部102_1は、第1のデータ記憶部108_1から
を取り出す。次に、第1の再分散値計算部102_1は、
を、第3の不正検知部104_3に送信する。また、第1の再分散値計算部102_1は、
を、第4の不正検知部104_4に送信する。第3の不正検知部104_3および第4の不正検知部104_4は、それぞれ、第3のデータ記憶部108_3に記憶されている
、第4のデータ記憶部108_4に記憶されている
を取出し、値が一致するかを検証する。
それぞれとを連結した値に対するハッシュ値と、
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するかを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
に関しても同様である。
を第2のデータ記憶部108_2から取り出す。次に、第2の再分散値計算部102_2は、
を、第1の不正検知部104_1に送信する。また、第2の再分散値計算部102_2は、
を、第4の不正検知部104_4に送信する。第1の不正検知部104_1および第4の不正検知部104_4は、それぞれ、第1のデータ記憶部108_1に記憶されている
、第4のデータ記憶部108_4に記憶されている
を取出し、値が一致するかを検証する。
それぞれとを連結した値に対するハッシュ値と、
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するかを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
に関しても同様である。
を第3のデータ記憶部108_3から取り出す。次に、第3の再分散値計算部102_3は、
を、第2の不正検知部104_2に送信する。また、第3の再分散値計算部102_3は、
を、第4の不正検知部104_4に送信する。第2の不正検知部104_2および第4の不正検知部104_4は、それぞれ、第2のデータ記憶部108_2に記憶されている
、第4のデータ記憶部108_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と並列に実行することが可能である。
各基本演算シード記憶部107_1、107_2、107_3、107_4は、それぞれ、
、
、
、
を記憶する。
また、各サーバ装置100_1〜100_4は疑似ランダム関数
を共有する。なお、
とし、疑似ランダム関数
とする。
に関して、サーバ装置100_i(i=1〜4)の内、ある一台の参加者は
の出力を計算できず、他の三台の参加者は
の出力を計算できるという状況を作ることを意図している。また、
は、サーバ装置100_1、100_2、100_3の内、ある一台の参加者は
の出力を計算できず、他の二台の参加者は
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
の扱いは特に制限されない。本書での
はあくまでも一例である。
各サーバ装置100_iは、各データ記憶部108_iより、ループカウンタjをとりだす。各サーバ装置100_iは、j<nであればステップB3〜B7を実行する。j=nであれば、ステップB8を実行する。
を取り出す。ここで、
はj番目のビットに対するキャリーである。そして、各論理演算部106_1〜106_4は、
を計算し、
を各データ記憶部108_1〜108_4に記憶する。
第1の再分散値計算部102_1と第2の再分散値計算部102_2はそれぞれ、第1の基本演算シード記憶部107_1、第2の基本演算シード記憶部107_2より、
を取得する。次に、第1の再分散値計算部102_1と第2の再分散値計算部102_2は
を生成する。
を第1のデータ記憶部108_1に記憶する。第2の再分散値計算部102_2は、
を、第3のシェア構成部103_3に送信する。また、第2の再分散値計算部102_2は
を、第4のシェア構成部103_4に送信する。
を生成する。第2の再分散値計算部102_2は、
を第2のデータ記憶部108_2に記憶する。第3の再分散値計算部102_3は、
を、第1のシェア構成部103_1に送信する。また、第3の再分散値計算部102_3は
を、第4のシェア構成部103_4に送信する。
を生成する。第3の再分散値計算部102_3は、
を第3のデータ記憶部108_3に記憶する。第1の再分散値計算部102_1は、
を、第2のシェア構成部103_2に送信する。また、第1の再分散値計算部102_1は
を、第4のシェア構成部103_4に送信する。
各シェア構成部103_1、103_2、103_3、103_4は上記ステップB3で送信された値を用いて、以下の12の式によりシェアを構成する。
、
、
は各i番目のデータ記憶部208_iに記憶される。
各i番目の論理演算部106_i同士で通信することで、キャリー計算処理
を以下のように計算する。ここで、
とは、全加算器における入力
と下位からの桁上げ入力
の5つを入力とし、下記の式のように桁上げ出力
を出力する処理である。
を各データ記憶部108_iに記憶する。各サーバ装置100_iは、各データ記憶部208_iより、ループカウンタjを取り出し、j=j+1として各データ記憶部108_iに記憶する。なお、j=n−1のとき、ステップB5は実行しなくても良い。
第1の再分散値計算部102_1は、第1のデータ記憶部108_1から
を取り出す。次に、第1の再分散値計算部102_1は、
を、第3の不正検知部104_3に送信する。また、第1の再分散値計算部102_1は、
を、第4の不正検知部104_4に送信する。第3の不正検知部104_3および第4の不正検知部104_4は、それぞれ、第3のデータ記憶部108_3に記憶されている
、第4のデータ記憶部108_4に記憶されている
を取出し、値が一致するかを検証する。
それぞれとを連結した値に対するハッシュ値と、
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するかを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
に関しても同様である。
を第2のデータ記憶部108_2から取り出す。次に、第2の再分散値計算部102_2は、
を、第1の不正検知部104_1に送信する。また、第2の再分散値計算部102_2は、
を、第4の不正検知部104_4に送信する。第1の不正検知部104_1および第4の不正検知部104_4は、それぞれ、第1のデータ記憶部108_1に記憶されている
、第4のデータ記憶部108_4に記憶されている
を取出し、値が一致するかを検証する。
それぞれとを連結した値に対するハッシュ値と、
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するかを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
に関しても同様である。
を第3のデータ記憶部108_3から取り出す。次に、第3の再分散値計算部102_3は、
を、第2の不正検知部104_2に送信する。また、第3の再分散値計算部102_3は、
を、第4の不正検知部104_4に送信する。第2の不正検知部104_2および第4の不正検知部104_4は、それぞれ、第2のデータ記憶部108_2に記憶されている
、第4のデータ記憶部108_4に記憶されている
を取出し、値が一致するかを検証する。
それぞれとを連結した値に対するハッシュ値と、
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するかを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
に関しても同様である。
各i番目の不正検知部105_iは、上記ステップB5の
における送受信データを用いて、突き合わせることで不正検知を行う。不正が検知されなかった第1乃至第4のサーバ装置100_1、100_2、100_3、100_4は、successの文字列を各サーバ装置にブロードキャストする。不正が検知された第1乃至第4のサーバ装置100_1、100_2、100_3、100_4は、abortの文字列を各サーバ装置にブロードキャストし、プロトコルを中断する。これは上述の不正検知可能な4者間秘密計算によって実現される。ステップB7は上記ステップB6と並列に実行することが可能である。また、ステップB6、B7はループごとではなく、j=n−1のときに、n回のループ分を並列に実行することが可能である。
各i番目の算術演算部105_iは、各データ記憶部108_iから
を取り出す。その後、以下の式による計算を行う。
各i番目の算術演算部105_iは、各データ記憶部108_iに
を記憶する。
図6〜図8を参照して、第2の実施形態に係る型変換処理システムについて説明する。
、あるいは第1乃至第4のデータ記憶部208_1〜208_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置200_1〜200_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部208_1〜208_4に記憶する。上記計算結果のシェアは、第1乃至第4のサーバ装置200_1〜200_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置200_1〜200_4ではない外部にシェアが送信され、シェアが復元されてもよい。
、あるいは第1乃至第4のデータ記憶部208_1〜208_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置200_1〜200_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部208_1〜208_4に記憶する。上記計算結果のシェアは、第1乃至第4のサーバ装置200_1〜200_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置200_1〜200_4ではない外部にシェアが送信され、シェアが復元されてもよい。
に関して、サーバ装置200_i(i=1、2、3、4)の内、ある一台の参加者は
の出力を計算できず、他の三台の参加者は
の出力を計算できるという状況を作ることを意図している。また、
は、サーバ装置200_1、200_2、200_3の内、ある一台の参加者は
の出力を計算できず、他の二台の参加者は
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
の扱いは特に制限されない。本書での
はあくまでも一例である。
を取得する。次に、第1の再分散値計算部202_1と第2の再分散値計算部202_2は、
を生成する。
を第1のデータ記憶部208_1に記憶する。第2の再分散値計算部202_2は、
を、第3のシェア構成部203_3に送信する。また、第2の再分散値計算部202_2は
を、第4のシェア構成部203_4に送信する。
を生成する。第2の再分散値計算部202_2は、
を第2のデータ記憶部208_2に記憶する。第3の再分散値計算部202_3は、
を、第1のシェア構成部203_1に送信する。また、第3の再分散値計算部202_3は
を、第4のシェア構成部203_4に送信する。
を生成する。第3の再分散値計算部302_3は、
を第3のデータ記憶部208_3に記憶する。第1の再分散値計算部202_1は、
を、第2のシェア構成部203_2に送信する。また、第1の再分散値計算部202_1は
を、第4のシェア構成部203_4に送信する。
各シェア構成部203_1、203_2、203_3、203_4は上記ステップB´2で送信された値を用いて、以下の12の式によりシェアを構成する。
、
、
は各i番目のデータ記憶部208_iに記憶される。
第1の再分散値計算部202_1は、第1のデータ記憶部208_1から
を取り出す。次に、第1の再分散値計算部202_1は、
を、第3の不正検知部204_3に送信する。また、第1の再分散値計算部202_1は、
を、第4の不正検知部204_4に送信する。第3の不正検知部204_3および第4の不正検知部204_4は、それぞれ、第3のデータ記憶部208_3に記憶されている
、第4のデータ記憶部208_4に記憶されている
を取出し、値が一致するかを検証する。
それぞれとを連結した値に対するハッシュ値と、
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するかを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
に関しても同様である。
を第2のデータ記憶部208_2から取り出す。次に、第2の再分散値計算部202_2は、
を、第1の不正検知部204_1に送信する。また、第2の再分散値計算部202_2は、
を、第4の不正検知部204_4に送信する。第1の不正検知部204_1および第4の不正検知部204_4は、それぞれ、第1のデータ記憶部208_1に記憶されている
、第4のデータ記憶部208_4に記憶されている
を取出し、値が一致するかを検証する。
それぞれとを連結した値に対するハッシュ値と、
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するかを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
に関しても同様である。
を第3のデータ記憶部208_3から取り出す。次に、第3の再分散値計算部202_3は、
を、第2の不正検知部204_2に送信する。また、第3の再分散値計算部202_3は、
を、第4の不正検知部204_4に送信する。第2の不正検知部204_2および第4の不正検知部204_4は、それぞれ、第2のデータ記憶部208_2に記憶されている
、第4のデータ記憶部208_4に記憶されている
を取出し、値が一致するかを検証する。
それぞれとを連結した値に対するハッシュ値と、
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するかを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
に関しても同様である。
各サーバ装置200_iは、各データ記憶部208_より、ループカウンタjをとりだす。各サーバ装置200_iは、j<nであればステップB´6〜B´10を実行する。j=nであれば、ステップB´11を実行する。
ここで、キャリー計算処理
を、
と
という2つの処理に分割して考える。なお、
とは、全加算器における入力
と下位からの桁上げ入力
の5つを入力とし、桁上げ出力
を出力する処理である。
第1の再分散値計算部202_1と第2の再分散値計算部202_2はそれぞれ、第1の基本演算シード記憶部207_1、第2の基本演算シード記憶部207_2より、
を取得する。次に、第1の再分散値計算部202_1と第2の再分散値計算部202_2は、
を生成する。
を第1のデータ記憶部208_1に記憶する。第2の再分散値計算部202_2は、
を、第3のシェア構成部203_3に送信する。また、第2の再分散値計算部202_2は
を、第4のシェア構成部203_4に送信する。
を生成する。第2の再分散値計算部202_2は、
を第2のデータ記憶部208_2に記憶する。第3の再分散値計算部202_3は、
を、第1のシェア構成部203_1に送信する。また、第3の再分散値計算部202_3は
を、第4のシェア構成部203_4に送信する。
を生成する。第3の再分散値計算部202_3は、
を第3のデータ記憶部208_3に記憶する。第1の再分散値計算部202_1は、
を、第2のシェア構成部203_2に送信する。また、第1の再分散値計算部202_1は
を、第4のシェア構成部203_4に送信する。
、
、
、
および
を入力に取り、
を通信を伴って計算することで、
を得る。論理演算部206_i(i=1、2、3、4)は、データ記憶部208_i(i=1、2、3、4)に
を記憶する。
及び当該第1要素に続く第2要素
に分離可能である。第iの論理演算部206_iは、第1要素を他のサーバ装置と非通信により計算すると共に、シェアの再分散値の計算に必要な通信と第2要素のキャリー計算処理に必要な通信を並列に行う(ステップB’7)。
論理演算部206_i(i=1、2、3、4)は、
を用いて、
を計算する。
ここで、上記ステップB´7で得た値と、
を用いて、各シェア構成部203_1、203_2、203_3、203_4は、以下の12の式によりシェアを構成する。
、
、
が各i番目のデータ記憶部208_iに記憶される。また、データ記憶部208_iはループカウンタjを取り出し、j=j+1として値を更新する。
第1の再分散値計算部202_1は、第1のデータ記憶部208_1から
を取り出す。次に、第1の再分散値計算部202_1は、
を、第3の不正検知部204_3に送信する。また、第1の再分散値計算部202_1は、
を、第4の不正検知部204_4に送信する。第3の不正検知部204_3および第4の不正検知部204_4は、それぞれ、第3のデータ記憶部208_3に記憶されている
、第4のデータ記憶部208_4に記憶されている
を取出し、値が一致するかを検証する。
それぞれとを連結した値に対するハッシュ値と、
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するかを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
に関しても同様である。
を第2のデータ記憶部208_2から取り出す。次に、第2の再分散値計算部202_2は、
を、第1の不正検知部204_1に送信する。また、第2の再分散値計算部202_2は、
を、第4の不正検知部204_4に送信する。第1の不正検知部204_1および第4の不正検知部204_4は、それぞれ、第1のデータ記憶部208_1に記憶されている
、第4のデータ記憶部208_4に記憶されている
を取出し、値が一致するかを検証する。
それぞれとを連結した値に対するハッシュ値と、
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するかを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
に関しても同様である。
を第3のデータ記憶部208_3から取り出す。次に、第3の再分散値計算部202_3は、
を、第2の不正検知部204_2に送信する。また、第3の再分散値計算部202_3は、
を、第4の不正検知部204_4に送信する。第2の不正検知部204_2および第4の不正検知部204_4は、それぞれ、第2のデータ記憶部208_2に記憶されている
、第4のデータ記憶部208_4に記憶されている
を取出し、値が一致するかを検証する。
それぞれとを連結した値に対するハッシュ値と、
に関する値それぞれとを連結した値に対するハッシュ値とで、一致するかを検証することにしてもよい。この場合、処理全体の通信量に対して、それぞれ
を連結した値に対するハッシュ値は無視できるものと捉えることができる。
に関しても同様である。
各i番目の不正検知部204_iは、上記ステップB´7の
における送受信データを用いて、突き合わせることで不正検知を行う。不正が検知されなかった第1乃至第4のサーバ装置200_1、200_2、200_3、200_4は、successの文字列を各サーバ装置にブロードキャストする。不正が検知された第1乃至第4のサーバ装置200_1、200_2、200_3、200_4は、abortの文字列を各サーバ装置にブロードキャストし、プロトコルを中断する。これは上述の不正検知可能な4者間秘密計算によって実現される。ステップB´10は上記ステップB´4、B´9と並列に実行することが可能である。また、ステップB´10はループごとではなく、j=n−1のときに、全ループ分を並列に実行することが可能である。
各i番目の算術演算部205_iは、各データ記憶部208_iから
を取り出す。その後、以下の式に示す計算が実行される。
各i番目の算術演算部205_iは、各データ記憶部208_iに
を記憶する。
を分割して考え、シェアの再分散とキャリー計算における通信を伴う処理を並列して行うことで、通信ラウンドの削減を実現している。このため、第2の実施形態における環合成の通信コストは、(16n−16)ビット・n−1ラウンドとなる。
図9〜図12を参照して、第3の実施形態に係る型変換処理システムについて説明する。
、あるいは第1乃至第4のデータ記憶部308_1〜308_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置300_1〜300_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部308_1〜308_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置300_1〜300_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置300_1〜300_4ではない外部にシェアが送信され、復元されてもよい。
、あるいは第1乃至第4のデータ記憶部308_1〜308_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置300_1〜300_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部308_1〜308_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置300_1〜300_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置300_1〜300_4ではない外部にシェアが送信され、復元されてもよい。
に関して、サーバ装置300_i(i=1、2、3、4)の内、ある一台の参加者は
の出力を計算できず、他の三台の参加者は
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
の扱いは特に制限されない。本書での
はあくまでも一例である。
第1の再分散値計算部302_1と第2の再分散値計算部302_2はそれぞれ、第1の基本演算シード記憶部307_1、第2の基本演算シード記憶部307_2より、
を取得する。次に、第1の再分散値計算部302_1と第2の再分散値計算部302_2と第1の再分散値計算部302_1と第3の再分散値計算部302_3は
を生成する。
を第1のデータ記憶部308_1に記憶する。第3の再分散値計算部302_3は、
を、第3のシェア構成部303_3に送信する。また、第2の再分散値計算部302_2は
を、第4のシェア構成部303_4に送信する。
を生成する。第2の再分散値計算部302_2は、
を第2のデータ記憶部308_2に記憶する。第1の再分散値計算部302_1は、
を、第1のシェア構成部303_1に送信する。また、第3の再分散値計算部302_3は
を、第4のシェア構成部303_4に送信する。
を生成する。第3の再分散値計算部302_3は、
を第3のデータ記憶部308_3に記憶する。第2の再分散値計算部302_2は、
を、第2のシェア構成部303_2に送信する。また、第1の再分散値計算部302_1は
を、第4のシェア構成部303_4に送信する。
各シェア構成部303_1、303_2、303_3、303_4は上記ステップC2で送信された値を用いて、以下の12の式によりシェアを構成する。
ここで、
に対し、
は
の
番目のビット
を意味する。
、
、
が各i番目のデータ記憶部308_iに記憶される。
は、
としたとき、
、
、
と置き換えることできる。このように、
となるので、各再分散値計算部302_iは、値xの再分散値を計算する際、値xをx1、x2、x3の排他的論理和とする場合にx1乃至x3のうち2つの値を等しくするように乱数を生成している。
各i番目の論理演算部306_iで通信することで、nビット加算器処理
を以下のように計算する。ここで、
とは、たとえば、
、
を入力とし、
を出力する処理のことである。
ここで、
なので、
が計算できた。なお、
は、
、…、
のシェア列を意味する。各i番目の論理演算部306_iは、
を各データ記憶部308_iに記憶する。
第1の再分散値計算部302_1は、第1のデータ記憶部308_1から
を取り出す。次に、第1の再分散値計算部302_1は、
を、第4の不正検知部304_4に送信する。第4の不正検知部304_4は、第4のデータ記憶部308_4に記憶されている
を取出し、
が成立するかを検証する。
を第2のデータ記憶部308_2から取り出す。次に、第2の再分散値計算部302_2は、
を、第4の不正検知部304_4に送信する。第4の不正検知部204_4は、第4のデータ記憶部308_4に記憶されている
を取出し、
が成立するかを検証する。
を第3のデータ記憶部308_3から取り出す。次に、第3の再分散値計算部302_3は、
を、第4の不正検知部304_4に送信する。第4の不正検知部304_4は、第4のデータ記憶部308_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と並列に実行することが可能である。
を共有する。なお、
とし、疑似ランダム関数
とする。また、各データ記憶部308_1〜308_4に、
、
、
、
を記憶する。さらに、各データ記憶部308_1〜308_4に、ループカウンタj(=0)を記憶する。なお、
とし、
、
、
、
とする。
に関して、サーバ装置300_i(i=1、2、3、4)の内、ある一台の参加者は
の出力を計算できず、他の三台の参加者は
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
の扱いは特に制限されない。本書での
はあくまでも一例である。
各サーバ装置300_iは、各データ記憶部308_iより、ループカウンタjをとりだす。各サーバ装置300_iは、j<nであればステップD3〜D7を実行する。j=nであれば、各サーバ装置300_iはステップD8を実行する。
を取り出す。そして、各算術演算部305_1〜305_4は、
を計算し、
を各データ記憶部308_1〜308_4に記憶する。なお、第iのデータ記憶部308_iが記憶する
を
と表記する。また、
とする。
第1の再分散値計算部302_1と第2の再分散値計算部302_2と第3の再分散値計算部302_3はそれぞれ、第1の基本演算シード記憶部307_1、第2の基本演算シード記憶部307_2、第3の基本演算シード記憶部307_3より、
を取得する。次に、第1の再分散値計算部302_1と第2の再分散値計算部302_2と第3の再分散値計算部302_3は、
を生成する。そして、第1の再分散値計算部302_1は、
を第1のシェア構成部303_1に送信する。第3の再分散値計算部302_3は
を、第3のシェア構成部303_3に送信する。第2の再分散値計算部302_2は、第2のデータ記憶部308_2から
を取出し、
を、第4のシェア構成部303_4に送信する。
を生成する。第2の再分散値計算部302_2は、
を、第2のシェア構成部303_2に送信する。第1の再分散値計算部302_1は、
を、第1のシェア構成部303_1に送信する。また、第3の再分散値計算部302_3は、第3のデータ記憶部308_2から
を取出し、
を、第4のシェア構成部303_4に送信する。
を生成する。第3の再分散値計算部302_3は、
を第3のシェア構成部303_3に送信する。第2の再分散値計算部302_2は、
を、第2のシェア構成部303_2に送信する。また、第1の再分散値計算部302_1は、第1のデータ記憶部308_1から
を取出し、
を、第4のシェア構成部303_4に送信する。
各シェア構成部303_1、303_2、303_3、303_4は上記ステップD3で送信された値と、各i番目のデータ記憶部308_iに記憶された
を用いて、以下の12の式によりシェアを構成する。
、
、
が各i番目のデータ記憶部308_iに記憶される。
上記ステップB5と同じ処理が行われる。
第1の再分散値計算部302_1は、第1のデータ記憶部308_1から
を取り出す。次に、第1の再分散値計算部302_1は、
を、第4の不正検知部304_4に送信する。第4の不正検知部304_4は、第4のデータ記憶部308_4に記憶されている
を取出し、
が成り立つかを検証する。
を取り出す。次に、第2の再分散値計算部302_2は、
を、第4の不正検知部304_4に送信する。第4の不正検知部304_4は、第4のデータ記憶部308_4に記憶されている
を取出し
が成立するかを検証する。
を取り出す。次に、第3の再分散値計算部302_3は、
を、第4の不正検知部304_4に送信する。第4の不正検知部304_4は、第4のデータ記憶部308_4に記憶されている
を取出し、
が成立するかを検証する。
については、それぞれの値を連結したものに対するハッシュ値を送信し、ハッシュ値同士の比較によって検証してもよい。このとき、処理全体の計算量に対して、ハッシュ値の送信量は無視できるものと捉えることができる。
各i番目の不正検知部304_iは、上記ステップD5の
における送受信データを用いて、突き合わせることで不正検知を行う。不正が検知されなかった第1乃至第4のサーバ装置300_1、300_2、300_3、300_4は、successの文字列を各サーバ装置にブロードキャストする。不正が検知された第1乃至第4のサーバ装置300_1、300_2、300_3、300_4は、abortの文字列を各サーバ装置にブロードキャストし、プロトコルを中断する。これは上述の不正検知可能な4者間秘密計算によって実現される。ステップD7は上記ステップD6と並列に実行することが可能である。また、ステップD6、D7はループごとではなく、j=n−1のときに、n回のループ分を並列に実行することが可能である。
上記ステップB8と同じ処理が行われる。
の計算を2回、環合成に関して
の計算によって実行できる。第3の実施形態と第1乃至第2の実施形態とで異なる点は、加算器計算前の再分散が効率よく行われている点である。リップルキャリー型のnビット加算器を用いて不正検知に関する処理を並列に行った場合、第3の実施形態では、ビット分解の通信コストとして、13n−10ビット・n+1ラウンドを要する。環合成の通信コストとして、13n−13ビット・2n−2ラウンドを要する。これにより、第3の実施形態の方が第1及び第2の実施形態よりも通信コストの点で効率が良い。なお、本願開示の実施はリップルキャリー型のnビット加算器に限定されない。キャリールックアヘッド型やパラレルプリフィックス型などのnビット加算器を用いても良い。
図13〜図15を参照して、第4の実施形態に係る型変換処理システムについて説明する。
、あるいは第1乃至第4のデータ記憶部408_1〜408_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置400_1〜400_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部408_1〜408_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置400_1〜400_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置400_1〜400_4ではない外部にシェアが送信され、シェアが復元されてもよい。
、あるいは第1乃至第4のデータ記憶部408_1〜408_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置400_1〜400_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部408_1〜408_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置400_1〜400_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置400_1〜400_4ではない外部にシェアが送信され、シェアが復元されてもよい。
を共有する。なお、
とし、疑似ランダム関数
とする。また、各データ記憶部408_1〜408_4に、
、
、
、
を記憶する。さらに、各データ記憶部408_1〜408_4に、ループカウンタj(=1)を記憶する。なお、
とし、
、
、
、
とする。
に関して、サーバ装置400_i(i=1、2、3、4)の内、ある一台の参加者は
の出力を計算できず、他の三台の参加者は
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
の扱いは特に制限されない。本書での
はあくまでも一例である。
を取得する。次に、第1の再分散値計算部402_1と第2の再分散値計算部402_2と第3の再分散値計算部402_3は
を生成する。
を第1のシェア構成部403_1に送信する。第3の再分散値計算部402_3は
を、第3のシェア構成部403_3に送信する。第2の再分散値計算部402_2は、第2のデータ記憶部408_2から
を取出し、
を、第4のシェア構成部403_4に送信する。
を生成する。第2の再分散値計算部402_2は、
を、第2のシェア構成部403_2に送信する。第1の再分散値計算部402_3は、
を、第1のシェア構成部403_1に送信する。また、第3の再分散値計算部402_3は、第3のデータ記憶部408_3から
を取出し、
を、第4のシェア構成部403_4に送信する。
を生成する。第3の再分散値計算部402_3は、
を第3のシェア構成部403_3に送信する。第2の再分散値計算部402_2は、
を、第2のシェア構成部403_2に送信する。また、第1の再分散値計算部402_1は、第1のデータ記憶部408_1から
を取出し、
を、第4のシェア構成部403_4に送信する。
各シェア構成部403_1、403_2、403_3、403_4は上記ステップD´2で送信された値と、各i番目のデータ記憶部408_iに記憶された
を用いて、以下の12の式によりシェアを構成する。
、
、
が各i番目のデータ記憶部408_iに記憶される。
第1の再分散値計算部402_1は、第1のデータ記憶部408_1から
を取り出す。次に、第1の再分散値計算部402_1は、
を、第4の不正検知部404_4に送信する。第4の不正検知部404_4は、第4のデータ記憶部408_4に記憶されている
を取出し、
が成り立つかを検証する。
を取り出す。次に、第2の再分散値計算部402_2は、
を、第4の不正検知部404_4に送信する。第4の不正検知部404_4は、第4のデータ記憶部408_4に記憶されている
を取出し
が成立するかを検証する。
を取り出す。次に、第3の再分散値計算部402_3は、
を、第4の不正検知部404_4に送信する。第4の不正検知部404_4は、第4のデータ記憶部408_4に記憶されている
を取出し、
が成立するかを検証する。
については、それぞれの値を連結したものに対するハッシュ値を送信し、ハッシュ値同士の比較によって検証してもよい。このとき、処理全体の計算量に対して、ハッシュ値の送信量は無視できるものと捉えることができる。
各サーバ装置400_iは、各データ記憶部408_iより、ループカウンタjをとりだす。各サーバ装置400_iは、j<nであればステップD´6〜D´10を実行する。各サーバ装置400_iは、j=nであれば、ステップD´11を実行する。
上記ステップB´6と同じ処理なので説明を割愛する。
第1の再分散値計算部402_1と第2の再分散値計算部402_2と第3の再分散値計算部402_3はそれぞれ、第1の基本演算シード記憶部407_1、第2の基本演算シード記憶部407_2、第3の基本演算シード記憶部407_3より、
を取得する。次に、第1の再分散値計算部402_1と第2の再分散値計算部402_2と第3の再分散値計算部402_3は
を生成する。
を第1のシェア構成部403_1に送信する。第3の再分散値計算部402_2は
を、第3のシェア構成部403_4に送信する。第2の再分散値計算部402_2は、第2のデータ記憶部408_2から
を取出し、
を、第4のシェア構成部403_4に送信する。
を生成する。第2の再分散値計算部402_2は、
を、第2のシェア構成部403_2に送信する。第1の再分散値計算部402_3は、
を、第1のシェア構成部403_1に送信する。また、第3の再分散値計算部402_3は、第3のデータ記憶部408_3から
を取出し、
を、第4のシェア構成部403_4に送信する。
を生成する。第3の再分散値計算部402_3は、
を第3のシェア構成部403_3に送信する。第2の再分散値計算部402_2は、
を、第2のシェア構成部403_2に送信する。また、第1の再分散値計算部402_1は、第1のデータ記憶部408_1から
を取出し、
を、第4のシェア構成部403_4に送信する。
、
、
、
および
を入力に取り、
を通信を伴って計算することで、
を得る。論理演算部406_i(i=1、2、3、4)は、データ記憶部408_i(i=1、2、3、4)に
を記憶する。
各シェア構成部403_1、403_2、403_3、403_4は上記ステップD´7で送信された値と、各i番目のデータ記憶部408_iに記憶された
を用いて、以下の12の式によりシェアを構成する。
、
、
が各i番目のデータ記憶部408_iに記憶される。また、データ記憶部408_iはループカウンタ
を取り出し、j=j+1として値を更新する。
第1の再分散値計算部402_1は、第1のデータ記憶部408_1から
を取り出す。次に、第1の再分散値計算部302_1は、
を、第4の不正検知部404_4に送信する。第4の不正検知部404_4は、第4のデータ記憶部408_4に記憶されている
を取出し、
が成り立つかを検証する。
を取り出す。次に、第2の再分散値計算部402_2は、
を、第4の不正検知部404_4に送信する。第4の不正検知部404_4は、第4のデータ記憶部408_4に記憶されている
を取出し
が成立するかを検証する。
を取り出す。次に、第3の再分散値計算部402_3は、
を、第4の不正検知部404_4に送信する。第4の不正検知部404_4は、第4のデータ記憶部408_4に記憶されている
を取出し、
が成立するかを検証する。
については、それぞれの値を連結したものに対するハッシュ値を送信し、ハッシュ値同士の比較によって検証してもよい。このとき、処理全体の計算量に対して、ハッシュ値の送信量は無視できるものと捉えることができる。なお、ステップD´9は、ループごとではなく、j=n−1のときに全ループ分を並列に実行しても良い。また、ステップD´9は、上記ステップD´4と並列に実行することも可能である。
各i番目の不正検知部404_iは、上記ステップD´7の
における送受信データを用いて、突き合わせることで不正検知を行う。不正が検知されなかった第1乃至第4のサーバ装置400_1、400_2、400_3、400_4は、successの文字列を各サーバ装置にブロードキャストする。不正が検知された第1乃至第4のサーバ装置400_1、400_2、400_3、400_4は、abortの文字列を各サーバ装置にブロードキャストし、プロトコルを中断する。これは上述の不正検知可能な4者間秘密計算によって実現される。ステップD´10は上記ステップD´4、D´9と並列に実行することが可能である。また、ステップD´10はループごとではなく、j=n−1のときに、全ループ分を並列に実行することが可能である。
上記ステップB´11と同じ処理なので説明を割愛する。
を分割して考え、シェアの再分散とキャリー計算における通信を伴う処理を並列して行うことで、通信ラウンドの削減を実現している。このため、第4の実施形態における環合成の通信コストは、(13n−13)ビット・n−1ラウンドとなる。
図16〜図18を参照して、第5の実施形態に係る型変換処理システムについて説明する。第5の実施形態に係る型変換処理システムは、上述した第1乃至第4の実施形態に係る型変換処理システムの変形例である。
、あるいは第1乃至第4のデータ記憶部508_1〜508_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置500_1〜500_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部508_1〜508_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置500_1〜500_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置500_1〜500_4ではない外部にシェアが送信され、復元されてもよい。
を共有する。なお、
とし、疑似ランダム関数
とする。また、各データ記憶部508_1〜508_4に、それぞれ
、
、
、
を記憶する。ここで、
を文字列連結演算子とする。なお、
に関して、サーバ装置500_i(i=1、2、3、4)の内、ある一台のサーバ装置は
の出力を計算できず、他の三台のサーバ装置は
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
の扱いは特に制限されない。本書での
はあくまでも一例である。
第1、第2、第3のマスク値計算部501_1、501_2、501_3は
を計算し、第1、第2、第3のデータ記憶部509_1、509_2、509_3に
を記憶する。第2のマスク値計算部501_2は、データ記憶部508_2からシェア
を取り出す。第2のマスク値計算部501_2は、
を生成し、
を第4のサーバ装置500_4に送信する。第4のサーバ装置500_4は、第4のデータ記憶部508_4に
を記憶する。
各シェア構成部503_1、503_2、503_3、503_4は各データ記憶部508_1、508_2、508_3、508_4からそれぞれ、
、
、
、
を取り出し、以下の16の式によりシェアを構成する。
ここで、
に対し、
は
のj番目のビット(j=0、...、n−1)を意味する。
、
、
、
は各i番目のデータ記憶部508_iに記憶される。このように、第iのシェア構成部503_iは、送信されたマスク値を用いて型変換用のシェアを構成する。
第1のサーバ装置500_1は、上記ステップE2における第2のサーバ装置500_2と同様、第1のマスク値計算部501_1は、
を生成し、
を第4のサーバ装置500_4に送信する。第4のサーバ装置500_4は、第4のデータ記憶部508_4に
を記憶する。第4の不正検知部504_4は、第4のデータ記憶部508_4から
を取り出し、
が成り立つか、検証する。
が成り立たない場合は、第4の不正検知部504_4はabortの文字列を各サーバ装置500_1、500_2、500_3にブロードキャストし、プロトコルを中断する。
を連結してハッシュ値
を計算し、
に対しても連結した値に対するハッシュ値
を計算することで、
が成り立つか否かの検証を
が成り立つか否かの検証と捉えてもよい。このとき、
に関する通信量は処理全体の計算量に対し、無視できるものと捉えることができる。
各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と並列に実行することが可能である。
図19〜図21を参照して、第6の実施形態に係る型変換処理システムについて説明する。図19は、第6の実施形態による型変換処理システムの機能構成例を示すブロック図である。第6の実施形態に係る型変換処理システムは、上述した第1乃至第5の実施形態に係る型変換処理システムの変形例である。
、あるいは第1乃至第4のデータ記憶部608_1〜608_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置600_1〜600_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部608_1〜608_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置600_1〜600_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置600_1〜600_4ではない外部にシェアが送信され、復元されてもよい。
、あるいは第1乃至第4のデータ記憶部608_1〜608_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置600_1〜600_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部608_1〜608_4に記憶する。上記計算結果のシェアは、第1乃至第4のサーバ装置600_1〜600_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置600_1〜600_4ではない外部にシェアが送信され、復元されてもよい。
を共有する。なお、
とし、疑似ランダム関数
とする。また、各データ記憶部608_1〜608_4に、それぞれ
、
、
、
を記憶する。なお、
に関して、サーバ装置600_i(i=1、2、3、4)の内、ある一台の参加者は
の出力を計算できず、他の三台の参加者は
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
の扱いは特に制限されない。本書での
はあくまでも一例である。
第1、第2、第3のマスク値計算部601_1、601_2、601_3は
を計算し、第1、第2、第3のデータ記憶部608_1、608_2、608_3に
を記憶する。第2のマスク値計算部601_2は、データ記憶部608_2からシェア
を取り出す。第2のマスク値計算部601_2は、
を生成し、
を第4のサーバ装置600_4に送信する。第4のサーバ装置600_4は、第4のデータ記憶部608_4に
を記憶する。
を取得する。そして、第1の再分散値計算部602_1と第2の再分散値計算部602_2と第3の再分散値計算部602_3は
を生成する。さらに、第3の再分散値計算部602_3は、
を第3のデータ記憶部608_3に記憶する。第1の再分散値計算部602_1は、
を、第1のシェア構成部603_1に送信する。また、第2の再分散値計算部602_2は、第2のデータ記憶部608_2から
を取り出し、
を、第4のシェア構成部603_4に送信する。
各シェア構成部603_1、603_2、603_3、603_4は、各データ記憶部608_1、608_2、608_3、608_4からそれぞれ、
、
、
、
を取り出す。さらに上記ステップF2で送信された値を用いて、以下の12の式によりシェアを構成する。
ここで、
に対し、
は
のj番目のビット(j=0、...、n-1)を意味する。
、
、
が各i番目のデータ記憶部608_iに記憶される。
各i番目の論理演算部606_iで通信することで、nビット加算器処理
を以下のように計算する。ここで、
とは、たとえば、
、
を入力とし、
を出力する処理のことである。
ここで、
なので、
が計算できた。なお、
は、
、…、
のシェア列を意味する。各i番目の論理演算部606_iは、
を各データ記憶部608_iに記憶する。
第1のサーバ装置600_1は、上記ステップF2における第2のサーバ装置600_2と同様、第1のマスク値計算部601_1は、
を生成し、
を第4のサーバ装置600_4に送信する。第4のサーバ装置600_4は、第4のデータ記憶部608_4に
を記憶する。第4の不正検知部604_4は、第4のデータ記憶部608_4から
を取り出し、
が成り立つか、検証する。
が成り立たない場合は、第4の不正検知部604_4はabortの文字列を各サーバ装置600_1、600_2、600_3にブロードキャストし、プロトコルを中断する。
を第2のデータ記憶部608_2から取り出す。次に、第2の再分散値計算部602_2は、
を、第4の不正検知部604_4に送信する。第4の不正検知部604_4は、第4のデータ記憶部608_4に記憶されている
を取出し、
が成立するかを検証する。
、
に関しては、それぞれの値を連結したものに対するハッシュ値を送信し、ハッシュ値同士の比較によって検証してもよい。このとき、処理全体の計算量に対して、ハッシュ値の送信量は無視できるものと捉えることができる。
各i番目の不正検知部604_iは、上記ステップF4の
における送受信データを用いて、突き合わせることで不正検知を行う。不正が検知されなかった第1乃至第4のサーバ装置600_1、600_2、600_3、600_4は、successの文字列を各サーバ装置にブロードキャストする。不正が検知された第1乃至第4のサーバ装置600_1、600_2、600_3、600_4は、abortの文字列を各サーバ装置にブロードキャストし、プロトコルを中断する。これは上述の不正検知可能な4者間秘密計算によって実現される。ステップF6は上記ステップF5と並列に実行することが可能である。
の計算を2回行うことで実現できる。
図22〜図24を参照して、第7の実施形態に係る型変換処理システムについて説明する。図22は、第7の実施形態による型変換処理システムの機能構成例を示すブロック図である。第7の実施形態に係る型変換処理システムは、上述した第1乃至第6の実施形態に係る型変換処理システムの変形例である。
、あるいは第1乃至第4のデータ記憶部708_1〜708_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置700_1〜700_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部708_1〜708_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置700_1〜700_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置700_1〜700_4ではない外部にシェアが送信され、復元されてもよい。
、あるいは第1乃至第4のデータ記憶部708_1〜708_4に記憶されたシェア
、あるいは第1乃至第4のサーバ装置700_1〜700_4ではない外部から入力されたシェア
に対し、その入力や計算過程の値から
の値を知られることなく、
を計算し、第1乃至第4のデータ記憶部708_1〜708_4に記憶する。上述の計算結果のシェアは、第1乃至第4のサーバ装置700_1〜700_4がシェアを送受信し、復元されてもよい。あるいは、第1乃至第4のサーバ装置700_1〜700_4ではない外部にシェアが送信され、復元されてもよい。
を共有する。なお、
とし、疑似ランダム関数
とする。また、各データ記憶部708_1〜708_4に、それぞれ
、
、
、
を記憶する。なお、
に関して、サーバ装置700_i(i=1、2、3、4)の内、ある一台の参加者は
の出力を計算できず、他の三台の参加者は
の出力を計算できるという状況を作ることを意図している。この状況を作り出せるのであれば、
の扱いは特に制限されない。本書での
はあくまでも一例である。
第1、第2、第3のマスク値計算部701_1、701_2、701_3は
を計算し、第1、第2、第3のデータ記憶部708_1、708_2、708_3に
を記憶する。第2のマスク値計算部701_2は、データ記憶部708_2からシェア
を取り出す。第2のマスク値計算部701_2は、
を生成し、
を第4のサーバ装置700_4に送信する。第4のサーバ装置700_4は、第4のデータ記憶部708_4に
を記憶する。
を取得する。そして、第1の再分散値計算部702_1と第2の再分散値計算部702_2と第3の再分散値計算部702_3は
を生成する。さらに、第1の再分散値計算部702_1は、
を第1のデータ記憶部708_1に記憶する。第3の再分散値計算部702_3は、
を、第3のシェア構成部703_3に送信する。また、第2の再分散値計算部702_2は、第2のデータ記憶部708_2から
を取り出し、
を、第4のシェア構成部703_4に送信する。
第2の再分散値計算部702_2は、第2の基本演算シード記憶部707_2から
を取得する。第3の再分散値計算部702_3は、第3の基本演算シード記憶部707_3から
を取得する。第4の再分散値計算部702_4は、第4の基本演算シード記憶部707_4から
を取得する。また、第4の再分散値計算部702_4は、第4のデータ記憶部708_4から
を取得する。
を計算する。第2の再分散値計算部702_2および第3の再分散値計算部702_3および第4の再分散値計算部702_4は、それぞれ、第2のデータ記憶部708_2および第3のデータ記憶部708_3および第4のデータ記憶部708_4に送信する。
を用いて、
を生成し、第1のシェア構成部703_1および第4のシェア構成部703_4に送信する。同様に第3の再分散値計算部702_4は、
を生成し、第3のシェア構成部703_3および第3のデータ記憶部708_3に送信する。
各シェア構成部703_1、703_2、703_3、703_4は、各データ記憶部708_1、708_2、708_3、708_4からそれぞれ、
、
、
、
を取り出す。さらに上記ステップG2、G3で送信された値を用いて、以下の8の式によりシェアを構成する。
ここで、
に対し、
は
のj番目のビット(j=0、...、n−1)を意味する。
、
は各i番目のデータ記憶部708_iに記憶される。
としたとき、
、
、
と置き換えることできる。このように、
となるので、各再分散値計算部702_iは、値x’の再分散値を計算する際、値x’をx1’、x2’、x3’の排他的論理和すると場合、x1’を乱数rに等しく、x2’をゼロ、x3’を乱数rと値xの排他的論理和となるように乱数を生成している。
つまり、各再分散値計算部702_iは、再分散する際に一部がゼロとなるように乱数を生成する。
各i番目の論理演算部706_iで通信することで、加算器処理
を以下のように計算する。ここで、
とは、たとえば、
、
を入力とし、
を出力する処理のことである。
ここで、
なので、
が計算できた。なお、
は、
、…、
のシェア列を意味する。各i番目の論理演算部706_iは、
を各データ記憶部708_iに記憶する。
第1のサーバ装置700_1は、上記ステップG2における第2のサーバ装置700_2と同様、第1のマスク値計算部701_1は、
を生成し、
を第4のサーバ装置700_4に送信する。第4のサーバ装置700_4は、第4のデータ記憶部708_4に
を記憶する。第4の不正検知部704_4は、第4のデータ記憶部708_4から
を取り出し、
が成り立つか、検証する。
が成り立たない場合は、第4の不正検知部704_4はabortの文字列を各サーバ装置700_1、700_2、700_3にブロードキャストし、プロトコルを中断する。
を第1のデータ記憶部708_1から取り出す。次に、第1の再分散値計算部702_1は、
を、第4の不正検知部704_4に送信する。第4の不正検知部704_4は、第4のデータ記憶部708_4に記憶されている
を取出し、
が成立するかを検証する。
、
に関しては、それぞれの値を連結したものに対するハッシュ値を送信し、ハッシュ値同士の比較によって検証してもよい。このとき、処理全体の計算量に対して、ハッシュ値の送信量は無視できるものと捉えることができる。
第3の不正検知部704_3は、
を第3のデータ記憶部708_3から取出し、
を第1の不正検知部704_1に送信する。第1の不正検知部704_1は、第1のデータ記憶部708_1から
を取出し、
が成り立つか、検証する。
が成り立つ場合は、第1の不正検知部704_1はsuccessの文字列を各サーバ装置700_2、700_3、700_4にブロードキャストし、次のステップに進む。
が成り立たない場合は、第1の不正検知部704_1はabortの文字列を各サーバ装置700_2、700_3、700_4にブロードキャストし、プロトコルを中断する。
に関しては、それぞれの値を連結したものに対するハッシュ値を送信し、ハッシュ値同士の比較によって検証してもよい。このとき、処理全体の計算量に対して、ハッシュ値の送信量は無視できるものと捉えることができる。
各i番目の不正検知部704_iは、上記ステップG5の
における送受信データを用いて、突き合わせることで不正検知を行う。不正が検知されなかった第1乃至第4のサーバ装置700_1、700_2、700_3、700_4は、successの文字列を各サーバ装置にブロードキャストする。不正が検知された第1乃至第4のサーバ装置700_1、700_2、700_3、700_4は、abortの文字列を各サーバ装置にブロードキャストし、プロトコルを中断する。これは上述の不正検知可能な4者間秘密計算によって実現される。ステップG8は上記ステップG6、G7と並列に実行することが可能である。
の計算を1回行うことで実現できる。リップルキャリー型のnビット加算器を用いて不正検知に関する処理を並列に行った場合、第5の実施形態では、ビット分解の通信コストとして、8n−5ビット・n+1ラウンドを要する。これより、第7の実施形態の方が他の実施形態よりもビット分解の通信コストの点で効率が良い。なお、本願開示の実施はリップルキャリー型のnビット加算器に限定されない。キャリールックアヘッド型やパラレルプリフィックス型などのnビット加算器を用いても良い。
続いて、秘密計算システムをなす秘密計算サーバのハードウェア構成について説明する。
なお、第1乃至第7の実施形態にて説明した秘密計算検証システムの構成及び動作は例示であって、種々の変形が可能である。例えば、上記実施形態では、4つの秘密計算サーバ装置100_1〜100_4が対等である場合を説明したが、1つのサーバ装置を代表サーバとして定めてもよい。この場合、代表サーバが秘密計算に用いるデータの入出力(入力データの分散及び配布、計算結果の復号)を制御してもよい。
の環上で実行される2−out−of−4複製型秘密分散を用いた不正検知可能な4者間MPCにて、生体テンプレート照合や統計演算などの混合回路の計算を効率よく実現する場合に好適である。また、本発明では加算器を計算する際に用いる回路を変更することで、通信量と通信回数についてトレードオフが成立するような異なる型変換を実現できる。これにより、通信環境に応じて、効率よく型変換を行える。よって、型変換をサブルーチンとして用いる混合回路を上記4者間MPCにて実行する際に、通信環境に応じて、効率よく実行できる。
[付記1]
上述の第1の視点に係る情報処理装置のとおりである。
[付記2]
前記生成された乱数に関するデータを用いて不正行為者の有無を検知する、不正検知部をさらに備える、好ましくは付記1に記載の情報処理装置。
[付記3]
前記型変換されたシェアについての論理演算を行う論理演算部をさらに備え、
前記論理演算部は、他の装置と互いに通信を行い前記型変換されたシェアの加算処理を実行し、
前記不正検知部は、前記型変換されたシェアの加算処理のために送受信されたデータを用いて不正行為者の有無を検知する、好ましくは付記2に記載の情報処理装置。
[付記4]
前記論理演算部は、他の装置と互いに通信を行い前記型変換されたシェアのキャリー計算処理を実行し、
前記不正検知部は、前記型変換されたシェアのキャリー計算処理のために送受信されたデータを用いて不正行為者の有無を検知する、好ましくは付記3に記載の情報処理装置。
[付記5]
前記キャリー計算処理は、第1要素及び前記第1要素に続く第2要素に分離可能であり、
前記論理演算部は、
前記第1要素を他の装置と非通信により計算すると共に、前記シェアの再分散値の計算に必要な通信と前記第2要素のキャリー計算処理に必要な通信を並列に行う、好ましくは付記4に記載の情報処理装置。
[付記6]
シェアをマスクするためのマスク値を計算すると共に、前記計算されたマスク値によりマスクされたシェアを他の装置に送信する、マスク値計算部をさらに備え、
前記シェア構成部は、前記送信されたマスク値を用いて前記型変換用のシェアを構成する、好ましくは付記1乃至5のいずれか一に記載の情報処理装置。
[付記7]
前記再分散値計算部は、値xの再分散値を計算する際、値xをx1、x2、x3の排他的論理和とする場合に前記x1乃至x3のうち2つの値を等しくするように乱数を生成する、好ましくは付記1乃至6のいずれか一に記載の情報処理装置。
[付記8]
前記再分散値計算部は、値x’の再分散値を計算する際、値x’をx1’、x2’、x3’の排他的論理和とする場合、x1’を乱数rに等しく、x2’をゼロ、x3’を乱数rと値xの排他的論理和とする、好ましくは付記7に記載の情報処理装置。
[付記9]
前記再分散値計算部は、疑似ランダム関数に前記シードと他の装置と共有されるカウンタ値を入力し、前記シードを用いた乱数を生成する、好ましくは付記1乃至8のいずれか一に記載の情報処理装置。
[付記10]
前記型変換用のシェアは、ビット分解用のシェア又は環合成用のシェアである、好ましくは付記1乃至9のいずれか一に記載の情報処理装置。
[付記11]
上述の第2の視点に係る秘密計算方法のとおりである。
[付記12]
上述の第3の視点に係るプログラムのとおりである。
なお、付記11の形態及び付記12の形態は、付記1の形態と同様に、付記2の形態〜付記10の形態に展開することが可能である。
11、107_1、207_1、307_1、407_1、507_1、607_1、707_1、107_i〜707_i 基本演算シード記憶部
12、102_1、202_1、302_1、402_1、502_1、602_1、702_1、102_i〜702_i 再分散値計算部
13、103_1、203_1、303_1、403_1、503_1、603_1、703_1、103_i〜703_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、600_1〜600_4、700_1〜700_4、100_i〜700_i 秘密計算サーバ装置
501_1、601_1、701_1、501_i〜501_i マスク値計算部
104_1、204_1、304_1、404_1、504_1、604_1、704_1、104_i〜704_i 不正検知部
105_1、205_1、305_1、405_1、505_1、605_1、705_1、105_i〜705_i 算術演算部
106_1、206_1、306_1、406_1、506_1、606_1、706_1、106_i〜706_i 論理演算部
108_1、208_1、308_1、408_1、508_1、608_1、708_1、108_i〜708_i データ記憶部
Claims (10)
- シェアについての演算を行う際の乱数を生成するためのシードを格納する、基本演算シード記憶部と、
前記シードを用いて乱数を生成し、前記生成された乱数によりシェアの再分散値を計算すると共に、前記生成された乱数に関するデータを他の装置に送信する、再分散値計算部と、
他の装置から受信した前記生成された乱数に関するデータ及び前記シェアの再分散値を用いて型変換用のシェアを構成する、シェア構成部と、
を備える、情報処理装置。 - 前記生成された乱数に関するデータを用いて不正行為者の有無を検知する、不正検知部をさらに備える、請求項1に記載の情報処理装置。
- 前記型変換されたシェアについての論理演算を行う論理演算部をさらに備え、
前記論理演算部は、他の装置と互いに通信を行い前記型変換されたシェアの加算処理を実行し、
前記不正検知部は、前記型変換されたシェアの加算処理のために送受信されたデータを用いて不正行為者の有無を検知する、請求項2に記載の情報処理装置。 - 前記論理演算部は、他の装置と互いに通信を行い前記型変換されたシェアのキャリー計算処理を実行し、
前記不正検知部は、前記型変換されたシェアのキャリー計算処理のために送受信されたデータを用いて不正行為者の有無を検知する、請求項3に記載の情報処理装置。 - 前記キャリー計算処理は、第1要素及び前記第1要素に続く第2要素に分離可能であり、
前記論理演算部は、
前記第1要素を他の装置と非通信により計算すると共に、前記シェアの再分散値の計算に必要な通信と前記第2要素のキャリー計算処理に必要な通信を並列に行う、請求項4に記載の情報処理装置。 - シェアをマスクするためのマスク値を計算すると共に、前記計算されたマスク値によりマスクされたシェアを他の装置に送信する、マスク値計算部をさらに備え、
前記シェア構成部は、前記送信されたマスク値を用いて前記型変換用のシェアを構成する、請求項1乃至5のいずれか一項に記載の情報処理装置。 - 前記再分散値計算部は、値xの再分散値を計算する際、値xをx1、x2、x3の排他的論理和とする場合に前記x1乃至x3のうち2つの値を等しくするように乱数を生成する、請求項1乃至6のいずれか一項に記載の情報処理装置。
- 前記再分散値計算部は、値x’の再分散値を計算する際、値x’をx1’、x2’、x3’の排他的論理和とする場合、x1’を乱数rに等しく、x2’をゼロ、x3’を乱数rと値xの排他的論理和とする、請求項7に記載の情報処理装置。
- シードを用いて乱数を生成するステップと、
前記生成された乱数によりシェアの再分散値を計算すると共に、前記生成された乱数に関するデータを他の装置に送信するステップと、
他の装置から受信した前記生成された乱数に関するデータ及び前記シェアの再分散値を用いて型変換用のシェアを構成するステップと、
を含む秘密計算方法。 - シードを用いて乱数を生成する処理と、
前記生成された乱数によりシェアの再分散値を計算すると共に、前記生成された乱数に関するデータを他の装置に送信する処理と、
他の装置から受信した前記生成された乱数に関するデータ及び前記シェアの再分散値を用いて型変換用のシェアを構成する処理と、
をコンピュータに実行させるプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/004793 WO2020165931A1 (ja) | 2019-02-12 | 2019-02-12 | 情報処理装置、秘密計算方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2020165931A1 true JPWO2020165931A1 (ja) | 2021-12-09 |
JP7259875B2 JP7259875B2 (ja) | 2023-04-18 |
Family
ID=72044634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020571932A Active JP7259875B2 (ja) | 2019-02-12 | 2019-02-12 | 情報処理装置、秘密計算方法及びプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220129567A1 (ja) |
JP (1) | JP7259875B2 (ja) |
WO (1) | WO2020165931A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463332B (zh) * | 2020-12-01 | 2024-07-30 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、密文计算系统和用于数据处理的装置 |
CN115913525A (zh) * | 2022-04-25 | 2023-04-04 | 上海紫先科技有限公司 | 一种用硬件芯片实现安全多方计算的方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014007311A1 (ja) * | 2012-07-05 | 2014-01-09 | 日本電信電話株式会社 | 秘密分散システム、データ分散装置、分散データ変換装置、秘密分散方法、およびプログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201040743A (en) * | 2009-05-08 | 2010-11-16 | Academia Sinica | Method of dual secretive sub-holding format applied in effective multi-party computation |
WO2015107952A1 (ja) * | 2014-01-17 | 2015-07-23 | 日本電信電話株式会社 | 秘密計算方法、秘密計算システム、ランダム置換装置及びプログラム |
US11222138B2 (en) * | 2018-05-29 | 2022-01-11 | Visa International Service Association | Privacy-preserving machine learning in the three-server model |
CN112805769B (zh) * | 2018-10-04 | 2023-11-07 | 日本电信电话株式会社 | 秘密s型函数计算系统、装置、方法及记录介质 |
JP7259876B2 (ja) * | 2019-02-12 | 2023-04-18 | 日本電気株式会社 | 情報処理装置、秘密計算方法及びプログラム |
-
2019
- 2019-02-12 WO PCT/JP2019/004793 patent/WO2020165931A1/ja active Application Filing
- 2019-02-12 JP JP2020571932A patent/JP7259875B2/ja active Active
- 2019-02-12 US US17/429,780 patent/US20220129567A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014007311A1 (ja) * | 2012-07-05 | 2014-01-09 | 日本電信電話株式会社 | 秘密分散システム、データ分散装置、分散データ変換装置、秘密分散方法、およびプログラム |
Non-Patent Citations (3)
Title |
---|
ARAKI, TOSHINORI ET AL.: "Generalizing the SPDZ Compiler For Other Protocols", CRYPTOLOGY EPRINT ARCHIVE, vol. Report 2018/762, Ver. 20181002:054546, JPN6019016858, October 2018 (2018-10-01), pages 1 - 33, XP061027287, ISSN: 0004818833 * |
MOHASSEL, PAYMAN AND RINDAL, PETER: "ABY3: A Mixed Protocol Framework for Machine Learning", CRYPTOLOGY EPRINT ARCHIVE, vol. Report 2018/403, Ver. 20180907:215141, JPN6019016856, September 2018 (2018-09-01), pages 1 - 40, XP061027247, ISSN: 0004818832 * |
大原 一真, 他: "異なるサイズの環が混在する不正検知可能なマルチパーティー計算", 2018年暗号と情報セキュリティシンポジウム(SCIS 2018), JPN6019016859, 23 January 2018 (2018-01-23), pages 1 - 4, ISSN: 0004818834 * |
Also Published As
Publication number | Publication date |
---|---|
US20220129567A1 (en) | 2022-04-28 |
WO2020165931A1 (ja) | 2020-08-20 |
JP7259875B2 (ja) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110557245B (zh) | 用于spdz的容错和安全多方计算的方法和系统 | |
Mouchet et al. | Multiparty homomorphic encryption from ring-learning-with-errors | |
US10944751B2 (en) | Generating cryptographic function parameters from compact source code | |
Rathee et al. | Cryptflow2: Practical 2-party secure inference | |
Wang et al. | Cryptanalysis of a symmetric fully homomorphic encryption scheme | |
EP2701337B1 (en) | Secret sharing method and system | |
JP7259876B2 (ja) | 情報処理装置、秘密計算方法及びプログラム | |
US11316665B2 (en) | Generating cryptographic function parameters based on an observed astronomical event | |
EP3134994B1 (en) | Method of obfuscating data | |
WO2017099117A1 (ja) | 事前計算装置、方法、およびコンピュータ読取可能な記録媒体、並びにベクトル乗算装置、および方法 | |
Akavia et al. | Linear-regression on packed encrypted data in the two-server model | |
EP3286747B1 (en) | Generating cryptographic function parameters from a puzzle | |
EP2742644B1 (en) | Encryption and decryption method | |
CN115694777A (zh) | 基于同态加密的隐私集合求交方法、装置、设备及介质 | |
JP6607257B2 (ja) | 秘密計算システム、秘密計算装置、および、秘密計算方法 | |
Andersen et al. | Privacy preserving health data processing | |
JPWO2020165931A1 (ja) | 情報処理装置、秘密計算方法及びプログラム | |
Shin et al. | Securing a local training dataset size in federated learning | |
CN116451804A (zh) | 一种基于同态加密的联邦学习方法及其相关设备 | |
JP7396373B2 (ja) | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム | |
US20230143175A1 (en) | Device specific multiparty computation | |
Bonte | Optimising privacy-preserving computations | |
Jiang et al. | Optimized verifiable delegated private set intersection on outsourced private datasets | |
Manz | Public-Key Ciphers | |
Jia et al. | Generic 2-Party PFE with Constant Rounds and Linear Active Security, and Efficient Instantiation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 7259875 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |