Come fa la forza della crittografia a fare la differenza per un utente malintenzionato

1

Prendiamo ad esempio la mia sicurezza sociale e altre informazioni personali memorizzate come una stringa che sto cercando di crittografare sul mio disco locale. Il mio primo metodo per crittografare la stringa consiste nell'utilizzare un algoritmo AES basato su password e quindi semplicemente incollare il testo cifrato generato in un file in cui posso memorizzarlo e decifrarlo in seguito. Il mio secondo metodo per crittografare la stringa è creare il mio algoritmo che è molto più semplice: prendo quella stringa e applico alcuni semplici cambi di bit combinati con alcune aggiunte casuali di bit, moltiplicazioni e rotazioni. Più tardi, se ho bisogno di decifrare quella stringa, posso applicare la negazione della mia logica per ottenere la mia stringa decifrata.

Ora che abbiamo una stringa crittografata con il famoso algoritmo AES e un'altra stringa crittografata con il mio stupido algoritmo, entrambi sembrano ugualmente confusi e complessi.

Supponiamo ora che qualcuno voglia decifrare le mie informazioni personali, avendo accesso al semplice file di testo in cui ho archiviato il testo cifrato. L'autore dell'attacco non sa che tipo di algoritmo ho usato nel testo cifrato. Quale codice di crittografia sarà più difficile da decifrare? L'algoritmo che ho usato per questo scenario conta davvero e perché? Se questo è stato un pessimo esempio di dove la forza dell'algoritmo di crittografia può essere importante, potresti spiegare uno scenario migliore di dove sarebbe più importante?

Non riesco a vedere come un algoritmo complesso regge meglio di uno più debole o self-made di origine chiusa, dal momento che presumo che un utente malintenzionato proverà a utilizzare la forza bruta. Dato che presumo che proverebbero la forza bruta, suppongo anche che non abbiano alcun controllo su quanto siano casuali le loro ipotesi, (forse) il rendering della forza dell'algoritmo per essere inutile - cioè poiché entrambe le stringhe sono confuse e sembrano casuali, esse entrambi sembrano complessi.

    
posta void.massive 21.01.2016 - 02:25
fonte

1 risposta

1

In primo luogo il rollare la tua crittografia è quasi sempre una cattiva idea vedi Perché non dovremmo lanciare da soli? .

Ora che quel requisito è fuori mano ti permette di dare un'occhiata alla tua domanda. In questo caso devi chiedere a cosa stai proteggendo. La crittografia AES (supponendo che sia implementata correttamente e non ci siano canali laterali) proteggerà i tuoi dati da attacchi a lungo termine con risorse elevate e da semplici attacchi come la navigazione a spalla. Non dovrebbe importare se si tratta di un attacco di opportunità o di un attacco mirato, i tuoi dati sono al sicuro.

Tutta la crittografia della tua casa può essere contata è una forma di offuscamento. Strumenti come l'analisi della frequenza sono molto potenti. Sembra che entrambe le stringhe siano incasinate non è abbastanza. Spostando tutte le lettere nella risposta fa sembrare tutto incasinato. Tuttavia questo è banale da rompere. Normalmente non è difficile trovare pattern che consentano la decrittazione completa con un solo piccolo campione. Tutto ciò su cui puoi contare è la resistenza alla spalla e agli attacchi non qualificati.

Sembra anche che tu abbia implementato sia l'AES che il tuo algoritmo tu stesso. Questo probabilmente ti aprirà ad un maggiore rischio di attacchi ai canali laterali (tempismo, copie shadow ecc.).

Se si desidera un metodo semplice per la crittografia, è possibile utilizzare un progetto come KeePass o 7zip per archiviare i dati (con crittografia). In questo modo hai il vantaggio di un progetto testato e possibilmente open source con crittografia strong. Per non dire che quegli attributi offrono una protezione completa, basta dare un'occhiata a OpenSSL.

Alla fine devi valutare le tue minacce e chiedere se sei disposto ad accontentarti dell'offuscamento o se hai bisogno di una protezione completa.

    
risposta data 21.01.2016 - 04:51
fonte

Leggi altre domande sui tag