Idoneità degli algoritmi di crittografia per diversi tipi di contenuto

2

Esistono algoritmi di crittografia che sono "più adatti a" (ovvero forniscono maggiore sicurezza quando) crittografando determinati tipi di contenuti?

Ad esempio, se ho un file PDF che devo crittografare, è il fatto che il contenuto da crittografare è in formato PDF (al contrario del semplice testo ASCII o MSWord o .xlsx) un fattore nel decidere quale crittografia algoritmo da usare?

    
posta Ajoy Bhatia 29.11.2017 - 01:15
fonte

2 risposte

1

Il formato di file specifico è irrilevante nella crittografia. Ciò che conta sono fattori come il supporto su cui si trova il file, il meccanismo di accesso e, in una certa misura, la dimensione del file (che si applica più alla differenza tra un'immagine del disco rigido e un piccolo file di documento, non tanto alla differenza tra un PDF e un DOCX). Se il file è estremamente grande, le crittografie con una piccola dimensione di blocco (come Blowfish, IDEA e CAST5) iniziano a diventare meno sicure. Crittografare più di 4 GB di dati con questi codici può essere pericoloso.

Anche se il cifrario stesso può essere abbastanza strong, la modalità operativa può creare o distruggere un criptosistema, e queste modalità sono molto dipendenti dal contesto:

  • ECB - In sostanza nessuna modalità. Ogni blocco è crittografato con la stessa chiave. A meno che non si stia criptando un singolo blocco, questa modalità è pericolosa e può dar luogo al pinguino della BCE .
  • CBC - Fornisce una scarsa protezione della malleabilità, ma di solito è utile per la riservatezza. Ci sono molti attacchi contro CBC, ma si applicano solo in contesti specifici.
  • CTR - È estremamente sensibile agli attacchi di riutilizzo e malleabilità nonce, ma è veloce ed è buono per la parallelizzazione. Questa modalità trasforma un cifrario a blocchi in un codice di flusso. CTR utilizza in realtà encryption sia per la crittografia che per la decrittografia, quindi vengono annullate due crittografie CTR con la stessa chiave.
  • GCM - Simile al CTR, ma autenticato. Ciò garantisce l'integrità oltre alla riservatezza a scapito di uno spazio aggiuntivo per ciascun messaggio. Questo è usato nelle reti.
  • XTS - Una "modalità di blocco stretto modificabile" che viene comunemente utilizzata per la crittografia dei dispositivi a blocchi. Richiede il doppio della dimensione della chiave per funzionare, ma fornisce una minima resistenza alla malleabilità.

Questi sono quelli comuni. Alcuni meno comuni sono XEX, LRW, PCBC, CFB, OCB, OFB, CTS, EME, EME2 e molto altro. Sono molto più limitati di proposito (PCBC ad esempio è come CBC, ma progettato in modo tale che un singolo errore di crittografia o decrittografia si propaga e manipola tutti i risultati futuri), o sono brevettati o altrimenti difficili da usare in un ampio contesto legalmente (tale come EME2 e OCB).

Per rispondere alla tua domanda, userei CBC per questo. Se il tuo modello di minaccia non coinvolge qualcuno che ha intenzionalmente problemi con i file crittografati e solo impedendo a qualcuno di visualizzarne il contenuto, CBC va bene. È la modalità più comune per la crittografia dei file.

Non implementare crypto da solo

Le sfumature specifiche sono molto difficili da ottenere, e si può facilmente finire con uno schema molto rotto nonostante l'uso di primitive ben consolidate. Dovresti usare una libreria o un programma esistente per crittografare i tuoi file, come GnuPG. Anche l'uso della funzione di crittografia di 7zip sarebbe sufficiente.

    
risposta data 29.11.2017 - 04:38
fonte
1

No . Tutti gli algoritmi moderni (ad es. AES) forniranno indentazione dei testi cifrati , quindi -se tutto è fatto correttamente- non importa il tipo di contenuto che stai memorizzando.

Non specifico per qualsiasi algoritmo di crittografia, come accadrebbe con tutti loro, ma in qualche modo correlato alla domanda:

  • Sapendo che è un PDF (o MSWord, o Excel) consentirebbe qualche testo in chiaro noto a qualcuno che attacca la crittografia (ad esempio, se dovessi eseguire il bruteforce del file crittografato, potrei controllare se il contenuto decrittato con la chiave candidata inizia come fanno i PDF).

  • Basta applicare un "algoritmo di crittografia" per non nascondere la lunghezza dei tuoi dati. Puoi aggiungere un po 'di padding al file (o almeno usare una modalità di cifratura a blocchi).

  • Devi utilizzare iv sui file.

  • Ricorda che devi verificare il contenuto, non solo controllare se decodifica su "qualcosa". Su alcuni tipi di file, sarebbe possibile un attacco cieco in cui il file crittografato potrebbe essere modificato per ottenere un output diverso.

risposta data 29.11.2017 - 02:11
fonte

Leggi altre domande sui tag