$$\newcommand{\mtn}{\mathbb{N}}\newcommand{\mtns}{\mathbb{N}^*}\newcommand{\mtz}{\mathbb{Z}}\newcommand{\mtr}{\mathbb{R}}\newcommand{\mtk}{\mathbb{K}}\newcommand{\mtq}{\mathbb{Q}}\newcommand{\mtc}{\mathbb{C}}\newcommand{\mch}{\mathcal{H}}\newcommand{\mcp}{\mathcal{P}}\newcommand{\mcb}{\mathcal{B}}\newcommand{\mcl}{\mathcal{L}} \newcommand{\mcm}{\mathcal{M}}\newcommand{\mcc}{\mathcal{C}} \newcommand{\mcmn}{\mathcal{M}}\newcommand{\mcmnr}{\mathcal{M}_n(\mtr)} \newcommand{\mcmnk}{\mathcal{M}_n(\mtk)}\newcommand{\mcsn}{\mathcal{S}_n} \newcommand{\mcs}{\mathcal{S}}\newcommand{\mcd}{\mathcal{D}} \newcommand{\mcsns}{\mathcal{S}_n^{++}}\newcommand{\glnk}{GL_n(\mtk)} \newcommand{\mnr}{\mathcal{M}_n(\mtr)}\DeclareMathOperator{\ch}{ch} \DeclareMathOperator{\sh}{sh}\DeclareMathOperator{\th}{th} \DeclareMathOperator{\vect}{vect}\DeclareMathOperator{\card}{card} \DeclareMathOperator{\comat}{comat}\DeclareMathOperator{\imv}{Im} \DeclareMathOperator{\rang}{rg}\DeclareMathOperator{\Fr}{Fr} \DeclareMathOperator{\diam}{diam}\DeclareMathOperator{\supp}{supp} \newcommand{\veps}{\varepsilon}\newcommand{\mcu}{\mathcal{U}} \newcommand{\mcun}{\mcu_n}\newcommand{\dis}{\displaystyle} \newcommand{\croouv}{[\![}\newcommand{\crofer}{]\!]} \newcommand{\rab}{\mathcal{R}(a,b)}\newcommand{\pss}[2]{\langle #1,#2\rangle} $$
Bibm@th

Nombres de Mersenne, test de Lucas-Lehmer

Soit $n\in\mathbb N^*$. Le nombre de Mersenne d'indice $n$ est le nombre $M_n=2^n-1.$ Généralement, ces nombres sont considérés lorsque $n$ est un entier premier afin de tenter de fabriquer de grands nombres premiers. En effet, si $M_n$ est premier, alors $n$ est premier. Réciproquement, il est faux que $n$ premier entraîne $M_n$ premier et d'ailleurs on ne sait même pas si c'est vrai pour une infinité de nombres premiers. En revanche, on dispose d'un test particulièrement efficace pour tester si $M_p$ est premier, le test de Lucas-Lehmer :

Théorème : Soit $p$ un nombre premier impair. Soit $(S_n)_{n\geq 0}$ la suite définie par $S_0=4$ et pour tout $n\geq 0$, $S_{n+1}=S_{n}^2-2$. Alors $M_p$ est premier si et seulement si $M_p|S_{p-2}$.

Avec des notations plus mathématiques, $M_p$ est premier si, et seulement si, $S_{p-2}\equiv 0\ [M_p].$ Le reste dans la division euclidienne de $S_{p-2}$ par $M_p$ est parfois appelé résidu de Lucas-Lehmer de $p.$

Ce test est polynomial en le nombre de chiffres de $M_p$ puisqu'il faut calculer $p$ termes de la suite, et que $p$ est justement de l'ordre du nombre de chiffres de $M_p$. En outre, son implémentation informatique exploitant au mieux les particularités de l'arithmétique binaire est particulièrement efficace. C'est pourquoi le record du plus grand nombre premier jamais obtenu est toujours battu à l'aide de nombres de Mersenne. À titre d'exemple, $M_{13466917}$ possède 4053946 chiffres décimaux !

Le minime Marin Mersenne affirme en 1644 que $M_p$ est premier pour $p=2,3,5,7,13,17,19,31,67,127,257$, et composé (c'est-à-dire non premier) pour les $44$ autres valeurs de $p$ inférieures à $257$. Il commet en fait 5 erreurs ($M_{61}$, $M_{89}$ et $M_{107}$ sont premiers, $M_{67}$ et $M_{257}$ ne le sont pas). La cryptographie, qui fait usage de grands nombres premiers, ne fait jamais appel aux nombres de Mersenne. Ils sont en effet bien trop particuliers, puisque l'on sait que $M_p+1$ est une puissance de 2. Les chasseurs de code auraient alors beaucoup trop d'informations !
Consulter aussi...
Recherche alphabétique
Recherche thématique