Le problème des certificats numériques est à l'opposé de celui de la signature électronique : si vous commandez des Cds sur Internet, comment être sûr que vous envoyez bien votre numéro de carte bleue au commerçant, et non à un pirate qui aurait usurpé son identité et donné sa propre clé publique. Cette fois, c'est donc du Destinataire que l'on veut être sûr, et non de l'Expéditeur.
Comme dans la vie courante, on a recours à des certificats. Pour passer un examen, il vous faut prouver votre identité, ie fournir une carte d'identité, passeport ou permis de conduire. Un organisme supérieur (l'Etat) a signé ces certificats, s'assurant auparavant (par un acte de naissance,...) qu'il s'agit bien de vous.
Les certificats numériques fonctionnent sur le même principe. Alice veut certifier que sa clé publique lui appartient. Elle envoie sa clé à un organisme de certification, ainsi que différentes informations la concernant (nom, email, etc...). Cet organisme vérifie les informations fournies par Alice, et ajoute au certificat son propre nom, une date limite de validité, et surtout une signature numérique. Cette signature est calculée de la façon suivante : à partir des informations du certificat, l'organisme calcule un résumé en appliquant une fonction de hachage connue, comme MD5. Puis il signe ce résumé en lui appliquant sa clé secrète.
Lorsque Bob veut envoyer son message à Alice, il télécharge le certificat de celle-ci sur un serveur de certificat (on parle de PKI, Public Key Infrastructure). Il calcule le résumé du certificat, puis applique la clé publique de l'organisme auteur du certificat à la signature électronique. Si cette quantité est égale au résumé, il est sûr qu'il a bien affaire à Alice.