Un cifrario a blocchi ideale applica una sostituzione totale su ogni blocco di n-bit, mappando ogni possibile input a un output unico.

Per farlo, sarebbe necessario una tavola di sostituzione con $2^n$ voci per ogni possibile combinazione di n-bit, richiedendo una "chiave" di dimensioni pari a $n × 2^n$.

Questo approccio consentirebbe $2^n!$ trasformazioni possibili, ma è impraticabile nella realtà a causa della complessità computazionale e delle enormi risorse di memoria richieste.


Caso $n = 2$

1. Numero possibili di output

Con n = 2, ogni blocco ha 2 bit, quindi, ci sono $2^2$ = 4 possibili input/blocchi: 00, 01, 10, 11

2. Tavolo di sostituzione

Il cifrario a blocchi ideale deve mappare ogni input in un output unico a 2 bit, quindi, bisogna costruire una tabella di sostituzione, che è semplicemente una permutazione dei 4 possibili valori.

Un esempio di mappatura potrebbe essere:

Input Output
00 10
01 00
10 11
11 01

Questa tabella rappresenta una possibile chiave del cifrario. Un’altra tabella possibile sarebbe:

Input Output
00 11
01 01
10 00
11 10

e così via.

3. Dimensione della chiave

Ogni riga della tabella memorizza un output di 2 bit, quindi la tabella ha:

$n \times 2^n = 2 \times 4 = 8 \text{ bit}$

Questo è fattibile, ma cresce esponenzialmente con $n$.

4. Numero di trasformazioni possibili

Il numero di possibili cifrari diversi è dato dal numero di permutazioni dei 4 output distinti: