Epistemowikia
Revista «Hiperenciclopédica» de Divulgación del Saber
Segunda Época, Año IX
Vol. 8, Núm. 3: de julio a agosto de 2014
Epistemowikia es parte de
Logotipo de CALA Virtual
CALAALA | Communitas | Evolvere
Editio | Epistemowikia | Exercitatio | Fictor | Flor
Epistemowikia no se hace responsable ni se identifica necesariamente con el contenido ni las opiniones expresadas por sus colaboradores.
La Universidad de Extremadura no se hace en ningún caso responsable de los contenidos publicados en Epistemowikia.
Ni la Asociación Conocimiento Comunal (CONOMUN) ni el Grupo de Investigación de Ingeniería Telemática Aplicada y Comunicaciones Avanzadas (GÍTACA) se hacen en ningún caso responsable de los contenidos publicados por terceros.

Inicio | La revista | Índex | Hemeroteca | Búsquedas | Quiénes somos | Contacto | Publica

Codificación

De Epistemowikia



Asignatura: Lógica y computabilidad (Universidad de Extremadura)
Nombre del grupo: Tcodificación0809
Curso: 08/09
Integrantes del grupo:
José Manuel Lanza Gutiérrez
María José García Sopo
Juan Carlos Ruiz Cuetos


Tabla de contenidos

Introducción

En este trabajo vamos a tratar el proceco mediante el cual una determinada información se convierte a otro sistema de representación, por ejemplo para poder comunicar una misma información por medios diferentes.

Un sistema de representacion esta definido por una seria de reglas, y aplicando esas reglas a la información incial se realiza el proceso de códificación.

Al proceso contrario se le denomina decodificación.

A continuación, realizaremos un breve recorrido por la historia de la códificación, desde utiización de gereogríficos hasta la Radiotelegrafía y Radiotelefonía. Seguidamente, trataremos aspectos más específicos como la Codificación de señales (procesos de digitalización), Codificación de caracteres, Codificación del Genoma Humano y Codificación cuántica. Finalmente se explicarán los conceptos básicos sobre la compresión de datos y los métodos más utilizados de Encriptación.

Historia de la codificación

En este apartado veremos como el hombre, a lo largo de la historia, ha realizado un gran esfuerzo para poder expresarse con el resto de sus congéneres de una manera sencilla e intuitiva, codificando la información utilizando diversas técnicas. Estas técnicas has ido evolucionando a lo largo de la historia, no pareciendose las complejas técnicas que usamos hoy en día a las primeras que se utilizaron, para ello ha sido necesario una gran evolución tal y como se observará en este apartado.

La codificación está en continua evolución, por lo que no sabemos lo que podría llegar a ser algún día. Quedando obsoleto todo lo que conocemos actualmente, tal y como ocurrió en su día con las técnicas anteriores. A continuación veremos una evolución de estas técnicas, desde la aparición de la escritura cuneiforme hasta la llegada de la telegrafía y radiotelefonía.

Escritura cuneiforme

1Es la primera forma de expresión de conocimiento escrito de la historia, según los estudios realizados situan este avance en el año 3000 a.c. (aproximadamente) en la antigua Mesopotamia, en la región de Súmer (lo que hoy conocemos como Oriente Medio). El nombre de este tipo de escritura viene dada por los elementos que utiliza, estos elementos no son como los caracteres que hoy en día conocemos, sino que son dibujos muy simples que representan elementos de la realidad, de modo que con un única figura se podría representar un determinado elemento de la realidad.

A este tipo de dibujos utilizados se les denomina pictogramas, caracterizados por facilitar una rapida comprensión de la información expuesta, ya que los símbolos utilizados están muy relacionados con la realidad. Pero presenta la desventaja de tener un alfabeto(cada uno de los pictogramas) muy extenso si se desea representar todos los elementos posibles del lenguaje humano. En la siguiente figura podemos observar algunos de estos símbolos escritos en una tabla de barro cocido.

Imagen:cuneiforme.jpg Imagen:cuneiforme2.jpg

Este tipo de codificación fue avanzando y simplificando su simbología, además surge el concepto de sílabas y caracteres que podrían ser utilizadas en diversas palabras, de modo que su utilización es mucho más sencilla ahora. Este tipo de escritura se propagó muy rápidamente en la época, por que multitud de civilizaciones lo han utilizado para estrablecer sus lenguas, siendo utilizado durante aproximadamente unos 3000 años. Hoy en día podríamos encontrar restos de esta escritura en el idioma japones, ya que deriva en cierta medida de él.

Podemos encontrar ejemplos de evolución de la escritura cuneiforme en estas direcciones:2 y 3.

A modo de curiosidad sería interesante citar un dato que aparece en la wikipedia, es referente a la utilización de esta escritura en la actualidad, ya que se permite su representación dentro del estandar de codificación de caracteres Unicode (se verá en los siguientes apartados):

cita 4

El sistema de escritura cuneiforme ha sido aceptado para su inclusión en una futura versión de Unicode:

    12000–12373 (883 caracteres) "Cuneiforme sumerio-acadia"
    12400–12473 (103 caracteres) "Números cuneiformes"

Jeroglíficos

5El origen de este tipo de escritura surge en fechas similares al de la cuneiforme, en torno al 3300 ac, utilizandose durante unos 3600 años. Fue inventado y utilizado por los antiguos egipcios.

En cuanto al método de codificación utilizaban símbolos basados en objetos de la vida cotidiana (animales, plantas...), pero su significado no tiene por que ser el del elemento al que representan. Podemos diferenciar los siguientes tipos:

  • Ideogramas: Hacen referencias a palabras. Cuando el significado del símbolo se corresponde con lo elemento que referencia se le denomina pictograma. Describen objetos o acciones.
  • Fonogramas: Son signos que originan sílabas, que a su vez conformarán palabras. Referencia un sonido que no guarda ninguna relación con elementos al que representa.

Los jeroglíficos como tal no se utilizaban en el día a día debido a su extrema complejidad, se tarda mucho tiempo en representar cada uno de los símbolos, por lo que van surgiendo diversas modificaciones del primero que permite que use con una mayor comodidad, por lo que el uso de jeroglíficos queda relegado a actos públicos.

Esta nueva escritura que surge es la hierática 6 7, es una simplificación de los jeroglíficos y que permite que se pueda escribir con una relativa mayor facilidad, por lo que se solían utilizar sobre papiros o tablillas de madera. Al igual que ocurrió con los jeroglíficos, surgió una nueva simplificación sobre la escritura hierática, la escritura demótica que aun pretendía facilitar más la escritura.

En la siguiente imagen puede observarse un ejemplo de jeroglífico, escrito sobre la pared de un edificio.

Imagen:jeroglifico.jpg

De todas formas, independientemente de las diversas evoluciones, la escritura era muy compleja por lo que se reservaba a una minoría de la población, como podrían ser funcionarios, sacerdores, faraones...

Sistema de Escritura Maya

8Las primeras apariciones de este tipo de escritura datan del siglo III a.C, por lo que es relativamente nuevo en comparación con los vistos anteriormente. Usada por la civilzación maya precolombina, en Mesoamérica 9(región de América que comprende aproximadamente lo que hoy en día conocemos como: México, Guatemala, Belice, El Salvador, Nicaragua, Honduras y Costa Rica. Su utilización ha sido hasta el siglo XVI, poco después de la llegada de los conquistadores españoles. En el siguiente mapa puede observarse la zona de influencia de este tipo de escritura:

Imagen:Mapa_maya.JPG

Para representar la información utilizaban una combinación de logogramas y glifos silábicos, de modo que la escritura maya es un sistema logosilábico, es decir, hay símbolos que representan palabras completas y otros que representan sílabas.

  • Logogramas 10: Un único símbolo representa una palabra, no da ningún tipo de información sobre su pronunciación.
  • Glifos silábicos 11:Un único símbolo representa a un caracter, varios caracteres o parte de un caracter. De este modo un caracter puede estar formado por varios glifos silábicos.

La escritura maya es mucho más compleja que los tipos anteriores, ya que una misma palabra puede escribirse de diversas formas, lo que aumenta la dificultad de comprensión del lenguaje. Por ejemplo, la palabra jaguar (balan) puede escribirse de hasta cinco formas diferentes. En la siguiente imagen puede observarse una serie de escrituras sobre un muro de piedra.

Imagen:maya.jpg

Código Morse

12Este tipo de codificación se basa en la transcripción de un determinada información utilizando un alfabeto alfanumérico compuesto por puntos y rayas. Surgió en el siglo XIX, su uso fue muy extendido y supuso un gran avance en las técnicas de comunicación, incluso hoy en día se posibilita su uso para comunicaciones de emergencia en las que el resto de técnicas actuales no son posibles.

Fue inventado por Alfred Vail en colaboración son Samuel Morse durante la invención del telégrado eléctrico. Inicialmente se implantó para su utilización sobre líneas de cable, más tarde llegó hasta las emisoras de radio para su utilización en aire y mar, aunque su uso se extendió a muchos más ambitos como se verá en los siguientes apartados. Su uso dejó de popularizarse con la llegada de los transmisores de radio por voz.

En sus primeros inicios se utilizaba un aparato inventado por el propio Samuel Morse en 1844. Este aparato tiene un interruptor de la corriente electrica para la emisión (generación de puntos y rayas) y un electroiman que actua con la llegada de las señales.

En las siguientes imágenes puede observarse la tabla de codificación morse (imagen de la izquierda) y el telégrafo creado por Samuel Morse (derecha).

Imagen:morse2A.jpg Imagen:Morse_Telegraph_1837.jpg

En la siguiente página aparece un sencillo traductor de código morse: traductor de morse 13

Evolución de la codificación de señales

A lo largo de la historia, los navegantes han utilizado señales para poder comunicar mensajes urgentes a otros navegantes. A partir del siglo XVII es cuando surge un mayor número de posibles formas de realizar esas comunicaciones, por lo que finalmente se propuso la utilización de una serie códigos internacionales, sobre todo para posibilitar la comunicación entre barcos de distintos paises (diferentes lenguajes).

A continuación veremos las diversas técnicas utilizadas:

Banderas

14Se utilizan en el tráfico marítimo para transmitir mensajes entre barcos o entre un barco y tierra. Existen una serie de banderas normalizadas (tienen un significado universal) que tienen asignada cada una de ellas una letra del alfabeto internacional, o bien una numeración del 0 al 9. Por lo que en total existen 36 banderas (26 asignadas a letras A-Z y 10 a números 0-9.

La comunicación puede realizarse colocando las banderas necesarias en el mastil delantero del barco, ordenadas por orden descendente. Este tipo de comunicaciones ha pasado al deshuso debido a las comunicaciones de radio, pero aun se utiliza en posibles situaciones de emergencia en los que es imposible la utilización de la radio.

En la siguiente imagen aparacen todas las banderas referentes a las letras del alfabeto.

Imagen:banderasNauticasAlfabeto.jpg

El significado de cada una de estas banderas se encuentra en la siguiente página 15, también aparece el código asociado a cada una de ellas en Morse.

Señales de Luz

Este tipo de señales luminosas son lanzadas desde un faro. Un faro no es mas que una torre situada en la costa, ubicada en lugares donde transcurren las rutas de navegación de los buques, en su parte superior dispone de una potente lente que se utiliza para guiar a los barcos.

Las lentes situadas en los faros desprenden un potente haz de luz que realiza giros de 360º, de esta manera se advierte a los marinos de la distancia a la que se encuentran de él, además también dependiendo de los intervalos luminosos y su color se puede saber frente a que punto de la costa se encuentra.

Hoy en día el uso de los GPS ha hecho que se le quite importancia a este sistema de navegación, pero aun así se continua utilizando.

En la siguiente web se puede encontrar diversa información sobre los faros españoles y sobre el funcionamiento de los faros en general: faros_españoles 16

Imagen:faro.jpg

Destellos

Son señales luminosas que se realizan utilizando grandes proyectores con sistemas que permiten la utilización de ráfagas luminosas, habitualmente se utilizan rejillas situadas delante del foco. Para efectuar la comunicación se utiliza el alfabeto Morse a través de las señales luminosas.

Señales Acusticas

Son señales transmitidas a través de la vibración del aire. Debido a la lentitud de los aparatos necesarios para su transmisión resulta un medio muy lento. Un ejemplo de herramienta podría ser: silbatos, sirenas, bocinas... teniendo un alcance similar a la de los destellos, en condiciones normales. Las señales transmitidas utilizan el alfabeto Morse para transmitir la información.

Además del alfabeto Morse tradicional existen otro tipo de señales estandarizadas en el código internacional que se han ido incorporando, y que todo marino debe comprender a la perfección. En la siguiente página se puede encontrar más información al respecto: Reglamentento_Internacional_señales_acústicas 17

Señales a Brazos

Se utiliza para dar comunicados entre buques cercanos, para de esta forma poder respetar la frecuencia de radio utilizada, para no dar un uso innecesaria de ella ocupando dicho canal sin ser necesario, o bien por que es necesario establer una comunicación y la radio no funciona correctamente.

Para realiza la comunicación se utilizan banderas, de modo que dependiendo de la posición que tome la persona que realiza las señales, tendrá un significado u otro. Los significados asociados son iguales a los del uso de banderas (código internacional),con letras de la A a la Z, números del 0 al 9, y señales de pausa y error.

En la siguiente web puede observarse cada una de las señales comentadas, asi como un ejemplo de uso: Señales_a_brazos 18

Radiotelegrafía y Radiotelefonía

19Con los métodos expuestos anteriormente no era posible la comunicación simultanea en ambas direcciones, de modo que eran comunicaciones punto a punto.

Gracias a la aparición de la radiotelegrafía se posibilita este tipo de comunicaciones. La radiotelegrafía se basa en la teoría expuesta por Maxwell sobre como las ondas se propagaban por el espacio. Los inicios de la radiotelegrafía datan de finales del siglo XIX, pero no es hasta principios del siglo XX cuando de forma oficial se produce la primer conferencia internacional radiotelegráfica de manera oficial. De esta forma surge la telegrafía sin hilos, siendo uno de los avances en telecomunicaciones mas importante de todos los tiempos.

Mas adelante llegaría la radiotelefonía que no es más que la posibilidad de modular la voz a través de las ondas de radio, utilizando las bases teóricas expuestas en la radiotelegrafía.

La codificación en la actualidad

Codificación de señales (procesos de digitalización)

Es un procedimiento utilizado muy frecuentemente en la actualidad, en el que ante una serie de señales de tipo analógico se transcriben en señales de tipo digital. De modo que de esta manera se facilita su procesamiento posterior, y también se mejoran las características físicas de la misma.

Es decir, una señal analógica es muy sensible frente a alteraciones de posibles interferencias, esto se debe a que la señal original (analógica) es muy difícil de recuperar ya que los valores que pueden tener esta señal pueden ser infinitos. Si la comparamos con una señal digital (ondas alternas pulsantes) que tiene un número determinado de posibles valores (en el caso de una señal binaria tendría dos posibles valores). Este hecho permite que la recuperación de valores en una señal digital sea más sencilla, y por tanto se pueda utilizar para comunicaciones en largas distancias.

En este procedimiento podemos destacar tres fases bien diferenciadas: Muestreo, cuantificación y codificación (la veremos en detalle).

  • Muestreo: Consiste en la toma de muestras de la amplitud de la señal de entrada (analógica). Un parámetro muy importante en este proceso en el número de muestras por segundo (frecuencia de muestreo).
  • Cuantificación: Consiste en evaluar el valor de cada una de las muestras, de modo que se asigna uno de los posibles valores de la señal digital resultante a cada de las muestras. El proceso de cuantificación provoca el ruido de cuantificación, provocado por el recorte del número de posibles valores de la señal analógica a la señal digital.
  • Codificación: Consiste en traducir los valores obtenidos en el proceso de cuantificación (ya son valores digitales) al sistema binario, mediante la utilización de una serie de códigos preestablecidos. De este modo al finalizar este procedimiento, se obtiene la deseada señal digital equivalente a la inicial analógica. (lo estudiaremos en los siguientes apartados más detenidamente).

Imagen:ConversorAD.jpg

Codificación digital unipolar

20 Es el tipo de codificación más sencillo y está casi en desuso. Se basa en codificar una única polaridad, tal y como su nombre indica. De modo que normalmente un valor binario igual a uno supone un valor en la señal de salida igual a uno, y un valor igual a cero suponer un valor cero en la señal de salida (nivel de reposo).

Imagen:CodificacionUnipolar.jpg

Codificación digital polar

21 Este es el tipo de codificación más utilizado en la actualidad. Se basa en codificar dos polaridades (una positiva y otra negativa) para la representación de la información binaria. Podemos encontrar la siguiente clasificación de codificación polar:

Imagen:CodPolar.jpg
Codificación digital polar NRZ

Se caracteriza por que la señal siempre tiene un valor positivo o negativo. Podemos diferenciar claramente dos tipos:

  • NRZ-L: El valor de la señal depende del valor del bit deseado. Normalmente si el bit tiene un valor uno la señal tendrá nivel positivo, si tiene un valor cero la señal tendrá nivel negativo.
  • NRZ-I: El valor de la señal no depende directamente del valor del bit actual, de modo que un valor uno de la señal provocará un cambio de nivel en la señal de salida, mientras que un valor cero no provoca ningún cambio. De este modo el valor no solo depende del bit actual sino también del bit anterior.

Si comparamos ambos tipos podemos llegar a la conclusión de que es mejor el tipo NRZ-L, ya que incorpora una sincronización implícita basada en el cambio de nivel de la salida producida por un valor uno. De modo que tiene una mayor fiabilidad.

Imagen:NRZ.jpg
Codificación digital polar RZ

Se caracteriza por la utilización de tres posibles niveles en la señal de salida (positivo, negativo y cero). Un bit uno se representa con el cambio de nivel positivo a cero, y el cero con el cambio de nivel negativo a positivo. Cada una de las transacciones se producen en la mitad del intervalo, tal y como puede observarse en la siguiente figura. Este tipo de codificación permite además incorporar un procedimiento de sincronización, utilizando las transiciones generadas en la mitad de los intervalos.

Imagen:NR.jpg
Codificación digital polar Bifásica

Es la mejor solución en relación al problema de la sincronización. Se basa en realizar un cambio de polaridad en medio del intervalo, no un retorno a cero, sino que continua en el polo opuesto. Estas transiciones a mitad de intervalo permiten la sincronización, tal y como ocurría en el RZ. Tenemos dos tipos: Mánchester y Mánchester diferencial.

  • Manchester: Usa la transición a mitad de intervalo para representar información y para sincronizar. Un uno binario se representa con una transición de negativo a positivo, un cero binario con una transición de positivo a negativo. Este tipo de codificación obtiene el mismo nivel de sincronización que RZ pero con dos valores de amplitud.
  • Manchester diferencial: Usa la transición a mitad de intervalo para la sincronización, para representar información la ausencia o existencia de transición a inicio de un intervalo. Una transición inicial significa un cero binario, mientras que la ausencia de la misma se corresponde con un uno binario.
Imagen:Bifasica.jpg

Codificación digital bipolar

Se basa en la utilización de tres posibles niveles (positivo, negativo y cero). El nivel cero se utiliza para representar el valor cero binario, los niveles negativo y positivo se utilizan para representar el valor uno binario de forma alternada, es decir, para representar dos unos consecutivos o no, se utilizará un nivel positivo y a continuación (cuando tengamos que representar el siguiente uno binario) uno negativo.

Bipolar con inversión de marca alternada (AMI)

Es la codificación bipolar más sencilla. El cero binario se representa con el nivel cero, y los unos binarios se representan con la alternancia de los niveles positivos y negativos. Tiene problemas de sincronización ante largas secuencias de ceros consecutivos.

Imagen:AMI.jpg
Bipolar con sustitución de ocho ceros (B8ZS)

Se basa en el AMI pero solucionando los problemas de sincronización para largas secuencias de ceros, de forma que funciona de forma idéntica a AMI bipolar, la diferencia se constata ante largas secuencias de ceros (8 o más consecutivos) en las que se fuerza un cambio artificial en la señal. Cada vez que hay una sucesión de ocho ceros se introducen cambios basándonos en la polaridad del bit uno anterior. Se acompañan dos ejemplos a y b.

Imagen:B8ZS.jpg
Bipolar de alta densidad (HDB3

Se basa en AMI, pero introduce cambios, de modo que cuando se encuentren cuatro ceros consecutivos se introducirán cambios en el patrón (en B8ZS hay que esperar ocho ceros consecutivos). Hay que tener en cuenta que si la polaridad del bit anterior era positiva, la violación tomará un valor positivo. Si por el contrario la polaridad era negativa, entonces tomará su correspondiente valor negativo.

Imagen:HDB3.jpg

Codificación de caracteres

Con la codificación de caracteres nos referimos a la metodología a seguir para realizar la conversión de un carácter de un lenguaje natural, de un alfabeto, en un elemento de otro sistema de representación, como por ejemplo podría ser una secuencia de unos y ceros, una secuencia de impulsos de índole eléctrica… Todo ello con la finalidad de facilitar el almacenamiento de caracteres (texto) o para por ejemplo facilitar el envió de texto a través de las diversas redes de comunicaciones.

En una codificación de caracteres de n bits lo que se realiza es separar cada una de las posibles combinaciones de esos n bits, y asignar a cada una de esas combinaciones uno de los posibles caracteres, de modo que por cada combinación únicamente pueda haber un único carácter asociado. De modo que puede ser considerada como una tabla de traducción de caracteres a bit y viceversa.

Tipos de codificación

22 Hoy en día existen una gran cantidad de normas de codificación o tipos de codificación, de entre todos los existentes se detallarán los más utilizados, como pueden ser el ASCII, ASCII extendido y el Unicode.

ASCII

Sus siglas se corresponden con American Standard Code for Information Interchange, es decir Código Estadounidense Estándar para el Intercambio de Información. Está basado en el alfabeto latino como el que se utiliza en inglés. Este código utiliza siete bits para representar la información, en algunas ocasiones se puede añadir un bit adicional para detectar errores en las transmisiones, esto se debe a que en el momento de introducir el sistema de codificación ASCII muchos ordenadores únicamente podían trabajar con octetos de bits (bytes), por lo que para poder compatibilizar este sistema se añadió este bit de paridad para detectar errores de transmisión. Los ordenadores que no utilizaban este bit de paridad finalmente le añadían un valor fijo con el fin de compatibilidad con esto otros anteriores.

En resumen, es un código de codificación con una capacidad de 7 bits (en base decimal de 0 a 127 posibles caracteres) y utiliza 8 bits para su representación por los motivos de compatibilidad nombrados anteriormente. Prácticamente todos los sistemas actuales utilizan el sistema de codificación ASCII o alguna extensión de éste.

Imagen:ASCII.jpg

ASCII extendido

Debido a las limitaciones del sistema ascii (por ejemplo para lenguas distintas del inglés, como el español o para contextos matemáticos en los que hacen falta letras griegas) surgen diversas extensiones del código ascii. Estas extensiones usan ocho bits para realizar la codificación, de modo que surgen diversos códigos extendidos que sirven cada uno de ellos para un conjunto de lenguas que tienen caracteres en común. Es decir, con ocho bits no se pueden codificar todos los caracteres de todas las lenguas del mundo, y por lo tanto no consigue resolver el problema de forma unificada.

Una codificación ASCII extendida está compuesta por:

  • Caracteres de los códigos 32 a 126 de la codificación ASCII. Coincide con los caracteres imprimibles de ASCII.
  • Caracteres de los códigos 8 a 13 de la codificación ASCII. Son los caracteres llamados comúnmente “de espacio”.
  • Inclusión de caracteres adicionales, van desde el código 128 al 255 del ASCII extendido. De modo que se añaden caracteres :imprimibles adicionales a los incluidos en el ASCII tradicional.

Entre las codificaciones ASCII extendido más comunes podemos encontrar:

  • Página de códigos 437 (usual en versiones en inglés).
  • Página de códigos 850 (usual en versiones de Europa occidental.
  • Latin-1 (típico de Unix).

Imagen:ASCII-EXT.jpg

Unicode

Es un ambicioso estándar de codificación cuyo objetivo es proporcional el medio mediante el cual es posible la representación de textos en cualquier idioma del mundo, resolviendo la problemática existente con el resto de sistemas de codificación que existían hasta ese momento.

De este modo Unicode se ha vuelto el sistema de codificación con el esquema de codificación más potente, siendo por tanto el dominante en el plano internacional de compatibilidad entre idiomas en el software.

El estándar se basa en un conjunto de tecnologías de reciente creación, como son xml, java y los sistemas operativos modernos. Unicode por el momento se ha mostrado como la metodología a seguir para codificar cada uno de los posibles caracteres del mundo en su correspondiente código único. El almacenamiento de toda esta información es otra cosa muy distinta, por lo que ha dado lugar a diversas codificaciones Unicode.

El problema principal surge de la incapacidad de multitud de software escrito de utilizar codificación diferente de ocho bits, por lo que hace imposible superar la barrera de los 256 códigos sin un procesamiento previo. El software de 16 bits permite una codificación de algo más de 60.000 códigos, mientras que el número de caracteres definidos por Unicode son más de 90.000. Este hecho hace que surjan diversos mecanismos de implementación de Unicode.

Unicode define dos métodos de implementación del sistema:

  • Codificación UTF (Formato de Transformación Unicode).
  • Codificación UCS (Juego de Caracteres Universal).

Dentro de ellas podemos encontrar:

  • UTF-7, codificación de 7 bits muy poco usada. Se suele considerar obsoleta.
  • UTF-8, codificación de 8 bits de longitud variable.
  • UCS-2, codificación de 16 bits de longitud fija, permite únicamente la utilización de la Plana Básica Multilenguaje.
  • UTF-16, codificación de 16 bits de longitud variable.
  • UCS-4 y UTF-32, codificaciones de 32 bits de longitud fija, tienen igual funcionamiento.

Los nombres de las codificaciones UTF se acompañan con un número que indica el número de bits utilizados, en las UCS se acompaña el número de bytes.

El UTF-8 es la codificación más utilizada para la escritura basada en caracteres latinos, siendo compatible con ASCII. Además se está haciendo muy popular en internet debido a que contiene todos los caracteres necesarios para la representación HTML del código de una página.

Codificación cuántica

23 Lo más cercano que nos podemos encontrar a un sistema cuántico de codificación, es el sistema creado por las Universidades de Harvard y Boston, que utiliza partículas de luz (fotones), en vez de claves para la representación de la información. En un futuro, se piensa que la codificación cuántica, podría reemplazar el sistema de codificación actual para poder proteger el tráfico de información en internet.

Poco a poco esta tecnología es una tecnología más de un presente cercano, que de un futuro, sus aplicaciones serán muy parecidas a las del laser, donde al principio la gente, no imaginaba todas sus posibles aplicaciones y usos. El hecho de que las partículas subatómicas pueden existir en estados múltiples simultáneamente, hasta el momento en que algo interactúa con ellas, depende de un descubrimiento determinante en la física. Este proyecto consta de una financiación de 3 millones de euros donados por DARPA 24, aunque también existen empresas privadas con sedes en Nueva York (MaqiQTechnologies) que ya están comercializando el producto.

La compañía que creó la red anterior a Internet (ARPANET 25), denominada la BBN, ha estado transmitiendo claves cuánticas desde hace años.

La codificación cuántica tiene sus raíces en el sistema que empleaban los espías en la Segunda Guerra Mundial (series idénticas de números al azar, donde el código solo se podía descifrar si el receptor tenia la misma página de claves que el emisor, donde cada página de claves solo se podía utilizar una vez para conseguir mayor seguridad).

En una red cuántica, un laser separa fotones individuales y estos fotones son enviados a un modulador, este los canaliza a la red a través de un cable de fibra óptica, donde estos fotones indicaran una unidad mínima de información si son largos, y uno más breves indicaran una unidad diferente. En el otro lado, el receptor cuenta con otro dispositivo que acepta los fotones y los reconoce. Si las secuencias coinciden, las claves se almacenan y se emplean para descodificar la información enviada.

Lo interesante de la codificación cuántica, es que si por ejemplo, alguien utiliza un foto detector para intentar leer el código, lo perturba, e inutiliza el código y se alerta a la red de la incidencia de intento de intrusión.

El científico Myers, dijo que es prematuro saber como resultara, pero que con el tiempo, podría tener una gran aplicación comercial, pero que de momento es costoso y la complejidad lo limita a organizaciones de los estados. Como conclusión, se puede decir, que si se desarrolla una supercomputadora cuántica, no existirían limitaciones para descifrar fácilmente las codificaciones que existen hoy en día.

Métodos avanzados de codificación

Compresión de datos

La compresión de datos se basa en la disminución del volumen de información tratable, ya sea para su transmisión o procesamiento posterior. Básicamente, se pretende procesar la información para que, empleando la menor cantidad posible de espacio, el contenido sea equivalente al tomado inicio del procedimiento. Esto permite ahorrar espacio de almacenamiento y disminuir el tiempo de transferencia de datos.

De modo que podemos definir la compresión de datos como una recodificación de una codificación existente con anteriridad, es decir vamos a realizar una nueva recodificación con el objetivo de reducir el volumen de información resultante. Estas técnicas de recodificación suelen ser muy complejas debido a que se centran en fuertes teorías matemáticas.

Podemos definir el espacio que ocupa una información codificada sin técnicas de compresión, como el cociente entre la frecuencia de muestreo y su resolución. Es decir, mientras más bits se utilicen mayor será el tamaño del archivo resultante. El valor de la resolución no puede alterarse a la voluntad, ya que depende del sistema digital con el que se trabaje, con ese motivo se usa la compresión, para transmitir la misma cantidad de información que contendría una alta resolución, pero utilizando un menor número de bits, un menor tamaño total.

El funcionamiento básico de las técnicas de compresión se fundamentan en la búsqueda de series o repeticiones de datos, para eliminar toda la información no deseada (redundancia). En la realidad, el proceso a seguir en las técnicas de compresión no es tan trivial, es bastante complejo.

A la hora de comprender los procesos de compresión son necesarios tener claros una serie de conceptos como son:

  • Redundancia: Todos los datos que son previsibles o repetitivos.
  • Entropía: La diferencia entre la cantidad total de datos (inicial) y la cantidad de información redundante. Es decir, es la información que no se puede eliminar a simple vista.

Podemos clasificar la información utilizada durante el proceso en torno a tres tipos:

  • Redundante: Es la información repetitiva o predecible.
  • Irrelevante: Información que no se puede apreciar y por tanto, su eliminación no afecta a la comprensión total de la información.
  • Básica: Es la información que no se puede eliminar, son los datos que nos importan realmente.

Si nos basamos en los tipos de información descritos anteriormente, una compresión puede realizarse con pérdida de información ( utilizada sobre todo en archivos de imágenes o sonidos, de modo que esa pérdida de información no afecta de forma relevante o bien el error producido es tolerable), o bien sin pérdida (utilizada en información que no puede ser degrada, como por ejemplo archivos de texto).

Compresión con pérdida (lossy compression)

26 Método de compresión que permite generar tasas de reducción bastante elevadas (mejores que los métodos sin pérdida), ya que se centra en la eliminación de información no necesaria para una buena comprensión de la información, de modo que el error obtenido en la mayoría de los casos es aceptable. Suele utilizarse sobre documentos multimedia (audio, video, imagen), de modo que la pérdida de calidad puede ser más o menos aceptable.

Utilizando esta técnica podríamos por ejemplo, en un archivo de audio, realizar una reducción de una decima parte sobre la original, sin que el oído humano note la diferencia. En un archivo de tipo imagen también puede obtenerse un buen grado de compresión, pero la pérdida de calidad se aprecia más rápidamente por el ojo humano. Con respecto a los archivos de video también se logra una buena relación de compresión, en torno a 1/300 sobre el original.

Esta metodología de compresión con pérdida se basa en la percepción humana, de modo que su objetivo es la eliminación de toda aquella información no relevante para la percepción humana.

A continuación se acompaña una lista con los sistemas de compresión con pérdida más usuales:

Compresión de imágenes con pérdida de calidad

  • Compresión por fractal
  • JPEG
  • JPEG 2000
  • Compresión Wavelet
  • JBIG2
  • Cartesian Perceptual Compression (CPC)
  • DjVu
  • ICER
  • HAM

Compresión de videos/animación con pérdida de calidad

  • Flash
  • MNG
  • Motion PEG
  • H.261
  • H.263
  • MPEG, MPEG-1 Part 2, MPEG-2 Part 2 MPEG-4 Part 2, H.264/MPEG-4 AVC
  • Ogg Theora
  • Sorenson video codec
  • VC-1

Compresión de música con pérdida de calidad

  • AAC
  • ADPCM
  • ATRAC
  • Dolby AC-3
  • MP2
  • MP3
  • Musepack
  • Ogg Vorbis
  • WMA

Compresión de voz con pérdida de calidad

  • CELP
  • G.711
  • G.726
  • Harmonic and Individual Lines and Noise (HILN)
  • AMR (usado en celulares GSM como los T-Mobile)
  • Speex

Compresión sin pérdida (lossless compression)

27 Método de compresión en la que se información recuperada del proceso de compresión es idéntica a la inicialmente utilizada en el proceso, de modo que se recupera de forma íntegra, sin margen de error existente.

Este tipo de compresión se utiliza cuando se desea comprimir información que contiene datos que no pueden ser degradados, como por ejemplo documentos de texto, ejecutables…

Los algoritmos de compresión sin pérdida pueden ser utilizados para comprimir cualquier tipo de información, aunque con algunos de estos tipos no se alcance un ratio de compresión muy elevado. En general, los archivos de texto se pueden comprimir muy bien, en cambio los archivos multimedia no alcanzan un elevado ratio.

Los algoritmos pueden ser clasificados por los tipos de datos para los que fueron diseñados. Tenemos tres tipos principales: texto, imagen y sonido. A continuación se acompaña una lista de los algoritmos sin pérdida más utilizados actualmente.

Propósito general

  • RLE
  • LZW
  • Deflate

Compresión de audio sin pérdida de calidad

  • Apple Lossless - ALAC
  • Direct Stream Transfer - DST
  • Free Lossless Audio Codec - FLAC
  • Meridian Lossless Packing - MLP
  • Monkeys Audio - Monkeys Audio APE
  • RealPlayer - RealAudio Lossless
  • Shorten - SHN • TTA - True Audio Lossless
  • WavPack - WavPack lossless
  • WMA Sin pérdida - Windows Media Lossless


Compresión gráfica sin pérdida de calidad

  • ABO - Adaptive Binary Optimization
  • GIF - (sin pérdida de calidad, pero su paleta de colores es limitada)
  • PNG - Portable Network Graphics
  • JPEG-LS - (versión JPEG sin pérdida de calidad)
  • JPEG 2000 - (incluye un método sin pérdida de calidad)
  • JBIG2 - (posee tanto con pérdida y sin pérdida)
  • TIFF
  • WMPhoto - (incluye compresión sin pérdida)

Compresión de video sin pérdida de calidad

  • Huffyuv
  • SheerVideo
  • CorePNG
  • MSU Lossless Video Codec
  • Animation codec
  • Lagarith
  • H.264/MPEG-4 AVC

Métodos de Encriptación (codificación de la codificación)

La Encriptación es un tipo de codificación, que se utiliza para cifrar o codificar un tipo de información, que luego será distribuida entre los participantes autorizados para obtener esa información. Se debe recurrir a la codificación siempre que la seguridad sea de extrema importancia. También hay que tener en cuenta, que el cifrado ralentiza la comunicación de información debido al tiempo que se tarda en cifrar y descifrar la información. La encriptación protege el contenido que se comparte, pero no evita que gente no autorizada a la información, pueden tener acceso a ellas.

Clasificación de Sistemas criptográficos

Se pueden dividir según:

La naturaliza del proceso de Cifrado/Descifrado:
  • Algoritmos Simétricos: Utiliza una única clave para realizar los procesos de cifrado y descifrado, la seguridad de la información reside en el secreto de la clave, se conocen también como Algoritmos de Clave Privada.
Imagen:ImagenEncriptacion1A.JPG
Como problema de este algoritmo, se puede destacar, que si la clave se ve comprometida (robada), se podrá acceder tanto a la información cifrada, como a la generación de nuevos mensajes cifrados falsos.
  • Algoritmos Asimétricos: Utiliza claves distintas para el cifrado y el descifrado, en este caso, cada usuario tendrá dos claves (una clave privada y una clave publica), se conoce también como Algoritmos de clave Pública.


Imagen:ImagenEncriptacion2A.JPG


Se puede destacar, que en esta clase de algoritmos no es posible obtener la clave privada a partir de la clave pública, la seguridad se basa en el secreto de la calve privada de cada usuario.
Como problemas a destacar de este tipo de algoritmos, se puede destacar que son algoritmos lentos (los algoritmos simétricos son 1000 veces más rápidos) y destacar que los algoritmos de clave publica son vulnerables a los ataques basados en texto claro seleccionado, de esta forma no se consigue la clave privada, pero si se puede descifra el mensaje codificado.
Para resolver los problemas, generados por los dos algoritmos, se utilizan Sistemas Híbridos, es decir, cifrado con clave privada para los datos a transmitir, sistema de clave pública para la distribución y el mantenimiento de las claves.
Alimentación de los datos:
Se dividen según el modo en que el algoritmo de cifrado va cogiendo información para la producción del criptograma.
  • Cifrados en flujo: Cifra un bit cada vez, para obtener la clave, se opera con XOR con cadena de bits de texto en claro


Imagen:ImagenEncriptacion3A.JPG


La seguridad recae en el Generador de Claven en cadena.
  • Cifrados por bloques: Se opera con bloques de caracteres de una longitud determinada, esta longitud, suele ser fija en cada algoritmo de cifrado (múltiplo de 8)
Algoritmos de Clave Privada

Se caracterizan por utilizar la misma clave para el cifrado y el descifrado de la información.

  • Algoritmo DES:30 Es un algoritmo desarrollado originalmente por IBM, propuesto por la NBS de EE.UU. y modificado y adoptado por el gobierno de EE.UU. en 1977 cono estándar de cifrado para todo la información sensibles no clasificada. Es el más utilizado de los algoritmos de clave simétrica.
Su nombre original, iba ser Lucifer, trabajaba sobre bloques de 128 bits y se basaba en operaciones lógicas booleanas y podía ser implementado fácilmente tanto en Software como en Hardware. Después de las modificaciones introducidas por el NBS, el algoritmo DES cifra bloques de 64 bits, mediante permutación y sustitución, usando una clave de 64 bits, de los que 8 bits son de paridad (se usan 56 bits).
Imagen:ImagenEncriptacion4.JPG
Des está dividido en 19 etapas diferentes. En la primera etapa se realiza una permutación inicial (IP) del Texto plano de 64 bits (independiente de la clave), en la última etapa, se realiza exactamente la inversa de la primera etapa. La penúltima etapa intercambia los 32 bits de la izquierda y los 32 bits de la derecha y por último, las 16 etapas restantes, son una Red de Feistel de 16 rondas.
Se pueden encontrar variantes del DES, como pueden ser:
  • DES Múltiple: realiza cifrados más fuertes, con un mayor número de combinaciones.
  • CRYPT: Variante de UNIX.
  • DES Generalizado: Acelera el proceso del DES y lo fortalece.
  • RDES: Remplaza el intercambio final de izquierda-derecha, por intercambio dependiente de la clave
  • DES con Cajas S alternas: No han dado buen resultado.
  • Algoritmo AES:31 Resuelve problemas de seguridad de los algoritmos de primera generación (DES, IDEA,…). Se crea como un estándar para el siglo XXI de criptografía simétrica de bloque para EE.UU, es un algoritmo más rápido, inicialmente con tres versiones con claves y bloques de 128, 192 y 256 bits (posteriormente se redujo a 128 bits). Para su realización, se presentaron muchos candidatos, pero finalmente se opto por RIJNDAEL de J. Daemen y V. Rijmen en octubre de 2000.
Rijndael, es un algoritmo simétrico de bloques capaz de operar con 128, 192 y 256 bits de clave y de bloque (aunque finalmente sólo se admiten bloques de 128 bits), es resistente a todos los ataques conocidos, rápido y compacta con un diseño muy simple. No está basado en una red de Feisel, sino que la definición de un Estado, está constituida por varios octetos de bloques, y a medida que se va realizando operaciones de cifrado, se va cambiando el estado. El algoritmo se compone de varias rondas, cada ronda consta de cuatro operaciones en base a transformaciones uniformes e invertibles que se llaman niveles.
Imagen:ImagenEncriptacion5.JPG


  • Cifrado en Bloque Múltiple: Como el algoritmo DES es vulnerable a la fuerza bruta, se utiliza varios cifrados DES y varias claves, apareciendo así los Doble-DES y Triple-DES.

Se han realizado muchos otros algoritmos vasados en Clave privada, se pueden destacar: IDEA, RC2, RC5, Blowfish, SAFER, SKIPJACK …

Algoritmo de Clave Pública

Utilizan dos claves para cada participante en una comunicación, la pública que es conocida por todos, y la privada que es conocida exclusivamente por el propietario para el descifrado de mensajes. Al principio los algoritmos de Clave Pública eran muchos inseguros, lentos y complejos, pero con el paso del tiempo, estas carencias, poco a poco van siendo disminuidas.

  • RSA:32 Es el primer algoritmo de clave pública para cifrado y firmas digitales, es un algoritmo más fácil de entender e implementar, y fue creado y diseñado por Ron Rivest, Adi Shamir y Leonard Adleman en 1978. Hasta hoy en día, no ha sido roto, ni se ha probado su inseguridad.
Las dos principales dificultades en la implementación del RSA son las Potencias Modulares y la Búsqueda de números primos, para aumentar la dificultad de los números primos que se elige han de ser muy grandes.
La descripción de su funcionamiento sería:
  • Encontrar dos grandes números primos, p y q (secretos), y calcular el número n (publico) mediante su producto, n=p*q.
  • Encontrar la clave de descifrado constituida por un gran número entero impar, d (secreto), que es primo con el número F(n) (secreto), obtenido mediante F(n)=(p-1)*(q-1). Siendo F(n) la función de Euler.
  • Calcular el entero e (público) tal que 1 ó e ó F(n), mediante la fórmula: e*d-1(mod F(n)).
  • Hacer pública la clave de cifrado (e,n).
  • Para cifrar un texto, es necesario previamente codificar el texto en un sistema numérico, bien decimal o bien binario, y dividir en bloques Mi de tamaño j o j-1 de forma que, según sea el alfabeto usado el decimal o el binario cumpla en cada caso: 10^(j-1) < n < 10^j o 2^(j-1) < n < 2^j. Cuando se toma como tamaño j, el descifrado del texto puede no ser único, por tanto esta elección se hace solo cuando la unicidad del descifrado no es importante.
  • Cifrar cada bloque Mi transformándolo en un nuevo bloque de números Ci de acuerdo con la expresión: Ci-Mi^e(mod n).
  • Para descifrar el bloque Ci, se usa la clave privada d según la expresión: Mi-Ci^d(mod n).
  • ElGamal: 33Se basa en problemas matemáticos de algoritmos discretos, está basado en la idea de Diffie-Hellman, y es utilizado para generar firmas digitales, cifrar o descifrar. Fue descrito en el año 1985 por Taher Elgamal y se usa en versiones recientes de PGP. Su seguridad radica en la dificultad de calcular logaritmos discretos en un campo finito.

Consta de tres componentes: el generador de claves, el algoritmo de cifrado, y el descifrado. Hasta el momento puede ser considerado un algoritmo efectivo

  • Algoritmo de la Mochila: Es el primer algoritmo desarrollado para el cifrado generalizado con clave pública, fue definido por Ralph Merkle y Martin Hellman en el año 1978. La seguridad del algoritmo reside en el problema de la mochila: Dado una serie de elementos, de pesos diferentes, ¿es posible poner algunos de dichos elementos en una mochila, de forma que se consiga un peso determinado?. Posteriormente, se descubrió que este algoritmo es inseguro.

También existen otros algoritmos de clave pública, de los que podemos destacar:

  • McEliece: 34Creado en 1978, consiste en codificar el testo con un código corrector de errores, incluyendo una gran cantidad de errores. Sólo si se posee la clave se puede descifrar.
  • Sistemas de Curva Elíptica: Creado en 1985, desarrollado por N. Koblizt y V.S. Miller, utiliza la teoría de las Curvas Elipticas para implementar otros algoritmos de cifrados.
  • LUC: Variación del RSA (1993)
  • Graham-Shamir: Algoritmo tipo mochila en el que se disminuye el tamaño del vector, a costa de aumentar el tamaño de cada elemento.
  • Pohling-Hellman: 35Creado en 1978, algoritmo exponencial, similar al RSA, pero no es de clave pública, pues las dos claves deben mantenerse secretas.
  • Firma Digital: Destacan DSA y ESIGN (firma digital de la NTT Japonesa).

Herramienta PGP

36 Es una herramienta de protección de información, que utiliza las técnicas más modernas de cifrado. Sus características más representativas son:

  • Es gratis, disponible para diversas plataformas, y su código es publico
  • Usa los mejores algoritmos criptográficos (IDEA, RSA, MD5)
  • Se puede utilizar en todo tipo de aplicaciones.
  • Es especialmente útil para e-mail

La primera versión fue desarrollada por Phil Zimmermann en 1991, teniendo mucho éxito, y recibiendo numerosas contribuciones, sugerencias y mejoras.

Sus principales funciones son: Cifrado de un fichero, Firma sobre un fichero, Firma + cifrado de un fichero, Descifrado, Comprobación de firma y Gestión de claves.

  • Autenticación ( Creación Firma digital): Coge el mensaje original, se calcula un código hash de 128 bits (Usando MD5), se cifra el código con RSA, con la clave privada del emisor, se añade la firma al mensaje original y el resultado se comprime en un ZIP.
Imagen:ImagenEncriptacion6.JPG
  • Autenticación (Comprobación Firma Digital): El receptor recibe el mensaje, lo descomprime, descompone el mensaje en firma y mensaje, descifra la firma, usando la clave publica del emisor (usando RSA), calcula el código hash del mensaje (usando MD5) y compara esos dos valores obtenidos.


Imagen:ImagenEncriptacion7.JPG
  • Confidencialidad (Cifrado de un mensaje): El emisor genera un mensaje, se comprime con ZIP, se genera una clave de sesión y se cifra el mensaje con el algoritmo IDEA, se cifra la clave de sesión (usando RSA), usando la clave pública del receptor, y finalmente se concatena el mensaje cifrado y la clave cifrada.


Imagen:ImagenEncriptacion8.JPG
  • Confidencialidad (Descifrado de un mensaje): El receptor recibe el mensaje, separa la clave cifrada y el mensaje cifrado, se descifra la con RSA usando su clave privada y obtiene la clave de sesión, se descifra el mensaje (usando IDEA), usando la clave de sesión y finalmente se descomprime el mensaje.


Imagen:ImagenEncriptacion9.JPG

Bibliografía

Historia de la codificación

[1] http://centros5.pntic.mec.es/ies.arzobispo.valdes.salas/alumnos/escri/cuneif.html

[2] http://www.proel.org/index.php?pagina=alfabetos/sumerio

[3] http://www.alain.be/akkadien.html

[4] http://es.wikipedia.org/wiki/Cuneiforme

[5] http://www.proel.org/index.php?pagina=alfabetos/jerogli

[6] http://www.proel.org/index.php?pagina=alfabetos/hieratic

[7] http://www.omniglot.com/writing/egyptian_hieratic.htm

[8] http://es.wikipedia.org/wiki/Escritura_maya

[9] http://es.wikipedia.org/wiki/Mesoam%C3%A9rica

[10] http://wapedia.mobi/es/Logograma

[11] http://wapedia.mobi/es/Escritura_maya#2.

[12] http://www.asifunciona.com/tablas/codigo_morse/codigo_morse_1.htm

[13] http://elezeta.net/morse/

[14] http://www.armada.mde.es/ArmadaPortal/page/Portal/ArmadaEspannola/multimedia_banderas/01_Introduccion

[15] http://www.infonavis.com/Informacion/Banderas.aspx

[16] http://www.librodefaros.com/

[17] http://www.elportaldelosbarcos.es/portal/pagina_submenu.php?opcion=548&id_menus=22&id_submenu=548

[18] http://es.geocities.com/scouts_lima12/nudos/semaforo.html

[19] http://www.ucm.es/info/hcontemp/leoc/telegrafia%20sin%20hilos.htm#El%20nacimiento%20de%20la%20telegraf%C3%ADa%20sin%20hilos.%201867-1914

La codificación en la actualidad

  • Codificación de señales
[20] http://es.wikiversity.org/wiki/Codificaciones_digitales
[21] http://www.coimbraweb.com/documentos/fundamentos/codigosdelinea.pdf
  • Codificación de caracteres
[22] http://www.carlosleopoldo.com/post/tipos-de-codificacion-de-caracteres/
  • Codificación Cuántica
[23] http://www.lodemenos.net/Codificacion-cuantica.html
[24] http://www.darpa.mil/
[25] http://www.ordenadores-y-portatiles.com/que-es-arpanet.html

Métodos avanzados de codificación

  • Compresión de datos
[26] http://www.alegsa.com.ar/Dic/compresion%20con%20perdida%20de%20calidad.php
[27] http://www.alegsa.com.ar/Dic/compresion%20sin%20perdida%20de%20datos.php
[28] Introduction to Data Compression, Khalid Sayood, Ed. Academic Press Morgan Kaufmann Publishers, 2000
  • Encriptación
[29] Criptografía y Seguridad en Computadores V 4-0.7.37 Manuel José Lucnea López (Universidad de Jaén)
[30] http://es.wikipedia.org/wiki/Data_Encryption_Standard
[31] http://es.wikipedia.org/wiki/Advanced_Encryption_Standard
[32] http://es.wikipedia.org/wiki/Claves_RSA
[33] http://en.wikipedia.org/wiki/ElGamal
[34] http://fr.wikipedia.org/wiki/Cryptosyst%C3%A8me_de_McEliece
[35] http://en.wikipedia.org/wiki/Pohlig-Hellman_algorithm
[36] http://www.pgp.com/

Licencia









Esta obra se publica multilicenciadamente con las siguientes licencias. Por tanto, usted es libre de reproducir, distribuir, comunicar públicamente, interpretar y transformar, por cualquier medio, con o sin ánimo de lucro, la presente obra, en cualquier momento o lugar, licenciando o multilicenciando, según sea el caso, la obra original o la obra derivada, con una de las siguientes licencias o con un subconjunto de ellas:





Herramientas personales