Storia della crittografiaCifrariCifrari polialfabeticiLe cifre di G. B. Bellaso
Tavola Bellaso (1555)
Tavola Bellaso (1553) - Tavola Della Porta

N.B. Questa pagina è interattiva, modificando contrasegno, chiave o testo verranno automaticamente aggiornate le tavole e gli esempi.


Tavola Bellaso
testo chiaro:
contrasegno: "; echo "
Chiave \n"; echo "
variante \n"; echo "
"; for ($pos = 0; $pos < $invollen; $pos++){ $coppia = substr($colonna, 2*$pos, 2); echo "
$coppia $lista0
"; echo substr($lista1, $invollen - $pos, $pos).substr($lista1, 0, $invollen - $pos); } ?>

Nel 1555 due anni dopo la cifra del 1553 Bellaso pubblicò un fascicoletto di otto pagine intitolato Novi et singulari modi di cifrare de l'eccellente dottore di legge messer Giovanni Battista Bellaso nobile bresciano. In questo libricino Bellaso presenta un terzo e quarto modo di cifrare, con questo riassunto (oggi lo si direbbe un abstract):

Con le sue regole & essempi con somma & chiara breuità conposti, nei quali si dimostra anchora in che consista la perfettione de le cifre, & le regole, che si deueno principalmente osseruare nel cifrare gli alfabeti.

Il terzo modo ripropone la tavola del 1553 con diversi miglioramenti atti a renderla più sicura. L'esempio di tavola proposta è quello a lato dove i gruppi di due lettere non sono più in ordine alfabetico ma disordinati; per ricavare la tavola Bellaso usa come chiave mnemonica i primi versi dell'Eneide: , ne estrae le consonanti non ripetute (ricordando che nel Cinquecento U e V erano ancora una sola lettera, scritta V maiuscola ed u minuscola, e considerata vocale) aggiungendo in coda le rimanenti: e le vocali .

Quindi intercala tre consonanti e una vocale: ottenendo la lista che andrà scritta spezzata in due su due righe, come nella cifra del 1553.

La prima colonna si ottiene dalle stesse due liste, intercalando inizialmente una consonante e una vocale, e poi il resto delle consonanti

Procedura di cifra

Si sceglie come contrasegno un versetto facile da ritenere a memoria, Bellaso usa questo salmo:

""

e lo scrive ogni quattro lettere del testo chiaro, in pratica è come se ogni lettera del contrasegno venisse quadruplicata, dopo di chè si procede come nella cifra del 1553. Volendo cifrare il testo "Giulio Cesare sapendo de quanta importanza ..." si ottiene:

contrasegno testo chiaro testo cifrato

Procedura di decifra

Anche questa cifra si basa su liste involutorie ed è quindi simmetrica; per decifrare quindi si scriverà il testo cifrato sotto il chiave e si ricaverà il chiaro usando, allo stesso modo, la stessa tavola.

Sicurezza della cifra

La cifra del 1555 presenta diversi vantaggi su quella del 1553: 1) la tavola è meno regolare; 2) il contrasegno è molto più lungo, ma usare un versetto noto è una possibile falla nel cifrario, il numero di contrasegni possibili diminuisce drasticamente e può essere indovinato.

La tavola Bellaso messa in forma quadrata
Prima lettera (contrasegno)
Seconda lettera (chiaro/cifrato) "; $posC = 0; while ($posC < strlen($colonna)){ if ($posC == $invollen) echo ''; echo ''.$colonna[$posC++]; } echo " Seconda lettera (chiaro/cifrato)\n"; $diff = -1; $listaC = $lista1; for ($riga = 0; $riga < $AlfLen; $riga++){ if ($riga == $invollen) { echo "
\n"; $listaC = $lista0; $diff = - $diff; } echo "
".$lista[$riga]; $posC = $riga%$invollen; if($posC < 0) $posC += $invollen; for ($conta = 0; $conta < $invollen; $conta++){ echo ''.$listaC[$posC]; if ($conta == floor($invollen/2)) echo ''; echo ''.$listaC[$posC]; $posC = $posC + $diff; if($posC < 0) $posC += $invollen; if($posC >= $invollen) $posC -= $invollen; } echo ''.$lista[$riga]."\n"; } echo "
"; $posC = 0; while ($posC < strlen($colonna)){ if ($posC == $invollen) echo ''; echo ''.$colonna[$posC++]; } ?>
Prima lettera (contrasegno)

Come la tavola del 1553 anche questa tavola può essere riordinata nello stile di una tavola di Vigenère disordinata, ma non troppo come si osserva nella tavola accanto.

In effetti la tavola ha una simmetria dovuta alla natura involutoria; e basterebbe la metà superiore per le operazioni di cifra e decifra, che come si è detto richiedono la stessa procedura; qui cercare la lettera del contrassegno tra le colonne e quindi quelle del chiaro/cifrato nella colonne sottostante/nelle intestazioni di riga, ricavando cifra/decifra.