Table of Contents

1 Introduction
      Why Elliptic Curves?
      Why C?
      Orders of Magnitude
      Structure of Book
      Comments on Style
      Acknowledgements

2 Basics of Number Theory
      Large Integer Math Header
      Large Integer Math Routines
      Multiplication
      Division
      Large Integer Code Example
      Back to Number Theory
      Greatest Common Factor
      Modular Arithmetic
      Fermat's Theorem
      Finite Fields
      Generators

3 Polynomial Math Over Finite Fields
      Polynomial Basis Header Files
      Polynomial Addition
      Polynomial Multiplication
      Polynomial Division
      Modular Polynomial Arithmetic
      Inversion Over Prime Polynomials
      Polynomial Greatest Common Divisor
      Prime Polynomials
      Summary

4 Normal Basis Mathematics
      Squaring Normal Basis Numbers
      Multiplication in Theory
      Type I Optimal Normal Basis
      Type II Optimal Normal Basis
      Multiplication in Practice
      Inversion over Optimal Normal Basis

5 Elliptic Curves
      Mathematics of Elliptic Curves Over Real Numbers
      Mathematics of Elliptic Curves Over Prime Fields
      Mathematics of Elliptic Curves Over Galois Fields
      Polynomial Basis Elliptic Curve Subroutines
      Optimal Normal Basis Elliptic curve Subroutines
      Multiplication Over Elliptic Curves
      Balanced Integer Conversion Code
      Following the Balanced Representation

6 Cryptography
      Fundamentals of Elliptic Curve Cryptography
      Choosing an Elliptic Curve
      Non-supersingular Curves
      Embedding Data on a Curve
      Solving Quadratic Equations in Binary Fields
      The Trace Function
      Solving Quadratic Equations in Normal Basis
      Solving Quadratic Equations in Polynomial Basis
      Quadratic Polynomials, the Code
      Using the T Matrix
      Embedding Data Using Polynomial Basis
      Summary of Quadratic Solving

7 Simple Protocols
      Random Bit Generator
      Choosing Random Curves
      Diffie-Hellman
      ElGamal Protocol
      ElGamal Using Optimal Normal Basis
      ElGamal, Polynomial Basis
      Menezes-Qu-Vanstone Key Agreement Scheme
      MQV the Code, Simple Version

8 Elliptic Curve Encryption
      Mask Generation Function
      Hash Fucntion SHA-1
      Mask Generation, the Code
      ECES, the Code
      Polynomial Basis
      Normal Basis

9 Advanced Protocols, Key Exchange
      Polynomial solution to g^3 = g + 1
      Massey-Omura Protocol
      Massey-Omura, the Code
      MQV, the Standard
      MQV, Normal Basis Version
      MQV, Polynomial Basis Version

10 Advanced Protocols, Signatures
      Message Hash
      Nyberg-Rueppel Signature Scheme
      Nyberg-Rueppel signature, Normal Basis
      Nyberg-Rueppel, Polynomial Basis
      Elliptic Curve DSA
      DSA in Normal Basis
      DSA, Polynomial Basis

11 State of the Art
      High Speed Inversion for ON
      Faster Inversion, Preliminary Subroutines
      Faster Inversion, the Code
      Security from Cryptography
      Counting Points
      Polynomials Base p
      Hyper-Elliptic Curves

References