Hello all,

There’s a new release of Goldilocks up at 
http://sourceforge.net/projects/ed448goldilocks/

As a reminder, Goldilocks is still experimental.  Hopefully soon I can start to 
finalize the interfaces, but not yet.

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:

On one core of a 1GHz Tegra2 ARM Cortex-A9 with no vector unit:
Goldilocks:
keygen:      1454.5µs
ecdh:        3610.4µs
sign:        1519.6µs
verify:      3715.9µs

Compare to OpenSSL 1.0.1 (it’s old, I know):
OpenSSL 1.0.1 14 Mar 2012
built on: Wed Jan  8 20:59:11 UTC 2014
options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) 
blowfish(ptr) 
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
                              sign    verify    sign/s verify/s
 256 bit ecdsa (nistp256)   0.0012s   0.0052s    839.6    190.8
 384 bit ecdsa (nistp384)   0.0027s   0.0132s    371.5     75.7
                              op      op/s
 256 bit ecdh (nistp256)   0.0044s    226.0
 384 bit ecdh (nistp384)   0.0112s     89.7

So Goldilocks is faster than (an old implementation of) NISTp256 except for key 
generation and signing, where it is some 20% slower.

Cheers,
— Mike Hamburg
_______________________________________________
Curves mailing list
[email protected]
https://moderncrypto.org/mailman/listinfo/curves

Reply via email to