JP6693834B2 - Concealment calculation technology and method - Google Patents
Concealment calculation technology and method Download PDFInfo
- Publication number
- JP6693834B2 JP6693834B2 JP2016155202A JP2016155202A JP6693834B2 JP 6693834 B2 JP6693834 B2 JP 6693834B2 JP 2016155202 A JP2016155202 A JP 2016155202A JP 2016155202 A JP2016155202 A JP 2016155202A JP 6693834 B2 JP6693834 B2 JP 6693834B2
- Authority
- JP
- Japan
- Prior art keywords
- mod
- user terminal
- calculated
- encrypted
- public key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Description
本発明は、暗号化状態のまま数値演算が可能な秘匿演算手法に関するものであり、複数の登録装置から個々の暗号化データをクラウド上のサーバなどに登録でき、また、前記サーバ上で暗号状態のまま正しい演算をすることができ、また、複数の利用者端末装置が前期暗号化演算結果を取得し、復号することができる秘匿演算方法に関する。 The present invention relates to a secret calculation method capable of performing a numerical calculation in an encrypted state, in which individual encrypted data can be registered in a server on the cloud from a plurality of registration devices, and the encrypted state can be maintained on the server. The present invention relates to a secret calculation method in which a correct calculation can be performed as it is, and a plurality of user terminal devices can obtain and decrypt the previous encryption calculation result.
個人情報や企業情報などの機密データ(特に、数値データ)をクラウド上のサーバで管理している状況において、クラウドサーバからの情報漏洩を防止しつつ同時に情報を活用する為に、データを予め暗号化してからクラウドサーバに預けておき、クラウドサーバに預けられた暗号化データを利用する際に、暗号化状態のまま演算をすることができる暗号技術が知られている。 In the situation where confidential data (especially numerical data) such as personal information and company information is managed by a server on the cloud, data is encrypted in advance to prevent information leakage from the cloud server and at the same time utilize the information. There is known a cryptographic technique that can be stored in a cloud server after being encrypted and can be operated in the encrypted state when using the encrypted data deposited in the cloud server.
例えば、加法・減法に対して準同型の性質を持つ暗号関数を利用し、暗号化状態のまま加法、減法、乗法、除法の演算をすることができる公開鍵暗号ベースの秘匿演算技術が知られている (特許文献1)。 For example, there is known a public key cryptography-based secret arithmetic technique that can perform addition, subtraction, multiplication, and division operations in an encrypted state by using a cryptographic function having homomorphic properties for addition and subtraction. (Patent Document 1).
しかしながら従来技術においては、各データは演算結果を取得する装置の公開鍵で暗号化され、前記公開鍵で暗号化された状態のまま演算処理される。この時、演算結果も前記公開鍵で暗号化されている状態である為、暗号化演算結果を復号できるのは、前記公開鍵に対応する秘密鍵を保持している装置のみである。つまり従来技術においては、前記公開鍵を知っていれば、複数の装置から、個々のデータを暗号化し、前記暗号化データを暗号化状態で演算をさせることができるが、複数の装置に暗号化演算結果を復号させることができない。もちろん複数の装置に同一の復号用秘密鍵を事前に配布させておけば、複数の装置にて暗号化演算結果を復号させることができるが、別々の秘密鍵を保持する複数の装置が暗号化演算結果を復号することはできないという課題があった。 However, in the prior art, each data is encrypted with the public key of the device that obtains the calculation result, and the calculation process is performed in the state of being encrypted with the public key. At this time, since the calculation result is also encrypted with the public key, the encrypted calculation result can be decrypted only by the device that holds the private key corresponding to the public key. That is, in the prior art, if the public key is known, it is possible to encrypt individual data from a plurality of devices and operate the encrypted data in an encrypted state. The calculation result cannot be decrypted. Of course, if the same decryption private key is distributed to multiple devices in advance, the encrypted calculation result can be decrypted by multiple devices, but multiple devices that have different private keys will encrypt it. There is a problem that the calculation result cannot be decrypted.
上記課題をより具体的に説明すると、個人情報や企業情報などの機密データ(特に、数値データ)をクラウドサーバ上で暗号化状態にて管理させ、その暗号化データから統計値などを調べる為に、クラウドサーバ上で各暗号化データを演算し、その演算結果を利用する場合、その演算結果を利用できる装置は該当する秘密鍵を保持する装置1つのみであり、前記クラウドサーバにアクセスできる他の複数の装置が、前記演算結果を利用することができないという課題があった。 To explain the above-mentioned problem more specifically, confidential data such as personal information and corporate information (especially numerical data) is managed in an encrypted state on a cloud server, and statistical values etc. are checked from the encrypted data. , When each encrypted data is calculated on the cloud server and the calculation result is used, only one device that holds the corresponding secret key can use the calculation result, and the cloud server can be accessed. There is a problem in that the plurality of devices cannot utilize the calculation result.
上記課題を解決する本発明では、利用者端末装置と演算装置とで別々に管理される2つの秘密鍵からシステム公開鍵を生成する。そしてこのシステム公開鍵を用いて各データを暗号化する。その後、システム公開鍵で暗号化された各データについて、暗号化状態で秘匿演算処理をし、その結果を利用者端末装置の秘密鍵で再暗号化して、暗号化されたものを利用者端末装置に送付する。利用者端末装置は、自身が管理する秘密鍵を用いて復号する。 In the present invention which solves the above-mentioned subject, a system public key is generated from two secret keys managed separately by a user terminal unit and a computing unit. Then, each data is encrypted using this system public key. After that, for each data encrypted with the system public key, the confidential arithmetic processing is performed in the encrypted state, the result is re-encrypted with the secret key of the user terminal device, and the encrypted data is used for the user terminal device. To send to. The user terminal device decrypts using the private key managed by itself.
本発明により、暗号化状態のまま数値演算が可能な秘匿演算手法に関し、複数の利用者端末装置が、要求した演算結果のみを暗号化状態で取得し、復号することができる。 According to the present invention, a secret arithmetic method capable of performing a numerical operation in an encrypted state can be acquired by a plurality of user terminal devices in an encrypted state only for a requested arithmetic result.
−−−システム構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。
--- System configuration ---
Embodiments of the present invention will be described below in detail with reference to the drawings.
図1は、本実施形態における秘匿演算システム1の全体構成例を示す図である。この図では、全体構成と共に、秘匿演算システム1を構成する各コンピュータの機能構成例についても示している。図1に示す秘匿演算システム1は、各登録装置30より集計装置10に登録した暗号化データを、受付装置20を経由した利用者端末装置40からの要求に従い、集計装置10にて暗号化状態のまま加法・減法の演算処理を行い、当該演算結果を暗号化状態のまま利用者端末装置40に返信し、前記利用者端末装置40では前記暗号化演算結果を復号して演算結果を取得するシステムである。
FIG. 1 is a diagram showing an example of the overall configuration of a
本実施形態に係る秘匿システム1は、集計装置10と、受付装置20と、登録装置30と利用者端末装置40がインターネットなどの適宜なネットワーク50を介して通信可能に接続されて構成されたコンピュータネットワークシステムである。尚、登録装置30および利用者端末装置40は複数存在する。
The
図1に示すように、集計装置10は、情報生成部101、暗号処理部102、データ送受信部103、情報入力部104、情報出力部105、一次記憶部106、データ記憶部107、鍵記憶部108から構成することができる。
As illustrated in FIG. 1, the aggregation device 10 includes an
このうち情報生成部101は、集計装置10の秘密鍵や秘匿演算システム1のシステム公開鍵などの情報を生成するものであり、例えば情報入力部104から入力された信号やデータ送受信部103で受信したデータを基に情報を生成するものである。また、暗号処理部102は、主に登録装置30から受信した暗号化データを暗号化状態のまま演算を行うものである。また、鍵記憶部108は、情報生成部101で生成した秘密鍵を安全に管理するものである。また、一次記憶部106は、半導体を用いた一次記憶領域である。
また、データ記憶部107は登録装置30から受信した暗号化データを暗号化状態のまま管理するものである。また、データ送受信部103は、暗号化データを送受信する。また、情報入力部104は、情報生成部101で生成する情報の入力にあたる信号を受け付けるものである。また、情報出力部105は、情報入力部104で入力した信号などを表示したりするものである。
Of these, the
The
このような機能を有する集計装置10は、図2に例示するように一般的な情報処理装置60により実現できる。例えば、情報生成部101、暗号処理部102、データ送受信部103、情報入力部104、情報出力部105はCPU(CENTRAL PROCESSING UNIT)等のCPU605により実行されるコンピュータプログラムとして実現できる。こうしたコンピュータプログラムは、例えば、ハードディスクなどの記憶装置604に予め格納、保持するか、或いはネットワーク50から配布を受けて利用することとできる。また、データ記憶部107や鍵記憶部108も上述の記憶装置604として実現できる。尚、鍵記憶部108は、HSM(Hardware Security Module)と呼ばれるセキュアなモジュール装置を用いて実現してもよい。
The aggregation device 10 having such a function can be realized by a general information processing device 60 as illustrated in FIG. For example, the
また、一次記憶部106はメモリー603にて実現出来る。また、情報出力部105は、例えば液晶表示装置や有機EL(ELECTRO LUMINESCENCE)ディスプレイなどの入出力装置601として実現できる。また、情報入力部104は、利用者からの指示、入力を受け付けるキーボードやマウスなどの入出力装置601として実現できる。
Further, the
この他、集計装置10は、ネットワーク50を介して他装置と通信する通信装置602を備え、バスなどの内部通信線(以下,バスという)606で連結された情報処理装置60上に構成することができる。 In addition, the aggregation device 10 includes a communication device 602 that communicates with other devices via the network 50, and is configured on the information processing device 60 connected by an internal communication line (hereinafter referred to as a bus) 606 such as a bus. You can
また、図1に示すように、受付装置20は、情報生成部201、暗号処理部202、データ送受信部203、情報入力部204、情報出力部205、一次記憶部206、データ記憶部207、鍵記憶部208から構成することができる。
Further, as shown in FIG. 1, the reception device 20 includes an
このうち情報生成部201は、受付装置20の秘密鍵および公開鍵などの情報や、利用者端末装置40に対するアクセス権などの情報を生成するものであり、例えば情報入力部204から入力された信号やデータ送受信部203で受信したデータを基に情報を生成するものである。また、暗号処理部202は、主に集計装置10から受信した暗号化演算結果を加工処理するものである。また、鍵記憶部208は、情報生成部201で生成した秘密鍵を安全に管理するものである。また、一次記憶部206は、半導体を用いた一次記憶領域である。また、データ記憶部207は利用者端末装置40に対するアクセス権などの情報を管理するものである。また、データ送受信部203は、暗号化データを送受信する。また、情報入力部204は、情報生成部201で生成する情報の入力にあたる信号を受け付けるものである。また、情報出力部205は、情報入力部204で入力した信号などを表示したりするものである。
Of these, the
このような機能を有する受付装置20は、図2に例示するように一般的な情報処理装置60により実現できる。例えば、情報生成部201、暗号処理部202、データ送受信部203、情報入力部204、情報出力部205はCPU(CENTRAL PROCESSING UNIT)等のCPU605により実行されるコンピュータプログラムとして実現できる。こうしたコンピュータプログラムは、例えば、ハードディスクなどの記憶装置604に予め格納、保持するか、或いはネットワーク50から配布を受けて利用することとできる。また、データ記憶部207や鍵記憶部208も上述の記憶装置604として実現できる。尚、鍵記憶部208は、HSM(Hardware Security Module)と呼ばれるセキュアなモジュール装置を用いて実現してもよい。
The reception device 20 having such a function can be realized by a general information processing device 60 as illustrated in FIG. For example, the
また、一次記憶部206はメモリー603にて実現出来る。また、情報出力部205は、例えば液晶表示装置や有機EL(ELECTRO LUMINESCENCE)ディスプレイなどの入出力装置601として実現できる。また、情報入力部204は、利用者からの指示、入力を受け付けるキーボードやマウスなどの入出力装置601として実現できる。
Further, the
この他、受付装置20は、ネットワーク50を介して他装置と通信する通信装置602を備え、バスなどの内部通信線(以下,バスという)606で連結された情報処理装置60上に構成することができる。 In addition, the reception device 20 includes a communication device 602 that communicates with another device via the network 50, and is configured on the information processing device 60 connected by an internal communication line (hereinafter, referred to as a bus) 606 such as a bus. You can
図1に示すように、登録装置30は、情報生成部301、暗号処理部302、データ送受信部303、情報入力部304、情報出力部305、一次記憶部306、データ記憶部307から構成することができる。
As shown in FIG. 1, the registration device 30 includes an
このうち情報生成部301は、集計装置10へ登録する数値データなどの情報を生成するものであり、例えば情報入力部304から入力された信号やデータ送受信部303で受信したデータを基に情報を生成するものである。また、暗号処理部302は、前記数値データの暗号化処理をするものである。また、一次記憶部306は、半導体を用いた一次記憶領域である。また、データ記憶部307は集計装置10へ登録する数値データや秘匿演算システム1のシステム公開鍵を管理するものである。また、データ送受信部303は、集計装置10から秘匿演算システム1のシステム公開鍵を受信したり、集計装置10に暗号化データを送信したりする。また、情報入力部304は、情報生成部301で生成する情報の入力にあたる信号を受け付けるものである。また、情報出力部305は、情報入力部304で入力した信号などを表示したりするものである。
Of these, the
このような機能を有する登録装置30は、図2に例示するように一般的な情報処理装置60により実現できる。例えば、情報生成部301、暗号処理部302、データ送受信部303、情報入力部304、情報出力部305はCPU(CENTRAL PROCESSING UNIT)等のCPU605により実行されるコンピュータプログラムとして実現できる。こうしたコンピュータプログラムは、例えば、ハードディスクなどの記憶装置604に予め格納、保持するか、或いはネットワーク50から配布を受けて利用することとできる。また、データ記憶部307も上述の記憶装置604として実現できる。また、一次記憶部306はメモリー603にて実現出来る。また、情報出力部305は、例えば液晶表示装置や有機EL(ELECTRO LUMINESCENCE)ディスプレイなどの入出力装置601として実現できる。また、情報入力部304は、利用者からの指示、入力を受け付けるキーボードやマウスなどの入出力装置601として実現できる。
The registration device 30 having such a function can be realized by a general information processing device 60 as illustrated in FIG. For example, the
この他、登録装置30は、ネットワーク50を介して他装置と通信する通信装置602を備え、バスなどの内部通信線(以下,バスという)606で連結された情報処理装置60上に構成することができる。 In addition, the registration device 30 includes a communication device 602 that communicates with other devices via the network 50, and is configured on the information processing device 60 connected by an internal communication line (hereinafter referred to as a bus) 606 such as a bus. You can
また、図1に示すように、利用者端末装置40は、情報生成部401、暗号処理部402、データ送受信部403、情報入力部404、情報出力部405、一次記憶部406、データ記憶部407、鍵記憶部408から構成することができる。
Further, as shown in FIG. 1, the user terminal device 40 includes an
このうち情報生成部401は、利用者端末装置40の秘密鍵および公開鍵などの情報や、受付装置20を介して集計装置10に送る秘匿演算依頼などの情報を生成するものであり、例えば情報入力部404から入力された信号を基に情報を生成するものである。また、暗号処理部402は、主に集計装置10から受付装置20を介して受信した暗号化演算結果の復号処理をするものである。また、鍵記憶部408は、情報生成部401で生成した秘密鍵を安全に管理するものである。また、一次記憶部406は、半導体を用いた一次記憶領域である。また、データ記憶部407は復号した演算結果などの情報を管理するものである。また、データ送受信部403は、受付装置20を介して集計装置10に秘匿演算依頼を送信したり、受付装置20を介して集計装置10から暗号化演算結果を受信したりする。また、情報入力部404は、情報生成部401で生成する情報の入力にあたる信号を受け付けるものである。また、情報出力部405は、情報入力部404で入力した信号などを表示したりするものである。
Of these, the
このような機能を有する利用者端末装置40は、図2に例示するように一般的な情報処理装置60により実現できる。例えば、情報生成部401、暗号処理部402、データ送受信部403、情報入力部404、情報出力部405はCPU(CENTRAL PROCESSING UNIT)等のCPU605により実行されるコンピュータプログラムとして実現できる。こうしたコンピュータプログラムは、例えば、ハードディスクなどの記憶装置604に予め格納、保持するか、或いはネットワーク50から配布を受けて利用することとできる。また、データ記憶部407や鍵記憶部408も上述の記憶装置604として実現できる。尚、鍵記憶部408は、HSM(Hardware Security Module)と呼ばれるセキュアなモジュール装置を用いて実現してもよい。
The user terminal device 40 having such a function can be realized by a general information processing device 60 as illustrated in FIG. For example, the
また、一次記憶部406はメモリー603にて実現出来る。また、情報出力部405は、例えば液晶表示装置や有機EL(ELECTRO LUMINESCENCE)ディスプレイなどの入出力装置601として実現できる。また、情報入力部404は、利用者からの指示、入力を受け付けるキーボードやマウスなどの入出力装置601として実現できる。
Further, the
この他、利用者端末装置40は、ネットワーク50を介して他装置と通信する通信装置602を備え、バスなどの内部通信線(以下,バスという)606で連結された情報処理装置60上に構成することができる。 In addition, the user terminal device 40 includes a communication device 602 that communicates with other devices via the network 50, and is configured on the information processing device 60 connected by an internal communication line (hereinafter referred to as a bus) 606 such as a bus. can do.
−−−処理手順例−−−
以下、本実施形態における手順について図に基づき説明する。以下で説明する秘匿演算処理に対応する各種動作は、秘匿演算システム1を構成する各装置、すなわち集計装置10、受付装置20、登録装置30および利用者端末装置40がそれぞれメモリー等に読み出して実行するプログラムによって実現される。
--- Example of processing procedure ---
The procedure in this embodiment will be described below with reference to the drawings. Various operations corresponding to the confidential calculation processing described below are executed by the respective devices constituting the
図3は、本実施形態における処理の全体像を示す図である。尚、図3では、登録装置30および利用者端末装置40は複数存在する。ここでは、メッセージmjkは整数値とし、例えば、登録装置30k(k=1、2、・・・、m)が、個人が支払った医療費や介護費または個人の所得額などを、クラウド上の集計装置10のデータ記憶部107内のテーブル109に暗号化して登録し、利用者端末装置40i(i=1、2、・・・、n)のいずれかが、クラウド上の受付装置20を介して当該個人(ここではID1とする)が支払った医療費と介護費から所得額を引いた値を計算するように秘匿演算依頼を行い、集計装置10は、その依頼に基づき秘匿演算を行い、要求元の利用者端末装置40iに暗号化演算結果を受付装置20経由で送信し、前記利用者端末装置40iは、前記暗号化演算結果を復号して演算結果を取得する。
FIG. 3 is a diagram showing an overall image of the processing in this embodiment. In FIG. 3, there are a plurality of registration devices 30 and user terminal devices 40. Here, the message m jk is an integer value, and, for example, the registration device 30 k (k = 1, 2, ... One of the user terminal devices 40 i (i = 1, 2, ..., N) is encrypted and registered in the table 109 in the
このとき、利用者端末装置40iは、該当個人の個々の支払額や所得額はわからないが、医療費と介護費から所得額を引いた演算結果のみを取得することができる。尚、集計装置10および受付装置20には個々の値だけでなく演算結果も秘匿させることで、不必要な情報漏洩のリスクを低減させることができる。 At this time, the user terminal device 40 i does not know the individual payment amount or income amount of the corresponding individual, but can obtain only the calculation result obtained by subtracting the income amount from the medical expenses and the nursing care expenses. It is possible to reduce the risk of unnecessary information leakage by concealing not only the individual values but also the calculation results in the aggregation device 10 and the reception device 20.
この仕組みは、例えば、その演算結果がある上限を超えた場合に医療費や介護費の支払を免除するなどの高額療養費・高額介護合算療養費制度などへの応用が期待できる。その他、電子選挙システムでの投票結果の集計やアンケートシステムでの集計など、個々の値は秘匿しつつ、その合計値のみを復号権限のある複数の利用者に提供するシステムへの適用が期待できる。 This mechanism can be expected to be applied to, for example, a high-cost medical care cost / high-cost care total medical care cost system that exempts payment of medical costs and long-term care costs when the calculation result exceeds a certain upper limit. In addition, it can be expected to be applied to a system in which individual values are kept secret and only the total value is provided to multiple users who have the decryption authority, such as counting the voting results in the electronic election system and counting in the questionnaire system. ..
図4は、本実施形態における秘匿演算処理手順を示すシーケンス図である。 FIG. 4 is a sequence diagram showing the procedure of the confidential calculation processing in this embodiment.
本実施形態では大きく2つのフェーズに分かれており、一つは事前準備フェーズ(ステップS001〜S002、S101〜S103、S201〜S202)であり、もう一つは秘匿演算処理フェーズ(ステップS301〜S307)である。 In the present embodiment, it is roughly divided into two phases, one is a preliminary preparation phase (steps S001 to S002, S101 to S103, S201 to S202), and the other is a confidential calculation processing phase (steps S301 to S307). Is.
まず、事前準備フェーズについて説明する。事前準備フェーズは更にシステム公開鍵生成処理(ステップS001〜S002)、暗号化データ登録処理(ステップS101〜S103)、利用者端末装置初期登録処理(ステップS201〜S202)に分けられる。 First, the advance preparation phase will be described. The advance preparation phase is further divided into system public key generation processing (steps S001 to S002), encrypted data registration processing (steps S101 to S103), and user terminal device initial registration processing (steps S201 to S202).
システム公開鍵生成処理では、受付装置20は、受付装置20の鍵ペア(公開鍵および秘密鍵)を生成し、受付装置20の公開鍵を集計装置10に送信する(ステップS001)。集計装置10では集計装置10の秘密鍵を生成し、前記受付装置20の公開鍵と前記集計装置10の秘密鍵を入力として、秘匿演算システム1のシステム公開鍵を生成する。そして、前記システム公開鍵を全登録装置30に送信する(ステップS002)。
In the system public key generation processing, the reception device 20 generates a key pair (public key and secret key) of the reception device 20 and transmits the public key of the reception device 20 to the totaling device 10 (step S001). The aggregation device 10 generates the secret key of the aggregation device 10, and inputs the public key of the reception device 20 and the secret key of the aggregation device 10 to generate the system public key of the confidential
暗号化データ登録処理では、登録装置30は、各データ(整数値)を前記システム公開鍵で暗号化し(ステップS101)、前記暗号化データを集計装置10に登録する(ステップS102)。集計装置10では前記暗号化データをデータ記憶部107に保管する(ステップS103)。この暗号化データ登録処理は、データ登録の必要性に応じて随時行われる。 In the encrypted data registration process, the registration device 30 encrypts each data (integer value) with the system public key (step S101), and registers the encrypted data in the aggregation device 10 (step S102). The aggregation device 10 stores the encrypted data in the data storage unit 107 (step S103). This encrypted data registration process is performed at any time according to the necessity of data registration.
利用者端末装置初期登録処理では、各利用者端末装置40は、広く一般的に使われているRSA暗号などの公開鍵暗号における鍵ペア(公開鍵および秘密鍵)を生成し(ステップS201)、受付装置20に利用者端末装置40の公開鍵を送付する。また、ステップS201で生成した秘密鍵は利用者端末装置40の鍵記憶部408で保管する。利用者端末装置40の公開鍵を受信した受付装置20では、前記利用者端末装置40の公開鍵をデータ記憶部207に保管する(ステップS202)。
In the user terminal device initial registration processing, each user terminal device 40 generates a key pair (public key and private key) in public key cryptography such as widely used RSA cryptography (step S201), The public key of the user terminal device 40 is sent to the reception device 20. The secret key generated in step S201 is stored in the
次に秘匿演算処理フェーズについて説明する。 Next, the confidential calculation processing phase will be described.
利用者端末装置40は、受付装置20に秘匿演算依頼を行う(ステップS301)。受付装置20は、前記秘匿演算依頼を集計装置10に中継する(ステップS302)。集計装置10は、前記秘匿演算依頼に基づき、ステップS103で保管した暗号化データの内、該当暗号化データを選択し、暗号化状態のまま演算処理を施す(ステップS303)。そして暗号化演算結果を受付装置20に送信する。受付装置20では前記暗号化演算結果を受付装置20の秘密鍵で一部復号処理を行い(ステップS304)、処理データ1として集計装置10に送信する。集計装置10は処理データ1を集計装置10の秘密鍵で一部復号処理を行い(ステップS305)、処理データ2として受付装置20に送信する。受付装置20では処理データ2を受付装置20の秘密鍵で一部復号処理を行い(ステップS306)、処理データ3として前記利用者端末装置40に送信する。利用者端末装置40は利用者端末装置40の秘密鍵で処理データ3を復号し、要求した演算結果を取得する。尚、ステップS304〜S307は、集計装置10の秘密鍵、受付装置20の秘密鍵、利用者端末40の秘密鍵を用いて、夫々の装置が通信を介して復号を行う処理であり、その詳細は図8のフロー図を用いて後述する。
The user terminal device 40 requests the reception device 20 to perform a confidential calculation operation (step S301). The reception device 20 relays the confidential calculation request to the aggregation device 10 (step S302). Based on the confidential calculation request, the aggregation device 10 selects the corresponding encrypted data from the encrypted data stored in step S103, and performs the calculation process in the encrypted state (step S303). Then, the encrypted calculation result is transmitted to the reception device 20. The accepting device 20 partially decrypts the encrypted calculation result with the secret key of the accepting device 20 (step S304), and transmits it as the processed
図5から図8は、本実施形態における各処理の詳細を説明する為のフロー図である。 5 to 8 are flow charts for explaining the details of each processing in the present embodiment.
図5は事前準備フェーズのシステム公開鍵生成処理(ステップS001〜S002)のフロー図である。 FIG. 5 is a flowchart of the system public key generation process (steps S001 to S002) in the advance preparation phase.
図6は事前準備フェーズの暗号化データ登録処理(ステップS101〜S103)のフロー図である。 FIG. 6 is a flowchart of the encrypted data registration process (steps S101 to S103) in the advance preparation phase.
図7は秘匿演算処理フェーズの秘匿演算依頼(ステップS301)から秘匿演算処理(ステップS303)までのフロー図である。 FIG. 7 is a flow chart from the confidentiality calculation request (step S301) to the confidentiality calculation process (step S303) in the confidentiality calculation processing phase.
図8は秘匿演算処理フェーズの復号処理(ステップS304〜S307)までのフロー図である。 FIG. 8 is a flowchart of the decryption processing (steps S304 to S307) in the confidential calculation processing phase.
尚、利用者端末装置初期登録処理は、広く一般的に使われているRSA暗号などの公開鍵暗号における鍵ペア(公開鍵および秘密鍵)を利用者端末装置40が生成し、前記利用者端末装置40の公開鍵を受付装置20に登録するという処理であり、とりわけフロー図を使っての説明は省略する。 In the user terminal device initial registration process, the user terminal device 40 generates a key pair (public key and secret key) in public key cryptography such as widely used RSA cryptography, and the user terminal device This is a process of registering the public key of the device 40 in the reception device 20, and the description using the flow diagram will be omitted.
まず、図5を用いて事前準備フェーズのシステム公開鍵生成処理(ステップS001〜S002)フローを説明する。 First, the flow of the system public key generation processing (steps S001 to S002) in the advance preparation phase will be described with reference to FIG.
受付装置20は、大きな素数pおよびqを選ぶ(フローF001)。このとき、p’=(p−1)/2およびq’=(q−1)/2も素数になるように選ぶ。 The reception device 20 selects large prime numbers p and q (flow F001). At this time, p '= (p-1) / 2 and q' = (q-1) / 2 are also selected to be prime numbers.
次に受付装置20はn=p・qを計算する(フローF002)。尚、ここでは演算子“・”は掛け算を意味する。 Next, the accepting device 20 calculates n = p · q (flow F002). The operator "." Means multiplication here.
次に受付装置20は乱数k∈Znを任意に選び(フローF003)、g=1+k・n mod n2を計算する(フローF004)。 Next, the accepting device 20 arbitrarily selects a random number kεZ n (flow F003) and calculates g = 1 + k · n mod n 2 (flow F004).
そして受付装置20は、フローF001で選んだ素数pおよびqを受付装置20の秘密鍵として鍵記憶部208に保管する(フローF005)。 Then, the accepting device 20 stores the prime numbers p and q selected in the flow F001 in the key storage unit 208 as a secret key of the accepting device 20 (flow F005).
また受付装置20は、フローF002およびフローF004で計算したnおよびgを受付装置20の公開鍵として、集計装置10に送信する(フローF006)。 In addition, the reception apparatus 20 transmits the n and g calculated in the flow F002 and the flow F004 to the aggregation apparatus 10 as the public key of the reception apparatus 20 (flow F006).
受付装置20の公開鍵(n、g)を受信した集計装置10は(フローF007)、a∈Znを任意に選び(フローF008)、a’・a=1 mod nなるa’を求める。通常、この計算はユークリッドの互除法と呼ばれる計算を行うことでa’を求めることができる(フローF009)。 The aggregation device 10 that has received the public key (n, g) of the reception device 20 (flow F007) arbitrarily selects aεZ n (flow F008), and obtains a ′ that is a ′ · a = 1 mod n. Usually, this calculation can obtain a ′ by performing a calculation called Euclidean mutual division method (flow F009).
そして集計装置10は、G=ga mod n2を計算する(フローF010)。 The collection apparatus 10 calculates the G = g a mod n 2 (Flow F010).
また、集計装置10は、u∈ZNを任意に選ぶ。尚、便宜上、ここではn2をNと記述する(フローF011)。 Further, the aggregation device 10 arbitrarily selects uεZ N. For the sake of convenience, n 2 is described as N here (flow F011).
そして集計装置10は、フローF009で求めたa’とフローF011で選んだuを集計装置10の秘密鍵として、鍵記憶部108に保管する(フローF012)。
Then, the aggregation device 10 stores a ′ obtained in the flow F009 and u selected in the flow F011 in the
また、集計装置10は、パラメータbをn/2より小さい自然数から選ぶ(フローF013)。尚、パラメータbは演算を行う項数の最大値とする。つまり、本実施形態では最大b個までの足し算または引き算を行うことができる。 Further, the aggregation device 10 selects the parameter b from natural numbers smaller than n / 2 (flow F013). The parameter b is the maximum value of the number of terms to be calculated. That is, in this embodiment, up to b additions or subtractions can be performed.
そして集計装置10は、フローF007で受付装置20から受信したnとフローF010で計算したGを秘匿演算システム1のシステム公開鍵として、各登録装置30に送信する。また、フローF013で選んだbも秘匿演算システム1の公開パラメータとして、各登録装置30に送信する(フローF014)。
Then, the aggregation device 10 transmits n received from the reception device 20 in the flow F007 and G calculated in the flow F010 to each registration device 30 as a system public key of the
次に、図6を用いて事前準備フェーズの暗号化データ登録処理(ステップS101〜S103)フローを説明する。 Next, a flow of encrypted data registration processing (steps S101 to S103) in the advance preparation phase will be described with reference to FIG.
登録装置30は、暗号化対象のデータ(整数値)としてm∈Z((n/2b)−1)を選ぶ(フローF101)。 The registration device 30 selects mεZ ((n / 2b) −1) as the data (integer value) to be encrypted (flow F101).
次に登録装置30は、乱数r∈Znを任意に選び(フローF102)、フローF101で選んだデータmに対して、フローF014で集計装置10から登録装置30に送られてきた秘匿演算システム1のシステム公開鍵(n、G)とフローF102で選んだ乱数rを用いて、暗号化データc=Gm・rn mod n2を計算する(フローF103)。 Next, the registration device 30 arbitrarily selects a random number rεZ n (flow F102), and with respect to the data m selected in flow F101, the confidential arithmetic system sent from the aggregation device 10 to the registration device 30 in flow F014. Using the system public key (n, G) of No. 1 and the random number r selected in the flow F102, encrypted data c = G m · r n mod n 2 is calculated (flow F103).
そして登録装置30は、前記暗号化データcが何に対するデータであるかの属性情報(例えば“ID1”の“医療費”のデータであることを示す情報(図3、テーブル109参照))を添えて、前記暗号化データcを収集装置10に送信する(フローF104)。 Then, the registration device 30 sends attribute information indicating what the encrypted data c is for (for example, information indicating that the data is “medical expenses” of “ID 1 ” (see FIG. 3, table 109)). In addition, the encrypted data c is transmitted to the collection device 10 (flow F104).
暗号化データcを受信した集計装置10は(フローF105)、フローF012で鍵記憶部108に保管してある秘密鍵uを取り出し、前記暗号化データcをc=c+u mod n2に変換して、前記属性情報(例えば“ID1”の“医療費”のデータであることを示す情報(図3、テーブル109参照))に従い、変換したcを集計装置10のデータ記憶部107に登録する(フローF106)。
The aggregation device 10 having received the encrypted data c (flow F105) extracts the secret key u stored in the
次に、図7を用いて秘匿演算処理フェーズの秘匿演算依頼(ステップS301)から秘匿演算処理(ステップS303)フローを説明する。 Next, the flow of the confidentiality calculation processing (step S301) to the confidentiality calculation processing (step S303) in the confidentiality calculation processing phase will be described with reference to FIG.
利用者端末装置40は、演算範囲を指定して(例えば“ID1”の“医療費”と“介護費”の和を知りたいということを示す情報(図3、テーブル109参照))、受付装置20に秘匿演算依頼を送信する(フローF201)。 The user terminal device 40 specifies a calculation range (for example, information indicating that the user wants to know the sum of “medical expenses” and “nursing expenses” of “ID 1 ” (see FIG. 3, table 109)), and accepts The confidential calculation request is transmitted to the device 20 (flow F201).
利用者端末装置40からの秘匿演算依頼を受信した受付装置20は(フローF202)、前記利用者端末装置40が利用者端末装置初期登録処理(ステップS202)で初期登録されているかなど、秘匿演算システム1を利用できる装置からのアクセスであるかの確認を行う(フローF203)。もし、不正な装置からのアクセスであれば前記秘匿演算依頼は拒否する。もし、正当な装置からのアクセスであれば、ステップS202でデータ記憶部207に保管した前記利用者端末装置40の該当公開鍵を取り出し、前記利用者端末装置40の公開鍵をフローF202で受信した秘匿演算依頼と共に集計装置10に送信する(フローF204)。 The reception device 20 that has received the confidential calculation request from the user terminal device 40 (flow F202) determines whether the user terminal device 40 is initially registered in the user terminal device initial registration process (step S202). It is confirmed whether the access is from an apparatus that can use the system 1 (flow F203). If the access is from an unauthorized device, the confidential calculation request is rejected. If the access is from a valid device, the relevant public key of the user terminal device 40 stored in the data storage unit 207 is retrieved in step S202, and the public key of the user terminal device 40 is received in the flow F202. The confidential calculation request is transmitted to the totaling device 10 (flow F204).
受付装置20からの秘匿演算依頼を受信した集計装置10は(フローF205)、フローF201で指定されている演算範囲を基に該当暗号化データをデータ記憶部107から取得する(フローF206)。ここでは、“ID1の医療費に対する暗号化データ”を“c1”とし、“ID1の介護費に対する暗号化データ”を“c2”として説明する。
Upon receiving the confidential calculation request from the reception device 20 (flow F205), the aggregation device 10 acquires the corresponding encrypted data from the
各該当暗号化データを取得した集計装置10は、鍵記憶部108より集計装置10の秘密鍵uを取り出し、c1およびc2を、各々c1=c1−u mod n2、c2=c2−u mod n2に置き換える(フローF207)。
The aggregating apparatus 10 that has obtained the corresponding encrypted data retrieves the secret key u of the aggregating apparatus 10 from the
ここで集計装置10は、要求されている演算が和であるか差であるかを判断し(フローF208)、和であればc’=(c1・c2) mod n2を計算し(フローF2091)、差であればc’=(c1/c2) mod n2を計算する(フローF2092)。 Here, the aggregation device 10 determines whether the requested operation is a sum or a difference (flow F208), and if it is a sum, calculates c ′ = (c 1 · c 2 ) mod n 2 ( Flow F209 1 ), and if it is a difference, c ′ = (c 1 / c 2 ) mod n 2 is calculated (flow F209 2 ).
またc’を計算した集計装置10は、s∈Znを任意に選び、s’・s=1 mod nなるs’を求め、一次記憶装部106またはデータ記憶装部107に記憶しておく(フローF210)。
In addition, the aggregation device 10 that has calculated c ′ arbitrarily selects sεZ n , obtains s ′ such that s ′ · s = 1 mod n, and stores it in the
また、集計装置10は、v∈Znを任意に選び、v’・v=1 mod nなるv’も求める(フローF211)。そして集計装置10は、フローF204で受付装置20から送られてきた該当利用者端末40の公開鍵で、v’を暗号化する(フローF212)。 Further, the aggregation device 10 arbitrarily selects vεZ n and also obtains v ′ such that v ′ · v = 1 mod n (flow F211). Then, the aggregation device 10 encrypts v ′ with the public key of the corresponding user terminal 40 transmitted from the reception device 20 in flow F204 (flow F212).
さらに集計装置10は、フローF209で計算したc’と、フローF210、フローF211で選んだsおよびvより、暗号化演算結果C=(c’)s・v mod n2を計算し、フローF212で暗号化したv’と共に受付装置20に送信する(フローF213)。 Further, the aggregation device 10 calculates the encryption operation result C = (c ′) s · v mod n 2 from c ′ calculated in the flow F209 and s and v selected in the flow F210 and the flow F211 and the flow F212 It is transmitted to the accepting device 20 together with v ′ encrypted in (Flow F213).
最後に、図8を用いて秘匿演算処理フェーズの復号処理(ステップS304〜S307)フローを説明する。 Finally, the flow of decryption processing (steps S304 to S307) in the confidential calculation processing phase will be described with reference to FIG.
暗号化演算結果Cと該当利用者端末40の公開鍵で暗号化されたv’を受信した受付装置20は、M=L((Cλ mod n2)/L(gλ mod n2))mod n を計算する。ここで、L(x)=(x−1)/nであり、λ=lcm(p−1、q−1)である(フローF301)。 The accepting device 20 that has received the encryption operation result C and v ′ encrypted with the public key of the corresponding user terminal 40 is M = L ((C λ mod n 2 ) / L (g λ mod n 2 )). Calculate mod n. Here, L (x) = (x−1) / n and λ = 1 cm (p−1, q−1) (flow F301).
また、受付装置20は、t∈Znを任意に選び、t’・t=1 mod nなるt’を求め、一次記憶装部206またはデータ記憶装部207に記憶しておく(フローF302)。
Further, the accepting device 20 arbitrarily selects tεZ n , obtains t ′ such that t ′ · t = 1 mod n, and stores it in the
そして受付装置20は、フローF301で計算したMとフローF302で選んだtを使って、C’=M・t mod n を計算し、C’を処理データ1として集計装置10に送信する(フローF303)。
Then, the reception apparatus 20 calculates C ′ = M · t mod n using M calculated in the flow F301 and t selected in the flow F302, and transmits C ′ as the
C’を受信した集計装置10は(フローF304)、フローF012で鍵記憶部108に保管したa’と、フローF210で一次記憶装部106またはデータ記憶装部107に記憶してあるs’を取り出し、C’’=a’・s’・C’ mod n を計算する(フローF304)。そして集計装置10は、C’’を処理データ2として受付装置20に送信する(フローF306)。
Upon receiving C ′ (flow F304), aggregator 10 stores a ′ stored in
C’’を受信した受付装置20は(フローF307)、フローF302で一次記憶装部206またはデータ記憶装部207に記憶してあるt’を取り出し、処理データ3としてC’’’=t’・C’’ mod n を計算する(フローF308)。
The accepting device 20 that has received C ″ (flow F307) takes out t ′ stored in the
そして受付装置20は、フローF213で集計装置10から送られてきた該当利用者端末40の公開鍵で暗号化されたv’とフローF304で計算したC’’’(処理データ3)を秘匿演算依頼の要求元である利用者端末40に送信する(フローF309)。 Then, the accepting apparatus 20 performs a confidential operation on v ′ encrypted by the public key of the corresponding user terminal 40 transmitted from the aggregation apparatus 10 in flow F213 and C ″ ′ (process data 3) calculated in flow F304. It is transmitted to the user terminal 40 that is the request source of the request (flow F309).
利用者端末40の公開鍵で暗号化されたv’と処理データ3であるC’’’を受信した利用者端末40は(フローF310)、まず、ステップS201で生成した利用者端末装置40の秘密鍵を鍵記憶部408より取り出し、利用者端末40の公開鍵で暗号化されたv’を復号してv’を取得する(フローF311)。
The user terminal 40 that has received v ′ encrypted with the public key of the user terminal 40 and C ′ ″ that is the process data 3 (flow F310) first of all uses the user terminal device 40 generated in step S201. The private key is retrieved from the
そして利用者端末装置40は、フローF310で受信したC’’’とフローF311で復号したv’より、m’=v’・C’’’mod nを計算する(フローF312)。 Then, the user terminal device 40 calculates m ′ = v ′ · C ″ ″ mod n from C ″ ″ received in the flow F310 and v ′ decoded in the flow F311 (flow F312).
ここでm’<n/2であれば、m’=m’とし(フローF3141)、m’≧n/2であればm’=m’−nとする(フローF3142)。 If m '<n / 2, m' = m 'is set (flow F314 1 ), and if m' ≧ n / 2, m '= m'-n is set (flow F314 2 ).
そして利用者端末装置40は、m’を要求した演算結果として取得する(フローF315)。 Then, the user terminal device 40 acquires m ′ as the requested calculation result (flow F315).
尚、m’が求める演算結果であることは以下よりわかる。
各暗号化データc1およびc2を、
c1=Gm1・r1 n =ga・m1・r1 n mod n2、
c2=Gm2・r2 n =ga・m2・r2 n mod n2としたとき、
c’=c1・c2=ga・(m1+m2) ・(r1・r2)n mod n2であり、
C=(c’)s・v=ga・(m1+m2)・s・v ・(r1・r2)n・s・v mod n2である。
そして、L((Cλ mod n2)/L(gλ mod n2))mod nの計算は、gの指数部分の値を出力するので、
M=a・(m1+m2)・s・v mod nとなり、
C’=a・(m1+m2)・s・v・t mod nとなる。
そして
C’’=(a’・s’)・C’=(m1+m2)・v・t mod nとなり、
C’’’=t’・C’’=(m1+m2)・v mod nとなる。
そして、
m’=v’・C’’’=(m1+m2) mod nとなる。
It will be understood from the following that the calculation result of m'is obtained.
Each encrypted data c 1 and c 2 ,
c 1 = G m1 · r 1 n = g a · m1 · r 1 n mod n 2 ,
When c 2 = G m2 · r 2 n = g a · m2 · r 2 n mod n 2 ,
c ′ = c 1 · c 2 = g a · (m1 + m2) · (r 1 · r 2 ) n mod n 2 ,
C = (c ′) s · v = ga · (m1 + m2) · s · v · (r 1 · r 2 ) n · s · v mod n 2 .
Then, since the calculation of L ((C λ mod n 2 ) / L (g λ mod n 2 )) mod n outputs the value of the exponential part of g,
M = a · (m1 + m2) · s · v mod n,
C ′ = a · (m1 + m2) · s · v · t mod n.
Then C ″ = (a ′ · s ′) · C ′ = (m1 + m2) · v · t mod n,
C ″ ′ = t ′ · C ″ = (m1 + m2) · v mod n.
And
m ′ = v ′ · C ′ ″ = (m1 + m2) mod n.
なお、m1、m2∈Z((n/2b)−1)であるので、m1+m2<n/2であり、
m’は求める m’=m1+m2であることがわかる。
Since m1 and m2εZ ((n / 2b) -1) , m1 + m2 <n / 2, and
It can be seen that m ′ is obtained m ′ = m1 + m2.
上記で説明した構成により、本実施例は、2つの秘密鍵から生成されるシステム公開鍵を用いて暗号化した各データは、クラウド上のサーバ上で暗号化状態のまま演算をさせることが可能である。 With the configuration described above, in the present embodiment, each data encrypted using the system public key generated from the two secret keys can be operated in the encrypted state on the server on the cloud. Is.
また、前記2つの秘密鍵は別々の装置にて管理させることにより、各装置の結託が無い限り、前記サーバから各データおよび演算結果の秘匿性を保つことができる。 Further, by managing the two secret keys by different devices, the confidentiality of each data and the operation result can be maintained from the server unless there is a collusion of each device.
また、暗号化状態で演算した演算結果の一部(演算をする際に生成される部分情報)を、演算結果を利用する利用者端末装置の公開鍵で更に暗号化させることにより、該当利用者端末装置のみが前記暗号化演算結果を復号することができるようになる。つまり言い換えると、宛先の利用者端末の公開鍵で前記演算結果の一部(演算をする際に生成される部分情報)を暗号化させることにより、同一の復号用の秘密鍵を事前に配布させることなく、複数の利用者端末装置向けに演算結果を安全に提供することができるようになる。 In addition, a part of the calculation result calculated in the encrypted state (partial information generated when performing the calculation) is further encrypted with the public key of the user terminal device that uses the calculation result, so that the corresponding user Only the terminal device can decrypt the encrypted operation result. In other words, in other words, the same decryption secret key is distributed in advance by encrypting a part of the calculation result (partial information generated when performing the calculation) with the public key of the destination user terminal. The calculation result can be safely provided to a plurality of user terminal devices.
尚、暗号化演算結果を復号する為には、各データを暗号化したシステム公開鍵に対応する2つの秘密鍵および演算結果を利用する利用者端末装置の秘密鍵が必要であり、本発明では装置間の通信を介して処理することで、暗号化演算結果を該当利用者端末が復号できるように加工することで、該当利用者端末装置は暗号化演算結果を復号することができるようになる。 In order to decrypt the encrypted operation result, two private keys corresponding to the system public key that has encrypted each data and a private key of the user terminal device that uses the operation result are required. By processing the encrypted operation result so as to be decrypted by the corresponding user terminal by processing via the communication between the devices, the applicable user terminal device can decrypt the encrypted operation result. ..
1 秘匿演算システム
10 集計装置
20 受付装置
30 登録装置
40 利用者端末装置
50 ネットワーク
101 情報生成部
102 暗号処理部
103 データ送受信部
104 情報入力部
105 情報出力部
106 一次記憶部
107 データ記憶部
108 鍵記憶部
109 テーブル
201 情報生成部
202 暗号処理部
203 データ送受信部
204 情報入力部
205 情報出力部
206 一次記憶部
207 データ記憶部
208 鍵記憶部
301 情報生成部
302 暗号処理部
303 データ送受信部
304 情報入力部
305 情報出力部
306 一次記憶部
307 データ記憶部
401 情報生成部
402 暗号処理部
403 データ送受信部
404 情報入力部
405 情報出力部
406 一次記憶部
407 データ記憶部
408 鍵記憶部
601 入出力装置
602 通信装置
603 メモリー
604 記憶装置
605 CPU
1 Confidential Computing System 10 Aggregation Device 20 Receiving Device 30 Registration Device 40 User Terminal Device 50
Claims (2)
受付装置が、素数pおよびqを選び、n=p・qを計算し、乱数k∈Z n を任意に選び、g=1+k・n mod n 2 を計算し、選んだpおよびqを前記受付装置の秘密鍵とし、計算したnおよびgを前記受付装置の公開鍵として集計装置に送信する第1のステップと、
前記集計装置が、a∈Z n を任意に選び、a’・a=1 mod nなるa’を求め、G=g a mod n 2 を計算し、u∈Z N を任意に選び(n 2 をNと記述する)、求めたa’と、選んだuとを前記集計装置の秘密鍵とし、演算を行う項数の最大値とするパラメータbをn/2より小さい自然数から選び、前記受付装置から受信したnと、計算したGとを前記秘匿演算システムのシステム公開鍵として登録装置に送信し、選んだbも前記秘匿演算システムの公開パラメータとして前記登録装置に送信する第2のステップと、
前記登録装置が、暗号化対象の整数値のデータとしてm∈Z ((n/2b)−1) を選び、乱数r∈Z n を任意に選び、選んだデータmに対して、前記集計装置から送られてきた前記システム公開鍵と、選んだ乱数rとを用いて、暗号化データc=G m ・r n mod n 2 を計算し、前記暗号化データcを前記集計装置に送信する第3のステップと、
前記集計装置が、選んだuを用いて、前記暗号化データcをc=c+u mod n 2 に変換し、変換したcをデータ記憶部に登録する第4のステップと、
前記第3のステップおよび前記第4のステップは、随時行われ、
利用者端末装置が、前記利用者端末装置の公開鍵および秘密鍵を生成し、前記利用者端末装置の公開鍵を前記受付装置に登録する第5のステップと、
前記利用者端末装置が、暗号化データc 1 と暗号化データc 2 との和または差が知りたいということが指定された秘匿演算依頼を前記受付装置に送信する第6のステップと、
前記受付装置が、前記利用者端末装置からの秘匿演算依頼を受信し、前記利用者端末装置の公開鍵を取り出し、前記利用者端末装置の公開鍵を、受信した秘匿演算依頼と共に前記集計装置に送信する第7のステップと、
前記集計装置が、前記受付装置からの秘匿演算依頼を受信し、前記データ記憶部から前記秘匿演算依頼で指定された暗号化データc 1 および暗号化データc 2 を取得し、前記集計装置の秘密鍵であるuを取り出し、取得した暗号化データc 1 および暗号化データc 2 を、各々c 1 =c 1 −u mod n 2 、c 2 =c 2 −u mod n 2 に置き換え、要求されている演算が和であるか差であるかを判断し、和であればc’=(c 1 ・c 2 ) mod n 2 を計算し、差であればc’=(c 1 /c 2 ) mod n 2 を計算し、s∈Z n を任意に選び、s’・s=1 mod nなるs’を求め、v∈Z n を任意に選び、v’・v=1 mod nなるv’も求め、前記受付装置から送られてきた前記利用者端末装置の公開鍵でv’を暗号化し、計算したc’と、選んだsおよびvとを用いて、暗号化演算結果C=(c’) s・v mod n 2 を計算し、計算した暗号化演算結果Cを暗号化したv’と共に前記受付装置に送信する第8のステップと、
前記受付装置が、M=L((C λ mod n 2 )/L(g λ mod n 2 ))mod nを計算し(L(x)=(x−1)/nであり、λ=1cm(p−1、q−1)である)、t∈Z n を任意に選び、t’・t=1 mod nなるt’を求め、計算したMと、選んだtとを用いてC’=M・t mod nを計算し、計算したC’を前記集計装置に送信する第9のステップと、
前記集計装置が、求めたa’およびs’を取り出し、C’’=a’・s’・C’ mod nを計算し、計算したC’’を前記受付装置に送信する第10のステップと、
前記受付装置が、求めたt’を取り出し、C’’’=t’・C’’ mod nを計算し、前記集計装置から送られてきた前記利用者端末装置の公開鍵で暗号化されたv’と、計算したC’’’とを前記利用者端末装置に送信する第11のステップと、
前記利用者端末装置が、前記利用者端末装置の公開鍵で暗号化されたv’を復号してv’を取得し、前記受付装置から送られてきたC’’’と、復号したv’とより、m’=v’・C’’’mod nを計算し(m’<n/2であれば、m’=m’とし、m’≧n/2であればm’=m’−nとする)、秘匿演算依頼の演算結果としてm’を取得する第12のステップと、
を備えることを特徴とする秘匿演算方法。 Data A secret anonymous calculation method in the security operation system that operation remains encrypted,
The accepting device selects prime numbers p and q, calculates n = p · q , arbitrarily selects a random number kεZ n , calculates g = 1 + k · n mod n 2 , and accepts the selected p and q A first step of transmitting the calculated n and g as a private key of the device to the totalizing device as a public key of the accepting device;
The aggregating device arbitrarily selects a ∈ Z n , obtains a ′ such that a ′ · a = 1 mod n , calculates G = g a mod n 2 , and arbitrarily selects u ∈ Z N (n 2 Is described as N), the obtained a ′ and the selected u are used as the secret key of the aggregating device, and the parameter b that is the maximum value of the number of terms to be calculated is selected from natural numbers smaller than n / 2, and the reception is performed. A second step of transmitting n received from the device and the calculated G to the registration device as a system public key of the secret computing system, and also transmitting the selected b to the registration device as a public parameter of the secret computing system; ,
The registration device selects mεZ ((n / 2b) −1) as integer value data to be encrypted , randomly selects a random number rεZ n , and selects the random number rεZ n for the selected data m. Calculating encrypted data c = G m · r n mod n 2 using the system public key sent from the computer and the selected random number r, and transmitting the encrypted data c to the aggregation device. 3 steps,
A fourth step in which the aggregation device uses the selected u to convert the encrypted data c into c = c + u mod n 2 , and registers the converted c in the data storage unit;
The third step and the fourth step are performed at any time,
A fifth step in which the user terminal device generates a public key and a secret key of the user terminal device and registers the public key of the user terminal device in the reception device;
A sixth step in which the user terminal device transmits, to the accepting device, a confidential calculation request in which it is specified that the sum or difference between the encrypted data c 1 and the encrypted data c 2 is desired to be known;
The reception device receives a confidential calculation request from the user terminal device, extracts a public key of the user terminal device, and sends the public key of the user terminal device to the aggregation device together with the received confidential calculation request. The seventh step of sending,
The aggregation device receives the confidential calculation request from the reception device , acquires the encrypted data c 1 and the encrypted data c 2 specified by the confidential calculation request from the data storage unit , and the aggregation device secret The key u is taken out, and the obtained encrypted data c 1 and encrypted data c 2 are replaced with c 1 = c 1 −u mod n 2 and c 2 = c 2 −u mod n 2 , respectively, and requested. It is determined whether the operation is a sum or a difference, and if it is a sum, c ′ = (c 1 · c 2 ) mod n 2 is calculated, and if it is a difference, c ′ = (c 1 / c 2 ). mod n 2 is calculated, sεZ n is arbitrarily selected, s ′ is obtained as s ′ · s = 1 mod n, vεZ n is arbitrarily selected, and v ′ · v = 1 mod n is obtained. Also, v ′ is encrypted with the public key of the user terminal device sent from the reception device, and calculation is performed. And c 'and, by using the selected s and v, encryption operation result C = (c' a) s · v mod n 2 is computed, calculated encryption operation result C of the with v 'encrypted An eighth step of transmitting to the accepting device,
The reception device calculates M = L ((C λ mod n 2 ) / L (g λ mod n 2 )) mod n, where (L (x) = (x−1) / n, and λ = 1 cm. (P−1, q−1)), tεZ n is arbitrarily selected, and t ′ is obtained as t ′ · t = 1 mod n, and C ′ is calculated using the calculated M and the selected t. = M · t mod n, the ninth step of transmitting the calculated C ′ to the aggregating device,
A tenth step in which the aggregating device extracts the obtained a ′ and s ′, calculates C ″ = a ′ · s ′ · C ′ mod n, and transmits the calculated C ″ to the reception device. ,
The reception device takes out the obtained t ′, calculates C ′ ″ = t ′ · C ″ mod n, and encrypts it with the public key of the user terminal device sent from the aggregation device. an eleventh step of transmitting v ′ and the calculated C ′ ″ to the user terminal device;
The user terminal device decrypts v ′ encrypted with the public key of the user terminal device to obtain v ′, C ″ ′ sent from the accepting device, and decrypted v ′. Then, m ′ = v ′ · C ′ ″ mod n is calculated (if m ′ <n / 2, m ′ = m ′, and if m ′ ≧ n / 2, m ′ = m ′. -N), and a twelfth step of acquiring m'as a calculation result of the confidential calculation request,
Secret anonymous calculation method characterized by comprising a.
受付装置と、集計装置と、登録装置と、利用者端末装置とを備え、A reception device, an aggregation device, a registration device, and a user terminal device,
前記受付装置が、素数pおよびqを選び、n=p・qを計算し、乱数k∈ZThe accepting device selects prime numbers p and q, calculates n = p · q, and generates a random number kεZ nn を任意に選び、g=1+k・n mod n, G = 1 + k · n mod n 2Two を計算し、選んだpおよびqを前記受付装置の秘密鍵とし、計算したnおよびgを前記受付装置の公開鍵として前記集計装置に送信し、And the selected p and q are used as the secret key of the reception device, and the calculated n and g are transmitted to the aggregation device as the public key of the reception device,
前記集計装置が、a∈ZThe aggregating device is aεZ nn を任意に選び、a’・a=1 mod nなるa’を求め、G=gIs arbitrarily selected to obtain a ′ such that a ′ · a = 1 mod n, and G = g aa mod n mod n 2Two を計算し、u∈ZAnd u ∈ Z NN を任意に選び(nArbitrarily select (n 2Two をNと記述する)、求めたa’と、選んだuとを前記集計装置の秘密鍵とし、演算を行う項数の最大値とするパラメータbをn/2より小さい自然数から選び、前記受付装置から受信したnと、計算したGとを前記秘匿演算システムのシステム公開鍵として前記登録装置に送信し、選んだbも前記秘匿演算システムの公開パラメータとして前記登録装置に送信し、Is described as N), the obtained a ′ and the selected u are used as the secret key of the aggregating device, and the parameter b that is the maximum value of the number of terms to be calculated is selected from natural numbers smaller than n / 2, and the reception is performed. The n received from the device and the calculated G are transmitted to the registration device as a system public key of the secret computing system, and the selected b is also transmitted to the registration device as a public parameter of the secret computing system,
前記登録装置が、暗号化対象の整数値のデータとしてm∈ZThe registration device uses mεZ as the integer data to be encrypted. ((n/2b)−1)((N / 2b) -1) を選び、乱数r∈Z, A random number r ∈ Z nn を任意に選び、選んだデータmに対して、前記集計装置から送られてきた前記システム公開鍵と、選んだ乱数rとを用いて、暗号化データc=GFor any selected data m, using the system public key sent from the aggregation device and the selected random number r, the encrypted data c = G mm ・r・ R nn mod n mod n 2Two を計算し、前記暗号化データcを前記集計装置に送信する第1の処理を行い、And perform a first process of transmitting the encrypted data c to the aggregation device,
前記集計装置が、選んだuを用いて、前記暗号化データcをc=c+u mod nThe aggregation device uses the selected u to convert the encrypted data c to c = c + u mod n 2Two に変換し、変換したcをデータ記憶部に登録する第2の処理を行い、A second process of converting the converted c into
前記第1の処理および前記第2の処理は、随時行われ、The first processing and the second processing are performed at any time,
前記利用者端末装置が、前記利用者端末装置の公開鍵および秘密鍵を生成し、前記利用者端末装置の公開鍵を前記受付装置に登録し、The user terminal device generates a public key and a secret key of the user terminal device, and registers the public key of the user terminal device in the reception device,
前記利用者端末装置が、暗号化データcThe user terminal device uses the encrypted data c 11 と暗号化データcAnd encrypted data c 2Two との和または差が知りたいということが指定された秘匿演算依頼を前記受付装置に送信し、Send a confidential calculation request that specifies that you want to know the sum or difference with
前記受付装置が、前記利用者端末装置からの秘匿演算依頼を受信し、前記利用者端末装置の公開鍵を取り出し、前記利用者端末装置の公開鍵を、受信した秘匿演算依頼と共に前記集計装置に送信し、The reception device receives a confidential calculation request from the user terminal device, retrieves a public key of the user terminal device, and sends the public key of the user terminal device to the aggregation device together with the received confidential calculation request. Send,
前記集計装置が、前記受付装置からの秘匿演算依頼を受信し、前記データ記憶部から前記秘匿演算依頼で指定された暗号化データcThe aggregation device receives the confidential calculation request from the accepting device, and the encrypted data c designated by the confidential calculation request is received from the data storage unit. 11 および暗号化データcAnd encrypted data c 2Two を取得し、前記集計装置の秘密鍵であるuを取り出し、取得した暗号化データcTo obtain u, which is the secret key of the aggregation device, and obtain the encrypted data c 11 および暗号化データcAnd encrypted data c 2Two を、各々cRespectively c 11 =c= C 11 −u mod n-U mod n 2Two 、c, C 2Two =c= C 2Two −u mod n-U mod n 2Two に置き換え、要求されている演算が和であるか差であるかを判断し、和であればc’=(cTo determine whether the requested operation is a sum or a difference, and if it is a sum, c ′ = (c 11 ・c・ C 2Two ) mod n) Mod n 2Two を計算し、差であればc’=(cIs calculated, and if the difference is c ′ = (c 11 /c/ C 2Two ) mod n) Mod n 2Two を計算し、s∈ZAnd s ∈ Z nn を任意に選び、s’・s=1 mod nなるs’を求め、v∈Z, S ′ · s = 1 mod n is obtained, and vεZ nn を任意に選び、v’・v=1 mod nなるv’も求め、前記受付装置から送られてきた前記利用者端末装置の公開鍵でv’を暗号化し、計算したc’と、選んだsおよびvとを用いて、暗号化演算結果C=(c’), V ′ · v = 1 mod n is obtained, v ′ is encrypted with the public key of the user terminal device sent from the reception device, and the calculated c ′ is selected. The encryption operation result C = (c ′) using s and v s・vsv mod n mod n 2Two を計算し、計算した暗号化演算結果Cを暗号化したv’と共に前記受付装置に送信し、And transmits the calculated encrypted operation result C to the accepting device together with the encrypted v ′,
前記受付装置が、M=L((CThe reception device is M = L ((C λλ mod n mod n 2Two )/L(g) / L (g λλ mod n mod n 2Two ))mod nを計算し(L(x)=(x−1)/nであり、λ=1cm(p−1、q−1)である)、t∈Z)) Mod n is calculated (L (x) = (x−1) / n and λ = 1 cm (p−1, q−1)), and tεZ nn を任意に選び、t’・t=1 mod nなるt’を求め、計算したMと、選んだtとを用いてC’=M・t mod nを計算し、計算したC’を前記集計装置に送信し、, T ′ · t = 1 mod n is calculated, C ′ = M · t mod n is calculated using the calculated M and the selected t, and the calculated C ′ is added to the above. Send to the device,
前記集計装置が、求めたa’およびs’を取り出し、C’’=a’・s’・C’ mod nを計算し、計算したC’’を前記受付装置に送信し、The aggregating device extracts the obtained a ′ and s ′, calculates C ″ = a ′ · s ′ · C ′ mod n, and transmits the calculated C ″ to the accepting device,
前記受付装置が、求めたt’を取り出し、C’’’=t’・C’’ mod nを計算し、前記集計装置から送られてきた前記利用者端末装置の公開鍵で暗号化されたv’と、計算したC’’’とを前記利用者端末装置に送信し、The acceptance device takes out the obtained t ′, calculates C ′ ″ = t ′ · C ″ mod n, and encrypts it with the public key of the user terminal device sent from the aggregation device. v ′ and the calculated C ′ ″ are transmitted to the user terminal device,
前記利用者端末装置が、前記利用者端末装置の公開鍵で暗号化されたv’を復号してv’を取得し、前記受付装置から送られてきたC’’’と、復号したv’とより、m’=v’・C’’’mod nを計算し(m’<n/2であれば、m’=m’とし、m’≧n/2であればm’=m’−nとする)、秘匿演算依頼の演算結果としてm’を取得する、The user terminal device decrypts v ′ encrypted with the public key of the user terminal device to obtain v ′, and C ″ ′ sent from the accepting device and decrypted v ′. Then, m ′ = v ′ · C ′ ″ mod n is calculated (if m ′ <n / 2, m ′ = m ′, and if m ′ ≧ n / 2, m ′ = m ′. -N), m'is acquired as the calculation result of the confidential calculation request,
ことを特徴とする秘匿演算システム。A secret computing system characterized by the above.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016155202A JP6693834B2 (en) | 2016-08-08 | 2016-08-08 | Concealment calculation technology and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016155202A JP6693834B2 (en) | 2016-08-08 | 2016-08-08 | Concealment calculation technology and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018025587A JP2018025587A (en) | 2018-02-15 |
JP6693834B2 true JP6693834B2 (en) | 2020-05-13 |
Family
ID=61193705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016155202A Active JP6693834B2 (en) | 2016-08-08 | 2016-08-08 | Concealment calculation technology and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6693834B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2018367130A1 (en) * | 2017-11-17 | 2020-05-14 | F. Hoffmann-La Roche Ag | Method for controlling operation of a medical device in a medical system and medical system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3041293B2 (en) * | 1998-03-26 | 2000-05-15 | 日本電信電話株式会社 | Encryption method, decryption method, authentication method, encryption device, decryption device, authentication device, authentication message sender device, authentication message receiver device, encryption communication system and authentication system |
JP3973045B2 (en) * | 2005-06-14 | 2007-09-05 | 北陸日本電気ソフトウェア株式会社 | Privacy protection encryption method, privacy protection encryption system, and privacy protection encryption program |
US7856100B2 (en) * | 2005-12-19 | 2010-12-21 | Microsoft Corporation | Privacy-preserving data aggregation using homomorphic encryption |
US9548861B2 (en) * | 2011-06-10 | 2017-01-17 | Nec Corporation | Encrypted statistical processing system, device, method, and program |
JP6273951B2 (en) * | 2014-03-24 | 2018-02-07 | 富士通株式会社 | ENCRYPTION DEVICE, ENCRYPTION METHOD, INFORMATION PROCESSING DEVICE, AND ENCRYPTION SYSTEM |
US9819650B2 (en) * | 2014-07-22 | 2017-11-14 | Nanthealth, Inc. | Homomorphic encryption in a healthcare network environment, system and methods |
-
2016
- 2016-08-08 JP JP2016155202A patent/JP6693834B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018025587A (en) | 2018-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101866935B1 (en) | Systems and methods for faster public key encryption using the associated private key portion | |
JP5253567B2 (en) | Encryption system, encryption communication method, encryption device, key generation device, decryption device, content server device, program, storage medium | |
Ora et al. | Data security and integrity in cloud computing based on RSA partial homomorphic and MD5 cryptography | |
US9614681B2 (en) | Private electronic signature service for electronic documents | |
JP6363032B2 (en) | Key change direction control system and key change direction control method | |
CN113162752B (en) | Data processing method and device based on hybrid homomorphic encryption | |
WO2013144553A1 (en) | Method and system for network data access | |
US11431489B2 (en) | Encryption processing system and encryption processing method | |
US6560336B1 (en) | Apparatus for operating double vector and encrypting system including the same | |
US11997075B1 (en) | Signcrypted envelope message | |
Ye et al. | Fine-grained access control for cloud computing | |
JP6270683B2 (en) | Encryption system, encryption method, universal re-encryption key generation device, and re-encryption key generation device | |
US11343080B1 (en) | System and method for data privacy and authentication | |
US20050060545A1 (en) | Secure provision of image data | |
JP6693834B2 (en) | Concealment calculation technology and method | |
JP2018151620A (en) | Method and system for privacy protection order statistic collection in star network | |
Malgari et al. | A novel data security framework in distributed cloud computing | |
Purushothama et al. | Secure cloud storage service and limited proxy re-encryption for enforcing access control in public cloud | |
KR102284877B1 (en) | Efficient functional encryption for set intersection | |
US10892892B1 (en) | Method and apparatus for end-to-end secure sharing of information with multiple recipients without maintaining a key directory | |
Matthias et al. | A Secure Model on Cloud using a Modified Rivest, Shamir and Adleman Algorithm along with Gray Codes | |
JP2015023550A (en) | Data decryption system and program | |
JP2015219822A (en) | One-stop application system, one-stop application method, and program | |
Venugopalan et al. | Improving confidentiality for NFT referenced data stores | |
CN113396557B (en) | System, program product and method for selective transparency of public account books |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20170111 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20170113 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181018 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190821 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20190912 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191001 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20191004 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191114 |
|
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: 20200407 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200416 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6693834 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |