Elliptic Curves in Cryptography
Fall 2011
Description
Elliptic curves play a fundamental role in modern cryptography. They can be used to implement encryption and signature schemes more efficiently than "traditional" methods such as RSA, and they can be used to construct cryptographic schemes with special properties that we don't know how to construct using "traditional" methods.
In this course we will discuss the mathematics of elliptic curves and their applications in cryptography. We will study cryptosystems based on elliptic curves and discuss their security, and we will study algorithmic aspects of elliptic curves related to cryptosystem construction and security. Towards the end of the course we will cover more advanced topics, to be chosen based on class interest.
Prerequisites: This course is intended for advanced undergraduates, masters students, and beginning Ph.D. students. The course is self-contained; however, some exposure to abstract algebra (groups, rings, and fields) and/or elementary number theory (primes and modular arithmetic) will be helpful. Students are expected to be able to follow and write mathematical proofs. There will be some programming exercises in the mathematical software SAGE, which is based on Python. Prior programming experience will be helpful; exposure to Python will not be assumed.
Textbook Information
- Required: Elliptic Curves: Number Theory and Cryptography, 2nd edition by L. Washington.
- Online edition of Washington (available from on-campus computers; click here to set up proxies for off-campus access).
- There is a problem with the Chapter 2 PDF in the online edition of Washington: most of the lemmas and theorems don't display correctly. We are working with Stanford Libraries and the publisher to make a correct version available. In the meantime, here is a PDF file with the missing content.
Homework Assignments
- There will be four homework assignments.
- There are three options for turning in homework:
- Turn in written/printed solutions at the beginning of class on the due date.
- Put written/printed solutions under Mark's office door (Gates 494) by 4pm on the due date.
- Submit solutions in PDF form to Mark (zhandry at cs.stanford.edu) by 4pm on the due date.
- Homeworks submitted electronically will be graded and returned electronically.
- Use of LaTeX is encouraged but not required.
- You are allowed to use SAGE to answer any homework question; indeed, some questions will require computer computations. Any work you do in SAGE must be printed out and attached to the assignment you turn in (or attached in PDF form if submitting electronically).
- You may collaborate on assignments; however when writing up the solutions you must do so on your own. This includes writing your own code for any programming you do.
- Extensions: Each student has a total of 72 extension hours throughout the quarter. This automatic extension can be spent in units of 24 hours on any of the homework assignments. Please mark the submission time for any late assignment. There will be no additional extensions.
- Late homework: Homework turned in after all the extension hours have been used will receive 50% credit. No credit will be given for homework turned in more than 1 week after the due date.
Exams and Projects
There will be no midterm or final exam. There will be a final project consisting of an expository paper on some aspect of elliptic curve cryptography.
The final paper must be typeset in LaTeX and emailed to David (dfreeman at cs.stanford.edu) by 5pm on Thursday, December 15. No extensions will be given.
Grading
Your grade will be determined by the following formula:
0.6 H + 0.4 F
where:
- H is your average score on the four written homework assignments.
- F is your grade on the final project.