Blum-Blum-Shub. Recall the BBS algorithm for generating pseudo random numbers: Let p and q be two large primes such that p?q?3(mod4) and let n=p×q. Choose a seed value x0? that is relatively prime to n. The i th pseudorandom bit is generated as bi?=xi?mod2, where xi+1?=xi2?(modn). (a) Choose p,q and x0? that satisfy the requirements of BBS algorithm. (b) Write a code that received p,q,x0? and integer N as inputs and employs BBS method to generate N bits. Hint: If you are using Python, you can use '\%' to perform mod operation. (c) Use the code you have written and test it with the parameters you have selected in part (a) to generate N=106 bits. Report the frequency of 0 s in your sequence. Also, report the frequency of the pair (0,0) in your sequence. What is the expected value of this number if your sequence was completely random? Hint: To determine the frequency of the pair (0,0) in a sequence (b1?,…,bi?), count how often (0,0) appears in consecutive pairs. This is mathematically represented as #{i:(bi?,bi+1?)=(0,0)}. Then, divide this count by the maximum possible number of such pairs in a sequence of length n, which is n?1. For instance, consider the sequence: (1,0,0,0,1,1,0,1,0,0). Here, the frequency of the pair (0,0) is 93?.