How to test an implementation of a homomorphic scheme? I want to implement the following homomorphic encryption scheme from On-the-Fly Multiparty Computation on the Cloud via Multikey Fully Homomorphic Encryption by Lopez-Alt et al. I use C++ and I want to know before start to write code how am going to test my application, what test cases would be useful to imagine for such an application ?

I think to feed my application with inputs behind limits and other tests like this which are considered for every application, but maybe there are some kinds of tests for cryptographic implementations, special things that must be taken account.

For example, if I were to implement a hash function I would test it so that it hasn't significant more collisions than expected by theoretical results. I believe that the same stragegy applies in my case.
The best work I know on "How to test an implementation of a fully homomorphic scheme" is the work from Tancrede Lepoint and Michael Naehrig. The article has been published at AFRICACRYPT 2014. Basically, you need to compare the efficiency (in space and time) of the most important operations: KeyGen, Encrypt, Add, Mult, Decrypt.

Links


A Comparison of the Homomorphic Encryption Schemes FV and YASHE.
Slides.
GitHub Poc.