Digital Signature

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 23

Digital signature

What Is Asymmetric Encryption?


• Step 1: Alice first uses Bob’s public key to encrypt the message
• Step 2: The encrypted message reaches Bob
• Step 3: Bob decrypts the message with his secret key
 This eliminates the requirement for the sender and recipient to exchange
any secret keys, minimizing the window of opportunity for exploitation.
What Are Digital Signatures?
 The objective of digital signatures is to authenticate and verify documents and data.
 This is necessary to avoid tampering and digital modification or forgery during the
transmission of official documents.
 With one exception, they work on the public key cryptography architecture.
 Typically, an asymmetric key system encrypts using a public key and decrypts with a
private key.
 For digital signatures, however, the reverse is true.
 The signature is encrypted using the private key and decrypted with the public key.
 Because the keys are linked, decoding it with the public key verifies that the proper private
key was used to sign the document, thereby verifying the signature's provenance.
M - Plaintext
H - Hash function
h - Hash digest
‘+’ - Bundle both plaintext and digest
E - Encryption
D - Decryption

If they match, it verifies data integrity.


 There are two industry-standard ways to implement the above methodology. They are:
1. RSA Algorithm
2. DSA Algorithm
 Both the algorithms serve the same purpose, but the encryption and decryption functions
differ quite a bit.
Block Diagram of Digital Signature
Importance of Digital Signature
1. Ensures Authenticity: Digital signatures ensure the authenticity of a message or
transaction by proving that the message or signature was created using the private key
associated with the digital signature.
2. Offers Non-repudiation: A digital signature provides an entire record that a specific
individual signed the document or transaction at a particular time. This feature prevents the
individual from denying that they signed it.
3. Provides Security: Digital signatures use encryption algorithms to protect the data from
unauthorized access and tampering. The cryptographic techniques used by digital
signatures also protect the data from being changed or manipulated during transmission.
4. Improves Efficiency: Digital signatures can reduce the time and money spent on
paperwork, printing, scanning, and mailing documents.
5. Enhances Compliance: Digital signatures help organizations to meet regulatory and legal
compliance requirements by providing an audit trail of signed documents.
What Is the DSA Algorithm?
 Digital Signatures Algorithm is a FIPS (Federal Information Processing Standard) for
digital signatures.
 It was proposed in 1991 and globally standardized in 1994 by the National Institute of
Standards and Technology (NIST).
 It functions on the framework of modular exponentiation and discrete logarithmic
problems, which are difficult to compute as a force-brute system.
 DSA Algorithm provides three benefits, which are as follows:
• Message Authentication: You can verify the origin of the sender using the right key combination.
• Integrity Verification: You cannot tamper with the message since it will prevent the bundle from
being decrypted altogether.
• Non-repudiation: The sender cannot claim they never sent the message if verifies the signature.
DSA Algorithm

The difference between the image of a typical digital signature verification process and the one
above is the encryption and decryption part.
Steps in DSA Algorithm

 1. Key Generation
 parameter generation and
 per-user keys
 2. Signature Generation
 3. Key Distribution
 4. Signature Verification
1. Key Generation
 Parameter Generation

 Initially a user needs to choose a cryptographic hash function (H) along with output length in bits |H|. Modulus
length N is used in when output length |H| is greater.

 Then choose a key length L where it should be multiple of 64 and lies between 512 and 1024 as per Original
DSS length. However, lengths 2048 or 3072 are recommended by NIST for lifetime key security.

 The values of L and N need to be chosen in between (1024, 60), (2048, 224), (2048, 256), or (3072, 256)
according to FIPS 186-4. Also, a user should chose modulus length N in such a way that modulus length N
should be less than key length (N<L) and less than and equal to output length (N<=|H|).

 Later a user can choose a prime number q of N bit and another prime number as p of L bit in such a way that
(p-1) is multiple of q. And then choose h as an integer from the list ( 2……..p-2).

 Once you get p and q values, find out

g = h^(p-1)/q*mod(p). If you get g = 1, please try another value for h and compute again for g except 1.

p, q and g are the algorithm parameters that are shared amongst different users of the systems.

 Per-user Keys

To compute the key parameters for a single user, first choose an integer x (private key) from the list (1…….q-1),
2. Signature Generation

• It passes the original message (M) through the hash function (H#) to get our hash digest(h).
• It passes the digest as input to a signing function, whose purpose is to give two variables as
output, s, and r.
• Apart from the digest, you also use a random integer k such that 0 < k < q.
• To calculate the value of r, you use the formula r = (gk mod p) mod q.
• To calculate the value of s, you use the formula s = [K-1(h+x . R)mod q].
• It then packages the signature as {r,s}.
• The entire bundle of the message and signature {M,r,s} are sent to the receiver.
3. Key Distribution

 While distributing keys, a signer should keep the private key (x) secret and publish the
public key (y) and send the public key (y) to the receiver without any secret mechanism.

 Signing

 Signing of message m should be done as follows:

 first choose an integer k from (1……q-1)

 compute r = g^(k)*mod(p)*mod(q).

 If you get r = 0, please try another random value of k and compute again for r except
0.

 Calculate s=(k^(-1)*(H(m)+xr))*mod(q).

 If you get s = 0, please try another random value of k and compute again for s except 0.

The signature is defined by two key elements (r, s). Also, key elements k and r are used to
create a new message. Nevertheless, computing r with modular exponential process is a very
expensive process and computed before the message is known. Computation is done with the
help of the Euclidean algorithm and Fermat's little theorem.
4. Signature Verification

 You use the same hash function (H#) to generate the digest h.

 You then pass this digest off to the verification function, which needs other variables as
parameters too.

 Compute the value of w such that: s*w mod q = 1

 Calculate the value of u1 from the formula, u1 = h*w mod q

 Calculate the value of u2 from the formula, u2 = r*w mod q

 The final verification component v is calculated as v = [((gu1 . yu2) mod p) mod q].

 It compares the value of v to the value of r received in the bundle.

 If it matches, the signature verification is complete.


Advantages of DSA

• Highly Robust: DSA is highly robust in the security and stability aspect compared to
alternative signature verification algorithms.
• Better Speed: The key generation is much faster compared to the RSA algorithm and such.
• Less Storage: DSA requires less storage space to work its entire cycle.
• Patent Free: When NIST released it, it was patent-free to enable its global use free of cost.
Summary
References

 https://www.devglan.com/online-tools/rsa-encryption-decryption
 https://www.simplilearn.com/tutorials/cryptography-tutorial/digital-signature-algorithm

You might also like