<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hello all,<div><br></div><div>There’s a new release of Goldilocks up at <a href="http://sourceforge.net/projects/ed448goldilocks/">http://sourceforge.net/projects/ed448goldilocks/</a></div><div><br></div><div>As a reminder, Goldilocks is still experimental. Hopefully soon I can start to finalize the interfaces, but not yet.</div><div><br></div><div>The new release brings a more organized source directory layout, more testing and many bugfixes and improvements, along with support for 32-bit processors. In particular, there is now vectorless ARM32 support. There may still be some room for optimization here (especially in the squaring routine), but the results are looking pretty OK:</div><div><br></div><div>On one core of a 1GHz Tegra2 ARM Cortex-A9 with no vector unit:</div><div><div style="margin: 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);">Goldilocks:</div><div style="margin: 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);">keygen: 1454.5µs</div><div style="margin: 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);">ecdh: 3610.4µs</div><div style="margin: 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);">sign: 1519.6µs</div><div style="margin: 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);">verify: 3715.9µs</div></div><div><br></div><div>Compare to OpenSSL 1.0.1 (it’s old, I know):</div><div><div style="margin: 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);">OpenSSL 1.0.1 14 Mar 2012</div><div style="margin: 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);">built on: Wed Jan 8 20:59:11 UTC 2014</div><div style="margin: 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);">options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) blowfish(ptr) </div><div style="margin: 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);">compiler: cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_NO_TLS1_2_CLIENT -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DGHASH_ASM</div><div style="margin: 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);"> sign verify sign/s verify/s</div><div style="margin: 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);"> 256 bit ecdsa (nistp256) 0.0012s 0.0052s 839.6 190.8</div><div style="margin: 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);"> 384 bit ecdsa (nistp384) 0.0027s 0.0132s 371.5 75.7</div><div style="margin: 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);"> op op/s</div><div style="margin: 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);"> 256 bit ecdh (nistp256) 0.0044s 226.0</div><div style="margin: 0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);"> 384 bit ecdh (nistp384) 0.0112s 89.7</div></div><div><br></div><div>So Goldilocks is faster than (an old implementation of) NISTp256 except for key generation and signing, where it is some 20% slower.</div><div><br></div><div><div>Cheers,</div><div>— Mike Hamburg</div></div></body></html>