JP7067626B2 - 秘密結合情報生成システム、秘密結合システム、これらの方法、秘密計算装置及びプログラム - Google Patents

秘密結合情報生成システム、秘密結合システム、これらの方法、秘密計算装置及びプログラム Download PDF

Info

Publication number
JP7067626B2
JP7067626B2 JP2020537441A JP2020537441A JP7067626B2 JP 7067626 B2 JP7067626 B2 JP 7067626B2 JP 2020537441 A JP2020537441 A JP 2020537441A JP 2020537441 A JP2020537441 A JP 2020537441A JP 7067626 B2 JP7067626 B2 JP 7067626B2
Authority
JP
Japan
Prior art keywords
vector
share
substitution
elements
generate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020537441A
Other languages
English (en)
Other versions
JPWO2020036127A1 (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 JPWO2020036127A1 publication Critical patent/JPWO2020036127A1/ja
Application granted granted Critical
Publication of JP7067626B2 publication Critical patent/JP7067626B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • 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/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/36Combined merging and sorting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • 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)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • Algebra (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

この発明は、秘密計算技術に関する。この発明は、特に、秘匿性を保ったまま2つのテーブルを結合するための技術に関する。
秘密計算技術の分野において、秘匿性を保ったまま2つのテーブルを結合する技術が求められている。
秘匿性を保ったまま2つのテーブルを結合する技術として、例えば非特許文献1に記載された技術が知られている。非特許文献1では、キー重複ありの場合の等結合が実現されている。
桐淵直人、五十嵐大、諸橋玄武、濱田浩気、「属性情報と履歴情報の秘匿統合分析に向けた秘密計算による高速な等結合アルゴリズムとその実装」、CSS2016、2016
この発明は、キー重複がない場合に非特許文献1の技術よりも高速に秘匿性を保ったまま2つのテーブルを結合するために必要な情報を生成する秘密結合情報生成システム、秘密結合システム、これらの方法、秘密計算装置及びプログラムを提供することである。
この発明の一態様による秘密結合情報生成システムによれば、複数の秘密計算装置を含む秘密結合情報生成システムであって、Fk,Fvは任意の環であり、αを任意のベクトル又は任意の置換として[α]はαが秘密分散されたシェアであり、m0,m1は1以上の整数であり、k0∈Fk m0は第一テーブルのキーのベクトルであり、v0∈Fv m0は第一テーブルの属性値のベクトルであり、k1∈Fk m1は第二テーブルのキーのベクトルであり、v1∈Fv m1は第二テーブルの属性値のベクトルであり、π01はそれぞれ長さm0,m1の所定の置換であり、複数の秘密計算装置は、ベクトルk0のシェア[k0]及びベクトルk1のシェア[k1]を用いて、ベクトルk0及びベクトルk1を結合したベクトルk∈[Fk]m0+m1のシェア[k]を生成する複数のベクトル結合部と、m0個の0と、m1個の1とを結合したベクトルfのシェア[f]を生成する複数の第一ベクトル生成部と、シェア[k]を用いて、ベクトルkを安定ソートする置換σのシェア[σ]を生成する複数の第一置換計算部と、シェア[k]、シェア[σ]及びシェア[f]を用いて、ベクトルkに置換σを適用したベクトルσ(k)のシェア[σ(k)]と、ベクトルfに置換σを適用したベクトルσ(f)のシェア[σ(f)]とを生成する複数の第一置換適用部と、シェア[σ(k)]を用いて、ベクトルσ(k)のある要素とそのある要素の次の要素とが、同じ場合には1を、違う場合には0をそのある要素に対応する要素として持つベクトルeのシェア[e]を生成する複数の第二ベクトル生成部と、シェア[e]を用いて、ベクトルeのある要素とそのある要素の前の要素の一方が1の場合には1を、そうでない場合には0をそのある要素に対応する要素として持つベクトルの各要素をビット反転させたベクトルe'のシェア[e']を生成する複数の第三ベクトル生成部と、シェア[e']を用いて、ベクトルe'を安定ソートする置換σ'のシェア[σ']を生成する複数の第二置換計算部と、シェア[σ(f)]及びシェア[σ']を用いて、ベクトルσ(f)に置換σ'を適用したベクトルf'=σ'(σ(f))のシェア[f']を生成する複数の第二置換適用部と、シェア[f']を用いて、各要素が、ベクトルf'のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルsのシェア[s]と、ベクトルf'の各要素をビット反転させたベクトルをビット反転ベクトルとして、各要素が、ビット反転ベクトルのその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルs'のシェア[s']とを生成する複数の第四ベクトル生成部と、シェア[f']、シェア[s]及びシェア[s']を用いて、ベクトルσ''=f's+(1-f')s'-1のシェア[σ'']を計算する複数の第五ベクトル生成部と、シェア[e']及びシェア[σ]を用いて、ベクトルe'に置換σの逆置換σ-1を適用したベクトルe''=σ-1(e')のシェア[e'']を生成する複数の第一逆置換適用部と、シェア[e'']を用いて、ベクトルe''の先頭からm0個の要素からなるベクトルg0のシェア[g0]と、ベクトルe''の残りのm1個の要素からなるベクトルg1のシェア[g1]とを生成する複数の第一ベクトル分離部と、シェア[σ'']、シェア[σ]及びシェア[σ']を用いて、ベクトルxに置換σ'の逆置換σ'-1及び置換σの逆置換σ-1を適用したベクトルσ'''-1-1(σ'-1(σ''))のシェア[σ'''-1]を生成する複数の第二逆置換適用部と、シェア[σ'''-1]を用いて、ベクトルσ'''-1の先頭からm0個の要素からなるベクトルσ0 -1のシェア[σ0 -1]と、ベクトルσ'''-1の残りのm1個の要素からなるベクトルσ1 -1のシェア[σ1 -1]とを生成する複数の第二ベクトル分離部と、シェア[σ0 -1]、シェア[σ -1]及び置換π0のシェア[π0]及び置換π1のシェア[π1]を用いて、ベクトルσ0 -1に置換π0を適用したベクトルπ00 -1)のシェア[π00 -1)]と、ベクトルσ -1に置換π1を適用したベクトルπ1 -1)のシェア[π1 -1)]とを生成して、π0 -1)及びπ1 -1)を公開する複数の第三置換適用部と、を備えている。
この発明の一態様による秘密結合システムは、上記の秘密結合情報生成システムの複数の秘密計算装置を含み、これらの複数の秘密計算装置は、ベクトルk0のシェア[k0]、ベクトルv0のシェア[v0]、ベクトルk1のシェア[k1]及びベクトルv1のシェア[v1]を用いて、ベクトルk0'=(π00 -1))-10(k0))のシェア[k0']と、ベクトルv0'=(π00 -1))-10(v0))のシェア[v0']と、ベクトルk1'=(π11 -1))-11(k1'))のシェア[k1']と、ベクトルv1'=(π11 -1))-11(v1'))のシェア[v1']とを計算する複数の第四置換適用部と、シェア[k0']、シェア[v0']、シェア[k1']及びシェア[v1']を用いて、ベクトルg0又はベクトルg1の0の要素の数をcとして、ベクトルk0'の先頭からc個の要素を抜き出したベクトルと、ベクトルv0'の先頭からc個の要素を抜き出したベクトルと、ベクトルk1'の先頭からc個の要素を抜き出したベクトルと、ベクトルv1'の先頭からc個の要素を抜き出したベクトルとを結合した結合テーブルを生成する複数の第一結合テーブル生成部と、を更に含む。
この発明の一態様による秘密結合システムによれば、複数の秘密計算装置を含む秘密結合システムであって、Fk,Fvは任意の環であり、αを任意のベクトル又は任意の置換として[α]はαが秘密分散されたシェアであり、m0,m1は1以上の整数であり、k0∈Fk m0は第一テーブルのキーのベクトルであり、v0∈Fv m0は第一テーブルの属性値のベクトルであり、k1∈Fk m1は第二テーブルのキーのベクトルであり、v1∈Fv m1は第二テーブルの属性値のベクトルであり、π01はそれぞれ長さm0,m1の所定の置換であり、複数の秘密計算装置は、ベクトルk0のシェア[k0]、ベクトルk1のシェア[k1]、置換π0のシェア[π0]及び置換π1のシェア[π1]を用いて、第一テーブルの各ベクトルを置換σ0で置換すると第一テーブルと第二テーブルに共通するキーのレコードが先頭側に移動する置換σ0の逆置換σ0 -1に置換π0を適用したベクトルπ00 -1)のシェア[π00 -1)]と、第二テーブルの各ベクトルを置換σ1で置換すると第一テーブルと第二テーブルに共通するキーのレコードが先頭側に移動する置換σ1の逆置換σ1 -1に置換π1を適用したベクトルπ11 -1)のシェア[π11 -1)]と、第一テーブルのi番目のレコードが、第一テーブルと第二テーブルに共通するキーのレコードかどうかを表す値g0,iから構成されるベクトルg0のシェア[g0]と、第二テーブルのi番目のレコードが、第一テーブルと第二テーブルに共通するキーのレコードかどうかを表す値g1,iから構成されるベクトルg1のシェア[g1]と、を生成する複数の秘密結合情報生成部と、シェア[g1]、ベクトルk1のシェア[k1]及びベクトルv1のシェア[v1]を用いて、ベクトルg1のi番目の要素をg1,iとして、g1,i=1である場合には、第二テーブルのキーのi番目の要素を予め定めた空を示す値u1,kとし、第二テーブルの属性のi番目の要素を予め定めた空を示す値u1,vとした変形第二テーブルを生成する複数のフィルタリング部と、ベクトルk0のシェア[k0]、ベクトルv0のシェア[v0]、変形第二テーブルのキーのベクトルであるk1'のシェア[k1']、変形第二テーブルの属性値のベクトルであるv1'のシェア[v1']、置換π0のシェア[π0]、置換π1のシェア[π1]、シェア[π00 -1)]及びシェア[π11 -1)]を用いて、ベクトルk0'=(π00 -1))-10(k0))のシェア[k0']と、ベクトルv0'=(π00 -1))-10(v0))のシェア[v0']と、ベクトルk1''=(π11 -1))-11(k1'))のシェア[k1'']と、ベクトルv1''=(π11 -1))-11(v1'))のシェア[v1'']とを計算する複数の第五置換適用部と、シェア[k0']、シェア[v0']、シェア[k1'']及びシェア[v1'']を用いて、m0<m1である場合には、ベクトルk0'と、ベクトルv0'と、ベクトルk1''の先頭からm0個の要素を抜き出したベクトルと、ベクトルv1''の先頭からm0個の要素を抜き出したベクトルとを結合した結合テーブルを、m0>m1である場合には、ベクトルk0'と、ベクトルv0'と、ベクトルk1''にm0-m1個の予め定めた空を示す値ukの要素を追加したベクトルと、ベクトルv1''にm0-m1個の予め定めた空を示す値uvの要素を追加したベクトルとを結合した結合テーブルを生成する複数の第二結合テーブル生成部と、を備えている。
この発明の一態様による秘密結合システムによれば、複数の秘密計算装置を含む秘密結合システムであって、Fk,Fvは任意の環であり、αを任意のベクトル又は任意の置換として[α]はαが秘密分散されたシェアであり、m0,m1は1以上の整数であり、k0∈Fk m0は第一テーブルのキーのベクトルであり、v0∈Fv m0は第一テーブルの属性値のベクトルであり、k1∈Fk m1は第二テーブルのキーのベクトルであり、v1∈Fv m1は第二テーブルの属性値のベクトルであり、π01はそれぞれ長さm0,m1の所定の置換であり、複数の秘密計算装置は、ベクトルk0のシェア[k0]、ベクトルk1のシェア[k1]、置換π0のシェア[π0]及び置換π1のシェア[π1]を用いて、第一テーブルの各ベクトルを置換σ0で置換すると第一テーブルと第二テーブルに共通するキーのレコードが先頭側に移動する置換σ0の逆置換σ0 -1に置換π0を適用したベクトルπ00 -1)のシェア[π00 -1)]と、第二テーブルの各ベクトルを置換σ1で置換すると第一テーブルと第二テーブルに共通するキーのレコードが先頭側に移動する置換σ1の逆置換σ1 -1に置換π1を適用したベクトルπ11 -1)のシェア[π11 -1)]と、第一テーブルのi番目のレコードが、第一テーブルと第二テーブルに共通するキーのレコードかどうかを表す値g0,iから構成されるベクトルg0のシェア[g0]と、第二テーブルのi番目のレコードが、第一テーブルと第二テーブルに共通するキーのレコードかどうかを表す値g1,iから構成されるベクトルg1のシェア[g1]と、を生成する複数の秘密結合情報生成部と、ベクトルk0のシェア[k0]、ベクトルv0のシェア[v0]、ベクトルk1のシェア[k1]及びベクトルv1のシェア[v1]を用いて、ベクトルk0'=(π00 -1))-10(k0))のシェア[k0']と、ベクトルv0'=(π00 -1))-10(v0))のシェア[v0']と、ベクトルk1'=(π11 -1))-11(k1'))のシェア[k1']と、ベクトルv1'=(π11 -1))-11(v1'))のシェア[v1']とを計算する複数の第四置換適用部と、シェア[k0']、シェア[v0']、シェア[k1']及びシェア[v1']を用いて、ベクトルg0又はベクトルg1の0の要素の数をcとして、ベクトルk0'の先頭からc個の要素を抜き出したベクトルと、ベクトルv0'の先頭からc個の要素を抜き出したベクトルと、ベクトルk1'の先頭からc個の要素を抜き出したベクトルと、ベクトルv1'の先頭からc個の要素を抜き出したベクトルとを結合したテーブル(1)と、ベクトルk0'の残りm0-c個の要素を抜き出したベクトルとベクトルv0'の残りm0-c個の要素を抜き出したベクトルと第二テーブルの属性値に対応する値を予め定めた空を示す値u'1,vとしたベクトルとを結合したテーブル(2)と、ベクトルv0'の残りm0-c個の要素を抜き出したベクトルとベクトルv1'の残りm1-c個の要素を抜き出したベクトルと第一テーブルの属性値に対応する値を予め定めた空を示す値u'0,vとしたベクトルとを結合したテーブル(3)とを結合した結合テーブルを生成する複数の第三結合テーブル生成部と、を備えている。
逆置換を用いることで、キー重複がない場合に非特許文献1の技術よりも高速に秘匿性を保ったまま2つのテーブルを結合するために必要な情報を生成することができる。また、これらの情報を用いて、キー重複がない場合に非特許文献1の技術よりも高速に秘匿性を保ったまま2つのテーブルを結合することができる。
図1は、秘密結合システムの機能構成を例示する図である。 図2は、内部結合を行う秘密結合システムの秘密計算装置の機能構成を例示する図である。 図3は、内部結合を行う秘密結合方法、左外部結合を行う秘密結合方法、完全外部結合を行う秘密結合方法の処理手続きを例示する図である。 図4は、内部結合を行う秘密結合方法、完全外部結合を行う秘密結合方法の処理手続きを例示する図である。 図5は、左外部結合を行う秘密結合方法の処理手続きを例示する図である。 図6は、左外部結合を行う秘密結合システムの秘密計算装置の機能構成を例示する図である。 図7は、完全部結合を行う秘密結合システムの秘密計算装置の機能構成を例示する図である。
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
[内部結合を行う秘密結合システム及び方法]
図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、第三置換適用部115n、第四置換適用部116n及び第一結合テーブル生成部117nを備えている。
秘密計算装置1n(1≦n≦N)の各構成部が他の秘密計算装置1n'(n'=1, …, N、ただしn≠n')の各構成部と協調しながら後述する各ステップの処理を行うことにより実施形態の秘密結合方法が実現される。
なお、各ステップの処理は、秘密計算により行われる。すなわち、秘密計算装置1nは、シェアを復元することなく、言い換えればシェアの中身を知ることなく、各ステップの処理を行う。
秘密計算装置1nは、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。秘密計算装置1nは、例えば、中央演算処理装置の制御のもとで各処理を実行する。秘密計算装置1nに入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。秘密計算装置1nの各構成部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
以下の説明において、αを任意のベクトル又は任意の置換として[α]はαが秘密分散されたシェアであるとする。
図3及び図4を参照して、実施形態の秘密結合システムが実行する秘密結合方法の処理手続きを説明する。
以下の説明において、m0,m1,L0,L1は、1以上の整数であるとする。m0,m1,L0,L1は、同じ値であってもよいし、異なる値であってもよい。
第一テーブルは、m0個のレコードを有している。m0個のレコードのそれぞれは、1個のキーと、L0個の属性の属性値とを有している。k0∈Fk m0は第一テーブルのキーのベクトルであるとする。v0∈Fv m0は第一テーブルの各属性の属性値のベクトルであるとする。第一テーブルの中は、重複するキーはないとする。第一テーブルに複数の属性の属性値が含まれている場合には、v0は複数の属性の属性値を連結したベクトルであってもよい。例えば、第一テーブルは、レコード数が2であり、2個の属性の属性値を含んでおり、1個目の属性の属性値のベクトルはv0,1=(29,169)であり、2個目の属性の属性値のベクトルはv0,1=(35,175)であるとする。この場合、v0は、これらの2個の属性の属性値を連結したベクトルv0=((29,35),(169,175))であってもよい。
[Fk,Fv]m0の上付き文字の中のm0は、「m0」を意味する。このように、上付き文字の中では、更なる上付き文字及び下付き文字の表現を省略することがある。同様に、下付き文字の中では、更なる上付き文字及び下付き文字の表現を省略することがある。
第二テーブルは、m1個のレコードを有している。m1個のレコードのそれぞれは、1個のキーと、L1個の属性の属性値とを有している。k1∈Fk m1は第二テーブルのキーのベクトルであるとする。v1∈Fv m1は上記第二テーブルの各属性の属性値のベクトルであるとする。第二テーブルの中では、重複するキーはないとする。第二テーブルに複数の属性の属性値が含まれている場合には、v0と同様にして、v1は、複数の属性の属性値を連結したベクトルであってもよい。
一般に環を要素とするベクトルはやはり環であるため、あるレコードに含まれる各属性の値を並べたデータは、ベクトル、つまり環とみなすことができる。
例えば、第一テーブルは、レコード数が3であり、キーのベクトルk0=(1,2,3)と、1個の属性の属性値のベクトルv0=(5,10,1)とから構成されているとする。
また、第二テーブルは、レコード数が4であり、キーのベクトルk1=(1,3,4,5)と、1個の属性の属性値のベクトルv1=(2,4,9,8)とから構成されているとする。
<ステップS1>
ベクトル結合部111,…,11Nに、ベクトルk0のシェア[k0]及びベクトルk1のシェア[k1]が入力される。
ベクトル結合部111,…,11Nは、[k0]と[k1]を結合して[k]∈[Fk]m0+m1を得る。
より詳細には、ベクトル結合部111,…,11Nは、ベクトルk0のシェア[k0]及びベクトルk1のシェア[k1]を用いて、ベクトルk0及びベクトルk1を結合したベクトルk∈[Fk]m0+m1のシェア[k]を生成する(ステップS1)。
生成されたシェア[k]は、第一置換計算部131,…,13N及び第一置換適用部141,…,14Nに出力される。
例えば、ベクトルk0=(1,2,3)であり、ベクトルk1=(1,3,4,5)であるとする。この場合、ベクトルk=(1,2,3,1,3,4,5)となる。
<ステップS2>
第一ベクトル生成部121,…,12Nは、m0個の0と、m1個の1とを結合したベクトルfのシェア[f]を生成する(ステップS2)。
シェア[f]は、第一置換適用部141,…,14Nに出力される。
例えば、m0=3,m1=4である場合には、ベクトルf=(0,0,0,1,1,1,1)となる。
<ステップS3>
第一置換計算部131,…,13Nに、シェア[k]が入力される。
第一置換計算部131,…,13Nは、シェア[k]を用いて、ベクトルkを安定ソートする置換σのシェア[σ]を生成する(ステップS3)。
シェア[σ]は、第一置換適用部141,…,14N 、第一逆置換適用部111 1 ,…,111 N 及び第二逆置換適用部1131,…,113Nに出力される。
例えば、k=(1,2,3,1,3,4,5)である場合には、置換σは以下の式(1)のようになる。例えば、番号が1スタートで表記されるとして、置換σの各列(i,j)Tは、置換が適用されるベクトルのi番目の要素をj番目に移動することを意味する。
Figure 0007067626000001
安定ソートとは、同等なデータのソート前の順序が、ソート後も保存されるものをいう。安定ソートを行う置換σのシェア[σ]の生成は、例えば参考文献1の手法により実現することができる。
〔参考文献1〕五十嵐大、濱田浩気、菊池亮、千田浩司、「超高速秘密計算ソートの設計と実装:秘密計算がスクリプト言語に並ぶ日」、CSS2017、2017
<ステップS4>
第一置換適用部141,…,14Nに、シェア[k]、シェア[σ]及びシェア[f]が入力される。
第一置換適用部141,…,14Nは、シェア[k]、シェア[σ]及びシェア[f]を用いて、ベクトルkに置換σを適用したベクトルσ(k)のシェア[σ(k)]と、ベクトルfに置換σを適用したベクトルσ(f)のシェア[σ(f)]とを生成する(ステップS4)。
シェア[σ(k)]は、第二ベクトル生成部151,…,15Nに出力される。
シェア[σ(f)]は、第二置換適用部181,…,18Nに出力される。
例えば、ベクトルk=(1,2,3,1,3,4,5)であり、ベクトルf=(0,0,0,1,1,1,1)であり、置換σが上記式(1)により定義される置換である場合には、ベクトルσ(k)=(1,1,2,3,3,4,5)となり、ベクトルσ(f)=(0,1,0,0,1,1,1)となる。
<ステップS5>
第二ベクトル生成部151,…,15Nに、シェア[σ(k)]が入力される。
第二ベクトル生成部151,…,15Nは、シェア[σ(k)]を用いて、ベクトルσ(k)のある要素とそのある要素の次の要素とが、同じ場合には1を、違う場合には0をそのある要素に対応する要素として持つベクトルeのシェア[e]を生成する(ステップS5)。ここで、en-1=0とする。
シェア[e]は、第三ベクトル生成部161,…,16Nに出力される。
例えば、ベクトルσ(k)=(1,1,2,3,3,4,5)である場合には、ベクトルe=(1,0,0,1,0,0,0)となる。
<ステップS6>
第三ベクトル生成部161,…,16Nに、シェア[e]が入力される。
第三ベクトル生成部161,…,16Nは、シェア[e]を用いて、ベクトルeのある要素とそのある要素の前の要素の一方が1の場合には1を、そうでない場合には0をそのある要素に対応する要素として持つベクトルの各要素をビット反転させたベクトルe'のシェア[e']を生成する(ステップS6)。
シェア[e']は、第二置換計算部171,…,17N 及び第一逆置換適用部111 1 ,…,111 N に出力される。
例えば、ベクトルe=(1,0,0,1,0,0,0)である場合には、ベクトルe'=(0,0,1,0,0,1,1)となる。
<ステップS7>
第二置換計算部171,…,17Nに、シェア[e']が入力される。
第二置換計算部171,…,17Nは、シェア[e']を用いて、ベクトルe'を安定ソートする置換σ'のシェア[σ']を生成する(ステップS7)。
シェア[σ']は、第二置換適用部181,…,18N及び第二逆置換適用部1131,…,113Nに出力される。
例えば、ベクトルe'=(0,0,1,0,0,1,1)である場合には、置換σ'は以下の式(2)のようになる。
Figure 0007067626000002
<ステップS8>
第二置換適用部181,…,18Nに、シェア[σ(f)]及びシェア[σ']が入力される。
第二置換適用部181,…,18Nは、シェア[σ(f)]及びシェア[σ']を用いて、ベクトルσ(f)に置換σ'を適用したベクトルf'=σ'(σ(f))のシェア[f']を生成する(ステップS8)。
シェア[f']は、第四ベクトル生成部191,…,19N 及び第五ベクトル生成部110 1 ,…,110 N に出力される。
例えば、ベクトルσ(f)=(0,1,0,0,1,1,1)であり、置換σ'が上記式(2)により定義される置換である場合には、ベクトルf'=(0,1,0,1,0,1,1)となる。
<ステップS9>
第四ベクトル生成部191,…,19Nに、シェア[f']が入力される。
第四ベクトル生成部191,…,19Nは、シェア[f']を用いて、各要素が、ベクトルf'のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルsのシェア[s]と、ベクトルf'の各要素をビット反転させたベクトルをビット反転ベクトルとして、各要素が、ビット反転ベクトルのその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルs'のシェア[s']とを生成する(ステップS9)。
シェア[s]及びシェア[s']は、第五ベクトル生成部1101,…,110Nに出力される。
例えば、ベクトルf'=(0,1,0,1,0,1,1)である場合には、ベクトルs=(0,1,1,2,2,3,4)となり、ベクトルs'=(1,1,2,2,3,3,3)となる。
<ステップS10>
第五ベクトル生成部1101,…,110Nに、シェア[f']、シェア[s]及びシェア[s']が入力される。
第五ベクトル生成部1101,…,110Nは、シェア[f']、シェア[s]及びシェア[s']を用いて、ベクトルσ''=f's+(1-f')s'-1のシェア[σ'']を計算する(ステップS10)。
シェア[σ'']は、第二逆置換適用部113 1 ,…,113 N に出力される。
例えば、ベクトルs=(0,1,1,2,2,3,4)であり、ベクトルs'=(1,1,2,2,3,3,3)である場合には、σ''=(0,0,1,1,2,2,3)となる。
<ステップS11>
第一逆置換適用部1111,…,111Nに、シェア[e']及びシェア[σ]が入力される。
第一逆置換適用部1111,…,111Nは、シェア[e']及びシェア[σ]を用いて、ベクトルe'に置換σの逆置換σ-1を適用したベクトルe''=σ-1(e')のシェア[e'']を生成する(ステップS11)。
シェア[e'']は、第一ベクトル分離部1121,…,112Nに出力される。
例えば、ベクトルe'=(0,0,1,0,0,1,1)であり、置換σが上記式(1)の置換である場合には、ベクトルe''=(0,1,0,0,0,1,1)となる。
<ステップS12>
第一ベクトル分離部1121,…,112Nに、シェア[e'']が入力される。
第一ベクトル分離部1121,…,112Nは、シェア[e'']を用いて、ベクトルe''の先頭からm0個の要素からなるベクトルg0のシェア[g0]と、ベクトルe''の残りのm1個の要素からなるベクトルg1のシェア[g1]とを生成する(ステップS12)。
シェア[g1]は、出力される。
例えば、ベクトルe''=(0,1,0,0,0,1,1)である場合には、ベクトルg0=(0,1,0)となり、ベクトルg 1 =(0,0,1,1)となる。
<ステップS13>
第二逆置換適用部1131,…,113Nに、シェア[σ'']、シェア[σ]及びシェア[σ']が入力される。
第二逆置換適用部1131,…,113Nは、シェア[σ'']、シェア[σ]及びシェア[σ']を用いて、ベクトルxに置換σ'の逆置換σ'-1及び置換σの逆置換σ-1を適用したベクトルσ'''-1-1(σ'-1(σ''))のシェア[σ'''-1]を生成する(ステップS13)。
シェア[σ'''-1]は、第二ベクトル分離部1141,…,114Nに出力される。
例えば、置換σが上記式(1)の置換であり、置換σ'が上記式(2)の置換である場合には、σ'''-1=(0,2,1,0,1,2,3)となる。
<ステップS14>
第二ベクトル分離部1141,…,114Nに、シェア[σ'''-1]が入力される。
第二ベクトル分離部1141,…,114Nは、シェア[σ'''-1]を用いて、ベクトルσ'''-1の先頭からm0個の要素からなるベクトルσ0 -1のシェア[σ0 -1]と、ベクトルσ'''-1の残りのm1個の要素からなるベクトルσ1 -1のシェア[σ1 -1]とを生成する(ステップS14)。
シェア[σ 0 -1 ]及びシェア[σ1 -1 ]は第三置換適用部115 1 ,…,115 N に出力される。
例えば、σ'''-1=(0,2,1,0,1,2,3)である場合には、ベクトルσ0 -1=(0,2,1)となり、ベクトルσ1 -1=(0,1,2,3)となる。
<ステップS15>
第三置換適用部1151,…,115Nに、シェア[σ 0 -1 ]、シェア[σ -1]置換π0のシェア[π0]及び置換π1のシェア[π1]が入力される。
第三置換適用部1151,…,115Nは、シェア[σ0 -1]、シェア[σ -1]及び置換π0のシェア[π0]及び置換π1のシェア[π1]を用いて、ベクトルσ0 -1に置換π0を適用したベクトルπ00 -1)のシェア[π00 -1)]と、ベクトルσ -1に置換π1を適用したベクトルπ1 -1)のシェア[π1 -1)]とを生成して、π00 -1)及びπ1 -1)を公開する(ステップS15)。
置換π01は、所定の置換であり、例えばランダム置換である。置換π01は、予め定められた置換であってもよいし、ステップS15の処理をする際に生成されてもよい。置換π01及びこれらのシェア[π0],[π1]は、例えば参考文献1の4.1節に記載された手法により生成することができる。秘密計算装置1n(1≦n≦N)は、置換π01及びこれらのシェア[π0],[π1]についての情報を有しており、置換π01及びこれらのシェア[π0],[π1]を用いて計算が可能であるとする。
例えば、ベクトルσ0 -1=(0,2,1)であり、ベクトルσ1 -1=(0,1,2,3)であり、π0が以下の式(3)により表される置換であり、π1が以下の式(4)により表される置換であるとする。
Figure 0007067626000003
この場合、ベクトルπ00 -1)=(2,1,0)、ベクトルπ11 -1)=(2,0,3,1)となる。
<ステップS16>
第四置換適用部1161,…,116Nに、ベクトルk0のシェア[k0]、ベクトルv0のシェア[v0]、ベクトルk1のシェア[k1]及びベクトルv1のシェア[v1]が入力される。
第四置換適用部1161,…,116Nは、ベクトルk0のシェア[k0]、ベクトルv0のシェア[v0]、ベクトルk1のシェア[k1]及びベクトルv1のシェア[v1]を用いて、ベクトルk0'=(π00 -1))-10(k0))のシェア[k0']と、ベクトルv0'=(π00 -1))-10(v0))のシェア[v0']と、ベクトルk1'=(π11 -1))-11(k1'))のシェア[k1']と、ベクトルv1'=(π11 -1))-11(v1'))のシェア[v1']とを計算する(ステップS16)。
シェア[k0']、シェア[v0']、シェア[k1']及びシェア[v1']は、第一結合テーブル生成部1171,…,117Nに出力される。
例えば、ベクトルk0=(1,2,3)であり、ベクトルv0=(5,10,1)であり、ベクトルk1=(1,3,4,5)であり、ベクトルv 1 =(2,4,9,8)であり、置換π0が上記式(3)により表される置換であり、置換π1が上記式(4)により表される置換である場合には、ベクトルk0'=(1,3,2)となり、ベクトルv0'=(5,1,10)となり、ベクトルk 1 '=(1,3,4,5)となり、ベクトルv 1 '=(2,4,9,8)となる。
<ステップS17>
第一結合テーブル生成部1171,…,117Nに、シェア[k0']、シェア[v0']、シェア[k1']及びシェア[v1']が入力される。
第一結合テーブル生成部1171,…,117Nは、シェア[k0']、シェア[v0']、シェア[k1']及びシェア[v1']を用いて、ベクトルg0又はベクトルg1の0の要素の数をcとして、ベクトルk0'の先頭からc個の要素を抜き出したベクトルと、ベクトルv0'の先頭からc個の要素を抜き出したベクトルと、ベクトルk1'の先頭からc個の要素を抜き出したベクトルと、ベクトルv1'の先頭からc個の要素を抜き出したベクトルとを結合した結合テーブルを生成する(ステップS17)。
例えば、ベクトルg0=(0,1,0)であり、ベクトルk0'=(1,3,2)であり、ベクトルv0'=(5,1,10)であり、ベクトルk 1 '=(1,3,4,5)であり、ベクトルv 1 '=(2,4,9,8)である場合には、結合テーブルは以下のテーブルとなる。
Figure 0007067626000004
上記(A)の結合テーブルは、レコード数が3であり、キーのベクトルk0=(1,2,3)と、1個の属性の属性値のベクトルv0=(5,10,1)とから構成されている第一テーブルと、キーのベクトルk1=(1,3,4,5)と、1個の属性の属性値のベクトルv1=(2,4,9,8)とから構成されている第二テーブルとを部結合したテーブルとなっている。
このように、逆置換を用いることで、キー重複がない場合に非特許文献1の技術よりも高速に秘匿性を保ったまま2つのテーブルを結合することができる。
[左外部結合を行う秘密結合システム及び方法]
図6を参照して、実施形態の秘密結合システムの構成例を説明する。この秘密結合システム及び方法は、いわゆる左外部結合を行うものである。すなわち、この秘密結合システムは、秘匿性を保ちつつ、第一テーブル及び第二テーブルに共通するレコードと、第一テーブルのみに存在するレコードとを結合する。
左外部結合を行う秘密結合システムは、第四置換適用部116n、第一結合テーブル生成部117nを備えていない代わりに、フィルタリング部118n、第五置換適用部119n、第二結合テーブル生成部120nを備えている点を除けば、内部結合を行う秘密結合システムと同様である。
左外部結合を行う秘密結合方法は、ステップS16からステップS17の処理を行わない代わりに、ステップS18からステップS20の処理を行う点を除けば、内部結合を行う秘密結合方法と同様である。
以下では、内部結合を行う秘密結合システム及び方法と異なる部分について説明する。内部結合を行う秘密結合システム及び方法と同じ部分については重複説明を省略する。
秘密結合システムの秘密計算装置1nは、例えば、図6に示すように、ベクトル結合部11n、第一ベクトル生成部12n、第一置換計算部13n、第一置換適用部14n、第二ベクトル生成部15n、第三ベクトル生成部16n、第二置換計算部17n、第二置換適用部18n、第四ベクトル生成部19n、第五ベクトル生成部110n、第一逆置換適用部111n、第一ベクトル分離部112n、第二逆置換適用部113n 第二ベクトル分離部114n、第三置換適用部115n 、フィルタリング部118n、第五置換適用部119n及び第二結合テーブル生成部120nを備えている。
まず、<ステップS1>から<ステップS15>の処理が行われる。<ステップS1>から<ステップS15>の処理は、[内部結合を行う秘密結合システム及び方法]の欄で説明した<ステップS1>から<ステップS15>の処理と同様であるため、ここでは重複説明を省略する。
その後、以下に説明するステップS18からステップS20の処理が行われる。
<ステップS18>
フィルタリング部1181,…,118Nに、シェア[g1]、ベクトルk1のシェア[k1]及びベクトルv1のシェア[v1]が入力される。
フィルタリング部1181,…,118Nは、シェア[g1]、ベクトルk1のシェア[k1]及びベクトルv1のシェア[v1]を用いて、ベクトルg1のi番目の要素をg1,iとして、g1,i=1である場合には、第二テーブルのキーのi番目の要素を予め定めた空を示す値u1,kとし、第二テーブルの属性のi番目の要素を予め定めた空を示す値u1,vとした変形第二テーブルを生成する(ステップS18)。変形第二テーブルのキーのベクトルをk1'とし、変形第二テーブルの属性値のベクトルをv1'とする。
変形第二テーブルは、第五置換適用部1191,…,119Nに出力される。
例えば、第二テーブルが、キーのベクトルk1=(1,3,4,5)と、1個の属性の属性値のベクトルv1=(2,4,9,8)とから構成されており、ベクトルg1=(0,0,1,1)である場合には、変形第二テーブルは、以下のテーブルとなる。
Figure 0007067626000005
<ステップS19>
第五置換適用部1191,…,119Nに、ベクトルk0のシェア[k0]、ベクトルv0のシェア[v0]、変形第二テーブルのキーのベクトルであるk1'のシェア[k1']、変形第二テーブルの属性値のベクトルであるv1'のシェア[v1']、置換π0のシェア[π0]、置換π1のシェア[π1]、シェア[π00 -1)]及びシェア[π11 -1)]が入力される。
第五置換適用部1191,…,119Nは、ベクトルk0のシェア[k0]、ベクトルv0のシェア[v0]、変形第二テーブルのキーのベクトルであるk1'のシェア[k1']、変形第二テーブルの属性値のベクトルであるv1'のシェア[v1']、置換π0のシェア[π0]、置換π1のシェア[π1]、シェア[π00 -1)]及びシェア[π11 -1)]を用いて、ベクトルk0'=(π00 -1))-10(k0))のシェア[k0']と、ベクトルv0'=(π00 -1))-10(v0))のシェア[v0']と、ベクトルk1''=(π11 -1))-11(k1'))のシェア[k1'']と、ベクトルv1''=(π11 -1))-11(v1'))のシェア[v1'']とを計算する(ステップS1)。
シェア[k0']、シェア[v0']、シェア[k1'']及びシェア[v1'']は、第二結合テーブル生成部1201,…,120Nに出力される。
例えば、ベクトルk0=(1,2,3)であり、ベクトルv0=(5,10,1)であり、ベクトルk1'=(1,3,u1,k,u1,k)であり、ベクトルv1'=(2,4,u1,v,u1,v)であり、置換π0が上記式(3)により表される置換であり、置換π1が上記式(4)により表される置換である場合には、ベクトルk0'=(1,3,2)となり、ベクトルv0'=(5,1,10)となり、ベクトルk1''=(1,3,u1,k,u1,k)となり、ベクトルv1''=(2,4,u1,v,u1,v)となる。
<ステップS20>
第二結合テーブル生成部1201,…,120Nに、シェア[k0']、シェア[v0']、シェア[k 1 '']及びシェア[v1'']が入力される。
第二結合テーブル生成部1201,…,120Nは、シェア[k0']、シェア[v0']、シェア[k 1 '']及びシェア[v1'']を用いて、m0<m1である場合には、ベクトルk0'と、ベクトルv0'と、ベクトルk1''の先頭からm0個の要素を抜き出したベクトルと、ベクトルv1''の先頭からm0個の要素を抜き出したベクトルとを結合した結合テーブルを、m0>m1である場合には、ベクトルk1''にm0-m1個の予め定めた空を示す値ukの要素を追加したベクトルと、ベクトルv1''にm0-m1個の予め定めた空を示す値uvの要素を追加したベクトルと、ベクトルk0'と、ベクトルv0'とを結合した結合テーブルを生成する(ステップS20)。
例えば、ベクトルk0'=(1,3,2)であり、ベクトルv0'=(5,1,10)であり、ベクトルk1''=(1,3,u1,k,u1,k)であり、ベクトルv1''=(2,4,u1,v,u1,v)である場合には、結合テーブルは以下のテーブルとなる。
Figure 0007067626000006
上記(C)の結合テーブルは、レコード数が3であり、キーのベクトルk0=(1,2,3)と、1個の属性の属性値のベクトルv0=(5,10,1)とから構成されている第一テーブルと、キーのベクトルk1=(1,3,4,5)と、1個の属性の属性値のベクトルv1=(2,4,9,8)とから構成されている第二テーブルとを左外部結合したテーブルとなっている。
また、例えば、ベクトルk0'=(1,3,4,5)であり、ベクトルv0'=(2,4,9,8)であり、ベクトルk1''=(1,3)であり、ベクトルv1''=(5,1)である場合には、結合テーブルは以下のテーブルとなる。
Figure 0007067626000007
この実施形態によれば、秘匿性を保ったまま、第一テーブル及び第二テーブルを左外部結合することができる。
このように、逆置換を用いることで、キー重複がない場合に非特許文献1の技術よりも高速に秘匿性を保ったまま2つのテーブルを結合することができる。
[完全外部結合を行う秘密結合システム及び方法]
図7を参照して、実施形態の秘密結合システムの構成例を説明する。この秘密結合システム及び方法は、いわゆる完全外部結合を行うものである。言い換えれば、この秘密結合システムは、秘匿性を保ちつつ、第一テーブル及び第二テーブルに共通するレコードと、第一テーブルのみに存在するレコードと、第二テーブルのみに存在するレコードとを結合する。
完全外部結合を行う秘密結合システムは、第一結合テーブル生成部117nを備えていない代わりに、第三結合テーブル生成部121nを備えている点を除けば、内部結合を行う秘密結合システムと同様である。
完全外部結合を行う秘密結合方法は、ステップS17の処理を行わない代わりに、ステップS21の処理を行う点を除けば、内部結合を行う秘密結合方法と同様である。
以下では、内部結合を行う秘密結合システム及び方法と異なる部分について説明する。内部結合を行う秘密結合システム及び方法と同じ部分については重複説明を省略する。
秘密結合システムの秘密計算装置1nは、例えば、図7に示すように、ベクトル結合部11n、第一ベクトル生成部12n、第一置換計算部13n、第一置換適用部14n、第二ベクトル生成部15n、第三ベクトル生成部16n、第二置換計算部17n、第二置換適用部18n、第四ベクトル生成部19n、第五ベクトル生成部110n、第一逆置換適用部111n、第一ベクトル分離部112n、第二逆置換適用部113n 第二ベクトル分離部114n、第三置換適用部115n、第四置換適用部116n及び第三結合テーブル生成部121nを備えている。
まず、<ステップS1>から<ステップS16>の処理が行われる。<ステップS1>から<ステップS16>の処理は、[内部結合を行う秘密結合システム及び方法]の欄で説明した<ステップS1>から<ステップS16>の処理と同様であるため、ここでは重複説明を省略する。
その後、以下に説明するステップS21の処理が行われる。
<ステップS21>
第三結合テーブル生成部1211,…,121Nに、シェア[k0']、シェア[v0']、シェア[k1']及びシェア[v1']が入力される。
第三結合テーブル生成部1211,…,121Nは、シェア[k0']、シェア[v0']、シェア[k1']及びシェア[v1']を用いて、ベクトルg0又はベクトルg1の0の要素の数をcとして、ベクトルk0'の先頭からc個の要素を抜き出したベクトルと、ベクトルv0'の先頭からc個の要素を抜き出したベクトルと、ベクトルk1'の先頭からc個の要素を抜き出したベクトルと、ベクトルv1'の先頭からc個の要素を抜き出したベクトルとを結合したテーブル(1)と、ベクトルk0'の残りm0-c個の要素を抜き出したベクトルとベクトルv0'の残りm0-c個の要素を抜き出したベクトルと第二テーブルの属性値に対応する値を予め定めた空を示す値u'1,vとしたベクトルとを結合したテーブル(2)と、ベクトルv0'の残りm0-c個の要素を抜き出したベクトルとベクトルv1'の残りm1-c個の要素を抜き出したベクトルと第一テーブルの属性値に対応する値を予め定めた空を示す値u'0,vとしたベクトルとを結合したテーブル(3)とを結合した結合テーブルを生成する(ステップS21)。
例えば、ベクトルg0=(0,1,0)であり、ベクトルk0'=(1,3,2)であり、ベクトルv0'=(5,1,10)であり、ベクトルk 1 '=(1,3,4,5)であり、ベクトルv 1 '=(2,4,9,8)である場合には、結合テーブルは以下のテーブルとなる。
以下のテーブルの、1行目から2行目のテーブルがテーブル(1)に相当し、3行目のテーブルがテーブル(2)に相当し、4行目から5行目のテーブルがテーブル(3)に相当する。
Figure 0007067626000008
上記(E)の結合テーブルは、レコード数が3であり、キーのベクトルk0=(1,2,3)と、1個の属性の属性値のベクトルv0=(5,10,1)とから構成されている第一テーブルと、キーのベクトルk1=(1,3,4,5)と、1個の属性の属性値のベクトルv1=(2,4,9,8)とから構成されている第二テーブルとを完全外部結合したテーブルとなっている。
このように、逆置換を用いることで、キー重複がない場合に非特許文献1の技術よりも高速に秘匿性を保ったまま2つのテーブルを結合することができる。
[秘密結合情報生成システム]
なお、上記説明した秘密結合システムの秘密計算装置1nの中のベクトル結合部11n、第一ベクトル生成部12n、第一置換計算部13n、第一置換適用部14n、第二ベクトル生成部15n、第三ベクトル生成部16n、第二置換計算部17n、第二置換適用部18n、第四ベクトル生成部19n、第五ベクトル生成部110n、第一逆置換適用部111n、第一ベクトル分離部112n、第二逆置換適用部113n 第二ベクトル分離部114n、第三置換適用部115nの部分が、秘密結合情報生成システムである。
言い換えれば、秘密結合情報生成システムの秘密計算装置1nは、図2、図6及び図7において破線で示すように、ベクトル結合部11n、第一ベクトル生成部12n、第一置換計算部13n、第一置換適用部14n、第二ベクトル生成部15n、第三ベクトル生成部16n、第二置換計算部17n、第二置換適用部18n、第四ベクトル生成部19n、第五ベクトル生成部110n、第一逆置換適用部111n、第一ベクトル分離部112n、第二逆置換適用部113n 第二ベクトル分離部114n、第三置換適用部115 n を備えている。
秘密結合情報生成方法は、秘密結合情報生成システムの秘密計算装置1nの各部が、ステップS1からステップS15の各ステップを行うことにより実現される。ステップS1からステップS15の処理は、上記に説明したものと同様であるため重複説明を省略する。
秘密結合情報生成システムの複数の秘密結合情報生成部は、ベクトルk0のシェア[k0]、ベクトルk1のシェア[k1]、置換π0のシェア[π0]及び置換π1のシェア[π1]を用いて、第一テーブルの各ベクトルを置換σ0で置換すると第一テーブルと第二テーブルに共通するキーのレコードが先頭側に移動する置換σ0の逆置換σ0 -1に置換π0を適用したベクトルπ00 -1)のシェア[π00 -1)]と、第二テーブルの各ベクトルを置換σ1で置換すると第一テーブルと第二テーブルに共通するキーのレコードが先頭側に移動する置換σ1の逆置換σ1 -1に置換π1を適用したベクトルπ11 -1)のシェア[π11 -1)]と、第一テーブルのi番目のレコードが、第一テーブルと第二テーブルに共通するキーのレコードかどうかを表す値g0,iから構成されるベクトルg0のシェア[g0]と、第二テーブルのi番目のレコードが、第一テーブルと第二テーブルに共通するキーのレコードかどうかを表す値g1,iから構成されるベクトルg1のシェア[g1]と、を生成する言える。
[変形例]
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。
例えば、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 0007067626000009
となる。このようにして並べたものを行列とみなし、この行列の各行を1レコードのキーのビット表現とみなすと、(1,2,3,1,3,4,5)というキーのビット表現のベクトルが得られる。このベクトルをステップS2以降で使うk'として用いてもよい。このようにして、複合キーの場合も処理できる。
複合キーでは、キーの重複とは、全てのキー属性の値の組み合わせの観点で重複するかどうかであり、個々の属性の値が重複しただけでは重複とはみなさないとする。例えば、組み合わせ(1,0)と(1,1)は重複ではない。
実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[プログラム、記録媒体]
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (11)

  1. 複数の秘密計算装置を含む秘密結合情報生成システムであって、
    Fk,Fvは任意の環であり、αを任意のベクトル又は任意の置換として[α]はαが秘密分散されたシェアであり、m0,m1は1以上の整数であり、k0∈Fk m0は第一テーブルのキーのベクトルであり、v0∈Fv m0は上記第一テーブルの属性値のベクトルであり、k1∈Fk m1は第二テーブルのキーのベクトルであり、v1∈Fv m1は上記第二テーブルの属性値のベクトルであり、π01はそれぞれ長さm0,m1の所定の置換であり、
    上記複数の秘密計算装置は、
    上記ベクトルk0のシェア[k0]及び上記ベクトルk1のシェア[k1]を用いて、上記ベクトルk0及び上記ベクトルk1を結合したベクトルk∈[Fk]m0+m1のシェア[k]を生成する複数のベクトル結合部と、
    m0個の0と、m1個の1とを結合したベクトルfのシェア[f]を生成する複数の第一ベクトル生成部と、
    上記シェア[k]を用いて、上記ベクトルkを安定ソートする置換σのシェア[σ]を生成する複数の第一置換計算部と、
    上記シェア[k]、上記シェア[σ]及び上記シェア[f]を用いて、上記ベクトルkに上記置換σを適用したベクトルσ(k)のシェア[σ(k)]と、上記ベクトルfに上記置換σを適用したベクトルσ(f)のシェア[σ(f)]とを生成する複数の第一置換適用部と、
    上記シェア[σ(k)]を用いて、上記ベクトルσ(k)のある要素とそのある要素の次の要素とが、同じ場合には1を、違う場合には0をそのある要素に対応する要素として持つベクトルeのシェア[e]を生成する複数の第二ベクトル生成部と、
    上記シェア[e]を用いて、上記ベクトルeのある要素とそのある要素の前の要素の一方が1の場合には1を、そうでない場合には0をそのある要素に対応する要素として持つベクトルの各要素をビット反転させたベクトルe'のシェア[e']を生成する複数の第三ベクトル生成部と、
    上記シェア[e']を用いて、上記ベクトルe'を安定ソートする置換σ'のシェア[σ']を生成する複数の第二置換計算部と、
    上記シェア[σ(f)]及び上記シェア[σ']を用いて、上記ベクトルσ(f)に上記置換σ'を適用したベクトルf'=σ'(σ(f))のシェア[f']を生成する複数の第二置換適用部と、
    上記シェア[f']を用いて、各要素が、上記ベクトルf'のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルsのシェア[s]と、上記ベクトルf'の各要素をビット反転させたベクトルをビット反転ベクトルとして、各要素が、上記ビット反転ベクトルのその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルs'のシェア[s']とを生成する複数の第四ベクトル生成部と、
    上記シェア[f']、上記シェア[s]及び上記シェア[s']を用いて、ベクトルσ''=f's+(1-f')s'-1のシェア[σ'']を計算する複数の第五ベクトル生成部と、
    上記シェア[e']及び上記シェア[σ]を用いて、上記ベクトルe'に上記置換σの逆置換σ-1を適用したベクトルe''=σ-1(e')のシェア[e'']を生成する複数の第一逆置換適用部と、
    上記シェア[e'']を用いて、上記ベクトルe''の先頭からm0個の要素からなるベクトルg0のシェア[g0]と、上記ベクトルe''の残りのm1個の要素からなるベクトルg1のシェア[g1]とを生成する複数の第一ベクトル分離部と、
    上記シェア[σ'']、上記シェア[σ]及び上記シェア[σ']を用いて、上記ベクトルxに上記置換σ'の逆置換σ'-1及び上記置換σの逆置換σ-1を適用したベクトルσ'''-1-1(σ'-1(σ''))のシェア[σ'''-1]を生成する複数の第二逆置換適用部と、
    上記シェア[σ'''-1]を用いて、上記ベクトルσ'''-1の先頭からm0個の要素からなるベクトルσ0 -1のシェア[σ0 -1]と、上記ベクトルσ'''-1の残りのm1個の要素からなるベクトルσ1 -1のシェア[σ1 -1]とを生成する複数の第二ベクトル分離部と、
    上記シェア[σ0 -1]、上記シェア[σ -1]及び上記置換π0のシェア[π0]及び上記置換π1のシェア[π1]を用いて、上記ベクトルσ0 -1に上記置換π0を適用したベクトルπ00 -1)のシェア[π00 -1)]と、上記ベクトルσ -1に上記置換π1を適用したベクトルπ1 -1)のシェア[π1 -1)]とを生成して、π0 -1)及びπ1 -1)を公開する複数の第三置換適用部と、
    を含む秘密結合情報生成システム。
  2. 請求項1の秘密結合情報生成システムの複数の秘密計算装置を含み、
    上記複数の秘密計算装置は、
    上記ベクトルk0のシェア[k0]、上記ベクトルv0のシェア[v0]、上記ベクトルk1のシェア[k1]及び上記ベクトルv1のシェア[v1]を用いて、ベクトルk0'=(π00 -1))-10(k0))のシェア[k0']と、ベクトルv0'=(π00 -1))-10(v0))のシェア[v0']と、ベクトルk1'=(π11 -1))-11(k1'))のシェア[k1']と、ベクトルv1'=(π11 -1))-11(v1'))のシェア[v1']とを計算する複数の第四置換適用部と、
    上記シェア[k0']、上記シェア[v0']、上記シェア[k1']及び上記シェア[v1']を用いて、上記ベクトルg0又は上記ベクトルg1の0の要素の数をcとして、上記ベクトルk0'の先頭からc個の要素を抜き出したベクトルと、上記ベクトルv0'の先頭からc個の要素を抜き出したベクトルと、上記ベクトルk1'の先頭からc個の要素を抜き出したベクトルと、上記ベクトルv1'の先頭からc個の要素を抜き出したベクトルとを結合した結合テーブルを生成する複数の第一結合テーブル生成部と、
    を更に含む秘密結合システム。
  3. 複数の秘密計算装置を含む秘密結合システムであって、
    Fk,Fvは任意の環であり、αを任意のベクトル又は任意の置換として[α]はαが秘密分散されたシェアであり、m0,m1は1以上の整数であり、k0∈Fk m0は第一テーブルのキーのベクトルであり、v0∈Fv m0は上記第一テーブルの属性値のベクトルであり、k1∈Fk m1は第二テーブルのキーのベクトルであり、v1∈Fv m1は上記第二テーブルの属性値のベクトルであり、π01はそれぞれ長さm0,m1の所定の置換であり、
    上記複数の秘密計算装置は、
    上記ベクトルk0のシェア[k0]、上記ベクトルk1のシェア[k1]、上記置換π0のシェア[π0]及び上記置換π1のシェア[π1]を用いて、上記第一テーブルの各ベクトルを置換σ0で置換すると上記第一テーブルと上記第二テーブルに共通するキーのレコードが先頭側に移動する置換σ0の逆置換σ0 -1に上記置換π0を適用したベクトルπ00 -1)のシェア[π00 -1)]と、上記第二テーブルの各ベクトルを置換σ1で置換すると上記第一テーブルと上記第二テーブルに共通するキーのレコードが先頭側に移動する置換σ1の逆置換σ1 -1に上記置換π1を適用したベクトルπ11 -1)のシェア[π11 -1)]と、上記第一テーブルのi番目のレコードが、上記第一テーブルと上記第二テーブルに共通するキーのレコードかどうかを表す値g0,iから構成されるベクトルg0のシェア[g0]と、上記第二テーブルのi番目のレコードが、上記第一テーブルと上記第二テーブルに共通するキーのレコードかどうかを表す値g1,iから構成されるベクトルg1のシェア[g1]と、を生成する複数の秘密結合情報生成部と、
    上記シェア[g1]、上記ベクトルk1のシェア[k1]及び上記ベクトルv1のシェア[v1]を用いて、上記ベクトルg1のi番目の要素をg1,iとして、g1,i=1である場合には、上記第二テーブルのキーのi番目の要素を予め定めた空を示す値u1,kとし、上記第二テーブルの属性のi番目の要素を予め定めた空を示す値u1,vとした変形第二テーブルを生成する複数のフィルタリング部と、
    上記ベクトルk0のシェア[k0]、上記ベクトルv0のシェア[v0]、上記変形第二テーブルのキーのベクトルであるk1'のシェア[k1']、上記変形第二テーブルの属性値のベクトルであるv1'のシェア[v1']、上記置換π0のシェア[π0]、上記置換π1のシェア[π1]、上記シェア[π00 -1)]及び上記シェア[π11 -1)]を用いて、ベクトルk0'=(π00 -1))-10(k0))のシェア[k0']と、ベクトルv0'=(π00 -1))-10(v0))のシェア[v0']と、ベクトルk1''=(π11 -1))-11(k1'))のシェア[k1'']と、ベクトルv1''=(π11 -1))-11(v1'))のシェア[v1'']とを計算する複数の第五置換適用部と、
    上記シェア[k0']、上記シェア[v0']、上記シェア[k1'']及び上記シェア[v1'']を用いて、m0<m1である場合には、上記ベクトルk0'と、上記ベクトルv0'と、上記ベクトルk1''の先頭からm0個の要素を抜き出したベクトルと、上記ベクトルv1''の先頭からm0個の要素を抜き出したベクトルとを結合した結合テーブルを、m0>m1である場合には、上記ベクトルk0'と、上記ベクトルv0'と、上記ベクトルk1''にm0-m1個の予め定めた空を示す値ukの要素を追加したベクトルと、上記ベクトルv1''にm0-m1個の予め定めた空を示す値uvの要素を追加したベクトルとを結合した結合テーブルを生成する複数の第二結合テーブル生成部と、
    を含む秘密結合システム。
  4. 複数の秘密計算装置を含む秘密結合システムであって、
    Fk,Fvは任意の環であり、αを任意のベクトル又は任意の置換として[α]はαが秘密分散されたシェアであり、m0,m1は1以上の整数であり、k0∈Fk m0は第一テーブルのキーのベクトルであり、v0∈Fv m0は上記第一テーブルの属性値のベクトルであり、k1∈Fk m1は第二テーブルのキーのベクトルであり、v1∈Fv m1は上記第二テーブルの属性値のベクトルであり、π01はそれぞれ長さm0,m1の所定の置換であり、
    上記複数の秘密計算装置は、
    上記ベクトルk0のシェア[k0]、上記ベクトルk1のシェア[k1]、上記置換π0のシェア[π0]及び上記置換π1のシェア[π1]を用いて、上記第一テーブルの各ベクトルを置換σ0で置換すると上記第一テーブルと上記第二テーブルに共通するキーのレコードが先頭側に移動する置換σ0の逆置換σ0 -1に上記置換π0を適用したベクトルπ00 -1)のシェア[π00 -1)]と、上記第二テーブルの各ベクトルを置換σ1で置換すると上記第一テーブルと上記第二テーブルに共通するキーのレコードが先頭側に移動する置換σ1の逆置換σ1 -1に上記置換π1を適用したベクトルπ11 -1)のシェア[π11 -1)]と、上記第一テーブルのi番目のレコードが、上記第一テーブルと上記第二テーブルに共通するキーのレコードかどうかを表す値g0,iから構成されるベクトルg0のシェア[g0]と、上記第二テーブルのi番目のレコードが、上記第一テーブルと上記第二テーブルに共通するキーのレコードかどうかを表す値g1,iから構成されるベクトルg1のシェア[g1]と、を生成する複数の秘密結合情報生成部と、
    上記ベクトルk0のシェア[k0]、上記ベクトルv0のシェア[v0]、上記ベクトルk1のシェア[k1]及び上記ベクトルv1のシェア[v1]を用いて、ベクトルk0'=(π00 -1))-10(k0))のシェア[k0']と、ベクトルv0'=(π00 -1))-10(v0))のシェア[v0']と、ベクトルk1'=(π11 -1))-11(k1'))のシェア[k1']と、ベクトルv1'=(π11 -1))-11(v1'))のシェア[v1']とを計算する複数の第四置換適用部と、
    上記シェア[k0']、上記シェア[v0']、上記シェア[k1']及び上記シェア[v1']を用いて、上記ベクトルg0又は上記ベクトルg1の0の要素の数をcとして、上記ベクトルk0'の先頭からc個の要素を抜き出したベクトルと、上記ベクトルv0'の先頭からc個の要素を抜き出したベクトルと、上記ベクトルk1'の先頭からc個の要素を抜き出したベクトルと、上記ベクトルv1'の先頭からc個の要素を抜き出したベクトルとを結合したテーブル(1)と、上記ベクトルk0'の残りm0-c個の要素を抜き出したベクトルと上記ベクトルv0'の残りm0-c個の要素を抜き出したベクトルと上記第二テーブルの属性値に対応する値を予め定めた空を示す値u'1,vとしたベクトルとを結合したテーブル(2)と、上記ベクトルv0'の残りm0-c個の要素を抜き出したベクトルと上記ベクトルv1'の残りm1-c個の要素を抜き出したベクトルと上記第一テーブルの属性値に対応する値を予め定めた空を示す値u'0,vとしたベクトルとを結合したテーブル(3)とを結合した結合テーブルを生成する複数の第三結合テーブル生成部と、
    を含む秘密結合システム。
  5. 請求項3又は4の秘密結合システムであって、
    上記複数の秘密計算装置は、
    上記ベクトルk0のシェア[k0]及び上記ベクトルk1のシェア[k1]を用いて、上記ベクトルk0及び上記ベクトルk1を結合したベクトルk∈[Fk]m0+m1のシェア[k]を生成する複数のベクトル結合部と、
    m0個の0と、m1個の1とを結合したベクトルfのシェア[f]を生成する複数の第一ベクトル生成部と、
    上記シェア[k]を用いて、上記ベクトルkを安定ソートする置換σのシェア[σ]を生成する複数の第一置換計算部と、
    上記シェア[k]、上記シェア[σ]及び上記シェア[f]を用いて、上記ベクトルkに上記置換σを適用したベクトルσ(k)のシェア[σ(k)]と、上記ベクトルfに上記置換σを適用したベクトルσ(f)のシェア[σ(f)]とを生成する複数の第一置換適用部と、
    上記シェア[σ(k)]を用いて、上記ベクトルσ(k)のある要素とそのある要素の次の要素とが、同じ場合には1を、違う場合には0をそのある要素に対応する要素として持つベクトルeのシェア[e]を生成する複数の第二ベクトル生成部と、
    上記シェア[e]を用いて、上記ベクトルeのある要素とそのある要素の前の要素の一方が1の場合には1を、そうでない場合には0をそのある要素に対応する要素として持つベクトルの各要素をビット反転させたベクトルe'のシェア[e']を生成する複数の第三ベクトル生成部と、
    上記シェア[e']を用いて、上記ベクトルe'を安定ソートする置換σ'のシェア[σ']を生成する複数の第二置換計算部と、
    上記シェア[σ(f)]及び上記シェア[σ']を用いて、上記ベクトルσ(f)に上記置換σ'を適用したベクトルf'=σ'(σ(f))のシェア[f']を生成する複数の第二置換適用部と、
    上記シェア[f']を用いて、各要素が、上記ベクトルf'のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルsのシェア[s]と、上記ベクトルf'の各要素をビット反転させたベクトルをビット反転ベクトルとして、各要素が、上記ビット反転ベクトルのその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルs'のシェア[s']とを生成する複数の第四ベクトル生成部と、
    上記シェア[f']、上記シェア[s]及び上記シェア[s']を用いて、ベクトルσ''=f's+(1-f')s'-1のシェア[σ'']を計算する複数の第五ベクトル生成部と、
    上記シェア[e']及び上記シェア[σ]を用いて、上記ベクトルe'に上記置換σの逆置換σ-1を適用したベクトルe''=σ-1(e')のシェア[e'']を生成する複数の第一逆置換適用部と、
    上記シェア[e'']を用いて、上記ベクトルe''の先頭からm0個の要素からなるベクトルg0のシェア[g0]と、上記ベクトルe''の残りのm1個の要素からなるベクトルg1のシェア[g1]とを生成する複数の第一ベクトル分離部と、
    上記シェア[σ'']、上記シェア[σ]及び上記シェア[σ']を用いて、上記ベクトルxに上記置換σ'の逆置換σ'-1及び上記置換σの逆置換σ-1を適用したベクトルσ'''-1-1(σ'-1(σ''))のシェア[σ'''-1]を生成する複数の第二逆置換適用部と、
    上記シェア[σ'''-1]を用いて、上記ベクトルσ'''-1の先頭からm0個の要素からなるベクトルσ0 -1のシェア[σ0 -1]と、上記ベクトルσ'''-1の残りのm1個の要素からなるベクトルσ1 -1のシェア[σ1 -1]とを生成する複数の第二ベクトル分離部と、
    上記シェア[σ0 -1]、上記シェア[σ -1]及び上記置換π0のシェア[π0]及び上記置換π1のシェア[π1]を用いて、上記ベクトルσ0 -1に上記置換π0を適用したベクトルπ00 -1)のシェア[π00 -1)]と、上記ベクトルσ -1に上記置換π1を適用したベクトルπ1 -1)のシェア[π1 -1)]とを生成して、π0 -1)及びπ1 -1)を公開する複数の第三置換適用部と、
    を更に含む秘密結合システム。
  6. F k, F v は任意の環であり、αを任意のベクトル又は任意の置換として[α]はαが秘密分散されたシェアであり、m 0 ,m 1 は1以上の整数であり、k 0 ∈F k m0 は第一テーブルのキーのベクトルであり、v 0 ∈F v m0 は上記第一テーブルの属性値のベクトルであり、k 1 ∈F k m1 は第二テーブルのキーのベクトルであり、v 1 ∈F v m1 は上記第二テーブルの属性値のベクトルであり、π 0 1 はそれぞれ長さm 0 ,m 1 の所定の置換であり、
    上記ベクトルk 0 のシェア[k 0 ]及び上記ベクトルk 1 のシェア[k 1 ]を用いて、上記ベクトルk 0 及び上記ベクトルk 1 を結合したベクトルk∈[F k ] m0+m1 のシェア[k]を生成する複数のベクトル結合部と、
    m 0 個の0と、m 1 個の1とを結合したベクトルfのシェア[f]を生成する複数の第一ベクトル生成部と、
    上記シェア[k]を用いて、上記ベクトルkを安定ソートする置換σのシェア[σ]を生成する複数の第一置換計算部と、
    上記シェア[k]、上記シェア[σ]及び上記シェア[f]を用いて、上記ベクトルkに上記置換σを適用したベクトルσ(k)のシェア[σ(k)]と、上記ベクトルfに上記置換σを適用したベクトルσ(f)のシェア[σ(f)]とを生成する複数の第一置換適用部と、
    上記シェア[σ(k)]を用いて、上記ベクトルσ(k)のある要素とそのある要素の次の要素とが、同じ場合には1を、違う場合には0をそのある要素に対応する要素として持つベクトルeのシェア[e]を生成する複数の第二ベクトル生成部と、
    上記シェア[e]を用いて、上記ベクトルeのある要素とそのある要素の前の要素の一方が1の場合には1を、そうでない場合には0をそのある要素に対応する要素として持つベクトルの各要素をビット反転させたベクトルe'のシェア[e']を生成する複数の第三ベクトル生成部と、
    上記シェア[e']を用いて、上記ベクトルe'を安定ソートする置換σ'のシェア[σ']を生成する複数の第二置換計算部と、
    上記シェア[σ(f)]及び上記シェア[σ']を用いて、上記ベクトルσ(f)に上記置換σ'を適用したベクトルf'=σ'(σ(f))のシェア[f']を生成する複数の第二置換適用部と、
    上記シェア[f']を用いて、各要素が、上記ベクトルf'のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルsのシェア[s]と、上記ベクトルf'の各要素をビット反転させたベクトルをビット反転ベクトルとして、各要素が、上記ビット反転ベクトルのその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルs'のシェア[s']とを生成する複数の第四ベクトル生成部と、
    上記シェア[f']、上記シェア[s]及び上記シェア[s']を用いて、ベクトルσ''=f's+(1-f')s'-1のシェア[σ'']を計算する複数の第五ベクトル生成部と、
    上記シェア[e']及び上記シェア[σ]を用いて、上記ベクトルe'に上記置換σの逆置換σ -1 を適用したベクトルe''=σ -1 (e')のシェア[e'']を生成する複数の第一逆置換適用部と、
    上記シェア[e'']を用いて、上記ベクトルe''の先頭からm 0 個の要素からなるベクトルg 0 のシェア[g 0 ]と、上記ベクトルe''の残りのm 1 個の要素からなるベクトルg 1 のシェア[g 1 ]とを生成する複数の第一ベクトル分離部と、
    上記シェア[σ'']、上記シェア[σ]及び上記シェア[σ']を用いて、上記ベクトルxに上記置換σ'の逆置換σ' -1 及び上記置換σの逆置換σ -1 を適用したベクトルσ''' -1 -1 (σ' -1 (σ''))のシェア[σ''' -1 ]を生成する複数の第二逆置換適用部と、
    上記シェア[σ''' -1 ]を用いて、上記ベクトルσ''' -1 の先頭からm 0 個の要素からなるベクトルσ 0 -1 のシェア[σ 0 -1 ]と、上記ベクトルσ''' -1 の残りのm 1 個の要素からなるベクトルσ 1 -1 のシェア[σ 1 -1 ]とを生成する複数の第二ベクトル分離部と、
    上記シェア[σ 0 -1 ]、上記シェア[σ -1 ]及び上記置換π 0 のシェア[π 0 ]及び上記置換π 1 のシェア[π 1 ]を用いて、上記ベクトルσ 0 -1 に上記置換π 0 を適用したベクトルπ 0 0 -1 )のシェア[π 0 0 -1 )]と、上記ベクトルσ -1 に上記置換π 1 を適用したベクトルπ 1 -1 )のシェア[π 1 -1 )]とを生成して、π 0 -1 )及びπ 1 -1 )を公開する複数の第三置換適用部と、
    をそれぞれ含む複数の秘密計算装置の何れかである秘密計算装置。
  7. Fk,Fvは任意の環であり、αを任意のベクトル又は任意の置換として[α]はαが秘密分散されたシェアであり、m0,m1は1以上の整数であり、k0∈Fk m0は第一テーブルのキーのベクトルであり、v0∈Fv m0は上記第一テーブルの属性値のベクトルであり、k1∈Fk m1は第二テーブルのキーのベクトルであり、v1∈Fv m1は上記第二テーブルの属性値のベクトルであり、π01はそれぞれ長さm0,m1の所定の置換であり、
    複数のベクトル結合部が、上記ベクトルk0のシェア[k0]及び上記ベクトルk1のシェア[k1]を用いて、上記ベクトルk0及び上記ベクトルk1を結合したベクトルk∈[Fk]m0+m1のシェア[k]を生成するベクトル結合ステップと、
    複数の第一ベクトル生成部が、m0個の0と、m1個の1とを結合したベクトルfのシェア[f]を生成する第一ベクトル生成ステップと、
    複数の第一置換計算部が、上記シェア[k]を用いて、上記ベクトルkを安定ソートする置換σのシェア[σ]を生成する第一置換計算ステップと、
    複数の第一置換適用部が、上記シェア[k]、上記シェア[σ]及び上記シェア[f]を用いて、上記ベクトルkに上記置換σを適用したベクトルσ(k)のシェア[σ(k)]と、上記ベクトルfに上記置換σを適用したベクトルσ(f)のシェア[σ(f)]とを生成する第一置換適用ステップと、
    複数の第二ベクトル生成部が、上記シェア[σ(k)]を用いて、上記ベクトルσ(k)のある要素とそのある要素の次の要素とが、同じ場合には1を、違う場合には0をそのある要素に対応する要素として持つベクトルeのシェア[e]を生成する第二ベクトル生成ステップと、
    複数の第三ベクトル生成部が、上記シェア[e]を用いて、上記ベクトルeのある要素とそのある要素の前の要素の一方が1の場合には1を、そうでない場合には0をそのある要素に対応する要素として持つベクトルの各要素をビット反転させたベクトルe'のシェア[e']を生成する第三ベクトル生成ステップと、
    複数の第二置換計算部が、上記シェア[e']を用いて、上記ベクトルe'を安定ソートする置換σ'のシェア[σ']を生成する第二置換計算ステップと、
    複数の第二置換適用部が、上記シェア[σ(f)]及び上記シェア[σ']を用いて、上記ベクトルσ(f)に上記置換σ'を適用したベクトルf'=σ'(σ(f))のシェア[f']を生成する第二置換適用ステップと、
    複数の第四ベクトル生成部が、上記シェア[f']を用いて、各要素が、上記ベクトルf'のその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルsのシェア[s]と、上記ベクトルf'の各要素をビット反転させたベクトルをビット反転ベクトルとして、各要素が、上記ビット反転ベクトルのその各要素に対応する要素を含むその各要素に対応する要素までの要素の和であるベクトルs'のシェア[s']とを生成する第四ベクトル生成ステップと、
    複数の第五ベクトル生成部が、上記シェア[f']、上記シェア[s]及び上記シェア[s']を用いて、ベクトルσ''=f's+(1-f')s'-1のシェア[σ'']を計算する第五ベクトル生成ステップと、
    複数の第一逆置換適用部が、上記シェア[e']及び上記シェア[σ]を用いて、上記ベクトルe'に上記置換σの逆置換σ-1を適用したベクトルe''=σ-1(e')のシェア[e'']を生成する第一逆置換適用ステップと、
    複数の第一ベクトル分離部が、上記シェア[e'']を用いて、上記ベクトルe''の先頭からm0個の要素からなるベクトルg0のシェア[g0]と、上記ベクトルe''の残りのm1個の要素からなるベクトルg1のシェア[g1]とを生成する第一ベクトル分離ステップと、
    複数の第二逆置換適用部が、上記シェア[σ'']、上記シェア[σ]及び上記シェア[σ']を用いて、上記ベクトルxに上記置換σ'の逆置換σ'-1及び上記置換σの逆置換σ-1を適用したベクトルσ'''-1-1(σ'-1(σ''))のシェア[σ'''-1]を生成する第二逆置換適用ステップと、
    複数の第二ベクトル分離部が、上記シェア[σ'''-1]を用いて、上記ベクトルσ'''-1の先頭からm0個の要素からなるベクトルσ0 -1のシェア[σ0 -1]と、上記ベクトルσ'''-1の残りのm1個の要素からなるベクトルσ1 -1のシェア[σ1 -1]とを生成する第二ベクトル分離ステップと、
    複数の第三置換適用部が、上記シェア[σ0 -1]、上記シェア[σ -1]及び上記置換π0のシェア[π0]及び上記置換π1のシェア[π1]を用いて、上記ベクトルσ0 -1に上記置換π0を適用したベクトルπ00 -1)のシェア[π00 -1)]と、上記ベクトルσ -1に上記置換π1を適用したベクトルπ1 -1)のシェア[π1 -1)]とを生成して、π0 -1)及びπ1 -1)を公開する第三置換適用ステップと、
    を含む秘密結合情報生成方法。
  8. 請求項7の秘密結合情報生成システムの各ステップと、
    複数の第四置換適用部が、上記ベクトルk0のシェア[k0]、上記ベクトルv0のシェア[v0]、上記ベクトルk1のシェア[k1]及び上記ベクトルv1のシェア[v1]を用いて、ベクトルk0'=(π00 -1))-10(k0))のシェア[k0']と、ベクトルv0'=(π00 -1))-10(v0))のシェア[v0']と、ベクトルk1'=(π11 -1))-11(k1'))のシェア[k1']と、ベクトルv1'=(π11 -1))-11(v1'))のシェア[v1']とを計算する第四置換適用ステップと、
    複数の第一結合テーブル生成部が、上記シェア[k0']、上記シェア[v0']、上記シェア[k1']及び上記シェア[v1']を用いて、上記ベクトルg0又は上記ベクトルg1の0の要素の数をcとして、上記ベクトルk0'の先頭からc個の要素を抜き出したベクトルと、上記ベクトルv0'の先頭からc個の要素を抜き出したベクトルと、上記ベクトルk1'の先頭からc個の要素を抜き出したベクトルと、上記ベクトルv1'の先頭からc個の要素を抜き出したベクトルとを結合した結合テーブルを生成する第一結合テーブル生成ステップと、
    を含む秘密結合方法。
  9. Fk,Fvは任意の環であり、αを任意のベクトル又は任意の置換として[α]はαが秘密分散されたシェアであり、m0,m1は1以上の整数であり、k0∈Fk m0は第一テーブルのキーのベクトルであり、v0∈Fv m0は上記第一テーブルの属性値のベクトルであり、k1∈Fk m1は第二テーブルのキーのベクトルであり、v1∈Fv m1は上記第二テーブルの属性値のベクトルであり、π01はそれぞれ長さm0,m1の所定の置換であり、
    複数の秘密結合情報生成部が、上記ベクトルk0のシェア[k0]、上記ベクトルk1のシェア[k1]、上記置換π0のシェア[π0]及び上記置換π1のシェア[π1]を用いて、上記第一テーブルの各ベクトルを置換σ0で置換すると上記第一テーブルと上記第二テーブルに共通するキーのレコードが先頭側に移動する置換σ0の逆置換σ0 -1に上記置換π0を適用したベクトルπ00 -1)のシェア[π00 -1)]と、上記第二テーブルの各ベクトルを置換σ1で置換すると上記第一テーブルと上記第二テーブルに共通するキーのレコードが先頭側に移動する置換σ1の逆置換σ1 -1に上記置換π1を適用したベクトルπ11 -1)のシェア[π11 -1)]と、上記第一テーブルのi番目のレコードが、上記第一テーブルと上記第二テーブルに共通するキーのレコードかどうかを表す値g0,iから構成されるベクトルg0のシェア[g0]と、上記第二テーブルのi番目のレコードが、上記第一テーブルと上記第二テーブルに共通するキーのレコードかどうかを表す値g1,iから構成されるベクトルg1のシェア[g1]と、を生成する秘密結合情報生成ステップと、
    複数のフィルタリング部が、上記シェア[g1]、上記ベクトルk1のシェア[k1]及び上記ベクトルv1のシェア[v1]を用いて、上記ベクトルg1のi番目の要素をg1,iとして、g1,i=1である場合には、上記第二テーブルのキーのi番目の要素を予め定めた空を示す値u1,kとし、上記第二テーブルの属性のi番目の要素を予め定めた空を示す値u1,vとした変形第二テーブルを生成するフィルタリングステップと、
    複数の第五置換適用部が、上記ベクトルk0のシェア[k0]、上記ベクトルv0のシェア[v0]、上記変形第二テーブルのキーのベクトルであるk1'のシェア[k1']、上記変形第二テーブルの属性値のベクトルであるv1'のシェア[v1']、上記置換π0のシェア[π0]、上記置換π1のシェア[π1]、上記シェア[π00 -1)]及び上記シェア[π11 -1)]を用いて、ベクトルk0'=(π00 -1))-10(k0))のシェア[k0']と、ベクトルv0'=(π00 -1))-10(v0))のシェア[v0']と、ベクトルk1''=(π11 -1))-11(k1'))のシェア[k1'']と、ベクトルv1''=(π11 -1))-11(v1'))のシェア[v1'']とを計算する第五置換適用ステップと、
    複数の第二結合テーブル生成部が、上記シェア[k0']、上記シェア[v0']、上記シェア[k1'']及び上記シェア[v1'']を用いて、m0<m1である場合には、上記ベクトルk0'と、上記ベクトルv0'と、上記ベクトルk1''の先頭からm0個の要素を抜き出したベクトルと、上記ベクトルv1''の先頭からm0個の要素を抜き出したベクトルとを結合した結合テーブルを、m0>m1である場合には、上記ベクトルk0'と、上記ベクトルv0'と、上記ベクトルk1''にm0-m1個の予め定めた空を示す値ukの要素を追加したベクトルと、上記ベクトルv1''にm0-m1個の予め定めた空を示す値uvの要素を追加したベクトルとを結合した結合テーブルを生成する第二結合テーブル生成ステップと、
    を含む秘密結合方法。
  10. Fk,Fvは任意の環であり、αを任意のベクトル又は任意の置換として[α]はαが秘密分散されたシェアであり、m0,m1は1以上の整数であり、k0∈Fk m0は第一テーブルのキーのベクトルであり、v0∈Fv m0は上記第一テーブルの属性値のベクトルであり、k1∈Fk m1は第二テーブルのキーのベクトルであり、v1∈Fv m1は上記第二テーブルの属性値のベクトルであり、π01はそれぞれ長さm0,m1の所定の置換であり、
    複数の秘密結合情報生成部が、上記ベクトルk0のシェア[k0]、上記ベクトルk1のシェア[k1]、上記置換π0のシェア[π0]及び上記置換π1のシェア[π1]を用いて、上記第一テーブルの各ベクトルを置換σ0で置換すると上記第一テーブルと上記第二テーブルに共通するキーのレコードが先頭側に移動する置換σ0の逆置換σ0 -1に上記置換π0を適用したベクトルπ00 -1)のシェア[π00 -1)]と、上記第二テーブルの各ベクトルを置換σ1で置換すると上記第一テーブルと上記第二テーブルに共通するキーのレコードが先頭側に移動する置換σ1の逆置換σ1 -1に上記置換π1を適用したベクトルπ11 -1)のシェア[π11 -1)]と、上記第一テーブルのi番目のレコードが、上記第一テーブルと上記第二テーブルに共通するキーのレコードかどうかを表す値g0,iから構成されるベクトルg0のシェア[g0]と、上記第二テーブルのi番目のレコードが、上記第一テーブルと上記第二テーブルに共通するキーのレコードかどうかを表す値g1,iから構成されるベクトルg1のシェア[g1]と、を生成する秘密結合情報生成ステップと、
    複数の第四置換適用部が、上記ベクトルk0のシェア[k0]、上記ベクトルv0のシェア[v0]、上記ベクトルk1のシェア[k1]及び上記ベクトルv1のシェア[v1]を用いて、ベクトルk0'=(π00 -1))-10(k0))のシェア[k0']と、ベクトルv0'=(π00 -1))-10(v0))のシェア[v0']と、ベクトルk1'=(π11 -1))-11(k1'))のシェア[k1']と、ベクトルv1'=(π11 -1))-11(v1'))のシェア[v1']とを計算する第四置換適用ステップと、
    複数の第三結合テーブル生成部が、上記シェア[k0']、上記シェア[v0']、上記シェア[k1']及び上記シェア[v1']を用いて、上記ベクトルg0又は上記ベクトルg1の0の要素の数をcとして、上記ベクトルk0'の先頭からc個の要素を抜き出したベクトルと、上記ベクトルv0'の先頭からc個の要素を抜き出したベクトルと、上記ベクトルk1'の先頭からc個の要素を抜き出したベクトルと、上記ベクトルv1'の先頭からc個の要素を抜き出したベクトルとを結合したテーブル(1)と、上記ベクトルk0'の残りm0-c個の要素を抜き出したベクトルと上記ベクトルv0'の残りm0-c個の要素を抜き出したベクトルと上記第二テーブルの属性値に対応する値を予め定めた空を示す値u'1,vとしたベクトルとを結合したテーブル(2)と、上記ベクトルv0'の残りm0-c個の要素を抜き出したベクトルと上記ベクトルv1'の残りm1-c個の要素を抜き出したベクトルと上記第一テーブルの属性値に対応する値を予め定めた空を示す値u'0,vとしたベクトルとを結合したテーブル(3)とを結合した結合テーブルを生成する第三結合テーブル生成ステップと、
    を含む秘密結合方法。
  11. 請求項6の秘密計算装置の各部としてコンピュータを機能させるためのプログラム。
JP2020537441A 2018-08-13 2019-08-08 秘密結合情報生成システム、秘密結合システム、これらの方法、秘密計算装置及びプログラム Active JP7067626B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018152413 2018-08-13
JP2018152413 2018-08-13
PCT/JP2019/031477 WO2020036127A1 (ja) 2018-08-13 2019-08-08 秘密結合情報生成システム、秘密結合システム、これらの方法、秘密計算装置及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2020036127A1 JPWO2020036127A1 (ja) 2021-08-10
JP7067626B2 true JP7067626B2 (ja) 2022-05-16

Family

ID=69525331

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020537441A Active JP7067626B2 (ja) 2018-08-13 2019-08-08 秘密結合情報生成システム、秘密結合システム、これらの方法、秘密計算装置及びプログラム

Country Status (6)

Country Link
US (1) US12079363B2 (ja)
EP (1) EP3839925B1 (ja)
JP (1) JP7067626B2 (ja)
CN (1) CN112567443B (ja)
AU (1) AU2019322591B2 (ja)
WO (1) WO2020036127A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012150379A (ja) 2011-01-21 2012-08-09 Nippon Telegr & Teleph Corp <Ntt> マッチングシステム、マッチングシステムの方法、結合装置及びプログラム
WO2018061800A1 (ja) 2016-09-27 2018-04-05 日本電信電話株式会社 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5480828B2 (ja) * 2011-01-24 2014-04-23 日本電信電話株式会社 秘密ソートシステム、秘密ソート装置、秘密ソート方法、秘密ソートプログラム
JP5650630B2 (ja) * 2011-11-22 2015-01-07 日本電信電話株式会社 鍵交換システム、鍵交換装置、鍵交換方法、鍵交換プログラム
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
JP5907902B2 (ja) * 2013-01-21 2016-04-26 日本電信電話株式会社 秘密計算による表の等結合システム、方法
JP5860557B1 (ja) * 2015-02-06 2016-02-16 日本電信電話株式会社 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム
CN106452745B (zh) * 2016-09-27 2019-07-02 中国农业大学 一种秘密数据共享的验证方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012150379A (ja) 2011-01-21 2012-08-09 Nippon Telegr & Teleph Corp <Ntt> マッチングシステム、マッチングシステムの方法、結合装置及びプログラム
WO2018061800A1 (ja) 2016-09-27 2018-04-05 日本電信電話株式会社 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
志村正法ほか,秘密分散データベースの構造演算を可能にするマルチパーティプロトコルを用いた関係代数演算,情報処理学会論文誌,日本,一般社団法人情報処理学会,2010年09月15日,第51巻,第9号,p.1563-1578

Also Published As

Publication number Publication date
EP3839925A1 (en) 2021-06-23
AU2019322591B2 (en) 2021-12-23
AU2019322591A1 (en) 2021-03-11
US12079363B2 (en) 2024-09-03
WO2020036127A1 (ja) 2020-02-20
JPWO2020036127A1 (ja) 2021-08-10
CN112567443B (zh) 2024-05-14
EP3839925B1 (en) 2023-06-21
EP3839925A4 (en) 2022-05-11
CN112567443A (zh) 2021-03-26
US20210182419A1 (en) 2021-06-17

Similar Documents

Publication Publication Date Title
JP6973632B2 (ja) 秘密集約総和システム、秘密計算装置、秘密集約総和方法、およびプログラム
JP6989006B2 (ja) 秘密集約関数計算システム、秘密計算装置、秘密集約関数計算方法、およびプログラム
JP6973633B2 (ja) 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム
JP6973634B2 (ja) 秘密集約中央値システム、秘密計算装置、秘密集約中央値方法、およびプログラム
JP7067625B2 (ja) 秘密結合システム、この方法、秘密計算装置及びプログラム
JP7017178B2 (ja) 秘密クロス集計システム、秘密計算装置、秘密クロス集計方法、およびプログラム
JP7067626B2 (ja) 秘密結合情報生成システム、秘密結合システム、これらの方法、秘密計算装置及びプログラム
JP7081663B2 (ja) 秘密結合システム、方法、秘密計算装置及びプログラム
JP2013156719A (ja) 匿名データ提供システム、匿名データ装置、及びそれらが実行する方法
EP3246900B1 (en) Matrix and key generation device, matrix and key generation system, matrix coupling device, matrix and key generation method, and program
JP7067624B2 (ja) 秘密強写像計算システム、これらの方法、秘密計算装置及びプログラム
JP7031732B2 (ja) 秘密表参照システム、方法、秘密計算装置及びプログラム
JP7147840B2 (ja) 秘密重複排除フィルタ生成システム、秘密重複排除システム、これらの方法、秘密計算装置及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210208

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220309

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220411

R150 Certificate of patent or registration of utility model

Ref document number: 7067626

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150