Криптографическая подсистема
Криптографические методы защиты данных считаются наиболее надежными. Необходимо отметить что все основные задачи Защиты информации от НСД решаются с применением криптографии. В некоторых случаях они могут быть решены и другими путями, но, как правило, использование криптографии повышает качество их решения. В современном мире криптография применяется для обеспечения:
• конфиденциальности сообщений (алгоритмы шифрования);
• целостности данных (алгоритмы хэширования);
• доступности информации (защищенные протоколы);
• неотказуемости авторства (алгоритмы электронной цифровой подписи — ЭЦП);
• аутентификации — отправителя, получателя, сообщения, сервера, клиента и т.п. (здесь применяется совокупность алгоритмов и протоколов).
Криптография используется повсеместно — в государственных и коммерческих организациях, финансово-кредитных учреждениях, вузах и на предприятиях. Наконец, известную популярность получили свободно распространяемые криптографические программы, что сделало ее плоды доступными каждому.
Алгоритм зашифрования преобразует открытый текст в закрытый, обратный процесс реализуется алгоритмом расшифрования. При этом сам алгоритм считается обычно общеизвестным, а вся стойкость заключена только в незнании его текущего состояния при конкретной операции зашифрования. Это секретное состояние называется ключом, который считается известным лишь законным корреспондентам. Если алгоритм работы может принимать п состояний, то для их описания требуется ключ длины log2(«). Следовательно, чем больше длина ключа, тем больше состояний может принимать алгоритм, и тем больше его стойкость (при прочих равных условиях, разумеется).
К ключу криптоалгоритма помимо достаточной длины предъявляется еще одно важное требование: он должен быть неотличим от отрезка случайной последовательности. Это означает, что при знании любой части ключа невозможно предсказать предыдущие или последующие его биты. Для формирования случайного ключа обычно используется какой-нибудь физический датчик (например, так называемый «шумящий» диод). В крайнем случае, можно воспользоваться программными генераторами псевдослучайных чисел. Обычно для зашифрования и расшифрования используется один и тот же ключ. Такие алгоритмы называются симметричными, в отличие от асимметричных, щ которых ключи — разные.
Процесс криптографического закрытия данных может осуществляться как программно, так и аппаратно. Аппаратная реализация отличается существенно большей стоимостью, однако ей присущи и преимущества: высокая производительность, простота, защищенность и т.д. Программная реализация более практична, допускает известную гибкость в использовании.
Для современных криптографических систем защиты информации сформулированы следующие общепринятые требования:
• зашифрованное сообщение должно поддаваться чтению только при наличии ключа;
• число операций, необходимых для определения использованного ключа шифрования по фрагменту шифрованного сообщения п соответствующего ему открытого текста, должно быть не меньше общего числа возможных ключей;
• число операций, необходимых для расшифровывания информации путем перебора всевозможных ключей, должно иметь стро-i ую нижнюю оценку и выходить за пределы возможностей современных компьютеров (с учетом возможности использования се-ювых вычислений);
• знание алгоритма шифрования не должно влиять на надежность защиты;
• незначительное изменение ключа должно приводить к существенному изменению вида зашифрованного сообщения даже при использовании одного и того же ключа;
• структурные элементы алгоритма шифрования должны быть неизменными;
• дополнительные биты, вводимые в сообщение в процессе шифрования, должны быть полностью и надежно скрыты в шифрованном тексте;
• длина шифрованного текста должна быть равной длине исходного текста;
• не должно быть простых и легко устанавливаемых зависимостей между ключами, последовательно используемыми в процессе шифрования;
• любой ключ из множества возможных должен обеспечивать надежную защиту информации;
• алгоритм должен допускать как программную, так и аппаратную реализацию, при этом изменение длины ключа не должно нести к качественному ухудшению алгоритма шифрования.
Итак, на входе алгоритма имеются открытый текст (представиснный в двоичном виде) и ключ. Как организовать процесс зашифрования. Ясно, что текст необходимо подавать на вход алгоритма частями. В докомпьютерную эпоху, когда шифраторы были лниаратными, было удобно обрабатывать информацию по одному импульсу за такт, т.е. побитно. Современные компьютеры работают с байтами или словами, состоящими из нескольких байтов, поэтому и алгоритмы строятся соответствующим образом, обрабатывая данные блоками, кратными байту.
Все алгоритмы принято разделять на два класса: поточные и точные. Во многих книгах можно встретить утверждение о том, по поточные алгоритмы шифруют информацию побитово. На самом деле это не так: современные поточные алгоритмы, предназначенные для компьютерной реализации, работают с многобайтовыми блоками. Разница между поточными и блочными алгоритмами заключается в следующем. Для каждого блока данных у поточного алгоритма используется свой, уникальный ключ шифрования. В случае же блочного алгоритма шифрования для разных блоков данных применяется один и тот же ключ. Но это далеко не всегда означает, что одинаковые блоки открытого текста непременно отображаются в одинаковые блоки шифртекста. Такое положение дел характерно лишь для шифрования в режиме простой замены. Для закрытия большого объема информации используются другие режимы работы блочных шифров (гаммиро-вание, гаммирование с обратной связью).
Блочные алгоритмы шифрования состоят из многократно повторяющихся двух основных операций: подстановки и перестановки. Замена одного символа другим по некоторому правилу есть подстановка, изменение нумерации (порядка следования) в массиве символов есть перестановка. В совокупности эти две операции при их многократном повторении должны привести к следующему результату: перемешивание и рассеяние. В знаменитой работе Шеннона, положившей начало научной криптографии, отмечается важность учета и использования принципов рассеяния (т.е. влияния одного бита ключа на несколько знаков криптограммы) и перемешивания (процедур, нарушающих зависимости между знаками исходного текста). В этой работе предложена схема построения комбинированных криптосистем на основе многократного чередования простых шифрующих преобразований, например подстановок (каждое из которых в отдельности обеспечивает незначительное рассеяние), и перемешивающих преобразований (например, перестановок). Перемежение этих разнотипных процедур позволяет построить очень стойкий шифр.
Классическим примером реализации идей Шеннона является схема Фейстеля, иногда еше называемая SP-сетью. Эта схема изображена на рис. 8.2. Как видно из рисунка, вначале блок открытого текста делится на две части: левую и правую половины. Правая половина подвергается преобразованию некоторой функцией (раундовая функция шифрования), работающей с использованием подключа к,. Результат преобразования суммируется с левой частью блока и становится «новой» правой частью. «Новой» же левой частью становится «старая» правая часть (в последнем раунде итерированной схемы Фейстеля половины менять местами не надо).
На каждом раунде используется свой подключ kh получаемый по некоторому правилу из общего ключа к. Процедура дешифрования выполняется аналогично, но ключи к/ берутся в обратном порядке. Сеть Фейстеля шмечательна тем, что для нее прямое и обратное криптографические преобразования выполняются по одной схеме, и для функции/не требуется ее обратимость. Криптостойкость сети Фейстеля целиком определяется функцией / причем она повышается при увеличении числа итераций.
Сеть Фейстеля применяется во многих блочных шифрах, например в DES, ГОСТ 28147 — 89 и др. Она не применяется в AES.
В России имеются три криптографических стандарта. Отечественный стандарт шифрования данных — ГОСТ 28147 — 89 «Системы обработки информации. Зашита криптографическая. Алгоритм криптографического преобразования» — определяет алгоритм симметричного шифрования с ключом длиной до 256 бит. Размер шифруемого блока — 64 бита. Как написано в тексте стандарта, алгоритм не накладывает ограничений на степень секретности шифруемых данных, т.е. является стойким. Помимо режимов шифрования (простая замена, гаммирование, гаммирование с обратной связью), в этом стандарте описан режим выработки имитовставки, который используется для обеспечения целостности имитозашиты сообщений.
Отечественный стандарт на хэш-функцию (односторонняя функция, отображающая сообщение произвольной длины в сообщение фиксированной длины) — ГОСТ 34.11 —94 — использует в своей основе ГОСТ 28147 — 89. В свою очередь, стандарт на алгоритмы формирования/проверки ЭЦП — ГОСТ 34.10 — 2001 — использует алгоритм выработки хэш-функции, приведенный в ГОСТ 34.11 —94. Для выработки ЭЦП хэш-образ сообщения шифруется с использованием метода асимметричной криптографии на основе математики эллиптических кривых. Это — единственный пример официально одобренного в России метода асимметричной криптографии.
К достоинствам симметричных методов относят: проверенную временем (и математикой) надежность, высокое быстродействие и простоту. Основным недостатком указанных методов является то, что ключ должен быть известен и отправителю, и получателю. Это существенно усложняет процедуру назначения и распределения ключей между пользователями. По существу, в открытых сетях должен быть предусмотрен физически защищенный канал передачи ключей. Названный недостаток послужил причиной разработки методов шифрования с открытым ключом — асимметричных методов.
Асимметричные методы используют два взаимосвязанных ключа: для шифрования и для расшифрования. Первый ключ является закрытым и известным только получателю. Его используют для расшифрования. Второй ключ является открытым, т.е. может быть общедоступным по сети, он опубликован вместе с адресом пользователя. Его используют для выполнения шифрования. (В алгоритмах ЭЦП порядок использования ключей обратный: для выработки ЭЦП используется закрытый ключ, а для ее проверки — общедоступный.)
Открытый и закрытый ключи математически связаны между собой, но по открытому ключу вычислительно невозможно найти закрытый. Это обычно связано с необходимостью решения той или иной трудной задачи, например дискретного логарифмирования в поле над эллиптической кривой. При использовании больших длин ключа (порядка 700— 1 000 бит) в настоящее время считается, что быстро (за несколько лет) эту задачу решить нельзя. Однако мощность компьютеров растет, улучшаются также математические методы решения трудных задач.
Алгоритмы с открытыми ключами не заменяют симметричные алгоритмы и используются не для шифрования сообщений, а для шифрования ключей по следующим причинам:
• Медленная скорость работы алгоритмов с открытыми ключами (они примерно в 1 000 раз медленнее, чем симметричные алгоритмы). При этом, несмотря на все увеличивающееся быстродействие компьютеров, требования к объему передаваемой информации также непрерывно возрастают.
• С помощью асимметричных алгоритмов нельзя шифровать сообщения, выбираемые из ограниченного ансамбля сообщений. Ключ шифрования общеизвестен, поэтому нарушитель всегда может осуществить пробные шифрования и найти искомый открытый текст.
• Криптографическая стойкость алгоритмов с открытыми ключами основана на недоказанных свойствах математических функций. В результате некоторые асимметричные криптосистемы оказались полностью взломаны (например, рюкзачные криптосистемы), оценка стойкости других криптосистем ежегодно снижается.
Рис. 8.3. Пример совместного использования симметричных и асимметричных алгоритмов.
Снижение происходит по двум причинам: увеличение возможностей вычислительной техники и изобретение новых алгоритмов решения «трудных» задач.
В целях шифрования криптография с открытыми ключами применяется для засекречивания и распространения сеансовых ключей, которые используются симметричными алгоритмами для шкрытия потока сообщений. Такая реализация (рис. 8.3) называется иногда «цифровым конвертом».
Важнейшим приложением криптографии с открытым ключом являются системы электронной цифровой подписи (ЭЦП). В настоящее время наиболее известны в мире следующие асимметричные алгоритмы:
• RSA (Rivest, Shamir, Adleman);
• Эль-Гамаля.
Схема Эль-Гамаля используется в отечественном стандарте на )ЦП.
Идея технологии ЭЦП состоит в следующем. К сообщению отправителя добавляется небольшая добавка, представляющая собой юшифрованное на закрытом ключе значение хэш-функции сообщения. Получатель расшифровывает это значение на открытом ключе, затем вычисляет хэш-функцию от сообщения и сравнивает два получившихся значения. Если они совпадут, то все верно.
Электронная подпись гарантирует целостность сообщения и удостоверяет личность отправителя, кроме того, она обеспечивает кеотказуемость авторства (ведь только владелец закрытого ключа мог подписать сообщение).