Le ROT13 (rotate by 13 places) est un cas particulier du chiffre de César, un algorithme simpliste de chiffrement de texte. Comme son nom l’indique, il s’agit d’un décalage de de chaque lettre du texte à chiffrer. Son principal aspect pratique est que le codage et le décodage se font exactement de la même manière.
Un défaut de ce chiffrement est qu’il s’occupe des lettres, il ne s’occupe pas des symboles et de la ponctuation. C’est pourquoi on doit supprimer toute accentuation du texte à chiffrer (ce défaut est moins gênant pour l'anglais que pour le français ou l'allemand). Il ne s'occupe pas non plus des chiffres, ce qui était sans importance puisque les romains écrivaient leurs chiffres avec des lettres (I, V, X, L, M, etc.). Pour l'utiliser aujourd'hui, il suffit de convertir d'abord les chiffres en utilisant la notation romaine, ou en lettres (UN pour 1, DEUX pour 2...).
En pratique, lors du traitement d'un texte, les implémentations de ROT13 ne remplacent que les lettres non accentuées, et laissent inchangés les autres caractères, tels que les lettres accentuées, les chiffres et la ponctuation.
Un caractère étant invariablement remplacé par un autre, cet algorithme est aussi qualifié de substitution monoalphabétique.
À l’aide de la définition de cet algorithme (décalage de 13 caractères de chaque lettre), on peut alors définir la correspondance entre les caractères en clair et chiffrés :
L’avantage de ROT13, c’est le fait que le décalage soit de 13. L’alphabet comporte , et si on applique deux fois de suite le chiffrement, on obtient comme résultat le texte en clair. Pour cela on doit considérer l’alphabet comme circulaire, c’est-à-dire qu’après la lettre Z on a la lettre A, ce qui permet de grandement simplifier son usage et sa programmation puisque c’est la même procédure qui est utilisée pour le chiffrement et le déchiffrement.
ROT13 va à l’encontre du principe de Kerckhoffs car si l’adversaire apprend ou devine que le message a été chiffré en ROT13, il sera capable de le déchiffrer sans problème.