I computer sempre più veloci e le nuove sfide del calcolo quantistico stanno mettendo un po' di pensieri alla sicurezza informatica. Mi riferisco in particolare a RSA che pone la sua sicurezza nella difficoltà di fattorizzare semiprimi molto grandi, ma grandi quanto? La chiave più grande creata da RSA, fonti Internet, è di 4096 bit e ci sono voluti due mesi di calcolo per crearla. E' palese che il limite di questo metodo sta nella grandezza delle chiavi.
Io vorrei creare una discussione su un nuovo progetto, già sperimentato e funzionante ma ancora sconosciuto, su una evoluzione del sistema RSA.
Quello che io descriverò è un metodo di fattorizzazione a tempo zero su grandi semiprimi mi riferisco a semiprimi che sono 3 volte tanto di quello riportato sopra e cioè 13000 bit. Può darsi che pensiate sia una bufala ma vi posso garantire che è tutto vero e dimostrabile. Anzi, c'è la possibilità di provare sul vostro computer quanto verrà descritto sotto con uno script in Python aperto, gratuito, e pienamente ispezionabile.
Io vorrei creare una discussione su un nuovo progetto, già sperimentato e funzionante ma ancora sconosciuto, su una evoluzione del sistema RSA.
Quello che io descriverò è un metodo di fattorizzazione a tempo zero su grandi semiprimi mi riferisco a semiprimi che sono 3 volte tanto di quello riportato sopra e cioè 13000 bit. Può darsi che pensiate sia una bufala ma vi posso garantire che è tutto vero e dimostrabile. Anzi, c'è la possibilità di provare sul vostro computer quanto verrà descritto sotto con uno script in Python aperto, gratuito, e pienamente ispezionabile.
Un Nuovo Algoritmo per la Fattorizzazione di Semiprimi a Tempo Zero
Introduzione
- Contesto: I semiprimi, ovvero il prodotto di due numeri primi, sono ancora un tassello importante della crittografia in quanto la loro fattorizzazione è ancora uno dei nodi della matematica da sciogliere. Attualmente si usano algoritmi come L'ECM (Elliptic Curve Method) che è un algoritmo di fattorizzazione probabilistico ideato da H.W. Lenstra Jr. nel 1985, e NFS (Number Field Sieve – NFS) che si basa sulla ricerca di relazioni tra numeri "lisci" (con pochi fattori primi) in un corpo di numeri. Naturalmente anche questi algoritmi sono impotenti di fronte ai grandi semiprimi e la loro capacità di fattorizzazione si abbassa mano a mano che il semiprimo diventa più grande. Il punto debole potrebbe essere rappresentato con l’avvento dei computer quantistici, che con la loro capacità di calcolo potrebbero arrivare a raggiungere quello che noi adesso riteniamo sia un grande semiprimo, e cioè 3200 bit. Se mi posso esprimere in grandezza, un semiprimo a 5000 bit sarebbe molto complicato anche per gli stessi computer quantistici.
- Obiettivo: E’ riuscire a creare un sistema di criptazione utilizzando fattori primi molto grandi per affrontare la sfida dei computer quantistici
Funzionamento dell’Algoritmo
Quello di cui vi voglio parlare oggi è un nuovo sistema di fattorizzazione a cui ho dato il nome di GC57, che riesce a fattorizzare a tempo zero semiprimi 2,3,4 volte più grandi degli attuali semiprimi che oggi vengono ritenuti sicuri, e cioè semiprimi di 13000 bit. Questo sistema di fattorizzazione sfrutta una proprietà particolare, e cioè la proprietà degli interi, o proprietà del resto. L’intero del numero ottenuto tramite il massimo divisore comune Euclideo, è sempre un fattore primo del semiprimo. Questo fino a un certo campo che può andare da 2^25 fino e oltre a 2^500. Mi spiego meglio: La chiave creata può fattorizzare una quantità di semiprimi di qualsiasi grandezza purché i due fattori primi si trovino dentro questo campo. Per esprimerlo nella forma matematica posso mostrare quanto segue:- chiave
- campo=2^500
- Fattore primo p = x+(>1 <2^500) qualsiasi primo entro il campo di 2^500
- Fattore primo q = y+(>1 <2^500) qualsiasi primo entro il campo di 2^500
- Semiprimo n=pq
Funzionamento del Programma di Criptazione
- Creazione del Database di Semiprimi. Questa operazione è importante per mantenere la fattorizzazione a tempo zero in quanto per trovare due fattori primi di dimensione 6000 bit e oltre, il sistema rimarrebbe impegnato per alcuni minuti obbligando il programma a rallentare. Questo database viene memorizzato sul computer e tenuto a disposizione del programma che ne caricherà uno a caso tra quelli memorizzati. Inoltre questa prassi agevola la diversificazione dei semiprimi utilizzati come per esempio tenere più semiprimi di grandezze diverse. Sarà poi il programma a distinguere quale chiave recuperare per fattorizzare il semiprimo selezionato
- La chiave, o le chiavi, se utilizziamo più grandezze di semiprimi, si trovano su una chiavetta usb che dovrà avere anche la persona che riceve i messaggi. Questo porta anche un altro vantaggio e cioè, se chi spedisce i messaggi dispone di tutte le chiavi mentre chi li riceve dispone solo di alcune chiavi, questi messaggi possono essere decifrati solo da chi ha la chiave giusta. Inoltre diventa molto conveniente quando si utilizza solo una cartella condivisa, o un cloud condiviso, perché ogni messaggio viene identificato per come è stato creato, e cioè da che tipo di semiprimo è stato creato.
- Quando si crea un messaggio, il programma carica un semiprimo, come ho riportato sopra, e lo fattorizza a tempo zero. Dal fattore primo di questo semiprimo ricava l’impronta digitale(SHA 256) e la passa alla codifica AES 256 che si occuperà di creare la chiave di codifica per cifrare il messaggio. Il messaggio cifrato verrà poi salvato nella cartella condivisa, o sul cloud condiviso, con all’interno il testo, l’impronta digitale criptata e il semiprimo.
Fase 2, la Decriptazione - Il messaggio viene caricato dalla persona a cui è destinato e tramite la stessa chiave utilizzata nella fase di criptazione, anch’essa depositata su una usb, viene estratto il semiprimo e fattorizzato a tempo zero, che poi viene passato all’SHA per rilevare l’impronta digitale con la quale AES decripterà il messaggio. Il messaggio verrà poi stampato sulla stampante privata, preferibilmente collegata tramite cavo, per poi essere cancellato dalla cartella o dal cloud condivisi.
Confronto con RSA
- Velocità: RSA è relativamente lento rispetto agli algoritmi di crittografia simmetrica. Per questo motivo, viene generalmente utilizzato solo per scambiare chiavi simmetriche e per firmare digitalmente documenti, non per la crittografia di grandi quantità di dati. IL GC57 è molto veloce sia nel fattorizzare a tempo Zero, sia nel codificare grandi dati con gli algoritmi SHA, AES
- Sicurezza RSA basa la sua sicurezza sulla difficoltà di fattorizzare numeri semiprimi grandi. Anche il GC57 si basa su questa difficoltà ma adotta un sistema che gli permette di fattorizzare semiprimi molto più grandi rispetto a RSA
Conclusioni
- Il futuro dei computer quantistici potrebbe minare la sicurezza informatica di RSA. Per questo motivo ritengo che questo nuovo metodo di fattorizzazione a tempo zero su semiprimi che vanno oltre i 10000 bit, possa alzare l’asticella di difficoltà nel cercare di fattorizzarli anche sfruttando la super velocità quantistica
- Implicazioni: Nuovi algoritmi su chiavi molto grandi
- Sfide Future: Questo progetto è solo all’inizio e si presenta come una novità assoluta per la ricerca e lo sviluppo di nuovi metodi sulla sicurezza.