JP7359225B2 - 秘密最大値計算装置、方法及びプログラム - Google Patents

秘密最大値計算装置、方法及びプログラム Download PDF

Info

Publication number
JP7359225B2
JP7359225B2 JP2021570611A JP2021570611A JP7359225B2 JP 7359225 B2 JP7359225 B2 JP 7359225B2 JP 2021570611 A JP2021570611 A JP 2021570611A JP 2021570611 A JP2021570611 A JP 2021570611A JP 7359225 B2 JP7359225 B2 JP 7359225B2
Authority
JP
Japan
Prior art keywords
maximum value
secret
flag
calculates
value calculation
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
JP2021570611A
Other languages
English (en)
Other versions
JPWO2021144973A1 (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 JPWO2021144973A1 publication Critical patent/JPWO2021144973A1/ja
Application granted granted Critical
Publication of JP7359225B2 publication Critical patent/JP7359225B2/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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • 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)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)

Description

本発明は、暗号応用技術に関するものであり、特に入力や出力を明かすことなく最大値と最大値のフラグを計算する方法に関する。
暗号化された数値を復元すること無く特定の演算結果を得る方法として、秘密計算と呼ばれる方法がある(例えば非特許文献1参照。)。非特許文献1の方法では、3個の秘密計算装置に数値の断片を分散させるという暗号化を行い、3個の秘密計算装置が協調計算を行うことにより、数値を復元すること無く、加減算、定数加算、乗算、定数倍、論理演算 (否定、論理積、論理和、排他的論理和)、データ形式変換(整数, 二進数)の結果を3個の秘密計算装置に分散された状態、すなわち暗号化されたまま保持させることができる。秘密計算で暗号化されたn個の値の最大値と最大値のフラグを計算する場合、現在の最大値と最大値である要素の番号を暗号文として保持しておき、n個の暗号文と順に比較を行い、最大値と最大値である要素の番号を更新していき、最後に番号からフラグを計算する方法がある(例えば非特許文献2参照。)。
千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, 軽量検証可能 3 パーティ秘匿関数計算の再考, In CSS, 2010. Sameer Wagh, Divya Gupta, and Nishanth Chandran. Securenn: 3-party secure computation for neural network training. Proceedings on Privacy Enhancing Technologies, Vol. 1, p. 24, 2019.
しかしながら、従来の方法では、最大値を計算する際の比較の総回数はΘ(n)であるものの、比較の段数がΘ(n)と大きかった。
本発明の目的は、処理時間を小さくした秘密最大値計算装置、方法及びプログラムを提供することを目的とする。
この発明の一態様による秘密最大値計算装置は、集合X={[[x1]],[[x2]],...,[[xn]]}であるとして、n=1である場合には、[[x1]]及び[[1]]をそれぞれ最大の秘匿値[[y]]及びフラグ[[z(x1)]]として出力する出力部と、Xの要素の組{[[xi]],[[xj]]}⊂Xのそれぞれについて、所定の順序に関してどちらが大きいのかの比較結果を計算する比較部と、各[[xi]]について、各[[xi]]に関する全ての比較結果が「大きい」であったかどうかを計算し、その計算された値をフラグ[[z(xi)]]とするフラグ計算部と、[[z(xi)]]を用いて最大値[[y]]を計算する最大値計算部と、を備えており、x i ≦x j である場合には[[1]]を、そうでない場合には[[0]]を出力する関数をLE(x i ,x j )として、比較部は、各(i,j)(i,j∈[1,n],i<j)についてLE(x i ,x j )の計算を行い、その計算結果[[c i,j ]]を比較結果とし、a=bである場合には[[1]]を、そうでない場合には[[0]]を出力する関数をEQ([[a]],[[b]])として、フラグ計算部は、各(i,j)(i,j∈[1,n],i>j)について1-[[c j,i ]]の計算を行い、その計算結果を[[c i,j ]]とし、各iについて[[z(x i )]]←EQ(Σ i≠j [[c i,j ]],n-1)の計算を行い、その計算結果をフラグ[[z(x i )]]とする
処理時間を小さくすることができる。
図1は、第一実施形態の秘密最大値計算装置の機能構成の例を示す図である。 図2は、第一実施形態の秘密最大値計算方法の処理手続きの例を示す図である。 図3は、第二実施形態の秘密最大値計算装置の機能構成の例を示す図である。 図4は、第二実施形態の秘密最大値計算方法の処理手続きの例を示す図である。 図5は、第三実施形態の秘密最大値計算装置の機能構成の例を示す図である。 図6は、第三実施形態の秘密最大値計算方法の処理手続きの例を示す図である。 図7は、コンピュータの機能構成例を示す図である。
以下、本発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
[記法]
ある値aを暗号化や秘密分散などにより秘匿化した値aの秘匿値と呼び、[[a]]と書く。秘匿化が秘密分散である場合は,[[a]]により各秘密計算装置が持つ秘密分散の断片の集合を参照する。
<復号>
aの秘匿値[[a]]を入力とし,c=aとなる値cを計算する処理を
c←Open([[a]])
と記述する。
<算術演算>
加算、減算、乗算の各演算は2個の値a,bの秘匿値[[a]],[[b]]を入力とし、それぞれa+b,a-b,abの計算結果c1,c2,c3の秘匿値[[c1]],[[c2]],[[c3]]を計算する。これらの演算の実行をそれぞれ、
[[c1]]←Add([[a]],[[b]])
[[c2]]←Sub([[a]],[[b]])
[[c3]]←Mul([[a]],[[b]])
と記述する。誤解を招く恐れのない場合は、Add([[a]],[[b]]),Sub([[a]],[[b]]),Mul([[a]],[[b]])をそれぞれ[[a]]+[[b]],[[a]]-[[b]],[[a]]×[[b]]と略記する。
<比較>
比較の演算は2個の値a,bの秘匿値[[a]],[[b]]を入力とし,a=b,a≦b,a<bの真偽値c∈{0,1}の秘匿値[[c1]],[[c2]],[[c3]]を計算する。真偽値は真のとき1、偽のとき0とする。この演算の実行を
[[c0]]←EQ([[a]],[[b]])
[[c1]]←LE([[a]],[[b]])
[[c2]]←LT([[a]],[[b]])
と記述する。なお、EQ,LE,LTの入力の少なくとも一方は、秘匿値でなくてもよい。
<選択>
選択の演算は、真偽値c∈{0,1}の秘匿値[[c]]と2個の値a,bの秘匿値[[a]],[[b]]を入力とし、
Figure 0007359225000001
を満たすdの秘匿値[[d]]を計算する。この演算の実行を
[[d]]←IfElse([[c]],[[a]],[[b]])
と記述する。この演算は
[[d]]←[[c]]×([[a]]-[[b]])+[[b]]
により実現できる。
[第一実施形態]
第一実施形態の秘密最大値計算装置及び方法は、秘匿値の集合X={[[x1]],[[x2]],...,[[xn]]}から、予め定められた順序に関して最大の秘匿値[[y]]と、各秘匿値が最大であったかどうかを表すフラグの秘匿値[[z(xi)]]を計算する装置及び方法である。
第一実施形態の秘密最大値計算装置及び方法の入力、出力及び処理を表す記法は、以下のように記述することができる。
入力:X={[[x1]],...,[[xn]]}
出力:[[y]],[[z(x1)]],...,[[z(xn)]]
記法:[[y]],[[z(x1)]],...,[[z(xn)]]←f0([[x1]],...,[[xn]])
第一実施形態の秘密最大値計算装置は、図1に示すように、出力部1、比較部2、フラグ計算部3及び最大値計算部4を例えば備えている。
秘密最大値計算方法は、秘密最大値計算装置の各構成部が、以下に説明し、図2に示すステップS1からステップS4の処理を行うことにより例えば実現される。
以下、秘密最大値計算装置の各構成部について説明する。
<出力部1>
出力部1には、集合X={[[x1]],[[x2]],...,[[xn]]}が入力される。nは、所定の正の整数である。
出力部1は、n=1である場合には、[[x1]]及び[[1]]をそれぞれ最大の秘匿値[[y]]及びフラグ[[z(x1)]]として出力する(ステップS1)。
n=1でない場合には、以下のステップS2以降の処理が行われる。
<比較部2>
比較部2には、集合X={[[x1]],[[x2]],...,[[xn]]}が入力される。
比較部2は、Xの要素の組{[[xi]],[[xj]]}⊂Xのそれぞれについて、所定の順序に関してどちらが大きいのかの比較結果を計算する(ステップS2)。
計算された比較結果は、フラグ計算部3に出力される。
例えば、比較部2は、各1≦i<j≦nについて,[[ci,j]]←LE([[xi]],[[xj]])の計算を行う。言い換えれば、比較部2は、各(i,j)(i,j∈[1,n],i<j)についてLE(xi,xj)の計算を行い、その計算結果[[ci,j]]を比較結果とする。
ここで、LE(xi,xj)は、xi≦xjである場合には[[1]]を、そうでない場合には[[0]]を出力する関数である。
<フラグ計算部3>
フラグ計算部3には、比較部2で計算された比較結果が入力される。
フラグ計算部3は、各[[xi]]について、各[[xi]]に関する全ての比較結果が「大きい」であったかどうかを計算し、その計算された値をフラグ[[z(xi)]]とする(ステップS3)。
計算されたフラグ[[z(xi)]]は、最大値計算部4に出力される。
例えば、フラグ計算部3は、各(i,j)(i,j∈[1,n],i>j)について1-[[cj,i]]の計算を行い、その計算結果を[[ci,j]]とし、各iについてΠi≠j[[ci,j]]の計算を行い、その計算結果をフラグ[[z(xi)]]とする。
また、フラグ計算部3は、各(i,j)(i,j∈[1,n],i>j)について1-[[cj,i]]の計算を行い、その計算結果を[[ci,j]]とし、各iについて[[z(xi)]]←EQ(Σi≠j[[ci,j]],n-1)の計算を行い、その計算結果をフラグ[[z(xi)]]としてもよい。なお、関数EQで比較されるn-1は、秘匿値であってもよい。すなわち、フラグ計算部3は、各iについて[[z(xi)]]←EQ(Σi≠j[[ci,j]],[[n-1]])の計算を行い、その計算結果をフラグ[[z(xi)]]としてもよい。
ここで、EQ([[a]],[[b]])は、a=bである場合には[[1]]を、そうでない場合には[[0]]を出力する関数である。
<最大値計算部4>
最大値計算部4には、フラグ計算部3で計算されたフラグ[[z(xi)]]が入力される。
最大値計算部4は、[[z(xi)]]を用いて最大値[[y]]を計算する(ステップS4)。
例えば、最大値計算部4は、Σi∈[1,n]([[xi]]×[[z(xi)]])を計算し、その計算結果を最大値[[y]]とする。
従来の方法では、最大値を保持しておきながら秘匿値の集合から順に最大値を更新していたため、比較の段数がΘ(n)となっていた。これに対して、第一実施形態によれば、比較を一度に行うことで比較の段数を1段にすることができる。これにより、大きさnの秘匿値の集合から最大値の秘匿値と最大値かどうかのフラグの秘匿値の計算の処理時間を小さくすることができる。
[第二実施形態]
第二実施形態の秘密最大値計算装置及び方法は、秘匿値の集合X={[[x1]],[[x2]],...,[[xn]]}から、予め定められた順序に関して最大の秘匿値[[y]]の計算と、各秘匿値が最大であったかどうかを表すフラグの秘匿値[[z(xi)]]の計算とを比較の段数を2段で行う装置及び方法である。
第二実施形態の秘密最大値計算装置及び方法の入力、出力及び処理を表す記法は、以下のように記述することができる。
入力:X={[[x1]],...,[[xn]]}
出力:[[y]],[[z(x1)]],...,[[z(xn)]]
記法:[[y]],[[z(x1)]],...,[[z(xn)]]←f1([[x1]],...,[[xn]])
第二実施形態の秘密最大値計算装置は、図3に示すように、出力部1、分割部5、秘密最大値計算装置6及びフラグ計算部3を例えば備えている。
秘密最大値計算方法は、秘密最大値計算装置の各構成部が、以下に説明し、図4に示すステップS1からステップS3の処理を行うことにより例えば実現される。
以下、秘密最大値計算装置の各構成部について説明する。
<出力部1>
出力部1には、集合X={[[x1]],[[x2]],...,[[xn]]}が入力される。nは、所定の正の整数である。
出力部1は、n=1である場合には、[[x1]]及び[[1]]をそれぞれ最大の秘匿値[[y]]及びフラグ[[z(x1)]]として出力する(ステップS1)。
n=1でない場合には、以下のステップS5以降の処理が行われる。
<分割部5>
分割部5には、集合X={[[x1]],[[x2]],...,[[xn]]}が入力される。
分割部5は、Xを2個以上の部分集合に分割する(ステップS5)。
得られた2個以上の部分集合は、秘密最大値計算装置6に出力される。
例えば、分割部5は、Xを要素数が同程度のΘ(n2/3)個の部分集合に分割する。より詳細には、分割部5は、XをL=┌n2/3┐個の部分集合X1,...,XLに分割する。┌n2/3┐はn2/3以上の最小の整数である。ここで、(|Xi|≧1(i∈[1,L]),∪i∈[1,L]Xi=X,Xi∩Xj=φ(i≠j)である。例えば、分割部5は、1=s0<s1<・・・<sL=n+1となるようなsi(i∈[0,L])について、Xi={[[xs_(i-1)]],...,[[xs_i-1]]}(i∈[1,L])とする。ここで、x下付きのs_(i-1)は、si-1を意味する。また、Xの下付きのs_i-1は、si-1を意味する。
<秘密最大値計算装置6>
秘密最大値計算装置6には、分割部5で得られた2個以上の部分集合が入力される。
秘密最大値計算装置6は、2個以上の部分集合のそれぞれについて処理を行い、各部分集合に対応する最大値の秘匿値及びフラグを計算すると共に、各部分集合に対応する最大値の集合について処理を行い、最大値[[y]]及び部分集合ごとのフラグを計算する(ステップS6)。
秘密最大値計算装置6は、第一実施形態の秘密最大値計算装置である。第一実施形態の秘密最大値計算装置の記法を用いると、秘密最大値計算装置6の処理は、以下のように記述することができる。
[[yi]],[[z(xs_(i-1))]],...,[[z(xs_i-1)]]←f0([[xs_(i-1)]],...,[[xs_i-1]])(i∈[1,L])
[[y]],[[z(y1)]],...,[[z(yL)]]←f0([[y1]],...,[[yL]])
すなわち、秘密最大値計算装置6は、X=[[xs_(i-1)]],...,[[xs_i-1]]を入力として[[yi]],[[z(xs_(i-1))]],...,[[z(xs_i-1)]]を出力する処理をi∈[1,L]について行い、また、[[y1]],...,[[yL]]を入力として、[[y]],[[z(y1)]],...,[[z(yL)]]を出力する処理を行う。
計算された各部分集合iに対応する最大値の秘匿値[[yi]]及びフラグ[[z(xs_(i-1))]],...,[[z(xs_i-1)]]と、計算された最大値[[y]]及び部分集合ごとのフラグ[[z(y1)]],...,[[z(yL)]]は、フラグ計算部3に出力される。
<フラグ計算部3>
フラグ計算部3には、秘密最大値計算装置6で計算されたフラグ[[z(xs_(i-1))]],...,[[z(xs_i-1)]]及びフラグ[[z(y1)]],...,[[z(yL)]]が入力される。
フラグ計算部3は、計算されたフラグに部分集合ごとのフラグを乗算したフラグを計算する(ステップS3)。
例えば、フラグ計算部3は、各i∈[1,L]について、[[z(xj)]]←[[z(xj)]]×[[z(yi)]](j∈[si-1,si-1])という処理を行う。
第二実施形態の秘密最大値計算装置及び方法によれば、比較の段数は2段となるが、全体の比較回数をΘ(n4/3)回とすることができる。これにより、大きさnの秘匿値の集合から最大値の秘匿値と最大値かどうかのフラグの秘匿値の計算の処理時間を小さくすることができる。
[第三実施形態]
第三実施形態の秘密最大値計算装置及び方法は、秘匿値の集合X={[[x1]],[[x2]],...,[[xn]]}から、予め定められた順序に関して最大の秘匿値[[y]]の計算と、各秘匿値が最大であったかどうかを表すフラグの秘匿値[[z(xi)]]の計算とを比較の段数をk+1段で行う装置及び方法である。
第三実施形態の秘密最大値計算装置及び方法の入力、出力及び処理を表す記法は、以下のように記述することができる。k=1の場合には、第二実施形態の記述と一致する。
入力:X={[[x1]],...,[[xn]]}
出力:[[y]],[[z(x1)]],...,[[z(xn)]]
記法:[[y]],[[z(x1)]],...,[[z(xn)]]←fk([[x1]],...,[[xn]])
第三実施形態の秘密最大値計算装置は、図5に示すように、出力部1、分割部5、秘密最大値計算装置6、秘密最大値計算装置7及びフラグ計算部3を例えば備えている。
秘密最大値計算方法は、秘密最大値計算装置の各構成部が、以下に説明し、図6に示すステップS1からステップS3の処理を行うことにより例えば実現される。
以下、秘密最大値計算装置の各構成部について説明する。
<出力部1>
出力部1には、集合X={[[x1]],[[x2]],...,[[xn]]}が入力される。nは、所定の正の整数である。
出力部1は、n=1である場合には、[[x1]]及び[[1]]をそれぞれ最大の秘匿値[[y]]及びフラグ[[z(x1)]]として出力する(ステップS1)。
n=1でない場合には、以下のステップS5以降の処理が行われる。
<分割部5>
分割部5には、集合X={[[x1]],[[x2]],...,[[xn]]}が入力される。
分割部5は、Xを2個以上の部分集合に分割する(ステップS5)。
得られた2個以上の部分集合は、秘密最大値計算装置6に出力される。
例えば、XをL=┌n^(2k/(2k+1-1)┐個の部分集合X1,...,XLに分割する。┌n^(2k/(2k+1-1)┐は、n^(2k/(2k+1-1)以上の最小の整数である。ここで、(|Xi|≧1(i∈[1,L]),∪i∈[1,L]Xi=X,Xi∩Xj=φ(i≠j)である。例えば、分割部5は、1=s0<s1<・・・<sL=n+1となるようなsi(i∈[0,L])について、Xi={[[xs_(i-1)]],...,[[xs_i-1]]}(i∈[1,L])とする。ここで、x下付きのs_(i-1)は、si-1を意味する。また、Xの下付きのs_i-1は、si-1を意味する。
これにより、m回目の再帰では、Xは要素数が同程度のn^(2k+1-m/(2k+2-m-1)個の部分集合に分割される。
<秘密最大値計算装置6>
秘密最大値計算装置6には、分割部5で得られた2個以上の部分集合が入力される。
秘密最大値計算装置6は、2個以上の部分集合のそれぞれについて処理を行い、各部分集合に対応する最大値の秘匿値及びフラグを計算する(ステップS6)。
秘密最大値計算装置6は、第三実施形態の秘密最大値計算装置である。第三実施形態の秘密最大値計算装置の記法を用いると、秘密最大値計算装置6の処理は、以下のように記述することができる。このように、第三実施形態の秘密最大値計算装置は、再帰的に処理を行う。
[[yi]],[[z(xs_(i-1))]],...,[[z(xs_i-1)]]←fk-1([[xs_(i-1)]],...,[[xs_i-1]])(i∈[1,L])
すなわち、秘密最大値計算装置6は、X=[[xs_(i-1)]],...,[[xs_i-1]]を入力として[[yi]],[[z(xs_(i-1))]],...,[[z(xs_i-1)]]を出力する処理をi∈[1,L]について行う。
計算された各部分集合iに対応する最大値の秘匿値[[yi]]及びフラグ[[z(xs_(i-1))]],...,[[z(xs_i-1)]]は、秘密最大値計算装置7に出力される。
<秘密最大値計算装置7>
秘密最大値計算装置7には、秘密最大値計算装置6で計算された各部分集合iに対応する最大値の秘匿値[[yi]]及びフラグ[[z(xs_(i-1))]],...,[[z(xs_i-1)]]が入力される。
秘密最大値計算装置7は、各部分集合に対応する最大値の集合について処理を行い、最大値[[y]]及び部分集合ごとのフラグを計算する(ステップS7)。
秘密最大値計算装置7は、第一実施形態の秘密最大値計算装置である。第一実施形態の秘密最大値計算装置の記法を用いると、秘密最大値計算装置7の処理は、以下のように記述することができる。
[[y]],[[z(y1)]],...,[[z(yL)]]←f0([[y1]],...,[[yL]])
すなわち、秘密最大値計算装置7は、[[y1]],...,[[yL]]を入力として、[[y]],[[z(y1)]],...,[[z(yL)]]を出力する処理を行う。
計算された部分集合ごとのフラグ[[z(y1)]],...,[[z(yL)]]は、フラグ計算部3に出力される。
<フラグ計算部3>
フラグ計算部3には、秘密最大値計算装置6で計算されたフラグ[[z(xs_(i-1))]],...,[[z(xs_i-1)]]、秘密最大値計算装置7で計算されたフラグ[[z(y1)]],...,[[z(yL)]]が入力される。
フラグ計算部3は、計算されたフラグに部分集合ごとのフラグを乗算したフラグを計算する(ステップS3)。
例えば、フラグ計算部3は、各i∈[1,L]について、[[z(xj)]]←[[z(xj)]]×[[z(yi)]](j∈[si-1,si-1])という処理を行う。
第三実施形態の秘密最大値計算装置及び方法によれば、比較の段数はk+1段となるが、全体の比較回数をΘ(n^(1+1/(2k+1-1)))回とすることができる。これにより、大きさnの秘匿値の集合から最大値の秘匿値と最大値かどうかのフラグの秘匿値の計算の処理時間を小さくすることができる。
[変形例]
以上、本発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、本発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、本発明に含まれることはいうまでもない。
実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
例えば、秘密最大値計算装置の構成部間のデータのやり取りは直接行われてもよいし、図示していない記憶部を介して行われてもよい。
[プログラム、記録媒体]
上記説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。例えば、上述の各種の処理は、図7に示すコンピュータの記録部2020に、実行させるプログラムを読み込ませ、制御部2010、入力部2030、出力部2040などに動作させることで実施できる。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
1 出力部
2 比較部
3 フラグ計算部
4 最大値計算部
5 分割部
6 秘密最大値計算装置
7 秘密最大値計算装置

Claims (6)

  1. 集合X={[[x1]],[[x2]],...,[[xn]]}であるとして、
    n=1である場合には、[[x1]]及び[[1]]をそれぞれ最大の秘匿値[[y]]及びフラグ[[z(x1)]]として出力する出力部と、
    Xの要素の組{[[xi]],[[xj]]}⊂Xのそれぞれについて、所定の順序に関してどちらが大きいのかの比較結果を計算する比較部と、
    各[[xi]]について、前記各[[xi]]に関する全ての比較結果が「大きい」であったかどうかを計算し、その計算された値をフラグ[[z(xi)]]とするフラグ計算部と、
    前記[[z(xi)]]を用いて最大値[[y]]を計算する最大値計算部と、
    を含み、
    xi≦xjである場合には[[1]]を、そうでない場合には[[0]]を出力する関数をLE(xi,xj)として、
    前記比較部は、各(i,j)(i,j∈[1,n],i<j)についてLE(xi,xj)の計算を行い、その計算結果[[ci,j]]を前記比較結果とし、
    a=bである場合には[[1]]を、そうでない場合には[[0]]を出力する関数をEQ([[a]],[[b]])として、
    前記フラグ計算部は、各(i,j)(i,j∈[1,n],i>j)について1-[[cj,i]]の計算を行い、その計算結果を[[ci,j]]とし、各iについて[[z(xi)]]←EQ(Σi≠j[[ci,j]],n-1)の計算を行い、その計算結果をフラグ[[z(xi)]]とする、
    秘密最大値計算装置。
  2. 請求項1の秘密最大値計算装置であって、
    前記最大値計算部は、Σi∈[1,n]([[xi]]×[[z(xi)]])を計算し、その計算結果を最大値[[y]]とする、
    秘密最大値計算装置。
  3. 集合X={[[x1]],[[x2]],...,[[xn]]}であるとして、
    n=1である場合には、[[x1]]及び[[1]]をそれぞれ最大値[[y]]及びフラグ[[z(x1)]]として出力する出力部と、
    Xを2個以上の部分集合に分割する分割部と、
    前記2個以上の部分集合のそれぞれについて処理を行い、各部分集合に対応する最大値の秘匿値及びフラグを計算すると共に、各部分集合に対応する最大値の集合について処理を行い、最大値[[y]]及び部分集合ごとのフラグを計算する請求項1又は2の秘密最大値計算装置と、
    前記計算されたフラグに前記部分集合ごとのフラグを乗算したフラグを計算するフラグ計算部と、
    を含む秘密最大値計算装置。
  4. 入力された秘匿値の集合に含まれる秘匿値の最大値[[y]]及び各秘匿値が最大値であるかを表すフラグを計算する秘密最大値計算装置であって、
    集合X={[[x1]],[[x2]],...,[[xn]]}であるとして、
    n=1である場合には、[[x1]]及び[[1]]をそれぞれ最大の秘匿値[[y]]及びフラグ[[z(x1)]]として出力する出力部と、
    Xを2個以上の部分集合に分割する分割部と、を含み、
    前記秘密最大値計算装置は、前記2個以上の部分集合のそれぞれについて処理を行い、各部分集合に対応する最大値の秘匿値及びフラグを計算し、
    前記秘密最大値計算装置は、
    各部分集合に対応する最大値の集合について処理を行い、最大値[[y]]及び部分集合ごとのフラグを計算する請求項1又は2の秘密最大値計算装置と、
    前記計算されたフラグに前記部分集合ごとのフラグを乗算したフラグを計算するフラグ計算部と、
    を更に含む秘密最大値計算装置。
  5. 集合X={[[x1]],[[x2]],...,[[xn]]}であるとして、
    出力部が、n=1である場合には、[[x1]]及び[[1]]をそれぞれ最大の秘匿値[[y]]及びフラグ[[z(x1)]]として出力する出力ステップと、
    比較部が、Xの要素の組{[[xi]],[[xj]]}⊂Xのそれぞれについて、所定の順序に関してどちらが大きいのかの比較結果を計算する比較ステップと、
    フラグ計算部が、各[[xi]]について、前記各[[xi]]に関する全ての比較結果が「大きい」であったかどうかを計算し、その計算された値をフラグ[[z(xi)]]とするフラグ計算ステップと、
    最大値計算部が、前記[[z(xi)]]を用いて最大値[[y]]を計算する最大値計算ステップと、
    を含み、
    x i ≦x j である場合には[[1]]を、そうでない場合には[[0]]を出力する関数をLE(x i ,x j )として、
    前記比較部は、各(i,j)(i,j∈[1,n],i<j)についてLE(x i ,x j )の計算を行い、その計算結果[[c i,j ]]を前記比較結果とし、
    a=bである場合には[[1]]を、そうでない場合には[[0]]を出力する関数をEQ([[a]],[[b]])として、
    前記フラグ計算部は、各(i,j)(i,j∈[1,n],i>j)について1-[[c j,i ]]の計算を行い、その計算結果を[[c i,j ]]とし、各iについて[[z(x i )]]←EQ(Σ i≠j [[c i,j ]],n-1)の計算を行い、その計算結果をフラグ[[z(x i )]]とする、
    秘密最大値計算方法。
  6. 請求項1又は2の何れかの秘密最大値計算装置の各部としてコンピュータを機能させるためのプログラム。
JP2021570611A 2020-01-17 2020-01-17 秘密最大値計算装置、方法及びプログラム Active JP7359225B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/001545 WO2021144973A1 (ja) 2020-01-17 2020-01-17 秘密最大値計算装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2021144973A1 JPWO2021144973A1 (ja) 2021-07-22
JP7359225B2 true JP7359225B2 (ja) 2023-10-11

Family

ID=76864080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021570611A Active JP7359225B2 (ja) 2020-01-17 2020-01-17 秘密最大値計算装置、方法及びプログラム

Country Status (6)

Country Link
US (1) US20230033922A1 (ja)
EP (1) EP4092655A4 (ja)
JP (1) JP7359225B2 (ja)
CN (1) CN114945964A (ja)
AU (1) AU2020423665B2 (ja)
WO (1) WO2021144973A1 (ja)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Satsuya Ohata, Koji Nuida,Communication-Efficient (Client-Aided) Secure Two-Party Protocols and Its Application,arXiv.org[online],Cornell University,2020年01月04日,p.1-p.30,https://arxiv.org/pdf/1907.03415.pdf
大畑 幸矢,ラウンド効率のよい2者間秘匿計算とその秘匿畳み込みニューラルネットワークへの応用,コンピュータセキュリティシンポジウム2018論文集,日本,一般社団法人情報処理学会,2018年10月15日,Vol.2018, No.2,pp.615-622
西田 直央 ほか,Binarized Neural Networksを用いた秘匿予測プロトコル,コンピュータセキュリティシンポジウム2017論文集,日本,一般社団法人情報処理学会,2017年10月16日,p. 592-599

Also Published As

Publication number Publication date
CN114945964A (zh) 2022-08-26
EP4092655A1 (en) 2022-11-23
US20230033922A1 (en) 2023-02-02
EP4092655A4 (en) 2023-10-11
WO2021144973A1 (ja) 2021-07-22
AU2020423665B2 (en) 2023-08-17
AU2020423665A1 (en) 2022-07-14
JPWO2021144973A1 (ja) 2021-07-22

Similar Documents

Publication Publication Date Title
JP7067632B2 (ja) 秘密シグモイド関数計算システム、秘密ロジスティック回帰計算システム、秘密シグモイド関数計算装置、秘密ロジスティック回帰計算装置、秘密シグモイド関数計算方法、秘密ロジスティック回帰計算方法、プログラム
JP6534778B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
Paul et al. Privacy-preserving collective learning with homomorphic encryption
JP7159717B2 (ja) 秘密統計処理システム、方法、統計処理装置及びプログラム
US20220413807A1 (en) Secure random number generation system, secure computation apparatus, secure random number generation method, and program
JP2020519968A (ja) ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム
WO2018008547A1 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
JP7060115B2 (ja) 秘密配列アクセス装置、秘密配列アクセス方法、およびプログラム
JP7359225B2 (ja) 秘密最大値計算装置、方法及びプログラム
WO2019225531A1 (ja) 秘密一括近似システム、秘密計算装置、秘密一括近似方法、およびプログラム
JP6808100B1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
KR20210067961A (ko) 완전동형암호 기법으로 암호화된 데이터의 연산을 위한 장치 및 방법
JP7322976B2 (ja) 秘密最大値計算装置、方法及びプログラム
Hamoudi et al. The NISQ Complexity of Collision Finding
WO2018008543A1 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
JP7173328B2 (ja) 秘密除算システム、秘密計算装置、秘密除算方法、およびプログラム
WO2023233569A1 (ja) 秘密検索システム、秘密検索装置、秘密検索方法、プログラム
WO2023281693A1 (ja) 秘密計算システム、装置、方法及びプログラム
WO2023281694A1 (ja) 秘密計算システム、装置、方法及びプログラム
WO2024018504A1 (ja) クライアント装置、秘密テーブル管理システム、レコード登録要求生成方法、レコード登録方法、処理要求実行方法、プログラム
Chatterjee et al. Translating algorithms to handle fully homomorphic encrypted data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230815

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230911

R150 Certificate of patent or registration of utility model

Ref document number: 7359225

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150