Rust kenne ich zwar auch nicht, aber aus dem Quellcode geht hervor, daß es für die Berechnung einen "eingebauten" Datentype
U256 verwendet, also einen vorzeichenlosen 256-Bit-Integer, der für die Hardware
optimiert zu sein scheint.
Wolfgang Ehrhardt's
mp_int hat dagegen eine variable Länge und daher einen größeren Overhead.
Ich habe versucht lebenswichtige Überprüfungen wie mp_not_init(..), mp_error<>MP_OKAY und MPC_ArgCheck zu deaktivieren: Es hat bei 64-Bit lediglich 0,3 Sekunden gebracht.