Les nombres de type RSA sont le produits de deux nombres premiers. J'avais pensé à un algorithme (faisable à la main pour les petits nombres) qui extrait ces deux nombres. Le seul problème, c'est que je ne sais pas s'il marche vraiment, et si c'est le cas, je ne sais pas s'il est potable niveau temps de calcul. Cette idée m'est venue un peu par hasard, j'essayais de me souvenir de l'algorithme de Héron pour extraire la racine carrée d'un nombre. Mon idée était de prendre un nombre RSA (ça ne marche pas si le nombre est un produit de plus de deux nombres premiers) et de trouver quel était son carré le plus proche : par exemple 187 est le produit de deux nombres premiers, 14² = 196 est le carré le plus proche.
Ainsi, on part de
14*14 > 187
donc on considère
14* (14-1) = 14*13 = 182 < 187
Puis, comme le nombre devient trop petit, on considère :
(14+1) * 13 = 15*13 = 195 > 187
Puis :
15*12 = 180 < 187
Et :
16*12 = 192 > 187
...
16*11 = 176 < 187
...
17*11 = 187 ! 17 et 11 sont les facteurs recherchés !
A la main, ça prend du temps, mais je pense qu'un ordinateur est tout à fait capable d'effectuer ces calculs simples très rapidement. C'est une hypothèse. Comme ce genre d'algorithme a probablement dû être inventé bien avant ma naissance, je le poste pas pour savoir si j'ai tort, mais pour savoir où j'ai tort ! Vous pensez qu'un tel algorithme permettrait de déterminer rapidement les deux facteurs d'un RSA ? J'ai pas encore essayé de le programmer sous Maple, mais je vais tenter. Bien que cela me semble hors d'atteinte, vu mon niveau actuel.
Bonne année !
-----