Schnorr group

From HandWiki

A Schnorr group, proposed by Claus P. Schnorr, is a large prime-order subgroup of ℤp×, the multiplicative group of integers modulo p for some prime p. [1]

Definition

To generate such a group, generate p, q, r such that

p=qr+1

with p, q prime. Then choose any h in the range 1<h<p until you find one such that

hr≢1(modp).

This value

g=hr mod p

is a generator of a subgroup of ℤp× of order q.[2]

Applications

Schnorr groups are useful in discrete log based cryptosystems including Schnorr signatures and DSA. In such applications, typically p is chosen to be large enough to resist index calculus and related methods of solving the discrete-log problem (perhaps 1024 to 3072 bits), while q is large enough to resist the birthday attack on discrete log problems, which works in any group (perhaps 160 to 256 bits). Because the Schnorr group is of prime order, it has no non-trivial proper subgroups, thwarting confinement attacks due to small subgroups. Implementations of protocols that use Schnorr groups must verify where appropriate that integers supplied by other parties are in fact members of the Schnorr group; x is a member of the group if 0<x<p and xq≡1(mod p). Any member of the group except the element 1 is also a generator of the group.

References

  1. ↑ Schnorr, C. P. (1 January 1991). "Efficient signature generation by smart cards" (in en). Journal of Cryptology 4 (3): 161–174. doi:10.1007/BF00196725. ISSN 1432-1378. https://link.springer.com/article/10.1007/BF00196725. Retrieved 25 July 2026. 
  2. ↑ Singh, Priyanka; Khari, Manju; Kaundanya, Nikhil S. (2021). Bin Ahmad, Khairol Amali; Ahmad, Khaleel; Dulhare, Uma N.. eds. "Impact of Group Theory in Cryptosystem" (in en). Functional Encryption (Springer International Publishing): 19–36. doi:10.1007/978-3-030-60890-3_2. https://link.springer.com/chapter/10.1007/978-3-030-60890-3_2. Retrieved 25 July 2026.