Обсуждение:Эллиптическая криптография

Последнее сообщение: 4 года назад от 109.200.254.247 в теме «Криптография»

считаю, что в статью необходимо добавить пояснение более простым языком для таких представителей как гопники — Эта реплика добавлена с IP 91.214.49.9 (о)

Патенты править

Не раскрыта тема патентов и почему, несмотря на более чем очевидные преимущества, сабж практически не используется. — Эта реплика добавлена с IP 178.27.144.110 (о)

Криптография править

m не равно Pm, а Gm - это вообще пара точек.

Каким образом закодировать m в Pm, и декодировать m из Pm, если у Pm две координаты?

Надо подобрать точку обязательно лежащую на кривой, по уравнению кривой, чтобы её биты совпадали с битами m?

Если кодировать m как одну лишь координату x, имеющую вполне определённое значение, заданное m - то значит нужно вычислить для неё и y, а там y^2 mod P = (x^3+ax+b) mod P, так что для получения y - просто корень из кубического многочлена при известном x, взять не получится.

Нужно будет добавлять к результату модуля P, само P, причём столько раз, пока не получится квадрат.

И только тогда взять корень, и это будет y. Если оно целое. А если не целое? А если числа длиной 256 бит, а P - маленькое?

Количество операций сложения c P для поиска квадрата y будет огромным же.

К тому же корень из квадрата даёт два числа - отрицательное и положительное, и вообще y по 2 для каждого x - чётное и нечётное, так как y1 = (P - y0) mod P.

Корень из y^2 = {+y1, -y0}, при этом, |(|-y0| mod P) - P| mod P = |P - y0| mod P;

Если Pm = m*G, то как получить m из mG, ведь нельзя сделать Pm/G, потому что операции деления точки на точку, на эллиптической кривой нет, можно только точку на числовую константу поделить. И вообще на сложности получения множителя из произведения генераторной точки на число и держится вся система эллиптической криптографии.

195.66.216.26 14:43, 20 октября 2016 (UTC)Ответить

Кодирование чисел и сообщений в точки на эллиптической кривой а также декодирование их

- освещено в файле ECC.py в репозитарии mini_ecdsa у пользователя username1565 на github'e.

(Ссылка не вставляется и не пропускается фильтром правок).

Там же, добавлены тесты, а в файле mini_ecdsa.py - добавлена функция,

для получения чётного или нечётного значения координаты Y по значению координаты X.

Не все X от 0 до P, могут быть закодированы одной точкой ЭК, с соответствующей x-координатой.

Количество уникальных точек на кривой - равно n, а точек с уникальными x-координатами (n-1)/2, если n - простое число.

Таким образом, при кодировании числа от 0 до P в точки, может появляться избыточность шифротекста.

Возмжно, именно поэтому, шифрование с использованием эллиптической кривой не распространено широко,

ведь проще использовать симметричные шифры, длина шифротекста в которых равна длине сообщения.

109.200.254.247 21:30, 29 октября 2019 (UTC)Ответить