Quali sono i metodi standard per testare la qualità di un algoritmo di crittografia. In secondo luogo, se sto cercando di implementare un algoritmo di crittografia, quali pratiche dovrei adottare?
Sì, si chiama scrivere documenti di ricerca e sottoporli a peer review.
Non c'è motivo per cui dovresti mai scrivere il tuo algoritmo di crittografia a meno che tu non sia nel campo della ricerca accademica, e quindi non continuerai a "usare" il tuo algoritmo per almeno 4 anni (è quanto tempo ci è voluto per scegliere SHA-3 tra il momento in cui l'algoritmo è stato inviato a quando è stato selezionato come standard ufficiale) mentre altre persone guardano esso.
Farai degli errori che non saprai nemmeno siano degli errori (sai cos'è un attacco di temporizzazione? il tuo algoritmo protegge da questo?). Se qualcuno con le risorse avesse mai voluto attaccare il tuo algoritmo, pensi che qualcosa di cui sei venuto in mente potrebbe reggere il confronto con un gruppo di analisti del Crypto di dottorato che lo guardano con un pettine a denti fini per una settimana, un mese, un anno?
Utilizza una libreria esistente, per favore non crearne di tuoi.
Sono d'accordo sul fatto che non si debba usare un nuovo algoritmo di crittografia se si vuole usarlo per scopi pratici. Dato che non hai menzionato il tipo di cifra che stai sviluppando, il codice di flusso, codice a blocchi in quanto esistono diverse classi di attacchi. Per una prospettiva di ricerca ci sono numerosi attacchi attraverso i quali è possibile valutare la sicurezza dell'algoritmo di crittografia.
Come vedi ci sono diverse varianti di attacchi che non testano realmente i tuoi algoritmi ma testano effettivamente la sua implementazione fisica, ad esempio l'analisi di potenza
Leggi altre domande sui tag encryption cryptanalysis