PHP nombre trop grand (INF)

[Résolu/Fermé]
Signaler
Messages postés
735
Date d'inscription
mardi 8 juillet 2008
Statut
Membre
Dernière intervention
24 février 2014
-
Messages postés
735
Date d'inscription
mardi 8 juillet 2008
Statut
Membre
Dernière intervention
24 février 2014
-
Bonjour,

je dois manipuler un très grand nombre mai je ne peux pas car php me retourne infini
Comment puis je contourné ce problème ?

function puissance($x,$y)
{
$resultat=1;

for ($i=0;$i<$y;$i++)
$resultat *= $x;
return $resultat;
}

$beta = 115;
$gamma = 163;
echo puissance($beta,$gamma).'<br />';

je dois le faire dans le contexte du cryptage RSA.

Merci d'avance a tous ceux qui pourront m'aider a avancer dans ce problème.

3 réponses

Messages postés
735
Date d'inscription
mardi 8 juillet 2008
Statut
Membre
Dernière intervention
24 février 2014
102
j'ai trouver la solution sur
http://mathematiques.ac-dijon.fr/experiences/sequences/arithmetique/exponentiation_modulaire.htm

dans le cadre du cryptage RSA
c'est a dire A puissance n % m

pas facile d'expliquer :

il faut convertir en binaire la puissance.
chaque 1 ou 0 représente une opération

on commence par le (nombre a la puissance 1) modulo (le nombre du modulo)
on récupère le reste puis

le reste puissance 2 multiplier par
le nombre a la puissance 1 modulo (le nombre du modulo)


*le nombre a la puissance 1 est présent par rapport au binaire, si il y a un 0 on ne multiplie pas mai on passe direct au modulo (le nombre du modulo)

soit le reste*reste % x = reste_suivant
Sinon
(reste*reste ) * le nombre a la puissance1 % le nombre du modulo
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
1143
Date d'inscription
lundi 22 mars 2010
Statut
Membre
Dernière intervention
31 juillet 2019
111
Salut
La fonction pow ne va-t-elle pas ?
https://www.php.net/manual/fr/function.pow.php
Messages postés
735
Date d'inscription
mardi 8 juillet 2008
Statut
Membre
Dernière intervention
24 février 2014
102
en testant elle me retourne inf

et même avec ça :

echo (pow($beta, $gamma)%253).'<br />'; // =0
Messages postés
1143
Date d'inscription
lundi 22 mars 2010
Statut
Membre
Dernière intervention
31 juillet 2019
111
Désolé, je ne sais pas.

Peux-être dans les paramètres de PHP peut-on régler letemps de calcul maximum de PHP ? Je ne suis en tout cas pas en mesure de t'aider. Désolé.
Messages postés
735
Date d'inscription
mardi 8 juillet 2008
Statut
Membre
Dernière intervention
24 février 2014
102
j'ai pensé aussi a ça mai de toute manière je dois rester sur de l'algorithme
car le langage ne sera peut être pas du PHP.

merci de ton aide :)
Messages postés
735
Date d'inscription
mardi 8 juillet 2008
Statut
Membre
Dernière intervention
24 février 2014
102
je suis sur une piste "Exponentiation rapide"
Messages postés
735
Date d'inscription
mardi 8 juillet 2008
Statut
Membre
Dernière intervention
24 février 2014
102
jai un peu resolu le probleme :
echo bcpowmod($beta, $gamma, 253).'<br />';
reste a savoir si d'autre langage dont java, le font