Domanda

Quindi ragazzi, c'è un sacco di diverse cifre disponibili - ma che uno è il più sicuro per usare al giorno d'oggi

Lista: http://www.php.net/manual/en/ mcrypt.ciphers.php

È stato utile?

Soluzione

Se uso sicuro AES (noto anche come "Rijndael") con una chiave a 128 bit. Se avete sviluppato una sorta di feticcio sulla dimensione della chiave allora si potrebbe soddisfare i vostri scrupoli irrazionali selezionando una chiave più grande, per esempio 192 o 256 bit; il costo supplementare non è elevato (+ 40% del carico di lavoro per AES-256, rispetto a AES-128, e ci vuole molto molto rete veloce realmente osservare che differenza).

Attenzione che, a prescindere dalle dimensioni chiave scelta, la cifra corretta per mcrypt AES è sempre MCRYPT_RIJNDAEL_128. Questo perché lo standard AES riferisce al sapore del cifrario Rijndael con una dimensione di blocco di 128 bit. Se si desidera che AES-256, è necessario utilizzare MCRYPT_RIJNDAEL_128 con una chiave a 256 bit (32 byte), non MCRYPT_RIJNDAEL_256.

AES è stato pubblicato nel 1998 e adottato dal governo degli Stati Uniti come standard federale nel 2001, e si vede alcun segno di debolezza al giorno d'oggi. Alcune proprietà matematiche sono stati trovati più tardi, ma non sicurezza hanno un impatto reale; in gran parte, mettono in evidenza che abbiamo qualche conoscenza relativamente precisa sul perché AES è sicuro. Nessun altro algoritmo di crittografia simmetrica ha ricevuto tanta attenzione (da migliaia di crittografi di talento) rispetto AES.

La maggior parte dei problemi di sicurezza provengono da come viene utilizzato l'algoritmo di crittografia, non è lo stesso algoritmo. Utilizzare una modalità di concatenamento corretta, aggiungere un MAC, gestire imbottitura, e soprattutto gestire la tasti in modo sicuro. Se hai tutto questo diritto (che è molto più difficile di quello che sembra) allora diventa il momento di preoccuparsi di scegliere Rijndael, Twofish o qualsiasi altra cosa.

Altri suggerimenti

Oltre alla grande risposta di Thomas Pornin, si deve anche considerare che cosa si sta cercando di realizzare in termini di "sicurezza" (riservatezza / integrità / autenticità / disponibilità).

Per ogni caso, è necessario affrontare alcune domande, come ... Chi fa questo si applica a? Dove e perché è in uso (cosa stai proteggendo)? Quanto tempo si è destinato a durare? ecc.

Per esempio, non è probabilmente inutile davvero la crittografia dei dati di sessione con un susseguirsi soffiato pieno di operazioni a 256 bit quando il dato è veramente destinata a durare solo per dire 20-30 minuti. Un algoritmo a 128 bit sicura sarebbe vicino a due volte più veloce o almeno usare carichi meno cicli di clock e essere altrettanto (se non di più) sicuro.

C'è anche motivo di crittografia di qualcosa che è destinato a durare a lungo (come un documento riservato o un file, la chiave privata ecc ...) con un debole, metodo chiave breve. Che ci si vuole a volte più algoritmi con una sorta di autenticazione e uso corretto di imbottitura. Ho regolarmente criptate e contenuti su richiesta per i clienti che utilizzano più algoritmi firmato (per lo più Twofish, AES, RSA).

E non dimenticare né (come Thomas ha sottolineato), è possibile implementare un metodo sicuro (o metodi) insicuro. Con la grande quantità di varianti di ogni formula e il tale, può essere difficile da implementare in realtà qualcosa che è "sicuro".

In generale, una cosa è sicuro come la chiave è per sbloccarlo. Se lascio le chiavi della macchina in macchina con la macchina sbloccata, le chiavi non sono sicure ed è aperto per la presa dal passato, chiunque passi. Blowfish con un pozzo disperso 32 tasto di carattere sarebbe altrettanto sicuro come qualsiasi altra cosa oggi. Una chiave di 3 caratteri tuttavia potrebbe essere rotto in un batter d'occhio.

"Il cifrario più forte è AES-256"

Da dettagli sul sito di Bruce Schneier, AES-256 potrebbe, paradossalmente, essere il meno sicuro dei tre chiave dimensioni 128, 192, e 256. Ci sono problemi con la generazione delle chiavi nella variante a 256-bit.

Alcuni algoritmi sono migliori di altri a cose diverse -. Non sono sicuro che cosa i vostri criteri per la "più sicuro" è

Certamente non dovrebbe utilizzare uno qualsiasi degli algoritmi basati DES questi giorni (ammesso che abbiate una scelta libera). AES (Rijndael) è lo standard attuale per NIST e di altri organismi.

In più bit generali per un determinato mezzo algoritmo più sicuro, ma accertarsi di utilizzare un vettore di inizializzazione e non utilizzare BCE.

HTH

C.

Secondo il giornale NIST, RJINDAEL ha avuto un margine di sicurezza basso rispetto a MARS, Twofish o serpente. Se si ha realmente bisogno la cifra più forte, scegliere uno di quelli.

http://csrc.nist.gov/archive/aes/round2/ r2report.pdf

Per citare: "MARS sembra avere un margine di sicurezza elevato. Una precisa caratterizzazione di Marte è difficile a causa del fatto che Marte impiega due diversi tipi di turni. MARTE ha ricevuto alcune critiche in base alla sua complessità, che può aver ostacolato la sua analisi della sicurezza durante il periodo del processo di sviluppo AES.

Rijndael sembra avere un margine di sicurezza adeguato. Il margine di sicurezza è un po ' difficile da misurare perché il numero di giri cambia con la dimensione della chiave. Rijndael ha ricevuto alcune critiche per due motivi: che il suo margine di sicurezza si trova sul lato basso tra i finalisti, e che la sua struttura matematica può portare ad attacchi. Tuttavia, la sua struttura è piuttosto semplice, che può essere facilitato sua analisi sicurezza durante la tempi indicati del processo di sviluppo AES.

Serpente sembra avere un margine di sicurezza elevato. Serpente ha anche una struttura semplice, che può aver facilitato la sua analisi la sicurezza durante il periodo di tempo specificato del AES processo di sviluppo.

Twofish sembra avere un margine di sicurezza elevato. Dal momento che Twofish utilizza la chiave-dipendente funzione di turno, il concetto di margine di sicurezza può avere meno senso per questo algoritmo che per gli altri finalisti. La dipendenza delle Twofish S-box solo su k / 2 bit entropia nel caso chiave k bit ha portato ad una speculazione che Twofish possono essere suscettibili di un attacco divide et impera, anche se tale attacco è stato trovato. Twofish ha ricevuto alcune critiche per la sua complessità, rendendo difficile l'analisi durante il periodo di tempo del AES processo di sviluppo ".

Se si vuole guardare i dettagli, c'è un articolo, soprattutto da me, cifrari a blocchi a http://en.citizendium.org/wiki/Block_cipher

Per rispettare gli standard americani attuali, usare AES, ex Rijndael. Uno qualsiasi degli altri finalisti del concorso AES - Serpent, MARS, Twofish o RC-6 - dovrebbe andare bene pure. Credo che hai bisogno di una licenza per RC6, però.

Io di solito uso AES-128 in quanto AES è FIPS approvati. Il cifrario forte è AES-256 (MCRYPT_RIJNDAEL_256).

mcrypt ha un design modulare e nuovo algoritmo può essere aggiunto facilmente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top