2013-06-18 14 views
14

Sto facendo questa domanda per confermare se la classe RijndaelManaged in C# è equivalente alla crittografia AES. Da quello che ho letto, RijndaelManaged è stato l'algoritmo di scelta per implementare l'encyrption AES. Qualcuno può confermarlo per favore?- La classe RijndaelManaged in C# è equivalente alla crittografia AES?

L'algoritmo RijndaelManaged è sicuro da utilizzare per un progetto Web? Grazie :)

+1

penso che algoritmo può essere utilizzato per la crittografia AES –

+0

Grazie Mert Akkaya :) – Matthew

risposta

18

L'algoritmo AES è stato selezionato in una competizione tenuta dal NIST tra il 1997 e il 2000. Il vincitore era un algoritmo chiamato Rijndael.

Il NIST ha specificato che l'algoritmo AES doveva avere una dimensione di blocco di 128 bit. Poiché Rijndael supporta blocchi di dimensioni di 128, 160, 192, 224 e 256 bit, la specifica finale AES differisce dalle specifiche originali di Rijndael a tale riguardo. In altre parole, "AES" e "Rijndael" sono lo stesso algoritmo, tranne "AES" è limitato a una dimensione di blocco di 128 bit.

La dimensione del blocco non ha nulla a che fare con le dimensioni della chiave. L'algoritmo in questione supporta chiavi a 128, 192 e 256 bit. Le chiavi più lunghe non sono necessariamente "più forti", perché AES ha un certo numero teorico weaknesses. Ad ogni modo, le chiavi a 128 bit sono abbastanza lunghe per il futuro prevedibile.

Come ha detto EkoostikMartin, AES è indistruttibile fino ad oggi. Ma la crittografia è difficile, e anche i professionisti non lo fanno bene ogni volta. L'uso di primitive crittografiche non sapendo esattamente cosa si sta facendo sarà probabilmente dannoso. Per dirla in altro modo, la cifra è molto raramente l'anello più debole nella "catena della sicurezza".

6

Se si desidera utilizzare AES, basta utilizzare la classe AesManaged-http://msdn.microsoft.com/en-us/library/system.security.cryptography.aesmanaged%28v=vs.100%29.aspx

Il RijndaelManaged di classe si fa riferimento non rientra esattamente nelle specifiche AES, per lo più in quanto dà opzioni per quanto riguarda la dimensione dei blocchi. AesManaged utilizza la dimensione del blocco a 128 bit come specificato.

Per quanto sia "sicuro" per un progetto web, è un metodo di crittografia molto forte (non è mai stato interrotto per quanto ne so), ma come qualsiasi cosa deve essere usato correttamente.

+0

Grazie :) Quindi è più forte di RijndaelManaged AesManaged ? Ho letto che può supportare le dimensioni della chiave di 256 bit. – Matthew

+0

'AesManaged' può supportare chiavi a 256 bit - http://msdn.microsoft.com/en-us/library/system.security.cryptography.aesmanaged.keysize(v=vs.100).aspx – EkoostikMartin

+2

@Matthew RijndaelManaged può essere utilizzato in un modo che non è compatibile con AES, quindi ha avuto meno controllo, che dovrebbe essere considerato come meno sicurezza, quindi in non utilizzarlo. – jbtule

0

Ci sono alcune differenze, in particolare la possibilità di modificare le dimensioni del blocco e le dimensioni della chiave. (AES utilizza una dimensione di blocco fisso di 128 per quanto ne so)
Se stai usando CFB in Rijndael la dimensione del blocco sarà adattarsi alla dimensione del feedback, il che significa che non è possibile garantire una dimensione di blocco di 128.

Per garantire l'equivalenza dovrai usare una dimensione di blocco di 128, o evitare CFB o assicurarti che anche la dimensione di feedback sia 128.

Un'altra cosa da notare: se stai usando una IV statica con CFB, allora il tuo la cifra sarà deterministica. Evita questo dato che la IV prefissata può essere facilmente identificata e utilizzata per decrittografare i tuoi dati.

(mi dispiace per sollevare un vecchio thread, ma questa informazione non era in qui)

Problemi correlati