The present disclosure relates to a proxy re-encryption (PRE) technique in functional encryption or attribute-based encryption in which an access range can be set.
PRE is a system in which a decryption authority for a ciphertext is transferred to another person without decrypting the ciphertext.
Non-Patent Literature 1 describes a scheme of PRE in attribute-based encryption (attribute-based PRE, ABPRE). Non-Patent Literature 2 describes a scheme of attribute-based encryption in which a specific user can make any attribute change (adaptable attribute-based encryption, Ad-PRE). Patent Literature 1 describes a PRE scheme in which an increase in the data size of a ciphertext when being re-encrypted is reduced in comparison with Non-Patent Literature 1 and Non-Patent Literature 2.
Patent Literature 1: WO 2015-107620 A1
Non-Patent Literature 1: Song Luo, Jianbin Hu, and Zhong Chen “Ciphertext Policy Attribute-Based Proxy Re-encryption”
Non-Patent Literature 2: Junzuo Lai and Robert H. Deng and Yanjiang Yang and Jian Weng. “Adaptable Ciphertext-Policy Attribute-Based Encryption”
In the PRE scheme described in Non-Patent Literature 1, a problem is that the data size of a ciphertext increases each time re-encryption is performed. Specifically, when re-encryption is performed N times, the data size of a ciphertext increases by a size in proportion to N. Therefore, there is a convenience-related problem that if re-encryption is performed repeatedly, the data size of a ciphertext may exceed a size that is determined by the system.
When data is decrypted once and then re-encrypted, data that has been increased can be deleted. However, decrypting the data once causes the data to return to a plaintext once, so that there is a problem in terms of security.
In the PRE scheme described in Non-Patent Literature 2, an entity with a specific high-level authority can freely change an access range for any ciphertext. However, since the access range for any ciphertext can be changed in any way, there is a problem in terms of security.
In the PRE scheme described in Patent Literature 1, an increase in the data size of a ciphertext when being re-encrypted can be suppressed. However, the data size of a ciphertext increases in proportion to the number of times re-encryption is performed, as in Non-Patent Literature 1 and Non-Patent Literature 2.
An object of the present disclosure is to make it possible to make the data size of a ciphertext generated by re-encryption not dependent on the number of times re-encryption is performed.
A re-encryption device according to the present disclosure includes a ciphertext acquisition unit to acquire a ciphertext ctS out of a session K and the ciphertext ctS, the session key K being generated by an encryption algorithm using as input attribute information S that defines a range to be permitted decryption, the ciphertext ctS being a ciphertext in which the session key K is encrypted;
a key acquisition unit to acquire a re-encryption key rk including a converted decryption key skΓ˜ that is generated by setting a random number r in a decryption key skΓ with which the ciphertext ctS can be decrypted, a session key K′ and a ciphertext ctS′ in which the session key K′ is encrypted that are generated by the encryption algorithm using as input attribute information S′ that defines a range to be permitted decryption, and conversion information that is generated from the random number r;
a re-encrypted ciphertext generation unit to generate a cipher element K˜ by deleting an element related to the random number r by the conversion information from decryption information K{circumflex over ( )} and setting the session key K′, the decryption information K{circumflex over ( )} being obtained by decrypting the ciphertext ctS with the converted decryption key skΓ˜ included in the re-encryption key rk; and
an output unit to output a re-encrypted ciphertext rctS′ including the cipher element K˜ and the ciphertext ctS′.
In the present disclosure, a re-encrypted ciphertext rctS′ includes a cipher element K˜ that is generated from a session key K and a session key K′ and includes a ciphertext ctS′. The session key K′ is generated by decrypting the ciphertext ctS′ with a decryption key skΓ′, and the session key K can be generated from the cipher element K˜ and the session key K′.
Also when a ciphertext ctS′ is handled as a ciphertext ctS to generate a re-encrypted ciphertext rctS′, a similar re-encrypted ciphertext rctS′ is output and a session key K can be generated similarly.
Therefore, it is possible to make the data size of a ciphertext generated by re-encryption not dependent on the number of times re-encryption is performed.
First Embodiment
***Preliminaries***
<Description of Notations>
When A is a random variable or distribution, Formula 101 denotes that y is randomly selected from A according to the distribution of A. That is, y is a random number in Formula 101.
When A is a set, Formula 102 denotes that y is uniformly selected from A. That is, y is a uniform random number in Formula 102.
Formula 103 denotes that y is a set defined by z or y is a set substituted by z.
y:=z [Formula 103]
When a is a constant, Formula 104 denotes that a machine (algorithm) A outputs a on input x.
A(x)→a [Formula 104]
for example,
A(x)→1
Formula 105, namely Fq, denotes a finite field of order q. [Formula 105]
Formula 106 is represented as Formula 107.q\{0} [Formula 106]
qx [Formula 107]
A vector representation denotes a vector over the finite field Fq. That is, this is as indicated in Formula 108.
{right arrow over (x)} denotes
(x1, . . . ,xn)∈qn. [Formula 108]
Note that XT denotes the transpose of a matrix X.
An element in a vector space of Formula 109 is represented as Formula 110. [Formula 109]
x∈ [Formula 110]
In the case of Formula 111, a subspace formed by bi, . . . , bn is represented as Formula 112.
bi∈(i=1, . . . ,n) [Formula 111]
span<b1, . . . ,bn>⊆ [Formula 112]
Formula 113 denotes the inner-product, indicated in Formula 115, of two vectors x→ and v→ indicated in Formula 114.
{right arrow over (x)}·{right arrow over (v)} [Formula 113]
{right arrow over (x)}=(x1, . . . ,xn),
{right arrow over (v)}=(v1, . . . ,vn) [Formula 114]
Σi=1nxivi [Formula 115]
For a basis B and a basis B* indicated in Formula 116, Formula 117 is established.:=(b1, . . . ,bN),
*:=(b1*, . . . ,bN*) [Formula 116]
:=Σi=1Nxibi,
:=Σi=1Nyibi* [Formula 117]
Note that e→j denotes a normal basis vector indicated in Formula 118.
GL(n, Fq) represents a general linear group of dimension n over the finite field Fq.
For a matrix W indicated in Formula 119 and an element g in an n-dimensional vector space V indicated in Formula 120, Formula 121 is defined.
W:=(wi,j)i,j=1, . . . ,n∈Fqn×n [Formula 119]
g:=(G1, . . . ,Gn) [Formula 120]
gW:=(Σi=1nGiwi,1, . . . ,Σi=1nGiwi,n)=(Σi=1nwi,1Gi, . . . ,Σi−1nwi,nGi) [Formula 121]
<Symmetric Bilinear Pairing Groups>
Symmetric bilinear pairing groups (q, G, GT, g, e) are a tuple of a prime q, a cyclic additive group G of order q, a cyclic multiplicative group GT of order q, g≠0∈G, and a polynomial-time computable nondegenerate bilinear map e: G×G→GT. The bilinear map signifies e(sg, tg)=e(g, g)st, and e(g, g)≠1.
In the following description, let Gbpg be an algorithm that takes as input 1λ and outputs values of a parameter paramG:=(q, G, GTr, g, e) of bilinear pairing groups with a security parameter 1λ.
<Dual Pairing Vector Spaces>
Dual pairing vector spaces (q, V, GT, A, e) can be constructed by a direct product of the symmetric bilinear pairing groups (paramG:=(q, G, GT, g, e)). The dual pairing vector spaces (q, V, GT, A, e) are a tuple of a prime q, an N-dimensional vector space V over Fq indicated in Formula 122, a cyclic group GT of order q, a canonical basis A:=(a1, . . . , aN) of the space V, and a paring operation e indicated in Formula 123. Note that ai is as indicated in Formula 124.
A pairing in the space V is defined by Formula 125.
This is nondegenerate. That is, e(sx, ty)=e(x, y)st and if e(x, y)=1 for all y∈V, then x=0. For all i and j, e(ai, aj)=e(g, g)δi,j, where δi,j=1 if i=j, and δi,j=0 if i≠J, and e(g, g)≠1∈GT.
e(x,y):=Πi=1Ne(Gi,Hi)∈T [Formula 125]
where
(G1, . . . ,GN):=x∈,
(H1, . . . ,HN):=y∈.
In the following description, let Gdpvs be an algorithm that takes as input 1λ (λ∈natural numbers), N∈natural numbers, and the values of the parameter paramG: =(q, G, GT, g, e) of bilinear pairing groups, and outputs values of a parameter paramV:=(q, V, GT, A, e) of dual pairing vector spaces of the N-dimensional vector space V with a security parameter λ.
<Attribute-Based Encryption for Non-Monotone Access Structure>
Attribute-based encryption is an encryption scheme in which the functions of pubic key encryption or identifier (ID)-based encryption are extended. ABE is public key encryption in which an attribute set Γ is set in one of a ciphertext and a decryption key and an access structure S for the entirety of attributes is set in the other of the ciphertext and the decryption key, and decryption is possible if and only if the attribute set Γ satisfies the access structure S.
ABE in which an access structure is set in a ciphertext is called ciphertext policy attribute-based encryption (CP-ABE), and ABE in which an access structure is set in a decryption key is called key policy attribute-based encryption (KP-ABE). In a first embodiment, CP-ABE will be described. However, it is easy to convert CP-ABE into KP-ABE. In ABE, a conditional expression using logical sum (OR) and logical conjunction (AND) can be set as an access structure. This allows an access right such as “division A and at least section manager” to be set, so that CP-ABE is considered useful for secure file sharing in a company and so on.
<Span Program and Non-Monotone Access Structure>
Referring to
Let {p1, . . . , pn} be a set of variables. M{circumflex over ( )}:=(M, ρ) is a labeled matrix. The matrix M is an (L rows×r columns) matrix over Fq, and ρ is a label of columns of the matrix M and is related to one of literals {p1, . . . , pn, ¬p1, . . . , ¬pn}. A label ρi (i=1, . . . , L) of each row of M is related to one of the literals. That is, ρ: {1, . . . , L}→{p1, . . . ,pn, ¬p1, . . . , ¬pn}.
For every input sequence δ∈{0, 1}n, a submatrix Mδ of the matrix M is defined. The matrix Mδ is a submatrix consisting of those rows of the matrix M the labels ρ of which are related to a value “1” by the input sequence δ. That is, the matrix Mδ is a submatrix consisting of the rows of the matrix M which are related to pi such that δi=1 and the rows of the matrix M which are related to ¬pi such that δi=0.
Referring to
It is assumed that in an input sequence δ∈{0, 1}7, δ1=1, δ2=0, δ3=1, δ4=0, δ5=0, δ6=1, and δ7=1. In this case, a submatrix consisting of the rows of the matrix M which are related to literals (p1, p3, p6, p7, ¬p2, ¬p4, ¬p5) surrounded by broken lines is the matrix Mδ. That is, the submatrix consisting of the first row (M1), second row (M2), and fourth row (M4) of the matrix M is the matrix Mδ.
In other words, if map γ: {1, . . . , L}→{0, 1} is [ρ(j)=pi]∧[δi=1] or [ρ(j)=¬pi]∧[δi=0], then γ(j)=1; otherwise γ(j)=0. In this case, Mδ:=(Mj)γ(j)=1. Note that Mj is the i-th row of the matrix M.
That is, in
More specifically, whether or not the j-th row of the matrix M is included in the matrix Mδ is determined by whether the value of the map γ(j) is “0” or “1”.
A span program M{circumflex over ( )} accepts an input sequence δ if and only if 1→∈span<Mδ>, and rejects the input sequence δ otherwise. That is, the span program M{circumflex over ( )} accepts the input sequence δ if and only if a linear combination of the rows of the matrix Mδ that are obtained from the matrix M{circumflex over ( )} by the input sequence δ gives 1→. Note that 1→ is a row vector that has a value “1” in each element.
For example, in an example of
The span program is called monotone if its labels p are related to only positive literals {p1, . . . , pn}. The span program is called non-monotone if its labels ρ are related to the literals {p1, . . . , pn, ¬p1, . . . , ¬pn}. It is assumed here that the span program is non-monotone. An access structure (non-monotone access structure) is constructed using the non-monotone span program. Briefly, an access structure controls access to encryption. That is, it controls whether a ciphertext can be decrypted or not.
<Inner-Product of Attribute Information and Access Structure>
The above-described map γ(j) is calculated using an inner-product of attribute information. That is, the inner-product of attribute information is used to determine which rows of the matrix M are to be included in the matrix Mδ.
Ut (t=1, . . . , d and Ut ⊂{0, 1}*) is a sub-universe and a set of attributes. Each Ut includes identification information (t) of the sub-universe and an n-dimensional vector (v→). That is, Ut is (t, v→), where t∈{1, . . . , d} and v→∈Fqn.
Let Ut:=(t, v→) be a variable p in a span program M{circumflex over ( )}:=(M, ρ). That is, p:=(t, v→). Let the span program M{circumflex over ( )}:=(M, ρ) with the variable (p:=(t, v→), (t, v′→), . . . ) be an access structure S.
That is, the access structure S:=(M, ρ) and ρ:{1, . . . , L}→{(t, v→), (t, v′→), . . . , ¬(t, v→), ¬(t, v′→), . . . }.
Next, let Γ be an attribute set. That is, Γ:={(t, x→t)|x→t ∈Fqn, 1≤t≤d}.
When Γ is given to the access structure S, a map γ: {1, . . . , L}→{0, 1} for the span program M{circumflex over ( )}:=(M, ρ) is defined as described below. If [ρ(i)=(t, v→i)]∧[(t, x→t)∈Γ]∧[v→i·x→t=0] or [ρ(i)=¬(t, v→i)]∧[(t, x→t)∈Γ]∧[v→i·x→t≠0] for each integer i of i=1, . . . , L, then γ(j)=1, and otherwise γ(j)=0.
That is, the map γ is calculated based on the inner-product of the attribute information v→ and x→. Then, which rows of the matrix M are to be included in the matrix Mδ is determined by the map γ, as described above. That is, which rows of the matrix M are to be included in the matrix Mδ is determined by the inner-product of the attribute information v→ and x→, and if and only if 1→∈span<(Mi)γ(i)=1>, the access structure S:=(M, ρ) accepts Γ.
<Secret Distribution Scheme>
Secret distribution in a non-monotone access structure (or span program) will be defined.
The secret distribution scheme is distributing secret information to render it nonsense distributed information. For example, secret information s is distributed into 10 pieces to generate 10 pieces of distributed information. Each of the 10 pieces of distributed information does not have information on the secret information s. Hence, even when one of the pieces of distributed information is obtained, no information can be obtained on the secret information s. On the other hand, if all of the 10 pieces of distributed information are obtained, the secret information s can be recovered.
There is another secret distribution scheme according to which the secret information s can be recovered if some (for example, 8 pieces) of distributed information can be obtained, without obtaining all of the 10 pieces of distributed information. A case like this where the secret information s can be recovered using 8 pieces out of 10 pieces of distributed information is called 8-out-of-10. That is, a case where the secret information s can be recovered using t pieces out of n pieces of distributed information is called t-out-of-n. This t is called a threshold value.
There is still another secret distribution scheme according to which when 10 pieces of distributed information d1, . . . , d10 are generated, the secret information s can be recovered with 8 pieces of distributed information d1, . . . , d8, but the secret information s cannot be recovered with 8 pieces of distributed information d3, . . . , d10. In other words, there is also a secret distribution scheme according to which whether or not the secret information s can be recovered is controlled not only by the number of pieces of distributed information obtained, but also the combination of distributed information obtained.
Referring to
Let a matrix M be an (L rows×r columns) matrix. Let f→T be a column vector indicated in Formula 126.
Let s0 indicated in Formula 127 be secret information to be shared.
s0:={right arrow over (1)}·{right arrow over (f)}T:=Σk=1rfk [Formula 127]
Let s→T indicated in Formula 128 be a vector of L pieces of distributed information of s0.
{right arrow over (s)}T:=(s1, . . . sL)T:=M·{right arrow over (f)}T [Formula 128]
It is assumed that distribution information si belongs to ρ(i).
If the access structure S:=(M, ρ) accepts Γ, that is, if 1→∈span<(Mi)γ(i)=1> for γ: {1, . . . , L}→{0, 1}, then there exist constants {αi ∈Fq|i∈I} such that I⊆{i∈{1, . . . , L}|γ(i)−=1}.
This is obvious from the explanation about the example of
Note Formula 129.
Σi∈Iαisi:=s0 [Formula 129]
Note that constants {αi} are computable in time polynomial in the size of the matrix M.
***Description of Configurations***
Referring to
The cryptographic system 100 includes a common parameter generation device 10, user secret key generation devices 20, encryption devices 30, a re-encryption key generation device 40, a re-encryption device 50, and a decryption device 60.
The common parameter generation device 10, each of the user secret key generation devices 20, the re-encryption key generation device 40, each of the encryption devices 30, the re-encryption device 50, and the decryption device 60 are connected through a transmission line 70. A specific example of the transmission line 70 is the Internet or a local area network (LAN).
Referring to
The common parameter generation device 10 is a computer.
The common parameter generation device 10 includes hardware of a processor 11, a memory 12, a storage 13, an a communication interface 14. The processor 11 is connected with other hardware components through signal lines and controls these other hardware components.
The common parameter generation device 10 includes, as functional components, an acquisition unit 111, a parameter generation unit 112, and an output unit 113. The functions of the functional components of the common parameter generation device 10 are realized by software.
The storage 13 stores programs that realize the functions of the functional components of the common parameter generation device 10. These programs are read into the memory 12 by the processor 11 and executed by the processor 11. This realizes the functions of the functional components of the common parameter generation device 10.
Referring to
The user secret key generation device 20 is a computer.
The user secret key generation device 20 includes hardware of a processor 21, a memory 22, a storage 23, and a communication interface 24. The processor 21 is connected with other hardware components through signal lines and controls these other hardware components.
The user secret key generation device 20 includes, as functional components, an acquisition unit 211, a user secret key generation unit 212, and an output unit 213.
The functions of the functional components of the user secret key generation device 20 are realized by software.
The storage 23 stores programs that realize the functions of the functional components of the user secret key generation device 20. These programs are read into the memory 22 by the processor 21 and executed by the processor 21. This realizes the functions of the functional components of the user secret key generation device 20.
Referring to
The encryption device 30 is a computer.
The encryption device 30 includes hardware of a processor 31, a memory 32, a storage 33, and a communication interface 34. The processor 31 is connected with other hardware components through signal lines and controls these other hardware components.
The encryption device 30 includes, as functional component, an acquisition unit 311, a ciphertext generation unit 312, and an output unit 313. The functions of the functional components of the encryption device 30 are realized by software.
The storage 33 stores programs that realize the functions of the functional components of the encryption device 30. These programs are read into the memory 32 by the processor 31 and executed by the processor 31. This realizes the functions of the functional components of the encryption device 30.
Referring to
The re-encryption key generation device 40 is a computer.
The re-encryption key generation device 40 includes hardware of a processor 41, a memory 42, a storage 43, and a communication interface 44. The processor 41 is connected with other hardware components through signal lines and controls these other hardware components.
The re-encryption key generation device 40 includes, as functional components, an acquisition unit 411, a re-encryption key generation unit 412, and an output unit 413. The functions of the functional components of the re-encryption key generation device 40 are realized by software.
The storage 43 stores programs that realize the functions of the functional components of the re-encryption key generation device 40. These programs are read into the memory 42 by the processor 41 and executed by the processor 41. This realizes the functions of the functional components of the re-encryption key generation device 40.
Referring to
The re-encryption device 50 is a computer.
The re-encryption device 50 includes hardware of a processor 51, a memory 52, a storage 53, and a communication interface 54. The processor 51 is connected with other hardware components through signal lines and controls these other hardware components.
The re-encryption device 50 includes, as functional components, an acquisition unit 511, a re-encrypted ciphertext generation unit 512, and an output unit 513. The acquisition unit 511 includes a ciphertext acquisition unit 514 and a key acquisition unit 515. The functions of the functional components of the re-encryption device 50 are realized by software.
The storage 53 stores programs that realize the functions of the functional components of the re-encryption device 50. These programs are read into the memory 52 by the processor 51 and executed by the processor 51. This realizes the functions of the functional components of the re-encryption device 50.
Referring to
The decryption device 60 is a computer.
The decryption device 60 includes a hardware of a processor 61, a memory 62, a storage 63, and a communication interface 64. The processor 61 is connected with other hardware components through signal lines and controls these other hardware components.
The decryption device 60 includes, as functional components, an acquisition unit 611, a decryption unit 612, and an output unit 613. The functions of the functional components of the decryption device 60 are realized by software.
The storage 63 stores programs that realize the functions of the functional components of the decryption device 60. These programs are read into the memory 62 by the processor 61 and executed by the processor 61. This realizes the functions of the functional components of the decryption device 60.
Each of the processors 11, 21, 31, 41, 51, and 61 is an integrated circuit (IC) that performs processing. Specific examples of each of the processors 11, 21, 31, 41, 51, and 61 are a central processing unit (CPU), a digital signal processor (DSP), and a graphics processing unit (GPU).
Each of the memories 12, 22, 32, 42, 52, and 62 is a storage device to temporarily store data. Specific examples of each of the memories 12, 22, 32, 42, 52, and 62 are a static random access memory (SRAM) and a dynamic random access memory (DRAM).
Each of the storages 13, 23, 33, 43, 53, and 63 is a storage device to store data. A specific example of each of the storages 13, 23, 33, 43, 53, and 63 is a hard disk drive (HDD). Alternatively, each of the storages 13, 23, 33, 43, 53, and 63 may be a portable recording medium such as a Secure Digital (SD, registered trademark) memory card, CompactFlash (CF, registered trademark), a NAND flash, a flexible disk, an optical disc, a compact disc, a Blu-ray (registered trademark) disc, or a digital versatile disc (DVD).
Each of the communication interfaces 14, 24, 34, 44, 54, and 64 is an interface for communicating with external devices. Specific examples of each of the communication interfaces 14, 24, 34, 44, 54, and 64 is an Ethernet (registered trademark) port, a Universal Serial Bus (USB) port, and a High-Definition Multimedia Interface (HDMI, registered trademark) port.
Similarly, a plurality of processors 21, a plurality of processors 31, a plurality of processors 41, a plurality of processors 51, and a plurality of processors 61 may be included, and the plurality of processors 21, the plurality of processors 31, the plurality of processors 41, the plurality of processors 51, and the plurality of processors 61 may cooperatively execute the programs that realize the respective functions.
***Description of Operation***
Referring to
The cryptographic system 100 according to the first embodiment realizes AB-PRE. A key encapsulation mechanism (KEM)-data encapsulation mechanism (DEM) framework is assumed here and an example in which AB-PRE is used as KEM will be described.
AB-PRE includes a Setup algorithm, a KG algorithm, an RKG algorithm, an Enc algorithm, an REnc algorithm, and a Dec algorithm.
The Setup algorithm is a probabilistic algorithm that takes as input a security parameter 1λ and space information n→ and outputs a public key pk and a master secret key msk.
The KG algorithm is a probabilistic algorithm that takes as input the public key pk, the master secret key msk, and attribute information Γ, and outputs a decryption key skΓ.
The Enc algorithm is a probabilistic algorithm that takes as input the public key pk and attribute information S, and outputs a ciphertext ctS and a session key K.
The RKG algorithm is a probabilistic algorithm that takes as input the public key pk, the decryption key skΓ and attribute information S′, and outputs a re-encryption key rk.
The REnc algorithm is a probabilistic algorithm that takes as input the public key pk, the re-encryption key rk, and the ciphertext ctS, and outputs a re-encrypted ciphertext rctS′.
The Dec algorithm is a deterministic algorithm that takes as input the public key pk, the decryption key skΓ, and one of the ciphertext ctS and the re-encrypted ciphertext rctS′, and outputs the session key K.
In the first embodiment, the attribute information S and the attribute information S′ are equivalent to the access structure S:=(M, ρ) described above.
Referring to
A procedure for the operation of the common parameter generation device 10 according to the first embodiment is equivalent to a common parameter generation method according to the first embodiment. A program that realizes the operation of the common parameter generation device 10 according to the first embodiment is equivalent to a common parameter generation program according to the first embodiment.
The common parameter generation device 10 executes the Setup algorithm.
(Step S11: Acquisition Process)
The acquisition unit 111 acquires a security parameter 1λ and space information n→:=(d; n1, . . . , nd).
Specifically, the acquisition unit 111 acquires the security parameter 1λ and the space information n→ that are input by an administrator or the like of the cryptographic system 100 via the communication interface 14. The acquisition unit 111 writes the security parameter 1λ and the space information n→ in the memory 12. The space information n→ is a parameter that determines a configuration such as the number of dimensions of dual pairing vector spaces used by the cryptographic system 100.
(Step S12: Parameter Generation Process)
The parameter generation unit 112 generates a public key pk and a master secret key msk, using as input the security parameter 1λ and the space information n→ acquired in step S11.
Specifically, the parameter generation unit 112 executes an algorithm Gob indicated in Formula 130, using as input the security parameter 1λ and the space information n→, so as to generate paramn, an element gt, and bases {Bt, B*t}t=0, . . . , d.
t,
t*)t=0,...,d) ← Gob(1λ, {right arrow over (n)} = (d; n1, . . . , nd))
,
t, g, e) ← Gbpg(1λ),
t := (bt,1, . . . , bt,N
t* := (bt,1*, . . . , bt,N
t,
t*}t=0, . . . ,d.
The parameter generation unit 112 generates subbases {B{circumflex over ( )}t, B{circumflex over ( )}*t}t=0, . . . , d based on the bases {Bt, B*t}t=0, . . . , d as indicated in Formula 131.0:=(b0,1,b0,2,b0,5),
t:=(bt,1, . . . ,bt,n
*0:=(b*0,1,b*0,2,b*0,4),
*t:=(b*t,1, . . . ,b*t,n
The parameter generation unit 112 generates an element a, an element A, and an element c, as indicated in Formula 132.
The parameter generation unit 112 sets the security parameter 1λ, the paramn, the element gt, the subbasis {B{circumflex over ( )}t}t=0, . . . ,d, the element A, and the element c in the public key pk. The parameter generation unit 112 sets the subbasis {B{circumflex over ( )}*t}t=0, . . . ,d, the element a, and a basis vector b*0,6 in the master secret key msk.
(Step S13: Output Process)
The output unit 113 outputs the public key pk and the master secret key msk that are generated in step S12.
Specifically, the output unit 113 transmits the public key pk, via the communication interface 14, to each of the user secret key generation devices 20, each of the encryption devices 30, the re-encryption key generation device 40, the re-encryption device 50, and the decryption device 60. The output unit 113 transmits the master secret key msk to each of the user secret key generation devices 20 via the communication interface 14. At this time, the output unit 113 transmits the master secret key msk after making it confidential by a method such as encryption using an existing encryption algorithm.
Each of the public key pk and the master secret key msk may be stored in a storage medium and sent by postal mail instead of being transmitted via the communication interface 14.
That is, the common parameter generation device 10 executes the Setup algorithm indicated in Formula 133.
t,
t*)t=0,...,d) ← Gob(1λ, {right arrow over (n)} = (d; n1, . . . , nd)),
0 := (b0,1, b0,2, b0,5),
t := (bt,1, . . . , bt,n
0* := (b0,1*, b0,2*, b0,4*),
t* := (bt,1*, . . . , bt,n
t}t=0, . . . ,d, A, c),
t*}t=0, . . . d, a, b0,6*).
Referring to
A procedure for the operation of the user secret key generation device 20 according to the first embodiment is equivalent to a user secret key generation method according to the first embodiment. A program that realizes the operation of the user secret key generation device 20 according to the first embodiment is equivalent to a user secret key generation program according to the first embodiment.
The user secret key generation device 20 executes the KG algorithm.
(Step S21: Acquisition Process)
The acquisition unit 211 acquires the public key pk, the master secret key msk, and attribute information Γ:={t, x→t|x→t∈Fqnt\{0→}, 1≤t≤d}.
Specifically, the acquisition unit 211 receives, via the communication interface 24, the public key pk and the master secret key msk that are transmitted by the common parameter generation device 10. The acquisition unit 211 acquires the attribute information F that is input by a user or the like of the user secret key generation device 20 via the communication interface 14. The acquisition unit 211 writes the public key pk, the master secret key msk, and the attribute information Γ in the memory 22.
The attribute information Γ indicates attributes such as a belonging organization and a position of the user of a decryption key skΓ. For example, a type of attribute is assigned to each t, and an attribute of the type assigned to t is set in x→t. As a specific example, a belonging company is assigned to t=1, a belonging division is assigned to t=2, a belonging section is assigned to t=3, and a position is assigned to t=4. Then, the company to which the user belongs is set in x→1, the division to which the user belongs is set in x→2, the section to which the user belongs is set in x→3, and the position of the user is set in x→4.
(Step S22: User Secret Key Generation Process)
The user secret key generation unit 212 generates the decryption key skΓ, using as input the public key pk, the master secret key msk, and the attribute information Γ that are acquired in step S21.
Specifically, the user secret key generation unit 212 generates random numbers, as indicated in Formula 134.
The user secret key generation unit 212 generates a key element k*0 and a key element k*t for each t included in the attribute information Γ, as indicated in Formula 135.
(Step S23: Output Process)
The output unit 213 outputs, as the decryption key skΓ, the attribute information Γ, the key element k*0 and the key elements k*t generated in step S22, and the basis vector b*0,6.
Specifically, the output unit 213 transmits the decryption key skΓ, via the communication interface 24, to the re-encryption key generation device 40 and the decryption device 60. At this time, the output unit 213 transmits the decryption key skΓ after making it confidential by a method such as encryption using an existing encryption algorithm.
The decryption key skΓ may be stored in a storage medium and sent by postal mail instead of being transmitted via the communication interface 24.
That is, the user secret key generation device 20 executes the KG algorithm indicated in Formula 136.
qn
0
∈Γ, b0,6*).
Referring to
A procedure for the operation of the encryption device 30 according to the first embodiment is equivalent to an encryption method according to the first embodiment.
A program that realizes the operation of the encryption device 30 according to the first embodiment is equivalent to an encryption program according to the first embodiment.
The encryption device 30 executes the Enc algorithm.
(Step S31: Acquisition Process)
The acquisition unit 311 acquires the public key pk and attribute information S=(M, ρ).
Specifically, the acquisition unit 311 receives, via the communication interface 34, the public key pk transmitted by the common parameter generation device 10. The acquisition unit 311 acquires the attribute information S that is input by a user or the like of the encryption device 30 via the communication interface 14. The acquisition unit 311 writes the public key pk and the attribute information S in the memory 32.
The attribute information S indicates a range of attributes to be permitted to decrypt a ciphertext ctS. Specifically, the attribute information S indicates the range of attributes to be permitted to decrypt the ciphertext ctS, as a conditional expression using logical OR and logical AND.
(Step S32: Ciphertext generation process)
The ciphertext generation unit 312 generates the ciphertext ctS, using as input the public key pk and the attribute information S that are acquired in step S31.
Specifically, the ciphertext generation unit 312 generates distributed information Si for each integer i of i=1, . . . , L and secret information S0, as indicated in Formula 137.
The ciphertext generation unit 312 generates random numbers, as indicated in Formula 138.
The ciphertext generation unit 312 generates a cipher element c0, as indicated in Formula 139.
c0:= [Formula 139]
The ciphertext generation unit 312 generates a session key K, as indicated in Formula 140.
K:=gTζ [Formula 140]
The ciphertext generation unit 312 generates a cipher element ci for each integer i of i=1, . . . , L, as indicated in Formula 141.
qn
(Step S33: Output Process) The output unit 313 outputs the ciphertext ctS including the attribute information S and the cipher element ci for each integer i of i=0, . . . , L generated in step S32, and the session K generated in step S32.
Specifically, the output unit 313 transmits the ciphertext ctS, via the communication interface 34, to the re-encryption device 50 and the decryption device 60. The output unit 313 writes the session key K in the memory 32.
That is, the encryption device 30 executes the Enc algorithm indicated in Formula 142.
, := (M, ρ)):
qn
:= (
, {ci}i=0, . . . ,L), K.
Referring to
A procedure for the operation of the re-encryption key generation device 40 according to the first embodiment is equivalent to a re-encryption key generation method according to the first embodiment. A program that realizes the operation of the re-encryption key generation device 40 according to the first embodiment is equivalent to a re-encryption key generation program according to the first embodiment.
The re-encryption key generation device 40 executes the RKG algorithm.
(Step S41: Acquisition Process)
The acquisition unit 411 acquires the public key pk, the decryption key skΓ, and attribute information S′:=(M, ρ).
Specifically, the acquisition unit 411 receives, via the communication interface 44, the public key pk transmitted by the common parameter generation device 10. The acquisition unit 411 receives, via the communication interface 44, the decryption key skΓ transmitted by the user secret key generation device 20. The acquisition unit 411 acquires the attribute information S′ that is input by a user or the like of the re-encryption key generation device 40 via the communication interface 14. The acquisition unit 411 writes the public key pk, the decryption key skΓ, and the attribute information S′ in the memory 42.
The attribute information S′ indicates a range of attributes to be permitted to decrypt a re-encrypted ciphertext rctS′. Specifically, like the attribute information S, the attribute information S′ indicates the range of attributes to be permitted to decrypt the re-encrypted ciphertext rctS′, as a conditional expression using logical OR and logical AND.
(Step S42: Re-Encryption Key Generation Process)
The re-encryption key generation unit 412 generates the re-encryption key rk, using as input the public key pk, the decryption key skΓ, and the attribute information S′ that are acquired in step S41.
Specifically, the re-encryption key generation unit 412 generates a random number, as indicated in Formula 143.
The re-encryption key generation unit 412 generates a converted decryption key skΓ˜, as indicated in Formula 144.
s{tilde over (k)}Γ:=(Γ,k*0+rb*0,6,{k*t}(t,{right arrow over (x)}
As a result, k*0 included in the converted decryption key skΓ˜ is as indicated in Formula 145.
k*0:= [Formula 145]
The re-encryption key generation unit 412 executes the Enc algorithm, using as input the public key pk and the attribute information S′, so as to generate a ciphertext ctS′ and a session key K′, as indicated in Formula 146.
(,K′)←Enc(pk,
′) [Formula 146]
That is, the re-encryption key generation unit 412 executes processes of step S32 of
(Step S43: Output Process)
The output unit 413 outputs, as the re-encryption key rk, the converted decryption key skΓ˜, an element Ar·K′, and the ciphertext ctS′. The element Ar·K′ is obtained by multiplying an element Ar, which is obtained from the element A and the random number r included in the pubic key pk, by the session key K′.
Specifically, the output unit 413 transmits the re-encryption key rk to the re-encryption device 50 via the communication interface 44.
That is, the re-encryption key generation device 40 executes the RKG algorithm indicated in Formula 147.
∈Γ, b0,6*),
:= (M′, ρ′)):
∈Γ),
′, K′) ← Enc(pk,
′),
′).
Referring to
A procedure for the operation of the re-encryption device 50 according to the first embodiment is equivalent to a re-encryption method according to the first embodiment. A program that realizes the operation of the re-encryption device 50 according to the first embodiment is equivalent to a re-encryption program according to the first embodiment.
The re-encryption device 50 executes the REnc algorithm.
(Step S51: Ciphertext Acquisition Process)
The ciphertext acquisition unit 514 acquires the ciphertext ctS. That is, the ciphertext acquisition unit 514 acquires the ciphertext ctS out of the session key K and the ciphertext ctS in which the session key K is encrypted that are generated by the Enc algorithm, which is an encryption algorithm, using as input the attribute information S that defines the range to be permitted decryption.
Specifically, the ciphertext acquisition unit 514 receives, via the communication interface 54, the ciphertext ctS transmitted by the encryption device 30. The ciphertext acquisition unit 514 writes the ciphertext ctS in the memory 52.
(Step S52: Key Acquisition Process)
The key acquisition unit 515 acquires the re-encryption key rk. That is, the key acquisition unit 515 acquires the re-encryption key rk including the converted decryption key skΓ˜ generated by setting the random number r in the decryption key skΓ with which the ciphertext ctS can be decrypted, the session key K′ and the ciphertext ctS in which the session key K′ is encrypted that are generated by the Enc algorithm, which is an encryption algorithm, using as input the attribute information S′ that defines the range to be permitted decryption, and conversion information Ar generated from the random number r. The key acquisition unit 515 also acquires the public key pk.
Specifically, the key acquisition unit 515 receives, via the communication interface 54, the public key pk transmitted by the common parameter generation device 10 and the re-encryption key rk transmitted by the re-encryption key generation device 40. The key acquisition unit 515 writes the public key pk and the re-encryption key rk in the memory 52.
(Step S53: Determination Process)
The re-encrypted ciphertext generation unit 512 determines whether the attribute information S, which is the access structure included in the ciphertext ctS, accepts the attribute information Γ included in the re-encryption key rk.
If it is accepted, the re-encrypted ciphertext generation unit 512 advances the process to step S54. If it is not accepted, the re-encrypted ciphertext generation unit 512 determines that a re-encrypted ciphertext rctS′ cannot be generated and terminates the process.
(Step S54: Re-Encrypted Ciphertext Generation Process)
The re-encrypted ciphertext generation unit 512 generates a re-encrypted ciphertext rctS′, using as input the ciphertext ctS acquired in step S51 and the public key pk and the re-encryption key rk acquired in step S52.
Specifically, the re-encrypted ciphertext generation unit 512 generates decryption information K{circumflex over ( )} by decrypting the ciphertext ctS with the converted decryption key skΓ˜ included in the re-encryption key rk. The re-encrypted ciphertext generation unit 512 generates a cipher element K˜ by deleting the element related to the random number r from the decryption information K{circumflex over ( )} by the conversion information Ar and setting the session key K′.
This will be described more specifically.
The re-encrypted ciphertext generation unit 512 calculates an index I and a complementary coefficient {αi}i∈I indicated in Formula 148.
{right arrow over (1)}=Σi∈iαiMi,
I⊆{i∈{1, . . . ,L}|[ρ(i)=(t,{right arrow over (v)}i)∧(t,{right arrow over (x)}t)∈Γ∧{right arrow over (v)}i·{right arrow over (x)}t=0]∨[ρ(i)=¬(t,{right arrow over (v)}i)∧(t,{right arrow over (x)}t)∈Γ∧{right arrow over (v)}i·{right arrow over (x)}t≠0]} [Formula 148]
Note that Mi is an i-th row of the matrix M.
The re-encrypted ciphertext generation unit 512 generates the decryption information K{circumflex over ( )} by decrypting the ciphertext ctS with the converted decryption key skΓ˜, as indicated in Formula 149.
Then, the re-encrypted ciphertext generation unit 512 generates the cipher element K˜ by deleting the element related to the random number r from the decryption information K{circumflex over ( )} by the element Ar·K′ that includes the conversion information Ar and setting the session key K′. Specifically, the re-encrypted ciphertext generation unit 512 generates the cipher element K˜ by dividing the decryption information K{circumflex over ( )} by the element Ar·K′.
(Step S55: Output Process)
The output unit 513 outputs, as the re-encrypted ciphertext rctS′, the ciphertext ctS′ and the cipher element K˜.
Specifically, the output unit 513 transmits the re-encrypted ciphertext rctS′ to the decryption device 60 via the communication interface 54.
That is, the re-encryption device 50 executes the REnc algorithm indicated in Formula 150.
′), := (
, {ci}i=0, . . . , L)):
accepts Γ then compute I and {αi}i∈I such that
′ := (
′ : = (
′, {ci}i = 0, . . . , L), {tilde over (K)}).
The re-encryption device 50 re-encrypts the ciphertext ctS generated by the encryption device 30 and changes the range to be permitted decryption from the attribute information S to the attribute information S′ here. However, the re-encryption device 50 can also re-encrypt the re-encrypted ciphertext rctS′, and change the range to be permitted decryption.
In this case, in step S51 the ciphertext acquisition unit 514 may acquire, as the ciphertext ctS, the ciphertext ctS′ included in the re-encrypted ciphertext rctS′. The subsequent processes are the same as in the case where the ciphertext ctS generated by the encryption device 30 is re-encrypted.
Referring to
A procedure for the operation of the decryption device 60 according to the first embodiment is equivalent to a decryption method according to the first embodiment. A program that realizes the operation of the decryption device 60 according to the first embodiment is equivalent to a decryption program according to the first embodiment.
The decryption device 60 executes the Dec algorithm.
Referring to
(Step S61: Acquisition Process)
The acquisition unit 611 acquires the public key pk, the decryption key skΓ, and the ciphertext ctS.
Specifically, the acquisition unit 611 receives, via the communication interface 64, the public key pk transmitted by the common parameter generation device 10. The acquisition unit 611 receives, via the communication interface 64, the decryption key skΓ transmitted by the user secret key generation device 20. The acquisition unit 611 acquires, via the communication interface 64, the ciphertext ctS transmitted by the encryption device 30. The acquisition unit 611 writes the public key pk, the decryption key skΓ, and the ciphertext ctS in the memory 62.
(Step S62: Determination Process)
The decryption unit 612 determines whether the attribute information S, which is the access structure included in the ciphertext ctS, accepts the attribute information Γ included in the decryption key skΓ.
If it is accepted, the decryption unit 612 advances the process to step S63. If it is not accepted, the decryption unit 612 determines that the ciphertext ctS cannot be decrypted and terminates the process.
(Step S63: Decryption Process)
The decryption unit 612 decrypts the ciphertext ctS with the decryption key skΓt to generate the session key K.
Specifically, the decryption unit 612 calculates an index I and a complementary coefficient {αi}i∈I indicated in Formula 151.
{right arrow over (1)}=Σi∈iαiMi,
I⊆{i∈{1, . . . ,L}|[ρ(i)=(t,{right arrow over (v)}i)∧(t,{right arrow over (x)}t)∈Γ∧{right arrow over (v)}i·{right arrow over (x)}t=0]∨[ρ(i)=¬(t,{right arrow over (v)}i)∧(t,{right arrow over (x)}t)∈Γ∧{right arrow over (v)}i·{right arrow over (x)}t≠0]} [Formula 151]
Note that Mi is the i-th row of the matrix M.
The decryption unit 612 calculates Formula 152 to generate the session key K.
That is, the decryption device 60 executes the Dec algorithm indicated in Formula 153.
∈Γ),
:= (
, {ci}i=0, . . . ,L)):
accepts Γ then compute I and {αi}i∈I such that
Referring to
(Step S71: Acquisition Process)
The acquisition unit 611 acquires the public key pk, the decryption key skΓ′, and the re-encrypted ciphertext rctS′. It is assumed here that attribute information that is accepted by the access structure, which is the attribute information S′, is attribute information Γ′, and that a decryption key generated using as input the attribute information Γ′ is the decryption key skΓ′.
Specifically, the acquisition unit 611 receives, via the communication interface 64, the public key pk transmitted by the common parameter generation device 10. The acquisition unit 611 receives, via the communication interface 64, the decryption key skΓ′ transmitted by the user secret key generation device 20. The acquisition unit 611 receives, via the communication interface 64, the re-encrypted ciphertext rctS′ generated by the re-encryption device 50. The acquisition unit 611 writes the public key pk, the decryption key skΓ′, and the re-encrypted ciphertext rctS′, in the memory 62.
(Step S72: Determination Process)
The decryption unit 612 determines whether the attribute information S′, which is the access structure included in the re-encrypted ciphertext rctS′, accepts the attribute information Γ′ included in the decryption key skΓ′.
If it is accepted, the decryption unit 612 advances the process to step S73. If it is not accepted, the decryption unit 612 determines that the re-encrypted ciphertext rctS′ cannot be decrypted and terminates the process.
(Step S73: Decryption Process)
The decryption unit 612 decrypts the re-encrypted ciphertext rctS′ with the decryption key skΓ′ to generate the session key K.
Specifically, the decryption unit 612 decrypts the ciphertext ctS′ included in the re-encrypted ciphertext rctS′ with the decryption key skΓ′ to generate the session key K′, and generates the session key K from the cipher element K˜ included in the re-encrypted ciphertext rctS′ and the session key K′.
This will be described more specifically.
The re-encrypted ciphertext rctS′ is decrypted with the decryption key skΓ′ to generate the session key K.
Specifically, the decryption unit 612 calculates an index I and a complementary coefficient {αi}i∈I indicated in Formula 154.
{right arrow over (1)}=Σi∈iαiMi,
I⊆{i∈{1, . . . ,L}|[ρ(i)=(t,{right arrow over (v)}i)∧(t,{right arrow over (x)}t)∈Γ∧{right arrow over (v)}i·{right arrow over (x)}t=0]∨[ρ(i)=¬(t,{right arrow over (v)}i)∧(t,{right arrow over (x)}t)∈Γ∧{right arrow over (v)}i·{right arrow over (x)}t≠0]} [Formula 154]
Note that Mi is the i-th row of the matrix M.
The decryption unit 612 calculates Formula 155 to generate the session key K′.
The decryption unit 612 multiplies the cipher element K˜ by the session key K′ to generate the session key K.
That is, the decryption device 60 executes the Dec algorithm indicated in Formula 156.
∈Γ),
:=
:=
{ci}i=0, . . . ,L), {tilde over (K)} )):
accepts Γ then compute I and {αi}i∈I such that
***Effects of the First Embodiment***
As described above, the cryptographic system 100 according to the first embodiment generates the re-encrypted ciphertext rctS′ that includes as essential elements only the ciphertext ctS′ and the cipher element K˜. Even when the cryptographic system 100 according to the first embodiment re-encrypts the re-encrypted ciphertext rctS′, essential elements of the re-encrypted ciphertext rctS′ are only the ciphertext ctS′ and the cipher element K˜. That is, even if re-encryption is repeated, essential elements will not increase.
Therefore, it is possible to make the data size of a ciphertext generated by re-encryption not dependent on the number of times re-encryption is performed.
***Other Configurations***
<First Variation>
In the first embodiment, the functional components are realized by software. However, as a first variation, the functional components may be realized by hardware. With regard to this first variation, differences from the first embodiment will be described.
A configuration of the common parameter generation device 10 according to the first variation will be described.
When the functional components are realized by hardware, the common parameter generation device 10 includes an electronic circuit 15 in place of the processor 11, the memory 12, and the storage 13. The electronic circuit 15 is a dedicated circuit that realizes the functions of the functional components, the memory 12, and the storage 13.
A configuration of the user secret key generation device 20 according to the first variation will be described.
When the functional components are realized by hardware, the user secret key generation device 20 includes an electronic circuit 25 in place of the processor 21, the memory 22, and the storage 23. The electronic circuit 25 is a dedicated circuit that realizes the functions of the functional components, the memory 22, and the storage 23.
A configuration of the encryption device 30 according to the first variation will be described.
When the functional components are realized by hardware, the encryption device 30 includes an electronic circuit 35 in place of the processor 31, the memory 32, and the storage 33. The electronic circuit 35 is a dedicated circuit that realizes the functions of the functional components, the memory 32, and the storage 33.
A configuration of the re-encryption key generation device 40 according to the first variation will be described.
When the functional components are realized by hardware, the re-encryption key generation device 40 includes an electronic circuit 45 in place of the processor 41, the memory 42, and the storage 43. The electronic circuit 45 is a dedicated circuit that realizes the functions of the functional components, the memory 42, and the storage 43.
A configuration of the re-encryption device 50 according to the first variation will be described.
When the functional components are realized by hardware, the re-encryption device 50 includes an electronic circuit 55 in place of the processor 51, the memory 52, and the storage 53. The electronic circuit 55 is a dedicated circuit that realizes the functions of the functional components, the memory 52, and the storage 53.
A configuration of the decryption device 60 according to the first variation will be described.
When the functional components are realized by hardware, the decryption device 60 includes an electronic circuit 65 in place of the processor 61, the memory 62, and the storage 63. The electronic circuit 65 is a dedicated circuit that realizes the functions of the functional components, the memory 62, and the storage 63.
Each of the electronic circuits 15, 25, 35, 45, 55, and 65 is assumed to be a single circuit, a composite circuit, a programmed processor, a parallel-programmed processor, a logic IC, a gate array (GA), an application specific integrated circuit (ASIC), or a field-programmable gate array (FPGA).
The respective functional components may be realized by one electronic circuit 15, one electronic circuit 25, one electronic circuit 35, one electronic circuit 45, one electronic circuit 55, and one electronic circuit 65, or the respective functional components may be distributed among and realized by a plurality of electronic circuits 15, a plurality of electronic circuits 25, a plurality of electronic circuits 35, a plurality of electronic circuits 45, a plurality of electronic circuits 55, and a plurality of electronic circuits 65.
<Second Variation>
As a second variation, some of the functional components may be realized by hardware, and the rest of the functional components may be realized by software.
Each of the processors 11, 21, 31, 41, 51, 61, the memories 12, 22, 32, 42, 52, 62, the storages 13, 23, 33, 43, 53, 63, and the electronic circuits 15, 25, 35, 45, 55, 65 is referred to as processing circuitry. That is, the functions of the functional components are realized by the processing circuitry.
100: cryptographic system, 10: common parameter generation device, 11: processor, 12: memory, 13: storage, 14: communication interface, 15: electronic circuit, 111: acquisition unit, 112: parameter generation unit, 113: output unit, 20: user secret key generation device, 21: processor, 22: memory, 23: storage, 24: communication interface, 25: electronic circuit, 211: acquisition unit, 212: user secret key generation unit, 213: output unit, 30: encryption device, 31: processor, 32: memory, 33: storage, 34: communication interface, 35: electronic circuit, 311: acquisition unit, 312: ciphertext generation unit, 313: output unit, 40: re-encryption key generation device, 41: processor, 42: memory, 43: storage, 44: communication interface, 45: electronic circuit, 411: acquisition unit, 412: re-encryption key generation unit, 413: output unit, 50: re-encryption device, 51: processor, 52: memory, 53: storage, 54: communication interface, 55: electronic circuit, 511: acquisition unit, 512: re-encrypted ciphertext generation unit, 513: output unit, 514: ciphertext acquisition unit, 515: key acquisition unit, 60: decryption device, 61: processor, 62: memory, 63: storage, 64: communication interface, 65: electronic circuit, 611: acquisition unit, 612: decryption unit, 613: output unit.
This application is a Continuation of PCT International Application No. PCT/JP2020/023680, filed on Jun. 17, 2020, all of which is hereby expressly incorporated by reference into the present application.
Number | Name | Date | Kind |
---|---|---|---|
11824638 | Kawai | Nov 2023 | B2 |
20020085710 | Ananth | Jul 2002 | A1 |
20160234012 | Kawai | Aug 2016 | A1 |
20160344708 | Kawai et al. | Nov 2016 | A1 |
20210126782 | Koseki et al. | Apr 2021 | A1 |
Number | Date | Country |
---|---|---|
2009-302861 | Dec 2009 | JP |
2010-141618 | Jun 2010 | JP |
2010-161523 | Jul 2010 | JP |
2012-150378 | Aug 2012 | JP |
WO 2015107620 | Jul 2015 | WO |
WO 2018225248 | Dec 2018 | WO |
WO-2019093201 | May 2019 | WO |
Entry |
---|
Yutaka Kawai and Katsuyuki Takashima, “Fully-Anonymous Functional Proxy-Re-Encryption”, Mitsubishi Electric, Published Oct. 13, 2013. (Year: 2013). |
Kawai et al., “Proxy Re-Encryption That Supports Homomorphic Operations for Re-Encrypted Ciphertexts”, IEICE Trans. Fundamentals, vol. E102-A, No. 1 Jan. 2019 (Year: 2019). |
Ran Canetti and Susan Hohenberger, “Chosen-Ciphertext Secure Proxy Re-Encryption”, Retrieved From https://eprint.iacr.org/2007/171.pdf, Published Oct. 23, 2007 (Year: 2007). |
International Search Report for PCT/JP2020/023680 (PCT/ISA/210) mailed on Sep. 15, 2020. |
Lai et al., “Adaptable Ciphertext-Policy Attribute-Based Encryption”, Pairing-Based Cryptography—Pairing 2013: 6th International Conference, Beijing, China, Nov. 22-24: Revised Selected Papers, Research Collection School Of Information Systems., 2013, vol. 8365, pp. 199-214, https://ink.library.smu.edu.sg/sis_research/1950/. |
Luo et al., “Ciphertext Policy Attribute-Based Proxy Re-encryption”, ICICS 2010, LNCS, 2010, vol. 6476, pp. 401-415. |
Written Opinion of the International Searching Authority for PCT/JP2020/023680 (PCT/ISA/237) mailed on Sep. 15, 2020. |
Number | Date | Country | |
---|---|---|---|
20230087142 A1 | Mar 2023 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2020/023680 | Jun 2020 | WO |
Child | 17969403 | US |