Codifica di un campo di database vuoto anziché lasciarlo vuoto

8

In un sistema in cui le informazioni personali memorizzate in un database sono crittografate, ma uno dei campi contiene solo dati in una minoranza di casi, avrebbe più senso lasciare il campo vuoto, piuttosto che crittografando una stringa vuota?

Da una parte, se scelgo di lasciare il campo vuoto, dovrei perdere informazioni sul contenuto del record (popolato o meno)

D'altra parte, se cifro il campo vuoto, la maggior parte delle volte sto dando a un potenziale aggressore un testo in chiaro noto.

L'algoritmo utilizzato è AES-256.

Sono consapevole del fatto che un utente malintenzionato dovrebbe ancora forzare la chiave, anche se ha ottenuto una coppia di testo cifrato / testo in chiaro, tuttavia sono curioso di sapere quale sia la comunità che ritiene che l'approccio migliore sarebbe qui.

    
posta Leigh 10.06.2013 - 11:03
fonte

2 risposte

6

Poiché solo una minoranza dei record potrebbe contenere dati reali in quel campo (non vuoti), un utente malintenzionato può indovinare il testo in chiaro (quelli vuoti) con un'alta probabilità. Quindi la tua ipotesi è corretta. Fortunatamente, per te e per noi, per quanto ne sappiamo, AES non è veramente suscettibile agli attacchi con testo normale .

Gli attacchi che conosciamo già richiedono grandi quantità di testo in chiaro e il loro corrispondente testo cifrato e hanno una complessità computazionale molto alta (2 254.4 per una chiave a 256 bit).

Direi che non ti preoccupare. Vai con la crittografia di quel campo dati.

    
risposta data 10.06.2013 - 12:37
fonte
3

Ti suggerisco di provare a salare i tuoi dati (qualsiasi forma di sale variabile). In questo modo anche un campo vuoto ha "dati" e sarà un blob casuale una volta crittografato.

    
risposta data 10.06.2013 - 16:27
fonte

Leggi altre domande sui tag