Circuits, methods, and apparatus that prevent easy detection and erasure
or modification of an encryption or encoding key. This key may be used to
encode and decode a configuration bitstream for an FPGA or other
programmable or configurable device. One embodiment of the present
invention obfuscates a key then stores it in a memory array on an FPGA.
This memory array may be a one-time programmable memory to prevent
erasure or modification of the key. After retrieval from storage, a
reverse or de-obfuscation is performed to recover the key. Further
obfuscation may be achieved by proper layout of the relevant circuitry.