[[Файл:Letter-frequences.png|thumb]]
[[Файл:Enigma rotors with alphabet rings.jpg|thumb|Скремблер машины [[:w:Энигма|Энигма]]]]
Простые алгоритмы шифрования, например код Цезаря, легко атакуются, если сообщение достаточно длинное и известны частоты букв алфавита. Для этого используется таблицы частот букв, которые составили для всех языков.
{{NSFW|1=Пример взлома|2=
Давайте на примере текста, с которого начинается эта статья, проведем подобный криптоанализ. Засунем текст в [http://www.siteprojects.ru/?article=seo-kolichestvo сервис подсчета букв] и получим число раз, которое использовалась каждая буква. Отсортируем таблицу в Excel:
Отсюда видно, что самые частые буквы: «л», «с», «з» и «г». А в русском языке самые частые буквы (не считая пробела): «о», «е», «а», «и». Некоторые поспешат сопоставить эти буквы 1 к 1, однако не всё так просто: в данном тексте повышена частота буквы «и» (из-за слова «шифр», очевидно), поэтому она встречается даже чаще, чем «о». Можно применить знание о том, что буквы сдвинуты, а не перемешаны. Так или иначе, но правильное соответствие: «о» → «с», «е» → «з», «а» → «г», «и» → «л» находится довольно быстро.
Ясно, что можно было просто перебрать все 32 варианта кода Цезаря для русского алфавита и получить ответ. Но суть в том, что неслучайность открытого текста приводит к упрощению криптоанализа. Чтобы это уяснить, рассмотрим более сложный пример: подстановочную таблицу. Каждой букве взаимно однозначно ставится в соответствие другая буква. Код Цезаря является частным случаем этого алгоритма. Взлом «в лоб» потребовал бы рассмотрения 32! = 263130836933693530167218012160000000 вариантов, а взлом через частоты букв — примерно столько же, как для кода Цезаря.
На заре криптографии отдельный этап при шифровании уделялся избавлению от неслучайности входного текста. На этом этапе текст накладывался на другой случайный текст (номера букв суммируются, при переходе через последнюю букву алфавита возврат к первой букве алфавита), после чего случайный текст приписывался в начало. Этот этап называется '''скремблированием'''. Оно является обратимым шифрованием без ключа, поэтому само по себе открытый текст не защищает, однако приближает его к случайной последовательности, подготавливает для дальнейшего шифрования, затрудняя статистические атаки.
При скремблировании длина сообщения увеличивается незначительно — на длину накладываемого случайного текста. Если же случайный текст не приписывать в начало сообщения и если его длина равна длине сообщения, то такое сообщение [[:w:Гаммирование#Стойкость|абсолютно невозможно восстановить]] без знания этого случайного текста (при условии, что он был действительно случайным). Ключом служит этот случайный текст. Такой способ шифрования использовался разведчиками для передачи информации государственной важности. Разумеется, ключ можно было использовать только один раз.
Вместо скремблирования по описанному алгоритму можно применить алгоритм сжатия или любой алгоритм, повышающий энтропию текста (похожесть его на случайный).
Когда изобрели блочные шифры (см. ниже), отпала потребность в скремблере. Блочный шифр «засасывает» за раз (то есть, за один блок) достаточно много букв и расхуячивает их внутри блока до полной неузнаваемости. Остается лишь искать статистические зависимости между блоками, что также заходит в тупик, так как один и тот же вход блока дает разный выход в зависимости от номера блока или от содержимого предыдущего блока.