This paper proposes a low-cost and strong-security RFID protocol to reduce the computational load on both the back-end database and the tags in an RFID system. When desynchronization occurs as a result of a communication failure or malicious attack, the proposed protocol can recover synchronization between the database and the tag in the following session. Furthermore, the proposed protocol also satisfies most security requirements, including the strong privacy property defined by Juels and Weis, plus robustness against replay and spoofing attacks and forward security.