JPWO2019244756A1 - 秘密結合システム、方法、秘密計算装置及びプログラム - Google Patents

秘密結合システム、方法、秘密計算装置及びプログラム Download PDF

Info

Publication number
JPWO2019244756A1
JPWO2019244756A1 JP2020525639A JP2020525639A JPWO2019244756A1 JP WO2019244756 A1 JPWO2019244756 A1 JP WO2019244756A1 JP 2020525639 A JP2020525639 A JP 2020525639A JP 2020525639 A JP2020525639 A JP 2020525639A JP WO2019244756 A1 JPWO2019244756 A1 JP WO2019244756A1
Authority
JP
Japan
Prior art keywords
vector
share
substitution
generate
attribute
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
Application number
JP2020525639A
Other languages
English (en)
Other versions
JP7081663B2 (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2019244756A1 publication Critical patent/JPWO2019244756A1/ja
Application granted granted Critical
Publication of JP7081663B2 publication Critical patent/JP7081663B2/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Complex Calculations (AREA)

Abstract

秘密結合システムは、複数の秘密計算装置を含む秘密結合システムであって、複数の秘密計算装置は、ベクトル結合部11n、第一置換計算部12n、第一置換適用部13n、第一ベクトル生成部14n、第二ベクトル生成部15n、ビット反転部16n、第二置換計算部17n、第二置換適用部18n、第三ベクトル生成部19n、逆置換適用部110n、ベクトル分離部111n、第三置換適用部112n、属性値置換部113n及び第四ベクトル生成部114nを備えている。

Description

この発明は、秘密計算技術に関する。この発明は、特に、秘匿性を保ったまま2つのテーブルを結合する技術に関する。
秘密計算技術の分野において、秘匿性を保ったまま2つのテーブルを結合する技術が求められている。
秘匿性を保ったまま2つのテーブルを結合する技術として、例えば非特許文献1に記載された技術が知られている。非特許文献1では、キー重複ありの場合の等結合が実現されている。
桐淵直人、五十嵐大、諸橋玄武、濱田浩気、「属性情報と履歴情報の秘匿統合分析に向けた秘密計算による高速な等結合アルゴリズムとその実装」、CSS2016、2016
この発明は、キー重複がない場合に非特許文献1の技術よりも高速に秘匿性を保ったまま2つのテーブルを結合する秘密結合システム、方法、秘密計算装置及びプログラムを提供することである。
この発明の一態様による秘密結合システムは、複数の秘密計算装置を含む秘密結合システムであって、Fは任意の環であり、αを任意のベクトルとして[α]はαが秘密分散されたシェアであり、βを任意の置換として{{β}}はβが秘密分散されたシェアであり、m0,m1,L0,L1は1以上の整数であり、k0∈Fm0は第一テーブルのキーのベクトルであり、k1∈Fm1は第二テーブルのキーのベクトルであり、p=0,…,L0-1としてv0,p∈Fm0は第一テーブルの属性pの属性値のベクトルであり、q=0,…,L1-1としてv1,q∈Fm1は第二テーブルの属性qの属性値のベクトルであり、π01はそれぞれ長さm0,m1の所定の置換であり、複数の秘密計算装置は、ベクトルk0のシェア[k0]及びベクトルk1のシェア[k1]を用いて、ベクトルk0及びベクトルk1を結合したベクトルk'∈[F]m0+m1のシェア[k']を生成する複数のベクトル結合部と、シェア[k']を用いて、ベクトルk'を昇順に安定ソートする置換σのシェア{{σ}}を生成する複数の第一置換計算部と、シェア[k']及びシェア{{σ}}を用いて、ベクトルk'に置換σを適用したベクトルσ(k')のシェア[σ(k')]を生成する複数の第一置換適用部と、シェア[σ(k')]を用いて、ベクトルσ(k')のある要素とそのある要素の次の要素とが、同じ場合には1を、違う場合には0をそのある要素に対応する要素として持つベクトルeのシェア[e]を生成する複数の第一ベクトル生成部と、シェア[e]を用いて、ベクトルeのある要素とそのある要素の前の要素の一方が1の場合には1を、そうでない場合には0をそのある要素に対応する要素として持つベクトルe'のシェア[e']を生成する複数の第二ベクトル生成部と、シェア[e']を用いて、ベクトルe'の各要素をビット反転させたベクトルe''のシェア[e'']を生成する複数のビット反転部と、シェア[e'']を用いて、ベクトルe''を昇順に安定ソートする置換σ'のシェア{{σ'}}を生成する複数の第二置換計算部と、シェア[e'']及びシェア{{σ'}}を用いて、ベクトルe''に置換σ'を適用したベクトルσ'(e'')のシェア[σ'(e'')]を生成する複数の第二置換適用部と、シェア[σ'(e'')]を用いて、ベクトルσ'(e'')のある要素iが、0である場合には└i/2┘を、0でない場合には0をそのある要素iに対応する要素として持つベクトルxのシェア[x]を生成する複数の第三ベクトル生成部と、シェア[x]、シェア{{σ}}及びシェア{{σ'}}を用いて、ベクトルxに置換σ'の逆置換σ'-1及び置換σの逆置換σ-1を適用したベクトルσ-1(σ'-1(x))のシェア[σ-1(σ'-1(x))]を生成する複数の逆置換適用部と、シェア[σ-1(σ'-1(x))]を用いて、ベクトルσ-1(σ'-1(x))の先頭からm0個の要素からなるベクトルs0のシェア[s0]と、ベクトルσ-1(σ'-1(x))の残りのm1個の要素からなるベクトルs1のシェア[s1]とを生成する複数のベクトル分離部と、シェア[s0]、シェア[s1]及び置換π01を用いて、ベクトルs0に置換π0を適用したベクトルτ0:=π0(s0)のシェア[π0(s0)]と、ベクトルs1に置換π1を適用したベクトルτ1:=π1(s1)のシェア[π1(s1)]とを生成して、τ0:=π0(s0)及びτ1:=π1(s1)を公開する複数の第三置換適用部と、置換π0のシェア{{π0}}、置換π1のシェア{{π1}}、ベクトルv0,pのシェア[v0,p]及びベクトルv1,qのシェア[v1,q]を用いて、第一テーブルの各属性pの属性値のベクトルv0,pを置換π0で置換したベクトルv'0,pのシェア[v'0,p]と、第二テーブルの各属性qの属性値のベクトルv1,qを置換π1で置換したベクトルv'1,qのシェア[v'1,q]とを生成する複数の属性値置換部と、ベクトルτ0、ベクトルτ1、シェア[v'0,p]及びシェア[v'1,q]を用いて、ベクトルτ0のi'番目の要素が0でない場合にはベクトルv'0,pのi'番目の要素をi'-1番目の要素として持つベクトルv''0,pのシェア[v''0,p]と、ベクトルτ1のi'番目の要素が0でない場合にはベクトルv'1,qのi'番目の要素をi'-1番目の要素として持つベクトルv''1,qのシェア[v''1,q]とを生成する複数の第四ベクトル生成部と、を備えている。
逆置換を用いることで、キー重複がない場合に非特許文献1の技術よりも高速に秘匿性を保ったまま2つのテーブルを結合することができる。
図1は、秘密結合システムの機能構成を例示する図である。 図2は、秘密計算装置の機能構成を例示する図である。 図3は、秘密結合方法の処理手続きを例示する図である。 図4は、コンピュータの機能構成例を示す図である。
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
図1を参照して、実施形態の秘密結合システムの構成例を説明する。秘密結合システムは、N(≧2)台の秘密計算装置11,…,1Nを含む。本形態では、秘密計算装置11, …, 1Nはそれぞれ通信網2へ接続されている。通信網2は、接続される各装置が相互に通信可能なように構成された回線交換方式もしくはパケット交換方式の通信網であり、例えばインターネットやLAN(Local Area Network)、WAN(Wide Area Network)などである。なお、各装置は必ずしも通信網2を介してオンラインで通信可能である必要はない。例えば、秘密計算装置11, …, 1Nへ入力する情報を磁気テープやUSBメモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体から秘密計算装置11, …,1Nへオフラインで入力するように構成してもよい。
図2を参照して、秘密結合システムに含まれる秘密計算装置1n(n=1, …, N)の構成例を説明する。秘密結合システムの秘密計算装置1nは、例えば、図2に示すように、ベクトル結合部11n、第一置換計算部12n、第一置換適用部13n、第一ベクトル生成部14n、第二ベクトル生成部15n、ビット反転部16n、第二置換計算部17n、第二置換適用部18n、第三ベクトル生成部19n、逆置換適用部110n、ベクトル分離部111n、第三置換適用部112n、属性値置換部113n及び第四ベクトル生成部114nを備えている。
秘密計算装置1n(1≦n≦N)の各構成部が他の秘密計算装置1n'(n'=1, …, N、ただしn≠n')の各構成部と協調しながら後述する各ステップの処理を行うことにより実施形態の秘密結合方法が実現される。
なお、各ステップの処理は、秘密計算により行われる。すなわち、秘密計算装置1nは、シェアを復元することなく、言い換えればシェアの中身を知ることなく、各ステップの処理を行う。
秘密計算装置1nは、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。秘密計算装置1nは、例えば、中央演算処理装置の制御のもとで各処理を実行する。秘密計算装置1nに入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。秘密計算装置1nの各構成部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
以下の説明において、αを任意のベクトルとして[α]はαが秘密分散されたシェアであり、βを任意の置換として{{β}}はβが秘密分散されたシェアであるとする。
図3を参照して、実施形態の秘密結合システムが実行する秘密結合方法の処理手続きを説明する。
以下に説明する秘密結合システムは、第一テーブルと第二テーブルを秘密垂直結合する。言い換えれば、以下に説明する秘密結合システムは、秘匿性を保ちつつ、第一テーブル及び第二テーブルの共通するキーについての、第一テーブルの属性値及び第二テーブルの属性値を得る。
m0,m1,L0,L1は、1以上の整数であるとする。m0,m1,L0,L1は、同じ値であってもよいし、異なる値であってもよい。
第一テーブルは、m0個のレコードを有している。m0個のレコードのそれぞれは、1個のキーと、L0個の属性の属性値とを有している。k0∈Fm0は第一テーブルのキーのベクトルであるとする。p=0,…,L0-1として、v0,p∈Fm0は第一テーブルの属性pの属性値のベクトルであるとする。第一テーブルの中は、重複するキーはないとする。
[F]m0の上付き文字の中のm0は、「m0」を意味する。このように、上付き文字の中では、更なる上付き文字及び下付き文字の表現を省略することがある。同様に、下付き文字の中では、更なる上付き文字及び下付き文字の表現を省略することがある。
第二テーブルは、m1個のレコードを有している。m1個のレコードのそれぞれは、1個のキーと、L1個の属性の属性値とを有している。k1∈Fm1は第二テーブルのキーのベクトルであるとする。q=0,…,L1-1としてv1,q∈Fm1は上記第二テーブルの属性qの属性値のベクトルであるとする。第二テーブルの中では、重複するキーはないとする。
例えば、第一テーブルは、レコード数が3であり、キーのベクトルk0=(1,2,3)Tと、1個の属性z1の属性値のベクトルv0,1=(5,10,1)Tとから構成されているとする。
また、第二テーブルは、レコード数が4であり、キーのベクトルk1=(1,3,4,5)Tと、1個の属性z1'の属性値のベクトルv1,1=(2,4,9,8)Tとから構成されているとする。
<ステップS1>
ベクトル結合部111,…,11Nに、ベクトルk0のシェア[k0]及びベクトルk1のシェア[k1]が入力される。
ベクトル結合部111,…,11Nは、[k0]と[k1]を結合して[k']∈[F]m0+m1を得る。
より詳細には、ベクトル結合部111,…,11Nは、ベクトルk0のシェア[k0]及びベクトルk1のシェア[k1]を用いて、ベクトルk0及びベクトルk1を結合したベクトルk'∈[F]m0+m1のシェア[k']を生成する(ステップS1)。
生成されたシェア[k']は、第一置換計算部121,…,12N及び第一置換適用部131,…,13Nに出力される。
例えば、ベクトルk0=(1,2,3)Tであり、ベクトルk1=(1,3,4,5)Tであるとする。この場合、ベクトルk'=(1,2,3,1,3,4,5)Tとなる。
<ステップS2>
第一置換計算部121,…,12Nに、シェア[k']が入力される。
第一置換計算部121,…,12Nは、[k']のソート{{σ}}を得る。
より詳細には、第一置換計算部121,…,12Nは、シェア[k']を用いて、ベクトルk'を昇順に安定ソートする置換σのシェア{{σ}}を生成する(ステップS2)。
安定ソートとは、同等なデータのソート前の順序が、ソート後も保存されるものをいう。安定ソートを行う置換σのシェア{{σ}}の生成は、例えば参考文献1の手法により実現することができる。
〔参考文献1〕五十嵐大、濱田浩気、菊池亮、千田浩司、「超高速秘密計算ソートの設計と実装:秘密計算がスクリプト言語に並ぶ日」、CSS2017、2017
生成されたシェア{{σ}}は、第一置換適用部131,…,13N及び逆置換適用部1101,…, 110Nに出力される。
例えば、ベクトルk'=(1,2,3,1,3,4,5)Tであるとする。この場合、置換σは以下の式(1)のようになる。例えば、番号が1スタートで表記されるとして、置換σの各列(i,j)Tは、置換が適用されるベクトルのi番目の要素をj番目に移動することを意味する。
Figure 2019244756
なお、ベクトルk'の各要素は、ビット分解されたものであってもよい。すなわち、ベクトルk'の各要素は、その各要素が0,1のビットで表現されたものであってもよい。
<ステップS3>
第一置換適用部131,…,13Nに、シェア[k']及びシェア{{σ}}が入力される。
第一置換適用部131,…,13Nは、[k']に{{σ}}を適用して[σ(k')]を得る。
より詳細には、第一置換適用部131,…,13Nは、シェア[k']及びシェア{{σ}}を用いて、ベクトルk'に置換σを適用したベクトルσ(k')のシェア[σ(k')]を生成する(ステップS3)。
生成されたシェア[σ(k')]は、第一ベクトル生成部141,…,14Nに出力される。
例えば、ベクトルk'=(1,2,3,1,3,4,5)Tであり、置換σが上記の式(1)で表される置換であるとする。この場合、ベクトルσ(k')=(1,1,2,3,3,4,5)Tとなる。
<ステップS4>
第一ベクトル生成部141,…,14Nに、シェア[σ(k')]が入力される。
第一ベクトル生成部141,…,14Nは、[ei]:=[σ(k')i=σ(k')i+1]ただし[em0+m1-1]:=[0]なる[e]を得る。iを0以上の整数として、eiはベクトルeのi番目の要素を意味し、σ(k')iはベクトルσ(k')のi番目の要素を意味する。このように、iを0以上の整数として、ベクトルの下付きのiは、そのベクトルのi番目の要素を意味する。":="は、":="の左の変数に":="の右の値を代入することを意味する。例えば、a:=bは、変数aにbの値を代入することを意味する。
なお、ベクトルの要素数をMとすると、ベクトルの最初の要素を0番目の要素と呼び、ベクトルの次の要素を1番目の要素と呼び、ベクトルの最後の要素をM-1番目の要素と呼ぶことにする。
より詳細には、第一ベクトル生成部141,…,14Nは、シェア[σ(k')]を用いて、ベクトルσ(k')のある要素とそのある要素の次の要素とが、同じ場合には1を、違う場合には0をそのある要素に対応する要素として持つベクトルeのシェア[e]を生成する(ステップS4)。ただし、ベクトルeの最後の要素は0であるとする。
生成されたシェア[e]は、第二ベクトル生成部151,…,15Nに出力される。
例えば、ベクトルσ(k')=(1,1,2,3,3,4,5)Tであるとする。この場合、ベクトルe=(1,0,0,1,0,0,0)Tとなる。
<ステップS5>
第二ベクトル生成部151,…,15Nに、シェア[e]が入力される。
第二ベクトル生成部151,…,15Nは、[e'i]=[ei(+)ei-1]ただし[e'0]=[e0]なる[e']を得る。(+)は、排他的論理和又は加算である。
より詳細には、第二ベクトル生成部151,…,15Nは、シェア[e]を用いて、ベクトルeのある要素とそのある要素の前の要素の一方が1の場合には1を、そうでない場合には0をそのある要素に対応する要素として持つベクトルe'のシェア[e']を生成する(ステップS5)。ただし、ベクトルe'の最初の要素は、ベクトルeの最初の要素と同じであるとする。
生成されたシェア[e']は、ビット反転部161,…,16Nに出力される。
例えば、ベクトルe=(1,0,0,1,0,0,0)Tであるとする。この場合、ベクトルe'=(1,1,0,1,1,0,0)Tとなる。
<ステップS6>
ビット反転部161,…,16Nに、シェア[e']が入力される。
ビット反転部161,…,16Nは、[e']のビット反転[e'']を得る。
より詳細には、ビット反転部161,…,16Nは、シェア[e']を用いて、ベクトルe'の各要素をビット反転させたベクトルe''のシェア[e'']を生成する(ステップS6)。
生成されたシェア[e'']は、第二置換計算部171,…,17N及び第二置換適用部181,…,18Nに出力される。
例えば、e'=(1,1,0,1,1,0,0)Tであるとする。この場合、ベクトルe''=(0,0,1,0,0,1,1)Tとなる。
なお、ベクトルk'の各要素がビット分解されたものであった場合には、例えばmod P変換により、e''の環が変更されてもよい。Pは、3以上の素数である。mod P変換は、例えば参考文献1のScheme 5に記載された手法により実現することができる。
<ステップS7>
第二置換計算部171,…,17Nに、シェア[e'']が入力される。
第二置換計算部171,…,17Nは、[e'']のソート{{σ'}}を得る。
より詳細には、第二置換計算部171,…,17Nは、シェア[e'']を用いて、ベクトルe''を昇順に安定ソートする置換σ'のシェア{{σ'}}を生成する(ステップS7)。
生成されたシェア{{σ'}}は、第二置換適用部181,…,18N及び逆置換適用部1101,…, 110Nに出力される。
例えば、ベクトルe''=(0,0,1,0,0,1,1)Tであるとする。この場合、置換σ'は以下の式(2)のようになる。
Figure 2019244756
<ステップS8>
第二置換適用部181,…,18Nに、シェア[e'']及びシェア{{σ'}}が入力される。
第二置換適用部181,…,18Nは、[e'']に{{σ'}}を適用して[σ'(e'')]を得る。
より詳細には、第二置換適用部181,…,18Nは、シェア[e'']及びシェア{{σ'}}を用いて、ベクトルe''に置換σ'を適用したベクトルσ'(e'')のシェア[σ'(e'')]を生成する(ステップS8)。
生成されたシェア[σ'(e'')]は、第三ベクトル生成部191,…,19Nに出力される。
例えば、ベクトルe''=(0,0,1,0,0,1,1)Tであり、置換σ'が上記の式(2)により表される置換であるとする。この場合、ベクトルσ'(e'')=(0,0,0,0,1,1,1)Tとなる。
<ステップS9>
第三ベクトル生成部191,…,19Nに、シェア[σ'(e'')]が入力される。
第三ベクトル生成部191,…,19Nは、[x]:=[σ'(e'')i?0:└i/2┘+1]を得る。
より詳細には、第三ベクトル生成部191,…,19Nは、シェア[σ'(e'')]を用いて、ベクトルσ'(e'')のある要素iが、0である場合には└i/2┘を、0でない場合には0をそのある要素iに対応する要素として持つベクトルxのシェア[x]を生成する(ステップS9)。
ここで、i=0,…,m0+m1-1であり、└i/2┘は、i/2以下の最大の整数を意味する。
生成されたシェア[x]は、逆置換適用部1101,…,110Nに出力される。
例えば、ベクトルσ'(e'')=(0,0,0,0,1,1,1)Tであるとする。この場合、ベクトルx=(1,1,2,2,0,0,0)Tとなる。
<ステップS10>
逆置換適用部1101,…, 110Nに、シェア[x]、シェア{{σ}}及びシェア{{σ'}}が入力される。
逆置換適用部1101,…, 110Nは、[x]に{{σ'}}と{{σ}}を逆適用して[σ-1(σ'-1(x))]を得る。
より詳細には、逆置換適用部1101,…, 110Nは、シェア[x]、シェア{{σ}}及びシェア{{σ'}}を用いて、ベクトルxに置換σ'の逆置換σ'-1及び置換σの逆置換σ-1を適用したベクトルσ-1(σ'-1(x))のシェア[σ-1(σ'-1(x))]を生成する(ステップS10)。
生成されたシェア[σ-1(σ'-1(x))]は、ベクトル分離部1111,…, 111Nに出力される。
例えば、ベクトルx=(1,1,2,2,0,0,0)Tであり、置換σが上記の式(1)により表される置換であり、置換σ'が上記の式(2)により表される置換であるとする。この場合、ベクトルσ-1(σ'-1(x))= (1,0,2,1,2,0,0)Tとなる。
<ステップS111>
ベクトル分離部1111,…, 111Nに、シェア[σ-1(σ'-1(x))]が入力される。
ベクトル分離部1111,…, 111Nは、[σ-1(σ'-1(x))]を先頭からm0個の要素[s0]と残りのm1個の要素[s1]とに分離する。
より詳細には、ベクトル分離部1111,…, 111Nは、シェア[σ-1(σ'-1(x))]を用いて、ベクトルσ-1(σ'-1(x))の先頭からm0個の要素からなるベクトルs0のシェア[s0]と、ベクトルσ-1(σ'-1(x))の残りのm1個の要素からなるベクトルs1のシェア[s1]とを生成する(ステップS11)。
生成されたシェア[s0]及びシェア[s1]は、第三置換適用部1121,…, 112Nに出力される。
例えば、ベクトルσ-1(σ'-1(x))=(1,0,2,1,2,0,0)Tであるとする。この場合、ベクトルs0=(1,0,2)T、ベクトルs1=(1,2,0,0)Tとなる。
ベクトルs0,s1は、第一テーブルと第二テーブルで重複するキーの位置を示している。例えば、第一テーブルのキーのベクトルがk0=(1,2,3)Tであり、第二テーブルのキーのベクトルがk1=(1,3,4,5)Tであるとする。この場合、ベクトルs0=(1,0,2)T、ベクトルs1=(1,2,0,0)Tとなる。第一テーブルと第二テーブルで重複するキーは、「1」「3」である。ベクトルs0=(1,0,2)T及びベクトルs1=(1,2,0,0)Tは、それぞれベクトルk0=(1,2,3)T及びk1=(1,3,4,5)Tの中の「1」「3」の位置を示している。
<ステップS12>
第三置換適用部1121,…, 112Nに、シェア[s0]及びシェア[s1]が入力される。
第三置換適用部1121,…, 112Nは、[π0(s0)],[π1(s1)]を得て、τ0:=π0(s0),τ1:=π1(s1)を公開する。
より詳細には、第三置換適用部1121,…, 112Nは、シェア[s0]、シェア[s1]及び置換π01を用いて、ベクトルs0に置換π0を適用したベクトルτ0:=π0(s0)のシェア[π0(s0)]と、ベクトルs1に置換π1を適用したベクトルτ1:=π1(s1)のシェア[π1(s1)]とを生成して、ベクトルτ0及びベクトルτ1を公開する(ステップS12)。ベクトルτ0及びベクトルτ1は、秘密計算装置1n(1≦n≦N)に公開される。
置換π01は、所定の置換であり、例えばランダム置換である。置換π01は、予め定められた置換であってもよいし、ステップS12の処理をする際に生成されてもよい。置換π01及びこれらのシェア{{π0}},{{π1}}は、例えば参考文献1の4.1節に記載された手法により生成することができる。秘密計算装置1n(1≦n≦N)は、置換π01及びこれらのシェア{{π0}},{{π1}}についての情報を有しており、置換π01及びこれらのシェア{{π0}},{{π1}}を用いて計算が可能であるとする。
生成されたシェア[π0(s0)]及びシェア[π1(s1)]は、属性値置換部1131,…, 113Nに出力される。
例えば、ベクトルs0=(1,0,2)T、ベクトルs1=(1,2,0,0)Tであり、π0が以下の式(3)により表される置換であり、π1が以下の式(4)により表される置換であるとする。
Figure 2019244756
この場合、ベクトルτ0=(0,2,1)T、ベクトルτ1=(0,1,0,2)Tとなる。
<ステップS13>
属性値置換部1131,…, 113Nに、シェア[v0,p]及びシェア[v1,q]が入力される。
属性値置換部1131,…, 113Nは、第一テーブルの各属性値を{{π0}}、第二テーブルの各属性値{{π1}}により置換する。
より詳細には、属性値置換部1131,…, 113Nは、置換π0のシェア{{π0}}、置換π1のシェア{{π1}}、ベクトルv0,pのシェア[v0,p]及びベクトルv1,qのシェア[v1,q]を用いて、第一テーブルの各属性p(p=0,…,m0-1)の属性値のベクトルv0,pを置換π0で置換したベクトルv'0,pのシェア[v'0,p]と、第二テーブルの各属性q(q=0,…,m1-1)の属性値のベクトルv1,qを置換π1で置換したベクトルv'1,qのシェア[v'1,q]とを生成する(ステップS13)。
生成されたシェア[v'0,p]及びシェア[v'1,q]は、第四ベクトル生成部1141,…,114Nに出力される。
例えば、第一テーブルの属性z1のベクトルv0,1=(5,10,1)Tであり、第二テーブルの属性z1'のベクトルv1,1=(2,4,9,8)Tであり、π0が上記の式(3)により表される置換であり、π1が上記の式(4)により表される置換であるとする。この場合、ベクトルv'0,1=(10,1,5)T、ベクトルv'1,1=(9,2,8,4)Tとなる。
<ステップS14>
第四ベクトル生成部1141,…,114Nに、ベクトルτ0、ベクトルτ1、シェア[v'0,p]及びシェア[v'1,q]が入力される。
第四ベクトル生成部1141,…,114Nは、i=1,2として、置換した各属性値[v'i,j]について(τi)i'≠0のときに[(v''i,j)(τi)i'-1]:=[(v'i,j)i']とする[(v''i,j)]を得る。
より詳細には、第四ベクトル生成部1141,…,114Nは、ベクトルτ0、ベクトルτ1、シェア[v'0,p]及びシェア[v'1,q]を用いて、ベクトルτ0のi'番目の要素が0でない場合にはベクトルv'0,pのi'番目の要素をi'-1番目の要素として持つベクトルv''0,pのシェア[v''0,p]と、ベクトルτ1のi'番目の要素が0でない場合にはベクトルv'1,qのi'番目の要素をi'-1番目の要素として持つベクトルv''1,qのシェア[v''1,q]とを生成する(ステップS14)。第四ベクトル生成部1141,…,114Nは、この処理を各p(p=0,…,L0-1)及び各q(q=0,…,L1-1)に対して行う。
例えば、ベクトルτ0=(0,2,1)T、ベクトルv'0,1=(10,1,5)T、ベクトルτ1=(0,1,0,2)T、ベクトルv'1,1=(9,2,8,4)Tであるとする。この場合、ベクトルv''0,1=(5,1)T、ベクトルv''1,1=(2,4)Tとなる。
ベクトルs0,s1は第一テーブルと第二テーブルで重複するキーの位置を示しているため、ベクトルs0,s1をそれぞれ置換π01により置換したベクトルτ01は、置換π01による置換後の第一テーブルと第二テーブルで重複するキーの位置を示している。
上記の例では、ベクトルτ0=(0,2,1)Tの2番目の要素「1」は置換π0による置換後の第一テーブルのキー「1」の位置を示し、ベクトルτ0=(0,2,1)Tの1番目の要素「2」は置換π0による置換後の第一テーブルのキー「3」の位置を示している。
同様に、上記の例では、ベクトルτ1=(0,1,0,2)Tの1番目の要素「1」は置換π1による置換後の第二テーブルのキー「1」の位置を示し、ベクトルτ1=(0,1,0,2)Tの3番目の要素「2」は置換π1による置換後の第二テーブルのキー「3」の位置を示している。
このため、(τi)i'≠0のときに[(v''i,j)(τi)i'-1]:=[(v'i,j)i']とすることにより、第一テーブルのキー「1」のレコードの属性z1の属性値「5」をベクトルv''0,1=(5,1)Tの0番目の要素とし、第一テーブルのキー「3」のレコードの属性z1の属性値「1」をベクトルv''0,1=(5,1)Tの1番目の要素とすることができる。
また、第二テーブルのキー「1」のレコードの属性z1'の属性値「2」をベクトルv''1,1=(2,4)Tの0番目の要素とし、第二テーブルのキー「3」のレコードの属性z1'の属性値「4」をベクトルv''1,1=(2,4)Tの1番目の要素とすることができる。
言い換えれば、ベクトルv''0,1=(5,1)Tの0番目の要素「5」は第一テーブルのキー「1」のレコードの属性z1の属性値であり、ベクトルv''0,1=(5,1)Tの1番目の要素「1」は、第一テーブルのキー「3」のレコードの属性z1の属性値である。
また、ベクトルv''1,1=(2,4)Tの0番目の要素「2」は第二テーブルのキー「1」のレコードの属性z1'の属性値であり、ベクトルv''1,1=(2,4)Tの1番目の要素「4」は第二テーブルのキー「3」のレコードの属性z1'の属性値である。
このように、ベクトルv''0,1=(5,1)T、ベクトルv''1,1=(2,4)Tは、第一テーブル及び第二テーブルの共通するキー「1」「3」についての、第一テーブルの属性値及び第二テーブルの属性値を表していると言える。
この実施形態によれば、秘匿性を保ったまま、第一テーブル及び第二テーブルの共通するキーについての、第一テーブルの属性値及び第二テーブルの属性値を得ることができる。
[変形例]
なお、xを2以上の正の整数として、キーの属性が、x個の属性の複合キーであってもよい。この場合には、例えば以下のようにしてステップS1の処理を行ってもよい。
第一テーブルのキーは、k0,0,…,k0,x-1であるとする。第二テーブルのキーは、k1,0,…,k1,x-1であるとする。
この場合、ステップS1の処理で、各i(ただしi=0,…,x-1)でk0,iとk1,iを結合してk'iを得る。そして、各k'iをビット分解してビット表現にし、横に結合する。例えばk'0=(1,2,3,1,3,0,1)T,k'1=(0,0,0,0,0,1,1)Tのとき、k'0をビット分解すると、(k'0)0=(1,0,1,1,1,0,1)T,(k'0)1=(0,1,1,0,1,0,0)Tとなる。
ここで、k'0は1から3の値を取るため、k'0の各要素は2ビットで表現することができる。(k'0)0はk'0をビット分解したときの下位ビットであり、(k'0)1はk'0をビット分解したときの上位ビットである。k'1はこの例ではもともと1ビット数であるので分解する必要はなく、k'1=(k'1)0とする。(k'0)0,(k'0)1,(k'1)0を横に結合すると、
Figure 2019244756
となる。このようにして並べたものを行列とみなし、この行列の各行を1レコードのキーのビット表現とみなすと、(1,2,3,1,3,4,5)というキーのビット表現のベクトルが得られる。このベクトルをステップS2以降で使うk'として用いてもよい。このようにして、複合キーの場合も処理できる。
複合キーでは、キーの重複とは、全てのキー属性の値の組み合わせの観点で重複するかどうかであり、個々の属性の値が重複しただけでは重複とはみなさないとする。例えば、組み合わせ(1,0)と(1,1)は重複ではない。
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。
実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[プログラム、記録媒体]
上述の各種の処理は、図4に示すコンピュータの記録部2020に、上記方法の各ステップを実行させるプログラムを読み込ませ、制御部2010、入力部2030、出力部2040などに動作させることで実施できる。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
<ステップS11>
ベクトル分離部1111,…, 111Nに、シェア[σ-1(σ'-1(x))]が入力される。

Claims (4)

  1. 複数の秘密計算装置を含む秘密結合システムであって、
    Fは任意の環であり、αを任意のベクトルとして[α]はαが秘密分散されたシェアであり、βを任意の置換として{{β}}はβが秘密分散されたシェアであり、m0,m1,L0,L1は1以上の整数であり、k0∈Fm0は第一テーブルのキーのベクトルであり、k1∈Fm1は第二テーブルのキーのベクトルであり、p=0,…,L0-1としてv0,p∈Fm0は上記第一テーブルの属性pの属性値のベクトルであり、q=0,…,L1-1としてv1,q∈Fm1は上記第二テーブルの属性qの属性値のベクトルであり、π01はそれぞれ長さm0,m1の所定の置換であり、
    上記複数の秘密計算装置は、
    上記ベクトルk0のシェア[k0]及び上記ベクトルk1のシェア[k1]を用いて、上記ベクトルk0及び上記ベクトルk1を結合したベクトルk'∈[F]m0+m1のシェア[k']を生成する複数のベクトル結合部と、
    上記シェア[k']を用いて、上記ベクトルk'を昇順に安定ソートする置換σのシェア{{σ}}を生成する複数の第一置換計算部と、
    上記シェア[k']及び上記シェア{{σ}}を用いて、上記ベクトルk'に上記置換σを適用したベクトルσ(k')のシェア[σ(k')]を生成する複数の第一置換適用部と、
    上記シェア[σ(k')]を用いて、上記ベクトルσ(k')のある要素とそのある要素の次の要素とが、同じ場合には1を、違う場合には0をそのある要素に対応する要素として持つベクトルeのシェア[e]を生成する複数の第一ベクトル生成部と、
    上記シェア[e]を用いて、上記ベクトルeのある要素とそのある要素の前の要素の一方が1の場合には1を、そうでない場合には0をそのある要素に対応する要素として持つベクトルe'のシェア[e']を生成する複数の第二ベクトル生成部と、
    上記シェア[e']を用いて、上記ベクトルe'の各要素をビット反転させたベクトルe''のシェア[e'']を生成する複数のビット反転部と、
    上記シェア[e'']を用いて、上記ベクトルe''を昇順に安定ソートする置換σ'のシェア{{σ'}}を生成する複数の第二置換計算部と、
    上記シェア[e'']及び上記シェア{{σ'}}を用いて、上記ベクトルe''に上記置換σ'を適用したベクトルσ'(e'')のシェア[σ'(e'')]を生成する複数の第二置換適用部と、
    上記シェア[σ'(e'')]を用いて、上記ベクトルσ'(e'')のある要素iが、0である場合には└i/2┘を、0でない場合には0をそのある要素iに対応する要素として持つベクトルxのシェア[x]を生成する複数の第三ベクトル生成部と、
    上記シェア[x]、上記シェア{{σ}}及び上記シェア{{σ'}}を用いて、上記ベクトルxに上記置換σ'の逆置換σ'-1及び上記置換σの逆置換σ-1を適用したベクトルσ-1(σ'-1(x))のシェア[σ-1(σ'-1(x))]を生成する複数の逆置換適用部と、
    上記シェア[σ-1(σ'-1(x))]を用いて、上記ベクトルσ-1(σ'-1(x))の先頭からm0個の要素からなるベクトルs0のシェア[s0]と、上記ベクトルσ-1(σ'-1(x))の残りのm1個の要素からなるベクトルs1のシェア[s1]とを生成する複数のベクトル分離部と、
    上記シェア[s0]、上記シェア[s1]及び上記置換π01を用いて、上記ベクトルs0に上記置換π0を適用したベクトルτ0:=π0(s0)のシェア[π0(s0)]と、上記ベクトルs1に上記置換π1を適用したベクトルτ1:=π1(s1)のシェア[π1(s1)]とを生成して、τ0:=π0(s0)及びτ1:=π1(s1)を公開する複数の第三置換適用部と、
    上記置換π0のシェア{{π0}}、上記置換π1のシェア{{π1}}、上記ベクトルv0,pのシェア[v0,p]及び上記ベクトルv1,qのシェア[v1,q]を用いて、上記第一テーブルの各属性pの属性値のベクトルv0,pを上記置換π0で置換したベクトルv'0,pのシェア[v'0,p]と、上記第二テーブルの各属性qの属性値のベクトルv1,qを上記置換π1で置換したベクトルv'1,qのシェア[v'1,q]とを生成する複数の属性値置換部と、
    上記ベクトルτ0、上記ベクトルτ1、上記シェア[v'0,p]及び上記シェア[v'1,q]を用いて、上記ベクトルτ0のi'番目の要素が0でない場合には上記ベクトルv'0,pのi'番目の要素をi'-1番目の要素として持つベクトルv''0,pのシェア[v''0,p]と、上記ベクトルτ1のi'番目の要素が0でない場合には上記ベクトルv'1,qのi'番目の要素をi'-1番目の要素として持つベクトルv''1,qのシェア[v''1,q]とを生成する複数の第四ベクトル生成部と、
    を含む秘密結合システム。
  2. 請求項1の秘密結合システムの秘密計算装置。
  3. Fは任意の環であり、αを任意のベクトルとして[α]はαが秘密分散されたシェアであり、βを任意の置換として{{β}}はβが秘密分散されたシェアであり、m0,m1,L0,L1は1以上の整数であり、k0∈Fm0は第一テーブルのキーのベクトルであり、k1∈Fm1は第二テーブルのキーのベクトルであり、p=0,…,L0-1としてv0,p∈Fm0は上記第一テーブルの属性pの属性値のベクトルであり、q=0,…,L1-1としてv1,q∈Fm1は上記第二テーブルの属性qの属性値のベクトルであり、π01はそれぞれ長さm0,m1の所定の置換であり、
    複数のベクトル結合部が、上記ベクトルk0のシェア[k0]及び上記ベクトルk1のシェア[k1]を用いて、上記ベクトルk0及び上記ベクトルk1を結合したベクトルk'∈[F]m0+m1のシェア[k']を生成する複数のベクトル結合ステップと、
    複数の第一置換計算部が、上記シェア[k']を用いて、上記ベクトルk'を昇順に安定ソートする置換σのシェア{{σ}}を生成する複数の第一置換計算ステップと、
    複数の第一置換適用部が、上記シェア[k']及び上記シェア{{σ}}を用いて、上記ベクトルk'に上記置換σを適用したベクトルσ(k')のシェア[σ(k')]を生成する複数の第一置換適用ステップと、
    複数の第一ベクトル生成部が、上記シェア[σ(k')]を用いて、上記ベクトルσ(k')のある要素とそのある要素の次の要素とが、同じ場合には1を、違う場合には0をそのある要素に対応する要素として持つベクトルeのシェア[e]を生成する複数の第一ベクトル生成ステップと、
    複数の第二ベクトル生成部が、上記シェア[e]を用いて、上記ベクトルeのある要素とそのある要素の前の要素の一方が1の場合には1を、そうでない場合には0をそのある要素に対応する要素として持つベクトルe'のシェア[e']を生成する複数の第二ベクトル生成ステップと、
    複数のビット反転部が、上記シェア[e']を用いて、上記ベクトルe'の各要素をビット反転させたベクトルe''のシェア[e'']を生成する複数のビット反転ステップと、
    複数の第二置換計算部が、上記シェア[e'']を用いて、上記ベクトルe''を昇順に安定ソートする置換σ'のシェア{{σ'}}を生成する複数の第二置換計算ステップと、
    複数の第二置換適用部が、上記シェア[e'']及び上記シェア{{σ'}}を用いて、上記ベクトルe''に上記置換σ'を適用したベクトルσ'(e'')のシェア[σ'(e'')]を生成する複数の第二置換適用ステップと、
    複数の第三ベクトル生成部が、上記シェア[σ'(e'')]を用いて、上記ベクトルσ'(e'')のある要素iが、0である場合には└i/2┘を、0でない場合には0をそのある要素iに対応する要素として持つベクトルxのシェア[x]を生成する複数の第三ベクトル生成ステップと、
    複数の逆置換適用部が、上記シェア[x]、上記シェア{{σ}}及び上記シェア{{σ'}}を用いて、上記ベクトルxに上記置換σ'の逆置換σ'-1及び上記置換σの逆置換σ-1を適用したベクトルσ-1(σ'-1(x))のシェア[σ-1(σ'-1(x))]を生成する複数の逆置換適用ステップと、
    複数のベクトル分離部が、上記シェア[σ-1(σ'-1(x))]を用いて、上記ベクトルσ-1(σ'-1(x))の先頭からm0個の要素からなるベクトルs0のシェア[s0]と、上記ベクトルσ-1(σ'-1(x))の残りのm1個の要素からなるベクトルs1のシェア[s1]とを生成する複数のベクトル分離ステップと、
    複数の第三置換適用部が、上記シェア[s0]、上記シェア[s1]及び上記置換π01を用いて、上記ベクトルs0に上記置換π0を適用したベクトルτ0:=π0(s0)のシェア[π0(s0)]と、上記ベクトルs1に上記置換π1を適用したベクトルτ1:=π1(s1)のシェア[π1(s1)]とを生成して、τ0:=π0(s0)及びτ1:=π1(s1)を公開する複数の第三置換適用ステップと、
    複数の属性値置換部が、上記置換π0のシェア{{π0}}、上記置換π1のシェア{{π1}}、上記ベクトルv0,pのシェア[v0,p]及び上記ベクトルv1,qのシェア[v1,q]を用いて、上記第一テーブルの各属性pの属性値のベクトルv0,pを上記置換π0で置換したベクトルv'0,pのシェア[v'0,p]と、上記第二テーブルの各属性qの属性値のベクトルv1,qを上記置換π1で置換したベクトルv'1,qのシェア[v'1,q]とを生成する複数の属性値置換ステップと、
    複数の第四ベクトル生成部が、上記ベクトルτ0、上記ベクトルτ1、上記シェア[v'0,p]及び上記シェア[v'1,q]を用いて、上記ベクトルτ0のi'番目の要素が0でない場合には上記ベクトルv'0,pのi'番目の要素をi'-1番目の要素として持つベクトルv''0,pのシェア[v''0,p]と、上記ベクトルτ1のi'番目の要素が0でない場合には上記ベクトルv'1,qのi'番目の要素をi'-1番目の要素として持つベクトルv''1,qのシェア[v''1,q]とを生成する複数の第四ベクトル生成ステップと、
    を含む秘密結合方法。
  4. 請求項2の秘密計算装置の各部としてコンピュータを機能させるためのプログラム。
JP2020525639A 2018-06-20 2019-06-13 秘密結合システム、方法、秘密計算装置及びプログラム Active JP7081663B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018116576 2018-06-20
JP2018116576 2018-06-20
PCT/JP2019/023390 WO2019244756A1 (ja) 2018-06-20 2019-06-13 秘密結合システム、方法、秘密計算装置及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2019244756A1 true JPWO2019244756A1 (ja) 2021-06-24
JP7081663B2 JP7081663B2 (ja) 2022-06-07

Family

ID=68982833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020525639A Active JP7081663B2 (ja) 2018-06-20 2019-06-13 秘密結合システム、方法、秘密計算装置及びプログラム

Country Status (6)

Country Link
US (1) US11797540B2 (ja)
EP (1) EP3813042B1 (ja)
JP (1) JP7081663B2 (ja)
CN (1) CN112313728B (ja)
AU (1) AU2019288508B2 (ja)
WO (1) WO2019244756A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014139640A (ja) * 2013-01-21 2014-07-31 Nippon Telegr & Teleph Corp <Ntt> 秘密計算による表の等結合システム、方法
WO2018061800A1 (ja) * 2016-09-27 2018-04-05 日本電信電話株式会社 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104429019B (zh) * 2012-07-05 2017-06-20 日本电信电话株式会社 秘密分散系统、数据分散装置、分散数据变换装置以及秘密分散方法
EP2858297B1 (en) * 2012-07-05 2017-03-01 Nippon Telegraph And Telephone Corporation Secret sharing system, data distribution apparatus, distributed data transform apparatus, secret sharing method and program
WO2015107952A1 (ja) * 2014-01-17 2015-07-23 日本電信電話株式会社 秘密計算方法、秘密計算システム、ランダム置換装置及びプログラム
JP5957120B1 (ja) * 2015-05-12 2016-07-27 日本電信電話株式会社 秘密分散方法、秘密分散システム、分散装置、およびプログラム
JP6599282B2 (ja) * 2016-05-19 2019-10-30 日本電信電話株式会社 リスク判定モデル用学習データ生成装置、リスク判定モデル用学習データ生成方法、プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014139640A (ja) * 2013-01-21 2014-07-31 Nippon Telegr & Teleph Corp <Ntt> 秘密計算による表の等結合システム、方法
WO2018061800A1 (ja) * 2016-09-27 2018-04-05 日本電信電話株式会社 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム

Also Published As

Publication number Publication date
AU2019288508B2 (en) 2021-09-23
US11797540B2 (en) 2023-10-24
WO2019244756A1 (ja) 2019-12-26
EP3813042A4 (en) 2022-03-23
JP7081663B2 (ja) 2022-06-07
EP3813042B1 (en) 2023-06-28
EP3813042A1 (en) 2021-04-28
CN112313728B (zh) 2024-04-19
CN112313728A (zh) 2021-02-02
US20210263921A1 (en) 2021-08-26
AU2019288508A1 (en) 2021-01-14

Similar Documents

Publication Publication Date Title
JP6973632B2 (ja) 秘密集約総和システム、秘密計算装置、秘密集約総和方法、およびプログラム
JP6973633B2 (ja) 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム
WO2019225401A1 (ja) 秘密集約関数計算システム、秘密計算装置、秘密集約関数計算方法、およびプログラム
JP6973634B2 (ja) 秘密集約中央値システム、秘密計算装置、秘密集約中央値方法、およびプログラム
WO2019203262A1 (ja) 秘密集約順位システム、秘密計算装置、秘密集約順位方法、およびプログラム
JP6585846B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
JP7067625B2 (ja) 秘密結合システム、この方法、秘密計算装置及びプログラム
WO2019221108A1 (ja) 秘密クロス集計システム、秘密計算装置、秘密クロス集計方法、およびプログラム
JP7081663B2 (ja) 秘密結合システム、方法、秘密計算装置及びプログラム
JP6321216B2 (ja) 行列・キー生成装置、行列・キー生成システム、行列結合装置、行列・キー生成方法、プログラム
JP7067626B2 (ja) 秘密結合情報生成システム、秘密結合システム、これらの方法、秘密計算装置及びプログラム
WO2019176831A1 (ja) 秘密表参照システム、方法、秘密計算装置及びプログラム
JP7067624B2 (ja) 秘密強写像計算システム、これらの方法、秘密計算装置及びプログラム
WO2019188320A1 (ja) 秘密重複排除フィルタ生成システム、秘密重複排除システム、これらの方法、秘密計算装置及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201214

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220407

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220509

R150 Certificate of patent or registration of utility model

Ref document number: 7081663

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150