Digital Signatures

Technology — James William Steven Parker

Digital Signatures are cryptographic values generated using a private key and associated signing algorithm so that a verifier can use the corresponding public key to check whether the signature is valid for specified data. A digital signature is designed to provide evidence of data integrity and cryptographic origin or authenticity, subject to the security of the private key, algorithm, implementation, and surrounding trust model.

It can show that the data presented to the verifier corresponds to the data that was signed and that the signer possessed the relevant private key at the time of signing. Digital signatures are not simply electronic representations of handwritten signatures, nor are they equivalent to encrypting a document. Their security properties arise from asymmetric cryptography and a mathematically defined signing and verification process.

The basic digital-signature process involves a signing key pair and a signing algorithm. The signer uses the private key to generate a signature over the data, often after applying a cryptographic hash function. The verifier obtains the corresponding public key and uses the verification algorithm to determine whether the signature matches the supplied data and public key.

Hashing allows large or variable-length data to be represented by a fixed-length digest for algorithms that operate over a digest or internally incorporate hashing. A secure digital-signature scheme must prevent an attacker from producing a valid signature for modified data without possessing the private key. Modern algorithms and schemes include RSA-based signature schemes, ECDSA, EdDSA, and other constructions with different mathematical foundations and operational requirements.

Digital signatures provide integrity and authentication properties but do not automatically provide confidentiality. If a document is digitally signed and then transmitted without encryption, anyone who obtains it may still be able to read its contents. Encryption addresses confidentiality, whereas digital signatures address integrity and authenticity-related properties. The two can be combined when an application needs both confidentiality and evidence of signing.

Digital signatures also do not automatically prove the real-world identity of a signer: the verifier must know whose public key is being used and why that key should be trusted. Certificates, PKI, trusted directories, organisational identity systems, or other trust mechanisms can bind public keys to identities. Consequently, a technically valid signature can still be associated with the wrong identity if the public key was obtained through an untrusted or compromised channel.

Digital signatures are used in software distribution, document workflows, secure email, legal and commercial processes, package repositories, firmware, authentication protocols, and data exchange. Code signing allows software publishers to sign executable files, packages, updates, or other artefacts so that receiving systems can detect modification and potentially identify the publisher according to the ecosystem's trust model. Secure boot technologies can use cryptographic signatures to verify that authorised firmware or boot components are executed.

Signed email can provide integrity and sender authentication properties under technologies such as S/MIME or OpenPGP. In document systems, signatures can provide evidence that a specific digital representation was approved or signed, although the legal significance depends on jurisdiction, applicable regulations, identity assurance, signature method, and the surrounding evidence.

Key management is critical to digital-signature security. If the private signing key is stolen, an attacker may generate apparently valid signatures that relying parties attribute to the legitimate key holder. Private keys should therefore be protected according to their value and threat model, potentially using hardware security modules, smart cards, secure tokens, or hardware-backed platform facilities. Key generation must use secure randomness and appropriate cryptographic parameters, while signing systems should prevent unintended disclosure of sensitive key material.

If a signing key is compromised, affected certificates or trust relationships may need to be revoked or replaced, and relying parties may need mechanisms for determining which signatures were created before or after the compromise. Long-term validation can require preservation of certificates, trust information, timestamps, and algorithm information because cryptographic algorithms and key sizes can become obsolete over time.

Digital signatures have different properties from digital certificates. A certificate is an issuer-signed structure that binds a public key to an identity or defined usage, whereas a digital signature is generated by a private-key holder over particular data. A Certification Authority can sign a certificate, and the certificate holder can separately sign an application, document, message, or transaction using the private key associated with the certified public key. Digital signatures are also distinct from message authentication codes, or MACs.

A MAC uses a shared secret key known to both the generating and verifying parties, whereas a digital signature uses an asymmetric key pair and can be verified by parties that possess the public key. This difference affects scalability, non-repudiation discussions, key distribution, and trust architecture.

The term non-repudiation is frequently associated with digital signatures, but the concept requires qualification. A cryptographic signature can provide evidence that a particular private key was used to sign data, but determining who controlled that key, whether the key was compromised, whether the signing process was properly authorised, and whether the signer intended the action requires additional evidence and governance. Legal non-repudiation is therefore not guaranteed merely by mathematical signature validity.

Trusted timestamping can provide evidence that particular data existed in a signed form at a particular time, while certificate chains and revocation information can help establish the relevant identity and trust state. Long-term signature validation may require preserving cryptographic evidence and demonstrating that the algorithms and keys were considered trustworthy when the signature was created.

Digital-signature schemes have algorithm-specific security requirements. RSA signatures require correct padding schemes and parameter choices; ECDSA requires secure and correctly generated per-signature nonces, because nonce failures can expose private keys; EdDSA uses a different deterministic construction designed to avoid certain classes of nonce-generation problems. Implementations should use well-reviewed cryptographic libraries rather than implementing primitives independently. Signature verification must also be performed over exactly the intended data representation because canonicalisation, encoding, serialisation, and parsing ambiguities can cause security problems.

Systems should define the accepted algorithms, key sizes, signature formats, certificate constraints, and trust anchors explicitly rather than accepting any mathematically valid signature. The security of digital signatures therefore depends on cryptography, key protection, data handling, implementation quality, and the trust framework surrounding the public key.