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

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

Info

Publication number
JP6732959B2
JP6732959B2 JP2018563352A JP2018563352A JP6732959B2 JP 6732959 B2 JP6732959 B2 JP 6732959B2 JP 2018563352 A JP2018563352 A JP 2018563352A JP 2018563352 A JP2018563352 A JP 2018563352A JP 6732959 B2 JP6732959 B2 JP 6732959B2
Authority
JP
Japan
Prior art keywords
secret
data
calculation
share
power
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
JP2018563352A
Other languages
English (en)
Other versions
JPWO2018135511A1 (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 JPWO2018135511A1 publication Critical patent/JPWO2018135511A1/ja
Application granted granted Critical
Publication of JP6732959B2 publication Critical patent/JP6732959B2/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
    • 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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • 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
    • 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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Power Sources (AREA)

Description

この発明は、秘密計算技術に関し、特に、データを秘匿したまま、そのべき乗を計算する技術に関する。
機微なデータを共有して分析するために、データを秘匿したまま分析する秘密計算技術が研究されている。その一種に、データをシェアと呼ばれる複数の断片に分割する秘密分散と呼ばれる手法を用いた秘密計算方法がある。データを秘匿したまま様々な分析を行うために、秘匿したデータの乗算や加算、ソートなどの演算を行うプロトコルが提案されている(例えば、非特許文献1や非特許文献2参照)。
データを秘匿したままべき乗を行うことを考える。あるデータaが秘匿されている状態を[a]と書くとすると、べき乗を計算したい場合(例えば、[a]から[a9]を計算したい場合)は、通常バイナリ法などが用いられる。バイナリ法は乗算を繰り返し用いて所望のべき乗を行う手法である。乗算を行う手続きをMultと書くとすると、バイナリ法では、以下のようにして[a9]を計算する。
1. [a2]←Mult([a], [a])
2. [a4]←Mult([a2], [a2])
3. [a8]←Mult([a4], [a4])
4. [a9]←Mult([a8], [a])
Dai Ikarashi, Ryo Kikuchi, Koki Hamada, and Koji Chida, "Actively private and correct MPC scheme in t<n/2 from passively secure schemes with small overhead", IACR Cryptology ePrint Archive, vol. 2014, p. 304, 2014. Toshinori Araki, Jun Furukawa, Yehuda Lindell, Ariel Nof, and Kazuma Ohara. "High-Throughput Semi-Honest Secure Three-Party Computation with an Honest Majority", ACM CCS 2016.
バイナリ法でべき乗を行うと、m乗を行うためにO(log m)回の乗算が必要である。秘密計算では乗算に通信が必要となりパフォーマンスのボトルネックとなるため、より少ない乗算の呼び出し回数でべき乗を行えることが望ましい。
この発明の目的は、上述のような技術的課題を鑑みて、データを秘匿したまま少ない通信回数でべき乗計算を行うことができる秘密計算技術を提供することである。
上記の課題を解決するために、この発明の第一の態様の秘密計算方法は、GF(pk)を標数pかつ拡大次数kの拡大体とし、aを拡大体GF(pk)の元であるデータとし、[a]をデータaの加法的秘密分散によるシェアとし、νを2以上の整数とし、u, tをt*pu≦νとなる1以上の整数とし、3台以上の秘密計算装置を含む秘密計算システムが実行する、データaのシェア[a]からデータaを秘匿したままデータaのν乗のシェア[aν]を計算する秘密計算方法であって、秘密計算装置のローカル演算部が、他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算し、秘密計算装置の秘密計算部が、他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数がローカル演算部の計算結果[a(t*p^u)]である乗算を計算して、シェア[aν]を求める。
この発明の第二の態様の秘密計算方法は、GF(pk)を標数pかつ拡大次数kの拡大体とし、aを拡大体GF(pk)の元であるデータとし、rを拡大体GF(pk)の元である乱数とし、[a]をデータaの加法的秘密分散によるシェアとし、<a>:=([a], [ra])をデータaのランダム化分散値とし、νを2以上の整数とし、u, tをt*pu≦νとなる1以上の整数とし、3台以上の秘密計算装置を含む秘密計算システムが実行する、データaのランダム化分散値<a>からデータaを秘匿したままデータaのν乗のランダム化分散値<aν>:=([aν], [raν])を計算する秘密計算方法であって、秘密計算装置のローカル演算部が、他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算し、秘密計算装置のランダム化部が、他の秘密計算装置との通信を要する秘密計算により、ローカル演算部の計算結果[a(t*p^u)]と乱数rのシェア[r]との乗算を計算して、ローカル演算部の計算結果のランダム化分散値<a(t*p^u)>:=([a(t*p^u)], [ra(t*p^u)])を求め、秘密計算装置の秘密計算部が、他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数がローカル演算部の計算結果のランダム化分散値<a(t*p^u)>である乗算を計算して、ランダム化分散値<aν>を求める。
この発明によれば、データを秘匿したままべき乗計算を行う際に一部の演算をローカルで行うため、少ない通信回数で高速にべき乗計算を行うことができる。
図1は、第一実施形態の秘密計算システムの機能構成を例示する図である。 図2は、第一実施形態の秘密計算装置の機能構成を例示する図である。 図3は、第一実施形態の秘密計算方法の処理手続きを例示する図である。 図4は、第二実施形態の秘密計算システムの機能構成を例示する図である。 図5は、第二実施形態の秘密計算装置の機能構成を例示する図である。 図6は、第二実施形態の秘密計算方法の処理手続きを例示する図である。
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
<表記方法>
上付き添え字はべき乗を表し、上付き添え字における^はべき乗を表す。すなわち、abはaのb乗を表し、ab^cはaのbc乗を表す。
あるデータaを暗号化や秘密分散などにより秘匿化したデータをaの秘匿文と呼び、[a]と表記する。また、aを[a]の平文と呼ぶ。秘匿化が秘密分散である場合、[a]をデータaのシェアまたは分散値と呼ぶこともある。
データaのランダム化分散値を<a>と表記する。ランダム化分散値とは、データaのシェア[a]と、データaと乱数rとの積算値raのシェア[ra]との組である。したがって、データaのランダム化分散値<a>は、<a>:=([a], [ra])と定義できる。ランダム化分散値<a>:=([a], [ra])のうち、[a]を第0成分と呼び、[ra]を第1成分と呼ぶ。ランダム化分散値による改ざん検知対応については、非特許文献1を参照されたい。
データやシェアの属する体をGF(pk)とし、これ以降、演算は全てGF(pk)上で行われるものとする。pは標数と呼び、kは拡大次数と呼ぶ。例えば、a, b∈GF(7)ならば、a+bはaとbを足し合わせてmod 7を取ったものである。a, b∈GF(28)ならば、a+bはaとbをビット表現した際のビット毎の排他的論理和である。
<加法的秘密分散>
加法的秘密分散とは、データaを次式のように、複数のシェアai(i=0, 1, …, m-1)の和および差に分割し、分散および復元が加減算のみで構成される秘密分散方法である。
Figure 0006732959
加法的秘密分散では、いくつかのサーバが集まり、m個のシェアa0, a1, …, am-1すべてが得られれば元のデータaが復元でき、シェアa0, a1, …, am-1のうち一つでも得られないものがあれば元のデータaを復元することができない。
<複製秘密分散>
加法的秘密分散として、下記に示すプロトコルShareおよびRecからなる複製秘密分散を用いることができる。なお、Shareプロトコルは平文をシェアに分散するプロトコルであり、Recプロトコルはシェアから平文を復元するプロトコルである。ただし、この発明では加法的秘密分散の性質を有していれば複製秘密分散でなくても用いることができる。
データaのシェア全体を[a]とし、シェア[a]のうちサーバiが持つシェアを[a]iと書くものとする。データaを3台のサーバ0, 1, 2に分散する際には、下記のShareプロトコルに従って、データaをあらかじめa0, a1, a2に分割し、サーバ0, 1, 2にそれぞれ[a]0:=(a0,a1), [a]1:=(a1, a2), [a]2:=(a2, a0)を保存する。データaを復元する際には、下記のRecプロトコルに従って、シェア[a]0, [a]1, [a]2のうち少なくとも2つを集めてa0, a1, a2を取得し、それらを加算してデータaを計算する。
Shareプロトコルは、例えば、以下のようなプロトコルである。
Input: a
Output: ([a]0, [a]1, [a]2)
1. a1, a2←GF(pk)
2. a0:=a-(a1+a2)
3. [a]i:=(ai, ai+1 mod 3) for i∈{0, 1, 2}
4. return ([a]0, [a]1, [a]2)
Recプロトコルは、例えば、以下のようなプロトコルである。
Input: [a]i0, [a]i1 (i0, i1∈{0, 1, 2})
Output: a
1. Obtain a0, a1, a2from [a]i0, [a]i1
2. return a:=a0+a1+a2
<複製秘密分散の変形>
複製秘密分散の変形として、以下のような秘密分散も用いることができる。
Shareプロトコルは、例えば、以下のようなプロトコルである。
Input: a
Output: ([a]0, [a]1, [a]2)
1. a1, a2←GF(pk)
2. a0:=-(a1+a2)
3. [a]i:=(ai, ai-1 mod 3- a) for i∈{0, 1, 2}
4. return ([a]0, [a]1, [a]2)
Recプロトコルは、例えば、以下のようなプロトコルである。
Input: [a]i0, [a]i1 (i0, i1∈{0, 1, 2})
Output: a
1. Obtain ai mod 3, ai+1 mod 3, (ai+2 mod 3-a) from [a]i0, [a]i1 for some i ∈{0, 1, 2}
2. return a:=-(a0+a1+a2)
<演算の定義>
Multは、加法的秘密分散の乗算を表す。すなわち、3台のサーバ0, 1, 2にそれぞれ加法的秘密分散のシェアが2つずつ([a]0, [b]0), ([a]1, [b]1), ([a]2, [b]2)保存されているとき、互いに通信および計算を行い、最終的にサーバ0, 1, 2がそれぞれ[ab]0, [ab]1, [ab]2を得るプロトコルである。また、このような演算を[ab]←Mult([a], [b])と表記する。Multは、公知の秘密計算による乗算プロトコルを用いることができ、例えば、複製秘密分散に対しては非特許文献1のScheme 11に記載されたプロトコル、複製秘密分散の変形には非特許文献2のプロトコルなどを用いればよい。以下の実施形態では、Multとして非特許文献1のScheme 11を用いることとする。このとき通信ラウンドはMultを呼び出すたびに1回である。
LocalExpは、各サーバが自身の所有するシェアをべき乗する演算を表す。すなわち、サーバ0, 1, 2にそれぞれ[a]0=(a0, a1), [a]1=(a1, a2), [a]2=(a2, a0)が保存されているとき、サーバ0, 1, 2がそれぞれ[au]0=(au 0, au 1), [au]1=(au 1, au 2), [au]2=(au 2,au 0)を計算するプロトコルである。また、このような演算を[au]:=LocalExp([a], u)と書く。LocalExpは、ローカルに保持している値のべき乗を計算するだけであるため、他のサーバとの通信は発生しない。
DoubleMultは、秘匿文の2つの組を入力とし、各秘匿文同士を乗算した結果の秘匿文を得る演算を表す。すなわち、([a], [a'])と([b], [b'])とを入力とし、([ab], [a'b'])を出力するプロトコルである。また、このような演算を([ab], [a'b'])←DoubleMult(([a],[a']), ([b], [b']))と書く。DoubleMultは、任意の公知のプロトコルを用いることができ、例えば、非特許文献1にこのようなプロトコルが記載されている。このとき通信ラウンドはDoubleMultを呼び出すたびに1回である。また、Multを2回行うことで実現することも可能である。すなわち、[ab]←Mult([a], [b]), [a'b']←Mult([a'], [b'])を計算してもよい。このとき2回のMultは並列で実行できるため、通信ラウンドはDoubleMultと同様に1回である。
<発明の原理>
この発明では、フロベニウス自己準同型という性質を利用する。これは、任意のu∈Z(ただし、Zは整数の集合)に対し、GF(pu)上で次式の関係が成り立つことである。
Figure 0006732959
ここでは簡単のため、
Figure 0006732959
とするが、
Figure 0006732959
のように符号のプラスマイナスが任意であっても成立する。
この関係を加法的秘密分散の平文とシェアとの関係(a=a0+a1+…+am-1)に適用すると、次式の関係が成り立つ。
Figure 0006732959
式(1)の左辺は平文aの「標数べきのべき乗」であり、右辺は平文aのシェアa0, a1, …, am-1の「標数べきのべき乗」の和である。ここで、a':=ap^uと定義し、i=0, …, m-1についてa'i:=ai p^uと定義すれば、式(1)にて加法的秘密分散の平文とシェアの関係(a'=a'0+a'1+…+a'm-1)が成り立っていることがわかる。すなわち、[a]から[ap^u]を計算するときは、各パーティが自身のシェアをpu乗すればよく、一切の通信を必要としない。
この手法を用いることで、任意の数のべき乗についても高速化が可能である。例えば、GF(28)で[a]から[a96]を計算したい場合、下記のように[a64]=[a2^6]と[a32]=[a2^5]をローカルで計算し、Mult([a64], [a32])を行えば[a96]が得られる。これに必要な通信回数はMult演算の1回である。
1. [a64]:=LocalExp([a], 26)
2. [a32]:=LocalExp([a], 25)
3. [a96]←Mult([a64], [a32])
一方、従来のバイナリ法では、以下のようにMult演算を7回行うため、大幅な高速化になっている。
1. [a2]←Mult([a], [a])
2. [a4]←Mult([a2], [a2])
3. [a8]←Mult([a4], [a4])
4. [a16]←Mult([a8], [a8])
5. [a32]←Mult([a16], [a16])
6. [a64]←Mult([a32], [a32])
7. [a96]←Mult([a64], [a32])
<改ざん検知対応>
加法的秘密分散によるシェア[a]から標数べきのべき乗[ap^u]を計算するときは、各パーティが自身のシェアをpu乗すればよいことを確認した。しかしながら、秘密計算において改ざんを行おうとする攻撃者を想定し、非特許文献1に記載された改ざん検知対応の手法を用いた場合、各パーティが持つシェアは、加法的秘密分散のシェア[a]とランダム化シェア[ra]との組であるランダム化分散値<a>:=([a], [ra])となる。また、それとは別に、乱数を加法的秘密分散で分散したシェア[r]も持つことになる。
改ざんを行おうとする攻撃者を想定した際の標数べきのべき乗の入出力は、入力が<a>:=([a], [ra])であり、出力が<ap^u>:=([ap^u], [rap^u])である。上述の標数べきのべき乗を素直にランダム化シェア[ra]に適用してしまうと、第1成分が[rap^u]ではなく[(ra)p^u]=[rp^uap^u]となってしまい、所望の出力が得られない。そのため、ランダム化シェア[ra]には標数べきのべき乗を行わず、[a]に対して標数べきのべき乗を行い、[ap^u]を得た後に[r]を乗じて[rap^u]を求める。すなわち、<a>=([a], [ra])から<ap^u>=([ap^u],[rap^u])を求めるときは、[a]をpu乗して[ap^u]を求めた後に、Mult([ap^u], [r])を行い、[rap^u]を得る。
<第一実施形態>
第一実施形態の秘密計算システムは、図1に例示するように、n(≧3)台の秘密計算装置11, …, 1nを含む。秘密計算装置11, …, 1nはそれぞれ通信網3へ接続される。通信網3は、秘密計算装置11, …, 1nがそれぞれと通信可能なように構成された回線交換方式もしくはパケット交換方式の通信網であり、例えばインターネットやLAN(Local Area Network)、WAN(Wide Area Network)などを用いることができる。なお、各装置は必ずしも通信網3を介してオンラインで通信可能である必要はない。例えば、秘密計算装置1i(i∈{1, …, n})へ入力する情報を磁気テープやUSBメモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体からオフラインで入力するように構成してもよい。
秘密計算装置1は、図2に例示するように、入力部11、ローカル演算部12、秘密計算部14、および出力部15を含む。この秘密計算装置1が、他の秘密計算装置1と協調して図3に例示する各ステップの処理を行うことにより第一実施形態の秘密計算方法が実現される。
秘密計算装置1は、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。秘密計算装置1は、例えば、中央演算処理装置の制御のもとで各処理を実行する。秘密計算装置1に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。秘密計算装置1の各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
以下、図3を参照して、第一実施形態の秘密計算方法の処理手続きを説明する。
ステップS11において、入力部11へ、演算対象のデータaの加法的秘密分散によるシェア[a]と、データaをべき乗する際の指数ν(≧2)とが入力される。シェア[a]および指数νはローカル演算部12へ送られる。
ステップS12において、ローカル演算部12は、他の秘密計算装置と通信を行わずに、データaのt乗の加法的秘密分散のシェア[at]の標数べきのべき乗puを計算し、データatのpu乗の加法的秘密分散によるシェア[at*p^u]を求める。すなわち、[at*p^u]:=LocalExp([at], pu)を計算する。ここで、u, tはt*pu≦νとなる1以上の整数である。ローカル演算部12は、データaのν乗の加法的秘密分散によるシェア[aν]を求めるために複数回実行されることがあるが、少なくとも1回目の実行時には、t=1となり、データaの加法的秘密分散によるシェア[a]のpu乗を計算する。
ステップS13において、秘密計算部14は、秘密計算により他の秘密計算装置と協調して、データaのα乗の加法的秘密分散のシェア[aα]とデータaのβ乗の加法的秘密分散のシェア[aβ]との乗算を計算する。すなわち、[aα+β]←Mult([aα], [aβ])を計算する。ここで、α, βはα+β≦νとなる1以上の整数である。[aα]および[aβ]のいずれかは、ローカル演算部12により求めたデータatのpu乗の加法的秘密分散によるシェア[at*p^u]である。すなわち、α=t*puもしくはβ=t*puである。秘密計算部14は、データaのν乗の加法的秘密分散によるシェア[aν]を求めるために複数回実行されることがある。
ステップS14において、出力部15は、ローカル演算部12または秘密計算部14の計算結果がデータaのν乗の加法的秘密分散によるシェア[aν]となったら、そのシェア[aν]を出力する。
<第二実施形態>
第二実施形態は、秘密計算によるべき乗計算において、改ざん検知を可能とする秘密計算システムである。第二実施形態の秘密計算システムは、図4に例示するように、n(≧3)台の秘密計算装置21, …, 2nを含む。
秘密計算装置2は、図5に例示するように、入力部11、ローカル演算部12、ランダム化部13、秘密計算部14、および出力部15を含む。この秘密計算装置2が、他の秘密計算装置2と協調して図6に例示する各ステップの処理を行うことにより第二実施形態の秘密計算方法が実現される。
以下、図6を参照して、第二実施形態の秘密計算方法の処理手続きを説明する。
ステップS21において、入力部11へ、演算対象のデータaの加法的秘密分散によるランダム化分散値<a>:=([a], [ra])と、ランダム化分散値<a>を生成する際に用いた乱数rの加法的秘密分散によるシェア[r]と、データaをべき乗する際の指数νとが入力される。ランダム化分散値<a>、シェア[r]、および指数νはローカル演算部12へ送られる。
ステップS22において、ローカル演算部12は、他の秘密計算装置と通信を行わずに、データaのt乗の加法的秘密分散のシェア[at]の標数べきのべき乗puを計算し、データatのpu乗の加法的秘密分散によるシェア[at*p^u]を求める。すなわち、[at*p^u]:=LocalExp([at], pu)を計算する。シェア[at*p^u]はランダム化部13へ送られる。
ステップS23において、ランダム化部13は、秘密計算により他の秘密計算装置と協調して、ローカル演算部12の計算結果[a(t*p^u)]と乱数rの加法的秘密分散によるシェア[r]との乗算を計算する。すなわち、[ra(t*p^u)]←Mult([a(t*p^u)], [r])を計算する。これにより、データatのpu乗のランダム化分散値<a(t*p^u)>:=([a(t*p^u)], [ra(t*p^u)])を生成することができる。また、ランダム化部13は、ローカル演算部12の計算結果[a(t*p^u)]と他のランダム化分散値<as>:=([as], [ras])の第1成分[ras]との乗算を計算してもよい。すなわち、[ra(t*p^u)+s]←Mult([a(t*p^u)], [ras])を計算してもよい。ここで、sはt*pu+s≦νとなる1以上の整数である。このとき同時に、秘密計算部14がローカル演算部12の計算結果[a(t*p^u)+s]と他のランダム化分散値<as>:=([as], [ras])の第0成分[as]との乗算[a(t*p^u)+s]←Mult([a(t*p^u)], [as])を計算することで、データatのpu乗とデータasとの乗算のランダム化分散値<a(t*p^u)+s>:=([a(t*p^u)+s], [ra(t*p^u)+s])を生成することができる。
ステップS24において、秘密計算部14は、秘密計算により他の秘密計算装置と協調して、データaのα乗の加法的秘密分散のランダム化分散値<aα>:=([aα], [raα])とデータaのβ乗の加法的秘密分散のランダム化分散値<aβ>:=([aβ], [raβ])との乗算を計算する。この乗算には、上記のDoubleMultを用いることができる。すなわち、<aα+β>←DoubleMult(([aα], [aα]), ([aβ], [raβ]))を計算する。また、上記のMultを2回並列で実行してもよい。すなわち、[aα+β]←Mult([aα], [aβ])と、[raα+β]←Mult([aα], [raβ])とを計算し、[aα+β]と[raα+β]とを組み合わせて<aα+β>:=([aα+β], [raα+β])を生成する。<aα>および<aβ>のいずれかは、ランダム化部13により求めたデータatのpu乗の加法的秘密分散によるランダム化分散値<at*p^u>である。すなわち、α=t*puもしくはβ=t*puである。秘密計算部14は、データaのν乗の加法的秘密分散によるランダム化分散値<aν>を求めるために複数回実行されることがある。
ステップS25において、出力部15は、ランダム化部13または秘密計算部14の計算結果がデータaのν乗の加法的秘密分散によるランダム化分散値<aν>となったら、そのランダム化分散値<aν>を出力する。
<具体例>
以下、上述の実施形態により実現される具体的なプロトコルを示す。以下の具体例は3パーティによる秘密計算を想定しているが、この発明の秘密計算技術は3パーティの秘密計算に限られるものではない。また、以下の具体例では、GF(28)およびGF(33)の例を示すが、標数は2, 3に限られるものではなく、拡大次数は8, 3に限られるものではない。
第一の具体例は、体GF(28)上の秘密計算において、べき乗を行うプロトコルである。ここでは、[a]から[a21]を計算するプロトコルを示す。
Input: [a]
Output: [a21]
1. [a16]:=LocalExp([a], 24)
2. [a4]:=LocalExp([a], 22)
3. [a20]←Mult([a16], [a4])
4. [a21]←Mult([a20], [a1])
5. return [a21]
上記のプロトコルではMultが2回であり、通信ラウンド数は2である。一方、[a21]をバイナリ法で計算した場合、下記のプロトコルのとおり、Multが6回必要であり、通信ラウンド数が大幅に削減できていることがわかる。
Input: [a]
Output: [a21]
1. [a2]←Mult([a], [a])
2. [a4]←Mult([a2], [a2])
3. [a5]←Mult([a4], [a])
4. [a10]←Mult([a5], [a5])
5. [a20]←Mult([a10], [a10])
6. [a21]←Mult([a20], [a])
7. return [a21]
第二の具体例は、体GF(28)上の秘密計算において、逆元を求めるプロトコルである。ここでは、[a]の逆元[a-1]を計算するプロトコルを示す。フェルマーの小定理により、[a-1]=[a254]であるから、逆元を求めることは254乗を計算することと同義である。
Input: [a]
Output: [a-1]=[a254]
1. [a2]:=LocalExp([a], 2)
2. [a3]←Mult([a2], [a])
3. [a12]:=LocalExp([a3], 22)
4. [a15]←Mult([a12], [a3])
5. [a14]←Mult([a12], [a2])
6. [a240]:=LocalExp([a15], 24)
7. [a254]←Mult([a240], [a14])
8. return [a254]
上記のプロトコルでは4行目と5行目を並列で実行できるため、通信ラウンド数は3である。一方、[a-1]をバイナリ法で計算した場合、下記のプロトコルのとおり、Multが13回必要であり、通信ラウンド数が大幅に削減できていることがわかる。
Input: [a]
Output: [a-1]=[a254]
1. [a2]←Mult([a], [a])
2. [a3]←Mult([a2], [a])
3. [a6]←Mult([a3], [a3])
4. [a7]←Mult([a6], [a])
5. [a14]←Mult([a7], [a7])
6. [a15]←Mult([a14], [a])
7. [a30]←Mult([a30], [a30])
8. [a31]←Mult([a30], [a])
9. [a62]←Mult([a32], [a32])
10. [a63]←Mult([a62], [a])
11. [a126]←Mult([a63], [a63])
12. [a127]←Mult([a126], [a])
13. [a254]←Mult([a127], [a127])
14. return [a254]
第三の具体例は、体GF(28)上の秘密計算におけるべき乗プロトコルを改ざん検知に対応したものである。ここでは、<a>=([a], [ra])から<a21>=([a21], [ra21])を計算するプロトコルを示す。下記のプロトコルでは、ランダム化シェアのべき乗を避けるために、ローカル演算の後に乱数の乗算をMultにより行っている。
Input: <a>=([a], [ra]), [r]
Output: <a21>=([a21], [ra21])
1. [a16]:=LocalExp([a], 24)
2. [a4]:=LocalExp([a], 22)
3. [ra4]←Mult([a4], [r])
4. ([a20], [ra20])←DoubleMult(([a16], [a16]), ([a4], [ra4]))
5. ([a21], [ra21])←DoubleMult(([a], [a]), ([a20], [ra20]))
6. return <a21>=([a21], [ra21])
第四の具体例は、体GF(28)上の秘密計算における逆元プロトコルを改ざん検知に対応したものである。ここでは、<a>=([a], [ra])の逆元<a-1>=<a254>=([a254], [ra254])を計算するプロトコルを示す。下記のプロトコルでは、ランダム化シェアのべき乗を避けるために、ローカル演算の後に乱数の乗算をMultにより行っている。
Input: <a>=([a], [ra]), [r]
Output: <a-1>=<a254>=([a254], [ra254])
1. [a2]:=LocalExp([a], 2)
2. [ra2]←Mult([a2], [r])
3. ([a3], [ra3])←DoubleMult(([a], [a]), ([a2], [ra2]))
4. [a12]:=LocalExp([a3], 22)
5. ([a15], [ra15])←DoubleMult(([a12], [a12]), ([a3], [ra3]))
6. ([a14], [ra14])←DoubleMult(([a12], [a12]), ([a2], [ra2]))
7. [a240]:=LocalExp([a15], 24)
8. ([a254], [ra254])←DoubleMult(([a240], [a240]), ([a14], [ra14]))
9. return <a254>=([a254], [ra254])
第五の具体例は、体GF(33)上の秘密計算において、べき乗を行うプロトコルである。ここでは、[a]から[a10]を計算するプロトコルを示す。
Input: [a]
Output: [a10]
1. [a9]:=LocalExp([a], 32)
2. [a10]←Mult([a9], [a])
3. return [a10]
上記のプロトコルではMultが1回であり、通信ラウンド数は1である。一方、[a10]をバイナリ法で計算した場合、下記のプロトコルのとおり、Multが4回必要であり、通信ラウンド数が大幅に削減できていることがわかる。
Input: [a]
Output: [a10]
1. [a2]←Mult([a], [a])
2. [a4]←Mult([a2], [a2])
3. [a5]←Mult([a4], [a])
4. [a10]←Mult([a5], [a5])
5. return [a10]
第六の具体例は、体GF(33)上の秘密計算において、逆元を求めるプロトコルである。ここでは、[a]の逆元[a-1]を計算するプロトコルを示す。フェルマーの小定理により、[a-1]=[a25]であるから、逆元を求めることは25乗を計算することと同義である。
Input: [a]
Output: [a-1]=[a25]
1. [a9]:=LocalExp([a], 32)
2. [a3]:=LocalExp([a], 3)
2. [a12]←Mult([a9], [a3])
4. [a24]←Mult([a12], [a12])
5. [a25]←Mult([a24], [a])
8. return [a25]
上記のプロトコルではMultが3回であり、並列で行うこともできないため、通信ラウンド数は3である。一方、[a-1]をバイナリ法で計算した場合、下記のプロトコルのとおり、Multが6回必要であり、通信ラウンド数が大幅に削減できていることがわかる。
Input: [a]
Output: [a-1]=[a25]
1. [a2]←Mult([a], [a])
2. [a3]←Mult([a2], [a])
3. [a6]←Mult([a3], [a3])
4. [a12]←Mult([a6], [a6])
5. [a24]←Mult([a12], [a12])
6. [a25]←Mult([a24], [a])
7. return [a25]
第七の具体例は、体GF(33)上の秘密計算におけるべき乗プロトコルを改ざん検知に対応したものである。ここでは、<a>=([a], [ra])から<a10>=([a10], [ra10])を計算するプロトコルを示す。下記のプロトコルでは、ランダム化シェアのべき乗を避けるために、ローカル演算の後に乱数の乗算をMultにより行っている。
Input: <a>=([a], [ra]), [r]
Output: <a10>=([a10], [ra10])
1. [a9]:=LocalExp([a], 32)
2. ([a10], [ra10])←DoubleMult(([a9], [a9]), ([a], [ra]))
3. return <a10>=([a10], [ra10])
第八の具体例は、体GF(33)上の秘密計算における逆元プロトコルを改ざん検知に対応したものである。ここでは、<a>=([a], [ra])の逆元<a-1>=<a25>=([a25], [ra25])を計算するプロトコルを示す。下記のプロトコルでは、ランダム化シェアのべき乗を避けるために、ローカル演算の後に乱数の乗算をMultにより行っている。
Input: <a>=([a], [ra]), [r]
Output: <a-1>=<a25>=([a25], [ra25])
1. [a9]:=LocalExp([a], 32)
2. [a3]:=LocalExp([a], 3)
3. [ra3]←Mult([a3], [r])
4. ([a12], [ra12])←DoubleMult(([a9], [a9]), ([a3], [ra3]))
5. ([a24], [ra24])←DoubleMult(([a12], [a12]), ([a12], [ra12]))
6. ([a25], [ra25])←DoubleMult(([a24], [a24]), ([a], [ra]))
7. return <a25>=([a25], [ra25])
この発明の秘密計算技術は、拡大体上の以下の関係式を利用して、標数べきのべき乗をローカルで実行することで、べき乗計算全体の通信回数を削減したことにより、データを秘匿したまま高速にべき乗を計算することが可能となる。また、この技術を応用することで、べき乗を用いる逆元計算も高速に行うことが可能となる。
Figure 0006732959
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[プログラム、記録媒体]
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (7)

  1. GF(pk)を標数pかつ拡大次数kの拡大体とし、aを拡大体GF(pk)の元であるデータとし、[a]をデータaの加法的秘密分散によるシェアとし、νを2以上の整数とし、u, tをt*pu≦νとなる1以上の整数とし、
    3台以上の秘密計算装置を含む秘密計算システムが実行する、データaのシェア[a]からデータaを秘匿したままデータaのν乗のシェア[aν]を計算する秘密計算方法であって、
    上記秘密計算装置のローカル演算部が、他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算し、
    上記秘密計算装置の秘密計算部が、他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数が上記ローカル演算部の計算結果[a(t*p^u)]である乗算を計算して、上記シェア[aν]を求める、
    秘密計算方法。
  2. GF(pk)を標数pかつ拡大次数kの拡大体とし、aを拡大体GF(pk)の元であるデータとし、rを拡大体GF(pk)の元である乱数とし、[a]をデータaの加法的秘密分散によるシェアとし、<a>:=([a], [ra])をデータaのランダム化分散値とし、νを2以上の整数とし、u, tをt*pu≦νとなる1以上の整数とし、
    3台以上の秘密計算装置を含む秘密計算システムが実行する、データaのランダム化分散値<a>からデータaを秘匿したままデータaのν乗のランダム化分散値<aν>:=([aν], [raν])を計算する秘密計算方法であって、
    上記秘密計算装置のローカル演算部が、他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算し、
    上記秘密計算装置のランダム化部が、他の秘密計算装置との通信を要する秘密計算により、上記ローカル演算部の計算結果[a(t*p^u)]と上記乱数rのシェア[r]との乗算を計算して、上記ローカル演算部の計算結果のランダム化分散値<a(t*p^u)>:=([a(t*p^u)], [ra(t*p^u)])を求め、
    上記秘密計算装置の秘密計算部が、他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数が上記ローカル演算部の計算結果のランダム化分散値<a(t*p^u)>である乗算を計算して、上記ランダム化分散値<aν>を求める、
    秘密計算方法。
  3. GF(pk)を標数pかつ拡大次数kの拡大体とし、aを拡大体GF(pk)の元であるデータとし、[a]をデータaの加法的秘密分散によるシェアとし、νを2以上の整数とし、u, tをt*pu≦νとなる1以上の整数とし、
    3台以上の秘密計算装置を含み、データaのシェア[a]からデータaを秘匿したままデータaのν乗のシェア[aν]を計算する秘密計算システムであって、
    上記秘密計算装置は、
    他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算するローカル演算部と、
    他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数が上記ローカル演算部の計算結果[a(t*p^u)]である乗算を計算して、上記シェア[aν]を求める秘密計算部と、
    を含む秘密計算システム。
  4. GF(pk)を標数pかつ拡大次数kの拡大体とし、aを拡大体GF(pk)の元であるデータとし、rを拡大体GF(pk)の元である乱数とし、[a]をデータaの加法的秘密分散によるシェアとし、<a>:=([a], [ra])をデータaのランダム化分散値とし、νを2以上の整数とし、u, tをt*pu≦νとなる1以上の整数とし、
    3台以上の秘密計算装置を含み、データaのランダム化分散値<a>からデータaを秘匿したままデータaのν乗のランダム化分散値<aν>:=([aν], [raν])を計算する秘密計算システムであって、
    上記秘密計算装置は、
    他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算するローカル演算部と、
    他の秘密計算装置との通信を要する秘密計算により、上記ローカル演算部の計算結果[a(t*p^u)]と上記乱数rのシェア[r]との乗算を計算して、上記ローカル演算部の計算結果のランダム化分散値<a(t*p^u)>:=([a(t*p^u)], [ra(t*p^u)])を求めるランダム化部と、
    他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数が上記ローカル演算部の計算結果のランダム化分散値<a(t*p^u)>である乗算を計算して、上記ランダム化分散値<aν>を求める秘密計算部と、
    を含む秘密計算システム。
  5. GF(pk)を標数pかつ拡大次数kの拡大体とし、aを拡大体GF(pk)の元であるデータとし、[a]をデータaの加法的秘密分散によるシェアとし、νを2以上の整数とし、u, tをt*pu≦νとなる1以上の整数とし、
    データaのシェア[a]からデータaを秘匿したままデータaのν乗のシェア[aν]を計算する秘密計算システムに含まれる秘密計算装置であって、
    他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算するローカル演算部と、
    他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数が上記ローカル演算部の計算結果[a(t*p^u)]である乗算を計算して、上記シェア[aν]を求める秘密計算部と、
    を含む秘密計算装置。
  6. GF(pk)を標数pかつ拡大次数kの拡大体とし、aを拡大体GF(pk)の元であるデータとし、rを拡大体GF(pk)の元である乱数とし、[a]をデータaの加法的秘密分散によるシェアとし、<a>:=([a], [ra])をデータaのランダム化分散値とし、νを2以上の整数とし、u, tをt*pu≦νとなる1以上の整数とし、
    データaのランダム化分散値<a>からデータaを秘匿したままデータaのν乗のランダム化分散値<aν>:=([aν], [raν])を計算する秘密計算システムに含まれる秘密計算装置であって、
    他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算するローカル演算部と、
    他の秘密計算装置との通信を要する秘密計算により、上記ローカル演算部の計算結果[a(t*p^u)]と上記乱数rのシェア[r]との乗算を計算して、上記ローカル演算部の計算結果のランダム化分散値<a(t*p^u)>:=([a(t*p^u)], [ra(t*p^u)])を求めるランダム化部と、
    他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数が上記ローカル演算部の計算結果のランダム化分散値<a(t*p^u)>である乗算を計算して、上記ランダム化分散値<aν>を求める秘密計算部と、
    を含む秘密計算装置。
  7. 請求項5または6に記載の秘密計算装置としてコンピュータを機能させるためのプログラム。
JP2018563352A 2017-01-18 2018-01-17 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム Active JP6732959B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017006355 2017-01-18
JP2017006355 2017-01-18
PCT/JP2018/001135 WO2018135511A1 (ja) 2017-01-18 2018-01-17 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2018135511A1 JPWO2018135511A1 (ja) 2019-11-07
JP6732959B2 true JP6732959B2 (ja) 2020-07-29

Family

ID=62908607

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018563352A Active JP6732959B2 (ja) 2017-01-18 2018-01-17 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム

Country Status (4)

Country Link
US (1) US11646880B2 (ja)
EP (2) EP3573041A4 (ja)
JP (1) JP6732959B2 (ja)
WO (1) WO2018135511A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6713585B2 (ja) * 2017-07-05 2020-06-24 日本電信電話株式会社 秘密計算システム、秘密計算装置、秘密計算方法、プログラム、および記録媒体
US11895230B2 (en) 2019-01-24 2024-02-06 Nec Corporation Information processing apparatus, secure computation method, and program
WO2022044173A1 (ja) * 2020-08-26 2022-03-03 日本電気株式会社 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム
CN114448631B (zh) * 2022-04-07 2022-06-07 华控清交信息科技(北京)有限公司 一种多方安全计算方法、系统和用于多方安全计算的装置
CN114448630B (zh) * 2022-04-07 2022-06-14 华控清交信息科技(北京)有限公司 一种多方安全计算方法、系统和用于多方安全计算的装置

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4975867A (en) * 1987-06-26 1990-12-04 Digital Equipment Corporation Apparatus for dividing elements of a Galois Field GF (2QM)
US6038581A (en) * 1997-01-29 2000-03-14 Nippon Telegraph And Telephone Corporation Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
JP3560860B2 (ja) * 1999-07-23 2004-09-02 株式会社東芝 秘密分散システム、装置及び記憶媒体
FR2807898B1 (fr) * 2000-04-18 2002-06-28 Gemplus Card Int Procede de cryptographie sur courbes elliptiques
FR2822002B1 (fr) * 2001-03-12 2003-06-06 France Telecom Authentification cryptographique par modules ephemeres
US6766344B2 (en) * 2001-05-08 2004-07-20 International Business Machines Corporation Processing Galois Field arithmetic
KR20070046778A (ko) * 2003-11-03 2007-05-03 코닌클리케 필립스 일렉트로닉스 엔.브이. 멀티파티 곱셈을 효율적으로 수행하기 위한 방법 및 장치
DE102005041102A1 (de) * 2005-08-30 2007-03-15 Siemens Ag Verfahren zur Skalarmultiplikation von Punkten auf einer elliptischen Kurve
US7885406B2 (en) * 2006-10-10 2011-02-08 Microsoft Corporation Computing endomorphism rings of Abelian surfaces over finite fields
US7995757B2 (en) * 2007-05-31 2011-08-09 Harris Corporation Closed galois field combination
JP4189828B1 (ja) * 2007-10-30 2008-12-03 国立大学法人 岡山大学 ペアリング演算装置、ペアリング演算方法、及びペアリング演算プログラム
JP4521503B2 (ja) * 2008-02-25 2010-08-11 国立大学法人 岡山大学 スカラー倍算の演算プログラム及びべき乗算の演算プログラム
US8139764B2 (en) * 2008-05-06 2012-03-20 Harris Corporation Closed galois field cryptographic system
WO2010061951A1 (ja) * 2008-11-28 2010-06-03 国立大学法人岡山大学 スカラ倍算器及びスカラ倍算プログラム
US8630422B2 (en) * 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
FR2960727B1 (fr) * 2010-05-26 2016-04-15 Oberthur Technologies Procede d'evaluation d'une fonction
US8903083B2 (en) * 2010-08-16 2014-12-02 International Business Machines Corporation Fast evaluation of many polynomials with small coefficients on the same point
JP5531154B2 (ja) * 2011-03-10 2014-06-25 日本電信電話株式会社 秘匿積和結合システム、計算装置、秘匿積和結合方法、及びそれらのプログラム
US8433893B2 (en) * 2011-03-30 2013-04-30 Mitsubishi Electric Research Laboratories, Inc. Privacy-preserving probabilistic inference based on hidden markov models
US8799343B2 (en) * 2011-09-22 2014-08-05 Intel Corporation Modular exponentiation with partitioned and scattered storage of Montgomery Multiplication results
US20160365973A1 (en) * 2012-10-30 2016-12-15 Nederlandse Organisatie Voor Toegepast-Natuurwetenschappelijk Onderzoek Tno Secure Distribution of Watermarked Content
US9860058B2 (en) * 2013-01-17 2018-01-02 Nippon Telegraph And Telephone Corporation Secret computation system, arithmetic unit, secret computation method and program
US10083310B1 (en) * 2013-03-13 2018-09-25 Hrl Laboratories, Llc System and method for mobile proactive secure multi-party computation (MPMPC) using commitments
US9787472B1 (en) * 2013-03-13 2017-10-10 Hrl Laboratories, Llc Information secure protocol for mobile proactive secret sharing with near-optimal resilience
JP6089878B2 (ja) * 2013-03-28 2017-03-08 富士通株式会社 直交変換装置、直交変換方法及び直交変換用コンピュータプログラムならびにオーディオ復号装置
US10075288B1 (en) * 2014-02-28 2018-09-11 The Governing Council Of The University Of Toronto Systems, devices, and processes for homomorphic encryption
US10423806B2 (en) * 2014-11-12 2019-09-24 Calctopia Limited Secure multiparty computation on spreadsheets
US10950144B2 (en) 2014-12-26 2021-03-16 Nippon Telegraph And Telephone Corporation Secret falsification detecting system, secret computation apparatus, secret falsification detecting method, and program
WO2016159357A1 (ja) * 2015-04-03 2016-10-06 日本電気株式会社 秘密計算システム、サーバ装置、秘密計算方法、および、プログラム
US9906505B2 (en) * 2015-05-08 2018-02-27 Nxp B.V. RSA decryption using multiplicative secret sharing
US11042358B2 (en) * 2016-08-18 2021-06-22 Nec Corporation Secure computation system, secure computation method, secure computation apparatus, distribution information generation apparatus, and methods and programs therefor
US11362829B2 (en) * 2017-01-06 2022-06-14 Koninklijke Philips N.V. Distributed privacy-preserving verifiable computation
US11323444B2 (en) * 2017-09-29 2022-05-03 Robert Bosch Gmbh Method for faster secure multiparty inner product computation with SPDZ

Also Published As

Publication number Publication date
EP4167213B1 (en) 2024-03-13
US20190349193A1 (en) 2019-11-14
JPWO2018135511A1 (ja) 2019-11-07
EP4167213A1 (en) 2023-04-19
EP3573041A4 (en) 2020-06-03
WO2018135511A1 (ja) 2018-07-26
US11646880B2 (en) 2023-05-09
EP3573041A1 (en) 2019-11-27

Similar Documents

Publication Publication Date Title
JP6732959B2 (ja) 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム
Bogdanov et al. High-performance secure multi-party computation for data mining applications
JP6095792B2 (ja) 秘密ビット分解装置、秘密モジュラス変換装置、秘密ビット分解方法、秘密モジュラス変換方法、プログラム
US11164484B2 (en) Secure computation system, secure computation device, secure computation method, and program
US8817973B2 (en) Encrypting method having countermeasure function against power analyzing attacks
US11294633B2 (en) Secure computation system, secure computation device, secure computation method, and program
JP5860557B1 (ja) 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム
CN111984990B (zh) 基于边缘计算的支持隐私保护的矩阵乘法任务外包方法
CN101371285B (zh) 加密处理装置、加密处理方法
Oliveira et al. Fast point multiplication algorithms for binary elliptic curves with and without precomputation
WO2020075797A1 (ja) 秘密右シフト演算システム、秘密除算システム、それらの方法、秘密計算装置、およびプログラム
KR20120028432A (ko) 타원곡선암호를 위한 연산 장치 및 방법
EP4016506B1 (en) Softmax function secret calculation system, softmax function secret calculation device, softmax function secret calculation method, neural network secret calculation system, neural network secret learning system, and program
US20220413807A1 (en) Secure random number generation system, secure computation apparatus, secure random number generation method, and program
CN109190395B (zh) 一种基于数据变换的全同态加密方法及系统
EP3483867B1 (en) System, device, method, and program for indexing a secret-shared array with secure multiparty computations
JP6781397B2 (ja) 秘密分散システム
Wu et al. On the improvement of wiener attack on rsa with small private exponent
JP7173170B2 (ja) 情報処理装置、秘密計算方法及びプログラム
Nath et al. Security and efficiency trade-offs for elliptic curve Diffie–Hellman at the 128-bit and 224-bit security levels
JP2018205511A (ja) パラメータ変換方法、パラメータ変換装置、パラメータ変換プログラム、ペアリング演算方法、ペアリング演算装置、及びペアリング演算プログラム
JP6693503B2 (ja) 秘匿検索システム、サーバ装置、秘匿検索方法、検索方法、およびプログラム
Gulen et al. Elliptic‐curve cryptography for wireless sensor network nodes without hardware multiplier support
WO2021124520A1 (ja) 秘密乱数生成システム、秘密計算装置、秘密乱数生成方法、およびプログラム
Shylashree et al. Efficient Implementation of Scalar Multiplication for Elliptic Curve Cryptography using Ancient Indian Vedic Mathematics over GF (p)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190624

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200708

R150 Certificate of patent or registration of utility model

Ref document number: 6732959

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150