WO2012098649A1 - 暗号システム、暗号システムの暗号処理方法、暗号化装置、暗号化プログラム、復号装置、復号プログラム、セットアップ装置、セットアッププログラム、鍵生成装置、鍵生成プログラム、鍵委譲装置および鍵委譲プログラム - Google Patents

暗号システム、暗号システムの暗号処理方法、暗号化装置、暗号化プログラム、復号装置、復号プログラム、セットアップ装置、セットアッププログラム、鍵生成装置、鍵生成プログラム、鍵委譲装置および鍵委譲プログラム Download PDF

Info

Publication number
WO2012098649A1
WO2012098649A1 PCT/JP2011/050778 JP2011050778W WO2012098649A1 WO 2012098649 A1 WO2012098649 A1 WO 2012098649A1 JP 2011050778 W JP2011050778 W JP 2011050778W WO 2012098649 A1 WO2012098649 A1 WO 2012098649A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
key
hierarchy
identifier
user
Prior art date
Application number
PCT/JP2011/050778
Other languages
English (en)
French (fr)
Inventor
充洋 服部
貴人 平野
拓海 森
伊藤 隆
松田 規
勉 坂上
Original Assignee
三菱電機株式会社
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 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to CN201180065310.6A priority Critical patent/CN103329478B/zh
Priority to JP2012553498A priority patent/JP5501482B2/ja
Priority to PCT/JP2011/050778 priority patent/WO2012098649A1/ja
Priority to EP11856496.2A priority patent/EP2667538A4/en
Priority to US13/980,176 priority patent/US9276746B2/en
Publication of WO2012098649A1 publication Critical patent/WO2012098649A1/ja

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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0847Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
    • 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
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms

Definitions

  • anonymity may be an essential property. For example, consider a case where a ciphertext of a hierarchical ID-based ciphertext is sent to a specific user using an Internet bulletin board or file server.
  • a method without anonymity is used. It is not possible. This is because the destination is leaked by analyzing the ciphertext. Therefore, anonymity is essential in such cases.
  • the hierarchical ID-based encryption can be applied to a secret search.
  • the secret search is a technique for performing keyword search with encryption, and is also called searchable encryption.
  • anonymity is indispensable. This is because the ID in the ID-based encryption corresponds to the keyword in the secret search, and there is no anonymity (that is, the ID leaks) and the keyword leaks.
  • a “group shared public key secret search method” can be realized by applying the “wild card-compatible hierarchical ID-based encryption method” to the field of public key secret search (non-patent document). Reference 2).
  • the “Group Shared Public Key Secret Search Method” one ciphertext can be shared within the group, and each user in the group creates a search query for the ciphertext using his / her private key. Can do.
  • the “anonymity hierarchical ID-based encryption method for wild cards” described in Non-Patent Document 2 is based on the fact that the number of pairing operations that takes the longest in the decryption operation is proportional to the height of the hierarchy. It is difficult to use in organizations with a large hierarchy, such as government offices. The number of pairing operations is proportional to the height of the hierarchy. The number of elements proportional to the height of the hierarchy is included as components of the ciphertext, and each of them must be paired when decrypting. This is because it must be done.
  • Non-Patent Document 2 is similar to “anonymity hierarchical ID-based encryption method for wild cards”, and the number of pairing operations in the search operation is the number of layers. It is difficult to use in large-scale organizations such as large corporations and government offices.
  • Non-Patent Document 2 discloses a method for realizing a “group shared public key secret search method” using “anonymity hierarchical ID-based encryption method compatible with wild cards”. A more general method for realizing the “public key secret search method” is not disclosed. Therefore, there is a problem that there are few options when configuring the “group shared public key secret search method”.
  • Non-Patent Document 2 discloses a method of sharing a ciphertext within a group and joining a member to the group in the “group shared public key secret search method”. Not disclosed. In addition, a method for revoking the member itself regardless of joining / withdrawing is not disclosed. Therefore, there is a problem that it is difficult to use in an organization where there is a transfer, secondment or retirement.
  • the present invention aims at, for example, the following.
  • An object of the present invention is to provide a method in which the number of pairing operations during a decryption operation is not proportional to the number of layers and is a fixed number in the anonymity hierarchical ID-based encryption method that supports wild cards.
  • the data M is encrypted to calculate plaintext encrypted value C 0, it was included as a pattern value to each layer one of the blank value, which means the wildcard value and unnecessary hierarchy means hierarchical identifier and any user pattern P is input, and the layer whose pattern value is a wildcard value is determined as a wildcard layer based on the input pattern P, and is associated with the wildcard layer from the H key value group included in the input public key PK.
  • extract was a key value H as a wildcard key values using the extracted wildcard key value to calculate a wildcard encrypted value C 1 used for decoding of the plaintext encryption value C 0, enter putter A layer whose pattern value is a layer identifier is determined as an identification layer based on P, and a key value H associated with the identification layer is extracted as an identification key value from an H key value group included in the input public key PK Then, using the extracted identification key value, an identification encryption value C 3 used for decrypting the plaintext encryption value C 0 is calculated, and the calculated plaintext encryption value C 0 , wildcard encryption value C 1 , identification encryption value C 3 , And ciphertext data CT including the wildcard hierarchy value W indicating the wildcard hierarchy is generated, and the generated ciphertext data CT is output.
  • the decryption device inputs the ciphertext data CT and the user identifier ID, and from the user identifier ID input based on the wildcard hierarchy value W included in the input ciphertext data CT, the hierarchy identifier of the wildcard hierarchy extracting as a wildcard identifier, extracted wildcard identifier wildcard encrypted value C 1 included in the encrypted data CT input the identification cryptographic value C 3 and the plaintext encryption included in the ciphertext data CT input with The value C 0 is decrypted, and the plain text data M obtained by decrypting the plain text cipher value C 0 is output.
  • the number of pairing operations during a decryption operation is not proportional to the number of layers, but is a fixed number.
  • FIG. 1 is a configuration diagram of a hierarchical ID-based encryption system 100 according to Embodiment 1.
  • FIG. 2 is a diagram illustrating an example of a hierarchical structure of a hierarchical ID-based cryptographic system 100 according to Embodiment 1.
  • FIG. 3 is a diagram illustrating an example of a user identifier ID of the hierarchical ID-based cryptographic system 100 according to Embodiment 1.
  • FIG. 3 is a diagram illustrating an example of a pattern P of the hierarchical ID-based encryption system 100 according to the first embodiment.
  • FIG. 2 is a schematic diagram of a setup device 200 according to the first embodiment. 2 is a functional configuration diagram of a setup device 200 according to Embodiment 1.
  • FIG. 1 is a schematic diagram of a decoding device 300 according to Embodiment 1.
  • FIG. FIG. 3 is a functional configuration diagram of a decoding device 300 according to the first embodiment.
  • FIG. 3 is a schematic diagram of an encryption apparatus 400 according to Embodiment 1.
  • 2 is a functional configuration diagram of an encryption device 400 according to Embodiment 1.
  • FIG. 4 is a flowchart showing a decoding method performed by the decoding device 300 according to the first embodiment.
  • FIG. 5 is a configuration diagram of a public key secret search system 110 according to Embodiment 3.
  • FIG. 9 is a schematic diagram of a decoding device 300 according to Embodiment 3.
  • FIG. 9 is a schematic diagram of a search device 500 according to Embodiment 3.
  • FIG. 10 is a functional configuration diagram of a search device 500 in a third embodiment.
  • FIG. 10 is a diagram illustrating an example of a hierarchical structure of a hierarchical ID-based encryption system 100 according to Embodiment 3.
  • 10 shows an example of a pattern PW of the hierarchical ID-based encryption system 100 in the third embodiment.
  • 10 is a flowchart showing an encryption method by the encryption apparatus 400 according to the third embodiment.
  • 10 is a flowchart illustrating a query generation method performed by the decryption device 300 according to the third embodiment.
  • 10 is a flowchart showing a search method by search device 500 in the third embodiment.
  • FIG. 15 shows an example of a user identifier ID in the fourth embodiment.
  • FIG. 18 is a diagram showing an example of a deleter list in the fourth embodiment.
  • 10 is a flowchart showing a search method of search apparatus 500 according to Embodiment 4.
  • FIG. 18 shows an example of a user identifier ID in the fifth embodiment.
  • FIG. 16 shows an example of a pattern P in the fifth embodiment.
  • Embodiment 1 A method of realizing “anonymity hierarchical ID-based encryption scheme for wild card” will be described.
  • FIG. 1 is a configuration diagram of a hierarchical ID-based encryption system 100 according to the first embodiment. The configuration of the hierarchical ID-based encryption system 100 according to Embodiment 1 will be described with reference to FIG.
  • the hierarchical ID-based encryption system 100 (an example of an encryption system) includes a setup device 200 (an example of a key generation device), a decryption device 300 (an example of a key transfer device), and an encryption device 400.
  • the setup device 200, the decryption device 300, and the encryption device 400 are connected to a network and communicate with each other.
  • the hierarchical ID-based encryption system 100 includes a plurality of decryption apparatuses 300, and the setup apparatus 200 and the plurality of decryption apparatuses 300 form a tree-like hierarchical structure.
  • the setup device 200 forms the root of the hierarchical structure (the 0th layer)
  • the four decoding devices 300A-D form the 2 layers (the 1st and 2nd layers).
  • the decoding devices 300A and B constitute the first hierarchy
  • the decoding devices 300C and D constitute the second hierarchy with the decoding device 300A serving as the upper decoding device 300 (parent device).
  • the number of decoding devices 300 may be two or three, or may be five or more.
  • the plurality of decoding devices 300 may constitute three or more layers.
  • the setup device 200 generates a public key PK (public key data) that is commonly used by each decryption device 300 and also generates a user secret key SK for each decryption device 300 in the first layer.
  • the setup device 200 may generate the user secret key SK not only for the first layer but also for the decryption device 300 in the second and lower layers.
  • the encryption device 400 encrypts unencrypted data (hereinafter referred to as “plaintext data M”) to generate ciphertext data CT.
  • the decryption device 300 decrypts the ciphertext data CT generated by the encryption device 400 using the public key PK and its own user secret key SK, and generates plaintext data M.
  • the decryption device 300 generates a user secret key SK for each lower decryption device 300 (child device) using its own user secret key SK.
  • the decryption device 300A uses the user secret key SK (ID A ) of itself to obtain the user secret key SK (ID C ) for the decryption device 300C and the user secret key SK (ID D ) for the decryption device 300D. Generate.
  • FIG. 2 is a diagram illustrating an example of a hierarchical structure of the hierarchical ID-based cryptographic system 100 according to the first embodiment.
  • a hierarchical structure of Company A to which the hierarchical ID-based encryption system 100 is applied will be described with reference to FIG.
  • the hierarchical ID-based encryption system 100 can be applied to a company organization.
  • Company A has “Departments” such as General Affairs Department, Development Department, Public Relations Department, etc.
  • “Department” has “Divisions” such as Human Resources Division, Accounting Division, etc.
  • “person in charge” such as a training person.
  • “part” is treated as the first hierarchy
  • “section” as the second hierarchy
  • “person” as the third hierarchy
  • employees as the fourth hierarchy.
  • employees are not necessarily assigned to any “person”, and may be assigned directly to “parts” or “sections”.
  • Tanaka is a direct employee of the General Affairs Department.
  • Company A owns the setup device 200 and the encryption device 400.
  • Each “department” owns the decoding device 300 used by the general manager, each “section” owns the decoding device 300 used by the general manager, and each “section” owns the decoding device 300 used by the general manager. Furthermore, each employee owns the decryption device 300.
  • a “user identifier ID” that identifies each person is assigned to a general manager, a section manager, a general manager, and an employee (an example of each user).
  • data “pattern P” for encryption processing is defined in advance for each individual (user) or department (hierarchy).
  • FIG. 3 is a diagram illustrating an example of the user identifier ID of the hierarchical ID-based cryptographic system 100 according to the first embodiment.
  • a user identifier ID in the company A to which the hierarchical ID-based encryption system 100 is applied will be described with reference to FIG.
  • the user identifier ID is data including the same number of elements (identifiers) as the number of layers. That is, since the number of hierarchies of company A is “4” (see FIG. 2), the user identifier ID used by company A includes four elements.
  • is an element (blank value) meaning an unnecessary layer (a layer without corresponding information).
  • the user identifier ID 1 of the general affairs department manager is (general affairs department, ⁇ , ⁇ , ⁇ )
  • the user identifier ID 2 of the personnel department manager is (general affairs department, personnel department, ⁇ , ⁇ ).
  • the user identifier ID 5 of the hiring manager is (General Affairs Department, Human Resources Division, recruiting Staff, ⁇ )
  • Mr. Yamada's user identifier ID 6 is (General Affairs Department, Human Resources Division, recruiting Staff, Yamada).
  • the user identifier ID 8 of Mr. Tanaka who is an employee who reports directly to the General Affairs Department is (General Affairs Department, ⁇ , ⁇ , Tanaka).
  • the elements included in the user identifier ID can be freely determined such as numbers, letters, symbols, or combinations thereof.
  • the identifier “General Affairs Department” may be a character string or a number (integer value) associated with the General Affairs Department.
  • Hierarchy identifiers elements included in the user identifier ID are referred to as “hierarchy identifiers”.
  • FIG. 4 is a diagram illustrating an example of the pattern P of the hierarchical ID-based cryptographic system 100 according to the first embodiment.
  • the in-house pattern P to which the hierarchical ID-based encryption system 100 is applied will be described with reference to FIG.
  • the pattern P is data including the same number of elements (identifiers) as the number of layers. That is, since the number of hierarchies of company A is “4” (see FIG. 2), the pattern P used by company A includes four elements.
  • the pattern P 2 is for the employees belonging to the adoption of engagement (Affairs Department, Human Resources Department, adopted engagement, *), and the pattern P 5 for the section chief belonging to the General Affairs Department (General Affairs Department, *, ⁇ , ⁇ ) in the is there.
  • the pattern P 6 for the director or manager (*, *, ⁇ , ⁇ ) is, director, manager, pattern P 7 for the chief clerk or employee (*, *, *, *) is.
  • “*” is included in the pattern P for department or hierarchy, not for personal use.
  • pattern values elements included in the pattern P are referred to as “pattern values”.
  • each device constituting the hierarchical ID-based encryption system 100 will be described.
  • FIG. 5 is a schematic diagram of the setup device 200 according to the first embodiment. An overview of the setup device 200 according to the first embodiment will be described with reference to FIG.
  • the setup apparatus 200 includes a setup processing unit 210, a key generation processing unit 220, and a setup storage unit 290 (an example of a key generation storage unit).
  • the setup processing unit 210 receives the security parameter ⁇ and the layer number L, generates a public key PK and a master secret key MSK, and outputs the generated public key PK and master secret key MSK.
  • the key generation processing unit 220 inputs the public key PK, the master secret key MSK, and the user identifier ID i of the user i, generates the user secret key SK (ID i ) of the user i, and generates the generated user secret of the user i
  • the key SK (ID i ) is output.
  • the setup storage unit 290 is a storage unit that stores data used by the setup device 200.
  • the security parameter ⁇ , the number L of layers, the public key PK, the master secret key MSK, the user identifier ID i , and the user secret key SK (ID i ) are examples of data stored in the setup storage unit 290.
  • FIG. 6 is a functional configuration diagram of the setup device 200 according to the first embodiment. A functional configuration of the setup device 200 according to the first embodiment will be described with reference to FIG.
  • the setup device 200 (an example of a key generation device) includes a setup processing unit 210, a key generation processing unit 220, and a setup storage unit 290 (an example of a key generation storage unit).
  • the setup processing unit 210 generates a public key PK of a user belonging to an organization having, for example, L (L is a specific integer of 2 or more) hierarchies.
  • the setup processing unit 210 includes a setup input unit 211, a pre-setup processing unit 212, a public key value calculation unit 213, a public key generation unit 214, a master secret key generation unit 215, and a setup output unit 216.
  • the setup input unit 211 performs setup input processing. For example, the setup input unit 211 inputs the security parameter ⁇ and the layer number L.
  • the setup pre-processing unit 212 (an example of the element value selection unit) performs setup pre-processing (including element value selection processing). For example, the setup preprocessing unit 212 performs the following processing in the setup preprocessing.
  • the setup pre-processing unit 212 calculates a cyclic group G that includes a product number n of prime numbers p and prime numbers q and includes n element values.
  • Setup preprocessing unit 212 the correspondence from the subgroup G p to the prime number p and of order a subgroup G p constituting a part of the calculated cyclic group G to L elements values into L Hierarchy To select L key values h.
  • Setup preprocessing unit 212 selects the L pieces of element values from the subgroup G p as L pieces of key value h 'in association with the L hierarchy.
  • Setup preprocessing unit 212 the correspondence from the subgroup G q of prime numbers q and of order a subgroup G q that constitutes a part of the calculated cyclic group G to L elements values into L Hierarchy Are selected as L key values R.
  • the pre-setup processing unit 212 selects L element values from the subgroup G q as L key values R ′ in association with L hierarchies.
  • the public key value calculation unit 213 performs public key value calculation processing. For example, the public key value calculation unit 213 performs the following process in the public key value calculation process.
  • the public key value calculation unit 213 multiplies the L key values h and the L key values R selected by the setup preprocessing unit 212 for each layer, and the L key values are associated with the L layers.
  • the key value H is calculated as an H key value group.
  • the public key value calculation unit 213 multiplies the L key values h ′ and L key values R ′ selected by the setup preprocessing unit 212 for each layer, and associates the L key values h ′ with the L layers.
  • the individual key values H ′ are calculated as the H ′ key value group.
  • the public key generation unit 214 performs public key generation processing. For example, the public key generation unit 214 performs the following process in the public key generation process.
  • the public key generation unit 214 generates a public key PK including the H key value group calculated by the public key value calculation unit 213 and the H ′ key value group.
  • the master secret key generation unit 215 performs a master secret key generation process. For example, the master secret key generation unit 215 performs the following process in the master secret key generation process.
  • the master secret key generation unit 215 generates a master secret key MSK including the L key values h selected by the setup preprocessing unit 212 as an h key value group.
  • the setup output unit 216 performs setup output processing. For example, the setup output unit 216 outputs the public key PK generated by the public key generation unit 214 and the master secret key MSK generated by the master secret key generation unit 215.
  • the key generation processing unit 220 generates, for example, a user secret key SK of a specific user belonging to the k-th hierarchy (k is a specific integer of 2 or more) in an organization having a hierarchical structure.
  • the key generation processing unit 220 includes a key generation input unit 221, a key generation preprocessing unit 222, a user secret key value calculation unit 223, and a user secret key generation unit 224.
  • the key generation input unit 221 performs key generation input processing. For example, the key generation input unit 221 performs the following process in the key generation input process.
  • the key generation input unit 221 includes a user identifier of a specific user as a layer identifier for identifying the kth layer and a user identifier including k ⁇ 1 layer identifiers for identifying layers from the first layer to the (k ⁇ 1) th layer. Enter your ID.
  • the key generation / input unit 221 includes an h key value group including k key values h associated with k layers and an h ′ key including k key values h ′ associated with k layers.
  • a master secret key MSK including a value group is input.
  • the key generation preprocessing unit 222 performs key generation preprocessing. For example, if the hierarchical identifier included in the user identifier ID is a character string, the key generation preprocessing unit 222 converts the hierarchical identifier from a character string to an integer value.
  • the user secret key value calculation unit 223 performs a user secret key value calculation process. For example, the user secret key value calculation unit 223 performs the following process in the user secret key value calculation process.
  • the user secret key value calculation unit 223 calculates a key value a 0 used for decrypting the ciphertext data CT using the user identifier ID and the master secret key MSK input by the key generation input unit 221.
  • the user secret key generation unit 224 performs user secret key generation processing. For example, the user secret key generation unit 224 performs the following process in the user secret key generation process.
  • the user secret key generation unit 224 generates a user secret key SK including the key value a 0 calculated by the user secret key value calculation unit 223, and outputs the generated user secret key SK.
  • FIG. 7 is a schematic diagram of the decoding device 300 according to the first embodiment. An overview of decoding apparatus 300 according to Embodiment 1 will be described with reference to FIG.
  • the decryption apparatus 300 includes a decryption processing unit 310, a key delegation processing unit 320, and a decryption storage unit 390 (an example of a key delegation storage unit). However, the lowermost decryption apparatus 300 (for example, the decryption apparatus 300 for employees) may not include the key delegation processing unit 320.
  • the decryption processing unit 310 inputs the public key PK, the user secret key SK (ID i ) of the user i, the ciphertext data CT generated for the user i, and the user identifier ID i of the user i, and the ciphertext data CT Is generated to generate plaintext data M, and the generated plaintext data M is output.
  • the key delegation processing unit 320 inputs the public key PK, the user secret key SK (ID i ) of the user i, and the user identifier ID j of the user j belonging to the hierarchy immediately below the user i, and the secret key of the user j SK (ID j ) is generated, and the generated secret key SK (ID j ) of user j is output.
  • the decoding storage unit 390 is a storage unit that stores data used in the decoding device 300.
  • the public key PK, user secret key SK (ID x ), ciphertext data CT, user identifier ID x , and plaintext data M are examples of data stored in the decryption storage unit 390.
  • FIG. 8 is a functional configuration diagram of the decoding device 300 according to the first embodiment. A functional configuration of decoding apparatus 300 according to Embodiment 1 will be described with reference to FIG.
  • the decryption device 300 (an example of a key delegation device) includes the decryption processing unit 310, the key delegation processing unit 320, and the decryption storage unit 390 (an example of a key delegation storage unit) as described above.
  • the decoding processing unit 310 includes a decoding input unit 311, a pre-decoding processing unit 312, and a decoding unit 313.
  • the decryption input unit 311 performs decryption input processing.
  • the decoding input unit 311 performs the following process in the decoding input process.
  • the decryption input unit 311 inputs the ciphertext data CT and the user identifier ID.
  • the ciphertext CT includes a plaintext encryption value C 0 obtained by encrypting the plaintext data M, a specific wildcard encryption value C 1 , a specific identification encryption value C 3, and a wildcard hierarchy value W.
  • the wild card hierarchy value W indicates a hierarchy in which the pattern value included in the pattern P is a wild card value.
  • the pre-decoding processing unit 312 performs pre-decoding processing. For example, when the hierarchical identifier included in the user identifier ID is a character string, the decryption preprocessing unit 312 converts the hierarchical identifier from a character string to an integer value.
  • the decoding unit 313 performs a decoding process. For example, the decoding unit 313 performs the following process in the decoding process.
  • the decryption unit 313 Based on the ciphertext data CT input by the decryption input unit 311, the decryption unit 313 extracts the layer identifier of the layer indicated by the wildcard layer value W from the user identifier ID input by the decryption unit 313 as a wildcard identifier. . The decryption unit 313 uses the extracted wild card identifier, the wild card cipher value C 1 included in the cipher text data CT, and the identification cipher value C 3 to obtain the plain text cipher value C 0 included in the cipher text data CT. Decrypt. Decoding unit 313 outputs the plaintext data M obtained by decrypting the plaintext encrypted value C 0.
  • the key delegation processing unit 320 generates a user secret key SK j of the user j belonging to the kth hierarchy (k is a specific integer equal to or greater than 2) within the organization having a hierarchical structure.
  • the key delegation processing unit 320 includes a key delegation input unit 321, a key delegation preprocessing unit 322, a delegation key value calculation unit 323, and a delegation key generation unit 324.
  • the key delegation input unit 321 performs key delegation input processing.
  • the key delegation input unit 321 performs the following process in the key delegation input process.
  • the key delegation input unit 321 includes a user identifier of the user j as a layer identifier for identifying the kth layer and a user identifier including k ⁇ 1 layer identifiers for identifying layers from the first layer to the k ⁇ 1th layer. Enter ID j .
  • Key delegation input unit 321 inputs the user secret key SK i which a user secret key SK i including a key value a 0 is used to decrypt the ciphertext data CT user i belonging to the k-1 hierarchy.
  • the key delegation preprocessing unit 322 performs key delegation preprocessing. For example, when the hierarchical identifier included in the user identifier ID is a character string, the key delegation preprocessing unit 322 converts the hierarchical identifier from a character string to an integer value.
  • the delegation key value calculation unit 323 performs delegation key value calculation processing. For example, the delegation key value calculation unit 323 performs the following process in the delegation key value calculation process.
  • the delegation key value calculation unit 323 calculates a key value x 0 used for decryption of the ciphertext data CT using the user identifier ID j and the user secret key SK i input by the key delegation input unit 321.
  • the delegation key generation unit 324 performs delegation key generation processing. For example, the delegation key generation unit 324 performs the following process in the delegation key generation process.
  • the delegation key generation unit 324 generates a user secret key SK j including the key value x 0 calculated by the delegation key value calculation unit 323, and outputs the generated user secret key SK j .
  • FIG. 9 is a schematic diagram of the encryption device 400 according to the first embodiment. An overview of the encryption apparatus 400 according to Embodiment 1 will be described with reference to FIG.
  • the encryption device 400 includes an encryption processing unit 410 and an encryption storage unit 490.
  • Encryption processing unit 410 inputs the pattern P i and the plaintext data M for the public key PK and (personal or) layer i, encrypts the plaintext data M to (individual or) ciphertext data CT for stratum i It generates and outputs the generated ciphertext data CT.
  • the encryption storage unit 490 is a storage unit that stores data used in the encryption device 400.
  • the public key PK, the pattern P i , the plaintext data M, and the ciphertext data CT are examples of data stored in the encryption storage unit 490.
  • FIG. 10 is a functional configuration diagram of the encryption device 400 according to the first embodiment.
  • the functional configuration of the encryption device 400 according to Embodiment 1 will be described with reference to FIG.
  • the encryption device 400 includes the encryption processing unit 410 and the encryption storage unit 490 as described above.
  • the encryption processing unit 410 includes an encryption input unit 411, a pre-encryption processing unit 412, an encryption value calculation unit 413, and a ciphertext generation unit 414.
  • the encryption input unit 411 performs encryption input processing. For example, the encryption input unit 411 performs the following process in the encryption input process.
  • the encryption input unit 411 inputs plaintext data M to be encrypted.
  • the encryption input unit 411 inputs a public key PK including an H key value group including k key values H associated with k layers (k is a specific integer equal to or greater than 2).
  • the encryption input unit 411 inputs a pattern P including any one of a hierarchy identifier for identifying a hierarchy, a wildcard value indicating an arbitrary user, and a blank value indicating an unnecessary hierarchy as a pattern value for each hierarchy. .
  • the pre-encryption processing unit 412 performs pre-encryption processing.
  • the encryption preprocessing unit 412 converts a pattern value from a character string to an integer value when a pattern value (for example, a hierarchy identifier) included in the pattern P is a character string.
  • the encryption value calculation unit 413 performs encryption value calculation processing. For example, the encryption value calculation unit 413 performs the following process in the encryption value calculation process.
  • Encrypted value calculation unit 413 calculates a plaintext encrypted value C 0 encrypts the plaintext data M encrypted input unit 411 is input. Based on the pattern P input by the encryption input unit 411, the encryption value calculation unit 413 determines a layer whose pattern value is a wild card value as a wild card layer. The encryption value calculation unit 413 extracts the key value H associated with the wild card hierarchy from the H key value group included in the public key PK input by the encryption input unit 411 as a wild card key value. The encryption value calculation unit 413 calculates the wild card encryption value C 1 used for decrypting the plaintext encryption value C 0 using the extracted wild card key value.
  • the encryption value calculation unit 413 determines, based on the pattern P, a hierarchy whose pattern value is a hierarchy identifier as an identification hierarchy.
  • the encryption value calculation unit 413 extracts the key value H associated with the identification hierarchy as an identification key value from the H key value group included in the public key PK.
  • the encryption value calculation unit 413 calculates an identification encryption value C 3 used for decrypting the plaintext encryption value C 0 using the extracted identification key value.
  • the ciphertext generation unit 414 performs ciphertext generation processing. For example, the ciphertext generation unit 414 performs the following process in the ciphertext generation process.
  • Ciphertext generator 414 a wildcard layer value W indicating the wildcard hierarchy with including plaintext encrypted value calculated by the encryption calculation unit 413 and C 0 and wildcards encrypted value C 1 and the identification cryptographic value C 3 Ciphertext data CT including it is generated.
  • the ciphertext generation unit 414 outputs the generated ciphertext data CT.
  • FIG. 11 is a flowchart showing a setup method by the setup apparatus 200 in the first embodiment. A process flow of the setup method executed by the setup processing unit 210 of the setup apparatus 200 will be described with reference to FIG.
  • the setup input unit 211 inputs the security parameter ⁇ , the layer number L, and the input device or the setup storage unit 290. It progresses to S120 after S110.
  • Group G, G T is a cyclic group of the composite number n and position number, including n elements values. Cyclic group G, G T is may be be either the additive group and multiplicative group. Hereinafter, the description will be continued assuming cyclic group G, and G T is multiplicative group.
  • the mapping e is a function for obtaining one output value from two input values, and satisfies the following properties (a) and (b).
  • the mapping e that satisfies the properties (a) and (b) is called pairing.
  • the pairing e can be expressed as follows.
  • pairing calculation The calculation of pairing e is called “pairing calculation”.
  • Group is defined by the pairing e G, the G T called “pairing" group.
  • pairing group G as G T, include a group G T on the group G and a finite body made rational points on an elliptic curve. Pairing between the group G and the group G T is acceptable be either symmetrical pairing and asymmetric pairing.
  • the description will be continued for symmetrical pairing. Those skilled in the art can easily understand the case of asymmetric pairing from the following description.
  • Non-Patent Document 4 A method for generating the prime numbers p and q is disclosed in Non-Patent Document 4, for example. Pairing group G, the method of generating the G T, for example, disclosed in Non-Patent Document 3.
  • the setup preprocessing unit 212 generates a subgroup G p forming a part of the group G with a group G.
  • the subgroup G p is an element value group including p element values with the prime number p as the order.
  • the setup preprocessing unit 212 randomly selects a plurality of element values from the generated subgroup G p as shown in the equation [SU1].
  • the setup preprocessing unit 212 generates a subgroup G q that constitutes a part of a group G by using a group G.
  • the subgroup G q is an element value group including q element values with the prime number q as the order.
  • the setup preprocessing unit 212 randomly selects a plurality of element values from the generated subgroup G q as shown in the equation [SU2].
  • the public key value calculation unit 213 calculates a plurality of public key values using the plurality of element values selected in S130 and the plurality of element values selected in S131.
  • a plurality of calculation formulas [SU3] for calculating a plurality of public key values are shown below.
  • the public key generation unit 214 generates a public key PK including a plurality of public key values calculated in S140. Below, the formula [SU4] representing the public key PK is shown.
  • the master secret key generation unit 215 generates a master secret key MSK including the plurality of element values selected in S130 as a master secret key value.
  • the formula [SU5] representing the master secret key MSK is shown.
  • the setup output unit 216 stores the public key PK generated in S150 and the master secret key MSK generated in S160 in the setup storage unit 290.
  • the setup output unit 216 stores the public key PK in a shared server (not shown) of the system so that it can be used by the entire system. However, the setup output unit 216 may transmit the public key PK to each decryption device 300 and the encryption device 400.
  • FIG. 12 is a flowchart showing a key generation method by the setup apparatus 200 in the first embodiment. A process flow of the key generation method executed by the key generation processing unit 220 of the setup apparatus 200 will be described with reference to FIG.
  • the key generation input unit 221 inputs the public key PK and the master secret key MSK generated by the setup processing unit 210 from the setup storage unit 290.
  • the key generation input unit 221 inputs the user identifier ID i assigned to the specific user i from the input device or the setup storage unit 290. It progresses to S220 after S210.
  • the key generation preprocessing unit 222 converts the elements constituting the user identifier ID i into any integer value included in the integer value group Z n .
  • the integer value group Z n is a group composed of integer values from 0 to n-1. As described in S120 of FIG. 11, n is the product of the prime number p and the prime number q, and is the order of the group G.
  • the key generation preprocessing unit 222 converts a binary number representing an element into a decimal integer value.
  • the key generation preprocessing unit 222 may perform a remainder operation on the obtained decimal integer value by a modulus n to obtain the remainder value as an integer value. Further, the key generation preprocessing unit 222 may obtain an integer value by substituting an element into the hash function. Further, a conversion table in which elements and integer values are associated may be stored in advance in the setup storage unit 290, and the key generation preprocessing unit 222 may acquire an integer value corresponding to the element from the setup storage unit 290. .
  • S220 may not be executed for an element represented by an integer value among a plurality of elements constituting the user identifier ID i .
  • the key generation preprocessing unit 222 randomly selects a plurality of integer values from the integer value group Z n (integer values from 0 to n ⁇ 1) as shown in the equation [KG1]. However, when the conditional expression [KG1-1] is not satisfied, the key generation preprocessing unit 222 reselects a plurality of integer values.
  • the key generation pre-processing unit 222 determines an element other than the blank value “ ⁇ ” among the plurality of elements included in the user identifier ID i . Further, the key generation pre-processing unit 222 determines that the layer number corresponding to an element other than the blank value “ ⁇ ” is “non-blank layer value D”.
  • a hierarchy corresponding to an element other than the blank value “ ⁇ ” is referred to as a “non-blank hierarchy”.
  • the key generation preprocessing unit 222 determines an element indicating the blank value “ ⁇ ” among the plurality of elements included in the user identifier ID i, and sets the layer number corresponding to the element indicating the blank value “ ⁇ ” as “ It is determined as “blank hierarchy value N”.
  • the hierarchy corresponding to the element indicating the blank value “ ⁇ ” is referred to as “blank hierarchy”.
  • the formula [KG2] representing the non-blank hierarchy value D and the formula [KG3] representing the blank hierarchy value N are shown.
  • the non-blank hierarchy values D are “1” and “2”, and the blank hierarchy value N is “ 3 ”and“ 4 ”.
  • the non-blank hierarchy value D is “1” and “4”, and the blank hierarchy value N is “2” and “3”. It is.
  • the user secret key value calculation unit 223 uses the master secret key MSK, the user identifier ID i , the non-blank hierarchical value D of the user identifier ID i , and the integer value selected in S230 to generate a plurality of decryption key values. Is calculated.
  • the layer number to which the user i belongs is assumed to be “K”.
  • a plurality of calculation formulas [KG4] for calculating a plurality of decryption key values are shown below.
  • the user secret key value calculation unit 223 calculates a plurality of perturbation key values (A) as in S250.
  • a plurality of calculation formulas [KG5] for calculating a plurality of disturbance key values (A) are shown below.
  • the user secret key value calculation unit 223 calculates a plurality of perturbation key values (B) as in S251.
  • a plurality of calculation formulas [KG6] for calculating a plurality of disturbance key values (B) are shown below.
  • the user secret key generation unit 224 generates a decryption key dk including a plurality of decryption key values calculated in S250. Furthermore, the user secret key generation unit 224 generates a disturbance key rk including the plurality of disturbance key values (A) calculated in S251 and the plurality of disturbance key values (B) calculated in S252.
  • a decryption key dk including a plurality of decryption key values calculated in S250.
  • the user secret key generation unit 224 generates a disturbance key rk including the plurality of disturbance key values (A) calculated in S251 and the plurality of disturbance key values (B) calculated in S252.
  • an expression [KG7] representing the decryption key dk and an expression [KG8] representing the disturbance key rk are shown.
  • the user secret key generation unit 224 generates the user secret key SK of the user i using the decryption key dk and the disturbance key rk generated in S260. Then, the user secret key generation unit 224 outputs the generated user secret key SK. For example, the user secret key generation unit 224 transmits the generated user secret key SK to the decryption apparatus 300 of the user i. Below, the formula [KG9] representing the user secret key SK of the user i is shown.
  • the decryption key dk included in the user secret key SK is data used by the decryption device 300 to decrypt the ciphertext data CT, and the disruption key rk included in the user secret key SK is data used by the decryption device 300 for key delegation.
  • Key delegation is a process in which the decryption apparatus 300 generates a user secret key of a user belonging to a lower layer using its own user secret key SK.
  • FIG. 13 is a flowchart showing a key delegation method by decryption apparatus 300 in the first embodiment. A process flow of the key delegation method executed by the key delegation processing unit 320 of the decryption apparatus 300 will be described with reference to FIG.
  • the key delegation input unit 321 inputs the public key PK from the input device, the shared server (not shown), or the decryption storage unit 390.
  • the key delegation input unit 321 inputs the user secret key SK (ID i ) of the user i from the input device or the decryption storage unit 390.
  • User i is, for example, a user who uses this decryption device.
  • the key delegation input unit 321 inputs the user identifier ID j of the user j from the input device or the decryption storage unit 390.
  • the user j is a user who belongs to a hierarchy one level lower than the user i and is a user to whom a user secret key is delegated.
  • the layer number to which the user j (delegation destination) belongs is “k”
  • the layer number to which the user i belongs is “k ⁇ 1”. It progresses to S320 after S310.
  • the key delegation preprocessing unit 322 converts the element I k included in the user identifier ID j into any integer value included in the integer value group Z n (an integer value from 0 to n ⁇ 1).
  • the element I k is an element corresponding to the k-th element among the plurality of elements included in the user identifier ID j , that is, the k-th layer to which the user j (delegation destination) belongs.
  • the conversion method is the same as S220 (see FIG. 12). It progresses to S330 after S320.
  • the key delegation preprocessing unit 322 randomly selects a plurality of integer values from the integer value group Z n as shown in the equation [KT1]. However, if the conditional expression [KT1-1] is not satisfied, the key delegation preprocessing unit 322 reselects a plurality of integer values.
  • the delegation key value calculation unit 323 uses the decryption key dk (ID i ) of the user i included in the user secret key SK (ID i ) and the element I k included in the user identifier ID j of the user j. A plurality of work values (a) are calculated.
  • the calculation formula [KT2] for calculating a plurality of work values (a) is shown below.
  • the delegation key value calculation unit 323 uses the disturbance key rk (ID i ) of the user i included in the user secret key SK (ID i ) and the element I k included in the user identifier ID j of the user j. A plurality of work values (b) are calculated.
  • the calculation formula [KT3] for calculating a plurality of work values (b) is shown below.
  • the delegation key value calculation unit 323 calculates a plurality of work values (c) as in S341.
  • the calculation formula [KT4] for calculating a plurality of work values (c) is shown below.
  • the delegation key value calculation unit 323 calculates a plurality of decryption key values using the work values (a) to (c) calculated in S340 to S342 and the integer value selected in S330.
  • the calculation formula [KT5] for calculating a plurality of decryption key values is shown below.
  • the delegation key value calculation unit 323 calculates a plurality of perturbation key values (B) as in S351.
  • the calculation formula [KT7] for calculating a plurality of disturbance key values (B) is shown below.
  • the delegation key generation unit 324 generates the decryption key dk (ID j ) of the user j using the plurality of decryption key values calculated in S350. Further, the delegation key generation unit 324 generates a perturbation key rk (ID j ) using the plurality of perturbation key values (A) calculated in S351 and the plurality of perturbation key values (B) calculated in S352. To do.
  • an equation [KT8] representing the decryption key dk (ID j ) of the user j and an equation [KT9] representing the perturbation key rk (ID j ) of the user j are shown.
  • the delegation key generation unit 324 generates and generates the user secret key SK (ID j ) of the user j using the decryption key dk (ID j ) and the disturbance key rk (ID j ) generated in S360.
  • the user secret key SK (ID j ) is stored in the decryption storage unit 390. Further, the delegation key generation unit 324 outputs the generated user secret key SK (ID j ). For example, the delegation key generation unit 324 transmits the generated user secret key SK (ID j ) to the decryption device 300 of the user j.
  • the following is a formula [KT10] representing the user j of the user secret key SK (ID j).
  • the key generation method and the key delegation method may generate the same user secret key SK for the same user. it can. Therefore, a user secret key SK for a specific user may be generated using either the key generation method or the key delegation method.
  • FIG. 14 is a flowchart illustrating an encryption method performed by the encryption apparatus 400 according to the first embodiment. A processing flow of the encryption method executed by the encryption processing unit 410 of the encryption device 400 will be described with reference to FIG.
  • the encryption input unit 411 inputs the public key PK from the input device, shared server (not shown), or decryption storage unit 390. Encrypted input unit 411, an input device pattern P i for user i, and inputs from the shared server or decoder storage unit 390. User i means one user or a plurality of users who can decrypt the ciphertext data CT. The encryption input unit 411 inputs the plaintext data M from the input device or the decryption storage unit 390. It progresses to S420 after S410.
  • the encryption preprocessing unit 412 converts the element included in the pattern P i into any integer value included in the integer value group Z n (an integer value from 0 to n ⁇ 1).
  • the conversion method is the same as S220 (see FIG. 12). It progresses to S421 after S420.
  • the pre-encryption processing unit 412 randomly selects an integer value ⁇ from the integer value group Z n as shown in Expression [EN1].
  • the encryption preprocessing unit 412 determines element indicating wildcard value "*" among the plurality of elements included in the pattern P i. Furthermore, the pre-encryption processing unit 412 determines the layer number corresponding to the element indicating the wild card value “*” as “wild card layer value W”. Hereinafter, a hierarchy corresponding to an element indicating the wild card value “*” is referred to as a “wild card hierarchy”. Further, the pre-encryption processing unit 412 determines an element indicating the blank value “ ⁇ ” among the plurality of elements included in the pattern P i, and sets the number of the layer corresponding to the element indicating the blank value “ ⁇ ” as “blank field”. It is determined as a hierarchy value N ”.
  • the pre-encryption processing unit 412 determines an element other than the wild card value “*” and the blank value “ ⁇ ” among the plurality of elements included in the pattern P i , and the wild card value “*” and the blank value “ The layer number corresponding to an element other than “ ⁇ ” is determined as “identification layer value D”.
  • a hierarchy corresponding to elements other than the wild card value “*” and the blank value “ ⁇ ” is referred to as an “identification hierarchy”.
  • the expression [EN2] representing the wildcard hierarchy value W, the expression [EN3] representing the blank hierarchy value N, and the expression [EN4] representing the identification hierarchy value D are shown.
  • the wild card hierarchy value W is “2”, and the blank hierarchy value N is “3” and “4”.
  • the identification hierarchy value D is “1”.
  • the pattern P 8 General Affairs Department, ⁇ , ⁇ , Tanaka
  • the blank hierarchy value N is “2” and “3”
  • the identification hierarchy value D is “1”. “4”.
  • the pre-encryption processing unit 412 randomly selects a plurality of integer values from the integer value group Z n based on the wild card hierarchy value W, and includes an integer value for each selected integer value in the public key PK. Raises the public key value g q to the power. This process is equivalent to randomly selecting a plurality of element values from the group G q whose order is the prime number q, as shown in the equation [EN5].
  • the encryption calculation unit 413 by using a plurality of integer values calculated with the public key PK and pattern P i and the plaintext data M and the integer value ⁇ and S423 selected in S421, a plurality of the cryptographic value calculate.
  • a plurality of calculation formulas [EN6] for calculating a plurality of encryption values are shown below.
  • the ciphertext generation unit 414 generates the ciphertext data CT for the user i using the wildcard hierarchy value W determined in S422 and the plurality of cipher values calculated in S430, and the generated ciphertext Data CT is stored in the encryption storage unit 490.
  • the expression [EN7] representing the ciphertext CT is shown.
  • the ciphertext generation unit 414 outputs the generated ciphertext data CT.
  • the ciphertext generation unit 414 stores the ciphertext data CT in a shared server (not shown).
  • the encryption method processing ends.
  • the plaintext data M is assumed to be an element of the pairing group G T (see S120 in FIG. 11). However, if the plaintext data M is not an element of the pairing group G T, it may be used a hybrid cryptosystem. In the hybrid encryption method, the plaintext data M is encrypted by a common key encryption method using a session key. Then, the plaintext data M is replaced with a session key, and the processing of the encryption method is executed.
  • FIG. 15 is a flowchart showing a decoding method by decoding apparatus 300 in the first embodiment. The flow of the decoding method executed by the decoding processing unit 310 of the decoding device 300 will be described with reference to FIG.
  • the decryption input unit 311 inputs the public key PK and the ciphertext data CT from the input device, shared server (not shown), or decryption storage unit 390.
  • Decryption input unit 311 inputs user secret key SK (ID i ) and user identifier ID i of user i from input device or decryption storage unit 390.
  • the user i is a user who decrypts the ciphertext data CT and uses the decryption apparatus 300. It progresses to S520 after S510.
  • the pre-decoding processing unit 312 converts the element included in the user identifier ID i into any integer value included in the integer value group Z n (an integer value from 0 to n ⁇ 1).
  • the conversion method is the same as S220 (see FIG. 12). It progresses to S521 after S520.
  • the decryption preprocessing unit 312 determines the non-blank hierarchy value D based on the user identifier ID i .
  • the determination method is the same as S240 (see FIG. 12). It progresses to S530 after S521.
  • the decryption unit 313 calculates a plurality of work values using the ciphertext data CT, the user identifier ID i, and the non-blank hierarchy value D determined in S521.
  • a plurality of calculation formulas [DE1] for calculating a plurality of work values are shown below.
  • the decryption unit 313 calculates the plaintext data M using the ciphertext data CT, the user secret key SK (ID i ), the mapping function e included in the public key PK, and the plurality of work values calculated in S530. To do.
  • the calculation formula [DE2] for calculating the plaintext data M is shown below.
  • the decryption unit 313 outputs the calculated plaintext data M. For example, the decryption unit 313 displays the plaintext data M on the display device.
  • the decoding method ends by S540.
  • the encrypted data CT is obtained using the user private key SK and the user identifier ID. Can be decrypted.
  • the element p j corresponding to the non-blank hierarchy ( ⁇ ⁇ ) of the user identifier ID is the element I j of the user identifier ID or the wild card value “*”, and the decryption process (FIG. This is because the wild card value “*” is “reprinted” by the element I j of the user identifier ID in S530 of FIG.
  • an unauthorized user other than the user corresponding to the pattern P cannot decrypt the encrypted data CT by using his / her user secret key SK and user identifier ID. This is because the wildcard value “*” is “re-baked” with the element I j of the invalid user identifier ID in the decryption process.
  • the expression on the first line is the above expression [DE2] (see S540 in FIG. 15).
  • the expression on the second line is an expression in which the right side of the first line is expanded based on the expression “DE1” (see S530 in FIG. 15).
  • the expression on the third line is an expression obtained by expanding the expression on the second line based on (Property 1) of the pairing group shown below.
  • the expression on the fourth line is an expression obtained by decomposing the denominator of the expression on the third line. Then, the plaintext data M is obtained by deleting the common term between the denominator and the numerator of the expression on the fourth row.
  • the property (1) of the pairing group is shown below.
  • the hierarchical ID-based cryptographic system 100 can ensure the anonymity of the ciphertext.
  • the anonymity here refers to safety as defined by ANON-sID in Non-Patent Document 5.
  • the element p j excluding the wild card portion from the ciphertext, that is, the information regarding the user identifier does not leak.
  • the confidentiality of the ciphertext can be ensured.
  • the secrecy here means safety as defined by IND-sID in Non-Patent Document 5. In other words, it is a property that information on plaintext does not leak from the ciphertext.
  • the present embodiment it is possible to realize an anonymity hierarchical ID-based encryption scheme that supports wild cards. That is, it is not necessary to generate a ciphertext for each user for all users belonging to a certain layer in the hierarchy, and only one ciphertext may be generated. Thereby, the size (number) of ciphertext can be reduced.
  • the number of pairing e operations can be set to a fixed number (specifically, 3 times) instead of the number proportional to the number of layers. This is because an element proportional to the number of hierarchies is removed from the constituent elements of the ciphertext. As a result, a high-speed decoding operation can be realized even in an organization having a large hierarchy such as a large company or a public office.
  • a blank “ ⁇ ” can be placed in the user identifier in association with an intermediate hierarchy.
  • FIG. 16 is a diagram illustrating an example of hardware resources of the hierarchical ID-based cryptographic system 100 according to the embodiment.
  • a setup device 200, a decryption device 300, an encryption device 400, and a search device 500 include a CPU 901 (Central Processing Unit).
  • the CPU 901 is connected to the ROM 903, the RAM 904, the communication board 905, the display device 911, the keyboard 912, the mouse 913, the drive device 914, and the magnetic disk device 920 via the bus 902, and controls these hardware devices.
  • the drive device 914 is a device that reads and writes a storage medium such as an FD (Flexible Disk Drive), a CD (Compact Disc), and a DVD (Digital Versatile Disc).
  • FD Flexible Disk Drive
  • CD Compact Disc
  • DVD Digital Versatile Disc
  • the communication board 905 is wired or wirelessly connected to a communication network such as a LAN (Local Area Network), the Internet, or a telephone line.
  • a communication network such as a LAN (Local Area Network), the Internet, or a telephone line.
  • the magnetic disk device 920 stores an OS 921 (operating system), a program group 922, and a file group 923.
  • OS 921 operating system
  • program group 922 program group 922
  • file group 923 file group 923
  • the program group 922 includes a program for executing a function described as “unit” in the embodiment.
  • the program is read and executed by the CPU 901. That is, the program causes the computer to function as “ ⁇ part”, and causes the computer to execute the procedures and methods of “ ⁇ part”.
  • the file group 923 includes various data (input, output, determination result, calculation result, processing result, etc.) used in “ ⁇ part” described in the embodiment.
  • arrows included in the configuration diagrams and flowcharts mainly indicate input and output of data and signals.
  • what is described as “to part” may be “to circuit”, “to apparatus”, and “to device”, and “to step”, “to procedure”, and “to processing”. May be. That is, what is described as “ ⁇ unit” may be implemented by any of firmware, software, hardware, or a combination thereof.
  • a pairing group having a composite number as an order is referred to as a “composite order pairing group”, and a pairing group having a prime number as an order is referred to as a “prime order pairing group”.
  • a direct product group consisting of a direct product of a pairing group (asymmetric pairing group) of prime order p is defined by equation (2-1).
  • Pairing e is defined by equation (2-3).
  • the hierarchical ID-based cryptographic system 100 can be configured using the direct product of the pairing group of prime number p. That is, the hierarchical ID-based encryption system 100 can be configured by replacing each group described in the first embodiment with each group described above.
  • Non-Patent Document 6 a conversion method of converting a composite number pairing group into a prime number pairing group. Such a conversion method is disclosed in Non-Patent Document 6, for example.
  • a prime order pairing group can achieve the same level of safety as a smaller bit size than a composite order pairing group. Therefore, the size of the ciphertext and secret key can be made smaller than in the first embodiment.
  • the number of pairing operations performed in the decoding operation can be set to a fixed number instead of the number proportional to the number of layers.
  • Embodiment 3 The “group shared public key secret search scheme” will be described by applying the “anonymity hierarchical ID-based encryption scheme for wild cards” described in the first and second embodiments.
  • items different from the first and second embodiments will be mainly described. Matters whose description is omitted are the same as in the first and second embodiments.
  • FIG. 17 is a configuration diagram of the public key secret search system 110 according to the third embodiment.
  • the configuration of public key secret search system 110 according to Embodiment 3 will be described with reference to FIG.
  • the public key secret search system 110 includes a search device 500 in addition to the configuration (see FIG. 1) of the hierarchical ID-based encryption system 100 described in the first embodiment.
  • the search device 500 includes a search storage unit 590 (an example of a ciphertext storage unit) that stores a plurality of ciphertext data CT generated by the encryption device 400.
  • a search storage unit 590 an example of a ciphertext storage unit
  • the search device 500 inputs the search query QK, searches the search storage unit 590 using the input search query QK, and outputs ciphertext data CT corresponding to the search query QK.
  • the decryption device 300 decrypts the ciphertext data CT searched by the search device 500 and outputs plaintext data M.
  • FIG. 18 is a schematic diagram of decoding apparatus 300 in the third embodiment. An overview of decoding apparatus 300 according to Embodiment 3 will be described with reference to FIG.
  • the decryption apparatus 300 includes a query generation processing unit 330 in addition to the configuration described in the first embodiment (see FIG. 7).
  • the query generation processing unit 330 includes a query generation input unit, a query generation preprocessing unit, a query key value calculation unit, and a query generation unit (not shown).
  • the query generation processing unit 330 inputs the public key PK, the user secret key SK (ID i ) of the user i, the user identifier ID i of the user i, and the keyword KW, and outputs a search query QK (ID i , KW). .
  • FIG. 19 is a schematic diagram of search device 500 in the third embodiment. An outline of search device 500 in Embodiment 3 will be described with reference to FIG.
  • the search device 500 includes a search processing unit 510 and a search storage unit 590.
  • the search processing unit 510 receives the public key PK and the search query QK (ID i , KW), searches the ciphertext data CT stored in the search storage unit 590, and searches the search query QK (ID i , KW). The corresponding ciphertext data CT is output.
  • the search storage unit 590 is a storage unit that stores data used in the search device 500.
  • the public key PK, the search query QK (ID i , KW), and the ciphertext data CT are examples of data stored in the search storage unit 590.
  • FIG. 20 is a functional configuration diagram of the search device 500 according to the third embodiment. A functional configuration of search device 500 according to Embodiment 3 will be described with reference to FIG.
  • the search device 500 includes the search processing unit 510 and the search storage unit 590 as described above.
  • the search storage unit 590 stores a plurality of ciphertext data CT and a plurality of ciphertext data CTW in advance.
  • the ciphertext data CTW is generated by the encryption device 400 (see FIG. 10) as follows.
  • Encrypted value calculation unit 413 calculates a plaintext encrypted value CW 0 encrypts particular plaintext data MW.
  • the encryption input unit 411 inputs a keyword KW used for searching the ciphertext data CT.
  • the encryption value calculation unit 413 calculates the wild card encryption value CW 1 and the identification encryption value CW 3 using the pattern PW including the pattern P and including the keyword KW as a layer identifier for identifying the (K + 1) th layer.
  • the ciphertext generation unit 414 generates ciphertext data CTW including the calculated plaintext cipher value CW 0 , wildcard cipher value CW 1, and identification cipher value CW 3, and generates the ciphertext data CTW as the ciphertext Output in association with data CT.
  • the search processing unit 510 includes a search query input unit 511, a search unit 512, and a search result output unit 513.
  • the search query input unit 511 performs a search query input process. For example, the search query input unit 511 inputs the search query QK and the wild card hierarchy value W.
  • the search query QK is generated as follows by the decryption apparatus 300 (see FIG. 18).
  • a query generation input unit (not shown) of the query generation processing unit 330 inputs the user identifier ID and the keyword KW (query generation input).
  • a query key value calculation unit (not shown) of the query generation processing unit 330 calculates a key value aW 0 used for decrypting the plaintext cipher value CW 0 using the input user identifier ID and the keyword KW (query key). Value calculation processing).
  • a query generation unit (not shown) of the query generation processing unit 330 generates a search query QK including the calculated key value aW 0 and the user identifier ID, and outputs the generated search query QK (search query generation). processing).
  • the search unit 512 determines whether or not the decrypted data obtained by decrypting the plaintext cipher value CW 0 matches the plaintext data MW.
  • the search unit 512 acquires the ciphertext data CT corresponding to the selected ciphertext data CTW from the search storage unit 590 when the decrypted data matches the plaintext data MW.
  • the search result output unit 513 outputs the acquired ciphertext data CT as a search result for the input search query QK.
  • FIG. 21 is a diagram illustrating an example of a hierarchical structure of the hierarchical ID-based cryptographic system 100 according to the third embodiment.
  • FIG. 22 is a diagram illustrating an example of the pattern PW of the hierarchical ID-based encryption system 100 according to the third embodiment.
  • FIG. 23 is a flowchart illustrating an encryption method performed by the encryption apparatus 400 according to the third embodiment. The processing flow of the encryption method according to Embodiment 3 will be described with reference to FIG.
  • the encryption input unit 411 inputs the public key PK, the pattern PW i for the user i, and the plaintext data M as in S410 (see FIG. 14). It progresses to S420 after S411.
  • the cryptographic processing unit 410 In S420 to S440, the cryptographic processing unit 410 generates the ciphertext data CT for the user i using the pattern P i included in the pattern PW i (see FIG. 14). It progresses to S450 after S440.
  • the encryption preprocessing unit 412 receives the ciphertext data CT and calculates a predetermined hash function h, and calculates a hash value h (CT) of the ciphertext data CT.
  • Hash value h (CT) is a value obtained copy the encrypted data CT to the elements of the group G T.
  • the hash value h (CT) is an output value of the hash function SHA-1 when the ciphertext data CT is input as a bit string. It progresses to S460 after S450.
  • the encryption processing unit 410 like the S420-S440 a hash value calculated in S450 h a (CT) as clear text data MW, generates ciphertext data CTW for user i using a pattern PW i To do.
  • CT hash value calculated in S450 h a
  • the hierarchy corresponding to the keyword KW is treated as an “identification hierarchy”. It progresses to S490 after S480.
  • the ciphertext generator 414 In S490, the ciphertext generator 414 generates ciphertext data CT W including the ciphertext CTW generated ciphertext data CT and S480 generated in S440, and outputs the generated ciphertext data CT W.
  • the processing of the encryption method is ended by S490.
  • FIG. 24 is a flowchart illustrating a query generation method performed by the decryption apparatus 300 according to the third embodiment. A processing flow of the query generation method executed by the query generation processing unit 330 of the decryption apparatus 300 will be described with reference to FIG.
  • the query generation processing unit 330 inputs the public key PK, the user i user secret key SK (ID i ), the user i user identifier ID i, and the keyword KW. It progresses to S620 after S610.
  • the query generation processing unit 330 handles the data obtained by adding the keyword KW the user identifier ID i as the user identifier ID j of the user j, similarly to the key delegation unit 320 (see S320-S350 of FIG. 13 ), A plurality of decryption key values are calculated. It progresses to S660 after S650.
  • the query generation processing unit 330 generates a search query QK including the user identifier ID i of the user i and the plurality of decryption key values calculated in S650, and outputs the generated search query QK.
  • the process of the query generation method ends.
  • FIG. 25 is a flowchart showing a search method by search device 500 in the third embodiment. A flow of processing of the search method executed by the search processing unit 510 of the search device 500 will be described based on FIG.
  • the search query input unit 511 inputs the search query QK and the public key PK. It progresses to S711 after S710.
  • the search query input unit 511 selects one ciphertext data CT W unprocessed or random order from the search the storage unit 590. It progresses to S720 after S712.
  • the search unit 512 uses the encrypted data CTW included in the user identifier ID i and the ciphertext data CT W included in the decryption key value and the search query QK included in the public key PK search query QK
  • the plain text data MW is calculated.
  • the calculation method of the plaintext data MW is the same as the decryption method (see S520 to S540 in FIG. 15). It progresses to S750 after S740.
  • the search unit 512 calculates the hash value h (CT) of the ciphertext data CT included in the ciphertext data CTW.
  • the calculation method of the hash value h (CT) is the same as S450 (see FIG. 23). After S750, the process proceeds to S760.
  • the search unit 512 compares the plaintext data MW calculated in S740 with the hash value h (CT) calculated in S750. If the plaintext data MW and the hash value h (CT) match (YES), the process proceeds to S770. If the plaintext data MW and the hash value h (CT) do not match (NO), the process returns to S711.
  • the search unit 512 outputs the ciphertext data CT included in the ciphertext data CTW.
  • the search method process ends.
  • the ciphertext data CT output in S770 is decrypted by the decryption method (see FIG. 15) described in the first embodiment.
  • the public key secret search system 110 can perform a keyword search while keeping the keywords secret. This is because the retrieved ciphertext has anonymity in addition to secrecy, and no information about the keyword can be obtained even if the ciphertext is viewed.
  • ciphertexts can be shared within the group as in the first embodiment.
  • a plurality of search keywords may be provided. That is, a plurality of hierarchies corresponding to the keyword may be provided.
  • encrypted data CT W includes encrypted data CTW as many search terms determined to hit in the search if the hash value h (CT) are matched for at least one of the encrypted data CTW, Ciphertext data CT is output.
  • CT hash value
  • Ciphertext data CT is output.
  • the search is hit when the order of the ciphertext data CTW, that is, the hierarchical order of the search keywords matches.
  • a search constant for example, constant 0
  • CT hash value h
  • the search query includes the user identifier of the search user. This is because the element corresponding to the wild card in the ciphertext is “reburned” with the user identifier of the search user at the time of the search. However, when “re-firing” is not required (that is, when only ciphertext addressed to itself is searched), the search query may not include the user identifier. In this way, the search user can request a search while hiding his user identifier from the search device.
  • a combined number pairing group can be used, and as in the second embodiment, a direct product of a prime number pairing group can be used.
  • “group shared public key secret search” can be realized using “delegable hidden vector encryption” (Delegable hidden vector encryption).
  • the “delegable secret vector cipher” referred to here is a so-called predicate encryption such as ID-based encryption or attribute-based encryption, or a functional encryption.
  • the “secret vector cipher that can be delegated” has a function of key delegation and a function equivalent to a wild card as an encryption ID or attribute.
  • the “delegable secret vector cipher” has anonymity that does not leak the ID or attribute information from the ciphertext.
  • Specific implementation methods include Delegable HVE described in Non-Patent Document 7, Hierarchical predicate encryption described in Non-Patent Document 8, and the like. Specific algorithms, parameters, or underlying number theory assumptions differ depending on each encryption method. However, each of the encryption methods basically includes a setup unit, a key generation unit, a key delegation unit, an encryption unit and a decryption unit, or the like, as in the first embodiment. Therefore, by adopting a configuration according to the configuration disclosed in the present embodiment, a “group shared public key secret search” can be realized as in the present embodiment. This can be easily understood by those skilled in the art.
  • a group shared public key secret search can be realized.
  • the number of pairing operations in the search operation and the decryption operation (the operation for decrypting the ciphertext that hits the search) can be set to a certain number (specifically, 3 times) without being proportional to the number of layers.
  • a blank in generating / delegating a user secret key and also in encryption, a blank can be placed in an intermediate layer portion when a user identifier is designated. Accordingly, it is possible to flexibly cope with a user who deviates from the normal hierarchical structure like Mr. Tanaka shown in FIG. That is, it is possible to flexibly cope with a unique hierarchical structure.
  • group shared public key secret search can be realized by using “delegable secret vector encryption”.
  • a more general method for realizing the group shared public key secret search method can be provided.
  • Embodiment 4 A mode of adding or deleting a searchable user will be described.
  • items different from the third embodiment will be mainly described. Matters whose description is omitted are the same as those in the third embodiment.
  • a user identifier ID may be assigned to the user to be added.
  • FIG. 26 is a diagram illustrating an example of a user identifier ID in the fourth embodiment.
  • Mr. Takahashi when Mr. Takahashi is newly assigned to the recruiter, Mr. Takahashi's user identifier ID 9 is generated as shown in FIG.
  • the hiring manager delegates the user secret key SK to Mr. Takahashi by the key delegation method described in the first embodiment, and Mr. Takahashi searches using the delegated user secret key SK by the query generation method described in the third embodiment.
  • a query QK is generated.
  • a user identifier ID 10 of the assessor (assessment chief) is generated as shown in FIG.
  • the HR manager delegates the user secret key SK to the assessment chief, and the assessment chief generates a search query using the delegated user secret key SK.
  • the chief of the assessor delegates the user secret key SK to each employee of the assessor using the delegated user secret key SK.
  • a list of users that cannot be searched may be created.
  • FIG. 27 is a diagram showing an example of the deleter list in the fourth embodiment.
  • a deleter list as shown in FIG. 27 is stored in the search storage unit 590 (an example of a search identifier storage unit) of the search device 500.
  • the deleter list indicates a list of user identifier IDs (non-search identifiers) of users who cannot be searched (users without search authority).
  • the manager of the recruitment inputs Mr. Yamada's user identifier ID 13 to the search device 500 and requests Mr. Yamada to be registered in the deleter list.
  • the user management unit (not shown) of the search device 500 adds Mr. Yamada to the deleter list by adding the input user identifier ID 13 to the deleter list as shown in FIG.
  • the personnel manager requests registration of the training staff in the list of deleters, and the user management section of the search device 500 sets the user identifier ID 37 of the training staff in FIG. Add to the remover list as shown.
  • the recruiter chief inputs Mr. Yamada's user identifier ID 13 to the search device 500 and requests deletion from the deleter list.
  • the user management unit of the search device 500 deletes the input user identifier ID 13 from the deleter list.
  • the personnel manager requests the deletion from the deleter list, and the user management unit of the search device 500 deletes the training staff user identifier ID 37 from the deleter list.
  • the requester may be requested to input an electronic signature.
  • the user management unit of the search device 500 verifies the input electronic signature by a conventional signature verification method, and accepts a request when the electronic signature is correct.
  • FIG. 28 is a flowchart showing a search method of search device 500 in the fourth embodiment.
  • a search method of search device 500 in Embodiment 4 will be described with reference to FIG.
  • the search query input unit 511 determines whether or not the user identifier ID included in the search query QK is included in the deleter list. That is, it is determined whether or not the user identifier ID included in the search query QK matches the user identifier ID included in the deleter list. If the user identifier ID is included in the deleter list (YES), the search method process is terminated. When the user identifier ID is not included in the deleter list (NO), the process proceeds to S713.
  • the deletion method list in FIG. 23 includes Mr. Yamada's user identifier ID 13, so the processing of the search method ends. In this case, Mr. Yamada cannot perform a search using the search device 500.
  • the search query input unit 511 determines whether or not the deleter list includes a user identifier ID of a higher hierarchy than the user identifier ID included in the search query QK. That is, it is determined whether or not the user identifier ID included in the search query QK includes the user identifier ID in the deleter list. If a user identifier of a higher hierarchy than the user identifier ID is included in the deleter list (YES), the search method process is terminated. If a user identifier at a higher level than the user identifier ID is not included in the deleter list (NO), the process proceeds to S711.
  • the deleter list in FIG. 23 includes the user identifier ID 37 of the training staff, and the processing of the search method ends.
  • the employee in charge of the training cannot perform a search using the search device 500.
  • Mr. Yamada included in the deleter list sends a search query to the search device 500, there is a possibility that a search request is made with the name of another user who has not been deleted. However, even in that case, Mr. Yamada cannot retrieve the ciphertext addressed to the recruiter (or to a wider HR department, general affairs department, or all employees).
  • the decryption key dk included in the search query sent by Mr. Yamada is a key delegated using Mr. Yamada's name, and the name corresponding to the name includes Mr. Yamada's name. Yes.
  • the name used for re-firing (Sato) and the name included in the decryption key (Yamada) are different, even if the keywords match, the search will not be hit.
  • this embodiment can be realized by any method as long as it is “a delegation-capable secret vector encryption”.
  • a user or a lower group can be newly added to a group (hierarchy), and a keyword search can be executed by the newly added user or lower group.
  • a user or a lower group can be deleted from the group so that keyword searches related to the group cannot be performed. Therefore, it is possible to flexibly cope with addition and withdrawal of users and groups.
  • FIG. A mode in which a user included in the deleter list cannot retrieve ciphertext addressed to an individual will be described.
  • items different from the fourth embodiment will be mainly described. Matters whose description is omitted are the same as those in the fourth embodiment.
  • FIG. 29 is a diagram illustrating an example of a user identifier ID in the fifth embodiment.
  • a plurality of layers for associating employees are provided in the fifth embodiment.
  • Yamada's user identifier ID 6 includes “Yamada” in two layers, the fourth layer and the fifth layer. In other words, the employee group is duplicated.
  • the user's revocation can be realized. This is because a ciphertext that can be searched by the user always includes a wild card, and a user identifier is always included in the search query. Further, as described in the fourth embodiment, it is because a search query cannot be issued using the name of another person. Therefore, if the name appears in the deleter list, the user cannot perform a search. That is, the user's search authority expires.
  • the hierarchy when a hierarchy higher than the employee layer is revoked, the hierarchy may be multiplexed. In addition, all hierarchies may be multiplexed in advance.
  • the user or group can be revoked so that keyword search cannot be performed. Therefore, it is possible to flexibly cope with revocation of users and groups.
  • Hierarchical ID-based encryption system 110 Public key secret search system, 200 Setup device, 210 Setup processing unit, 211 Setup input unit, 212 Setup preprocessing unit, 213 Public key value calculation unit, 214 Public key generation unit, 215 Master Secret key generation unit, 216 Setup output unit, 220 Key generation processing unit, 221 Key generation input unit, 222 Key generation preprocessing unit, 223 User secret key value calculation unit, 224 User secret key generation unit, 290 Setup storage unit, 300 Decryption device, 310 Decryption processing unit, 311 Decryption input unit, 312 Decryption preprocessing unit, 313 Decryption unit, 320 Key delegation processing unit, 321 Key delegation input unit, 322 Key delegation preprocessing unit, 323 Delegation key value calculation unit, 324 Delegation key generator, 330 query raw Processing unit, 390 Decryption storage unit, 400 Encryption device, 410 Encryption processing unit, 411 Encryption input unit, 412 Pre-encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

 ワイルドカード対応の匿名性階層型IDベース暗号方式において、ペアリング演算の回数を一定回数にすることを目的とする。ユーザ識別子IDとパターンPとを用いる。ユーザ識別子IDは、k個の階層識別子を含む。パターンPは、階層識別子とワイルドカード値と空欄値とのいずれかを階層毎に含む。暗号化装置400は、ワイルドカード値の階層に対応する鍵値Hとパターン値の階層に対応する鍵値Hとを公開鍵PKから抽出し、暗号値Cと暗号値Cとを算出し、平文暗号値Cと暗号値Cと暗号値Cとを含む暗号文データCTを出力する。復号装置300は、ユーザ識別子IDからワイルドカード値に対応する階層の階層識別子を抽出し、抽出した階層識別子と暗号文データCTに含まれる暗号値Cと暗号値Cとを用いて暗号文データCTに含まれる平文暗号値Cを復号し、平文データMを出力する。

Description

暗号システム、暗号システムの暗号処理方法、暗号化装置、暗号化プログラム、復号装置、復号プログラム、セットアップ装置、セットアッププログラム、鍵生成装置、鍵生成プログラム、鍵委譲装置および鍵委譲プログラム
 本発明は、例えば、暗号システム、暗号システムの暗号処理方法、暗号化装置、暗号化プログラム、復号装置、復号プログラム、セットアップ装置、セットアッププログラム、鍵生成装置、鍵生成プログラム、鍵委譲装置および鍵委譲プログラムに関するものである。
 公開鍵暗号の技術分野の一つとして階層型IDベース暗号について多く実現方式が知られており、それぞれ実現方式は様々な特徴を有している。
 その中で、暗号文に匿名性を持たせることのできる匿名性階層型IDベース暗号方式がいくつか知られている(例えば特許文献1、非特許文献1)。
 匿名性とは、暗号文を見ても、どのID宛ての暗号文であるかがわからないという性質である。
 階層型IDベース暗号の使われ方によっては、匿名性が必要不可欠な性質となる場合がある。
 例えば、インターネットの掲示板やファイルサーバを利用して、階層型IDベース暗号の暗号文をある特定のユーザに送る場合を考える。
 ここで、宛先を知られることがまずい場合(例えば合併前の会社同士のやりとりであって、やりとりをしていること自体を知られることがまずい場合)には、匿名性のない方式を使用することはできない。
 なぜならば、暗号文が解析されることで宛先が漏洩してしまうからである。
 したがって、このような場合には匿名性が必要不可欠となる。
 また、階層型IDベース暗号は秘匿検索へも応用できることが知られている。秘匿検索とは、暗号化したままキーワード検索する技術であり、検索可能暗号とも言う。
 この場合にも匿名性が必要不可欠である。なぜならば、IDベース暗号におけるIDが秘匿検索におけるキーワードに対応しており、匿名性がない(すなわちIDが漏洩する)こととキーワードが漏洩することとが対応するからである。
 上述のとおり、暗号文に匿名性を持たせることのできる匿名性階層型IDベース暗号方式がいくつか知られている(例えば特許文献1、非特許文献1)。
 しかし、これらの方式では、同一内容の暗号文を複数の宛先IDに対して作成する場合、ID数分の暗号文を作成しなければならず、暗号文の個数が増大してしまう。
 そこで、発展方式として、1個の暗号文で同一階層に属するユーザ全員宛てに送ることのできる「ワイルドカード対応の匿名性階層型IDベース暗号方式」が知られている(非特許文献2)。
 また、「ワイルドカード対応の階層型IDベース暗号方式」を公開鍵型の秘匿検索の分野に応用することで、「グループ共有型公開鍵秘匿検索方式」を実現できることが知られている(非特許文献2)。
 「グループ共有型公開鍵秘匿検索方式」では、1個の暗号文をグループ内で共有することができ、グループ内の各ユーザが自分の秘密鍵を使って暗号文に対する検索用クエリを作成することができる。
特開2010-161523号公報
Xavier Boyen and Brent Waters, "Anonymous hierarchical identity-based encryption (without random oracles)," Crypto 2006, Lecture Notes in Computer Science, vol. 4117, pp. 290--307, 2006. Mitsuhiro Hattori, Takumi Mori, Takashi Ito, Nori Matsuda, Takeshi Yoneda, and Kazuo Ohta, "Anonymous HIBE with wildcards and its application to secure keyword search for group-oriented multi-user system," SCIS 2010, 2010. Dan Boneh, Eu-Jin Goh, and Kobbi Nissim, "Evaluating 2-DNF formulas on ciphertexts," Theory of Cryptography Conference, Lecture Notes in Computer Science, vol. 3378, pp. 325-341, 2005. Alfred J. Menezes, Paul C. van Oorschot, and Scott A. Vanstone, "Handbook of applied cryptography," 4.4 Prime number generation, CRC Press, pp. 145-154, 1996. Jae Hong Seo, Tetsutaro Kobayashi, Miyako Ohkubo, and Koutarou Suzuki, "Anonymous hierarchical identity-based encryption with constant size ciphertexts," Public Key Cryptography, Lecture Notes in Computer Science, vol. 5443, pp. 215-234, 2009. David Mandell Freeman, "Converting pairing-based cryptosystems from composite-order groups to prime-order groups," Eurocrypt 2010, Lecture Notes in Computer Science, vol. 6110, pp. 44-61, 2010. Elaine Shi and Brent Waters, "Delegating capabilities in predicate encryption systems," ICALP 2008, Lecture Notes in Computer Science, vol. 5126, pp. 560-578, 2008. Tatsuaki Okamoto and Katsuyuki Takashima, "Hierarchical predicate Encryption for inner-products," Asiacrypt 2009, Lecture Notes in Computer Science, vol. 5912, pp. 214-231, 2009.
 非特許文献2に記載の「ワイルドカード対応の匿名性階層型IDベース暗号方式」は、復号演算で最も時間がかかるペアリング演算の回数が階層の高さに比例してしまうため、大企業や官公庁のように大きな階層を持つ組織では利用しづらい。
 ペアリング演算の回数が階層の高さに比例してしまうのは、階層の高さに比例した個数の要素が暗号文の構成要素として含まれており、復号時にその各々をペアリング演算しなければならないためである。
 また、非特許文献2に記載の「ワイルドカード対応の匿名性階層型IDベース暗号方式」では、暗号化やユーザ秘密鍵の作成において対象となるユーザのユーザID(ユーザ識別子)を指定する際に、上位階層から順に漏れ無く要素を指定する必要がある。
 そのため、部・課・係などの階層を備える大規模な組織において、部直属のユーザのように、通常の階層構造から外れるユーザに対応することが出来なかった。
 つまり、対応可能な階層構造に制約があり、柔軟性が低いという課題があった。
 また、非特許文献2に記載の「グループ共有型公開鍵秘匿検索方式」は、「ワイルドカード対応の匿名性階層型IDベース暗号方式」と同様に、検索演算におけるペアリング演算の回数が階層数の高さに比例してしまうため、大企業や官公庁のように大きな階層を持つ組織では利用しづらい。
 また、非特許文献2には「ワイルドカード対応の匿名性階層型IDベース暗号方式」を用いて「グループ共有型公開鍵秘匿検索方式」を実現する方法は開示されていたが、「グループ共有型公開鍵秘匿検索方式」を実現するためのより一般的な方法は開示されていない。
 そのため、「グループ共有型公開鍵秘匿検索方式」を構成する際の選択肢が少ないという課題があった。
 また、非特許文献2には「グループ共有型公開鍵秘匿検索方式」においてグループ内で暗号文を共有し、グループにメンバを加入させる方法が開示されているが、グループからメンバを脱退させる方法は開示されていない。また、加入・脱退にかかわらずメンバ自体を失効させるための方法も開示されていない。
 そのため、異動や出向、あるいは退職があるような組織では利用しづらいという課題があった。
 本発明は、例えば、以下のようなことを目的とする。
 ワイルドカード対応の匿名性階層型IDベース暗号方式において、復号演算中のペアリング演算の回数が階層数に比例せず一定回数となるような方式を提供することを目的とする。
 また、グループ共有型公開鍵秘匿検索方式において、検索演算の中のペアリング演算の回数が階層数に比例せず一定回数となるような方式を提供することを目的とする。
 また、グループ共有型公開鍵秘匿検索方式を実現するためのより一般的な方法を提供することを目的とする。
 また、グループ共有型公開鍵秘匿検索方式において、グループからメンバを脱退する方法を提供することを目的とする。
 また、グループ共有型公開鍵秘匿検索方式においてメンバを失効させる方法を提供することを目的とする。
 本発明の暗号システムは、階層構造を有する組織内で第k階層(kは2以上の特定の整数)に属する特定ユーザのユーザ識別子を第k階層を識別する階層識別子として含むと共に第1階層から第k-1階層までの階層を識別するk-1個の階層識別子を含むユーザ識別子IDを用いる暗号システムである。
 前記暗号システムは、暗号化装置と復号装置とを備える。
 前記暗号化装置は、暗号化する平文データMを入力し、k個の階層に対応付けられたk個の鍵値Hを含むH鍵値群を含んだ公開鍵PKを入力し、入力した平文データMを暗号化して平文暗号値Cを算出し、階層識別子と任意のユーザを意味するワイルドカード値と不要な階層を意味する空欄値とのいずれかを階層毎にパターン値として含んだパターンPを入力し、入力したパターンPに基づいて前記パターン値がワイルドカード値である階層をワイルドカード階層として判定し、入力した公開鍵PKに含まれるH鍵値群から前記ワイルドカード階層に対応付けられた鍵値Hをワイルドカード鍵値として抽出し、抽出したワイルドカード鍵値を用いて前記平文暗号値Cの復号に用いるワイルドカード暗号値Cを算出し、入力したパターンPに基づいて前記パターン値が階層識別子である階層を識別階層として判定し、入力した公開鍵PKに含まれるH鍵値群から前記識別階層に対応付けられた鍵値Hを識別鍵値として抽出し、抽出した識別鍵値を用いて前記平文暗号値Cの復号に用いる識別暗号値Cを算出し、算出した平文暗号値Cとワイルドカード暗号値Cと識別暗号値Cとを含むと共に前記ワイルドカード階層を示すワイルドカード階層値Wを含む暗号文データCTを生成し、生成した暗号文データCTを出力する。
 前記復号装置は、前記暗号文データCTと前記ユーザ識別子IDとを入力し、入力した暗号文データCTに含まれるワイルドカード階層値Wに基づいて入力したユーザ識別子IDから前記ワイルドカード階層の階層識別子をワイルドカード識別子として抽出し、抽出したワイルドカード識別子と入力した暗号文データCTに含まれるワイルドカード暗号値Cと識別暗号値Cとを用いて入力した暗号文データCTに含まれる平文暗号値Cを復号し、前記平文暗号値Cを復号して得られる前記平文データMを出力する。
 本発明によれば、例えば、ワイルドカード対応の匿名性階層型IDベース暗号方式において、復号演算中のペアリング演算の回数が階層数に比例せず一定回数になる。
実施の形態1における階層型IDベース暗号システム100の構成図。 実施の形態1における階層型IDベース暗号システム100の階層構造の一例を示す図。 実施の形態1における階層型IDベース暗号システム100のユーザ識別子IDの一例を示す図。 実施の形態1における階層型IDベース暗号システム100のパターンPの一例を示す図。 実施の形態1におけるセットアップ装置200の概要図。 実施の形態1におけるセットアップ装置200の機能構成図。 実施の形態1における復号装置300の概要図。 実施の形態1における復号装置300の機能構成図。 実施の形態1における暗号化装置400の概要図。 実施の形態1における暗号化装置400の機能構成図。 実施の形態1におけるセットアップ装置200によるセットアップ方法を示すフローチャート。 実施の形態1におけるセットアップ装置200による鍵生成方法を示すフローチャート。 実施の形態1における復号装置300による鍵委譲方法を示すフローチャート。 実施の形態1における暗号化装置400による暗号化方法を示すフローチャート。 実施の形態1における復号装置300による復号方法を示すフローチャート。 実施の形態における階層型IDベース暗号システム100のハードウェア資源の一例を示す図。 実施の形態3における公開鍵秘匿検索システム110の構成図。 実施の形態3における復号装置300の概要図。 実施の形態3における検索装置500の概要図。 実施の形態3における検索装置500の機能構成図。 実施の形態3における階層型IDベース暗号システム100の階層構造の一例を示す図。 実施の形態3における階層型IDベース暗号システム100のパターンPWの一例を示す図。 実施の形態3における暗号化装置400による暗号化方法を示すフローチャート。 実施の形態3における復号装置300によるクエリ生成方法を示すフローチャート。 実施の形態3における検索装置500による検索方法を示すフローチャート。 実施の形態4におけるユーザ識別子IDの一例を示す図。 実施の形態4における削除者リストの一例を示す図。 実施の形態4における検索装置500の検索方法を示すフローチャート。 実施の形態5におけるユーザ識別子IDの一例を示す図。 実施の形態5におけるパターンPの一例を示す図。
 実施の形態1.
 「ワイルドカード対応の匿名性階層型IDベース暗号方式」の実現方法について説明する。
 図1は、実施の形態1における階層型IDベース暗号システム100の構成図である。
 実施の形態1における階層型IDベース暗号システム100の構成について、図1に基づいて説明する。
 階層型IDベース暗号システム100(暗号システムの一例)は、セットアップ装置200(鍵生成装置の一例)と復号装置300(鍵委譲装置の一例)と暗号化装置400とを備える。
 セットアップ装置200と復号装置300と暗号化装置400とは、それぞれにネットワークに接続し、互いに通信を行う。
 階層型IDベース暗号システム100には複数の復号装置300が存在し、セットアップ装置200と複数の復号装置300とはツリー状の階層構造を構成している。
 図1では、セットアップ装置200が階層構造の根(第0階層)を構成し、4台の復号装置300A-Dが2つの階層(第1、2階層)を構成している。
 復号装置300A・Bは第1階層を構成し、復号装置300C・Dは復号装置300Aを上位の復号装置300(親装置)として第2階層を構成している。
 但し、復号装置300の台数は2または3台であっても構わないし、5台以上であっても構わない。
 また、複数の復号装置300は3階層以上の階層を構成しても構わない。
 セットアップ装置200は、各復号装置300によって共通に使用される公開鍵PK(公開鍵データ)を生成すると共に、第1階層の復号装置300毎にユーザ秘密鍵SKを生成する。
 セットアップ装置200は、第1階層に限らず第2階層以下の階層の復号装置300を対象にしてユーザ秘密鍵SKを生成しても構わない。
 暗号化装置400は、暗号化されていないデータ(以下、「平文データM」という)を暗号化し、暗号文データCTを生成する。
 復号装置300は、暗号化装置400によって生成された暗号文データCTを公開鍵PKと自己のユーザ秘密鍵SKとを用いて復号し、平文データMを生成する。
 また、復号装置300は、自己のユーザ秘密鍵SKを用いて下位の復号装置300(子装置)毎にユーザ秘密鍵SKを生成する。
 例えば、復号装置300Aは、自己のユーザ秘密鍵SK(ID)を用いて、復号装置300C用のユーザ秘密鍵SK(ID)と復号装置300D用のユーザ秘密鍵SK(ID)とを生成する。
 図2は、実施の形態1における階層型IDベース暗号システム100の階層構造の一例を示す図である。
 階層型IDベース暗号システム100を適用するA社の階層構造について、図2に基づいて説明する。
 例えば、階層型IDベース暗号システム100は会社組織に適用することができる。
 ここで、A社には総務部、開発部、広報部などの「部」が存在し、「部」には人事課、経理課などの「課」が存在し、「課」には採用係、研修係などの「係」が存在しているものとする。
 この場合、「部」を第1階層、「課」を第2階層、「係」を第3階層として扱い、社員を第4階層として扱う。但し、社員はいずれかの「係」に配属されるものとは限らず、「部」または「課」に直属で配属されても構わない。図2では、田中さんが総務部の直属の社員である。
 そして、A社はセットアップ装置200と暗号化装置400とを所有する。
 また、各「部」は部長が使用する復号装置300を所有し、各「課」は課長が使用する復号装置300を所有し、各「係」は係長が使用する復号装置300を所有する。
 さらに、各社員は復号装置300を所有する。
 また、部長、課長、係長および社員(それぞれユーザの一例)には各自を識別する「ユーザ識別子ID」を割り当てる。
 さらに、個人(ユーザ)または部署(階層)毎に暗号処理用のデータ「パターンP」を予め定義しておく。
 図3は、実施の形態1における階層型IDベース暗号システム100のユーザ識別子IDの一例を示す図である。
 階層型IDベース暗号システム100を適用するA社内のユーザ識別子IDについて、図3に基づいて説明する。
 ユーザ識別子IDは、階層数と同じ個数の要素(識別子)を含んだデータである。
 つまり、A社の階層数は「4」(図2参照)であるため、A社で使用するユーザ識別子IDには4つの要素が含まれる。
 図中において、「φ」は不要な階層(対応する情報が無い階層)を意味する要素(空欄値)である。
 例えば、総務部長のユーザ識別子IDは(総務部、φ、φ、φ)であり、人事課長のユーザ識別子IDは(総務部、人事課、φ、φ)である。
 同様に、採用係長のユーザ識別子IDは(総務部、人事課、採用係、φ)であり、山田さんのユーザ識別子IDは(総務部、人事課、採用係、山田)である。
 また、総務部直属の社員である田中さんのユーザ識別子IDは(総務部、φ、φ、田中)となる。
 ユーザ識別子IDに含まれる要素は、数字、文字、記号またはそれらの組み合わせたものなど、自由に定めることができる。
 例えば、識別子“総務部”は文字列であっても構わないし、総務部に対応付けられた番号(整数値)であっても構わない。
 以下、ユーザ識別子IDに含まれる要素を「階層識別子」という。
 図4は、実施の形態1における階層型IDベース暗号システム100のパターンPの一例を示す図である。
 階層型IDベース暗号システム100を適用するA社内のパターンPについて、図4に基づいて説明する。
 パターンPは、階層数と同じ個数の要素(識別子)を含んだデータである。
 つまり、A社の階層数は「4」(図2参照)であるため、A社で使用するパターンPには4つの要素が含まれる。
 図中において、「*」は当該部署または階層に属する任意の個人(全てのユーザ)を意味する要素(ワイルドカード値)である。
 例えば、山田さん用のパターンPは(総務部、人事課、採用係、山田)であり、人事課長用のパターンPは(総務部、人事課、φ、φ)であり、総務部直属の田中さん用のパターンPは(総務部、φ、φ、田中)である。
 このように、個人用のパターンPはユーザ識別子IDと同一である(図3参照)。
 また、採用係に属する社員用のパターンPは(総務部、人事課、採用係、*)であり、総務部に属する課長用のパターンPは(総務部、*、φ、φ)である。
 さらに、部長または課長用のパターンPは(*、*、φ、φ)であり、部長、課長、係長または社員用のパターンPは(*、*、*、*)である。
 このように、個人用ではなく部署または階層用のパターンPには「*」が含まれる。
 以下、パターンPに含まれる要素を「パターン値」という。
 次に、階層型IDベース暗号システム100を構成する各装置(図1参照)について説明する。
 図5は、実施の形態1におけるセットアップ装置200の概要図である。
 実施の形態1におけるセットアップ装置200の概要について、図5に基づいて説明する。
 セットアップ装置200は、セットアップ処理部210と鍵生成処理部220とセットアップ記憶部290(鍵生成記憶部の一例)とを備える。
 セットアップ処理部210は、セキュリティパラメータλと階層数Lとを入力し、公開鍵PKとマスタ秘密鍵MSKとを生成し、生成した公開鍵PKとマスタ秘密鍵MSKとを出力する。
 鍵生成処理部220は、公開鍵PKとマスタ秘密鍵MSKとユーザiのユーザ識別子IDとを入力し、ユーザiのユーザ秘密鍵SK(ID)を生成し、生成したユーザiのユーザ秘密鍵SK(ID)を出力する。
 セットアップ記憶部290は、セットアップ装置200で使用するデータを記憶する記憶部である。
 例えば、セキュリティパラメータλ、階層数L、公開鍵PK、マスタ秘密鍵MSK、ユーザ識別子ID、ユーザ秘密鍵SK(ID)は、セットアップ記憶部290に記憶されるデータの一例である。
 図6は、実施の形態1におけるセットアップ装置200の機能構成図である。
 実施の形態1におけるセットアップ装置200の機能構成について、図6に基づいて説明する。
 セットアップ装置200(鍵生成装置の一例)は、前述の通り、セットアップ処理部210と鍵生成処理部220とセットアップ記憶部290(鍵生成記憶部の一例)とを備える。
 セットアップ処理部210は、例えば、L個(Lは2以上の特定の整数)の階層を有する組織に属するユーザの公開鍵PKを生成する。
 セットアップ処理部210は、セットアップ入力部211、セットアップ前処理部212、公開鍵値算出部213、公開鍵生成部214、マスタ秘密鍵生成部215およびセットアップ出力部216を備える。
 セットアップ入力部211は、セットアップ入力処理を行う。
 例えば、セットアップ入力部211は、セキュリティパラメータλと階層数Lとを入力する。
 セットアップ前処理部212(要素値選択部の一例)は、セットアップ前処理(要素値選択処理を含む)を行う。
 例えば、セットアップ前処理部212は、セットアップ前処理において以下の処理を行う。
 セットアップ前処理部212は、セキュリティパラメータλに基づいて素数pと素数qとの積nを位数とする巡回群Gであってn個の要素値を含む巡回群Gを算出する。
 セットアップ前処理部212は、算出した巡回群Gの一部を構成する部分群Gであって素数pを位数とする部分群GからL個の要素値をL個の階層に対応付けてL個の鍵値hとして選択する。
 セットアップ前処理部212は、前記部分群GからL個の要素値をL個の階層に対応付けてL個の鍵値h’として選択する。
 セットアップ前処理部212は、算出した巡回群Gの一部を構成する部分群Gであって素数qを位数とする部分群GからL個の要素値をL個の階層に対応付けてL個の鍵値Rとして選択する。
 セットアップ前処理部212は、前記部分群GからL個の要素値をL個の階層に対応付けてL個の鍵値R’として選択する。
 公開鍵値算出部213は、公開鍵値算出処理を行う。
 例えば、公開鍵値算出部213は、公開鍵値算出処理において以下の処理を行う。
 公開鍵値算出部213は、セットアップ前処理部212により選択されたL個の鍵値hとL個の鍵値Rとを階層毎に乗算してL個の階層に対応付けられたL個の鍵値HをH鍵値群として算出する。
 公開鍵値算出部213は、セットアップ前処理部212により選択されたL個の鍵値h’とL個の鍵値R’とを階層毎に乗算してL個の階層に対応付けられたL個の鍵値H’をH’鍵値群として算出する。
 公開鍵生成部214は、公開鍵生成処理を行う。
 例えば、公開鍵生成部214は、公開鍵生成処理において以下の処理を行う。
 公開鍵生成部214は、公開鍵値算出部213により算出されたH鍵値群とH’鍵値群とを含んだ公開鍵PKを生成する。
 マスタ秘密鍵生成部215は、マスタ秘密鍵生成処理を行う。
 例えば、マスタ秘密鍵生成部215は、マスタ秘密鍵生成処理において以下の処理を行う。
 マスタ秘密鍵生成部215は、セットアップ前処理部212により選択されたL個の鍵値hをh鍵値群として含んだマスタ秘密鍵MSKを生成する。
 セットアップ出力部216は、セットアップ出力処理を行う。
 例えば、セットアップ出力部216は、公開鍵生成部214により生成された公開鍵PKとマスタ秘密鍵生成部215により生成されたマスタ秘密鍵MSKとを出力する。
 鍵生成処理部220は、例えば、階層構造を有する組織内で第k階層(kは2以上の特定の整数)に属する特定ユーザのユーザ秘密鍵SKを生成する。
 鍵生成処理部220は、鍵生成入力部221、鍵生成前処理部222、ユーザ秘密鍵値算出部223およびユーザ秘密鍵生成部224を備える。
 鍵生成入力部221は、鍵生成入力処理を行う。
 例えば、鍵生成入力部221は、鍵生成入力処理において以下の処理を行う。
 鍵生成入力部221は、特定ユーザのユーザ識別子を第k階層を識別する階層識別子として含むと共に第1階層から第k-1階層までの階層を識別するk-1個の階層識別子を含むユーザ識別子IDを入力する。
 鍵生成入力部221は、k個の階層に対応付けられたk個の鍵値hを含むh鍵値群とk個の階層に対応付けられたk個の鍵値h’を含むh’鍵値群とを含むマスタ秘密鍵MSKを入力する。
 鍵生成前処理部222は、鍵生成前処理を行う。
 例えば、鍵生成前処理部222は、ユーザ識別子IDに含まれる階層識別子が文字列である場合、階層識別子を文字列から整数値に変換する。
 ユーザ秘密鍵値算出部223は、ユーザ秘密鍵値算出処理を行う。
 例えば、ユーザ秘密鍵値算出部223は、ユーザ秘密鍵値算出処理において以下の処理を行う。
 ユーザ秘密鍵値算出部223は、鍵生成入力部221が入力したユーザ識別子IDとマスタ秘密鍵MSKとを用いて、暗号文データCTの復号に用いる鍵値aを算出する。
 ユーザ秘密鍵生成部224は、ユーザ秘密鍵生成処理を行う。
 例えば、ユーザ秘密鍵生成部224は、ユーザ秘密鍵生成処理において以下の処理を行う。
 ユーザ秘密鍵生成部224は、ユーザ秘密鍵値算出部223により算出された鍵値aを含んだユーザ秘密鍵SKを生成し、生成したユーザ秘密鍵SKを出力する。
 図7は、実施の形態1における復号装置300の概要図である。
 実施の形態1における復号装置300の概要について、図7に基づいて説明する。
 復号装置300は、復号処理部310と鍵委譲処理部320と復号記憶部390(鍵委譲記憶部の一例)とを備える。
 但し、最下層の復号装置300(例えば、社員用の復号装置300)には鍵委譲処理部320を備えなくても構わない。
 復号処理部310は、公開鍵PKとユーザiのユーザ秘密鍵SK(ID)とユーザi用に生成された暗号文データCTとユーザiのユーザ識別子IDとを入力し、暗号文データCTを復号して平文データMを生成し、生成した平文データMを出力する。
 鍵委譲処理部320は、公開鍵PKとユーザiのユーザ秘密鍵SK(ID)とユーザiの一つ下の階層に属するユーザjのユーザ識別子IDとを入力し、ユーザjの秘密鍵SK(ID)を生成し、生成したユーザjの秘密鍵SK(ID)を出力する。
 復号記憶部390は、復号装置300で使用するデータを記憶する記憶部である。
 例えば、公開鍵PK、ユーザ秘密鍵SK(ID)、暗号文データCT、ユーザ識別子ID、平文データMは、復号記憶部390に記憶されるデータの一例である。
 図8は、実施の形態1における復号装置300の機能構成図である。
 実施の形態1における復号装置300の機能構成について、図8に基づいて説明する。
 復号装置300(鍵委譲装置の一例)は、前述の通り、復号処理部310と鍵委譲処理部320と復号記憶部390(鍵委譲記憶部の一例)とを備える。
 復号処理部310は、復号入力部311、復号前処理部312および復号部313を備える。
 復号入力部311は、復号入力処理を行う。
 例えば、復号入力部311は、復号入力処理において以下の処理を行う。
 復号入力部311は、暗号文データCTとユーザ識別子IDとを入力する。
 暗号文CTは、平文データMを暗号化した平文暗号値Cと特定のワイルドカード暗号値Cと特定の識別暗号値Cとワイルドカード階層値Wとを含む。ワイルドカード階層値Wは、パターンPに含まれるパターン値がワイルドカード値である階層を示す。
 復号前処理部312は、復号前処理を行う。
 例えば、復号前処理部312は、ユーザ識別子IDに含まれる階層識別子が文字列である場合、階層識別子を文字列から整数値に変換する。
 復号部313は、復号処理を行う。
 例えば、復号部313は、復号処理において以下の処理を行う。
 復号部313は、復号入力部311が入力した暗号文データCTに基づいて、復号部313が入力したユーザ識別子IDから前記ワイルドカード階層値Wによって示される階層の階層識別子をワイルドカード識別子として抽出する。
 復号部313は、抽出したワイルドカード識別子と前記暗号文データCTに含まれるワイルドカード暗号値Cと識別暗号値Cとを用いて、前記暗号文データCTに含まれる平文暗号値Cを復号する。
 復号部313は、前記平文暗号値Cを復号して得られる前記平文データMを出力する。
 鍵委譲処理部320は、階層構造を有する組織内で第k階層(kは2以上の特定の整数)に属するユーザjのユーザ秘密鍵SKを生成する。
 鍵委譲処理部320は、鍵委譲入力部321、鍵委譲前処理部322、委譲鍵値算出部323および委譲鍵生成部324を備える。
 鍵委譲入力部321は、鍵委譲入力処理を行う。
 例えば、鍵委譲入力部321は、鍵委譲入力処理において以下の処理を行う。
 鍵委譲入力部321は、ユーザjのユーザ識別子を第k階層を識別する階層識別子として含むと共に第1階層から第k-1階層までの階層を識別するk-1個の階層識別子を含むユーザ識別子IDを入力する。
 鍵委譲入力部321は、第k-1階層に属するユーザiのユーザ秘密鍵SKであって暗号文データCTの復号に用いる鍵値aを含んだユーザ秘密鍵SKを入力する。
 鍵委譲前処理部322は、鍵委譲前処理を行う。
 例えば、鍵委譲前処理部322は、ユーザ識別子IDに含まれる階層識別子が文字列である場合、階層識別子を文字列から整数値に変換する。
 委譲鍵値算出部323は、委譲鍵値算出処理を行う。
 例えば、委譲鍵値算出部323は、委譲鍵値算出処理において以下の処理を行う。
 委譲鍵値算出部323は、鍵委譲入力部321が入力したユーザ識別子IDとユーザ秘密鍵SKとを用いて、前記暗号文データCTの復号に用いる鍵値xを算出する。
 委譲鍵生成部324は、委譲鍵生成処理を行う。
 例えば、委譲鍵生成部324は、委譲鍵生成処理において以下の処理を行う。
 委譲鍵生成部324は、委譲鍵値算出部323により算出された鍵値xを含んだユーザ秘密鍵SKを生成し、生成したユーザ秘密鍵SKを出力する。
 図9は、実施の形態1における暗号化装置400の概要図である。
 実施の形態1における暗号化装置400の概要について、図9に基づいて説明する。
 暗号化装置400は、暗号処理部410と暗号化記憶部490とを備える。
 暗号処理部410は、公開鍵PKと(個人または)階層i用のパターンPと平文データMとを入力し、平文データMを暗号化して(個人または)階層i用の暗号文データCTを生成し、生成した暗号文データCTを出力する。
 暗号化記憶部490は、暗号化装置400で使用するデータを記憶する記憶部である。
 例えば、公開鍵PK、パターンP、平文データM、暗号文データCTは、暗号化記憶部490に記憶されるデータの一例である。
 図10は、実施の形態1における暗号化装置400の機能構成図である。
 実施の形態1における暗号化装置400の機能構成について、図10に基づいて説明する。
 暗号化装置400は、前述の通り、暗号処理部410と暗号化記憶部490とを備える。
 暗号処理部410は、暗号化入力部411、暗号化前処理部412、暗号値算出部413および暗号文生成部414を備える。
 暗号化入力部411は、暗号化入力処理を行う。
 例えば、暗号化入力部411は、暗号化入力処理において以下の処理を行う。
 暗号化入力部411は、暗号化する平文データMを入力する。
 暗号化入力部411は、k個(kは2以上の特定の整数)の階層に対応付けられたk個の鍵値Hを含むH鍵値群を含んだ公開鍵PKを入力する。
 暗号化入力部411は、階層を識別する階層識別子と任意のユーザを意味するワイルドカード値と不要な階層を意味する空欄値とのいずれかを階層毎にパターン値として含んだパターンPを入力する。
 暗号化前処理部412は、暗号化前処理を行う。
 例えば、暗号化前処理部412は、パターンPに含まれるパターン値(例えば、階層識別子)が文字列である場合、パターン値を文字列から整数値に変換する。
 暗号値算出部413は、暗号値算出処理を行う。
 例えば、暗号値算出部413は、暗号値算出処理において以下の処理を行う。
 暗号値算出部413は、暗号化入力部411が入力した平文データMを暗号化して平文暗号値Cを算出する。
 暗号値算出部413は、暗号化入力部411が入力したパターンPに基づいて前記パターン値がワイルドカード値である階層をワイルドカード階層として判定する。
 暗号値算出部413は、暗号化入力部411が入力した公開鍵PKに含まれるH鍵値群から前記ワイルドカード階層に対応付けられた鍵値Hをワイルドカード鍵値として抽出する。
 暗号値算出部413は、抽出したワイルドカード鍵値を用いて前記平文暗号値Cの復号に用いるワイルドカード暗号値Cを算出する。
 暗号値算出部413は、前記パターンPに基づいて前記パターン値が階層識別子である階層を識別階層として判定する。
 暗号値算出部413は、前記公開鍵PKに含まれるH鍵値群から前記識別階層に対応付けられた鍵値Hを識別鍵値として抽出する。
 暗号値算出部413は、抽出した識別鍵値を用いて前記平文暗号値Cの復号に用いる識別暗号値Cを算出する。
 暗号文生成部414は、暗号文生成処理を行う。
 例えば、暗号文生成部414は、暗号文生成処理において以下の処理を行う。
 暗号文生成部414は、暗号値算出部413により算出された平文暗号値Cとワイルドカード暗号値Cと識別暗号値Cとを含むと共に前記ワイルドカード階層を示すワイルドカード階層値Wを含む暗号文データCTを生成する。
 暗号文生成部414は、生成した暗号文データCTを出力する。
 次に、階層型IDベース暗号システム100を構成する各装置(図1参照)の処理方法について説明する。
 図11は、実施の形態1におけるセットアップ装置200によるセットアップ方法を示すフローチャートである。
 セットアップ装置200のセットアップ処理部210が実行するセットアップ方法の処理の流れについて、図11に基づいて説明する。
 S110において、セットアップ入力部211は、セキュリティパラメータλと階層数Lと入力装置またはセットアップ記憶部290から入力する。
 S110の後、S120に進む。
 S120において、セットアップ前処理部212は、セキュリティパラメータλに基づいて素数p、qを生成(算出)し、生成した素数p、qを乗算して合成数n(=pq)を算出する。
 セットアップ前処理部212は、算出した合成数nと所定の写像eと、S110で入力されたセキュリティパラメータλと階層数Lとに基づいて群G、Gを生成する。
 群G、Gは合成数nを位数とする巡回群であり、n個の要素値を含む。巡回群G、Gは加法群と乗法群とのどちらであっても構わない。以下、巡回群G、Gが乗法群であるものとして説明を続ける。
 写像eは2つの入力値から1つの出力値を得る関数であり、次の性質(a)(b)を満たす。
Figure JPOXMLDOC01-appb-M000001
 性質(a)(b)を満たす写像eをペアリングという。ペアリングeは以下のように表すことができる。
Figure JPOXMLDOC01-appb-M000002
 ペアリングeの演算を「ペアリング演算」という。
 ペアリングeによって定義される群G、Gを「ペアリング群」という。
 例えば、ペアリング群G、Gとして、楕円曲線上の有理点から成る群Gと有限体上の群Gとが挙げられる。
 群Gと群Gとのペアリングは対称ペアリングと非対称ペアリングとのどちらであっても構わない。以下、対称ペアリングを対象にして説明を続ける。非対称ペアリングを対象にする場合については、当業者であれば以下の説明から容易に理解し得ることである。
 素数p、qの生成方法は、例えば、非特許文献4に開示されている。
 ペアリング群G、Gの生成方法は、例えば、非特許文献3に開示されている。
 S120の後、S130に進む。
 S130において、セットアップ前処理部212は、群Gを用いて群Gの一部を構成する部分群Gを生成する。部分群Gは素数pを位数としてp個の要素値を含む要素値群である。
 セットアップ前処理部212は、式[SU1]に示すように、生成した部分群Gから複数の要素値をランダムに選択する。
Figure JPOXMLDOC01-appb-M000003
 S130の後、S131に進む。
 S131において、セットアップ前処理部212は、群Gを用いて群Gの一部を構成する部分群Gを生成する。部分群Gは素数qを位数としてq個の要素値を含む要素値群である。
 セットアップ前処理部212は、式[SU2]に示すように、生成した部分群Gから複数の要素値をランダムに選択する。
Figure JPOXMLDOC01-appb-M000004
 S131の後、S140に進む。
 S140において、公開鍵値算出部213は、S130で選択された複数の要素値とS131で選択された複数の要素値とを用いて複数の公開鍵値を算出する。
 以下に、複数の公開鍵値を算出する複数の算出式[SU3]を示す。
Figure JPOXMLDOC01-appb-M000005
 S140の後、S150に進む。
 S150において、公開鍵生成部214は、S140で算出された複数の公開鍵値を含んだ公開鍵PKを生成する。
 以下に、公開鍵PKを表す式[SU4]を示す。
Figure JPOXMLDOC01-appb-M000006
 S150の後、S160に進む。
 S160において、マスタ秘密鍵生成部215は、S130で選択された複数の要素値をマスタ秘密鍵値として含んだマスタ秘密鍵MSKを生成する。
 以下に、マスタ秘密鍵MSKを表す式[SU5]を示す。
Figure JPOXMLDOC01-appb-M000007
 S160の後、S170に進む。
 S170において、セットアップ出力部216は、S150で生成された公開鍵PKとS160で生成されたマスタ秘密鍵MSKとをセットアップ記憶部290に記憶する。
 また、セットアップ出力部216は、システム全体で使用できるように公開鍵PKをシステムの共有サーバ(図示省略)に記憶する。但し、セットアップ出力部216は、公開鍵PKを各復号装置300および暗号化装置400に送信しても構わない。
 S170により、セットアップ方法の処理は終了する。
 図12は、実施の形態1におけるセットアップ装置200による鍵生成方法を示すフローチャートである。
 セットアップ装置200の鍵生成処理部220が実行する鍵生成方法の処理の流れについて、図12に基づいて説明する。
 S210において、鍵生成入力部221は、セットアップ処理部210により生成された公開鍵PKとマスタ秘密鍵MSKとをセットアップ記憶部290から入力する。
 鍵生成入力部221は、特定のユーザiに割り当てられたユーザ識別子IDを入力装置またはセットアップ記憶部290から入力する。
 S210の後、S220に進む。
 S220において、鍵生成前処理部222は、ユーザ識別子IDを構成する要素を整数値群Zに含まれるいずれかの整数値に変換する。整数値群Zは、0からn-1までの整数値で構成される群である。図11のS120で説明したように、nは素数pと素数qとの積であり、群Gの位数である。
 例えば、鍵生成前処理部222は、要素を表す2進数を10進数の整数値に変換する。鍵生成前処理部222は、得られた10進数の整数値を法nで剰余演算し、剰余値を整数値として求めてもよい。
 また、鍵生成前処理部222は、ハッシュ関数に要素を代入して整数値を得てもよい。
 また、要素と整数値とを対応付けた変換テーブルをセットアップ記憶部290に予め記憶しておき、鍵生成前処理部222が要素に対応する整数値をセットアップ記憶部290から取得しても構わない。
 但し、ユーザ識別子IDを構成する全ての要素が整数値である場合、S220を実行する必要はない。また、ユーザ識別子IDを構成する複数の要素のうち整数値で表す要素については、S220を実行しなくても構わない。
 S220の後、S230に進む。
 S230において、鍵生成前処理部222は、式[KG1]に示すように、整数値群Z(0からn-1の整数値)から複数の整数値をランダムに選択する。
 但し、条件式[KG1-1]を満たさない場合、鍵生成前処理部222は複数の整数値を選択し直す。
Figure JPOXMLDOC01-appb-M000008
 S230の後、S240に進む。
 S240において、鍵生成前処理部222は、ユーザ識別子IDに含まれる複数の要素のうち空欄値「φ」以外の要素を判定する。
 さらに、鍵生成前処理部222は、空欄値「φ」以外の要素に対応する階層の番号を「非空欄階層値D」として判定する。以下、空欄値「φ」以外の要素に対応する階層を「非空欄階層」という。
 また、鍵生成前処理部222は、ユーザ識別子IDに含まれる複数の要素のうち空欄値「φ」を示す要素を判定し、空欄値「φ」を示す要素に対応する階層の番号を「空欄階層値N」として判定する。以下、空欄値「φ」を示す要素に対応する階層を「空欄階層」という。
 以下に、非空欄階層値Dを表す式[KG2]と空欄階層値Nを表す式[KG3]とを示す。
Figure JPOXMLDOC01-appb-M000009
 例えば、図3に示した経理課長のユーザ識別子ID(総務部、経理課、φ、φ)の場合、非空欄階層値Dは「1」と「2」であり、空欄階層値Nは「3」と「4」である。
 また、田中さんのユーザ識別子ID(総務部、φ、φ、田中)の場合、非空欄階層値Dは「1」と「4」であり、空欄階層値Nは「2」と「3」である。
 S240の後、S250に進む。
 S250において、ユーザ秘密鍵値算出部223は、マスタ秘密鍵MSKとユーザ識別子IDとユーザ識別子IDの非空欄階層値DとS230で選択された整数値とを用いて、複数の復号鍵値を算出する。
 ここで、ユーザiの属する階層の番号を「K」とする。
 以下に、複数の復号鍵値を算出する複数の算出式[KG4]を示す。
Figure JPOXMLDOC01-appb-M000010
 S250の後、S251に進む。
 S251において、ユーザ秘密鍵値算出部223は、S250と同様に複数の撹乱鍵値(A)を算出する。
 以下に、複数の撹乱鍵値(A)を算出する複数の算出式[KG5]を示す。
Figure JPOXMLDOC01-appb-M000011
 S251の後、S252に進む。
 S252において、ユーザ秘密鍵値算出部223は、S251と同様に複数の撹乱鍵値(B)を算出する。
 以下に、複数の撹乱鍵値(B)を算出する複数の算出式[KG6]を示す。
Figure JPOXMLDOC01-appb-M000012
 S252の後、S260に進む。
 S260において、ユーザ秘密鍵生成部224は、S250で算出された複数の復号鍵値を含んだ復号鍵dkを生成する。
 さらに、ユーザ秘密鍵生成部224は、S251で算出された複数の撹乱鍵値(A)とS252で算出された複数の撹乱鍵値(B)とを含んだ撹乱鍵rkを生成する。
 以下に、復号鍵dkを表す式[KG7]と撹乱鍵rkを表す式[KG8]とを示す。
Figure JPOXMLDOC01-appb-M000013
 S260の後、S270に進む。
 S270において、ユーザ秘密鍵生成部224は、S260で生成した復号鍵dkと撹乱鍵rkとを用いてユーザiのユーザ秘密鍵SKを生成する。
 そして、ユーザ秘密鍵生成部224は、生成したユーザ秘密鍵SKを出力する。例えば、ユーザ秘密鍵生成部224は、生成したユーザ秘密鍵SKをユーザiの復号装置300へ送信する。
 以下に、ユーザiのユーザ秘密鍵SKを表す式[KG9]を示す。
Figure JPOXMLDOC01-appb-M000014
 S270により、鍵生成方法の処理は終了する。
 ユーザ秘密鍵SKに含まれる復号鍵dkは、復号装置300が暗号文データCTの復号に用いるデータであり、ユーザ秘密鍵SKに含まれる撹乱鍵rkは、復号装置300が鍵委譲に用いるデータである。
 鍵委譲とは、復号装置300が自己のユーザ秘密鍵SKを用いて下位層に属するユーザのユーザ秘密鍵を生成する処理である。
 図13は、実施の形態1における復号装置300による鍵委譲方法を示すフローチャートである。
 復号装置300の鍵委譲処理部320が実行する鍵委譲方法の処理の流れについて、図13に基づいて説明する。
 S310において、鍵委譲入力部321は、公開鍵PKを入力装置、共有サーバ(図示省略)または復号記憶部390から入力する。
 鍵委譲入力部321は、ユーザiのユーザ秘密鍵SK(ID)を入力装置または復号記憶部390から入力する。ユーザiは、例えば、この復号装置を使用するユーザである。
 鍵委譲入力部321は、ユーザjのユーザ識別子IDを入力装置または復号記憶部390から入力する。ユーザjは、ユーザiの一つ下の階層に属するユーザあってユーザ秘密鍵の委譲先のユーザである。
 以下、ユーザj(委譲先)の属する階層の番号を「k」とし、ユーザiの属する階層の番号を「k-1」とする。
 S310の後、S320に進む。
 S320において、鍵委譲前処理部322は、ユーザ識別子IDに含まれる要素Iを整数値群Z(0からn-1の整数値)に含まれるいずれかの整数値に変換する。
 要素Iは、ユーザ識別子IDに含まれる複数の要素のうちk番目の要素、つまり、ユーザj(委譲先)が属する第k階層に対応する要素である。
 変換方法は、S220(図12参照)と同様である。
 S320の後、S330に進む。
 S330において、鍵委譲前処理部322は、式[KT1]に示すように、整数値群Zから複数の整数値をランダムに選択する。
 但し、条件式[KT1-1]を満たさない場合、鍵委譲前処理部322は複数の整数値を選択し直す。
Figure JPOXMLDOC01-appb-M000015
 S330の後、S340に進む。
 S340において、委譲鍵値算出部323は、ユーザ秘密鍵SK(ID)に含まれるユーザiの復号鍵dk(ID)とユーザjのユーザ識別子IDに含まれる要素Iとを用いて、複数の作業値(a)を算出する。
 以下に、複数の作業値(a)を算出する算出式[KT2]を示す。
Figure JPOXMLDOC01-appb-M000016
 S340の後、S341に進む。
 S341において、委譲鍵値算出部323は、ユーザ秘密鍵SK(ID)に含まれるユーザiの撹乱鍵rk(ID)とユーザjのユーザ識別子IDに含まれる要素Iとを用いて、複数の作業値(b)を算出する。
 以下に、複数の作業値(b)を算出する算出式[KT3]を示す。
Figure JPOXMLDOC01-appb-M000017
 S341の後、S342に進む。
 S342において、委譲鍵値算出部323は、S341と同様に複数の作業値(c)を算出する。
 以下に、複数の作業値(c)を算出する算出式[KT4]を示す。
Figure JPOXMLDOC01-appb-M000018
 S342の後、S350に進む。
 S350において、委譲鍵値算出部323は、S340からS342で算出した作業値(a)-(c)とS330で選択された整数値とを用いて、複数の復号鍵値を算出する。
 以下に、複数の復号鍵値を算出する算出式[KT5]を示す。
Figure JPOXMLDOC01-appb-M000019
 S350の後、S351に進む。
 S351において、委譲鍵値算出部323は、S341で算出した作業値(b)とS342で算出した作業値(c)とS330で選択された整数値とを用いて、複数の撹乱鍵値(A)を算出する。
 以下に、複数の撹乱鍵値(A)を算出する算出式[KT6]を示す。
Figure JPOXMLDOC01-appb-M000020
 S351の後、S352に進む。
 S352において、委譲鍵値算出部323は、S351と同様に複数の撹乱鍵値(B)を算出する。
 以下に、複数の撹乱鍵値(B)を算出する算出式[KT7]を示す。
Figure JPOXMLDOC01-appb-M000021
 S352の後、S360に進む。
 S360において、委譲鍵生成部324は、S350で算出された複数の復号鍵値を用いて、ユーザjの復号鍵dk(ID)を生成する。
 さらに、委譲鍵生成部324は、S351で算出された複数の撹乱鍵値(A)とS352で算出された複数の撹乱鍵値(B)とを用いて、撹乱鍵rk(ID)を生成する。
 以下に、ユーザjの復号鍵dk(ID)を表す式[KT8]とユーザjの撹乱鍵rk(ID)を表す式[KT9]とを示す。
Figure JPOXMLDOC01-appb-M000022
 S360の後、S370に進む。
 S370において、委譲鍵生成部324は、S360で生成した復号鍵dk(ID)と撹乱鍵rk(ID)とを用いてユーザjのユーザ秘密鍵SK(ID)を生成し、生成したユーザ秘密鍵SK(ID)を復号記憶部390に記憶する。
 また、委譲鍵生成部324は、生成したユーザ秘密鍵SK(ID)を出力する。例えば、委譲鍵生成部324は、生成したユーザ秘密鍵SK(ID)をユーザjの復号装置300へ送信する。
 以下に、ユーザjのユーザ秘密鍵SK(ID)を表す式[KT10]を示す。
Figure JPOXMLDOC01-appb-M000023
 S370により、鍵委譲方法の処理は終了する。
 但し、ユーザjの一つ下の階層に属するユーザj2のユーザ秘密鍵SK(IDj2)を生成する場合には、ユーザiをユーザjに置き換えると共にユーザjをユーザj2に置き換えて鍵委譲方法の処理(S310-S370)を繰り返す。
 図12で説明した鍵生成方法と図13で説明した鍵委譲方法とで見掛け上の処理は異なるが、鍵生成方法と鍵委譲方法とは同一ユーザについて同一のユーザ秘密鍵SKを生成することができる。
 そのため、鍵生成方法と鍵委譲方法とのいずれかを用いて、特定のユーザのユーザ秘密鍵SKを生成すればよい。
 図14は、実施の形態1における暗号化装置400による暗号化方法を示すフローチャートである。
 暗号化装置400の暗号処理部410が実行する暗号化方法の処理の流れについて、図14に基づいて説明する。
 S410において、暗号化入力部411は、公開鍵PKを入力装置、共有サーバ(図示省略)または復号記憶部390から入力する。
 暗号化入力部411は、ユーザi用のパターンPを入力装置、共有サーバまたは復号記憶部390から入力する。ユーザiは、暗号文データCTを復号できる一人のユーザまたは複数のユーザを意味する。
 暗号化入力部411は、平文データMを入力装置または復号記憶部390から入力する。
 S410の後、S420に進む。
 S420において、暗号化前処理部412は、パターンPに含まれる要素を整数値群Z(0からn-1の整数値)に含まれるいずれかの整数値に変換する。
 変換方法は、S220(図12参照)と同様である。
 S420の後、S421に進む。
 S421において、暗号化前処理部412は、式[EN1]に示すように、整数値群Zから整数値ρをランダムに選択する。
Figure JPOXMLDOC01-appb-M000024
 S421の後、S422に進む。
 S422において、暗号化前処理部412は、パターンPに含まれる複数の要素のうちワイルドカード値「*」を示す要素を判定する。
 さらに、暗号化前処理部412は、ワイルドカード値「*」を示す要素に対応する階層の番号を「ワイルドカード階層値W」として判定する。以下、ワイルドカード値「*」を示す要素に対応する階層を「ワイルドカード階層」という。
 また、暗号化前処理部412は、パターンPに含まれる複数の要素のうち空欄値「φ」を示す要素を判定し、空欄値「φ」を示す要素に対応する階層の番号を「空欄階層値N」として判定する。以下、空欄値「φ」を示す要素に対応する階層を「空欄階層」という。
 また、暗号化前処理部412は、パターンPに含まれる複数の要素のうちワイルドカード値「*」および空欄値「φ」以外の要素を判定し、ワイルドカード値「*」および空欄値「φ」以外の要素に対応する階層の番号を「識別階層値D」として判定する。以下、ワイルドカード値「*」および空欄値「φ」以外の要素に対応する階層を「識別階層」という。
 以下に、ワイルドカード階層値Wを表す式[EN2]と空欄階層値Nを表す式[EN3]と識別階層値Dを表す式[EN4]とを示す。
Figure JPOXMLDOC01-appb-M000025
 例えば、図4に示したパターンP(総務部、*、φ、φ)の場合、ワイルドカード階層値Wは「2」であり、空欄階層値Nは「3」と「4」であり、識別階層値Dは「1」である。
 また、パターンP(総務部、φ、φ、田中)の場合、ワイルドカード階層値Wは無く、空欄階層値Nは「2」と「3」であり、識別階層値Dは「1」と「4」である。
 S422の後、S423に進む。
 S423において、暗号化前処理部412は、ワイルドカード階層値Wに基づいて整数値群Zから複数の整数値をランダムに選択し、選択した整数値毎に整数値を公開鍵PKに含まれる公開鍵値gにべき乗する。
 この処理は、式[EN5]に示すように、素数qを位数とする群Gから複数の要素値をランダムに選択することと等しい。
Figure JPOXMLDOC01-appb-M000026
 S423の後、S430に進む。
 S430において、暗号値算出部413は、公開鍵PKとパターンPと平文データMとS421で選択された整数値ρとS423で算出された複数の整数値とを用いて、複数の暗号値を算出する。
 以下に、複数の暗号値を算出する複数の算出式[EN6]を示す。
Figure JPOXMLDOC01-appb-M000027
 S430の後、S440に進む。
 S440において、暗号文生成部414は、S422で判定されたワイルドカード階層値WとS430で算出された複数の暗号値とを用いてユーザi用の暗号文データCTを生成し、生成した暗号文データCTを暗号化記憶部490に記憶する。
 以下に、暗号文CTを表す式[EN7]を示す。
Figure JPOXMLDOC01-appb-M000028
 また、暗号文生成部414は、生成した暗号文データCTを出力する。例えば、暗号文生成部414は、暗号文データCTを共有サーバ(図示省略)に記憶する。
 S440により、暗号化方法の処理は終了する。
 上記の暗号化方法において、平文データMはペアリング群G(図11のS120参照)の要素であるものとする。
 但し、平文データMがペアリング群Gの要素でない場合、ハイブリッド暗号方式を用いればよい。ハイブリッド暗号方式において、平文データMはセッション鍵を用いて共通鍵暗号方式で暗号化する。そして、平文データMをセッション鍵に置き換えて上記暗号化方法の処理を実行する。
 図15は、実施の形態1における復号装置300による復号方法を示すフローチャートである。
 復号装置300の復号処理部310が実行する復号方法の処理の流れについて、図15に基づいて説明する。
 S510において、復号入力部311は、公開鍵PKと暗号文データCTとを入力装置、共有サーバ(図示省略)または復号記憶部390から入力する。
 復号入力部311は、ユーザiのユーザ秘密鍵SK(ID)とユーザ識別子IDとを入力装置または復号記憶部390から入力する。ユーザiは、暗号文データCTを復号するユーザであって、この復号装置300を使用するユーザである。
 S510の後、S520に進む。
 S520において、復号前処理部312は、ユーザ識別子IDに含まれる要素を整数値群Z(0からn-1の整数値)に含まれるいずれかの整数値に変換する。
 変換方法は、S220(図12参照)と同様である。
 S520の後、S521に進む。
 S521において、復号前処理部312は、ユーザ識別子IDに基づいて非空欄階層値Dを判定する。
 判定方法は、S240(図12参照)と同様である。
 S521の後、S530に進む。
 S530において、復号部313は、暗号文データCTとユーザ識別子IDとS521で判定した非空欄階層値Dとを用いて、複数の作業値を算出する。
 以下に、複数の作業値を算出する複数の算出式[DE1]を示す。
Figure JPOXMLDOC01-appb-M000029
 S530の後、S540に進む。
 S540において、復号部313は、暗号文データCTとユーザ秘密鍵SK(ID)と公開鍵PKに含まれる写像の関数eとS530で算出した複数の作業値とを用いて平文データMを算出する。
 以下に、平文データMを算出する算出式[DE2]を示す。
Figure JPOXMLDOC01-appb-M000030
 復号部313は、算出した平文データMを出力する。例えば、復号部313は、平文データMを表示装置に表示する。
 S540により、復号方法は終了する。
 階層型IDベース暗号システム100において、平文データMの暗号化に使用されたパターンPに該当する正当なユーザであれば、自分のユーザ秘密鍵SKとユーザ識別子IDとを用いて暗号化データCTを復号することができる。
 パターンPに含まれる複数の要素pのうちユーザ識別子IDの非空欄階層(≠φ)に対応する要素pがユーザ識別子IDの要素Iまたはワイルドカード値「*」であり、復号処理(図15のS530)でワイルドカード値「*」がユーザ識別子IDの要素Iで「焼き直し」されるからである。
 一方、パターンPに該当するユーザ以外の不正なユーザは、自分のユーザ秘密鍵SKとユーザ識別子IDとを用いて暗号化データCTを復号することができない。
 復号処理でワイルドカード値「*」が不正なユーザ識別子IDの要素Iで「焼き直し」されるからである。
 以下に、暗号文データCTを復号して得られる平文データMと暗号化する前の平文データMとの関係式を示す。
Figure JPOXMLDOC01-appb-M000031
 一行目の式は、上記式[DE2](図15のS540参照)である。
 二行目の式は、一行目の右辺を上記式「DE1」(図15のS530参照)に基づいて展開した式である。
 三行目の式は、二行目の式を以下に示すペアリング群の(性質1)に基づいて展開した式である。
 四行目の式は、三行目の式の分母を分解した式である。
 そして、四行目の式の分母と分子とで共通項を消去することにより平文データMが得られる。
 以下に、ペアリング群の性質(1)を示す。
Figure JPOXMLDOC01-appb-M000032
 階層型IDベース暗号システム100は、暗号文の匿名性を確保することができる。なお、ここでいう匿名性とは、非特許文献5のANON-sIDで定義されるような安全性のことをいう。言い換えれば、暗号文からワイルドカード箇所を除く要素pすなわちユーザ識別子に関する情報が漏洩しないという性質である。
 また、暗号文の秘匿性を確保することができる。なお、ここでいう秘匿性とは、非特許文献5のIND-sIDで定義されるような安全性のことをいう。言い換えれば、暗号文から平文に関する情報が漏洩しないという性質である。
 上記の匿名性および秘匿性については、暗号分野で一般的なシミュレーションベースの安全性証明によって示される。その際の数論仮定は、非特許文献5に記載の仮定と同じである。当業者であればその安全性について理解でき、必要であれば安全性証明を再現できるものと考える。
 本実施の形態では対称ペアリングを用いて構成する方法を説明したが、これを非対称ペアリングを用いる構成に拡張することは、当業者であれば容易に理解し得ることである。
 本実施の形態によれば、ワイルドカード対応の匿名性階層型IDベース暗号方式を実現することができる。すなわち、階層内のある層に属する全てのユーザに対してユーザ毎に暗号文を生成する必要がなく、1つの暗号文を生成すればよい。
 これにより、暗号文のサイズ(数)を低減することができる。
 さらに、復号演算(図15のS540参照)において、ペアリングeの演算回数を階層数に比例した回数ではなく、一定回数(具体的には3回)にすることができる。
 これは、暗号文の構成要素の中で階層数に比例する要素を除去したためである。
 これにより、大企業や官公庁のように大きな階層を持つ組織においても高速な復号演算を実現することができる。
 さらに、中間の階層に対応付けてユーザ識別子に空欄「φ」をおくことができる。
 これにより、図2に示した田中さんのように通常の階層構造から外れるようなユーザにも柔軟に対応することができる。
 つまり、特異な階層構造にも柔軟に対応できるという効果がある。
 実施の形態において、セットアップ装置200は、セットアップ装置(セットアップ処理部210)と鍵生成装置(鍵生成処理部220)とに分割しても構わない。
 また、復号装置300は、復号装置(復号処理部310)と鍵委譲装置(鍵委譲処理部320)とに分割しても構わない。
 図16は、実施の形態における階層型IDベース暗号システム100のハードウェア資源の一例を示す図である。
 図16において、セットアップ装置200、復号装置300、暗号化装置400および検索装置500(実施の形態3参照)は、CPU901(Central Processing Unit)を備えている。CPU901は、バス902を介してROM903、RAM904、通信ボード905、ディスプレイ装置911、キーボード912、マウス913、ドライブ装置914、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。ドライブ装置914は、FD(Flexible Disk Drive)、CD(Compact Disc)、DVD(Digital Versatile Disc)などの記憶媒体を読み書きする装置である。
 通信ボード905は、有線または無線で、LAN(Local Area Network)、インターネット、電話回線などの通信網に接続している。
 磁気ディスク装置920には、OS921(オペレーティングシステム)、プログラム群922、ファイル群923が記憶されている。
 プログラム群922には、実施の形態において「~部」として説明する機能を実行するプログラムが含まれる。プログラムは、CPU901により読み出され実行される。すなわち、プログラムは、「~部」としてコンピュータを機能させるものであり、また「~部」の手順や方法をコンピュータに実行させるものである。
 ファイル群923には、実施の形態において説明する「~部」で使用される各種データ(入力、出力、判定結果、計算結果、処理結果など)が含まれる。
 実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
 実施の形態において「~部」として説明するものは「~回路」、「~装置」、「~機器」であってもよく、また「~ステップ」、「~手順」、「~処理」であってもよい。すなわち、「~部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
 実施の形態2.
 合成数n(=pq)を位数とするペアリング群を用いる代わりに、素数pを位数とするペアリング群の直積を用いる形態について説明する。
 以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
 以下、合成数を位数とするペアリング群のことを「合成数位数のペアリング群」といい、素数を位数とするペアリング群のことを「素数位数のペアリング群」という。
 素数位数pのペアリング群(非対称ペアリング群)の直積から成る直積群は、式(2-1)で定義される。
Figure JPOXMLDOC01-appb-M000033
 直積群の一部を構成する部分群は式(2-2)で定義される。
Figure JPOXMLDOC01-appb-M000034
 ペアリングeは式(2-3)で定義される。
Figure JPOXMLDOC01-appb-M000035
 上記の定義において性質(2)が成り立つ。
Figure JPOXMLDOC01-appb-M000036
 この性質(2)は次のように確かめることができる。
Figure JPOXMLDOC01-appb-M000037
 この性質(2)は、実施の形態1で説明した性質(1)と同等の性質である。
 したがって、素数位数pのペアリング群の直積を用いて、階層型IDベース暗号システム100を構成することができる。
 つまり、実施の形態1で説明した各群を以下のように上記の各群に置き換えることにより、階層型IDベース暗号システム100を構成することができる。
Figure JPOXMLDOC01-appb-M000038
 ここでは、素数位数のペアリング群の直積を用いる場合の一例を示した。
 但し、合成数位数のペアリング群を素数位数のペアリング群に変換する変換方法を用いても構わない。このような変換方法は、例えば、非特許文献6に開示されている。
 本実施の形態によれば、合成数位数のペアリング群ではなく、素数位数のペアリング群を用いてワイルドカード対応の匿名性階層型IDベース暗号方式を実現することができる。
 通常、素数位数のペアリング群は合成数位数のペアリング群よりも小さいビットサイズで同等の安全性を実現できる。
 したがって、暗号文や秘密鍵のサイズを実施の形態1よりも小さくすることができる。
 また、ビットサイズが小さいほど群演算の時間は短縮される。つまり、演算速度を実施の形態1よりも向上させることができる。
 また、実施の形態1と同様に、復号演算で行うペアリング演算の回数を階層数に比例した回数ではなく、一定の回数にすることができる。
 実施の形態3.
 実施の形態1、2で説明した「ワイルドカード対応の匿名性階層型IDベース暗号方式」を応用して「グループ共有型公開鍵秘匿検索方式」について説明する。
 以下、実施の形態1、2と異なる事項について主に説明する。説明を省略する事項については実施の形態1、2と同様である。
 図17は、実施の形態3における公開鍵秘匿検索システム110の構成図である。
 実施の形態3における公開鍵秘匿検索システム110の構成について、図17に基づいて説明する。
 公開鍵秘匿検索システム110は、実施の形態1で説明した階層型IDベース暗号システム100の構成(図1参照)に加えて、検索装置500を備える。
 検索装置500は、暗号化装置400により生成された複数の暗号文データCTを記憶した検索記憶部590(暗号文記憶部の一例)を備える。
 検索装置500は、検索クエリQKを入力し、入力した検索クエリQKを用いて検索記憶部590を検索し、検索クエリQKに該当する暗号文データCTを出力する。
 復号装置300は、検索装置500によって検索された暗号文データCTを復号し、平文データMを出力する。
 図18は、実施の形態3における復号装置300の概要図である。
 実施の形態3における復号装置300の概要について、図18に基づいて説明する。
 復号装置300は、実施の形態1で説明した構成(図7参照)に加えて、クエリ生成処理部330を備える。
 クエリ生成処理部330は、クエリ生成入力部、クエリ生成前処理部、クエリ鍵値算出部およびクエリ生成部(図示省略)を備える。
 クエリ生成処理部330は、公開鍵PKとユーザiのユーザ秘密鍵SK(ID)とユーザiのユーザ識別子IDとキーワードKWとを入力し、検索クエリQK(ID,KW)を出力する。
 図19は、実施の形態3における検索装置500の概要図である。
 実施の形態3における検索装置500の概要について、図19に基づいて説明する。
 検索装置500は、検索処理部510と検索記憶部590とを備える。
 検索処理部510は、公開鍵PKと検索クエリQK(ID,KW)とを入力し、検索記憶部590に記憶された暗号文データCTを検索し、検索クエリQK(ID,KW)に該当する暗号文データCTを出力する。
 検索記憶部590は、検索装置500で使用するデータを記憶する記憶部である。
 公開鍵PK、検索クエリQK(ID,KW)、暗号文データCTは検索記憶部590に記憶されるデータの一例である。
 図20は、実施の形態3における検索装置500の機能構成図である。
 実施の形態3における検索装置500の機能構成について、図20に基づいて説明する。
 検索装置500は、前述の通り、検索処理部510と検索記憶部590とを備える。
 検索記憶部590は、複数の暗号文データCTと複数の暗号文データCTWとを予め記憶する。
 暗号文データCTWは、暗号化装置400(図10参照)によって以下のように生成される。
 暗号値算出部413は、特定の平文データMWを暗号化して平文暗号値CWを算出する。
 暗号化入力部411は、前記暗号文データCTの検索に用いるキーワードKWを入力する。
 暗号値算出部413は、前記パターンPを含むと共に前記キーワードKWを第K+1階層を識別する階層識別子として含むパターンPWを用いてワイルドカード暗号値CWと識別暗号値CWとを算出する。
 暗号文生成部414は、算出された平文暗号値CWとワイルドカード暗号値CWと識別暗号値CWとを含んだ暗号文データCTWを生成し、生成した暗号文データCTWを前記暗号文データCTに対応付けて出力する。
 図20に戻り、検索装置500の説明を続ける。
 検索処理部510は、検索クエリ入力部511と検索部512と検索結果出力部513とを備える。
 検索クエリ入力部511は、検索クエリ入力処理を行う。
 例えば、検索クエリ入力部511は、検索クエリQKとワイルドカード階層値Wとを入力する。
 検索クエリQKは、復号装置300(図18参照)によって以下のように生成される。
 クエリ生成処理部330のクエリ生成入力部(図示省略)は、前記ユーザ識別子IDと前記キーワードKWとを入力する(クエリ生成入力)。
 クエリ生成処理部330のクエリ鍵値算出部(図示省略)は、入力されたユーザ識別子IDとキーワードKWとを用いて前記平文暗号値CWの復号に用いる鍵値aWを算出する(クエリ鍵値算出処理)。
 クエリ生成処理部330のクエリ生成部(図示省略)は、算出された鍵値aWと前記ユーザ識別子IDとを含んだ検索クエリQKを生成し、生成した検索クエリQKを出力する(検索クエリ生成処理)。
 図20に戻り、検索装置500の説明を続ける。
 検索部512は、検索記憶部590から暗号文データCTWを選択する。
 検索部512は、入力されたワイルドカード階層値Wに基づいて入力された検索クエリQKに含まれるユーザ識別子IDから前記ワイルドカード階層の階層識別子をワイルドカード識別子として抽出する。
 検索部512は、抽出したワイルドカード識別子と選択した暗号文データCTWに含まれるワイルドカード暗号値CWと識別暗号値CWと入力された検索クエリQKに含まれる鍵値aWとを用いて、選択した暗号文データCTWに含まれる平文暗号値CWを復号する。
 検索部512は、前記平文暗号値CWを復号して得られた復号データが前記平文データMWと一致するか否かを判定する。
 検索部512は、前記復号データが前記平文データMWと一致した場合、選択した暗号文データCTWに対応する暗号文データCTを検索記憶部590から取得する。
 検索結果出力部513は、取得された暗号文データCTを入力された検索クエリQKに対する検索結果として出力する。
 図21は、実施の形態3における階層型IDベース暗号システム100の階層構造の一例を示す図である。
 図22は、実施の形態3における階層型IDベース暗号システム100のパターンPWの一例を示す図である。
 図21に示すように階層構造にはキーワード用の階層(第5階層)が含まれ、図22に示すようにパターンPWにはパターンPと暗号文データCTの検索用のキーワードKWとが含まれる。
 図23は、実施の形態3における暗号化装置400による暗号化方法を示すフローチャートである。
 実施の形態3における暗号化方法の処理の流れについて、図23に基づいて説明する。
 S411において、暗号化入力部411は、S410(図14参照)と同様に、公開鍵PKとユーザi用のパターンPWと平文データMとを入力する。
 S411の後、S420に進む。
 S420-S440において、暗号処理部410は、パターンPWに含まれるパターンPを用いてユーザi用の暗号文データCTを生成する(図14参照)。
 S440の後、S450に進む。
 S450において、暗号化前処理部412は、暗号文データCTを入力として所定のハッシュ関数hを計算し、暗号文データCTのハッシュ値h(CT)を算出する。
 ハッシュ値h(CT)は暗号文データCTを群Gの要素に写した値である。例えば、ハッシュ値h(CT)は、暗号文データCTをビット列として入力した場合のハッシュ関数SHA-1の出力値である。
 S450の後、S460に進む。
 S460-S480において、暗号処理部410は、S450で算出されたハッシュ値h(CT)を平文データMWとしてS420-S440と同様に、パターンPWを用いてユーザi用の暗号文データCTWを生成する。このとき、キーワードKWに対応する階層は「識別階層」として扱う。
 S480の後、S490に進む。
 S490において、暗号文生成部414は、S440で生成した暗号文データCTとS480で生成した暗号文CTWとを含んだ暗号文データCTを生成し、生成した暗号文データCTを出力する。
 S490により、暗号化方法の処理は終了する。
 図24は、実施の形態3における復号装置300によるクエリ生成方法を示すフローチャートである。
 復号装置300のクエリ生成処理部330が実行するクエリ生成方法の処理の流れについて、図24に基づいて説明する。
 S610において、クエリ生成処理部330は、公開鍵PKとユーザiのユーザ秘密鍵SK(ID)とユーザiのユーザ識別子IDとキーワードKWとを入力する。
 S610の後、S620に進む。
 S620-S650において、クエリ生成処理部330は、ユーザ識別子IDにキーワードKWを加えたデータをユーザjのユーザ識別子IDとして扱い、鍵委譲処理部320と同様に(図13のS320-S350参照)、複数の復号鍵値を算出する。
 S650の後、S660に進む。
 S660において、クエリ生成処理部330は、ユーザiのユーザ識別子IDとS650で算出した複数の復号鍵値とを含んだ検索クエリQKを生成し、生成した検索クエリQKを出力する。
 S660により、クエリ生成方法の処理は終了する。
 図25は、実施の形態3における検索装置500による検索方法を示すフローチャートである。
 検索装置500の検索処理部510が実行する検索方法の処理の流れについて、図25に基づいて説明する。
 S710において、検索クエリ入力部511は、検索クエリQKと公開鍵PKとを入力する。
 S710の後、S711に進む。
 S711において、検索クエリ入力部511は、検索記憶部590から未処理の暗号文データCTを順番にまたはランダムに一つ選択する。
 S712の後、S720に進む。
 S720-S740において、検索部512は、公開鍵PKと検索クエリQKに含まれる復号鍵値と検索クエリQKに含まれるユーザ識別子IDと暗号文データCTに含まれる暗号文データCTWとを用いて、平文データMWを算出する。
 平文データMWの算出方法は、復号方法(図15のS520-S540参照)と同様である。
 S740の後、S750に進む。
 S750において、検索部512は、暗号文データCTWに含まれる暗号文データCTのハッシュ値h(CT)を算出する。
 ハッシュ値h(CT)の算出方法は、S450(図23参照)と同様である。
 S750の後、S760に進む。
 S760において、検索部512は、S740で算出した平文データMWとS750で算出したハッシュ値h(CT)とを比較する。
 平文データMWとハッシュ値h(CT)とが一致する場合(YES)、S770に進む。
 平文データMWとハッシュ値h(CT)とが一致しない場合(NO)、S711に戻る。
 S770において、検索部512は、暗号文データCTWに含まれる暗号文データCTを出力する。
 S770により、検索方法の処理は終了する。
 S770で出力された暗号文データCTは、実施の形態1で説明した復号方法(図15参照)により復号される。
 公開鍵秘匿検索システム110は、キーワードを秘匿したままキーワード検索を行うことができる。なぜならば、検索される暗号文が秘匿性に加えて匿名性を有しており、暗号文を見てもキーワードについて何ら情報を得ることが出来ないからである。
 また、ワイルドカードの使用に対応しているため、実施の形態1と同様にグループ内で暗号文を共有することができる。
 検索キーワードは複数設けても構わない。つまり、キーワードに対応する階層を複数設けても構わない。
 この場合、暗号文データCTは検索キーワードと同じ数の暗号文データCTWを含み、少なくともいずれかの暗号文データCTWについてハッシュ値h(CT)が一致した場合に検索にヒットしたと判定し、暗号文データCTを出力する。但し、全ての暗号文データCTWについてハッシュ値h(CT)が一致した場合に検索にヒットしたと判定しても構わない。さらに、暗号文データCTWの順番、つまり、検索キーワードの階層順序が一致した場合に検索にヒットしたと判定しても構わない。
 暗号化処理(図23参照)および検索方法(図25参照)において、ハッシュ値h(CT)の代わりに検索定数(例えば、定数0)を平文データMWとして扱ってもよい。つまり、検索時に復号された値が検索定数と一致した場合に検索にヒットしたと判定する。
 これにより、暗号文データCTと暗号文データCTW(暗号化キーワード)とを一緒に保持しておく必要はなくなり、別々に管理しておくことができる。したがって、データ管理の柔軟性を向上させることができる。
 本実施の形態では、検索クエリに検索ユーザのユーザ識別子を含ませる構成とした。これは、検索時に暗号文の中のワイルドカードに対応する要素を検索ユーザのユーザ識別子で「焼き直す」ためである。
 しかし、「焼き直し」を必要としない場合(すなわち自分宛の暗号文のみを検索する場合)には、検索クエリにユーザ識別子を含まない構成にしてもよい。
 このようにすれば、検索ユーザは検索装置に対して自らのユーザ識別子を隠したまま検索を依頼することができる。
 本実施の形態では、実施の形態1と同様に合成数位数のペアリング群を用いることもできるし、実施の形態2と同様に素数位数のペアリング群の直積を用いることもできる。
 また、より一般に、「委譲可能な秘匿ベクトル暗号」(Delegatable hidden vector encryption)を用いて「グループ共有型公開鍵秘匿検索」を実現することもできる。
 ここで言う「委譲可能な秘匿ベクトル暗号」とは、IDベース暗号または属性ベース暗号などのいわゆる述語暗号(Predicate encryption)または関数型暗号(Functional encryption)である。
 但し、「委譲可能な秘匿ベクトル暗号」は、鍵委譲の機能を備え、かつ暗号化のIDまたは属性としてワイルドカード相当の機能を備えているものとする。さらに、「委譲可能な秘匿ベクトル暗号」は、IDまたは属性の情報が暗号文から漏洩しない匿名性を備えているものとする。
 この具体的な実現方式には、例えば非特許文献7に記載のDelegatable HVEや、非特許文献8に記載のHierarchical predicate encryptionなどがある。
 それぞれの暗号方式によって具体的なアルゴリズムやパラメータ、あるいは根拠とする数論仮定は異なる。しかし、いずれの暗号方式も基本的には実施の形態1と同様にセットアップ手段、鍵生成手段、鍵委譲手段、暗号化手段および復号手段、またはそれらに類するものを含む構成となっている。このため、本実施の形態に開示した構成に準じた構成をとることにより、本実施の形態と同様に「グループ共有型公開鍵秘匿検索」を実現することができる。これは、当業者であれば容易に理解し得ることである。
 本実施の形態によれば、グループ共有型公開鍵秘匿検索を実現することができる。
 さらに、検索演算および復号演算(検索にヒットした暗号文を復号する演算)の中のペアリング演算の回数を階層数に比例せず一定回数(具体的には3回)にすることができる。
 これにより、大企業や官公庁のように大きな階層を持つ組織においても高速な検索および復号を実現することができる。
 さらに、実施の形態1と同様に、ユーザ秘密鍵の生成・委譲においても、また暗号化においても、ユーザ識別子を指定する際に中間の階層部分に空欄をおくことができる。
 これによって、図21に示した田中さんのように通常の階層構造から外れるようなユーザにも柔軟に対応することができる。つまり、特異な階層構造にも柔軟に対応することができる。
 さらに、より一般に、「委譲可能な秘匿ベクトル暗号」を用いて「グループ共有型公開鍵秘匿検索」を実現することができる。これによって、グループ共有型公開鍵秘匿検索方式を実現するためのより一般的な方法を提供することができる。
 実施の形態4.
 検索可能なユーザを追加または削除する形態について説明する。
 以下、実施の形態3と異なる事項について主に説明する。説明を省略する事項については実施の形態3と同様である。
 まず、検索可能なユーザを追加する形態について説明する。
 検索可能なユーザを追加するには、追加するユーザにユーザ識別子IDを割り当てればよい。
 図26は、実施の形態4におけるユーザ識別子IDの一例を示す図である。
 例えば、採用係に高橋さんが新たに配属された場合、図26に示すように高橋さんのユーザ識別子IDを生成する。
 採用係長は実施の形態1で説明した鍵委譲方法により高橋さんにユーザ秘密鍵SKを委譲し、高橋さんは委譲されたユーザ秘密鍵SKを用いて実施の形態3で説明したクエリ生成方法により検索クエリQKを生成する。
 また、人事課に査定係が新たに設けられた場合、図26に示すように査定係(査定係長)のユーザ識別子ID10を生成する。
 人事課長は査定係長にユーザ秘密鍵SKを委譲し、査定係長は委譲されたユーザ秘密鍵SKを用いて検索クエリを生成する。また、査定係長は委譲されたユーザ秘密鍵SKを用いて査定係の各社員にユーザ秘密鍵SKを委譲する。
 次に、検索可能なユーザを削除する形態について説明する。
 検索可能なユーザを削除するには、検索できないユーザのリスト(削除者リスト)を作成すればよい。
 図27は、実施の形態4における削除者リストの一例を示す図である。
 例えば、図27に示すような削除者リストを検索装置500の検索記憶部590(検索識別子記憶部の一例)に記憶しておく。
 削除者リストは、検索できないユーザ(検索権限が無いユーザ)のユーザ識別子ID(非検索識別子)の一覧を示す。
 例えば、採用係の山田さんが別の部署に異動になった場合、採用係長は山田さんのユーザ識別子ID13を検索装置500に入力し、削除者リストへの山田さんの登録を依頼する。検索装置500のユーザ管理部(図示省略)は、入力されたユーザ識別子ID13を図27に示すように削除者リストに追加することにより、削除者リストに山田さんを登録する。
 人事課の研修係が廃止になった場合、同様に、人事課長が削除者リストへの研修係の登録を依頼し、検索装置500のユーザ管理部が研修係のユーザ識別子ID37を図27に示すように削除者リストに追加する。
 また、山田さんが採用係に再び配属になった場合、採用係長は山田さんのユーザ識別子ID13を検索装置500に入力し、削除者リストからの消去を依頼する。検索装置500のユーザ管理部は、入力されたユーザ識別子ID13を削除者リストから消去する。
 人事課の研修係が復活した場合、同様に、人事課長が削除者リストからの消去を依頼し、検索装置500のユーザ管理部が研修係のユーザ識別子ID37を削除者リストから消去する。
 このとき、他人からの虚偽の依頼を防ぐため、依頼者の電子署名の入力を要求してもよい。検索装置500のユーザ管理部は入力された電子署名を従来の署名検証方法により検証し、電子署名が正しい場合に依頼を受け付ける。
 図28は、実施の形態4における検索装置500の検索方法を示すフローチャートである。
 実施の形態4における検索装置500の検索方法について、図28に基づいて説明する。
 実施の形態4では、実施の形態3で説明した処理(図25参照)に加えて、S712とS713とを実行する。
 S712において、検索クエリ入力部511は、検索クエリQKに含まれるユーザ識別子IDが削除者リストに含まれているか否かを判定する。つまり、検索クエリQKに含まれるユーザ識別子IDが削除者リストに含まれるユーザ識別子IDと一致するか否かを判定する。
 ユーザ識別子IDが削除者リストに含まれている場合(YES)、検索方法の処理を終了する。
 ユーザ識別子IDが削除者リストに含まれていない場合(NO)、S713に進む。
 例えば、検索クエリQKに山田さんのユーザ識別子ID13が含まれている場合、図23の削除者リストには山田さんのユーザ識別子ID13が含まれているため、検索方法の処理を終了する。
 この場合、山田さんは検索装置500を用いて検索を行うことができない。
 S713において、検索クエリ入力部511は、検索クエリQKに含まれるユーザ識別子IDより上位の階層のユーザ識別子IDが削除者リストに含まれているか否かを判定する。つまり、検索クエリQKに含まれるユーザ識別子IDが削除者リスト内のユーザ識別子IDを含んでいるか否かを判定する。
 ユーザ識別子IDより上位の階層のユーザ識別子が削除者リストに含まれている場合(YES)、検索方法の処理を終了する。
 ユーザ識別子IDより上位の階層のユーザ識別子が削除者リストに含まれていない場合(NO)、S711に進む。
 例えば、検索クエリQKに研修係の社員のユーザ識別子IDが含まれている場合、図23の削除者リストには研修係のユーザ識別子ID37が含まれているため、検索方法の処理を終了する。
 この場合、研修係の社員は検索装置500を用いて検索を行うことができない。
 ところで、削除者リストに含まれている山田さんが検索装置500に対して検索クエリを送る際、削除されていない別のユーザの名前を騙って検索依頼をする可能性もある。
 しかしその場合でも、山田さんは、採用係宛て(あるいはそれより広範囲の人事課宛てや総務部宛て、全社員宛ても含む)の暗号文を検索することができない。
 例えば、山田さんが佐藤さんの名前(ユーザ識別子)を使って検索依頼した場合、山田さんが属する採用係用のパターンPは図22に示したように社員名の欄(第4階層)がワイルドカードになっているはずである。
 したがって、検索手順の中で、暗号文の各要素のうちワイルドカードに対応する要素の「焼き直し」が行われる。山田さんは佐藤氏の名前を使っているので、暗号文のワイルドカードは佐藤さんの名前で焼き直される。
 一方、山田さんが送った検索クエリの中に含まれている復号鍵dkは、山田さんの名前を使って委譲された鍵であり、名前に対応する箇所には山田さんの名前が含まれている。
 このように、焼き直しに使われる名前(佐藤)と復号鍵に含まれる名前(山田)とが異なるので、仮にキーワードが一致していても、検索にヒットすることはない。
 ここでは、社員名の欄がワイルドカードになっている場合で説明したが、それ以外の欄がワイルドカードになっている場合でも同様である。
 したがって、削除されていない別のユーザの名前を使って検索依頼をしても、暗号文を検索することができない。
 なお、これを逆手にとれば、削除者リストに山田さんが含まれていても、山田さん宛ての暗号文を検索することができる。
 なぜならば、山田さん用のパターン(図22のパターンP)にはワイルドカードが含まれていないからである。このため、暗号文の「焼き直し」が発生せず、山田さんの復号鍵dkが有効に機能する。
 このようにするには、実施の形態3にも記載のように、山田さんの検索クエリの中にユーザ識別子IDを含まない構成にすればよい。
 本実施の形態は、実施の形態3と同様に、「委譲可能な秘匿ベクトル暗号」であればどの方式でも実現可能である。
 本実施の形態によれば、グループ(階層)に新たにユーザまたは下位グループを追加し、新たに追加したユーザまたは下位グループにキーワード検索を実行させることができる。
 また、グループからユーザまたは下位グループを削除して、そのグループに関連するキーワード検索をできないようにすることができる。
 したがって、ユーザやグループの追加および脱退に柔軟に対応することができる。
 実施の形態5.
 削除者リストに含まれるユーザが個人宛ての暗号文も検索できない形態について説明する。
 以下、実施の形態4と異なる事項について主に説明する。説明を省略する事項については実施の形態4と同様である。
 図29は、実施の形態5におけるユーザ識別子IDの一例を示す図である。
 図29に示すように、実施の形態5では社員(ユーザの一例)を対応付ける階層を複数設ける。
 例えば、山田さんのユーザ識別子IDには第4階層と第5階層との2つの階層に“山田”が含まれている。つまり、社員層が二重化されている。
 図30は、実施の形態5におけるパターンPの一例を示す図である。
 図30に示すように、実施の形態5では社員を対応付けた複数の階層のうち少なくとも1つの階層にワイルドカード値「*」を設定する。
 例えば、山田さん用のパターンPには、第4階層の要素としてワイルドカード値「*」が含まれている。
 これにより、ユーザの失効を実現することができる。なぜならば、そのユーザが検索できる暗号文には必ずワイルドカードが含まれ、検索クエリの中にユーザ識別子が必ず含まれるからである。また、実施の形態4で述べたように、他人の名前を使って検索クエリを出すことができないためである。
 したがって、削除者リストに名前が載れば、そのユーザは検索を行うことができなくなる。つまり、そのユーザの検索権限は失効する。
 本実施の形態において、社員層より上位の階層を失効させる場合には、その階層を多重化すればよい。また、予め、全ての階層を多重化してもおいてもよい。
 本実施の形態によれば、ユーザまたはグループを失効させ、キーワード検索をできないようにすることができる。
 したがって、ユーザやグループの失効に柔軟に対応することができる。
 100 階層型IDベース暗号システム、110 公開鍵秘匿検索システム、200 セットアップ装置、210 セットアップ処理部、211 セットアップ入力部、212 セットアップ前処理部、213 公開鍵値算出部、214 公開鍵生成部、215 マスタ秘密鍵生成部、216 セットアップ出力部、220 鍵生成処理部、221 鍵生成入力部、222 鍵生成前処理部、223 ユーザ秘密鍵値算出部、224 ユーザ秘密鍵生成部、290 セットアップ記憶部、300 復号装置、310 復号処理部、311 復号入力部、312 復号前処理部、313 復号部、320 鍵委譲処理部、321 鍵委譲入力部、322 鍵委譲前処理部、323 委譲鍵値算出部、324 委譲鍵生成部、330 クエリ生成処理部、390 復号記憶部、400 暗号化装置、410 暗号処理部、411 暗号化入力部、412 暗号化前処理部、413 暗号値算出部、414 暗号文生成部、490 暗号化記憶部、500 検索装置、510 検索処理部、511 検索クエリ入力部、512 検索部、513 検索結果出力部、590 検索記憶部、901 CPU、902 バス、903 ROM、904 RAM、905 通信ボード、911 ディスプレイ装置、912 キーボード、913 マウス、914 ドライブ装置、920 磁気ディスク装置、921 OS、922 プログラム群、923 ファイル群。

Claims (20)

  1.  階層構造を有する組織内で第k階層(kは2以上の特定の整数)に属する特定ユーザのユーザ識別子を第k階層を識別する階層識別子として含むと共に第1階層から第k-1階層までの階層を識別するk-1個の階層識別子を含むユーザ識別子IDを用いる暗号システムにおいて、
     暗号化する平文データMを入力し、入力した平文データMを暗号化して平文暗号値Cを算出し、階層識別子と任意のユーザを意味するワイルドカード値と不要な階層を意味する空欄値とのいずれかを階層毎にパターン値として含んだパターンPを入力し、入力したパターンPに基づいて前記パターン値がワイルドカード値である階層をワイルドカード階層として判定し、k個の階層に対応付けられたk個の鍵値Hを含むH鍵値群を含んだ公開鍵PKを入力し、入力した公開鍵PKに含まれるH鍵値群から前記ワイルドカード階層に対応付けられた鍵値Hをワイルドカード鍵値として抽出し、抽出したワイルドカード鍵値を用いて前記平文暗号値Cの復号に用いるワイルドカード暗号値Cを算出し、入力したパターンPに基づいて前記パターン値が階層識別子である階層を識別階層として判定し、入力した公開鍵PKに含まれるH鍵値群から前記識別階層に対応付けられた鍵値Hを識別鍵値として抽出し、抽出した識別鍵値を用いて前記平文暗号値Cの復号に用いる識別暗号値Cを算出し、算出した平文暗号値Cとワイルドカード暗号値Cと識別暗号値Cとを含むと共に前記ワイルドカード階層を示すワイルドカード階層値Wを含む暗号文データCTを生成し、生成した暗号文データCTを出力する暗号化装置と、
     前記暗号文データCTと前記ユーザ識別子IDとを入力し、入力した暗号文データCTに含まれるワイルドカード階層値Wに基づいて入力したユーザ識別子IDから前記ワイルドカード階層の階層識別子をワイルドカード識別子として抽出し、抽出したワイルドカード識別子と入力した暗号文データCTに含まれるワイルドカード暗号値Cと識別暗号値Cとを用いて入力した暗号文データCTに含まれる平文暗号値Cを復号し、前記平文暗号値Cを復号して得られる前記平文データMを出力する復号装置と
    を備えたことを特徴とする暗号システム。
  2.  前記公開鍵PKは、k個の階層に対応付けられたk個の鍵値H’を含むH’鍵値群を含み、
     前記暗号化装置は、入力した公開鍵PKに含まれるH’鍵値群から前記ワイルドカード階層に対応付けられた鍵値H’を第2のワイルドカード鍵値として抽出し、抽出した第2のワイルドカード鍵値を用いて前記平文暗号値Cの復号に用いるワイルドカード暗号値C’を算出し、入力した公開鍵PKに含まれるH’鍵値群から前記識別階層に対応付けられた鍵値H’を第2の識別鍵値として抽出し、抽出した第2の識別鍵値を用いて前記平文暗号値Cの復号に用いる識別暗号値C’を算出し、算出したワイルドカード暗号値C’と識別暗号値C’とを含めて前記暗号文データCTを出力し、
     前記復号装置は、抽出したワイルドカード識別子と入力した暗号文データCTに含まれるワイルドカード暗号値Cと識別暗号値Cとワイルドカード暗号値C’と識別暗号値C’とを用いて入力した暗号文データCTに含まれる平文暗号値Cを復号する
    ことを特徴とする請求項1記載の暗号システム。
  3.  前記暗号化装置は、さらに、特定の平文データMWを暗号化して平文暗号値CWを算出し、前記暗号文データCTの検索に用いるキーワードKWを入力し、前記パターンPを含むと共に前記キーワードKWを第K+1階層を識別する階層識別子として含むパターンPWを用いてワイルドカード暗号値CWと識別暗号値CWとを算出し、算出した平文暗号値CWとワイルドカード暗号値CWと識別暗号値CWとを含んだ暗号文データCTWを前記暗号文データCTに対応付けて出力し、
     前記暗号システムは、さらに、
     前記ユーザ識別子IDと前記キーワードKWとを入力し、入力したユーザ識別子IDとキーワードKWとを用いて前記平文暗号値CWの復号に用いる鍵値yを算出し、算出した鍵値yと前記ユーザ識別子IDとを含んだ検索クエリQKを生成し、生成した検索クエリQKを出力する検索クエリ生成装置と、
     複数の暗号文データCTと複数の暗号文データCTWとを対応付けて記憶する暗号文記憶部を有する検索装置とを備え、
     前記検索装置は、前記検索クエリQKと前記ワイルドカード階層値Wとを入力し、前記暗号文記憶部から暗号文データCTWを選択し、入力したワイルドカード階層値Wに基づいて入力した検索クエリQKに含まれるユーザ識別子IDから前記ワイルドカード階層の階層識別子をワイルドカード識別子として抽出し、抽出したワイルドカード識別子と選択した暗号文データCTWに含まれるワイルドカード暗号値CWと識別暗号値CWと入力した検索クエリQKに含まれる鍵値yとを用いて選択した暗号文データCTWに含まれる平文暗号値CWを復号し、前記平文暗号値CWを復号して得られた復号データが前記平文データMWと一致するか否かを判定し、前記復号データが前記平文データMWと一致した場合、選択した暗号文データCTWに対応する暗号文データCTを前記暗号文記憶部から取得し、取得した暗号文データCTを入力した検索クエリQKに対する検索結果として出力する
    ことを特徴とする請求項1記載の暗号システム。
  4.  前記暗号化装置は、前記暗号文データCTのハッシュ値を前記平文データMWとして算出し、算出した平文データMWを暗号化して前記平文暗号値CWを算出し、
     前記検索装置は、選択した暗号文データCTWに対応する暗号文データCTのハッシュ値を前記平文データMWとして算出し、前記復号データが算出した平文データMWと一致するか否かを判定する
    ことを特徴とする請求項3記載の暗号システム。
  5.  前記暗号化装置は、前記平文データMWとして所定の検索定数を予め記憶し、予め記憶した検索定数を暗号化して前記平文暗号値CWを算出し、
     前記検索装置は、前記平文データMWとして前記検索定数を予め記憶し、前記復号データが前記検索定数と一致するか否かを判定する
    ことを特徴とする請求項3記載の暗号システム。
  6.  前記検索装置は、検索する権限が無いユーザのユーザ識別子IDを非検索識別子として記憶する非検索識別子記憶部を備え、
     前記検索装置は、入力した検索クエリQKに含まれるユーザ識別子IDと前記非検索識別子記憶部に記憶された非検索識別子とが一致するか否かを判定し、前記ユーザ識別子IDと前記非検索識別子とが一致する場合に前記検索結果を出力しない
    ことを特徴とする請求項3記載の暗号システム。
  7.  前記検索装置は、検索する権限が無いユーザが属する階層より上位の階層の階層識別子を非検索識別子として記憶する非検索識別子記憶部を備え、
     前記検索装置は、入力した検索クエリQKに含まれるユーザ識別子IDに前記非検索識別子記憶部に記憶された非検索識別子が含まれるか否かを判定し、前記ユーザ識別子IDに前記非検索識別子が含まれる場合に前記検索結果を出力しない
    ことを特徴とする請求項3記載の暗号システム。
  8.  前記ユーザ識別子IDは、前記特定のユーザの第1のユーザ識別子を第k階層を識別する階層識別子として含むと共に前記特定のユーザの第2のユーザ識別子を第k+1階層を識別する階層識別子として含み、
     前記公開鍵PKに含まれるH鍵値群は、k+1個の階層に対応付けられたk+1個の鍵値Hを含み、
     前記パターンPは、第k階層と第k+1階層との少なくともいずれかの階層のパターン値としてワイルドカード値を含む
    ことを特徴とする請求項3記載の暗号システム。
  9.  階層構造を有する組織内で第k階層(kは2以上の特定の整数)に属する特定ユーザのユーザ識別子を第k階層を識別する階層識別子として含むと共に第1階層から第k-1階層までの階層を識別するk-1個の階層識別子を含むユーザ識別子IDを用いる暗号システムの暗号処理方法において、
     暗号化装置が、暗号化する平文データMを入力し、入力した平文データMを暗号化して平文暗号値Cを算出し、階層識別子と任意のユーザを意味するワイルドカード値と不要な階層を意味する空欄値とのいずれかを階層毎にパターン値として含んだパターンPを入力し、入力したパターンPに基づいて前記パターン値がワイルドカード値である階層をワイルドカード階層として判定し、k個の階層に対応付けられたk個の鍵値Hを含むH鍵値群を含んだ公開鍵PKを入力し、入力した公開鍵PKに含まれるH鍵値群から前記ワイルドカード階層に対応付けられた鍵値Hをワイルドカード鍵値として抽出し、抽出したワイルドカード鍵値を用いて前記平文暗号値Cの復号に用いるワイルドカード暗号値Cを算出し、入力したパターンPに基づいて前記パターン値が階層識別子である階層を識別階層として判定し、入力した公開鍵PKに含まれるH鍵値群から前記識別階層に対応付けられた鍵値Hを識別鍵値として抽出し、抽出した識別鍵値を用いて前記平文暗号値Cの復号に用いる識別暗号値Cを算出し、算出した平文暗号値Cとワイルドカード暗号値Cと識別暗号値Cとを含むと共に前記ワイルドカード階層を示すワイルドカード階層値Wを含む暗号文データCTを出力し、
     復号化装置が、前記暗号文データCTと前記ユーザ識別子IDとを入力し、入力した暗号文データCTに含まれるワイルドカード階層値Wに基づいて入力したユーザ識別子IDから前記ワイルドカード階層の階層識別子をワイルドカード識別子として抽出し、抽出したワイルドカード識別子と入力した暗号文データCTに含まれるワイルドカード暗号値Cと識別暗号値Cとを用いて入力した暗号文データCTに含まれる平文暗号値Cを復号し、前記平文暗号値Cを復号して得られる前記平文データMを出力する
    ことを特徴とする暗号システムの暗号処理方法。
  10.  前記暗号化装置は、さらに、特定の平文データMWを暗号化して平文暗号値CWを算出し、前記暗号文データCTの検索に用いるキーワードKWを入力し、前記パターンPを含むと共に前記キーワードKWを第K+1階層を識別する階層識別子として含むパターンPWを用いてワイルドカード暗号値CWと識別暗号値CWとを算出し、算出した平文暗号値CWとワイルドカード暗号値CWと識別暗号値CWとを含んだ暗号文データCTWを前記暗号文データCTに対応付けて出力し、
     検索クエリ生成装置が、前記ユーザ識別子IDと前記キーワードKWとを入力し、入力したユーザ識別子IDとキーワードKWとを用いて前記平文暗号値CWの復号に用いる鍵値yを算出し、算出した鍵値yと前記ユーザ識別子IDとを含んだ検索クエリQKを出力し、
     検索装置が、複数の暗号文データCTと複数の暗号文データCTWとを対応付けて記憶する暗号文記憶部を有し、
     前記検索装置は、前記検索クエリQKと前記ワイルドカード階層値Wとを入力し、前記暗号文記憶部から暗号文データCTWを選択し、入力したワイルドカード階層値Wに基づいて入力した検索クエリQKに含まれるユーザ識別子IDから前記ワイルドカード階層の階層識別子をワイルドカード識別子として抽出し、抽出したワイルドカード識別子と選択した暗号文データCTWに含まれるワイルドカード暗号値CWと識別暗号値CWと入力した検索クエリQKに含まれる鍵値yとを用いて選択した暗号文データCTWに含まれる平文暗号値CWを復号し、前記平文暗号値CWを復号して得られた復号データが前記平文データMWと一致するか否かを判定し、前記復号データが前記平文データMWと一致した場合、選択した暗号文データCTWに対応する暗号文データCTを前記暗号文記憶部から取得し、取得した暗号文データCTを入力した検索クエリQKに対する検索結果として出力する
    ことを特徴とする請求項9記載の暗号システムの暗号処理方法。
  11.  暗号化する平文データMを入力し、k個(kは2以上の特定の整数)の階層に対応付けられたk個の鍵値Hを含むH鍵値群を含んだ公開鍵PKを入力し、階層を識別する階層識別子と任意のユーザを意味するワイルドカード値と不要な階層を意味する空欄値とのいずれかを階層毎にパターン値として含んだパターンPを入力する暗号化入力部と、
     前記暗号化入力部が入力した平文データMを暗号化して平文暗号値Cを算出し、前記暗号化入力部が入力したパターンPに基づいて前記パターン値がワイルドカード値である階層をワイルドカード階層として判定し、前記暗号化入力部が入力した公開鍵PKに含まれるH鍵値群から前記ワイルドカード階層に対応付けられた鍵値Hをワイルドカード鍵値として抽出し、抽出したワイルドカード鍵値を用いて前記平文暗号値Cの復号に用いるワイルドカード暗号値Cを算出し、前記パターンPに基づいて前記パターン値が階層識別子である階層を識別階層として判定し、前記公開鍵PKに含まれるH鍵値群から前記識別階層に対応付けられた鍵値Hを識別鍵値として抽出し、抽出した識別鍵値を用いて前記平文暗号値Cの復号に用いる識別暗号値Cを算出する暗号値算出部と、
     前記暗号値算出部により算出された平文暗号値Cとワイルドカード暗号値Cと識別暗号値Cとを含むと共に前記ワイルドカード階層を示すワイルドカード階層値Wを含む暗号文データCTを生成し、生成した暗号文データCTを出力する暗号文出力部と
    を備えたことを特徴とする暗号化装置。
  12.  暗号化する平文データMを入力し、k個(kは2以上の特定の整数)の階層に対応付けられたk個の鍵値Hを含むH鍵値群を含んだ公開鍵PKを入力し、階層を識別する階層識別子と任意のユーザを意味するワイルドカード値と不要な階層を意味する空欄値とのいずれかを階層毎にパターン値として含んだパターンPを入力する暗号化入力処理と、
     前記暗号化入力処理により入力された平文データMを暗号化して平文暗号値Cを算出し、前記暗号化入力処理により入力されたパターンPに基づいて前記パターン値がワイルドカード値である階層をワイルドカード階層として判定し、前記暗号化入力処理により入力された公開鍵PKに含まれるH鍵値群から前記ワイルドカード階層に対応付けられた鍵値Hをワイルドカード鍵値として抽出し、抽出したワイルドカード鍵値を用いて前記平文暗号値Cの復号に用いるワイルドカード暗号値Cを算出し、前記パターンPに基づいて前記パターン値が階層識別子である階層を識別階層として判定し、前記公開鍵PKに含まれるH鍵値群から前記識別階層に対応付けられた鍵値Hを識別鍵値として抽出し、抽出した識別鍵値を用いて前記平文暗号値Cの復号に用いる識別暗号値Cを算出する暗号値算出処理と、
     前記暗号値算出処理により算出された平文暗号値Cとワイルドカード暗号値Cと識別暗号値Cとを含むと共に前記ワイルドカード階層を示すワイルドカード階層値Wを含む暗号文データCTを生成し、生成した暗号文データCTを出力する暗号文出力処理と
    をコンピュータに実行させることを特徴とする暗号化プログラム。
  13.  階層構造を有する組織内で第k階層(kは2以上の特定の整数)に属する特定ユーザのユーザ識別子を第k階層を識別する階層識別子として含むと共に第1階層から第k-1階層までの階層を識別するk-1個の階層識別子を含むユーザ識別子IDを用いる復号装置において、
     階層識別子と任意のユーザを意味するワイルドカード値と不要な階層を意味する空欄値とのいずれかを階層毎にパターン値として含んだパターンPを用いて生成された暗号文データCTであって平文データMを暗号化した平文暗号値Cと特定のワイルドカード暗号値Cと特定の識別暗号値Cとを含むと共に前記パターンPに含まれるパターン値がワイルドカード値である階層を示すワイルドカード階層値Wを含む暗号文データCTを入力し、前記ユーザ識別子IDを入力する復号入力部と、
     前記復号入力部が入力した暗号文データCTに基づいて、前記復号入力部が入力したユーザ識別子IDから前記ワイルドカード階層値Wによって示される階層の階層識別子をワイルドカード識別子として抽出し、抽出したワイルドカード識別子と前記暗号文データCTに含まれるワイルドカード暗号値Cと識別暗号値Cとを用いて前記暗号文データCTに含まれる平文暗号値Cを復号し、前記平文暗号値Cを復号して得られる前記平文データMを出力する復号部と
    を備えたことを特徴とする復号装置。
  14.  階層構造を有する組織内で第k階層(kは2以上の特定の整数)に属する特定ユーザのユーザ識別子を第k階層を識別する階層識別子として含むと共に第1階層から第k-1階層までの階層を識別するk-1個の階層識別子を含むユーザ識別子IDを用いる復号プログラムにおいて、
     階層識別子と任意のユーザを意味するワイルドカード値と不要な階層を意味する空欄値とのいずれかを階層毎にパターン値として含んだパターンPを用いて生成された暗号文データCTであって平文データMを暗号化した平文暗号値Cと特定のワイルドカード暗号値Cと特定の識別暗号値Cとを含むと共に前記パターンPに含まれるパターン値がワイルドカード値である階層を示すワイルドカード階層値Wを含む暗号文データCTを入力し、前記ユーザ識別子IDを入力する復号入力処理と、
     前記復号入力処理により入力された暗号文データCTに基づいて、前記復号入力処理により入力されたユーザ識別子IDから前記ワイルドカード階層値Wによって示される階層の階層識別子をワイルドカード識別子として抽出し、抽出したワイルドカード識別子と前記暗号文データCTに含まれるワイルドカード暗号値Cと識別暗号値Cとを用いて前記暗号文データCTに含まれる平文暗号値Cを復号し、前記平文暗号値Cを復号して得られる前記平文データMを出力する復号処理と
    をコンピュータに実行させることを特徴とする復号プログラム。
  15.  L個(Lは2以上の特定の整数)の階層を有する組織に属するユーザの公開鍵PKを生成するセットアップ装置において、
     素数pと素数qとの積nを位数とする巡回群Gであってn個の要素値を含む巡回群Gを算出し、算出した巡回群Gの一部を構成する部分群Gであって素数pを位数とする部分群GからL個の要素値をL個の階層に対応付けてL個の鍵値hとして選択し、前記部分群GからL個の要素値をL個の階層に対応付けてL個の鍵値h’として選択し、算出した巡回群Gの一部を構成する部分群Gであって素数qを位数とする部分群GからL個の要素値をL個の階層に対応付けてL個の鍵値Rとして選択し、前記部分群GからL個の要素値をL個の階層に対応付けてL個の鍵値R’として選択する要素値選択部と、
     前記要素値選択部により選択されたL個の鍵値hとL個の鍵値Rとを階層毎に乗算してL個の階層に対応付けられたL個の鍵値HをH鍵値群として算出し、前記要素値選択部により選択されたL個の鍵値h’とL個の鍵値R’とを階層毎に乗算してL個の階層に対応付けられたL個の鍵値H’をH’鍵値群として算出する公開鍵値算出部と、
     前記公開鍵値算出部により算出されたH鍵値群とH’鍵値群とを含んだ公開鍵PKを生成する公開鍵生成部と
    を備えたことを特徴とするセットアップ装置。
  16.  L個(Lは2以上の特定の整数)の階層を有する組織に属するユーザの公開鍵PKを生成するセットアッププログラムにおいて、
     素数pと素数qとの積nを位数とする巡回群Gであってn個の要素値を含む巡回群Gを算出し、算出した巡回群Gの一部を構成する部分群Gpであって素数pを位数とする部分群GからL個の要素値をL個の階層に対応付けてL個の鍵値hとして選択し、前記部分群GからL個の要素値をL個の階層に対応付けてL個の鍵値h’として選択し、算出した巡回群Gの一部を構成する部分群Gであって素数qを位数とする部分群GからL個の要素値をL個の階層に対応付けてL個の鍵値Rとして選択し、前記部分群GからL個の要素値をL個の階層に対応付けてL個の鍵値R’として選択する要素値選択処理と、
     前記要素値選択処理により選択されたL個の鍵値hとL個の鍵値Rとを階層毎に乗算してL個の階層に対応付けられたL個の鍵値HをH鍵値群として算出し、前記要素値選択処理により選択されたL個の鍵値h’とL個の鍵値R’とを階層毎に乗算してL個の階層に対応付けられたL個の鍵値H’をH’鍵値群として算出する公開鍵値算出処理と、
     前記公開鍵値算出処理により算出されたH鍵値群とH’鍵値群とを含んだ公開鍵PKを生成する公開鍵生成処理と
    をコンピュータに実行させることを特徴とするセットアッププログラム。
  17.  階層構造を有する組織内で第k階層(kは2以上の特定の整数)に属する特定ユーザのユーザ秘密鍵SKを生成する鍵生成装置において、
     前記特定ユーザのユーザ識別子を第k階層を識別する階層識別子として含むと共に第1階層から第k-1階層までの階層を識別するk-1個の階層識別子を含むユーザ識別子IDを入力し、k個の階層に対応付けられたk個の鍵値hを含むh鍵値群とk個の階層に対応付けられたk個の鍵値h’を含むh’鍵値群とを含むマスタ秘密鍵MSKを入力する鍵生成入力部と、
     前記鍵生成入力部が入力したユーザ識別子IDとマスタ秘密鍵MSKとを用いて暗号文データCTの復号に用いる鍵値aを算出するユーザ秘密鍵値算出部と、
     前記ユーザ秘密鍵値算出部により算出された鍵値aを含んだユーザ秘密鍵SKを生成し、生成したユーザ秘密鍵SKを出力するユーザ秘密鍵生成部と
    を備えたことを特徴とする鍵生成装置。
  18.  階層構造を有する組織内で第k階層(kは2以上の特定の整数)に属する特定ユーザのユーザ秘密鍵SKを生成する鍵生成プログラムにおいて、
     前記特定ユーザのユーザ識別子を第k階層を識別する階層識別子として含むと共に第1階層から第k-1階層までの階層を識別するk-1個の階層識別子を含むユーザ識別子IDを入力し、k個の階層に対応付けられたk個の鍵値hを含むh鍵値群とk個の階層に対応付けられたk個の鍵値h’を含むh’鍵値群とを含んだマスタ秘密鍵MSKを入力する鍵生成入力処理と、
     前記鍵生成入力処理により入力されたユーザ識別子IDとマスタ秘密鍵MSKとを用いて暗号文データCTの復号に用いる鍵値aを算出するユーザ秘密鍵値算出処理と、
     前記ユーザ秘密鍵値算出処理により算出された鍵値aを含んだユーザ秘密鍵SKを生成し、生成したユーザ秘密鍵SKを出力するユーザ秘密鍵生成処理と
    をコンピュータに実行させることを特徴とする鍵生成プログラム。
  19.  階層構造を有する組織内で第k階層(kは2以上の特定の整数)に属するユーザjのユーザ秘密鍵SKを生成する鍵委譲装置において、
     前記ユーザjのユーザ識別子を第k階層を識別する階層識別子として含むと共に第1階層から第k-1階層までの階層を識別するk-1個の階層識別子を含むユーザ識別子IDを入力し、第k-1階層に属するユーザiのユーザ秘密鍵SKであって暗号文データCTの復号に用いる鍵値aを含んだユーザ秘密鍵SKを入力する鍵委譲入力部と、
     前記鍵委譲入力部が入力したユーザ識別子IDとユーザ秘密鍵SKとを用いて前記暗号文データCTの復号に用いる鍵値xを算出する委譲鍵値算出部と、
     前記委譲鍵値算出部により算出された鍵値xを含んだユーザ秘密鍵SKを生成し、生成したユーザ秘密鍵SKを出力する委譲鍵生成部と
    を備えたことを特徴とする鍵委譲装置。
  20.  階層構造を有する組織内で第k階層(kは2以上の特定の整数)に属するユーザjのユーザ秘密鍵SKを生成する鍵委譲プログラムにおいて、
     前記ユーザjのユーザ識別子を第k階層を識別する階層識別子として含むと共に第1階層から第k-1階層までの階層を識別するk-1個の階層識別子を含むユーザ識別子IDを入力し、第k-1階層に属するユーザiのユーザ秘密鍵SKであって暗号文データCTの復号に用いる鍵値aを含んだユーザ秘密鍵SKを入力する鍵委譲入力処理と、
     前記鍵委譲入力処理により入力されたユーザ識別子IDとユーザ秘密鍵SKとを用いて前記暗号文データCTの復号に用いる鍵値xを算出する委譲鍵値算出処理と、
     前記委譲鍵値算出処理により算出された鍵値xを含んだユーザ秘密鍵SKを生成し、生成したユーザ秘密鍵SKを出力する委譲鍵生成処理と
    をコンピュータに実行させることを特徴とする鍵委譲プログラム。
PCT/JP2011/050778 2011-01-18 2011-01-18 暗号システム、暗号システムの暗号処理方法、暗号化装置、暗号化プログラム、復号装置、復号プログラム、セットアップ装置、セットアッププログラム、鍵生成装置、鍵生成プログラム、鍵委譲装置および鍵委譲プログラム WO2012098649A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201180065310.6A CN103329478B (zh) 2011-01-18 2011-01-18 密码系统以及密码系统的密码处理方法
JP2012553498A JP5501482B2 (ja) 2011-01-18 2011-01-18 暗号システム、暗号システムの暗号処理方法、暗号化装置、暗号化プログラム、復号装置および復号プログラム
PCT/JP2011/050778 WO2012098649A1 (ja) 2011-01-18 2011-01-18 暗号システム、暗号システムの暗号処理方法、暗号化装置、暗号化プログラム、復号装置、復号プログラム、セットアップ装置、セットアッププログラム、鍵生成装置、鍵生成プログラム、鍵委譲装置および鍵委譲プログラム
EP11856496.2A EP2667538A4 (en) 2011-01-18 2011-01-18 Encryption system, encryption processing method for encryption system, encryption device, encryption program, decryption device, decryption program, setup device, setup program, key generation device, key generation program, key assignment device and key assignment program
US13/980,176 US9276746B2 (en) 2011-01-18 2011-01-18 Encryption system, encryption processing method of encryption system, encryption device, decryption device, setup device, key generation device, and key delegation device using a user identifier for a user who belongs to a k-th hierarchy in an organization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/050778 WO2012098649A1 (ja) 2011-01-18 2011-01-18 暗号システム、暗号システムの暗号処理方法、暗号化装置、暗号化プログラム、復号装置、復号プログラム、セットアップ装置、セットアッププログラム、鍵生成装置、鍵生成プログラム、鍵委譲装置および鍵委譲プログラム

Publications (1)

Publication Number Publication Date
WO2012098649A1 true WO2012098649A1 (ja) 2012-07-26

Family

ID=46515301

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/050778 WO2012098649A1 (ja) 2011-01-18 2011-01-18 暗号システム、暗号システムの暗号処理方法、暗号化装置、暗号化プログラム、復号装置、復号プログラム、セットアップ装置、セットアッププログラム、鍵生成装置、鍵生成プログラム、鍵委譲装置および鍵委譲プログラム

Country Status (5)

Country Link
US (1) US9276746B2 (ja)
EP (1) EP2667538A4 (ja)
JP (1) JP5501482B2 (ja)
CN (1) CN103329478B (ja)
WO (1) WO2012098649A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014109066A1 (ja) 2013-01-12 2014-07-17 三菱電機株式会社 鍵生成装置、鍵生成プログラム、秘匿検索システム及び鍵配布方法
EP2947641A4 (en) * 2013-01-16 2016-08-24 Mitsubishi Electric Corp INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD, AND PROGRAM
WO2018042492A1 (ja) * 2016-08-29 2018-03-08 有限会社アドリブ Id管理装置、id管理方法、コンピュータプログラム
JP2021125810A (ja) * 2020-02-06 2021-08-30 Kddi株式会社 暗号化装置、復号装置、暗号化方法及び暗号化プログラム

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130040065A (ko) * 2011-10-13 2013-04-23 삼성전자주식회사 전자 장치 및 그 암호화 방법
WO2013111284A1 (ja) 2012-01-25 2013-08-01 三菱電機株式会社 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
JP5447544B2 (ja) * 2012-01-27 2014-03-19 沖電気工業株式会社 委託パラメータ情報生成装置、共有鍵合成装置、署名情報合成装置、通信装置、鍵共有被計算委託装置、署名情報生成被計算委託装置、被計算委託装置、鍵共有システム、署名情報検証システム及び通信システム
CN110086830B (zh) 2012-08-15 2022-03-04 维萨国际服务协会 可搜索的经加密的数据
KR101493212B1 (ko) * 2012-10-31 2015-02-23 삼성에스디에스 주식회사 아이디 기반 암호화, 복호화 방법 및 이를 수행하기 위한 장치
JP5963936B2 (ja) 2013-02-25 2016-08-03 三菱電機株式会社 サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム
DE112014007235B4 (de) * 2014-12-05 2024-10-10 Mitsubishi Electric Corporation Kryptografisches System, Hauptschlüsselaktualisierungseinrichtung und Hauptschlüsselaktualisierungsprogramm
CN107251479B (zh) * 2015-02-20 2020-08-11 三菱电机株式会社 数据保管装置和数据处理方法
US10097522B2 (en) * 2015-05-21 2018-10-09 Nili Philipp Encrypted query-based access to data
WO2017139592A1 (en) * 2016-02-12 2017-08-17 Genosecurity, LLC Security enhanced portable data store and processor for allowing secure and selective access to genomic data
US11128452B2 (en) * 2017-03-25 2021-09-21 AVAST Software s.r.o. Encrypted data sharing with a hierarchical key structure
WO2019016181A1 (en) 2017-07-18 2019-01-24 Legic Identsystems Ag METHOD AND DEVICES USED TO VERIFY AUTHORIZATION OF AN ELECTRONIC DEVICE
US20210067317A1 (en) * 2018-01-17 2021-03-04 Mitsubishi Electric Corporation Data management device, data management method, and computer readable medium
CN112668042B (zh) * 2020-12-16 2022-12-02 西安电子科技大学 一种文件加密方法
CN113824559B (zh) * 2021-09-29 2023-05-12 福建师范大学 基于sm9的高效分层加密方法
CN114285609B (zh) * 2021-12-10 2024-02-13 中国联合网络通信集团有限公司 加密方法、装置、设备及存储介质
CN116305225B (zh) * 2023-05-24 2023-08-18 山东梧桐树软件有限公司 一种用于网上支付过程中的用户数据加密保护方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010161523A (ja) 2009-01-07 2010-07-22 Nippon Telegr & Teleph Corp <Ntt> 鍵生成装置、暗号化装置、復号化装置、暗号化システム、鍵生成方法、暗号化方法、復号化方法、プログラム、および記録媒体
JP2010165275A (ja) * 2009-01-19 2010-07-29 Mitsubishi Electric Corp データ格納システム及び情報送信装置及びサーバ装置
JP2010273317A (ja) * 2009-04-23 2010-12-02 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7349538B2 (en) * 2002-03-21 2008-03-25 Ntt Docomo Inc. Hierarchical identity-based encryption and signature schemes
US7393213B2 (en) 2004-05-19 2008-07-01 Epivalley Co., Ltd. Method for material growth of GaN-based nitride layer
US7620625B2 (en) 2004-05-20 2009-11-17 Ntt Docomo, Inc. Method and apparatus for communication efficient private information retrieval and oblivious transfer
US7987201B2 (en) 2005-05-19 2011-07-26 Ntt Docomo, Inc. Method and apparatus for communication efficient private information retrieval and oblivious transfer
WO2008066671A2 (en) * 2006-11-08 2008-06-05 Voltage Security, Inc. Indentity-based-encryption extensions formed using multiple instances of an identity based encryption scheme
JP2008176040A (ja) 2007-01-18 2008-07-31 Hirokazu Ogi 鍵管理方法、鍵生成方法、暗号処理方法、復号権限委譲方法、通信ネットワークシステム
JP2008288837A (ja) 2007-05-17 2008-11-27 Hirokazu Ogi 鍵管理方法、鍵生成方法、暗号処理方法、復号処理方法、アクセス管理方法、通信ネットワークシステム
US20090019751A1 (en) 2007-07-20 2009-01-22 Goetting Thomas J Removably attachable card and card retaining device
JP2010160235A (ja) 2009-01-07 2010-07-22 Nippon Telegr & Teleph Corp <Ntt> 検索システム、端末装置、データベース装置、検索方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010161523A (ja) 2009-01-07 2010-07-22 Nippon Telegr & Teleph Corp <Ntt> 鍵生成装置、暗号化装置、復号化装置、暗号化システム、鍵生成方法、暗号化方法、復号化方法、プログラム、および記録媒体
JP2010165275A (ja) * 2009-01-19 2010-07-29 Mitsubishi Electric Corp データ格納システム及び情報送信装置及びサーバ装置
JP2010273317A (ja) * 2009-04-23 2010-12-02 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
Title
ALFRED J. MENEZES; PAUL C. VAN OORSCHOT; SCOTT A. VANSTONE: "Handbook of applied cryptography", 1996, CRC, pages: 145 - 154
DAN BONEH; EU-JIN GOH; KOBBI NISSIM: "Evaluating 2-DNF formulas on ciphertexts", THEORY OF CRYPTOGRAPHY CONFERENCE, LECTURE NOTES IN COMPUTER SCIENCE, vol. 3378, 2005, pages 325 - 341, XP047029378
DAVID MANDELL FREEMAN: "Converting pairing-based cryptosystems from composite-order groups to prime-order groups", EUROCRYPT 2010, LECTURE NOTES IN COMPUTER SCIENCE, vol. 6110, 2010, pages 44 - 61, XP047268706, DOI: doi:10.1007/978-3-642-13190-5_3
ELAINE SHI; BRENT WATERS: "Delegating capabilities in predicate encryption systems", ICALP 2008, LECTURE NOTES IN COMPUTER SCIENCE, vol. 5126, 2008, pages 560 - 578, XP019092661
JAE HONG SEO; TETSUTARO KOBAYASHI; MIYAKO OHKUBO; KOUTAROU SUZUKI: "Anonymous hierarchical identity-based encryption with constant size ciphertexts", PUBLIC KEY CRYPTOGRAPHY, LECTURE NOTES IN COMPUTER SCIENCE, vol. 5443, 2009, pages 215 - 234, XP047030439, DOI: doi:10.1007/978-3-642-00468-1_13
MITSUHIRO HATTORI; TAKUMI MORI; TAKASHI ITO; NORI MATSUDA; TAKESHI YONEDA; KAZUO OHTA: "Anonymous HIBE with wildcards and its application to secure keyword search for group-oriented multi-user system", SCIS 2010, 2010
See also references of EP2667538A4
TATSUAKI OKAMOTO; KATSUYUKI TAKASHIMA: "Hierarchical predicate Encryption for inner-products", ASIACRYPT 2009, LECTURE NOTES IN COMPUTER SCIENCE, vol. 5912, 2009, pages 214 - 231
TETSUTARO KOBAYASHI ET AL.: "Anonymous HIBE to sono Oyo", 2009 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY, 20 January 2009 (2009-01-20), pages 1 - 6, XP008171433 *
XAVIER BOYEN; BRENT WATERS: "Anonymous hierarchical identity-based encryption (without random oracles", CRYPTO 2006, LECTURE NOTES IN COMPUTER SCIENCE, vol. 4117, 2006, pages 290 - 307

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014109066A1 (ja) 2013-01-12 2014-07-17 三菱電機株式会社 鍵生成装置、鍵生成プログラム、秘匿検索システム及び鍵配布方法
CN104798339A (zh) * 2013-01-12 2015-07-22 三菱电机株式会社 密钥生成装置、密钥生成程序、隐匿检索系统和密钥发布方法
EP2947641A4 (en) * 2013-01-16 2016-08-24 Mitsubishi Electric Corp INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD, AND PROGRAM
US9698977B2 (en) 2013-01-16 2017-07-04 Mitsubishi Electric Corporation Information processing apparatus, information processing method, and program
WO2018042492A1 (ja) * 2016-08-29 2018-03-08 有限会社アドリブ Id管理装置、id管理方法、コンピュータプログラム
JP6326176B1 (ja) * 2016-08-29 2018-05-16 有限会社 アドリブ Id管理装置、id管理方法、コンピュータプログラム
JP2021125810A (ja) * 2020-02-06 2021-08-30 Kddi株式会社 暗号化装置、復号装置、暗号化方法及び暗号化プログラム
JP7295818B2 (ja) 2020-02-06 2023-06-21 Kddi株式会社 暗号化装置、復号装置、暗号化方法及び暗号化プログラム

Also Published As

Publication number Publication date
JPWO2012098649A1 (ja) 2014-06-09
US20130287206A1 (en) 2013-10-31
EP2667538A1 (en) 2013-11-27
EP2667538A4 (en) 2017-08-16
JP5501482B2 (ja) 2014-05-21
US9276746B2 (en) 2016-03-01
CN103329478B (zh) 2015-11-25
CN103329478A (zh) 2013-09-25

Similar Documents

Publication Publication Date Title
JP5501482B2 (ja) 暗号システム、暗号システムの暗号処理方法、暗号化装置、暗号化プログラム、復号装置および復号プログラム
Deng et al. Flexible attribute-based proxy re-encryption for efficient data sharing
Liang et al. Attribute based proxy re-encryption with delegating capabilities
JP5606642B2 (ja) データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
Song et al. Efficient Attribute‐Based Encryption with Privacy‐Preserving Key Generation and Its Application in Industrial Cloud
Wang et al. A ciphertext-policy attribute-based encryption scheme supporting keyword search function
US7711120B2 (en) Cryptographic key management
EP2228942B1 (en) Securing communications sent by a first user to a second user
Wang et al. Efficiently revocable and searchable attribute-based encryption scheme for mobile cloud storage
Yao et al. Privacy-preserving search over encrypted personal health record in multi-source cloud
CN113411323B (zh) 基于属性加密的医疗病历数据访问控制系统及方法
Wang et al. An efficient cloud-based personal health records system using attribute-based encryption and anonymous multi-receiver identity-based encryption
Deng et al. Policy-based broadcast access authorization for flexible data sharing in clouds
Varri et al. Key-escrow free attribute-based multi-keyword search with dynamic policy update in cloud computing
Wu et al. Blockchain privacy protection based on post quantum threshold algorithm
Manjusha et al. Comparative study of attribute based encryption techniques in cloud computing
Al Etaiwi et al. Structured encryption algorithm for text cryptography
Chen et al. A hybrid encryption scheme with key-cloning protection: user/terminal double authentication via attributes and fingerprints
Gritti et al. Empowering personal health records with cloud computing: How to encrypt with forthcoming fine-grained policies efficiently
Liu et al. A certificate-based proxy re-encryption plus scheme for secure medical data sharing
JP6927199B2 (ja) 暗号文照合システム、ノード装置、暗号文照合方法、およびプログラム
Shan et al. Fuzzy keyword search over encrypted cloud data with dynamic fine-grained access control
Chegenizadeh et al. HUAP: Practical Attribute-based Access Control Supporting Hidden Updatable Access Policies for Resource-Constrained Devices
Tan et al. Key policy-attribute based fully homomorphic encryption (KP-ABFHE) scheme for securing cloud application in multi-users environment
Jingzhang et al. Searchable encryption scheme based on CPABE with attribute update in a cloud medical environment

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11856496

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2012553498

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2011856496

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 13980176

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE