JP7396373B2 - 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム - Google Patents
秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム Download PDFInfo
- Publication number
- JP7396373B2 JP7396373B2 JP2021572116A JP2021572116A JP7396373B2 JP 7396373 B2 JP7396373 B2 JP 7396373B2 JP 2021572116 A JP2021572116 A JP 2021572116A JP 2021572116 A JP2021572116 A JP 2021572116A JP 7396373 B2 JP7396373 B2 JP 7396373B2
- Authority
- JP
- Japan
- Prior art keywords
- secure
- secure computation
- random number
- calculation
- server devices
- 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
- 238000000034 method Methods 0.000 title claims description 96
- 238000004364 calculation method Methods 0.000 claims description 165
- 238000012545 processing Methods 0.000 claims description 54
- 238000001514 detection method Methods 0.000 claims description 25
- 108010016634 Seed Storage Proteins Proteins 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 239000011159 matrix material Substances 0.000 description 5
- 230000002596 correlated effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 229940050561 matrix product Drugs 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/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
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
-
- 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)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Complex Calculations (AREA)
- Storage Device Security (AREA)
Description
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
以下、実施形態の説明にあたり、記法の定義および処理要素の説明を行う。以下で説明する記法および演算要素は、各実施形態の説明の中で共通して用いられる。
P1:[x]1=(x1,x2)
P2:[x]2=(x2,x3)
P3:[x]3=(x3,x1)
P1:[[x]]1=(x1,x2)
P2:[[x]]2=(x2,x3)
P3:[[x]]3=(x3,x1)
Correlated Randomness αi(i=1,2,3)は、以下のように生成する。
αi=H(ki,vid) XOR H(ki+1,vid)
ここで、暗号学的に安全な疑似乱数生成器Hは、セキュリティパラメータκに対し、H:{0,1}κ×{0,1}κ→{0,1}となるように定められた2項演算である。また、各αi(i=1,2,3)を生成するために用いるシードki(i=1,2,3)は、各秘密計算サーバPiが以下のように所有しており、vidはカウンタなどの公開された値である。
Pi:(ki,ki+1) ただし、k3+1=k1とする。
α1 XOR α2 XOR α3=0
なお、Correlated Randomnessの処理の呼び出しは、αi←CR(Pi,(ki,ki+1),vid)と表す。
論理演算のランダムシェア[[r]](r=r1 XOR r2 XOR r3)は、以下のように生成する。
P1:[[r]]1=(r1,r2)
P2:[[r]]2=(r2,r3)
P3:[[r]]3=(r3,r1)
なお、ランダムシェアの処理の呼び出しとしては、[[r]]←RandGen(Pi,(ki,ki+1),vid)と表す。
ビット埋め込みとは、論理演算向けのシェア[[x]]を入力として、算術演算向けのシェア[x]を出力する処理である。ビット埋め込みの処理の呼び出しとしては、[x]←BitInjection([[x]])と記載する。ビット埋め込みの具体的な処理は、例えば非特許文献2、非特許文献3、非特許文献4に記載の方法を用いることできるが、本発明の実施形態にあたり、その他の適切なビット埋め込みの処理を用いることが可能である。
内積計算とは、2つのベクトルx=(x1,...,xn),y=(y1,...,yn)に関する2つの算術演算シェアのベクトル([x1],...,[xn]),([y1],...,[yn])を入力として、[Σi=0 nxiyi]を出力する処理である。処理の呼び出しとしては、[Σi=0 nxiyi]←InnerProduct(([x1],...,[xn]),([y1],...,[yn]))と表す。内積計算の具体的な処理は、例えば非特許文献1や非特許文献4に記載の方法を用いることができるが、本発明の実施形態にあたり、その他の適切な内積計算の処理を用いることが可能である。
算術シェア同士の減算とは、2つの算術演算シェア[a],[b]を入力として、[a-b]を出力する処理である。算術シェア同士の減算の処理の呼び出しとしては、[a-b]←Sub([a],[b])と表す。算術シェア同士の減算の具体的な処理は、例えば非特許文献1や非特許文献4に記載の方法を用いることができるが、本発明の実施形態にあたり、その他の適切な算術シェア同士の減算の処理を用いることが可能である。
再分散とは、論理演算シェア[[x]]を入力として、x=x1 XOR x2 XOR x3 mod2となる([x1],[x2],[x3])を出力する処理である。再分散の処理の呼び出しとしては、([x1],[x2],[x3])←LocalReshare([[x]])と表す。再分散の具体的な処理は、例えば非特許文献2に記載の方法を用いることできるが、本発明の実施形態にあたり、その他の適切な再分散の処理を用いることが可能である。
算術演算に関する不正検知用乱数生成とは、[a],[b],[c]もしくは不正を検知したことを意味する⊥を出力する処理である。ここで、a,b,c∈Z2 kであり、c=abを満たすランダムな値とする。この処理はシェア同士の算術乗算に関する不正検知に用いる。処理の呼び出しとしては、([a],[b],[c])←A-TripleGenと表す。具体的な処理は、例えば非特許文献5、非特許文献6に記載の方法を用いることができるが、本発明の実施形態にあたり、その他の適切な算術演算に関する不正検知用乱数生成の処理を用いることが可能である。
行列演算に関する不正検知用乱数生成とは、[A],[B],[C]もしくは不正を検知したことを意味する⊥を出力する処理である。ここで、A,B,Cは、C=ABを満たすZ2 k上の値を要素にもつランダムな行列である。この処理は行列積演算に関する不正検知に用いる。ここで、行列積には内積演算が含まれる。なお、処理の呼び出しとしては、([A],[B],[C])←M-TripleGenと表す。具体的な処理は、例えば非特許文献4に記載の方法を用いることできるが、その他の適切な行列演算に関する不正検知用乱数生成の処理を用いることが可能である。
不正検知可能ビット埋め込みとは、[[x]]、([aj],[bj],[cj])、および([a′j],[b′j],[c′j])を入力として、[x]もしくは不正を検知したことを意味する⊥を出力する処理である。なお、処理の呼び出しとしては、[x]←m-BitInjection([[x]],([aj],[bj],[cj]),([a′j],[b′j],[c′j]))と表す。具体的な処理は、例えば非特許文献2、非特許文献3、非特許文献4に記載の方法と非特許文献5、非特許文献6に記載の方法とを組み合わせることで実現できるが、その他の適切な不正検知可能ビット埋め込みの処理を用いることが可能である。
不正検知可能内積計算とは、2つのベクトルx=(x1,...,xn),y=(y1,...,yn)に関する2つの算術演算シェアのベクトル([x1],...,[xn]),([y1],...,[yn])と([A],[B],[C])とを入力として、[Σi=0 nxiyi]もしくは不正を検知したことを意味する⊥を出力する処理である。不正検知可能内積計算の処理の呼び出しとしては、m-InnerProduct(([x1],...,[xn]),([y1],...,[yn],([A],[B],[C]))と記載する。具体的な処理は、例えば非特許文献4に記載の方法を用いることできるが、その他の適切な不正検知可能内積計算の処理を用いることが可能である。
以下、図1、図2、図3を参照して、本発明の第1の実施形態に係る秘密計算システムおよび秘密計算方法について説明する。
秘密計算システム100は、第1~第3の秘密計算サーバ装置100_i(i=1,2,3)の各シード記憶部105_iにそれぞれシード(ki,ki+1)を記憶する。なお、第1~第3の秘密計算サーバ装置100_i(i=1,2,3)は、乱数生成部104_iに疑似乱数生成器Hを共有している。
次に、秘密計算システム100は、論理演算の乱数を生成する。秘密計算サーバ装置100_iをPiと表せば、各秘密計算サーバ装置100_iは、処理(rj,i,rj,i+1)←RandGen(Pi,(ki,ki+1),vid)を実行する(i=1,2,3かつj=0,...,k-1)。rj=rj,i XORrj,i XOR rj,i mod 2としたとき、各秘密計算サーバ装置100_i(i=1,2,3)は、[[rj]]iを事前生成乱数記憶部107_iに記憶する。
さらに、秘密計算システム100は、算術演算の乱数を生成する。第1~第3の秘密計算サーバ装置100_i(i=1,2,3)における各算術演算部101_iは、事前生成乱数記憶部107_iに記憶されている[[rj]]iを用いて、ビット埋め込みの処理[rj]←BitInjection([[rj]])を実行する(j=0,...,k-1)。そして、第1~第3の秘密計算サーバ装置100_i(i=1,2,3)は、計算された乱数のシェア[rj]iを事前生成乱数記憶部107_iに記憶する。
ここで、秘密計算システム100は、各シェア値記憶部106_iに記憶されているビット結合の対象となるシェア[[x0]]i,...,[[xk-1]]i(x=Σj=0 k-1 2jxj,xj∈Z2)を初めて処理に用いる。すなわち、本発明の第1の実施形態における秘密計算方法では、ステップA1からステップA5までの処理において、ビット結合の対象を用いる必要がない。本発明の第1の実施形態における秘密計算方法では、第1~第3の秘密計算サーバ装置100_i(i=1,2,3)の各シェア値記憶部106_iには、ビット結合の対象となるシェア[[x0]]i,...,[[xk-1]]i(x=Σj=0 k-1 2jxj,xj∈Z2)が既に記憶されているとしてもよいし、ステップA6にて、ビット結合の対象となる入力を受け付けるとしてもよい。
αi←CR(Pi,(ki,ki+1),vidj,α) (for j=0,...,k-1)
Cj,i=αj,i XOR rj,i XOR (xj,i xj,i+1) (for j=0,...,k-1)
Cj XOR rj=Cj,1 XOR Cj,2 XOR Cj,3 mod 2
P1:[Cj XOR rj]1=(0,Cj)
P2:[Cj XOR rj]2=(Cj,0)
P3:[Cj XOR rj]3=(0,0)
秘密計算システム100は、キャリーと乱数の減算を行う。具体的には、第1~第3の秘密計算サーバ装置100_i(i=1,2,3)における算術演算部101_iは、以下のように、[Cj XOR rj]と[rj] (j=0,...,k-1)を用いて、[(Cj XOR rj)-rj] (j=0,...,k-1)を計算する。
[(Cj XOR rj)-rj]←Sub([Cj XOR rj],[rj])
秘密計算システム100は、内積を用いたキャリーのマスクを取り除く計算を行う。具体的には、第1~第3の秘密計算サーバ装置100_i(i=1,2,3)における内積計算部103_iは、[(Cj XOR rj)-rj] (j=0,...,k-1)を用いて、以下のような計算を行う。ここで、[y]=[Σj=0 k-1 2j(-2)cj]とする。
秘密計算システム100は、再分散を行う。具体的には、第1~第3の秘密計算サーバ装置100_i(i=1,2,3)における算術演算部101_iは、[[x0]]i,...,[[xk-1]]i(x=Σj=0 k-1 2jxj,xj∈Z2,xj=xj,1 XOR xj,2 XOR xj,3 mod 2)を用いて、以下の計算をする。
([xj,1],[xj,2],[xj,3])←LocalReshare([[xj]]) (for j=0,...,k-1)
秘密計算システム100は、キャリーの消去を行う。具体的には、第1~第3の秘密計算サーバ装置100_i(i=1,2,3)の算術演算部101_iは、再分散された算術シェアと([xj,1],[xj,2],[xj,3])(j=0,...,k-1)と[y]iを用いて、以下の計算を行う。
以下、図4、図5、図6を参照して、本発明の第2の実施形態に係る秘密計算システムおよび秘密計算方法について説明する。
秘密計算システム200は、先述したステップA1と同じ処理を行う。すなわち、第1~第3の秘密計算サーバ装置200_i(i=1,2,3)の各シード記憶部205_iにそれぞれシード(ki,ki+1)を記憶する。なお、第1~第3の秘密計算サーバ装置200_i(i=1,2,3)は、乱数生成部204_iに疑似乱数生成器Hを共有している。
次に、秘密計算システム200は、不正検知用乱数を生成する。具体的には、第1~第3の秘密計算サーバ装置200_i(i=1,2,3)における各乱数生成部204_iは、以下のように算術演算および行列演算に関する不正検知用乱数の生成を行う。
([aj],[bj],[cj])←A-TripleGen (for j=0,...,k-1)
([a′j],[b′j],[c′j])←A-TripleGen (for j=0,...,k-1)
([Aj],[Bj],[Cj])←M-TripleGen (for j=0,...,k-1)
秘密計算システム200は、先述したステップA4と同じ処理を用いて、論理演算の乱数の生成を行う。すなわち、第1~第3の秘密計算サーバ装置200_i(i=1,2,3)は、論理演算の乱数[[rj]]iを生成し、[[rj]]iを事前生成乱数記憶部207_iに記憶する。
次に、秘密計算システム200は、算術演算の乱数の生成を行う。具体的には、第1~第3の秘密計算サーバ装置200_i(i=1,2,3)における算術演算部201_iは、[[rj]]i、([aj],[bj],[cj])、および([a′j],[b′j],[c′j])を用いて、以下の処理を行う。
[rj]←m-BitInjection([[rj]],([aj],[bj],[cj]),([a′j],[b′j],[c′j])) (for j=0,...,k-1)
秘密計算システム200は、先述したステップA6と同じ処理を用いて、キャリーの復元を行う。なお、本発明の第2の実施形態の秘密計算方法においても、秘密計算システム200は、各シェア値記憶部206_iに記憶されているビット結合の対象となるシェア[[x0]]i,...,[[xk-1]]i(x=Σj=0 k-1 2jxj,xj∈Z2)をステップB6にて初めて処理に用いる。
次に、秘密計算システム200は、ステップB6にて送信されたキャリーCj,i(i=1,2,3)に不正がないか検証する。
秘密計算システム200は、先述したステップA8と同じ処理を用いて、キャリーと乱数の減算を行う。
次に、秘密計算システム200は、内積を用いたキャリーのマスクを取り除く計算を行う。具体的には、第1~第3の秘密計算サーバ装置200_i(i=1,2,3)における内積計算部203_iは、[(Cj XOR rj)-rj] (j=0,...,k-1)を用いて、以下のような計算を行う。ここで、[y]=[Σj=0 k-1 2j(-2)cj]とする。なお、ここでは不正検知可能内積計算を行い、不正が検知された場合(ステップB9;⊥)、⊥を出力し、abortする。
秘密計算システム200は、先述したステップA10と同じ処理を用いて、再分散を行う。
秘密計算システム200は、先述したステップA11と同じ処理を用いて、キャリーの消去を行う。これにより、第1~第3の秘密計算サーバ装置200_i(i=1,2,3)は、ビット結合の対象となるシェア[[x0]]i,...,[[xk-1]]i(x=Σj=0 k-1 2jxj,xj∈Z2)からビット結合後の[x]iを得ることができる。
以下、図7、図8、図9を参照して、本発明の第3の実施形態に係る秘密計算システムおよび秘密計算方法について説明する。
秘密計算システム300における秘密計算サーバ装置300_1~300_3は、ステップA1と等しい動作を行う。その上で、第1の補助サーバ装置308_1と第2の補助サーバ装置308_2は、シードseed′と疑似乱数生成器Hを共有する。
次に、第1の補助サーバ装置308_1と第2の補助サーバ装置308_2は、共有したシードseed′と疑似乱数生成器Hを用いて、乱数a,b∈Z2 kを生成する。さらに、第1の補助サーバ装置308_1と第2の補助サーバ装置308_2は、共有したシードseed′と疑似乱数生成器Hを用いて、([a],[b],[ab])を生成し、第1~第3の秘密計算サーバ装置300_1~300_3に分散する。
第1~第3の秘密計算サーバ装置300_1~300_3は、ステップC2にて、第1の補助サーバ装置308_1と第2の補助サーバ装置308_2のそれぞれから受信した値が一致しているか否かを判定する。一致していた場合は、以降の処理を継続し、不一致だった場合(ステップC3;⊥)、⊥を出力し、abortする。
図10は、秘密計算サーバ装置のハードウェア構成例を示す図である。すなわち、図10に示すハードウェア構成例は、秘密計算サーバ装置100_i,200_i,300_i(i=1,2,3)のハードウェア構成例である。図10に示すハードウェア構成を採用した情報処理装置(コンピュータ)は、上記説明した秘密計算方法をプログラムとして実行することで、秘密計算サーバ装置100_i,200_i,300_iの各機能を実現することを可能にする。
[付記1]
相互にネットワークで接続した少なくとも3台以上の秘密計算サーバ装置を備える秘密計算システムであって、
前記秘密計算サーバ装置のそれぞれが、
前記秘密計算サーバ装置の間で疑似乱数生成器を共有する乱数生成部と、
前記乱数生成部における乱数の生成に用いるシードを分散して記憶するシード記憶部と、
前記乱数生成部が生成した乱数を記憶する事前生成乱数記憶部と、
少なくとも処理対象となるシェアを記憶するシェア値記憶部と、
前記乱数と前記処理対象となるシェアとを用いて、前記秘密計算サーバ装置の間で送受信するためのキャリーを少なくとも計算する論理演算部と、
前記キャリーからマスクを除去する内積計算部と、
前記キャリーを消去して処理結果を得る処理を少なくとも行う算術演算部と、
を有する、秘密計算システム。
[付記2]
前記乱数は、論理演算の乱数と算術演算の乱数とを含む、付記1に記載の秘密計算システム。
[付記3]
前記算術演算の乱数は、前記論理演算の乱数にビット埋め込みの処理をすることで得られる、付記2に記載の秘密計算システム。
[付記4]
前記処理対象となるシェアから前記処理結果へは、法の変換を伴う型変換になっている、付記1から付記3のいずれか1に記載の秘密計算システム。
[付記5]
前記処理対象となるシェアから前記処理結果へは、前記処理対象となるシェアに含まれるビットを結合するビット結合の処理である付記4に記載の秘密計算システム。
[付記6]
前記処理対象となるシェアから前記処理結果へは、前記処理対象となるシェアから値が1であるビットの個数をカウントする処理である付記4に記載の秘密計算システム。
[付記7]
前記秘密計算サーバ装置と相互にネットワークで接続した、前記キャリーを用いて不正検知を行う補助サーバ装置を備える、付記1から付記6のいずれか1に記載の秘密計算システム。
[付記8]
前記秘密計算サーバ装置と相互にネットワークで接続し、不正検知用の乱数を生成するためのシードと疑似乱数生成器を共有する2つの補助サーバ装置を備える、付記1から7のいずれか1に記載の秘密計算システム。
[付記9]
相互にネットワークで接続した少なくとも3台以上の秘密計算サーバ装置の一つであって、
前記秘密計算サーバ装置の間で疑似乱数生成器を共有する乱数生成部と、
前記乱数生成部における乱数の生成に用いるシードを分散して記憶するシード記憶部と、
前記乱数生成部が生成した乱数を記憶する事前生成乱数記憶部と、
少なくとも処理対象となるシェアを記憶するシェア値記憶部と、
前記乱数と前記処理対象となるシェアとを用いて、前記秘密計算サーバ装置の間で送受信するためのキャリーを少なくとも計算する論理演算部と、
前記キャリーからマスクを除去する内積計算部と、
前記キャリーを消去して処理結果を得る処理を少なくとも行う算術演算部と、
を備える、秘密計算サーバ装置。
[付記10]
相互にネットワークで接続した少なくとも3台以上の秘密計算サーバ装置を用いる秘密計算方法であって、
前記秘密計算サーバ装置の間で共有した疑似乱数生成器を用いて乱数を生成し、
前記乱数と処理対象となるシェアとを用いて、前記秘密計算サーバ装置の間で送受信するためのキャリーを計算し、
内積計算を用いて前記キャリーからマスクを除去し、
前記キャリーを消去して処理結果を得る、秘密計算方法。
[付記11]
前記乱数は、論理演算の乱数と算術演算の乱数とを含む、付記10に記載の秘密計算方法。
[付記12]
前記算術演算の乱数は、前記論理演算の乱数にビット埋め込みの処理をすることで得られる、付記11に記載の秘密計算方法。
[付記13]
前記乱数は、不正検知用の乱数を含む、付記10から付記12のいずれか1に記載の秘密計算方法。
[付記14]
前記秘密計算サーバ装置ではないサーバ装置にて前記キャリーを用いて不正検知をした後に前記内積計算を行う、付記10から付記13のいずれか1に記載の秘密計算方法。
[付記15]
前記内積計算は、不正検知可能な内積計算である、付記10から付記14のいずれか1に記載の秘密計算方法。
[付記16]
前記秘密計算サーバ装置ではない2つのサーバ装置から受信した乱数を用いて不正検知を行う、付記10から付記15のいずれか1に記載の秘密計算方法。
[付記17]
相互にネットワークで接続した少なくとも3台以上の秘密計算サーバ装置に実行させる秘密計算プログラムであって、
前記秘密計算サーバ装置の間で共有した疑似乱数生成器を用いて乱数を生成し、
前記乱数と処理対象となるシェアとを用いて、前記秘密計算サーバ装置の間で送受信するためのキャリーを計算し、
内積計算を用いて前記キャリーからマスクを除去し、
前記キャリーを消去して処理結果を得る、秘密計算プログラム。
100_i,200_i,300_i 秘密計算サーバ装置
101_i,201_i,301_i 算術演算部
102_i,202_i,302_i 論理演算部
103_i,203_i,303_i 内積計算部
104_i,204_i,304_i 乱数生成部
105_i,205_i,305_i シード記憶部
106_i,206_i,306_i シェア値記憶部
107_i,207_i,307_i 事前生成乱数記憶部
208,308_1,308_1 補助サーバ装置
Claims (17)
- 相互にネットワークで接続した少なくとも3台以上の秘密計算サーバ装置を備える秘密計算システムであって、
前記秘密計算サーバ装置のそれぞれが、
前記秘密計算サーバ装置の間で疑似乱数生成器を共有する乱数生成部と、
前記乱数生成部における乱数の生成に用いるシードを分散して記憶するシード記憶部と、
前記乱数生成部が生成した乱数を記憶する事前生成乱数記憶部と、
少なくとも処理対象となるシェアを記憶するシェア値記憶部と、
前記乱数と前記処理対象となるシェアとを用いて、前記秘密計算サーバ装置の間で送受信するためのキャリーを少なくとも計算する論理演算部と、
前記キャリーからマスクを除去する内積計算部と、
前記キャリーを消去して処理結果を得る処理を少なくとも行う算術演算部と、
を有する、秘密計算システム。 - 前記乱数は、論理演算の乱数と算術演算の乱数とを含む、請求項1に記載の秘密計算システム。
- 前記算術演算の乱数は、前記論理演算の乱数にビット埋め込みの処理をすることで得られる、請求項2に記載の秘密計算システム。
- 前記処理対象となるシェアから前記処理結果へは、法の変換を伴う型変換になっている、請求項1から請求項3のいずれか1項に記載の秘密計算システム。
- 前記処理対象となるシェアから前記処理結果へは、前記処理対象となるシェアに含まれるビットを結合するビット結合の処理である請求項4に記載の秘密計算システム。
- 前記処理対象となるシェアから前記処理結果へは、前記処理対象となるシェアから値が1であるビットの個数をカウントする処理である請求項4に記載の秘密計算システム。
- 前記秘密計算サーバ装置と相互にネットワークで接続した、前記キャリーを用いて不正検知を行う補助サーバ装置を備える、請求項1から請求項6のいずれか1項に記載の秘密計算システム。
- 前記秘密計算サーバ装置と相互にネットワークで接続し、不正検知用の乱数を生成するためのシードと疑似乱数生成器を共有する2つの補助サーバ装置を備える、請求項1から請求項7のいずれか1項に記載の秘密計算システム。
- 相互にネットワークで接続した少なくとも3台以上の秘密計算サーバ装置の一つであって、
前記秘密計算サーバ装置の間で疑似乱数生成器を共有する乱数生成部と、
前記乱数生成部における乱数の生成に用いるシードを分散して記憶するシード記憶部と、
前記乱数生成部が生成した乱数を記憶する事前生成乱数記憶部と、
少なくとも処理対象となるシェアを記憶するシェア値記憶部と、
前記乱数と前記処理対象となるシェアとを用いて、前記秘密計算サーバ装置の間で送受信するためのキャリーを少なくとも計算する論理演算部と、
前記キャリーからマスクを除去する内積計算部と、
前記キャリーを消去して処理結果を得る処理を少なくとも行う算術演算部と、
を備える、秘密計算サーバ装置。 - 相互にネットワークで接続した少なくとも3台以上の秘密計算サーバ装置を用いる秘密計算方法であって、
前記秘密計算サーバ装置の間で共有した疑似乱数生成器を用いて前記秘密計算サーバ装置が乱数を生成し、
前記乱数と処理対象となるシェアとを用いて、前記秘密計算サーバ装置の間で送受信するためのキャリーを前記秘密計算サーバ装置が計算し、
前記秘密計算サーバ装置が内積計算を用いて前記キャリーからマスクを除去し、
前記秘密計算サーバ装置が前記キャリーを消去して処理結果を得る、秘密計算方法。 - 前記乱数は、論理演算の乱数と算術演算の乱数とを含む、請求項10に記載の秘密計算方法。
- 前記算術演算の乱数は、前記論理演算の乱数にビット埋め込みの処理をすることで得られる、請求項11に記載の秘密計算方法。
- 前記乱数は、不正検知用の乱数を含む、請求項10から請求項12のいずれか1項に記載の秘密計算方法。
- 前記秘密計算サーバ装置ではないサーバ装置にて前記キャリーを用いて不正検知をした後に前記内積計算を行う、請求項10から請求項13のいずれか1項に記載の秘密計算方法。
- 前記内積計算は、不正検知可能な内積計算である、請求項10から請求項14のいずれか1項に記載の秘密計算方法。
- 前記秘密計算サーバ装置ではない2つのサーバ装置から受信した乱数を用いて不正検知を行う、請求項10から請求項15のいずれか1項に記載の秘密計算方法。
- 相互にネットワークで接続した少なくとも3台以上の秘密計算サーバ装置に実行させる秘密計算プログラムであって、
前記秘密計算サーバ装置の間で共有した疑似乱数生成器を用いて乱数を生成し、
前記乱数と処理対象となるシェアとを用いて、前記秘密計算サーバ装置の間で送受信するためのキャリーを計算し、
内積計算を用いて前記キャリーからマスクを除去し、
前記キャリーを消去して処理結果を得る、秘密計算プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/001631 WO2021149092A1 (ja) | 2020-01-20 | 2020-01-20 | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2021149092A1 JPWO2021149092A1 (ja) | 2021-07-29 |
JP7396373B2 true JP7396373B2 (ja) | 2023-12-12 |
Family
ID=76992732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021572116A Active JP7396373B2 (ja) | 2020-01-20 | 2020-01-20 | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230046000A1 (ja) |
JP (1) | JP7396373B2 (ja) |
WO (1) | WO2021149092A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7171113B1 (ja) | 2022-08-31 | 2022-11-15 | 株式会社ZenmuTech | 秘匿計算システム、サーバー、情報処理装置、コンピュータプログラムおよび秘匿計算方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017038761A1 (ja) | 2015-08-31 | 2017-03-09 | 日本電気株式会社 | 秘密計算システム、秘密計算装置、および、秘密計算方法 |
-
2020
- 2020-01-20 WO PCT/JP2020/001631 patent/WO2021149092A1/ja active Application Filing
- 2020-01-20 US US17/790,572 patent/US20230046000A1/en active Pending
- 2020-01-20 JP JP2021572116A patent/JP7396373B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017038761A1 (ja) | 2015-08-31 | 2017-03-09 | 日本電気株式会社 | 秘密計算システム、秘密計算装置、および、秘密計算方法 |
Non-Patent Citations (2)
Title |
---|
五十嵐 大,MEVAL2 vs. CCS Best paper on MPC-AES,SCIS2017 暗号と情報セキュリティシンポジウム2017予稿集,2017年01月24日,pp.1-8、特にpp.1-3 |
古川 潤,スループットの大きいマルチパーティー計算,SCIS2016 コンピュータセ キュリティシンポジウム2016予稿集,2016年01月19日,pp.1-7、特にpp.1-4 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2021149092A1 (ja) | 2021-07-29 |
US20230046000A1 (en) | 2023-02-16 |
WO2021149092A1 (ja) | 2021-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Asharov et al. | More efficient oblivious transfer and extensions for faster secure computation | |
CN104270247B (zh) | 适用于量子密码系统的高效泛Hash函数认证方法 | |
Raghuraman et al. | Blazing fast PSI from improved OKVS and subfield VOLE | |
KR20110009221A (ko) | 유한체 연산을 사용하는 랜덤 번호 발생기를 포함하는 암호 시스템 | |
Akavia et al. | Linear-regression on packed encrypted data in the two-server model | |
US20090323958A1 (en) | Extending a secret bit string to safeguard the secret | |
US11863657B2 (en) | Using cryptographic blinding for efficient use of montgomery multiplication | |
WO2020165932A1 (ja) | 情報処理装置、秘密計算方法及びプログラム | |
AbdElHaleem et al. | A generalized framework for elliptic curves based PRNG and its utilization in image encryption | |
US11599681B2 (en) | Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program | |
Coron et al. | High-order table-based conversion algorithms and masking lattice-based encryption | |
US11895230B2 (en) | Information processing apparatus, secure computation method, and program | |
Pandit et al. | Lwr-based quantum-safe pseudo-random number generator | |
JP7396373B2 (ja) | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム | |
Yang | [Retracted] Application of Hybrid Encryption Algorithm in Hardware Encryption Interface Card | |
US20230004356A1 (en) | Secure random number generation system, secure computation apparatus, secure random number generation method, and program | |
Karl et al. | Cryptonomial: a framework for private time-series polynomial calculations | |
US8036378B2 (en) | System and method of authentication | |
WO2020165931A1 (ja) | 情報処理装置、秘密計算方法及びプログラム | |
Gorbenko et al. | Methods of building general parameters and keys for NTRU Prime Ukraine of 5 th–7 th levels of stability. Product form | |
Gao et al. | New image encryption algorithm based on hyperchaotic 3D-IHAL and a hybrid cryptosystem | |
WO2019111319A1 (ja) | 秘密等号判定システム、秘密等号判定方法および秘密等号判定プログラム記録媒体 | |
Hiwatashi et al. | Accelerating secure (2+ 1)-party computation by insecure but efficient building blocks | |
CN114244517A (zh) | 数据加密及签名方法、装置、计算机设备和存储介质 | |
Catrina | Optimization and tradeoffs in secure floating-point computation: products, powers, and polynomials |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220719 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230822 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231020 |
|
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: 20231031 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231113 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7396373 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |