Как стать автором
Обновить

Комментарии 17

Интересно, в асимметричном шифровании используется что-то, кроме RSA и вариаций на тему Диффи-Хеллман?

Эллиптические кривые, KEM на основе решеток, изогении, коды Гоппа(макЭлис). с 1977 года много всего изобрели

ДХ протокол по сути является методом создания симметричного ключа, но он всё равно работает в связке с другими протоколами для подтверждения сервера, ибо также подвержен MITM

Что касается альтернатив, то в конце статьи есть ссылка на статью про криптографию на эллиптических кривых

А что, уже изобрели протокол, не подверженный MITM? Насколько я знаю, нет такого протокола и не предвидится.

Нет, любое сколь угодно стойкое шифрование никак не связано с проблемой доверия. Во всяком случае так было пару назад.

Базовая реализация DH не содержит в себе решения проблемы MITM, в отличии от цепочки доверия RSA, речь об этом

А, я сразу не понял, что речь идет только о сайтах.

Очень "интересная и актуальная" статья!
46 лет прошло, а студенты всё так же не могут даже пару слов написать о безопасном выборе публичной экспоненты, атаке факторизации Ферма и других детских болячках. Зато картинки, да.

Вы абсолютно правы, много чего не хватает, целью было, скорее, понятно объяснить основные принципы работы ассиметричной криптографии людям, далёким от неё, но желающим иметь базовое её понимание.

В любом случае, благодарю за конструктивную критику!

Вы считаете, что люди, которые занимались объяснением основных принципов работы ассиметричной криптографии последние 46 лет не достигли своих целей?

  1. Выбираем простое число e, которое меньше \varphi(N) и является взаимно простым с \varphi(N) (не имеющих общих делителей друг с другом, кроме 1)

Число e не обязано быть простым, достаточно, чтобы оно было взаимно простым.

>>Ключи мы с вами вычислили, теперь перейдём к шифрованию сообщений.

открытый ключ "е"не вычисляется, а задается. Личный ключ Вы не вычислили (не показали как это сделать читателю)

Согласен, исправил

Поправьте меня пожалуйста, возможно я ошибаюсь, но по моему в расширенном алгоритме Евклида ошибка.

q = a/b =>a = q*b

r = a - q*b

Но тогда при каждом цикле r (а дальше и b) будут приравниваться к 0

вы забываете о приведении типов в ЯП. то есть q = a/b это деление целочисленное то есть

(int)(floor)(a/b)->q

пример на js можете увидеть здесь "Птицу узнают по перьям… или профзащита от спама" https://habr.com/p/800345/

function xgcd(a, b) { if (!b) return [1n, 0n]; let [c, d] = xgcd(b, a % b); let q = a / b; return [d, c - d * q];}

  1. Выбираем два случайных простых числа p и q

Откуда берутся эти числа и по какому правилу выбираются?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории