Está en la página 1de 16

Criptografía: Técnica y Aplicaciones.

Ingeniería Informática (INF).

4º curso.
INF Tema 1. Conceptos Básicos sobre Criptografía (Introd. a la Criptología).

1. Conceptos Básicos sobre Criptografía.


(Introducción a la Criptología).
1.1 Conceptos básicos: Términos y notación.
La palabra criptografía proviene de la unión de dos palabras griegas: κρυπτο (cripto,
que significa oculto, o secreto) y γραφη (grafe, que significa escritura). Así que,
literalmente, la criptografía es el arte de la escritura secreta.

Criptografía: Ciencia que se ocupa de la búsqueda, estudio y mejora de técnicas que


permitan transmitir información de forma segura, sin que pueda ser leída o alterada por
otros. Las personas que se dedican a este cometido se llaman criptógrafos.

Por otro lado, existe otra ciencia íntimamente relacionada con la anterior, y sin la cual
no se puede entender su existencia y evolución.

Criptoanálisis: La ciencia que realiza un estudio crítico de los sistemas criptográficos y


trata de encontrar procedimientos que permitan recuperar la información original de
manera no autorizada. Los criptoanalistas son los encargados de desarrollar esta área.

Decimos que estas dos disciplinas se encuentran íntimamente ligadas porque todo
método de ocultación de la información debe ir parejo a su criptoanálisis
correspondiente, que demuestre si es seguro o, por el contrario, las formas que hay de
recuperar la información por parte de un atacante. De hecho, las dos disciplinas se
engloban en una sola, más general.

Criptología: Del griego cripto, que como ya sabemos quiere decir oculto, y logos, que
significa ciencia o conocimiento. Criptología = Criptografía + Criptoanálisis. La
criptografía constituye una importante rama de las Matemáticas, y es desarrollada por
los criptólogos.

Dentro del estudio de la criptografía nos vamos a encontrar de forma recurrente con
ciertos términos que debemos conocer:

• Texto claro: También llamado texto plano, en inglés plaintext. Es el mensaje


que contiene la información que deseamos enviar, antes de aplicarle ninguna
operación
• Cifrado: Operación mediante la cual modificamos un mensaje de manera que
ocultamos la información que contiene. De esta forma, el mensaje resulta
ininteligible para toda persona que lo intercepte y no esté autorizada a conseguir
la información que contiene. En inglés se denomina encryption.
• Descifrado: La operación contraria a la anterior, que permite a una persona
autorizada devolver el mensaje a su estado previo a la aplicación del cifrado. De
esta forma, puede recuperar la información del mensaje. El término inglés que
denota esta operación es decryption.

La figura siguiente nos muestra de forma resumida el proceso de cifrado y descifrado de


un mensaje:

Criptografía: Técnica y Aplicaciones. 1


Dpto. Electrónica y Sistemas.
INF Tema 1. Conceptos Básicos sobre Criptografía (Introd. a la Criptología).

Canal
EMISOR inseguro RECEPTOR

Texto claro Texto cifrado Texto claro


Cifrado Descifrado
original

Figura 1. Esquema de cifrado/descifrado.

El esquema se compone de tres elementos fundamentales:

• Emisor: El interlocutor encargado de enviar información al otro extremo.


• Receptor: El participante que recibe la información procedente del emisor.
• Canal: El medio físico a través del cual viaja la información. Siempre se asume
que el medio físico es inseguro, y por tanto de libre acceso para cualquier
atacante, que podrá conseguir el mensaje cifrado. El objetivo es que eso resulte
inútil de cara a recuperar información del mensaje original.

El texto claro se suele denotar por M, de mensaje, o bien por P, del inglés plaintext. El
texto claro puede ser cualquier cosa, desde un paquete de datos a un flujo de
información de vídeo, un archivo de texto, voz digitalizada… Computacionalmente,
tendrá el aspecto de una secuencia binaria.

Podemos cifrar el mensaje para enviarlo a un interlocutor o para almacenarlo de forma


segura. El mensaje cifrado se denota por C, mientras que el proceso o función de
cifrado se expresa matemáticamente mediante E. Por último, el proceso o función de
descifrado se expresa por D.

De este modo las operaciones que describen matemáticamente el proceso son:

Cifrado: E(M) = C
Descifrado: D(C) = M
Se cumple: D(E(M)) = M

Existen cuatro requisitos u objetivos básicos que la criptología debe ofrecer:

• Privacidad o Confidencialidad: Sólo pueden acceder a la información aquellas


personas que estén autorizados a obtenerla.
• Integridad: El receptor del mensaje debe ser capaz de comprobar que éste no ha
sido modificado durante su camino. Esto es, nadie que no esté autorizado debe
poder alterar la información que contiene el mensaje.
• Autenticación: Cuando se establece una comunicación segura entre dos
interlocutores, cada uno debe ser capaz de verificar la identidad de la otra parte
de manera irrefutable. Un intruso no debe poder hacerse pasar por uno de los
participantes de la comunicación de forma inadvertida.
• No repudio: Ninguno de los interlocutores debe ser capaz de negar con
posterioridad que ha realizado cierta acción o que ha transmitido determinada
información.

Criptografía: Técnica y Aplicaciones. 2


Dpto. Electrónica y Sistemas.
INF Tema 1. Conceptos Básicos sobre Criptografía (Introd. a la Criptología).

Por otra parte, existen también otro tipo de técnicas para la ocultación de información,
pero distintas de las estudiadas por la criptografía:

• Esteganografía: Estudia las técnicas de transmisión segura de la información


ocultando por completo la existencia del mensaje. Observemos que es algo
completamente diferente a la Criptografía, ya que ésta lo único que pretende es
convertir el mensaje en ininteligible para el atacante. La esteganografía pretende
ocultarlo de forma que el atacante ignore que se transmite un mensaje de cierta
naturaleza.
o Un ejemplo de este tipo de técnicas son las que permiten enviar
información oculta en los datos de una imagen, codificada en cierto
formato. Si por ejemplo modificamos, en una imagen JPEG, el bit de
menor peso de cada píxel de acuerdo a la información transmitida por el
mensaje, será muy complicado para el atacante descubrir que esa imagen
encubre la transmisión de dicho mensaje.
• Marcas de agua: Son técnicas orientadas a la protección de derechos de autor
para obras en soporte digital. Aplican sellos imperceptibles e imborrables que
revelan la naturaleza protegida del material.

Así pues, la criptología juega un papel crucial en los sistemas de seguridad para la
Sociedad de la Información en la que estamos inmersos. Sin embargo, existe un
concepto bastante generalizado hoy día de que la Criptografía es la herramienta
definitiva para alcanzar la seguridad de nuestras comunicaciones digitales o el
almacenamiento de información.

Nada más lejos de la realidad. Por sí misma, la criptografía tiene muy poca utilidad.
Debe formar parte de sistemas mucho mayores, que globalmente protejan los datos.

Principio fundamental de los sistemas de seguridad: Un sistema de seguridad


(incluidos los informáticos) es sólo tan fuerte como su eslabón más débil.

En la práctica, los algoritmos criptográficos suelen atraer la atención de los atacantes,


debido a que juegan un papel crucial en el sistema de seguridad, ya que otorgan o
deniegan el acceso a la información. Pero no debemos olvidar que cualquier elemento
adicional de un sistema de seguridad al que no hayamos prestado la suficiente atención
a la hora de diseñarlo puede echar por tierra nuestros objetivos: desbordamiento de
búferes, control físico de acceso, filtrado de información relevante…

1.2 Criptosistemas: Clasificación.


Un algoritmo es un proceso bien definido que a partir de una serie de valores de entrada
proporciona un conjunto de valores de salida.

Diremos que una función matemática f es computable si existe un algoritmo que


tomando un argumento x como entrada devuelva a la salida f(x).
La eficiencia de un algoritmo se mide por el llamado tiempo de ejecución, que va a
medirse en función de la longitud de su entrada. El tiempo de ejecución de un algoritmo
es el máximo número de operaciones elementales (bit a bit) que realiza al ejecutarse a

Criptografía: Técnica y Aplicaciones. 3


Dpto. Electrónica y Sistemas.
INF Tema 1. Conceptos Básicos sobre Criptografía (Introd. a la Criptología).

partir de un cierto valor de entrada. En general, se indica como función de la longitud


del valor de entrada. Para ello se usa la llamada notación asintótica:

™ Sean f y g : N a N dos funciones, se dice que:

o f = O(g) si existe al menos una constante positiva c y un número natural


n0 tal que ∀n ≥ n0 se cumple que 0 ≤ f (n ) ≤ cg (n ) .
o f = w(g) si existe al menos una constante positiva c y un número natural
n0 tal que ∀n ≥ n0 se cumple que 0 ≤ cg (n ) ≤ f (n ) .
o f = o(g) si para toda constante positiva c existe un número natural n0 tal
que ∀n ≥ n0 se cumple que 0 ≤ f (n ) ≤ cg (n ) .

Un algoritmo se denomina polinomial si su tiempo de ejecución es una función O(g),


siendo g = nk, con k un número natural cualquiera. Los algoritmos que no cumplen esta
condición no son computacionalmente realizables y se denominan exponenciales.

Una función es computable en tiempo polinomial si existe un algoritmo polinomial para


su evaluación. En otro caso diremos que es exponencial. Si ordenamos en una lista el
nivel de complejidad de los algoritmos podríamos obtener lo siguiente:

O(1) < O(ln(ln(n))) < O(ln(n)) < O(nε) < O(nc) < O(nln(n)) < O(cn) < O(nn) < O c c ( )
n

Con: 0 < ε < 1 < c

Un algoritmo criptográfico es la función matemática que empleamos para cifrar y


descifrar la información. Normalmente, se compone de dos funciones matemáticas
relacionadas entre sí: una para cifrar y la otra para descifrar.

Si la seguridad de un algoritmo reside únicamente en el hecho de mantener en secreto


las operaciones que el algoritmo realiza sobre el texto claro para crear el mensaje
cifrado, se denomina algoritmo restringido. Veremos algunos ejemplos de este tipo de
algoritmos aplicados en criptografía clásica. Sin embargo, hoy día son completamente
inadecuados, ya que no permiten realizar ningún tipo de estandarización o control de
calidad.

Por el contrario, los algoritmos criptográficos modernos se basan en el empleo de una


clave, que matemáticamente se denota por K. Esta clave suele tomar un valor de entre
un conjunto muy grande de valores posibles. El rango de todos los posibles valores que
puede tomar la clave se denomina espacio de claves.

Considerando que esa misma clave se emplea en las operaciones de cifrado y


descifrado, ahora podremos expresarlas matemáticamente como:

Cifrado: EK(M) = C
Descifrado: DK(C) = M
Propiedad: EK(DK(M)) = M
La regla que gobierna esta filosofía operativa es el siguiente postulado:

Criptografía: Técnica y Aplicaciones. 4


Dpto. Electrónica y Sistemas.
INF Tema 1. Conceptos Básicos sobre Criptografía (Introd. a la Criptología).

Principio de Kerckhoffs: La seguridad de un esquema de cifrado debe residir


exclusivamente en mantener en secreto la clave de cifrado K, y no en mantener en
secreto los detalles de funcionamiento del algoritmo utilizado.
La implicación más importante del principio de Kerckhoffs es que en Criptología
siempre se considera que un adversario potencial conoce toda la información
referente a la herramienta criptográfica que pretende atacar salvo las claves secretas
(caso de que las hubiese).

Algunos algoritmos usan una clave diferente para cifrar y descifrar, en ese caso:

Cifrado: EK1(M) = C
Descifrado: DK2(C) = M
Propiedad: EK1(DK2(M)) = M

Pasemos ahora a definir de manera formal algunos conceptos matemáticos para nuestro
estudio:

Criptosistema: Se define como la quíntupla (M,C,K,E,D). Donde cada una de las letras
representa los conceptos hasta ahora presenteados:

• M: Los mensajes en claro, sin cifrar.


• C: Los textos cifrados, resultado de aplicar el algoritmo de cifrado a M.
• K: Conjunto de claves que sirven para cifrar.
• E: Conjunto o familia de funciones que nos sirven para cifrar los mensajes. Se
aplican a un elemento del conjunto M para conseguir un elemento del conjunto
C.
• D: Conjunto de funciones que nos permiten deshacer la operación de cifrado,
recuperando el mensaje original.

Una condición importante que debe cumplirse en todo criptosistema es la siguiente:

Sean K1 , K2 € K. Entonces, si K1 ≠ K2 se cumple:

EK1(M) ≠ EK2(M)

El cifrado del mensaje empleando una clave puede expresarse de forma lógica mediante
el siguiente diagrama:

Canal
EMISOR inseguro RECEPTOR

Texto claro Texto cifrado Texto claro


Cifrado Descifrado
original

Criptografía: Técnica y Aplicaciones. 5


Dpto. Electrónica y Sistemas.
INF Tema 1. Conceptos Básicos sobre Criptografía (Introd. a la Criptología).

Figura 2. Cifrado/descifrado con clave.

Ahora bien, podemos distinguir básicamente dos tipos de criptosistemas:

• Criptosistemas de clave privada o simétricos: Formalmente, pueden definirse


como aquellos criptosistemas en los que la clave de cifrado puede calcularse a
partir de la clave de descifrado o viceversa. En la mayoría, la clave de cifrado y
descifrado es la misma.
o También se denominan de clave secreta o de clave única, incidiendo en
que ambos interlocutores deben acordar una clave secreta previamente al
establecimiento del canal seguro de comunicación.
o La seguridad de un criptosistema de clave privada reside en mantener
secreta la clave. La divulgación de la misma implicaría que cualquier
persona puede acceder a la información cifrada.

Canal
EMISOR inseguro RECEPTOR

Texto claro Cifrado Texto cifrado Descifrado Texto claro


original

CLAVE PRIVADA

Figura 3. Cifrado simétrico.

Los criptosistemas de clave privada se dividen en dos subclases:

Criptosistemas de cifrado en flujo: Realizan operaciones sobre el texto claro


en formato binario bit a bit (o a veces byte a byte).

Criptosistemas de cifrado en bloque: Las operaciones de cifrado se efectúan


sobre grupos de bits de tamaño fijo en los que se ha dividido de forma previa el
texto plano. Estos grupos de bits se denominan bloques.

• Criptosistemas de clave pública o asimétricos: En este tipo de criptosistemas


la clave de cifrado y la de descifrado son distintas. Además se debe cumplir la
propiedad de que, a pesar de estar relacionadas de alguna forma, no se debe
poder obtener información sobre la clave de descifrado a partir de la clave de
cifrado.
o Se denominan de clave pública porque la clave de cifrado puede hacerse
pública, de forma que cualquiera que lo desee pueda cifrar un mensaje.
Sin embargo, únicamente la persona que posee la clave de descifrado
privada que corresponde a la clave pública puede descifrar el mensaje.
o La clave de cifrado se suele denominar clave pública.
o La clave de descifrado se denomina clave privada.

Criptografía: Técnica y Aplicaciones. 6


Dpto. Electrónica y Sistemas.
INF Tema 1. Conceptos Básicos sobre Criptografía (Introd. a la Criptología).

Canal
EMISOR inseguro RECEPTOR

Texto claro Cifrado Texto cifrado Descifrado Texto claro


original

CLAVE PÚBLICA CLAVE PRIVADA

Figura 4. Cifrado asimétrico.

1.3 Procedimientos Clásicos de Cifrado: Sustitución


y Transposición.
Con anterioridad a la existencia de computadores, la criptografía se basaba en
algoritmos basados en operaciones aplicadas carácter a carácter. La idea básica era la de
sustituir los caracteres que componen el texto claro por otros, siguiendo ciertas reglas, o
bien en cambiarlos de orden. Muchos realizaban ambas operaciones, varias veces.

Hoy día las técnicas cambian pero básicamente las operaciones son las mismas, solo
que ahora aplicadas a un alfabeto binario en lugar de a un alfabeto de 26 caracteres. La
mayoría de algoritmos actuales siguen combinando operaciones de sustitución y
transposición.

Cifrado por sustitución: Cada carácter en el texto claro se sustituye por otro
carácter en el texto cifrado. El receptor invierte la sustitución en el texto cifrado
para recuperar el mensaje original. Existen cuatro variantes:

o Cifrado de sustitución simple o monoalfabética: El más sencillo. Cada


carácter del texto claro se sustituye por cierto carácter en el texto cifrado.
o Cifrado de sustitución homofónica: Igual que el anterior, pero en este
caso cada carácter del texto claro puede corresponderse con uno de entre
un conjunto finito de caracteres para componer el texto cifrado.
o Sustitución de poligramas: Los bloques de caracteres se cifran en
grupos: bigramas (cogiendo los caracteres de dos en dos), trigramas (de
tres en tres), etc.
o Sustitución polialfabética: Se construye a partir de varios cifrados
simples de sustitución. El cifrado concreto que usamos en cada momento
varía dependiendo de la posición de cada carácter en el texto en claro.

Cifrado por transposición: El texto claro permanece inalterado, pero el orden


de los caracteres se mezcla. Por ejemplo, en un algoritmo de transposición de
columna simple el texto plano se escribe horizontalmente en un papel de anchura
fija, y el texto cifrado se lee verticalmente.

o Un ejemplo es la escítala lacedemonia, empleada en el siglo V a.C. Era


un bastón del que fabricaban dos unidades idénticas, enrollando

Criptografía: Técnica y Aplicaciones. 7


Dpto. Electrónica y Sistemas.
INF Tema 1. Conceptos Básicos sobre Criptografía (Introd. a la Criptología).

alrededor un pergamino. Luego, se desataba el pergamino, y sólo


sobrepuesto en una vara idéntica revelaba el mensaje, ya que de otro
modo resultaba una sucesión ininteligible de caracteres.

Algunos ejemplos de cifrado clásico son:

Cifrado de César: Consiste en sustituir la primera letra del alfabeto por la cuarta,
la segunda por la quinta y así sucesivamente. Es decir:

Yi = Xi + Zi (mod 21).

Siendo 21 el número de letras del alfabeto latino, Yi la i-ésima letra del texto
cifrado, Xi la i-ésima letra del texto claro y Zi el desplazamiento aplicado que en
este caso es fijo e igual a 3. Para recuperar el mensaje sólo hay que sumar el opuesto
al desplazamiento aplicado. Todas las operaciones se realizan mod 21.

Cifrado de Vigenére: Para cifrar se elige una palabra clave de cierta longitud y
se divide el mensaje original en bloques de esa longitud. A continuación se
suman carácter a carácter cada bloque de texto claro con la palabra clave, mod
N. Se ataca fácilmente mediante análisis de frecuencia de aparición de las letras.

Cifrado Vernam. Misma idea que el anterior, pero en este caso la clave debe ser
tan larga como el texto claro (one-time pad). Ej. El teléfono rojo entre el
Kremlin y la Casa Blanca.

1.4 Primitivas Criptográficas.


Funciones hash: Una función hash es una función computable en tiempo
polinomial que genera, a partir de una entrada de longitud arbitraria (llamada
preimagen), una secuencia de salida de longitud fija (que recibe el nombre de
hash). Obviamente, la salida depende de la entrada proporcionada.
Matemáticamente se expresa, considerando que tratamos cadenas binarias:

f :{0, 1}* a {0, 1} con (k ∈[128, 512])


k

™ Las funciones hash sirven para garantizar la integridad de datos y suelen


emplearse, por ejemplo, en esquemas de firma.
™ Normalmente, fijado un valor m, su hash f(m) se utiliza como si fuese solamente
asociable a m.
™ Se dice que una función hash es resistente a colisiones si no podemos encontrar
x e y tales que f(x) = f(y). Obviamente, eso no significa que no las haya (de
hecho, ninguna función hash está completamente libre de colisiones, ya que la
aplicación parte de un grupo infinito de elementos a un grupo finito). Sólo indica
que no podemos hallarlas.

Funciones one-way: Una función one-way es una función fácil de computar


pero difícil (a nivel computacional) de invertir.
o Una función one-way trapdoor es una función one-way cuya inversa se
puede computar de manera eficiente si disponemos de cierta información
adicional.

Criptografía: Técnica y Aplicaciones. 8


Dpto. Electrónica y Sistemas.
INF Tema 1. Conceptos Básicos sobre Criptografía (Introd. a la Criptología).

Una definición formal de función one-way sería la siguiente:

™ Una función f : {0,1}* a {0,1}* se dice one-way si se cumplen las dos


condiciones siguientes:
o Existe un algoritmo polinomial para computar f.
o Para todo algoritmo polinomial A, y todo polinomio positivo p, existe un
n0 tal que ∀n ≤ n0 :

[( )
P A f (un ), 1n ∈ f −1 ( f (un )) ≤
1
p(n )
]
Donde un es una cadena de bits elegida uniformemente al azar.

Sin embargo, no tenemos ninguna prueba matemática rigurosa de que este tipo de
funciones existe, ni evidencia de que puedan construirse. Para encontrar funciones one-
way normalmente recurrimos a problemas matemáticos clásicos considerados como
muy difíciles, como por ejemplo:

™ El problema del logaritmo discreto.


™ Problema de la factorización de enteros.
™ Problema de la suma del subconjunto.

Funciones one-way hash: Combinación de las anteriores. Es una función que


ofrece un hash a partir de la preimagen que le proporcionamos, pero además, es
difícil computar una preimagen que corresponda a un determinado valor hash.
o Una función se dice que es Universal One-Way Hash Function,
abreviado como UOWHF si, fijado x, es imposible encontrar un valor y
t.q. f(x) = f(y).

En la práctica se considera que:

™ La función hash ideal debe comportarse como una correspondencia aleatoria


entre todos los posibles valores de entrada y el conjunto de posibles valores de
salida.
™ Un ataque contra una función hash es un método no trivial para diferenciar la
función hash de una función hash ideal.

Funciones MAC (Message Authentication Codes): Permiten controlar que no


se produzca ninguna alteración en el mensaje recibido (verificando por tanto la
corrección del mismo) y al mismo tiempo permiten identificar el origen del
mensaje (verificación de procedencia). Matemáticamente suele denotarse por:

MAC(k, m)

o Donde k es una clave secreta. Únicamente aquel que además de conocer


el mensaje m conozca la clave k puede computar el MAC.

Generadores de secuencias pseudoaleatorias: Un generador de bits


aleatorios (RBG) es un algoritmo o dispositivo físico que tiene como salida una

Criptografía: Técnica y Aplicaciones. 9


Dpto. Electrónica y Sistemas.
INF Tema 1. Conceptos Básicos sobre Criptografía (Introd. a la Criptología).

secuencia de bits independientes e idénticamente distribuidos según una


distribución uniforme.
o Podemos generar números aleatorios con un RGB. Si queremos un
número aleatorio en el intervalo [1, n] basta con generar [log(n)] + 1 bits
aleatorios. Si el resultado excede de n se descarta y repetimos el proceso.

o Un generador pseudoaleatorio es un algoritmo polinomial G


determinista que, al darle como entrada una secuencia finita de bits de
longitud k realmente aleatoria, proporciona como salida una cadena finita
de bits de longitud l >> k que parece aleatoria. Cumple las siguientes
propiedades:

™ Expansión: Existe una función l : Ν a Ν t.q. l (n ) > n ∀ n ∈ Ν y


además G (s ) = l ( s ) ∀s ∈{0, 1}* .
™ La secuencia de salida G(u), |u| = n, n ∈ Ν es
computacionalmente indistinguible de una secuencia de bits
verdaderamente aleatoria.
™ Un PRG puede construirse a partir de un PRBG y demostrar que
es criptográficamente seguro.
™ Un PRGB pasa el test del bit siguiente si no existe ningún
algoritmo polinomial que recibiendo como entrada los primeros l
bits de una secuencia s de salida del generador, deduzca el bit l+1
1
con probabilidad mayor que . Entonces se dice que es
2
criptográficamente seguro.
™ Se puede crear un PRG a partir de cualquier función one-way o
hash. Dada una semilla aleatoria s basta con calcular f(s), f(s+1),
f(s+2)…

Firma digital: Los protocolos de firma digital se utilizan para poder verificar la
autoría de una transacción o la procedencia de cierta información, ya que, al
igual que ocurre con las firmas ordinarias, el objetivo de una firma digital es el
de indicar de forma irrefutable la identidad de su autor.

1.5 Introducción a los Protocolos Criptográficos.


Esquemas de cifrado: Exclusivamente diseñados para enviar información de
forma segura entre dos o más interlocutores, evitando que cualquier persona no
autorizada pueda acceder al contenido de los datos intercambiados.

Esquemas de autenticación: Están pensados para poder verificar de forma


irrefutable la identidad de los interlocutores que participan en un intercambio de
información.
Esquemas de intercambio o establecimiento de clave: Permiten el
establecimiento de una clave secreta entre 2 o más interlocutores, de manera que
ningún atacante pueda obtener información, a partir de los datos intercambiados,
sobre la clave que ha sido acordada.

Criptografía: Técnica y Aplicaciones. 10


Dpto. Electrónica y Sistemas.
INF Tema 1. Conceptos Básicos sobre Criptografía (Introd. a la Criptología).

Esquemas de autenticación e intercambio de claves: Permiten resolver los dos


problemas anteriores en un único protocolo.

Existen numerosos protocolos adicionales, que podemos construir a partir de las


primitivas criptográficas antes presentadas. Entre ellos podemos mencionar protocolos
para elecciones seguras, computación con datos cifrados, firma digital no repudiable,
pruebas de verificación de conocimiento cero, etc.

1.6 Criptoanálisis: Tipos de Ataques.


Podemos distinguir los siguientes tipos de ataques contra un criptosistema dado:

Ciphertext-only attack: El atacante sólo tiene acceso a los textos cifrados.


Known-plaintext attack: El atacante tiene acceso a los pares texto claro y su
correspondiente texto cifrado.
Chosen-plaintext attack: El asaltante es capaz de elegir los textos en claro de
los que quiere obtener el cifrado.
Adaptive-chosen-plaintext attack: Igual que el anterior, solo que ahora además
el atacante puede modificar los textos claros que elige en base a los resultados
que va obteniendo.
Chosen-ciphertext attack: El atacante pude descifrar algunos textos cifrados de
su elección.
Adaptive-chosen-ciphertext attack: Al igual que antes, puede modificar la
elección de los textos cifrados en base a los resultados que va obteniendo.

Si nos fijamos exclusivamente en la capacidad de computación del adversario entonces


podemos distinguir (para cifrado de clave pública):

CPA (Chosen-plaintext attack): Podemos suplantar al usuario del sistema de


cifrado, y por tanto tiene acceso al algoritmo de cifrado.
VCA (Validity-checking attack): Tiene acceso al algoritmo de cifrado y a un
distinguidor de textos cifrados válidos y arbitrarios.
PCA (Plaintext-cheking attack): Ahora también tiene acceso a un distinguidor
que indica si un texto cifrado corresponde a un determinado texto claro.
CCA (Chosen-Ciphertext attack): Puede descifrar el texto que quiera menos el
reto objetivo.
o CCA1 (Lunchtime attacks):Tengo acceso al algoritmo de cifrado hasta
recibir el reto, o sea, durante todo el tiempo previo a conocer el texto
cifrado que quiero romper).
o CCA2 (Estándar): Acceso ilimitado al algoritmo de cifrado para
cualquier texto salvo el reto.

Fundamentalmente, el adversario tiene 3 objetivos:

Distinguir textos cifrados de cadenas aleatorias.


Romper la no maleabilidad del esquema, o sea, poder construir textos cifrados
válidos a partir de textos cifrados conocidos, cuyos textos claros asociados
guarden una relación conocida.
o Ejemplo: Dados C(m1), C(m2),…,C(mn) poder construir C(m1 + m2 + m3
+…+ mn).

Criptografía: Técnica y Aplicaciones. 11


Dpto. Electrónica y Sistemas.
INF Tema 1. Conceptos Básicos sobre Criptografía (Introd. a la Criptología).

Violar la unidireccionalidad del sistema: Recuperar el texto claro


correspondiente a un texto cifrado.

Lars Knudsen ha ofrecido una serie de niveles de severidad en la ruptura de un


criptosistema, ordenados de mayor a menor:

Ruptura total: El criptoanalista encuentra la clave, K, de forma que puede


efectuar DK(C) = M.
Deducción global: Un criptoanalista encuentra un algoritmo alternativo A,
equivalente a DK(C), pero sin conocer K.
Deducción local o de instancia: El criptoanalista encuentra el texto en claro que
corresponde a un cierto texto cifrado interceptado.
Deducción de información: El criptoanalista obtiene alguna información sobre
la clave o el texto en claro: unos cuantos bits de la clave, información sobre el
aspecto o la estructura del texto en claro…

Finalmente debemos reseñar una diferencia fundamental entre los algoritmos empleados
en la Criptografía clásica y los empleados en la actualidad. Se trata del concepto de
seguridad de un criptosistema. Hoy día, se exige que los procedimientos de cifrado
que empleamos tengan una seguridad matemáticamente demostrable. Según este
criterio podemos clasificar la seguridad de un criptosistema en las siguientes categorías:

Seguridad incondicional o teórica: Se puede demostrar que el criptosistema es


seguro frente a cualquier atacante que posee tiempo y recursos computacionales
ilimitados.
Seguridad computacional o práctica: El sistema es seguro cuando se enfrenta a
un atacante que tiene tiempo y recursos computacionales limitados.
Seguridad probable: No se puede demostrar la seguridad del sistema, pero no ha
se ha logrado romper hasta ahora.
Seguridad condicional: El sistema es seguro siempre que el enemigo carezca de
medios para atacarlo.

Ahora bien, se puede plantear la duda sobre lo que podemos considerar recursos
computacionales limitados. Podemos medir la complejidad de un ataque de distintas
formas:

Complejidad de datos: La cantidad de datos que se precisan para que el ataque


tenga éxito.
Complejidad de procesado: El tiempo que precisamos para llevar a cabo el
ataque. En inglés se denomina work factor.
Requerimientos de almacenamiento: El espacio total de almacenamiento de
información preciso para efectuar el ataque.

1.7 Teoría de la Información.1


Toda la teoría en la que se basa el diseño de los criptosistemas se fundamenta en tres
disciplinas básicas:

1
Basado en su mayor parte en el Capítulo 6 del Libro Electrónico de Seguridad Informática y
Criptografía v4.0 de Jorge Ramió Aguirre, disponible electrónicamente en Criptored.

Criptografía: Técnica y Aplicaciones. 12


Dpto. Electrónica y Sistemas.
INF Tema 1. Conceptos Básicos sobre Criptografía (Introd. a la Criptología).

Teoría de la información: Estudia la cantidad de información que contienen las


representaciones de cualquier naturaleza (numérica, simbólica, alfabética…) de
ésta, así como su entropía.
Teoría de los números: Centrada en las matemáticas discretas y los cuerpos
finitos, en los que se basan las operaciones de cifrado y descifrado.
Teoría de complejidad de algoritmos: Estudia el grado de dificultad de los
problemas para clasificarlos en computacionalmente tratables o intratables.

Información: Conjunto de datos o mensajes inteligibles creados con un lenguaje de


representación y que debemos salvaguardar durante su transmisión o almacenamiento
de posibles amenazas, empleando entre otras, herramientas de cifrado.

Teoría de la Información: Estudia como medir la cantidad de información de un


mensaje a través del número medio de bits que necesita un codificador óptimo para
representar todos los posibles mensajes.

La información que nos ofrece un mensaje puede medirse desde distintos puntos de
vista: extensión, utilidad, sorpresa, entorno, probabilidad. Claude Shannon se basó en el
estudio de la probabilidad de recibir un mensaje para analizar el concepto de cantidad
de información.

La idea fundamental es: Ante varios mensajes posibles, y en principio todos


equiprobables, aquel que resulte tener una menor probabilidad de aparición es el que
nos aportará mayor cantidad de información.

Matemáticamente:

Sea X una variable aleatoria con n estados posibles. La ocurrencia i-ésima se


representa como X = xi:

X = {x1 , x2 , x3 , K, xn −1 , xn }

p1 = p(x1 ), p2 = p(x2 ), K, pn = p(xn )

Como se cumple que:

0 ≤ pi ≤ 1 para i = 1, 2, K, n

Entonces:
n

∑p
i =1
i =1

Cantidad de información: Se define la cantidad de información del estado i, como el


log2 de la probabilidad de que ocurra el estado i-ésimo. El signo se toma negativo para
que la función sea creciente conforme disminuye la probabilidad de la ocurrencia
(resultado coherente):

Criptografía: Técnica y Aplicaciones. 13


Dpto. Electrónica y Sistemas.
INF Tema 1. Conceptos Básicos sobre Criptografía (Introd. a la Criptología).

ci = − log 2 ( pi )

Si p(xi) = 1 Æ No existe incertidumbre: ci = 0


Si p(xi) = 0 Æ Máxima incertidumbre: ci = ∞
Elegimos base dos por estudiar fenómenos binarios (cada bit de la
representación binaria que constituye el mensaje).

El grado de indeterminación de una fuente de información se puede ver, de modo


intuitivo, como la cantidad de resultados equiprobables que podemos obtener de dicha
fuente. Conforme podemos caracterizar mejor las condiciones de funcionamiento de la
fuente, podremos ir reduciendo su grado de indeterminación, hasta llegar, en el caso
óptimo, a determinar con toda certeza la ocurrencia que se va a producir.

En general, si un fenómeno tiene un grado de indeterminación k y sus estados son


equiprobables, la probabilidad p de que se dé uno de sus estados será 1/k.

Luego se deduce:

( 1 ) = log[1 (1 k )] = − log
ci = log 2 k 2 p

Es decir, que en la representación binaria, la cantidad de información está determinada


por el número de bits que utilizamos para componer el mensaje. Es la idea en la que se
basan muchos algoritmos de compresión de información, que asignan a los mensajes
más probables la representación binaria de menor longitud.

Si ahora cada estado tiene una probabilidad distinta pi, la entropía H será igual a la
suma ponderada de la cantidad de información de cada estado. La entropía, H(x), se
define pues, como el valor medio ponderado de la cantidad de información de los
diversos estados del mensaje.

k
H (x ) = − ∑ p(x )⋅ log p(x )
i =1
i 2 i

Si introducimos el signo negativo en el logaritmo, la expresión que nos queda nos indica
el número de bits que necesita un codificador óptimo para codificar el mensaje X. El
codificador óptimo es el que utiliza el menor número de bits posible para codificar el
mensaje X.

k
H (x ) = ∑ p(x )⋅ log [1 p(x )]
i =1
2

La teoría de la información nos permite analizar los mensajes cifrados, en busca de


patrones, redundancias o relaciones de cualquier tipo que nos permitan inferir cierta
información de esa sucesión de bits aparentemente aleatoria.

Criptografía: Técnica y Aplicaciones. 14


Dpto. Electrónica y Sistemas.
INF Tema 1. Conceptos Básicos sobre Criptografía (Introd. a la Criptología).

Si existiese una segunda variable Y que influya sobre X entonces esto nos da importante
información adicional. En particular, la entropía se reduce al conocer la relación entre
las dos variables (existe menos incertidumbre en el resultado).

Se define la ratio r como el número de bits de información en cada carácter para


mensajes con una longitud igual a N caracteres:

H (x )
r=
N

Si se codifica un mensaje letra a letra suponiendo equiprobabilidad entre letras, se


obtiene la ratio absoluta del mensaje R = H(X). En castellano, con 27 letras, será de 4.5.

Según el estudio de Shannon, como las letras de un idioma no tienen igual probabilidad,
la ratio baja mucho, y suele situarse entre 1.2 y 1.5. Es la diferencia entre considerar
todos los mensajes posibles de longitud N (2RN) y todos los mensajes con sentido (2rN).

La diferencia entre ratio absoluta y real es lo que llamamos redundancia del lenguaje.
La labor de los algoritmos de cifrado es tratar de eliminar en la mayor medida posible
esa redundancia propia del lenguaje (o protocolo) que utilizamos, de manera que
podamos ocultar de forma efectiva la información.

Shannon midió el secreto de un criptosistema como la incertidumbre del mensaje en


claro conocido el criptograma recibido.

Un sistema tiene secreto perfecto si el conocimiento del texto cifrado no nos


proporciona ninguna información acerca del mensaje del que proviene. La condición
necesaria y suficiente para que esto ocurra es que para cualquier valor de M se cumpla
que la probabilidad de recibir C, resultado de cifrar el mensaje M con una clave K sea la
misma que recibir el criptograma C, resultado de cifrar otro mensaje distinto M’ con
una clave de cifrado diferente.

Corolario: De lo anterior se deduce que el espacio de claves debe ser al menos de igual
tamaño que el espacio de mensajes.

Distancia de unicidad: Se define como el bloque de longitud N de texto cifrado


mínimo necesario para intentar con ciertas expectativas de éxito un ataque en busca de
la clave utilizada para cifrar. A medida que el criptograma sea más largo se supone que
tenemos más información y la tarea del ataque se va facilitando.

Para mejorar los sistemas de cifrado, según Shannon debemos introducir:

Difusión = Transposición.
Confusión = Sustitución.

Criptografía: Técnica y Aplicaciones. 15


Dpto. Electrónica y Sistemas.

También podría gustarte