|
Криптография - это наука о способах шифрования информации с целью ее защиты от посторонних пользователей. В настоящее время криптография является одним из основных методов обеспечения конфиденциальности и целостности данных.
Использование методов криптографической защиты позволяет не только шифровать информацию, но и
- Построить и организовать проверку значений хэш-функций
- Разработать механизм цифровой подписи
- Создать систему генерации, распределения, хранения, использования, уничтожения и восстановления криптографических ключей.
Современные методы шифрования обычно разделяют на два наиболее общих типа:
Симметричное или классическое шифрование.
Впервые математически этот метод был описан Клодом Шенноном. В целом Этот метод можно представить следующим образом. Существует функция шифрования, осуществляющая преобразование открытого текста в зашифрованный (например, F: Х®Y), и существует функция дешифрования, выполняющая обратную процедуру (например, F-1: Х®Y).
Исходные данные с помощью ключа преобразуются таким образом, что из полученного шифртекста невозможно извлечь ни исходный текст, ни ключ. Однако, зная ключ, легко можно вычислить исходный текст. В надежных алгоритмах шифрования криптографическая стойкость основывается на содержании ключа в тайне, а не на содержании в тайне самого алгоритма криптографического преобразования.
Наиболее широко распространенным алгоритмом симметричного шифрования является DES (Data Encryption Standard), разработанный IBM в 1976 году и рекомендованный Национальным бюро стандартов США к использованию в открытых секторах экономики.
В России также существует стандарт на алгоритм шифрования. Это - ГОСТ 28147-89 "Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования". Основной особенностью Российского стандарта является высокая стойкость криптографического алгоритма. Она основывается на использовании 256-битного ключа.
Алгоритмы симметричного шифрования обеспечивают высокую скорость шифрования и простоту аппаратной и программной реализации. Однако им присущи и весьма принципиальные недостатки. Для их успешного применения необходимо решить проблему надежной доставки ключей каждому абоненту, т.е. нужен секретный канал для передачи каждого ключа. Кроме того, зависимость числа ключей от числа абонентов является квадратичной, что при большом количестве пользователей делает неэффективной работу службы генерации ключей из-за низкой скорости обработки огромного количества информации.
Асимметричное шифрование или шифрование с открытым ключем
Для решения вышеперечисленных проблем симметричного шифрования предназначены системы с асимметричным шифрованием, или шифрованием с открытым ключом, которые используют свойства функций с секретом, разработанных Диффи и Хеллманом.
В таких криптосистемах не требуется передача секретного ключа между абонентами, участвующими в обмене защищаемой информацией. Суть разработанного подхода заключается в том, что в обмене защищаемыми документами каждый абонент использует пару взаимосвязанных ключей - открытый и секретный. Отправитель подписываемого документа передает получателю открытый ключ. Он может это сделать любым несекретным способом или поместить ключ в общедоступный справочник. При помощи открытого ключа получатель проверяет подлинность получаемой информации. Секретный ключ, при помощи которого подписывалась информация, хранится в тайне от всех.
Таким образом, решаются две проблемы: нет нужды в секретной доставке ключа (так как при помощи открытого ключа нельзя расшифровать сообщения, для этого же открытого ключа зашифрованные, и, следовательно, перехватывать открытый ключ нет смысла); отсутствует также квадратичная зависимость числа ключей от числа пользователей - для n пользователей требуется 2n ключей.
Первым алгоритмом шифрования, разработанным на принципах асимметричного шифрования, является RSA.
Хэш-функция
Примером шифрования в целях аутентификации (установлении подлинности автора и документа) является шифрование с помощью односторонней функции (one-way) по-другому именуемой хэш-функцией (hash function). Хэш-функция, примененная к шифруемым данным, дает в результате значение, состоящее из фиксированного небольшого числа байт, которое передается вместе с исходным сообщением. Получатель сообщения, зная, какая хэш-функция была применена для получения этого результата, заново вычисляет его, используя незашифрованную часть сообщения. Если полученный и вычисленный результаты совпадают, значит, содержимое сообщения не было подвергнуто никаким изменениям.
Построение хэш-функций является трудной задачей, так как функции такого рода должны удовлетворять нескольким условиям. Во-первых, по результату, вычисленному с помощью данной функции, должно быть не возможно вычислить исходное сообщение. Во-вторых, должна отсутствовать возможность существования двух разных сообщений, для которых с помощью данной функции могли быть вычислены одинаковые результаты.
Помимо обеспечения целостности сообщений, хэш-функция может быть использована в качестве цифровой подписи для аутентификации передаваемого документа.
Цифровая подпись
Цифровая подпись (digital signature) - это способ проверки целостности содержимого сообщения и подлинности его отправителя. Реализуется с использованием асимметричных шрифтов. хэш-функций и передаваемой информации, самой подписи и пары ключей, что делает невозможным подтверждение подписи при изменении хотя бы одного из элементов.
Отправитель вычисляет хэш-функцию сообщения, шифрует ключом и отправляет вместе с письмом. Получатель, приняв сообщение, расшифровывает ее открытым ключом отправителя. Кроме того, получатель сам вычисляет хэш-функцию принятого сообщения и сравнивает с расшифрованным. Если результаты совпадают, то подпись является подлинной. В противном случае либо изменено содержание сообщения, либо подпись подделана. Таким образом гарантируется неизменность документа и авторство подписи.
Подробно о криптосистемах, алгоритмах шифрования, цифровой подписи и многом другом, можно прочитать в приведенных ниже книгах и публикациях.
|