SlideShare a Scribd company logo
Digital signature algorithm (de la cruz, genelyn).ppt 2
   The Digital Signature Algorithm (DSA) is a 
    United States Federal Government standard or FIPS
     for digital signatures. 
   It was proposed by the 
    National Institute of Standards and Technology
     (NIST) in August 1991 for use in their Digital
    Signature Standard (DSS), specified in FIPS 186, 
    adopted in 1993. A minor revision was issued in 1996 
    as FIPS 186-1. The standard was expanded further in 
    2000 as FIPS 186-2 and again in 2009 as FIPS 186-3.
   DSA is covered by U.S. Patent 5,231,668, filed July 
    26, 1991, and attributed to David W. Kravitz, a 
    former NSA employee. 
   This patent was given to "The United States of 
    America as represented by the Secretary of 
    Commerce, Washington, D.C." and the NIST has 
    made this patent available worldwide royalty-free. 
    Dr. Claus P. Schnorr claims that his 
    U.S. Patent 4,995,082 (expired) covered DSA; this 
    claim is disputed. DSA is a variant of the 
    ElGamal Signature Scheme.
  A digital signature is basically a way to ensure that an 
   electronic document (e-mail, spreadsheet, text file, 
   etc.) is authentic. 
 There are several ways to authenticate a person or

   information on a computer:
• Password - The use of a user name and password 
   provide the most common form of authentication.
• Checksum - Probably one of the oldest methods of 
   ensuring that data is correct, checksums also provide 
   a form of authentication since an invalid checksum 
   suggests that the data has been compromised in some 
   fashion. 
   Key generation has two phases. The first phase 
    is a choice of algorithm parameters which 
    may be shared between different users of the 
    system, while the second phase computes 
    public and private keys for a single user. 
   Parameter generation
   Choose an approved cryptographic hash function H. In the 
    original DSS, H was always SHA-1, but the stronger SHA-2
     hash functions are approved for use in the current DSS. The 
    hash output may be truncated to the size of a key pair.
   Decide on a key length L and N. This is the primary measure 
    of the cryptographic strength of the key. The original DSS 
    constrainedL to be a multiple of 64 between 512 and 1024 
    (inclusive). NIST 800-57 recommends lengths of 2048 (or 
    3072) for keys with security lifetimes extending beyond 2010 
    (or 2030), using correspondingly longer N. FIPS 186-
    3 specifies L and N length pairs of (1024,160), (2048,224), 
    (2048,256), and (3072,256).
   1. p = a prime modulus, where 2L-1 < p < 2L for 512 = < 
    L = <1024 and L a multiple of 64

    2. q = a prime divisor of p - 1, where 2159 < q < 2160 

    3. g = h(p-1)/q mod p, where h is any integer with 1 < h < 
    p - 1 such that h(p-1)/q mod p > 1
    (g has order q mod p)
4. x = a randomly or pseudo randomly generated 
integer with 0 < x < q

5. y = gx mod p 

6. k = a randomly or pseudo randomly generated 
integer with 0 < k < q 

The integers p, q, and g can be public and can be
common to a group of users. A user's private and public
keys are x and y, respectively. They are normally fixed
for a period of time. Parameters x and k are used for
signature generation only, and must be kept secret.
Parameter k must be regenerated for each signature.
   Given a set of parameters, the second phase computes 
    private and public keys for a single user:
   Choose x by some random method, where 0 < x < q.
   Calculate y = gx mod p.
   Public key is (p, q, g, y). Private key is x.
   There exist efficient algorithms for computing 
    the modular exponentiations h (p–
    1)/q mod p and gx mod p, such as exponentiation by 
    squaring.
   Choose an N-bit prime q. N must be less than or equal 
    to the hash output length.
   Choose an L-bit prime modulus p such that p–1 is a 
    multiple of q.
   Choose g, a number whose multiplicative order 
    modulo p is q. This may be done by setting g = h(p–
    1)/q mod p for some arbitrary h (1 < h < p−1), and 
    trying again with a different h if the result comes out 
    as 1. Most choices of h will lead to a usable g; 
    commonly h=2 is used.
   The algorithm parameters (p, q, g) may be shared 
    between different users of the system.
Digital signature algorithm (de la cruz, genelyn).ppt 2
   Let H be the hashing function and m the message:
   Generate a random per-message value k where 0 < k < q
   Calculate r = (gk mod p) mod q
   In the unlikely case that r = 0, start again with a different random k
   Calculate s = (k−1(H(m) + x·r)) mod q
   In the unlikely case that s = 0, start again with a different random k
   The signature is (r, s)
   The first two steps amount to creating a new per-message key. The 
    modular exponentiation here is the most computationally expensive 
    part of the signing operation, and it may be computed before the 
    message hash is known. The modular inverse k−1 mod q is the 
    second most expensive part, and it may also be computed before the 
    message hash is known. It may be computed using the extended 
    Euclidean algorithm or using Fermat's little theorem as kq−2 mod q.
   Obtain the DSA parameters; see Getting the 
    Obtain the DSA parameters; see 
    Digital Signature Algorithm (DSA) Parameters of 
    a Key Pair BigInteger p = ...; BigInteger q = ...; 
                BigInteger p =  ; BigInteger q = 
    BigInteger g = ...; BigInteger x = ...; BigInteger y 
    BigInteger g =  ; BigInteger x = 
    = ...; 
    = 
   Create the DSA key factory KeyFactory 
    keyFactory = KeyFactory.getInstance("DSA"); 
   Create the DSA private key KeySpec 
    privateKeySpec = new DSAPrivateKeySpec(x, p, 
    q, g); PrivateKey privateKey = 
    keyFactory.generatePrivate(privateKeySpec); 
    Create the DSA public key KeySpec 
    publicKeySpec = new DSAPublicKeySpec(y, p, 
    q, g); PublicKey publicKey = keyFactory. 
    generatePublic(publicKeySpec); } catch 
    (InvalidKeySpecException e) { } catch 
    (NoSuchAlgorithmException e) { }
   Compute r=(gk mod p) mod q 
   Compute s=(k-1 * (x * r + i)) mod q 
   Verifying a signature; again i is the input, and 
    (r, s) is the signature. 
   u1 = (s-1 * i) mod q 
   u2 = (s-1 * r) mod q v = ((gu1 * yu2) mod p) 
    mod q
    If v equals r, the signature is valid.
   Reject the signature if 0 < r < q or 0 < s < q is not 
    satisfied.
   Calculate w = s−1 mod q
   Calculate u1 = H(m)·w mod q
   Calculate u2 = r·w mod q
   Calculate v = ((gu1·yu2) mod p) mod q
   The signature is valid if v = r
   DSA is similar to the El Gamal signature scheme.
   The signature scheme is 
    correct in the sense that the           Since g has order q (mod p) we 
    verifier will always accept              have
    genuine signatures. This can               gk = gH (m)w gxrw
    be shown as follows:
                                                     = gH (m)w yrw
   First, if g = h(p − 1)/q mod p it 
    follows that gq ≡ hp − 1 ≡ 1                     = gu1 yu2 (mod p)
    (mod p) by Fermat's little 
    theorem. Since g > 1 and q is           Finally, the correctness of 
    prime, g must have order q.              DSA follows from
   The signer computes                        r =  (gk  mod p)  mod q
       s = k-1 (H (m) + xr) mod q
                                                       =  (gu1 yu2    mod p)   
   Thus                                          mod q
       k = H (m) s-1 + xrs-1                          =   v
         = H (m) w +xrw (mod q)
      
   With DSA, the entropy, secrecy and 
    uniqueness of the random signature value  k is 
    critical. It is so critical that violating any one 
    of those three requirements can reveal your 
    entire private key to an attacker. Using the 
    same value twice (even while 
    keeping k secret), using a predictable value, or 
    leaking even a few bits of k in each of several 
    signatures, is enough to break DSA.
Ma. Genelyn B. de la
       cruz
     BSOA – 4B

More Related Content

PPTX
Elgamal &amp; schnorr digital signature scheme copy
PPTX
Key management
PPTX
Public Key Cryptography
PPTX
SHA- Secure hashing algorithm
DOCX
S/MIME
PPT
Diffie-hellman algorithm
PDF
Electronic mail security
PPT
Public Key Cryptography and RSA algorithm
Elgamal &amp; schnorr digital signature scheme copy
Key management
Public Key Cryptography
SHA- Secure hashing algorithm
S/MIME
Diffie-hellman algorithm
Electronic mail security
Public Key Cryptography and RSA algorithm

What's hot (20)

PPT
Message authentication and hash function
PDF
MD-5 : Algorithm
PDF
Presentation about RSA
PPTX
Public Key Cryptosystem
PDF
Elliptic curve cryptography
PDF
2. Stream Ciphers
PDF
CRYPTOGRAPHY AND NETWORK SECURITY
PPTX
RSA ALGORITHM
PPT
Message Authentication Code & HMAC
PDF
2. public key cryptography and RSA
PPTX
Diffie hellman key exchange algorithm
PPTX
PPTX
Hash Function
PDF
symmetric key encryption algorithms
PPTX
Cryptography
PDF
RSA ALGORITHM
PPTX
Cryptography.ppt
PPTX
RSA Algorithm
PPTX
Kerberos
Message authentication and hash function
MD-5 : Algorithm
Presentation about RSA
Public Key Cryptosystem
Elliptic curve cryptography
2. Stream Ciphers
CRYPTOGRAPHY AND NETWORK SECURITY
RSA ALGORITHM
Message Authentication Code & HMAC
2. public key cryptography and RSA
Diffie hellman key exchange algorithm
Hash Function
symmetric key encryption algorithms
Cryptography
RSA ALGORITHM
Cryptography.ppt
RSA Algorithm
Kerberos
Ad

Viewers also liked (20)

PPT
Digital signature
PPTX
Seminar ppt on digital signature
PPT
Digital Signature
PPT
Introduction to Digital signatures
PPTX
Digital signature
PPT
Digital signature
PPT
C08 crypto-digital signature13
PPT
Digital signature introduction
PDF
Digital signatures
PPT
Digital signature
PPT
Cryptography - A Brief History
DOC
Dss digital signature standard and dsa algorithm
PPT
Blowfish Cryptosystem
PPTX
Digital signature
PPTX
Digital signature
PPTX
Eaack—a secure intrusion detection.ppt
DOC
Key aggregate cryptosystem for scalable data sharing in cloud storage
PDF
Digital Signature
PPT
Digital signature
PPSX
Digital signature
Digital signature
Seminar ppt on digital signature
Digital Signature
Introduction to Digital signatures
Digital signature
Digital signature
C08 crypto-digital signature13
Digital signature introduction
Digital signatures
Digital signature
Cryptography - A Brief History
Dss digital signature standard and dsa algorithm
Blowfish Cryptosystem
Digital signature
Digital signature
Eaack—a secure intrusion detection.ppt
Key aggregate cryptosystem for scalable data sharing in cloud storage
Digital Signature
Digital signature
Digital signature
Ad

Similar to Digital signature algorithm (de la cruz, genelyn).ppt 2 (20)

PPT
Digital Signature in CryptographyElgammal
PPTX
Module 5-DSS.pptx crypto currency notes incoming
PPT
Digital Signature Standard
PPTX
digital signature algo.pptx
PDF
Digital Signatures: Reassessing security of randomizable signatures
PDF
Presentation on Cryptography_Based on IEEE_Paper
PPTX
Cloud computing and security 03
PPTX
Information and network security 46 digital signature algorithm
PPTX
Homomorphic encryption
PPTX
Partial Homomorphic Encryption
PPT
RSA Algorithm.ppt
PPT
555_Spring12_topic22.ppt
PDF
ZeroKnowledge Nominative Signatures
PDF
Public-Key Cryptography.pdfWrite the result of the following operation with t...
PPT
PDF
How to share a secret
PPT
Digital signature schemes
PPTX
Information and data security other public key cryptosystems
PPTX
Cloud computing and security final
PPT
Signyourd digital signature certificate provider
Digital Signature in CryptographyElgammal
Module 5-DSS.pptx crypto currency notes incoming
Digital Signature Standard
digital signature algo.pptx
Digital Signatures: Reassessing security of randomizable signatures
Presentation on Cryptography_Based on IEEE_Paper
Cloud computing and security 03
Information and network security 46 digital signature algorithm
Homomorphic encryption
Partial Homomorphic Encryption
RSA Algorithm.ppt
555_Spring12_topic22.ppt
ZeroKnowledge Nominative Signatures
Public-Key Cryptography.pdfWrite the result of the following operation with t...
How to share a secret
Digital signature schemes
Information and data security other public key cryptosystems
Cloud computing and security final
Signyourd digital signature certificate provider

Recently uploaded (20)

PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Approach and Philosophy of On baking technology
PPT
Teaching material agriculture food technology
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
KodekX | Application Modernization Development
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Cloud computing and distributed systems.
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Encapsulation_ Review paper, used for researhc scholars
Mobile App Security Testing_ A Comprehensive Guide.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Building Integrated photovoltaic BIPV_UPV.pdf
Understanding_Digital_Forensics_Presentation.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Advanced methodologies resolving dimensionality complications for autism neur...
Approach and Philosophy of On baking technology
Teaching material agriculture food technology
Diabetes mellitus diagnosis method based random forest with bat algorithm
20250228 LYD VKU AI Blended-Learning.pptx
Network Security Unit 5.pdf for BCA BBA.
The Rise and Fall of 3GPP – Time for a Sabbatical?
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
KodekX | Application Modernization Development
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Cloud computing and distributed systems.
Build a system with the filesystem maintained by OSTree @ COSCUP 2025

Digital signature algorithm (de la cruz, genelyn).ppt 2

  • 2. The Digital Signature Algorithm (DSA) is a  United States Federal Government standard or FIPS  for digital signatures.   It was proposed by the  National Institute of Standards and Technology  (NIST) in August 1991 for use in their Digital Signature Standard (DSS), specified in FIPS 186,  adopted in 1993. A minor revision was issued in 1996  as FIPS 186-1. The standard was expanded further in  2000 as FIPS 186-2 and again in 2009 as FIPS 186-3.
  • 3. DSA is covered by U.S. Patent 5,231,668, filed July  26, 1991, and attributed to David W. Kravitz, a  former NSA employee.   This patent was given to "The United States of  America as represented by the Secretary of  Commerce, Washington, D.C." and the NIST has  made this patent available worldwide royalty-free.  Dr. Claus P. Schnorr claims that his  U.S. Patent 4,995,082 (expired) covered DSA; this  claim is disputed. DSA is a variant of the  ElGamal Signature Scheme.
  • 4.  A digital signature is basically a way to ensure that an  electronic document (e-mail, spreadsheet, text file,  etc.) is authentic.   There are several ways to authenticate a person or information on a computer: • Password - The use of a user name and password  provide the most common form of authentication. • Checksum - Probably one of the oldest methods of  ensuring that data is correct, checksums also provide  a form of authentication since an invalid checksum  suggests that the data has been compromised in some  fashion. 
  • 5. Key generation has two phases. The first phase  is a choice of algorithm parameters which  may be shared between different users of the  system, while the second phase computes  public and private keys for a single user. 
  • 6. Parameter generation  Choose an approved cryptographic hash function H. In the  original DSS, H was always SHA-1, but the stronger SHA-2  hash functions are approved for use in the current DSS. The  hash output may be truncated to the size of a key pair.  Decide on a key length L and N. This is the primary measure  of the cryptographic strength of the key. The original DSS  constrainedL to be a multiple of 64 between 512 and 1024  (inclusive). NIST 800-57 recommends lengths of 2048 (or  3072) for keys with security lifetimes extending beyond 2010  (or 2030), using correspondingly longer N. FIPS 186- 3 specifies L and N length pairs of (1024,160), (2048,224),  (2048,256), and (3072,256).
  • 7. 1. p = a prime modulus, where 2L-1 < p < 2L for 512 = <  L = <1024 and L a multiple of 64 2. q = a prime divisor of p - 1, where 2159 < q < 2160  3. g = h(p-1)/q mod p, where h is any integer with 1 < h <  p - 1 such that h(p-1)/q mod p > 1 (g has order q mod p)
  • 8. 4. x = a randomly or pseudo randomly generated  integer with 0 < x < q 5. y = gx mod p  6. k = a randomly or pseudo randomly generated  integer with 0 < k < q  The integers p, q, and g can be public and can be common to a group of users. A user's private and public keys are x and y, respectively. They are normally fixed for a period of time. Parameters x and k are used for signature generation only, and must be kept secret. Parameter k must be regenerated for each signature.
  • 9. Given a set of parameters, the second phase computes  private and public keys for a single user:  Choose x by some random method, where 0 < x < q.  Calculate y = gx mod p.  Public key is (p, q, g, y). Private key is x.  There exist efficient algorithms for computing  the modular exponentiations h (p– 1)/q mod p and gx mod p, such as exponentiation by  squaring.
  • 10. Choose an N-bit prime q. N must be less than or equal  to the hash output length.  Choose an L-bit prime modulus p such that p–1 is a  multiple of q.  Choose g, a number whose multiplicative order  modulo p is q. This may be done by setting g = h(p– 1)/q mod p for some arbitrary h (1 < h < p−1), and  trying again with a different h if the result comes out  as 1. Most choices of h will lead to a usable g;  commonly h=2 is used.  The algorithm parameters (p, q, g) may be shared  between different users of the system.
  • 12. Let H be the hashing function and m the message:  Generate a random per-message value k where 0 < k < q  Calculate r = (gk mod p) mod q  In the unlikely case that r = 0, start again with a different random k  Calculate s = (k−1(H(m) + x·r)) mod q  In the unlikely case that s = 0, start again with a different random k  The signature is (r, s)  The first two steps amount to creating a new per-message key. The  modular exponentiation here is the most computationally expensive  part of the signing operation, and it may be computed before the  message hash is known. The modular inverse k−1 mod q is the  second most expensive part, and it may also be computed before the  message hash is known. It may be computed using the extended  Euclidean algorithm or using Fermat's little theorem as kq−2 mod q.
  • 13. Obtain the DSA parameters; see Getting the  Obtain the DSA parameters; see  Digital Signature Algorithm (DSA) Parameters of  a Key Pair BigInteger p = ...; BigInteger q = ...;   BigInteger p =  ; BigInteger q =  BigInteger g = ...; BigInteger x = ...; BigInteger y  BigInteger g =  ; BigInteger x =  = ...;  =   Create the DSA key factory KeyFactory  keyFactory = KeyFactory.getInstance("DSA"); 
  • 14. Create the DSA private key KeySpec  privateKeySpec = new DSAPrivateKeySpec(x, p,  q, g); PrivateKey privateKey =  keyFactory.generatePrivate(privateKeySpec);    Create the DSA public key KeySpec  publicKeySpec = new DSAPublicKeySpec(y, p,  q, g); PublicKey publicKey = keyFactory.  generatePublic(publicKeySpec); } catch  (InvalidKeySpecException e) { } catch  (NoSuchAlgorithmException e) { }
  • 15. Compute r=(gk mod p) mod q   Compute s=(k-1 * (x * r + i)) mod q   Verifying a signature; again i is the input, and  (r, s) is the signature.   u1 = (s-1 * i) mod q   u2 = (s-1 * r) mod q v = ((gu1 * yu2) mod p)  mod q   If v equals r, the signature is valid.
  • 16. Reject the signature if 0 < r < q or 0 < s < q is not  satisfied.  Calculate w = s−1 mod q  Calculate u1 = H(m)·w mod q  Calculate u2 = r·w mod q  Calculate v = ((gu1·yu2) mod p) mod q  The signature is valid if v = r  DSA is similar to the El Gamal signature scheme.
  • 17. The signature scheme is  correct in the sense that the   Since g has order q (mod p) we  verifier will always accept  have genuine signatures. This can   gk = gH (m)w gxrw be shown as follows: = gH (m)w yrw  First, if g = h(p − 1)/q mod p it  follows that gq ≡ hp − 1 ≡ 1  = gu1 yu2 (mod p) (mod p) by Fermat's little  theorem. Since g > 1 and q is   Finally, the correctness of  prime, g must have order q. DSA follows from  The signer computes  r =  (gk  mod p)  mod q   s = k-1 (H (m) + xr) mod q          =  (gu1 yu2    mod p)     Thus mod q   k = H (m) s-1 + xrs-1          =   v = H (m) w +xrw (mod q)  
  • 18. With DSA, the entropy, secrecy and  uniqueness of the random signature value  k is  critical. It is so critical that violating any one  of those three requirements can reveal your  entire private key to an attacker. Using the  same value twice (even while  keeping k secret), using a predictable value, or  leaking even a few bits of k in each of several  signatures, is enough to break DSA.
  • 19. Ma. Genelyn B. de la cruz BSOA – 4B