Criptografía y congruencias para trabajo
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Criptografía y congruencias para trabajo

on

  • 434 views

 

Statistics

Views

Total Views
434
Views on SlideShare
405
Embed Views
29

Actions

Likes
0
Downloads
1
Comments
0

2 Embeds 29

http://divisibilidadporcongruencias.blogspot.com 28
http://divisibilidadporcongruencias.blogspot.com.es 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Criptografía y congruencias para trabajo Document Transcript

  • 1. CRIPTOGRAFÍA El término Criptografía está derivado de del griego κρύπτω krypto, “oculto”, y γράφως graphos, “escribir”, literalmente viene a significar “Escritura Oculta”. Ésta altera las representaciones lingüísticas de mensajes, mediante técnicas de cifrado o codificado, para hacerlos inentendibles a lectores no autorizados, que intercepten esos mensajes. Por tanto el único objetivo de la criptografía era conseguir la confidencialidad de los mensajes, no es ocultar la existencia de un mensaje, sino más bien ocultar su significado, un proceso que se conoce como codificación. Aunque el objetivo original de la criptografía era mantener en secreto un mensaje, en la actualidad no se persigue únicamente la privacidad o confidencialidad de los datos, sino que se busca además garantizar la autenticación de los mismos (el emisor del mensaje es quien dice ser, y no otro), su integridad (el mensaje que leemos es el mismo que nos enviaron) y su no repudio (el emisor no puede negar el haber enviado el mensaje). Historia de la Criptografía y su relación con congruencias: Existen muchos casos donde se utiliza la criptografía, pero a través de métodos que no son matemáticos, si bien es cierto son estos muy importantes, no son nuestro objeto de estudio, por lo cuál solo nos concentraremos en mostrar y ejemplificar aquellos casos que a través del tiempo han utilizado congruencias para codificar mensajes. En la historia aparecería El Cifrario de César, éste método fue empleado en los tiempos de la Roma Imperial. El algoritmo de César, llamado así porque es el procedimiento que empleaba el emperador Julio César para enviar mensajes secretos a sus legiones,es uno de los algoritmos criptográficos más simples. Es un algoritmo de sustitución, su cifrado consistía simplemente en sustituir una letra por la situada tres lugares más allá en el alfabeto esto es la A se transformaba en D, la B en E y así sucesivamente hasta que la Z se convertía en C. Alfabeto Original A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Alfabeto cifrado D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
  • 2. Por ejemplo : El mensaje TEORÍA DE NÚMEROS se convierte en: WHRULD GH QXPHURV Tratamiento matemático: Si asignamos a cada letra un número A =00, B =01, C=02,.......Z=25), y consideramos un alfabeto de 26 letras como el original, la transformación criptográfica en términos matemáticos se puede explicar bajo la siguiente fórmula de congruencias: 𝐶 = (𝑀 + 3) ( 𝑚ó𝑑 26) M, corresponde a la letra del mensaje original C, es la letra correspondiente a M pero en el mensaje cifrado. Obsérvese que este algoritmo ni siquiera posee clave, puesto que la transformación siempre es la misma. Obviamente, para descifrar basta con restar 3 al número de orden de las letras del criptograma. Ejemplo: Asumiendo un alfabeto de 26 símbolos como el siguiente: A 00 F 05 K 10 P 15 U 20 Z 25 B 01 G 06 L 11 Q 16 V 21 C 02 H 07 M 12 R 17 W 22 D 03 I 08 N 13 S 18 X 23 E 04 J 09 O 14 T 19 Y 24 Cifrar el siguiente mensaje: PROFESOR Utilizado la fórmula anteriormente dada: 1. Reemplazar M por el valor de la primera letra, en este caso P equivale a 15. 2. Realizar la operación indicada: C = (15 + 3) (mód 26) = 18. 3. Corresponder el número obtenido con la letra , en nuestro caso la S. 4. Para las letras restantes sería: Así obtenemos las siguientes correspondencias : 𝑃 (15 + 3) = S 𝑅 (17 + 3) =U 𝑂 (14 + 3) =R 𝐹 (5 + 3) =I 𝐸 (4 + 3) =H 𝑆 (18 + 3) =V 𝑂 (14 + 3) =R 𝑅 (17 + 3) =U Por tanto el Mensaje Codificado es : SURIHVRU (la palabra PROFESOR) Como podemos ver este código se basa en congruencias.
  • 3. La aparición de la Informática y el uso masivo de las comunicaciones digitales han producido un número creciente de problemas de seguridad. Las transacciones que se realizan a través de la red pueden ser interceptadas. La seguridad de esta información debe garantizarse. Este desafío ha generalizado los objetivos de la criptografía. Para ello los criptógrafos investigan, desarrollan y aprovechan técnicas matemáticas que les sirven como herramientas para conseguir sus objetivos. Los grandes avances que se han producido en el mundo de la criptografía han sido posibles gracias a los grandes avances que se han producido en el campo de las matemáticas y la informática. La criptografía actualmente se encarga del estudio de los algoritmos, protocolos y sistemas que se utilizan para dotar de seguridad a las comunicaciones, a la información y a las entidades que se comunican. Por tanto el tipo de propiedades de las que se ocupa actualmente la criptografía son por ejemplo: • Confidencialidad. Es decir garantiza que la información esta accesible únicamente a personal autorizado. Para conseguirlo utiliza códigos y técnicas de cifrado. • Integridad. Es decir garantiza la corrección y completitud de la información. Para conseguirlo puede usar por ejemplo funciones hash criptográficas MDC, protocolos de compromiso de bit, o protocolos de motorización electrónica. • Vinculación. Permite vincular un documento o transacción a una persona o un sistema de gestión criptográfico automatizado. Cuando se trata de una persona, se trata de asegurar su conformidad respecto a esta vinculación (content commitment) de forma que pueda entenderse que la vinculación gestionada incluye el entendimiento de sus implicaciones por la persona. Antiguamente se utilizaba el término "No repudio" que esta abandonándose, ya que implica conceptos jurídicos que la tecnología por si sola no puede resolver. En relación con dicho termino se entendía que se proporcionaba protección frente a que alguna de las entidades implicadas en la comunicación, para que no pudiera negar haber participado en toda o parte de la comunicación. Para conseguirlo se puede usar por ejemplo firma digital. En algunos contextos lo que se intenta es justo lo contrario: Poder negar que se ha intervenido en la comunicación. Por ejemplo cuando se usa un servicio de mensajería instantánea y no queremos que se pueda demostrar esa comunicación. Para ello se usan técnicas como el cifrado negable. • Autenticación. Es decir proporciona mecanismos que permiten verificar la identidad del comunicante. Para conseguirlo puede usar por ejemplo función hash criptográfica MAC o protocolo de conocimiento cero. Soluciones a problemas de la falta de simultaneidad en la tele firma digital de contratos. Para conseguirlo puede usar por ejemplo protocolos de transferencia inconsciente. Un sistema criptográfico es seguro respecto a una tarea si un adversario con capacidades especiales no puede romper esa seguridad, es decir, el atacante no puede realizar esa tarea específica. Por ejemplo: Si un correo electrónico es enviado por internet sin seguridad alguna, la información que conlleva es frágil y descifrable.
  • 4. Para ello, se usa la criptografía en el correo electrónico. Entre las varias ventajas que tiene usar un certificado al enviar un email, podríamos destacar la seguridad que nos aporta ya que así evita que terceras personas (o hackers) puedan leer su contenido, o bien que tenemos la certeza de que el remitente este correo electrónico es realmente quien dice ser. Gracias al empleo del código ASCII y las congruencias es fácil desarrollar un algoritmo de cifrado y descifrado de un mensaje, como son el procedimiento aditivo, multiplicativo, exponencial y el famoso RSA. Para dar ejemplos de estos procedimientos utilizaremos el siguiente código o tabla de equivalencias. : A B C D E F G H I J K L M 10 11 12 13 14 15 16 17 18 19 20 21 22 N O P Q R S T U V W X Y Z 23 24 25 26 27 28 29 30 31 32 33 34 35 Y asignado el numero 36 al espacio en blanco Procedimiento aditivo La clave del cifrado es un número, digamos b, que se suma a cada uno de los del mensaje. Para números que estén entre 0 y 36, se obtiene el resto módulo 37 de la suma del número original más b. El receptor el mensaje debe conocer b, y no tiene más que restar b módulo 37 o, lo que es lo mismo, sumar 37-b para descifrar el mensaje. Ejemplo. Veamos cómo cifrar el mensaje “EL 1 A LAS 3″ con la clave aditiva b=17. En primer lugar, “traducimos” cada carácter a su valor numérico: 14 21 36 1 36 10 36 21 10 28 36 3. Su codificación es 31 1 16 18 16 27 16 1 27 8 16 20. Esto se traduce en “V1GIGRG1R8GK”. El receptor deberá sumar 37 − 17 = 20(𝑚𝑜𝑑𝑢𝑙𝑜 37) en la cadena numerica para obtener le mensaje original. Procedimiento multiplicativo En lugar de sumar, se multiplica por un factor, digamos a; es decir, el cifrado de la conversión numérica de cada carácter será 𝑚𝑎(𝑚𝑜𝑑 37).
  • 5. Para que el cifrado sea biyectivo es necesario que todas las congruencias lineales: 𝑎𝑥 ≡ 𝑦(𝑚𝑜𝑑37) tengan una única solución para cualquier 𝑦 ∈ 𝑍37 𝑎𝑎 − 1 ≡ 𝑚(𝑚𝑜𝑑37), 𝑠𝑒 𝑡𝑖𝑒𝑛𝑒 𝑞𝑢𝑒 (𝑚𝑎)𝑎 − 1 ≡ 𝑚(𝑚𝑜𝑑37) por lo que el número buscado m es el resto de dividir (𝑚𝑎)𝑎 − 1 𝑒𝑛𝑡𝑟𝑒 37. Ejemplo: Veamos como cifrar el mensaje anterior con la clave multiplicativa a=7. 24 36 30 7 30 33 30 36 33 11 30 21 lo que se traduce en “O U7UXU XBUL”. El receptor debe multiplicar en la cadena numérica por el inverso de 7 en ℤ37 que es 16, obteniendo: 384 576 480 112 480 528 480 576 528 176 480 336 cuyos restos, modulo 37, constituyen la cadena original. Procedimiento exponencial En este procedimiento, cuando se quiera cifrar un número m, se elevará éste a un exponente k y el resultado se reducirá módulo n, siendo k y n números naturales elegidos convenientemente. Tomamos φ(n) la función de Euler φ de n. Este procedimiento se aplica de la siguiente forma: se elige n∈N, se calcula φ(n), se toma k primo con φ(n) y se calcula j, el inverso de k en Zφ(n). Suponiendo que el emisor y el receptor de un conocen los números k y j, el emisor mandara el mensaje codificado que es r, el resto de la división es 𝑚𝑘 entre n. Para descodificar, teniendo en cuenta que 𝑚𝑘𝑗 ≡ 𝑚(𝑚𝑜𝑑𝑛) el receptor calculará 𝑟𝑗 ≡ (𝑚𝑘)𝑗 ≡ 𝑚(𝑚𝑜𝑑𝑛) y asi recuperara el mensaje original m.
  • 6. Obviamente este procedimiento solo es válido cuando el número m es menor que n. Por ello, en la práctica, cuando el mensaje es largo, se agrupan sus caracteres (escribiendo las cifras como 00,01,02,…,09 para que todos los caracteres estén representados por un número de dos cifras) en paquetes mi de la misma longitud l, (por ejemplo, para n=108, podemos tomar l=4, puesto que 36363636 < n). En el caso de que el número de caracteres del mensaje no sea múltiplo de l, el último paquete se completa con espacios en blanco. Ejemplo: Para ilustrar este método, consideramos un caso sencillo con n pequeño y un mensaje corto. Tomamos n=5×11 = 55, lo que nos obliga a tomar paquetes que contienen un único carácter. Veamos como cifrar el mensaje “ADN”. Puesto que Φ (55)=4x10=40 tomamos, por ejemplo, k=3 (que es primo con 40) y deducimos que el inverso de k = 3 en ℤ40 es 𝑗 = −13 ≡ 27(𝑚𝑜𝑑40) Traduciendo cada caracter a su valor numérico, el mensaje se convierte en 101323. Como nuestros paquetes se corresponden con un único caracter, debemos codificar 3 números: 𝑚1 = 10, 𝑚2 = 13 𝑦 𝑚3 = 23. Para ello, calculamos 𝑚3. Los tres paquetes de mensaje codificados que se envian son 10, 52 y 12. Para descifrar los tres paquetes recibidos, el receptor debe calcular el resto, el modulo n=55, de los números recibidos elevados a j=27. Obteniendo así el mensaje original. El procedimiento RSA Todos los procedimientos anteriores se basan en sistemas de clave privada, en que los datos para el cifrado han de mantenerse secretos. El salto cualitativo siguiente son los sistemas de clave publica/clave privada, y el primero ha sido el sistema RSA, así llamado por los nombres de sus autores, Rivest, Shamir y Adelman. Este es un sistema exponencial en el cual n es producto de dos primos “grandes” distintos p y q. Aunque se hagan públicos el exponente k y el módulo n, si no se sabe factorizar n, no se puede calcular φ(n)=(p−1)(q−1) y, por lo tanto, no se puede encontrar el número j necesario para descifrar el código. Por ello la idea fundamental es utilizar un número n que no sea factorizable en un tiempo “razonable”, lo cual exige actualmente usar dos factores de unas 150 cifras y, por tanto, n de unas 300. El sistema de envío de mensajes encriptados funciona de la siguiente forma:
  • 7. Si A quiere mandar un mensaje a B debe consultar la clave pública (n,k) de B. Con ella A cifra el mensaje (elevándolo a k) y se lo envía a B; lo único que debe hacer B es descifrarlo mediante su clave privada j (elevando a j el numero recibido). Este sistema sirve también para firmar los mensajes y comprobar su integridad; en concreto, sirve para que el receptor B este seguro de que quien envía el mensaje es, efectivamente, el supuesto emisor A, y de que el mensaje no ha sido manipulado por un tercero. Para conseguir esto, basta que A envíe un mensaje en el que, junto con el texto cifrado mediante la clave publica de B, vaya una copia del texto cifrado mediante su propia clave privada. Cuando B recibe el mensaje, descifra el primer texto mediante su clave privada, y el segundo con la clave publica de A; ambos resultados deben coincidir. El segundo texto enviado se conoce como firma digital; en la practica la firma no se suele realizar sobre el texto como tal sino sobre un resumen del mismo que se obtiene mediante la aplicación de un tipo especifico de funciones que se conocen con el nombre de funciones hash. Ejemplo: Consideramos un valor pequeño de n y el mismo mensaje “ADN” del ejemplo anterior, supongamos que el emisor A tiene como clave publica (𝑛𝐴, 𝑘𝐴) = (91,5) Mientras que la del receptor B es (𝑛𝐵, 𝑘𝐵) = (55,3). Según lo visto en el ejemplo anterior, el texto cifrado que se envía está formado por los tres paquetes 10,52 y 12. Para obtener la firma digital hay que tener en cuenta que la clave privada de A es 𝑗𝑎 = 29. Por tanto, los tres paquetes del texto original 𝑚1 = 10, 𝑚2 = 13 𝑦 𝑚3 = 23 deben elevarse a 29 modulo 𝑛𝐴 = 91, obteniendose 82,13 y 04. De esta forma el mensaje que recibe B es 10 52 12 | 82 13 04 Para descifrar el primer trozo, B utiliza su clave privada que es 𝑗𝐵 = 27. Elevando los tres paquetes a 10,52 y 12 a 27 𝑚𝑜𝑑𝑢𝑙𝑜 𝑛𝐵 = 55, obtiene 10,13 y 23 lo que obviamente se corresponde con el mensaje original ADN. Al elevar los tres paquetes de la firma digital 82,13 y 04 a la clave publica de 𝐴, 𝑘𝐴 = 5, 𝑚𝑜𝑑𝑢𝑙𝑜 𝑛𝐴 = 91 obtiene el mismo resultado, lo cual le confirma que el mensaje ha sido enviado por A y no ha sido manipulado. Y es así, como está la criptografía relacionada a las congruencias.