CS 259C/Math 250: Elliptic Curves in Cryptography

Elliptic Curves in Cryptography

Fall 2011


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

The textbook will cover most, but not all, of the material discussed in class. Supplementary material will be made available online.

Homework Assignments

  • There will be four homework assignments.
  • There are three options for turning in homework:
    1. Turn in written/printed solutions at the beginning of class on the due date.
    2. Put written/printed solutions under Mark's office door (Gates 494) by 4pm on the due date.
    3. 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.


Your grade will be determined by the following formula:

0.6 H + 0.4 F


  • H is your average score on the four written homework assignments.
  • F is your grade on the final project.

Students with Documented Disabilities

Students who may need an academic accommodation based on the impact of a disability must initiate the request with the Student Disability Resource Center (SDRC) located within the Office of Accessible Education (OAE). SDRC staff will evaluate the request with required documentation, recommend reasonable accommodations, and prepare an Accommodation Letter for faculty dated in the current quarter in which the request is being made. Students should contact the SDRC as soon as possible since timely notice is needed to coordinate accommodations. The OAE is located at 563 Salvatierra Walk (phone: 723-1066).