I have an encryption service in which the user decides the length and the type of key, so I would like to build a tool that educates the user on the brute force times for the key they created if using machines like: "A normal PC", "The most expensive graphics card on the market", "The Tianhe-2". There will also be the potential for an extra integer input to say "What if you had N number of those machines".

But in order to do all this I need to know how fast each of those machines can do one AES decryption and validate whether it's successful or not.

I've always understood computer speed in terms of FLOPS, but I've read multiple places that FLOPS are not a great metric here since AES works on integer or bitwise operations.

So I want to know what my alternative is? What other benchmark can I use? How can I even begin to estimate the AES decryptions per second of the aforementioned machines?

I keep assuming there would be some sort of constant like "1 decryption per X number of Units" And then I could look up and see "the Tianhe-2 is capable of Y Units per second."

And if the above doesn't exist, would it be possible to just come up with a fair and optimistic number for FLOPs per Decryption? I've only seen two numbers mentioned: 200 via Page 10 of this paper; and 1000 via this EETimes article.

  • $\begingroup$ There are quite a number of different AES implementations, some in high-level PLs, some in assemblers, and these may have fairly different efficiencies, even dependent on different hardware and OS environments. (BTW I have a passable C code for AES at mokkong-shen.privat.t-online.de which you may like to compare in efficiency with other implementations.) $\endgroup$ – Mok-Kong Shen Nov 4 '14 at 8:59
  • $\begingroup$ Efficient implementations of AES on modern CPUs increasingly use hardware extensions such as AES NI, available on many Intel and AMD CPUs. A typical performance quote would be bulk encryption at 1.3 cycle/byte, per core (0.6G AES/s on a 3.2GHz 4-core CPU). That's for very repetitive use of a fixed key, which does not match brute force key search so well, but I have no better number or source in mind. $\endgroup$ – fgrieu Nov 6 '14 at 3:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.