SlideShare a Scribd company logo
1 of 19
   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.
   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

What's hot (20)

Elgamal &amp; schnorr digital signature scheme copy
Elgamal &amp; schnorr digital signature scheme   copyElgamal &amp; schnorr digital signature scheme   copy
Elgamal &amp; schnorr digital signature scheme copy
 
DES
DESDES
DES
 
RSA Algorithm - Public Key Cryptography
RSA Algorithm - Public Key CryptographyRSA Algorithm - Public Key Cryptography
RSA Algorithm - Public Key Cryptography
 
Kerberos
KerberosKerberos
Kerberos
 
Intro to modern cryptography
Intro to modern cryptographyIntro to modern cryptography
Intro to modern cryptography
 
Ch14
Ch14Ch14
Ch14
 
Elgamal Digital Signature
Elgamal Digital SignatureElgamal Digital Signature
Elgamal Digital Signature
 
Classical encryption techniques
Classical encryption techniquesClassical encryption techniques
Classical encryption techniques
 
Cryptography - 101
Cryptography - 101Cryptography - 101
Cryptography - 101
 
Symmetric and asymmetric key
Symmetric and asymmetric keySymmetric and asymmetric key
Symmetric and asymmetric key
 
Authentication Protocols
Authentication ProtocolsAuthentication Protocols
Authentication Protocols
 
Network security cryptographic hash function
Network security  cryptographic hash functionNetwork security  cryptographic hash function
Network security cryptographic hash function
 
Data Encryption Standard (DES)
Data Encryption Standard (DES)Data Encryption Standard (DES)
Data Encryption Standard (DES)
 
Message authentication
Message authenticationMessage authentication
Message authentication
 
Public Key Cryptosystem
Public Key CryptosystemPublic Key Cryptosystem
Public Key Cryptosystem
 
Steganography
Steganography Steganography
Steganography
 
Double DES & Triple DES
Double DES & Triple DESDouble DES & Triple DES
Double DES & Triple DES
 
Pgp pretty good privacy
Pgp pretty good privacyPgp pretty good privacy
Pgp pretty good privacy
 
Network Security and Cryptography
Network Security and CryptographyNetwork Security and Cryptography
Network Security and Cryptography
 
Elliptic curve cryptography
Elliptic curve cryptographyElliptic curve cryptography
Elliptic curve cryptography
 

Viewers also liked

Digital signature
Digital  signatureDigital  signature
Digital signatureAJAL A J
 
Seminar ppt on digital signature
Seminar ppt on digital signatureSeminar ppt on digital signature
Seminar ppt on digital signaturejolly9293
 
Digital Signature
Digital SignatureDigital Signature
Digital Signaturesaurav5884
 
Introduction to Digital signatures
Introduction to Digital signaturesIntroduction to Digital signatures
Introduction to Digital signaturesRohit Bhat
 
C08 crypto-digital signature13
C08 crypto-digital signature13C08 crypto-digital signature13
C08 crypto-digital signature13ravik09783
 
Digital signature introduction
Digital signature introductionDigital signature introduction
Digital signature introductionAsim Neupane
 
Digital signatures
Digital signaturesDigital signatures
Digital signaturesIshwar Dayal
 
Digital signature
Digital signatureDigital signature
Digital signatureSadhana28
 
Cryptography - A Brief History
Cryptography - A Brief HistoryCryptography - A Brief History
Cryptography - A Brief Historyprasenjeetd
 
Dss digital signature standard and dsa algorithm
Dss  digital signature standard and dsa algorithmDss  digital signature standard and dsa algorithm
Dss digital signature standard and dsa algorithmAbhishek Kesharwani
 
Digital signature
Digital signatureDigital signature
Digital signatureCoders Hub
 
Digital signature
Digital signatureDigital signature
Digital signaturePraseela R
 
Eaack—a secure intrusion detection.ppt
Eaack—a secure intrusion detection.pptEaack—a secure intrusion detection.ppt
Eaack—a secure intrusion detection.pptslksagar
 
Key aggregate cryptosystem for scalable data sharing in cloud storage
Key aggregate cryptosystem for scalable data sharing in cloud storage Key aggregate cryptosystem for scalable data sharing in cloud storage
Key aggregate cryptosystem for scalable data sharing in cloud storage Adz91 Digital Ads Pvt Ltd
 

Viewers also liked (20)

Digital signature
Digital  signatureDigital  signature
Digital signature
 
Seminar ppt on digital signature
Seminar ppt on digital signatureSeminar ppt on digital signature
Seminar ppt on digital signature
 
Digital Signature
Digital SignatureDigital Signature
Digital Signature
 
Introduction to Digital signatures
Introduction to Digital signaturesIntroduction to Digital signatures
Introduction to Digital signatures
 
Digital signature
Digital signatureDigital signature
Digital signature
 
Digital signature
Digital signatureDigital signature
Digital signature
 
C08 crypto-digital signature13
C08 crypto-digital signature13C08 crypto-digital signature13
C08 crypto-digital signature13
 
Digital signature introduction
Digital signature introductionDigital signature introduction
Digital signature introduction
 
Digital signatures
Digital signaturesDigital signatures
Digital signatures
 
Digital signature
Digital signatureDigital signature
Digital signature
 
Cryptography - A Brief History
Cryptography - A Brief HistoryCryptography - A Brief History
Cryptography - A Brief History
 
Dss digital signature standard and dsa algorithm
Dss  digital signature standard and dsa algorithmDss  digital signature standard and dsa algorithm
Dss digital signature standard and dsa algorithm
 
Blowfish Cryptosystem
Blowfish Cryptosystem Blowfish Cryptosystem
Blowfish Cryptosystem
 
Digital signature
Digital signatureDigital signature
Digital signature
 
Digital signature
Digital signatureDigital signature
Digital signature
 
Eaack—a secure intrusion detection.ppt
Eaack—a secure intrusion detection.pptEaack—a secure intrusion detection.ppt
Eaack—a secure intrusion detection.ppt
 
Key aggregate cryptosystem for scalable data sharing in cloud storage
Key aggregate cryptosystem for scalable data sharing in cloud storage Key aggregate cryptosystem for scalable data sharing in cloud storage
Key aggregate cryptosystem for scalable data sharing in cloud storage
 
Digital Signature
Digital SignatureDigital Signature
Digital Signature
 
Digital signature
Digital signatureDigital signature
Digital signature
 
Digital signature
Digital signatureDigital signature
Digital signature
 

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

Module 5-DSS.pptx crypto currency notes incoming
Module 5-DSS.pptx crypto currency notes incomingModule 5-DSS.pptx crypto currency notes incoming
Module 5-DSS.pptx crypto currency notes incomingVIKASHKUMAR34838
 
digital signature algo.pptx
digital signature algo.pptxdigital signature algo.pptx
digital signature algo.pptxBLACKSPAROW
 
Digital Signatures: Reassessing security of randomizable signatures
Digital Signatures: Reassessing security of randomizable signaturesDigital Signatures: Reassessing security of randomizable signatures
Digital Signatures: Reassessing security of randomizable signaturesPriyanka Aash
 
Presentation on Cryptography_Based on IEEE_Paper
Presentation on Cryptography_Based on IEEE_PaperPresentation on Cryptography_Based on IEEE_Paper
Presentation on Cryptography_Based on IEEE_PaperNithin Cv
 
Cloud computing and security 03
Cloud computing and security 03Cloud computing and security 03
Cloud computing and security 03Akash Kamble
 
Information and network security 46 digital signature algorithm
Information and network security 46 digital signature algorithmInformation and network security 46 digital signature algorithm
Information and network security 46 digital signature algorithmVaibhav Khanna
 
Partial Homomorphic Encryption
Partial Homomorphic EncryptionPartial Homomorphic Encryption
Partial Homomorphic Encryptionsecurityxploded
 
RSA Algorithm.ppt
RSA Algorithm.pptRSA Algorithm.ppt
RSA Algorithm.pptArchanaT30
 
555_Spring12_topic22.ppt
555_Spring12_topic22.ppt555_Spring12_topic22.ppt
555_Spring12_topic22.pptMohammedJifar1
 
ZeroKnowledge Nominative Signatures
ZeroKnowledge Nominative SignaturesZeroKnowledge Nominative Signatures
ZeroKnowledge Nominative SignaturesSeungjoo Kim
 
Digital signature schemes
Digital signature schemesDigital signature schemes
Digital signature schemesravik09783
 
Information and data security other public key cryptosystems
Information and data security other public key cryptosystemsInformation and data security other public key cryptosystems
Information and data security other public key cryptosystemsMazin Alwaaly
 
Cloud computing and security final
Cloud computing and security finalCloud computing and security final
Cloud computing and security finalAkash Kamble
 
Signyourd digital signature certificate provider
Signyourd   digital signature certificate providerSignyourd   digital signature certificate provider
Signyourd digital signature certificate providerKishankant Yadav
 
RSA & MD5 algorithm
RSA & MD5 algorithmRSA & MD5 algorithm
RSA & MD5 algorithmSiva Rushi
 

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

Module 5-DSS.pptx crypto currency notes incoming
Module 5-DSS.pptx crypto currency notes incomingModule 5-DSS.pptx crypto currency notes incoming
Module 5-DSS.pptx crypto currency notes incoming
 
digital signature algo.pptx
digital signature algo.pptxdigital signature algo.pptx
digital signature algo.pptx
 
Digital Signatures: Reassessing security of randomizable signatures
Digital Signatures: Reassessing security of randomizable signaturesDigital Signatures: Reassessing security of randomizable signatures
Digital Signatures: Reassessing security of randomizable signatures
 
Presentation on Cryptography_Based on IEEE_Paper
Presentation on Cryptography_Based on IEEE_PaperPresentation on Cryptography_Based on IEEE_Paper
Presentation on Cryptography_Based on IEEE_Paper
 
Cloud computing and security 03
Cloud computing and security 03Cloud computing and security 03
Cloud computing and security 03
 
Information and network security 46 digital signature algorithm
Information and network security 46 digital signature algorithmInformation and network security 46 digital signature algorithm
Information and network security 46 digital signature algorithm
 
Homomorphic encryption
Homomorphic encryptionHomomorphic encryption
Homomorphic encryption
 
Partial Homomorphic Encryption
Partial Homomorphic EncryptionPartial Homomorphic Encryption
Partial Homomorphic Encryption
 
RSA Algorithm.ppt
RSA Algorithm.pptRSA Algorithm.ppt
RSA Algorithm.ppt
 
555_Spring12_topic22.ppt
555_Spring12_topic22.ppt555_Spring12_topic22.ppt
555_Spring12_topic22.ppt
 
ZeroKnowledge Nominative Signatures
ZeroKnowledge Nominative SignaturesZeroKnowledge Nominative Signatures
ZeroKnowledge Nominative Signatures
 
Rsa
RsaRsa
Rsa
 
How to share a secret
How to share a secretHow to share a secret
How to share a secret
 
RSA ALGORITHM
RSA ALGORITHMRSA ALGORITHM
RSA ALGORITHM
 
Digital signature schemes
Digital signature schemesDigital signature schemes
Digital signature schemes
 
Information and data security other public key cryptosystems
Information and data security other public key cryptosystemsInformation and data security other public key cryptosystems
Information and data security other public key cryptosystems
 
Cloud computing and security final
Cloud computing and security finalCloud computing and security final
Cloud computing and security final
 
Signyourd digital signature certificate provider
Signyourd   digital signature certificate providerSignyourd   digital signature certificate provider
Signyourd digital signature certificate provider
 
RSA & MD5 algorithm
RSA & MD5 algorithmRSA & MD5 algorithm
RSA & MD5 algorithm
 
Digital Signature.ppt
Digital Signature.pptDigital Signature.ppt
Digital Signature.ppt
 

Recently uploaded

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 

Recently uploaded (20)

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 

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

  • 1.
  • 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.
  • 11.
  • 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