JP2020161945A - Cryptographic system, user terminal, storage device, encryption method, authentication method, encryption program, and authentication program - Google Patents

Cryptographic system, user terminal, storage device, encryption method, authentication method, encryption program, and authentication program Download PDF

Info

Publication number
JP2020161945A
JP2020161945A JP2019058382A JP2019058382A JP2020161945A JP 2020161945 A JP2020161945 A JP 2020161945A JP 2019058382 A JP2019058382 A JP 2019058382A JP 2019058382 A JP2019058382 A JP 2019058382A JP 2020161945 A JP2020161945 A JP 2020161945A
Authority
JP
Japan
Prior art keywords
user terminal
attribute
ciphertext
encryption
encrypted data
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.)
Pending
Application number
JP2019058382A
Other languages
Japanese (ja)
Inventor
倫宏 大平
Michihiro Ohira
倫宏 大平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tokyo Metropolitan Industrial Technology Research Instititute (TIRI)
Original Assignee
Tokyo Metropolitan Industrial Technology Research Instititute (TIRI)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tokyo Metropolitan Industrial Technology Research Instititute (TIRI) filed Critical Tokyo Metropolitan Industrial Technology Research Instititute (TIRI)
Priority to JP2019058382A priority Critical patent/JP2020161945A/en
Publication of JP2020161945A publication Critical patent/JP2020161945A/en
Pending legal-status Critical Current

Links

Images

Abstract

To manage writing authority without indicating a user's attribute.SOLUTION: A cryptographic system comprises a first user terminal and a storage device. The first user terminal encrypts data to be encrypted using a first attribute set for reading and a first encryption key for attribute-based encryption to generate encryption data; inputs an input value to a unidirectional function to generate an arithmetic result; and encrypts the input value using a second attribute set for writing and a second encryption key for attribute-based encryption to generate an encryption text. The storage device stores the encryption text, the unidirectional function, and the arithmetic result together with the encryption data; and, when a writing request for the encryption data is received from a second user terminal having a user attribute set, permits the second user terminal to perform writing to the encryption data on the condition that decryption of the encryption text by the second user is successful.SELECTED DRAWING: Figure 7

Description

本発明は、暗号システム、ユーザ端末、ストレージ装置、暗号方法、認証方法、暗号プログラム、及び認証プログラムに関する。 The present invention relates to a cryptographic system, a user terminal, a storage device, a cryptographic method, an authentication method, a cryptographic program, and an authentication program.

近年、電子ファイルの数及びサイズの増加に伴い、クラウドストレージサービスが普及している。クラウドストレージを利用するにあたり、個人情報及び機密情報を保護するために、電子ファイルに暗号化が施される。暗号方式として、属性ベース暗号が知られている。属性ベース暗号は、ユーザごとに複数の属性を付与し、ユーザの属性に基づいて設定された復号条件(ポリシー)を満たすユーザのみが暗号文を復号可能な暗号技術である。 In recent years, cloud storage services have become widespread as the number and size of electronic files have increased. When using cloud storage, electronic files are encrypted in order to protect personal and confidential information. Attribute-based encryption is known as an encryption method. Attribute-based encryption is an encryption technology in which a plurality of attributes are assigned to each user and only a user who satisfies the decryption conditions (policy) set based on the user's attributes can decrypt the ciphertext.

通常、ファイル共有システムでは、ファイルアクセス権として、読み出し権限と書き込み権限とがそれぞれのファイルに設定されている。属性ベース暗号では、ファイルを暗号化する際に設定された復号条件(属性の組み合わせ)が、ファイルの読み出し権限と対応する。しかし、ファイルの書き込み権限についてはそのような対応が存在しないので、そのままではファイルの書き換えによる改ざん等の問題が生じ得る。これに対し、属性ベース署名を用いた認証が行われることがある(例えば、特許文献1及び特許文献2参照)。 Normally, in a file sharing system, read permission and write permission are set for each file as file access rights. In attribute-based encryption, the decryption conditions (combination of attributes) set when encrypting a file correspond to the read permission of the file. However, since there is no such correspondence regarding the write authority of the file, problems such as falsification due to rewriting the file may occur as it is. On the other hand, authentication using an attribute-based signature may be performed (see, for example, Patent Document 1 and Patent Document 2).

特開2007−295430号公報JP-A-2007-295430 特表2013−527712号公報Japanese Patent Application Laid-Open No. 2013-527712

属性ベース署名を用いた認証では、ファイル書き込み時の属性による認証が可能となる。しかしながら、システム側にユーザが有する属性を明らかにする必要がある。このため、例えば、出身地等のプライバシー情報が属性として与えられていた場合には、プライバシー侵害となる可能性がある。また、金融情報等といった重要な情報についての属性が与えられていた場合、攻撃の対象となる可能性が高まる。 In the authentication using the attribute-based signature, the authentication by the attribute at the time of writing the file becomes possible. However, it is necessary to clarify the attributes of the user on the system side. Therefore, for example, if privacy information such as the place of origin is given as an attribute, there is a possibility of privacy infringement. In addition, if attributes for important information such as financial information are given, the possibility of being the target of an attack increases.

本技術分野では、ユーザの属性を示すことなく、書き込み権限を管理することが望まれている。 In the present technology, it is desired to manage write authority without showing the attribute of the user.

本発明の一側面に係る暗号システムは、属性ベース暗号を用いたシステムである。この暗号システムは、第1ユーザ端末と、第1ユーザ端末によって生成された暗号データを格納するストレージ装置と、を備える。第1ユーザ端末は、読み出し権限を有する属性の組み合わせである第1属性セットと、属性ベース暗号の第1暗号化鍵と、を用いて暗号化対象のデータを暗号化することで暗号データを生成する。第1ユーザ端末は、入力値を生成するとともに、一方向性関数に入力値を入力することで演算結果を生成する。第1ユーザ端末は、書き込み権限を有する属性の組み合わせである第2属性セットと、属性ベース暗号の第2暗号化鍵と、を用いて入力値を暗号化することで暗号文を生成する。ストレージ装置は、暗号データとともに、暗号文、一方向性関数、及び演算結果を格納する。ストレージ装置は、1以上の属性を含むユーザ属性セットを有する第2ユーザ端末から暗号データに対する書き込み要求を受信した場合、第2ユーザ端末が暗号文を復号できたことを条件として、第2ユーザ端末に暗号データに対する書き込みを許可する。 The cryptosystem according to one aspect of the present invention is a system using attribute-based cryptography. This cryptographic system includes a first user terminal and a storage device that stores cryptographic data generated by the first user terminal. The first user terminal generates encrypted data by encrypting the data to be encrypted using the first attribute set, which is a combination of attributes having read authority, and the first encryption key of the attribute-based encryption. To do. The first user terminal generates an input value and also generates an operation result by inputting the input value to the one-way function. The first user terminal generates a ciphertext by encrypting an input value using a second attribute set which is a combination of attributes having write authority and a second encryption key of attribute-based encryption. The storage device stores the ciphertext, the one-way function, and the calculation result together with the encrypted data. When the storage device receives a write request for encrypted data from a second user terminal having a user attribute set including one or more attributes, the second user terminal is subject to the condition that the second user terminal can decrypt the ciphertext. Allows writing to encrypted data.

この暗号システムでは、書き込み権限を有する属性の組み合わせである第2属性セットと、属性ベース暗号の第2暗号化鍵と、を用いて入力値を暗号化することで暗号文が生成される。このため、第2ユーザ端末が書き込み権限に対応する属性を有している場合に、暗号文を復号可能である。したがって、第2ユーザ端末が暗号文を復号できたことを条件として、第2ユーザ端末に暗号データに対する書き込みが許可される。このように、第2ユーザ端末が第2ユーザ端末の属性に関する情報をストレージ装置に送付することなく、第2ユーザ端末が書き込み権限を有しているか否かが判定される。言い換えると、ユーザ(第2ユーザ端末)の属性を示すことなく、書き込み権限を管理することが可能となる。 In this encryption system, a ciphertext is generated by encrypting an input value using a second attribute set, which is a combination of attributes having write authority, and a second encryption key of attribute-based encryption. Therefore, the ciphertext can be decrypted when the second user terminal has an attribute corresponding to the write authority. Therefore, the second user terminal is allowed to write to the encrypted data on condition that the second user terminal can decrypt the ciphertext. In this way, it is determined whether or not the second user terminal has the write authority without sending the information regarding the attributes of the second user terminal to the storage device. In other words, it is possible to manage the write authority without showing the attribute of the user (second user terminal).

ストレージ装置は、第2ユーザ端末から暗号データに対する書き込み要求を受信した場合、暗号文を第2ユーザ端末に送信してもよい。第2ユーザ端末は、暗号文を復号することで復号結果を生成してもよい。第2ユーザ端末によって生成された復号結果を、一方向性関数に入力することで演算結果が得られた場合に、ストレージ装置は、第2ユーザ端末が暗号文を復号できたと判定してもよい。この場合、第2ユーザ端末によって復号された暗号文を一方向性関数に入力することで演算結果が得られたのであれば、第2ユーザ端末が暗号文を復号できたとみなすことができる。このように、ユーザ(第2ユーザ端末)の属性を示すことなく、書き込み権限を管理することが可能となる。 When the storage device receives the write request for the encrypted data from the second user terminal, the storage device may transmit the ciphertext to the second user terminal. The second user terminal may generate a decryption result by decrypting the ciphertext. When the calculation result is obtained by inputting the decryption result generated by the second user terminal into the one-way function, the storage device may determine that the second user terminal has been able to decrypt the ciphertext. .. In this case, if the calculation result is obtained by inputting the ciphertext decrypted by the second user terminal into the one-way function, it can be considered that the second user terminal has decrypted the ciphertext. In this way, it is possible to manage the write authority without indicating the attribute of the user (second user terminal).

ストレージ装置は、第2ユーザ端末から暗号データに対する書き込み要求を受信した場合、一方向性関数、及び演算結果を第2ユーザ端末にさらに送信してもよい。第2ユーザ端末は、復号結果と、一方向性関数と、演算結果と、を用いて暗号文が正当なデータであるか否かを検証してもよい。例えば、ストレージ装置が暗号文に代えて暗号データを送信したとすると、第2ユーザ端末が暗号データを復号し、暗号データの復号結果をストレージ装置に送信する。これにより、ストレージ装置は、暗号データの復号結果を取得できてしまう。これに対し、暗号文が正当なデータであるか否かが検証されるので、暗号文が不正なデータである場合には、復号結果をストレージ装置に送信しない等の対策を講じることが可能となる。 When the storage device receives the write request for the encrypted data from the second user terminal, the storage device may further transmit the one-way function and the calculation result to the second user terminal. The second user terminal may verify whether or not the ciphertext is valid data by using the decryption result, the one-way function, and the operation result. For example, if the storage device transmits the encrypted data instead of the ciphertext, the second user terminal decrypts the encrypted data and transmits the decryption result of the encrypted data to the storage device. As a result, the storage device can acquire the decryption result of the encrypted data. On the other hand, since it is verified whether the ciphertext is legitimate data, if the ciphertext is invalid data, it is possible to take measures such as not sending the decryption result to the storage device. Become.

ストレージ装置は、別の一方向性関数に暗号化対象のデータを入力することで入力値を生成してもよい。ストレージ装置は、暗号データ、暗号文、一方向性関数、及び演算結果に加えて、別の一方向性関数を格納してもよい。ストレージ装置は、第2ユーザ端末から暗号データに対する書き込み要求を受信した場合、暗号文に加えて、暗号データ、及び別の一方向性関数を第2ユーザ端末にさらに送信してもよい。第2ユーザ端末は、暗号データを復号することで得られた別の復号結果と、別の一方向性関数と、復号結果と、を用いて暗号文が正当なデータであるか否かを検証してもよい。この場合、入力値が暗号化対象のデータから生成されるので、第2ユーザ端末は、暗号文が暗号化対象のデータに対応しているか否か、つまり、暗号文が正当なデータであるか否かを確実に確認することができる。 The storage device may generate an input value by inputting data to be encrypted into another one-way function. The storage device may store another one-way function in addition to the encrypted data, the ciphertext, the one-way function, and the operation result. When the storage device receives a write request for the encrypted data from the second user terminal, the storage device may further transmit the encrypted data and another one-way function to the second user terminal in addition to the ciphertext. The second user terminal verifies whether or not the ciphertext is legitimate data by using another decryption result obtained by decrypting the encrypted data, another one-way function, and the decryption result. You may. In this case, since the input value is generated from the data to be encrypted, the second user terminal asks whether the ciphertext corresponds to the data to be encrypted, that is, whether the ciphertext is legitimate data. Whether or not it can be confirmed with certainty.

ストレージ装置は、ゼロ知識証明を用いて第2ユーザ端末が暗号文を復号できたか否かを判定してもよい。この場合、第2ユーザ端末がストレージ装置に暗号文の復号結果を送信することなく、第2ユーザ端末が暗号文を復号できたことをストレージ装置に証明することができる。このため、安全性を高めることが可能となる。 The storage device may determine whether or not the second user terminal was able to decrypt the ciphertext using the zero-knowledge proof. In this case, it is possible to prove to the storage device that the second user terminal was able to decrypt the ciphertext without the second user terminal transmitting the decryption result of the ciphertext to the storage device. Therefore, it is possible to improve safety.

ストレージ装置は、第2ユーザ端末から暗号データに対する読み出し要求を受信した場合、第2ユーザ端末に暗号データを送信してもよい。上記暗号システムでは、読み出し権限を有する属性の組み合わせである第1属性セットと、属性ベース暗号の第1暗号化鍵と、を用いて暗号化対象のデータを暗号化することで暗号データが生成される。このため、第2ユーザ端末が読み出し権限に対応する属性を有している場合に、暗号データを復号可能である。したがって、ストレージ装置は、暗号データを第2ユーザ端末に送信するだけでよい。このように、第2ユーザ端末が第2ユーザ端末の属性に関する情報をストレージ装置に送付することなく、第2ユーザ端末が読み出し権限を有しているか否かが判定される。言い換えると、ユーザ(第2ユーザ端末)の属性を示すことなく、読み出し権限を管理することが可能となる。 When the storage device receives the read request for the encrypted data from the second user terminal, the storage device may transmit the encrypted data to the second user terminal. In the above encryption system, encryption data is generated by encrypting data to be encrypted using a first attribute set which is a combination of attributes having read authority and a first encryption key of attribute-based encryption. To. Therefore, the encrypted data can be decrypted when the second user terminal has an attribute corresponding to the read authority. Therefore, the storage device only needs to transmit the encrypted data to the second user terminal. In this way, it is determined whether or not the second user terminal has the read authority without sending the information regarding the attributes of the second user terminal to the storage device. In other words, it is possible to manage the read authority without showing the attribute of the user (second user terminal).

本発明の別の側面に係るユーザ端末は、読み出し権限を有する属性の組み合わせである第1属性セットと、属性ベース暗号の第1暗号化鍵と、を用いて暗号化対象のデータを暗号化することで暗号データを生成し、入力値を生成するとともに、一方向性関数に入力値を入力することで演算結果を生成し、書き込み権限を有する属性の組み合わせである第2属性セットと、属性ベース暗号の第2暗号化鍵と、を用いて入力値を暗号化することで暗号文を生成し、暗号データとともに、暗号文、一方向性関数、及び演算結果をストレージ装置に送信する。 A user terminal according to another aspect of the present invention encrypts data to be encrypted by using a first attribute set, which is a combination of attributes having read authority, and a first encryption key of attribute-based encryption. By doing so, encrypted data is generated, input values are generated, and operation results are generated by inputting input values to the unidirectional function. The second attribute set, which is a combination of attributes that have write permission, and the attribute base. An encrypted text is generated by encrypting the input value using the second encryption key of the cipher, and the encrypted text, the unidirectional function, and the calculation result are transmitted to the storage device together with the encrypted data.

このユーザ端末では、読み出し権限を有する属性の組み合わせである第1属性セットと、属性ベース暗号の第1暗号化鍵と、を用いて暗号化対象のデータを暗号化することで暗号データが生成され、書き込み権限を有する属性の組み合わせである第2属性セットと、属性ベース暗号の第2暗号化鍵と、を用いて入力値を暗号化することで暗号文が生成される。暗号データとともに、暗号文と、一方向性関数と、入力値を一方向性関数に入力することで生成された演算結果と、がストレージ装置に送信される。別のユーザ端末が書き込み権限に対応する属性を有している場合には、暗号文を復号可能である。このため、例えば、別のユーザ端末が暗号文を復号できたことを条件として、別のユーザ端末に暗号データに対する書き込みが許可され得る。これにより、ユーザ(別のユーザ端末)の属性を示すことなく、書き込み権限を管理することが可能となる。 In this user terminal, encrypted data is generated by encrypting the data to be encrypted using the first attribute set, which is a combination of attributes having read permission, and the first encryption key of the attribute-based encryption. , A cipher is generated by encrypting an input value using a second attribute set, which is a combination of attributes having write permission, and a second encryption key of attribute-based encryption. Along with the encrypted data, the ciphertext, the one-way function, and the calculation result generated by inputting the input value into the one-way function are transmitted to the storage device. If another user terminal has an attribute corresponding to the write authority, the ciphertext can be decrypted. Therefore, for example, writing to the encrypted data may be permitted to the other user terminal on condition that the ciphertext can be decrypted by the other user terminal. This makes it possible to manage the write authority without showing the attribute of the user (another user terminal).

本発明のさらに別の側面に係るストレージ装置は、読み出し権限を有する属性の組み合わせである第1属性セットと属性ベース暗号の第1暗号化鍵とを用いて暗号化対象のデータを暗号化することで生成された暗号データと、一方向性関数と、一方向性関数に入力値を入力することで得られた演算結果と、書き込み権限を有する属性の組み合わせである第2属性セットと属性ベース暗号の第2暗号化鍵とを用いて入力値を暗号化することで生成された暗号文と、を取得し、暗号データとともに、暗号文、一方向性関数、及び演算結果を格納し、ユーザ端末から暗号データに対する書き込み要求を受信した場合、ユーザ端末が暗号文を復号できるか否かを判定し、ユーザ端末が暗号文を復号できたと判定された場合、ユーザ端末に暗号データに対する書き込みを許可する。 The storage device according to still another aspect of the present invention encrypts data to be encrypted by using a first attribute set which is a combination of attributes having read authority and a first encryption key of attribute-based encryption. The cryptographic data generated in, the unidirectional function, the calculation result obtained by inputting the input value to the unidirectional function, and the second attribute set and attribute-based cipher which are a combination of attributes having write permission. Acquires the encrypted text generated by encrypting the input value using the second encryption key of the above, stores the encrypted text, the unidirectional function, and the calculation result together with the encrypted data, and stores the user terminal. When a write request for encrypted data is received from, it is determined whether or not the user terminal can decrypt the encrypted text, and when it is determined that the user terminal can decrypt the encrypted text, the user terminal is allowed to write to the encrypted data. ..

このストレージ装置が取得し格納する暗号文は、書き込み権限を有する属性の組み合わせである第2属性セットと、属性ベース暗号の第2暗号化鍵と、を用いて入力値を暗号化することで生成される。このため、ユーザ端末が書き込み権限に対応する属性を有している場合に、暗号文を復号可能である。したがって、ユーザ端末が暗号文を復号できたことを条件として、ユーザ端末に暗号データに対する書き込みが許可される。このように、ユーザ端末がユーザ端末の属性に関する情報をストレージ装置に送付することなく、ユーザ端末が書き込み権限を有しているか否かが判定される。言い換えると、ユーザ(ユーザ端末)の属性を示すことなく、書き込み権限を管理することが可能となる。 The ciphertext acquired and stored by this storage device is generated by encrypting the input value using the second attribute set, which is a combination of attributes having write authority, and the second encryption key of the attribute-based encryption. Will be done. Therefore, the ciphertext can be decrypted when the user terminal has an attribute corresponding to the write authority. Therefore, the user terminal is allowed to write to the encrypted data on condition that the user terminal can decrypt the ciphertext. In this way, it is determined whether or not the user terminal has the write authority without sending the information regarding the attributes of the user terminal to the storage device. In other words, it is possible to manage the write authority without indicating the attribute of the user (user terminal).

本発明のさらに別の側面に係る暗号方法は、ユーザ端末が行う暗号方法である。この暗号方法は、読み出し権限を有する属性の組み合わせである第1属性セットと、属性ベース暗号の第1暗号化鍵と、を用いて暗号化対象のデータを暗号化することで暗号データを生成するステップと、入力値を生成するとともに、一方向性関数に入力値を入力することで演算結果を生成するステップと、書き込み権限を有する属性の組み合わせである第2属性セットと、属性ベース暗号の第2暗号化鍵と、を用いて入力値を暗号化することで暗号文を生成するステップと、暗号データとともに、暗号文、一方向性関数、及び演算結果をストレージ装置に送信するステップと、を備える。 The encryption method according to still another aspect of the present invention is an encryption method performed by a user terminal. This encryption method generates encrypted data by encrypting data to be encrypted using a first attribute set, which is a combination of attributes having read authority, and a first encryption key of attribute-based encryption. A step, a step of generating an input value and a step of generating an operation result by inputting an input value to a unidirectional function, a second attribute set which is a combination of attributes having write permission, and a second attribute-based cipher. 2 A step of generating an encrypted text by encrypting an input value using an encryption key, and a step of transmitting the encrypted text, a unidirectional function, and a calculation result to a storage device together with the encrypted data. Be prepared.

この暗号方法では、読み出し権限を有する属性の組み合わせである第1属性セットと、属性ベース暗号の第1暗号化鍵と、を用いて暗号化対象のデータを暗号化することで暗号データが生成され、書き込み権限を有する属性の組み合わせである第2属性セットと、属性ベース暗号の第2暗号化鍵と、を用いて入力値を暗号化することで暗号文が生成される。暗号データとともに、暗号文と、一方向性関数と、入力値を一方向性関数に入力することで生成された演算結果と、がストレージ装置に送信される。ユーザ端末が書き込み権限に対応する属性を有している場合には、暗号文を復号可能である。このため、例えば、ユーザ端末が暗号文を復号できたことを条件として、ユーザ端末に暗号データに対する書き込みが許可され得る。これにより、ユーザ(ユーザ端末)の属性を示すことなく、書き込み権限を管理することが可能となる。 In this encryption method, encrypted data is generated by encrypting the data to be encrypted using the first attribute set, which is a combination of attributes having read authority, and the first encryption key of the attribute-based encryption. , A cipher is generated by encrypting an input value using a second attribute set, which is a combination of attributes having write permission, and a second encryption key of attribute-based encryption. Along with the encrypted data, the ciphertext, the one-way function, and the calculation result generated by inputting the input value into the one-way function are transmitted to the storage device. If the user terminal has an attribute corresponding to the write authority, the ciphertext can be decrypted. Therefore, for example, the user terminal may be permitted to write to the encrypted data on condition that the user terminal can decrypt the ciphertext. This makes it possible to manage the write authority without indicating the attribute of the user (user terminal).

本発明のさらに別の側面に係る認証方法は、ストレージ装置が行う認証方法である。この認証方法は、読み出し権限を有する属性の組み合わせである第1属性セットと属性ベース暗号の第1暗号化鍵とを用いて暗号化対象のデータを暗号化することで生成された暗号データと、一方向性関数と、一方向性関数に入力値を入力することで得られた演算結果と、書き込み権限を有する属性の組み合わせである第2属性セットと属性ベース暗号の第2暗号化鍵とを用いて入力値を暗号化することで生成された暗号文と、を取得するステップと、暗号データとともに、暗号文、一方向性関数、及び演算結果を格納するステップと、ユーザ端末から暗号データに対する書き込み要求を受信した場合、ユーザ端末が暗号文を復号できるか否かを判定するステップと、ユーザ端末が暗号文を復号できたと判定された場合に、ユーザ端末に暗号データに対する書き込みを許可するステップと、を備える。 An authentication method according to still another aspect of the present invention is an authentication method performed by a storage device. This authentication method includes encrypted data generated by encrypting data to be encrypted using a first attribute set which is a combination of attributes having read authority and a first encryption key of attribute-based encryption. The unidirectional function, the calculation result obtained by inputting the input value to the unidirectional function, the second attribute set which is a combination of the attributes having write permission, and the second encryption key of the attribute-based cipher. A step to acquire the encrypted text generated by encrypting the input value using the data, a step to store the encrypted text, the unidirectional function, and the calculation result together with the encrypted data, and a step for the encrypted data from the user terminal. When a write request is received, a step of determining whether or not the user terminal can decrypt the encrypted text, and a step of permitting the user terminal to write to the encrypted data when it is determined that the user terminal can decrypt the encrypted text. And.

この認証方法では、書き込み権限を有する属性の組み合わせである第2属性セットと、属性ベース暗号の第2暗号化鍵と、を用いて入力値を暗号化することで生成された暗号文が取得され、格納される。このため、ユーザ端末が書き込み権限に対応する属性を有している場合に、暗号文を復号可能である。したがって、ユーザ端末が暗号文を復号できたことを条件として、ユーザ端末に暗号データに対する書き込みが許可される。このように、ユーザ端末がユーザ端末の属性に関する情報をストレージ装置に送付することなく、ユーザ端末が書き込み権限を有しているか否かが判定される。言い換えると、ユーザ(ユーザ端末)の属性を示すことなく、書き込み権限を管理することが可能となる。 In this authentication method, a ciphertext generated by encrypting an input value using a second attribute set, which is a combination of attributes having write authority, and a second encryption key of attribute-based encryption, is acquired. , Stored. Therefore, the ciphertext can be decrypted when the user terminal has an attribute corresponding to the write authority. Therefore, the user terminal is allowed to write to the encrypted data on condition that the user terminal can decrypt the ciphertext. In this way, it is determined whether or not the user terminal has the write authority without sending the information regarding the attributes of the user terminal to the storage device. In other words, it is possible to manage the write authority without indicating the attribute of the user (user terminal).

本発明のさらに別の側面に係る暗号プログラムは、読み出し権限を有する属性の組み合わせである第1属性セットと、属性ベース暗号の第1暗号化鍵と、を用いて暗号化対象のデータを暗号化することで暗号データを生成するステップと、入力値を生成するとともに、一方向性関数に入力値を入力することで演算結果を生成するステップと、書き込み権限を有する属性の組み合わせである第2属性セットと、属性ベース暗号の第2暗号化鍵と、を用いて入力値を暗号化することで暗号文を生成するステップと、暗号データとともに、暗号文、一方向性関数、及び演算結果をストレージ装置に送信するステップと、をコンピュータに実行させるための暗号プログラムである。 A cryptographic program according to yet another aspect of the present invention encrypts data to be encrypted by using a first attribute set, which is a combination of attributes having read authority, and a first encryption key of attribute-based encryption. The second attribute, which is a combination of the step of generating encrypted data by doing this, the step of generating the input value by inputting the input value to the unidirectional function, and the step of generating the calculation result, and the attribute having write permission. A step to generate a cipher by encrypting an input value using a set and a second encryption key of an attribute-based cipher, and storage of the cipher, a unidirectional function, and an operation result together with the cipher data. It is a cryptographic program that causes a computer to execute a step to send to a device.

この暗号プログラムでは、読み出し権限を有する属性の組み合わせである第1属性セットと、属性ベース暗号の第1暗号化鍵と、を用いて暗号化対象のデータを暗号化することで暗号データが生成され、書き込み権限を有する属性の組み合わせである第2属性セットと、属性ベース暗号の第2暗号化鍵と、を用いて入力値を暗号化することで暗号文が生成される。暗号データとともに、暗号文と、一方向性関数と、入力値を一方向性関数に入力することで生成された演算結果と、がストレージ装置に送信される。ユーザ端末が書き込み権限に対応する属性を有している場合には、暗号文を復号可能である。このため、例えば、ユーザ端末が暗号文を復号できたことを条件として、ユーザ端末に暗号データに対する書き込みが許可され得る。これにより、ユーザ(ユーザ端末)の属性を示すことなく、書き込み権限を管理することが可能となる。 In this encryption program, encrypted data is generated by encrypting the data to be encrypted using the first attribute set, which is a combination of attributes having read authority, and the first encryption key of attribute-based encryption. , A cipher is generated by encrypting an input value using a second attribute set, which is a combination of attributes having write permission, and a second encryption key of attribute-based encryption. Along with the encrypted data, the ciphertext, the one-way function, and the calculation result generated by inputting the input value into the one-way function are transmitted to the storage device. If the user terminal has an attribute corresponding to the write authority, the ciphertext can be decrypted. Therefore, for example, the user terminal may be permitted to write to the encrypted data on condition that the user terminal can decrypt the ciphertext. This makes it possible to manage the write authority without indicating the attribute of the user (user terminal).

本発明のさらに別の側面に係る認証プログラムは、読み出し権限を有する属性の組み合わせである第1属性セットと属性ベース暗号の第1暗号化鍵とを用いて暗号化対象のデータを暗号化することで生成された暗号データと、一方向性関数と、一方向性関数に入力値を入力することで得られた演算結果と、書き込み権限を有する属性の組み合わせである第2属性セットと属性ベース暗号の第2暗号化鍵とを用いて入力値を暗号化することで生成された暗号文と、を取得するステップと、暗号データとともに、暗号文、一方向性関数、及び演算結果を格納するステップと、ユーザ端末から暗号データに対する書き込み要求を受信した場合、ユーザ端末が暗号文を復号できるか否かを判定するステップと、ユーザ端末が暗号文を復号できたと判定された場合に、ユーザ端末に暗号データに対する書き込みを許可するステップと、を1以上のコンピュータを含むコンピュータシステムに実行させるための認証プログラムである。 An authentication program according to yet another aspect of the present invention encrypts data to be encrypted by using a first attribute set which is a combination of attributes having read authority and a first encryption key of attribute-based encryption. The cryptographic data generated in, the unidirectional function, the calculation result obtained by inputting the input value to the unidirectional function, and the second attribute set and attribute-based cipher which are a combination of attributes having write permission. A step of acquiring an encrypted text generated by encrypting an input value using the second encryption key of the above, and a step of storing the encrypted text, a unidirectional function, and an operation result together with the encrypted data. When a write request for encrypted data is received from the user terminal, a step of determining whether or not the user terminal can decrypt the encrypted text, and when it is determined that the user terminal can decrypt the encrypted text, the user terminal is notified. It is an authentication program for causing a computer system including one or more computers to execute a step of permitting writing to encrypted data.

この認証プログラムでは、書き込み権限を有する属性の組み合わせである第2属性セットと、属性ベース暗号の第2暗号化鍵と、を用いて入力値を暗号化することで生成された暗号文が取得され、格納される。このため、ユーザ端末が書き込み権限に対応する属性を有している場合に、暗号文を復号可能である。したがって、ユーザ端末が暗号文を復号できたことを条件として、ユーザ端末に暗号データに対する書き込みが許可される。このように、ユーザ端末がユーザ端末の属性に関する情報をストレージ装置に送付することなく、ユーザ端末が書き込み権限を有しているか否かが判定される。言い換えると、ユーザ(ユーザ端末)の属性を示すことなく、書き込み権限を管理することが可能となる。 In this authentication program, the ciphertext generated by encrypting the input value using the second attribute set, which is a combination of attributes having write authority, and the second encryption key of the attribute-based encryption, is acquired. , Stored. Therefore, the ciphertext can be decrypted when the user terminal has an attribute corresponding to the write authority. Therefore, the user terminal is allowed to write to the encrypted data on condition that the user terminal can decrypt the ciphertext. In this way, it is determined whether or not the user terminal has the write authority without sending the information regarding the attributes of the user terminal to the storage device. In other words, it is possible to manage the write authority without indicating the attribute of the user (user terminal).

本発明によれば、ユーザの属性を示すことなく、書き込み権限を管理することができる。 According to the present invention, the write authority can be managed without indicating the attribute of the user.

図1は、一実施形態に係る暗号システムの構成を示す図である。FIG. 1 is a diagram showing a configuration of a cryptographic system according to an embodiment. 図2は、図1に示されるユーザ端末のハードウェア構成を示す図である。FIG. 2 is a diagram showing a hardware configuration of the user terminal shown in FIG. 図3は、属性ベース暗号で用いられるアクセス構造の一例を示す図である。FIG. 3 is a diagram showing an example of an access structure used in attribute-based encryption. 図4は、図1に示される暗号システムにおける初期設定処理を示すシーケンス図である。FIG. 4 is a sequence diagram showing an initial setting process in the encryption system shown in FIG. 図5は、図1に示される暗号システムにおける暗号化鍵生成処理を示すシーケンス図である。FIG. 5 is a sequence diagram showing an encryption key generation process in the encryption system shown in FIG. 図6は、図1に示される暗号システムにおける復号鍵生成処理を示すシーケンス図である。FIG. 6 is a sequence diagram showing a decryption key generation process in the encryption system shown in FIG. 図7は、図1に示される暗号システムにおける新規書き込み処理を示すシーケンス図である。FIG. 7 is a sequence diagram showing a new write process in the encryption system shown in FIG. 図8は、図1に示される暗号システムにおける読み出し処理を示すシーケンス図である。FIG. 8 is a sequence diagram showing a read process in the encryption system shown in FIG. 図9は、図1に示される暗号システムにおける書き込み処理を示すシーケンス図である。FIG. 9 is a sequence diagram showing a write process in the encryption system shown in FIG. 図10は、図1に示される暗号システムにおける新規書き込み処理の別の例を示すシーケンス図である。FIG. 10 is a sequence diagram showing another example of the new write process in the encryption system shown in FIG. 図11は、図1に示される暗号システムにおける書き込み処理の別の例を示すシーケンス図である。FIG. 11 is a sequence diagram showing another example of the write process in the encryption system shown in FIG. 図12は、図1に示される暗号システムにおける新規書き込み処理のさらに別の例を示すシーケンス図である。FIG. 12 is a sequence diagram showing still another example of the new write process in the encryption system shown in FIG. 図13は、図1に示される暗号システムにおける書き込み処理のさらに別の例を示すシーケンス図である。FIG. 13 is a sequence diagram showing still another example of the write process in the encryption system shown in FIG.

以下、図面を参照しながら本発明の実施形態が詳細に説明される。なお、図面の説明において同一要素には同一符号が付され、重複する説明は省略される。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In the description of the drawings, the same elements are designated by the same reference numerals, and duplicate description is omitted.

図1は、一実施形態に係る暗号システムの構成を示す図である。図2は、図1に示されるユーザ端末のハードウェア構成を示す図である。図1に示されるように、暗号システム1は、情報を複数のユーザ間で共有するためのシステムであって、属性ベース暗号を用いた暗号化及び復号を行うシステムである。暗号システム1は、例えば、ファイル共有システムである。属性ベース暗号は、ユーザの属性に基づいて設定された復号条件(ポリシー)を満たすユーザのみが暗号化されたデータを復号可能な暗号技術である。暗号システム1は、ユーザシステム10と、複数の鍵発行機関(本実施形態では、鍵発行機関20A〜20C)と、公開サーバ30と、クラウドストレージ40(ストレージ装置)と、を備えている。ユーザシステム10と、鍵発行機関20A〜20Cと、公開サーバ30と、クラウドストレージ40とは、ネットワークNWによって互いに通信可能に接続されている。ネットワークNWは、有線及び無線のいずれで構成されてもよい。ネットワークNWの例としては、移動体通信網、インターネット、及びWAN(Wide Area Network)等が挙げられる。 FIG. 1 is a diagram showing a configuration of a cryptographic system according to an embodiment. FIG. 2 is a diagram showing a hardware configuration of the user terminal shown in FIG. As shown in FIG. 1, the encryption system 1 is a system for sharing information among a plurality of users, and is a system that performs encryption and decryption using attribute-based encryption. The encryption system 1 is, for example, a file sharing system. Attribute-based encryption is an encryption technology that allows only users who meet the decryption conditions (policy) set based on the user's attributes to decrypt the encrypted data. The encryption system 1 includes a user system 10, a plurality of key issuing institutions (key issuing institutions 20A to 20C in this embodiment), a public server 30, and a cloud storage 40 (storage device). The user system 10, the key issuing institutions 20A to 20C, the public server 30, and the cloud storage 40 are connected to each other by a network NW so as to be able to communicate with each other. The network NW may be configured by either wired or wireless. Examples of the network NW include a mobile communication network, the Internet, and a WAN (Wide Area Network).

ユーザシステム10は、属性ベース暗号を利用するユーザ側のシステムである。ユーザシステム10は、複数のユーザ端末(本実施形態では、ユーザ端末11A〜11C)を含む。ユーザ端末は、ユーザにより用いられる端末装置である。ユーザ端末の例としては、デスクトップPC(Personal Computer)、ノートPC、スマートフォン、及びタブレット端末等が挙げられる。ここでは、ユーザ端末11A〜11Cは、同一の組織に属する。ユーザ端末11A〜11Cは、LAN等によって互いに通信可能に接続され、不図示のゲートウェイ装置を介してネットワークNWに接続されている。なお、ユーザ端末11A〜11Cは、同一組織に属していなくてもよい。 The user system 10 is a user-side system that uses attribute-based encryption. The user system 10 includes a plurality of user terminals (user terminals 11A to 11C in this embodiment). The user terminal is a terminal device used by the user. Examples of user terminals include desktop PCs (Personal Computers), notebook PCs, smartphones, tablet terminals, and the like. Here, the user terminals 11A to 11C belong to the same organization. The user terminals 11A to 11C are communicably connected to each other by a LAN or the like, and are connected to the network NW via a gateway device (not shown). The user terminals 11A to 11C do not have to belong to the same organization.

図2に示されるように、ユーザ端末11A〜11Cのそれぞれは、物理的には、1又は複数のプロセッサ101、主記憶装置102、補助記憶装置103、入力装置104、出力装置105、及び通信装置106等のハードウェアを備えるコンピュータとして構成され得る。プロセッサ101の例としては、CPU(Central Processing Unit)が挙げられる。主記憶装置102は、例えば、RAM(Random Access Memory)及びROM(Read Only Memory)で構成される。補助記憶装置103は、例えば、ハードディスク装置又はフラッシュメモリで構成され、一般に主記憶装置102よりも大量のデータを記憶可能な容量を有する。入力装置104は、例えば、キーボード、マウス、タッチパネル、及び操作ボタンで構成される。出力装置105は、例えば、ディスプレイ、及びスピーカで構成される。通信装置106は、例えば、ネットワークインタフェースカード(NIC)又は無線通信モジュールで構成される。 As shown in FIG. 2, each of the user terminals 11A to 11C physically has one or more processors 101, a main storage device 102, an auxiliary storage device 103, an input device 104, an output device 105, and a communication device. It can be configured as a computer with hardware such as 106. An example of the processor 101 is a CPU (Central Processing Unit). The main storage device 102 is composed of, for example, a RAM (Random Access Memory) and a ROM (Read Only Memory). The auxiliary storage device 103 is composed of, for example, a hard disk device or a flash memory, and generally has a capacity capable of storing a larger amount of data than the main storage device 102. The input device 104 includes, for example, a keyboard, a mouse, a touch panel, and operation buttons. The output device 105 is composed of, for example, a display and a speaker. The communication device 106 is composed of, for example, a network interface card (NIC) or a wireless communication module.

ユーザUA〜UCのそれぞれは、1以上の属性を含む属性の組み合わせ(以下、「属性セット」と称する場合がある。)であるユーザ属性セットを有する。ユーザUAはユーザ端末11Aを使用し、ユーザUBはユーザ端末11Bを使用し、ユーザUCはユーザ端末11Cを使用している。ユーザUA〜UCは、例えば、ユーザ端末11A〜11Cにおいて、属性ベース暗号のためのアプリケーションを用いて、属性ベース暗号でデータを暗号化し、暗号化されたデータ(以下、「暗号データ」という。)をクラウドストレージ40に格納する。また、ユーザUA〜UCは、クラウドストレージ40から暗号データを取得し、暗号データを復号する。ユーザUA〜UCは、属性ベース暗号の暗号化及び復号を利用して、暗号データの書き込み(新規作成、削除、及び更新等)と、暗号データの読み出しと、を行う。暗号データの書き込み処理及び読み出し処理の詳細は後述する。 Each of the users UA to UC has a user attribute set that is a combination of attributes including one or more attributes (hereinafter, may be referred to as an "attribute set"). The user UA uses the user terminal 11A, the user UB uses the user terminal 11B, and the user UC uses the user terminal 11C. The users UA to UC encrypt the data by the attribute-based encryption by using the application for the attribute-based encryption in the user terminals 11A to 11C, and the encrypted data (hereinafter, referred to as "encrypted data"). Is stored in the cloud storage 40. Further, the users UA to UC acquire the encrypted data from the cloud storage 40 and decrypt the encrypted data. The users UA to UC use the encryption and decryption of the attribute-based encryption to write the encrypted data (new creation, deletion, update, etc.) and read the encrypted data. Details of the encryption data writing process and reading process will be described later.

鍵発行機関20A〜20Cのそれぞれは、属性ベース暗号の公開鍵及び秘密鍵を生成する。公開鍵は、全てのユーザ(ユーザ端末11A〜11C)に共通の鍵である。秘密鍵は、各ユーザ(ユーザ端末11A〜11C)に固有の鍵であって、ユーザのユーザ属性セットに応じて生成される。公開鍵及び秘密鍵の生成に関する詳細な説明は、後述する。鍵発行機関20A〜20Cは、ユーザシステム10の外部に設けられる。鍵発行機関20A〜20Cのそれぞれは、公開鍵を含む公開情報を公開サーバ30に送信する。鍵発行機関20A〜20Cのそれぞれは、ユーザ端末11A〜11Cと同様のハードウェア構成を有する1以上のコンピュータから構成される。鍵発行機関20A〜20Cのそれぞれは、入力装置104及び出力装置105を備えていなくてもよい。 Each of the key issuing institutions 20A to 20C generates a public key and a private key of attribute-based cryptography. The public key is a key common to all users (user terminals 11A to 11C). The private key is a key unique to each user (user terminals 11A to 11C) and is generated according to the user attribute set of the user. A detailed description of the generation of the public key and the private key will be described later. The key issuing institutions 20A to 20C are provided outside the user system 10. Each of the key issuing institutions 20A to 20C transmits public information including the public key to the public server 30. Each of the key issuing institutions 20A to 20C is composed of one or more computers having the same hardware configuration as the user terminals 11A to 11C. Each of the key issuing institutions 20A to 20C may not include the input device 104 and the output device 105.

公開サーバ30は、(大域的な)公開情報を公開するためのサーバ装置である。公開サーバ30は、鍵発行機関20A〜20Cのそれぞれから公開情報を受信し、公開情報を不図示の記憶装置に格納する。公開サーバ30は、暗号システム1に含まれる各機関からの要求に応じて、公開情報を各機関に送信する。公開サーバ30は、ユーザ端末11A〜11Cと同様のハードウェア構成を有する1以上のコンピュータから構成される。公開サーバ30は、入力装置104及び出力装置105を備えていなくてもよい。 The public server 30 is a server device for disclosing (global) public information. The public server 30 receives public information from each of the key issuing institutions 20A to 20C, and stores the public information in a storage device (not shown). The public server 30 transmits public information to each institution in response to a request from each institution included in the encryption system 1. The public server 30 is composed of one or more computers having the same hardware configuration as the user terminals 11A to 11C. The public server 30 does not have to include the input device 104 and the output device 105.

クラウドストレージ40は、オンラインストレージとも呼ばれ、ネットワークNW上でデータを共有するサービスである。クラウドストレージ40は、例えば、単一又は複数のファイルサーバを含む。クラウドストレージ40は、ユーザ端末11A〜11Cからデータ(暗号データを含む)を受信して、受信したデータを格納する。クラウドストレージ40は、ユーザ端末11A〜11Cからの要求に応じて、格納しているデータをユーザ端末11A〜11Cに送信する。暗号データに対する読み出し権限及び書き込み権限の管理方法については、後述する。 The cloud storage 40 is also called online storage and is a service for sharing data on a network NW. The cloud storage 40 includes, for example, a single or multiple file servers. The cloud storage 40 receives data (including encrypted data) from the user terminals 11A to 11C and stores the received data. The cloud storage 40 transmits the stored data to the user terminals 11A to 11C in response to a request from the user terminals 11A to 11C. The method of managing the read authority and the write authority for the encrypted data will be described later.

クラウドストレージ40に代えて、ユーザシステム10内に設けられた記憶装置(ローカルストレージ)が用いられてもよい。クラウドストレージ40は、ユーザ端末11A〜11Cと同様のハードウェア構成を有する1以上のコンピュータから構成される。クラウドストレージ40は、入力装置104及び出力装置105を備えていなくてもよい。 Instead of the cloud storage 40, a storage device (local storage) provided in the user system 10 may be used. The cloud storage 40 is composed of one or more computers having the same hardware configuration as the user terminals 11A to 11C. The cloud storage 40 does not have to include the input device 104 and the output device 105.

次に、図3を参照して、属性ベース暗号を説明する。図3は、属性ベース暗号で用いられるアクセス構造の一例を示す図である。図3に示されるアクセス構造は、ツリー形式で示されている。アクセス構造は、復号を許可する復号条件(ポリシー)を表す。ポリシーは、属性の論理和及び論理積で表される。図3では、{属性AT1∧(属性AT2∧属性AT3)}∨属性AT4の条件を満たすユーザが、暗号データを復号することができる。なお、「∨」は論理和を示し、「∧」は論理積を示す。各ユーザは、属性ベース暗号のためのアプリケーションを用いてデータを暗号化する際に、アクセス構造を指定する。 Next, the attribute-based cipher will be described with reference to FIG. FIG. 3 is a diagram showing an example of an access structure used in attribute-based encryption. The access structure shown in FIG. 3 is shown in a tree format. The access structure represents a decryption condition (policy) that allows decryption. The policy is represented by the logical sum and the logical product of the attributes. In FIG. 3, a user who satisfies the condition of {attribute AT1∧ (attribute AT2∧attribute AT3)} ∨ attribute AT4 can decrypt the encrypted data. "∨" indicates the logical sum, and "∧" indicates the logical product. Each user specifies an access structure when encrypting data using an application for attribute-based cryptography.

例えば、ユーザ端末11AのユーザUAが、開発部に所属し、海外支社を経験しており、プロジェクトPを担当しているとする。この場合、ユーザUAの属性は、例えば、「開発部」、「海外支社経験者」、及び「プロジェクトP担当者」である。ユーザ端末11BのユーザUBが、情報グループに所属し、IoT(Internet of Things)を担当しているとする。この場合、ユーザUBの属性は、例えば、「情報G」、及び「IoT」である。ユーザ端末11CのユーザUCが、総務課に所属しているとする。この場合、ユーザUCの属性は、例えば、「総務課」である。 For example, assume that the user UA of the user terminal 11A belongs to the development department, has experience in an overseas branch office, and is in charge of project P. In this case, the attributes of the user UA are, for example, "development department", "experienced person in overseas branch office", and "person in charge of project P". It is assumed that the user UB of the user terminal 11B belongs to the information group and is in charge of IoT (Internet of Things). In this case, the attributes of the user UB are, for example, "information G" and "IoT". It is assumed that the user UC of the user terminal 11C belongs to the general affairs section. In this case, the attribute of the user UC is, for example, "general affairs section".

図3のアクセス構造において、属性AT1が「開発部」であり、属性AT2が「海外支社経験者」であり、属性AT3が「プロジェクトP担当者」であり、属性AT4が「総務部」であると仮定する。この場合、ユーザUA及びユーザUCのユーザ属性セットはポリシーを満たすので、ユーザUA及びユーザUCは暗号データを復号することができる。一方、ユーザUBのユーザ属性セットはポリシーを満たさないので、ユーザUBは暗号データを復号することができない。 In the access structure of FIG. 3, the attribute AT1 is the "development department", the attribute AT2 is the "experienced person in the overseas branch office", the attribute AT3 is the "project P person in charge", and the attribute AT4 is the "general affairs department". Suppose. In this case, the user attribute set of the user UA and the user UC satisfies the policy, so that the user UA and the user UC can decrypt the encrypted data. On the other hand, since the user attribute set of the user UB does not satisfy the policy, the user UB cannot decrypt the encrypted data.

次に、図4〜図9を参照して、暗号システム1の動作例を説明する。図4は、図1に示される暗号システムにおける初期設定処理を示すシーケンス図である。図5は、図1に示される暗号システムにおける暗号化鍵生成処理を示すシーケンス図である。図6は、図1に示される暗号システムにおける復号鍵生成処理を示すシーケンス図である。図7は、図1に示される暗号システムにおける新規書き込み処理を示すシーケンス図である。図8は、図1に示される暗号システムにおける読み出し処理を示すシーケンス図である。図9は、図1に示される暗号システムにおける書き込み処理を示すシーケンス図である。 Next, an operation example of the encryption system 1 will be described with reference to FIGS. 4 to 9. FIG. 4 is a sequence diagram showing an initial setting process in the encryption system shown in FIG. FIG. 5 is a sequence diagram showing an encryption key generation process in the encryption system shown in FIG. FIG. 6 is a sequence diagram showing a decryption key generation process in the encryption system shown in FIG. FIG. 7 is a sequence diagram showing a new write process in the encryption system shown in FIG. FIG. 8 is a sequence diagram showing a read process in the encryption system shown in FIG. FIG. 9 is a sequence diagram showing a write process in the encryption system shown in FIG.

なお、説明の便宜上、ユーザについては、ユーザUAのみを図示する。ここでは、鍵発行機関20A〜20Cが暗号システム1における秘密鍵及び公開鍵の鍵発行機関として機能しているが、いずれの鍵発行機関が、暗号システム1における秘密鍵及び公開鍵の鍵発行機関となるかは、予め設定されている。又は、鍵発行機関20Aが、鍵発行機関となる機関を指定してもよい。 For convenience of explanation, only the user UA is shown as the user. Here, the key issuing institutions 20A to 20C function as key issuing institutions for the private key and the public key in the cryptosystem 1, and any of the key issuing institutions is the key issuing institution for the private key and the public key in the cryptosystem 1. Is set in advance. Alternatively, the key issuing institution 20A may designate an institution to be the key issuing institution.

図4に示されるように、暗号システム1では、まず初期設定処理が行われる。具体的には、各ユーザは、利用属性の申請を行う。ここではユーザUAのみを説明するが、他のユーザについても同様である。ユーザUAは、ユーザ端末11Aを用いて鍵発行機関20Aに利用属性の申請を行う(ステップS11)。利用属性の申請には、ユーザの属性又はユーザが利用したい属性を含む属性の組み合わせ(ユーザ属性セット)と、ユーザを特定するための識別情報(ユーザ識別情報)と、が含まれる。ユーザ識別情報としては、ウェブページ等において予め登録されたログインID(identifier)及びパスワードの組み合わせが用いられ得る。ユーザが使用するユーザ端末のIP(Internet Protocol)アドレスがユーザ識別情報として用いられてもよい。 As shown in FIG. 4, in the encryption system 1, the initial setting process is first performed. Specifically, each user applies for a usage attribute. Here, only the user UA will be described, but the same applies to other users. The user UA applies the usage attribute to the key issuing institution 20A using the user terminal 11A (step S11). The application for usage attributes includes a combination of attributes including user attributes or attributes that the user wants to use (user attribute set), and identification information for identifying the user (user identification information). As the user identification information, a combination of a login ID (identifier) and a password registered in advance on a web page or the like can be used. The IP (Internet Protocol) address of the user terminal used by the user may be used as the user identification information.

続いて、鍵発行機関20Aは、各ユーザから利用属性の申請を受信すると、初期設定を行う(ステップS12)。ステップS12において、鍵発行機関20Aは、素数p1を位数とする生成元gからなる巡回群G1と、素数p2を位数とする生成元gからなる巡回群G2と、式(1)で表される双線形写像eを有する巡回群GTと、を決定する。巡回群G1は、素数p1を位数とする巡回群であり、乗算が定義された巡回群である。巡回群G2は、素数p2を位数とする巡回群であり、乗算が定義された巡回群である。巡回群GTは、加算及び乗算が定義された巡回群である。そして、鍵発行機関20Aは、式(1)を満たす双線形写像eを決定する。双線形写像eは、2つの引数を有し、e(・,・)で表される写像である。

Figure 2020161945
Subsequently, when the key issuing institution 20A receives the application for the usage attribute from each user, the key issuing institution 20A performs the initial setting (step S12). In step S12, the key issuing authority 20A is a cyclic group G1 consisting of a generator g 1 of the prime p1 and quantile, a cyclic group G2 consisting of a generator g 2 for the prime p2 and of order, the formula (1) The cyclic group GT having the bilinear mapping e represented by is determined. The cyclic group G1 is a cyclic group having a prime number p1 as an order, and is a cyclic group in which multiplication is defined. The cyclic group G2 is a cyclic group having a prime number p2 as an order, and is a cyclic group in which multiplication is defined. The cyclic group GT is a cyclic group in which addition and multiplication are defined. Then, the key issuing institution 20A determines the bilinear map e satisfying the equation (1). The bilinear map e is a map that has two arguments and is represented by e (・, ・).
Figure 2020161945

続いて、鍵発行機関20Aは、乱数b(b∈Zp1)をランダムに決定し、元g を計算する。 Subsequently, the key issuing institution 20A randomly determines a random number b (b ∈ Z p1 ) and calculates the element g 1 b .

また、鍵発行機関20Aは、各ユーザから申請されたN個の属性に対して、巡回群G1から乱数h,h,・・・,h(h,h,・・・,h∈G1)をランダムに選択する。 In addition, the key issuing institution 20A has random numbers h 1 , h 2 , ..., h N (h 1 , h 2 , ..., From the cyclic group G1) for the N attributes applied by each user. h N ∈ G1) is randomly selected.

そして、鍵発行機関20Aは、生成元g、生成元g、元g 、双線形写像e、乱数h,h,・・・,h、及び鍵発行機関(ここでは、鍵発行機関20A〜20C)を特定するための識別情報(発行機関識別情報)を公開情報として公開するために、公開情報を公開サーバ30に送信する(ステップS13)。発行機関識別情報としては、例えば、鍵発行機関のIPアドレスが用いられる。そして、公開サーバ30は、不図示の記憶装置に公開情報を格納する(ステップS14)。 Then, the key issuing institution 20A includes a generator g 1 , a generator g 2 , a generator g 1 b , a bilinear map e, a random number h 1 , h 2 , ..., H N , and a key issuing institution (here, the key issuing institution 20A). In order to disclose the identification information (issuing institution identification information) for identifying the key issuing institution 20A to 20C) as public information, the public information is transmitted to the public server 30 (step S13). As the issuing institution identification information, for example, the IP address of the key issuing institution is used. Then, the public server 30 stores the public information in a storage device (not shown) (step S14).

なお、鍵発行機関20Aは、全てのユーザから利用属性の申請を受け取った後にステップS12を実施しているが、ステップS12の実施タイミングはこれに限られない。例えば、鍵発行機関20Aは、ユーザから利用属性の申請を受け取る前に生成元g及び生成元gの選択、元g の計算、並びに双線形写像eの決定を行ってもよく、ユーザから利用属性の申請を受け取る前に生成元g、生成元g、元g 、双線形写像e、及び発行機関識別情報を公開サーバ30に送信してもよい。鍵発行機関20Aは、ユーザから新たな属性の申請を受け取ると、その属性に対応する乱数h(nは1〜Nの整数)を選択し、選択した乱数hを公開サーバ30に送信してもよい。また、各ユーザとユーザのユーザ属性セットとが対応付けられて、各ユーザとユーザのユーザ属性セットとの対応関係が鍵発行機関20Aにおいて管理されてもよい。鍵発行機関20Aは、各ユーザとユーザのユーザ属性セットとの対応関係を他の鍵発行機関に送信してもよい。 The key issuing institution 20A executes step S12 after receiving applications for usage attributes from all users, but the execution timing of step S12 is not limited to this. For example, the key issuing authority 20A may perform the generation option based g 1 and a generator g 2, calculation of the original g 1 b, as well as determination of the bilinear mapping e before receiving the request usage attribute from the user, The generator g 1 , the generator g 2 , the generator g 1 b , the bilinear map e, and the issuing institution identification information may be transmitted to the public server 30 before receiving the application for the usage attribute from the user. When the key issuing institution 20A receives an application for a new attribute from the user, it selects a random number h n (n is an integer of 1 to N) corresponding to the attribute and transmits the selected random number h n to the public server 30. You may. Further, each user and the user attribute set of the user may be associated with each other, and the correspondence relationship between each user and the user attribute set of the user may be managed by the key issuing institution 20A. The key issuing institution 20A may transmit the correspondence between each user and the user attribute set of the user to another key issuing institution.

続いて、各ユーザ(ユーザ端末11A)と、複数の鍵発行機関のうち鍵発行機関20A以外の鍵発行機関(ここでは、鍵発行機関20B,20C)とは、公開サーバ30から公開情報を取得する(ステップS15)。なお、暗号システム1内の各機関は、公開サーバ30のIPアドレスを予め取得している。 Subsequently, each user (user terminal 11A) and a key issuing institution other than the key issuing institution 20A (here, the key issuing institution 20B, 20C) among the plurality of key issuing institutions acquire public information from the public server 30. (Step S15). Each institution in the encryption system 1 has acquired the IP address of the public server 30 in advance.

続いて、図5に示されるように、暗号システム1では、暗号化鍵生成処理が行われる。暗号化鍵生成処理では、まず、各鍵発行機関(ここでは、鍵発行機関20A〜20C)が公開鍵PKを生成する(ステップS21)。なお、各鍵発行機関には番号j(jは1〜Ncの整数)が割り当てられている。総数Ncは、公開鍵PK及び秘密鍵SK を生成する鍵発行機関の総数である。ステップS21では、j番目の鍵発行機関は、乱数aを生成し、式(2)に示される計算を行って公開鍵PKを生成する。

Figure 2020161945
Subsequently, as shown in FIG. 5, the encryption system 1 performs an encryption key generation process. In the encryption key generation process, first, each key issuing institution (here, key issuing institution 20A to 20C) generates a public key PK j (step S21). A number j (j is an integer of 1 to Nc) is assigned to each key issuing institution. The total number Nc is the total number of key issuing institutions that generate the public key PK j and the private key SK u j . In step S21, the j-th key issuing institution generates a random number a j , performs the calculation shown in the equation (2), and generates the public key PK j .
Figure 2020161945

そして、各鍵発行機関は、公開鍵PKを公開するために公開鍵PKを公開サーバ30に送信する(ステップS22)。そして、公開サーバ30は、不図示の記憶装置に公開鍵PKを公開情報として格納する(ステップS23)。 Each key issuing authority sends the public key PK j to the public server 30 to publish the public key PK j (step S22). Then, the public server 30 stores the public key PK j as public information in a storage device (not shown) (step S23).

続いて、暗号システム1内の各機関(ここでは、ユーザ端末11A、及び鍵発行機関20A〜20C)は、公開サーバ30からNc個の公開鍵PKを取得する(ステップS24)。そして、各機関は、Nc個の公開鍵PKを用いて属性ベース暗号の暗号化用の暗号化鍵PKを生成する(ステップS25)。具体的には、各機関は、式(3)に示されるように、各公開鍵PKを加算し、その加算結果e(g,gを計算する。

Figure 2020161945
Subsequently, each institution in the cryptosystem 1 (here, the user terminal 11A and the key issuing institution 20A to 20C) acquires Nc public keys PK j from the public server 30 (step S24). Then, each institution generates an encryption key PK for encryption of the attribute-based encryption using Nc public keys PK j (step S25). Specifically, each institution adds each public key PK j as shown in the equation (3), and calculates the addition result e (g 1 , g 2 ) a .
Figure 2020161945

そして、各機関は、式(4)に示されるように、公開情報と加算結果e(g,gとを属性ベース暗号の暗号化用の暗号化鍵PKとする。

Figure 2020161945
Then, as shown in the equation (4), each institution uses the public information and the addition result e (g 1 , g 2 ) a as the encryption key PK for encrypting the attribute-based encryption.
Figure 2020161945

このように、暗号化鍵生成処理では、鍵発行機関20A〜20Cのそれぞれは、公開鍵PKを生成するとともに、公開鍵PKを公開する。ユーザ端末11Aは、鍵発行機関20A〜20Cによって生成された公開鍵PKを取得して、これらの公開鍵PKを用いて属性ベース暗号の暗号化用の暗号化鍵PKを生成する。 Thus, the encryption key generating process, each of the key issuing authority 20A-20C, and generates a public key PK j, publishes the public key PK j. The user terminal 11A acquires the public key PK j generated by the key issuing institutions 20A to 20C, and uses these public key PK j to generate the encryption key PK for encrypting the attribute-based encryption.

続いて、図6に示されるように、暗号システム1では、復号鍵生成処理が行われる。ここでは、ユーザ端末11Aが復号鍵を生成する場合を説明する。復号鍵生成処理では、まず、ユーザ端末11Aが各鍵発行機関(ここでは、鍵発行機関20A〜20C)に秘密鍵を要求する(ステップS31)。このとき、ユーザ端末11Aは、ユーザUAの属性の組み合わせ(ユーザ属性セット)を指定して、ユーザUAのユーザ属性セットに対応した秘密鍵を要求する。 Subsequently, as shown in FIG. 6, the encryption system 1 performs a decryption key generation process. Here, the case where the user terminal 11A generates the decryption key will be described. In the decryption key generation process, the user terminal 11A first requests a private key from each key issuing institution (here, key issuing institution 20A to 20C) (step S31). At this time, the user terminal 11A specifies a combination of attributes of the user UA (user attribute set) and requests a private key corresponding to the user attribute set of the user UA.

そして、各鍵発行機関(ここでは、鍵発行機関20A〜20C)は、ユーザ端末11Aから秘密鍵の要求を受け取ると、ユーザUAのユーザ属性セットに応じた秘密鍵を生成する(ステップS32)。このとき、各鍵発行機関は、指定されたユーザUAのユーザ属性セットにユーザUAに無関係な属性が含まれている場合には、指定されたユーザUAのユーザ属性セットを否決してもよい。 Then, when each key issuing institution (here, the key issuing institution 20A to 20C) receives the request for the private key from the user terminal 11A, each key issuing institution generates a private key according to the user attribute set of the user UA (step S32). At this time, each key issuing authority may reject the user attribute set of the designated user UA when the user attribute set of the designated user UA includes attributes unrelated to the user UA.

ステップS32では、まず、各鍵発行機関は、ユーザ端末11A(ユーザUA)に対して乱数s をランダムに決定して、式(5)に示される計算を行う。なお、乱数s はユーザごとに決定される値である。ユーザUAの属性(ユーザUAのユーザ属性セットに含まれる属性)の総数Xは、ユーザシステム10で用いられる属性の総数N以下である。なお、乱数huxは、ユーザUAのX個の属性のうちのx番目の属性に対応する乱数hである。

Figure 2020161945
In step S32, first, each key issuing institution randomly determines a random number su j for the user terminal 11A (user UA), and performs the calculation represented by the equation (5). The random number s u j is a value determined for each user. The total number X of the attributes of the user UA (attributes included in the user attribute set of the user UA) is N or less of the total number of attributes used in the user system 10. The random number h ux is a random number h n corresponding to the xth attribute of the X attributes of the user UA.
Figure 2020161945

続いて、各鍵発行機関は、式(6)に示される秘密鍵SK をユーザ端末11Aに送信(配布)する(ステップS33)。

Figure 2020161945
Subsequently, the key issuing authority, transmitting the secret key SK u j represented by the formula (6) to the user terminal 11A for (distributed) (step S33).
Figure 2020161945

そして、ユーザ端末11Aは、Nc個の秘密鍵SK を用いて属性ベース暗号の復号用の復号鍵SKを生成する(ステップS34)。具体的には、ユーザ端末11Aは、式(7)及び式(8)に示されるように、Nc個の秘密鍵SK を要素ごとに加算し、その加算結果を復号鍵SKとする。なお、復号鍵SKには、X個の属性鍵(属性鍵Ku1〜KuX)が含まれる。

Figure 2020161945

Figure 2020161945
Then, the user terminal 11A uses Nc private keys SK u j to generate a decryption key SK u for decrypting the attribute-based encryption (step S34). Specifically, as shown in the equations (7) and (8), the user terminal 11A adds Nc private keys SK u j for each element, and the addition result is used as the decryption key SK u . .. Note that the decryption key SK u, includes X number of attribute keys (attribute key K u1 ~K uX) is.
Figure 2020161945

Figure 2020161945

このように、復号鍵生成処理では、ユーザ端末11Aは、鍵発行機関20A〜20CにユーザUAのユーザ属性セットに応じた秘密鍵SK を要求する。鍵発行機関20A〜20Cのそれぞれは、ユーザ端末11Aからの要求に応じて、秘密鍵SK を生成して秘密鍵SK をユーザ端末11Aに配布する。ユーザ端末11Aは、鍵発行機関20A〜20Cから秘密鍵SK を取得し、これらの秘密鍵SK を用いて属性ベース暗号の復号用の復号鍵SKを生成する。 As described above, in the decryption key generation process, the user terminal 11A requests the key issuing institutions 20A to 20C for the private key SK u j according to the user attribute set of the user UA. Each of the key issuing authority 20A-20C, in response to a request from the user terminal 11A, to distribute the secret key SK u j to the user terminal 11A generates the secret key SK u j. The user terminal 11A acquires the private key SK u j from the key issuing institutions 20A to 20C, and uses these private keys SK u j to generate the decryption key SK u for decrypting the attribute-based encryption.

次に、暗号データの新規書き込み処理を説明する。なお、ユーザがクラウドストレージ40を利用する前に、初期設定処理、暗号化鍵生成処理、及び復号鍵生成処理は終了している。ここでは、ユーザ端末11A(第1ユーザ端末)が新規書き込みを行う場合を説明する。新規書き込み処理は、書き込み権限が設定されていない場所等に新規に書き込む処理である。 Next, a new writing process of encrypted data will be described. Before the user uses the cloud storage 40, the initial setting process, the encryption key generation process, and the decryption key generation process are completed. Here, a case where the user terminal 11A (first user terminal) performs new writing will be described. The new write process is a process of newly writing to a place or the like where the write authority is not set.

図7に示されるように、新規書き込み処理では、まずユーザUAがユーザ端末11Aを用いて所望のデータMsgを暗号化することで暗号データMsgencを生成する(ステップS41)。ユーザ端末11Aには、例えば、属性ベース暗号のための暗号アプリケーションが予めインストールされている。ユーザUAは、暗号アプリケーションにおいて、当該データの読み出し権限と書き込み権限とを設定する。読み出し権限及び書き込み権限は、ユーザが属性の組み合わせである属性セット(アクセス構造)を指定することによって設定される。 As shown in FIG. 7, a new writing process, first, the user UA to generate an encrypted data Msg enc by encrypting desired data Msg using the user terminal 11A (step S41). For example, a cryptographic application for attribute-based cryptography is pre-installed on the user terminal 11A. The user UA sets the read authority and the write authority of the data in the encryption application. Read permission and write permission are set by the user specifying an attribute set (access structure) which is a combination of attributes.

図3の例では、「開発部」かつ「海外支社経験者」かつ「プロジェクトP担当者」の属性の組み合わせを有するユーザ、又は「総務課」の属性の組み合わせを有するユーザが読み出し及び書き込みの権限を有するように、アクセス構造の指定が行われる。なお、各ユーザは、任意のアクセス構造を指定でき、例えば、当該ユーザが読み出し及び書き込みの権限を有しないアクセス構造を指定することもできる。ユーザは、読み出し権限と書き込み権限とに、同じアクセス構造を指定してもよく、互いに異なるアクセス構造を指定してもよい。 In the example of FIG. 3, a user who has a combination of attributes of "development department", "experienced person in overseas branch office", and "person in charge of project P", or a user who has a combination of attributes of "general affairs section" has read and write authority. The access structure is specified so as to have. In addition, each user can specify an arbitrary access structure, and for example, an access structure to which the user does not have read / write authority can be specified. The user may specify the same access structure for the read authority and the write authority, or may specify different access structures from each other.

そして、ユーザ端末11Aは、線形秘密分散法を用いて、指定された読み出し用のアクセス構造(第1属性セット)をl行m列の行列Mrの形で表現する。なお、行の総数lは、アクセス構造に含まれる属性であって、重複している属性でも別個に計数した場合の属性の数と等しい。例えば、図3の例では、ポリシーを満たす行列の一例として、式(9)で示される行列Mrが生成される。

Figure 2020161945
Then, the user terminal 11A expresses the designated read access structure (first attribute set) in the form of a matrix Mr of l rows and m columns by using the linear secret sharing method. The total number of rows l is an attribute included in the access structure, and is equal to the number of attributes when the duplicated attributes are counted separately. For example, in the example of FIG. 3, the matrix Mr represented by the equation (9) is generated as an example of the matrix satisfying the policy.
Figure 2020161945

そして、ユーザ端末11Aは、行列Mrに対応して、m個の要素を含むベクトルvをランダムに生成する。式(10)に示されるように、ベクトルvは、秘密情報sと、乱数z〜zと、を含む。

Figure 2020161945
Then, the user terminal 11A randomly generates a vector v including m elements corresponding to the matrix Mr. As shown in the equation (10), the vector v includes the secret information s and the random numbers z 2 to z m .
Figure 2020161945

そして、ユーザ端末11Aは、式(11)に示されるように、ベクトルvと、行列Mrのi(iは1〜lの整数)行目の行Mrと、を用いて値λを計算する。

Figure 2020161945
Then, the user terminal 11A, as shown in equation (11), the vector v and, i of the matrix Mr (i is an integer of 1 to L) calculates the value lambda i with a row Mr i th row To do.
Figure 2020161945

続いて、ユーザ端末11Aは、l個の乱数rをランダムに決定する。そして、ユーザ端末11Aは、式(12)に示されるように、値λと乱数rと暗号化鍵PK(第1暗号化鍵)とを用いて暗号化対象のデータMsgを暗号化し、暗号データMsgencを生成する。言い換えると、ユーザ端末11Aは、読み出し用のアクセス構造と、暗号化鍵PKと、を用いて暗号化対象のデータMsgを暗号化することで暗号データMsgencを生成する。なお、乱数hρ(i)は、i行目の属性に対応する乱数hである。

Figure 2020161945
Subsequently, the user terminal 11A randomly determines l random numbers r i . Then, as shown in the equation (12), the user terminal 11A encrypts the data Msg to be encrypted using the value λ i , the random number r i, and the encryption key PK (first encryption key). to generate the encrypted data Msg enc. In other words, the user terminal 11A generates the encrypted data Msg ench by encrypting the data Msg to be encrypted using the access structure for reading and the encryption key PK. The random number h ρ (i) is a random number h n corresponding to the attribute of the i-th row.
Figure 2020161945

続いて、ユーザ端末11Aは、一方向性関数fを準備(生成)し、入力値xを生成するとともに、一方向性関数fに入力値xを入力することで演算結果f(x)を生成する(ステップS42)。一方向性関数fは、簡単に計算できるが、逆関数の計算は非常に困難であるか不可能である関数である。入力値xは、一方向性関数fの引数である。一方向性関数fの例としては、互いに異なる2つの素数の乗算、及びハッシュ関数が挙げられる。 Subsequently, the user terminal 11A prepares (generates) the one-way function f, generates the input value x, and inputs the input value x to the one-way function f to generate the calculation result f (x). (Step S42). The one-way function f is a function that can be easily calculated, but the calculation of the inverse function is very difficult or impossible. The input value x is an argument of the one-way function f. Examples of the one-way function f include multiplication of two different prime numbers and a hash function.

ここでは、一方向性関数fとして、大きな値を有する素数との乗算が用いられる。この場合、入力値xは、大きな値を有する素数である。このように、本実施形態の一方向性関数fは、互いに異なる大きい値を有する2つの素数の乗算結果を計算することは簡単であるが、乗算結果を素因数分解することで元の2つの素数を得ることは困難であるという性質を利用した関数である。素数は、例えば、以下のように生成される。ユーザ端末11Aは、ランダムな数値を生成し、Miller-Rabin素数判定法等の素数判定法を用いて、生成した数値が素数であるか否かを判定する。ユーザ端末11Aは、上述の手順を繰り返すことにより、素数が得られるまで、ランダムに数値を生成する。 Here, as the one-way function f, multiplication with a prime number having a large value is used. In this case, the input value x is a prime number having a large value. As described above, the one-way function f of the present embodiment can easily calculate the multiplication result of two prime numbers having different large values, but the original two prime numbers are obtained by factoring the multiplication result into prime factors. It is a function that takes advantage of the property that it is difficult to obtain. Prime numbers are generated, for example, as follows. The user terminal 11A generates a random numerical value and determines whether or not the generated numerical value is a prime number by using a prime number determination method such as the Miller-Rabin primality test method. By repeating the above procedure, the user terminal 11A randomly generates a numerical value until a prime number is obtained.

続いて、ユーザ端末11Aは、入力値xを暗号化することで、入力値xの暗号文xencを生成する(ステップS43)。ユーザ端末11Aは、ステップS41と同様に、まず書き込み用のアクセス構造(第2属性セット)を行列Mwの形で表現する。そして、ユーザ端末11Aは、行列Mwに対応したベクトルvを生成し、値λを計算する。そして、ユーザ端末11Aは、行列Mwの行数分の乱数rをランダムに決定する。そして、ユーザ端末11Aは、式(12)に示されるように、値λと乱数rと暗号化鍵PK(第2暗号化鍵)とを用いて入力値xを暗号化し、暗号文xencを生成する。言い換えると、ユーザ端末11Aは、書き込み用のアクセス構造と、暗号化鍵PKと、を用いて入力値xを暗号化することで暗号文xencを生成する。なお、入力値xの暗号化に用いられるベクトルv、値λ、乱数rには、データMsgの暗号化に用いられるベクトルv、値λ、乱数rと同じ符号を付しているが、入力値xの暗号化に用いられるベクトルv、値λ、乱数rと、データMsgの暗号化に用いられるベクトルv、値λ、乱数rとは、それぞれ互いに異なっている。 Subsequently, the user terminal 11A generates the ciphertext x ench of the input value x by encrypting the input value x (step S43). Similar to step S41, the user terminal 11A first expresses the access structure for writing (second attribute set) in the form of a matrix Mw. Then, the user terminal 11A generates a vector v corresponding to the matrix Mw and calculates the value λ i . Then, the user terminal 11A randomly determines random numbers r i for the number of rows in the matrix Mw. Then, as shown in the equation (12), the user terminal 11A encrypts the input value x using the value λ i , the random number r i, and the encryption key PK (second encryption key), and the ciphertext x. Generate an enc . In other words, the user terminal 11A generates the ciphertext x ench by encrypting the input value x using the access structure for writing and the encryption key PK. The vector v, the value λ i , and the random number r i used for encrypting the input value x are given the same codes as the vector v, the value λ i , and the random number r i used for encrypting the data Msg. but the vector v to be used to encrypt the input value x, the value lambda i, and the random number r i, the vector used to encrypt the data Msg v, the value lambda i, and the random number r i, are different from each other.

続いて、ユーザ端末11Aは、暗号データMsgenc、暗号文xenc、一方向性関数f、及び演算結果f(x)をクラウドストレージ40に送信する(ステップS44)。クラウドストレージ40は、ユーザ端末11Aから暗号データMsgenc、暗号文xenc、一方向性関数f、及び演算結果f(x)を受信すると、暗号データMsgenc、暗号文xenc、一方向性関数f、及び演算結果f(x)を1つの組として対応付けて不図示の記憶装置に格納する(ステップS45)。以上により、新規書き込み処理が終了する。 Subsequently, the user terminal 11A transmits the encrypted data Msgenc , the ciphertext xenc , the one-way function f, and the calculation result f (x) to the cloud storage 40 (step S44). When the cloud storage 40 receives the cryptographic data Msgenc , the ciphertext x ench , the one-way function f, and the calculation result f (x) from the user terminal 11A, the cloud storage 40 receives the cryptographic data Msgenc , the ciphertext x ench , and the one-way function. f and the calculation result f (x) are associated with each other as one set and stored in a storage device (not shown) (step S45). As a result, the new writing process is completed.

次に、暗号データの読み出し処理を説明する。ここでは、ユーザ端末11B(第2ユーザ端末)が読み出しを行う場合を説明する。図8に示されるように、読み出し処理では、まずユーザUBがユーザ端末11Bを用いて、クラウドストレージ40に暗号データMsgencの読み出し要求を送信する(ステップS51)。そして、クラウドストレージ40は、ユーザ端末11Bから暗号データMsgencの読み出し要求を受信すると、要求されている暗号データMsgencを不図示の記憶装置から読み出し、当該暗号データMsgencをユーザ端末11Bに送信する(ステップS52)。 Next, the process of reading the encrypted data will be described. Here, a case where the user terminal 11B (second user terminal) performs reading will be described. As shown in FIG. 8, a read process, first the user UB is using the user terminal 11B, and transmits the read request encrypted data Msg enc the cloud storage 40 (step S51). The cloud storage 40 transmits, when receiving a request to read encrypted data Msg enc from the user terminal 11B, the encrypted data Msg enc being requested read from the storage device (not shown), the encrypted data Msg enc to the user terminal 11B (Step S52).

続いて、ユーザ端末11Bは、クラウドストレージ40から暗号データMsgencを受信すると、ユーザUBの復号鍵SKを用いて暗号データMsgencの復号を行う(ステップS53)。このとき、ユーザ端末11Bは、ユーザUBのユーザ属性セットが暗号データMsgencに設定されたポリシーを満たす場合には、式(13)を満たす値wを計算することができる。

Figure 2020161945
Subsequently, the user terminal 11B receives the encrypted data Msg enc from the cloud storage 40, decodes the encrypted data Msg enc using the decryption key SK u user UB (step S53). At this time, the user terminal 11B, when satisfying policy user attribute set of the user UB is set to the encrypted data Msg enc can calculate the value w i satisfying Equation (13).
Figure 2020161945

そして、ユーザ端末11Bは、式(14)に示されるように、値wとユーザUBの復号鍵SKとを用いて暗号データMsgencを復号し、元のデータMsgを得る。以上により、読み出し処理が終了する。なお、属性鍵Kρ(i)は、行列Mr(読み出し用のアクセス構造)に含まれるl個の属性のうちのi行目の属性に対応する属性鍵Kuxである。

Figure 2020161945
Then, the user terminal 11B, as shown in equation (14), decrypts the encrypted data Msg enc by using the decryption key SK u values w i and the user UB, obtain the original data Msg. With the above, the reading process is completed. The attribute key K ρ (i) is the attribute key K ux corresponding to the attribute on the i-th row of the l attributes included in the matrix Mr (access structure for reading).
Figure 2020161945

このように、各ユーザは、自身のユーザ属性セットが暗号データMsgencに設定されたポリシーを満たす場合にのみ、ユーザの復号鍵を用いて当該暗号データMsgencの復号が可能となる。属性ベース暗号の安全性は、離散対数問題の困難性に起因している。一例を挙げると、生成元gと元g a1とから、乱数aを計算することが困難であるという性質である。この性質により、上記の属性ベース暗号は安全であるといえる。 Thus, each user, only if they meet the policy which the user set of attributes itself is set to the encrypted data Msg enc, decryption of the encrypted data Msg enc is possible using a decryption key of the user. The security of attribute-based cryptography is due to the difficulty of the discrete logarithm problem. From one example, a generator g 1 of the original g 1 a1 Tokyo, is the property that it is difficult to calculate the random number a 1. Due to this property, it can be said that the above attribute-based cipher is secure.

次に、暗号データに対する書き込み処理を説明する。ここでは、ユーザ端末11Bが書き込みを行う場合を説明する。書き込み処理は、暗号データの更新及び削除を含む。図9に示されるように、書き込み処理では、まずユーザUBがユーザ端末11Bを用いて、クラウドストレージ40に暗号データMsgencに対する書き込み要求(更新要求)を送信する(ステップS61)。そして、クラウドストレージ40は、ユーザ端末11Bから暗号データMsgencに対する書き込み要求を受信すると、要求されている暗号データMsgencと対応付けられている暗号文xenc、一方向性関数f、及び演算結果f(x)を不図示の記憶装置から読み出し、当該暗号文xenc、一方向性関数f、及び演算結果f(x)をユーザ端末11Bに送信する(ステップS62)。 Next, the writing process for the encrypted data will be described. Here, the case where the user terminal 11B writes is described. The writing process includes updating and deleting the encrypted data. As shown in FIG. 9, in the writing process, first the user UB is using the user terminal 11B, and transmits the write request to the cloud storage 40 for encrypted data Msg enc (the update request) (step S61). The cloud storage 40 receives a write request for the encrypted data Msg enc from the user terminal 11B, the ciphertext x enc that is associated with the encrypted data Msg enc being requested, one-way function f, and the operation result f (x) is read from a storage device (not shown), and the ciphertext x ench , the one-way function f, and the calculation result f (x) are transmitted to the user terminal 11B (step S62).

続いて、ユーザ端末11Bは、クラウドストレージ40から暗号文xenc、一方向性関数f、及び演算結果f(x)を受信すると、ユーザUBの復号鍵SKを用いて暗号文xencの復号を行う(ステップS63)。このとき、ステップS53と同様に、ユーザ端末11Bは、ユーザUBのユーザ属性セットが暗号文xencに設定されたポリシーを満たす場合には、式(13)を満たす値wを計算することができる。そして、ユーザ端末11Bは、式(14)と同様にして、値wとユーザUBの復号鍵SKとを用いて暗号文xencを復号し、元の入力値x(以下、暗号文xencを復号することで得られた入力値を「入力値xdec」と表記する。)を得る。 Subsequently, the user terminal 11B, the ciphertext x enc from the cloud storage 40, one-way function f, and the operation result upon receiving the f (x), the decoding of the ciphertext x enc using the decryption key SK u user UB (Step S63). In this case, as in step S53, the user terminal 11B, when satisfying policy user attribute set of the user UB is set to the ciphertext x enc is able to calculate the value w i satisfying Equation (13) it can. Then, the user terminal 11B, similarly as the equation (14), decrypts the ciphertext x enc by using the decryption key SK u values w i and the user UB, the original input value x (hereinafter, the ciphertext x The input value obtained by decoding the ench is expressed as "input value x dec ").

続いて、ユーザ端末11Bは、クラウドストレージ40から受信した暗号文xencが正当なデータであるか否かを検証する(ステップS64)。具体的に説明すると、ユーザ端末11Bは、ステップS63で得られた入力値xdec(復号結果)をクラウドストレージ40から受信した一方向性関数fに引数として入力することで、演算結果f(xdec)を生成する。そして、ユーザ端末11Bは、演算結果f(xdec)とクラウドストレージ40から受信した演算結果f(x)とを照合する。ユーザ端末11Bは、2つの演算結果が同じである(一致する)場合には、クラウドストレージ40から受信した暗号文xencが正当なデータであると判定し、入力値xdecをクラウドストレージ40に送信する(ステップS65)。このとき、ユーザ端末11Bは、書き込みを要求している暗号データMsgencを特定するための情報を付加して送信する。一方、ユーザ端末11Bは、2つの演算結果が互いに異なる場合には、クラウドストレージ40から受信した暗号文xencが不正なデータであると判定し、入力値xdecをクラウドストレージ40に送信しない。 Subsequently, the user terminal 11B verifies whether or not the ciphertext x ench received from the cloud storage 40 is legitimate data (step S64). Specifically, the user terminal 11B inputs the input value x dec (decoding result) obtained in step S63 into the one-way function f received from the cloud storage 40 as an argument, thereby inputting the calculation result f (x). dec ) is generated. Then, the user terminal 11B collates the calculation result f (x dec ) with the calculation result f (x) received from the cloud storage 40. When the two calculation results are the same (match), the user terminal 11B determines that the ciphertext x ench received from the cloud storage 40 is legitimate data, and sets the input value x dec to the cloud storage 40. Transmit (step S65). At this time, the user terminal 11B, and transmits the additional information for specifying the encrypted data Msg enc requesting writing. On the other hand, when the two calculation results are different from each other, the user terminal 11B determines that the ciphertext x ench received from the cloud storage 40 is invalid data, and does not transmit the input value x dec to the cloud storage 40.

続いて、クラウドストレージ40は、ユーザ端末11Bから入力値xdecを受信すると、ユーザUBが書き込み権限を有するか否かを判定する(ステップS66)。具体的に説明すると、クラウドストレージ40は、要求されている暗号データMsgencと対応付けられている一方向性関数fを不図示の記憶装置から読み出し、ユーザ端末11Bから受信した入力値xdecを、読み出した一方向性関数fに引数として入力することで、演算結果f(xdec)を生成する。 Subsequently, when the cloud storage 40 receives the input value x dec from the user terminal 11B, the cloud storage 40 determines whether or not the user UB has the write authority (step S66). Specifically, cloud storage 40 reads out the one-way function f that is associated with encrypted data Msg enc being requested from the storage device (not shown), the input value x dec received from the user terminal 11B , The operation result f (x dec ) is generated by inputting it as an argument to the read one-way function f.

そして、クラウドストレージ40は、要求されている暗号データMsgencと対応付けられている演算結果f(x)を不図示の記憶装置から読み出し、演算結果f(x)と演算結果f(xdec)とを照合する。クラウドストレージ40は、2つの演算結果が同じである(一致する)場合には、ユーザ端末11BのユーザUBは書き込み権限を有すると判定し、書き込みを許可する(ステップS67)。一方、クラウドストレージ40は、2つの演算結果が互いに異なる場合には、ユーザ端末11BのユーザUBは書き込み権限を有しないと判定し、書き込みを許可しない。 The cloud storage 40 reads the requested Cipher data Msg enc and correlated its dependent computation result f (x) from a storage device (not shown), the operation result f (x) and the operation result f (x dec) And match. When the two calculation results are the same (match), the cloud storage 40 determines that the user UB of the user terminal 11B has the write authority and permits the write (step S67). On the other hand, when the two calculation results are different from each other, the cloud storage 40 determines that the user UB of the user terminal 11B does not have the write authority and does not allow the write.

そして、ユーザ端末11Bは、クラウドストレージ40から書き込みの許可を得ると、暗号データMsgencの更新等を行う。以降の処理は、新規書き込み処理と同様であるので、説明を省略する。以上により、書き込み処理が終了する。なお、ユーザ端末11Bは、暗号データMsgencの更新等において、データMsgの書き込みに用いられた入力値x及び一方向性関数fを用いてもよく、入力値x及び一方向性関数fを新たな入力値x及び一方向性関数fにそれぞれ変更してもよい。 Then, when the user terminal 11B obtains write permission from the cloud storage 40, the user terminal 11B updates the encrypted data Msgenc and the like. Since the subsequent processing is the same as the new writing processing, the description thereof will be omitted. With the above, the writing process is completed. The user terminal 11B may use the input value x and the one-way function f used for writing the data Msg in updating the encrypted data Msgenc , etc., and newly adds the input value x and the one-way function f. The input value x and the one-way function f may be changed, respectively.

このように、クラウドストレージ40に対してユーザ端末11Aが新規書き込みを行う際には、ユーザ端末11Aは、読み出し用のアクセス構造と暗号化鍵PKとを用いてデータMsgを暗号化することで暗号データMsgencを生成するとともに、書き込み用のアクセス構造と暗号化鍵PKとを用いて入力値xを暗号化することで暗号文xencを生成する。そして、ユーザ端末11Aは、暗号データMsgenc、暗号文xenc、一方向性関数f、及び演算結果f(x)をクラウドストレージ40に送信し、クラウドストレージ40は、暗号データMsgenc、暗号文xenc、一方向性関数f、及び演算結果f(x)を格納する。 In this way, when the user terminal 11A newly writes to the cloud storage 40, the user terminal 11A encrypts the data Msg by using the read access structure and the encryption key PK. In addition to generating the data Msg ench , the ciphertext x ench is generated by encrypting the input value x using the access structure for writing and the encryption key PK. Then, the user terminal 11A transmits the encrypted data Msg ench , the ciphertext x ench , the one-way function f, and the calculation result f (x) to the cloud storage 40, and the cloud storage 40 uses the encrypted data Msg ench and the ciphertext. The x ench , the one-way function f, and the operation result f (x) are stored.

ユーザ端末11Bが暗号データMsgencを復号できるのであれば、暗号データMsgencの読み出し権限を有しているとみなし得る。このため、ユーザ端末11Bがクラウドストレージ40から暗号データMsgencを読み出す場合には、クラウドストレージ40はユーザ端末11B(ユーザUB)が読み出し権限を有しているか否かを判定することなく、ユーザ端末11Bに暗号データMsgencを送信する。一方、ユーザ端末11Bがクラウドストレージ40に格納されている暗号データMsgencに対して書き込みを行う場合には、クラウドストレージ40はまず暗号文xenc、一方向性関数f、及び演算結果f(x)をユーザ端末11Bに送付する。そして、ユーザ端末11Bは暗号文xencを復号することで入力値xdecを得る。そして、クラウドストレージ40は、暗号データMsgencと対応付けられている一方向性関数fに、ユーザ端末11Bが生成した入力値xdecを入力することで、演算結果f(xdec)を得る。そして、クラウドストレージ40は、暗号データMsgencと対応付けられている演算結果f(x)と、演算結果f(xdec)と、が一致する場合には、ユーザ端末11B(ユーザUB)が書き込み権限を有していると判定し、ユーザ端末11Bに暗号データMsgencに対する書き込みを許可する。 If the user terminal 11B that can decrypt the encrypted data Msg enc, be considered to have the permission to read encrypted data Msg enc. Therefore, when the user terminal 11B reads the encrypted data Msg enc from the cloud storage 40, cloud storage 40 without determining whether the user terminal 11B (user UB) has read permission, the user terminal The encrypted data Msgenc is transmitted to 11B. On the other hand, when the user terminal 11B writes against encrypted data Msg enc stored in cloud storage 40, cloud storage 40 first ciphertext x enc, one-way function f, and the operation result f (x ) Is sent to the user terminal 11B. Then, the user terminal 11B obtains the input value x dec by decrypting the ciphertext x ench . The cloud storage 40, the one-way function f that is associated with the encrypted data Msg enc, by inputting an input value x dec of the user terminal 11B is generated, to obtain the operation result f the (x dec). The cloud storage 40, a cryptographic data Msg enc and correlated its dependent computation result f (x), if the operation result of the f (x dec), are matched, the user terminal 11B (user UB) write It determines that the user has authority to allow writing to the encrypted data Msg enc to the user terminal 11B.

ステップS64は、省略されてもよい。この場合、ステップS62において、クラウドストレージ40は、ユーザ端末11Bから暗号データMsgencに対する書き込み要求を受信すると、要求されている暗号データMsgencと対応付けられている暗号文xencを不図示の記憶装置から読み出し、当該暗号文xencをユーザ端末11Bに送信してもよい。 Step S64 may be omitted. In this case, in step S62, cloud storage 40 receives a write request for the encrypted data Msg enc from the user terminal 11B, stores the ciphertext x enc that is associated with the encrypted data Msg enc being requested not shown It may be read from the device and the ciphertext x ench may be transmitted to the user terminal 11B.

次に、ユーザ端末11A〜11C、及びクラウドストレージ40の機能構成について説明する。ユーザ端末11A〜11Cのそれぞれは、図4のステップS11,S15、図5のステップS24,S25、図6のステップS31,S33,S34、図7のステップS41〜S44、図8のステップS51〜S53、及び図9のステップS61〜S65,S67を含む暗号方法を実行するための複数の機能部を備えている。複数の機能部は、暗号方法の各ステップにそれぞれ対応する。 Next, the functional configurations of the user terminals 11A to 11C and the cloud storage 40 will be described. Each of the user terminals 11A to 11C is step S11, S15 in FIG. 4, steps S24, S25 in FIG. 5, steps S31, S33, S34 in FIG. 6, steps S41 to S44 in FIG. 7, and steps S51 to S53 in FIG. , And a plurality of functional units for executing the encryption method including steps S61 to S65 and S67 of FIG. The plurality of functional parts correspond to each step of the encryption method.

例えば、図7に示される新規書き込み処理に対して、ユーザ端末11A〜11Cのそれぞれは、読み出し用のアクセス構造と暗号化鍵PKとを用いてデータMsgを暗号化することで暗号データMsgencを生成する第1暗号化部と、入力値xを生成するとともに、一方向性関数fに入力値xを入力することで演算結果f(x)を生成する演算部と、書き込み用のアクセス構造と暗号化鍵PKとを用いて入力値xを暗号化することで暗号文xencを生成する第2暗号化部と、暗号データMsgencとともに、暗号文xenc、一方向性関数f、及び演算結果f(x)をクラウドストレージ40に送信する送信部と、を備えている。 For example, for the new write process shown in FIG. 7, each of the user terminals 11A to 11C encrypts the data Msg using the read access structure and the encryption key PK to obtain the encrypted data Msgenc . A first encryption unit to be generated, an arithmetic unit that generates an input value x and an arithmetic result f (x) by inputting an input value x to the unidirectional function f, and an access structure for writing. A second encryption unit that generates an encryption sentence x ench by encrypting an input value x using an encryption key PK, and an encryption data Msg ench, as well as an encryption sentence x ench , a unidirectional function f, and an operation. It includes a transmission unit that transmits the result f (x) to the cloud storage 40.

同様に、クラウドストレージ40は、図7のステップS44,S45、図8のステップS51,S52、及び図9のステップS61,S62,S65〜S67を含む認証方法を実行するための複数の機能部を備えている。複数の機能部は、認証方法の各ステップにそれぞれ対応する。例えば、図7に示される新規書き込み処理に対して、クラウドストレージ40は、暗号データMsgenc、暗号文xenc、一方向性関数f、及び演算結果f(x)を取得する取得部と、暗号データMsgencとともに、暗号文xenc、一方向性関数f、及び演算結果f(x)を格納する記憶部と、を備えている。また、図9に示される書き込み処理に対して、クラウドストレージ40は、ユーザ端末11Bから暗号データMsgencに対する書き込み要求を受信した場合、ユーザ端末11Bが暗号文xencを復号できるか否かを判定する判定部と、ユーザ端末11Bが暗号文xencを復号できたと判定部によって判定された場合、ユーザ端末11Bに暗号データMsgencに対する書き込みを許可する権限付与部と、を備えている。 Similarly, the cloud storage 40 has a plurality of functional units for executing an authentication method including steps S44 and S45 of FIG. 7, steps S51 and S52 of FIG. 8, and steps S61, S62 and S65 to S67 of FIG. I have. The plurality of functional units correspond to each step of the authentication method. For example, for the new write process shown in FIG. 7, the cloud storage 40 has an acquisition unit for acquiring the encrypted data Msgenc , the ciphertext xenc , the one-way function f, and the operation result f (x), and the encryption. Along with the data Msg ench , a storage unit for storing the ciphertext x ench , the one-way function f, and the calculation result f (x) is provided. Further, the write processing shown in FIG. 9, cloud storage 40, when receiving a write request for the encrypted data Msg enc from the user terminal 11B, the user terminal 11B is determined whether it can decrypt the ciphertext x enc a determination unit that, when the user terminal 11B is determined by the determination unit can be decrypted ciphertext x enc, comprises and authorization unit for permitting writing to encrypted data Msg enc to the user terminal 11B, the.

ユーザ端末11A〜11Cの各機能は、コンピュータに暗号方法を実行させるための所定のコンピュータプログラム(暗号プログラム)によって実現される。具体的には、コンピュータの主記憶装置102等のハードウェアに暗号プログラムを読み込ませることにより、1又は複数のプロセッサ101の制御のもとで各ハードウェアを動作させるとともに、主記憶装置102及び補助記憶装置103におけるデータの読み出し及び書き込みを行うことで実現される。暗号プログラムは、CD−ROM(Compact Disk Read Only Memory)、DVD−ROM(Digital Versatile Disk Read Only Memory)、及び半導体メモリ等の有形の記録媒体に固定的に記録された状態で提供されてもよい。暗号プログラムは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。提供された暗号プログラムは補助記憶装置103に格納される。 Each function of the user terminals 11A to 11C is realized by a predetermined computer program (encryption program) for causing the computer to execute the encryption method. Specifically, by having the hardware such as the main storage device 102 of the computer read the encryption program, each hardware is operated under the control of one or more processors 101, and the main storage device 102 and the auxiliary are assisted. This is realized by reading and writing data in the storage device 103. The encryption program may be provided in a state of being fixedly recorded on a tangible recording medium such as a CD-ROM (Compact Disk Read Only Memory), a DVD-ROM (Digital Versatile Disk Read Only Memory), and a semiconductor memory. .. The cryptographic program may be provided via a communication network as a data signal superimposed on a carrier wave. The provided cryptographic program is stored in the auxiliary storage device 103.

クラウドストレージ40の各機能は、1以上のコンピュータを含むコンピュータシステムに認証方法を実行させるための所定のコンピュータプログラム(認証プログラム)によって実現される。具体的には、コンピュータシステムの主記憶装置102等のハードウェアに所定の認証プログラムを読み込ませることにより、1又は複数のプロセッサ101の制御のもとで各ハードウェアを動作させるとともに、主記憶装置102及び補助記憶装置103におけるデータの読み出し及び書き込みを行うことで実現される。認証プログラムは、CD−ROM、DVD−ROM、及び半導体メモリ等の有形の記録媒体に固定的に記録された状態で提供されてもよい。認証プログラムは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。 Each function of the cloud storage 40 is realized by a predetermined computer program (authentication program) for causing a computer system including one or more computers to execute an authentication method. Specifically, by loading a predetermined authentication program into hardware such as the main storage device 102 of the computer system, each hardware is operated under the control of one or more processors 101, and the main storage device is operated. It is realized by reading and writing data in the 102 and the auxiliary storage device 103. The authentication program may be provided in a state of being fixedly recorded on a tangible recording medium such as a CD-ROM, a DVD-ROM, and a semiconductor memory. The authentication program may be provided via a communication network as a data signal superimposed on a carrier wave.

以上説明したように、暗号システム1では、ユーザ端末11Aにおいて、読み出し権限を有する属性の組み合わせである読み出し用のアクセス構造と、暗号化鍵PKと、を用いてデータMsgを暗号化することで暗号データMsgencが生成され、クラウドストレージ40に格納される。このため、クラウドストレージ40がデータMsgを覗き見することはできない。また、暗号システム1では、書き込み権限を有する属性の組み合わせである書き込み用のアクセス構造と、属性ベース暗号の暗号化鍵PKと、を用いて入力値xを暗号化することで暗号文xencが生成される。このため、ユーザ端末11B(ユーザUB)が書き込み権限に対応する属性を有している場合に、暗号文xencを復号可能である。したがって、ユーザ端末11Bが暗号文xencを復号できたことを条件として、ユーザ端末11Bに暗号データMsgencに対する書き込みが許可される。このように、ユーザ端末11Bがユーザ端末11B(ユーザUB)の属性に関する情報をクラウドストレージ40に送付することなく、ユーザ端末11B(ユーザUB)が書き込み権限を有しているか否かが判定される。言い換えると、ユーザ端末11B(ユーザUB)の属性を示すことなく、書き込み権限を管理することが可能となる。その結果、プライバシーが侵害される可能性、及び攻撃の対象となる可能性を低減することが可能となる。 As described above, in the encryption system 1, the user terminal 11A encrypts the data Msg by using the read access structure, which is a combination of attributes having read authority, and the encryption key PK. The data Msgenc is generated and stored in the cloud storage 40. Therefore, the cloud storage 40 cannot peep into the data Msg. Further, in the encryption system 1, the ciphertext x enc is obtained by encrypting the input value x using the access structure for writing, which is a combination of attributes having write authority, and the encryption key PK of the attribute-based encryption. Will be generated. Therefore, when the user terminal 11B (user UB) has an attribute corresponding to the write authority, the ciphertext xenc can be decrypted. Therefore, on condition that the user terminal 11B could decrypt the ciphertext x enc, writing to the encrypted data Msg enc is permitted to the user terminal 11B. In this way, it is determined whether or not the user terminal 11B (user UB) has the write authority without the user terminal 11B sending the information regarding the attributes of the user terminal 11B (user UB) to the cloud storage 40. .. In other words, it is possible to manage the write authority without showing the attribute of the user terminal 11B (user UB). As a result, it is possible to reduce the possibility of invading privacy and being the target of attacks.

ユーザ端末11Bが暗号文xencを復号することができるのであれば、暗号文xencを復号することで得られた入力値xdecを一方向性関数fに入力することで得られた演算結果f(xdec)が、クラウドストレージ40において暗号データMsgencと対応付けられている演算結果f(x)と一致する。したがって、クラウドストレージ40は、ユーザ端末11Bから暗号データMsgencに対する書き込み要求を受信した場合、少なくとも暗号文xencをユーザ端末11Bに送信する。そして、ユーザ端末11Bによって復号された暗号文xenc(入力値xdec)を一方向性関数fに入力することで得られた演算結果f(xdec)が、暗号データMsgencと対応付けられている演算結果f(x)と一致する場合に、ユーザ端末11Bが暗号文xencを復号できたとみなすことができるので、ユーザ端末11Bに暗号データMsgencに対する書き込みが許可される。このように、ユーザUB(ユーザ端末11B)の属性を示すことなく、書き込み権限を管理することが可能となる。なお、上記実施形態では、クラウドストレージ40が演算結果f(xdec)を生成しているが、ユーザ端末11Bが演算結果f(xdec)を生成してもよい。 If the user terminal 11B can decrypt the ciphertext x enc , the calculation result obtained by inputting the input value x dec obtained by decrypting the ciphertext x enc into the one-way function f. f (x dec) matches the encrypted data Msg enc and correlated its dependent computation result f (x) in the cloud storage 40. Thus, cloud storage 40, when receiving a write request for the encrypted data Msg enc from the user terminal 11B, and transmits at least the ciphertext x enc to the user terminal 11B. Then, the ciphertext is decrypted by the user terminal 11B x enc (input value x dec) the one-way function calculation result obtained by inputting the f f (x dec) is associated with the encrypted data Msg enc when matching the in which the operation result f (x), the user terminal 11B is can be regarded as can be decrypted ciphertext x enc, writing to the encrypted data Msg enc is permitted to the user terminal 11B. In this way, it is possible to manage the write authority without showing the attribute of the user UB (user terminal 11B). In the above embodiment, the cloud storage 40 generates the calculation result f (x dec ), but the user terminal 11B may generate the calculation result f (x dec ).

例えば、ユーザ端末11BがステップS64を行わなかった場合、クラウドストレージ40が暗号文xencに代えて暗号データMsgencを送信したとすると、ユーザ端末11Bが暗号データMsgencを復号し、元のデータMsg(以下、暗号データMsgencを復号することで得られたデータMsgを「データMsgdec」と表記する。)をクラウドストレージ40に送信する。これにより、クラウドストレージ40は、データMsgdecを取得できてしまう。これに対し、ユーザ端末11Bは、クラウドストレージ40から受信した暗号文xencが正当なデータであるか否かを検証するので、暗号文xencが不正なデータである場合には、入力値xdecをストレージ装置に送信しない等の対策を講じることが可能となる。 For example, if the user terminal 11B does not perform step S64, and the cloud storage 40 transmits the encrypted data Msg ench instead of the encrypted text x ench , the user terminal 11B decrypts the encrypted data Msg ench and the original data. Msg (hereinafter, the data Msg obtained by decrypting the encrypted data Msg ench is referred to as "data Msg dec ") is transmitted to the cloud storage 40. As a result, the cloud storage 40 can acquire the data Msg dec . On the other hand, the user terminal 11B verifies whether or not the ciphertext x ench received from the cloud storage 40 is legitimate data. Therefore, if the ciphertext x ench is invalid data, the input value x It is possible to take measures such as not transmitting the dec to the storage device.

暗号システム1では、読み出し権限を有する属性の組み合わせである読み出し用のアクセス構造と、暗号化鍵PKと、を用いてデータMsgを暗号化することで暗号データMsgencが生成される。このため、ユーザ端末11Bが読み出し権限に対応する属性を有している場合に、暗号データMsgencを復号可能である。したがって、クラウドストレージ40は、ユーザ端末11Bから暗号データMsgencに対する読み出し要求を受信した場合、暗号データMsgencをユーザ端末11Bに送信するだけでよい。このように、ユーザ端末11Bがユーザ端末11Bの属性に関する情報をクラウドストレージ40に送付することなく、ユーザ端末11Bが読み出し権限を有しているか否かが判定される。言い換えると、ユーザUB(ユーザ端末11B)の属性を示すことなく、読み出し権限を管理することが可能となる。 In the encryption system 1, the encrypted data Msg ench is generated by encrypting the data Msg using the access structure for reading, which is a combination of attributes having read authority, and the encryption key PK. Therefore, when it has the attributes of the user terminal 11B corresponding to the read permission, it is possible to decrypt the encrypted data Msg enc. Thus, cloud storage 40, when receiving a read request for the encrypted data Msg enc from the user terminal 11B, it is only necessary to transmit the encrypted data Msg enc to the user terminal 11B. In this way, it is determined whether or not the user terminal 11B has the read authority without sending the information regarding the attributes of the user terminal 11B to the cloud storage 40. In other words, it is possible to manage the read authority without showing the attribute of the user UB (user terminal 11B).

ユーザ端末11A〜11C、クラウドストレージ40、ユーザ端末11A〜11Cが行う暗号方法、クラウドストレージ40が行う認証方法、ユーザ端末11A〜11Cに暗号方法を実施させるための暗号プログラム、及びクラウドストレージ40に認証方法を実施させるための認証プログラムにおいても、暗号システム1と同様の効果が奏される。 User terminals 11A to 11C, cloud storage 40, encryption method performed by user terminals 11A to 11C, authentication method performed by cloud storage 40, encryption program for causing user terminals 11A to 11C to execute encryption method, and authentication to cloud storage 40. The same effect as that of the encryption system 1 is obtained in the authentication program for implementing the method.

なお、本発明に係る暗号システム、ユーザ端末、ストレージ装置、暗号方法、認証方法、暗号プログラム、及び認証プログラムは上記実施形態に限定されない。 The encryption system, user terminal, storage device, encryption method, authentication method, encryption program, and authentication program according to the present invention are not limited to the above embodiments.

上記実施形態では、各ユーザが鍵発行機関20Aに利用属性の申請を行っているが、他の鍵発行機関に利用属性の申請を行ってもよい。例えば、ある組織のユーザが利用属性の申請を行う鍵発行機関と、別の組織のユーザが利用属性の申請を行う鍵発行機関とが異なる場合のように、2以上の鍵発行機関に利用属性の申請が行われることがある。このような場合、1つの鍵発行機関(例えば、鍵発行機関20A)がそれ以外の鍵発行機関に申請された属性を取りまとめてもよい。他の鍵発行機関は、自身に申請された利用属性について、鍵発行機関20Aに利用属性の申請を行う。鍵発行機関20Aは、上記実施形態と同様に初期設定を行う。 In the above embodiment, each user applies for the usage attribute to the key issuing institution 20A, but the usage attribute may be applied to another key issuing institution. For example, when a key issuing institution in which a user of one organization applies for a usage attribute is different from a key issuing institution in which a user of another organization applies for a usage attribute, the usage attribute is applied to two or more key issuing institutions. Application may be made. In such a case, one key issuing institution (for example, the key issuing institution 20A) may compile the attributes applied to the other key issuing institution. The other key issuing institution applies to the key issuing institution 20A for the usage attribute for the usage attribute applied to itself. The key issuing institution 20A performs the initial setting in the same manner as in the above embodiment.

暗号システム1は、公開サーバ30を備えていなくてもよい。この場合、公開情報は、暗号システム1内の各機関に電子メール等によって直接配布される。 The encryption system 1 does not have to include the public server 30. In this case, the public information is directly distributed to each institution in the encryption system 1 by e-mail or the like.

ユーザの属性は、所定の規則によって決定されてもよい。例えば、ユーザが会社員である場合には、所属部署、及び入社年度等の属性が管理されている。この場合、これらの属性を一括して、企業の管理部門において利用属性の申請が行われてもよく、各ユーザは利用属性の申請を行わなくてもよい。 User attributes may be determined by predetermined rules. For example, when the user is a company employee, attributes such as the department to which the user belongs and the year of joining the company are managed. In this case, these attributes may be collectively applied for in the management department of the company, and each user does not have to apply for the usage attribute.

ユーザシステム10は、1つの組織に属するユーザ端末だけでなく、異なる組織に属するユーザ端末を含んでもよい。この場合、同じ名称の属性が2以上の組織で利用される可能性がある。このため、各組織の属性が一意に識別可能なように属性名等が設定される。例えば、ユーザUAがE社に属しており、ユーザUBがF社に属しており、ユーザUA及びユーザUBが「総務課」の属性について利用属性の申請を行う場合、属性名を「総務課E社」、及び「総務課F社」として2つの属性が区別されるか、会社名の属性と「総務課」の属性とが論理積される。 The user system 10 may include not only user terminals belonging to one organization but also user terminals belonging to different organizations. In this case, attributes with the same name may be used by two or more organizations. Therefore, the attribute name and the like are set so that the attributes of each organization can be uniquely identified. For example, when the user UA belongs to company E, the user UB belongs to company F, and the user UA and the user UB apply for the usage attribute for the attribute of "general affairs section", the attribute name is "general affairs section E". The two attributes are distinguished as "company" and "general affairs section F company", or the attribute of the company name and the attribute of "general affairs section" are logically multiplied.

ユーザ端末11A〜11Cは、読み出し用の暗号化鍵PKと、書き込み用の暗号化鍵PKと、を生成してもよく、読み出し用の復号鍵SKと、書き込み用の復号鍵SKと、を生成してもよい。この場合、鍵発行機関20Aは、各ユーザから申請されたN個の属性に対して、巡回群G1から2N個の乱数h,h,・・・,h2N(h,h,・・・,h2N∈G1)をランダムに選択する。つまり、ユーザの属性として、読み出し用の属性と書き込み用の属性とが準備される。 The user terminal 11A~11C includes encryption key PK for reading, may be generated, and the encryption key PK for writing, a decryption key SK u for reading, a decryption key SK u for writing, May be generated. In this case, the key issuing authority 20A is for N attributes request by the user, 2N random numbers h 1 from a cyclic group G1, h 2, ···, h 2N (h 1, h 2, ..., H 2N ∈ G1) is randomly selected. That is, a read attribute and a write attribute are prepared as user attributes.

また、新規書き込み処理及び書き込み処理は、図7及び図9に示される例に限られない。例えば、安全性を高めるために、ゼロ知識証明が用いられてもよい。図10は、図1に示される暗号システムにおける新規書き込み処理の別の例を示すシーケンス図である。図11は、図1に示される暗号システムにおける書き込み処理の別の例を示すシーケンス図である。ここでは、ユーザ端末11Aが新規書き込みを行い、ユーザ端末11Bが書き込みを行う場合を説明する。 Further, the new writing process and the writing process are not limited to the examples shown in FIGS. 7 and 9. For example, zero-knowledge proofs may be used to increase security. FIG. 10 is a sequence diagram showing another example of the new write process in the encryption system shown in FIG. FIG. 11 is a sequence diagram showing another example of the write process in the encryption system shown in FIG. Here, a case where the user terminal 11A performs new writing and the user terminal 11B writes is described.

図10に示される新規書き込み処理では、ステップS41と同様に、まずユーザUAがユーザ端末11Aを用いて所望のデータMsgを暗号化することで暗号データMsgencを生成する(ステップS71)。続いて、ユーザ端末11Aは、一方向性関数f及びハッシュ関数hを準備(生成)し、入力値xを生成するとともに、一方向性関数fに入力値xを入力することで演算結果f(x)を生成する(ステップS72)。また、ユーザ端末11Aは、素数p、乱数g、及び乱数qを生成し、式(15)を用いて、出力値yを計算する。

Figure 2020161945
In the new writing process shown in FIG. 10, as in step S41, the user UA first encrypts the desired data Msg using the user terminal 11A to generate encrypted data Msg ench (step S71). Subsequently, the user terminal 11A prepares (generates) the one-way function f and the hash function h to generate the input value x, and inputs the input value x to the one-way function f to obtain the calculation result f ( x) is generated (step S72). Further, the user terminal 11A generates a prime number p, a random number g, and a random number q, and calculates an output value y using the equation (15).
Figure 2020161945

続いて、ステップS43と同様に、ユーザ端末11Aは、入力値xを暗号化することで、入力値xの暗号文xencを生成する(ステップS73)。そして、ユーザ端末11Aは、暗号データMsgenc、暗号文xenc、一方向性関数f、演算結果f(x)、出力値y、乱数g、素数p、乱数q、及びハッシュ関数hをクラウドストレージ40に送信する(ステップS74)。クラウドストレージ40は、ユーザ端末11Aから暗号データMsgenc、暗号文xenc、一方向性関数f、演算結果f(x)、出力値y、乱数g、素数p、乱数q、及びハッシュ関数hを受信すると、暗号データMsgenc、暗号文xenc、一方向性関数f、演算結果f(x)、出力値y、乱数g、素数p、乱数q、及びハッシュ関数hを1つの組として対応付けて不図示の記憶装置に格納する(ステップS75)。以上により、新規書き込み処理が終了する。 Subsequently, similarly to step S43, the user terminal 11A generates the ciphertext x ench of the input value x by encrypting the input value x (step S73). Then, the user terminal 11A stores the cryptographic data Msg ench , the ciphertext x ench , the one-way function f, the calculation result f (x), the output value y, the random number g, the prime number p, the random number q, and the hash function h in the cloud storage. It is transmitted to 40 (step S74). The cloud storage 40 receives the encrypted data Msgenc , the encrypted text xenc , the one-way function f, the calculation result f (x), the output value y, the random number g, the prime number p, the random number q, and the hash function h from the user terminal 11A. Upon receipt, the cryptographic data Msgenc , the cryptographic text xenc , the one-way function f, the operation result f (x), the output value y, the random number g, the prime number p, the random number q, and the hash function h are associated as one set. Is stored in a storage device (not shown) (step S75). As a result, the new writing process is completed.

図11に示される書き込み処理では、まずユーザUBがユーザ端末11Bを用いて、クラウドストレージ40に暗号データMsgencに対する書き込み要求(更新要求)を送信する(ステップS81)。そして、クラウドストレージ40は、ユーザ端末11Bから暗号データMsgencに対する書き込み要求を受信すると、要求されている暗号データMsgencと対応付けられている暗号文xenc、一方向性関数f、演算結果f(x)、出力値y、乱数g、素数p、乱数q、及びハッシュ関数hを不図示の記憶装置から読み出し、当該暗号文xenc、一方向性関数f、演算結果f(x)、出力値y、乱数g、素数p、乱数q、及びハッシュ関数hをユーザ端末11Bに送信する(ステップS82)。 In the write processing is shown in FIG. 11, first, the user UB is using the user terminal 11B, and transmits the write request to the cloud storage 40 for encrypted data Msg enc (the update request) (step S81). The cloud storage 40 receives a write request for the encrypted data Msg enc from the user terminal 11B, the ciphertext x enc that is associated with the encrypted data Msg enc being requested, one-way function f, computation result f (X), output value y, random number g, prime number p, random number q, and hash function h are read from a storage device (not shown), and the cipher statement x ench , one-way function f, calculation result f (x), output. The value y, the random number g, the prime number p, the random number q, and the hash function h are transmitted to the user terminal 11B (step S82).

続いて、ユーザ端末11Bは、クラウドストレージ40から暗号文xenc、一方向性関数f、演算結果f(x)、出力値y、乱数g、素数p、乱数q、及びハッシュ関数hを受信すると、ステップS63と同様に、ユーザUBの復号鍵SKを用いて暗号文xencの復号を行い、入力値xdecを得る(ステップS83)。 Subsequently, when the user terminal 11B receives the ciphertext x ench , the one-way function f, the calculation result f (x), the output value y, the random number g, the prime number p, the random number q, and the hash function h from the cloud storage 40. , as in step S63, it decodes the ciphertext x enc using the decryption key SK u of the user UB, obtain the input value x dec (step S83).

続いて、ユーザ端末11Bは、ステップS64と同様に、クラウドストレージ40から受信した暗号文xencが正当なデータであるか否かを検証する(ステップS84)。ユーザ端末11Bは、クラウドストレージ40から受信した暗号文xencが正当なデータであると判定した場合、乱数rを生成し、式(16)〜式(18)を用いて値α、値β、及び値γを計算する(ステップS85)。

Figure 2020161945

Figure 2020161945

Figure 2020161945
Subsequently, the user terminal 11B verifies whether or not the ciphertext x ench received from the cloud storage 40 is legitimate data, as in step S64. (Step S84). When the user terminal 11B determines that the ciphertext x ench received from the cloud storage 40 is legitimate data, the user terminal 11B generates a random number r and uses the equations (16) to (18) to generate the values α and β. And the value γ are calculated (step S85).
Figure 2020161945

Figure 2020161945

Figure 2020161945

そして、ユーザ端末11Bは、値α及び値γをクラウドストレージ40に送信する(ステップS86)。このとき、ユーザ端末11Bは、書き込みを要求している暗号データMsgencを特定するための情報を付加して送信する。一方、ユーザ端末11Bは、クラウドストレージ40から受信した暗号文xencが不正なデータであると判定した場合には、ステップS85以降の処理を行わない。 Then, the user terminal 11B transmits the value α and the value γ to the cloud storage 40 (step S86). At this time, the user terminal 11B, and transmits the additional information for specifying the encrypted data Msg enc requesting writing. On the other hand, when the user terminal 11B determines that the ciphertext x ench received from the cloud storage 40 is invalid data, the user terminal 11B does not perform the processing after step S85.

続いて、クラウドストレージ40は、ユーザ端末11Bから値α及び値γを受信すると、ユーザUBが書き込み権限を有するか否かを判定する(ステップS87)。具体的に説明すると、クラウドストレージ40は、要求されている暗号データMsgencと対応付けられている出力値y、乱数g、素数p、乱数q、及びハッシュ関数hを不図示の記憶装置から読み出し、ユーザ端末11Bから受信した値αを用いて、式(17)に示される計算を行うことで、値β(以下、クラウドストレージ40で計算した値βを「値βserv」と表記する。)を得る。そして、クラウドストレージ40は、式(19)が成立するか否かを判定する。この式(19)が成立することは、ユーザ端末11Bが暗号文xencを復号できたことを意味する。

Figure 2020161945
Subsequently, when the cloud storage 40 receives the value α and the value γ from the user terminal 11B, the cloud storage 40 determines whether or not the user UB has the write authority (step S87). Specifically, cloud storage 40, the encrypted data Msg enc and association are output values are y being requested, a random number g, primes p, a random number q, and read a hash function h from the storage device (not shown) , By performing the calculation shown in the equation (17) using the value α received from the user terminal 11B, the value β (hereinafter, the value β calculated by the cloud storage 40 is referred to as “value β serv ”). To get. Then, the cloud storage 40 determines whether or not the equation (19) is satisfied. The fact that this equation (19) holds means that the user terminal 11B was able to decrypt the ciphertext x ench .
Figure 2020161945

クラウドストレージ40は、式(19)が成立する場合には、ユーザ端末11BのユーザUBは書き込み権限を有すると判定し、書き込みを許可する(ステップS88)。一方、クラウドストレージ40は、式(19)が成立しない場合には、ユーザ端末11BのユーザUBは書き込み権限を有しないと判定し、書き込みを許可しない。そして、ユーザ端末11Bは、クラウドストレージ40から書き込みの許可を得ると、暗号データMsgencの更新等を行う。以降の処理は、図10に示される新規書き込み処理と同様であるので、説明を省略する。以上により、書き込み処理が終了する。 When the equation (19) is satisfied, the cloud storage 40 determines that the user UB of the user terminal 11B has the write authority and permits the write (step S88). On the other hand, if the equation (19) is not satisfied, the cloud storage 40 determines that the user UB of the user terminal 11B does not have the write authority and does not allow the write. Then, when the user terminal 11B obtains write permission from the cloud storage 40, the user terminal 11B updates the encrypted data Msgenc and the like. Since the subsequent processing is the same as the new writing processing shown in FIG. 10, the description thereof will be omitted. With the above, the writing process is completed.

なお、図10及び図11に示される例では、非対話式のゼロ知識証明が用いられているが、対話式のゼロ知識証明が用いられてもよい。 In the examples shown in FIGS. 10 and 11, a non-interactive zero-knowledge proof is used, but an interactive zero-knowledge proof may be used.

変形例に係る暗号システム1においても、上記実施形態に係る暗号システム1と同様の効果が奏される。この構成では、ユーザ端末11Bがクラウドストレージ40に入力値xdecを送信することなく、ユーザ端末11Bが暗号文xencを復号できたことをクラウドストレージ40に証明することができる。このため、安全性を高めることが可能となる。 The encryption system 1 according to the modified example also has the same effect as the encryption system 1 according to the above embodiment. In this configuration, it is possible to prove to the cloud storage 40 that the user terminal 11B was able to decrypt the ciphertext x ench without transmitting the input value x dec to the cloud storage 40. Therefore, it is possible to improve safety.

例えば、安全性を高めるために、暗号データMsgencに対する書き込み要求を行ったユーザ端末に、クラウドストレージ40が暗号データMsgencに対応した暗号文xenc等を送信していることを、当該ユーザ端末が確実に検証できるように暗号システム1は構成されてもよい。図12は、図1に示される暗号システムにおける新規書き込み処理のさらに別の例を示すシーケンス図である。図13は、図1に示される暗号システムにおける書き込み処理のさらに別の例を示すシーケンス図である。ここでは、ユーザ端末11Aが新規書き込みを行い、ユーザ端末11Bが書き込みを行う場合を説明する。 For example, in order to improve safety, encrypted data Msg to the user terminal performing the write request to enc, that is sending the cloud storage 40 ciphertext x enc like corresponding to the encrypted data Msg enc, the user terminal The cryptosystem 1 may be configured so that it can be reliably verified. FIG. 12 is a sequence diagram showing still another example of the new write process in the encryption system shown in FIG. FIG. 13 is a sequence diagram showing still another example of the write process in the encryption system shown in FIG. Here, a case where the user terminal 11A performs new writing and the user terminal 11B writes is described.

図12に示される新規書き込み処理では、ステップS41と同様に、まずユーザUAがユーザ端末11Aを用いて所望のデータMsgを暗号化することで暗号データMsgencを生成する(ステップS91)。続いて、ユーザ端末11Aは、一方向性関数f(別の一方向性関数)及び一方向性関数fを準備(生成)する。そして、ユーザ端末11Aは、一方向性関数fにデータMsgを入力することで演算結果f(Msg)を生成し、演算結果f(Msg)を入力値xとする。さらに、ユーザ端末11Aは、一方向性関数fに入力値xを入力することで演算結果f(x)を生成する(ステップS92)。 In the new writing process shown in FIG. 12, similarly to step S41, the user UA first encrypts the desired data Msg using the user terminal 11A to generate encrypted data Msg ench (step S91). Subsequently, the user terminal 11A prepares (generates) a one-way function f 1 (another one-way function) and a one-way function f 2 . Then, the user terminal 11A generates the operation result f 1 (Msg) by entering the data Msg one-way function f 1, an input value x the computation result f 1 (Msg). Further, the user terminal 11A generates the calculation result f 2 (x) by inputting the input value x into the one-way function f 2 (step S92).

続いて、ステップS43と同様に、ユーザ端末11Aは、入力値xを暗号化することで、入力値xの暗号文xencを生成する(ステップS93)。そして、ユーザ端末11Aは、暗号データMsgenc、暗号文xenc、一方向性関数f、一方向性関数f、及び演算結果f(x)をクラウドストレージ40に送信する(ステップS94)。クラウドストレージ40は、ユーザ端末11Aから暗号データMsgenc、暗号文xenc、一方向性関数f、一方向性関数f、及び演算結果f(x)を受信すると、暗号データMsgenc、暗号文xenc、一方向性関数f、一方向性関数f、及び演算結果f(x)を1つの組として対応付けて不図示の記憶装置に格納する(ステップS95)。以上により、新規書き込み処理が終了する。 Subsequently, similarly to step S43, the user terminal 11A generates the ciphertext x ench of the input value x by encrypting the input value x (step S93). Then, the user terminal 11A transmits the encrypted data Msg ench , the ciphertext x ench , the one-way function f 1 , the one-way function f 2 , and the calculation result f 2 (x) to the cloud storage 40 (step S94). .. Cloud storage 40, the encrypted data Msg enc from the user terminal 11A, the ciphertext x enc, the one-way function f 1, one-way function f 2, and receives the operation result f 2 (x), the encrypted data Msg enc, The cipher statement x ench , the one-way function f 1 , the one-way function f 2 , and the calculation result f 2 (x) are associated with each other as one set and stored in a storage device (not shown) (step S95). As a result, the new writing process is completed.

図13に示される書き込み処理では、まずユーザUBがユーザ端末11Bを用いて、クラウドストレージ40に暗号データMsgencに対する書き込み要求(更新要求)を送信する(ステップS101)。そして、クラウドストレージ40は、ユーザ端末11Bから暗号データMsgencに対する書き込み要求を受信すると、要求されている暗号データMsgencと、当該暗号データMsgencに対応付けられている暗号文xenc、一方向性関数f、及び一方向性関数fを不図示の記憶装置から読み出し、当該暗号データMsgenc、暗号文xenc、一方向性関数f、及び一方向性関数fをユーザ端末11Bに送信する(ステップS102)。 In the write processing is shown in FIG. 13, first, the user UB is using the user terminal 11B, and transmits the write request to the cloud storage 40 for encrypted data Msg enc (the update request) (step S101). The cloud storage 40 receives a write request for the encrypted data Msg enc from the user terminal 11B, the encrypted data Msg enc being requested, the ciphertext x enc being associated with the encrypted data Msg enc, unidirectional The sexual function f 1 and the unidirectional function f 2 are read from a storage device (not shown), and the encrypted data Msgenc , the cipher statement x ench , the unidirectional function f 1 and the unidirectional function f 2 are transferred to the user terminal 11B. Is transmitted to (step S102).

続いて、ユーザ端末11Bは、クラウドストレージ40から暗号データMsgenc、暗号文xenc、一方向性関数f、及び一方向性関数fを受信すると、ステップS63と同様に、ユーザUBの復号鍵SKを用いて暗号データMsgenc及び暗号文xencの復号を行い、データMsgdec(別の復号結果)及び入力値xdecを得る(ステップS103)。なお、暗号データMsgencに設定されたポリシーと、暗号文xencに設定されたポリシーとは、互いに同じであってもよく、互いに異なっていてもよい。暗号データMsgencに設定されたポリシーは、暗号文xencに設定されたポリシーと同じか、暗号文xencに設定されたポリシーよりも緩い。言い換えると、暗号文xencを復号可能なユーザ(書き込み可能なユーザ)は、暗号データMsgencを復号可能(読み出し可能)である。 Subsequently, when the user terminal 11B receives the encrypted data Msgenc , the ciphertext x ench , the one-way function f 1 and the one-way function f 2 from the cloud storage 40, the user terminal 11B decrypts the user UB as in step S63. The encrypted data Msg ench and the ciphertext x ench are decrypted using the key SK u , and the data Msg dec (another decryption result) and the input value x dec are obtained (step S103). Note that the policy set in the encrypted data Msg enc, and the policy that is set to the ciphertext x enc, may be the same as each other or may be different from each other. Policy, which is set to encrypted data Msg enc is either the same as the policy that is set to the ciphertext x enc, loose than the policy that is set to the ciphertext x enc. In other words, the decodable user the ciphertext x enc (writable user) can decrypt the encrypted data Msg enc (readable).

続いて、ユーザ端末11Bは、クラウドストレージ40から受信した暗号文xencが正当なデータであるか否かを検証する(ステップS104)。具体的に説明すると、ユーザ端末11Bは、ステップS103で得られたデータMsgdecをクラウドストレージ40から受信した一方向性関数fに引数として入力することで、演算結果f(Msgdec)を生成する。そして、ユーザ端末11Bは、演算結果f(Msgdec)とステップS103で得られた入力値xdecとを照合する。ユーザ端末11Bは、2つの値が同じである(一致する)場合には、クラウドストレージ40から受信した暗号文xencが正当なデータであると判定し、一方向性関数fに入力値xdecを入力することで演算結果f(xdec)を生成する(ステップS105)。 Subsequently, the user terminal 11B verifies whether or not the ciphertext x ench received from the cloud storage 40 is legitimate data (step S104). Specifically, the user terminal 11B inputs the data Msg dec obtained in step S103 as an argument to the one-way function f 1 received from the cloud storage 40, thereby inputting the calculation result f 1 (Msg dec ). Generate. Then, the user terminal 11B collates the calculation result f 1 (Msg dec ) with the input value x dec obtained in step S103. The user terminal 11B, the two values are the same (match) in the case, it is determined that the ciphertext x enc received from cloud storage 40 is a valid data, the input value x to the one-way function f 2 By inputting the dec , the calculation result f 2 (x dec ) is generated (step S105).

そして、ユーザ端末11Bは、演算結果f(xdec)をクラウドストレージ40に送信する(ステップS106)。このとき、ユーザ端末11Bは、書き込みを要求している暗号データMsgencを特定するための情報を付加して送信する。一方、ユーザ端末11Bは、演算結果f(Msgdec)とステップS103で得られた入力値xdecとが互いに異なる場合には、クラウドストレージ40から受信した暗号文xencが不正なデータであると判定し、ステップS105以降の処理を行わない。 Then, the user terminal 11B transmits the calculation result f 2 (x dec ) to the cloud storage 40 (step S106). At this time, the user terminal 11B, and transmits the additional information for specifying the encrypted data Msg enc requesting writing. On the other hand, in the user terminal 11B, when the calculation result f 1 (Msg dec ) and the input value x dec obtained in step S103 are different from each other, the ciphertext x ench received from the cloud storage 40 is invalid data. Is determined, and the processing after step S105 is not performed.

続いて、クラウドストレージ40は、ユーザ端末11Bから演算結果f(xdec)を受信すると、要求されている暗号データMsgencと対応付けられている演算結果f(x)を不図示の記憶装置から読み出し、演算結果f(x)と演算結果f(xdec)とを照合する(ステップS107)。クラウドストレージ40は、2つの演算結果が同じである(一致する)場合には、ユーザ端末11BのユーザUBは書き込み権限を有すると判定し、書き込みを許可する(ステップS108)。一方、クラウドストレージ40は、2つの演算結果が互いに異なる場合には、ユーザ端末11BのユーザUBは書き込み権限を有しないと判定し、書き込みを許可しない。 Subsequently, cloud storage 40 receives the operation result f 2 (x dec) from the user terminal 11B, being requested encrypted data Msg enc and correlated its dependent computation result f 2 (x) the storage (not shown) It is read from the apparatus, and the calculation result f 2 (x) and the calculation result f 2 (x dec ) are collated (step S107). When the two calculation results are the same (match), the cloud storage 40 determines that the user UB of the user terminal 11B has the write authority and permits the write (step S108). On the other hand, when the two calculation results are different from each other, the cloud storage 40 determines that the user UB of the user terminal 11B does not have the write authority and does not allow the write.

そして、ユーザ端末11Bは、クラウドストレージ40から書き込みの許可を得ると、暗号データMsgencの更新等を行う。以降の処理は、新規書き込み処理と同様であるので、説明を省略する。以上により、書き込み処理が終了する。 Then, when the user terminal 11B obtains write permission from the cloud storage 40, the user terminal 11B updates the encrypted data Msgenc and the like. Since the subsequent processing is the same as the new writing processing, the description thereof will be omitted. With the above, the writing process is completed.

上記別の変形例に係る暗号システム1においても、上記実施形態に係る暗号システム1と同様の効果が奏される。また、別の変形例に係る暗号システム1では、入力値xが暗号化対象のデータMsgから生成されるので、ユーザ端末11Bは、クラウドストレージ40から受信した暗号文xencが暗号化対象のデータMsgに対応しているか否か、つまり、クラウドストレージ40から受信した暗号文xencが正当なデータであるか否かを確実に確認することができる。 The encryption system 1 according to the other modification also has the same effect as the encryption system 1 according to the embodiment. Further, in the encryption system 1 according to another modification, since the input value x is generated from the data Msg to be encrypted, in the user terminal 11B, the ciphertext x ench received from the cloud storage 40 is the data to be encrypted. It is possible to surely confirm whether or not it corresponds to Msg, that is, whether or not the ciphertext x ench received from the cloud storage 40 is legitimate data.

以上のように、クラウドストレージ40は、ユーザ端末11Bから暗号データMsgencに対する書き込み要求を受信した場合、ユーザ端末11Bが暗号文xencを復号できたことを条件として、ユーザ端末11Bに暗号データMsgencに対する書き込みを許可する。ユーザ端末11Bが暗号文xencを復号できたか否かの判定方法は、図9に示される例、図11に示される例、及び図13に示される例に限られない。 As described above, the cloud storage 40, when receiving a write request for the encrypted data Msg enc from the user terminal 11B, on condition that the user terminal 11B could decrypt the ciphertext x enc, encrypted data Msg to the user terminal 11B Allow writing to ench . The method for determining whether or not the user terminal 11B has been able to decrypt the ciphertext x ench is not limited to the example shown in FIG. 9, the example shown in FIG. 11, and the example shown in FIG.

1…暗号システム、11A…ユーザ端末(第1ユーザ端末)、11B…ユーザ端末(第2ユーザ端末)、11C…ユーザ端末、40…クラウドストレージ(ストレージ装置)、UA…ユーザ、UB…ユーザ、UC…ユーザ。 1 ... Cryptographic system, 11A ... User terminal (first user terminal), 11B ... User terminal (second user terminal), 11C ... User terminal, 40 ... Cloud storage (storage device), UA ... User, UB ... User, UC …User.

Claims (12)

属性ベース暗号を用いた暗号システムであって、
第1ユーザ端末と、
前記第1ユーザ端末によって生成された暗号データを格納するストレージ装置と、
を備え、
前記第1ユーザ端末は、読み出し権限を有する属性の組み合わせである第1属性セットと、属性ベース暗号の第1暗号化鍵と、を用いて暗号化対象のデータを暗号化することで前記暗号データを生成し、
前記第1ユーザ端末は、入力値を生成するとともに、一方向性関数に前記入力値を入力することで演算結果を生成し、
前記第1ユーザ端末は、書き込み権限を有する属性の組み合わせである第2属性セットと、属性ベース暗号の第2暗号化鍵と、を用いて前記入力値を暗号化することで暗号文を生成し、
前記ストレージ装置は、前記暗号データとともに、前記暗号文、前記一方向性関数、及び前記演算結果を格納し、
前記ストレージ装置は、1以上の属性を含むユーザ属性セットを有する第2ユーザ端末から前記暗号データに対する書き込み要求を受信した場合、前記第2ユーザ端末が前記暗号文を復号できたことを条件として、前記第2ユーザ端末に前記暗号データに対する書き込みを許可する、暗号システム。
A cryptosystem that uses attribute-based cryptography
With the first user terminal
A storage device that stores the encrypted data generated by the first user terminal, and
With
The first user terminal encrypts the data to be encrypted by using the first attribute set, which is a combination of attributes having read authority, and the first encryption key of the attribute-based encryption, thereby encrypting the encrypted data. To generate
The first user terminal generates an input value and also generates an operation result by inputting the input value into a one-way function.
The first user terminal generates a ciphertext by encrypting the input value using a second attribute set which is a combination of attributes having write authority and a second encryption key of attribute-based encryption. ,
The storage device stores the ciphertext, the one-way function, and the calculation result together with the encrypted data.
When the storage device receives a write request for the encrypted data from a second user terminal having a user attribute set including one or more attributes, the storage device is subject to the condition that the second user terminal can decrypt the ciphertext. An encryption system that allows the second user terminal to write to the encrypted data.
前記ストレージ装置は、前記第2ユーザ端末から前記暗号データに対する書き込み要求を受信した場合、前記暗号文を前記第2ユーザ端末に送信し、
前記第2ユーザ端末は、前記暗号文を復号することで復号結果を生成し、
前記第2ユーザ端末によって生成された前記復号結果を、前記一方向性関数に入力することで前記演算結果が得られた場合に、前記ストレージ装置は、前記第2ユーザ端末が前記暗号文を復号できたと判定する、請求項1に記載の暗号システム。
When the storage device receives a write request for the encrypted data from the second user terminal, the storage device transmits the ciphertext to the second user terminal.
The second user terminal generates a decryption result by decrypting the ciphertext, and the second user terminal generates a decryption result.
When the calculation result is obtained by inputting the decryption result generated by the second user terminal into the one-way function, the second user terminal decrypts the ciphertext in the storage device. The encryption system according to claim 1, which is determined to be completed.
前記ストレージ装置は、前記第2ユーザ端末から前記暗号データに対する書き込み要求を受信した場合、前記一方向性関数、及び前記演算結果を前記第2ユーザ端末にさらに送信し、
前記第2ユーザ端末は、前記復号結果と、前記一方向性関数と、前記演算結果と、を用いて前記暗号文が正当なデータであるか否かを検証する、請求項2に記載の暗号システム。
When the storage device receives a write request for the encrypted data from the second user terminal, the storage device further transmits the one-way function and the calculation result to the second user terminal.
The encryption according to claim 2, wherein the second user terminal verifies whether or not the ciphertext is valid data by using the decryption result, the one-way function, and the calculation result. system.
前記ストレージ装置は、別の一方向性関数に前記暗号化対象のデータを入力することで前記入力値を生成し、
前記ストレージ装置は、前記暗号データ、前記暗号文、前記一方向性関数、及び前記演算結果に加えて、前記別の一方向性関数を格納し、
前記ストレージ装置は、前記第2ユーザ端末から前記暗号データに対する書き込み要求を受信した場合、前記暗号文に加えて、前記暗号データ、及び前記別の一方向性関数を前記第2ユーザ端末にさらに送信し、
前記第2ユーザ端末は、前記暗号データを復号することで得られた別の復号結果と、前記別の一方向性関数と、前記復号結果と、を用いて前記暗号文が正当なデータであるか否かを検証する、請求項2に記載の暗号システム。
The storage device generates the input value by inputting the data to be encrypted into another one-way function.
The storage device stores the other unidirectional function in addition to the encrypted data, the ciphertext, the one-way function, and the calculation result.
When the storage device receives a write request for the encrypted data from the second user terminal, the storage device further transmits the encrypted data and the other one-way function to the second user terminal in addition to the ciphertext. And
In the second user terminal, the ciphertext is legitimate data using another decryption result obtained by decrypting the encrypted data, the other one-way function, and the decryption result. The cryptosystem according to claim 2, which verifies whether or not.
前記ストレージ装置は、ゼロ知識証明を用いて前記第2ユーザ端末が前記暗号文を復号できたか否かを判定する、請求項1に記載の暗号システム。 The encryption system according to claim 1, wherein the storage device determines whether or not the second user terminal can decrypt the ciphertext by using zero-knowledge proof. 前記ストレージ装置は、前記第2ユーザ端末から前記暗号データに対する読み出し要求を受信した場合、前記第2ユーザ端末に前記暗号データを送信する、請求項1〜請求項5のいずれか一項に記載の暗号システム。 The method according to any one of claims 1 to 5, wherein when the storage device receives a read request for the encrypted data from the second user terminal, the storage device transmits the encrypted data to the second user terminal. Cryptographic system. 読み出し権限を有する属性の組み合わせである第1属性セットと、属性ベース暗号の第1暗号化鍵と、を用いて暗号化対象のデータを暗号化することで暗号データを生成し、
入力値を生成するとともに、一方向性関数に前記入力値を入力することで演算結果を生成し、
書き込み権限を有する属性の組み合わせである第2属性セットと、属性ベース暗号の第2暗号化鍵と、を用いて前記入力値を暗号化することで暗号文を生成し、
前記暗号データとともに、前記暗号文、前記一方向性関数、及び前記演算結果をストレージ装置に送信する、ユーザ端末。
Cryptographic data is generated by encrypting the data to be encrypted using the first attribute set, which is a combination of attributes having read permission, and the first encryption key of attribute-based encryption.
Along with generating the input value, the calculation result is generated by inputting the input value into the one-way function.
A ciphertext is generated by encrypting the input value using a second attribute set which is a combination of attributes having write authority and a second encryption key of attribute-based encryption.
A user terminal that transmits the ciphertext, the one-way function, and the calculation result together with the encrypted data to the storage device.
読み出し権限を有する属性の組み合わせである第1属性セットと属性ベース暗号の第1暗号化鍵とを用いて暗号化対象のデータを暗号化することで生成された暗号データと、一方向性関数と、前記一方向性関数に入力値を入力することで得られた演算結果と、書き込み権限を有する属性の組み合わせである第2属性セットと属性ベース暗号の第2暗号化鍵とを用いて前記入力値を暗号化することで生成された暗号文と、を取得し、
前記暗号データとともに、前記暗号文、前記一方向性関数、及び前記演算結果を格納し、
ユーザ端末から前記暗号データに対する書き込み要求を受信した場合、前記ユーザ端末が前記暗号文を復号できるか否かを判定し、
前記ユーザ端末が前記暗号文を復号できたと判定された場合、前記ユーザ端末に前記暗号データに対する書き込みを許可する、ストレージ装置。
Cryptographic data generated by encrypting the data to be encrypted using the first attribute set, which is a combination of attributes having read permission, and the first encryption key of the attribute-based encryption, and a unidirectional function. , The input using the calculation result obtained by inputting the input value to the unidirectional function, the second attribute set which is a combination of the attributes having the write permission, and the second encryption key of the attribute-based encryption. Get the cipher statement generated by encrypting the value,
The ciphertext, the one-way function, and the calculation result are stored together with the encrypted data.
When a write request for the encrypted data is received from the user terminal, it is determined whether or not the user terminal can decrypt the ciphertext.
A storage device that allows the user terminal to write to the encrypted data when it is determined that the user terminal has been able to decrypt the ciphertext.
ユーザ端末が行う暗号方法であって、
読み出し権限を有する属性の組み合わせである第1属性セットと、属性ベース暗号の第1暗号化鍵と、を用いて暗号化対象のデータを暗号化することで暗号データを生成するステップと、
入力値を生成するとともに、一方向性関数に前記入力値を入力することで演算結果を生成するステップと、
書き込み権限を有する属性の組み合わせである第2属性セットと、属性ベース暗号の第2暗号化鍵と、を用いて前記入力値を暗号化することで暗号文を生成するステップと、
前記暗号データとともに、前記暗号文、前記一方向性関数、及び前記演算結果をストレージ装置に送信するステップと、
を備える、暗号方法。
It is an encryption method performed by the user terminal.
A step of generating encrypted data by encrypting data to be encrypted using a first attribute set which is a combination of attributes having read authority and a first encryption key of attribute-based encryption.
A step of generating an input value and a step of generating an operation result by inputting the input value into a one-way function, and
A step of generating a ciphertext by encrypting the input value using a second attribute set which is a combination of attributes having write authority and a second encryption key of attribute-based encryption.
A step of transmitting the ciphertext, the one-way function, and the calculation result to the storage device together with the encrypted data.
Cryptographic method.
ストレージ装置が行う認証方法であって、
読み出し権限を有する属性の組み合わせである第1属性セットと属性ベース暗号の第1暗号化鍵とを用いて暗号化対象のデータを暗号化することで生成された暗号データと、一方向性関数と、前記一方向性関数に入力値を入力することで得られた演算結果と、書き込み権限を有する属性の組み合わせである第2属性セットと属性ベース暗号の第2暗号化鍵とを用いて前記入力値を暗号化することで生成された暗号文と、を取得するステップと、
前記暗号データとともに、前記暗号文、前記一方向性関数、及び前記演算結果を格納するステップと、
ユーザ端末から前記暗号データに対する書き込み要求を受信した場合、前記ユーザ端末が前記暗号文を復号できるか否かを判定するステップと、
前記ユーザ端末が前記暗号文を復号できたと判定された場合に、前記ユーザ端末に前記暗号データに対する書き込みを許可するステップと、
を備える、認証方法。
It is an authentication method performed by the storage device.
Cryptographic data generated by encrypting the data to be encrypted using the first attribute set, which is a combination of attributes having read permission, and the first encryption key of the attribute-based encryption, and a unidirectional function. , The input using the calculation result obtained by inputting the input value to the unidirectional function, the second attribute set which is a combination of the attributes having the write permission, and the second encryption key of the attribute-based encryption. The cipher statement generated by encrypting the value, the steps to get it, and
A step of storing the ciphertext, the one-way function, and the calculation result together with the encrypted data.
When a write request for the encrypted data is received from the user terminal, a step of determining whether or not the user terminal can decrypt the ciphertext, and
A step of permitting the user terminal to write to the encrypted data when it is determined that the user terminal has been able to decrypt the ciphertext.
An authentication method that includes.
コンピュータに、
読み出し権限を有する属性の組み合わせである第1属性セットと、属性ベース暗号の第1暗号化鍵と、を用いて暗号化対象のデータを暗号化することで暗号データを生成するステップと、
入力値を生成するとともに、一方向性関数に前記入力値を入力することで演算結果を生成するステップと、
書き込み権限を有する属性の組み合わせである第2属性セットと、属性ベース暗号の第2暗号化鍵と、を用いて前記入力値を暗号化することで暗号文を生成するステップと、
前記暗号データとともに、前記暗号文、前記一方向性関数、及び前記演算結果をストレージ装置に送信するステップと、
を実行させるための暗号プログラム。
On the computer
A step of generating encrypted data by encrypting data to be encrypted using a first attribute set which is a combination of attributes having read authority and a first encryption key of attribute-based encryption.
A step of generating an input value and a step of generating an operation result by inputting the input value into a one-way function, and
A step of generating a ciphertext by encrypting the input value using a second attribute set which is a combination of attributes having write authority and a second encryption key of attribute-based encryption.
A step of transmitting the ciphertext, the one-way function, and the calculation result to the storage device together with the encrypted data.
Cryptographic program to execute.
1以上のコンピュータを含むコンピュータシステムに、
読み出し権限を有する属性の組み合わせである第1属性セットと属性ベース暗号の第1暗号化鍵とを用いて暗号化対象のデータを暗号化することで生成された暗号データと、一方向性関数と、前記一方向性関数に入力値を入力することで得られた演算結果と、書き込み権限を有する属性の組み合わせである第2属性セットと属性ベース暗号の第2暗号化鍵とを用いて前記入力値を暗号化することで生成された暗号文と、を取得するステップと、
前記暗号データとともに、前記暗号文、前記一方向性関数、及び前記演算結果を格納するステップと、
ユーザ端末から前記暗号データに対する書き込み要求を受信した場合、前記ユーザ端末が前記暗号文を復号できるか否かを判定するステップと、
前記ユーザ端末が前記暗号文を復号できたと判定された場合に、前記ユーザ端末に前記暗号データに対する書き込みを許可するステップと、
を実行させるための認証プログラム。
For computer systems that include one or more computers
Cryptographic data generated by encrypting the data to be encrypted using the first attribute set, which is a combination of attributes having read permission, and the first encryption key of the attribute-based encryption, and a unidirectional function. , The input using the calculation result obtained by inputting the input value to the unidirectional function, the second attribute set which is a combination of the attributes having the write permission, and the second encryption key of the attribute-based encryption. The cipher statement generated by encrypting the value, the steps to get it, and
A step of storing the ciphertext, the one-way function, and the calculation result together with the encrypted data.
When a write request for the encrypted data is received from the user terminal, a step of determining whether or not the user terminal can decrypt the ciphertext, and
A step of permitting the user terminal to write to the encrypted data when it is determined that the user terminal has been able to decrypt the ciphertext.
Authentication program to execute.
JP2019058382A 2019-03-26 2019-03-26 Cryptographic system, user terminal, storage device, encryption method, authentication method, encryption program, and authentication program Pending JP2020161945A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019058382A JP2020161945A (en) 2019-03-26 2019-03-26 Cryptographic system, user terminal, storage device, encryption method, authentication method, encryption program, and authentication program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019058382A JP2020161945A (en) 2019-03-26 2019-03-26 Cryptographic system, user terminal, storage device, encryption method, authentication method, encryption program, and authentication program

Publications (1)

Publication Number Publication Date
JP2020161945A true JP2020161945A (en) 2020-10-01

Family

ID=72640005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019058382A Pending JP2020161945A (en) 2019-03-26 2019-03-26 Cryptographic system, user terminal, storage device, encryption method, authentication method, encryption program, and authentication program

Country Status (1)

Country Link
JP (1) JP2020161945A (en)

Similar Documents

Publication Publication Date Title
US10824701B2 (en) System and method for mapping decentralized identifiers to real-world entities
US11533164B2 (en) System and method for blockchain-based cross-entity authentication
TWI707245B (en) Retrieving access data for blockchain networks using highly available trusted execution environments
US11025435B2 (en) System and method for blockchain-based cross-entity authentication
EP3721603B1 (en) System and method for creating decentralized identifiers
EP3788522B1 (en) System and method for mapping decentralized identifiers to real-world entities
Fabian et al. Collaborative and secure sharing of healthcare data in multi-clouds
US20110276490A1 (en) Security service level agreements with publicly verifiable proofs of compliance
JP2012518330A (en) Reliable cloud computing and cloud service framework
JP2012518329A (en) A framework for trusted cloud computing and services
CN110445840B (en) File storage and reading method based on block chain technology
CN101641702A (en) Secure data storage and retrieval incorporating human participation
Hwang et al. Data error locations reported by public auditing in cloud storage service
George et al. Ethereum blockchain-based authentication approach for Data Sharing in Cloud Storage Model
Zhang et al. Data security in cloud storage
Piechotta et al. A secure dynamic collaboration environment in a cloud context
JP2020161945A (en) Cryptographic system, user terminal, storage device, encryption method, authentication method, encryption program, and authentication program
Divya et al. A COMBINED DATA STORAGE WITH ENCRYPTION AND KEYWORD BASED DATA RETRIEVAL USING SCDS-TM MODEL IN CLOUD
Gonthireddy et al. Secure Big Data Deduplication with Dynamic Ownership Management in Cloud Computing
Gagged et al. Improved secure dynamic bit standard technique for a private cloud platform to address security challenges
JP2019068327A (en) User management device, user management system
JP6936482B2 (en) Cryptographic systems, user systems, cryptographic methods, and cryptographic programs
Almarwani et al. A novel approach to data integrity auditing in PCS: Minimising any Trust on Third Parties (DIA-MTTP)
Bingu et al. Cloud auditing and authentication scheme for establishing privacy preservation
JP2023104089A (en) Computer system and key exchange method