Cryptage RSA
CyRux
Messages postés
164
Date d'inscription
Statut
Membre
Dernière intervention
-
ElementW Messages postés 4814 Date d'inscription Statut Contributeur Dernière intervention -
ElementW Messages postés 4814 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour a tous ^^
En ce moment je me penche sur le cryptage RSA pour l’intégrer sur mon site.
Jusque là pas de soucis tout marche sauf que je ne comprend pas la sécuritée ...
Exemple d'Open-Classroom : https://openclassrooms.com/fr/courses/1362801-la-cryptographie-asymetrique-rsa/1363037-et-le-chiffrage-comme-ca-se-passe
Clée publique : N=5141 C=7
Donc si un pirate récupère la clé publique et le message crypté il est censé ne pas pouvoir le décrypter ... Mais comme les caractères ASCII sont donc compris entre 0 et 255, je ne comprend pas pourquoi le pirate ne peut pas simplement tester toutes les valeurs comprises entre 0 et 255 :
Il sait donc que la première lettre est "B" et ainsi de suite pour les autres lettres ...
Je ne suis pas sur d'être bien clair, donc si vous ne comprenez pas ma question n'hésitez pas a me redemander.
Merci d'avance pour votre aide.
ps: je ne suis pas sur d'être dans la bonne section du forum.
--
En ce moment je me penche sur le cryptage RSA pour l’intégrer sur mon site.
Jusque là pas de soucis tout marche sauf que je ne comprend pas la sécuritée ...
Exemple d'Open-Classroom : https://openclassrooms.com/fr/courses/1362801-la-cryptographie-asymetrique-rsa/1363037-et-le-chiffrage-comme-ca-se-passe
Clée publique : N=5141 C=7
B⇔66⇒66^7⇒(667)mod(5141)=386
o⇔111⇒111^7⇒(111^7)mod(5141)=1858
n⇔110⇒110^7⇒(110^7)mod(5141)=2127
j⇔106⇒106^7⇒(106^7)mod(5141)=2809
o⇔111⇒111^7⇒(111^7)mod(5141)=1858
u⇔117⇒117^7⇒(117^7)mod(5141)=1774
r⇔114⇒114^7⇒(114^7)mod(5141)=737
(espace)⇔32⇒32^7⇒(32^7)mod(5141)=3675
!⇔33⇒33^7⇒(33^7)mod(5141)=244
Donc si un pirate récupère la clé publique et le message crypté il est censé ne pas pouvoir le décrypter ... Mais comme les caractères ASCII sont donc compris entre 0 et 255, je ne comprend pas pourquoi le pirate ne peut pas simplement tester toutes les valeurs comprises entre 0 et 255 :
1^7mod(5141)=1
2^7mod(5141)=128
3^7mod(5141)=2187
...
66^7mod(5141)=386
Il sait donc que la première lettre est "B" et ainsi de suite pour les autres lettres ...
Je ne suis pas sur d'être bien clair, donc si vous ne comprenez pas ma question n'hésitez pas a me redemander.
Merci d'avance pour votre aide.
ps: je ne suis pas sur d'être dans la bonne section du forum.
--
A voir également:
- Rsa cryptage
- Forfait internet rsa orange - Accueil - Box & Connexion Internet
- Programme de cryptage hellobox - Forum Réseaux sociaux
- Cle de cryptage tv panasonic - Forum Réseau
- Comment je configure ma télévision Panasonic a mon wifi - Forum Téléviseurs
- Cryptage en cours caméra ✓ - Forum Caméra
4 réponses
'lut, la limite (cryptanalytique) que tu as remarqué est abordée dans le chapitre "Un algorithme ne s'utilise pas n'importe comment" de "La cryptographie asymétrique avec RSA" sur ZesteDeSavoir ;)
Cours sur ZdS qui est d'ailleurs plus complet que sur cet atroce OpenClassroom.
from human import idiocy
del idiocy
Cours sur ZdS qui est d'ailleurs plus complet que sur cet atroce OpenClassroom.
from human import idiocy
del idiocy
Bonjour,
Le but de RSA n'est pas de crypter les caractères un par un, mais tout le texte, ou au moins tout un bloc de texte, d'un seul coup.
La sécurité de RSA repose sur la taille très grandes des valeurs en jeu, tu as pris 5141 comme clé publique, en réalité ce serait plutôt un nombre avec plusieurs centaines de chiffres...
Le but de RSA n'est pas de crypter les caractères un par un, mais tout le texte, ou au moins tout un bloc de texte, d'un seul coup.
La sécurité de RSA repose sur la taille très grandes des valeurs en jeu, tu as pris 5141 comme clé publique, en réalité ce serait plutôt un nombre avec plusieurs centaines de chiffres...
C'est une question intéressante. Comme l'ont dit KX et le tutoriel de gravgun, on ne crypte jamais des valeurs allant de 0 à 255 avec RSA, mais généralement des valeurs sur beaucoup plus d'octets. Avec 4 octets, tu as déjà plus d'un milliard de possibilités ! Si bien que tout tester prendrait encore plus de temps que de trouver la clé privée à partir de la clé publique (décomposition de N) ;)
Merci a tous pour vos réponses ^^
C'est vrai que OpenClassroom font des cours de moins en moins bien et complet ...
Je teste ça et je vous tient au courant ...
Mais du coup si je crypte tout le message d'un coup et que je récupère "222" comment savoir si la personne a écris "2" "22", "22" "2" ou "222" ?
--
C'est vrai que OpenClassroom font des cours de moins en moins bien et complet ...
Je teste ça et je vous tient au courant ...
Mais du coup si je crypte tout le message d'un coup et que je récupère "222" comment savoir si la personne a écris "2" "22", "22" "2" ou "222" ?
--
Mais du coup si je crypte tout le message d'un coup et que je récupère "222" comment savoir si la personne a écris "2" "22", "22" "2" ou "222" ?
Je ne comprends pas très bien ce que tu veux dire.
Imagine que la personne entre "Bonjour".
'B' = 62
'o' = 111
'n' = 110
'j' = 106
'o' = 111
'u' = 117
'r' = 114
' ' = 32
'!' = 33
Tous ces nombres sont stockés en mémoire sous forme d'octets (des suites de 8 bits), dans lequels ces nombres sont simplement écrits tels quels (en base binaire).
62 = 00111110
111 = 01101111
110 = 01101110
106 = 01101010
111 = 01101111
117 = 01110101
114 = 01110010
32 = 0100000
33 = 0100001
Tu mets ça bout à bout, et... magie ! Tu obtiens un nouveau nombre !
0011111001101111011011100110101001101111011101010111001001000000100001
Qui, si on le reconvertit en base décimale, donne 143965950597823088656 (et encore, dans le domaine du RSA, c'est un très petit nombre) ! Tu n'as plus qu'à le crypter avec une clé publique de quelques centaines de chiffres !
Et voilà, tu as crypté "Bonjour !" en une seule fois en faisant un bloc de 9 octets (tu peux en faire beaucoup plus à la fois encore, plus il y en a, mieux c'est (mais bien sûr c'est plus long à crypter) !).
Je ne comprends pas très bien ce que tu veux dire.
Imagine que la personne entre "Bonjour".
'B' = 62
'o' = 111
'n' = 110
'j' = 106
'o' = 111
'u' = 117
'r' = 114
' ' = 32
'!' = 33
Tous ces nombres sont stockés en mémoire sous forme d'octets (des suites de 8 bits), dans lequels ces nombres sont simplement écrits tels quels (en base binaire).
62 = 00111110
111 = 01101111
110 = 01101110
106 = 01101010
111 = 01101111
117 = 01110101
114 = 01110010
32 = 0100000
33 = 0100001
Tu mets ça bout à bout, et... magie ! Tu obtiens un nouveau nombre !
0011111001101111011011100110101001101111011101010111001001000000100001
Qui, si on le reconvertit en base décimale, donne 143965950597823088656 (et encore, dans le domaine du RSA, c'est un très petit nombre) ! Tu n'as plus qu'à le crypter avec une clé publique de quelques centaines de chiffres !
Et voilà, tu as crypté "Bonjour !" en une seule fois en faisant un bloc de 9 octets (tu peux en faire beaucoup plus à la fois encore, plus il y en a, mieux c'est (mais bien sûr c'est plus long à crypter) !).
tu peux en faire beaucoup plus à la fois encore, plus il y en a, mieux c'est (mais bien sûr c'est plus long à crypter
Il faudrait quand même pas que la taille du message soit plus grande que la taille de la clé parce que ça ne fonctionnerait plus.
Dans ce cas il faut découper le message en blocs de cette taille critique, et appliquer le cryptage sur chaque bloc.
Remarque : sur les très grands nombres ces calculs posent des problèmes de performances. Certains protocoles de communication (SSL par exemple, à vérifier) utilisent le RSA pour transmettre un seul bloc avec un contenu totalement aléatoire. Cet unique bloc crypté sert de masque binaire pour coder et décoder l'intégralité du message avec de simples xor, ce qui est beaucoup plus rapide à calculer.
Il faudrait quand même pas que la taille du message soit plus grande que la taille de la clé parce que ça ne fonctionnerait plus.
Dans ce cas il faut découper le message en blocs de cette taille critique, et appliquer le cryptage sur chaque bloc.
Remarque : sur les très grands nombres ces calculs posent des problèmes de performances. Certains protocoles de communication (SSL par exemple, à vérifier) utilisent le RSA pour transmettre un seul bloc avec un contenu totalement aléatoire. Cet unique bloc crypté sert de masque binaire pour coder et décoder l'intégralité du message avec de simples xor, ce qui est beaucoup plus rapide à calculer.
Le site du zéro était un très bon site... Il est vrai que les choses ont bien changé.
Sans compter le fait que c'est devenu une usine à gaz.
https://www.commentcamarche.net/contents/208-algorithme-de-chiffrement-rsa