applied cryptography
play

Applied Cryptography Lecture 1 Applied Cryptography Lecture 1 Our - PowerPoint PPT Presentation

Applied Cryptography Lecture 1 Applied Cryptography Lecture 1 Our first encounter with secrecy: Secret-Sharing Secrecy Secrecy Cryptography is all about controlling access to information Access to learning and/or influencing


  1. Secret-Sharing More general secret-sharing Allow more than two parties (how?) Privileged subsets of parties should be able to reconstruct the secret (not necessarily just the entire set of parties) Very useful Direct applications (distributed storage of data or keys) Important component in other cryptographic constructions Amplifying secrecy of various primitives Secure multi-party computation Attribute-Based Encryption Leakage resilience ...

  2. Threshold Secret-Sharing

  3. Threshold Secret-Sharing (n,t)-secret-sharing

  4. Threshold Secret-Sharing (n,t)-secret-sharing Divide a message m into n shares s 1 ,...,s n , such that any t shares are enough to reconstruct the secret

  5. Threshold Secret-Sharing (n,t)-secret-sharing Divide a message m into n shares s 1 ,...,s n , such that any t shares are enough to reconstruct the secret Up to t-1 shares should have no information about the secret

  6. Threshold Secret-Sharing (n,t)-secret-sharing Divide a message m into n shares s 1 ,...,s n , such that any t shares are enough to reconstruct the secret Up to t-1 shares should have no information about the secret i.e., say, (s 1 ,...,s t-1 ) identically distributed for every m in the message space

  7. Threshold Secret-Sharing (n,t)-secret-sharing Divide a message m into n shares s 1 ,...,s n , such that any t shares are enough to reconstruct the secret Up to t-1 shares should have no information about the secret i.e., say, (s 1 ,...,s t-1 ) identically distributed for every m in the message space our previous example: (2,2) secret-sharing

  8. Threshold Secret-Sharing

  9. Threshold Secret-Sharing Construction: (n,n) secret-sharing

  10. Threshold Secret-Sharing Construction: (n,n) secret-sharing Message-space = share-space = G, a group

  11. Threshold Secret-Sharing Construction: (n,n) secret-sharing Message-space = share-space = G, a group e.g. G = Z 2 (group of bits, with xor as the group operation)

  12. Threshold Secret-Sharing Construction: (n,n) secret-sharing Message-space = share-space = G, a group e.g. G = Z 2 (group of bits, with xor as the group operation) or, G = Z 2 d (group of d-bit strings)

  13. Threshold Secret-Sharing Construction: (n,n) secret-sharing Message-space = share-space = G, a group e.g. G = Z 2 (group of bits, with xor as the group operation) or, G = Z 2 d (group of d-bit strings) or, G = Z p (group of integers mod p)

  14. Threshold Secret-Sharing Construction: (n,n) secret-sharing Message-space = share-space = G, a group e.g. G = Z 2 (group of bits, with xor as the group operation) or, G = Z 2 d (group of d-bit strings) or, G = Z p (group of integers mod p) Share(M):

  15. Threshold Secret-Sharing Construction: (n,n) secret-sharing Message-space = share-space = G, a group e.g. G = Z 2 (group of bits, with xor as the group operation) or, G = Z 2 d (group of d-bit strings) or, G = Z p (group of integers mod p) Share(M): Pick s 1 ,...,s n-1 uniformly at random from G

  16. Threshold Secret-Sharing Construction: (n,n) secret-sharing Message-space = share-space = G, a group e.g. G = Z 2 (group of bits, with xor as the group operation) or, G = Z 2 d (group of d-bit strings) or, G = Z p (group of integers mod p) Share(M): Pick s 1 ,...,s n-1 uniformly at random from G Let s n = M - (s 1 + ... + s n-1 )

  17. Threshold Secret-Sharing Construction: (n,n) secret-sharing Message-space = share-space = G, a group e.g. G = Z 2 (group of bits, with xor as the group operation) or, G = Z 2 d (group of d-bit strings) or, G = Z p (group of integers mod p) Share(M): Pick s 1 ,...,s n-1 uniformly at random from G Let s n = M - (s 1 + ... + s n-1 ) Reconstruct(s 1 ,...,s n ): M = s 1 + ... + s n

  18. Threshold Secret-Sharing Construction: (n,n) secret-sharing Message-space = share-space = G, a group e.g. G = Z 2 (group of bits, with xor as the group operation) or, G = Z 2 d (group of d-bit strings) or, G = Z p (group of integers mod p) Share(M): Pick s 1 ,...,s n-1 uniformly at random from G Let s n = M - (s 1 + ... + s n-1 ) Reconstruct(s 1 ,...,s n ): M = s 1 + ... + s n Claim: This is an (n,n) secret-sharing scheme [Why?]

  19. Threshold Secret-Sharing Construction: (n,n) secret-sharing Message-space = share-space = G, a group e.g. G = Z 2 (group of bits, with xor as the group operation) or, G = Z 2 d (group of d-bit strings) or, G = Z p (group of integers mod p) Additive Secret-Sharing Share(M): Pick s 1 ,...,s n-1 uniformly at random from G Let s n = M - (s 1 + ... + s n-1 ) Reconstruct(s 1 ,...,s n ): M = s 1 + ... + s n Claim: This is an (n,n) secret-sharing scheme [Why?]

  20. F O O R Additive Secret-Sharing: Proof P Share(M): Pick s 1 ,...,s n-1 uniformly at random from G Let s n = M - (s 1 + ... + s n-1 ) Reconstruct(s 1 ,...,s n ): M = s 1 + ... + s n Claim: Upto n-1 shares give no information about M Proof: Let T ⊆ {1,...,n}, |T| = n-1. We shall show that { s i } i ∈ T is distributed the same way (in fact, uniformly) irrespective of what M is. For concreteness consider T = {2,...,n}. Fix any (n-1)-tuple of elements in G, (g 1 ,...,g n-1 ) ∈ G n-1 . To prove Pr[ (s 2 ,...,s n )=(g 1 ,...,g n-1 ) ] is independent of M. Fix any M. (s 2 ,...,s n ) = (g 1 ,...,g n-1 ) ⇔ (s 2 ,...,s n-1 ) = (g 1 ,...,g n-2 ) and s 1 = M-(g 1 +...+g n-1 ). So Pr[ (s 2 ,...,s n )=(g 1 ,...,g n-1 ) ] = Pr[ (s 1 ,...,s n-1 )=(M-(g 1 +...+g n-1 ), g 1 ,...,g n-2 ) ] But Pr[(s 1 ,...,s n-1 )=(M-(g 1 +...+g n-1 ), g 1 ,...,g n-2 )] = 1/|G| n-1 , since (s 1 ,...,s n-1 ) are picked uniformly at random Hence Pr[ (s 2 ,...,s n )=(g 1 ,...,g n-1 ) ] = 1/|G| n-1 , irrespective of M. ������������� �

  21. Threshold Secret-Sharing

  22. Threshold Secret-Sharing Construction: (n,2) secret-sharing

  23. Threshold Secret-Sharing Construction: (n,2) secret-sharing Message-space = share-space = F , a field (e.g. integers mod a prime, F P )

  24. Threshold Secret-Sharing Construction: (n,2) secret-sharing Message-space = share-space = F , a field (e.g. integers mod a prime, F P ) n distinct, non-0 field elements

  25. Threshold Secret-Sharing Construction: (n,2) secret-sharing Message-space = share-space = F , a field (e.g. integers mod a prime, F P ) Share(M): pick random r. Let s i = r ⋅ i + M (for i=1,...,n < |F|) n distinct, non-0 field elements

  26. Threshold Secret-Sharing Construction: (n,2) secret-sharing Message-space = share-space = F , a field (e.g. integers mod a prime, F P ) Share(M): pick random r. Let s i = r ⋅ i + M (for i=1,...,n < |F|) n distinct, non-0 field elements Since i -1 exists, exactly one solution for r ⋅ i+M=d, for every value of d

  27. Threshold Secret-Sharing Construction: (n,2) secret-sharing Message-space = share-space = F , a field (e.g. integers mod a prime, F P ) Share(M): pick random r. Let s i = r ⋅ i + M (for i=1,...,n < |F|) Reconstruct(s i , s j ): r = (s i -s j )/(i-j); M = s i - r i n distinct, non-0 field elements Since i -1 exists, exactly one solution for r ⋅ i+M=d, for every value of d

  28. Threshold Secret-Sharing Construction: (n,2) secret-sharing Message-space = share-space = F , a field (e.g. integers mod a prime, F P ) Share(M): pick random r. Let s i = r ⋅ i + M (for i=1,...,n < |F|) Reconstruct(s i , s j ): r = (s i -s j )/(i-j); M = s i - r i n distinct, non-0 field elements Each s i by itself is uniformly distributed, irrespective of M [Why?] Since i -1 exists, exactly one solution for r ⋅ i+M=d, for every value of d

  29. Threshold Secret-Sharing Construction: (n,2) secret-sharing Message-space = share-space = F , a field (e.g. integers mod a prime, F P ) Share(M): pick random r. Let s i = r ⋅ i + M (for i=1,...,n < |F|) Reconstruct(s i , s j ): r = (s i -s j )/(i-j); M = s i - r i n distinct, non-0 field elements Each s i by itself is uniformly distributed, irrespective of M [Why?] Since i -1 exists, exactly one solution for r ⋅ i+M=d, “Geometric” interpretation for every value of d

  30. Threshold Secret-Sharing Construction: (n,2) secret-sharing Message-space = share-space = F , a field (e.g. integers mod a prime, F P ) Share(M): pick random r. Let s i = r ⋅ i + M (for i=1,...,n < |F|) Reconstruct(s i , s j ): r = (s i -s j )/(i-j); M = s i - r i n distinct, non-0 field elements Each s i by itself is uniformly distributed, irrespective of M [Why?] Since i -1 exists, exactly one solution for r ⋅ i+M=d, “Geometric” interpretation for every value of d 0 1 2 3 4 5 6

  31. Threshold Secret-Sharing Construction: (n,2) secret-sharing Message-space = share-space = F , a field (e.g. integers mod a prime, F P ) Share(M): pick random r. Let s i = r ⋅ i + M (for i=1,...,n < |F|) Reconstruct(s i , s j ): r = (s i -s j )/(i-j); M = s i - r i n distinct, non-0 field elements Each s i by itself is uniformly distributed, irrespective of M [Why?] Since i -1 exists, exactly one solution for r ⋅ i+M=d, “Geometric” interpretation for every value of d Sharing picks a random “line” y = f(x), such that f(0)=M. Shares s i = f(i). 0 1 2 3 4 5 6

  32. Threshold Secret-Sharing Construction: (n,2) secret-sharing Message-space = share-space = F , a field (e.g. integers mod a prime, F P ) Share(M): pick random r. Let s i = r ⋅ i + M (for i=1,...,n < |F|) Reconstruct(s i , s j ): r = (s i -s j )/(i-j); M = s i - r i n distinct, non-0 field elements Each s i by itself is uniformly distributed, irrespective of M [Why?] Since i -1 exists, exactly one solution for r ⋅ i+M=d, “Geometric” interpretation for every value of d Sharing picks a random “line” y = f(x), such that f(0)=M. Shares s i = f(i). s i is independent of M: exactly one line passing 0 1 2 3 4 5 6 through (i,s i ) and (0,M’) for each secret M’

  33. Threshold Secret-Sharing Construction: (n,2) secret-sharing Message-space = share-space = F , a field (e.g. integers mod a prime, F P ) Share(M): pick random r. Let s i = r ⋅ i + M (for i=1,...,n < |F|) Reconstruct(s i , s j ): r = (s i -s j )/(i-j); M = s i - r i n distinct, non-0 field elements Each s i by itself is uniformly distributed, irrespective of M [Why?] Since i -1 exists, exactly one solution for r ⋅ i+M=d, “Geometric” interpretation for every value of d Sharing picks a random “line” y = f(x), such that f(0)=M. Shares s i = f(i). s i is independent of M: exactly one line passing 0 1 2 3 4 5 6 through (i,s i ) and (0,M’) for each secret M’ But can reconstruct the line from two points!

  34. Threshold Secret-Sharing Construction: (n,2) secret-sharing Message-space = share-space = F , a field (e.g. integers mod a prime, F P ) Share(M): pick random r. Let s i = r ⋅ i + M (for i=1,...,n < |F|) Reconstruct(s i , s j ): r = (s i -s j )/(i-j); M = s i - r i n distinct, non-0 field elements Each s i by itself is uniformly distributed, irrespective of M [Why?] Since i -1 exists, exactly one solution for r ⋅ i+M=d, “Geometric” interpretation for every value of d Sharing picks a random “line” y = f(x), such that f(0)=M. Shares s i = f(i). s i is independent of M: exactly one line passing 0 1 2 3 4 5 6 through (i,s i ) and (0,M’) for each secret M’ But can reconstruct the line from two points!

  35. F O O R (n,2) Secret-Sharing: Proof P Share(M): pick random r ← F . Let s i = r ⋅ i + M (for i=1,...,n < |F|) Reconstruct(s i , s j ): r = (s i -s j )/(i-j); M = s i - r i Claim: Any one share gives no information about M Proof: For any i ∈ {1,..,n} we shall show that s i is distributed the same way (in fact, uniformly) irrespective of what M is. Consider any g ∈ F . We shall show that Pr[ s i =g ] is independent of M. Fix any M. For any g ∈ F , s i = g ⇔ r ⋅ i + M = g ⇔ r = (g-M) ⋅ i -1 (since i ≠ 0) So, Pr[ s i =g ] = Pr[ r=(g-M) ⋅ i -1 ] = 1/|F|, since r is chosen uniformly at random ��

  36. Threshold Secret-Sharing

  37. Threshold Secret-Sharing (n,t) secret-sharing in a field

  38. Threshold Secret-Sharing (n,t) secret-sharing in a field Generalizing the geometric/algebraic view: instead of lines, use polynomials

  39. Threshold Secret-Sharing Shamir Secret-Sharing (n,t) secret-sharing in a field Generalizing the geometric/algebraic view: instead of lines, use polynomials

  40. Threshold Secret-Sharing Shamir Secret-Sharing (n,t) secret-sharing in a field Generalizing the geometric/algebraic view: instead of lines, use polynomials Share(m): Pick a random degree t-1 polynomial f(X), such that f(0)=M. Shares are s i = f(i).

  41. Threshold Secret-Sharing Shamir Secret-Sharing (n,t) secret-sharing in a field Generalizing the geometric/algebraic view: instead of lines, use polynomials Share(m): Pick a random degree t-1 polynomial f(X), such that f(0)=M. Shares are s i = f(i). Random polynomial with f(0)=M: c 0 + c 1 X + c 2 X 2 +...+ c t-1 X t-1 by picking c 0 =M and c 1 ,...,c t-1 at random.

  42. Threshold Secret-Sharing Shamir Secret-Sharing (n,t) secret-sharing in a field Generalizing the geometric/algebraic view: instead of lines, use polynomials Share(m): Pick a random degree t-1 polynomial f(X), such that f(0)=M. Shares are s i = f(i). Random polynomial with f(0)=M: c 0 + c 1 X + c 2 X 2 +...+ c t-1 X t-1 by picking c 0 =M and c 1 ,...,c t-1 at random. Reconstruct(s 1 ,...,s t ): Lagrange interpolation to find M=c 0

  43. Threshold Secret-Sharing Shamir Secret-Sharing (n,t) secret-sharing in a field Generalizing the geometric/algebraic view: instead of lines, use polynomials Share(m): Pick a random degree t-1 polynomial f(X), such that f(0)=M. Shares are s i = f(i). Random polynomial with f(0)=M: c 0 + c 1 X + c 2 X 2 +...+ c t-1 X t-1 by picking c 0 =M and c 1 ,...,c t-1 at random. Reconstruct(s 1 ,...,s t ): Lagrange interpolation to find M=c 0 Need t points to reconstruct the polynomial. Given t-1 points, there is exactly one polynomial passing through (0,M’) for each M’

  44. Lagrange Interpolation

  45. Lagrange Interpolation Given t distinct points on a degree t-1 polynomial (univariate, over some field of more than t elements), reconstruct the entire polynomial (i.e., find all t co-efficients)

  46. Lagrange Interpolation Given t distinct points on a degree t-1 polynomial (univariate, over some field of more than t elements), reconstruct the entire polynomial (i.e., find all t co-efficients) t variables: c 0 ,...,c t-1 . t equations: 1.c 0 + i.c 1 + i 2 .c 2 + ... i t-1 .c t-1 = s i

  47. Lagrange Interpolation Given t distinct points on a degree t-1 polynomial (univariate, over some field of more than t elements), reconstruct the entire polynomial (i.e., find all t co-efficients) t variables: c 0 ,...,c t-1 . t equations: 1.c 0 + i.c 1 + i 2 .c 2 + ... i t-1 .c t-1 = s i A linear system: W c = s , where W a txt matrix with W i = (1 i i 2 ... i t-1 )

  48. Lagrange Interpolation Given t distinct points on a degree t-1 polynomial (univariate, over some field of more than t elements), reconstruct the entire polynomial (i.e., find all t co-efficients) t variables: c 0 ,...,c t-1 . t equations: 1.c 0 + i.c 1 + i 2 .c 2 + ... i t-1 .c t-1 = s i A linear system: W c = s , where W a txt matrix with W i = (1 i i 2 ... i t-1 ) W is a Vandermonde matrix: invertible

  49. Lagrange Interpolation Given t distinct points on a degree t-1 polynomial (univariate, over some field of more than t elements), reconstruct the entire polynomial (i.e., find all t co-efficients) t variables: c 0 ,...,c t-1 . t equations: 1.c 0 + i.c 1 + i 2 .c 2 + ... i t-1 .c t-1 = s i A linear system: W c = s , where W a txt matrix with W i = (1 i i 2 ... i t-1 ) W is a Vandermonde matrix: invertible c = W -1 s

  50. More General Access Structures

  51. More General Access Structures (n,t)-secret-sharing allowed any t (or more) parties to reconstruct the secret

  52. More General Access Structures (n,t)-secret-sharing allowed any t (or more) parties to reconstruct the secret i.e., “access structure” A = {S: |S| ≥ t }, is the set of all subsets of parties who can reconstruct the secret

  53. More General Access Structures (n,t)-secret-sharing allowed any t (or more) parties to reconstruct the secret i.e., “access structure” A = {S: |S| ≥ t }, is the set of all subsets of parties who can reconstruct the secret In general access structure could be any monotonic set of subsets

  54. More General Access Structures (n,t)-secret-sharing allowed any t (or more) parties to reconstruct the secret i.e., “access structure” A = {S: |S| ≥ t }, is the If S* ∈ A , then for all set of all subsets of parties who can S ⊇ S*, S ∈ A . reconstruct the secret In general access structure could be any monotonic set of subsets

  55. More General Access Structures (n,t)-secret-sharing allowed any t (or more) parties to reconstruct the secret i.e., “access structure” A = {S: |S| ≥ t }, is the If S* ∈ A , then for all set of all subsets of parties who can S ⊇ S*, S ∈ A . reconstruct the secret In general access structure could be any monotonic set of subsets Shamir’ s secret-sharing solves threshold secret-sharing. How about the others?

  56. More General Access Structures

  57. More General Access Structures Idea: For arbitrary monotonic access structure A , there is a “basis” B of minimal sets in A . For each S in B generate an (|S|,|S|) sharing, and distribute them to the members of S.

  58. More General Access Structures Idea: For arbitrary monotonic access structure A , there is a “basis” B of minimal sets in A . For each S in B generate an (|S|,|S|) sharing, and distribute them to the members of S. Works, but very “inefficient”

  59. More General Access Structures Idea: For arbitrary monotonic access structure A , there is a “basis” B of minimal sets in A . For each S in B generate an (|S|,|S|) sharing, and distribute them to the members of S. Works, but very “inefficient” How big is B ? (Say when A is a threshold access structure)

  60. More General Access Structures Idea: For arbitrary monotonic access structure A , there is a “basis” B of minimal sets in A . For each S in B generate an (|S|,|S|) sharing, and distribute them to the members of S. | B | = (n choose t) Works, but very “inefficient” How big is B ? (Say when A is a threshold access structure)

  61. More General Access Structures Idea: For arbitrary monotonic access structure A , there is a “basis” B of minimal sets in A . For each S in B generate an (|S|,|S|) sharing, and distribute them to the members of S. | B | = (n choose t) Works, but very “inefficient” How big is B ? (Say when A is a threshold access structure) Total share complexity = ∑ S ∈ B |S| field elements. (Compare with Shamir’ s scheme: n field elements in all.)

Recommend


More recommend