| FazBrowse Wikipedia Viewer | Main Page | | |
| Viewing: https://en.wikipedia.org/wiki/Digital_Signature_Algorithm |
| Contents |
|---|
| Operation |
| 1. Key generation |
| Parameter generation |
| 2. Key distribution |
| Implementations |
| See also |
| References |
The Digital Signature Algorithm (DSA) is a public-key cryptosystem and Federal Information Processing Standard for digital signatures, based on the mathematical concept of modular exponentiation and the discrete logarithm problem. In a digital signature system, there is a keypair involved, consisting of a private and a public key. In this system a signing entity that declared their public key can generate a signature using their private key, and a verifier can assert the source if it verifies the signature correctly using the declared public key. DSA is a variant of the Schnorr and ElGamal signature schemes.
The National Institute of Standards and Technology (NIST) proposed DSA for use in their Digital Signature Standard (DSS) in 1991, and adopted it as FIPS 186 in 1994. Five revisions to the initial specification have been released. The last standard, however, removed NIST's approval for DSA signature generation.
U.S. patent 4,995,082 (also now expired) covered DSA; this claim is disputed.In 1993, Dave Banisar managed to get confirmation, via a FOIA request, that the DSA algorithm wasn't been designed by the NIST, but by the NSA.
In February 2023, NIST released FIPS 186-5, which deprecates DSA for generating new signatures but allows it to be used to verify pre-existing signatures.
OpenSSH announced that DSA was going to be removed in 2025. The support was entirely dropped in version 10.0.
The DSA algorithm involves four operations: key generation (which creates the key pair), key distribution, signing and signature verification.
Key generation has two phases. The first phase is a choice of algorithm parameters which may be shared between different users of the system, while the second phase computes a single key pair for one user.
The signer should publish the public key m is signed as follows:
The calculation of r is the most computationally expensive part of the signing operation, but it may be computed before the message is known. Calculating the modular inverse (r,s) is a valid signature for a message 0<s<q.
Thus
This issue affects both DSA and Elliptic Curve Digital Signature Algorithm (ECDSA) – in December 2010, the group fail0verflow announced the recovery of the ECDSA private key used by Sony to sign software for the PlayStation 3 game console. The attack was made possible because Sony failed to generate a new random k is different for each k is chosen in order to subliminally leak information via signatures. For example, an offline private key could be leaked from a perfect offline device that only released innocent-looking signatures.
Below is a non-exhaustive list of cryptographic libraries that provide support for DSA:
| View original on Wikipedia | Back | FazBrowse Home |