WO2014061324A1 - 暗号システム - Google Patents

暗号システム Download PDF

Info

Publication number
WO2014061324A1
WO2014061324A1 PCT/JP2013/069364 JP2013069364W WO2014061324A1 WO 2014061324 A1 WO2014061324 A1 WO 2014061324A1 JP 2013069364 W JP2013069364 W JP 2013069364W WO 2014061324 A1 WO2014061324 A1 WO 2014061324A1
Authority
WO
WIPO (PCT)
Prior art keywords
index
basis vector
vector
value
coefficient
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2013/069364
Other languages
English (en)
French (fr)
Inventor
克幸 高島
岡本 龍明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
NTT Inc
Original Assignee
Mitsubishi Electric Corp
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp, Nippon Telegraph and Telephone Corp filed Critical Mitsubishi Electric Corp
Priority to CN201380050410.0A priority Critical patent/CN104718566B/zh
Priority to KR1020157013141A priority patent/KR101676977B1/ko
Priority to US14/421,282 priority patent/US9722783B2/en
Priority to EP13846805.3A priority patent/EP2911137B1/en
Priority to ES13846805.3T priority patent/ES2645072T3/es
Publication of WO2014061324A1 publication Critical patent/WO2014061324A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/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
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • H04L9/007Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models involving hierarchical structures
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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]
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Definitions

  • the present invention relates to a generalized inner product predicate encryption method and a functional encryption method and an attribute-based signature method having a generalized inner product predicate encryption method in a lower structure.
  • Non-Patent Documents 30 and 31 describe the inner product predicate encryption method.
  • Non-Patent Document 31 describes a functional encryption method.
  • Non-Patent Document 32 describes an attribute-based signature scheme.
  • Ciphertext-policy attribute-based encryption In: 2007 IEEE Symposiumon Security and Privacy, pp. 321-334. IEEE Press (2007) Boneh, D.D. , Boyen, X. : Efficient selective-ID secure identity basic encryption without random orgs. In: Cache, C.I. , Camenich, J.M. (Eds.) EUROCRYPT 2004. LNCS, vol. 3027, pp. 223-238. Springer Heidelberg (2004) Boneh, D.D. , Boyen, X. : Secure identity based encryption entitlement random oracles. In: Franklin, M.M. K. (Ed.) CRYPTO2004. LNCS, vol. 3152, pp. 443-459.
  • An encryption system includes: An encryption system comprising an encryption device and a decryption device, The encryption device is: The attribute information x t is set as the coefficient of the base vector b p for the element c 0 in which the value ⁇ 1 is set as the coefficient of the base vector b 0, r and each index t included in the set I x ⁇ .
  • the value omega ⁇ as coefficients b q includes a ciphertext generation unit that generates a ciphertext and a is set element c t
  • the decoding device An element k 0 and an element k t generated using a value s t and a value s 0 in which the sum of the values s t for each index t included in the set I v ⁇ is the value s 0 , and the basis vector b 0, basis vector b * 0, r element k 0 a value -s 0 as a coefficient is set that corresponds to r, for each index t included in the set I v ⁇ , corresponding to the basis vector b p basis as the coefficient vector b * p is set predicate information v t, stores a decryption key with said basis vector b values as the coefficients of the basis vector b * q corresponding to q s t is set elements k t for A decryption key storage unit, The decrypt
  • the cryptographic system according to the present invention performs the pairing operation only for the index t included in the set I v ⁇ , and the attribute vector x ⁇ and the predicate vector v ⁇ need not have the same dimension. Therefore, the encryption system according to the present invention can realize an inner product predicate encryption method with a high degree of freedom.
  • FIG. 1 is a configuration diagram of a cryptographic processing system 10 according to a first embodiment.
  • FIG. 3 is a functional block diagram showing functions of the key generation device 100 according to the first embodiment.
  • FIG. 3 is a functional block diagram showing functions of the encryption device 200 according to the first embodiment.
  • FIG. 3 is a functional block diagram showing functions of the decoding device 300 according to the first embodiment.
  • 5 is a flowchart showing processing of a Setup algorithm according to the first embodiment.
  • 5 is a flowchart showing processing of a KeyGen algorithm according to the first embodiment.
  • 5 is a flowchart showing processing of an Enc algorithm according to the first embodiment.
  • 4 is a flowchart showing processing of a Dec algorithm according to the first embodiment.
  • 9 is a flowchart showing processing of a KeyGen algorithm according to the second embodiment.
  • 9 is a flowchart showing processing of an Enc algorithm according to the second embodiment.
  • 9 is a flowchart showing processing of a Dec algorithm according to the second embodiment.
  • 10 is a flowchart showing a setup algorithm process according to the third embodiment.
  • 9 is a flowchart showing processing of a KeyGen algorithm according to the third embodiment.
  • 10 is a flowchart showing processing of an Enc algorithm according to the third embodiment.
  • 10 is a flowchart showing processing of a Dec algorithm according to the third embodiment.
  • the figure which shows an example of the hardware constitutions of the key generation apparatus 100, the encryption apparatus 200, and the decoding apparatus 300.
  • the processing device is a CPU 911 or the like which will be described later.
  • the storage device is a ROM 913, a RAM 914, a magnetic disk 920, etc., which will be described later.
  • the communication device is a communication board 915 or the like which will be described later.
  • the input device is a keyboard 902, a communication board 915, and the like which will be described later.
  • the output device is a RAM 914, a magnetic disk 920, a communication board 915, an LCD 901, etc., which will be described later. That is, the processing device, the storage device, the communication device, the input device, and the output device are hardware.
  • Equation 101 represents selecting y from A randomly according to the distribution of A. That is, in Equation 101, y is a random number.
  • Equation 102 represents selecting y from A uniformly. That is, in Equation 102, y is a uniform random number.
  • the number 103 represents that y is a set defined by z, or y is a set to which z is substituted.
  • a is a constant, the number 104 represents that the machine (algorithm) A outputs a for the input x.
  • the number 105 that is, F q indicates a finite field of order q.
  • Equation 106 The vector notation represents a vector representation in the finite field Fq . That is, Equation 106. Equation 107 represents the inner product shown in Equation 109 between the two vectors x ⁇ and v ⁇ shown in Equation 108. X T represents the transpose of the matrix X. For the basis B and the basis B * shown in Equation 110, Equation 111 is obtained.
  • the processing of cryptographic primitives includes not only a narrowly-defined cryptographic process for concealing information from a third party but also a signature process, and includes a key generation process, an encryption process, and a decryption process. Including signature processing and verification processing.
  • Embodiment 1 FIG.
  • the dimensions of the attribute vector x ⁇ and the predicate vector v ⁇ will be described.
  • the addition of attribute categories will be described.
  • DPVS Dual Pairing Vector Spaces
  • the inner product predicate encryption method (Type 1) according to the first embodiment will be described.
  • gene data has a huge amount of information, many applications have a feature that only a part of gene data is used. For example, when testing whether Alice's gene data has a certain characteristic, among several (for example, 100) gene properties, for several (for example, three) target gene properties, It is determined whether the genetic data of Alice satisfies the conditions. It is not necessary to determine whether or not the remaining (97) gene properties satisfy the condition.
  • X 1 ,. . . , X 100 are 100 gene properties
  • x 1 ,. . . , X 100 is the value of 100 gene properties for Alice.
  • f (x 1 ,..., X 100 ) 0 for a cubic (multivariable) check polynomial f, or the corresponding predicate ⁇ f (x 1 ,.
  • This attribute vector x ⁇ has about 10 6 dimensions.
  • the predicate vector v ⁇ must have about 10 6 dimensions even though the effective dimension is actually 5 dimensions, because the dimensions of the attribute vector x ⁇ and the predicate vector v ⁇ are the same. This is because there is a restriction that it exists. If this restriction is removed, it becomes possible to construct the predicate vector v ⁇ only with effective dimensions (here, five dimensions).
  • effective dimensions here, five dimensions.
  • the predicate vector v ⁇ is composed only of valid dimensions, but similarly, the attribute vector x ⁇ can be composed of only valid dimensions.
  • the attribute category is, for example, a classification of each user's attribute such as a belonging organization, a belonging department, a post, an age, and a gender.
  • the inner product predicate encryption method described in the following embodiments realizes access control based on user attributes. For example, if the encryption process is strictly defined to conceal information from a third party, whether or not the ciphertext can be decrypted is controlled based on the user attribute.
  • an attribute category used for access control is determined in advance at the time of system design. However, the system operation may be changed later, and an attribute category used for access control may need to be added. For example, assume that an encryption system is constructed assuming that it is used only within Company A. In this case, the attribute category to be used is assumed to be a department, job title, personal ID, or the like. However, it is assumed that the operation is changed so that not only the company A but also the affiliated company of the company A uses the encryption system. In this case, it is necessary to add a new company as an attribute category to be used.
  • the public parameter must be reissued and distributed to the user to add the attribute category later. For this reason, it is not easy to add an attribute category later, and it is not possible to flexibly adopt an operation mode that was not assumed at the time of system design. Therefore, it is important to be able to add attribute categories without reissuing public parameters.
  • indexing techniques are applied to dual system ciphers in dual pairing vector space.
  • a base B and a base B * which are dual bases are randomly generated.
  • a part of the base B (base B ⁇ ) is set as a public parameter.
  • the basis B ⁇ 1 ,. . . , Base B ⁇ d is generated as a public parameter.
  • t 1,. . . ,
  • the base B ⁇ t for each integer t of d, is assigned one attribute categories. That is, d attribute categories can be handled.
  • the basis B ⁇ 1 ,. . . As is clear from the fact that the base B ⁇ d is a public parameter, the public parameter must be reissued when the base B ⁇ is added later, that is, when the value of d is increased. That is, the value of d is limited by the public parameter.
  • the base B ⁇ is generated as a public parameter.
  • t 1,. . . , D
  • a two-dimensional index vector of ⁇ t (1, t) and ⁇ i (t, ⁇ 1) is set in the ciphertext c and the secret key k *, and for each integer t
  • One attribute category is assigned. That is, d attribute categories can be handled.
  • the public parameter includes the base B ⁇ but does not include the index vector. Therefore, when an index vector is added later to increase the value of d, it is not necessary to reissue public parameters. That is, the value of d is not limited by public parameters.
  • Dual Pairing Vector Space The inner product predicate cryptosystem described below is implemented in a dual pairing vector space.
  • Symmetric bilinear pairing groups (q, G, G T, g, e) is a prime number q, and the cyclic additive group G of order q, and a cyclic multiplicative group G T of order q, g ⁇ 0 ⁇ G
  • nondegenerate bilinear pairing that can be calculated in polynomial time (nondegenerate bilinear pairing) e: a set of a G ⁇ G ⁇ G T.
  • a i is as shown in Equation 113.
  • Equation 115 The linear transformation ⁇ i, j in the space V shown in Equation 115 can perform Equation 116.
  • the linear transformation ⁇ i, j is called a distortion map.
  • a dual pairing vector space is configured by the above-described symmetric bilinear pairing group.
  • a dual pairing vector space can also be configured by an asymmetric bilinear pairing group. It is easy to apply the following description to a case where a dual pairing vector space is configured by an asymmetric bilinear pairing group.
  • the inner product predicate encryption system includes four stochastic polynomial time algorithms: Setup, KeyGen, Enc, and Dec.
  • Setup In the setup algorithm, the security parameter 1 ⁇ is input, and the master public key pk and the master secret key sk are output.
  • KeyGen In the KeyGen algorithm, the master public key pk, the master secret key sk, and the predicate vector v ⁇ are input, and the secret key sk v is output.
  • Enc In the Enc algorithm, the master public key pk, the attribute vector x ⁇ , and the message m are input, and the ciphertext ct x is output.
  • the master public key pk, the secret key sk v, and the ciphertext ct x are input, and the message m or the identification information ⁇ is output.
  • the identification information ⁇ is information indicating that decoding has failed.
  • FIG. 1 is a configuration diagram of a cryptographic processing system 10 according to the first embodiment.
  • the cryptographic processing system 10 includes a key generation device 100, an encryption device 200 (transmission device), and a decryption device 300 (reception device).
  • the key generation device 100 executes the Setup algorithm with the security parameter ⁇ as an input, and generates a master public key pk and a master secret key sk. Then, the key generation device 100 discloses the generated master public key pk.
  • the key generation device 100 executes the KeyGen algorithm with the master public key pk, the master secret key sk, and the predicate vector v ⁇ as inputs, generates the secret key sk v , and distributes it to the decryption device 300 in a secret manner.
  • the encryption device 200 receives the master public key pk, the attribute vector x ⁇ , and the message m and executes the Enc algorithm to generate a ciphertext ct x .
  • the encryption device 200 transmits the generated ciphertext ct x to the decryption device 300.
  • the decryption apparatus 300 receives the master public key pk, the secret key sk v, and the ciphertext ct x , executes the Dec algorithm, and outputs the message m or the identification information ⁇ .
  • FIG. 2 is a functional block diagram illustrating functions of the key generation device 100 according to the first embodiment.
  • FIG. 3 is a functional block diagram illustrating functions of the encryption device 200 according to the first embodiment.
  • FIG. 4 is a functional block diagram showing functions of the decoding device 300 according to the first embodiment.
  • 5 and 6 are flowcharts showing the operation of the key generation apparatus 100 according to the first embodiment.
  • 5 is a flowchart showing the process of the Setup algorithm according to the first embodiment
  • FIG. 6 is a flowchart showing the process of the KeyGen algorithm according to the first embodiment.
  • FIG. 7 is a flowchart showing the operation of the encryption apparatus 200 according to Embodiment 1, and is a flowchart showing the processing of the Enc algorithm according to Embodiment 1.
  • FIG. 8 is a flowchart showing the operation of the decoding apparatus 300 according to Embodiment 1, and is a flowchart showing the processing of the Dec algorithm according to Embodiment 1.
  • the key generation device 100 includes a master key generation unit 110, a master key storage unit 120, an information input unit 130, a decryption key generation unit 140, and a key distribution unit 150.
  • the master key generation unit 110 calculates the expression 117 by the processing device, the parameter param, the base B 0 and the base B * 0 , the base B 1 (base B), and the base B * 1 (base B * ). Is generated.
  • the master key generation unit 110 executes the following process.
  • the master key generation unit 110 inputs the security parameter ⁇ (1 ⁇ ) using an input device.
  • U 0 , w 0 , z 0 , u, w, and z are integers of 0 or more, respectively.
  • GL is an abbreviation for General Linear. That is, GL is a general linear group, a set of square matrices whose determinants are not 0, and a group for multiplication.
  • x ⁇ t, i indicates the i-th row of the linear transformation Xt .
  • v ⁇ t, i indicates the i-th row of the linear transformation X * t .
  • the master key generation unit 110 executes the algorithm G ob shown in Formula 118, and the param, the base B 0 and the base B * 0 , the base B 1 (base B), and the base B * 1 ( Basis B * ).
  • the base B 1 and the base B * 1 are referred to as a base B and a base B * .
  • the master key generation unit 110 (S102: Public parameter generation step)
  • the master key generation unit 110 combines the generated partial base B ⁇ 0 and the partial base B ⁇ , the security parameter ⁇ (1 ⁇ ) input in S101, and the param generated in S101 into the public parameter pk. .
  • the master key generation unit 110 (S103: Master key generation step)
  • the master key generation unit 110 sets the generated partial base B ⁇ * 0 and partial base B ⁇ * as the master key sk.
  • the master key storage unit 120 stores the public parameter pk generated in S102 in the storage device. Further, the master key storage unit 120 stores the master key sk generated in S103 in the storage device.
  • the key generation device 100 executes the Setup algorithm shown in Formula 121 to generate the public parameter pk and the master key sk.
  • the key generation device 100 stores the generated public parameter pk and master key sk in the storage device.
  • the public parameter is made public via a network, for example, so that the encryption device 200 and the decryption device 300 can obtain it.
  • the predicate information v t for example, attribute information of the user of the decryption key sk v is set.
  • the decryption key generation unit 140 generates secret information s t and s 0 as shown in Expression 122 by the processing device.
  • Decryption key generation unit 140 generates a random number as shown in Formula 123 by the processing device.
  • Equation 124 sets ⁇ s 0 as the coefficient of the basis vector b * 0,1 of the basis B * 0 , and the basis vectors b * 0,1 + 1,. . . , B * 0, 1 + u0 is set to 0, the basis vector b * 0, 1 + u0 + 1 is set to 1, and the basis vectors b * 0, 1 + u0 + 1 + 1,. . .
  • B * 0, 1 + u0 + 1 + w0 as the coefficients ⁇ 0,1 ,. . . , ⁇ 0, w0 and basis vectors b * 0, 1 + u0 + 1 + w0 + 1,. . . , B * 0, 1 + u0 + 1 + w0 + z0 means that 0 is set.
  • u0, w0, z0 is that of u 0, w 0, z 0, respectively.
  • the decryption key generation unit 140 generates the element k * t of the decryption key sk v as represented by Formula 125 for the index t included in the set I v ⁇ by the processing device.
  • the expression 125 sets ⁇ t t as the coefficient of the basis vector b * 1 of the basis B * , sets ⁇ t as the coefficient of the basis vector b * 2 , and sets the basis vector b *. as a factor of three sets the .delta.v t, set the s t as coefficients of basis vectors b * 4, the basis vector b * 4 + 1,. . . , B * 4 + u is set to 0, and the basis vectors b * 4 + u + 1,. . . , B * 4 + u + w as the coefficients ⁇ t, 1 ,. . . , ⁇ t, w and set basis vectors b * 4 + u + w + 1,. . . , B * 4 + u + w + z means that 0 is set.
  • the key distribution unit 150 distributes the decryption key sk v having the elements k * 0 and k * t generated in S204 to the decryption apparatus 300 in a secret manner via a network, for example.
  • the decryption key sk v may be distributed to the decryption device 300 by other methods.
  • the key generation device 100 executes the KeyGen algorithm expressed by Equation 126 to generate the decryption key sk v .
  • the key generation apparatus 100 distributes the generated decryption key sk v to the decryption apparatus 300.
  • the encryption device 200 includes a public parameter acquisition unit 210, an information input unit 220, a ciphertext generation unit 230, and a data transmission unit 240.
  • the processing of the Enc algorithm will be described based on FIG. (S301: Public parameter acquisition step)
  • the public parameter acquisition unit 210 acquires, for example, the public parameter pk generated by the key generation device 100 via the network by the communication device.
  • the ciphertext generation unit 230 generates a random number as shown in Formula 127 by the processing device.
  • the ciphertext generation unit 230 generates the element c 0 of the ciphertext ct x as shown in Formula 128 by the processing device. Furthermore, the ciphertext generator 230, the processing unit, the index t in set I x ⁇ , it generates an element c t of ciphertext ct x as shown in Formula 129. The encryption element generator 232, the processing device, generates an element c T of ciphertext ct x as shown in Formula 130.
  • the data transmission unit 240 transmits the ciphertext ct x having the elements c 0 , c t , and c T generated in S304 to the decryption device 300 via the network, for example.
  • the ciphertext ct x may be transmitted to the decryption apparatus 300 by other methods.
  • the encryption apparatus 200 executes the Enc algorithm shown in Equation 131 to generate a ciphertext ct x .
  • the encryption device 200 transmits the generated ciphertext ct x to the decryption device 300.
  • the decryption device 300 includes a decryption key acquisition unit 310, a decryption key storage unit 320, a ciphertext acquisition unit 330, a pairing calculation unit 340, and a message calculation unit 350.
  • the pairing calculation unit 340 and the message calculation unit 350 are collectively referred to as a decoding unit.
  • the decryption key acquisition unit 310 acquires, for example, the decryption key sk v distributed from the key generation apparatus 100 via the network by the communication apparatus. Further, the decryption key acquisition unit 310 acquires the public parameter pk generated by the key generation device 100. The decryption key acquisition unit 310 stores the acquired decryption key sk v and the public parameter pk in the decryption key storage unit 320.
  • the ciphertext acquisition unit 330 receives the ciphertext ct x transmitted by the encryption device 200 via the network by the communication device.
  • the set I v ⁇ is a subset of the set I x ⁇ If the sum of v t x t is 0 for the index t included in the set I v ⁇ , the ciphertext ct x can be decrypted with the decryption key sk v .
  • ⁇ t t and ⁇ are used as the coefficients of the basis vectors b * 1 and b * 2 (basis vectors b * index ) for the element k * t of the decryption key sk v. and ⁇ t was set, respectively.
  • the cryptographic system 10 the elements c t of the ciphertext ct x, as the coefficients of the basis vectors b 1, b 2 (basis vector b index), and sets the sigma t and sigma t t respectively.
  • the base used in each attribute category can be a common base (base B and base B * ).
  • base B and base B * need be included in the public parameter, and it is not necessary to reissue the public parameter when an attribute category is added later.
  • the inner product may be 0. Therefore, in the above description, the two-dimensional and basis vectors b * 1, b * 2 and basis vectors b 1, b 2 as an index portion, but not limited thereto, and may be an index portion of the above three-dimensional. Further, the assignment of values to the index part is not limited to the above description, and other assignments may be used.
  • the base used in each attribute category is a common base (base B and base B * ).
  • base B and base B * base B *
  • G ob algorithm inner product predicate encryption scheme described above, Setup algorithm, KeyGen algorithm, Enc algorithm, so several 136 numbers 139.
  • the Dec algorithm is as shown in Equation 135 and is not changed. That is, different bases B t and B * t are used for each index t.
  • u 0 , w 0 , z 0 , u, w, and z are each an integer of 0 or more.
  • Embodiment 2 if the set I v ⁇ is a subset of the set I x ⁇ and the sum of v t x t is 0 for the index t included in the set I v ⁇ , the ciphertext ct x The inner product predicate encryption method (Type 1) that can be decrypted with the decryption key sk v has been described.
  • Embodiment 2 if the set I x ⁇ is a subset of the set I v ⁇ and the sum of v t x t is 0 for the index t included in the set I x ⁇ , the ciphertext ct x
  • the inner product predicate encryption method (Type 2) that can be decrypted with the decryption key sk v will be described. In the second embodiment, the description will focus on the parts different from the first embodiment.
  • the configuration of the cryptographic processing system 10 according to the second embodiment is the same as the configuration of the cryptographic processing system 10 according to the first embodiment shown in FIG.
  • the configuration of the key generation device 100, the encryption device 200, and the decryption device 300 according to the second embodiment is the same as that of the key generation device 100, the encryption device 200, and the decryption device according to the first embodiment shown in FIGS.
  • the configuration is the same as 300.
  • FIG. 9 is a flowchart showing the processing of the KeyGen algorithm according to the second embodiment.
  • FIG. 10 is a flowchart showing processing of the Enc algorithm according to the second embodiment.
  • FIG. 11 is a flowchart showing processing of the Dec algorithm according to the second embodiment.
  • the Setup algorithm according to the second embodiment is the same as the Setup algorithm according to the first embodiment.
  • the KeyGen algorithm will be described with reference to FIG.
  • the process of S501 is the same as the process of S201 shown in FIG.
  • Decryption key generation unit 140 generates a random number as shown in Formula 140 by the processing device.
  • the decryption key generation unit 140 generates the element k * 0 of the decryption key sk v as shown in Formula 141 by the processing device. In addition, the decryption key generation unit 140 generates the element k * t of the decryption key sk v for the index t included in the set I v ⁇ by the processing device as shown in Formula 142.
  • the key distribution unit 150 distributes the decryption key sk v having the elements k * 0 and k * t generated in S503 to the decryption apparatus 300 in a secret manner via a network, for example.
  • the decryption key sk v may be distributed to the decryption device 300 by other methods.
  • the key generation device 100 executes the KeyGen algorithm expressed by Equation 143 to generate the decryption key sk v .
  • the key generation apparatus 100 distributes the generated decryption key sk v to the decryption apparatus 300.
  • the processing of the Enc algorithm will be described based on FIG.
  • the processing from S601 to S602 is the same as the processing from S301 to S302 shown in FIG.
  • the ciphertext generation unit 230 generates secret information f t and f 0 as shown in Formula 144 by the processing device.
  • the ciphertext generation unit 230 generates a random number as shown in Formula 145 by the processing device.
  • the ciphertext generation unit 230 generates the element c 0 of the ciphertext ct x as shown in Expression 146 by the processing device. Furthermore, the ciphertext generator 230, the processing unit, the index t in set I x ⁇ , it generates an element c t of ciphertext ct x as shown in Formula 147. The encryption element generator 232, the processing device, generates an element c T of ciphertext ct x as shown in Formula 148.
  • the data transmission unit 240 transmits the ciphertext ct x having the elements c 0 , c t , and c T generated in S605 to the decryption device 300 via the network, for example.
  • the ciphertext ct x may be transmitted to the decryption apparatus 300 by other methods.
  • the encryption apparatus 200 executes the Enc algorithm expressed by Equation 149 to generate a ciphertext ct x .
  • the encryption device 200 transmits the generated ciphertext ct x to the decryption device 300.
  • the processing from S701 to S702 is the same as the processing from S401 to S402 shown in FIG. Further, the process of S704 is the same as the process of S404 shown in FIG.
  • the set I x ⁇ is a subset of the set I v ⁇ If the sum of v t x t is 0 for the index t included in the set I x ⁇ , the ciphertext ct x can be decrypted with the decryption key sk v .
  • the base used in each attribute category is a common base (base B and base B * ).
  • base B and base B * base B *
  • the above-described KeyGen algorithm and Enc algorithm of the inner product predicate encryption method are as shown in Expression 154 to Expression 155.
  • the Gob algorithm is the same as Equation 136
  • the Setup algorithm is the same as Equation 137
  • the Dec algorithm is as Equation 153, and there is no change. That is, different bases B t and B * t are used for each index t.
  • Embodiment 3 FIG.
  • the set I v ⁇ is a subset of the set I x ⁇ and the sum of v t x t is 0 for the index t included in the set I v ⁇
  • the ciphertext ct x The inner product predicate encryption method (Type 1) that can be decrypted with the decryption key sk v has been described.
  • Embodiment 2 if the set I x ⁇ is a subset of the set I v ⁇ and the sum of v t x t is 0 for the index t included in the set I x ⁇ , the ciphertext ct x
  • the inner product predicate encryption method (Type 2) that can be decrypted with the decryption key sk v has been described.
  • the set I v ⁇ is equal to the set I x ⁇ and the sum of v t x t is 0 for the index t included in the set I v ⁇ (or the set I x ⁇ ).
  • the inner product predicate encryption method (Type 0) that can decrypt the ciphertext ct x with the decryption key sk v will be described.
  • the set I v ⁇ is equal to the set I x ⁇ means that the set I v ⁇ is a subset of the set I x ⁇ and the set I x ⁇ is a subset of the set I v ⁇ . To do.
  • the inner product predicate encryption method (Type 0) can be said to be a method combining the inner product predicate encryption method (Type 1) described in the first embodiment and the inner product predicate encryption method (Type 2) described in the second embodiment. .
  • the description will focus on the parts different from the first and second embodiments.
  • the configuration of the cryptographic processing system 10 according to the third embodiment is the same as the configuration of the cryptographic processing system 10 according to the first embodiment shown in FIG.
  • the configuration of the key generation device 100, the encryption device 200, and the decryption device 300 according to the third embodiment is the same as that of the key generation device 100, the encryption device 200, and the decryption device according to the first embodiment shown in FIGS.
  • the configuration is the same as 300.
  • FIG. 12 is a flowchart showing the process of the Setup algorithm according to the third embodiment.
  • FIG. 13 is a flowchart showing the processing of the KeyGen algorithm according to the third embodiment.
  • FIG. 14 is a flowchart showing processing of the Enc algorithm according to the third embodiment.
  • FIG. 15 is a flowchart showing processing of the Dec algorithm according to the third embodiment.
  • the Setup algorithm will be described based on FIG.
  • the master key generation unit 110 executes the algorithm G ob shown in Formula 156, and param, a base B 0 and basal B * 0, the base B 1 (basal B) and basal B * 1 ( Basis B * ).
  • the master key generation unit 110 (S802: Public parameter generation step)
  • the master key generation unit 110 combines the generated partial base B ⁇ 0 and the partial base B ⁇ , the security parameter ⁇ (1 ⁇ ) input in S801, and the param generated in S801 into the public parameter pk. .
  • the master key generation unit 110 sets the generated partial base B ⁇ * 0 and partial base B ⁇ * as the master key sk.
  • the process of S804 is the same as the process of S104 shown in FIG.
  • the key generation device 100 executes the Setup algorithm shown in Equation 159 to generate the public parameter pk and the master key sk.
  • the key generation device 100 stores the generated public parameter pk and master key sk in the storage device.
  • the public parameter is made public via a network, for example, so that the encryption device 200 and the decryption device 300 can obtain it.
  • the KeyGen algorithm will be described with reference to FIG. (S901: Information input step)
  • the predicate information v t for example, attribute information of the user of the decryption key sk v is set.
  • the decryption key generation unit 140 generates secret information s t and s 0 by the processing device as shown in Formula 160.
  • Decryption key generation unit 140 generates a random number as shown in Formula 161 by the processing device.
  • the key distribution unit 150 distributes the decryption key sk v having k * 0 and k * t generated in S904 as elements to the decryption device 300 in a secret manner via a network, for example.
  • the decryption key sk v may be distributed to the decryption device 300 by other methods.
  • the key generation device 100 executes the KeyGen algorithm expressed by Equation 164 to generate the decryption key sk v .
  • the key generation apparatus 100 distributes the generated decryption key sk v to the decryption apparatus 300.
  • the ciphertext generation unit 230 generates secret information f t and f 0 as shown in Expression 165 by the processing device.
  • the ciphertext generation unit 230 generates a random number as shown in Formula 166 by the processing device.
  • the encryption element generator 232 the processing device, generates an element c T of ciphertext ct x as shown in Formula 169.
  • the data transmission unit 240 transmits the cipher text ct x having the elements c 0 , c t , and c T generated in S1005 to the decryption apparatus 300 via the network, for example.
  • the ciphertext ct x may be transmitted to the decryption apparatus 300 by other methods.
  • the encryption apparatus 200 executes the Enc algorithm expressed by Equation 170 to generate a ciphertext ct x .
  • the encryption device 200 transmits the generated ciphertext ct x to the decryption device 300.
  • the process of S1104 is the same as the process of S404 shown in FIG.
  • the set I x ⁇ is the set I v ⁇ equally, and the index t in set I v ⁇ (set I x ⁇ ), v t If the sum of x t is 0, the ciphertext ct x can be decrypted with the decryption key sk v .
  • the base used in each attribute category is a common base (base B and base B * ).
  • base B and base B * base B *
  • G ob algorithm inner product predicate encryption scheme described above Setup algorithm, KeyGen algorithm, Enc algorithm, so several 175 numbers 178.
  • the Dec algorithm is as shown in Equation 174, and there is no change. That is, different bases B t and B * t are used for each index t.
  • u 0 , w 0 , z 0 , u, w, and z are each an integer of 0 or more.
  • Embodiment 4 A functional encryption scheme and attribute-based signature scheme having the inner product predicate encryption scheme described in the above embodiment as a substructure will be described.
  • Non-Patent Document 31 describes a functional encryption method.
  • an inner product of an attribute vector x ⁇ and a predicate vector v ⁇ is calculated for each index t.
  • the inner product of the attribute vector x ⁇ and the predicate vector v ⁇ is 0, and the ciphertext can be decrypted with the decryption key.
  • the inner product predicate encryption method described in the above embodiment is applied to the calculation of the inner product of the attribute vector x ⁇ and the predicate vector v ⁇ at each index t.
  • a functional encryption scheme having the inner product predicate encryption scheme described in the above embodiment as a substructure is configured.
  • KP-FE method Key-Policy functional encryption method
  • a description will be made centering on a portion where a change has occurred by applying the inner product predicate encryption scheme described in the first embodiment.
  • decryption is performed when the inner product of the attribute vector x ⁇ and the predicate vector v ⁇ becomes 0 for each index t using the variable ⁇ (i).
  • the base used in each attribute category is a common base (base B and base B * ).
  • base B and base B * a base used in each attribute category is a different base.
  • the non-patent document 31 and the first embodiment have overlapping characters in the index t and the secret information s. Therefore, here, the index t in the non-patent document 31 is the index ⁇ , and the secret information s in the non-patent document 31 is the secret information ⁇ .
  • the KP-FE system has four algorithms: Setup algorithm, KeyGen algorithm, Enc algorithm, and Dec algorithm.
  • the Setup algorithm will be described.
  • the master key generation unit 110 generates a base B ⁇ , t and a base B * ⁇ , t for each index ⁇ , t by the processing device. That is, the master key generation unit 110 does not generate the base B t and the base B * t for each index t, but generates the base B ⁇ , t and the base B * ⁇ , t for each index ⁇ , t. That is, the Setup algorithm is as shown in Formula 179.
  • the algorithm Gob used in the Setup algorithm is as shown in Formula 180.
  • the ciphertext generation unit 230 generates the element c ⁇ , t of the ciphertext ct x as shown in Expression 185 for one or more indexes ⁇ and the index t included in the set I xi ⁇ .
  • the Enc algorithm is as shown in Equation 186.
  • Dec algorithm is as shown in Formula 188.
  • G ob algorithm inner product predicate encryption scheme described above, Setup algorithm, KeyGen algorithm, Enc algorithm, so several 189 numbers 192.
  • Dec algorithm is as shown in Formula 188, and there is no change.
  • the inner product predicate encryption method described in the first embodiment is applied to the KP-FE method described in Non-Patent Document 31 .
  • the Ciphertext-Policy functional encryption method (CP-FE method) and the Unified-Policy functional encryption method (UP-FE method) described in Non-Patent Document 31 are described in Embodiment 1 by the same method. It is also possible to apply the inner product predicate encryption method.
  • the inner product predicate encryption method described in the second and third embodiments can also be applied to each functional encryption method described in Non-Patent Document 31.
  • the inner product predicate cryptosystem described in the above embodiment can be applied not only to the functional cryptosystem described in Non-Patent Document 31, but also to other functional cryptosystems.
  • the inner product predicate encryption method described in the above embodiment can be applied to the attribute-based signature method described in Non-Patent Document 32 or other documents.
  • the inner product predicate encryption method described in the above embodiment may be applied to the calculation of the inner product of the attribute vector x ⁇ and the predicate vector v ⁇ at each index t.
  • Embodiment 5 FIG.
  • the method for realizing the processing of cryptographic primitives in the dual vector space has been described.
  • a method for realizing cryptographic primitive processing in a dual module will be described.
  • the cryptographic primitive processing is realized in the cyclic group of prime order q.
  • the ring R is expressed as shown in Formula 193 using the composite number M, the processing of the cryptographic primitive described in the above embodiment can be applied to a module having the ring R as a coefficient.
  • FIG. 16 is a diagram illustrating an example of a hardware configuration of the key generation device 100, the encryption device 200, and the decryption device 300.
  • the key generation device 100, the encryption device 200, and the decryption device 300 include a CPU 911 (Central Processing Unit, central processing unit, processing unit, arithmetic unit, microprocessor, microcomputer, A processor).
  • CPU 911 Central Processing Unit, central processing unit, processing unit, arithmetic unit, microprocessor, microcomputer, A processor
  • the CPU 911 is connected to the ROM 913, the RAM 914, the LCD 901 (Liquid Crystal Display), the keyboard 902 (K / B), the communication board 915, and the magnetic disk device 920 via the bus 912, and controls these hardware devices.
  • the magnetic disk device 920 (fixed disk device)
  • a storage device such as an optical disk device or a memory card read / write device may be used.
  • the magnetic disk device 920 is connected via a predetermined fixed disk interface.
  • the ROM 913 and the magnetic disk device 920 are examples of a nonvolatile memory.
  • the RAM 914 is an example of a volatile memory.
  • the ROM 913, the RAM 914, and the magnetic disk device 920 are examples of a storage device (memory).
  • the keyboard 902 and the communication board 915 are examples of input devices.
  • the communication board 915 is an example of a communication device.
  • the LCD 901 is an example of a display device.
  • an operating system 921 OS
  • a window system 922 a program group 923
  • a file group 924 are stored in the magnetic disk device 920 or the ROM 913.
  • the programs in the program group 923 are executed by the CPU 911, the operating system 921, and the window system 922.
  • the program group 923 includes the master key generation unit 110, the master key storage unit 120, the information input unit 130, the decryption key generation unit 140, the key distribution unit 150, the public parameter acquisition unit 210, the information input unit 220, the encryption in the above description.
  • the program is read and executed by the CPU 911.
  • the file group 924 includes information, data, signal values, and variable values such as the public parameter pk, the master secret key sk, the decryption key sk v , the ciphertext ct x , the predicate vector v, the attribute vector x, and the message m in the above description. And parameters are stored as items of files and databases. Files and databases are stored in a recording medium such as a disk or memory. Information, data, signal values, variable values, and parameters stored in a storage medium such as a disk or memory are read out to the main memory or cache memory by the CPU 911 via a read / write circuit, and extracted, searched, referenced, compared, and calculated.
  • Used for the operation of the CPU 911 such as calculation / processing / output / printing / display.
  • Information, data, signal values, variable values, and parameters are temporarily stored in the main memory, cache memory, and buffer memory during the operation of the CPU 911 for extraction, search, reference, comparison, calculation, calculation, processing, output, printing, and display. Is remembered.
  • the arrows in the flowchart mainly indicate input / output of data and signals, and the data and signal values are recorded in a memory of the RAM 914, other recording media such as an optical disk, and an IC chip.
  • Data and signals are transmitted online by a bus 912, signal lines, cables, other transmission media, and radio waves.
  • what is described as “to part” in the above description may be “to circuit”, “to device”, “to device”, “to means”, and “to function”. It may be “step”, “ ⁇ procedure”, “ ⁇ processing”.
  • ⁇ device may be “ ⁇ circuit”, “ ⁇ equipment”, “ ⁇ means”, “ ⁇ function”, and “ ⁇ step”, “ ⁇ procedure”, “ May be “processing”.
  • to process may be “to step”. That is, what is described as “ ⁇ unit” may be realized by firmware stored in the ROM 913. Alternatively, it may be implemented only by software, or only by hardware such as elements, devices, substrates, and wirings, by a combination of software and hardware, or by a combination of firmware.
  • Firmware and software are stored in a recording medium such as ROM 913 as a program. The program is read by the CPU 911 and executed by the CPU 911. That is, the program causes a computer or the like to function as the “ ⁇ unit” described above. Alternatively, the procedure or method of “unit” described above is executed by a computer or the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 属性ベクトルxと、述語ベクトルvとの次元が同じであるという制約のない、自由度の高い内積述語暗号方式を実現することを目的とする。要素cと、集合Ix→に含まれる各インデックスtについての要素cとを有する暗号文を、要素kと、集合Iv→に含まれる各インデックスtについての要素kとを有する復号鍵を用いて、要素c及び要素kと、要素c及び要素kとについて対応する基底ベクトル毎のペアリング演算の積を計算することにより復号する。

Description

暗号システム
 この発明は、一般化された内積述語暗号方式と、一般化された内積述語暗号方式を下部構造に有する関数型暗号方式及び属性ベース署名方式に関する。
 非特許文献30,31には、内積述語暗号方式についての記載がある。
 非特許文献31には、関数型暗号方式についての記載がある。
 非特許文献32には、属性ベース署名方式についての記載がある。
Attrapadung, N. and Libert, B., Functional Encryption for Inner Product: Achieving Constant-Size Ciphertexts with Adaptive Security or Support for Negation, PKC 2010, pp. 384-402. Springer Heidelberg (2010) Beimel, A., Secure schemes for secret sharing and key distribution. PhD Thesis, Israel Institute of Technology,Technion, Haifa, Israel, 1996. Bellare, M., Waters, B., Yilek, S.: Identity-based encryption secure against selective opening attack. In: Ishai, Y.(ed.) TCC 2011. pp. 235-252. Springer Heidelberg (2011) Bethencourt, J., Sahai, A., Waters, B.: Ciphertext-policy attribute-based encryption. In: 2007 IEEE Symposiumon Security and Privacy, pp. 321-334. IEEE Press (2007) Boneh, D., Boyen, X.: Efficient selective-ID secure identity based encryption without random oracles. In: Cachin,C., Camenisch, J. (eds.) EUROCRYPT 2004. LNCS, vol. 3027, pp. 223-238. Springer Heidelberg (2004) Boneh, D., Boyen, X.: Secure identity based encryption without random oracles. In: Franklin, M.K. (ed.) CRYPTO2004. LNCS, vol. 3152, pp. 443-459. Springer Heidelberg (2004) Boneh, D., Boyen, X., Goh, E.: Hierarchical identity based encryption with constant size ciphertext. In: Cramer,R. (ed.) EUROCRYPT 2005. LNCS, vol. 3494, pp. 440-456. Springer Heidelberg (2005) Boneh, D., Boyen, X., Shacham, H.: Short group signatures. In: Franklin, M. (ed.) CRYPTO 2004. LNCS, vol.3152, pp. 41-55. Springer, Heidelberg (2004) Boneh, D., Franklin, M.: Identity-based encryption from the Weil pairing. In: Kilian, J. (ed.) CRYPTO 2001.LNCS, vol. 2139, pp. 213-229. Springer Heidelberg (2001) Boneh, D., Hamburg, M.: Generalized identity based and broadcast encryption scheme. In: Pieprzyk, J. (ed.)ASIACRYPT 2008. LNCS, vol. 5350, pp. 455-470. Springer Heidelberg (2008) Boneh, D., Katz, J., Improved efficiency for CCA-secure cryptosystems built using identity based encryption.RSA-CT 2005, LNCS, Springer Verlag (2005) Boneh, D., Waters, B.: Conjunctive, subset, and range queries on encrypted data. In: Vadhan, S.P. (ed.) TCC2007. LNCS, vol. 4392, pp. 535-554. Springer Heidelberg (2007) Boyen, X., Waters, B.: Anonymous hierarchical identity-based encryption (without random oracles). In: Dwork,C. (ed.) CRYPTO 2006. LNCS, vol. 4117, pp. 290-307. Springer Heidelberg (2006) Canetti, R., Halevi S., Katz J.: Chosen-ciphertext security from identity-based encryption. EUROCRYPT 2004,LNCS, Springer Heidelberg (2004) Chase, M.: Multi-authority attribute based encryption. TCC, LNCS, pp. 515-534, Springer Heidelberg (2007). Chase, M. and Chow, S.: Improving privacy and security in multi-authority attribute-based encryption, ACM Conference on Computer and Communications Security, pp. 121-130, ACM (2009). Cocks, C.: An identity based encryption scheme based on quadratic residues. In: Honary, B. (ed.) IMA Int. Conf.LNCS, vol. 2260, pp. 360-363. Springer Heidelberg (2001) Gentry, C.: Practical identity-based encryption without random oracles. In: Vaudenay, S. (ed.) EUROCRYPT2006. LNCS, vol. 4004, pp. 445-464. Springer Heidelberg (2006) Gentry, C., Halevi, S.: Hierarchical identity-based encryption with polynomially many levels. In: Reingold, O.(ed.) TCC 2009. LNCS, vol. 5444, pp. 437-456. Springer Heidelberg (2009) Gentry, C., Silverberg, A.: Hierarchical ID-based cryptography. In: Zheng, Y. (ed.) ASIACRYPT 2002. LNCS,vol. 2501, pp. 548-566. Springer Heidelberg (2002) Goyal, V., Pandey, O., Sahai, A., Waters, B.: Attribute-based encryption for fine-grained access control of encrypted data. In: ACM Conference on Computer and Communication Security 2006, pp. 89-98, ACM (2006) Katz, J., Sahai, A., Waters, B.: Predicate encryption supporting disjunctions, polynomial equations, and inner products. In: Smart, N.P. (ed.) EUROCRYPT 2008. LNCS, vol. 4965, pp. 146-162. Springer Heidelberg (2008) Lewko, A., Okamoto, T., Sahai, A., Takashima, K., Waters, B.: Fully secure functional encryption: Attribute-based encryption and (hierarchical) inner product encryption, EUROCRYPT 2010. LNCS, Springer Heidelberg (2010) Full version is available at http://eprint.iacr.org/2010/110 Lewko, A.B.,Waters, B.: New techniques for dual system encryption and fully secure HIBE with short ciphertexts.In: Micciancio, D. (ed.) TCC 2010. LNCS, vol. 5978, pp. 455-479. Springer Heidelberg (2010) Lewko, A.B., Waters, B.: Decentralizing Attribute-Based Encryption, EUROCRYPT 2011. LNCS, vol. 6632, pp.568-588. Springer Heidelberg (2011) Lewko, A.B., Waters, B.: Unbounded HIBE and attribute-based encryption, EUROCRYPT 2011. LNCS, vol.6632, pp. 547-567. Springer Heidelberg (2011) H. Lin, Z. Cao, X. Liang, and J. Shao.: Secure threshold multi authority attribute based encryption without a central authority, INDOCRYPT, LNCS, vol. 5365, pp. 426-436, Springer Heidelberg (2008). S. Mueller, S. Katzenbeisser, and C. Eckert.; On multi-authority ciphertext-policy attribute-based encryption,Bull. Korean Math Soc. 46, No.4, pp. 803-819 (2009). Okamoto, T., Takashima, K.: Homomorphic encryption and signatures from vector decomposition. In: Galbraith,S.D., Paterson, K.G. (eds.) Pairing 2008. LNCS, vol. 5209, pp. 57-74, Springer Heidelberg (2008) Okamoto, T., Takashima, K.: Hierarchical predicate encryption for inner-products, In: ASIACRYPT 2009,Springer Heidelberg (2009) Okamoto, T., Takashima, K.: Fully secure functional encryption with general relations from the decisional linear assumption. In: Rabin, T. (ed.) CRYPTO 2010. LNCS, vol. 6223, pp. 191-208. Springer Heidelberg (2010). Full version is available at http://eprint.iacr.org/2010/563 Okamoto, T., Takashima, K.: Efficient attribute-based signatures for non-monotone predicates in the standard model, In: PKC 2011, Springer Heidelberg (2011) Okamoto, T., Takashima, K.: Achieving Short Ciphertexts or Short Secret-Keys for Adaptively Secure General Inner-Product Encryption. CANS 2011, LNCS, vol. 7092, pp. 138-159 Springer Heidelberg (2011). Okamoto, T., Takashima, K.: Adaptively Attribute-Hiding (Hierarchical) Inner Product Encryption. EUROCRYPT 2012, LNCS, vol. 7237, pp.591-608, Springer Heidelberg (2012) Ostrovsky, R., Sahai, A., Waters, B.: Attribute-based encryption with non-monotonic access structures. In: ACM Conference on Computer and Communication Security 2007, pp. 195-203, ACM (2007) Pirretti, M., Traynor, P., McDaniel, P., Waters, B.: Secure attribute-based systems. In: ACM Conference on Computer and Communication Security 2006, pp. 99-112, ACM, (2006) Sahai, A., Waters, B.: Fuzzy identity-based encryption. In: Cramer, R. (ed.) EUROCRYPT 2005. LNCS, vol.3494, pp. 457-473. Springer Heidelberg (2005) Shi, E., Waters, B.: Delegating capability in predicate encryption systems. In: Aceto, L., Damg「aard, I., Goldberg,L.A., Halldoersson, M.M., Ingoelfsdoettir, A., Walukiewicz, I. (eds.) ICALP (2) 2008. LNCS, vol. 5126, pp. 560-578. Springer Heidelberg (2008) Waters, B.: Efficient identity based encryption without random oracles. Eurocrypt 2005, LNCS, vol. 3152, pp.443-459. Springer Verlag, (2005) Waters, B.: Ciphertext-policy attribute-based encryption: an expressive, efficient, and provably secure realization. PKC 2011, LNCS, vol. 6571, pp. 53-70. Springer Heidelberg (2011). ePrint, IACR, http://eprint.iacr.org/2008/290 Waters, B.: Dual system encryption: realizing fully secure IBE and HIBE under simple assumptions. In: Halevi,S. (ed.) CRYPTO 2009. LNCS, vol. 5677, pp. 619-636. Springer Heidelberg (2009)
 非特許文献30,31に記載された内積述語暗号方式では、属性ベクトルx(暗号化に用いられるパラメータ)と、述語ベクトルv(秘密鍵に用いられるパラメータ)との次元が同じであるという制約があった。
 この発明は、より自由度の高い内積述語暗号方式を実現することを目的とする。
 この発明に係る暗号システムは、
 暗号化装置と復号装置とを備える暗号システムであり、
 前記暗号化装置は、
 基底ベクトルb0,rの係数として値ωが設定された要素cと、集合Ix→に含まれる各インデックスtについて、基底ベクトルbの係数として属性情報xが設定され、基底ベクトルbの係数として前記値ωが設定された要素cとを有する暗号文を生成する暗号文生成部
を備え、
 前記復号装置は、
 集合Iv→に含まれる各インデックスtについての値sの合計が値sである値s及び値sを用いて生成された要素kと要素kとであって、前記基底ベクトルb0,rに対応する基底ベクトルb 0,rの係数として値-sが設定された要素kと、集合Iv→に含まれる各インデックスtについて、前記基底ベクトルbに対応する基底ベ
クトルb の係数として述語情報vが設定され、前記基底ベクトルbに対応する基底ベクトルb の係数として値sが設定された要素kとを有する復号鍵を記憶する復号鍵記憶部と、
 前記暗号文生成部が生成した暗号文を、前記復号鍵記憶部が記憶した復号鍵により復号する復号部であって、前記要素c及び前記要素kと、前記集合Iv→に含まれる各インデックスtについての要素c及び要素kとに対して、対応する基底ベクトル毎のペアリング演算の積を計算して、前記暗号文を復号する復号部と
を備えることを特徴とする。
 この発明に係る暗号システムは、集合Iv→に含まれるインデックスtについてのみペアリング演算を行っており、属性ベクトルxと述語ベクトルvとの次元が同じである必要はない。そのため、この発明に係る暗号システムは、自由度の高い内積述語暗号方式を実現できる。
実施の形態1に係る暗号処理システム10の構成図。 実施の形態1に係る鍵生成装置100の機能を示す機能ブロック図。 実施の形態1に係る暗号化装置200の機能を示す機能ブロック図。 実施の形態1に係る復号装置300の機能を示す機能ブロック図。 実施の形態1に係るSetupアルゴリズムの処理を示すフローチャート。 実施の形態1に係るKeyGenアルゴリズムの処理を示すフローチャート。 実施の形態1に係るEncアルゴリズムの処理を示すフローチャート。 実施の形態1に係るDecアルゴリズムの処理を示すフローチャート。 実施の形態2に係るKeyGenアルゴリズムの処理を示すフローチャート。 実施の形態2に係るEncアルゴリズムの処理を示すフローチャート。 実施の形態2に係るDecアルゴリズムの処理を示すフローチャート。 実施の形態3に係るSetupアルゴリズムの処理を示すフローチャート。 実施の形態3に係るKeyGenアルゴリズムの処理を示すフローチャート。 実施の形態3に係るEncアルゴリズムの処理を示すフローチャート。 実施の形態3に係るDecアルゴリズムの処理を示すフローチャート。 鍵生成装置100、暗号化装置200、復号装置300のハードウェア構成の一例を示す図。
 以下、図に基づき、発明の実施の形態を説明する。
 以下の説明において、処理装置は後述するCPU911等である。記憶装置は後述するROM913、RAM914、磁気ディスク920等である。通信装置は後述する通信ボード915等である。入力装置は後述するキーボード902、通信ボード915等である。出力装置は後述するRAM914、磁気ディスク920、通信ボード915、LCD901等である。つまり、処理装置、記憶装置、通信装置、入力装置、出力装置はハードウェアである。
 以下の説明における記法について説明する。
 Aがランダムな変数または分布であるとき、数101は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数101において、yは乱数である。
Figure JPOXMLDOC01-appb-M000010
 Aが集合であるとき、数102は、Aからyを一様に選択することを表す。つまり、数102において、yは一様乱数である。
Figure JPOXMLDOC01-appb-M000011
 数103は、yがzにより定義された集合であること、又はyがzを代入された集合であることを表す。
Figure JPOXMLDOC01-appb-M000012
 aが定数であるとき、数104は、機械(アルゴリズム)Aが入力xに対しaを出力することを表す。
Figure JPOXMLDOC01-appb-M000013
 数105、つまりFは、位数qの有限体を示す。
Figure JPOXMLDOC01-appb-M000014
 ベクトル表記は、有限体Fにおけるベクトル表示を表す。つまり、数106である。
Figure JPOXMLDOC01-appb-M000015
 数107は、数108に示す2つのベクトルxとvとの数109に示す内積を表す。
Figure JPOXMLDOC01-appb-M000016
Figure JPOXMLDOC01-appb-M000017
Figure JPOXMLDOC01-appb-M000018
 Xは、行列Xの転置行列を表す。
 数110に示す基底Bと基底Bとに対して、数111である。
Figure JPOXMLDOC01-appb-M000019
Figure JPOXMLDOC01-appb-M000020
 また、以下の説明において、“δi,j”が上付きで示されている場合、このδi,jは、δi,jを意味する。
 また、ベクトルを意味する“→”が下付き文字又は上付き文字に付されている場合、この“→”は下付き文字又は上付き文字に上付きで付されていることを意味する。
 また、以下の説明において、暗号プリミティブの処理は、情報を第三者から秘匿するための狭義の暗号処理だけでなく、署名処理をも含むものであり、鍵生成処理、暗号化処理、復号処理、署名処理、検証処理を含む。
 実施の形態1.
 実施の形態1では、内積述語暗号方式の基礎となる概念を説明した上で、1つの内積述語暗号方式について説明する。
 第1に、属性ベクトルx及び述語ベクトルvの次元について説明する。
 第2に、属性カテゴリの追加について説明する。
 第3に、内積述語暗号方式を実現するための空間である「双対ペアリングベクトル空間(Dual Pairing Vector Spaces(DPVS))」という豊かな数学的構造を有する空間を説明する。
 第4に、実施の形態1に係る内積述語暗号方式(Type1)について説明する。
 <第1.属性ベクトルx及びvの次元>
 非特許文献30,31に記載された内積述語暗号方式では、属性ベクトルx及び述語ベクトルvの次元が同じであるという制約があった。この制約は、内積x・vの関係に対しては不可避であると考えられていた。しかし、様々なアプリケーションにおいて効率を改善するためには、この制約を緩和する必要がある。
 一例として、個人の遺伝子データについて考える。個人の遺伝子データは、慎重に扱うべきデータであり、データの処理や検索を行う場合には暗号化されるべきデータである。遺伝子データは膨大な情報量であるが、多くのアプリケーションでは、遺伝子データの一部のみが用いられるという特徴がある。
 例えば、アリスの遺伝子データがある特性を有しているか否かを検査する場合、多数(例えば、100個)の遺伝子プロパティのうち、対象とする数個(例えば、3個)の遺伝子プロパティについて、アリスの遺伝子データが条件を満たしているか否かを判定する。残り(97個)の遺伝子プロパティについては、条件を満たしているか否か判定する必要はない。
 例えば、X,...,X100は100個の遺伝子プロパティであり、x,...,x100はアリスについての100個の遺伝子プロパティの値であるとする。3次の(多変数の)検査多項式fに対してf(x,...,x100)=0か否かを評価するために、又は、対応する述語φ(x,...,x100)の真理値を評価するために、アリスの属性ベクトルxを、3次のアリスの値の単項式ベクトルx:=(1,x,...,x100,x ,x,...,x100 ,x ,x ,...,x100 )に変換する。この属性ベクトルxは、約10次元である。
 検査に使用される検査式(述語)は、((X=a)∨(X16=b))∧(X57=c)であり、3つの遺伝子プロパティX,X16,X57にのみ注目したものであるとする。これは、r(X-a)(X16-b)+r(X57-c)=0(ここで、r、rは一様乱数)という多項式によって表される。なお、この多項式は、(rab-rc)-rbX-raX16+r57+r16=0に変換できる。x・v=0の場合に限り、r(X-a)(X16-b)+r(X57-c)=0とするため、この多項式は、述語ベクトルvは、((rab-rc),0,...,0,-rb,0,...,0,-ra,0,...,0,r,0,...,0,r,0,...,0)に変換される。この述語ベクトルvは、有効な次元(0以外の要素を有する次元)は5次元だけであるが、属性ベクトルxと同じ約10次元である。
 このように、述語ベクトルvは、実際に有効な次元は5次元であるにも関わらず、約10次元としなければならないのは、属性ベクトルx及び述語ベクトルvの次元が同じであるという制約があるためである。この制限を取り除ければ、述語ベクトルvを有効な次元(ここでは、5次元)だけで構成することが可能になる。
 ここでは、述語ベクトルvを有効な次元だけで構成することを説明したが、同様に、属性ベクトルxを有効な次元だけで構成することも可能である。
 <第2.属性カテゴリの追加>
 属性カテゴリとは、例えば、所属機関、所属部署、役職、年齢、性別等、各ユーザの属性の分類のことである。
 以下の実施の形態で説明する内積述語暗号方式は、ユーザの属性に基づくアクセスコントロールを実現する。例えば、情報を第三者から秘匿するための狭義の暗号処理であれば、ユーザの属性に基づき、暗号文を復号できるか否かを制御する。
 通常、アクセスコントロールに使用する属性カテゴリは、システム設計時に予め決定される。しかし、後にシステムの運用が変更され、アクセスコントロールに使用する属性カテゴリの追加が必要になる場合がある。
 例えば、A会社内のみで使用することを想定して暗号システムを構築したとする。この場合、使用する属性カテゴリとしては、所属部署、役職、個人のID等が想定される。しかし、後に、A会社だけでなく、A会社の関連会社でも暗号システムを使用するように運用が変更されたとする。この場合、使用する属性カテゴリとして、新たに所属会社を追加する必要がある。
 アクセスコントロールに使用する属性カテゴリが、公開パラメータにより規定されている場合、後に属性カテゴリを追加するには、公開パラメータを再発行し、ユーザへ配布し直さなければならない。そのため、後に属性カテゴリを追加することは容易でなく、システム設計時に想定していなかった運用形態を柔軟に採用することができない。
 そのため、公開パラメータを再発行することなく、属性カテゴリを追加できることは重要である。
 公開パラメータを再発行することなく、属性カテゴリの追加を可能とするために、双対ペアリングベクトル空間における双対システム暗号に、インデックス付けの技法を適用する。
 双対ペアリングベクトル空間における双対システム暗号では、双対基底である基底Bと基底Bとがランダムに生成される。そして、基底Bの一部(基底B^)が公開パラメータとされる。
 非特許文献31に記載された内積述語暗号方式では、基底B^,...,基底B^が公開パラメータとして生成される。そして、t=1,...,dの各整数tについての基底B^に、1つの属性カテゴリが割り当てられる。つまり、d個の属性カテゴリを扱うことができる。
 ここで、基底B^,...,基底B^が公開パラメータであることから明らかなように、後に基底B^を追加する場合、すなわちdの値を増やす場合には、公開パラメータを再発行しなければならない。つまり、dの値は公開パラメータによって制限されている。
 以下に説明する内積述語暗号方式では、基底B^が公開パラメータとして生成される。そして、t=1,...,dの各整数tについて、σ(1,t)とμ(t,-1)との2次元のインデックスベクトルが暗号文cと秘密鍵kとに設定され、各整数tに対して1つの属性カテゴリが割り当てられる。つまり、d個の属性カテゴリを扱うことができる。
 ここで、公開パラメータには、基底B^は含まれているものの、インデックスベクトルは含まれていない。そのため、後にインデックスベクトルを追加し、dの値を増やす場合、公開パラメータを再発行する必要はない。つまり、dの値は公開パラメータによって制限されていない。
 <第3.双対ペアリングベクトル空間>
 以下に説明する内積述語暗号方式は、双対ペアリングベクトル空間において実現される。
 まず、対称双線形ペアリング群について説明する。
 対称双線形ペアリング群(q,G,G,g,e)は、素数qと、位数qの巡回加法群Gと、位数qの巡回乗法群Gと、g≠0∈Gと、多項式時間で計算可能な非退化双線形ペアリング(Nondegenerate Bilinear Pairing)e:G×G→Gとの組である。非退化双線形ペアリングは、e(sg,tg)=e(g,g)stであり、e(g,g)≠1である。
 以下の説明において、Gbpgを、1λを入力として、セキュリティパラメータをλとする双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を出力するアルゴリズムとする。
 次に、双対ペアリングベクトル空間について説明する。
 双対ペアリングベクトル空間(q,V,G,A,e)は、対称双線形ペアリング群(param:=(q,G,G,g,e))の直積によって構成することができる。双対ペアリングベクトル空間(q,V,G,A,e)は、素数q、数112に示すF上のN次元ベクトル空間V、位数qの巡回群G、空間Vの標準基底A:=(a,...,a)の組であり、以下の演算(1)(2)を有する。ここで、aは、数113に示す通りである。
Figure JPOXMLDOC01-appb-M000021
Figure JPOXMLDOC01-appb-M000022
 演算(1):非退化双線形ペアリング
 空間Vにおけるペアリングは、数114によって定義される。
Figure JPOXMLDOC01-appb-M000023
 これは、非退化双線形である。つまり、e(sx,ty)=e(x,y)stであり、全てのy∈Vに対して、e(x,y)=1の場合、x=0である。また、全てのiとjとに対して、e(a,a)=e(g,g)δi,jである。ここで、i=jであれば、δi,j=1であり、i≠jであれば、δi,j=0である。また、e(g,g)≠1∈Gである。
 演算(2):ディストーション写像
 数115に示す空間Vにおける線形変換φi,jは、数116を行うことができる。
Figure JPOXMLDOC01-appb-M000024
Figure JPOXMLDOC01-appb-M000025
 ここで、線形変換φi,jをディストーション写像と呼ぶ。
 以下の説明において、Gdpvsを、1λ(λ∈自然数)、N∈自然数、双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を入力として、セキュリティパラメータがλであり、N次元の空間Vとする双対ペアリングベクトル空間のパラメータparam:=(q,V,G,A,e)の値を出力するアルゴリズムとする。
 なお、ここでは、上述した対称双線形ペアリング群により、双対ペアリングベクトル空間を構成した場合について説明する。なお、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成することも可能である。以下の説明を、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成した場合に応用することは容易である。
 <第4.内積述語暗号方式>
 内積述語暗号方式は、Setup、KeyGen、Enc、Decの4つの確率的多項式時間アルゴリズムを備える。
 (Setup)
 Setupアルゴリズムでは、セキュリティパラメータ1λが入力され、マスター公開鍵pkとマスター秘密鍵skとが出力される。
 (KeyGen)
 KeyGenアルゴリズムでは、マスター公開鍵pkとマスター秘密鍵skと述語ベクトルvとが入力され、秘密鍵skが出力される。
 (Enc)
 Encアルゴリズムでは、マスター公開鍵pkと属性ベクトルxとメッセージmとが入力され、暗号文ctが出力される。
 (Dec)
 Decアルゴリズムでは、マスター公開鍵pkと秘密鍵skと暗号文ctとが入力され、メッセージm又は識別情報⊥が出力される。識別情報⊥とは、復号に失敗したことを示す情報である。
 内積述語暗号方式のアルゴリズムを実行する暗号処理システム10について説明する。
 図1は、実施の形態1に係る暗号処理システム10の構成図である。
 暗号処理システム10は、鍵生成装置100、暗号化装置200(送信装置)、復号装置300(受信装置)を備える。
 鍵生成装置100は、セキュリティパラメータλを入力としてSetupアルゴリズムを実行して、マスター公開鍵pkとマスター秘密鍵skとを生成する。そして、鍵生成装置100は、生成したマスター公開鍵pkを公開する。また、鍵生成装置100は、マスター公開鍵pkとマスター秘密鍵skと述語ベクトルvとを入力としてKeyGenアルゴリズムを実行して、秘密鍵skを生成して復号装置300へ秘密裡に配布する。
 暗号化装置200は、マスター公開鍵pkと属性ベクトルxとメッセージmとを入力としてEncアルゴリズムを実行して、暗号文ctを生成する。暗号化装置200は、生成した暗号文ctを復号装置300へ送信する。
 復号装置300は、マスター公開鍵pkと秘密鍵skと暗号文ctとを入力としてDecアルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
 図2は、実施の形態1に係る鍵生成装置100の機能を示す機能ブロック図である。図3は、実施の形態1に係る暗号化装置200の機能を示す機能ブロック図である。図4は、実施の形態1に係る復号装置300の機能を示す機能ブロック図である。
 図5と図6とは、実施の形態1に係る鍵生成装置100の動作を示すフローチャートである。なお、図5は実施の形態1に係るSetupアルゴリズムの処理を示すフローチャートであり、図6は実施の形態1に係るKeyGenアルゴリズムの処理を示すフローチャートである。図7は、実施の形態1に係る暗号化装置200の動作を示すフローチャートであり、実施の形態1に係るEncアルゴリズムの処理を示すフローチャートである。図8は、実施の形態1に係る復号装置300の動作を示すフローチャートであり、実施の形態1に係るDecアルゴリズムの処理を示すフローチャートである。
 鍵生成装置100の機能と動作とについて説明する。
 図2に示すように、鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵配布部150を備える。
 まず、図5に基づき、Setupアルゴリズムの処理について説明する。
 (S101:正規直交基底生成ステップ)
 マスター鍵生成部110は、処理装置により、数117を計算して、パラメータparamと、基底B及び基底B と、基底B(基底B)及び基底B (基底B)とを生成する。
Figure JPOXMLDOC01-appb-M000026
 つまり、マスター鍵生成部110は以下の処理を実行する。
 (1)マスター鍵生成部110は、入力装置により、セキュリティパラメータλ(1λ)を入力する。
 (2)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλ(1λ)を入力としてアルゴリズムGbpgを実行して、双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を生成する。
 (3)マスター鍵生成部110は、処理装置により、乱数ψを生成するとともに、Nに1+u+1+w+zを、Nに4+u+w+zを設定する。なお、u,w,z,u,w,zはそれぞれ0以上の整数である。
 続いて、マスター鍵生成部110は、t=0,1の各tについて以下の(4)から(8)までの処理を実行する。
 (4)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλ(1λ)と、(3)で設定したNと、(2)で生成したparam:=(q,G,G,g,e)の値とを入力としてアルゴリズムGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,V,G,A,e)の値を生成する。
 (5)マスター鍵生成部110は、処理装置により、(3)で設定したNと、Fとを入力として、線形変換X:=(χt,i,ji,jをランダムに生成する。なお、GLは、General Linearの略である。つまり、GLは、一般線形群であり、行列式が0でない正方行列の集合であり、乗法に関し群である。また、(χt,i,ji,jは、行列χt,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,Nである。
 (6)マスター鍵生成部110は、処理装置により、乱数ψと線形変換Xとに基づき、(νt,i,ji,j:=ψ・(X -1を生成する。なお、(νt,i,ji,jも(χt,i,ji,jと同様に、行列νt,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,Nである。
 (7)マスター鍵生成部110は、処理装置により、(5)で生成した線形変換Xに基づき、(4)で生成した標準基底Aから基底Bを生成する。なお、x t,iとは、線形変換Xのi行目を示す。
 (8)マスター鍵生成部110は、処理装置により、(6)で生成した(νt,i,ji,jに基づき、(4)で生成した標準基底Aから基底B を生成する。なお、v t,iとは、線形変換X のi行目を示す。
 (9)マスター鍵生成部110は、処理装置により、gにe(g,g)ψを設定する。また、マスター鍵生成部110は、paramに(4)で生成した{paramVtt=0,1と、gとを設定する。
 すなわち、S101で、マスター鍵生成部110は、数118に示すアルゴリズムGobを実行して、paramと、基底B及び基底B と、基底B(基底B)及び基底B (基底B)とを生成する。
Figure JPOXMLDOC01-appb-M000027
 なお、以下の説明では、簡単のため、基底B及び基底B を基底B及び基底Bとする。
 (S102:公開パラメータ生成ステップ)
 マスター鍵生成部110は、処理装置により、S101で生成した基底Bの部分基底B^と、基底Bの部分基底B^とを数119に示すように生成する。
Figure JPOXMLDOC01-appb-M000028
 マスター鍵生成部110は、生成した部分基底B^及び部分基底B^と、S101で入力されたセキュリティパラメータλ(1λ)と、S101で生成したparamとを合わせて、公開パラメータpkとする。
 (S103:マスター鍵生成ステップ)
 マスター鍵生成部110は、処理装置により、S101で生成した基底B の部分基底B^ と、基底Bの部分基底B^とを数120に示すように生成する。
Figure JPOXMLDOC01-appb-M000029
 マスター鍵生成部110は、生成した部分基底B^ と部分基底B^とをマスター鍵skとする。
 (S104:マスター鍵記憶ステップ)
 マスター鍵記憶部120は、S102で生成した公開パラメータpkを記憶装置に記憶する。また、マスター鍵記憶部120は、S103で生成したマスター鍵skを記憶装置に記憶する。
 つまり、S101からS103において、鍵生成装置100は、数121に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、S104で、鍵生成装置100は、生成した公開パラメータpkとマスター鍵skとを記憶装置に記憶する。
 なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
Figure JPOXMLDOC01-appb-M000030
 図6に基づき、KeyGenアルゴリズムの処理について説明する。
 (S201:情報入力ステップ)
 情報入力部130は、入力装置により、述語ベクトルv:={(t,v)|t∈Iv→}を入力する。つまり、述語ベクトルvは、集合Iv→に含まれるインデックスtについて、インデックスtと述語情報vとを要素として有するベクトルである。述語情報vとしては、例えば、復号鍵skの使用者の属性情報が設定されている。
 (S202:秘密情報生成ステップ)
 復号鍵生成部140は、処理装置により、秘密情報s,sを数122に示すように生成する。
Figure JPOXMLDOC01-appb-M000031
 (S203:乱数生成ステップ)
 復号鍵生成部140は、処理装置により、乱数を数123に示すように生成する。
Figure JPOXMLDOC01-appb-M000032
 (S204:鍵要素生成ステップ)
 復号鍵生成部140は、処理装置により、復号鍵skの要素k を数124に示すように生成する。
Figure JPOXMLDOC01-appb-M000033
 なお、上述したように、数110に示す基底Bと基底Bとに対して、数111である。したがって、数124は、基底B の基底ベクトルb 0,1の係数として-sを設定し、基底ベクトルb 0,1+1,...,b 0,1+u0の係数として0を設定し、基底ベクトルb 0,1+u0+1の係数として1を設定し、基底ベクトルb 0,1+u0+1+1,...,b 0,1+u0+1+w0の係数としてη0,1,...,η0,w0を設定し、基底ベクトルb 0,1+u0+1+w0+1,...,b 0,1+u0+1+w0+z0の係数として0を設定することを意味する。ここで、u0,w0,z0はそれぞれu,w,zのことである。
 また、復号鍵生成部140は、処理装置により、集合Iv→に含まれるインデックスtについて、復号鍵skの要素k を数125に示すように生成する。
Figure JPOXMLDOC01-appb-M000034
 つまり、数125は、数124と同様に、基底Bの基底ベクトルb の係数としてμtを設定し、基底ベクトルb の係数として-μを設定し、基底ベクトルb の係数としてδvを設定し、基底ベクトルb の係数としてsを設定し、基底ベクトルb 4+1,...,b 4+uの係数として0を設定し、基底ベクトルb 4+u+1,...,b 4+u+wの係数としてηt,1,...,ηt,wを設定し、基底ベクトルb 4+u+w+1,...,b 4+u+w+zの係数として0を設定することを意味する。
 (S205:鍵配布ステップ)
 鍵配布部150は、S204で生成されたk ,k とを要素とする復号鍵skを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skは、他の方法により復号装置300へ配布されてもよい。
 つまり、S201からS204において、鍵生成装置100は、数126に示すKeyGenアルゴリズムを実行して、復号鍵skを生成する。そして、S205で、鍵生成装置100は、生成した復号鍵skを復号装置300へ配布する。
Figure JPOXMLDOC01-appb-M000035
 暗号化装置200の機能と動作とについて説明する。
 暗号化装置200は、公開パラメータ取得部210、情報入力部220、暗号文生成部230、データ送信部240を備える。
 図7に基づき、Encアルゴリズムの処理について説明する。
 (S301:公開パラメータ取得ステップ)
 公開パラメータ取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
 (S302:情報入力ステップ)
 情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。また、情報入力部220は、入力装置により、属性ベクトルx:={(t,x)|t∈Ix→}を入力する。つまり、属性ベクトルxは、集合Ix→に含まれるインデックスtについて、インデックスtと属性情報xとを要素として有するベクトルである。属性ベクトルxは、例えば、復号可能なユーザの属性情報が設定されている。
 (S303:乱数生成ステップ)
 暗号文生成部230は、処理装置により、乱数を数127に示すように生成する。
Figure JPOXMLDOC01-appb-M000036
 (S304:暗号要素生成ステップ)
 暗号文生成部230は、処理装置により、暗号文ctの要素cを数128に示すように生成する。
Figure JPOXMLDOC01-appb-M000037
 また、暗号文生成部230は、処理装置により、集合Ix→に含まれるインデックスtについて、暗号文ctの要素cを数129に示すように生成する。
Figure JPOXMLDOC01-appb-M000038
 また、暗号要素生成部232は、処理装置により、暗号文ctの要素cを数130に示すように生成する。
Figure JPOXMLDOC01-appb-M000039
 (S305:データ送信ステップ)
 データ送信部240は、S304で生成されたc,c,cを要素とする暗号文ctを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctは、他の方法により復号装置300へ送信されてもよい。
 つまり、S301からS304において、暗号化装置200は、数131に示すEncアルゴリズムを実行して、暗号文ctを生成する。そして、S305で、暗号化装置200は生成した暗号文ctを復号装置300へ送信する。
Figure JPOXMLDOC01-appb-M000040
 復号装置300の機能と動作とについて説明する。
 復号装置300は、復号鍵取得部310、復号鍵記憶部320、暗号文取得部330、ペアリング演算部340、メッセージ計算部350を備える。ペアリング演算部340とメッセージ計算部350とを合わせて復号部と呼ぶ。
 図8に基づき、Decアルゴリズムの処理について説明する。
 (S401:復号鍵取得ステップ)
 復号鍵取得部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から配布された復号鍵skを取得する。また、復号鍵取得部310は、鍵生成装置100が生成した公開パラメータpkを取得する。
 復号鍵取得部310は、取得した復号鍵skと公開パラメータpkとを復号鍵記憶部320に記憶する。
 (S402:暗号文取得ステップ)
 暗号文取得部330は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号文ctを受信する。
 (S403:ペアリング演算ステップ)
 ペアリング演算部340は、処理装置により、数132を計算して、セッション鍵K=g ζを生成する。
Figure JPOXMLDOC01-appb-M000041
 なお、もし、数133であるなら、数134に示すように、数132を計算することにより鍵K=g ζが得られる。
Figure JPOXMLDOC01-appb-M000043
 つまり、集合Iv→が集合Ix→の部分集合であり、かつ、集合Iv→に含まれるインデックスtについて、vの合計が0となるなら、数132を計算することにより鍵K=g ζが得られる。
 (S404:メッセージ計算ステップ)
 メッセージ計算部350は、処理装置により、m’=c/Kを計算して、メッセージm’(=m)を生成する。なお、cは数130に示す通りg ζmであり、Kはg ζであるから、m’=c/Kを計算すればメッセージmが得られる。
 つまり、S401からS404において、復号装置300は、数135に示すDecアルゴリズムを実行して、メッセージm’(=m)を生成する。
Figure JPOXMLDOC01-appb-M000044
 以上のように、実施の形態1に係る内積述語暗号方式では、属性ベクトルx及び述語ベクトルvの次元が同じでなくても、集合Iv→が集合Ix→の部分集合であり、かつ、集合Iv→に含まれるインデックスtについて、vの合計が0となるなら、暗号文ctを復号鍵skで復号することができる。
 また、実施の形態1に係る内積述語暗号方式では、復号鍵skの要素k について、基底ベクトルb ,b (基底ベクトルb index)の係数として、μtと-μとをそれぞれ設定した。また、暗号システム10は、暗号文ctの要素cについて、基底ベクトルb,b(基底ベクトルbindex)の係数として、σとσtとをそれぞれ設定した。
 そのため、対応するインデックスtについての要素k と要素cとのペアリング演算を行うと、基底ベクトルb ,b と基底ベクトルb,bとの部分については、内積が0となり、キャンセルされる。つまり、対応するインデックスtについての要素k と要素cとのペアリング演算を行うと、基底ベクトルの係数として設定したインデックス部(基底ベクトルb ,b と基底ベクトルb,bとの部分)はキャンセルされ、残りの部分についてのペアリング演算の結果が得られる。
 実施の形態1に係る内積述語暗号方式では、インデックス部を設けることにより、各属性カテゴリで使用する基底を共通の基底(基底B及び基底B)とすることができる。その結果、公開パラメータには、基底B及び基底Bだけを含めておけばよく、後に属性カテゴリを追加する場合に、公開パラメータを再発行する必要がない。
 なお、インデックス部については、内積した結果が0となればよい。そのため、上記説明では、基底ベクトルb ,b と基底ベクトルb,bとの2次元をインデックス部としが、これに限らず、3次元以上をインデックス部としてもよい。また、インデックス部への値の割り当ても上記説明のものに限らず、他の割り当てであってもよい。
 また、上記説明では、インデックス部を設けることにより、各属性カテゴリで使用する基底を共通の基底(基底B及び基底B)とした。しかし、後に属性カテゴリを追加する場合に、公開パラメータを再発行してもよい場合、各属性カテゴリで使用する基底を別の基底にすれば、インデックス部を設ける必要はない。
 この場合、上述した内積述語暗号方式のGobアルゴリズム、Setupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズムは、数136から数139のようになる。なお、Decアルゴリズムは数135の通りであり、変更はない。
Figure JPOXMLDOC01-appb-M000045
Figure JPOXMLDOC01-appb-M000046
Figure JPOXMLDOC01-appb-M000047
Figure JPOXMLDOC01-appb-M000048
 つまり、インデックスt毎に異なる基底B及び基底B を用いる。
 また、上記説明では、u,w,z,u,w,zはそれぞれ0以上の整数であるとした。例えば、u=1,w=1,z=1,u=9,w=2,z=2としてもよい。
 実施の形態2.
 実施の形態1では、集合Iv→が集合Ix→の部分集合であり、かつ、集合Iv→に含まれるインデックスtについて、vの合計が0となるなら、暗号文ctを復号鍵skで復号することができる内積述語暗号方式(Type1)について説明した。
 実施の形態2では、集合Ix→が集合Iv→の部分集合であり、かつ、集合Ix→に含まれるインデックスtについて、vの合計が0となるなら、暗号文ctを復号鍵skで復号することができる内積述語暗号方式(Type2)について説明する。
 実施の形態2では、実施の形態1と異なる部分を中心に説明する。
 実施の形態2に係る暗号処理システム10の構成は、図1に示す実施の形態1に係る暗号処理システム10の構成と同じである。また、実施の形態2に係る鍵生成装置100、暗号化装置200、復号装置300の構成は、図2から図4に示す実施の形態1に係る鍵生成装置100、暗号化装置200、復号装置300の構成と同じである。
 図9は、実施の形態2に係るKeyGenアルゴリズムの処理を示すフローチャートである。図10は、実施の形態2に係るEncアルゴリズムの処理を示すフローチャートである。図11は、実施の形態2に係るDecアルゴリズムの処理を示すフローチャートである。
 実施の形態2に係るSetupアルゴリズムは、実施の形態1に係るSetupアルゴリズムと同じである。
 図9に基づき、KeyGenアルゴリズムについて説明する。
 S501の処理は、図6に示すS201の処理と同じである。
 (S502:乱数生成ステップ)
 復号鍵生成部140は、処理装置により、乱数を数140に示すように生成する。
Figure JPOXMLDOC01-appb-M000049
 (S503:鍵要素生成ステップ)
 復号鍵生成部140は、処理装置により、復号鍵skの要素k を数141に示すように生成する。
Figure JPOXMLDOC01-appb-M000050
 また、復号鍵生成部140は、処理装置により、集合Iv→に含まれるインデックスtについて、復号鍵skの要素k を数142に示すように生成する。
Figure JPOXMLDOC01-appb-M000051
 (S504:鍵配布ステップ)
 鍵配布部150は、S503で生成されたk ,k とを要素とする復号鍵skを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skは、他の方法により復号装置300へ配布されてもよい。
 つまり、S501からS503において、鍵生成装置100は、数143に示すKeyGenアルゴリズムを実行して、復号鍵skを生成する。そして、S504で、鍵生成装置100は、生成した復号鍵skを復号装置300へ配布する。
Figure JPOXMLDOC01-appb-M000052
 図10に基づき、Encアルゴリズムの処理について説明する。
 S601からS602の処理は、図7に示すS301からS302の処理と同じである。
 (S603:秘密情報生成ステップ)
 暗号文生成部230は、処理装置により、秘密情報f,fを数144に示すように生成する。
Figure JPOXMLDOC01-appb-M000053
 (S604:乱数生成ステップ)
 暗号文生成部230は、処理装置により、乱数を数145に示すように生成する。
Figure JPOXMLDOC01-appb-M000054
 (S605:暗号要素生成ステップ)
 暗号文生成部230は、処理装置により、暗号文ctの要素cを数146に示すように生成する。
Figure JPOXMLDOC01-appb-M000055
 また、暗号文生成部230は、処理装置により、集合Ix→に含まれるインデックスtについて、暗号文ctの要素cを数147に示すように生成する。
Figure JPOXMLDOC01-appb-M000056
 また、暗号要素生成部232は、処理装置により、暗号文ctの要素cを数148に示すように生成する。
Figure JPOXMLDOC01-appb-M000057
 (S606:データ送信ステップ)
 データ送信部240は、S605で生成されたc,c,cを要素とする暗号文ctを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctは、他の方法により復号装置300へ送信されてもよい。
 つまり、S601からS605において、暗号化装置200は、数149に示すEncアルゴリズムを実行して、暗号文ctを生成する。そして、S606で、暗号化装置200は生成した暗号文ctを復号装置300へ送信する。
Figure JPOXMLDOC01-appb-M000058
 図11に基づき、Decアルゴリズムの処理について説明する。
 S701からS702の処理は、図8に示すS401からS402の処理と同じである。また、S704の処理は、図8に示すS404の処理と同じである。
 (S703:ペアリング演算ステップ)
 ペアリング演算部340は、処理装置により、数150を計算して、セッション鍵K=g ζを生成する。
Figure JPOXMLDOC01-appb-M000059
 なお、もし、数151であるなら、数152に示すように、数150を計算することにより鍵K=g ζが得られる。
Figure JPOXMLDOC01-appb-M000060
Figure JPOXMLDOC01-appb-M000061
 つまり、集合Ix→が集合Iv→の部分集合であり、かつ、集合Ix→に含まれるインデックスtについて、vの合計が0となるなら、数150を計算することにより鍵K=g ζが得られる。
 つまり、S701からS704において、復号装置300は、数153に示すDecアルゴリズムを実行して、メッセージm’(=m)を生成する。
Figure JPOXMLDOC01-appb-M000062
 以上のように、実施の形態2に係る内積述語暗号方式では、属性ベクトルx及び述語ベクトルvの次元が同じでなくても、集合Ix→が集合Iv→の部分集合であり、かつ、集合Ix→に含まれるインデックスtについて、vの合計が0となるなら、暗号文ctを復号鍵skで復号することができる。
 また、上記説明では、インデックス部を設けることにより、各属性カテゴリで使用する基底を共通の基底(基底B及び基底B)とした。しかし、後に属性カテゴリを追加する場合に、公開パラメータを再発行してもよい場合、各属性カテゴリで使用する基底を別の基底にすれば、インデックス部を設ける必要はない。
 この場合、上述した内積述語暗号方式のKeyGenアルゴリズム、Encアルゴリズムは、数154から数155のようになる。なお、Gobアルゴリズムは数136と同じであり、Setupアルゴリズムは数137と同じであり、Decアルゴリズムは数153の通りであり、変更はない。
Figure JPOXMLDOC01-appb-M000063
Figure JPOXMLDOC01-appb-M000064
 つまり、インデックスt毎に異なる基底B及び基底B を用いる。
 実施の形態3.
 実施の形態1では、集合Iv→が集合Ix→の部分集合であり、かつ、集合Iv→に含まれるインデックスtについて、vの合計が0となるなら、暗号文ctを復号鍵skで復号することができる内積述語暗号方式(Type1)について説明した。
 実施の形態2では、集合Ix→が集合Iv→の部分集合であり、かつ、集合Ix→に含まれるインデックスtについて、vの合計が0となるなら、暗号文ctを復号鍵skで復号することができる内積述語暗号方式(Type2)について説明した。
 実施の形態3では、集合Iv→が集合Ix→と等しく、かつ、集合Iv→(又は集合Ix→)に含まれるインデックスtについて、vの合計が0となるなら、暗号文ctを復号鍵skで復号することができる内積述語暗号方式(Type0)について説明する。
 なお、集合Iv→が集合Ix→と等しいとは、集合Iv→が集合Ix→の部分集合であり、かつ、集合Ix→が集合Iv→の部分集合であることを意味する。したがって、内積述語暗号方式(Type0)は、実施の形態1で説明した内積述語暗号方式(Type1)と、実施の形態2で説明した内積述語暗号方式(Type2)とを組み合わせた方式ということができる。
 実施の形態3では、実施の形態1,2と異なる部分を中心に説明する。
 実施の形態3に係る暗号処理システム10の構成は、図1に示す実施の形態1に係る暗号処理システム10の構成と同じである。また、実施の形態3に係る鍵生成装置100、暗号化装置200、復号装置300の構成は、図2から図4に示す実施の形態1に係る鍵生成装置100、暗号化装置200、復号装置300の構成と同じである。
 図12は、実施の形態3に係るSetupアルゴリズムの処理を示すフローチャートである。図13は、実施の形態3に係るKeyGenアルゴリズムの処理を示すフローチャートである。図14は、実施の形態3に係るEncアルゴリズムの処理を示すフローチャートである。図15は、実施の形態3に係るDecアルゴリズムの処理を示すフローチャートである。
 図12に基づき、Setupアルゴリズムについて説明する。
 S801の処理は、図5に示すS101の処理と同じである。但し、N=2+u+1+w+z、N=5+u+w+zである点が異なる。
 つまり、S801で、マスター鍵生成部110は、数156に示すアルゴリズムGobを実行して、paramと、基底B及び基底B と、基底B(基底B)及び基底B (基底B)とを生成する。
Figure JPOXMLDOC01-appb-M000065
 (S802:公開パラメータ生成ステップ)
 マスター鍵生成部110は、処理装置により、S801で生成した基底Bの部分基底B^と、基底Bの部分基底B^とを数157に示すように生成する。
Figure JPOXMLDOC01-appb-M000066
 マスター鍵生成部110は、生成した部分基底B^及び部分基底B^と、S801で入力されたセキュリティパラメータλ(1λ)と、S801で生成したparamとを合わせて、公開パラメータpkとする。
 (S803:マスター鍵生成ステップ)
 マスター鍵生成部110は、処理装置により、S801で生成した基底B の部分基底B^ と、基底Bの部分基底B^とを数158に示すように生成する。
Figure JPOXMLDOC01-appb-M000067
 マスター鍵生成部110は、生成した部分基底B^ と部分基底B^とをマスター鍵skとする。
 S804の処理は、図5に示すS104の処理と同じである。
 つまり、S801からS803において、鍵生成装置100は、数159に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、S804で、鍵生成装置100は、生成した公開パラメータpkとマスター鍵skとを記憶装置に記憶する。
 なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
Figure JPOXMLDOC01-appb-M000068
 図13に基づき、KeyGenアルゴリズムについて説明する。
 (S901:情報入力ステップ)
 情報入力部130は、入力装置により、述語ベクトルv:=(v,...,v)を入力する。述語情報vとしては、例えば、復号鍵skの使用者の属性情報が設定されている。
 (S902:秘密情報生成ステップ)
 復号鍵生成部140は、処理装置により、秘密情報s,sを数160に示すように生成する。
Figure JPOXMLDOC01-appb-M000069
 (S903:乱数生成ステップ)
 復号鍵生成部140は、処理装置により、乱数を数161に示すように生成する。
Figure JPOXMLDOC01-appb-M000070
 (S904:鍵要素生成ステップ)
 復号鍵生成部140は、処理装置により、復号鍵skの要素k を数162に示すように生成する。
Figure JPOXMLDOC01-appb-M000071
 また、復号鍵生成部140は、処理装置により、t=1,...,nの各インデックスtについて、復号鍵skの要素k を数163に示すように生成する。
Figure JPOXMLDOC01-appb-M000072
 (S905:鍵配布ステップ)
 鍵配布部150は、S904で生成されたk ,k とを要素とする復号鍵skを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skは、他の方法により復号装置300へ配布されてもよい。
 つまり、S901からS904において、鍵生成装置100は、数164に示すKeyGenアルゴリズムを実行して、復号鍵skを生成する。そして、S905で、鍵生成装置100は、生成した復号鍵skを復号装置300へ配布する。
Figure JPOXMLDOC01-appb-M000073
 図14に基づき、Encアルゴリズムの処理について説明する。
 S1001の処理は、図7に示すS301の処理と同じである。
 (S1002:情報入力ステップ)
 情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。また、情報入力部220は、入力装置により、属性ベクトルx:=(x,...,xn’)を入力する。属性ベクトルxは、例えば、復号可能なユーザの属性情報が設定されている。
 (S1003:秘密情報生成ステップ)
 暗号文生成部230は、処理装置により、秘密情報f,fを数165に示すように生成する。
Figure JPOXMLDOC01-appb-M000074
 (S1004:乱数生成ステップ)
 暗号文生成部230は、処理装置により、乱数を数166に示すように生成する。
Figure JPOXMLDOC01-appb-M000075
 (S1005:暗号要素生成ステップ)
 暗号文生成部230は、処理装置により、暗号文ctの要素cを数167に示すように生成する。
Figure JPOXMLDOC01-appb-M000076
 また、暗号文生成部230は、処理装置により、t=1,...,n’の各インデックスtについて、暗号文ctの要素cを数168に示すように生成する。
Figure JPOXMLDOC01-appb-M000077
 また、暗号要素生成部232は、処理装置により、暗号文ctの要素cを数169に示すように生成する。
Figure JPOXMLDOC01-appb-M000078
 (S1006:データ送信ステップ)
 データ送信部240は、S1005で生成されたc,c,cを要素とする暗号文ctを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctは、他の方法により復号装置300へ送信されてもよい。
 つまり、S1001からS1005において、暗号化装置200は、数170に示すEncアルゴリズムを実行して、暗号文ctを生成する。そして、S1006で、暗号化装置200は生成した暗号文ctを復号装置300へ送信する。
Figure JPOXMLDOC01-appb-M000079
 図15に基づき、Decアルゴリズムの処理について説明する。
 S1101からS1102の処理は、図8に示すS401からS402の処理と同じである。
 (S1103:ペアリング演算ステップ)
 ペアリング演算部340は、処理装置により、数171を計算して、セッション鍵K=g ζを生成する。
Figure JPOXMLDOC01-appb-M000080
 なお、もし、数172であるなら、数173に示すように、数171を計算することにより鍵K=g ζが得られる。
Figure JPOXMLDOC01-appb-M000081
Figure JPOXMLDOC01-appb-M000082
 つまり、集合Ix→が集合Iv→と等しく、かつ、集合Iv→(又は集合Ix→)に含まれるインデックスtについて、vの合計が0となるなら、数170を計算することにより鍵K=g ζが得られる。
 S1104の処理は、図8に示すS404の処理と同じである。
 つまり、S1101からS1104において、復号装置300は、数174に示すDecアルゴリズムを実行して、メッセージm’(=m)を生成する。
Figure JPOXMLDOC01-appb-M000083
 以上のように、実施の形態3に係る内積述語暗号方式では、集合Ix→が集合Iv→と等しく、かつ、集合Iv→(集合Ix→)に含まれるインデックスtについて、vの合計が0となるなら、暗号文ctを復号鍵skで復号することができる。
 また、上記説明では、インデックス部を設けることにより、各属性カテゴリで使用する基底を共通の基底(基底B及び基底B)とした。しかし、後に属性カテゴリを追加する場合に、公開パラメータを再発行してもよい場合、各属性カテゴリで使用する基底を別の基底にすれば、インデックス部を設ける必要はない。
 この場合、上述した内積述語暗号方式のGobアルゴリズム、Setupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズムは、数175から数178のようになる。なお、Decアルゴリズムは数174の通りであり、変更はない。
Figure JPOXMLDOC01-appb-M000084
Figure JPOXMLDOC01-appb-M000085
Figure JPOXMLDOC01-appb-M000086
Figure JPOXMLDOC01-appb-M000087
 つまり、インデックスt毎に異なる基底B及び基底B を用いる。
 また、上記説明では、u,w,z,u,w,zはそれぞれ0以上の整数であるとした。例えば、u=2,w=2,z=2,u=11,w=3,z=3としてもよい。
 実施の形態4.
 上記実施の形態で説明した内積述語暗号方式を下部構造として有する関数型暗号方式及び属性ベース署名方式について説明する。
 非特許文献31には関数型暗号方式についての記載がある。
 非特許文献31に記載された関数型暗号方式では、インデックスt毎に、属性ベクトルxと述語ベクトルvとの内積を計算する。そして、与えられた全てのインデックスtについて、属性ベクトルxと述語ベクトルvとの内積が0で暗号文が復号鍵により復号できる。
 各インデックスtにおける属性ベクトルxと述語ベクトルvとの内積の計算に、上記実施の形態で説明した内積述語暗号方式を適用する。これにより、上記実施の形態で説明した内積述語暗号方式を下部構造として有する関数型暗号方式を構成する。
 非特許文献31に記載された関数型暗号方式では、各インデックスtにおいて、属性ベクトルxと述語ベクトルvと次元は同じでなければならなかった。しかし、上記実施の形態で説明した内積述語暗号方式を下部構造として有する関数型暗号方式とすることにより、各インデックスtにおいて、属性ベクトルxと述語ベクトルvと次元が同じである必要はなくなる。
 以下の説明では、一例として、非特許文献31に記載されたKey-Policy関数型暗号方式(KP-FE方式)に、実施の形態1で説明した内積述語暗号方式を適用した場合を説明する。
 ここでは、KP-FE方式のうち、実施の形態1で説明した内積述語暗号方式を適用することによって変更が発生した箇所を中心に説明する。
 なお、非特許文献31に記載された関数型暗号方式では、変数ρ(i)を用いて、インデックスt毎に、属性ベクトルxと述語ベクトルvとの内積が0になった場合に復号可能とするか、属性ベクトルxと述語ベクトルvとの内積が0以外になった場合に復号可能とするかを使い分けている。しかし、ここでは、説明の簡単のため、与えられた全てのインデックスtについて、属性ベクトルxと述語ベクトルvとの内積が0になった場合に復号可能とする場合を説明する。
 また、実施の形態1では、インデックス部を設けることにより、各属性カテゴリで使用する基底を共通の基底(基底B及び基底B)とした。しかし、ここでは、説明の簡単のため、インデックス部を設けず、各属性カテゴリで使用する基底を別の基底とする場合を説明する。
 また、非特許文献31と、実施の形態1とでインデックスtと、秘密情報sとの文字が重複している。そこで、ここでは、非特許文献31におけるインデックスtをインデックスτとし、非特許文献31における秘密情報sを秘密情報σとする。
 KP-FE方式は、Setupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズム、Decアルゴリズムの4つのアルゴリズムを備える。
 Setupアルゴリズムについて説明する。
 マスター鍵生成部110は、処理装置により、インデックスτ,t毎に基底Bτ,t及び基底B τ,tを生成する。すなわち、マスター鍵生成部110は、インデックスt毎に基底B及び基底B を生成するのではなく、インデックスτ,t毎に基底Bτ,t及び基底B τ,tを生成する。
 つまり、Setupアルゴリズムは、数179に示す通りである。なお、Setupアルゴリズムで用いられるアルゴリズムGobは、数180に示す通りである。
Figure JPOXMLDOC01-appb-M000088
Figure JPOXMLDOC01-appb-M000089
 KeyGenアルゴリズムについて説明する。
 復号鍵生成部140は、処理装置により、秘密情報σと、秘密情報sとを数181に示すように生成する。
Figure JPOXMLDOC01-appb-M000090
 そして、復号鍵生成部140は、処理装置により、復号鍵skの要素k を数182に示すように生成し、i=1,...,L(Lは1以上の整数)及び集合Ivi→に含まれるインデックスtについて、復号鍵skの要素k i,tを数183に示すように生成する。
Figure JPOXMLDOC01-appb-M000091
Figure JPOXMLDOC01-appb-M000092
 つまり、KeyGenアルゴリズムは、数184に示す通りである。
Figure JPOXMLDOC01-appb-M000093
 Encアルゴリズムについて説明する。
 暗号文生成部230は、処理装置により、1つ以上のインデックスτ及び集合Ixi→に含まれるインデックスtについて、暗号文ctの要素cτ,tを数185に示すように生成する。
Figure JPOXMLDOC01-appb-M000094
 つまり、Encアルゴリズムは、数186に示す通りである。
Figure JPOXMLDOC01-appb-M000095
 Decアルゴリズムについて説明する。
 ペアリング演算部340は、処理装置により、数187を計算して、セッション鍵K=g ζを生成して、メッセージm’=cd+1/Kを計算する。
Figure JPOXMLDOC01-appb-M000096
 つまり、Decアルゴリズムは、数188に示す通りである。
Figure JPOXMLDOC01-appb-M000097
 以上のように、上記実施の形態で説明した内積述語暗号方式を下部構造として有する関数型暗号方式を実現することができる。
 上記説明では、後に属性カテゴリを追加する場合に、公開パラメータを再発行する必要がある関数型暗号方式を説明した。しかし、実施の形態1-3で説明したように、インデックス部を設けることにより、公開パラメータを再発行することなく、属性カテゴリを追加できるようにすることも可能である。
 なお、上述した関数型暗号方式では、基底Bτ,t及び基底B τ,tを用いた。そこで、インデックスτ及びインデックスtのそれぞれについて、インデックス部を設ける必要がある。
 この場合、上述した内積述語暗号方式のGobアルゴリズム、Setupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズムは、数189から数192のようになる。なお、Decアルゴリズムは数188の通りであり、変更はない。
Figure JPOXMLDOC01-appb-M000098
Figure JPOXMLDOC01-appb-M000099
Figure JPOXMLDOC01-appb-M000100
Figure JPOXMLDOC01-appb-M000101
 なお、上記説明では、一例として、非特許文献31に記載されたKP-FE方式に、実施の形態1で説明した内積述語暗号方式を適用した場合を説明した。
 しかし、同様の方法により、非特許文献31に記載されたCiphertext-Policy関数型暗号方式(CP-FE方式)及びUnified-Policy関数型暗号方式(UP-FE方式)に、実施の形態1で説明した内積述語暗号方式を適用することもできる。また、非特許文献31に記載された各関数型暗号方式に、実施の形態2,3で説明した内積述語暗号方式を適用することもできる。もちろん、非特許文献31に記載された関数型暗号方式に限らず、他の関数型暗号方式に上記実施の形態で説明した内積述語暗号方式を適用することもできる。また、同様の方法により、非特許文献32や他の文献に記載された属性ベース署名方式に、上記実施の形態で説明した内積述語暗号方式を適用することもできる。
 いずれの場合であっても、各インデックスtにおける属性ベクトルxと述語ベクトルvとの内積の計算に、上記実施の形態で説明した内積述語暗号方式を適用すればよい。
 実施の形態5.
 以上の実施の形態では、双対ベクトル空間において暗号プリミティブの処理を実現する方法について説明した。実施の形態5では、双対加群において暗号プリミティブの処理を実現する方法について説明する。
 つまり、以上の実施の形態では、素数位数qの巡回群において暗号プリミティブの処理を実現した。しかし、合成数Mを用いて数193のように環Rを表した場合、環Rを係数とする加群においても、上記実施の形態で説明した暗号プリミティブの処理を適用することができる。
Figure JPOXMLDOC01-appb-M000102
 以上の実施の形態で説明したアルゴリズムにおけるFをRに変更すれば、双対加群における暗号プリミティブの処理を実現することができる。
 次に、実施の形態における暗号処理システム10(鍵生成装置100、暗号化装置200、復号装置300)のハードウェア構成について説明する。
 図16は、鍵生成装置100、暗号化装置200、復号装置300のハードウェア構成の一例を示す図である。
 図16に示すように、鍵生成装置100、暗号化装置200、復号装置300は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920(固定ディスク装置)の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。
 ROM913、磁気ディスク装置920は、不揮発性メモリの一例である。RAM914は、揮発性メモリの一例である。ROM913とRAM914と磁気ディスク装置920とは、記憶装置(メモリ)の一例である。また、キーボード902、通信ボード915は、入力装置の一例である。また、通信ボード915は、通信装置の一例である。さらに、LCD901は、表示装置の一例である。
 磁気ディスク装置920又はROM913などには、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
 プログラム群923には、上記の説明においてマスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵配布部150、公開パラメータ取得部210、情報入力部220、暗号文生成部230、データ送信部240、復号鍵取得部310、復号鍵記憶部320、暗号文取得部330、ペアリング演算部340、メッセージ計算部350等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
 ファイル群924には、上記の説明において公開パラメータpk、マスター秘密鍵sk、復号鍵sk、暗号文ct、述語ベクトルv、属性ベクトルx、メッセージm等の情報やデータや信号値や変数値やパラメータが、ファイルやデータベースの各項目として記憶される。ファイルやデータベースは、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
 また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、その他光ディスク等の記録媒体やICチップに記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
 また、上記の説明において「~部」として説明するものは、「~回路」、「~装置」、「~機器」、「~手段」、「~機能」であってもよく、また、「~ステップ」、「~手順」、「~処理」であってもよい。また、「~装置」として説明するものは、「~回路」、「~機器」、「~手段」、「~機能」であってもよく、また、「~ステップ」、「~手順」、「~処理」であってもよい。さらに、「~処理」として説明するものは「~ステップ」であっても構わない。すなわち、「~部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「~部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「~部」の手順や方法をコンピュータ等に実行させるものである。
 100 鍵生成装置、110 マスター鍵生成部、120 マスター鍵記憶部、130 情報入力部、140 復号鍵生成部、150 鍵配布部、200 暗号化装置、210 公開パラメータ取得部、220 情報入力部、230 暗号文生成部、240 データ送信部、300 復号装置、310 復号鍵取得部、320 復号鍵記憶部、330 暗号文取得部、340 ペアリング演算部、350 メッセージ計算部。

Claims (12)

  1.  暗号化装置と復号装置とを備える暗号システムであり、
     前記暗号化装置は、
     基底ベクトルb0,rの係数として値ωが設定された要素cと、集合Ix→に含まれる各インデックスtについて、基底ベクトルbの係数として属性情報xが設定され、基底ベクトルbの係数として前記値ωが設定された要素cとを有する暗号文を生成する暗号文生成部
    を備え、
     前記復号装置は、
     集合Iv→に含まれる各インデックスtについての値sの合計が値sである値s及び値sを用いて生成された要素kと要素kとであって、前記基底ベクトルb0,rに対応する基底ベクトルb 0,rの係数として値-sが設定された要素kと、集合Iv→に含まれる各インデックスtについて、前記基底ベクトルbに対応する基底ベクトルb の係数として述語情報vが設定され、前記基底ベクトルbに対応する基底ベクトルb の係数として値sが設定された要素kとを有する復号鍵を記憶する復号鍵記憶部と、
     前記暗号文生成部が生成した暗号文を、前記復号鍵記憶部が記憶した復号鍵により復号する復号部であって、前記要素c及び前記要素kと、前記集合Iv→に含まれる各インデックスtについての要素c及び要素kとに対して、対応する基底ベクトル毎のペアリング演算の積を計算して、前記暗号文を復号する復号部と
    を備えることを特徴とする暗号システム。
  2.  前記暗号文生成部は、さらに、基底ベクトルbindexの係数として、インデックスtに予め割り当てられた情報Jが設定された要素cを生成し、
     前記復号鍵記憶部は、さらに、前記基底ベクトルbindexに対応する基底ベクトルb indexの係数として、インデックスtに予め割り当てられた前記情報Jとの内積が0になる情報J’が設定された要素kを生成する
    ことを特徴とする請求項1に記載の暗号システム。
  3.  前記暗号文生成部は、数1に示す要素c及び要素cを生成し、
     前記復号鍵記憶部は、数2に示す要素k及び要素kを記憶し、
     前記復号部は、数3に示す計算をする
    ことを特徴とする請求項2に記載の暗号システム。
    Figure JPOXMLDOC01-appb-M000001
    Figure JPOXMLDOC01-appb-M000002
    Figure JPOXMLDOC01-appb-M000003
  4.  送信装置と受信装置とを備え、インデックスτ毎に、集合Iτ,x→に含まれる各インデックスtについての属性情報xτ,tを要素として持つ属性ベクトルxτ と、集合Iτ,v→に含まれる各インデックスtについての属性情報vτ,tを要素として持つ述語ベクトルvτ との内積が0か否かを判定することにより、暗号プリミティブの処理を実現する暗号システムであり、
     前記送信装置は、
     インデックスτ毎に、集合Iτ,x→に含まれる各インデックスtについて、基底ベクトルbの係数として属性情報xτ,tが設定され、基底ベクトルbの係数として値ω
    τが設定された要素cτ,tを有する送信情報を生成する送信情報生成部
    を備え、
     前記受信装置は、
     インデックスτ毎に、集合Iτ,v→に含まれる各インデックスtについて、前記基底ベクトルbに対応する基底ベクトルb の係数として属性情報vτ,tが設定され、前記基底ベクトルbに対応する基底ベクトルb の係数として値sτ,tが設定された要素kτ,tを有する受信情報を記憶する受信情報記憶部と、
     各インデックスτについて、前記集合Iτ,v→に含まれる各インデックスtについての要素cτ,t及び要素kτ,tに対して、対応する基底ベクトル毎のペアリング演算の積を計算するペアリング演算部と
    を備えることを特徴とする暗号システム。
  5.  暗号化装置と復号装置とを備える暗号システムであり、
     前記暗号化装置は、
     集合Ix→に含まれる各インデックスtについての値fの合計が値fである値f及び値fを用いて生成された要素cと要素cとであって、基底ベクトルb0,rの係数として値-fが設定された要素cと、集合Ix→に含まれる各インデックスtについて、基底ベクトルbの係数として属性情報xが設定され、基底ベクトルbの係数として値fが設定された要素cとを有する暗号文を生成する暗号文生成部
    を備え、
     前記復号装置は、
     前記基底ベクトルb0,rに対応する基底ベクトルb 0,rの係数として値δが設定された要素kと、集合Iv→に含まれる各インデックスtについて、前記基底ベクトルbに対応する基底ベクトルb の係数として述語情報vが設定され、前記基底ベクトルbに対応する基底ベクトルb の係数として前記値δが設定された要素kとを有する復号鍵を記憶する復号鍵記憶部と、
     前記暗号文生成部が生成した暗号文を、前記復号鍵記憶部が記憶した復号鍵により復号する復号部であって、前記要素c及び前記要素kと、前記集合Ix→に含まれる各インデックスtについての要素c及び要素kとに対して、対応する基底ベクトル毎のペアリング演算の積を計算して、前記暗号文を復号する復号部と
    を備えることを特徴とする暗号システム。
  6.  前記暗号文生成部は、さらに、基底ベクトルbindexの係数として、インデックスtに予め割り当てられた情報Jが設定された要素cを生成し、
     前記復号鍵記憶部は、さらに、前記基底ベクトルbindexに対応する基底ベクトルb indexの係数として、インデックスtに予め割り当てられた前記情報Jとの内積が0になる情報J’が設定された要素kを生成する
    ことを特徴とする請求項5に記載の暗号システム。
  7.  前記暗号文生成部は、数4に示す要素c及び要素cを生成し、
     前記復号鍵記憶部は、数5に示す要素k及び要素kを記憶し、
     前記復号部は、数6に示す計算をする
    ことを特徴とする請求項6に記載の暗号システム。
    Figure JPOXMLDOC01-appb-M000004
    Figure JPOXMLDOC01-appb-M000005
    Figure JPOXMLDOC01-appb-M000006
  8.  送信装置と受信装置とを備え、インデックスτ毎に、集合Iτ,x→に含まれる各インデックスtについての属性情報xτ,tを要素として持つ属性ベクトルxτ と、集合Iτ,v→に含まれる各インデックスtについての属性情報vτ,tを要素として持つ述語ベクトルvτ との内積が0か否かを判定することにより、暗号プリミティブの処理を実現する暗号システムであり、
     前記送信装置は、
     インデックスτ毎に、集合Iτ,x→に含まれる各インデックスtについて、基底ベクトルbの係数として属性情報xτ,tが設定され、基底ベクトルbの係数として値f
    τ,tが設定された要素cτ,tを有する送信情報を生成する送信情報生成部
    を備え、
     前記受信装置は、
     インデックスτ毎に、集合Iτ,v→に含まれる各インデックスtについて、前記基底ベクトルbに対応する基底ベクトルb の係数として属性情報vτ,tが設定され、前記基底ベクトルbに対応する基底ベクトルb の係数として値δ τが設定された要素kτ,tを有する受信情報を記憶する受信情報記憶部と、
     各インデックスτについて、前記集合Iτ,x→に含まれる各インデックスtについての要素cτ,t及び要素kτ,tに対して、対応する基底ベクトル毎のペアリング演算の積を計算するペアリング演算部と
    を備えることを特徴とする暗号システム。
  9.  暗号化装置と復号装置とを備える暗号システムであり、
     前記暗号化装置は、
     t=1,...,n(nは1以上の整数)の各インデックスtについての値fの合計が値fである値f及び値fを用いて生成された要素cと要素cとであって、基底ベクトルb0,rの係数として値ωが設定され、基底ベクトルb0,r’の係数として値-fが設定された要素cと、集合Ix→に含まれる各インデックスtについて、基底ベクトルbの係数として属性情報xが設定され、基底ベクトルbの係数として前記値ωが設定され、基底ベクトルbq’の係数として値fが設定された要素cとを有する暗号文を生成する暗号文生成部
    を備え、
     前記復号装置は、
     前記各インデックスtについての値sの合計が値sである値s及び値sを用いて生成された要素kと要素kとであって、前記基底ベクトルb0,rに対応する基底ベクトルb 0,rの係数として値-sが設定され、基底ベクトルb0,r’に対応する基底ベクトルb 0,r’の係数として値δが設定された要素kと、集合Iv→に含まれる各インデックスtについて、前記基底ベクトルbに対応する基底ベクトルb の係数として述語情報vが設定され、前記基底ベクトルbに対応する基底ベクトルb の係数として値sが設定され、前記基底ベクトルbq’に対応する基底ベクトルb q’の係数として前記値δが設定された要素kとを有する復号鍵を記憶する復号鍵記憶部と、
     前記暗号文生成部が生成した暗号文を、前記復号鍵記憶部が記憶した復号鍵により復号する復号部であって、前記要素c及び前記要素kと、前記各インデックスtについての要素c及び要素kとに対して、対応する基底ベクトル毎のペアリング演算の積を計算して、前記暗号文を復号する復号部と
    を備えることを特徴とする暗号システム。
  10.  前記暗号文生成部は、さらに、基底ベクトルbindexの係数として、インデックスtに予め割り当てられた情報Jが設定された要素cを生成し、
     前記復号鍵記憶部は、さらに、前記基底ベクトルbindexに対応する基底ベクトルb indexの係数として、インデックスtに予め割り当てられた前記情報Jとの内積が0になる情報J’が設定された要素kを生成する
    ことを特徴とする請求項9に記載の暗号システム。
  11.  前記暗号文生成部は、数7に示す要素c及び要素cを生成し、
     前記復号鍵記憶部は、数8に示す要素k及び要素kを記憶し、
     前記復号部は、数9に示す計算をする
    ことを特徴とする請求項10に記載の暗号システム。
    Figure JPOXMLDOC01-appb-M000007
    Figure JPOXMLDOC01-appb-M000008
    Figure JPOXMLDOC01-appb-M000009
  12.  送信装置と受信装置とを備え、インデックスτ毎に、t=1,...,n(nは1以上の整数)の各インデックスtについての属性情報xτ,tを要素として持つ属性ベクトルxτ と、前記各インデックスtについての属性情報vτ,tを要素として持つ述語ベクトルvτ との内積が0か否かを判定することにより、暗号プリミティブの処理を実現する暗号システムであり、
     前記送信装置は、
     インデックスτ毎に、集合Iτ,x→に含まれる各インデックスtについて、基底ベクトルbの係数として属性情報xτ,tが設定され、基底ベクトルbの係数として値ω
    τが設定され、基底ベクトルbq’の係数として値fが設定された要素cτ,tを有する送信情報を生成する送信情報生成部
    を備え、
     前記受信装置は、
     インデックスτ毎に、集合Iτ,v→に含まれる各インデックスtについて、前記基底ベクトルbに対応する基底ベクトルb の係数として属性情報vτ,tが設定され、前記基底ベクトルbに対応する基底ベクトルb の係数として値sτ,tが設定され、前記基底ベクトルbq’に対応する基底ベクトルb q’の係数として値δが設定された要素kτ,tを有する受信情報を記憶する受信情報記憶部と、
     各インデックスτ及び各インデックスtについての要素cτ,t及び要素kτ,tに対して、対応する基底ベクトル毎のペアリング演算の積を計算するペアリング演算部と
    を備えることを特徴とする暗号システム。
PCT/JP2013/069364 2012-10-19 2013-07-17 暗号システム Ceased WO2014061324A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201380050410.0A CN104718566B (zh) 2012-10-19 2013-07-17 密码系统
KR1020157013141A KR101676977B1 (ko) 2012-10-19 2013-07-17 암호 시스템
US14/421,282 US9722783B2 (en) 2012-10-19 2013-07-17 Cryptographic system
EP13846805.3A EP2911137B1 (en) 2012-10-19 2013-07-17 Cryptographic system
ES13846805.3T ES2645072T3 (es) 2012-10-19 2013-07-17 Sistema criptográfico

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012231293A JP5921410B2 (ja) 2012-10-19 2012-10-19 暗号システム
JP2012-231293 2012-10-19

Publications (1)

Publication Number Publication Date
WO2014061324A1 true WO2014061324A1 (ja) 2014-04-24

Family

ID=50487902

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/069364 Ceased WO2014061324A1 (ja) 2012-10-19 2013-07-17 暗号システム

Country Status (7)

Country Link
US (1) US9722783B2 (ja)
EP (1) EP2911137B1 (ja)
JP (1) JP5921410B2 (ja)
KR (1) KR101676977B1 (ja)
CN (1) CN104718566B (ja)
ES (1) ES2645072T3 (ja)
WO (1) WO2014061324A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019239776A1 (ja) * 2018-06-11 2019-12-19 三菱電機株式会社 復号装置、暗号化装置及び暗号システム
WO2020110800A1 (ja) * 2018-11-29 2020-06-04 日本電信電話株式会社 暗号システム、暗号化装置、復号装置、暗号方法、暗号化方法、復号方法及びプログラム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6719339B2 (ja) * 2016-08-30 2020-07-08 三菱電機株式会社 暗号システム、暗号方法及び暗号プログラム
US11139952B2 (en) * 2017-01-18 2021-10-05 Mitsubishi Electric Corporation Homomorphic computation device, encryption system, and computer readable medium
KR101994236B1 (ko) * 2017-04-21 2019-09-30 한국전자통신연구원 프라이버시 보존형 각도 기반 이상치 검출 방법 및 장치
KR102123435B1 (ko) * 2019-08-19 2020-06-16 세종대학교산학협력단 멀티 클라이언트 환경에서 동치 질의를 지원하는 암호화 방법 및 이를 이용한 장치
KR102123440B1 (ko) * 2019-09-02 2020-06-16 세종대학교산학협력단 멀티 클라이언트 환경에서 범위 질의를 지원하는 암호화 방법 및 이를 이용한 장치
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
WO2022054130A1 (ja) * 2020-09-08 2022-03-17 日本電信電話株式会社 暗号システム、方法及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011232475A (ja) * 2010-04-27 2011-11-17 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
JP2012133214A (ja) * 2010-12-22 2012-07-12 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0823331A (ja) * 1994-07-07 1996-01-23 Murata Mach Ltd 暗号化通信方法及び装置
JP3917507B2 (ja) * 2002-01-28 2007-05-23 株式会社東芝 コンテンツ提供側システム、ユーザ側システム、追跡システム、コンテンツ提供方法、暗号化コンテンツ復号方法、不正ユーザ特定方法、暗号化装置、復号装置及びプログラム
US7634085B1 (en) 2005-03-25 2009-12-15 Voltage Security, Inc. Identity-based-encryption system with partial attribute matching
JP2008011092A (ja) * 2006-06-28 2008-01-17 Fuji Xerox Co Ltd 暗号化コンテンツ検索方式
US20090080658A1 (en) 2007-07-13 2009-03-26 Brent Waters Method and apparatus for encrypting data for fine-grained access control
CN101188496B (zh) * 2007-12-10 2010-09-29 中兴通讯股份有限公司 一种短信加密传输方法
CN102369687B (zh) * 2009-04-24 2014-09-17 日本电信电话株式会社 密码系统、密码通信方法、加密装置、密钥生成装置、解密装置、内容服务器装置、程序、存储介质
CN102713995B (zh) * 2010-01-15 2015-06-24 三菱电机株式会社 隐匿检索系统以及密码处理系统
US8634563B2 (en) * 2010-12-17 2014-01-21 Microsoft Corporation Attribute based encryption using lattices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011232475A (ja) * 2010-04-27 2011-11-17 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
JP2012133214A (ja) * 2010-12-22 2012-07-12 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム

Non-Patent Citations (44)

* Cited by examiner, † Cited by third party
Title
ATTRAPADUNG, N.; LIBERT, B.: "PKC 2010", 2010, SPRINGER HEIDELBERG, article "Functional Encryption for Inner Product: Achieving Constant-Size Ciphertexts with Adaptive Security or Support for Negation", pages: 384 - 402
BEIMEL, A.: "PhD Thesis", 1996, ISRAEL INSTITUTE OF TECHNOLOGY, article "Secure schemes for secret sharing and key distribution"
BELLARE, M.; WATERS, B.; YILEK, S.: "TCC 2011", 2011, SPRINGER HEIDELBERG, article "Identity-based encryption secure against selective opening attack", pages: 235 - 252
BETHENCOURT, J.; SAHAI, A.; WATERS, B.: "IEEE Symposium on Security and Privacy", 2007, IEEE PRESS, article "Ciphertext-policy attribute-based encryption", pages: 321 - 334
BONEH, D.; BOYEN, X.; SHACHAM, H.; SHORT GROUP SIGNATURES: "CRYPTO 2004. LNCS", vol. 3152, 2004, SPRINGER, HEIDELBERG, pages: 41 - 55
BONEH, D.; BOYEN, X: "CRYPT02004. LNCS", vol. 3152, 2004, SPRINGER HEIDELBERG, article "Secure identity based encryption without random oracles", pages: 443 - 459
BONEH, D.; BOYEN, X: "EUROCRYPT 2004. LNCS", vol. 3027, 2004, SPRINGER HEIDELBERG, article "Efficient selective-ID secure identity based encryption without random oracles", pages: 223 - 238
BONEH, D.; BOYEN, X; GOH, E.: "EUROCRYPT 2005. LNCS", vol. 3494, 2005, SPRINGER HEIDELBERG, article "Hierarchical identity based encryption with constant size ciphertext", pages: 440 - 456
BONEH, D.; FRANKLIN, M.: "CRYPTO 2001.LNCS", vol. 2139, 2001, SPRINGER HEIDELBERG, article "Identity-based encryption from the Weil pairing", pages: 213 - 229
BONEH, D.; HAMBURG, M.: "ASIACRYPT 2008. LNCS", vol. 5350, 2008, SPRINGER HEIDELBERG, article "Generalized identity based and broadcast encryption scheme", pages: 455 - 470
BONEH, D.; KATZ, J.: "RSA-CT 2005, LNCS", 2005, SPRINGER VERLAG, article "Improved efficiency for CCA-secure cryptosystems built using identity based encryption"
BONEH, D.; WATERS, B.: "TCC2007. LNCS", vol. 4392, 2007, SPRINGER HEIDELBERG, article "Conjunctive, subset, and range queries on encrypted data", pages: 535 - 554
BOYEN, X.; WATERS, B.: "CRYPTO 2006. LNCS", vol. 4117, 2006, SPRINGER HEIDELBERG, article "Anonymous hierarchical identity-based encryption (without random oracles", pages: 290 - 307
CANETTI, R.; HALEVI S.; KATZ J.: "EUROCRYPT 2004,LNCS", 2004, SPRINGER HEIDELBERG, article "Chosen-ciphertext security from identity-based encryption"
CHASE, M.: "TCC, LNCS", 2007, SPRINGER HEIDELBERG, article "Multi-authority attribute based encryption", pages: 515 - 534
CHASE, M.; CHOW, S.: "ACM Conference on Computer and Communications Security", 2009, ACM, article "Improving privacy and security in multi-authority attribute-based encryption", pages: 121 - 130
COCKS, C.: "IMA Int. Conf. LNCS", vol. 2260, 2001, SPRINGER HEIDELBERG, article "An identity based encryption scheme based on quadratic residues", pages: 360 - 363
GENTRY, C.: "EUROCRYPT2006. LNCS", vol. 4004, 2006, SPRINGER HEIDELBERG, article "Practical identity-based encryption without random oracles", pages: 445 - 464
GENTRY, C.; HALEVI, S.: "TCC 2009. LNCS", vol. 5444, 2009, SPRINGER HEIDELBERG, article "Hierarchical identity-based encryption with polynomially many levels", pages: 437 - 456
GENTRY, C.; SILVERBERG, A.: "ASIACRYPT 2002. LNCS", vol. 2501, 2002, SPRINGER HEIDELBERG, article "Hierarchical ID-based cryptography", pages: 548 - 566
GOYAL, V; PANDEY, O.; SAHAI, A.; WATERS, B.: "ACM Conference on Computer and Communication Security 2006", 2006, ACM, article "Attribute-based encryption for fine-grained access control of encrypted data", pages: 89 - 98
H. LIN; Z. CAO; X. LIANG; J. SHAO.: "INDOCRYPT, LNCS", vol. 5365, 2008, SPRINGER HEIDELBERG, article "Secure threshold multi authority attribute based encryption without a central authority", pages: 426 - 436
KATZ, J.; SAHAI, A.; WATERS, B.: "EUROCRYPT 2008. LNCS", vol. 4965, 2008, SPRINGER HEIDELBERG, article "Predicate encryption supporting disjunctions, polynomial equations, and inner products", pages: 146 - 162
LEWKO, A.; OKAMOTO, T.; SAHAI, A.; TAKASHIMA, K.; WATERS, B.: "EUROCRYPT 2010. LNCS", 2010, SPRINGER HEIDELBERG, article "Fully secure functional encryption: Attribute-based encryption and (hierarchical) inner product encryption"
LEWKO, A.B.; WATERS, B.: "EUROCRYPT 2011. LNCS", vol. 6632, 2011, SPRINGER HEIDELBERG, article "Decentralizing Attribute-Based Encryption", pages: 568 - 588
LEWKO, A.B.; WATERS, B.: "EUROCRYPT 2011. LNCS", vol. 6632, 2011, SPRINGER HEIDELBERG, article "Unbounded HIBE and attribute-based encryption", pages: 547 - 567
LEWKO, A.B.; WATERS, B.: "TCC 2010. LNCS", vol. 5978, 2010, SPRINGER HEIDELBERG, article "New techniques for dual system encryption and fully secure HIBE with short ciphertexts", pages: 455 - 479
OKAMOTO, T.; TAKASHIMA, K.: "ASIACRYPT", 2009, SPRINGER HEIDELBERG, article "Hierarchical predicate encryption for inner-products"
OKAMOTO, T.; TAKASHIMA, K.: "CANS 2011, LNCS", vol. 7092, 2011, SPRINGER HEIDELBERG, article "Achieving Short Ciphertexts or Short Secret-Keys for Adaptively Secure General Inner-Product Encryption", pages: 138 - 159
OKAMOTO, T.; TAKASHIMA, K.: "CRYPTO 2010. LNCS", vol. 6223, 2010, SPRINGER HEIDELBERG, article "Fully secure functional encryption with general relations from the decisional linear assumption", pages: 191 - 208
OKAMOTO, T.; TAKASHIMA, K.: "EUROCRYPT 2012, LNCS", vol. 7237, 2012, SPRINGER HEIDELBERG, article "Adaptively Attribute-Hiding (Hierarchical) Inner Product Encryption", pages: 591 - 608
OKAMOTO, T.; TAKASHIMA, K.: "Pairing 2008. LNCS", vol. 5209, 2008, SPRINGER HEIDELBERG, article "Homomorphic encryption and signatures from vector decomposition", pages: 57 - 74
OKAMOTO, T.; TAKASHIMA, K.: "PKC 2011", 2011, SPRINGER HEIDELBERG, article "Efficient attribute-based signatures for non-monotone predicates in the standard model"
OSTROVSKY, R.; SAHAI, A.; WATERS, B.: "ACM Conference on Computer and Communication Security 2007", 2007, ACM, article "Attribute-based encryption with non-monotonic access structures", pages: 195 - 203
PIRRETTI, M.; TRAYNOR, P.; MCDANIEL, P.; WATERS, B.: "ACM Conference on Computer and Communication Security 2006", 2006, ACM, article "Secure attribute-based systems", pages: 99 - 112
S. MUELLER; S. KATZENBEISSER; C. ECKERT.: "On multi-authority ciphertext-policy attribute-based encryption", BULL. KOREAN MATH SOC., vol. 46, no. 4, 2009, pages 803 - 819
SAHAI, A.; WATERS, B.: "EUROCRYPT 2005. LNCS", vol. 3494, 2005, SPRINGER HEIDELBERG, article "Fuzzy identity-based encryption", pages: 457 - 473
See also references of EP2911137A4
SHI, E.; WATERS, B.: "ICALP (2) 2008. LNCS", vol. 5126, 2008, SPRINGER HEIDELBERG, article "Delegating capability in predicate encryption systems", pages: 560 - 578
TATSUAKI OKAMOTO ET AL.: "Fully Secure Unbounded Inner-Product and Attribute-Based Encryption", 28 November 2012 (2012-11-28), XP047011247, Retrieved from the Internet <URL:http://eprint.iacr.org/2012/671> [retrieved on 20130801] *
TATSUAKI OKAMOTO ET AL.: "Kokai Kagi ni yoru Seigen ga naku Zokusei.Jutsugo o Settei Kano na Jubun Anzen Kansugata Ango no Sekkeiho", 2013 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY SCIS2013, 22 January 2013 (2013-01-22), pages 3F3 - 1, XP008176619 *
WATERS, B.: "CRYPTO 2009. LNCS", vol. 5677, 2009, SPRINGER HEIDELBERG, article "Dual system encryption: realizing fully secure IBE and HIBE under simple assumptions", pages: 619 - 636
WATERS, B.: "Eurocrypt 2005, LNCS", vol. 3152, 2005, SPRINGER VERLAG, article "Efficient identity based encryption without random oracles", pages: 443 - 459
WATERS, B.: "PKC 2011, LNCS", vol. 6571, 2011, SPRINGER HEIDELBERG, article "Ciphertext-policy attribute-based encryption: an expressive, efficient, and provably secure realization", pages: 53 - 70

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019239776A1 (ja) * 2018-06-11 2019-12-19 三菱電機株式会社 復号装置、暗号化装置及び暗号システム
JP2019215391A (ja) * 2018-06-11 2019-12-19 三菱電機株式会社 復号装置、暗号化装置及び暗号システム
CN112236974A (zh) * 2018-06-11 2021-01-15 三菱电机株式会社 解密装置、加密装置以及密码系统
CN112236974B (zh) * 2018-06-11 2024-02-23 三菱电机株式会社 解密装置、加密装置以及密码系统
WO2020110800A1 (ja) * 2018-11-29 2020-06-04 日本電信電話株式会社 暗号システム、暗号化装置、復号装置、暗号方法、暗号化方法、復号方法及びプログラム
JP2020086292A (ja) * 2018-11-29 2020-06-04 日本電信電話株式会社 暗号システム、暗号化装置、復号装置、暗号方法、暗号化方法、復号方法及びプログラム
JP7087965B2 (ja) 2018-11-29 2022-06-21 日本電信電話株式会社 暗号システム、暗号化装置、復号装置、暗号化方法、復号方法及びプログラム

Also Published As

Publication number Publication date
CN104718566A (zh) 2015-06-17
EP2911137B1 (en) 2017-09-27
EP2911137A1 (en) 2015-08-26
KR101676977B1 (ko) 2016-11-16
ES2645072T3 (es) 2017-12-04
US20150229472A1 (en) 2015-08-13
US9722783B2 (en) 2017-08-01
CN104718566B (zh) 2017-06-16
EP2911137A4 (en) 2016-09-07
KR20150070383A (ko) 2015-06-24
JP2014085358A (ja) 2014-05-12
JP5921410B2 (ja) 2016-05-24

Similar Documents

Publication Publication Date Title
JP5424974B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
JP5618881B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP5680007B2 (ja) 暗号システム、暗号方法及び暗号プログラム
JP5921410B2 (ja) 暗号システム
JP5693206B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
KR101336349B1 (ko) 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
JP5606344B2 (ja) 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム
KR101310439B1 (ko) 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
JP5606351B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14421282

Country of ref document: US

REEP Request for entry into the european phase

Ref document number: 2013846805

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2013846805

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20157013141

Country of ref document: KR

Kind code of ref document: A