Зачем нужен Elligator?
Намедни реализовал Elligator на c# и задумался о его необходимости вообще. Это ведь обычное биективное преобразование точки кривой во что-то "выглядящее как случайный набор байт" и обратно, чем может являться хоть xor с заранее выбранной псевдослучайной последовательностью. Чем хуже, например, шифрование быстрым алгоритмом с заранее известным ключом?
Не очень понимаю, зачем городить все эти преобразования, если можно работать с битовыми строками напрямую
комментариев: 9796 документов: 488 редакций: 5664
Здесь
многиенекоторые мечтают о т.н. бессигнатурном шифрование. Вот это оно, для ECC public crypto.Кто-то живёт в регионе, где все шифрованные протоколы связи блокируются, хотя бы на время каких-то событий. Приходиться пользоваться обфускацией. Но если использовать «XOR с известной строкой», то она станет известной слишком многим. Да и как её секретно передать/согласовать, не привлекая внимания цензоров? А в аллигаторе этого не надо, идёт обмен непрофилируемым псевдорэндомом и всё.
комментариев: 9796 документов: 488 редакций: 5664
Я читал о нём давно, могу ошибаться, но цель была именно в том, что противник знает, что используется аллигатор, знает все константы и параметры протокола, но при этом не может отличить обмен сторон протокола от рэндома.
Если это так, то это много где м.б. полезно, не только для обхода цензуры. Да и в обходе цензуры масса интересных вариантов приходит в голову.
Elligator *любой* шум превратит в точку. В итоге мы при каждом дешифровании получим точки (валидные публичные DH ключи). Мы не знаем какой конкретно DH ключ (точка) используется на деле. Без Elligator мы получим при дешифровании: либо то что не является точкой, либо точку. Здесь мы везде получаем то что Elligator сможет преобразовать в точки, то есть получаем точки всегда.
комментариев: 300 документов: 33 редакций: 12