1. A method comprising: encrypting data; storing the encrypted data in a flash memory block of a flash memory device; generating a cryptographic message authentication code (MAC) covering the data and informational variables, wherein the informational variables are generated by or accessible to the operating system software, wherein at least some of the variables are not stored on the flash device storing the MAC in the flash memory block; retrieving the encrypted data and the MAC from the flash memory block; performing a validation check on the retrieved data using the MAC; rejecting the retrieved data if the retrieved data fails the validation check; if the retrieved data passes the validation check: accepting the retrieved data; decrypting the retrieved data.