## Assignment: due Sunday, 11:59 pm

Add the file [`rsatools.R`](https://djhunter.github.io/cryptography/R/rsatools.R) to the `R` subdirectory of your project. This file includes functions for converting between strings and big integers.

1. Implement `FermatTest` as specified, to carry out the Fermat Primality Test ([T] p. 177).

2. Implement `makeRSAkey` as specified, to generate a random 2048-bit RSA modulus. The primes $p$ and $q$ should both be large (at least 1000 bits). Your choice of $n = pq$ should be immune to the Fermat factorization attack, so $p-q$ should be at least a googol ($10^{100}$). Furthermore, it should be immune to the quadratic sieve attack, so check that $p-1$ and $q-1$ do not have only small (<100) prime factors. The `gmp` functions `urand.bigz`, `isprime`, and `nextprime` may be helpful. Each time the function is called, it should produce a new random RSA key. (No, you can't use the `openssh` package, or similar.)
