Domanda Vantaggi nell'usare più algoritmi di crittografia

Stato
Discussione chiusa ad ulteriori risposte.

OnionTool

Utente Electrum
5 Agosto 2019
170
20
54
112
Quali vantaggi ho nell'usare più algoritmi es. AES+Serpent?
Quali combinazioni sono più sicure?
Quale hash è più sicuro?
Quali sono gli algoritmi di crittografia più sicuri e quelli consigliati per l'uso quotidiano?
Come funziona XTS?
 
  • Mi piace
Reazioni: Cirone
Ultima modifica:
Mettendo piu' algoritmi in cascata aumenti di parecchio la sicurezza (purche' abbiano chiavi diverse), ogni tentativo deve provare a decriptare finche' arriva in fondo, non puo' sapere se la chiave per l'algoritmo piu' esterno e' corretta oppure no finche' non si arriva al plaintext (quindi con tutte le chiavi giuste).
Quale sia il piu' sicuro e' difficile a dirsi, si potrebbe scoprire una falla che riduce il tempo di cracking in un qualunque cifrario. Puoi considerare i finalisti di AES come sicuri allo stato attuale, questo include Serpent e Twofish, Rijndael ha vinto (diventando poi AES per le versioni con blocksize a 128 bit) perche' piu' veloce e piu' facile da implementare su hardware, mentre gli altri magari erano anche piu' sicuri ma piu' lenti/scomodi e AES e' gia' molto sicuro.

Per gli hash e' diverso, da SHA2 in poi non sono mai stati trovati attacchi critici (tipo per trovare prima una collisione come con MD5 o SHA1). Se vuoi allinearti al nuovo standard usa Keccak (SHA3), ma SHA256 (SHA2) e' sufficiente.

Per l'uso quotidiano AES e' piu' che sufficiente, anzi e' consigliato perche' e' molto piu' veloce degli altri perche' ormai quasi tutti i processori moderni hanno istruzioni speciali solo per velocizzare AES.

XTS e' una modalita' ideata per gli hard disk, e' ottimizzata per l'accesso in posizione random ed i blocchi non dipendono da quelli adiacenti. Sulla meccanica interna ti rimando al white paper.

PS: se e' per VeraCrypt, qualunque configurazione scegli e' sicura, preoccupati solo di scegliere una buona password (da quella vengono derivate le chiavi).
 
@onionTool

L'unico sicuro è il cifrario di Vernam


Vernam e' l'unico matematicamente sicuro ora e per sempre, pero' ha limiti enormi e non e' applicabile nella stragrande maggioranza dei casi. Puoi usarlo con un tuo amico scambiando 1 GB di chiave su pen-drive ma per il resto a meno che tu non sia una spia del KGB col blocco note da bruciare sara' poco utile.
 
  • Mi piace
Reazioni: OnionTool
Mettendo piu' algoritmi in cascata aumenti di parecchio la sicurezza (purche' abbiano chiavi diverse), ogni tentativo deve provare a decriptare finche' arriva in fondo, non puo' sapere se la chiave per l'algoritmo piu' esterno e' corretta oppure no finche' non si arriva al plaintext (quindi con tutte le chiavi giuste).
Quale sia il piu' sicuro e' difficile a dirsi, si potrebbe scoprire una falla che riduce il tempo di cracking in un qualunque cifrario. Puoi considerare i finalisti di AES come sicuri allo stato attuale, questo include Serpent e Twofish, Rijndael ha vinto (diventando poi AES per le versioni con blocksize a 128 bit) perche' piu' veloce e piu' facile da implementare su hardware, mentre gli altri magari erano anche piu' sicuri ma piu' lenti/scomodi e AES e' gia' molto sicuro.

Per gli hash e' diverso, da SHA2 in poi non sono mai stati trovati attacchi critici (tipo per trovare prima una collisione come con MD5 o SHA1). Se vuoi allinearti al nuovo standard usa Keccak (SHA3), ma SHA256 (SHA2) e' sufficiente.

Per l'uso quotidiano AES e' piu' che sufficiente, anzi e' consigliato perche' e' molto piu' veloce degli altri perche' ormai quasi tutti i processori moderni hanno istruzioni speciali solo per velocizzare AES.

XTS e' una modalita' ideata per gli hard disk, e' ottimizzata per l'accesso in posizione random ed i blocchi non dipendono da quelli adiacenti. Sulla meccanica interna ti rimando al white paper.

PS: se e' per VeraCrypt, qualunque configurazione scegli e' sicura, preoccupati solo di scegliere una buona password (da quella vengono derivate le chiavi).
Ok, ma per VeraCrypt se uso AES(Twofish(Serpent)) nel caso venisse violato AES sarebbe possibile scoprire la password e quindi sbloccare anche gli altri algoritmi, e stessa cosa se venisse usato Serpent(Twofish(AES)) se venisse violato Serpent? (ovviamente nel caso venisse trovato un problema di sicurezza che permette di trovare la password se possibile)
Invece SHA-512 è più sicuro di Whirlpool? Qual è il più consigliato da usare?
 
Quali vantaggi ho nell'usare più algoritmi es. AES+Serpent?
Quali combinazioni sono più sicure?
Stando a Wikipedia non ci sono attacchi su (full-rounds) Serpent, mentre il miglior attacco su AES richiede 2^254.3 operazioni. Se li combini arrivi ad avere 510.3 bit di sicurezza e se aggiungi altri cifrari puoi aumentare quel numero a piacere. D'altro canto, i tempi di esecuzione si sommano perché la combinazione non è parallelizzabile e hai il problema di dover mantenere tante chiavi invece che una sola. Tieni conto che AES ha meno bit di sicurezza di Serpent anche perché, essendo un algoritmo standard, è stato anche analizzato molto più a fondo.

Quali sono gli algoritmi di crittografia più sicuri e quelli consigliati per l'uso quotidiano?
AES-256 per la crittografia simmetrica e RSA o ECC per quella asimmetrica. I più conservativi tendono a consigliare 15360 bit per la fattorizzazione e 512 bit per il logaritmo discreto, ma anche valori molto più modesti (e.g., attorno agli 8k bit e attorno ai 300 bit) sono considerati molto molto validi.

Quale hash è più sicuro?
Diciamo SHA-512, anche se con gli hash il discorso è un po' diverso e dipende molto da cosa devi farci.

L'unico sicuro è il cifrario di Vernam
One-Time-Pad usato opportunamente è inattaccabile, ma sicuro vuol dire tutt'altro. Se il mio algoritmo ha 512 bit di sicurezza e tu mi trovi un attacco che esegue 2^500 steps usando 2^400 celle di memoria per ricavare il messaggio senza conoscere la chiave, hai rotto il mio algoritmo (complimenti!). Ciò non toglie che il mio algoritmo resta sicuro perché il tuo attacco è del tutto impraticabile: la quantità di memoria di cui hai bisogno è superiore del numero di particelle nell'universo e il numero di step che richiede è di svariati ordini di grandezza superiore all'età dell'universo espressa in femtosecondi. AES è stato attaccato, ma non vuol dire che sia insicuro.
Al contrario, One-Time-Pad usato non-opportunamente è attaccabilissimo, come dice il tuo stesso link. E usarlo in modo opportuno è talmente scomodo che, praticamente, non vale la pena usarlo.

Con questo voglio fare anche capire a @onionTool che combinare più algoritmi migliora significativamente la sicurezza, ma in termini pratici se una cosa è impossibile... è impossibile: "ancora più impossibile" non ha alcun significato. Gli algoritmi crittografici generalmente sono l'anello forte della catena; il loro uso improprio, le implementazioni fallaci, i vari bug/exploit e l'utente (e.g., ti piglio a mazzate finché non mi dici la password) sono l'anello debole e, si sa, una catena è forte quanto il suo anello più debole. Se exploitando un software o infettandoti con un malware riesco a leggerti le chiavi, non sarà la crittografia a proteggerti.
 
impossibile se hai un OCR dedicato che legge dalle immagini di un computer non in rete

Non e' quello il punto, il punto e' che qualunque cosa tu faccia sara' piu' facile prendere la chiave che rompere un algoritmo come AES. Benissimo hai l'OCR nel tuo bunker air-gapped, ma questo OCR deve leggere qualcosa, magari qualcosa che hai addosso e puo' essere rubata o copiata. Prevedi che meta' chiave resta nel bunker, scolpita in una tavoletta di pietra tipo le chiavi delle root CA? Qualcuno puo' sempre puntarti una pistola, puntarla a qualcuno a cui tieni, mettere una microcamera nella giacca che porti in lavanderia ecc. Non voglio entrare nella fantascienza perche' non credo che qualcuno qua abbia segreti che valgono miliardi e che valgono un tale sbatti, ma anche fosse il caso esiste sempre un modo piu' semplice di rompere un algoritmo del genere.
 
  • Mi piace
Reazioni: P_1_6
Soprattutto, la crittografia ambisce ad essere pratica e veloce oltre che sicura. Tipo che tutti noi la stiamo utilizzando in questo momento (questo sito è in https) senza spendere milioni, senza essere competenti in materia e senza andare nel bunker a fare magie voodoo. Quello che volevo far passare è che da un certo punto in poi i bit di sicurezza hanno solo un significato numerico in quanto indicano sempre valori astronomici e diventano altri i fattori da tenere in considerazione. In passato gli attacchi più proficui hanno sempre ignorato l'algoritmo in sé e hanno recuperato i dati exploitando bug vari nel software (e.g., heartbleed) o nel modo in cui lo stiamo usando (e.g., vedi la gente che mischia Tor con le VPN oppure quelli che magari usano SHA-512, ma poi usano erroneamente salt e Bcrypt). Questi sono i problemi veri, non gli attacchi (spesso impraticabili) all'algoritmo in sé.

Detto questo, le agenzie governative hanno un budget significativamente superiore ai normali ricercatori, è molto probabile che sappiano cose che noi non sappiamo. Ad esempio, RSA e la crittoanalisi differenziale sono state scoperte dalle agenzie governative (che non hanno divulgato niente) prima di essere state riscoperte e pubblicate da normali ricercatori. Senza contare che in alcune applicazioni, ad esempio nei servizi di messaggistica istantanea, non c'è ancora un meccanismo di privacy comunemente accettato come veramente pratico e sicuro: alcuni sono scomodi, altri ti prosciugano la batteria del telefono, altri fanno cose sospette, ecc... Anche se gli standard attuali sono da considerarsi sicuri, la crittografia non è un settore morto. In questo periodo, ad esempio, ci sono delle competizioni per fissare lo standard di cifrazione per il periodo post-quantum: l'algoritmo di Shor attacca sia RSA che le curve ellittiche tradizionali e quello di Grover dimezza i bit di sicurezza di alcuni algoritmi simmetrici e di alcune funzioni di di hash (e.g., 128 bit saranno da considerarsi insicuri).
 
OT:
Sarebbe interessante provare questi attacchi.

qualcuno sa se è possibile ricostruire un ambiente quantistico con i classici PC?
Facciamo un passo indietro. La quantum cryptography che hai linkato non serve ad attaccare la crittografia normale (e.g., il problema della fattorizzazione), è una variante della crittografia normale che fa uso delle proprietà dei quantum computers. Sono abbastanza ignorante in materia, ma da quel che mi pare di aver capito quel link sta dicendo: se hai una rete di quantum computers interconnessi in modo tale che si possano trasmettere fotoni (non semplicemente luce, ma roba tipo un singolo fotone), allora sei in grado di applicare un meccanismo di key exchange in cui alcune proprietà interessanti (e.g., forward secrecy) sono dimostrabili matematicamente. In particolare, per il principio di Heisenberg per cui se osservi/misuri un sistema quantistico ne alteri lo stato, riesci ad accorgerti della presenza di intercettazioni non volute.

La sezione che hai linkato, ovvero quella dedicata agli attacchi, fa per lo più dimostrazioni di sicurezza e considerazioni molto spicciole:
  • Intercept and resend dimostra che hai bisogno di comparare 72 bit per accorgerti di intercettazioni con probabilità quasi certa;
  • Man-in-the-middle attack dice che hai comunque bisogno di un meccanismo per capire se dall'altra parte c'è veramente la persona che ti aspetti (e.g., vedi il nickname "Bill Gates" su questo forum, ma non sai se è veramente lui);
  • Denial of service dice che se ti tagliano il cavo in fibra ottica non puoi più trasmettere fotoni ed è un bel problema;
  • Trojan-horse attacks dice che se l'attaccante ti spara luce dentro il cavo in fibra ottica, il tuo computer quantistico fa cazzate; e
  • Security proofs fa una lista di condizioni da rispettare per far andare tutto liscio (sempre ammettendo che hai un canale di trasmissione ideale, non reale).
L'unico attacco un po' serio mi sembra Photon number splitting attack, ma è davvero così interessante? Se sei nel settore okay, ma tutta questa menata della quantum cryptography è talmente lontana dall'essere utile che il tuo interesse può solo essere più teorico che pratico. Certo si può simulare, come ogni altra cosa, ma perdi ogni beneficio che (teoricamente) è in grado di offrire.

Una cosa completamente diversa è usare i quantum computer per rompere la crittografia attuale (gli algoritmi di Shor e Grover che ho accennato nel post precedente) o creare algoritmi per computer normali che sono resistenti ad attacchi effettuati usando quantum computers (la post-quantum cryptography che ho accennato nel post precedente). SHA-512 e AES-256, ad esempio, sono quantum resistant: li puoi utilizzare su un computer normale e anche chi ha un quantum computer non è in grado di fregarti. Questi sono già settori più interessanti perché i quantum computers stanno diventando sempre più reali, mentre la quantum cryptography che hai linkato... beh... anche se in un futuro prossimo sarai in possesso di un quantum macbook sei davvero sicuro che sia meglio usare la crittografia quantistica invece della crittografia normale? Forse.
 
OT:
Sarebbe interessante provare questi attacchi.

qualcuno sa se è possibile ricostruire un ambiente quantistico con i classici PC?

Da quel che mi ricordo, questo permette di identificare un eavesdropper nel canale nella distribuzione delle chiavi per instaurare un canale sicuro tra due utenti, utilizzando i concetti quantici (spin degli elettroni).

Se per ricostruire intendi sviluppare (programmare) un modello che segui le regole della meccanica quantistica e cominci a scambiare codici, certo che sì.

Nella realtà sarà difficile replicarlo finché i famosi PC quantici non saranno prevalenti nelle reti.

MP
 
Hey @St3ve mi potresti linkare qualcosa per creare un ambiente quantum sui pc tradizionali.
Ti rimando a questi due threads
 
  • Mi piace
Reazioni: P_1_6
Si intendo questo
Allora, quotando quello che ha scritto St3ve, devi conoscere tutti i concetti della Meccanica Quantistica in modo da poter svilupparli.

Ricordati però che stiamo parlando di un Modello, un esempio che non può totalmente raffigurare la vera essenza del link che hai citato (vedi come @St3ve ha citato il principio di indeterminazione di Heisenberg o come anche entanglement o il Teorema di Zurek-Wooters sull'impossibilità di clonare i vari spinning dei fotoni).

MP
 
Stato
Discussione chiusa ad ulteriori risposte.