I cifrari monoalfabetici sono cifrari di sostituzione: del testo chiaro si sostituisce ogni carattere con un altro carattere (o numero) secondo una tabella prestabilita, ottenendo il testo cifrato. Nella crittografia contemporanea (informatica) si sostituiscono blocchi di bit invece di caratteri, ma il principio è sempre quello della sostituzione.
I più antichi cifrari di questo tipo sono il cifrario Atbash e il cifrario di Cesare.
Questo tipo di cifra è sicura solo per messaggi molto corti; una semplice crittanalisi statistica basata sulle caratteristiche statistiche delle lingue è in genere sufficiente per forzare il testo.
Per aumentare la sicurezza di tali messaggi si possono usare nulle, omofoni.
Un altro sistema di aumentare la sicurezza di un sistema monoalfabetico è quello del repertorio o dizionario o nomenclatore: le parole più comuni si cifrano con simboli speciali secondo un dizionario segreto.
Il caso più generale di codice monoalfabetico è quello che prevede di usare come tabella di cifratura una arbitraria permutazione dell'alfabeto; si stabilirà p.es. che la A va cifrata con la lettera D, la B con la X, la C con la U ... come nell'esempio che segue:
ABCDEFGHIJKLMNOPQRSTUVWXYZ DXUTNAVWKZFQGSIOYJBPLHCERM
Il messaggio Arrivano rinforzi si cifra allora sostituendo una per una le lettere del chiaro con le lettere della tabella:
ARRIVANORINFORZI DJJKHDSIJKSAIJMK
La decifratura richiede di cercare via via le lettere del cifrato nella tabella, recuperando le lettere del chiaro; ovvero di costruire preventivamente una tabella inversa, che nel nostro esempio sarebbe:
ABCDEFGHIJKLMNOPQRSTUVWXYZ FSWAXKMVORIUZEPTLYNDCGHBQJcosì che dal cifrato si recupera il chiaro con lo stesso metodo;
DJJKHDSIJKSAIJMK ARRIVANORINFORZI