UPDATE: le conseguenze ci sono, ma sono meno gravi di quanto pensavano...
(http://www.theregister.co.uk/2012/02/21/rsa_crypto_analysis/)
Fino a qualche anno fa, nel corso di Reti I spiegavo qualche cenno di RSA, il sistema di crittografia a chiave pubblica usato "ovunque", per Internet banking, firma digitale etc. Da quando ho cercato di alleggerire un pò il corso non lo faccio più. Qui si trovano le slide che facevo.
Il sistema è strutturato in questo modo: per generare una coppia chiave privata - chiave pubblica si genera una coppia di numeri primi random e molto grandi; questa coppia è nota solo al possessore della chiave privata; la chiave pubblica è il prodotto di questi numeri. In parole poverissime, la sicurezza del marchingegno si basa sul fatto che 1) dato un numero molto grande che sia il prodotto di due numeri primi, trovare questi numeri primi è computazionalmente "exceedingly expensive"; e 2) i numeri primi sono generati in modo sufficientemente random (ovviamente la faccenda è molto più complessa, la cosa veramente complicata è la garanzia aggiuntiva che la conoscenza del testo crittato non permette di escludere a priori nessuna possibile chiave).
Sul New York Times è uscita una notizia interessante. Alcuni ricercatori hanno analizzato un database di chiavi pubbliche RSA e, sembra, che per lo 0.2% di queste chiavi la proprietà 2 non sia verificata. Ciò implicherebbe che "as many as two out of every thousand keys would not be secure". Non si tratterebbe di un errore nell'algoritmo ma nelle implementazioni dell'algoritmo.
Notizie di questo genere vanno prese con le molle. La correttezza della loro analisi e delle loro conclusioni, al momento, non è stata ancora validata da nessuno. Il loro lavoro è stato sottomesso ad una conferenza scientifica e, come accade sempre, è in corso di valutazione da parte di revisori anonimi che faranno di tutto per dimostrare che si sono sbagliati. Per inciso, il fatto che i ricercatori abbiano deciso di rendere pubblica la loro analisi prima che sia stato completato questo processo di valutazione a me, modestissimamente, non sembra una bella cosa.
Le implicazioni pratiche delle loro conclusioni, ammesso e non concesso che abbiano ragione, non mi sono del tutto chiare. Probabilmente non lo sono ancora a nessuno. Una implicazione è certamente di ordine "didattico" (comprensibile a chi ha fatto Reti II): 1) gli algoritmi possono essere teoricamente errati, 2) possono essere implementati in modo errato, 3) il software che realizza le implementazioni può a sua volta essere errato. Il grossissimo problema pratico è il 3, spesso si sono verificati anche i casi 2 e questo sarebbe, appunto, un altro caso 2.
(http://www.theregister.co.uk/2012/02/21/rsa_crypto_analysis/)
Fino a qualche anno fa, nel corso di Reti I spiegavo qualche cenno di RSA, il sistema di crittografia a chiave pubblica usato "ovunque", per Internet banking, firma digitale etc. Da quando ho cercato di alleggerire un pò il corso non lo faccio più. Qui si trovano le slide che facevo.
Il sistema è strutturato in questo modo: per generare una coppia chiave privata - chiave pubblica si genera una coppia di numeri primi random e molto grandi; questa coppia è nota solo al possessore della chiave privata; la chiave pubblica è il prodotto di questi numeri. In parole poverissime, la sicurezza del marchingegno si basa sul fatto che 1) dato un numero molto grande che sia il prodotto di due numeri primi, trovare questi numeri primi è computazionalmente "exceedingly expensive"; e 2) i numeri primi sono generati in modo sufficientemente random (ovviamente la faccenda è molto più complessa, la cosa veramente complicata è la garanzia aggiuntiva che la conoscenza del testo crittato non permette di escludere a priori nessuna possibile chiave).
Sul New York Times è uscita una notizia interessante. Alcuni ricercatori hanno analizzato un database di chiavi pubbliche RSA e, sembra, che per lo 0.2% di queste chiavi la proprietà 2 non sia verificata. Ciò implicherebbe che "as many as two out of every thousand keys would not be secure". Non si tratterebbe di un errore nell'algoritmo ma nelle implementazioni dell'algoritmo.
Notizie di questo genere vanno prese con le molle. La correttezza della loro analisi e delle loro conclusioni, al momento, non è stata ancora validata da nessuno. Il loro lavoro è stato sottomesso ad una conferenza scientifica e, come accade sempre, è in corso di valutazione da parte di revisori anonimi che faranno di tutto per dimostrare che si sono sbagliati. Per inciso, il fatto che i ricercatori abbiano deciso di rendere pubblica la loro analisi prima che sia stato completato questo processo di valutazione a me, modestissimamente, non sembra una bella cosa.
Le implicazioni pratiche delle loro conclusioni, ammesso e non concesso che abbiano ragione, non mi sono del tutto chiare. Probabilmente non lo sono ancora a nessuno. Una implicazione è certamente di ordine "didattico" (comprensibile a chi ha fatto Reti II): 1) gli algoritmi possono essere teoricamente errati, 2) possono essere implementati in modo errato, 3) il software che realizza le implementazioni può a sua volta essere errato. Il grossissimo problema pratico è il 3, spesso si sono verificati anche i casi 2 e questo sarebbe, appunto, un altro caso 2.
Commenti