DSA
DSA A.K.A Digital Signature Algorithm is a signing algorithm similar to RSA.
This algorithm is based on the ElGamal encryption system.
Textbook definition
The variables of textbook RSA are:
| Variable | Description |
|---|---|
| A large prime | |
| A large prime such that is a multiple of | |
| where is a random integer such that |
Key generation
- Chose such that , this is the private key.
- Compute , this is the public key.
Signing
The signature of a message requires a hashing function .
- Chose such that .
- Compute
If or , do it again with another . The signature is .
Verification
- Verify that and .
- Compute .
- Compute and .
- Compute .
- Iif , the signature is valid.
Attacks
No hash function - StackExchange
If message is directly signed without hashing, it is possible to forge create messages that have the same signature.