Cryptage RSA
Fermé
benygel
Messages postés
29
Date d'inscription
samedi 23 avril 2011
Statut
Membre
Dernière intervention
24 mars 2013
-
19 mai 2012 à 12:51
benygel - 20 mai 2012 à 12:07
benygel - 20 mai 2012 à 12:07
A voir également:
- Cryptage RSA
- Forfait internet rsa orange - Accueil - Box & Connexion Internet
- Cle de cryptage tv panasonic - Forum Téléviseurs
- La clé de cryptage wpa ou wep - Forum Réseau
- Forum héritage et rsa ✓ - Forum Vos droits sur internet
- Programme de cryptage hellobox - Forum Réseaux sociaux
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
19 mai 2012 à 16:45
19 mai 2012 à 16:45
Bonjour;
Qu'est-ce qui vous pose problème ? Il suffit de considérer le fichier binaire comme une succession de bit. En regroupant x bits (x dépendant de n=pq), vous pouvez appliquer le chiffrement. Pour info, on dit chiffrer et non crypter.
Qu'est-ce qui vous pose problème ? Il suffit de considérer le fichier binaire comme une succession de bit. En regroupant x bits (x dépendant de n=pq), vous pouvez appliquer le chiffrement. Pour info, on dit chiffrer et non crypter.
benygel
Messages postés
29
Date d'inscription
samedi 23 avril 2011
Statut
Membre
Dernière intervention
24 mars 2013
Modifié par benygel le 19/05/2012 à 17:06
Modifié par benygel le 19/05/2012 à 17:06
Mes algorithmes manipulent uniquement des grands nombres et non des bits. J'aimerais donc chiffrer (merci pour l'info ;-) ) un fichier de caractères de taille quelconque.
Pour le passage en message numérique, j'utilise le code ascii, ainsi chaque caractère est assimilé à son code sur 3 chiffres (je ne sais pas s'il existe d'autres méthodes qui seraient plus efficaces?), puis j'applique l'algorithme RSA.
Si je comprends bien, pour résoudre le problème, il me faudrait découper le messages en paquets de même taille, chacun de longueur inférieure à n.
Merci pour ton aide
Pour le passage en message numérique, j'utilise le code ascii, ainsi chaque caractère est assimilé à son code sur 3 chiffres (je ne sais pas s'il existe d'autres méthodes qui seraient plus efficaces?), puis j'applique l'algorithme RSA.
Si je comprends bien, pour résoudre le problème, il me faudrait découper le messages en paquets de même taille, chacun de longueur inférieure à n.
Merci pour ton aide
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
19 mai 2012 à 17:28
19 mai 2012 à 17:28
<ital>Pour le passage en message numérique, j'utilise le code ascii, ainsi chaque caractère est assimilé à son code sur 3 chiffres (je ne sais pas s'il existe d'autres méthodes qui seraient plus efficaces?), puis j'applique l'algorithme RSA./ital>
Très mauvaise méthode. Cela équivaut à faire un simple chiffrement par substitution.
Il faut considérer le découpage par bit. Tu as calculé ton n. Tu connais donc la taille maximum du mot que tu peux chiffrer.
Très mauvaise méthode. Cela équivaut à faire un simple chiffrement par substitution.
Il faut considérer le découpage par bit. Tu as calculé ton n. Tu connais donc la taille maximum du mot que tu peux chiffrer.
Je comprends pas trop ce que tu veux dire par découpage par bits, alors que je n'utilise que des entiers.
En quoi est-ce une mauvaise méthode de numériser le message via la tables ascii. Il faut bien que j'utilise une bijection entre les caractères et les entiers, puisque mon message se compose de caractères et que mes opérateurs de RSA traite sur des entiers.
Si par exemple, je veux chiffrer le mot "bonjour", il faut que je le numérise avant de calculer le modulo de son exponentiation. D'après ce que tu me dis, il vaudrait mieux que je le numérise en bits? Si oui, comment faut-il que je m'y prenne?
Excepté cela, je suis d'accord que connaissant n, je ne peux chiffrer que des messages de valeur inférieure à n
En quoi est-ce une mauvaise méthode de numériser le message via la tables ascii. Il faut bien que j'utilise une bijection entre les caractères et les entiers, puisque mon message se compose de caractères et que mes opérateurs de RSA traite sur des entiers.
Si par exemple, je veux chiffrer le mot "bonjour", il faut que je le numérise avant de calculer le modulo de son exponentiation. D'après ce que tu me dis, il vaudrait mieux que je le numérise en bits? Si oui, comment faut-il que je m'y prenne?
Excepté cela, je suis d'accord que connaissant n, je ne peux chiffrer que des messages de valeur inférieure à n
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
20 mai 2012 à 11:30
20 mai 2012 à 11:30
Rien de mieux qu'un exemple pour chiffrer "Bonjour".
Avec le code ascii en hexa, on trouve :
42 6F 6E 6A 6F 75 72
Avec ta méthode, ton message chiffré sera : f(42) f(6F) f(6E) f(6A) f(6F) f(75) f(72). Grosso modo, à chaque lettre tu auras un code unique. Du coup, cela revient à un chiffrement par substitution dont le niveau de sécurité vaut rien.
Avec une bonne méthode, tu chiffres les blocs les plus grands. On admet que tu as une clé de 1024 bits. Si tu convertis tout en binaire, tu verras que t'obtiens un nombre avec 56 bits (7 octets). Tu peux le chiffrer en intégralité. Tu chiffreras donc f(426F6E6A6F7572).
En terme de sécurité, il y a une nette différence.
Avec le code ascii en hexa, on trouve :
42 6F 6E 6A 6F 75 72
Avec ta méthode, ton message chiffré sera : f(42) f(6F) f(6E) f(6A) f(6F) f(75) f(72). Grosso modo, à chaque lettre tu auras un code unique. Du coup, cela revient à un chiffrement par substitution dont le niveau de sécurité vaut rien.
Avec une bonne méthode, tu chiffres les blocs les plus grands. On admet que tu as une clé de 1024 bits. Si tu convertis tout en binaire, tu verras que t'obtiens un nombre avec 56 bits (7 octets). Tu peux le chiffrer en intégralité. Tu chiffreras donc f(426F6E6A6F7572).
En terme de sécurité, il y a une nette différence.
Ah ok, je comprends mieux ce que tu veux dire.
Cependant, je pense que je m'étais mal exprimé sur ma façon de chiffrer.
J'utilise des nombres premiers de 150 chiffres (en décimal), donc n a environ 300 chiffres.
De là, vu qu'en décimal, chaque caractère se code sur 3 chiffres, je peux donc chiffrer au maximum des blocs de 100 caractères. Je chiffre donc bien f(Bonjour) en un bloc et non f(B)f(o)f(n)...
Dans ce cas là, c'est correct, non?
Cependant, je pense que je m'étais mal exprimé sur ma façon de chiffrer.
J'utilise des nombres premiers de 150 chiffres (en décimal), donc n a environ 300 chiffres.
De là, vu qu'en décimal, chaque caractère se code sur 3 chiffres, je peux donc chiffrer au maximum des blocs de 100 caractères. Je chiffre donc bien f(Bonjour) en un bloc et non f(B)f(o)f(n)...
Dans ce cas là, c'est correct, non?