Information Security Stack Exchange is a question and answer site for information security professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I know that FPGAS of Altera enables you to encrypt the RTL code while you work with it, what I can't understand is why it is really encrypted since once I have the FPGA, I can take it and with flash reader (theoratilcly) read the encoded RTL code, and read the KEY of the FPGA and then I have the code.

what do I miss?

share|improve this question
If you have the KEY then you are able to reverse the encryption process because of the key. You really should be talking to people who extreme amount of knowlege with the FPGA equipment your asking about. – Ramhound Feb 22 '12 at 15:57
Does the FPGA read data from external device on boot. If so this data can be read. If fpga has a private key, then its public key can be used to encrypt the data. Then not even you can read it, only the fpga, Altera (they will hava a copy if the private key) and some one with an electron microscope can read it. [This is all speculation as to how this fpga works] – richard Feb 23 '12 at 13:35
up vote 4 down vote accepted

First Part: the Altera FPGAs have some models that allow you to store keys in volatile and non-volatile memory.

Altera explain that they use AES with 128 or 256 bits. The private key is stored in the FPGA and the external memory have the data encrypted with the public key. In the boot-up, the data in read from the external memory, decrypted with the private key inside the FPGA, and then processed to configure all the following reads (think like a config header).


Second Part: they have anti-tamper measures to prevent someone from doing exactly what you're afraid off. See:

In general, it's "easy" to open the chip and brute-force extract each component position inside it, doing a kind of reverse-code attack. FPGA are programable, so an already programed and a virgin FPGA will look the same at the phisical level attack. And you end up destroying the programming when you try to open the chip and extract something from it.

And, to protect you from extracting the key, there's no function like *read_private_key* . You can write and overwrite it, but you can't extract it.

share|improve this answer

From the bitstream to the netlist:

FPGA Bitstream Security Broken:

if you want to devote time, a lot of it, then you can reverse-engineer FPGA's. Using differential power analysis (DPA) to retrieve the security key at power-up, then read the bitstream, reverse that to the netlist, then analyse that until you know the design or just clone it.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.