207 Shares 8197 views

RSA-crittografia. Descrizione e implementazione dell'algoritmo RSA

RSA-crittografia è uno dei primi sistemi crittografici a chiave pubblica pratici che è ampiamente usato per la trasmissione sicura dei dati. La sua principale differenza da servizi simili è che la chiave di crittografia è aperta e diversa dalla chiave di decrittazione, che viene tenuto segreto. La tecnologia RSA , questa asimmetria si basa sulla difficoltà pratica di factoring la riproduzione di due grandi numeri primi (il problema di factoring).

La storia della creazione

RSA Il nome è composto dalle lettere iniziali dei cognomi Rivest, Shamir e Adleman – gli scienziati che per primi pubblicamente descritti questi algoritmi di crittografia nel 1977. Klifford Koks, un matematico inglese, che ha lavorato per i servizi segreti britannici, i primi a sviluppare un sistema equivalente nel 1973, ma non è stato declassificato fino al 1997

utente RSA crea e poi pubblica la chiave pubblica sulla base di due grandi numeri primi insieme al valore ausiliario. I numeri primi dovrebbero essere tenute segrete. Chiunque può utilizzare la chiave pubblica per crittografare un messaggio, ma se è abbastanza grande, allora solo una persona con conoscenza dei numeri primi in grado di decodificare il messaggio. RSA divulgazione crittografia è noto come il problema principale oggi è una discussione aperta su come un meccanismo affidabile.

algoritmo RSA è relativamente lento, per cui non è più ampiamente usato per direttamente crittografare all'utente. Nella maggior parte dei casi, questo metodo viene utilizzato per la trasmissione nella chiave condivisa cifrata per una chiave di cifratura simmetrica, che a sua volta può eseguire operazioni di crittografia e decrittografia rinfusa ad una velocità molto più elevata.

Quando c'era un sistema di crittografia nella sua forma attuale?

L'idea di chiave di crittografia asimmetrica attribuita a Diffie e Hellman, che ha pubblicato il concetto nel 1976, l'introduzione di firme digitali, e cercando di applicare la teoria dei numeri. La loro formulazione utilizza una chiave segreta condivisa generato da un certo numero di elevamento a potenza modulo un numero primo. Tuttavia, hanno lasciato aperta la questione della realizzazione di questa funzione, in quanto i principi di factoring non erano ben chiare al momento.

Rivest, Adi Shamir e Adleman del MIT hanno fatto diversi tentativi nel corso degli anni per la creazione di una funzione a senso unico che è difficile da decodificare. Rivest e Shamir (come gli informatici) hanno proposto molte funzioni potenziali, mentre Adleman (come la matematica) per cercare il "punti deboli" dell'algoritmo. Hanno usato un sacco di approcci e, infine, sviluppare un sistema finale, ora conosciuto come RSA in aprile 1977.

Firma elettronica e la chiave pubblica

firma digitale o firma elettronica, è parte integrante dei tipi di documenti elettronici. E 'formato a un certo modifiche dei dati crittografici. Con questo attributo possibile per verificare l'integrità del documento, la riservatezza, nonché di determinare che lo possiede. In effetti, in alternativa al normale firma standard.

Questo sistema di crittografia (RSA-criptato) offre la chiave pubblica, a differenza simmetrica. Il suo principio di funzionamento è che i due tasti diversi sono usati – chiuso (criptato) ed esterno. Il primo è utilizzato per generare la firma digitale e quindi in grado di decifrare il testo. In secondo luogo – per la crittografia reale e firma elettronica.

Uso di firme per capire meglio la crittografia RSA, un esempio di che può essere ridotto come un segreto normale "chiuso da occhi indiscreti," il documento.

Qual è l'algoritmo?

algoritmo RSA si compone di quattro fasi: la generazione di chiavi, la distribuzione, crittografia e la decrittografia. Come già accennato, RSA-crittografia include una chiave pubblica e una chiave privata. Esterna può essere noto a tutti e viene utilizzata per crittografare i messaggi. La sua essenza sta nel fatto che i messaggi cifrati con la chiave pubblica possono essere decifrati solo in un determinato periodo di tempo utilizzando una chiave segreta.

Per motivi di sicurezza, gli interi da scegliere a caso e siano identiche dimensioni, ma differiscono in lunghezza da pochi numeri per rendere più difficile fattorizzazione. stesso numero stesso può essere efficacemente trovato da un test nella loro semplicità, in modo che la crittografia delle informazioni deve essere necessariamente complicato.

La chiave pubblica è costituito dal modulo e esponente pubblico. Unità interna e consiste in una figura privata, che deve essere mantenuta segreta.

la crittografia RSA di file e di debolezza

Tuttavia, ci sono una serie di semplici meccanismi di hacking RSA. Quando crittografia con valori bassi e piccoli di numeri di codice può essere facilmente aperto, se il testo cifrato radice selezionamento sugli interi.

Dal momento che l'RSA-crittografia è un algoritmo deterministico (vale a dire, non ha alcun componente casuale), un utente malintenzionato può lanciare con successo il testo attacco aperto selezionato contro il sistema di crittografia mediante la crittografia probabili testi in chiaro sotto la chiave pubblica e controlli se sono uguali testo cifrato. Semanticamente crittografico sicuro è chiamata nel caso in cui un attaccante non può distinguere tra i due cifratura gli uni dagli altri, anche se conosce i testi rilevanti nella forma estesa. Come descritto in precedenza, RSA altri servizi senza imbottitura non è semanticamente sicuro.

algoritmi aggiuntivi per la crittografia e la protezione

Per evitare i suddetti problemi, nell'attuazione pratica di RSA sono generalmente inseriti in una qualche forma di strutturata, riempimento randomizzato prima della crittografia. Questo assicura che il contenuto non rientra nell'intervallo di plaintexts insicuri, e che questo messaggio non può essere risolto tramite la selezione casuale.

Sicurezza RSA crittografico e la crittografia basata su due problemi matematici: il problema della fattorizzazione di grandi numeri e il problema reale RSA. L'informativa completa del testo cifrato e la firma del RSA è considerato inammissibile sul presupposto che entrambi questi problemi non possono essere risolti collettivamente.

Tuttavia, con la possibilità di recuperare fattori primi, un utente malintenzionato può calcolare l'esponente segreto della chiave pubblica e quindi decifrare il testo utilizzando la procedura standard. Nonostante il fatto che oggi nessun metodo esistente per fattorizzazione di grandi numeri in un computer classico non può essere trovato, non è stato dimostrato che non esiste.

automazione

Lo strumento, chiamato Yafu, può essere utilizzato per ottimizzare il processo. Automation in YAFU è una funzione avanzata che combina algoritmi di fattorizzazione di metodologia intellettuale e adattivo che riduce al minimo il tempo per trovare i fattori di numeri di input arbitrari. La maggior parte delle implementazioni multithread algoritmo consente Yafu uso pieno di multi o molti processori multi-core (compresi SNFS, SIQS e ECM). Prima di tutto, è controllata da command line. Il tempo trascorso alla ricerca di fattore di crittografia Yafu utilizzando un computer convenzionale, può essere ridotto a secondi 103.1746. Lo strumento elabora il binario capacità di 320 bit o più. Si tratta di un software molto complesso che richiede una certa quantità di competenze tecniche per installare e configurare. Così, RSA-crittografia può essere vulnerabile C.

Tentativi di hacking in tempi recenti

Nel 2009, Bendzhamin Mudi con chiave RSA-512 bit stava lavorando a decifrare kriptoteksta per 73 giorni, utilizzando solo software ben noto (GGNFS) e il desktop media (dual-core Athlon 64 a 1900 MHz). Come dimostra l'esperienza, richiesto poco meno del 5 GB di disco e circa 2,5 gigabyte di memoria per il processo di "vagliatura".

A partire dal 2010, il maggior numero è stato scomposto RSA 768 bit lunghi (232 cifre decimali, o RSA-768). La sua diffusione è durato 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 possono diventare inaffidabili in un futuro prossimo o anche di più può essere violata attaccanti molto ben finanziati. Tuttavia, pochi potrebbero sostenere che le chiavi 4096 bit possono anche essere comunicati in un prossimo futuro.

prospettive

Pertanto, di regola, si presume che RSA è sicuro se i numeri sono abbastanza grandi. Se il numero di base di 300 bit o meno lunghi, e la firma digitale testo cifrato può essere scomposta in poche ore su un personal computer utilizzando il software disponibile già di dominio pubblico. Una chiave a 512 bit di lunghezza, come illustrato, possono essere aperti come già nel 1999, con l'uso di poche centinaia di computer. Al giorno d'oggi è possibile in poche settimane con un hardware a disposizione del pubblico. Pertanto, è possibile che in buduschembudet facilmente descritto RSA-cifrato sulle dita, e il sistema sarà irrimediabilmente obsoleti.

Ufficialmente, nel 2003, è stata messa in discussione la sicurezza delle chiavi a 1024 bit. Attualmente, è consigliabile avere una lunghezza minima di 2048 bit.