JP6643756B2 - Server, service method - Google Patents
Server, service method Download PDFInfo
- Publication number
- JP6643756B2 JP6643756B2 JP2015227711A JP2015227711A JP6643756B2 JP 6643756 B2 JP6643756 B2 JP 6643756B2 JP 2015227711 A JP2015227711 A JP 2015227711A JP 2015227711 A JP2015227711 A JP 2015227711A JP 6643756 B2 JP6643756 B2 JP 6643756B2
- Authority
- JP
- Japan
- Prior art keywords
- new
- encrypted data
- client
- matrix
- integer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 43
- 238000012545 processing Methods 0.000 claims description 73
- 238000004364 calculation method Methods 0.000 claims description 60
- 239000011159 matrix material Substances 0.000 claims description 59
- 239000013598 vector Substances 0.000 claims description 48
- 238000004891 communication Methods 0.000 claims description 40
- 230000006870 function Effects 0.000 claims description 15
- 230000015654 memory Effects 0.000 claims 2
- 238000013500 data storage Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000007792 addition Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 3
- 101100460203 Schizosaccharomyces pombe (strain 972 / ATCC 24843) new2 gene Proteins 0.000 description 2
- 101100273916 Schizosaccharomyces pombe (strain 972 / ATCC 24843) wip1 gene Proteins 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010339 medical test Methods 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
Images
Description
本発明は、暗号化されたデータを記憶保持し、要求に応じて当該暗号データを用いて一定の計算処理を行い暗号で結果を提供するサーバおよびサービス方法に係り、特に、復号時のクライアントの処理負担軽減に資するサーバおよびサービス方法に関する。 The present invention relates to a server and a service method for storing and holding encrypted data, performing a certain calculation process using the encrypted data in response to a request, and providing a result by encryption, and in particular, relates to a client for decryption. The present invention relates to a server and a service method that reduce the processing load.
クラウドサーバのように、クライアントに代わってデータを記憶保持するサービスが存在する。これを利用し、クライアントが開示している公開鍵で暗号化したデータを第三者がサーバにアップロードすると、クライアントはこのデータをクラウド管理者に内容秘匿のまま自身が解読(復号)可能な暗号データとしてサーバ上に置かれた状態で管理できる。例えばデータとして個人の医療検査結果など秘匿性の高いデータを扱う場合に都合がよい。 There are services such as cloud servers that store and hold data on behalf of clients. Using this, when a third party uploads data encrypted with the public key disclosed by the client to the server, the client can decrypt (decrypt) this data with the cloud administrator while keeping the content secret. It can be managed as data on the server. For example, it is convenient when handling highly confidential data such as personal medical test results as data.
また、クラウドサーバでは、クライアントのデータを記憶保持し、リソースが限られたクライアントからの要求に応じてこのデータを用いてクライアントに代わって計算処理を行いその結果をクライアントに提供するサービスが存在する(代理計算)。この場合、通常、データとして暗号データは扱えない。暗号データで計算処理を行うと当然、平文データでの処理結果と一般に一致しないためである。 In addition, a cloud server has a service that stores and holds data of a client, performs a calculation process on behalf of the client using the data in response to a request from the client with limited resources, and provides the result to the client. (Surrogate calculation). In this case, normally, encrypted data cannot be handled as data. This is because, when calculation processing is performed on encrypted data, the processing result does not generally match the processing result on plaintext data.
一方、暗号データでの計算処理が平文データでの処理結果と対応するような暗号データ(=準同型性のある暗号データ)は、現在いくつか知られている。かかる暗号データを用いれば、サーバで一定の計算処理を行っても結果を同じ形式の暗号データで得ることができ、これをクライアントに提供できる。クライアントは対応する秘密鍵でこれを復号できる。つまり、準同型性のある暗号データを利用すれば、サーバ上で行うデータの計算処理に関しても、これをクラウド管理者に内容秘匿でクライアントが管理できる。 On the other hand, there are some known encrypted data (= encrypted data having homomorphism) in which the calculation processing of the encrypted data corresponds to the processing result of the plaintext data. If such encrypted data is used, the result can be obtained as encrypted data of the same format even if a certain calculation process is performed in the server, and this can be provided to the client. The client can decrypt this with the corresponding private key. In other words, if encrypted data having homomorphism is used, the client can manage the data calculation processing performed on the server with the content kept secret from the cloud administrator.
しかしながら、準同型性が制限なくいかなる計算においても成立するという性質を有する暗号データは現状知られていない。例えば、加算のみ、1回の乗算のみなど、限定的な範囲でのみ準同型性を有しているのが通例である。したがって、クライアントがサーバのサービスを受ける場合には、目的とする結果を得るために、準同型性を利用できる計算を一度経由してその後にクライアントで後処理を行うというような手順が必要になる場合がある。このような手順は、クライアントの処理負担が大きくなることを意味する。 However, at present, there is no known cryptographic data having a property that homomorphism is established in any calculation without limitation. For example, it is usual to have homomorphism only in a limited range, such as only addition and only one multiplication. Therefore, when the client receives the service of the server, it is necessary to perform a procedure in which the calculation is performed once using the homomorphism and then the client performs the post-processing in order to obtain the desired result. There are cases. Such a procedure means that the processing load on the client increases.
本発明は、暗号化されたデータを記憶保持し、要求に応じて当該暗号データを用いて一定の計算処理を行い暗号で結果を提供するサーバおよびサービス方法において、復号時のクライアントの処理負担を軽減することが可能なサーバおよびサービス方法に提供することを目的とする。 The present invention relates to a server and a service method for storing and holding encrypted data, performing a predetermined calculation process using the encrypted data in response to a request, and providing the result in an encrypted form, and reduces a processing load on a client at the time of decryption. It is an object to provide a server and a service method that can be reduced.
本発明の一態様であるサーバは、次式:
c1=e1A+pe2
c2=e1P+pe3+m
c=(c1,c2)
ここで、e1、e2は、それぞれ、成分数がnのベクトルで各成分は分散s2の離散ガウス分布からサンプリングした整数。e3は、成分数がlのベクトルで各成分は分散s2の離散ガウス分布からサンプリングした整数。mはベクトル形式を有する平文データで、成分数がlで各成分はpを法として表された整数。
n、s、l、p、A、Pは以下による。
nは正の整数。sは正の実数。lは正の整数。pは正の整数でpとqは互いに素。qは正の整数。Aは、n行n列の正方行列で、各要素は整数の集合(0,…,q−1)から無作為にサンプリングした整数。PはP=pR−ASによる。R、Sは、それぞれ、n行l列の行列で各要素は分散s2の離散ガウス分布からサンプリングした整数。
に従うように、クライアントの公開鍵(A,P,n,s)で暗号化された、ベクトル形式を有する暗号データcを複数記憶保持する手段と、前記クライアントから、複数の前記暗号データのうちの2つの暗号データc、c’に対応する2つの平文データm、m’について内積を求めるべき情報がもたらされたときに該情報を受け付ける手段と、前記情報に基づいて、n行n列の正方行列W1=c1’Tc1、n行l列の行列W2=c1’Tc2+c1 Tc2’、およびスカラーξ=c2c2’ Tを算出する手段と、前記正方行列W1、前記行列W2、および前記スカラーξを前記クライアントに提供する手段とを具備する。
The server according to one embodiment of the present invention has the following formula:
c 1 = e 1 A + pe 2
c 2 = e 1 P + pe 3 + m
c = (c 1 , c 2 )
Here, e 1 and e 2 are vectors each having n components, and each component is an integer sampled from a discrete Gaussian distribution having a variance s 2 . e 3 is an integer each component frequency components is a vector of l sampled from a discrete Gaussian distribution of the variance s 2. m is plaintext data having a vector format, where the number of components is 1 and each component is an integer expressed modulo p.
n, s, 1, p, A, and P are as follows.
n is a positive integer. s is a positive real number. l is a positive integer. p is a positive integer and p and q are relatively prime. q is a positive integer. A is a square matrix of n rows and n columns, where each element is an integer randomly sampled from a set of integers (0,..., Q-1). P is based on P = pR-AS. R, S, respectively, each element in a matrix of n rows l column was sampled from a discrete Gaussian distribution of the variance s 2 integer.
Means for storing and holding a plurality of encrypted data c having a vector format, which is encrypted with the public key (A, P, n, s) of the client, from the client. Means for receiving information when an inner product is to be obtained for the two plaintext data m and m 'corresponding to the two encrypted data c and c', and n-row and n-column means for calculating a
このサーバが記憶保持する複数の暗号データc、c’、…は、それらの平文データm、m’、…との関係として、複数個(任意個)の加算、および1度のテンソル積mTm’において準同型性を有している。しかしながら、内積mm’Tに関しては直接的な準同型性がない。クライアントが内積mm’Tを得たい場合には、可能性として、テンソル積mTm’を利用する準同型演算の結果としてこれをクライアントに提供できる。このサーバでは、さらに、このようなテンソル積を利用せずに内積演算対応ができるように、クライアントから平文データm、m’について内積を求めるべき情報がもたらされたときに、これに基づいて、n行n列の正方行列W1=c1’Tc1、n行l列の行列W2=c1’Tc2+c1 Tc2’、およびスカラーξ=c2c2’ Tを算出し、これらをクライアントに提供する。 A plurality of (arbitrary) additions and a tensor product m T are stored in the server as a relationship with the plaintext data m, m ′,. m ′ has homomorphism. However, there is no direct homomorphism with respect to inner product mm 'T. Client inner product mm 'when it is desired to obtain a T, as the possibility, tensor product m T m' can be provided to the client as a result of the homomorphic operation utilizing. Further, in this server, when information from the client to obtain the inner product of the plaintext data m and m ′ is provided so that the inner product operation can be supported without using such a tensor product, the information is calculated based on the information. , N rows and n columns square matrix W 1 = c 1 ′ T c 1 , n rows and l column matrix W 2 = c 1 ′ T c 2 + c 1 T c 2 ′, and scalar ξ = c 2 c 2 ′ T And provide them to the client.
クライアントにおける復号処理では、W1に、内積算出対応秘密鍵S*(=SST=(γij)とする)を掛けてそのトレースを求め、W2に、秘密鍵Sの転置行列ST(=(σij)とする)を掛けてそのトレースを求め、これらの結果の和にξを加え、最後にpを法とする整数に直すと、目的の、m、m’の内積m m’Tが得られる。これらの復号処理で、掛け算は合計「n(n+l)」回、足し算は合計「n(n+l)+1」回の演算量となり、テンソル積を利用する場合より、クライアントの処理負担は劇的に軽減される。 In the decoding process in the client, the W 1, the trace determined by multiplying the inner product calculation corresponding secret key S * (= SS T = a (γ ij)), in W 2, transposed matrix S T of the secret key S (= (Σ ij )) to find the trace, add ξ to the sum of these results, and finally convert it to an integer modulo p, yielding the desired inner product m m m ' T is obtained. In these decoding processes, the multiplication requires a total of “n (n + 1)” times, and the addition requires a total of “n (n + 1) +1” times. Thus, the processing load on the client is dramatically reduced as compared with the case of using a tensor product. Is done.
また、別の態様であるサービス方法は、次式:
c1=e1A+pe2
c2=e1P+pe3+m
c=(c1,c2)
ここで、e1、e2は、それぞれ、成分数がnのベクトルで各成分は分散s2の離散ガウス分布からサンプリングした整数。e3は、成分数がlのベクトルで各成分は分散s2の離散ガウス分布からサンプリングした整数。mはベクトル形式を有する平文データで、成分数がlで各成分はpを法として表された整数。
n、s、l、p、A、Pは以下による。
nは正の整数。sは正の実数。lは正の整数。pは正の整数でpとqは互いに素。qは正の整数。Aは、n行n列の正方行列で、各要素は整数の集合(0,…,q−1)から無作為にサンプリングした整数。PはP=pR−ASによる。R、Sは、それぞれ、n行l列の行列で各要素は分散s2の離散ガウス分布からサンプリングした整数。
に従うように、クライアントの公開鍵(A,P,n,s)で暗号化された、ベクトル形式を有する暗号データcを複数記憶保持し、前記クライアントから、複数の前記暗号データのうちの2つの暗号データc、c’に対応する2つの平文データm、m’について内積を求めるべき情報がもたらされたときに該情報を受け付け、前記情報に基づいて、n行n列の正方行列W1=c1’Tc1、n行l列の行列W2=c1’Tc2+c1 Tc2’、およびスカラーξ=c2c2’ Tを算出し、前記正方行列W1、前記行列W2、および前記スカラーξを前記クライアントに提供する。
A service method according to another aspect has the following formula:
c 1 = e 1 A + pe 2
c 2 = e 1 P + pe 3 + m
c = (c 1 , c 2 )
Here, e 1 and e 2 are vectors each having n components, and each component is an integer sampled from a discrete Gaussian distribution having a variance s 2 . e 3 is an integer each component frequency components is a vector of l sampled from a discrete Gaussian distribution of the variance s 2. m is plaintext data having a vector format, where the number of components is 1 and each component is an integer expressed modulo p.
n, s, 1, p, A, and P are as follows.
n is a positive integer. s is a positive real number. l is a positive integer. p is a positive integer and p and q are relatively prime. q is a positive integer. A is a square matrix of n rows and n columns, where each element is an integer randomly sampled from a set of integers (0,..., Q-1). P is based on P = pR-AS. R, S, respectively, each element in a matrix of n rows l column was sampled from a discrete Gaussian distribution of the variance s 2 integer.
Stores a plurality of encrypted data c having a vector format, which is encrypted with the public key (A, P, n, s) of the client, and sends two of the plurality of encrypted data from the client. When the information for obtaining the inner product is obtained for the two plaintext data m and m ′ corresponding to the encrypted data c and c ′, the information is received, and based on the information, a square matrix W 1 of n rows and n columns is received. = C 1 ′ T c 1 , a matrix W 2 of n rows and l columns W 2 = c 1 ′ T c 2 + c 1 T c 2 ′, and a scalar ξ = c 2 c 2 ′ T , and the square matrix W 1 , Provide the matrix W 2 and the scalar ξ to the client.
このサービス方法は、上記のサーバに対応する方法である。 This service method is a method corresponding to the server described above.
本発明によれば、暗号化されたデータを記憶保持し、要求に応じて当該暗号データを用いて一定の計算処理を行い暗号で結果を提供するサーバおよびサービス方法において、復号時のクライアントの処理負担を軽減することが可能になる。 According to the present invention, in a server and a service method for storing and holding encrypted data, performing a predetermined calculation process using the encrypted data in response to a request, and providing a result by encryption, a client process at the time of decryption The burden can be reduced.
以上を踏まえ、以下では本発明の実施形態を図面を参照しながら説明する。図1は、一実施形態であるサーバおよびこれを含むシステムを示している。同図において、サーバ10は例えばクラウドサーバであり、一方、クライアント30はサーバ10が提供するサービスを享受する機器である。ひとつのサーバ10にクライアント30は多数存在し得る(ほかのクライアントは不図示)。サーバ10とクライアント30とは管理主体が異なる前提で以下説明するが、データの暗号化により、第三者機器20からは、見掛け上サーバ10がクライアント30の一部であるかのようになっている。
Based on the above, embodiments of the present invention will be described below with reference to the drawings. FIG. 1 shows a server according to an embodiment and a system including the server. In the figure, a
すなわち、クライアント30は、その管理するデータをサーバ10上では暗号化された状態で記憶保持させている。この暗号化に必要な公開鍵はクライアント30が開示している。したがって、クライアント30が開示している公開鍵で第三者機器20が暗号化したデータをサーバ10にアップロードすると、クライアント30はこのデータをクラウド管理者(サーバ10の管理者)に内容秘匿のまま自身が秘密鍵で解読(復号)可能な暗号データとしてサーバ10上に置かれた状態で管理できる。例えばデータとして個人の医療検査結果など秘匿性の高いデータを扱う場合に都合がよい。
That is, the
サーバ10は、通信インターフェース11、暗号データ記憶保持部12、計算処理部(算出部)13、セキュリティ更新処理部(変換部、置き換え部)14を有する。クライアント30は、パラメータ生成保持部31、鍵生成部32、鍵保持部33、通信インターフェース34、一般処理部35(要求内容生成、その結果の復号を行う)、更新鍵生成部36を有する。第三者機器20は、処理部(暗号化部)21、通信インターフェース22を有する。
The
以下、サーバ10、クライアント30、および第三者機器20の各内部構成についてその機能を説明するが、理解の便宜のため一連の動作に沿って説明するので、必ずしも機器ごとにまとまった説明にならない点を断っておく。なお、図1中の一点鎖線で囲んだ部分は、暗号データのセキュリティをアップデートするためのオプション構成であり、セキュリティのアップデートが不要の場合は省略できる。以下、機能ブロック図として描いた図1を中心に参照して説明するが、適宜、説明図である図2ないし図10を参照する。
Hereinafter, the functions of the internal configuration of the
(公開鍵および秘密鍵の生成)
公開鍵および秘密鍵の生成のため、まず、クライアント30は、パラメータ生成保持部31によりパラメータ(q,l,p)を生成する。qは正の整数、lは正の整数、pは正の整数で、pとqは互いに素(つまり最小公倍数が1)である。lは、平文ベクトルの成分数として設定された数である。平文ベクトルは、成分数がlで各成分がpを法として表された整数とする。以上図2を参照することができる。生成されたパラメータはパラメータ生成保持部31に保持されるとともに、鍵生成部32に渡される。なお、「ベクトル」は断りのない限り横ベクトルを意味する(以下でも同様)。
(Generation of public key and private key)
To generate the public key and the secret key, first, the
鍵生成部32は、パラメータ生成部31から渡されたパラメータ(q,l,p)に基づき公開鍵、秘密鍵、および内積算出対応秘密鍵を生成する。手順は以下であり図3を参照できる。まず、sを決めnを決める。sは正の実数で、離散ガウス分布の標準偏差として設定する。nは正の整数でセキュリティ(安全性)に関連する数であり、q、s、nで暗号としての安全性が定まる。ちなみに、本実施形態で例えばq=2114、s=8.0、n=2661とした場合には、80ビットセキュリティの暗号が得られる。一般にNビットセキュリティの暗号とは、2N回の解読計算で鍵(秘密鍵)が見つかる暗号である。
The
次に、鍵生成部32は、正規ランダム行列R、Sを生成する。すなわち、R、Sは、それぞれ、n行l列の行列で各要素は分散s2の離散ガウス分布からサンプリングした整数である。加えて、鍵生成部32は、一様ランダム行列Aを生成する。すなわち、Aは、n行n列の正方行列で、各要素は整数の集合(0,…,q−1)から無作為にサンプリングした整数である。
Next, the
さらに、鍵生成部32はPを計算する。計算式はP=pR−ASである。Pは、n行l列の行列で、各要素はqを法として表された整数になる。以上の一連の手順により、公開鍵は(A,P,n,s)として、秘密鍵はSとして、内積算出対応秘密鍵はS*(=SST)として、それぞれ生成される。生成された各鍵は鍵保持部33に渡され、そこで記憶保持される。秘密鍵Sおよび内積算出対応秘密鍵はS*は、クライアント30の外に流出しないように管理される一方、公開鍵(A,P,n,s)は、第三者機器20のため開示される。第三者機器20は、例えば医療機関などの秘匿性のあるデータを取り扱う者が有する機器を想定することができる。
Further, the
(暗号化)
図1に示すシステムでは、データの暗号化を公開鍵でクライアント30が行い、その結果である暗号データをサーバ10に送ってサーバ10上に記憶保持させることができる。同様に、第三者機器20がその有する、秘匿が必要な平文のデータをクライアント30の公開鍵で暗号化し、その結果である暗号データをサーバ10に送ってサーバ10上に記憶保持させることもできる。暗号化の処理自体は両者とも変わらないが、後者の動作として以下説明する。手順は以下であり図4を参照できる。
(encryption)
In the system shown in FIG. 1, the
まず、第三者機器20の処理部21はノイズe1、e2を生成する。e1、e2は、それぞれ、成分数がnのベクトルで、各成分は分散s2の離散ガウス分布からサンプリングした整数である。加えて、処理部21はノイズe3を生成する。e3は、成分数がlのベクトルで、各成分は分散s2の離散ガウス分布からサンプリングした整数である。
First, the processing unit 21 of the
次に、処理部21はc1を計算する。計算式はc1=e1A+pe2である。c1は、成分数がnのベクトルで、各成分はqを法として表された整数になる。加えて、処理部21はc2を計算する。計算式はc2=e1P+pe3+mである。mは第三者機器20において生成された平文ベクトルで、成分数がlで各成分はpを法として表された整数である。c2は、成分数がlのベクトルで各成分はqを法として表された整数になる。
Then, the processing unit 21 calculates c 1. The calculation formula is c 1 = e 1 A + pe 2 . c 1 is a vector of frequency components is n, each component is an integer represented the q modulo. In addition, the processing unit 21 calculates c 2. The calculation formula is c 2 = e 1 P + pe 3 + m. m is a plaintext vector generated by the third-
以上の一連の手順により、暗号データcはc=(c1,c2)として生成される。なお、第三者機器20は、以上の一連の手順で公開鍵(A,P,n,s)が必要であるが、これ以外に少なくともパラメータ(l,p)が必要である。パラメータ(l,p)は第三者機器20において前提として了解されているものとする。生成された暗号データは、処理部21から通信インターフェース22に渡され、通信インターフェース22は、渡された暗号データを通信路を介してサーバ10に向けて送る。
Through the above series of procedures, the encrypted data c is generated as c = (c 1 , c 2 ). Note that the
サーバ10は、第三者機器20から送られてきた暗号データを通信インターフェース11で受け取る。通信インターフェース11で受け取られた暗号データは、通信インターフェース11から暗号データ記憶保持部12に渡される。暗号データ記憶保持部12は、通信インターフェース11から渡された暗号データを記憶保持する。この暗号データは、すなわち、サーバ10の管理者に内容秘匿のままクライアント30のみが復号可能な暗号データとしてサーバ10上に置かれたデータになっている。
The
(復号)
図1に示すシステムで復号はもっぱらクライアント30で行われる。これにより、サーバ10の管理者に対するデータの秘匿性が保たれる。単に復号する場合の動作を以下説明する。暗号データ記憶保持部12に記憶保持された暗号データをクライアント30が復号して平文データに戻す場合には、クライアント30は、その暗号データc=(c1,c2)を提出することの要求をサーバ10に対して行う。そのため、その旨の情報を一般処理部35で生成する。この要求の旨の情報は、一般処理部35から通信インターフェース34に渡される。
(Decryption)
In the system shown in FIG. 1, decryption is performed exclusively by the
通信インターフェース34に渡された要求の旨の情報は、通信インターフェース34から通信路を介してサーバ10に送られる。サーバ10は、クライアント30から送られてきた要求の旨の情報を通信インターフェース11で受け取る。通信インターフェース11で受け取られた要求の旨の情報は通信インターフェース11から計算処理部13に渡される。計算処理部13は、渡された要求の内容に従い、暗号データ記憶処理部12から該当の暗号データc=(c1,c2)を取り出す。そして、計算処理部13は、取り出した暗号データに対してこの場合特に処理を行わずに通信インターフェース11に渡す。なお、一般には計算処理部13が暗号データに対して一定の計算処理を行う場合もあるがその場合については後述する。
The information indicating the request passed to the
通信インターフェース11に渡された暗号データは、通信インターフェース11から通信路を介してクライアント30に送られる。クライアント30は、サーバ10から送られてきた暗号データを通信インターフェース34で受け取る。通信インターフェース34で受け取られた暗号データc=(c1,c2)は通信インターフェース34から一般処理部35に渡される。
The encrypted data passed to the communication interface 11 is sent from the communication interface 11 to the
一般処理部35は、暗号データc=(c1,c2)の復号動作として以下を行う。この点は図5を参照できる。まず、mバーを計算する。計算式は、mバー=m=c1S+c2である。Sは前述してあるように秘密鍵であり、鍵保持部33に保持されている。次に平文ベクトルmを計算する。計算式は、m=mバー mod pである。mは復号で得られた平文ベクトル(=復号結果)になる。当然ながら、この復号は秘密鍵Sを保持しているクライアント30以外では実行できない。秘密鍵はクライアント30の外に流出しないように管理されている。
The
以上により、サーバ10が行うクライアント30のためのデータの記憶保持というサービスの点で、サーバ管理者に対するデータの秘匿性が保たれることを説明した。
As described above, it has been described that the confidentiality of data to the server administrator is maintained in terms of the service of storing and holding data for the
(暗号データの性質)
次に、上記で説明したように生成された暗号データに特有な性質について説明する。図2、図3、図4に示された手順で生成された暗号データには、一定の準同型性がある。そのひとつは加算の準同型性であり、一般に、c+c’=Enc(pk,m+m’) が成り立っている。ここで「Enc」は、上記で説明した暗号化を平文データm+m’に対して公開鍵pkで行うことの関数を意味し、具体的に公開鍵pk(public key)=(A,P,n,s)である。
(Properties of encrypted data)
Next, a characteristic unique to the encrypted data generated as described above will be described. The encrypted data generated by the procedures shown in FIGS. 2, 3, and 4 have a certain homomorphism. One of them is the homomorphism of addition, and in general, c + c ′ = Enc (pk, m + m ′). Here, “Enc” means a function of performing the above-described encryption on the plaintext data m + m ′ using the public key pk, and specifically, the public key pk (public key) = (A, P, n , S).
つまり、暗号データc、c’とその対応する平文データm、m’とで、暗号データで行った加算c+c’の演算結果は、平文データで行った加算m+m’の演算結果を暗号化したものに等しくなっている。この点は、図2〜図4を参照して追ってみれば確かめることができる。 That is, with the encrypted data c and c ′ and the corresponding plaintext data m and m ′, the operation result of the addition c + c ′ performed on the encrypted data is obtained by encrypting the operation result of the addition m + m ′ performed on the plaintext data. Is equal to This point can be confirmed by referring to FIGS.
かかる暗号データであることから、サーバ10で加算の演算処理を行うとその結果を、同じ形式で暗号化されたデータとしてクライアント30に提供できる。クライアント30は対応する秘密鍵Sでこれを復号できる。つまり、一定の準同型性のある暗号データを利用することにより、サーバ10上で行うデータの一定の演算処理に関しても、これをサーバ管理者に内容秘匿でクライアント30が管理できる。
Since the data is such encrypted data, the result of the addition operation performed by the
図2、図3、図4に示された手順で生成された暗号データには、もうひとつの準同型性が備わっている。すなわち、この暗号データは、一般にcTc’=Enc(pk,mTm’)が成り立っている。ここで、cT、mTはそれぞれ、横ベクトルc、mを縦ベクトルに直したものである。つまり、暗号データc、c’とその対応する平文データm、m’とで、暗号データで行ったテンソル積cTc’(=n+l行n+l列の正方行列)の演算結果は、平文データで行ったテンソル積mTm’の演算結果を暗号化したもの(=n+l行n+l列の正方行列)に、要素ごとに等しくなっている。この点は、図2〜図4を参照して追ってみれば確かめることができる。 The encrypted data generated by the procedures shown in FIGS. 2, 3 and 4 have another homomorphism. That is, this encrypted data generally satisfies c T c ′ = Enc (pk, m T m ′). Here, c T and m T are obtained by converting the horizontal vectors c and m into vertical vectors, respectively. That is, the operation result of the tensor product c T c ′ (= square matrix of n + 1 rows and n + 1 columns) performed on the encrypted data between the encrypted data c and c ′ and the corresponding plaintext data m and m ′ is plaintext data. The encrypted result of the performed tensor product m T m ′ (= a square matrix of n + 1 rows and n + 1 columns) is equal for each element. This point can be confirmed by referring to FIGS.
よって、このような乗算の準同型性のある暗号データを利用することにより、サーバ10上で行う積を求める演算処理に関しても、これをサーバ管理者に内容秘匿でクライアント30が管理できる。クライアント30はその演算結果を秘密鍵Sで復号できる。
Therefore, by using such cryptographic data having homomorphism of the multiplication, the
以上の点をまとめると、図2、図3、図4に示された手順で生成された暗号データは、2次形式の計算を行う処理についてサーバ10で扱うことができることを意味する。サーバ10でこのような処理を行うと、その結果はもとの公開鍵で暗号化された形式を有する、平文データで同様な処理を行った結果に対応したデータになる。したがって、クライアント30に代わって計算処理をサーバ10で行いその結果をクライアント30に提供しクライアント30はこれを秘密鍵で復号できる。すなわち、2次形式の計算処理に関して、これをサーバ管理者に内容秘匿でクライアント30が管理できることになる。
Summarizing the above points, it means that the
以上説明した準同型性と2次形式の計算との関係をもう一度説明したものが図6である。図6は以上の点から容易に理解できると思われるが簡単におさらいする。まず、図2〜図4によれば、平文ベクトルm、m’とその暗号文ベクトルc、c’とに関して以下が成り立つ。
c+c’=Enc(pk,m+m’) ・・・加算の準同型性
cTc’=Enc(pk,mTm’) ・・・テンソル積の乗算の準同型性
FIG. 6 illustrates the relationship between the homomorphism described above and the calculation of the quadratic form once again. FIG. 6 may be easily understood from the above points, but will be briefly reviewed. First, according to FIGS. 2 to 4, the following holds for the plaintext vectors m and m ′ and their ciphertext vectors c and c ′.
c + c '= Enc (pk , m + m') homomorphism c T c '= Enc (pk , m T m' of ... addition) homomorphism multiplication ... tensor product
次に、例えば、平文データxi、yiの各暗号データEnc(pk,xi)、Enc(pk,yi)を用いた2次形式の計算:
N
Σ ai・Enc(pk,xi)・Enc(pk,yi) (iはデータ番号)
i=1
の結果は、次式、平文データを用いた2次形式の計算結果を暗号化したものに等しい。
N
Enc(pk,Σ ai・xiyi)
i=1
Then, for example, plaintext data x i, the encrypted data Enc of y i (pk, x i) , Enc (pk, y i) calculation of the quadratic form with:
N
Σ a i · Enc (pk, x i ) · Enc (pk, y i ) (i is a data number)
i = 1
Is equivalent to the following equation, which is the result of encrypting a secondary calculation using plaintext data.
N
Enc (pk, Σ a i · x i y i )
i = 1
したがって、サーバ管理者に対して平文データxi、yiを秘匿したままサーバ10で計算処理を行い、その後クライアント30は復号でその計算結果を得ることができる。
Accordingly, performs calculation processing while the
(内積演算に関して)
上記では、暗号データにおけるテンソル積の乗算の準同型性について述べたが、これは、もちろん、平文ベクトルm、m’の内積演算m m’Tの結果と、そのそれぞれの暗号文ベクトルc、c’の内積演算c c’T の結果との準同型性を意味するものではない。クライアント30が内積mm’Tを得たい場合には、可能性として、テンソル積mTm’を利用する準同型演算の結果としてならばこれをクライアント30に提供できる。この場合、端的には、平文ベクトルの各成分をそれぞれ別の平文として暗号化しそして復号する処理を行うことに相当し、クライアント30での復号処理の効率は高くならない。
(About inner product operation)
In the above, the homomorphism of the multiplication of the tensor product in the encrypted data has been described. However, this is, of course, the result of the inner product operation m m ′ T of the plaintext vectors m and m ′ and the respective encrypted text vectors c and c. Does not imply homomorphism with the result of the inner product operation c c ' T of'.
そこで、このサーバ10は、内積を得たい場合のクライアント30の復号処理を効率化する内積演算対応機能を有している。この説明として図7を参照する。平文ベクトルm、m’の内積m m’Tに関しては、qを法とする数(m m’T)バーとして、図7の中央のブロック内に示されている式の変形(主に行列のトレースに関する性質を利用)により、
Tr(c1’Tc1SST)+Tr((c1’Tc2+c1 Tc2’)ST)+c2c2’ T
と表すことができる。
Therefore, the
Tr (c 1 'T c 1 SS T) + Tr ((c 1'
It can be expressed as.
つまり、クライアント30がm、m’の内積m m’Tを得るには、c1’Tc1(n行n列の行列;=W1=(αij)とする)、c1’Tc2+c1 Tc2’(n行l列の行列;=W2=(βij)とする)、およびc2c2’ T(スカラー;=ξとする)を計算させることの要求をサーバ10に送ればよい。その後のクライアント30では、W1に、内積算出対応秘密鍵S*(=SST=(γij)とする)を掛けてそのトレースを求め、W2に、秘密鍵Sの転置行列ST(=(σij)とする)を掛けてそのトレースを求め、上記の結果の和にξを加え、最後にpを法とする整数に直すと、目的の、m、m’の内積m m’Tが得られる。
That is, in order for the
すなわち、サーバ10は、クライアント30から、2つの暗号データc、c’に対応する2つの平文データm、m’について内積を求めるべき情報がもたらされたときにこの情報を受け付け(通信インターフェース11)、この情報に基づいて、n行n列の正方行列W1=c1’Tc1、n行l列の行列W2=c1’Tc2+c1 Tc2’、およびスカラーξ=c2c2’ Tを算出する(計算処理部13)。そしてサーバ10は、正方行列W1、行列W2、およびスカラーξをクライアント30に提供する(計算処理部13から通信インターフェース11を介してクライアント30へ)。その後のクライアント30での動作は上記のとおりである。
That is, the
クライアント30における計算量に関しては、
Tr(c1’Tc1SST)+Tr((c1’Tc2+c1 Tc2’)ST)+c2c2’ T
n n l
= Σ ( Σ αikγki + Σ βijσji)+ξ
i=1 k=1 j=1
と表されるので、総計算量として、掛け算が合計「n(n+l)」回、足し算が合計「n(n+l)+1」回で済むことが示されている。この総計算量によれば、テンソル積を利用する内積の計算の場合より、例えば、80ビットセキュリティの場合、128ビットセキュリティの場合で、それぞれ30倍以上復号処理の高速化が可能である。
Regarding the calculation amount in the
Tr (c 1 'T c 1 SS T) + Tr ((c 1'
n n l
= Σ (Σ α ik γ ki + Σ β ij σ ji ) +
i = 1 k = 1 j = 1
Thus, it is shown that, as the total amount of calculation, the multiplication can be performed by a total of “n (n + 1)” times and the addition can be performed by a total of “n (n + 1) +1” times. According to the total amount of calculation, the decoding process can be more than 30 times faster in the case of 80-bit security and 128-bit security, respectively, than in the case of calculating the inner product using the tensor product.
(内積の和の演算に関して)
次に、内積の和の演算に関して図8を参照して説明する。図7に示した点によれば、平文ベクトルm1、m1’の内積m1 m1’Tから、平文ベクトルmu、mu’の内積mu mu’Tまでの和(1〜u)をクライアント30が必要とする場合には、それぞれの内積についてのW1、W2、ξをu組得てこれらをサーバ10からクライアント30に送らせるには及ばないことがわかる。換言すると、それぞれの内積についてのW1、W2、ξをサーバ10が求め、そして、ΣW1、ΣW2、Σξ がクライアント30に送られればよく(Σは1〜uまでの和をとる)、復号は、次式で達成される。すなわち、
(Tr(ΣW1SST)+Tr(ΣW2ST)+Σξ)mod p
である。
(Regarding the calculation of the sum of inner products)
Next, the calculation of the sum of inner products will be described with reference to FIG. According to that shown in FIG. 7, the sum of the T '
(Tr (ΣW 1 SS T) + Tr (
It is.
この式は、1つの内積を求めるため復号する場合の式と形式が同じであり、したがって、やはり、クライアント30では、総計算量として、掛け算が合計「n(n+l)」回、足し算が合計「n(n+l)+1」回で済むことが分かる。クライアント30がベクトルデータの内積の和を必要とするアプリケーションは数多く考えられ、実施形態のサーバ10によれば、このような場合にも非常に効率的な復号がクライアント30において可能である。
This formula has the same form as the formula for decoding to obtain one dot product, so that the
以上により、準同型性のある暗号データを利用し、サーバ10上で行うデータの計算処理に関して、これをサーバ管理者に内容秘匿でクライアント30が管理できる点を説明した。
As described above, it has been described that the
(更新鍵の生成)
次に、暗号データ記憶保持部12に記憶保持された暗号データについてそのセキュリティを更新する手順を説明する(これは図1中の一点鎖線で囲われた構成によってなされるオプションである)。セキュリティ更新が必要になる一般的理由は、暗号データは長期的視点で危殆化する可能性を有しているためである。暗号データのセキュリティを更新するには、一般に、一旦平文データに復号してから再度アップデートに対応した暗号化を行うか、平文データに復号せず直接に暗号データに対してセキュリティ更新の処理を行うかのいずれかになる。いずれも処理負担が軽いとは限られず、クライアント30ではなくサーバ10の側で処理を行う方が好ましいと考えられる。
(Generation of update key)
Next, a procedure for updating the security of the encrypted data stored and held in the encrypted data storage and holding
サーバ10の側で暗号データのセキュリティ更新の処理を行うと、前者の場合では、その処理時にサーバ管理者に対するデータ内容の秘匿性がくずれる。よって、データの記憶保持、計算処理、セキュリティ更新という一連のサービスで一貫した秘匿性を保てず、サービスとして不備が含まれたものになってしまう。そこで、このサーバ10は、準同型性を有する暗号データを扱ってなおかつ直接に暗号データにセキュリティ更新の処理ができるように構成されている。そして、セキュリティ更新の処理を行っても暗号データの準同型性が保たれる。
If the
セキュリティ更新のための動作はクライアント30での更新鍵の生成から始まる。以下の手順は図9を参照することができる。まず、クライアント30の鍵生成部32は、公開鍵(A,P,n,s)と同様に生成させた新公開鍵(Anew,Pnew,nnew,snew)、および秘密鍵Sと同様に生成させた新秘密鍵Snewを用意する。この動作は図3を参照できる。nnewは正の整数でnより大(=セキュリティの向上ため)である。新公開鍵および新秘密鍵は、鍵生成部32から鍵保持部33に渡されて保持され、さらに鍵保持部33から更新鍵生成部36に渡される。なお、公開鍵(A,P,n,s)および秘密鍵Sも鍵保持部33から更新鍵生成部36に渡される。
The operation for security update starts with generation of an update key in the
更新鍵生成部36は、まず、κ=ceiling(log2q)を計算する。ceiling( )は天井関数であり、括弧内の数をそれ以上の最小の整数に変換する関数である。次に、更新鍵生成部36は、ランダム行列X、Eを生成する。すなわち、Xは、nκ行nnew列の行列で各要素は整数の集合(0,…,q−1)から無作為にサンプリングした整数である。Eは、nκ行l列の行列で各要素は分散snew 2の離散ガウス分布からサンプリングした整数である。
The update
さらに、更新鍵生成部36はYを計算する。計算式はY=−XSnew+pE+Power2(S)である。ここで、Power2(S)はnκ行l列の行列で、Bits(c)・Power2(S)=c・SとなるようにSを変換する関数である。さらにここで、Bits(c)は、成分数がnで各成分がqを法として表された整数であるベクトルcについてその各成分をビット化し、成分数がnκになったベクトルである。Yは、nκ行l列の行列で各要素はqを法として表された整数になる。
Further, the update
以上の一連の手順により、更新鍵生成部36で更新鍵は(X,Y)として生成される。この更新鍵は、公開鍵と一定の関係性を有するように生成されている。そして、この更新鍵、および鍵保持部33に保持された新公開鍵は、それぞれ、更新鍵生成部36、鍵保持部33から通信インターフェース34に渡される。通信インターフェース34に渡された更新鍵および新公開鍵は、通信インターフェース34から通信路を介してサーバ10に送付される。
Through the above series of procedures, the update key is generated as (X, Y) by the update
サーバ10は、クライアント30から送付されてきた更新鍵および新公開鍵を通信インターフェース11で受け取る。通信インターフェース11で受け取られた更新鍵および新公開鍵は、通信インターフェース11からセキュリティ更新処理部14に渡される。セキュリティ更新処理部14は、渡された更新鍵および新公開鍵を用いて、暗号データ記憶処理部12に記憶保持された暗号データに対してセキュリティを更新する処理を行う(以下で説明する)。
The
(セキュリティ更新)
サーバ10は、クライアント30から送付されてきた更新鍵(X,Y)および新公開鍵(Anew,Pnew,nnew,snew)を用いて暗号データ記憶処理部12に記憶保持された暗号データに対してセキュリティを更新する処理を行う。この動作はセキュリティ更新処理部14による。セキュリティ更新処理部14は、暗号データに行うセキュリティ更新として、更新鍵および新公開鍵を用いて、暗号データを、新公開鍵により暗号化された形式を有しかつもとの準同型性と同様の準同型性を有するデータである更新暗号データに変換する。手順は以下であり図10を参照できる。
(Security Update)
The
まず、セキュリティ更新処理部14は、ノイズf1、f2を生成する。f1、f2は、それぞれ、成分数がnnewのベクトルで、各成分は分散snew 2の離散ガウス分布からサンプリングした整数である。加えて、セキュリティ更新処理部14は、ノイズf3を生成する。f3は、成分数がlのベクトルで、各成分は分散snew 2の離散ガウス分布からサンプリングした整数である。
First, the security
次に、セキュリティ更新処理部14は、Fを計算する。計算式はF=[Bits(c1)X | Bits(c1)Y+c2]である。ここで記号「|」は、行列の連結を意味する。Fは、成分数がnnew+lのベクトルで、各成分はqを法として表された整数になる。c1、c2については、暗号データ(c1,c2)を暗号データ記憶処理部12から取り出して用いる。さらに、セキュリティ更新処理部14は、ゼロの暗号データE(0)を計算する。計算式は、E(0)=f1[Anew|Pnew]+p[f2|f3](図4参照)である。
Next, the security
以上の一連の手順により、セキュリティ更新後の暗号データである更新暗号データcnew=(cnew1,cnew2)は、F+E(0)として算出される。もとの暗号データc=(c1,c2)から変換され算出された更新暗号データcnew=(cnew1,cnew2)は、セキュリティ更新処理部14から暗号データ記憶保持部12に渡される。セキュリティ更新処理部14は、もとの暗号データを破棄して更新暗号データで置き換える。
Through the above series of procedures, updated encrypted data c new = (c new1 , c new2 ), which is encrypted data after security update, is calculated as F + E (0). The updated encrypted data c new = (c new1 , c new2 ) converted and calculated from the original encrypted data c = (c 1 , c 2 ) is passed from the security
以上説明した、暗号データから更新暗号データへの変換は、暗号データとしてもとの準同型性が保たれたものになる。この点は、図9、図10、および図2〜図4を参照して追ってみれば確かめることができる。よって、要求に応じて暗号データを用いて一定の計算処理を行い暗号で結果を提供するサーバ10において、暗号データに対するセキュリティのアップデートが可能である。
The above-described conversion from the encrypted data to the updated encrypted data maintains the original homomorphism as the encrypted data. This point can be confirmed by referring to FIGS. 9 and 10 and FIGS. Therefore, in the
そして、このセキュリティ更新は、暗号データに対してサーバ10の動作として行われるので、リソースが限られているクライアント30の処理負担ならない。また、このセキュリティ更新は、暗号解読技術が進展して安全性が低下しても何度も繰り返すことができる。もとよりサーバ10として、データの記憶保持、計算処理、セキュリティ更新という一連のサービスで、一貫して秘匿性が保たれているという大きな効果を有している。なお、セキュリティ更新がされたあとは、当然ながらクライアント30は、これまでの公開鍵に代わり新公開鍵を開示し、その結果、その後第三者機器20は、新公開鍵を用いて暗号化が必要な平文データを暗号化しこれをサーバ10に送る(アップロードする)ことになる。
Since the security update is performed on the encrypted data as an operation of the
以上、本発明の実施形態を説明したが、実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although the embodiments of the present invention have been described above, the embodiments are presented as examples and are not intended to limit the scope of the invention. The new embodiment can be implemented in other various forms, and various omissions, replacements, and changes can be made without departing from the spirit of the invention. This embodiment and its modifications are included in the scope and gist of the invention, and are also included in the invention described in the claims and their equivalents.
10…サーバ、11…通信インターフェース、12…暗号データ記憶保持部、13…計算処理部(算出部)、14…セキュリティ更新処理部(変換部、置き換え部)、20…第三者機器、21…処理部(暗号化部)、22…通信インターフェース、30…クライアント、31…パラメータ生成保持部、32…鍵生成部、33…鍵保持部、34…通信インターフェース。35…一般処理部(要求内容生成部、結果の復号部)、36…更新鍵生成部。
DESCRIPTION OF
Claims (6)
c1=e1A+pe2
c2=e1P+pe3+m
c=(c1,c2)
(ここで、e1、e2は、それぞれ、成分数がnのベクトルで各成分は分散s2の離散ガウス分布からサンプリングした整数、
e3は、成分数がlのベクトルで各成分は分散s2の離散ガウス分布からサンプリングした整数、
mはベクトル形式を有する平文データで、成分数がlで各成分はpを法として表された整数、
nは正の整数、
sは正の実数、
lは正の整数、
pは正の整数でpとqは互いに素、
qは正の整数、
Aは、n行n列の正方行列で、各要素は整数の集合(0,…,q−1)から無作為にサンプリングした整数、
PはP=pR−ASによる(ただし、R、Sは、それぞれ、n行l列の行列で各要素は分散s2の離散ガウス分布からサンプリングした整数))
に従うように、クライアントの公開鍵(A,P,n,s)で暗号化された、ベクトル形式を有する暗号データcを複数記憶保持する手段と、
前記クライアントから、複数の前記暗号データのうちの2つの暗号データc、c’に対応する2つの平文データm、m’について内積を求めるべき情報がもたらされたときに該情報を受け付ける手段と、
前記情報に基づいて、
n行n列の正方行列W1=c1’Tc1、
n行l列の行列W2=c1’Tc2+c1 Tc2’、および
スカラーξ=c2c2’Tを算出する手段と、
前記正方行列W1、前記行列W2、および前記スカラーξを前記クライアントに提供する手段と
を具備するサーバ。 The following formula:
c 1 = e 1 A + pe 2
c 2 = e 1 P + pe 3 + m
c = (c 1 , c 2 )
( Here, e 1 and e 2 are vectors each having n components, and each component is an integer sampled from a discrete Gaussian distribution having a variance s 2 ,
e 3 is a vector having l components, where each component is an integer sampled from a discrete Gaussian distribution with variance s 2 ;
m is plaintext data having a vector format, where the number of components is 1 and each component is an integer expressed modulo p ;
n is a positive integer ,
s is a positive real number ,
l is a positive integer ,
p is a positive integer, p and q are relatively prime ,
q is a positive integer ,
A is a square matrix of n rows and n columns, where each element is an integer randomly sampled from a set of integers (0,..., Q-1) ;
P is due to P = pR-AS (provided that, R, S, respectively, each element in a matrix of n rows l columns integer sampled from a discrete Gaussian distribution of the variance s 2))
Means for storing and holding a plurality of encrypted data c having a vector format, which is encrypted with the public key (A, P, n, s) of the client, according to
Means for receiving, when information from the client to obtain an inner product of two plaintext data m, m ′ corresponding to two encrypted data c, c ′ of the plurality of encrypted data is obtained, ,
Based on the information,
a square matrix W 1 = c 1 ′ T c 1 with n rows and n columns,
n lines l matrix W 2 = c 1 column 'T c 2 + c 1 T c 2', and
Means for calculating a scalar ξ = c 2 c 2 ′ T ;
Means for providing the square matrix W 1 , the matrix W 2 , and the scalar ξ to the client.
前記第2の情報に基づいて、
n行n列の第2の正方行列ΣW1=c1’Tc1+c1”’Tc1”、
n行l列の第2の行列ΣW2=c1’Tc2+c1 Tc2’+c1”’Tc2”+c1”Tc2”’、および
第2のスカラーΣξ=c2c2’T+c2”c2”’Tを算出する手段と、
前記第2の正方行列ΣW1、前記第2の行列ΣW2、および前記第2のスカラーΣξを前記クライアントに提供する手段と
をさらに具備する請求項1記載のサーバ。 From the client, a first inner product that is an inner product of two plaintext data m and m ′ corresponding to two encrypted data c and c ′ of the plurality of encrypted data, and a first inner product of the plurality of encrypted data Second information is obtained which is information to be summed with a second inner product which is an inner product of two plaintext data m "and m""corresponding to the two encrypted data c" and c "". Sometimes means for receiving the second information;
Based on the second information,
a second square matrix of n rows and n columns' W 1 = c 1 ′ T c 1 + c 1 ″ ′ T c 1 ″;
n lines l second matrix row ΣW 2 = c 1 'T c 2 + c 1 T c 2' + c 1 "'T c 2" + c 1 "T c 2"', and
Means for calculating a second scalar Σξ = c 2 c 2 ′ T + c 2 ″ c 2 ″ ′ T ;
The server according to claim 1, further comprising: means for providing the second square matrix {W 1 , the second matrix {W 2 , and the second scalar}} to the client.
前記暗号データに行う前記セキュリティ更新として、前記更新鍵および前記新公開鍵を用いて、前記暗号データを、前記新公開鍵により暗号化された形式を有しかつ準同型性を有するデータである更新暗号データに変換する手段と、
前記暗号データが前記更新暗号データに変換されたあと、前記暗号データを破棄して該暗号データを前記更新暗号データで置き換える手段と
をさらに具備する請求項1記載のサーバ。 An update key having a relationship with the public key, which is a key for performing security update on the encrypted data, and a new public key, which is a public key of the client after the security update, is performed by the client. Means for receiving the updated key and the new public key when sent from
As the security update performed on the encrypted data, using the update key and the new public key, updating the encrypted data to be data having a format encrypted by the new public key and having homomorphism. Means for converting to encrypted data;
2. The server according to claim 1, further comprising: after the encrypted data is converted into the updated encrypted data, means for discarding the encrypted data and replacing the encrypted data with the updated encrypted data.
X: nκ行nnew列の行列で各要素は整数の集合(0,…,q−1)から無作為に
サンプリングした整数
Y=−XSnew+pE+Power2(S)
(ここで、κはκ=ceiling(log2q)による、
nnewは、nより大の正の整数、
Snewは、nnew行l列の行列で各要素は分散snew 2の離散ガウス分布からサンプリングした整数、
snewは正の実数、
Eは、nκ行l列の行列で各要素は分散snew 2の離散ガウス分布からサンプリングした整数、
Power2(S)はnκ行l列の行列で、Bits(c)・Power2(S)=c・SとなるようにSを変換する関数、
Bits(c)は、成分数がnで各成分がqを法として表された整数であるベクトルcについてその各成分をビット化し、成分数がnκになったベクトル、
前記公開鍵が(A,P,n,s)、前記秘密鍵がS、前記新公開鍵が(Anew,Pnew,nnew,snew)、前記新秘密鍵がSnewであり、
Anewは、nnew行nnew列の正方行列で各要素は整数の集合(0,…,q−1)から無作為にサンプリングした整数、
Pnewは、Pnew=pRnew−AnewSnewによる(ただし、Rnew、Snewは、それぞれ、n行l列の行列で各要素は分散snew 2の離散ガウス分布からサンプリングした整数である))
により生成された鍵(X,Y)であるとき、
前記更新暗号データが、次式:
F=[Bits(c1)X|Bits(c1)Y+c2]
E(0)=f1[Anew|Pnew]+p[f2|f3]
(ここで、Bits(c1)は、成分数がnで各成分がqを法として表された整数であるベクトルc1についてその各成分をビット化し、成分数がnκになったベクトル、
f1、f2は、それぞれ、成分数がnnewのベクトルで各成分は分散snew 2の離散ガウス分布からサンプリングした整数、
f3は、成分数がlのベクトルで、各成分は分散snew 2の離散ガウス分布からサンプリングした整数である)
により生成された暗号データF+E(0)である
請求項3記載のサーバ。 The update key uses the public key, a secret key corresponding to the public key, the new public key, and a new secret key corresponding to the new public key, using the following equation:
X: a matrix of nκ rows and n new columns, each element being an integer randomly sampled from a set of integers (0,..., Q−1) Y = −XS new + pE + Power2 (S)
( Where κ is given by κ = ceiling (log 2 q) ,
n new is a positive integer greater than n ;
S new is a matrix of n new rows and l columns, where each element is an integer sampled from a discrete Gaussian distribution with variance s new 2 ,
s new is a positive real number ,
E is an nκ-by-l matrix, where each element is an integer sampled from a discrete Gaussian distribution with variance s new 2 ,
Power2 (S) is a matrix of nκ rows and l columns, and a function for converting S so that Bits (c) · Power2 (S) = c · S ;
Bits (c) is a vector in which the number of components is n and each component is an integer expressed by modulo q .
The public key is (A, P, n, s ), the secret key is S, the new public key (A new, P new, n new, s new), the new secret key is Ri S new der,
A new is a square matrix with n new rows and n new columns, where each element is an integer randomly sampled from a set of integers (0,..., Q−1) ;
P new is due to P new = pR new -A new S new ( provided that, R new new, S new new respectively, each element in a matrix of n rows l column is an integer sampled from a discrete Gaussian distribution of the variance s new new 2 is there))
Is the key (X, Y) generated by
The updated encrypted data has the following formula:
F = [Bits (c 1 ) X | Bits (c 1 ) Y + c 2 ]
E (0) = f 1 [A new | P new ] + p [f 2 | f 3 ]
(Where, Bits (c 1) is a vector number component of each of its component bits of the vector c 1 are integers each component is expressed with q modulo by n, the number of components becomes Enukappa,
f 1 and f 2 are vectors each having n new components, and each component is an integer sampled from a discrete Gaussian distribution having a variance s new 2 ;
f 3 is a vector having a number of components of 1 and each component is an integer sampled from a discrete Gaussian distribution having a variance of s new 2 )
The server according to claim 3, wherein the encrypted data is F + E (0) generated by:
c1=e1A+pe2
c2=e1P+pe3+m
c=(c1,c2)
(ここで、e1、e2は、それぞれ、成分数がnのベクトルで各成分は分散s2の離散ガウス分布からサンプリングした整数、
e3は、成分数がlのベクトルで各成分は分散s2の離散ガウス分布からサンプリングした整数、
mはベクトル形式を有する平文データで、成分数がlで各成分はpを法として表された整数、
nは正の整数、
sは正の実数、
lは正の整数、
pは正の整数でpとqは互いに素、
qは正の整数、
Aは、n行n列の正方行列で、各要素は整数の集合(0,…,q−1)から無作為にサンプリングした整数、
PはP=pR−ASによる(ただし、R、Sは、それぞれ、n行l列の行列で各要素は分散s2の離散ガウス分布からサンプリングした整数))
に従うように、クライアントの公開鍵(A,P,n,s)で暗号化された、ベクトル形式を有する暗号データcを記憶保持部が複数記憶保持し、
前記クライアントから、複数の前記暗号データのうちの2つの暗号データc、c’に対応する2つの平文データm、m’について内積を求めるべき情報がもたらされたときに通信インターフェース部が該情報を受け付け、
前記情報に基づいて、
n行n列の正方行列W1=c1’Tc1、
n行l列の行列W2=c1’Tc2+c1 Tc2’、および
スカラーξ=c2c2’Tを計算処理部が算出し、
前記正方行列W1、前記行列W2、および前記スカラーξを前記通信インターフェース部が前記クライアントに提供する
サーバを用いたサービス方法。 The following formula:
c1= E1A + pe2
c2= E1P + pe3+ M
c = (c1, C2)
(Where e1, E2Is a vector with n components and each component has a variance s2Integers sampled from a discrete Gaussian distribution of,
e3Is a vector having l components, and each component has a variance s2Integers sampled from a discrete Gaussian distribution of,
m is plaintext data having a vector format, where the number of components is 1 and each component is an integer expressed modulo p.,
n is a positive integer,
s is a positive real number,
l is a positive integer,
p is a positive integer and p and q are relatively prime,
q is a positive integer,
A is a square matrix of n rows and n columns, where each element is an integer randomly sampled from a set of integers (0,..., Q-1),
P is determined by P = pR-AS(However,R and S are matrices of n rows and l columns, each element having a variance s2Integers sampled from a discrete Gaussian distribution of))
The encrypted data c having a vector format and encrypted with the public key (A, P, n, s) of the client isThe memory holding unitHold multiple memories,
When the client provides information for obtaining an inner product of two plaintext data m and m 'corresponding to two encrypted data c and c' of the plurality of encrypted data,Communication interfaceAccept the information,
Based on the information,
square matrix W of n rows and n columns1= C1’Tc1,
a matrix W of n rows and l columns2= C1’Tc2+ C1 Tc2',and
Scalar ξ = c2c2’TToCalculation processing partCalculate,
The square matrix W1, The matrix W2, And the scalar ξThe communication interface unit isProvide to the client
Using a serverService method.
前記第2の情報に基づいて、
n行n列の第2の正方行列ΣW1=c1’Tc1+c1”’Tc1”、
n行l列の第2の行列ΣW2=c1’Tc2+c1 Tc2’+c1”’Tc2”+c1”Tc2”’、および
第2のスカラーΣξ=c2c2’T+c2”c2”’Tを前記計算処理部が算出し、
前記第2の正方行列ΣW1、前記第2の行列ΣW2、および前記第2のスカラーΣξを前記通信インターフェース部が前記クライアントに提供する
請求項5記載のサービス方法。 From the client, a first inner product that is an inner product of two plaintext data m and m ′ corresponding to two encrypted data c and c ′ of the plurality of encrypted data, and a first inner product of the plurality of encrypted data Second information is obtained which is information to be summed with a second inner product which is an inner product of two plaintext data m "and m""corresponding to the two encrypted data c" and c "". When the communication interface unit receives the second information,
Based on the second information,
a second square matrix of n rows and n columns' W 1 = c 1 ′ T c 1 + c 1 ″ ′ T c 1 ″;
n lines l second matrix row ΣW 2 = c 1 'T c 2 + c 1 T c 2' + c 1 "'T c 2" + c 1 "T c 2"', and
The calculation processing unit calculates a second scalar Σξ = c 2 c 2 ′ T + c 2 ″ c 2 ″ ′ T ,
It said second square matrix .SIGMA.W 1, wherein the second matrix .SIGMA.W 2, and service method of claim 5, wherein said second scalar Σξ said communication interface unit to provide to said client.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015227711A JP6643756B2 (en) | 2015-11-20 | 2015-11-20 | Server, service method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015227711A JP6643756B2 (en) | 2015-11-20 | 2015-11-20 | Server, service method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017097102A JP2017097102A (en) | 2017-06-01 |
JP6643756B2 true JP6643756B2 (en) | 2020-02-12 |
Family
ID=58817699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015227711A Active JP6643756B2 (en) | 2015-11-20 | 2015-11-20 | Server, service method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6643756B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6971917B2 (en) * | 2018-06-11 | 2021-11-24 | 三菱電機株式会社 | Decoding device, encryption device and encryption system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6016948B2 (en) * | 2013-01-17 | 2016-10-26 | 日本電信電話株式会社 | Secret calculation system, arithmetic device, secret calculation method, and program |
JP6244728B2 (en) * | 2013-08-07 | 2017-12-13 | 富士通株式会社 | Information processing method and program |
JP6341599B2 (en) * | 2014-03-18 | 2018-06-13 | 国立研究開発法人情報通信研究機構 | Encryption data update system and encryption data update method |
-
2015
- 2015-11-20 JP JP2015227711A patent/JP6643756B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017097102A (en) | 2017-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3826272A1 (en) | Secure information retrieval and update | |
CN113259329B (en) | Method and device for data careless transmission, electronic equipment and storage medium | |
EP2582086A1 (en) | Cryptosystem, cryptographic communication method, encryption device, key-generating device, decryption device, content server device, program, and recording medium | |
CN110190945B (en) | Linear regression privacy protection method and system based on multiple encryptions | |
US10938547B2 (en) | Method and system for providing encrypted data | |
JP6194886B2 (en) | Encryption statistical processing system, decryption system, key generation device, proxy device, encrypted statistical data generation device, encryption statistical processing method, and encryption statistical processing program | |
CN110635909B (en) | Attribute-based collusion attack resistant proxy re-encryption method | |
US11075748B2 (en) | Encryption for low-end devices through computation offloading | |
CN106603549A (en) | Data exchange method and system based on cryptograph | |
CN113434878A (en) | Modeling and application method, device, equipment and storage medium based on federal learning | |
CN105656881B (en) | A kind of electronic health record can verify that outsourcing storage and retrieval system and method | |
CN104917611A (en) | Data encryption and decryption processing method and device for cloud computing | |
JP6468567B2 (en) | Key exchange method, key exchange system | |
Olumide et al. | A hybrid encryption model for secure cloud computing | |
CN114095171A (en) | Identity-based wearable proxy re-encryption method | |
US20180159680A1 (en) | Method and encryption node for encrypting message | |
CN108599941A (en) | Random asymmetries expand byte encryption of communicated data method | |
JP2013157652A (en) | Secret calculation system, encryption device, secrete calculation device, and method and program thereof | |
JP6490429B2 (en) | Server, service method | |
JP6643756B2 (en) | Server, service method | |
WO2020070973A1 (en) | Decryption device, cryptosystem, decryption method, and decryption program | |
JPWO2017149686A1 (en) | Key generation apparatus, computer system, and cryptographic statistical processing method | |
JP2011118387A (en) | Method and system for determining result of applying function to signal | |
Theodouli et al. | Implementing private k-means clustering using a LWE-based cryptosystem | |
JP2019215391A (en) | Decryption device, encryption device and encryption system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181017 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190828 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190910 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191111 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20191126 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191219 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6643756 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |