WO2021149103A1 - 秘密計算装置、秘密計算方法、およびプログラム - Google Patents

秘密計算装置、秘密計算方法、およびプログラム Download PDF

Info

Publication number
WO2021149103A1
WO2021149103A1 PCT/JP2020/001680 JP2020001680W WO2021149103A1 WO 2021149103 A1 WO2021149103 A1 WO 2021149103A1 JP 2020001680 W JP2020001680 W JP 2020001680W WO 2021149103 A1 WO2021149103 A1 WO 2021149103A1
Authority
WO
WIPO (PCT)
Prior art keywords
secret
value
secure computing
secret sharing
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.)
Ceased
Application number
PCT/JP2020/001680
Other languages
English (en)
French (fr)
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.)
NTT Inc
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
Priority to JP2021572125A priority Critical patent/JP7405157B2/ja
Priority to EP20915267.7A priority patent/EP4095826A4/en
Priority to US17/792,147 priority patent/US12192339B2/en
Priority to CN202080093085.6A priority patent/CN114981858B/zh
Priority to AU2020424576A priority patent/AU2020424576C1/en
Priority to PCT/JP2020/001680 priority patent/WO2021149103A1/ja
Publication of WO2021149103A1 publication Critical patent/WO2021149103A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

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
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • 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

Definitions

  • the present invention relates to secret calculation in secret calculation.
  • Non-Patent Document 1 presents calculation methods such as reciprocal, divisor concealment division, square root and its reciprocal, and exponent.
  • overflow can be suppressed while maintaining high accuracy.
  • Secret sharing value [w '] is not limited to the process for obtaining the r, for example, secure computing unit 22 to obtain a public value 2 sigma / gamma, public value 2 sigma / gamma and secret variance [w' /
  • the secret sharing value [w'] r may be obtained by the secret calculation [w'/ ⁇ ] / (2 ⁇ / ⁇ ) of the public value division using [ ⁇ ].
  • is a positive integer representing the amount of right shift.
  • Secret sharing value [z '] is not limited to the process for obtaining the r, for example, secure computing unit 32 to obtain a public value 2 sigma / gamma, public value 2 sigma / gamma and secret variance [z' /
  • the secret sharing value [z'] r may be obtained by the secret calculation [z'/ ⁇ ] / (2 ⁇ / ⁇ ) of the public value division using [ ⁇ ]. As a result, the multiplication of ⁇ and the secret calculation of the right shift can be executed at the same time, so that the processing cost can be reduced.
  • the output unit 10c is a LAN card or the like controlled by the CPU 10a that has read a predetermined program.
  • the RAM 10d is a SRAM (Static Random Access Memory), a DRAM (Dynamic Random Access Memory), or the like, and has a program area 10da in which a predetermined program is stored and a data area 10db in which various data are stored.
  • the auxiliary storage device 10f is, for example, a hard disk, MO (Magneto-Optical disc), a semiconductor memory, or the like, and has a program area 10fa for storing a predetermined program and a data area 10fb for storing various data. There is.
  • a computer may read the program directly from a portable recording medium and execute processing according to the program, and further, the program is transferred from the server computer to this computer. Each time, the processing according to the received program may be executed sequentially.
  • the above processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition without transferring the program from the server computer to this computer. May be.
  • the program in this embodiment includes information to be used for processing by a computer and equivalent to the program (data that is not a direct command to the computer but has a property of defining the processing of the computer, etc.).

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)
  • Hardware Redundancy (AREA)
  • Devices For Executing Special Programs (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)

Abstract

実数xの秘密分散値[x]を用いた秘密計算によってft(x)-f't(x)の秘密分散値[ft(x)-f't(x)]を得、秘密分散値[ft(x)-f't(x)]を用いた秘密計算によってft(x)-f't(x)を所定ビット数だけ右シフトした(ft(x)-f't(x))rの秘密分散値[ft(x)-f't(x)]rを得る。ただし、[μ]がμの秘密分散値、nが1以上の整数、t=0,…,n-1、u=1,…,n-1、ft(x)が実数xに対する関数、f't(x)は関数ft(x)の近似秘密計算関数f'0(x)の秘密分散値[f'0(x)]が[f'0(x)]=c0,0+c0,1[x]、近似関数f'u(x)の秘密分散値[f'u(x)]が[f'u(x)]=cu,0+cu,1[x]+cu,2[f0(x)]+…+cu,u+1[fu-1(x)]、ct,0は公開値、ct,1,…,ct,n+1は係数である。

Description

秘密計算装置、秘密計算方法、およびプログラム
 本発明は、秘密計算上の秘密計算に関する。
 近年、秘密計算による高度な統計や機械学習の研究が盛んになってきている。しかしこれらの演算のほとんどは秘密計算で得意な加減乗算を超える、逆数、平方根、指数、対数などの初等関数群の計算を含んでいる。これらは秘密計算の応用研究を花開かせる観点で極めて大きな障害である。これに対し、非特許文献1では、逆数、除数秘匿除算、平方根とその逆数,指数などの計算方法を提示している。
 しかしながら、秘密計算によって右シフトや公開値による除算を行う場合に、オーバーフローによって正しく計算ができなくなってしまう場合がある。一方、オーバーフローを防ぐために右シフトを行って小数領域へのビット割り当てを減らして整数領域へのビット割り当てを増やしたのでは精度が低下する。
 本発明はこのような点に鑑みてなされたものであり、高い精度を保ちつつ、オーバーフローを抑制する秘密計算技術を提供する。
 xが実数であり、[μ]がμの秘密分散値であり、nが1以上の整数であり、t=0,…,n-1であり、u=1,…,n-1であり、ft(x)が前記実数xに対する関数であり、f't(x)は関数ft(x)の近似関数であり、近似関数f'0(x)の秘密分散値[f'0(x)]が[f'0(x)]=c0,0+c0,1[x]であり、近似関数f'u(x)の秘密分散値[f'u(x)]が[f'u(x)]=cu,0+cu,1[x]+cu,2[f0(x)]+…+cu,u+1[fu-1(x)]であり、ct,0は公開値であり、ct,1,…,ct,n+1は係数であるとする。本発明では、実数xの秘密分散値[x]を用いた秘密計算によってft(x)-f't(x)の秘密分散値[ft(x)-f't(x)]を得、秘密分散値[ft(x)-f't(x)]を用いた秘密計算によってft(x)-f't(x)を所定ビット数だけ右シフトした(ft(x)-f't(x))rの秘密分散値[ft(x)-f't(x)]rを得る。
 本発明では、高い精度を保ちつつ、オーバーフローを抑制することができる。
図1は実施形態の秘密計算装置を例示したブロックである。 図2は第1実施形態の処理を説明するためのフロー図である。 図3は第2実施形態の処理を説明するためのフロー図である。 図4は第3実施形態の処理を説明するためのフロー図である。 図5は各初等関数に関する計算済みのパラメータを例示した表である。 図6はハードウェア構成を説明するためのブロック図である。
 以下、図面を参照して本発明の実施の形態を説明する。
 近年、秘密計算による高度な統計や機械学習の研究が盛んになってきている。しかしこれらの演算のほとんどは秘密計算の得意な加減乗算を超える、逆数、平方根、指数、対数などの初等関数計算を含んでいる。初等関数等の基礎的な関数の関数近似法にはTaylor展開などがある。Taylor展開などは多項式であり、任意の関数を多項式で近似することで、秘密計算の得意な加減乗算を用いて当該関数の近似計算を行うことができる。
 以下の実施形態では、任意の関数を多項式関数ft(x)で近似し、さらに右シフト前の関数ft(x)と当該関数ft(x)の近似関数f'u(x)との差分ft(x)-f't(x)の秘密分散値[ft(x)-f't(x)]を計算し、ft(x)-f't(x)を右シフトした(ft(x)-f't(x))rの秘密分散値[ft(x)-f't(x)]rを得、秘密分散値[ft(x)-f't(x)]rと秘密分散値[f't(x)]の秘密計算によってft(x)-f't(x)にf't(x)を加算した関数ft(x)の秘密分散値[ft(x)]を得る。ただし、xが実数であり、[μ]がμの秘密分散値であり、nが1以上の整数(例えば、nは2以上の整数)であり、t=0,…,n-1であり、u=1,…,n-1であり、ft(x)が実数xに対する関数であり、f't(x)は関数ft(x)の近似関数であり、近似関数f'0(x)の秘密分散値[f'0(x)]が[f'0(x)]=c0,0+c0,1[x]であり、近似関数f'u(x)の秘密分散値[f'u(x)]が[f'u(x)]=cu,0+cu,1[x]+cu,2[f0(x)]+…+[fu-1(x)]であり、ct,0は公開値であり、ct,1,…,ct,n+1は係数である。ただし、ct,1,…,ct,n+1は有効ビット数の小さな値であり、ct,1,…,ct,n+1が乗じられても桁あふれによってシフトが必要になるようなことがない値である。ft(x)-f't(x)は正である。また環上の整数に公開の小数点位置を定めることで固定小数点の実数と見なすことができる。実施形態ではこのようにして環上で表した固定小数点の実数を単に実数と表記する。秘密分散方式に限定はなく、例えば、加法的秘密分散方式やシャミア秘密分散方式などを例示できる。[μ]の一例は剰余環上の要素μを線形秘密分散した秘密分散値(シェア)である。
 ここでft(x)-f't(x)の大きさはft(x)の大きさよりも小さいため、秘密分散値[ft(x)-f't(x)]のオーバーフローを抑制することができる。また右シフト前の関数ft(x)と当該関数ft(x)の近似関数f'u(x)との差分ft(x)-f't(x)の秘密分散値[ft(x)-f't(x)]を計算するため、高い精度を保つことができる。オーバーフローは秘密計算を実装したプロセッサの性能に基づく問題であり、本方式はこのハードウェア上の制約に基づく問題を解決するための手法を提供する。このように、本方式は純粋数学上の問題を解決するものではなく、ハードウェア実装上の問題を解決するものであって技術的特徴を有するものである。例えば、秘密分散値[ft(x)]を計算するとオーバーフローしてしまうが秘密分散値[ft(x)-f't(x)]の計算ではオーバーフローしないプロセッサではその技術的特徴は顕著である。
 以下に各実施形態を説明する。
 [第1実施形態]
 図1に例示するように、第1実施形態の秘密計算装置1は、秘密計算部11,12,13、および制御部19を有する。本実施形態の秘密計算装置1は、実数xの秘密分散値[x]∈[L,R)を入力とし、秘密計算を行って目的の関数fn-1(x)の秘密分散値[fn-1(x)]を出力する。なお、L,RはL<Rを満たす実数であり、[L,R)はL以上R未満の左閉右開区間を表す。関数fn-1(x)の例は初等関数を近似する多項式である。fn-1(x)を得る過程で表れる関数をf0(x),…,fn-2(x)と表記する。以下、図2を用いて詳細に説明する。
 図2に例示するように、まず秘密計算装置1の秘密計算部11に秘密分散値[x]が入力される(ステップS10)。次に制御部19はt=0に初期化する(ステップS19a)。
 秘密計算部11は、少なくとも秘密分散値[x]を用い、積和の秘密計算によって関数ft(x)と当該関数ft(x)の近似関数f'u(x)との差分ft(x)-f't(x)の秘密分散値[ft(x)-f't(x)]を得て出力する。ただし、[f'0(x)]=c0,0+c0,1[x]であり、u=1,…,n-1について[f'u(x)]=cu,0+cu,1[x]+cu,2[f0(x)]+…+[fu-1(x)]である。例えば、t=0のときには、秘密計算部11は秘密分散値[x]と関数f0(x)とc0,0,c0,1を用いて秘密分散値[f0(x)-f'0(x)]を得る。t=1,…,n-1のときには、秘密計算部11は秘密分散値[x]と[f0(x)],…,[ft(x)]とc0,0,c0,1,…,c0,t+1と用いて秘密分散値[ft(x)-f't(x)]を得る(ステップS11)。
 秘密分散値[ft(x)-f't(x)]は秘密計算部12に入力される。秘密計算部12は、秘密分散値[ft(x)-f't(x)]を用いた秘密計算によってft(x)-f't(x)を所定ビット数だけ右シフトした(ft(x)-f't(x))rの秘密分散値[ft(x)-f't(x)]rを得て出力する。右シフトの秘密計算は除算の秘密演算によって実現でできる。これによってft(x)-f't(x)の小数点位置を所定の桁まで下げる。この小数点位置は予め定められている(ステップS12)。
 秘密分散値[ft(x)-f't(x)]rは秘密計算部13に入力される。秘密計算部13は、秘密分散値[ft(x)-f't(x)]rと秘密分散値[f't(x)]を用いた秘密計算によって関数ft(x)の秘密分散値[ft(x)]を得て出力する。すなわち、秘密計算部13は、秘密分散値[ft(x)-f't(x)]rと秘密分散値[f't(x)]を用いた加算の秘密計算によって、ft(x)-f't(x)+f't(x)=ft(x)の秘密分散値[ft(x)]を得る(ステップS13)。
 制御部19はt=n-1であるかを判定する(ステップS19b)。t=n-1でなければ、制御部19はt+1を新たなtとして処理をステップS11に戻す(ステップS19c)。一方、t=n-1であれば、秘密計算部13は秘密分散値[fn-1(x)]を出力する(ステップS19d)。すなわち、秘密計算装置1は、t=0,…,n-2について、秘密計算部11~13のステップS11~S13の処理を実行するたびに、t+1を新たなtとして、ステップS11~S13の処理を再び実行し、秘密分散値[fn-1(x)]を得る。
 [第2実施形態]
 図1に例示するように、第2実施形態の秘密計算装置2は、秘密計算部21,22,23、および制御部19を有する。第2実施形態の秘密計算装置2は、実数xの秘密分散値[x]∈[L,R)を入力とし、秘密計算を行って目的の関数fn-1(x)の秘密分散値[fn-1(x)]を出力する。第2実施形態では、n=3であり、a, b, c, d, f, g, h, i, j, k, s, m, n, o, p, q, α,β,γ,δ,ζが実数であり、f0(x)=y=δx2+axであり、f1(x)=z=y(ζy+b)+cxであり、f2(x)=w=γ(z(αz+d)+y(βx+f)+gx)であり、f'0(x)=ix+jであり、f'1(x)=ky+sx+mであり、f'2(x)=nz+oy+px+qである例を説明する。なお、近時関数f'0(x)=ix+j,f'1(x)=ky+sx+m,f'2(x)=nz+oy+px+qの設定方法および具体例については後述する。
 図3に例示するように、まず秘密計算装置2の秘密計算部21に秘密分散値[x]が入力される(ステップS10)。
 秘密計算部21は、秘密分散値[x]を用いた積和演算の秘密計算によって秘密分散値[f0(x)-f'0(x)]=[y’]=[x(δx+a-i)-j]を得て出力する(ステップS21a)。
 秘密分散値[y’]は秘密計算部22に入力される。秘密計算部22は、秘密分散値[y’]を用いた秘密計算によってy’を所定ビット数だけ右シフトしたy’rの秘密分散値[y’]rを得て出力する(ステップS22a)。
 秘密分散値[y’]rは秘密計算部23に入力される。秘密計算部23は、秘密分散値[y’]rと秘密分散値[f'0(x)]=[ix+j]を用いた秘密計算によって秘密分散値[y]=[y’+(ix+j)]を得て出力する(ステップS23a)。
 秘密分散値[y]は秘密計算部21に入力される。秘密計算部21は、秘密分散値[x]および秘密分散値[y]を用いた積和演算の秘密計算によって秘密分散値[f1(x)-f'1(x)]=[z’]=[y(ζy+b-k)+(c-s)x-m]を得て出力する(ステップS21b)。
 秘密分散値[z’]は秘密計算部22に入力される。秘密計算部22は、秘密分散値[z’]を用いた秘密計算によってz’を所定ビット数だけ右シフトしたz’rの秘密分散値[z’]rを得て出力する(ステップS22b)。
 秘密分散値[z’]rは秘密計算部23に入力される。秘密計算部23は、秘密分散値[z’]rと秘密分散値[f'1(x)]=[ky+sx+m]を用いた秘密計算によって秘密分散値[z]=[z’+(ky+sx+m)]を得て出力する(ステップS23b)。
 秘密分散値[z]は秘密計算部21に入力される。秘密計算部21は、秘密分散値[x]、秘密分散値[y]、および秘密分散値[z]を用いた積和演算の秘密計算によって秘密分散値[w’/γ]=[z(αz+d-n/γ)+(βx+f-o/γ)y+(g-p)x+(h-q)/γ]を得て出力する(ステップS21c)。
 秘密分散値[w’/γ]は秘密計算部22に入力される。秘密計算部22は、秘密分散値[w’/γ]を用いた秘密計算によってw’/γにγを乗算して得られるw’を所定ビット数だけ右シフトしたw’rの秘密分散値[w’]rを得て出力する(ステップS22c)。秘密分散値[w’]rを得るための処理に限定は無いが、例えば、秘密計算部22は、公開値2σ/γを得、公開値2σ/γと秘密分散値[w’/γ]を用いた公開値除算の秘密計算[w’/γ]/(2σ/γ)によって秘密分散値[w’]rを得てもよい。ただし、σは右シフト量を表す正整数である。これによってγの乗算および右シフトの秘密計算を同時に実行できるため、処理コストを低減できる。
 秘密分散値[w’]rは秘密計算部23に入力される。秘密計算部23は、秘密分散値[w’]rと秘密分散値[f'2(x)]=[nz+oy+px+q]を用いた秘密計算によって秘密分散値[w]=[w’+(nz+oy+px+q)]を得て出力する。
 <近似関数の探索方法の例示>
 以下に右シフト前の近似関数の探索方法を例示する。
 入力:区間[L,R)、関数y=δx2+ax,z=y(ζy+b)+cx,w=γ(z(αz+d)+y(βx+f)+gx)
 設定済みパラメータ:各離散係数i, k, s, n, o, pの探索最小値imin, kmin, smin, nmin, omin, pmin、各離散係数i, k, s, n, o, pの探索最大値imax, kmax, smax, nmax, omin, omax, pmin, pmax
 出力: yの近似関数ix+j、y-(ix+j)の最大値My、zの近似関数ky+sx+m、z-(ky+sx+m)の最大値Mz、wの近似関数nz+oy+px+q、w-(nz+oy+px+q)の最大値Mw
1: for i=imin to imax do
2: y-ixの区間[L,R)における最大値と最小値の差を計算する。
3: y-ixの区間[L,R)における最大値と最小値の差が最も小さいiと、そのときの差y-ixの最小値j, 差分My((y-ixの最大値)-(y-ixの最小値)、言い換えるとy-ixの関数値の動く幅)を出力する。
4: for each (k, s)∈{kmin,...,kmax}×{smin,...,smax}do
5: z-(ky+sx)の区間[L,R)における最大値と最小値の差を計算する。
6: z-(ky+sx)の区間[L,R)における最大値と最小値の差が最も小さい(k, s)とそのとき差z-(ky+sx)の最小値m, 差分Mz((z-(ky+sx)の最大値)-(z-(ky+sx)の最小値)、言い換えるとz-(ky+sx)の関数値の動く幅)を出力する。
7: for each (n, o, p) ∈ {nmin,...,nmax}×{omin,...,omax}×{pmin,...,pmax} do
8: z-(nz+oy+px)の区間[L,R)における最大値と最小値の差を計算する。
9: z-(nz+oy+px)の区間[L,R)における最大値と最小値の差が最も小さい(n, o, p)とそのとき差z-(nz+oy+px)の最小値q,差分Mw((z-(nz+oy+px)の最大値)-(z-(nz+oy+px)の最小値)、言い換えるとz-(nz+oy+px)の関数値の動く幅)を出力する。
 [第3実施形態]
 第3実施形態に例示するように、第3実施形態の秘密計算装置3は、秘密計算部31,32,33、および制御部19を有する。第3実施形態の秘密計算装置3は、実数xの秘密分散値[x]∈[L,R)を入力とし、秘密計算を行って目的の関数fn-1(x)の秘密分散値[fn-1(x)]を出力する。第3実施形態では、n=2であり、a, b, c,γ,δ,i, j, k, s, mが実数であり、f0(x)=y=δx2+axであり、f1(x)=z=γ(y(δy+b)+cx)であり、f'0(x)=ix+jであり、f'1(x)=ky+sx+mである例を説明する。
 図4に例示するように、まず秘密計算装置3の秘密計算部31に秘密分散値[x]が入力される(ステップS10)。
 秘密計算部31は、秘密分散値[x]を用いた積和演算の秘密計算によって秘密分散値[f0(x)-f'0(x)]=[y’]=[x(δx+a-i)-j]を得て出力する(ステップS21a)。
 秘密分散値[y’]は秘密計算部32に入力される。秘密計算部32は、秘密分散値[y’]を用いた秘密計算によってy’を所定ビット数だけ右シフトしたy’rの秘密分散値[y’]rを得て出力する(ステップS22a)。
 秘密分散値[y’]rは秘密計算部33に入力される。秘密計算部33は、秘密分散値[y’]rと秘密分散値[f'0(x)]=[ix+j]を用いた秘密計算によって秘密分散値[y]=[y’+(ix+j)]を得て出力する(ステップS23a)。
 秘密分散値[y]は秘密計算部31に入力される。秘密計算部31は、秘密分散値[x]および秘密分散値[y]を用いた積和演算の秘密計算によって秘密分散値[z’/γ]=[y(ζy+b-k/γ)+(c-s/γ)x-m/γ]を得て出力する(ステップS31c)。
 秘密分散値[z’/γ]は秘密計算部32に入力される。秘密計算部32は、秘密分散値[z’/γ]を用いた秘密計算によってz’/γにγを乗算して得られるz’を所定ビット数だけ右シフトしたz’rの秘密分散値[z’]rを得て出力する(ステップS32b)。秘密分散値[z’]rを得るための処理に限定は無いが、例えば、秘密計算部32は、公開値2σ/γを得、公開値2σ/γと秘密分散値[z’/γ]を用いた公開値除算の秘密計算[z’/γ]/(2σ/γ)によって秘密分散値[z’]rを得てもよい。これによってγの乗算および右シフトの秘密計算を同時に実行できるため、処理コストを低減できる。
 秘密分散値[z’]rは秘密計算部33に入力される。秘密計算部33は、秘密分散値[z’]rと秘密分散値[f'1(x)]=[ky+sx+m]を用いた秘密計算によって秘密分散値[z]=[z’+(ky+sx+m)]を得て出力する(ステップS33b)。
 [各初等関数に関する計算済みのパラメータの例]
 図5に関数fn-1(x)が初等関数である逆数関数、平方根関数、平方根の逆数関数、指数関数、対数関数である場合の計算済みのパラメータを例示する。なお、ex,ey,ezはそれぞれx,y,zの小数点位置を示す。また、e'x,e'y,e'zはそれぞれ右シフト前のx',y',z'の小数点位置を示す。これらの小数点位置は、下位ビットから数えた小数点位置のビット位置を表す。このビット位置を表す値は0から始まり、下位ビットから数えてe1ビット目が1を表すときに、小数点位置がe1であると表記する。
 [ハードウェア構成]
 各実施形態における秘密計算装置1,2,3は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)やRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される装置である。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、単独で処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
 図6は、各実施形態における秘密計算装置1,2,3のハードウェア構成を例示したブロック図である。図6に例示するように、この例の秘密計算装置1,2,3は、CPU(Central Processing Unit)10a、出力部10b、出力部10c、RAM(Random Access Memory)10d、ROM(Read Only Memory)10e、補助記憶装置10f及びバス10gを有している。この例のCPU10aは、制御部10aa、演算部10ab及びレジスタ10acを有し、レジスタ10acに読み込まれた各種プログラムに従って様々な演算処理を実行する。また、出力部10bは、データが出力される出力端子、ディスプレイ等である。また、出力部10cは、所定のプログラムを読み込んだCPU10aによって制御されるLANカード等である。また、RAM10dは、SRAM (Static Random Access Memory)、DRAM (Dynamic Random Access Memory)等であり、所定のプログラムが格納されるプログラム領域10da及び各種データが格納されるデータ領域10dbを有している。また、補助記憶装置10fは、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、所定のプログラムが格納されるプログラム領域10fa及び各種データが格納されるデータ領域10fbを有している。また、バス10gは、CPU10a、出力部10b、出力部10c、RAM10d、ROM10e及び補助記憶装置10fを、情報のやり取りが可能なように接続する。CPU10aは、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置10fのプログラム領域10faに格納されているプログラムをRAM10dのプログラム領域10daに書き込む。同様にCPU10aは、補助記憶装置10fのデータ領域10fbに格納されている各種データを、RAM10dのデータ領域10dbに書き込む。そして、このプログラムやデータが書き込まれたRAM10d上のアドレスがCPU10aのレジスタ10acに格納される。CPU10aの制御部10abは、レジスタ10acに格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM10d上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部10abに順次実行させ、その演算結果をレジスタ10acに格納していく。このような構成により、秘密計算装置1,2,3の機能構成が実現される。
 上述のプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
 このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。上述のように、このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
 各実施形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
 <その他の変形例等>
 なお、本発明は上述の実施の形態に限定されるものではない。例えば、実施形態の秘密計算装置1,2,3は、実数xの秘密分散値[x]を用いた秘密計算によってft(x)-f't(x)の秘密分散値[ft(x)-f't(x)]を得、秘密分散値[ft(x)-f't(x)]を用いた秘密計算によってft(x)-f't(x)を所定ビット数だけ右シフトした(ft(x)-f't(x))rの秘密分散値[ft(x)-f't(x)]rを得、秘密分散値[ft(x)-f't(x)]rと秘密分散値[f't(x)]を用いた秘密計算によって関数ft(x)の秘密分散値[ft(x)]を得ていた。しかしながら、秘密分散値[ft(x)]を得る前に秘密分散値[ft(x)-f't(x)]rが別の秘密計算に用いられてもよい。
 上記の実施形態では、秘密計算部11が秘密分散値[x]を用いた積和演算の秘密計算によって秘密分散値[ft(x)-f't(x)]を得ていたが、積和演算の秘密計算以外の秘密計算によって秘密分散値[ft(x)-f't(x)]を得てもよい。
 また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
 本発明は、例えば、データを秘匿化しつつ秘密計算で行う機械学習やデータマイニングでの逆数関数、平方根関数、指数関数、対数関数などの初等関数の計算に利用できる。
1,2,3 秘密計算装置
11,21,31,12,22,32,13,23,33 秘密計算部

Claims (12)

  1.  xが実数であり、[μ]がμの秘密分散値であり、nが1以上の整数であり、t=0,…,n-1であり、u=1,…,n-1であり、ft(x)が前記実数xに対する関数であり、f't(x)は前記関数ft(x)の近似関数であり、近似関数f'0(x)の秘密分散値[f'0(x)]が[f'0(x)]=c0,0+c0,1[x]であり、近似関数f'u(x)の秘密分散値[f'u(x)]が[f'u(x)]=cu,0+cu,1[x]+cu,2[f0(x)]+…+cu,u+1[fu-1(x)]であり、ct,0は公開値であり、ct,1,…,ct,n+1は係数であり、
     前記実数xの秘密分散値[x]を用いた秘密計算によってft(x)-f't(x)の秘密分散値[ft(x)-f't(x)]を得る第1秘密計算部と、
     前記秘密分散値[ft(x)-f't(x)]を用いた秘密計算によってft(x)-f't(x)を所定ビット数だけ右シフトした(ft(x)-f't(x))rの秘密分散値[ft(x)-f't(x)]rを得る第2秘密計算部と、
    を有する秘密計算装置。
  2.  請求項1の秘密計算装置であって、
     前記秘密分散値[ft(x)-f't(x)]rと前記秘密分散値[f't(x)]を用いた秘密計算によって前記関数ft(x)の秘密分散値[ft(x)]を得る第3秘密計算部をさらに有する秘密計算装置。
  3.  請求項1または2の秘密計算装置であって、
     前記第1秘密計算部は、前記秘密分散値[x]を用いた積和演算の秘密計算によって前記秘密分散値[ft(x)-f't(x)]を得る秘密計算装置。
  4.  請求項2または3の秘密計算装置であって、
     nが2以上の整数であり、
     t=0,…,n-2について、前記第1秘密計算部と前記第2秘密計算部と前記第3秘密計算部の処理を実行するたびに、t+1を新たなtとして、前記第1秘密計算部と前記第2秘密計算部と前記第3秘密計算部の処理を再び実行し、秘密分散値[fn-1(x)]を得る秘密計算装置。
  5.  請求項2から4の何れかの秘密計算装置であって、
     n=3であり、
     a, b, c, d, f, g, h, i, j, k, s, m, n, o, p, q, α,β,γ,δ,ζが実数であり、
     f0(x)=y=δx2+axであり、
     f1(x)=z=y(ζy+b)+cxであり、
     f2(x)=w=γ(z(αz+d)+y(βx+f)+gx)であり、
     f'0(x)=ix+jであり、
     f'1(x)=ky+sx+mであり、
     f'2(x)=nz+oy+px+qである、秘密計算装置。
  6.  請求項5の秘密計算装置であって、
     前記第1秘密計算部は、前記秘密分散値[x]を用いた積和演算の秘密計算によって秘密分散値[f0(x)-f'0(x)]=[y’]=[x(δx+a-i)-j]を得、
     前記第2秘密計算部は、前記秘密分散値[y’]を用いた秘密計算によってy’を所定ビット数だけ右シフトしたy’rの秘密分散値[y’]rを得、
     前記第3秘密計算部は、前記秘密分散値[y’]rと前記秘密分散値[f'0(x)]=[ix+j]を用いた秘密計算によって秘密分散値[y]=[y’+(ix+j)]を得、
     前記第1秘密計算部は、前記秘密分散値[x]および前記秘密分散値[y]を用いた積和演算の秘密計算によって秘密分散値[f1(x)-f'1(x)]=[z’]=[y(ζy+b-k)+(c-s)x-m]を得、
     前記第2秘密計算部は、前記秘密分散値[z’]を用いた秘密計算によってz’を所定ビット数だけ右シフトしたz’rの秘密分散値[z’]rを得、
     前記第3秘密計算部は、前記秘密分散値[z’]rと前記秘密分散値[f'1(x)]=[ky+sx+m]を用いた秘密計算によって秘密分散値[y]=[z’+(ky+sx+m)]を得、
     前記第1秘密計算部は、前記秘密分散値[x]、前記秘密分散値[y]、および前記秘密分散値[z]を用いた積和演算の秘密計算によって秘密分散値[w’/γ]=[z(αz+d-n/γ)+(βx+f-o/γ)y+(g-p)x+(h-q)/γ]を得、
     前記第2秘密計算部は、前記秘密分散値[w’/γ]を用いた秘密計算によってw’/γにγを乗算して得られるw’を所定ビット数だけ右シフトしたw’rの秘密分散値[w’]rを得、
     前記第3秘密計算部は、前記秘密分散値[w’]rと前記秘密分散値[f'2(x)]=[nz+oy+px+q]を用いた秘密計算によって秘密分散値[w]=[w’+(nz+oy+px+q)]を得る秘密計算装置。
  7.  請求項6の秘密計算装置であって、
     σが正整数であり、
     前記第2秘密計算部は、公開値2σ/γを得、前記公開値2σ/γと前記秘密分散値[w’/γ]を用いた公開値除算の秘密計算[w’/γ]/(2σ/γ)によって前記秘密分散値[w’]rを得る秘密計算装置。
  8.  請求項2から4の何れかの秘密計算装置であって、
     n=2であり、
     a, b, c,γ,δ,i, j, k, s, mが実数であり、
     f0(x)=y=δx2+axであり、
     f1(x)=z=γ(y(δy+b)+cx)であり、
     f'0(x)=ix+jであり、
     f'1(x)=ky+sx+mである、秘密計算装置。
  9.  請求項8の秘密計算装置であって、
     前記第1秘密計算部は、前記秘密分散値[x]を用いた積和演算の秘密計算によって秘密分散値[f0(x)-f'0(x)]=[y’]=[x(δx+a-i)-j]を得、
     前記第2秘密計算部は、前記秘密分散値[y’]を用いた秘密計算によってy’を所定ビット数だけ右シフトしたy’rの秘密分散値[y’]rを得、
     前記第3秘密計算部は、前記秘密分散値[y’]rと前記秘密分散値[f'0(x)]=[ix+j]を用いた秘密計算によって秘密分散値[y]=[y’+(ix+j)]を得、
     前記第1秘密計算部は、前記秘密分散値[x]と前記秘密分散値[y]を用いた積和演算の秘密計算によって秘密分散値[z’/γ]=[y(ζy+b-k/γ)+(c-s/γ)x-m/γ]を得、
     前記第2秘密計算部は、前記秘密分散値[z’/γ]を用いた秘密計算によってz’/γにγを乗算して得られるz’を所定ビット数だけ右シフトしたz’rの秘密分散値[z’]rを得、
     前記第3秘密計算部は、前記秘密分散値[z’]rと前記秘密分散値[f'1(x)]=[ky+sx+m]を用いた秘密計算によって秘密分散値[z]=[z’+(ky+sx+m)]を得る、秘密計算装置。
  10.  請求項9の秘密計算装置であって、
     σが正整数であり、
     前記第2秘密計算部は、公開値2σ/γを得、前記公開値2σ/γと前記秘密分散値[z’/γ]を用いた公開値除算の秘密計算[z’/γ]/(2σ/γ)によって前記秘密分散値[z’]rを得る秘密計算装置。
  11.  xが実数であり、[a]がaの秘密分散値であり、nが1以上の整数であり、t=0,…,n-1であり、u=1,…,n-1であり、Ft(x)が前記実数xに対する関数であり、f't(x)は前記関数ft(x)の近似関数であり、近似関数f'0(x)の秘密分散値[f'0(x)]が[f'0(x)]=c0,0+c0,1[x]であり、近似関数f'u(x)の秘密分散値[f'u(x)]が[f'u(x)]=cu,0+cu,1[x]+cu,2[f0(x)]+…+cu,u+1[fu-1(x)]であり、ct,0は公開値であり、ct,1,…,ct,n+1は係数であり、
     第1秘密計算部で、前記実数xの秘密分散値[x]を用いた秘密計算によってft(x)-f't(x)の秘密分散値[ft(x)-f't(x)]を得る第1秘密計算ステップと、
     第2秘密計算部で、前記秘密分散値[ft(x)-f't(x)]を用いた秘密計算によってft(x)-f't(x)を所定ビット数だけ右シフトした(ft(x)-f't(x))rの秘密分散値[ft(x)-f't(x)]rを得る第2秘密計算ステップと、
    を有する秘密計算方法。
  12.  請求項1から10の何れかの秘密計算装置としてコンピュータを機能させるためのプログラム。
     
PCT/JP2020/001680 2020-01-20 2020-01-20 秘密計算装置、秘密計算方法、およびプログラム Ceased WO2021149103A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2021572125A JP7405157B2 (ja) 2020-01-20 2020-01-20 秘密計算装置、秘密計算方法、およびプログラム
EP20915267.7A EP4095826A4 (en) 2020-01-20 2020-01-20 SECURE COMPUTING DEVICE, SECURE CALCULATION METHOD AND PROGRAM
US17/792,147 US12192339B2 (en) 2020-01-20 2020-01-20 Secure computation apparatus, secure computation method, and program
CN202080093085.6A CN114981858B (zh) 2020-01-20 2020-01-20 秘密计算装置、秘密计算方法以及计算机程序产品
AU2020424576A AU2020424576C1 (en) 2020-01-20 2020-01-20 Secure computation apparatus, secure computation method, and program
PCT/JP2020/001680 WO2021149103A1 (ja) 2020-01-20 2020-01-20 秘密計算装置、秘密計算方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/001680 WO2021149103A1 (ja) 2020-01-20 2020-01-20 秘密計算装置、秘密計算方法、およびプログラム

Publications (1)

Publication Number Publication Date
WO2021149103A1 true WO2021149103A1 (ja) 2021-07-29

Family

ID=76992095

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/001680 Ceased WO2021149103A1 (ja) 2020-01-20 2020-01-20 秘密計算装置、秘密計算方法、およびプログラム

Country Status (6)

Country Link
US (1) US12192339B2 (ja)
EP (1) EP4095826A4 (ja)
JP (1) JP7405157B2 (ja)
CN (1) CN114981858B (ja)
AU (1) AU2020424576C1 (ja)
WO (1) WO2021149103A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7772221B2 (ja) * 2022-07-11 2025-11-18 Ntt株式会社 秘匿ノイズ生成システム、秘匿ノイズ生成方法及びプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259077A (ja) * 1999-03-10 2000-09-22 Seiko Epson Corp 情報処理システム
US7113593B2 (en) * 2001-03-06 2006-09-26 Ericsson Inc. Recursive cryptoaccelerator and recursive VHDL design of logic circuits
JP5247773B2 (ja) * 2010-08-03 2013-07-24 中国電力株式会社 暗号装置及びその方法
KR101439804B1 (ko) * 2010-12-27 2014-09-11 미쓰비시덴키 가부시키가이샤 연산 장치, 연산 장치의 타원 스칼라 곱셈 방법, 타원 스칼라 곱셈 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체, 연산 장치의 잉여 연산 방법 및 잉여 연산 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체
WO2015053185A1 (ja) * 2013-10-10 2015-04-16 日本電信電話株式会社 秘密商転移装置、秘密ビット分解装置、秘密モジュラス変換装置、秘密商転移方法、秘密ビット分解方法、秘密モジュラス変換方法、プログラム
WO2016104476A1 (ja) * 2014-12-26 2016-06-30 日本電信電話株式会社 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム
JP5957126B1 (ja) * 2015-06-24 2016-07-27 日本電信電話株式会社 秘密計算装置、秘密計算方法、およびプログラム
JP6053238B2 (ja) * 2016-01-13 2016-12-27 日本電信電話株式会社 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム
WO2018034079A1 (ja) * 2016-08-18 2018-02-22 日本電気株式会社 秘密計算システム、秘密計算方法、秘密計算装置、分散情報生成装置およびそれらの方法とプログラム
JP7041951B2 (ja) * 2018-02-20 2022-03-25 惠市 岩村 入力者装置、演算支援装置、及びプログラム
JP7067633B2 (ja) * 2018-10-10 2022-05-16 日本電信電話株式会社 秘密右シフト演算システム、秘密除算システム、それらの方法、秘密計算装置、およびプログラム
WO2019072315A2 (en) 2019-01-11 2019-04-18 Alibaba Group Holding Limited LOGISTIC REGRESSION MODELING SCHEME USING SECRET SHARING

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
IGARASHI, DAI: "An Optimal Single-Precision Approximation Method on Multi-Party Computation", THE 2020 SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY; JANUARY 28-31, 2020, 21 January 2020 (2020-01-21), JP, pages 1 - 8, XP009530139 *
OHATA, SATSUYA: "Reconsideration of privacy-preserving deep learning", 3F1-5: RECONSIDERING PRIVACY-PRESERVING DEEP NEURAL NETWORKS, 23 January 2018 (2018-01-23), JP, pages 1 - 8, XP009530172 *
RADU SION: "Financial Cryptography and Data Security", vol. 6052, 25 January 2010, SPRINGER BERLIN HEIDELBERG, Berlin, Heidelberg, ISBN: 978-3-642-14576-6, article OCTAVIAN CATRINA ; AMITABH SAXENA: "Secure Computation with Fixed-Point Numbers", pages: 35 - 50, XP019147523 *
See also references of EP4095826A4 *
TAKUMA AMADA; MASAHIRO NARA; TAKASHI NISHIDE; HIROSHI YOSHIURA: "2A2-2 Multiparty Computation with Redued Communication Complexity for Floating Point Arithmetic", PREPRINTS OF THE 2018 SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY (SCIS 2018); 23-26/01/2018, 23 January 2018 (2018-01-23), JP, pages 1 - 8, XP009530168 *

Also Published As

Publication number Publication date
EP4095826A1 (en) 2022-11-30
JP7405157B2 (ja) 2023-12-26
CN114981858B (zh) 2025-07-22
AU2020424576A1 (en) 2022-07-14
AU2020424576B2 (en) 2023-08-17
US12192339B2 (en) 2025-01-07
US20230101710A1 (en) 2023-03-30
JPWO2021149103A1 (ja) 2021-07-29
EP4095826A4 (en) 2023-10-25
CN114981858A (zh) 2022-08-30
AU2020424576C1 (en) 2023-11-09

Similar Documents

Publication Publication Date Title
JP7044447B2 (ja) ブロックチェーン内のデータベース・ハッシュコードの遅延更新
WO2019140734A1 (zh) 基金交易清算方法、装置、设备及计算机可读存储介质
CN116127261A (zh) 处理器中矩阵乘累加方法、装置及电子设备
JP7405157B2 (ja) 秘密計算装置、秘密計算方法、およびプログラム
US20260087089A1 (en) Method for performing fft, processor, and computing device
US12452042B2 (en) Secure computation apparatus, secure computation method, and program
US20210319080A1 (en) Tensor data calculating apparatus, tensor data calculating method and program
US11625225B2 (en) Applications of and techniques for quickly computing a modulo operation by a Mersenne or a Fermat number
JP7290178B2 (ja) 秘密計算装置、秘密計算方法、およびプログラム
JP7205623B2 (ja) 秘密共役勾配法計算システム、秘密計算装置、共役勾配法計算装置、秘密共役勾配法計算方法、共役勾配法計算方法、およびプログラム
JP7318743B2 (ja) 秘密計算装置、秘密計算方法、およびプログラム
CN114981865B (zh) 秘密平方根计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序
WO2023119551A1 (ja) 信号処理装置、信号処理方法、プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20915267

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021572125

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2020424576

Country of ref document: AU

Date of ref document: 20200120

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020915267

Country of ref document: EP

Effective date: 20220822

WWG Wipo information: grant in national office

Ref document number: 202080093085.6

Country of ref document: CN