cryptographie asymétrique (cryptographie à clé publique)
La cryptographie asymétrique, également appelée cryptographie à clé publique, utilise des clés publiques et privées pour chiffrer et déchiffrer des données. Ces clés sont simplement de grands nombres qui sont associés par paires, mais pas identiques (asymétriques). Une clé de la paire peut être partagée avec tout le monde ; elle est appelée clé publique. L'autre clé de la paire est tenue secrète, c'est la clé privée. L'une ou l'autre de ces clés peut servir à chiffrer un message ; c'est alors la clé opposée à celle ayant servi au chiffrement qui est utilisée pour le déchiffrement.
De nombreux protocoles, tels que SSH, OpenPGP, S/MIME et SSL/TLS reposent sur la cryptographie asymétrique pour leurs fonctions de chiffrement et de signature numérique. Cette technique est également utilisée dans des logiciels, tels que les navigateurs, qui ont besoin d'établir une connexion sécurisée sur un réseau peu sûr comme Internet ou de valider une signature numérique. La puissance du chiffrement est directement liée à la taille de la clé. De ce fait, un doublement de la longueur de la clé renforce le chiffrement de façon exponentielle, au détriment toutefois des performances. Cependant, à mesure que la puissance de traitement augmente et que des algorithmes de factorisation plus efficaces sont découverts, il devient possible de factoriser des nombres de plus en plus élevés.
Pour garantir la confidentialité, l'intégrité, l'authenticité et la non-répudiabilité du chiffrement asymétrique, les utilisateurs et les systèmes doivent s'assurer qu'une clé publique est authentique, qu'elle appartient bien à la personne ou à l'entité qui la revendique et qu'elle n'a pas été falsifiée ni remplacée par un tiers malveillant. Il n'existe aucune solution idéale à ce problème d'authentification de la clé publique. L'approche la plus courante consiste en une infrastructure à clé publique (PKI, Public Key Infrastructure), par laquelle des autorités de certification de confiance se portent garantes de la propriété des paires de clés et des certificats, tandis que les produits de chiffrement basés sur le modèle Pretty Good Privacy (PGP), dont OpenPGP, utilisent un système d'authentification décentralisé appelé « Web of Trust » (WOT), qui repose sur des approbations individuelles du lien entre un utilisateur et une clé publique.
Whitfield Diffie et Martin Hellman, chercheurs à l'Université de Stanford, ont été les premiers à proposer publiquement le chiffrement asymétrique dans leur article de 1977 intitulé « New Directions in Cryptography ». Quelques années auparavant, le concept avait déjà été proposé de façon indépendante et en secret par James Ellis, qui travaillait pour le service de renseignement et de sécurité britannique, le Government Communications Headquarters (GCHQ). L'algorithme asymétrique, tel qu'il est exposé dans l'article de Diffie-Hellman, utilise des nombres élevés à des puissances spécifiques pour produire des clés de déchiffrement.
L'algorithme RSA (Rivest-Shamir-Adleman), le plus répandu, est intégré au protocole SSL/TLS qui sert à assurer la sécurité des communications sur un réseau informatique. Si RSA offre autant de sécurité, c'est parce qu'il est très difficile de factoriser de grands entiers qui sont eux-mêmes le produit de deux grands nombres premiers. Multiplier deux grands nombres premiers est facile, mais la sécurité par cryptographie à clé publique repose sur la difficulté qu'il y a à déterminer les nombres d'origine à partir du total (la factorisation). En effet, on considère que le temps nécessaire pour factoriser le produit de deux nombres premiers suffisamment élevés dépasse les capacités de la plupart des pirates, à l'exception des organismes d'Etat, les seuls susceptibles d'avoir accès à une puissance de traitement de grande envergure. Les clés RSA font généralement 1024 ou 2048 bits, mais les experts pensent que les clés de 1024 bits pourraient être décryptées à brève échéance. C'est la raison pour laquelle l'administration comme le secteur privé commencent à adopter des clés d'une longueur minimale de 2048 bits.
La cryptographie à courbe elliptique (ECC, Elliptic Curve Cryptography) fait de plus en plus d'adeptes parmi les spécialistes de la sécurité pour mettre en oeuvre le chiffrement à clé publique en remplacement de RSA. Il s'agit d'une technique basée sur la théorie des courbes elliptiques, qui permet de créer des clés de chiffrement plus rapides, plus petites et plus efficaces. L'ECC génère des clés par le biais des propriétés de l'équation d'une courbe elliptique. Pour décrypter l'ECC, il faut calculer le logarithme discret d'une courbe elliptique, ce qui s'avère beaucoup plus difficile que la factorisation. En conséquence, les clés ECC peuvent être bien plus petites que celles exigées par l'algorithme RSA, tout en assurant une sécurité équivalente avec une puissance de calcul et une consommation électrique inférieures, ce qui rend cette technique plus adaptée aux applications mobiles.
Signatures numériques et cryptographie asymétrique
Basées sur la cryptographie asymétrique, les signatures numériques peuvent apporter la preuve de l'origine, de l'identité et de l'état d'un document électronique, d'une transaction ou d'un message, tout en attestant du consentement éclairé du signataire. Pour créer une signature numérique, le logiciel qui appose une signature, par exemple un logiciel de messagerie, crée un code de hachage unidirectionnel des données électroniques à signer. La clé privée de l'utilisateur sert ensuite à chiffrer le code de hachage, renvoyant une valeur propre aux données hachées. C'est ce code de hachage chiffré, accompagné d'autres informations telles que l'algorithme de hachage, qui constitue la signature numérique. Toute modification apportée aux données, même si elle ne concerne qu'un seul bit, générera une valeur de hachage différente. Cet attribut permet à d'autres de valider l'intégrité des données en utilisant la clé publique du signataire pour déchiffrer le code de hachage. Si le code déchiffré correspond à un second code de hachage des mêmes données, preuve est faite que les données n'ont pas changé depuis la signature. Si les codes de hachage sont différents, l'alternative est soit que les données ont été falsifiées (ce qui entraîne un échec d'intégrité), soit que la signature a été créée à partir d'une clé privée qui ne correspond pas à la clé publique présentée par le signataire (ce qui se traduit par un échec d'authentification).
Par ailleurs, le recours à une signature numérique permet d'éviter que le signataire nie avoir signé (propriété de non-répudiation). Si un signataire nie une signature numérique valide, c'est soit que sa clé privée a été compromise, soit qu'il ment. Dans de nombreux pays, notamment aux Etats-Unis, les signatures numériques ont la même valeur juridique que les signatures classiques.