Man kann das Extended doch auch wieder zu einem Integer runde (Round) oder abschneiden (Trunc).
Zur hälft hilft dir IntPower.
Das bringt doch alles nix weil zB selbst 12345^5678 ~ 0.3065E23232 nicht in ein extended passt, aber 12345^5678 mod (997*101) = 25102 einfach zu berechnen ist. Es hilf nichts: nach jedem Schritt mod N bilden! Wenn N kleiner Maxint=2^31-1 kann man mit int64 rechnen:
int64(a)*int64(b) mod N