)として、以下の式を得る。することで、列挙法よりも試行数が少なくて済む。algorithmの詳細な手順は以下のとおりである。素因数が小さいときに有効に働くアルゴリズムである。位数が小さな離散対数問題に分割して解き、後で結合するといったものである。以下のように素因数分解する。値は小さい(英語では"smooth"という)ことが望ましい。ついてオイラーの定理より以下の計算を行う。algorithmも組み合わせればより高速になる)。法として唯一つ定まる。小さいほどより効率的となる。algorithmを使った攻撃の回避策として、安全素数を使う方法がある。Germain素数と呼ばれる。algorithmが有効に働かなくなる。安全性の根拠としている暗号方式として、ElGamal暗号を取り上げる。