JPWO2019203262A1 - 秘密集約順位システム、秘密計算装置、秘密集約順位方法、およびプログラム - Google Patents

秘密集約順位システム、秘密計算装置、秘密集約順位方法、およびプログラム Download PDF

Info

Publication number
JPWO2019203262A1
JPWO2019203262A1 JP2020514409A JP2020514409A JPWO2019203262A1 JP WO2019203262 A1 JPWO2019203262 A1 JP WO2019203262A1 JP 2020514409 A JP2020514409 A JP 2020514409A JP 2020514409 A JP2020514409 A JP 2020514409A JP WO2019203262 A1 JPWO2019203262 A1 JP WO2019203262A1
Authority
JP
Japan
Prior art keywords
share
secret
group
integer
vector
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
JP2020514409A
Other languages
English (en)
Other versions
JP6973629B2 (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 JPWO2019203262A1 publication Critical patent/JPWO2019203262A1/ja
Application granted granted Critical
Publication of JP6973629B2 publication Critical patent/JP6973629B2/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
    • 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
    • G06F7/766Generation of all possible permutations
    • 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
    • G06F7/768Data position reversal, e.g. bit reversal, byte swapping
    • 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
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • 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/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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

秘匿性を保ったまま集約順位を効率的に求める。逆置換部(12)は、テーブルのクロス集計にテーブルをキー属性に基づいてグループ分けしたときの各グループの最後の要素が先頭から順に並ぶように移動する置換の逆置換を適用し逆置換済みのクロス集計を表すベクトルのシェアを生成する。部分総和部(13)は、逆置換済みのクロス集計からプレフィックスサムを計算する。順位計算部(14)は、プレフィックスサムの結果からグループ内での昇順順位を表すベクトルのシェアを生成する。

Description

この発明は秘密計算技術に関し、特に、秘匿性を保ったまま集約関数を計算する技術に関する。
集約関数は、テーブルにキー属性とバリュー属性があるときに、キー属性の値に基づいてグループ分けした統計値を得る演算である。集約関数は、group-by演算とも呼ばれる。キー属性は、テーブルのレコードをグループ分けするために用いる属性であり、例えば、役職や性別などが挙げられる。バリュー属性は、統計値を計算するために用いる属性であり、例えば、給料や身長などが挙げられる。group-by演算は、例えば、キー属性が性別のときに、男女別の平均身長を求める演算などである。キー属性は複数の属性による複合キーであってもよく、例えば、キー属性が性別と年齢のときに、10代男性の平均身長、20代男性の平均身長、・・・を得るような演算であってもよい。非特許文献1には、group-by演算を秘密計算で行う方法が記載されている。
集約順位は、集約関数の一つであり、テーブルをキー属性の値に基づいてグループ分けしたときに、所望のバリュー属性の値がグループ内で何番目の値であるかを得る演算である。集約順位は、グループ内の順位とも呼ばれ、バリュー属性を昇順でソートしたときの順位であるグループ内の昇順順位と、バリュー属性を降順でソートしたときの順位であるグループ内の降順順位とがある。例えば、キー属性が年齢と性別であり、バリュー属性が給料のときに、グループ内の昇順順位は、給料が20代男性の中で低い方から数えて何番目、30代男性の中で低い方から数えて何番目、・・・を得るような演算であり、グループ内の降順順位は、給料が20代男性の中で高い方から数えて何番目、30代男性の中で高い方から数えて何番目、・・・を得るような演算である。
五十嵐大,千田浩司,濱田浩気,高橋克巳,"軽量検証可能3パーティ秘匿関数計算の効率化及びこれを用いたセキュアなデータベース処理",2011年暗号と情報セキュリティシンポジウム
従来の秘密計算技術では、グループ内の順位を求めるために、nを計算主体の数としてlog(n)の通信回数が必要となり、効率が悪かった。
この発明の目的は、上記のような技術的課題に鑑みて、秘匿性を保ったままグループ内の順位を効率的に求めることができる技術を提供することである。
上記の課題を解決するために、この発明の第一の態様の秘密集約順位システムは、複数の秘密計算装置を含む秘密集約順位システムであって、mは2以上の整数であり、[v]:=[v0], …, [vm-1]はキー属性とバリュー属性とからなるテーブルをキー属性の値に基づいてグループ分けしたときの各グループのレコード数が先頭からグループ数までの要素に設定されたクロス集計v:=v0, …, vm-1を秘密分散したシェアであり、{{σ}}はテーブルをキー属性の値に基づいてグループ分けしたときに各グループの最後の要素が先頭から順に並ぶように移動する置換σを秘密分散したシェアであり、秘密計算装置は、シェア[v]とシェア{{σ}}とを用いて、復元するとクロス集計vに置換σを逆適用した逆置換済みクロス集計u:=σ-1(v)となるシェア[u]:=[σ-1(v)]を生成する逆置換部と、シェア[u]を用いて、0以上m-1以下の各整数iについて[si]に[u0]から[ui]までの総和を設定して、復元するとベクトルs:=s0, …, sm-1∈Fとなるシェア[s]を生成する部分総和部と、シェア[s]を用いて、1以上m-1以下の各整数iについて[xi]:=[i-si-1]を設定し、かつ、[x0]:=[0]を設定して、復元するとグループ内での昇順順位を表すベクトルx:=x0, …, xm-1となるシェア[x]を生成する順位計算部と、を含む。
上記の課題を解決するために、この発明の第二の態様の秘密集約順位システムは、複数の秘密計算装置を含む秘密集約順位システムであって、mは2以上の整数であり、[v]:=[v0], …, [vm-1]はキー属性とバリュー属性とからなるテーブルをキー属性の値に基づいてグループ分けしたときの各グループのレコード数が先頭からグループ数までの要素に設定されたクロス集計v:=v0, …, vm-1を秘密分散したシェアであり、{{σ}}はテーブルをキー属性の値に基づいてグループ分けしたときに各グループの最後の要素が先頭から順に並ぶように移動する置換σを秘密分散したシェアであり、秘密計算装置は、シェア[v]を用いて、0以上m-2以下の各整数iについて[v'i]:=[vi+1]を設定し、かつ、[v'm-1]:=[0]を設定して、復元するとシフト済みクロス集計v':=v'0, …, v'm-1となるシェア[v']を生成するカウントシフト部と、シェア[v']とシェア{{σ}}とを用いて、復元するとシフト済みクロス集計v'に置換σを逆適用した逆置換済みクロス集計u':=σ-1(v')となるシェア[u']:=[σ-1(v')]を生成する逆置換部と、シェア[u']を用いて、0以上m-1以下の各整数iについて[s'i]に[u'i]から[u'm-i]までの総和を設定して、復元するとベクトルs':=s'0, …, s'm-1∈Fとなるシェア[s']を生成する部分総和部と、シェア[s']を用いて、1以上m-1以下の各整数iについて[x'i]:=[m-i-s'i-1]を設定して、復元するとグループ内での降順順位を表すベクトルx':=x'0, …, x'm-1となるシェア[x']を生成する順位計算部と、を含む。
この発明の秘密集約順位技術によれば、秘匿性を保ったままグループ内の順位をO(1)の通信回数で効率的に求めることができる。
図1は、秘密集約順位システムの機能構成を例示する図である。 図2は、秘密計算装置の機能構成を例示する図である。 図3は、秘密集約順位方法(昇順順位)の処理手続きを例示する図である。 図4は、秘密集約順位方法(降順順位)の処理手続きを例示する図である。 図5は、変形例の秘密計算装置の機能構成を例示する図である。
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
[x]∈[F]は、ある値xが任意の環F上の秘密分散等により秘匿されていることを表す。{b}∈{B}は、1ビットのある値bが1ビットを表せる環B上の秘密分散等により秘匿されていることを表す。{{s}}∈{{Sm}}は、m個の要素の置換の集合Smに属するある置換sが秘密分散等により秘匿されていることを表す。以下、秘密分散された値を「シェア」とも呼ぶ。
<第一実施形態>
≪グループ内の昇順順位≫
この発明の第一実施形態は、グループ内の昇順順位を求める秘密集約順位システムおよび方法である。図1を参照して、第一実施形態の秘密集約順位システム100の構成例を説明する。秘密集約順位システム100は、N(≧2)台の秘密計算装置11, …, 1Nを含む。本形態では、秘密計算装置11, …, 1Nはそれぞれ通信網9へ接続される。通信網9は、接続される各装置が相互に通信可能なように構成された回線交換方式もしくはパケット交換方式の通信網であり、例えばインターネットやLAN(Local Area Network)、WAN(Wide Area Network)などを用いることができる。なお、各装置は必ずしも通信網9を介してオンラインで通信可能である必要はない。例えば、秘密計算装置11, …, 1Nへ入力する情報を磁気テープやUSBメモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体から秘密計算装置11, …, 1Nへオフラインで入力するように構成してもよい。
図2を参照して、本形態の秘密集約順位システム100に含まれる秘密計算装置1n(n=1, …, N)の構成例を説明する。秘密計算装置1nは、例えば、図2に示すように、入力部10、逆置換部12、部分総和部13、順位計算部14、および出力部15を含む。この秘密計算装置1n(1≦n≦N)が他の秘密計算装置1n'(n'=1, …, N、ただしn≠n')と協調しながら後述する各ステップの処理を行うことにより第一実施形態の秘密集約順位方法が実現される。
秘密計算装置1nは、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。秘密計算装置1nは、例えば、中央演算処理装置の制御のもとで各処理を実行する。秘密計算装置1nに入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。秘密計算装置1nの各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
図3を参照して、第一実施形態の秘密集約順位システム100が実行する秘密集約順位方法(昇順順位)の処理手続きを説明する。
ステップS10において、各秘密計算装置1nの入力部10は、クロス集計v∈Fmを秘密分散により秘匿したシェア[v]∈[F]mと、置換σを秘密分散により秘匿したシェア{{σ}}∈{{Sm}}とを入力として受け取る。ただし、mは2以上の整数である。入力部10は、クロス集計vのシェア[v]と置換σのシェア{{σ}}とを逆置換部12へ出力する。
クロス集計vは、各グループのレコード数を集計した結果である。例えば、クロス集計vは、テーブルをキー属性で安定ソートしたときに同じキー属性の値をもつレコードを同じグループとして、先頭からグループ数までの要素には各グループのレコード数を集計した結果が設定され、それ以降の要素には0が設定されたベクトルである。グループ数は1以上m以下の整数であり、mと等しいとは限らない。グループ数は秘密の値であり、以降の処理でグループ数の値を参照することはなく、グループ数を知らなくても処理が可能なように構成されている。なお、安定ソートとは、ソート演算のうち、同じ値の要素が存在した場合に、同じ値の要素同士の順序を保存する演算である。例えば、社員番号順でソートされたテーブルに対して性別で安定ソートすると、各性別の中で社員番号順が保たれているソート結果が得られる。
置換σは、各グループのキー属性の値を先頭から1つずつ並べる置換である。例えば、置換σは、テーブルをキー属性で安定ソートしたときに同じキー属性の値をもつレコードを同じグループとして、各グループの最後の要素が先頭から順に並び、続いて他の要素が順に並ぶように移動する置換である。
ステップS12において、各秘密計算装置1nの逆置換部12は、クロス集計vのシェア[v]と置換σのシェア{{σ}}とを用いて、復元するとクロス集計vに置換σを逆適用した逆置換済みクロス集計u:=σ-1(v)となるシェア[u]:=[σ-1(v)]∈[F]mを生成する。クロス集計vは先頭からグループ数までの要素に各グループのレコード数が設定されたベクトルであり、置換σは各グループの最後の要素を先頭から順に並べる置換であるため、クロス集計vに置換σを逆適用した逆置換済みクロス集計uは各グループの最後の要素にそのグループのレコード数が設定されたベクトルとなる。以下、[u]∈[F]mの各要素は、[ui]∈[F](i=0, …, m-1)で参照することもある。逆置換部12は、逆置換済みクロス集計uのシェア[u]を部分総和部13へ出力する。
ステップS13において、各秘密計算装置1nの部分総和部13は、逆置換済みクロス集計uのシェア[u]を用いて、[s]:=prefix-sum([u])を計算し、復元するとベクトルs:=s0, …, sm-1∈Fとなるシェア[s]∈[F]mを生成する。prefix-sumは、mを入力ベクトルuの長さとして、0以上m-1以下の各整数iについて、出力ベクトルsのi番目の要素siには入力ベクトルuの0番目の要素u0からi番目の要素uiまでの値の総和を設定する演算である。部分総和部13は、ベクトルsのシェア[s]を順位計算部14へ出力する。
ステップS14において、各秘密計算装置1nの順位計算部14は、ベクトルsのシェア[s]を用いて、1以上m-1以下の各整数iについて[xi]:=[i-si-1]を設定し、かつ、[x0]:=[0]を設定して、復元するとグループ内での昇順順位x:=x0, …, xm-1∈Fとなるシェア[x]∈[F]mを生成する。なお、グループ内での昇順順位は0スタートとなることに注意されたい。1スタートの順位を得たいのであれば、各順位に1を加算すればよい。すなわち、1以上m-1以下の各整数iについて[xi]:=[i-si-1+1]を設定し、かつ、[x0]:=[1]を設定して、昇順順位xを生成すればよい。順位計算部14は、昇順順位xのシェア[x]を出力部15へ出力する。
ステップS15において、各秘密計算装置1nの出力部15は、昇順順位xのシェア[x]を出力する。
<第二実施形態>
≪グループ内の降順順位≫
この発明の第二実施形態は、グループ内の降順順位を求める秘密集約順位システムおよび方法である。図1を参照して、第二実施形態の秘密集約順位システム101の構成例を説明する。本形態の秘密集約順位システム101は、N(≧2)台の秘密計算装置21, …, 2Nを含む。本形態では、秘密計算装置21, …, 2Nはそれぞれ通信網9へ接続される。通信網9は、接続される各装置が相互に通信可能なように構成された回線交換方式もしくはパケット交換方式の通信網であり、例えばインターネットやLAN(Local Area Network)、WAN(Wide Area Network)などを用いることができる。なお、各装置は必ずしも通信網9を介してオンラインで通信可能である必要はない。例えば、秘密計算装置21, …, 2Nへ入力する情報を磁気テープやUSBメモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体から秘密計算装置21, …, 2Nへオフラインで入力するように構成してもよい。
図2を参照して、本形態の秘密集約順位システム101に含まれる秘密計算装置2n(n=1, …, N)の構成例を説明する。秘密計算装置2nは、例えば、図2に示すように、第一実施形態の秘密集約順位システム101に含まれる秘密計算装置1nが備える処理部に加えて、カウントシフト部11をさらに含む。この秘密計算装置2n(1≦n≦N)が他の秘密計算装置2n'(n'=1, …, N、ただしn≠n')と協調しながら後述する各ステップの処理を行うことにより第二実施形態の秘密集約順位方法が実現される。
図4を参照して、第二実施形態の秘密集約順位システム101が実行する秘密集約順位方法(降順順位)の処理手続きを説明する。
ステップS10において、各秘密計算装置2nの入力部10は、クロス集計v∈Fmを秘密分散により秘匿したシェア[v]∈[F]mと、置換σを秘密分散により秘匿したシェア{{σ}}∈{{Sm}}とを入力として受け取る。入力部10は、クロス集計vのシェア[v]をカウントシフト部11へ出力する。また、入力部10は、置換σのシェア{{σ}}を逆置換部12へ出力する。
ステップS11において、各秘密計算装置2nのカウントシフト部11は、クロス集計vのシェア[v]を用いて、0以上m-2以下の各整数iについて[v'i]:=[vi+1]を設定し、かつ、[v'm-1]:=[0]を設定して、復元するとシフト済みクロス集計v':=v'0, …, v'm-1∈Fmとなるシェア[v']∈[F]mを生成する。シフト済みクロス集計v'は各グループのレコード数を表すベクトルであるクロス集計vを一つずつ前方へシフトしたベクトルとなる。カウントシフト部11は、シフト済みクロス集計v'のシェア[v']を逆置換部12へ出力する。
ステップS12において、各秘密計算装置2nの逆置換部12は、シフト済みクロス集計v'のシェア[v']と置換σのシェア{{σ}}とを用いて、復元するとシフト済みクロス集計v'に置換σを逆適用した逆置換済みクロス集計u':=σ-1(v')となるシェア[u']:=[σ-1(v')]∈[F]mを生成する。シフト済みクロス集計v'は先頭からグループ数までの要素に各グループのレコード数が設定されたクロス集計vを一つずつ前方へシフトしたベクトルであり、置換σは各グループの最後の要素を先頭から順に並べる置換であるため、シフト済みクロス集計v'に置換σを逆適用した逆置換済みクロス集計u'は各グループの最後の要素に一つ後方のグループのレコード数が設定されたベクトルとなる。以下、[u']∈[F]mの各要素は、[u'i]∈[F](i=0, …, m-1)で参照することもある。逆置換部12は、逆置換済みクロス集計u'のシェア[u']を部分総和部13へ出力する。
ステップS13において、各秘密計算装置2nの部分総和部13は、逆置換済みクロス集計u'のシェア[u']を用いて、[s']:=postfix-sum([u'])を計算し、復元するとベクトルs':=s'0, …, s'm-1∈Fとなるシェア[s']∈[F]mを生成する。postfix-sumは、mを入力ベクトルu'の長さとして、0以上m-1以下の各整数iについて、出力ベクトルs'のi番目の要素s'iには入力ベクトルu'のi番目の要素u'iからm-1番目の要素u'm-1までの値の総和を設定する演算である。部分総和部13は、ベクトルs'のシェア[s']を順位計算部14へ出力する。
ステップS14において、各秘密計算装置2nの順位計算部14は、ベクトルs'のシェア[s']を用いて、0以上m-1以下の各整数iについて[x'i]:=[m-i-s'i-1]を設定して、復元するとグループ内での降順順位x':=x'0, …, x'm-1∈Fとなるシェア[x']∈[F]mを生成する。なお、グループ内での降順順位は0スタートとなることに注意されたい。1スタートの順位を得たいのであれば、各順位に1を加算すればよい。すなわち、0以上m-1以下の各整数iについて[x'i]:=[m-i-s'i]を設定して、降順順位x'を生成すればよい。順位計算部14は、降順順位x'のシェア[x']を出力部15へ出力する。
ステップS15において、各秘密計算装置2nの出力部15は、降順順位x'のシェア[x']を出力する。
<変形例>
上記の実施形態では、入力部10へクロス集計vのシェア[v]と置換σのシェア{{σ}}とが入力される構成を説明した。変形例では、入力部10へテーブルを秘密分散等により秘匿したシェアが入力され、クロス集計vのシェア[v]と置換σのシェア{{σ}}とを求めてから、上記の実施形態で説明した手順に従ってグループ内の順位を計算する構成を説明する。
変形例の秘密計算装置3n(n=1, …, N)は、例えば、図5に示すように、第一実施形態の秘密計算装置1n(n=1, …, N)または第二実施形態の秘密計算装置2n(n=1, …, N)が備える各処理部に加えて、ビット分解部21、グループソート生成部22、ビット列ソート部23、フラグ生成部24、キー集約ソート生成部25、フラグ変換部31、境界番号設定部32、ソート部33、およびカウント計算部34を含む。以下、第一実施形態および第二実施形態の秘密集約順位システムと異なる点についてのみ説明する。
各秘密計算装置3nの入力部10は、nk個のキー属性k0, …, knk-1∈Fmそれぞれを秘密分散により秘匿したシェア[k0], …, [knk-1]∈[F]mと、na個のバリュー属性v0, …, vna-1∈Fmそれぞれを秘密分散により秘匿したシェア[v0], …, [vna-1]∈[F]mとを入力として受け取る。ただし、nk, naは1以上の整数である。以下、[kj]∈[F]m(j=0, …, nk-1)の各要素は、[kj,i]∈[F](i=0, …, m-1)で参照することもある。入力部10は、キー属性k0, …, knk-1のシェア[k0], …, [knk-1]をビット分解部21へ出力する。
各秘密計算装置3nのビット分解部21は、キー属性k0, …, knk-1のシェア[k0], …, [knk-1]をビット分解して結合し、復元するとキー属性k0, …, knk-1のビット表現を結合したビット列b:=b0, …, bm-1∈Bλとなるシェア{b}∈{B}λを得る。ただし、λはビット列bのビット長であり、各bi(i=0, …, m-1)のビット長の総和である。言い替えると、{bi}は、キー属性k0, …, knk-1のシェア[k0], …, [knk-1]それぞれのi番目の要素[k0,i], …, [knk-1,i]のビット表現を結合したビット列である。ビット分解部21は、ビット列bのシェア{b}をグループソート生成部22へ出力する。
各秘密計算装置3nのグループソート生成部22は、ビット列bのシェア{b}を用いて、復元するとビット列bを昇順で安定ソートするための置換σ0となるシェア{{σ0}}∈{{Sm}}を生成する。ビット列bはキー属性k0, …, knk-1のビット表現を結合したものであるため、置換σ0はキー属性k0, …, knk-1の値が等しいレコードを連続するように並び替えてグループ分けする操作であるとも言える。グループソート生成部22は、ビット列bのシェア{b}と置換σ0のシェア{{σ0}}とをビット列ソート部23へ出力する。
各秘密計算装置3nのビット列ソート部23は、ビット列bのシェア{b}と置換σ0のシェア{{σ0}}とを用いて、復元するとビット列bを置換σ0でソートしたソート済みビット列b':=b'0, …, b'm-1∈Bλとなるシェア{b'}∈{B}λを得る。ビット列ソート部23は、ソート済みビット列b'のシェア{b'}をフラグ生成部24へ出力する。
各秘密計算装置3nのフラグ生成部24は、ソート済みビット列b'のシェア{b'}を用いて、0以上m-2以下の各整数iについて{ei}:={b'i≠b'i+1}を設定し、かつ、{em-1}:={1}を設定して、復元するとフラグe:=e0, …, em-1∈Bmとなるシェア{e}∈{B}mを生成する。フラグeiはソート済みビット列b'のi番目の要素b'iがi+1番目の要素b'i+1と異なる場合に真が設定されるため、各グループの最後の要素(すなわち、グループ間の境界の直前の要素)を示すフラグとなる。フラグ生成部24は、フラグeのシェア{e}をキー集約ソート生成部25へ出力する。また、フラグ生成部24は、フラグeのシェア{e}をフラグ変換部31へ出力する。
各秘密計算装置3nのキー集約ソート生成部25は、まず、フラグeのシェア{e}を用いて、復元するとフラグeの否定¬eであるフラグe'となるシェア{e'}∈{B}mを生成する。すなわち、0以上m-1以下の各整数iについて{e'i}:={¬ei}を設定する。次に、キー集約ソート生成部25は、フラグe'のシェア{e'}を用いて、復元するとフラグe'を昇順に安定ソートするための置換σとなるシェア{{σ}}∈{{Sm}}を生成する。キー集約ソート生成部25は、置換σのシェア{{σ}}をソート部33へ出力する。また、キー集約ソート生成部25は、置換σのシェア{{σ}}をカウントシフト部11または逆置換部12へ出力する。
各秘密計算装置3nのフラグ変換部31は、フラグeのシェア{e}∈{B}mを任意の環F上の秘密分散によるシェア[e]∈[F]mに変換する。フラグ変換部31は、フラグeのシェア[e]を境界番号設定部32へ出力する。
各秘密計算装置3nの境界番号設定部32は、フラグeのシェア[e]を用いて、0以上m-1以下の各整数iについて[x"i]:=[ei?i+1:m]を設定し、復元するとベクトルx":=x"0, …, x"m-1∈Fとなるシェア[x"]∈[F]mを生成する。ここで、「?」は条件演算子(または三項演算子)である。すなわち、[ei]が真(例えば、[ei]=[1])のときは[x"i]:=[i+1]を設定し、[ei]が偽(例えば、[ei]=[0])のときは[x"i]:=[m]を設定する。ベクトルx"は、テーブルをキー属性で安定ソートしたときに同じキー属性の値をもつレコードを同じグループとして、各グループの最後の要素には次の要素の先頭からの位置が設定され、その他の要素にはテーブル全体のレコード数が設定されたベクトルとなる。言い替えると、各グループの最後の要素には、先頭のグループからそのグループまでの各グループのレコード数を積み上げた合計値が設定されることになる。境界番号設定部32は、ベクトルx"のシェア[x"]をソート部33へ出力する。
各秘密計算装置3nのソート部33は、ベクトルx"のシェア[x"]と置換σのシェア{{σ}}とを用いて、復元するとベクトルx"を置換σでソートしたソート済みベクトルσ(x")となるシェア[σ(x")]∈[F]mを生成する。以下、[σ(x")]∈[F]mの各要素は、[σ(x")i]∈[F](i=0, …, m-1)で参照することもある。ソート部33は、ソート済みベクトルσ(x")のシェア[σ(x")]をカウント計算部34へ出力する。
各秘密計算装置3nのカウント計算部34は、ソート済みベクトルσ(x")のシェア[σ(x")]を用いて、1以上min(g,m)-1以下の各整数iについて[vi]:=[σ(x")i-σ(x")i-1]を設定し、かつ、min(g,m)以上m-1以下の各整数iについて[vi]:=[0]を設定し、かつ、[v0]:=[σ(x")0]を設定して、復元すると各グループのレコード数(すなわち、クロス集計)を表すベクトルv:=v0, …, vm-1∈Fとなるシェア[v]∈[F]mを生成する。ソート済みベクトルσ(x")のi番目の要素σ(x")iは、0番目からi番目までの各グループのレコード数を積み上げた合計値が設定されているため、クロス集計vのi番目の要素viには、i番目のグループのレコード数が設定されることになる。カウント計算部34は、クロス集計vのシェア[v]をカウントシフト部11または逆置換部12へ出力する。
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[プログラム、記録媒体]
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
図2を参照して、本形態の秘密集約順位システム101に含まれる秘密計算装置2n(n=1, …, N)の構成例を説明する。秘密計算装置2nは、例えば、図2に示すように、第一実施形態の秘密集約順位システム100に含まれる秘密計算装置1nが備える処理部に加えて、カウントシフト部11をさらに含む。この秘密計算装置2n(1≦n≦N)が他の秘密計算装置2n'(n'=1, …, N、ただしn≠n')と協調しながら後述する各ステップの処理を行うことにより第二実施形態の秘密集約順位方法が実現される。

Claims (8)

  1. 複数の秘密計算装置を含む秘密集約順位システムであって、
    mは2以上の整数であり、[v]:=[v0], …, [vm-1]はキー属性とバリュー属性とからなるテーブルを上記キー属性の値に基づいてグループ分けしたときの各グループのレコード数が先頭からグループ数までの要素に設定されたクロス集計v:=v0, …, vm-1を秘密分散したシェアであり、{{σ}}は上記テーブルを上記キー属性の値に基づいてグループ分けしたときに各グループの最後の要素が先頭から順に並ぶように移動する置換σを秘密分散したシェアであり、
    上記秘密計算装置は、
    上記シェア[v]と上記シェア{{σ}}とを用いて、復元すると上記クロス集計vに上記置換σを逆適用した逆置換済みクロス集計u:=σ-1(v)となるシェア[u]:=[σ-1(v)]を生成する逆置換部と、
    上記シェア[u]を用いて、0以上m-1以下の各整数iについて[si]に[u0]から[ui]までの総和を設定して、復元するとベクトルs:=s0, …, sm-1∈Fとなるシェア[s]を生成する部分総和部と、
    上記シェア[s]を用いて、1以上m-1以下の各整数iについて[xi]:=[i-si-1]を設定し、かつ、[x0]:=[0]を設定して、復元するとグループ内での昇順順位を表すベクトルx:=x0, …, xm-1となるシェア[x]を生成する順位計算部と、
    を含む秘密集約順位システム。
  2. 複数の秘密計算装置を含む秘密集約順位システムであって、
    mは2以上の整数であり、[v]:=[v0], …, [vm-1]はキー属性とバリュー属性とからなるテーブルを上記キー属性の値に基づいてグループ分けしたときの各グループのレコード数が先頭からグループ数までの要素に設定されたクロス集計v:=v0, …, vm-1を秘密分散したシェアであり、{{σ}}は上記テーブルを上記キー属性の値に基づいてグループ分けしたときに各グループの最後の要素が先頭から順に並ぶように移動する置換σを秘密分散したシェアであり、
    上記秘密計算装置は、
    上記シェア[v]を用いて、0以上m-2以下の各整数iについて[v'i]:=[vi+1]を設定し、かつ、[v'm-1]:=[0]を設定して、復元するとシフト済みクロス集計v':=v'0, …, v'm-1となるシェア[v']を生成するカウントシフト部と、
    上記シェア[v']と上記シェア{{σ}}とを用いて、復元すると上記シフト済みクロス集計v'に上記置換σを逆適用した逆置換済みクロス集計u':=σ-1(v')となるシェア[u']:=[σ-1(v')]を生成する逆置換部と、
    上記シェア[u']を用いて、0以上m-1以下の各整数iについて[s'i]に[u'i]から[u'm-i]までの総和を設定して、復元するとベクトルs':=s'0, …, s'm-1∈Fとなるシェア[s']を生成する部分総和部と、
    上記シェア[s']を用いて、1以上m-1以下の各整数iについて[x'i]:=[m-i-s'i-1]を設定して、復元するとグループ内での降順順位を表すベクトルx':=x'0, …, x'm-1となるシェア[x']を生成する順位計算部と、
    を含む秘密集約順位システム。
  3. 請求項1または2に記載の秘密集約順位システムであって、
    Fは任意の環であり、nkは1以上の整数であり、[k0], …, [knk-1]はキー属性k0, …, knk-1∈Fmを秘密分散したシェアであり、
    上記秘密計算装置は、
    上記シェア[k0], …, [knk-1]を用いて、復元すると上記キー属性k0, …, knk-1をビット分解して結合したビット列b:=b0, …, bm-1となるシェア{b}から、復元すると上記ビット列bを昇順に安定ソートする置換σ0となるシェア{{σ0}}を生成するグループソート生成部と、
    上記シェア{b}と上記シェア{{σ0}}とを用いて、復元すると上記ビット列bを上記置換σ0でソートしたソート済みビット列b':=b'0, …, b'm-1となるシェア{b'}を生成するビット列ソート部と、
    上記シェア{b'}を用いて、0以上m-2以下の各整数iについて{ei}:={b'i≠b'i+1}を設定し、かつ、{em-1}:={1}を設定して、復元すると上記フラグe:=e0, …, em-1となる上記シェア{e}を生成するフラグ生成部と、
    上記シェア{e}を用いて、復元すると上記フラグeの否定¬eを昇順に安定ソートする上記置換σとなる上記シェア{{σ}}を生成するキー集約ソート生成部と、
    上記シェア{e}を用いて、0以上m-1以下の各整数iについて、{ei}が真のとき[x"i]:=[i+1]を設定し、{ei}が偽のとき[x"i]:=[m]を設定して、復元するとベクトルx":=x"0, …, x"m-1となるシェア[x"]を生成する境界番号設定部と、
    上記シェア[x"]と上記シェア{{σ}}とを用いて、復元すると上記ベクトルx"を上記置換σでソートしたソート済みベクトルσ(x")となるシェア[σ(x")]を生成するソート部と、
    上記シェア[σ(x")]を用いて、1以上min(g,m)-1以下の各整数iについて[vi]:=[σ(x")i-σ(x")i-1]を設定し、かつ、min(g,m)以上m-1以下の各整数iについて[vi]:=[0]を設定し、かつ、[v0]:=[σ(x")0]を設定して、復元すると各グループのレコード数を表すベクトルv:=v0, …, vm-1となるシェア[v]を生成するカウント計算部と、
    をさらに含む秘密集約順位システム。
  4. mは2以上の整数であり、[v]:=[v0], …, [vm-1]はキー属性とバリュー属性とからなるテーブルを上記キー属性の値に基づいてグループ分けしたときの各グループのレコード数が先頭からグループ数までの要素に設定されたクロス集計v:=v0, …, vm-1を秘密分散したシェアであり、{{σ}}は上記テーブルを上記キー属性の値に基づいてグループ分けしたときに各グループの最後の要素が先頭から順に並ぶように移動する置換σを秘密分散したシェアであり、
    上記シェア[v]と上記シェア{{σ}}とを用いて、復元すると上記クロス集計vに上記置換σを逆適用した逆置換済みクロス集計u:=σ-1(v)となるシェア[u]:=[σ-1(v)]を生成する逆置換部と、
    上記シェア[u]を用いて、0以上m-1以下の各整数iについて[si]に[u0]から[ui]までの総和を設定して、復元するとベクトルs:=s0, …, sm-1∈Fとなるシェア[s]を生成する部分総和部と、
    上記シェア[s]を用いて、1以上m-1以下の各整数iについて[xi]:=[i-si-1]を設定し、かつ、[x0]:=[0]を設定して、復元するとグループ内での昇順順位を表すベクトルx:=x0, …, xm-1となるシェア[x]を生成する順位計算部と、
    を含む秘密計算装置。
  5. mは2以上の整数であり、[v]:=[v0], …, [vm-1]はキー属性とバリュー属性とからなるテーブルを上記キー属性の値に基づいてグループ分けしたときの各グループのレコード数が先頭からグループ数までの要素に設定されたクロス集計v:=v0, …, vm-1を秘密分散したシェアであり、{{σ}}は上記テーブルを上記キー属性の値に基づいてグループ分けしたときに各グループの最後の要素が先頭から順に並ぶように移動する置換σを秘密分散したシェアであり、
    上記シェア[v]を用いて、0以上m-2以下の各整数iについて[v'i]:=[vi+1]を設定し、かつ、[v'm-1]:=[0]を設定して、復元するとシフト済みクロス集計v':=v'0, …, v'm-1となるシェア[v']を生成するカウントシフト部と、
    上記シェア[v']と上記シェア{{σ}}とを用いて、復元すると上記シフト済みクロス集計v'に上記置換σを逆適用した逆置換済みクロス集計u':=σ-1(v')となるシェア[u']:=[σ-1(v')]を生成する逆置換部と、
    上記シェア[u']を用いて、0以上m-1以下の各整数iについて[s'i]に[u'i]から[u'm-i]までの総和を設定して、復元するとベクトルs':=s'0, …, s'm-1∈Fとなるシェア[s']を生成する部分総和部と、
    上記シェア[s']を用いて、1以上m-1以下の各整数iについて[x'i]:=[m-i-s'i-1]を設定して、復元するとグループ内での降順順位を表すベクトルx':=x'0, …, x'm-1となるシェア[x']を生成する順位計算部と、
    を含む秘密計算装置。
  6. 複数の秘密計算装置を含む秘密集約順位システムが実行する秘密集約順位方法であって、
    mは2以上の整数であり、[v]:=[v0], …, [vm-1]はキー属性とバリュー属性とからなるテーブルを上記キー属性の値に基づいてグループ分けしたときの各グループのレコード数が先頭からグループ数までの要素に設定されたクロス集計v:=v0, …, vm-1を秘密分散したシェアであり、{{σ}}は上記テーブルを上記キー属性の値に基づいてグループ分けしたときに各グループの最後の要素が先頭から順に並ぶように移動する置換σを秘密分散したシェアであり、
    上記秘密計算装置の逆置換部が、上記シェア[v]と上記シェア{{σ}}とを用いて、復元すると上記クロス集計vに上記置換σを逆適用した逆置換済みクロス集計u:=σ-1(v)となるシェア[u]:=[σ-1(v)]を生成し、
    上記秘密計算装置の部分総和部が、上記シェア[u]を用いて、0以上m-1以下の各整数iについて[si]に[u0]から[ui]までの総和を設定して、復元するとベクトルs:=s0, …, sm-1∈Fとなるシェア[s]を生成し、
    上記秘密計算装置の順位計算部が、上記シェア[s]を用いて、1以上m-1以下の各整数iについて[xi]:=[i-si-1]を設定し、かつ、[x0]:=[0]を設定して、復元するとグループ内での昇順順位を表すベクトルx:=x0, …, xm-1となるシェア[x]を生成する、
    秘密集約順位方法。
  7. 複数の秘密計算装置を含む秘密集約順位システムが実行する秘密集約順位方法であって、
    mは2以上の整数であり、[v]:=[v0], …, [vm-1]はキー属性とバリュー属性とからなるテーブルを上記キー属性の値に基づいてグループ分けしたときの各グループのレコード数が先頭からグループ数までの要素に設定されたクロス集計v:=v0, …, vm-1を秘密分散したシェアであり、{{σ}}は上記テーブルを上記キー属性の値に基づいてグループ分けしたときに各グループの最後の要素が先頭から順に並ぶように移動する置換σを秘密分散したシェアであり、
    上記秘密計算装置のカウントシフト部が、上記シェア[v]を用いて、0以上m-2以下の各整数iについて[v'i]:=[vi+1]を設定し、かつ、[v'm-1]:=[0]を設定して、復元するとシフト済みクロス集計v':=v'0, …, v'm-1となるシェア[v']を生成し、
    上記秘密計算装置の逆置換部が、上記シェア[v']と上記シェア{{σ}}とを用いて、復元すると上記シフト済みクロス集計v'に上記置換σを逆適用した逆置換済みクロス集計u':=σ-1(v')となるシェア[u']:=[σ-1(v')]を生成し、
    上記秘密計算装置の部分総和部が、上記シェア[u']を用いて、0以上m-1以下の各整数iについて[s'i]に[u'i]から[u'm-i]までの総和を設定して、復元するとベクトルs':=s'0, …, s'm-1∈Fとなるシェア[s']を生成し、
    上記秘密計算装置の順位計算部が、上記シェア[s']を用いて、1以上m-1以下の各整数iについて[x'i]:=[m-i-s'i-1]を設定して、復元するとグループ内での降順順位を表すベクトルx':=x'0, …, x'm-1となるシェア[x']を生成する、
    秘密集約順位方法。
  8. 請求項4または5に記載の秘密計算装置としてコンピュータを機能させるためのプログラム。
JP2020514409A 2018-04-20 2019-04-17 秘密集約順位システム、秘密計算装置、秘密集約順位方法、およびプログラム Active JP6973629B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018081095 2018-04-20
JP2018081095 2018-04-20
PCT/JP2019/016446 WO2019203262A1 (ja) 2018-04-20 2019-04-17 秘密集約順位システム、秘密計算装置、秘密集約順位方法、およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2019203262A1 true JPWO2019203262A1 (ja) 2021-04-22
JP6973629B2 JP6973629B2 (ja) 2021-12-01

Family

ID=68239658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020514409A Active JP6973629B2 (ja) 2018-04-20 2019-04-17 秘密集約順位システム、秘密計算装置、秘密集約順位方法、およびプログラム

Country Status (6)

Country Link
US (1) US11240012B2 (ja)
EP (1) EP3783589B1 (ja)
JP (1) JP6973629B2 (ja)
CN (1) CN112005287B (ja)
AU (1) AU2019256936C1 (ja)
WO (1) WO2019203262A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114172648B (zh) * 2022-02-10 2022-05-31 支付宝(杭州)信息技术有限公司 一种基于秘密分享的排序方法和系统
WO2023157117A1 (ja) * 2022-02-16 2023-08-24 日本電信電話株式会社 秘密計算装置、秘密計算方法、プログラム
WO2023157118A1 (ja) * 2022-02-16 2023-08-24 日本電信電話株式会社 秘密計算装置、秘密計算方法、プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008109308A (ja) * 2006-10-24 2008-05-08 Nippon Telegr & Teleph Corp <Ntt> 個別情報を秘匿するクロス集計方法および装置、並びにプログラム
JP2013205796A (ja) * 2012-03-29 2013-10-07 Fujitsu Ltd プログラム、情報処理方法及び情報処理装置
JP2014081475A (ja) * 2012-10-16 2014-05-08 Nippon Telegr & Teleph Corp <Ntt> 秘密計算システム、集約関数装置、秘密計算方法、およびプログラム
WO2015107951A1 (ja) * 2014-01-17 2015-07-23 日本電信電話株式会社 秘密計算方法、秘密計算システム、ソート装置及びプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7026960B2 (en) * 2001-11-27 2006-04-11 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding key data
US8064696B2 (en) * 2007-04-10 2011-11-22 Microsoft Corporation Geometric parsing of mathematical expressions
US8918897B2 (en) * 2009-11-24 2014-12-23 Cleversafe, Inc. Dispersed storage network data slice integrity verification
EP2608190B1 (en) * 2010-10-06 2016-05-11 Nippon Telegraph and Telephone Corporation Secret sharing system, secret sharing apparatus, secret sharing method, secret sorting method and secret sharing program
JP5480828B2 (ja) * 2011-01-24 2014-04-23 日本電信電話株式会社 秘密ソートシステム、秘密ソート装置、秘密ソート方法、秘密ソートプログラム
IL213662A0 (en) * 2011-06-20 2011-11-30 Eliphaz Hibshoosh Key generation using multiple sets of secret shares
US9158925B2 (en) * 2013-11-27 2015-10-13 Microsoft Technology Licensing, Llc Server-aided private set intersection (PSI) with data transfer
EP3032524A4 (en) * 2014-05-21 2016-08-31 Fuji Electric Co Ltd INFORMATION PROCESSING DEVICE, PROGRAM AND RECORDING MEDIUM
JP6337133B2 (ja) * 2014-10-08 2018-06-06 日本電信電話株式会社 非減少列判定装置、非減少列判定方法及びプログラム
JP5957120B1 (ja) * 2015-05-12 2016-07-27 日本電信電話株式会社 秘密分散方法、秘密分散システム、分散装置、およびプログラム
JP5957126B1 (ja) * 2015-06-24 2016-07-27 日本電信電話株式会社 秘密計算装置、秘密計算方法、およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008109308A (ja) * 2006-10-24 2008-05-08 Nippon Telegr & Teleph Corp <Ntt> 個別情報を秘匿するクロス集計方法および装置、並びにプログラム
JP2013205796A (ja) * 2012-03-29 2013-10-07 Fujitsu Ltd プログラム、情報処理方法及び情報処理装置
JP2014081475A (ja) * 2012-10-16 2014-05-08 Nippon Telegr & Teleph Corp <Ntt> 秘密計算システム、集約関数装置、秘密計算方法、およびプログラム
WO2015107951A1 (ja) * 2014-01-17 2015-07-23 日本電信電話株式会社 秘密計算方法、秘密計算システム、ソート装置及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
桐淵 直人 ほか: "属性情報と履歴情報の秘匿統合分析に向けた秘密計算による高速な等結合アルゴリズムとその実装", コンピュータセキュリティシンポジウム2016論文集, JPN6019026742, 4 October 2016 (2016-10-04), JP, pages 1072 - 1078, ISSN: 0004609427 *

Also Published As

Publication number Publication date
EP3783589A4 (en) 2022-01-05
AU2019256936A1 (en) 2020-11-12
WO2019203262A1 (ja) 2019-10-24
CN112005287B (zh) 2023-08-18
US11240012B2 (en) 2022-02-01
AU2019256936B2 (en) 2021-07-22
CN112005287A (zh) 2020-11-27
EP3783589A1 (en) 2021-02-24
AU2019256936C1 (en) 2021-12-23
EP3783589B1 (en) 2022-07-20
JP6973629B2 (ja) 2021-12-01
US20210152340A1 (en) 2021-05-20

Similar Documents

Publication Publication Date Title
JP6973632B2 (ja) 秘密集約総和システム、秘密計算装置、秘密集約総和方法、およびプログラム
JP6989006B2 (ja) 秘密集約関数計算システム、秘密計算装置、秘密集約関数計算方法、およびプログラム
JP6973633B2 (ja) 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム
JP6973629B2 (ja) 秘密集約順位システム、秘密計算装置、秘密集約順位方法、およびプログラム
JP6973634B2 (ja) 秘密集約中央値システム、秘密計算装置、秘密集約中央値方法、およびプログラム
JP7017178B2 (ja) 秘密クロス集計システム、秘密計算装置、秘密クロス集計方法、およびプログラム
EP3246900B1 (en) Matrix and key generation device, matrix and key generation system, matrix coupling device, matrix and key generation method, and program
JP7081663B2 (ja) 秘密結合システム、方法、秘密計算装置及びプログラム
WO2023281693A1 (ja) 秘密計算システム、装置、方法及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201012

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201012

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211018

R150 Certificate of patent or registration of utility model

Ref document number: 6973629

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150