A secure and efficient cryptography-based data exchange scheme for the smart grid based on homomorphic encryption is investigated in this work. Public key cryptography has been proposed as the main tool to ensure the security of a smart grid . We first examine the shortcomings of conventional public key cryptography to motivate our current study. For the uplink communication (i.e. from customers to the utility) in the proposed scheme, smart meters homomorphically encrypt privacy-sensitive customer data before sending them over the grid. To prevent message forgery, a simple authentication scheme is designed specifically for uplink communication. For the downlink communication (i.e. from the utility to customers), the utility transmits the signed control messages to customers using digital signatures to ensure that messages from utilities are not tampered. For the data exchange scheme, we propose a practical cryptosystem based on a partially homomorphic encryption algorithm. The proposed solution has several appealing features such as strengthened security, high efficiency and user privacy preservation.