I want to program a couple of AES-enabled NFC tags (for example these) with some custom data, and secure these tags by using the AES features of said tags . In order to increase security, i want to use different (16-byte) AES keys for each NFC tag. Of course I could now simply generate a new random number using (pythons)
import os new_key = os.urandom(16)
But my (very limited) cryptographie knowledge tells me that this a bad idea, because as soon as one key is known, the attacker can calculate the next key via the same algorithm. I also found this resource on the topic by NXP, but I don't understand how to implement the ideas proposed.
Therefore: How can I generate new keys for my AES encrypted NFC Tags, which are not compromised as soon as one key was cracked? Bonus points for anyone who can directly tell me how to implement the algorithm in python ;).