Question: Write a program where you implement Modular Exponentiation (ME) using the square and multiply approach as a function which is called in main. ME calculates

Write a program where you implement Modular Exponentiation (ME) using the square and multiply

approach as a function which is called in main. ME calculates a^k mod n. The program should get values

for a, k and n from the user. This code requires two steps. First k must be converted to a binary

representation K consisting of a list of 0s and 1s. Second, Modular Exponentiation must be performed

using a, n and K[] as arguments.

procedure

BinaryK(k)

K = empty list //hint: make K a vector

tmp = k

i = 0

while tmp > 0

add y mod 2 to K //hint: use pushback

tmp = (tmp-K[i])/2

i++

return K

procedure

ModularExpo(a, K, n)

if n = 1

return 0

b = 1

if k = 0

return b

A = a

if K[0] = 1

b = a

for i = 1 to length(K)-1

A = A*A mod n

if K[i] = 1

b = A*b mod n

return b

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!