Американский стандарт шифрования данных DES

Официальная история стандарта шифрования США началась в 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.




double arrow
Сейчас читают про: