Abstract
Efficient and secure public-key cryptosystems are essential in today’s age of rapidly growing Internet
communications. Elliptic curve scalar multiplication in particular, which refers to the operation of
multiplying a large integer by a point on an elliptic curve, is crucial for both data encryption technology as
well as testing the security of cryptographic systems. The purpose of this project was to design and
implement an elliptic curve scalar multiplication algorithm 10% faster than one of the best algorithms
currently used: the binary double-add algorithm. The algorithm designed was based off of an operation
that allowed for the tripling of a point and was derived from point doubling and addition operations. The
algorithm was further optimized using an integer representation in both ternary and balanced ternary form.
Finally, a novel modification was made that allowed for the pre-computation and storage of multiples of a
point. The algorithms were written and tested in a C++ program that selected random points over elliptic
curves in both Weierstrass and Edwards form, and multiplied them by a large range of integers using each
of the various algorithms. Timings for these operations were taken in terms of processor cycles and finally
averaged out. The final averaged results showed that the most optimized algorithm was 66.63% more
efficient that the binary double-add algorithm. In conclusion, the algorithm designed in this research
showed a large improvement in efficiency compared to one of the best algorithms in commercial use today,
and has significant implications for the field of cryptography.
Users
Please
log in to take part in the discussion (add own reviews or comments).