MATH 470 Lecture 18

From Notes
Jump to navigation Jump to search

« previous | Tuesday, March 26, 2013 | next »

Begin Exam 2 content


Secret Sharing

A (T,W)-threshhold scheme is a way to share a message among W participants so that any subset of T participants can recover the message, but no smaller subset.

Small example: (2,2)-threshhold schemes have been in various movies involving nuclear missiles (e.g. War Games)

Another example: (3,55)-threshhold scheme could protect the password to some chocolate

In 1979, Adi Shamir found following scheme to hide a message M

  1. Pick a prime pmax(W,M)
  2. Pick t1 random numbers s1,,sT1 in /p
  3. Define p(x)=M+s1x++sT1xT1
  4. Pick distinct random numbers x,,xw, and to the ith participant, give (xi,p(xi))


Idea: n points in Euclidean space define a unique n-degree polynomial curve.

Lemmas

  1. No subset of T1 participants can recover M.
  2. Any subset of T participants can recover M.


Proof. Take, say, the first T participants (x1,p(x1)),,(xT,p(xT)). We get

M+s1x1++sT1x1T1=p(x1)M+s1xT++sT1xTT1=p(xT)

Which is a T×T linear system of equations, so we can solve

[1x1x1T11xTxTT1][Ms1sT1]=[p(x1)p(xT)]


Claim: The preceding matrix has a nonzero determinant and thus we have a unique solution!

|1x1x1T11xTxTT1|=ni>j1(xixj)

This matrix is a van Der Monde matrix.

Back to ChOcOlAtE

p=131T=3W=55

So we need to solve [1x1x121x2x221x3x32][Ms1s2]=[p(x1)p(x2)p(x3)]

For x=12,38,2 and p(x)=96,25,17, we get M=23

Spoils of the Hunt


Digital Signatures

In our Iran/UN example, we used the RSA digital signature. We also have El-Gamal and DSA (which is still used today).

If Alice needs to sign a message M,

  1. Alice sets up as in RSA (p,q,n,e,d) and publishes (e,n) and keeps (d,p,q) private.
  2. The signature Md(modn) is published

Any user can verify the signature via

(Md)e=m(modn)
Note: In practice, digital signatures are slow, so usually, only a short digest of the message is signed. This is one setting where hash functions enter.


El Gamal

To sign a message M

  1. Alice sets up as in El Gamal (p,α,a,β=αa) and picks a random k(/(p1))*
  2. Alice computes r=αk(modp) and
  3. s=k1(Mar)(modp1)
  4. Alice sends (M,r,s)

To verify, the user must:

  1. download the public part (p,α,β) and then
  2. Accept if βrrsαM(modp).

Verification works because

βrrsαm(modp)(αa)r(αk)sαm(modp)αar+ksαm(modp)αar+k(k1(mar))αm(modp)αar+marαm(modp)

DSA

Adopmed by NIST in 1994

  1. Alice finds a 160-bit prime q and a larger prime p with q(p1)
  2. Alice picks a primitive root g mod p and sets α=gp1q(modp)
  3. Alice picks a secret a{1,,q1} and calculates β=αa
  4. Pick random k{1,,q2}
  5. Compute r=(αk(modp))(modq)
  6. Compute s=k1(m+ar)(modq)
  7. Signature is (r,s)

To check signature,

  1. compute u1=s1m(modq) and u2=s1r(modq)
  2. Accept signature iff (αu1βu2(modp))r(modq)