CRIPTOLOGIA
En el contexto de la
comunicación entre dos o más entidades, la capacidad de procesar la información
transmitida antes de enviarla es vital para asegurar uno o más de los
necesarios en una comunicación segura.
En un modelo formal de
comunicación sobre un canal no seguro el emisor debe codificar los datos
mediante un método de cifrado usando para ello una clave dispuesta a tal
efecto. En el destino, el receptor de la información transmitida aplica un
método de descifrado usando la clave adecuada para recuperar los datos
originales.
Entre los objetivos de una
comunicación segura, además de la ya supuesta confidencialidad de datos, se
encuentran la autentificación, el control de accesos, su integridad y el no
repudio sobre los mismos.
Para poder llevarlos a cabo
los criptógrafos desarrollan algoritmos cifradores, que los criptoanalistas
intentan romper. Ambas actividades se denominan globalmente criptologia y sus
seguidores, criptologos.
Los criptoanalistas se
plantean tres puntos posibles de partida para llevar a cabo su labor: tener una
determinada cantidad de texto cifrado, pero sin poseer texto claro; poseer
tanto parte del texto como su correspondiente normal; y por ultimo el
criptoanalista puede tener la capacidad de generar texto cifrado a partir del
texto claro, por el seleccionado. Cualquier iniciativa criptográfica original
debe de tener en cuenta estas tres formas de análisis.
Un poco de historia.
Tradicionalmente los más grandes precursores de los avances en técnicas
criptográficas han sido, a lo largo de la historia, tanto el cuerpo militar
como sus respectivos gobiernos. Hasta la llegada de los ordenadores la
criptografía se reducía a transformaciones, probablemente llevadas a cabo en
circunstancias extremas, efectuadas por personal entrenado para tal tarea. Por entonces las dificultades se
centraban en la imposibilidad de grandes proezas de cálculo y de la dificultad
a la hora de cambiar de clave y/o método de cifrado, ya que esto implicaba la
reeducación del personal dedicado a tal efecto. Sin embargo la posibilidad, por
otro lado muy real, de que los criptografistas fuesen capturados por el enemigo
hizo indispensable la necesidad de cambiar de método y/o clave en muy poco
tiempo. Cuando no se dispone de hábiles capturadores de criptógrafos, pero se
dispone de la capacidad de escuchar el canal capturando a los mensajeros, los
amigos de la información ajena recurren a técnicas criptoanaliticas para
conocer, a priori, la clave de descifrado. Sin embargo, en este juego sucio hay
reglas: debe suponerse que el criptoanalista siempre conoce el método de
cifrado y/o descifrado. La razón de
dicha norma juega a favor de los criptógrafos, ya que se intenta que la
robustez de un método general no recaiga en el secretismo o la ocultación del
algoritmo usado.
Históricamente, los modelos
de cifrado se dividen en dos categorías: cifrados por sustitución y cifrados
por transposición.
En un cifrado por sustitución,
cada componente discreto del alfabeto que forma el texto normal se sustituye
por uno o más elementos del alfabeto de salida.
Los cifrados por
transposición reordenan los componentes del alfabeto del texto normal, sin
disfrazarlos. Cada elemento del alfabeto se transmite tal cual pero en una
posición distinta al original.
Funciones
Hash.
Las secciones hash no son
algoritmos criptográficos, en el sentido formal del termino, pero si son
extensivamente usadas de áreas de la informática y en la criptografía en
particular. La razón de situar este tema en este punto es exclusivamente
pedagógico, ya que considero que desde el punto de vista de su complejidad, las
funciones hash deben situarse antes de los métodos de criptografía de clave
privada.
Las
propiedades de una función hash son:
Cada bit del resultante de
la función sufre la influencia de cada bit de la entrada de la misma.
Si se modifica cualquier bit
de la entrada de la función, cada bit de salida tiene como mínimo un 50% de
posibilidades de cambiar.
Dada una entrada y su valor
hash calculado, no debe ser factible computacionalmente encontrar otra que
genere el mismo valor. En caso de existir, se dice que ambas entradas
colisionan.
Para lograr estas
propiedades, la función hash crea una transformación que asocia a una secuencia
de entrada una secuencia de salida que parezca aleatoria.
Por lo demás, el amplio uso
de funciones hash hoy en día obedece, entre otras, a las siguientes razones:
Son mucho más rápidas que
sus equivalentes en el mundo de la criptografía de clave simétrica, aun
compartiendo muchas de sus características.
No hay restricciones de
patentes ni de exportación.
La relación entrópica entre
la entrada y la salida es excelente.
Son usadas para calcular las
claves –en criptografía simétrica- a partir de entradas de usuario.
Identifican casi de forma
única un documento, permitiendo su uso en lugar del original -más extenso- para
temas de autentificación, compartición de secretos, etc.
Algunas categorizaciones de
funciones hash
Se puede distinguir entre
las funciones que aceptan solamente un parámetro y las que aceptan un segundo.
Las primeras son conocidas como funciones hash criptógrafos o funciones hash a
secas. Entre las funciones del segundo tipo distinguiremos entre las que dicho
segundo parámetro permanece secreto o puede ser público.
Función
hash unidireccional (OWHF)
Una función hash
unidireccional es una función h que satisface las condiciones siguientes:
El argumento x puede ser de
longitud arbitraria y el resultado h(x) tiene una longitud fija de n bits.
Dada una y es difícil
encontrar una x tal que h(x)-y (resistente a la pre imagen).
Función hash resistente a
colisiones (CRHF)
El hecho de que una función
hash unidireccional, no implica encontrar dos entradas que colisionen. A las
características que hereda de las OWHF hay que añadir otra: debe ser difícil
encontrar dos entradas distintas que ofrezcan el mismo resultado.
Criptografía simétrica
La criptografía moderna se
basa en los mismos principios básicos de sustitución y transposición, pero
desde otro punto de vista. Antes se buscaban algoritmos sencillos y claves
largas, hoy en dia es al contrario: buscamos claves cortas y algoritmos tan
complejos que el criptoanalista no sea capaz de entenderlo aunque tenga texto
cifrado de su elección.
Estándar de facto: DES
Estamos ante un estándar adoptado
por el gobierno de Estados Unidos en 1977. El data Encryption Estandar (DES) se
adopto ampliamente en la industria en su forma original. Actualmente no se
considera seguro debido al avance de la potencia de cálculo de los ordenadores
de hoy en día. No vamos a describir el funcionamiento interno de este sistema
criptográfico, para una buena y simple descripción se puede consultar.
Modos criptográficos
Los algoritmos de cifrado de
bloques pueden ser aplicados de diversos modos.
Electronic Codebook (ECB):
cada bloque de entrada se encripta de forma independiente al resto. Idénticos
bloques de entrada producen idénticos bloques de salida. Es el mas rápido y
fácil de implementar, sin embargo es al menos seguro.
Criptografía asimétrica
Anteriormente a 1976 podía
inducirse un axioma no escrito basado en el hecho de que todas las soluciones
de criptografía hasta la fecha estaban en la existencia de un secreto común: la
clave. Este secreto compartido era el santo grial de los criptoanalistas, y su
protección un objetivo prioritario para sus usuarios.
La naturaleza secreta de la
clave, unido a la necesidad de que ambas partes la compartiesen, ocasionaba que
se considerase tan prioritaria la transmisión del texto cifrado como el
intercambio de la clave de sesión utilizada. En 2.6 estudiaremos con más
profundidad la gestión de las claves de sesión.
La necesidad de que la clave
permaneciese secreta fue hasta la fecha indiscutible. En 1976 un articulo
firmado por Diffie y Hellman mostro otra realidad.
Su idea se baso en la de un buzón
de correo; en el, cualquier usuario podía introducir un mensaje en forma de
correo, pero solamente quien tuviese la llave del buzón lograría abrirlo para
leer su contenido. En ningún momento el emisor y el receptor comparten ningún
secreto ( el buzón es de acceso publico) si bien el segundo requiere de un
elemento oculto, la llave, esta no debe ser poseída por nadie más.
Diffie y Hellman concibieron
los sistemas de criptografía de clave publica (PKC) como un sistema donde un
receptor de mensajes cifrados
El algoritmo RSA
Desarrollado en el MIT por
Rivest, Shamir y Adleman; podemos resumir su operativa;
Seleccionar dos números
primos grandes p y q. calcular n-pxq
PKC basada en logaritmos
discretos
El esquema criptográfico que
representa esta técnica se llama Elgamal en honor a su descubridor; Taher
Elgamal. Su fortaleza y su complejidad a la hora de implementar son comparables
a la del esquema RSA.
PKC basadas en curveas
elípticas}
Aunque las curvas elípticas
han sido estudiadas desde los últimos 150 años, no fue hasta 1985 cuando se
propuso su uso en la criptologia. Dentro de estos estudios los mas asimilados
hoy en dia para ser aplicados a esquemas de clave publica dependen del problema
de logaritmos discretos sobre curvas elípticas (ECDLP) ya que las soluciones a
este necesitan un tiempo exponencial para su finalización. Podemos definir esta
arquitectura como el anteriormente citado DLP sobre los puntos de una curva
elíptica.
Ataques contra algoritmos
Los algoritmos
criptográficos, ya sean simétricos o asimétricos, se han construido con la
seguridad en mente; pese a ello, no podemos extrapolar su infabilidad. La
capacidad de un sistema criptográfico para proteger la información contra el
ataque se conoce como fortaleza, la cual depende de muchos factores:
La confidencialidad de las
claves.
La dificultad para adivinar
o probar todas las claves posibles.
La dificultad de invertir el
algoritmo sin conocer la clave.
La no existencia de puertas
traseras.
El conocimiento que se tenga
sobre el texto claro.
A estas habrá que añadir
otra, el valor de la información a encriptar. Esta es una consideración que
habrá que tener en cuenta, sobre todo en el comercio electrónico. Supongamos
que desencriptar un texto cifrado M con el algoritmo A cuesta C(M) en algún
tipo de unidades; imaginemos que M esta compuesto por unidades mas pequeñas
M1,M2,…..,Mn y que su valor puede medirse.
Fuerza bruta: búsqueda en el
espacio de claves
Es el ataque mas directo, si
bien no el mas fácil. Suele ser el primero en ser probado. Consiste, como su
nombre indica, en probar todo el espacio de claves una por una y verificar en
cada paso si la clave probada descifra el texto. En criptografía simétrica no
hay forma de protegerse ante este ataque, en criptografía asimétrica no tenemos
un espacio de claves privadas, ya que solo conocemos la clave publica y, por
definición, no podemos conocer la clave privada a partir de la primera.
La longitud de la clave es
vital para prevenir un ataque de fuerza bruta. Por ejemplo, RC4 usa longitudes
de clave entre 1 y 2048 bits, pero en general se usan de 40 y 128 bits.
Con 40 bits tenemos un
espacio de claves de 2 llaves a probar. Parece grande, sin embargo con una
computadora actual podemos alcanzar la velocidad de prueba de 1 millón de
claves por segundo. Esto supone que, como máximo, en 13 días podríamos tener la
clave usada originalmente, y por tanto el texto claro.
Criptoanálisis
Y no es útil porque la
longitud de la clave no es el único factor. Combinando técnicas de matemáticas
avanzadas y poder de calculo, es posible conocer el texto normal que se esconde
detrás de un texto cifrado incluso sin conocer el algoritmo utilizado. Cada
algoritmo va a ser mas o menos robusto a tal o cual técnica de criptoanálisis.
Un ataque criptoanaliticas
parte de un texto cifrado y puede querer llegar a, o bien obtener el texto
normal correspondiente, o bien la clave usada. Los ataques más comunes son;
Ataque de texto normal
conocido: el analista tiene tanto el texto normal como el cifrado. Su objetivo
es obtener la clave usada. Aunque parezca improbable tener tanto el texto
cifrado como el normal es algo bastante habitual. Piénsese en los formatos
estándar de correo electrónico, con cabeceras idénticas en correos diferentes;
o en sectores determinados de discos duros conteniendo sistemas de ficheros con
cifrados.
Ataque de texto normal
elegido: el analista tienes la capacidad de elegir texto normal y obtener su
correspondiente cifrado. El objetivo es deducir la clave.
Criptoanálisis diferencial:
se trata de una técnica avanzada derivada de la anterior. Seguimos pudiendo
elegir el texto normal, pero esta vez lo seleccionamos con pequeñas diferencias
entre ellos y así se comparan los resultados.
Análisis diferencial de
fallos: habitualmente se usa contra sistemas de encriptación hardware. Se trata
de someter al dispositivo a condiciones ambiente que provoque fallos en su
operativa y deducir, a partir de ahí, de los estados internos del algoritmo.
La única forma actual de
poner a prueba la fortaleza de un algoritmo es publicarlo y esperar que alguien
encuentre una debilidad. La verdadera seguridad criptográfica reside en la
apertura y la revisión publica.
Realidades e implicaciones
En principios sabemos como
construir computadoras basadas en la mecánica que nos ocupa: simplemente
deberíamos construir puertas lógicas cuánticas y conectarlas en forma de redes.
Una puerta lógica cuántica
es un dispositivo simple de computación que lleva a cabo un cálculo cuántico
elemental, habitualmente sobre dos qbits, en un tiempo conocido. Pero se
difiere de sus equivalentes en la computación clásica en que estas pueden
realizar sus operaciones sobre suposiciones cuánticas.
No hay comentarios:
Publicar un comentario