Преобразования открытого текста в шифртекст могут быть описаны различными функциями. Если функция преобразования является аддитивной, то и соответствующий шифр называется аддитивным. Если это преобразование является аффинным, то шифр называется аффинным.
Известным примером простого шифра замены является шифр Цезаря. Процедура шифрования состоит в следующем (рис. 3.1). Записывают все буквы латинского алфавита в стандартном порядке:
Делают циклический сдвиг влево, например на три буквы, и записывают все буквы во втором ряду, начиная с четвёртой буквы $D$. Буквы первого ряда заменяют соответствующими (как показано стрелкой на рисунке) буквами второго ряда. После такой замены слова не распознаются теми, кто не знает ключа. Ключом $K$ является первый символ сдвинутого алфавита.
Пример. В русском языке сообщение изучайтекриптографию посредством шифрования с ключом $K = \text{\texttt{г}}$ (сдвиг вправо на 3 символа по алфавиту) преобразуется в лкцъгмхзнултхсёугчлб.
Недостатком любого шифра замены является то, что в шифрованном тексте сохраняются все частоты появления букв открытого текста и корреляционные связи между буквами. Они существуют в каждом языке. Например, в русском языке чаще всего встречаются буквы $A$ и $O$. Для дешифрования криптоаналитик имеет возможность прочитать открытый текст, используя частотный анализ букв шифртекста. Для «взлома» шифра Цезаря достаточно найти одну пару букв – одну замену.
Рисунок 3.2 поясняет аддитивный шифр перестановки на алфавите. Все 26 букв латинского алфавита нумеруют по порядку от 0 до 25. Затем номер буквы меняют в соответствии с уравнением:
где $x$ – прежний номер, $y$ – новый номер, $b$ – заданное целое число, определяющее сдвиг номера и известное только легальным пользователям. Очевидно, что шифр Цезаря является примером аддитивного шифра.
Аддитивный шифр является частным случаем аффинного шифра. Правило шифрования сообщения имеет вид
Здесь производится умножение номера символа $x$ из алфавита, $x\in {\mathbb{}}\{ 0, 1, 2, \dots, N \leq n-1 \}$, на заданное целое число $a$ и сложение с числом $b$ по модулю целого числа $n$. Ключом является $K = (a, b)$.
Расшифрование осуществляется по формуле:
Чтобы обеспечить обратимость в этом шифре, должен существовать единственный обратный элемент $a^{-1}$ по модулю $n$. Для этого должно выполняться условие $\gcd(a,n) = 1$, то есть $a$ и $n$ должны быть взаимно простыми числами ($\gcd$ – сокращение, образованное от термина greatest common divisor – наибольший общий делитель, $\text{НОД}$). Очевидно, что для «взлома» такого шифра достаточно найти две пары букв – две замены.