Господа, прошу пояснить теорию ( математику ), дабы используя PHP я сам набросал код
есть статья как поменяться ключами, совершенно не понимаю почему описанный обмен данными безопасен с точки зрения тех, кто обменивается ключами. Прошу объяснить!
p.s.
Алиса: знает P=23, G=5, A=6
Боб: знает P=23, G=5, B=15
Погон: знает P=23, G=5 и прослушивает канал связи
.. погнали ..
Алиса: отсылает бобу 8 ( 5^6/23 = что-то и остаток 8 )
Погон: знает что отослала Алиса
Боб: видит 8
Погон: знает что получил Боб
Боб: отсылает Алисе 19 ( 5^15/23 = что-то и остаток 19 )
Погон: знает что отослал Боб
Алиса: видит 19
Погон: знает что получила Алиса
.. теперь Погон знает столько же сколько и остальные ..
Алиса: вычисляет, 19^6/23 = что-то и остаток 2
Погон: вычисляет, 19^6/23 = что-то и остаток 2
Боб: вычисляет, 8^15/23 = что-то и остаток 2
Погон: вычисляет, 8^15/23 = что-то и остаток 2
.. теперь Погон знает столько же сколько и остальные ..
если коротко:
Алиса -> 8 -> Боб -> 19 -> Алиса ( Погон знает тоже самое )
.. теперь Погон знает столько же сколько и остальные .. [1]
А вот и нет. Ему по-прежнему неизвестны A=6
и B=15
. Эти числа не передавались по каналам связи, передавались только "производные с потерями", сделать обратную операцию по которым невозможно за разумное время.
Посему эти два шага Погон осуществить не сможет, у него нет всех деталей:
Погон: вычисляет, 19^6/23 = что-то и остаток 2
^ нету
Погон: вычисляет, 8^15/23 = что-то и остаток 2
^^ нету
В данном примере допущена ошибка:
Алиса: знает P=23, G=5, B=6
Боб: знает P=23, G=5, A=15
Погон: знает P=23, G=5 и прослушивает канал связи
.. погнали ..
лучше бы A=6 пометить прописной a=6, соответственно b=6.
Тогда исправленный пример выглядел бы так:
Алиса: знает P=23, G=5, a=6
Боб: знает P=23, G=5, b=15
Погон: знает P=23, G=5 и прослушивает канал связи
.. погнали ..
Алиса: отсылает бобу 8 ( A=P^a mod G = 5^6 mod 23 = 8 )
Погон: знает что A=8, но он не знает a
Боб: видит A=8
Погон: знает что получил Боб
Боб: отсылает Алисе B=19 ( B=P^b mod G = 5^15 mod 23 = 19 )
Погон: знает что отослал Боб
Алиса: видит B=19
Погон: знает что получила Алиса
.. Погон знает P, G, A, B. Алиса знает P, G, A, B, a. Боб знает P, G, A, B, b ..
Алиса: вычисляет, K = A^b mod P = 19^6 mod 23 = 2
Погон: для того, чтобы найти K ему нужно либо a, либо b. Он знает, что A=P^a mod G, но найти a можно только перебором, при достаточно большом a это нереально сделать за адекватное время.
Боб: вычисляет, K = B^a mod P = 8^15 mod 23 = 2
Погон: смотрите выше
.. теперь у Боба и Алисы есть общий ключ, а погон его не знает ..
То есть у нас есть алгоритм, который помогает вырабатывать общий секрентый ключ. Он защищен от прослушивания, но он не защитит нас в ситуации, когда человек посередине(Погон) сможет подменять сообщения: он сможет подменить пересланные A, B.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть команда: class DownloadSource extends Command { /** * The name and signature of the console command* * @var string */ protected $signature = 'convertor:download'; При выполнении
Помогите разобрать массив json_decodeИнтересует елемент значения firm_offer_id
наблюдаю раз в 2-3 месяца в рабочей директории мусор из PHP*tmp файлов, которые непонятно откуда появляются
В общем делаем общение с API сбербанка, по документации и в поддержке требуют передать пришедший к нам массив из сторонней системы в сбер в формате...