JPWO2020152831A1 - 情報処理装置、秘密計算方法及びプログラム - Google Patents

情報処理装置、秘密計算方法及びプログラム Download PDF

Info

Publication number
JPWO2020152831A1
JPWO2020152831A1 JP2020567320A JP2020567320A JPWO2020152831A1 JP WO2020152831 A1 JPWO2020152831 A1 JP WO2020152831A1 JP 2020567320 A JP2020567320 A JP 2020567320A JP 2020567320 A JP2020567320 A JP 2020567320A JP WO2020152831 A1 JPWO2020152831 A1 JP WO2020152831A1
Authority
JP
Japan
Prior art keywords
exponentiation
partial
value
distributed
modular exponentiation
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.)
Granted
Application number
JP2020567320A
Other languages
English (en)
Other versions
JP7173170B2 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2020152831A1 publication Critical patent/JPWO2020152831A1/ja
Application granted granted Critical
Publication of JP7173170B2 publication Critical patent/JP7173170B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/4806Computations with complex numbers
    • G06F7/4812Complex multiplication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)

Abstract

秘密計算による冪剰余をより少ない通信量、通信回数で実現する情報処理装置を提供する。情報処理装置は、部分冪剰余計算部と、部分冪剰余合成部と、を備える。部分冪剰余計算部は、入力された平文の底及び法と、分散された指数と、から平文の分散された指数の冪乗の剰余に関する分散値の組を部分冪剰余として計算する。部分冪剰余合成部は、部分冪乗余から平文の分散された指数の合計値の冪乗の剰余に関する分散値を冪乗余の分散値として計算する。

Description

本発明は、情報処理装置、秘密計算方法及びプログラムに関する。特に、複数の装置が互いに通信を介しながら計算することで与えられた関数の出力を計算する方法で、これらのいずれの装置も十分な数の多装置間で互いに扱うデータを共有しない限り、関数への入力や出力に関する情報を得ることができない方法に関する。
秘密計算法は、関連する主体に対して計算過程と結果を秘匿することができる技術である。データをクラウドのような第3者が管理する複数サーバに分散して保管することで、データに対してあらゆる演算を実行することができる。第3者には、データ、計算過程、計算結果を知られることがないため、個人情報のような機微な情報に対する分析処理をアウトソースするために用いることができる。
非特許文献1には、秘密計算に用いる乱数の生成が開示されている。非特許文献2には「ビット分解」と称される技術が開示されている。ビット分解の詳細は後述する。非特許文献3は、PRG(Psudo Random Generator)を、鍵とインデックスを入力としてnビットの数値列を出力する擬似乱数生成器を開示する。非特許文献3等に記載されている。非特許文献4には、ビット注入(bit injection)と称される技術が開示されている。ビット注入の詳細は後述する。
軽量検証可能3 パーティ秘匿関数計算の効率化及びこれを用いたセキュアなデータベース処理 五十嵐大 千田浩司 濱田浩気 高橋克己 SCIS2011 少パーティの秘密分散ベース秘密計算のためのO(l)ビット通信ビット分解およびO(|p|’)ビット通信Modulus変換法 五十嵐大 濱田浩気 菊池亮 千田浩司 CSS2013 High-Throughput Semi-Honest Secure Three-Party Computation with an Honest Majority, Toshinori Araki, Jun Furukawa, Yehuda Lindell, Ariel Nof, Kazuma Ohara Generalizing the SPDZ Compiler For Other Protocols, Toshinori Araki, Assi Barak, Jun Furukawa, Marcel Keller, Yehuda Lindell, Kazuma Ohara, Hikaru Tsuchida
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
ここで、冪剰余は、ある値xとa、および法pを入力として、x^a mod pを計算する処理である。ここで、xは冪剰余の底、aは指数である。
冪剰余の秘密計算においては、
(1)xを秘匿する
(2)aを秘匿する
(3)xとaの両方を秘匿する
という3つのパターンが考えられる。本願開示は、特に(2)の指数aを秘匿したままx^a mod pを計算する手法に関する。
冪剰余は主に暗号要素技術において頻繁に用いられる処理の一つである。このとき、冪剰余の指数は暗号においてしばしば秘匿されるべき値として扱われることが多い。秘密計算で冪剰余を実行できると、分散システムにおいて暗号系処理を実現することができる。一例として、秘密鍵を保護したままデジタル署名を計算することが可能になり、ブロックチェーン等の分散ノード上での秘密鍵保護などの応用が考えられる。既知の冪剰余の計算方法は、数値演算と論理演算の組み合わせによって実現されるため、秘密計算では先に述べたビット分解等を用いてこれを実現できる。しかし、通信量および通信回数は未だに大きく、より効率のよいプロトコルが求められる。
本発明は、秘密計算による冪剰余をより少ない通信量、通信回数で実現することに寄与する、情報処理装置、秘密計算方法及びプログラムを提供することを主たる目的とする。
本発明乃至開示の第1の視点によれば、入力された平文の底及び法と、分散された指数と、から前記平文の分散された指数の冪乗の剰余に関する分散値の組を部分冪乗余として計算する、部分冪乗余計算部と、前記部分冪乗余から前記平文の前記分散された指数の合計値の冪乗の剰余に関する分散値を冪乗余の分散値として計算する、部分冪乗余合成部と、を備える、情報処理装置が提供される。
本発明乃至開示の第2の視点によれば、入力された平文の底及び法と、分散された指数と、から前記平文の分散された指数の冪乗の剰余に関する分散値の組を部分冪乗余として計算するステップと、前記部分冪乗余から前記平文の前記分散された指数の合計値の冪乗の剰余に関する分散値を冪乗余の分散値として計算するステップと、を含む、秘密計算方法が提供される。
本発明乃至開示の第3の視点によれば、入力された平文の底及び法と、分散された指数と、から前記平文の分散された指数の冪乗の剰余に関する分散値の組を部分冪乗余として計算する処理と、前記部分冪乗余から前記平文の前記分散された指数の合計値の冪乗の剰余に関する分散値を冪乗余の分散値として計算する処理と、をコンピュータに実行させるプログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
本発明乃至開示の各視点によれば、秘密計算による冪剰余をより少ない通信量、通信回数で実現することに寄与する、情報処理装置、秘密計算方法及びプログラムが、提供される。
一実施形態の概要を説明するための図である。 第1の実施形態に係るサーバ装置の内部構成の一例を示すブロック図である。 第1の実施形態に係る冪剰余秘密計算システムの構成例を示すブロック図である。 第1の実施形態の動作の一例を表すフローチャートである。 第2の実施形態に係るサーバ装置の内部構成の一例を示すブロック図である。 第2の実施形態に係る冪剰余秘密計算システムの構成例を示すブロック図である。 第2の実施形態の動作の一例を表すフローチャートである。 サーバ装置10のハードウェア構成の一例を示すブロック図である。
初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。また、各図におけるブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号(データ)の流れを模式的に示すものであり、双方向性を排除するものではない。さらに、本願開示に示す回路図、ブロック図、内部構成図、接続図などにおいて、明示は省略するが、入力ポート及び出力ポートが各接続線の入力端及び出力端のそれぞれに存在する。入出力インターフェイスも同様である。
一実施形態に係る情報処理装置100は、部分冪乗余計算部101と、部分冪乗余合成部102と、を備える(図1参照)。部分冪乗余計算部101は、入力された平文の底及び法と、分散された指数と、から平文の分散された指数の冪乗の剰余に関する分散値の組を部分冪乗余として計算する。部分冪乗余合成部102は、部分冪乗余から平文の分散された指数の合計値の冪乗の剰余に関する分散値を冪乗余の分散値として計算する。
情報処理装置100は、部分冪乗余を計算し、当該部分冪乗余から冪乗余の分散値を計算する。当該計算は、各装置が持つ指数aの分散値と入力(平文)xから通信なしで実行できるので、(2、3)型RSSで分散された指数の値を明かすことなく、与えられた底と法に対する冪剰余の秘密計算が効率よく実行できる。即ち、(2、3)秘密分散を用いた3者間秘密計算にて冪剰余を計算する際、通信量、通信回数の点において効率のよい情報処理装置100が提供される。
初めに、本願開示の前提技術について説明する。
本願開示は、(2、3)閾値のアクセス構造を有する複製型秘密分散(以降(2、3)型RSSと表記する)を用いた秘密計算に関する。以下、(2、3)型RSSの説明を行う。
(2、3)閾値型RSSとは、(2、3)秘密分散の実現方法のひとつである。(2、3)秘密分散とは、入力された値から3つの分散情報を生成する方法で、3つの分散情報は2つ以上からは元の値を復元できるが、1つ以下の分散情報からは元の情報がわからないという特徴を持つ値の分散方法である。
(2、3)型RSSは、0からp−1以下の値xを分散する際に、x=r1+r2+r3 mod p となるような0からp−1以下の3つの値の組(r1、r2、r3)を生成する。さらに、(2、3)型RSSは、3つの分散情報として、(r1、r2、r3)から2つの値を異なる値を選んだ3組を用いることで、(2、3)秘密分散を実現する。なお、上記pは「法」と称される。
秘密分散によって分散された値に関する計算を復元すること無く実行する方法は秘密計算と呼ばれている。以降で、本願開示に関係する(2、3)複製型秘密分散によって分散された値に対する秘密計算法について説明する。まず、値の分散方法について説明し、次に加算、減算、乗算について説明する。ここでは、複数の値が3台の装置に対して分散され、その後、分散された値に対する秘密計算を行うという手順について説明する。3台の装置を、装置1、装置2、装置3と呼んで区別する。
[値の分散方法]
pを2以上の整数として、0以上p未満の値wを分散する場合、w=r1+r2+r3 mod p を満たすランダムに選ばれたr1、r2、r3を生成して、以下のように保管する。
装置1に、wの分散値として(r1、r2)を保管する。
装置2に、wの分散値として(r2、r3)を保管する。
装置3に、wの分散値として(r3、r1)を保管する。
どの組もr1、r2、r3の何れかが足りないためwを得られないが、2台以上が保管している情報からならばwを復元することができることが確認できる。
[加算処理]
先に示した方法によって、装置1、装置2、装置3に分散して保管されている値wと値w’に関して実行される加算処理について説明する。なお、w=r1+r2+r3 mod p w’=r1’+r2’+r3’ mod pとする。
装置1は、wの分散値として(s1、t1)=(r1、r2)、w’の分散値として(s1’、t1’)=(r1’、r2’)を保管している。
装置2は、wの分散値として(s2、t2)=(r2、r3)、w’の分散値として(s2’、t2’)=(r2’、r3’)を保管している。
装置3は、wの分散値として(s3、t3)=(r3、r1)、w’の分散値として(s3’、t3’)=(r3’、r1’)を保管している。
各装置は、以下の手順に従った処理を行う。
装置1は(s1’’、t1’’)=(r1’’=s1+s1’ mod p、r2’’=t1+t1’mod p)によって(s1’’、t1’’)を計算し、w+w’の分散値として保管する。
装置2は(s2’’、t2’’)=(r2’’=s2+s2’ mod p、r3’’=t2+t2’ mod p)によって(s2’’、t2’’)を計算し、w+w’の分散値として保管する。
装置3は(s3’’、t3’’)=(r3’’=s3+s3’ mod p、r1’’=t3+t3’ mod p)によって(s3’’、t3’’)を計算し、w+w’の分散値として保管する。
それぞれの計算結果は、w+w’をw+w’=r1’’+r2’’+r3’’mod pとなるr1’’、r2’’、r3’’を用いて分散した値となっている。r1’’+r2’’+r3’’=(r1+r2+r3)+(r1’+r2’+r3’)=w+w’ mod pから確認できる。
[減算処理]
先に示した方法によって、装置1、装置2、装置3に分散して保管されている値wと値w’に関して実行される減算処理について説明する。なお、w=r1+r2+r3 mod p、w’=r1’+r2’+r3’ mod pとする。
装置1は、wの分散値として(s1、t1)=(r1、r2)、w’の分散値として(s1’、t1’)=(r1’、r2’)を保管している。
装置2は、wの分散値として(s2、t2)=(r2、r3)、w’の分散値として(s2’、t2’)=(r2’、r3’)を保管している。
装置3は、wの分散値として(s3、t3)=(r3、r1)、w’の分散値として(s3’、t3’)=(r3’、r1’)を保管している。
各装置は、以下の手順に従った処理を行う。
装置1は(s1’’、t1’’)=(r1’’=s1−s1’ mod p、r2’’=t1−t1’mod p)によって(s1’’、t1’’)を計算し、w−w’の分散値として保管する。
装置2は(s2’’、t2’’)=(r2’’=s2−s2’ mod p、r3’’=t2−t2’ mod p)によって(s2’’、t2’’)を計算し、w−w’の分散値として保管する。
装置3は(s3’’、t3’’)=(r3’’=s3−s3’ mod p、r1’’=t3−t3’ mod p)によって(s3’’、t3’’)を計算し、w−w’の分散値として保管する。
それぞれの計算結果は、w−w’をw−w’= r1’’+r2’’+r3’’mod pとなるr1’’、r2’’、r3’’を用いて分散した値となっている。r1’’+r2’’+r3’’=(r1+r2+r3)−(r1’+r2’+r3’)=w−w’ mod pから確認できる。
[乗算処理]
先に示した方法によって装置1、装置2、装置3に分散されて保管されているwと値w’に関して実行される乗算処理について説明する。
まず、各装置がどのような値を保管しているかを示す。r1、r2、r3はr1+r2+r3 = w mod pを満たすランダムに選ばれた値であり、r1’、r2’、r3’はr1’+r2’+r3’ = w’ mod 2^n(nは正の整数)を満たすランダムに選ばれた値とする。
装置1は、wの分散値として(s1、t1)=(r1、r2)、w’の分散値として(s1’、t1’)=(r1’、r2’)を保管する。
装置2は、wの分散値として(s2、t2)=(r2、r3)、w’の分散値として(s2’、t2’)=(r2’、r3’)を保管する。
装置3は、wの分散値として(s3、t3)=(r3、r1)、w’の分散値として(s3’、t3’)=(r3’、r1’)を保管する。
各装置は、以下の手順に従った処理を行う。
なお、r1’’+r2’’+r3’’= 0 mod 2^nを満たすランダムに選ばれた値として、装置1はr1’’を、装置2はr2’’を、装置3はr3’’を保管しているものとする。このような性質を満たすr1’’、r2’’、r3’’は乗算を実行するたびに使い捨てで必要となる。このような3値を3装置が効率的に生成する方法については後述する。
装置1は、u2=s1s1’+s1t1’+t1s1’+r1’’ mod p計算し、u1を装置2に送付する。
装置2は、u3=s2s2’+s2t2’+t2s2’+r2’’ mod pを計算し、u2を装置3に送付する。
装置3は、u1=s3s3’+s3t3’+t3s3’+r3’’ mod pを計算し、u3を装置1に送付する。
装置1は、(u1、u2)をww’の分散値として保管する。
装置2は、(u2、u3)をww’の分散値として保管する。
装置3は、(u3、u1)をww’の分散値として保管する。
まず、u1+u2+u3=r1r1’+r1r2’+r2r1’+r2r2’+r2r3’+r3r2’+r3r3’+r3r1’+r1r3’+r1’’+r2’’+r3’’=(r1+r2+r3)(r1’+r2’+r3’)+r1’’+r2’’+r3’’ =ww’ mod pとなっていることが確認できる。
装置1と装置2の保管する値からww’mod pが同じ計算方法で計算できる。他の装置の組み合わせについても同様である。このような方法によれば、(2、3)型RSSで分散されているw、w’に関する乗算が各値を復元することなく実行され、ww’を(2、3)型RSSで分散した値を共有することができる。
[乱数の生成について]
次に、r1+r2+r3 = 0 mod 2^nのように3つ足すと0となる値を、装置1、装置2、装置3が互いに通信することなく、また、各装置が所有する値を他の装置に知られることのない方法で大量に生成する方法について説明する。ここでは、r[i、1]+r[i、2]+r[i、3]=0 mod 2^nなるr[i、1]、r[i、2]、r[i,3]を多くのi=1、…、Nに関して生成する方法を説明する。
PRG(Psudo Random Generator)を、鍵とインデックスを入力としてnビットの数値列を出力する擬似乱数生成器とする。インデックスは、カウンタなどで良い。当該方法は、非特許文献3等に記載されている。
まず、装置のセットアップ処理として、PRGの鍵L1、L2、L3を生成する。装置1にL1とL3を、装置2にL2とL1を、装置3にL3とL2を記憶させているものとする。
各装置はカウンタなどで同期されたインデックスidxを共有しているものとする。装置1は鍵L1とインデックスidxをPRGに入力し、その出力であるnビットの数値r’[1]を生成する。また、装置1は、鍵L3とインデックスidxをPRGに入力し、その出力であるnビットの数値をnビット毎に分割した値r’[3]を生成する。そしてr[1]=r’[1]−r’[3] mod pとする。
装置2は鍵L2とインデックスidxをPRGに入力し、その出力であるnビットの数値r’[2]を生成する。また、装置2は、鍵L1をPRGに入力し、その出力であるnビットの数値r’[1]を生成する。そしてr[2]=r’[2]−r’[1] mod pとする。
装置3は鍵L3とインデックスidxをPRGに入力し、その出力であるnビットの数値r’[3]を生成する。また、装置3は、鍵L2とインデックスidxをPRGに入力し、その出力であるnビットの数値r’[2]を生成する。r[3]=r’[3]−r’[2] mod pとする。
r[1]+r[2]+r[3]=r’[1]−r’[3]+r’[2]−r’[1]+r[3]−r[2]= 0 mod pとなっており、N組全てが条件を満たす。装置1が生成する値r[1]=r’[1]−r’[3]mod pに着目すると、装置3はr’[1]を得られず、装置2はr’[3]を得られない。これより、装置1、装置2はr[1]を計算できないことがわかる。これは、r[2]やr[3]についても同様である。セットアップ処理が済んでいれば、以上の処理は計算が行われる前などにも実行可能である。
このような(2、3)型RSSを用いた秘密計算において、p=2とすると、乗算はAND処理、加算・減算は排他的論理和処理と捉えることができる。これによって、p=2とした場合には論理演算に適した秘密計算法となる。また装置1から3の分散情報をすべて(1、1)(1、1)(1、1)とすると、これは、r1=1、r2=1、r3=1として、1の分散情報になっており、論理積、排他的論理和、定数1によって完全系となり、任意の演算が実行可能となる。
以上の方法は非特許文献1等に記載されている。このような方法には種々のバリエーションを考えることができ、例えば、r1+r2+r3=w mod p に関して、(r1−r2modp、r2)、(r2−r3modp、r3)、(r3−r1modp、r1)を分散情報としても良い。3装置がr1、r2、r3のうち異なる二つの組に相当する情報を保有していれば、(2、3)型RSS呼ぶことにする。
つまり、任意の演算は、p=2とした(2、3)型RSSを用いれば処理可能である。しかし、すべての処理を論理演算で実行することは非効率的であるので、乗算と加減算で構成できるものは、pを大きく設定した(2、3)型RSSを用いた秘密計算で実行するほうが良い。pの値としては,プロトコル設計における利便性や実装の都合などからZ_p素数あるいは2^m(mは任意の整数)が選択されることが多い。
さらに、数値演算と論理演算を組み合わせたい場合もある。例として、それぞれ2^4より小さい値であるa、b、cを入力として、a*b mod 2^4<cを処理する場合を考える。この場合、a*bを数値演算として処理し、比較演算を論理演算として実行したい。まず数値演算としてa*bを計算したいが、これをcと比較する処理を数値演算として表現することは難しい。
このような問題を解決するため、非特許文献2に記載の「ビット分解」と呼ばれる処理が知られている。ビット分解は、数値計算向けの分散情報を論理演算向けの分散情報に変換するための処理である。
法としてp=8を用いた(2、3)型RSSによって値w=5を用いて分散し、装置1が(1、2)を記憶し、装置2が(2、2)を記憶し、装置3が(2、1)を記憶している場合を考える。ビット分解を用いれば、これらの情報から、5の2進表記である1と0と1の各ビットに対する分散情報を得ることができる。
具体的には、ビット分解が実行された後、
装置1は、1ビット目に関して(1、1)、2ビット目に関して、(0、1)、3ビット目に関して(1、0)、4ビット目に関して(0、0)所有する。
装置2は、1ビット目に関して(1、1)、2ビット目に関して、(1、1)、3ビット目に関して(0、0)、4ビット目に関して(0、0)を所有する。
装置3は、1ビット目に関して(1、1)、2ビット目に関して、(1、0)、3ビット目に関して(0、0)、4ビット目に関して(0、0)を所有する。
ビット分解に関する既存の技術として、以下に非特許文献2に記載の方法の概要を示す。この方法は以下のような手順でビット分解を実行する。ビット分解を実行したい数は、r=r1+r2+r3 mod pとなるr1、r2、r3を用いて分散されているものとする。なお、非特許文献2では、p=2^n−1によって表されるメルセンヌ素数を用いる。メルセンヌ素数の性質は、手順2においてsを効率的に計算することに作用している。
手順1:r12=r1+r2 mod p、r3を分散する。
手順2:r12+r3がpより大きいかどうかを判定し、大きい場合にはs=1とし、それ以外の場合はs=0となるような秘密計算を実行する。
手順3:r12+r3+s mod 2^nの計算を下位桁からビット毎に全加算器の秘密計算を実行する。
非特許文献2の方法は、pがnビットの素数であるとして10n+4ビットの通信量によってビット分解を実行できると記載されている。
また、ビット分解の逆の変換、すなわち論理計算向けの分散値を数値計算向けの分散値に変換する方法として、ビット注入(bit injection)が存在する。ビット注入に関する従来技術として、以下に非特許文献4の方法の概略を説明する。
ビット注入を実行したい数rはr=r1+r2+r3 mod 2となるr1、r2、r3を用いて分散されているものとする。
手順1:装置1、装置2、装置3はそれぞれ自身の持つrの分散値から、ローカルの計算によってr1、r2、r3の法p上の分散値を計算する(詳細は後述する)。
手順2:装置1、装置2、装置3は、r1、r2、r3の分散値から、法p上の加算と乗算を用いてr1+r2+r3を計算し、rの法p上の分散値を得る。
ここで、手順1の方法は以下のようにして実行される。なお、装置1は(r1、r2)を、装置2は(r2、r3)を、装置3は(r3、r1)を持っているものとする。
装置1は、(r1、0)を自身のr1の分散値とし、(0、r2)を自身のr2の分散値とし、(0、0)を自身のr3の分散値とする。
装置2は、(0、0)を自身のr1の分散値とし、(r2、0)を自身のr2の分散値とし、(0、r3)を自身のr3の分散値とする。
装置3は、(0、r1)を自身のr1の分散値とし、(0、0)を自身のr2の分散値とし、(r3、0)を自身のr3の分散値とする。
これはすなわち、r1がr1=r1+0+0 mod 2、r2がr2=0+r2+0 mod 2、r3がr3=0+0+r3 mod 2となるような値によって分散されているものと捉えることができる。各装置は、これらの分散値を自身の持つrの分散値から通信なしで計算できる。ここで、rはもともとmod 2上の分散値(論理演算用の分散値)であったが、上記のr1、r2、r3の分散値の計算は、r1=r1+0+0 mod p、r2がr2=0+r2+0 mod p、r3がr3=0+0+r3 mod pであると捉えてもよい。すなわち、この計算によって得られるr1、r2、r3の分散値は数値演算向けの分散値として扱うことができる。この手法によって、論理演算の分散値を数値演算の分散値に変換することができるため、数値演算の秘密計算を組み合わせて所望の分散値を計算することが可能となる。
ここで、指数aはa=a1+a2+a3 mod pとなるようなaによって分散されているものとする。本願開示では、ある底xとaの分散値を用いてx^a mod pの秘密計算を行う際、x^(a1) mod p、x^(a2) mod p、x^(a3) mod pの分散値を各装置にて他の装置と非通信で計算する。以下、これらx^(a1) mod p、x^(a2) mod p、x^(a3) mod pの組をx^aの部分冪剰余と表記する。
各装置は、以下のような計算を行う。なお、装置1は(a1、a2)を、装置2は(a2、a3)を、装置3は(a3、a1)を所有しているものとする。
装置1は、(x^a1、0)を自身のx^a1の分散値とし、(0、x^a2)を自身のx^a2の分散値とし、(0、0)を自身のx^a3の分散値とする。装置2は、(0、0)を自身のx^a1の分散値とし、(x^a2、0)を自身のx^a2の分散値とし、(0、x^a3)を自身のx^a3の分散値とする。装置3は、(0、x^a1)を自身のx^a1の分散値とし、(0、0)を自身のx^a2の分散値とし、(x^a3、0)を自身のx^a3の分散値とする。
上記の計算は、各装置が持つaの分散値とxから通信なしで実行できることが確認できる。指数関数の性質により、s=x^a1・x^a2・x^a3 mod p= x^(a1+a2+a3) mod pとなるため、数値乗算の秘密計算2回によってs=x^(a1+a2+a3) mod pを計算できる。
以下、部分冪剰余から上記の計算で得られるs=x^(a1+a2+a3) mod pを仮冪剰余と表記する。
ここで、a=a1+a2+a3 mod pであったことを想起すると、計算したい所望の値はs’=x^a=x^(a1+a2+a3 mod p) mod p となる。x^(a1+a2+a3) mod pはa1+a2+a3が法pを超える場合にはx^(a1+a2+a3 mod p) mod pと同じではない。したがって、所望の冪剰余計算を完了するにはx^a1・x^a2・x^a3の秘密計算の後にa1+a2+a3が法pを超えた場合の追加処理を仮冪剰余に対して行う。当該処理に関しては、法pが素数の場合、及び、2^mの場合で異なる実施形態を取り得る。
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。
[第1の実施形態]
第1の実施形態について、図面を用いてより詳細に説明する。
図2〜図4を参照しつつ、第1の実施形態に係る冪剰余秘密計算システムについて説明する。
図2は、第1の実施形態に係るサーバ装置10の内部構成(処理構成)の一例を示すブロック図である。冪乗余秘密計算システムには、複数のサーバ装置(秘密計算サーバ装置)が含まれる。以降の説明において、個別の装置をサフィックスiにより特定する。
図2に示す通り、第iのサーバ装置10_iは、第iの基本演算シード記憶部11_iと、第iのデータ記憶部12_iと、第iの部分冪剰余計算部13_iと、第iの部分冪剰余合成部14_iと、第iの算術演算部15_iと、を含む。なお、第iの基本演算シード記憶部11_iと、第_iのデータ記憶部12_iと、第iの部分冪剰余計算部13_iと、第iの部分冪剰余合成部14_iと、第iの算術演算部15_iとはそれぞれ接続されている。
第iの基本演算シード記憶部11_iは、シェアについての演算を行う際の乱数を生成するためのシードを格納する。
第iのデータ記憶部12_iは、平文とシェアを格納する。
第iの部分冪剰余計算部13_iは、部分冪乗余を計算する。具体的には、第iの部分冪剰余計算部13_iは、入力された平文の底及び法と、分散された指数と、から平文の分散された指数の冪乗の剰余に関する分散値の組を計算する。上述の例では、x^(a1) mod p、x^(a2) mod p、x^(a3) mod pの組が「部分冪剰余」として計算される。
第iの部分冪剰余合成部14_iは、冪乗余の分散値を計算する。具体的には、部分冪乗余から平文の分散された指数の合計値の冪乗の剰余に関する分散値が、冪乗余の分散値として計算される。上述の例では、s=x^(a1+a2+a3) mod pが「冪乗余の分散値」として計算される。
第iの算術演算部15_iは、主として乗算の秘密計算を行う。
図3は、第1の実施形態に係る冪剰余秘密計算システムの構成例を示すブロック図である。図3を参照すると、第1の実施形態による冪剰余秘密計算システムは、図2で参照される第i(i=1、2、3)のサーバ装置からなる。第1の実施形態による冪剰余秘密計算システムにおいて、サーバ装置10_1、10_2、10_3は自身と異なるサーバ装置とネットワーク経由で通信可能な方法で接続されている。
このような構成の冪剰余秘密計算においては、x(x∈{0、…、p−1})及びaの(2、3)RSSによる分散値、法pに対して、その入力と計算過程からa(指数)の値を知られることなく冪乗余(x^a mod p)の(2、3)RSSによる分散値が計算される。当該計算された分散値は、第1〜第3のデータ記憶部12_1〜12_3に記憶される。入力xは、第1〜第3のサーバ装置10_1〜10_3のいずれかの装置又は外部から入力される。指数aは、第1〜第3のデータ記憶部12_1〜12_3に記憶されている又は外部から入力される。法pは、データ記憶部12に保管されている。上記計算結果のシェアは、第1〜第3のサーバ装置10_1〜10_3とシェアを送受信することで復元してもよい。あるいは、第1〜第3のサーバ装置10_1〜10_3ではない外部にシェアを送信することで、復元してもよい。
図4は、第1の実施形態の動作の一例を表すフローチャートである。図4を参照しつつ、第1の実施形態に係る冪乗余秘密計算システムの動作を説明する。
データ記憶部12_iには、値p、qおよび底x∈{0、…、p−1}、および法qによって分散された指数aの(2、3)RSSによる分散値が記憶されているものとする。また、aの(2、3)RSSはa=a1+a2+a3 mod qとなるa1、a2、a3によって構成されているものとする。ただし、p、q、xは以下の(1)と(2)のいずれかの条件を満たすものとする。
(1)p、qは素数であり、法qはp>=3q+1を満たす値とする。この場合、xは0以上p−1以下のどのような値でもよい。
(2)p=2^nとして、xは奇数とする。qはp以下の任意の値とする。
ステップA1において、第1〜第3の部分冪剰余計算部13_1〜13_3のそれぞれは、データ記憶部12_1〜12_3に記憶されたxおよびaの分散値から、x^a1 mod p、x^a2 mod p、x^a3 mod pの(2、3)RSSによる分散値を計算する(部分冪剰余が計算される)。
ステップA2において、第1〜第3の部分冪剰余合成部14_1〜14_3のそれぞれは、乗算の秘密計算によってステップA1の部分冪剰余からs=x^a1+a2+a3 mod pの分散値を計算する。ここで、乗算の秘密計算は算術演算部15_1〜15_3を用いて非特許文献3の方法などを用いて実行される。算術演算部15_1〜15_3は基本演算シード記憶部11_1〜11_3に記憶されているシードを用いて、互いに通信を行う。
ステップA2において得られたsは、所望の冪剰余の分散値となる。なぜならば、p>=3q+1の条件下ではa1+a2+a3 mod q = a (mod p)である。また、xが奇数でかつp=2^nの場合には、オイラーの定理よりb^{2^n} = 1 (mod 2^n)が成立するため、a=a1+a2+a3 mod 2^n および a’=a1+a2+a3とすると、s=x^(a’) mod 2^n = x^a・x^{k・2^n} mod 2^n = x^a mod 2^nとなる。
最後に、各サーバ装置10_i(i=1、2、3)はステップA2で得られたx^a mod pの分散値をデータ記憶部12_iに保管する。また、データ記憶部12_iに保管する代わりに、サーバ装置10_1、10_2、10_3とは異なる外部のサーバに送信して分散値が復元されてもよい。
以上のように、第1の実施形態では、部分冪乗余が計算され、当該部分冪乗余から冪乗余の分散値が計算される。当該計算は、各装置が持つaの分散値とxから通信なしで実行できるので、(2、3)型RSSで分散された指数の値を明かすことなく、与えられた底と法に対する冪剰余の秘密計算が効率よく実行できる。
[第2の実施形態]
続いて、第2の実施形態について図面を参照して詳細に説明する。
図5〜図7を参照しつつ、第2の実施形態に係る冪剰余秘密計算システムについて説明する。
図5は、第2の実施形態に係るサーバ装置10の内部構成(処理構成)の一例を示すブロック図である。図5に示す通り、第iのサーバ装置10_iは、第iの基本演算シード記憶部11_iと、第iのデータ記憶部12_iと、第iの部分冪剰余計算部13_iと、第iの部分冪剰余合成部14_iと、第iの仮冪剰余補正部21_iと、第iの算術演算部15_iと、第iの論理演算部16_iと、第iの部分シェア分散値計算部22_iを含む。なお、第iの基本演算シード記憶部11_iと、第iのデータ記憶部12_iと、第iの部分冪剰余計算部13_iと、第iの部分冪剰余合成部14_iと、第iの仮冪剰余補正部21_iと、第iの算術演算部15_iと、第iの論理演算部16_iと、第iの部分シェア分散値計算部22_iとはそれぞれ接続されている.
図2及び図5において同一の構成要素には同じ符号を付し、その説明を省略する。図2及び図5を比較すると、第iの論理演算部16_i、第iの仮冪剰余補正部21_i、第iの部分シェア分散値計算部22_iが追加されている。また、第iの部分冪剰余合成部14_iが計算する結果の取り扱いが第1及び第2の実施形態では異なる。
第2の実施形態では、第iの部分冪剰余合成部14_iは、部分冪乗余から平文の分散された指数の合計値の冪乗の剰余に関する分散値を「仮冪乗余の分散値」として計算する。
第iの論理演算部16_iは、少なくとも平文の分散された指数の最下位ビットの分散値を秘密計算によって計算する。第iの論理演算部16_iの具体的な処理については後述する。
第iの仮冪剰余補正部21_iは、仮冪剰余の分散値から冪乗余の分散値を計算する。具体的には、第iの仮冪剰余補正部21_iは仮冪乗余の分散値に対する補正により冪乗余の分散値を計算する。
第iの部分シェア分散値計算部22_iは、aの分散値から、法p上でのa1の分散値、a2の分散値およびa3の分散値を計算する。
図6は、第2の実施形態に係る冪剰余秘密計算システムの構成例を示すブロック図である。図6を参照すると、第2の実施形態による冪剰余秘密計算システムは、図5で参照される第i(i=1、2、3)のサーバ装置からなる。第2の実施形態による冪剰余秘密計算システムにおいて、サーバ装置10_1、10_2、10_3は自身と異なるサーバ装置とネットワーク経由で通信可能な方法で接続されている.
このような構成の冪剰余秘密計算においては、x(x∈{0、…、p−1})及びaの(2、3)RSSによる分散値、法pに対して、その入力と計算過程からa(指数)の値を知られることなく冪乗余(x^a mod p)の(2、3)RSSによる分散値が計算される。当該計算された分散値は、第1〜第3のデータ記憶部12_1〜12_3に記憶される。入力xは、第1〜第3のサーバ装置10_1〜10_3のいずれかの装置又は外部から入力される。指数aは、第1〜第3のデータ記憶部12_1〜12_3に記憶されている又は外部から入力される。法pは、データ記憶部12に保管されている。上記計算結果のシェアは、第1〜第3のサーバ装置10_1〜10_3とシェアを送受信することで復元してもよい。あるいは、第1〜第3のサーバ装置10_1〜10_3ではない外部にシェアを送信することで、復元してもよい。
図7は、第2の実施形態の動作の一例を表すフローチャートである。図7を参照しつつ、第2の実施形態に係る冪乗余秘密計算システムの動作を説明する。
データ記憶部12_iには、値p、qおよび底x∈{0、…、p−1}、および法qによって分散された指数aの(2、3)RSSによる分散値が記憶されているものとする。また、aの(2、3)RSSはa=a1+a2+a3 mod qとなるa1、a2、a3によって構成されているものとする。ただし、pおよびqは素数であり、(1’) 3q+1 > p >=2q+1あるいは(2’) 2q+1 > pのいずれかの条件を満たしているものとする。
ステップB1において、第1〜第3の部分冪剰余計算部13_1〜13_3はそれぞれ、データ記憶部12_1〜12_3に記憶されたxおよびaの分散値からx^a1 mod p、x^a2 mod p、x^a3 mod pの(2、3)RSSによる分散値を計算する。
ステップB2において、第1〜第3の部分冪剰余合成部14_1〜14_3は、乗算の秘密計算によってステップB1の部分冪剰余からs’=x^a1+a2+a3 mod pの分散値を計算する。ここで、乗算の秘密計算は算術演算部15_1〜15_3により非特許文献3の方法などを用いて実行される。算術演算部15_1〜15_3は基本演算シード記憶部11_1〜11_3に記憶されているシードを用いて、互いに通信を行う。
ステップB2によって得られたs’を仮冪剰余とする。
ステップB3において、第1〜第3の部分シェア分散値計算部22_1〜22_3はそれぞれ、データ記憶部12_1〜12_3に記憶されたaの分散値から、法p上でのa1の分散値、a2の分散値およびa3の分散値を計算する。また、算術演算部15を用いて、a1+a2およびa1+a2+a3の分散値が計算される。これらの処理は,各サーバ装置10_1〜10_3で通信を伴うことなく実行可能である。
ステップB4において、第1〜第3の論理演算部16_1〜16_3は、a1、a2、a3、(a1+a2)、(a1+a2+a3)の最下位ビットの分散値を秘密計算によって計算する。なお、それぞれの最下位ビットをLSB(a1)、LSB(a2)、LSB(a3)、LSB(a1+a2 mod p)、LSB(a1+a2+a3 mod p)と表記することにする。この処理は、非特許文献2に記載のビット分解の秘密計算などによって実行可能である。
ステップB5において、第1〜第3の論理演算部16_1〜16_3は、ステップB4で得られたLSB(a1)、LSB(a2)、LSB(a3)、LSB(a1+a2 mod p)、LSB(a1+a2+a3 mod p)の分散値から論理式(a1+a2) > p および (a1+a2+a3) > pの真理値の分散値を秘密計算によって計算する。ただし、各論理式は条件が真のときに「1」であり、偽のときに「0」であるものとする。
pが奇数であり、a1+a2 > pのときa1+a2とa1+a2 mod pの偶奇が反転することに着目すると、この処理は(a1+a2>p)=LSB(a1)+LSB(a2)+LSB(a1+a2) mod 2であり、論理演算における加算の秘密計算によって通信を伴うことなく実行可能である。同様に、(a1+a2+a3>p)=LSB(a1+a2)+LSB(a3)+LSB(a1+a2+a3) mod 2で計算可能である。なお、pおよびqが前記の条件(1’) 3q+1 > p >=2q+1を満たしている場合には、a1+a2はpより小さいため、(a1+a2 > p)の計算を省略することができる(必ずa1+a2>p=0となる)。
ステップB6において、第1〜第3の仮剰余補正計算部21_1〜21_3は、ステップB2で求めた仮冪剰余の分散値s’と、ステップB5で計算した(a1+a2>p)および(a1+a2+a3>p)の分散値から、所望の冪剰余s = x^a mod pの分散値を計算する。
上記計算は、例えば以下の手順によって計算できる。
(B6−1) s’・(a1+a2>p)・b^{−1} + s’・(1-(a1+a2>p))の秘密計算を算術演算部15_1〜15_3により計算する。この計算によって得られた分散値をtの分散値とする。
(B6−2) t・(a1+a2+a3 > p)+t・(1-(a1+a2+a3>p))の秘密計算を算術演算部15_1〜15_3により実行する。当該ステップ(B6−2)で得られた分散値が、所望の冪剰余x^a mod pの分散値となる。
以上のように、第2の実施形態では、仮冪乗余の分散値を(a1+a2>p)や(a1+a2+a3>p)といった分散値を用いて修正(補正)することで冪乗余の分散値が計算される。その結果、第1の実施形態と同様に、(2、3)型RSSで分散された指数の値を明かすことなく、与えられた底と法に対する冪剰余の秘密計算が効率よく実行できる。
[ハードウェア構成]
次に、第1、第2の実施形態に係るサーバ装置10のハードウェア構成を説明する。図8は、サーバ装置10のハードウェア構成の一例を示すブロック図である。
サーバ装置10は、情報処理装置(コンピュータ)により構成可能であり、図8に例示する構成を備える。例えば、サーバ装置10は、内部バスにより相互に接続される、CPU(Central Processing Unit)31、メモリ32、入出力インターフェイス33及び通信手段であるNIC(Network Interface Card)34等を備える。
但し、図8に示す構成は、サーバ装置10のハードウェア構成を限定する趣旨ではない。サーバ装置10は、図示しないハードウェアを含んでもよいし、必要に応じて入出力インターフェイス33を備えていなくともよい。また、サーバ装置10に含まれるCPU等の数も図8の例示に限定する趣旨ではなく、例えば、複数のCPUがサーバ装置10に含まれていてもよい。
メモリ32は、RAM(Random Access Memory)、ROM(Read Only Memory)、補助記憶装置(ハードディスク等)である。
入出力インターフェイス33は、図示しない表示装置や入力装置のインターフェイスとなる手段である。表示装置は、例えば、液晶ディスプレイ等である。入力装置は、例えば、キーボードやマウス等のユーザ操作を受け付ける装置である。
サーバ装置10の機能は、上述の各種処理モジュールにより実現される。当該処理モジュールは、例えば、メモリ32に格納されたプログラムをCPU31が実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能を何らかのハードウェア、及び/又は、ソフトウェアで実行する手段があればよい。
上記の説明により、本発明の産業上の利用可能性は明らかであるが、秘密鍵を保護したままデジタル署名を計算することが可能になり、ブロックチェーン等の分散ノード上での秘密鍵保護などに好適に適用可能である。冪剰余は暗号系の処理で多用される関数であり、秘密計算で冪剰余を実行できると、分散システムにおいて暗号系処理を効率的に実現するできるためである。
なお、引用した上記の非特許文献の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択(部分的削除を含む)が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
10_i、10_1〜10_3、10 サーバ装置
11_i、11_1〜11_3 基本演算シード記憶部
12_i、12_1〜12_3 データ記憶部
13_i、13_1〜13_3、101 部分冪剰余計算部
14_i、14_1〜14_3、102 部分冪剰余合成部
15_i、15_1〜15_3 算術演算部
16_i、16_1〜16_3 論理演算部
21_i、21_1〜21_3 仮冪剰余補正部
22_i、22_1〜22_3 部分シェア分散値計算部
31 CPU(Central Processing Unit)
32 メモリ
33 入出力インターフェイス
34 NIC(Network Interface Card)
100 情報処理装置

Claims (9)

  1. 入力された平文の底及び法と、分散された指数と、から前記平文の分散された指数の冪剰の剰余に関する分散値の組を部分冪剰余として計算する、部分冪剰余計算部と、
    前記部分冪剰余から前記平文の前記分散された指数の合計値の冪剰の剰余に関する分散値を冪剰余の分散値として計算する、部分冪剰余合成部と、
    を備える、情報処理装置。
  2. 乗算の秘密計算を行う算術演算部をさらに備え、
    前記部分冪剰余合成部は、前記算術演算部を用いて前記冪剰余の分散値を計算する、請求項1に記載の情報処理装置。
  3. シェアについての演算を行う際の乱数を生成するためのシードを格納する、基本演算シード記憶部をさらに備える、請求項1又は2に記載の情報処理装置。
  4. 平文とシェアを格納する、データ記憶部をさらに備える、請求項1乃至3のいずれか一項に記載の情報処理装置。
  5. 前記部分冪剰余合成部は、前記部分冪剰余から前記平文の前記分散された指数の合計値の冪剰の剰余に関する分散値を仮冪剰余の分散値として計算し、
    前記仮冪剰余の分散値から前記冪剰余の分散値を計算する、仮冪剰余補正部をさらに備える、請求項1乃至4のいずれか一項に記載の情報処理装置。
  6. 少なくとも前記平文の分散された指数の最下位ビットの分散値を秘密計算によって計算する、論理演算部をさらに備える、請求項1乃至5のいずれか一項に記載の情報処理装置。
  7. 前記冪剰余の分散値は、(2、3)閾値のアクセス構造を有する複製型秘密分散を用いた秘密計算により計算される、請求項1乃至6のいずれか一項に記載の情報処理装置。
  8. 入力された平文の底及び法と、分散された指数と、から前記平文の分散された指数の冪剰の剰余に関する分散値の組を部分冪剰余として計算するステップと、
    前記部分冪剰余から前記平文の前記分散された指数の合計値の冪剰の剰余に関する分散値を冪剰余の分散値として計算するステップと、
    を含む、秘密計算方法。
  9. 入力された平文の底及び法と、分散された指数と、から前記平文の分散された指数の冪剰の剰余に関する分散値の組を部分冪剰余として計算する処理と、
    前記部分冪剰余から前記平文の前記分散された指数の合計値の冪剰の剰余に関する分散値を冪剰余の分散値として計算する処理と、
    をコンピュータに実行させるプログラム。
JP2020567320A 2019-01-24 2019-01-24 情報処理装置、秘密計算方法及びプログラム Active JP7173170B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/002318 WO2020152831A1 (ja) 2019-01-24 2019-01-24 情報処理装置、秘密計算方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2020152831A1 true JPWO2020152831A1 (ja) 2021-12-02
JP7173170B2 JP7173170B2 (ja) 2022-11-16

Family

ID=71736896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020567320A Active JP7173170B2 (ja) 2019-01-24 2019-01-24 情報処理装置、秘密計算方法及びプログラム

Country Status (3)

Country Link
US (1) US11895230B2 (ja)
JP (1) JP7173170B2 (ja)
WO (1) WO2020152831A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11799643B2 (en) * 2021-01-19 2023-10-24 Bank Of America Corporation Collaborative architecture for secure data sharing
US11881933B2 (en) * 2021-10-20 2024-01-23 VMware LLC Enhanced robust input protocol for secure multi-party computation (MPC) via hierarchical pseudorandom secret sharing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006352254A (ja) * 2005-06-13 2006-12-28 Oki Electric Ind Co Ltd 分散電子署名システム,分散電子署名計算装置
WO2016148281A1 (ja) * 2015-03-19 2016-09-22 日本電気株式会社 秘匿文字列計算システム及び方法と装置並びにプログラム
WO2018135566A1 (ja) * 2017-01-20 2018-07-26 日本電信電話株式会社 秘密計算システム、秘密計算装置、秘密計算方法、プログラム
WO2018135511A1 (ja) * 2017-01-18 2018-07-26 日本電信電話株式会社 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH076025A (ja) 1993-06-21 1995-01-10 Nippon Telegr & Teleph Corp <Ntt> 冪剰余演算方法および装置
JPH10222065A (ja) 1997-02-03 1998-08-21 Nippon Telegr & Teleph Corp <Ntt> 冪乗剰余演算方法及び装置
JP2004004341A (ja) 2002-05-31 2004-01-08 Toshiba Corp べき乗剰余計算装置、べき乗剰余計算方法及びプログラム
JP4548223B2 (ja) 2005-05-27 2010-09-22 日本電気株式会社 擬似ランダム関数計算装置及び方法、並びに回数制限匿名認証システム及び方法
DE602007012805D1 (de) * 2006-08-31 2011-04-14 St Microelectronics Sa Maskierung einer gemäß eines RSA-CRT-Algorithmus durchgeführten Berechnung
FR2919739B1 (fr) * 2007-08-03 2009-12-04 Oberthur Card Syst Sa Procede de traitement de donnees protege contre les attaques par generation de fautes et dispositif associe
JP2011520150A (ja) * 2008-05-07 2011-07-14 イルデト・コーポレート・ビー・ヴイ 指数難読化
EP2523096A1 (en) * 2011-05-11 2012-11-14 Thomson Licensing Modular exponentiation and device resistant against side-channel attacks
US9959429B2 (en) * 2013-03-15 2018-05-01 Cryptography Research, Inc. Asymmetrically masked multiplication
EP2966802A1 (en) * 2014-07-07 2016-01-13 Thomson Licensing Method for ciphering and deciphering digital data, based on an identity, in a multi-authorities context
US20160352710A1 (en) * 2015-05-31 2016-12-01 Cisco Technology, Inc. Server-assisted secure exponentiation
EP3395091B1 (en) * 2015-12-24 2021-05-26 Nokia Technologies Oy Authentication and key agreement in communication network
PL234436B1 (pl) * 2018-04-23 2020-02-28 Adips Spolka Z Ograniczona Odpowiedzialnoscia Szyfrator i deszyfrator dla systemu kryptograficznego RSA odporny na wstrzykiwanie błędów

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006352254A (ja) * 2005-06-13 2006-12-28 Oki Electric Ind Co Ltd 分散電子署名システム,分散電子署名計算装置
WO2016148281A1 (ja) * 2015-03-19 2016-09-22 日本電気株式会社 秘匿文字列計算システム及び方法と装置並びにプログラム
WO2018135511A1 (ja) * 2017-01-18 2018-07-26 日本電信電話株式会社 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム
WO2018135566A1 (ja) * 2017-01-20 2018-07-26 日本電信電話株式会社 秘密計算システム、秘密計算装置、秘密計算方法、プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NING, C. AND XU, Q.: "Constant-Rounds, Linear Multi-party Computation for Exponentiation and Modulo Reduction with Perfect", LECTURE NOTES IN COMPUTER SCIENCE, vol. 7073, JPN6019013674, 2011, DE, pages 572 - 589, ISSN: 0004812975 *

Also Published As

Publication number Publication date
JP7173170B2 (ja) 2022-11-16
WO2020152831A1 (ja) 2020-07-30
US11895230B2 (en) 2024-02-06
US20220069980A1 (en) 2022-03-03

Similar Documents

Publication Publication Date Title
CN109067538B (zh) 安全协议方法、计算机设备及存储介质
EP3871365B1 (en) Computer implemented system and method for distributing shares of digitally signed data
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
US11764943B2 (en) Methods and systems for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger/blockchain technology
JP6732959B2 (ja) 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム
WO2020075797A1 (ja) 秘密右シフト演算システム、秘密除算システム、それらの方法、秘密計算装置、およびプログラム
JP7031682B2 (ja) 秘密計算装置、システム、方法、プログラム
JP6607257B2 (ja) 秘密計算システム、秘密計算装置、および、秘密計算方法
JP7173170B2 (ja) 情報処理装置、秘密計算方法及びプログラム
JPWO2016148281A1 (ja) 秘匿文字列計算システム及び方法と装置並びにプログラム
CN112100144A (zh) 区块链文件共享方法、装置、存储介质及电子设备
JP6844897B2 (ja) ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム
CN117254902A (zh) 数据处理方法、装置、设备及存储介质
CN114830210A (zh) 秘密随机数生成系统、秘密计算装置、秘密随机数生成方法以及程序
Beyene et al. Performance Analysis of Homomorphic Cryptosystem on Data Security in Cloud Computing
CN114024674B (zh) 两方安全比较的方法及系统
CN113434886B (zh) 联合生成用于安全计算的数据元组的方法及装置
JPWO2018211653A1 (ja) 数値分散装置、送信情報生成装置、秘密計算装置、方法、プログラム記録媒体、および秘密計算システム
KR100451570B1 (ko) 에스피에이에 견디는 타원 곡선 암호화 알고리즘을구현하는 방법 및 장치
Nita et al. Asymmetric Encryption Schemes
Lam et al. Tabula: Efficiently Computing Nonlinear Activation Functions for Private Neural Network Inference
Mathew et al. Arithmetic Operations on Encrypted Data using Fully Homomorphic Encryption
CN117768180A (zh) 一种基于对称密钥伪随机函数的隐私集合交集计算方法
WO2022006483A1 (en) Methods and systems for homomorphic data representation and concealment powered by clifford geometric algebra
KR20210067961A (ko) 완전동형암호 기법으로 암호화된 데이터의 연산을 위한 장치 및 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210720

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220826

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221017

R151 Written notification of patent or utility model registration

Ref document number: 7173170

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151