Mifare Desfire will do what you ask for except for one thing:
Crypto support is not available on API level.
You have to write code that does all the authentication and cryptography and talk to the Desfire tag directly. The Android API provides the tools to do so via the low-level access function IsoDep.transceive
. The crypto functions itself can be found in javax.crypto.spec
Unlike other tags with cryptography documentation of the required steps to do authentication and encryption are available on the internet.