2012-04-12 2 views
4

Предположим, вы хотите высчитать 5^65537 вместо умножения 565537 раз, рекомендуется делать ((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. 
+0

Вы знаете, что крипто не на самом деле * вычислите это, верно? –

+3

Первое предложение неверно. '5^65537! = ((5^2)^16) * 5' – Vincent

+0

@ IgnacioVazquez-Abrams Этот расчет должен быть сделан где-то вправо? и это повлияет на производительность. – suraj

ответ

11

граф операция умножения:

5^65537 = 65537 multiplications 
((5^2)^16)*5 = (2 + 16 + 1) = 19 multiplications. 

От этого, вы можете увидеть, что это гораздо меньше работы, несмотря на умножения рабочих на больших количествах. Алгоритм называется Square and Multiply.

На практике криптосистемы, которые должны вычислять большие числа, как это, используют метод, называемый Modular Exponentiation, чтобы избежать массивных промежуточных чисел.

+0

@Oleski: Значит, умножения на большие числа не установлены назад? – Ashwin

+0

Имейте в виду, что версия с множественным умножением по-прежнему имеет дело с огромными промежуточными результатами. Я обновил ответ, чтобы поговорить о том, как системы действительно справляются с большими числами на практике, хотя – Oleksi

+0

благодарит вас за эту ссылку. но вы можете объяснить в сценарии не криптографии, как малое число для умножений с большими числами лучше, чем умножение небольших чисел много раз. Не идет ли речь об основных битовых смесях с регистрами и аккумуляторами? сообщите пожалуйста если возможно. – Ashwin

Смежные вопросы