logo
Методические указания для АЗ-ИБ

Методы шифрования

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

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

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

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

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

Вскоре после публикации Диффи, Хеллмана и Меркла другая группа из трех человек разработала практическое приложение теории. Эта система для шифрования с открытым ключом была названа RSA по именам авторов: Ronald Rivest (Рональд Ривест), Adi Shamir (Ади Шамир) и Leonard Adleman (Леонард Адлеман). Они образовали компанию и начали лицензировать свою систему. Дело шло туго, и их компания почти обанкротилась, пока они не договорились с малоизвестной тогда компанией Netscape об использовании возможностей растущего поля Интернет-коммерции. Остальное уже история, и RSA на сегодняшний день самый употребительный алгоритм шифрования с открытым ключом. Диффи и Хеллман со временем выпустили собственное практическое приложение, но оно применяется только для обмена ключами, в то время как RSA для аутентификации и обеспечения неотказуемости.