Homomorphic Encryption and Applications