Crittografia RSA

Crittografia RSA , in piena crittografia Rivest-Shamir-Adleman , tipo di crittografia a chiave pubblica ampiamente utilizzata per la crittografia dei dati di posta elettronica e altre transazioni digitali su Internet. RSA prende il nome dai suoi inventori, Ronald L. Rivest, Adi Shamir e Leonard M. Adleman, che l'hanno creato mentre era alla facoltà del Massachusetts Institute of Technology.

La tabella di Vigenère Nella crittografia del testo in chiaro, la lettera cifrata si trova all'intersezione della colonna intestata dalla lettera del testo in chiaro e la riga indicizzata dalla lettera chiave. Per decifrare il testo cifrato, la lettera in chiaro si trova all'inizio della colonna determinata dall'intersezione della diagonale contenente la lettera cifrata e la riga contenente la lettera chiave.Ulteriori informazioni su questo argomento Crittologia: crittografia RSA Lo schema a chiave pubblica più noto è il crittoalgoritmo Rivest – Shamir – Adleman (RSA). In questo sistema un utente sceglie segretamente una coppia di prime ...

Nel sistema RSA di un utente sceglie segretamente una coppia di numeri primi p e q così grande che il prodotto factoring n = p q è ben oltre le capacità di calcolo previsti per la durata delle cifre. A partire dal 2000, gli standard di sicurezza del governo degli Stati Uniti chiamare il modulo per essere 1.024 bit in termini di dimensioni, cioè, p e q hanno ciascuno di essere circa 155 cifre decimali di dimensioni, in modo da nè un numero di circa 310 cifre. Poiché i numeri rigidi più grandi che possono essere attualmente fattorizzati sono solo la metà di questa dimensione e poiché la difficoltà di fattorizzare all'incirca raddoppia per ogni tre cifre aggiuntive nel modulo, si ritiene che i moduli a 310 cifre siano al sicuro dalla scomposizione per diversi decenni.

Avendo scelto p e q , l'utente seleziona un intero arbitrario e meno di n e relativamente primo p - 1 e q - 1, cioè, in modo che 1 è l'unico fattore in comune tra e ed il prodotto ( p - 1) ( q - 1). Questo assicura che ci sia un altro numero d per il quale il prodotto e d lascerà un resto di 1 quando diviso per il minimo comune multiplo di p - 1 e q - 1. Conoscendo p e q , il numero dpuò essere facilmente calcolato utilizzando l'algoritmo euclideo. Se non si conosce p e q , è altrettanto difficile trovare sia posta o d dato l'altro come a fattore n , che è la base per la cryptosecurity dell'algoritmo RSA.

Le etichette d ed e verranno utilizzate per indicare la funzione a cui viene assegnata una chiave, ma poiché le chiavi sono completamente intercambiabili, questa è solo una comodità per l'esposizione. Per implementare un canale segreto utilizzando la versione standard a due chiavi del sistema crittografico RSA, l'utente A pubblicherebbe e e n in una directory pubblica autenticata ma manterrebbe d segreto. Chiunque desideri inviare un messaggio privato ad A lo codificherà in numeri inferiori a n per poi crittografarlo utilizzando una formula speciale basata su e e n . A può decifrare un tale messaggio in base alla conoscenza d, ma la presunzione - e la prova finora - è che per quasi tutti i cifrari nessun altro può decifrare il messaggio a meno che non possa anche fattorizzare n .

Allo stesso modo, per implementare un canale di autenticazione, A avrebbe pubblicato D e n e mantenere e segreto. Nell'uso più semplice di questo canale per la verifica dell'identità, B può verificare che egli è in comunicazione con A , cercando nella directory per trovare una s’chiave di decrittazione d e lo invio di un messaggio da cifrare. Se ottiene indietro un codice che decifra il suo messaggio di sfida usando d per decriptarlo, saprà che con ogni probabilità è stato 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" crittografata. Questa è una funzione pubblicamente nota 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 anche la modifica di un bit nel messaggio può cambiare , in modo criptosicuro, metà dei bit nel digest. Per cryptosecure si intende che è impossibile dal punto di vista computazionale per chiunque trovare un messaggio che produrrà un digest preassegnato e altrettanto difficile trovare un altro messaggio con lo stesso digest di uno conosciuto. Per firmare un messaggio, che potrebbe anche non essere tenuto segreto, A crittografa il digest con il segreto e, che aggiunge al messaggio. Chiunque può quindi decrittografare 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 la cifra, poiché solo A conosceva e e quindi avrebbe potuto crittografare il messaggio.

Finora, tutti i sistemi di crittografia a due chiavi proposti esigono un prezzo molto alto per la separazione del canale di privacy o segretezza dal canale di autenticazione o firma. La quantità notevolmente aumentata di calcolo coinvolta nel processo di crittografia / decrittografia asimmetrica riduce in modo significativo la capacità del canale (bit al secondo delle informazioni sui messaggi comunicate). Per circa 20 anni, per sistemi comparabilmente sicuri, è stato possibile raggiungere un throughput da 1.000 a 10.000 volte superiore per 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 viene utilizzato un algoritmo a due chiavi 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.