Предположим, вы хотите высчитать 5^65537
вместо умножения 5
65537
раз, рекомендуется делать ((5^2)^16)*5
. Это приводит к 16-кратному возведению в квадрат и одному умножению.
Но мой вопрос заключается в том, что вы не компенсируете число квадратов, возводя квадраты очень больших чисел? как это происходит быстрее, когда вы переходите к базовому умножению бит в компьютерах.
После прочтения комментариев, у меня это сомнение:
Как возведение в степень путем возведения в квадрат быстрее?
How is the cost of each multiplication not dependant on the size. because when
multiplying the number of bits of the multiplier will increase and this will increase the
number of additions and the number of left shifts.
Вы знаете, что крипто не на самом деле * вычислите это, верно? –
Первое предложение неверно. '5^65537! = ((5^2)^16) * 5' – Vincent
@ IgnacioVazquez-Abrams Этот расчет должен быть сделан где-то вправо? и это повлияет на производительность. – suraj