8 votos

cómo guardar correctamente una arquitectura en un ic fpga para siempre

Considerando que hice una arquitectura para hacer alguna cosa específica, escrita en vhdl, por ejemplo.

¿Puedo "grabarlo" en un chip fpga, para siempre? ¿O cómo debo hacerlo, protegiendo la propiedad intelectual sabiendo el hecho de que se puede leer desde la memoria flash de serie?

12voto

Harry Puntos 1

Las FPGAs Xilinx Spartan 3AN tienen una flash interna que las hace no volátiles. Su pregunta es en realidad múltiples preguntas.

1) ¿Las FPGA son volátiles o no volátiles? La mayoría son volátiles, lo que requiere que el flujo de bits de configuración se lea en la FPGA desde un dispositivo de almacenamiento no volátil externo en cada encendido. Hay algunas que son no volátiles. Como la Xilinx S3AN que mencioné.

2) ¿Cómo se protege el flujo de bits de la configuración? Hay múltiples respuestas a esta pregunta.

Se puede cifrar el flujo de bits; lo que significa decir que el flujo de bits que se almacena en el dispositivo de almacenamiento no volátil antes mencionado es un texto cifrado único que sólo puede ser descifrado por el fpga único con la clave adecuada. Esto protegerá la funcionalidad del flujo de bits de ser descubierta por ingeniería inversa. Es decir, que aunque se pueda extraer el flujo de bits cifrado del dispositivo de almacenamiento no volátil, ya sea in situ o por medios más destructivos, no se podrá dar sentido al archivo extraído ya que está cifrado.

También se puede establecer que se prohíba la lectura del flujo de bits. La interfaz JTAG que se utiliza para programar una FPGA en tiempo de depuración puede utilizarse generalmente para leer el flujo de bits de configuración del fpga. Establecer la opción NO_READBACK prohíbe esto.

1 votos

¿Cómo puede la propia FPGA leer el flujo de bits cifrado si no es posible descifrarlo? La respuesta es, por supuesto, que es posible descifrar el flujo de bits. Sólo es un poco más difícil porque está ofuscado.

0 votos

¿Eh? El flujo de bits de texto plano (llámalo Bpt) es encriptado por una función de encriptación Ek() que toma el texto plano y una clave secreta (llámalo Clave) para crear un flujo de bits de texto cifrado (llámalo Bct), así que Bct = Ek(Bpt, Clave). Esto se almacena y en el momento del arranque se transmite a la FPGA, que conoce la clave secreta, por lo que es capaz de descifrarlo, Bpt=Ek(Bct, Key). Sin la clave, un tercero no puede realizar la operación de descifrado. Dado el tiempo de procesamiento y otras herramientas criptoanalíticas, el tercero podría potencialmente averiguar el texto plano, pero no a través del proceso de descifrado previsto.

0 votos

El atacante podría simplemente averiguar también la clave y proceder a descifrar el texto plano. Supongo que la clave puede ser bastante difícil de recuperar desde el hardware (por ejemplo, una tarjeta inteligente), pero si está almacenada en algún tipo de memoria normal, no debería ser más difícil que recuperar el texto cifrado.

7voto

RWH Puntos 21

Es posible encontrar FPGAs con una memoria de programa no volátil integrada. Por ejemplo, Microsemi (antes Actel) está especializada en este tipo de dispositivos.

Otros proveedores ofrecen la opción de programar con máscara una FPGA. Por ejemplo, Xilinx llama a sus dispositivos programados con máscara " EasyPath " FPGAs. Esto requiere un pago de NRE, por lo que sé, por lo que no es apropiado para situaciones en las que podría necesitar actualizar su diseño. (Sugerencia de sombrero a alex.forencich por la corrección)

2 votos

Las FPGAs EasyPath no se programan con máscaras, sino que se prueban a medida sólo para su flujo de bits, reduciendo los costes de las pruebas y aumentando el rendimiento (pueden tolerar defectos en componentes que su diseño no utiliza). La FPGA sigue necesitando una flash de configuración con su diseño cargado para poder funcionar. Si se programara con máscara, el NRE sería enorme.

6voto

George Puntos 487

Al menos puedo hablar de Altera, supongo que Xilinx tendrá algo similar. Tienen la opción de encriptar el archivo que pones en la flash externa o EEPROM. Luego cargas la clave de descifrado en la parte de altera, utilizando su almacenamiento de claves no volátil o con respaldo de batería.

Como no se puede leer la clave en voz alta, protege su IP. Estaban perdiendo victorias de diseño frente a Asics porque no podían proteger la propiedad intelectual de la gente, así que esta es una característica bastante común.

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

0voto

John T Puntos 14067

La única manera de lograr esto es mediante la compra de un módulo Flash por separado (si usted no tiene ya uno en el PGA) y la carga de su código en la memoria RAM, sin embargo, esto no se recomienda para toda la molestia, sólo la compra de algo como un CPLD si usted planea en la reprogramación en un momento posterior o un ASIC si usted no tiene intenciones de reprogramar de nuevo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X