Week 12 (rev. 3) |
Professor M. J. Fischer | April 12 & 14, 2005 |
Alice | Bob | ||
1. | Choose random bit bA ∈ {0,1} | → bA. | |
2. | ← bB | Choose random bit bB ∈ {0,1}. | |
3. | Coin outcome is b = bA ⊕bB. | Coin outcome is b = bA ⊕bB. |
Alice | Bob | ||
1. | Choose random bit bA ∈ {0,1}. | Choose random bit bB ∈ {0,1}. | |
2. | commit(bA). | ↔ | commit(bB). |
3. | open(cA). | ↔ | open(cB). |
4. | Coin outcome is b = bA ⊕bB. | Coin outcome is b = bA ⊕bB. |
Alice | Bob | ||
1. | Choose RSA key pair A with modulus n=pq. | Choose RSA key pair B with modulus n=pq. | |
2. | Choose random r ∈ Z(n−1)/2. | ||
Let mi = 2r+i, for i ∈ {0,1}. | |||
Let ci = EA(mi) for i ∈ {0,1}. | |||
Let C = {c0, c1}. | → C | Choose ca ∈ C. | |
3. | ← cab | Let cab = EB(ca). | |
4. | Let cb = DA(cab). | → cb | |
5. | Let m = DB(cb). | ||
Let i = m mod 2. | |||
Let r = (m−i)/2. | |||
If i=0 outcome is "tails". | |||
If i=1 outcome is "heads". | |||
← B | |||
6. | Let m = DB(cb). | ||
Check m ∈ {m0, m1}. | |||
If m=m0 outcome is "tails". | |||
If m=m1 outcome is "heads". | |||
→ A | |||
7. | Let c′a = C − { ca }. | ||
Let m′ = DA( c′a ). | |||
Let i′ = m′ mod 2. | |||
Let r′ = (m′−i′)/2. | |||
Check that i′ ≠ i and r′ = r. |
Alice | Bob | ||
1. | Secret s. | ||
Choose primes p, q, and let n = pq. | |||
Generate RSA public key (e, n). | |||
Compute c = E(e,n)(s). | |||
→ (e, n, c) | |||
2. | Choose random x ∈ Z∗n. | ||
← a | Compute a = x2 mod n. | ||
3. | Check a ∈ QRn. | ||
Choose y at random from among the 4 square roots of a mod n. | |||
→ y | |||
4. | Check y2 ≡ a mod n. | ||
If y \not ≡ ±x mod n, use x, y to factor n and decrypt c to obtain s. |
Alice | Bob | ||
1. | Choose two PKS key pairs (e0, d0) and (e1, d1). | ||
→ e0, e1 | |||
2. | Generate random key k for a symmetric cryptosystem ([^(E)], [^(D)]). | ||
Choose e ∈ {e0,e1}. | |||
← c | Compute c = Ee(k). | ||
3. | Compute ki = Ddi(c) for i=0, 1. | ||
Compute ci = [^(E)]ki(si) for i=0, 1. | → c0, c1 | ||
4. | Compute si = [^(D)]k(ci) for i=0, 1. | ||
One of the si is correct and the other is garbage. |
|
|
|
|
|
|
|
|
|
To Q(x): | |
1. | Let s2 = x2 mod n. |
2. | Let si = si−12 mod n, for i=3, …, k. |
3. | Let b1 = lsb(x). |
4. | Let bi = lsb(si), for i=2, …, k. |
5. | Let c = A(b2, …, bk). |
6. | If c = b1 then output 1; else output 0. |
|
|
|