Хочу сгенерировать на клиенте ключи по алгоритму Диффи — Хеллмана
формула такая A = g^a mod p
Для работы с большими числами использую BigNumber
Есть такой код
пусть будут такие чилса
var g = new BigNumber('5377521262291226325198505011805525673063229037935769709693');
var p = new BigNumber('3805108391982600717572440947423858335415441070543209377693');
var a = new BigNumber('3156118255187236272351299799643367174059608931247836642734');
Вычисляю по формуле так:
var pow1 = g.pow(a);
var publ = pow1.mod(p);
Но при выполнении данного кода браузер виснет т.к. слишком долго идет var pow1 = g.pow(a);
Как можно это реализовать подругому ?
Вот пример где работает данный алгоритм
http://www-cs-students.stanford.edu/~tjw/jsbn/ecdh.html но я не пойму по какой формуле происходит возведение в степень.