Operazioni fondamentali

La cifratura simmetrica, detta anche convenzionale, tradizionale, a chiave privata o chiave singola, sfrutta algoritmi che si basano su due semplici operazioni:

Per analizzare le caratteristiche di queste operazioni è utile studiare la cifratura classica, cioè gli algoritmi che venivano impiegati, solitamente a mano, prima dell’introduzione dei calcolatori moderni. I simboli su cui tali algoritmi operavano erano in genere le lettere di un testo, mentre per gli algoritmi moderni i simboli sono le combinazioni di bit (ad esempio i byte) che costituiscono un messaggio digitale, ma i principi di base rimangono gli stessi.

In seguito, si inizieranno a presentare le principali tecniche di sostituzione.

Cifrario di Cesare

Il cifrario di Cesare, così chiamato perchè fu utilizzato da Giulio Cesare per scopi militari, sostituisce ogni lettera dell’alfabeto con la lettera che si trova $k$ posizioni più avanti nell’alfabeto.

Il modo in cui le lettere vengono sostituite per un certo valore di $k$ può essere indicato elencando tutte le lettere dell’alfabeto del testo in chiaro e scrivendo, sotto ciascuna di esse, la corrispondente lettera del testo cifrato; per convenzione, si indicano in minuscolo le lettere del testo in chiaro e in maiuscolo quelle del testo cifrato. Ad esempio, per $k=3$, la sostituzione è:

$$ \texttt{abcdefghijklmnopqrstuvwxyz} \\ \texttt{DEFGHIJKLMNOPQRSTUVWXYZABC} $$

Una notazione analoga può essere usata per indicare il testo in chiaro di un messaggio e il corrispondente testo cifrato. Ad esempio, sempre con $k=3$:

$$ \texttt{meet me after the toga party} \\ \texttt{ PHHW PH DIWHU WKH WRJD SDUWB} $$

La chiave del cifrario di Cesare è il valore $k$: se un messaggio è stato cifrato “andando avanti” di $k$ posizioni nell’alfabeto, per decifrarlo bisogna “tornare indietro” di altrettante posizioni.

Se si assegna a ogni lettera un valore numerico da $0$ a $25$ (dove 0 corrisponde ad A e 25 corrisponde a Z), allora gli algoritmi di cifratura e decifratura possono essere normalizzati come segue: date la chiave $k$ e una lettera $p$ del testo in chiaro, la corrispondente lettera $C$ del testo cifrato è data dalla formula

$$ C = E(p, k) = (p+k) \text{ mod } 26 $$

e dalla lettera cifrata $C$ si può risalire alla lettera in chiaro $p$ tramite la formula

$$ p = D(C, k)=(C-k) \text{ mod } 26 $$

L’uso del modulo in queste formule serve a garantire la circolarità nel dominio 0-25: