INFORME SOBRE CODIFICACIÓN Y CRIPTOGRAFÍA 000101010111111010101001011111101000000100001010010 111111010000001000001001011111101001011111101001011 111110010111111010000001000010010111111010000001000 010101010010111111010000001000101010100101111110100 000010001010101001011111101000000100010101010010111 111010000001000111111111111111101010100101111110100 000010001010101001011111101000000100010101010010111 111010000001000101010100101111110100000010000000111
15/11/2012 Charo Sánchez López Matemáticas II GRADO MULTIMEDIA UOC
INFORME SOBRE CODIFICACIÓN Y CRIPTOGRAFÍA
1. CODIFICACIÓN
En este apartado, mediante un ejemplo relacionado con el Festival Internacional de Cine Fantástico de Catalunya, se demostrará cómo podemos corregir errores de trasmisión mediante códigos correctores. En primer lugar tenemos los datos aportados correspondientes a las votaciones del público de las asignaciones para cada premio asignadas de la siguiente manera:
premi a la millor pel·lícula
(000)
premi al millor guió
(001)
premi als millors efectes especials
(010)
premi als millors efectes de maquillatge
(011)
premi a la millor fotografia
(100)
premi al millor director
(101)
premi a la millor banda sonora
(110)
cap premi
(111)
Z={(000), (001) ,(010), (011), (100) ,(101), (110) ,(111)} A partir de estos datos se creará un código lineal multiplicando cada una de las palabras asignadas por la matriz generadora G. 1 0 0 1 1 0 1 G = 0 1 0 1 1 1 0 0 0 1 1 0 1 1 1001101
(0 0 0) �0 1 0 1 1 1 0�=(0 0 0 0 0 0 0)
0011011
(0 1 + 0 0 + 0 0 0 0 + 0 1 + 0 0 0 0 + 0 0 + 01 0 1 + 0 1 + 0 1 0 1 + 0 1 + 0 0 0 0 + 0 1 + 0 1 0 1 + 0 0 + 0 1 )=(0 0 0 0 0 0 0)
1001101
(0 0 1) �0 1 0 1 1 1 0�=(0 0 1 1 0 1 1)
0011011
(0 1 + 0 0 + 1 0 0 0 + 0 1 + 1 0 0 0 + 0 0 + 11 0 1 + 0 1 + 1 1 0 1 + 0 1 + 1 0 0 0 + 0 1 + 1 1 0 1 + 0 0 + 1 1 )=(0 0 1 1 0 1 1)
1001101
(0 1 0) �0 1 0 1 1 1 0�=(0 1 0 1 1 1 0)
0011011
(0 1 + 1 0 + 0 0 0 0 + 1 1 + 0 0 0 0 + 1 0 + 01 0 1 + 1 1 + 0 1 0 1 + 1 1 + 0 0 0 0 + 1 1 + 0 1 0 1 + 1 0 + 0 1 )=(0 1 0 1 1
1 0)
1001101
(0 1 1) �0 1 0 1 1 1 0�=(0 1 1 0 1 0 1)
0011011
(0 1 + 1 0 + 1 0 0 0 + 1 1 + 1 0 0 0 + 1 0 + 11 0 1 + 1 1 + 1 1 0 1 + 1 1 + 1 0 0 0 + 1 1 + 1 1 0 1 + 1 0 + 1 1 )=(0 1 1 0 1 0 1)
1001101
(1 0 0) �0 1 0 1 1 1 0�=(1 0 0 1 0 1)
0011011
(1 1 + 0 0 + 0 0 1 0 + 0 1 + 0 0 1 0 + 0 0 + 01 11 + 0 1 + 0 1 11 + 0 1 + 0 0 1 0 + 0 1 + 0 1 1 1 + 0 0 + 0 1 )=(1 0 0 1 10 1)
1001101
(1 0 1) �0 1 0 1 1 1 0�=(1 0 1 0 1 1 1)
0011011
(1 1 + 0 0 + 1 0 1 0 + 0 1 + 1 0 1 0 + 0 0 + 11 11 + 0 1 + 1 1 11 + 0 1 + 1 0 1 0 + 0 1 + 1 1 1 1 + 0 0 + 1 1 ) = (1 0 1 0 1 1 0)
1001101
(1 1 0) �0 1 0 1 1 1 0�=(1 1 0 0 0 1 1)
0011011
(1 1 + 1 0 + 0 0 1 0 + 1 1 + 0 0 1 0 + 1 0 + 01 11 + 1 1 + 0 1 11 + 1 1 + 0 0 1 0 + 1 1 + 0 1 1 1 + 1 0 + 0 1 )=(1 1 0 0 0 1 1)
1001101
(1 1 1) �0 1 0 1 1 1 0�=(1 1 1 1 0 0 0)
0011011
(1 1 + 1 0 + 1 0 1 0 + 1 1 + 1 0 1 0 + 1 0 + 11 11 + 1 1 + 1 1 11 + 1 1 + 1 0 1 0 + 1 1 + 1 1 1 1 + 1 0 + 1 1) =(1 1 1 1 0 0 0)
De esta manera obtenemos las palabras que forman el cĂłdigo lineal que relacionamos en la siguiente tabla:
premi a la millor pel¡lĂcula
(000)
(0 0 0 0 0 0 0)
premi al millor guiĂł
(001)
(0 0 1 1 0 1 1)
premi als millors efectes especials
(010)
(0 1 0 1 1 1 0)
premi als millors efectes de maquillatge
(011)
(0 1 1 0 1 0 1)
premi a la millor fotografia
(100)
(1 0 0 1 1 0 1)
premi al millor director
(101)
(1 0 1 0 1 1 0)
premi a la millor banda sonora
(110)
(1 1 1 1 0 0 0)
cap premi
(111)
(1 1 0 0 0 1 1)
En este caso la distancia mĂnima del cĂłdigo lineal es 4, ya que el cĂłdigo que menos unos tiene (sin contar la palabra formada por ceros) contiene cuatro unos. Por tanto, si d=4 se podrĂĄn detectar hasta d-1=3 errores y corregir e errores. e=ďż˝
đ?‘‘−1
Podremos corregir un error, ya que e=1.
2
3
ďż˝ = ďż˝ ďż˝=1 2
Ahora mediante la matriz H de comprobaciĂłn de paridad podremos detectar y corregir errores. 1  1 H = 0  ďŁ1
1 1 1 0
1 0 1 1
1 0 0 0
0 1 0 0
0 0 1 0
0  0 0  1 
Comprobamos para â€?premi al millor directorâ€? si es del cĂłdigo. Para ello multiplicamos la palabra por la matriz H: 1 0 1111000 ⎛1⎞ 11+ ⎜ âŽ&#x; 1100100 ⎜0âŽ&#x; 11+ ďż˝ =ďż˝ ďż˝* 0110010 ⎜1âŽ&#x; 01+ 1010001 ⎜1âŽ&#x; 11+ 0 âŽ? âŽ
10+ 11 +10+ 10+ 01+ 00 + 10 +11+ 00+ 00+ 11+ 00+
01+ 11+ 01+ 01+
01+ 01+ 11+ 01+
00 1+1 0 00 1+1 0 ďż˝=ďż˝ ďż˝=ďż˝ ďż˝ 00 1+1 0 10 1+1 0
Como resultado nos da un vector formado por ceros lo que indica que no se ha producido ningun error en la trasmisión.
Ahora hacemos la prueba con una palabra que no sea del código (con solo un error): 1 0 ⎛1⎞ 1 1 + 10 + 11 +1 1 + 1111000 ⎜ ⎟ 1100100 11+ 10+ 01+ 01 + 1 � � ∗ ⎜ ⎟=� 0110010 ⎜1⎟ 0 1+ 1 0 + 11 + 0 1 + ⎜1⎟ 1 1+ 00 + 11 + 0 1 + 1010001 0 ⎝ ⎠
01+ 11+ 01+ 01+
01+ 01+ 11+ 01+
00 1+1+1 1 00 1+1 0 �=� �=� � 00 1+1 0 10 1+1 0
El resultado no es un vector formado por ceros por tanto hemos recibido una palabra que no está en nuestro código, por tanto tiene un error. Para averiguar donte está el error buscamos en l a matriz H, la columna que coincide con el vector obtenido, es decir la cuarta columna, por tanto el error se ha producido en el cuarto dígito, por tanto este dígito en lugar de 1 ha de ser 0. La palabra correcta será (1 0 1 0 1 1 0) que corresponde al código ( 1 0 1).
2.CRIPTOGRAFÍA DE CLAVE PRIVADA Los métodos de clave privada consisten en que emisor y receptor comparten una clave que previamente se han comunicado por un canal seguro y que utilizarán tanto en el cifrado como en el descifrado de sus mensajes. Por lo que el emisor si desea compartir mensajes con diferentes receptores debería utilizar diferentes claves para asegurar la confidencialidad. Los mensajes deben tener una asociación de carácter/número para que sea posible, mediante operaciones matemáticas obtener codificaciones que mantengan coherencia, es decir que estén creados mediante un algoritmo. Uno de los métodos más sencillos es el del “Cesar”, que consiste en un desplazamiento de los caracteres del alfabeto en un número k de posiciones más alejadas. Este número k es la clave que comparten emisor y receptor.
Práctica Mediante el canal seguro, que en este caso se trataba de nuestro correo personal, establecimos un compañero y yo, la clave con la que nos comunicaríamos (k=6).
Por el canal inseguro nos enviamos mensajes que sólo mi compañero y yo podíamos entender, ya que la clave la manteníamos en secreto:
Mediante el método César ambos pudimos descifrar nuestros mensajes:
3.CRIPTOANÁLISIS Y BUSQUEDA EXHAUSTIVA DE CLAVES
El criptoanálisis es el método que se utiliza para descubrir las claves privadas mediante el estudio de los sistemas criptográficos a fin de poder desencriptar mensajes. Una de las maneras más sencillas es la búsqueda exhaustiva de claves, que se trata de ir probando todas las claves de manera ordenada, hasta que se encuentra. Pero esto sólo se puede utilizar en sistemas como el del “Cesar” en el que el número de claves es relativamente pequeño. Práctica: Interceptamos un mensaje en el canal inseguro y a continuación lo desciframos intentando averiguar la clave. En este caso iremos probando hasta que la encontremos:
4.CRIPTOGRAFÍA DE CLAVE PÚBLICA
Utilizamos el canal inseguro para difundir nuestra clave pública:
A su vez, mediante la clave pública que un compañero ha facilitado en el mismo canal, yo le envío un mensaje codificado con esa clave:
Mensaje: HOLA COMO VAN LAS MATES
Él me envía un mensaje codificado con mi clave pública:
Mensaje: ME DEFIENDO COMO PUEDO Y TU
Mensaje: YO TAMBIEN