La
definizione di Criptografia è abbastanza diretta e intuibile.
Si definisce Criptografia la scienza di mantenere i
messaggi sicuri. Principalmente è lo studio di algoritmi matematici e
funzioni utilizzate per questo scopo. Esistono due macro tipologie di algoritmi
:
- Limitati
- Aperti
Algoritmi Limitati
Questi algoritmi sono creati da persone od
organizzazioni e non sono disponibili al pubblico generale. Per esempio, un
algoritmo limitato può essere utilizzato per nascondere il codice di un oggetto
.NET compilato del quale non si vuole fornire la minima possibile di visibilità
del codice.
Algoritmi Aperti
Nascono con l'intenzione di rendere pubblica
una tecnologia da condividere con il mondo. Spesso utilizzati da molte altre
persone per operazioni di analisi. Tra Limitati ed Aperti, spesso, si ha la
tendenza ad utilizzare i primi. La logica del "E'
nascosto quindi è sicuro" non porta da nessuna
parte.
Un algoritmo Aperto è :
- Visibile
- Passibile di modifiche
- Maggiore velocità di emissione patch nel caso in cui venga
rilevato un bug
- Utilizzato e verificato da diversi
professionisti nel mondo.
Riassumendo
Un algoritmo Limitato può essere testato da un numero
ragionevole di programmatori, gruppi di bug hunting etc etc.. Cose decisamente
interessanti ed utili.. ma pensate ai più popolari Algoritmi Aperti,
questi vengono ogni giorno utilizzati, testati da migliaia di
applicazioni nel mondo in ambienti Reali. Inoltre, nella
scelta di un algoritmo è bene considerare che, nel caso questo presenti
problemi o abbia bisogno di un aggiornamento, sicuramente la patch
arriverà prima per l'Algoritmo Aperto che per quello
Limitato.