Спустя некоторое время симметричные алгоритмы были разделены на два больших класса - блочные и поточные.
В первых открытый текст разбивается на блоки подходящей длины (например, размер блоков шифрования в DES равен 64 битам) и фактически каждый блок шифруется, хотя существуют различные варианты применения алгоритмов блочного шифрования, но об этом будет сказано в главе, посвященной блочным алгоритмам.
В поточных алгоритмах каждый символ открытого текста зашифровывается независимо от других и расшифровывается таким же образом. Иначе говоря, преобразование каждого символа открытого текста меняется от одного символа к другому, в то время как для блочных алгоритмов в рамках шифрования блока используется одно и то же криптографическое преобразование. Главная идея, воплощенная в алгоритмах поточного шифрования, заключается в выработке на основе секретного ключа последовательности символов из входного алфавита, с которым работает алгоритм шифрования. Это могут быть как, например, символы английского языка, так и цифры десятичной системы исчисления, при этом входной текст преобразуется в соответствии с выбранным алфавитом.
Следует учесть, что такая последовательность имеет длину, которая равна открытому тексту. Ее иногда называют гаммой. Зашифрование и расшифрование может, например, осуществляться путем модульного суммирования символа открытого текста с символом гаммы. Стойкость поточных алгоритмов шифрования зависит от того, насколько выработанная гамма будет обладать свойством равновероятности появления очередного символа. Основная проблема в обеспечении безопасности при использовании поточных алгоритмов шифрования заключатся в том, что выработанную гамму недопустимо использовать более одного раза.
Далее, применяя к полученной сумме метод вероятностных слов или статистического анализа, есть вероятность найти оба открытых сообщения. На одном ключе может быть выработано конечное число символов гаммы, поскольку через определенное количество символов она начнет повторяться, то есть генератор гаммы всегда имеет некоторый период. Поэтому при реализации поточного алгоритма шифрования необходимо добиваться как можно большего периода или чаще менять секретный ключ