Reminder: Class on Wednesday, October 21st is on Zoom. The link is in Canvas. If you need a quiet place to join, you are welcome to use our usual classroom. The class will be recorded, but please attend synchronously if you can.
Solutions: solutions to the daily posts due October 16th (elliptic curve multiples table) and October 19th (EC El Gamal chain and Pollard ) are posted. All daily post solutions are collected on the Archive page.
Relevant Textbook Sections:
5.4 (Factoring with elliptic curves), including 5.4.1 (An example motivating the key idea), 5.4.2 (Pollard’s factoring algorithm) and 5.4.3 (Elliptic Curve Factoring). Review 3.8.1 (Pollard’s rho factoring method).
To Do:
- Finish up the Elliptic Curve El Gamal ciphertext chain from last time: make sure you have decrypted any message encrypted to your public key (and announced the plaintext, @mentioning the sender), that your own message has been decrypted and confirmed, and that your notes are handed in to the canvas dropbox.
- On the curve modulo , check that and are on the curve, and then try to compute by hand. What goes wrong when you compute the slope? Use the failure to factor . Then reduce and modulo each prime factor of : what is modulo each prime? Explain why the computation broke down.
- Use the EC Factoring Example page to factor . You might want to increase the size of the loop! Write up a short explanation of your work.
- A factoring race. We now have three factoring methods that each look for a prime factor of “by accident.” Run all three on the same from problem 3 and record how long each one takes:
- Pollard’s with and : how many steps until is nontrivial? ( is too big for the Pollard Rho Demo, so use the Sage Pollard Rho page, which keeps a tortoise and a rabbit and prints the gcd at each step.)
- Pollard’s with (use the Pollard p-1 page from last time): what is the first for which is nontrivial? Again, you may need to increase the size of the loop.
- Elliptic curve factoring (problem 3; you already did this): which multiple blew up?
- Now factor for each prime factor of from the last problem. Use this to explain the result exactly.
- Recall that Pollard’s takes about steps. Compare with your step count from problem 4.
- In Sage,
EllipticCurve(GF(p), [1,1])(0,1).order()computes the order of the point on modulo a prime (change the coefficients and the point if you used a different curve in problem 3). Compute this order modulo each prime factor of , and factor the answers. Use this to explain which multiple blew up in problem 3. - For which kinds of would you choose , which , and which elliptic curves?
- If time remains, explore EC Factoring further:
- Factor again with a different choice of curve and point (revisit lecture for some advice on finding random curve + point pairs).
- Try modifying one of the middle digits of , and see how long it takes. Factor completely using Sage’s
factor()function, to see what kinds of primes it has in it. Repeat a few more times. - Report/discuss on discord on how long it took (i.e., what multiple of blew up) on different curves and points, and different . Explain why you think it was fast sometimes and slow other times. You can use the #daily-collaboration channel.