Digital Signature
A digital signature uses public-key cryptography to mathematically prove who created data (authentication) and that it has not been tampered with (integrity). The signer creates a signature over a hash of the data with a private key, and the verifier checks that signature with the corresponding public key. RSA is sometimes described as encrypting with the private key and decrypting with the public key, but the elliptic-curve signatures (ECDSA) in wide use today have no decryption step at all: signing and verification are separate operations.
Combining QR codes with digital signatures addresses counterfeiting. Standard QR codes can be generated by anyone, making phishing QR codes easy to create. Embedding a digital signature in the QR data allows scanning apps to verify whether the code was issued by a legitimate authority.
The EU Digital COVID Certificate (EU DCC) demonstrated this at scale. It ran under Regulation (EU) 2021/953 from July 2021 until the regulation ceased to apply on 30 June 2023. Health authorities signed vaccination data with private keys and encoded it in QR codes. Verification apps checked those signatures against public keys, making forgery of even paper-printed QR codes extremely difficult. The signatures used ECDSA P-256 with SHA-256 (COSE ES256), so the check involved no decryption and worked offline at a border post.
How far a standard goes in defining signatures varies by field. ICAO already specifies signed data carried in two-dimensional codes such as QR as the Visible Digital Seal (VDS) in Doc 9303 Part 13, designed for offline verification. The signature in an e-passport (eMRTD), by contrast, sits in the IC chip embedded in the booklet rather than in a QR code. GS1 Digital Link is a URI syntax standard for expressing GS1 identifiers as web addresses, and signatures are not part of that specification, so signing has to be layered on separately when it is needed. For tickets, certificates, or product authentication, the starting point is to confirm which standard actually defines the signature. Whatever the standard, the verifier has to obtain the signer public key in advance, usually distributed as a trust list of certificates. The QR code itself carries only the signed data and the signature value, and offline verification works precisely because the key is already on the device.