JP6115573B2 - Cryptographic system, data storage system, and apparatus and method used therefor - Google Patents

Cryptographic system, data storage system, and apparatus and method used therefor Download PDF

Info

Publication number
JP6115573B2
JP6115573B2 JP2014549787A JP2014549787A JP6115573B2 JP 6115573 B2 JP6115573 B2 JP 6115573B2 JP 2014549787 A JP2014549787 A JP 2014549787A JP 2014549787 A JP2014549787 A JP 2014549787A JP 6115573 B2 JP6115573 B2 JP 6115573B2
Authority
JP
Japan
Prior art keywords
key
user
ciphertext
generated
update
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014549787A
Other languages
Japanese (ja)
Other versions
JPWO2014083784A1 (en
Inventor
古川 潤
潤 古川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2014083784A1 publication Critical patent/JPWO2014083784A1/en
Application granted granted Critical
Publication of JP6115573B2 publication Critical patent/JP6115573B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Description

本発明は、復号できる利用者を複数指定できる暗号システム、それを利用したデータ保存システム、およびそれに用いられる鍵導出装置、復号装置、代理鍵生成装置並びにデータ処理方法に関する。   The present invention relates to an encryption system capable of designating a plurality of users who can decrypt, a data storage system using the encryption system, and a key derivation device, a decryption device, a proxy key generation device, and a data processing method used therefor.

復号できる利用者を複数指定できる暗号方式の一つに関数型暗号方式がある。関数型暗号方式は、受信者が暗号文を復号できるか否かがその受信者の所有する属性を入力とする関数値で決定されるもので、この関数を指定して暗号化する暗号方式である。また、関数型暗号方式は、暗号文をある受信者が復号できるか否かが、暗号文生成時に指定された属性とこの受信者が所持する述語によって決定される暗号方式であるとも言うことができる。非特許文献1には、関数型暗号方式の一例が記載されている。   One of the encryption methods that can specify a plurality of users that can be decrypted is a functional encryption method. In functional cryptography, whether or not a recipient can decrypt the ciphertext is determined by a function value that uses an attribute owned by the recipient as input, and is encrypted by specifying this function. is there. In addition, it can be said that the functional encryption method is an encryption method in which whether or not a receiver can decrypt a ciphertext is determined by an attribute specified at the time of generating the ciphertext and a predicate possessed by the receiver. it can. Non-Patent Document 1 describes an example of a functional encryption scheme.

図13は、非特許文献1に記載された関数型暗号方式の概略を示す説明図である。図13に示すように、非特許文献1に記載された関数型暗号方式は、設定機能901と、鍵導出機能902と、暗号化機能903と、復号機能904とからなる。   FIG. 13 is an explanatory diagram showing an outline of the functional encryption method described in Non-Patent Document 1. As shown in FIG. 13, the functional encryption method described in Non-Patent Document 1 includes a setting function 901, a key derivation function 902, an encryption function 903, and a decryption function 904.

設定機能901は、公開鍵911とマスタ鍵912とを生成する。鍵導出機能902は、公開鍵911と、マスタ鍵912と、復号できる権限(属性)を指定する属性ベクトル916に対応する述語ベクトル913とから、該属性に対応する秘密鍵914を生成する。暗号化機能903は、公開鍵911と、暗号化対象の文書(平文)915と、当該文書を復号できる権限を指定する属性ベクトル916とから、暗号文917を生成する。復号機能904は、公開鍵911と、復号者が所持する秘密鍵914(例えば、秘密鍵914−1)と、受信した暗号文917とから、暗号文917の復号文である平文918を生成する。   The setting function 901 generates a public key 911 and a master key 912. The key derivation function 902 generates a secret key 914 corresponding to the attribute from the public key 911, the master key 912, and the predicate vector 913 corresponding to the attribute vector 916 designating the authority (attribute) that can be decrypted. The encryption function 903 generates a ciphertext 917 from the public key 911, the document to be encrypted (plaintext) 915, and an attribute vector 916 that specifies the authority to decrypt the document. The decryption function 904 generates a plaintext 918 that is a decrypted text of the ciphertext 917 from the public key 911, a private key 914 (for example, the private key 914-1) possessed by the decryptor, and the received ciphertext 917. .

例えば、設定機能901が、公開鍵pkとマスタ鍵mkを出力したとする。そして、鍵導出機能902が、その公開鍵pkとマスタ鍵mkと述語ベクトルvとを入力して、属性組の秘密鍵skを出力したとする。暗号化機能903は、設定機能901が生成した公開鍵pkと、暗号化対象の文書mと、当該文書mを復号できる権限を指定する属性ベクトルxとを入力して、文書mの暗号文であるCを出力する。復号機能904は、設定機能901が生成した公開鍵pkと、受信した暗号文Cと、復号者が所持する属性組の秘密鍵skとを入力して復号処理を行う。このとき、v・x=0ならば復号に成功するので、復号文である文書mを生成して出力する。   For example, it is assumed that the setting function 901 outputs the public key pk and the master key mk. Assume that the key derivation function 902 inputs the public key pk, the master key mk, and the predicate vector v, and outputs the secret key sk of the attribute set. The encryption function 903 inputs the public key pk generated by the setting function 901, the document m to be encrypted, and the attribute vector x that designates the authority to decrypt the document m, and uses the ciphertext of the document m. A certain C is output. The decryption function 904 performs a decryption process by inputting the public key pk generated by the setting function 901, the received ciphertext C, and the private key sk of the attribute set possessed by the decryptor. At this time, if v · x = 0, the decryption is successful, and thus a document m which is a decrypted text is generated and output.

このように、関数型暗号方式を使用すれば、暗号文を生成する際に指定した属性ベクトルxに対応する述語ベクトルvを指定して生成された秘密鍵skを有している受信者であればその暗号文を復号できるため、1つの暗号文を複数の受信者が復号可能となる。このような関数型暗号方式を利用すれば、例えば、複数の者がアクセス可能なファイルに対して、特定の利用者集合に対してのみ閲覧を許可するといったアクセス制御を容易に実現できる。従って、クラウド等を利用したデータ保存サービスなどにおいてもその安全性を高めることに寄与することができる。例えば、企業等のある組織がネットワーク上の記憶装置にデータを保存する場合を考える。この場合、この組織のある資格を持つメンバのみが読めるべきデータを、関数型暗号方式を使用して暗号化してネットワーク上の記憶装置に保存すればよい。この時、データを読むことができる資格を述語ベクトルvで表し、この資格を持つメンバが復号できる暗号文はv・x=0となる属性xを指定して暗号化する。組織のメンバはデータを必要とするときには、当該データが保持されている記憶装置にネットワークを介してアクセスし必要なデータを取り寄せる。このデータは上述のように関数型暗号方式により暗号化されているが、属性xに対応する述語ベクトルvを持つ組織のメンバであれば関数型暗号方式における復号方法に従い復号して、利用することができる。   In this way, if a functional encryption scheme is used, a receiver having a secret key sk generated by specifying a predicate vector v corresponding to an attribute vector x specified when generating a ciphertext. For example, since the ciphertext can be decrypted, a plurality of recipients can decrypt one ciphertext. By using such a functional encryption method, for example, it is possible to easily realize access control that permits browsing only to a specific set of users with respect to a file that can be accessed by a plurality of persons. Accordingly, it is possible to contribute to enhancing the safety of a data storage service using a cloud or the like. For example, consider a case where an organization such as a company stores data in a storage device on a network. In this case, data that should be read only by a member with a certain qualification of this organization may be encrypted using a functional encryption method and stored in a storage device on the network. At this time, the qualification to read data is represented by a predicate vector v, and the ciphertext that can be decrypted by the member having this qualification is encrypted by specifying the attribute x where v · x = 0. When members of the organization need data, they access the storage device holding the data via the network and obtain necessary data. This data is encrypted by the functional encryption method as described above, but if it is a member of the organization having the predicate vector v corresponding to the attribute x, it should be decrypted according to the decryption method in the functional encryption method and used. Can do.

一般に、クラウド等のネットワークを介したデータの取り寄せでは、要求に対して認証を行い、対応する組織のメンバにアクセス許可を限ることで安全性を持たせることができるが、認証処理にミスがある可能性もある。また、データを保持しているクラウド側(ネットワーク側)の管理が不十分であったり、管理者が不正を働けば、アクセス権限を持たない者にデータが渡ってしまう可能性もある。特に、クラウドを利用する場合、その利用者は、ネットワーク管理に関しては外部の人間となるので、外部の利用者が、ネットワークの管理が十分であるか否かを確認したり、管理者が不正を働かない確証を得ることは難しく、情報漏洩に対する不安はより大きくなるという問題があった。しかし、このような場合でもデータを関数型暗号方式を利用して暗号化していれば、正しい述語ベクトルの組の秘密鍵を持つメンバ以外がデータを手に入れたとしても、そのデータを復号することができないため、その内容が不当に明らかになることを防ぐことができる。   In general, in order to obtain data via a network such as a cloud, it is possible to secure the request by authenticating the request and limiting the access permission to the members of the corresponding organization, but there is a mistake in the authentication process. There is a possibility. In addition, if the management of the cloud side (network side) holding the data is insufficient, or if the administrator acts illegally, the data may be passed on to those who do not have access authority. In particular, when using the cloud, the user is an external person in terms of network management, so the external user can check whether the network management is sufficient, There was a problem that it was difficult to obtain confirmation that it did not work, and there was a greater concern about information leakage. However, even in such a case, if the data is encrypted using a functional encryption method, even if a member other than the member having the secret key of the correct predicate vector set obtains the data, the data is decrypted. It is not possible to prevent the contents from being unfairly revealed.

また、復号できる利用者を複数指定できる暗号方式の他の例として、放送型暗号方式と呼ばれるものがある。放送型暗号方式は、復号が可能な受信者の集合を指定して暗号化を行う暗号方式であって、同一の暗号文を、それぞれ異なる秘密鍵を持った複数の受信者が受信し、それぞれ復号した結果が同じ平文となる暗号方式である。非特許文献2には、放送型暗号方式の一例が記載されている。   Another example of an encryption method that can designate a plurality of users that can be decrypted is a broadcast encryption method. The broadcast encryption method is an encryption method in which a set of recipients that can be decrypted is specified for encryption, and the same ciphertext is received by a plurality of recipients each having a different secret key. This is an encryption method in which the decrypted result is the same plaintext. Non-Patent Document 2 describes an example of a broadcast encryption scheme.

図14は、非特許文献2に記載された放送型暗号方式の概略を示す説明図である。図14に示すように、非特許文献2に記載された放送型暗号方式は、設定機能801と、鍵導出機能802と、暗号化機能803と、復号機能804とからなる。   FIG. 14 is an explanatory diagram showing an outline of the broadcast encryption method described in Non-Patent Document 2. As shown in FIG. 14, the broadcast encryption method described in Non-Patent Document 2 includes a setting function 801, a key derivation function 802, an encryption function 803, and a decryption function 804.

設定機能801は、公開鍵811とマスタ鍵812とを生成する。鍵導出機能802は、マスタ鍵812と、公開鍵811と、復号者識別子813とから、当該復号者に対応する秘密鍵814(以下、復号者秘密鍵814という。)を生成する。暗号化機能803は、公開鍵811と、復号可能者の集合を指定する復号可能者集合816と、暗号化対象の文書(平文)815とから、暗号文817を生成する。復号機能804は、公開鍵811と、受信した暗号文817と、復号者が認識している復号可能者の集合を指定する復号可能者集合816(例えば、復号可能者集合816−1)と、復号者が所持している復号者秘密鍵814(例えば、復号者秘密鍵814−1)とから、暗号文817の復号文である平文818を生成する。   The setting function 801 generates a public key 811 and a master key 812. The key derivation function 802 generates a secret key 814 corresponding to the decryption person (hereinafter referred to as a decryption person private key 814) from the master key 812, the public key 811, and the decryption person identifier 813. The encryption function 803 generates a ciphertext 817 from the public key 811, a decryptable person set 816 that designates a set of decryptable persons, and a document (plain text) 815 to be encrypted. The decryption function 804 includes a public key 811, the received ciphertext 817, a decryptable person set 816 (for example, a decryptable person set 816-1) that designates a set of decryptable persons recognized by the decryptor, A plaintext 818 that is a decrypted text of the ciphertext 817 is generated from the decryptor private key 814 (for example, the decryptor private key 814-1) possessed by the decryptor.

暗号化機能803に入力された復号可能者集合816と、復号機能804に入力された復号可能者集合816が同一であり、暗号化機能803が出力した暗号文817と復号機能804に入力された暗号文817とが同一であり、復号機能804に入力された復号者秘密鍵814が復号機能804に入力された復号可能者集合816に属する復号者の秘密鍵であるならば、暗号化機能803に入力された平文815と復号機能804の出力する平文818は同一内容となる。   The decryptable person set 816 input to the encryption function 803 and the decryptable person set 816 input to the decryption function 804 are the same, and the ciphertext 817 output by the encryption function 803 and the decryption function 804 are input. If the ciphertext 817 is the same, and the decryptor private key 814 input to the decryption function 804 is the private key of the decryptor belonging to the decryptable person set 816 input to the decryption function 804, the encryption function 803 The plaintext 815 input to the plaintext 818 and the plaintext 818 output from the decryption function 804 have the same contents.

このように、放送型暗号方式も関数型暗号方式と同様に、クラウド等を利用したデータ保存サービスなどにおいてその安全性を高めることに寄与することができる。例えば、企業等のある組織がネットワーク上の記憶装置にデータを保存する場合を考える。この場合、この組織のメンバのみが読めるべきデータを、当該組織の各メンバが属せられた復号可能者集合を示すデータを指定した上で放送型暗号方式を使用して暗号化してネットワーク上の記憶装置に保存すればよい。組織のメンバは復号可能者集合を示すデータとともに、各自対応する秘密鍵を渡される。組織のメンバはデータを必要とするときには、当該データが保持されている記憶装置にネットワークを介してアクセスし必要なデータを取り寄せる。このデータは上述のように放送型暗号方式により暗号化されているが、組織のメンバであれば本放送型暗号の復号方式に従い復号し、利用することができる。   As described above, the broadcast encryption method can contribute to improving the safety of the data storage service using the cloud or the like, similarly to the functional encryption method. For example, consider a case where an organization such as a company stores data in a storage device on a network. In this case, data that should be readable only by members of this organization is encrypted using a broadcast encryption method after designating data indicating a set of decryptable persons to which each member of the organization belongs. What is necessary is just to preserve | save in a memory | storage device. Each member of the organization is given a corresponding private key along with data indicating the set of decryptable persons. When members of the organization need data, they access the storage device holding the data via the network and obtain necessary data. This data is encrypted by the broadcast encryption method as described above, but if it is a member of an organization, it can be decrypted and used according to the decryption method of this broadcast encryption.

放送型暗号方式は、関数型暗号方式と比べて、受信者ごとに復号可能であるか否かを制御できる点が異なる。すなわち、メンバに変更があったときに復号可能者集合816を適宜変更すれば、変更後の復号可能者集合に応じて復号可能者を変更することができる。例えば、新しいメンバが組織に加わった場合は、鍵導出機能802でその新しいメンバに対して復号者秘密鍵814を生成するとともに、暗号化機能803における以降の暗号化処理で、このメンバを加えた新たな復号可能者集合816を用いてデータを暗号化すればよい。また、例えばあるメンバが組織を去ったときには、暗号化機能803における以降の暗号化処理で、そのメンバを削除した新たな復号可能者集合816を用いてデータを暗号化すればよい。これらの処理により、新たな復号可能者集合816を用いて暗号化されたデータについては、新たな復号可能者集合816に属する最新のメンバのみが復号できるようになる。   The broadcast encryption method is different from the functional encryption method in that it is possible to control whether or not decryption is possible for each recipient. That is, if the decryptable person set 816 is appropriately changed when the member is changed, the decryptable person can be changed according to the changed decryptable person set. For example, when a new member joins the organization, the key derivation function 802 generates a decryptor private key 814 for the new member, and the encryption function 803 adds this member in the subsequent encryption processing. Data may be encrypted using the new decryptable person set 816. Further, for example, when a member leaves the organization, the data may be encrypted by using the new decryptable person set 816 from which the member is deleted in the subsequent encryption processing in the encryption function 803. With these processes, only the latest member belonging to the new decryptable person set 816 can be decrypted with respect to the data encrypted using the new decryptable person set 816.

Tatsuaki Okamoto, Katsuyuki Takashima, "Adaptively Attribute-Hiding (Hierarchical) Inner Product Encryption.", EUROCRYPT 2012, 2012, p.591-608.Tatsuaki Okamoto, Katsuyuki Takashima, "Adaptively Attribute-Hiding (Hierarchical) Inner Product Encryption.", EUROCRYPT 2012, 2012, p.591-608. Dan Boneh, Craig Gentry, Brent Waters, "Collusion Resistant Broadcast Encryption With Short Ciphertexts and Private Keys", Advances in Cryptology - CRYPTO 2005, 25th Annual International Cryptology Conference, 2005, p.258-275.Dan Boneh, Craig Gentry, Brent Waters, "Collusion Resistant Broadcast Encryption With Short Ciphertexts and Private Keys", Advances in Cryptology-CRYPTO 2005, 25th Annual International Cryptology Conference, 2005, p.258-275.

関数型暗号方式は、暗号化するときに属性を指定することによって属性単位で復号の可否を制御できるので、新たにメンバが追加された場合でもその追加されたメンバに秘密鍵を配布するだけで各メンバが既に暗号化ずみのデータを含む全ての対象データを復号できるようになるという利点がある一方で、メンバが抜けた場合にはその抜けたメンバも対象データが手に入れば復号できてしまうという問題を有している。   Functional encryption can control whether or not decryption can be performed on an attribute-by-attribute basis by specifying the attribute when encrypting, so even if a new member is added, only the secret key is distributed to the added member. While each member has the advantage of being able to decrypt all target data including already encrypted data, if a member is missing, the missing member can also be decrypted if the target data is available Have the problem of

一方、放送型暗号方式は、暗号化するときに復号可能者集合を指定するが、その集合内の利用者を変更することによって利用者単位で復号の可否を制御できるので、所属メンバの変更に安全に対応できるという利点がある一方で、誰が復号できるかが暗号化したときに決められ以後固定となるために、新たなメンバが既に暗号化ずみのデータを見られるようにしようとすると、メンバ変更の度に既存の暗号化データを復号して再度暗号化しなければならないという問題を有している。   On the other hand, in the broadcast encryption method, a decryptable user set is specified when encrypting, but by changing the user in the set, whether or not the decryption can be performed can be controlled for each user. While it has the advantage of being able to handle it safely, it is decided when encryption can be done and when it is encrypted, it will be fixed afterwards, so if you try to allow new members to see already encrypted data, There is a problem that the existing encrypted data must be decrypted and encrypted again every time it is changed.

また、仮に関数型暗号方式と放送型暗号方式とを組み合わせて用いたとしても、単純には、双方の利点のみを得られるようなものにはならない。例えば、文書Mを、これを復号できる受信者集合を定めて放送型暗号方式を利用して暗号化し、さらにこれを復号できる受信者の属性の組を定めて関数型暗号方式を利用して暗号化したとする。すると、指定された属性を持ち、かつ指定された受信者集合に含まれる受信者でなければ復号できない様に見える。しかし、指定された受信者集合には含まれないが指定された属性を持つ受信者と、指定された属性は持たないが指定された受信者集合に含まれる受信者とが協力すれば復号は可能であり、両方の条件を同時に備える受信者である必要はない。すなわち、結託耐性が十分でない。なお、暗号化の順番を逆にしても同様である。   Further, even if a functional encryption method and a broadcast encryption method are used in combination, it is not simply possible to obtain the advantages of both. For example, a set of recipients that can decrypt the document M is encrypted using a broadcast encryption method, and a set of recipient attributes that can be decrypted is further encrypted using a functional encryption method. Suppose that Then, it seems that only a receiver having the specified attribute and included in the specified receiver set can decrypt. However, if a recipient who has the specified attribute but is not included in the specified recipient set cooperates with a recipient who does not have the specified attribute but is included in the specified recipient set, the decryption is not possible. It is possible and need not be a recipient with both conditions simultaneously. That is, the collusion resistance is not sufficient. The same applies even if the order of encryption is reversed.

さらに、そのような多段暗号化による組み合わせでは、関数型暗号方式がもつ、既に保存されていたデータに対して属性が一致すれば復元可能であるとするアクセス制限を活用できない。なぜなら、放送型暗号方式を使用すれば、それを復元できる復元者は暗号化したときに決まり、以後変更はできないからである。   Furthermore, in such a combination by multi-stage encryption, it is not possible to utilize the access restriction that the functional encryption method can restore if the attribute matches the already stored data. This is because if the broadcast encryption method is used, the restorer who can restore it is determined when it is encrypted and cannot be changed thereafter.

ここで、例えば組織を構成するメンバが変わったときに、今現在保存されている全ての暗号化データを全て取り出して、古い復号可能者集合を用いて復号した後、新しい復号可能者集合を用いて再度暗号化し、保存しなおすことを考える。しかし、世に存在する多くの組織、特に大きい組織では、その構成メンバの変更はよくある出来事であり、メンバ変更の度に今ある全ての暗号化データに対して、復号と再暗号化とを含む一連の処理を行うことは、極めて負担の大きいことである。   Here, for example, when the members constituting the organization are changed, all the currently stored encrypted data is extracted and decrypted using the old decryptable person set, and then the new decryptable person set is used. Consider re-encrypting and saving again. However, in many organizations that exist in the world, especially large organizations, changing their members is a common occurrence and includes decryption and re-encryption of all existing encrypted data at each member change. Performing a series of processing is extremely burdensome.

すなわち、既存の暗号方式や、それらを単純に組み合わせて用いるだけでは、クラウド等を利用したデータ保存サービスを考えた場合、アクセス可能なメンバに変更があったときに安全性が十分でなく、また既に暗号化ずみのデータを含む全ての対象データに対して安全性を確保しようとすると、負担の大きい作業をせざるを得ないという問題があった。   In other words, using existing encryption methods or simply combining them, when considering a data storage service using the cloud, etc., when access members are changed, the security is not sufficient, and If all the target data including already encrypted data is to be secured, there is a problem that a burdensome work has to be done.

そこで、本発明は、復号可否を属性単位で制御可能にしつつそのメンバの変更に対して安全にかつ効率よく対応できるようにすることを目的とする。より具体的には、復号可能か否かを属性単位で指定でき、かつそのメンバに変更があった時でも、既に暗号化ずみのデータに対して一度復号して再暗号化するといった手間をかけずに、既に暗号化ずみのデータを含む全ての対象データに対して、安全性を確保できる暗号システム、データ保存システム、鍵導出装置、復号装置、代理鍵生成装置およびデータ処理方法を提供することを目的とする。   In view of the above, an object of the present invention is to enable safe and efficient response to changes in members while enabling decryption control in attribute units. More specifically, whether or not decryption is possible can be specified in attribute units, and even when the member is changed, it takes time and effort to decrypt and re-encrypt the already encrypted data. And providing an encryption system, a data storage system, a key derivation device, a decryption device, a proxy key generation device, and a data processing method that can ensure safety for all target data including already encrypted data. With the goal.

本発明による暗号システムは、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵を生成する設定手段と、公開鍵、マスタ鍵、述語ベクトルおよび利用者識別子が入力されると、利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、マスタ鍵と述語ベクトルと利用者識別因子とに基づいて生成される述語部と、利用者識別因子とマスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成する鍵導出手段と、関数型暗号方式に準拠した方法により、属性ベクトルを指定して暗号文を生成する暗号化手段と、公開鍵、秘密鍵および暗号文が入力されると、暗号文と秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、暗号文と秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて暗号文を復号する復号手段と、公開鍵とマスタ鍵と変更後の利用者集合とが入力されると、公開鍵更新因子を新たに生成して、生成された公開鍵更新因子に基づいて、公開鍵の更新部と、秘密鍵の更新部分である更新鍵と、マスタ鍵の更新部とを生成するとともに、生成された公開鍵更新因子と、変更前の公開鍵から得られる公開鍵更新因子と変更前のマスタ鍵とに基づいて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文を変更後の利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵と、マスタ鍵の更新部とを生成する代理鍵生成手段と、代理鍵生成手段によって生成された代理鍵を用いて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文から、該暗号文の復号をせずに、変更後の利用者集合に属する利用者の秘密鍵で復号できる新たな暗号文を生成する再暗号化手段とを備えたことを特徴とする。   The cryptographic system according to the present invention is a part that is changed in accordance with a change of a user set, which is a set of users that can be decrypted, in addition to a main body generated by a method that complies with a functional cryptosystem, and is randomly When a setting unit that generates a public key and a master key including an update unit that is a part in which a value based on a selected public key update factor is set, and a public key, a master key, a predicate vector, and a user identifier are input A user identification factor that is unique to the user and unknown to the user, a predicate part that is generated based on the master key, the predicate vector, and the user identification factor, and the user identification factor and the master key A key derivation unit that generates a secret key including a user-dependent value cancellation unit that is generated based on the above, and an encryption unit that generates a ciphertext by specifying an attribute vector by a method that complies with a functional encryption scheme When a public key, a secret key, and a ciphertext are input, based on the ciphertext and the predicate part of the secret key, a user-dependent value that depends on the user identification factor used to generate the secret key And a user-dependent value cancellation value for canceling the user-dependent value based on the ciphertext and the user-dependent value cancellation unit of the secret key, and the generated user-dependent value When the decryption means for decrypting the ciphertext using the user-dependent value cancellation value, the public key, the master key, and the changed user set are input, a new public key update factor is generated and generated. Based on the public key update factor that has been generated, the public key update unit, the update key that is the update part of the private key, and the master key update unit are generated, and the generated public key update factor and the pre-change key are generated. Based on the public key update factor obtained from the public key and the master key before the change Updating the proxy key and master key to convert the ciphertext that can be decrypted with the private key of the user belonging to the user set before the change into the ciphertext that can be decrypted with the private key of the user belonging to the user set after the change A decryption of the ciphertext from a ciphertext that can be decrypted with the private key of the user belonging to the user set before the change using the proxy key generated by the proxy key generation means And re-encrypting means for generating a new ciphertext that can be decrypted with the secret key of the user belonging to the user set after the change.

本発明によるデータ保存システムは、データの管理者が使用する管理装置と、暗号化されたデータを保存するデータ保存者が使用するデータ保存装置と、復号装置と、暗号装置とを備え、管理装置は、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵を生成する設定手段と、公開鍵、マスタ鍵、述語ベクトルおよび利用者識別子が入力されると、利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、マスタ鍵と述語ベクトルと利用者識別因子とに基づいて生成される述語部と、利用者識別因子とマスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成する鍵導出手段と、公開鍵とマスタ鍵と変更後の利用者集合とが入力されると、公開鍵更新因子を新たに生成して、生成された公開鍵更新因子に基づいて、公開鍵の更新部と、秘密鍵の更新部分である更新鍵と、マスタ鍵の更新部とを生成するとともに、生成された公開鍵更新因子と、変更前の公開鍵から得られる公開鍵更新因子と変更前のマスタ鍵とに基づいて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文を変更後の利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵と、マスタ鍵の更新部とを生成する代理鍵生成手段とを含み、データ保存装置は、代理鍵生成手段によって生成された代理鍵を用いて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文から、該暗号文を復号せずに、変更後の利用者集合に属する利用者の秘密鍵で復号できる新たな暗号文を生成する再暗号化手段と、再暗号化手段によって暗号化されたデータを保存する記憶手段とを含み、暗号化装置は、関数型暗号方式に準拠した方法により、属性ベクトルを指定して暗号文を生成する暗号化手段を含み、復号装置は、公開鍵、秘密鍵および暗号文が入力されると、暗号文と秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、暗号文と秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて暗号文を復号する復号手段を含むことを特徴とする。   A data storage system according to the present invention includes a management device used by a data administrator, a data storage device used by a data storage user who stores encrypted data, a decryption device, and an encryption device. Is a part of the public key that is selected at random, in addition to the main part generated by a method that complies with the functional encryption method, as well as the part that is changed in accordance with the change of the set of users that can be decrypted Setting means for generating a public key and a master key including an update unit, which is a part for which a value based on an update factor is set, and a public key, a master key, a predicate vector, and a user identifier A user identification factor that is unknown to the user and is generated based on the master key, the predicate vector, and the user identification factor, and the user identification factor and the master key. When a key derivation means for generating a secret key including a generated user-dependent value cancellation unit, a public key, a master key, and a changed user set are input, a public key update factor is newly generated. Based on the generated public key update factor, a public key update unit, an update key that is an update part of the secret key, and a master key update unit are generated, and the generated public key update factor is Based on the public key update factor obtained from the public key before change and the master key before change, the ciphertext that can be decrypted with the private key of the user belonging to the user set before change is changed to the user set after change. Including a proxy key for converting into a ciphertext that can be decrypted with the private key of the user to which it belongs, and a proxy key generation unit that generates a master key update unit, and the data storage device is generated by the proxy key generation unit Uses proxy key and belongs to user set before change Re-encryption means for generating new ciphertext that can be decrypted with the secret key of the user belonging to the changed user set without decrypting the ciphertext from the ciphertext that can be decrypted with the user's private key; Storage means for storing data encrypted by the re-encryption means, and the encryption device includes encryption means for specifying the attribute vector and generating ciphertext by a method compliant with the functional encryption method When the public key, the secret key, and the ciphertext are input, the decryption device depends on the user identification factor used in generating the secret key based on the ciphertext and the predicate part of the secret key. Generates a user-dependent value, generates a user-dependent value cancellation value for canceling the user-dependent value based on the ciphertext and the user-dependent value cancellation unit of the secret key, and uses the generated usage The ciphertext using the user-dependent value and the user-dependent value cancellation value Decoding means for decoding is included.

本発明による鍵導出装置は、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵と、述語ベクトルと、利用者識別子とが入力されると、利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、マスタ鍵と述語ベクトルと利用者識別因子とに基づいて生成される述語部と、利用者識別因子とマスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成する鍵導出手段を備えたことを特徴とする。   The key derivation device according to the present invention is a part that is changed in accordance with a change of a user set, which is a set of users that can be decrypted, in addition to a main body generated by a method that complies with a functional cryptosystem, and is randomly When a public key and master key including an update unit, a predicate vector, and a user identifier are input, a value that is set based on the public key update factor selected by the user is input. A user identification factor that is unknown to the user, a predicate part that is generated based on the master key, predicate vector, and user identification factor, and a usage that is generated based on the user identification factor and the master key And a key derivation unit for generating a secret key including a person-dependent value canceling unit.

本発明による復号装置は、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を少なくとも含む公開鍵と、述語ベクトルが指定された秘密鍵であって、利用者に固有でかつ利用者も知ることのない利用者識別因子とマスタ鍵と述語ベクトルとに基づく述語部と、利用者識別因子とマスタ鍵とに基づく利用者依存値打消部とを含む秘密鍵と、暗号文とが入力されると、暗号文と秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、暗号文と秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて暗号文を復号する復号手段を備えたことを特徴とする。   The decryption device according to the present invention is a part that is changed in accordance with a change of a user set, which is a set of users that can be decrypted, in addition to a main body generated by a method that complies with a functional cryptosystem, and is randomly A public key that includes at least an update part, which is a part for which a value based on the selected public key update factor is set, and a secret key with a predicate vector specified, which is unique to the user and known to the user When a secret key including a predicate part based on a non-user identification factor, a master key, and a predicate vector, a user-dependent value cancellation part based on the user identification factor and the master key, and a ciphertext are input, Based on the ciphertext and the predicate part of the secret key, a user-dependent value depending on the user identification factor used when generating the secret key is generated, and a user-dependent value of the ciphertext and the secret key is generated. On the basis of the cancellation part A decryption unit that generates a user-dependent value cancellation value for canceling the dependency value and decrypts the ciphertext using the generated user-dependent value and the user-dependent value cancellation value is provided. .

本発明による代理鍵生成装置は、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を少なくとも含む公開鍵と、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を少なくとも含むマスタ鍵と、変更後の利用者集合とが入力されると、公開鍵更新因子を新たに生成して、生成された公開鍵更新因子に基づいて、公開鍵の更新部と、秘密鍵の更新部分である更新鍵と、マスタ鍵の更新部とを生成するとともに、生成された公開鍵更新因子と、変更前の公開鍵から得られる公開鍵更新因子と変更前のマスタ鍵とに基づいて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文を変更後の利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵と、マスタ鍵の更新部とを生成する代理鍵生成手段を備えたことを特徴とする。   The proxy key generation device according to the present invention is a part that is changed in accordance with a change of a user set that is a set of users that can be decrypted, in addition to a main body generated by a method that complies with a functional cryptosystem. In addition to a public key that includes at least an updater, which is a part for which a value based on a randomly selected public key update factor is set, and a main part generated by a method that complies with a functional encryption method, a user who can decrypt A master key including at least an update part that is a part that is changed in accordance with a change in the user set that is a set of the key and a value that is set based on a public key update factor that is randomly selected, and a post-change key When the user set is input, a public key update factor is newly generated, and based on the generated public key update factor, an update part of the public key, an update key that is an update part of the secret key, Master key update part And the private key of the user belonging to the user set before change based on the generated public key update factor, the public key update factor obtained from the public key before change, and the master key before change A proxy key generation means for generating a proxy key for converting a ciphertext that can be decrypted with the secret key of a user belonging to the changed user set and a master key update unit It is characterized by.

本発明によるデータ処理方法は、秘匿性のあるデータの受け渡しをネットワークを介して行うためのデータ処理方法であって、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵を生成し、データの復号を許可する利用者ごとに、該利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、マスタ鍵と述語ベクトルと利用者識別因子とに基づいて生成される述語部と、利用者識別因子とマスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成し、データ、または、データの暗号文を復号する際に用いるメッセージ鍵を、属性ベクトルを指定して暗号化し、データの暗号文またはメッセージ鍵の暗号文を受け取ると、受け取った暗号文と、当該利用者が所持している秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、暗号文と秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて暗号文を復号することを特徴とする。   The data processing method according to the present invention is a data processing method for transferring confidential data via a network, and can be decrypted in addition to a main body generated by a method compliant with a functional encryption method. A public key and a master key including an update unit that is a part that is changed in accordance with a change of a user set that is a set of users and that is a part in which a value based on a public key update factor selected at random is set. Generate and generate a user identification factor that is unique to the user and that the user does not know for each user who is permitted to decrypt data, and based on the master key, predicate vector, and user identification factor A secret key including a generated predicate part, a user-dependent value cancellation part generated based on a user identification factor and a master key is generated, and used when decrypting data or a ciphertext of the data When a message key is encrypted by specifying an attribute vector and a data ciphertext or message key ciphertext is received, it is based on the received ciphertext and the predicate part of the private key possessed by the user. Generating a user-dependent value that depends on the user identification factor used when generating the secret key, and based on the ciphertext and the user-dependent value cancellation unit for the secret key, A user-dependent value canceling value for canceling is generated, and the ciphertext is decrypted using the generated user-dependent value and the user-dependent value canceling value.

本発明によれば、復号可否を属性単位で制御可能にしつつそのメンバの変更に対して安全にかつ効率よく対応できる。   According to the present invention, it is possible to safely and efficiently cope with the change of the member while making it possible to control whether or not decryption is possible in attribute units.

第1の実施形態の暗号システムの全体構成図である。It is a whole block diagram of the encryption system of 1st Embodiment. 設定部11の構成例を示すブロック図である。3 is a block diagram illustrating a configuration example of a setting unit 11. FIG. 鍵導出部12の構成例を示すブロック図である。3 is a block diagram illustrating a configuration example of a key derivation unit 12. FIG. 暗号化部13の構成例を示すブロック図である。3 is a block diagram illustrating a configuration example of an encryption unit 13. FIG. 暗号化部13の他の構成例を示すブロック図である。It is a block diagram which shows the other structural example of the encryption part. 復号部14の構成例を示すブロック図である。3 is a block diagram illustrating a configuration example of a decoding unit 14. FIG. 代理鍵生成部15の構成例を示すブロック図である。3 is a block diagram illustrating a configuration example of a proxy key generation unit 15. FIG. 再暗号化部16の構成例を示すブロック図である。3 is a block diagram illustrating a configuration example of a re-encryption unit 16. FIG. 鍵更新部17の構成例を示すブロック図である。3 is a block diagram illustrating a configuration example of a key update unit 17. FIG. 第2の実施形態のデータ保存システムの全体構成の一例を示すブロック図である。It is a block diagram which shows an example of the whole structure of the data storage system of 2nd Embodiment. 第2の実施形態のデータ保存システムの他の構成例を示すブロック図である。It is a block diagram which shows the other structural example of the data storage system of 2nd Embodiment. 本発明の概要を示すブロック図である。It is a block diagram which shows the outline | summary of this invention. 関数型暗号方式の概略を示す説明図である。It is explanatory drawing which shows the outline of a functional encryption system. 放送型暗号方式の概略を示す説明図である。It is explanatory drawing which shows the outline of a broadcast type encryption system.

まず、本発明が使用する暗号方式(以下、本発明の暗号方式という。)について説明する。本発明の暗号方式は、関数型暗号方式を改良したものであって、関数型暗号方式に次の機能を付加することによって上述の課題を解決するものである。   First, the encryption method used by the present invention (hereinafter referred to as the encryption method of the present invention) will be described. The encryption method of the present invention is an improvement of the functional encryption method, and solves the above-described problems by adding the following functions to the functional encryption method.

(1)代理鍵生成機能
より具体的には、ある「利用者集合U」に属する利用者の秘密鍵で復号できる暗号文を、新しい「利用者集合U’」に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵をマスタ鍵に基づいて生成する機能。
(1) Proxy key generation function More specifically, a ciphertext that can be decrypted with a secret key of a user belonging to a certain “user set U” is converted to a secret key of the user belonging to a new “user set U ′”. A function that generates a proxy key for conversion into ciphertext that can be decrypted based on the master key.

(2)再暗号化機能
より具体的には、代理鍵生成機能によって生成された代理鍵を用いて、ある「利用者集合U」に属する利用者の秘密鍵で復号できる暗号文から、復号鍵を用いた復号処理を経ずに、新しい「利用者集合U’」に属する利用者の秘密鍵で復号できる暗号文を生成する機能。
(2) Re-encryption function More specifically, a decryption key is obtained from a ciphertext that can be decrypted with a private key of a user belonging to a certain “user set U” using the proxy key generated by the proxy key generation function. A function for generating a ciphertext that can be decrypted with the secret key of the user belonging to the new “user set U ′” without undergoing a decryption process using.

この2つの機能を付加することで、クラウド等に保存されたデータへのアクセスが暗号方式により制御されているときに、アクセスを許可する利用者集合を次のように動的に変更できるようにする。ここで、「データへのアクセスが暗号方式により制御されている」とは、具体的には、アクセス制限の対象とするデータを所定の暗号方式を用いて暗号化して暗号化データとして保存することによって、そのデータの中身を閲覧できる者がその暗号化データを復号可能な者に制限されていることを言う。すなわち、本発明において「アクセス制御」という表現を用いた場合には、暗号化データの復号可能者を制御することを意味する。   By adding these two functions, when access to data stored in the cloud or the like is controlled by an encryption method, the set of users permitted to access can be dynamically changed as follows: To do. Here, “access to data is controlled by an encryption method” specifically means that data subject to access restriction is encrypted using a predetermined encryption method and stored as encrypted data. The person who can view the contents of the data is limited to those who can decrypt the encrypted data. That is, in the present invention, when the expression “access control” is used, it means that the person who can decrypt the encrypted data is controlled.

すなわち、本発明の暗号方式は、この2つの機能を付加することによって、本方式により暗号化されて保存されているデータに対して、そのデータの復号を許可する利用者集合を次のように動的に変更できるようにしたものである。   That is, the encryption method of the present invention adds these two functions, and the user set that permits decryption of the data encrypted and stored by this method is as follows. It can be changed dynamically.

最初に、対象とするデータは、これを復号できる権限を指定して暗号化されているとする。この時、さらにその権限を有する利用者の集合である利用者集合Uが指定され、この各利用者には暗号化時に指定する権限に対応し、かつ当該利用者を指定した秘密鍵が各々配られる。これにより、この暗号文を復号できるのは、この利用者集合Uに属し、暗号文生成時に指定された権限を保持する利用者のみとなる。なぜなら、各暗号文へのアクセスがその要求する権限によって制限されているとともに、秘密鍵の配布が利用者の集合でも制限されているからである。   First, it is assumed that the target data is encrypted by specifying the authority to decrypt it. At this time, a user set U that is a set of users having the authority is specified, and each user is assigned a secret key corresponding to the authority specified at the time of encryption and specifying the user. It is done. As a result, the ciphertext can be decrypted only by users who belong to the user set U and hold the authority specified at the time of ciphertext generation. This is because access to each ciphertext is restricted by the authority requested, and the distribution of the secret key is also restricted by the set of users.

ここで、データへのアクセス権を全て持つものはマスタ鍵を持つものである。また、マスタ鍵を用いて利用者集合に属する各利用者の秘密鍵を生成することができる。本発明では、このマスタ鍵を持つ者を管理者と呼ぶ。この管理者が、暗号化されたデータの保存を行わずに、別の者に委託することを想定する。また、暗号化されたデータを保存する者をデータ保存者という。データ保存者は、クラウド等でデータの保存業務を行う者を例に説明するが、単に暗号文を受信した受信者であってもよい。   Here, the one having all access rights to data has the master key. In addition, the secret key of each user belonging to the user set can be generated using the master key. In the present invention, a person having this master key is called an administrator. It is assumed that this administrator entrusts another person without saving the encrypted data. A person who saves encrypted data is called a data saver. The data storage person will be described as an example of a person who performs data storage work in the cloud or the like. However, the data storage person may simply be a receiver who has received the ciphertext.

今、組織の改編等により、データへのアクセスを許可する利用者を追加あるいは削除等したいとする。これは、権限が合致さえすれば暗号化されたデータを復号できる利用者集合Uを変更したいことに他ならない。ここでは、変更先の利用者集合をU’とする。   Now, suppose you want to add or delete users who are allowed to access data due to organizational changes. This is nothing but to change the user set U that can decrypt the encrypted data as long as the authority matches. Here, the user set to be changed is U ′.

管理者は、上述の代理鍵生成機能を利用して、利用者集合Uと利用者集合U’とマスタ鍵とから代理鍵rk、その他利用者集合の変更に伴い必要とされる各種データを生成する。そして、生成した代理鍵rkをデータ保存者に送付する。利用者集合の変更に伴い必要とされる各種データには、例えば、新しい利用者集合U’に属する各利用者の秘密鍵が含まれる。   Using the above-described proxy key generation function, the administrator generates the proxy key rk and other various data required for changing the user set from the user set U, user set U ′, and master key To do. Then, the generated proxy key rk is sent to the data saver. Various data required in accordance with the change of the user set includes, for example, the secret key of each user belonging to the new user set U ′.

データ保存者は、上述の再暗号化機能を利用して、自身が保存している各暗号文を、この暗号文と代理鍵とを基に再暗号化し、新しい暗号文を生成する。そして、元の暗号文をこの新しい暗号文で置き換える。新しい暗号文は、新しい利用者集合U’に属する利用者で権限が合致するものが復号可能である。従って、これらのデータへのアクセスは利用者集合U’に属する利用者に制限されているとみなすことができる。すなわち、権限が合致しさえすれば、復号が可能である利用者集合を変更することに成功したとみなせる。   The data storage person uses the above-described re-encryption function to re-encrypt each cipher text stored by himself / herself based on the cipher text and the proxy key, thereby generating a new cipher text. Then, the original ciphertext is replaced with this new ciphertext. The new ciphertext can be decrypted by the users belonging to the new user set U 'who have the same authority. Accordingly, it can be considered that access to these data is restricted to users belonging to the user set U '. That is, as long as the authority matches, it can be considered that the user set that can be decrypted has been successfully changed.

実施形態1.
次に、本発明の暗号方式を用いた暗号システムについて図面を参照して説明する。
Embodiment 1. FIG.
Next, an encryption system using the encryption method of the present invention will be described with reference to the drawings.

[諸定義]
まず、本実施形態の暗号システムで用いる暗号方式における各種用語の定義について説明する。G,Gは、それぞれ素数qを位数とする巡回群であって、かつe:G×G→Gなる双線形写像を持つものとする。gは群Gの生成子である。Fqは位数qの素体である。VはFq上のベクトル空間Gを表す。また、AをVの標準基底とし、A:=(a[i]) i=1,・・・,Nと表す。ここで、a[i]の全ての要素は、その第i番目のものを除いてV上0であり、第i番目の要素はgである。また、x:=(g[i]) i=1,・・・,N∈V、y:=(h[i]) i=1,・・・,N∈Vとしたとき、e(x,y):=Πe(g[i],[i])i=1 ∈Gとする。ただし、g[i]は、群Gの生成子であるgとは別記号として扱っている。
[Definitions]
First, definitions of various terms in the encryption method used in the encryption system of the present embodiment will be described. G, G T is a respective cyclic group and of order prime q, and e: shall have the G × G → G T becomes bilinear map. g is a generator of group G. Fq is a prime field of order q. V represents a vector space G N on Fq. Further, A is a standard base of V, and A: = (a [i]) T i = 1,. Here, all elements of a [i] are 0 on V except for the i-th element, and the i-th element is g. In addition, when x: = (g [i]) T i = 1,..., N ∈V, y: = (h [i]) T i = 1 ,. (x, y): = Πe (g [i], [i]) and i = 1 N ∈G T. However, g [i] is treated as a different symbol from g which is a generator of the group G.

また、群Gは、加法巡回群として記述される。Fqの元と群Gの元には乗算が定義されており、Fqの元がαで群Gの元がgならば、それらの乗算はαgと記述される。また、群Gは、乗法巡回群として記述される。Fqの元と群Gの元には冪乗算が定義されており、Fqの元がαで群Gの元がgならば、それらの乗算はg αと記述される。群Gや群Gの実現方法として、楕円曲線を用いた方法などが知られている。Group G is described as an additive cyclic group. Multiplication is defined for the element of Fq and the element of group G. If the element of Fq is α and the element of group G is g, those multiplications are described as αg. Further, the group G T is described as multiplicative cyclic group. The Fq original with original group G T are defined a power multiplication, the original group G T in Fq former is alpha is if g T, their multiplication is described as g T alpha. As method for realizing the group G and the group G T, methods and the like are known using elliptic curve.

また、DOBG(・,・)は、整数λとNが入力されたら、paramsV=(q,V,G,A,e(・,・),g,B,B)を出力する双対正規直交基底生成関数である。なお、記号に付されている上付きの*は、BとBとを区別するための単なる識別用の記号として用いている。DOBG()内では、次のようにparamsVを生成する。最初に、大きさλのq,G,V,A,e(・,・),g:Gの生成子を選ぶ。また、Fqのψをランダムに選び、g:=e(g,g)ψを生成する。次いで、Fqの元を要素とするN×Nの可逆行列GL(N,Fq)からランダムにXを選び、Θ:=ψ・(X−1を生成する。また、B:=XA、B:=ΘAとする。なお、(b[0],・・・,b[N−1]):=B、(b[0],・・・,b[N−1]):=Bである。そして、paramsV(q,V,G,A,e(・,・),g,B,B)を出力する。Further, DOBG (·, ·), once an integer λ and N are input, paramsV = (q, V, G T, A, e (·, ·), g T, B, B *) dual outputs a This is an orthonormal basis generation function. The superscript * attached to the symbol is used as a mere identification symbol for distinguishing B from B * . In DOBG (), paramsV is generated as follows. First, generators of q, G T , V, A, e (•, •), g: G of size λ are selected. Further, ψ of Fq is selected at random to generate g T : = e (g, g) ψ . Next, X is randomly selected from an N × N reversible matrix GL (N, Fq) having elements of Fq as elements, and Θ: = ψ · (X T ) −1 is generated. Further, B: = XA, B * : = ΘA. Note that (b [0],..., B [N−1]): = B, (b * [0],..., B * [N−1]): = B * . Then, paramsV (q, V, G T , A, e (•, •), g T , B, B * ) is output.

[構成]
図1は、第1の実施形態の暗号システムの全体構成図である。図1に示す暗号システムは、設定部11と、鍵導出部12と、暗号化部13と、復号部14と、代理鍵生成部15と、再暗号化部16と、鍵更新部17とを備える。
[Constitution]
FIG. 1 is an overall configuration diagram of the cryptographic system according to the first embodiment. 1 includes a setting unit 11, a key derivation unit 12, an encryption unit 13, a decryption unit 14, a proxy key generation unit 15, a re-encryption unit 16, and a key update unit 17. Prepare.

[設定機能]
設定部11は、公開鍵201とマスタ鍵202とを生成する。
[Setting function]
The setting unit 11 generates a public key 201 and a master key 202.

図2は、設定部11の構成例を示すブロック図である。図2に示すように、設定部11は、設定手段111を含んでいてもよい。   FIG. 2 is a block diagram illustrating a configuration example of the setting unit 11. As shown in FIG. 2, the setting unit 11 may include a setting unit 111.

公開鍵とマスタ鍵の生成方法は、基本的には一般的な関数型暗号方式における生成方法と同様でよい。ただし、以下に示すように、公開鍵201に、代理鍵213の生成に合わせて更新される更新部が少なくとも追加されるとともに、マスタ鍵202に、代理鍵213の生成に合わせて更新される更新部が少なくとも追加される。公開鍵201の更新部およびマスタ鍵202の更新部は、いずれも後述の代理鍵生成部15によって生成される公開鍵更新因子に基づく値を設定する領域を含むものとする。なお、公開鍵更新因子は、利用者集合が変更されるタイミングで生成されるものであるので、公開鍵生成時およびマスタ鍵生成時には、当該設定部11がランダムに選んだ仮の公開鍵更新因子に基づく値を当該領域に設定するものとする。以下では、「更新部」以外の部分であって関数型暗号方式に準拠した方法によって生成される部分を「本体部」と呼ぶ場合がある。   The generation method of the public key and the master key may be basically the same as the generation method in a general functional encryption scheme. However, as shown below, at least an update unit that is updated in accordance with the generation of the proxy key 213 is added to the public key 201, and the update that is updated in accordance with the generation of the proxy key 213 in the master key 202 At least a part is added. Both the update unit of the public key 201 and the update unit of the master key 202 include an area for setting a value based on a public key update factor generated by the proxy key generation unit 15 described later. Since the public key update factor is generated when the user set is changed, the temporary public key update factor randomly selected by the setting unit 11 at the time of public key generation and master key generation A value based on is set in the area. Hereinafter, a part other than the “update part” and generated by a method based on the functional encryption method may be referred to as a “main part”.

設定部11は、例えば、次のようにして公開鍵201とマスタ鍵202とを生成する。まず、整数λとnが入力される。すると、設定手段111が、DOBG(λ,4n+3)の出力(paramsV:=(q,V,G,A,e(・,・),g,B,B),B:=(b[1],・・・,b[4n+3]),B:=(b[1],・・・,b[4n+3]))を得る。設定手段111は、次いで、B’:=(b[1],・・・,b[n],b[4n+1],b[4n+2],b[4n+3])、B’:=(b[1],・・・,b[n],,b[3n+1],・・・,b[4n],b[4n+1],b[4n+2],b[4n+3])とする。次いで、Fqからランダムにγを選び、f=γg∈V、h=(ψ/γ)gとする。そして、出力手段等(図示省略)が、公開鍵201として(λ,paramsV,B’,f):=pkを出力し、マスタ鍵202として(B’,h):=mkを出力する。なお、本例の場合、pkのうち、f=γgが公開鍵201の「更新部」に相当し、他は「本体部」に相当する。また、mkのうち、hがマスタ鍵の「更新部」に相当し、他は「本体部」に相当する。ここで、ある2つの4n+3成分ベクトルz,zに対して以下の式(1)が成り立つ。なお、式(1)の右辺は、zとzの内積z・zである。For example, the setting unit 11 generates the public key 201 and the master key 202 as follows. First, integers λ and n are input. Then, setting means 111, DOBG (λ, 4n + 3 ) output (paramsV: = (q, V , G T, A, e (·, ·), g T, B, B *), B: = (b [1],..., B [4n + 3]), B * : = (b * [1],..., B * [4n + 3])). The setting means 111 then selects B ′: = (b [1],..., B [n], b [4n + 1], b [4n + 2], b [4n + 3]), B ′ * : = (b * [1], ..., b * [n], b * [3n + 1], ..., b * [4n], b * [4n + 1], b * [4n + 2], b * [4n + 3]) To do. Next, γ is randomly selected from Fq, and f = γgεV and h = (ψ / γ) g. Then, output means or the like (not shown) outputs (λ, paramsV, B ′, f): = pk as the public key 201 and (B ′ * , h): = mk as the master key 202. In the case of this example, f = γg of pk corresponds to the “update unit” of the public key 201, and the other corresponds to the “main body unit”. Of mk, h corresponds to the “update part” of the master key, and the other corresponds to the “main part”. Here, the following formula (1) is established for a certain two 4n + 3 component vectors z and z * . In addition, the right-hand side of equation (1) is a z and z * of the inner product z · z *.

B(B)z=z ・・・式(1) z * B (B *) z T = z * z T ··· formula (1)

[鍵導出機能]
鍵導出部12は、公開鍵201と、マスタ鍵202と、当該鍵導出部12で生成する秘密鍵206に付与する権限に対応する述語ベクトル203と、その権限を有する利用者集合Uに含まれる利用者の利用者識別子204とに基づいて、その利用者に対応する秘密鍵206を生成する。
[Key derivation function]
The key derivation unit 12 is included in the public key 201, the master key 202, the predicate vector 203 corresponding to the authority granted to the secret key 206 generated by the key derivation unit 12, and the user set U having the authority. Based on the user identifier 204 of the user, a secret key 206 corresponding to the user is generated.

図3は、鍵導出部12の構成例を示すブロック図である。図3に示すように、鍵導出部12は、述語部生成手段121と、打消部生成手段122と、利用者識別因子生成手段123とを含んでいてもよい。   FIG. 3 is a block diagram illustrating a configuration example of the key derivation unit 12. As shown in FIG. 3, the key derivation unit 12 may include a predicate part generation unit 121, a cancellation unit generation unit 122, and a user identification factor generation unit 123.

鍵導出部12による秘密鍵206の生成方法は、基本的な部分については関数型暗号方式における秘密鍵の生成方法と同様でよい。ただし、本例では、利用者に固有でかつ利用者も知ることのない利用者識別因子205を用いて利用者固有の要素を付加する。   The method for generating the secret key 206 by the key derivation unit 12 may be the same as the method for generating the secret key in the functional encryption method for the basic part. However, in this example, a user-specific element is added using a user identification factor 205 that is specific to the user and that the user does not know.

鍵導出部12は、例えば次のようにして秘密鍵206を生成する。まず、最新の公開鍵201:=pkと、最新のマスタ鍵202:=mkと、述語ベクトル203:=vと、利用者識別子204(例えば、利用者識別子204−1):=Iとが入力される。ここで、pk:=(λ,paramsV,B’,f)、mk:=(B’,h)である。すると、利用者識別因子生成手段123が、Fqから、当該利用者の利用者識別因子205(例えば、利用者識別因子205−1):=αとσをそれぞれランダムに選ぶ。また、利用者識別因子生成手段123は、Fqからベクトルuをランダムに選ぶ。なお、利用者識別因子205:=αは、利用者識別子204と、場合によってはマスタ鍵202との組み合わせから決定的に導出されるものであってもよい。The key derivation unit 12 generates the secret key 206 as follows, for example. First, the latest public key 201: = pk, the latest master key 202: = mk, the predicate vector 203: = v, and the user identifier 204 (for example, the user identifier 204-1): = I are input. Is done. Here, pk: = (λ, paramsV, B ′, f), mk: = (B ′ * , h). Then, the user identification factor generation means 123 randomly selects the user identification factor 205 of the user (for example, the user identification factor 205-1): = α I and σ from Fq. Further, the user identification factor generation means 123 randomly selects a vector u from Fq n . Note that the user identification factor 205: = α I may be deterministically derived from the combination of the user identifier 204 and, in some cases, the master key 202.

このとき選ばれた利用者識別因子205は、後述する代理鍵生成部15と共有されるため、入力された利用者識別子204と対応づけて管理される。例えば、利用者識別子204と利用者識別因子205の対応表を生成し、保持しておいてもよい。また、例えば、利用者識別因子205として、利用者識別子204とマスタ鍵202とのハッシュ値を利用する場合には、その旨をあらかじめ定めておいてもよい。   Since the user identification factor 205 selected at this time is shared with a proxy key generation unit 15 described later, the user identification factor 205 is managed in association with the input user identifier 204. For example, a correspondence table between the user identifier 204 and the user identification factor 205 may be generated and held. For example, when the hash value of the user identifier 204 and the master key 202 is used as the user identification factor 205, that fact may be determined in advance.

次いで、述語部生成手段121が、秘密鍵206の述語部2061として、k:=(σv,02n,u,1,0,α)Bを生成する。また、打消部生成手段122が、秘密鍵206の利用者依存値打消部2062として、d=αhを生成する。そして、出力手段等(図示省略)が、入力された利用者識別子204に対応する秘密鍵206(例えば、秘密鍵206−1)として、skv,I:=(k,d)を出力する。なお、述語部2061に含まれる「02n」は、全ての要素が0の要素数が2n個のベクトルを表している。なお、以下、同じように0に上付きの数値または記号が付されている場合には、全ての要素が0の要素数がその上付きの数値または記号で表される個数のベクトルを表すものとする。Next, the predicate part generation unit 121 generates k * : = (σv, 0 2n , u, 1, 0, α I ) B * as the predicate part 2061 of the secret key 206. Further, the cancellation unit generation unit 122 generates d I = α I h as the user-dependent value cancellation unit 2062 of the secret key 206. Then, the output means or the like (not shown) outputs sk v, I : = (k * , d I ) as the secret key 206 (for example, the secret key 206-1) corresponding to the input user identifier 204. To do. Note that “0 2n ” included in the predicate part 2061 represents a vector having 2n elements where all elements are 0. In the following, similarly, when a superscript numerical value or symbol is added to 0, the number of elements in which all the elements are 0 represents the vector of the number represented by the superscript numeric value or symbol. And

ここで、利用者識別因子αは利用者も知ることがなく、利用者に固有の値とみなす。また、本発明の暗号方式では、ここで生成された秘密鍵の述語部2061すなわちkを用いて属性ベクトルxを指定された暗号文を復号すると、中間段階でこの利用者識別因子αに依存するデータである「利用者依存値」が生成されるようにする。また、利用者識別因子αは、この利用者依存値との間に次のような関係を有するものとする。すなわち、指定された秘密鍵を用いた結果、x・v=0となる場合には、その後のステップで同秘密鍵の利用者依存値打消部2062に含まれるg、dを用いてこの利用者依存値を消し去ることができ、最終的な復号結果を得ることができる。一方、x・v=0でない場合は、利用者依存値にランダムな値が加わりこれを復号過程の後のステップで消し去ることができずに復号に失敗する。Here, the user identification factor α I is not known to the user and is regarded as a value unique to the user. Further, in the encryption method of the present invention, when the ciphertext in which the attribute vector x is designated using the predicate part 2061 of the secret key generated here, that is, k * is decrypted, this user identification factor α I is set in the intermediate stage. A “user-dependent value” that is dependent data is generated. Further, the user identification factor α I has the following relationship with this user-dependent value. That is, when x · v = 0 is obtained as a result of using the designated secret key, this is performed using g I and d I included in the user-dependent value canceling unit 2062 of the secret key in the subsequent step. The user-dependent value can be erased, and a final decoding result can be obtained. On the other hand, when x · v = 0 is not satisfied, a random value is added to the user-dependent value, which cannot be erased in a later step of the decoding process, and decoding fails.

このように、本暗号方式では、秘密鍵を生成する際に利用者識別因子αを用いることによって、復号過程において全ての利用者ごとに異なる値を経由させるようにし、利用者ごとにその暗号文の復号を許すか否かの制御を可能にしている。In this way, in this encryption method, by using the user identification factor α I when generating the secret key, a different value is passed for every user in the decryption process, and the encryption is made for each user. It is possible to control whether or not to allow sentence decoding.

なお、図3に示す例では、1つの利用者識別子204−1が入力されると、その利用者に対応する秘密鍵206−1を1つ生成して出力する例を示しているが、鍵導出部12は、利用者識別子204の集合からなる利用者集合Uを入力して、その利用者集合Uに含まれる各利用者識別子に対応する秘密鍵を生成して出力してもよい。   In the example shown in FIG. 3, when one user identifier 204-1 is input, one secret key 206-1 corresponding to the user is generated and output. The deriving unit 12 may input a user set U including a set of user identifiers 204, and generate and output a secret key corresponding to each user identifier included in the user set U.

[暗号化機能]
暗号化部13は、公開鍵201と、当該暗号化部13で生成する暗号文209を復号できる権限を指定する属性ベクトル207とに基づいて、暗号文209を生成する。
[Encryption function]
The encryption unit 13 generates the ciphertext 209 based on the public key 201 and the attribute vector 207 that specifies the authority to decrypt the ciphertext 209 generated by the encryption unit 13.

図4は、暗号化部13の構成例を示すブロック図である。図4に示すように、暗号化部13は、暗号化手段131を含んでいてもよい。   FIG. 4 is a block diagram illustrating a configuration example of the encryption unit 13. As shown in FIG. 4, the encryption unit 13 may include an encryption unit 131.

暗号化の方法は、基本的には一般的な関数型暗号方式における暗号化の方法と同様でよい。ただし、以下に示すように、暗号文に、公開鍵の更新部を基に生成される第2の要素が少なくとも追加される。   The encryption method may be basically the same as the encryption method in a general functional encryption method. However, as shown below, at least the second element generated based on the public key update unit is added to the ciphertext.

なお、本実施形態では、ハイブリッド暗号方式を利用して文書を送信することを前提としている。このため図1では、暗号化部13が、保護対象とする文書そのものを暗号化するのではなく、その文書を暗号化する際に使用するメッセージ鍵を生成してそれを暗号化する例を示している。ここで、ハイブリッド暗号方式とは、共通鍵暗号方式と公開鍵暗号方式とを組み合わせて用いる暗号方式をいう。より具体的には、送信者側でメッセージ鍵を任意に生成し、文書をその生成したメッセージ鍵を使用して共通鍵暗号方式で暗号化するとともに、そのメッセージ鍵を公開鍵を使用して公開鍵暗号方式で暗号化して、暗号化された文書と暗号化されたメッセージ鍵とを受信者側に送信する。そして、受信者側では、まず公開鍵暗号方式で暗号化されたメッセージ鍵を公開鍵を使用して復号してメッセージ鍵を得て、得たメッセージ鍵を使用して共通鍵暗号方式で暗号化された文書を復号して平文(文書)を得る。関数型暗号方式を発展させた本発明の暗号方式も公開鍵暗号方式の一つであるので、このようなハイブリッド暗号方式を利用して文書を送信するシステムにおいて、本発明の暗号方式を使用できる。   In the present embodiment, it is assumed that a document is transmitted using the hybrid encryption method. For this reason, FIG. 1 shows an example in which the encryption unit 13 does not encrypt the document to be protected but generates a message key to be used when encrypting the document and encrypts it. ing. Here, the hybrid encryption method refers to an encryption method that uses a combination of a common key encryption method and a public key encryption method. More specifically, the sender can arbitrarily generate a message key, encrypt the document using the generated message key using a common key encryption method, and publish the message key using the public key. Encryption is performed using a key encryption method, and the encrypted document and the encrypted message key are transmitted to the receiver side. The receiver side first decrypts the message key encrypted with the public key cryptosystem using the public key to obtain the message key, and encrypts it with the common key cryptosystem using the obtained message key. The obtained document is decrypted to obtain a plain text (document). Since the encryption method of the present invention, which is an extension of the functional encryption method, is one of the public key encryption methods, the encryption method of the present invention can be used in a system that transmits a document using such a hybrid encryption method. .

一般に、公開鍵暗号方式は鍵の配送・管理が容易であるという利点がある反面、処理に時間がかかり、大容量のファイルの暗号化には向かないという課題がある。しかし、ハイブリッド暗号方式を用いれば、共通鍵暗号方式の「処理が高速」という利点と、公開鍵暗号方式の「鍵の配送・管理が容易」という利点の両方を利用することができる。   In general, the public key cryptosystem has an advantage that it is easy to distribute and manage keys, but it takes time to process and is not suitable for encryption of a large capacity file. However, if the hybrid encryption method is used, it is possible to use both the advantage of the common key encryption method that “processing is fast” and the advantage of the public key encryption method that key distribution and management are easy.

暗号化部13は、例えば次のようにしてメッセージ鍵208とその暗号文209とを生成する。まず、最新の公開鍵201:=pkと、属性ベクトル207:=x∈Fq(0,・・・,0)とが入力される。ここで、pk:=(λ,paramsV,B’,f)である。すると、暗号化手段131が、Fqから、wとφとζとξとをランダムに選ぶ。暗号化手段131は、次いで、メッセージ鍵208としてK:=g ζを生成し、またc[1]:=(wx,02n,0,ζ,φ,ξ)B、c[2]:=ζfを生成する。そして、出力手段等(図示省略)が、メッセージ鍵208であるKを出力し、暗号文209としてCx:=(c[1],c[2])を出力する。The encryption unit 13 generates the message key 208 and its ciphertext 209 as follows, for example. First, the latest public key 201: = pk and the attribute vector 207: = xεFq n (0,..., 0) are input. Here, pk: = (λ, paramsV, B ′, f). Then, the encryption unit 131 randomly selects w, φ, ζ, and ξ from Fq. The encryption means 131 then generates K: = g T ζ as the message key 208, and c [1]: = (wx, 0 2n , 0 n , ζ, φ, ξ) B, c [2] : = Ζf is generated. Then, output means or the like (not shown) outputs K as the message key 208 and outputs Cx: = (c [1], c [2]) as the ciphertext 209.

なお、図1では図示省略しているが、ハイブリッド暗号システムとして、さらに暗号化部13で生成されたメッセージ鍵を使用して文書を共通鍵暗号方式により暗号化する第2の暗号化部と、そのように暗号化された文書を、該文書に対応付けられているメッセージ鍵を使用して復号する第2の復号部とを備えていてもよい。   Although not shown in FIG. 1, as a hybrid encryption system, a second encryption unit that encrypts a document by a common key encryption method using a message key generated by the encryption unit 13; A second decryption unit that decrypts the encrypted document using a message key associated with the document may be provided.

そのような場合には、第2の暗号化部が、暗号化部13から出力されたメッセージ鍵208を使用して、保護対象とする文書を共通鍵暗号方式を使用して暗号化する。そして、その暗号化された文書とともに暗号化されたメッセージ鍵209とが受信者側(より具体的には、データ保存者)に送信される。   In such a case, the second encryption unit uses the message key 208 output from the encryption unit 13 to encrypt the document to be protected using the common key encryption method. Then, the encrypted message key 209 together with the encrypted document is transmitted to the receiver side (more specifically, the data storage person).

保護対象とする文書のサイズが小さく、処理時間がパフォーマンスに影響のない範囲である場合などには、ハイブリッド暗号を利用せずに、文書を直接、本発明の暗号方式を使用して暗号化して送信することも可能である。そのような場合は、暗号化部13は、図5に示すように、公開鍵201と、属性ベクトル207と、暗号化の対象である文書208とを入力として、該文書208の暗号文209を出力する構成であってもよい。図5は、暗号化部13の他の構成例を示すブロック図である。なお、この場合の文書208の暗号化の方法はメッセージ鍵の場合と同様でよい。また、図5に示す構成において、暗号化の対象とする文書208の代わりに、メッセージ鍵208となる乱数(上述のζに相当)を入力するようにしてもよい。その場合は、そのまま上述のハイブリッド暗号方式に対応可能となる。ただし、本発明の暗号方式では、乱数=メッセージ鍵とはせず、入力された乱数と公開鍵とを組み合わせてメッセージ鍵を生成するものとする。   If the size of the document to be protected is small and the processing time is in a range that does not affect performance, the document can be directly encrypted using the encryption method of the present invention without using hybrid encryption. It is also possible to transmit. In such a case, as illustrated in FIG. 5, the encryption unit 13 receives the public key 201, the attribute vector 207, and the document 208 to be encrypted, and inputs the ciphertext 209 of the document 208. The structure which outputs may be sufficient. FIG. 5 is a block diagram illustrating another configuration example of the encryption unit 13. In this case, the method for encrypting the document 208 may be the same as that for the message key. In the configuration shown in FIG. 5, a random number (corresponding to ζ described above) serving as the message key 208 may be input instead of the document 208 to be encrypted. In that case, the above-described hybrid cryptosystem can be supported as it is. However, in the encryption method of the present invention, it is assumed that the message key is generated by combining the input random number and the public key, not the random number = message key.

[復号機能]
復号部14は、公開鍵201と、秘密鍵206と、暗号文209とに基づいて、当該暗号文209の復号文である平文210を生成する。
[Decryption function]
Based on the public key 201, the secret key 206, and the ciphertext 209, the decryption unit 14 generates a plaintext 210 that is a decrypted text of the ciphertext 209.

図6は、復号部14の構成例を示すブロック図である。図6に示すように、復号部14は、依存値生成手段141と、打消値生成手段142と、打消手段143とを含んでいてもよい。   FIG. 6 is a block diagram illustrating a configuration example of the decoding unit 14. As shown in FIG. 6, the decoding unit 14 may include a dependency value generation unit 141, a cancellation value generation unit 142, and a cancellation unit 143.

復号の方法は、基本的には一般的な関数型暗号方式における復号方法と同様でよい。ただし、以下に示すように、利用者依存値の追加に伴って新たな処理が少なくとも追加される。より具体的には、復号処理の中間段階において秘密鍵206の述語部2061を基に暗号文から利用者依存値214を生成した上で、その利用者依存値214を秘密鍵206の利用者依存値打消部2062を基に打ち消す処理が少なくとも追加される。   The decryption method may be basically the same as the decryption method in a general functional encryption scheme. However, as will be described below, at least new processing is added with the addition of the user-dependent value. More specifically, a user-dependent value 214 is generated from the ciphertext based on the predicate part 2061 of the secret key 206 in the intermediate stage of the decryption process, and the user-dependent value 214 is then used as the user-dependent value of the secret key 206. At least processing for canceling based on the value canceling unit 2062 is added.

復号部14は、例えば次のようにして平文210を生成する。まず、最新の公開鍵201:=pkと、復号者が保持している秘密鍵206(例えば、秘密鍵206−1):=skv,Iと、暗号文209:=Cxとが入力される。ここで、pk:=(λ,paramsV,B’,f)、skv,I:=(k,d)、Cx:=(c[1],c[2])、c[1]:=(ζ,wx,02n,0,φ)B、c[2]:=ζfである。すると、依存値生成手段141が、入力された秘密鍵206の述語部2061であるkを用いて、利用者依存値214をr:=e(c[1],k)と生成する。また、打消値生成手段142が、入力された秘密鍵206の利用者依存値打消部2062であるdを用いて、利用者依存値打消値215を、R:=e(c[2],d)と生成する。次いで、打消手段143が、復号文として、K’=r/R={e(c[1],k)/e(c[2],d)}を生成する。そして、出力手段等(図示省略)が、復号文である平文210として、メッセージ鍵K’を出力する。For example, the decryption unit 14 generates the plaintext 210 as follows. First, the latest public key 201: = pk, the private key 206 (for example, private key 206-1) held by the decryptor: = sk v, I, and the ciphertext 209: = Cx are input. . Here, pk: = (λ, paramsV, B ′, f), sk v, I : = (k * , d I ), Cx: = (c [1], c [2]), c [1] : = (Ζ, wx, 0 2n , 0 n , φ) B, c [2]: = ζf. Then, the dependency value generation unit 141 generates the user dependency value 214 as r I : = e (c [1], k * ) using k * which is the predicate part 2061 of the input secret key 206. . Further, the cancellation value generation unit 142 uses the d I which is the user-dependent value cancellation unit 2062 of the input private key 206 to set the user-dependent value cancellation value 215 as R I : = e (c [2]. , D I ). Next, the canceling unit 143 generates K ′ = r I / R I = {e (c [1], k * ) / e (c [2], d I )} as a decrypted text. Then, output means or the like (not shown) outputs the message key K ′ as the plaintext 210 that is a decrypted text.

この後は、このメッセージ鍵K’を用いて、メッセージ鍵の暗号文209とともに送信された共通鍵暗号方式により暗号化された文書の暗号文を復号すれば、復号結果として該文書の平文を得ることができる。なお、共通鍵暗号方式による復号処理を行う第2の復号部を備えている場合には、その第2の復号部を使用して該文書の平文を得てもよい。   Thereafter, if the ciphertext of the document encrypted by the common key cryptosystem transmitted together with the ciphertext 209 of the message key is decrypted using the message key K ′, the plaintext of the document is obtained as a decryption result. be able to. In addition, when the 2nd decoding part which performs the decoding process by a common key encryption system is provided, the plaintext of this document may be obtained using the 2nd decoding part.

また、復号部14は、暗号文209として直接文書が暗号化されたものが入力された場合もメッセージ鍵の復号処理と同様の復号処理を行えばよい。   Further, the decryption unit 14 may perform the decryption process similar to the decryption process of the message key even when the encrypted text is directly input as the ciphertext 209.

[代理鍵生成機能]
代理鍵生成部15は、公開鍵201と、マスタ鍵202と、変更後の利用者集合U’である変更後の利用者集合211とに基づいて、代理鍵213と、新しい公開鍵201と、新しいマスタ鍵202と、各利用者の更新鍵212とを生成する。ここで、新しい公開鍵201とは、利用者集合を変更する前の公開鍵201の更新部を、以下に示す公開鍵更新因子を基に変更したものをいう。また、新しいマスタ鍵202とは、利用者集合を変更する前のマスタ鍵202の更新部を、同じ公開鍵更新因子を基に変更したものをいう。また、更新鍵212は、新しい秘密鍵206の一部となるものである。また、代理鍵213は、上述したように、ある「利用者集合U」に属する利用者の秘密鍵で復号できる暗号文を、新しい「利用者集合U’」に属する利用者の秘密鍵で復号できる暗号文に変換する際に必要となる情報を含んだ鍵である。
[Proxy key generation function]
Based on the public key 201, the master key 202, and the changed user set 211 that is the changed user set U ′, the proxy key generating unit 15 includes the proxy key 213, the new public key 201, A new master key 202 and an update key 212 for each user are generated. Here, the new public key 201 refers to the one obtained by changing the update part of the public key 201 before changing the user set based on the public key update factor shown below. The new master key 202 refers to a master key 202 update unit that has been changed based on the same public key update factor before the user set is changed. The update key 212 is a part of the new secret key 206. Further, as described above, the proxy key 213 decrypts a ciphertext that can be decrypted with the secret key of the user belonging to a certain “user set U” with the secret key of the user belonging to the new “user set U ′”. It is a key that contains information necessary for conversion to ciphertext that can be made.

図7は、代理鍵生成部15の構成例を示すブロック図である。図7に示すように、代理鍵生成部15は、更新因子選択手段151と、公開鍵更新手段152と、代理鍵生成手段153と、マスタ鍵更新手段154と、識別因子取得・生成手段155と、更新鍵生成手段156とを含んでいてもよい。   FIG. 7 is a block diagram illustrating a configuration example of the proxy key generation unit 15. As shown in FIG. 7, the proxy key generation unit 15 includes an update factor selection unit 151, a public key update unit 152, a proxy key generation unit 153, a master key update unit 154, and an identification factor acquisition / generation unit 155. The update key generation means 156 may be included.

代理鍵生成部15は、例えば次のようにして代理鍵、その他利用者集合の変更に伴い必要とされる各種データを生成する。まず、最新の公開鍵201:=pkと、マスタ鍵202:=mkと、新たな利用者集合211:=U’とが入力される。ここで、pk:=(λ,paramsV,B’,f)、mk:=(B’,h)である。また、U∋Iとする。すると、まず更新因子選択手段151が、Fqから今回の利用者集合の更新にかかる公開鍵更新因子216:=γ’をランダムに選ぶ。次いで、公開鍵更新手段152が、公開鍵の更新部217をf’=γ’gと生成する。また、代理鍵生成手段153が、代理鍵213をρ=γ’/γと生成する。また、マスタ鍵更新手段154が、マスタ鍵202と公開鍵更新因子γ’からマスタ鍵の更新部218をh’=(1/ρ)hと生成する。The proxy key generation unit 15 generates, for example, as follows, various data necessary for changing the proxy key and other user sets. First, the latest public key 201: = pk, master key 202: = mk, and new user set 211: = U ′ are input. Here, pk: = (λ, paramsV, B ′, f), mk: = (B ′ * , h). Also, U∋I. Then, the update factor selection unit 151 first randomly selects the public key update factor 216: = γ ′ related to the update of the current user set from Fq. Next, the public key update unit 152 generates the public key update unit 217 as f ′ = γ′g. Further, the proxy key generation unit 153 generates the proxy key 213 as ρ = γ ′ / γ. Also, the master key update unit 154 generates a master key update unit 218 as h ′ = (1 / ρ) h from the master key 202 and the public key update factor γ ′.

次いで、識別因子取得・生成手段155は、変更後の利用者集合U’に含まれる各利用者識別子204を基に、各々の利用者識別子204に対応づけられる利用者識別因子205:=(αI∈Uを得る。ここで得る利用者識別因子205は、変更前の利用者集合に含まれている利用者については該利用者の秘密鍵生成時に用いられた利用者識別因子205と同じ値であることを前提とする。識別因子取得・生成手段155は、例えば、鍵導出部12が管理している対応表を参照することにより、該当する利用者識別因子205を得てもよい。また、例えば、鍵導出部12が、利用者識別子204と、場合によってはマスタ鍵202との組み合わせから決定的に利用者識別因子205を導出していた場合には、識別因子取得・生成手段155は、同じ方法を用いて決定的に利用者識別因子205を導出することにより、同じ値の利用者識別因子205を得ることができる。なお、変更後の利用者集合に新たに含まれた利用者については、代理鍵生成部15が鍵導出部12と同じ方法を用いて新たに生成すればよい。なお、鍵導出部12に依頼して新しく加入した利用者の秘密鍵を生成させた上で、上述の方法と同じ方法でその利用者の利用者識別因子205を得てもよい。Next, the identification factor acquisition / generation means 155, based on each user identifier 204 included in the changed user set U ′, the user identification factor 205 associated with each user identifier 204: = (α I ) Obtain I∈U . It is assumed that the user identification factor 205 obtained here is the same value as the user identification factor 205 used for generating the user's private key for the users included in the user set before the change. To do. For example, the identification factor acquisition / generation unit 155 may obtain the corresponding user identification factor 205 by referring to the correspondence table managed by the key derivation unit 12. Further, for example, when the key derivation unit 12 has derived the user identification factor 205 deterministically from the combination of the user identifier 204 and possibly the master key 202, the identification factor acquisition / generation unit 155. The user identification factor 205 having the same value can be obtained by deriving the user identification factor 205 deterministically using the same method. Note that the proxy key generation unit 15 may newly generate a user newly included in the changed user set using the same method as the key derivation unit 12. In addition, after requesting the key deriving unit 12 to generate a secret key of a newly joined user, the user identification factor 205 of the user may be obtained by the same method as described above.

次いで、更新鍵生成手段156は、公開鍵更新因子216を基に、各利用者の秘密鍵206の変更部分である更新鍵212を、(ukI∈U=(d’I∈U:=(αh’)I∈Uと生成する。そして、出力手段等(図示省略)が、新しい公開鍵201としてpk’:=(λ,paramsV,B’,f’)を出力し、新しいマスタ鍵202としてmk’:=(B’,h’)を出力し、代理鍵213としてrk:=ρを出力し、更新鍵212として(ukI∈U=(d’I∈U:=(αh’)I∈Uを出力する。Then, the update key generation unit 156, based on the public key update factor 216, the update key 212 is changed portions of the private key 206 of each user, (uk I) I∈U = ( d 'I) I∈ U : = (α I h ′) I∈U is generated. Then, output means or the like (not shown) outputs pk ′: = (λ, paramsV, B ′, f ′) as a new public key 201 and mk ′: = (B * ′, h as a new master key 202. '), Rk : = ρ is output as the proxy key 213, and (uk I ) I∈U = (d ′ I ) I∈U : = (α I h ′) I∈U as the update key 212 Output.

[再暗号化機能]
再暗号化部16は、利用者集合の変更に伴い、公開鍵201と、代理鍵213とに基づいて、変更前の秘密鍵206で復号可能な暗号文209から、変更後の秘密鍵206で復号可能な新たな暗号文209を生成する。
[Re-encryption function]
With the change of the user set, the re-encryption unit 16 uses the public key 201 and the proxy key 213 to decrypt the ciphertext 209 that can be decrypted with the private key 206 before the change with the private key 206 after the change. A new ciphertext 209 that can be decrypted is generated.

図8は、再暗号化部16の構成例を示すブロック図である。図8に示すように、再暗号化部16は、再暗号化手段161を含んでいてもよい。   FIG. 8 is a block diagram illustrating a configuration example of the re-encryption unit 16. As shown in FIG. 8, the re-encryption unit 16 may include re-encryption means 161.

再暗号化部16は、例えば次のようにして既存の暗号文209から新しい(再暗号化された)暗号文209を生成する。まず、最新の公開鍵201:=pkと、代理鍵213:=rkと、変更前の暗号文209:=Cxとが入力される。ここで、pk:=(λ,paramsV,B’,f)、rk:=ρ、Cx:=(c[1],c[2])、c[1]:=(wx,02n,0,ζ,φ,ξ)B、c[2]:=ζfである。すると、再暗号化手段161が、c’[2]:=ρ・c[2]を生成して、Cx’=(c[1]、c’[2])とする。そして、出力手段等(図示省略)が、再暗号化された暗号文209としてCx’を出力する。For example, the re-encryption unit 16 generates a new (re-encrypted) ciphertext 209 from the existing ciphertext 209 as follows. First, the latest public key 201: = pk, proxy key 213: = rk, and ciphertext 209: = Cx before change are input. Here, pk: = (λ, paramsV, B ′, f), rk: = ρ, Cx: = (c [1], c [2]), c [1]: = (wx, 0 2n , 0 n , ζ, φ, ξ) B, c [2]: = ζf. Then, the re-encryption unit 161 generates c ′ [2]: = ρ · c [2] and sets Cx ′ = (c [1], c ′ [2]). Then, output means or the like (not shown) outputs Cx ′ as the re-encrypted ciphertext 209.

[鍵更新機能]
鍵更新部17は、公開鍵201と、変更前の秘密鍵206(例えば、秘密鍵206−1)と、その秘密鍵206の変更部分である更新鍵212(例えば、更新鍵212−1)とに基づいて、新しい秘密鍵206(例えば、秘密鍵206−1)を生成する。
[Key update function]
The key update unit 17 includes a public key 201, a private key 206 (for example, a private key 206-1) before the change, and an update key 212 (for example, an update key 212-1) that is a changed part of the private key 206. Based on the above, a new secret key 206 (for example, secret key 206-1) is generated.

図9は、鍵更新部17の構成例を示すブロック図である。図9に示すように、鍵更新部17は、鍵更新手段171を含んでいてもよい。   FIG. 9 is a block diagram illustrating a configuration example of the key update unit 17. As shown in FIG. 9, the key update unit 17 may include a key update unit 171.

鍵更新部17は、例えば次のようにして新しい秘密鍵206を生成する。まず、最新の公開鍵201:=pkと、ある利用者の秘密鍵206:=skv,Iと、該利用者の更新鍵212:uk:=とが入力される。ここで、pk:=(λ,paramsV,B’,f)、uk=d’=(αh’)、skv,I:=(k,d)である。すると、鍵更新手段171は、sk’v,I:=(k,d’)と生成する。すなわち、既存の秘密鍵206に含まれる利用者依存値打消部2062の一部であるdを更新鍵として入力されたd’に更新する。そして、新しい秘密鍵206として、sk’v,Iを出力する。The key update unit 17 generates a new secret key 206 as follows, for example. First, the latest public key 201: = pk, a certain user's private key 206: = sk v, I , and the user's update key 212: uk I : = are input. Here, pk: = (λ, paramsV, B ′, f), uk I = d ′ I = (α I h ′), sk v, I : = (k * , d I ). Then, the key update unit 171 generates sk ′ v, I : = (k * , d ′ I ). That is, d I that is a part of the user-dependent value cancellation unit 2062 included in the existing secret key 206 is updated to d ′ I input as an update key. Then, sk′v , I is output as a new secret key 206.

[暗号方式の検証]
上述の暗号方式が正しく動作することは次のことからわかる。まず、再暗号化がなされない場合に、上述の暗号化部13で暗号化の対象とされたメッセージ鍵K(平文208)と、上述の復号部14で復号処理によって得られたメッセージ鍵K’(平文210)とが等しいことは、以下のようにわかる。ただし、A^BはAを表す。
[Cryptographic verification]
It can be seen from the following that the above-described encryption scheme operates correctly. First, when re-encryption is not performed, the message key K (plaintext 208) that has been encrypted by the encryption unit 13 described above and the message key K ′ obtained by the decryption process by the decryption unit 14 described above. It can be seen that (plaintext 210) is equal as follows. However, A ^ B represents the A B.

K’=(e(c[1],k)/e(c[2],d))
=(g^(ζ+ζα+wσvx))/(g^(ζα))
=g^ζ
K ′ = (e (c [1], k * ) / e (c [2], d I ))
= (G T ^ (ζ + ζα I + wσvx)) / (g T ^ (ζα I))
= G T ^ ζ

これが、v・x=0の場合、
K’=g^ζ=ek
となり、正しく復号されることがわかる。
If this is v · x = 0,
K ′ = g T ^ ζ = ek
It can be seen that the data is correctly decoded.

v・x=0の条件を課すことで、利用者のもつ属性vが満たすべき条件を、述語xを使って使用することができる。すなわち、属性に応じたアクセスコントロールを実施することができる。ここで、e(c[1],k)が利用者依存値である。By imposing the condition of v · x = 0, the condition that the attribute v of the user should satisfy can be used using the predicate x. That is, access control according to the attribute can be performed. Here, e (c [1], k * ) is a user-dependent value.

また、更新された秘密鍵sk’v,Iを用いて復号すれば、再暗号化しても復号結果が変わらないことは、次のようにわかる。Further, it can be understood that if the decryption is performed using the updated secret key sk′v , I , the decryption result does not change even if the re-encryption is performed.

更新された秘密鍵sk’v,Iは、(k,d’)であり、また、再暗号化された暗号文の更新部分は、c’[2]:=ρc[2]である。ここでd’=(αh’)、f’=γ’g、ρ=γ’/γである。すると、再暗号化される前の暗号文の要素c[2]=ζf=ζγgであるが、更新されると、c’[2]=ρc[2]=(γ’/γ)ζγg=(γ’)ζg=ζf’となり、更新された公開鍵pk’で暗号化された場合と同じ値となる。秘密鍵sk’v,Iは、dがd’=(αh’)に置き換えられ、これも新しい公開鍵pk’を用いて作られた場合と同じ値になる。従って、更新される前と同様の計算により、再暗号化された暗号文を更新された秘密鍵を用いて復号すると、g^ζ=ekとなり、再暗号化する前と同じ値が復号される。The updated secret key sk ′ v, I is (k * , d ′ I ), and the updated part of the re-encrypted ciphertext is c ′ [2]: = ρc [2]. . Here, d ′ I = (α I h ′), f ′ = γ′g, and ρ = γ ′ / γ. Then, the element c [2] = ζf = ζγg of the ciphertext before being re-encrypted, but when updated, c ′ [2] = ρc [2] = (γ ′ / γ) ζγg = ( γ ′) ζg = ζf ′, which is the same value as when encrypted with the updated public key pk ′. The secret key sk ′ v, I has the same value as when d I is replaced by d ′ I = (α I h ′), which is also created using the new public key pk ′. Therefore, when the re-encrypted ciphertext is decrypted using the updated secret key by the same calculation as before the update, g T ^ ζ = ek, and the same value as before the re-encryption is decrypted. The

一方、更新された秘密鍵sk’v,Iが手に入らない場合、すなわち古い秘密鍵skv,Iしか持っていない場合は、再暗号化された暗号文を復号できない。これは、更新の前後で秘密鍵は(γ’−γ)αgと変化していて、利用者識別因子αがランダムに選ばれているため、Diffie−Hellman問題を解けない限り更新された鍵を手に入れることができないためである。On the other hand, when the updated secret key sk ′ v, I is not available, that is, when only the old secret key sk v, I is obtained, the re-encrypted ciphertext cannot be decrypted. This is a secret key before and after the update has been changed (γ'-γ) α I g , for user identification factor α I have been chosen at random, is updated as long as that does not solve the Diffie-Hellman problem This is because the key cannot be obtained.

以上の性質から、ある暗号文に対して復号できる人々を簡易な再暗号化処理を用いて動的に制御することができることがわかる。なお、暗号化時に指定された述語ベクトルは、非特許文献1と同様の理由により、この暗号文を復号できないものには明かさない。また、一旦復号して再度暗号化する場合とは異なり、本発明の暗号方式によれば再暗号化時にこの述語ベクトルを知る必要がないため、再暗号化処理を外部の業者に委託しても安全性を保つことができる。   From the above properties, it can be seen that people who can decrypt a ciphertext can be dynamically controlled using a simple re-encryption process. Note that the predicate vector specified at the time of encryption is not disclosed to those that cannot decrypt this ciphertext for the same reason as in Non-Patent Document 1. In addition, unlike the case of once decrypting and re-encrypting, according to the encryption method of the present invention, it is not necessary to know this predicate vector at the time of re-encryption. Safety can be maintained.

なお、上述の方法はあくまで一例であって、本発明の暗号方式で追加された機能に関する部分を除けば、一般的な関数型暗号で用いられる他の方法を用いてもよい。   Note that the above-described method is merely an example, and other methods used in general functional encryption may be used, except for the portion related to the function added by the encryption method of the present invention.

また、本発明の暗号方式で追加された機能に関する部分においても、上記例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。例えば、利用者識別因子は、利用者に固有でかつ利用者も知ることのないものであればよい。また、復号処理との関係において、利用者識別因子を生成する機能が、暗号文の一部と秘密鍵の述語部を入力として双線形写像を計算するものであってもよい。そのような場合は、利用者依存値を生成する機能が、暗号文の一部と秘密鍵の利用者依存値打消部を入力として双線形写像を計算するものであってもよい。   Further, the portion related to the function added by the encryption method of the present invention is not limited to the above example. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention. For example, the user identification factor may be anything unique to the user and not known to the user. Further, in relation to the decryption process, the function for generating the user identification factor may calculate a bilinear map with a part of the ciphertext and the predicate part of the secret key as inputs. In such a case, the function for generating the user-dependent value may calculate a bilinear map with a part of the ciphertext and the user-dependent value cancellation unit of the secret key as inputs.

また、秘密鍵の述語部は、マスタ鍵と述語ベクトルと利用者識別因子とを用いて生成されるものであればよい。また、利用者打消部と公開鍵との関係において、秘密鍵の述語部が、利用者識別因子をその成分に含むベクトルと行列である公開鍵の一成分との積であってもよい。そのような場合には、秘密鍵の利用者打消部は、二つ以上の成分からなり、そのうちの二つが公開鍵の一つの要素と利用者識別子の積からなる項を含むものであってもよい。   Moreover, the predicate part of a secret key should just be produced | generated using a master key, a predicate vector, and a user identification factor. Further, in the relationship between the user cancellation unit and the public key, the secret key predicate unit may be a product of a vector including a user identification factor in its component and a component of the public key as a matrix. In such a case, the private key user revocation unit may consist of two or more components, two of which may contain a term consisting of the product of one element of the public key and the user identifier. Good.

また、公開鍵更新因子は、ランダムに選択されるものであればよい。そして、公開鍵の更新部は、そのように選択された公開鍵更新因子と公開鍵とを用いて生成されるものであればよい。また、マスタ鍵の更新部は、公開鍵更新因子に基づいて生成されるものであればよい。また、代理鍵は、公開鍵更新因子をマスタ鍵の一部で割った値としてもよい。その上で、更新鍵を、述語ベクトルに依存を必要とせず、新しいマスタ鍵から生成される秘密部の一部とするのが好ましい。   Moreover, the public key update factor should just be selected at random. The public key update unit may be generated using the public key update factor and the public key selected as described above. The master key update unit may be generated based on a public key update factor. The proxy key may be a value obtained by dividing the public key update factor by a part of the master key. In addition, the update key is preferably not part of the predicate vector and is part of the secret part generated from the new master key.

以上のように、本実施形態によれば、復号可否を属性単位(例えば、組織単位)で制御可能である上に、安全かつ効率よく、そのメンバの変更に対応できる。   As described above, according to the present embodiment, whether or not decryption is possible can be controlled in attribute units (for example, organizational units), and changes in the members can be handled safely and efficiently.

実施形態2.
次に、本発明の第2の実施形態について説明する。本実施形態は、本発明の暗号方式をデータ保存システムに適用させた例である。図10は、第2の実施形態のデータ保存システムの全体構成の一例を示すブロック図である。なお、第1の実施形態の暗号システムと同じ機能部については同じ符合を付し説明を省略する。図10に示すように、本実施形態のデータ保存システムは、「管理者」が使用する管理装置31と、「データ登録者」が使用する暗号化装置32と、「データ保存者」が使用するデータ保持・再暗号化装置33と、「データ利用者」が使用する復号装置34とを備えている。なお、本実施形態では、復号装置34は2以上あり、復号が許可される利用者集合に含まれる各利用者(各「データ利用者」)が所持しているものとする。また、暗号化装置32についても複数の利用者が使用できるよう2以上備えていてもよい。また、「データ利用者」が同時に「データ登録者」であってもよい。この場合、暗号化装置32と復号装置34とが同一の装置によって実現される。例えば、1つの利用者端末内に、暗号化装置32と復号装置34とが実装されていてもよい。
Embodiment 2. FIG.
Next, a second embodiment of the present invention will be described. This embodiment is an example in which the encryption method of the present invention is applied to a data storage system. FIG. 10 is a block diagram illustrating an example of the overall configuration of the data storage system according to the second embodiment. Note that the same functional parts as those of the cryptographic system of the first embodiment are denoted by the same reference numerals and description thereof is omitted. As shown in FIG. 10, the data storage system according to the present embodiment is used by the management device 31 used by the “manager”, the encryption device 32 used by the “data registrant”, and the “data store”. A data holding / re-encrypting device 33 and a decrypting device 34 used by a “data user” are provided. In the present embodiment, it is assumed that there are two or more decryption devices 34 and each user (each “data user”) included in the set of users permitted to decrypt. Also, two or more encryption devices 32 may be provided so that a plurality of users can use them. Further, the “data user” may be a “data registrant” at the same time. In this case, the encryption device 32 and the decryption device 34 are realized by the same device. For example, the encryption device 32 and the decryption device 34 may be mounted in one user terminal.

管理装置31は、設定部11と、鍵導出部12と、代理鍵生成部15とを備えている。また、暗号化装置32は、ハイブリッド暗号化部321を備えている。ハイブリッド暗号化部321は、暗号化部13と、第2の暗号化部322とを含んでいる。また、データ保持・再暗号化装置33は、再暗号化部16と、データ保持部331とを備えている。また、復号装置34は、鍵更新部17と、ハイブリッド復号部341とを備えている。ハイブリッド復号部341は、復号部14と、第2の復号部342とを含んでいる。なお、図10では、使用者の区分けによる装置の分類を示しているが、ここで示した各装置(例えば、管理装置、暗号化装置、復号装置、データ保持・再暗号化装置)の実現例として、それらが2以上の装置によって実現されていてもかまわない。例えば、設定部11と、鍵導出部12と、代理鍵生成部15とがそれぞれ異なる装置に実装され、それらが安全な通信経路によって接続されることによって1つの管理装置31として動作するものであってもよい。   The management device 31 includes a setting unit 11, a key derivation unit 12, and a proxy key generation unit 15. The encryption device 32 includes a hybrid encryption unit 321. The hybrid encryption unit 321 includes an encryption unit 13 and a second encryption unit 322. The data holding / re-encrypting device 33 includes a re-encrypting unit 16 and a data holding unit 331. Further, the decryption device 34 includes a key update unit 17 and a hybrid decryption unit 341. The hybrid decoding unit 341 includes a decoding unit 14 and a second decoding unit 342. Note that FIG. 10 shows device classification based on user classification, but examples of realizing each device shown here (for example, a management device, an encryption device, a decryption device, and a data holding / re-encryption device). As such, they may be realized by two or more devices. For example, the setting unit 11, the key derivation unit 12, and the proxy key generation unit 15 are mounted on different devices, and operate as one management device 31 by being connected by a secure communication path. May be.

本実施形態において、ハイブリッド暗号化部321は、暗号化の対象とされる文書219と、属性ベクトル207とが入力されると、共通鍵暗号方式を用いて文書219を暗号化した暗号文220と、公開鍵暗号方式(より具体的には本発明の暗号方式)を用いて、該暗号文220を暗号化する際に使用したメッセージ鍵208を暗号化した暗号文209とを暗号データセットとして出力する。また、第2の暗号化部322は、当該ハイブリッド暗号化部321において、暗号化の対象とされる文書219と、暗号化部13が生成したメッセージ鍵208とを入力として、文書219をメッセージ鍵208を使用して共通鍵暗号方式で暗号化し、文書219の暗号文220を生成する。   In this embodiment, when the hybrid encryption unit 321 receives the document 219 to be encrypted and the attribute vector 207, the hybrid encryption unit 321 encrypts the document 219 using the common key encryption method, The ciphertext 209 obtained by encrypting the message key 208 used for encrypting the ciphertext 220 by using a public key cryptosystem (more specifically, the cipher scheme of the present invention) is output as an encrypted data set. To do. The second encryption unit 322 receives the document 219 to be encrypted in the hybrid encryption unit 321 and the message key 208 generated by the encryption unit 13 as input, and uses the document 219 as a message key. The ciphertext 220 of the document 219 is generated by encrypting with the common key cryptosystem using 208.

また、ハイブリッド復号部341は、文書の暗号文220と、該暗号文220を暗号化する際に使用したメッセージ鍵の暗号文209とが入力されると、文書の暗号文220の復号を試み、成功すれば該暗号文220の復号文である文書221を出力する。また、第2の復号部342は、当該ハイブリッド復号部341において、文書の暗号文220と、復号部14によって復号されたメッセージ鍵210とを入力として、暗号文220をメッセージ鍵210を使用して復号し、暗号文220の復号文である文書221を生成する。   When the ciphertext 220 of the document and the ciphertext 209 of the message key used when encrypting the ciphertext 220 are input, the hybrid decryption unit 341 tries to decrypt the ciphertext 220 of the document, If successful, a document 221 that is a decrypted text of the ciphertext 220 is output. In addition, the second decryption unit 342 receives the ciphertext 220 of the document and the message key 210 decrypted by the decryption unit 14 in the hybrid decryption unit 341, and uses the ciphertext 220 as the message key 210. The document 221 which is a decrypted text of the ciphertext 220 is generated by decrypting.

また、データ保持部331は、文書の暗号文220と、該暗号文220を暗号化する際に使用したメッセージ鍵の暗号文209とを対応づけて1つの暗号データセットとして保持する記憶部である。   The data storage unit 331 is a storage unit that stores the ciphertext 220 of the document and the ciphertext 209 of the message key used when encrypting the ciphertext 220 in association with each other as a single encrypted data set. .

また、本実施形態では、管理装置31と、暗号化装置32と、データ保持・再暗号化装置33と、復号装置34とは、各々ネットワークを介して接続されているものとする。なお、暗号化装置32と復号装置34とは、データ保持・再暗号化装置33を介して暗号データセットを送受信可能であれば、直接通信可能に接続されていなくてもよい。   In this embodiment, it is assumed that the management device 31, the encryption device 32, the data holding / re-encryption device 33, and the decryption device 34 are connected via a network. Note that the encryption device 32 and the decryption device 34 may not be connected so as to be able to communicate directly as long as the encrypted data set can be transmitted and received via the data holding / re-encryption device 33.

設定部11,鍵導出部12,代理鍵生成部15は、例えば管理装置31が備えるCPU等のプログラムに従って動作する情報処理装置によって実現される。また、暗号化部13,第2の暗号化部322は、例えば暗号化装置32が備えるCPU等のプログラムに従って動作する情報処理装置によって実現される。また、再暗号化部16は、例えばデータ保持・再暗号化装置33が備えるCPU等のプログラムに従って動作する情報処理装置によって実現される。また、データ保持部331は、例えばデータ保持・再暗号化装置33が備えるデータベースシステム、記憶装置等によって実現される。また、鍵更新部17,復号部14,第2の復号部342は、例えば復号装置34が備えるCPU等のプログラムに従って動作する情報処理装置によって実現される。   The setting unit 11, the key derivation unit 12, and the proxy key generation unit 15 are realized by an information processing device that operates according to a program such as a CPU provided in the management device 31, for example. The encryption unit 13 and the second encryption unit 322 are realized by an information processing device that operates according to a program such as a CPU provided in the encryption device 32, for example. The re-encryption unit 16 is realized by an information processing device that operates according to a program such as a CPU provided in the data holding / re-encryption device 33, for example. The data holding unit 331 is realized by a database system, a storage device, or the like provided in the data holding / re-encrypting device 33, for example. The key update unit 17, the decryption unit 14, and the second decryption unit 342 are realized by an information processing device that operates according to a program such as a CPU provided in the decryption device 34, for example.

次に、本実施形態の動作について説明する。本実施形態の動作は大きく、準備フェーズ、暗号化フェーズ、再暗号化フェーズ、復号フェーズに分けられる。まず、準備フェーズについて説明する。準備フェーズは本システムを稼働させる前段階における処理として、次のように行われる。まず管理者が管理装置31に対して指示を出すなどして、設定部11に公開鍵201とマスタ鍵202とを生成させる。マスタ鍵202は当該管理装置31内で保存し、他の装置には開示しない。また、公開鍵201は後に説明するが更新されつづける。この更新され続ける公開鍵201は、図10では図示省略しているが、その最新の内容が、鍵導出部12および代理鍵生成部15の他にも、少なくとも鍵更新部17、暗号化部13、再暗号化部16、復号部14に対して、利用可能なように公開されているものとする。なお、鍵更新時の一連の処理中(例えば、秘密鍵の配布中や再暗号化中)においてはこの限りではなく、再暗号化が完了するまであえて公開を停止するなども考えられる。   Next, the operation of this embodiment will be described. The operation of this embodiment is largely divided into a preparation phase, an encryption phase, a re-encryption phase, and a decryption phase. First, the preparation phase will be described. The preparation phase is performed as follows as a process in the stage before operating this system. First, the administrator issues an instruction to the management apparatus 31 to cause the setting unit 11 to generate the public key 201 and the master key 202. The master key 202 is stored in the management device 31 and is not disclosed to other devices. The public key 201 is continuously updated as will be described later. Although the public key 201 that continues to be updated is omitted in FIG. 10, the latest contents include at least the key update unit 17 and the encryption unit 13 in addition to the key derivation unit 12 and the proxy key generation unit 15. The re-encryption unit 16 and the decryption unit 14 are open to the public so that they can be used. Note that this is not the case during a series of processing at the time of key update (for example, during the distribution of a private key or during re-encryption), and it is also conceivable that the disclosure is stopped until re-encryption is completed.

次いで、管理者は、データを読むことを許す利用者(データ利用者)を定めて、これらの識別子(利用者識別子204)からなる集合を利用者集合とする。そして、利用者集合に含まれる各利用者識別子204に、それぞれの権限に対応する述語ベクトル203を定めた上で、鍵導出部12に、各利用者に対応する秘密鍵206を生成させる。そして、生成された秘密鍵206を該当する利用者が使用する復号装置34に各々配布する。配布方法としては、例えば直接安全な通信路で送付してもよい。また、例えば各利用者のみが復号できる暗号文としてデータ保持・再暗号化装置33に送付して委託してもよい。各利用者の復号装置34への配布が完了すると、準備フェーズを終了する。   Next, the administrator determines users (data users) who are allowed to read data, and sets a set of these identifiers (user identifiers 204) as a user set. Then, a predicate vector 203 corresponding to each authority is defined for each user identifier 204 included in the user set, and the key derivation unit 12 is caused to generate a secret key 206 corresponding to each user. Then, the generated secret key 206 is distributed to the decryption device 34 used by the corresponding user. As a distribution method, for example, it may be sent directly through a secure communication path. Further, for example, the encrypted data may be sent to the data holding / re-encrypting device 33 as an encrypted text that can be decrypted only by each user. When the distribution of each user to the decryption device 34 is completed, the preparation phase ends.

次に、暗号化フェーズについて説明する。暗号化フェーズは、データ登録者がデータ保存者にデータの保存を委託したい場合に次のように行われる。まず、データ登録者は、最新の公開鍵201を手に入れる。この公開鍵201は、管理装置31からだけでなく、データ保持・再暗号化装置33から入手してもよい。次いで、データ登録者は、データ保存者に保持させたいデータの平文である文書219と、該文書219を復号可能な権限を指定する属性ベクトル207とを指定した上で、ハイブリッド暗号化部321に指示を出し、該文書219の暗号文220と、該暗号文220を生成した際に使用したメッセージ鍵208の暗号文209とを生成させる。ハイブリッド暗号化部321では、指示に応じて、まず暗号化部13が、メッセージ鍵208と該メッセージ鍵208の暗号文209とを生成し、次いで、第2の暗号化部322が、生成されたメッセージ鍵208を用いて文書219の暗号文220を生成する処理を行う。なお、ここでの属性ベクトル207による指定が、当該文書へのアクセス制御となる。   Next, the encryption phase will be described. The encryption phase is performed as follows when the data registrant wants to entrust data storage to the data storage person. First, the data registrant obtains the latest public key 201. The public key 201 may be obtained not only from the management device 31 but also from the data holding / re-encrypting device 33. Next, the data registrant specifies the document 219 that is the plaintext of the data that the data saver wants to hold, and the attribute vector 207 that specifies the authority to decrypt the document 219, and then sends it to the hybrid encryption unit 321. An instruction is issued, and the ciphertext 220 of the document 219 and the ciphertext 209 of the message key 208 used when the ciphertext 220 is generated are generated. In the hybrid encryption unit 321, in response to the instruction, the encryption unit 13 first generates the message key 208 and the ciphertext 209 of the message key 208, and then the second encryption unit 322 is generated. Processing for generating a ciphertext 220 of the document 219 using the message key 208 is performed. The designation by the attribute vector 207 here is access control to the document.

データ登録者は、このようにして得た文書の暗号文220と、該暗号文220を暗号化する際に使用したメッセージ鍵の暗号文209とを含む暗号データセットを、データ保持・再暗号化装置33に送信する。暗号データセットを受け取ったデータ保持・再暗号化装置33は、受け取った暗号データセットをデータ保持部331に記憶させる。   The data registrant stores and re-encrypts an encrypted data set including the ciphertext 220 of the document obtained in this way and the ciphertext 209 of the message key used when encrypting the ciphertext 220. Transmit to device 33. The data holding / re-encrypting device 33 that has received the encrypted data set causes the data holding unit 331 to store the received encrypted data set.

次に、再暗号化フェーズについて説明する。再暗号化フェーズは、管理者が、データの復号可能権限を有する利用者集合に含ませる利用者を変更したい場合に次のように行われる。なお、この利用者集合の変更は、暗号文が利用者自身の権限に合致する権限を指定して生成されていれば復号できる利用者を個別に変更することに他ならない。このような利用者集合の変更は、組織に新たな人員が加わったり、人員が組織を去るとき等に発生する。まず、管理者は、新しい利用者集合211と、マスタ鍵202とを指定して、代理鍵生成部15に指示を出し、新しい公開鍵201と、代理鍵213と、新しいマスタ鍵202と、新しい利用者集合に含まれる各利用者に応じた更新鍵212とを生成させる。そして、生成された代理鍵213をデータ保持・再暗号化装置33に送付する。この時、生成された各利用者の更新鍵212についても、各利用者が使用する復号装置34に配布する。配布方法としては、秘密鍵206の場合と同様でよい。また、この時、従来(変更前)の公開鍵およびマスタ鍵を生成された新しい公開鍵201およびマスタ鍵202で書き換える。このように、公開鍵201とマスタ鍵202とは更新され続ける。なお、後述するが、公開鍵201とマスタ鍵202の更新に併せて各利用者の秘密鍵206も更新され続ける。   Next, the re-encryption phase will be described. The re-encryption phase is performed as follows when the administrator wants to change the users included in the user set having the authority to decrypt data. The change of the user set is nothing but an individual change of the users who can decrypt the encrypted text if it is generated by designating the authority that matches the authority of the user. Such a change in the user set occurs when a new person is added to the organization or when the person leaves the organization. First, the administrator designates a new user set 211 and a master key 202 and issues an instruction to the proxy key generation unit 15 to create a new public key 201, proxy key 213, new master key 202, and new An update key 212 corresponding to each user included in the user set is generated. Then, the generated proxy key 213 is sent to the data holding / re-encrypting device 33. At this time, the generated update key 212 of each user is also distributed to the decryption device 34 used by each user. The distribution method may be the same as in the case of the private key 206. At this time, the conventional public key and master key are rewritten with the generated new public key 201 and master key 202. Thus, the public key 201 and the master key 202 are continuously updated. As will be described later, the secret key 206 of each user is continuously updated along with the update of the public key 201 and the master key 202.

データ保持・再暗号化装置33では、代理鍵213を受け取ったなら、再暗号化部16に指示を出し、データ保持部331に保持している各暗号データセットのうちの暗号文209(すなわちメッセージ鍵の暗号文)に対して、順次再暗号化処理を行わせる。再暗号化部16では、上述の再暗号化処理によって、指定された暗号文209を順次新しい暗号文209に書き換える。この書き換え処理により、保持している暗号文209を復号できる利用者が、新しい利用者集合に含まれる各利用者に変更される。   When the data holding / re-encrypting device 33 receives the proxy key 213, the data holding / re-encrypting device 33 issues an instruction to the re-encrypting unit 16, and the ciphertext 209 (that is, the message) of each encrypted data set held in the data holding unit 331. Re-encryption processing is sequentially performed on the ciphertext of the key. The re-encryption unit 16 sequentially rewrites the designated ciphertext 209 with a new ciphertext 209 by the re-encryption process described above. By this rewriting process, the user who can decrypt the ciphertext 209 held is changed to each user included in the new user set.

復号装置34では、更新鍵212を受け取ったなら、鍵更新部17が、各自秘密鍵206を更新する。この更新は、更新鍵212を受け取る度に行われ、秘密鍵206が更新され続ける。なお、データ保持・再暗号化装置33に更新鍵の暗号文が委託されている場合には、復号者は、各々データ保持・再暗号化装置33にアクセスし、データ保持部331から自身の更新鍵212を暗号文の形で受け取り、それを変更前の秘密鍵等を用いて復号して更新鍵を得ればよい。なお、更新鍵取得のためのデータ保持・再暗号化装置33へのアクセスは、例えば、更新鍵212の更新の通知を受け取ったときに行うようにしてもよいし、データ保持・再暗号化装置33から暗号文を取り寄せる際に併せて更新鍵の登録有無をチェックすることにより行うことも可能である。   In the decryption device 34, when the update key 212 is received, the key update unit 17 updates the own secret key 206. This update is performed every time the update key 212 is received, and the secret key 206 is continuously updated. If the ciphertext of the update key is entrusted to the data holding / re-encrypting device 33, the decryptor accesses the data holding / re-encrypting device 33 and updates the data holding unit 331 from its own. It is only necessary to receive the key 212 in the form of ciphertext and decrypt it using the private key before the change or the like to obtain an updated key. Note that the access to the data holding / re-encrypting device 33 for obtaining the update key may be performed, for example, when an update key 212 update notification is received, or the data holding / re-encrypting device. It is also possible to check the presence / absence of registration of the update key when obtaining the ciphertext from 33.

次に、復号フェーズについて説明する。復号フェーズは、データ利用者が、データ保持・再暗号化装置33から所望の文書(より具体的には、文書の暗号文220を含む暗号データセット)を取り寄せた場合に次のように行われる。あるデータ利用者が、データ保持・再暗号化装置33から所望の文書の暗号文220を含む暗号データセットを取り寄せたとする。データ利用者は、自身の秘密鍵206を指定した上で、ハイブリッド復号部341に指示を出し、取り寄せた暗号データセットに対して復号処理を行わせる。ハイブリッド復号部341では、指示に応じて、まず復号部14が暗号データセットに含まれる、メッセージ鍵の暗号文209の復号を試み、それが成功すると、得られたメッセージ鍵210を用いて第2の復号部342が文書の暗号文220の復号を行う。   Next, the decoding phase will be described. The decryption phase is performed as follows when the data user obtains a desired document (more specifically, an encrypted data set including the ciphertext 220 of the document) from the data holding / re-encrypting device 33. . It is assumed that a certain data user obtains an encrypted data set including a ciphertext 220 of a desired document from the data holding / re-encrypting device 33. The data user designates his / her private key 206 and then instructs the hybrid decryption unit 341 to perform decryption processing on the obtained encrypted data set. In the hybrid decryption unit 341, in response to the instruction, the decryption unit 14 first attempts to decrypt the ciphertext 209 of the message key included in the encrypted data set. If the decryption is successful, the second decryption unit 341 uses the message key 210 obtained to The decryption unit 342 decrypts the ciphertext 220 of the document.

このとき、データ利用者が、メッセージ鍵の暗号文209の暗号化時に指定された権限を保持しているならば、自身の秘密鍵206を用いることにより、復号部14での復号処理によりメッセージ鍵210を得ることができる。そして、このメッセージ鍵210を用いて第2の復号部342で文書の暗号文220を復号することにより、所望の文書221を得ることができる。   At this time, if the data user holds the authority specified at the time of encrypting the ciphertext 209 of the message key, the message key is decrypted by the decrypting unit 14 by using its own private key 206. 210 can be obtained. A desired document 221 can be obtained by decrypting the ciphertext 220 of the document by the second decryption unit 342 using the message key 210.

以上のように、本実施形態によれば、クラウド等の外部機関により提供されるデータ保存サービスを利用した場合であっても、データ保存者を含む外部へのデータ漏洩の恐れを低減させつつ、データへのアクセス制御を属性単位(例えば、組織単位)で安全かつ効率よく行うことができる。   As described above, according to the present embodiment, even when using a data storage service provided by an external organization such as a cloud, while reducing the risk of data leakage to the outside including the data storage person, Access control to data can be performed safely and efficiently in attribute units (for example, organizational units).

特に、データを復号できる利用者の権限を指定すること、データを復号できる利用者の集合を変更することで、データへのアクセス制御を柔軟にすることができる。多くのデータ保存サービスにおけるアクセス制御は、権限によるアクセス権限の制御や利用者の加入に加えて失効が可能であることが求められている。このような求めに対して、暗号化によるアクセス制御においても、対応することができるようになる。暗号化によるアクセス制御はデータ保存者がデータを盗み見る可能性を心配する必要がないという意味において、強力な方法である。この様な強力な方法に対して、複数の利用者を一括りにしてアクセス権限を設定可能にし、また随時利用者の追加と失効を可能にする方法を提供することができることは、データ保存サービスの利用対象を大きく広げるものである。   In particular, it is possible to flexibly control access to data by designating the authority of users who can decrypt data and changing the set of users who can decrypt data. Access control in many data storage services is required to be able to be revoked in addition to control of access authority by authority and user subscription. Such a request can be accommodated also in access control by encryption. Access control by encryption is a powerful method in the sense that the data custodian does not have to worry about the possibility of stealing data. In contrast to this powerful method, it is possible to set access rights for multiple users at once, and to provide a method that allows users to be added and revoked at any time. This broadens the usage target of.

なお、図10では、本データ保持システムが、ハイブリッド暗号を利用してデータを暗号化し、保持する場合の構成例を示したが、ハイブリッド暗号を利用せずに、直接データを本発明の暗号方式を用いて暗号化し、保持するようにしてもよい。そのような場合には、例えば、図11に示すような構成であってもよい。   FIG. 10 shows an example of a configuration in which the data holding system encrypts and holds data using the hybrid cipher, but the data is directly transferred to the encryption method of the present invention without using the hybrid cipher. It is also possible to encrypt and hold using. In such a case, for example, a configuration as shown in FIG. 11 may be used.

図11は、本実施形態のデータ保持システムの他の構成例を示すブロック図である。図11に示すデータ保持システムは、暗号化装置32が、ハイブリッド暗号化部321に代わって、単に暗号化部13を備えている点が異なる。また、復号装置34が、ハイブリッド復号部341に代わって、単に復号部14を備えている点が異なる。それにより、暗号化部13での暗号化対象がメッセージ鍵208ではなく平文(文書)219となっており、復号部14での復号対象が、メッセージ鍵の暗号文209ではなく、文書の暗号文220となっており、データ保持部331の保持対象が暗号データセットではなく、文書の暗号文220となっているが、基本的な動作は図10の場合と同様である。   FIG. 11 is a block diagram showing another configuration example of the data holding system of this embodiment. The data holding system shown in FIG. 11 is different in that the encryption device 32 simply includes the encryption unit 13 instead of the hybrid encryption unit 321. Further, the decoding device 34 is different from the hybrid decoding unit 341 in that it simply includes the decoding unit 14. Thereby, the encryption target in the encryption unit 13 is not the message key 208 but the plaintext (document) 219, and the decryption target in the decryption unit 14 is not the message key ciphertext 209 but the ciphertext of the document. 220, and the data storage unit 331 retains the ciphertext 220 of the document, not the cipher data set, but the basic operation is the same as in FIG.

図12は、発明の概要を示すブロック図である。図12に示すように、本発明の暗号システムは、設定手段101と、鍵導出手段102と、暗号化手段103と、復号手段104と、代理鍵生成手段105と、再暗号化手段106とを備える。   FIG. 12 is a block diagram showing an outline of the invention. As shown in FIG. 12, the encryption system of the present invention includes setting means 101, key derivation means 102, encryption means 103, decryption means 104, proxy key generation means 105, and re-encryption means 106. Prepare.

設定手段101(例えば、設定部11)は、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵を生成する。   The setting unit 101 (for example, the setting unit 11) is a part that is changed in accordance with a change of a user set that is a set of users that can be decrypted, in addition to a main body generated by a method that complies with a functional encryption method. A public key and a master key including an update unit, which is a part in which a value based on a public key update factor selected at random is set, are generated.

鍵導出手段102(例えば、鍵導出部12)は、公開鍵、マスタ鍵、述語ベクトルおよび利用者識別子が入力されると、利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、マスタ鍵と述語ベクトルと利用者識別因子とに基づいて生成される述語部と、利用者識別因子とマスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成する。   When the public key, the master key, the predicate vector, and the user identifier are input, the key derivation unit 102 (for example, the key derivation unit 12) determines a user identification factor that is unique to the user and that the user does not know. And generating a secret key including a predicate part generated based on the master key, the predicate vector, and the user identification factor, and a user-dependent value cancellation part generated based on the user identification factor and the master key. Generate.

暗号化手段103(例えば、暗号化部13)は、関数型暗号方式に準拠した方法により、属性ベクトルを指定して暗号文を生成する。   The encryption unit 103 (for example, the encryption unit 13) generates an encrypted text by designating an attribute vector by a method compliant with the functional encryption method.

復号手段104(例えば、復号部14)は、公開鍵、秘密鍵および暗号文が入力されると、暗号文と秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、暗号文と秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて暗号文を復号する。   The decryption means 104 (for example, the decryption unit 14) is used when generating the secret key based on the ciphertext and the predicate part of the secret key when the public key, the secret key, and the ciphertext are input. Generates a user-dependent value that depends on the user identification factor, and generates a user-dependent value cancellation value for canceling the user-dependent value based on the ciphertext and the user-dependent value cancellation unit of the secret key Then, the ciphertext is decrypted using the generated user-dependent value and user-dependent value cancellation value.

代理鍵生成手段105(例えば、代理鍵生成部15)は、公開鍵とマスタ鍵と変更後の利用者集合とが入力されると、公開鍵更新因子を新たに生成して、生成された公開鍵更新因子に基づいて、公開鍵の更新部と、秘密鍵の更新部分である更新鍵と、マスタ鍵の更新部とを生成するとともに、生成された公開鍵更新因子と、変更前の公開鍵から得られる公開鍵更新因子と変更前のマスタ鍵とに基づいて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文を変更後の利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵と、マスタ鍵の更新部とを生成する。   When the public key, the master key, and the changed user set are input, the proxy key generation unit 105 (for example, the proxy key generation unit 15) newly generates a public key update factor and generates the generated public key. Based on the key update factor, a public key update unit, an update key that is a secret key update unit, and a master key update unit are generated, and the generated public key update factor and the public key before change are generated. The ciphertext that can be decrypted with the private key of the user belonging to the user set before the change based on the public key update factor obtained from the master key before the change and the secret key of the user belonging to the user set after the change A proxy key for conversion into a ciphertext that can be decrypted by the user and a master key update unit are generated.

また、鍵導出手段102は、利用者識別因子をその成分に含むベクトルと行列である公開鍵の一成分との積である述語部と、2以上の成分からなり、そのうちの2つが公開鍵の1つの要素と利用者識別因子の積からなる項を含む利用者依存値打消部とを含む秘密鍵を生成してもよい。   The key derivation unit 102 includes a predicate part that is a product of a vector including a user identification factor in its component and one component of the public key that is a matrix, and two or more components, two of which are public key A secret key including a user-dependent value canceling unit including a term composed of a product of one element and a user identification factor may be generated.

また、復号手段104は、入力された暗号文の一部と秘密鍵の述語部とを用いて双線形写像を計算することによって、利用者依存値を生成し、また、入力された暗号文の一部と秘密鍵の利用者依存値打消部とを用いて双線形写像を計算することによって、利用者依存値打消値を生成してもよい。   Further, the decryption means 104 generates a user-dependent value by calculating a bilinear mapping using a part of the input ciphertext and the predicate part of the secret key, and also generates a user-dependent value. A user-dependent value cancellation value may be generated by calculating a bilinear map using a part and a user-dependent value cancellation unit of the secret key.

また、代理鍵生成手段105は、公開鍵更新因子をマスタ鍵の更新部に含ませるとともに、新たに生成した公開鍵更新因子を変更前のマスタ鍵の一部で割った値を含む代理鍵を生成し、かつ更新鍵を、述語ベクトルを要せずに、新しいマスタ鍵から生成される秘密鍵の一部として生成してもよい。   In addition, the proxy key generation unit 105 includes a public key update factor in the master key update unit, and a proxy key including a value obtained by dividing the newly generated public key update factor by a part of the master key before the change. The update key may be generated as part of a secret key generated from a new master key without requiring a predicate vector.

このような構成を備えることによって、復号可否を属性単位で制御可能にしつつそのメンバの変更に対して安全にかつ効率よく対応できる。   By providing such a configuration, it is possible to safely and efficiently respond to changes in the member while making it possible to control whether or not decryption is possible on an attribute basis.

この出願は、2012年11月30日に出願された日本特許出願2012−262555を基礎とする優先権を主張し、その開示の全てをここに取り込む。   This application claims the priority on the basis of the JP Patent application 2012-262555 for which it applied on November 30, 2012, and takes in those the indications of all here.

以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   Although the present invention has been described with reference to the embodiments, the present invention is not limited to the above-described embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.

産業上の利用の可能性Industrial applicability

本発明は、秘匿性のあるデータの受け渡しをネットワークを介して行う用途であって、そのデータへのアクセス制御を組織等属性単位で指定したい場合に好適に適用可能である。   The present invention can be suitably applied to a case in which confidential data is transferred via a network and access control to the data is desired to be specified in attribute units such as an organization.

11 設定部
12 鍵導出部
13 暗号化部
14 復号部
15 代理鍵生成部
16 再暗号化部
101 設定手段
102 鍵導出手段
103 暗号化手段
104 復号手段
105 代理鍵生成手段
106 再暗号化手段
201 公開鍵
202 マスタ鍵
203 述語ベクトル
204 利用者識別子
205 利用者識別因子
206 秘密鍵
2061 述語部
2061 利用者依存値打消部
207 属性ベクトル
208,210 平文(メッセージ鍵または文書)
209 暗号文(メッセージ鍵または文書)
211 変更後の利用者集合
212 更新鍵
213 代理鍵
214 利用者依存値
215 利用者依存値打消値
216 公開鍵更新因子
217 公開鍵の更新部
218 マスタ鍵の更新部
219,221 文書
220 文書の暗号文
31 管理装置
32 暗号化装置
321 ハイブリッド暗号化部
322 第2の暗号化部
33 データ保持・再暗号化装置
331 データ保持部
34 復号装置
341 ハイブリッド復号部
342 第2の復号部
DESCRIPTION OF SYMBOLS 11 Setting part 12 Key derivation part 13 Encryption part 14 Decryption part 15 Proxy key generation part 16 Re-encryption part 101 Setting means 102 Key derivation means 103 Encryption means 104 Decryption means 105 Proxy key generation means 106 Re-encryption means 201 Disclosure Key 202 Master key 203 Predicate vector 204 User identifier 205 User identification factor 206 Private key 2061 Predicate part 2061 User dependent value cancellation part 207 Attribute vector 208,210 Plain text (message key or document)
209 Ciphertext (message key or document)
211 User set after change 212 Update key 213 Proxy key 214 User dependent value 215 User dependent value cancellation value 216 Public key update factor 217 Public key update unit 218 Master key update unit 219, 221 Document 220 Document encryption Sentence 31 Management device 32 Encryption device 321 Hybrid encryption unit 322 Second encryption unit 33 Data holding / re-encryption device 331 Data holding unit 34 Decryption device 341 Hybrid decryption unit 342 Second decryption unit

Claims (10)

関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵を生成する設定手段と、
公開鍵、マスタ鍵、述語ベクトルおよび利用者識別子が入力されると、利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、前記マスタ鍵と前記述語ベクトルと前記利用者識別因子とに基づいて生成される述語部と、前記利用者識別因子と前記マスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成する鍵導出手段と、
関数型暗号方式に準拠した方法により、属性ベクトルを指定して暗号文を生成する暗号化手段と、
公開鍵、秘密鍵および暗号文が入力されると、前記暗号文と前記秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、前記暗号文と前記秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて前記暗号文を復号する復号手段と、
公開鍵とマスタ鍵と変更後の利用者集合とが入力されると、公開鍵更新因子を新たに生成して、生成された公開鍵更新因子に基づいて、公開鍵の更新部と、秘密鍵の更新部分である更新鍵と、マスタ鍵の更新部とを生成するとともに、生成された公開鍵更新因子と、変更前の公開鍵から得られる公開鍵更新因子と変更前のマスタ鍵とに基づいて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文を変更後の利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵と、マスタ鍵の更新部とを生成する代理鍵生成手段と、
前記代理鍵生成手段によって生成された代理鍵を用いて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文から、該暗号文の復号をせずに、変更後の利用者集合に属する利用者の秘密鍵で復号できる新たな暗号文を生成する再暗号化手段とを備えた
ことを特徴とする暗号システム。
In addition to the main part generated by a method that complies with the functional encryption method, a public key update factor that is randomly selected and is a part that is changed when the user set that can be decrypted is changed. A setting means for generating a public key and a master key including an update unit, which is a part in which a value based on is set;
When a public key, a master key, a predicate vector, and a user identifier are input, a user identification factor that is unique to the user and that the user does not know is generated, and the master key, the predescription vector, and the usage are generated. A key derivation unit that generates a secret key including a predicate part generated based on a user identification factor, and a user-dependent value cancellation part generated based on the user identification factor and the master key;
An encryption means for generating ciphertext by specifying an attribute vector by a method compliant with a functional cryptosystem;
When a public key, a secret key, and a ciphertext are input, based on the ciphertext and the predicate part of the secret key, a user dependency that depends on a user identification factor used to generate the secret key A user-dependent value cancellation value for canceling the user-dependent value based on the ciphertext and a user-dependent value cancellation unit for the secret key, and a generated user Decryption means for decrypting the ciphertext using a dependence value and a user dependence value cancellation value;
When the public key, the master key, and the changed user set are input, a public key update factor is newly generated, and based on the generated public key update factor, the public key update unit and the private key An update key that is an update part of the key and an update part of the master key, and based on the generated public key update factor, the public key update factor obtained from the public key before change, and the master key before change A proxy key for converting a ciphertext that can be decrypted with the private key of the user belonging to the user set before the change into a ciphertext that can be decrypted with the private key of the user belonging to the user set after the change, and a master key Proxy key generation means for generating the update part of
The user after the change without decrypting the ciphertext from the ciphertext that can be decrypted with the secret key of the user belonging to the user set before the change using the proxy key generated by the proxy key generation means An encryption system comprising: re-encryption means for generating new ciphertext that can be decrypted with a private key of a user belonging to the set.
鍵導出手段は、利用者識別因子をその成分に含むベクトルと行列である公開鍵の一成分との積である述語部と、2以上の成分からなり、そのうちの2つが公開鍵の1つの要素と前記利用者識別因子の積からなる項を含む利用者依存値打消部とを含む秘密鍵を生成する
請求項1に記載の暗号システム。
The key derivation means comprises a predicate part that is a product of a vector including a user identification factor in its component and one component of the public key that is a matrix, and two or more components, two of which are one element of the public key The encryption system according to claim 1, wherein a secret key including a user-dependent value canceling unit including a term composed of a product of the user identification factor and the user identification factor is generated.
復号手段は、入力された暗号文の一部と秘密鍵の述語部とを用いて双線形写像を計算することによって、利用者依存値を生成し、
前記復号手段は、入力された暗号文の一部と秘密鍵の利用者依存値打消部とを用いて双線形写像を計算することによって、利用者依存値打消値を生成する
請求項2に記載の暗号システム。
The decryption means generates a user-dependent value by calculating a bilinear map using a part of the input ciphertext and the predicate part of the secret key,
The decryption unit generates a user-dependent value cancellation value by calculating a bilinear map using a part of the input ciphertext and a user-dependent value cancellation unit of a secret key. Cryptosystem.
代理鍵生成手段は、公開鍵更新因子をマスタ鍵の更新部に含ませるとともに、新たに生成した公開鍵更新因子を変更前のマスタ鍵の一部で割った値を含む代理鍵を生成し、かつ更新鍵を、述語ベクトルを要せずに、新しいマスタ鍵から生成される秘密鍵の一部として生成する
請求項1から請求項3のうちのいずれか1項に記載の暗号システム。
The proxy key generation means includes a public key update factor in the master key update unit, and generates a proxy key including a value obtained by dividing the newly generated public key update factor by a part of the master key before the change, The encryption system according to any one of claims 1 to 3, wherein the update key is generated as a part of a secret key generated from a new master key without requiring a predicate vector.
データの管理者が使用する管理装置と、暗号化されたデータを保存するデータ保存者が使用するデータ保存装置と、復号装置と、暗号装置とを備え、
前記管理装置は、
関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵を生成する設定手段と、
公開鍵、マスタ鍵、述語ベクトルおよび利用者識別子が入力されると、利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、前記マスタ鍵と前記述語ベクトルと前記利用者識別因子とに基づいて生成される述語部と、前記利用者識別因子と前記マスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成する鍵導出手段と、
公開鍵とマスタ鍵と変更後の利用者集合とが入力されると、公開鍵更新因子を新たに生成して、生成された公開鍵更新因子に基づいて、公開鍵の更新部と、秘密鍵の更新部分である更新鍵と、マスタ鍵の更新部とを生成するとともに、生成された公開鍵更新因子と、変更前の公開鍵から得られる公開鍵更新因子と変更前のマスタ鍵とに基づいて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文を変更後の利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵と、マスタ鍵の更新部とを生成する代理鍵生成手段とを含み、
前記データ保存装置は、
前記代理鍵生成手段によって生成された代理鍵を用いて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文から、該暗号文を復号せずに、変更後の利用者集合に属する利用者の秘密鍵で復号できる新たな暗号文を生成する再暗号化手段と、
前記再暗号化手段によって暗号化されたデータを保存する記憶手段とを含み、
前記暗号化装置は、
関数型暗号方式に準拠した方法により、属性ベクトルを指定して暗号文を生成する暗号化手段を含み、
前記復号装置は、
公開鍵、秘密鍵および暗号文が入力されると、前記暗号文と前記秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、前記暗号文と前記秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて前記暗号文を復号する復号手段を含む
ことを特徴とするデータ保存システム。
A management device used by a data administrator, a data storage device used by a data storage user for storing encrypted data, a decryption device, and an encryption device,
The management device
In addition to the main part generated by a method that complies with the functional encryption method, a public key update factor that is randomly selected and is a part that is changed when the user set that can be decrypted is changed. A setting means for generating a public key and a master key including an update unit, which is a part in which a value based on is set;
When a public key, a master key, a predicate vector, and a user identifier are input, a user identification factor that is unique to the user and that the user does not know is generated, and the master key, the predescription vector, and the usage are generated. A key derivation unit that generates a secret key including a predicate part generated based on a user identification factor, and a user-dependent value cancellation part generated based on the user identification factor and the master key;
When the public key, the master key, and the changed user set are input, a public key update factor is newly generated, and based on the generated public key update factor, the public key update unit and the private key An update key that is an update part of the key and an update part of the master key, and based on the generated public key update factor, the public key update factor obtained from the public key before change, and the master key before change A proxy key for converting a ciphertext that can be decrypted with the private key of the user belonging to the user set before the change into a ciphertext that can be decrypted with the private key of the user belonging to the user set after the change, and a master key Proxy key generation means for generating
The data storage device includes:
Using the proxy key generated by the proxy key generation means, from the ciphertext that can be decrypted with the private key of the user belonging to the user set before the change, the user set after the change without decrypting the ciphertext Re-encryption means for generating new ciphertext that can be decrypted with the private key of the user belonging to
Storage means for storing the data encrypted by the re-encryption means,
The encryption device is:
Including encryption means for generating ciphertext by specifying an attribute vector by a method compliant with the functional cryptosystem;
The decoding device
When a public key, a secret key, and a ciphertext are input, based on the ciphertext and the predicate part of the secret key, a user dependency that depends on a user identification factor used to generate the secret key A user-dependent value cancellation value for canceling the user-dependent value based on the ciphertext and a user-dependent value cancellation unit for the secret key, and a generated user A data storage system comprising decryption means for decrypting the ciphertext using a dependence value and a user dependence value cancellation value.
関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵と、述語ベクトルと、利用者識別子とが入力されると、利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、前記マスタ鍵と前記述語ベクトルと前記利用者識別因子とに基づいて生成される述語部と、前記利用者識別因子と前記マスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成する鍵導出手段を備えた
ことを特徴とする鍵導出装置。
In addition to the main part generated by a method that complies with the functional encryption method, a public key update factor that is randomly selected and is a part that is changed when the user set that can be decrypted is changed. When a public key and master key including an update unit, a predicate vector, and a user identifier are input, a value that is set based on, a user that is unique to the user and is unknown to the user Generating an identification factor, a predicate portion generated based on the master key, a predescription vector, and the user identification factor; and a user dependency generated based on the user identification factor and the master key A key derivation device comprising key derivation means for generating a secret key including a value cancellation unit.
関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を少なくとも含む公開鍵と、述語ベクトルが指定された秘密鍵であって、利用者に固有でかつ利用者も知ることのない利用者識別因子と前記マスタ鍵と述語ベクトルとに基づく述語部と、前記利用者識別因子と前記マスタ鍵とに基づく利用者依存値打消部とを含む秘密鍵と、暗号文とが入力されると、前記暗号文と前記秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、前記暗号文と前記秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて前記暗号文を復号する復号手段を備えた
ことを特徴とする復号装置。
In addition to the main part generated by a method that complies with the functional encryption method, a public key update factor that is randomly selected and is a part that is changed when the user set that can be decrypted is changed. A public key including at least an update unit, which is a part to which a value based on the above is set, a secret key to which a predicate vector is designated, a user identification factor that is unique to the user and that the user does not know, and When a secret key including a predicate part based on a master key and a predicate vector, a user-dependent value cancellation part based on the user identification factor and the master key, and ciphertext are input, the ciphertext Based on the predicate part of the secret key, a user-dependent value depending on a user identification factor used when generating the secret key is generated, and a user-dependent value of the ciphertext and the secret key On the basis of the cancellation part A decryption unit that generates a user-dependent value cancellation value for canceling the user-dependent value and decrypts the ciphertext using the generated user-dependent value and the user-dependent value cancellation value. A characteristic decoding apparatus.
関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を少なくとも含む公開鍵と、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を少なくとも含むマスタ鍵と、変更後の利用者集合とが入力されると、公開鍵更新因子を新たに生成して、生成された公開鍵更新因子に基づいて、公開鍵の更新部と、秘密鍵の更新部分である更新鍵と、マスタ鍵の更新部とを生成するとともに、生成された公開鍵更新因子と、変更前の公開鍵から得られる公開鍵更新因子と変更前のマスタ鍵とに基づいて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文を変更後の利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵と、マスタ鍵の更新部とを生成する代理鍵生成手段を備えた
ことを特徴とする代理鍵生成装置。
In addition to the main part generated by a method that complies with the functional encryption method, a public key update factor that is randomly selected and is a part that is changed when the user set that can be decrypted is changed. In addition to the public key that includes at least the update part, which is the part for which values are set based on the URL, and the main part that is generated by a method that complies with the functional encryption method, the user set that is the set of users that can be decrypted is changed. When a master key including at least an updating unit that is a part to be changed along with a value set based on a public key update factor selected at random and a user set after the change are input , A new public key update factor is generated, and based on the generated public key update factor, a public key update unit, an update key that is a secret key update unit, and a master key update unit are generated Is generated with After changing the ciphertext that can be decrypted with the private key of the user belonging to the user set before the change based on the public key update factor, the public key update factor obtained from the public key before the change, and the master key before the change A proxy key generating device comprising: a proxy key for converting a ciphertext that can be decrypted with a secret key of a user belonging to a set of users and a master key update unit .
秘匿性のあるデータの受け渡しをネットワークを介して行うためのデータ処理方法であって、
関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵を生成し、
データの復号を許可する利用者ごとに、該利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、前記マスタ鍵と述語ベクトルと前記利用者識別因子とに基づいて生成される述語部と、前記利用者識別因子と前記マスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成し、
データ、または、前記データの暗号文を復号する際に用いるメッセージ鍵を、属性ベクトルを指定して暗号化し、
データの暗号文または前記メッセージ鍵の暗号文を受け取ると、受け取った暗号文と、当該利用者が所持している秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、前記暗号文と前記秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて前記暗号文を復号する
ことを特徴とするデータ処理方法。
A data processing method for transferring confidential data via a network,
In addition to the main part generated by a method that complies with the functional encryption method, a public key update factor that is randomly selected and is a part that is changed when the user set that can be decrypted is changed. Generate a public key and a master key including an update part that is a part to which a value based on is set,
For each user who is permitted to decrypt data, a user identification factor that is unique to the user and that the user does not know is generated and generated based on the master key, the predicate vector, and the user identification factor. A secret key including a predicate part to be generated, and a user-dependent value cancellation part generated based on the user identification factor and the master key,
Data or a message key used when decrypting the ciphertext of the data is encrypted by specifying an attribute vector,
When the ciphertext of data or the ciphertext of the message key is received, it was used to generate the secret key based on the received ciphertext and the predicate part of the secret key possessed by the user A user-dependent value cancellation value for generating a user-dependent value depending on a user identification factor and canceling the user-dependent value based on the ciphertext and a user-dependent value cancellation unit of the secret key And decrypting the ciphertext using the generated user-dependent value and user-dependent value cancellation value.
復号できる利用者の集合である利用者集合が変更されると、公開鍵更新因子を新たに生成して、生成された公開鍵更新因子に基づいて、公開鍵の更新部と、秘密鍵の更新部分である更新鍵と、マスタ鍵の更新部とを生成するとともに、生成された公開鍵更新因子と、変更前の公開鍵から得られる公開鍵更新因子と、変更前のマスタ鍵とに基づいて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文を変更後の利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵と、マスタ鍵の更新部とを生成し、
生成された代理鍵を用いて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文から、該暗号文を復号せずに、変更後の利用者集合に属する利用者の秘密鍵で復号できる新たな暗号文を生成する
請求項9に記載のデータ処理方法。
When the set of users that can be decrypted is changed, a public key update factor is newly generated, and based on the generated public key update factor, the public key update unit and the private key update And generating an update key that is a part and an update part of the master key, and based on the generated public key update factor, the public key update factor obtained from the public key before the change, and the master key before the change The proxy key for converting the ciphertext that can be decrypted with the private key of the user belonging to the user set before the change into the ciphertext that can be decrypted with the private key of the user belonging to the user set after the change, and the master key An update part and
Using the generated proxy key, from the ciphertext that can be decrypted with the secret key of the user belonging to the user set before the change, the secret of the user belonging to the user set after the change without decrypting the ciphertext The data processing method according to claim 9, wherein a new ciphertext that can be decrypted with a key is generated.
JP2014549787A 2012-11-30 2013-11-12 Cryptographic system, data storage system, and apparatus and method used therefor Active JP6115573B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012262555 2012-11-30
JP2012262555 2012-11-30
PCT/JP2013/006640 WO2014083784A1 (en) 2012-11-30 2013-11-12 Cryptosystem, data storage system, and device and method therefor

Publications (2)

Publication Number Publication Date
JPWO2014083784A1 JPWO2014083784A1 (en) 2017-01-05
JP6115573B2 true JP6115573B2 (en) 2017-04-19

Family

ID=50827447

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014549787A Active JP6115573B2 (en) 2012-11-30 2013-11-12 Cryptographic system, data storage system, and apparatus and method used therefor

Country Status (2)

Country Link
JP (1) JP6115573B2 (en)
WO (1) WO2014083784A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6270683B2 (en) * 2014-10-03 2018-01-31 三菱電機株式会社 Encryption system, encryption method, universal re-encryption key generation device, and re-encryption key generation device
WO2016103960A1 (en) * 2014-12-25 2016-06-30 国立大学法人 東京大学 Control device, statistical analysis device, decoding device and transmitting device
US10592682B2 (en) 2015-02-20 2020-03-17 Mitsubishi Electric Corporation Data storage apparatus, data processing method, and computer readable medium adding a user attribute of a revoked user to an embedded decryption condition while encrypted data remains in an encrypted state
CN107251480B (en) * 2015-02-20 2018-07-10 三菱电机株式会社 Data storing device, data update system and data processing method
WO2016162941A1 (en) 2015-04-07 2016-10-13 三菱電機株式会社 Encryption system and key generating device
JP6636301B2 (en) * 2015-10-19 2020-01-29 鈴木 秀一 Data transmission system and data transmission method
US10691815B2 (en) 2016-04-27 2020-06-23 Mitsubishi Electric Corporation Attribute linkage apparatus, transfer system, attribute linkage method and computer readable medium
JP2019128640A (en) * 2018-01-22 2019-08-01 ヤフー株式会社 Providing apparatus, providing method and providing program
JP6949276B2 (en) * 2019-05-24 2021-10-13 三菱電機株式会社 Re-encrypting device, re-encrypting method, re-encrypting program and cryptosystem

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8615668B2 (en) * 2010-01-15 2013-12-24 Mitsubishi Electric Corporation Confidential search system and cryptographic processing system

Also Published As

Publication number Publication date
WO2014083784A1 (en) 2014-06-05
JPWO2014083784A1 (en) 2017-01-05

Similar Documents

Publication Publication Date Title
JP6115573B2 (en) Cryptographic system, data storage system, and apparatus and method used therefor
Liang et al. Searchable attribute-based mechanism with efficient data sharing for secure cloud storage
Liang et al. Attribute based proxy re-encryption with delegating capabilities
US7657037B2 (en) Apparatus and method for identity-based encryption within a conventional public-key infrastructure
Chung et al. A Study of Attribute-based Proxy Re-encryption Scheme in Cloud Environments.
US20150067330A1 (en) Method and system for network data access
US20140208117A1 (en) Server apparatus and program
CN107359986A (en) The outsourcing encryption and decryption CP ABE methods of user revocation
CN104735070B (en) A kind of data sharing method between general isomery encryption cloud
CN102624522A (en) Key encryption method based on file attribution
Jin et al. A secure and lightweight data access control scheme for mobile cloud computing
WO2014034018A1 (en) Re-encryption system, re-encryption method and re-encryption program
JP5047638B2 (en) Ciphertext decryption right delegation system
JP2012169978A (en) File server device and file server system
CN101707524B (en) Method for encrypting public key broadcasts with hierarchical relationship
Sammy et al. An efficient blockchain based data access with modified hierarchical attribute access structure with CP-ABE using ECC scheme for patient health record
Lv et al. A secure and efficient revocation scheme for fine-grained access control in cloud storage
Chaudhari et al. A review on attribute based encryption
Wu et al. A trusted and efficient cloud computing service with personal health record
Sanchol et al. A mobile cloud-based access control with efficiently outsourced decryption
Mo et al. A dynamic re-encrypted ciphertext-policy attributed-based encryption scheme for cloud storage
Li et al. An efficient hierarchical identity-based encryption scheme for the key escrow
JP2008176040A (en) Key management method, key creation method, code processing method, transfer method for decryption authority, and communication network system
Sethia et al. Selective IoT access with scalable CP-ABE revocation and delegation
Parit et al. Ciphertext Policy Attribute Based Encryption

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161004

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170306

R150 Certificate of patent or registration of utility model

Ref document number: 6115573

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150