Официальная история стандарта шифрования США началась в 1972 году с того, что национальное бюро стандартов (НБС, National Bureau of Standards, NBS) США выдвинуло программу разработки системы стандартов по защите от несанкционированного доступа данных, хранящихся и обрабатываемых на электронно-вычислительных машинах. Это направление было признано одной из самых приоритетных областей, остро нуждающейся в регламентирующих документах. Одним из важнейших направлений была признана разработка стандартного алгоритма шифрования. Деятельность по разработке и утверждению стандарта началась в мае 1973 года, когда НБС опубликовало в Федеральном Реестре США обращение с призывом к учреждениям и фирмам США предлагать свои алгоритмы шифрования в качестве кандидатов на место стандарта. Однако откликов с конкретными предложениями не последовало.
Но уже к началу семидесятых годов двадцатого столетия компьютеры получили массовое распространение и проблема защиты данных, хранимых и обрабатываемых на них, стала осознаваться все большим числом специалистов. Многие крупные корпорации, не говоря уже о государственных службах, проводили собственные исследования в данной области. Одним из самых известных исследовательских центров такого рода в те времена являлась научная лаборатория фирмы IBM, возглавляемая доктором Фейстелем. Проводимая в ней исследовательская работа привела к созданию практической системы шифрования, получившей название "Люцифер", и к разработке архитектурных принципов, позволяющих создавать эффективные и надежные шифры, хорошо подходящие для реализации на компьютерных устройствах. Архитектура шифров, базирующаяся на этих принципах, позже получила название "сеть Фейстеля" по имени своего создателя, который в своей известной работе "Криптография и компьютерная безопасность" изложил новый подход к созданию стойких шифров для компьютерного применения.
Шифр DES (Data Encryрtion Standard) был разработан фирмой IBM и сертифицирован NSA (Национальной Безопасности США). В 1977 г. принят в качестве федерального стандарта США и в течение двух десятилетий считался достаточно надежным и универсальным.
Стандарт DES предназначен для защиты от несанкционированного доступа к важной, но несекретной информации в государственных и коммерческих организациях США. Алгоритм, положенный в основу стандарта, распространялся достаточно быстро, и уже в 1980 г. был одобрен Национальным институтом стандартов и технологий США. С этого момента DES превращается в стандарт не только по названию, но и фактически. Появляются программное обеспечение и специализированные микроЭВМ, предназначенные для шифрования и расшифрования информации в сетях передачи данных.
К настоящему времени DES является наиболее распространенным алгоритмом, используемым в системах защиты коммерческой информации. Более того, реализация алгоритма DES в таких системах становится признаком хорошего тона.
Основные достоинства алгоритма DES:
• используется только один ключ длиной 56 бит;
• зашифровав сообщение с помощью одного пакета программ, для расшифровки можно использовать любой другой пакет программ, соответствующий стандарту DES;
• относительная простота алгоритма обеспечивает высокую скорость обработки;
Сеть Фейстеля
Многие современные стандартные криптосистемы относятся к классу блочных шифров, которые выполняют параметризованное секретным ключом преобразование блоков исходного в блоки шифрограммы.
В современном блочном шифре блоки открытого текста и шифртекста представляют собой двоичные последовательности обычно длиной 64 бита. В принципе каждый блок может принимать 264 значений. Поэтому подстановки выполняются в очень большом алфавите, содержащем до 264@1019 "символов".
Для построения блочного шифра часто используют конструкцию, называемую сетью Фейстеля (Feistel Network). Блок сообщения T разбивается на две части L и R по 32 бита каждый: T=L R.
Одна итерация или шаг сети Фейстеля представляет собой следующее преобразование:
Li = Ri -1,
Ri = L i -1Å f (Ri -1, Ki), i = 1,2,...,16.
Шаги повторяются многократно, причем (Li,Ri) используется в качестве (Li -1, Ri -1) на следующей итерации. Функция fi, может зависеть или не зависеть от номера шага i. На каждом шаге используется подключ Ki, вычисляемый по ключу K. Уже после двух шагов каждая из частей результата зависит от обеих частей исходного сообщения.
Кроме того, даже если функция f не является взаимно однозначной, преобразование сети Фейстеля обратимо:
Ri -1= Li,
L i -1= Ri Å f (Li, K i), i = 1,2,...,16.






