L'algorithme de chiffrement RSA est un algorithme de chiffrement asymétrique. Il est basé sur le problème mathématique de la factorisation de grands nombres et constitue également l’algorithme de chiffrement asymétrique le plus largement utilisé. RSA est largement utilisé dans le cryptage à clé publique et le commerce électronique.
RSA a été fondée en 1977 par Ron Rivest, Adi Shamir et Leonard Adelman Adleman). Tous trois travaillaient au MIT à l’époque. RSA est composé des premières lettres de leurs noms de famille épelées ensemble. (Apprentissage recommandé : Tutoriel vidéo PHP)
En 1973, Clifford Cocks, un mathématicien travaillant au siège des communications du gouvernement britannique, a écrit dans un document interne Un algorithme identique a été proposé dans , mais sa découverte a été classifiée et n'a été publiée qu'en 1997.
La difficulté de factoriser des entiers extrêmement grands détermine la fiabilité de l'algorithme RSA. Autrement dit, plus il est difficile de factoriser un très grand entier, plus l’algorithme RSA est fiable.
Si quelqu'un trouve un algorithme de factorisation rapide, la fiabilité des informations cryptées avec RSA diminuera certainement considérablement. Mais la possibilité de trouver un tel algorithme est très faible. Aujourd’hui, seules les clés RSA courtes peuvent être déchiffrées par force brute.
Jusqu'à présent, il n'existe aucun moyen fiable d'attaquer l'algorithme RSA dans le monde. Tant que la longueur de la clé est suffisamment longue, les informations chiffrées avec RSA ne peuvent pas être déchiffrées.
En 1983, le MIT a déposé une demande de brevet pour l'algorithme RSA aux États-Unis. Ce brevet a expiré le 21 septembre 2000. Étant donné que l’algorithme a été publié avant le dépôt de la demande de brevet, les droits du brevet ne sont pas reconnus dans la plupart des autres régions du monde.
Signification de base
Cryptosystème à clé publique RSA. Le soi-disant système de cryptographie à clé publique utilise différentes clés de chiffrement et clés de déchiffrement. Il s'agit d'un système de cryptographie dont « il est impossible, informatiquement, de dériver la clé de déchiffrement à partir de la clé de chiffrement connue ».
Dans le système de cryptographie à clé publique, la clé de cryptage (c'est-à-dire la clé publique) PK est une information publique, tandis que la clé de déchiffrement (c'est-à-dire la clé secrète) SK doit rester secrète. L'algorithme de chiffrement E et l'algorithme de déchiffrement D sont également publics. Bien que la clé de déchiffrement SK soit déterminée par la clé publique PK, puisque la fonction d'Euler phi(N) pour les grands nombres n ne peut pas être calculée, SK ne peut pas être calculée sur la base de PK.
C'est sur la base de cette théorie que le célèbre algorithme RSA est apparu en 1978. Il génère généralement d'abord une paire de clés RSA, dont l'une est une clé secrète et est enregistrée par l'utilisateur, l'autre est publique ; key , peut être rendue publique et peut même être enregistrée sur un serveur Web.
Pour améliorer la confidentialité, la clé RSA doit avoir une longueur d'au moins 500 bits, et 1024 bits sont généralement recommandés. Cela rend le chiffrement gourmand en calcul. Afin de réduire la quantité de calcul, lors de la transmission d'informations, une combinaison de méthodes de cryptage traditionnelles et de méthodes de cryptage à clé publique est souvent utilisée, c'est-à-dire que les informations sont cryptées avec une clé DES ou IDEA améliorée, puis une clé RSA est utilisée. pour chiffrer la clé de session et le résumé des informations. Une fois que l'autre partie a reçu le message, elle le déchiffre à l'aide de différentes clés et peut vérifier le résumé du message.
L'algorithme RSA est le premier algorithme pouvant être utilisé à la fois pour le cryptage et les signatures numériques. Il est également facile à comprendre et à utiliser. RSA est l'algorithme à clé publique le plus étudié. Depuis sa proposition il y a plus de trente ans, il a subi diverses attaques et a été progressivement accepté par les gens. Depuis 2017, il est généralement considéré comme l'un des meilleurs systèmes à clé publique. . un.
Pour plus d'articles techniques liés à PHP, veuillez visiter la colonne Tutoriel graphique PHP pour apprendre !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!