A field programmable gate array (FPGA) and a decryption circuit are
implemented within a common integrated circuit (IC) or within separate ICs
enclosed within a common IC package. The decryption circuit decrypts an
input FPGA program encrypted in accordance with a particular encryption
key and then writes the decrypted FPGA program into the FPGA. Thus an FPGA
program encrypted in accordance with a particular encryption key can be
used to program only those FPGAs coupled with a decryption circuit capable
of decoding the encrypted FPGA program in accordance with that particular
encryption key. Since the decryption circuit and the FPGA are implemented
in the same IC, or within the same IC package, the decrypted FPGA program
the decryption circuit produces cannot be readily intercepted and copied.