5. Capítulo 1
MP3
MPEG-1 Audio Layer III o MPEG-2 Audio Layer III, más comúnmente conocido como MP3 es un formato de
compresión de audio digital patentado que usa un algoritmo con pérdida para conseguir un menor tamaño de archivo.
Es un formato de audio común usado para música tanto en ordenadores como en reproductores de audio portátil.
Los archivos MPEG-1 corresponden a las velocidades de muestreo de 32, 44.1 y 48 kHz.
Los archivos MPEG-2 corresponden a las velocidades de muestreo de 16, 22.05 y 24 kHz.
MP3 fue desarrollado por el Moving Picture Experts Group (MPEG) para formar parte del estándar MPEG-1 y
del posterior y más extendido MPEG-2. Un MP3 creado usando una compresión de 128kbit/s tendrá un tamaño de
aproximadamente unas 11 veces menor que su homónimo en CD. Un MP3 también puede comprimirse usando una
mayor o menor tasa de bits por segundo, resultando directamente en su mayor o menor calidad de audio final, así
como en el tamaño del archivo resultante.
1.1 Historia
Este formato fue desarrollado principalmente por Karlheinz Brandenburg, director de tecnologías de medios electró-nicos
del Instituto Fraunhofer IIS, perteneciente al Fraunhofer-Gesellschaft - red de centros de investigación alemanes
- que junto con Thomson Multimedia controla el grueso de las patentes relacionadas con el MP3. La primera de ellas
fue registrada en 1986 y varias más en 1991. Pero no fue hasta julio de 1995 cuando Brandenburg usó por primera
vez la extensión.mp3 para los archivos relacionados con el MP3 que guardaba en su ordenador, en el proceso de
desarrollo del formato participó también el ingeniero Leonardo Chiariglione quien tuvo la idea de los estándares que
podrían ser útiles para este fin.[5] Un año después su instituto ingresaba en concepto de patentes 1,2 millones de euros.
Diez años más tarde esta cantidad ha alcanzado los 26,1 millones.
Tras el desarrollo de reproductores autónomos, portátiles y su integración en cadenas musicales (estéreos) y radio-grabadoras
el formato MP3 llega más allá del mundo de la informática.
El formato MP3 se convirtió en el estándar utilizado para streaming de audio y compresión de audio con pérdida de
mediana fidelidad gracias a la posibilidad de ajustar la calidad de la compresión, proporcional al tamaño por segundo
(bitrate), y por tanto el tamaño final del archivo, que podía llegar a ocupar 12 e incluso 15 veces menos que el archivo
original sin comprimir.
Fue el primer formato de compresión de audio popularizado gracias a Internet, ya que hizo posible el intercambio
de ficheros musicales. Los procesos judiciales contra empresas como Napster y AudioGalaxy son resultado de la
facilidad con que se comparten este tipo de ficheros. A principios de la década de los 2000 otros formatos de audio
comprimido como Windows Media Audio, ATRAC, AAC y Ogg Vorbis empiezan a ser masivamente incluidos en
programas, dispositivos, sistemas operativos, teléfonos celulares y reproductores autónomos, lo que hizo prever que
el MP3 fuera paulatinamente cayendo en desuso, en favor de otros formatos, como los mencionados, de mucha mejor
calidad. Una de las desventajas del formato MP3 es que tiene patente. Técnicamente, el tener una patente no significa
que su calidad sea inferior ni superior, pero impide que la comunidad pueda seguir mejorándolo y puede obligar a
pagar por la utilización del códec; lo cual ocurre en el caso de los dispositivos que lo usan como los teléfonos celulares
y las tabletas. Aún así, hoy día, el formato mp3 continúa siendo el más usado y el que goza de más éxito con una
presencia cada vez mayor. Algunas tiendas en línea como Amazon venden su música en este formato por cuestiones
1
6. 2 CAPÍTULO 1. MP3
de compatibilidad.
1.2 Detalles técnicos
Reproductor MP3 Portátil en forma de bolígrafo.
En esta capa existen varias diferencias respecto a los estándares MPEG-1 y MPEG-2, entre las que se encuentra el
llamado banco de filtros para que el diseño tenga mayor complejidad. Esta mejora de la resolución frecuencial empeora
la resolución temporal introduciendo problemas de pre-eco que son predichos y corregidos. Además, permite calidad
de audio en tasas tan bajas como 64 kbps.
1.2.1 Banco de filtros
El banco de filtros utilizado en esta capa es el llamado banco de filtros híbrido polifase/MDCT. Se encarga de realizar
el mapeado del dominio del tiempo al de la frecuencia tanto para el codificador como para los filtros de reconstrucción
del decodificador. Las muestras de salida del banco están cuantificadas y proporcionan una resolución en frecuen-cia
variable, 6x32 o 18x32 subbandas, ajustándose mucho mejor a las bandas críticas de las diferentes frecuencias.
Usando 18 puntos, el número máximo de componentes frecuenciales es: 32 x 18 = 576. Dando lugar a una resolución
frecuencial de: 24000/576 = 41,67 Hz (si fs = 48 kHz.). Si se usan 6 líneas de frecuencia la resolución frecuencial es
menor, pero la temporal es mayor, y se aplica en aquellas zonas en las que se espera efectos de pre-eco (transiciones
bruscas de silencio a altos niveles energéticos).
La Capa III tiene tres modos de bloque de funcionamiento: dos modos donde las 32 salidas del banco de filtros
pueden pasar a través de las ventanas y las transformadas MDCT y un modo de bloque mixto donde las dos bandas
de frecuencia más baja usan bloques largos y las 30 bandas superiores usan bloques cortos. Para el caso concreto del
MPEG-1 Audio Layer 3 (que concretamente significa la tercera capa de audio para el estándar MPEG-1) específica
cuatro tipos de ventanas: (a) NORMAL, (b) transición de ventana larga a corta (START), (c) 3 ventanas cortas
(SHORT)
7. 1.2. DETALLES TÉCNICOS 3
1.2.2 El modelo psicoacústico
La compresión se basa en la reducción del margen dinámico irrelevante, es decir, en la incapacidad del sistema
auditivo para detectar los errores de cuantificación en condiciones de enmascaramiento. Este estándar divide la señal
en bandas de frecuencia que se aproximan a las bandas críticas, y luego cuantifica cada subbanda en función del
umbral de detección del ruido dentro de esa banda. El modelo psicoacústico es una modificación del empleado en el
esquema II, y utiliza un método denominado predicción polinómica. Analiza la señal de audio y calcula la cantidad
de ruido que se puede introducir en función de la frecuencia, es decir, calcula la “cantidad de enmascaramiento” o
umbral de enmascaramiento en función de la frecuencia.
El codificador usa esta información para decidir la mejor manera de gastar los bits disponibles. Este estándar provee
dos modelos psicoacústicos de diferente complejidad: el modelo I es menos complejo que el modelo psicoacústico
II y simplifica mucho los cálculos. Estudios demuestran que la distorsión generada es imperceptible para el oído
experimentado en un ambiente óptimo desde los 192 kbps y en condiciones normales.[cita requerida] Para el oído no
experimentado, o común, con 128 kbps o hasta 96 kbps basta para que se oiga “bien” (a menos que se posea un
equipo de audio de alta calidad donde se nota excesivamente la falta de graves y se destaca el sonido de “fritura” en
los agudos). Las personas que tienen experiencia en la parte auditiva de archivos digitales de audio, especialmente
música, desde 192 hasta 256 kbps basta para oír bien, pero la compresión en 320 kbps es la óptima para cualquier
escucha. [cita requerida]. La música que circula por Internet, en su mayoría, está codificada entre 128 y 192 kbps, aunque
hoy debido al aumento de ancho de banda es cada vez más frecuente compartir archivos en calidad máxima de
compresión.
1.2.3 Codificación digital y cuantificación
La solución que propone este estándar en cuanto a la repartición de bits o ruido, se hace en un ciclo de iteración
que consiste de un ciclo interno y uno externo. Examina tanto las muestras de salida del banco de filtros como
el SMR (signal-to-mask ratio) proporcionado por el modelo psicoacústico, y ajusta la asignación de bits o ruido
de cuantificación, según el esquema utilizado, para satisfacer simultáneamente los requisitos de tasa de bits y de
enmascaramiento. Dichos ciclos consisten en:
Ciclo interno
El ciclo interno realiza la cuantización no-uniforme de acuerdo con el sistema de punto flotante (cada valor espectral
MDCT se eleva a la potencia 3/4). El ciclo escoge un determinado intervalo de cuantización y, a los datos cuantizados,
se les aplica codificación de Huffman en el siguiente bloque. El ciclo termina cuando los valores cuantizados que han
sido codificados con Huffman usan menor o igual número de bits que la máxima cantidad de bits permitida.
Ciclo externo
Ahora el ciclo externo se encarga de verificar si el factor de escala para cada bandas tiene más distorsión de la permitida
(ruido en la señal codificada), comparando cada banda del factor de escala con los datos previamente calculados en
el análisis acústico. El ciclo externo termina cuando una de las siguientes condiciones se cumple:
Ninguna de las bandas del factor de escala tiene mucho ruido.
Si la siguiente alternación amplifica una de las bandas más de lo permitido.
Todas las bandas han sido amplificadas al menos una vez.
1.2.4 Empaquetado o formateador de bitstream
Este bloque toma las muestras cuantificadas del banco de filtros, junto a los datos de asignación de bits/ruido y
almacena a agapio el audio codificado y algunos datos adicionales en las tramas. Cada trama contiene información de
1152 muestras de audio y consiste de un encabezado, de los datos de audio junto con el chequeo de errores mediante
CRC y de los datos particulares (estos dos últimos opcionales).
8. 4 CAPÍTULO 1. MP3
1.2.5 Volumen
La normalización de volumen, también conocido como Normalización de audio, básicamente consiste en la nivelación
del volumen de las pistas que conforman un álbum, lo que permite escuchar las canciones que lo componen siempre
con el mismo volumen, evitando el salto entre una canción que “suena baja” con otra que “suena alto”.[6] Para ello se
utilizan programas como QMP3Gain.[7]
1.3 Estructura de un fichero MP3
Un fichero Mp3 se constituye de diferentes tramas que a su vez se componen de una cabecera y los datos en sí. Esta
secuencia de datos es la denominada “stream elemental”. Cada una de las tramas es independiente, es decir, pueden
ser cortadas las tramas de un fichero MP3 y después reproducirlos en cualquier reproductor MP3 del Mercado. La
cabecera consta de una palabra de sincronismo que es utilizada para indicar el principio de una trama válida. A
continuación siguen una serie de bits que indican que el fichero analizado es un fichero Standard MPEG y si usa o
no la capa 3. Después de todo esto, los valores difieren dependiendo del tipo de archivo MP3. Los rangos de valores
quedan definidos en la norma ISO/IEC 11172-3.
1.4 Transformada de Fourier discreta
En matemáticas, la transformada de Fourier discreta, designada con frecuencia por la abreviatura DFT (del inglés
discrete Fourier transform), y a la que en ocasiones se denomina transformada de Fourier finita, es una transformada
de Fourier ampliamente empleada en tratamiento de señales y en campos afines para analizar las frecuencias presentes
en una señal muestreada, resolver ecuaciones diferenciales parciales y realizar otras operaciones, como convoluciones.
Es utilizada en el proceso de elaboración de un fichero MP3.
La transformada de Fourier discreta puede calcularse de modo muy eficiente mediante el algoritmo FFT.
1.5 Véase también
Procesamiento digital de sonido
Voz (fonología)
Joint stereo
Ogg Vorbis (ogg)
Ogg Opus (opus)
Windows Media Audio (wma)
AAC
ATRAC
Eiger Labs MPMan F10, primer reproductor MP3 portátil.
S1 MP3 Player
Tabla de formatos de compresión multimedia
Winamp
Napster
9. 1.6. NOTAS Y REFERENCIAS 5
1.6 Notas y referencias
[1] RFC 3003
[2] RFC 3555
[3] RFC 5219
[4] «ISO/IEC 11172-3:1993 – Information technology — Coding of moving pictures and associated audio for digital storage
media at up to about 1,5 Mbit/s — Part 3: Audio». ISO (1993). Consultado el 14 de julio de 2010.
[5] «La pequeña historia de un grande: el MP3». Consultado el 27 de febrero de 2014.
[6] http://www.informatica-hoy.com.ar/multimedia/Normalizar-volumen-MP3-audio.php
[7] http://sourceforge.net/p/qmp3gain/wiki/Home/
1.7 Enlaces externos
Alegsa.com.ar El formato MP3 y sus secretos.
Fraunhofer IIS Sitio web del Instituto Fraunhofer, creador del formato MP3.
10. Capítulo 2
Joint Photographic Experts Group
JPEG (del ingles Joint Photographic Experts Group, Grupo Conjunto de Expertos en Fotografía) es el nombre de un
comité de expertos que creó un estándar de compresión y codificación de archivos e imágenes fijas. Este comité fue
integrado desde sus inicios por la fusión de varias agrupaciones en un intento de compartir y desarrollar su experiencia
en la digitalización de imágenes. La ISO, tres años antes (abril de 1983), había iniciado sus investigaciones en el área.
Además de ser un método de compresión, es a menudo considerado como un formato de archivo. JPEG/Exif es
el formato de imagen más común utilizado por las cámaras fotográficas digitales y otros dispositivos de captura de
imagen, junto con JPG/JFIF, que también es otro formato para el almacenamiento y la transmisión de imágenes
fotográficas en la World Wide Web. Estas variaciones de formatos a menudo no se distinguen, y se llaman JPEG.
Los archivos de este tipo se suelen nombrar con la extensión .jpg.
2.1 Compresión del JPEG
Comparativa de calidad entre la imagen original, comprimida en JPG (con pérdida) y comprimida en WebP (con pérdida).
El formato JPEG utiliza habitualmente un algoritmo de compresión con pérdida para reducir el tamaño de los archivos
de imágenes, esto significa que al descomprimir o visualizar la imagen no se obtiene exactamente la misma imagen de
6
11. 2.2. CODIFICACIÓN 7
la que se partía antes de la compresión. Existen también tres variantes del estándar JPEG que comprimen la imagen
sin pérdida de datos: JPEG2000, JPEG-LS y Lossless JPEG.
El algoritmo de compresión JPEG se basa en dos fenómenos visuales del ojo humano: uno es el hecho de que es
mucho más sensible al cambio en la luminancia que en la crominancia; es decir, capta más claramente los cambios
de brillo que de color. El otro es que nota con más facilidad pequeños cambios de brillo en zonas homogéneas que
en zonas donde la variación es grande; por ejemplo en los bordes de los cuerpos de los objetos.
Una de las características del JPEG es la flexibilidad a la hora de ajustar el grado de compresión. Un grado de
compresión muy alto generará un archivo de pequeño tamaño, a costa de una pérdida significativa de calidad. Con
una tasa de compresión baja se obtiene una calidad de imagen muy parecida a la del original, pero con un tamaño de
archivo mayor.
La pérdida de calidad cuando se realizan sucesivas compresiones es acumulativa. Esto significa que si se comprime
una imagen y se descomprime, se perderá calidad de imagen, pero si se vuelve a comprimir una imagen ya compri-mida
se obtendrá una pérdida todavía mayor. Cada sucesiva compresión causará pérdidas adicionales de calidad. La
compresión con pérdida no es conveniente en imágenes o gráficos que tengan textos, líneas o bordes muy definidos,
pero sí para archivos que contengan grandes áreas de colores sólidos.
2.2 Codificación
Muchas de las opciones del estándar JPEG se usan poco. Esto es una descripción breve de uno de los muchos métodos
usados comúnmente para comprimir imágenes cuando se aplican a una imagen de entrada con 24 bits por pixel (ocho
por cada rojo, verde, y azul, o también dicho “8 bits por canal”). Esta opción particular es un método de compresión
con pérdida.
2.2.1 Transformación del espacio de color
Comienza convirtiendo la imagen desde su modelo de color RGB a otro llamado YUV ó YCbCr. Este espacio de
color es similar al que usan los sistemas de color para televisión PAL y NTSC, pero es mucho más parecido al sistema
de televisión MAC (Componentes Analógicas Multiplexadas).
Este espacio de color (YUV) tiene tres componentes:
La componente Y, o luminancia (información de brillo); es decir, la imagen en escala de grises.
Las componentes U o Cb y V o Cr, respectivamente diferencia del azul (relativiza la imagen entre azul y rojo)
y diferencia del rojo (relativiza la imagen entre verde y rojo); ambas señales son conocidas como crominancia
(información de color).
Las ecuaciones que realizan este cambio de base de RGB a YUV son las siguientes:
Y = 0,257 * R + 0,504 * G + 0,098 * B + 16 Cb = U = 0,148 * R - 0,291 * G + 0,439 * B + 128 Cr = V = 0,439
* R - 0,368 * G - 0,071 * B + 128
Las ecuaciones para el cambio inverso se pueden obtener despejando de las anteriores y se obtienen las siguientes:
B = 1,164 * (Y - 16) + 2,018 * (U - 128) G = 1,164 * (Y - 16) - 0,813 * (V - 128) - 0,391 * (U - 128) R = 1,164 *
(Y - 16) + 1,596 * (V - 128)
NOTA: Estas ecuaciones están en continua investigación, por lo que se pueden encontrar en libros y en la red otras ecuaciones
distintas pero con coeficientes muy parecidos.
Si se analiza el primer trío de ecuaciones veremos que las tres componentes toman como valor mínimo el 16. El canal
de luminancia (canal Y) tiene como valor máximo el 235, mientras que los canales de crominancia el 240. Todos estos
valores caben en un byte haciendo redondeo al entero más próximo. Durante esta fase no hay pérdida significativa de
información, aunque el redondeo introduce un pequeño margen de error imperceptible para el ojo humano.
12. 8 CAPÍTULO 2. JOINT PHOTOGRAPHIC EXPERTS GROUP
Esquema del modelo RGB.
2.2.2 Submuestreo
Una opción que se puede aplicar al guardar la imagen es reducir la información del color respecto a la de brillo
(debido al fénomeno visual en el ojo humano comentado anteriormente). Hay varios métodos: si este paso no se
aplica, la imagen sigue en su espacio de color YUV (este submuestreo se entiende como 4:4:4), con lo que la imagen
no sufre pérdidas. Puede reducirse la información cromática a la mitad, 4:2:2 (reducir en un factor de 2 en dirección
horizontal), con lo que el color tiene la mitad de resolución (en horizontal) y el brillo sigue intacto. Otro método, muy
usado, es reducir el color a la cuarta parte, 4:2:0, en el que el color se reduce en un factor de 2 en ambas direcciones,
horizontal y vertical. Si la imagen de partida estaba en escala de grises (blanco y negro), puede eliminarse por completo
la información de color, quedando como 4:0:0.
Algunos programas que permiten el guardado de imágenes en JPEG (como el que usa GIMP) se refieren a estos
métodos con 1×1,1×1,1×1 para YUV 4:4:4 (no perder color), 2×1,1×2,1×1 para YUV 4:2:2 y 2×2,1×1,1×1 para
el último método, YUV 4:2:0.
Las técnicas algorítmicas usadas para este paso (para su reconstrucción exactamente) suelen ser interpolación bilineal,
vecino más próximo, convolución cúbica, Bezier, b-spline y Catmun-Roll.rh
13. 2.2. CODIFICACIÓN 9
Esquema del modelo YUV.
2.2.3 Transformación discreta de coseno o DCT
Cada componente de la imagen se divide en pequeños bloques de 8×8 píxeles, que se procesan de forma casi inde-pendiente,
lo que disminuye notablemente el tiempo de cálculo. De esto resulta la típica formación cuadriculada, que
se vuelve visible en las imágenes guardadas con alta compresión. Si la imagen sufrió un submuestreo del color, los
colores quedarían en la imagen final en bloques de 8×16 y 16×16 píxeles, según fuese 4:2:2 o 4:2:0.
Después, cada pequeño bloque se convierte al dominio de la frecuencia a través de la transformación discreta de
coseno, abreviadamente llamada DCT.
Un ejemplo de uno de esos pequeños bloques de 8×8 inicial es este:
14. 10 CAPÍTULO 2. JOINT PHOTOGRAPHIC EXPERTS GROUP
Ligera explicación visual sobre el submuestreo. La imagen de arriba a la izquierda es la original; las otras sufren unos submuestreos
de color salvajes que dan idea de los efectos de esta técnica. Ampliar para mejor visualización.
2
52 55 61 66 70 61 64 73
63 59 55 90 109 85 69 72
62 59 68 113 144 104 66 73
63 58 71 122 154 106 70 69
67 61 68 104 126 88 68 70
79 65 60 70 77 68 58 75
85 71 64 59 55 61 65 83
87 79 69 68 65 76 78 94
66666666664
3
77777777775
El siguiente proceso es restarles 128 para que queden números entorno al 0, entre 128 y 127.
2
76 73 67 62 58 67 64 55
65 69 73 38 19 43 59 56
66 69 60 15 16 24 62 55
65 70 57 6 26 22 58 59
61 67 60 24 2 40 60 58
49 63 68 58 51 60 70 53
43 57 64 69 73 67 63 45
41 49 59 60 63 52 50 34
66666666664
3
77777777775
Se procede a la transformación por DCT de la matriz, y el redondeo de cada elemento al número entero más cercano.
15. 2.3. CUANTIFICACIÓN DIGITAL 11
El algoritmo JPEG transforma la imagen en cuadrados de 8×8 y luego almacena cada uno de estos como una combinación lineal
o suma de los 64 recuadros que forman esta imagen; esto permite eliminar detalles de forma selectiva. Por ejemplo, si una casilla
tiene un valor muy próximo a 0, puede ser eliminada sin que afecte mucho a la calidad.
2
415 30 61 27 56 20 2 0
4 22 61 10 13 7 9 5
47 7 77 25 29 10 5 6
49 12 34 15 10 6 2 2
12 7 13 4 2 2 3 3
8 3 2 6 2 1 4 2
1 0 0 2 1 3 4 1
0 0 1 4 1 0 1 2
66666666664
3
77777777775
Nótese que el elemento más grande de toda la matriz aparece en la esquina superior izquierda; este es el coeficiente
DC.
16. 12 CAPÍTULO 2. JOINT PHOTOGRAPHIC EXPERTS GROUP
“Antes de”, en un bloquecillo 8×8 (ampliación ×16).
2.3 Cuantificación digital
El ojo humano es muy bueno detectando pequeños cambios de brillo en áreas relativamente grandes, pero no cuando
el brillo cambia rápidamente en pequeñas áreas (variación de alta frecuencia). Debido a esta condición, se puede
eliminar las altas frecuencias, sin pérdida excesiva de calidad visual. Esto se realiza dividiendo cada componente en el
dominio de la frecuencia por una constante para ese componente, y redondeándolo a su número entero más cercano.
Este es el proceso en el que se pierde la mayor parte de la información (y calidad) cuando una imagen es procesada
por este algoritmo. El resultado de esto es que los componentes de las altas frecuencias, tienden a igualarse a cero,
mientras que muchos de los demás, se convierten en números positivos y negativos pequeños.
Una matriz de cuantificación típica es la matriz de Losheller que se usa opcionalmente en el estándar JPEG:
17. 2.3. CUANTIFICACIÓN DIGITAL 13
“Después de”, en un bloquecillo 8×8, se notan errores respecto a la primera imagen, como en la esquina inferior izquierda, que está
más clara.
2
16 11 10 16 24 40 51 61
12 12 14 19 26 58 60 55
14 13 16 24 40 57 69 56
14 17 22 29 51 87 80 62
18 22 37 56 68 109 103 77
24 35 55 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99
66666666664
3
77777777775
Dividiendo cada coeficiente de la matriz de la imagen transformada entre cada coeficiente de la matriz de cuantifi-cación,
se obtiene esta matriz, ya cuantificada:
18. 14 CAPÍTULO 2. JOINT PHOTOGRAPHIC EXPERTS GROUP
2
26 3 6 2 2 1 0 0
0 2 4 1 1 0 0 0
3 1 5 1 1 0 0 0
4 1 2 1 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
66666666664
3
77777777775
Por ejemplo, cuantificando el primer elemento, el coeficiente DC, sería así:
round
(415
16
)
= round (25:9375) = 26
2.4 Codificación entrópica
La codificación entrópica es una forma especial de la compresión sin pérdida de datos. Para ello se toman los elementos
de la matriz siguiendo una forma de zig-zag, poniendo grupos con frecuencias similares juntos, e insertando ceros de
codificación, y usando la codificación Huffman para lo que queda. También se puede usar la codificación aritmética,
superior a la de Huffman, pero que rara vez se usa, ya que está cubierta por patentes, esta compresión produce archivos
un 5% menores, pero a costa de un mayor tiempo de codificación y decodificación, esta pequeña ganancia, puede
emplearse también en aplicar un menor grado de compresión a la imagen, y obtener más calidad para un tamaño
parecido.
En la matriz anterior, la secuencia en zig-zag, es esta:
−26, −3, 0, −3, −2, −6, 2, −4, 1 −4, 1, 1, 5, 1, 2, −1, 1, −1, 2, 0, 0, 0, 0, 0, −1, −1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
JPEG tiene un código Huffman para cortar la cadena anterior en el punto en el que el resto de coeficientes sean ceros,
y así, ahorrar espacio:
−26, −3, 0, −3, −2, −6, 2, −4, 1 −4, 1, 1, 5, 1, 2, −1, 1, −1, 2, 0, 0, 0, 0, 0, −1, −1, EOB
2.5 Ruido producido por la compresión
El resultado tras la compresión, puede variar, en función de la agresividad de los divisores de la matriz de cuan-tización,
a mayor valor de esos divisores, más coeficientes se convierten en ceros, y más se comprime la imagen.
Pero mayores compresiones producen mayor ruido en la imagen, empeorando su calidad. Una imagen con una fuerte
compresión (1%15%) puede tener un tamaño de archivo mucho menor, pero tendrá tantas imperfecciones que no
será interesante, una compresión muy baja (98%100%) producirá una imagen de muy alta calidad, pero, tendrá un
tamaño tan grande que quizás interese más un formato sin pérdida como PNG.
La mayoría de personas que naveguen por Internet estarán familiarizadas con estas imperfecciones, que son el resulta-do
de lograr una buena compresión. Para evitarlas, se tendrá que reducir el nivel de compresión o aplicar compresión
sin pérdida, produciendo mayores ficheros después.
2.6 Decodificación
El proceso de decodificación es similar al seguido hasta ahora, sólo que de forma inversa. En este caso, al haber
perdido información, los valores finales no coincidirán con los iniciales.
Se coge la información de la matriz, se decodifica, y se pone cada valor en su casilla correspondiente. Después se
multiplica cada uno de estos valores por el valor correspondiente de la matriz de cuantización usada, como muchos
valores son ceros, sólo se recuperan ( y de forma aproximada) los valores de la esquina superior izquierda.
Después se deshace la transformación DCT:
19. 2.6. DECODIFICACIÓN 15
Tras la compresión, suelen quedar a veces bloques como estos, en este caso en un trozo de una imagen ampliado.
2
416 33 60 32 48 40 0 0
0 24 56 19 26 0 0 0
42 13 80 24 40 0 0 0
56 17 44 29 0 0 0 0
18 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
66666666664
3
77777777775
20. 16 CAPÍTULO 2. JOINT PHOTOGRAPHIC EXPERTS GROUP
2
68 65 73 70 58 67 70 48
70 72 72 45 20 40 65 57
68 76 66 15 22 12 58 61
62 72 60 6 28 12 59 56
59 66 63 28 8 42 69 52
60 60 67 60 50 68 75 50
54 46 61 74 65 64 63 45
45 32 51 72 58 45 45 39
66666666664
3
77777777775
Y finalmente se suma 128 a cada entrada:
2
60 63 55 58 70 61 58 80
58 56 56 83 108 88 63 71
60 52 62 113 150 116 70 67
66 56 68 122 156 116 69 72
69 62 65 100 120 86 59 76
68 68 61 68 78 60 53 78
74 82 67 54 63 64 65 83
83 96 77 56 70 83 83 89
66666666664
3
77777777775
Para comparar las diferencias entre el bloque original y el comprimido, se halla la diferencia entre ambas matrices,
la media de sus valores absolutos, da una ligera idea de la calidad perdida:
2
8 8 6 8 0 0 6 7
5 3 1 7 1 3 6 1
2 7 6 0 6 12 4 6
3 2 3 0 2 10 1 3
2 1 3 4 6 2 9 6
11 3 1 2 1 8 5 3
11 11 3 5 8 3 0 0
4 17 8 12 5 7 5 5
66666666664
3
77777777775
Se puede observar que las mayores diferencias están cerca de la mancha, y por la parte inferior, entre la esquina
izquierda y el centro, notándose más esta última, ya que corre una mancha clara que antes estaba más hacia la esquina.
La media de los valores absolutos de las restas es 4.8125, aunque en algunas zonas es mayor.
2.7 Véase también
JPEG2000, basado en wavelets.
2.8 Enlaces externos
Wikimedia Commons alberga contenido multimedia sobre Joint Photographic Experts Group. Commons
Página web del grupo JPEG
JPEG Standard (JPEG ISO/IEC 10918-1 ITU-T Recommendation T.81) en PDF o http://www.digicamsoft.
com/itu/itu-t81-1.html HTML]
Seminario de Imagen y Sonido Digital: Compresión de imagen
Página web de la asignatura Multimedia de la ULPGC, explicación en vídeo del proceso de compresión JPEG
22. Capítulo 3
MPEG-4 Parte 14
MPEG-4 Parte 14 es un formato AAC de compresión de datos de audio desarrollado por el Instituto Fraunhofer
conjuntamente con algunas empresas privadas como ATT, Nokia, Sony y Dolby. El formato MPEG-4 Parte 14 tiene
diversos nombres populares y está relacionado a nivel de programación, con otros formatos AAC anteriores. Apple
ha elegido el formato AAC como formato principal de archivos para los iPods y para su software iTunes.
3.1 Características técnicas
El formato AAC corresponde al estándar internacional “ISO/IEC 13818-7” como una extensión de MPEG-2: un
estándar creado por MPEG (Moving Pictures Expert Group). El algoritmo que utiliza para comprimir los archivos
tiene un rendimiento superior al del MP3, y produce una mejor calidad en los archivos pequeños con respecto a los
codificados en mp3. El mp4 requiere menos recursos del sistema para codificar y decodificar. Los archivos compri-midos
con este formato son, al final, más pequeños que los archivos MP3 de calidad equivalente. A su vez, el archivo
equivalente codificado con matroska y OGG vorbis es más ligero que aquel codificado en m4a (mp4).
El método de codificación adapta el número de bits utilizados por segundo para codificar datos de audio utilizando
una “codificación variable de la frecuencia de bits” (VBR), en función de la complejidad de la transmisión del audio
en un momento determinado.
A diferencia de los dos canales (estéreo) que, como máximo, puede admitir el formato MP3, los formatos AAC
permiten sonidos polifónicos con un máximo de 48 canales. El formato AAC también ofrece frecuencias de muestreo
que varían de 8 Hz a 96,0 kHz, en contraposición con las frecuencias de mp3 que varían de 16 a 48 kHz.
3.2 Generalidades
Como el formato MP3, el formato AAC aplica una forma de compresión que reduce algunos de los datos de audio,
y que se denomina “compresión con pérdidas”. Esto quiere decir que se eliminan algunos de los datos de audio,
por ejemplo las frecuencias inaudibles para los seres humanos, de manera que se pueda obtener un mayor grado de
reducción del tamaño de archivo, aunque ese archivo resultante suena igual al original, en la practica.
MPEG-4 Parte 14 son archivos AAC, que tienen la extensión .mp4 (para MPEG-4), .m4a (para MPEG-4 Audio) o
.m4p, para MPEG-4 protegido. “M4A” (aunque en un principio M4A era el nombre empleado solo para archivos de
sonido) o formato de fichero MP4, formalmente ISO/IEC 14496-14:2003, es un formato estandar de Contenedor
multimedia. Más conocido como M4A por las extensiones .m4a y .m4p. No confundir con reproductor MP4. Es un
formato contenedor especificado como parte del estándar IEC. Se utiliza para almacenar los formatos audiovisuales
especificados por ISO/IEC y el grupo MPEG (Moving Picture Experts Group) al igual que otros formatos audiovi-suales
disponibles. Se utiliza típicamente para almacenar datos en archivos para ordenadores, para transmitir flujos
audiovisuales y, probablemente, en muchas otras formas. Comúnmente utilizado para combinación de contenido de
audio digital y vídeo digital, especialmente aquellos definidos por MPEG, pero también puede ser utilizado para
combinar muchos más tipos de contenido multimedia, tales como audio múltiple, vídeos, subtítulos e imágenes fijas,
o con vitraje de velocidad variable o con velocidad variable de bits, frecuencia variable de muestreo, también puede
combinar un contenido avanzado distinto denominado oficialmente “Rich Media” o “BIFS”, con gráficos animados
18
23. 3.3. COMPATIBILIDAD 19
2D y 3D, interactividad con el usuario, menús de DVD... Estos tipos de contenido no pueden ser combinados con
AVI, con ser y todo AVI un contenedor más popular, al ser anterior y estar más extendido entre los usuarios. Igual que
la mayoría de los formatos modernos, MPEG-4 permite streaming a través de Internet. Se utiliza un track separado
de referencia para incluir información sobre streaming en el archivo.La extensión .m4a” ha sido popularizada por
Apple, quien inició el uso de la extensión .m4a” en su software “iTunes” para distinguir entre archivos MPEG-4 de
audio y vídeo (M4A y M4V respectivamente). Aunque en un principio M4A era el nombre empleado solo para ar-chivos
de sonido, esta denominación adquirió popularidad por ser empleada por la empresa Aple para sus productos
de la linea Ipod, Iphone... Actualmente la mayoría del software que soporta el estándar MPEG-4 reproduce archivos
con la extensión .m4a”. La mayoría de los archivos .m4a” disponibles han sido creados usando el formato AAC,
pero otros archivos en formatos como Apple Lossless y .mp3” pueden ser incluidos en un archivo .m4a”.
Normalmente se puede cambiar, de manera segura, la extensión de los archivos de audio .mp4” a .m4a” y viceversa
pero no así a .mp3” ya que para poder ser reproducidos en un reproductor de audio, éste necesariamente debe tener
la capacidad para descodificar el formato que está contenido en el fichero .mp4” que generalmente está codificado
en MPEG-4 AAC e incompatible con la codificación y descodificación de MPEG-1 Layer 3 para el .mp3”.
MPEG-4 es una serie de códecs y estándares internacionales de vídeo, audio y datos creado especialmente para la
web. Está formado por una serie algoritmos de compresión que codifica datos, audio, y vídeo optimizando su calidad
de almacenamiento, codificación y distribución en redes. Con las cámaras de hoy, se integra, captura y codifica en
una sola acción, lo que optimiza la potencialidad del usuario para emitir.
*.mp4 permite transmitir flujos sobre Internet. También permite transmitir combinaciones de flujos de audio, vídeo y
texto coordinado de forma consolidada. El punto de partida para este formato fue el formato de archivo de QuickTime
de Apple. En la actualidad *.mp4 se ha visto enriquecido en formas muy variadas de manera que ya no se podría
afirmar que son el mismo formato.
*.mp4 se utiliza con frecuencia como alternativa a *.mp3 en el iPod y en iTunes. La calidad del codec AAC que se
almacena en *.mp4 es mayor que la de MPEG-1 Audio Layer 3, pero su utilización no es actualmente tan amplia
como la de *.mp3.
Es lógico[cita requerida] que los archivos comprimidos con el formato MPEG-4 Parte 14 sean al final, de mayor tamaño
que los archivos equivalentes codificados con matroska y OGG vorbis de calidad equivalente. Además de la evolución
técnica producida hasta la aparición del formato matroska por ejemplo, o las ventajas de cada uno de los sistemas
de codificación, hay que añadir que estos formatos alternativos no necesitan incluir en su archivo resultante los datos
identificativos para la validación del copyright.
3.3 Compatibilidad
Es posible enviar prácticamente cualquier tipo de datos dentro de archivos *.mp4 por medio de los llamados flujos
privados, pero los formatos recomendados, por razones de compatibilidad son::
Vídeo: MPEG-4, MPEG-2 y MPEG-1
Audio: MPEG-4 AAC, MP3, MP2, MPEG-1 Part 3, MPEG-2 Part 3, CELP (voz), TwinVQ (tasas de bit muy
bajas), SAOL (midi)
Imágenes: JPEG, PNG
Subtítulos: MPEG-4 Timed Text, o el formato de texto xmt/bt (significa que los subtítulos tienen que ser
traducidos en xmt/bt)
Systems: Permite animación, interactividad y menús al estilo DVD
Estas son algunas de las extensiones utilizadas en archivos que contienen datos en el formato *.mp4:
.mp4: extensión oficial para audio, vídeo y contenidos avanzados (ver más abajo)
.m4a: Sólo para archivos de audio; los archivos pueden ser renombrados como .mp4, si bien no todos los
expertos recomiendan esto.
.m4p: FairPlay archivos protegidos
24. 20 CAPÍTULO 3. MPEG-4 PARTE 14
.m4v: sólo vídeo (algunas veces se utiliza para flujos mpeg-4 de vídeo no especificados en la definición del
formato)
.3gp, .3g2: utilizados por la telefonía móvil 3G, también puede almacenar contenido no directamente especi-ficados
en la definición de .mp4 (H.263, AMR, TX3G)
El formato Ogg Vorbis no es compatible con el formato MP3, pero si lo es con MPEG-4 Parte 14. Esto significa
que el usuario tiene que utilizar un reproductor de audio que admita el formato o instalar un codec específico para
reproducir los archivos Ogg Vorbis. La diferencia principal entre MPEG-4 Parte 14 y Ogg Vorbis, es que el formato
MPEG-4 Parte 14 fue diseñado para salvaguardar los derechos de los dueños del copyright y evitar que se distribuyan
sus contenidos ilegalmente. El formato m4a de audio MPEG-4 Parte 14 de AAC a diferencia del formato OGG,
permite incluir legalmente la protección de los derechos de autor, aquellos archivos de audio sin autorización, que
tengan protección anticopia no funcionarán en ningún reproductor de tipo AAC. Por ejemplo, los archivos m4a para
iPod del software iTunes aunque son compatibles para la reproducción en la Nintendo DSi, no se les permite su
ejecución, porque no está autorizada.
Sin embargo, cada vez son más los programas de audio que pueden reproducir los archivos Ogg Vorbis, y la mayoría
de los dispositivos hardware de reproducción de MP3 actuales admiten este formato.
3.4 Enlaces externos
Definición ISO de MPEG-4 (inglés)
25. Capítulo 4
Formato de compresión ZIP
En informática, ZIP o zip es un formato de compresión sin pérdida, muy utilizado para la compresión de datos como
documentos, imágenes o programas.
Para este tipo de archivos se utiliza generalmente la extensión .zip”.
Muchos programas, tanto comerciales como libres, lo utilizan y permiten su uso más habitual.
4.1 Historia
El formato ZIP fue creado originalmente por Phil Katz, fundador de PKWARE. Katz liberó al público la documen-tación
técnica del formato ZIP, y lanzó al mismo tiempo la primera versión de PKZIP en enero de 1989.
Katz había copiado ARC y convertido las rutinas de compresión de C a un código optimizado en ensamblador, que lo
hacía mucho más rápido. Inicialmente, SEA intentó obtener una licencia por el compresor de Katz, llamado PKARC,
pero Katz lo rechazó. SEA demandó entonces a Katz por infringir el copyright, y ganó.
4.2 Información técnica
ZIP es un formato de fichero bastante simple, que comprime cada uno de los archivos de forma separada. Comprimir
cada archivo independientemente del resto de archivos comprimidos permite recuperar cada uno de los ficheros sin
tener que leer el resto, lo que aumenta el rendimiento. El problema, es que el resultado de agrupar un número grande
de pequeños archivos es siempre mayor que agrupar todos los archivos y comprimirlos como si fuera uno sólo. A
cambio, esto permite extraer cada archivo de forma independiente sin tener que procesar el archivo desde el principio.
La especificación de ZIP indica que cada archivo puede ser almacenado, o bien sin comprimir, o utilizando una amplia
variedad de algoritmos de compresión. Sin embargo, en la práctica, ZIP se suele utilizar casi siempre con el algoritmo
de Phil Katz.
ZIP soporta un sistema de cifrado simétrico basado en una clave única. Sin embargo, este sistema de cifrado es débil
ante ataques de texto plano, ataque de diccionario y fuerza bruta. También soporta distribuir las partes de un archivo
comprimido en distintos medios, generalmente disquetes.
Con el tiempo, se han ido incluyendo nuevas características, como nuevos métodos de cifrado. Sin embargo, estas
nuevas características no están soportadas por las aplicaciones más utilizadas.
4.3 Métodos de compresión
Shrinking (Contracción) (método 1)
La Contracción es una variante de LZW con unos pequeños ajustes. Como tal, estaba afectada por la ya
expirada patente del LZW. Nunca estuvo claro si la patente cubría la decompresión, pero por si acaso,
21
26. 22 CAPÍTULO 4. FORMATO DE COMPRESIÓN ZIP
algunos proyectos libres, como Info-ZIP decidieron no incluirlo en sus productos por defecto.
Reducing (Reducción) (métodos 2-5)
La Reducción implica una combinación de compresiones de secuencias de bytes y aplicación de una
codificación estadística del resultado.
Imploding (Implosión) (método 6)
La Implosión implica comprimir secuencias de bytes repetidamente con una función de ventana desli-zante,
y posteriormente, comprimir el resultado utilizando múltiples árboles Shannon-Fano.
Tokenizing (método 7)
Este método está reservado. La especificación PKWARE no define un algoritmo para él.
Deflate and enhanced deflate (métodos 8 y 9)
Estos métodos usan el bien conocido algoritmo deflate. Deflate permite ventanas de hasta 32 KB. En-hanced
deflate permite ventanas de hasta 64 KB. La versión mejorada (enhanced) tiene un mejor com-portamiento,
pero no está tan extendido.
Biblioteca de compresión de datos de PKWARE por Imploding (método 10)
La especificación oficial del formato no da más información sobre este método.
Método 11
Este método está reservado por PKWARE.
Bzip2 (método 12)
Este método utiliza el conocido algoritmo bzip2. Este algoritmo se comporta mejor que Deflate, pero no
está ampliamente soportado por las herramientas (sobre todo las de Windows).
4.4 En la actualidad
Hoy, los archivos ZIP emplean la extensión de fichero .zip y tienen el tipo media MIME application/zip. Un archivo
ZIP contiene uno o más archivos que están comprimidos o almacenados.
Muchas aplicaciones software, distintas de PKZIP, están disponibles para crear, modificar o abrir archivos zip. Des-tacan
WinZip, WinRAR, PeaZip y 7-Zip.
Las versiones de Windows desde Windows Me también traen por defecto un plugin (zipfldr.dll) que permite mostrarlos
con una interfaz reducida del Explorador de Windows, de forma parecida a los de archivos .cab (cabview.dll) ya
presente en anteriores versiones del SO. Los archivos zip son denominados como “Carpeta comprimida (en zip)
confundiendo el hecho de que se almacena en un único fichero.
Las nuevas versiones de Mac OS X incluyen soporte ZIP integrado en Finder, haciéndolo el formato “oficial” de
compresión en los Mac. Sin embargo, la mayoría de archivos de Mac todavía se comprimen y empaquetan con Stuffit
o, cada vez más a menudo, mediante tarballs.
27. 4.5. FORMATOS DERIVADOS 23
4.5 Formatos derivados
Este formato es también muy usado para la creación de archivos con múltiples componentes, estando todos ellos
comprimidos en un archivo en formato Zip, a menudo con alguna característica más, como el uso de manifests. El
primero de ellos fue el formato Jar usado para la distribución de clases (.class) de Java. Las aplicaciones XUL (como
Mozilla Firefox) y sus extensiones almacenan buena parte de sus archivos en archivos jar. El formato OpenDocument
usado por Apache OpenOffice y OpenXML por Microsoft Office 2007 son archivos XML comprimidos en formato
Zip.
4.6 Véase también
RAR
CAB
AFA
DEB
7z
bzip2
TAR
4.7 Enlaces externos
Ben Baker recuerda a Phil Katz
La opinión de Thom Henderson sobre Phil Katz
Especificaciones técnicas del formato de los archivos PKZIP
Especificación original para la primera versión del formato
Como comprimir archivos con WinZip
28. Capítulo 5
RAR
En informática, RAR (cuyas siglas significan Roshal ARchive en inglés) es un formato de archivo propietario, con un
algoritmo de compresión sin pérdida utilizado para la compresión de datos y archivado, desarrollado por el ingeniero
de software ruso Eugene Roshal.
RAR utiliza un algoritmo de compresión basado en el LZSS que, a su vez, se basaba en el LZ77, de James Storer y
Thomas Szymanski (1982). El tamaño del diccionario puede variar entre 64k y 4 Mb.
5.1 Comparación con otros algoritmos de compresión
El RAR es más lento que el ZIP, pero posee una mayor tasa de compresión. Otra característica de RAR es que posee
una mejor redundancia de datos que ZIP.
Además, este formato permite lo que se conoce como compresión sólida que permite comprimir varios ficheros
juntos, de forma que un mismo diccionario se aplica a toda la información, con lo que el nivel de compresión es
mayor.
5.2 Véase también
Lista de archivadores de ficheros
7z
zip
CAB
LHA
DGCA
GCA
WinRAR
WinZip
7-Zip
PeaZip
5.3 Referencias
[1] «Interview by correspondence» (en ruso) (1997–2002 (mirar el apartaado de 1997)). Consultado el 26 de abril de 2010.
24
29. 5.4. ENLACES EXTERNOS 25
5.4 Enlaces externos
Página oficial en español
Página de RAR Labs
Formato de archivo RAR
30. Capítulo 6
Criptografía musical
La criptografía, en el ámbito de la música, es un método de composición mediante el cual se pretende incorporar
determinados mensajes ocultos que quedan reflejados en la partitura. El compositor aprovecha el conocimiento de las
cualidades y características de la notación musical para incluir el mensaje que desee.
El método criptográfico más extendido ha sido el de esconder mensajes extramusicales a través de los nombres de las
notas. En la notación anglosajona y en la alemana, cada nota se relaciona con una letra del alfabeto; así, la escala la,
si, do, re, mi, fa, sol, en la notación anglosajona es A, B, C, D, E, F, G. La criptografía se basa en la combinación
de estas letras para formar determinadas palabras y mensajes sobre los que se puede construir una composición.
Este procedimiento, que se conoce como cifrado por sustitución, resulta bastante sencillo. También se han utilizado
sistemas más complejos a través de los cuales se consigue relacionar cada nota con más de una letra, de forma que el
mensaje criptográfico resulta más difícil de descifrar.
Son numerosos los compositores que han utilizado esta técnica, desde J. S. Bach, con el sujeto de algunas de sus fugas,
hasta Johannes Brahms o Robert Schumann, con la suite para piano Carnaval opus 9 (1834-1835), o compositores
del siglo XX, como Alban Berg u Olivier Messiaen. Este método también se conoce como «cifrado Mata-Hari», ya
que la famosa espía lo utilizó en más de una ocasión.[1][2]
6.1 Referencias
[1] Team CLGT (12 de marzo de 2009). «CodeGate 2009 Report» (en inglés). Consultado el 2 de julio de 2009. «Véase la
pág. 16».
[2] «Imagen de la plantilla que utilizó Mata-Hari para descrifrar las partituras.». Consultado el 2 de julio de 2009.
26
31. Capítulo 7
Criptoanálisis
El criptoanálisis (del griego kryptós, “escondido” y analýein, “desatar”) es la parte de la criptología que se dedica
al estudio de sistemas criptográficos con el fin de encontrar debilidades en los sistemas y romper su seguridad sin
el conocimiento de información secreta. En el lenguaje no técnico, se conoce esta práctica como romper o forzar el
código, aunque esta expresión tiene un significado específico dentro del argot técnico. A las personas que se dedican
al criptoanálisis se llaman criptoanalistas.
Los métodos y técnicas del criptoanálisis han cambiado drásticamente a través de la historia de la criptografía, adap-tándose
a una creciente complejidad criptográfica. Los sistemas criptográficos han evolucionado desde los métodos
de lápiz y papel del pasado, pasando por máquinas como Enigma -utilizada por los nazis durante la Segunda Guerra
Mundial-, hasta llegar a los sistemas basados en computadoras del presente. Al aumentar la potencia de cálculo de los
sistemas criptográficos, también los esquemas criptográficos han ido haciéndose más complejos. A mediados de los
años 1970 se inventó una nueva clase de criptografía: la criptografía asimétrica. Los métodos utilizados para romper
estos sistemas son por lo general radicalmente diferentes de los anteriores, y usualmente implican resolver un pro-blema
cuidadosamente construido en el dominio de la matemática pura. El ejemplo más conocido es la factorización
de enteros.
Los resultados del criptoanálisis han cambiado también: ya no es posible tener un éxito ilimitado al romper un código,
y existe una clasificación jerárquica de lo que constituye un ataque en la práctica.
la técnica del criptoanálisis se basa en buscar errores o algún error en el sistema para penetrarlo y hacer daños.
7.1 Objetivo
El objetivo del criptoanálisis es encontrar debilidades en los sistemas criptográficos que permitan elaborar ataques
(ataques criptoanalíticos) que rompan su seguridad sin el conocimiento de información secreta. Para ello estudia en
profundidad el diseño y propiedades de los sistemas criptográficos.
Por ejemplo para un sistema criptográfico de cifrado un estudio criptoanalítico puede consistir por ejemplo en con-seguir
la clave secreta o simplemente en acceder al texto en claro sin ni siquiera tener dicha clave. Sin embargo el
criptoanálisis no sólo se ocupa de los cifrados sino que su ámbito es más general estudiando los sistemas criptográficos
con el objetivo de sortear la seguridad de otros tipos de algoritmos y protocolos criptográficos.
Sin embargo, el criptoanálisis suele excluir ataques que no tengan como objetivo primario los puntos débiles de la
criptografía utilizada; por ejemplo, ataques a la seguridad que se basen en el soborno, la coerción física, el robo, el
keylogging y demás, aunque estos tipos de ataques son un riesgo creciente para la seguridad informática, y se están
haciendo gradualmente más efectivos que el criptoanálisis tradicional.
7.2 Ámbitos de estudio
Para la consecución de su objetivo, de elaboración de ataques criptoanalíticos que 'rompan' la seguridad de los sistemas
criptográficos, los criptoanalistas estudian los sistemas criptográficos con el objetivo de descubrir debilidades que se
puedan aprovechar. Para ello estudian los sistemas desde distintos enfoques.
27
32. 28 CAPÍTULO 7. CRIPTOANÁLISIS
7.2.1 Teoría de la información
La teoría de la información proporciona herramientas para evaluar la seguridad de los sistemas criptográficos. Por
ejemplo, en los sistemas de cifrado se estudia la entropía de la clave, de los criptogramas y de los mensajes en claro.
Como el mensaje en claro suele estar expresado en idiomas humanos, también es interesante el estudio de su entropía
y en especial su ratio de entropía.
Los criptoanalistas también estudian el secreto de los sistemas criptográficos. Por ejemplo, en los sistemas de cifrado
estudian el grado de secreto caracterizando aquellos sistemas que tienen secreto perfecto a nivel teórico. De su estudio
se concluye que el secreto perfecto requiere que el número de claves sea al menos tan grande como el número de
mensajes. Esto es impracticable excepto para los llamados cifradores de libreta de un solo uso. En la práctica la
mayor parte de los sistemas tienen claves finitas. Para caracterizar la seguridad de estos sistemas los criptoanalistas
han desarrollado el concepto de distancia de unicidad que es el valor mínimo de caracteres cifrados que hacen que
sólo haya una clave posible que haya sido utilizada para obtener este criptograma. Para ello se aprovecha el concepto
de la entropía condicional del conocimiento de la clave una vez conocido el texto cifrado.
Para un sistema de cifrado hay dos entropías condicionales interesantes[1] desde el punto de vista del criptoanalista:
Para un sistema de cifrado hay una serie de entropías condicionales interesantes:[2][3]
Supongamos
Un mensaje M1 es sometido a un proceso de cifrado usando la clave K1 obteniendo E(K1,M1)=C1.
PC(K) representan la probabilidad condicional de la clave K dado el criptograma recibido C. A veces también
se denota por P(KjC)
PC(M) representan la probabilidad condicional del mensaje M dado el criptograma recibido C. A veces tam-bién
se denota por P(MjC)
Entonces:
Podemos medir la incertidumbre (la entropía) del conocimiento de la clave una vez conocido el texto cifrado,
y por tanto medir la equivocación del mensaje (en inglés message equivocation), HC(K) , también denotada
por H(KjC) , mediante la fórmula:
HC(K) =
Σ
E;K
P(E;K) logPE (K) =
Σ
E
P(E)
Σ
K
PE(K) logPE (K)
La primera igualdad es por la definición de la entropía condicional y la segunda por aplicación del teorema
de Bayes.
Observar que si HC(K) = 0 significa que se podrá romper el cifrado pues ya no hay incertidumbre.
Esta anulación nos introduce en el concepto de distancia de unicidad.
Podemos medir la incertidumbre (la entropía) del conocimiento del mensaje una vez conocido el texto cifrado,
y por tanto medir la equivocación de la clave (en inglés key equivocation), HC(M) , también denotada por
H(MjC) , mediante la fórmula:
HC(M) =
Σ
E;M
P(E;M) logPE (M) =
Σ
E
P(E)
Σ
M
PE(M) logPE (M)
La primera igualdad es por la definición de la entropía condicional y la segunda por aplicación del teorema
de Bayes.
Podemos medir la incertidumbre (la entropía) del conocimiento de la clave una vez conocido el texto cifrado
y el mensaje en claro, y por tanto medir la equivocación del aspecto de la clave (en inglés key appearance
equivocation), HC;M (K) , también denotada por H(KjM;C) , mediante la fórmula:
33. 7.2. ÁMBITOS DE ESTUDIO 29
HC;M (K) =
Σ
E;M;C
P(E;K;M) logPE;M (K)
Podemos medir la incertidumbre (la entropía) del conocimiento del mensaje una vez conocido el texto cifrado
y la clave, denotado por HC;K(M) o por H(MjK;C) . Dada una clave la relación entre texto cifrado y texto
en claro es uno-a-uno y por tanto HC;K(M) = 0
Se ha demostrado[4] que se cumple la siguiente relación entre las distintas entropías:
HC;M (K) = HC(K) HC(M)
De esta relación podemos sacar una conclusión:[5]
El objetivo de cualquiera que use un cifrador es tener un valor de HC;M (K) alto para que el sistema
tenga la máxima fortaleza posible para el caso de que el atacante disponga tanto del texto cifrado como
del texto plano (ataque con texto plano conocido). Sin embargo, por la expresión de la ecuación, para
ello es necesario que HC(M) sea pequeño. Sin embargo, tener un valor pequeño de HC(M) implica
que haya poca incertidumbre respecto al texto plano una vez conocido el texto cifrado (ataque con sólo
texto cifrado disponible), lo cual contrario a los intereses de cualquiera que cifre un mensaje. Por tanto
es necesario una solución de compromiso para que el sistema tenga una fortaleza aceptable para ambos
tipos de ataque
7.2.2 Base matemática y potencia de cálculo
Por ejemplo, la criptografía asimétrica emplea en problemas matemáticos “duros” como base para su seguridad, así
que un punto obvio de ataque es desarrollar métodos para resolver el problema. Los algoritmos asimétricos se diseñan
en torno a la conjeturada dificultad de resolver ciertos problemas matemáticos. Si se encuentra un algoritmo mejorado
que puede resolver el problema, el criptosistema se ve debilitado. Ejemplos:
La seguridad del protocolo Diffie-Hellman depende de la dificultad de calcular un logaritmo discreto. En 1983,
Don Coppersmith encontró una manera más rápida de calcular logaritmos discretos (dentro de ciertos grupos),
y por tanto obligó a los criptógrafos a utilizar grupos más grandes, o diferentes tipos de grupos.
La seguridad del protocolo RSA depende parcialmente de la dificultad en la factorización de enteros. Por tanto
un avance en la factorización tendría un impacto claro en la seguridad de RSA. En 1980, se podía factorizar un
número de 50 dígitos con un coste de 1012 operaciones elementales de computación. Para 1984 la tecnología
en algoritmos de factorización había avanzado hasta el punto de que se podía factorizar un número de 75 dí-gitos
con las mismas 1012 operaciones. Los avances en la tecnología de computación también han provocado
que estas operaciones se puedan realizar en un tiempo mucho menor. La Ley de Moore predice empíricamente
que las velocidades de computación continuarán aumentando. Las técnicas de factorización podrían mostrar
un desarrollo parecido, pero con gran probabilidad dependerán de la capacidad y la creatividad de los mate-máticos,
ninguna de las cuales ha sido nunca satisfactoriamente predecible. Números de 150 cifras, como los
utilizados en RSA, han sido factorizados. El esfuerzo fue mayor que el mencionado anteriormente, pero no
estaba fuera de los límites razonables para un ordenador moderno. Al comienzo del siglo XXI, los números de
150 cifras ya no se consideran suficientemente grandes como clave para RSA. Números de varios cientos de
dígitos se seguían considerando demasiado difíciles de factorizar en 2005, aunque los métodos probablemente
continuarán mejorando con el tiempo, obligando a los tamaños de clave a mantener el ritmo de crecimiento o
a desarrollar nuevos algoritmos.
Otra caraterística distintiva de los algoritmos asimétricos es que, a diferencia de los ataques sobre criptosistemas
simétricos, cualquier criptoanálisis tiene la oportunidad de usar el conocimiento obtenido de la clave pública.
34. 30 CAPÍTULO 7. CRIPTOANÁLISIS
7.3 Ataques criptoanalíticos
Los ataques criptoanalíticos consisten en la aplicación de estudios criptoanalíticos para explotar las debilidades de
sistemas criptográficos y así 'romper' su seguridad.
Los ataques criptoanalíticos varían en potencia y en su capacidad de amenaza para los sistemas criptográficos. Se
dice que un ataque explota una debilidad certificacional si es un ataque teórico que resulta improbable de aplicar
en ninguna situación realista; Muchos de los resultados demostrados en la investigación criptoanalítica moderna son
de este tipo.
Cada ataque tiene sus propiedades, las cuales lo caracterizan, y que hacen que ese ataque sea más o menos realizable.
No todos los ataques criptoanalíticos tienen como objetivo la ruptura total del sistema. El objetivo de un ataque
criptoanalítico es obtener información desconocida sobre el sistema criptográfico de forma que se vaya debilitando
su seguridad
7.3.1 Clasificación
Los ataques criptoanalíticos se puede clasificar en función de sus características.
Clasificación según la actitud del atacante
Los ataques se pueden clasificar según la forma de actuar del atacante
Ataques pasivos En los ataques pasivos el atacante no altera la comunicación, sólo la escucha o monitoriza, para
obtener información. Por tanto este tipo de ataques suelen usar técnicas de escucha de paquetes(sniffing) y de análisis
de tráfico. Son difíciles de detectar ya que no implican alteración de los datos. En algunos casos este tipo de ataques
se pueden dificultar cifrando la información posible objetivo de escuchas.
Ataques activos Suponen alguna modificación del flujo de datos o la creación de flujos falsos. Hay muchas técnicas
que se usan en este tipo de ataques. Ejemplos:
1. Suplantación
2. Modificación de mensajes:Capturar paquetes para luego ser borrados (dropping attacks), manipulados, modi-ficados
(tagging attack) o reordenados
3. Reactuación:Captura de paquetes y retransmisiones
4. Degradación: Técnicas para que el servicio se degrade
Clasificación según el conocimiento previo
El criptoanálisis puede realizarse bajo una serie de supuestos sobre cuánto puede observarse o descubrirse sobre el
sistema en cuestión antes de realizar el ataque. Como un punto de comienzo básico se supone que, para los propósitos
del análisis, el algoritmo general es conocido; ésta es la Máxima de Shannon, “el enemigo conoce el sistema”. Éste es
un supuesto razonable en la práctica - a lo largo de la Historia, hay incontables ejemplos de algoritmos secretos que
fueron conocidos mediante el espionaje, la traición y la ingeniería inversa. (En algunas ocasiones, algunos códigos
han sido reconstruidos mediante la pura deducción, por ejemplo, el código Lorenz y el código PURPLE, así como
una cierta cantidad de códigos clásicos.)
Otros supuestos se pueden categorizar como sigue:
Ataque con sólo texto cifrado disponible: el criptoanalista sólo tiene acceso a una colección de textos cifrados
o codificados.
Ataque con texto plano conocido: el atacante tiene un conjunto de textos cifrados de los que conoce el co-rrespondiente
texto plano o descifrado.
35. 7.3. ATAQUES CRIPTOANALÍTICOS 31
Ataque con texto plano escogido (ataque con texto cifrado elegido): el atacante puede obtener los textos
cifrados (planos) correspondientes a un conjunto arbitrario de textos planos (cifrados) de su propia elección.
Ataque adaptativo de texto plano escogido: como un ataque de texto plano escogido, pero el atacante pue-de
elegir textos planos subsiguientes basándose en la información obtenida de los descifrados anteriormente.
Similarmente, existe el ataque adaptativo de texto cifrado escogido.
Ataque de clave relacionada: como un ataque de texto plano escogido, pero el atacante puede obtener texto
cifrado utilizando dos claves diferentes. Las claves son desconocidas, pero la relación entre ambas es conocida;
por ejemplo, dos claves que difieren en un bit.
Estos tipos de ataque difieren evidentemente en la plausibilidad de que ocurran en la práctica. Aunque algunos son
más probables que otros, los criptógrafos suelen adoptar un enfoque conservador y asumir el peor caso imaginable
cuando diseñan algoritmos, razonando que si un sistema es seguro incluso contra amenazas tan poco realistas, entonces
debería resistir también al criptoanálisis en el mundo real.
Los supuestos en los que se basan estos ataques son a menudo más realistas de lo que podría parecer a primera vista.
Para obtener un ataque con texto plano conocido, el criptoanalista podría muy bien conocer o ser capaz de inferir
una parte que probablemente forma parte del texto plano, como por ejemplo el encabezamiento de una carta cifrada
(“Estimado Sr.”), o que el inicio de una sesión de ordenador contenga las letras “LOGIN”. Un ataque de texto plano
escogido es menos probable, pero en algunos casos puede ser plausible: por ejemplo, si convences a alguien para
reenviar un mensaje que tú mismo le has mandado antes, pero en forma cifrada. Los ataques de clave relacionada
son básicamente teóricos, aunque pueden ser realistas en ciertas situaciones, como por ejemplo al construir funciones
hash criptográficas utilizando un cifrado por bloques.
Clasificación según el objetivo en criptoanálisis
Los resultados de un criptoanálisis también pueden variar en utilidad. Por ejemplo, el criptógrafo Lars Knudsen
(Knudsen, 1998) clasificó varios tipos de ataque sobre cifrados por bloques de acuerdo con la cantidad y la calidad
de la información secreta que pudiera ser descubierta:
Ruptura total - el atacante deduce la clave secreta.
Deducción global - el atacante descubre un algoritmo funcionalmente equivalente para el cifrado y descifrado
de mensajes, pero no obtiene la clave.
Deducción local (o de instancia) - el atacante descubre textos planos o cifrados adicionales a los conocidos
previamente.
Deducción de información - el atacante descubre alguna información en el sentido de Shannon que no era
conocida previamente.
Distinción del algoritmo - el atacante puede distinguir la información cifrada de una permutación al azar.
Se pueden aplicar estas categorías a los ataques sobre otros tipos de algoritmos.
Clasificación según el coste
Los ataques se pueden categorizar por la cantidad de recursos que requieren. Éstos pueden tomar la forma de:
Tiempo - el número de “operaciones primitivas” que deben ser realizadas. Esta categoría es bastante vaga; las
operaciones primitivas podrían considerarse como instrucción básica de computación, como una suma, una
operación XOR, un desplazamiento bit a bit, etc., o como métodos de cifrado enteros.
Memoria - la cantidad de almacenamiento necesario para realizar el ataque.
Datos - la cantidad de textos planos y cifrados necesaria.
36. 32 CAPÍTULO 7. CRIPTOANÁLISIS
En la criptografía académica, una debilidad o una ruptura en un algoritmo se definen de una manera bastante con-servadora.
Bruce Schneier resume esta posición de la siguiente manera: “Romper un cifrado simplemente significa
encontrar una debilidad en el cifrado que puede ser explotada con una complejidad inferior a la de la fuerza bruta. No
importa que la fuerza bruta pudiera requerir 2128 cifrados; un ataque que requiera 2110 cifrados se consideraría una
ruptura... puesto de una manera simple, una ruptura puede ser tan sólo una debilidad certificacional: una evidencia de
que el código no es tan bueno como se publicita” (Schneier, 2000).
7.3.2 Ejemplos
Hay multitud de métodos de ataque criptoanalíticos. Éstos se pueden clasificar en a si están especializado en algún
tipo de criptografía o si son más generales. Los principales son los siguientes:
Especializados en cifrado clásico:
Análisis de frecuencias
Método Kasiski
Índice de coincidencia
Índice mutuo de coincidencia
Especializados en criptografía simétrica:
Criptoanálisis diferencial
Criptoanálisis lineal
Criptoanálisis integral
Criptoanálisis estadístico
Criptoanálisis de módulo n
Ataque XSL (eXtended Sparse Linearisation)
Ataque de deslizamiento
Generales (aplicados en distintos ámbitos):
Ataque de cumpleaños
Ataque Man-in-the-middle
Ataque Meet-in-the-middle
Ataque de fuerza bruta
Jardinería (criptoanálisis)
Análisis de energía
7.4 Ordenadores cuánticos
Los ordenadores cuánticos son potencialmente útiles para el criptoanálisis. Debido a que los estados cuánticos pueden
existir en una superposición (es decir, estar entrelazados), es posible un nuevo paradigma computacional, en el que un
bit no representa tan sólo los estados 0 y 1, sino cualquier combinación lineal de estos. Peter Shor de los Laboratorios
Bell probó la posibilidad, y varios equipos han demostrado uno u otro aspecto de la computación cuántica en los años
transcurridos desde entonces. Por el momento, sólo se ha demostrado una muy limitada prueba de posibles diseños.
No hay, a fecha de 2006, una perspectiva creíble de un ordenador cuántico real y utilizable.
Sin embargo, de construirse un ordenador cuántico, muchas cosas cambiarían. La computación en paralelo sería
probablemente la norma, y varios aspectos de la criptografía cambiarían.
En particular, dado que un ordenador cuántico sería capaz de realizar búsquedas de claves mediante fuerza bruta
extremadamente rápidas, tamaños de clave considerados hoy en día más allá de los recursos de cualquier atacante
por fuerza bruta quedarían al alcance de este ataque. Los tamaños de clave necesarios para quedar más allá de la
capacidad de un ordenador cuántico serían considerablemente más grandes que los actuales. Algunos escritores de
37. 7.5. HISTORIA DEL CRIPTOANÁLISIS 33
divulgación han declarado que ningún cifrado permanecería seguro de estar disponibles los ordenadores cuánticos.
Otros aseguran que simplemente añadiendo bits a las longitudes de las claves se evitarán los ataques de fuerza bruta,
incluso con ordenadores cuánticos.
Una segunda posibilidad es que el aumento en capacidad computacional pueda hacer posibles otros ataques de bús-queda
de claves, más allá de la simple fuerza bruta, contra uno o varios de los algoritmos actualmente inexpugnables.
Por ejemplo, no todo el progreso en la factorización de números primos se ha debido a una mejora de los algorit-mos.
Una parte se debe al incremento del poder computacional de los ordenadores, y la existencia de un ordenador
cuántico en funcionamiento podría acelerar considerablemente las tareas de factorización. Este aspecto es bastante
predecible, aunque no claramente. Lo que no puede ser anticipado es un avance en el campo teórico que requiera la
computación cuántica, que pudiera hacer realizables ataques actualmente impracticables o incluso desconocidos. En
ausencia de un método para predecir estos avances, sólo nos queda esperar.
Se desconoce si existe un método de cifrado en tiempo polinómico que requiera un tiempo exponencial para su
descifrado, incluso para un ordenador cuántico.
7.5 Historia del criptoanálisis
El criptoanálisis ha evolucionado conjuntamente con la criptografía, y la competición entre ambos puede ser rastreada
a lo largo de toda la historia de la criptografía. Las claves nuevas se diseñaban para reemplazar los esquemas ya rotos,
y nuevas técnicas de criptoanálisis se desarrollaban para abrir las claves mejoradas. En la práctica, se considera a
ambas como las dos caras de la misma moneda: para crear un sistema criptográfico seguro, es necesario tener en
cuenta los descubrimientos del criptoanálisis. De hecho, hoy en día se suele invitar a la comunidad científica a que
trate de romper las nuevas claves criptográficas, antes de considerar que un sistema es lo suficientemente seguro para
su uso.
7.5.1 Criptoanálisis clásico
Aunque la expresión criptoanálisis es relativamente reciente (fue acuñada por William F. Friedman en 1920), los
métodos para romper códigos y cifrados son mucho más antiguos. La primera explicación conocida del criptoanálisis
se debe al sabio árabe del siglo IX, Yusuf Yaqub ibn Ishaq al-Sabbah Al-Kindi, en su Manuscrito para Descifrar
Mensajes Criptográficos. Este tratado incluye una descripción del método de análisis de frecuencias (Ibraham, 1992).
El análisis de frecuencias es la herramienta básica para romper los cifrados clásicos. En todas las lenguas conocidas,
ciertas letras del alfabeto aparecen más frecuentemente que otras; por ejemplo, en español, las vocales son muy
frecuentes, ocupando alrededor del 45% del texto, siendo la E y la A las que aparecen en más ocasiones, mientras que
la frecuencia sumada de F, Z, J, X, W y K no alcanza el 2%. Igualmente, se pueden reunir estadísticas de aparición
de pares o tríos de letras. El análisis de frecuencias revelará el contenido original si el cifrado utilizado no es capaz
de ocultar estas estadísticas. Por ejemplo, en un cifrado de substitución simple (en el que cada letra es simplemente
substituida por otra), la letra más frecuente en el texto cifrado sería un candidato probable para representar la letra
“E”.
El análisis de frecuencias se basa tanto en el conocimiento lingüístico como en las estadísticas, pero al volverse cada
vez más complicados los cifrados, las matemáticas se convirtieron gradualmente en el enfoque predominante en el
criptoanálisis. Este cambio fue particularmente evidente durante la Segunda Guerra Mundial, cuando los esfuerzos
para romper los códigos del Eje requirieron nuevos niveles de sofisticación matemática. Más aún, la automatización
fue aplicada por primera vez en la Historia al criptoanálisis, bajo la forma de los dispositivos Bomba y Colossus, una
de las primeras computadoras.
7.5.2 Criptoanálisis moderno
Aunque la computación fue utilizada con gran éxito durante la Segunda Guerra Mundial, también hizo posible nuevos
métodos criptográficos que eran órdenes de magnitud más complejos que los empleados hasta la fecha. Tomada como
un todo, la criptografía moderna se ha vuelto mucho más impenetrable al criptoanalista que los métodos de pluma y
papel del pasado, y parece que en la actualidad llevan ventaja sobre los métodos del puro criptoanálisis. El historiador
David Kahn escribió: “Son muchos los criptosistemas en venta hoy por parte de cientos de compañías comerciales que no
pueden ser rotos por ningún método conocido de criptoanálisis. De hecho, en ciertos sistemas incluso un ataque de texto
38. 34 CAPÍTULO 7. CRIPTOANÁLISIS
Primera página de Un manuscrito para el descifrado de mensajes criptográficos, de Al-Kindi.
plano escogido, en el que un fragmento de texto plano seleccionado es comparado con su versión cifrada, no permite
conocer el código para romper otros mensajes. En cierto sentido, entonces, el criptoanálisis está muerto. Pero éste no
es el final de la historia. El criptoanálisis puede estar muerto, pero, mezclando mis metáforas, hay más de un modo de
desollar un gato.” (Observaciones sobre el 50 Aniversario de la National Security Agency, 1 de noviembre de 2002).
Kahn menciona a continuación las mayores posibilidades para la intercepción, la colocación de dispositivos grabadores
(“bugging”), los ataques de canal lateral y la criptogtafía cuántica como sustitutos de los métodos tradicionales del
criptoanálisis.
Kahn podría haberse apresurado demasiado al declarar al criptoanálisis muerto; aún no se han extinguido los cifrados
débiles. En medios académicos, se presentan regularmente nuevos diseños, y también son rotos frecuentemente: el
cifrado por bloques Madryga, de 1984, demostró ser vulnerable a un ataque con sólo texto cifrado disponible en
1998; FEAL-4, propuesto como sustituto para el algoritmo estándar de cifrado de datos DES fue demolido por una
avalancha de ataques de la comunidad académica, muchos de los cuales no eran enteramente realizables en condiciones
prácticas. En la industria, igualmente, los cifrados no están exentos de fallos: por ejemplo, los algoritmos AS/1, AS/2
y CMEA, usados en la industria de teléfonos móviles, pueden ser rotos en horas, minutos o incluso en tiempo real por
equipo informático ampliamente disponible. En 2001, se demostró que el algoritmo WEP, utilizado para proteger
redes Wi-Fi, es susceptible de ser atacado mediante un ataque de clave relacionada.
39. 7.6. ENLACES EXTERNOS 35
Réplica de un dispositivo Bombe.
7.5.3 Los resultados del criptoanálisis
Los criptoanálisis exitosos han influido sin lugar a dudas en la Historia. La capacidad de leer los pensamientos,
supuestamente secretos, o los planes de otros puede ser una ventaja decisiva, y nunca con mayor razón que en tiempos
de guerra. Por ejemplo, durante la Primera Guerra Mundial, el descifrado del Telegrama Zimmermann fue capital
para la entrada de los Estados Unidos en la guerra. En la Segunda Guerra Mundial, el criptoanálisis de los códigos
alemanes, incluyendo la máquina Enigma y el código Lorenz, ha sido considerado desde un factor que apenas acortó
la guerra en algunos meses en Europa, hasta un elemento crucial que determinó el resultado final (véase ULTRA). Los
Estados Unidos también se beneficiaron del criptoanálisis del código japonés PURPLE durante la contienda (véase
MAGIC).
Todos los gobiernos han sido conscientes desde antiguo de los potenciales beneficios del criptoanálisis para la inteligencia
militar, tanto en lo puramente bélico como en lo diplomático, y han establecido con frecuencia organizaciones dedi-cadas
en exclusiva al descifrado de códigos de otras naciones, por ejemplo GCHQ y NSA, organizaciones americanas
todavía muy activas hoy en día. En 2004, surgió la noticia de que los Estados Unidos habían roto los códigos utilizados
por Irán: ).
7.6 Enlaces externos
En inglés:
Basic Cryptanalysis (los archivos contienen unas cabeceras de 5 líneas que deben ser eliminadas)
Distributed Computing Projects
Software tools (enlace roto disponible en Internet Archive; véase el historial y la última versión).
All lot of real encrypted messages on newsgroups
40. 36 CAPÍTULO 7. CRIPTOANÁLISIS
El Telegrama de Zimmerman, descifrado.
Classic Javascript Cryptoanalysis Tools (sólo funciona con IE 5 o posterior)
7.7 Referencias
Helen Fouché Gaines, “Cryptanalysis”, 1939, Dover. ISBN 0-486-20097-3
Abraham Sinkov, Elementary Cryptanalysis: A Mathematical Approach, Mathematical Association of America,
1966. ISBN 0-88385-622-0
Ibraham A. “Al-Kindi: The origins of cryptology: The Arab contributions”, Cryptologia, 16(2) (April 1992)
pp. 97–126.
41. 7.7. REFERENCIAS 37
David Kahn, The Codebreakers - The Story of Secret Writing”, 1967. ISBN 0-684-83130-9
Lars R. Knudsen: Contemporary Block Ciphers. Lectures on Data Security 1998: 105-126
Bruce Schneier, Self-Study Course in Block Cipher Cryptanalysis, Cryptologia, 24(1) (January 2000), pp.
18–34.
Friedrich L. Bauer: “Decrypted Secrets”. Springer 2002. ISBN 3-540-42674-4
Friedman, William F., Military Cryptanalysis, Part I, ISBN 0-89412-044-1
Friedman, William F.Military Cryptanalysis, Part II, ISBN 0-89412-064-6
Friedman, William F.Military Cryptanalysis, Part III, Simpler Varieties of Aperiodic Substitution Systems,
ISBN 0-89412-196-0
Friedman, William F.Military Cryptanalysis, Part IV, Transposition and Fractionating Systems, ISBN 0-89412-
198-7
Friedman, William F. and Lambros D. Callimahos, Military Cryptanalytics, Part I, Volume I, ISBN 0-89412-
073-5
Friedman, William F. and Lambros D. Callimahos, Military Cryptanalytics, Part I, Volume II, ISBN 0-89412-
074-3
Friedman, William F. and Lambros D. Callimahos, Military Cryptanalytics, Part II, Volume I, ISBN 0-89412-
075-1
Friedman, William F. and Lambros D. Callimahos, Military Cryptanalytics, Part II, Volume II, ISBN 0-89412-
076-X
[1] “Applied cryptology, cryptographic protocols and computer security models”, Richard A. DeMillo et all. American Mat-hematical
Societyn 1983
[2] “Applied cryptology, cryptographic protocols and computer security models”, Richard A. DeMillo et all. American Mat-hematical
Society 1983
[3] “Basic methods of cryptography”, J. C. A. Lubbe,Cambridge University Press 1998
[4] “Basic methods of cryptography”, J. C. A. Lubbe,Cambridge University Press 1998
[5] “Basic methods of cryptography”, J. C. A. Lubbe,Cambridge University Press 1998
42. Capítulo 8
Criptografía cuántica
La criptografía cuántica es la criptografía que utiliza principios de la mecánica cuántica para garantizar la abso-luta
confidencialidad de la información transmitida. Las actuales técnicas de la criptografía cuántica permiten a dos
personas crear, de forma segura, una propiedad única de la física cuántica para cifrar y descifrar mensajes.
La criptografía cuántica como idea se propuso en 1970, pero no es hasta 1984 que se publica el primer protocolo.
Una de las propiedades más importantes de la criptografía cuántica es que si un tercero intenta hacer eavesdropping
durante la creación de la clave secreta, el proceso se altera advirtiéndose al intruso antes de que se transmita infor-mación
privada. Esto es una consecuencia del principio de incertidumbre de Heisenberg, que nos dice que el proceso
de medir en un sistema cuántico perturba dicho sistema.
La seguridad de la criptografía cuántica descansa en las bases de la mecánica cuántica, a diferencia de la criptografía
de clave pública tradicional la cual descansa en supuestos de complejidad computacional no demostrada de ciertas
funciones matemáticas.
La criptografía cuántica está cercana a una fase de producción masiva, utilizando láseres para emitir información en
el elemento constituyente de la luz, el fotón, y conduciendo esta información a través de fibras ópticas.
8.1 Conceptos básicos
La criptografía es la disciplina que trata de la transmisión y almacenamiento de datos de manera que no puedan ser
comprendidos ni modificados por terceros. Los diferentes métodos de criptografía actualmente utilizados necesitan
que dos personas que deseen comunicar información intercambien de forma segura una o más claves; una vez que las
claves han sido intercambiadas, los interlocutores pueden transferir información con un nivel de seguridad conocido.
Pero esta forma de trabajar basa la seguridad de las transmisiones exclusivamente en el intercambio de claves. La
forma más segura de realizar este intercambio de claves es de manera presencial, pero ello no es posible en la mayoría
de los casos, dado el múltiple número de interlocutores con los que se desea intercambiar información confidencial
(bancos, tiendas en Internet, colegas de trabajo en sedes distantes, etcétera). De manera que el punto donde hay menor
seguridad en el intercambio de información confidencial está en el proceso de intercambio y transmisión de las claves.
La mecánica cuántica describe la dinámica de cada partícula cuántica (fotones, electrones, etc.) en términos de estados
cuánticos, asignando una probabilidad a cada posible estado de la partícula por medio de una función.
Algunos aspectos a considerar de la mecánica cuántica:
Superposición: Una partícula puede poseer más de un estado a la vez, en otras palabras, se encuentra en
realidad “repartida” entre todos los estados que le sean accesibles.
La medición no es un proceso pasivo como se suponía en la mecánica clásica, ya que altera al sistema.
Colapso de estados: Una partícula que se encuentra repartida entre todos sus estados accesibles, al ser medida
se altera su estado superpuesto determinando en qué estado particular, de entre una variedad de estados posibles,
se encuentra.
38
43. 8.2. INTERCAMBIO DE CLAVES CUÁNTICAS 39
Incertidumbre: En la teoría cuántica, algunos pares de propiedades físicas son complementarias (por ejemplo,
la posición y el momentum), en el sentido de que es imposible saber el valor exacto de ambas. Si se mide
una propiedad, necesariamente se altera la complementaria, perdiéndose cualquier noción de su valor exacto.
Cuanto más precisa sea la medición sobre una propiedad, mayor será la incertidumbre de la otra propiedad.
Entrelazamiento: Dos partículas cuánticas pueden tener estados fuertemente correlacionados, debido a que se
generaron al mismo tiempo o a que interactuaron, por ejemplo, durante un choque. Cuando esto ocurre se dice
que sus estados están entrelazados, lo que provoca que la medición sobre una de ellas determina inmediatamente
el estado de la otra, sin importar la distancia que las separe. Este fenómeno se explica aplicando las leyes de
conservación del momento y de la energía. (ver Paradoja EPR)
Las partículas utilizadas habitualmente en la criptografía cuántica son los componentes de la luz o fotones, y los
estados que se utilizan para ser entrelazados o superpuestos entre sí son sus dos estados de polarización, que es una
de las características conocidas de la luz, aunque no sea directamente perceptible.
Un fotón puede ser polarizado artificialmente en una dirección en particular con respecto a su dirección de desplaza-miento.
Dicha polarización puede ser detectada mediante el uso de filtros, orientados en el mismo sentido en el que
la luz fue polarizada. Estos filtros dejan pasar los fotones polarizados en un estado y absorben los polarizados en el
otro.
8.2 Intercambio de claves cuánticas
Como se dijo anteriormente, las técnicas actuales de la criptografía cuántica permiten la construcción de una clave
secreta compartida que puede ser usada como llave para cifrar y descifrar mensajes.
8.2.1 Dos protocolos distintos
BB84
Este protocolo se publicó en 1984 por Charles Bennett y Gilles Brassard y con él se produce el nacimiento de la
criptografía cuántica.
En este protocolo, la transmisión se logra utilizando fotones polarizados enviados entre el emisor (tradicionalmente de
nombre Alice (en el lado A)) y el receptor (de nombre Bob (en el lado B)) mediante un canal cuántico, por ejemplo,
una fibra óptica. Por otro lado, también se necesita la existencia de un canal público (no necesariamente cuántico)
entre Alice y Bob, como por ejemplo Internet u ondas de radio, el cual se usa para mandar información requerida
para la construcción la clave secreta compartida. Ninguno de los canales necesita ser seguro, es decir, se asume que
un intruso (de nombre Eve) puede intervenirlos con el fin de obtener información.
Cada fotón representa un bit de información, cero o uno y la información se logra mediante la codificación de estados
no-ortogonales, por ejemplo rectilíneamente (horizontal y vertical) o bien diagonalmente (en ángulos de 45º y 135º),
como se muestra en la tabla de abajo. También se puede ocupar una polarización circular (horario o antihoraria).
Tanto Alice como Bob, pueden emitir fotones polarizados.
Primer paso: El protocolo comienza cuando Alice decide enviar una secuencia de fotones polarizados a Bob. Para
ello, Alice genera una secuencia aleatoria de bases, por ejemplo, entre rectilíneas (+) y diagonales (x), la cual es
almacenada momentáneamente. Una vez hecho esto, Alice usa el canal cuántico para emitir a Bob un fotón polarizado
al azar usando las bases que ella generó (un fotón por cada base), registrando la polarización con la que fue emitido.
Alice tiene entonces la secuencia de bases utilizadas y la polarización de los fotones emitidos.
La mecánica cuántica dice que no es posible realizar una medición que distinga entre 4 estados de polarización
distintos si es que estos no son ortogonales entre sí, en otras palabras, la única medición posible es entre dos estados
ortogonales (base). Es así que por ejemplo, si se mide en una base rectilínea, los únicos resultados posibles son
horizontal o vertical. Si el fotón fue creado con una polarización horizontal o vertical (con un generador de estados
rectilíneo), entonces esta medición arrojará el resultado correcto. Pero si el fotón fue creado con una polarización
de 45º o 135º (generador diagonal), entonces la medición rectilínea arrojara un resultado de horizontal o vertical al
azar. Es más, después de esta medición, el fotón quedará polarizado en el estado en el cual fue medido (horizontal o
vertical), perdiéndose toda la información inicial de la polarización.
44. 40 CAPÍTULO 8. CRIPTOGRAFÍA CUÁNTICA
Segundo paso: Como Bob no sabe las bases que ocupó Alice para generar los fotones, no le queda otra opción más
que medir la polarización de los fotones usando una base aleatoria generada por él (rectilínea o diagonal).
Bob registra las bases que utilizó para medir los fotones y también los resultados de cada medición.
Tercer paso: Alice y Bob se contactan por medio del canal público para comunicarse las bases que utilizaron para
generar y leer respectivamente: Bob envía las bases que él usó y Alice envía las bases que ella usó.
Ambos descartan las mediciones (bits) en donde no coincidieron en las bases (en promedio se descarta la mitad de
los bits). Los bits que quedaron fueron generados y medidos con la misma base, por lo que la polarización registrada
es la misma para Alice y para Bob.
Hasta este paso, en una comunicación ideal, Alice y Bob ya tienen una clave secreta compartida determinada por los
bits que quedaron.
Cuarto paso: Dado que puede existir alguna impureza en el canal cuántico o, peor aun, un intruso pudo haber
interceptado la transmisión de fotones, la polarización de los fotones pudo haber sido alterada por lo que Alice y Bob
deben comprobar que efectivamente los bits que no fueron descartados coinciden en su valor.
Si un intruso intenta medir los fotones que mandó Alice, al igual que Bob no sabe con qué base se generaron, por lo
que tiene que realizar sus mediciones usando bases al azar lo que inevitablemente introduciría una perturbación en
los fotones enviados por Alice si es que no coinciden en la base. Tampoco podría generar los fotones originales de
Alice ya que el teorema de no-clonación garantiza que es imposible reproducir (clonar) la información transmitida
sin conocer de antemano el estado cuántico que describe la luz.
Si un intruso intentó obtener información de los fotones entonces, con una alta probabilidad, la secuencias de bits
de Alice y Bob no coinciden. Con el fin de detectar la presencia del intruso, Alice y Bob revelan segmentos de la
clave generada. Si difieren en una cantidad superior a un mínimo determinado, entonces se asume la existencia de un
intruso y se aborta la comunicación.
Existen técnicas para que la información revelada de la clave sea lo menor posible (por ejemplo usando funciones de
Hash). También existen técnicas para poder reparar la secuencia de bits en caso de que no haya habido un calce total
(por ejemplo, en el caso de una interferencia).
Quinto paso: Para codificar un mensaje se puede utilizar el mismo canal cuántico con fotones polarizados, o utilizar
el canal público cifrando el mensaje con un algoritmo de cifrado, ya que la clave para el cifrado se ha transmitido de
manera absolutamente segura.
Fotones Entrelazados E91
El esquema de criptografía cuántica basada en pares de fotones entrelazados fue propuesto por Artur Ekert en 1991.
El esquema de comunicación es similar al del protocolo BB84. La diferencia es que se necesita además una fuente
que produzca una serie de pares de fotones entrelazados. Dicha fuente puede estar en manos de Alice, Bob o algún
tercero, lo importante es que de cada par de fotones entrelazados producido, un fotón llegue a Alice y el otro a Bob.
Si Alice y Bob miden para ver qué tipo de polarización rectilínea tienen sus respectivos fotones (ambos miden en la
misma base), obtendrán siempre respuestas opuestas (anticorrelación).
Previo a la medición es imposible predecir que estado obtendrá cada fotón, por lo que Alice y Bob miden indepen-dientemente
con una base aleatoria. Si ambas bases no coinciden, entonces la anticorrelación se pierde y el resultado
de la medición no servirá. Debido a esto y análogamente al protocolo BB84, Alice y Bob se intercambian las bases
que utilizaron para medir sus respectivos fotones, para saber qué bits son los que corresponden a la clave generada.
Si un intruso intentase medir de alguna forma alguno de los fotones entrelazados, no podrá saber de antemano las
bases de Alice y Bob por lo que no tiene otra opción más que medir con una base aleatoria, esto provocará que su
intento de medición alterará el resultado de Alice y Bob.
Al igual que en el protocolo BB84, también se necesita verificar parte de la clave secreta con el fin de saber si alguien
estuvo interceptando la comunicación y de reparar la clave en caso de interferencia o errores de transmisión.
La ventaja de este protocolo, es que la clave se genera “naturalmente al azar” ya que es imposible saber de antemano
qué polarización tendrá cada fotón.