En 1976, Diffie y Hellman propusieron un nuevo tipo de criptografía que distinguió entre el encipherment y las llaves del desciframiento. Una de las llaves sería sabido público; el otro sería mantenido privado por su dueño. La criptografía clásica requiere al remitente y a recipiente compartir una llave común. La criptografía dominante pública no . Si la llave del encipherment es pública, para enviar un mensaje secreto codifique simplemente el mensaje con la llave pública del recipiente. Entonces envíela. El recipiente puede descifrarla que usa su llave privada.
James Ellis, criptógrafo que trabajaba para el grupo de la seguridad de la Comunicacio'n-Electro'nica del gobierno británico, dicho "él demostró la prueba del concepto en un informe de enero 1970 CESG titulado ' la posibilidad de cifrado seguro de Digital del No-Secreto.'" Dos de sus colegas encontraron puestas en práctica prácticas. Este trabajo seguía clasificado hasta 1997.
Porque una llave es pública, y su llave complementaria debe seguir siendo secreta, un cryptosystem dominante público debe resolver las tres condiciones siguientes.
Debe ser de cómputo fácil codificar o descifrar un mensaje dado la llave apropiada.
|
|
Debe ser de cómputo infeasible derivar la llave privada de la llave pública.
Debe ser de cómputo infeasible determinar la llave privada de un ataque elegido del plaintext
La cifra de RSA proporciona secreto y la autentificación.
RSA es una cifra del exponentiation. Elija dos números grandes p y q de la prima, y deje n = pq. El ff(n) totient de n es el número de números menos que n sin factores en campo común con n.
Nuestros ejemplos utilizarán los números pequeños para los propósitos pedagógicos. RSA real prepara debe ser por lo menos 512 pedacitos cada uno, dando un módulo por lo menos de 1.024 pedacitos. En la práctica, RSA se combina con funciones criptográficas del picadillo para prevenir el cambio de bloques.
| EJEMPLO: Deje n = 10. Los números que son menos de 10 y son (no tenga ningún factor en campo común con) n relativamente primera son 1, 3, 7, y 9. Por lo tanto, ff(10) = 4. Semejantemente, si n = 21, los números que son relativamente primeros a n es 1, 2, 4, 5, 8, 10, 11, 13, 16, 17, 19, y 20. Tan f(21) = 12. |
Elija un número entero e < n que sea relativamente primera al ff(n). Encuentre un segundo número entero d tales que ff(n) de la MOD del ed = 1. La llave pública es (e, n), y la llave privada es d.
Deje m ser un mensaje. Entonces:
c = MOD n del m^e
y
m = MOD n del c^d
| EJEMPLO: Deje p = 7 y q = 11. Entonces n = 77 y f(n) = 60. Alicia elige e = 17, así que su llave privada es d = 53. En este cryptosystem, cada carácter del plaintext es representado por un número entre 00 (a) y 25 (z); 26 representa un espacio en blanco. Bob desea enviar Alicia el MUNDO del mensaje "HOLA." Usando la representación arriba, el plaintext es 07 04 11 11 14 26 22 14 17 11 03. Usando la llave pública de Alicia, el texto cifrado es 07^17 MOD 77 = 28 04^17 MOD 77 = 16 11^17 MOD 77 = 44 ... 03^17 MOD 77 = 75 o 28 16 44 44 42 38 22 42 19 44 75. |
Además de secreto, RSA puede proporcionar la autentificación de los datos y del origen. Si Alicia codifica su mensaje usando su llave privada, cualquier persona puede leerla, pero si cualquier persona la altera, el texto cifrado (alterado) no se puede descifrar correctamente.
| EJEMPLO: Suponga los deseos de Alicia para enviar Bob el MUNDO del mensaje "HOLA" de una manera tal que Bob sea seguro que Alicia lo envió. Ella codifica el mensaje con su llave privada y lo envía a Bob. Según lo indicado arriba, el plaintext se representa como 07 04 11 11 14 26 22 14 17 11 03. Usando la llave privada de Alicia, el texto cifrado es 07^53 MOD 77 = 35 04^53 MOD 77 = 09 11^53 MOD 77 = 44 ... 03^53 MOD 77 = 05 o 35 09 44 44 93 12 24 94 04 05. Además de la autenticidad del origen, Bob puede ser seguro que no se alteró ningunas letras. El abastecimiento de secreto y de la autentificación requiere la codificación con la llave privada del remitente y la llave pública del recipiente. |
EJEMPLO: Suponga los deseos de Alicia para enviar Bob el MUNDO del mensaje "HOLA" en confianza y los authenticó. Una vez más asuma que la llave privada de Alicia es 53. Tome la llave pública de Bob para ser 37 (haciendo su llave privada 13). El plaintext se representa como 07 04 11 11 14 26 22 14 17 11 03. El encipherment es (07^53 MOD 77 = 07 de la MOD 77)37 (04^53 MOD 77 = 37 de la MOD 77)37 (11^53 MOD 77 = 44 de la MOD 77)37 ... (03^53 MOD 77 = 47 de la MOD 77)37 o 07 37 44 44 14 59 22 14 61 44 47. El recipiente utiliza la llave privada del recipiente para descifrar el mensaje y la llave pública del remitente para authenticarla. |
EJEMPLO: Bob recibe el texto cifrado arriba, 07 37 44 44 14 59 22 14 61 44 47. El desciframiento es (07^13 MOD 77 = 07 de la MOD 77)17 (37^13 MOD 77 = 04 de la MOD 77)17 (44^13 MOD 77 = 11 de la MOD 77)17 ... (47^13 MOD 77 = 03 de la MOD 77)17 o 07 04 11 11 14 26 22 14 17 11 03. Esto corresponde al MUNDO del mensaje "HOLA" del ejemplo precedente. |
El uso de un sistema dominante público proporciona un tipo técnico de nonrepudiation del origen. Se descifra el mensaje usando la llave pública de Alicia. Porque la llave pública es lo contrario de la llave privada, sólo la llave privada habría podido codificar el mensaje. Porque Alicia es la única quién sabe esta llave privada, sólo ella habría podido codificar el mensaje. La asunción subyacente es que la llave privada de Alicia no se ha comprometido, y que el cojinete dominante público su nombre realmente pertenece a ella.
En la práctica, nadie utilizarían los bloques del tamaño presentado aquí. La edición es que, iguale si n es muy grande, si un carácter por bloque se codifica, RSA se puede romper usando las técnicas usadas para romper cifras clásicas de la substitución. Además, aunque ningún bloque individual no se puede alterar sin la detección (porque el atacante no tiene probablemente acceso a la llave privada), un atacante puede cambiar bloques y cambiar el significado del mensaje.
EJEMPLO: Un general envía un mensaje a las jefaturas que pregunta si el ataque está encendido. Las jefaturas contestaron con "on" del mensaje codificado usando una cifra de RSA con un módulo 1,024-bit, pero cada letra se codifica por separado. Un atacante intercepta el mensaje e intercambia la pedido de los bloques. Cuando el general descifra el mensaje, leerá "NO," el contrario del plaintext original. Por otra parte, si el atacante sabe que las jefaturas enviarán uno de dos mensajes (aquí, "NO" o "on"), el atacante puede utilizar una técnica llamada "búsqueda delantera" o "precomputation" para romper la cifra. Por esta razón, el plaintext se rellena generalmente con datos al azar para hacer para arriba un bloque. Esto puede eliminar el problema adelante de buscar, porque el sistema de plaintexts posibles llega a ser demasiado grande al precompute factible. Un diverso general envía la misma petición que en el ejemplo arriba. Una vez más establece jefatura de las contestaciones con "on" del mensaje codificadas usando una cifra de RSA con un módulo 1,024-bit. Cada letra se codifica por separado, pero los primeros seis pedacitos de cada bloque contienen el número del bloque, los ocho pedacitos siguientes contienen el carácter, y los 1.010 pedacitos restantes contienen datos al azar. Si el atacante cambia los bloques, el general detectará que el bloque 2 llegó antes del bloque 1 (como resultado del número en los primeros seis pedacitos) y los cambia. El atacante también no puede el precompute los bloques determinarse cuál contiene "O," porque ella tendría que computar 21010 bloques, que es de cómputo infeasible. |
Online: 397 users browsing the articles directory
|
|