From 52a916313aa99fb24522530762c16384dfb30334 Mon Sep 17 00:00:00 2001 From: Orson Peters Date: Thu, 11 Apr 2013 18:53:20 +0200 Subject: [PATCH] small changes as well as 32 and 64 bit dlls --- ed25519.dll => ed25519_32.dll | Bin 126976 -> 127488 bytes ed25519_64.dll | Bin 0 -> 112128 bytes src/add_scalar.c | 37 +++++++++++++++++++++------------- test.c | 24 +++++++++++++++++++--- 4 files changed, 44 insertions(+), 17 deletions(-) rename ed25519.dll => ed25519_32.dll (87%) create mode 100644 ed25519_64.dll diff --git a/ed25519.dll b/ed25519_32.dll similarity index 87% rename from ed25519.dll rename to ed25519_32.dll index 33f9938527d007d4e6ce33a1d11d6022d219949b..d5077a19657d56b33436791871d91839a70b3cc4 100644 GIT binary patch delta 6813 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 delta 6615 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 diff --git a/ed25519_64.dll b/ed25519_64.dll new file mode 100644 index 0000000000000000000000000000000000000000..78c819982383cd97c21b2c7870a80034b425d886 GIT binary patch literal 112128 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ð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 literal 0 HcmV?d00001 diff --git a/src/add_scalar.c b/src/add_scalar.c index 91b64d3..d728995 100644 --- a/src/add_scalar.c +++ b/src/add_scalar.c @@ -10,7 +10,7 @@ void ed25519_add_scalar(unsigned char *public_key, unsigned char *private_key, c unsigned char n[32]; ge_p3 nB; ge_p1p1 A_p1p1; - ge_p2 A; + ge_p3 A; ge_p3 public_key_unpacked; ge_cached T; @@ -27,21 +27,30 @@ void ed25519_add_scalar(unsigned char *public_key, unsigned char *private_key, c sc_muladd(private_key, SC_1, n, private_key); } + /* public key: A = nB + T */ if (public_key) { - /* unpack public key into T */ - ge_frombytes_negate_vartime(&public_key_unpacked, public_key); - fe_neg(public_key_unpacked.X, public_key_unpacked.X); // undo negate - fe_neg(public_key_unpacked.T, public_key_unpacked.T); // undo negate - ge_p3_to_cached(&T, &public_key_unpacked); + /* if we know the private key we don't need a point addition, which is faster */ + /* using a "timing attack" you could find out wether or not we know the private + key, but this information seems rather useless - if this is important pass + public_key and private_key seperately in 2 function calls */ + if (private_key) { + ge_scalarmult_base(&A, private_key); + } else { + /* unpack public key into T */ + ge_frombytes_negate_vartime(&public_key_unpacked, public_key); + fe_neg(public_key_unpacked.X, public_key_unpacked.X); // undo negate + fe_neg(public_key_unpacked.T, public_key_unpacked.T); // undo negate + ge_p3_to_cached(&T, &public_key_unpacked); - /* calculate n*B */ - ge_scalarmult_base(&nB, n); + /* calculate n*B */ + ge_scalarmult_base(&nB, n); - /* A = n*B + T */ - ge_add(&A_p1p1, &nB, &T); - ge_p1p1_to_p2(&A, &A_p1p1); - - /* pack public key */ - ge_tobytes(public_key, &A); + /* A = n*B + T */ + ge_add(&A_p1p1, &nB, &T); + ge_p1p1_to_p3(&A, &A_p1p1); + } + + /* pack public key */ + ge_p3_tobytes(public_key, &A); } } diff --git a/test.c b/test.c index 264832f..b317438 100644 --- a/test.c +++ b/test.c @@ -80,15 +80,24 @@ int main(int argc, char *argv[]) { } /* test performance */ + printf("testing seed generation performance: "); + start = clock(); + for (i = 0; i < 10000; ++i) { + ed25519_create_seed(seed); + } + end = clock(); + + printf("%fus per seed\n", ((double) ((end - start) * 1000)) / CLOCKS_PER_SEC / i * 1000); + + printf("testing key generation performance: "); start = clock(); for (i = 0; i < 10000; ++i) { - ed25519_create_seed(seed); ed25519_create_keypair(public_key, private_key, seed); } end = clock(); - printf("%fus per seed and keypair\n", ((double) ((end - start) * 1000)) / CLOCKS_PER_SEC / i * 1000); + printf("%fus per keypair\n", ((double) ((end - start) * 1000)) / CLOCKS_PER_SEC / i * 1000); printf("testing sign performance: "); start = clock(); @@ -109,7 +118,7 @@ int main(int argc, char *argv[]) { printf("%fus per signature\n", ((double) ((end - start) * 1000)) / CLOCKS_PER_SEC / i * 1000); - printf("testing scalar addition performance: "); + printf("testing keypair scalar addition performance: "); start = clock(); for (i = 0; i < 10000; ++i) { ed25519_add_scalar(public_key, private_key, scalar); @@ -118,6 +127,15 @@ int main(int argc, char *argv[]) { printf("%fus per keypair\n", ((double) ((end - start) * 1000)) / CLOCKS_PER_SEC / i * 1000); + printf("testing public key scalar addition performance: "); + start = clock(); + for (i = 0; i < 10000; ++i) { + ed25519_add_scalar(public_key, NULL, scalar); + } + end = clock(); + + printf("%fus per key\n", ((double) ((end - start) * 1000)) / CLOCKS_PER_SEC / i * 1000); + printf("testing key exchange performance: "); start = clock(); for (i = 0; i < 10000; ++i) {