Signature électronique et chiffrement mixte
Intégrité et authentification :
L’utilisation de la cryptographie asymétrique peut servir à garantir l’intégrité de données transmises ou stockées et à l’authentification du signataire (qui n’est pas forcément l’expéditeur).
On peut assurer l’intégrité de données et l’authentification du signataire en combinant algorithmes asymétriques et algorithmes de condensation (ou de hachage). On supposera pour l’instant que l’on ne souhaite pas assurer la confidentialité des données.
On passe les données à signer et à protéger en intégrité au travers d’une fonction de condensation. Le condensât obtenu est une empreinte unique des données. Rien n’empêche cependant un attaquant de modifier les données et de recalculer un condensât.
On va donc chiffrer le condensât à l’aide de ce qui aura été défini comme étant la clé privée de signature.
Pour s’assurer que les données n’ont pas été modifiées, pendant un transfert par exemple, le destinataire recalcule un condensât des données. Puis il déchiffre le condensât qui accompagnait les données lorsqu’il les a reçues grâce à la clé publique de l’expéditeur (qui est en général jointe aux données signées).
Il compare ensuite ces deux résultats.
S’ils sont différents, cela signifiera que les données ont été modifiées ou que la clé privée utilisée pour signer ne correspond pas à la clé publique utilisée pour vérifier.
Si les résultats sont égaux, outre la garantie d’intégrité, il sera assuré du fait que les données ont été signées avec la clé privée associée à la clé publique qu’il a utilisé pour déchiffrer le condensât. Il ne pourra être assuré de l’identité du signataire que si sa clé publique était encapsulée dans un certificat (qui associe de façon certaine un identifiant à une clé publique), ou bien qu’un lien de confiance direct lui permet de considérer la clé publique comme appartenant à telle personne comme ce peut être le cas avec PGP ou GPG).
Sur le schéma suivant, la fonction de condensation est SHA-1 et l’algorithme asymétrique est RSA.
Non-répudiation de la signature :
Dans le cas ou le signataire est le seul à posséder sa clé privée, et seulement dans ce cas, la signature électronique assure la non-répudiation car le signataire ne peut nier avoir fait cette opération si elle a été faite.
Il est à noter que beaucoup d’éditeurs ou de vendeurs de certificats clament qu’ils sont en mesure d’assurer la non-répudiation, mais en regardant de plus près on s’aperçoit parfois qu’il ne s’agit que d’arguments commerciaux sans fondements techniques (par exemple parce qu’ils offrent la possibilité de recouvrer les clés tout en confondant clé de signature et clé de chiffrement...)
Chiffrement mixte :
Le chiffrement mixte se définit par l’utilisation conjointe d’algorithmes symétriques et asymétriques pour chiffrer des données.
Pourquoi procède-t-on ainsi ?
Premièrement parce que les algorithmes symétriques sont plus rapides que les algorithmes asymétriques (voir la page sur RSA). De plus, comme on va le voir, dans le processus de chiffrement mixte, l’algorithme asymétrique ne chiffre qu’une clé symétrique... ce qui représente peu de bits.
Deuxièmement, cette méthode permet de chiffrer un même document pour plusieurs destinataires sans doubler à chaque fois la taille des données chiffrées. Si on ne chiffrait qu’avec les clés asymétriques, il faudrait en effet rechiffrer les données pour chaque nouveau destinataire.
La procédure de chiffrement :
L’expéditeur chiffre tout d’abord ses données à l’aide d’un algorithme symétrique dont la clé est aléatoire.
Il chiffre ensuite cette clé symétrique avec la clé publique du destinataire. S’il y a plusieurs destinataires, il fait des copies de la clé symétrique et les chiffre avec les clés publiques des destinataires respectifs.
Il envoie ensuite les données chiffrées, auxquelles il joint les clés symétriques chiffrées des destinataires : le tout est formaté (en un format comme CMS ou PKCS#7).
Chaque destinataire déchiffre la clé symétrique qui lui correspond à l’aide de sa clé privée correspondant à la clé publique utilisée par l’expéditeur.
Ayant obtenu la clé symétrique en clair, il déchiffre ensuite les données en utilisant l’algorithme symétrique spécifié dans le format envoyé par l’expéditeur.
Sur le schéma suivant, l’algorithme asymétrique est RSA et l’algorithme symétrique est CAST-128
11 septembre 2004
Partager sur Twitter | Partager sur LinkedIn