/ / Crittografia RSA. Descrizione e implementazione dell'algoritmo RSA

Crittografia RSA. Descrizione e implementazione dell'algoritmo RSA

La crittografia RSA è una delle primepratici sistemi crittografici a chiave pubblica, ampiamente utilizzati per la trasmissione sicura dei dati. La sua principale differenza rispetto a servizi simili è che la chiave di crittografia è pubblica e differisce dalla chiave di decrittografia, che è tenuta segreta. Nella tecnologia RSA, questa asimmetria si basa sulla complessità pratica di fattorizzare due grandi numeri primi (problema di factoring).

Crittografia RSA

Storia della creazione

Il nome RSA è costituito dalle lettere iniziali dei cognomiRivest, Shamir e Adleman sono gli scienziati che per primi hanno descritto pubblicamente tali algoritmi di crittografia nel 1977. Clifford Cox, un matematico inglese che ha lavorato per i servizi di intelligence britannici, ha sviluppato per la prima volta un sistema equivalente nel 1973, ma non è stato declassificato fino al 1997.

L'utente RSA crea e quindi pubblicauna chiave pubblica basata su due grandi numeri primi insieme a un valore ausiliario. I numeri primi dovrebbero essere tenuti segreti. Chiunque può utilizzare la chiave pubblica per crittografare un messaggio, ma se è abbastanza grande, solo chi conosce i numeri primi può decodificare il messaggio. La divulgazione della crittografia RSA è nota come il problema principale: oggi c'è una discussione aperta sull'affidabilità del meccanismo.

algoritmi di crittografia

RSA è un algoritmo relativamente lento,per questo motivo, non è così ampiamente utilizzato per la crittografia diretta dei dati dell'utente. L'utilizzo più comune di questo metodo è crittografare le chiavi condivise per una chiave di crittografia simmetrica, che a sua volta può eseguire operazioni di crittografia e decrittografia in blocco a una velocità molto più elevata.

Quando è apparso il criptosistema nella sua forma moderna?

L'idea di un sistema crittografico a chiave asimmetricaattribuito a Diffie e Hellman, che pubblicarono il concetto nel 1976 introducendo le firme digitali e tentando di applicare la teoria dei numeri. La loro formulazione utilizza una chiave segreta condivisa generata dall'esponenziazione di un numero modulo un numero primo. Tuttavia, hanno lasciato aperto il problema di implementare questa funzione, poiché i principi del factoring non erano ben compresi all'epoca.

Rivest, Adi Shamir e Adleman nel MassachusettsL'Institute of Technology ha fatto diversi tentativi durante l'anno per creare una funzione unidirezionale difficile da decodificare. Rivest e Shamir (come scienziati informatici) hanno proposto molte potenziali funzioni, mentre Adleman (come matematico) ha cercato punti deboli nell'algoritmo. Hanno adottato molti approcci e hanno finito per sviluppare quello che ora è noto come RSA nell'aprile 1977.

crittografia delle informazioni

EDS e chiave pubblica

Firma digitale elettronica, o EDS,è parte integrante dei documenti di tipo elettronico. Si forma quando un certo cambiamento crittografico nei dati. Utilizzando questo attributo, è possibile verificare l'integrità del documento, la sua riservatezza e anche stabilire chi ne è il proprietario. In realtà, questa è un'alternativa alla solita firma standard.

Questo crittosistema (crittografia RSA) offrechiave pubblica, come differisce da simmetrica. Il principio del suo funzionamento è che vengono utilizzate due chiavi diverse: privata (crittografata) e anche pubblica. Il primo viene utilizzato per generare un EDS e successivamente per poter decifrare il testo. Il secondo è per l'effettiva crittografia e verifica dell'EDS.

L'uso di una firma consente una migliore comprensione della crittografia RSA, un esempio della quale può essere citato come un normale documento classificato "fuori da occhi indiscreti".

Qual è l'essenza dell'algoritmo?

L'algoritmo RSA si compone di quattro fasi:generazione delle chiavi, loro distribuzione, cifratura e decifratura. Come già affermato, la crittografia RSA include una chiave pubblica e una chiave privata. Open può essere conosciuto da tutti e viene utilizzato per crittografare i messaggi. La sua essenza risiede nel fatto che i messaggi crittografati utilizzando una chiave pubblica possono essere decifrati solo entro un certo periodo di tempo utilizzando una chiave segreta.

esempio di crittografia rsa

Per motivi di sicurezza, i numeri interi dovrebbero esseresono selezionati casualmente e hanno le stesse dimensioni, ma differiscono in lunghezza di diverse cifre per rendere più difficile la fattorizzazione. I numeri identici possono essere trovati efficacemente utilizzando un test per la loro semplicità, quindi la crittografia delle informazioni deve necessariamente diventare più complicata.

La chiave pubblica è costituita da un modulo e da un esponente pubblico. Private è costituito da un modulo e da un indicatore privato, che devono essere mantenuti segreti.

Crittografia file RSA e punti deboli

Tuttavia, ci sono una serie di meccanismi di hacking.semplice RSA. Nella crittografia con valori bassi e valori numerici bassi, la cifratura può essere facilmente violata scegliendo la radice del testo cifrato sugli interi.

crittografia rsa c

Poiché la crittografia RSA èCon un algoritmo deterministico (cioè, non ha componenti casuali), un utente malintenzionato può lanciare con successo un attacco di testo in chiaro selezionato contro un sistema crittografico crittografando il probabile testo in chiaro sotto la chiave pubblica e controllando se sono uguali al testo cifrato. Un crittosistema è detto semanticamente sicuro se un attaccante non è in grado di distinguere due cifre l'una dall'altra, anche se conosce i testi corrispondenti nella forma divulgata. Come descritto sopra, RSA non è semanticamente sicuro se non integrato con altri servizi.

Algoritmi di crittografia e protezione aggiuntivi

Per evitare i problemi di cui sopra, quandoLe implementazioni pratiche di RSA in genere incorporano una forma di riempimento casuale strutturato prima della crittografia. Ciò garantisce che il contenuto non rientri nell'intervallo di testo in chiaro non sicuro e che il messaggio non possa essere rivelato per caso.

crittografia dei file rsa

Sicurezza e crittografia del sistema crittografico RSAl'informazione si basa su due problemi matematici: il problema della fattorizzazione dei grandi numeri e lo stesso problema RSA. La completa divulgazione del testo cifrato e dell'EDS in RSA è considerata inaccettabile supponendo che entrambi questi problemi non possano essere risolti insieme.

Tuttavia, a causa della possibilità di recuperosemplici fattori, un utente malintenzionato può calcolare una cifra segreta dalla chiave pubblica e quindi decifrare il testo utilizzando una procedura standard. Nonostante il fatto che oggi non sia stato trovato alcun metodo esistente per fattorizzare grandi numeri su un computer classico, non è stato dimostrato che non esista.

automazione

Uno strumento chiamato Yafu può essereutilizzato per ottimizzare questo processo. L'automazione in YAFU è una funzionalità moderna che combina algoritmi di fattorizzazione in una metodologia intelligente e adattiva che riduce al minimo il tempo per trovare fattori di numeri di input arbitrari. La maggior parte delle implementazioni dell'algoritmo sono multithread, consentendo a Yafu di sfruttare appieno i processori multi o multi-core (inclusi SNFS, SIQS ed ECM). Prima di tutto, è uno strumento da riga di comando gestito. Il tempo impiegato per trovare il fattore di crittografia utilizzando Yafu su un normale computer può essere ridotto a 103,1746 secondi. Lo strumento elabora file binari con una capacità di 320 bit o più. È un software molto complesso che richiede una certa abilità tecnica per l'installazione e la configurazione. Pertanto, la crittografia RSA C potrebbe essere vulnerabile.

crittografia dito rsasa

Tentativi di hacking in tempi moderni

Nel 2009 Benjamin Moody usa bitLa chiave RSA-512 ha lavorato alla decrittografia del criptotesto per 73 giorni utilizzando solo software noto (GGNFS) e un computer desktop medio (Athlon64 dual-core a 1900 MHz). Come dimostrato da questa esperienza, ci sono voluti poco meno di 5 gigabyte di disco e circa 2,5 gigabyte di RAM per il processo di "setacciatura".

A partire dal 2010, il numero RSA fattorizzato più grande era lungo 768 bit (232 cifre decimali o RSA-768). La sua divulgazione è durata due anni su diverse centinaia di computer contemporaneamente.

In pratica, le chiavi RSA sono lunghe -tipicamente da 1024 a 4096 bit. Alcuni esperti ritengono che le chiavi a 1024 bit potrebbero diventare inaffidabili nel prossimo futuro, o addirittura essere già compromesse da un aggressore abbastanza ben finanziato. Tuttavia, pochi sosterrebbero che le chiavi a 4096 bit potrebbero essere rivelate anche nel prossimo futuro.

prospettive

Pertanto, si presume generalmente che RSAè sicuro se i numeri sono abbastanza grandi. Se il numero principale è pari o inferiore a 300 bit, il testo cifrato e l'EDS possono essere scomposti in poche ore su un personal computer utilizzando un software già disponibile gratuitamente. È stato dimostrato che le chiavi a 512 bit possono essere craccate già nel 1999 utilizzando diverse centinaia di computer. Questo è possibile in questi giorni per diverse settimane utilizzando hardware disponibile pubblicamente. Pertanto, è del tutto possibile che in futuro la crittografia RSA sarà facilmente rivelata sulle dita e il sistema diventerà irrimediabilmente obsoleto.

Ufficialmente nel 2003 è stata messa in discussione la sicurezza delle chiavi a 1024 bit. Attualmente si consiglia di avere una lunghezza di almeno 2048 bit.