Consideriamo l'alfabeto (inglese con 26 lettere):
A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
Possiamo numerare gli elementi di questa lista, così ad ogni lettera corrisponde un numero: A ->1, B->2, ..., Y-> 25, Z->26.
Adesso prendiamo un numero n, per esempio n=3, e spostiamo ogni lettera di n=3 posizioni (verso destra) nella lista. Per esempio A che era nella prima posizione si ritrova nella quarta posizione (1+3 = 4).
Ovviamente c'è un piccolo problema per le ultime tre lettere (a priori vanno a finire
fuori), però siccome si sono liberati i primi posti, le mettiamo lì.
Questo equivale a pensare alla nostra lista come a una lista circolare.
Con i numeri funziona così: per esempio X-> 24; 24 + 3 = 27 e 27 - 26 = 1, quindi X si ritrova alla prima posizione. Nello stesso modo 25 + 3 = 28, 28 -26 = 2 e Y si ritrova nella seconda posizione. Abbiamo quindi:
X, Y, Z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W
Quindi la A è diventata X; la B, Y ecc...
Il messaggio: "Mandare i rinforzi domani sera" viene cifrato in "Jxkaxob f ofkclowf aljxkf pbox". Chi riceve il messaggio, per decifrarlo, deve conoscere: il procedimento usato e la chiave, cioè il numero n (n=3 nell'esempio). Un tale procedimento è detto a chiave simmetrica. Infatti il cifratore (chi srive) e il decifratore (chi legge) compiono la stessa operazione. Per esempio, per decifrare, basta aggiungere tre: nell'alfabeto normale J-> 10, 10+3 = 13 -> M, quindi la prima lettera è una M, ecc...
Un tale codice NON è sicuro:
Si cercherà pertanto di costruire codici più complicati