
A desirable feature in modern communication system architectures, Homomorphic encryption is a form of encryption which allows specific types of computations to be carried out on cipher texts and generate an encrypted result which, when decrypted, matches the result of operations performed on the plaintexts. The demand for privacy of digital data and of algorithms for handling more complex structures have increased exponentially over the last decade. This goes in parallel with the growth in communication networks and their devices and their increasing capabilities. At the same time, these devices and networks are subject to a great variety of attacks involving manipulation and destruction of data and theft of sensitive information. For storing and accessing data securely, current technology provides several methods of guaranteeing privacy such as data encryption and usage of tamper resistant hardware. However, the critical problem arises when there is a requirement for publicly computing with private data or to modify functions or algorithms in such a way that they are still executable while their privacy is ensured. This is where homomorphic cryptosystems can be used since these systems enable computations with encrypted data. The purpose of homomorphic encryption is to allow computation on encrypted data. Thus, data can remain confidential while it is processed, enabling useful tasks to be accomplished with data residing in untrusted environments. In a world of distributed computation and heterogeneous networking this is a hugely valuable capability.