1. There is a server running on annai.cs.colorado.edu port 443. This server
has a hidden string $a$ embedded within it. When you
connect via TCP/IP, it will spit out a random 128-bit string $y$ such that
$y \oplus a = 0,$ then disconnects. The string is output as 128-characters
of plain text, following by a newline.
This exercise explores finding $a$, as with Simon's Problem.
Write a program in the language of your choice to query this server and
record the answers. For each string you receive,
you should decide whether it is
linearly independent of the strings already received (in which case you
keep it) or not (in which case you discard it). Once you have enough
linearly-independent strings, you should solve for $a$.
2. Compute $1234^{1234^{1234}} \bmod 10^{10}$. Show your work (including any code used).
3. Here is one way in which RSA can be misused: suppose you have $n = pq$ for distinct large primes $p$ and $q$, and distinct encryption exponents $e_1$, $e_2$ where gcd($e_1, e_2$) = 1. You publish $n$ along with $e_1$, $e_2$. Show that if an adversary has $C_1 = M^{e_1} \bmod n$ and $C_2 = M^{e_2} \bmod n$ then she can recover $M$. (Note: $M$ is the same for $C_1$ and $C_2$.)
Use your solution to compute $M$ for the parameters given below; hand in any code you use to aid your computation.
$n$ = 640434271860669796692811836922138143942513719203565769421924022297363333847089887235971007435680486193657059
$e_1$ = 65537
$e_2$ = 65539
$M^{e_1} \bmod n$ = 400030256839145194441034228199292487980894977737102147552044462667917219509871638663296814615652770720888715
$M^{e_2} \bmod n$ = 48384876797138828670281479166255073593234801358795810198774095180850824157124747742456773738763877257747936
4. Consider $n=$121932632103337941464563328643500519 for this problem.