In normal operation, your device can, surprisingly, tolerate a lot of small errors. The occasional bitflip in RAM won’t hurt anything and a slightly out-of-spec CPU (e.g. low voltage or noisy power supply) will work well enough. Most applications don’t do enough CPU/RAM work that errors are a big problem.
Cryptography is different; it will stress your CPU and RAM for a long period. It is also completely intolerant of errors. A single-bit transition will completely ruin the result of a crypto operation.
A quick-and-dirty test, for Linux systems at least, is to repeatedly hash a file in RAM. If you’ve got a tmpfs
mounted on /tmp
, for example, you can:
dd if=/dev/random of=/tmp/junk bs=1M count=<most of RAM - e.g. '12' for a 16MB machine>
md5sum /tmp/junk
Repeatedly run the md5sum
. If you ever get different results, you’re seeing memory corruption.