- •Оглавление
- •Раздел 1. Математические основы криптографии
- •1.1. Делимость и алгоритм евклида
- •1.1.1 Отношение делимости
- •1.1.2 Использование алгоритма Евклида для решения теоретико-числовых задач криптологии
- •1.1.3 Расширенный метод Евклида
- •1.2. Сравнения
- •1.2.1. Отношение сравнимости
- •1.2.2. Использование свойств сравнений для решения теоретико-числовых задач криптологии
- •Раздел 2. Криптографические системы с открытым ключом
- •2.1. Основные сведения о криптографических системах
- •2.2. Шифрование с использованием криптосистемы rsa
- •2.3. Цифровая подпись в схеме Эль-Гамаль
- •2.4. Обмен информацией с использованием протокола Шамира
- •Раздел 3. Контрольные задания
- •3.1. Программа работы
- •3.2. Примеры выполнения контрольных заданий
- •3.2.1. Шифрование с использованием криптосистемы rsa
- •3.2.2. Цифровая подпись в схеме Эль – Гамаль
- •3.2.3. Обмен информацией с использованием протокола Шамира
- •3.3. Варианты контрольных заданий
- •3.3.1. Шифрование с использованием криптосистемы rsa
- •3.3.2. Цифровая подпись в схеме Эль-Гамаль
- •3.3.3. Обмен информацией с использованием протокола Шамира
- •Библиографический список
Раздел 2. Криптографические системы с открытым ключом
2.1. Основные сведения о криптографических системах
Основной задачей криптографии является обеспечение конфиденциальности в отношении некоторых сведений. Для ее решения применяются два основных типа криптографических систем:
Криптосистемы с секретным ключом(симметричные криптосистемы) это алгоритмы, в которых ключ шифрования полностью определяется ключом дешифрования и наоборот, ключ дешифрования полностью определяется ключом шифрования. Большинство применяемых симметричных алгоритмов использует тождественные ключи шифрования и дешифрования. Таким образом, шифрование и дешифрование с помощью симметричных криптосистем может быть представлено в виде:
|
, |
|
|
, |
|
где - секретный ключ, применяющийся для шифрования и дешифрования данных;
- открытый текст, в отношении которого требуется обеспечить конфиденциальность;
- шифртекст, полученный при шифровании открытого текста;
- алгоритм шифрования с ключом ;
- алгоритм дешифрования с ключом.
Очевидно, что защита, обеспечиваемая симметричными криптосистемами определяется секретностью ключа; компрометация1 ключа, как правило, означает вскрытие шифра и разглашение открытого текста [1].
Симметричные криптографические системы разделяют на две основные группы:
потоковые алгоритмы, обрабатывающие открытый текст и шифртекст побитно;
блочные алгоритмы, обрабатывающие открытый текст и шифртекст группами битов (блоками).
Стойкость симметричных криптографических систем определяется, как правило, в рамках теоретико-информационного подхода, на основании предположения о принципиальной невозможности получения противником никакой информации о строении криптосистемы или ее элементов.
Исторически симметричные шифры появились задолго до разработки основных положений теории асимметричных криптосистем. Все известные из истории шифры относятся к симметричным (шифр Цезаря, шифр «Сцитала» и т.д.). К числу симметричных криптосистем относятся т.н. «одноразовые блокноты Вернама», изученные в работах известного американского математика Клода Шеннона (Cloud Shannon) [2,3]. К настоящему времени активно используются такие широко распространенные симметричные криптосистемы как: DES (блочный шифр, являющийся стандартом шифрования в США), ГОСТ 28147-89 (блочный шифр, являющийся стандартом РФ), A5 (потоковый шифр, использующийся в системах мобильной связи стандарта GSM) и т.д.
Криптосистемы с открытым ключом (асимметричные криптосистемы) это алгоритмы, в которых ключи шифрования и дешифрования различны. Более того, ключ дешифрования не может быть вычислен из ключа шифрования. Такие алгоритмы называют криптосистемами с открытым ключом, так как любой абонент, зная открытый ключ, может зашифровать сообщение, однако расшифровать шифртекст сможет только абонент, владеющий секретным ключом.
Таким образом, шифрование и дешифрование с использованием асимметричной криптосистемы может быть представлено в виде:
|
, |
|
|
, |
|
где - открытый ключ, применяющийся для шифрования данных;
- секретный ключ, применяющийся для дешифрования данных;
- открытый текст, в отношении которого требуется обеспечить конфиденциальность;
- шифртекст, полученный при шифровании открытого текста;
- алгоритм шифрования с ключом ;
- алгоритм дешифрования с ключом.
Стойкость асимметричных криптосистем определяется как правило на основании теоретико - сложностного подхода, исходя из предположения о сравнимости сложности задачи криптоанализа2 со сложностью некоторой хорошо изученной математической задачи. Таким образом, для стойкости криптосистемы необходимо и достаточно, чтобы любой алгоритм (как детерминированный, так и стохастический) решения задачи криптоанализа требовал практически неосуществимого объема вычислений, либо срабатывал с пренебрежимо малой вероятностью.
Основоположниками криптографии с открытым ключом являются американские математики Уитфрид Диффи (W. Diffie) и Мартин Хеллман (M. Hellman), опубликовавшие в 1976 г. работу «Новые направления в криптографии» [4], в которой впервые были систематически изложены математические основы криптографии с открытым ключом.
Данная работа послужила толчком к развертыванию дальнейших исследований в области разработки асимметричных криптосистем, что, в свою очередь, привело к широкому распространению вновь разработанных алгоритмов, таких как RSA (асимметричный алгоритм, применяющийся для шифрования данных и подписания сообщений), Эль-Гамаль (асимметричный алгоритм, применяющийся для шифрования данных и подписания сообщений), DSA (алгоритм цифровой подписи, принятый в качестве стандарта в США), ГОСТ Р 34.10-94 (алгоритм цифровой подписи, принятый в качестве стандарта в РФ) и т.д.
Сравнение возможностей симметричных и асимметричных криптосистем позволяет сделать следующие замечания:
Как правило, симметричные системы обрабатывают большие объемы информации быстрее асимметричных, так как основными операциями по обработке данных в них являются битовые операции сдвига, сложения и т.д., эффективно реализуемые в виде электронных логических систем [1].
Ряд криптографических задач (таких как выработка общего ключа, цифровая подпись) может быть решен исключительно методами асимметричной криптографии [1].
Использование теоретико-сложностного подхода для обоснования стойкости асимметричных криптосистем позволяет количественно оценить стойкость в виде функции от ряда параметров (длина входного слова, вычислительные мощности, доступные противнику и т.д.). Использование теоретико-вероятностного подхода для обоснования стойкости симметричных криптосистем позволяет оценить стойкость в терминах теории вероятностей и предполагает абсолютную пассивность противника (на практике являющуюся недостижимой) [1,3].
С учетом данных замечаний, можно сделать вывод о преимущественных шансах асимметричных криптографических систем на долгосрочную перспективу.
В дальнейшем будут рассмотрены основные типы криптосистем с открытым ключом, широко распространенные на практике.