21 июля 2023, 14:40
Статья

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

REUTERS/ Beck Diefenbach

Криптография до века компьютеров

"Тайнопись" и "условное тайное письмо" — вот какие определения криптографии приводят словари первой половины прошлого века. Именно такую функцию эта область знания несла до появления и широкого распространения компьютеров, когда равно цене информации в Сети стала расти и угроза ей.

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

Как шифровали раньше

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

  • Атбаш. Одним из наиболее древних из известных нам шифров является Атбаш, появившийся примерно в 600-х годах до нашей эры. Криптограммы на его основе присутствуют в Библии и священной книге иудеев Танахе. Изначально он использовался только для иврита, но затем был приспособлен и для алфавитов других языков. Шифр здесь строился очень просто: алфавит нужного языка как бы отзеркаливали, в результате чего первой букве соответствовала последняя, второй — предпоследняя и так далее. Таким образом и происходила замена символов в сообщении.

  • Шифр Цезаря. Достоверно неизвестно, был ли знаменитый император его автором, но он точно был одним из его главных пользователей. У этого шифра существует множество разновидностей, однако принцип работы у всех один. Шифрование сообщений здесь происходит аналогично Атбашу, но если в Атбаше символы брались из отзеркаленного алфавита, то в шифре Цезаря алфавит смещался на несколько букв, или шагов. Если шаг составлял одну букву, то А становилась Б, если три — то А превращалась в Г и так далее. Количество шагов в этом случае и было ключом к расшифровке сообщения.
  • Литорея. В Древней Руси были свои шифры. Одним из таких была литорея. Принцип шифровки здесь заключался в следующем: согласные из кириллицы располагались в зеркальном порядке, так что первой согласной алфавита, букве Б, соответствовала последняя Щ и так далее. Гласные при этом оставались в неизменном виде. Любопытно, что именно от литореи пошло слово "тарабарщина": описанный вид тайнописи называли "тарабарской грамотой".

Как шифруют сейчас

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

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

  1. Сначала текст пользователя кодируется, или преобразуется, в тот формат, в котором будет удобна его автоматическая обработка компьютером.
  2. После идет непосредственная шифровка: система шифрования "перемешивает" данные. В результате простое "Привет" превращается в условное "дП+шо9н". Сообщение защищено и готово к отправке.
  3. После зашифровки сообщение передается желаемому адресату. При этом посторонние лица (их называют "неавторизованными" или "противниками"), не обладающие специальным ключом шифрования, просто не могут понять содержание сообщения или файла. Сам же ключ представляет собой набор неких секретных параметров в виде последовательности символов, который применяет система, чтобы снова привести информацию в читаемый вид.
  4. Алгоритм получателя, обладая нужным ключом, расшифровывает информацию. Данные теперь доступны и адресату.

Криптоанализ против криптографии

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

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

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

Классификация в криптологии

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

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

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

  • блочные,
  • поточные.

Помимо симметричных и асимметричных криптосистем, существуют также такие способы защиты онлайн-данных, как:

  • хеширование,
  • цифровая подпись.

Симметрия и асимметрия шифра

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

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

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

  1. Условный получатель имеет два ключа: открытый и закрытый. Открытый ключ доступен каждому интернет-пользователю, закрытый — только получателю.
  2. Получатель делится открытым ключом с отправителем, закрытый же оставляет себе. Отправитель с помощью него зашифровывает сообщение, расшифровать которое можно только закрытым ключом.
  3. Получив сообщение, получатель расшифровывает его своим уникальным закрытым ключом.

Шифрование блоком и потоком

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

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

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

Хеш

Но обезопасить пользовательские данные способны не только указанные методы шифрования. Среди возможных путей зашифровки информации крайне распространенным инструментом сегодня является хеш-функция. Этот способ представляет собой математический алгоритм, который преобразовывает данные самых разных размеров в строку одной фиксированной длины, состоящую из случайных букв и цифр. Например, хешированное слово "привет" будет выглядеть как 40-символьная строка "e24505f94db2b5df4c7c2596b0788e720e073021". Такой же 40-символьной строкой, но уже с другими символами, станет и весь "Евгений Онегин" Александра Сергеевича Пушкина.

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

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

Цифровая подпись

Электронная цифровая подпись (или ЭЦП) — это современный и очень надежный способ подтверждения подлинности документа. Выделяют две основные функции подписи:

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

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

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

Система шифрования данных адресата, получив сообщение от отправителя, выполняет два действия для проверки подлинности информации:

  • хеширует приложенный открытый документ,
  • расшифровывает открытым ключом подписанный хеш отправителя.

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

Несколько наиболее распространенных шифров

  • RSA. Этот асимметричный алгоритм шифрования впервые предложили в 1977 году американские математики из Массачусетского технологического института (англ. MIT) Ривест, Шамир и Адлеман. Из первых букв их имен на английском языке (Rivest R. L., Shamir A., Adleman L.) и сложилось название криптосистемы. В свое время RSA стала первой системой, которая подходила и для шифрования, и для цифровой подписи. Сегодня же это один из самых употребляемых алгоритмов шифрования в мире. Все дело в высокой стойкости его шифра: его шифр спустя столько десятилетий трудно взломать даже суперкомпьютеру.
  • Blowfish. Алгоритм, разработанный в 1993 году Брюсом Шнайером, осуществляет блочное симметричное шифрование. Отличительная его черта в том, что, при крайне высокой степени защиты данных, он является незапатентованным и распространяется среди пользователей совершенно бесплатно.
  • DSA. Этот криптографический алгоритм используется исключительно для цифровых подписей, не для шифрования. DSA впервые был предложен в США в августе 1991 года Национальным институтом стандартов и технологий. Он относится к стандарту ЭЦП и наравне с RSA сегодня считается лучшей системой в этой области.

Криптография в цифровую эпоху

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

  • Конфиденциальность. Секретность данных гарантирована. Помимо владельца и адресата никто, кто мог бы использовать информацию в личных целях (злоумышленники, рекламные сети, интернет-провайдеры), не имеет к ней доступа ни в процессе передачи, ни в процессе хранения ее на устройстве.
  • Безопасность. Сохранность данных гарантирована. В том случае, если информация все же попадет в руки сторонних лиц (например, в результате утечки), те не смогут ее прочитать. Это им не удастся, даже если они похитят носитель или устройство, где записаны данные: правильно зашифрованная информация все равно останется под защитой.
  • Целостность данных. Неизменность данных гарантирована. Адресат получит информацию в том виде, в каком ее отправил ее владелец, по пути зашифрованное сообщение не может быть подменено или отредактировано.

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

Денис Лобачев