SLIDE 17 The Feige-Fiat-Shamir Identification Scheme
Setup n = p·q, p and q prime Private to T.A.: p, q s1, . . . , sk∈ Z∗
n
v1, . . . , vk ∋ vi = (si)−2 mod n and (§§) Private to Pat+TA: s1, . . . , sk Public: n, v1, . . . , vk Pat is prob. ptime powerful (§§) card{ vb1
1 vb2 2 · . . . · vbk k
b1, . . . , bk ∈ { 0, 1 } } = 2k
Pat’s Claim: He knows s1, . . . , sk.
Round (Q: What is the purpose of r below?) Pat Chooses r
ran
∈ Z∗
n; computes x = r2 mod n; sends x to Vanna.
Vanna Chooses b1, . . . , bk
ran
∈ { 0, 1 } and sends them to Pat. (Challenge: What is the sq. rt. of x · v−b1
1
· . . . · v−bk
k
?) Pat Computes y = r · sb1
1 · . . . · sbk k (mod n) and sends y to Vanna.
Vanna Checks that x = y2 · vb1
1 · . . . · vbk k (mod n). If not, REJECT.
CLAIM: This is (a) Complete, (b) Sound, and (c) ZK. proof on board
56 / 1
The Feige-Fiat-Shamir Identification Scheme
Setup n = p·q, p and q prime Private to T.A.: p, q s1, . . . , sk∈ Z∗ n v1, . . . , vk ∋ vi = (si)−2 mod n and (§§) Private to Pat+TA: s1, . . . , sk Public: n, v1, . . . , vk Pat is prob. ptime powerful (§§) card{ vb1 1 vb2 2 · . . . · vbk k b1, . . . , bk ∈ { 0, 1 } } = 2k Pat’s Claim: He knows s1, . . . , sk. Round (Q: What is the purpose of r below?) Pat Chooses r ran ∈ Z∗ n; computes x = r2 mod n; sends x to Vanna. Vanna Chooses b1, . . . , bk ran ∈ { 0, 1 } and sends them to Pat. (Challenge: What is the sq. rt. of x · v−b1 1 · . . . · v−bk k ?) Pat Computes y = r · sb1 1 · . . . · sbk k (mod n) and sends y to Vanna. Vanna Checks that x = y2 · vb1 1 · . . . · vbk k (mod n). If not, REJECT. CLAIM: This is (a) Complete, (b) Sound, and (c) ZK. proof on board
2018-11-06
Zero Knowledge Protocols The Feige-Fiat-Shamir Identification Scheme The Feige-Fiat-Shamir Identification Scheme Completeness: Suppose Pat is telling the truth. So y = r · sb1
1 . . . sbk k (mod n) and
y2 · vb1
1 . . . vbk k ∼
= r2 · (sb1
1 )2 . . . (sbk k )2 · vb1 1 . . . vbk k
∼ = r2 · v−b1
1
. . . v−bk
k
· vb1
1 . . . vbk k
∼ = r2 ∼ = x (mod n)
The Feige-Fiat-Shamir Identification Scheme
Setup n = p·q, p and q prime Private to T.A.: p, q s1, . . . , sk∈ Z∗ n v1, . . . , vk ∋ vi = (si)−2 mod n and (§§) Private to Pat+TA: s1, . . . , sk Public: n, v1, . . . , vk Pat is prob. ptime powerful (§§) card{ vb1 1 vb2 2 · . . . · vbk k b1, . . . , bk ∈ { 0, 1 } } = 2k Pat’s Claim: He knows s1, . . . , sk. Round (Q: What is the purpose of r below?) Pat Chooses r ran ∈ Z∗ n; computes x = r2 mod n; sends x to Vanna. Vanna Chooses b1, . . . , bk ran ∈ { 0, 1 } and sends them to Pat. (Challenge: What is the sq. rt. of x · v−b1 1 · . . . · v−bk k ?) Pat Computes y = r · sb1 1 · . . . · sbk k (mod n) and sends y to Vanna. Vanna Checks that x = y2 · vb1 1 · . . . · vbk k (mod n). If not, REJECT. CLAIM: This is (a) Complete, (b) Sound, and (c) ZK. proof on board
2018-11-06
Zero Knowledge Protocols The Feige-Fiat-Shamir Identification Scheme The Feige-Fiat-Shamir Identification Scheme Soundness: Suppose Pat is lying. By (§§) { x · v−b1
1
· . . . · v−bk
k
(mod n) : b1, . . . , bk ∈ { 0, 1 } } = 2k So Pat has a 1 in 2k chance of guessing correctly.
Q: Why is (§§) needed?
ZK: Another probability calculation.
The ID Scheme
The T.A. I = Pat’s name, birthday, . . . H = a public hash function For j = 1, 2, . . . , m do: // m ≈ 4 · k Check if H(I||j) has a square root mod n. If so, make H(I||j) one of the vi’s. Make I, n, j1, . . . , jk public. // vi = H(I||ji) Send Pat s1, . . . , sk // Goes into Pat’s smart card Throw away p and q. // Each person gets a different // p and q. Pat Submits his smart card to an Autoteller (Vanna). Vanna Downloads Pat’s I, n, j1, . . . , jk. Goes through several rounds of the ZK protocol. If she accepts, she lets Pat withdraw money. Eve Can watch the whole exchange, but learns nothing about s1, . . . , sk.
57 / 1