Le cryptage RSA est l’épine dorsale d’une communication Internet sécurisée. Il s’agit d’un type de cryptographie à clé publique qui protège les e-mails, les transactions numériques et les données sensibles circulant sur les réseaux. L’algorithme porte le nom de ses créateurs : Ronald L. Rivest, Adi Shamir et Leonard M. Adleman. Ils ont développé le système alors qu’ils enseignaient au Massachusetts Institute of Technology.
La sécurité du RSA repose sur un obstacle mathématique simple, facile à créer mais presque impossible à inverser. Un utilisateur commence par choisir deux grands nombres premiers, p et q. Ces nombres sont si grands que les multiplier pour obtenir n est trivial, mais factoriser n en p et q est prohibitif sur le plan informatique.
Pensez-y de cette façon : multiplier deux nombres énormes prend une fraction de seconde. Vous essayez de déterminer quels deux nombres ont été multipliés pour obtenir ce résultat ? Avec la technologie actuelle, cela pourrait prendre des milliards d’années.
Depuis 2015, les normes de sécurité du gouvernement américain exigent que le module n soit d’au moins 2 048 bits. En termes décimaux, cela signifie que p et q comportent chacun environ 308 chiffres, créant un nombre à 617 chiffres pour n. Les plus grands nombres que nous avons réussi à prendre en compte ne représentent que la moitié de cette taille. La difficulté de factorisation double à peu près tous les trois chiffres supplémentaires du module. Cette croissance exponentielle de la complexité garantit que les clés à 617 chiffres restent à l’abri des attaques par force brute pendant des décennies.
Les mécanismes de génération de clés
Une fois p et q sélectionnés, le système génère une clé publique et une clé privée. L’utilisateur choisit un entier e inférieur à n. Ce nombre doit être relativement premier au produit de (p – 1) et (q – 1). En clair, e ne partage aucun facteur commun avec ce produit autre que 1.
Ce choix spécifique garantit l’existence d’un autre nombre d. Lorsque vous multipliez e par d et divisez par le plus petit commun multiple de (p – 1) et (q – 1), le reste est 1.
Trouver d est facile si vous connaissez p et q. L’algorithme euclidien le calcule en quelques instants. Mais si vous ne connaissez pas p et q, trouver d à partir de e est tout aussi difficile que factoriser n. Cette difficulté constitue la base même de la cryptosécurité de RSA.
La sécurité de RSA n’est pas magique ; c’est des mathématiques. Plus précisément, il s’agit de l’asymétrie entre une multiplication facile et une factorisation impossible.
Clés publiques et clés privées
Les étiquettes d et e décrivent des fonctions et non des rôles stricts. Les clés sont interchangeables. Cette flexibilité permet à RSA de remplir deux objectifs distincts : la confidentialité et l’authentification.
Pour créer un canal secret, l’utilisateur A publie e et n dans un annuaire public. L’utilisateur A garde d secret. Lorsque quelqu’un souhaite envoyer un message privé à A, il convertit le message en nombres inférieurs à n et le crypte en utilisant e et n. Seul A peut le déchiffrer car seul A détient d. L’hypothèse (et des preuves solides) veut que personne d’autre ne puisse déchiffrer le message sans prendre en compte n.
L’authentification fonctionne différemment. L’utilisateur A publie d et n et garde e secret. L’utilisateur B veut vérifier qu’il parle à A. B envoie un message de défi à A. Si A renvoie la version cryptée en utilisant e, B peut la déchiffrer en utilisant le public d. Si le message déchiffré correspond au défi, B sait que l’expéditeur possède e. Puisque seul A a e, l’identité est vérifiée.
Signatures numériques et hachage
La signature numérique ajoute une couche de complexité. Cela nécessite une fonction de hachage cryptosécurisée. Il s’agit d’une fonction publique qui compresse n’importe quel message dans un résumé plus petit. Chaque élément du résumé dépend de chaque élément du message d’origine. Modifiez un bit dans le message d’origine et environ la moitié des bits du résumé seront inversés.
Un hachage crypto-sécurisé rend impossible, sur le plan informatique, la recherche d’un message produisant un résumé prédéfini spécifique. Il est également difficile de trouver un message différent avec le même résumé qu’un message connu.
Pour signer un message, A crypte le résumé avec son secret e et l’ajoute au message. Le message lui-même n’a pas besoin d’être secret. N’importe qui peut utiliser la clé publique d de A pour déchiffrer la signature et récupérer le résumé. Ils calculent ensuite indépendamment le résumé du message reçu. Si les deux résumés correspondent, la signature est valide. Seul A aurait pu chiffrer le résumé car seul A connaît e.
La réalité hybride
Cette sécurité a un coût. Le chiffrement asymétrique implique beaucoup plus de calculs que le chiffrement symétrique (à clé unique). Cette forte demande de traitement réduit considérablement le débit. Depuis une vingtaine d’années, les algorithmes à clé unique atteignent des débits 1 000 à 10 000 fois supérieurs aux algorithmes à deux clés pour des niveaux de sécurité comparables.
Étant donné que RSA est lent, il est rarement utilisé pour chiffrer directement de grandes quantités de données. Au lieu de cela, il alimente des systèmes hybrides. RSA gère le gros du travail de l’authentification et des signatures numériques. Il échange également en toute sécurité une clé de session générée aléatoirement. Une fois cette clé partagée, le système passe à un algorithme à clé unique pour la transmission à grande vitesse des données réelles. À la fin de la session, la clé est supprimée.
Cette combinaison nous offre le meilleur des deux mondes. Nous bénéficions de l’échange sécurisé de clés de cryptographie à clé publique avec la vitesse du cryptage symétrique pour la majeure partie de nos données.
Le calcul tient la route. Les clés restent en sécurité. Mais à mesure que la puissance de calcul augmente, la définition de « grand » change. Ce qui est incassable aujourd’hui pourrait être résolu demain. Nous continuons à construire des nombres premiers plus élevés. Nous espérons que l’écart entre multiplication facile et factorisation dure restera suffisamment grand pour protéger nos vies numériques.






























