Rechercher un outil
Chiffre RSA

Outil pour déchiffrer/chiffrer avec RSA. RSA est un algorithme asymétrique de cryptographie à clé publique créé par Ron Rivest, Adi Shamir et Len Adleman. C'est le plus utilisé dans l'échange de données sécurisé sur Internet

Résultats

Chiffre RSA -

Catégorie(s) : Cryptographie Moderne, Arithmétique

Partager
Partager
dCode et plus

dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Ecrire à dCode !


Rendez-vous sur notre communauté Discord dCode pour participer au forum d'entraide !
PS : Pour les messages codés, testez notre détecteur de chiffrement !


Grâce à vos remarques, réponses et commentaires pertinents, dCode peut développer le meilleur outil 'Chiffre RSA', alors écrivez-nous c'est gratuit ! Merci !

Chiffre RSA

Déchiffrement du RSA

Tous les calculs RSA sont réalisés avec des nombres entiers, merci de convertir les formats hexa ou fichiers binaires en entier avec les outils dCode proposés (ci-après) au besoin.












Attaque de Wiener (D petit)

Attaque possible si $ d<\frac{1}{3}N^{\frac{1}{4}} $ (voir FAQ)



Lecteur de Certificat RSA (Valeurs N et E)



Outils d'aide complémentaires

Calculer P et Q à partir de la clé publique N

Calculer N en multipliant P*Q

⮞ Aller à : Multiplication

Calculer Phi φ(N) en multipliant (P-1)*(Q-1)

⮞ Aller à : Multiplication

Calculer D l'inverse modulaire e^-1 mod φ(N)

⮞ Aller à : Inverse Modulaire

Génération de Nombres Premiers

Calculer l'exponentiation Modulaire A^B mod N

Conversion en Nombre Entier (Base 10 Décimal)

A partir d'une valeur Hexadécimale (Base 16)

⮞ Aller à : Hexadécimal (Base 16)

A partir d'un fichier (données binaires)

⮞ Aller à : Création de Fichier

Réponses aux Questions (FAQ)

Qu'est ce que le chiffre RSA ? (Définition)

Le chiffrement RSA (d'après les initiales de ses créateurs Rivest, Shamir et Adleman) est le plus répandu des algorithmes de cryptographie asymétrique. Basé sur des principes mathématiques et d'arithmétique des nombres premiers, il utilise des grands nombres, une clé publique et une clé privée, pour sécuriser les échanges de données sur Internet.

Comment encoder avec RSA ? (Principe de chiffrement)

Le chiffrement RSA est purement mathématique, tout message doit d'abord être codé par des nombres entiers (n'importe quel encodage fonctionne: ASCII, Unicode, voire A1Z26). Pour le chiffrement RSA a besoin des nombres $ n $ et $ e $ appelées les clés publiques.

Le message (numérique) est décomposé en nombres (inférieurs à $ n $), pour chaque nombre M, le message (numérique) chiffré C est $$ C \equiv M^{e}{\pmod {n}} $$

Exemple : Chiffrer le message R,S,A (encodé 82,83,65 en ASCII) avec la clé publique $ n = 1022117 $ et $ e = 101 $ soit $ C = 828365^{101} \mod 1022117 = 436837 $, donc le message chiffré est 436837.

Comment décoder par RSA ? (Principe de déchiffrement)

Le déchiffrement nécessite de connaitre la clé privée $ d $ et la clé publique $ n $. Pour tout message (numérique) chiffré C, le message (numérique) clair M se calcule modulo n : $$ M \equiv C^{d}{\pmod {n}} $$

Exemple : Déchiffrer le message C=436837 avec la clé publique $ n = 1022117 $ et la clé privée $ d = 767597 $, soit $ M = 436837^{767597} \mod 1022117 = 828365 $, 82,83,65 est le message clair (soit les lettres R,S,A)

Comment générer des clés RSA ?

RSA a besoin d'une clé publique (constituée de 2 nombres $ (n, e) $) et d'une clé privée (1 seul nombre $ d $).

— Sélectionner 2 nombres premiers distincts $ p $ et $ q $ (plus ils sont grands et plus le chiffrement sera robuste)

— Calculer $ n = p \times q $

— Calculer l'indicatrice d'Euler $ \phi(n) = (p-1)(q-1) $

— Sélectionner un entier $ e \in \mathbb{N} $, premier avec $ \phi(n) $ tel que $ e < \phi(n) $

— Calculer l'inverse modulaire $ d \in \mathbb{N} $, ie. $ d \equiv e^{-1} \mod \phi(n) $ (via l'algorithme d'Euclide étendu)

Avec ces nombres, le couple $ (n,e) $ est appelée la clé publique et le nombre $ d $ est la clé privée.

Exemple : $ p = 1009 $ et $ q = 1013 $ donc $ n = pq = 1022117 $ et $ \phi(n) = 1020096 $. Les nombres $ e = 101 $ et $ \phi(n) $ sont premiers entre eux et $ d = 767597 $.

Les clés sont renouvelées régulièrement afin d'éviter tous risques de divulgation de la clé privée. Il est indispensable ne ne jamais utiliser plusieurs fois la même valeur de p ou q pour éviter des attaques par recherche de PGCD.

Utiliser $ p $ et $ q $ identique est une très mauvaise idée, car la factorisation devient triviale $ n = p^2 $, mais dans ce cas particulier, noter que $ phi $ se calcule $ phi = p(p-1) $

Comment reconnaitre le chiffre RSA ?

Le message est entièrement numérique est normalement accompagné au moins d'une clé (numérique aussi).

En pratique les clés sont parfois affichés en hexadécimal, ou stockées dans un certificat (codé en base64).

La longueur des dépend de la complexité du RSA mis en oeuvre (1024 ou 2048 sont courants)

Le chiffrement RSA est utilisé dans le protocole HTTPS

Quelles sont les attaques possible du RSA ?

Méthode 1 : Factorisation en nombres premiers de $ n $ pour retrouver $ p $ et $ q $.

Le chiffre RSA repose sur l'hypothèse qu'il n'est pas possible de retrouver rapidement les valeurs $ p $ et $ q $, c'est pourquoi la valeur $ n $ est publique. Pour retrouver la clé privée, un pirate doit être en mesure de réaliser la décomposition en facteurs premiers du nombre $ n $ pour retrouver ses 2 facteurs $ p $ et $ q $. En pratique, cette décomposition n'est possible que pour les petites valeurs, c'est-à-dire une clé $ n $ comportant moins de 30 chiffres (pour les algorithmes et les ordinateurs actuels), entre 30 et 100 chiffres, compter plusieurs minutes ou heures, et au delà, le calcul peut durer plusieurs années. Avec $ p $ et $ q $ la clé privée $ d $ peut être calculée et les messages peuvent être déchiffrés.

Méthode 2 : Retrouver le facteur commun à plusieurs clés publiques $ n $

La génération des clés est aléatoire mais il n'est pas improbable qu'un facteur $ p $ (ou $ q $) puisse être utilisé pour calculer les valeur de 2 clés publiques $ n $ différentes. En calculant le PGCD de 2 clés, si la valeur trouvée est différente de 1, alors le PGCD est un premier facteur de $ n $ (donc $ p $ ou $ q $), en divisant $ n $ par le pgcd se trouve le second facteur ($ p $ ou $ q $).

Méthode 3 : Attaque par texte chiffré choisi

Etant donné une clé publiqué ($ n $, $ e $) et un message chiffré connu $ c \equiv m^e \pmod{n} $, il est possible de demander au correspondant de déchiffrer un message chiffré choisi $ c' $. En se basant sur la propriété $ m_1^e m_2^e \equiv (m_1 m_2)^e \pmod{n} $, le déchiffrement d'un message $ c' \equiv c \times r^e \pmod{n} $ avec $ r $ un nombre choisi (inversible modulo $ n $) renverra la valeur $ m \times r \pmod{n} $. En calculant $ m \times r \times r^{-1} \pmod{n} $ (avec $ r^{-1} $ l'inverse modulaire) se retrouve $ m $ le message original.

Méthode 4 : Problème des messages trop courts avec petit exposant e

Pour un exposant petit ($ e = 3 $) et un message $ m $ court (inférieur à $ n^{1/e} $) alors le message chiffré $ c = m^e $ est inférieur à $ n $, donc le calcul du modulo n'a pas d'effet et il est possible de retrouver le message $ m $ en calculant $ c^(1/e) $ (racine $ e $-ième).

Méthode 5 : Attaque de Wiener pour des clé privées $ d $ trop petites

Si la clé privée $ d $ est petite par rapport au message $ n $ et telle que $ d < \frac{1}{3} n^{\frac{1}{4}} $ et que $ p $ et $ q $ sont proches $ q < p < 2q $, alors en calculant des approximations de $ n/e $ à l'aide de fractions continues, il est possible de retrouver la valeur de $ p $ et $ q $ et donc la valeur de $ d $.

Comment déchiffrer le RSA sans la clé privée ?

Pour retrouver la clé privée, un pirate doit être en mesure de réaliser la décomposition en facteurs premiers du nombre $ n $ pour retrouver ses 2 facteurs $ p $ et $ q $. Pour les petites valeurs (jusqu'au million ou au milliard), c'est assez rapide avec les algorithmes et les ordinateurs actuels, mais au delà, lorsque les nombres $ p $ et $ q $ ont plusieurs centaines de chiffres, la décomposition nécessite en moyenne plusieurs centaines ou milliers d'années de calcul. Il existe des bases de données répertoriant les factorisations comme ici (lien)

Avec les nombres $ p $ et $ q $ la clé privée $ d $ peut être calculée et les messages peuvent être déchiffrés.

Quand RSA a-t-il été inventé ?

Ronald Rivest, Adi Shamir et Leonard Adleman ont décrit l'algorithme en 1977 puis l'ont breveté en 1983.

Code source

dCode se réserve la propriété du code source de "Chiffre RSA" en ligne. Sauf code licence open source explicite (indiqué CC / Creative Commons / gratuit), l'algorithme pour "Chiffre RSA", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les fonctions liée à "Chiffre RSA" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou les données, en téléchargement, script, ou copier-coller, ou les accès API à "Chiffre RSA" ne sont pas publics, idem pour un usage hors ligne, PC, tablette, appli iPhone ou Android ! Rappel : dCode est gratuit.

Besoin d'Aide ?

Rendez-vous sur notre communauté Discord dCode pour participer au forum d'entraide !
PS : Pour les messages codés, testez notre détecteur de chiffrement !

Questions / Commentaires

Grâce à vos remarques, réponses et commentaires pertinents, dCode peut développer le meilleur outil 'Chiffre RSA', alors écrivez-nous c'est gratuit ! Merci !


Source : https://www.dcode.fr/chiffre-rsa
© 2021 dCode — La 'boite à outils' indispensable qui sait résoudre tous les jeux / énigmes / géocaches / CTF.
Un problème ?