2

Being a physicist, I know very little about cryptography. In fact, the main two practical aspects I've learned so far are: Unless you're an expert, 1. Don't try to invent new cryptosystems and 2. Don't implement cryptographic algorithms yourself if you can avoid it.

I need an implementation of information-theoretically secure authentication. For this, I intend to use a Carter-Wegman type scheme and thus need an implementation of a $\epsilon\text{-almost strongly universal}_2$ family of hash functions.

Many of the well-known published ways to construct such families seem reasonably straightforward to implement using (perhaps not in the most efficient way possible). However, I'm assuming it's a fundamentally bad idea for a non-expert to start implementing cryptosystems. My question: How do I find and select an implementation of information-theoretically secure authentication that I can use?

I'm looking for an open source solution that I can use from C and or C++ and possibly even squeeze into an embedded system as well. The final goal is not a commercial system (i.e. nobody will ever actually try to hack it) but should demonstrate best practices where ever possible.

Are there standards for this? I was assuming OpenSSL or similar well-known libraries must certainly have it but so far the official documentation has not helped me in this respect. How can I find out?

Disclaimer: If I understand correctly it is a site policy to not recommend concrete implementations of cryptosystems. Although I wouldn't mind such suggestions if the policy allows it, that is not the essence of my question. Rather, I am asking for general principles how a non-expert should approach implementing/finding and using cryptosystems, in the particular case of universal hashing.

0 Answers0