JP2016131271A - Server and service method - Google Patents

Server and service method Download PDF

Info

Publication number
JP2016131271A
JP2016131271A JP2015004024A JP2015004024A JP2016131271A JP 2016131271 A JP2016131271 A JP 2016131271A JP 2015004024 A JP2015004024 A JP 2015004024A JP 2015004024 A JP2015004024 A JP 2015004024A JP 2016131271 A JP2016131271 A JP 2016131271A
Authority
JP
Japan
Prior art keywords
encrypted data
new
public key
key
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015004024A
Other languages
Japanese (ja)
Other versions
JP6490429B2 (en
Inventor
チュウ フォン レ
Trieu Phong Le
チュウ フォン レ
良範 青野
Yoshinori Aono
良範 青野
卓也 林
Takuya Hayashi
卓也 林
立華 王
Ritsuka O
立華 王
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 JP2015004024A priority Critical patent/JP6490429B2/en
Publication of JP2016131271A publication Critical patent/JP2016131271A/en
Application granted granted Critical
Publication of JP6490429B2 publication Critical patent/JP6490429B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To enable update of encryption security in response to a request in a server and a service method for performing certain calculation processing by using encryption data in response to a request and presenting a result based on encryption.SOLUTION: Encryption data which are encrypted with a public key of a client and brought with a homomorphic property are stored and held. A request for calculation processing to be performed with the encryption data as a source is received from the client, and the calculation processing is performed as homomorphic calculation, and an encryption processing result which is obtained as the result of the homomorphic calculation and formatted to be encrypted with the public key is presented to the client. An update key which is a key to perform security update on the encryption data and has relationship with the public key, and a new public key of the client after the security update is performed are received from the client. By using the update key and the new public key, the encryption data are converted to updated encryption data which are formatted to be encrypted with the new public key has the same homomorphic property as the original, and then the encryption data are discarded and replaced by the updated encryption data.SELECTED DRAWING: Figure 1

Description

本発明は、暗号化されたデータを記憶保持し、要求に応じて当該暗号データを用いて一定の計算処理を行い暗号で結果を提供するサーバおよびサービス方法に係り、特に、暗号セキュリティのアップデートに対応するサーバおよびサービス方法に関する。   The present invention relates to a server and a service method for storing and storing encrypted data, performing a certain calculation process using the encrypted data in response to a request, and providing a result by encryption, particularly for updating cryptographic security. It relates to a corresponding server and service method.

クラウドサーバのように、クライアントに代わってデータを記憶保持するサービスが存在する。これを利用し、クライアントが開示している公開鍵で暗号化したデータを第三者がサーバにアップロードすると、クライアントはこのデータをクラウド管理者に内容秘匿のまま自身が解読(復号)可能な暗号データとしてサーバ上に置かれた状態で管理できる。例えばデータとしてセンサー出力や医療検査結果など秘匿性の高いデータを扱う場合に都合がよい。   There are services that store and hold data on behalf of clients, such as cloud servers. 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) the data while keeping the contents confidential to the cloud administrator. It can be managed as data on the server. For example, it is convenient when handling highly confidential data such as sensor output and medical test results as data.

また、クラウドサーバでは、クライアントのデータを記憶保持し、リソースが限られたクライアントからの要求に応じてこのデータを用いてクライアントに代わって計算処理を行いその結果をクライアントに提供するサービスが存在する(代理計算)。この場合、通常、データとして暗号データは扱えない。暗号データで計算処理を行うと当然、平文データでの処理結果と一般に一致しないためである。   In cloud servers, there is a service that stores and holds client data, performs calculation processing on behalf of the client using this data in response to a request from a client with limited resources, and provides the result to the client (Proxy calculation). In this case, normally, encrypted data cannot be handled as data. This is because when the calculation process is performed with the encrypted data, the process result with the plain text data generally does not match.

一方、暗号データでの計算処理が平文データでの処理結果と対応するような暗号データ(=準同型性のある暗号データ)は、現在いくつか知られている。かかる暗号データを用いれば、サーバで一定の計算処理を行っても結果を同じ形式の暗号データで得ることができ、これをクライアントに提供できる。クライアントは対応する秘密鍵でこれを復号できる。つまり、準同型性のある暗号データを利用すれば、サーバ上で行うデータの計算処理に関しても、これをクラウド管理者に内容秘匿でクライアントが管理できる。   On the other hand, some encryption data (= encrypted data having homomorphism) in which calculation processing with encrypted data corresponds to a processing result with plain text data are currently known. If such encrypted data is used, the result can be obtained with the same format of encrypted data even if a certain calculation process is performed on 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 in a secret manner from the cloud administrator.

データの記憶保持および計算処理に関しては、現状、上記のように暗号データ(とりわけ準同型性を有する暗号データ)を用いてその利点を享受できるものの、一般に暗号データは危殆化する可能性を有しており、長期的視点ではセキュリティの更新(アップデート)が必要不可欠である。暗号データのセキュリティを更新するには、一旦平文に復号してから再度アップデートに対応した暗号化を行うか、平文に復号せず直接に暗号データに対してセキュリティ更新の処理を行うかのいずれかになる。いずれも処理負担が軽いとは限られず、クライアントではなくサーバの側で行うのが好ましいと考えられる。   With regard to data storage and calculation processing, currently, encryption data (especially encryption data having homomorphism) can be enjoyed as described above, but encryption data generally has the possibility of being compromised. From a long-term perspective, security updates are essential. To update the security of the encrypted data, either decrypt it into plaintext and then perform encryption corresponding to the update again, or perform the security update process directly on the encrypted data without decrypting it into plaintext. become. In any case, the processing load is not limited, and it is preferable to perform the processing on the server side, not on the client side.

サーバの側で暗号データのセキュリティ更新の処理を行うと、前者の場合では、その処理時にクラウド管理者に対するデータ内容の秘匿性がくずれる。よって、データの記憶保持、計算処理、セキュリティ更新という一連のサービスで一貫した秘匿性を保てず、サービスとして不備が含まれたものになってしまう。そこで、準同型性を有する暗号データを扱ってなおかつ直接に暗号データにセキュリティ更新の処理ができるサーバが望まれる。このとき、セキュリティ更新の処理を行っても暗号データに準同型性が保たれることが前提になる。準同型性のない暗号データに更新されると、サーバ上で行うデータの計算処理に関するサービスがその後提供できなくなる。   When the security update processing of the encrypted data is performed on the server side, in the former case, the confidentiality of the data content to the cloud administrator is lost during the processing. Therefore, a series of services such as data storage / holding, calculation processing, and security update cannot maintain a consistent confidentiality, and the service includes defects. Therefore, a server that handles encrypted data having homomorphism and can directly perform security update processing on encrypted data is desired. At this time, it is assumed that the homomorphism is maintained in the encrypted data even if the security update process is performed. If it is updated to encryption data that does not have homomorphism, then a service relating to data calculation processing performed on the server cannot be provided.

US8,565,435特許明細書US 8,565,435 patent specification

本発明は、暗号化されたデータを記憶保持し、要求に応じて当該暗号データを用いて一定の計算処理を行い暗号で結果を提供するサーバおよびサービス方法において、当該暗号データに対してセキュリティのアップデートが可能なサーバおよびサービス方法を提供することを目的とする。   The present invention relates to a server and a service method for storing and storing encrypted data, performing a certain calculation process using the encrypted data in response to a request, and providing a result in the encryption, with respect to the encrypted data. An object is to provide a server and a service method that can be updated.

本発明の一態様であるサーバは、クライアントの公開鍵で暗号化されたデータである、準同型性が付与された暗号データを複数記憶保持する手段と、前記クライアントから、複数の前記暗号データをソースとして行う計算処理をなすことの要求がされたときに該要求を受け付ける手段と、前記要求に基づいて、複数の前記暗号データをソースに前記計算処理を準同型演算として行い、該計算処理の結果である、前記公開鍵で暗号化された形式を有する暗号化処理結果を算出する手段と、前記暗号化処理結果を前記クライアントに提供する手段と、前記暗号データに対してセキュリティ更新を行うための鍵である、前記公開鍵との関係性を有する更新鍵、および該セキュリティ更新がされたあとの前記クライアントの公開鍵である新公開鍵が前記クライアントから送付されたときに該更新鍵および該新公開鍵を受け取る手段と、前記暗号データに行う前記セキュリティ更新として、前記更新鍵および前記新公開鍵を用いて、前記暗号データを、前記新公開鍵により暗号化された形式を有しかつ前記準同型性と同様の準同型性を有するデータである更新暗号データに変換する手段と、前記暗号データが前記更新暗号データに変換されたあと、前記暗号データを破棄して該暗号データを前記更新暗号データで置き換える手段とを具備する。   The server according to an aspect of the present invention stores a plurality of pieces of encrypted data with homomorphism, which is data encrypted with the client's public key, and a plurality of pieces of the encrypted data from the client. Means for accepting the request when a calculation process to be performed as a source is requested, and performing the calculation process as a homomorphic operation using a plurality of the encrypted data as a source based on the request, A means for calculating an encryption processing result having a format encrypted with the public key, a means for providing the encryption processing result to the client, and a security update for the encrypted data An update key having a relationship with the public key and a new public key that is a public key of the client after the security update is performed Means for receiving the update key and the new public key when sent from a client; and the security data to be updated on the encrypted data, using the update key and the new public key as a security update. Means for converting to update encrypted data which is data having a format encrypted by a key and having homomorphism similar to the homomorphism, and after the encrypted data is converted to the updated encrypted data, Means for discarding the encrypted data and replacing the encrypted data with the updated encrypted data.

このサーバは、クライアントの公開鍵で暗号化されたデータである、準同型性が付与された暗号データを複数記憶保持する手段を有している。この手段自体は一般的な記憶保持手段で足りる。このような暗号データの記憶保持により、データの記憶保持およびその計算処理の点で、クラウド管理者を含めたクライアント以外の者への秘匿性を保つことができる。つまり、クライアントから、このサーバにある暗号データをソースとして行う計算処理の要求を受けてこれを準同型演算として行い、その結果として得た、同じ公開鍵で暗号化された形式を有する暗号化処理結果をクライアントに提供する、というサービスを行える。   This server has means for storing and holding a plurality of encrypted data with homomorphism, which is data encrypted with the client's public key. This means itself may be a general memory holding means. By storing and storing such encrypted data, it is possible to maintain confidentiality to persons other than the client including the cloud administrator in terms of data storage and calculation processing. In other words, it receives a request for calculation processing from the client using the encryption data in this server as a source, performs this as a homomorphic operation, and the encryption processing having the format encrypted with the same public key obtained as a result A service that provides results to clients can be performed.

そして、暗号データに対してセキュリティ更新を行うための鍵である、上記公開鍵との関係性を有する更新鍵およびセキュリティ更新がされたあとのクライアントの公開鍵である新公開鍵をクライアントから受け取り、これらの更新鍵および新公開鍵を用いて、暗号データを、新公開鍵により暗号化された形式を有しかつもとの準同型性と同様の準同型性を有する更新暗号データに変換する。この後、暗号データを破棄して更新暗号データで置き換える、という動作を行う。このような一連の動作によって、暗号データのセキュリティ更新後もその準同型性を維持する。よって、要求に応じて暗号データを用いて一定の計算処理を行い暗号で結果を提供するサーバにおいて、暗号データに対するセキュリティのアップデートが可能である。   Then, a key for performing security update on the encrypted data, an update key having a relationship with the public key and a new public key that is a public key of the client after the security update is received from the client, Using these update key and new public key, the encrypted data is converted into updated encrypted data having a format encrypted with the new public key and having homomorphism similar to the original homomorphism. Thereafter, the operation of discarding the encrypted data and replacing it with the updated encrypted data is performed. By such a series of operations, the homomorphism is maintained even after the encryption data is updated. Therefore, it is possible to update the security of the encrypted data in the server that performs a certain calculation process using the encrypted data in response to the request and provides the result by encryption.

また、別の態様であるサービス方法は、クライアントの公開鍵で暗号化されたデータである、準同型性が付与された暗号データを複数記憶保持し、前記クライアントから、複数の前記暗号データをソースとして行う計算処理をなすことの要求がされたときに該要求を受け付け、前記要求に基づいて、複数の前記暗号データをソースに前記計算処理を準同型演算として行い、該計算処理の結果である、前記公開鍵で暗号化された形式を有する暗号化処理結果を算出し、前記暗号化処理結果を前記クライアントに提供し、前記暗号データに対してセキュリティ更新を行うための鍵である、前記公開鍵との関係性を有する更新鍵、および該セキュリティ更新がされたあとの前記クライアントの公開鍵である新公開鍵が前記クライアントから送付されたときに該更新鍵および該新公開鍵を受け取り、前記暗号データに行う前記セキュリティ更新として、前記更新鍵および前記新公開鍵を用いて、前記暗号データを、前記新公開鍵により暗号化された形式を有しかつ前記準同型性と同様の準同型性を有するデータである更新暗号データに変換し、前記暗号データが前記更新暗号データに変換されたあと、前記暗号データを破棄して該暗号データを前記更新暗号データで置き換える。   According to another aspect of the present invention, there is provided a service method that stores and holds a plurality of pieces of encrypted data with homomorphism, which is data encrypted with a client's public key, and the plurality of pieces of encrypted data are sourced from the client. When the request to perform the calculation process is received, the request is accepted, and based on the request, the calculation process is performed as a homomorphic operation using a plurality of the encrypted data as a source, and the result of the calculation process The public key is a key for calculating an encryption processing result having a format encrypted with the public key, providing the encryption processing result to the client, and performing security update on the encrypted data. An update key having a relationship with the key and a new public key that is a public key of the client after the security update is sent from the client When the update key and the new public key are received, and the security update performed on the encrypted data, the encrypted data is encrypted with the new public key using the update key and the new public key. And updated cipher data that is similar to the homomorphism, and after the cipher data is converted to the cipher data, the cipher data is discarded and the cipher data Is replaced with the updated encrypted data.

このサービス方法は、上記のサーバに対応する方法である。   This service method is a method corresponding to the server described above.

本発明によれば、暗号化されたデータを記憶保持し、要求に応じて当該暗号データを用いて一定の計算処理を行い暗号で結果を提供するサーバおよびサービス方法において、当該暗号データに対してセキュリティのアップデートが可能なサーバおよびサービス方法を提供することができる。   According to the present invention, in a server and a service method that stores and holds encrypted data, performs a certain calculation process using the encrypted data in response to a request, and provides a result by encryption, the encrypted data It is possible to provide a server and a service method capable of updating security.

一実施形態であるサーバ、およびこれを含むシステムを示す構成図。The block diagram which shows the server which is one Embodiment, and the system containing this. 図1中に示したパラメータ生成保持部31の機能を示す説明図。Explanatory drawing which shows the function of the parameter production | generation holding | maintenance part 31 shown in FIG. 図1中に示した鍵生成部32の機能を示す説明図。Explanatory drawing which shows the function of the key generation part 32 shown in FIG. 図1中に示した処理部21の暗号化機能を示す説明図。Explanatory drawing which shows the encryption function of the process part 21 shown in FIG. 図1中に示した一般処理部35の復号機能を示す説明図。Explanatory drawing which shows the decoding function of the general process part 35 shown in FIG. 図1中に示したサーバ10で行われ得る準同型演算についてその性質を示す説明図。Explanatory drawing which shows the property about the homomorphic calculation which can be performed in the server 10 shown in FIG. 図1中に示したサーバ10で行われ得る準同型演算が可能な例として線形回帰計算を示す説明図。Explanatory drawing which shows linear regression calculation as an example in which the homomorphic calculation which can be performed with the server 10 shown in FIG. 1 is possible. 図1中に示した更新鍵生成部36の機能を示す説明図。Explanatory drawing which shows the function of the update key production | generation part 36 shown in FIG. 図1中に示したセキュリティ更新処理部14の機能を示す説明図。Explanatory drawing which shows the function of the security update process part 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 and a system including the server according to an embodiment. In the figure, the server 10 is a cloud server, for example, while the client 30 is a device that enjoys a service provided by the server 10. There can be many clients 30 in one server 10 (other clients are not shown). The server 10 and the client 30 will be described below on the assumption that the management subject is different. However, the data encryption causes the third-party device 20 to appear as if the server 10 is a part of the client 30. Yes.

すなわち、クライアント30は、その管理するデータをサーバ10上では暗号化された状態で記憶保持させている。この暗号化に必要な公開鍵はクライアント30が開示している。したがって、クライアント30が開示している公開鍵で第三者機器20が暗号化したデータをサーバ10にアップロードすると、クライアント30はこのデータをクラウド管理者(サーバ10の管理者)に内容秘匿のまま自身が秘密鍵で解読(復号)可能な暗号データとしてサーバ10上に置かれた状態で管理できる。例えばデータとしてセンサー出力や医療検査結果など秘匿性の高いデータを扱う場合に都合がよい。   That is, the client 30 stores and holds the data to be managed on the server 10 in an encrypted state. The client 30 discloses a public key necessary for this encryption. Therefore, when the 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 content 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 that can be decrypted (decrypted) by the secret key. For example, it is convenient when handling highly confidential data such as sensor output and 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, replacement unit) 14. The client 30 includes a parameter generation / holding unit 31, a key generation unit 32, a key holding unit 33, a communication interface 34, a general processing unit 35 (generates request contents and decrypts the result), and an update 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を中心に参照して説明するが、適宜、説明図である図2ないし図9を参照する。   Hereinafter, the functions of the internal configurations of the server 10, the client 30, and the third-party device 20 will be described. However, the description will be made along a series of operations for the sake of convenience of understanding, and thus the description is not necessarily made for each device. I'll decline the point. Further, the description will be made with reference to FIG. 1 drawn as a functional block diagram, but FIG. 2 to FIG.

(公開鍵および秘密鍵の生成)
公開鍵および秘密鍵の生成のため、まず、クライアント30は、パラメータ生成保持部31によりパラメータ(q,l,p)を生成する。qは正の整数、lは正の整数、pは正の整数で、pとqは互いに素(つまり最小公倍数が1)である。lは、平文ベクトルの成分数として設定された数である。平文ベクトルは、成分数がlで各成分がpを法として表された整数とする。以上図2を参照することができる。生成されたパラメータはパラメータ生成保持部31に保持されるとともに、鍵生成部32に渡される。なお、「ベクトル」は断りのない限り横ベクトルを意味する(以下でも同様)。
(Generate public and private keys)
In order to generate a public key and a secret key, the client 30 first generates a parameter (q, l, p) by the parameter generation 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. Reference can be made to FIG. The generated parameter is held in the parameter generation holding unit 31 and is also passed to the key generation unit 32. “Vector” means a horizontal vector unless otherwise noted (the same applies hereinafter).

鍵生成部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 and a secret key based on the parameters (q, l, p) passed from the parameter generation unit 31. The procedure is as follows and FIG. 3 can be referred to. 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 is a number related to security (safety), and q, s, and n determine the security as encryption. Incidentally, in this embodiment, for example, when q = 2 114 , s = 8.0, and n = 2661, encryption with 80-bit security is obtained. In general, an N-bit security cipher is a cipher in which a key (secret key) can be 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 is, R and S are each an n × 1 matrix and each element is an integer sampled from a discrete Gaussian distribution with variance s 2 . In addition, the key generation unit 32 generates a uniform random matrix A. That is, A is a square matrix of n rows and n columns, and each element is an integer sampled at random from a set of integers (0,..., Q−1).

さらに、鍵生成部32はPを計算する。計算式はP=pR−ASである。Pは、n行l列の行列で、各要素はqを法として表された整数になる。以上の一連の手順により、公開鍵は(A,P,n,s)として、秘密鍵はSとして、それぞれ生成される。生成された各鍵は鍵保持部33に渡され、そこで記憶保持される。秘密鍵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 a matrix of n rows and l columns, and each element is an integer expressed modulo q. Through the above series of procedures, the public key is generated as (A, P, n, s) and the secret key is generated as S, respectively. Each generated key is transferred to the key holding unit 33 where it is stored and held. The private key S is managed so as not to flow out of the client 30, while the public key (A, P, n, s) is disclosed for the third party device 20. The third party device 20 may be a device possessed by a person who handles confidential data such as a medical institution or an energy provider.

(暗号化)
図1に示すシステムでは、データの暗号化を公開鍵でクライアント30が行い、その結果である暗号データをサーバ10に送ってサーバ10上に記憶保持させることができる。同様に、第三者機器20がその有する、秘匿が必要な平文のデータをクライアント30の公開鍵で暗号化し、その結果である暗号データをサーバ10に送ってサーバ10上に記憶保持させることもできる。暗号化の処理自体は両者とも変わらないが、後者の動作として以下説明する。手順は以下であり図4を参照できる。
(encryption)
In the system shown in FIG. 1, the client 30 performs data encryption with a public key, and the resultant encrypted data can be sent to the server 10 and stored on the server 10. Similarly, the plaintext data that the third party device 20 needs to conceal is encrypted with the public key of the client 30, and the resultant encrypted data is sent to the server 10 and stored on the server 10. it can. The encryption process itself does not change, 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 . Each of e 1 and e 2 is a vector having n components, and each component is an integer sampled from a discrete Gaussian distribution with variance s 2 . In addition, the processing unit 21 generates a noise e 3. e 3 is a vector having 1 component, and each component is an integer sampled from a discrete Gaussian distribution with 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 having n components, and each component is an integer expressed modulo q. 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 in the third-party device 20, and the number of components is l and each component is an integer expressed modulo p. c 2 is the number of components each component vector of l is an integer represented the q modulo.

以上の一連の手順により、暗号データcはc=(c,c)として生成される。なお、第三者機器20は、以上の一連の手順で公開鍵(A,P,n,s)が必要であるが、これ以外に少なくともパラメータ(l,p)が必要である。パラメータ(l,p)は第三者機器20において前提として了解されているものとする。生成された暗号データは、処理部21から通信インターフェース22に渡され、通信インターフェース22は、渡された暗号データを通信路を介してサーバ10に向けて送る。 Through the series of procedures described above, the encrypted data c is generated as c = (c 1 , c 2 ). The third-party device 20 requires the public key (A, P, n, s) by the above-described series of procedures, but at least the parameters (l, p) are necessary. It is assumed that the parameters (l, p) are understood as a premise in the third party device 20. The generated encrypted data is transferred from the processing unit 21 to the communication interface 22, and the communication interface 22 sends the transferred 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 transmitted from the third party device 20 through the communication interface 11. The encrypted data received by the communication interface 11 is transferred from the communication interface 11 to the encrypted data storage / holding unit 12. The encrypted data storage / holding unit 12 stores and holds the encrypted data transferred 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 contents confidential to 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. Thereby, the confidentiality of the data with respect to the administrator of the server 10 is maintained. The operation when simply decoding will be described below. When the client 30 decrypts the encrypted data stored and held in the encrypted data storage and holding unit 12 and returns it to plaintext data, the client 30 requests to submit the encrypted data c = (c 1 , c 2 ). To 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が暗号データに対して一定の計算処理を行う場合もあるがその場合については後述する。 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 takes out the corresponding encrypted data c = (c 1 , c 2 ) from the encrypted data storage processing unit 12 according to the contents 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. This case will be described later.

通信インターフェース11に渡された暗号データは、通信インターフェース11から通信路を介してクライアント30に送られる。クライアント30は、サーバ10から送られてきた暗号データを通信インターフェース34で受け取る。通信インターフェース34で受け取られた暗号データc=(c,c)は通信インターフェース34から一般処理部35に渡される。 The encrypted data transferred 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 through the communication interface 34. The encrypted data c = (c 1 , c 2 ) received by the communication interface 34 is transferred 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 the decryption operation of the encrypted data c = (c 1 , c 2 ). Refer to FIG. 5 for this point. First, m bars are 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 (= decryption result) obtained by decryption. Of course, this decryption can only be performed 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 the data with respect to the server administrator is maintained in terms of the service of storing and storing 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)である。
(Characteristics 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 has a certain homomorphism. One of them is homomorphism of addition, and generally, c + c ′ = Enc (pk, m + m ′) is established. Here, “Enc” means a function for performing the encryption described above on the plaintext data m + m ′ with the public key pk, where the public key pk (public key) = (A, P, n, s).

つまり、暗号データc、c’とその対応する平文データm、m’とで、暗号データで行った加算c+c’の演算結果は、平文データで行った加算m+m’の演算結果を暗号化したものに等しくなっている。この点は、図2〜図4を参照して追ってみれば確かめることができる。   That is, the operation result of the addition c + c ′ performed on the encrypted data between the encrypted data c and c ′ and the corresponding plaintext data m and m ′ is obtained by encrypting the operation result of the addition m + m ′ performed on the plaintext data. It is equal to. This point can be confirmed by referring to FIGS.

かかる暗号データであることから、サーバ10で加算の演算処理を行うとその結果を、同じ形式で暗号化されたデータとしてクライアント30に提供できる。クライアント30は対応する秘密鍵Sでこれを復号できる。つまり、一定の準同型性のある暗号データを利用することにより、サーバ10上で行うデータの一定の演算処理に関しても、これをサーバ管理者に内容秘匿でクライアント30が管理できる。   Since it is such encrypted data, when the addition calculation process is performed by the server 10, the result can be provided to the client 30 as data encrypted in the same format. The client 30 can decrypt this with the corresponding private key S. In other words, by using encrypted data having a certain homomorphism, the client 30 can manage a certain calculation process of data performed on the server 10 in a secret manner 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 procedure shown in FIGS. 2, 3, and 4 has another homomorphism. In other words, this encrypted data generally has c T c ′ = Enc (pk, m T m ′). Here, c T and m T are obtained by converting 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 + l rows n + l columns) performed on the encrypted data between the encrypted data c and c ′ and the corresponding plaintext data m and m ′ is plaintext data. It is equal for each element to the encrypted result of the tensor product m T m ′ (= square matrix of n + l rows n + l columns). This point can be confirmed by referring to FIGS.

よって、このような乗算の準同型性のある暗号データを利用することにより、サーバ10上で行う積を求める演算処理に関しても、これをサーバ管理者に内容秘匿でクライアント30が管理できる。クライアント30はその演算結果を秘密鍵Sで復号できる。   Therefore, by using encryption data having homomorphism of such multiplication, the client 30 can manage the calculation processing for obtaining the product performed on the server 10 while keeping the contents confidential to 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が管理できることになる。   To summarize the above points, it means that the encrypted data generated by the procedures shown in FIGS. 2, 3, and 4 can be handled by the server 10 for the process of calculating the secondary format. When such processing is performed by the server 10, the result is data corresponding to the result of performing similar processing on plaintext data having a format encrypted with the original public key. Therefore, calculation processing is performed on the server 10 in place of the client 30, and the result is provided to the client 30. The client 30 can decrypt this with the secret key. That is, regarding the calculation processing in the secondary format, this can be managed by the client 30 while keeping the contents 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 once again the relationship between the homomorphism described above and the calculation of the quadratic form. Although FIG. 6 may be easily understood from the above points, it will be briefly reviewed. First, according to FIGS. 2 to 4, the following holds for plaintext vectors m and m ′ and their ciphertext vectors c and c ′.
c + c ′ = Enc (pk, m + m ′): homomorphism of addition c T c ′ = Enc (pk, m T m ′): homomorphism of multiplication of tensor products

次に、例えば、平文データ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
Next, for example, calculation in the secondary format using the encrypted data Enc (pk, x i ) and Enc (pk, y i ) of the plaintext data x i and y i :
N
Σ a i · Enc (pk, x i) · Enc (pk, y i) (i is data number)
i = 1
The result is equal to the result obtained by encrypting the calculation result in the secondary form using the following formula and plaintext data.
N
Enc (pk, Σ a i · x i y i)
i = 1

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

(準同型演算が適用可能な例)
サーバ10で行う準同型演算が適用可能な例を図7を参照して説明する。同図に示すように平文データ列(xx(i),yy(i))を考える(ここで、iはデータ番号で1〜N、ベクトルxx(i)は成分数がn、yy(i)はスカラー)。平文データ列(xx(i),yy(i))に想定される関係式として以下:
yy(i)=θ+θ・xx(i)+ε(i)=hθ(xx(i))+ε(i) (すなわち、ほぼ線形な関係式。ε(i)は誤差)
が成り立つとする。
(Example of applying homomorphic operations)
An example to which a homomorphic operation performed by the server 10 is applicable will be described with reference to FIG. As shown in the figure, a plaintext data string (xx (i) , yy (i) ) is considered (where i is a data number 1 to N, and a vector xx (i) has n f , yy (i ) Is a scalar). The following relational expressions are assumed for the plaintext data string (xx (i) , yy (i) ):
yy (i) = θ 0 + θ · xx (i) + ε (i) = h θ (xx (i) ) + ε (i) (ie, a substantially linear relational expression, ε (i) is an error)
Suppose that

線形回帰計算として、平文データ列(xx(i),yy(i))から(θ,θ)を求めるには、以下のようにすればよい。すなわち、
与えられた初期偏回帰係数(θ,θ,・・・,θnf,)=(θ,θ)
与えられた重み係数 α
を用いて、次の反復計算を行う。
j=0〜nについて

θ ← θ−(α/N)Σ (hθ(xx(i))−yy(i))xx(i)
i=1
(xx(i) は、第j成分)
を(θ,θ)が収束するまで行う。収束した(θ,θ)が解答である。
In order to obtain (θ 0 , θ) from the plaintext data string (xx (i) , yy (i) ) as the linear regression calculation, the following may be performed. That is,
Given initial partial regression coefficients (θ 0 , θ 1 ,..., Θ nf ) = (θ 0 , θ)
Given weight factor α
Is used to perform the next iterative calculation.
About j = 0 to n f
N
θ j ← θ j − (α / N) Σ (h θ (xx (i) ) − yy (i) ) xx (i) j
i = 1
(Xx (i) j is the j-th component)
Until (θ 0 , θ) converges. The converged (θ 0 , θ) is the answer.

以上の線形回帰計算は、その必要な計算が2次形式の計算処理に限られるため、平文データに代えて暗号データを用いて処理しても平文データに対応した結果が得られる。すなわち、クライアント30に代わってサーバ10で計算処理(暗号データを用いた計算処理)を行いその結果をクライアント30に提供することにより、クライアント30は意図する解答を復号で得ることができる。   In the above linear regression calculation, since the necessary calculation is limited to the calculation process in the quadratic format, the result corresponding to the plain text data can be obtained even if the encryption data is used instead of the plain text data. That is, by performing calculation processing (calculation processing using encrypted data) on the server 10 instead of the client 30 and providing the result to the client 30, the client 30 can obtain the intended answer by decryption.

図2〜図4に示した暗号化による暗号データにおいて適用可能な処理の例には、上記以外にも種々考えられる。例えば、mとm’とのハミング距離の計算も可能である。ここでm、m’には具体的にそれぞれ例えば生体認証情報の場合を挙げることができる。サーバ10で準同型演算が可能な暗号データが取り扱われる場合、リソースが限られたクライアント30からの要求に応じてクライアント30に代わって計算処理を行いその結果をクライアント30に提供するサービスを、データ内容秘匿のまま行うことができる。   In addition to the above, various examples of processing that can be applied to encrypted data by encryption shown in FIGS. For example, the Hamming distance between m and m ′ can be calculated. Here, specifically, for example, biometric authentication information can be given as m and m ′. When the server 10 handles cryptographic data that can be subjected to a homomorphic operation, a service that performs calculation processing on behalf of the client 30 and provides the result to the client 30 in response to a request from the client 30 with limited resources The content can be kept confidential.

クライアント30からサーバ10に対して計算処理を要求してその結果をクライアント30が得るまでの手順を以下補足的に説明する。まず、クライアント30は、暗号データをソースとして行う特定の計算処理とその結果の提供とをサーバ10に要求するため、その旨の要求情報を一般処理部35で生成する。この要求情報は、一般処理部35から通信インターフェース34に渡される。   The procedure from the time when the client 30 requests calculation processing to the server 10 and the client 30 obtains the result will be supplementarily described below. First, since the client 30 requests the server 10 to perform a specific calculation process using cryptographic data as a source and to provide the result, the general processing unit 35 generates request information to that effect. This request information is passed from the general processing unit 35 to the communication interface 34.

通信インターフェース34に渡された要求情報は、通信インターフェース34から通信路を介してサーバ10に送られる。サーバ10は、クライアント30から送られてきた要求情報を通信インターフェース11で受け付ける。通信インターフェース11で受け付けられた要求情報は通信インターフェース11から計算処理部13に渡される。計算処理部13は、渡された要求情報に従い、暗号データ記憶処理部12から計算に必要な暗号データを取り出してこれをソースとして準同型演算で計算処理し結果を算出する。そして、計算処理部13は、その結果である、公開鍵で暗号化された形式を有するデータを通信インターフェース11に渡す。   The request information 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 request information sent from the client 30 through the communication interface 11. The request information received by the communication interface 11 is transferred from the communication interface 11 to the calculation processing unit 13. In accordance with the received request information, the calculation processing unit 13 takes out the encryption data necessary for the calculation from the encryption data storage processing unit 12 and uses this as a source for calculation processing by a homomorphic operation to calculate a result. Then, the calculation processing unit 13 passes the data having a format encrypted with the public key, which is the result, to the communication interface 11.

通信インターフェース11に渡された暗号データは、通信インターフェース11から通信路を介してクライアント30に送られ、提供される。クライアント30は、サーバ10から送られてきた暗号データを通信インターフェース34で受け取る。通信インターフェース34で受け取られた暗号データは通信インターフェース34から一般処理部35に渡される。一般処理部35は、通信インターフェース34から渡された暗号データを、すでに説明した手順により復号する。   The encrypted data transferred to the communication interface 11 is sent from the communication interface 11 to the client 30 via the communication path and provided. The client 30 receives the encrypted data sent from the server 10 through the communication interface 34. The encrypted data received by the communication interface 34 is transferred from the communication interface 34 to the general processing unit 35. The general processing unit 35 decrypts the encrypted data delivered from the communication interface 34 by the procedure already described.

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

(更新鍵の生成)
次に、暗号データ記憶保持部12に記憶保持された暗号データについてそのセキュリティを更新する手順を説明する。セキュリティ更新が必要になる理由は、一般に暗号データは長期的視点で危殆化する可能性を有しているためである。暗号データのセキュリティを更新するには、一般に、一旦平文データに復号してから再度アップデートに対応した暗号化を行うか、平文データに復号せず直接に暗号データに対してセキュリティ更新の処理を行うかのいずれかになる。いずれも処理負担が軽いとは限られず、クライアント30ではなくサーバ10の側で処理を行う方が好ましいと考えられる。
(Renewal key generation)
Next, a procedure for updating the security of the encrypted data stored and held in the encrypted data storage holding unit 12 will be described. The reason why the security update is necessary is that the encryption data generally has a possibility of being compromised from a long-term viewpoint. In order to update the security of encrypted data, in general, once decrypted to plaintext data, encryption corresponding to the update is performed again, or security update processing is performed directly on the encrypted data without decrypting to plaintext data. Either. In any case, the processing load is not limited, and it is considered preferable to perform the processing on the server 10 side instead of the client 30.

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

セキュリティ更新のための動作はクライアント30での更新鍵の生成から始まる。以下の手順は図8を参照することができる。まず、クライアント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 from 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 the secret key S Similarly, a new secret key S new generated is prepared. This operation can be referred to FIG. n new is a positive integer and larger than n (= in order to improve security). The new public key and the new secret key are transferred from the key generation unit 32 to the key holding unit 33 and held, and further transferred from the key holding unit 33 to the update key generation unit 36. The public key (A, P, n, s) and the secret key S are also passed from the key holding unit 33 to the update 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 to the smallest integer greater 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 sampled at random 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 with variance 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 + Power 2 (S). Here, Power2 (S) is a matrix of nκ rows and l columns, and is a function that converts S so that Bits (c) · Power2 (S) = c · S. Further, Bits (c) is a vector in which the number of components is converted into bits and the number of components is nκ for a vector c which is an integer expressed by modulo q. Y is a matrix of nκ rows and 1 column, and each element is an integer expressed modulo q.

以上の一連の手順により、更新鍵生成部36で更新鍵は(X,Y)として生成される。この更新鍵は、公開鍵と一定の関係性を有するように生成されている。そして、この更新鍵、および鍵保持部33に保持された新公開鍵は、それぞれ、更新鍵生成部36、鍵保持部33から通信インターフェース34に渡される。通信インターフェース34に渡された更新鍵および新公開鍵は、通信インターフェース34から通信路を介してサーバ10に送付される。   The update key is generated as (X, Y) by the update key generation unit 36 through the above-described series of procedures. The update key is generated so as to have a certain relationship with the public key. The update key and the new public key held in the key holding unit 33 are transferred from the update key generation unit 36 and the key holding unit 33 to the communication interface 34, respectively. The update key and the new public key transferred to the communication interface 34 are sent from the communication interface 34 to the server 10 via the communication path.

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

(セキュリティ更新)
サーバ10は、クライアント30から送付されてきた更新鍵(X,Y)および新公開鍵(Anew,Pnew,nnew,snew)を用いて暗号データ記憶処理部12に記憶保持された暗号データに対してセキュリティを更新する処理を行う。この動作はセキュリティ更新処理部14による。セキュリティ更新処理部14は、暗号データに行うセキュリティ更新として、更新鍵および新公開鍵を用いて、暗号データを、新公開鍵により暗号化された形式を有しかつもとの準同型性と同様の準同型性を有するデータである更新暗号データに変換する。手順は以下であり図9を参照できる。
(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 store the encrypted data stored in the encrypted data storage processing unit 12. Process to update security for data. This operation is performed by the security update processing unit 14. The security update processing unit 14 uses a renewal key and a new public key as a security update performed on the cipher data, and the cipher data has a format encrypted with the new public key and is similar to the original homomorphism. Are converted into updated encrypted data that is data having homomorphism. The procedure is as follows and FIG. 9 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 . Each of f 1 and f 2 is a vector having n new components, and each component is an integer sampled from a discrete Gaussian distribution with variance s new 2 . In addition, the security update processing unit 14 generates a noise f 3. f 3 is a vector of frequency components is l, each component is an integer sampled from a discrete Gaussian distribution of the variance s new 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 connection of matrices. F is a vector whose number of components is n new + l, and each component is an integer expressed modulo q. For c 1 and c 2 , the 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, the updated encrypted data c new = (c new1 , c new2 ), which is the encrypted data after the security update, is calculated as F + E (0). Original encrypted data c = (c 1, c 2 ) is converted from the calculated updated encrypted data c new = (c new1, c new2) is passed from the security update processing unit 14 in the encrypted data storage holding unit 12 . The security update processing unit 14 discards the original encrypted data and replaces it with the updated encrypted data.

以上説明した、暗号データから更新暗号データへの変換は、暗号データとしてもとの準同型性が保たれたものになる。この点は、図8、図9、および図2〜図4を参照して追ってみれば確かめることができる。よって、要求に応じて暗号データを用いて一定の計算処理を行い暗号で結果を提供するサーバ10において、暗号データに対するセキュリティのアップデートが可能である。   The conversion from the encrypted data to the updated encrypted data described above maintains the original homomorphism as the encrypted data. This point can be confirmed by referring to FIGS. 8 and 9 and FIGS. Therefore, the server 10 that performs a certain calculation process using the encrypted data and provides the result with the encryption according to the request can update the security of the encrypted data.

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

以上、本発明の実施形態を説明したが、実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   As mentioned above, although embodiment of this invention was described, embodiment is shown as an example and is not intending limiting the range of invention. The novel embodiment can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. This embodiment and its modifications are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.

10…サーバ、11…通信インターフェース、12…暗号データ記憶保持部、13…計算処理部(算出部)、14…セキュリティ更新処理部(変換部、置き換え部)、20…第三者機器、21…処理部(暗号化部)、22…通信インターフェース、30…クライアント、31…パラメータ生成保持部、32…鍵生成部、33…鍵保持部、34…通信インターフェース。35…一般処理部(要求内容生成部、結果の復号部)、36…更新鍵生成部。   DESCRIPTION OF SYMBOLS 10 ... Server, 11 ... Communication interface, 12 ... Encryption 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 holding unit, 32 ... key generation unit, 33 ... key holding unit, 34 ... communication interface. 35 ... General processing unit (request content generation unit, result decryption unit), 36 ... Update key generation unit.

Claims (6)

クライアントの公開鍵で暗号化されたデータである、準同型性が付与された暗号データを複数記憶保持する手段と、
前記クライアントから、複数の前記暗号データをソースとして行う計算処理をなすことの要求がされたときに該要求を受け付ける手段と、
前記要求に基づいて、複数の前記暗号データをソースに前記計算処理を準同型演算として行い、該計算処理の結果である、前記公開鍵で暗号化された形式を有する暗号化処理結果を算出する手段と、
前記暗号化処理結果を前記クライアントに提供する手段と、
前記暗号データに対してセキュリティ更新を行うための鍵である、前記公開鍵との関係性を有する更新鍵、および該セキュリティ更新がされたあとの前記クライアントの公開鍵である新公開鍵が前記クライアントから送付されたときに該更新鍵および該新公開鍵を受け取る手段と、
前記暗号データに行う前記セキュリティ更新として、前記更新鍵および前記新公開鍵を用いて、前記暗号データを、前記新公開鍵により暗号化された形式を有しかつ前記準同型性と同様の準同型性を有するデータである更新暗号データに変換する手段と、
前記暗号データが前記更新暗号データに変換されたあと、前記暗号データを破棄して該暗号データを前記更新暗号データで置き換える手段と
を具備するサーバ。
Means for storing and holding a plurality of encrypted data with homomorphism, which is data encrypted with the client's public key;
Means for accepting the request when a request is made from the client to perform a calculation process using a plurality of the encrypted data as a source;
Based on the request, the calculation process is performed as a homomorphic operation using a plurality of the encrypted data as sources, and an encryption process result having a format encrypted with the public key, which is a result of the calculation process, is calculated. Means,
Means for providing the encryption processing result to the client;
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 on the client Means for receiving the renewed key and the new public key when sent from
Using the update key and the new public key as the security update performed on the encrypted data, the encrypted data has a format encrypted with the new public key and is homomorphic similar to the homomorphism Means for converting into updated encrypted data which is data having
And a means for discarding the encrypted data and replacing the encrypted data with the updated encrypted data after the encrypted data is converted into the updated encrypted data.
クライアントの公開鍵で暗号化されたデータである、準同型性が付与された暗号データを複数記憶保持し、
前記クライアントから、複数の前記暗号データをソースとして行う計算処理をなすことの要求がされたときに該要求を受け付け、
前記要求に基づいて、複数の前記暗号データをソースに前記計算処理を準同型演算として行い、該計算処理の結果である、前記公開鍵で暗号化された形式を有する暗号化処理結果を算出し、
前記暗号化処理結果を前記クライアントに提供し、
前記暗号データに対してセキュリティ更新を行うための鍵である、前記公開鍵との関係性を有する更新鍵、および該セキュリティ更新がされたあとの前記クライアントの公開鍵である新公開鍵が前記クライアントから送付されたときに該更新鍵および該新公開鍵を受け取り、
前記暗号データに行う前記セキュリティ更新として、前記更新鍵および前記新公開鍵を用いて、前記暗号データを、前記新公開鍵により暗号化された形式を有しかつ前記準同型性と同様の準同型性を有するデータである更新暗号データに変換し、
前記暗号データが前記更新暗号データに変換されたあと、前記暗号データを破棄して該暗号データを前記更新暗号データで置き換える
サービス方法。
Stores and holds multiple encrypted data with homomorphism that is encrypted with the client's public key,
When the client requests to perform a calculation process using a plurality of the encrypted data as sources, the request is accepted,
Based on the request, the calculation process is performed as a homomorphic operation using a plurality of the encrypted data as sources, and an encryption process result having a format encrypted with the public key, which is a result of the calculation process, is calculated. ,
Providing the encryption processing result to the client;
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 on the client Receive the renewal key and the new public key when sent from
Using the update key and the new public key as the security update performed on the encrypted data, the encrypted data has a format encrypted with the new public key and is homomorphic similar to the homomorphism Converted to updated encrypted data,
A service method for discarding the encrypted data and replacing the encrypted data with the updated encrypted data after the encrypted data is converted into the updated encrypted data.
前記準同型性が付与された前記暗号データが、次式:
=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の離散ガウス分布からサンプリングした整数。
により生成された暗号データcである請求項2記載のサービス方法。
The encrypted data with the homomorphism is given by 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 each an integer sampled from a discrete Gaussian distribution with a vector having n components and each component having a variance s 2 . e 3 is an integer sampled from a discrete Gaussian distribution with a variance s 2 where each component is a vector with l components. m is a plaintext vector, the number of components is 1, and each component is an integer expressed modulo p.
n, s, l, 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, and each element is an integer sampled at random from a set of integers (0,..., Q−1). P depends on P = pR-AS. R and S are each an integer sampled from a discrete Gaussian distribution with a variance s 2 where each element is an n-by-1 matrix.
The service method according to claim 2, wherein the data is encrypted data c generated by the above.
前記計算処理が、前記暗号データを使った2次形式の式の計算処理である請求項2記載のサービス方法。   The service method according to claim 2, wherein the calculation process is a calculation process of a quadratic formula using the encrypted data. 前記更新鍵が、前記公開鍵、該公開鍵に対応する秘密鍵、前記新公開鍵、および該新公開鍵に対応する新秘密鍵を用いて、次式:
X: nκ行nnew列の行列で各要素は整数の集合(0,…,q−1)から無作為にサンプリングした整数
Y=−XSnew+pE+Power2(S)
ここで、nは正の整数。κはκ=ceiling(logq)による。qは正の整数。nnewは、nより大の正の整数。Snewは、nnew行l列の行列で各要素は分散sの離散ガウス分布からサンプリングした整数。lは正の整数。pは正の整数でpとqは互いに素。Eは、nκ行l列の行列で各要素は分散snew の離散ガウス分布からサンプリングした整数。snewは正の実数。Sは、n行l列の行列で各要素は分散sの離散ガウス分布からサンプリングした整数。sは正の実数。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である。Aは、n行n列の正方行列で各要素は整数の集合(0,…,q−1)から無作為にサンプリングした整数。Pは、n行l列の行列で各要素はqを法として表された整数。Anewは、nnew行nnew列の正方行列で各要素は整数の集合(0,…,q−1)から無作為にサンプリングした整数。Pnewは、nnew行l列の行列で各要素はqを法として表された整数。
により生成された鍵(X,Y)である請求項2記載のサービス方法。
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, and the following formula:
X: a matrix of nκ rows and n new columns, each element is an integer randomly sampled from a set of integers (0,..., Q−1) Y = −XS new + pE + Power 2 (S)
Here, n is a positive integer. κ depends on κ = ceiling (log 2 q). q is a positive integer. n new is a positive integer greater than n. S new is an n new by 1 matrix, and each element is an integer sampled from a discrete Gaussian distribution with variance s 2 . l is a positive integer. p is a positive integer and p and q are relatively prime. E is an nκ × 1 matrix, and each element is an integer sampled from a discrete Gaussian distribution with variance s new 2 . s new is a positive real number. S is an n × 1 matrix, and each element is an integer sampled from a discrete Gaussian distribution with variance s 2 . s is a positive real number. Power2 (S) is a matrix of nκ rows and l columns, and a function that converts S so that Bits (c) · Power2 (S) = c · S. Bits (c) is a vector in which each component is bit-converted into a vector c in which the number of components is n and each component is an integer expressed modulo q and the number of components is nκ. The public key is (A, P, n, s), the secret key is S, the new public key is (A new , P new , n new , s new ), and the new secret key is S new . . A is a square matrix of n rows and n columns, and each element is an integer randomly sampled from a set of integers (0,..., Q−1). P is a matrix of n rows and l columns, and each element is an integer expressed modulo q. A new is a square matrix of n new rows and n new columns, and each element is an integer randomly sampled from a set of integers (0,..., Q−1). P new is a matrix of n new rows and 1 column, and each element is an integer expressed modulo q.
The service method according to claim 2, wherein the key (X, Y) is generated by.
前記更新暗号データが、次式:
F=[Bits(c)X | Bits(c)Y+c
E(0)=f[Anew|Pnew]+p[f|f
ここで、(c,c)が前記暗号データである。cは、成分数がnのベクトルで各成分はqを法として表された整数。cは、成分数がlのベクトルで各成分はqを法として表された整数。Bits(c)は、成分数がnで各成分がqを法として表された整数であるベクトルcについてその各成分をビット化し、成分数がnκになったベクトル。f、fは、それぞれ、成分数がnnewのベクトルで各成分は分散snew2の離散ガウス分布からサンプリングした整数。
により生成された暗号データF+E(0)である請求項5記載のサービス方法。
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 ]
Here, (c 1 , c 2 ) is the encrypted data. c 1 is a vector having n components, and each component is an integer expressed modulo q. c 2 is an integer each component frequency components is a vector of l expressed the q modulo. Bits (c 1 ) is a vector in which the number of components is converted into bits and the number of components is nκ for vector c 1 which is an integer expressed by modulo q. f 1 and f 2 are each a vector having n new components, and each component is an integer sampled from a discrete Gaussian distribution with variance s new 2.
6. The service method according to claim 5, wherein the encrypted data is F + E (0) generated by.
JP2015004024A 2015-01-13 2015-01-13 Server, service method Active JP6490429B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015004024A JP6490429B2 (en) 2015-01-13 2015-01-13 Server, service method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015004024A JP6490429B2 (en) 2015-01-13 2015-01-13 Server, service method

Publications (2)

Publication Number Publication Date
JP2016131271A true JP2016131271A (en) 2016-07-21
JP6490429B2 JP6490429B2 (en) 2019-03-27

Family

ID=56414835

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015004024A Active JP6490429B2 (en) 2015-01-13 2015-01-13 Server, service method

Country Status (1)

Country Link
JP (1) JP6490429B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018174525A (en) * 2017-03-31 2018-11-08 トヨタ モーター エンジニアリング アンド マニュファクチャリング ノース アメリカ,インコーポレイティド Privacy-aware signal monitoring systems and methods
KR20200044103A (en) * 2017-08-30 2020-04-28 인퍼, 인코포레이티드 High-precision privacy protection real-time function evaluation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005252384A (en) * 2004-03-01 2005-09-15 Rikogaku Shinkokai Encrypted data storage server system, encrypted data storage method, and re-encryption method
WO2014010202A1 (en) * 2012-07-12 2014-01-16 日本電気株式会社 Encrypted statistical processing system, decrypting system, key generation device, proxy device, encrypted statistical data generation device, encrypted statistical processing method, and encrypted statistical processing program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005252384A (en) * 2004-03-01 2005-09-15 Rikogaku Shinkokai Encrypted data storage server system, encrypted data storage method, and re-encryption method
WO2014010202A1 (en) * 2012-07-12 2014-01-16 日本電気株式会社 Encrypted statistical processing system, decrypting system, key generation device, proxy device, encrypted statistical data generation device, encrypted statistical processing method, and encrypted statistical processing program

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
AONO, Y. ET AL.: "Key-private proxy re-encryption under LWE", LECUTURE NOTES IN COMPUTER SCIENCE, vol. 8250, JPN6018036674, 2013, pages 1 - 18, ISSN: 0003924527 *
GENTRY, C. ET AL.: "Homomorphic Encryption from Learning with Erros: Conceptually-Simpler, Asymptotically-Faster, Attrib", LECUTURE NOTES IN COMPUTER SCIENCE, vol. 8042, JPN6018036676, 2013, pages 75 - 92, ISSN: 0003924528 *
一色寿幸: "準同型暗号を用いたプライバシー保護型統計演算のソフトウェア実装報告", 電子情報通信学会技術研究報告, vol. 第111巻 第455号, JPN6018036673, 23 February 2012 (2012-02-23), pages 135 - 140, ISSN: 0003924526 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018174525A (en) * 2017-03-31 2018-11-08 トヨタ モーター エンジニアリング アンド マニュファクチャリング ノース アメリカ,インコーポレイティド Privacy-aware signal monitoring systems and methods
KR20200044103A (en) * 2017-08-30 2020-04-28 인퍼, 인코포레이티드 High-precision privacy protection real-time function evaluation
JP2020532771A (en) * 2017-08-30 2020-11-12 インファー,インク. High-precision privacy protection real-valued function evaluation
JP7272363B2 (en) 2017-08-30 2023-05-12 インファー,インク. Precision privacy-preserving real-valued function evaluation
KR102667837B1 (en) 2017-08-30 2024-05-21 인퍼, 인코포레이티드 High-precision privacy-preserving real-value function evaluation

Also Published As

Publication number Publication date
JP6490429B2 (en) 2019-03-27

Similar Documents

Publication Publication Date Title
US10903991B1 (en) Systems and methods for generating signatures
JP5377540B2 (en) Key management system
EP2424156B1 (en) Cryptographic system, cryptographic communication method, encryption apparatus, key generation apparatus, decryption apparatus, content server, program and storage medium
CN113259329B (en) Method and device for data careless transmission, electronic equipment and storage medium
JP2019517184A (en) Method and system for secure data transmission
EP2582086A1 (en) Cryptosystem, cryptographic communication method, encryption device, key-generating device, decryption device, content server device, program, and recording medium
US10237249B2 (en) Key revocation
US20230019301A1 (en) Attribute-based encryption (abe) method with multiple tracing attribute authorities for cloud-assisted internet-of-things (iot)
US9037846B2 (en) Encoded database management system, client and server, natural joining method and program
CN111865582B (en) Private key offline storage method, system and storage medium based on zero knowledge proof
US12010216B2 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
US20190124058A1 (en) Terminal device, key distribution management device, server-client system, communication method, and programs
US11075748B2 (en) Encryption for low-end devices through computation offloading
CN105656881B (en) A kind of electronic health record can verify that outsourcing storage and retrieval system and method
CN111404671A (en) Mobile quantum secret communication method, gateway, mobile terminal and server
CN104917611A (en) Data encryption and decryption processing method and device for cloud computing
JP6468567B2 (en) Key exchange method, key exchange system
CN114095171A (en) Identity-based wearable proxy re-encryption method
JP6490429B2 (en) Server, service method
CN108599941A (en) Random asymmetries expand byte encryption of communicated data method
JP4758110B2 (en) Communication system, encryption apparatus, key generation apparatus, key generation method, restoration apparatus, communication method, encryption method, encryption restoration method
Elemam et al. A secure MQTT protocol, telemedicine IoT case study
JP6643756B2 (en) Server, service method
CN116232578A (en) Multi-party collaborative signature system, method and equipment integrating quantum key distribution
CN116318654A (en) SM2 algorithm collaborative signature system, method and equipment integrating quantum key distribution

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190123

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190227

R150 Certificate of patent or registration of utility model

Ref document number: 6490429

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250