PHP nombre trop grand (INF)

Résolu/Fermé
dream666 Messages postés 735 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 24 février 2014 - 26 nov. 2011 à 11:46
dream666 Messages postés 735 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 24 février 2014 - 27 nov. 2011 à 11:26
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.
A voir également:

3 réponses

dream666 Messages postés 735 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 24 février 2014 104
27 nov. 2011 à 11:26
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
pols12 Messages postés 1143 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 31 juillet 2019 119
26 nov. 2011 à 11:53
Salut
La fonction pow ne va-t-elle pas ?
https://www.php.net/manual/fr/function.pow.php
0
dream666 Messages postés 735 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 24 février 2014 104
26 nov. 2011 à 11:58
en testant elle me retourne inf

et même avec ça :

echo (pow($beta, $gamma)%253).'<br />'; // =0
0
pols12 Messages postés 1143 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 31 juillet 2019 119
26 nov. 2011 à 12:12
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é.
0
dream666 Messages postés 735 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 24 février 2014 104
26 nov. 2011 à 12:39
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 :)
0
dream666 Messages postés 735 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 24 février 2014 104
26 nov. 2011 à 13:11
je suis sur une piste "Exponentiation rapide"
0
dream666 Messages postés 735 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 24 février 2014 104
26 nov. 2011 à 13:18
jai un peu resolu le probleme :
echo bcpowmod($beta, $gamma, 253).'<br />';
reste a savoir si d'autre langage dont java, le font
0