Os parâmetros de domínio são um primo p (1024–3072 bits), um primo q que divide p − 1 (160, 224 ou 256 bits) e um gerador g do subgrupo de ordem q. A assinatura é r = (gᵏ mod p) mod q e s = k⁻¹·(z + x·r) mod q, a mesma estrutura do ECDSA, que é seu análogo em curvas elípticas, e compartilha o mesmo modo de falha: um k repetido ou previsível revela a chave privada x. A RFC 6979 cobre o DSA, além do ECDSA.
O FIPS 186-5 afirma que o DSA “não é mais especificado neste padrão e só pode ser usado para verificar assinaturas digitais geradas anteriormente”. O OpenSSH desativou as chaves ssh-dss por padrão em 2015 e removeu totalmente o suporte a DSA no OpenSSH 10.0 (abril de 2025); o GnuPG ainda lê chaves DSA/ElGamal antigas, e muitas bibliotecas mantêm a verificação DSA para material arquivado.
As assinaturas são codificadas como as do ECDSA: uma SEQUENCE DER dos dois inteiros no X.509 e no CMS (por exemplo, dsa-with-SHA256, 2.16.840.1.101.3.4.3.2) ou dois inteiros de tamanho fixo nos demais casos. Se você ainda encontrar chaves DSA, substitua-as por Ed25519 ou ECDSA P-256 e mantenha o DSA apenas onde for preciso verificar assinaturas antigas.