Криптография и шифрование данных — часть 2

02.11.2021 |

Для статьи про криптографию 2

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

Что такое хеш

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

  • к блоку данных применяется сложение по модулю 2,н
  • набор данных циклически сдвигается,
  • снова происходит сложение по модулю два,
  • ….
  • на выходе получаем хеш-функцию.

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

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

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

Ассиметричное шифрование

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

Процесс шифрования и дешифровки можно представить следующим образом:

Процесс шифрования и дешифровки

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

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

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

Выдуманные примеры из реальной жизни

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

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

Так самый простой вариант с высокой степенью криптостойкости:

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

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

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

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

Заключение

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