[en] As a consequence of the leading role of Information and Communication Technologies (ICT) in today's econcomic activity, cryptography has become of the utmost importance to ensure the security of online communication. One of the biggest challenges of current cryptography lies in digital identity management. Public Key Infrastructure (PKI) is the most commonly used to handle this problem. In PKI, the Certi cation Authority (CA) issues certi cates for the public keys of registered users. However, this solution has a few problems which could be solved by using Identity- Based Cryptography (IBC). This document gives a brief review over the di erent ways of solving the digital identity management problem, focusing on Identity-Based Cryptography and its advantages. It also presents the formal description of the developed software project. This project implements an instant messaging app for an Android Client which connects with a Server developed in the Flask microframework for Python. The Server is made by di erent components, and it works as Private Key Generator (PKG) and as an Application Server. All in all, it implements an authentication schema based in Identity-Based Cryptography using Charm library for Python for the IBE functionality. The detailed description of the project includes its analysis, design, implementation and test plan. It also includes some complementary information in the form of annexes like the plani cation of the project and the guide for the creation of SSL certi cates.

[es] Con el gran crecimiento de las Tecnologías de la Información y de la Comunicación (TIC), la criptografía ocupa una posición de vital importancia para asegurar la seguridad en las comunicaciones. Uno de los desafíos de la criptografía actual se encuentra en la gestión de identidades digitales, problema cuya solución más empleada suele ser la Public Key Infrastructure (PKI) o Infraestructura de Clave Pública, en la que una Entidad certificadora emite certificados para las claves públicas de los usuarios registrados. Sin embargo, esta solución presenta unos inconvenientes que se podrían solucionar con la llamada Identity-Based Cryptography (IBC) o Criptografía Basada en la Identidad. En este TFG se presenta un breve repaso sobre las distintas soluciones al problema de la gestión de identidades centrándose en la Criptografía Basada en la Identidad, además de discutir sus beneficios y exponer la descripción formal del proyecto software realizado para este trabajo. Dicho proyecto lleva a cabo un Cliente de mensajería instantánea para dispositivos móviles Android que se conecta con un Servidor desarrollado en Flask para Python y que hace las veces de Servidor de aplicaciones y de Private Key Generator (PKG), implementando un esquema de autenticación basado en la identidad. Para la implementación de la Seguridad Basada en la Identidad se ha utilizado la biblioteca Charm de Python. La descripción detallada del proyecto incluye el análisis, diseño, implementación y plan de pruebas llevados a cabo para su desarrollo. Dicha descripción, además, viene acompañada de una serie de anexos con Información complementaria, como la planificación temporal del proyecto o la creación de certificados SSL.