¿Qué configuración debo usar para un sistema que incluye un ARM y un FPGA?

5

Tengo un diseño que utiliza un FPGA Altera Cyclone para implementar una Función Físicamente Inclonable (PUF) y un dispositivo ARM para realizar trabajos criptográficos y E / S con la PUF. El PUF es muy grande y ocupa bastante espacio (solo una cuarta parte cabrá en el ciclón)

Mi pregunta es, ¿me serviría mejor si obtengo un FPGA lo suficientemente grande como para incluir tanto el PUF como el núcleo ARM o un FPGA más pequeño para el PUF y un segundo chip ARM externo? ¿Puedes dar algunas sugerencias?

Si usara dos chips, se comunicarían con SPI. No hay mucha comunicación entre los dos, ni tiene que ser rápida.

    
pregunta samoz

4 respuestas

9

No puedo comentar sobre su aplicación específica (no ser un experto en criptografía), sin embargo, colocar un procesador a bordo con un FPGA es algo muy común. Principalmente, la razón es que ahora liberas espacio FPGA para hacer lo que es bueno para FPGA, mientras que usas el procesador independiente más económico para hacer lo que es bueno, quizás incluso más rápido de lo que podría hacerse con una CPU de software que se ejecuta en el FPGA. Además, los FPGA más grandes pueden ser bastante caros, en comparación con los ARM más rápidos, que pueden tener un precio bastante razonable.

Básicamente, creo que deberías usar los dos chips, pero es difícil hacer una proclamación segura sin conocer los detalles de tu área específica.

    
respondido por el davr
5

Creo que la respuesta correcta de dos chips contra FPGA grande se reducirá a qué tipo de ataques enfrentará el dispositivo. Eso significa que necesita saber algo sobre sus posibles escenarios de ataque y necesidades de seguridad.

¿Cuál es el daño si el atacante prueba esa comunicación SPI? ¿Él recibe las llaves? ¿Texto sin formato? ¿Etapas intermedias del proceso de encriptación? Si el atacante puede convertir esa sonda en texto plano, ¿cuál es el daño? ¿Acceso ilegal a un canal de televisión por satélite de pago? ¿Datos financieros? ¿Secretos militares? Esto es lo más importante para entender. Informa todas sus otras preguntas (porque, por supuesto, cuanto más sensibles son los datos, más vale la pena protegerlos).

¿Estará el dispositivo en algún lugar donde el atacante pueda alterarlo sin ser detectado?

Por ejemplo, si se trata de un sistema de seguridad en un reproductor de Blu-ray, debes asumir que el atacante abrirá la cosa mientras se ejecuta en algún momento. Por otro lado, si se trata de un sistema de comunicaciones militares utilizado solo por el Presidente de los Estados Unidos, podría ser seguro asumir que el atacante no va a tener tiempo solo con el dispositivo.

¿Qué tan motivado está el atacante? ¿Qué tipo de recursos es probable que tenga el atacante?

¿Se le permite sellar la cosa en una caja especial que puede destruir la placa si se rompe?

Necesitas un buen perfil de contra qué te enfrentas para tomar esta decisión.

    
respondido por el Michael Kohne
4

depende del tamaño / complejidad del núcleo ARM y del FPGA que necesita.

Las únicas preocupaciones técnicas son el uso de energía (el FPGA grande y único es probablemente mayor) y la integridad de los datos en la línea SPI. Es decir, ¿la seguridad de su sistema puede verse comprometida por alguien que analiza los datos que se envían en la línea SPI?

Aparte de eso, el precio es el problema. No olvide incluir el espacio de PCB y los componentes externos necesarios para cada IC cuando tenga en cuenta las diferencias de precio.

    
respondido por el Mark
2

Desde un punto de vista de diseño práctico, los chips separados son una buena idea. Sin embargo, las preocupaciones de seguridad requerirían comunicaciones cifradas en el bus, medidas cuidadosas para asegurarse de que no haya datos importantes en el bus o utilizar un único chip monolítico.

También hay otros problemas. Los FPGA generalmente se programan desde la memoria Flash (excepto en algunos casos raros que usan elementos como los antifusibles). También tiene que preocuparse de que la aplicación sea escuchada durante la configuración.

Incluso después de la configuración, muchos FPGA y otros microcontroladores también tienen pines JTAG que se pueden usar para leer el programa fuera del dispositivo, o inspeccionar otros aspectos de la programación.

    
respondido por el ajs410

Lea otras preguntas en las etiquetas