A Guide to Homomorphic Encryption