In
cryptography
Cryptography, or cryptology (from "hidden, secret"; and ''graphein'', "to write", or ''-logy, -logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of Adversary (cryptography), ...
, implicit certificates are a variant of
public key certificate
In cryptography, a public key certificate, also known as a digital certificate or identity certificate, is an electronic document used to prove the validity of a Key authentication, public key. The certificate includes the public key and informati ...
. A subject's
public key
Public-key cryptography, or asymmetric cryptography, is the field of cryptographic systems that use pairs of related keys. Each key pair consists of a public key and a corresponding private key. Key pairs are generated with cryptographic alg ...
is reconstructed from the data in an implicit certificate, and is then said to be "implicitly" verified. Tampering with the certificate will result in the reconstructed public key being invalid, in the sense that it is infeasible to find the matching private key value, as would be required to make use of the tampered certificate.
By comparison, traditional public-key certificates include a copy of the subject's public key, and a
digital signature made by the issuing
certificate authority
In cryptography, a certificate authority or certification authority (CA) is an entity that stores, signs, and issues digital certificates. A digital certificate certifies the ownership of a public key by the named subject of the certificate. Thi ...
(CA). The public key must be explicitly validated, by verifying the signature using the CA's public key. For the purposes of this article, such certificates will be called "explicit" certificates.
Elliptic Curve Qu-Vanstone (ECQV) is one kind of implicit certificate scheme. It is described in the document ''Standards for Efficient Cryptography 4 (SEC4)''.
This article will use ECQV as a concrete example to illustrate implicit certificates.
Comparison of ECQV with explicit certificates
Conventional explicit certificates are made up of three parts: subject identification data, a
public key
Public-key cryptography, or asymmetric cryptography, is the field of cryptographic systems that use pairs of related keys. Each key pair consists of a public key and a corresponding private key. Key pairs are generated with cryptographic alg ...
and a
digital signature which binds the public key to the user's identification data (ID). These are distinct data elements within the certificate, and contribute to the size of the certificate: for example, a standard
X.509
In cryptography, X.509 is an International Telecommunication Union (ITU) standard defining the format of public key certificates. X.509 certificates are used in many Internet protocols, including TLS/SSL, which is the basis for HTTPS, the secure ...
certificate is on the order of 1KB in size (~8000 bits).
An ECQV implicit certificate consists of identification data, and a single cryptographic value. This value, an
elliptic curve
In mathematics, an elliptic curve is a smooth, projective, algebraic curve of genus one, on which there is a specified point . An elliptic curve is defined over a field and describes points in , the Cartesian product of with itself. If the ...
point, combines the function of public key data and CA signature. ECQV implicit certificates can therefore be considerably smaller than explicit certificates, and so are useful in highly constrained environments such as Radio-frequency Identification
RFID
Radio-frequency identification (RFID) uses electromagnetic fields to automatically identify and track tags attached to objects. An RFID system consists of a tiny radio transponder called a tag, a radio receiver, and a transmitter. When tri ...
tags, where not a lot of memory or bandwidth is available.
ECQV certificates are useful for any ECC scheme where the private and public keys are of the form ( ''d'', ''dG'' ). This includes key agreement protocols such as
ECDH and
ECMQV
MQV (Menezes–Qu–Vanstone) is an authentication, authenticated protocol (cryptography), protocol for key agreement based on the Diffie–Hellman scheme. Like other authenticated Diffie–Hellman schemes, MQV provides protection against an active ...
, or signing algorithms such as
ECDSA
In cryptography, the Elliptic Curve Digital Signature Algorithm (ECDSA) offers a variant of the Digital Signature Algorithm (DSA) which uses elliptic-curve cryptography.
Key and signature sizes
As with elliptic-curve cryptography in general, the ...
. The operation will fail if the certificate has been altered, as the reconstructed public key will be invalid. Reconstructing the public key is fast (a single
point multiplication operation) compared to ECDSA signature verification.
Comparison with ID-based cryptography
Implicit certificates are not to be confused with
identity-based cryptography Identity-based cryptography is a type of public-key cryptography in which a publicly known string representing an individual or organization is used as a public key. The public string could include an email address, domain name, or a physical IP add ...
. In ID-based schemes, the subject's identity itself is used to derive their public key; there is no 'certificate' as such. The corresponding private key is calculated and issued to the subject by a
trusted third party.
In an implicit certificate scheme, the subject has a private key which is not revealed to the CA during the certificate-issuing process. The CA is trusted to issue certificates correctly, but not to hold individual user's private keys. Wrongly issued certificates can be
revoked, whereas there is no comparable mechanism for misuse of private keys in an identity-based scheme.
Description of the ECQV scheme
Initially the scheme parameters must be agreed upon. These are:
* The
elliptic curve parameters, including a generating point
of order
.
* An encoding function
with a public key reconstruction data
and an identifying information
encodes its arguments as a byte-block, and a corresponding
which extracts the
value from an encoding.
* A
hash function
A hash function is any Function (mathematics), function that can be used to map data (computing), data of arbitrary size to fixed-size values, though there are some hash functions that support variable-length output. The values returned by a ...
which accepts a byte-block and yields a hash value as an integer in the range