Scott Fluhrer edited untitled.tex  almost 9 years ago

Commit id: 391be5618383ee76c4c1a10af1ab87b18fc89224

deletions | additions      

       

The most common Elliptic Curves used in practice is defined over a prime field $GF(p)$; what this means is that a majority of the time taken computing $nG$ is done computing the modular multiplication $a \times b \pmod p$, for a large (perhaps 256 bit) prime $p$ that we have picked.  To speed this operation, one approach is to select a prime $p$ with a representation $2^e + -  c$, where $c$ has a simple representation in binary. What this allows us to do is accelerate the computation of the modular reduction by taking advantage of the identity: $$a \cdot 2^e + b \equiv a \cdot c + b \pmod{2^e+c}$$ \pmod{2^e-c}$$  If the binary representation of $c$ is simple enough, we can compute $a \cdot c$ without doing a full multiply, and hence we can compute this modular reduction significantly faster than we could for an arbitrary prime. Examples of Elliptic Curves that allow this speed up include the so-called NIST curves\cite{NIST_1999}, Curve25519, and the Microsoft NUMS curves.  - Side channel attacks