JP6643756B2 - Server, service method - Google Patents

Server, service method Download PDF

Info

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
Application number
JP2015227711A
Other languages
Japanese (ja)
Other versions
JP2017097102A (en
Inventor
立華 王
立華 王
良範 青野
良範 青野
卓也 林
卓也 林
チュウ フォン レ
チュウ フォン レ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Information and Communications Technology
Original Assignee
National Institute of Information and Communications Technology
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 National Institute of Information and Communications Technology filed Critical National Institute of Information and Communications Technology
Priority to JP2015227711A priority Critical patent/JP6643756B2/en
Publication of JP2017097102A publication Critical patent/JP2017097102A/en
Application granted granted Critical
Publication of JP6643756B2 publication Critical patent/JP6643756B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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.

US8,565,435特許明細書US 8,565,435 Patent Specification

本発明は、暗号化されたデータを記憶保持し、要求に応じて当該暗号データを用いて一定の計算処理を行い暗号で結果を提供するサーバおよびサービス方法において、復号時のクライアントの処理負担を軽減することが可能なサーバおよびサービス方法に提供することを目的とする。   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.

本発明の一態様であるサーバは、次式:
=eA+pe
=eP+pe+m
c=(c,c
ここで、e、eは、それぞれ、成分数がnのベクトルで各成分は分散sの離散ガウス分布からサンプリングした整数。eは、成分数がlのベクトルで各成分は分散sの離散ガウス分布からサンプリングした整数。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列の行列で各要素は分散sの離散ガウス分布からサンプリングした整数。
に従うように、クライアントの公開鍵(A,P,n,s)で暗号化された、ベクトル形式を有する暗号データcを複数記憶保持する手段と、前記クライアントから、複数の前記暗号データのうちの2つの暗号データc、c’に対応する2つの平文データm、m’について内積を求めるべき情報がもたらされたときに該情報を受け付ける手段と、前記情報に基づいて、n行n列の正方行列W=c、n行l列の行列W=c+c ’、およびスカラーξ=cを算出する手段と、前記正方行列W、前記行列W、および前記スカラーξを前記クライアントに提供する手段とを具備する。
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 square matrix W 1 = c 1 'T c 1, n row l matrix W 2 = c 1 column' T c 2 + c 1 T c 2 ', and a scalar ξ = c 2 c 2' T , Means for providing the client with the square matrix W 1 , the matrix W 2 , and the scalar ξ.

このサーバが記憶保持する複数の暗号データc、c’、…は、それらの平文データm、m’、…との関係として、複数個(任意個)の加算、および1度のテンソル積mm’において準同型性を有している。しかしながら、内積mm’に関しては直接的な準同型性がない。クライアントが内積mm’を得たい場合には、可能性として、テンソル積mm’を利用する準同型演算の結果としてこれをクライアントに提供できる。このサーバでは、さらに、このようなテンソル積を利用せずに内積演算対応ができるように、クライアントから平文データm、m’について内積を求めるべき情報がもたらされたときに、これに基づいて、n行n列の正方行列W=c、n行l列の行列W=c+c ’、およびスカラーξ=cを算出し、これらをクライアントに提供する。 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 1T c 1 , n rows and l column matrix W 2 = c 1T c 2 + c 1 T c 2 ′, and scalar ξ = c 2 c 2T And provide them to the client.

クライアントにおける復号処理では、Wに、内積算出対応秘密鍵S(=SS=(γij)とする)を掛けてそのトレースを求め、Wに、秘密鍵Sの転置行列S(=(σij)とする)を掛けてそのトレースを求め、これらの結果の和にξを加え、最後にpを法とする整数に直すと、目的の、m、m’の内積m m’が得られる。これらの復号処理で、掛け算は合計「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.

また、別の態様であるサービス方法は、次式:
=eA+pe
=eP+pe+m
c=(c,c
ここで、e、eは、それぞれ、成分数がnのベクトルで各成分は分散sの離散ガウス分布からサンプリングした整数。eは、成分数がlのベクトルで各成分は分散sの離散ガウス分布からサンプリングした整数。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列の行列で各要素は分散sの離散ガウス分布からサンプリングした整数。
に従うように、クライアントの公開鍵(A,P,n,s)で暗号化された、ベクトル形式を有する暗号データcを複数記憶保持し、前記クライアントから、複数の前記暗号データのうちの2つの暗号データc、c’に対応する2つの平文データm、m’について内積を求めるべき情報がもたらされたときに該情報を受け付け、前記情報に基づいて、n行n列の正方行列W=c、n行l列の行列W=c+c ’、およびスカラーξ=cを算出し、前記正方行列W、前記行列W、および前記スカラーξを前記クライアントに提供する。
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 1T c 1 , a matrix W 2 of n rows and l columns W 2 = c 1T c 2 + c 1 T c 2 ′, and a scalar ξ = c 2 c 2T , 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 is a configuration diagram illustrating a server according to an embodiment and a system including the server. 図1中に示したパラメータ生成保持部31の機能を示す説明図。FIG. 2 is an explanatory diagram showing functions of a parameter generation and holding unit shown in FIG. 1. 図1中に示した鍵生成部32の機能を示す説明図。FIG. 2 is an explanatory diagram illustrating functions of a key generation unit 32 illustrated in FIG. 1. 図1中に示した処理部21の暗号化機能を示す説明図。FIG. 2 is an explanatory diagram showing an encryption function of a processing unit 21 shown in FIG. 図1中に示した一般処理部35の復号機能を示す説明図。FIG. 2 is an explanatory diagram showing a decoding function of a general processing unit 35 shown in FIG. 図1中に示したサーバ10で行われ得る準同型演算についてその性質を示す説明図。FIG. 2 is an explanatory diagram showing the properties of homomorphic operations that can be performed by the server shown in FIG. 図1中に示したサーバ10がもつ内積演算機能に関する、クライアントでの処理負担が軽減される理由の説明図。FIG. 2 is an explanatory diagram of the reason why the processing load on the client regarding the inner product calculation function of the server 10 shown in FIG. 1 is reduced. 図1中に示したサーバ10がもつ内積の和の演算機能に関する、クライアントでの処理負担が軽減される理由の説明図。FIG. 2 is an explanatory diagram showing the reason why the processing load on the client regarding the calculation function of the sum of inner products of the server 10 shown in FIG. 図1中に示した更新鍵生成部36の機能を示す説明図。FIG. 2 is an explanatory diagram illustrating functions of an update key generation unit 36 illustrated in FIG. 1. 図1中に示したセキュリティ更新処理部14の機能を示す説明図。FIG. 2 is an explanatory diagram showing functions of a security update processing unit 14 shown in FIG.

以上を踏まえ、以下では本発明の実施形態を図面を参照しながら説明する。図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 server 10 is, for example, a cloud server, while a client 30 is a device that receives a service provided by the server 10. There can be many clients 30 in one server 10 (other clients are not shown). The following description will be given on the assumption that the server 10 and the client 30 have different management entities. However, by encrypting the data, the third party device 20 appears as if the server 10 is part of the client 30. I have.

すなわち、クライアント30は、その管理するデータをサーバ10上では暗号化された状態で記憶保持させている。この暗号化に必要な公開鍵はクライアント30が開示している。したがって、クライアント30が開示している公開鍵で第三者機器20が暗号化したデータをサーバ10にアップロードすると、クライアント30はこのデータをクラウド管理者(サーバ10の管理者)に内容秘匿のまま自身が秘密鍵で解読(復号)可能な暗号データとしてサーバ10上に置かれた状態で管理できる。例えばデータとして個人の医療検査結果など秘匿性の高いデータを扱う場合に都合がよい。   That is, the client 30 stores and manages the data managed by the client 30 in an encrypted state. The public key necessary for this encryption is disclosed by the client 30. Therefore, when data encrypted by the third-party device 20 with the public key disclosed by the client 30 is uploaded to the server 10, the client 30 keeps the data confidential to the cloud administrator (the administrator of the server 10). It can be managed in a state where it is placed on the server 10 as encrypted data which can be decrypted (decrypted) with a secret key. For example, it is convenient when handling highly confidential data such as personal medical test results as data.

サーバ10は、通信インターフェース11、暗号データ記憶保持部12、計算処理部(算出部)13、セキュリティ更新処理部(変換部、置き換え部)14を有する。クライアント30は、パラメータ生成保持部31、鍵生成部32、鍵保持部33、通信インターフェース34、一般処理部35(要求内容生成、その結果の復号を行う)、更新鍵生成部36を有する。第三者機器20は、処理部(暗号化部)21、通信インターフェース22を有する。   The server 10 includes a communication interface 11, an encrypted data storage / holding unit 12, a calculation processing unit (calculation unit) 13, and a security update processing unit (conversion unit and replacement unit) 14. The client 30 includes a parameter generation and storage unit 31, a key generation unit 32, a key storage unit 33, a communication interface 34, a general processing unit 35 (generates request contents and decrypts the result), and an updated key generation unit 36. The third-party device 20 includes a processing unit (encryption unit) 21 and a communication interface 22.

以下、サーバ10、クライアント30、および第三者機器20の各内部構成についてその機能を説明するが、理解の便宜のため一連の動作に沿って説明するので、必ずしも機器ごとにまとまった説明にならない点を断っておく。なお、図1中の一点鎖線で囲んだ部分は、暗号データのセキュリティをアップデートするためのオプション構成であり、セキュリティのアップデートが不要の場合は省略できる。以下、機能ブロック図として描いた図1を中心に参照して説明するが、適宜、説明図である図2ないし図10を参照する。   Hereinafter, the functions of the internal configuration of the server 10, the client 30, and the third-party device 20 will be described. However, for convenience of understanding, a description will be given along a series of operations, and thus the description will not necessarily be grouped for each device. I refuse the point. The portion surrounded by the dashed line in FIG. 1 is an optional configuration for updating the security of the encrypted data, and can be omitted when the security update is unnecessary. Hereinafter, description will be made mainly with reference to FIG. 1 drawn as a functional block diagram, but FIG. 2 to FIG. 10 which are explanatory diagrams will be appropriately referred to.

(公開鍵および秘密鍵の生成)
公開鍵および秘密鍵の生成のため、まず、クライアント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 client 30 generates the parameters (q, l, p) by the parameter generation and holding unit 31. q is a positive integer, l is a positive integer, p is a positive integer, and p and q are relatively prime (that is, the least common multiple is 1). l is a number set as the number of components of the plaintext vector. The plaintext vector is an integer in which the number of components is 1 and each component is expressed modulo p. FIG. 2 can be referred to above. The generated parameters are stored in the parameter generation and storage unit 31 and passed to the key generation unit 32. Note that “vector” means a horizontal vector unless otherwise specified (the same applies to the following).

鍵生成部32は、パラメータ生成部31から渡されたパラメータ(q,l,p)に基づき公開鍵、秘密鍵、および内積算出対応秘密鍵を生成する。手順は以下であり図3を参照できる。まず、sを決めnを決める。sは正の実数で、離散ガウス分布の標準偏差として設定する。nは正の整数でセキュリティ(安全性)に関連する数であり、q、s、nで暗号としての安全性が定まる。ちなみに、本実施形態で例えばq=2114、s=8.0、n=2661とした場合には、80ビットセキュリティの暗号が得られる。一般にNビットセキュリティの暗号とは、2回の解読計算で鍵(秘密鍵)が見つかる暗号である。 The key generation unit 32 generates a public key, a secret key, and a secret key corresponding to inner product calculation based on the parameters (q, l, p) passed from the parameter generation unit 31. The procedure is as follows and reference can be made to FIG. First, s is determined and n is determined. s is a positive real number and is set as a standard deviation of a discrete Gaussian distribution. n is a positive integer and a number related to security (security), and q, s, and n determine security as encryption. By the way, when q = 2114 , s = 8.0, and n = 2661, for example, in the present embodiment, 80-bit security encryption can be obtained. In general, N-bit security encryption is encryption in which a key (secret key) is found by 2N decryption calculations.

次に、鍵生成部32は、正規ランダム行列R、Sを生成する。すなわち、R、Sは、それぞれ、n行l列の行列で各要素は分散sの離散ガウス分布からサンプリングした整数である。加えて、鍵生成部32は、一様ランダム行列Aを生成する。すなわち、Aは、n行n列の正方行列で、各要素は整数の集合(0,…,q−1)から無作為にサンプリングした整数である。 Next, the key generation unit 32 generates normal random matrices R and S. That, R, S, respectively, each element in a matrix of n rows l column is an integer sampled from a discrete Gaussian distribution of the variance s 2. In addition, the key generation unit 32 generates a uniform random matrix A. That is, A is a square matrix with n rows and n columns, and each element is an integer randomly sampled from a set of integers (0,..., Q-1).

さらに、鍵生成部32はPを計算する。計算式はP=pR−ASである。Pは、n行l列の行列で、各要素はqを法として表された整数になる。以上の一連の手順により、公開鍵は(A,P,n,s)として、秘密鍵はSとして、内積算出対応秘密鍵はS(=SS)として、それぞれ生成される。生成された各鍵は鍵保持部33に渡され、そこで記憶保持される。秘密鍵Sおよび内積算出対応秘密鍵はSは、クライアント30の外に流出しないように管理される一方、公開鍵(A,P,n,s)は、第三者機器20のため開示される。第三者機器20は、例えば医療機関などの秘匿性のあるデータを取り扱う者が有する機器を想定することができる。 Further, the key generation unit 32 calculates P. The calculation formula is P = pR-AS. P is an n-by-1 matrix, and each element is an integer expressed modulo q. The series of steps described above, the public key (A, P, n, s ), the secret key as S, the inner product calculation corresponding private key as S * (= SS T), are respectively generated. Each generated key is passed to the key holding unit 33, where it is stored and held. The secret key S and the secret key corresponding to the inner product calculation are managed so that S * does not leak out of the client 30, while the public key (A, P, n, s) is disclosed because of the third-party device 20. Is done. The third-party device 20 can be a device owned by a person who handles confidential data, such as a medical institution.

(暗号化)
図1に示すシステムでは、データの暗号化を公開鍵でクライアント30が行い、その結果である暗号データをサーバ10に送ってサーバ10上に記憶保持させることができる。同様に、第三者機器20がその有する、秘匿が必要な平文のデータをクライアント30の公開鍵で暗号化し、その結果である暗号データをサーバ10に送ってサーバ10上に記憶保持させることもできる。暗号化の処理自体は両者とも変わらないが、後者の動作として以下説明する。手順は以下であり図4を参照できる。
(encryption)
In the system shown in FIG. 1, the client 30 performs data encryption using a public key, and the resulting encrypted data can be sent to the server 10 and stored on the server 10. Similarly, it is also possible to encrypt the plaintext data of the third-party device 20 that requires confidentiality with the public key of the client 30 and transmit the resulting encrypted data to the server 10 for storage and storage on the server 10. it can. The encryption process itself is the same, but the latter operation will be described below. The procedure is as follows, and FIG. 4 can be referred to.

まず、第三者機器20の処理部21はノイズe、eを生成する。e、eは、それぞれ、成分数がnのベクトルで、各成分は分散sの離散ガウス分布からサンプリングした整数である。加えて、処理部21はノイズeを生成する。eは、成分数がlのベクトルで、各成分は分散sの離散ガウス分布からサンプリングした整数である。 First, the processing unit 21 of the third party device 20 generates noises e 1 and e 2 . 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 . In addition, the processing unit 21 generates a noise e 3. e 3 is a vector of frequency components is l, each component is an integer sampled from a discrete Gaussian distribution of the variance s 2.

次に、処理部21はcを計算する。計算式はc=eA+peである。cは、成分数がnのベクトルで、各成分はqを法として表された整数になる。加えて、処理部21はcを計算する。計算式はc=eP+pe+mである。mは第三者機器20において生成された平文ベクトルで、成分数がlで各成分はpを法として表された整数である。cは、成分数が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-party device 20, the number of components is 1 and each component is an integer expressed modulo p. c 2 is a vector having 1 component, and each component is an integer expressed modulo q.

以上の一連の手順により、暗号データcはc=(c,c)として生成される。なお、第三者機器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 third party device 20 needs the public key (A, P, n, s) in the above series of procedures, but also needs at least the parameters (l, p). It is assumed that the parameters (l, p) are understood as a premise in the third party device 20. The generated encrypted data is passed from the processing unit 21 to the communication interface 22, and the communication interface 22 sends the passed encrypted data to the server 10 via the communication path.

サーバ10は、第三者機器20から送られてきた暗号データを通信インターフェース11で受け取る。通信インターフェース11で受け取られた暗号データは、通信インターフェース11から暗号データ記憶保持部12に渡される。暗号データ記憶保持部12は、通信インターフェース11から渡された暗号データを記憶保持する。この暗号データは、すなわち、サーバ10の管理者に内容秘匿のままクライアント30のみが復号可能な暗号データとしてサーバ10上に置かれたデータになっている。   The server 10 receives the encrypted data sent from the third party device 20 through the communication interface 11. The encrypted data received by the communication interface 11 is passed from the communication interface 11 to the encrypted data storage unit 12. The encrypted data storage and holding unit 12 stores and holds the encrypted data passed from the communication interface 11. That is, the encrypted data is data placed on the server 10 as encrypted data that can be decrypted only by the client 30 while keeping the content secret from the administrator of the server 10.

(復号)
図1に示すシステムで復号はもっぱらクライアント30で行われる。これにより、サーバ10の管理者に対するデータの秘匿性が保たれる。単に復号する場合の動作を以下説明する。暗号データ記憶保持部12に記憶保持された暗号データをクライアント30が復号して平文データに戻す場合には、クライアント30は、その暗号データc=(c,c)を提出することの要求をサーバ10に対して行う。そのため、その旨の情報を一般処理部35で生成する。この要求の旨の情報は、一般処理部35から通信インターフェース34に渡される。
(Decryption)
In the system shown in FIG. 1, decryption is performed exclusively by the client 30. As a result, the confidentiality of data to the administrator of the server 10 is maintained. The operation for simply decoding will be described below. When the client 30 decrypts the encrypted data stored in the encrypted data storage unit 12 and returns it to the plaintext data, the client 30 requests to submit the encrypted data c = (c 1 , c 2 ). Is performed on the server 10. Therefore, the general processing unit 35 generates information to that effect. Information indicating this request is passed from the general processing unit 35 to the communication interface 34.

通信インターフェース34に渡された要求の旨の情報は、通信インターフェース34から通信路を介してサーバ10に送られる。サーバ10は、クライアント30から送られてきた要求の旨の情報を通信インターフェース11で受け取る。通信インターフェース11で受け取られた要求の旨の情報は通信インターフェース11から計算処理部13に渡される。計算処理部13は、渡された要求の内容に従い、暗号データ記憶処理部12から該当の暗号データc=(c,c)を取り出す。そして、計算処理部13は、取り出した暗号データに対してこの場合特に処理を行わずに通信インターフェース11に渡す。なお、一般には計算処理部13が暗号データに対して一定の計算処理を行う場合もあるがその場合については後述する。 The information indicating the request passed to the communication interface 34 is sent from the communication interface 34 to the server 10 via the communication path. The server 10 receives the information indicating the request sent from the client 30 through the communication interface 11. Information indicating the request received by the communication interface 11 is passed from the communication interface 11 to the calculation processing unit 13. The calculation processing unit 13 extracts the corresponding encrypted data c = (c 1 , c 2 ) from the encrypted data storage processing unit 12 according to the content of the passed request. Then, the calculation processing unit 13 passes the extracted encrypted data to the communication interface 11 without performing any particular processing in this case. In general, the calculation processing unit 13 may perform a certain calculation process on the encrypted data. Such a case will be described later.

通信インターフェース11に渡された暗号データは、通信インターフェース11から通信路を介してクライアント30に送られる。クライアント30は、サーバ10から送られてきた暗号データを通信インターフェース34で受け取る。通信インターフェース34で受け取られた暗号データc=(c,c)は通信インターフェース34から一般処理部35に渡される。 The encrypted data passed to the communication interface 11 is sent from the communication interface 11 to the client 30 via a communication path. The client 30 receives the encrypted data sent from the server 10 by the communication interface 34. The encrypted data c = (c 1 , c 2 ) received by the communication interface 34 is passed from the communication interface 34 to the general processing unit 35.

一般処理部35は、暗号データc=(c,c)の復号動作として以下を行う。この点は図5を参照できる。まず、mバーを計算する。計算式は、mバー=m=cS+cである。Sは前述してあるように秘密鍵であり、鍵保持部33に保持されている。次に平文ベクトルmを計算する。計算式は、m=mバー mod pである。mは復号で得られた平文ベクトル(=復号結果)になる。当然ながら、この復号は秘密鍵Sを保持しているクライアント30以外では実行できない。秘密鍵はクライアント30の外に流出しないように管理されている。 The general processing unit 35 performs the following as a decryption operation of the encrypted data c = (c 1 , c 2 ). This point can be referred to FIG. First, m bar is calculated. The calculation formula is m bar = m = c 1 S + c 2 . S is a secret key as described above, and is held in the key holding unit 33. Next, a plaintext vector m is calculated. The calculation formula is m = m bar mod p. m is a plaintext vector (= decoding result) obtained by decoding. As a matter of course, this decryption cannot be executed except by the client 30 holding the secret key S. The secret key is managed so as not to leak out of the client 30.

以上により、サーバ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 client 30 performed by the server 10.

(暗号データの性質)
次に、上記で説明したように生成された暗号データに特有な性質について説明する。図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 server 10 can be provided to the client 30 as data encrypted in the same format. The client 30 can decrypt this with the corresponding secret key S. That is, by using the encrypted data having a certain homomorphism, the client 30 can manage the certain arithmetic processing of the data performed on the server 10 with the contents kept secret from the server administrator.

図2、図3、図4に示された手順で生成された暗号データには、もうひとつの準同型性が備わっている。すなわち、この暗号データは、一般にcc’=Enc(pk,mm’)が成り立っている。ここで、c、mはそれぞれ、横ベクトルc、mを縦ベクトルに直したものである。つまり、暗号データc、c’とその対応する平文データm、m’とで、暗号データで行ったテンソル積cc’(=n+l行n+l列の正方行列)の演算結果は、平文データで行ったテンソル積mm’の演算結果を暗号化したもの(=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 client 30 can also manage the calculation processing for obtaining the product performed on the server 10 with the contents kept secret from the server administrator. The client 30 can decrypt the calculation result with the secret key S.

以上の点をまとめると、図2、図3、図4に示された手順で生成された暗号データは、2次形式の計算を行う処理についてサーバ10で扱うことができることを意味する。サーバ10でこのような処理を行うと、その結果はもとの公開鍵で暗号化された形式を有する、平文データで同様な処理を行った結果に対応したデータになる。したがって、クライアント30に代わって計算処理をサーバ10で行いその結果をクライアント30に提供しクライアント30はこれを秘密鍵で復号できる。すなわち、2次形式の計算処理に関して、これをサーバ管理者に内容秘匿でクライアント30が管理できることになる。   Summarizing the above points, it means that the server 10 can process the encryption data generated by the procedures shown in FIGS. 2, 3, and 4 for performing the calculation in the secondary format. When such processing is performed in the server 10, the result becomes data corresponding to the result of performing the same processing on plaintext data, which has a format encrypted with the original public key. Accordingly, the server 10 performs the calculation processing on behalf of the client 30, and provides the result to the client 30, and the client 30 can decrypt this with the secret key. In other words, regarding the calculation processing of the secondary format, the client 30 can manage the calculation processing with the contents kept secret from the server administrator.

以上説明した準同型性と2次形式の計算との関係をもう一度説明したものが図6である。図6は以上の点から容易に理解できると思われるが簡単におさらいする。まず、図2〜図4によれば、平文ベクトルm、m’とその暗号文ベクトルc、c’とに関して以下が成り立つ。
c+c’=Enc(pk,m+m’) ・・・加算の準同型性
c’=Enc(pk,mm’) ・・・テンソル積の乗算の準同型性
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

次に、例えば、平文データx、yの各暗号データEnc(pk,x)、Enc(pk,y)を用いた2次形式の計算:

Σ a・Enc(pk,x)・Enc(pk,y) (iはデータ番号)
i=1
の結果は、次式、平文データを用いた2次形式の計算結果を暗号化したものに等しい。

Enc(pk,Σ a・x
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

したがって、サーバ管理者に対して平文データx、yを秘匿したままサーバ10で計算処理を行い、その後クライアント30は復号でその計算結果を得ることができる。 Accordingly, performs calculation processing while the server 10 to conceal the plaintext data x i, y i to the server administrator, then the client 30 can obtain the calculation result in the decoding.

(内積演算に関して)
上記では、暗号データにおけるテンソル積の乗算の準同型性について述べたが、これは、もちろん、平文ベクトルm、m’の内積演算m m’の結果と、そのそれぞれの暗号文ベクトルc、c’の内積演算c c’ の結果との準同型性を意味するものではない。クライアント30が内積mm’を得たい場合には、可能性として、テンソル積mm’を利用する準同型演算の結果としてならばこれをクライアント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'. Client 30 inner product mm 'when it is desired to obtain a T, as the possibility, tensor product m T m' can provide this if as a result of the homomorphic operation utilizing the client 30. In this case, in short, it corresponds to encrypting and decrypting each component of the plaintext vector as separate plaintext, and the efficiency of the decryption process at the client 30 does not increase.

そこで、このサーバ10は、内積を得たい場合のクライアント30の復号処理を効率化する内積演算対応機能を有している。この説明として図7を参照する。平文ベクトルm、m’の内積m m’に関しては、qを法とする数(m m’)バーとして、図7の中央のブロック内に示されている式の変形(主に行列のトレースに関する性質を利用)により、
Tr(cSS)+Tr((c+c ’)S)+c
と表すことができる。
Therefore, the server 10 has a function for calculating inner products that increases the efficiency of the decoding process of the client 30 when it is desired to obtain inner products. FIG. 7 is referred to for this description. Plaintext vector m, with respect to T 'inner product m m a' m as the number (m m 'T) bar modulo q, deformation of the formulas shown in the block in the middle of FIG. 7 (mainly the matrix Utilizing the nature of trace)
Tr (c 1 'T c 1 SS T) + Tr ((c 1' T c 2 + c 1 T c 2 ') S T) + c 2 c 2' T
It can be expressed as.

つまり、クライアント30がm、m’の内積m m’を得るには、c(n行n列の行列;=W=(αij)とする)、c+c ’(n行l列の行列;=W=(βij)とする)、およびc(スカラー;=ξとする)を計算させることの要求をサーバ10に送ればよい。その後のクライアント30では、Wに、内積算出対応秘密鍵S(=SS=(γij)とする)を掛けてそのトレースを求め、Wに、秘密鍵Sの転置行列S(=(σij)とする)を掛けてそのトレースを求め、上記の結果の和にξを加え、最後にpを法とする整数に直すと、目的の、m、m’の内積m m’が得られる。 That is, in order for the client 30 to obtain the inner product m m ′ T of m and m ′, c 1T c 1 (a matrix of n rows and n columns; = W 1 = (α ij )), c 1T The requirement to have c 2 + c 1 T c 2 ′ (a matrix of n rows and l columns; = W 2 = (β ij )) and c 2 c 2T (scalar; = ξ) is calculated. What is necessary is just to send to the server 10. In subsequent client 30, the W 1, the trace determined by multiplying the inner product calculation corresponding private 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 the above results, and finally convert it to an integer modulo p, yielding the desired inner product m m m ' T is obtained.

すなわち、サーバ10は、クライアント30から、2つの暗号データc、c’に対応する2つの平文データm、m’について内積を求めるべき情報がもたらされたときにこの情報を受け付け(通信インターフェース11)、この情報に基づいて、n行n列の正方行列W=c、n行l列の行列W=c+c ’、およびスカラーξ=cを算出する(計算処理部13)。そしてサーバ10は、正方行列W、行列W、およびスカラーξをクライアント30に提供する(計算処理部13から通信インターフェース11を介してクライアント30へ)。その後のクライアント30での動作は上記のとおりである。 That is, the server 10 receives the information when the inner product of the two plaintext data m and m ′ corresponding to the two encrypted data c and c ′ is to be obtained from the client 30 (the communication interface 11). ), Based on this information, a square matrix W 1 = c 1T c 1 of n rows and n columns, a matrix W 2 = c 1T c 2 + c 1 T c 2 ′ of n rows and l columns, and a scalar ξ = c 2 c 2 'calculates the T (calculation processing unit 13). Then, the server 10 provides the square matrix W 1 , the matrix W 2 , and the scalar ξ to the client 30 (from the calculation processing unit 13 to the client 30 via the communication interface 11). The subsequent operation at the client 30 is as described above.

クライアント30における計算量に関しては、
Tr(cSS)+Tr((c+c ’)S)+c
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 client 30,
Tr (c 1 'T c 1 SS T) + Tr ((c 1' T c 2 + c 1 T c 2 ') S T) + c 2 c 2' T
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に示した点によれば、平文ベクトルm、m’の内積mから、平文ベクトルm、m’の内積mまでの和(1〜u)をクライアント30が必要とする場合には、それぞれの内積についてのW、W、ξをu組得てこれらをサーバ10からクライアント30に送らせるには及ばないことがわかる。換言すると、それぞれの内積についてのW、W、ξをサーバ10が求め、そして、ΣW、ΣW、Σξ がクライアント30に送られればよく(Σは1〜uまでの和をとる)、復号は、次式で達成される。すなわち、
(Tr(ΣWSS)+Tr(ΣW)+Σξ)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 'dot product m 1 m 1' of the plaintext vector m 1, m 1, plaintext vector m u, until T 'dot product m u m u of' m u (. 1 to It can be seen that if u) is required by the client 30, it is not enough to obtain u sets of W 1 , W 2 , ξ for each inner product and send these from the server 10 to the client 30. In other words, it suffices that the server 10 obtains W 1 , W 2 , ξ for each inner product, and sends ΣW 1 , ΣW 2 , Σξ to the client 30 (Σ takes the sum of 1 to u). , Decoding is achieved by the following equation. That is,
(Tr (ΣW 1 SS T) + Tr (ΣW 2 S T) + Σξ) mod p
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 client 30 again calculates the total amount of multiplication as “n (n + 1)” times and the addition as “ n (n + 1) +1 "times. There are many applications in which the client 30 needs the sum of inner products of vector data. According to the server 10 of the embodiment, the client 30 can perform very efficient decoding even in such a case.

以上により、準同型性のある暗号データを利用し、サーバ10上で行うデータの計算処理に関して、これをサーバ管理者に内容秘匿でクライアント30が管理できる点を説明した。   As described above, it has been described that the client 30 can manage the calculation processing of the data performed on the server 10 using the homomorphic encrypted data with the content being kept secret from the server administrator.

(更新鍵の生成)
次に、暗号データ記憶保持部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 unit 12 will be described (this is an option made by the configuration surrounded by a dashed line in FIG. 1). A common reason for requiring security updates is that cryptographic data has the potential to be compromised from a long-term perspective. In general, to update the security of encrypted data, it is necessary to decrypt the encrypted data once and then perform encryption corresponding to the update again, or to perform security update processing on the encrypted data directly without decrypting the encrypted data. Will be either. In any case, the processing load is not necessarily light, and it is considered that it is preferable to perform the processing not on the client 30 but on the server 10 side.

サーバ10の側で暗号データのセキュリティ更新の処理を行うと、前者の場合では、その処理時にサーバ管理者に対するデータ内容の秘匿性がくずれる。よって、データの記憶保持、計算処理、セキュリティ更新という一連のサービスで一貫した秘匿性を保てず、サービスとして不備が含まれたものになってしまう。そこで、このサーバ10は、準同型性を有する暗号データを扱ってなおかつ直接に暗号データにセキュリティ更新の処理ができるように構成されている。そして、セキュリティ更新の処理を行っても暗号データの準同型性が保たれる。   If the server 10 performs the process of updating the security of the encrypted data, in the former case, the confidentiality of the data content with respect to the server administrator is lost at the time of the process. Therefore, consistent confidentiality cannot be maintained in a series of services such as data storage and maintenance, calculation processing, and security update, and the services include deficiencies. Therefore, the server 10 is configured to handle encrypted data having homomorphism and to directly perform security update processing on the encrypted data. Then, even if security update processing is performed, homomorphism of the encrypted data is maintained.

セキュリティ更新のための動作はクライアント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 client 30. The following procedure can refer to FIG. First, the key generation unit 32 of the client 30 generates a new public key (A new , P new , n new , s new ) generated in the same manner as the public key (A, P, n, s) and a secret key S. A new secret key S new generated in the same manner is prepared. This operation can be referred to FIG. n new is a positive integer and is larger than n (= for improving security). The new public key and the new secret key are passed from the key generation unit 32 to the key holding unit 33 and held, and further passed from the key holding unit 33 to the update key generation unit 36. Note that the public key (A, P, n, s) and the secret key S are also passed from the key holding unit 33 to the updated key generation unit 36.

更新鍵生成部36は、まず、κ=ceiling(logq)を計算する。ceiling( )は天井関数であり、括弧内の数をそれ以上の最小の整数に変換する関数である。次に、更新鍵生成部36は、ランダム行列X、Eを生成する。すなわち、Xは、nκ行nnew列の行列で各要素は整数の集合(0,…,q−1)から無作為にサンプリングした整数である。Eは、nκ行l列の行列で各要素は分散snew の離散ガウス分布からサンプリングした整数である。 The update key generation unit 36 first calculates κ = ceiling (log 2 q). ceiling () is a ceiling function, and is a function that converts the number in parentheses into a minimum integer larger than that. Next, the update key generation unit 36 generates random matrices X and E. That is, X is a matrix of nκ rows and n new columns, and each element is an integer randomly sampled from a set of integers (0,..., Q−1). E is a matrix of nκ rows and l columns, and each element is an integer sampled from a discrete Gaussian distribution having a variance of s new 2 .

さらに、更新鍵生成部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 key generation unit 36 calculates Y. The calculation formula is Y = −XS new + pE + Power2 (S). Here, Power2 (S) is a matrix of nκ rows and l columns, and is a function for converting S so that Bits (c) · Power2 (S) = c · S. Further, here, Bits (c) is a vector in which the number of components is n and the number of components is nκ in a vector c in which each component is an integer expressed modulo q. Y is a matrix of nκ rows and l columns, and each element is an integer expressed modulo q.

以上の一連の手順により、更新鍵生成部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 key generation unit 36. This update key is generated so as to have a certain relationship with the public key. Then, the updated key and the new public key held in the key holding unit 33 are passed from the updated key generation unit 36 and the key holding unit 33 to the communication interface 34, respectively. The updated key and the new public key passed to the communication interface 34 are sent from the communication interface 34 to the server 10 via a communication path.

サーバ10は、クライアント30から送付されてきた更新鍵および新公開鍵を通信インターフェース11で受け取る。通信インターフェース11で受け取られた更新鍵および新公開鍵は、通信インターフェース11からセキュリティ更新処理部14に渡される。セキュリティ更新処理部14は、渡された更新鍵および新公開鍵を用いて、暗号データ記憶処理部12に記憶保持された暗号データに対してセキュリティを更新する処理を行う(以下で説明する)。   The server 10 receives the updated key and the new public key sent from the client 30 through the communication interface 11. The update key and the new public key received by the communication interface 11 are passed from the communication interface 11 to the security update processing unit 14. The security update processing unit 14 performs a process of updating security for the encrypted data stored in the encrypted data storage processing unit 12 using the passed update key and the new public key (described below).

(セキュリティ更新)
サーバ10は、クライアント30から送付されてきた更新鍵(X,Y)および新公開鍵(Anew,Pnew,nnew,snew)を用いて暗号データ記憶処理部12に記憶保持された暗号データに対してセキュリティを更新する処理を行う。この動作はセキュリティ更新処理部14による。セキュリティ更新処理部14は、暗号データに行うセキュリティ更新として、更新鍵および新公開鍵を用いて、暗号データを、新公開鍵により暗号化された形式を有しかつもとの準同型性と同様の準同型性を有するデータである更新暗号データに変換する。手順は以下であり図10を参照できる。
(Security Update)
The server 10 uses the update key (X, Y) and the new public key (A new , P new , n new , s new ) sent from the client 30 to encrypt and store the encrypted data in the encrypted data storage processing unit 12. Performs security update processing for data. This operation is performed by the security update processing unit 14. The security update processing unit 14 uses the update key and the new public key to convert the encrypted data into a form encrypted with the new public key and performs the same Is converted to updated encrypted data which is data having homomorphism. The procedure is as follows, and FIG. 10 can be referred to.

まず、セキュリティ更新処理部14は、ノイズf、fを生成する。f、fは、それぞれ、成分数がnnewのベクトルで、各成分は分散snew の離散ガウス分布からサンプリングした整数である。加えて、セキュリティ更新処理部14は、ノイズfを生成する。fは、成分数がlのベクトルで、各成分は分散snew の離散ガウス分布からサンプリングした整数である。 First, the security update processing unit 14 generates noises f 1 and f 2 . 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 . In addition, the security update processing unit 14 generates a noise f 3. 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 .

次に、セキュリティ更新処理部14は、Fを計算する。計算式はF=[Bits(c)X | Bits(c)Y+c]である。ここで記号「|」は、行列の連結を意味する。Fは、成分数がnnew+lのベクトルで、各成分はqを法として表された整数になる。c、cについては、暗号データ(c,c)を暗号データ記憶処理部12から取り出して用いる。さらに、セキュリティ更新処理部14は、ゼロの暗号データE(0)を計算する。計算式は、E(0)=f[Anew|Pnew]+p[f|f](図4参照)である。 Next, the security update processing unit 14 calculates F. The calculation formula is F = [Bits (c 1 ) X | Bits (c 1 ) Y + c 2 ]. Here, the symbol “|” means matrix concatenation. F is a vector having n new + l components, and each component is an integer expressed modulo q. For c 1 and c 2 , encrypted data (c 1 , c 2 ) is extracted from the encrypted data storage processing unit 12 and used. Further, the security update processing unit 14 calculates zero encrypted data E (0). The calculation formula is E (0) = f 1 [A new | P new ] + p [f 2 | f 3 ] (see FIG. 4).

以上の一連の手順により、セキュリティ更新後の暗号データである更新暗号データcnew=(cnew1,cnew2)は、F+E(0)として算出される。もとの暗号データc=(c,c)から変換され算出された更新暗号データ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 update processing unit 14 to the encrypted data storage unit 12. . The security update processing unit 14 discards the original encrypted data and replaces it with the updated encrypted data.

以上説明した、暗号データから更新暗号データへの変換は、暗号データとしてもとの準同型性が保たれたものになる。この点は、図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 server 10 that performs a predetermined calculation process using the encrypted data in response to the request and provides the result in the encrypted form, the security of the encrypted data can be updated.

そして、このセキュリティ更新は、暗号データに対してサーバ10の動作として行われるので、リソースが限られているクライアント30の処理負担ならない。また、このセキュリティ更新は、暗号解読技術が進展して安全性が低下しても何度も繰り返すことができる。もとよりサーバ10として、データの記憶保持、計算処理、セキュリティ更新という一連のサービスで、一貫して秘匿性が保たれているという大きな効果を有している。なお、セキュリティ更新がされたあとは、当然ながらクライアント30は、これまでの公開鍵に代わり新公開鍵を開示し、その結果、その後第三者機器20は、新公開鍵を用いて暗号化が必要な平文データを暗号化しこれをサーバ10に送る(アップロードする)ことになる。   Since the security update is performed on the encrypted data as an operation of the server 10, the processing load on the client 30 whose resources are limited is eliminated. This security update can be repeated many times even if the security is reduced due to the progress of the decryption technology. As a matter of course, the server 10 has a great effect that confidentiality is maintained consistently through a series of services such as data storage, calculation processing, and security update. After the security is updated, the client 30 naturally discloses the new public key instead of the existing public key, and as a result, the third party device 20 thereafter performs encryption using the new public key. The necessary plaintext data is encrypted and sent (uploaded) to the server 10.

以上、本発明の実施形態を説明したが、実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   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 SYMBOLS 10 ... Server, 11 ... Communication interface, 12 ... Encrypted data storage / holding part, 13 ... Calculation processing part (calculation part), 14 ... Security update processing part (conversion part, replacement part), 20 ... Third party equipment, 21 ... Processing unit (encryption unit), 22 communication interface, 30 client, 31 parameter generation and holding unit, 32 key generation unit, 33 key storage unit, 34 communication interface. 35: General processing unit (request content generation unit, result decryption unit), 36: Update key generation unit.

Claims (6)

次式:
=eA+pe
=eP+pe+m
c=(c,c
ここで、e、eは、それぞれ、成分数がnのベクトルで各成分は分散sの離散ガウス分布からサンプリングした整数
は、成分数がlのベクトルで各成分は分散sの離散ガウス分布からサンプリングした整数
mはベクトル形式を有する平文データで、成分数がlで各成分はpを法として表された整数
nは正の整数
sは正の実数
lは正の整数
pは正の整数でpとqは互いに素
qは正の整数
Aは、n行n列の正方行列で、各要素は整数の集合(0,…,q−1)から無作為にサンプリングした整数
PはP=pR−ASによる(ただし、R、Sは、それぞれ、n行l列の行列で各要素は分散sの離散ガウス分布からサンプリングした整数))
に従うように、クライアントの公開鍵(A,P,n,s)で暗号化された、ベクトル形式を有する暗号データcを複数記憶保持する手段と、
前記クライアントから、複数の前記暗号データのうちの2つの暗号データc、c’に対応する2つの平文データm、m’について内積を求めるべき情報がもたらされたときに該情報を受け付ける手段と、
前記情報に基づいて、
n行n列の正方行列W=c
n行l列の行列W=c+c ’、および
スカラーξ=cを算出する手段と、
前記正方行列W、前記行列W、および前記スカラーξを前記クライアントに提供する手段と
を具備するサーバ。
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 1T 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 2T ;
Means for providing the square matrix W 1 , the matrix W 2 , and the scalar ξ to the client.
前記クライアントから、複数の前記暗号データのうちの2つの暗号データc、c’に対応する2つの平文データm、m’についての内積である第1の内積と、複数の前記暗号データのうちの2つの暗号データc”、c”’に対応する2つの平文データm”、m”’についての内積である第2の内積との和を求めるべき情報である第2の情報がもたらされたときに該第2の情報を受け付ける手段と、
前記第2の情報に基づいて、
n行n列の第2の正方行列ΣW=c+c”’”、
n行l列の第2の行列ΣW=c+c ’+c”’”+c”’、および
第2のスカラーΣξ=c+c”c”’を算出する手段と、
前記第2の正方行列ΣW、前記第2の行列ΣW、および前記第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 1T 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 2T + 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(logq)による
newは、nより大の正の整数
newは、nnew行l列の行列で各要素は分散snew の離散ガウス分布からサンプリングした整数
newは正の実数
Eは、nκ行l列の行列で各要素は分散snew の離散ガウス分布からサンプリングした整数
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であり、
newは、nnew行nnew列の正方行列で各要素は整数の集合(0,…,q−1)から無作為にサンプリングした整数
newは、Pnew=pRnew−Anewnewによる(ただし、new、Snewは、それぞれ、n行l列の行列で各要素は分散snew の離散ガウス分布からサンプリングした整数である))
により生成された鍵(X,Y)であるとき、
前記更新暗号データが、次式:
F=[Bits(c)X|Bits(c)Y+c
E(0)=f[Anew|Pnew]+p[f|f
ここで、Bits(c)は、成分数がnで各成分がqを法として表された整数であるベクトルcについてその各成分をビット化し、成分数がnκになったベクトル
、fは、それぞれ、成分数がnnewのベクトルで各成分は分散snew の離散ガウス分布からサンプリングした整数
は、成分数がlのベクトルで、各成分は分散snew の離散ガウス分布からサンプリングした整数である)
により生成された暗号データ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:
次式:
=eA+pe
=eP+pe+m
c=(c,c
ここで、e、eは、それぞれ、成分数がnのベクトルで各成分は分散sの離散ガウス分布からサンプリングした整数
は、成分数がlのベクトルで各成分は分散sの離散ガウス分布からサンプリングした整数
mはベクトル形式を有する平文データで、成分数がlで各成分はpを法として表された整数
nは正の整数
sは正の実数
lは正の整数
pは正の整数でpとqは互いに素
qは正の整数
Aは、n行n列の正方行列で、各要素は整数の集合(0,…,q−1)から無作為にサンプリングした整数
PはP=pR−ASによる(ただし、R、Sは、それぞれ、n行l列の行列で各要素は分散sの離散ガウス分布からサンプリングした整数))
に従うように、クライアントの公開鍵(A,P,n,s)で暗号化された、ベクトル形式を有する暗号データcを記憶保持部が複数記憶保持し、
前記クライアントから、複数の前記暗号データのうちの2つの暗号データc、c’に対応する2つの平文データm、m’について内積を求めるべき情報がもたらされたときに通信インターフェース部が該情報を受け付け、
前記情報に基づいて、
n行n列の正方行列W=c
n行l列の行列W=c+c ’、および
スカラーξ=c計算処理部が算出し、
前記正方行列W、前記行列W、および前記スカラーξを前記通信インターフェース部が前記クライアントに提供する
サーバを用いたサービス方法。
  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= C1Tc1,
    a matrix W of n rows and l columns2= C1Tc2+ C1 Tc2',and
Scalar ξ = c2c2TToCalculation 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つの暗号データc、c’に対応する2つの平文データm、m’についての内積である第1の内積と、複数の前記暗号データのうちの2つの暗号データc”、c”’に対応する2つの平文データm”、m”’についての内積である第2の内積との和を求めるべき情報である第2の情報がもたらされたときに前記通信インターフェース部が該第2の情報を受け付け、
前記第2の情報に基づいて、
n行n列の第2の正方行列ΣW=c+c”’”、
n行l列の第2の行列ΣW=c+c ’+c”’”+c”’、および
第2のスカラーΣξ=c+c”c”’前記計算処理部が算出し、
前記第2の正方行列ΣW、前記第2の行列ΣW、および前記第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 1T 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 2T + 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.
JP2015227711A 2015-11-20 2015-11-20 Server, service method Active JP6643756B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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