Современные алгоритмы шифрования. Методы шифрования данных - блог веб-программиста

Доброго времени суток, дорогие друзья, знакомые и прочие личности. Сегодня поговорим про WiFi шифрование , что логично из заголовка.

Думаю, что многие из Вас пользуются такой штукой как , а значит, скорее всего, еще и Wi-Fi на них для Ваших ноутбуков, планшетов и прочих мобильных устройств.

Само собой, что этот самый вай-фай должен быть закрыт паролем, иначе вредные соседи будут безвозмездно пользоваться Вашим интернетом, а то и того хуже, - Вашим компьютером:)

Само собой, что помимо пароля есть еще и всякие разные типы шифрования этого самого пароля, точнее говоря, Вашего Wi-Fi протокола, чтобы им не просто не пользовались, но и не могли взломать.

В общем, сегодня хотелось бы немного поговорить с Вами о такой вещи как WiFi шифрование, а точнее этих самых WPE, WPA, WPA2, WPS и иже с ними.

Готовы? Давайте приступим.

WiFi шифрование - общая информация

Для начала сильно упрощенно поговорим о том как выглядит аутентификация с роутером (сервером), т.е как выглядит процесс шифрования и обмена данными. Вот такая вот у нас получается картинка:

Т.е, сначала, будучи клиентом мы говорим, что мы, - это мы, т.е знаем пароль (стрелочка зелененькая сверху). Сервер, тобишь допустим роутер, радуется и отдаёт нам случайную строку (она же является ключом с помощью которого мы шифруем данные), ну и далее происходит обмен данными, зашифрованными этим самым ключом.

Теперь же поговорим о типах шифрования, их уязвимостях и прочем прочем. Начнем по порядку, а именно с OPEN , т.е с отсутствия всякого шифра, а далее перейдем ко всему остальному.

Тип 1 - OPEN

Как Вы уже поняли (и я говорил только что), собственно, OPEN - это отсутствие всякой защиты, т.е. Wifi шифрование отсутствует как класс, и Вы и Ваш роутер абсолютно не занимаются защитой канала и передаваемых данных.

Именно по такому принципу работают проводные сети - в них нет встроенной защиты и «врезавшись» в неё или просто подключившись к хабу/свичу/роутеру сетевой адаптер будет получать пакеты всех находящихся в этом сегменте сети устройств в открытом виде.

Однако с беспроводной сетью «врезаться» можно из любого места - 10-20-50 метров и больше, причём расстояние зависит не только от мощности вашего передатчика, но и от длины антенны хакера. Поэтому открытая передача данных по беспроводной сети гораздо более опасна, ибо фактически Ваш канал доступен всем и каждому.

Тип 2 - WEP (Wired Equivalent Privacy)

Один из самых первых типов Wifi шифрования это WEP . Вышел еще в конце 90 -х и является, на данный момент, одним из самых слабых типов шифрования.

Во многих современных роутерах этот тип шифрования вовсе исключен из списка возможных для выбора:

Его нужно избегать почти так же, как и открытых сетей - безопасность он обеспечивает только на короткое время, спустя которое любую передачу можно полностью раскрыть вне зависимости от сложности пароля.

Ситуация усугубляется тем, что пароли в WEP - это либо 40 , либо 104 бита, что есть крайне короткая комбинация и подобрать её можно за секунды (это без учёта ошибок в самом шифровании).

Основная проблема WEP - в фундаментальной ошибке проектирования. WEP фактически передаёт несколько байт этого самого ключа вместе с каждым пакетом данных.

Таким образом, вне зависимости от сложности ключа раскрыть любую передачу можно просто имея достаточное число перехваченных пакетов (несколько десятков тысяч, что довольно мало для активно использующейся сети).

Тип 3 - WPA и WPA2 (Wi-Fi Protected Access)

Это одни из самых современных на данный момент типов такой штуки, как Wifi шифрование и новых пока, по сути, почти не придумали.

Собственно, поколение этих типов шифрования пришло на смену многострадальному WEP . Длина пароля - произвольная, от 8 до 63 байт, что сильно затрудняет его подбор (сравните с 3, 6 и 15 байтами в WEP ).

Стандарт поддерживает различные алгоритмы шифрования передаваемых данных после рукопожатия: TKIP и CCMP .

Первый - нечто вроде мостика между WEP и WPA , который был придуман на то время, пока IEEE были заняты созданием полноценного алгоритма CCMP . TKIP так же, как и WEP , страдает от некоторых типов атак, и в целом не сильно безопасен.

Сейчас используется редко (хотя почему вообще ещё применяется - мне не понятно) и в целом использование WPA с TKIP почти то же, что и использование простого WEP .

Кроме разных алгоритмов шифрования, WPA (2) поддерживают два разных режима начальной аутентификации (проверки пароля для доступа клиента к сети) - PSK и Enterprise . PSK (иногда его называют WPA Personal ) - вход по единому паролю, который вводит клиент при подключении.

Это просто и удобно, но в случае больших компаний может быть проблемой - допустим, у вас ушёл сотрудник и чтобы он не мог больше получить доступ к сети приходится менять пароль для всей сети и уведомлять об этом других сотрудников. Enterprise снимает эту проблему благодаря наличию множества ключей, хранящихся на отдельном сервере - RADIUS .

Кроме того, Enterprise стандартизирует сам процесс аутентификации в протоколе EAP (E xtensible A uthentication P rotocol), что позволяет написать собственный алгоритм.

Тип 4 - WPS/QSS

Wifi шифрование WPS , он же QSS - интересная технология, которая позволяет нам вообще не думать о пароле, а просто нажать на кнопку и тут же подключиться к сети. По сути это «легальный» метод обхода защиты по паролю вообще, но удивительно то, что он получил широкое распространение при очень серьёзном просчёте в самой системе допуска - это спустя годы после печального опыта с WEP .

WPS позволяет клиенту подключиться к точке доступа по 8-символьному коду, состоящему из цифр (PIN ). Однако из-за ошибки в стандарте нужно угадать лишь 4 из них. Таким образом, достаточно всего-навсего 10000 попыток подбора и вне зависимости от сложности пароля для доступа к беспроводной сети вы автоматически получаете этот доступ, а с ним в придачу - и этот самый пароль как он есть.

Учитывая, что это взаимодействие происходит до любых проверок безопасности, в секунду можно отправлять по 10-50 запросов на вход через WPS , и через 3-15 часов (иногда больше, иногда меньше) вы получите ключи от рая.

Когда данная уязвимость была раскрыта производители стали внедрять ограничение на число попыток входа (rate limit ), после превышения которого точка доступа автоматически на какое-то время отключает WPS - однако до сих пор таких устройств не больше половины от уже выпущенных без этой защиты.

Даже больше - временное отключение кардинально ничего не меняет, так как при одной попытке входа в минуту нам понадобится всего 10000/60/24 = 6,94 дней. А PIN обычно отыскивается раньше, чем проходится весь цикл.

Хочу ещё раз обратить ваше внимание, что при включенном WPS ваш пароль будет неминуемо раскрыт вне зависимости от своей сложности. Поэтому если вам вообще нужен WPS - включайте его только когда производится подключение к сети, а в остальное время держите выключенным.

Послесловие

Выводы, собственно, можете сделать сами, а вообще, само собой разумеется, что стоит использовать как минимум WPA , а лучше WPA2 .

В следующем материале по Wi-Fi мы поговорим о том как влияют различные типы шифрования на производительность канала и роутера, а так же рассмотрим некоторые другие нюансы.

Как и всегда, если есть какие-то вопросы, дополнения и всё такое прочее, то добро пожаловать в комментарии к теме про Wifi шифрование .

PS : За существование этого материала спасибо автору Хабра под ником ProgerXP . По сути вся текстовка взята из его материала , чтобы не изобретать велосипед своими словами.

Нередко возникает вопрос: какой тип шифрования Wi-Fi выбрать для домашнего маршрутизатора. Казалось бы мелочь, но при некорректных параметрах, к сети , да и c передачей информации по Ethernet-кабелю могут возникнуть проблемы.

Поэтому здесь мы рассмотрим, какие типы шифрования данных поддерживают современные WiFi роутеры, и чем тип шифрования aes отличается от популярного wpa и wpa2.

Тип шифрования беспроводной сети: как выбрать способ защиты?

Итак, всего существует 3 типа шифрования:

  1. 1. WEP шифрование

Тип шифрования WEP появился ещё в далеких 90-х и был первым вариантом защиты Wi-Fi сетей: позиционировался он как аналог шифрования в проводных сетях и применял шифр RC4. Существовало три распространенных алгоритма шифровки передаваемых данных - Neesus, Apple и MD5 - но каждый из них не обеспечивал должного уровня безопасности. В 2004 году IEEE объявили стандарт устаревшим ввиду того, что он окончательно перестал обеспечивать безопасность подключения к сети. В данный момент такой тип шифрования для wifi использовать не рекомендуется, т.к. он не является криптостойким.

  1. 2. WPS - это стандарт, не предусматривающий использование . Для подключения к роутеру достаточно просто нажать на соответствующую кнопку, о которой мы подробно рассказывали в статье .

Теоретически WPS позволяет подключиться к точке доступа по восьмизначному коду, однако на практике зачастую достаточно лишь четырех.

Этим фактом преспокойно пользуются многочисленные хакеры, которые достаточно быстро (за 3 - 15 часов) взламывают сети wifi, поэтому использовать данное соединение также не рекомендуется.

  1. 3. Тип шифрования WPA/WPA2

Куда лучше обстоят дела с шифрованием WPA. Вместо уязвимого шифра RC4 здесь используется шифрование AES, где длина пароля – величина произвольная (8 – 63 бита). Данный тип шифрования обеспечивает нормальный уровень безопасности безопасность, и вполне подходит для простых wifi маршрутизаторов. При этом существует две его разновидности:

Тип PSK (Pre-Shared Key) – подключение к точке доступа осуществляется с помощью заранее заданного пароля.
- Enterprise – пароль для каждого узла генерируется автоматически с проверкой на серверах RADIUS.

Тип шифрования WPA2 является продолжением WPA с улучшениями безопасности. В данном протоколе применяется RSN, в основе которого лежит шифрование AES.

Как и у шифрования WPA, тип WPA2 имеет два режима работы: PSK и Enterprise.

С 2006 года тип шифрования WPA2 поддерживается всем Wi-Fi оборудованием, соответственное гео можно выбрать для любого маршрутизатора.

Преимущества шифрования WPA2 перед WPA:

Генерация ключей шифрования происходит в процессе подключения к роутеру (взамен статических);
- Использование алгоритма Michael для контроля целостности передаваемых сообщений
- Использование вектора инициализации существенно большей длины.
Кроме того, тип шифрования Wi-Fi выбирать стоит в зависимости от того, где используется ваш роутер:

Шифрование WEP, TKIP и CKIP вообще не стоит использовать;

Для домашней точки доступа вполне подойдет WPA/WPA2 PSK;

Для стоит выбрать WPA/WPA2 Enterprise.

шифрование можно интерпретировать и как аутентификацию.

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

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

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

Основные концепции шифрования

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

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

С помощью шифрования обеспечиваются три состояния безопасности информации.

  • Конфиденциальность. Шифрование используется для сокрытия информации от неавторизованных пользователей при передаче или при хранении.
  • Целостность. Шифрование используется для предотвращения изменения информации при передаче или хранении.
  • Идентифицируемость. Шифрование используется для аутентификации источника информации и предотвращения отказа отправителя информации от того факта, что данные были отправлены именно им.

Термины, связанные с шифрованием

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

Существуют также четыре термина, которые необходимо знать:

  • Криптография. Наука о сокрытии информации с помощью шифрования.
  • Криптограф. Лицо, занимающееся криптографией.
  • Криптоанализ . Искусство анализа криптографических алгоритмов на предмет наличия уязвимостей.
  • Криптоаналитик. Лицо, использующее криптоанализ для определения и использования уязвимостей в криптографических алгоритмах.

Атаки на систему шифрования

Системы шифрования могут подвергнуться атакам тремя следующими способами:

  • Через слабые места в алгоритме.
  • Посредством атаки "грубой силы" по отношению к ключу.
  • Через уязвимости в окружающей системе.

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

Атаки "грубой силы" являются попытками подбора любого возможного ключа для преобразования шифра в открытый текст . В среднем аналитик с использованием этого метода должен проверить действие 50 процентов всех ключей, прежде чем добьется успеха. Таким образом, мощность алгоритма определяется только числом ключей, которые необходимо перепробовать аналитику. Следовательно, чем длиннее ключ , тем больше общее число ключей, и тем больше ключей должен перепробовать злоумышленник до того, как найдет корректный ключ . Атаки с использованием грубой силы теоретически всегда должны заканчиваться успешно при наличии необходимого количества времени и ресурсов. Следовательно, алгоритмы нужно оценивать по периоду времени, в течение которого информация остается защищенной при проведении атаки с использованием "грубой силы".

Количество людей, которые активно пользуются интернетом растет, как на дрожжах: на работе для решения корпоративных целей и администрирования, дома, в общественных местах. Распространение получают Wi-Fi сети и оборудование, позволяющее беспрепятственно получать доступ к интернету.

Вай фай сеть обладает зашитой в виде пароля, не зная который, подключиться к конкретной сети будет практически невозможно, кроме общественных сетей (кафе, рестораны, торговые центры, точки доступа на улицах) . «Практически» не стоит понимать в буквальном смысле: умельцев, способных «вскрыть» сеть и получить доступ не только к ресурсу роутера, но и к передаваемым внутри конкретной сети данным, достаточно.

Но в этом вступительном слове мы поговорили о подключении к wi-fi — аутентификации пользователя (клиента), когда клиентское устройство и точка доступа обнаруживают друг друга и подтверждают, что могут общаться между собой.

Варианты аутентификации :

  • Open - открытая сеть, в которой все подключаемые устройства авторизованы сразу
  • Shared - подлинность подключаемого устройства должна быть проверена ключом/паролем
  • EAP - подлинность подключаемого устройства должна быть проверена по протоколу EAP внешним сервером

Шифрование — это алгоритм скремблирования (scramble - шифровать, перемешивать) передаваемых данных, изменение и генерация ключа шифрования

Для оборудования wifi были разработаны различные типы шифрования, дающие возможность защищать сеть от взлома, а данные от общего доступа.

На сегодняшний день выделяются несколько вариантов шифрования. Рассмотрим каждый из них подробнее.

Выделяются и являются самыми распространенными следующие типы:

  • OPEN;
  • WPA, WPA2;

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

Если сеть открыта, это не значит, что любой может с ней работать. Чтобы пользоваться такой сетью и передавать в ней данные, нужно совпадение используемого метода шифрования. И еще одно условие пользования такой сетью отсутствие MAC-фильтра, который определяет MAC-адреса пользователей, для того, что бы распознать каким устройствам запрещено или разрешено пользоваться данной сетью

WEP

Второй тип, он же WEP, уходит корнями в 90-е годы прошлого века, являясь родоначальником всех последующих типов шифрования. Wep шифрование сегодня – слабейший из всех существующих вариантов организации защиты. Большинство современных роутеров, создаваемых специалистами и учитывающих интересы конфиденциальности пользователей, не поддерживают шифрование wep.

Среди минусов, вопреки факту наличия хоть какой-то защиты (в сравнении с OPEN), выделяется ненадежность: она обусловлена кратковременной защитой, которая активируется на определенные интервалы времени. По истечении этого промежутка, пароль к вашей сети можно будет легко подобрать, а ключ wep будет взломан за время до 1 минуты. Это обусловлено битностью wep ключа, которая составляет в зависимости от характеристик сетевого оборудования от 40 до 100 бит.

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

Таким образом, шифрование wep – самый ненадежный способ защиты вашей сети и сетевого оборудования.

WPA, WPA2

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

Данные стандарты поддерживают различные алгоритмы шифрования, которые могут передаваться после взаимодействия протоколов TKIP и AES. Тип шифрования aes является более совершенным протоколом, чем tkip, и большинством современных роутеров поддерживается и активно используется.

Шифрование wpa или wpa2 – предпочтительный тип как для домашнего использования, так и для корпоративного. Последний дает возможность применения двух режимов аутентификации: проверка паролей для доступа определенных пользователей к общей сети осуществляется, в зависимости от заданных настроек, по режиму PSK или Enterprise.

PSK предполагает доступ к сетевому оборудованию и ресурсам интернета при использовании единого пароля, который требуется ввести при подключении к роутеру. Это предпочтительный вариант для домашней сети, подключение которой осуществляется в рамках небольших площадей определенными устройствами, например: мобильным, персональным компьютером и ноутбуком.

Для компаний, имеющих солидные штаты сотрудников, PSK является недостаточно удобным режимом аутентификации, потому был разработан второй режим – Enterprise. Его использование дает возможность применения множества ключей, который будут храниться на особом выделенном сервере.

WPS

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

Подключение посредством такой технологии осуществляется при использовании ключа, включающего в себя 8 символов. Уязвимость типа шифрования заключается в следующем: он обладает серьезной ошибкой, которая взломщикам или хакерам позволяет получить доступ к сети, если им доступны хотя бы 4 цифры из восьмизначной комбинации. Количество попыток подбора пароля при этом составляет порядка нескольких тысяч, однако для современных программных средств это число – смешное. Если измерять процесс форсирования WPS во времени, то процесс займет не более суток.

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

И тем не менее, чтобы повысить общий уровень безопасности, опытные пользователи рекомендуют принципиально отказываться от рассмотренной технологии.

Подводя итоги

Самой современной и по-настоящему надежной методикой организации защиты сети и данных, передаваемых внутри нее, является WPA или ее аналог WPA2.

Первый вариант предпочтителен для домашнего использования определенным числом устройств и пользователей.

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

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

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


Шифрование является наиболее широко используемым криптографическим методом сохранения конфиденциальности информации, он защищает данные от несанкционированного ознакомления с ними. Для начала рассмотрим основные методы криптографической защиты информации. Словом, криптография - наука о защите информации с использованием математических методов. Существует и наука, противоположная криптографии и посвященная методам вскрытия защищенной информации - криптоанализ . Совокупность криптографии и криптоанализа принято называть криптологией . Криптографические методы могут быть классифицированы различным образом, но наиболее часто они подразделяются в зависимости от количества ключей, используемых в соответствующих криптоалгоритмах (см. рис. 1):

  1. Бесключевые, в которых не используются какие-либо ключи.
  2. Одноключевые - в них используется некий дополнительный ключевой параметр - обычно это секретный ключ.
  3. Двухключевые, использующие в своих вычислениях два ключа: секретный и открытый.

Рис. 1. Криптоалгоритмы

Обзор криптографических методов

Шифрование является основным методом защиты; рассмотрим его подробно далее.

Стоит сказать несколько слов и об остальных криптографических методах:

  1. Электронная подпись используется для подтверждения целостности и авторства данных. Целостность данных означает, что данные не были случайно или преднамеренно изменены при их хранении или передаче.
    Алгоритмы электронной подписи используют два вида ключей:
    • секретный ключ используется для вычисления электронной подписи;
    • открытый ключ используется для ее проверки.
    При использовании криптографически сильного алгоритма электронной подписи и при грамотном хранении и использовании секретного ключа (то есть при невозможности использования ключа никем, кроме его владельца) никто другой не в состоянии вычислить верную электронную подпись какого-либо электронного документа.
  2. Аутентификация позволяет проверить, что пользователь (или удаленный компьютер) действительно является тем, за кого он себя выдает. Простейшей схемой аутентификации является парольная - в качестве секретного элемента в ней используется пароль, который предъявляется пользователем при его проверке. Такая схема доказано является слабой, если для ее усиления не применяются специальные административно-технические меры. А на основе шифрования или хэширования (см. ниже) можно построить действительно сильные схемы аутентификации пользователей.
  3. Существуют различные методы криптографического контрольного суммирования:
    • ключевое и бесключевое хэширование;
    • вычисление имитоприставок;
    • использование кодов аутентификации сообщений.
    Фактически, все эти методы различным образом из данных произвольного размера с использованием секретного ключа или без него вычисляют некую контрольную сумму фиксированного размера, однозначно соответствующую исходным данным.
    Такое криптографическое контрольное суммирование широко используется в различных методах защиты информации, например:
    • для подтверждения целостности любых данных в тех случаях, когда использование электронной подписи невозможно (например, из-за большой ресурсоемкости) или является избыточным;
    • в самих схемах электронной подписи - "подписывается" обычно хэш данных, а не все данные целиком;
    • в различных схемах аутентификации пользователей.
  4. Генераторы случайных и псевдослучайных чисел позволяют создавать последовательности случайных чисел, которые широко используются в криптографии, в частности:
    • случайные числа необходимы для генерации секретных ключей, которые, в идеале, должны быть абсолютно случайными;
    • случайные числа применяются во многих алгоритмах электронной подписи;
    • случайные числа используются во многих схемах аутентификации.
    Не всегда возможно получение абсолютно случайных чисел - для этого необходимо наличие качественных аппаратных генераторов. Однако, на основе алгоритмов симметричного шифрования можно построить качественные генераторы псевдослучайных чисел.
Шифрование

Шифрование информации - это преобразование открытой информации в зашифрованную (которая чаще всего называется шифртекстом или криптограммой ), и наоборот. Первая часть этого процесса называется зашифрованием , вторая - расшифрованием .

Можно представить зашифрование в виде следующей формулы:

С = E k1 (M),

где:
M (message) - открытая информация,
С (cipher text) - полученный в результате зашифрования шифртекст,
E (encryption) - функция зашифрования, выполняющая криптографические преобразования над M ,
k1 (key) - параметр функции E , называемый ключом зашифрования.

В стандарте ГОСТ 28147-89 (стандарт определяет отечественный алгоритм симметричного шифрования) понятие ключ определено следующим образом: "Конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования, обеспечивающее выбор одного преобразования из совокупности всевозможных для данного алгоритма преобразований".

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

Аналогичным образом можно представить и расшифрование:

M" = D k2 (C),

где:
M" - сообщение, полученное в результате расшифрования,
D (decryption) - функция расшифрования; так же, как и функция зашифрования, выполняет криптографические преобразования над шифртекстом,
k2 - ключ расшифрования.

Для получения в результате расшифрования корректного открытого текста (то есть того самого, который был ранее зашифрован: M" = M), необходимо одновременное выполнение следующих условий:

  1. Функция расшифрования должна соответствовать функции зашифрования.
  2. Ключ расшифрования должен соответствовать ключу зашифрования.

При отсутствии верного ключа k2 получить исходное сообщение M" = M с помощью правильной функции D невозможно. Под словом "невозможно" в данном случае обычно понимается невозможность вычисления за реальное время при существующих вычислительных ресурсах.

Алгоритмы шифрования можно разделить на две категории (см. рис. 1):

  1. Алгоритмы симметричного шифрования.
  2. Алгоритмы асимметричного шифрования.

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

В асимметричном шифровании ключ зашифрования k1 легко вычисляется из ключа k2 таким образом, что обратное вычисление невозможно. Например, соотношение ключей может быть таким:

k1 = a k2 mod p,

где a и p - параметры алгоритма шифрования, имеющие достаточно большую размерность.

Такое соотношение ключей используется и в алгоритмах электронной подписи.

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

Симметричное шифрование менее удобно из-за того, что при передаче зашифрованной информации кому-либо необходимо, чтобы адресат заранее получил ключ для расшифрования информации. У асимметричного шифрования такой проблемы нет (поскольку открытый ключ можно свободно передавать по сети), однако, есть свои проблемы, в частности, проблема подмены открытого ключа и медленная скорость шифрования. Наиболее часто асимметричное шифрование используется в паре с симметричным - для передачи ключа симметричного шифрования, на котором шифруется основной объем данных. Впрочем, схемы хранения и передачи ключей - это тема отдельной статьи. Здесь же позволю себе утверждать, что симметричное шифрование используется гораздо чаще асимметричного, поэтому остальная часть статьи будет посвящена только симметричному шифрованию.

Симметричное шифрование бывает двух видов:

  • Блочное шифрование - информация разбивается на блоки фиксированной длины (например, 64 или 128 бит), после чего эти блоки поочередно шифруются. Причем, в различных алгоритмах шифрования или даже в разных режимах работы одного и того же алгоритма блоки могут шифроваться независимо друг от друга или "со сцеплением" - когда результат зашифрования текущего блока данных зависит от значения предыдущего блока или от результата зашифрования предыдущего блока.
  • Поточное шифрование - необходимо, прежде всего, в тех случаях, когда информацию невозможно разбить на блоки - скажем, некий поток данных, каждый символ которых должен быть зашифрован и отправлен куда-либо, не дожидаясь остальных данных, достаточных для формирования блока. Поэтому алгоритмы поточного шифрования шифруют данные побитно или посимвольно. Хотя стоит сказать, что некоторые классификации не разделяют блочное и поточное шифрование, считая, что поточное шифрование - это шифрование блоков единичной длины.

Рассмотрим, как выглядят изнутри алгоритмы блочного симметричного шифрования.Структура алгоритмов шифрования

Подавляющее большинство современных алгоритмов шифрования работают весьма схожим образом: над шифруемым текстом выполняется некое преобразование с участием ключа шифрования, которое повторяется определенное число раз (раундов). При этом, по виду повторяющегося преобразования алгоритмы шифрования принято делить на несколько категорий. Здесь также существуют различные классификации, приведу одну из них. Итак, по своей структуре алгоритмы шифрования классифицируются следующим образом:

  1. Алгоритмы на основе сети Фейстеля.

    Сеть Фейстеля подразумевает разбиение обрабатываемого блока данных на несколько субблоков (чаще всего - на два), один из которых обрабатывается некоей функцией f() и накладывается на один или несколько остальных субблоков. На рис. 2 приведена наиболее часто встречающаяся структура алгоритмов на основе сети Фейстеля.

    Рис. 2. Структура алгоритмов на основе сети Фейстеля.

    Дополнительный аргумент функции f() , обозначенный на рис. 2 как Ki , называется ключом раунда . Ключ раунда является результатом обработки ключа шифрования процедурой расширения ключа, задача которой - получение необходимого количества ключей Ki из исходного ключа шифрования относительно небольшого размера (в настоящее время достаточным для ключа симметричного шифрования считается размер 128 бит). В простейших случаях процедура расширения ключа просто разбивает ключ на несколько фрагментов, которые поочередно используются в раундах шифрования; существенно чаще процедура расширения ключа является достаточно сложной, а ключи Ki зависят от значений большинства бит исходного ключа шифрования.

    Наложение обработанного субблока на необработанный чаще всего выполняется с помощью логической операции "исключающее или" - XOR (как показано на рис. 2). Достаточно часто вместо XOR здесь используется сложение по модулю 2 n , где n - размер субблока в битах. После наложения субблоки меняются местами, то есть в следующем раунде алгоритма обрабатывается уже другой субблок данных.

    Такая структура алгоритмов шифрования получила свое название по имени Хорста Фейстеля (Horst Feistel) - одного из разработчиков алгоритма шифрования Lucifer и разработанного на его основе алгоритма DES (Data Encryption Standard) - бывшего (но до сих пор широко используемого) стандарта шифрования США. Оба этих алгоритма имеют структуру, аналогичную показанной на рис. 2. Среди других алгоритмов, основанных на сети Фейстеля, можно привести в пример отечественный стандарт шифрования ГОСТ 28147-89, а также другие весьма известные алгоритмы: RC5, Blowfish, TEA, CAST-128 и т.д.

    На сети Фейстеля основано большинство современных алгоритмов шифрования - благодаря множеству преимуществ подобной структуры, среди которых стоит отметить следующие:

    • Алгоритмы на основе сети Фейстеля могут быть сконструированы таким образом, что для зашифрования и расшифрования могут использоваться один и тот же код алгоритма - разница между этими операциями может состоять лишь в порядке применения ключей Ki; такое свойство алгоритма наиболее полезно при его аппаратной реализации или на платформах с ограниченными ресурсами; в качестве примера такого алгоритма можно привести ГОСТ 28147-89.
  2. Алгоритмы на основе сети Фейстеля являются наиболее изученными - таким алгоритмам посвящено огромное количество криптоаналитических исследований, что является несомненным преимуществом как при разработке алгоритма, так и при его анализе.

    Существует и более сложная структура сети Фейстеля, пример которой приведен на рис. 3.

    Рис. 3. Структура сети Фейстеля.

    Такая структура называется обобщенной или расширенной сетью Фейстеля и используется существенно реже традиционной сети Фейстеля. Примером такой сети Фейстеля может служить алгоритм RC6.

  3. Алгоритмы на основе подстановочно-перестановочных сетей (SP-сеть - Substitution-permutation network).

    В отличие от сети Фейстеля, SP-сети обрабатывают за один раунд целиком шифруемый блок. Обработка данных сводится, в основном, к заменам (когда, например, фрагмент входного значения заменяется другим фрагментом в соответствии с таблицей замен, которая может зависеть от значения ключа Ki ) и перестановкам, зависящим от ключа Ki (упрощенная схема показана на рис. 4).

    Рис. 4. Подстановочно-перестановочная сеть.

    Впрочем, такие операции характерны и для других видов алгоритмов шифрования, поэтому, на мой взгляд, название "подстановочно-перестановочная сеть" является достаточно условным.

    SP-сети распространены существенно реже, чем сети Фейстеля; в качестве примера SP-сетей можно привести алгоритмы Serpent или SAFER+.

  4. Алгоритмы со структурой "квадрат" (Square).

    Для структуры "квадрат" характерно представление шифруемого блока данных в виде двумерного байтового массива. Криптографические преобразования могут выполняться над отдельными байтами массива, а также над его строками или столбцами.

    Структура алгоритма получила свое название от алгоритма Square, который был разработан в 1996 году Винсентом Риджменом (Vincent Rijmen) и Джоан Деймен (Joan Daemen) - будущими авторами алгоритма Rijndael, ставшего новым стандартом шифрования США AES после победы на открытом конкурсе. Алгоритм Rijndael также имеет Square-подобную структуру; также в качестве примера можно привести алгоритмы Shark (более ранняя разработка Риджмена и Деймен) и Crypton. Недостатком алгоритмов со структурой "квадрат" является их недостаточная изученность, что не помешало алгоритму Rijndael стать новым стандартом США.

    Рис. 5. Алгоритм Rijndael.

    На рис. 5 приведен пример операции над блоком данных, выполняемой алгоритмом Rijndael.

  5. Алгоритмы с нестандартной структурой, то есть те алгоритмы, которые невозможно причислить ни к одному из перечисленных типов. Ясно, что изобретательность может быть безгранична, поэтому классифицировать все возможные варианты алгоритмов шифрования представляется сложным. В качестве примера алгоритма с нестандартной структурой можно привести уникальный по своей структуре алгоритм FROG, в каждом раунде которого по достаточно сложным правилам выполняется модификация двух байт шифруемых данных (см. рис. 6).

    Рис. 6. Модификация двух байт шифруемых данных.

    Строгие границы между описанными выше структурами не определены, поэтому достаточно часто встречаются алгоритмы, причисляемые различными экспертами к разным типам структур. Например, алгоритм CAST-256 относится его автором к SP-сети, а многими экспертами называется расширенной сетью Фейстеля. Другой пример - алгоритм HPC, называемый его автором сетью Фейстеля, но относимый экспертами к алгоритмам с нестандартной структурой.