CITIES

(Circuitos Integrados para Transmisión de Información Especialmente Segura)

Inicio

La sociedad de la información ha cambiado drásticamente nuestras vidas y la implantación de las comunicaciones digitales ha hecho que en la actualidad la gran mayoría de la información sea transmitida de forma digital. Muy a menudo, información privada es enviada por redes abiertas como Internet o redes inalámbricas. Mecanismos para proteger esta información de forma adecuada, y para evitar suplantación de identidades deben ser incluidos en estos sistemas de comunicaciones. Por otro lado, cada vez más, estas comunicaciones se realizan entre dispositivos portables, cuyo funcionamiento a base de baterías y sus limitados recursos de computación imponen fuertes condicionantes a los mecanismos de cifrado y autenticación.

 

Las cualidades de seguridad que requieren estos modernos escenarios son las de asegurar la confidencialidad de las transferencias y almacenamientos de los datos, asegurar la integridad y autenticidad de los mismos, tanto cuando son recibidos a través de una transmisión, como cuando son recuperados de algún sistema de almacenamiento, y la de no repudio, por la cual los agentes en juego no pueden desdecirse de haber realizado determinadas operaciones que se conocen como firmas digitales.

 

El objetivo fundamental del proyecto es ofrecer una solución (o una familia de soluciones) hardware, eficientes desde el punto de vista de integración de circuitos y desde el punto de vista de criptoanálisis, para la realización de comunicaciones seguras entre dispositivos portables. La solución deberá garantizar la confidencialidad de las transferencias y asegurar la integridad y autenticidad de las mismas.

 

Para la protección de la confidencialidad hay que recurrir a los cifradores criptográficos. De estos, los cifradores de flujo son los que mejor se adaptan a nuestro objetivo. Su operación consiste en mezclar reversiblemente el mensaje, cuyo contenido se quiere proteger, con una secuencia pseudo-aleatoria generada por un complejo algoritmo criptográfico bajo el control de una clave simétrica que se guarda en secreto, y un valor de inicialización o semilla. Para la protección de la integridad hay que recurrir al uso de lo que se conoce como funciones hash. Estas funciones son capaces de procesar mensajes de cualquier longitud, y relacionarlos, de forma compleja e irreversible, con un vector binario de salida de longitud fija. La seguridad de las funciones hash como herramientas para la protección criptográfica de la integridad está: en la longitud del resumen binario de salida (cuanto mayor sea, más segura es la función), y en la imposibilidad teórica o computacional de invertir la función (encontrar una entrada que corresponda con una salida dada) o de encontrar una colisión de la misma (es decir, encontrar dos entradas que den el mismo resultado de salida). Todos los sistemas de verificación de la integridad, autenticidad o firma digital de los datos se fundamentan en el uso de una correcta y segura función  hash.

 

Algo relacionado con la autenticidad es poder atribuir a cada objeto físico una identidad única e irrepetible que sea accesible desde el mundo telemático o electrónico. Esa identidad suele extraerse de las peculiaridades congénitas de la creación del objeto pero, per sé, esas características no son legibles para los sistemas informáticos, Para ello se ha creado el paradigma de las funciones físicas imposibles de clonar (Physically Unclonable Functions) y resultan muy útiles como claves simétricas secretas en algunos protocolos de autenticación que utilizan funciones hash como algoritmos de generación y verificación de pruebas de identidad.

 

La implementación hardware en tecnologías VLSI de estos algoritmos plantea numerosos desafíos. Por una parte, la integración de sistemas VLSI ya no puede tener como único objetivo la consecución de sistemas funcionalmente correctos, sino que deben cumplir una serie de requerimientos como frecuencia de operación y consumo de potencia cuya consecución plantea los mayores problemas. Para aplicaciones de sistemas portables, el consumo de potencia es crítico, pues limita su portabilidad (disminución de la vida efectiva de las baterías) y su fiabilidad (estrés térmico debido al aumento de temperatura). Pero además, las implementaciones hardware de sistemas criptográficos deben ser seguras frente al criptoanálisis, y en particular frente a ataques laterales [5]. Esto supone la necesidad de introducir en los diseños técnicas de control de los tiempos de respuesta y de los consumos.

 

A lo largo del proyecto, se completó la familia de arquitecturas eficientes con el diseño y caracterización de cifradores de flujo Trivium que generan más de un bit por ciclo de reloj y con la aplicación de la técnica de bajo consumo. En concreto, fueron desarrollados cifradores Trivium que generan 8 y 16 bits en cada ciclo de reloj. Las pruebas de caracterización de estos cifradores muestran una reducción del consumo superior al 20%. Con esto se tiene una familia de cifradores Trivium de bajo consumo capaces de generar 1, 2, 8 y 16 bits en cada ciclo de reloj. Además se han diseñado y caracterizado cifradores Grain con la técnica de bajo consumo que generan 12 bits en cada ciclo de reloj. La reducción de consumo obtenido en estos casos es próxima al 50%. Se ha trabajado en un montaje experimental con que poder medir la resistencia a ataques laterales de circuitos criptográficos que incorporen las propuestas desarrolladas. Este tipo de montajes es muy complejo y requiere numerosas fases. Se ha desarrollado un montaje que mediante simulación lleva a cabo un ataque CPA (basado en la correlación) del bloque Sbox9, que es una de las Sbox implementadas con puertas XOR y AND, usadas en el algoritmo de Kasumi. Este trabajo ha dado lugar a un Trabajo Fin de Máster. En paralelo con esta fase de simulación, se ha avanzado en los procedimientos de adquisición y procesado automático en el laboratorio de datos, labor imprescindible para la realización de ataques laterales experimentales. Se han desarrollado una metodología, y un set de herramientas para la automatización de este procedimiento.

Se ha estudiado la efectividad de los ataques tipo CPA en función de la temperatura de operación de los circuitos no seguros, con seguridad aumentada y de máxima seguridad (diseñados por nosotros). No existen en la literatura referencias que presenten resultados al respecto. A temperatura ambiente, los ataques realizados han permitido desvelar la clave secreta con facilidad para las propuestas no seguras (130 iteraciones) y necesitan mayor número de iteraciones (600-1000) a medida que los circuitos son más seguros. Para nuestras propuestas optimizadas, los ataques se han mostrado estériles (no se ha podido extraer la clave secreta tras 12000 iteraciones). El comportamiento con la temperatura ha mostrado ventanas de máxima seguridad a temperaturas bajas (0º-15º).

 

Respecto a la tarea de implemntación, se han incorporado los cifradores de flujo desarrollados en el ámbito de este proyecto en un circuito integrado fabricado en la tecnología TSMC de 90 nm, diseñado dentro del proyecto Cripto-Bio (Junta de Andalucía, P08-TIC-03674), en el que se han incluido también otros circuitos desarrollados por otros investigadores de ese proyecto. En concreto introdujeron en este circuito integrado cifradores de flujo Trivium que generan tanto un bit como dos bits en cada ciclo de reloj, con la técnica de reducción de consumo y sin la técnica de reducción de consumo. Actualmente estamos a la espera de poder realizar el test de este circuito. En un segundo circuito integrado se han incluido todas las versiones del Trivium desarrolladas en el ámbito de este proyecto. En concreto se han incluido Trivium que generan 1, 2, 8 y 16 bits, en versiones normal y de bajo consumo. La realización del diseño físico de estos circuitos tiene la dificultad añadida de la generación de los árboles de reloj. Las versiones de bajo consumo se basan en la división de los registros de desplazamiento en dos registros de desplazamiento paralelos con relojes de frecuencia mitad. Para que estos registros funcionen correctamente es necesario generarles un árbol de reloj. Esta generación ha de hacerse en la herramienta de place & route, y debe ser particular para cada uno de los Trivium de bajo consumo integrados. En este circuito integrado se se ha incorporado un demostrador para la realización de comunicaciones seguras utilizando el cifrador Trivium. En concreto el cifrador Trivium de bajo consumo de un bit. Este demostrador incluye un emisor y un receptor, y permite la transmisión utilizando un protocolo SPI de mensajes del emisor al receptor. Al emisor y al receptor se le carga la clave privada a utilizar, pero el vector de inicialización es generado de forma pseudoaleatoria por el emisor y enviado al receptor sin cifrar. Esto no supone ninguna vulneración de seguridad puesto que el vector de inicialización puede ser público y además cumple con otro requisito de seguridad consistente en que en cada inicialización de los cifradores de flujo se puede utilizar la misma clave pero se debe utilizar un vector de inicialización diferente. Otro de los requisitos de seguridad de las transmisiones utilizando cifradores de flujo consiste en la comprobación de que el mensaje no ha sido alterado. Por ello el mensaje cifrado incluye también el código CRC de 16 bits del mensaje sin cifrar. El receptor, a la vez que va descifrando el mensaje le calcula el CRC y al terminar el mensaje comprueba si coinciden los CRC del mensaje recibido y el mensaje enviado.