What Is a Digital Signature?
This section describes what is a digital signature and what is the process of generating and verifying digital signature from a message.
What Is a Digital Signature?
A digital signature is an electronic analogue of a written signature
to provide assurance that the claimed signatory signed the information.
In addition, a digital signature may be used to detect whether or
not the information was modified after it was signed (i.e., to detect the integrity of the signed data).
The digital signature process can be divided into 2 parts:
1. Signature Generation:
- Generating a pair of public key and provide key by the sender of the message.
- Generating the message digest from the message using a hash function.
- Generating the digital signature from the message digest with the private key.
- Sending the message, the digital signature, and the public key to receiver.
2. Signature Verification:
- Generating the message digest from the message using the same hash function.
- Verifying the digital signature with message digest using the public key.
Here is a diagram showing the digital signature process:
There are 2 popular algorithms that are used to generate and verify digital signature using public keys:
- RSA (Rivest, Shamir and Adleman) algorithm developed by Ronald L. Rivest, Adi Shamir, and Leonard M. Adleman in 1976.
- DSA (Digital Signature Algorithm) algorithm developed by US government in 1991.
Last update: 2013.
Table of Contents
About This Book
Cryptography Basic Concepts
Introduction to AES (Advanced Encryption Standard)
Introduction to DES Algorithm
DES Algorithm - Illustrated with Java Programs
DES Algorithm Java Implementation
DES Algorithm - Java Implementation in JDK JCE
DES Encryption Operation Modes
DES in Stream Cipher Modes
PHP Implementation of DES - mcrypt
Blowfish - 8-Byte Block Cipher
Secret Key Generation and Management
Cipher - Secret Key Encryption and Decryption
Introduction of RSA Algorithm
RSA Implementation using java.math.BigInteger Class
►Introduction of DSA (Digital Signature Algorithm)
►What Is a Digital Signature?
What Is DSA (Digital Signature Algorithm)?
Illustration of DSA Algorithm: p,q=7,3
Illustration of DSA Algorithm: p,q=23,11
Illustration of DSA Algorithm with Different k and h
Proof of DSA Digital Signature Algorithm
Java Default Implementation of DSA
Private key and Public Key Pair Generation
PKCS#8/X.509 Private/Public Encoding Standards
Cipher - Public Key Encryption and Decryption
MD5 Mesasge Digest Algorithm
SHA1 Mesasge Digest Algorithm
OpenSSL Introduction and Installation
OpenSSL Generating and Managing RSA Keys
OpenSSL Managing Certificates
OpenSSL Generating and Signing CSR
OpenSSL Validating Certificate Path
"keytool" and "keystore" from JDK
"OpenSSL" Signing CSR Generated by "keytool"
Migrating Keys from "keystore" to "OpenSSL" Key Files
Certificate X.509 Standard and DER/PEM Formats
Migrating Keys from "OpenSSL" Key Files to "keystore"
Using Certificates in IE (Internet Explorer)
Using Certificates in Firefox
Using Certificates in Google Chrome
PDF Printing Version