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 :

  1. Limitati
  2. 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.