Принцип работы
Введем обозначения, необходимые для рассуждения:
-
q и N = 2q + 1 выбираются так, что N и q простые. N должно быть достаточно большим, чтобы дискретное логарифмирование по модулю N было практически неосуществимо.
-
Вся арифметика выполняется по модулю N (поле ).
-
g — генератор мультипликативной группы
-
k — параметр, получаемый на обоих сторонах, например, k = H(N, g) в ревизии 6а (в ревизии 6 k было постоянным и равно 3).
-
s — соль
-
I — идентификатор пользователя в системе сервера (username).
-
p — пароль пользователя, соответствующий I.
-
H() — криптографическая хеш-функция, например, SHA-256
-
x — секретный ключ, x = H(s, p).
-
v — верификатор пароля на стороне сервера, v = gx.
-
u — произвольный параметр для кодирования.
-
a,b — секретные одноразовые числа
Понятия пароля и верификатора соответствуют общепринятым понятиям секретного и открытого ключей, с двумя оговорками: пароль, как правило, меньше секретного ключа, так как его помнит пользователь, а память у него небольшого размера; в свою очередь, верификатор по математическим свойствам схож с открытым ключом, так как он легко получается из пароля, а обратная операция является вычислительно неразрешимой. Однако вместо того, чтобы быть общеизвестным, верификатор хранится сервером в тайне. Способ аутентификации, который предполагает хранение сервером верификатора, но не пароля, называется основанным на верификации(verifier-based).
Из исходных параметров вычисляются A,B (см. ниже). Сервер хранит пароли, используя следующую формулу:
-
x = H(s, p) (s выбирается произвольным образом)
-
v = gx (вычисление верификатора пароля)
После этого сервер хранит пару (I, s, v) в своей базе данных. Аутентификация происходит по следующей схеме:
-
Клиент -> Сервер: I, A = ga (идентифицируется, a — произвольное)
-
Сервер -> Клиент: s, B = kv + gb (посылает сохраненное s, произвольное b)
На обоих сторонах: u = H(A, B) На стороне клиента:
-
x = H(s, p) (пользователь вводит пароль)
-
S = (B — kgx)(a + ux) (вычисляется ключ сессии)
-
K = H(S) (K — это искомый ключ для шифрования)
На стороне сервера:
-
S = (Avu)b (вычисление ключа сессии)
-
K = H(S) (K — это искомый ключ для шифрования)
Теперь обе стороны имеют общий секретный ключ K. Для завершения аутентификации, им необходимо свериться, что их ключи совпадают. Один из возможных способов:
Клиент -> Сервер: M = H(H(N) xor H(g), H(I), s, A, B, K) и проверка на стороне сервера
Сервер -> Клиент: H(A, M, K) и проверка на стороне клиента
Yandex.RTB R-A-252273-3- 1. Основные принципы и понятия используемые при защите информации.
- 2.Перестановочный шифр.
- Пример (шифр Древней Спарты)
- 3.Подстановочный шифр.
- 4. Понятие потокового шифра,основные характеристики потокового шифра.Вариант потокового шифра в системе gsm(стандарт а5/1).
- Классификация поточных шифров
- Синхронные поточные шифры
- Самосинхронизирующиеся поточные шифры
- Достоинства госТа
- Критика госТа
- Возможные применения
- 9. Схема Deffie-Hellmana
- 10. Основные принципы несимметричных алгоритмов. Алгоритм упаковки рюкзака
- 11 Алгоритм rsa
- 12. Алгоритм Эль Гамаля
- 14. Электронная подпись rsa
- 15. Электронная подпись Эль Гамаля
- 16. Понятие многоуровневой защиты информации. Вариант ее реализации.
- 17. Китайская теорема об остатках
- 18. Метод множителей Лагранжа
- 19. Система выработки общего ключа
- 20. Слепая подпись
- 21. Протокол аутентификации без разглашения
- Принцип работы
- Сравнение с некоторыми типами алгоритмов
- 22. Протокол ssl
- История и развитие
- Применение
- Основные цели протокола в порядке приоритетности
- Аутентификация и обмен ключами
- 25. Квантовая криптография
- 26. Криптография на эллиптических кривых. Основные принципы и свойства.
- 27. Правовые аспекты защиты информации
- 28. Стенография( тайнопись). Основные принципы и методы.
- 29. Безопасность сенсорных сетей. Протоколы установки группового ключа
- 30. Безопасность rfid. Проблемы анонимности и защиты покупателя
- 31. Безопасность Windows nt/2000/xp
- 33. Защита информации от несанкционированного использования и копирования.