Suppose that user A wishes to set up a connection with user B and use a secret key to encrypt messages on that connection. The two users, each is going to generates a one-time private key and calculates a public key. These public values, together with global public values for q and α, are stored in some central directory. Write a program in python and address the following requirements.

a. [3%] Generate two random numbers as the one-time private keys for users A and B using combined linear congruential generator considering m1 2,147,483,642, a1 = 450, m2 = 2,147,483,423, a2 = 234. For Y0,1, generate a random number between [1,2,147,483,641] and for Y0,2, generate a random number between [1, 2,147,483,422]. Use modulo operation to generate the random numbers in the range of 0 and 500. (For a new connection, new private keys should be generated)

b. [3%] Using the Diffie-Hellman algorithm and the private keys generated in (a), generate the secret key for users A and B. consider the prime number q = 353 and a primitive root of 353, in this case is α= 3.

c. [3%] Suppose that user A wishes to send a text file to user B. Break the plaintext into 64 bits blocks and encrypt the last 64 bits block of the plaintext based on RC4 algorithm using the secret key generated in (b) (read an existing text file using 'open' function)

d. [1%] Decrypt the encrypted message generated in (c) for user B using the secret key.

Note: You need to submit the following files:
1. Source code file (.py)
2. Executable file
3. Video demonstration (MP4 or MKV): using a screen recorder, record a video from your source code and explain how you have written then code. Then, run the code and explain how it works.
4. Report (docx or PDF)