user3545315
user3545315

Reputation: 1

Encryption benchmark test

I am working on a project where I am going to performance compare encryption algorithms. How should I accomplish this with software? I have found Crypto++ but I am not familiar with C++. Crypto++ also feels way too advanced for me. Is there any simplier software to use since im only a high school student?

Upvotes: 0

Views: 530

Answers (1)

Rob Napier
Rob Napier

Reputation: 299505

This can be quite challenging if you don't understand how the different algorithms are put together, and so what configuration of each algorithm is appropriate. On many modern systems it will also tend to bias towards AES, since some chips have AES primitives built in (particularly if you're using an optimized library). On the other hand, a naïve C implementation of the algorithm may be unrepresentative of real-world, optimized implementations that most people use in real life. On the other hand, a good implementation may be slower than a poor implementation because it's maintaining constant-time (and/or constant-power) performance, which is important to security.

Now that I've told you some of the problems, it's still not a bad high school project and you can learn a lot doing it (just make sure that when you publish your results, you are clear that you don't really know what you're doing, so no one should take these as definitive benchmarks).

The best toolkit for this IMO is BouncyCastle. It's in Java, which is relatively easy to learn (compared to some of the fancy C++ in Crypto++). It has a fairly approachable API. It has a lot of different algorithms available. And it's a real-world library that professional developers use every day.

Learning your way around BC, even if you use it incorrectly (which you will; crypto is very hard to do correctly, even with a library), is likely to be a good learning experience, so go for it.

Upvotes: 1

Related Questions