RFID authentication is a complex field and I hope that your "simple" RFID system will not be used to secure real or important assets/locations. If you want to get into the real thing, try the MX5C-RFID. It seems to be a good choice for less than $100 and you could buy a couple ID Cards from ebay (Mifare Plus or Mifare DesFire).
If you want to secure something seriously, do not use UHF RFID cards because they are easily readable from long range and do not offer data encryption as MiFare do.
If you go for Mifare plus cards, DO NOT USE Mifare classic retro compatibility. Mifare classic is easier to implement but is verry weak and easily cloneable.
To ensure maximum security, when you create a new card :
- Change all manufacturer default secret keys for your own secret keys
- Keep the UID (it's a read only memory bank written by the manufacturer) of the card into your database to white list the cards you deliver.
- Read the decrement counter value and store it so you can compare the expected value of the counter upon the next authentication.
When authenticating, do the following:
- Read the UID of the card and check it against your database to see if the card have been delivered by you. If not, reject the authentication
- Call the decrement function and check if the decrement counter value fits with the expected value from your database. If not, reject the authentication. Otherwise, save the decrement counter value for future authentication.
- Authenticate using the card's ID
You can bypass any of those advices to make your implementation as simple as possible. But keep in mind that you should do incremental development steps to implements all the features I've mentioned above if you want to do serious authentication. Most modern RFID identification systems are week because of developer's lazyness, taking simple prototypes into production use.