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

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

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

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

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

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

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

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

Алгоритм зашифрования преобразует открытый текст в закры­тый, обратный процесс реализуется алгоритмом расшифрования. При этом сам алгоритм считается обычно общеизвестным, а вся стойкость заключена только в незнании его текущего состояния при конкретной операции зашифрования. Это секретное состоя­ние называется ключом, который считается известным лишь за­конным корреспондентам. Если алгоритм работы может прини­мать п состояний, то для их описания требуется ключ длины 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);

• Эль-Гамаля.

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

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

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