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.