Question: The ` getPrime ` function imported above takes as input an integer ` N ` and as output returns a random ` N ` -

The `getPrime` function imported above takes as input an integer `N` and as output returns a random `N`-bit prime number. (For example, `37=32+4+1` written in binary is `100101`, which is 6 digits, so `37` is a 6-bit prime number. You can verify this by evaluating `to_base_b(37,2)` and checking that the resulting list is length 6. The `from_base_b` function goes in the opposite direction.)
* Choose a prime `p0` using the `getPrime` function. (See the next few instructions to help you decide how large the prime should be.)
* Find a generator `g0` for $(\mathbb{Z}_{p_0})^{*}$.(Hint. Use the `n_order` function that we imported from SymPy. Call `help(n_order)` to see how this function works. What order do we need to have a generator? You will have to do some guessing-and-checking (or better, use a `for` loop, calling `break` when you've found a generator), but it shouldn't take many guesses before you find a generator.)
* Call `naive_dlog(g0,0, p0)`, and time how long it takes using `%%time` at the top of the cell. We already know that no discrete logarithm exists in this case (why?), so the point of this is just to see how long the naive discrete logarithm takes to run in the worst-case scenario.
* We want a prime for which this naive discrete logarithm calculation takes 1-4 seconds. If your prime takes an amount of time outside of this range, then change the values of `p0` and `g0` above until you find values for which it takes 1-4 seconds.
* Again using the getPrime function, find a prime `p` which is `20` bits larger (add, don't multiply) than the prime `p0` you found above.
* As above, find a generator `g` for $(\mathbb{Z}_{p})^{*}$.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!