JP7290178B2 - 秘密計算装置、秘密計算方法、およびプログラム - Google Patents
秘密計算装置、秘密計算方法、およびプログラム Download PDFInfo
- Publication number
- JP7290178B2 JP7290178B2 JP2021572128A JP2021572128A JP7290178B2 JP 7290178 B2 JP7290178 B2 JP 7290178B2 JP 2021572128 A JP2021572128 A JP 2021572128A JP 2021572128 A JP2021572128 A JP 2021572128A JP 7290178 B2 JP7290178 B2 JP 7290178B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- secret
- secret sharing
- secure
- public
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Storage Device Security (AREA)
- Hardware Redundancy (AREA)
- Devices For Executing Special Programs (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
Description
実施形態では、秘密計算装置が、実数xの秘密分散値[x]、乗数である実数m、および右シフト量を表すビット数である正整数σを入力とし、mxをσビットだけ右シフトした値の秘密分散値[mx]rを得て出力する。秘密分散値の秘密分散方式に限定はなく、例えば、加法的秘密分散方式やシャミア秘密分散方式などを例示できる。[・]の一例は剰余環上の要素・を線形秘密分散した秘密分散値(シェア)である。また環上の整数に公開の小数点位置を定めることで固定小数点の実数と見なすことができる。実施形態ではこのようにして環上で表した固定小数点の実数を単に実数と表記する。
通常、秘密計算において、秘密分散値[x]に公開された実数mの乗算とσビットの右シフトとを行う場合には、乗算を行ってから右シフトを行うか、または右シフトを行ってから乗算を行うことになる。この場合には、乗算を行うための計算コストと右シフトを行うための計算コストが必要となる。これに対し、本実施形態では、右シフトが除算と等価であることに着目し、まず、公開値2σ/mを計算し、秘密分散値[x]と得られた公開値2σ/mとを用いた公開値除算の秘密計算[x]/(2σ/m)を行う。この秘密計算で得られる値は乗算結果mxをσビットだけ右シフトした値の秘密分散値[mx]rと等価である。しかしながら、計算コストの低い公開値除算の秘密計算によって乗算と右シフトを同時に実現している。その結果、演算コストを大幅に削減できる。秘密計算分野の当業者にとって除算は乗算に比べて演算コストが大きい処理と認識されており、乗算の処理にあえて除算を用いるという発想には至らない。それにもかかわらず、本実施形態では、右シフトが除算と等価であることに着目して公開値2σ/mを計算し、公開値除算の秘密計算[x]/(2σ/m)を行うことで、乗算と右シフトとを別個に行う場合よりも計算コストを削減できるといった予測できない顕著な効果を得ることができる。なおオーバーフローは秘密計算を実装したプロセッサの性能に基づく問題であり、本方式はこのハードウェア上の制約に基づく問題を解決するための手法を提供する。このように、本方式は純粋数学上の問題を解決するものではなく、ハードウェア実装上の問題を解決するものであって技術的特徴を有するものである。右シフト量を表すσの値はプロセッサで扱うことが可能なビット数に応じて定められる。すなわち、公開値2σ/mはハードウェア上の要請から定まる値である。
以下に上述した方式を実装可能なアルゴリズムを例示する。
<実施例1>
実施例1では、条件c∈{0,1}に応じて2つの公開値m0,m1のうちどちらかを実数xの秘密分散値[x]に乗じる。公開値m0,m1の大きさが大きいと、乗算後の値の有効ビット数(その数を2進数で表現するのに必要なビット数)が上昇し、これ以上乗算できない数になってしまうため右シフトが必要になる場合がある。実施例1では、このような処理を効率化する。
出力:[m0x] if c=0,[m1x] if c=1
ステップS21の処理の具体例を説明する。ここでは、d0=1/m0およびd1=1/m1が除数であり、pが正整数の法であり、qが正整数の商であるとする。
秘密計算装置は、公開値計算部212aは、乗数m0,m1および正整数σ0,σ1を用いて公開値2σ0/m0,2σ1/m1を得て出力する。ただし、σ0,σ1は、それぞれ乗数m0,m1が大きい場合に必要となる右シフト量を表すビット数である正整数である(ステップS212a)。
実施例2では、任意の関数(例えば、初等関数)を多項式関数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)]の計算ではオーバーフローしないプロセッサではその技術的特徴は顕著である。
設定済のパラメータ:a,b,c,d,f,g,H,i,j,k,s,m,n,o,p,q,α,β,γ,δ,ζ
出力:目的の関数(例えば、初等関数)fn-1(x)に対応する秘密分散値[fn-1(x)]
2:秘密計算装置は、秘密分散値[y’]rを用いた秘密計算により[y]=[y’+(ix+j)]を得る。
3:秘密計算装置は、積和の秘密計算により[z’]=[y(ζy+b-k)+(c-s)x-m]を得、右シフトにより小数点位置を下げたz’rの秘密分散値[z’]rを得る。
4:秘密計算装置は、秘密分散値[z’]rを用いた秘密計算により[z]=[z’+(ky+sx+m)]を得る。
5: 秘密計算装置は、積和の秘密計算により[w’/γ]=[z(αz+d-n/γ)+(βx+f-o/γ)y+(g-p)x+(H-q)/γ]を得、[x]=[w’/γ]かつm=γとおいたステップS10~S13の処理を行い、γによる乗算と小数点位置の下降を同時に行い[w’]を得る。
6:秘密計算装置は、秘密計算により[w]=[w’+(nz+oy+px+q)]を得て出力する。
実施例3では、実数xの秘密分散値[x]の指数関数値exp(x)の秘密分散値を得る。指数関数は入力に加法性があるため、入力を以下の3パートに分解する。
I.想定される入力の最小値μ
II.x-μの小数点以下tビット以上の上位uビットx0,…,xu-1
III.x-μのx0よりも下位ビット全体が表す数xρ
exp x=exp μ exp 2-tx0,…,exp 2u-t-1xu-1exp xρとする。exp μは公開値、exp 2-tx0,…,exp 2u-t-1xu-1は表によって計算される箇所である。exp xρが近似により計算される箇所であり、[0,2-t)に正規化される。
入力:[x]
出力:[exp(x)]
設定済のパラメータ:t=-1
1:秘密計算装置は、秘密計算によって[x’]=[x]-μを得る。ただし、μは想定されるxの最小値である。
2:秘密計算装置は、秘密計算により、小数点以下tビットより上位のビットをビット分解で取り出してmod p変換し、[x’0],…,[x’u-1]を得る。
3:秘密計算装置は、秘密計算により、各0≦i<uで、fi,εiをそれぞれexp(2i-t)の仮数部、指数部とする。
4:秘密計算装置は、秘密計算によって、i=0,…,u-1について、x’i’=0ならばFi=1、x’i’=1ならばFi=fiとした
を得る。
5:秘密計算装置は、秘密計算によって、各0≦i<uで、選択肢公開のif-then-elseゲートにより[ε’i]:=if [x’i] then 2εi else 1を計算する。
6:秘密計算装置は、秘密計算によって、各iに関する[ε’i]の積[ε’]を得る(ε’=ε’0…ε’u-1)。これはexp(x’)の上位ビット部分の指数部の2のべき乗値である。
7:秘密計算装置は、秘密計算によって、
を得る。これはexp(x’)の下位ビット部分の表す数である。
8:秘密計算装置は、秘密計算によって、[x’ρ]から[w]を得る。ただし、wはx’ρの指数関数exp xρを近似する多項式である。秘密計算装置は、例えば、x=x’ρとした実施例2の方法を用いて[w]を得る。
9:秘密計算装置は、秘密計算によって、[w][f’][ε’]exp(μ)を得て出力する。ただし、exp(μ)の乗算では[x]=[w][f’][ε’]かつm=exp(μ)とおいたステップS10~S13の処理を行い、exp(μ)による乗算と小数点位置の下降を同時に行い[w][f’][ε’]exp(μ)を得る。
図2に初等関数が逆数関数、平方根関数、平方根の逆数関数、指数関数、対数関数である場合の計算済みのパラメータを例示する。なお、ex,ey,ezはそれぞれx,y,zの小数点位置を示す。また、e’x,e’y,e’zはそれぞれ右シフト前のx’,y’,z’の小数点位置を示す。これらの小数点位置は、下位ビットから数えた小数点位置のビット位置を表す。このビット位置を表す値は0から始まり、下位ビットから数えてe1ビット目が1を表すときに、小数点位置がe1であると表記する。
実施形態における秘密計算装置1は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)やRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される装置である。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、単独で処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
Claims (3)
- xが実数であり、[・]が・の秘密分散値であり、σが右シフト量を表すビット数である正整数であり、mが実数であり、
公開値2σ/mを得る公開値計算部と、
秘密分散値[x]と前記公開値計算部で得られた前記公開値2σ/mとを用いた公開値除算の秘密計算[x]/(2σ/m)を行って、mxをσビットだけ右シフトした値の秘密分散値[mx]rを得て出力する秘密計算部と、
を有する秘密計算装置。 - xが実数であり、[・]が・の秘密分散値であり、σが右シフト量を表すビット数である正整数であり、mが実数であり、
公開値計算部が、公開値2σ/mを得る公開値計算ステップと、
秘密計算部が、秘密分散値[x]と前記公開値計算部で得られた前記公開値2σ/mとを用いた公開値除算の秘密計算[x]/(2σ/m)を行って、mxをσビットだけ右シフトした値の秘密分散値[mx]rを得て出力する秘密計算ステップと、
を有する秘密計算方法。 - 請求項1の秘密計算装置としてコンピュータを機能させるプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/001683 WO2021149106A1 (ja) | 2020-01-20 | 2020-01-20 | 秘密計算装置、秘密計算方法、およびプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JPWO2021149106A1 JPWO2021149106A1 (ja) | 2021-07-29 |
JPWO2021149106A5 JPWO2021149106A5 (ja) | 2022-08-19 |
JP7290178B2 true JP7290178B2 (ja) | 2023-06-13 |
Family
ID=76992097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021572128A Active JP7290178B2 (ja) | 2020-01-20 | 2020-01-20 | 秘密計算装置、秘密計算方法、およびプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230102267A1 (ja) |
JP (1) | JP7290178B2 (ja) |
CN (1) | CN114981860A (ja) |
AU (1) | AU2020423806B2 (ja) |
WO (1) | WO2021149106A1 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014164144A (ja) | 2013-02-26 | 2014-09-08 | Nippon Telegr & Teleph Corp <Ntt> | 秘密表除算装置及び方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050088506A (ko) * | 2004-03-02 | 2005-09-07 | 삼성전자주식회사 | 다중 세정도를 지원하는 확장형 몽고메리 모듈러 곱셈기 |
-
2020
- 2020-01-20 WO PCT/JP2020/001683 patent/WO2021149106A1/ja unknown
- 2020-01-20 CN CN202080093276.2A patent/CN114981860A/zh active Pending
- 2020-01-20 AU AU2020423806A patent/AU2020423806B2/en active Active
- 2020-01-20 JP JP2021572128A patent/JP7290178B2/ja active Active
- 2020-01-20 US US17/792,148 patent/US20230102267A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014164144A (ja) | 2013-02-26 | 2014-09-08 | Nippon Telegr & Teleph Corp <Ntt> | 秘密表除算装置及び方法 |
Non-Patent Citations (3)
Title |
---|
ALIASGARI, M. et al.,Secure Computation on Floating Point Numbers,Cryptology ePrint Archive,Paper 2012/405 ver:20121210:185402,2012年12月10日,pp.1-31,<URL:https://epirnt.iacr.org/2012/405> |
五十嵐大,秘密計算AIの実装に向けた秘密実数演算群の設計と実装ーO(|p|) ビット通信量O(1)ラウンドの実数向け右シフト,コンピュータセキュリティシンポジウム2019論文集,2019年10月14日,pp.1557-1564 |
金岡晃 他,実数演算可能な軽量秘密計算法の一考察,コンピュータセキュリティシンポジウム2014論文集,2014年10月15日,pp.682-687 |
Also Published As
Publication number | Publication date |
---|---|
WO2021149106A1 (ja) | 2021-07-29 |
JPWO2021149106A1 (ja) | 2021-07-29 |
CN114981860A (zh) | 2022-08-30 |
EP4095830A1 (en) | 2022-11-30 |
AU2020423806B2 (en) | 2023-06-08 |
EP4095830A4 (en) | 2023-10-18 |
US20230102267A1 (en) | 2023-03-30 |
AU2020423806A1 (en) | 2022-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7067633B2 (ja) | 秘密右シフト演算システム、秘密除算システム、それらの方法、秘密計算装置、およびプログラム | |
CN101938355A (zh) | 用于执行有效率的抗侧信道攻击的简化的方法和设备 | |
JP7290178B2 (ja) | 秘密計算装置、秘密計算方法、およびプログラム | |
JP7318743B2 (ja) | 秘密計算装置、秘密計算方法、およびプログラム | |
JP7290177B2 (ja) | 秘密計算装置、秘密計算方法、およびプログラム | |
JP7405157B2 (ja) | 秘密計算装置、秘密計算方法、およびプログラム | |
EP4095830B1 (en) | Secure computation device, secure computation method, and program | |
JP7331951B2 (ja) | 秘密平方根計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム | |
JP7351353B2 (ja) | 秘密指数関数計算システム、秘密指数関数計算方法、秘密計算装置、およびプログラム | |
JP7331953B2 (ja) | 秘密逆数計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム | |
JP7405156B2 (ja) | 秘密選択積計算システム、秘密選択積計算方法、秘密計算装置、およびプログラム | |
JP7331952B2 (ja) | 秘密平方根逆数計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム | |
JP7485067B2 (ja) | 秘密シフトシステム、秘密シフト装置、秘密シフト方法、プログラム | |
JP7511525B2 (ja) | 内積計算装置、内積計算方法、および、内積計算プログラム | |
JP7571869B2 (ja) | 関数変換装置、関数変換方法、およびプログラム | |
WO2022219770A1 (ja) | 関数変換装置、関数変換方法、およびプログラム | |
JP7318721B2 (ja) | 近似関数計算装置、方法及びプログラム | |
Tembhurne | Parallel Multiplication of Big Integer on GPU | |
JP2024538668A (ja) | 融合モジュラ積和演算 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220623 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220623 |
|
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: 20230502 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230515 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7290178 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |