Виды электронной подписи | Отличия видов ЭЦП — Удостоверяющий центр СКБ Контур

4.1. Основные термины и определения

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

Введем некоторые понятия, необходимые в дальнейшем:

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

10.1. Схема классической электронной подписи

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

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

Для повышения надежности схемы электронной подписи, например для противодействия атакам перехвата и повтора сообщений, фальсификации времени отправки сообщений, ее можно сделать зависимой от неповторяющегося блока данных nrb.

Схема электронной подписи включает в себя:

Подпись sign = {M}SK_A

В общем случае неинтерактивный протокол электронной подписи имеет следующий вид.

Схема электронной подписи документа M.

  1. Отправитель А вычисляет

    (SK_A, PK_A) = G (n)

    и посылает PK_A получателю В, сохраняя SK_A в секрете.

  2. Для получения подписи документа M отправитель А вычисляет

    sign = S (M, SK_A)

    и посылает M и sign получателю В.

  3. Получатель В вычисляет

    V (M, sign, PK_A)

    и в зависимости от результата принимает или отвергает подпись sign сообщения M.

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

При создании электронной подписи по классической схеме претендент А выполняет следующую последовательность действий:

  1. применяет к исходному сообщению M хеш-функцию h и формирует хеш-образ сообщения h (M) (при необходимости дополняя входную информационную последовательность до требуемой длины);
  2. при необходимости дополняет хеш-образ до требуемой длины, формируя h* (M) = ext h (M);
  3. вычисляет электронную подпись sign с использованием несимметричного криптоалгоритма D и секретного ключа создания подписи SK_A:

    sign = {h* (M)} SK_A.

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

Последовательность действий абонента В, получившего подписанное сообщение:

  1. верификатор В применяет к тексту полученного сообщения хеш-функцию; дополняет в случае необходимости хеш-образ сообщения до требуемой длины (на
    рис.
    3.34
    рассматривается случай, когда расширение ext h (M) не требуется);
  2. применяет к полученной подписи sign несимметричный криптоалгоритм E с использованием открытого ключа проверки подписи PK_A и сравнивает полученное значение PK_A{sign} с найденным на предыдущем шаге h* (M), при положительном результате сравнения подпись признается, в противном случае отвергается.

10.3. Secure Hash Algorithm (SHA)

Алгоритм SHA является частью стандарта SHS (Secure Hash Standard), принятого в 1993 г. Национальным институтом стандартов и технологий США (NIST) и Агентством национальной безопасности США. SHA использует принципы, предложенные ранее Р. Ривестом при разработке своих алгоритмов MD4 и MD5.

Рассмотрим версию SHA-1, в которой осуществляется преобразование информационной последовательности произвольной длины в хеш-образ разрядностью 160 бит.

На первом этапе информационная последовательность дополняется до длины, кратной 512 битам. Сначала информационная последовательность дополняется до длины на 64 двоичных разряда меньшей числа, кратного 512: к концу последовательности (сообщения) приписывается 1, а затем необходимое количество нулей. После этого приписывается 64-разрядный код длины сообщения. Если длина исходного сообщения больше 2^{64}

Пусть после дополнения получена информационная последовательность

На вход i-го основного цикла SHA_iSHA_{i – 1}

Перед началом каждого цикла соответствующий блок расширяется до 80 слов по 32 разряда в каждом. Расширение происходит следующим образом. Допустим,

Виды электронной подписи | Отличия видов ЭЦП — Удостоверяющий центр СКБ КонтурВиды электронной подписи | Отличия видов ЭЦП — Удостоверяющий центр СКБ КонтурВиды электронной подписи | Отличия видов ЭЦП — Удостоверяющий центр СКБ КонтурВиды электронной подписи | Отличия видов ЭЦП — Удостоверяющий центр СКБ Контур

Перед началом первого цикла инициализируются пять 32-разрядных переменных

A = 67452301h; B = EFCDAB89h; C = 98BADCFEh;

D = 10325476h; E = C3D2E1F0h,

при этом стартовый вектор хеширования (синхропосылка) есть результат конкатенации этих переменных, т.е.:

Конкатенация новых значений этих переменных, полученных в конце i-го цикла, объявляется результатом работы цикла SHA_i
рис.
3.35
.

В начале каждого цикла создаются копии входных переменных:

Затем выполняется 80 шагов алгоритма, на каждом из которых происходит выполнение следующих операций:

В первом раунде (при j = 1, …, 20) используются функция

и константа

во втором раунде (при j = 21, …, 40) используются функция

f_i (X, Y, Z) = XВиды электронной подписи | Отличия видов ЭЦП — Удостоверяющий центр СКБ Контур

и константа

в третьем раунде (при j = 41, …, 60) используются функция

и константа

в четвертом раунде (при j = 61, …, 80) используются функция

f_i (X, Y, Z) = XВиды электронной подписи | Отличия видов ЭЦП — Удостоверяющий центр СКБ Контур

и константа

Цикл завершается сложением по модулю 2^{32}

конкатенация полученных значений A, B, C, D и E является результатом работы основного цикла.

В настоящее время существуют версии алгоритма SHA-256, SHA-384, SHA-512.

11.3. Хранение ключей

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

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

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

Учитывая главенствующую роль в иерархии мастер-ключа, используемого в течение длительного времени, его защите уделяется особое внимание:

Один из способов аутентификации мастер-ключа показан на
рис.
3.37.

Мастер-ключ — K_mC = K_m{M}K_mK_m {K_S}K_SK_m
рис.
3.38
приведена схема защиты ключа.Сеансовый ключ — K_SK_m {K_S}

Проще всего хранить ключи криптосистемы с одним пользователем. В распоряжении последнего один из следующих вариантов в порядке возрастания надежности:

Следует помнить, что в первых двух случаях объем ключевого пространства зависит не только от длины пароля или ключевой фразы, но и от ограничения на вид используемых символов. В таблице 3.3 приведено количество возможных ключей при использовании 8-символьной ключевой фразы и время полного перебора при скорости перебора 106 ключей в секунду в зависимости от ограничений на используемые символы.

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

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

11.4. Распределение ключей

Распределение ключей между участниками информационного обмена в сети реализуется двумя способами, представленными на
рис.
3.39:

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

Примерами первого подхода является схема Kerberos, второго — схема Диффи—Хеллмана, рассмотренные ранее.

Схемы, показанные на
рис.
3.39б и
рис.
3.39в, предполагают, что абоненты А и В предварительно разделили знание своих секретных ключей с центром С. Схемы с ЦРК предполагают, что именно последний формирует сеансовые ключи.

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

Читайте также:  Как скопировать контейнер? — Удостоверяющий центр СКБ Контур

подменил своим открытым ключом открытый ключ PK_Аcert_AID_APK_A

В самом общем случае функциями центра доверия могут являться:

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

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

12.5. Версия 3 стандарта Х.509

Разработчики 3-й версии стандарта сочли, что для большей гибкости требуется включение в формат сертификата ряда необязательных расширений. Каждое расширение состоит из идентификатора расширения, признака критичности и значения расширения. Признак критичности показывает, может ли расширение быть безопасно игнорировано или нет. Если этот признак имеет значение TRUE, а расширение не распознается, такой сертификат должен считаться недействительным.

Можно выделить три категории расширений:

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

Область включает в себя следующие поля.

  1. Идентификатор ключа ЦС. Позволяет различать разные ключи одного ЦС. Используется при обновлении пары ключей ЦС.
  2. Идентификатор ключа субъекта. Позволяет пользователю иметь несколько ключей (и соответственно несколько сертификатов) для различных целей (например, для подписи и для шифрования). Полезно при обновлении пар ключей субъекта.
  3. Ограничения на использование сертифицированного открытого ключа. Возможные варианты: электронная подпись, невозможность отказа от авторства, шифрование ключей, шифрование данных, соглашения о ключах, проверка подписи ЦС в сертификатах, проверка подписи ЦС в CRL.
  4. Срок использования секретного ключа. Поле необходимо, учитывая, что во многих случаях срок действия секретного ключа меньше срока действия соответствующего открытого ключа, например в случае ключей соответственно для формирования и проверки подписи.
  5. Политика сертификации. Поле предполагает наличие списка политик, распознаваемых данным сертификатом, а также дополнительную уточняющую информацию.
  6. Отображение политик. Используется только в сертификатах ЦС, выданных другими ЦС. Позволяет ЦС выяснить, является одна или несколько таких политик эквивалентными другой политике, используемой в домене ЦС, выступающего в качестве субъекта сертификации.

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

Область включает в себя следующие поля.

  1. Альтернативное имя субъекта. Содержит одно или несколько альтернативных имен в любой из множества допустимых форм. Необходимо для приложений, которые могут поддерживать свои собственные форматы имен (например, электронной почты).
  2. Альтернативное имя ЦС. Содержит одно или несколько альтернативных имен в любой из множества допустимых форм.
  3. Атрибуты каталога субъекта. Содержит значения любых атрибутов каталога Х.500, необходимых субъекту данного сертификата.
  4. Ограничения маршрута сертификации. В сертификатах, выдаваемых ЦС другим ЦС, могут указываться ограничения на типы выдаваемых сертификатов, ограничения на дальнейшие действия в цепочке сертификатов.

Область включает в себя следующие поля.

  1. Основные ограничения. Указывает на то, может ли субъект выступать в качестве ЦС. Если да, то могут быть заданы ограничения на длину маршрута сертификации.
  2. Ограничения имен. Указывает рамки, в которых должны находиться имена субъектов в последующих сертификатах маршрута.
  3. Ограничения политик. Задает ограничения, которые может требовать явно указанная политика сертификации.

14. Причины ненадежности криптосистем

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

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

Именно такой вывод можно сделать, анализируя примеры реальных успешных атак на криптосистемы. Известны лишь единичные случаи взлома с использованием исключительно математических методов. В то же время различных примеров взломов реальных систем так много, что их анализом вынуждены заниматься целые компании, наиболее известная из которых Counterpane Systems Б. Шнайера.

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

Самое ненадежное звено системы — человек. Типичные ошибки пользователей, нарушающих безопасность всей системы защиты:

Получают распространение атаки типа отказ в обслуживании (denial of service), провоцирующие пользователя отключать «заедающую» систему защиты при решении неотложных задач.

Можно выделить следующие причины ненадежности криптосистем, связанные с особенностями их реализации:

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

Многие качественные криптографические средства подпадают под действие экспортных ограничений, искусственно снижающих качество этих средств. Например, в США запрещен экспорт криптоалгоритмов с длиной ключа более 56 бит.

Все программные средства, произведенные в США и легально экспортируемые за рубеж, обеспечивают ослабленную криптографическую защиту. Аналогичная ситуация имеет место и в Европе. Так, например, существуют две версии алгоритма поточного шифрования А5 (стандарт GSM) — надежная А5/1 и существенно менее стойкая А5/2 для поставок в развивающиеся страны.

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

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

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

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

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

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

Очень часто эти «заглушки» остаются в конечной версии программы. Либо опять же по причине забывчивости, либо в расчете на будущую модификацию продукта, либо, например, если в процессе разработки выясняется, что какая-то подпрограмма не нужна, а удалить заглушку не представляется возможным.

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

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

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

РПВ могут выполнять одно или несколько из перечисленных действий, опасных для системы защиты:

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

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

Читайте также:  Инструкция по копированию ЭП на съемный носитель или на другой компьютер

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

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

  1. Поиск по таблицам — неуязвим для временных атак.
  2. Фиксированные сдвиги — неуязвимы для временных атак.
  3. Булевы операции — неуязвимы для временных атак.
  4. Сложение/вычитание — трудно защитить от временных атак.
  5. Умножение/деление — наиболее уязвимые для временных атак операции.

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

С недавних пор получили распространение атаки на аппаратуру криптосистем, основанные на анализе электромагнитного излучения и других побочных источников информации.

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

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

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

Поэтому в последующих главах везде, где будет идти речь об алгоритмах блочного шифрования DES, Triple DES (3DES) и других, следует учитывать скорее всего уже свершившийся переход к AES; везде, где речь идет об алгоритме открытого шифрования RSA, следует учитывать скорее всего уже свершившийся переход к ECCS.

4.2. Оценка надежности криптоалгоритмов

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

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

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

Методы оценки качества криптоалгоритмов, используемые на практике:

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

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

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

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

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

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

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

4.3. Классификация методов шифрования информации

Основные объекты изучения классической криптографии показаны на
рис.
3.4, где А и В — законные пользователи, W — противник или криптоаналитик. Учитывая что схема на
рис.
3.

Процедуры зашифрования E (encryption) и расшифрования D (decryption) можно представить в следующем виде:

Функции за- и расшифрования взаимно обратные, иначе говоря, для любого текста X справедливо:

На
рис.
3.5 приведена классификация методов шифрования информации. Различают два типа алгоритмов шифрования симметричные (с секретным ключом) и асимметричные (с открытым ключом). В первом случае обычно ключ расшифрования совпадает с ключом зашифрования, т.е.

либо знание ключа зашифрования позволяет легко вычислить ключ расшифрования. В асимметричных алгоритмах такая возможность отсутствует: для зашифрования и расшифрования используются разные ключи, причем знание одного из них не дает практической возможности определить другой. Поэтому, если получатель А информации сохраняет в секрете ключ расшифрования K_{dA} = SK_AK_{eA} = PK_ASK — secret key, PK — public key).

В процессе шифрования информация делится на порции величиной от одного до сотен бит. Как правило, поточные шифры оперируют с битами открытого и закрытого текстов, реже — с байтами, а блочные — с блоками фиксированной длины. Главное требование к блочному шифру — высокая криптостойкость.

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

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

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

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

Идея, лежащая в основе итерационных блочных шифров, состоит в построении криптостойкой системы путем многократного применения относительно простых криптографических преобразований, в качестве которых К. Шеннон предложил использовать преобразования замены (подстановки) (substitution) и перестановки (permutation); схемы, реализующие эти преобразования, называются SP-сетями. Действие таких шифров аналогично «алгоритму», к которому прибегают, когда месят тесто:

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

Рассеивание и перемешивание предполагают:

Наличие у шифра этих свойств:

Самые известные блочные шифры — DES (Data Encryption Standard), старый американский стандарт шифрования, созданный в 1974 г., де-факто многолетний неофициальный мировой стандарт шифрования; российский стандарт криптозащиты ГОСТ 28147-89 и новый американский стандарт шифрования AES (Advanced Encryption Standard), принятый в 2001 г. в результате многолетнего открытого международного конкурса.

Структура раундового преобразования DES и ГОСТ носит название петли Фейстеля, схема которой приведена на
рис.
3.7, а структура функций за- и расшифрования — сеть Фейстеля. Структура AES носит название «Квадрат».

DES работает с блоками данных разрядностью 64 бита с использованием 56-разрядного ключа, из которого по специальному фиксированному алгоритму, использующему перестановки и сдвиги, вырабатываются раундовые ключи. Применяемые преобразования — поразрядное сложение по модулю 2, подстановки и перестановки, число раундов равно 16, перед началом первого раунда выполняется начальная фиксированная перестановка IP, после 16-го раунда выполняется обратная перестановка IP^{–1}

Читайте также:  Где и как получить ЭЦП для торгов по 44-ФЗ

Интересно отметить, что в первоначальной схеме, предложенной IBM, все шестнадцать 48-разрядных раундовых ключей выбирались независимо, т.е. размер ключа был равен 768 битам. Однако по требованию Агентства национальной безопасности США (АНБ), во-первых, размер ключа был уменьшен до 64 бит, из которых только 56 являются секретными, во-вторых, в алгоритме определены перестановки лишь специального вида, не зависящие от ключа, что наводило критиков этого алгоритма на мысль, будто АНБ могла использовать известные ей слабости алгоритма для его взлома.

Существует несколько предложений, направленных на усовершенствование DES. Наиболее известное из них, Triple DES, заключается в трехкратном применении алгоритма.

ГОСТ 28147-89. Ключевая информация ГОСТа представляет собой два массива данных: собственно ключ K и таблицу замен H. Ключ — это массив из восьми 32-разрядных элементов K = K_0 K_1 … K_7

В качестве исходных данных раундовая функция шифрования ГОСТа получает 64-разрядный блок данных D = (L, R) и 32-разрядный раундовый ключ, в качестве которого используется один из элементов ключа Кi. В ходе выполнения преобразования левая L и правая R половины блока данных рассматриваются как отдельные 32-разрядные элементы данных, в качестве которых они подвергаются следующим преобразованиям:

  1. сложение по модулю 2^{32} полублока R и элементом ключа;
  2. разбиение результата S на восемь четырехбитовых блоков, поблочная замена по таблице замен, формирование из получившихся блоков нового значения S;
  3. циклический сдвиг результата S на 11 разрядов влево;
  4. поразрядное сложение по модулю 2 (XOR) результата S и полублока L;
  5. элемент R становится новым значением элемента L, значение результата предыдущей операции становится новым значением элемента R.

Полученные значения элементов L и R выдаются в качестве результата шага раундового преобразования.

ГОСТ 28147-89 определяет три режима шифрования данных (простая замена, гаммирование и гаммирование с обратной связью) и режим выработки имитоприставки (кода аутентификации сообщений).

4.4. Абсолютно стойкий шифр. Гаммирование

Простейшей и в то же время наиболее надежной из всех схем шифрования является так называемая схема однократного использования, приведенная на
рис.
3.8, изобретение которой чаще всего связывают с именем Г.С. Вернама.

Формируется m-разрядная случайная двоичная последовательность — ключ шифра, известный отправителю и получателю сообщения. Отправитель производит побитовое сложение по модулю 2 ключа и m-разрядной двоичной последовательности, соответствующей пересылаемому сообщению:

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

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

Действительно, противнику известно только зашифрованное сообщение С, при этом все различные ключевые последовательности K возможны и равновероятны, а значит, возможны и любые сообщения M, т.е. криптоалгоритм не дает никакой информации об открытом тексте.

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

Например, известный криптоаналитику факт написания текста некоторого сообщения на английском языке предоставляет ему некоторую априорную информацию об этом сообщении даже до анализа шифровки. В этом случае он заранее знает, что слово «HELLO» является более вероятным началом сообщения, чем набор букв «FGHKM».

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

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

Однако апостериорные вероятности таких открытых текстов возрастают относительно их априорных вероятностей. В то же время апостериорная вероятность таких открытых текстов, как «PEACE» или «GATES», снижается до нуля вне зависимости от их априорной вероятности. По К.

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

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

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

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

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

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

4.5. Генераторы псевдослучайных последовательностей

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

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

Во всех рассмотренных случаях генераторы ПСП применяются либо непосредственно, либо косвенно, когда на их основе строятся генераторы случайных последовательностей, генераторы контрольных кодов и хеш-генераторы. Во всех случаях требуются последовательности с равномерным законом распределения.

Можно выделить следующие функции генераторов ПСП в системах защиты информации:

Требования к качественному генератору ПСП:

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

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

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

Принципы построения генераторов ПСП. Можно выделить два подхода при использовании в составе генераторов ПСП нелинейных функций: это использование нелинейной функции непосредственно в цепи обратной связи и двухступенчатая схема, в которой задача первой ступени (по сути счетчика) заключается всего лишь в обеспечении максимально большого периода при данном числе N элементов памяти Q. Во втором случае нелинейная функция является функцией выхода F_{out}
рис.
3.10
представлены обе вышеназванные схемы.

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

  1. преобразование F_{fb} является двухпараметрическим, при этом нет никакой гарантии, что при всех значениях секретного параметра K (ключа) формируемая последовательность будет иметь достаточно большой период;
  2. при возникновении ошибки на каком-то шаге выполнения нелинейного преобразования F_{fb} искажаются все последующие элементы ПСП.

На
рис.
3.10
в показана классификация криптографических генераторов ПСП. Роль нелинейных функций F_{out}F_{fb}F_{out}F_{fb}

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

Как создать файл электронной подписи в формате sig

Процесс создания документа в формате SIG мы рассмотрим на примере программы КриптоАРМ. Чтобы создать подписанный документ необходимо:

  1. Выбрать исходный документ, кликнув по нему правой кнопкой мыши (1), выбрать в меню КриптоАРМ (2), затем – Подписать (3).

  2. 
КриптоАРМ

  3. Нажать кнопку Далее в открывшемся Мастере создания электронной подписи.
  4. 
Мастере создания

  5. Выбрать в списке исходный файл для подписания. При необходимости можно добавить дополнительные файлы, которые нужно подписать.

  6. 
исходный файл для подписания

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

  8. 
преобразован исходный файл

  9. В блоке свойства подписи выбрать Подписано рядом с параметром Использование подписи (4). Если необходимо сохранить отдельный файл в формате SIG, отмечаем соответствующий параметр (5).

  10. 
Использование подписи

  11. Нажать кнопку Выбрать(6) в окне Выбор сертификата подписи.

  12. 
Выбор сертификата

  13. В Хранилище сертификатов выбрать сертификат ЭЦП из списка.

  14. 
Хранилище сертификатов

  15. На последнем этапе создания документа с помощью Мастера нажать Готово.

  16. 
Готово

    После завершения операции подписания документа появится окно с результатами (7).

    
SIG создан

    Готово! Документ в формате SIG создан и подписан.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector