« 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)