You are on page 1of 5

UNIVERSIDAD NACIONAL DE SAN

AGUSTIN

ESCUELA PROFESIONAL DE INGENIERIA


DE SISTEMAS

Alumno:
Jimenez Gonzales Luis Alberto

Arequipa – Perú
2017
Algoritmo Lempel Ziv
Fue ideado por Jacob Ziv y Abraham Lempel, y publicado en el IEEE Transactions on
Information Theory, vol. IT-23, No 3 de Mayo de 1977, si bien ya había sido presentado
anteriormente en el IEEE International Symposium on Information Theory celebrado en
Ronneby, Suecia, en Junio de 1976.
Desde entonces recibe el nombre de compresión Lempel-Ziv o, para abreviar, LZ.
Existe una variante de LZ, denominada LZW (Lempel-Ziv-Welch), que se ha hecho muy
famosa por ser la que se utiliza para comprimir en el formato de imágenes GIF. Se trata
de una modificación de LZ que, a costa de un menor ratio de compresión, ofrece mejoras
en cuanto a velocidad y uso de memoria, lo que hizo que se usara en los modems que
soportan el protocolo V42bis. Es también el algoritmo empleado en el programa
compress. Sin embargo, a pesar de su atractivo, no lo trataremos aquí porque,
desgraciadamente, se trata de un algoritmo sujeto a patentes. Pese a que la información
sobre su funcionamiento se encuentra accesible líbremente ("A Technique for High-
Performance Data Compression'', Terry A. Welch, IEEE Computer, Junio 1984, páginas
8-19), su funcionamiento en cambio no lo es. Contrariamente a lo que se podría pensar,
la patente no es de Terry Welch, que durante 7 años, y hasta que en 1983 se marchó a
DEC, estuvo trabajando en el Sperry Research Center de Sudbury, Massachusetts. Desde
el principio fue Sperry el propietario de la patente, aunque nunca trató de sacarle
partido. Al menos hasta que en 1986 se unió a Burroughs para formar Unisys. Fue
entonces cuando empezaron a utilizarla contra los fabricantes de modems. Actualmente
la patente pertenece a Unisys, que legalmente puede cobrar por su uso, como ya hizo
con Compuserve, con la que llegó a un acuerdo para crear una licencia para productores
de software sobre el formato GIF, que antes era libre. No obstante lo dicho, Unisys al
final decidió no cobrar derechos de patentes por código libre que se hubiera publicado
con anterioridad a la decisión de hacer efectiva la patente, y por ello hay una librería -
giflib- que se puede usar para código libre sin pagar patentes; la librería está ahora
mantenida por Eric S. Raymond.
La idea en que se basa LZ resulta simple, visto todo lo que le hemos pedido al algoritmo
en la sección anterior: básicamente busca secuencias repetidas dentro de los datos, y
cada vez que encuentra una de ellas la reemplaza por un puntero a la zona en la que
comienza la primera secuencia, más la longitud que se debe tomar a partir de esa
posición. En caso de que no haya repeticiones, se emite la secuencia como un literal.
Lo más importante, y lo que conforma el núcleo de la idea, es identificar lo que Lempel-
Ziv llaman extensión reproducible de una cadena dentro de otra y que difiere un tanto
de lo que coloquialmente llamamos "repeticiones''.

Algoritmo de Shannon-Fano
Codificación Shannon-Fano, posee un código prefijo basado en un conjunto de símbolos
y sus probabilidades, garantiza que todas las longitudes de palabras de código están a
un bit de su ideal teórico – log P(x). Fue propuesta por Claude Elwood Shannon, en su
artículo “Una Teoría Matemática de la Comunicación”, de 1948. El método fue atribuido
a Robert Fano, quien posteriormente lo publicó como un informe técnico.
Algoritmo criptográfico.
Es un algoritmo que modifica los datos de un documento con el objeto de alcanzar
algunas características de seguridad como autenticación, integridad y confidencialidad.
Es una función matemática usada en los procesos de encriptación y desencriptación.
Trabaja en combinación con una llave (un número, palabra, frase, o contraseña) para
encriptar y desencriptar datos.
Para encriptar, el algoritmo combina matemáticamente la información a proteger con
una llave provista. El resultado de este cálculo son los datos encriptados. Para
desencriptar, el algoritmo hace un cálculo combinando los datos encriptados con una
llave provista, siendo el resultado de esta combinación los datos desencriptados
(exactamente igual a como estaban antes de ser encriptados si se usó la misma llave). Si
la llave o los datos son modificados el algoritmo produce un resultado diferente.
El objetivo de un algoritmo criptográfico es hacer tan difícil como sea posible
desencriptar los datos sin utilizar la llave. Si se usa un algoritmo de encriptación
realmente bueno, entonces no hay ninguna técnica significativamente mejor que
intentar metódicamente con cada llave posible. Incluso para una llave de sólo 40 bits,
esto significa 2ˆ40 (poco más de 1 trillón) de llaves posibles.
Clasificación
Los algoritmos criptográficos se pueden clasificar en tres grupos:
• Criptografía simétrica o de clave secreta.
• Criptografía asimétrica o de clave pública.
• Hash o de resumen.
Algoritmo simétrico
Los algoritmos simétricos o clave secreta encriptan y desencriptan con la misma llave.
Las principales ventajas de los algoritmos simétricos son su seguridad y su velocidad.
Son aproximadamente 1.000 veces más rápidos que los asimétricos.
Algunos algoritmos simétricos
• DES
• 3DES
• RC2
• RC4
• RC5
• IDEA
• AES
• Blowfish
Algoritmo asimétrico
Los algoritmos asimétricos o clave pública se caracteriza por usar una clave para
encriptar y otra para desencriptar. Una clave no se derivará de la otra. Emplean
longitudes de clave mucho mayores que los simétricos. La complejidad de cálculo que
comportan los hace más lentos que los algoritmos de cifrado simétricos. Por ello, los
métodos asimétricos se emplean para intercambiar la clave de sesión mientras que los
simétricos para el intercambio de información dentro.
Algunos algoritmos asimétricos:
• Diffie-Hellman
• RSA
• ElGamal
• Criptografía de curva elíptica
HASH
Hash se refiere a una función o método para generar claves o llaves que representen de
manera casi unívoca a un documento, registro, archivo, etc., resumir o identificar un
dato a través de la probabilidad, utilizando una función hash o algoritmo hash. Un hash
es el resultado de dicha función o algoritmo.
Son usadas en múltiples aplicaciones, como los arrays asociativos, criptografía,
procesamiento de datos y firmas digitales, entre otros. Una buena función de hash es
una que experimenta pocas colisiones en el conjunto esperado de entrada; es decir que
se podrán identificar unívocamente las entradas.
• MD5
• SHA-1
• DSA
Desventajas
Los algoritmos criptográficos tienden a degradarse con el tiempo. A medida que
transcurre el tiempo, los algoritmos de encripción se hacen más fáciles de quebrar
debido al avance de la velocidad y potencia de los equipos de computación.
Todos los algoritmos criptográficos son vulnerables a los ataques de fuerza bruta, tratar
sistemáticamente con cada posible clave de encripción, buscando colisiones para
funciones hash, factorizando grandes números, etc. La fuerza bruta es más fácil de
aplicar en la medida que pasa el tiempo.

Algoritmos Predictivos
Intentan predecir el siguiente mensaje de la entrada en base a lo que se sabe de la
entrada procesada en ese momento. Si el mensaje de la entrada coincide con el predicho
la codificación se podrá hacer con menos bits. En caso contrario se hará con más bits
(que permitan la sincronización con el decompresor a la hora de mantener las mismas
tablas internas; así ya no necesitamos incluirlas en el fichero comprimido). Son
adaptativos.
En consecuencia suelen ser más rápidos que las técnicas anteriores, tanto para
compresión como decompresión, y ademas no son difíciles de programar (sí su mejora).
Son muy malos cuando hay mucha redundancia, así que en la práctica se suelen usar en
conjunción con otras técnicas de compresión para tratar los casos en que hay excesiva
redundancia (por ejemplo el Run-Length).

BIBLIOGRAFIA
[1] http://webdiis.unizar.es/~elvira/LZ.pdf
[2]http://programacion.net/articulo/introduccion_a_la_compresion_de_datos_lempel
ziv-_gzip_186/4
[3] http://www.gedlc.ulpgc.es/docencia/seminarios/cd/Codificacion/tsld005.htm
[4] http://www.galeon.com/odiseus/info/algoritm.htm
[5] https://www.ecured.cu/Algoritmo_criptográfico

You might also like