De cifrado RSA

Martes, 30 de enero 2007

En primer lugar, como se mencionó en el Post del sistema de cifrado RSA es un público de encriptación clave y utiliza las propiedades de los números primos. Por otra parte, la aritmética aprobada (en el cálculo) no es regular, pero la llamada finito o artirmetica modular. Parten de este último a avanzar paso a paso en la aplicación de cifrado RSA.

La aritmética más, como su nombre indica, se refiere a conjuntos finitos de números. Un ejemplo ilustrativo, que hará todo muy claro, y el ordenador para ver. Tome un reloj clásico con punteros a la que todos estamos acostumbrados. Representa un sistema finito como las horas que están representados en el dial 12. La mano, de hecho, cada vuelta atrás - tarde o temprano - la misma posición. Sucede que 3 +12 = 3, en nuestro ordenador para ver. Más concretamente, las operaciones de suma y multiplicación de la aritmética tiene lugar durante la misma manera dell'aritmentica ordinario, salvo que el resultado final lo hace este módulo (a menudo denominado mod y presente en todos los lenguajes de programación , en C, Javascript o PHP es el símbolo%). En el caso de nuestro reloj de 12 horas, de hecho, la operación, además está a sólo 3 12 = 15 mod 12, que dará como resultado 3 - visualmente como estamos acostumbrados.
En la práctica - en relación con el reloj - que acabamos de hacer esto, aunque no conscientemente. El módulo de transacción 12, para entenderlo, corresponde a dividir un número por 12 y tomar el resto de la división:

Por ejemplo, 15 mod 12 = 15/12 = (descanso 15-12) = 3
Ejemplo 24 mod 12 = 24/12 = (resto 0) = 0
Por ejemplo, 26 mod 12 = 26/12 = (descanso 14-12) = 2

El número de horas en qudrante puede ser cualquier número, 12, 24, 5, 128, ...
Sin embargo, se descubrió que al elegir un número primo, como el número de horas, hubo un personaje formidable. En primer lugar, la hora de elegir un número primo que nunca encontrar un cero como resultado. También a cualquier número en el cuadrante formado por un número primo elevado a la primera elegido como el número de horas siempre devuelve el número dado. Por ejemplo si tenemos un reloj con 5 horas en el dial y altos, por ejemplo 2 5 volvamos 2, el número de partida:

2 5 = 32 mod 5 = 2

Que se traduce en:

x p = x (mod p)

Pierre de Fermat, matemático que se percató de este comportamiento, se dio cuenta de que el reloj parece dibujar un patrón repetitivo. En la práctica, en nuestro caso, después de cinco pasos que el puntero de nuevo a la posición inicial.

Potencias de 2 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10
Operaciones ordinarias 2 4 8 16 32 64 128 256 512 1024
Módulo 5 2 4 3 1 2 4 3 1 2 4

Un reloj en 13 horas (pruebe usted hasta 3 13) se obtiene:

3, 9, 1, 3, 9, 1, 3, 9, 1, 3, 9, 1, 3

A diferencia de nuestra primera mano no se detendrá en todos los números posibles, pero la tendencia parece igualmente repetitivos y, en este caso, la aguja volverá el 3 después de 3 se multiplica por sí mismo 13 veces!

En 1736, Leonhard Euler fue capaz de extender esta función, así como para dar una explicación. Demostró que con un reloj con hora en la cara N, donde N = p * q es el producto de dos números primos p y q, los resultados se empiezan a repetir después (p -1) * (q-1) 1 pasos.

Esta característica es la base de cifrado RSA. Se entendió que este patrón cíclico podía - de hecho - para deshacerse de la información y luego por arte de magia a la luz. Vemos que el N es el producto de dos números primos p y q, esto sería capaz de hacer público un artificio N p y q se mantiene en secreto.

En la práctica, por lo tanto, lo que recuerdo es para hacer un truco de cartas. Digamos que tiene una cubierta formada por un gran número de cartas, tan grande que tendríamos que escribir por lo menos cien dígitos. El código que queremos cifrar es una de estas tarjetas, después de haber sido colocado en la parte superior de la cubierta, se mezcla con el fin de perder - al parecer - la ubicación de nuestro periódico (el mensaje). Con la aritmética del reloj, en la práctica, es muy fácil deshacerse del papel, pero no tan fácil de hacer que vuelva a aparecer, a menos que sepa el número exacto de los movimientos que deben figurar en la cubierta de manera que vuelva a aparecer en el documento encima de ella.
Por lo tanto, un ejemplo completo, para que pueda ver todas las fórmulas necesarias para crear este tipo de magia.
En nuestro ejemplo vamos a utilizar un número reducido sólo para entender el mecanismo y creer que haya que enviar el número de nuestra tarjeta de crédito a un sitio Web

PASO 1

El sitio web anunció - en el navegador - la clave pública en primer lugar, calculado como N = p * Q (el sitio web se celosamente si el número de p y q, sólo el producto se hace público): representa el número de horas empleadas On Our Watch. Tenga en cuenta que en realidad el número p y q son por lo menos 60 dígitos! Vamos a utilizar un número más humano

N = p * q = 5 * 11 = 55

Cincuenta y cinco es nuestra clave pública, gracias al código de seguridad, el sitio web se pueden distribuir de forma segura y sin distinción a todos sus clientes. A pesar de que se hizo público el número N, los factores primos que lo componen p y q permanecer en secreto, se descifrar el número de nuestra tarjeta de crédito!

PASO 2

En ese momento recibimos un segundo número y llamé al número de codificación. Este número también se publica y la igualdad para todos, al igual que N. A través de nuestro navegador, podemos codificar el número de nuestra tarjeta de crédito C, en la práctica de mezclar la baraja de cartas, y representa el número de barajar:

C E (Formulario N)

Y el número es generalmente pequeña y se calcula mediante la fórmula que nos encontramos cuando vimos que en un reloj con un número de horas compuesto de un número primo, no había una secuencia que se repitió más tarde (p -1) * ( q -1) +1 pasos (para más información haga clic aquí)!
En primer lugar se calcula un número B:

b = (p -1) * (q -1) = (5-1) * (11-1) = (4) * (10) = 40

El número y debe ser un número primo que no tiene divisores con b, gcd (a, b) = 1
Para simplificar vamos a intentos - esistone diferentes técnicas para ello:

Si E = 2, entonces mcd (2, 40) = 2 no es bueno
Si E = 3, entonces mcd (3, 40) = 1 está bien

En este punto, podemos cifrar nuestro número de tarjeta de crédito C. Si C es 32 y tiene, por ejemplo:

Mod. N C E = 32 3 mod 55 = 43 = CF C

Fantástico, 43 es nuestro número de tarjeta de crédito cifrada! Podemos enviar!

PASO 3

El sitio Web recibe nuestro número de tarjeta de crédito Cf C cifrado, o 43. En este punto se aprovechen de la propiedad siguiente:

CF C = C d mod n

El número d es la inversa del número y la aritmética b orden finito, la aritmética del reloj. Esto es por la sencillez se calculará de modo que d * e mod b = 1
Va a tentar a descubrir que:

Para d = 1 es 1 * 3 mod 40 = 3 mod 40 = 3 - no es bueno
Para d = 2 es 2 * 3 mod 40 = 6 mod 40 = 6 - no es bueno
Para d = 3 es 3 * 3 mod 40 = 9 mod 40 = 9 - no es bueno
....
Para d = 27 es de 27 * 3 mod 40 = 81 mod 40 = 1 - encontrado!

Ahora el sitio web es capaz de barajar los naipes con el fin de reaparecer en nuestro número de tarjeta de crédito:

CF C = C d mod n = 43 27 mod 55 = 32

Resumir

Variable Clase Fórmula Valer

N

Pública

p * q

5 * 11 = 55

b

Privado

P (-1) * (q -1)

(5-1) * (11-1) = (4) * (10) = 40

Y

Pública

MCD (E, b) = 1

Mcd (3, 40) = 1, entonces 40

d

Privado

d * e mod b = 1

27 * 3 mod 40 = 1 entonces 27

C

Número de Tarjeta

--

32

CF C

Codificado

Mod. N C E

32 3 mod 55 = 43

C

Descifrado

CF C = C d mod n

43 27 mod 55 = 32

Si desea experimentar con, haga clic en números aleatorios aquí.
Además, como se explica en el mismo sitio de la RSA:

Supongamos que Alice desea enviar un mensaje m a Bob. Alice crea el texto cifrado por exponenciar c: c = m e mod n, donde E y n son la clave pública de Bob. Ella le envía c a Bob. Para descifrar, Bob también exponentiates: m = c d mod n, la relación entre E y D se asegura de que Bob se recupere correctamente m. Dado que sólo Bob sabe d, sólo Bob puede descifrar este mensaje.

Los hackers y la seguridad

Nuestro número de tarjeta de crédito, cifrado, que viaja en la red y cualquier hacker podría leerlo. ¿Qué es un hacker para descifrar nuestro código es un número, se multiplica y, a veces por sí mismo en el equipo para ver horas de N, da el número de tarjeta de crédito cifrada (CF C = C e mod n). Además de un equipo regular el resultado de una serie de avances autmenta reproductiva, algo que no ocurre en un ordenador para ver, donde el punto de partida se pierde de vista muy rápidamente, ya que el tamaño de los resultados no tienen relación con la posición de donde empezó. Por otra parte, en casos reales, el número N tiene más de un centenar de figuras, hay más horas en el reloj de la computadora para ver que los átomos en el universo. Es sólo por el número de decodificación d que el sitio Web puede recuperar el número de tarjeta de crédito, pero este número d es recuperable sólo si sabemos P y Q. A pesar del número N = p * q es público, la dificultad de la factorización N hace que sea prácticamente imposible de descifrar el código.

Sin embargo, nadie ha demostrado que existe un algoritmo matemático que puede hacer que un gran número se descomponen rápidamente un equipo de trabajo. Si esto ocurre, sería el colapso de la economía de los países desarrollados en ninguna hora en todos.

Bibliografía

Post relacionados

Fue útil esta información?: Per nientePocoAbbastanzaMoltoMoltissimo
Loading ... Cargando ...

6 comentarios a "El cifrado RSA"

  1. getAvatar 1,0
    17 de septiembre 2007 Undolog »2007» Septiembre »18:

    [...] 13) El cifrado RSA - 808 [...]

  2. getAvatar 1,0
    05 de noviembre 2007 Daniel:

    Hola .. Yo tengo un programa en C (uno por uno para Bob y Alice) ... que es el que descifra la RSA y el que las grietas un mensaje .. usted tiene alguna idea?

  3. getAvatar 1,0
    05 de noviembre 2007 Giovambattista Fazioli:

    @ Daniel: Si te refieres al algoritmo se explica en el Post. Ver también los enlaces relacionados que contienen páginas con demostración en vivo, si puede ayudar. De lo contrario te refieres a algo en particular?

  4. getAvatar 1,0
    31 de mayo 2008 El módulo de operación aritmética | Undolog.com:

    [...] Decir que el módulo de transacciones es un tema muy amplio, lo que he tratado en el cifrado RSA! Esta vez, sin embargo, no se habla de códigos o cifrados, pero las cosas útiles y mucho más [...]

  5. getAvatar 1,0
    20 de marzo 2009 Baco:

    La mejor explicación que he leído. Finalmente entendí la aritmética modular algo ... Gracias!

  6. getAvatar 1,0
    06 de abril 2009 Massimiliano:

    Hola chicos,
    Bueno, la encriptación RSA, tenga vida no muy largo ... el nuevo giro de la trama podría provenir de ordenador cuántico capaz de factorizar grandes números rápidamente. En términos prácticos ver el enlace de los sistemas de Dwave.
    ¿Qué te parece? Debemos cambiar a otros sistemas de clave pública a corto plazo? RSA todavía no 'el único algoritmo de clave pública ...

    Recuerdos
    Massimiliano Monittola

Deja tu comentario

TAG XHTML RESTRICCIONES: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> código de inserción:
 <pre></pre>         // blocco generico [code][/code]       // blocco generico [as][/as]           // Actionscript [css][/css]         // CSS Style Sheet [html][/html]       // HTML [js][/js]           // Javascript [objc][/objc]       // Objective-C [php][/php]         // PHP [sql][/sql]         // SQL