miniaturadeimagen|280x280px|Ejemplo de criptografía asimétrica La criptografía (del griego κρυπτός (kryptós), «secreto», y γραφή (graphé), «grafo» o «escritura», literalmente «escritura secreta») se ha definido, tradicionalmente, como el ámbito de la criptología que se ocupa de las técnicas de cifrado o codificado destinadas a alterar las representaciones lingüísticas de ciertos mensajes con el fin de hacerlos incomprensibles a receptores no autorizados. Estas técnicas se utilizan tanto en el arte como en la ciencia y en la tecnología. Por tanto, el único objetivo de la criptografía era conseguir la confidencialidad de los mensajes, para lo cual se diseñaban sistemas de cifrado y códigos, y la única criptografía existente era la llamada criptografía clásica, donde se ocultaba tanto el algoritmo como la clave criptográfica.
La aparición de la informática y el uso masivo de las comunicaciones digitales, han producido un número creciente de problemas de seguridad. Las transacciones que se realizan a través de la red pueden ser interceptadas, y por tanto, la seguridad de esta información debe garantizarse. Este desafío ha generalizado los objetivos de la criptografía para ser la parte de la criptología que se encarga del estudio de los algoritmos, protocolos (se les llama protocolos criptográficos), y sistemas que se utilizan para proteger la información y dotar de seguridad a las comunicaciones y a las entidades que se comunican.
Para ello los criptógrafos investigan, desarrollan y aprovechan técnicas matemáticas que les sirven como herramientas para conseguir sus objetivos. Los grandes avances producidos en el mundo de la criptografía han sido posibles gracias a la evolución que se ha producido en el campo de la matemática e informática.
Objetivos La criptografía actualmente se encarga del estudio de los algoritmos, protocolos y sistemas que se utilizan para dotar de seguridad a las comunicaciones, a la información y a las entidades que se comunican. El objetivo de la criptografía es diseñar, implementar, implantar, y hacer uso de sistemas criptográficos para dotar de alguna forma de seguridad. Por tanto el tipo de propiedades de las que se ocupa la criptografía son, por ejemplo: Confidencialidad. Es decir, garantiza que la información sea accesible únicamente a personal autorizado. Para conseguirlo utiliza códigos y técnicas de cifrado. Integridad. Es decir garantiza la corrección y completitud de la información. Para conseguirlo puede usar por ejemplo funciones hash criptográficas MDC, protocolos de compromiso de bit, o protocolos de notarización electrónica. Vinculación. Permite vincular un documento o transacción a una persona o un sistema de gestión criptográfico automatizado. Cuando se trata de una persona, se trata de asegurar su conformidad respecto a esta vinculación (content commitment) de forma que pueda entenderse que la vinculación gestionada incluye el entendimiento de sus implicaciones por la persona. Antiguamente se utilizaba el término "No repudio" que está abandonándose, ya que implica conceptos jurídicos que la tecnología por sí sola no puede resolver. En relación con dicho término se entendía que se proporcionaba protección frente a que alguna de las entidades implicadas en la comunicación, para que no pudiera negar haber participado en toda o parte de la comunicación. Para conseguirlo se puede usar por ejemplo firma digital. En algunos contextos lo que se intenta es justo lo contrario: Poder negar que se ha intervenido en la comunicación. Por ejemplo cuando se usa un servicio de mensajería instantánea y no queremos que se pueda demostrar esa comunicación. Para ello se usan técnicas como el cifrado negable. Autenticación. Es decir proporciona mecanismos que permiten verificar la identidad del comunicador. Para conseguirlo puede usar por ejemplo función hash criptográfica MAC o protocolo de conocimiento cero. Soluciones a problemas de la falta de simultaneidad en la telefirma digital de contratos. Para conseguirlo puede usar por ejemplo protocolos de transferencia inconsciente.
Un sistema criptográfico es seguro respecto a una tarea si un adversario con capacidades especiales no puede romper esa seguridad, es decir, el atacante no puede realizar esa tarea específica.
Terminología En el campo de la criptografía muchas veces se agrupan conjuntos de funcionalidades que tienen alguna característica común y a ese conjunto lo denominan 'Criptografía de' la característica que comparten. Veamos algunos ejemplos: Criptografía simétrica.- Agrupa aquellas funcionalidades criptográficas que se apoyan en el uso de una sola clave para cifrar y descifrar la información. Es eficiente pero requiere compartir la clave de forma segura. Criptografía asimétrica.- Agrupa aquellas funcionalidades criptográficas que se apoyan en el uso de parejas de claves compuesta por una clave pública, que sirve para cifrar, y por una clave privada, que sirve para descifrar. Permite la autenticación y el intercambio seguro de información sin necesidad de compartir claves. Criptografía con umbral.- Agrupa aquellas funcionalidades criptográficas que se apoyan en el uso de un umbral de participantes a partir del cual se puede realizar la acción. Criptografía basada en identidad.- Es un tipo de Criptografía asimétrica que se basa en el uso de identidades. Criptografía basada en certificados.- Esta técnica utiliza certificados digitales para verificar la autenticidad de las claves públicas. Criptografía sin certificados.- En contraste con la anterior, esta técnica no hace uso de certificados digitales para la verificación. Criptografía de clave aislada.- Esta técnica implica el uso de una clave específica y aislada para realizar operaciones criptográficas.
Evaluación de la seguridad de un sistema criptográfico El objetivo de un sistema criptográfico es dotar de seguridad. Por tanto para calibrar la calidad de un sistema criptográfico es necesario evaluar la seguridad que aporta dicho sistema.
¿Hacer público o no? Para poder evaluar mejor la seguridad de un sistema criptográfico, además de las verificaciones internas de seguridad que la organización haga, se puede considerar hacer público a todo el mundo los entresijos del sistema. Sin embargo, al hacer pública esa información se facilita el que alguien pueda descubrir alguna debilidad y la aproveche o incluso la haga pública para que otros la puedan utilizar. Cuanta más información se publique más fácil será encontrar debilidades tanto para buenos objetivos (mejorar el producto) como para malos (realizar ataques). En resumen cuanta más información se publique más personas podrán evaluar la seguridad y se podrán corregir las debilidades que se encuentren, pero también aumenta la exposición a ataques. En función de las decisiones que se tomen se establecerá una política de revelación.
Se considera que la seguridad de un sistema criptográfico debe descansar sobre el tamaño de las claves utilizadas y no sobre el secreto del algoritmo. Esta consideración se formaliza en el llamado principio de Kerckhoffs. Esto no quiere decir que cuando usemos criptografía tengamos que revelar los algoritmos, lo que quiere decir es que el algoritmo tiene que ser seguro aunque este sea difundido. Evidentemente si un sistema criptográfico es seguro aun revelando su algoritmo, entonces será aún más seguro si no lo revelamos.
A la política de revelación de no publicar ninguna información para que ningún atacante encuentre debilidades se le llama de no revelación y sigue una estrategia de seguridad por oscuridad. A la política de revelación de revelar toda la información se le llama revelación total. Entre ambos tipos de política de revelación hay estrategias intermedias, llamadas "de revelación parcial".
Formas de romper la seguridad
Hay básicamente tres formas de romper la seguridad de un sistema criptográficoOn the NSA. Matthew Green. Asistente de investigación de la Universidad de Johns Hopkins
Atacar la criptografía subyacente. Es lo que sería un ataque teórico a los mecanismos criptográficos usados. Atacar la implementación concreta. La criptografía puede ser implementada en software o hardware. Es bastante probable que las implementaciones concretas tengan vulnerabilidades que se pueden aprovechar. También las vulnerabilidades se podrían introducir de forma deliberada y de esta forma proporcionar puertas traseras disponibles para ser utilizadas. Ingeniería social. Muchas veces en los sistemas criptográficas hay personas o entidades que tienen privilegios especiales. Presionando a estas personas o entidades para que nos den acceso a recursos o a información privilegiada, podríamos vulnerar la seguridad del sistema.
Las personas o entidades interesadas en romper la seguridad de este tipo de sistemas tienen en cuenta todos estos frentes. Por ejemplo las informaciones de Edward Snowden revelan que el programa Bullrun adopta estos tres tipos de estrategias.
Grados de seguridad teórica Cuando se evalúa la seguridad de un sistema criptográfico se puede calibrar la seguridad que aporta en función de si este es seguro de forma incondicional o si es seguro solo si se cumplen ciertas condiciones.
Seguridad incondicional Se dice que un sistema criptográfico tiene una seguridad incondicional sobre cierta tarea si un atacante no puede resolver la tarea aunque tenga infinito poder computacional.Rolf Oppliger,"Ssl and Tls: Theory and Practice". Artech House 2009 En función de la tarea sobre la que se dice que el sistema criptográfico es incondicionalmente seguro, podemos hablar por ejemplo de:
criptosistemas incondicionalmente seguros (cifrado) autenticación incondicionalmente segura (autenticación) distribución de claves incondicionalmente segura firma digital incondicionalmente segura (firma digital)Junju Shikata, "Unconditional security"Bart Preenel,"Cryptographic Primitives for Information Authentication - State of the Art". Katholieke Universiteit LeuvenG. Hanaoka et all,"Unconditionally Secure Anonymous Encryption and Group Authentication"
Es habitual que los sistemas incondicionalmente seguros tengan inconvenientes importantes como por ejemplo en la longitud de las claves (libreta de un solo uso).
Para certificar una seguridad incondicional los criptólogos se suelen basar en la teoría de la información y, por tanto, en la teoría de la probabilidad.
Limitaciones El que un sistema tenga seguridad incondicional no quiere decir que su seguridad sea inviolable. Veamos dos consideraciones:
Los sistemas son incondicionalmente seguros desde un punto de vista probabilístico: El oponente siempre tiene una probabilidad mayor que cero de romper la seguridad. Sin embargo, esta probabilidad puede ser muy pequeña. Esto es lo que sucede con los sistemas incondicionalmente seguros. En la mayoría de los estudios sobre la seguridad de un sistema se hace la suposición de que los atacantes tienen solo un intento para atacar la seguridad del sistema. El éxito o el fracaso están determinados por el éxito o fracaso de ese intento. Esta suposición es válida, por ejemplo, en ciertos problemas de comunicación segura donde el enemigo no tiene oportunidad de verificar si el mensaje estimado es correcto o no. Sin embargo hay otros tipos de problemas donde esta suposición no tiene sentido. Por ejemplo, en un sistema de autenticación con usuario y contraseña para entrar en una cuenta restringida, el atacante puede realizar varios intentos. Además, en algunos casos, los intentos fallidos anteriores dan información para hacer una estimación mejor para los intentos siguientes.Neri Merhav, "The Shannon Cipher System with a Guessing Wiretapper". IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 45, NO. 6, SEPTEMBER 1999