Anche oggi l'obiettivo fondamentale della crittografia è quello di consentire che due o piú persone possano trasmettersi messaggi attraverso un canale pubblico (non sicuro) in modo tale che, anche se un nemico li intercetta, non è in grado di comprenderli. La crittografia utilizza strumenti propri della teoria della complessitá, teoria degli algoritmi, teoria dell'informazione, teoria dei numeri, studiando tecniche che permettono di mascherare il linguaggio in modo da renderlo inintellegibile a chi non possieda un'opportuna ``chiave'' di lettura.
Lo schema piú semplice di un Crittosistema è il seguente:
Alice e Bob, innanzitutto, scelgono una chiave a caso .
Questo puó essere fatto quando essi sono nello stesso posto e non sono
osservati dal nemico o, alternativamente, quando, essendo in posti diversi, possono accedere
ad un canale privato. Supponiamo che il messaggio in chiaro sia una stringa
per qualche intero , dove ogni simbolo del testo in chiaro
,
. Ogni
è cifrato usando
la regola di cifratura
specificata dalla predeterminata chiave k.
Quindi, Alice calcola
,
, e la
risultante stringa cifrata
è spedita sul canale pubblico. Quando Bob riceve lo
decifra usando la funzione di decifratura
, ottenendo l'originale
testo in chiaro
.
Chiaramente, la funzione di cifratura è una funzione iniettiva
perché altrimenti la decifratura potrebbe avvenire in modo ambiguo. Per
esempio, se
dove
,
allora Bob non ha modo di sapere se y, decifrato, fornisce
oppure
.
Notiamo che se
=
segue che ogni funzione di cifratura
é una permutazione, nel senso che il testo cifrato è ottenuto come permutazione
dei caratteri del testo in chiaro.
Se un crittosistema deve essere di uso comune, deve soddisfare alcune proprietá, tra cui: