Digital signature algorithm (DSA) is used for authentication and is considered a signature algorithm. When reading section three of this article, pay the most attention to the steps in the scenario with Alice and Bob on how to obtain a digital signature using a private and public key, and how a digital signature verification is produced. To keep a basic idea on a timeline, also pay attention to the year that DSA was proposed. Attempt to follow through the reading on DSA key generation, signature generation, and signature verification although you are not expected to be able to explain these steps.
Digital signature is a mechanism by which a message is authenticated which means proving that a message is effectively coming from a given sender, much like a physical signature on a paper document. For instance, let suppose that Alice wants to digitally sign a message to Bob. To do so, she uses her private-key to encrypt the message; she then sends the message along with her public-key (typically, the public key is attached to the signed message). Since Alice’s public key is the only key that can decrypt that message, a successful decryption constitutes a Digital Signature Verification, and meaning that there is no doubt that it is Alice’s private key that encrypted the message.
The DSA was proposed in August 1991 by the U.S. National Institute of Standards and Technology (NIST) and became a U.S. Federal Information Processing Standard (FIPS 186) in 1993. The FIPS 186 standard is also referred to as the Digital Signature Standard (DSS). The DSA was the first digital signature scheme accepted as legally binding by a government. The algorithm is a variant of the ElGamal signature scheme. It exploits small subgroups in ℤ𝑝 ∗ in order to decrease the size of signatures. The key generation, signature generation, and signature verification procedures for DSA are given next.
DSA key generation. Each entity A does the following:1. Select a prime
2. a 1024 -bit prime number
3. Select an element
4. Select a random integer
5. Compute
6. The public key is
DSA signature generation. To sign a message
1. Select a random integer k in the interval
2. Compute
3. Compute
4. Compute
5. If
6. The signature for the message
DSA signature verification. To verify A's signature
1. Obtain an authentic copy of A's public key
2. Verify that
3. Compute
4. Compute
5. Compute v
6. Accept the signature if and only if
Since
Fig. 2. Digital signature process
Source: Ramzi Haddaji, https://thesai.org/Downloads/Volume7No9/Paper_49-Comparison_of_Digital_Signature_Algorithm_and_Authentication_Schemes.pdf This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 License.