JP2011175072A - Secure-computation system, secure-computation method, and method for preventing unauthorized use - Google Patents

Secure-computation system, secure-computation method, and method for preventing unauthorized use Download PDF

Info

Publication number
JP2011175072A
JP2011175072A JP2010038663A JP2010038663A JP2011175072A JP 2011175072 A JP2011175072 A JP 2011175072A JP 2010038663 A JP2010038663 A JP 2010038663A JP 2010038663 A JP2010038663 A JP 2010038663A JP 2011175072 A JP2011175072 A JP 2011175072A
Authority
JP
Japan
Prior art keywords
data
unit
secret
ciphertext
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.)
Granted
Application number
JP2010038663A
Other languages
Japanese (ja)
Other versions
JP5337076B2 (en
Inventor
Koji Senda
浩司 千田
Katsumi Takahashi
克巳 高橋
Kensuke Shibata
賢介 柴田
Masaru Igarashi
大 五十嵐
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2010038663A priority Critical patent/JP5337076B2/en
Publication of JP2011175072A publication Critical patent/JP2011175072A/en
Application granted granted Critical
Publication of JP5337076B2 publication Critical patent/JP5337076B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a security system which reduces the risk of information leakage when in use. <P>SOLUTION: A first secure-computation system uses a garbled circuit GC<SB>E</SB>to provide a data-use device with only output C<SB>E</SB>(d<SB>m</SB>) obtained when data d<SB>m</SB>are input to a logical circuit C<SB>E</SB>corresponding to a use method E, without providing the data-use device with the data d<SB>m</SB>. After a second secure-computation system transmits data d to a secure-computation device from the data-use device, only indexes m to the data d are recorded in the data-use device, and the data d do not remain in the data-use device. Then, the second secure-computation system uses the garbled circuit GC<SB>E</SB>to obtain only output C<SB>E</SB>(d) when the data d are input to the logical circuit C<SB>E</SB>corresponding to the use method E, without providing the data-use device with the data d. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は情報漏洩を防止するための秘密計算システム、秘密計算方法、および情報の不正利用防止方法に関する。   The present invention relates to a secret calculation system, a secret calculation method, and an information fraud prevention method for preventing information leakage.

情報漏洩を防ぐ方法として、データ保管時の暗号化や秘密分散といった手法が従来技術として知られている。また、秘密計算の方法として、非特許文献1の方法などがある。   As methods for preventing information leakage, methods such as encryption and secret sharing during data storage are known as conventional techniques. Further, as a method of secret calculation, there is a method of Non-Patent Document 1.

Koji Chida and Katsumi Takahashi: Privacy Preserving Computations without Public Key Cryptographic Operation, Proc. of IWSEC 2008, pp.184-200.Koji Chida and Katsumi Takahashi: Privacy Preserving Computations without Public Key Cryptographic Operation, Proc. Of IWSEC 2008, pp.184-200.

しかしながら、保管データを利用する際は通常データを復元するため、情報漏洩のリスクが高まる。本発明の目的は、利用時の情報漏洩のリスクを抑えたセキュリティーシステムを提供することである。   However, since the normal data is restored when using the stored data, the risk of information leakage increases. An object of the present invention is to provide a security system that suppresses the risk of information leakage during use.

本発明の第1の秘密計算システムは、M個のデータ提供装置、データ利用装置、秘密計算装置からなり、データd(ただし、dはNビット以下)を利用方法Eに対応する論理回路Cに入力したときの出力C(d)(ただし、C(d)はQビット以下)を求める秘密計算システムである。まず、Mを1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとする。m番目のデータ提供装置は、データ提供記録部、データ提供鍵取得部、データ提供乱数生成部、データ提供第1暗号化部、データ提供第2暗号化部、データ提供送信部を備える。データ利用装置は、データ利用鍵生成部、データ利用受信部、データ利用記録部、データ利用送信部、データ利用復号部、データ利用実行部を備える。秘密計算装置は、秘密計算鍵生成部、秘密計算受信部、秘密計算復号部、論理回路生成部、garbled circuit生成部、秘密計算送信部を備える。 The first secret calculation system of the present invention comprises M data providing devices, data using devices, and secret calculating devices, and a logic circuit corresponding to a method of using data d m (where d m is N bits or less). output C E when the input to the C E (d m) (However, C E (d m) is Q bits or less) secure computing system seeking. First, M is an integer of 1 or more, m is an integer of 1 to M, N is an integer of 1 or more, n is an integer of 1 to N, Q is an integer of 1 or more, q is an integer of 1 to Q, dm [n] is lower n-th bit data d m, C E (d m ) [q] is a lower q-th bit of C E (d m). The m-th data providing apparatus includes a data provision recording unit, a data provision key acquisition unit, a data provision random number generation unit, a data provision first encryption unit, a data provision second encryption unit, and a data provision transmission unit. The data utilization device includes a data utilization key generation unit, a data utilization reception unit, a data utilization recording unit, a data utilization transmission unit, a data utilization decryption unit, and a data utilization execution unit. The secret calculation device includes a secret calculation key generation unit, a secret calculation reception unit, a secret calculation decryption unit, a logic circuit generation unit, a garbled circuit generation unit, and a secret calculation transmission unit.

データ提供記録部は、Nビット以下のデータdを記録する。データ提供鍵取得部は、データ利用装置の公開鍵pkと秘密計算装置の公開鍵pkを取得する。データ提供乱数生成部は、2N個の乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を生成する。データ提供第1暗号化部は、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を、公開鍵pkを用いて暗号化し、暗号文CA,mとする。データ提供第2暗号化部は、rm,1,dm[1],…,rm,N,dm[N]を、データ利用装置の公開鍵で暗号化し、暗号文CB,mとする。データ提供送信部は、暗号文CA,mと暗号文CB,mを、データ利用装置に送信する。データ利用鍵生成部は、秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する。データ利用受信部は、暗号文CA,mと暗号文CB,m、およびgarbled circuit GCを受信する。データ利用記録部は、暗号文CA,mと暗号文CB,mを記録する。データ利用送信部は、データdの利用方法Eと暗号文CA,mとを秘密計算装置に送信する。なお、利用方法Eは1つのデータdの利用方法でなく、複数のデータの利用方法でもよい。この場合は、利用送信部は、複数のデータの利用方法Eと利用対象のデータに対応する複数の暗号文CA,mとを秘密計算装置に送信する。“データdの利用方法E”とは、複数のデータの利用方法も含んでおり、“暗号文CA,mとを秘密計算装置に送信する”とは、1つ以上の暗号文CA,mを秘密計算装置に送信する意味である。データ利用復号部は、秘密鍵skを用いて暗号文CB,mを復号し、rm,1,dm[1],…,rm,N,dm[N]を得る。なお、複数のデータを利用する場合は、複数の暗号文CB,mを復号する。データ利用実行部はrm,1,dm[1],…,rm,N,dm[N]とgarbled circuit GCを用いてC(d)[1],…,C(d)[Q]を求める。なお、複数のデータを利用するときは、データの数に応じた乱数とgarbled circuit GCを用いてC(dm1,…,dmx)を求める。ただし、xはデータの数とする。秘密計算鍵生成部は、秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する。秘密計算受信部は、利用方法Eと暗号文CA,mとを受信する。なお、利用方法Eとは、データdを用いて行う演算などの処理を意味する。秘密計算復号部は、秘密鍵skを用いて暗号文CA,mを復号し、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を得る。なお、複数の暗号文CA,mを復号したときには、乱数の数が2Nの複数倍となる。利用するデータが複数ある場合には、乱数の数は利用するデータの数に応じて決めればよい。つまり、秘密計算復号部は、少なくとも1つの暗号文CA,mを復号し、少なくとも乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を得る。論理回路生成部は、利用方法Eの論理回路Cを生成する。garbled circuit生成部は、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を用いて、rm,n,dm[n]が入力されたときにC(d)[q]を出力するgarbled circuit GCを生成する。なお、複数のデータを利用するときは、データの数に応じた乱数を用いて、garbled circuit GCを生成する。つまり、garbled circuit生成部は、少なくとも乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を用いて、garbled circuit GCを生成する。秘密計算送信部は、garbled circuit GCをデータ利用装置に送信する。 Data providing recording unit records the following data d m N bits. The data providing key acquisition unit acquires the public key pk u of the data using device and the public key pk s of the secret computing device. The data provision random number generation unit generates 2N random numbers (rm , 1, 0 , rm , 1, 1 ), ..., (rm , N, 0 , rm , N, 1 ). Data provided first encryption unit, the random number (r m, 1,0, r m , 1,1), ..., the (r m, N, 0, r m, N, 1) and the public key pk s And cipher text C A, m . The data providing second encryption unit encrypts rm , 1, dm [1] ,..., Rm , N, dm [N] with the public key of the data utilization device to obtain ciphertext CB , m . . The data provision transmitting unit transmits the ciphertext C A, m and the ciphertext C B, m to the data using device. Data using key generation unit, a secret key sk u, to generate a public key pk u, to publish the public key pk u. The data use receiving unit receives the ciphertext C A, m , the ciphertext C B, m , and the garbled circuit GC E. The data use recording unit records the ciphertext C A, m and the ciphertext C B, m . Data available transmission section transmits usage E ciphertext C A data d m, and m in the secure computing apparatus. Incidentally, usage E is not how to use one data d m, it may be usage of a plurality of data. In this case, the usage transmitter transmits a plurality of data usage methods E and a plurality of ciphertexts CA , m corresponding to the data to be used to the secret computing device. The "data d m usage E for", also includes usage of the plurality of data, the "ciphertext C A, and m is transmitted to the secure computing apparatus", one or more ciphertext C A , M to the secret computing device. The data use decryption unit decrypts the ciphertext C B, m using the secret key sk u to obtain rm , 1, dm [1] , ..., rm , N, dm [N] . When a plurality of data is used, a plurality of ciphertexts C B, m are decrypted. Data available execution unit r m, 1, dm [1 ], ..., r m, N, dm [N] and C E with garbled circuit GC E (d m) [1], ..., C E (d m ) Find [Q]. When using a plurality of data, C E (d m1 ,..., D mx ) is obtained using a random number corresponding to the number of data and the garbled circuit GC E. Here, x is the number of data. Secret calculation key generating unit, a secret key sk s, and generates a public key pk s, to publish the public key pk s. The secret calculation receiving unit receives the usage method E and the ciphertext CA , m . Note that the usage E, refers to a process such as operation performed using the data d m. The secret calculation decryption unit decrypts the ciphertext C A, m using the secret key sk s and generates random numbers (r m, 1,0 , r m, 1,1 ), ..., (r m, N, 0 , rm , N, 1 ). When a plurality of ciphertexts CA , m are decrypted, the number of random numbers becomes a multiple of 2N. When there are a plurality of data to be used, the number of random numbers may be determined according to the number of data to be used. That is, the secret calculation decryption unit decrypts at least one ciphertext C A, m , and at least random numbers (r m, 1,0 , r m, 1,1 ), ..., (r m, N, 0 , r m, N, 1 ). Logic circuit generating unit generates the logic circuit C E of usage E. The garbled circuit generation unit uses rm , n, dm using random numbers (rm , 1, 0 , rm , 1, 1 ), ..., (rm , N, 0 , rm , N, 1 ). A garbled circuit GC E is generated that outputs C E (d m ) [q] when [n] is input. When using a plurality of data, a garbled circuit GC E is generated using random numbers corresponding to the number of data. That is, the garbled circuit generator uses at least random numbers (rm , 1, 0 , rm , 1, 1 ), ..., (rm , N, 0 , rm , N, 1 ) to create a garbled circuit GC. E is generated. The secret calculation transmission unit transmits the garbled circuit GC E to the data using device.

本発明の第2の秘密計算システムは、データ利用装置と秘密計算装置からなり、データd(ただし、dはNビット以下)を利用方法Eに対応する論理回路Cに入力したときの出力C(d)(ただし、C(d)はQビット以下)を求める秘密計算システムである。まず、Nを1以上の整数、nを1以上N以下の整数、d[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとする。データ利用装置は、データ提供記録部、データ提供鍵取得部、データ提供乱数生成部、インデックス作成部、データ提供第1暗号化部、データ提供送信部、データ利用記録部、情報破棄部、データ利用送信部、データ利用受信部、データ利用実行部を備える。秘密計算装置は、秘密計算鍵生成部、秘密計算受信部、秘密計算復号部、秘密計算記録部、論理回路生成部、garbled circuit生成部、秘密計算送信部を備える。 The second secret computation system of the present invention comprises a data utilization device and a secret computation device, and outputs data C when data d (where d is N bits or less) is input to the logic circuit CE corresponding to the utilization method E. This is a secret calculation system for obtaining E (d) (where C E (d) is Q bits or less). First, N is an integer greater than or equal to 1, n is an integer greater than or equal to 1 and less than or equal to N, d [n] is the lower nth bit of data d, and C E (d) [q] is the lower qth of C E (d) Bit. The data utilization device includes a data provision recording unit, a data provision key acquisition unit, a data provision random number generation unit, an index creation unit, a data provision first encryption unit, a data provision transmission unit, a data provision recording unit, an information discard unit, a data utilization unit A transmission unit, a data use reception unit, and a data use execution unit are provided. The secret calculation device includes a secret calculation key generation unit, a secret calculation reception unit, a secret calculation decryption unit, a secret calculation recording unit, a logic circuit generation unit, a garbled circuit generation unit, and a secret calculation transmission unit.

データ提供記録部は、Nビット以下のデータdを記録する。データ提供鍵取得部は、秘密計算装置の公開鍵pkを取得する。データ提供乱数生成部は、2N個の乱数(r1,0,r1,1),…,(rN,0,rN,1)を生成する。インデックス作成部は、データdを示すインデックスmを作成する。データ提供第1暗号化部は、乱数(r1,0,r1,1),…,(rN,0,rN,1)を、公開鍵pkを用いて暗号化し、暗号文Cとする。データ提供送信部は、暗号文Cとインデックスmを秘密計算装置に送信する。データ利用記録部は、インデックスmとr1,d[1],…,rN,d[N]を記録する。情報破棄部は、データdと乱数(r1,0,r1,1),…,(rN,0,rN,1)を破棄する。データ利用送信部は、データdの利用方法Eとインデックスmとを秘密計算装置に送信する。データ利用受信部は、garbled circuit GCを受信する。データ利用実行部は、r1,d[1],…,rN,d[N]とgarbled circuit GCを用いてC(d)[1],…,C(d)[Q]を求める。秘密計算鍵生成部は、秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する。秘密計算受信部は、暗号文Cとインデックスm、または利用方法Eとインデックスmとを受信する。秘密計算復号部は、秘密鍵skを用いてインデックスmに対応する暗号文Cを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1)を得る。秘密計算記録部は、乱数(r1,0,r1,1),…,(rN,0,rN,1)または暗号文Cを、インデックスmと対応付けて記録する。論理回路生成部は、利用方法Eの論理回路Cを生成する。garbled circuit生成部は、乱数(r1,0,r1,1),…,(rN,0,rN,1)を用いて、rn,d[n]が入力されたときにC(d)[q]を出力するgarbled circuit GCを生成する。秘密計算送信部は、garbled circuit GCをデータ利用装置に送信する。 The data provision recording unit records data d of N bits or less. The data providing key acquisition unit acquires the public key pk s of the secret computing device. The data provision random number generation unit generates 2N random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ). The index creation unit creates an index m indicating the data d. The data providing first encryption unit encrypts the random number (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) using the public key pk s , and the ciphertext C A. Data providing transmission unit transmits the ciphertext C A and index m to secure computing apparatus. The data use recording unit records the index m and r1 , d [1] , ..., rN , d [N] . The information discarding unit discards the data d and random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ). The data utilization transmitting unit transmits the utilization method E of the data d and the index m to the secret computing device. The data utilization receiving unit receives the garbled circuit GC E. Data available execution unit, r 1, d [1] , ..., r N, using d [N] and garbled circuit GC E C E (d ) [1], ..., C E (d) [Q] Ask for. Secret calculation key generating unit, a secret key sk s, and generates a public key pk s, to publish the public key pk s. Secure computing receiver receives the ciphertext C A and index m or the usage E, and the index m. Secure computing decoding unit decodes the ciphertext C A corresponding to the index m with a secret key sk s, a random number (r 1,0, r 1,1), ..., (r N, 0, r N, 1 ) is obtained. The secret calculation recording unit records a random number (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) or ciphertext C A in association with the index m. Logic circuit generating unit generates the logic circuit C E of usage E. The garbled circuit generation unit uses a random number (r 1,0 , r 1,1 ),..., (r N, 0 , r N, 1 ) to input C n when d n, d [n] is input. E (d) A garbled circuit GC E that outputs [q] is generated. The secret calculation transmission unit transmits the garbled circuit GC E to the data using device.

なお、どちらの秘密計算システムも、以下のようにシステムの一部を変更することで、データの利用方法を制限できる。まず、データ提供記録部が利用条件Lも記録しておく。データ提供第1暗号化部が、乱数(r1,0,r1,1),…,(rN,0,rN,1),利用条件Lを、公開鍵pkを用いて暗号化し、暗号文Cとする。そして、秘密計算復号部は、暗号文Cを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1),利用条件Lを得る。また、秘密計算装置には、利用条件確認部も備えておき、利用方法Eが利用条件Lを満たしているかを確認する。 In both secret calculation systems, the data usage method can be limited by changing a part of the system as follows. First, the data provision recording unit also records the usage conditions L. The data providing first encryption unit encrypts the random number (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) and the use condition L using the public key pk s. , And ciphertext C A. Then, the secret calculation decryption unit decrypts the ciphertext C A to obtain a random number (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) and a use condition L. Further, the secret computing device is also provided with a use condition confirmation unit, and confirms whether the use method E satisfies the use condition L.

本発明の第1の秘密計算システムによれば、データ利用装置にデータdを知らせることなく、データdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)のみをデータ利用装置に与えることができる。また、本発明の第2の秘密計算システムによれば、データ利用装置からデータdを秘密計算装置に渡した後は、データdに対するインデックスmのみがデータ利用装置に記録され、データd自体はデータ利用装置には残らない。そして、データ利用装置はデータdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)のみを得ることができる。したがって、データを利用するときにデータ利用装置から情報が漏洩するリスクがない。 According to a first secure computing system of the present invention, without informing the data d m to the data utilizing apparatus, the output C E (d m when the input to the logic circuit C E corresponding data d m in usage E ) Only to the data utilization device. According to the second secret calculation system of the present invention, after the data d is transferred from the data use device to the secret calculation device, only the index m for the data d is recorded in the data use device, and the data d itself is the data It does not remain in the use device. The data utilization apparatus can obtain only the output C E (d) when the data d is input to the logic circuit CE corresponding to the utilization method E. Therefore, there is no risk of information leaking from the data use device when using data.

さらに、利用条件も含めたシステムの場合、データ利用装置からの利用方法を制限できるので、データの不正使用を防ぐこともできる。   Furthermore, in the case of a system including usage conditions, the usage method from the data usage device can be restricted, so that unauthorized use of data can be prevented.

実施例1の秘密計算システムの機能構成例を示す図。FIG. 3 is a diagram illustrating a functional configuration example of a secret calculation system according to the first embodiment. 実施例1の秘密計算システムの処理フローを示す図。The figure which shows the processing flow of the secret calculation system of Example 1. FIG. 実施例2と実施例2変形例の秘密計算システムの機能構成例を示す図。The figure which shows the function structural example of the secret calculation system of Example 2 and Example 2 modification. 実施例2の秘密計算システムの処理フローを示す図。The figure which shows the processing flow of the secret calculation system of Example 2. FIG. 実施例2変形例の秘密計算システムの処理フローを示す図。The figure which shows the processing flow of the secret calculation system of Example 2 modification. 実施例3の秘密計算システムの機能構成例を示す図。FIG. 10 is a diagram illustrating a functional configuration example of a secret calculation system according to a third embodiment. 実施例3の秘密計算システムの処理フローを示す図。The figure which shows the processing flow of the secret calculation system of Example 3. 実施例4と実施例4変形例の秘密計算システムの機能構成例を示す図。The figure which shows the function structural example of the secret calculation system of Example 4 and Example 4 modification. 実施例4の秘密計算システムの処理フローを示す図。The figure which shows the processing flow of the secret calculation system of Example 4. 実施例4変形例の秘密計算システムの処理フローを示す図。The figure which shows the processing flow of the secret calculation system of Example 4 modification.

以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。   Hereinafter, embodiments of the present invention will be described in detail. In addition, the same number is attached | subjected to the structure part which has the same function, and duplication description is abbreviate | omitted.

図1に実施例1の秘密計算システムの機能構成例を、図2に実施例1の秘密計算システムの処理フローを示す。実施例1の秘密計算システムは、M個のデータ提供装置100,…,100、データ利用装置200、秘密計算装置300からなり、データd(ただし、dはNビット以下)を利用方法Eに対応する論理回路Cに入力したときの出力C(d)(ただし、C(d)はQビット以下)を求める。ここで、Mを1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとする。なお、Q=N,q=nとしてもよい。 FIG. 1 shows a functional configuration example of the secret calculation system of the first embodiment, and FIG. 2 shows a processing flow of the secret calculation system of the first embodiment. The secret calculation system according to the first embodiment includes M data providing devices 100 1 ,..., 100 M , a data using device 200, and a secret calculating device 300, and uses data d m (where d m is N bits or less). An output C E (d m ) (where C E (d m ) is equal to or less than Q bits) when input to the logic circuit C E corresponding to the method E is obtained. Here, M is an integer of 1 or more, m is an integer of 1 to M, N is an integer of 1 or more, n is an integer of 1 to N, Q is an integer of 1 or more, q is an integer of 1 to Q , dm [n] is lower n-th bit data d m, C E (d m ) [q] is a lower q-th bit of C E (d m). In addition, it is good also as Q = N and q = n.

m番目のデータ提供装置100は、データ提供鍵取得部110、データ提供乱数生成部120、データ提供第1暗号化部130、データ提供第2暗号化部140、データ提供送信部150、データ提供記録部190を備える。データ利用装置200は、データ利用鍵生成部210、データ利用受信部220、データ利用送信部230、データ利用復号部240、データ利用実行部250、データ利用記録部290を備える。秘密計算装置300は、秘密計算鍵生成部310、秘密計算受信部320、秘密計算復号部330、論理回路生成部340、garbled circuit生成部350、秘密計算送信部360、秘密計算記録部390を備える。 The m-th data providing apparatus 100 m includes a data provision key acquisition unit 110 m , a data provision random number generation unit 120 m , a data provision first encryption unit 130 m , a data provision second encryption unit 140 m , and a data provision transmission unit. 150 m and a data provision recording unit 190 m . The data utilization device 200 includes a data utilization key generation unit 210, a data utilization reception unit 220, a data utilization transmission unit 230, a data utilization decryption unit 240, a data utilization execution unit 250, and a data utilization recording unit 290. The secret calculation device 300 includes a secret calculation key generation unit 310, a secret calculation reception unit 320, a secret calculation decryption unit 330, a logic circuit generation unit 340, a garbled circuit generation unit 350, a secret calculation transmission unit 360, and a secret calculation recording unit 390. .

データ提供装置100のデータ提供記録部190は、Nビット以下のデータdをあらかじめ記録しておく。データ利用装置200のデータ利用鍵生成部210は、秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する(S210)。秘密計算鍵生成部310は、秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する(S310)。そして、データ提供装置100のデータ提供鍵取得部110は、データ利用装置200の公開鍵pkと秘密計算装置300の公開鍵pkを取得する(S110)。 Data Data provide recording section 190 m of the providing apparatus 100 m is previously recorded data d m of the following N bits. Data utilization key generating unit 210 of the data utilizing apparatus 200, the secret key sk u, and generates a public key pk u, publishes the public key pk u (S210). Secret calculation key generating unit 310, a secret key sk s, and generates a public key pk s, to publish the public key pk s (S310). Then, the data providing key acquisition unit 110 m of the data providing apparatus 100 m acquires the public key pk u of the data using apparatus 200 and the public key pk s of the secret computing apparatus 300 (S110 m ).

データ提供乱数生成部120は、2N個の乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を生成する(S120)。データ提供第1暗号化部130は、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を、公開鍵pkを用いて暗号化し、暗号文CA,mとする(S130)。データ提供第2暗号化部140は、rm,1,dm[1],…,rm,N,dm[N]を、データ利用装置の公開鍵で暗号化し、暗号文CB,mとする(140)。データ提供送信部150は、暗号文CA,mと暗号文CB,mを、データ利用装置200に送信する(S150)。データ利用装置200のデータ利用受信部220は、暗号文CA,mと暗号文CB,mを受信し、データ利用記録部290に暗号文CA,mと暗号文CB,mを記録する(S221)。データ利用送信部230は、データdの利用方法Eと暗号文CA,mとを秘密計算装置300に送信する(S230)。なお、利用方法Eは1つのデータdの利用方法でなく、複数のデータの利用方法でもよい。この場合は、利用送信部は、複数のデータの利用方法Eと利用対象のデータに対応する複数の暗号文CA,mとを秘密計算装置に送信する。秘密計算装置300の秘密計算受信部320は、利用方法Eと暗号文CA,mとを受信し、秘密計算記録部390に記録する(S320)。なお、利用方法Eとは、データdを用いて行う演算などの処理を意味する。 The data provision random number generation unit 120 m generates 2N random numbers (r m, 1,0 , r m, 1,1 ),... (R m, N, 0 , r m, N, 1 ) ( S120 m ). The data providing first encryption unit 130 m uses a random number (r m, 1,0 , r m, 1,1 ),..., (R m, N, 0 , r m, N, 1 ) as a public key pk. Encrypt using s to obtain ciphertext C A, m (S130 m ). The data providing second encryption unit 140 m encrypts rm , 1, dm [1] ,..., Rm , N, dm [N] with the public key of the data using device, and the ciphertext C B, m (140 m ). The data provision transmission unit 150 m transmits the ciphertext C A, m and the ciphertext C B, m to the data utilization device 200 (S150 m ). Data use receiving unit 220 of the data utilizing apparatus 200 receives the ciphertext C A, m ciphertext C B, a m, encryption to the data utilizing the recording unit 290 sentence C A, m ciphertext C B, the m recording (S221). Data utilizing transmission unit 230 transmits usage E ciphertext C A data d m, and m in the secure computing apparatus 300 (S230). Incidentally, usage E is not how to use one data d m, it may be usage of a plurality of data. In this case, the usage transmitter transmits a plurality of data usage methods E and a plurality of ciphertexts CA , m corresponding to the data to be used to the secret computing device. The secret calculation receiving unit 320 of the secret calculation device 300 receives the usage method E and the ciphertext CA , m, and records them in the secret calculation recording unit 390 (S320). Note that the usage E, refers to a process such as operation performed using the data d m.

秘密計算復号部330は、秘密鍵skを用いて暗号文CA,mを復号し、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を得る(S330)。なお、複数の暗号文CA,mを復号したときには、乱数の数が2Nの複数倍となる。以下の説明でも、乱数の数は2Nとして説明するが、利用するデータが複数ある場合には、乱数の数は利用するデータの数に応じて決めればよい。論理回路生成部340は、利用方法Eの論理回路Cを生成する(S340)。garbled circuit生成部350は、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を用いて、rm,n,dm[n]が入力されたときにC(d)[q]を出力するgarbled circuit GCを生成する(S350)。なお、複数のデータを利用するときは、データの数に応じた乱数を用いて、garbled circuit GCを生成する。また、garbled circuit GCを生成する方法については、非特許文献1(3.2 Protocol II、および 2 Previous WorkのYao’s Two Party Secure Function Evaluation)に詳しく説明されている。 The secret calculation decryption unit 330 decrypts the ciphertext C A, m using the secret key sk s and generates a random number (r m, 1,0 , r m, 1,1 ), ..., (r m, N, 0 , Rm , N, 1 ) is obtained (S330). When a plurality of ciphertexts CA , m are decrypted, the number of random numbers becomes a multiple of 2N. In the following description, the number of random numbers will be described as 2N. However, when there are a plurality of data to be used, the number of random numbers may be determined according to the number of data to be used. Logic circuit generating unit 340 generates a logic circuit C E of usage E (S340). The garbled circuit generation unit 350 uses the random numbers (rm , 1, 0 , rm , 1, 1 ), ..., (rm , N, 0 , rm , N, 1 ) to generate rm , n, A garbled circuit GC E that outputs C E (d m ) [q] when dm [n] is input is generated (S350). When using a plurality of data, a garbled circuit GC E is generated using random numbers corresponding to the number of data. Further, a method for generating a garbled circuit GC E is described in detail in Non-Patent Document 1 (3.2 Protocol II and 2 Previous Work Yao's Two Party Secure Function Evaluation).

秘密計算送信部360は、garbled circuit GCをデータ利用装置に送信する(S360)。データ利用装置200のデータ利用受信部220は、garbled circuit GCを受信する(S222)。データ利用復号部240は、秘密鍵skを用いて暗号文CB,mを復号し、rm,1,dm[1],…,rm,N,dm[N]を得る(S240)。なお、複数のデータを利用する場合は、複数の暗号文CB,mを復号する。データ利用実行部250はrm,1,dm[1],…,rm,N,dm[N]とgarbled circuit GCを用いてC(d)[1],…,C(d)[Q]を求める(S250)。なお、複数のデータを利用するときは、データの数に応じた乱数とgarbled circuit GCを用いてC(dm1,…,dmx)を求める。ただし、xはデータの数とする。したがって、データ利用装置200はC(d)を得ることができる。 The secret calculation transmission unit 360 transmits the garbled circuit GC E to the data using device (S360). The data utilization receiving unit 220 of the data utilization apparatus 200 receives the garbled circuit GC E (S222). The data use decryption unit 240 decrypts the ciphertext C B, m using the secret key sk u to obtain rm , 1, dm [1] , ..., rm , N, dm [N] (S240). . When a plurality of data is used, a plurality of ciphertexts C B, m are decrypted. Data available execution unit 250 r m, 1, dm [1 ], ..., r m, N, dm C E (d m) using the [N] and garbled circuit GC E [1], ..., C E ( d m ) [Q] is obtained (S250). When using a plurality of data, C E (d m1 ,..., D mx ) is obtained using a random number corresponding to the number of data and the garbled circuit GC E. Here, x is the number of data. Therefore, the data utilization device 200 can obtain C E (d m ).

このように、本実施例の秘密計算システムによれば、データ利用装置にデータdを知らせることなく、データdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)のみをデータ利用装置に与えることができる。したがって、データを利用するときにデータ利用装置から情報が漏洩するリスクがない。 Thus, according to the secure computing system according to the present embodiment, without informing the data d m to the data utilizing apparatus, the data d m the usage logic circuit C E output C when the input to E corresponding to E ( Only d m ) can be given to the data utilization device. Therefore, there is no risk of information leaking from the data use device when using data.

[変形例]
実施例1では、非特許文献1に記載されているgarbled circuitを用いることを前提に説明した。しかし、非特許文献1のgarbled circuitの考え方をより一般的にしてもよい。たとえば、2つの断片的な情報を断片Z、Zとし、2つの断片Z、Zの両方が分かった場合にデータdが復元できるとする。このような断片Z、Zを用意すれば、非特許文献1のgarbled circuitに限定する必要はない。断片Zは実施例1の乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)に相当する情報、断片Zは実施例1のrm,1,dm[1],…,rm,N,dm[N]に相当する情報である。言い換えれば、実施例1の乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)は断片Zの1つの例であり、実施例1のrm,1,dm[1],…,rm,N,dm[N]は断片Zの1つの例である。
[Modification]
In Example 1, it demonstrated on the assumption that the garbled circuit described in the nonpatent literature 1 was used. However, the idea of the garbled circuit in Non-Patent Document 1 may be made more general. For example, the two fragmentary information and fragment Z 1, Z 2, data d m when it was found two both pieces Z 1, Z 2 is that it can recover. If such fragments Z 1 and Z 2 are prepared, it is not necessary to limit to the garbled circuit of Non-Patent Document 1. Fragment Z 1 is information corresponding to the random number (rm , 1, 0 , rm , 1, 1 ),..., (Rm , N, 0 , rm , N, 1 ) of Example 1, fragment Z 2. Is information corresponding to rm , 1, dm [1] ,..., Rm , N, dm [N] in the first embodiment. In other words, the random number in Example 1 (r m, 1,0, r m, 1,1), ..., (r m, N, 0, r m, N, 1) in one example of the fragment Z 1 There, in embodiment 1 r m, 1, dm [ 1], ..., r m, N, dm [N] is one example of a fragment Z 2.

図1に本変形例の秘密計算システムの機能構成例を、図2に本変形例の秘密計算システムの処理フローをしめす。本変形例では、実施例1のgarbled circuit生成部350の変わりに、錯乱回路生成部350”を備えている。また、データ提供乱数生成部120”、データ提供第1暗号化部130”、データ提供第2暗号化部140”、秘密計算復号部330”、秘密計算送信部360”、データ利用受信部220”、データ利用復号部240”、データ利用実行部250”が異なる。 FIG. 1 shows an example of a functional configuration of the secret calculation system according to this modification, and FIG. 2 shows a processing flow of the secret calculation system according to this modification. In this modification, a confusion circuit generation unit 350 ″ is provided instead of the garbled circuit generation unit 350 of the first embodiment. Further, the data provision random number generation unit 120 ″ m and the data provision first encryption unit 130 ″ m The data provision second encryption unit 140 ″ m , the secret calculation decryption unit 330 ″, the secret calculation transmission unit 360 ″, the data use reception unit 220 ″, the data use decryption unit 240 ″, and the data use execution unit 250 ″ are different.

以下に、実施例1と本変形例との違いを説明する。データ提供乱数生成部120”は、2個の断片Z,Zを生成する(S120”)。データ提供第1暗号化部130”は、断片Zを公開鍵pkを用いて暗号化し、暗号文CA,mとする(S130”)。データ提供第2暗号化部140”は、断片Zをデータ利用装置の公開鍵で暗号化し、暗号文CB,mとする(140”)。 Below, the difference between Example 1 and this modification is demonstrated. The data provision random number generation unit 120 ″ m generates two fragments Z 1 and Z 2 (S120 ″ m ). The data providing first encryption unit 130 ″ m encrypts the fragment Z 1 using the public key pk s to obtain a ciphertext C A, m (S130 ″ m ). Data providing second encryption unit 140 "m encrypts the fragment Z 2 with the public key of the data utilizing apparatus, ciphertext C B, and m (140" m).

秘密計算復号部330”は、秘密鍵skを用いて暗号文CA,mを復号し、断片Zを得る(S330”)。錯乱回路生成部350”は、断片Zを用いて、断片Zが入力されたときにC(d)[q]を出力する錯乱回路ZCを生成する(S350”)。錯乱回路ZCが、実施例1のgarbled circuit GCに相当する。言い換えると、garbled circuit GCは錯乱回路ZCの1つの例である。秘密計算送信部360”は、錯乱回路ZCをデータ利用装置200”に送信する(S360”)。データ利用装置200”のデータ利用受信部220”は、錯乱回路ZCを受信する(S222”)。データ利用復号部240”は、秘密鍵skを用いて暗号文CB,mを復号し、断片Zを得る(S240”)。データ利用実行部250”は断片Zと錯乱回路ZCを用いてC(d)[1],…,C(d)[Q]を求める(S250”)。その他の構成、処理フローは同じである。したがって、データ利用装置200はC(d)を得ることができる。 The secret calculation decryption unit 330 ″ decrypts the ciphertext C A, m using the secret key sk s to obtain a fragment Z 1 (S330 ″). The confusion circuit generation unit 350 ″ uses the fragment Z 1 to generate the confusion circuit ZC that outputs C E (d m ) [q] when the fragment Z 2 is input (S350 ″). The confusion circuit ZC corresponds to the garbled circuit GC E of the first embodiment. In other words, the garbled circuit GC E is an example of the confusion circuit ZC. The secret calculation transmission unit 360 ″ transmits the confusion circuit ZC to the data utilization device 200 ″ (S360 ″). The data utilization reception unit 220 ″ of the data utilization device 200 ″ receives the confusion circuit ZC (S222 ″). Data use decoding unit 240 'decodes the ciphertext C B, m using the secret key sk u, to obtain a fragment Z 2 (S240 "). The data use execution unit 250 ″ obtains C E (d m ) [1],..., C E (d m ) [Q] using the fragment Z 2 and the confusion circuit ZC (S250 ″). Other configurations and processing flow are the same. Therefore, the data utilization device 200 can obtain C E (d m ).

実施例2の秘密計算システムは、データ利用装置から秘密計算装置に対してデータを提供しておき、その後、提供したデータを利用した結果を、データ利用装置が秘密計算装置から受け取るシステムである。したがって、1つのデータ利用装置が、データ提供装置としての機能とデータ利用装置としての機能とを有する。例えば、機密性の高いデータの管理者(数が少ない)がデータ利用装置からデータを入力し、データの利用者(管理者とは別の人であって、一般に管理者よりも人数が多い)がデータ利用装置でそのデータを利用する場合などに有効なシステムである。   The secret computing system according to the second embodiment is a system in which data is provided from the data using device to the secret computing device, and then the data using device receives a result of using the provided data from the secret computing device. Therefore, one data utilization apparatus has a function as a data provision apparatus and a function as a data utilization apparatus. For example, a highly confidential data manager (a small number) inputs data from the data usage device, and the data user (a different person from the manager, generally more than the manager) Is a system that is effective when the data is used by a data utilization device.

図3に実施例2の秘密計算システムの機能構成例を、図4に実施例2の秘密計算システムの処理フローを示す。実施例2の秘密計算システムは、データ利用装置400と秘密計算装置600からなり、データd(ただし、dはNビット以下)を利用方法Eに対応する論理回路Cに入力したときの出力C(d)(ただし、C(d)はQビット以下)を求める秘密計算システムである。ここで、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、d[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとする。なお、Q=N,q=nでとしてもよい。データ利用装置400は、データ提供鍵取得部410、データ提供乱数生成部420、インデックス作成部425、データ提供第1暗号化部430、データ提供送信部450、情報破棄部460、データ提供記録部490、データ利用送信部530、データ利用受信部520、データ利用実行部550、データ利用記録部590を備える。秘密計算装置600は、秘密計算鍵生成部310、秘密計算受信部620、秘密計算復号部630、論理回路生成部340、garbled circuit生成部650、秘密計算送信部360、秘密計算記録部690を備える。 FIG. 3 shows a functional configuration example of the secret calculation system of the second embodiment, and FIG. 4 shows a processing flow of the secret calculation system of the second embodiment. The secret calculation system according to the second embodiment includes a data use device 400 and a secret calculation device 600, and outputs C when data d (where d is N bits or less) is input to the logic circuit CE corresponding to the method of use E. This is a secret calculation system for obtaining E (d) (where C E (d) is Q bits or less). Here, N is an integer of 1 or more, n is an integer of 1 to N, Q is an integer of 1 or more, q is an integer of 1 to Q, d [n] is the lower nth bit of data d, C Let E (d) [q] be the lower qth bit of C E (d). In addition, it is good also as Q = N and q = n. The data utilization device 400 includes a data provision key acquisition unit 410, a data provision random number generation unit 420, an index creation unit 425, a data provision first encryption unit 430, a data provision transmission unit 450, an information discard unit 460, a data provision recording unit 490. A data use transmitting unit 530, a data use receiving unit 520, a data use executing unit 550, and a data use recording unit 590. The secret calculation device 600 includes a secret calculation key generation unit 310, a secret calculation reception unit 620, a secret calculation decryption unit 630, a logic circuit generation unit 340, a garbled circuit generation unit 650, a secret calculation transmission unit 360, and a secret calculation recording unit 690. .

まず、データ利用装置400でデータを提供する処理について説明する。データ提供記録部490に、Nビット以下のデータdを記録しておく。そして、秘密計算装置600の秘密計算鍵生成部310が、秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する(S310)。データ提供鍵取得部410は、秘密計算装置600の公開鍵pkを取得する(S410)。データ提供乱数生成部420は、2N個の乱数(r1,0,r1,1),…,(rN,0,rN,1)を生成する(S420)。インデックス作成部425は、データdを示すインデックスmを作成する(S425)。データ提供第1暗号化部430は、乱数(r1,0,r1,1),…,(rN,0,rN,1)を、公開鍵pkを用いて暗号化し、暗号文Cとする(S430)。データ提供送信部450は、暗号文Cとインデックスmを秘密計算装置600に送信する(S450)。データ利用記録部590が、前記インデックスmとr1,d[1],…,rN,d[N]を記録する(S455)。情報破棄部460は、データdと乱数(r1,0,r1,1),…,(rN,0,rN,1)を破棄する(S460)。 First, the process of providing data by the data use device 400 will be described. Data d of N bits or less is recorded in the data provision recording unit 490. The secure computing key generating unit 310 of the secure computing apparatus 600, the secret key sk s, and generates a public key pk s, publishes the public key pk s (S310). The data provision key acquisition unit 410 acquires the public key pk s of the secret computing device 600 (S410). The data provision random number generation unit 420 generates 2N random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) (S420). The index creation unit 425 creates an index m indicating the data d (S425). The data providing first encryption unit 430 encrypts the random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) using the public key pk s , Let C A (S430). Data providing transmission unit 450 transmits the ciphertext C A and index m to secure computing apparatus 600 (S450). The data use recording unit 590 records the index m and r1 , d [1] , ..., rN , d [N] (S455). The information discarding unit 460 discards the data d and the random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) (S460).

秘密計算装置600の秘密計算受信部620は、暗号文Cとインデックスmを受信する(S620)。秘密計算復号部630は、秘密鍵skを用いてインデックスmに対応する暗号文Cを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1)を求め(S630)、秘密計算記録部690に乱数(r1,0,r1,1),…,(rN,0,rN,1)をインデックスmと対応付けて記録する(S622)。ここまでが、データ利用装置400がデータ提供装置として機能する処理である。上述のとおり、データdの情報を秘密計算装置600に送信した後は、データdに対するインデックスmのみがデータ利用装置400に残り、データd自体は消去されている。したがって、データdの利用者が不正にデータdを入手することできない。また、データ利用装置がコンピュータ・ウィルスに感染した場合であっても、データdが外部に漏れる心配がない。 Secure computing receiver 620 of the secure computing apparatus 600 receives the ciphertext C A and index m (S620). Secure computing decoding unit 630 decodes the ciphertext C A corresponding to the index m with a secret key sk s, a random number (r 1,0, r 1,1), ..., (r N, 0, r N , 1 ) (S630), and the random number (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) is recorded in the secret calculation recording unit 690 in association with the index m. (S622). Up to this point, the data utilization device 400 functions as a data providing device. As described above, after the information of the data d is transmitted to the secret computing device 600, only the index m for the data d remains in the data using device 400, and the data d itself is deleted. Therefore, the user of data d cannot obtain data d illegally. Further, even if the data utilization device is infected with a computer virus, there is no fear that the data d leaks outside.

次に、データ利用装置400で実際にデータを利用する処理を説明する。データ利用装置400のデータ利用送信部530は、データdの利用方法Eとインデックスmとを秘密計算装置600に送信する(S530)。秘密計算装置600の秘密計算受信部620は、利用方法Eとインデックスmとを受信する(S625)。論理回路生成部340は、利用方法Eの論理回路Cを生成する(S340)。garbled circuit生成部650は、乱数(r1,0,r1,1),…,(rN,0,rN,1)を用いて、rn,d[n]が入力されたときにC(d)[q]を出力するgarbled circuit GCを生成する(S650)。なお、garbled circuit GCを生成する方法については、非特許文献1(3.2 Protocol II、および 2 Previous WorkのYao’s Two Party Secure Function Evaluation)に詳しく説明されている。 Next, a process for actually using data in the data using apparatus 400 will be described. The data utilization transmitting unit 530 of the data utilization device 400 transmits the utilization method E of the data d and the index m to the secret computing device 600 (S530). The secret calculation receiving unit 620 of the secret calculation device 600 receives the usage method E and the index m (S625). Logic circuit generating unit 340 generates a logic circuit C E of usage E (S340). The garbled circuit generation unit 650 uses a random number (r 1,0 , r 1,1 ),..., (r N, 0 , r N, 1 ) to input rn , d [n]. A garbled circuit GC E that outputs C E (d) [q] is generated (S650). The method for generating the garbled circuit GC E is described in detail in Non-Patent Document 1 (3.2 Protocol II and 2 Previous Work Yao's Two Party Secure Function Evaluation).

秘密計算送信部360は、garbled circuit GCをデータ利用装置400に送信する(S360)。データ利用装置400のデータ利用受信部520は、garbled circuit GCを受信する(S522)。データ利用実行部550は、r1,d[1],…,rN,d[N]とgarbled circuit GCを用いてC(d)[1],…,C(d)[Q]を求める(S550)。したがって、データ利用装置200はC(d)を得ることができる。 The secret calculation transmission unit 360 transmits the garbled circuit GC E to the data utilization device 400 (S360). The data usage receiving unit 520 of the data usage device 400 receives the garbled circuit GC E (S522). Data available execution unit 550, r 1, d [1] , ..., r N, d [N] and garbled Circuit GC E using C E (d) [1] , ..., C E (d) [Q ] Is obtained (S550). Therefore, the data utilization device 200 can obtain C E (d m ).

このように、本実施例の秘密計算システムによれば、データ利用装置からデータdを秘密計算装置に渡した後は、データdに対するインデックスmのみがデータ利用装置に記録され、データd自体はデータ利用装置には残らない。そして、データ利用装置はデータdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)のみを得ることができる。したがって、データを利用するときにデータ利用装置から情報が漏洩するリスクがない。 Thus, according to the secret calculation system of the present embodiment, after the data d is transferred from the data use device to the secret calculation device, only the index m for the data d is recorded in the data use device, and the data d itself is the data It does not remain in the use device. The data utilization apparatus can obtain only the output C E (d) when the data d is input to the logic circuit CE corresponding to the utilization method E. Therefore, there is no risk of information leaking from the data use device when using data.

[変形例]
実施例2では、秘密計算装置600は、ステップS620の後、暗号文Cを復号した上で、乱数(r1,0,r1,1),…,(rN,0,rN,1)をインデックスmと対応付けて記録した。しかし、ステップS620の後、暗号文Cをインデックスmと対応付けて記録しておき、必要に応じて暗号文Cを復号してもよい。図5は、このように処理する場合の処理フローを示している。具体的には、ステップS620の後、秘密計算装置600の秘密計算記録部690は、暗号文Cをインデックスmと対応付けて記録する。また、ステップS625の後、秘密計算装置600の秘密計算復号部630は、秘密鍵skを用いてインデックスmに対応する暗号文Cを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1)を求める(S630)。そして、論理回路生成部340が、利用方法Eの論理回路Cを生成する(S340)。その他の処理は、実施例2と同じである。したがって、実施例2と同じ効果が得られる。
[Modification]
In Example 2, secure computing apparatus 600, after step S620, upon decoding the ciphertext C A, a random number (r 1,0, r 1,1), ..., (r N, 0, r N, 1 ) was recorded in association with index m. However, after step S620, the ciphertext C A may be recorded in association with the index m, and the ciphertext C A may be decrypted as necessary. FIG. 5 shows a processing flow in such a case. Specifically, after step S620, secure computing recording unit 690 of the secure computing apparatus 600 records in association with the ciphertext C A and index m. Further, after step S625, the secret calculation decryption unit 630 of the secret calculation device 600 uses the secret key sk s to decrypt the ciphertext C A corresponding to the index m, and the random number (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) are obtained (S630). Then, the logic circuit generating unit 340 generates a logic circuit C E of usage E (S340). Other processes are the same as those in the second embodiment. Therefore, the same effect as in the second embodiment can be obtained.

実施例3では、実施例1の秘密計算システムをベースとして、データの不正利用も防止できる秘密計算システムについて説明する。図6に実施例3の秘密計算システムの機能構成例を、図7に実施例3の秘密計算システムの処理フローを示す。実施例3の秘密計算システムは、M個のデータ提供装置100’,…,100’、データ利用装置200、秘密計算装置300’からなり、データ利用装置200のデータdの利用方法を制限した上で、データdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)を求める。ここで、Mを1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとする。 In the third embodiment, a secret calculation system capable of preventing unauthorized use of data based on the secret calculation system according to the first embodiment will be described. FIG. 6 shows a functional configuration example of the secret calculation system of the third embodiment, and FIG. 7 shows a processing flow of the secret calculation system of the third embodiment. Secure computing system of the third embodiment, M pieces of data providing apparatus 100 '1, ..., 100' M, the data utilizing apparatus 200 consists secure computing apparatus 300 ', the usage of the data d m of the data utilizing apparatus 200 on a restricted, determining the output C E (d m) when the input to the logic circuit C E corresponding data d m in usage E. Here, M is an integer of 1 or more, m is an integer of 1 to M, N is an integer of 1 or more, n is an integer of 1 to N, Q is an integer of 1 or more, q is an integer of 1 to Q , dm [n] is lower n-th bit data d m, C E (d m ) [q] is a lower q-th bit of C E (d m).

m番目のデータ提供装置100’は、データ提供鍵取得部110、データ提供乱数生成部120、データ提供第1暗号化部130’、データ提供第2暗号化部140、データ提供送信部150、データ提供記録部190’を備える。データ利用装置200は、データ利用鍵生成部210、データ利用受信部220、データ利用送信部230、データ利用復号部240、データ利用実行部250、データ利用記録部290を備える。秘密計算装置300’は、秘密計算鍵生成部310、秘密計算受信部320、秘密計算復号部330’、論理回路生成部340、garbled circuit生成部350、秘密計算送信部360、利用条件確認部370、秘密計算記録部390’を備える。データ提供装置100’は、実施例1とデータ提供第1暗号化部130’、データ提供記録部190’の処理内容が異なる。データ利用装置200は実施例1と同じである。秘密計算装置300’は、実施例1と秘密計算復号部330’、秘密計算記録部390’の処理内容が異なり、利用条件確認部370が追加されている。 The m-th data providing apparatus 100 ′ m includes a data provision key acquisition unit 110 m , a data provision random number generation unit 120 m , a data provision first encryption unit 130 ′ m , a data provision second encryption unit 140 m , a data provision A transmission unit 150 m and a data provision recording unit 190 ′ m are provided. The data utilization device 200 includes a data utilization key generation unit 210, a data utilization reception unit 220, a data utilization transmission unit 230, a data utilization decryption unit 240, a data utilization execution unit 250, and a data utilization recording unit 290. The secret calculation device 300 ′ includes a secret calculation key generation unit 310, a secret calculation reception unit 320, a secret calculation decryption unit 330 ′, a logic circuit generation unit 340, a garbled circuit generation unit 350, a secret calculation transmission unit 360, and a use condition confirmation unit 370. And a secret calculation recording unit 390 ′. The data providing apparatus 100 'm is Example 1 and the data provided first encryption unit 130' m, the processing of the data providing the recording unit 190 'm different. The data utilization device 200 is the same as that of the first embodiment. The secret calculation device 300 ′ differs from the first embodiment in the processing contents of the secret calculation decryption unit 330 ′ and the secret calculation recording unit 390 ′, and a use condition confirmation unit 370 is added.

以下に、実施例1との違いを説明する。データ提供記録部190’が利用条件Lも記録しておく。データ提供第1暗号化部130’が、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1),利用条件Lを、公開鍵pkを用いて暗号化し、暗号文Cとする(S130’)。そして、秘密計算復号部330’は、暗号文Cを復号し、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1),利用条件Lを得る(S330’)。そして、ステップS330’の次に秘密計算装置300’の利用条件確認部370が、利用方法Eが利用条件Lを満たしているかを確認し、満たしている場合にはステップS340に進み、満たしていない場合には処理を終了する(S370)。なお、利用条件Lとは、例えば、「実行者」、「データ数」、「演算種別」などのカテゴリに分け、
=(NTT,>10000,平均値)
とした場合、「NTT社員が実行者(ログインしたユーザ)であり、10000データ以上の平均値演算」を行う場合に限り利用を認めるというように設定すればよい。
Hereinafter, differences from the first embodiment will be described. The data provision recording unit 190 ′ m records the usage conditions L m as well. The data providing first encryption unit 130 ′ m is assigned a random number (rm , 1, 0 , rm , 1, 1 ),..., (Rm , N, 0 , rm , N, 1 ), a use condition L. m is encrypted using the public key pk s to obtain a ciphertext C A (S130 ′ m ). Then, the secret calculation decryption unit 330 ′ decrypts the ciphertext C A and generates a random number (rm , 1 , 0 , rm , 1, 1 ), ..., (rm , N, 0 , rm , N, 1), to obtain a use condition L m (S330 '). Then, step S330 'following to the secure computing apparatus 300 of' use condition confirmation unit 370 is, if the usage E confirms whether meets the usage conditions L m, meets proceeds to step S340, meet If not, the process ends (S370). The usage condition L m is divided into categories such as “executor”, “number of data”, and “calculation type”.
L m = (NTT,> 10000, average value)
In such a case, setting may be made so that the use is permitted only when “an NTT employee is an executor (logged-in user) and an average value calculation of 10,000 data or more” is performed.

実施例3はこのような構成なので、実施例1の効果に加え、データ利用装置200が、許可されていない利用方法でデータdを利用することを防止できる。したがって、データの不正利用を防ぐことができる。 Since the third embodiment of this structure, in addition to the effects of Embodiment 1, the data utilizing apparatus 200 can be prevented from utilizing data d m in usage is not permitted. Therefore, unauthorized use of data can be prevented.

実施例4では、実施例2の秘密計算システムをベースとして、データの不正利用も防止できる秘密計算システムについて説明する。図8に実施例4の秘密計算システムの機能構成例を、図9に実施例4の秘密計算システムの処理フローを示す。実施例4の秘密計算システムは、データ利用装置400’と秘密計算装置600’からなり、データ利用装置400’のデータdの利用方法を制限した上で、データdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)を求める秘密計算システムである。ここで、Nを1以上の整数、nを1以上N以下の整数、d[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとする。データ利用装置400’は、データ提供鍵取得部410、データ提供乱数生成部420、インデックス作成部425、データ提供第1暗号化部430’、データ提供送信部450、情報破棄部460’、データ提供記録部490’、データ利用送信部530、データ利用受信部520、データ利用実行部550、データ利用記録部590を備える。秘密計算装置600’は、秘密計算鍵生成部310、秘密計算受信部620、秘密計算復号部630’、論理回路生成部340、garbled circuit生成部650、秘密計算送信部360、利用条件確認部370、秘密計算記録部690’を備える。データ利用装置400’は、実施例2とデータ提供第1暗号化部430’、情報破棄部460’、データ提供記録部490’の処理内容が異なる。秘密計算装置600’は、実施例2と秘密計算復号部630’、秘密計算記録部690’の処理内容が異なり、利用条件確認部370が追加されている。 In the fourth embodiment, a secret calculation system capable of preventing unauthorized use of data based on the secret calculation system of the second embodiment will be described. FIG. 8 shows a functional configuration example of the secret calculation system of the fourth embodiment, and FIG. 9 shows a processing flow of the secret calculation system of the fourth embodiment. The secret calculation system according to the fourth embodiment includes a data use device 400 ′ and a secret calculation device 600 ′, and restricts the use method of the data d of the data use device 400 ′, and then uses the logic corresponding to the use method E. This is a secret calculation system for obtaining an output C E (d) when input to a circuit C E. Here, N is an integer greater than or equal to 1, n is an integer greater than or equal to 1 and less than or equal to N, d [n] is the lower nth bit of data d, and C E (d) [q] is the lower order q of C E (d) The second bit. The data utilization device 400 ′ includes a data provision key acquisition unit 410, a data provision random number generation unit 420, an index creation unit 425, a data provision first encryption unit 430 ′, a data provision transmission unit 450, an information discard unit 460 ′, a data provision A recording unit 490 ′, a data usage transmitting unit 530, a data usage receiving unit 520, a data usage executing unit 550, and a data usage recording unit 590 are provided. The secret calculation device 600 ′ includes a secret calculation key generation unit 310, a secret calculation reception unit 620, a secret calculation decryption unit 630 ′, a logic circuit generation unit 340, a garbled circuit generation unit 650, a secret calculation transmission unit 360, and a use condition confirmation unit 370. A secret calculation recording unit 690 ′ is provided. The data utilization device 400 ′ differs from the second embodiment in the processing contents of the data provision first encryption unit 430 ′, the information discard unit 460 ′, and the data provision recording unit 490 ′. The secret calculation device 600 ′ differs from the second embodiment in the processing contents of the secret calculation decryption unit 630 ′ and the secret calculation recording unit 690 ′, and a use condition confirmation unit 370 is added.

以下に、実施例2との違いを説明する。データ提供記録部490’が利用条件Lも記録しておく。データ提供第1暗号化部430’が、乱数(r1,0,r1,1),…,(rN,0,rN,1),利用条件Lを、公開鍵pkを用いて暗号化し、暗号文Cとする(S430’)。また、情報破棄部460’は、データd、乱数(r1,0,r1,1),…,(rN,0,rN,1)、利用条件Lを破棄する(S460’)。そして、秘密計算復号部630’は、暗号文Cを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1),利用条件Lを得る(S630’)。そして、ステップS625の次に秘密計算装置600’の利用条件確認部370が、利用方法Eが利用条件Lを満たしているかを確認し、満たしている場合にはステップS340に進み、満たしていない場合には処理を終了する(S370)。 Hereinafter, differences from the second embodiment will be described. The data provision recording unit 490 ′ also records the usage conditions L. The data providing first encryption unit 430 ′ uses the public key pk s to generate a random number (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) and a use condition L. Encryption is performed to obtain a ciphertext C A (S430 ′). Further, the information discarding unit 460 ′ discards the data d, random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ), and usage conditions L (S460 ′). Then, the secret calculation decryption unit 630 ′ decrypts the ciphertext C A to obtain a random number (r 1,0 , r 1,1 ),... (R N, 0 , r N, 1 ) and a use condition L. (S630 '). Then, after step S625, the use condition confirmation unit 370 of the secret computing device 600 ′ confirms whether the use method E satisfies the use condition L. If satisfied, the process proceeds to step S340. In step S370, the process ends.

実施例4はこのような構成なので、実施例2の効果に加え、データ利用装置400’が、許可されていない利用方法でデータdを利用することを防止できる。したがって、データの不正利用を防ぐことができる。 Since the fourth embodiment of this structure, in addition to the effects of Embodiment 2, the data utilizing apparatus 400 'can be prevented from utilizing data d m in usage is not permitted. Therefore, unauthorized use of data can be prevented.

[変形例]
実施例4では、秘密計算装置600’は、ステップS620の後、暗号文Cを復号した上で、乱数(r1,0,r1,1),…,(rN,0,rN,1)をインデックスmと対応付けて記録した。しかし、ステップS620の後、暗号文Cをインデックスmと対応付けて記録しておき、必要に応じて暗号文Cを復号してもよい。図10は、このように処理する場合の処理フローを示している。具体的には、ステップS620の後、秘密計算装置600’の秘密計算記録部690’は、暗号文Cをインデックスmと対応付けて記録する。また、ステップS625の後、秘密計算装置600の秘密計算復号部630’は、秘密鍵skを用いてインデックスmに対応する暗号文Cを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1)、利用条件Lを求める(S630’)。そして、利用条件確認部370が、利用方法Eが利用条件Lを満たしているかを確認する(S370)。その他の処理は、実施例4と同じである。したがって、実施例2と同じ効果が得られる。
[Modification]
In the fourth embodiment, the secret computing device 600 ′ decrypts the ciphertext C A after step S620, and then selects a random number (r 1,0 , r 1,1 ),..., (R N, 0 , r N , 1 ) was recorded in association with index m. However, after step S620, the ciphertext C A may be recorded in association with the index m, and the ciphertext C A may be decrypted as necessary. FIG. 10 shows a processing flow in such a case. Specifically, after step S620, 'secure computing recording unit 690' secure computing apparatus 600 records in association with the ciphertext C A and index m. In addition, after step S625, the secret calculation decryption unit 630 ′ of the secret calculation device 600 decrypts the ciphertext C A corresponding to the index m using the secret key sk s, and generates a random number (r 1,0 , r 1, 1 ),..., (R N, 0 , r N, 1 ), and a use condition L is obtained (S630 ′). Then, the use condition confirmation unit 370 confirms whether the use method E satisfies the use condition L (S370). Other processes are the same as those in the fourth embodiment. Therefore, the same effect as in the second embodiment can be obtained.

プログラム、記録媒体
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
Program, recording medium In addition, when the above configuration is realized by a computer, processing contents of functions that each device should have are described by the program. The processing functions are realized on the computer by executing the program on the computer.
The program describing the processing contents can be recorded on a computer-readable recording medium. As the computer-readable recording medium, for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.

また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。   The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.

このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。   A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, this computer reads the program stored in its own recording medium and executes the process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. Note that the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).

また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。   In this embodiment, the present apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.

本発明は、システム内のデータの漏洩防止、および不正使用防止に利用できる。   The present invention can be used for preventing data leakage and unauthorized use in the system.

100、100’ 100” データ提供装置 110、410 データ提供鍵取得部
120、120”、420 データ提供乱数生成部
130、130’、130”、430、430’ データ提供第1暗号化部
140、140” データ提供第2暗号化部
150、450 データ提供送信部
190、190’、490、490’ データ提供記録部
200、200”、400、400’ データ利用装置
210 データ利用鍵生成部 220、220”、520 データ利用受信部
230、530 データ利用送信部 240、240” データ利用復号部
250、250”、550 データ利用実行部
290、590 データ利用記録部
300、300’、600、600’ 秘密計算装置
310 秘密計算鍵生成部 320、620 秘密計算受信部
330、330’、330”、630、630’ 秘密計算復号部
340 論理回路生成部 350、650 garbled circuit生成部
350” 錯乱回路生成部
360、360” 秘密計算送信部 370 利用条件確認部
390、390’、690、690’ 秘密計算記録部
425 インデックス作成部 460 情報破棄部
100, 100 ′ 100 ″ data providing device 110 m , 410 data providing key acquisition unit 120 m , 120 ″ m , 420 data providing random number generating unit 130 m , 130 ′ m , 130 ″ m , 430, 430 ′ data providing first Encryption unit 140 m , 140 ″ m Data provision second encryption unit 150 m , 450 Data provision transmission unit 190 m , 190 ′ m , 490, 490 ′ Data provision recording unit 200, 200 ″, 400, 400 ′ Data utilization Device 210 Data usage key generation unit 220, 220 ", 520 Data usage reception unit 230, 530 Data usage transmission unit 240, 240" Data usage decryption unit 250, 250 ", 550 Data usage execution unit 290, 590 Data usage recording unit 300 , 300 ', 600, 600' Secret calculation device 310 Secret calculation key generation unit 320, 620 Calculation receiving unit 330, 330 ′, 330 ″, 630, 630 ′ Secret calculation decoding unit 340 Logic circuit generation unit 350, 650 garbled circuit generation unit 350 ”Confusion circuit generation unit 360, 360” Secret calculation transmission unit 370 Usage condition confirmation unit 390, 390 ′, 690, 690 ′ Secret calculation recording unit 425 Index creation unit 460 Information discard unit

Claims (12)

M個のデータ提供装置、データ利用装置、秘密計算装置からなり、データdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)を求める秘密計算システムであって、
Mを1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとして、
m番目の前記データ提供装置は、
Nビット以下のデータdを記録するデータ提供記録部と、
前記データ利用装置の公開鍵pkと前記秘密計算装置の公開鍵pkを取得するデータ提供鍵取得部と、
2N個の乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を生成するデータ提供乱数生成部と、
前記乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を、前記公開鍵pkを用いて暗号化し、暗号文CA,mとするデータ提供第1暗号化部と、
m,1,dm[1],…,rm,N,dm[N]を、前記データ利用装置の公開鍵で暗号化し、暗号文CB,mとするデータ提供第2暗号化部と、
暗号文CA,mと暗号文CB,mを、前記データ利用装置に送信するデータ提供送信部と
を備え、
前記データ利用装置は、
秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開するデータ利用鍵生成部と、
暗号文CA,mと暗号文CB,m、およびgarbled circuit GCを受信するデータ利用受信部と、
暗号文CA,mと暗号文CB,mを記録するデータ利用記録部と、
データdの利用方法Eと暗号文CA,mとを前記秘密計算装置に送信するデータ利用送信部と、
秘密鍵skを用いて暗号文CB,mを復号し、rm,1,dm[1],…,rm,N,dm[N]を得るデータ利用復号部と、
m,1,dm[1],…,rm,N,dm[N]とgarbled circuit GCを用いてC(d)[1],…,C(d)[Q]を求めるデータ利用実行部と
を備え、
前記秘密計算装置は、
秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する秘密計算鍵生成部と、
利用方法Eと暗号文CA,mとを受信する秘密計算受信部と、
秘密鍵skを用いて暗号文CA,mを復号し、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を得る秘密計算復号部と、
利用方法Eの論理回路Cを生成する論理回路生成部と、
乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を用いて、rm,n,dm[n]が入力されたときにC(d)[q]を出力するgarbled circuit GCを生成するgarbled circuit生成部と、
garbled circuit GCを前記データ利用装置に送信する秘密計算送信部と
を備える
ことを特徴とする秘密計算システム。
M data providing apparatus, the data utilizing apparatus consists secure computing apparatus, a secret computing system to obtain the output C E when the input to the logic circuit C E (d m) to the corresponding data d m in usage E And
M is an integer of 1 or more, m is an integer of 1 to M, N is an integer of 1 or more, n is an integer of 1 to N, Q is an integer of 1 or more, q is an integer of 1 to Q, dm [ n] is a lower q-th bit of the lower n-th bit data d m, C E (d m ) [q] is C E (d m),
The m th data providing device is:
A data providing recording unit for recording the N bits following data d m,
A data providing key acquisition unit for acquiring the public key pk u of the data utilization device and the public key pk s of the secret computing device;
A data provision random number generator for generating 2N random numbers (rm , 1,0 , rm , 1,1 ), ..., (rm , N, 0 , rm , N, 1 );
The random number (r m, 1,0, r m , 1,1), ..., (r m, N, 0, r m, N, 1) and encrypted with the public key pk s, ciphertext A data providing first encryption unit C A, m ;
rm , 1, dm [1] , ..., rm , N, dm [N] are encrypted with the public key of the data using device, and the ciphertext CB , m is provided as a data providing second encryption unit; ,
A data provision transmitting unit that transmits the ciphertext C A, m and the ciphertext C B, m to the data using device;
The data utilization device is:
A data usage key generation unit that generates a secret key sk u and a public key pk u and publishes the public key pk u ;
A data use receiving unit for receiving the ciphertext C A, m , the ciphertext C B, m , and the garbled circuit GC E ;
A data use recording unit for recording the ciphertext C A, m and the ciphertext C B, m ;
And data utilizing transmission unit that transmits data d m usage E ciphertext C A of, and m to the secure computing apparatus,
A data use decryption unit that decrypts the ciphertext C B, m using the secret key sk u and obtains rm , 1, dm [1] , ..., rm , N, dm [N] ;
r m, 1, dm [1 ], ..., r m, N, dm [N] and garbled circuit GC E C E with (d m) [1], ..., C E (d m) [Q] And a data usage execution unit for
The secret computing device is
A secret calculation key generation unit that generates a secret key sk s and a public key pk s and publishes the public key pk s ;
A secret calculation receiving unit for receiving the usage method E and the ciphertext C A, m ;
The ciphertext C A, m is decrypted using the secret key sk s , and a random number (r m, 1,0 , rm , 1,1 ), ..., (r m, N, 0 , r m, N, 1 ) To obtain a secret calculation decryption unit,
A logic circuit generating unit for generating a logic circuit C E of usage E,
Rm , n, dm [n] is input using random numbers (rm , 1,0 , rm , 1,1 ), ..., (rm , N, 0 , rm , N, 1 ). A garbled circuit generating section for generating a GC E that outputs C E (d m ) [q] when
secure computing system; and a secure computing transmitting unit for transmitting the garbled Circuit GC E to the data utilizing apparatus.
M個のデータ提供装置、データ利用装置、秘密計算装置からなり、データdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)を求める秘密計算システムであって、
Mを1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとして、
m番目の前記データ提供装置は、
Nビット以下のデータdを記録するデータ提供記録部と、
前記データ利用装置の公開鍵pkと前記秘密計算装置の公開鍵pkを取得するデータ提供鍵取得部と、
両方が分かればデータdが分かる断片Z、Zを生成するデータ提供乱数生成部と、
断片Zを、前記公開鍵pkを用いて暗号化し、暗号文CA,mとするデータ提供第1暗号化部と、
断片Zを、前記データ利用装置の公開鍵で暗号化し、暗号文CB,mとするデータ提供第2暗号化部と、
暗号文CA,mと暗号文CB,mを、前記データ利用装置に送信するデータ提供送信部と
を備え、
前記データ利用装置は、
秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開するデータ利用鍵生成部と、
暗号文CA,mと暗号文CB,m、および錯乱回路ZCを受信するデータ利用受信部と、
暗号文CA,mと暗号文CB,mを記録するデータ利用記録部と、
データdの利用方法Eと暗号文CA,mとを前記秘密計算装置に送信するデータ利用送信部と、
秘密鍵skを用いて暗号文CB,mを復号し、断片Zを得るデータ利用復号部と、
断片Zと錯乱回路ZCを用いてC(d)[1],…,C(d)[Q]を求めるデータ利用実行部と
を備え、
前記秘密計算装置は、
秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する秘密計算鍵生成部と、
利用方法Eと暗号文CA,mとを受信する秘密計算受信部と、
秘密鍵skを用いて暗号文CA,mを復号し、断片Zを得る秘密計算復号部と、
利用方法Eの論理回路Cを生成する論理回路生成部と、
断片Zを用いて、断片Zが入力されたときにC(d)[q]を出力する錯乱回路ZCを生成する錯乱回路生成部と、
錯乱回路ZCを前記データ利用装置に送信する秘密計算送信部と
を備える
ことを特徴とする秘密計算システム。
M data providing apparatus, the data utilizing apparatus consists secure computing apparatus, a secret computing system to obtain the output C E when the input to the logic circuit C E (d m) to the corresponding data d m in usage E And
M is an integer of 1 or more, m is an integer of 1 to M, N is an integer of 1 or more, n is an integer of 1 to N, Q is an integer of 1 or more, q is an integer of 1 to Q, dm [ n] is a lower q-th bit of the lower n-th bit data d m, C E (d m ) [q] is C E (d m),
The m th data providing device is:
A data providing recording unit for recording the N bits following data d m,
A data providing key acquisition unit for acquiring the public key pk u of the data utilization device and the public key pk s of the secret computing device;
A data providing random number generation unit for generating a fragment Z 1, Z 2 where data d m is seen if both are known,
A data providing first encryption unit that encrypts the fragment Z 1 using the public key pk s to obtain a ciphertext C A, m ;
The fragment Z 2, encrypted with the public key of the data utilizing apparatus, the data providing a second encryption unit for ciphertext C B, and m,
A data provision transmitting unit that transmits the ciphertext C A, m and the ciphertext C B, m to the data using device;
The data utilization device is:
A data usage key generation unit that generates a secret key sk u and a public key pk u and publishes the public key pk u ;
A data use receiving unit that receives the ciphertext C A, m , the ciphertext C B, m , and the confusion circuit ZC;
A data use recording unit for recording the ciphertext C A, m and the ciphertext C B, m ;
And data utilizing transmission unit that transmits data d m usage E ciphertext C A of, and m to the secure computing apparatus,
A data use decryption unit that decrypts the ciphertext C B, m using the secret key sk u to obtain a fragment Z 2 ;
A data utilization execution unit that obtains C E (d m ) [1],..., C E (d m ) [Q] using the fragment Z 2 and the confusion circuit ZC;
The secret computing device is
A secret calculation key generation unit that generates a secret key sk s and a public key pk s and publishes the public key pk s ;
A secret calculation receiving unit for receiving the usage method E and the ciphertext C A, m ;
A secret calculation decryption unit for decrypting the ciphertext C A, m using the secret key sk s to obtain a fragment Z 1 ;
A logic circuit generating unit for generating a logic circuit C E of usage E,
A confusion circuit generator that generates a confusion circuit ZC that outputs C E (d m ) [q] when the fragment Z 2 is input using the fragment Z 1 ;
A secret calculation system comprising: a secret calculation transmission unit that transmits a confusion circuit ZC to the data utilization device.
データ利用装置と秘密計算装置からなり、データdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)を求める秘密計算システムであって、
Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、d[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとして、
前記データ利用装置は、
Nビット以下のデータdを記録するデータ提供記録部と、
前記秘密計算装置の公開鍵pkを取得するデータ提供鍵取得部と、
2N個の乱数(r1,0,r1,1),…,(rN,0,rN,1)を生成するデータ提供乱数生成部と、
データdを示すインデックスmを作成するインデックス作成部と、
前記乱数(r1,0,r1,1),…,(rN,0,rN,1)を、前記公開鍵pkを用いて暗号化し、暗号文Cとするデータ提供第1暗号化部と、
暗号文Cとインデックスmを前記秘密計算装置に送信するデータ提供送信部と、
前記インデックスmとr1,d[1],…,rN,d[N]を記録するデータ利用記録部と、
データdと乱数(r1,0,r1,1),…,(rN,0,rN,1)を破棄する情報破棄部と、
データdの利用方法Eとインデックスmとを前記秘密計算装置に送信するデータ利用送信部と、
garbled circuit GCを受信するデータ利用受信部と、
1,d[1],…,rN,d[N]とgarbled circuit GCを用いてC(d)[1],…,C(d)[Q]を求めるデータ利用実行部と
を備え、
前記秘密計算装置は、
秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する秘密計算鍵生成部と、
暗号文Cとインデックスm、または利用方法Eとインデックスmとを受信する秘密計算受信部と、
秘密鍵skを用いてインデックスmに対応する暗号文Cを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1)を得る秘密計算復号部と、
乱数(r1,0,r1,1),…,(rN,0,rN,1)または暗号文Cを、インデックスmと対応付けて記録する秘密計算記録部と、
利用方法Eの論理回路Cを生成する論理回路生成部と、
乱数(r1,0,r1,1),…,(rN,0,rN,1)を用いて、rn,d[n]が入力されたときにC(d)[q]を出力するgarbled circuit GCを生成するgarbled circuit生成部と、
garbled circuit GCを前記データ利用装置に送信する秘密計算送信部と
を備える
ことを特徴とする秘密計算システム。
A secret calculation system comprising a data use device and a secret calculation device, which obtains an output C E (d) when data d is input to a logic circuit CE corresponding to the method of use E,
N is an integer greater than or equal to 1, n is an integer greater than or equal to 1 and less than or equal to N, Q is an integer greater than or equal to 1, q is an integer greater than or equal to 1 and less than or equal to Q, d [n] is the lower nth bit of data d, C E (d ) [Q] is the lower qth bit of C E (d)
The data utilization device is:
A data providing recording unit for recording data d of N bits or less;
A data providing key acquisition unit for acquiring the public key pk s of the secret computing device;
A data provision random number generator for generating 2N random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 );
An index creation unit for creating an index m indicating data d;
The random number (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) is encrypted using the public key pk s and is used as a ciphertext C A An encryption unit;
A data provision transmitting unit for transmitting the ciphertext C A and the index m to the secret computing device;
A data use recording unit for recording the index m and r1 , d [1] , ..., rN , d [N] ;
An information discarding unit for discarding the data d and random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 );
A data use transmitting unit for transmitting the method of using data d and the index m to the secret computing device;
and data usage receiving unit that receives a garbled circuit GC E,
r 1, d [1], ..., r N, d [N] and garbled circuit GC E C E (d ) [1] with a, ..., C E (d) data available execution unit for obtaining the [Q] And
The secret computing device is
A secret calculation key generation unit that generates a secret key sk s and a public key pk s and publishes the public key pk s ;
A secret calculation receiving unit that receives the ciphertext C A and the index m or the usage method E and the index m;
A secret calculation that decrypts the ciphertext C A corresponding to the index m using the secret key sk s and obtains random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) A decryption unit;
A secret calculation recording unit that records a random number (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) or ciphertext CA in association with an index m;
A logic circuit generating unit for generating a logic circuit C E of usage E,
When rn , d [n] is input using random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ), C E (d) [q A garbled circuit generator for generating a GC E ,
secure computing system; and a secure computing transmitting unit for transmitting the garbled Circuit GC E to the data utilizing apparatus.
M個のデータ提供装置、データ利用装置、秘密計算装置からなり、データdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)を求める秘密計算システムであって、
Mを1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとして、
m番目の前記データ提供装置は、
Nビット以下のデータdと、データdの利用条件Lを記録するデータ提供記録部と、
前記データ利用装置の公開鍵pkと前記秘密計算装置の公開鍵pkを取得するデータ提供鍵取得部と、
2N個の乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を生成するデータ提供乱数生成部と、
前記乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1),利用条件Lを、前記公開鍵pkを用いて暗号化し、暗号文CA,mとするデータ提供第1暗号化部と、
m,1,dm[1],…,rm,N,dm[N]を、前記データ利用装置の公開鍵で暗号化し、暗号文CB,mとするデータ提供第2暗号化部と、
暗号文CA,mと暗号文CB,mを、前記データ利用装置に送信するデータ提供送信部と
を備え、
前記データ利用装置は、
秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開するデータ利用鍵生成部と、
暗号文CA,mと暗号文CB,m、およびgarbled circuit GCを受信するデータ利用受信部と、
暗号文CA,mと暗号文CB,mを記録するデータ利用記録部と、
データdの利用方法Eと暗号文CA,mとを前記秘密計算装置に送信するデータ利用送信部と、
秘密鍵skを用いて暗号文CB,mを復号し、rm,1,dm[1],…,rm,N,dm[N]を得るデータ利用復号部と、
m,1,dm[1],…,rm,N,dm[N]とgarbled circuit GCを用いてC(d)[1],…,C(d)[Q]を求めるデータ利用実行部と
を備え、
前記秘密計算装置は、
秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する秘密計算鍵生成部と、
利用方法Eと暗号文CA,mとを受信する秘密計算受信部と、
秘密鍵skを用いて暗号文CA,mを復号し、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1),利用条件Lを得る秘密計算復号部と、
利用方法Eが利用条件Lを満たしているかを確認する利用条件確認部と、
利用方法Eの論理回路Cを生成する論理回路生成部と、
乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を用いて、rm,n,dm[n]が入力されたときにC(d)[q]を出力するgarbled circuit GCを生成するgarbled circuit生成部と、
garbled circuit GCを前記データ利用装置に送信する秘密計算送信部と
を備える
ことを特徴とする秘密計算システム。
M data providing apparatus, the data utilizing apparatus consists secure computing apparatus, a secret computing system to obtain the output C E when the input to the logic circuit C E (d m) to the corresponding data d m in usage E And
M is an integer of 1 or more, m is an integer of 1 to M, N is an integer of 1 or more, n is an integer of 1 to N, Q is an integer of 1 or more, q is an integer of 1 to Q, dm [ n] is a lower q-th bit of the lower n-th bit data d m, C E (d m ) [q] is C E (d m),
The m th data providing device is:
And N-bit following data d m, a data providing recording unit that records use condition L m of data d m,
A data providing key acquisition unit for acquiring the public key pk u of the data utilization device and the public key pk s of the secret computing device;
A data provision random number generator for generating 2N random numbers (rm , 1,0 , rm , 1,1 ), ..., (rm , N, 0 , rm , N, 1 );
The random number (r m, 1,0, r m , 1,1), ..., (r m, N, 0, r m, N, 1), the terms and conditions L m, by using the public key pk s A data providing first encryption unit that encrypts the ciphertext C A, m, and
rm , 1, dm [1] , ..., rm , N, dm [N] are encrypted with the public key of the data using device, and the ciphertext CB , m is provided as a data providing second encryption unit; ,
A data provision transmitting unit that transmits the ciphertext C A, m and the ciphertext C B, m to the data using device;
The data utilization device is:
A data usage key generation unit that generates a secret key sk u and a public key pk u and publishes the public key pk u ;
A data use receiving unit for receiving the ciphertext C A, m , the ciphertext C B, m , and the garbled circuit GC E ;
A data use recording unit for recording the ciphertext C A, m and the ciphertext C B, m ;
And data utilizing transmission unit that transmits data d m usage E ciphertext C A of, and m to the secure computing apparatus,
A data use decryption unit that decrypts the ciphertext C B, m using the secret key sk u and obtains rm , 1, dm [1] , ..., rm , N, dm [N] ;
r m, 1, dm [1 ], ..., r m, N, dm [N] and garbled circuit GC E C E with (d m) [1], ..., C E (d m) [Q] And a data usage execution unit for
The secret computing device is
A secret calculation key generation unit that generates a secret key sk s and a public key pk s and publishes the public key pk s ;
A secret calculation receiving unit for receiving the usage method E and the ciphertext C A, m ;
The ciphertext C A, m is decrypted using the secret key sk s , and a random number (r m, 1,0 , rm , 1,1 ), ..., (r m, N, 0 , r m, N, 1 ), A secret calculation decryption unit for obtaining a use condition L m ,
And the utilization condition confirmation unit to use Method E to confirm it meets the terms and conditions L m,
A logic circuit generating unit for generating a logic circuit C E of usage E,
Rm , n, dm [n] is input using random numbers (rm , 1,0 , rm , 1,1 ), ..., (rm , N, 0 , rm , N, 1 ). A garbled circuit generating section for generating a GC E that outputs C E (d m ) [q] when
secure computing system; and a secure computing transmitting unit for transmitting the garbled Circuit GC E to the data utilizing apparatus.
データ利用装置と秘密計算装置からなり、データdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)を求める秘密計算システムであって、
Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、d[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとして、
前記データ利用装置は、
Nビット以下のデータdと、データdの利用条件Lを記録するデータ提供記録部と、
前記秘密計算装置の公開鍵pkを取得するデータ提供鍵取得部と、
2N個の乱数(r1,0,r1,1),…,(rN,0,rN,1)を生成するデータ提供乱数生成部と、
データdを示すインデックスmを作成するインデックス作成部と、
前記乱数(r1,0,r1,1),…,(rN,0,rN,1),利用条件Lを、前記公開鍵pkを用いて暗号化し、暗号文Cとするデータ提供第1暗号化部と、
暗号文Cとインデックスmを前記秘密計算装置に送信するデータ提供送信部と、
前記インデックスmとr1,d[1],…,rN,d[N]を記録するデータ利用記録部と、
データd、乱数(r1,0,r1,1),…,(rN,0,rN,1)、利用条件Lを破棄する情報破棄部と、
データdの利用方法Eとインデックスmとを前記秘密計算装置に送信するデータ利用送信部と、
garbled circuit GCを受信するデータ利用受信部と、
1,d[1],…,rN,d[N]とgarbled circuit GCを用いてC(d)[1],…,C(d)[Q]を求めるデータ利用実行部と
を備え、
前記秘密計算装置は、
秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する秘密計算鍵生成部と、
暗号文Cとインデックスm、または利用方法Eとインデックスmとを受信する秘密計算受信部と、
秘密鍵skを用いてインデックスmに対応する暗号文Cを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1),利用条件Lを得る秘密計算復号部と、
乱数(r1,0,r1,1),…,(rN,0,rN,1)と利用条件L、もしくは、暗号文Cを、インデックスmと対応付けて記録する秘密計算記録部と、
利用方法Eが利用条件Lを満たしているかを確認する利用条件確認部と、
利用方法Eの論理回路Cを生成する論理回路生成部と、
乱数(r1,0,r1,1),…,(rN,0,rN,1)を用いて、rn,d[n]が入力されたときにC(d)[q]を出力するgarbled circuit GCを生成するgarbled circuit生成部と、
garbled circuit GCを前記データ利用装置に送信する秘密計算送信部と
を備える
ことを特徴とする秘密計算システム。
A secret calculation system comprising a data use device and a secret calculation device, which obtains an output C E (d) when data d is input to a logic circuit CE corresponding to the method of use E,
N is an integer greater than or equal to 1, n is an integer greater than or equal to 1 and less than or equal to N, Q is an integer greater than or equal to 1, q is an integer greater than or equal to 1 and less than or equal to Q, d [n] is the lower nth bit of data d, C E (d ) [Q] is the lower qth bit of C E (d)
The data utilization device is:
A data providing recording unit that records data d of N bits or less, and a use condition L of the data d;
A data providing key acquisition unit for acquiring the public key pk s of the secret computing device;
A data provision random number generator for generating 2N random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 );
An index creation unit for creating an index m indicating data d;
The random number (r 1,0, r 1,1), ..., (r N, 0, r N, 1), the usage condition L, encrypted using the public key pk s, and the ciphertext C A A data providing first encryption unit;
A data provision transmitting unit for transmitting the ciphertext C A and the index m to the secret computing device;
A data use recording unit for recording the index m and r1 , d [1] , ..., rN , d [N] ;
An information discarding unit for discarding data d, random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ), usage conditions L;
A data use transmitting unit for transmitting the method of using data d and the index m to the secret computing device;
and data usage receiving unit that receives a garbled circuit GC E,
r 1, d [1], ..., r N, d [N] and garbled circuit GC E C E (d ) [1] with a, ..., C E (d) data available execution unit for obtaining the [Q] And
The secret computing device is
A secret calculation key generation unit that generates a secret key sk s and a public key pk s and publishes the public key pk s ;
A secret calculation receiving unit that receives the ciphertext C A and the index m or the usage method E and the index m;
Decrypts the ciphertext C A corresponding to the index m with a secret key sk s, a random number (r 1,0, r 1,1), ..., (r N, 0, r N, 1), use condition L A secret calculation decryption unit to obtain
Secret calculation record for recording random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) and usage conditions L or ciphertext C A in association with index m And
A use condition confirmation unit for confirming whether the use method E satisfies the use condition L;
A logic circuit generating unit for generating a logic circuit C E of usage E,
When rn , d [n] is input using random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ), C E (d) [q A garbled circuit generator for generating a GC E ,
secure computing system; and a secure computing transmitting unit for transmitting the garbled Circuit GC E to the data utilizing apparatus.
M個のデータ提供装置、データ利用装置、秘密計算装置を用いて、データdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)を求める秘密計算方法であって、
Mを1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとして、
m番目の前記データ提供装置において、
データ提供記録部が、あらかじめNビット以下のデータdを記録しておき、
前記データ利用装置において、
データ利用鍵生成部が、秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開するデータ利用鍵生成ステップと、
前記秘密計算装置において、
秘密計算鍵生成部が、秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する秘密計算鍵生成ステップと、
m番目の前記データ提供装置において、
データ提供鍵取得部が、前記データ利用装置の公開鍵pkと前記秘密計算装置の公開鍵pkを取得するデータ提供鍵取得ステップと、
データ提供乱数生成部が、2N個の乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を生成するデータ提供乱数生成ステップと、
データ提供第1暗号化部が、前記乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を、前記公開鍵pkを用いて暗号化し、暗号文CA,mとするデータ提供第1暗号化ステップと、
データ提供第2暗号化部が、rm,1,dm[1],…,rm,N,dm[N]を、前記データ利用装置の公開鍵で暗号化し、暗号文CB,mとするデータ提供第2暗号化ステップと、
データ提供送信部が、暗号文CA,mと暗号文CB,mを、前記データ利用装置に送信するデータ提供送信ステップと、
前記データ利用装置において、
データ利用受信部が、暗号文CA,mと暗号文CB,mを受信し、データ利用記録部に暗号文CA,mと暗号文CB,mを記録する第1データ利用受信ステップと、
データ利用送信部が、データdの利用方法Eと暗号文CA,mとを前記秘密計算装置に送信するデータ利用送信ステップと、
前記秘密計算装置において、
秘密計算受信部が、利用方法Eと暗号文CA,mとを受信する秘密計算受信ステップと、
秘密計算復号部が、秘密鍵skを用いて暗号文CA,mを復号し、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を得る秘密計算復号ステップと、
論理回路生成部が、利用方法Eの論理回路Cを生成する論理回路生成ステップと、
garbled circuit生成部が、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を用いて、rm,n,dm[n]が入力されたときにC(d)[q]を出力するgarbled circuit GCを生成するgarbled circuit生成ステップと、
秘密計算送信部が、garbled circuit GCを前記データ利用装置に送信する秘密計算送信ステップと、
前記データ利用装置において、
データ利用受信部が、garbled circuit GCを受信する第2データ利用受信ステップと、
データ利用復号部が、秘密鍵skを用いて暗号文CB,mを復号し、rm,1,dm[1],…,rm,N,dm[N]を得るデータ利用復号ステップと、
データ利用実行部が、rm,1,dm[1],…,rm,N,dm[N]とgarbled circuit GCを用いてC(d)[1],…,C(d)[Q]を求めるデータ利用実行ステップと
を有することを特徴とする秘密計算方法。
M data providing apparatus, the data utilizing apparatus, using the secure computing apparatus, in secure computing method of obtaining the output C E when the input to the logic circuit C E (d m) to the corresponding data d m in usage E There,
M is an integer of 1 or more, m is an integer of 1 to M, N is an integer of 1 or more, n is an integer of 1 to N, Q is an integer of 1 or more, q is an integer of 1 to Q, dm [ n] is a lower q-th bit of the lower n-th bit data d m, C E (d m ) [q] is C E (d m),
In the m-th data providing apparatus,
Data providing recording unit may be recorded in advance N-bit following data d m,
In the data utilization device,
A data usage key generating unit that generates a secret key sk u and a public key pk u and publishes the public key pk u ;
In the secret computing device,
A secret calculation key generation unit that generates a secret key sk s and a public key pk s and publishes the public key pk s ;
In the m-th data providing apparatus,
A data provision key obtaining unit for obtaining a public key pk u of the data using device and a public key pk s of the secret computing device;
Data provision random number generator generates 2N random numbers (rm , 1, 0 , rm , 1, 1 ), ..., (rm , N, 0 , rm , N, 1 ) Generation step;
The data providing first encryption unit transmits the random number (r m, 1,0 , rm , 1,1 ), ..., (rm , N, 0 , rm , N, 1 ) to the public key pk. a data providing first encryption step that is encrypted using s to be a ciphertext C A, m ;
The data providing second encryption unit encrypts rm , 1, dm [1] ,..., Rm , N, dm [N] with the public key of the data using device, and the ciphertext C B, m Providing data second encryption step;
A data providing and transmitting step in which the data providing and transmitting unit transmits the ciphertext C A, m and the ciphertext C B, m to the data using device;
In the data utilization device,
Data use receiving unit, a ciphertext C A, m ciphertext C B, receives the m, first data use reception step of recording the data usage records unit ciphertext C A, m ciphertext C B, the m When,
Data usage transmitting section, a data utilization transmitting step of transmitting data d m usage E ciphertext C A of, and m to the secure computing apparatus,
In the secret computing device,
A secret calculation receiving step in which the secret calculation receiving unit receives the method of use E and the ciphertext C A, m ;
The secret calculation decryption unit decrypts the ciphertext C A, m using the secret key sk s, and generates random numbers (r m, 1,0 , r m, 1,1 ), ..., (r m, N, 0 , a secret computation decryption step to obtain rm , N, 1 );
Logic circuit generating unit includes a logic circuit generating step for generating a logic circuit C E of usage E,
The garbled circuit generation unit uses the random numbers (rm , 1, 0 , rm , 1, 1 ), ..., (rm , N, 0 , rm , N, 1 ) to generate rm , n, dm. A garbled circuit generation step of generating a garbled circuit GC E that outputs C E (d m ) [q] when [n] is input;
A secret calculation transmitting unit that transmits a garbled circuit GC E to the data using device;
In the data utilization device,
A data use receiving unit for receiving a garbled circuit GC E , a second data use receiving step;
Data utilization decryption step in which the data utilization decryption unit decrypts the ciphertext C B, m using the secret key sk u to obtain rm , 1, dm [1] , ..., rm , N, dm [N] When,
Data utilization execution unit, r m, 1, dm [ 1], ..., r m, N, dm [N] and garbled circuit GC E C E with (d m) [1], ..., C E ( d m ) A data use execution step for obtaining [Q].
M個のデータ提供装置、データ利用装置、秘密計算装置を用いて、データdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)を求める秘密計算方法であって、
Mを1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとして、
m番目の前記データ提供装置において、
データ提供記録部が、あらかじめNビット以下のデータdを記録しておき、
前記データ利用装置において、
データ利用鍵生成部が、秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開するデータ利用鍵生成ステップと、
前記秘密計算装置において、
秘密計算鍵生成部が、秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する秘密計算鍵生成ステップと、
m番目の前記データ提供装置において、
データ提供鍵取得部が、前記データ利用装置の公開鍵pkと前記秘密計算装置の公開鍵pkを取得するデータ提供鍵取得ステップと、
データ提供乱数生成部が、両方が分かればデータdが分かる断片Z、Zを生成するデータ提供乱数生成ステップと、
データ提供第1暗号化部が、断片Zを、前記公開鍵pkを用いて暗号化し、暗号文CA,mとするデータ提供第1暗号化ステップと、
データ提供第2暗号化部が、断片Zを、前記データ利用装置の公開鍵で暗号化し、暗号文CB,mとするデータ提供第2暗号化ステップと、
データ提供送信部が、暗号文CA,mと暗号文CB,mを、前記データ利用装置に送信するデータ提供送信ステップと、
前記データ利用装置において、
データ利用受信部が、暗号文CA,mと暗号文CB,mを受信し、データ利用記録部に暗号文CA,mと暗号文CB,mを記録する第1データ利用受信ステップと、
データ利用送信部が、データdの利用方法Eと暗号文CA,mとを前記秘密計算装置に送信するデータ利用送信ステップと、
前記秘密計算装置において、
秘密計算受信部が、利用方法Eと暗号文CA,mとを受信する秘密計算受信ステップと、
秘密計算復号部が、秘密鍵skを用いて暗号文CA,mを復号し、断片Z得る秘密計算復号ステップと、
論理回路生成部が、利用方法Eの論理回路Cを生成する論理回路生成ステップと、
錯乱回路生成部が、断片Zを用いて、断片Zが入力されたときにC(d)[q]を出力する錯乱回路ZCを生成する錯乱回路生成ステップと、
秘密計算送信部が、錯乱回路ZCを前記データ利用装置に送信する秘密計算送信ステップと、
前記データ利用装置において、
データ利用受信部が、錯乱回路ZCを受信する第2データ利用受信ステップと、
データ利用復号部が、秘密鍵skを用いて暗号文CB,mを復号し、断片Zを得るデータ利用復号ステップと、
データ利用実行部が、断片Zと錯乱回路ZCを用いてC(d)[1],…,C(d)[Q]を求めるデータ利用実行ステップと
を有することを特徴とする秘密計算方法。
M data providing apparatus, the data utilizing apparatus, using the secure computing apparatus, in secure computing method of obtaining the output C E when the input to the logic circuit C E (d m) to the corresponding data d m in usage E There,
M is an integer of 1 or more, m is an integer of 1 to M, N is an integer of 1 or more, n is an integer of 1 to N, Q is an integer of 1 or more, q is an integer of 1 to Q, dm [ n] is a lower q-th bit of the lower n-th bit data d m, C E (d m ) [q] is C E (d m),
In the m-th data providing apparatus,
Data providing recording unit may be recorded in advance N-bit following data d m,
In the data utilization device,
A data usage key generating unit that generates a secret key sk u and a public key pk u and publishes the public key pk u ;
In the secret computing device,
A secret calculation key generation unit that generates a secret key sk s and a public key pk s and publishes the public key pk s ;
In the m-th data providing apparatus,
A data provision key obtaining unit for obtaining a public key pk u of the data using device and a public key pk s of the secret computing device;
Data providing random number generation unit, and the data providing random number generation step of generating a fragment Z 1, Z 2 where data d m is found if both are known,
A data providing first encryption unit encrypts the fragment Z 1 using the public key pk s to obtain a ciphertext C A, m ;
Data providing second encryption unit fragment Z 2, encrypted with a public key of the data utilizing apparatus, the data providing a second encryption step of ciphertext C B, and m,
A data providing and transmitting step in which the data providing and transmitting unit transmits the ciphertext C A, m and the ciphertext C B, m to the data using device;
In the data utilization device,
Data use receiving unit, a ciphertext C A, m ciphertext C B, receives the m, first data use reception step of recording the data usage records unit ciphertext C A, m ciphertext C B, the m When,
Data usage transmitting section, a data utilization transmitting step of transmitting data d m usage E ciphertext C A of, and m to the secure computing apparatus,
In the secret computing device,
A secret calculation receiving step in which the secret calculation receiving unit receives the method of use E and the ciphertext C A, m ;
A secret calculation decryption unit decrypts the ciphertext C A, m using the secret key sk s to obtain a fragment Z 1 ;
Logic circuit generating unit includes a logic circuit generating step for generating a logic circuit C E of usage E,
A confusion circuit generation unit that generates a confusion circuit ZC that outputs C E (d m ) [q] when the fragment Z 2 is input using the fragment Z 1 ;
A secret calculation transmission unit that transmits a confusion circuit ZC to the data utilization device;
In the data utilization device,
A second data utilization reception step in which the data utilization receiver receives the confusion circuit ZC;
A data use decryption step in which the data use decryption unit decrypts the ciphertext C B, m using the secret key sk u to obtain a fragment Z 2 ;
The data use execution unit includes a data use execution step for obtaining C E (d m ) [1],..., C E (d m ) [Q] using the fragment Z 2 and the confusion circuit ZC. Secret calculation method.
データ利用装置と秘密計算装置を用いて、データdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)を求める秘密計算方法であって、
Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、d[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとして、
前記データ利用装置において、
データ提供記録部が、あらかじめNビット以下のデータdを記録しておき、
前記秘密計算装置において、
秘密計算鍵生成部が、秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する秘密計算鍵生成ステップと、
前記データ利用装置において、
データ提供鍵取得部が、前記秘密計算装置の公開鍵pkを取得するデータ提供鍵取得ステップと、
データ提供乱数生成部が、2N個の乱数(r1,0,r1,1),…,(rN,0,rN,1)を生成するデータ提供乱数生成ステップと、
インデックス作成部が、データdを示すインデックスmを作成するインデックス作成ステップと、
データ提供第1暗号化部が、前記乱数(r1,0,r1,1),…,(rN,0,rN,1)を、前記公開鍵pkを用いて暗号化し、暗号文Cとするデータ提供第1暗号化ステップと、
データ提供送信部が、暗号文Cとインデックスmを前記秘密計算装置に送信するデータ提供送信ステップと、
データ利用記録部が、前記インデックスmとr1,d[1],…,rN,d[N]を記録するデータ利用記録ステップと、
情報破棄部が、データdと乱数(r1,0,r1,1),…,(rN,0,rN,1)を破棄する情報破棄ステップと、
前記秘密計算装置において、
秘密計算受信部が、暗号文Cとインデックスmを受信する第1秘密計算受信ステップと、
秘密計算復号部が、秘密鍵skを用いてインデックスmに対応する暗号文Cを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1)をインデックスmと対応付けて秘密計算記録部に記録する秘密計算復号部と、
前記データ利用装置において、
データ利用送信部が、データdの利用方法Eとインデックスmとを前記秘密計算装置に送信するデータ利用送信ステップと、
前記秘密計算装置において、
秘密計算受信部が、利用方法Eとインデックスmとを受信する第2秘密計算受信ステップと、
論理回路生成部が、利用方法Eの論理回路Cを生成する論理回路生成ステップと、
garbled circuit生成部が、乱数(r1,0,r1,1),…,(rN,0,rN,1)を用いて、rn,d[n]が入力されたときにC(d)[q]を出力するgarbled circuit GCを生成するgarbled circuit生成ステップと、
秘密計算送信部が、garbled circuit GCを前記データ利用装置に送信する秘密計算送信ステップと、
前記データ利用装置において、
データ利用受信部が、garbled circuit GCを受信するデータ利用受信ステップと、
データ利用実行部が、r1,d[1],…,rN,d[N]とgarbled circuit GCを用いてC(d)[1],…,C(d)[Q]を求めるデータ利用実行部と
を有することを特徴とする秘密計算方法。
A secret calculation method for obtaining an output C E (d) when data d is input to a logic circuit CE corresponding to the utilization method E using a data utilization device and a secret computation device,
N is an integer greater than or equal to 1, n is an integer greater than or equal to 1 and less than or equal to N, Q is an integer greater than or equal to 1, q is an integer greater than or equal to 1 and less than or equal to Q, d [n] is the lower nth bit of data d, C E (d ) [Q] is the lower qth bit of C E (d)
In the data utilization device,
The data providing recording unit records data d of N bits or less in advance,
In the secret computing device,
A secret calculation key generation unit that generates a secret key sk s and a public key pk s and publishes the public key pk s ;
In the data utilization device,
A data provision key obtaining unit for obtaining a public key pk s of the secret computing device;
A data provision random number generation unit for generating 2N random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 );
An index creating step in which the index creating unit creates an index m indicating the data d;
The data providing first encryption unit encrypts the random number (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) using the public key pk s and A data providing first encryption step with sentence C A ;
A data providing and transmitting step in which the data providing and transmitting unit transmits the ciphertext CA and the index m to the secret computing device;
A data use recording step in which a data use recording unit records the index m and r1 , d [1] , ..., rN , d [N] ;
An information discarding step in which the information discarding unit discards the data d and random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 );
In the secret computing device,
A first secret calculation receiving step in which the secret calculation receiving unit receives the ciphertext C A and the index m;
Secure computing decryption unit decrypts the ciphertext C A corresponding to the index m with a secret key sk s, a random number (r 1,0, r 1,1), ..., (r N, 0, r N, 1 ) a secret calculation decoding unit that records the secret calculation recording unit in association with the index m;
In the data utilization device,
A data use transmitting step in which the data use transmitting unit transmits the use method E and the index m of the data d to the secret computing device;
In the secret computing device,
A second secret calculation receiving step in which the secret calculation receiving unit receives the usage method E and the index m;
Logic circuit generating unit includes a logic circuit generating step for generating a logic circuit C E of usage E,
When the garbled circuit generation unit inputs rn , d [n] using random numbers (r 1,0 , r 1,1 ),..., (r N, 0 , r N, 1 ), E. (d) Garbled circuit for generating [q] A garbled circuit generating step for generating GC E ;
A secret calculation transmitting unit that transmits a garbled circuit GC E to the data using device;
In the data utilization device,
A data use receiving step in which the data use receiving unit receives the garbled circuit GC E ;
Data utilization execution unit, r 1, d [1] , ..., r N, d [N] and C E with garbled circuit GC E (d) [ 1], ..., C E (d) [Q] And a data use execution unit for obtaining the secret calculation method.
データ利用装置と秘密計算装置を用いて、データdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)を求める秘密計算方法であって、
Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、d[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとして、
前記データ利用装置において、
データ提供記録部が、あらかじめNビット以下のデータdを記録しておき、
前記秘密計算装置において、
秘密計算鍵生成部が、秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する秘密計算鍵生成ステップと、
前記データ利用装置において、
データ提供鍵取得部が、前記秘密計算装置の公開鍵pkを取得するデータ提供鍵取得ステップと、
データ提供乱数生成部が、2N個の乱数(r1,0,r1,1),…,(rN,0,rN,1)を生成するデータ提供乱数生成ステップと、
インデックス作成部が、データdを示すインデックスmを作成するインデックス作成ステップと、
データ提供第1暗号化部が、前記乱数(r1,0,r1,1),…,(rN,0,rN,1)を、前記公開鍵pkを用いて暗号化し、暗号文Cとするデータ提供第1暗号化ステップと、
データ提供送信部が、暗号文Cとインデックスmを前記秘密計算装置に送信し、データ利用記録部に前記インデックスmとr1,d[1],…,rN,d[N]を記録するデータ提供送信ステップと、
情報破棄部が、データdと乱数(r1,0,r1,1),…,(rN,0,rN,1)を破棄する情報破棄ステップと、
前記秘密計算装置において、
秘密計算受信部が、暗号文Cとインデックスmを受信し、暗号文Cをインデックスmと対応付けて秘密計算記録部に記録するする第1秘密計算受信ステップと、
前記データ利用装置において、
データ利用送信部が、データdの利用方法Eとインデックスmとを前記秘密計算装置に送信するデータ利用送信ステップと、
前記秘密計算装置において、
秘密計算受信部が、利用方法Eとインデックスmとを受信する第2秘密計算受信ステップと、
秘密計算復号部が、秘密鍵skを用いてインデックスmに対応する暗号文Cを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1)を得る秘密計算復号部と、
論理回路生成部が、利用方法Eの論理回路Cを生成する論理回路生成ステップと、
garbled circuit生成部が、乱数(r1,0,r1,1),…,(rN,0,rN,1)を用いて、rn,d[n]が入力されたときにC(d)[q]を出力するgarbled circuit GCを生成するgarbled circuit生成ステップと、
秘密計算送信部が、garbled circuit GCを前記データ利用装置に送信する秘密計算送信ステップと、
前記データ利用装置において、
データ利用受信部が、garbled circuit GCを受信するデータ利用受信ステップと、
データ利用実行部が、r1,d[1],…,rN,d[N]とgarbled circuit GCを用いてC(d)[1],…,C(d)[Q]を求めるデータ利用実行部と
を有することを特徴とする秘密計算方法。
A secret calculation method for obtaining an output C E (d) when data d is input to a logic circuit CE corresponding to the utilization method E using a data utilization device and a secret computation device,
N is an integer greater than or equal to 1, n is an integer greater than or equal to 1 and less than or equal to N, Q is an integer greater than or equal to 1, q is an integer greater than or equal to 1 and less than or equal to Q, d [n] is the lower nth bit of data d, C E (d ) [Q] is the lower qth bit of C E (d)
In the data utilization device,
The data providing recording unit records data d of N bits or less in advance,
In the secret computing device,
A secret calculation key generation unit that generates a secret key sk s and a public key pk s and publishes the public key pk s ;
In the data utilization device,
A data provision key obtaining unit for obtaining a public key pk s of the secret computing device;
A data provision random number generation unit for generating 2N random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 );
An index creating step in which the index creating unit creates an index m indicating the data d;
The data providing first encryption unit encrypts the random number (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) using the public key pk s and A data providing first encryption step with sentence C A ;
The data provision transmitting unit transmits the ciphertext C A and the index m to the secret computing device, and records the index m and r 1, d [1] ,..., R N, d [N] in the data use recording unit. A data provision sending step,
An information discarding step in which the information discarding unit discards the data d and random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 );
In the secret computing device,
Secure computing receiver receives the ciphertext C A and index m, a first secure computing receiving step of recording the secure computing recording unit in association with the ciphertext C A and index m,
In the data utilization device,
A data use transmitting step in which the data use transmitting unit transmits the use method E and the index m of the data d to the secret computing device;
In the secret computing device,
A second secret calculation receiving step in which the secret calculation receiving unit receives the usage method E and the index m;
Secure computing decryption unit decrypts the ciphertext C A corresponding to the index m with a secret key sk s, a random number (r 1,0, r 1,1), ..., (r N, 0, r N, 1 ) a secret calculation decryption unit to obtain
Logic circuit generating unit includes a logic circuit generating step for generating a logic circuit C E of usage E,
When the garbled circuit generation unit inputs rn , d [n] using random numbers (r 1,0 , r 1,1 ),..., (r N, 0 , r N, 1 ), E. (d) Garbled circuit for generating [q] A garbled circuit generating step for generating GC E ;
A secret calculation transmitting unit that transmits a garbled circuit GC E to the data using device;
In the data utilization device,
A data use receiving step in which the data use receiving unit receives the garbled circuit GC E ;
Data utilization execution unit, r 1, d [1] , ..., r N, d [N] and C E with garbled circuit GC E (d) [ 1], ..., C E (d) [Q] And a data use execution unit for obtaining the secret calculation method.
M個のデータ提供装置、データ利用装置、秘密計算装置を用いて、データdの使用方法を制限しながら、データdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)を求める不正使用防止方法であって、
Mを1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとして、
m番目の前記データ提供装置において、
データ提供記録部が、あらかじめNビット以下のデータdを記録しておき、
前記データ利用装置において、
データ利用鍵生成部が、秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開するデータ利用鍵生成ステップと、
前記秘密計算装置において、
秘密計算鍵生成部が、秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する秘密計算鍵生成ステップと、
m番目の前記データ提供装置において、
データ提供鍵取得部が、前記データ利用装置の公開鍵pkと前記秘密計算装置の公開鍵pkを取得するデータ提供鍵取得ステップと、
データ提供乱数生成部が、2N個の乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を生成するデータ提供乱数生成ステップと、
データ提供第1暗号化部が、前記乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1),利用条件Lを、前記公開鍵pkを用いて暗号化し、暗号文CA,mとするデータ提供第1暗号化ステップと、
データ提供第2暗号化部が、rm,1,dm[1],…,rm,N,dm[N]を、前記データ利用装置の公開鍵で暗号化し、暗号文CB,mとするデータ提供第2暗号化ステップと、
データ提供送信部が、暗号文CA,mと暗号文CB,mを、前記データ利用装置に送信するデータ提供送信ステップと、
前記データ利用装置において、
データ利用受信部が、暗号文CA,mと暗号文CB,mを受信し、データ利用記録部に暗号文CA,mと暗号文CB,mを記録する第1データ利用受信ステップと、
データ利用送信部が、データdの利用方法Eと暗号文CA,mとを前記秘密計算装置に送信するデータ利用送信ステップと、
前記秘密計算装置において、
秘密計算受信部が、利用方法Eと暗号文CA,mとを受信する秘密計算受信ステップと、
秘密計算復号部が、秘密鍵skを用いて暗号文CA,mを復号し、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1),利用条件Lを得る秘密計算復号ステップと、
利用条件確認部が、利用方法Eが利用条件Lを満たしているかを確認する利用条件確認ステップと、
論理回路生成部が、利用方法Eの論理回路Cを生成する論理回路生成ステップと、
garbled circuit生成部が、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を用いて、rm,n,dm[n]が入力されたときにC(d)[q]を出力するgarbled circuit GCを生成するgarbled circuit生成ステップと、
秘密計算送信部が、garbled circuit GCを前記データ利用装置に送信する秘密計算送信ステップと、
前記データ利用装置において、
データ利用受信部が、garbled circuit GCを受信する第2データ利用受信ステップと、
データ利用復号部が、秘密鍵skを用いて暗号文CB,mを復号し、rm,1,dm[1],…,rm,N,dm[N]を得るデータ利用復号ステップと、
データ利用実行部が、rm,1,dm[1],…,rm,N,dm[N]とgarbled circuit GCを用いてC(d)[1],…,C(d)[Q]を求めるデータ利用実行ステップと
を有することを特徴とする不正使用防止方法。
M data providing apparatus, the data utilizing apparatus, using the secure computing apparatus, while limiting the use of the data d m, the output C when the input to the logic circuit C E corresponding data d m in usage E An unauthorized use prevention method for obtaining E (d m ),
M is an integer of 1 or more, m is an integer of 1 to M, N is an integer of 1 or more, n is an integer of 1 to N, Q is an integer of 1 or more, q is an integer of 1 to Q, dm [ n] is a lower q-th bit of the lower n-th bit data d m, C E (d m ) [q] is C E (d m),
In the m-th data providing apparatus,
Data providing recording unit may be recorded in advance N-bit following data d m,
In the data utilization device,
A data usage key generating unit that generates a secret key sk u and a public key pk u and publishes the public key pk u ;
In the secret computing device,
A secret calculation key generation unit that generates a secret key sk s and a public key pk s and publishes the public key pk s ;
In the m-th data providing apparatus,
A data provision key obtaining unit for obtaining a public key pk u of the data using device and a public key pk s of the secret computing device;
Data provision random number generator generates 2N random numbers (rm , 1, 0 , rm , 1, 1 ), ..., (rm , N, 0 , rm , N, 1 ) Generation step;
The data providing first encryption unit obtains the random number (rm , 1, 0 , rm , 1, 1 ), ..., (rm , N, 0 , rm , N, 1 ) and the use condition Lm . A first data providing encryption step that encrypts the data using the public key pk s into ciphertext C A, m ;
The data providing second encryption unit encrypts rm , 1, dm [1] ,..., Rm , N, dm [N] with the public key of the data using device, and the ciphertext C B, m Providing data second encryption step;
A data providing and transmitting step in which the data providing and transmitting unit transmits the ciphertext C A, m and the ciphertext C B, m to the data using device;
In the data utilization device,
Data use receiving unit, a ciphertext C A, m ciphertext C B, receives the m, first data use reception step of recording the data usage records unit ciphertext C A, m ciphertext C B, the m When,
Data usage transmitting section, a data utilization transmitting step of transmitting data d m usage E ciphertext C A of, and m to the secure computing apparatus,
In the secret computing device,
A secret calculation receiving step in which the secret calculation receiving unit receives the method of use E and the ciphertext C A, m ;
The secret calculation decryption unit decrypts the ciphertext C A, m using the secret key sk s, and generates random numbers (r m, 1,0 , r m, 1,1 ), ..., (r m, N, 0 , r m, N, 1 ), use condition L m
Use condition confirmation unit, and a use condition confirmation step of confirming whether usage E meets the usage conditions L m,
Logic circuit generating unit includes a logic circuit generating step for generating a logic circuit C E of usage E,
The garbled circuit generation unit uses the random numbers (rm , 1, 0 , rm , 1, 1 ), ..., (rm , N, 0 , rm , N, 1 ) to generate rm , n, dm. A garbled circuit generation step of generating a garbled circuit GC E that outputs C E (d m ) [q] when [n] is input;
A secret calculation transmitting unit that transmits a garbled circuit GC E to the data using device;
In the data utilization device,
A data use receiving unit for receiving a garbled circuit GC E , a second data use receiving step;
Data utilization decryption step in which the data utilization decryption unit decrypts the ciphertext C B, m using the secret key sk u to obtain rm , 1, dm [1] , ..., rm , N, dm [N] When,
Data utilization execution unit, r m, 1, dm [ 1], ..., r m, N, dm [N] and garbled circuit GC E C E with (d m) [1], ..., C E ( d m ) A data use execution step for obtaining [Q].
データ利用装置と秘密計算装置を用いて、データdの使用方法を制限しながら、データdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)を求める不正使用防止方法であって、
Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、d[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとして、
前記データ利用装置において、
データ提供記録部が、あらかじめNビット以下のデータdと、データdの利用条件Lを記録しておき、
前記秘密計算装置において、
秘密計算鍵生成部が、秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する秘密計算鍵生成ステップと、
前記データ利用装置において、
データ提供鍵取得部が、前記秘密計算装置の公開鍵pkを取得するデータ提供鍵取得ステップと、
データ提供乱数生成部が、2N個の乱数(r1,0,r1,1),…,(rN,0,rN,1)を生成するデータ提供乱数生成ステップと、
インデックス作成部が、データdを示すインデックスmを作成するインデックス作成ステップと、
データ提供第1暗号化部が、前記乱数(r1,0,r1,1),…,(rN,0,rN,1),利用条件Lを、前記公開鍵pkを用いて暗号化し、暗号文Cとするデータ提供第1暗号化ステップと、
データ提供送信部が、暗号文Cとインデックスmを前記秘密計算装置に送信するデータ提供送信ステップと、
データ利用記録部が、前記インデックスmとr1,d[1],…,rN,d[N]を記録するデータ利用記録ステップと、
情報破棄部が、データd、乱数(r1,0,r1,1),…,(rN,0,rN,1)、利用条件Lを破棄する情報破棄ステップと、
前記秘密計算装置において、
秘密計算受信部が、暗号文Cとインデックスmを受信する第1秘密計算受信ステップと、
秘密計算復号部が、秘密鍵skを用いてインデックスmに対応する暗号文Cを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1),利用条件Lを求め、乱数(r1,0,r1,1),…,(rN,0,rN,1)と利用条件Lを、インデックスmと対応付けて記録する秘密計算復号ステップと、
前記データ利用装置において、
データ利用送信部が、データdの利用方法Eとインデックスmとを前記秘密計算装置に送信するデータ利用送信ステップと、
前記秘密計算装置において、
秘密計算受信部が、利用方法Eとインデックスmとを受信する第2秘密計算受信ステップと、
利用条件確認部が、利用方法Eが利用条件Lを満たしているかを確認する利用条件確認ステップと、
論理回路生成部が、利用方法Eの論理回路Cを生成する論理回路生成ステップと、
garbled circuit生成部が、乱数(r1,0,r1,1),…,(rN,0,rN,1)を用いて、rn,d[n]が入力されたときにC(d)[q]を出力するgarbled circuit GCを生成するgarbled circuit生成ステップと、
秘密計算送信部が、garbled circuit GCを前記データ利用装置に送信する秘密計算送信ステップと、
前記データ利用装置において、
データ利用受信部が、garbled circuit GCを受信するデータ利用受信ステップと、
データ利用実行部が、r1,d[1],…,rN,d[N]とgarbled circuit GCを用いてC(d)[1],…,C(d)[Q]を求めるデータ利用実行ステップと
を有することを特徴とする不正使用防止方法。
Unauthorized use prevention for obtaining output C E (d) when data d is input to logic circuit CE corresponding to utilization method E while restricting the utilization method of data d by using the data utilization device and the secret computing device A method,
N is an integer greater than or equal to 1, n is an integer greater than or equal to 1 and less than or equal to N, Q is an integer greater than or equal to 1, q is an integer greater than or equal to 1 and less than or equal to Q, d [n] is the lower nth bit of data d, C E (d ) [Q] is the lower qth bit of C E (d)
In the data utilization device,
The data providing recording unit records data d of N bits or less and a use condition L of data d in advance,
In the secret computing device,
A secret calculation key generation unit that generates a secret key sk s and a public key pk s and publishes the public key pk s ;
In the data utilization device,
A data provision key obtaining unit for obtaining a public key pk s of the secret computing device;
A data provision random number generation unit for generating 2N random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 );
An index creating step in which the index creating unit creates an index m indicating the data d;
The data providing first encryption unit uses the public key pk s to obtain the random number (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) and the use condition L. A data providing first encryption step that encrypts the ciphertext C A ;
A data providing and transmitting step in which the data providing and transmitting unit transmits the ciphertext CA and the index m to the secret computing device;
A data use recording step in which a data use recording unit records the index m and r1 , d [1] , ..., rN , d [N] ;
An information discarding step in which the information discarding unit discards the data d, random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ), and usage conditions L;
In the secret computing device,
A first secret calculation receiving step in which the secret calculation receiving unit receives the ciphertext C A and the index m;
Secure computing decryption unit decrypts the ciphertext C A corresponding to the index m with a secret key sk s, a random number (r 1,0, r 1,1), ..., (r N, 0, r N, 1 ), a usage condition L, a random number (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) and a usage condition L are recorded in association with the index m A computational decoding step;
In the data utilization device,
A data use transmitting step in which the data use transmitting unit transmits the use method E and the index m of the data d to the secret computing device;
In the secret computing device,
A second secret calculation receiving step in which the secret calculation receiving unit receives the usage method E and the index m;
A usage condition confirmation unit for confirming whether the usage method E satisfies the usage condition L;
Logic circuit generating unit includes a logic circuit generating step for generating a logic circuit C E of usage E,
When the garbled circuit generation unit inputs rn , d [n] using random numbers (r 1,0 , r 1,1 ),..., (r N, 0 , r N, 1 ), E. (d) Garbled circuit for generating [q] A garbled circuit generating step for generating GC E ;
A secret calculation transmitting unit that transmits a garbled circuit GC E to the data using device;
In the data utilization device,
A data use receiving step in which the data use receiving unit receives the garbled circuit GC E ;
Data utilization execution unit, r 1, d [1] , ..., r N, d [N] and C E with garbled circuit GC E (d) [ 1], ..., C E (d) [Q] A method of preventing unauthorized use, comprising: a data use execution step for obtaining
データ利用装置と秘密計算装置を用いて、データdの使用方法を制限しながら、データdを利用方法Eに対応する論理回路Cに入力したときの出力C(d)を求める不正使用防止方法であって、
Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、d[n]はデータdの下位n番目のビット、C(d)[q]はC(d)の下位q番目のビットとして、
前記データ利用装置において、
データ提供記録部が、あらかじめNビット以下のデータdと、データdの利用条件Lを記録しておき、
前記秘密計算装置において、
秘密計算鍵生成部が、秘密鍵sk、公開鍵pkを生成し、公開鍵pkを公開する秘密計算鍵生成ステップと、
前記データ利用装置において、
データ提供鍵取得部が、前記秘密計算装置の公開鍵pkを取得するデータ提供鍵取得ステップと、
データ提供乱数生成部が、2N個の乱数(r1,0,r1,1),…,(rN,0,rN,1)を生成するデータ提供乱数生成ステップと、
インデックス作成部が、データdを示すインデックスmを作成するインデックス作成ステップと、
データ提供第1暗号化部が、前記乱数(r1,0,r1,1),…,(rN,0,rN,1),利用条件Lを、前記公開鍵pkを用いて暗号化し、暗号文Cとするデータ提供第1暗号化ステップと、
データ提供送信部が、暗号文Cとインデックスmを前記秘密計算装置に送信するデータ提供送信ステップと、
データ利用記録部が、前記インデックスmとr1,d[1],…,rN,d[N]を記録するデータ利用記録ステップと、
情報破棄部が、データd、乱数(r1,0,r1,1),…,(rN,0,rN,1)、利用条件Lを破棄する情報破棄ステップと、
前記秘密計算装置において、
秘密計算受信部が、暗号文Cとインデックスmを受信し、暗号文Cをインデックスmと対応付けて記録する第1秘密計算受信ステップと、
前記データ利用装置において、
データ利用送信部が、データdの利用方法Eとインデックスmとを前記秘密計算装置に送信するデータ利用送信ステップと、
前記秘密計算装置において、
秘密計算受信部が、利用方法Eとインデックスmとを受信する第2秘密計算受信ステップと、
秘密計算復号部が、秘密鍵skを用いてインデックスmに対応する暗号文Cを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1),利用条件Lを求める秘密計算復号ステップと、
利用条件確認部が、利用方法Eが利用条件Lを満たしているかを確認する利用条件確認ステップと、
論理回路生成部が、利用方法Eの論理回路Cを生成する論理回路生成ステップと、
garbled circuit生成部が、乱数(r1,0,r1,1),…,(rN,0,rN,1)を用いて、rn,d[n]が入力されたときにC(d)[q]を出力するgarbled circuit GCを生成するgarbled circuit生成ステップと、
秘密計算送信部が、garbled circuit GCを前記データ利用装置に送信する秘密計算送信ステップと、
前記データ利用装置において、
データ利用受信部が、garbled circuit GCを受信するデータ利用受信ステップと、
データ利用実行部が、r1,d[1],…,rN,d[N]とgarbled circuit GCを用いてC(d)[1],…,C(d)[Q]を求めるデータ利用実行ステップと
を有することを特徴とする不正使用防止方法。
Unauthorized use prevention for obtaining output C E (d) when data d is input to logic circuit CE corresponding to utilization method E while restricting the utilization method of data d by using the data utilization device and the secret computing device A method,
N is an integer greater than or equal to 1, n is an integer greater than or equal to 1 and less than or equal to N, Q is an integer greater than or equal to 1, q is an integer greater than or equal to 1 and less than or equal to Q, d [n] is the lower nth bit of data d, C E (d ) [Q] is the lower qth bit of C E (d)
In the data utilization device,
The data providing recording unit records data d of N bits or less and a use condition L of data d in advance,
In the secret computing device,
A secret calculation key generation unit that generates a secret key sk s and a public key pk s and publishes the public key pk s ;
In the data utilization device,
A data provision key obtaining unit for obtaining a public key pk s of the secret computing device;
A data provision random number generation unit for generating 2N random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 );
An index creating step in which the index creating unit creates an index m indicating the data d;
The data providing first encryption unit uses the public key pk s to obtain the random number (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) and the use condition L. A data providing first encryption step that encrypts the ciphertext C A ;
A data providing and transmitting step in which the data providing and transmitting unit transmits the ciphertext CA and the index m to the secret computing device;
A data use recording step in which a data use recording unit records the index m and r1 , d [1] , ..., rN , d [N] ;
An information discarding step in which the information discarding unit discards the data d, random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ), and usage conditions L;
In the secret computing device,
Secure computing receiver receives the ciphertext C A and index m, and a first secret calculated reception step of recording in association with the ciphertext C A and index m,
In the data utilization device,
A data use transmitting step in which the data use transmitting unit transmits the use method E and the index m of the data d to the secret computing device;
In the secret computing device,
A second secret calculation receiving step in which the secret calculation receiving unit receives the usage method E and the index m;
The secret calculation decryption unit decrypts the ciphertext C A corresponding to the index m using the secret key sk s , and random numbers (r 1,0 , r 1,1 ),..., (R N, 0 , r N, 1 ) a secret calculation decryption step for obtaining a use condition L;
A usage condition confirmation unit for confirming whether the usage method E satisfies the usage condition L;
Logic circuit generating unit includes a logic circuit generating step for generating a logic circuit C E of usage E,
When the garbled circuit generation unit inputs rn , d [n] using random numbers (r 1,0 , r 1,1 ),..., (r N, 0 , r N, 1 ), E. (d) Garbled circuit for generating [q] A garbled circuit generating step for generating GC E ;
A secret calculation transmitting unit that transmits a garbled circuit GC E to the data using device;
In the data utilization device,
A data use receiving step in which the data use receiving unit receives the garbled circuit GC E ;
Data utilization execution unit, r 1, d [1] , ..., r N, d [N] and C E with garbled circuit GC E (d) [ 1], ..., C E (d) [Q] A method of preventing unauthorized use, comprising: a data use execution step for obtaining
JP2010038663A 2010-02-24 2010-02-24 Secret calculation system, secret calculation method, unauthorized use prevention method Active JP5337076B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010038663A JP5337076B2 (en) 2010-02-24 2010-02-24 Secret calculation system, secret calculation method, unauthorized use prevention method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010038663A JP5337076B2 (en) 2010-02-24 2010-02-24 Secret calculation system, secret calculation method, unauthorized use prevention method

Publications (2)

Publication Number Publication Date
JP2011175072A true JP2011175072A (en) 2011-09-08
JP5337076B2 JP5337076B2 (en) 2013-11-06

Family

ID=44687986

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010038663A Active JP5337076B2 (en) 2010-02-24 2010-02-24 Secret calculation system, secret calculation method, unauthorized use prevention method

Country Status (1)

Country Link
JP (1) JP5337076B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013205592A (en) * 2012-03-28 2013-10-07 Toshiba Corp Secret calculation system, aggregation device, and aggregation result decoding program
JP2018112613A (en) * 2017-01-10 2018-07-19 日本電信電話株式会社 Encryption system, key generation device, encryption device, decryption device, obfuscation device, execution device, and program
WO2023166625A1 (en) * 2022-03-02 2023-09-07 日本電信電話株式会社 Program execution system, data processing device, program execution method, and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007336181A (en) * 2006-06-14 2007-12-27 Nippon Telegr & Teleph Corp <Ntt> Watermark embedding method, system, and program
JP2009175194A (en) * 2008-01-21 2009-08-06 Nippon Telegr & Teleph Corp <Ntt> Secret computation system, secret computation method, and secret computation program
JP2009199068A (en) * 2008-01-21 2009-09-03 Nippon Telegr & Teleph Corp <Ntt> Secret calculation system, secret calculation method, secret calculation device, verification device, and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007336181A (en) * 2006-06-14 2007-12-27 Nippon Telegr & Teleph Corp <Ntt> Watermark embedding method, system, and program
JP2009175194A (en) * 2008-01-21 2009-08-06 Nippon Telegr & Teleph Corp <Ntt> Secret computation system, secret computation method, and secret computation program
JP2009199068A (en) * 2008-01-21 2009-09-03 Nippon Telegr & Teleph Corp <Ntt> Secret calculation system, secret calculation method, secret calculation device, verification device, and program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200800885006; 櫻井 祐子、鈴木 幸太郎、横尾 真、岩崎 敦: 'セキュアキーワード広告オークションプロトコルの提案' 情報処理学会研究報告 2008-ICS-153 知能と複雑系 Vol. 2008 No.104, 20081023, p.41-48 *
JPN6013034963; 櫻井 祐子、鈴木 幸太郎、横尾 真、岩崎 敦: 'セキュアキーワード広告オークションプロトコルの提案' 情報処理学会研究報告 2008-ICS-153 知能と複雑系 Vol. 2008 No.104, 20081023, p.41-48 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013205592A (en) * 2012-03-28 2013-10-07 Toshiba Corp Secret calculation system, aggregation device, and aggregation result decoding program
JP2018112613A (en) * 2017-01-10 2018-07-19 日本電信電話株式会社 Encryption system, key generation device, encryption device, decryption device, obfuscation device, execution device, and program
WO2023166625A1 (en) * 2022-03-02 2023-09-07 日本電信電話株式会社 Program execution system, data processing device, program execution method, and program

Also Published As

Publication number Publication date
JP5337076B2 (en) 2013-11-06

Similar Documents

Publication Publication Date Title
CN110214440B (en) Computing system, method for transmitting protected data and readable storage medium
US8165304B2 (en) Domain digital rights management system, license sharing method for domain digital rights management system, and license server
KR100708162B1 (en) Method for managing a domain and apparatus therefor
JP5959667B2 (en) Data decryption device, attribute-based encryption system, random number element removal device, data decryption method, and data decryption program
JP6363032B2 (en) Key change direction control system and key change direction control method
US9515827B2 (en) Key management device, communication device, communication system, and computer program product
US20210135851A1 (en) Encryption processing system and encryption processing method
JP2007114494A (en) Secrecy computing method and device
JP5337076B2 (en) Secret calculation system, secret calculation method, unauthorized use prevention method
WO2017194231A1 (en) Digital rights management for anonymous digital content sharing
JP5512559B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION SYSTEM, ENCRYPTION METHOD, PROGRAM
JP2019125956A (en) Key exchange method, key exchange system, key exchange server device, communication device, and program
KR101790948B1 (en) Apparatus and method for providing drm service, apparatus and method for playing contents using drm service
KR100765750B1 (en) Method and apparatus for encrypting/decrypting efficiently according to broadcast encryption scheme
JP6794160B2 (en) Methods and systems for securely obtaining decryption keys for encrypted content and playing the content
JP5469631B2 (en) Decryption result verification apparatus, method and program
JP6320943B2 (en) Key sharing device, key sharing system, key sharing method, and program
JP5142361B2 (en) Validity verification device
US10936757B2 (en) Registration destination determination device, searchable encryption system, destination determination method, and computer readable medium
KR101597243B1 (en) User terminal apparatus, personal information management server, and method for managing personal informaion thereby
JP2015070498A (en) Key exchange system, key exchange device, key exchange method and program
JP7321414B2 (en) Transmission control method and program
JP2011138015A (en) Encrypting system, encrypting device, decoding device, encrypting method, program, recording medium
JP2010246149A (en) Transmitting apparatus, transmitting method, receiving apparatus, receiving method, recording medium and communication system
Singh et al. Security of Data with 3DES & Watermarking Algorithm

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110701

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130710

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130802

R150 Certificate of patent or registration of utility model

Ref document number: 5337076

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350