![]() |
|
![]() ![]() ![]() |
|
drG100k |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 31.3.2006 Репутация: нет Всего: нет |
Всем привет!
Не могу понять как Алиса проверяет правильность пароля. Обмен ключами идёт по алгоритму Diffie-Hellman Чтобы исключить возможность атаки "человек в середине" применяется проверка правильности пароля. Исходные данные: Алиса a = random() A = g**a % m Боб b = random() B = g**b % m Общие g,m,A,B C = hash(password) D = hash(A|B) (| - конкатенация) K = A**b%m = B**a%m = (g**(a*b))%m Проблема Боб генерит строку проверки пароля X = (((D+A)%m)**(C+b)) %m и отправляет Алисе hash(X) а дальше я никак не могу придумать как Алиса проверяет правильность, но она как-то вычисляет X на своей стороне не зная b Помогите, plz, с алгоритмом, а то у меня с математикой плохо. Это сообщение отредактировал(а) drG100k - 20.5.2013, 12:37 |
|||
|
||||
beroal |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 18.1.2003 Где: Украина Репутация: нет Всего: 3 |
Наверное, нужно воспользоваться равенством ((D+A)%m)**(C+b) = ((D+A)%m)**C * ((D+A)%m)**b. Алиса знает левый множитель, но с правым тупик.
|
|||
|
||||
AVA12 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 4.5.2008 Репутация: 1 Всего: 4 |
Можно не использовать отдельный протокол аутентификации, а просто в качестве сеансового ключа вычислять (g**(a*b))**p % m, где p - пароль (хэш), известный только двум сторонам. Тогда злоумышленник не сможет вычислить ключ.
|
|||
|
||||
drG100k |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 31.3.2006 Репутация: нет Всего: нет |
Да, можно и так, но я столкнулся именно со случаем в примере. К тому же, имея на руках алгоритм только Алисы или только Боба написать "человек по середине" становится сложнее. Логично предположить что и здесь X = f(K,p), но вот как заменить (D+A)**b %m на что-то эквивалентное на стороне Алисы? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |