What's the use of SHA on Non Digital Signature applications? Why is SHA1 not a risk for Non Digital Signature applications? What's the difference between Non Digital Signature applications vs. Digital Signature?


1 Answer 1


SHA1 can be used for error detecting just like CRC32, but with much stronger message integrity guarantee (though not as strong as SHA-256).

SHA1 can also be used for generating random bits. This can be done by instantiating NIST-SP-800-90Ar1 Hash_DRBG and HMAC_DRBG with SHA1 and HMAC-SHA1 respectively.

SHA1 can also be used in key derivation functions. PBKDF2 and HKDF can be instantiated from it.

The security requirement difference between digital signature and non digital signature application is that: the hash that directly process the input message must be collision resistant, which SHA1 can provides a maximum of 63-bit security due to its structural weakness; non digital signature applications often only require appearant randomess of the output.

  • 1
    $\begingroup$ Addition: there are some applications beyond digital signature where the broken collision-resistance of SHA-1 matters. An example is file integrity by displaying a hash, when adversaries can prepare some content of the file, and predict what's before that. There also are convoluted way to use SHA-1 securely in signature applications, by forcing a random prefix (e.g. random serial number in X.509 certs). It remains that SHA-1 should not be used in any new application, and must not be used when collision-resistance (including with chosen prefix) matters. $\endgroup$
    – fgrieu
    Jun 3, 2021 at 8:17
  • $\begingroup$ I'd also note that Blake3 is pretty much always going to be faster than SHA-1, and is far more secure. The only use of SHA-1 is for legacy systems that can't be upgraded. $\endgroup$ Jun 3, 2021 at 14:51
  • $\begingroup$ CRCs are stronger at detecting runs of errors. It is common for communication links to have bursts of bits that are corrupt. For random corruptions, they may perform in a similar manner. So in some ways, using a SHA for error detection might be a mis-use, just as it is to use a CRC for data integrity. They are both similar and in a pinch they can be used, but each serve a particular purpose. If you can trust the SHA value, then it gives trust in the hashed data. This is non-signature application. You need public/private keys as well to do signing. Isn't that the difference? $\endgroup$ Nov 15, 2022 at 17:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.