冪剰余
また一般に、m がその計算機環境における1語の桁数の半分以下に収まる場合 (a mod m) × (b mod m) の結果が必ず1語に収まるので、Bignum を一切使わない能率の良い計算が可能である。
次の例は、基本としてこの手法を利用し、さらに指数法則の b = (b) を活用したコードであり、ほぼ C# または C++ のコードとなっている。クラス Bignum は任意の巨大な整数を表現できるものとする。引数 b は底、e は指数、m は法である。記号 "%" は、剰余演算 (mod) を示す。
このコードは、Schneier (1995, p. 244)にあるものに基づいており、一つの while ループで冪剰余の計算に必要な全ての作業を行っている。
例として、b = 4, e = 13, m = 497 をこの手法で計算する。e を2進数で表記すると 1101 になる。e が2進数では4桁なので、ループは4回しか回らない。
ループに最初に入ったとき、各変数の値は b = 4, e = 1101(2進数), result = 1 である。