Pages:
Author

Topic: ECDsa Verification Speed - page 2. (Read 3180 times)

legendary
Activity: 2053
Merit: 1356
aka tonikt
June 17, 2013, 09:43:43 AM
#5
I once had similar problem in Go - it's a pretty optimal compiler, but its current implementation of the big numbers lib is far away from optimal.

So for me it was like 10ms per op, which was still to long, so I decided to use the openssl implementation.
For a moment I even had a solution with a TCP server (written in C, with openssl) that was doing the ECDSAs for my actual app. That was pretty crazy, though it worked.. Smiley
Later I figured out how to combine the openssl lib with my go app and ever since then it works as fast as I needed.

Most of the languages these days allow creation of wrappers for native libs - that's probably the best way for you to go as well.
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
June 17, 2013, 09:17:57 AM
#4
You can try jasvet to see how much time it takes in Python
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
June 17, 2013, 09:13:54 AM
#3
If this was implemented in C, it would be faster. I can see how the Java implementation can be slower.
legendary
Activity: 2053
Merit: 1356
aka tonikt
June 17, 2013, 09:08:46 AM
#2
For such a CPU OpenSSL needs ~1ms per operation. Even less, if you use 64 bit arch.
So I would say that 100ms is not reasonable.
member
Activity: 72
Merit: 10
June 17, 2013, 08:03:44 AM
#1
Hi, I'm working on a c# node implementation and I have a question around the verification of ECDsa signatures. I'm using the BouncyCastle library and calling ECDsaSigner.VerifySignature is taking ~100ms on a quad-core i5-2500K cpu. This means that if I max out all 4 cores I can process about 40 signatures per second. This seems extremely slow to me but I've not used ECDsa before. Does this seem like a reasonable signature verification speed? The wiki scalability page mentions being able to do tens of thousands of signature verifications per second.

Thanks,

Paul
Pages:
Jump to: