RFID (Radio Frequency IDentification) is a generic term for technologies that use radio signals to automatically identify objects in the IoT (Internet of Things). NFC (Near Field Communication) originating from RFID is a wireless peer-to-peer communication technology, which is widely applied to mobile phones for contactless payment. The open link between the RFID tag and reader is vulnerable to various attacks, such as eavesdropping, tampering and impersonating, etc. PKC (Public Key Cryptography) based authentication is able to solve the above problem. Compared with authentication methods based on symmetric key, PKC is more secure, flexible and suitable for large-scale RFID/NFC applications due to its flexible key management and high security. However, the traditional PKC technologies are not able to be directly applied to low-cost RFID tags because of the limited computing and storage capacity of tags. To alleviate this issue, we propose a low-cost RFID authentication protocol based on ECC (Elliptic Curve Cryptography) that has high security level and small size parameters. The protocol combines the cryptoGPS identification protocol and the precomputing based Diffie-Hellman key exchange method which is proposed in this paper. The security of the protocol is analyzed and proved under the random oracle model.