Если Вы, уважаемый читатель, хоть немного увлекаетесь криптографией, или даже если не увлекаетесь, но имеете к ней некоторое отношение в силу своей деятельности или в силу того, что Вы периодически шифруете какие-то свои конфиденциальные данные, то Вам наверняка или почти наверняка встречалась при просмотре материалов во всемирной сети Интернет такая аббревиатура, как DES. Наверное, Вам будет совсем небезынтересно узнать, что же это такое и для чего данная штука нужна? В данной статье я и постараюсь осветить данный вопрос.

DES (Data Encryption Standard) – симметричный алгоритм шифрования. Данный алгоритм был разработан в корпорации IBM в 1977 году. Он утвержден правительством США в качестве стандарта FIPS 46-3.

Алгоритм шифрования DES использует ключ длиной 56 бит, при этом блоки состоят из 64 бит каждый и используется сеть Фейстеля, состоящая из шестнадцати циклов. При шифровании данных алгоритмом DES используются как линейные, так и нелинейные преобразования.

Как же появился алгоритм DES? Еще в далеком 1972 году в правительстве США назрела необходимость разработки единого стандарта для шифрования данных некритичной информации. В 1973 году, после различных увязок и согласований с различными специальными службами и институтами, был объявлен конкурс на разработку алгоритма шифрования, который удовлетворял бы всем требованиям. Но ни одна из поданных на конкурс заявок не обеспечивала выполнения всех требований проекта. Второй конкурс был организован еще через год – в 1974 году. Победителем конкурса стала всемирно сейчас известная компания IBM со своим шифром под названием Люцифер – он был основан на разработанном немного ранее алгоритме Фейстеля.

В 1975 году алгоритм был официально опубликован, после чего было проведено два симпозиума по обсуждению его работы. При этом в адрес американских спецслужб было выдвинуто обвинение, что дескать, они сознательно вмешались в разработку алгоритма и ослабили его в части, касающейся возможности быстрой расшифровки данных этими самыми спецслужбами. Разразился скандал, была создана сенатская комиссия и проведено парламентское расследование. Данное расследование установило, что спецслужбы никоим образом не вмешивались в создание алгоритма. Однако домыслы, догадки и подозрения остались, и только часть их была развеяна в 1990 году, когда были опубликованы результаты нескольких независимых исследований по данному алгоритму.

Вот такая почти детективная история.

Алгоритм DES является блочным шифром. При осуществлении шифрования данных входные данные – это блок размером а бит. При шифровании используется с-битный ключ. После осуществления шифрования получается опять же а-битный блок уже зашифрованной информации. Даже небольшие изменения во входных данных приводят к большим изменениям в результате шифрования.

При использовании DES все данные вначале преобразуются в бинарный вид, затем разбиваются на блоки, и только потом осуществляется их шифрование. Шифрование алгоритмом DES может быть реализовано как определенными программными, так и аппаратными продуктами.

Помимо блочного шифрования данных, в алгоритме DES также используется векторный сдвиг и перестановка с использованием все того же ключа шифрования, который, как Вы помните, состоит из 56 бит. Все это осуществляется с использованием функции Фейстеля.

Так как рассматриваемый нами алгоритм является симметричным, то все действия по расшифровке данных представляют из сея обратные шифрованию.

Алгоритм DES чаще всего используется в четырех различных режимах:

  1. Режим электронной кодовой книги – когда исходные данные просто разбиваются на блоки, при этом каждый отдельный блок шифруется отдельно, без какого-либо взаимодействия с другими блоками.
  2. Режим сцепления блоков – когда каждый следующий блок перед зашифровкой сцепляется со следующим блоком открытого текста. При этом использовании наиболее слабым звеном является начальный вектор сдвига, он должен храниться в секрете.
  3. Режим обратной связи – при использовании данного режима создается последовательность блоков шифруемых данных. Начальный же вектор служит для того, чтобы разные блоки шифровались по-своему, но использовали при этом один и тот же ключ.
  4. Режим обратной связи по выходу – как и в предыдущем пункте, создается блочная последовательность данных, но алгоритм использования векторов сдвига и ключа шифрования немного другой.

Вследствие использования всего лишь 56-битного ключа шифрования алгоритм DES может быть взломан путем тотального перебора на любой современной вычислительной системе за вполне реальные сроки – несколько дней. Так что он в настоящее время используется только на устаревших системах, и ему на смену идут алгоритмы 3DES, 2DES и AES.