Cryptography Chiave Pubblico
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
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. |
ciò è un articolo aggiunto da Bill Kuriko