Richiede una crittografia simmetrica che richiede tempo

1

Ho un database con milioni di voci, ciascuna voce crittografata con una (diversa) password. Normalmente, è necessaria una sola voce alla volta. Se qualcuno ruba il database, voglio rendere difficile per loro ottenere i dati, anche se conoscono le password, rendendo molto dispendioso in termini di tempo per estrarre tutte le informazioni. Ad esempio: se la decodifica di una voce richiede 10 secondi, la decrittografia di 50 milioni di record richiede anni.

Quale approccio suggeriresti?

    
posta Martin Haluza 10.02.2013 - 07:08
fonte

2 risposte

2

In pratica puoi scegliere il tempo di decrittazione aumentando la lunghezza della chiave - dai un'occhiata al link .

L'unica cosa è che la crittografia con la chiave più lunga richiede anche molto tempo (anche se in modo esponenziale meno della decrittografia); quindi probabilmente vincerai un limite superiore in cui non sei disposto a spendere un mese per crittografare milioni di righe.

La crittografia simmetrica tende ad essere veloce, molto più veloce di quella asimmetrica e tende ad algoritmi in cui i tempi di decrittografia e crittografia sono molto simili (dato che stai praticamente facendo esattamente la stessa matematica indietro). In un caso in cui puoi scegliere e vuoi rallentare, vai con qualcosa come RSA.

    
risposta data 10.02.2013 - 07:35
fonte
1

Dici che ogni riga è crittografata con una password diversa e vuoi rallentare il comportamento di un utente malintenzionato per eseguire una decifratura generale dell'intero tavolo anche se conosce tutte le password.

Poiché la crittografia avviene con le chiavi, non con le password, c'è un altro pezzo che non hai menzionato: il mezzo con cui le password diventano chiavi. Se sei preoccupato che le password (non le chiavi) vengano rubate, questo è un buon posto dove fabbricare la tua lentezza. Se definisci la chiave come 4096 re-hash della password, saranno 18 anni di legge di Moore prima che quel processo sia veloce come un singolo hashing oggi. Se 18 anni non sono abbastanza lunghi (non lo è!), Continua a raddoppiare.

L'hashing iterativo ha comunque le sue insidie. La possibilità di collisioni aumenta, a meno che non mischiate alcuni sale ad ogni iterazione. Vedi: Forza di più iterazioni di hash?

Mi chiedo anche se non sei miope nell'affrontare questo particolare problema. Le "password" (come tipicamente definite) non contengono abbastanza entropia per produrre materiale chiave crittografico in primo luogo. Hai bisogno di una " passphrase ", oppure perdi il gioco.

    
risposta data 10.02.2013 - 18:26
fonte

Leggi altre domande sui tag