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 PDFInfo
- 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
Links
Images
Abstract
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.
しかしながら、保管データを利用する際は通常データを復元するため、情報漏洩のリスクが高まる。本発明の目的は、利用時の情報漏洩のリスクを抑えたセキュリティーシステムを提供することである。 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個のデータ提供装置、データ利用装置、秘密計算装置からなり、データdm(ただし、dmはNビット以下)を利用方法Eに対応する論理回路CEに入力したときの出力CE(dm)(ただし、CE(dm)はQビット以下)を求める秘密計算システムである。まず、Mを1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdmの下位n番目のビット、CE(dm)[q]はCE(dm)の下位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ビット以下のデータdmを記録する。データ提供鍵取得部は、データ利用装置の公開鍵pkuと秘密計算装置の公開鍵pksを取得する。データ提供乱数生成部は、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)を、公開鍵pksを用いて暗号化し、暗号文CA,mとする。データ提供第2暗号化部は、rm,1,dm[1],…,rm,N,dm[N]を、データ利用装置の公開鍵で暗号化し、暗号文CB,mとする。データ提供送信部は、暗号文CA,mと暗号文CB,mを、データ利用装置に送信する。データ利用鍵生成部は、秘密鍵sku、公開鍵pkuを生成し、公開鍵pkuを公開する。データ利用受信部は、暗号文CA,mと暗号文CB,m、およびgarbled circuit GCEを受信する。データ利用記録部は、暗号文CA,mと暗号文CB,mを記録する。データ利用送信部は、データdmの利用方法Eと暗号文CA,mとを秘密計算装置に送信する。なお、利用方法Eは1つのデータdmの利用方法でなく、複数のデータの利用方法でもよい。この場合は、利用送信部は、複数のデータの利用方法Eと利用対象のデータに対応する複数の暗号文CA,mとを秘密計算装置に送信する。“データdmの利用方法E”とは、複数のデータの利用方法も含んでおり、“暗号文CA,mとを秘密計算装置に送信する”とは、1つ以上の暗号文CA,mを秘密計算装置に送信する意味である。データ利用復号部は、秘密鍵skuを用いて暗号文CB,mを復号し、rm,1,dm[1],…,rm,N,dm[N]を得る。なお、複数のデータを利用する場合は、複数の暗号文CB,mを復号する。データ利用実行部はrm,1,dm[1],…,rm,N,dm[N]とgarbled circuit GCEを用いてCE(dm)[1],…,CE(dm)[Q]を求める。なお、複数のデータを利用するときは、データの数に応じた乱数とgarbled circuit GCEを用いてCE(dm1,…,dmx)を求める。ただし、xはデータの数とする。秘密計算鍵生成部は、秘密鍵sks、公開鍵pksを生成し、公開鍵pksを公開する。秘密計算受信部は、利用方法Eと暗号文CA,mとを受信する。なお、利用方法Eとは、データdmを用いて行う演算などの処理を意味する。秘密計算復号部は、秘密鍵sksを用いて暗号文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の論理回路CEを生成する。garbled circuit生成部は、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を用いて、rm,n,dm[n]が入力されたときにCE(dm)[q]を出力するgarbled circuit GCEを生成する。なお、複数のデータを利用するときは、データの数に応じた乱数を用いて、garbled circuit GCEを生成する。つまり、garbled circuit生成部は、少なくとも乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を用いて、garbled circuit GCEを生成する。秘密計算送信部は、garbled circuit GCEをデータ利用装置に送信する。 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に対応する論理回路CEに入力したときの出力CE(d)(ただし、CE(d)はQビット以下)を求める秘密計算システムである。まず、Nを1以上の整数、nを1以上N以下の整数、d[n]はデータdの下位n番目のビット、CE(d)[q]はCE(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を記録する。データ提供鍵取得部は、秘密計算装置の公開鍵pksを取得する。データ提供乱数生成部は、2N個の乱数(r1,0,r1,1),…,(rN,0,rN,1)を生成する。インデックス作成部は、データdを示すインデックスmを作成する。データ提供第1暗号化部は、乱数(r1,0,r1,1),…,(rN,0,rN,1)を、公開鍵pksを用いて暗号化し、暗号文CAとする。データ提供送信部は、暗号文CAとインデックスmを秘密計算装置に送信する。データ利用記録部は、インデックスmとr1,d[1],…,rN,d[N]を記録する。情報破棄部は、データdと乱数(r1,0,r1,1),…,(rN,0,rN,1)を破棄する。データ利用送信部は、データdの利用方法Eとインデックスmとを秘密計算装置に送信する。データ利用受信部は、garbled circuit GCEを受信する。データ利用実行部は、r1,d[1],…,rN,d[N]とgarbled circuit GCEを用いてCE(d)[1],…,CE(d)[Q]を求める。秘密計算鍵生成部は、秘密鍵sks、公開鍵pksを生成し、公開鍵pksを公開する。秘密計算受信部は、暗号文CAとインデックスm、または利用方法Eとインデックスmとを受信する。秘密計算復号部は、秘密鍵sksを用いてインデックスmに対応する暗号文CAを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1)を得る。秘密計算記録部は、乱数(r1,0,r1,1),…,(rN,0,rN,1)または暗号文CAを、インデックスmと対応付けて記録する。論理回路生成部は、利用方法Eの論理回路CEを生成する。garbled circuit生成部は、乱数(r1,0,r1,1),…,(rN,0,rN,1)を用いて、rn,d[n]が入力されたときにCE(d)[q]を出力するgarbled circuit GCEを生成する。秘密計算送信部は、garbled circuit GCEをデータ利用装置に送信する。 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を、公開鍵pksを用いて暗号化し、暗号文CAとする。そして、秘密計算復号部は、暗号文CAを復号し、乱数(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の秘密計算システムによれば、データ利用装置にデータdmを知らせることなく、データdmを利用方法Eに対応する論理回路CEに入力したときの出力CE(dm)のみをデータ利用装置に与えることができる。また、本発明の第2の秘密計算システムによれば、データ利用装置からデータdを秘密計算装置に渡した後は、データdに対するインデックスmのみがデータ利用装置に記録され、データd自体はデータ利用装置には残らない。そして、データ利用装置はデータdを利用方法Eに対応する論理回路CEに入力したときの出力CE(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.
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。 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個のデータ提供装置1001,…,100M、データ利用装置200、秘密計算装置300からなり、データdm(ただし、dmはNビット以下)を利用方法Eに対応する論理回路CEに入力したときの出力CE(dm)(ただし、CE(dm)はQビット以下)を求める。ここで、Mを1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdmの下位n番目のビット、CE(dm)[q]はCE(dm)の下位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番目のデータ提供装置100mは、データ提供鍵取得部110m、データ提供乱数生成部120m、データ提供第1暗号化部130m、データ提供第2暗号化部140m、データ提供送信部150m、データ提供記録部190mを備える。データ利用装置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
データ提供装置100mのデータ提供記録部190mは、Nビット以下のデータdmをあらかじめ記録しておく。データ利用装置200のデータ利用鍵生成部210は、秘密鍵sku、公開鍵pkuを生成し、公開鍵pkuを公開する(S210)。秘密計算鍵生成部310は、秘密鍵sks、公開鍵pksを生成し、公開鍵pksを公開する(S310)。そして、データ提供装置100mのデータ提供鍵取得部110mは、データ利用装置200の公開鍵pkuと秘密計算装置300の公開鍵pksを取得する(S110m)。
Data Data provide
データ提供乱数生成部120mは、2N個の乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を生成する(S120m)。データ提供第1暗号化部130mは、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を、公開鍵pksを用いて暗号化し、暗号文CA,mとする(S130m)。データ提供第2暗号化部140mは、rm,1,dm[1],…,rm,N,dm[N]を、データ利用装置の公開鍵で暗号化し、暗号文CB,mとする(140m)。データ提供送信部150mは、暗号文CA,mと暗号文CB,mを、データ利用装置200に送信する(S150m)。データ利用装置200のデータ利用受信部220は、暗号文CA,mと暗号文CB,mを受信し、データ利用記録部290に暗号文CA,mと暗号文CB,mを記録する(S221)。データ利用送信部230は、データdmの利用方法Eと暗号文CA,mとを秘密計算装置300に送信する(S230)。なお、利用方法Eは1つのデータdmの利用方法でなく、複数のデータの利用方法でもよい。この場合は、利用送信部は、複数のデータの利用方法Eと利用対象のデータに対応する複数の暗号文CA,mとを秘密計算装置に送信する。秘密計算装置300の秘密計算受信部320は、利用方法Eと暗号文CA,mとを受信し、秘密計算記録部390に記録する(S320)。なお、利用方法Eとは、データdmを用いて行う演算などの処理を意味する。
The data provision random
秘密計算復号部330は、秘密鍵sksを用いて暗号文CA,mを復号し、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を得る(S330)。なお、複数の暗号文CA,mを復号したときには、乱数の数が2Nの複数倍となる。以下の説明でも、乱数の数は2Nとして説明するが、利用するデータが複数ある場合には、乱数の数は利用するデータの数に応じて決めればよい。論理回路生成部340は、利用方法Eの論理回路CEを生成する(S340)。garbled circuit生成部350は、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を用いて、rm,n,dm[n]が入力されたときにCE(dm)[q]を出力するgarbled circuit GCEを生成する(S350)。なお、複数のデータを利用するときは、データの数に応じた乱数を用いて、garbled circuit GCEを生成する。また、garbled circuit GCEを生成する方法については、非特許文献1(3.2 Protocol II、および 2 Previous WorkのYao’s Two Party Secure Function Evaluation)に詳しく説明されている。
The secret
秘密計算送信部360は、garbled circuit GCEをデータ利用装置に送信する(S360)。データ利用装置200のデータ利用受信部220は、garbled circuit GCEを受信する(S222)。データ利用復号部240は、秘密鍵skuを用いて暗号文CB,mを復号し、rm,1,dm[1],…,rm,N,dm[N]を得る(S240)。なお、複数のデータを利用する場合は、複数の暗号文CB,mを復号する。データ利用実行部250はrm,1,dm[1],…,rm,N,dm[N]とgarbled circuit GCEを用いてCE(dm)[1],…,CE(dm)[Q]を求める(S250)。なお、複数のデータを利用するときは、データの数に応じた乱数とgarbled circuit GCEを用いてCE(dm1,…,dmx)を求める。ただし、xはデータの数とする。したがって、データ利用装置200はCE(dm)を得ることができる。
The secret
このように、本実施例の秘密計算システムによれば、データ利用装置にデータdmを知らせることなく、データdmを利用方法Eに対応する論理回路CEに入力したときの出力CE(dm)のみをデータ利用装置に与えることができる。したがって、データを利用するときにデータ利用装置から情報が漏洩するリスクがない。 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つの断片的な情報を断片Z1、Z2とし、2つの断片Z1、Z2の両方が分かった場合にデータdmが復元できるとする。このような断片Z1、Z2を用意すれば、非特許文献1のgarbled circuitに限定する必要はない。断片Z1は実施例1の乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)に相当する情報、断片Z2は実施例1のrm,1,dm[1],…,rm,N,dm[N]に相当する情報である。言い換えれば、実施例1の乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)は断片Z1の1つの例であり、実施例1のrm,1,dm[1],…,rm,N,dm[N]は断片Z2の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”m、データ提供第1暗号化部130”m、データ提供第2暗号化部140”m、秘密計算復号部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
以下に、実施例1と本変形例との違いを説明する。データ提供乱数生成部120”mは、2個の断片Z1,Z2を生成する(S120”m)。データ提供第1暗号化部130”mは、断片Z1を公開鍵pksを用いて暗号化し、暗号文CA,mとする(S130”m)。データ提供第2暗号化部140”mは、断片Z2をデータ利用装置の公開鍵で暗号化し、暗号文CB,mとする(140”m)。
Below, the difference between Example 1 and this modification is demonstrated. The data provision random
秘密計算復号部330”は、秘密鍵sksを用いて暗号文CA,mを復号し、断片Z1を得る(S330”)。錯乱回路生成部350”は、断片Z1を用いて、断片Z2が入力されたときにCE(dm)[q]を出力する錯乱回路ZCを生成する(S350”)。錯乱回路ZCが、実施例1のgarbled circuit GCEに相当する。言い換えると、garbled circuit GCEは錯乱回路ZCの1つの例である。秘密計算送信部360”は、錯乱回路ZCをデータ利用装置200”に送信する(S360”)。データ利用装置200”のデータ利用受信部220”は、錯乱回路ZCを受信する(S222”)。データ利用復号部240”は、秘密鍵skuを用いて暗号文CB,mを復号し、断片Z2を得る(S240”)。データ利用実行部250”は断片Z2と錯乱回路ZCを用いてCE(dm)[1],…,CE(dm)[Q]を求める(S250”)。その他の構成、処理フローは同じである。したがって、データ利用装置200はCE(dm)を得ることができる。
The secret
実施例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に対応する論理回路CEに入力したときの出力CE(d)(ただし、CE(d)はQビット以下)を求める秘密計算システムである。ここで、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、d[n]はデータdの下位n番目のビット、CE(d)[q]はCE(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
まず、データ利用装置400でデータを提供する処理について説明する。データ提供記録部490に、Nビット以下のデータdを記録しておく。そして、秘密計算装置600の秘密計算鍵生成部310が、秘密鍵sks、公開鍵pksを生成し、公開鍵pksを公開する(S310)。データ提供鍵取得部410は、秘密計算装置600の公開鍵pksを取得する(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)を、公開鍵pksを用いて暗号化し、暗号文CAとする(S430)。データ提供送信部450は、暗号文CAとインデックス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
秘密計算装置600の秘密計算受信部620は、暗号文CAとインデックスmを受信する(S620)。秘密計算復号部630は、秘密鍵sksを用いてインデックスmに対応する暗号文CAを復号し、乱数(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が外部に漏れる心配がない。
次に、データ利用装置400で実際にデータを利用する処理を説明する。データ利用装置400のデータ利用送信部530は、データdの利用方法Eとインデックスmとを秘密計算装置600に送信する(S530)。秘密計算装置600の秘密計算受信部620は、利用方法Eとインデックスmとを受信する(S625)。論理回路生成部340は、利用方法Eの論理回路CEを生成する(S340)。garbled circuit生成部650は、乱数(r1,0,r1,1),…,(rN,0,rN,1)を用いて、rn,d[n]が入力されたときにCE(d)[q]を出力するgarbled circuit GCEを生成する(S650)。なお、garbled circuit GCEを生成する方法については、非特許文献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
秘密計算送信部360は、garbled circuit GCEをデータ利用装置400に送信する(S360)。データ利用装置400のデータ利用受信部520は、garbled circuit GCEを受信する(S522)。データ利用実行部550は、r1,d[1],…,rN,d[N]とgarbled circuit GCEを用いてCE(d)[1],…,CE(d)[Q]を求める(S550)。したがって、データ利用装置200はCE(dm)を得ることができる。
The secret
このように、本実施例の秘密計算システムによれば、データ利用装置からデータdを秘密計算装置に渡した後は、データdに対するインデックスmのみがデータ利用装置に記録され、データd自体はデータ利用装置には残らない。そして、データ利用装置はデータdを利用方法Eに対応する論理回路CEに入力したときの出力CE(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の後、暗号文CAを復号した上で、乱数(r1,0,r1,1),…,(rN,0,rN,1)をインデックスmと対応付けて記録した。しかし、ステップS620の後、暗号文CAをインデックスmと対応付けて記録しておき、必要に応じて暗号文CAを復号してもよい。図5は、このように処理する場合の処理フローを示している。具体的には、ステップS620の後、秘密計算装置600の秘密計算記録部690は、暗号文CAをインデックスmと対応付けて記録する。また、ステップS625の後、秘密計算装置600の秘密計算復号部630は、秘密鍵sksを用いてインデックスmに対応する暗号文CAを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1)を求める(S630)。そして、論理回路生成部340が、利用方法Eの論理回路CEを生成する(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
実施例3では、実施例1の秘密計算システムをベースとして、データの不正利用も防止できる秘密計算システムについて説明する。図6に実施例3の秘密計算システムの機能構成例を、図7に実施例3の秘密計算システムの処理フローを示す。実施例3の秘密計算システムは、M個のデータ提供装置100’1,…,100’M、データ利用装置200、秘密計算装置300’からなり、データ利用装置200のデータdmの利用方法を制限した上で、データdmを利用方法Eに対応する論理回路CEに入力したときの出力CE(dm)を求める。ここで、Mを1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdmの下位n番目のビット、CE(dm)[q]はCE(dm)の下位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’mは、データ提供鍵取得部110m、データ提供乱数生成部120m、データ提供第1暗号化部130’m、データ提供第2暗号化部140m、データ提供送信部150m、データ提供記録部190’mを備える。データ利用装置200は、データ利用鍵生成部210、データ利用受信部220、データ利用送信部230、データ利用復号部240、データ利用実行部250、データ利用記録部290を備える。秘密計算装置300’は、秘密計算鍵生成部310、秘密計算受信部320、秘密計算復号部330’、論理回路生成部340、garbled circuit生成部350、秘密計算送信部360、利用条件確認部370、秘密計算記録部390’を備える。データ提供装置100’mは、実施例1とデータ提供第1暗号化部130’m、データ提供記録部190’mの処理内容が異なる。データ利用装置200は実施例1と同じである。秘密計算装置300’は、実施例1と秘密計算復号部330’、秘密計算記録部390’の処理内容が異なり、利用条件確認部370が追加されている。
The m-th data providing apparatus 100 ′ m includes a data provision
以下に、実施例1との違いを説明する。データ提供記録部190’mが利用条件Lmも記録しておく。データ提供第1暗号化部130’mが、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1),利用条件Lmを、公開鍵pksを用いて暗号化し、暗号文CAとする(S130’m)。そして、秘密計算復号部330’は、暗号文CAを復号し、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1),利用条件Lmを得る(S330’)。そして、ステップS330’の次に秘密計算装置300’の利用条件確認部370が、利用方法Eが利用条件Lmを満たしているかを確認し、満たしている場合にはステップS340に進み、満たしていない場合には処理を終了する(S370)。なお、利用条件Lmとは、例えば、「実行者」、「データ数」、「演算種別」などのカテゴリに分け、
Lm=(NTT,>10000,平均値)
とした場合、「NTT社員が実行者(ログインしたユーザ)であり、10000データ以上の平均値演算」を行う場合に限り利用を認めるというように設定すればよい。
Hereinafter, differences from the first embodiment will be described. The data
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が、許可されていない利用方法でデータdmを利用することを防止できる。したがって、データの不正利用を防ぐことができる。 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に対応する論理回路CEに入力したときの出力CE(d)を求める秘密計算システムである。ここで、Nを1以上の整数、nを1以上N以下の整数、d[n]はデータdの下位n番目のビット、CE(d)[q]はCE(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
以下に、実施例2との違いを説明する。データ提供記録部490’が利用条件Lも記録しておく。データ提供第1暗号化部430’が、乱数(r1,0,r1,1),…,(rN,0,rN,1),利用条件Lを、公開鍵pksを用いて暗号化し、暗号文CAとする(S430’)。また、情報破棄部460’は、データd、乱数(r1,0,r1,1),…,(rN,0,rN,1)、利用条件Lを破棄する(S460’)。そして、秘密計算復号部630’は、暗号文CAを復号し、乱数(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
実施例4はこのような構成なので、実施例2の効果に加え、データ利用装置400’が、許可されていない利用方法でデータdmを利用することを防止できる。したがって、データの不正利用を防ぐことができる。 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の後、暗号文CAを復号した上で、乱数(r1,0,r1,1),…,(rN,0,rN,1)をインデックスmと対応付けて記録した。しかし、ステップS620の後、暗号文CAをインデックスmと対応付けて記録しておき、必要に応じて暗号文CAを復号してもよい。図10は、このように処理する場合の処理フローを示している。具体的には、ステップS620の後、秘密計算装置600’の秘密計算記録部690’は、暗号文CAをインデックスmと対応付けて記録する。また、ステップS625の後、秘密計算装置600の秘密計算復号部630’は、秘密鍵sksを用いてインデックスmに対応する暗号文CAを復号し、乱数(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
プログラム、記録媒体
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
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” データ提供装置 110m、410 データ提供鍵取得部
120m、120”m、420 データ提供乱数生成部
130m、130’m、130”m、430、430’ データ提供第1暗号化部
140m、140”m データ提供第2暗号化部
150m、450 データ提供送信部
190m、190’m、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 ″
Claims (12)
Mを1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdmの下位n番目のビット、CE(dm)[q]はCE(dm)の下位q番目のビットとして、
m番目の前記データ提供装置は、
Nビット以下のデータdmを記録するデータ提供記録部と、
前記データ利用装置の公開鍵pkuと前記秘密計算装置の公開鍵pksを取得するデータ提供鍵取得部と、
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)を、前記公開鍵pksを用いて暗号化し、暗号文CA,mとするデータ提供第1暗号化部と、
rm,1,dm[1],…,rm,N,dm[N]を、前記データ利用装置の公開鍵で暗号化し、暗号文CB,mとするデータ提供第2暗号化部と、
暗号文CA,mと暗号文CB,mを、前記データ利用装置に送信するデータ提供送信部と
を備え、
前記データ利用装置は、
秘密鍵sku、公開鍵pkuを生成し、公開鍵pkuを公開するデータ利用鍵生成部と、
暗号文CA,mと暗号文CB,m、およびgarbled circuit GCEを受信するデータ利用受信部と、
暗号文CA,mと暗号文CB,mを記録するデータ利用記録部と、
データdmの利用方法Eと暗号文CA,mとを前記秘密計算装置に送信するデータ利用送信部と、
秘密鍵skuを用いて暗号文CB,mを復号し、rm,1,dm[1],…,rm,N,dm[N]を得るデータ利用復号部と、
rm,1,dm[1],…,rm,N,dm[N]とgarbled circuit GCEを用いてCE(dm)[1],…,CE(dm)[Q]を求めるデータ利用実行部と
を備え、
前記秘密計算装置は、
秘密鍵sks、公開鍵pksを生成し、公開鍵pksを公開する秘密計算鍵生成部と、
利用方法Eと暗号文CA,mとを受信する秘密計算受信部と、
秘密鍵sksを用いて暗号文CA,mを復号し、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を得る秘密計算復号部と、
利用方法Eの論理回路CEを生成する論理回路生成部と、
乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を用いて、rm,n,dm[n]が入力されたときにCE(dm)[q]を出力するgarbled circuit GCEを生成するgarbled circuit生成部と、
garbled circuit GCEを前記データ利用装置に送信する秘密計算送信部と
を備える
ことを特徴とする秘密計算システム。 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を1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdmの下位n番目のビット、CE(dm)[q]はCE(dm)の下位q番目のビットとして、
m番目の前記データ提供装置は、
Nビット以下のデータdmを記録するデータ提供記録部と、
前記データ利用装置の公開鍵pkuと前記秘密計算装置の公開鍵pksを取得するデータ提供鍵取得部と、
両方が分かればデータdmが分かる断片Z1、Z2を生成するデータ提供乱数生成部と、
断片Z1を、前記公開鍵pksを用いて暗号化し、暗号文CA,mとするデータ提供第1暗号化部と、
断片Z2を、前記データ利用装置の公開鍵で暗号化し、暗号文CB,mとするデータ提供第2暗号化部と、
暗号文CA,mと暗号文CB,mを、前記データ利用装置に送信するデータ提供送信部と
を備え、
前記データ利用装置は、
秘密鍵sku、公開鍵pkuを生成し、公開鍵pkuを公開するデータ利用鍵生成部と、
暗号文CA,mと暗号文CB,m、および錯乱回路ZCを受信するデータ利用受信部と、
暗号文CA,mと暗号文CB,mを記録するデータ利用記録部と、
データdmの利用方法Eと暗号文CA,mとを前記秘密計算装置に送信するデータ利用送信部と、
秘密鍵skuを用いて暗号文CB,mを復号し、断片Z2を得るデータ利用復号部と、
断片Z2と錯乱回路ZCを用いてCE(dm)[1],…,CE(dm)[Q]を求めるデータ利用実行部と
を備え、
前記秘密計算装置は、
秘密鍵sks、公開鍵pksを生成し、公開鍵pksを公開する秘密計算鍵生成部と、
利用方法Eと暗号文CA,mとを受信する秘密計算受信部と、
秘密鍵sksを用いて暗号文CA,mを復号し、断片Z1を得る秘密計算復号部と、
利用方法Eの論理回路CEを生成する論理回路生成部と、
断片Z1を用いて、断片Z2が入力されたときにCE(dm)[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.
Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、d[n]はデータdの下位n番目のビット、CE(d)[q]はCE(d)の下位q番目のビットとして、
前記データ利用装置は、
Nビット以下のデータdを記録するデータ提供記録部と、
前記秘密計算装置の公開鍵pksを取得するデータ提供鍵取得部と、
2N個の乱数(r1,0,r1,1),…,(rN,0,rN,1)を生成するデータ提供乱数生成部と、
データdを示すインデックスmを作成するインデックス作成部と、
前記乱数(r1,0,r1,1),…,(rN,0,rN,1)を、前記公開鍵pksを用いて暗号化し、暗号文CAとするデータ提供第1暗号化部と、
暗号文CAとインデックスmを前記秘密計算装置に送信するデータ提供送信部と、
前記インデックスmとr1,d[1],…,rN,d[N]を記録するデータ利用記録部と、
データdと乱数(r1,0,r1,1),…,(rN,0,rN,1)を破棄する情報破棄部と、
データdの利用方法Eとインデックスmとを前記秘密計算装置に送信するデータ利用送信部と、
garbled circuit GCEを受信するデータ利用受信部と、
r1,d[1],…,rN,d[N]とgarbled circuit GCEを用いてCE(d)[1],…,CE(d)[Q]を求めるデータ利用実行部と
を備え、
前記秘密計算装置は、
秘密鍵sks、公開鍵pksを生成し、公開鍵pksを公開する秘密計算鍵生成部と、
暗号文CAとインデックスm、または利用方法Eとインデックスmとを受信する秘密計算受信部と、
秘密鍵sksを用いてインデックスmに対応する暗号文CAを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1)を得る秘密計算復号部と、
乱数(r1,0,r1,1),…,(rN,0,rN,1)または暗号文CAを、インデックスmと対応付けて記録する秘密計算記録部と、
利用方法Eの論理回路CEを生成する論理回路生成部と、
乱数(r1,0,r1,1),…,(rN,0,rN,1)を用いて、rn,d[n]が入力されたときにCE(d)[q]を出力するgarbled circuit GCEを生成するgarbled circuit生成部と、
garbled circuit GCEを前記データ利用装置に送信する秘密計算送信部と
を備える
ことを特徴とする秘密計算システム。 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を1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdmの下位n番目のビット、CE(dm)[q]はCE(dm)の下位q番目のビットとして、
m番目の前記データ提供装置は、
Nビット以下のデータdmと、データdmの利用条件Lmを記録するデータ提供記録部と、
前記データ利用装置の公開鍵pkuと前記秘密計算装置の公開鍵pksを取得するデータ提供鍵取得部と、
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),利用条件Lmを、前記公開鍵pksを用いて暗号化し、暗号文CA,mとするデータ提供第1暗号化部と、
rm,1,dm[1],…,rm,N,dm[N]を、前記データ利用装置の公開鍵で暗号化し、暗号文CB,mとするデータ提供第2暗号化部と、
暗号文CA,mと暗号文CB,mを、前記データ利用装置に送信するデータ提供送信部と
を備え、
前記データ利用装置は、
秘密鍵sku、公開鍵pkuを生成し、公開鍵pkuを公開するデータ利用鍵生成部と、
暗号文CA,mと暗号文CB,m、およびgarbled circuit GCEを受信するデータ利用受信部と、
暗号文CA,mと暗号文CB,mを記録するデータ利用記録部と、
データdmの利用方法Eと暗号文CA,mとを前記秘密計算装置に送信するデータ利用送信部と、
秘密鍵skuを用いて暗号文CB,mを復号し、rm,1,dm[1],…,rm,N,dm[N]を得るデータ利用復号部と、
rm,1,dm[1],…,rm,N,dm[N]とgarbled circuit GCEを用いてCE(dm)[1],…,CE(dm)[Q]を求めるデータ利用実行部と
を備え、
前記秘密計算装置は、
秘密鍵sks、公開鍵pksを生成し、公開鍵pksを公開する秘密計算鍵生成部と、
利用方法Eと暗号文CA,mとを受信する秘密計算受信部と、
秘密鍵sksを用いて暗号文CA,mを復号し、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1),利用条件Lmを得る秘密計算復号部と、
利用方法Eが利用条件Lmを満たしているかを確認する利用条件確認部と、
利用方法Eの論理回路CEを生成する論理回路生成部と、
乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を用いて、rm,n,dm[n]が入力されたときにCE(dm)[q]を出力するgarbled circuit GCEを生成するgarbled circuit生成部と、
garbled circuit GCEを前記データ利用装置に送信する秘密計算送信部と
を備える
ことを特徴とする秘密計算システム。 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.
Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、d[n]はデータdの下位n番目のビット、CE(d)[q]はCE(d)の下位q番目のビットとして、
前記データ利用装置は、
Nビット以下のデータdと、データdの利用条件Lを記録するデータ提供記録部と、
前記秘密計算装置の公開鍵pksを取得するデータ提供鍵取得部と、
2N個の乱数(r1,0,r1,1),…,(rN,0,rN,1)を生成するデータ提供乱数生成部と、
データdを示すインデックスmを作成するインデックス作成部と、
前記乱数(r1,0,r1,1),…,(rN,0,rN,1),利用条件Lを、前記公開鍵pksを用いて暗号化し、暗号文CAとするデータ提供第1暗号化部と、
暗号文CAとインデックスmを前記秘密計算装置に送信するデータ提供送信部と、
前記インデックスmとr1,d[1],…,rN,d[N]を記録するデータ利用記録部と、
データd、乱数(r1,0,r1,1),…,(rN,0,rN,1)、利用条件Lを破棄する情報破棄部と、
データdの利用方法Eとインデックスmとを前記秘密計算装置に送信するデータ利用送信部と、
garbled circuit GCEを受信するデータ利用受信部と、
r1,d[1],…,rN,d[N]とgarbled circuit GCEを用いてCE(d)[1],…,CE(d)[Q]を求めるデータ利用実行部と
を備え、
前記秘密計算装置は、
秘密鍵sks、公開鍵pksを生成し、公開鍵pksを公開する秘密計算鍵生成部と、
暗号文CAとインデックスm、または利用方法Eとインデックスmとを受信する秘密計算受信部と、
秘密鍵sksを用いてインデックスmに対応する暗号文CAを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1),利用条件Lを得る秘密計算復号部と、
乱数(r1,0,r1,1),…,(rN,0,rN,1)と利用条件L、もしくは、暗号文CAを、インデックスmと対応付けて記録する秘密計算記録部と、
利用方法Eが利用条件Lを満たしているかを確認する利用条件確認部と、
利用方法Eの論理回路CEを生成する論理回路生成部と、
乱数(r1,0,r1,1),…,(rN,0,rN,1)を用いて、rn,d[n]が入力されたときにCE(d)[q]を出力するgarbled circuit GCEを生成するgarbled circuit生成部と、
garbled circuit GCEを前記データ利用装置に送信する秘密計算送信部と
を備える
ことを特徴とする秘密計算システム。 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を1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdmの下位n番目のビット、CE(dm)[q]はCE(dm)の下位q番目のビットとして、
m番目の前記データ提供装置において、
データ提供記録部が、あらかじめNビット以下のデータdmを記録しておき、
前記データ利用装置において、
データ利用鍵生成部が、秘密鍵sku、公開鍵pkuを生成し、公開鍵pkuを公開するデータ利用鍵生成ステップと、
前記秘密計算装置において、
秘密計算鍵生成部が、秘密鍵sks、公開鍵pksを生成し、公開鍵pksを公開する秘密計算鍵生成ステップと、
m番目の前記データ提供装置において、
データ提供鍵取得部が、前記データ利用装置の公開鍵pkuと前記秘密計算装置の公開鍵pksを取得するデータ提供鍵取得ステップと、
データ提供乱数生成部が、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)を、前記公開鍵pksを用いて暗号化し、暗号文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データ利用受信ステップと、
データ利用送信部が、データdmの利用方法Eと暗号文CA,mとを前記秘密計算装置に送信するデータ利用送信ステップと、
前記秘密計算装置において、
秘密計算受信部が、利用方法Eと暗号文CA,mとを受信する秘密計算受信ステップと、
秘密計算復号部が、秘密鍵sksを用いて暗号文CA,mを復号し、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を得る秘密計算復号ステップと、
論理回路生成部が、利用方法Eの論理回路CEを生成する論理回路生成ステップと、
garbled circuit生成部が、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を用いて、rm,n,dm[n]が入力されたときにCE(dm)[q]を出力するgarbled circuit GCEを生成するgarbled circuit生成ステップと、
秘密計算送信部が、garbled circuit GCEを前記データ利用装置に送信する秘密計算送信ステップと、
前記データ利用装置において、
データ利用受信部が、garbled circuit GCEを受信する第2データ利用受信ステップと、
データ利用復号部が、秘密鍵skuを用いて暗号文CB,mを復号し、rm,1,dm[1],…,rm,N,dm[N]を得るデータ利用復号ステップと、
データ利用実行部が、rm,1,dm[1],…,rm,N,dm[N]とgarbled circuit GCEを用いてCE(dm)[1],…,CE(dm)[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を1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdmの下位n番目のビット、CE(dm)[q]はCE(dm)の下位q番目のビットとして、
m番目の前記データ提供装置において、
データ提供記録部が、あらかじめNビット以下のデータdmを記録しておき、
前記データ利用装置において、
データ利用鍵生成部が、秘密鍵sku、公開鍵pkuを生成し、公開鍵pkuを公開するデータ利用鍵生成ステップと、
前記秘密計算装置において、
秘密計算鍵生成部が、秘密鍵sks、公開鍵pksを生成し、公開鍵pksを公開する秘密計算鍵生成ステップと、
m番目の前記データ提供装置において、
データ提供鍵取得部が、前記データ利用装置の公開鍵pkuと前記秘密計算装置の公開鍵pksを取得するデータ提供鍵取得ステップと、
データ提供乱数生成部が、両方が分かればデータdmが分かる断片Z1、Z2を生成するデータ提供乱数生成ステップと、
データ提供第1暗号化部が、断片Z1を、前記公開鍵pksを用いて暗号化し、暗号文CA,mとするデータ提供第1暗号化ステップと、
データ提供第2暗号化部が、断片Z2を、前記データ利用装置の公開鍵で暗号化し、暗号文CB,mとするデータ提供第2暗号化ステップと、
データ提供送信部が、暗号文CA,mと暗号文CB,mを、前記データ利用装置に送信するデータ提供送信ステップと、
前記データ利用装置において、
データ利用受信部が、暗号文CA,mと暗号文CB,mを受信し、データ利用記録部に暗号文CA,mと暗号文CB,mを記録する第1データ利用受信ステップと、
データ利用送信部が、データdmの利用方法Eと暗号文CA,mとを前記秘密計算装置に送信するデータ利用送信ステップと、
前記秘密計算装置において、
秘密計算受信部が、利用方法Eと暗号文CA,mとを受信する秘密計算受信ステップと、
秘密計算復号部が、秘密鍵sksを用いて暗号文CA,mを復号し、断片Z1得る秘密計算復号ステップと、
論理回路生成部が、利用方法Eの論理回路CEを生成する論理回路生成ステップと、
錯乱回路生成部が、断片Z1を用いて、断片Z2が入力されたときにCE(dm)[q]を出力する錯乱回路ZCを生成する錯乱回路生成ステップと、
秘密計算送信部が、錯乱回路ZCを前記データ利用装置に送信する秘密計算送信ステップと、
前記データ利用装置において、
データ利用受信部が、錯乱回路ZCを受信する第2データ利用受信ステップと、
データ利用復号部が、秘密鍵skuを用いて暗号文CB,mを復号し、断片Z2を得るデータ利用復号ステップと、
データ利用実行部が、断片Z2と錯乱回路ZCを用いてCE(dm)[1],…,CE(dm)[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.
Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、d[n]はデータdの下位n番目のビット、CE(d)[q]はCE(d)の下位q番目のビットとして、
前記データ利用装置において、
データ提供記録部が、あらかじめNビット以下のデータdを記録しておき、
前記秘密計算装置において、
秘密計算鍵生成部が、秘密鍵sks、公開鍵pksを生成し、公開鍵pksを公開する秘密計算鍵生成ステップと、
前記データ利用装置において、
データ提供鍵取得部が、前記秘密計算装置の公開鍵pksを取得するデータ提供鍵取得ステップと、
データ提供乱数生成部が、2N個の乱数(r1,0,r1,1),…,(rN,0,rN,1)を生成するデータ提供乱数生成ステップと、
インデックス作成部が、データdを示すインデックスmを作成するインデックス作成ステップと、
データ提供第1暗号化部が、前記乱数(r1,0,r1,1),…,(rN,0,rN,1)を、前記公開鍵pksを用いて暗号化し、暗号文CAとするデータ提供第1暗号化ステップと、
データ提供送信部が、暗号文CAとインデックスmを前記秘密計算装置に送信するデータ提供送信ステップと、
データ利用記録部が、前記インデックスmとr1,d[1],…,rN,d[N]を記録するデータ利用記録ステップと、
情報破棄部が、データdと乱数(r1,0,r1,1),…,(rN,0,rN,1)を破棄する情報破棄ステップと、
前記秘密計算装置において、
秘密計算受信部が、暗号文CAとインデックスmを受信する第1秘密計算受信ステップと、
秘密計算復号部が、秘密鍵sksを用いてインデックスmに対応する暗号文CAを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1)をインデックスmと対応付けて秘密計算記録部に記録する秘密計算復号部と、
前記データ利用装置において、
データ利用送信部が、データdの利用方法Eとインデックスmとを前記秘密計算装置に送信するデータ利用送信ステップと、
前記秘密計算装置において、
秘密計算受信部が、利用方法Eとインデックスmとを受信する第2秘密計算受信ステップと、
論理回路生成部が、利用方法Eの論理回路CEを生成する論理回路生成ステップと、
garbled circuit生成部が、乱数(r1,0,r1,1),…,(rN,0,rN,1)を用いて、rn,d[n]が入力されたときにCE(d)[q]を出力するgarbled circuit GCEを生成するgarbled circuit生成ステップと、
秘密計算送信部が、garbled circuit GCEを前記データ利用装置に送信する秘密計算送信ステップと、
前記データ利用装置において、
データ利用受信部が、garbled circuit GCEを受信するデータ利用受信ステップと、
データ利用実行部が、r1,d[1],…,rN,d[N]とgarbled circuit GCEを用いてCE(d)[1],…,CE(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.
Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、d[n]はデータdの下位n番目のビット、CE(d)[q]はCE(d)の下位q番目のビットとして、
前記データ利用装置において、
データ提供記録部が、あらかじめNビット以下のデータdを記録しておき、
前記秘密計算装置において、
秘密計算鍵生成部が、秘密鍵sks、公開鍵pksを生成し、公開鍵pksを公開する秘密計算鍵生成ステップと、
前記データ利用装置において、
データ提供鍵取得部が、前記秘密計算装置の公開鍵pksを取得するデータ提供鍵取得ステップと、
データ提供乱数生成部が、2N個の乱数(r1,0,r1,1),…,(rN,0,rN,1)を生成するデータ提供乱数生成ステップと、
インデックス作成部が、データdを示すインデックスmを作成するインデックス作成ステップと、
データ提供第1暗号化部が、前記乱数(r1,0,r1,1),…,(rN,0,rN,1)を、前記公開鍵pksを用いて暗号化し、暗号文CAとするデータ提供第1暗号化ステップと、
データ提供送信部が、暗号文CAとインデックスmを前記秘密計算装置に送信し、データ利用記録部に前記インデックスmとr1,d[1],…,rN,d[N]を記録するデータ提供送信ステップと、
情報破棄部が、データdと乱数(r1,0,r1,1),…,(rN,0,rN,1)を破棄する情報破棄ステップと、
前記秘密計算装置において、
秘密計算受信部が、暗号文CAとインデックスmを受信し、暗号文CAをインデックスmと対応付けて秘密計算記録部に記録するする第1秘密計算受信ステップと、
前記データ利用装置において、
データ利用送信部が、データdの利用方法Eとインデックスmとを前記秘密計算装置に送信するデータ利用送信ステップと、
前記秘密計算装置において、
秘密計算受信部が、利用方法Eとインデックスmとを受信する第2秘密計算受信ステップと、
秘密計算復号部が、秘密鍵sksを用いてインデックスmに対応する暗号文CAを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1)を得る秘密計算復号部と、
論理回路生成部が、利用方法Eの論理回路CEを生成する論理回路生成ステップと、
garbled circuit生成部が、乱数(r1,0,r1,1),…,(rN,0,rN,1)を用いて、rn,d[n]が入力されたときにCE(d)[q]を出力するgarbled circuit GCEを生成するgarbled circuit生成ステップと、
秘密計算送信部が、garbled circuit GCEを前記データ利用装置に送信する秘密計算送信ステップと、
前記データ利用装置において、
データ利用受信部が、garbled circuit GCEを受信するデータ利用受信ステップと、
データ利用実行部が、r1,d[1],…,rN,d[N]とgarbled circuit GCEを用いてCE(d)[1],…,CE(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を1以上の整数、mを1以上M以下の整数、Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、dm[n]はデータdmの下位n番目のビット、CE(dm)[q]はCE(dm)の下位q番目のビットとして、
m番目の前記データ提供装置において、
データ提供記録部が、あらかじめNビット以下のデータdmを記録しておき、
前記データ利用装置において、
データ利用鍵生成部が、秘密鍵sku、公開鍵pkuを生成し、公開鍵pkuを公開するデータ利用鍵生成ステップと、
前記秘密計算装置において、
秘密計算鍵生成部が、秘密鍵sks、公開鍵pksを生成し、公開鍵pksを公開する秘密計算鍵生成ステップと、
m番目の前記データ提供装置において、
データ提供鍵取得部が、前記データ利用装置の公開鍵pkuと前記秘密計算装置の公開鍵pksを取得するデータ提供鍵取得ステップと、
データ提供乱数生成部が、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),利用条件Lmを、前記公開鍵pksを用いて暗号化し、暗号文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データ利用受信ステップと、
データ利用送信部が、データdmの利用方法Eと暗号文CA,mとを前記秘密計算装置に送信するデータ利用送信ステップと、
前記秘密計算装置において、
秘密計算受信部が、利用方法Eと暗号文CA,mとを受信する秘密計算受信ステップと、
秘密計算復号部が、秘密鍵sksを用いて暗号文CA,mを復号し、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1),利用条件Lmを得る秘密計算復号ステップと、
利用条件確認部が、利用方法Eが利用条件Lmを満たしているかを確認する利用条件確認ステップと、
論理回路生成部が、利用方法Eの論理回路CEを生成する論理回路生成ステップと、
garbled circuit生成部が、乱数(rm,1,0,rm,1,1),…,(rm,N,0,rm,N,1)を用いて、rm,n,dm[n]が入力されたときにCE(dm)[q]を出力するgarbled circuit GCEを生成するgarbled circuit生成ステップと、
秘密計算送信部が、garbled circuit GCEを前記データ利用装置に送信する秘密計算送信ステップと、
前記データ利用装置において、
データ利用受信部が、garbled circuit GCEを受信する第2データ利用受信ステップと、
データ利用復号部が、秘密鍵skuを用いて暗号文CB,mを復号し、rm,1,dm[1],…,rm,N,dm[N]を得るデータ利用復号ステップと、
データ利用実行部が、rm,1,dm[1],…,rm,N,dm[N]とgarbled circuit GCEを用いてCE(dm)[1],…,CE(dm)[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].
Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、d[n]はデータdの下位n番目のビット、CE(d)[q]はCE(d)の下位q番目のビットとして、
前記データ利用装置において、
データ提供記録部が、あらかじめNビット以下のデータdと、データdの利用条件Lを記録しておき、
前記秘密計算装置において、
秘密計算鍵生成部が、秘密鍵sks、公開鍵pksを生成し、公開鍵pksを公開する秘密計算鍵生成ステップと、
前記データ利用装置において、
データ提供鍵取得部が、前記秘密計算装置の公開鍵pksを取得するデータ提供鍵取得ステップと、
データ提供乱数生成部が、2N個の乱数(r1,0,r1,1),…,(rN,0,rN,1)を生成するデータ提供乱数生成ステップと、
インデックス作成部が、データdを示すインデックスmを作成するインデックス作成ステップと、
データ提供第1暗号化部が、前記乱数(r1,0,r1,1),…,(rN,0,rN,1),利用条件Lを、前記公開鍵pksを用いて暗号化し、暗号文CAとするデータ提供第1暗号化ステップと、
データ提供送信部が、暗号文CAとインデックスmを前記秘密計算装置に送信するデータ提供送信ステップと、
データ利用記録部が、前記インデックスmとr1,d[1],…,rN,d[N]を記録するデータ利用記録ステップと、
情報破棄部が、データd、乱数(r1,0,r1,1),…,(rN,0,rN,1)、利用条件Lを破棄する情報破棄ステップと、
前記秘密計算装置において、
秘密計算受信部が、暗号文CAとインデックスmを受信する第1秘密計算受信ステップと、
秘密計算復号部が、秘密鍵sksを用いてインデックスmに対応する暗号文CAを復号し、乱数(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の論理回路CEを生成する論理回路生成ステップと、
garbled circuit生成部が、乱数(r1,0,r1,1),…,(rN,0,rN,1)を用いて、rn,d[n]が入力されたときにCE(d)[q]を出力するgarbled circuit GCEを生成するgarbled circuit生成ステップと、
秘密計算送信部が、garbled circuit GCEを前記データ利用装置に送信する秘密計算送信ステップと、
前記データ利用装置において、
データ利用受信部が、garbled circuit GCEを受信するデータ利用受信ステップと、
データ利用実行部が、r1,d[1],…,rN,d[N]とgarbled circuit GCEを用いてCE(d)[1],…,CE(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
Nを1以上の整数、nを1以上N以下の整数、Qを1以上の整数、qを1以上Q以下の整数、d[n]はデータdの下位n番目のビット、CE(d)[q]はCE(d)の下位q番目のビットとして、
前記データ利用装置において、
データ提供記録部が、あらかじめNビット以下のデータdと、データdの利用条件Lを記録しておき、
前記秘密計算装置において、
秘密計算鍵生成部が、秘密鍵sks、公開鍵pksを生成し、公開鍵pksを公開する秘密計算鍵生成ステップと、
前記データ利用装置において、
データ提供鍵取得部が、前記秘密計算装置の公開鍵pksを取得するデータ提供鍵取得ステップと、
データ提供乱数生成部が、2N個の乱数(r1,0,r1,1),…,(rN,0,rN,1)を生成するデータ提供乱数生成ステップと、
インデックス作成部が、データdを示すインデックスmを作成するインデックス作成ステップと、
データ提供第1暗号化部が、前記乱数(r1,0,r1,1),…,(rN,0,rN,1),利用条件Lを、前記公開鍵pksを用いて暗号化し、暗号文CAとするデータ提供第1暗号化ステップと、
データ提供送信部が、暗号文CAとインデックスmを前記秘密計算装置に送信するデータ提供送信ステップと、
データ利用記録部が、前記インデックスmとr1,d[1],…,rN,d[N]を記録するデータ利用記録ステップと、
情報破棄部が、データd、乱数(r1,0,r1,1),…,(rN,0,rN,1)、利用条件Lを破棄する情報破棄ステップと、
前記秘密計算装置において、
秘密計算受信部が、暗号文CAとインデックスmを受信し、暗号文CAをインデックスmと対応付けて記録する第1秘密計算受信ステップと、
前記データ利用装置において、
データ利用送信部が、データdの利用方法Eとインデックスmとを前記秘密計算装置に送信するデータ利用送信ステップと、
前記秘密計算装置において、
秘密計算受信部が、利用方法Eとインデックスmとを受信する第2秘密計算受信ステップと、
秘密計算復号部が、秘密鍵sksを用いてインデックスmに対応する暗号文CAを復号し、乱数(r1,0,r1,1),…,(rN,0,rN,1),利用条件Lを求める秘密計算復号ステップと、
利用条件確認部が、利用方法Eが利用条件Lを満たしているかを確認する利用条件確認ステップと、
論理回路生成部が、利用方法Eの論理回路CEを生成する論理回路生成ステップと、
garbled circuit生成部が、乱数(r1,0,r1,1),…,(rN,0,rN,1)を用いて、rn,d[n]が入力されたときにCE(d)[q]を出力するgarbled circuit GCEを生成するgarbled circuit生成ステップと、
秘密計算送信部が、garbled circuit GCEを前記データ利用装置に送信する秘密計算送信ステップと、
前記データ利用装置において、
データ利用受信部が、garbled circuit GCEを受信するデータ利用受信ステップと、
データ利用実行部が、r1,d[1],…,rN,d[N]とgarbled circuit GCEを用いてCE(d)[1],…,CE(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
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)
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)
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 |
-
2010
- 2010-02-24 JP JP2010038663A patent/JP5337076B2/en active Active
Patent Citations (3)
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)
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)
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 |