n="justify"> (4 v ? w )? 8 Y 1 2 u 2 ,
Z 3 = 8 u i> 3 .
Отримуємо, що t (2 P ) = 7M + 5S.
При P 1 =? P 2 отримуємо P 3 = O.
Тепер розглянемо, який виграш в продуктивності ми отримаємо при використанні стандартних проективних координат. У наступних міркуваннях враховуються лише операції множення, зведення в квадрат і обігу. Операції додавання і віднімання виробляються набагато швидше і при оцінці швидкості алгоритму їх можна не враховувати. p align="justify"> Нагадаємо, що при використанні звичайного методу складання двох точок нам потрібно виробити 2 множення, одне зведення в квадрат і одне звернення. Таким чином, при використанні стандартних проективних координат ми виробляємо на 10 множень і на 1 зведення в квадрат більше, але нам не потрібна операція звернення елемента. p align="justify"> При подвоєнні точки в проективних координатах нам потрібно провести на 5 множень і на 3 зведення в квадрат більше. Звернення з алгоритму також виключається. p align="justify"> Таким чином, для того, щоб використання проективних координат давало приріст продуктивності, необхідно, щоб операція звернення була хоча б в 11 разів повільніше операції множення в разі складання двох точок і в 8 разів повільніше в разі подвоєння точки . Для порівняння швидкості роботи цих операцій була написана окрема програма (test.java в додатку даної роботи, метод compMultInv). Ця програма використовує реалізації операцій множення та звернення з бібліотеки BigInteger мови java (саме ця бібліотека використовується в даній роботі при реалізації ECDSA). У результаті роботи даної програми було встановлено, що звернення елемента поля K в середньому займає приблизно в 14-16 разів більше часу, ніж множення двох елементів даного поля (характеристика поля K вибиралася випадковим чином, її довжина належало рівною 200 бітам). З цих результатів можна зробити наступний висновок: в заданих умовах при використанні стандартних проективних координат додавання двох точок відбувається в середньому в ~ 1.28 разів...