Accueil > Forum > > > > très grand nombres en c++
très grand nombres en c++
dimanche 28 novembre 2010 à 15:19:23 |
très grand nombres en c++

pop70
|
Bonjour, j'essaie actuellement de faire un petit programme de cryptage basé sur le principe du RSA, seulement pour cela il faut manipuler des très grands nombres. Après quelques recherches j'ai trouvé le type int64_t qui code sur 64 bits. Mais j'en suis au cryptage et déjà se pose un problème :
lors de : NombreCrypté = Nombre^E (mod N) (le plus important quoi  )
J'ai essayé :
Code C/C++ : int64_t NOMBRE_CRYPTE = (int64_t)(pow((int64_t)NOMBRE, (int64_t)E)) % (int64_t) N ;
Mais j'ai l'impression que le résultat dépasse 64 bits (ou en tout cas quelque chose foire  ), car quelque soit le nombre, j'obtient le même résultat pour le nombre crypté.
De plus, dans ce cas ça ne me gène pas trop parce que c'est juste pour tester, mais je crois savoir que 64 bits et trop petit pour un algorithme RSA, car il est trop vite décrypté.
Donc j'aimerais savoir si vous avez une idée du problème, s'il vient de mon calcul, ou du type des variables et si c'est du type, comment faire...
Voilà, Merci d'avance
Pop70
|
|
dimanche 28 novembre 2010 à 18:03:34 |
Re : très grand nombres en c++

Chouchou182
|
Réponse acceptée !
Salut,
Pour la manipulation de grands nombres (de taille arbitraire) en C++, tu peux utiliser la NTL (et sa classe ZZ ou ZZ_p) :
NTL is a high-performance, portable C++ library providing data structures and algorithms for manipulating signed, arbitrary length integers, and for vectors, matrices, and polynomials over the integers and over finite fields.
(http://www.shoup.net/ntl/)
À propos de ton exemple, la fonction pow que je connais travaille sur des double, ce qui est mauvais dans ton cas: tu veux un calcul exact sur des entier et pas une approximation via les flottants.
Bonne prog,
--
Chouchou.
|
|
dimanche 28 novembre 2010 à 18:37:20 |
Re : très grand nombres en c++

pop70
|
Merci, je venais de voir aussi la librairie GMP, mais impossible de l'installer, trop d'erreurs (dommage)... Bref toujours dans un souci d'installation j'ai téléchargé la bibliothèque NTL 5.5.2 pour Windows d'après le lien que tu m'as donné, et je me retrouve avec ces dossiers :
C:\Program Files\CodeBlocks\WinNTL-5_5_2 qui contient :
-doc
-GetTime
-include
-MakeDesc
-misc
-src
-test
Dans aucun des dossiers je n'ai de .dll ou .lib, comment fais-je pour installer la libraire dans CodeBlock et la linker, qui pour l'instant, quand j'écris : #include <NTL/ZZ.h> , ne connais pas ?
(J'ai bien vu la documentation, mais il faut dire, qu'a mon grand regret, je n'ai pas un excellent niveau en anglais, surtout sur des termes techniques...)
Pop70
|
|
dimanche 28 novembre 2010 à 19:23:15 |
Re : très grand nombres en c++

pop70
|
J'ai réussi à linker le dossier include dans search directory/Compiler, sans rien déplacer et ça marche à un détaille près : je n'arrive pas à faire un cout<< ou un cin>> de mes valeurs, est-ce que c'est parce qu'il manque encore des fichier à linker ?
Pop70
|
|
lundi 29 novembre 2010 à 09:21:02 |
Re : très grand nombres en c++

Chouchou182
|
Salut, chez moi ça marche...
Code C/C++ : #include <NTL/ZZ.h>
int
main()
{
NTL::ZZ a, b, c;
std::cin >> a;
std::cin >> b;
c = (a+1)*(b+1);
std::cout << c << "\n";
return 0;
}
Sans rien lier d'autre que la ntl (enfin, en tous cas je ne le demande pas explicitement).
Code :
Qu'est-ce que ça dit chez toi ?
Presque hors sujet: concernant les soucis d'installation, tu peux mettre sur un coin de disque dur une distribution à la Ubuntu et puis: Code : apt-get install libntl-dev et ça marche !
Bonne prog,
--
Chouchou.
|
|
Cette discussion est classée dans : nombre, code, type, nombres, int64
Répondre à ce message
Sujets en rapport avec ce message
srand ? [ par sebleboss2002 ]
Salut à tous ! Je débute complètement en C, et je suis en train d'essayer de coder un jeu du "plus ou moins". Mais j'ai un problème au niveau de la g
générer des nombres [ par norton ]
bonjour,j'ai un problème j'ai cheché dans les sources sur ce site quelque chose qui pourai m'aider mais certaines sources sont trop compexe pour moi,j
calculer la somme des chiffres d'un nombre donné - NTL et nombres ZZ [ par scelw ]
Je dois faire un exercice.Sachant que c'est pour travailler avec des très grands nombres (de plusieurs millions de chiffres), il faut utiliser la clas
Type de variable inconnu [ par LordBob ]
Bonjour a tous,voila je regarder un code est je suis tomber sur un type de variable que je ne connaissais pas, j'espère que vous pourrez m'aider !!!HI
Unsigned __int64 et PRINTF [ par BeLZeL ]
Ce message n'attend pas de réponse. Il est là à titre indicatif. Il aidera les gens qui tomberont dessus via un moteur de recherche.En effet, j'ai un
[newbie] crée un fichier .h en C [ par CHKDSK2K ]
Bonjour à tous, Je crée un fichier en c qui permet de verrifier si ce que l'on entre est bien un chiffre, mais je voudrais mettre se code dans les pro
Programme sur les nombres entiers [ par K20 ]
Bonjour tout le monde ! Je suis nouveau ici et j'ai un problème avec un programme en C++ ... j'utilise Dev C++ 3.0. J'ai fait un programme qui permet
Fonction qui renvoie deux nombres [ par trystan007 ]
Salut à tous, j'aimerais créer une fonction qui me renverra le nombre d'erreurs, et un autre nombre. Je ne sais pas quoi faire, mis à part réecrire to
Nombres aléatoires [ par mondrone ]
Voila : Avant j'utilisais randomize() pour réinit le générateur de nombres aléatoires et rand() ou random(x) pour générer le nombre. Ca marchait impec
MultiByteToWideChar et tous ce qui va avec [ par BEAUBRIUS ]
BonjourJe suis sous windows et j'utilise VS2005Je voudrai lister les fichiers et sous repertoire d'un dossier.Apres quelque recherche a ce sujet , j'a
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|