Skip to content

AlexeyLyapeshkin/DSA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DSA

Electronic digital signature for text files. Needed for Labs on Information Theory, 4 labs. Implemented on the basis of the SHA-1 hash function, according to the DSS standard.

Theory


The Digital Signature Algorithm (DSA) is a digital information technology that has been developed for the digital signatures and the discrete logarithm problem.

Signing

  • Generate a random per-message value k where 1<k<q;
  • Calculate r = (g**k mod p) mod q;
  • Calculate s = k**-1(Hash(m)+x*r) mod q;
  • In the unlikely case that r=0 or s=0, start again with a different random k;
  • The signature is (r,s).

Verifying

  • Reject the signature if 0<r<q or 0<s<q is not satisfied;
  • Calculate w=s**-1 mod q;
  • Calculate u_1 = Hash(m) * w mod q;
  • Calculate u_2 = r * w mod q;
  • Calculate v = (g** u_1 * y** u_2 mod p) mod q;
  • The signature is valid if and only if v = r.

Literature

DSA

SHA-1

About

Digital signature on DSA algorithm with SHA-3

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages