Come criptare più di 16 byte usando AES?

8

Sto cercando di implementare AES su un'immagine di dimensioni 256x256 (65536 byte) ma AES funziona su dimensioni 4x4 dell'immagine (16 byte).

Cosa dovrei fare? Può essere implementato o no? E se sì, allora come?

    
posta Anshul Aggarwal 23.02.2014 - 19:52
fonte

2 risposte

20

AES è un codice a blocchi, funziona su blocchi a 16 byte (128 bit). AES, da solo, non può funzionare con dati più piccoli o più grandi di 16 byte. I dati più piccoli devono essere riempiti fino a 16 byte e i dati più grandi devono essere suddivisi in blocchi da 16 byte (e, naturalmente, riempiti quando necessario *)

Fortunatamente, ci sono algoritmi che ti aiutano a ottenere proprio questo (funzionano su dati più grandi delle dimensioni del blocco della cifra), si chiamano modalità di funzionamento a blocchi di codice . Descrivono come dovrebbe essere il processo di crittografia e decrittografia usando il codice a blocchi.

Importante: se stai scrivendo la tua implementazione di AES per crittografare i dati reali per uso personale e / o professionale, quindi STOP NOW! Usa invece librerie ben testate, collaudate e famose per questo. Tuttavia, se lo fai a scopo didattico, vai avanti, divertiti.

Se si desidera utilizzare AES per riservatezza (ovvero per mantenere l'immagine segreta), utilizzare una delle modalità offerte dalla libreria, ad eccezione di ECB che è non sicuro . Se si desidera proteggere anche l'integrità dell'immagine (ad esempio per rilevare se è stata modificata), utilizzare una modalità di crittografia autenticata .

* C'è molto di più nel padding oltre alla necessità di raggiungere la dimensione del blocco, ma non ci entrerò. Leggi di più a riguardo se sei interessato.

    
risposta data 23.02.2014 - 20:50
fonte
2

Diversi metodi per crittografare i dati utilizzando AES si trova qui . Utilizza una libreria di alto livello come Bouncy Castle o .NET per implementare la crittografia autenticata usando AES GCM

    
risposta data 25.03.2014 - 22:00
fonte

Leggi altre domande sui tag