Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все ответы по МСЗИ.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆
  1. Криптографические методы обеспечения целостности информации. Цифровые подписи.

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

Цифровые подписи

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

требования:

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

2. Цифровая подпись должна представлять собой неотъемлемую часть документа. Должно быть невозможно отделить подпись от документа и использовать её для подписывания других документов.

3. Цифровая подпись должна обеспечивать невозможность изменения подписанного документа (в том числе и для самого автора!).

4. Факт подписывания документа должен быть юридически доказуемым. Должен быть невозможным отказ от авторства подписанного документа.

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

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

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

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

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

  1. Криптографические методы обеспечения целостности информации. Криптографические хэш-функции.

Функция вида y=f(x) называется криптографической хэш-функцией, если она является криптостойкой и удовлетворяет следующим свойствам:

1. На вход хэш-функции может поступать последовательность данных произвольной длины, результат же (называемый хэш, или дайджест) имеет фиксированную длину.

2. Значение y по имеющемуся значению x вычисляется за определенное время (номинальное или полиномиальное), а значение x по имеющемуся значению y почти во всех случаях вычислить невозможно.

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

4. При вычислении хэша используется вся информация входной последовательности.

5. Описание функции является открытым и общедоступным.

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

Рис. 1.4.2.2. Цифровая подпись, использующая хэш-функцию

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

Дополнительно с инета:

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

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

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

Много хороших криптографических хэш-функций доступно бесплатно. Широко известные включают MD5 и SHA.

Криптографические хэш-функции

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

▪ Необратимость: для заданного значения хэш-функции m должно быть вычислительно неосуществимо найти блок данных X, для которого H(X) = m.

▪ Стойкость к коллизиям первого рода: для заданного сообщения M должно быть вычислительно неосуществимо подобрать другое сообщение N, для которого H(N) = H(M).

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

Данные требования не являются независимыми:

▪ Обратимая функция нестойка к коллизиям первого и второго рода.

▪ Функция, нестойкая к коллизиям первого рода, нестойка к коллизиям второго рода; обратное неверно.

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

Атака «дней рождения» позволяет находить коллизии для хеш-функции с длиной значений n битов в среднем за примерно 2n / 2 вычислений хэш-функции. Поэтому n-битная хеш-функция считается криптостойкой, если вычислительная сложность нахождения коллизий для неё близка к 2n / 2.

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

Хэширование (иногда хеширование, англ. hashing) — преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины. Такие преобразования также называются хэш-функциями или функциями свёртки, а их результаты называют хэшем, хэш-кодом или дайджестом сообщения (англ. message digest).

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

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