Обсуждение:Эллиптическая криптография
считаю, что в статью необходимо добавить пояснение более простым языком для таких представителей как гопники — Эта реплика добавлена с 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)