Шифры

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

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

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

Шифрование — процесс преобразования данных с целью затруднения доступа к ним.

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

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

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

Классифицировать шифры можно по разным основаниям. Наиболее популярны три:

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

2. По существованию дешифрующего преобразования: обратимое — преобразование, для которого существует обратное преобразование (дешифрующее), и необратимое — такое, для которого обратного преобразования не существует 9.

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

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

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

1. Для обмена сообщениями участникам нужно знать этот ключ. То есть необходим способ безопасного обмена ключами.

2. Два “незнакомых” абонента не могут проверить — тот ли их собеседник, за кого себя выдает. С формальной точки зрения “своим” должен считаться тот абонент, который может подтвердить владение ключом.

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

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

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

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

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

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

2. Появляется возможность создавать электронную подпись — контрольный “отпечаток” сообщения. Создать его может только отправитель — абонент, имеющий оба ключа, а проверить — любой участник обмена, у которого есть открытый ключ.

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

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

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