クラウス・P・シュノアによって提唱されたシュノア群は、ある素数を法とする整数の乗法群の大きな素数位数部分群である。このような 群を生成するには、 、 を生成し、
は素数です。次に、範囲内の任意の値を選び、
- 。
この値
は、位数の部分群の生成元です。
Schnorr 群は、 Schnorr 署名やDSAなどの離散対数ベースの暗号システムで役立ちます。このようなアプリケーションでは、通常、はインデックス計算や離散対数問題を解く関連方法に耐えられるほど十分に大きくなるように選択されます(おそらく 1024 ~ 3072 ビット)。一方、 は、どのグループでも機能する離散対数問題に対するバースデー攻撃に耐えられるほど十分に大きくなります(おそらく 160 ~ 256 ビット)。Schnorr 群は素数位数であるため、非自明な適切な部分群を持たず、小さな部分群による閉じ込め攻撃を阻止します。Schnorr 群を使用するプロトコルの実装では、適切な場所で、他のパーティから提供された整数が実際に Schnorr 群のメンバーであることを確認する必要があります。およびの場合、 はグループのメンバーです。 元を除くグループのどのメンバーも、グループの生成元です。