Crittografia RSA, in piena crittografia Rivest-Shamir-Adleman, tipo di crittografia a chiave pubblica ampiamente utilizzato per la crittografia dei dati di e-mail e altre transazioni digitali su Internet. RSA è chiamato per i suoi inventori, Ronald L. Rivest, Adi Shamir, e Leonard M. Adleman, che ha creato mentre sulla facoltà presso il Massachusetts Institute of Technology.,
Nel sistema RSA un utente sceglie segretamente una coppia di numeri primi p e q così grandi che il factoring del prodotto n = pq è ben oltre le capacità di calcolo previste per la durata dei cifrari. A partire dal 2000, U. S., gli standard di sicurezza del governo richiedono che il modulo abbia una dimensione di 1.024 bit—cioè, p e q devono avere ciascuno una dimensione di circa 155 cifre decimali, quindi n è approssimativamente un numero di 310 cifre. Poiché i più grandi numeri duri che possono attualmente essere fattorizzati sono solo la metà di queste dimensioni, e poiché la difficoltà di factoring raddoppia approssimativamente per ogni ulteriore tre cifre nel modulo, si ritiene che i moduli a 310 cifre siano al sicuro dal factoring per diversi decenni.,
Avendo scelto p e q, l’utente seleziona un intero arbitrario e inferiore a n e relativamente primo a p − 1 e q − 1, cioè, in modo che 1 sia l’unico fattore in comune tra e e il prodotto (p − 1)(q − 1). Questo assicura che c’è un altro numero d per il quale il prodotto ed lascerà un resto di 1 quando diviso per il minimo comune multiplo di p − 1 e q − 1. Con la conoscenza di p e q, il numero d può essere facilmente calcolato utilizzando l’algoritmo Euclideo., Se uno non conosce p e q, è altrettanto difficile trovare e o d dato l’altro per quanto riguarda il fattore n, che è la base per la crittosicurezza dell’algoritmo RSA.
Le etichette d ed e saranno utilizzate per indicare la funzione a cui viene inserita una chiave, ma poiché le chiavi sono completamente intercambiabili, questa è solo una comodità per l’esposizione. Per implementare un canale di segretezza utilizzando la versione standard a due chiavi del cryptosystem RSA, l’utente A pubblicherebbe e e n in una directory pubblica autenticata ma manterrà d segreto., Chiunque voglia inviare un messaggio privato A codificare in i numeri minori di n e quindi crittografare utilizzando una formula speciale a base di e e n. Un grado di decifrare un messaggio basato sulla conoscenza di d, ma la presunzione e l’evidenza finora—è che per quasi tutti i codici nessun altro è in grado di decifrare il messaggio, a meno che egli può anche fattore di n.
Allo stesso modo, per implementare un canale di autenticazione, A pubblicherebbe d e n e manterrà e segreto., Nell’uso più semplice di questo canale per la verifica dell’identità, B può verificare che sia in comunicazione con A cercando nella directory per trovare la chiave di decrittazione di A d e inviandogli un messaggio da crittografare. Se recupera un codice che decrittografa il suo messaggio di sfida usando d per decrittografarlo, saprà che è stato con ogni probabilità creato da qualcuno che conosce e e quindi che l’altro comunicante è probabilmente A. La firma digitale di un messaggio è un’operazione più complessa e richiede una funzione di “hashing” di cryptosecure., Questa è una funzione nota pubblicamente che mappa qualsiasi messaggio in un messaggio più piccolo—chiamato digest—in cui ogni bit del digest dipende da ogni bit del messaggio in modo tale che cambiare anche un bit nel messaggio sia suscettibile di cambiare, in modo criptosecurato, metà dei bit nel digest. Con cryptosecure si intende che è computazionalmente impossibile per chiunque trovare un messaggio che produrrà un digest preassegnato e altrettanto difficile trovare un altro messaggio con lo stesso digest di uno noto., Per firmare un messaggio-che potrebbe non essere nemmeno necessario mantenere segreto – A crittografa il digest con il segreto e, che aggiunge al messaggio. Chiunque può quindi decifrare il messaggio utilizzando la chiave pubblica d per recuperare il digest, che può anche calcolare indipendentemente dal messaggio. Se i due sono d’accordo, deve concludere che A ha originato il codice, poiché solo A conosceva e e quindi avrebbe potuto crittografare il messaggio.
Finora, tutti i criptosistemi a due chiavi proposti esigono un prezzo molto alto per la separazione del canale privacy o segretezza dal canale di autenticazione o firma., La quantità notevolmente aumentata di calcolo coinvolto nel processo di crittografia/decrittografia asimmetrica riduce significativamente la capacità del canale (bit al secondo di informazioni sui messaggi comunicati). Per circa 20 anni, per sistemi relativamente sicuri, è stato possibile ottenere un throughput da 1.000 a 10.000 volte superiore per gli algoritmi a chiave singola rispetto a quelli a due chiavi. Di conseguenza, l’applicazione principale della crittografia a due chiavi è nei sistemi ibridi., In tale sistema un algoritmo a due chiavi viene utilizzato per l’autenticazione e le firme digitali o per scambiare una chiave di sessione generata casualmente da utilizzare con un algoritmo a chiave singola ad alta velocità per la comunicazione principale. Alla fine della sessione questa chiave viene scartata.