
Ad ogni buon conto, si possono clasificare i cifrari dell'antichità in due tipi diversi: per trasposizione e per sostituzione. Il primo si basa sulla trasposizione delle lettere che compongono il messaggio: supponendo che esse siano $n$, il numero di possibili messaggi che si possono comporre è pari a $n!$. Unico elemento che fece cadere in disuso il sistema era la difficoltà nel poter utilizare chiavi semplici per le operazioni di crittazione e decodifica.
Il secondo, che ebbe in Giulio Cesare il suo più noto utilizzatore (tanto che uno dei codici di critazione porta il suo nome) prevede la sostiuzione di ciascuna lettera dell’alfabeto con un’altra fornita grazie alla traslazione dell'intero alfabeto. Dal punto di vista matematico questi ultimi cifrari sono indubiamente i più interessanti, basandosi sulla matematica modulare.
L'operazione di modulo, $a \mod b$, restituisce il resto dela divisione di $a$ per $b$ e introduce una interessante classe di equivalenza (ovvero un sottoinsieme di oggetti di un dato insieme che godono di una stessa proprietà): avere lo stesso resto nella divisione per $b$. Così, per esempio $5 \equiv 14 (\mod 3)$, questo perché sia 5 sia 14 forniscono lo stesso resto quando li dividiamo per 3.
Anche il cifrario di Cesare aveva un punto debole: l'analisi delle frequenze. Come qualunque scherlockiano può dirvi, per ogni lingua si possono determinare le frequenze con cui ciascuna lettera compare all’interno del vocabolario. Così confrontando le frequenze delle lettere (o simboli) presenti nel messaggio da decifrare con le frequenze della lingua in cui si presume che tale messaggio sia stato scritto, è possibile risalire con buona precisione al messaggio originario. Per ovviare all'analisi delle frequenze, Blaise De Vigenère sviluppò l'omonimo quadrato, costituito come segue: