Криптографические методы обеспечения целостности информации
При построении систем защиты от угроз нарушения целостности информации используются следующие криптографические примитивы:
- цифровые подписи;
- криптографические хэш-функции;
- коды проверки подлинности.
Цифровая подпись представляет собой механизм подтверждения подлинности и целостности цифровых документов. Во многом она является аналогом рукописной подписи – в частности, к ней предъявляются практически аналогичные требования:
1. Цифровая подпись должна позволять доказать, что именно законный автор, и никто другой, сознательно подписал документ.
2. Цифровая подпись должна представлять собой неотъемлемую часть документа. Должно быть невозможно отделить подпись от документа и использовать её для подписывания других документов.
3. Цифровая подпись должна обеспечивать невозможность изменения подписанного документа (в том числе и для самого автора!).
4. Факт подписывания документа должен быть юридически доказуемым. Должен быть невозможным отказ от авторства подписанного документа.
Порядок использования цифровой подписи в данном случае будет следующим:
1. Документ зашифровывается секретным ключом подписывающего, и зашифрованная копия распространяется вместе с оригиналом документа в качестве цифровой подписи.
2. Получатель, используя общедоступный открытый ключ подписывающего, расшифровывает подпись, сличает её с оригиналом и убеждается, что подпись верна.
Криптографические хэш-функции
Функция вида y=f(x) называется криптографической хэш-функцией, если она удовлетворяет следующим свойствам:
1. На вход хэш-функции может поступать последовательность данных произвольной длины, результат же (называемый хэш, или дайджест) имеет фиксированную длину.
2. Значение y по имеющемуся значению x вычисляется за полиномиальное время, а значение x по имеющемуся значению y почти во всех случаях вычислить невозможно.
3. Вычислительно невозможно найти два входных значения хэш-функции, дающие идентичные хэши.
4. При вычислении хэша используется вся информация входной последовательности.
5. Описание функции является открытым и общедоступным.
Можно подписывать не весь документ, как в первом случае, а только его хэш. Тогда сохранятся объемы пересылаемых данных.
Подписав вместо исходного сообщения его хэш, мы передаём результат вместе с исходным сообщением. Получатель расшифровывает подпись и сравнивает полученный результат с хэшем сообщения. В случае совпадения делается вывод о том, что подпись верна.
Коды проверки подлинности, или MAC-коды, представляют собой криптографические хэш-функции, для вычисления которых необходимо знать секретный ключ. Использование ключа позволяет гарантировать невозможность подмены защищаемых объектов, аналогичной приведённой выше: злоумышленник, не знающий секретного ключа, не сможет пересчитать хэш для нового файла.