If you look at ECP::SimultaneousMultiply, it actually uses a mixture of projective and affine coordinates to speed up the operation over a pure projective implementation. It's basically a right to left sliding-window exponentiation algorithm. We do the doublings in projective coordinates, then switch to affine for the adds. I don't know if there's a paper that describes all of the optimizations used.
On Thu, Jan 08, 2004 at 05:31:50PM +0100, [EMAIL PROTECTED] wrote: > I have to estimate if it is possible to compute a signature with the > algorithm ECDSA for the curve ANSI::secp128r1 on a 80C51 Microcontroller > in about two seconds. > > So I studied a little bit the implementation of this algorithm in > crypto++ Version 5.1 and start now with some questions about these > theme. > > The class ECP contains the low level operation like point addition, > point doubling and skalar multiplaction for elliptic curve over the > field GF(p) with p a prime number. > > The methods Add and Double of the class ECP operate with Points in > affine coordinates as far as i interpret the C++ code correct. The > implementation of these algorithm corespond to the specification P1363 > A.10.1. Would it be not more efficient to transform the points into > projective coordinates? > > > > The method ScalarMultiply calls the Method SilmultaneousMultiply which > converts the point to projektive coordinates as much as I understood. > The rest of the algorithm is not clear to me. > > Is there a reference to an algorithm which explains what happens in > SimultaneousMultiply? > > > > > > > > > > ------------------------------------------------------------------------ > ---- > > Stefan Berglas > > MULTIPAY > > Terminal-Security > > Hertistrasse 27 > > CH-8304 Wallisellen > > Direktwahl : +41 (0) 1 832 95 47 Fax: +41(0) 1 446 81 21 > > E-Mail: <mailto:[EMAIL PROTECTED]> > [EMAIL PROTECTED] > > ------------------------------------------------------------------------ > ---- > > >
