JP2020046558A - Generation device, restoration device, transmission device, reception device, generation program, restoration program, transmission program, and reception program - Google Patents

Generation device, restoration device, transmission device, reception device, generation program, restoration program, transmission program, and reception program Download PDF

Info

Publication number
JP2020046558A
JP2020046558A JP2018175393A JP2018175393A JP2020046558A JP 2020046558 A JP2020046558 A JP 2020046558A JP 2018175393 A JP2018175393 A JP 2018175393A JP 2018175393 A JP2018175393 A JP 2018175393A JP 2020046558 A JP2020046558 A JP 2020046558A
Authority
JP
Japan
Prior art keywords
secret information
random number
secret
program
restoration
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.)
Pending
Application number
JP2018175393A
Other languages
Japanese (ja)
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 JP2018175393A priority Critical patent/JP2020046558A/en
Publication of JP2020046558A publication Critical patent/JP2020046558A/en
Pending legal-status Critical Current

Links

Abstract

To provide a secret distribution system capable of suppressing leakage of secret information while the owner of the secret information does not notice.SOLUTION: A system distributes secret information into n distributed values and can restore the secret information with k distributed values but cannot restore the secret information with less than k distributed values, where n denotes an integer of two or more and k denotes an integer of two or more and n or less. A generation device 12 of the system converts identification information identifying the secret information with one secret key, and thereby generates values corresponding to at least k-1 or less respective distributed values.SELECTED DRAWING: Figure 1

Description

本開示は、生成装置、復元装置、送信装置、受信装置、生成プログラム、復元プログラム、送信プログラム、及び受信プログラムに関する。   The present disclosure relates to a generation device, a restoration device, a transmission device, a reception device, a generation program, a restoration program, a transmission program, and a reception program.

近年、新たなネットワーク技術としてクラウドコンピューティングが注目されている。クラウドコンピューティングとは、ユーザの持つデータをクラウドと呼ばれるネットワーク上の複数のサーバにより構成される仮想の大容量ストレージに分散して保管する技術である。クラウドコンピューティングでは、分散して保管されたデータに対し、ユーザがどこからでもネットワーク経由で必要に応じてアクセスすることを可能にする。さらに、データを暗号化して秘匿計算を実現することで単にデータを保管するだけでなく、クラウド上に分散して保管されたデータを用いて、個々のデータを秘匿しながら任意の処理を行うことが求められている。   In recent years, cloud computing has attracted attention as a new network technology. Cloud computing is a technology in which data owned by a user is distributed and stored in a virtual large-capacity storage configured by a plurality of servers on a network called a cloud. Cloud computing allows users to access distributed and stored data from anywhere via a network as needed. Furthermore, by encrypting data and implementing confidentiality calculations, it is not only possible to store data simply, but also to perform arbitrary processing while concealing individual data using data distributed and stored on the cloud. Is required.

このような秘匿計算を実現するために秘密分散法の利用が注目されている。秘密分散法とは1個の秘密情報をn個に分散し、n個に分散した分散値のうち、k個(k≦n)の分散値を集めることで元の秘密情報が復元できるという技術である。また、秘密分散法では、n個に分散した分散値のうち、k個未満の分散値からは秘密情報に関する情報を得ることができない。この秘密分散法として、Shamirによる(k、n)閾値秘密分散法(以下、「Shamir法」ともいう)が知られている。   Attention has been paid to the use of a secret sharing scheme in order to realize such secret calculation. The secret sharing method is a technique in which one piece of secret information is distributed into n pieces, and among the distributed values distributed into n pieces, k pieces (k ≦ n) of the shared values can be collected to restore the original secret information. It is. Also, in the secret sharing method, information on secret information cannot be obtained from less than k shared values out of n shared values. As this secret sharing scheme, a (k, n) threshold secret sharing scheme by Shamir (hereinafter, also referred to as “Shamir scheme”) is known.

また、分散値全体のデータサイズの小型化を実現するためのランプ型秘密分散法も知られている。また、非特許文献1では、非対称秘密分散法と呼ばれる秘密分散法が提案されている。   Also, a ramp-type secret sharing method for realizing a reduction in the data size of the entire sharing value is known. Non-Patent Document 1 proposes a secret sharing scheme called an asymmetric secret sharing scheme.

また、特許文献1には、秘密分散のデータ復元処理の計算量を抑制する秘密分散システムが開示されている。   Further, Patent Literature 1 discloses a secret sharing system that suppresses the calculation amount of data restoration processing of secret sharing.

特開2013−243441号公報JP 2013-243441 A

高橋慧、岩村惠市、“クラウドコンピューティングに適した計算量的安全性を持つ秘密分散法”、CSS2012(2012)Kei Takahashi and Keiichi Iwamura, "Secret Sharing Method with Computational Security Suitable for Cloud Computing", CSS2012 (2012)

しかしながら、Shamir法をはじめとする秘密分散法では、正当な復元者ではない攻撃者が、分散値が保管されているサーバを攻撃し、k個以上の分散値を得ることができれば、そのk個以上の分散値から秘密情報を復元できてしまう。また、非対称秘密分散法でも、攻撃者が鍵サーバ及びデータサーバにアクセスできる状態にあり、鍵を用いて生成した分散値を含めk個の分散値を得ることができれば、秘密情報を復元することができてしまう。   However, in the secret sharing method such as the Shamir method, if an attacker who is not a legitimate reconstructor can attack a server in which the shared value is stored and obtain k or more shared values, the k shared The secret information can be restored from the above variance value. Also, in the asymmetric secret sharing scheme, if the attacker can access the key server and the data server and can obtain k shared values including the shared value generated using the key, the secret information can be restored. Can be done.

すなわち、前述した各種の秘密分散法では、秘密情報のオーナが知らない間に、秘密情報が漏洩してしまう場合があった。   That is, in the above-described various secret sharing methods, the secret information may be leaked before the owner of the secret information is known.

本開示は、以上の事情を鑑みて成されたものであり、秘密情報のオーナが知らない間に、秘密情報が漏洩することを抑制することができる生成装置、復元装置、送信装置、受信装置、生成プログラム、復元プログラム、送信プログラム、及び受信プログラムを提供することを目的とする。   The present disclosure has been made in view of the above circumstances, and a generation device, a restoration device, a transmission device, and a reception device capable of suppressing leakage of secret information while the owner of the secret information does not know. , A generation program, a restoration program, a transmission program, and a reception program.

開示の技術は、一つの態様として、nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、生成装置が、前記秘密情報を識別する識別情報を、1つの秘密鍵を用いて変換することによって、少なくともk−1個以下の前記分散値の各々に対応する値を生成する生成部を備える。   The disclosed technology, as one aspect, is such that 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 distributed values, and the secret information is distributed by k distributed values. In a system that can be restored and the secret information cannot be restored with less than k, the generating device converts the identification information for identifying the secret information by using one secret key, so that at least k-1 or less of the secret information can be restored. A generating unit that generates a value corresponding to each of the variance values;

本開示によれば、秘密情報のオーナが知らない間に、秘密情報が漏洩することを抑制することができる。   According to the present disclosure, it is possible to suppress leakage of secret information while the owner of the secret information does not know.

第1〜第4実施形態に係る秘密分散システムの構成の一例を示すブロック図である。It is a block diagram showing an example of composition of a secret sharing system concerning a 1st-a 4th embodiment. 第1〜第4実施形態に係る生成装置のハードウェア構成の一例を示すブロック図である。FIG. 14 is a block diagram illustrating an example of a hardware configuration of a generation device according to first to fourth embodiments. 第1〜第4実施形態に係る復元装置のハードウェア構成の一例を示すブロック図である。It is a block diagram showing an example of hardware constitutions of a restoration device concerning a 1st-a 4th embodiment. 第1実施形態に係る分散処理の一例を示すフローチャートである。5 is a flowchart illustrating an example of a distributed process according to the first embodiment. 第1実施形態に係る復元処理の一例を示すフローチャートである。5 is a flowchart illustrating an example of a restoration process according to the first embodiment. 第2実施形態に係る分散処理の一例を示すフローチャートである。It is a flow chart which shows an example of distributed processing concerning a 2nd embodiment. 第2実施形態に係る復元処理の一例を示すフローチャートである。It is a flow chart which shows an example of restoration processing concerning a 2nd embodiment. 第3実施形態に係る分散処理の一例を示すフローチャートである。It is a flow chart which shows an example of distributed processing concerning a 3rd embodiment. 第3実施形態に係る復元処理の一例を示すフローチャートである。It is a flow chart which shows an example of restoration processing concerning a 3rd embodiment. 第4実施形態に係る分散処理の一例を示すフローチャートである。It is a flow chart which shows an example of distributed processing concerning a 4th embodiment. 第4実施形態に係る復元処理の一例を示すフローチャートである。It is a flow chart which shows an example of restoration processing concerning a 4th embodiment. 第5実施形態に係る通信システムの構成の一例を示すブロック図である。It is a block diagram showing an example of the composition of the communication system concerning a 5th embodiment. 第5実施形態に係る送信装置のハードウェア構成の一例を示すブロック図である。FIG. 16 is a block diagram illustrating an example of a hardware configuration of a transmission device according to a fifth embodiment. 第5実施形態に係る受信装置のハードウェア構成の一例を示すブロック図である。It is a block diagram showing an example of hardware constitutions of a receiving set concerning a 5th embodiment. 第5実施形態に係る送信処理の一例を示すフローチャートである。It is a flow chart which shows an example of transmission processing concerning a 5th embodiment. 第5実施形態に係る受信処理の一例を示すフローチャートである。It is a flow chart which shows an example of the receiving processing concerning a 5th embodiment.

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

まず、実施形態の詳細を説明する前に、Shamir法及び非対称秘密分散法の詳細と問題点とを説明する。   First, before describing the details of the embodiment, the details and problems of the Shamir method and the asymmetric secret sharing method will be described.

<Shamir法>
Shamir法による秘密分散システムでは、n台のサーバに秘密情報が分散される。秘密情報のオーナは、秘密分散時にのみ存在するディーラに秘密情報の分散を依頼し、ディーラは、秘密分散演算を行うことによりn個の分散値を計算し、分散値をn台のサーバに分散して保管する。もしくは、秘密情報のオーナは、秘密分散時に自らディーラとなって秘密情報を分散する。一方、復元者は、n台のサーバに分散されたn個の分散値のうち、k個の分散値を集めることによって、秘密情報を復元することができる。Shamir法での秘密情報の分散及び復元は、以下に示すように行われる。
<Shamir method>
In a secret sharing system based on the Shamir method, secret information is distributed to n servers. The owner of the secret information requests the dealer existing only at the time of the secret sharing to distribute the secret information, and the dealer calculates the n distributed values by performing the secret sharing operation, and distributes the distributed values to the n servers. And store. Alternatively, the owner of the secret information becomes a dealer at the time of secret sharing and distributes the secret information. On the other hand, the recoverer can recover the secret information by collecting k distributed values among the n distributed values distributed to the n servers. Distribution and restoration of secret information in the Shamir method are performed as described below.

<分散>
1.ディーラは、s<pで、かつn<pである任意の素数pを選ぶ。なお、sは秘密情報を表す。
2.ディーラは、Z/pZから、異なるn個のx(i=1、2、…、n)を選び、選んだxをn台のサーバそれぞれのサーバIDとする。
3.ディーラは、Z/pZから、k−1個の乱数a(l=1、2、…、k−1)を選び、以下の(1)式(以下、「分散式」ともいう)を生成する。
<Dispersion>
1. The dealer chooses an arbitrary prime p where s <p and n <p. Note that s represents secret information.
2. The dealer selects n different xi (i = 1, 2,..., N) from Z / pZ, and sets the selected xi as the server ID of each of the n servers.
3. The dealer selects k−1 random numbers a 1 (l = 1, 2,..., K−1) from Z / pZ and generates the following equation (1) (hereinafter, also referred to as “dispersion equation”). I do.

4.ディーラは、上記(1)式のxに各サーバIDを代入して分散値Wを計算し、各サーバに(x、W)を配布する。 4. Dealer, by replacing the server ID in the x i of equation (1) to calculate a variance value W i, to distribute (x i, W i) to each server.

<復元>
1.復元に用いる分散値をW(i=1、2、…、k)とする。また、その分散値に対応するサーバIDをx(i=1、2、…、k)とする。
2.復元者は、k個の(x、W)を集め、集めたk個の(x、W)を上記(1)式に代入し、k個の連立方程式を解くことによって秘密情報であるsを復元する。なお、sを復元する際には、例えば、Lagrangeの補間公式を用いることができる。
<Restore>
1. The variance value used for restoration is W i (i = 1, 2,..., K). Also, let the server ID corresponding to the variance value be x i (i = 1, 2,..., K).
2. Restore person, secret information by the k (x i, W i) collected, the k (x i, W i) were substituted into the above equation (1) was collected, solve the k-number of simultaneous equations Is restored. When s is restored, for example, Lagrange's interpolation formula can be used.

<非対称秘密分散法>
クラウドシステムを構成するn台のサーバからt台(t<k)のサーバを選択し、選択したt台のサーバを鍵サーバとする。鍵サーバは、分散値を保管せず、擬似乱数を生成するための鍵情報を保管する。n台のサーバのうち、鍵サーバ以外のサーバをデータサーバと呼び、データサーバは、分散値を生成するユーザから送られた分散値を保管する。また、秘密情報を管理する各ユーザyには、ユーザを識別する情報であるID[y](y=1、…、r)が割り当てられているものとする。また、それぞれのユーザyが管理するm個の秘密情報s1j、…、smj(j=1、…、r)にも、それぞれ秘密情報を識別する情報であるdID[sij](i=1、…、m)が割り当てられているものとする。また、以下では、Enc(a、b)は、aをbという鍵を用いて暗号化する処理を表すものとする。
<Asymmetric secret sharing scheme>
T servers (t <k) are selected from the n servers constituting the cloud system, and the selected t servers are used as key servers. The key server does not store the variance value but stores key information for generating a pseudorandom number. A server other than the key server among the n servers is called a data server, and the data server stores the variance value sent from the user who generates the variance value. It is assumed that each user y who manages secret information is assigned an ID [y] (y = 1,..., R) that is information for identifying the user. Also, the m pieces of secret information s 1j ,..., S mj (j = 1,..., R) managed by each user y also have dID [s ij ] (i = 1,..., M) are assigned. In the following, Enc (a, b) represents a process of encrypting a using a key b.

<分散>
ここでは、ユーザyがディーラとなる場合を説明する。また、ここでは、説明を分かり易くするために、r=1とし、sijをsと表す。
1.ユーザyは、自身のID[y]を鍵サーバx、…、xに送る。
2.ID[y]を受け取った鍵サーバは、自身が有する暗号装置と鍵key(j=1、…、t)とを用いて、以下の(2)式により、Eid(y、j)を生成し、生成したEid(y、j)をユーザyに送る。
Eid(y,j)=Enc(ID[y],keyj) (j=1,…,t) …(2)
3.Eid(y、j)を受け取ったユーザyは、自身が管理する秘密情報sを識別するdID[s](i=1、…、m)を用いて、以下の(3)式により、擬似乱数qijを生成する。
qij=Enc(dID[si],Eid(y,j)) …(3)
4.まず、ユーザyは、式(1)のk−1次の分散式の係数ベクトルA(i)=[s、ai1、…、aik−1におけるk−1−t次の部分ベクトルA k−1−t=[ait+1、…、aik−1を、真性乱数を用いてiごとに定める。次に、ユーザyは、(3)式により生成したt次の擬似乱数系列Q=[qi1、…、qit及び鍵サーバのID系列を用いて、以下の(4)式により、残りの部分ベクトルA (i)=[ai1、…、aitをiごとに算出する。
<Dispersion>
Here, a case where the user y is a dealer will be described. Also, here, for simplicity of description, r = 1 and s ij is represented as s i .
1. User y sends the ID of its own [y] key server x 1, ..., to x t.
2. The key server that has received the ID [y] generates Eid (y, j) by the following equation (2) using the encryption device of the key server and the key key j (j = 1,..., T). Then, the generated Eid (y, j) is sent to the user y.
Eid (y, j) = Enc (ID [y], key j ) (j = 1,…, t)… (2)
3. User y is received the Eid (y, j), dID [s i] (i = 1, ..., m) for identifying the secret information s i it manages with, the following equation (3), Generate a pseudo-random number q ij .
q ij = Enc (dID [s i ], Eid (y, j))… (3)
4. First, the user y calculates the k-1-t-order part of the coefficient vector A (i) = [s i , a i1 ,..., A ik-1 ] T of the k−1-th dispersion equation of the equation (1). A vector A k−1−t = [a it + 1 ,..., A ik−1 ] T is determined for each i using a true random number. Next, the user y uses the t-order pseudo-random number sequence Q = [q i1 ,..., Q it ] T generated by the expression (3) and the ID sequence of the key server by the following expression (4). The remaining partial vectors A t (i) = [a i1 ,..., A it ] T are calculated for each i.

ここで、上記(4)式においてS=[s、…、sとすると、以下の(5)式で表される。
A(i)k-1=X'-1(Q-S) …(5)
これにより、ユーザyは、k−1次の分散式の係数ベクトルA(i)=[s、ai1、…、aik−1におけるk−1次の部分ベクトルA(i)k−1=[ai1、…、aik−1を全て求めることができる。
5.また、ユーザyは、データサーバxt+1、…、xに関する分散値Wit+1、…、Winを、4.の手順で生成した係数行列を用いて、(k、n)閾値秘密分散法と同様の手順により算出する。
6.ユーザyは、各データサーバに、生成した分散値W1j、…、Wmj(j=t+1、…、n)を送る。
Here, assuming that S = [s i ,..., S i ] T in the above equation (4), it is expressed by the following equation (5).
A (i) k-1 = X '-1 (QS)… (5)
As a result, the user y obtains the k-1 order partial vector A (i) k in the coefficient vector A (i) = [s i , a i1 ,..., A ik-1 ] T of the k−1 order dispersion equation. −1 = [a i1 ,..., A ik-1 ] T can all be obtained.
5. In addition, user y, the data server x t + 1, ..., the dispersion value W it + 1 on the x n, ..., the W in, 4. Is calculated by the same procedure as the (k, n) threshold secret sharing method using the coefficient matrix generated in the procedure described in (1).
6. The user y sends the generated variance values W 1j ,..., W mj (j = t + 1,..., N) to each data server.

<復元>
1.復元者は、n個のサーバx、…、xから任意のk個のサーバを選択し、選択したサーバに対して、ユーザyのID[y]及び秘密情報sのdID[s]を送る。
2.鍵サーバのうち、(ID[y]、dID[s])を受け取ったサーバは、自身の持つ鍵key及び暗号装置を利用して、(2)式によりEid(y、j)を生成し、(3)式により擬似乱数qijを生成する。そして、サーバは、生成した擬似乱数qijを復元者に送る。
3.データサーバのうち、(ID[y]、dID[s])を受け取ったサーバは、自身のサーバIDに対応する分散値Wijを復元者に送る。
4.復元者は、受け取った擬似乱数qij及び分散値Wijを用いて、(k、n)閾値秘密分散法と同様の手順により、秘密情報sを復元する。
<Restore>
1. Restoring user, n pieces of server x 1, ..., select any of the k server from x n, dID [s i relative to the selected server, ID of the user y [y] and the secret information s i ].
2. Among the key servers, the server that has received (ID [y], dID [s i ]) generates Eid (y, j) by the equation (2) using its own key j and encryption device. Then, a pseudo random number q ij is generated by equation (3). Then, the server sends the generated pseudo random number q ij to the reconstructor.
3. Among the data servers, the server that has received (ID [y], dID [s i ]) sends the variance value W ij corresponding to its own server ID to the reconstructor.
4. Restoring user, using the pseudo-random number q ij and variance values W ij received, (k, n) by the threshold secret sharing scheme and the same procedure, to restore the secret information s i.

しかしながら、Shamir法をはじめとする秘密分散法では、正当な復元者ではない攻撃者が、分散値が保管されているサーバを攻撃し、k個以上の分散値を得ることができれば、そのk個以上の分散値から秘密情報を復元できてしまう。また、非対称秘密分散法でも、攻撃者が鍵サーバ及びデータサーバにアクセスできる状態にあり、鍵を用いて生成した分散値を含め、k個の分散値を得ることができれば、秘密情報を復元することができてしまう。従って、Shamir法及び非対称秘密分散法を含む秘密分散法では、秘密情報のオーナが知らない間に、秘密情報が漏洩してしまう場合がある。   However, in the secret sharing method such as the Shamir method, if an attacker who is not a legitimate reconstructor can attack a server in which the shared value is stored and obtain k or more shared values, the k shared The secret information can be restored from the above variance value. Also, in the asymmetric secret sharing method, if the attacker can access the key server and the data server and can obtain k shared values including the shared value generated using the key, the secret information is restored. I can do it. Therefore, in the secret sharing method including the Shamir method and the asymmetric secret sharing method, the secret information may be leaked while the owner of the secret information does not know.

また、Shamir法及び非対称秘密分散法を含む秘密分散法では、攻撃者がサーバを乗っ取り、復元時に偽の分散値を出力した場合、復元者は、正しい秘密情報を復元できず、更に、復元した秘密情報の正当性を検証することもできない。   In the secret sharing method including the Shamir method and the asymmetric secret sharing method, when an attacker hijacks a server and outputs a false shared value at the time of restoration, the reconstructor cannot restore correct secret information. Nor can you verify the legitimacy of confidential information.

そこで、以下の実施形態では、以下の3つの問題点を解決する手法を説明する。
(A)秘密情報のオーナが知らない間に、秘密情報が漏洩する。
(B)偽の分散値が出力されても、それを検証することができない。
一方、一般に暗号技術では暗号文に相当するものは1つであるため、n=k=1と解釈できる。また、鍵を用いて暗号化しているために、k=1個の分散値に相当する暗号文が漏洩しても、鍵が安全に管理されていれば秘密情報は漏洩しない。従って、暗号技術では(A)は解決されているが、偽の暗号文が出力されると正しく復号できず、復号結果が乱数等である場合、それが正しいか検証できないのが一般的である。よって、暗号技術では(B)は解決されていない。一般に、秘密分散法及び暗号技術では、秘密情報、分散値、及び暗号文に対してMAC(Message Authentication Code)等の仕組みの異なる技術を用いて復号結果の正当性を検証できるが、秘密分散法又は暗号技術のみでは復号結果の正当性を検証することはできない。よって、(B)と同様の原理によって以下の(C)も解決する。
(C)暗号技術において偽の暗号文が出力されても、それを検証することができない。
Therefore, in the following embodiment, a method for solving the following three problems will be described.
(A) The secret information leaks while the owner of the secret information does not know.
(B) Even if a false variance value is output, it cannot be verified.
On the other hand, in general, there is only one ciphertext in the encryption technology, so that n = k = 1 can be interpreted. Also, since encryption is performed using a key, even if a ciphertext corresponding to k = 1 shared value leaks, secret information does not leak if the key is managed safely. Therefore, although (A) is solved by the cryptographic technology, it is generally impossible to correctly decrypt if a false ciphertext is output, and if the decryption result is a random number or the like, it is generally impossible to verify whether it is correct. . Therefore, (B) is not solved by the encryption technology. In general, in the secret sharing method and the encryption technology, the legitimacy of the decryption result can be verified by using a technology having a different mechanism such as a MAC (Message Authentication Code) for the secret information, the sharing value, and the ciphertext. Alternatively, it is not possible to verify the validity of the decryption result using only the encryption technique. Therefore, the following (C) is also solved by the same principle as (B).
(C) Even if a fake ciphertext is output in the cryptographic technique, it cannot be verified.

[第1実施形態]
まず、図1を参照して、本実施形態に係る秘密分散システム10の構成を説明する。図1に示すように、秘密分散システム10は、生成装置12、復元装置14、及び複数台のサーバ16を含む。生成装置12、復元装置14、及び複数台のサーバ16は、ネットワークNに接続され、互いに通信可能とされる。本実施形態に係る秘密分散システム10は、nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の分散値によって秘密情報を復元でき、k個未満では秘密情報を復元できないシステムである。
[First Embodiment]
First, the configuration of a 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 a generating device 12, a restoring device 14, and a plurality of servers 16. The generation device 12, the restoration device 14, and the plurality of servers 16 are connected to the network N and can communicate with each other. In the secret sharing system 10 according to the present embodiment, 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 the secret information is restored using k shared values. This is a system that cannot recover confidential information if the number is less than k.

生成装置12は、秘密情報のオーナ(以下、単に「オーナ」という)によって操作される装置であり、生成装置12の例としては、パーソナルコンピュータ等の情報処理装置が挙げられる。復元装置14は、秘密情報を復元する復元者(以下、単に「復元者」という)によって操作される装置であり、復元装置14の例としては、パーソナルコンピュータ等の情報処理装置が挙げられる。   The generation device 12 is a device operated by the owner of the secret information (hereinafter, simply referred to as “owner”), and an example of the generation device 12 is an information processing device such as a personal computer. 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.

前述したShamir法において(1)式を用いて分散値Wを生成する場合、(1)式にサーバIDであるxを代入し、xに対応する分散値Wを得る。従って、xは、分散値Wを識別する値であると言える。一般に、xが分からなければ、分散値Wをk個集めても秘密情報を復元することはできない。そこで、本実施形態では、以下に示す処理によって、攻撃者がk個の分散値Wを集めたとしても、秘密情報を復元できないようにする。 When generating a variance value W i using the aforementioned Shamir method (1), to obtain a dispersion value W i which substitutes the x i is a server ID, and corresponding to x i in equation (1). Therefore, it can be said that x i is a value for identifying the variance value W i . Generally, if x i is not known, secret information cannot be restored even if k variance values W i are collected. Therefore, in this embodiment, the processing described below, attacker even attracted the k dispersion value W i, so that can not be recovered secret information.

以下では、生成装置12は、1つの秘密鍵key、及びm(mは1以上の整数)個の秘密情報s、…、sを保管し、各秘密情報s(j=1、…、m)には、秘密情報sを識別する識別情報の一例としてのdID[s]が割り振られているものとする。また、前述したxを秘密情報毎に区別するためにxij(i=1、…、n、j=1、…、m)と表記する。また、分散値を保管するサーバ16(以下、「データサーバ16」ともいう)はn台準備されている。また、2≦t≦k−1とし、n−t(<k)台のサーバ16のxijは、予め定められているものとする。また、以下では、Enc(a、b)は、aをbという鍵を用いて暗号化することを意味し、a|bは、aの後にbを連結することを意味する。 In the following, generator 12 may include one private key key 0, and m (m is an integer of 1 or more) pieces of secret information s 1, ..., stores the s m, the secret s j (j = 1, .., M) are assigned dID [s j ] as an example of identification information for identifying the secret information s j . Further, x ij to differentiate x i mentioned above for each secret information (i = 1, ..., n , j = 1, ..., m) and denoted. Further, n servers 16 (hereinafter, also referred to as "data servers 16") for storing the variance value are prepared. In addition, it is assumed that 2 ≦ t ≦ k−1, and x ij of nt (<k) servers 16 is predetermined. In the following, Enc (a, b) means that a is encrypted using the key b, and a | b means that b is connected after a.

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

記憶部22は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、及びフラッシュメモリ等によって実現される。記憶媒体としての記憶部22には、生成プログラム28が記憶される。CPU20は、記憶部22から生成プログラム28を読み出してからメモリ21に展開し、展開した生成プログラム28を実行する。CPU20が生成プログラム28を実行することで、開示の技術の生成部として動作する。また、記憶部22には、前述した秘密鍵key及び秘密情報sが記憶される。 The storage unit 22 is realized by a hard disk drive (HDD), a solid state drive (SSD), a flash memory, and the like. The generation program 28 is stored in the storage unit 22 as a storage medium. The CPU 20 reads out the 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 generation program 28, it operates as a generation unit according to the disclosed technology. Also, the storage unit 22, a secret key key 0 and secret s j as described above is stored.

次に、図3を参照して、本実施形態に係る復元装置14のハードウェア構成を説明する。図3に示すように、復元装置14は、CPU30、一時記憶領域としてのメモリ31、不揮発性の記憶部32を含む。また、復元装置14は、液晶ディスプレイ等の表示装置33、キーボード等の入力装置34、及びネットワークNに接続されるネットワークI/F35を含む。CPU30、メモリ31、記憶部32、表示装置33、入力装置34、及びネットワークI/F35は、バス36に接続される。   Next, a hardware configuration of the restoration apparatus 14 according to the present embodiment will be described with reference to FIG. As shown in FIG. 3, the restoration device 14 includes a CPU 30, a memory 31 as a temporary storage area, and a nonvolatile storage unit 32. The restoration device 14 includes a display device 33 such as a liquid crystal display, an input device 34 such as a keyboard, and a network I / F 35 connected to the network N. The CPU 30, the memory 31, the storage unit 32, the display device 33, the input device 34, and the network I / F 35 are connected to the bus 36.

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

次に、図4及び図5を参照して、本実施形態に係る秘密分散システム10の作用を説明する。まず、図4を参照して、秘密情報を分散する分散処理を説明する。生成装置12のCPU20が生成プログラム28を実行することで、図4に示す分散処理を実行する。   Next, the operation of the secret sharing system 10 according to the present embodiment will be described with reference to FIGS. First, a distribution process for distributing secret information will be described with reference to FIG. When the CPU 20 of the generation device 12 executes the generation program 28, the distributed processing illustrated in FIG. 4 is executed.

図4のステップS10で、CPU20は、以下に示す(6)式に従って、秘密情報sを識別する識別情報dID[s]を、1つの秘密鍵keyを用いて変換することによって、t台のサーバ16に対応するt個のxijを生成する。このxijが分散値Wijの各々に対応する値の一例である。
xij=Enc(dID[sj]|i,key0) (i=1,…,t,j=1,…,m) …(6)
In step S10 of FIG. 4, the CPU 20 converts the identification information dID [s j ] for identifying the secret information s j using one secret key key 0 according to the following equation (6), thereby obtaining t t T x ij corresponding to one server 16 are generated. This x ij is an example of a value corresponding to each of the variance values W ij .
x ij = Enc (dID [s j ] | i, key 0 ) (i = 1,…, t, j = 1,…, m)… (6)

ステップS12で、CPU20は、k−1個の乱数a(l=1、…、k−1)を生成し、分散式(上記(1)式)を決定する。 In step S12, the CPU 20 generates k−1 random numbers a 1 (l = 1,..., K−1) and determines the distribution formula (formula (1)).

ステップS14で、CPU20は、ステップS10で生成したt個のxijと、予め定められたn−t個のxijとを用いて、ステップS12で決定した分散式に従って、各xijに対応する分散値Wijを算出する。ステップS16で、CPU20は、ステップS14で算出した分散値Wijを、対応するサーバ16に送信する。各サーバ16は、受信した分散値Wijを保管する。ステップS16の処理が終了すると、本分散処理が終了する。 In step S <b> 14, the CPU 20 uses the t x ij generated in step S <b> 10 and the predetermined nt x ij in accordance with the distribution equation determined in step S <b> 12 to correspond to each x ij . A variance value W ij is calculated. In step S16, the CPU 20 transmits the variance value W ij calculated in step S14 to the corresponding server 16. Each server 16 stores the received variance value W ij . When the processing in step S16 ends, the distributed processing ends.

次に、図5を参照して、図4に示す分散処理によって分散された分散値から、秘密情報を復元する復元処理を説明する。復元装置14のCPU30が復元プログラム38を実行することで、図5に示す復元処理を実行する。   Next, with reference to FIG. 5, a description will be given of a restoration process for restoring confidential information from the distribution value distributed by the distribution process shown in FIG. The restoration process shown in FIG. 5 is executed by the CPU 30 of the restoration device 14 executing the restoration program 38.

図5のステップS20で、CPU30は、dID[s]に対応する分散値Wijをk台のサーバ16から取得する。ステップS22で、CPU30は、xijが予め定められているn−t台のサーバ16以外のサーバ16に対応するxijの送信を要求する要求情報を生成装置12に送信する。 In step S20 in FIG. 5, the CPU 30 acquires the variance value W ij corresponding to dID [s j ] from the k servers 16. In step S <b> 22, the CPU 30 transmits to the generation device 12 request information requesting transmission of xij corresponding to servers 16 other than the nt servers 16 in which xij is predetermined.

オーナは、生成装置12が要求情報を受信した後、秘密情報の復元を許可する場合は、入力装置24を介して復元を許可する操作を行い、秘密情報の復元を許可しない場合は、入力装置24を介して復元を禁止する操作を行う。生成装置12のCPU20は、オーナにより復元を許可する操作が行われた場合に、ステップS10と同様の処理によりxijを生成し、生成したxijを復元装置14に送信する。また、CPU20は、オーナにより復元を禁止する操作が行われた場合は、xijを生成しない。すなわち、この場合、CPU20は、xijを復元装置14に送信しない。ただし、この送信処理はオーナによる入力装置24を介した操作がなくても、オーナが予め許可する条件を設定しておき、要求情報がその条件を満たす場合に自動的に送信を行い、満たさない場合に送信しないよう予めプログラム等により設定しておいても良い。これは、以降も同様である。 After the generation device 12 receives the request information, the owner performs an operation to permit the restoration of the secret information via the input device 24 when the restoration of the secret information is permitted. An operation for prohibiting restoration is performed via the program 24. When an operation to permit restoration is performed by the owner, the CPU 20 of the generation device 12 generates x ij by the same processing as in step S10, and transmits the generated x ij to the restoration device 14. Further, the CPU 20 does not generate x ij when an operation for prohibiting restoration is performed by the owner. That is, in this case, the CPU 20 does not transmit x ij to the restoration device 14. However, in this transmission processing, even if there is no operation by the owner via the input device 24, a condition permitted by the owner is set in advance, and when the request information satisfies the condition, the transmission is automatically performed, and the request is not satisfied. In such a case, a program or the like may be set in advance so as not to transmit. This is the same in the following.

ステップS24で、CPU30は、ステップS22での要求に対応して生成装置12から送信されたxijを受信したか否かを判定する。この判定が肯定判定となった場合は、処理はステップS26に移行する。 In step S24, the CPU 30 determines whether or not xij transmitted from the generation device 12 in response to the request in step S22. If this determination is affirmative, the process proceeds to step S26.

ステップS26で、CPU30は、ステップS20で取得した分散値Wij及びステップS24で受信したxijを用いて、(k、n)閾値秘密分散法と同様の手順により、秘密情報sを復元する。ステップS26の処理が終了すると、本復元処理が終了する。 In step S26, the CPU 30 restores the secret information s j by the same procedure as the (k, n) threshold secret sharing method, using the variance value W ij obtained in step S20 and x ij received in step S24. . When the processing in step S26 ends, the restoration processing ends.

一方、例えば、オーナが秘密情報の復元を禁止する操作を行ったことにより、ステップS22でxijの送信を要求してから所定期間を経過してもxijが受信されなかった場合、または拒絶信号が送付された場合、ステップS24の判定が否定判定となる。ステップS24の判定が否定判定となった場合は、ステップS26の処理は実行されずに本復元処理が終了する。 On the other hand, for example, if the owner by performing the operation for prohibiting restore the secret information, x ij is not received even after a predetermined period of time after requesting the transmission of x ij at step S22, or rejection If the signal has been sent, the determination in step S24 is negative. If the determination in step S24 is negative, the process of step S26 is not performed, and the restoration process ends.

ところで、Lagrangeの補間公式では、x座標が異なるk個の点(x、y)、…、(x、y)から、それらの点を通るk−1次以下の多項式W(x)を求めることができる。前述した非対称秘密分散法の分散の4.の処理は、Lagrangeの補間公式によって多項式を求めることを意味するが、xとyとの関係は入れ替えてもよい。このため、y座標が異なるk個の点(x、y)、…、(x、y)から、それらの点を通るk−1次以下の多項式F(y)を求めることもでき、求めた曲線はW(x)=F(y)となる。すなわち、本実施形態は、x座標を公開し、y座標を分散値として生成・秘匿していた従来の秘密分散法に対して、生成した分散値を公開し、その基となるx座標を生成・秘匿することに対応する。また、オーナは、ステップS22で送信された要求情報に対して復元を許可しない場合、復元を禁止する操作を行うことによってxijを復元装置14に送信しないことにより、秘密情報の復元を制御することができる。この結果、秘密情報のオーナが知らない間に、秘密情報が漏洩することを抑制することができる。また、非対称秘密分散法と同等以上の安全性を確保することができる。 By the way, according to the Lagrange's interpolation formula, from k points (x 1 , y 1 ),..., (X k , y k ) having different x coordinates, a polynomial W (x ). 3. Sharing of the asymmetric secret sharing method described above. Means that a polynomial is obtained by Lagrange's interpolation formula, but the relationship between x and y may be interchanged. Therefore, from k points (x 1 , y 1 ),..., (X k , y k ) having different y coordinates, a polynomial F (y) of degree k−1 or less passing through these points may be obtained. The obtained curve is W (x) = F (y). That is, in the present embodiment, the generated variance value is disclosed and the base x coordinate is generated based on the conventional secret sharing method in which the x coordinate is disclosed and the y coordinate is generated and concealed as a variance value.・ Correspond to concealment. When the owner does not permit the restoration of the request information transmitted in step S22, the owner controls the restoration of the confidential information by not performing the operation of inhibiting the restoration and not transmitting xij to the restoration device 14. be able to. As a result, it is possible to suppress leakage of the secret information while the owner of the secret information does not know. Further, security equal to or higher than that of the asymmetric secret sharing scheme can be ensured.

なお、本実施形態では、分散処理のステップS10で、dID[s]とiとを連結して得られた情報を、keyを用いて暗号化することによってxijを生成する場合について説明したが、これに限定されない。例えば、iを、keyを用いて暗号化することによってkeyを生成し、dID[s]を、keyを用いて暗号化することによってxijを生成してもよい。また、例えば、dID[s]を、keyを用いて暗号化することによってkeyを生成し、iを、keyを用いて暗号化することによってxijを生成してもよい。 In the present embodiment, a description will be given of a case where x ij is generated by encrypting information obtained by concatenating dID [s j ] and i with key 0 in step S10 of the distributed processing. However, the present invention is not limited to this. For example, key i may be generated by encrypting i using key 0, and x ij may be generated by encrypting dID [s j ] using key i . Further, for example, key j may be generated by encrypting dID [s j ] using key 0, and x ij may be generated by encrypting i using key j .

また、本実施形態では、t個のxijを生成し、残りのn−t個のxijが予め定められている場合について説明したが、これに限定されない。分散処理のステップS10で、n個全てのxij(i=1、…、n)を生成してもよい。この場合、復元処理のステップS22で、復元に必要な全てのxijの送信を要求する要求情報を生成装置12に送信する形態が例示される。 In the present embodiment, a case has been described in which t x ij are generated and the remaining nt x ij are predetermined, but the present invention is not limited to this. In step S10 of the distributed processing, all n x ij (i = 1,..., N) may be generated. In this case, in step S22 of the restoration process, an example in which request information for requesting transmission of all x ij necessary for restoration is transmitted to the generation device 12 is exemplified.

[第2実施形態]
開示の技術の第2実施形態を説明する。なお、秘密分散システム10の構成(図1参照)、生成装置12のハードウェア構成(図2参照)、及び復元装置14のハードウェア構成(図3参照)は、第1実施形態と同様であるため説明を省略する。
[Second embodiment]
A second embodiment of the disclosed technology will be described. The configuration of the secret sharing system 10 (see FIG. 1), the hardware configuration of the generation device 12 (see FIG. 2), and the hardware configuration of the restoration device 14 (see FIG. 3) are the same as those in the first embodiment. Therefore, the description is omitted.

前述した非対称秘密分散法は、復元時に秘密情報のオーナによる復元の許諾処理を導入していないため、鍵サーバを含めてk個の分散値を得ることができたユーザは、攻撃者であっても秘密情報を復元できる。また、ユーザが複数人いることを想定した場合、特定のオーナが鍵サーバを管理することができない。また、ユーザを1人とし、そのユーザ(すなわち、秘密情報のオーナ)が全ての鍵サーバを管理する、すなわち、非対称秘密分散法の<分散>の1.及び2.の処理をオーナが行えば、k−1個までの分散値をオーナが生成できるが、<復元>においてオーナによる復元の許諾処理を含んでいない。また、非対称秘密分散法では、鍵サーバがあることを前提とするため、鍵サーバが保管する鍵を用いて分散値を生成する手順に固定されている。本実施形態では、より汎用的な形とした手法を説明する。この手法により、上記(A)の問題点が汎用的に解決される。   Since the above-mentioned asymmetric secret sharing scheme does not introduce a process of permitting restoration of secret information by the owner at the time of restoration, the user who can obtain k shared values including the key server is an attacker. Can also recover confidential information. When it is assumed that there are a plurality of users, a specific owner cannot manage the key server. In addition, one user is used, and the user (that is, the owner of the secret information) manages all key servers, that is, <1> of <sharing> of the asymmetric secret sharing method. And 2. Is performed by the owner, the owner can generate up to k-1 variance values, but <restoration> does not include permission processing for restoration by the owner. Further, in the asymmetric secret sharing scheme, since it is assumed that there is a key server, the procedure for generating a shared value using a key stored in the key server is fixed. In the present embodiment, a more general-purpose method will be described. According to this method, the problem (A) is universally solved.

なお、本実施形態では、全てのサーバ16のサーバID(xij)は予め定められており、公開されているものとする。また、本実施形態では、サーバ16のうち、鍵サーバとして機能するサーバ16を「鍵サーバ16」といい、データサーバとして機能するサーバ16を「データサーバ16」という。ただし、鍵サーバ16は生成装置12内に存在するため、図において明示されているサーバ16はデータサーバ16であり、n−t台準備されている。それ以外の前提は第1実施形態と同様である。 In the present embodiment, it is assumed that the server IDs (x ij ) of all the servers 16 are determined in advance and are publicly available. In the present embodiment, among the servers 16, the server 16 functioning as a key server is referred to as a "key server 16", and the server 16 functioning as a data server is referred to as a "data server 16". However, since the key server 16 exists in the generation device 12, the server 16 specified in the figure is the data server 16, and nt units are prepared. The other assumptions are the same as in the first embodiment.

図6及び図7を参照して、本実施形態に係る秘密分散システム10の作用を説明する。まず、図6を参照して、本実施形態に係る秘密情報を分散する分散処理を説明する。生成装置12のCPU20が生成プログラム28を実行することで、図6に示す分散処理を実行する。   The operation of the secret sharing system 10 according to the present embodiment will be described with reference to FIGS. First, a distribution process for distributing secret information according to the present embodiment will be described with reference to FIG. When the CPU 20 of the generation device 12 executes the generation program 28, the distributed processing illustrated in FIG. 6 is executed.

図6のステップS30で、CPU20は、以下に示す(7)式に従って、秘密情報sを識別する識別情報dID[s]を、1つの秘密鍵keyを用いて変換することによって、t個のxij(i=1、…、t)に対応する分散値qijを生成する。
qij=Enc(dID[sj]|i,key0) (i=1,…,t,j=1,…,m) …(7)
In step S30 in FIG. 6, the CPU 20 converts the identification information dID [s j ] for identifying the secret information s j using one secret key key 0 according to the following equation (7), thereby obtaining t t A variance q ij corresponding to x ij (i = 1,..., T) is generated.
q ij = Enc (dID [s j ] | i, key 0 ) (i = 1,…, t, j = 1,…, m)… (7)

ステップS32で、CPU20は、上記(1)式のk−1次の分散式の係数ベクトルA(i)=[s、ai1、…、aik−1におけるk−1−t次の部分ベクトルA k−1−t=[ait+1、…、aik−1を、真性乱数を用いてiごとに定める。その後、CPU20は、ステップS30で生成したt個の擬似乱数であるqijからなるQ=[qi1、…、qit及び鍵サーバ16のID系列を用いて、以下の(8)式に従って、分散式のk−1次の部分ベクトルA(i)k−1=[ai1、…、aik−1における残りの部分ベクトルA (i)=[ai1、…、aitをiごとに算出する。 In step S32, the CPU 20 determines the coefficient vector A (i) of the k−1-th order dispersion equation of the above equation (1) = k−1−t order in [s i , a i1 ,..., A ik-1 ] T The partial vector A k−1−t = [a it + 1 ,..., A ik−1 ] T is determined for each i using a true random number. Thereafter, the CPU 20 uses Q = [q i1 ,..., Q it ] T composed of the t pseudo random numbers q ij generated in step S30 and the ID series of the key server 16 to obtain the following equation (8). according, the dispersion equation k-1 order partial vectors a (i) k-1 = [a i1, ..., a ik-1] the remainder of the vector a 't (i) in T = [a i1, ..., a it ] T is calculated for each i.

ステップS34で、CPU20は、サーバIDがxit+1、…、xinであるデータサーバ16に関する分散値Wit+1、…、Winを、ステップS32で生成した係数行列を用いて、(k、n)閾値秘密分散法と同様の手順により算出する。 In step S34, CPU 20, the server ID is x it + 1, ..., variance W it + 1 on the data server 16 is x in, ..., a W in, using the generated coefficient matrix in step S32, (k, n) It is calculated by the same procedure as the threshold secret sharing method.

ステップS36で、CPU20は、ステップS34で算出した分散値Wij(j=t+1、…、n)を、対応するデータサーバ16に送信する。各データサーバ16は、受信した分散値Wijを保管する。ステップS36の処理が終了すると、本分散処理が終了する。 In step S36, the CPU 20 transmits the variance value W ij (j = t + 1,..., N) calculated in step S34 to the corresponding data server 16. Each data server 16 stores the received variance value W ij . When the processing in step S36 ends, the distributed processing ends.

次に、図7を参照して、図6に示す分散処理によって分散された分散値から、秘密情報を復元する復元処理を説明する。復元装置14のCPU30が復元プログラム38を実行することで、図7に示す復元処理を実行する。   Next, with reference to FIG. 7, a description will be given of a restoration process for restoring secret information from a shared value distributed by the sharing process illustrated in FIG. The restoration processing shown in FIG. 7 is executed by the CPU 30 of the restoration device 14 executing the restoration program 38.

図7のステップS40で、CPU30は、dID[s]に対応する分散値の送信を要求する要求情報を生成装置12に送信する。オーナは、生成装置12が要求情報を受信した後、秘密情報の復元を許可する場合は、入力装置24を介して復元を許可する操作を行い、秘密情報の復元を許可しない場合は、入力装置24を介して復元を禁止する操作を行う。生成装置12のCPU20は、オーナにより復元を許可する操作が行われた場合に、ステップS30と同様の処理により分散値qijを生成し、生成した分散値qijを復元装置14に送信する。また、CPU20は、オーナにより復元を禁止する操作が行われた場合は、分散値qijを生成しない。すなわち、この場合、CPU20は、分散値qijを復元装置14に送信しない。 In step S40 of FIG. 7, the CPU 30 transmits request information requesting transmission of the variance value corresponding to dID [s j ] to the generation device 12. After the generation device 12 receives the request information, the owner performs an operation to permit the restoration of the secret information via the input device 24 when the restoration of the secret information is permitted. An operation for prohibiting restoration is performed via the program 24. When an operation to permit restoration is performed by the owner, the CPU 20 of the generation device 12 generates a variance value q ij by the same processing as in step S30, and transmits the generated variance value q ij to the restoration device 14. Further, when an operation to prohibit restoration is performed by the owner, the CPU 20 does not generate the variance value q ij . That is, in this case, the CPU 20 does not transmit the variance value q ij to the restoration device 14.

ステップS42で、CPU30は、ステップS40での要求に対応して生成装置12から送信された分散値qijを受信したか否かを判定する。この判定が肯定判定となった場合は、処理はステップS44に移行する。 In step S42, the CPU 30 determines whether or not the variance value q ij transmitted from the generation device 12 in response to the request in step S40 has been received. If this determination is affirmative, the process proceeds to step S44.

ステップS44で、CPU30は、データサーバ16のWijと合わせて得られたk個の分散値を用いて、秘密情報sを復元する。ステップS44の処理が終了すると、本復元処理が終了する。 In step S44, the CPU 30 restores the secret information s j using the k variance values obtained together with W ij of the data server 16. When the processing in step S44 ends, the present restoration processing ends.

一方、例えば、ステップS40で分散値qijの送信を要求してから所定期間を経過しても分散値qijが受信されなかった場合等では、ステップS42の判定が否定判定となる。ステップS42の判定が否定判定となった場合は、ステップS44の処理は実行されずに本復元処理が終了する。 On the other hand, for example, when the variance value q ij is not received even after a predetermined period has elapsed after requesting the transmission of the variance value q ij in step S40, the determination in step S42 is negative. If the determination in step S42 is negative, the process in step S44 is not performed, and the restoration process ends.

なお、本実施形態では、分散処理のステップS30で、dID[s]とiとを連結して得られた情報を、keyを用いて暗号化することによってqijを生成する場合について説明したが、これに限定されない。例えば、iを、keyを用いて暗号化することによってkeyを生成し、dID[s]を、keyを用いて暗号化することによってqijを生成してもよい。また、例えば、dID[s]を、keyを用いて暗号化することによってkeyを生成し、iを、keyを用いて暗号化することによってqijを生成してもよい。 In the present embodiment, a case will be described where qij is generated by encrypting information obtained by concatenating dID [s j ] and i with key 0 in step S30 of the distributed processing. However, the present invention is not limited to this. For example, key i may be generated by encrypting i using key 0, and q ij may be generated by encrypting dID [s j ] using key i . Also, for example, key j may be generated by encrypting dID [s j ] using key 0, and q ij may be generated by encrypting i using key j .

[第3実施形態]
開示の技術の第3実施形態を説明する。なお、秘密分散システム10の構成(図1参照)、生成装置12のハードウェア構成(図2参照)、及び復元装置14のハードウェア構成(図3参照)は、第1実施形態と同様であるため説明を省略する。
[Third embodiment]
A third embodiment of the disclosed technology will be described. The configuration of the secret sharing system 10 (see FIG. 1), the hardware configuration of the generation device 12 (see FIG. 2), and the hardware configuration of the restoration device 14 (see FIG. 3) are the same as those in the first embodiment. Therefore, the description is omitted.

第1実施形態では分散値を識別するxijを1つの秘密鍵keyを用いて生成し、第2実施形態では分散値qijを1つの秘密鍵keyを用いて生成する形態例を説明したが、本実施形態では、これらの形態例を組み合わせた形態例を説明する。この組み合わせによって、上記(A)の問題点に加え、上記(B)の問題点も解決することができる。 In the first embodiment, an example in which x ij for identifying a shared value is generated using one secret key key 0 and in the second embodiment, a shared value q ij is generated using one secret key key 0 will be described. However, in the present embodiment, an embodiment in which these embodiments are combined will be described. This combination can solve the problem (B) in addition to the problem (A).

一般に、秘密情報sは、k個の分散値yと、分散値yを識別するk個の値xとを用いて、Lagrangeの補間公式から以下に示すように求められる。x座標が異なるk個の点(x、y)、(x、y)、…、(x、y)を通るk−1次以下の多項式W(x)は以下の(9)式で表される。 In general, the secret information s is a k-number of variance values y i, using the k number of values x i identifies the variance value y i, determined as follows from the interpolation formula to Lagrange. A polynomial W (x) of degree k−1 or less passing k points (x 1 , y 1 ), (x 2 , y 2 ),..., (x k , y k ) having different x-coordinates is 9) It is expressed by the equation.

ただし、   However,

とする。従って、秘密情報sはW(0)の値となる。ここで、サーバ16が攻撃者に乗っ取られ、乗っ取られたサーバ16が偽の値y+Δyを出力した場合、偽のW(0)は以下に示す(10)式で表される。 And Therefore, the secret information s has the value of W (0). Here, when the server 16 is hijacked by the attacker and the hijacked server 16 outputs a false value y i + Δy i , the false W (0) is expressed by the following equation (10).

例えば、1回目の復元で偽の分散値y+Δyがサーバ16から出力されてW(0)が復元され、2回目の復元で1回目とは異なる偽のy+Δyがサーバ16から出力されてW’’(0)が復元された場合、その差分は以下に示す(11)式で表される。 For example, in the first restoration, a false variance value y i + Δy i is output from the server 16 to restore W (0), and in the second restoration, a false y j + Δy j that is different from the first restoration is added to the server 16. If is output W '' (0) is restored from the difference is represented by shown below (11).

従って、ΔyとΔyとに以下に示す(12)式の関係があれば、W(0)とW’’(0)との差分は0となる、すなわち、1回目と2回目とにそれぞれ復元された秘密情報が一致する。このため、この場合、復元された秘密情報が偽りの値であることは判定できない。 Therefore, if Δy i and Δy j have the relationship of the following equation (12), the difference between W (0) and W (0) is 0, that is, the first and second times are different. The secret information restored respectively matches. Therefore, in this case, it cannot be determined that the restored secret information has a false value.

しかしながら、   However,

は、全てのxが特定できなければ定まらない。従って、攻撃者にとって未知のxが存在する場合、攻撃者は乗っ取ったサーバ16に対して、W(0)とW’’(0)との差分が0となるΔy及びΔyを設定することができない。 Is not determined unless all x k can be specified. Therefore, if the unknown x k exists for an attacker against the attacker server 16 the compromised, W a '(0) and W' '(0) difference between becomes 0 [Delta] y i and [Delta] y j Cannot be set.

そこで、本実施形態では、以下に示す処理を行うことによって、秘密情報の漏洩に関する上記(A)の問題点、及び秘密情報の改ざんに関する上記(B)の問題点の双方を解決する。なお、以下では、第2実施形態と同様にサーバ16はデータサーバ16のみでn−t台準備され、そのデータサーバ16のサーバIDであるxijは予め定められ、かつ公開されているものとする。また、n>kであり、これら以外の前提は第1実施形態と同様とする。 Therefore, in the present embodiment, both the problem (A) relating to leakage of secret information and the problem (B) relating to falsification of secret information are solved by performing the following processing. In the following, as in the second embodiment, nt servers 16 are prepared using only the data server 16 and the server ID x ij of the data server 16 is predetermined and publicly available. I do. In addition, n> k, and other assumptions are the same as in the first embodiment.

図8及び図9を参照して、本実施形態に係る秘密分散システム10の作用を説明する。まず、図8を参照して、本実施形態に係る秘密情報を分散する分散処理を説明する。生成装置12のCPU20が生成プログラム28を実行することで、図8に示す分散処理を実行する。   The operation of the secret sharing system 10 according to the present embodiment will be described with reference to FIGS. First, a distribution process for distributing secret information according to the present embodiment will be described with reference to FIG. When the CPU 20 of the generation device 12 executes the generation program 28, the distributed processing illustrated in FIG. 8 is executed.

図8のステップS50で、CPU20は、以下に示す(13)式に従って、秘密情報sを識別する識別情報dID[s]を、1つの秘密鍵keyを用いて変換することによって、t台のサーバ16に対応するt個のxijを生成する。
xij=Enc(dID[sj]|i|0,key0) (i=1,…,t,j=1,…,m) …(13)
At step S50 in FIG. 8, the CPU 20 converts the identification information dID [s j ] for identifying the secret information s j using one secret key key 0 according to the following equation (13), thereby obtaining t t T x ij corresponding to one server 16 are generated.
x ij = Enc (dID [s j ] | i | 0, key 0 ) (i = 1,…, t, j = 1,…, m)… (13)

ステップS52で、CPU20は、以下に示す(14)式に従って、秘密情報sを識別する識別情報dID[s]を、1つの秘密鍵keyを用いて変換することによって、t個のxij(i=1、…、t)に対応する分散値qijを生成する。
qij=Enc(dID[sj]|i|1,key0) (i=1,…,t,j=1,…,m) …(14)
In step S52, the CPU 20 converts the identification information dID [s j ] for identifying the secret information s j using one secret key key 0 according to the following equation (14), thereby obtaining t x x Generate a variance value q ij corresponding to ij (i = 1,..., t).
q ij = Enc (dID [s j ] | i | 1, key 0 ) (i = 1,…, t, j = 1,…, m)… (14)

このように、本実施形態では、ステップS50で生成されるt(≦k−1)個のxijは、連結させる値(xijは0、qijは1)を異ならせることにより、分散値qijとは異なる値として生成される。連結させる値は0及び1を用いたがこれに限られず、任意の値を用いてもよい。 As described above, in the present embodiment, the t (≦ k−1) x ij generated in step S50 is different from the variance value (x ij is 0, q ij is 1) by changing the values to be linked. It is generated as a value different from q ij . The values to be linked are 0 and 1, but are not limited thereto, and any value may be used.

ステップS54で、CPU20は、ステップS50、S52で生成した値を用いて、t個の分散値qij以外の分散値Wit+1、…、Winを求めるための係数を算出する。具体的には、CPU20は、上記(1)式のk−1次の分散式の係数ベクトルA(i)=[s、ai1、…、aik−1におけるk−1−t次の部分ベクトルA k−1−t=[ait+1、…、aik−1を、真性乱数を用いてiごとに定める。その後、CPU20は、ステップS50で生成したt個の擬似乱数であるqijからなるQ=[qi1、…、qit及びステップS52で生成した鍵サーバ16のID系列を用いて、以下の(15)式に従って、分散式のk−1次の部分ベクトルA(i)k−1=[ai1、…、aik−1における残りの部分ベクトルA (i)=[ai1、…、aitをiごとに算出する。 In step S54, CPU 20 uses the generated value in step S50, S52, variance W it + 1 other than the t distribution value q ij, ..., and calculates the coefficients for calculating the W in. Specifically, the CPU 20 calculates the coefficient vector A (i) of the k−1-th order dispersion equation of the above equation (1) = k−1−t in [s i , a i1 ,..., A ik−1 ] T. The next partial vector A k−1−t = [a it + 1 ,..., A ik−1 ] T is determined for each i using a true random number. Thereafter, the CPU 20 uses Q = [q i1 ,..., Q it ] T composed of the t pseudo-random numbers q ij generated in step S50 and the ID series of the key server 16 generated in step S52, according to (15), the dispersion equation k-1 order partial vectors a (i) k-1 = [a i1, ..., a ik-1] the remainder of the vector a 't (i) in T = [ a i1 ,... a it ] T is calculated for each i.

ステップS56で、CPU20は、サーバIDがxit+1、…、xinであるデータサーバ16に関する分散値Wit+1、…、Winを、ステップS54で生成した係数行列を用いて、(k、n)閾値秘密分散法と同様の手順により算出する。 In step S56, CPU 20, the server ID is x it + 1, ..., variance W it + 1 on the data server 16 is x in, ..., a W in, using the generated coefficient matrix in step S54, (k, n) It is calculated by the same procedure as the threshold secret sharing method.

ステップS58で、CPU20は、ステップS56で算出した分散値Wij(j=t+1、…、n)を、対応するデータサーバ16に送信する。各データサーバ16は、受信した分散値Wijを保管する。ステップS58の処理が終了すると、本分散処理が終了する。 In step S58, the CPU 20 transmits the variance value W ij (j = t + 1,..., N) calculated in step S56 to the corresponding data server 16. Each data server 16 stores the received variance value W ij . When the processing in step S58 ends, the distributed processing ends.

次に、図9を参照して、図8に示す分散処理によって分散された分散値から、秘密情報を復元する復元処理を説明する。復元装置14のCPU30が復元プログラム38を実行することで、図9に示す復元処理を実行する。   Next, with reference to FIG. 9, a description will be given of a restoration process for restoring secret information from a shared value distributed by the sharing process illustrated in FIG. The restoration process shown in FIG. 9 is executed by the CPU 30 of the restoration device 14 executing the restoration program 38.

図9のステップS60で、CPU30は、データサーバ16に保管されているk−t+u個の分散値Wijを受信する。なお、uは、検証用の分散値の数(1以上の整数)を表す。ステップS62で、CPU30は、t個の分散値と、その分散値を識別するためのxijとの送信を要求する要求情報を生成装置12に送信する。オーナは、生成装置12が要求情報を受信した後、秘密情報の復元を許可する場合は、入力装置24を介して復元を許可する操作を行い、秘密情報の復元を許可しない場合は、入力装置24を介して復元を禁止する操作を行う。生成装置12のCPU20は、オーナにより復元を許可する操作が行われた場合に、ステップS50、S52と同様の処理によりxij及び分散値qijを生成し、生成したxij及び分散値qijを復元装置14に送信する。また、CPU20は、オーナにより復元を禁止する操作が行われた場合は、xij及び分散値qijを生成しない。すなわち、この場合、CPU20は、xij及び分散値qijを復元装置14に送信しない。 In step S60 of FIG. 9, the CPU 30 receives kt + u variance values W ij stored in the data server 16. Note that u represents the number of variance values for verification (an integer of 1 or more). In step S62, the CPU 30 transmits, to the generation device 12, request information for requesting transmission of t variance values and xij for identifying the variance values. After the generation device 12 receives the request information, the owner performs an operation to permit the restoration of the secret information via the input device 24 when the restoration of the secret information is permitted. An operation for prohibiting restoration is performed via the program 24. The CPU 20 of the generation device 12 generates x ij and the variance value q ij by the same processing as steps S50 and S52 when the operation of permitting the restoration is performed by the owner, and generates the generated x ij and the variance value q ij. Is transmitted to the restoration device 14. Further, when an operation to prohibit restoration is performed by the owner, the CPU 20 does not generate the x ij and the variance q ij . That is, in this case, the CPU 20 does not transmit the x ij and the variance q ij to the restoration device 14.

ステップS64で、CPU30は、ステップS62での要求に対応して生成装置12から送信されたxij及び分散値qijを受信したか否かを判定する。この判定が肯定判定となった場合は、処理はステップS66に移行する。 In step S64, the CPU 30 determines whether or not the x ij and the variance q ij transmitted from the generation device 12 in response to the request in step S62 have been received. If this determination is affirmative, the process proceeds to step S66.

ステップS66で、CPU30は、得られたk+u個のqij、Wij、及びxijを用いて、データサーバ16から得られた分散値Wijを異ならせて(qijは同一)、秘密情報sをu+1回復元する。換言すると、CPU30は、ステップS54で生成された係数を用いてステップS56で同一の秘密情報から生成された異なる分散値の組み合わせによって、秘密情報を2回以上復元する。 In step S66, CPU 30 is obtained k + u pieces of q ij, W ij, and with x ij, and a value of dispersion different W ij obtained from the data server 16 (q ij are the same), the secret information Restore s j u + 1 times. In other words, the CPU 30 restores the secret information two or more times by using the coefficient generated in step S54 and combining different shared values generated from the same secret information in step S56.

ステップS68で、CPU30は、ステップS66で復元したu+1個の秘密情報sを用いて、復元した秘密情報sを検証する。具体的には、CPU30は、ステップS66で復元したu+1個の秘密情報sが一致した場合は、その秘密情報sは正しいと判断し、異なる場合は、その秘密情報sは不正である、すなわち、データサーバ16の少なくとも1台が攻撃されたと判断する。CPU30は、秘密情報sが正しいと判断した場合は、その秘密情報sを用いた処理を行う。一方、CPU30は、秘密情報sが不正であると判断した場合は、例えば、表示装置33にエラーメッセージを表示する。ステップS68の処理が終了すると、本復元処理が終了する。 In step S68, CPU 30 uses the recovered u + 1 pieces of secret information s j in step S66, the verifying secret information s j which restored. Specifically, when u + 1 pieces of secret information s j restored in step S66 match, CPU 30 determines that secret information s j is correct, and when different, secret information s j is incorrect. That is, it is determined that at least one of the data servers 16 has been attacked. When determining that the secret information s j is correct, the CPU 30 performs a process using the secret information s j . On the other hand, if the CPU 30 determines that the secret information s j is invalid, it displays an error message on the display device 33, for example. When the processing in step S68 ends, the present restoration processing ends.

一方、例えば、ステップS62でxij及び分散値qijの送信を要求してから所定期間を経過してもxij及び分散値qijが受信されなかった場合等では、ステップS64の判定が否定判定となる。ステップS64の判定が否定判定となった場合は、ステップS66、S68の処理は実行されずに本復元処理が終了する。 On the other hand, for example, in such case where x ij and x ij and variance values q ij be transmitted from the requesting after the lapse of a predetermined period of variance q ij is not received in step S62, a negative determination of step S64 Judgment. If the determination in step S64 is negative, the restoration processing ends without executing the processing in steps S66 and S68.

以下に具体例を用いて説明する。例えば、k=3、n=4、t=2、u=n−k=1とした場合、生成装置12はt=2より2台分の鍵サーバ16を含むため、それをx、xとし、x、xに対応する分散値qijを生成する。また、この場合、データサーバ16はn−t=2より2台存在し、そのサーバIDであるx、xは公開されている。この2台のデータサーバ16が、攻撃者により乗っ取られ、偽の分散値y+Δy、y+Δyを出力する場合を考える。 This will be described below using a specific example. For example, when k = 3, n = 4, t = 2, and u = nk = 1, the generation device 12 includes two key servers 16 since t = 2, and therefore, generates x 1 and x 1 2, and a variance value q ij corresponding to x 1 and x 2 is generated. In this case, there are two data servers 16 since nt = 2, and their server IDs x 3 and x 4 are disclosed. Consider a case where these two data servers 16 are hijacked by an attacker and output false variance values y 3 + Δy 3 and y 4 + Δy 4 .

この場合、復元装置14は、外部からの分散値を異ならせて復元処理を行う、すなわち1回目はx、x、xの組み合わせによって秘密情報の復元を行い、2回目はx、x、xの組み合わせによって秘密情報の復元を行う。ここで、x、xは生成装置12が生成した分散値を識別する値であるため、攻撃者はx、xを知ることはできない。この場合、1回目の復元によって、以下の(16)式に示す偽のW(0)が復元される。 In this case, the restoring device 14 performs the restoring process by changing the external variance value. That is, the restoring device 14 restores the secret information by a combination of x 1 , x 2 , and x 3 at the first time, and performs the x 1 , to restore the secret information by a combination of x 2, x 4. Here, since x 1 and x 2 are values for identifying the variance value generated by the generation device 12, the attacker cannot know x 1 and x 2 . In this case, false W (0) shown in the following equation (16) is restored by the first restoration.

また、この場合、2回目の復元によって、以下の(17)式に示す偽のW’’(0)が復元される。 In this case, the false restoration W (0) shown in the following expression (17) is restored by the second restoration.

ここで、x、xに対応する2台のデータサーバ16が同一の攻撃者によって乗っ取られたとしても、その攻撃者は、x、xを知ることはできないため、以下の(18)式の関係のΔy及びΔyを設定することができない。このため、W(0)とW’’(0)とは一致しない。従って、復元装置14は、データサーバ16から偽の分散値が出力されたことを検証することができる。 Here, even if two data servers 16 corresponding to x 3 and x 4 are hijacked by the same attacker, the attacker cannot know x 1 and x 2 , so the following (18) ) Can not set Δy 3 and Δy 4 . For this reason, W (0) does not match W (0). Therefore, the restoration device 14 can verify that the data server 16 has output a fake variance value.

上記の例では、u=1とし、xに対応するデータサーバ16の他に、xに対応するデータサーバ16から検証用の分散値を得ている。この場合、2台のデータサーバ16のうちの何れか、又は双方が不正であるかは判断できない。 In the above example, and u = 1, in addition to the data server 16 corresponding to x 3, to obtain a dispersion value for the verification from the data server 16 corresponding to x 4. In this case, it cannot be determined whether one or both of the two data servers 16 are unauthorized.

例えば、k=3、n=5、t=2、u=n−k=2とすれば、3台のデータサーバ16が存在し、xの他に2つの分散値を検証用に使用することができる。ここで、xに対応するデータサーバ16のみが乗っ取られ、偽の分散値y+Δyを出力する場合を考える。この場合、x、xに対応する分散値を用いて2回の復元により得られた2つの秘密情報は、Δy=Δy=0となるため一致し、xに対応する分散値を用いて復元された秘密情報のみが他の秘密情報と異なる。すなわち、この場合、不正なデータサーバ16を特定することができる。 For example, if k = 3, n = 5, t = 2, u = n-k = 2, there are three data server 16, used for validation in addition to the two dispersion values of x 3 be able to. Here, only the data server 16 corresponding to x 5 is hijacked, consider the case of outputting a variance value y 5 + Δy 5 false. In this case, the two secret information obtained by performing the two restorations using the variance values corresponding to x 3 and x 4 are equal because Δy 3 = Δy 4 = 0, and the variance values corresponding to x 5 Only the confidential information restored using is different from other confidential information. That is, in this case, the unauthorized data server 16 can be specified.

また、2台のデータサーバ16が乗っ取られた場合、3回の復元により得られた3つの秘密情報が全て異なるため、この場合は、2台以上のデータサーバ16が不正であると判断することができる。従って、乗っ取られて偽の分散値を出力するデータサーバ16の数をeとした場合、e<uであれば、不正なデータサーバ16を特定することができる。   Also, if two data servers 16 are hijacked, all three pieces of secret information obtained by the three restorations are different, so in this case, it is determined that two or more data servers 16 are illegal. Can be. Accordingly, if the number of data servers 16 that are hijacked and output a fake variance value is e, if e <u, an unauthorized data server 16 can be specified.

なお、本実施形態では、分散処理のステップS50、S52において分散値qijと、分散値qijを識別するxijとを異なる数(本実施形態では0と1)を連結させることによって異なる値として生成する場合について説明したが、これに限定されない。xijと分散値qijとは異なる値であれば、他の任意の手法によって生成してもよい。 In the present embodiment, in steps S50 and S52 of the distributed processing, the variance value q ij and the x ij for identifying the variance value q ij are different values by connecting different numbers (0 and 1 in the present embodiment). However, the present invention is not limited to this. Any other method may be used as long as x ij is different from variance q ij .

また、本実施形態では、分散処理のステップS50、S52においてxij及び分散値qijをdID[s]、i、及び0(又は1)を連結させ、かつ1回の暗号化によって生成する場合について説明したが、これに限定されない。例えば、連結させる組み合わせを本実施形態とは異ならせてもよいし、複数回の暗号化によってxij及び分散値qijを生成してもよい。 Further, in the present embodiment, step S50, S52 dID the x ij and variance values q ij in distributed processing [s j], i, and 0 (or 1) is connected to, and generated by encrypting one Although the case has been described, the present invention is not limited to this. For example, the combination to be connected may be different from that of the present embodiment, or x ij and the shared value q ij may be generated by performing encryption multiple times.

また、第1〜第3実施形態を通して、xijは秘密情報sごとに生成しているが、これは、1つの秘密情報の復元時に、生成装置12からxijを得ることができても、異なるxijが設定されている他の秘密情報を復元できないようにするためである。これにより、安全性の低下を抑制することができる。また、攻撃者が分散値からxijを得ようとしても、分散値はn−t(<k)台のデータサーバ16にしか保管されていないため、同様にxijを得ることはできない。 Also, through the first to third embodiments, x ij are generated for each secret information s i, which, when restoring single secret information, from generator 12 can be obtained x ij , And other confidential information to which different x ij is set cannot be restored. Thereby, a decrease in safety can be suppressed. Further, even if the attacker attempts to obtain x ij from the variance, x ij cannot be similarly obtained because the variance is stored only in nt (<k) data servers 16.

[第4実施形態]
開示の技術の第4実施形態を説明する。なお、秘密分散システム10の構成(図1参照)、生成装置12のハードウェア構成(図2参照)、及び復元装置14のハードウェア構成(図3参照)は、第1実施形態と同様であるため説明を省略する。
[Fourth embodiment]
A fourth embodiment of the disclosed technology will be described. The configuration of the secret sharing system 10 (see FIG. 1), the hardware configuration of the generation device 12 (see FIG. 2), and the hardware configuration of the restoration device 14 (see FIG. 3) are the same as those in the first embodiment. Therefore, the description is omitted.

第3実施形態では、n>kを前提とし、検証用の分散値を使用する形態例を説明した。本実施形態では、n=kとし、検証用の分散値を使用しない形態例を説明する。本実施形態では、1つの秘密情報を異なる分散式で2回分散し、第3実施形態と同様に、2回の復元によって得られた秘密情報が一致するか否かによって検証する。   In the third embodiment, an example in which a variance value for verification is used has been described on the assumption that n> k. In the present embodiment, an example in which n = k and a variance value for verification is not used will be described. In the present embodiment, one piece of secret information is distributed twice using different distribution formulas, and verification is performed by checking whether or not the secret information obtained by the two restorations matches, as in the third embodiment.

図10及び図11を参照して、本実施形態に係る秘密分散システム10の作用を説明する。まず、図10を参照して、本実施形態に係る秘密情報を分散する分散処理を説明する。生成装置12のCPU20が生成プログラム28を実行することで、図10に示す分散処理を実行する。   The operation of the secret sharing system 10 according to the present embodiment will be described with reference to FIGS. First, a distribution process for distributing secret information according to the present embodiment will be described with reference to FIG. When the CPU 20 of the generation device 12 executes the generation program 28, the distributed processing illustrated in FIG. 10 is executed.

図10のステップS70で、CPU20は、以下に示す(19)式及び(20)式に従って、秘密情報sを識別する識別情報dID[s]を、1つの秘密鍵keyを用いて変換することによって、xij及びx ijを生成する。このxij及びx ijは、互いに異なる2個のサーバIDに対応する。
xij=Enc(dID[sj]|i|0,key0) (i=1,…,t,j=1,…,m) …(19)
x' ij=Enc(dID[sj]|i|2,key0) (i=1,…,t,j=1,…,m) …(20)
In step S70 of FIG. 10, the CPU 20 converts the identification information dID [s j ] for identifying the secret information s j using one secret key key 0 according to the following equations (19) and (20). Then, x ij and x ij are generated. The x ij and x ij correspond to two different server IDs.
x ij = Enc (dID [s j ] | i | 0, key 0 ) (i = 1,…, t, j = 1,…, m)… (19)
x ' ij = Enc (dID [s j ] | i | 2, key 0 ) (i = 1,…, t, j = 1,…, m)… (20)

ステップS72で、CPU20は、以下に示す(21)式に従って、秘密情報sを識別する識別情報dID[s]を、1つの秘密鍵keyを用いて変換することによって、t個のxij(i=1、…、t)に対応する分散値qijを生成する。また、CPU20は、以下に示す(22)式に従って、秘密情報sを識別する識別情報dID[s]を、1つの秘密鍵keyを用いて変換することによって、t個のx ij(i=1、…、t)に対応する分散値q ijを生成する。
qij=Enc(dID[sj]|i|1,key0) (i=1,…,t,j=1,…,m) …(21)
q' ij=Enc(dID[sj]|i|2,key0) (i=1,…,t,j=1,…,m) …(22)
In step S72, the CPU 20 converts the identification information dID [s j ] for identifying the secret information s j using one secret key key 0 according to the following equation (21), thereby obtaining t x x Generate a variance value q ij corresponding to ij (i = 1,..., t). Further, the CPU 20 converts the identification information dID [s j ] for identifying the secret information s j using one secret key key 0 in accordance with the following equation (22), thereby obtaining t x ij. A variance value q ij corresponding to (i = 1,..., T) is generated.
q ij = Enc (dID [s j ] | i | 1, key 0 ) (i = 1,…, t, j = 1,…, m)… (21)
q ' ij = Enc (dID [s j ] | i | 2, key 0 ) (i = 1,…, t, j = 1,…, m)… (22)

ステップS74で、CPU20は、非対称秘密分散法の<分散>の4.の手順を用いて、t個の(xij、qij)と(0、s)とを通るk−1次の多項式W(x)を求める。多項式W(x)は、以下の(23)式で表される。 In step S74, the CPU 20 sets <4> of <sharing> of the asymmetric secret sharing scheme. The k-1 order polynomial W (x) passing through t (x ij , q ij ) and (0, s j ) is obtained by using the procedure of (1). The polynomial W (x) is represented by the following equation (23).

ステップS76で、CPU20は、非対称秘密分散法の<分散>の4.の手順を用いて、t個の(x ij、q ij)と(0、s)とを通るk−1次の多項式V(x)を求める。多項式V(x)は、以下の(24)式で表される。 In step S76, the CPU 20 sets <4> of <sharing> of the asymmetric secret sharing scheme. By using the above procedure, a k−1-th order polynomial V (x) passing through t (x ij , q ij ) and (0, s j ) is obtained. The polynomial V (x) is represented by the following equation (24).

ステップS78で、CPU20は、サーバIDがxit+1、…、xinであるデータサーバ16に関する分散値Wit+1、…、Winを、ステップS74で算出した多項式W(x)を用いて、(k、n)閾値秘密分散法と同様の手順により算出する。 In step S78, CPU 20, the server ID is x it + 1, ..., variance W it + 1 on the data server 16 is x in, ..., a W in, using the calculated polynomial W (x) in step S74, (k , N) Calculate by the same procedure as the threshold secret sharing method.

ステップS80で、CPU20は、サーバIDがxit+1、…、xinであるデータサーバ16に関する分散値Vit+1、…、Vinを、ステップS76で算出した多項式V(x)を用いて、(k、n)閾値秘密分散法と同様の手順により算出する。 In step S80, CPU 20, the server ID is x it + 1, ..., variance V it + 1 on the data server 16 is x in, ..., a V in, using the calculated polynomial V (x) in step S76, (k , N) Calculate by the same procedure as the threshold secret sharing method.

ステップS82で、CPU20は、ステップS78、S80で算出した分散値Wij、Vij(j=t+1、…、n)を、対応するデータサーバ16に送信する。各データサーバ16は、受信した分散値Wij、Vijを保管する。ステップS82の処理が終了すると、本分散処理が終了する。 In step S82, the CPU 20 transmits the variance values W ij , V ij (j = t + 1,..., N) calculated in steps S78 and S80 to the corresponding data server 16. Each data server 16 stores the received dispersion values W ij and V ij . When the processing in step S82 ends, the distributed processing ends.

次に、図11を参照して、図10に示す分散処理によって分散された分散値から、秘密情報を復元する復元処理を説明する。復元装置14のCPU30が復元プログラム38を実行することで、図11に示す復元処理を実行する。   Next, with reference to FIG. 11, a description will be given of a restoration process for restoring secret information from the shared value distributed by the sharing process illustrated in FIG. When the CPU 30 of the restoration device 14 executes the restoration program 38, the restoration processing shown in FIG. 11 is executed.

図11のステップS90で、CPU30は、データサーバ16に保管されているk−t個の分散値Wij、Vijを受信する。ステップS92で、CPU30は、t個の分散値qij、q ijと、その分散値qij、q ijを識別するためのxij、x ijの送信を要求する要求情報を生成装置12に送信する。オーナは、生成装置12が要求情報を受信した後、秘密情報の復元を許可する場合は、入力装置24を介して復元を許可する操作を行い、秘密情報の復元を許可しない場合は、入力装置24を介して復元を禁止する操作を行う。生成装置12のCPU20は、オーナにより復元を許可する操作が行われた場合に、ステップS70、S72と同様の処理によりxij、x ij及び分散値qij、q ijを生成し、生成したxij、x ij及び分散値qij、q ijを復元装置14に送信する。また、CPU20は、オーナにより復元を禁止する操作が行われた場合は、xij、x ij及び分散値qij、q ijを生成しない。すなわち、この場合、CPU20は、xij、x ij及び分散値qij、q ijを復元装置14に送信しない。 In step S90 of FIG. 11, the CPU 30 receives kt variance values W ij and V ij stored in the data server 16. In step S92, the CPU 30 generates request information for requesting transmission of t variance values q ij , q ij and x ij , x ij for identifying the variance values q ij , q ij. 12 is transmitted. After the generation device 12 receives the request information, the owner performs an operation to permit the restoration of the secret information via the input device 24 when the restoration of the secret information is permitted. An operation for prohibiting restoration is performed via the program 24. The CPU 20 of the generation device 12 generates x ij , x ij and variance values q ij , q ij by the same processing as in steps S70 and S72 when an operation to permit restoration is performed by the owner. The obtained x ij , x ij and the variance values q ij , q ij are transmitted to the restoration device 14. Further, when an operation to prohibit restoration is performed by the owner, the CPU 20 does not generate x ij , x ij and variance values q ij , q ij . That is, in this case, the CPU 20 does not transmit the x ij , x ij and the variance values q ij , q ij to the restoration device 14.

ステップS94で、CPU30は、ステップS92での要求に対応して生成装置12から送信されたxij、x ij及び分散値qij、q ijを受信したか否かを判定する。この判定が肯定判定となった場合は、処理はステップS96に移行する。 In step S94, the CPU 30 determines whether x ij , x ij and variance values q ij , q ij transmitted from the generating device 12 in response to the request in step S92. If this determination is affirmative, the process proceeds to step S96.

ステップS96で、CPU30は、得られたk個のqij、Wij、及びxijを用いて、多項式W(x)により秘密情報sを復元する。また、CPU30は、得られたk個のq ij、Vij、及びx ijを用いて、多項式V(x)により秘密情報sを復元する。 In step S96, the CPU 30 restores the secret information s j by the polynomial W (x) using the obtained k q ij , W ij , and x ij . Further, the CPU 30 restores the secret information s j by the polynomial V (x) using the obtained k q ij , V ij and x ij .

ステップS98で、CPU30は、ステップS96で復元した2個の秘密情報sを用いて、復元した秘密情報sを検証する。具体的には、CPU30は、多項式W(x)により復元した秘密情報sと多項式V(x)により復元した秘密情報sとが一致した場合、その秘密情報sが正しいと判断する。一方、CPU30は、多項式W(x)により復元した秘密情報sと多項式V(x)により復元した秘密情報sとが異なる場合、その秘密情報sは不正である、すなわち、データサーバ16の少なくとも1台が攻撃されたと判断する。CPU30は、秘密情報sが正しいと判断した場合は、その秘密情報sを用いた処理を行う。一方、CPU30は、秘密情報sが不正であると判断した場合は、例えば、表示装置33にエラーメッセージを表示する。ステップS98の処理が終了すると、本復元処理が終了する。 In step S98, CPU 30 uses the two secret s j restored in step S96, verifies the secret s j which restored. Specifically, CPU 30, when the secret information s j restored by secret s j and the polynomial V (x) was restored by polynomial W (x) match, it determines that the secret s j is correct. On the other hand, when the secret information s j restored by the polynomial W (x) is different from the secret information s j restored by the polynomial V (x), the CPU 30 determines that the secret information s j is invalid, that is, the data server 16. Is determined to have been attacked. When determining that the secret information s j is correct, the CPU 30 performs a process using the secret information s j . On the other hand, if the CPU 30 determines that the secret information s j is invalid, it displays an error message on the display device 33, for example. When the processing in step S98 ends, the restoration processing ends.

一方、例えば、ステップS92でxij、x ij及び分散値qij、q ijの送信を要求してから所定期間を経過してもxij、x ij及び分散値qij、q ijが受信されなかった場合等では、ステップS94の判定が否定判定となる。ステップS94の判定が否定判定となった場合は、ステップS96、S98の処理は実行されずに本復元処理が終了する。 On the other hand, for example, x ij at step S92, x 'ij and variance values q ij, q' x ij even after a predetermined period of time after requesting the transmission of the ij, x 'ij and variance values q ij, q' For example, when ij is not received, the determination in step S94 is negative. If the determination in step S94 is negative, the restoration processing ends without executing the processing in steps S96 and S98.

以下に具体例を用いて説明する。例えば、n=k=2、t=1とした場合を考える。この場合、データサーバ16はn−t=1台であり、このデータサーバ16のサーバIDをxとし、攻撃者に乗っ取られているものとする。このxに対応するデータサーバ16が偽の分散値W+ΔW、V+ΔVを出力する場合を考える。 This will be described below using a specific example. For example, consider the case where n = k = 2 and t = 1. In this case, the data server 16 is a n-t = 1 units, the server ID of the data server 16 and x 2, assumed to be compromised by an attacker. Consider the case where the data server 16 corresponding to the x 2 outputs the variance W 2 + ΔW 2, V 2 + ΔV 2 fake.

この場合、復元装置14は、1回目には、多項式W(x)により秘密情報の復元を行うことによって、以下の(25)式で表されるW(0)を復元する。 In this case, the restoration device 14 restores W (0) represented by the following expression (25) by performing the restoration of the secret information by the polynomial W (x) for the first time.

更に、この場合、復元装置14は、2回目には、多項式V(x)により秘密情報の復元を行うことによって、以下の(26)式で表されるV(0)を復元する。 Further, in this case, the restoring device 14 restores V (0) represented by the following expression (26) by performing the restoration of the secret information using the polynomial V (x) for the second time.

(0)とV(0)との差分は、ΔWとΔVとが以下の(27)式の関係であれば0となるが、攻撃者はx、x を知ることはできないため、W(0)とV(0)との差分が0となるΔWとΔVとを設定することはできない。このため、W(0)とV(0)とは一致しない。従って、復元装置14は、データサーバ16から偽の分散値が出力されたことを検証することができる。 The difference between W (0) and V (0) is 0 if ΔW 2 and ΔV 2 are in the relationship of the following equation (27), but the attacker knows x 1 and x 1 Therefore, ΔW 2 and ΔV 2 at which the difference between W (0) and V (0) becomes 0 cannot be set. For this reason, W (0) does not match V (0). Therefore, the restoration device 14 can verify that the data server 16 has output a fake variance value.

[第5実施形態]
開示の技術の第5実施形態を説明する。第3及び第4実施形態では、分散値の検証のためにMAC等の秘密分散とは異なる技術を用いずに、検証用の分散値を用いることによって、復元した秘密情報の正当性を検証する手法を説明した。この手法は、MAC等を用いずに同じ形式の分散値を用いるため簡易であり、かつビット長等の形式を同じにすることができる(MACはビット長が規定されている)。本実施形態では、第3及び第4実施形態と同様の特徴を持つ復号結果の検証法を暗号技術に適用した形態例を説明する。
[Fifth Embodiment]
A fifth embodiment of the disclosed technology will be described. In the third and fourth embodiments, the legitimacy of the restored secret information is verified by using the verification sharing value without using a technique different from the secret sharing such as the MAC for verifying the sharing value. The method has been described. This method is simple because a variance value of the same format is used without using a MAC or the like, and the format such as the bit length can be made the same (the MAC has a defined bit length). In the present embodiment, an example in which a verification method of a decryption result having the same characteristics as those of the third and fourth embodiments is applied to encryption technology will be described.

まず、図12を参照して、本実施形態に係る通信システム40の構成を説明する。図12に示すように、通信システム40は、送信装置42及び受信装置44を含む。送信装置42及び受信装置44は、ネットワークNに接続され、互いに通信可能とされる。また、本実施形態では、送信装置42及び受信装置44は、同一の秘密鍵を記憶している。   First, the configuration of the communication system 40 according to the present embodiment will be described with reference to FIG. As shown in FIG. 12, the communication system 40 includes a transmitting device 42 and a receiving device 44. The transmitting device 42 and the receiving device 44 are connected to the network N and can communicate with each other. In the present embodiment, the transmitting device 42 and the receiving device 44 store the same secret key.

送信装置42は、秘密情報を送信する送信者によって操作される装置であり、送信装置42の例としては、パーソナルコンピュータ等の情報処理装置が挙げられる。受信装置44は、秘密情報を受信する受信者によって操作される装置であり、受信装置44の例としては、パーソナルコンピュータ等の情報処理装置が挙げられる。   The transmitting device 42 is a device that is operated by a sender that transmits confidential information, and an example of the transmitting device 42 is an information processing device such as a personal computer. The receiving device 44 is a device operated by a recipient who receives the secret information, and an example of the receiving device 44 is an information processing device such as a personal computer.

次に、図13を参照して、本実施形態に係る送信装置42のハードウェア構成を説明する。図13に示すように、送信装置42は、CPU50、一時記憶領域としてのメモリ51、不揮発性の記憶部52を含む。また、送信装置42は、液晶ディスプレイ等の表示装置53、キーボード等の入力装置54、及びネットワークNに接続されるネットワークI/F55を含む。CPU50、メモリ51、記憶部52、表示装置53、入力装置54、及びネットワークI/F55は、バス56に接続される。   Next, a hardware configuration of the transmission device 42 according to the present embodiment will be described with reference to FIG. As shown in FIG. 13, the transmission device 42 includes a CPU 50, a memory 51 as a temporary storage area, and a nonvolatile storage unit 52. The transmitting device 42 includes a display device 53 such as a liquid crystal display, an input device 54 such as a keyboard, and a network I / F 55 connected to the network N. The CPU 50, the memory 51, the storage unit 52, the display device 53, the input device 54, and the network I / F 55 are connected to the bus 56.

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

次に、図14を参照して、本実施形態に係る受信装置44のハードウェア構成を説明する。図14に示すように、受信装置44は、CPU60、一時記憶領域としてのメモリ61、不揮発性の記憶部62を含む。また、受信装置44は、液晶ディスプレイ等の表示装置63、キーボード等の入力装置64、及びネットワークNに接続されるネットワークI/F65を含む。CPU60、メモリ61、記憶部62、表示装置63、入力装置64、及びネットワークI/F65は、バス66に接続される。   Next, a hardware configuration of the receiving device 44 according to the present embodiment will be described with reference to FIG. As shown in FIG. 14, the receiving device 44 includes a CPU 60, a memory 61 as a temporary storage area, and a nonvolatile storage unit 62. The receiving device 44 includes a display device 63 such as a liquid crystal display, an input device 64 such as a keyboard, and a network I / F 65 connected to the network N. The CPU 60, the memory 61, the storage unit 62, the display device 63, the input device 64, and the network I / F 65 are connected to the bus 66.

記憶部62は、HDD、SSD、及びフラッシュメモリ等によって実現される。記憶媒体としての記憶部62には、受信プログラム68が記憶される。CPU60は、記憶部62から受信プログラム68を読み出してからメモリ61に展開し、展開した受信プログラム68を実行する。CPU70が受信プログラム68を実行することで、開示の技術の受信部及び検証部として動作する。   The storage unit 62 is realized by an HDD, an SSD, a flash memory, and the like. The storage unit 62 as a storage medium stores a reception program 68. The CPU 60 reads out the reception program 68 from the storage unit 62, expands it in the memory 61, and executes the expanded reception program 68. When the CPU 70 executes the receiving program 68, it operates as a receiving unit and a verifying unit according to the disclosed technology.

次に、図15及び図16を参照して、本実施形態に係る通信システム40の作用を説明する。まず、図15を参照して、秘密情報を送信する送信処理を説明する。送信装置42のCPU50が送信プログラム58を実行することで、図15に示す送信処理を実行する。   Next, the operation of the communication system 40 according to the present embodiment will be described with reference to FIGS. First, a transmission process of transmitting secret information will be described with reference to FIG. The transmission process shown in FIG. 15 is executed by the CPU 50 of the transmission device 42 executing the transmission program 58.

図15のステップS100で、CPU50は、秘密鍵を用いて、第1の乱数a及び第2の乱数αを生成する。ステップS102で、CPU50は、秘密情報aに対して、ステップS100で生成した第1の乱数a及び第2の乱数αを作用させて第1の送信データを生成する。具体的には、CPU50は、秘密情報aに第1の乱数aを加算して得られた結果に、第2の乱数αを乗算することによって暗号化した第1の送信データ(α(a+a))を生成する。ステップS104で、CPU50は、ステップS102で生成した第1の送信データを受信装置44に送信する。 In step S100 of FIG. 15, the CPU 50 generates a first random number a 1 and a second random number α 1 using a secret key. In step S102, CPU 50, to the secret information a, by the action of the first random number a 1 and the second random number alpha 1 generated in step S100 to generate the first transmission data. Specifically, the CPU 50 multiplies the result obtained by adding the first random number a 1 to the secret information a by the second random number α 1 to encrypt the first transmission data (α 1 (A + a 1 )). In step S104, the CPU 50 transmits the first transmission data generated in step S102 to the receiving device 44.

ステップS106で、CPU50は、秘密鍵を用いて、第3の乱数a及び第4の乱数αを生成する。ステップS108で、CPU50は、秘密情報aに対して、ステップS102における第1の乱数aに代えた第3の乱数a及び第2の乱数αに代えた第4の乱数αを同様に作用させて第2の送信データを生成する。具体的には、CPU50は、秘密情報aに第3の乱数aを加算して得られた結果に、第4の乱数αを乗算することによって暗号化した第2の送信データ(α(a+a))を生成する。ステップS110で、CPU50は、ステップS108で生成した第2の送信データを、第1の送信データの送信先と同一の受信装置44に送信する。ステップS110の処理が終了すると、本送信処理が終了する。 In step S106, CPU 50 uses the secret key to generate a third random number a 2 and the fourth random number alpha 2. In step S108, CPU 50 is similar for secret information a, the fourth random number alpha 2 was replaced with the third random number a 2 and a second random number alpha 1 was replaced with the first random number a 1 in step S102 To generate the second transmission data. Specifically, CPU 50 is a result obtained by adding the third random number a 2 secret information a, the second transmission data encrypted by multiplying the fourth random number alpha 2 (alpha 2 (A + a 2 )). In step S110, the CPU 50 transmits the second transmission data generated in step S108 to the same receiving device 44 as the transmission destination of the first transmission data. When the processing in step S110 ends, the transmission processing ends.

次に、図16を参照して、図15に示す送信処理によって送信された情報を受信する受信処理を説明する。受信装置44のCPU60が受信プログラム68を実行することで、図16に示す受信処理を実行する。   Next, a reception process for receiving information transmitted by the transmission process shown in FIG. 15 will be described with reference to FIG. When the CPU 60 of the receiving device 44 executes the receiving program 68, the receiving process shown in FIG. 16 is executed.

図16のステップS120で、CPU60は、送信処理のステップS104で送信装置42から送信された第1の送信データを受信する。ステップS122で、CPU60は、送信装置42が記憶している秘密鍵と同一の秘密鍵を用いて、第1の乱数a及び第2の乱数αを生成する。 In step S120 in FIG. 16, the CPU 60 receives the first transmission data transmitted from the transmission device 42 in step S104 of the transmission process. In step S122, the CPU 60 generates a first random number a 1 and a second random number α 1 using the same secret key as the secret key stored in the transmitting device 42.

ステップS124で、CPU60は、ステップS120で受信した第1の送信データから、ステップS122で生成した第2の乱数αを排除する。具体的には、CPU60は、第1の送信データを第2の乱数αで除算する。すなわち、第1の送信データから第2の乱数αを排除した結果は、α(a+a)/αで表される。 In step S124, CPU 60, from the first transmission data received in step S120, to eliminate the second random number alpha 1 generated in step S122. Specifically, CPU 60 divides the first transmission data in the second random number alpha 1. That is, the result of eliminating the second random number α 1 from the first transmission data is represented by α 1 (a + a 1 ) / α 1 .

ステップS126で、CPU60は、送信処理のステップS110で送信装置42から送信された第2の送信データを受信する。ステップS128で、CPU60は、送信装置42が記憶している秘密鍵と同一の秘密鍵を用いて、第3の乱数a及び第4の乱数αを生成する。 In step S126, CPU 60 receives the second transmission data transmitted from transmission device 42 in step S110 of the transmission process. In step S128, CPU 60 uses the secret key and the same secret key transmitting device 42 has stored, to generate a third random number a 2 and the fourth random number alpha 2.

ステップS130で、CPU60は、ステップS126で受信した第2の送信データから、ステップS128で生成した第4の乱数αを排除する。具体的には、CPU60は、第2の送信データを第4の乱数αで除算する。すなわち、第2の送信データから第4の乱数αを排除した結果は、α(a+a)/αで表される。 In step S130, CPU 60, from the second transmission data received in step S126, eliminating the fourth random number alpha 2 generated in step S128. Specifically, CPU 60 divides the second transmission data in the fourth random number alpha 2. In other words, the results from the second transmission data to eliminate the fourth random number alpha 2 is represented by α 2 (a + a 2) / α 2.

ステップS132で、CPU60は、ステップS124による排除結果と、ステップS130による排除結果との差分を算出する。この差分は、以下に示す(28)式で表される。
α(a+a)/α−α(a+a)/α・・・(28)
In step S132, the CPU 60 calculates a difference between the exclusion result in step S124 and the exclusion result in step S130. This difference is expressed by the following equation (28).
α 1 (a + a 1 ) / α 1 −α 2 (a + a 2 ) / α 2 (28)

そして、CPU60は、算出した差分が、ステップS122で生成した第1の乱数aと、ステップS128で生成した第3の乱数aとの差分(a−a)に等しいか否かを検証する。具体的には、CPU60は、(28)式で算出した差分が、第1の乱数aと第3の乱数aとの差分に等しい場合、受信したデータが正しいと判断し、秘密情報aを復号する。一方、CPU60は、(28)式で算出した差分が、第1の乱数aと第3の乱数aとの差分とは異なる場合、受信したデータに改ざんや偽造等の不正があると判断し、例えば、エラーメッセージを表示装置63に表示する。ステップS132の処理が終了すると、本受信処理が終了する。 Then, the CPU 60 determines whether or not the calculated difference is equal to the difference (a 1 −a 2 ) between the first random number a 1 generated in step S122 and the third random number a 2 generated in step S128. Verify. Specifically, CPU 60 is (28) difference calculated by the equation is equal to the difference of the first random number a 1 and the third random number a 2, it is determined that the received data is correct, the secret information a Is decrypted. On the other hand, decision CPU60 is that the difference calculated by the equation (28), if the first random number a 1 and different from the third difference between the random number a 2, there is illegal, such as tampering or counterfeiting in the received data Then, for example, an error message is displayed on the display device 63. When the processing in step S132 ends, the reception processing ends.

本実施形態において、攻撃者が、偽の第1の送信データとしてα(a+a)+Δを受信装置44に受信させ、偽の第2の送信データとしてα(a+a)+Δを受信装置44に受信させることができる。しかしながら、攻撃者はa、α、a、αを知ることはできないため、(28)式で表される差分とa−aとが等しくなるような偽の送信データを生成することはできない。従って、受信装置44は、受信したデータの正当性を検証することができる。 In the present embodiment, the attacker causes the receiving device 44 to receive α 1 (a + a 1 ) + Δ 1 as fake first transmission data and α 2 (a + a 2 ) + Δ 2 as fake second transmission data. It can be received by the receiving device 44. However, since the attacker cannot know a 1 , α 1 , a 2 , and α 2 , it generates fake transmission data such that the difference represented by the expression (28) is equal to a 1 −a 2. I can't. Therefore, the receiving device 44 can verify the validity of the received data.

なお、上記各実施形態で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.

また、上記第1〜第4実施形態では、生成プログラム28が記憶部22に予め記憶(インストール)されている態様を説明したが、これに限定されない。生成プログラム28は、CD−ROM(Compact Disc Read Only Memory)、DVD−ROM(Digital Versatile Disc Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、生成プログラム28は、ネットワークを介して外部装置からダウンロードされる形態としてもよい。   In the first to fourth embodiments, the mode in which the generation program 28 is stored (installed) in the storage unit 22 in advance has been described, but the present invention is not limited to this. The generation program 28 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. Good. The generation program 28 may be downloaded from an external device via a network.

また、上記第1〜第4実施形態では、復元プログラム38が記憶部32に予め記憶(インストール)されている態様を説明したが、これに限定されない。復元プログラム38は、CD−ROM、DVD−ROM、及びUSBメモリ等の記録媒体に記録された形態で提供されてもよい。また、復元プログラム38は、ネットワークを介して外部装置からダウンロードされる形態としてもよい。   In the first to fourth embodiments, the mode in which the restoration program 38 is stored (installed) in the storage unit 32 in advance has been described, but the present invention is not limited to this. The restoration program 38 may be provided in a form recorded on a recording medium such as a CD-ROM, a DVD-ROM, and a USB memory. The restoration program 38 may be downloaded from an external device via a network.

また、上記第5実施形態では、送信プログラム58が記憶部52に予め記憶(インストール)されている態様を説明したが、これに限定されない。送信プログラム58は、CD−ROM、DVD−ROM、及びUSBメモリ等の記録媒体に記録された形態で提供されてもよい。また、送信プログラム58は、ネットワークを介して外部装置からダウンロードされる形態としてもよい。   In the fifth embodiment, the mode in which the transmission program 58 is stored (installed) in the storage unit 52 in advance has been described, but the present invention is not limited to this. The transmission program 58 may be provided in a form recorded on a recording medium such as a CD-ROM, a DVD-ROM, and a USB memory. Further, the transmission program 58 may be configured to be downloaded from an external device via a network.

また、上記第5実施形態では、受信プログラム68が記憶部62に予め記憶(インストール)されている態様を説明したが、これに限定されない。受信プログラム68は、CD−ROM、DVD−ROM、及びUSBメモリ等の記録媒体に記録された形態で提供されてもよい。また、受信プログラム68は、ネットワークを介して外部装置からダウンロードされる形態としてもよい。   In the fifth embodiment, the mode in which the reception program 68 is stored (installed) in the storage unit 62 in advance has been described, but the present invention is not limited to this. The receiving program 68 may be provided in a form recorded on a recording medium such as a CD-ROM, a DVD-ROM, and a USB memory. The receiving program 68 may be downloaded from an external device via a network.

10 秘密分散システム
12 生成装置
14 復元装置
16 サーバ
20、30、50、60 CPU
21、31、51、61 メモリ
22、32、52、62 記憶部
28 生成プログラム
38 復元プログラム
40 通信システム
42 送信装置
44 受信装置
58 送信プログラム
68 受信プログラム
Reference Signs List 10 secret sharing system 12 generating device 14 restoring device 16 server 20, 30, 50, 60 CPU
21, 31, 51, 61 memory 22, 32, 52, 62 storage unit 28 generation program 38 restoration program 40 communication system 42 transmission device 44 reception device 58 transmission program 68 reception program

Claims (14)

nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、
前記秘密情報を識別する識別情報を、1つの秘密鍵を用いて変換することによって、少なくともk−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 generation device comprising: a generation unit configured to generate a value corresponding to each of at least k−1 or less of the shared values by converting identification information for identifying the secret information using one secret key.
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、
前記秘密情報を識別する識別情報を、1つの秘密鍵を用いて変換することによって、k−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 generation device comprising: a generation unit configured to generate k−1 or less of the shared values by converting identification information for identifying the secret information using one secret key.
前記生成部は、生成した値及び前記秘密情報を用いて前記k−1個以下の前記分散値以外の分散値を求めるための係数を算出する
請求項2に記載の生成装置。
The generation device according to claim 2, wherein the generation unit calculates a coefficient for obtaining a share value other than the k−1 or less share values using the generated value and the secret information.
請求項1又は請求項2に記載の生成装置により生成された値を受信する受信部と、
前記受信部により受信された値を用いて前記秘密情報を復元する復元部と、
を備えた復元装置。
A receiving unit that receives a value generated by the generating device according to claim 1 or 2,
A restoring unit that restores the secret information using the value received by the receiving unit,
Restoration device equipped with.
請求項3に記載の生成装置により生成された係数を用いて同一の秘密情報から生成された異なる分散値の組み合わせによって2回以上前記秘密情報を復元する復元部
を備えた復元装置。
A restoring unit comprising: a restoring unit that restores the secret information two or more times by a combination of different variance values generated from the same secret information using a coefficient generated by the generation device according to claim 3.
秘密情報に対して、第1の乱数及び第2の乱数を作用させて第1の送信データを生成し、
前記秘密情報に対して、前記第1の乱数に代えた第3の乱数及び前記第2の乱数に代えた第4の乱数を同様に作用させて第2の送信データを生成する生成部と、
前記第1の送信データ及び前記第2の送信データを同一の受信装置に送信する送信部と、
を備えた送信装置。
Generating first transmission data by applying a first random number and a second random number to the secret information;
A generation unit configured to generate second transmission data by causing a third random number instead of the first random number and a fourth random number instead of the second random number to act on the secret information in a similar manner;
A transmitting unit that transmits the first transmission data and the second transmission data to the same receiving device;
A transmission device comprising:
請求項6に記載の送信装置により送信された第1の送信データ及び第2の送信データを受信する受信部と、
前記第1の送信データから前記第2の乱数を排除した結果と、前記第2の送信データから前記第4の乱数を排除した結果との差分が、前記第1の乱数と前記第3の乱数との差分に等しいか否かを検証する検証部と、
を備えた受信装置。
A receiving unit that receives the first transmission data and the second transmission data transmitted by the transmission device according to claim 6,
The difference between the result of removing the second random number from the first transmission data and the result of removing the fourth random number from the second transmission data is the difference between the first random number and the third random number. A verification unit that verifies whether the difference is equal to
A receiving device comprising:
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、
前記秘密情報を識別する識別情報を、1つの秘密鍵を用いて変換することによって、少なくともk−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 process for causing a computer to execute processing for generating values corresponding to at least k-1 or less of the shared values by converting identification information for identifying the secret information using one secret key program.
nを2以上の整数、kを2以上n以下の整数とし、秘密情報をn個の分散値に分散し、k個の前記分散値によって前記秘密情報を復元でき、k個未満では前記秘密情報を復元できないシステムにおいて、
前記秘密情報を識別する識別情報を、1つの秘密鍵を用いて変換することによって、k−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 generation program for causing a computer to execute a process of generating k−1 or less of the shared values by converting identification information for identifying the secret information using one secret key.
生成した値及び前記秘密情報を用いて前記k−1個以下の前記分散値以外の分散値を求めるための係数を算出する
処理を更に前記コンピュータに実行させるための請求項9に記載の生成プログラム。
The generation program according to claim 9, further causing the computer to execute a process of calculating a coefficient for obtaining a variance value other than the k−1 or less variance values using the generated value and the secret information. .
請求項8又は請求項9に記載の生成プログラムが実行されることにより生成された値を受信し、
受信した値を用いて前記秘密情報を復元する
処理をコンピュータに実行させるための復元プログラム。
Receiving a value generated by executing the generation program according to claim 8 or 9;
A restoration program for causing a computer to execute a process of restoring the secret information using a received value.
請求項10に記載の生成プログラムが実行されることにより生成された係数を用いて同一の秘密情報から生成された異なる分散値の組み合わせによって2回以上前記秘密情報を復元する
処理をコンピュータに実行させるための復元プログラム。
A computer executes a process of restoring the secret information two or more times by using a combination of different variance values generated from the same secret information by using a coefficient generated by executing the generation program according to claim 10. Restore program for.
秘密情報に対して、第1の乱数及び第2の乱数を作用させて第1の送信データを生成し、
前記秘密情報に対して、前記第1の乱数に代えた第3の乱数及び前記第2の乱数に代えた第4の乱数を同様に作用させて第2の送信データを生成し、
前記第1の送信データ及び前記第2の送信データを同一の受信装置に送信する
処理をコンピュータに実行させるための送信プログラム。
Generating first transmission data by applying a first random number and a second random number to the secret information;
A second transmission data is generated by causing a third random number in place of the first random number and a fourth random number in place of the second random number to act on the secret information in the same manner,
A transmission program for causing a computer to execute a process of transmitting the first transmission data and the second transmission data to the same receiving device.
請求項13に記載の送信プログラムが実行されることにより送信された第1の送信データ及び第2の送信データを受信し、
前記第1の送信データから前記第2の乱数を排除した結果と、前記第2の送信データから前記第4の乱数を排除した結果との差分が、前記第1の乱数と前記第3の乱数との差分に等しいか否かを検証する
処理をコンピュータに実行させるための受信プログラム。
Receiving the first transmission data and the second transmission data transmitted by executing the transmission program according to claim 13,
The difference between the result of removing the second random number from the first transmission data and the result of removing the fourth random number from the second transmission data is the difference between the first random number and the third random number. A receiving program for causing a computer to execute a process of verifying whether or not the difference is equal to the difference.
JP2018175393A 2018-09-19 2018-09-19 Generation device, restoration device, transmission device, reception device, generation program, restoration program, transmission program, and reception program Pending JP2020046558A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018175393A JP2020046558A (en) 2018-09-19 2018-09-19 Generation device, restoration device, transmission device, reception device, generation program, restoration program, transmission program, and reception program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018175393A JP2020046558A (en) 2018-09-19 2018-09-19 Generation device, restoration device, transmission device, reception device, generation program, restoration program, transmission program, and reception program

Publications (1)

Publication Number Publication Date
JP2020046558A true JP2020046558A (en) 2020-03-26

Family

ID=69901375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018175393A Pending JP2020046558A (en) 2018-09-19 2018-09-19 Generation device, restoration device, transmission device, reception device, generation program, restoration program, transmission program, and reception program

Country Status (1)

Country Link
JP (1) JP2020046558A (en)

Similar Documents

Publication Publication Date Title
US10785019B2 (en) Data transmission method and apparatus
JP4774492B2 (en) Authentication system and remote distributed storage system
US9813414B2 (en) Password-based management of encrypted files
JP5562687B2 (en) Securing communications sent by a first user to a second user
US7516321B2 (en) Method, system and device for enabling delegation of authority and access control methods based on delegated authority
JP6763378B2 (en) Cryptographic information creation device, cryptographic information creation method, cryptographic information creation program, and verification system
US7877604B2 (en) Proof of execution using random function
TW201733302A (en) Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
JP2023500570A (en) Digital signature generation using cold wallet
JP6556955B2 (en) Communication terminal, server device, program
JP7089303B2 (en) Inference device, processing system, inference method and inference program
CN110557248B (en) Secret key updating method and system based on signcryption of certificateless cryptography
KR20210139344A (en) Methods and devices for performing data-driven activities
JP5944841B2 (en) Secret sharing system, data sharing device, distributed data holding device, secret sharing method, and program
Hussein et al. A survey of cryptography cloud storage techniques
CN112118245B (en) Key management method, system and equipment
MacKenzie et al. Delegation of cryptographic servers for capture-resilient devices
Chidambaram et al. Enhancing the security of customer data in cloud environments using a novel digital fingerprinting technique
JP2023008395A (en) Secure, robust federated learning system by multi-party type homomorphic encryption and federated learning method
JP2005252384A (en) Encrypted data storage server system, encrypted data storage method, and re-encryption method
JP5171787B2 (en) Sign-encryption system and sign-encryption generation method
JP2020046558A (en) Generation device, restoration device, transmission device, reception device, generation program, restoration program, transmission program, and reception program
JP5945525B2 (en) KEY EXCHANGE SYSTEM, KEY EXCHANGE DEVICE, ITS METHOD, AND PROGRAM
KR20160128170A (en) Device, server and method for providing a secret key encryption and restore
JP2013179473A (en) Account generation management system, account generation management server, account generation management method, account generation management program