Tres tres grand nombre

Résolu
thesimsone Messages postés 26 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 30 janvier 2009 - 21 août 2006 à 17:08
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008 - 22 août 2006 à 19:47
bonjour
je voudrai que quelqu'un m'explique comment gérer de tres tres grand nombre pour faire un prog de cryptage rsa et comment on fait la concaténation de nombres et de lettres.Merci

18 réponses

MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
21 août 2006 à 20:58
ben tout bete !! tu utilise les chaines de caracteres.
avec le c++ tu devrais trouver ton bonheur (nottament les ifstream string).
http://c.developpez.com/faq/cpp/?page=strings

bonne chance ;-)
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
21 août 2006 à 17:13
Le plus simple est d'utilsier une librairie existante (par ex gmp).
Un exemple ici

Par contre je n'ai pas compris ce que tu entends par "concaténation de nombres et de lettres"

_____________________________________
0
thesimsone Messages postés 26 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 30 janvier 2009
21 août 2006 à 18:05
1-D'accord! Mais je n'arrive pas à installer gmp(enfin si mais ca marche pas(non je n'ai pas oublié d'editer les liens)) et je voudrai juste savoir comment on fait pour gérer les grands nombres avec les classes

2-Ben je voulai savoir si il y avait un symbole spéciale(que je connais pas car je suis débutant) pour faire que

int a=3,b=5;
int c=0;

c=a ( symbole spécial ) b;

et que c=35 sans avoir besoin de passer par des *10,*100 etc...et je voulais savoir si c'était pareil avec les caracteres.Voila

Mais merci quand meme
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
21 août 2006 à 18:08
1- Quelle est l'erreur?
2- Non il n'y a pas de symbole spécial qui fait ca

_____________________________________
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thesimsone Messages postés 26 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 30 janvier 2009
21 août 2006 à 21:04
Sous dev c++

fichier : C:\...\Makefile.win

message:[Build Error][RSA.exe] Error 1

Justement j'avais déja trouvé cette exemple avant de poser ma question mais ca marchait pas!
0
thesimsone Messages postés 26 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 30 janvier 2009
21 août 2006 à 21:43
merci MuPuf


Je suis d'accord pour les caractères (d'ailleurs pourquoi j'ai demandé pour les caractères je suis con...)

Mais pour les nombres?...

Imaginons mon futur prog rsa qui mouline 5 caractères(sécurité minimale),:
 
pour économiser ma mémoire , en sachant qu'un char a 127 valeurs de caractères(http://fr.wikipedia.org/wiki/ASCII), au lieu de faire des *1000^x pour séparer les nombres, je fais des *128^x:

char a='A',b='B',c='C',d='D',e='E';

(type esperé que j'attend comme réponse, ou fonction ou class ou structure)f=a*128^4+b*128^3+c*128^2+d*128+e;

Mais ca tient pas dans mes caractere des base rien que le 'A'=65->65*128^4 (ni dans ma calculette d'ailleurs)

Et ensuite(si vous savez l'algorythme de rsa) il faut faire f^e %n (e est au moins de 3) alors ouille!!!

Donc je voudrai savoir comment faire tenir un (127*128^4) ^2(J'ai inventé une fonction qui ne calcul qu'une puissance à la fois et en faisant le modulo apres la puissance ce qui réduit la demande en mémoire) minimum dans une variable ou une structure ou une classe

La c'est precis

Et comme ca ca sera une occasion d'apprendre comment fait ce gmp!
0
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
21 août 2006 à 21:49
euh, un char c'est sur 8 bits, donc, 2^8=256 valeurs possibles ;-)
Mais j'ai un pote qui avait codé RSA, et il n'avait pas eu besoin de de grand entiers.
Je te rappelle que la clée ne doit pas depasser 128 bits pour des raisons légales.
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
21 août 2006 à 21:59
Tes sur MuPuf ? il me semble que l'on peut coder avec n'importe quelle clef des que c'est un cadre privé, enfin je suis pas sur.
0
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
21 août 2006 à 22:01
non c'est 128 bits pour tout le monde, à la limite si ça reste sur ton réseaux local ça doit etre toléré, mais sinon,  tu n'as pas droit à plus.
0
thesimsone Messages postés 26 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 30 janvier 2009
21 août 2006 à 22:31
J'adapterai la longeur de la clé pour etre dans la légalité!, pour le char(toujours dans la logique de réduire la taille), j'ai vu sur wikipedia que les caracteres en dessous de 0 (char variant de -128 à 127) sont les caractères spéciaux (les accents en font parti mais bon...) donc avec ces 127 possibilités ont a les majuscules, les minuscules la ponctuation classique et les commande du style retour à la ligne , espace...le strict nécessaire!!!
0
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
21 août 2006 à 22:34
hey hey, mais te casse pas la tete a reduire la taille, tu t'en fou, ça représente rien en mémoire ...
0
thesimsone Messages postés 26 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 30 janvier 2009
21 août 2006 à 22:43
voici un prog pour vous en rendre compte:

#include <cstdlib>
#include


using namespace std;


int main(int argc, char *argv[])
{char a=-128;
while(a<127){
printf("%c %ld\n",a,a);
a++;}
    system("PAUSE");
    return EXIT_SUCCESS;
}
0
thesimsone Messages postés 26 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 30 janvier 2009
21 août 2006 à 22:48
Oui mais le problème au début et d'ailleurs toujours c'est comment gérer la taille(car au début je faisait des test avec 3 caracteres maximum sinon c'etait trop grand et avec des *256*128*128 c'était déja gros!!!!!!!!Quand j'aurai la soluce j'augmenterai les frais!
0
thesimsone Messages postés 26 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 30 janvier 2009
21 août 2006 à 22:51
Non désolé je dis des conneries avec un caractères ca fais


caractere*256*256+caractereDeux*256+caractereTrois
0
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
22 août 2006 à 01:16
quand meme des fois bien chiant RSA, ça te fait augmenter méchament la taille de ce que tu encryptes.
Je m'étais fait un systeme de cryptage ultra rapide qui s'amusait avec des paquets. En premier tu lis 5000 octets, tu les inverses, puis tu recommences jusqu'a la fin du fichier. Puis tu prend les paquets et tu changes leurs ordres, aprés tu appliques un cryptage XOR sur l'ensemble, et finalement, c'est assez chaud de retrouver toutes les conneries que tu as faites dessus à moins de faire du reverse engenering, mais bon, au moins ça prend pas plus de place ni de ressources, vus que le processeur ne bossait qu'a 15% et les disques à 100% par contre, enfin bon, c'est qu'une suggestion pour te pencher sur d'autres algos.
0
thesimsone Messages postés 26 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 30 janvier 2009
22 août 2006 à 17:46
Oui mais on peut encore se demander comment fait la librairie gmp pour gérer les grands nombres.D'ailleurs j'ai enfin trouvé le bug dans ma compil pour le prog de RSA  que ma indiquer vecchio56.Je ne connais pas  les fonctionnalitées de la gmp mais dans son prog ca manque de technique (on voit pas les clés privés et publiques,il n'y a pas de fichier d'entrée ni de sortie, on ne conserve pas la meme clé...) mais je ne saurai pas faire ca et le programmeur a dit qu'il savait pas comment que l'on faisait . Alors si on pouvait savoir comment fait gmp pour gérer les grands nombres?(j'ai déja essayé d'éplucher le code source  et tt ce que j'ai découvert c'est que ce qui stock le grand nombre c'est une structure avec la taille des membres(?????), leurs nombres(????),et un pointeur(d'apres ma traduction des commentaires))
ALORS JE CHANGE LA DESCRIPTION DE MA QUESTION:
COMMENT FAIT GMP?????!!!!
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
22 août 2006 à 17:54
L'idée c'est de représenter un entier dans un tableau d'entiers (le pointeur doit représenter ca)
gmp ne fait pas exactement comme ca, mais par exemple on pourrait imaginer que le nombre 123 est stocké comme le tableau {1,2,3}
J'ai fait un code de ce genre:
http://www.cppfrance.com/code.aspx?ID=19105

_____________________________________
0
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
22 août 2006 à 19:47
oui je pense qu'il fait comme ça aussi, il recode toutes les opérations ensuite que l'on peut faire dessus.
0
Rejoignez-nous