glenda.party
term% ls -F
term% pwd
$home/manuals/9front/2/prime
term% cat index.txt
PRIME(2)                      System Calls Manual                     PRIME(2)



NAME
       genprime,   gensafeprime,  genstrongprime,  DSAprimes,  probably_prime,
       smallprimetest  - prime number generation

SYNOPSIS
       #include <u.h>
       #include <libc.h>
       #include <mp.h>
       #include <libsec.h>

       int  smallprimetest(mpint *p)

       int  probably_prime(mpint *p, int nrep)

       void genprime(mpint *p, int n, int nrep)

       void gensafeprime(mpint *p, mpint *alpha, int n, int accuracy)

       void genstrongprime(mpint *p, int n, int nrep)

       void DSAprimes(mpint *q, mpint *p, uchar seed[SHA1dlen])

DESCRIPTION
       Public key algorithms abound in prime numbers.  The following  routines
       generate primes or test numbers for primality.

       Smallprimetest  checks  for divisibility by the first 10000 primes.  It
       returns 0 if p is not divisible by the primes and -1 if it is.

       Probably_prime uses the Miller-Rabin test to test p.  It  returns  non-
       zero  if P is probably prime.  The probability of it not being prime is
       1/4**nrep.

       Genprime generates a random n bit prime.  Since it uses the  Miller-Ra‐
       bin  test, nrep is the repetition count passed to probably_prime.  Gen‐
       safegprime generates an n-bit prime p and a generator alpha of the mul‐
       tiplicative  group  of  integers  mod  p;  there is a prime q such that
       p-1=2*q.  Genstrongprime generates a prime, p, with the following prop‐
       erties:

       -      (p-1)/2 is prime.  Therefore p-1 has a large prime factor, p'.

       -      p'-1 has a large prime factor

       -      p+1 has a large prime factor

       DSAprimes generates two primes, q and p, using the NIST recommended al‐
       gorithm for DSA primes.  q divides p-1.  The random seed used  is  also
       returned,  so  that skeptics can later confirm the computation.  Be pa‐
       tient; this is a slow algorithm.

SOURCE
       /sys/src/libsec

SEE ALSO
       aes(2) blowfish(2), des(2), elgamal(2), rsa(2)



                                                                      PRIME(2)