Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга Грибунина и Чудовского.doc
Скачиваний:
7
Добавлен:
01.03.2025
Размер:
3 Мб
Скачать
☆

8.2.4. Криптографическая подсистема

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

  • конфиденциальности сообщений (алгоритмы шифрования);

  • целостности данных (алгоритмы хэширования);

  • доступности информации (защищенные протоколы);

  • неотказуемости авторства (алгоритмы электронной цифровой подписи - ЭЦП);

  • аутентификации – отправителя, получателя, сообщения, сервера, клиента и т.п. (здесь применяется совокупность алгоритмов и протоколов).

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

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

К ключу криптоалгоритма, помимо достаточной длины, предъявляется еще одно важное требование – он должен быть неотличим от отрезка случайной последовательности. Это означает, что при знании любой части ключа невозможно предсказать предыдущие или последующие его биты. Для формирования случайного ключа обычно используется какой-нибудь физический датчик (например, так называемый «шумящий» диод). В крайнем случае можно воспользоваться программными генераторами псевдослучайных чисел.

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

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

Для современных криптографических систем защиты информации сформулированы следующие общепринятые требования:

  • зашифрованное сообщение должно поддаваться чтению только при наличии ключа;

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

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

  • знание алгоритма шифрования не должно влиять на надежность защиты;

  • незначительное изменение ключа должно приводить к существенному изменению вида зашифрованного сообщения даже при использовании одного и того же ключа;

  • структурные элементы алгоритма шифрования должны быть неизменными;

  • дополнительные биты, вводимые в сообщение в процессе шифрования, должен быть полностью и надежно скрыты в шифрованном тексте;

  • длина шифрованного текста должна быть равной длине исходного текста;

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

  • любой ключ из множества возможных должен обеспечивать надежную защиту информации;

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

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

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

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

Классическим примером реализации идей Шеннона является схема Фейстеля, иногда еще называемая SP-сетью.Эта схема изображена на рис.8.2.

Как видно из рис.8.2., вначале блок открытого текста делится на две части: левая и правая половина. Правая половина подвергается преобразованию некоторой функцией f (раундовая функция шифрования), работающей с использованием подключа . Результат преобразования суммируется с левой частью блока и становится «новой» правой частью. «Новой» же левой частью становится «старая» правая часть (в последнем раунде итерированной схемы Фейстеля половины менять местами не надо).

Рис.8.2. Схема Фейстеля

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

Сеть Фейстеля применяется во многих блочных шифрах, например, в DES, ГОСТ 28147-89 и других. Она не применяется в AES.

В России имеются три криптографических стандарта. Отечественный стандарт шифрования данных — ГОСТ 28147-89 “Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования” определяет алгоритм симметричного шифрования с ключом длиной до 256 бит. Размер шифруемого блока – 64 бита. Как написано в тексте стандарта, алгоритм не накладывает ограничений на степень секретности шифруемых данных, то есть является стойким. Помимо режимов шифрования (простая замена, гаммирование, гаммирование с обратной связью), в этом стандарте описан режим выработки имитовставки, который используется для обеспечения целостности имитозащиты сообщений.

Отечественный стандарт на хэш-функцию (односторонняя функция, отображающая сообщение произвольной длины в сообщение фиксированной длины) -- ГОСТ 34.1194 – использует в своей основе ГОСТ 28147-89. В свою очередь, стандарт на алгоритмы формирования/проверки ЭЦП – ГОСТ 34.10-2001 – использует алгоритм выработки хэш-функции, приведенный в ГОСТ 34.11-94. Для выработки ЭЦП хэш-образ сообщения шифруется с использованием метода асимметричной криптографии на основе математики эллиптических кривых. Это – единственный пример официально одобренного в России метода асимметричной криптографии.

К достоинствам симметричных методов относят: проверенную временем (и математикой) надежность, высокое быстродействие и простоту.

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

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

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

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

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

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

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

3) Криптографическая стойкость алгоритмов с открытыми ключами основана на недоказанных свойствах математических функций. В результате некоторые асимметричные криптосистемы оказались полностью взломаны (например, рюкзачные криптосистемы), оценка стойкости других криптосистем ежегодно снижается. Это снижение происходит по двум причинам: увеличение возможностей вычислительной техники и изобретение новых алгоритмов решения «трудных» задач.

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

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

В настоящее время наиболее известными в мире являются следующие асимметричные алгоритмы:

  • RSA (Rivest, Shamir, Adleman);

  • Эль Гамаля.

Схема Эль-Гамаля используется в отечественном стандарте на ЭЦП.

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

Электронная подпись гарантирует как целостность сообщения, так и удостоверяет личность отправителя, а кроме того, обеспечивает неотказуемость авторства (ведь только владелец закрытого ключа мог подписать сообщение).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]