Спасибо за ссылочки!
Ты погоди ломать то, нужно строить еще научиться! Уж лучше тормозные глючные студенческие поделки, чем готовые оптимизированные функции типа GetMyVeryStrongECCKey(512), если не знать, как они работают. Теперь я знаю как складывать и удваивать точки.
Несколько ламерских вопросов.
1) Надыбал примеры кривых.
a,b – параметры кривых.
p – простое число,
Gx,Gy – координаты Образующей Точки,
n – число элементов, или число, через которое Образующая точка начнет повторяться?
2) Как брать остатки от деления на лажевые числа мерсена типа
2^192 - 2^64 - 1 (не проводя самого деления, быстро). От нормальных чисел мерсена легко брать, а от этих – не знаю как.
3) Формулки для сложения и удвоения точек содержат деление по модулю-обратные элементы. Это ведь ОЧЧЕНЬ долго кажный раз вычислять (взять хоть евклида, хоть степень p-2)!!!
4) Если нужно умножить точку на большое число, то это типа как в степень быструю алгоритм, удвавать, удваивать, складывать с аккумулятором нужные биты, так?
5) Q=k G : k – секретное число (1<k<n), Q – открытая информация, по которой k хрен найдешь. Как же организовать шифрование и подпись, лучше симметричный случай типа RSA, или поотдельности?
|