RSA è il nome di un famoso e ancora molto utilizzato crittosistema asimmetrico a chiavi pubbliche sviluppato nel 1977 da Ronald Rivest, Adi Shamir e Leonard Adleman. L’algoritmo di RSA utilizza due chiavi distinte per cifrare e decifrare i messaggi scambiati. Tali chiavi dispongono di una particolarità, una di esse (la chiave utilizzata per cifrare i messaggi) è solitamente pubblica, resa disponibile dalla persona interessata a ricevere il messaggio segreto (ad esempio un server). Al contrario, la chiave utilizzata per decifrare il messaggio viene custodita dallo stesso destinatario.

Quando Alice deciderà di inviare un messaggio a Bob, essa dovrà utilizzare la chiave pubblica resa disponibile da Bob al fine di cifrare il messaggio. Bob utilizzerà invece la sua chiave privata per decifrare il messaggio cifrato e ottenere il testo in chiaro inviato da Alice. Le due chiavi sono tra loro indipendenti, questo significa non è in alcun modo possibile, disponendo di una delle due chiavi, risalire alla sua controparte.

Funzione One-Way

Le funzioni di cifratura e decifratura di RSA sono funzioni one-way (o unidirezionali), tali funzioni sono basate su problemi matematici di difficile risoluzione. In crittografia, un problema matematico “difficile da risolvere” è un problema che non si risolve in un tempo polinomiale.

Nelle prossime pagine esamineremo il funzionamento del cifrario RSA, dalla generazione delle chiavi, al processo di cifratura e decifratura del messaggio, fino ai possibili attacchi a cui è sensibile.