Scott Fluhrer edited untitled.tex  over 8 years ago

Commit id: 32e3a3a2bafa3c71699723144d08039064b50f06

deletions | additions      

       

\section{Abstract}  This paper shows how scalar blinding can be implemented to protect provide protection  against side channel attacks when performing elliptic curve operations with relatively small cost, even if the characteristic of the field has a sparse representation. This may indicate that, for hardware implementations, random primes might not have as large of an advantage over special primes as previously thought. claimed.  \section{Background}  Elliptic curves are a useful tool within cryptography. An Elliptic Curve is an abstract group, and some Elliptic Curves have this useful property: given a group member (point) $G$ and an integer $k$, the point $H = kG$ can be computed in time proportional to $\log k$; however given two points $G, H$, computing the integer $k$ such that $H = kG$ takes time proportional to $\sqrt{k}$. By selecting $k$ (and the Elliptic Curve) to be an appropriate size, we can make finding $H$ given $k$ and $G$ (known as point multiplication) relatively quick, while making finding $k$ given $H$ and $G$ (known as the discrete logarithm problem) infeasible.  The most common Elliptic Curves used in practice are defined over a prime field $GF(p)$;in practice,  this implies that a majority of the time taken computing the point multiplication $kG$ is done computing the modular multiplication $a \times b \pmod p$ for two values $a, b \in GF(p)$, for a large (perhaps 256 bit) prime $p$ that we have picked. picked when we generated the curve.  To accelerate this operation, one approach is to select a prime for the form  $p = 2^e - c$, where $c$ has a simple representation in binary. This allows us to 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}$$  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. This allows us to compute the modular multiplication of two numbers in not much more time than it takes to perform a bignum multiplication of those two numbers. Examples of Elliptic Curves that allow this speed up optimization  include the so-called NIST curves\cite{NIST_1999}, Curve25519\cite{Bern_2005}, and the Microsoft NUMS curves\cite{Black_2014}. If we instead select a random prime without such a special structure (such as was done when defining the Brainpool curves\cite{Lochter_2010}), there are still some optimizations we can do beyond the obvious 'perform a multiply, and then perform a generic modulo reduction'. We can implement Montgomery Multiplication, which replaces the modulo operation with some multiplies and shifts; the net result is that a multiplication followed by a modular reduction can be done in the time of approximately two bignum multiplications; in other words, modular multiplication of a special form prime can be done approximately twice as fast as an arbitrary prime.