[en] ABSTRACT:Key establishment is one of the main problems when designing new cryptosystems. The most common scenario is when two parties try to establish a shared secret for subsequent use as symmetric keys for encryption or message authentication. The problem can be even harder if more than two parties must share a secret. Because this task is critical and one of the hardest open problems in cryptography, a lot of research has been done to design new key establishment techniques. Many solutions for the key establishment problem have been proposed in the literature but most of them use public key cryptography. Those schemes are very suitable and efficient in traditional computer networks but their deployment in embedded devices is not feasible. Embedded devices are typically small, low-cost, battery powered and resource constrained. Nonetheless, they usually communicate with each other through wireless links which makes the design and deployment of new key establishment techniques a must in these environments. Several different techniques have been proposed in order to be implemented securely and efficiently in such devices, but none of them has achieved the desired degree of security. The HIMMO algorithm has been designed with the aim of being both efficient in resource-constrained devices and more secure than previous schemes. In this work we present a detailed study of the design, software implementation and evaluation of several optimizations of the original algorithm which lead to a very efficient implementation of HIMMO in embedded platforms.

[es] RESUMEN:El establecimiento de claves es uno de los mayores problemas que se presentan a la hora de diseñar un criptosistema. El caso más sencillo se da cuando dos partes tratan de establecer un secreto compartido que posteriormente utilizarán como clave simétrica para cifrar o autenticar mensajes. La complejidad de la tarea aumenta cuando más de dos partes necesitan compartir un secreto. La importancia de este paso y la dificultad existente para resolverlo han hecho que las técnicas para el establecimiento de claves hayan captado la atención de gran cantidad de investigadores. Multitud de soluciones se han propuesto, siendo aquellas que hacen uso de criptografía pública las más comúnmente utilizadas en la práctica. Aunque dichas técnicas resultan muy eficientes y adecuadas en redes de computadores convencionales, su despliegue en sistemas embebidos con menos recursos no parece posible. Este tipo de dispositivos suelen tener grandes restricciones en términos de consumo eléctrico, coste de desarrollo, tamaño y cantidad de recursos disponibles. No obstante, es habitual que se comuniquen entre ellos a través de conexiones inalámbricas, lo que hace aún más necesario el estudio e implementación de nuevas técnicas para establecer claves entre varias partes en este tipo de entornos. Diversas técnicas se han propuesto para ser implementadas de manera segura y eficiente en esta clase de dispositivos, sin embargo, ninguna de ellas ha conseguido el nivel de seguridad deseado. El algoritmo HIMMO ha sido diseñado con el fin de ser eficiente en dispositivos con recursos limitados y, al mismo tiempo, mejorar el nivel de seguridad alcanzado por anteriores esquemas. En este trabajo se presenta un estudio detallado del diseño, implementación software y evaluación de diversas optimizaciones del algoritmo original que permiten que HIMMO se implemente de manera muy eficiente en plataformas embebidas.