RSA et les grands nombres

bourysn Messages postés 3 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 1 décembre 2003 - 30 nov. 2003 à 18:39
bourysn Messages postés 3 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 1 décembre 2003 - 1 déc. 2003 à 02:23
Salut tout le monde.
En fait je dois ecrire un prog reseau qui utilise RSA. Pour se faire, je dois utiliser les fonctions dont les prototypes sont les suivants:
********************************************
#define TGDNB 16

/*
le type gdnb permet de representer les entiers entre
-2^(8*TGDNB) et 2^(8*TGDNB)
signe = -1, 0, +1 indique le signe
vals = represente les chiffres en base 256 du nombre
(en partant des chiffres de poids faible)
Le nombre representé est donc
signe*(vals[0]+vals[1]*256+...... +vals[TGDNB-1]*256^(TGDNB-1))
Pour le projet on pourra s'arranger pour n'utiliser
que des entiers positifs.
*/
typedef struct _gdnb {
int signe;
unsigned char vals[TGDNB];
} gdnb;

/* affiche nb (en base 10) */
void g_affiche(gdnb nb);

/* initialisation (OBLIGATOIRE !) */
void g_debut(void);

/* 0 */
extern gdnb g_zero;

/* 1 */
extern gdnb g_un;

/* 2 */
extern gdnb g_deux;

/* retourne 2 puissance n */
gdnb g_2puis(int n);

/* retourne x+y */
gdnb g_add(gdnb x, gdnb y);

/* retourne x-y */
gdnb g_sub(gdnb x, gdnb y);

/* retourne x*y */
gdnb g_mul(gdnb x, gdnb y);

/* retourne un nombre n aleatoire tel que min <= n <max */
gdnb g_random(gdnb min, gdnb max);

/* indique si x est premier */
int g_estpremier(gdnb x);

/* renvoie x puissance e modulo m */
gdnb g_puismod(gdnb x, gdnb e, gdnb m);

/* assigne u et v pour que x*(*u)+y*(*v)=1 (u est positif)*/
void g_bezout(gdnb x, gdnb y, gdnb *u, gdnb *v);

/* indique si x et y sont premiers entre eux */
int g_premiersentreeux(gdnb x, gdnb y);
***********************************************
***********************************************

Si quelqu'un est en mesure de me donner le code de l'une de ces fonctions.
Merci

4 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 nov. 2003 à 22:04
Fouille dans les sources, tu y trouveras des classes bigint.
BruNews, ciao...
0
bourysn Messages postés 3 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 1 décembre 2003
30 nov. 2003 à 22:37
Merci mais c'est pas exactement la même chose et en plus c'est en C++.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 nov. 2003 à 22:47
Excuse, je n'avais pas realise que tu voulais 'exactement' ton prog pret a l'emploi.
Si remettre les membres d'une classe en structure est trop fatiguant, alors...
BruNews, ciao...
0
bourysn Messages postés 3 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 1 décembre 2003
1 déc. 2003 à 02:23
T'as raison. En fait je n'y avais pas pensé.
Merci quand-même
0
Rejoignez-nous