Reminder: Test 1 (Module 1) is in class on Wednesday, September 16th.
Relevant Textbook Sections:
2.10.3 (Index Calculus), 2.10.4 (Runtime), and for review, 2.10.1 (The Baby-Step Giant-Step Algorithm) and 2.12 (ElGamal Encryption)
To Do:
- Reminder: the first test is in class on Wednesday, September 16th, 2026 (Module 1). See the Tests page for the syllabus and review problems.
- Solutions to the last daily post (the parity of the discrete log, baby-step giant-step for , the tower , and the runtime analysis) are now posted: Solutions to Daily Due Sep 11. All daily post solutions are collected on the Archive page.
- To Know: If you’re interested in the runtime of the Index Calculus, I have more detail in the textbook (Section 2.10.4). Additionally, here are some course notes that cover it in more detail (from Andrew Sutherland’s MIT course on elliptic curves). This may be an interesting topic for a graduate student project: runtime for index calculus and/or index calculus improvements mod and/or in other finite fields.
- Solve the discrete logarithm problem for , , , using the Index Calculus method. You may use the Index Calculus Tools and Sage’s modular arithmetic and plain arithmetic computations to avoid by-hand computations, but please solve the linear system by hand (i.e. choosing which equations to subtract from which etc.). Note: this is a randomized algorithm, so you will get different relations than someone else, or next time you run the tool. If you are not finding a very nice linear system, just try to get some more relations and pick simple manageable ones.
- An awkward linear system. Keep and , and write for the discrete log of base (so is only defined modulo ). One relation the tool can hand you is , which says .
- Suppose you “divide by two” to conclude . Check this by computing . Is it ?
- Explain what went wrong. How many solutions does have, and what are they? Which one is ?
- Find the parity of using the test from the last daily post (raise to the th power modulo ). Explain how this picks out the right solution in part (2) without any further checking.
- Here are three more relations: , , and . Use them to find , and without ever dividing by an even number (you will need an inverse modulo ), and check that your agrees with part (3).
- In general, which integers are safe to divide by (i.e. multiply by an inverse) when solving relations modulo ?
- Runtime comparison. The (heuristic) runtime of the Index Calculus modulo , with a well-chosen factor base, is about operations (Section 2.10.4), while Baby-Step Giant-Step takes about operations.
- Compute both quantities (to two significant figures, in scientific notation) for a -digit prime, a -digit prime, and a -digit prime.
- Suppose operations is the most an attacker can afford. About how many digits must have to be safe against Baby-Step Giant-Step? Against the Index Calculus? (Treat the two formulas as exact; the real constants are different, but the moral is the same.)
- Explain in a sentence why the Index Calculus is called subexponential: compare with for a fixed as .
- Remember to upload to canvas!
Added Sept 25: solutions to this daily post (the Index Calculus for , the awkward linear system, and the runtime comparison) are now posted: Solutions to Daily Due Sep 14.