JP2020056840A - Sharing device, secure computation device, verification restoration device, sharing system, secure computation verification restoration system, and program - Google Patents

Sharing device, secure computation device, verification restoration device, sharing system, secure computation verification restoration system, and program Download PDF

Info

Publication number
JP2020056840A
JP2020056840A JP2018185931A JP2018185931A JP2020056840A JP 2020056840 A JP2020056840 A JP 2020056840A JP 2018185931 A JP2018185931 A JP 2018185931A JP 2018185931 A JP2018185931 A JP 2018185931A JP 2020056840 A JP2020056840 A JP 2020056840A
Authority
JP
Japan
Prior art keywords
random number
secret information
value
integer
pieces
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
JP2018185931A
Other languages
Japanese (ja)
Other versions
JP7200462B2 (en
Inventor
惠市 岩村
Keiichi Iwamura
惠市 岩村
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.)
Tokyo University of Science
Original Assignee
Tokyo University of Science
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 Tokyo University of Science filed Critical Tokyo University of Science
Priority to JP2018185931A priority Critical patent/JP7200462B2/en
Publication of JP2020056840A publication Critical patent/JP2020056840A/en
Application granted granted Critical
Publication of JP7200462B2 publication Critical patent/JP7200462B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

To allow for efficiently repeating secure computation even if secret information includes zeros.SOLUTION: A first generation unit generates a first value obtained by applying first and second random numbers to first secret information, and then generates a second value obtained by applying a third random number to at least either of the first random number and the first secret information.SELECTED DRAWING: Figure 1

Description

本開示は、分散装置、秘匿演算装置、検証復元装置、分散システム、秘匿演算検証復元システム、及びプログラムに関する。   The present disclosure relates to a distribution device, a secret calculation device, a verification / restoration device, a distribution system, a secret calculation verification / restoration system, and a program.

近年、ビッグデータおよびIoT環境の進歩に伴い、個人に関する情報の活用が期待されている。ただし、個人情報の活用においては、個人情報が漏洩すると個人のプライバシーに影響を与える可能性がある。そのため、ビッグデータの利活用においては、ビッグデータを活用する技術と、個人に関する情報を守る技術とを両立させる必要がある。このような個人に関する情報を守る技術に対するアプローチとして、データを守りながら演算を行うことができる秘匿計算技術が研究されている。   In recent years, with the progress of big data and IoT environments, utilization of information on individuals is expected. However, in utilizing personal information, leakage of personal information may affect personal privacy. Therefore, in utilizing big data, it is necessary to achieve both a technique for utilizing big data and a technique for protecting information about individuals. As an approach to such a technique for protecting information about an individual, a confidential calculation technique capable of performing calculations while protecting data has been studied.

秘匿計算技術は大きく分けると、主に鍵を用いてデータを秘匿する準同型暗号と、鍵を用いずにデータを秘匿する秘密分散法を用いた手法がある。ただし、準同型暗号は一般的に計算量が多く、演算処理に多大な時間がかかるという問題がある。そのため、クラウドシステムへの適用に対しては、計算量が重い準同型暗号よりも、計算量が軽い秘密分散法を用いるというアプローチが検討されている。   Broadly speaking, there are two types of confidential calculation techniques: homomorphic encryption for concealing data mainly using a key, and a method using a secret sharing method for concealing data without using a key. However, the homomorphic encryption generally has a large amount of calculation, and has a problem that a long time is required for arithmetic processing. For this reason, for application to a cloud system, an approach of using a secret sharing scheme, which requires a smaller amount of computation than homomorphic encryption, which requires a large amount of computation, is being studied.

秘密分散法とはユーザが持っている秘密情報を複数の異なる値(以降、分散値)に変換し、分散する手法である。秘密分散法の1つであるShamirの(k,n)閾値秘密分散法(以下、「Shamir法」または「(k,n)Shamir法」)が知られている。   The secret sharing method is a method of converting secret information possessed by a user into a plurality of different values (hereinafter, shared values) and distributing them. Shamir's (k, n) threshold secret sharing method (hereinafter, “Shamir method” or “(k, n) Shamir method”), which is one of the secret sharing methods, is known.

また、秘密情報をL個に分割し、分散式の係数として含ませるランプ型秘密分散方式も知られている。ランプ型秘密分散方式によって、分散値の小型化が実現できる。   There is also known a lamp-type secret sharing scheme in which secret information is divided into L pieces and included as coefficients of a sharing equation. With the ramp-type secret sharing scheme, a reduction in the sharing value can be realized.

秘密分散法に関する技術として、例えば、特許文献1には、データを秘匿しながら計算を行い計算結果の正当性を保証する秘匿計算システムが開示されている。   As a technique related to the secret sharing method, for example, Patent Literature 1 discloses a confidential calculation system that performs calculations while concealing data and guarantees the validity of the calculation results.

また、特許文献2には、秘密分散によりデータを秘匿しつつ、乗算及び加算からなる式の計算を、計算結果の正当性を保ちながら行う秘匿積和結合システムが開示されている。   Further, Patent Literature 2 discloses a confidential product-sum combination system that performs calculation of an expression including multiplication and addition while keeping data secret by secret sharing while maintaining the validity of the calculation result.

また、特許文献3には、完全準同型暗号及び信頼できる第三者を利用せずに、集計対象データ及びその集計結果を秘匿した状態で集計装置に集計処理を実行させる技術が開示されている。   Further, Patent Literature 3 discloses a technique in which a tallying device performs a tallying process in a state where data to be tallyed and a tallying result thereof are concealed without using completely homomorphic encryption and a trusted third party. .

また、秘密分散法の1つに、Shamir法を用いるTUS法がある。TUS法では、他の秘密分散法では実現できないn<2k−1において秘匿演算を実現することが特徴である。   One of the secret sharing methods is a TUS method using the Shamir method. The TUS method is characterized in that a confidential operation is realized at n <2k−1, which cannot be realized by other secret sharing methods.

再公表2014−112548号公報RE-Publication No. 2014-112548 再公表2012−121333号公報Re-publication 2012-121333 gazette 特開2013−205592号公報JP 2013-205592 A

もっとも、TUS法では、秘匿乗算において乱数で秘匿化された秘密情報αaを一旦復号するために、秘密情報は0を含まず、乱数も0を含まないものである。ただし、秘匿乗算以外では0を含んでもよいものとされる。   However, in the TUS method, the secret information does not include 0 and the random number does not include 0 in order to once decrypt the secret information αa concealed by the random number in the concealment multiplication. However, other than the secret multiplication, 0 may be included.

上記のTUS法の問題の一つに、秘密情報に0を含むことができず、減算を含む秘匿計算を繰り返せないという問題があった。また、計算結果の正当性を検証できないという問題もあった。   One of the problems of the above-mentioned TUS method is that secret information cannot include 0, and confidential calculation including subtraction cannot be repeated. There is also a problem that the validity of the calculation result cannot be verified.

本開示は、以上の事情を鑑みて成されたものであり、秘密情報に0を含んでいても、効率よく秘匿演算を繰り返すことに対応する分散装置、秘匿演算装置、検証復元装置、分散システム、秘匿演算検証復元システム、及びプログラムを提供することを目的とする。さらに、その計算結果を効率的に検証できる分散装置、秘匿演算装置、検証復元装置、分散システム、秘匿演算検証復元システム、及びプログラムを提供することを目的とする。   The present disclosure has been made in view of the above circumstances, and has a distribution device, a concealment operation device, a verification / recovery device, and a distribution system that can efficiently repeat concealment operations even if secret information includes 0. It is an object of the present invention to provide a confidential operation verification restoration system and a program. It is another object of the present invention to provide a distributed device, a confidential operation device, a verification and restoration device, a distributed system, a confidential operation verification and restoration system, and a program that can efficiently verify the calculation result.

開示の技術は、一つの態様として、第1の発明に係る分散装置が、nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、第1の秘密情報に第1の乱数及び第2の乱数を作用させた第1の値を生成し、前記第1の乱数及び前記第1の秘密情報の少なくとも一方に第3の乱数を作用させた第2の値を生成する第1生成部を備えることを特徴とする。   According to one embodiment of the disclosed technology, the sharing apparatus according to the first invention disperses secret information into n pieces of shared values, where n is an integer of 2 or more, k is an integer of 2 or more and n or less, and k In a system in which the secret information can be restored using the shared values and the secret information cannot be restored when the number is less than k, a first value obtained by applying a first random number and a second random number to the first secret information is represented by: A first generation unit that generates a second value by applying a third random number to at least one of the first random number and the first secret information.

開示の技術は、一つの態様として、第2の発明に係る秘匿演算装置が、nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、第1の秘密情報に第1の乱数及び第2の乱数を作用させた複数の第1の値と、前記第1の乱数又は前記第1の秘密情報に第3の乱数を作用させた複数の第2の値とを用いて、前記複数の第1の秘密情報同士の演算結果に前記複数の第1の乱数同士の演算結果、及び第4の乱数を作用させた第3の値を生成し、前記複数の第1の乱数同士又は秘密情報同士の演算結果に第5の乱数を作用させた第4の値を生成する第2生成部を備えることを特徴とする。   According to one embodiment of the disclosed technology, the confidential operation device according to the second invention disperses the secret information into n variance values, where n is an integer of 2 or more and k is an integer of 2 or more and n or less, In a system in which the secret information can be restored by k pieces of the variance values and the secret information cannot be restored by less than k pieces, a plurality of first secret numbers obtained by applying a first random number and a second random number to the first secret information. And a plurality of second values obtained by applying a third random number to the first random number or the first secret information, to calculate an operation result between the plurality of first secret information. Generating a third value obtained by operating a plurality of first random numbers and a fourth random number, and applying a fifth random number to the calculated result between the plurality of first random numbers or between the secret information; A second generation unit that generates the fourth value.

開示の技術は、一つの態様として、第2の発明に係る秘匿演算装置が、nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、上記に記載の第2生成部によって得られた第3の値及び第4の値の少なくとも一方が0である場合に第6の乱数を生成する第3生成部と、前記第6の乱数を秘匿加算する加算部と、を更に備えることを特徴とする。   According to one embodiment of the disclosed technology, the confidential operation device according to the second invention disperses the secret information into n variance values, where n is an integer of 2 or more and k is an integer of 2 or more and n or less, In a system in which the secret information can be restored with k pieces of the shared values and the secret information cannot be restored with less than k pieces, at least the third value and the fourth value obtained by the second generator described above. It is characterized by further comprising a third generation unit for generating a sixth random number when one of them is 0, and an addition unit for confidentially adding the sixth random number.

開示の技術は、一つの態様として、第3の発明に係る検証復元装置が、nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、第2の発明に係る秘匿演算装置によって得られた、秘密情報に対して乱数を作用させて生成した第3の値から秘密情報と第4の乱数に相当する値を排除する第1排除部と、前記第1排除部による排除によって得られた第1の乱数同士の演算結果が正しいか否かを判定する第1判定部と、を備えることを特徴とする。   According to one embodiment of the disclosed technology, the verification / reconstruction apparatus according to the third invention disperses secret information into n distributed values, where n is an integer of 2 or more, k is an integer of 2 or more and n or less, In a system in which the secret information can be restored with k pieces of the variance values and the secret information cannot be restored with less than k pieces, a random number is applied to the secret information obtained by the concealment operation device according to the second invention. A first elimination unit that eliminates secret information and a value corresponding to a fourth random number from the third value generated by the first elimination unit, and whether the operation result of the first random numbers obtained by the elimination by the first elimination unit is correct. And a first determination unit that determines whether or not the determination is made.

開示の技術は、一つの態様として、第4の発明に係る検証復元装置が、nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、第2の発明に係る秘匿演算装置によって得られた、秘密情報に対して乱数を作用させて生成した第3の値から秘密情報と第4の乱数に相当する値を排除する第2排除部と、前記第2排除部による排除によって得られた第1の乱数同士の演算結果であって、前記第3の値または第4の値が0の場合に第6の乱数を含む第1の乱数同士の演算結果が正しいか否かを判定する第2判定部と、を備えることを特徴とする。   According to one embodiment of the disclosed technology, the verification / reconstruction apparatus according to the fourth invention disperses secret information into n distributed values, where n is an integer of 2 or more and k is an integer of 2 or more and n or less, In a system in which the secret information can be restored with k pieces of the variance values and the secret information cannot be restored with less than k pieces, a random number is applied to the secret information obtained by the concealment operation device according to the second invention. A second elimination unit that eliminates secret information and a value corresponding to a fourth random number from the third value generated by the second elimination unit, and an operation result of the first random numbers obtained by the elimination by the second elimination unit. A second determination unit that determines whether the calculation result of the first random numbers including the sixth random number is correct when the third value or the fourth value is 0. I do.

開示の技術は、一つの態様として、第2の発明に係る秘匿演算装置が、第3の発明に記載の第1排除部、もしくは第4の発明に記載の第2排除部から得られる値、又は第4の値から各々の第5の乱数に相当する値を排除した値から第1の秘密情報同士の演算結果を得る復元部を有することを特徴とする。   According to an embodiment of the disclosed technology, as one aspect, a concealment operation device according to a second invention is configured such that a value obtained from the first exclusion unit according to the third invention or the second exclusion unit according to the fourth invention, Alternatively, the image processing apparatus further includes a restoring unit that obtains an operation result between the first secret information from a value obtained by removing a value corresponding to each of the fifth random numbers from the fourth value.

開示の技術は、一つの態様として、第5の発明に係る分散システムが、請求項1に記載の乱数を前記第1の秘密情報の生成者以外が生成した乱数を用いて生成する第4生成部を含む分散装置、を備えることを特徴とする。   According to one embodiment of the disclosed technology, a distributed system according to a fifth invention generates a random number according to claim 1 using a random number generated by a person other than a creator of the first secret information. A dispersing device including a unit.

開示の技術は、一つの態様として、第6の発明に係る秘匿演算装置が、nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、分散値同士の乗算を行う乗算部と、前記乗算部による乗算により得られた乗算値と他装置から送られた分離できない乗算値とを用いて分散値の次数変換処理を行う変換部と、乱数を生成し、生成した乱数を自装置に返信される次数変換後の分散値に加算する加算部と、を備えることを特徴とする。   According to one embodiment of the disclosed technology, the confidential operation device according to the sixth invention disperses secret information into n distributed values, where n is an integer of 2 or more and k is an integer of 2 or more and n or less, In a system in which the secret information can be restored by k pieces of the shared values and the secret information cannot be restored when the number of pieces of the shared information is less than k, a multiplication unit that performs multiplication of the shared values, and a multiplication value obtained by the multiplication by the multiplication unit. A conversion unit that performs an order conversion process on a variance value using an inseparable multiplied value sent from another device, generates a random number, and adds the generated random number to the variance value after the order conversion returned to the own device. And an adder.

開示の技術は、一つの態様として、第7の発明に係る秘匿演算検証復元システムが、nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、秘匿された登録値を用いて、登録値による検証用演算を行う演算部、を含む演算装置と、前記演算部による演算結果が正しいかどうかを検証する検証部を含む検証復元装置と、を備えることを特徴とする。   According to one embodiment of the disclosed technology, a confidential operation verification / reconstruction system according to a seventh aspect of the present invention is configured such that n is an integer of 2 or more, k is an integer of 2 or more and n or less, and secret information is distributed into n variance values. In a system in which the secret information can be restored using the k pieces of the variance values and the secret information cannot be restored when the number is less than k, an operation unit that performs a verification operation based on the registered value by using the secret registered value, And a verification / reconstruction device including a verification unit for verifying whether the calculation result by the calculation unit is correct.

開示の技術は、一つの態様として、コンピュータを、上記第1〜第7の発明のいずれか1つの装置の各部として機能させるプログラムを有する。   The disclosed technology has, as one aspect, a program that causes a computer to function as each unit of the device according to any one of the first to seventh inventions.

本開示によれば、秘密情報に0を含んでいても、効率よく秘匿演算を繰り返すことができ、その計算結果を効率的に検証することができる。   According to the present disclosure, even if the secret information includes 0, the secret operation can be efficiently repeated, and the calculation result can be efficiently verified.

第1実施形態に係る秘密分散システムの構成の一例を示すブロック図である。It is a block diagram showing an example of composition of a secret sharing system concerning a 1st embodiment. 第1実施形態に係るサーバ16のハードウェア構成の一例を示す図である。FIG. 3 is a diagram illustrating an example of a hardware configuration of a server 16 according to the first embodiment. 第1実施形態に係る変換用乱数組を生成する処理シーケンスの一例を示す図である。FIG. 6 is a diagram illustrating an example of a processing sequence for generating a conversion random number set according to the first embodiment. 第1実施形態の変形例に係る変換用乱数組を生成する処理シーケンスの一例を示す図である。FIG. 9 is a diagram illustrating an example of a processing sequence for generating a conversion random number set according to a modification of the first embodiment. 第2実施形態に係る秘密分散システムの構成の一例を示すブロック図である。It is a block diagram showing an example of composition of a secret sharing system concerning a 2nd embodiment. 第2実施形態に係る入力装置212のハードウェア構成の一例を示す図である。FIG. 6 is a diagram illustrating an example of a hardware configuration of an input device 212 according to a second embodiment. 第2実施形態に係るサーバ216のハードウェア構成の一例を示す図である。FIG. 13 is a diagram illustrating an example of a hardware configuration of a server 216 according to the second embodiment. 第2実施形態に係る分散の処理シーケンスの一例を示す図である。It is a figure showing an example of a processing sequence of distribution concerning a 2nd embodiment. 第2実施形態に係る秘匿積和演算の処理シーケンスの一例を示す図である。It is a figure showing an example of a processing sequence of confidential product-sum operation concerning a 2nd embodiment. 第2実施形態に係る補正処理の処理シーケンスの一例を示す図である。It is a figure showing an example of a processing sequence of correction processing concerning a 2nd embodiment. 第3実施形態に係る秘密分散システムの構成の一例を示すブロック図である。It is a block diagram showing an example of composition of a secret sharing system concerning a 3rd embodiment. 第3実施形態に係る復元装置314のハードウェア構成の一例を示す図である。FIG. 14 is a diagram illustrating an example of a hardware configuration of a restoration device 314 according to the third embodiment. 第3実施形態に係る分散の処理シーケンスの一例を示す図である。It is a figure showing an example of the processing sequence of distribution concerning a 3rd embodiment. 第3実施形態に係る秘匿積和演算の処理シーケンスの一例を示す図である。It is a figure showing an example of a processing sequence of confidential product-sum operation concerning a 3rd embodiment. 第3実施形態に係る検証の処理シーケンスの一例を示す図である。It is a figure showing an example of a processing sequence of verification concerning a 3rd embodiment. 第4実施形態に係るサーバ416のハードウェア構成の一例を示す図である。FIG. 14 is a diagram illustrating an example of a hardware configuration of a server 416 according to a fourth embodiment. 第4実施形態に係る分散の処理シーケンスの一例を示す図である。It is a figure showing an example of the processing sequence of distribution concerning a 4th embodiment. 第4実施形態の変形例に係る分散の処理シーケンスの一例を示す図である。It is a figure showing an example of a distribution processing sequence concerning a modification of a 4th embodiment. 第5実施形態に係る復元装置514のハードウェア構成の一例を示す図である。FIG. 21 is a diagram illustrating an example of a hardware configuration of a restoration device 514 according to a fifth embodiment. 第5実施形態に係る分散の処理シーケンスの一例を示す図である。It is a figure showing an example of a processing sequence of distribution concerning a 5th embodiment. 第5実施形態に係る秘匿積和演算の処理シーケンスの一例を示す図である。It is a figure showing an example of the processing sequence of confidential product-sum operation concerning a 5th embodiment. 第5実施形態に係る補正処理の処理シーケンスの一例を示す図である。It is a figure showing an example of a processing sequence of correction processing concerning a 5th embodiment. 第5実施形態に係る検証の処理シーケンスの一例を示す図である。It is a figure showing an example of a processing sequence of verification concerning a 5th embodiment. 第6実施形態に係る秘密分散システムの構成の一例を示すブロック図である。It is a block diagram showing an example of composition of a secret sharing system concerning a 6th embodiment. 第6実施形態に係る復元装置614のハードウェア構成の一例を示す図である。FIG. 21 is a diagram illustrating an example of a hardware configuration of a restoration device 614 according to a sixth embodiment. 第6実施形態に係るブロックチェーン装置616のハードウェア構成の一例を示す図である。FIG. 21 is a diagram illustrating an example of a hardware configuration of a blockchain device 616 according to a sixth embodiment. 第6実施形態に係る検証装置618のハードウェア構成の一例を示す図である。FIG. 18 is a diagram illustrating an example of a hardware configuration of a verification device 618 according to a sixth embodiment. 第6実施形態に係る分散、秘匿積和演算、補正処理の処理シーケンスの一例を示す図である。It is a figure showing an example of a processing sequence of distribution, confidential product-sum operation, and correction processing concerning a 6th embodiment. 第6実施形態に係る検証の処理シーケンスの一例を示す図である。It is a figure showing an example of a processing sequence of verification concerning a 6th embodiment.

以下、図面を参照して、本開示の技術を実施するための形態例を詳細に説明する。   Hereinafter, embodiments of the technology of the present disclosure will be described in detail with reference to the drawings.

まず、実施形態の詳細を説明する前に、実施形態の技術の前提となるShamir法、及びTUS法の詳細を説明した上で、TUS法における各問題点を説明する。   First, before describing the details of the embodiment, the details of the Shamir method and the TUS method, which are the premise of the technology of the embodiment, will be described, and each problem in the TUS method will be described.

<Shamir法>
Shamir法は、ある秘密情報をn個の分散情報に分散し、そのうちのk個以上の分散情報を集めることによって、元の秘密情報を復元することができるという方法である。ただし、k個未満の分散情報からは元の秘密情報を得ることが一切できないというものである。Shamir法での秘密情報の分散及び復元は、以下に示すように行われる。このような手法を(k,n)Shamir法と呼ぶ。
<Shamir method>
The Shamir method is a method in which a given piece of secret information is distributed into n pieces of shared information, and k or more pieces of shared information are collected, whereby the original secret information can be restored. However, the original secret information cannot be obtained at all from less than k pieces of shared information. Distribution and restoration of secret information in the Shamir method are performed as described below. Such a method is called a (k, n) Shamir method.

<分散>
1.ユーザはs<pかつn<pの条件を満たす任意の素数pを選択する。
<Dispersion>
1. The user selects an arbitrary prime number p satisfying the conditions of s <p and n <p.

2.ユーザはGF(p)の元から、n個のx(i=0,1,2,…,n−1)を選び、サーバIDとする。 2. The user selects n x i (i = 0, 1, 2,..., N−1) from the source of GF (p), and sets it as the server ID.

3.ユーザはGF(p)の元から、k−1個の乱数a(l=1,2,…,k−1)を選び、以下の分散式を生成する。 3. The user selects k−1 random numbers a 1 (l = 1, 2,..., K−1) from the source of GF (p), and generates the following dispersion equation.

=s+a+a +…+ak−1k−1 (mod p) W i = s + a 1 x i + a 2 x i 2 + ... + a k-1 x k-1 (mod p)

4.ユーザは上記式のxに各サーバIDを代入して分散値Wを計算し、各サーバSに送信する。 4. User by replacing the server ID in the x i of the above equation to calculate the variance value W i, and transmits to each server S i.

<復元処理>
1.復元に用いる分散情報をW(i=0,1,2,…,k−1)とする。また、その分散情報に対応するサーバIDをxとする。
<Restore process>
1. The shared information is used to restore W i (i = 0,1,2, ... , k-1) to. Further, the server ID corresponding to the shared information and x i.

2.復元者は、k個の(x,W)を集め、集めたk個の(x,W)を上記の分散式に代入し、k個の連立方程式を解くことで秘密情報であるsを復元する。なお、sの復元の際には、Lagrangeの補間公式を用いることができる。 2. Restore person, the k (x i, W i) collected, collected the k (x i, W i) the substituted into the above-mentioned dispersion formula, the secret information by solving the k-number of simultaneous equations Restore some s. At the time of restoration of s, Lagrange's interpolation formula can be used.

以上がShamir法の詳細である。   The above is the details of the Shamir method.

<TUS法>
次にTUS法の詳細を説明する。以下に、TUS法を用いてab+cの積和演算を行う場合の例を示す。なお、秘密情報a,b,c及び乱数αは、a,b,c,α∈Z/pZである。ただし、乗算において一旦復元されるaと乱数は0ではない。以下において、[a]は秘密情報aに対してサーバSが保持する分散値を表す。以降、秘密分散の処理も含めてすべての秘匿演算はpを法として行われる。また、サーバSは攻撃者が知らない変換用乱数組([ε]),([φ])を持つものとする。変換用乱数組とは、例えば

の関係を満たす変換用乱数εの分散値と、εを構成する乱数εからなる組である。
<TUS method>
Next, details of the TUS method will be described. Hereinafter, an example in which the sum of products of ab + c is performed using the TUS method will be described. The secret information a, b, c and the random numbers α j , β j , λ j , γ j are a, b, c, α j , β j , λ j , γ j Z / pZ. However, a and the random number once restored in the multiplication are not zero. In the following, [a] j represents a shared value held by the server S j for the secret information a. Thereafter, all the confidential operations including the secret sharing process are performed modulo p. It is also assumed that the server Si has a conversion random number set ([ε] j , ε j ), ([φ] j , φ j ) unknown to the attacker. The conversion random number set is, for example,

And a random number ε j that constitutes ε.

ab+cの秘匿演算の入出力を以下に示す。   The input and output of the secret operation of ab + c are shown below.

(入力)
([αa],[α,…,[αk−1)(j=0,1,…,k−1)
([βb],[β,…,[βk−1)(j=0,1,…,k−1)
([γc],[γ,…,[γk−1)(j=0,1,…,k−1)
(出力)
([δ(ab+c)],[δ,…,[δk−1)(i=0,1,…,n−1)
(input)
([Αa] j , [α 0 ] j ,..., [Α k−1 ] j ) (j = 0, 1,..., K−1)
([Βb] j , [β 0 ] j , ..., [β k-1 ] j ) (j = 0,1, ..., k-1)
([Γc] j , [γ 0 ] j ,..., [Γ k−1 ] j ) (j = 0, 1,..., K−1)
(output)
([Δ (ab + c)] i , [δ 0 ] j ,..., [Δ k−1 ] j ) (i = 0, 1,..., N−1)

上記の入出力のもと、ab+cの秘匿演算は以下に示すように行われる。   Based on the above input / output, the confidential calculation of ab + c is performed as shown below.

1.k台のサーバSは[αa],[βb],[γc]を公開する。また、Sは、αa,βb,γcを復元する。 1. The k servers S j publish [αa] j , [βb] j , and [γc] j . Sj restores αa, βb, and γc.

2−1.k台のサーバSは[α,…,[αk−1,[β,…,[βk−1,[γ,…,[γk−1を収集して、乱数αを復元する。 2-1. The k servers S j are [α j ] 0 ,..., [α j ] k−1 , [β j ] 0 ,..., [β j ] k−1 , [γ j ] 0 ,. ] K−1 is collected, and the random numbers α j , β j , γ j are restored.

2−2.サーバSは、乱数δを生成する。 2-2. Server S j generates a random number [delta] j.

2−3.サーバSは、生成した乱数δを用いて、δ/αβε/γφを計算して公開する。 2-3. Using the generated random number δ j , the server S j calculates δ j / α j β j ε j , δ j / γ j φ j and makes it public.

3.全てのサーバSは、以下の式を計算する。
3. All servers S i computes the following equation.

ただし、

とする。
However,

And

4.k台のサーバSは乱数δをShamir法で分散し、全てのサーバSに分散する。 4. The k servers S j distribute the random number δ j by the Shamir method, and distribute the random numbers δ j to all the servers S i .

5.以上より、サーバS(i=0,1,2,…,n−1)は秘密情報ab+cに関する分散情報として([δ(ab+c)],[δ,…,[δk−1)を保持する。 5. As described above, the server S i (i = 0, 1, 2,..., N−1) is used as the shared information regarding the secret information ab + c as ([δ (ab + c)] i , [δ 0 ] j ,. 1 ] j ) is retained.

以上がTUS法による秘匿演算の詳細である。TUS法は以下の3つの問題点を持つ。   The above is the details of the secret calculation by the TUS method. The TUS method has the following three problems.

<問題点1>
問題点1は、複数人による変換用乱数組の安全な生成法が知られていないというものである。変換用乱数組を一人が生成する場合、例えば生成者はk個の乱数ε,…,εk−1を生成して、ε=εε…εk−1を計算し、εを秘密分散して、[ε]とεをサーバSに送れば、Sは変換用乱数組([ε])を持つことができる。TUS法の安全性は変換用乱数組の安全性に依存するため、変換用乱数組の生成者が攻撃者であれば、その変換用乱数組を用いた秘匿計算は安全ではない。よって、信頼できない複数の生成者が変換用乱数組を生成しても、その値を知ることができない安全な変換用乱数組の生成法がなければ、上記TUS法は安全ではないということである。
<Problem 1>
The problem 1 is that a method of safely generating a conversion random number set by a plurality of persons is not known. If one of the conversion random number sets are generated, for example, the creator of k random numbers epsilon 0, epsilon 1, ..., and generates epsilon k-1, to calculate the ε = ε 0 ε 1 ... ε k-1 , Ε are secretly shared and [ε] j and ε j are sent to the server S j , so that S j can have a conversion random number set ([ε] j , ε j ). Since the security of the TUS method depends on the security of the conversion random number set, if the creator of the conversion random number set is an attacker, the confidential calculation using the conversion random number set is not secure. Therefore, even if a plurality of unreliable generators generate a conversion random number set, the TUS method is not secure unless there is a method of generating a secure conversion random number set whose value cannot be known. .

<問題点2>
問題点2は、秘密情報に0を含むことができないというものである。例えば、入力をaではなくa+1として入力すれば、最初の入力aは0であってもよいが、減算を含む場合、すなわちab−cまたはa−cを演算する場合、その出力が0となる可能性がある。そのため、TUS法による演算結果を用いて秘匿演算を繰り返せないという問題がある。
<Problem 2>
Problem 2 is that secret information cannot include 0. For example, if the input is input as a + 1 instead of a, the first input a may be 0, but when the subtraction is included, that is, when calculating ab-c or a-c, the output is 0. there is a possibility. Therefore, there is a problem that the confidential operation cannot be repeated using the operation result by the TUS method.

<問題点3>
問題点3は、秘匿計算の正当性を検証できないというものである。一般に秘密分散においては、k−1台までのサーバがもつ情報は盗聴などにより知られることを想定している。しかし、その盗聴可能なk−1台のサーバが乗っ取られ、偽の情報を出力したり、決められた処理をしない場合、上記秘匿演算の結果は信用できないものとなる。
<Issue 3>
Problem 3 is that the validity of the confidential calculation cannot be verified. Generally, in secret sharing, it is assumed that information held by up to k-1 servers is known by eavesdropping or the like. However, if the k-1 servers capable of eavesdropping are hijacked and output false information or do not perform predetermined processing, the result of the above-mentioned confidential calculation becomes unreliable.

以上がTUS法の問題点1〜3である。   The above are problems 1 to 3 of the TUS method.

問題点1の解決はTUS法において必須であり、問題点1が解決されることにより、TUS法の安全性が向上する。例えば、信頼できる変換用乱数組の生成者がいない場合でもTUS法を用いて秘匿演算できるようになる。また問題点1を解消することは、秘匿計算の検証においても必要となる。   Solution of the problem 1 is essential in the TUS method, and by solving the problem 1, the security of the TUS method is improved. For example, even when there is no reliable generator of the random number set for conversion, confidential calculation can be performed using the TUS method. Eliminating problem 1 is also required in verification of confidential calculation.

問題点2が解決されることにより、減算を含む秘匿演算を繰り返すことができるようになり、TUS法の実用性が向上する。また問題点2を解消することは、繰返し演算された結果、または0を含む結果を検証する場合に必要となる。   By solving the second problem, the concealment operation including the subtraction can be repeated, and the practicality of the TUS method is improved. Resolving problem 2 is necessary when verifying the result of repeated operation or the result including 0.

問題点3が解決されることにより、嘘の情報を出力するなど決められたプロトコルに従わないactiveな攻撃者に対しても安全性を確保することができるようになる。さらに、一般の検証機能付き秘匿計算は非常に複雑な処理を必要とするが、本発明の実施形態の手法によって非常に効率的に演算結果を検証できるようになる。   By solving the problem 3, it is possible to secure security against an active attacker who does not follow a predetermined protocol such as outputting false information. Furthermore, although general secure calculation with a verification function requires extremely complicated processing, the method according to the embodiment of the present invention enables the operation result to be verified very efficiently.

以上の各問題点を解消することによって、安全かつ効率的、実用的に秘匿演算を検証できるようになる。   By solving each of the above problems, it is possible to securely, efficiently, and practically verify the confidential operation.

以上を踏まえて、以下に各実施形態を展開する。以下の各実施形態において説明する秘密分散システムは、nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の分散値によって秘密情報を復元でき、k個未満では秘密情報を復元できないシステムである。   Based on the above, each embodiment will be described below. In a secret sharing system described in each of the following embodiments, n is an integer of 2 or more, k is an integer of 2 or more and n or less, secret information is distributed into n shared values, and secret information is distributed by k shared values. , And secret information cannot be restored with less than k.

[第1実施形態]
第1実施形態は、上記問題点1に対応する。すなわち複数の信頼できない入力者及び復元者によって生成されていたとしても、変換用乱数の値が知られない安全な変換用乱数組の生成法を実現するものである。本実施形態の手法によって生成された変換用乱数組は、以降の各実施形態においても用いられる。
[First Embodiment]
The first embodiment corresponds to the above problem 1. In other words, even if it is generated by a plurality of unreliable inputters and recoverers, a method of generating a safe conversion random number set in which the value of the conversion random number is unknown is realized. The conversion random number set generated by the method of the present embodiment is also used in each of the following embodiments.

まず第1実施形態の手法の前提について説明する。第1実施形態では、変換用乱数組を生成するために、参考文献1及び2に示される手法を拡張する。   First, the premise of the method of the first embodiment will be described. In the first embodiment, the methods shown in References 1 and 2 are extended to generate a conversion random number set.

[参考文献1]M. Ben-Or, S. Goldwasser, and A. Wigderson, “Completeness theorems for non-cryptographic fault-tolerant distributed computation,” STOC ’88, 1988, pp. 1−10, ACM Press.
[参考文献2]Rosario Gennaro, Michael O. Rabin, and Tal Rabin, “Simplified VSS and fast-track multiparty computations with applications to threshold cryptography,” In Brian A. Coen and Yehuda Afek, editors, PODC, 1998, pp. 101−111, ACM.
[Reference 1] M. Ben-Or, S. Goldwasser, and A. Wigderson, “Completeness theorems for non-cryptographic fault-tolerant distributed computation,” STOC '88, 1988, pp. 1-10, ACM Press.
[Reference 2] Rosario Gennaro, Michael O. Rabin, and Tal Rabin, “Simplified VSS and fast-track multiparty computations with applications to threshold cryptography,” In Brian A. Coen and Yehuda Afek, editors, PODC, 1998, pp. 101-111, ACM.

参考文献1及び2において、2k次の多項式に対する分散値をk次の多項式に対する分散値に変換する方法が示されている。例えば参考文献1では、以下に示す変換手法が開示されている。   References 1 and 2 show a method of converting a variance value for a 2k-order polynomial into a variance value for a k-order polynomial. For example, Reference 1 discloses the following conversion method.

ある規則によって生成された定数を要素とする行列を以下の行列Aとする。   A matrix having constants generated by a certain rule as elements is referred to as a matrix A below.

上記行列Aを用いて、2k次の多項式に対する分散値ベクトルW=(W,W,・・・,W2k−1)に対してR=W・Aを計算することで、k次の多項式に対する分散値ベクトルR=(R,R,・・・,R2k−1)に変換することができる。参考文献2の手法もほぼ同様の処理で、分散値ベクトルRへの変換を実現できる。 By using the above matrix A, R = W · A is calculated for the variance vector W = (W 0 , W 1 ,..., W 2k−1 ) for the 2k- order polynomial, so that the k-th order A variance vector R = (R 0 , R 1 ,..., R 2k−1 ) for the polynomial can be converted. The method of Reference 2 can realize conversion to a variance vector R by almost the same processing.

ただし、参考文献1及び2の手法はサーバ台数がn≧2k−1の場合に有効であるが、本実施形態ではTUS法と同様にn<2k−1の場合を扱う。以下で説明する本実施形態の構成では、二人の入力者に対応する入力装置と、一人の復元者に対応する復元装置とを想定し、n=kの場合の生成法を示す。ただし、後述するように復元装置は復元を行わず、演算支援装置としてふるまう。   However, the methods of References 1 and 2 are effective when the number of servers is n ≧ 2k−1, but in the present embodiment, the case of n <2k−1 is handled as in the TUS method. In the configuration of the present embodiment described below, an input device corresponding to two input persons and a restoration apparatus corresponding to one restorer are assumed, and a generation method in the case of n = k will be described. However, as described later, the restoration device does not perform restoration, and acts as a calculation support device.

2k−1>n>kの場合は乱数α等を直接サーバに送らず、(k,n)Shamir法を用いて分散し、演算を行うk台のサーバが乱数α等を復元して使用する。また、秘密情報λは(k,n+k−1)Shamir法を用いて分散され、n台のサーバ中k−1台のサーバのみが[αλi+kを持つ。また、復元装置は復元を行うと変換用乱数の値を知るので、復元装置は復元を行わず、演算支援の役割を持つ。以下において、秘密情報λ及び乱数αj,ij,iはλj,ij,i∈Z/pZである。ただし、秘密情報と乱数は0を含まないものとする。また、0r1などは0を表し、他と区別するため記号を付ける。 When 2k-1>n> k, the random number α i and the like are not directly sent to the server, but are distributed using the (k, n) Shamir method, and k servers performing the operation restore the random number α i and the like. use. The secret information λ 0 and λ 1 are distributed using the (k, n + k−1) Shamir method, and only k−1 servers out of n servers have [αλ 0 ] i + k . In addition, since the restoration device knows the value of the conversion random number when the restoration is performed, the restoration device does not perform the restoration and has a role of calculation support. In the following, the secret information λ 0 , λ 1 and the random numbers α j, i , β j, i , γ i are λ 0 , λ 1 , α j, i , β j, i , γ i ∈Z / pZ. However, the secret information and the random number do not include 0. Also, 0 r1 and the like represent 0, and are marked with symbols to distinguish them from others.

以上の前提を踏まえて、図1を参照して、本実施形態に係る秘密分散システム10の構成を説明する。図1に示すように、秘密分散システム10は、2台の入力装置12A及び入力装置12B、復元装置14、並びにサーバ16〜16n−1を含む。以下、入力装置12A及び入力装置12Bについて共通する内容については「入力装置12」、サーバ16〜16n−1について共通する内容については「サーバ16」とし、末尾の識別記号を省略して説明する場合もある。入力装置12、復元装置14、及びサーバ16は、ネットワークNに接続され、互いに通信可能とされる。なお、サーバ16が、乗算部と、変換部と、加算部とを含む秘匿演算装置の一例である。 Based on the above premise, the configuration of the secret sharing system 10 according to the present embodiment will be described with reference to FIG. As shown in FIG. 1, the secret sharing system 10 includes two input devices 12A and an input device 12B, restoring device 14, and the server 16 0 ~16 n-1. Hereinafter, "input device 12" for the contents to be common to the input device 12A and the input device 12B, and the "server 16" for the contents to be common to the server 16 0 ~ 16 n-1, by omitting the last identification Legend In some cases. The input device 12, the restoration device 14, and the server 16 are connected to the network N and can communicate with each other. Note that the server 16 is an example of a confidential operation device including a multiplication unit, a conversion unit, and an addition unit.

入力装置12は、秘密情報の入力者(以下、単に「入力者」という)によって操作される装置であり、入力装置12の例としては、パーソナルコンピュータ等の情報処理装置が挙げられる。   The input device 12 is a device that is operated by a person who inputs confidential information (hereinafter, simply referred to as an “input person”), and an example of the input device 12 is an information processing device such as a personal computer.

復元装置14は、秘密情報を復元する復元者(以下、単に「復元者」という)によって操作される装置であり、復元装置14の例としては、パーソナルコンピュータ等の情報処理装置が挙げられる。   The restoring device 14 is a device operated by a restoring person who restores confidential information (hereinafter, simply referred to as “restoring person”). An example of the restoring device 14 is an information processing device such as a personal computer.

サーバ16は、変換用乱数組の生成に係る計算、変換用乱数組の保管などをする役割を持つ。また、サーバ16はn台存在し、説明に応じてサーバS(i=0,…,n−1)等とも記載する(以下、各実施形態において同様である)。 The server 16 has a role of performing calculations related to generation of the conversion random number set, storing the conversion random number set, and the like. In addition, there are n servers 16, which are also described as servers S i (i = 0,..., N−1) according to the description (the same applies to each embodiment below).

次に、図2を参照して、本実施形態に係るサーバ16のハードウェア構成を説明する。図2に示すように、サーバ16は、CPU(Central Processing Unit)20、一時記憶領域としてのメモリ21、不揮発性の記憶部22を含む。また、サーバ16は、液晶ディスプレイ等の表示装置23、キーボード等の入力I/F24、及びネットワークNに接続されるネットワークI/F25(InterFace)を含む。CPU20、メモリ21、記憶部22、表示装置23、入力I/F24、及びネットワークI/F25は、バス26に接続される。   Next, a hardware configuration of the server 16 according to the present embodiment will be described with reference to FIG. As illustrated in FIG. 2, the server 16 includes a CPU (Central Processing Unit) 20, a memory 21 as a temporary storage area, and a nonvolatile storage unit 22. The server 16 includes a display device 23 such as a liquid crystal display, an input I / F 24 such as a keyboard, and a network I / F 25 (InterFace) connected to the network N. The CPU 20, the memory 21, the storage unit 22, the display device 23, the input I / F 24, and the network I / F 25 are connected to the bus 26.

記憶部22は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、及びフラッシュメモリ等によって実現される。記憶媒体としての記憶部22には、変換用乱数組生成プログラム28が記憶される。変換用乱数組生成プログラム28は、乗算プロセス28aと、変換プロセス28bと、加算プロセス28cとを含む。CPU20は、記憶部22から変換用乱数組生成プログラム28を読み出してからメモリ21に展開し、展開した生成プログラム28を実行する。CPU20が変換用乱数組生成プログラム28の乗算プロセス28aを実行することで、開示の技術の乗算部として動作する。CPU20が変換用乱数組生成プログラム28の変換プロセス28bを実行することで、開示の技術の変換部として動作する。CPU20が変換用乱数組生成プログラム28の加算プロセス28cを実行することで、開示の技術の加算部として動作する。   The storage unit 22 is realized by a hard disk drive (HDD), a solid state drive (SSD), a flash memory, and the like. The storage unit 22 as a storage medium stores a conversion random number set generation program 28. The conversion random number set generation program 28 includes a multiplication process 28a, a conversion process 28b, and an addition process 28c. The CPU 20 reads out the conversion random number set generation program 28 from the storage unit 22, expands it in the memory 21, and executes the expanded generation program 28. When the CPU 20 executes the multiplication process 28a of the conversion random number set generation program 28, it operates as the multiplication unit according to the disclosed technology. When the CPU 20 executes the conversion process 28b of the conversion random number set generation program 28, it operates as a conversion unit according to the disclosed technology. When the CPU 20 executes the addition process 28c of the conversion random number set generation program 28, the CPU 20 operates as an addition unit according to the disclosed technology.

なお、入力装置12、及び復元装置14についてはサーバ16と同様の装置構成をとることができ、実行するプログラムのみが異なるため詳細な説明を省略する。   Note that the input device 12 and the restoration device 14 can have the same device configuration as the server 16 and differ only in the program to be executed, and thus detailed description will be omitted.

次に、図3を参照して、本実施形態に係る秘密分散システム10の作用を説明する。   Next, the operation of the secret sharing system 10 according to the present embodiment will be described with reference to FIG.

<変換用乱数組生成1:n=k>
図3は、秘密分散システム10の変換用乱数組を生成する処理シーケンスを説明したものである。以下において、サーバ16は、シーケンスの各処理に応じてサーバS、Sj、及びSk−1のいずれかが対象であるものとして説明する。
<Conversion random number set generation 1: n = k>
FIG. 3 illustrates a processing sequence of the secret sharing system 10 for generating a conversion random number set. In the following, the server 16 will be described on the assumption that any one of the servers S i , S j, and S k−1 is targeted according to each processing of the sequence.

S10で、入力装置12Aは、乱数λ0,i、及びα(i=0,…,k−1)を生成する。 In S10, the input device 12A generates random numbers λ 0, i and α i (i = 0,..., K−1).

S12で、入力装置12Aは、

を計算する。また、入力装置12Aは、λを(k,2k−1)Shamir法で分散して[αλi+k=α×[λi+kを計算する。
In S12, the input device 12A

Is calculated. Further, the input device 12A calculates [αλ 0 ] i + k = α × [λ 0 ] i + k by dispersing λ 0 by the (k, 2k−1) Shamir method.

S14で、入力装置12Aは、S10及びS12で得られた[λ,[αλi+k0,iをサーバSに送信する。ただし、サーバSk−1は[αλ2k−1を持たないものとする。 In S14, the input device 12A is obtained in S10 and S12 [λ 0] i, and transmits [αλ 0] i + k, α i, the lambda 0, i to server S i. However, the server S k-1 does not have [αλ 0 ] 2k-1 .

S16で、入力装置12Bは、乱数λ1,i、及びβ(i=0,…,k−1)を生成する。 In S16, the input device 12B generates random numbers λ 1, i and β i (i = 0,..., K−1).

S18で、入力装置12Bは、

を計算する。また、入力装置12Bは、λを(k,2k−1)Shamir法で分散して[βλi+k=β×[λi+kを計算する。
In S18, the input device 12B

Is calculated. In addition, the input device 12B calculates [βλ 1 ] i + k = β × [λ 1 ] i + k by dispersing λ 1 by the (k, 2k−1) Shamir method.

S20で、入力装置12Bは、S16及びS18で得られた[λ,[βλi+k1,iをSに送信する。ただし、サーバSk−1は[βλ2k−1を持たないものとする。 In S20, the input device 12B is obtained in S16 and S18 [λ 1] i, and transmits [βλ 1] i + k, β i, the lambda 1, i to S i. However, the server S k-1 does not have [βλ 1 ] 2k-1 .

S22で、サーバSk−1を除くサーバS(以下、本シーケンスの説明では単にSと記載する)は、[λλ=[λ×[λ,[αβλλi+k=[αλi+k×[βλi+kを計算する。なお、S22は、サーバSにおける、変換用乱数組生成プログラム28の乗算プロセス28aに対応する。サーバSのCPU20が、乗算プロセス28aを実行することで、開示の技術における分散値同士を乗算する処理を行う。 In S22, the server S i excluding the server S k-1 (hereinafter simply referred to as S i in the description of this sequence) is [λ 0 λ 1 ] i = [λ 0 ] i × [λ 1 ] i , [Αβλ 0 λ 1 ] i + k = [αλ 0 ] i + k × [βλ 1 ] i + k is calculated. Incidentally, S22 is in the server S i, corresponding to the multiplication process 28a of the converting random set generation program 28. CPU20 of the server S i is, by executing the multiplication process 28a, performs a process of multiplying the variance between the disclosed technique.

S24で、サーバSは、[αβλλi+kを復元装置14に送信する。 In S24, the server S i transmits the restoration apparatus 14 [αβλ 0 λ 1] i + k.

S26で、サーバSは、αβを計算する。 In S26, the server S i computes the α i β i.

S28で、復元装置14は、0r1を(2k−1,2k−1)Shamir法で分散する。 In S28, restoring device 14, a 0 r1 (2k-1,2k-1 ) dispersed in Shamir method.

S30で、復元装置14は、サーバSで計算されたαβを取得する。 In S30, the restoration device 14 acquires α i β i calculated by the server S i .

S32で、取得したαβを元に、αβを復元する。 In S32, αβ is restored based on the obtained α i β i .

S34で、復元装置14は、S28で分散した0r1、及びS32で復元したαβを用いて[λλ]′i+k=[αβλλi+k/αβ+[0r1i+kを計算する。 In S34, the restoration apparatus 14 calculates [λ 0 λ 1 ] ′ i + k = [αβλ 0 λ 1 ] i + k / αβ + [0 r1 ] i + k using 0 r1 dispersed in S28 and αβ restored in S32. .

S36で、復元装置14は、計算した[λλ]′i+kをサーバSに送信する。 In S36, restoring device 14 transmits the calculated [λ 0 λ 1] 'i + k to server S i.

S38で、サーバSは、0を(k,n)Shamir法で分散し、Ri,jを計算する。j≠i(j=0,…,n−1)のとき、Ri,jは以下のように計算できる。なお、以下におけるai,jなどは上記行列Aの要素である。
i,j=ai,j×[λλ+ai+n,j×[λλ]′i+n+[0
In S38, the server S i distributes 0 i by the (k, n) Shamir method and calculates R i, j . When j ≠ i (j = 0,..., n−1), R i, j can be calculated as follows. Note that a i, j and the like in the following are elements of the matrix A.
R i, j = a i, j × [λ 0 λ 1 ] i + a i + n, j × [λ 0 λ 1 ] ′ i + n + [0 i ] j

なお、S38は、サーバSにおける、変換用乱数組生成プログラム28の変換プロセス28bに対応する。サーバSのCPU20が、変換プロセス28bを実行することで、開示の技術における分散値の次数変換処理を行う。S38のRi,jの計算ではS36で返却された[λλ]′i+kを用いるが、[λλ]′i+kが他装置から送られた分離できない乗算値の一例である。また、Ri,jが次数変換後の分散値の一例である。 Incidentally, S38 is in the server S i, corresponding to the conversion process 28b of the converting random set generation program 28. CPU20 of the server S i is, by executing the conversion process 28b, performs the order conversion of the dispersion value used in the technique disclosed herein. [Λ 0 λ 1 ] ′ i + k returned in S 36 is used in the calculation of R i, j in S 38, but [λ 0 λ 1 ] ′ i + k is an example of an inseparable multiplication value sent from another device. R i, j is an example of the variance after the degree conversion.

S40で、サーバSは、i=jか否かを判定する。i=jであればS42へ移行し、i=jでなければ(すなわち、i≠jであれば)、S44へ移行する。 In S40, the server S i determines whether i = j. If i = j, the process proceeds to S42, and if not i = j (ie, if i ≠ j), the process proceeds to S44.

S42で、サーバSは、乱数rを生成して、以下のようにRi,jにrを加算する。
i,j=ai,j×[λλ+ai+n,j×[λλ]′i+n+[0+r
In S42, the server S i generates a random number r i, adds r i R i, in j as follows.
R i, j = a i, j × [λ 0 λ 1] i + a i + n, j × [λ 0 λ 1] 'i + n + [0 i] j + r i

なお、S42は、サーバSにおける、変換用乱数組生成プログラム28の加算プロセス28cに対応する。サーバSのCPU20が、加算プロセス28cを実行することで、開示の技術における乱数を分散値に加算する処理を行う。 Incidentally, S42 is in the server S i, corresponds to the addition process 28c of the converting random set generation program 28. CPU20 of the server S i is, by executing an addition process 28c, performs a process of adding a random number in the technology disclosed in variance.

S44で、サーバSは、計算したRi,jを復元装置14に送信する。 In S44, the server S i is calculated R i, and transmits the j restoring device 14.

S46で、復元装置14は、0r2を(k,n)Shamir法で分散し、R′i,j=Ri,j+ai,j×[0r1+[0r2を計算する。ただし、j=0,…,n−1とし、
(i≠j)のとき:
R′i,j=ai,j×[λλ]′+ai+n,j×[λλ]′i+n+[0+[0r2(i=j)のとき:
R′i,j=ai,j×[λλ]′+ai+n,j×[λλ]′i+n+[0+[0r2+r
とする。
In S46, the restoration device 14 distributes 0 r2 by the (k, n) Shamir method, and calculates R ′ i, j = R i, j + a i, j × [0 r1 ] i + [0 r2 ] i . I do. Where j = 0,..., N−1,
(I ≠ j):
R ′ i, j = a i, j × [λ 0 λ 1 ] ′ i + a i + n, j × [λ 0 λ 1 ] ′ i + n + [0 i ] j + [0 r2 ] j (i = j) When:
R 'i, j = a i , j × [λ 0 λ 1]' i + a i + n, j × [λ 0 λ 1] 'i + n + [0 i] j + [0 r2] j + r i
And

S48で、復元装置14は、R′i,jをサーバSに送信する。このように、サーバSで計算された次数変換後の分散値であるRi,jは、R′i,jとなってサーバSに返信される。 In S48, the restoration device 14 sends R ′ i, j to the server Sj . Thus, R i, j is the variance value after the order conversion calculated in the server S i is, R 'i, are returned in a j in the server S j.

S50で、サーバSは、Σi=0 k−1R′i,j−r=[λ]と計算する。また、サーバSは、λ=λ0,iλ1,iを計算する。以上のシーケンスによって、変換用乱数組([λ])が得られる。 In S50, the server S j is, Σ i = 0 k-1 R 'i, compute the j -r i = [λ] j . Further, the server Sj calculates λ i = λ 0, i λ 1, i . By the above sequence, a conversion random number set ([λ] j , λ i ) is obtained.

[第1実施形態の変形例]
上述した変換用乱数組生成1では、n=kのとき、入力装置12及び復元装置14を必要とする場合を例に説明した。一方、n=k=2の場合、入力装置12及び復元装置14を不要とした以下の処理が可能となる。すなわち、サーバ16だけの構成で変換用乱数組生成が可能となる。
[Modification of First Embodiment]
In the above-described conversion random number set generation 1, the case where the input device 12 and the restoration device 14 are required when n = k has been described as an example. On the other hand, when n = k = 2, the following processing that does not require the input device 12 and the restoration device 14 can be performed. That is, it is possible to generate a random number set for conversion with only the server 16.

<変換用乱数組生成1′:n=k=2>
図4は、n=k=2の場合の変換用乱数組を生成する処理シーケンスを説明したものである。以下において、サーバ16のうち、サーバS、及びSの間で処理する場合を例に説明する。図4のシーケンスにおいて、以下のS60〜S94の処理が行われる。なお、図4において各処理は簡略化して記載するものとする。
<Conversion random number set generation 1 ': n = k = 2>
FIG. 4 illustrates a processing sequence for generating a conversion random number set when n = k = 2. In the following, a case where processing is performed between the servers S 0 and S 1 among the servers 16 will be described as an example. In the sequence of FIG. 4, the following processes of S60 to S94 are performed. In FIG. 4, each process is described in a simplified manner.

S60では、サーバSは、乱数λを生成し、α=ααを計算する。 In S60, the server S 0 generates random numbers λ 0 , α 0 , α 1 , τ 0 and calculates α = α 0 α 1 .

S62では、サーバSは、λを(2,3)Shamir法で分散して、[αλ=α×[λ,[αλ=α×[λ,[τλ=τ×[λを計算する。 In S62, the server S 0 distributes λ 0 by the (2,3) Shamir method, and [αλ 0 ] 0 = α × [λ 0 ] 0 , [αλ 0 ] 2 = α × [λ 0 ] 2 , [Τ 0 λ 0 ] 1 = τ 0 × [λ 0 ] 1 .

S64では、サーバSは、得られた[τλをサーバSに送信する。 In S64, the server S 0 is obtained [τ 0 λ 0] 1, transmits the alpha 1 to the server S 1.

S66では、サーバSは、乱数λを生成し、β=ββを計算する。 In S66, the server S 1 is random lambda 1, beta 0, generates a beta 1, to calculate the β = β 0 β 1.

S68では、サーバSは、λを(2,3)Shamir法で分散して、[βλ=β×[λ,[βλ=β×[λを計算する。 In S68, the server S 1 distributes λ 1 by the (2,3) Shamir method, and [βλ 1 ] 0 = β × [λ 1 ] 0 , [βλ 1 ] 2 = β × [λ 1 ] 2 Is calculated.

S70では、サーバSは、得られた[βλ,[βλをサーバSに送信する。 In S70, the server S 1 transmits the obtained [βλ 1 ] 0 , [βλ 1 ] 2 , β 0 to the server S 0 .

S72では、サーバSは、0を(3,3)Shamir法で分散し、αβと以下を計算する。
[αβλλ]′=[αλ×[βλ+[0,[αβλλ]′=[αλ×[βλ+[0,[0
In S72, the server S 0 distributes 0 0 by the (3,3) Shamir method, and calculates α 0 β 0 and the following.
[Αβλ 0 λ 1] '0 = [αλ 0] 0 × [βλ 1] 0 + [0 0] 0, [αβλ 0 λ 1]' 2 = [αλ 0] 2 × [βλ 1] 2 + [0 0 ] 2 , [0 0 ] 1

S74では、サーバSは、計算した[αβλλ]′、[αβλλ]′、αβをサーバSに送信する。 In S74, the server S 0 was calculated [αβλ 0 λ 1] '0 , [αβλ 0 λ 1]' to send 2, the alpha 0 beta 0 to server S 1.

S76では、サーバSは、0を(3,3)Shamir法で分散し、αβとαβからαβを計算すると共に、以下を計算する。ただし、[001=[0/αβ+[0である。 In S76, the server S 1 is to disperse 0 1 (3,3) Shamir method, the calculating the αβ from alpha 1 beta 1 and alpha 0 beta 0, to calculate the following. However, it is [0 01] i = [0 0] i / αβ + [0 1] i.



[001=[0/αβ+[0


[0 01] 1 = [0 0] 1 / αβ + [0 1] 1

S78では、サーバSは、得られた[λλ]′,[λλ]′,[001をサーバSに送信する。 In S78, the server S 1 is obtained [λ 0 λ 1] '0 , [λ 0 λ 1]' 2, transmits the [0 01] 1 to the server S 0.

S80では、サーバSは、00′を(2,2)Shamir法で分散する。 In S80, the server S 0 distributes 0 0 ′ by the (2,2) Shamir method.

S82では、サーバSは、乱数rを生成する。 In S82, the server S 0 generates a random number r 0.

S84では、サーバSは、分散した00′、及び乱数rを用いて、以下のR0,0及びR0,1を計算する。
0,0=τ(a0,0×[λλ]′+a2,0×[λλ]′+a1,0×[001)+[00′+r=τ(a0,0[λλ+a2,0[λλ)+τ[001]″+[00′+r
0,1=τ(a0,1×[λλ]′+a2,1×[λλ]′+a1,1×τ[001)+[00′=τ(a0,1[λλ+a,[λλ)+τ[001]″+[00′
In S84, the server S 0 is dispersed 0 0 ', and by using the random number r 0, to calculate the following R 0,0 and R 0, 1.
R 0,0 = τ 0 (a 0,0 × [λ 0 λ 1 ] ′ 0 + a 2,0 × [λ 0 λ 1 ] ′ 2 + a 1,0 × [ 001 ] 1 ) + [0 0 ′ ] 0 + r 0 = τ 0 (a 0,0 [λ 0 λ 1] 0 + a 2,0 [λ 0 λ 1] 2) + τ 0 [0 01] "0 + [0 0 '] 0 + r 0
R 0,1 = τ 0 (a 0,1 × [λ 0 λ 1 ] ′ 0 + a 2,1 × [λ 0 λ 1 ] ′ 2 + a 1,1 × τ 0 [ 001 ] 1 ) + [0 0 '] 1 = τ 0 ( a 0,1 [λ 0 λ 1] 0 + a 2, 1 [λ 0 λ 1] 2) + τ 0 [0 01] "1 + [0 0'] 1

S86では、サーバSは、計算したR0,0,R0,1をサーバSに送信する。 In S86, the server S 0 transmits the calculated R 0,0, the R 0, 1 to the server S 1.

S88では、サーバSは、[τλλ=[τλ×[λを計算すると共に、01′を(2,2)Shamir法で分散し、以下を計算する。
R′0,0=R0,0+a1,0×[τλλ+[01′=τ[λλ+τ[001]″+[00′+[01′+r
R′0,1=R0,1+a1,1×[τλλ+[01′=τ[λλ+τ[001]″+[00′+[01′
In S88, the server S 1 is, [τ 0 λ 0 λ 1 ] 1 = [τ 0 λ 0] 1 × with calculating the [λ 1] 1, was dispersed at 0 1 '(2,2) Shamir method , Calculate:
R ′ 0,0 = R 0,0 + a 1,0 × [τ 0 λ 0 λ 1 ] 1 + [0 1 ′ ] 0 = τ 00 λ 1 ] 0 + τ 0 [0000 01 ] ″ 0+ [0 0 ' ] 0 + [0 1' ] 0 + r 0
R '0,1 = R 0,1 + a 1,1 × [τ 0 λ 0 λ 1] 1 + [0 1'] 1 = τ 0 [λ 0 λ 1] 1 + τ 0 [0 01] "1 + [0 0 ' ] 1 + [0 1' ] 1

S90では、サーバSは、得られたR′0,0をサーバSに送信する。 In S90, the server S 1 transmits the obtained R '0,0 the server S 0.

S92では、サーバSは[λ]=R′0,0−r=τλとして変換用乱数組([λ])を得る。 In S92, the server S 0 get [λ] 0 = R '0,0 -r 0, λ 0 = τ 0 λ 0 conversion random number set as ([λ] 0, λ 0 ).

S94では、サーバSは[λ]=R′0,1として変換用乱数組([λ])を得る。 In S94, the server S 1 is [λ] 1 = R '0,1 convert random number set as ([λ] 1, λ 1 ) obtained.

以上が、変換用乱数組生成1′の場合の説明である。   The above is the description of the conversion random number generation 1 ′.

以上説明したように、本発明の第1実施形態の手法を用いて変換用乱数組を生成することにより、安全に変換用乱数組を生成することができる。   As described above, by generating the conversion random number set using the method of the first embodiment of the present invention, it is possible to safely generate the conversion random number set.

[第2実施形態]
第2実施形態は、上記問題点2に対応する。すなわち秘密情報に0を含む場合の手法である。
[Second embodiment]
The second embodiment corresponds to the above problem 2. That is, this is a method in a case where the secret information includes 0.

まず第2実施形態の手法の前提について説明する。以下において,秘密情報a,b,c及び乱数αj,ij,ij,i,a,b,cはa,b,c,αj,ij,ij,i,a,b,c∈Z/pZである。また、秘密情報に0を含んでもよいが、乱数は0を含まないものとする。また、第2実施形態では、第1実施形態に示した手法により変換用乱数組が予め生成されており、サーバSは変換用乱数組([εh,ih,i),(h=1,…,必要個数)を持つものとする。以下の説明においては、n=kにおける秘匿積和演算を示すが、n>kの場合、αj,ij,ij,ij,iなどは(k,n)Shamir法で分散し、演算に参加するk台のサーバが復元してもよい。また、a+aのように秘密情報に加えられる乱数a,b,cは0でなく、その加算結果も0とならない値を選ぶものとする。積和演算を組み合わせることにより、任意の四則演算を構成できるため、秘匿積和演算を例に以下、詳細を説明する。 First, the premise of the method of the second embodiment will be described. In the following, secret information a, b, c and random numbers α j, i , β j, i , γ j, i , a 1 , b 1 , c 1 are a, b, c, α j, i , β j, i , γ j, i , a 1 , b 1 , c 1 ∈Z / pZ. Also, the secret information may include 0, but the random number does not include 0. Further, in the second embodiment, the conversion random number set is generated in advance by the method described in the first embodiment, and the server S i converts the conversion random number set ([ε h, i ] i , ε h, i ). , (H = 1,..., Required number). In the following description, the confidential product-sum operation at n = k is shown. However, when n> k, α j, i , β j, i , γ j, i , ε j, i etc. are (k, n) The k servers that are distributed by the Shamir method and participate in the calculation may be restored. Also, random numbers a 1 , b 1 , c 1 added to the secret information, such as a + a 1 , are not 0, and a value whose addition result is not 0 is selected. Since any four arithmetic operations can be configured by combining the product-sum operations, the secret product-sum operation will be described in detail below as an example.

以上の前提を踏まえて、図5を参照して、本実施形態に係る秘密分散システム210の構成を説明する。図5に示すように、秘密分散システム210は、3台の入力装置212A〜212C、及び複数台のサーバ216〜216n−1を含む。以下、入力装置212A〜212Cについて共通する内容については「入力装置212」、サーバ216〜216n−1について共通する内容については「サーバ216」とし、末尾の識別記号を省略して説明する場合もある。入力装置212、及びサーバ216は、ネットワークNに接続され、互いに通信可能とされる。なお、入力装置212が、第1生成部を含む分散装置の一例である。また、サーバ216が、第2生成部を含む秘匿演算装置の一例である。また、サーバ216が、第3生成部と、加算部とを含む秘匿演算装置の一例である。 Based on the above premise, the configuration of the secret sharing system 210 according to the present embodiment will be described with reference to FIG. As shown in FIG. 5, the secret sharing system 210 includes three input devices 212A to 212C and a plurality of servers 216 0 to 216 n−1 . Hereinafter, the content common to the input devices 212A to 212C will be referred to as “input device 212”, and the content common to the servers 216 0 to 216 n−1 will be referred to as “server 216”. There is also. The input device 212 and the server 216 are connected to the network N and can communicate with each other. Note that the input device 212 is an example of a distribution device including a first generation unit. The server 216 is an example of a confidential operation device including the second generation unit. Further, the server 216 is an example of a confidential operation device including a third generation unit and an addition unit.

入力装置212は、秘密情報の入力者によって操作される装置である。入力装置212は、乱数を作用させた所定の値を生成して、サーバ216に分散する。   The input device 212 is a device operated by a person who inputs secret information. The input device 212 generates a predetermined value to which a random number is applied, and distributes the generated value to the server 216.

サーバ216は、秘匿積和演算に係る計算などをする役割を持つ。   The server 216 has a role of performing calculations related to the confidential product-sum operation.

次に、図6を参照して、本実施形態に係る入力装置212のハードウェア構成を説明する。図6に示すように、入力装置212は、CPU220、一時記憶領域としてのメモリ221、不揮発性の記憶部222を含む。また、入力装置212は、表示装置223、入力I/F224、及びネットワークNに接続されるネットワークI/F225を含む。CPU220、メモリ221、記憶部222、表示装置223、入力I/F224、及びネットワークI/F225は、バス226に接続される。   Next, a hardware configuration of the input device 212 according to the present embodiment will be described with reference to FIG. As illustrated in FIG. 6, the input device 212 includes a CPU 220, a memory 221 as a temporary storage area, and a nonvolatile storage unit 222. The input device 212 includes a display device 223, an input I / F 224, and a network I / F 225 connected to the network N. The CPU 220, the memory 221, the storage unit 222, the display device 223, the input I / F 224, and the network I / F 225 are connected to the bus 226.

記憶部222は、HDD、SSD、及びフラッシュメモリ等によって実現される。記憶媒体としての記憶部222には、第1生成プログラム228が記憶される。CPU220は、記憶部222から第1生成プログラム228を読み出してからメモリ221に展開し、展開した第1生成プログラム228を実行する。CPU220が第1生成プログラム228を実行することで、開示の技術の第1生成部として動作する。なお、後述する第3〜第5実施形態においても同様である。   The storage unit 222 is realized by an HDD, an SSD, a flash memory, and the like. The storage unit 222 as a storage medium stores a first generation program 228. The CPU 220 reads out the first generation program 228 from the storage unit 222, expands it in the memory 221, and executes the expanded first generation program 228. When the CPU 220 executes the first generation program 228, it operates as a first generation unit according to the disclosed technology. The same applies to the third to fifth embodiments described later.

次に、図7を参照して、本実施形態に係るサーバ216のハードウェア構成を説明する。図7に示すように、サーバ216は、CPU230、一時記憶領域としてのメモリ231、不揮発性の記憶部232を含む。また、サーバ216は、表示装置233、入力I/F234、及びネットワークNに接続されるネットワークI/F235を含む。CPU230、メモリ231、記憶部232、表示装置233、入力I/F234、及びネットワークI/F235は、バス236に接続される。   Next, a hardware configuration of the server 216 according to the present embodiment will be described with reference to FIG. As shown in FIG. 7, the server 216 includes a CPU 230, a memory 231 as a temporary storage area, and a nonvolatile storage unit 232. Further, the server 216 includes a display device 233, an input I / F 234, and a network I / F 235 connected to the network N. The CPU 230, the memory 231, the storage unit 232, the display device 233, the input I / F 234, and the network I / F 235 are connected to the bus 236.

記憶部232は、HDD、SSD、及びフラッシュメモリ等によって実現される。記憶媒体としての記憶部232には、秘匿積和演算プログラム238が記憶される。秘匿積和演算プログラム238は、第2生成プロセス238aと、第3生成プロセス238bと、加算プロセス238cとを含む。CPU230は、記憶部232から秘匿積和演算プログラム238を読み出してからメモリ231に展開し、展開した秘匿積和演算プログラム238を実行する。CPU230が秘匿積和演算プログラム238の第2生成プロセス238aを実行することで、開示の技術の第2生成部として動作する。CPU230が秘匿積和演算プログラム238の第3生成プロセス238bを実行することで、開示の技術の第3生成部として動作する。CPU230が秘匿積和演算プログラム238の加算プロセス238cを実行することで、開示の技術の加算部として動作する。なお、後述する第3、第5実施形態においても同様である。なお、サーバ216において補正処理が行われない想定とし、秘匿積和演算プログラム238において第2生成プロセス238aのみを含み、第3生成プロセス238bと、加算プロセス238cとを含まないようにしてもよい。   The storage unit 232 is realized by an HDD, an SSD, a flash memory, and the like. The storage unit 232 as a storage medium stores a secret product-sum operation program 238. The secret product-sum operation program 238 includes a second generation process 238a, a third generation process 238b, and an addition process 238c. The CPU 230 reads out the confidential product-sum operation program 238 from the storage unit 232, expands it in the memory 231, and executes the expanded confidential product-sum operation program 238. When the CPU 230 executes the second generation process 238a of the confidential product-sum operation program 238, it operates as the second generation unit of the disclosed technology. When the CPU 230 executes the third generation process 238b of the confidential product-sum operation program 238, it operates as the third generation unit of the disclosed technology. When the CPU 230 executes the addition process 238c of the confidential product-sum operation program 238, the CPU 230 operates as an addition unit of the disclosed technology. The same applies to the third and fifth embodiments described later. Note that it is assumed that the correction process is not performed in the server 216, and the secret product-sum calculation program 238 may include only the second generation process 238a, and may not include the third generation process 238b and the addition process 238c.

次に、図8〜10を参照して、本実施形態に係る秘密分散システム210の作用を説明する。   Next, an operation of the secret sharing system 210 according to the present embodiment will be described with reference to FIGS.

まず、秘密情報を各サーバに分散する処理について説明する。図8は、秘密分散システム210における分散の処理シーケンスを説明したものである。分散の処理シーケンスでは、入力装置212A〜Cが持つ秘密情報をサーバ216に分散する。以下において、サーバ216は、分散の処理シーケンスの各処理に応じてn台の全てのサーバである全サーバS、及びサーバSのいずれかが対象であるものとして説明する。 First, a process of distributing secret information to each server will be described. FIG. 8 illustrates a sharing processing sequence in the secret sharing system 210. In the distribution processing sequence, the secret information held by the input devices 212A to 212C is distributed to the server 216. In the following, the server 216, all servers S which is on all servers of n units, and one of the servers S i is described as a target in response to the processing of distributed processing sequence.

<分散2>
S210で、入力装置212Aは、乱数a1,i2,i(i=0,…,k−1)を生成する。
<Dispersion 2>
In S210, the input device 212A, the random numbers a 1, α 1, i, α 2, i (i = 0, ..., k-1) to generate a.

S212で、入力装置212Aは、以下の式に基づいて、秘密情報aに対してαとα(a+a)を計算する。 In S212, the input device 212A, based on the following equation to calculate the alpha 1 a 1 and α 2 (a + a 1) with respect to the secret information a.



なお、S212は、入力装置212Aにおける、第1生成プログラム228に対応する。入力装置212AのCPU220が、第1生成プログラム228を実行することで、開示の技術における第1生成部の処理を行う。秘密情報aが第1の秘密情報、乱数aが第1の乱数、乱数αが第2の乱数、乱数αが第3の乱数の一例である。α(a+a)が、第1の乱数及び第2の乱数を作用させた第1の値の一例である。αが、第1の乱数に第3の乱数を作用させた第2の値の一例である。第1生成プログラム228との対応は、以下、入力装置212B、及び入力装置212Cの秘密情報に対して行う処理において同様である。 Note that S212 corresponds to the first generation program 228 in the input device 212A. By executing the first generation program 228, the CPU 220 of the input device 212A performs the processing of the first generation unit according to the disclosed technology. The secret information a is an example of the first secret information, the random number a 1 is an example of the first random number, the random number α 2 is an example of the second random number, and the random number α 1 is an example of the third random number. α 2 (a + a 1 ) is an example of a first value obtained by applying a first random number and a second random number. α 1 a 1 is an example of a second value obtained by applying a third random number to a first random number. The correspondence with the first generation program 228 is the same in the processing performed on the secret information of the input device 212B and the input device 212C below.

S214で、入力装置212Aは、計算したαとα(a+a)を全サーバSに送信する。 In S214, the input device 212A transmits the calculated α 1 a 1 and α 2 (a + a 1 ) to all servers S.

S216で、入力装置212Aは、乱数α1,i2,iをサーバSに送信する。 In S216, the input device 212A transmits the random number alpha 1, i, the alpha 2, i to server S i.

S218で、入力装置212Bは、乱数b1,i2,i(i=0,…,k−1)を生成する。 In S218, the input device 212B generates a random number b 1, β 1, i, β 2, i (i = 0, ..., k-1) to generate a.

S220で、入力装置212Bは、以下の式に基づいて、秘密情報bに対してβとβ(b+b)を計算する。 In S220, the input device 212B calculates β 1 b 1 and β 2 (b + b 1 ) for the secret information b based on the following equation.



S222で、入力装置212Bは、計算したβとβ(b+b)を全サーバSに送信する。 In S222, the input device 212B transmits the calculated β 1 b 1 and β 2 (b + b 1 ) to all servers S.

S224で、入力装置212Bは、乱数β1,i2,iをSに送信する。 In S224, the input device 212B transmits the random number beta 1, i, the beta 2, i to S i.

S226で、入力装置212Cは、乱数c1,i2,i(i=0,…,k−1)を生成する。 In S226, the input device 212C generates random numbers c 1 , γ 1, i , γ 2, i (i = 0,..., K−1).

S228で、入力装置212Cは、以下の式に基づいて、秘密情報cに対してγとγ(c+c)を計算する。 In S228, the input device 212C calculates γ 1 c 1 and γ 2 (c + c 1 ) for the secret information c based on the following equation.



S230で、入力装置212Cは、計算したγとγ(c+c)を全サーバSに送信する。 In S230, the input device 212C transmits the calculated γ 1 c 1 and γ 2 (c + c 1 ) to all servers S.

S232で、入力装置212Cは、乱数γ1,i2,iをサーバSに送信する。 In S232, the input device 212C transmits the random number gamma 1, i, the gamma 2, i to server S i.

以上の分散の処理シーケンスを実行することで、サーバSはα(a+a),β(b+b),γ(c+c)とα1,i1,i1,i2,i2,i2,iを持つことになる。また、サーバSは、上記第1実施形態の手法で生成された変換用乱数組([εh,ih,i)(h=0,…,必要個数)も予め持つものとする。 By executing the above-described distributed processing sequence, the server S i becomes α 1 a 1 , α 2 (a + a 1 ), β 1 b 1 , β 2 (b + b 1 ), γ 1 c 1 , γ 2 (c + c 1) ) And α1 , i , β1 , i , γ1 , i , α2 , i , β2 , i , γ2 , i . The server S i, the first embodiment of the converting random sets generated by the method ([ε h, i] i , ε h, i) (h = 0, ..., necessary number) which also has previously And

上記で説明した分散2の特徴は、秘密情報が漏洩しないよう、秘密情報に乱数を加えた値とその乱数のみが秘匿されて公開される点である。また、下記に説明する秘匿積和演算2は、秘密情報に乱数を加えた値とその乱数のみから、秘密情報による秘匿演算結果に乱数を加えた値とその乱数による秘匿演算結果が得られるように構成される。また、以下の秘匿積和演算において、計算結果を新たなα(a+a),αなどとするが、β(b+b)またはγ(c+c)としてもよい。またα2,i1,iも同様である。 The characteristic of the distribution 2 described above is that only a value obtained by adding a random number to the secret information and the random number are concealed and released so that the secret information does not leak. In addition, in the secret product-sum operation 2 described below, a value obtained by adding a random number to a secret calculation result based on secret information and a secret calculation result based on the random number are obtained from only the value obtained by adding a random number to the secret information and the random number. It is composed of Also, in the following concealed product-sum operation, the calculation result is new α 2 (a + a 1 ), α 1 a 1, etc., but β 1 b 1 , β 2 (b + b 1 ) or γ 1 c 1 , γ 2 (C + c 1 ) may be used. The same applies to α 2, i and α 1, i .

<秘匿積和演算2>
次に秘匿積和演算する処理について説明する。図9は、秘密分散システム210における、秘匿積和演算の処理シーケンスを説明したものである。図9では、説明の便宜のため、サーバ216のうち、サーバS、Sの間で秘匿積和演算の処理シーケンスが行われるものとし、図9上は全サーバSへの送信はサーバSに対する送信であるものとして説明するが、サーバSで行われる処理はサーバSでも行われる。
<Secret product-sum operation 2>
Next, a process of performing a secret product-sum operation will be described. FIG. 9 illustrates a processing sequence of the confidential product-sum operation in the secret sharing system 210. In FIG. 9, for convenience of explanation, it is assumed that the processing sequence of the confidential product-sum operation is performed between the servers S i and S 0 among the servers 216, and transmission to all the servers S is performed by the server S 216 in FIG. 9. Although described as a transmission to i, the processing performed by the server S i is performed even server S 0.

S240で、サーバS(i=0,…,k−1)は、以下の乱数δ1,i2,iを生成する。 In S240, the server S i (i = 0,..., K−1) generates the following random numbers δ 1, i , δ 2, i .

S242で、サーバSは、S240で生成した乱数δ1,i2,iを用いて以下を計算する。 In S242, the server S i is generated random number [delta] 1, i at S240, computes the following with reference to [delta] 2, i.



S244で、サーバSは、S242の計算結果をサーバSに送信する。 In S244, the server S i transmits a calculation result of S242 in the server S 0.

S246で、サーバSは、サーバSから受信した計算結果を用いて、以下を計算する。ただし以降、Πはi=0,…,k−1に関する乗算を表す。 In S246, the server S 0, using the calculation result received from the server S i, compute the following. Hereafter, Π represents multiplication for i = 0,..., K−1.



S248で、サーバSは、S246の計算結果を全サーバSに送信する。 In S248, the server S 0 transmits the calculation result of S246 to all servers S.

S250で、サーバSは、サーバSから受信した計算結果を用いて、以下を計算して公開し、計算結果を復元する。 In S250, the server S i, using the calculation result received from the server S 0, published by calculating the following, to restore the calculation result.

なお、S250は、サーバSにおける、秘匿積和演算プログラム238の第2生成プロセス238aに対応する。サーバSのCPU230が、第2生成プロセス238aを実行することで、開示の技術における第3の値の生成、及び第4の値の生成を行う。δ{(ab+c)+(c−a)}が、開示の技術における第3の値の一例である。δ(c−a)が、開示の技術における第4の値の一例である。第3の値は、複数の第1の秘密情報同士の演算結果(ab+c)に複数の乱数同士の演算結果(c−a)、及び第4の乱数(δ)を作用させた値である。また、第3の値は、複数の第1の秘密情報同士の演算結果を第1の秘密情報に置き換え、複数の第1の乱数同士の演算結果を第1の乱数に置き換え、第4の乱数を第2の乱数に置き換えた場合に第1の値と同形式になる。第4の値は、第1の乱数同士の演算結果(c−a)に第5の乱数(δ)を作用させた値である。また、第4の値は、複数の第1の乱数同士の演算結果を第1の乱数に置き換え、第5の乱数を第3の乱数に置き換えた場合に第2の値と同形式になる。 Incidentally, S250 is in the server S i, corresponding to the second generation process 238a confidential product-sum operation program 238. CPU230 server S i is, by executing the second generation process 238a, performs generation of a third value in the disclosed technique, and the generation of the fourth value. δ 2 {(ab + c) + (c 1 −a 1 b 1 )} is an example of a third value in the disclosed technology. δ 1 (c 1 −a 1 b 1 ) is an example of a fourth value in the disclosed technology. The third value is obtained by applying the operation result (c 1 −a 1 b 1 ) of the plurality of random numbers and the fourth random number (δ 2 ) to the operation result (ab + c) of the plurality of first secret information. Value. In addition, the third value is obtained by replacing a calculation result between a plurality of first secret information with a first secret information, replacing a calculation result between a plurality of first random numbers with a first random number, Has the same format as the first value when is replaced by a second random number. The fourth value is a value obtained by applying a fifth random number (δ 1 ) to the operation result (c 1 −a 1 b 1 ) of the first random numbers. The fourth value has the same format as the second value when the calculation result of the plurality of first random numbers is replaced with a first random number and the fifth random number is replaced with a third random number.

S252は、秘匿積和演算の処理シーケンスを繰り返す場合の処理である。S252で、サーバSは、δ{(ab+c)+(c−a)}及びδ(c−a)が0でなければ、その復元値を新たなα(a+a)及びαとして設定し、δ2,i1,iを新たなα2,i1,iに設定してS240に戻る。上記の秘匿積和演算の処理シーケンスは、例えば全てのサーバSについて処理を終了するまで繰り返す。 S252 is a process when the processing sequence of the confidential product-sum operation is repeated. In S252, the server S i is, δ 2 {(ab + c ) + (c 1 -a 1 b 1)} and δ 1 (c 1 -a 1 b 1) unless 0, a the restored value new α 2 (a + a 1 ) and α 1 a 1 are set, δ 2, i , δ 1, i are set to new α 2, i , α 1, i and the process returns to S240. Processing sequence of the concealed product-sum operation, for example, repeated until the processing ends for all servers S i.

<補正処理2>
次に、補正処理について説明する。上述した図9の秘匿積和演算の処理シーケンスにおいて、δ{(ab+c)+(c−a)},δ(c−a)の少なくとも1つが0の場合、以下の補正処理を行う。図10は、秘密分散システム210における補正処理の処理シーケンスを説明したものである。補正処理の処理シーケンスは、サーバ216のうち、全サーバS、サーバS、及びSの間で行われるものとして説明する。また、δ{(ab+c)+(c−a)}=0の場合を第1のケース、δ(c−a)=0の場合を第2のケースとして、第1のケース及び第2のケースのいずれか少なくとも一つに当てはまる場合の計算例を説明する。
<Correction process 2>
Next, the correction processing will be described. In the processing sequence of the confidential product-sum operation in FIG. 9 described above, when at least one of δ 2 {(ab + c) + (c 1 −a 1 b 1 )}, δ 1 (c 1 −a 1 b 1 ) is 0. , The following correction processing is performed. FIG. 10 illustrates a processing sequence of the correction processing in the secret sharing system 210. The processing sequence of the correction processing will be described as being performed among all the servers S, the servers S i , and S 0 among the servers 216. A case where δ 2 {(ab + c) + (c 1 −a 1 b 1 )} = 0 is a first case, and a case where δ 1 (c 1 −a 1 b 1 ) = 0 is a second case. , A calculation example in a case where at least one of the first case and the second case is applied will be described.

S260で、サーバSは、新たな乱数τ1,iとa′1,iを生成し、その積τ1,ia′1,iを公開する。 In S260, the server S i is 'generates a 1, i, the product tau 1, i a' new random number tau 1, i and a publishing 1, i.

S262で、サーバSは、τa′=Πτ1,ia′1,iを新たなαに設定する。また、τ1,iを新たなα1,iに設定する。なお、S262は、サーバSにおける、秘匿積和演算プログラム238の第3生成プロセス238bに対応する。サーバSのCPU230が、第3生成プロセス238bを実行することで、開示の技術における第6の乱数の生成を行う。a′が、第6の乱数の一例である。 In S262, the server S i sets τ 1 a '1 = Πτ 1 , i a' 1, i to the new alpha 1 a 1. Also, τ 1, i is set to a new α 1, i . Incidentally, S262 is in the server S i, corresponding to the third generation process 238b confidential product-sum operation program 238. CPU230 server S i is, by executing the third generation process 238b, and generates the sixth random number in the disclosed technique. a ′ 1 is an example of the sixth random number.

S264で、サーバSは、乱数τ2,iを生成する。 In S264, the server S i generates a random number tau 2, i.

S266で、サーバSは、S264で生成した乱数τ2,iを用いて計算を行う。第1ケースの場合、

と計算する。第2のケースの場合、

と計算する。
In S266, the server S i performs calculations using random numbers tau 2, i generated in S264. In the first case,

Is calculated. In the second case,

Is calculated.

S268で、サーバSは、S266の計算結果をサーバSに送信する。 In S268, the server S i transmits a calculation result of S266 in the server S 0.

S270で、サーバSは、サーバSから受信した計算結果を用いて、iについて乗算し計算を行う。第1のケースの場合

と計算する。第2のケースの場合

と計算する。
In S270, the server S 0, using the calculation result received from the server S i, performs multiplication for i calculation. For the first case

Is calculated. In the case of the second case

Is calculated.

S272で、サーバSは、S270の計算結果をサーバSに送信する。 In S272, the server S 0 transmits the calculation result of S270 in the server S i.

S274で、サーバSは、S272で返却された計算結果を用いて計算を行い、秘密情報を復元する。第1のケースの場合

を計算する。第2のケースの場合

を計算する。なお、S264は、サーバSにおける、秘匿積和演算プログラム238の加算プロセス238cに対応する。サーバSのCPU230が、加算プロセス238cを実行することで、開示の技術における第6の乱数(a′)を秘匿加算する処理を行う。
In S274, server S i performs a calculation using the calculation result that is returned in S272, to restore the secret information. For the first case

Is calculated. In the case of the second case

Is calculated. Incidentally, S264 is in the server S i, corresponds to the addition process 238c of confidential product-sum operation program 238. CPU230 server S i is the addition process 238c by the execution, it performs a sixth process of concealing adding a random number (a ') of the disclosed technique.

S276で、サーバSは、S274の計算結果を用いて、新たなα(a+a)を設定する。また、τ2,iを新たなα2,iに設定する。 In S276, the server S i, using the calculation result of S274, it sets a new α 2 (a + a 1) . Also, τ 2, i is set to a new α 2, i .

秘匿積和演算を繰り返す場合には、上記図9の秘匿積和演算の処理シーケンスのS240に戻る。   When the confidential product-sum operation is repeated, the process returns to S240 of the processing sequence of the confidential product-sum operation in FIG.

以上が補正処理の処理シーケンスの説明である。以下に補正処理に関する補足を述べる。   The above is the description of the processing sequence of the correction processing. The supplementary information on the correction processing will be described below.

上記において、c=c=c+c=0としてcに関する処理を省略すれば秘匿乗算になり、α(a+a)=αa=1としてaに関する処理を省略すれば秘匿加算になる。また、abとcの間の+を−にすれば秘匿減算となる。また、α(a+a)からαを秘匿減算すればαaが出力されるので、上記秘匿積和演算の処理シーケンスのS250におけるα(a+a)による乗算をαaによる除算にし、−β(b+b)を−βにすれば

の除算が実現できる。この場合、



に変化させる。
In the above, if c = c 1 = c + c 1 = 0 and the processing on c is omitted, confidential multiplication is performed. If the processing on a is omitted as α 2 (a + a 1 ) = α 0 a = 1, confidential addition is performed. If + between ab and c is set to-, secret subtraction is performed. Also, alpha 2 because (a + a 1) if confidential subtracted alpha 1 a 1 from alpha 0 a is outputted, the confidential product sum calculation processing alpha in S250 of the sequence 2 (a + a 1) a multiplication by alpha 0 a , And -β 2 (b + b 1 ) is changed to -β 1 b 1

Can be realized. in this case,

Is

To change.

上記において、δ{(ab+c)+(c−a)}=0の場合、ab+c=(a−c)となるが、a,b,cが秘匿されている。そのため、秘密情報ab+cは漏えいせず、(a−c)=ab+cとして、a′を秘密情報ab+cに加える新たな乱数とする。そして、新たなα(a+a)及びαを計算することによって、演算を継続可能とする。 In the above, when δ 2 {(ab + c) + (c 1 −a 1 b 1 )} = 0, ab + c = (a 1 b 1 −c 1 ), but a 1 , b 1 , and c 1 are kept secret. Have been. Therefore, the secret information ab + c is not leaked, and (a 1 b 1 −c 1 ) = ab + c, and a ′ 1 is a new random number added to the secret information ab + c. Then, the calculation can be continued by calculating new α 2 (a + a 1 ) and α 1 a 1 .

δ{(ab+c)+(c−a)},δ(c−a)の2つが0の場合、ab+c=0が漏洩する。上記の補正処理の処理シーケンスの第1のケース及び第2のケースでは、簡単のためδ{(ab+c)+(c−a)},δ(c−a)を同時に復元するように読めるが、まずδ(c−a)を復元して0である場合、以下を計算してδ(ab+c+a′)を復元する。 When two of δ 2 {(ab + c) + (c 1 −a 1 b 1 )} and δ 1 (c 1 −a 1 b 1 ) are 0, ab + c = 0 leaks. In the first case and the second case of the processing sequence of the above correction processing, δ 2 {(ab + c) + (c 1 −a 1 b 1 )}, δ 1 (c 1 −a 1 b 1 ) for simplicity. ) Can be read at the same time, but when δ 1 (c 1 −a 1 b 1 ) is restored and it is 0, the following is calculated to restore δ 2 (ab + c + a ′ 1 ).

このとき、δ(ab+c+a′)が0であれば、補正処理の処理シーケンスにおけるS274の第1のケースの場合の計算を行えばよい。これによって、δ{(ab+c)+(c−a)},δ(c−a)の2つが0であったとしてもab+c=0は漏洩しない。 At this time, if δ 2 (ab + c + a ′ 1 ) is 0, the calculation in the case of the first case of S274 in the processing sequence of the correction processing may be performed. Thereby, even if two of δ 2 {(ab + c) + (c 1 −a 1 b 1 )} and δ 1 (c 1 −a 1 b 1 ) are 0, ab + c = 0 does not leak.

また、後述の第5実施形態の秘匿積和演算に示すようにδ(c−a),δ{(ab+c)+(c−a)}のどちらかが0であった場合、0となった値を新たな乱数で置き換え、0でない値の方にその乱数を加えてもよい。 Further, as shown in a secret product-sum operation of a fifth embodiment described later, one of δ 1 (c 1 −a 1 b 1 ) and δ 2 {(ab + c) + (c 1 −a 1 b 1 )} is If it is 0, the value that has become 0 may be replaced with a new random number, and the random number may be added to the non-zero value.

以上説明したように、本発明の第2実施形態の手法を用いて秘匿積和演算を行うことにより、秘密情報に0を含んでいても、効率よく秘匿演算を繰り返すことができる。   As described above, by performing the confidential product-sum operation using the method of the second embodiment of the present invention, even if the secret information includes 0, the confidential operation can be efficiently repeated.

なお、復元を行う場合、δ{(ab+c)+(c−a)}からδ(c−a)を秘匿減算すればδ(ab+c)が得られ、復元者はδを復元してその値を排除することにより、秘密情報による演算結果(ab+c)が得られる。この処理は復元装置によって実行されるので、復元を含む場合、後述する図11と同様のネットワーク構成となる。 When performing restoration, δ 0 (ab + c) can be obtained by secretly subtracting δ 1 (c 1 −a 1 b 1 ) from δ 2 {(ab + c) + (c 1 −a 1 b 1 )}. The reconstructor restores δ 0 and removes the value, thereby obtaining the operation result (ab + c) based on the secret information. Since this processing is executed by the restoration device, when the restoration is included, the network configuration is the same as that of FIG. 11 described later.

[第3実施形態]
第3実施形態は、上記問題点3に対応する。すなわち秘匿計算の検証を実現する機能である。以下は、簡単のため秘密情報a,b,c及び演算結果に0を含まない場合に検証を行う場合を例に説明する。
[Third embodiment]
The third embodiment corresponds to Problem 3 described above. That is, this is a function for realizing verification of the secret calculation. In the following, for the sake of simplicity, an example will be described in which verification is performed when secret information a, b, c and the calculation result do not include 0.

図11を参照して、本実施形態に係る秘密分散システム310の構成を説明する。図11に示すように、秘密分散システム310は、3台の入力装置312A〜312C、復元装置314、及び複数台のサーバ316〜316n−1を含む。以下、入力装置312A〜312Cについて共通する内容については「入力装置312」、サーバ316〜316n−1について共通する内容については「サーバ316」とし、末尾の識別記号を省略して説明する場合もある。入力装置312、復元装置314、及びサーバ316は、ネットワークNに接続され、互いに通信可能とされる。なお、復元装置314が、第1排除部と、第1判定部とを含む検証復元装置の一例である。 The configuration of the secret sharing system 310 according to the present embodiment will be described with reference to FIG. As shown in FIG. 11, the secret sharing system 310 includes three input devices 312A~312C, restoration device 314, and a plurality of servers 316 0 ~316 n-1. Hereinafter, the content common to the input devices 312A to 312C is referred to as “input device 312”, and the content common to the servers 316 0 to 316 n−1 is referred to as “server 316”. There is also. The input device 312, the restoration device 314, and the server 316 are connected to the network N and can communicate with each other. Note that the restoration device 314 is an example of a verification restoration device that includes a first elimination unit and a first determination unit.

入力装置312は、秘密情報の入力者によって操作される装置である。入力装置312は、乱数を作用された所定の値を生成して、サーバ316に分散する。   The input device 312 is a device operated by a person who inputs secret information. The input device 312 generates a predetermined value on which a random number is applied, and distributes the generated value to the server 316.

復元装置314は、秘密情報の復元者によって操作される装置である。復元装置314は、入力装置312、及びサーバ316によって公開されている値を収集して、秘匿積和演算の結果に不正がないかを検証する。   The restoration device 314 is a device operated by a person who restores secret information. The restoration device 314 collects the values disclosed by the input device 312 and the server 316, and verifies whether the result of the confidential product-sum operation is correct.

サーバ316は、秘匿積和演算に係る計算などをする役割を持つ。   The server 316 has a role of performing calculations related to the confidential product-sum operation.

次に、図12を参照して、本実施形態に係る復元装置314のハードウェア構成を説明する。なお、入力装置312、及びサーバ316については第2実施形態と同様の装置構成をとることができるため詳細な説明を省略する。   Next, a hardware configuration of the restoration apparatus 314 according to the present embodiment will be described with reference to FIG. Note that the input device 312 and the server 316 can have the same device configuration as in the second embodiment, and thus detailed description is omitted.

図12に示すように、復元装置314は、CPU340、一時記憶領域としてのメモリ341、不揮発性の記憶部342を含む。また、復元装置314は、表示装置343、入力I/F344、及びネットワークNに接続されるネットワークI/F345を含む。CPU340、メモリ341、記憶部342、表示装置343、入力I/F344、及びネットワークI/F345は、バス346に接続される。   As shown in FIG. 12, the restoration device 314 includes a CPU 340, a memory 341 as a temporary storage area, and a nonvolatile storage unit 342. Further, the restoration device 314 includes a display device 343, an input I / F 344, and a network I / F 345 connected to the network N. The CPU 340, the memory 341, the storage unit 342, the display device 343, the input I / F 344, and the network I / F 345 are connected to the bus 346.

記憶部342は、HDD、SSD、及びフラッシュメモリ等によって実現される。記憶媒体としての記憶部342には、復号プログラム348が記憶される。復号プログラム348は、第1排除プロセス348aと、第1判定プロセス348bと、復元プロセス348cとを含む。CPU340は、記憶部342から復号プログラム348を読み出してからメモリ341に展開し、展開した復号プログラム348を実行する。CPU340が第1生成プログラム348の第1排除プロセス348aを実行することで、開示の技術の第1排除部として動作する。CPU340が第1生成プログラム348の第1判定プロセス348bを実行することで、開示の技術の第1判定部として動作する。CPU340が第1生成プログラム348の復元プロセス348cを実行することで、開示の技術の復元部として動作する。   The storage unit 342 is realized by an HDD, an SSD, a flash memory, and the like. The storage unit 342 as a storage medium stores a decryption program 348. The decryption program 348 includes a first exclusion process 348a, a first determination process 348b, and a restoration process 348c. The CPU 340 reads out the decryption program 348 from the storage unit 342, expands it in the memory 341, and executes the expanded decryption program 348. When the CPU 340 executes the first exclusion process 348a of the first generation program 348, it operates as the first exclusion unit of the disclosed technology. When the CPU 340 executes the first determination process 348b of the first generation program 348, it operates as the first determination unit of the disclosed technology. When the CPU 340 executes the restoring process 348c of the first generation program 348, it operates as a restoring unit according to the disclosed technology.

次に、図13〜15を参照して、本実施形態に係る秘密分散システム310の作用を説明する。   Next, the operation of the secret sharing system 310 according to the present embodiment will be described with reference to FIGS.

<分散3>
まず、秘密情報を各サーバに分散する処理について説明する。図13は、秘密分散システム310における分散の処理シーケンスを説明したものである。分散の処理シーケンスでは、入力装置312A〜Cが持つ秘密情報をサーバ316に分散する。以下において、サーバ316は、分散の処理シーケンスの各処理に応じてn台の全てのサーバである全サーバS、及びサーバSのいずれかが対象であるものとして説明する。
<Dispersion 3>
First, a process of distributing secret information to each server will be described. FIG. 13 illustrates a sharing processing sequence in the secret sharing system 310. In the distribution processing sequence, the secret information held by the input devices 312A to 312C is distributed to the server 316. In the following, the server 316, all servers S which is on all servers of n units, and one of the servers S i is described as a target in response to the processing of distributed processing sequence.

S310で、入力装置312Aは、乱数αi,0,…,αi,k−1(i=0,2)を生成する。 In S310, the input device 312A generates random numbers α i, 0 ,..., Α i, k−1 (i = 0,2).

S312で、入力装置312Aは、乱数α=Πj=0 k−1αi,jを計算する。 In S312, the input device 312A calculates a random number α i = Π j = 0k −1 α i, j .

S314で、入力装置312Aは、乱数aを生成し、秘密情報aに対して以下を計算して計算結果を公開する。また、入力装置312Aは、aに対するハッシュ値ha1を公開する。 In S314, the input device 312A generates a random number a 1, exposes the calculation result by calculating the following for secret information a. The input device 312A exposes the hash value h a1 for a 1.

S316で、入力装置312Aは、α0,j2,jをサーバSに送信する。 In S316, the input device 312A transmits alpha 0, j, the alpha 2, j to the server S i.

S318で、入力装置312Bは、乱数βi,0,…,βi,k−1(i=0,2)を生成する。 In S318, the input device 312B generates random numbers β i, 0 ,..., Β i, k−1 (i = 0,2).

S320で、入力装置312Bは、乱数β=Πj=0 k−1βi,jを計算する。 In S320, the input device 312B calculates a random number β i = Π j = 0k −1 β i, j .

S322で、入力装置312Bは、乱数bを生成し、秘密情報bに対して以下を計算して計算結果を公開する。また、入力装置312Bは、bに対するハッシュ値hb1を公開する。 In S322, the input device 312B generates a random number b 1, exposes the calculation result by calculating the following for secret information b. The input device 312B exposes a hash value h b1 for b 1.

S324で、入力装置312Bは、β0,j2,jをサーバSに送信する。 In S324, the input device 312B transmits beta 0, j, a beta 2, j to the server S i.

S326で、入力装置312Cは、乱数γi,0,…,γi,k−1(i=0,2)を生成する。 In S326, the input device 312C generates random numbers γ i, 0 ,..., Γ i, k-1 (i = 0,2).

S328で、入力装置312Cは、乱数γ=Πj=0 k−1γi,jを計算する。 In S328, the input device 312C calculates a random number γ i = Π j = 0 k-1 γ i, j .

S330で、入力装置312Cは、乱数cを生成し、秘密情報cに対して以下を計算して計算結果を公開する。また、入力装置312Cは、cに対するハッシュ値hc1を公開する。 In S330, the input device 312C generates a random number c 1, exposes the calculation result by calculating the following for secret c. In addition, the input device 312C discloses the hash value h c1 for c 1 .

S332で、入力装置312Cは、γ0,j2,jをサーバSに送信する。 In S332, the input device 312C transmits gamma 0, j, a gamma 2, j to the server S i.

以上の分散の処理シーケンスにより、サーバSは、以下を持つことになる。 By the above-described distributed processing sequence, the server Si has the following.

なお、入力装置312A、入力装置312B、及び入力装置312Cは、a,b,cを秘密分散してもよい。 The input devices 312A, 312B, and 312C may share a 1 , b 1 , and c 1 in secret.

<秘匿積和演算3>
次に秘匿積和演算する処理について説明する。
<Secret product-sum operation 3>
Next, a process of performing a secret product-sum operation will be described.

秘匿積和演算の前提として、分散処理は正しく行われているものとする。ここでは変換用乱数組として([μh,i)(h=1,…,必要個数)も持つものとする。 As a premise of the confidential product-sum operation, it is assumed that the distributed processing is correctly performed. Here, it is assumed that the conversion random number set also has ([μ h ] i , μ h, i ) (h = 1,..., Required number).

以下において、c=c=c+c=0としてcに関する処理を省略すれば秘匿乗算になり、α(a+a)=αa=1としてaに関する処理を省略すれば秘匿加算になる。また、abとcの間の+を−にすれば秘匿減算となる。また以下の秘匿積和演算において、計算結果を新たなα(a+a),αなどとするが、β(b+b)またはγ(c+c)としてもよい。α2,i,α1,iについても同様である。 In the following, if c = c 1 = c + c 1 = 0 and the processing on c is omitted, confidential multiplication will be performed, and if the processing on a is omitted as α 2 (a + a 1 ) = α 0 a = 1, confidential addition will be performed. If + between ab and c is set to-, secret subtraction is performed. In the following concealed product-sum operation, the calculation result is assumed to be new α 2 (a + a 1 ), α 1 a 1, etc., but β 1 b 1 , β 2 (b + b 1 ) or γ 1 c 1 , γ 2 ( c + c 1 ). The same applies to α 2, i and α 1, i .

図14は、秘密分散システム310における、秘匿積和演算の処理シーケンスを説明したものである。図14では、説明の便宜のため、サーバ316のうち、サーバSまたは全サーバSおいて秘匿積和演算の処理シーケンスが行われるものとして説明する。 FIG. 14 illustrates a processing sequence of the confidential product-sum operation in the secret sharing system 310. In Figure 14, for convenience of explanation, among the server 316 will be described assuming that the server S i or processing sequences of all servers S Oite confidential product-sum operation is performed.

S340で、サーバSは、乱数δ0,i2,iを生成する。 In S340, the server S i is a random number [delta] 0, i, to produce a [delta] 2, i.

S342で、サーバSは、生成した乱数δ0,i2,iを用いて、以下を計算して計算結果を公開する。ただし、0となる値が公開された場合、公開したサーバは不正処理があるとして処理を中断する。 In S342, the server S i is generated random number [delta] 0, i, with [delta] 2, i, to publish a calculation result by calculating the following. However, if a value of 0 is disclosed, the disclosed server suspends the process because there is an unauthorized process.

S344で、全サーバは、以下を計算する。   In S344, all servers calculate the following.

S346で、サーバSは、以下を計算して復元し、復元したδ{(ab+c)+(c−a)},δ(ab+c)を公開する。 In S346, the server S i is restored by calculating the following, restored δ 2 {(ab + c) + (c 1 -a 1 b 1)}, publish δ 0 (ab + c).

S348は、演算を継続する場合の処理である。S348で、サーバSは、δ(ab+c),δ{(ab+c)+(c−a)を新たなαa,α(a+a)に設定し、新たなαa,α(a+a)に合わせて、δ0,i2,iを新たなα0,i2,iに設定してS340に戻る。 S348 is a process when the operation is continued. In S348, the server S i is, δ 0 (ab + c) , δ 2 {(ab + c) + (c 1 -a 1 b 1) a new alpha 0 a, is set to α 2 (a + a 1) , the new alpha According to 0 a, α 2 (a + a 1 ), δ 0, i , δ 2, i is set to new α 0, i , α 2, i and the process returns to S340.

<検証・復元3>
次に、検証処理について説明する。図15は、秘密分散システム310における検証の処理シーケンスを説明したものである。検証の処理シーケンスにおいて、入力装置312A、入力装置312B、及び入力装置312Cは、それぞれa,b,cを公開しているものとする。
<Verification and restoration 3>
Next, the verification process will be described. FIG. 15 illustrates a verification processing sequence in the secret sharing system 310. In the processing sequence of the verification, the input device 312A, an input device 312B, and the input device 312C is assumed to have published a 1, b 1, c 1, respectively.

S360で、復元装置314は、サーバSからδ0,i2,iを収集する。 In S360, the restoration device 314 collects δ 0, i , δ 2, i from the server S i .

S362で、復元装置314は、収集したδ0,i2,iの積δを計算し、積δを用いて以下を計算して公開する。 In S362, restoration device 314, the collected δ 0, i, δ 2, i of the product [delta] 0, to calculate the [delta] 2, the product [delta] 0, publish to calculate the following with reference to [delta] 2.

なお、S362は、復元装置314における、復号プログラム348の第1排除プロセス338aに対応する。復元装置314のCPU340が、第1排除プロセス348aを実行することで、開示の技術における第1排除部の処理を行う。上記の計算が、秘密情報同士の演算結果に対して乱数を作用させて生成した第3の値δ{(ab+c)+(c−a)}とδ(ab+c)を用いて秘密情報(ab+c)と第4の乱数δに相当する値を排除し、判定を行うための第1の乱数同士の演算結果を得ることに対応する。 Note that S362 corresponds to the first exclusion process 338a of the decryption program 348 in the restoration device 314. The CPU 340 of the restoration device 314 executes the first exclusion process 348a, thereby performing the processing of the first exclusion unit in the disclosed technology. The above calculation uses a third value δ 2 {(ab + c) + (c 1 −a 1 b 1 )} and δ 0 (ab + c) generated by applying a random number to the operation result of the secret information. In this case, the secret information (ab + c) and the values corresponding to the fourth random numbers δ 2 and δ 0 are excluded to obtain the calculation result of the first random numbers for making the determination.

S364で、復元装置314は、入力装置312A、入力装置312B、及び入力装置312Cが公開しているa,b,c及びそのハッシュ値を収集する。 In S364, the restoration device 314 collects a 1 , b 1 , c 1 published by the input devices 312A, 312B, and 312C and their hash values.

S366で、復元装置314は、公開されているa,b,cと、そのハッシュ値が一致するかを検証し、ハッシュ値が正しければS368へ移行し、正しくなければS374へ移行して不正検出とする。 In S366, restoring apparatus 314 includes a a 1, b 1, c 1, which is published to verify the hash values match, the process proceeds to S368 if correct hash value, the process proceeds to S374 to be right To detect fraud.

S368で、復元装置314は、公開されているa,b,cを用いてc−aを計算する。 In S368, the restoration device 314 calculates c 1 −a 1 b 1 using the published a 1 , b 1 , and c 1 .

S370で、復元装置314は、公開されているa,b,cから計算されたc−aと、S362で計算されたc−aが等しいか検証し、計算結果が正しければS372へ移行し、正しくなければS374へ移行して不正検出とする。 In S370, restoring apparatus 314 includes a c 1 -a 1 b 1 calculated from a 1, b 1, c 1, which is published to verify whether c 1 -a 1 b 1 calculated in S362 is equal to If the calculation result is correct, the flow shifts to S372, and if not correct, the flow shifts to S374 to detect fraud.

なお、S370は、復元装置314における、復号プログラム348の第1判定プロセス348bに対応する。復元装置314のCPU340が、第1判定プロセス348bを実行することで、開示の技術における第1判定部の処理を行う。   Note that S370 corresponds to the first determination process 348b of the decryption program 348 in the restoration device 314. The CPU 340 of the restoration device 314 executes the first determination process 348b to perform the processing of the first determination unit in the disclosed technology.

S372で、復元装置314は、検証結果が正しい場合、S362で用いられたδ(ab+c)/δをab+cと判定する。 In S372, when the verification result is correct, the restoration device 314 determines that δ 0 (ab + c) / δ 0 used in S362 is ab + c.

S374で、検証結果が不正検出であるものとする。   In S374, it is assumed that the verification result is fraud detection.

以上が、検証の処理シーケンスである。なお、a,b,cが秘密分散されている場合、S366に対応する処理として、各サーバでa,b,cの分散値を公開して、復元装置314でa,b,cを復元してもよい。 The above is the verification processing sequence. If a 1 , b 1 , c 1 is secretly shared, as a process corresponding to S 366, the sharing values of a 1 , b 1 , c 1 are disclosed by each server, and the restoration device 314 a 1 , b 1 , c 1 may be restored.

また、演算が繰り返されている場合、S362において乱数による最終的な演算結果を復元し、S364で全乱数を収集して、その乱数を用いて同様の演算を構成し、S362の結果とS368の結果が一致するかを検証する。   If the calculation is repeated, the final calculation result based on the random number is restored in S362, all random numbers are collected in S364, and the same calculation is configured using the random number. The result of S362 and the result of S368 Verify that the results match.

攻撃者が入力値や乱数を知らない場合、(c−a)が一致するように操作できないことが言える。よって、その計算に使用したδ(ab+c)/δは正しいといえる。 If the attacker does not know the input value or the random number, it can be said that the operation cannot be performed so that (c 1 −a 1 b 1 ) matches. Therefore, it can be said that δ 0 (ab + c) / δ 0 used in the calculation is correct.

また、検証処理は演算の最後でなく、任意の積和演算単位で検証することも可能である。   In addition, the verification processing can be performed not at the end of the operation but in an arbitrary product-sum operation unit.

また、本実施形態における検証の処理シーケンスは復元装置314が行うものとしたが、サーバSがδ0,i2,iを公開すればどの装置でも公開値から検証可能である。この場合、復元者は不正ができないこととなる。 In the present embodiment, the verification processing sequence is performed by the restoration device 314. However, as long as the server S i discloses δ 0, i , δ 2, i , any device can perform verification from the public value. In this case, the person who restores cannot cheat.

ただし、サーバSがδ0,i2,iを公開する場合、例えば入力者Aが攻撃者で、分散処理においてハッシュ値を公開したaと異なるa′を用いてa+a′を入力し、aを公開しているとすれば、S370における検証結果は不正となるが、S362においてδ(ab+c)/δは復元されているので、攻撃者のみ演算結果が正しいことを知ることができる。よって、S360、S362を以下S360′〜S364′のように変形し、S370の結果が正しい場合に以下S371′を追加して処理するようにすれば、δ(ab+c)は秘匿されたままa+cが計算されるので、攻撃者のみ演算結果を知ることを防止できる。また、下記S360′〜S364′における秘匿計算を秘匿積和演算の一環と考えれば、下記S360′〜S364′における処理も検証されるため不正を行えば検証される。また、S374を復元装置314ではなく、サーバSがδ0,i,[μ,[μを公開すれば、公開の処理とできる。この対策は以降の実施形態においても適用できる。 However, if the server S i to publish δ 0, i, δ 2, i, for example by inputting person A attacker, 'using a 1 a + a' a 1 differs a to that published the hash value in a distributed processing 1 enter a, if have published a 1, although the verification result is invalid in S370, since δ 0 (ab + c) / δ 0 are restored in S362, only the attacker that calculation result is correct You can know. Therefore, if S360 and S362 are modified as follows from S360 'to S364', and if the result of S370 is correct, the following S371 'is added and processed, δ 0 (ab + c) is kept secret and a Since 1 b 1 + c 1 is calculated, it is possible to prevent only an attacker from knowing the operation result. Further, if the confidential calculation in S360 'to S364' described below is considered as a part of the confidential product-sum operation, the processing in S360 'to S364' described below is also verified. Further, instead of the reconstruction apparatus 314 S374, the server S i is δ 0, i, [μ 7 ] i, if expose [mu 8] i, can be a public process. This measure can be applied to the following embodiments.

S360′では、サーバSは、(1/δ0,iμ7,i),(1/δ2,iμ8,i)を復元装置314に送信する。 In S360 ', the server S i transmits (1 / δ 0, i μ 7, i), the restoration device 314 (1 / δ 2, i μ 8, i).

S362′では、復元装置314は、受信したその積(1/δμ),(1/δμ)を公開して、各サーバが計算した以下を収集する。 In S362 ', restoration device 314, received the product (1 / δ 0 μ 7) , exposes the (1 / δ 2 μ 8) , collects below the server has calculated.

S364′では、復元装置314は、収集した上記の計算結果を復元してその結果を公開する。   In S364 ', the restoration device 314 restores the collected calculation result and publishes the result.

S371′では、復元装置314は、S370の結果が正しいとき、δ0,i,[μ,[μを収集してS364′の結果を検算し、計算したδ(ab+c)/δをab+cとする。検算結果が一致しない場合、[a+cが一致しないサーバを不正とする。 In S371 ′, when the result of S370 is correct, the restoration apparatus 314 collects δ 0, i , [μ 7 ] i , [μ 8 ] i , checks the result of S364 ′, and calculates the calculated δ 0 (ab + c ) / Δ 0 is ab + c. If the check results do not match, the server whose [a 1 b 1 + c 1 ] i does not match is regarded as invalid.

ただし、入力者が攻撃者の場合、以下のようにすれば不正検出されずに、偽の答えを復元者に得させることができる。例えば、ユーザCはc,cを知っており、a,bと独立であるので、cに関連する部分のみ正しくない処理をしてもcと一致させることが可能である。この対策は次の実施形態で示される。 However, in the case where the input person is an attacker, a fake answer can be obtained by the recoverer without performing fraud detection as follows. For example, since the user C knows c and c 1 and is independent of a and b, it is possible to match c 1 even if an incorrect process is performed only on a portion related to c. This measure is shown in the following embodiment.

よって、本実施形態は入力者が不正をしない場合、すなわち攻撃者がk−1台までのサーバまたは入力を知らない外部攻撃者の場合に対して有効である。   Therefore, the present embodiment is effective when the input person does not cheat, that is, when the attacker is an external attacker who does not know up to k-1 servers or inputs.

また、復元装置314は、第1排除部から得られる値から第1の秘密情報同士の演算結果を得る演算結果を得る復元部を含む秘匿演算装置として機能する。復元装置314は、上記、本実施形態の各処理シーケンスを経て、復元プロセス348cの実行によって、S372から得られる値を取得し、第1の秘密情報同士の演算結果(ab+c)を得る。   Further, the restoration device 314 functions as a confidential operation device including a restoration unit that obtains an operation result of obtaining the operation results of the first secret information from the value obtained from the first exclusion unit. The restoration device 314 obtains the value obtained from S372 by executing the restoration process 348c through each processing sequence of the present embodiment, and obtains the operation result (ab + c) between the first secret information.

以上説明したように、本発明の第3実施形態の手法を用いて秘匿積和演算を検証することにより、秘匿積和演算の不正を検出することができる。   As described above, by verifying the confidential product-sum operation using the method according to the third embodiment of the present invention, it is possible to detect illegality of the confidential product-sum operation.

[第4実施形態]
第4実施形態は、第3実施形態では入力を知るユーザの不正は防げなかった点に着目し、本実施形態ではユーザの結託を含む不正を防止することができる手法を示す。
[Fourth embodiment]
The fourth embodiment focuses on the point that in the third embodiment, the injustice of the user who knows the input could not be prevented, and the present embodiment shows a method capable of preventing the injustice including the collusion of the user.

第4実施形態の構成は上記図5の第2実施形態と同様の構成をとることができ、秘密分散システム410において、入力装置212を入力装置412に、サーバ216をサーバ416に置き換えた構成とすればよい。なお、サーバ416が分散装置の一例であり、秘密分散システム410が分散システムの一例である。   The configuration of the fourth embodiment can be the same as that of the second embodiment of FIG. 5 described above. In the secret sharing system 410, the input device 212 is replaced by the input device 412 and the server 216 is replaced by the server 416. do it. The server 416 is an example of a sharing device, and the secret sharing system 410 is an example of a sharing system.

秘密分散システム410において、不正の防止のためには、a,b,cを入力装置412だけで生成しないようにする。これによって、例えば、入力装置412Cを操作するユーザCはcを知らないため、Cに関する部分を不正にcに一致させられなくなる。また、本実施の形態は第3の実施の形態と同様に秘密情報に0は含まないが、第1の実施の形態に示す変換用乱数組([ε,εh,i)(h=1,…,12)が事前に配布されているものとする。 In secret sharing system 410, in order to prevent fraud, so as not to generate only input device 412 to a 1, b 1, c 1 . Thus, for example, user C operating the input device 412C is does not know the c 1, not be matched to illegally c 1 a part related to C. Also, in the present embodiment, the secret information does not include 0 as in the third embodiment, but the conversion random number set ([ε h ] i , ε h, i ) ( h = 1,..., 12) are distributed in advance.

次に、図16を参照して、本実施形態に係るサーバ416のハードウェア構成を説明する。なお、入力装置412については第2実施形態と同様のハードウェア構成をとることができるため、詳細な説明を省略する。   Next, a hardware configuration of the server 416 according to the present embodiment will be described with reference to FIG. Note that the input device 412 can have the same hardware configuration as that of the second embodiment, and a detailed description thereof will be omitted.

図16に示すように、サーバ416は、CPU430、一時記憶領域としてのメモリ431、不揮発性の記憶部432を含む。また、サーバ416は、表示装置433、入力I/F434、及びネットワークNに接続されるネットワークI/F435を含む。CPU430、メモリ431、記憶部432、表示装置433、入力I/F434、及びネットワークI/F435は、バス436に接続される。   As shown in FIG. 16, the server 416 includes a CPU 430, a memory 431 as a temporary storage area, and a nonvolatile storage unit 432. The server 416 includes a display device 433, an input I / F 434, and a network I / F 435 connected to the network N. The CPU 430, the memory 431, the storage unit 432, the display device 433, the input I / F 434, and the network I / F 435 are connected to the bus 436.

記憶部432は、HDD、SSD、及びフラッシュメモリ等によって実現される。記憶媒体としての記憶部432には、秘匿積和演算プログラム238、及び第4生成プログラム440が記憶される。CPU430は、記憶部432から第4生成プログラムを読み出してからメモリ431に展開し、展開した第4生成プログラム440を実行する。CPU430が第4生成プログラム440を実行することで、開示の技術の第4生成部として動作する。   The storage unit 432 is realized by an HDD, an SSD, a flash memory, and the like. The storage unit 432 as a storage medium stores a secret product-sum operation program 238 and a fourth generation program 440. The CPU 430 reads the fourth generation program from the storage unit 432, expands it in the memory 431, and executes the expanded fourth generation program 440. When the CPU 430 executes the fourth generation program 440, it operates as a fourth generation unit according to the disclosed technology.

次に、図17を参照して、本実施形態に係る秘密分散システム410の作用を説明する。第4実施形態は分散の処理シーケンスが、第3実施形態と異なるため、分散の処理シーケンスについてのみ説明する。図17は、秘密分散システム410における分散の処理シーケンスを説明したものである。   Next, the operation of the secret sharing system 410 according to the present embodiment will be described with reference to FIG. In the fourth embodiment, the distribution processing sequence is different from that of the third embodiment. Therefore, only the distribution processing sequence will be described. FIG. 17 illustrates a sharing processing sequence in the secret sharing system 410.

<分散4>
S410で、入力装置412Aは、k個の乱数α0,0,…,α0,k−1生成し、乱数α=Πj=0 k−1α0,jを計算する。
<Dispersion 4>
In S410, the input device 412A generates k random numbers α 0,0 ,..., Α 0, k−1 and calculates the random numbers α 0 = Π j = 0k −1 α 0, j .

S412で、入力装置412Aは、k個の乱数の組(α1a,0,…,α1a,k−1),(β1a,0,…,β1a,k−1),(γ1a,0,…,γ1a,k−1)を生成し、乱数α1a=Πj=0 k−1α1a,j1a=Πj=0 k−1β1b,j1a=Πj=0 k−1γ1a,jを計算する。 In S412, the input device 412A determines that the set of k random numbers (α 1a, 0 ,..., Α 1a, k−1 ), (β 1a, 0 ,..., Β 1a, k−1 ), (γ 1a, 0 ,..., Γ 1a, k−1 ), and a random number α 1a = Π j = 0 k−1 α 1a, j , β 1a = Π j = 0 k−1 β 1b, j , γ 1a = Π Calculate j = 0 k-1 γ 1a, j .

S414で、入力装置412Aは、秘密情報aに対してαa=α×aを計算して公開する。 In S414, the input device 412A calculates α 0 a = α 0 × a for the secret information a and makes it public.

S416で、入力装置412Aは、(α1a,i1a,i1a,i0,i)をサーバSに送信する。 In S416, the input device 412A transmits (α 1a, i, β 1a , i, γ 1a, i, α 0, i) to the server S i.

S418で、入力装置412Aは、乱数a1a,b1a,c1aを生成する。 In S418, the input device 412A, the random number a 1a, b 1a, generates a c 1a.

S420で、入力装置412Aは、S418で生成した乱数を用いて、以下を計算してα1a1a1a1a1a1aを公開する。また、入力装置412Aは、乱数a1a,b1a,c1aを保持し、そのハッシュ値ha1,a,hb1,a,hc1,aを公開する。 In S420, the input device 412A, using the random number generated in S418, to calculate the following α 1a a 1a, β 1a b 1a, publish gamma 1a c 1a. Further, the input device 412A holds the random numbers a 1a , b 1a , c 1a and discloses the hash values ha 1, a , h b1, a , h c1, a .

S422で、入力装置412Bは、k個の乱数β0,0,…,β0,k−1を生成し、乱数β=Πj=0 k−1β0,jを計算する。 In S422, the input device 412B generates k random numbers β 0,0 ,..., Β 0, k−1 and calculates the random numbers β 0 = Π j = 0k −1 β 0, j .

S424で、入力装置412Bは、k個の乱数の組(α1b,0,…,α1b,k−1),(β1b,0,…,β1b,k−1),(γ1b,0,…,γ1b,k−1)を生成し、乱数α1b=Πj=0 k−1α1b,j1b=Πj=0 k−1β1b,j1b=Πj=0 k−1γ1b,jを計算する。 In S424, the input device 412B sets the set of k random numbers (α 1b, 0 ,..., Α 1b, k−1 ), (β 1b, 0 ,..., Β 1b, k−1 ), (γ 1b, 0 ,..., Γ 1b, k-1 ) and a random number α 1b = Π j = 0 k-1 α 1b, j , β 1b = Π j = 0 k-1 β 1b, j , γ 1b = Π j = 0 k−1 γ 1b, j is calculated.

S426で、入力装置412Bは、秘密情報bに対してβb=β×bを計算して公開する。 In S426, the input device 412B calculates β 0 b = β 0 × b for the secret information b and makes it public.

S428で、入力装置412Bは、(α1b,i1b,i1b,i0,i)をサーバSに送信する。 In S428, the input device 412B transmits (α 1b, i, β 1b , i, γ 1b, i, β 0, i) to the server S i.

S430で、入力装置412Bは、ユーザBは乱数a1b,b1b,c1bを生成する。 In S430, the input device 412B generates random numbers a 1b , b 1b , and c 1b for the user B.

S432で、入力装置412Bは、S430で生成した乱数を用いて、以下を計算してα1b1b1b1b1b1bを公開する。また、ユーザBは乱数a1b,b1b,c1bを保持し、そのハッシュ値ha1,b,hb1,b,hc1,bを公開する。 In S432, the input device 412B uses the random numbers generated in S430 to calculate the following and publish α 1ba a 1b , β 1b b 1b , and γ 1bc 1b . Further, the user B holds the random numbers a 1b , b 1b , and c 1b , and discloses the hash values ha 1, b , h b1, b , and hc1, b .

S434で、入力装置412Cは、k個の乱数γ0,0,…,γ0,k−1を生成し、乱数γ=Πj=0 k−1γ0,jを計算する。 In S434, the input device 412C generates k random numbers γ 0,0 ,..., Γ 0, k−1 and calculates the random numbers γ 0 = Π j = 0k −1 γ 0, j .

S436で、入力装置412Cは、k個の乱数の組(α1c,0,…,α1c,k−1),(β1c,0,…,β1c,k−1),(γ1c,0,…,γ1c,k−1)を生成し、乱数α1c=Πj=0 k−1α1c,j1c=Πj=0 k−12β1c,j1c=Πj=0 k−1γ1c,jを計算する。 In S436, the input device 412C determines the set of k random numbers (α 1c, 0 ,..., Α 1c, k−1 ), (β 1c, 0 ,..., Β 1c, k−1 ), (γ 1c, 0 ,..., Γ 1c, k−1 ), and a random number α 1c = Π j = 0 k−1 α 1c, j , β 1c = Π j = 0 k-12 β 1c, j , γ 1c = Π Calculate j = 0 k-1 γ 1c, j .

S438で、入力装置412Cは、ユーザCは秘密情報cに対してγc=γ×cを計算して公開する。 In S438, the input device 412C calculates γ 0 c = γ 0 × c for the secret information c for the user C and publishes it.

S440で、入力装置412Cは、(α1c,i1c,i1c,i0,i)をサーバSに送信する。 In S440, the input device 412C transmits (α 1c, i, β 1c , i, γ 1c, i, γ 0, i) to the server S i.

S442で、入力装置412Cは、乱数a1c,b1c,c1cを生成する。 In S442, the input device 412C generates random numbers a 1c , b 1c , and c 1c .

S444で、入力装置412Cは、S442で生成した乱数を用いて、以下を計算してα1c1c1c1c1c1c公開する。また、ユーザCは乱数a1c,b1c,c1cを保持し、そのハッシュ値ha1,c,hb1,c,hc1,cを公開する。 In S444, the input device 412C calculates the following using the random numbers generated in S442, and publishes α 1c a 1c , β 1c b 1c , and γ 1c c 1c . Further, the user C holds the random numbers a 1c , b 1c , c 1c and publishes the hash values ha 1, c , h b1, c , h c1, c .

以上が入力装置412A〜Cでの処理である。以下からはサーバSでの処理である。 The above is the processing in the input devices 412A to 412C. From the following is a process of the server S i.

S446で、サーバSは、乱数α1,i1,i1,iを生成する。 In S446, the server S i is the random number α 1, i, β 1, i, to generate the gamma 1, i.

S448で、サーバSは、S446で生成した乱数を用いて、以下を計算し、計算結果を公開する。ただし、0となる値が公開された場合、公開したサーバは不正処理があるとして処理を中断する。 In S448, the server S i, using the random number generated in S446, to calculate the following, to publish the calculation result. However, if a value of 0 is disclosed, the disclosed server suspends the process because there is an unauthorized process.



S450で、サーバSは、iに関する乗算により、以下を計算する。 In S450, the server S i is the multiplication relates i, compute the following.

S452で、サーバSは、変換用乱数組[ε〜[εを用いて以下を計算し、計算結果を公開する。 In S452, the server S i calculates the following with reference to conversion random sets [ε 1] i ~ [ε 9] i, exposes the calculation results.

なお、S450は、サーバSにおける、第4生成プログラム440に対応する。サーバSのCPU430が、第4生成プログラム440を実行することで、開示の技術における第4生成部の処理を行う。例えば計算の過程で、乱数aを、a1a,a1b,a1cを用いて生成する。a1a,a1b,a1cが、第1の秘密情報の生成者以外が生成した乱数の一例である。 Incidentally, S450 is in the server S i, corresponding to the fourth generation program 440. CPU430 server S i is, by executing the fourth generation program 440 performs the processing of the fourth generation unit in the technology disclosed herein. For example, in the calculation of the process, a random number a 1, generated using a 1a, a 1b, a 1c . a 1a , a 1b , and a 1c are examples of random numbers generated by persons other than the creator of the first secret information.

S454で、サーバSは、αを復元する。 In S454, the server S i is, α 1 a 1, β 1 b 1, to restore the gamma 1 c 1.

S456で、サーバSは、乱数α2,i2,i2,iを生成する。 In S456, the server S i is the random number α 2, i, β 2, i, to generate the gamma 2, i.

S458で、サーバSは、S456で生成した乱数を用いて、以下を計算し、計算結果を公開する。ただし、0となる値が公開された場合、公開したサーバは不正処理があるとして処理を中断する。 In S458, the server S i, using the random number generated in S456, to calculate the following, to publish the calculation result. However, if a value of 0 is disclosed, the disclosed server suspends the process because there is an unauthorized process.

S460で、サーバSは、iに関する乗算により、以下を計算する。 In S460, the server S i is the multiplication relates i, compute the following.

S462で、サーバSは、以下を計算し、計算結果を公開する。 In S462, server S i calculates the following, to publish the calculation result.

S464で、サーバSは、α(a+a),β(b+b),γ(c+c)を復元する。 In S464, the server S i is, α 2 (a + a 1 ), β 2 (b + b 1), to recover the γ 2 (c + c 1) .

以上の分散の処理シーケンスにより、サーバSは、は変換用乱数組の他に以下を持つことになる。なお、入力装置412A、入力装置412B、及び入力装置412Cはそれぞれa1h,b1h,c1h(h=a,b,c)を秘密分散してもよい。 By the above-described distributed processing sequence, the server Si has the following in addition to the conversion random number set. Note that the input device 412A, the input device 412B, and the input device 412C may share a 1h , b 1h , c 1h (h = a, b, c) in secret.

以上が本実施形態の分散の処理シーケンスである。   The above is the distribution processing sequence of the present embodiment.

本実施の形態に対する秘匿積和演算は第3実施形態と同様であり、検証も第3実施形態と基本的には同じである。ただし、a1,a,a1,b,a1,c,b1,a,b1,b,b1,c,c1,a,c1,b,c1,cをハッシュ値で検証し、a,b,cをa=a1,a+a1,b+a1,c,b=b1,a+b1,b+b1,c,c=c1,a+c1,b+c1,cによって計算することだけが異なる。また、演算が繰り返された場合、全てのa1h,b1h,c1h(h=a,b,c)を集めて乱数による演算部分の正当性を検証する。 The secret product-sum operation for this embodiment is the same as that of the third embodiment, and the verification is basically the same as that of the third embodiment. However, a1 , a , a1 , b , a1 , c , b1 , a , b1 , b , b1 , c , c1 , a , c1 , b , c1 , c1, c are represented by hash values. After verification, a 1 , b 1 , and c 1 are converted to a 1 = a 1, a + a 1, b + a 1, c , b 1 = b 1, a + b 1, b + b 1, c , c 1 = c 1, The only difference is that it is calculated by a + c1 , b + c1 , c . Further, when the operation is repeated, all a 1h , b 1h , c 1h (h = a, b, c) are collected, and the validity of the operation part by the random number is verified.

安全性に関しては、入力者が攻撃者ではない場合、すなわち攻撃者がk−1台までのサーバまたは外部攻撃者である場合は第3の実施の形態と同様に安全であることが言える。それに加えて、本実施形態ではa,b,cを入力装置412Aを操作するユーザA、入力装置412Bを操作するユーザB、及び入力装置412Cを操作するユーザCの全員で生成するため、入力者が攻撃者となっても安全であることが以下のように言える。 Regarding security, when the input person is not an attacker, that is, when the attacker is up to k-1 servers or external attackers, it can be said that the security is the same as in the third embodiment. In addition, the user A operates the input device 412A of a 1, b 1, c 1 in the present embodiment, the user B operating the input device 412B, and to generate at all of the user C operating the input device 412C It can be said that it is safe even if the input person becomes an attacker as follows.

例えば、ユーザCが攻撃者である場合、ユーザCはcを知るが、c1を知らない。これはc1はユーザA,B,Cによって作られるためである。よって、ユーザCはCに関する部分を不正に操作しても、c1を知らないため最終結果を0にできない。また、ユーザCはq4−q6を操作できるが、c1を知らないため、他の値を調整できない。これはユーザ2者の結託に関しても言うことができ、(c1−a1b1)′−(c1−a1b1)=0であれば不正が行われていないことが言える。   For example, if user C is an attacker, user C knows c but does not know c1. This is because c1 is created by users A, B, and C. Therefore, even if the user C illegally operates a portion related to C, the final result cannot be set to 0 because the user C does not know c1. Also, the user C can operate q4-q6, but cannot adjust other values because he does not know c1. This can be said for the collusion of two users. If (c1-a1b1) '-(c1-a1b1) = 0, it can be said that no fraud has been performed.

ただし、a,b,cの値を知る全員が結託すれば、(c1−a1b1)′−(c1−a1b1)=0としながら、異なる値を秘密情報による計算結果とすることができる。1回の秘匿積和演算において全員が結託することは想定しないが、秘匿積和演算を繰り返す場合、1つの積和演算を実行する全入力者が結託すれば、上記差分値を0にしたまま、不正な値を計算結果とすることができる。よって、秘匿積和演算を繰り返す場合、1回の積和演算を構成する入力者は全員結託することはないという前提を置く。また、秘匿積和演算を繰り返し、1つの積和演算に関する入力者全員の結託が考えられる場合、乱数a,b,cも漏洩する。よって、演算参加者が乱数a,b,cを知らないようにするため、各サーバが予め保有する変換用乱数組を用いる。このようにすると、分散4は以下のように非常に簡単にできる。 However, if all persons who know the values of a, b, and c collaborate, a different value can be set as the calculation result based on the secret information while setting (c1-a1b1) '-(c1-a1b1) = 0. Although it is not assumed that all members collude in one confidential product-sum operation, if the confidential product-sum operation is repeated, if all the inputs that execute one multiply-accumulate operation collude, the above difference value remains zero. , An incorrect value can be used as the calculation result. Therefore, in the case of repeating the confidential product-sum operation, it is assumed that all of the input persons constituting one product-sum operation are not colluded. In addition, when the confidential product-sum operation is repeated and all the input persons regarding one product-sum operation are colluded, random numbers a 1 , b 1 , and c 1 are also leaked. Therefore, in order to prevent the calculation participant from knowing the random numbers a 1 , b 1 , c 1 , a set of conversion random numbers held in advance by each server is used. In this way, variance 4 can be made very simple as follows.

[第4実施形態の変形例]
以下に、第4実施形態の変形例として、変換用乱数組([λ]),([ε]),([μ])を用いる例を示す。以下におけるa等はα1,iの乗算によって構成され、a等の値は誰も知らないので安全である。以下の[α(a+a)]などの生成において、a=0の場合でも利用できる手法も示す。
[Modification of Fourth Embodiment]
Hereinafter, as a modified example of the fourth embodiment, an example in which a set of random numbers for conversion ([λ] j , λ i ), ([ε] j , ε i ), ([μ] j , μ i ) will be described. . In the following, a 1 and the like are formed by multiplication of α 1, i , and the value of a 1 and the like is safe because no one knows it. In the following generation of [α 2 (a + a 1 )] i , a method that can be used even when a = 0 is also shown.

図18は、変形例における分散の処理シーケンスを説明したものである。図18のシーケンスにおいて、以下のS470〜S490の処理が行われる。なお、図18において各処理は簡略化して記載するものとする。   FIG. 18 illustrates a distribution processing sequence in the modification. In the sequence of FIG. 18, the following processes of S470 to S490 are performed. In FIG. 18, each process is described in a simplified manner.

<分散4′>
S470で、入力装置412Aは、乱数α2,j(j=0,…,k−1)を生成して乱数α=Πj=0 k−1α2,jを計算し、秘密情報aに対してαa=α×aを計算して秘密分散する。
<Dispersion 4 '>
In S470, the input device 412A generates a random number α 2, j (j = 0,..., K−1), calculates a random number α 2 = Π j = 0 k−1 α 2, j and outputs the secret information a Then, α 2 a = α 2 × a is calculated and secret sharing is performed.

S472で、入力装置412Aは、α2,j,[αa]をサーバSに送信する。 In S472, the input device 412A transmits alpha 2, j, a [α 2 a] j to the server S j.

S474で、入力装置412Bは、乱数β2,j(j=0,…,k−1)を生成して乱数β=Πj=0 k−1β2,jを計算し、秘密情報bに対してβb=β×bを計算して秘密分散する。 In S474, the input device 412B generates the random number β 2, j (j = 0,..., K−1), calculates the random number β 2 = Π j = 0 k−1 β 2, j , and outputs the secret information b Then, β 2 b = β 2 × b is calculated and secret sharing is performed.

S476で、入力装置412Bは、β2,j,[βb]をサーバSに送信する。 In S476, the input device 412B transmits β 2, j , [β 2 b] j to the server S j .

S478で、入力装置412Cは、乱数γ2,j(j=0,…,k−1)生成して乱数γ=Πj=0 k−1γ2,jを計算し、秘密情報cに対してγc=γ×cを計算して秘密分散する。 In S478, the input device 412C generates a random number γ 2, j (j = 0,..., K−1), calculates a random number γ 2 = Π j = 0 k−1 γ 2, j, and generates the secret information c. On the other hand, γ 2 c = γ 2 × c is calculated and secret sharing is performed.

S480で、入力装置412Cは、γ2,j,[γc]をサーバSに送る。 In S480, the input device 412C sends γ 2, j , [γ 2 c] j to the server S j .

S482で、サーバSは乱数a1,i,b1,i,c1,iを定め、λ=α1,i1,i=β1,i1,i=γ1,i1,iと分解する。サーバSはa1,i,b1,i,c1,iのハッシュ値を公開する。 In S482, the server S i defines a random number a 1, i, b 1, i, c 1, i, λ i = α 1, i a 1, i, ε i = β 1, i b 1, i, μ Decompose as i = γ 1, ic 1, i . Server S i publishes a hash value of a 1, i, b 1, i, c 1, i.

S484で、サーバSは、[λ],[ε],[μ]を公開してλ=α,ε=β,μ=γを復元する。ただし、α=Πi=0 k−1α1,i,a=Πi=0 k−11,i=Πi=0 k−1β1,i,b=Πi=0 k−11,i=Πi=0 k−1γ1,i,c=Πi=0 k−11,iとする。 In S484, the server S i publishes [λ] i , [ε] i , [μ] i and restores λ = α 1 a 1 , ε = β 1 b 1 , μ = γ 1 c 1 . Here, α 1 = Π i = 0 k−1 α 1, i , a 1 = Π i = 0 k−1 a 1, i , β 1 = Π i = 0 k−1 β 1, i , b 1 = Π i = 0 k−1 b 1, i , γ 1 = Π i = 0 k−1 γ 1, i , c 1 = Π i = 0 k−1 c 1, i

S486で、サーバSは、乱数α2,i2,i2,iを生成し、以下を計算して公開する。 In S486, the server S i is the random number α 2, i, β 2, i, to generate the gamma 2, i, and publish calculate the following.

S488で、サーバSは、以下を計算する。 In S488, server S i calculates the following.

S490で、サーバSは、以下を計算して復元し、α(a+a),β(b+b),α(a+a)を公開する。 In S490, the server S i is restored by calculating the following, α 2 (a + a 1 ), β 2 (b + b 1), exposes the α 2 (a + a 1) .

以上説明したように、本発明の第4実施形態の手法を用いて秘密情報を分散することにより、秘密情報に0を含んでいても、ユーザの結託を含む不正を防止することができる。   As described above, by distributing the secret information by using the method of the fourth embodiment of the present invention, even if the secret information includes 0, it is possible to prevent fraud including collusion of the user.

[第5実施形態]
第5実施形態は、秘密情報に0を含む場合の演算結果の検証法を示すものである。
[Fifth Embodiment]
The fifth embodiment shows a method of verifying an operation result when secret information includes 0.

まず第5実施形態の手法の前提について説明する。第3、第4実施形態では秘密情報に乱数をかけたαaを公開するため、秘密情報が0、例えばa=0の場合αa=0となり、秘密情報が漏洩する。それに対して、第2実施形態では秘密情報に乱数をかけた値を生成しないため、秘密情報が0であっても漏洩しない。よって、その原理を生かして秘密情報に0を含む場合の検証を行う。 First, the premise of the method of the fifth embodiment will be described. In the third and fourth embodiments, since α 0 a obtained by multiplying the secret information by a random number is disclosed, when the secret information is 0, for example, when a = 0, α 0 a = 0, and the secret information is leaked. On the other hand, in the second embodiment, since a value obtained by multiplying the secret information by a random number is not generated, even if the secret information is 0, no leak occurs. Therefore, utilizing the principle, verification is performed when secret information includes 0.

また、本実施形態の分散では簡単のため、第3実施形態の分散と同様にユーザからの攻撃がない場合を考える。ユーザからの攻撃に対しても安全性を確保したい場合、下記におけるaなどの乱数を、第4実施形態の変形例のように入力者が直接生成せず、変換用乱数組を用いて生成すれば良い。この場合、入力装置側では生成されるα(a+a)のαもaも知ることができず、不正防止が可能となる。また、b,c,a,b,cについても同様である。また、本実施形態の秘匿積和演算では、サーバSは変換用乱数組として([μh,i)(h=1,…,必要個数)を持つものとする。 Also, for the sake of simplicity in the distribution of the present embodiment, a case where there is no attack from the user is considered as in the distribution of the third embodiment. If you want to be secure against attacks from the user, the random number, such as a 1 in the following, the input person as in the modified example of the fourth embodiment does not generate directly generated using the conversion random number pairs Just do it. In this case, the input device cannot know both α 2 and a 1 of the generated α 2 (a + a 1 ), thereby preventing fraud. The same applies to b 1 , c 1 , a 2 , b 2 , c 2 . Also, in the confidential product-sum operation of the present embodiment, it is assumed that the server Si has ([μ h ] i , μ h, i ) (h = 1,..., Necessary number) as a conversion random number set.

第5実施形態の構成は上記図11の第3実施形態と同様の構成をとることができ、秘密分散システム510において、入力装置312を入力装置512に、復元装置314を復元装置514に、サーバ316をサーバ516に置き換えた構成とすればよい。なお、復元装置514が、第2排除部と、第2判定部とを含む検証復元装置の一例である。   The configuration of the fifth embodiment can be the same as that of the third embodiment shown in FIG. 11, and in the secret sharing system 510, the input device 312 is the input device 512, the restoration device 314 is the restoration device 514, and the server is the server. The configuration may be such that the server 316 is replaced with the server 316. Note that the restoration device 514 is an example of a verification restoration device including a second elimination unit and a second determination unit.

次に、図19を参照して、本実施形態に係る復元装置514のハードウェア構成を説明する。   Next, a hardware configuration of the restoration apparatus 514 according to the present embodiment will be described with reference to FIG.

図19に示すように、復元装置514は、CPU540、一時記憶領域としてのメモリ541、不揮発性の記憶部542を含む。また、復元装置514は、表示装置543、入力I/F544、及びネットワークNに接続されるネットワークI/F545を含む。CPU540、メモリ541、記憶部542、表示装置543、入力I/F544、及びネットワークI/F545は、バス546に接続される。   As shown in FIG. 19, the restoration device 514 includes a CPU 540, a memory 541 as a temporary storage area, and a nonvolatile storage unit 542. The restoration device 514 includes a display device 543, an input I / F 544, and a network I / F 545 connected to the network N. The CPU 540, the memory 541, the storage unit 542, the display device 543, the input I / F 544, and the network I / F 545 are connected to the bus 546.

記憶部542は、HDD、SSD、及びフラッシュメモリ等によって実現される。記憶媒体としての記憶部542には、復号プログラム548が記憶される。復号プログラム548は、第2排除プロセス548aと、第2判定プロセス548bと、復元プロセス548cとを含む。CPU540は、記憶部542から復号プログラム548を読み出してからメモリ541に展開し、展開した復号プログラム548を実行する。CPU540が復号プログラム548の第2排除プロセス548aを実行することで、開示の技術の第2排除部として動作する。CPU540が復号プログラム548の第2判定プロセス548bを実行することで、開示の技術の第2判定部として動作する。CPU540が復号プログラム548の復元プロセス548cを実行することで、開示の技術の復元部として動作する。   The storage unit 542 is realized by an HDD, an SSD, a flash memory, and the like. The storage unit 542 as a storage medium stores a decryption program 548. The decryption program 548 includes a second exclusion process 548a, a second determination process 548b, and a restoration process 548c. The CPU 540 reads out the decryption program 548 from the storage unit 542, expands it in the memory 541, and executes the expanded decryption program 548. When the CPU 540 executes the second exclusion process 548a of the decryption program 548, it operates as the second exclusion unit of the disclosed technology. When the CPU 540 executes the second determination process 548b of the decryption program 548, it operates as the second determination unit of the disclosed technology. When the CPU 540 executes the restoring process 548c of the decryption program 548, it operates as a restoring unit according to the disclosed technology.

なお、他の各装置のハードウェア構成は第3実施形態と同様のハードウェア構成をとることができるため、詳細な説明を省略する。   Note that the hardware configuration of each of the other devices can be the same as the hardware configuration of the third embodiment, and a detailed description thereof will be omitted.

次に、図20〜23を参照して、本実施形態に係る秘密分散システム510の作用を説明する。   Next, the operation of the secret sharing system 510 according to the present embodiment will be described with reference to FIGS.

<分散5>
まず、秘密情報を各サーバに分散する処理について説明する。図20は、秘密分散システム510における分散の処理シーケンスを説明したものである。分散の処理シーケンスでは、入力装置512A〜Cが持つ秘密情報をサーバ516に分散する。以下において、サーバ516は、分散の処理シーケンスの各処理に応じてn台の全てのサーバである全サーバS、及びサーバSのいずれかが対象であるものとして説明する。
<Dispersion 5>
First, a process of distributing secret information to each server will be described. FIG. 20 illustrates a sharing processing sequence in the secret sharing system 510. In the distribution processing sequence, the secret information held by the input devices 512A to 512C is distributed to the server 516. In the following, the server 516, all servers S which is on all servers of n units, and one of the servers S i is described as a target in response to the processing of distributed processing sequence.

S510で、入力装置512Aは、乱数αi,0,…,αi,k−1(i=1,..,4)を生成する。 In S510, the input device 512A generates random numbers α i, 0 ,..., Α i, k−1 (i = 1,..., 4).

S512で、入力装置512Aは、乱数α=Πj=0 k−1αi,jを計算する。 In S512, the input device 512A calculates a random number α i = Π j = 0k −1 α i, j .

S514で、入力装置512Aは、乱数a,aを生成し、秘密情報aに対して以下を計算して計算結果を公開する。また、入力装置512Aは、a,aに対するハッシュ値ha1,ha2を公開する。 In S514, the input device 512A generates random numbers a 1 and a 2 , calculates the following for the secret information a, and publishes the calculation result. The input device 512A exposes the hash value h a1, h a2 for a 1, a 2.

S516で、入力装置512Aは、α0,j,..,α4,jをサーバSに送信する。 In S516, the input device 512A is, α 0, j, .., transmits the alpha 4, j to the server S i.

S518で、入力装置512Bは、乱数βi,0,…,βi,k−1(i=1,..,4)を生成する。 In S518, the input device 512B generates random numbers β i, 0 ,..., Β i, k−1 (i = 1,..., 4).

S520で、入力装置512Bは、乱数β=Πj=0 k−1βi,jを計算する。 In S520, the input device 512B calculates a random number β i = Π j = 0k −1 β i, j .

S522で、入力装置512Bは、乱数b,bを生成し、秘密情報bに対して以下を計算して計算結果を公開する。また、入力装置512Bは、b,bに対するハッシュ値hb1,hb2を公開する。 In S522, the input device 512B generates random numbers b 1 and b 2 , calculates the following for the secret information b, and publishes the calculation result. Further, the input device 512B discloses the hash values h b1 and h b2 for b 1 and b 2 .

S524で、入力装置512Bは、β0,j,..,β4,jをサーバSに送信する。 In S524, the input device 512B includes, β 0, j, .., transmits the beta 4, j to the server S i.

S526で、入力装置512Cは、乱数γi,0,…,γi,k−1(i=1,..,4)を生成する。 In S526, the input device 512C generates random numbers γ i, 0 ,..., Γ i, k-1 (i = 1,..., 4).

S528で、入力装置512Cは、乱数γ=Πj=0 k−1γi,jを計算する。 In S528, the input device 512C calculates a random number γ i = Π j = 0k -1 γ i, j .

S530で、入力装置512Cは、乱数c,cを生成し、秘密情報cに対して以下を計算して計算結果を公開する。また、入力装置512Cは、c,cに対するハッシュ値hc1,hc2を公開する。 In S530, the input device 512C generates random numbers c 1 and c 2 , calculates the following for the secret information c, and publishes the calculation result. Further, the input device 512C discloses the hash values h c1 and h c2 for c 1 and c 2 .

S532で、入力装置512Cは、γ0,j,..,γ4,jをサーバSに送信する。 In S532, the input device 512C is, γ 0, j, .., sends the gamma 4, j to the server S i.

以上の分散の処理シーケンスにより、サーバSは、以下を持つことになる。 By the above-described distributed processing sequence, the server Si has the following.

なお、入力装置512A、入力装置512B、及び入力装置512Cは、a,b,c,a,b,cを秘密分散してもよい。 The input device 512A, an input device 512B, and the input device 512C is, a 1, b 1, c 1, a 2, a b 2, c 2 may be secret sharing.

<秘匿積和演算5>
次に秘匿積和演算する処理について説明する。図21は、秘密分散システム510における、秘匿積和演算の処理シーケンスを説明したものである。図21では、説明の便宜のため、サーバ516のうち、サーバSまたは全サーバSおいて秘匿積和演算の処理シーケンスが行われるものとして説明する。
<Secret product-sum operation 5>
Next, a process of performing a secret product-sum operation will be described. FIG. 21 illustrates the processing sequence of the confidential product-sum operation in the secret sharing system 510. In Figure 21, for convenience of explanation, among the server 516 will be described assuming that the server S i or processing sequences of all servers S Oite confidential product-sum operation is performed.

S540で、サーバSは、乱数δ1,i2,i3,i4,iを生成する。 In S540, the server S i is a random number δ 1, i, δ 2, i, δ 3, i, to produce a [delta] 4, i.

S542で、サーバSは、生成した乱数δ1,i2,i3,i4,iを用いて、以下を計算して計算結果を公開する。ただし、0となる値が公開された場合、公開したサーバは不正処理があるとして処理を中断する。 In S542, the server S i is generated random number δ 1, i, δ 2, i, δ 3, i, with [delta] 4, i, to publish a calculation result by calculating the following. However, if a value of 0 is disclosed, the disclosed server suspends the process because there is an unauthorized process.

S544で、全サーバは、以下を計算する。   In S544, all servers calculate the following.

S546で、サーバSは、以下を計算して復元し、復元したδ{(ab+c)+(c−a)},δ(c−a),δ{(ab+c)+(c−a)},δ(c−a)を公開する。 In S546, the server S i is restored by calculating the following, restored δ 2 {(ab + c) + (c 1 -a 1 b 1)}, δ 1 (c 1 -a 1 b 1), δ 4 {{Ab + c) + (c 2 −a 2 b 2 )}, δ 3 (c 2 −a 2 b 2 ) is published.

S548は、演算を継続する場合の処理である。S548で、サーバSは、δ(c−a),δ{(ab+c)+(c−a)},δ(c−a),δ{(ab+c)+(c−a)}が0でなければ、新たなα(a+a),α(a+a)に設定し、δ1,i2,i3,i4,iを新たなα1,i2,i3,i4,iに設定してS540に戻る。 S548 is a process when the operation is continued. In S548, the server S i is, δ 1 (c 1 -a 1 b 1), δ 2 {(ab + c) + (c 1 -a 1 b 1)}, δ 3 (c 2 -a 2 b 2), If δ 4 {(ab + c) + (c 2 −a 2 b 2 )} is not 0, new α 1 a 1 , α 2 (a + a 1 ), α 3 a 2 , α 4 (a + a 2 ) are set. Then, δ 1, i , δ 2, i , δ 3, i , δ 4, i are set to new α 1, i , α 2, i , α 3, i , α 4, i and the process returns to S540. .

<補正処理5>
次に、S546の計算結果が0であった場合の補正処理について説明する。上述した図21の秘匿積和演算の処理シーケンスにおいて、δ{(ab+c)+(c−a)},δ(c−a)の少なくとも1つが0の場合、以下の補正処理を行う。図22は、秘密分散システム510における補正処理の処理シーケンスを説明したものである。補正処理の処理シーケンスは、サーバSで行われるものとして説明する。また、δ{(ab+c)+(c−a)}=0の場合を第1のケース、δ(c−a)=0の場合を第2のケースとして、第1のケース及び第2のケースのいずれか少なくとも一つに当てはまる場合の計算例を説明する。
<Correction 5>
Next, a correction process performed when the calculation result in S546 is 0 will be described. In the processing sequence of the confidential product-sum operation in FIG. 21 described above, when at least one of δ 2 {(ab + c) + (c 1 −a 1 b 1 )}, δ 1 (c 1 −a 1 b 1 ) is 0. , The following correction processing is performed. FIG. 22 illustrates a processing sequence of the correction processing in the secret sharing system 510. Processing sequence of the correction processing will be described as being performed by the server S i. A case where δ 2 {(ab + c) + (c 1 −a 1 b 1 )} = 0 is a first case, and a case where δ 1 (c 1 −a 1 b 1 ) = 0 is a second case. , A calculation example in a case where at least one of the first case and the second case is applied will be described.

S560で、サーバSは、新たな乱数τ0,iとwを生成し、公開する。 In S560, the server S i generates and publishes new random numbers τ 0, i and w i .

S562で、サーバSは、τw=Πτ0,iを計算する。また、サーバSは、wのハッシュ値を公開する。 In S562, server S i calculates the τ 0 w = Πτ 0, i w i. In addition, the server S i is, to publish the hash value of w i.

S564で、サーバSは、乱数τ1,i2,iを生成して、生成した乱数を用いて以下を計算する。第1のケースの場合、

を計算する。第2のケースの場合、

を計算する。
In S564, the server S i is a random number tau 1, i, to generate a tau 2, i, compute the following using the generated random number. In the first case,

Is calculated. In the second case,

Is calculated.

S566で、サーバSは、S564の計算結果を公開する。ただし、0となる値が公開された場合、公開したサーバは不正処理があるとして処理を中断する。 In S566, server S i is, to publish the results of calculation of S564. However, if a value of 0 is disclosed, the disclosed server suspends the process because there is an unauthorized process.

S568で、サーバSは公開された計算結果を用いて、iについて乗算し以下を計算する。第1のケースの場合、

第2のケースの場合、
In S568, the server S i by using the calculation results published, calculates the following multiplying the i. In the first case,
.
In the second case,
.

S570で、サーバSは、以下の計算を行い、新たな値の設定を行う。第1のケースの場合、

と考えて、τwを新たなτ{(ab+c)+(c′−a)}とする。また、サーバSは以下を計算して復元し公開し、それらを新たなα(a+a)とし、τ1,i2,i=τ0,iを新たなα1,i2,iとして上記図21の秘匿積和演算の処理シーケンスのS540に戻る。
In S570, the server S i performs the following calculation, and sets the new value. In the first case,

Τ 0 w is assumed to be new τ 2 {(ab + c) + (c ′ 1 −a 1 b 1 )}. The server S i has issued restored by calculating the following, they a new alpha 1 a 1, and α 2 (a + a 1) , a new and τ 1, i, τ 2, i = τ 0, i The process returns to S540 of the processing sequence of the confidential product-sum operation of FIG. 21 as α 1, i , α 2, i .

第2のケースの場合、

と考えて、τwを新たなτ(c´−a)とする。また、サーバSは以下を計算して復元し公開し、それらを新たなα(a+a)とし、τ1,i=τ0,i2,iを新たなα1,i2,iとして上記図21の秘匿積和演算の処理シーケンスのS540に戻る。ただし、c´=c+wとする。
In the second case,

Τ 0 w is assumed to be a new τ 1 (c ′ 1 −a 1 b 1 ). The server S i has issued restored by calculating the following, they a new alpha 1 a 1, and α 2 (a + a 1) , a new and τ 1, i = τ 0, i, τ 2, i The process returns to S540 of the processing sequence of the confidential product-sum operation of FIG. 21 as α 1, i , α 2, i . Note that c ′ 1 = c 1 + w.

以上が補正処理の処理シーケンスである。なお、δ(c−a),δ{(ab+c)+(c−a)}が0の場合も同様である。 The above is the processing sequence of the correction processing. Note that the same applies to a case where δ 3 (c 2 −a 2 b 2 ), δ 4 {(ab + c) + (c 2 −a 2 b 2 )} is 0.

<検証・復元5>
次に、検証処理について説明する。図23は、秘密分散システム510における検証の処理シーケンスを説明したものである。検証の処理シーケンスにおいて、入力装置512A、入力装置512B、及び入力装置512Cは、a,b,c,a,b,cを公開しているものとする。また、補正処理を行っている場合、wを生成したサーバはその値とハッシュ値を公開する。以降、wについてはc´=c+wよりc´に含まれるが、簡単のためc´もcとして表現する。
<Verification / Restoration 5>
Next, the verification process will be described. FIG. 23 illustrates a verification processing sequence in the secret sharing system 510. In the processing sequence of the verification, the input device 512A, an input device 512B, and the input device 512C is assumed to have published a 1, b 1, c 1 , a 2, b 2, c 2. In addition, if you are performing the correction processing, the server that generated the w i is to publish its value and the hash value. Since, although the w i is included in 1 c'than c'1 = c 1 + w, also expressed as c 1 c'1 for simplicity.

S580で、復元装置514は、サーバSからδ2,i4,iを収集する。 In S580, the restoration device 514 collects δ 2, i , δ 4, i from the server S i .

S582で、復元装置514は、収集したδ2,i4,iの積δを計算し、積δを用いて以下を計算して公開する。 In S582, restoration device 514, the collected [delta] 2, i, [delta] 4, the product of the i [delta] 2, to calculate the [delta] 4, product [delta] 2, and publish calculate the following using the [delta] 4.

なお、S582は、復元装置514における、復号プログラム548の第2排除プロセス548aに対応する。復元装置514のCPU540が、第2排除プロセス548aを実行することで、開示の技術における第2排除部の処理を行う。上記の計算が、複数の第3の値δ{(ab+c)+(c−a)},δ{(ab+c)+(c−a)}から各々の第4の乱数δ2,δに相当する値を排除することに対応する。 Note that S582 corresponds to the second exclusion process 548a of the decryption program 548 in the restoration device 514. The CPU 540 of the restoration device 514 executes the second exclusion process 548a to perform the processing of the second exclusion unit in the disclosed technology. The above calculation calculates each of the third values δ 2 {(ab + c) + (c 1 −a 1 b 1 )}, δ 4 {(ab + c) + (c 2 −a 2 b 2 )} This corresponds to eliminating values corresponding to four random numbers δ 2 and δ 4 .

S584で、復元装置514は、入力装置512A、入力装置512B、及び入力装置512Cが公開しているa,b,c,a,b,c及びそのハッシュ値を収集する。 In S584, restoration device 514 collects the input device 512A, an input device 512B, and the input device a 1 to 512C exposes, b 1, c 1, a 2, b 2, c 2 and the hash value.

S586で、復元装置514は、公開されているa,b,c,a,b,cと、そのハッシュ値が一致するかを検証し、ハッシュ値が正しければS588へ移行し、正しくなければS594へ移行して不正検出とする。なお、途中演算結果が0になっている場合、復元装置514は新たに定めたwを集めて公開し、そのハッシュ値を検証する。 In S586, restoration device 514, proceeds a 1, b 1, c 1 , a 2, b 2, c 2 , which is published to verify the hash values match, the S588 is correct hash value If not, the process proceeds to S594 to detect fraud. Incidentally, the way when the result is 0, restoration device 514 exposes collects w i the newly defined, verifies the hash value.

S588で、復元装置514は、公開されているa,b,c,a,b,cを用いて(c−a)−(c−a)を計算する。なお、途中演算結果が0になり補正した場合、c,cはc´,c´となる。 In S588, the restoration device 514 uses (a 1 , b 1 , c 1 , a 2 , b 2 , and c 2 ) that have been made public, and (c 1 -a 1 b 1 )-(c 2 -a 2 b 2). ) Is calculated. Incidentally, if the middle operation result is corrected becomes 0, c 1, c 2 becomes c'1, c'2.

S590で、復元装置514は、公開されているa,b,c,a,b,cから計算された(c−a)−(c−a)と、S582で復元値(つまり積δ)から計算された(c−a)−(c−a)が等しいか検証し、計算結果が正しければS590へ移行し、正しくなければS594へ移行して不正検出とする。 In S590, the restoration apparatus 514 calculates (c 1 -a 1 b 1 )-(c 2 -a 2 b) from the published a 1 , b 1 , c 1 , a 2 , b 2 , c 2. 2 ) and (c 1 −a 1 b 1 ) − (c 2 −a 2 b 2 ) calculated from the restoration value (that is, the products δ 2 , δ 4 ) in S582, and verify that the calculation result is correct. If not, the process proceeds to S590, and if not, the process proceeds to S594 to detect the fraud.

なお、S590は、復元装置514における、復号プログラム548の第2判定プロセス548bに対応する。復元装置514のCPU540が、第2判定プロセス548bを実行することで、開示の技術における第2判定部の処理を行う。また、δ(c−a)=0で補正した場合におけるc´=c+wが第6の乱数に対応する。S582の計算結果である(c−a)−(c−a)が第1の乱数同士の演算結果に対応する。上述したようにここでのc,cはc´,c´となる。 Note that S590 corresponds to the second determination process 548b of the decryption program 548 in the restoration device 514. The CPU 540 of the restoration device 514 executes the second determination process 548b to perform the processing of the second determination unit in the disclosed technology. Further, c ′ 1 = c 1 + w in the case where δ 1 (c 1 −a 1 b 1 ) = 0 is corrected corresponds to the sixth random number. (C 1 −a 1 b 1 ) − (c 2 −a 2 b 2 ) that is the calculation result of S582 corresponds to the calculation result of the first random numbers. As described above, c 1 and c 2 here are c ′ 1 and c ′ 2 .

S592で、復元装置514は、検証結果が正しい場合、S582で用いられたδ{(ab+c)+(c−a)}/δから公開値による(c−a)を差し引いた値をab+cとする。 In S592, if the verification result is correct, the restoration device 514 uses the public value (c 1 -a 1 b) from δ 2 {(ab + c) + (c 1 −a 1 b 1 )} / δ 2 used in S582. The value obtained by subtracting 1 ) is defined as ab + c.

S594で、検証結果が不正検出であるものとする。   In S594, it is assumed that the verification result is fraud detection.

以上が、検証の処理シーケンスである。なお、a,b,c,a,b,cが秘密分散されている場合、S586に対応する処理として、各サーバでa,b,c,a,b,cの分散値を公開して、復元装置514でa,b,c,a,b,cを復元してもよい。 The above is the verification processing sequence. If a 1 , b 1 , c 1 , a 2 , b 2 , and c 2 are secretly shared, a 1 , b 1 , c 1 , a 2 , b is executed in each server as processing corresponding to S586. 2, exposes the dispersion value of c 2, the restoring device 514 a 1, b 1, c 1, a 2, b 2, c 2 may be the restoration.

また、演算が繰り返されている場合、S582において乱数による最終的な演算結果を計算し、S584で全乱数を収集して、その乱数を用いて同様の演算を構成し、S582で計算した結果とS588で計算した結果が一致するかを検証する。   If the calculation is repeated, a final calculation result based on random numbers is calculated in S582, all random numbers are collected in S584, a similar calculation is configured using the random numbers, and a result calculated in S582 is calculated. It is verified whether the results calculated in S588 match.

また、上記においてδ{(ab+c)+(c−a)}とδ{(ab+c)+(c−a)}は簡単のため同形式のものを用いたが、どちらも(ab+c)を含んでいれば、異なる形式の演算であっても、その差分が乱数のみになれば問題ない。 In the above, δ 2 {(ab + c) + (c 1 −a 1 b 1 )} and δ 4 {(ab + c) + (c 2 −a 2 b 2 )} have the same form for simplicity. However, as long as both contain (ab + c), there is no problem even if the difference is only a random number, even if the calculation is of a different format.

また、第2実施形態と同様の変形を行えば、秘匿減算及び秘匿除算も実現できる。また、本実施の形態の安全性は第3実施形態と同様に秘密情報及び乱数を知らない攻撃者に対しては安全であることが言える。ただし、これも第3実施形態と同様に例えばユーザCはc,c,cを知るのでその間の関係を調整することによって不正ができる。よって、乱数a,b,c,a,b,cは入力装置の入力者が生成せず、第4実施形態に示したように分散4または分散4’のようにして生成すればよい。 If the same modification as that of the second embodiment is performed, concealment subtraction and concealment division can be realized. Also, it can be said that the security of the present embodiment is secure against an attacker who does not know the secret information and the random number, as in the third embodiment. However, similarly to the third embodiment, for example, the user C knows c, c 1 , and c 2, and thus can adjust the relationship between them to make a fraud. Therefore, the random numbers a 1 , b 1 , c 1 , a 2 , b 2 , and c 2 are not generated by the input device of the input device, and the variance 4 or the variance 4 ′ as shown in the fourth embodiment. You just need to generate it.

また、補正処理5においてδ{(ab+c)+(c−a)}やδ{(ab+c)+(c−a)}が補正されたとしても安全であることが言える。 Further, it is safe even if δ 2 {(ab + c) + (c 1 −a 1 b 1 )} or δ 4 {(ab + c) + (c 2 −a 2 b 2 )} is corrected in the correction processing 5. I can say that.

以上により、問題点1〜3の全てを解決できる。   As described above, all of the problems 1 to 3 can be solved.

また、復元装置514は、第2排除部から得られる値から第1の秘密情報同士の演算結果を得る演算結果を得る復元部を含む秘匿演算装置として機能する。復元装置514は、上記、本実施形態の各処理シーケンスを経て、復元プロセス548cの実行によって、S592から得られる値を取得し、第1の秘密情報同士の演算結果(ab+c)を得る。   Further, the restoration device 514 functions as a confidential operation device including a restoration unit that obtains an operation result of obtaining the operation results of the first secret information from the value obtained from the second elimination unit. The restoration device 514 obtains the value obtained from S592 by executing the restoration process 548c through each processing sequence of the present embodiment, and obtains the operation result (ab + c) between the first secret information.

以上説明したように、本発明の第5実施形態の手法を用いて秘密情報を分散することにより、秘密情報に0を含んでいても、ユーザの結託を含む不正を防止することができる。また、また、第5実施形態の手法を用いて秘匿積和演算を行うことにより、秘密情報に0を含んでいても、効率よく秘匿演算を繰り返すことができる。また、第5実施形態の手法を用いて秘匿積和演算を検証することにより、秘匿積和演算の不正を検出することができる。   As described above, by distributing the secret information by using the method of the fifth embodiment of the present invention, even if the secret information contains 0, it is possible to prevent fraud including collusion of the user. Further, by performing the confidential product-sum operation using the method of the fifth embodiment, even if the secret information includes 0, the concealment operation can be efficiently repeated. In addition, by verifying the confidential product-sum operation using the method of the fifth embodiment, it is possible to detect the illegality of the confidential product-sum operation.

[第6実施形態]
第6実施形態は、第1〜第5実施形態で説明した提案手法を変形してブロックチェーンに応用する場合を示す。すなわち、値を登録する入力者が操作する入力装置と、その値を検証してブロックチェーンに公開する検証者が操作する検証装置と、ブロックチェーン装置と、ブロックチェーンに公開された値を確認する復元者が操作する復元装置からなるシステムを考える。入力装置は検証装置には登録する値を知らせるが、復元装置に対しては登録した値を秘匿したいものとする。ただし、ブロックチェーンでは公開性、及び検証性が重要なので、秘匿した登録値から合計値や各種統計値などの演算(以降、検証用演算と呼ぶ)を復元装置が実行でき、その演算結果を検証できるようにする。すなわち、登録値は1台のブロックチェーン装置に秘匿されて公開されるが、その登録値を用いた検証用演算は誰でも実行でき、その合計値や統計値などを知ることができ、かつその演算結果が正しいことを検証できることが大きな特徴である。
[Sixth embodiment]
The sixth embodiment shows a case where the proposed method described in the first to fifth embodiments is modified and applied to a block chain. That is, an input device operated by an input person who registers a value, a verification device operated by a verifier that verifies the value and disclosed to a blockchain, a blockchain device, and a value disclosed to the blockchain are confirmed. Consider a system consisting of a restoration device operated by a restoration person. The input device informs the verification device of the value to be registered, but wants to keep the registered value secret from the restoring device. However, in the blockchain, openness and verifiability are important, so that the restoring device can execute calculations such as total values and various statistical values (hereinafter, referred to as verification calculations) from secret registration values, and verify the calculation results. It can be so. That is, the registered value is concealed and disclosed by one blockchain device, but anyone can execute the verification operation using the registered value, and can know the total value, the statistic value, and the like. A great feature is that it is possible to verify that the operation result is correct.

図24を参照して、本実施形態に係る秘密分散システム610の構成を説明する。図24に示すように、秘密分散システム610は、入力装置6、復元装置614、ブロックチェーン装置616、及び検証装置618を含む。各装置はネットワークNに接続され、互いに通信可能とされる。なお、ブロックチェーン装置616が演算装置の一例であり、復元装置614が検証部を含む検証復元装置の一例であり、秘密分散システム610が秘匿演算検証復元システムの一例である。 The configuration of the secret sharing system 610 according to the present embodiment will be described with reference to FIG. As shown in FIG. 24, the secret sharing system 610 includes an input device 6, a restoration device 614, a blockchain device 616, and a verification device 618. Each device is connected to the network N and can communicate with each other. The blockchain device 616 is an example of an arithmetic device, the restoration device 614 is an example of a verification and restoration device including a verification unit, and the secret sharing system 610 is an example of a secret operation verification and restoration system.

以降において、ブロックチェーン装置616をS、登録値を秘密情報と呼び、k=2の場合で説明する(kは任意に設定できるが、1台のサーバで演算を行う場合、k=2が最も効率的)。また、簡単のため実行する検証用演算を積和演算とし、登録値には0を含まず、演算結果も0を含まないとする。また以下では、秘密情報に対する演算と乱数に対する演算を同じ処理とするためにα(a+a),αaを用いる場合を示す。以下の例では入力者がa,b,cの値を発生毎に検証者に送り、検証者がそれらを確認した後、秘匿して公開する場合を示す。 Hereinafter, the blockchain device 616 will be referred to as S 1 and the registered value will be referred to as secret information, and a description will be given of the case of k = 2 (k can be set arbitrarily. Most efficient). For simplicity, it is assumed that the verification operation to be executed is a product-sum operation, the registered value does not include 0, and the operation result does not include 0. Hereinafter, a case will be described in which α 2 (a + a 1 ), α 1 a 1 , and α 0 a are used in order to perform the same operation on the secret information and the operation on the random number. The following example shows a case in which the input person sends the values of a, b, and c to the verifier every time they occur, and after the verifier confirms them, confidentially discloses them.

次に、図25を参照して、本実施形態に係る復元装置614のハードウェア構成を説明する。   Next, a hardware configuration of the restoration apparatus 614 according to the present embodiment will be described with reference to FIG.

図25に示すように、復元装置614は、CPU640、一時記憶領域としてのメモリ641、不揮発性の記憶部642を含む。また、復元装置614は、表示装置643、入力I/F644、及びネットワークNに接続されるネットワークI/F645を含む。CPU640、メモリ641、記憶部642、表示装置643、入力I/F644、及びネットワークI/F645は、バス646に接続される。   As illustrated in FIG. 25, the restoration device 614 includes a CPU 640, a memory 641 as a temporary storage area, and a nonvolatile storage unit 642. The restoration device 614 includes a display device 643, an input I / F 644, and a network I / F 645 connected to the network N. The CPU 640, the memory 641, the storage unit 642, the display device 643, the input I / F 644, and the network I / F 645 are connected to the bus 646.

記憶部642は、HDD、SSD、及びフラッシュメモリ等によって実現される。記憶媒体としての記憶部642には、検証復元プログラム648が記憶される。CPU640は、記憶部642から検証復元プログラム648を読み出してからメモリ641に展開し、展開した検証復元プログラム648を実行する。CPU640が検証復元プログラム648を実行することで、開示の技術の検証部として動作する。   The storage unit 642 is realized by an HDD, an SSD, a flash memory, and the like. The verification and restoration program 648 is stored in the storage unit 642 as a storage medium. The CPU 640 reads out the verification / restoration program 648 from the storage unit 642, expands it in the memory 641, and executes the expanded verification / restoration program 648. When the CPU 640 executes the verification / restoration program 648, it operates as a verification unit of the disclosed technology.

次に、図26を参照して、本実施形態に係るブロックチェーン装置616のハードウェア構成を説明する。   Next, a hardware configuration of the block chain device 616 according to the present embodiment will be described with reference to FIG.

図26に示すように、ブロックチェーン装置616は、CPU650、一時記憶領域としてのメモリ651、不揮発性の記憶部652を含む。また、ブロックチェーン装置616は、表示装置653、入力I/F654、及びネットワークNに接続されるネットワークI/F655を含む。CPU650、メモリ651、記憶部652、表示装置653、入力I/F654、及びネットワークI/F655は、バス656に接続される。   As shown in FIG. 26, the blockchain device 616 includes a CPU 650, a memory 651 as a temporary storage area, and a nonvolatile storage unit 652. The block chain device 616 includes a display device 653, an input I / F 654, and a network I / F 655 connected to the network N. The CPU 650, the memory 651, the storage unit 652, the display device 653, the input I / F 654, and the network I / F 655 are connected to the bus 656.

記憶部652は、HDD、SSD、及びフラッシュメモリ等によって実現される。記憶媒体としての記憶部652には、演算プログラム658が記憶される。CPU650は、記憶部652から演算プログラム658を読み出してからメモリ651に展開し、展開した演算プログラム658を実行する。CPU650が演算プログラム658を実行することで、開示の技術の演算部として動作する。   The storage unit 652 is realized by an HDD, an SSD, a flash memory, and the like. The arithmetic unit 658 is stored in the storage unit 652 as a storage medium. The CPU 650 reads the operation program 658 from the storage unit 652, expands it in the memory 651, and executes the expanded operation program 658. When the CPU 650 executes the calculation program 658, the CPU 650 operates as a calculation unit according to the disclosed technology.

次に、図27を参照して、本実施形態に係る検証装置618のハードウェア構成を説明する。   Next, a hardware configuration of the verification device 618 according to the present embodiment will be described with reference to FIG.

図27に示すように、検証装置618は、CPU660、一時記憶領域としてのメモリ661、不揮発性の記憶部662を含む。また、検証装置618は、表示装置663、入力I/F664、及びネットワークNに接続されるネットワークI/F665を含む。CPU660、メモリ661、記憶部662、表示装置663、入力I/F664、及びネットワークI/F665は、バス666に接続される。   As illustrated in FIG. 27, the verification device 618 includes a CPU 660, a memory 661 as a temporary storage area, and a nonvolatile storage unit 662. Further, the verification device 618 includes a display device 663, an input I / F 664, and a network I / F 665 connected to the network N. The CPU 660, the memory 661, the storage unit 662, the display device 663, the input I / F 664, and the network I / F 665 are connected to the bus 666.

記憶部662は、HDD、SSD、及びフラッシュメモリ等によって実現される。記憶媒体としての記憶部662には、検証プログラム668が記憶される。CPU660は、記憶部662から検証プログラム668を読み出してからメモリ661に展開し、展開した検証プログラム668を実行する。   The storage unit 662 is realized by an HDD, an SSD, a flash memory, and the like. The verification program 668 is stored in the storage unit 662 as a storage medium. The CPU 660 reads the verification program 668 from the storage unit 662, expands it in the memory 661, and executes the expanded verification program 668.

なお、入力装置612は検証装置618と同様の構成をとることができるため詳細な説明を省略する。   Note that the input device 612 can have the same configuration as the verification device 618, and thus a detailed description is omitted.

次に、図28、図29を参照して、本実施形態に係る秘密分散システム610の作用を説明する。   Next, an operation of the secret sharing system 610 according to the present embodiment will be described with reference to FIGS.

<分散6=データ登録>
図28は、秘密分散システム610における分散(データ登録)、秘匿積和演算(検証用演算)の処理シーケンスを説明したものである。また、図29は、検証・復元処理(データ検証)の処理シーケンスを説明したものである。
<Distribution 6 = Data registration>
FIG. 28 illustrates a processing sequence of sharing (data registration) and confidential product-sum operation (verification operation) in the secret sharing system 610. FIG. 29 illustrates the processing sequence of the verification / restoration processing (data verification).

S610で、入力装置612は、各秘密情報a,b,cが発生する毎に安全な通信路を用いて検証装置618に送信する。   In step S610, the input device 612 transmits the secret information a, b, and c to the verification device 618 using a secure communication channel every time the secret information a, b, and c is generated.

検証装置618は、受信したa,b,cを確認し、問題なければ以下を行う。   The verification device 618 checks the received a, b, and c, and if there is no problem, performs the following.

S612で、検証装置618は、秘密情報aに対して3個の乱数αを生成する。また、乱数aを生成し、以下の値を計算する。 In S612, the verification device 618 generates three random numbers α 0 , α 1 , and α 2 for the secret information a. Also generates a random number a 1, it calculates the following values.

S614で、検証装置618は、S612の計算結果、及び、aに対するハッシュ値ha1をブロックチェーン装置Sに送信する。 In S614, the verification unit 618, the calculation result of S612, and transmits the hash value h a1 for a 1 block chain device S 1.

S616で、検証装置618は、秘密情報bに対して3個の乱数βを生成する。また、乱数bを生成し、以下の値を計算する。 In S616, the verification device 618 generates three random numbers β 0 , β 1 , and β 2 for the secret information b. Also generates a random number b 1, it calculates the following values.

S618で、検証装置618は、S616の計算結果、及び、bに対するハッシュ値hb1をブロックチェーン装置Sに送信する。 In S618, the verification unit 618, the calculation result of S616, and transmits the hash value h b1 for b 1 to block the chain system S 1.

S620で、検証装置618は、秘密情報cに対して3個の乱数γを生成する。また、乱数cを生成し、以下の値を計算する。 In S620, the verification device 618 generates three random numbers γ 0 , γ 1 , and γ 2 for the secret information c. Also generates a random number c 1, it calculates the following values.

S622で、検証装置618は、S620の計算結果、及び、cに対するハッシュ値hc1をブロックチェーン装置Sに送信する。 In S622, the verification unit 618, the calculation result of S620, and transmits the hash value h c1 for c 1 to block the chain system S 1.

S624で、検証装置618は、変換用乱数組([εi,0)と([εi,1)(i=1,…,必要個数)を生成する。 In S624, the verification device 618 generates a conversion random number set ([ε i ] 0 , ε i, 0 ) and ([ε i ] 1 , ε i, 1 ) (i = 1,..., Required number). .

S626で、検証装置618は、([εi,1)に乱数μをかけて([εi,0),(μ[εi,1)をブロックチェーン装置Sに送信する。 In S626, the verification device 618 multiplies ([[epsilon] i ] 1 , [epsilon] i, 1 ) by a random number [mu] ([[epsilon] i ] 0 , [epsilon] i, 0 ), ([[mu] i ] 1 , [epsilon] i, transmitting one) to block the chain system S 1.

S628で、検証装置618は、乱数δを生成し、以下をブロックチェーン装置Sに送信する。 In S628, the verification unit 618, a random number [delta] 0, [delta] 1, to produce a [delta] 2, and transmits the following block chain device S 1.

S630で、ブロックチェーン装置Sは、検証装置618から送られてきた値を登録値として公開する。 In S630, the block chain device S 1 publishes the value transmitted from the verification device 618 as a registration value.

以上が分散の処理シーケンスである。   The above is the distribution processing sequence.

<秘匿積和演算6=検証用演算>
S632で、ブロックチェーン装置Sは、以下を計算し計算結果を検証装置618に送信する。ただし、μ=μδ=μδ=μδとする。
<Secret product-sum operation 6 = Verification operation>
In S632, the block chain device S 1 transmits to the verification device 618 the calculation results to calculate the following. Here, μ 2 = μδ 2 , μ 1 = μδ 1 , μ 0 = μδ 0 .

なお、S632は、ブロックチェーン装置Sにおける、演算プログラム658の処理に対応する。ブロックチェーン装置SのCPU650が、演算プログラム658を実行することで、開示の技術における演算部の処理を行う。秘匿された登録値であるδ/αβε等を用いて、登録値による検証用演算、つまり上記計算を行う。 Incidentally, S632 is in the block chain device S i, corresponds to the process of the arithmetic program 658. CPU650 block chain device S i is, by executing the calculation program 658 performs the processing of the calculation unit in the disclosed technique. Using the secret registered value δ 2 / α 2 β 2 ε 1 or the like, a verification operation based on the registered value, that is, the above calculation is performed.

以上が秘匿積和演算の処理シーケンスである。   The above is the processing sequence of the secret product-sum operation.

<検証・復元6=データ検証>
図29は、秘密分散システム610における検証の処理シーケンスを説明したものである。秘密分散システム610は、演算を終了し検証を行う場合、以下の検証の処理シーケンスを実行する。
<Verification / Restoration 6 = Data verification>
FIG. 29 illustrates a verification processing sequence in the secret sharing system 610. The secret sharing system 610 executes the following verification processing sequence when completing the operation and performing verification.

S650で、検証装置618は、δ{(ab+c)+(a+c)},δ(ab+c)とa,b,cを公開する。 In S650, the verification device 618 discloses δ 2 {(ab + c) + (a 1 b 1 + c 1 )}, δ 0 (ab + c) and a 1 , b 1 , c 1 , δ 2 , δ 0 .

S652で、復元装置614は、以下を計算する。   In S652, the restoration device 614 calculates the following.

S654で、復元装置614は、a,b,cがそのハッシュ値と一致するか検証し、ハッシュ値が正しければS656へ移行し、正しくなければS662へ移行して不正とする。 In S654, the restoration device 614 verifies whether a 1 , b 1 , and c 1 match the hash value. If the hash value is correct, the process proceeds to S656, and if not, the process proceeds to S662 and the process proceeds to S662.

S656で、復元装置614は、公開されているa,b,cを用いてa+cを計算する。 In S656, the restoration device 614 calculates a 1 b 1 + c 1 using the published a 1 , b 1 , c 1 .

S658で、復元装置614は、S656で計算されたa+cとS652で計算されたa+cが等しいか検証し、計算結果が等しく、正しければS660へ移行し、正しくなければS662へ移行して不正とする。 In S658, restoration device 614, has been a 1 b 1 + c 1 and has been a 1 b 1 + c 1 is either verified equal calculated in S652 calculated in S656, the same calculation result, the process proceeds to S660 if correct, properly If not, the process proceeds to S662 and is determined to be illegal.

なお、S658は、復元装置614における、検証復元プログラム648の処理に対応する。サーバSのCPU640が、検証復元プログラム648を実行することで、開示の技術における検証部の処理を行う。 Note that step S658 corresponds to the processing of the verification and restoration program 648 in the restoration device 614. CPU640 server S i is, by executing a verification restoration program 648 performs the processing of the verification unit in the disclosed technique.

S660で、復元装置614は、(ab+c=δ(ab+c))/δを確認値とする。 In S660, the restoration device 614 sets (ab + c = δ 0 (ab + c)) / δ 0 as the confirmation value.

S662で、検証結果が不正であるものとする。   In S662, it is assumed that the verification result is incorrect.

以上が検証の処理シーケンスである。   The above is the verification processing sequence.

上記において、検証用演算を積和演算としたが、積和演算はb=1とすれば加算となり、c=0とすれば乗算となる。また、第2の実施の形態に示したように減算及び除算も可能である。さらに、積和演算の組み合わせにより任意の四則演算が構成できるので、任意の検証用演算が可能である。   In the above description, the verification operation is the product-sum operation, but the product-sum operation is an addition if b = 1 and a multiplication if c = 0. Further, subtraction and division are also possible as shown in the second embodiment. Furthermore, since any four arithmetic operations can be configured by combining the product-sum operations, any verification operation can be performed.

また、本実施形態の分散(データ登録)の時点で登録値は秘匿されて公開されるが、復元者は秘密情報に関して何の情報も得ることができない。また、秘匿積和演算(検証用演算)においても乱数δが秘匿されているので、演算は実行できるが秘密情報及び演算結果について何の情報も得ることはできない。また、δ(ab+c)が0になれば秘密情報が漏洩するが、秘密情報による演算結果に0を含まないとするので問題ない。演算結果に0を含む場合は、第5実施形態の秘匿計算を採用すればよい。よって、本実施形態の補正処理におけるδ{(ab+c)+(a+c)},δ(a+c)の更新についても情報は得られない。最後に、本実施形態の検証(データ検証)において検証装置618により乱数a,b,cが公開されることにより、復元された演算結果の正当性を検証できる。 Further, at the time of distribution (data registration) in the present embodiment, the registered value is concealed and made public, but the recoverer cannot obtain any information regarding the secret information. Also, in the confidential product-sum operation (verification operation), since the random numbers δ 2 , δ 1 , δ 0 are concealed, the operation can be executed but no information can be obtained on the secret information and the operation result. If δ 0 (ab + c) becomes 0, the secret information leaks, but there is no problem because the calculation result based on the secret information does not include 0. When the calculation result includes 0, the confidential calculation of the fifth embodiment may be adopted. Therefore, no information is obtained regarding the update of δ 2 {(ab + c) + (a 1 b 1 + c 1 )}, δ 1 (a 1 b 1 + c 1 ) in the correction processing of the present embodiment. Finally, in the verification (data verification) of the present embodiment, the verification device 618 discloses the random numbers a 1 , b 1 , c 1 , δ 2 , and δ 0 , thereby verifying the validity of the restored operation result. .

本実施の形態の特徴は誰でも秘匿計算及びその検証処理が実行できる点である。すなわち、前実施形態までは秘匿積和演算に参加できるメンバーは分散時に種々の値を配布されたk台のサーバに限定され、それ以外のメンバーは演算結果の正しさを確認できるが、自ら検証処理を行えなかった。本実施の形態によりk台のサーバに秘匿演算を依頼しなくても、全ての値が公開されるため誰でも検証処理できる。また、最終結果に用いられた乱数が公開されることにより、最終結果は知ることができるが、途中結果を復元するためのδが公開されないため、入力値及び途中の演算結果に関する情報は得られないというものである。 The feature of this embodiment is that anyone can execute the confidential calculation and the verification process. In other words, up to the previous embodiment, members who can participate in the confidential product-sum operation are limited to k servers to which various values have been distributed at the time of distribution, and the other members can confirm the correctness of the operation result, but can verify by themselves. Processing could not be performed. According to the present embodiment, even if the k servers do not request the confidential calculation, all the values are disclosed and anyone can perform the verification process. In addition, the final result can be known by disclosing the random number used for the final result, but since δ 2 and δ 0 for restoring the intermediate result are not disclosed, the input value and the intermediate calculation result are not disclosed. No information is available.

ただし、検証者は全入力を知っており、乱数も自ら設定するため、不正することが可能であるが、検証者が信頼できるとする場合はこのままで問題はない。信頼できるとしない場合は、第4実施形態と同様に乱数を検証者だけが生成しないようにすればよい。例えば、分散(データ登録)のS612〜622の処理とS628の処理の代わりに以下の生成処理を入力装置612が行い検証装置618に送信する。   However, since the verifier knows all the inputs and also sets the random number by himself, it is possible to cheat, but there is no problem if the verifier can be trusted. If it is not reliable, it is sufficient that only the verifier does not generate a random number as in the fourth embodiment. For example, the input device 612 performs the following generation processing instead of the processing of S612 to 622 and the processing of S628 of distribution (data registration), and transmits the generated data to the verification device 618.

検証装置618は受信した値を秘密分散して、片側の分散値にμをかけた以下の値をブロックチェーン装置Sに送る。 Verification device 618 the received values to secret sharing, and sends the following values multiplied by μ the variance value of one in the block chain device S 1.

このとき、検証装置618ではS610で送られたa,b,cの値からαを知ることができるが、それ以上の情報を知ることができない。そのため、乱数の演算結果の差分が0となるように公開値を調整できない。また、入力装置612が偽の値を送っている場合、検証装置618はS610によって知る秘密情報による検証結果の正当性をS654において直接確認できる。また、入力装置612が送る値に入力装置612のデジタル署名をつけて送らせ、それを検証した後上記処理を行えば、入力装置612が偽の値を送っていることを証明できる。またこれに対して検証装置のデジタル署名を入力装置が得れば、検証装置618による偽の値の登録を防ぐために利用できる。 At this time, the verification device 618 can know α 0 , β 0 , γ 0 from the values of a, b, c sent in S610, but cannot know any more information. Therefore, the public value cannot be adjusted so that the difference between the calculation results of the random numbers becomes zero. If the input device 612 sends a false value, the verification device 618 can directly confirm the validity of the verification result based on the secret information known in S610 in S654. Also, if the value sent by the input device 612 is sent after attaching the digital signature of the input device 612, and after verifying the value, it is possible to prove that the input device 612 is sending a false value. On the other hand, if the input device obtains the digital signature of the verification device, it can be used to prevent registration of a false value by the verification device 618.

また、第4実施形態に示したように入力の乱数a,b,cを他者と協力して生成してもよい。例えば、入力装置と検証装置、または検証装置と復元装置などの組合せで、入力装置または検証装置が設定したaをその生成者が知らないa"=a+a′に変更してもよい。 Further, as shown in the fourth embodiment, the input random numbers a 1 , b 1 , c 1 may be generated in cooperation with others. For example, a combination of an input device and the verification device, or the verification device and restore apparatus, changing a 1 to the input device or verification device is set to a "1 = a 1 + a '1 does not have known the creator Good.

また、上記分散(データ登録)ではα(a+a),αaの3つの入力を生成したが、乱数の演算を秘密情報の演算と同じ形にしなくてよい場合は、第3実施形態のようにα(a+a),αaまたは第5の実施の形態のように2組のα(a+a),αとして、各々同じ形式で更新して行ってもよい。 In the above-mentioned sharing (data registration), three inputs of α 2 (a + a 1 ), α 1 a 1 , and α 0 a are generated. However, if the calculation of the random number does not have to be the same as the calculation of the secret information, , Α 2 (a + a 1 ), α 0 a as in the third embodiment, or two sets of α 2 (a + a 1 ), α 1 a 1 as in the fifth embodiment, and are updated in the same format. You may go.

以上説明したように、本発明の第6実施形態の手法を用いて秘密情報を分散することにより、ブロックチェーンのような公開性が重視される応用に対しても、上述した第1〜第5実施形態と同様の秘匿計算を適用することができる。   As described above, by distributing secret information using the method of the sixth embodiment of the present invention, the above-described first to fifth embodiments can be applied to applications where openness is important, such as a blockchain. The same confidential calculation as in the embodiment can be applied.

なお、上記各実施形態でCPUがソフトウェア(プログラム)を実行することにより実行した各種処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、各種処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。   In the above embodiments, various processes executed by the CPU executing software (programs) may be executed by various processors other than the CPU. In this case, the processor for executing a specific process such as a programmable logic device (PLD) whose circuit configuration can be changed after manufacturing a field-programmable gate array (FPGA) and an application specific integrated circuit (ASIC). A dedicated electric circuit or the like which is a processor having a circuit configuration designed exclusively is exemplified. In addition, various processes may be executed by one of these various processors, or a combination of two or more processors of the same type or different types (for example, a plurality of FPGAs, a combination of a CPU and an FPGA, or the like). ). Further, the hardware structure of these various processors is more specifically an electric circuit in which circuit elements such as semiconductor elements are combined.

また、上記各実施形態では、各種プログラムが記憶部に予め記憶(インストール)されている態様を説明したが、これに限定されない。各種プログラムは、CD−ROM(Compact Disc Read Only Memory)、DVD−ROM(Digital Versatile Disc Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、各種プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。   Further, in each of the above-described embodiments, the mode in which various programs are stored (installed) in the storage unit in advance has been described, but the present invention is not limited to this. The various programs may be provided in a form recorded on a recording medium such as a CD-ROM (Compact Disc Read Only Memory), a DVD-ROM (Digital Versatile Disc Read Only Memory), and a USB (Universal Serial Bus) memory. . Further, the various programs may be downloaded from an external device via a network.

10、210、310、410、510、610 秘密分散システム
12、212、312、412、512、612 入力装置
14、314、414、514、614 復元装置
16、216、316、416、516 サーバ
616 ブロックチェーン装置
618 検証装置
10, 210, 310, 410, 510, 610 Secret sharing system 12, 212, 312, 412, 512, 612 Input device 14, 314, 414, 514, 614 Recovery device 16, 216, 316, 416, 516, 516 Server 616 Block Chain device 618 Verification device

Claims (19)

nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、
第1の秘密情報に第1の乱数及び第2の乱数を作用させた第1の値を生成し、
前記第1の乱数及び前記第1の秘密情報の少なくとも一方に第3の乱数を作用させた第2の値を生成する第1生成部
を備えた分散装置。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. System that cannot restore
Generating a first value obtained by applying a first random number and a second random number to the first secret information;
A distribution apparatus comprising: a first generation unit configured to generate a second value obtained by applying a third random number to at least one of the first random number and the first secret information.
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、
第1の秘密情報に第1の乱数及び第2の乱数を作用させた複数の第1の値と、前記第1の乱数又は前記第1の秘密情報に第3の乱数を作用させた複数の第2の値とを用いて、
前記複数の第1の秘密情報同士の演算結果に前記複数の第1の乱数同士の演算結果、及び第4の乱数を作用させた第3の値を生成し、
前記複数の第1の乱数同士又は秘密情報同士の演算結果に第5の乱数を作用させた第4の値を生成する第2生成部
を備えた秘匿演算装置。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. System that cannot restore
A plurality of first values obtained by applying a first random number and a second random number to first secret information, and a plurality of first values obtained by applying a third random number to the first random number or the first secret information Using the second value,
Generating a calculation result between the plurality of first random numbers and a third value obtained by applying a fourth random number to the calculation result between the plurality of first secret information;
A confidential operation device, comprising: a second generation unit configured to generate a fourth value obtained by applying a fifth random number to an operation result between the plurality of first random numbers or between secret information.
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、
請求項2に記載の第2生成部によって得られた第3の値及び第4の値の少なくとも一方が0である場合に第6の乱数を生成する第3生成部と、
前記第6の乱数を秘匿加算する加算部と、
を更に備えた秘匿演算装置。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. System that cannot restore
A third generator configured to generate a sixth random number when at least one of the third value and the fourth value obtained by the second generator according to claim 2 is 0;
An adder for confidentially adding the sixth random number;
A secret arithmetic device further comprising:
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、
請求項2又は請求項3に記載の秘匿演算装置によって得られた、秘密情報に対して乱数を作用させて生成した第3の値から秘密情報と第4の乱数に相当する値を排除する第1排除部と、
前記第1排除部による排除によって得られた第1の乱数同士の演算結果が正しいか否かを判定する第1判定部と、
を備えた検証復元装置。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. System that cannot restore
A method for removing a value corresponding to the secret information and the fourth random number from a third value generated by applying a random number to the secret information, obtained by the secret arithmetic device according to claim 2 or 3. 1 exclusion unit,
A first determination unit that determines whether an operation result of the first random numbers obtained by the exclusion by the first exclusion unit is correct,
A verification / restoration device equipped with:
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、
請求項2又は請求項3に記載の秘匿演算装置によって得られた、秘密情報に対して乱数を作用させて生成した第3の値から秘密情報と第4の乱数に相当する値を排除する第2排除部と、
前記第2排除部による排除によって得られた第1の乱数同士の演算結果であって、前記第3の値または第4の値が0の場合に第6の乱数を含む第1の乱数同士の演算結果が正しいか否かを判定する第2判定部と、
を備えた検証復元装置。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. System that cannot restore
A method for removing a value corresponding to the secret information and the fourth random number from a third value generated by applying a random number to the secret information, obtained by the secret arithmetic device according to claim 2 or 3. 2 exclusion part,
The calculation result of the first random numbers obtained by the exclusion by the second exclusion unit, wherein the first random number including the sixth random number when the third value or the fourth value is 0 is zero. A second determination unit that determines whether the calculation result is correct;
A verification / restoration device equipped with:
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、
請求項4に記載の第1排除部、もしくは請求項5に記載の第2排除部から得られる値、又は請求項2に記載の第4の値から各々の第5の乱数に相当する値を排除した値と第3の値から第1の秘密情報同士の演算結果を得る復元部を有する秘匿演算装置。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. System that cannot restore
A value obtained from the first exclusion unit according to claim 4 or the second exclusion unit according to claim 5, or a value corresponding to each fifth random number from the fourth value according to claim 2 A confidential operation device including a restoring unit that obtains an operation result between first confidential information from an excluded value and a third value.
請求項1に記載の乱数を前記第1の秘密情報の生成者以外が生成した乱数を用いて生成する第4生成部を含む分散装置、
を備えた分散システム。
A dispersing apparatus comprising: a fourth generator configured to generate the random number according to claim 1 using a random number generated by a person other than a creator of the first secret information,
Distributed system with.
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、
分散値同士の乗算を行う乗算部と、
前記乗算部による乗算により得られた乗算値と他装置から送られた分離できない乗算値とを用いて分散値の次数変換処理を行う変換部と、
乱数を生成し、生成した乱数を自装置に返信される次数変換後の分散値に加算する加算部と、
備えた秘匿演算装置。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. System that cannot restore
A multiplication unit for multiplying the variance values,
A conversion unit that performs degree conversion processing of a variance value using a multiplication value obtained by the multiplication by the multiplication unit and an inseparable multiplication value sent from another device,
An adding unit that generates a random number and adds the generated random number to the variance value after the degree conversion returned to the own device;
A confidential computing device provided.
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、
秘匿された登録値を用いて、登録値による検証用演算を行う演算部、を含む演算装置と、
前記演算部による演算結果が正しいかどうかを検証する検証部を含む検証復元装置と、
を備えた秘匿演算検証復元システム。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. System that cannot restore
An arithmetic unit including an arithmetic unit that performs an operation for verification based on the registered value, using the secret registered value,
A verification and restoration device including a verification unit for verifying whether the operation result by the operation unit is correct,
Operation verification and restoration system equipped with
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、プログラムを、
第1の秘密情報に第1の乱数及び第2の乱数を作用させた第1の値を生成し、
前記第1の乱数及び前記第1の秘密情報の少なくとも一方に第3の乱数を作用させた第2の値を生成する第1生成部
として機能させるプログラム。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. On systems that cannot restore
Generating a first value obtained by applying a first random number and a second random number to the first secret information;
A program that functions as a first generation unit that generates a second value obtained by applying a third random number to at least one of the first random number and the first secret information.
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、コンピュータを、
第1の秘密情報に第1の乱数及び第2の乱数を作用させた複数の第1の値と、前記第1の乱数又は前記第1の秘密情報に第3の乱数を作用させた複数の第2の値とを用いて、
前記複数の第1の秘密情報同士の演算結果に前記複数の第1の乱数同士の演算結果、及び第4の乱数を作用させた第3の値を生成し、
前記複数の第1の乱数同士又は秘密情報同士の演算結果に第5の乱数を作用させた第4の値を生成する第2生成部
として機能させるプログラム。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. Computer in a system that cannot restore
A plurality of first values obtained by applying a first random number and a second random number to first secret information, and a plurality of first values obtained by applying a third random number to the first random number or the first secret information Using the second value,
Generating a calculation result between the plurality of first random numbers and a third value obtained by applying a fourth random number to the calculation result between the plurality of first secret information;
A program functioning as a second generation unit that generates a fourth value obtained by applying a fifth random number to an operation result between the plurality of first random numbers or between secret information.
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、コンピュータを、
請求項11に記載の第2生成部によって得られた第3の値及び第4の値の少なくとも一方が0である場合に第6の乱数を生成する第3生成部と、
前記第6の乱数を秘匿加算する加算部と、
として機能させるプログラム。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. Computer in a system that cannot restore
A third generator configured to generate a sixth random number when at least one of the third value and the fourth value obtained by the second generator according to claim 11 is 0,
An adder for confidentially adding the sixth random number;
A program to function as
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、コンピュータを、
請求項11又は請求項12に記載のプログラムによって得られた、秘密情報に対して乱数を作用させて生成した第3の値から秘密情報と第4の乱数に相当する値を排除する第1排除部と、
前記第1排除部による排除によって得られた第1の乱数同士の演算結果が正しいか否かを判定する第1判定部と、
として機能させるプログラム。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. Computer in a system that cannot restore
A first exclusion for excluding secret information and a value corresponding to a fourth random number from a third value generated by applying a random number to the secret information obtained by the program according to claim 11 or 12. Department and
A first determination unit that determines whether an operation result of the first random numbers obtained by the exclusion by the first exclusion unit is correct,
A program to function as
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、コンピュータを、
請求項11又は請求項12に記載のプログラムによって得られた、秘密情報に対して乱数を作用させて生成した第3の値から秘密情報と第4の乱数に相当する値を排除する第2排除部と、
前記第2排除部による排除によって得られた第1の乱数同士の演算結果であって、前記第3の値または第4の値が0の場合に第6の乱数を含む第1の乱数同士の演算結果が正しいか否かを判定する第2判定部と、
として機能させるプログラム。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. Computer in a system that cannot restore
A second exclusion for excluding secret information and a value corresponding to a fourth random number from a third value generated by applying a random number to the secret information, obtained by the program according to claim 11 or 12. Department and
The calculation result of the first random numbers obtained by the exclusion by the second exclusion unit, wherein the first random number including the sixth random number when the third value or the fourth value is 0 is zero. A second determination unit that determines whether the calculation result is correct;
A program to function as
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、コンピュータを、
請求項13に記載の第1排除部、もしくは請求項14に記載の第2排除部から得られる値、又は請求項11に記載の第4の値から各々の第5の乱数に相当する値を排除した値と第3の値から第1の秘密情報同士の演算結果を得る手段として機能させるためのプログラム。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. Computer in a system that cannot restore
A value obtained from the first exclusion unit according to claim 13 or the value obtained from the second exclusion unit according to claim 14, or a value corresponding to each fifth random number from the fourth value according to claim 11 A program for functioning as a means for obtaining an operation result between the first secret information from the excluded value and the third value.
分散装置において、コンピュータを、
請求項10に記載の乱数を前記第1の秘密情報の生成者以外が生成した乱数を用いて生成する第4生成部
として機能させるプログラム。
In the distributed device, the computer
A program that functions as a fourth generation unit that generates the random number according to claim 10 using a random number generated by a person other than a creator of the first secret information.
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、コンピュータを、
分散値同士の乗算を行う乗算部と、
前記乗算部による乗算により得られた乗算値と他装置から送られた分離できない乗算値とを用いて分散値の次数変換処理を行う変換部と、
乱数を生成し、生成した乱数を自装置に返信される次数変換後の分散値に加算する加算部と、
として機能させるプログラム。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. Computer in a system that cannot restore
A multiplication unit for multiplying the variance values,
A conversion unit that performs degree conversion processing of a variance value using a multiplication value obtained by the multiplication by the multiplication unit and an inseparable multiplication value sent from another device,
An adding unit that generates a random number and adds the generated random number to the variance value after the degree conversion returned to the own device;
A program to function as
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、
演算装置において、コンピュータを、秘匿された登録値を用いて、登録値による検証用演算を行う演算部、
として機能させるプログラム。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. System that cannot restore
In the arithmetic device, a computer, using a secret registered value, an arithmetic unit that performs a verification operation based on the registered value,
A program to function as
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、
検証復元装置において、コンピュータを、請求項18に記載の演算部による演算結果が正しいかどうかを検証する検証部、
として機能させるプログラム。
When n is an integer of 2 or more and k is an integer of 2 or more and n or less, the secret information is distributed into n pieces of shared values, and the secret information can be restored by the k pieces of shared values. System that cannot restore
In the verification and restoration device, a verification unit that verifies whether a calculation result by the calculation unit according to claim 18 is correct,
A program to function as
JP2018185931A 2018-09-28 2018-09-28 DISTRIBUTION DEVICE, SECURE COMPUTING DEVICE, VERIFICATION AND RECOVERY DEVICE, DISTRIBUTED SYSTEM, SECURE COMPUTER VERIFICATION AND RESTORE SYSTEM, AND PROGRAM Active JP7200462B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018185931A JP7200462B2 (en) 2018-09-28 2018-09-28 DISTRIBUTION DEVICE, SECURE COMPUTING DEVICE, VERIFICATION AND RECOVERY DEVICE, DISTRIBUTED SYSTEM, SECURE COMPUTER VERIFICATION AND RESTORE SYSTEM, AND PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018185931A JP7200462B2 (en) 2018-09-28 2018-09-28 DISTRIBUTION DEVICE, SECURE COMPUTING DEVICE, VERIFICATION AND RECOVERY DEVICE, DISTRIBUTED SYSTEM, SECURE COMPUTER VERIFICATION AND RESTORE SYSTEM, AND PROGRAM

Publications (2)

Publication Number Publication Date
JP2020056840A true JP2020056840A (en) 2020-04-09
JP7200462B2 JP7200462B2 (en) 2023-01-10

Family

ID=70107315

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018185931A Active JP7200462B2 (en) 2018-09-28 2018-09-28 DISTRIBUTION DEVICE, SECURE COMPUTING DEVICE, VERIFICATION AND RECOVERY DEVICE, DISTRIBUTED SYSTEM, SECURE COMPUTER VERIFICATION AND RESTORE SYSTEM, AND PROGRAM

Country Status (1)

Country Link
JP (1) JP7200462B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023276740A1 (en) * 2021-06-30 2023-01-05 学校法人東京理科大学 Third party device, secure computation system, and program

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008250931A (en) * 2007-03-30 2008-10-16 Toshiba Corp System for restoring distributed information, information utilizing device, and verification device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008250931A (en) * 2007-03-30 2008-10-16 Toshiba Corp System for restoring distributed information, information utilizing device, and verification device

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ムハンマド カマル アフマド アクマル アミヌディン ほか: "秘密分散法を用いた四則演算の組み合わせに対して安全な次数変化のない秘匿計算", 情報処理学会 論文誌(ジャーナル) [ONLINE], vol. 59, no. 9, JPN6022023175, 15 September 2018 (2018-09-15), JP, pages 1581 - 1595, ISSN: 0004919907 *
濱田 浩気 ほか: "3パーティ秘匿関数計算上のランダム置換プロトコル", コンピュータセキュリティシンポジウム2010 論文集 [第二分冊], vol. 2010, no. 9, JPN6011057013, 12 October 2010 (2010-10-12), JP, pages 561 - 566, ISSN: 0004919908 *
神宮 武志 ほか: "秘密分散法を用いた次数変化のない秘匿計算手法", 情報処理学会 論文誌(ジャーナル)[ONLINE], vol. 59, no. 3, JPN6022023173, 15 March 2018 (2018-03-15), JP, pages 1038 - 1049, ISSN: 0004919906 *
荒木 俊則 ほか: "秘密分散法を用いた3者秘密計算の有用性", 情報処理, vol. 第59巻 第10号, JPN6022023170, 15 September 2018 (2018-09-15), JP, pages 886 - 892, ISSN: 0004792138 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023276740A1 (en) * 2021-06-30 2023-01-05 学校法人東京理科大学 Third party device, secure computation system, and program

Also Published As

Publication number Publication date
JP7200462B2 (en) 2023-01-10

Similar Documents

Publication Publication Date Title
CN113765657B (en) Key data processing method, device and server
Goyal et al. Lightweight security algorithm for low power IoT devices
EP2525341B1 (en) Proxy calculation system, proxy calculation method, proxy calculation requesting apparatus, and proxy calculation program and recording medium therefor
US11838426B2 (en) Computer implemented method and system for obtaining digitally signed data
Huang et al. Achieving accountable and efficient data sharing in industrial internet of things
US20240064008A1 (en) Computer implemented method and system for transferring control of a digital asset
Harn et al. Predistribution scheme for establishing group keys in wireless sensor networks
US20060026426A1 (en) Identifier-based signcryption with two trusted authorities
US8458478B2 (en) Signature generating apparatus, signature verifying apparatus, and methods and programs therefor
Lin et al. A publicly verifiable multi-secret sharing scheme with outsourcing secret reconstruction
Fu et al. Privacy-preserving composite modular exponentiation outsourcing with optimal checkability in single untrusted cloud server
Harbi et al. Secure data transmission scheme based on elliptic curve cryptography for internet of things
Lin Integrate the hierarchical cluster elliptic curve key agreement with multiple secure data transfer modes into wireless sensor networks
JP2020056840A (en) Sharing device, secure computation device, verification restoration device, sharing system, secure computation verification restoration system, and program
US20050135610A1 (en) Identifier-based signcryption
JP4928412B2 (en) Signature generation apparatus, signature verification apparatus, method and program thereof
Biasse et al. A trade-off between classical and quantum circuit size for an attack against CSIDH
WO2019163636A1 (en) Secret calculation device, secret calculation authentication system, secret calculation method, and program
Park et al. Anonymous cluster-based MANETs with threshold signature
Durga et al. Generation of RAESSES hash function for medical blockchain formation based on high dynamic chaotic systems
Lin et al. Secure map reduce data transmission mechanism in cloud computing using threshold secret sharing scheme
Chen et al. A practical authenticated encryption scheme based on the elliptic curve cryptosystem
JP2008148033A (en) Proxy signature device, signer device, signature verification device, and their programs
US20240039715A1 (en) Providing communications that are secure from quantum computer models
JP2006229929A (en) Secret computation method, system and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220805

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221201

R150 Certificate of patent or registration of utility model

Ref document number: 7200462

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350