Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

dsa.h File Reference

Digital Signature Algorithm, as specified by NIST FIPS 186. More...

#include "dlkp.h"

Go to the source code of this file.

Typedefs

typedef dldp_p dsaparam
typedef dlpk_p dsapub
typedef dlkp_p dsakp

Functions

int dsasign (const mpbarrett *p, const mpbarrett *q, const mpnumber *g, randomGeneratorContext *, const mpnumber *hm, const mpnumber *x, mpnumber *r, mpnumber *s)
 This function performs a raw DSA signature.

int dsavrfy (const mpbarrett *p, const mpbarrett *q, const mpnumber *g, const mpnumber *hm, const mpnumber *y, const mpnumber *r, const mpnumber *s)
 This function performs a raw DSA verification.


Detailed Description

Digital Signature Algorithm, as specified by NIST FIPS 186.

FIPS 186 specifies the DSA algorithm as having a large prime $p$, a cofactor $q$ and a generator $g$ of a subgroup of $\mathds{Z}^{*}_p$ with order $q$. The private and public key values are $x$ and $y$ respectively.

Author:
Bob Deblier <bob.deblier@pandora.be>

Definition in file dsa.h.


Typedef Documentation

typedef dlkp_p dsakp
 

Definition at line 39 of file dsa.h.

typedef dldp_p dsaparam
 

Definition at line 37 of file dsa.h.

typedef dlpk_p dsapub
 

Definition at line 38 of file dsa.h.


Function Documentation

int dsasign const mpbarrett p,
const mpbarrett q,
const mpnumber g,
randomGeneratorContext rgc,
const mpnumber hm,
const mpnumber x,
mpnumber r,
mpnumber s
 

This function performs a raw DSA signature.

Signing equations:

  • $r=(g^{k}\ \textrm{mod}\ p)\ \textrm{mod}\ q$
  • $s=k^{-1}(h(m)+xr)\ \textrm{mod}\ q$
Parameters:
p The prime.
q The cofactor.
g The generator.
rgc The pseudo-random generator context.
hm The hash to be signed.
x The private key value.
r The signature's r value.
s The signature's s value.
Return values:
0 on success.
-1 on failure.

int dsavrfy const mpbarrett p,
const mpbarrett q,
const mpnumber g,
const mpnumber hm,
const mpnumber y,
const mpnumber r,
const mpnumber s
 

This function performs a raw DSA verification.

Verifying equations:

  • Check $0<r<q$ and $0<s<q$
  • $w=s^{-1}\ \textrm{mod}\ q$
  • $u_1=w \cdot h(m)\ \textrm{mod}\ q$
  • $u_2=rw\ \textrm{mod}\ q$
  • $v=(g^{u_1}y^{u_2}\ \textrm{mod}\ p)\ \textrm{mod}\ q$
  • Check $v=r$
Parameters:
p The prime.
q The cofactor.
g The generator.
hm The digest to be verified.
y The public key value.
r The signature's r value.
s The signature's s value.
Return values:
1 on success.
0 on failure.


Generated on Wed Mar 24 13:56:53 2004 for BeeCrypt by doxygen 1.3.6