attribute based cryptography
play

Attribute-Based Cryptography Lecture 21 And Pairing-Based - PowerPoint PPT Presentation

Attribute-Based Cryptography Lecture 21 And Pairing-Based Cryptography 1 Identity-Based Encryption 2 Identity-Based Encryption In PKE, KeyGen produces a random (PK,SK) pair 2 Identity-Based Encryption In PKE, KeyGen produces a random


  1. Identity-Based Encryption Notion of IBE suggested by Shamir in 1984 (but no construction) An “identity-based non-interactive key-distribution” scheme by Sakai-Ohgishi-Kasahara (2000) using bilinear-pairings and a random oracle But no formal proof of security Quadratic Residuosity based scheme by Cocks (2001) But long ciphertexts (Shorter, but slower scheme by Boneh-Gentry-Hamburg (2007) ) Boneh-Franklin IBE (2001): similar to SKO ID-NIKD (but with a proof of security in the random oracle model) Pairing-based, without RO: Boneh-Boyen (2004), Waters (2005), ... 4

  2. Identity-Based Encryption Notion of IBE suggested by Shamir in 1984 (but no construction) An “identity-based non-interactive key-distribution” scheme by Sakai-Ohgishi-Kasahara (2000) using bilinear-pairings and a random oracle But no formal proof of security Quadratic Residuosity based scheme by Cocks (2001) But long ciphertexts (Shorter, but slower scheme by Boneh-Gentry-Hamburg (2007) ) Boneh-Franklin IBE (2001): similar to SKO ID-NIKD (but with a proof of security in the random oracle model) Pairing-based, without RO: Boneh-Boyen (2004), Waters (2005), ... Without pairing: Using QR, Lattices, ... 4

  3. Bilinear Pairing 5

  4. Bilinear Pairing A relatively new (and less understood) tool 5

  5. Bilinear Pairing A relatively new (and less understood) tool Two (or three) groups with an efficient pairing operation, e: G x G → G T that is “bilinear” 5

  6. Bilinear Pairing A relatively new (and less understood) tool Two (or three) groups with an efficient pairing operation, e: G x G → G T that is “bilinear” Typically, prime order (cyclic) groups 5

  7. Bilinear Pairing A relatively new (and less understood) tool Two (or three) groups with an efficient pairing operation, e: G x G → G T that is “bilinear” Typically, prime order (cyclic) groups e(g a ,h b ) = e(g,h) ab 5

  8. Bilinear Pairing A relatively new (and less understood) tool Two (or three) groups with an efficient pairing operation, e: G x G → G T that is “bilinear” Typically, prime order (cyclic) groups e(g a ,h b ) = e(g,h) ab Multiplication (once) in the exponent! 5

  9. Bilinear Pairing A relatively new (and less understood) tool Two (or three) groups with an efficient pairing operation, e: G x G → G T that is “bilinear” Typically, prime order (cyclic) groups e(g a ,h b ) = e(g,h) ab Multiplication (once) in the exponent! e(g a g a’ ,g b ) = e(g a ,g b ) e(g a’ ,g b ) ; e(g a ,g bc ) = e(g ac ,g b ) ; ... 5

  10. Bilinear Pairing A relatively new (and less understood) tool Two (or three) groups with an efficient pairing operation, e: G x G → G T that is “bilinear” Typically, prime order (cyclic) groups e(g a ,h b ) = e(g,h) ab Multiplication (once) in the exponent! e(g a g a’ ,g b ) = e(g a ,g b ) e(g a’ ,g b ) ; e(g a ,g bc ) = e(g ac ,g b ) ; ... Not degenerate: e(g,g,) ! 1 5

  11. Decisional Bilinear- Diffie-Hellman Assumption 6

  12. Decisional Bilinear- Diffie-Hellman Assumption DDH is not hard in G, if there is a bilinear pairing 6

  13. Decisional Bilinear- Diffie-Hellman Assumption DDH is not hard in G, if there is a bilinear pairing Given (g a ,g b ,g z ) check if e(g a ,g b ) = e(g z ,g) 6

  14. Decisional Bilinear- Diffie-Hellman Assumption DDH is not hard in G, if there is a bilinear pairing Given (g a ,g b ,g z ) check if e(g a ,g b ) = e(g z ,g) Decisional Bilinear DH assumption: (g a ,g b ,g c ,g abc ) is indistinguishable from (g a ,g b ,g c ,g z ). (a,b,c,z random) 6

  15. IBE from Pairing 7

  16. IBE from Pairing MPK: g,h, Y=e(g,h) y , " = (u,u 1 ,...,u n ) 7

  17. IBE from Pairing MPK: g,h, Y=e(g,h) y , " = (u,u 1 ,...,u n ) MSK: h y 7

  18. IBE from Pairing MPK: g,h, Y=e(g,h) y , " = (u,u 1 ,...,u n ) MSK: h y Enc(m;s) = ( g s , " (ID) s , M.Y s ) 7

  19. IBE from Pairing MPK: g,h, Y=e(g,h) y , " = (u,u 1 ,...,u n ) " (ID) = u Π u i MSK: h y i:ID i =1 Enc(m;s) = ( g s , " (ID) s , M.Y s ) 7

  20. IBE from Pairing MPK: g,h, Y=e(g,h) y , " = (u,u 1 ,...,u n ) " (ID) = u Π u i MSK: h y i:ID i =1 Enc(m;s) = ( g s , " (ID) s , M.Y s ) SK for ID: ( h y . " (ID) t , g t ) = (d 1 , d 2 ) 7

  21. IBE from Pairing MPK: g,h, Y=e(g,h) y , " = (u,u 1 ,...,u n ) " (ID) = u Π u i MSK: h y i:ID i =1 Enc(m;s) = ( g s , " (ID) s , M.Y s ) SK for ID: ( h y . " (ID) t , g t ) = (d 1 , d 2 ) Dec ( a, b, c; d 1 , d 2 ) = c/ [ e(b,d 2 ) / e(a,d 1 ) ] 7

  22. IBE from Pairing MPK: g,h, Y=e(g,h) y , " = (u,u 1 ,...,u n ) " (ID) = u Π u i MSK: h y i:ID i =1 Enc(m;s) = ( g s , " (ID) s , M.Y s ) SK for ID: ( h y . " (ID) t , g t ) = (d 1 , d 2 ) Dec ( a, b, c; d 1 , d 2 ) = c/ [ e(b,d 2 ) / e(a,d 1 ) ] CPA security based on Decisional-BDH 7

  23. Attribute-Based Encryption 8

  24. Attribute-Based Encryption Which users can decrypt a ciphertext will be decided by the attributes and policies associated with the message and the user 8

  25. Attribute-Based Encryption Which users can decrypt a ciphertext will be decided by the attributes and policies associated with the message and the user A central authority will create secret keys for the users (like in IBE) based on attributes/policies for each user 8

  26. Attribute-Based Encryption Which users can decrypt a ciphertext will be decided by the attributes and policies associated with the message and the user A central authority will create secret keys for the users (like in IBE) based on attributes/policies for each user Ciphertexts can be created (by anyone) by incorporating attributes/policies 8

  27. Ciphertext-Policy ABE 9

  28. Ciphertext-Policy ABE Users in the system have attributes; receives a key (or “key bundle”) from an authority for its set of attributes 9

  29. Ciphertext-Policy ABE Users in the system have attributes; receives a key (or “key bundle”) from an authority for its set of attributes Ciphertext contains a policy (a boolean predicate over the attribute space) 9

  30. Ciphertext-Policy ABE Users in the system have attributes; receives a key (or “key bundle”) from an authority for its set of attributes Ciphertext contains a policy (a boolean predicate over the attribute space) If a user’ s attribute set satisfies the policy, can use its key bundle to decrypt the ciphertext 9

  31. Ciphertext-Policy ABE Users in the system have attributes; receives a key (or “key bundle”) from an authority for its set of attributes Ciphertext contains a policy (a boolean predicate over the attribute space) If a user’ s attribute set satisfies the policy, can use its key bundle to decrypt the ciphertext Multiple users cannot pool their attributes together 9

  32. Ciphertext-Policy ABE Users in the system have attributes; receives a key (or “key bundle”) from an authority for its set of attributes Ciphertext contains a policy (a boolean predicate over the attribute space) If a user’ s attribute set satisfies the policy, can use its key bundle to decrypt the ciphertext Multiple users cannot pool their attributes together Application: End-to-End privacy in Attribute-Based Messaging 9

  33. Key-Policy ABE 10

  34. Key-Policy ABE Attributes will be assigned to a ciphertext (when creating the ciphertext) 10

  35. Key-Policy ABE Attributes will be assigned to a ciphertext (when creating the ciphertext) Policies will be assigned to users/keys by an authority (who creates the keys) 10

  36. Key-Policy ABE Attributes will be assigned to a ciphertext (when creating the ciphertext) Policies will be assigned to users/keys by an authority (who creates the keys) A key can decrypt only those ciphertexts whose attributes satisfy the policy 10

  37. Key-Policy ABE Attributes will be assigned to a ciphertext (when creating the ciphertext) Policies will be assigned to users/keys by an authority (who creates the keys) A key can decrypt only those ciphertexts whose attributes satisfy the policy E.g. Applications 10

  38. Key-Policy ABE Attributes will be assigned to a ciphertext (when creating the ciphertext) Policies will be assigned to users/keys by an authority (who creates the keys) A key can decrypt only those ciphertexts whose attributes satisfy the policy E.g. Applications Fuzzy IBE: use a policy that allows receiver’ s ID to be slightly different from the one in the policy 10

  39. Key-Policy ABE Attributes will be assigned to a ciphertext (when creating the ciphertext) Policies will be assigned to users/keys by an authority (who creates the keys) A key can decrypt only those ciphertexts whose attributes satisfy the policy E.g. Applications Fuzzy IBE: use a policy that allows receiver’ s ID to be slightly different from the one in the policy Audit log inspection: grant auditor authority to read only messages with certain attributes 10

  40. A KP-ABE Scheme 11

  41. A KP-ABE Scheme A construction that supports “linear policies” 11

  42. A KP-ABE Scheme A construction that supports “linear policies” Policy corresponds to a (monotonic) access structure (sets of attributes that when pooled satisfy the policy) 11

  43. A KP-ABE Scheme A construction that supports “linear policies” Policy corresponds to a (monotonic) access structure (sets of attributes that when pooled satisfy the policy) Linear: Matrix L with each row labeled by an attribute, such that 11

  44. A KP-ABE Scheme A construction that supports “linear policies” Policy corresponds to a (monotonic) access structure (sets of attributes that when pooled satisfy the policy) Linear: Matrix L with each row labeled by an attribute, such that a set of attributes S satisfies the policy iff there is a vector v such that v.L=[1 1 ... 1] 11

  45. A KP-ABE Scheme A construction that supports “linear policies” Policy corresponds to a (monotonic) access structure (sets of attributes that when pooled satisfy the policy) Linear: Matrix L with each row labeled by an attribute, such that a set of attributes S satisfies the policy iff there is a vector v such that v.L=[1 1 ... 1] and, labels corresponding to non-zero entries of v are all contained in S 11

  46. A KP-ABE Scheme A construction that supports “linear policies” Policy corresponds to a (monotonic) access structure (sets of attributes that when pooled satisfy the policy) Linear: Matrix L with each row labeled by an attribute, such that a set of attributes S satisfies the policy iff there is a vector v such that v.L=[1 1 ... 1] and, labels corresponding to non-zero entries of v are all contained in S Linear algebra over some finite field (e.g. GF(p) ) 11

  47. A KP-ABE Scheme A construction that supports “linear policies” Policy corresponds to a (monotonic) access structure (sets of attributes that when pooled satisfy the policy) Linear: Matrix L with each row labeled by an attribute, such that a set of attributes S satisfies the policy iff there is a vector v such that v.L=[1 1 ... 1] and, labels corresponding to non-zero entries of v are all contained in S Linear algebra over some finite field (e.g. GF(p) ) For efficiency need a small matrix 11

  48. Example of a “Linear Policy” 12

  49. Example of a “Linear Policy” Consider this policy, over 7 attributes 12

  50. Example of a “Linear Policy” Consider this policy, over 7 attributes OR AND AND AND OR 12

  51. Example of a “Linear Policy” Consider this policy, over 7 attributes OR L: AND AND AND OR 12

  52. Example of a “Linear Policy” Consider this policy, over 7 attributes OR L: 0 1 1 1 AND AND 1 0 0 0 AND 1 1 0 1 0 0 1 0 OR 1 1 1 0 1 1 1 0 0 0 0 1 12

  53. Example of a “Linear Policy” Consider this policy, over 7 attributes OR L: 0 1 1 1 AND AND 1 0 0 0 AND 1 1 0 1 0 0 1 0 OR 1 1 1 0 1 1 1 0 0 0 0 1 Can allow threshold gates too 12

  54. A KP-ABE Scheme 13

  55. A KP-ABE Scheme MPK: g, Y=e(g,g) y , T = (g t1 ,..., g tn ) (n attributes) 13

  56. A KP-ABE Scheme MPK: g, Y=e(g,g) y , T = (g t1 ,..., g tn ) (n attributes) MSK: t a for each attribute 13

  57. A KP-ABE Scheme MPK: g, Y=e(g,g) y , T = (g t1 ,..., g tn ) (n attributes) MSK: t a for each attribute Enc(m,A;s) = ( A, { T as } a ∈ A , M.Y s ) 13

  58. A KP-ABE Scheme MPK: g, Y=e(g,g) y , T = (g t1 ,..., g tn ) (n attributes) MSK: t a for each attribute Enc(m,A;s) = ( A, { T as } a ∈ A , M.Y s ) SK for policy L (with d rows): Let u=(u 1 ... u d ) s.t. Σ i u i = y. For each row i, let x i = <L i ,u>/t label(i) . Let Key = { g xi } i=1 to d 13

  59. A KP-ABE Scheme MPK: g, Y=e(g,g) y , T = (g t1 ,..., g tn ) (n attributes) MSK: t a for each attribute Enc(m,A;s) = ( A, { T as } a ∈ A , M.Y s ) SK for policy L (with d rows): Let u=(u 1 ... u d ) s.t. Σ i u i = y. For each row i, let x i = <L i ,u>/t label(i) . Let Key = { g xi } i=1 to d Dec ( (A, {U a } a ∈ A ,c); {X i } row i ) : Get Y s = Π i:label(i) ∈ A e(U label(i) ,X i ) vi where v = [v 1 ... v d ] s.t. v i =0 if label(i) ∉ A, and vL=[1...1] 13

  60. A KP-ABE Scheme MPK: g, Y=e(g,g) y , T = (g t1 ,..., g tn ) (n attributes) MSK: t a for each attribute Enc(m,A;s) = ( A, { T as } a ∈ A , M.Y s ) SK for policy L (with d rows): Let u=(u 1 ... u d ) s.t. Σ i u i = y. For each row i, let x i = <L i ,u>/t label(i) . Let Key = { g xi } i=1 to d Dec ( (A, {U a } a ∈ A ,c); {X i } row i ) : Get Y s = Π i:label(i) ∈ A e(U label(i) ,X i ) vi where v = [v 1 ... v d ] s.t. v i =0 if label(i) ∉ A, and vL=[1...1] CPA security based on Decisional-BDH 13

  61. A KP-ABE Scheme MPK: g, Y=e(g,g) y , T = (g t1 ,..., g tn ) (n attributes) MSK: t a for each attribute Enc(m,A;s) = ( A, { T as } a ∈ A , M.Y s ) SK for policy L (with d rows): Let u=(u 1 ... u d ) s.t. Σ i u i = y. For each row i, let x i = <L i ,u>/t label(i) . Let Key = { g xi } i=1 to d Dec ( (A, {U a } a ∈ A ,c); {X i } row i ) : Get Y s = Π i:label(i) ∈ A e(U label(i) ,X i ) vi where v = [v 1 ... v d ] s.t. v i =0 if label(i) ∉ A, and vL=[1...1] CPA security based on Decisional-BDH Choosing a random vector u for each key helps in preventing collusion 13

  62. Predicate Encryption 14

  63. Predicate Encryption Similar to ABE, but the ciphertext hides the attributes/ policy 14

  64. Predicate Encryption Similar to ABE, but the ciphertext hides the attributes/ policy Decryption reveals only whether a condition is satisfied by the ciphertext, and if it is, reveals the message too 14

  65. Predicate Encryption Similar to ABE, but the ciphertext hides the attributes/ policy Decryption reveals only whether a condition is satisfied by the ciphertext, and if it is, reveals the message too e.g.: ciphertext contains a vector c, and key a vector d. Predicate: whether <c,d> = 0 or not 14

  66. Predicate Encryption Similar to ABE, but the ciphertext hides the attributes/ policy Decryption reveals only whether a condition is satisfied by the ciphertext, and if it is, reveals the message too e.g.: ciphertext contains a vector c, and key a vector d. Predicate: whether <c,d> = 0 or not A building block for other predicates 14

  67. Predicate Encryption Similar to ABE, but the ciphertext hides the attributes/ policy Decryption reveals only whether a condition is satisfied by the ciphertext, and if it is, reveals the message too e.g.: ciphertext contains a vector c, and key a vector d. Predicate: whether <c,d> = 0 or not A building block for other predicates Constructions using stronger (“non-standard”) assumptions 14

  68. Attribute-Based Signatures 15

  69. Attribute-Based Signatures “Claim-and-endorse”: Claim to have attributes satisfying a certain policy, and sign a message 15

  70. Attribute-Based Signatures “Claim-and-endorse”: Claim to have attributes satisfying a certain policy, and sign a message Soundness: can’ t forge, even by colluding 15

  71. Attribute-Based Signatures “Claim-and-endorse”: Claim to have attributes satisfying a certain policy, and sign a message Soundness: can’ t forge, even by colluding Hiding: Verification without learning how the policy was satisfied 15

  72. Attribute-Based Signatures “Claim-and-endorse”: Claim to have attributes satisfying a certain policy, and sign a message Soundness: can’ t forge, even by colluding Hiding: Verification without learning how the policy was satisfied Also unlinkable: cannot link multiple signatures as originating from the same signer 15

Recommend


More recommend