Лекция №10. Криптографические основы безопасности
Криптография – область знаний, относящихся к средствам и методам преобразования сообщений в непонятную для посторонних форму, а также средствам и методам проверки подлинности сообщений.
Основные понятия
Пусть Х – множество возможных открытых текстов;
S – множество шифрованных текстов (криптограмм);
К – множество ключей.
Шифр – это совокупность инъективных отображений множества открытых текстов во множество шифрованных текстов, проиндексированная из множества ключей.
Инъективным называется отображение множества A во множество B, при котором различные элементы из A имеют различные образы в B.
Совершенный шифр (К. Шеннон) – это шифр, при использовании которого перехват криптограммы не дает противнику никакой информации о передаваемом сообщении, если даже противник обладает неограниченными вычислительными ресурсами.
Рассмотрим общую схему симметричной, или традиционной, криптографии.
Рис. Общая схема симметричного шифрования
В процессе шифрования используется определенный алгоритм шифрования, на вход которому подаются исходное незашифрованное сообщение, называемое также plaintext, и ключ. Выходом алгоритма является зашифрованное сообщение, называемое также ciphertext. Ключ является значением, не зависящим от шифруемого сообщения. Изменение ключа должно приводить к изменению зашифрованного сообщения.
Зашифрованное сообщение передается получателю. Получатель преобразует зашифрованное сообщение в исходное незашифрованное сообщение с помощью алгоритма дешифрования и того же самого ключа, который использовался при шифровании, или ключа, легко получаемого из ключа шифрования.
Безопасность, обеспечиваемая традиционной криптографией, зависит от нескольких факторов.
Во-первых, криптографический алгоритм должен быть достаточно сильным, чтобы передаваемое зашифрованное сообщение невозможно было расшифровать без ключа, используя только различные статистические закономерности зашифрованного сообщения или какие-либо другие способы его анализа.
Во-вторых, безопасность передаваемого сообщения должна зависеть от секретности ключа, но не от секретности алгоритма. Алгоритм должен быть проанализирован специалистами, чтобы исключить наличие слабых мест, при которых плохо скрыта взаимосвязь между незашифрованным и зашифрованным сообщениями. К тому же при выполнении этого условия производители могут создавать дешевые аппаратные чипы и свободно распространяемые программы, реализующие данный алгоритм шифрования.
В-третьих, алгоритм должен быть таким, чтобы нельзя было узнать ключ, даже зная достаточно много пар (зашифрованное сообщение, незашифрованное сообщение), полученных при шифровании с использованием данного ключа.
Цифровая подпись
Задача цифровой подписи состоит в том, чтобы обеспечить защиту электронного документа не только от подделки посторонним злоумышленником, но и от действий недобросовестных участников информационного обмена. Требования к цифровой подписи:
1. Цифровая подпись доказывает, что подписавший согласен с содержанием документа.
2. Она является неотъемлемой частью документа и не может быть перенесена на другой документ.
3. После того, как документ подписан, его невозможно изменить.
4. От подписи нельзя отказаться, то есть подписавший не сможет впоследствии утверждать, что документ подписан без его ведома.
Изложим основные идеи, на которых основан механизм цифровой подписи.
Пусть имеется пара преобразований E и D, удовлетворяющим условиям:
Для любого сообщения x выполняется равенство D(E(x)) = x.
E и D легко вычисляются для любых исходных данных.
Преобразование D сложно обратить, то есть, зная D и x трудно найти y такое, что D(y) = x.
В данном случае E обеспечивает шифрование информации, а D -- расшифрование.
Для того, чтобы наладить обмен подписанными электронными сообщениями, необходимо передать получателю ключ расшифрования, а ключ зашифрования держать в секрете.
A B
E1, D1 E2, D2
D2 D1
Чтобы подтвердить подлинность сообщения х абонент А должен отправить вместе с ним значение E1 (х), полученное в результате шифрования сообщения на своем секретном ключе. Это значение и является цифровой подписью х. Абонент B, получив пару x, E1(x), применяет преобразование D1 и убеждается в том, что D1(E1(x)) = x. Если А держит преобразование E1 в секрете, то никто кроме него не сможет подобрать такое y, чтобы D1(y) совпадало с x.
Описанный выше механизм цифровой подписи может обеспечивать проверку подлинности документов даже более надежно, чем обычная подпись под бумажным документом.