Prima parte : gli FPGA Altera hanno alcuni modelli che consentono di memorizzare le chiavi nella memoria volatile e non-volatile.
Altera spiega che usano AES con 128 o 256 bit. La chiave privata è memorizzata nell'FPGA e la memoria esterna ha i dati crittografati con la chiave pubblica. Nel boot-up, i dati in lettura dalla memoria esterna, decifrati con la chiave privata all'interno dell'FPGA, e poi elaborati per configurare tutte le letture seguenti (pensa come un header di configurazione).
Fonte: link
Seconda parte : hanno misure anti-manomissione per impedire a qualcuno di fare esattamente ciò che ti spaventa. Vedi: link
In generale, è "facile" aprire il chip e la forza bruta estrarre ciascuna posizione di componente al suo interno, eseguendo una sorta di attacco al codice inverso. Gli FPGA sono programmabili, quindi un FPGA già programmato e vergine sembrerà lo stesso all'attacco di livello fisico. E finisci per distruggere la programmazione quando provi ad aprire il chip e ad estrarre qualcosa da esso.
E, per proteggerti dall'estrarre la chiave, non esiste alcuna funzione come * read_private_key *. Puoi scriverlo e sovrascriverlo, ma non puoi estrarlo.