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 ? Écrire à 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 !


Remarques et suggestions sont les bienvenues afin que dCode propose le meilleur outil 'Chiffre RSA' gratuit ! Merci !

Chiffre RSA

Déchiffrement du RSA

Indiquer les nombres connus, laisser le reste vide.












Lecteur de Certificat RSA



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 de chaînes codées en Base64

⮞ Aller à : Code Base64

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 le RSA ? (Principe de déchiffrement)

Le déchiffrement nécessite de connaître 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 de 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 possibles 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 valeurs 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é publique ($ 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

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

Pourquoi utiliser le nombre e=65537 pour RSA ?

La valeur $ e=65537 $ est issue d'un compromis cout-efficacité.

Une valeur de $ e $ trop grande augmente les temps de calculs. Une valeur de $ e $ trop petite augmente les possibilités d'attaque.

$ 65357 $ est un nombre de Fermat $ 65357 = 2^{2^4} + 1 $ ce qui permet une simplification dans la génération des nombres premiers.

Cette valeur est devenue un standard, il n'est pas recommandé de la changer dans le cadre d'échanges sécurisés.

Comment convertir le nombre en texte clair ?

Le nombre trouvé est un nombre entier représentant la valeur décimale du contenu en clair.

Généralement, ce nombre peut être transcrit selon le codage de caractères utilisé (comme ASCII ou Unicode).

Exemple : Le nombre entier 431164974181 a pour écriture hexadécimale 64,63,6F,64,65 soit les caractères D,C,O,D,E (en code ASCII)

Qu'est-ce qu'un certificat RSA ?

Un certificat RSA est un fichier texte contenant les données utiles à un échange cryptographique par RSA.

Il existe 2 types de certificat :

— le certificat public, qui commence par -----BEGIN PUBLIC KEY----- et qui contient les valeurs des clés publiques $ N $ et $ e $.

— le certificat privé, qui commence par -----BEGIN RSA PRIVATE KEY----- et qui contient toutes les valeurs : $ N $, $ e $, $ d $, $ q $ et $ p $. Ce fichier est généralement conservé précieusement et ne doit jamais être divulgué.

Quand le 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 pour "Chiffre RSA". Sauf code licence open source explicite (indiqué 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ées à "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 les accès API à "Chiffre RSA" ne sont pas publics, idem pour un usage hors ligne, PC, mobile, tablette, appli iPhone ou Android !
Rappel : dCode est gratuit.

Citation

Le copier-coller de la page "Chiffre RSA" ou de ses résultats est autorisée (même pour un usage commercial) tant que vous citez dCode !
L'exportation des résultats sous forme de fichier .csv ou .txt est gratuite en cliquant sur l'icone export
Citer comme source bibliographique :
Chiffre RSA sur dCode.fr [site web en ligne], consulté le 29/04/2024, https://www.dcode.fr/chiffre-rsa

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

Remarques et suggestions sont les bienvenues afin que dCode propose le meilleur outil 'Chiffre RSA' gratuit ! Merci !


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