A device for storing data includes a nonvolatile memory and a controller
and/or circuitry that randomize original data to be stored in the memory
while preserving the size of the original data, that store the original
data in the memory, and that, in response to a request for the original
data, retrieve, derandomize and export the original data without
authenticating the requesting entity. A system for storing data includes
a first nonvolatile memory and a processor that similarly stores data in
the first nonvolatile memory by executing driver code stored in a second
nonvolatile memory. ECC encoding is applied either before or after
randomizing; correspondingly, ECC decoding is applied either after or
before derandomizing.