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 ;).

  • $\begingroup$ What you propose should be fine. Is a key is compromised somehow then an attacker should not be able to predict the next key unless there's an issue with the random number generator and if there is then a lot of other crypto would be broken. $\endgroup$ – Swashbuckler Mar 20 at 18:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.