I'm looking for a modern memory product or solution which can hold at least 256 bits but has a destructive readout, the hardware must be reusable without requiring intervention. The only thing I have been able to find is an Arduino Project which uses core memory. No preference regarding its interface or volatility, beggars can't be choosers. Keep in mind we're not EE guys so it would be difficult for us to construct something from scratch. Any information would be appreciated. The purpose is to be key storage for an encryption solution.
-
\$\begingroup\$ Does this need to be passive destructive? Why not use an active destructive approach? \$\endgroup\$– this.joshCommented Oct 7, 2011 at 7:58
-
\$\begingroup\$ A legal requirement. \$\endgroup\$– dsdsteveCommented Oct 7, 2011 at 17:01
-
3\$\begingroup\$ At what level must it be a destructive read? Modern memories are read non-destructively. If a erase after read was built into the chip, is that good enough? What about a deliberate erase by a micro between the user and the memory? In other words, how much stuff can you have in the black box that is the destructive-read memory? \$\endgroup\$– Olin LathropCommented Oct 17, 2011 at 11:53
1 Answer
How about using two 2x64-bit shift register chips (e.g. CD4517 or MC14517B) cascaded end to end? That would yield a 256-bit shift register. Of course, nothing would prevent the contents from being read out and reloaded. If one wanted to be a bit trickier, one could use three shift register chips and add a multiplexer and latch so that one would clock in three bits at a time, but only clock out two (one could select which two); whatever bit wasn't chosen to be clocked out would be irretrievably lost. For that to be useful, one would have to prevent someone from physically getting access to the device pins without clearing the device. I don't know whether killing power would reliably kill the data instantly, but it should probably be pretty effective. The MC14557 only holds 64 bits instead of 128, but it includes a reset pin which could erase it more quickly.
An alternative approach would be to use a small microcontroller. Feed it data along with a validation code. To read out the data, the validation code must be supplied. Supplying an incorrect validation code would erase the data.