
- •Глава 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).