Most of cryptographic systems require a sufficient key size to be robust against brute-force attacks.

https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar2.pdf[NIST recommendations] will be checked for these use-cases:


*Digital Signature Generation* and *Verification:* 

* p ≥ 2048 AND q ≥ 224 for DSA (``++p++`` is key length and ``++q++`` the modulus length)
* n ≥ 2048 for  RSA (``++n++`` is the key length)

*Key Agreement*: 

* p ≥ 2048 AND q ≥ 224 for DH and MQV
* n ≥ 224 for ECDH and ECMQV  (Examples: ``++secp192r1++`` is a non-compliant curve (``++n++`` < 224) but ``++secp224k1++`` is compliant (``++n++`` >= 224))

*Symmetric keys*: 

* key length ≥ 128 bits

This rule will not raise issues for ciphers that are considered weak (no matter the key size) like ``++DES++``, ``++Blowfish++``.
