Take the 2-minute tour ×
Information Security Stack Exchange is a question and answer site for Information security professionals. It's 100% free, no registration required.

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
1  
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
add comment

1 Answer

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).

Source: http://www.altera.com/devices/fpga/stratix-fpgas/about/security/stx-design-security.html

Second Part: they have anti-tamper measures to prevent someone from doing exactly what you're afraid off. See: http://www.altera.com/literature/wp/wp-01111-anti-tamper.pdf

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
add comment

Your Answer

 
discard

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.