- •Глава 36. Схемы шифрования rsa, Эль Гамаля, Полига-Хеллмана
- •Часть 5. Шифры с открытым ключом шифрования
- •Глава 36.
- •36.1. Основные понятия модулярной арифметики
- •Основные способы нахождения обратных величин a–1 1 (mod n).
- •36.2. Криптосистема шифрования данных rsa
- •X((Pх)) y (modQ).
- •36.3. Схема шифрования Эль Гамаля
- •36.4. Схема шифрования Полига-Хеллмана
- •Глава 37.
- •Глава 38.
- •38.1. Основные принципы построения протоколов идентификации и аутентификации
- •Доказательство проверяемого a:
- •38.3. Типовые схемы идентификации и аутентификации пользователя информационной системы
- •38.4. Особенности применения пароля для аутентификации пользователя
- •38.5. Взаимная проверка подлинности пользователей
- •38.6. Протоколы идентификации с нулевой передачей знаний
- •38.7. Упрощенный вариант схемы идентификации с нулевой передачей знаний. Протокол Фиата-Шамира
- •38.8. Параллельная схема идентификации с нулевой передачей знаний (с нулевым раскрытием)
- •38.9. Модифицированный протокол Фиата-Шамира
- •38.10. Схема идентификации Шнорра
- •38.11. Схема идентификации Гиллоу-Куискуотера
- •38.12. Способ проверки подлинности, где не требуется предъявлять секретный пароль
- •38.13. Проверка подлинности с помощью систем шифрования с открытым ключом
- •38.14. Биометрическая идентификация и аутентификация пользователя
- •Глава 39.
- •39.1. Основные понятия
- •39.4. Однонаправленные хэш-функции
- •Схемы безопасного хэширования, у которых длина хэш-значения равна длине блока
- •39.5. Отечественный стандарт хэш-функции
- •Глава 40.
- •40.1. Электронная цифровая подпись для аутентификации данных
- •40.2. Алгоритмы электронной цифровой подписи
- •40.3. Алгоритм цифровой подписи rsa
- •Обобщенная схема цифровой подписи rsa
- •40.4. Недостатки алгоритма цифровой подписи rsa
- •40.5. Алгоритм цифровой подписи Эль – Гамаля
- •40.6. Цифровая подпись Эль-Гамаля
- •40.7. Особенности протокола Эль-Гамаля
- •40.8. Алгоритм цифровой подписи dsa
- •40.10. Цифровые подписи с дополнительными функциональными свойствами
- •40.11. Алгоритм неоспоримой цифровой подписи д.Чома
- •40.12. Протокол подписи, позволяющий отправителю сообщения не предоставлять право получателю доказывать справедливость своей подписи
- •Глава 41.
- •41.1. Генерация ключей
- •41.2. Концепция иерархии ключей
- •41.3. Распределение ключей
- •41.4. Протокол аутентификации и распределения ключей для симметричных криптосистем
- •41.5. Протокол для асимметричных криптосистем с использованием сертификатов открытых ключей
- •41.6. Использование криптосистемы с открытым ключом для шифрования и передачи секретного ключа симметричной криптосистемы
- •Длины ключей для симметричных и асимметричных криптосистем при одинаковой их криптостойкости
- •41.7. Использование системы открытого распределения ключей Диффи-Хеллмана
- •41.8. Протокол skip управления криптоключами
- •Глава 42.
- •42.1. Основные понятия конечных полей
- •42.2. Криптографические протоколы. Протокол Диффи-Хеллмана
- •42.3. Протокол электронной цифровой подписи
38.9. Модифицированный протокол Фиата-Шамира
В протоколе Фиата-Шамира необходимо, чтобы компьютер хранил открытые ключи абонентов. В приводимом ниже модифицированном протоколе этого не требуется. Однако предполагается наличие ЦСК (центра сертификации ключей), который публикует сертифицированное составное число , где – различные нечетные простые числа. Предполагается наличие однонаправленной хэш-функции , где – множество всех строк конечной длины, состоящих из 0,1. Пусть есть личный идентификатор А, т.е. – строка бит, которая помимо ее имени содержит информацию о ней как пользователе компьютера и данные о ЦСК. Открытый ключ А есть , где – строки бит такие, что . Секретный ключ А есть , где
.
Эти значения предоставляются А в ЦСК. Так как ЦСК знает секретное разложение , он может легко вычислить значения . Протокол заключается в выполнении следующих шагов.
-
А передает на компьютер. Компьютер вычисляет ;
-
А выбирает случайное секретное число , вычисляет и передает на компьютер;
-
компьютер выбирает случайную строку из бит , и передает эту строку А;
-
А вычисляет , передает на компьютер;
-
компьютер проверяет равенство
.
Шаги протокола 2)-5) могут быть повторены раз. Если все сравнений из п.5) выполнены, то А получает доступ.
Доказано, что если все элементы попарно различны при , то попытка противника выдать себя за А будет иметь вероятность успеха . С другой стороны, легко показать, что если не является однонаправленной, то противник может выдать себя за А.
38.10. Схема идентификации Шнорра
Пусть – такие простые числа, что делит . Пусть также такой вычет по , что порядок группы порожденной элементом равен q, . Секретный ключ А есть , где – вычет по . Открытый ключ А есть , где . Протокол заключается в выполнении следующих шагов.
-
А выбирает случайное секретное число , вычисляет и передает на компьютер;
-
компьютер передает А случайное число ;
-
А вычисляет , передает на компьютер;
-
компьютер проверяет сравнение . Если это сравнение имеет место, то А получает доступ.
Число должно быть секретным. В противном случае секретный ключ может быть вычислен из сравнения . Числа не должны повторяться. Если, например, , то система сравнений
однозначно разрешима относительно при .
Для вычисления секретного ключа из открытого или вычета из надо решить проблему дискретного логарифмирования в подгруппе порядка , что при достаточно большом составляет трудную задачу. Не зная секретного ключа, противник сможет выдать себя за А с вероятностью , t – параметр протокола, его рекомендуемое значение t=72. В качестве рекомендуют выбирать числа, состоящие из 512 и 160 битов соответственно. Этот протокол, также как протокол Фиата-Шамира, является протоколом с нулевым разглашением.
38.11. Схема идентификации Гиллоу-Куискуотера
В этом алгоритме обмены между сторонами А и В и аккредитации в каждом обмене доведены до абсолютного минимума – для каждого доказательства требуется только один обмен с одной аккредитацией.
Пусть сторона А – интеллектуальная карточка, которая должна доказать свою подлинность проверяющей стороне В. Идентификационная информация стороны А представляет собой битовую строку I, которая включает имя владельца карточки, срок действия, номер банковского счета и др. Фактически идентификационные данные могут занимать достаточно длинную строку, и тогда их хэшируют к значению I.
Строка I является аналогом открытого ключа. Другой открытой информацией, которую используют все карты, участвующие в данном приложении, являются модуль n и показатель степени V. Модуль n является произведением двух секретных простых чисел.
Секретным ключом стороны А является величина G, выбираемая таким образом, чтобы выполнялось соотношение
I∙GV 1 (mod n).
Сторона А отправляет стороне В свои идентификационные данные I. Далее ей нужно доказать стороне В, что эти идентификационные данные принадлежат именно ей. Чтобы добиться этого, сторона А должна убедить сторону В, что ей известно значение G.
Вот протокол доказательства подлинности А без передачи стороне В значения G:
1. Сторона А выбирает случайное целое r, такое, что 1 < r n – 1. Она вычисляет
Т = rV mod n
и отправляет это значение стороне В.
2. Сторона В выбирает случайное целое d, такое, что 1 < d n – 1, и отправляет это значение d стороне А.
3. Сторона А вычисляет
D = r ∙ Gd mod n
и отправляет это значение стороне В.
4. Сторона В вычисляет значение
Т´ = DV Id mod n.
Если TT´ (mod n), то проверка подлинности успешно завершена.
Математические выкладки, использованные в этом протоколе, не очень сложны:
Т´= DV d = (r Gd)V Id = rV GdV Id = r V (I GV )d = rV T(mod n),
поскольку G вычислялось таким образом, чтобы выполнялось соотношение
IGV1 (mod n).