Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка пароля во время обмена ключами 
:(
    Опции темы
drG100k
Дата 19.5.2013, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
beroal
Дата 23.5.2013, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 18.1.2003
Где: Украина

Репутация: нет
Всего: 3



Наверное, нужно воспользоваться равенством ((D+A)%m)**(C+b) = ((D+A)%m)**C * ((D+A)%m)**b. Алиса знает левый множитель, но с правым тупик.
PM WWW   Вверх
AVA12
Дата 23.5.2013, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 4.5.2008

Репутация: 1
Всего: 4



Можно не использовать отдельный протокол аутентификации, а просто в качестве сеансового ключа вычислять (g**(a*b))**p % m, где p - пароль (хэш), известный только двум сторонам. Тогда злоумышленник не сможет вычислить ключ.
PM ICQ Jabber   Вверх
drG100k
Дата 23.5.2013, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 31.3.2006

Репутация: нет
Всего: нет



Цитата(AVA12 @ 23.5.2013,  17:21)
Можно не использовать отдельный протокол аутентификации, а просто в качестве сеансового ключа вычислять (g**(a*b))**p % m, где p - пароль (хэш), известный только двум сторонам. Тогда злоумышленник не сможет вычислить ключ.

Да, можно и так, но я столкнулся именно со случаем в примере.
К тому же, имея на руках алгоритм только Алисы или только Боба написать "человек по середине" становится сложнее.
Логично предположить что и здесь  X = f(K,p), но вот как заменить (D+A)**b %m на что-то эквивалентное на стороне Алисы?

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0601 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.