Digital Signature Standard

From CryptoWiki
Revision as of 00:02, 7 December 2013 by 13-01-SoldatovaEP (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

DSA (Digital Signature Algorithm) - is the algorithm of digital signature public key, included in the standard DSS (Digital Signature Standard) operating in the United States. Intended for formation (calculations) and verify digital signatures.


Description of a digital signature algorithm

Let p is a prime numbe, q is a prime divisor of p-1, satisfying the conditions:


Select Dsa2.png is an element field Dsa3.png, with the order of q. To do this, select a random number Dsa4.png and calculate Dsa5.png. If Dsa2.png=1, then select the number Dsa6.png again.

Select a random number a in the interval Dsa7.png and calculate the value Dsa8.png. The number a is a "secret key", and set Dsa9.png - public key.

Algorithm to calculate the digital signature

Calculation algorithm of digital signature for a message M is of the form:

1. choose a random integer r, Dsa10.png;

2. calculate Dsa11.png;

3. calculate Dsa12.png according to the algorithm SHA-1;

4. check condition Dsa13.png: if it is not met, then select a new value r;

5. calculate Dsa14.png;

6. the signature for the message M is a pair Dsa15.png.

Algorithm to verify digital signatures

Algorithm to verify digital signatures consists of the following:

1. calculate Dsa16.png, Dsa17.png, Dsa18.png;

2. calculate Dsa19.png;

3. check the equality Dsa20.png; if it is true, then the signature is accepted; if it is false, then the signature is rejected.


  • Черемушкин А.В. Криптографические протоколы. Основные свойства и уязвимости. - М.: Издательский центр "Академия", 2009. — 272 с.