21/08/2003 1 Annexe 4 - Déclaration DIMONA
ANNEXE 4 : Signature digitale
Principes de la signature digitale
La signature digitale consiste à transformer, par des manipulations algorithmiques données, un message
original en un nouveau message (le message signé) auxquelles des données d’identification (idéalement,
celles de l’expéditeur) sont intimement liées. De la sorte, le destinataire du message pourra, par des
transformations algorithmiques appropriées appliquées au message d’origine, extraire du message signé
d’une part le message original, d’autre part les données d’identification en question.
NB : · On remarquera que la question de savoir si les données d’identification extraites sont
bien celles de l’expéditeur est une question qui n’est pas résolue ici. Cette question fait
l’objet des certificats, traités par ailleurs dans ce document.
· La problématique du cryptage du message est indépendante de la problématique de la
signature digitale, même si elle est techniquement fort proche (en ce sens que la
signature digitale fait appel à des techniques de cryptographie).
Standards
Afin de permettre une certaine flexibilité des produits de signature digitale, une série de standards sont
publiés sous l’égide de RSA Laboratories, la branche R&D de RSA Digital Security, Inc. Ces standards
sont intitulés PKCS: Public-Key Cryptography Standards. Jusqu’à présent douze d’entre eux, numérotés
de PKCS #1 à PKCS #12, ont été publiés, parmi lesquels les #2 et #4 sont obsolètes. Ces textes font
aussi référence constante aux standards ISO de la série 500 (X.500, X.501 et X.509), relatifs au
Répertoire (Directory), et font usage de la notation définie dans X.208 et X.209 (ASN.1: Abstract Syntax
Notation 1).
L’ensemble de ces textes constitue un standard actuel du marché. Un autre standard est apparu plus
récemment concernant la signature digitale, à savoir la signature XML. Ce standard n'est pas utilisé pour
le moment dans le cadre de DIMONA/DMFA/DRS.
Notons que d’autres ensembles d’algorithmes et de spécifications existent: citons par exemple PGP
(Pretty Good Privacy), dont certains offrent des performances ou des niveaux de sécurité équivalents
sinon meilleurs que ceux de PKCS. Cependant ces spécifications sont en général propriétaires.
Aspects pratiques
Les standards PKCS définissent essentiellement deux aspects de la signature digitale : les algorithmes à
utiliser et la syntaxe du message signé.
Techniques de signature
Le principe est extrêmement simple, et repose sur l’utilisation combinée d’algorithmes de hashing (MD2,
MD5, SHA-1) et d’algorithmes de cryptage asymétrique (RSA). Pour signer un message, l’expéditeur
calcule d’abord le “digest” du message d’origine à l’aide d’un algorithme au choix. Ensuite, il crypte ce
digest en utilisant sa clé privée par cryptage asymétrique. Il associe finalement à ce dernier résultat ses
données d’identification, contenues dans un certificat.
Le destinataire du message peut appliquer la technique inverse afin de vérifier la validité de la signature: il
extrait le certificat afin de déterminer l’identité de l’expéditeur supposé et sa clé publique; il utilise cette clé
publique pour décrypter le digest en utilisant le même algorithme de cryptage asymétrique que
l’expéditeur, et finalement, il calcule lui-même le digest du message reçu et le compare au digest extrait
de la signature: la concordance des valeurs des deux digests garantit l’authenticité du message.