YALE UNIVERSITY
DEPARTMENT OF COMPUTER SCIENCE
CPSC 367: Cryptography and Computer Security | Handout #8 | |
Professor M. J. Fischer | April 15, 2019 | |
Homework Assignment 8
Due on Thursday, April 25, 2019.
Instructions Work the problems below, prepare your answers in electronic form, and submit your solutions to Canvas as usual. As always, you must properly cite all resources that you use to solve the problems.
Problem 1: Zero knowledge (4 points)
Alice used a zero knowledge proof of knowledge of a square root to convince Bob that her publicly posted number v is a quadratic residue modulo n, where n is the product of distinct odd primes. (n is also public.) In the course of their conversation, they generated a transcript of 20 triples (xi,bi,yi), i = 1,…,20.
Bob is excited to learn that Alice was telling the truth when she told him that not only is v a quadratic residue, but she also knows a square root of it. He tells his friend Charlie that Alice really was truthful and that Charlie should trust Alice. To convince Charlie, Bob forwards him a copy of the transcript.
Charlie isn’t convinced of anything and still doesn’t trust Alice. Why not? Explain!
[Hint: Show how Bob could have constructed the transcript with knowing Alice’s secret (and without even
talking to Alice).]
Problem 2: Cryptographically strong PRSG (3 points)
Happy’s roommate, Naive Nelson, is building a pseudorandom sequence generator. He has found a PRSG G that takes a 128-bit seed s and outputs a bit string x of length 1000. Naive wants to generate bit strings of length ℓ = 100,000, so he creates a new generator G′ that works in stages. His idea is to use G repeatedly, obtaining 1000 bits each time. To avoid getting repetitions of the same 1000-bit string, he uses the last 128 bits of each block as a seed for the next block.
Here is his algorithm for computing G′(s):
In this notation, λ denotes the empty string, || denotes concatenation, and last(k,x) returns the last k bits of x.
Explain in words why G′(s) is not cryptographically strong.
[Hint: Describe how knowing some of the pseudorandom output bits allows the rest to be easily
predicted.]
Problem 3: Shamir Secret Splitting (13 points)
Alice is leaving for a year of study abroad. She has surprising news that she wants to share with 12 friends, but she doesn’t want to tell them before she leaves home since she would feel embarrassed to be present when they learn her secret. Although she trusts her friends, they are naturally curious. Moreover, she’s concerned that the parents of two of her friends might discover their shares, and she really doesn’t want the parents to find out what her surprise is.
She decides to split her secret into 12 shares and give one to each friend so that any three or more friends can cooperate to discover the secret, but two are not enough. She uses the (τ,k) threshold scheme that she learned in crypto and distributes the shares before leaving. Unfortunately, unknown to everyone, one of the shares gets corrupted in transit.
By the time she leaves, three of her friends have gone home to Santa Monica, four have gone on a trip to Las Vegas, and the remaining five are still in New Haven.
Each of the three groups of friends then gets together in person and uses the algorithm presented in class to recover the secret.