Re[4]: возвести 255 в 999 степень
От: Dmitry Kukushkin  
Дата: 28.05.03 21:04
Оценка:
Здравствуйте, Рома Мик, Вы писали:

WH>>>Про умножение столбиком слышал?

T>>Слышал, только как его реализовать на асме?

Надо думать, поскольку в соседнем топике temik — а речь идет об RSA, то имеется в виду возведение в степень по некоему модулю.
Простейший алгоритм модульного возведения в степень:

на входе
g — число
e — степень
m — модуль

на выходе
g ^ e mod m

1. A = 1, S = g
2. while( e != 0 )
2.1 if e нечетное A = ( A * S ) % m
2.2 e = e / 2
2.3 if( e != 0 ) S = S * S % m
3. return A

при этом разрядность результатов промежуточных умножений не вылезает за m^2 — 2.
так что если m <= 2^16 то все операции прекрасно можно производить в 32-х битных регистрах.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.