In 1976, Diffie e Hellman hanno proposto un nuovo tipo di cryptography che si è distinto fra encipherment e le chiavi di decipherment. Una delle chiavi sarebbe conosciuta pubblicamente; l'altro sarebbe mantenuto riservato dal relativo proprietario. Il cryptography classico richiede al mittente ed al destinatario di ripartire una chiave comune. Il cryptography chiave pubblico non. Se la chiave di encipherment è pubblica, per trasmettere un messaggio segreto cifri semplicemente il messaggio con la chiave pubblica del destinatario. Allora trasmettala. Il destinatario può decifrarlo che usando la sua chiave riservata.
James Ellis, un crittografo che lavora per il gruppo di sicurezza di Comunicazione-Elettronica del governo britannico, ad esempio "ha mostrato la prova del concetto in un rapporto gennaio 1970 di CESG nominato 'la possibilità di crittografia sicura di Digital di Non-Segreto.'" Due dei suoi colleghe hanno trovato le esecuzioni pratiche. Questo lavoro è rimasto classificato fino al 1997.
Poiché una chiave è pubblica e la relativa chiave complementare deve rimanere segreta, un cryptosystem chiave pubblico deve riempire le seguenti tre circostanze.
Deve essere informaticamente facile da cifrare o decifrare un messaggio fornito la chiave adatta.
|
|
Deve essere informaticamente infeasible derivare la chiave riservata dalla chiave pubblica.
Deve essere informaticamente infeasible determinare la chiave riservata da un attacco scelto di plaintext
La cifra di RSA fornisce sia la segretezza che l'autenticazione.
RSA è una cifra di elevamento a potenza. Scelga due grandi numeri p e q di perfezione e lasci n = pq. Il ff(n) totient di n è il numero di numeri di meno che la n senza i fattori il in comune con n.
I nostri esempi useranno i piccoli numeri per gli scopi pedagogici. RSA reale innesca dovrebbe essere almeno 512 bit ciascuno, dando un modulo almeno di 1.024 bit. In pratica, RSA è unito con le funzioni crittografiche del hash per evitare la riorganizzazione dei blocchi.
| ESEMPIO: Lasci n = 10. I numeri che sono meno di 10 e sono (non abbia fattori il in comune con) n relativamente principale sono 1, 3, 7 e 9. Quindi, ff(10) = 4. Similmente, se la n = 21, i numeri che sono relativamente principali a n è 1, 2, 4, 5, 8, 10, 11, 13, 16, 17, 19 e 20. Così f(21) = 12. |
Scelga un numero intero e < n che è relativamente principale a ff(n). Trovi un secondo numero intero d tali che ff(n) del MOD di ed = 1. La chiave pubblica è (e, n) e la chiave riservata è d.
Lasci la m. essere un messaggio. Allora:
c = MOD n del m^e
e
m. = MOD n del c^d
| ESEMPIO: Lasci p = 7 e q = 11. Allora n = 77 e f(n) = 60. Alice sceglie e = 17, in modo da la sua chiave riservata è d = 53. In questo cryptosystem, ogni carattere di plaintext è rappresentato da un numero fra 00 (A) e 25 (z); 26 rappresentano uno spazio in bianco. Bob desidera trasmettere a Alice il MONDO del messaggio "CIAO." Usando la rappresentazione qui sopra, il plaintext è 07 04 11 11 14 26 22 14 17 11 03. Usando la chiave pubblica della Alice, il ciphertext è 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. |
Oltre che riservatezza, RSA può fornire l'autenticazione di origine e di dati. Se Alice cifra il suo messaggio usando la sua chiave riservata, chiunque può leggerla, ma se chiunque la altera, il ciphertext (alterato) non può essere decifrato correttamente.
| ESEMPIO: Supponga i desideri della Alice per trasmettere a Bob il MONDO del messaggio "CIAO" im modo tale che Bob sarà sicuro che Alice lo ha trasmesso. Cifra il messaggio con la sua chiave riservata e lo trasmette a Bob. Come indicato sopra, il plaintext è rappresentato come 07 04 11 11 14 26 22 14 17 11 03. Usando la chiave riservata della Alice, il ciphertext è 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. Oltre che l'autenticità di origine, Bob può essere sicuro che nessuna lettera è stata alterata. Fornire sia la riservatezza che l'autenticazione richiede cifrare con la chiave riservata del mittente e la chiave pubblica del destinatario. |
ESEMPIO: Supponga i desideri della Alice per trasmettere a Bob il MONDO del messaggio "CIAO" in via strettamente confidenziale ed ha autenticato. Di nuovo, supponga che la chiave riservata della Alice è 53. Prenda la chiave pubblica del Bob per essere 37 (facendo la sua chiave riservata 13). Il plaintext è rappresentato come 07 04 11 11 14 26 22 14 17 11 03. Il encipherment è (07^53 MOD 77 = 07 del MOD 77)37 (04^53 MOD 77 = 37 del MOD 77)37 (11^53 MOD 77 = 44 del MOD 77)37 ... (03^53 MOD 77 = 47 del MOD 77)37 o 07 37 44 44 14 59 22 14 61 44 47. Il destinatario usa la chiave riservata del destinatario per decifrare il messaggio e la chiave pubblica del mittente per autenticarla. |
ESEMPIO: Bob riceve il ciphertext qui sopra, 07 37 44 44 14 59 22 14 61 44 47. Il decipherment è (07^13 MOD 77 = 07 del MOD 77)17 (37^13 MOD 77 = 04 del MOD 77)17 (44^13 MOD 77 = 11 del MOD 77)17 ... (47^13 MOD 77 = 03 del MOD 77)17 o 07 04 11 11 14 26 22 14 17 11 03. Ciò corrisponde al MONDO del messaggio "CIAO" dall'esempio preceding. |
L'uso di un sistema chiave pubblico fornisce un tipo tecnico di nonrepudiation dell'origine. Il messaggio è decifrato usando la chiave pubblica della Alice. Poiché la chiave pubblica è l'inverso della chiave riservata, solo la chiave riservata potrebbe cifrare il messaggio. Poiché Alice è quella unica chi conosce questa chiave riservata, solo potrebbe cifrare il messaggio. Il presupposto di fondo è che la chiave riservata della Alice non si è compromessa e che il cuscinetto chiave pubblico il suo nome realmente appartiene a lei.
In pratica, nessuno userebbero i blocchi del formato presentato qui. L'edizione è che, anche se la n è molto grande, se un carattere per il blocco è cifrato, RSA può essere rotta usando le tecniche usate per rompere le cifre classiche della sostituzione. Ancora, anche se nessun blocco specifico non può essere alterato senza rilevazione (perché il attacker presumibilmente non ha accesso alla chiave riservata), un attacker può riorganizzare i blocchi e cambiare il significato del messaggio.
ESEMPIO: Un General trasmette un messaggio alle sedi che chiede se l'attacco è sopra. Le sedi rispondono con "on" del messaggio cifrato usando una cifra di RSA con un modulo 1,024-bit, ma ogni lettera è cifrata esclusivamente. Un attacker intercetta il messaggio e scambia l'ordine dei blocchi. Quando il General decifra il messaggio, leggerà "NO," l'opposto del plaintext originale. Inoltre, se il attacker sa che le sedi trasmetteranno uno di due messaggi (qui, "NO" o "on"), il attacker può usare una tecnica chiamata "ricerca di andata" o "precomputation" per rompere la cifra. Per questo motivo, il plaintext è riempito solitamente con i dati casuali per comporre un blocco. Ciò può eliminare il problema in avanti di ricerca, perché l'insieme dei plaintexts possibili diventa troppo grande a precompute fattibile. Un General differente trasmette la stessa richiesta nell'esempio di qui sopra. Di nuovo, acquartiera le risposte con "on" del messaggio cifrate usando una cifra di RSA con un modulo 1,024-bit. Ogni lettera è cifrata esclusivamente, ma i primi sei bit di ogni blocco contengono il numero del blocco, gli otto bit seguenti contengono il carattere ed il 1.010 bit restanti contiene i dati casuali. Se il attacker riorganizza i blocchi, il General rileverà che il blocco 2 è arrivato prima del blocco 1 (come conseguenza del numero nei primi sei bit) e li riorganizza. Il attacker anche non può precompute i blocchi determinare quale contiene "la O," perché dovrebbe computare 21010 blocchi, che è informaticamente infeasible. |
Online: 597 users browsing the articles directory
|
|