Cloud computing is an emerging technology in which resources of the computing infrastructures are provided as services of the internet. Cloud allows user to access application without installation and their personal data at any computer with internet access. It provides with a way to share distributed recourses and services that belong to different organizations or sites. In this technology users have to entrust their data to cloud providers, there are several security and privacy concerns on outsourced data. As the data is shared over the network, the data should be encrypted to maintain confidentiality against untrusted users.