Digital Signature Generation
Digital signatures are like electronic “fingerprints.” In the form of a coded message, the digital signature securely associates a signer with a document in a recorded transaction. Digital signatures use a standard, accepted format, called Public Key Infrastructure (PKI), to provide the highest levels of security and universal acceptance. They are a specific signature technology implementation of electronic signature (eSignature).
There are typically three algorithms involved with the digital signature process:
- Key generation — This algorithm provides a private key along with its corresponding public key.
- Signing — This algorithm produces a signature upon receiving a private key and the message that is being signed.
- Verification — This algorithm checks for the authenticity of the message by verifying it along with the signature and the public key.
Simple diagram of the process of digital Signing and verification
The process of digital signing requires that the signature generated by both the fixed message and the private key can then be authenticated by its accompanied public key. Using these cryptographic algorithms, the user’s signature cannot be replicated without having access to their private key.
By applying asymmetric cryptography methods, the digital signature process works to prevent several common attacks where the attacker attempts to gain access through the following attack methods:
- Key-only — Attacker has access to the public key
- Known message — Attacker has access to valid signatures for known messages, but not those that they have chosen
- Adaptive chosen message — Attacker gains access to signatures on various messages that they have chosen.
Activity Diagram
Class Diagram
Sequence Diagram
(Full disclosure: I wrote this blog during my third year (2017) group project but published it later.)