Fast symmetric cryptography in Javascript
Authors: E. Stark, M. Hamburg, and D. Boneh
Abstract:
We take a systematic approach to developing a symmetric
cryptography library in Javascript. We study various strategies for
optimizing the code for the Javascript interpreter, and observe that
traditional crypto optimization techniques do not apply when
implemented in Javascript. We propose a number of optimizations that
reduce both running time and code size. Our optimized library is about
four times faster and 12% smaller than the fastest and smallest
existing symmetric Javascript encryption libraries. On Internet
Explorer 8, our library is about 11 times faster than the fastest
previously existing code. In addition, we show that certain symmetric
systems that are faster than AES when implemented in native x86 code,
are in fact much slower than AES when implemented in Javascript. As a
result, the choice of ciphers for a Javascript crypto library may be
substantially different from the choice of ciphers when implementing
crypto natively. Finally, we study the problem of generating strong
randomness in Javascript and give extensive measurements validating
our techniques.
Reference:
In proceedings of ACSAC 2009.
Full paper: pdf
Related papers: See the project web site.