Cryptage RSA

Fermé
CyRux Messages postés 164 Date d'inscription dimanche 4 janvier 2015 Statut Membre Dernière intervention 8 septembre 2016 - 15 juin 2016 à 17:33
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 16 juin 2016 à 18:25
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
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.





--

4 réponses

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
Modifié par gravgun le 15/06/2016 à 20:08
'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
0
paly2 Messages postés 254 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 15 février 2018 25
15 juin 2016 à 21:07
cet atroce OpenClassroom
Le site du zéro était un très bon site... Il est vrai que les choses ont bien changé.
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228 > paly2 Messages postés 254 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 15 février 2018
Modifié par gravgun le 15/06/2016 à 21:11
ZdS a justement été créé suite à la chute de SdZ, pour contrebalancer le trou qu'à laissée sa disparition. J'adorais le Site du Zéro, mais depuis la dérive (disparition progressive de Zozor, commercialisation du site, renom en OpenClassroom et destruction du style graphique, orientation vers les MOOC et supports payants, ...) je n'y vais plus et même crache dessus. À mon goût les admins ont gâché le potentiel du site.
Sans compter le fait que c'est devenu une usine à gaz.
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
15 juin 2016 à 21:09
Notons au passage que CommentCaMarche aussi dispose d'articles techniques :
https://www.commentcamarche.net/contents/208-algorithme-de-chiffrement-rsa
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228 > KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024
16 juin 2016 à 18:25
Vrai, mais ils ont une approche beaucoup plus technique que pédagogique :)
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
15 juin 2016 à 20:39
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...
0
paly2 Messages postés 254 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 15 février 2018 25
15 juin 2016 à 21:02
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) ;)
0
CyRux Messages postés 164 Date d'inscription dimanche 4 janvier 2015 Statut Membre Dernière intervention 8 septembre 2016 3
16 juin 2016 à 13:48
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" ?

--
0
paly2 Messages postés 254 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 15 février 2018 25
Modifié par paly2 le 16/06/2016 à 14:58
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) !).
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
16 juin 2016 à 17:52
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.
0