JP2018025587A - Secret computation technique and method of the same - Google Patents

Secret computation technique and method of the same Download PDF

Info

Publication number
JP2018025587A
JP2018025587A JP2016155202A JP2016155202A JP2018025587A JP 2018025587 A JP2018025587 A JP 2018025587A JP 2016155202 A JP2016155202 A JP 2016155202A JP 2016155202 A JP2016155202 A JP 2016155202A JP 2018025587 A JP2018025587 A JP 2018025587A
Authority
JP
Japan
Prior art keywords
secret
user terminal
data
terminal device
encrypted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016155202A
Other languages
Japanese (ja)
Other versions
JP6693834B2 (en
Inventor
尚生 坂崎
Hisao Sakazaki
尚生 坂崎
梨奈 一井
Rina Ichii
梨奈 一井
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

Abstract

PROBLEM TO BE SOLVED: To provide a secret computation method that can make a plurality of user terminal devices having a different secret key decrypt an encrypted computation result in secret computation processing for conducting a computation in an encrypted state.SOLUTION: According to the present invention solving the problem, a system disclosure key is created from two secret keys separately administered by a user terminal device and a computation device. Then, the system disclosure key is used to encrypt each data. Thereafter, as to each data encrypted by the system disclosure key, secret computation processing is conducted in an encrypted state, and a result of the secret computation processing is re-encrypted by the secret key of the user terminal device. The re-encrypted result is transmitted to the user terminal device, and the user terminal device is configured to use the secret key administered by the user terminal device itself to decrypt the re-encrypted result.SELECTED DRAWING: Figure 4

Description

本発明は、暗号化状態のまま数値演算が可能な秘匿演算手法に関するものであり、複数の登録装置から個々の暗号化データをクラウド上のサーバなどに登録でき、また、前記サーバ上で暗号状態のまま正しい演算をすることができ、また、複数の利用者端末装置が前期暗号化演算結果を取得し、復号することができる秘匿演算方法に関する。   The present invention relates to a secret operation method capable of performing a numerical operation in an encrypted state, and can register individual encrypted data from a plurality of registration devices to a server on the cloud, and the encrypted state 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 acquire and decrypt an encryption calculation result in the previous period.

個人情報や企業情報などの機密データ(特に、数値データ)をクラウド上のサーバで管理している状況において、クラウドサーバからの情報漏洩を防止しつつ同時に情報を活用する為に、データを予め暗号化してからクラウドサーバに預けておき、クラウドサーバに預けられた暗号化データを利用する際に、暗号化状態のまま演算をすることができる暗号技術が知られている。   In a situation where confidential data (particularly numeric data) such as personal information and corporate information is managed by a server on the cloud, the data is encrypted in advance to prevent information leakage from the cloud server and at the same time use the information. There is known a cryptographic technique that can be stored in a cloud server after being converted, and can be operated in an encrypted state when using encrypted data stored in the cloud server.

例えば、加法・減法に対して準同型の性質を持つ暗号関数を利用し、暗号化状態のまま加法、減法、乗法、除法の演算をすることができる公開鍵暗号ベースの秘匿演算技術が知られている (特許文献1)。   For example, public key cryptography-based secret computation technology is known that uses cryptographic functions that have homomorphic properties for addition and subtraction, and can perform addition, subtraction, multiplication, and division operations in the encrypted state. (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 operation result, and is processed in the state 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 a device that holds the secret key corresponding to the public key. In other words, in the prior art, if the public key is known, individual data can be encrypted from a plurality of devices, and the encrypted data can be operated in an encrypted state. The calculation result cannot be decoded. Of course, if the same decryption secret key is distributed to multiple devices in advance, the encryption operation result can be decrypted by multiple devices, but multiple devices holding different secret keys can encrypt There has been a problem that the operation result cannot be decoded.

上記課題をより具体的に説明すると、個人情報や企業情報などの機密データ(特に、数値データ)をクラウドサーバ上で暗号化状態にて管理させ、その暗号化データから統計値などを調べる為に、クラウドサーバ上で各暗号化データを演算し、その演算結果を利用する場合、その演算結果を利用できる装置は該当する秘密鍵を保持する装置1つのみであり、前記クラウドサーバにアクセスできる他の複数の装置が、前記演算結果を利用することができないという課題があった。   To explain the above issues more specifically, in order to manage confidential data (particularly numeric data) such as personal information and company information in an encrypted state on the cloud server, and to examine statistical values and the like from the encrypted data When each encrypted data is calculated on the cloud server and the calculation result is used, the device that can use the calculation result is only one device that holds the corresponding secret key, and can access the cloud server. There is a problem that the plurality of apparatuses cannot use the calculation result.

上記課題を解決する本発明では、利用者端末装置と演算装置とで別々に管理される2つの秘密鍵からシステム公開鍵を生成する。そしてこのシステム公開鍵を用いて各データを暗号化する。その後、システム公開鍵で暗号化された各データについて、暗号化状態で秘匿演算処理をし、その結果を利用者端末装置の秘密鍵で再暗号化して、暗号化されたものを利用者端末装置に送付する。利用者端末装置は、自身が管理する秘密鍵を用いて復号する。   In the present invention for solving the above problems, a system public key is generated from two secret keys managed separately by a user terminal device and a computing device. Each data is encrypted using the system public key. After that, each data encrypted with the system public key is subjected to a secret calculation process in an encrypted state, and the result is re-encrypted with the secret key of the user terminal device, and the encrypted data is the user terminal device. Send to. The user terminal device decrypts it using a secret key managed by itself.

本発明により、暗号化状態のまま数値演算が可能な秘匿演算手法に関し、複数の利用者端末装置が、要求した演算結果のみを暗号化状態で取得し、復号することができる。   According to the present invention, a secret operation method capable of performing numerical operations in an encrypted state allows a plurality of user terminal devices to acquire and decrypt only requested operation results in an encrypted state.

本実施形態のシステム構成例を示す図である。It is a figure which shows the system configuration example of this embodiment. 本実施形態における集計装置、受付装置、登録装置および利用者端末装置の ハードウェア構成例を示す図である。It is a figure which shows the hardware structural example of the totaling device in this embodiment, a reception apparatus, a registration apparatus, and a user terminal device. 本実施形態における処理の全体像を示す図である。It is a figure which shows the whole image of the process in this embodiment. 本実施形態における秘匿演算処理手順を示すシーケンス図である。It is a sequence diagram which shows the confidential calculation process procedure in this embodiment. 本実施形態における鍵生成などの事前準備処理を示すフロー図である。It is a flowchart which shows advance preparation processes, 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 illustrating an example of the overall configuration of a secret calculation system 1 in the present embodiment. In this figure, an example of a functional configuration of each computer constituting the secret calculation system 1 is also shown along with the overall configuration. The secret calculation system 1 shown in FIG. 1 encrypts encrypted data registered in the totaling device 10 from each registration device 30 in the totaling device 10 in accordance with a request from the user terminal device 40 via the receiving device 20. Addition / subtraction calculation processing is performed as it is, and the calculation result is returned to the user terminal device 40 in an encrypted state, and the user terminal device 40 decrypts the encrypted calculation result and acquires the calculation result. System.

本実施形態に係る秘匿システム1は、集計装置10と、受付装置20と、登録装置30と利用者端末装置40がインターネットなどの適宜なネットワーク50を介して通信可能に接続されて構成されたコンピュータネットワークシステムである。尚、登録装置30および利用者端末装置40は複数存在する。   The concealment system 1 according to the present embodiment is a computer in which a counting device 10, a receiving device 20, a registration device 30, and a user terminal device 40 are communicably 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で入力した信号などを表示したりするものである。
Among them, the information generation unit 101 generates information such as a secret key of the aggregation device 10 and a system public key of the secret calculation system 1. For example, the information generation unit 101 receives a signal input from the information input unit 104 or a data transmission / reception unit 103. Information is generated based on the obtained data. Also, the encryption processing unit 102 performs operations on encrypted data received mainly from the registration device 30 in an encrypted state. The key storage unit 108 manages the secret key generated by the information generation unit 101 safely. The primary storage unit 106 is a primary storage area using a semiconductor.
The data storage unit 107 manages the encrypted data received from the registration device 30 in an encrypted state. The data transmitting / receiving unit 103 transmits / receives encrypted data. The information input unit 104 receives a signal corresponding to input of information generated by the information generation unit 101. Further, the information output unit 105 displays a signal input by the information input unit 104 or the like.

このような機能を有する集計装置10は、図2に例示するように一般的な情報処理装置60により実現できる。例えば、情報生成部101、暗号処理部102、データ送受信部103、情報入力部104、情報出力部105はCPU(CENTRAL PROCESSING UNIT)等のCPU605により実行されるコンピュータプログラムとして実現できる。こうしたコンピュータプログラムは、例えば、ハードディスクなどの記憶装置604に予め格納、保持するか、或いはネットワーク50から配布を受けて利用することとできる。また、データ記憶部107や鍵記憶部108も上述の記憶装置604として実現できる。尚、鍵記憶部108は、HSM(Hardware Security Module)と呼ばれるセキュアなモジュール装置を用いて実現してもよい。   The tabulation apparatus 10 having such a function can be realized by a general information processing apparatus 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 implemented as a computer program executed by a CPU 605 such as a CPU (CENTRAL PROCESSING UNIT). Such a computer program can be stored in advance in a storage device 604 such as a hard disk, or can be distributed from the network 50 and used. Further, the data storage unit 107 and the key storage unit 108 can also be realized as the above-described storage device 604. Note that the key storage unit 108 may be realized by using a secure module device called HSM (Hardware Security Module).

また、一次記憶部106はメモリー603にて実現出来る。また、情報出力部105は、例えば液晶表示装置や有機EL(ELECTRO LUMINESCENCE)ディスプレイなどの入出力装置601として実現できる。また、情報入力部104は、利用者からの指示、入力を受け付けるキーボードやマウスなどの入出力装置601として実現できる。   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 LUMINESENCE) 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 an instruction and input from a 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. Can do.

また、図1に示すように、受付装置20は、情報生成部201、暗号処理部202、データ送受信部203、情報入力部204、情報出力部205、一次記憶部206、データ記憶部207、鍵記憶部208から構成することができる。   As shown in FIG. 1, the accepting 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, a key The storage unit 208 can be configured.

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

このような機能を有する受付装置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 a CPU 605 such as a CPU (CENTRAL PROCESSING UNIT). Such a computer program can be stored in advance in a storage device 604 such as a hard disk, or can be distributed from the network 50 and used. Further, the data storage unit 207 and the key storage unit 208 can also be realized as the storage device 604 described above. Note that the key storage unit 208 may be realized using a secure module device called 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. Further, 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 LUMINESENCE) display. Further, the information input unit 204 can be realized as an input / output device 601 such as a keyboard and a mouse that receives instructions and inputs from the user.

この他、受付装置20は、ネットワーク50を介して他装置と通信する通信装置602を備え、バスなどの内部通信線(以下,バスという)606で連結された情報処理装置60上に構成することができる。   In addition, the receiving 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. Can do.

図1に示すように、登録装置30は、情報生成部301、暗号処理部302、データ送受信部303、情報入力部304、情報出力部305、一次記憶部306、データ記憶部307から構成することができる。   As illustrated 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. Can do.

このうち情報生成部301は、集計装置10へ登録する数値データなどの情報を生成するものであり、例えば情報入力部304から入力された信号やデータ送受信部303で受信したデータを基に情報を生成するものである。また、暗号処理部302は、前記数値データの暗号化処理をするものである。また、一次記憶部306は、半導体を用いた一次記憶領域である。また、データ記憶部307は集計装置10へ登録する数値データや秘匿演算システム1のシステム公開鍵を管理するものである。また、データ送受信部303は、集計装置10から秘匿演算システム1のシステム公開鍵を受信したり、集計装置10に暗号化データを送信したりする。また、情報入力部304は、情報生成部301で生成する情報の入力にあたる信号を受け付けるものである。また、情報出力部305は、情報入力部304で入力した信号などを表示したりするものである。   Among them, the information generation unit 301 generates information such as numerical data to be registered in the totaling device 10. For example, the information generation unit 301 generates information based on a signal input from the information input unit 304 or data received by the data transmission / reception unit 303. Is to be generated. The encryption processing unit 302 performs encryption processing of the numerical data. The primary storage unit 306 is a primary storage area using a semiconductor. The data storage unit 307 manages numerical data to be registered in the totaling device 10 and the system public key of the secret calculation system 1. Further, the data transmission / reception unit 303 receives the system public key of the secret computation system 1 from the aggregation device 10 or transmits encrypted data to the aggregation device 10. The information input unit 304 receives a signal corresponding to input of information generated by the information generation unit 301. The information output unit 305 displays the signal 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 apparatus 30 having such a function can be realized by a general information processing apparatus 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 in advance in a storage device 604 such as a hard disk, or can be distributed from the network 50 and used. The data storage unit 307 can also be realized as the storage device 604 described above. 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 LUMINESENCE) display. Further, the information input unit 304 can be realized as an input / output device 601 such as a keyboard and 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. Can do.

また、図1に示すように、利用者端末装置40は、情報生成部401、暗号処理部402、データ送受信部403、情報入力部404、情報出力部405、一次記憶部406、データ記憶部407、鍵記憶部408から構成することができる。   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. The key storage unit 408 can be configured.

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

このような機能を有する利用者端末装置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 a CPU 605 such as a CPU (CENTRAL PROCESSING UNIT). Such a computer program can be stored in advance in a storage device 604 such as a hard disk, or can be distributed from the network 50 and used. Further, the data storage unit 407 and the key storage unit 408 can also be realized as the storage device 604 described above. Note that the key storage unit 408 may be realized using a secure module device called HSM (Hardware Security Module).

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

−−−処理手順例−−−
以下、本実施形態における手順について図に基づき説明する。以下で説明する秘匿演算処理に対応する各種動作は、秘匿演算システム1を構成する各装置、すなわち集計装置10、受付装置20、登録装置30および利用者端末装置40がそれぞれメモリー等に読み出して実行するプログラムによって実現される。
--- Processing procedure example ---
Hereinafter, the procedure in the present embodiment will be described with reference to the drawings. Various operations corresponding to the secret calculation processing described below are executed by each device constituting the secret calculation system 1, that is, the totaling device 10, the receiving device 20, the registration device 30, and the user terminal device 40, which are read into a memory or the like. Realized by a program that

図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 processing in the present 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. For example, the registration device 30 k (k = 1, 2,..., M) stores the medical expenses and care expenses paid by the individual or the personal income amount in the cloud. The user terminal device 40 i (i = 1, 2,..., N) is registered in the cloud as a reception device on the cloud. 20 performs a concealment calculation request so as to calculate a value obtained by subtracting the amount of income from the medical expenses and nursing care expenses paid by the individual (here, ID 1 ). An operation is performed, and the encrypted operation result is transmitted to the requesting user terminal device 40 i via the accepting device 20, and the user terminal device 40 i decrypts the encrypted operation result and obtains the operation 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 individual, but can obtain only the calculation result obtained by subtracting the income amount from the medical expenses and the care expenses. In addition, the risk of unnecessary information leakage can be reduced by concealing not only the individual values but also the calculation results in the counting device 10 and the receiving device 20.

この仕組みは、例えば、その演算結果がある上限を超えた場合に医療費や介護費の支払を免除するなどの高額療養費・高額介護合算療養費制度などへの応用が期待できる。その他、電子選挙システムでの投票結果の集計やアンケートシステムでの集計など、個々の値は秘匿しつつ、その合計値のみを復号権限のある複数の利用者に提供するシステムへの適用が期待できる。   This mechanism can be expected to be applied to, for example, a high-cost medical treatment / high-care long-term care expense system that exempts the payment of medical expenses or nursing care expenses 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 a plurality of users who have the authority to decrypt, such as counting of voting results in an electronic election system and counting in a questionnaire system. .

図4は、本実施形態における秘匿演算処理手順を示すシーケンス図である。   FIG. 4 is a sequence diagram showing a secret calculation processing procedure in the present embodiment.

本実施形態では大きく2つのフェーズに分かれており、一つは事前準備フェーズ(ステップS001〜S002、S101〜S103、S201〜S202)であり、もう一つは秘匿演算処理フェーズ(ステップS301〜S307)である。   In this 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 secret calculation processing phase (steps S301 to S307). It is.

まず、事前準備フェーズについて説明する。事前準備フェーズは更にシステム公開鍵生成処理(ステップS001〜S002)、暗号化データ登録処理(ステップS101〜S103)、利用者端末装置初期登録処理(ステップS201〜S202)に分けられる。   First, the advance preparation phase will be described. The advance preparation phase is further divided into a system public key generation process (steps S001 to S002), an encrypted data registration process (steps S101 to S103), and a user terminal device initial registration process (steps S201 to S202).

システム公開鍵生成処理では、受付装置20は、受付装置20の鍵ペア(公開鍵および秘密鍵)を生成し、受付装置20の公開鍵を集計装置10に送信する(ステップS001)。集計装置10では集計装置10の秘密鍵を生成し、前記受付装置20の公開鍵と前記集計装置10の秘密鍵を入力として、秘匿演算システム1のシステム公開鍵を生成する。そして、前記システム公開鍵を全登録装置30に送信する(ステップS002)。   In the system public key generation process, 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 aggregation device 10 (step S001). The aggregation device 10 generates a secret key of the aggregation device 10, and receives the public key of the receiving device 20 and the secret key of the aggregation device 10 to generate a system public key of the secret calculation 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 counting 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 process, each user terminal device 40 generates a key pair (public key and secret key) in public key cryptography such as RSA cryptography that is widely used in general (step S201). The public key of the user terminal device 40 is sent to the receiving device 20. Further, the secret key generated in step S201 is stored in the key storage unit 408 of the user terminal device 40. The receiving 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 secret computation 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 makes a secret calculation request to the accepting device 20 (step S301). The accepting device 20 relays the confidential calculation request to the counting device 10 (step S302). The aggregation device 10 selects the corresponding encrypted data from the encrypted data stored in step S103 based on the confidential calculation request, and performs the calculation process in the encrypted state (step S303). Then, the encryption calculation result is transmitted to the accepting device 20. The accepting device 20 performs a partial decryption process on the result of the encryption operation using the private key of the accepting device 20 (step S304), and transmits the processed data 1 to the counting device 10. The aggregation device 10 performs a partial decryption process on the processing data 1 with the secret key of the aggregation device 10 (step S305), and transmits the processing data 2 to the reception device 20 as processing data 2. The accepting device 20 performs a partial decryption process on the processing data 2 with the private key of the accepting device 20 (step S306), and transmits the processed data 3 to the user terminal device 40. The user terminal device 40 decrypts the processing data 3 with the secret key of the user terminal device 40 and acquires the requested calculation result. Steps S304 to S307 are processes in which each device performs decryption via communication using the secret key of the totaling device 10, the secret key of the accepting 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 flowcharts for explaining details of each process 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 encrypted data registration processing (steps S101 to S103) in the advance preparation phase.

図7は秘匿演算処理フェーズの秘匿演算依頼(ステップS301)から秘匿演算処理(ステップS303)までのフロー図である。   FIG. 7 is a flowchart from the confidential calculation processing phase (step S301) to the confidential calculation processing (step S303).

図8は秘匿演算処理フェーズの復号処理(ステップS304〜S307)までのフロー図である。   FIG. 8 is a flowchart up to the decryption process (steps S304 to S307) in the confidential calculation process 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 RSA cryptography which is widely used in general, and the user terminal device This is a process of registering the public key of the device 40 in the accepting device 20, and in particular, the description using the flowchart is omitted.

まず、図5を用いて事前準備フェーズのシステム公開鍵生成処理(ステップS001〜S002)フローを説明する。   First, the system public key generation processing (steps S001 to S002) flow in the preparation phase will be described with reference to FIG.

受付装置20は、大きな素数pおよびqを選ぶ(フローF001)。このとき、p’=(p−1)/2およびq’=(q−1)/2も素数になるように選ぶ。   The accepting 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). Here, the operator “·” means multiplication.

次に受付装置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 reception 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 reception device 20 (flow F005).

また受付装置20は、フローF002およびフローF004で計算したnおよびgを受付装置20の公開鍵として、集計装置10に送信する(フローF006)。   In addition, the reception device 20 transmits n and g calculated in the flow F002 and the flow F004 to the aggregation device 10 as the public key of the reception device 20 (flow F006).

受付装置20の公開鍵(n、g)を受信した集計装置10は(フローF007)、a∈Zを任意に選び(フローF008)、a’・a=1 mod nなるa’を求める。通常、この計算はユークリッドの互除法と呼ばれる計算を行うことでa’を求めることができる(フローF009)。 Upon receiving the public key (n, g) of the accepting apparatus 20 (flow F007), the aggregating apparatus 10 arbitrarily selects aεZ n (flow F008) and obtains a ′ where a ′ · a = 1 mod n. Normally, a ′ can be obtained by performing a calculation called the 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, totaling device 10 chooses the U∈Z N arbitrarily. For convenience, describe the n 2 and N here (Flow F011).

そして集計装置10は、フローF009で求めたa’とフローF011で選んだuを集計装置10の秘密鍵として、鍵記憶部108に保管する(フローF012)。   The aggregation device 10 stores the a ′ obtained in the flow F009 and u selected in the flow F011 in the key storage unit 108 as the secret key of the aggregation device 10 (flow F012).

また、集計装置10は、パラメータbをn/2より小さい自然数から選ぶ(フローF013)。尚、パラメータbは演算を行う項数の最大値とする。つまり、本実施形態では最大b個までの足し算または引き算を行うことができる。   Further, the counting device 10 selects the parameter b from natural numbers smaller than n / 2 (flow F013). The parameter b is the maximum 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 the system public key of the secret calculation system 1. Further, b selected in the flow F013 is also transmitted to each registration device 30 as a public parameter of the secret calculation system 1 (flow F014).

次に、図6を用いて事前準備フェーズの暗号化データ登録処理(ステップS101〜S103)フローを説明する。   Next, the flow of encrypted data registration processing (steps S101 to S103) in the 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 to be encrypted (integer value) (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 the secret computation system sent from the counting device 10 to the registration device 30 in flow F014 for the data m selected in flow F101. Encrypted data c = G m · r n mod n 2 is calculated using the system public key (n, G) of 1 and the random number r selected in flow F102 (flow F103).

そして登録装置30は、前記暗号化データcが何に対するデータであるかの属性情報(例えば“ID”の“医療費”のデータであることを示す情報(図3、テーブル109参照))を添えて、前記暗号化データcを収集装置10に送信する(フローF104)。 Then, the registration device 30 provides attribute information (for example, information indicating that the data is “medical expenses” of “ID 1 ” (see table 109 in FIG. 3)) indicating what the encrypted data c is. 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 counting device 10 that has 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 In accordance with the attribute information (for example, information indicating that the data is “medical expenses” of “ID 1 ” (see table 109 in FIG. 3)), the converted c is registered in the data storage unit 107 of the tabulation device 10 ( Flow F106).

次に、図7を用いて秘匿演算処理フェーズの秘匿演算依頼(ステップS301)から秘匿演算処理(ステップS303)フローを説明する。   Next, the flow of the secret calculation processing (step S303) from the secret calculation request (step S301) in the secret calculation processing phase will be described with reference to FIG.

利用者端末装置40は、演算範囲を指定して(例えば“ID”の“医療費”と“介護費”の和を知りたいということを示す情報(図3、テーブル109参照))、受付装置20に秘匿演算依頼を送信する(フローF201)。 The user terminal device 40 designates a calculation range (for example, information indicating that the user wants to know the sum of “medical expenses” and “care expenses” of “ID 1 ” (see FIG. 3, table 109)) A secret calculation request is transmitted to the apparatus 20 (flow F201).

利用者端末装置40からの秘匿演算依頼を受信した受付装置20は(フローF202)、前記利用者端末装置40が利用者端末装置初期登録処理(ステップS202)で初期登録されているかなど、秘匿演算システム1を利用できる装置からのアクセスであるかの確認を行う(フローF203)。もし、不正な装置からのアクセスであれば前記秘匿演算依頼は拒否する。もし、正当な装置からのアクセスであれば、ステップS202でデータ記憶部207に保管した前記利用者端末装置40の該当公開鍵を取り出し、前記利用者端末装置40の公開鍵をフローF202で受信した秘匿演算依頼と共に集計装置10に送信する(フローF204)。   The accepting 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 it is an access from an unauthorized device, the confidential calculation request is rejected. If the access is from a legitimate device, the public key of the user terminal device 40 stored in the data storage unit 207 is extracted in step S202, and the public key of the user terminal device 40 is received in flow F202. It transmits to the totalization apparatus 10 with a secret calculation request (flow F204).

受付装置20からの秘匿演算依頼を受信した集計装置10は(フローF205)、フローF201で指定されている演算範囲を基に該当暗号化データをデータ記憶部107から取得する(フローF206)。ここでは、“IDの医療費に対する暗号化データ”を“c”とし、“IDの介護費に対する暗号化データ”を“c”として説明する。 The aggregation device 10 that has received the confidential calculation request from the accepting device 20 (flow F205) acquires the corresponding encrypted data from the data storage unit 107 based on the calculation range specified in the flow F201 (flow F206). Here, “encrypted data for medical expenses with ID 1 ” is assumed to be “c 1 ”, and “encrypted data with respect to nursing expenses for ID 1 ” is assumed to be “c 2 ”.

各該当暗号化データを取得した集計装置10は、鍵記憶部108より集計装置10の秘密鍵uを取り出し、cおよびcを、各々c=c−u mod n、c=c−u mod nに置き換える(フローF207)。 The tally device 10 that has acquired the corresponding encrypted data extracts the secret key u of the tally device 10 from the key storage unit 108, and c 1 and c 2 are c 1 = c 1 −u mod n 2 and c 2 =, respectively. Replace 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, c ′ = (c 1 · c 2 ) mod n 2 is calculated ( If flow F209 1 ) or 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)。 The c 'totaling device 10 calculating the can optionally select s∈Z n, s' seek · s = 1 mod n becomes s', stored in the primary storage instrumentation unit 106 or data storage instrumentation 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 obtains v ′ where v ′ · v = 1 mod n (flow F211). Then, the aggregation device 10 encrypts v ′ with the public key of the corresponding user terminal 40 sent from the reception device 20 in the flow F204 (flow F212).

さらに集計装置10は、フローF209で計算したc’と、フローF210、フローF211で選んだsおよびvより、暗号化演算結果C=(c’)s・v mod nを計算し、フローF212で暗号化したv’と共に受付装置20に送信する(フローF213)。 Further, the tally device 10 calculates an 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. And v ′ encrypted in the above-described manner, is transmitted to the accepting device 20 (flow F213).

最後に、図8を用いて秘匿演算処理フェーズの復号処理(ステップS304〜S307)フローを説明する。   Finally, the flow of the decryption process (steps S304 to S307) in the confidential calculation process 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 receives M = L ((C λ mod n 2 ) / L (g λ mod n 2 )). Mod n is calculated. 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 ′ where 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)。   The accepting device 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 processing data 1 to the counting device 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)。   The counting device 10 that has received C ′ (flow F304), a ′ stored in the key storage unit 108 in flow F012, and s ′ stored in the primary storage unit 106 or the data storage unit 107 in flow F210. Then, C ″ = a ′ · s ′ · C ′ mod n is calculated (flow F304). Then, the aggregation device 10 transmits C ″ as 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 receiving apparatus 20 that has received C ″ (flow F307) extracts t ′ stored in the primary storage unit 206 or the data storage unit 207 in flow F302, and C ′ ″ = t ′ as processing data 3 Calculate C ″ mod n (flow F308).

そして受付装置20は、フローF213で集計装置10から送られてきた該当利用者端末40の公開鍵で暗号化されたv’とフローF304で計算したC’’’(処理データ3)を秘匿演算依頼の要求元である利用者端末40に送信する(フローF309)。   Then, the accepting device 20 performs a secret operation on v ′ encrypted with the public key of the corresponding user terminal 40 sent from the counting device 10 in the flow F213 and C ′ ″ (processing data 3) calculated in the flow F304. The request is transmitted to the user terminal 40 that is the request source (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 processing data 3 (flow F310), first of the user terminal device 40 generated in step S201. The private key is extracted 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, then m ′ = m ′ (flow F314 1 ), and if m ′ ≧ n / 2, m ′ = m′−n (flow F314 2 ).

そして利用者端末装置40は、m’を要求した演算結果として取得する(フローF315)。   Then, the user terminal device 40 acquires m ′ as the calculation result that requested it (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 can be seen from the following that m ′ is the calculated result.
The 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, the calculation of L ((C λ mod n 2 ) / L (g λ mod n 2 )) mod n outputs the value of the exponent part of g.
M = a · (m1 + m2) · s · v mod n
C ′ = a · (m1 + m2) · s · v · t mod n.
And 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,
m ′ is found m ′ = m1 + m2.

上記で説明した構成により、本実施例は、2つの秘密鍵から生成されるシステム公開鍵を用いて暗号化した各データは、クラウド上のサーバ上で暗号化状態のまま演算をさせることが可能である。   With the configuration described above, in this embodiment, each data encrypted using a system public key generated from two secret keys can be operated in an encrypted state on a server on the cloud. It is.

また、前記2つの秘密鍵は別々の装置にて管理させることにより、各装置の結託が無い限り、前記サーバから各データおよび演算結果の秘匿性を保つことができる。   Further, by managing the two secret keys by different devices, it is possible to keep the confidentiality of each data and calculation result from the server as long as there is no collusion of each device.

また、暗号化状態で演算した演算結果の一部(演算をする際に生成される部分情報)を、演算結果を利用する利用者端末装置の公開鍵で更に暗号化させることにより、該当利用者端末装置のみが前記暗号化演算結果を復号することができるようになる。つまり言い換えると、宛先の利用者端末の公開鍵で前記演算結果の一部(演算をする際に生成される部分情報)を暗号化させることにより、同一の復号用の秘密鍵を事前に配布させることなく、複数の利用者端末装置向けに演算結果を安全に提供することができるようになる。   In addition, by further encrypting a part of the operation result calculated in the encrypted state (partial information generated when performing the operation) with the public key of the user terminal device that uses the operation result, the corresponding user Only the terminal device can decrypt the encryption operation result. In other words, the same decryption secret key is distributed in advance by encrypting a part of the calculation result (partial information generated when the calculation is performed) with the public key of the destination user terminal. Thus, the calculation result can be safely provided to a plurality of user terminal devices.

尚、暗号化演算結果を復号する為には、各データを暗号化したシステム公開鍵に対応する2つの秘密鍵および演算結果を利用する利用者端末装置の秘密鍵が必要であり、本発明では装置間の通信を介して処理することで、暗号化演算結果を該当利用者端末が復号できるように加工することで、該当利用者端末装置は暗号化演算結果を復号することができるようになる。   In order to decrypt the encrypted calculation result, two secret keys corresponding to the system public key in which each data is encrypted and the secret key of the user terminal device using the calculation result are necessary. By processing through the communication between the devices, the encrypted user result is processed so that the corresponding user terminal can decrypt it, so that the corresponding 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
DESCRIPTION OF SYMBOLS 1 Secret operation system 10 Counting apparatus 20 Reception apparatus 30 Registration apparatus 40 User terminal device 50 Network 101 Information generation part 102 Encryption processing part 103 Data transmission / reception part 104 Information input part 105 Information output part 106 Primary storage part 107 Data storage part 108 Key Storage unit 109 Table 201 Information generation unit 202 Encryption 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 Encryption 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 (7)

データを暗号化したまま演算する秘匿演算方法であって、
利用者端末装置と演算装置とが備える2つの秘密鍵からシステム公開鍵を生成するシステム公開鍵生成ステップと、
前記システム公開鍵により前記データを暗号化する暗号化ステップと、
前記暗号化されたデータについて、秘匿演算処理を行う演算ステップと、
前記演算ステップによる演算結果を前記利用者端末装置が備える秘密鍵で再暗号化する再暗号化ステップと、
前記再暗号化したデータを前記利用者端末装置に送付する送付ステップと、
前記再暗号化したデータを前記利用者端末装置が備える秘密鍵で復号化することを特徴とする復号化ステップと、
を備えることを特徴とした秘匿演算方法。
A secret calculation method for calculating data with encryption,
A system public key generation step of generating a system public key from two secret keys provided in the user terminal device and the computing device;
An encryption step of encrypting the data with the system public key;
A calculation step for performing a secret calculation process on the encrypted data;
A re-encryption step of re-encrypting the operation result of the operation step with a secret key provided in the user terminal device;
A sending step of sending the re-encrypted data to the user terminal device;
Decrypting the re-encrypted data with a secret key provided in the user terminal device; and
A secret calculation method comprising:
請求項1に記載の秘匿演算方法において、
前記再暗号化ステップは、前記演算結果の一部を別の公開鍵で暗号化することを特徴とする秘匿演算方法。
The secret calculation method according to claim 1,
In the re-encryption step, a part of the calculation result is encrypted with another public key.
請求項2に記載の秘匿演算方法において、
前記復号化ステップは、前記システム公開鍵の生成に用いた前記2つの秘密鍵および、演算結果の一部を更に暗号化した公開鍵に対応する秘密鍵を、前記利用者端末装置及び前記演算装置間の通信を介して復号処理することを特徴とする秘匿演算方法。
The secret calculation method according to claim 2,
In the decryption step, the two secret keys used for generating the system public key and a secret key corresponding to a public key obtained by further encrypting a part of the calculation result are obtained as the user terminal device and the calculation device. A secret calculation method, wherein decryption processing is performed via communication between the two.
データを暗号化したまま演算する演算装置であって、
2つの秘密鍵から生成されたシステム公開鍵によって暗号化されたデータを格納する記憶部と、
前記データについて、秘匿演算処理を行う演算部と、
前記演算部による演算結果を利用者端末装置が備える秘密鍵で再暗号化する暗号処理部と、
前記再暗号化したデータを前記利用者端末装置に送付する送信部と、
を備えることを特徴とする演算装置。
An arithmetic device that operates while encrypting data,
A storage unit for storing data encrypted by a system public key generated from two private keys;
For the data, a calculation unit that performs a secret calculation process;
An encryption processing unit for re-encrypting a calculation result by the calculation unit with a secret key included in the user terminal device;
A transmission unit for sending the re-encrypted data to the user terminal device;
An arithmetic device comprising:
請求項4に記載の演算装置において、
前記2つの秘密鍵は、前記利用者端末装置と当該演算装置とが備える秘密鍵であることを特徴とする演算装置。
The arithmetic unit according to claim 4,
The arithmetic device characterized in that the two secret keys are secret keys included in the user terminal device and the arithmetic device.
請求項5に記載の演算装置において、
前記暗号処理部は、前記演算結果の一部を別の公開鍵で暗号化することを特徴とする演算装置。
The arithmetic unit according to claim 5,
The cryptographic processing unit encrypts a part of the calculation result with another public key.
請求項5に記載の演算装置と前記利用端末装置と、を備えることを特徴とする秘匿演算システム。   A secret computation system comprising: the computation device according to claim 5; and the user terminal device.
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 true JP2018025587A (en) 2018-02-15
JP6693834B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11488710B2 (en) * 2017-11-17 2022-11-01 Roche Diabetes Care, Inc. Method for controlling operation of a medical device in a medical system and medical system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132095A (en) * 1998-03-26 2000-05-12 Nippon Telegr & Teleph Corp <Ntt> Encryption method, decryption method, authentication method, encryption apparatus, decryption apparatus, authentication apparatus, authentication text transmitter apparatus, encryption text receiver apparatus, cipher communication system and authentication system
JP2006352316A (en) * 2005-06-14 2006-12-28 Nec Software Hokuriku Ltd Privacy protection encryption method, privacy protection encryption system, and privacy protection encryption program
US20070140479A1 (en) * 2005-12-19 2007-06-21 Microsoft Corporation Privacy-preserving data aggregation using homomorphic encryption
WO2012169153A1 (en) * 2011-06-10 2012-12-13 日本電気株式会社 Encrypted statistical processing system, device, method, and program
JP2015184490A (en) * 2014-03-24 2015-10-22 富士通株式会社 Encryption device, encryption method, information processor, and encryption system
US20160105402A1 (en) * 2014-07-22 2016-04-14 Harsh Kupwade-Patil Homomorphic encryption in a healthcare network environment, system and methods

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132095A (en) * 1998-03-26 2000-05-12 Nippon Telegr & Teleph Corp <Ntt> Encryption method, decryption method, authentication method, encryption apparatus, decryption apparatus, authentication apparatus, authentication text transmitter apparatus, encryption text receiver apparatus, cipher communication system and authentication system
JP2006352316A (en) * 2005-06-14 2006-12-28 Nec Software Hokuriku Ltd Privacy protection encryption method, privacy protection encryption system, and privacy protection encryption program
US20070140479A1 (en) * 2005-12-19 2007-06-21 Microsoft Corporation Privacy-preserving data aggregation using homomorphic encryption
WO2012169153A1 (en) * 2011-06-10 2012-12-13 日本電気株式会社 Encrypted statistical processing system, device, method, and program
JP2015184490A (en) * 2014-03-24 2015-10-22 富士通株式会社 Encryption device, encryption method, information processor, and encryption system
US20160105402A1 (en) * 2014-07-22 2016-04-14 Harsh Kupwade-Patil Homomorphic encryption in a healthcare network environment, system and methods

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11488710B2 (en) * 2017-11-17 2022-11-01 Roche Diabetes Care, Inc. Method for controlling operation of a medical device in a medical system and medical system

Also Published As

Publication number Publication date
JP6693834B2 (en) 2020-05-13

Similar Documents

Publication Publication Date Title
KR101866935B1 (en) Systems and methods for faster public key encryption using the associated private key portion
Fang et al. Privacy protection for medical data sharing in smart healthcare
CN113162752B (en) Data processing method and device based on hybrid homomorphic encryption
US11075753B2 (en) System and method for cryptographic key fragments management
JP6049914B2 (en) Cryptographic system, key generation device, and re-encryption device
US11431489B2 (en) Encryption processing system and encryption processing method
JP6270683B2 (en) Encryption system, encryption method, universal re-encryption key generation device, and re-encryption key generation device
Rao et al. A hybrid elliptic curve cryptography (HECC) technique for fast encryption of data for public cloud security
WO2023241142A1 (en) Data processing method and apparatus, storage medium, and electronic device
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
JP6693834B2 (en) Concealment calculation technology and method
KR102284877B1 (en) Efficient functional encryption for set intersection
JP7325689B2 (en) Ciphertext conversion system, conversion key generation method, and conversion key generation program
KR101240247B1 (en) Proxy re-encryption Method using two secret key, Method for decrypting of Proxy re-encryption message
JP2018151620A (en) Method and system for privacy protection order statistic collection in star network
Yasmin et al. Decentralized Entrance Power with Secret Endorsement of Data Stored in Clouds
JP6320943B2 (en) Key sharing device, key sharing system, key sharing method, and program
CN114788221A (en) Wrapping key with access control predicates
Devassy Research Project Questions
JP6949276B2 (en) Re-encrypting device, re-encrypting method, re-encrypting program and cryptosystem
Jahan et al. Securely distributing files in cloud environment by dispensing asymmetric key management system applying hashing
Reddy et al. Data Storage on Cloud using Split-Merge and Hybrid Cryptographic Techniques
Jasim et al. Cloud Computing Cryptography" State-of-the-Art"
Singh et al. Security of Data with 3DES & Watermarking Algorithm

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 Request for written amendment filed

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