Libgcrypt and libgmp
Chris Ballinger
chris at chatsecure.org
Fri Sep 5 01:02:54 CEST 2014
Some projects might only be able to use LGPLv2.1+ code (and not
LGPLv3-only), or have a desire to minimize their external dependencies, so
if this is merged perhaps it would be best provided as a configure switch
like --enable-gmp or similar.
On Thu, Sep 4, 2014 at 3:14 PM, Dmitry Eremin-Solenikov <
dbaryshkov at gmail.com> wrote:
> Hello,
>
> I was looking on how to improve the performance of public key
> implementation in libgcrypt.
> One of ideas was to check if using libgmp can improve the situation.
> Nowdays GMP is
> dual-licensed under GPLv2+ or LGPLv3+. As far as I understand, this
> licensing is compatible
> with libgcrypt LGPLv2.1+.
>
> Surprisingly even replacing several asm-coded functions resulted in
> nearly 20-25% speed
> increase (according to tests/benchmark pubkey). Do such patches have a
> chance to be
> reviewed & accepted, or it is a waste of time, as you would prefer to
> keep libgcrypt
> independent of libgmp. I'm not changing the gcry_mpi_t internals, or
> removing secure
> allocation/reallocation, only replacing the computational code.
>
> Before:
> Algorithm generate 1000*priv 1000*public
> ------------------------------------------------
> RSA 1024 bit 10ms 770ms 40ms
> RSA 2048 bit 320ms 4850ms 130ms
> RSA 3072 bit 1460ms 13640ms 220ms
> RSA 4096 bit 1690ms 31830ms 390ms
> ELG 1024 bit - 1360ms 1190ms
> ELG 2048 bit - 4840ms 5260ms
> ELG 3072 bit - 10050ms 11400ms
> DSA 1024/160 - 560ms 690ms
> DSA 2048/224 - 2060ms 2860ms
> DSA 3072/256 - 4220ms 5890ms
> ECDSA 192 bit 0ms 1270ms 2170ms
> ECDSA 224 bit 10ms 2060ms 3800ms
> ECDSA 256 bit 0ms 1800ms 3200ms
> ECDSA 384 bit 20ms 3770ms 6830ms
> ECDSA 521 bit 30ms 8990ms 16490ms
> EdDSA Ed25519 0ms 4010ms 5650ms
> GOST 256 bit 10ms 1730ms 3270ms
> GOST 512 bit 30ms 8030ms 15250ms
>
> After:
> Algorithm generate 1000*priv 1000*public
> ------------------------------------------------
> RSA 1024 bit 10ms 550ms 30ms
> RSA 2048 bit 100ms 3270ms 80ms
> RSA 3072 bit 120ms 8980ms 150ms
> RSA 4096 bit 850ms 21110ms 250ms
> ELG 1024 bit - 1020ms 850ms
> ELG 2048 bit - 3400ms 3530ms
> ELG 3072 bit - 6960ms 7850ms
> DSA 1024/160 - 380ms 470ms
> DSA 2048/224 - 1390ms 1850ms
> DSA 3072/256 - 2870ms 4030ms
> ECDSA 192 bit 0ms 1200ms 2100ms
> ECDSA 224 bit 10ms 1860ms 3470ms
> ECDSA 256 bit 10ms 1730ms 3070ms
> ECDSA 384 bit 10ms 3150ms 5800ms
> ECDSA 521 bit 30ms 6880ms 13090ms
> EdDSA Ed25519 10ms 3550ms 5110ms
> GOST 256 bit 0ms 1680ms 3200ms
> GOST 512 bit 20ms 6400ms 12590ms
>
>
> --
> With best wishes
> Dmitry
>
> _______________________________________________
> Gcrypt-devel mailing list
> Gcrypt-devel at gnupg.org
> http://lists.gnupg.org/mailman/listinfo/gcrypt-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/attachments/20140904/d384e843/attachment.html>
More information about the Gcrypt-devel
mailing list