rsa blinding patch

Niels Möller nisse at lysator.liu.se
Mon Apr 9 22:57:25 CEST 2012


Nikos Mavrogiannopoulos <nmav at gnutls.org> writes:

> Although the HMAC avoids the need for randomness, you need to get a key
> somehow, so the gain might not be much.

The idea is to reuse (hash of) the private RSA key as the HMAC key. And
similarly for deterministic DSA.

> What about the rsa_compute_root? This is the only function I can use
> from nettle for RSA signatures

I wasn't aware of that. That's an argument for an rsa_compute_root_tr
(or alternatively, public rsa_blind and rsa_unblind helpers).

Can you explain briefly what special signatures are used by tls? (It was
more then 10 years since I wrote an implementation, then it was ssl
version 3).

> If there was an rsa_pkcs1_sign() and rsa_pkcs1_verify() with similar
> interface to encrypt/decrypt, I could use those instead.

Can you propose such an interface? Currently, rsa_md5_sign calls
pkcs1_rsa_md5_encode followed by rsa_compute_root. If it's easy for you
to use rsa_compute_root in the same way, then I guess there's no need to
introduce new low-level primitives, but maybe it could be rearranged in
some better way? 

Or, since tls is an important application, it may make sense to directly
add tls-style signatures to Nettle.

> I had modified the rsa-encrypt-test.c to include a test for the
> timing resistant version as well. Other than that I have no other test
> cases.

I see. It would really be helpful with some tools for measuring the
input dependence in the timing of rsa_compute_root. GMP's mpz_powm may
well behave quite differently from openssl's.

Regards,
/Niels

-- 
Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.


More information about the nettle-bugs mailing list