Question
I need help with this question: - In computer science, we often struggle to find efficient algorithms for problems, so we conjecture that they are
I need help with this question:
- In computer science, we often struggle to find efficient algorithms for problems, so we conjecture that they are hard. As we saw with graph isomorphisms, assuming this allows us to get zero-knowledge schemes. Let's use another common conjecture to form another zero-knowledge proof scheme. For the purposes of this section, p is a very large prime number.
- Definition 4.1. An integer g (mod p) is called a generator if every number in {1, 2, . . . , p − 1} can be written as ga (mod p) for some a.
- Here, in the modular arithmetic setting, we charge costs a little differently: adding or multiplying two numbers mod p costs $1. Making random numbers still costs the same. An algorithm is efficient in modular arithmetic if it's a polynomial in log2 p, the number of binary digits in p.
- Question (Already been answered)- Devise an efficient algorithm for computing ga (mod p).
- Answer -
def square_and_multiply(g, a, p): result = 1 binary_a = bin(a) [2:] for bit in binary_a: result = (result * result) % p if bit == '1': result = (result g) % p return result
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Question 2 To show that given a fixed number N randomly picking R in 0 1 p 1 then N R mod p is equal ...Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started