JP6693834B2 - Concealment calculation technology and method - Google Patents

Concealment calculation technology and method Download PDF

Info

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
Application number
JP2016155202A
Other languages
Japanese (ja)
Other versions
JP2018025587A (en
Inventor
尚生 坂崎
尚生 坂崎
梨奈 一井
梨奈 一井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2016155202A priority Critical patent/JP6693834B2/en
Publication of JP2018025587A publication Critical patent/JP2018025587A/en
Application granted granted Critical
Publication of JP6693834B2 publication Critical patent/JP6693834B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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).

特開2011−227193号公報JP, 2011-227193, A

しかしながら従来技術においては、各データは演算結果を取得する装置の公開鍵で暗号化され、前記公開鍵で暗号化された状態のまま演算処理される。この時、演算結果も前記公開鍵で暗号化されている状態である為、暗号化演算結果を復号できるのは、前記公開鍵に対応する秘密鍵を保持している装置のみである。つまり従来技術においては、前記公開鍵を知っていれば、複数の装置から、個々のデータを暗号化し、前記暗号化データを暗号化状態で演算をさせることができるが、複数の装置に暗号化演算結果を復号させることができない。もちろん複数の装置に同一の復号用秘密鍵を事前に配布させておけば、複数の装置にて暗号化演算結果を復号させることができるが、別々の秘密鍵を保持する複数の装置が暗号化演算結果を復号することはできないという課題があった。   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.

本実施形態のシステム構成例を示す図である。It is a figure which shows the system structural example of this embodiment. 本実施形態における集計装置、受付装置、登録装置および利用者端末装置の ハードウェア構成例を示す図である。It is a figure which shows the hardware structural example of a totaling apparatus, a reception apparatus, a registration apparatus, and a user terminal device in this embodiment. 本実施形態における処理の全体像を示す図である。It is a figure which shows the whole image of a process in this embodiment. 本実施形態における秘匿演算処理手順を示すシーケンス図である。It is a sequence diagram which shows the security calculation processing procedure in this embodiment. 本実施形態における鍵生成などの事前準備処理を示すフロー図である。It is a flowchart which shows the preparation process such as key generation in this embodiment. 本実施形態におけるデータの暗号化処理を示すフロー図である。It is a flowchart which shows the encryption process of the data in this embodiment. 本実施形態における暗号化状態での演算処理を示すフロー図である。It is a flowchart which shows the arithmetic processing in the encryption state in this embodiment. 本実施形態における暗号化演算結果の復号処理を示すフロー図である。It is a flowchart which shows the decoding process of the encryption calculation result in this embodiment.

−−−システム構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。
--- 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 confidential calculation system 1 according to this embodiment. In this figure, an example of the functional configuration of each computer that configures the confidential computing system 1 is shown together with the overall configuration. In the confidential operation system 1 shown in FIG. 1, encrypted data registered in the aggregation device 10 by each registration device 30 is encrypted by the aggregation device 10 according to a request from the user terminal device 40 via the reception device 20. The addition / subtraction arithmetic processing is performed as it is, and the arithmetic result is returned in the encrypted state to the user terminal device 40, and the user terminal device 40 decrypts the encrypted arithmetic result to obtain the arithmetic result. System.

本実施形態に係る秘匿システム1は、集計装置10と、受付装置20と、登録装置30と利用者端末装置40がインターネットなどの適宜なネットワーク50を介して通信可能に接続されて構成されたコンピュータネットワークシステムである。尚、登録装置30および利用者端末装置40は複数存在する。   The confidential system 1 according to the present embodiment is a computer configured by an aggregating device 10, a receiving device 20, a registration device 30, and a user terminal device 40 communicatively connected via an appropriate network 50 such as the Internet. It is a network system. There are a plurality of registration devices 30 and user terminal devices 40.

図1に示すように、集計装置10は、情報生成部101、暗号処理部102、データ送受信部103、情報入力部104、情報出力部105、一次記憶部106、データ記憶部107、鍵記憶部108から構成することができる。   As illustrated in FIG. 1, the aggregation device 10 includes an information generation unit 101, an encryption processing unit 102, a data transmission / reception unit 103, an information input unit 104, an information output unit 105, a primary storage unit 106, a data storage unit 107, and a key storage unit. 108.

このうち情報生成部101は、集計装置10の秘密鍵や秘匿演算システム1のシステム公開鍵などの情報を生成するものであり、例えば情報入力部104から入力された信号やデータ送受信部103で受信したデータを基に情報を生成するものである。また、暗号処理部102は、主に登録装置30から受信した暗号化データを暗号化状態のまま演算を行うものである。また、鍵記憶部108は、情報生成部101で生成した秘密鍵を安全に管理するものである。また、一次記憶部106は、半導体を用いた一次記憶領域である。
また、データ記憶部107は登録装置30から受信した暗号化データを暗号化状態のまま管理するものである。また、データ送受信部103は、暗号化データを送受信する。また、情報入力部104は、情報生成部101で生成する情報の入力にあたる信号を受け付けるものである。また、情報出力部105は、情報入力部104で入力した信号などを表示したりするものである。
Of these, the information generation unit 101 is for generating information such as the secret key of the aggregation device 10 and the system public key of the confidential calculation system 1, and is received by, for example, the signal input from the information input unit 104 or the data transmission / reception unit 103. Information is generated based on the created data. The cryptographic processing unit 102 mainly performs arithmetic operations on the encrypted data received from the registration device 30 in the encrypted state. The key storage unit 108 securely manages the private key generated by the information generation unit 101. The primary storage unit 106 is a primary storage area using a semiconductor.
The data storage unit 107 also manages the encrypted data received from the registration device 30 in the encrypted state. The data transmitting / receiving unit 103 also transmits / receives encrypted data. Further, the information input unit 104 receives a signal corresponding to the input of information generated by the information generation unit 101. The information output unit 105 also displays a signal or the like input from the information input unit 104.

このような機能を有する集計装置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 information generation unit 101, the encryption processing unit 102, the data transmission / reception unit 103, the information input unit 104, and the information output unit 105 can be realized as a computer program executed by the CPU 605 such as a CPU (CENTRAL PROCESSING UNIT). Such a computer program can be stored and held in the storage device 604 such as a hard disk in advance, or can be used by being distributed from the network 50. The data storage unit 107 and the key storage unit 108 can also be realized as the storage device 604 described above. The key storage unit 108 may be implemented by using a secure module device called HSM (Hardware Security Module).

また、一次記憶部106はメモリー603にて実現出来る。また、情報出力部105は、例えば液晶表示装置や有機EL(ELECTRO LUMINESCENCE)ディスプレイなどの入出力装置601として実現できる。また、情報入力部104は、利用者からの指示、入力を受け付けるキーボードやマウスなどの入出力装置601として実現できる。   Further, the primary storage unit 106 can be realized by the memory 603. The information output unit 105 can be realized as an input / output device 601 such as a liquid crystal display device or an organic EL (ELECTRO LUMINENCE) display. Further, the information input unit 104 can be realized as an input / output device 601 such as a keyboard or a mouse that receives instructions and inputs from the user.

この他、集計装置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 information generation unit 201, an encryption processing unit 202, a data transmission / reception unit 203, an information input unit 204, an information output unit 205, a primary storage unit 206, a data storage unit 207, and a key. It can be configured from the storage unit 208.

このうち情報生成部201は、受付装置20の秘密鍵および公開鍵などの情報や、利用者端末装置40に対するアクセス権などの情報を生成するものであり、例えば情報入力部204から入力された信号やデータ送受信部203で受信したデータを基に情報を生成するものである。また、暗号処理部202は、主に集計装置10から受信した暗号化演算結果を加工処理するものである。また、鍵記憶部208は、情報生成部201で生成した秘密鍵を安全に管理するものである。また、一次記憶部206は、半導体を用いた一次記憶領域である。また、データ記憶部207は利用者端末装置40に対するアクセス権などの情報を管理するものである。また、データ送受信部203は、暗号化データを送受信する。また、情報入力部204は、情報生成部201で生成する情報の入力にあたる信号を受け付けるものである。また、情報出力部205は、情報入力部204で入力した信号などを表示したりするものである。   Of these, the information generation unit 201 generates information such as a secret key and a public key of the reception device 20 and information such as an access right to the user terminal device 40. For example, a signal input from the information input unit 204. And information is generated based on the data received by the data transmission / reception unit 203. The cryptographic processing unit 202 mainly processes the encrypted calculation result received from the aggregation device 10. Further, the key storage unit 208 safely manages the secret key generated by the information generation unit 201. The primary storage unit 206 is a primary storage area using a semiconductor. Further, the data storage unit 207 manages information such as an access right to the user terminal device 40. The data transmitting / receiving unit 203 also transmits / receives encrypted data. The information input unit 204 also receives a signal for inputting information generated by the information generation unit 201. The information output unit 205 also displays a signal or the like input by the information input unit 204.

このような機能を有する受付装置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 information generation unit 201, the encryption processing unit 202, the data transmission / reception unit 203, the information input unit 204, and the information output unit 205 can be realized as a computer program executed by the CPU 605 such as a CPU (CENTRAL PROCESSING UNIT). Such a computer program can be stored and held in the storage device 604 such as a hard disk in advance, or can be used by being distributed from the network 50. The data storage unit 207 and the key storage unit 208 can also be realized as the storage device 604 described above. The key storage unit 208 may be realized by using a secure module device called an HSM (Hardware Security Module).

また、一次記憶部206はメモリー603にて実現出来る。また、情報出力部205は、例えば液晶表示装置や有機EL(ELECTRO LUMINESCENCE)ディスプレイなどの入出力装置601として実現できる。また、情報入力部204は、利用者からの指示、入力を受け付けるキーボードやマウスなどの入出力装置601として実現できる。   Further, the primary storage unit 206 can be realized by the memory 603. The information output unit 205 can be realized as an input / output device 601 such as a liquid crystal display device or an organic EL (ELECTRO LUMINENCE) display. Further, the information input unit 204 can be realized as an input / output device 601 such as a keyboard or a mouse that receives instructions and inputs from the user.

この他、受付装置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 information generation unit 301, an encryption processing unit 302, a data transmission / reception unit 303, an information input unit 304, an information output unit 305, a primary storage unit 306, and a data storage unit 307. You can

このうち情報生成部301は、集計装置10へ登録する数値データなどの情報を生成するものであり、例えば情報入力部304から入力された信号やデータ送受信部303で受信したデータを基に情報を生成するものである。また、暗号処理部302は、前記数値データの暗号化処理をするものである。また、一次記憶部306は、半導体を用いた一次記憶領域である。また、データ記憶部307は集計装置10へ登録する数値データや秘匿演算システム1のシステム公開鍵を管理するものである。また、データ送受信部303は、集計装置10から秘匿演算システム1のシステム公開鍵を受信したり、集計装置10に暗号化データを送信したりする。また、情報入力部304は、情報生成部301で生成する情報の入力にあたる信号を受け付けるものである。また、情報出力部305は、情報入力部304で入力した信号などを表示したりするものである。   Of these, the information generating unit 301 is for generating information such as numerical data to be registered in the totaling device 10, and for example, based on a signal input from the information input unit 304 or data received by the data transmitting / receiving unit 303, information is generated. To generate. Further, the encryption processing unit 302 is for performing encryption processing of the numerical data. The primary storage unit 306 is a primary storage area using a semiconductor. Further, the data storage unit 307 manages numerical data registered in the aggregation device 10 and the system public key of the secret computing system 1. The data transmission / reception unit 303 also receives the system public key of the secret computing system 1 from the aggregation device 10 and transmits encrypted data to the aggregation device 10. In addition, the information input unit 304 receives a signal corresponding to the input of information generated by the information generation unit 301. Further, the information output unit 305 displays a signal or the like input by the information input unit 304.

このような機能を有する登録装置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 information generation unit 301, the encryption processing unit 302, the data transmission / reception unit 303, the information input unit 304, and the information output unit 305 can be realized as a computer program executed by a CPU 605 such as a CPU (CENTRAL PROCESSING UNIT). Such a computer program can be stored and held in the storage device 604 such as a hard disk in advance, or can be used by being distributed from the network 50. The data storage unit 307 can also be realized as the storage device 604 described above. Further, the primary storage unit 306 can be realized by the memory 603. The information output unit 305 can be realized as an input / output device 601 such as a liquid crystal display device or an organic EL (ELECTRO LUMINENCE) display. Further, the information input unit 304 can be realized as an input / output device 601 such as a keyboard or a mouse that receives instructions and inputs from the user.

この他、登録装置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 information generation unit 401, an encryption processing unit 402, a data transmission / reception unit 403, an information input unit 404, an information output unit 405, a primary storage unit 406, and a data storage unit 407. , Key storage unit 408.

このうち情報生成部401は、利用者端末装置40の秘密鍵および公開鍵などの情報や、受付装置20を介して集計装置10に送る秘匿演算依頼などの情報を生成するものであり、例えば情報入力部404から入力された信号を基に情報を生成するものである。また、暗号処理部402は、主に集計装置10から受付装置20を介して受信した暗号化演算結果の復号処理をするものである。また、鍵記憶部408は、情報生成部401で生成した秘密鍵を安全に管理するものである。また、一次記憶部406は、半導体を用いた一次記憶領域である。また、データ記憶部407は復号した演算結果などの情報を管理するものである。また、データ送受信部403は、受付装置20を介して集計装置10に秘匿演算依頼を送信したり、受付装置20を介して集計装置10から暗号化演算結果を受信したりする。また、情報入力部404は、情報生成部401で生成する情報の入力にあたる信号を受け付けるものである。また、情報出力部405は、情報入力部404で入力した信号などを表示したりするものである。   Of these, the information generation unit 401 generates information such as a secret key and a public key of the user terminal device 40 and information such as a confidential calculation request sent to the aggregation device 10 via the reception device 20. Information is generated based on the signal input from the input unit 404. The cryptographic processing unit 402 mainly performs a decryption process on the encrypted calculation result received from the totaling device 10 via the reception device 20. The key storage unit 408 securely manages the private key generated by the information generation unit 401. The primary storage unit 406 is a primary storage area using a semiconductor. The data storage unit 407 manages information such as the decrypted calculation result. The data transmission / reception unit 403 also transmits a confidential calculation request to the aggregation device 10 via the reception device 20 and receives an encrypted calculation result from the aggregation device 10 via the reception device 20. The information input unit 404 receives a signal for inputting information generated by the information generation unit 401. The information output unit 405 also displays a signal or the like input by the information input unit 404.

このような機能を有する利用者端末装置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 information generation unit 401, the encryption processing unit 402, the data transmission / reception unit 403, the information input unit 404, and the information output unit 405 can be realized as a computer program executed by the CPU 605 such as a CPU (CENTRAL PROCESSING UNIT). Such a computer program can be stored and held in the storage device 604 such as a hard disk in advance, or can be used by being distributed from the network 50. The data storage unit 407 and the key storage unit 408 can also be realized as the storage device 604 described above. The key storage unit 408 may be implemented by using a secure module device called HSM (Hardware Security Module).

また、一次記憶部406はメモリー603にて実現出来る。また、情報出力部405は、例えば液晶表示装置や有機EL(ELECTRO LUMINESCENCE)ディスプレイなどの入出力装置601として実現できる。また、情報入力部404は、利用者からの指示、入力を受け付けるキーボードやマウスなどの入出力装置601として実現できる。   Further, the primary storage unit 406 can be realized by the memory 603. Further, the information output unit 405 can be realized as an input / output device 601 such as a liquid crystal display device or an organic EL (ELECTRO LUMINESCENCE) display. Further, the information input unit 404 can be realized as an input / output device 601 such as a keyboard or a mouse that receives instructions and inputs from the user.

この他、利用者端末装置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 confidential calculation system 1, that is, the totaling device 10, the reception device 20, the registration device 30, and the user terminal device 40, which are respectively read into a memory or the like. It is realized by the program.

図3は、本実施形態における処理の全体像を示す図である。尚、図3では、登録装置30および利用者端末装置40は複数存在する。ここでは、メッセージmjkは整数値とし、例えば、登録装置30(k=1、2、・・・、m)が、個人が支払った医療費や介護費または個人の所得額などを、クラウド上の集計装置10のデータ記憶部107内のテーブル109に暗号化して登録し、利用者端末装置40(i=1、2、・・・、n)のいずれかが、クラウド上の受付装置20を介して当該個人(ここではIDとする)が支払った医療費と介護費から所得額を引いた値を計算するように秘匿演算依頼を行い、集計装置10は、その依頼に基づき秘匿演算を行い、要求元の利用者端末装置40に暗号化演算結果を受付装置20経由で送信し、前記利用者端末装置40は、前記暗号化演算結果を復号して演算結果を取得する。 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 data storage unit 107 of the above aggregation device 10 and is accepted by the reception device on the cloud. The confidential calculation request is made via 20 to calculate the value obtained by subtracting the income amount from the medical expenses and nursing expenses paid by the individual (herein, ID 1 ), and the aggregation device 10 makes the confidential information based on the request. A calculation is performed and the encrypted calculation result is transmitted to the requesting user terminal device 40 i via the reception device 20, and the user terminal device 40 i decrypts the encrypted calculation result to obtain the calculation result. ..

このとき、利用者端末装置40は、該当個人の個々の支払額や所得額はわからないが、医療費と介護費から所得額を引いた演算結果のみを取得することができる。尚、集計装置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 arithmetic system 1. Then, the system public key is transmitted to all the registration devices 30 (step S002).

暗号化データ登録処理では、登録装置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 key storage unit 408 of the user terminal device 40. The accepting device 20 that has received the public key of the user terminal device 40 stores the public key of the user terminal device 40 in the data storage unit 207 (step S202).

次に秘匿演算処理フェーズについて説明する。   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 data 1 to the totaling device 10. The aggregation device 10 partially decrypts the processed data 1 with the secret key of the aggregation device 10 (step S305), and transmits the processed data 1 to the reception device 20 as the processed data 2. The reception device 20 partially decrypts the processed data 2 with the secret key of the reception device 20 (step S306), and transmits it as the processed data 3 to the user terminal device 40. The user terminal device 40 decrypts the processed data 3 with the secret key of the user terminal device 40, and acquires the requested calculation result. Note that steps S304 to S307 are processes in which each device performs decryption via communication using the secret key of the aggregation device 10, the secret key of the reception device 20, and the secret key of the user terminal 40. Will be described later with reference to the flowchart of FIG.

図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∈Zを任意に選び(フローF003)、g=1+k・n mod nを計算する(フロー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∈Zを任意に選び(フロー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=g mod nを計算する(フローF010)。 The collection apparatus 10 calculates the G = g a mod n 2 (Flow F010).

また、集計装置10は、u∈Zを任意に選ぶ。尚、便宜上、ここではnを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 key storage unit 108 as a secret key of the aggregation device 10 (flow F012).

また、集計装置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 confidential calculation system 1. Further, b selected in the flow F013 is also transmitted to each registration device 30 as a public parameter of the confidential computing system 1 (flow F014).

次に、図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∈Zを任意に選び(フローF102)、フローF101で選んだデータmに対して、フローF014で集計装置10から登録装置30に送られてきた秘匿演算システム1のシステム公開鍵(n、G)とフローF102で選んだ乱数rを用いて、暗号化データc=G・r mod nを計算する(フロー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が何に対するデータであるかの属性情報(例えば“ID”の“医療費”のデータであることを示す情報(図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 nに変換して、前記属性情報(例えば“ID”の“医療費”のデータであることを示す情報(図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 key storage unit 108 in flow F012, converts the encrypted data c into c = c + u mod n 2, and converts the encrypted data c into c = c + u mod n 2. The converted c is registered in the data storage unit 107 of the aggregation device 10 according to the attribute information (for example, information indicating that the data is “medical expenses” of “ID 1 ” (see FIG. 3, table 109)). Flow F106).

次に、図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は、演算範囲を指定して(例えば“ID”の“医療費”と“介護費”の和を知りたいということを示す情報(図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)。ここでは、“IDの医療費に対する暗号化データ”を“c”とし、“IDの介護費に対する暗号化データ”を“c”として説明する。 Upon receiving the confidential calculation request from the reception device 20 (flow F205), the aggregation device 10 acquires the corresponding encrypted data from the data storage unit 107 based on the calculation range specified in the flow F201 (flow F206). Here, it is assumed that "encrypted data for medical expenses of ID 1 " is "c 1 " and "encrypted data for nursing expenses of ID 1 " is "c 2 ".

各該当暗号化データを取得した集計装置10は、鍵記憶部108より集計装置10の秘密鍵uを取り出し、cおよびcを、各々c=c−u mod n、c=c−u mod nに置き換える(フローF207)。 The aggregating apparatus 10 that has obtained the corresponding encrypted data retrieves the secret key u of the aggregating apparatus 10 from the key storage unit 108 and stores c 1 and c 2 as c 1 = c 1 -u mod n 2 and c 2 =, respectively. It is replaced with c 2 −u mod n 2 (flow F207).

ここで集計装置10は、要求されている演算が和であるか差であるかを判断し(フローF208)、和であればc’=(c・c) mod nを計算し(フローF209)、差であればc’=(c/c) mod nを計算する(フローF209)。 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∈Zを任意に選び、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 primary storage unit 106 or the data storage unit 107. (Flow F210).

また、集計装置10は、v∈Zを任意に選び、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 nを計算し、フロー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 n)/L(gλ mod n))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∈Zを任意に選び、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 primary storage unit 206 or the data storage unit 207 (flow F302). ..

そして受付装置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 processing data 1 to the aggregation apparatus 10 (flow). F303).

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 key storage unit 108 in flow F012 and s ′ stored in primary storage unit 106 or data storage unit 107 in flow F210. It is taken out and C ″ = a ′ · s ′ · C ′ mod n is calculated (flow F304). Then, the aggregation device 10 transmits C ″ as the processing data 2 to the reception device 20 (flow F306).

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 primary storage unit 206 or the data storage unit 207 in flow F302, and sets C ″ ′ = t ′ as the processing data 3. -Calculate C '' mod n (flow F308).

そして受付装置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 key storage unit 408, and v ′ encrypted with the public key of the user terminal 40 is decrypted to obtain v ′ (flow F311).

そして利用者端末装置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’とし(フローF314)、m’≧n/2であればm’=m’−nとする(フローF314)。 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’が求める演算結果であることは以下よりわかる。
各暗号化データcおよびcを、
=Gm1・r =ga・m1・r mod n
=Gm2・r =ga・m2・r mod nとしたとき、
c’=c・c=ga・(m1+m2) ・(r・r mod nであり、
C=(c’)s・v=ga・(m1+m2)・s・v ・(r・rn・s・v mod nである。
そして、L((Cλ mod n)/L(gλ mod n))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 Network 101 Information Generation Unit 102 Cryptographic Processing Unit 103 Data Transmission / Reception Unit 104 Information Input Unit 105 Information Output Unit 106 Primary Storage Unit 107 Data Storage Unit 108 Key Storage unit 109 Table 201 Information generation unit 202 Cryptographic processing unit 203 Data transmission / reception unit 204 Information input unit 205 Information output unit 206 Primary storage unit 207 Data storage unit 208 Key storage unit 301 Information generation unit 302 Cryptographic processing unit 303 Data transmission / reception unit 304 Information Input unit 305 Information output unit 306 Primary storage unit 307 Data storage unit 401 Information generation unit 402 Encryption processing unit 403 Data transmission / reception unit 404 Information input unit 405 Information output unit 406 Primary storage unit 407 Data storage unit 408 Key storage unit 601 Input / output device 602 Communication device 603 Memory 604 Storage device 605 CPU

Claims (2)

データを暗号化したまま演算する秘匿演算システムにおける秘匿演算方法であって
受付装置が、素数pおよびqを選び、n=p・qを計算し、乱数k∈Z を任意に選び、g=1+k・n mod n を計算し、選んだpおよびqを前記受付装置の秘密鍵とし、計算したnおよびgを前記受付装置の公開鍵として集計装置に送信する第1のステップと、
前記集計装置が、a∈Z を任意に選び、a’・a=1 mod nなるa’を求め、G=g mod n を計算し、u∈Z を任意に選び(n をNと記述する)、求めたa’と、選んだuとを前記集計装置の秘密鍵とし、演算を行う項数の最大値とするパラメータbをn/2より小さい自然数から選び、前記受付装置から受信したnと、計算したGとを前記秘匿演算システムのシステム公開鍵として登録装置に送信し、選んだbも前記秘匿演算システムの公開パラメータとして前記登録装置に送信する第2のステップと、
前記登録装置が、暗号化対象の整数値のデータとしてm∈Z ((n/2b)−1) を選び、乱数r∈Z を任意に選び、選んだデータmに対して、前記集計装置から送られてきた前記システム公開鍵と、選んだ乱数rとを用いて、暗号化データc=G ・r mod n を計算し、前記暗号化データcを前記集計装置に送信する第3のステップと、
前記集計装置が、選んだuを用いて、前記暗号化データcをc=c+u mod n に変換し、変換したcをデータ記憶部に登録する第4のステップと、
前記第3のステップおよび前記第4のステップは、随時行われ、
利用者端末装置が、前記利用者端末装置の公開鍵および秘密鍵を生成し、前記利用者端末装置の公開鍵を前記受付装置に登録する第5のステップと、
前記利用者端末装置が、暗号化データc と暗号化データc との和または差が知りたいということが指定された秘匿演算依頼を前記受付装置に送信する第6のステップと、
前記受付装置が、前記利用者端末装置からの秘匿演算依頼を受信し、前記利用者端末装置の公開鍵を取り出し、前記利用者端末装置の公開鍵を、受信した秘匿演算依頼と共に前記集計装置に送信する第7のステップと、
前記集計装置が、前記受付装置からの秘匿演算依頼を受信し、前記データ記憶部から前記秘匿演算依頼で指定された暗号化データc および暗号化データc を取得し、前記集計装置の秘密鍵であるuを取り出し、取得した暗号化データc および暗号化データc を、各々c =c −u mod n 、c =c −u mod n に置き換え、要求されている演算が和であるか差であるかを判断し、和であればc’=(c ・c ) mod n を計算し、差であればc’=(c /c ) mod n を計算し、s∈Z を任意に選び、s’・s=1 mod nなるs’を求め、v∈Z を任意に選び、v’・v=1 mod nなるv’も求め、前記受付装置から送られてきた前記利用者端末装置の公開鍵でv’を暗号化し、計算したc’と、選んだsおよびvとを用いて、暗号化演算結果C=(c’) s・v mod n を計算し、計算した暗号化演算結果Cを暗号化したv’と共に前記受付装置に送信する第8のステップと、
前記受付装置が、M=L((C λ mod n )/L(g λ mod n ))mod nを計算し(L(x)=(x−1)/nであり、λ=1cm(p−1、q−1)である)、t∈Z を任意に選び、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 secret computing system that computes data encrypted
受付装置と、集計装置と、登録装置と、利用者端末装置とを備え、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 n を任意に選び、g=1+k・n mod n, G = 1 + k · n mod n Two を計算し、選んだ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 n を任意に選び、a’・a=1 mod nなるa’を求め、G=gIs arbitrarily selected to obtain a ′ such that a ′ · a = 1 mod n, and G = g a mod n  mod n Two を計算し、u∈ZAnd u ∈ Z N を任意に選び(nArbitrarily select (n Two を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 n を任意に選び、選んだデータ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 m ・r・ R n mod n  mod n Two を計算し、前記暗号化データ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 Two に変換し、変換した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 1 と暗号化データcAnd encrypted data c Two との和または差が知りたいということが指定された秘匿演算依頼を前記受付装置に送信し、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. 1 および暗号化データcAnd encrypted data c Two を取得し、前記集計装置の秘密鍵であるuを取り出し、取得した暗号化データcTo obtain u, which is the secret key of the aggregation device, and obtain the encrypted data c 1 および暗号化データcAnd encrypted data c Two を、各々cRespectively c 1 =c= C 1 −u mod n-U mod n Two 、c, C Two =c= C Two −u mod n-U mod n Two に置き換え、要求されている演算が和であるか差であるかを判断し、和であればc’=(cTo determine whether the requested operation is a sum or a difference, and if it is a sum, c ′ = (c 1 ・c・ C Two ) mod n) Mod n Two を計算し、差であればc’=(cIs calculated, and if the difference is c ′ = (c 1 /c/ C Two ) mod n) Mod n Two を計算し、s∈ZAnd s ∈ Z n を任意に選び、s’・s=1 mod nなるs’を求め、v∈Z, S ′ · s = 1 mod n is obtained, and vεZ n を任意に選び、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 Two を計算し、計算した暗号化演算結果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 Two )/L(g) / L (g λλ mod n  mod n Two ))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 n を任意に選び、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.
JP2016155202A 2016-08-08 2016-08-08 Concealment calculation technology and method Active JP6693834B2 (en)

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)

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

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

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