Fact-checked by Grok 2 weeks ago

Digital Signature Algorithm

The Digital Signature Algorithm (DSA) is a public-key cryptographic algorithm developed by the National Institute of Standards and Technology (NIST) for generating and verifying digital signatures that ensure the and of digital messages. It operates based on the algebraic difficulty of the problem within a , using to produce signatures without encrypting the message itself. DSA was proposed by NIST in August 1991 as part of the Digital Signature Standard (DSS) and first specified in (FIPS) Publication 186 in May 1994. DSA relies on a set of domain parameters shared publicly: a large prime p (with L typically 1024, 2048, or 3072), a prime q (with N of 160, 224, or 256, where q divides p-1), and a g of the cyclic of q p. For , the signer selects a random per-message secret k (1 ≤ k < q) and a private key x (1 ≤ x < q), computing r = (gk mod p) mod q and s = k-1 (H(m) + x·r) mod q, where H(m) is the hash of the message m using an approved function like SHA-256; the is the pair (r, s). Verification involves the recipient using the public key y = gx mod p to recompute a value v = ((gu1 · yu2) mod p) mod q, where w = s-1 mod q, u1 = (H(m) · w) mod q, and u2 = (r · w) mod q, accepting the if v = r. The security strength, estimated up to 128 bits for approved parameter sets, assumes the intractability of computing logarithms and secure for k. Historically, DSA was created collaboratively by NIST and the (NSA) to provide a U.S. government-approved alternative to proprietary algorithms like for non-secret applications, with NIST committing to make it available worldwide on a basis despite potential . It formed the core of the DSS through revisions in FIPS 186-1 (1998), 186-2 (2000), 186-3 (2009), and 186-4 (2013), which expanded parameter options and integrated elliptic curve variants (ECDSA). However, in FIPS 186-5 (published February 3, 2023), DSA was deprecated for generating new digital signatures due to its declining industry adoption and vulnerabilities highlighted in academic analyses, such as susceptibility to certain attacks if parameters are weakly generated; it remains permissible only for verifying pre-existing signatures compliant with prior standards. The current DSS now prioritizes more efficient and secure alternatives like ECDSA, , and post-quantum algorithms.

Introduction

Overview

The Digital Signature Algorithm (DSA) is a public-key cryptographic standard specified in the Federal Information Processing Standard (FIPS) 186 for generating and verifying digital signatures, providing of the signer and of the signed . It relies on the computational difficulty of the problem in finite fields to ensure security. Originally proposed by the National Institute of Standards and Technology (NIST) in as part of the Standard (DSS), DSA was designed for federal use in protecting unclassified information and has since been adopted in various applications. At a high level, DSA operates through a key pair consisting of a private known only to the signer and a corresponding public available to verifiers. To sign a , the signer hashes the using an approved function and combines it with the private and a random per- value to produce a pair. Verification involves recomputing the hash and using the public to check the 's validity against the original . Unlike RSA signatures, which are based on the difficulty of and involve direct of the message , DSA employs over a with carefully selected parameters such as large primes p and q, and a g. DSA typically pairs with hash functions from the SHA family, such as or members of (e.g., SHA-256), to process messages before signing.

Historical Development

The Digital Signature Algorithm (DSA) draws its foundational concepts from earlier discrete logarithm-based signature schemes, notably the introduced by in 1985, which provided a framework for public-key signatures relying on the computational difficulty of the problem in finite fields. This work influenced subsequent developments in digital signatures by demonstrating how discrete logs could enable secure, verifiable authentication without revealing private keys. DSA adapted and refined these ideas to create a more efficient variant tailored for standardization. DSA was created collaboratively by the National Institute of Standards and Technology (NIST) and the (NSA). In 1991, NIST, in collaboration with the NSA, proposed DSA as the core component of the Digital Signature Standard (DSS), aiming to establish a federal standard for digital signatures in applications like electronic mail and data interchange. NIST adopted DSA into Federal Information Processing Standard (FIPS) 186 on May 19, 1994, marking its formal integration into U.S. government cryptographic practices. Subsequent revisions refined the algorithm to address evolving security needs: FIPS 186-1 in 1998 added as an option and clarified aspects of DSA parameter generation; FIPS 186-2 in 2000 introduced elliptic curve variants (ECDSA) and approved as a hash function; FIPS 186-3 in 2009 added support for hashes and larger key sizes; and FIPS 186-4 in 2013 further expanded elliptic curve options while approving additional hashes such as SHA-256 and increasing DSA modulus sizes to 2048 or 3072 bits for enhanced security. Despite this, DSA has become less efficient for modern systems due to the need for significantly larger key sizes compared to elliptic curve cryptography (ECC) variants like ECDSA to achieve equivalent security levels. As of 2025, under FIPS 186-5 (issued February 3, 2023), DSA is approved solely for legacy verification purposes, with ECDSA and other algorithms preferred for new digital signature generations to align with current performance and security priorities.

Cryptographic Foundations

As of FIPS 186-5 (published February 2023), DSA is deprecated for generating new digital signatures and approved only for verifying existing signatures generated under prior standards. The parameters and key generation below are as specified in the withdrawn FIPS 186-4.

System Parameters

The Digital Signature Algorithm (DSA) relies on a set of global system parameters that define the underlying finite field and subgroup for cryptographic operations. These parameters are fixed for a given domain or application and must be generated or selected with high assurance to ensure security. The primary parameters are the prime modulus p, the subgroup order q, and the generator g. The prime modulus p is a large with bit length L (approved values: , 2048, or 3072), chosen such that q divides p-1, ensuring a cyclic of order q modulo p where the problem is computationally hard. Generation methods in FIPS 186-4 produce p with appropriate factors of p-1 to resist known attacks. Specifically, $2^{L-1} < p < 2^L, with generation involving probabilistic primality testing like the Miller-Rabin algorithm applied over multiple rounds to verify primality with overwhelming probability. The subgroup order q is a prime number of 160 to 256 bits that exactly divides p-1, forming a large prime factor of p-1 to create a suitable cyclic subgroup for the discrete logarithm problem. Specifically, $2^{N-1} < q < 2^N for approved N values of 160 (with L=1024), 224 (with L=2048), or 256 (with L=2048 or 3072). Like p, q undergoes primality testing via Miller-Rabin, and its selection ensures the subgroup provides adequate security without excessive computational cost. NIST recommends parameter sets from FIPS 186-4, such as (2048-bit p, 224-bit q) for 112-bit security strength and (3072-bit p, 256-bit q) for 128-bit security, aligning with symmetric key equivalents per SP 800-57. The generator g is an integer between 1 and p-1 that serves as a primitive element of the subgroup of order q in the multiplicative group modulo p. It is computed by selecting a random base h (where $1 < h < p-1) and setting g = h^{(p-1)/q} \mod p; if g = 1, a new h is chosen until g > 1. To verify that the order of g is exactly q, check that g^q \equiv 1 \pmod{p} and that no smaller positive exponent divides q to yield 1 (since q is prime, this primarily confirms g \not\equiv 1 \pmod{p}, but full verification tests against divisors ensure the subgroup property). The generation process for all parameters uses a seed and hash function (e.g., SHA-256) in a deterministic manner, as specified in FIPS 186-4 Appendix A, to allow reproducible validation.
Approved Parameter Sets (L, N)Bit Length of p (L)Bit Length of q (N)Security Strength (bits)
(1024, 160)102416080
(2048, 224)2048224112
(2048, 256)2048256128
(3072, 256)3072256128
These sets provide scalable security, with larger parameters offering protection against advances in computing power.

Key Generation

The key generation process in the Digital Signature Algorithm (DSA) produces a pair of mathematically related keys: a private key for signing and a public key for verification, derived from the shared system parameters p, q, and g. The private key x is selected as a random in the [1, q-1], where q has N (approved values: 160, 224, or 256 bits), ensuring x has sufficient to resist brute-force attacks. This selection must employ a (CSPRNG), approved by standards such as those in , to provide and unpredictability, matching the security strength of the parameter set (e.g., at least 112 bits for N=256). The public key y is then computed as y = g^x \mod p, where p has bit length L (1024, 2048, or 3072 bits), resulting in y being an L-bit integer in [2, p-1]. This exponentiation leverages the discrete logarithm problem's hardness in the subgroup generated by g modulo p, ensuring that recovering x from y, g, and p is computationally infeasible for appropriately chosen parameters. Upon generation, the key pair undergoes validation to confirm : specifically, verify that y \neq 1 (indicating x \not\equiv 0 \pmod{q}) and that the \log_g y = x remains intractable, which holds under the system's security assumptions without explicit computation of the logarithm. The private key x must be stored securely, using mechanisms like modules or encrypted storage as per guidelines, to prevent exposure that could compromise signatures. Conversely, the public key y is disseminated openly, typically embedded in digital certificates conforming to standards like for trust anchoring in public key infrastructures.

Core Operations

Signature Generation

The signature generation process in the Digital Signature Algorithm () produces a as a pair of integers (r, s) for a given m, using the signer's private x and the domain parameters p, q, and g. This step ensures the 's authenticity and integrity by binding it cryptographically to the private , which corresponds to the public key y = g^x \mod p. The process is probabilistic, relying on a fresh random value to achieve against . To begin, preprocess the message by computing its hash value h = \mathrm{HASH}(m) using an approved , such as SHA-256, which outputs a fixed-length digest. If the hash output length exceeds the bit length N of the prime q, truncate h to the to obtain the value z used in subsequent computations. This hashing step reduces the message to a compact representation suitable for the in DSA, ensuring efficiency while preserving properties essential for security. Next, generate a random k as an uniformly selected from the [1, q-1], using an approved random bit generator to ensure unpredictability and high . The value k serves as a per-signature secret and must be kept confidential; it is discarded after use and never reused for another . Compute r as follows: r \equiv (g^k \mod p) \mod q If r = 0, discard k and select a new one, repeating the computation to avoid invalid signatures. Then, compute the k^{-1} of k modulo q, and use it to derive s: s \equiv k^{-1} (z + x r) \mod q If s = 0, discard k and select a new one, recomputing both r and s. The resulting is the (r, s), where both components are integers in [1, q-1]. The requirement for a fresh k per is critical, as reusing the same k across multiple signatures enables an attacker to recover the private key x through algebraic manipulation of the signature equations.

Signature Verification

The signature verification process in the Digital Signature Algorithm (DSA) uses the signer's public key to validate the and of a without revealing the private key. This procedure ensures that the signature was generated by the holder of the corresponding private key and that the message has not been altered. The relies on the mathematical properties of the problem in a , confirming the signature components through probabilistic computations. To perform verification, the inputs consist of the message m, the signature pair (r, s), the public key y, and the domain parameters p, q, and g, where p is a large prime , q is a prime divisor of p-1, and g is a of the of q p. An approved , such as those specified in FIPS 180, is also required to compute the message digest. The verifier first checks that both r and s are integers in the interval [1, q-1]; if either is outside this range, the signature is rejected as invalid. Next, compute the modular inverse w \equiv s^{-1} \pmod{q}, which exists since s is coprime to q. Then, derive u_1 \equiv \text{HASH}(m) \cdot w \pmod{q} and u_2 \equiv r \cdot w \pmod{q}, where \text{HASH}(m) is the integer representation of the hash output (typically the leftmost N bits of the hash, with N being the bit length of q). The verification value v is then calculated as: v \equiv \left( g^{u_1} \cdot y^{u_2} \pmod{p} \right) \pmod{q}. If v = r, the signature is valid, confirming the message's origin and ; otherwise, it is rejected. This step involves efficient operations, which are the primary computational bottleneck but can be optimized using algorithms like binary for large p.

Security Analysis

Correctness Proof

The correctness of the Digital Signature Algorithm (DSA) is established by demonstrating that the verification equation holds true for a valid , ensuring that the computed value v equals the signature component r when the message and signature are authentic and unaltered. This proof relies on the of the algorithm, substituting the signing equations into the verification process under the assumption of correct operations modulo the primes p and q, where p is a large prime, q divides p-1, and g is a of the of order q modulo p. Consider a valid signature (r, s) generated for a m with value z = \text{Hash}(m), private key x, and ephemeral secret k, where $1 \leq k \leq q-1 and the k^{-1} \mod q exists. The signing equations are r = (g^k \mod p) \mod q and s = k^{-1} (z + x r) \mod q, with $0 < r < q and $0 < s < q. The public key is y = g^x \mod p. In verification, compute w = s^{-1} \mod q, u_1 = (z w) \mod q, u_2 = (r w) \mod q, and v = ((g^{u_1} y^{u_2}) \mod p) \mod q. Substituting w = s^{-1} yields u_1 = z s^{-1} \mod q and u_2 = r s^{-1} \mod q. Now substitute the signing equation for s into these: since s = k^{-1} (z + x r) \mod q, it follows that s^{-1} = k (z + x r)^{-1} \mod q. Thus, u_1 = z k (z + x r)^{-1} \mod q and u_2 = r k (z + x r)^{-1} \mod q. The exponent in the verification computation becomes u_1 + x u_2 = [z k (z + x r)^{-1} + x r k (z + x r)^{-1}] \mod q = k (z + x r) (z + x r)^{-1} \mod q = k \mod q. Therefore, g^{u_1} y^{u_2} = g^{u_1} (g^x)^{u_2} = g^{u_1 + x u_2} = g^k \mod p, so v = (g^k \mod p) \mod q = r. This confirms v \equiv r \mod q, validating the signature. The proof assumes that all inverses exist (i.e., k \not\equiv 0 \mod q and s \not\equiv 0 \mod q, enforced during and signing by regenerating k if necessary) and that arithmetic is performed correctly in the multiplicative groups modulo p and q. For invalid signatures, such as those with r = 0, s = 0, or altered message hashes, the range checks fail or the substitution does not yield v = r, leading to rejection. This ensures the algorithm's integrity under ideal conditions without computational errors.

Vulnerabilities and Sensitivity

The Digital Signature Algorithm (DSA) is theoretically secure under the discrete logarithm problem, but practical implementations are susceptible to several vulnerabilities, particularly those arising from the ephemeral nonce k used in signature generation. A critical weakness occurs when the same nonce k is reused across multiple signatures for the same private key but different messages. In this scenario, an attacker can recover the private key x using the signature equations. Specifically, for two signatures (r_1, s_1) on message hash h_1 and (r_2, s_2) on h_2, the relation x \equiv (s_1 h_2 - s_2 h_1) (s_2 r_1 - s_1 r_2)^{-1} \pmod{q} holds, allowing direct computation of x modulo the subgroup order q. This attack requires only the public signatures and hashes, compromising the entire key pair. If the nonce k is not fully random but exhibits predictability, such as through biased generation or partial bit leakage, more advanced attacks become feasible. Linear congruence or lattice-based methods, including solutions to the Hidden Number Problem, can exploit known or guessed bits of k from multiple signatures to recover the private key. A notable real-world example is the 2010 Sony incident, where a flawed in the ECDSA (analogous to ) produced predictable nonces, enabling hackers to extract 's private signing key after analyzing a small number of signatures. Such predictability often stems from insufficient in the RNG, amplifying the risk even without full reuse. Side-channel attacks further expose DSA implementations to physical or remote observation. Timing attacks target variations in during r = (g^k \mod p) computation, where execution time leaks information about the or bits of k, potentially revealing upper bits of the private key x through statistical analysis of multiple signatures. Power analysis attacks, including differential power analysis, monitor energy consumption during nonce k generation and inversion, as the modular operations in k^{-1} \mod q exhibit data-dependent patterns that correlate with secret values. These vulnerabilities are exacerbated in non-constant-time implementations and have been demonstrated on hardware like smartcards. Parameter choices also introduce weaknesses. DSA's security relies on the difficulty of the in the of order q; small q values, such as the original 160-bit specification, are vulnerable to , which solves the problem in approximately $2^{80} operations for 160 bits—now feasible with modern computing resources. NIST has disallowed generation of DSA signatures with 160-bit q (providing only 80-bit security) after December 31, 2013, while verification of existing signatures remains allowed for legacy use, recommending transitions to at least 224-bit q paired with 2048-bit p for 112-bit security (though 112-bit security is planned for deprecation after 2030). DSA is particularly sensitive to flaws in , as the nonce k must be uniformly random and unpredictable. The , once standardized by NIST, contained a potential backdoor allowing prediction of outputs if certain points were known, which could generate biased or foreseeable k values, facilitating key recovery attacks similar to nonce reuse. This concern led to its withdrawal in 2014, underscoring the need for vetted RNGs like those in SP 800-90A. To mitigate these vulnerabilities, deterministic nonce generation per 6979 derives k from the private key and message hash using , ensuring uniqueness without relying on RNGs and preventing reuse or predictability issues. Implementations should employ constant-time arithmetic to resist timing and power analysis, such as Montgomery ladders for . Additionally, adopting larger parameters as per NIST guidelines—e.g., 256-bit q with 3072-bit p for 128-bit security—bolsters resistance to attacks like Pollard's rho. These strategies maintain DSA's utility while addressing practical risks.

Applications and Implementations

Software and Library Support

The Digital Signature Algorithm (DSA) is implemented in several widely used cryptographic libraries, providing APIs for key generation, signing, and verification compliant with standards such as FIPS 186-4. includes comprehensive DSA support through functions such as DSA_generate_key for key pair generation, DSA_sign for producing signatures, and DSA_verify for validation, with parameter handling aligned to FIPS 186-4 requirements for cryptography (FFC) generation and validation. In the Bouncy Castle library, the DSAKeyPairGenerator class facilitates DSA key pair creation and supports initialization with custom parameters, including user-specified prime moduli (p), (q), and (g), enabling flexible deployment in Java-based applications. The Crypto++ C++ library provides a full DSA per FIPS 186 up to 3072-bit moduli, featuring classes like DSAPublicKey and DSAPrivateKey with built-in parameter validation via the Validate method to ensure primes meet length constraints (e.g., multiples of 8 bits between 512 and 3072 bits). Python's cryptography library exposes DSA operations through its hazmat primitives layer, where generate_private_key(key_size) creates a key pair (with supported sizes of 1024, 2048, 3072, or 4096 bits) and the sign(data, algorithm) method on DSAPrivateKey instances produces DER-encoded signatures using hashes like SHA-256. DSA finds practical use in protocols such as SSH via the ssh-dss key type for , though it is deprecated and disabled by default in 7.0 and later due to security concerns. In legacy TLS implementations (up to version 1.2), DSA signatures appear in cipher suites like TLS_DHE_DSS_WITH_AES_128_CBC_SHA, but TLS 1.3 removes for DSA entirely. For PGP, GnuPG supports DSA keys primarily for signing messages and subkeys, often paired with ElGamal for encryption, adhering to OpenPGP standards. Performance-wise, DSA with a 2048-bit prime p requires larger keys than equivalent-strength ECDSA (e.g., over a 224-bit ), resulting in slower signing and verification.

Standards and Recommendations

The Federal Information Processing Standard (FIPS) 186-5, published by the National Institute of Standards and Technology (NIST) in February 2023, specifies algorithms for digital signatures but removes the Digital Signature Algorithm () as an approved method for generating new signatures due to limited industry adoption and security analyses indicating better alternatives. Instead, FIPS 186-5 retains DSA solely for verifying existing signatures, while emphasizing migration to more efficient schemes like the (ECDSA) or (EdDSA); it supports hash functions including and families for compatible algorithms, though DSA verification inherits prior pairings. For legacy DSA implementations, approved parameter sets from FIPS 186-4 (superseded but referenced for verification) define domain parameters based on finite-field , with specific bit lengths for the p (L bits) and subgroup order q (N bits) to achieve target security levels. These sets ensure at least 112-bit security for ongoing verification, as smaller parameters like L=1024, N=160 (80-bit security) are legacy-only and discouraged. The table below summarizes the approved (L, N) pairs:
Security Strength (bits)L (bits of p)N (bits of q)
1122048224
1122048256
1283072256
DSA pairings with hash functions must use approved secure hashes per FIPS 180-4, such as SHA-224, SHA-256, SHA-384, or SHA-512, matched to the parameter set's security strength; has been disallowed for new DSA signatures since 2011 and fully deprecated for generation by December 31, 2013, per NIST SP 800-131A Revision 1, though it may appear in legacy verification contexts. Internationally, ISO/IEC 14888-3:2018 standardizes discrete logarithm-based mechanisms with appendix, explicitly including alongside variants like EC-DSA and others, providing specifications for parameter and operations to ensure . As of 2025, NIST recommends exclusively for systems verifying pre-existing signatures, urging adoption of ECDSA or for new deployments due to DSA's larger key sizes and performance drawbacks; for any continued use, parameters must meet a minimum L=2048 bits to provide at least 112-bit security. The draft NIST SP 800-131A Revision 3 (October 2024) proposes disallowing immediately upon finalization, with permitted indefinitely for purposes, aligning with a broader transition timeline extending certain classical algorithms until 2030 in limited federal contexts.

References

  1. [1]
    [PDF] Digital Signature Standard (DSS) - NIST Technical Series Publications
    Feb 5, 2024 · This Standard specifies a suite of algorithms that can be used to generate a digital signature. Digital signatures are used to detect ...
  2. [2]
    FIPS 186, Digital Signature Standard (DSS) | CSRC
    This standard specifies a Digital Signature Algorithm (DSA) which can be used to generate a digital signature. Digital signatures are used to detect ...
  3. [3]
    proposed DSS - EPIC
    NIST intends to make this DSS technique available world-wide on a royalty-free basis in the public interest. We believe this technique is patentable and that no ...
  4. [4]
  5. [5]
    [PDF] FIPS 186-5 - NIST Technical Series Publications
    Feb 3, 2023 · This standard specifies a suite of algorithms that can be used to generate a digital signature. Digital signatures are used to detect ...
  6. [6]
    NIST Revises the Digital Signature Standard (DSS) and Publishes a ...
    Feb 3, 2023 · The Digital Signature Algorithm (DSA), which was specified in prior versions of FIPS 186, is retained only for the purposes of verifying ...
  7. [7]
  8. [8]
  9. [9]
    Announcing Issuance of Federal Information Processing Standard ...
    Feb 3, 2023 · FIPS 186-5 specifies three techniques for the generation and verification of digital signatures that can be used for the protection of data.
  10. [10]
    FIPS 186-4, Digital Signature Standard (DSS) | CSRC
    This standard specifies three techniques for the generation and verification of digital signatures: DSA, ECDSA and RSA.
  11. [11]
  12. [12]
    [PDF] Recommendation for Key Management: Part 1 - General
    May 5, 2020 · NIST is responsible for developing information security standards and guidelines, including minimum requirements for federal information systems ...
  13. [13]
  14. [14]
  15. [15]
  16. [16]
    [PDF] Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS ...
    It is not yet known whether timing attacks can be adapted to directly attack the mod p and mod q modular exponentiations performed with the Chinese. Remainder ...Missing: DSA | Show results with:DSA
  17. [17]
    [PDF] Big Troubles: Systematically Analyzing Nonce Leakage in (EC)DSA ...
    Aug 12, 2020 · In particular, we expand DATA, an open-source side-channel analysis framework, to detect nonce leakage. Our analysis identified multiple unknown.
  18. [18]
  19. [19]
    dsa - OpenSSL Documentation
    These functions implement the Digital Signature Algorithm (DSA). The generation of shared DSA parameters is described in DSA_generate_parameters(3).
  20. [20]
    EVP_PKEY-DSA - OpenSSL Documentation
    For DSA the FIPS 186-4 standard specifies that the values used for FFC parameter generation are also required for parameter validation. This means that optional ...
  21. [21]
    [PDF] OpenSSL FIPS 140-2 Security Policy OpenSSL FIPS Provider
    Jan 12, 2024 · The module supports generation of ECDSA, RSA, DSA, EC Diffie-Hellman and Diffie-Hellman key pairs per. Section 5 in NIST SP 800-133. A NIST SP ...
  22. [22]
    Class DSAKeyPairGenerator - Bouncy Castle
    Parameters: param - the parameters the key pair is to be initialised with. generateKeyPair. public AsymmetricCipherKeyPair generateKeyPair(). Description copied ...
  23. [23]
    Digital Signature Algorithm - Crypto++ Wiki
    ### Crypto++ DSA Implementation Summary
  24. [24]
    DSA — Cryptography 47.0.0.dev1 documentation
    Generate a DSA private key from the given key size. This function will generate a new set of parameters and key in one step. Parameters:.
  25. [25]
    Legacy Options - OpenSSH
    OpenSSH legacy support. ... OpenSSH 7.0 and greater similarly disable the ssh-dss (DSA) public key algorithm. It too is weak and we recommend against its use.
  26. [26]
    RFC 8446 - The Transport Layer Security (TLS) Protocol Version 1.3
    This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet.
  27. [27]
    OpenPGP Key Management (Using the GNU Privacy Guard)
    To use the default algorithm the string “default” or “-” can be used. Supported algorithms are “rsa”, “dsa”, “elg”, “ed25519”, “cv25519”, and other ECC curves.
  28. [28]
    Digital Signature - RSA vs ECDSA - SEGGER Knowledge Base
    Dec 11, 2024 · ECDSA. Verification performance. 80 bit, 2.18 ms (1024 bit), 43.45 ms (P-192). 112 bit, 7.40 ms (2048 bit), 53.87 ms (P-224). 128 bit, 15.89 ms ...
  29. [29]
    FIPS 186-5, Digital Signature Standard (DSS) | CSRC
    Feb 3, 2023 · This standard specifies a suite of algorithms that can be used to generate a digital signature. Digital signatures are used to detect unauthorized ...
  30. [30]
  31. [31]
  32. [32]
    ISO/IEC 14888-3:2018 - Digital signatures with appendix
    2–5 day deliveryThis document specifies digital signature mechanisms with appendix whose security is based on the discrete logarithm problem.
  33. [33]
    [PDF] Transitioning the Use of Cryptographic Algorithms and Key Lengths
    Oct 21, 2024 · This publication provides guidance for transitions to the use of stronger cryptographic keys and more robust algorithms. ... When NIST foresees ...