Documentos de Académico
Documentos de Profesional
Documentos de Cultura
6 Criptografia
6 Criptografia
4º curso.
INF Tema 1. Conceptos Básicos sobre Criptografía (Introd. a la Criptología).
Por otro lado, existe otra ciencia íntimamente relacionada con la anterior, y sin la cual
no se puede entender su existencia y evolución.
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:
Canal
EMISOR inseguro RECEPTOR
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.
Cifrado: E(M) = C
Descifrado: D(C) = M
Se cumple: D(E(M)) = M
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:
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.
O(1) < O(ln(ln(n))) < O(ln(n)) < O(nε) < O(nc) < O(nln(n)) < O(cn) < O(nn) < O c c ( )
n
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:
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:
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
Canal
EMISOR inseguro RECEPTOR
CLAVE PRIVADA
Canal
EMISOR inseguro RECEPTOR
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:
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.
[( )
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:
MAC(k, m)
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.
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:
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:
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.
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.
Matemáticamente:
X = {x1 , x2 , x3 , K, xn −1 , xn }
0 ≤ pi ≤ 1 para i = 1, 2, K, n
Entonces:
n
∑p
i =1
i =1
ci = − log 2 ( pi )
Luego se deduce:
( 1 ) = log[1 (1 k )] = − log
ci = log 2 k 2 p
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
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).
H (x )
r=
N
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.
Corolario: De lo anterior se deduce que el espacio de claves debe ser al menos de igual
tamaño que el espacio de mensajes.
Difusión = Transposición.
Confusión = Sustitución.