1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf ·...

36
Problemática Conversión Sintáctica Encriptación Compresión Nivel de Presentación en la práctica 10/05/2005 Tema 8. Nivel de Presentación Índice 1 de 36 Enrique Alba Torres Universidad de Málaga (UMA) Tema 8. Nivel de Presentación

Transcript of 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf ·...

Page 1: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

1 de 36

Enrique Alba Torres

Universidad de Málaga (UMA)

Tema 8. Nivel de Presentación

Page 2: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

2 de 36

Problemática de la Representación de Datos

• En este nivel, en lugar de tener como objetivo el movimiento confiable de bits el principal problema es la sintaxis y semánticade la información transmitida

• Diferentes sistemas operativos representan la información de forma diferente en su memoria. Unos hosts usan código ASCII, otros EBCDIC, los enteros se almacenan en complemento a 1, a 2... Se necesita pues una notación abstracta y un mecanismo de codificación para transmitirla

• Este nivel software tiene varios objetivos fundamentales:

1. Dar a los usuarios una interfaz para ejecutar las primitivas del servicio de sesión

2. Proveer y manejar una notación para especificar estructuras de datos complejas

3. Servicios adicionales que afectan al transporte de la información, tales como seguridad y compresión

Page 3: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

3 de 36

Problemática de la Representación de Datos

• En definitiva los servicios proporcionados por la capa de presentación son los siguientes:

Conversión Sintáctica

Encriptación

Codificación

Compresión

Page 4: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

4 de 36

Conversión Sintáctica – ASN.1• Diferentes aplicaciones usan diferentes representaciones de las

estructuras de datos tales como cadenas de caracteres y tablas

• Para que puedan intercambiar estas estructuras es conveniente acordar una sintaxis de transferencia común

• La capa de presentación traduce entre la sintaxis específica de la aplicación y la sintaxis de transferencia

• Para facilitar la conversión a sintaxis de transferencia ISO recomienda la Notación Sintáctica Abstracta 1 (ASN.1) para la definición de estructuras de datos

• ASN.1 es el lenguaje usado por SNMP para definir los objetos (MIB) manipulados (consultas/modificaciones) de manera independiente de los fabricantes

• ASN.1 es una “gramática” para definir Tipos de Datos

Page 5: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

5 de 36

Conversión Sintáctica – ASN.1• En ASN.1 se consideran cuatro tipos posibles para un dato:

• Cada uno de los tipos es Primitivo (como un único entero) o Construido (como un vector de enteros). La gramática para codificar una estructura de datos en ASN.1 tiene el mismo aspecto que la gramática de un lenguaje de alto nivel (C, Pascal)

• La sintaxis de transferencia se define especificando cómo se codifican los distintos tipos de datos. La codificación comienza con un tag que especifica el tipo de datos. Cada tipo tiene su propia regla de codificación. Para decodificar este elemento-dato marcado la capa de presentación destino examina el tag e invoca al procedimiento de decodificación que corresponde al tipo de dato indicado

Universal: Boolean, Integer y RealEspecífico del Contexto: Definidos para el contexto local en que se usan estos tipos (normalmente el sistema operativo)Aplicación: Definidos para la aplicación específicaPrivado: Definidos por el usuario

Page 6: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

6 de 36

ASN.1 en SNMP• Uno de los principales usos de ASN.1 es en la definición de

objetos SNMP (protocolo de gestión remota de equipos en red)

• Los tipos estándares se escriben en mayúsculas (p.e. INTEGER)

• Los tipos definidos por el usuario comienzan en mayúscula (p.e. Status)

• Los identificadores deben comenzar con minúsculas (p.e. count)

• Los espacios en blanco y tabuladores no son relevantes.

• Los comentarios empiezan y terminan con un guión “-”

• No se permite usar en SNMP los tipos BOOLEAN ni REAL

• No todos los datos primitivos ASN.1 están permitidos

Page 7: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

7 de 36

ASN.1 en SNMP• Los datos primitivos ASN.1 permitidos en SNMP son:

6Tipo de datos definido oficialmenteOBJECT IDENTIFIER

5Marcador de lugarNULL

4Cadena de cero o más bytes sin signoOCTET STRING

3Cadena de cero o más bitsBIT STRING

2Entero de longitud arbitrariaINTEGER

CódigoSignificadoTipo Primitivo

- Permite identificar los objetos de forma única.Para ello define el estándar que los acoge en forma de un árbol de identificadores

OBJECT IDENTIFIER

- Usado como separador en la prácticaNULL

- Definen cadenas de 0 o más bits/bytes de longitud variable. Pueden darse valores por defecto para ellas

BIT/OCTET STRING

- Define variables de tipo enteroINTEGER

Page 8: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

8 de 36

ASN.1 en SNMP• Ejemplos:

SEQUENCE: secuencia ordenada de tipos (como un registro)

SEQUENCE OF: vectores ordenados de una dimensión, todos del mismo tipo

CHOICE: crea una unión a partir de una lista dada de tipos.

Tipos referidos: Crea nuevos tipos a partir de otros existentes. Pueden especificarse categorías: universal, aplicación, contexto y privado

Macros: modelos genéricos que definen prototipos para tipos de datos complejos

• Se pueden construir tipos nuevos a partir de los básicos usando:

Def. de variable: count INTEGER ::= 100Def. de enumerados: Status ::= INTEGER{up(1),down(2),unknown (3)}Def. de subrangos: PacketSize ::= INTEGER(0..1023)Def. de objetos: {iso identified-organization(3) dod(6) internet(1) ...}

Page 9: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

9 de 36

ASN.1 – Sintaxis de Transferencia• Define la forma de convertir (y decodificar en el receptor) sin

ambigüedad los valores expresados con ASN.1 para su transmisión (y recuperación) por la red

• La sintaxis de transferencia se especifica usando las BER(Basic Encoding Rules)

• Tras usar las reglas, que muchas veces son recurrentes, llegamos a tener un flujo de objetos primitivos organizados

• Cada valor transmitido se codifica usando 4 campos:

1. Identificador

2. Longitud del campo de datos

3. Campo de datos

4. Indicador de fin de contenido

Page 10: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

10 de 36

ASN.1 – Sintaxis de Transferencia• El identificador es un octeto (o más) con tres campos:

- Etiqueta (2 bits): 00-Universal, 01-Aplicación, 10-Específico y 11-Privado

- Tipo (1 bit): 0-Primitivo, 1-Construido- Valor Etiqueta (5 bits): identifican el tipo de valor si está en el

rango 0..30. Si es 31 o más estarán los cinco activos (11111) y hay uno o más octetos detrás del primero. Se usan los 7 bits últimos de cada uno en caso de existir; el primer bit de cada octeto adicional es 0 en todos los octetos excepto en el último

• La longitud del campo de datos es un octeto que contiene el número de octetos de datos

• El campo de datos contiene los valores de los objetos que se desean transmitir

• El indicador de fin de contenido se utiliza si se desconoce el número de datos. Este campo existe en ASN.1 pero estáprohibido usarlo en SNMP

Page 11: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

11 de 36

ASN.1 – Sintaxis de Transferencia• Las cadenas de octetos utilizan big endian (de izquierda a

derecha, MSB a la izquierda)

• El valor nulo tiene el campo de longitud 0. No transmite ningún valor numérico

• Ejemplos:

000011100000000101-0-00010Gauge32 a 14

0000000000-0-00101Nulo

01111001011110000000001000-0-00100Cadena de octetos “xy”

001100010000000100-0-00010Entero 49

VALORLONG.ID.

Page 12: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

12 de 36

Encriptación de la Información• La encriptación (cifrado) de la información es un recurso de

seguridad para evitar accesos no autorizados a ficheros u otra información en el host, así como para hacer ininteligibles los ficheros transmitidos por la red

• El texto que el emisor debe transmitir de forma segura se llama texto plano P. El emisor lo cifra (C texto cifrado). El receptor descifra C para obtener P

• El emisor usa la función Ek(.) para encriptar. La clave kdetermina el esquema de encriptado usado. Dk(.) es la función inversa de Ek(.). Todo este proceso se puede observar aquí:

P PEK(.) C = EK(P) DK(.)

TextoPlano

Clavek

Texto cifradotransmitido

Clavek

TextoPlano

Page 13: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

13 de 36

Encriptación de la Información• Deben existir muchas posibles funciones Ek(.), si no, una persona

no autorizada podría saber como decodificar C

• Las diferentes funciones corresponden a diferentes códigos o a diferentes parámetros del código que pueda usar el cifrador

• Cada código se identifica por una clave k que especifica el algoritmo de codificación

• Si la clave de cifrado es la misma que la de descifrado se dice que el cifrado es simétrico

• Por lo general, la clave de cifrado suele ser pública y la de descifrado privada y distinta, dando lugar al cifrado asimétrico

• El emisor y el receptor deben acordar qué algoritmo usar

Page 14: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

14 de 36

Encriptación de la Información

• Vamos a estudiar varios métodos de encriptación de información:

Código por sustitución de letras

Código por transposición

Data Encription Standard (DES)

Criptografía de clave pública

Page 15: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

15 de 36

Código por Sustitución de Letras• Reemplaza cada letra del alfabeto por otra. La clave especifica el

tipo de sustitución

SUSTITUCIÓN: a f, b s, c o, ...P = cab E() C = ofsC = ofs D() P = cab

• La desventaja es que este código puede romperse fácilmente para textos planos usando la frecuencia relativa de las letras. Por ejemplo, la “e” es la más usada en Inglés. Si buscamos la letra más frecuente en el texto cifrado podemos descifrarla como “e” y seguir igal con las otras menos frecuentes: “t”, “o”, etc.

• Se podría mejorar fácilmente cambiando la sustitución letra a letra de acuerdo con un patrón periódico (sustitución múltiple). Por ejemplo, usando 5 sustituciones diferentes aplicando la primera para las letras número 1, 6, 11, etc., la segunda para las letras número 2, 7, 12, etc., y así para todas

Page 16: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

16 de 36

Código por Sustitución de Letras

• Sin embargo, el código puede romperse probando diferentes longitudes de período. Una vez que se encuentra el período 5 se estudia la sustitución para las letras 1, 6, 11, ... y después se repite el proceso para el resto de sustituciones

• Naturalmente habría que saber primero que se está utilizando cifrado por sustitución antes de pasar a encontrar los períodos de usados y las sustituciones en sí mismas

• Si el número de sustituciones es muy grande el código es difícil de romper, pero también es difícil de transmitírselo al receptor para que pueda decodificar

• Esta transmisión debe hacerse también de forma segura (no basta con codificar el fichero con la información)

Page 17: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

17 de 36

Código por Transposición• Para aplicarlo se considera el texto en filas de L (10 por ejemplo)

letras cada una, y se envía el texto columna a columna:

• El código se puede romper probando varias longitudes de fila distintas

• Combinando sustitución con transposición se puede alcanzar una seguridad fiable con algoritmos de bajo coste computacional

P = ESTO&ES&UNA&FRASE&ANTES&DE&LA&TRANSPOSICION.

E S T O & E S U& N AF& R A S E & A N T E

S & D E & L A & T R AN S P O S I C I O N .

C = E&SNSF&STRDPOAEO&S&SEELIS&AC&A&IUNTONTRNAEA.

Page 18: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

18 de 36

Data Encription Standard (DES)• En 1977 el Natural Bureau of Standards adoptó la Encriptación

de Datos Estándar (DES) como oficial para la información no clasificada del gobierno de los E.E.U.U.

• Se trata de un cifrado simétrico; la forma de cifrar y descifrar es perfectamente conocida, lo que no se conoce es la clave

• DES fue desarrollado por IBM y usa una combinación de sustituciones y transposiciones. Existen chips VLSI baratos que llevan a cabo el cifrado y descifrado a muy alta velocidad

• Para cifrar un texto, DES lo divide en bloques de 64 bits y los codifica por separado en bloques también de 64 bits:

C64 = Ek(P64)

• La clave k es una palabra de 56 bits

Page 19: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

19 de 36

Data Encription Standard (DES)• El primer paso es transponer P haciendo P1=T(P)

• Después DES calcula Pi+1=F(Pi, ki) para i = 1..16, donde ki se obtiene de k aplicando también transposiciones sucesivas

• La función F la especifica el algoritmo

• Finalmente se calcula C=T-1(P16) como texto cifrado

• La clave k debe distribuirse de forma segura. Existen varios métodos:

- Cifrarla usando una clave maestra que se comunica a mano. Como esta clave se usa raramente (sólo para intercambiar claves) identificar el código es muy difícil

- Usar puzzles. Supongamos que dos usuarios A y B quieren acordar una clave. A tendrá una lista de N puzzles. Cada puzzle contiene un número, una clave y un campo de ceros. A codifica cada puzzle con una clave DES diferente y le envía todos los puzzles a B. Para seleccionar una clave B elige un puzzle aleatoriamente, lo resuelve y le envía el número de puzzle a A. A y B usan la clave de dicho puzzle. B tiene que resolver sólo un puzzle, mientras que un posible fisgón debería resolver N/2 puzzles en término medio antes de encontrar el que tiene el número anunciado por B

Page 20: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

20 de 36

Criptografía de Clave Pública• Independientemente de lo robusto que sea un sistema de cifrado

puede ser roto si un intruso roba la clave. Esto es típico en los sistemas tradicionales, así como que la clave para cifrar y descifrar es la misma (sistemas de clave simétrica). Puesto que la clave debe distribuirse a todos los usuarios existe un gran peligro potencial de robo

• Un sistema CCP requiere una colección de pares codificación-decoficación {Ek(.), Dk(.)} tales que Dk(.) sea difícil de descubrir conocido Ek(.): la función de codificación hecha pública

• Es útil si se desean tener corresponsales que envíen mensajes confidenciales usando Ek(.) y el receptor es el único que conoce Dk(.)

• De esta manera cada usuario publica su clave y algoritmo Ek(.). Si alguien quiere enviar información segura a dicho usuario Pentonces le envía un mensaje cifrado Ek(P). Solo el destinatario puede decodificar usando Dk(Ek(P)) = P

Page 21: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

21 de 36

Criptografía de Clave Pública• RSA (Rivest, Shamir, Adleman, 1978)

Este algoritmo se basa en principios de la teoría de números:

1. Seleccionar dos números primos grandes, p y q, (típicamente mayores que 10100

2. Calcular n = p x q y z = (p-1) x (q-1)3. Seleccionar un número d primo con respecto a z4. Encontrar un e tal que e x d = 1 mod z

Una vez hecho esto, el algoritmo de cifrado y descifrado funciona así:

a. Considerar el texto plano como una cadena de bits. Dividirlo en bloques de valor P tales que 0 ≤ P < n. Para ello agrupar en trozos de k bits, donde 2k < n

b. Cifrar el mensaje haciendo C = Pe mod nc. Enviar C por el canald. Descifrar el mensaje haciendo P = Cd mod n

La clave pública es (e, n) y la privada es (d,n). Para romper el código hay que factorizar n, encontrar p y q, y a partir de ellos z. Conociendo z y e se busca d usando el algoritmo de Euclides. Esto es imposible incluso con los ordenadores de la próxima década (factorizar un número de 500 dígitos necesita 1025 años a 1µs por instrucción). Cuando se consiga, podríamos elegir un p y q mayores y el sistema volvería a ser seguro

Page 22: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

22 de 36

Compresión de Datos• El objetivo de la compresión de datos es reducir el tamaño de los

datos almacenados o transmitidos sin degradar apreciablemente lacalidad de la información: un fichero de texto comprimido debe poder descomprimirse total y correctamente, mientras que una señal de vídeo debe verse bien tras descomprimirla

• La compresión de datos es muy importante en aplicaciones con transmisiones de voz, vídeo o FAX:

La señal de vídeo NTSC sin comprimir requiere 100 Mbps(conexión cara). Comprimida requiere varios órdenes de magnitud menos en la velocidad de transmisión.

350 Kbps1.4 MbpsHi-Fi

16 Kbps64 MbpsTeléfono

100 Kbps3 MbpsPágina FAX

6-60 Mbps1000 MbpsHDTV

1.5-15 Mbps100 MbpsNTSC

COMPRIMIDONO COMPRIMIDOFUENTE

Page 23: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

23 de 36

Compresión de Datos• Vamos a estudiar varios métodos de compresión de datos:

Run Length Encoding (RLE)

Differential Interline Encoding (DIE)

Predictive Encoding

Huffman Encoding

Lempel-Ziv Encoding

Page 24: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

24 de 36

Run Length Encoding (RLE)• Es el método para comprimir señales FAX más simple y más

eficiente

• Para transmitir una página FAX la máquina escruta la página línea por línea midiendo la intensidad de la luz reflejada por puntos regularmente espaciados a lo largo de cada línea. Esto resulta en una secuencia de bits que indican sin los puntos en las líneas son negros o blancos: 1 ó 0 respectivamente

• Si el tamaño de la página es de 8,5x11 pulgadas, la máquina da un barrido de 200 líneas por pulgada, y mide 200 puntos por pulgada a lo largo de cada página, ésta se representa por 200x200x8,5x11 = 3,73x106 bits

• Con un módem de 9600 bps se tardarían unos 6,5 minutos en enviarlo. Si podemos reducir 20 veces el número de bits se tardarían unos 20 segundos

Page 25: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

25 de 36

Run Length Encoding (RLE)• Para alcanzar este factor de compresión la máquina transmite el

número de 0’s sucesivos entre dos 1s en vez de una larga secuencia de 0’s

• Por ejemplo, la cadena 10a10b10c10d1, con 0i representando iceros consecutivos, se codifica como ABCD, donde I es la representación binaria de i. Así, por ejemplo, 600 ceros se podrían reemplazar por 10 bits

• Consideraciones:Presupone que la cadena de bits empieza y acaba por 1, y esto puede que no sea cierto. Soluciones:

- se ignora el problema (sólo supone un pequeño punto)- se indica de alguna manera cómo empieza y acaba la cadena

Decidir el número de bits necesarios para codificar el número de 0’s entre 1’s:

- hay que saber cual es el número máximo de 0’s entre 1’s- si no se sabe, se usa un número variable y se ponen separadores

En algunas situaciones puede que interese más contar el número de 1’s entre 0’s. Por ejemplo, al aplicarlo sobe imágenes oscuras

Page 26: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

26 de 36

Run Length Encoding (RLE)

• El factor de compresión RLE es sobre:

donde:

- X es una Variable Aleatoria Discreta representando el número típico de 0’s sucesivos entre dos 1’s

- E{.} es su valor esperado (media). El factor de compresión en la práctica es de entre 20 y 30 veces el mensaje original

E{X}

E{log2X}

Page 27: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

27 de 36

Differential InterlineEncoding (DIE)

• El método RLE puede combinarse con DIE si observamos que líneas sucesivas en un FAX son frecuentemente similares. En vez de transmitir líneas sucesivas de la página L1, L2, ... la máquina transmite L1, (L2-L1), (L3-L2), ... Estas diferencias son bit a bitsin acarreo

• DIE aumenta la longitud de las secuencias de ceros sucesivas, mejorando así la posterior compresión llevada a cabo por RLE

• La codificación PCM está relacionada, y DIE puede usarse sobre los bits que representan una señal de voz codificad en PCM

• Para transmitir esta señal el transmisor usa un filtro para limitar su espectro a cierta fmax y muestrea a fs > 2fmax. Finalmente, cuantiza las muestras y las codifica como números binarios. A esta secuencia de pasos se la conoce como PCM (modulación por pulsos codificados

Page 28: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

28 de 36

Differential InterlineEncoding (DIE)

• El equipo telefónico hace una transformación no lineal de las muestras antes de cuantizarlas para expandir los pequeños valores y limitar los grandes e infrecuentes: COMPANDING, mejorando la calidad del sonido al usar más bits para los valores pequeños más frecuentes

• El PCM Diferencial (DPCM) codifica las diferencias entre muestras sucesivas; normalmente son pequeñas estas diferencias y se necesitan pocos bits para codificarlas

• Una mejora a DPCM modifica la codificación de las diferencias adaptativamente. Cuando la señal cambia más rápidamente las diferencias se dividen por un factor antes de codificarlas y también se envía este factor para que se las pueda decodificar

• Este método (ADPCM) necesita aún menos bits para codificar la señal de voz. Se obtiene una excelente calidad transmitiendo a 16 Kbps (valor muy usado en telefonía digital)

Page 29: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

29 de 36

Predictive Encoding• Se trata de una clase de métodos que usan un predictor para

predecir el próximo valor que se va a transmitir y transmiten la diferencia entre el valor predicho y el real (se la supone menor)

• Supongamos que queremos transmitir la secuencia X(1), X(2), X(3), ... En vez de ella construiremos un algoritmo que intente predecir X(n+1) conocidos {X(1), X(2), ..., X(n)}. Sea Y(n+1) el valor predicho. Transmitiremos: X(1), X(2)-Y(2), X(3)-Y(3), ...

• El receptor debe conocer también el predictor para decodificar

• Si la predicción es precisa transmitiremos números pequeños representables por pocos bits. El predictor usado depende de la señal a transmitir. Por ejemplo, el color de una celda de un dibujopuede predecirse razonablemente de sus valores vecinos en líneas anteriores o alrededor

• El predictor suele basarse en conocimientos específicos sobre la información que se suele transmitir y en técnicas de Inteligencia Artificial

Page 30: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

30 de 36

Huffman Encoding• Es un método general diseñado para minimizar el número medio

de bits necesarios para transmitir un símbolo cuando se deben transmitir varias copias independientes de dicho símbolo. Este método determina cómo los varios valores del símbolo deben representarse en forma de cadenas binarias

• El código Huffman puede combinarse con los anteriores descritos. Supongamos que tenemos que enviar el símbolo X que puede tomar valores {x1, x2, ..., xn} con probabilidad {p1, p2, ..., pn}. La idea es codificar en palabras cortas para valores frecuentes de X

- Por ejemplo, tenemos que X puede valer {x1, x2, x3, x4} con probabilidades {p1=0.5, p2=0.3, p3=0.15, p4=0.05}:

- Si se usan 00, 01, 10 y 11 necesitaremos siempre 2 bits para representar el valor de X (número medio de bits por símbolo, 2.0)

- Si se usan 0, 10, 110 y 111 necesitaremos por termino medio (0.5x1)+(0.3x2)+(0.15x3)+(0.05x3) = 1.7 bits (menos de 2.0)

Page 31: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

31 de 36

Huffman Encoding• El código del ejemplo es de longitud variable, pero no requiere

usar ningún tipo de separador entre los valores:

x3x1x4x3x3x2 = 110011111011010

• La razón es que siempre se puede reconocer el final de una palabra porque ninguna palabra es el principio de otra dada. Un código con esta propiedad se denomina código prefijo

• El código Huffman es el código prefijo que requiere el mínimo número medio de bits por símbolo

• Para derivar el código Huffman se hace lo siguiente:

1. Escoger los dos símbolos xi y xj con probabilidad más pequeña

2. Se las reemplaza por yi0 e yi1

3. Se borra xi y xj de la lista y se añade yi con probabilidad pi+pj

4. Volver al paso 1 hasta terminar con todos los símbolos

Page 32: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

32 de 36

Huffman Encoding

• El código queda definido por el camino desde C a cada nodo

• Una convención para escribir el código Huffman final es:

x1 x2 x3 x4

Cy2 (0.5)

y1 (0.2)

0.05{111}

0.15{110}

0.3{10}

0.5{0}

x1 y2

x2 y1

x3 x4

{0} {1}

{y20} {y21}

{y10} {y11}

0 1

Izqda. Dcha.

Page 33: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

33 de 36

Lempel-Ziv Encoding• Es muy popular. Lo podemos encontrar usado en UNIX por la

orden compress y la utilidad de MSDOS arc. El factor de compresión medio es 2 en un fichero largo: reducción del 50% (útil tanto para almacenar como para transmitir información)

• La idea básica es no repetir trozos de texto, sino indicar la localización de inicio de la primera instancia de ese texto y la longitud. Por ejemplo, si este tema comenzara con “Es muy popular” se sustituiría el principio de esta página con {1,14}

• Para sustituir un texto dado se busca en todo el texto precedente la cadena más larga que coincide con la que vamos a sustituir. Por ejemplo, si “Es muy popular. Lo podemos” está antes en el texto (en la posición 200) se sustituye por {200,26}

• El ancla y el indicador ocupan menos que el texto en sí mismo

• La eficiencia aumenta con la longitud del texto, pues existen cadenas más largas repetidas

Page 34: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

34 de 36

Lempel-Ziv Encoding• Ejemplo:

Comprimir usando LZ el texto “the other one is the oldest”

Resultado the o{1,3}r{4,2}n{3,2}is{4,1} {1,5}ld{3,1}{16,1}{1,1}

• Las implementaciones reales difieren un poco para hacerlo fácil de codificar al coste de que comprima un poco menos

• En lugar de buscar en todo el texto la secuencia más larga que encaja se mantiene un diccionario con las cadenas ya encontradas

• Se busca en el diccionario la cadena más larga que encaja y se añaden a él las cadenas más largas cuando se encuentran

27

1 2 3 4 5 6 7 8 9 10 11 12 13 14

15 16 17 18 19 20 21 22 23 24 25 26

t h e o t h e r o n e

ti s t h e o l d e s

Page 35: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

35 de 36

El Nivel de Presentación en la Práctica

• En TCP/IP se utiliza XDR (eXternal Data Representation), cuyo funcionamiento es en muchos aspectos similar a ASN.1

• Algunas interfaces de programación tales como BSD socketincorporan funciones básicas para transmitir tipos estándares en C por la red: htons() antes del envío y ntohs() después

• Los algoritmos de compresión en la actualidad son muy variados e incluso dependientes del tipo de contenido que se desea comprimir: gráficos, texto, música, ... (JPEG, JPEG2, MP3, etc.)

JPEG

Page 36: 1 de 36 Tema 8. Nivel de Tema 8. Nivel de Presentación ...eat/courses/cdd-contents/tema8.pdf · Tema 8. Nivel de Presentación Índice 4 de 36 Conversión Sintáctica – ASN.1 •

Problemática

Conversión Sintáctica

Encriptación

Compresión

Nivel de Presentación en la práctica

10/05/2005

Tema 8. Nivel de

Presentación

Índice

36 de 36

El Nivel de Presentación en la Práctica

• Los sistemas de gestión remota utilizan el estándar SNMP. La definición y traslado de objetos en SNMP se hace en ASN.1 para permitir una comunicación semánticamente correcta entre la estación central y los elementos de la red gestionados

• Es difícil encontrar un software de presentación en las redes actuales, excepto en el caso de TOP y MAP, en donde sí existe

• En las redes TCP/IP y otras las funcionalidades de este nivel las podemos encontrar en algunos estándares y el resto no disponible deben ser implementados en las aplicaciones directamente