<PackageReference Include="BouncyCastle.Cryptography" Version="2.6.1" />

Org.BouncyCastle.Math.Raw.Mod

static class Mod
Modular inversion as implemented in this class is based on the paper "Fast constant-time gcd computation and modular inversion" by Daniel J. Bernstein and Bo-Yin Yang.
namespace Org.BouncyCastle.Math.Raw { internal static class Mod { public static void CheckedModOddInverse(uint[] m, uint[] x, uint[] z); public static void CheckedModOddInverseVar(uint[] m, uint[] x, uint[] z); public static uint Inverse32(uint d); public static ulong Inverse64(ulong d); public static uint ModOddInverse(uint[] m, uint[] x, uint[] z); public static bool ModOddInverseVar(uint[] m, uint[] x, uint[] z); public static uint ModOddIsCoprime(uint[] m, uint[] x); public static bool ModOddIsCoprimeVar(uint[] m, uint[] x); public static uint[] Random(SecureRandom random, uint[] p); } }