Fuente: La economía falsificada en línea : electrónica de consumo, un informe realizado por CSC en 2017En los últimos 10 años, el número de productos falsificados en el mundo se ha duplicado. Estos datos han sido publicados en la última Revisión de Derechos de Propiedad Intelectual de fin de año por el Departamento de Seguridad Nacional de EE. UU. En 2016 (el año más reciente registrado). Gran parte de la falsificación proviene de China (56%), Hong Kong (36%) y Singapur (2%). Los fabricantes de productos originales sufren graves pérdidas, algunas de las cuales ocurren en el mercado de la electrónica.
Muchos productos modernos contienen componentes electrónicos: ropa, zapatos, relojes, joyas, automóviles.
El año pasado, las pérdidas directas por la copia ilegal de productos electrónicos de consumo y componentes electrónicos en la composición de otros bienes fueron de aproximadamente $ 0.5 billones.
¿Cómo resolver este problema?
Este problema puede resolverse mediante varios métodos para proteger la electrónica digital de la copia ilegal, la modificación y la ingeniería inversa: cifrado de hardware (AES, RSA, etc.), hash (por ejemplo, SHA-256, MD-5), la introducción de digital marcas de agua y huellas digitales en la descripción del diseño, ofuscación léxica y funcional, verificación formal y otras.
En este artículo, hablaremos sobre uno de los métodos de protección más rentables en términos de costos de hardware: funciones físicas no razonables (PUF).
La desventaja de la mayoría de los métodos mencionados anteriormente son los costos significativos de hardware y, como resultado, el alto consumo de energía.
Con el surgimiento del concepto de Internet de las cosas (IoT), los requisitos para el área ocupada por un dispositivo digital en un chip de un circuito integrado, así como para el consumo de energía, se vuelven más estrictos a medida que el tamaño de los dispositivos disminuye drásticamente de año en año.
Funciones físicas no clonables (PUF)
Una forma de identificar y autenticar dispositivos digitales son las funciones físicas no clonables, que son mucho más económicas de implementar que los métodos de protección anteriores.
¿Qué son los PUF? Es difícil encontrar dos objetos absolutamente idénticos entre los objetos materiales que nos rodean. Incluso en la producción en masa, cada objeto es único debido a imprecisiones y accidentes. Estas características de cada objeto individual se pueden registrar y utilizar como un identificador único, una especie de "huella digital".
Un buen ejemplo es el
PUF óptico . Tome un pedazo de vidrio derretido, agréguele burbujas de aire, enfríe esta masa y córtela en barras iguales. La posibilidad de obtener dos barras absolutamente idénticas es insignificante; Las burbujas de aire en el interior se distribuirán de manera desigual. Podemos corregir estas diferencias enviando un rayo láser a la barra (solicitud) y recibiendo en la salida un patrón de interferencia único de los rayos de radiación después de la refracción (respuesta). Como resultado, obtenemos una función física no clonable que determinará la dependencia de la respuesta en la solicitud de entrada. Por supuesto, esta función no es analítica, por lo que ni el propietario legal del objeto ni un atacante pueden averiguarlo por adelantado. Solo puede probar un lote de productos y crear una tabla de valores de entrada y salida, que servirá como criterio para determinar la autenticidad de los objetos.
Los PUF para la protección de la electrónica se basan en el uso de variaciones en el proceso de fabricación durante la fabricación de circuitos integrados: por ejemplo, valores precisos para tensiones de umbral, retrasos en la propagación de señales, la frecuencia de funcionamiento de los componentes, etc. En el proceso de diseño estándar, los ingenieros de diseño electrónico buscan reducir el impacto de las variaciones en el producto final. Para PUF, por el contrario, este fenómeno incontrolado se utiliza para extraer la aleatoriedad y singularidad de un dispositivo digital.
En realidad, PUF es similar a las implementaciones de hardware de funciones hash, la única diferencia es que la unicidad del valor de salida de la PUF se basa en la unicidad de un circuito integrado en particular, y no en un algoritmo matemático.
El argumento de entrada PUF (solicitud) se llama desafío (CH), y el valor de salida es la respuesta ®. De esta manera, para algunos circuitos integrados - ICk, el conjunto de desafíos - {CH
0 , ..., CH
N-1 } - se correlacionará de forma única con el conjunto de respuestas {R
0 , ..., R
N-1 } con PUF :
Un conjunto de pares de desafío-respuesta (CRP) {(CH
0 , R0), ..., (CH
N-1 , R
N-1 )} caracteriza de manera única el circuito integrado ICk y no puede copiarse incluso para una descripción de diseño absolutamente idéntica ( ver diagrama a continuación).

Unicidad entre chips y por chip de circuitos integrados (IC)
Como se muestra en el diagrama, al implementar una descripción de diseño idéntica de la PUF en diferentes circuitos integrados, las respuestas (R
i ) a los mismos desafíos (CH
i ) serán únicas (significativamente diferentes entre sí) para cada copia. Este fenómeno se denomina unicidad entre chips, es decir, la capacidad de distinguir los circuitos integrados entre sí mediante PUF. Cuando se utilizan realizaciones idénticas de PUF en un solo chip para identificar, por ejemplo, varios componentes de la propiedad intelectual (IP), se observa el fenómeno de la unicidad por chip. Dado que las realizaciones de la PUF dentro de un chip son diferentes, al menos en su disposición mutua, la unicidad por chip o las firmas únicas de chip es, por regla general, más pronunciada que la entre chips.
Implementaciones existentes de PUF y su uso
Actualmente, hay muchas implementaciones de PUF basadas en:
- Retraso en la propagación de la señal . Usando el valor binario de los desafíos, se establece la configuración de rutas simétricas, a lo largo de la cual se distribuyen varias copias de una señal. La respuesta de la PUF es el resultado de comparar los retrasos de la señal de propagación.
- Frecuencias de los componentes . La base de este PUF es una comparación de pares de componentes idénticos con una frecuencia única. Los desafíos son todo tipo de pares de índices de varios componentes, y las respuestas son el resultado de comparar la frecuencia de su trabajo.
- Estado de la memoria . Como resultado del encendido y / o restablecimiento del estado de los dispositivos de almacenamiento estático (SRAM), el valor originalmente almacenado en cada uno de los elementos de memoria (0 o 1) es único y aleatorio. El desafío para este PUF es el encendido / apagado, y la respuesta es el estado observado de cada uno de los elementos de memoria que caracteriza de manera única el circuito integrado en el que se implementa el PUF.
- Sensor de imagen CMOS . Cada imagen creada con la ayuda de una matriz fotosensible (Sensor de imagen) tiene un componente de ruido constante que caracteriza la singularidad de la matriz implementada. El principio de funcionamiento de este PUF es similar al PUF basado en la comparación de frecuencias, con la única diferencia de que la comparación se realiza de acuerdo con los valores del voltaje umbral de cada uno de los elementos de la matriz.
- Tensión umbral del transistor . Este tipo de PUF solo puede implementarse como análogo ya que un ingeniero tiene acceso a los valores de voltaje umbral en este caso. La base de este PUF, como el PUF en función de las frecuencias, es la comparación de las características de varios transistores utilizados en el circuito integrado.
- Espejo actual . Esta clase de PUF se basa en la implementación de una matriz de espejos actuales. Los valores de voltaje en los nodos de esta matriz caracterizan de manera única el circuito integrado. El desafío, en este caso, son los números de las columnas y filas de los elementos, qué valores de voltaje desea comparar. En consecuencia, la respuesta es el resultado de comparar las diferencias de voltaje en un par de nodos con un valor umbral.
- Presión externa en la pantalla de un teléfono inteligente . En esta implementación, el desafío de la PUF es una acción del usuario que desliza un dedo en una pantalla de acuerdo con cierto patrón (como una tecla gráfica en teléfonos inteligentes). Según los valores de presión de un usuario en la pantalla del teléfono inteligente, se calcula un valor de respuesta único que caracteriza al usuario y al teléfono inteligente y, por lo tanto, se puede utilizar para la autenticación.
- Estructura de papel . Esta implementación del PUF se basa en la singularidad de la estructura del papel debido a las variaciones durante el proceso de fabricación. En consecuencia, cierto medio de papel puede usarse como fuente de claves criptográficas únicas.
Como se muestra arriba, existe una amplia variedad de tipos de PUF que se pueden implementar tanto en dispositivos digitales como utilizando otras tecnologías (óptica, magnética, papel, etc.).
La primera implementación comercial de PUF en 2008 fue identificadores de radiofrecuencia fabricados por Verayo Company. Además, en la actualidad, muchos fabricantes de FPGA, por ejemplo,
Xilinx y
Altera (Intel) , usan PUF como el identificador de FPGA no clonado incorporado.
Dado que los PUF se usan como primitivas criptográficas (generadores de números aleatorios, identificadores únicos, funciones hash de hardware), muchos fabricantes no revelan el uso de PUF para mantener en secreto los detalles de la implementación de sus protocolos de seguridad de los intrusos.
Ejemplo de memoria basada en PUF (SRAM)
Como ejemplo de PUF, utilizaremos
la implementación de PUF basada en la memoria utilizando el FPGA Xilinx Spartan 3E, que forma parte de la placa de desarrollo Digilent Nexys-2. La emulación del elemento de memoria se implementó como un elemento biestable, y el encendido / apagado se modeló reprogramando el FPGA utilizando el mismo archivo de configuración.
La siguiente figura muestra los identificadores de dos FPGA idénticos, obtenidos como resultado de su programación con el mismo archivo de bits. El color negro denota "elementos de memoria" que retienen el valor de 0 como resultado de 100 reprogramaciones, el color blanco denota el valor de 1. Los tonos de gris son aquellos que cambian el valor de lanzamiento a lanzamiento. En consecuencia, cuanto más negro en el color del "elemento", más valores de 0 se generaron como resultado de la reprogramación.

Los identificadores de 64 bits de dos FPGA idénticos
Como se ve en la figura, el método de "tarjetas de memoria" difiere significativamente: la distancia de Hamming para los identificadores de 64 bits es de aproximadamente 20. Por consiguiente, la probabilidad de que el identificador sea el mismo en diferentes FPGA es bastante pequeña, inferior a 0,01. Las "tarjetas de memoria" mencionadas anteriormente se pueden usar de dos maneras: para identificar el FPGA y como fuente de aleatoriedad debido a la presencia de elementos no permanentes.
La identificación confiable requerirá el uso de
códigos de corrección de errores (ECC) para estabilizar las "tarjetas de memoria" observadas. En este artículo, utilizamos
el método de selección mayoritaria . Implementar un generador de números aleatorios, por el contrario, requiere la "reproducción" de la aleatoriedad de esos "elementos de memoria" cuyos valores son inestables. Para este propósito, utilizamos el análisis de firma como un algoritmo de compresión de datos de pérdida. Los algoritmos de hash estándar (por ejemplo, SHA-256) también se pueden usar si las restricciones de costo de hardware no son muy estrictas.
Problemas existentes y perspectivas de PUF
A pesar de la relativa novedad de este concepto, este año el término PUF celebra su 17 cumpleaños.
Durante este tiempo, la comunidad científica ya ha logrado estudiar tanto los problemas como las posibles aplicaciones de PUF.
Uno de los principales problemas, que se demuestra con el ejemplo de PUF basado en la memoria, es la inestabilidad de algunos de los valores, lo que a su vez obliga a un ingeniero a usar códigos de corrección de errores y arquitecturas PUF más confiables.
Por otro lado, la muy alta estabilidad pone a la PUF en riesgo de ataque criptográfico utilizando métodos de aprendizaje automático, es decir, la construcción es lo suficientemente precisa, más del 95%, un modelo matemático de la PUF, que inicialmente (hasta 2010) se consideraba imposible en La comunidad científica.
Sin embargo, el uso de PUF en aplicaciones comerciales modernas como una primitiva criptográfica demuestra la promesa de investigación en este campo en busca de nuevas arquitecturas PUF, así como también mejora las características de las implementaciones existentes.