« previous | Tuesday, February 5, 2013 | next »
RSA
- Take large blocks of text
- convert letters to

- convert that block into a large integer base 26
- perform modular arithmetic on blocks
Sage
- ord(char) converts char to a number
- list(string) produces an array of characters
- map(func, array) does what it says.
Hardness of Multiplication and Factoring
Recall:
- Grade school algorithm takes
bit operations
- Fast-Fourier Multiplication takes
bit operations
Factoring a
-digit integer takes a lot longer:
bit operations (Pollard-??? method)
Breaking RSA Can be done via integer factorization: This is why we care about complexity.
To factor
, we could do trial division by all primes up to
. If
has
digits, then this would be:
We'll study more about factoring soon: in fact square roots mod
are very important in factoring.
Warm-up
Since FLT says
for
, can we use this for square roots?
Does
exist mod 7?
We know
by FLT.
if \sqrt{3} did exist, we would have
However,
(contradiction!)
What's up?
Legendre Symbol
More generally, we define
Examples:
Lemma
The fastest current factoring algorithm appears to have complexity
<math>O \left( \mathrm{e}^{d^{\frac{1}{3}}} \, d^{\frac{2}{3}} \right)