Autor: Gabriel Torrens Caldentey, profesor titular de universidad del Área de Tecnología Electrónica de la Universitat de les Illes Balears.

Hoy en día utilizamos de forma habitual dispositivos electrónicos para multitud de tareas: comunicarnos, trabajar, estudiar, buscar información o simplemente para el ocio. Nos referimos a ordenadores, teléfonos móviles, tabletas, relojes inteligentes, etc. ¿Qué tienen en común todos estos dispositivos? Pues que pueden conectarse a Internet y que para funcionar utilizan toda una electrónica que, a veces, olvidamos que está allí.

Hablemos un poco sobre cómo funcionan estos dispositivos, qué tipos de componentes electrónicos los forman y, finalmente, cómo las pequeñas imperfecciones de fabricación, que en principio parecerían solamente perjudiciales, pueden acabar utilizándose para mejorar la seguridad. Veremos que de ellas puede obtenerse una especie de huella dactilar que puede ser útil.

Componentes electrónicos: microprocesador y memoria

Comencemos por el principio: los componentes con los que se construyen los dispositivos electrónicos. En particular, destacan dos componentes cuya función y características describiremos en los próximos párrafos: son el microprocesador y la memoria. Ambos son circuitos integrados.

Así pues, para empezar, cabe preguntarse: ¿qué es un circuito integrado? Un circuito integrado es un circuito electrónico que se fabrica (o, lo que es lo mismo, se integra) sobre un material semiconductor, normalmente silicio. Sobre este sustrato de silicio se construye el circuito electrónico, que a su vez, está formado por diversos elementos. Entre ellos, destacan los transistores, puesto que son los principales elementos con los que se construye la electrónica actual (aunque hay otros).

Un transistor puede realizar diversas funciones, pero la principal en la electrónica digital es la de interruptor controlado. Es decir, es un elemento que es capaz de dejar pasar la corriente eléctrica o de bloquearla según convenga. Por cierto, los transistores actuales son muy pequeños, del orden de los nanómetros, es decir, en un milímetro caben decenas de miles de transistores puestos en fila. Al circuito de silicio se le coloca un encapsulado protector y una serie de contactos metálicos de interconexión eléctrica denominados pines. De esta forma se obtiene lo que comúnmente se denomina chip (o microchip), como el de la fotografía. El cuadrado oscuro es el encapsulado en cuyo interior se encuentra el circuito de silicio. Las estructuras que rodean al encapsulado por sus cuatro costados se denominan pines y sirven para conectar el chip con otros componentes. Todo el conjunto está montado sobre una placa, que se denomina placa de circuito impreso (en este caso, de color verde).

Fotografía de un chip. Puede apreciarse su encapsulado (cuadrado oscuro, de aproximadamente 2 cm de lado) y los pines de interconexión en sus cuatro costados.
(Fuente: Pixabay. Uso gratuito: Licencia de contenido)

El microprocesador del que hablábamos en el párrafo anterior se encarga de hacer los cálculos necesarios para que el dispositivo electrónico funcione. Precisamente se le denomina microprocesador porque se encarga de tratar (o procesar) los datos del dispositivo. Por ejemplo, sería el encargado de decidir qué hacer cuando pulsamos un botón en la pantalla de un móvil. A través de alguno de los pines del microprocesador, le llega la información de que hemos pulsado un determinado botón, por ejemplo el de enviar un mensaje, y desencadena toda la secuencia de procesos para enviar ese mensaje. En particular, mandará señales eléctricas a otros componentes para que hagan su parte de la tarea.

Puesto que el microprocesador trata con datos, cabe preguntarse dónde se almacenan dichos datos. Pues la respuesta es que los datos necesarios para que el microprocesador funcione se almacenan en diversos tipos de memoria. En concreto, los datos de uso más inmediato se almacenan en un tipo de memoria denominada RAM (del inglés Random Access Memory, o memoria de acceso aleatorio). El nombre de acceso aleatorio proviene de que el tiempo que se tarda en acceder a cada dato no depende de la posición en la se encuentre el dato en cuestión dentro de la memoria, sino que puede accederse a cualquier dato aleatorio en aproximadamente el mismo tiempo.

Sin embargo, existen otros tipos de memoria, como las antiguas memorias en cinta magnética, en las que la posición del dato dentro de la cinta sí que influía en gran medida en el tiempo necesario para llegar a él (véase la fotografía de un ordenador antiguo con este tipo de memoria). ¡Cuánto hemos avanzado en 50 años!

Fotografía de parte de un ordenador del año 1969. Pueden apreciarse las cintas magnéticas en las que se almacenaba la información.
(Fuente: Wikipedia. Dominio público)

Las memorias RAM son memorias volátiles, en el sentido de que solamente retienen la información mientras reciben alimentación eléctrica. Esto puede parecer un inconveniente, aunque un poco más adelante veremos cómo se le puede sacar partido. En contraposición, existen otras memorias no volátiles, como los discos duros mecánicos o las denominadas memorias flash (usadas en memorias USB o pendrives y en discos duros de estado sólido). Estas sí son capaces de retener la información cuando el dispositivo está apagado y no recibe alimentación eléctrica. Por este motivo, se utilizan para almacenar los datos a largo plazo.

Sin embargo, el microprocesador solamente utiliza los datos cuando está en funcionamiento, con lo que es suficiente con una memoria volátil tipo RAM, que, por otra parte, tiene una gran ventaja y es que es mucho más rápida que la memoria no volátil. En este sentido, cabe señalar que existen dos tipos principales de memoria RAM: la RAM estática (o SRAM) y la RAM dinámica (o DRAM). Estos dos tipos de memoria RAM se diferencian en que las primeras almacenan los datos sin tener que llevar a cabo ninguna acción más allá de mantener la alimentación eléctrica del circuito. Mientras que, por su parte, las DRAM requieren que se actualicen los datos cada cierto tiempo, pues de lo contrario se pierden. Aquí, nos centraremos en las memorias SRAM.

Peligros de la conexión a Internet

Como hemos señalado al principio, en la mayoría de las ocasiones los dispositivos electrónicos que utilizamos se conectan a Internet. Esto, por un lado, es una enorme ventaja por las posibilidades de conectividad que ofrece, pero, por el otro, entraña un peligro potencial en términos de seguridad y privacidad. De hecho, una de las áreas de investigación actuales en el campo de la electrónica es cómo conseguir que la identidad de un dispositivo no pueda ser suplantada. Para ello, se utilizan claves digitales únicas para cada dispositivo que lo identifiquen de forma individual y exclusiva.

El problema radica en que, si esta clave se almacena en el dispositivo, puede ser replicada (o clonada) en otro. Lo ideal sería utilizar como clave algo único interno de nuestro dispositivo que no pudiera ser replicado de forma alguna. La idea innovadora es utilizar las imperfecciones intrínsecas (o pequeños defectos) que se dan de forma inherente e inevitable en el proceso de fabricación de los chips de silicio con los que están construidos los dispositivos. En concreto, una de las áreas de investigación actuales se centra en conseguir utilizar dichas imperfecciones de los chips de memoria, en concreto de las memorias SRAM.

Las imperfecciones que nos identifican

La idea es extraer de estas imperfecciones una clave única que identifique nuestro dispositivo de forma que sea completamente imposible replicar dicha clave en otro dispositivo. Esto es así puesto que no es posible predecir el lugar exacto donde surgirán dichas imperfecciones ni cuán grandes serán. Lo que sí que es posible afirmar es que el patrón de imperfecciones será diferente en cada dispositivo, con lo que, potencialmente, puede utilizarse para identificarlo de forma específica. En definitiva, estas claves únicas vendrían a ser el equivalente electrónico de las huellas dactilares de nuestros dedos y que pueden utilizarse para identificarnos.

Detalle de huella digital.
(Fuente: Wikipedia. Licencia Creative Commons)

¿De dónde proceden dichas imperfecciones?

Ningún proceso de fabricación es perfecto y el proceso de fabricar transistores no es una excepción. Cuando se intenta fabricar un conjunto de transistores iguales, no todos resultan idénticos, sino que por ejemplo sus medidas (y otros parámetros) varían ligeramente. Además, hay que tener en cuenta que, como ya hemos dicho, los transistores actuales son de tamaño microscópico y, cuanto más pequeño es un objeto, más difícil es fabricarlo con precisión.

Los circuitos electrónicos se diseñan para que sus pequeñas imperfecciones no afecten a su funcionamiento normal. No obstante, como explicaremos más adelante, estas imperfecciones pueden utilizarse con el fin de obtener una clave que sirva de huella (o firma) única para identificar un dispositivo.

¿De dónde pueden obtenerse estas claves únicas en el caso de una memoria SRAM?

¿Recuerdan que las memorias SRAM eran memorias volátiles? Es decir, que solamente almacenaban los datos mientras se mantenía la alimentación eléctrica de la memoria. O dicho de otra forma, que cada vez que se pone en funcionamiento una memoria, esta se encuentra vacía.

¿Vacía? ¿Qué significa estar vacía en el caso de una memoria SRAM? Para responder a esta pregunta, hay que aclarar primero que en una memoria digital (como las SRAM) los datos se almacenan en forma de bits mediante un código binario. Un bit puede valer o cero o uno, y una secuencia de ceros y unos forma un dato (o, más técnicamente, una palabra, en el sentido digital del término). En el caso de una memoria SRAM, cada bit se almacena en un bloque denominado celda de memoria, la cual puede tomar solamente el valor de cero o de uno (pero no un valor intermedio).

Puede imaginarse una celda de memoria como un balancín (o sube y baja) como los que abundaban en parques infantiles (véase un ejemplo en la fotografía). Este solamente puede estar inclinado hacia un lado o hacia el otro: si se pone un niño en cada extremo del balancín, este se inclinará hacia un lado o hacia el otro en función de qué niño pese más, ¿verdad? Pues algo similar ocurre en una celda de memoria SRAM: solamente puede estar en dos estados. En uno de ellos decimos que almacena un cero, mientras que en el otro almacena un uno.

Fotografía de un sube y baja (también denominado balancín o subibaja según la RAE).
(Fuente: Pixabay. Uso gratuito: Licencia de contenido)

Esta analogía sirve para visualizar lo que ocurre cuando se pone en marcha una memoria SRAM: cada una de las celdas se decanta hacia el cero o el uno, pero nunca toma un valor intermedio. ¿Y por qué no puede simplemente quedarse en un valor intermedio?

Siguiendo con la analogía del parque infantil, preguntémonos qué sucedería incluso si los dos niños pesaran exactamente igual. La respuesta es que el balancín se inclinaría hacia un lado o hacia el otro, por ejemplo debido a pequeñas imperfecciones en los brazos del balancín. Es imposible que sean perfectamente simétricos, así que uno siempre será un poco más largo o pesado, con lo que el balancín se inclinaría hacia ese lado.

Este tipo de imperfecciones existen también en los elementos constructivos de una celda de memoria SRAM, puesto que están formadas por transistores (normalmente 6, pero también las hay de 8 transistores), tal como se explica con mayor detalle en el artículo [1]. Durante el proceso de fabricación de una celda, es imposible que todos sus transistores tengan las características exactas deseadas. Así pues, toda celda está ligeramente desequilibrada (recuerden la analogía del balancín), de forma que cuando se pone en marcha una memoria SRAM, cada celda se inicializa hacia un cero o hacia un uno.

Además, no es posible predecir qué celdas harán una cosa o la otra, ya que tampoco es posible predecir cómo se habrán distribuido las imperfecciones durante el proceso de fabricación. Lo que sí que es posible afirmar es que el patrón de ceros y unos que se obtendrá será diferente entre un chip y otro y, por tanto, puede utilizarse como una clave identificadora única imposible de replicar en otro chip. Este patrón proviene del hecho de que las celdas de memoria se distribuyen formando una matriz como la que puede verse en la fotografía. Cada una de ellas estará inicializada a un valor, lo que genera una distribución única de ceros y unos que puede utilizarse como clave.

Vista al microscopio de un conjunto de celdas de memoria SRAM. Puede apreciarse el patrón repetitivo en forma de matriz de celdas.
(Fuente: Wikipedia. Licencia CC-BY 3.0)

Una función físicamente no clonable

Obtener una clave con estas propiedades a partir de características físicas imposibles de replicar (o clonar) es lo que se denomina una función físicamente no clonable, o PUF, por sus siglas en inglés (Physically Unclonable Function) y es un área de investigación activa. Todavía quedan por solucionar ciertos problemas, algunos de los cuales se abordan en los artículos que se referencian al final. En particular, los artículos [2] y [3] se centran en unos de los principales problemas que quedan por resolver: no todas las celdas de memoria resultan igual de fiables en este comportamiento al inicializarse. Algunas celdas se inicializan siempre a uno, mientras que otras lo hacen siempre a cero; en ambos casos se trata de celdas adecuadas para implementar un PUF. Sin embargo, hay otras celdas que tienen un comportamiento más errático: algunas veces se inicializan a cero y otras a uno, por lo que no resultan útiles para generar claves que sirvan como firma o huella única para la identificación.

Si se consiguen solucionar este y otros problemas técnicos para implementar PUF con memorias SRAM, se contribuirá a la mejora de la seguridad y la privacidad de nuestros dispositivos. Además, hay que tener presente otra gran ventaja de utilizar memorias SRAM como PUF, y es que dichas memorias están presentes en prácticamente todos los dispositivos actuales. Así pues, el coste de implementar está técnica puede ser muy pequeño, puesto que pueden aprovecharse los chips actuales con ninguna o muy pocas modificaciones.

El Área de Tecnología Electrónica del Departamento de Ingeniería Industrial y Construcción de la Universitat de les Illes Balears (UIB), a la que pertenezco, investiga sobre este tema. Tres de los artículos sobre memorias SRAM y PUF que hemos publicado en revistas científicas pueden consultarse en los siguientes artículos enlazados:

Artículos:

  1. Torrens, G.; Alorda, B.; Carmona, C.; Malagón-Periánez, D.; Segura, J.; Bota S. 2019. “A 65-nm Reliable 6T CMOS SRAM Cell with Minimum Size Transistors» IEEE Transactions on Emerging Topics in Computing, 7(3), 447-455, https://doi.org/10.1109/TETC.2017.2721932
  2. Alheyasat, A.; Torrens, G.; Bota, S.A.; Alorda, B. 2021. “Estimation during Design Phases of Suitable SRAM Cells for PUF Applications Using Separatrix and Mismatch Metrics”. Electronics, 10, 1479. https://doi.org/10.3390/electronics10121479
  3. Torrens, G.; Alheyasat, A.; Alorda, B.; Bota, S.A. 2022. “SRAM-Based PUF Reliability Prediction Using Cell-Imbalance Characterization in the State Space Diagram”. Electronics, 11, 135. https://doi.org/10.3390/electronics11010135


Gabriel Torrens Caldentey es un autor invitado en el blog UBUinvestiga.
Imagen destacada (con lupa, huella y móvil) creada por el autor.

Este artículo ha sido revisado y editado por Samuel P.G., de la Unidad de Cultura Científica de la Universidad de Burgos. Si quieres colaborar como autor invitado en este blog, consulta nuestra sección COLABORA y envíanos un email a ucci@ubu.es.