aléatoires c’est sans doute qu’on a du mal à savoir en quoi ils ne sont
pas le hasard pur.
Si l’on prend une suite de D.H LEHMER, peut on tout de même déterminer
le prochain nombre tiré si l’on connait déjà un certain nombre de nombre
issus de la suite. Existe-t-il déjà des réflexions à ce sujet.
Plus difficile et si l’on ne connait même pas la suite LEHMER utilisée
a-t-on un possibilité de la déterminer….
Merci d’avance
David
aléatoires c’est sans doute qu’on a du mal à savoir en quoi ils ne
sont pas le hasard pur.
C’est sans doute plutôt que le hasard pur n’existe pas. pg.
aléatoires c’est sans doute qu’on a du mal à savoir en quoi ils ne
sont pas le hasard pur.
C’est sans doute plutôt que le hasard pur n’existe pas. pg.
Peut-être mais dans le cas des suites congruentielles linéaires type
suite de Lehmer
Un = a*Un-1 + b mod c a,b,c bien choisi
il y a bien une suite algorithmique.
Alors connaissant quelques Un successifs puis je déterminer le U0 et
l’indice n du suivant ?
Et ma question finale est ce encore possible quand je ne connais pas
a,b, et c
aléatoires c’est sans doute qu’on a du mal à savoir en quoi ils ne
sont pas le hasard pur.
C’est sans doute plutôt que le hasard pur n’existe pas. pg.
Peut-être mais dans le cas des suites congruentielles linéaires type
suite de Lehmer
Un = a*Un-1 + b mod c a,b,c bien choisi
il y a bien une suite algorithmique.
Alors connaissant quelques Un successifs puis je déterminer le U0 et
l’indice n du suivant ?
Et ma question finale est ce encore possible quand je ne connais pas
a,b, et c
Sur un autre newsgroup fr.comp.algorithmes on m’a répondu
voir la page :
http://www.apprendre-en-ligne.net/random/cassercongru.html
Comment “casser” un générateur à congruence linéaire
Le but est de retrouver les paramètres qui ont abouti à une séquence pseudo-aléatoire donnée.
Cas 1: m est connu
Soit la suite obtenue par la formule xn=a·xn-1+b mod m. On a besoin des trois premiers nombres de la suite: x0, x1 et x2. Posons y1=x1-x0 et y2=x2-x1. On a la relation: y2 = a·y1 mod m, d’où l’on tire immédiatement:
a = y2y1-1 mod m, où y1-1 mod m est obtenu avec l’algorithme d’Euclide étendu. On obtient b facilement: b = (x1 – a·x0) mod m.
Exemple 1
On connaît le début de la séquence 97, 188, 235, 293, 604, 596, 412. On sait que le modulo est 1023.
- On calcule y1 = 188-97 = 91 et y2 = 235-188 = 47.
- L’algorithme d’Euclide étendu nous dit que l’inverse modulo 1023 de 91 = 697 = y1-1.
- On obtient donc a = 47·697 mod 1023 = 23 et b = (188 – 23·97) mod 1023 = 3.
Exemple 2
On connaît le début de la séquence 99, 234, 270, 75, 705, 873, 645. On sait que le modulo est 1023.
- On calcule y1 = 234-99 = 135 et y2 = 270-234 = 36.
- L’algorithme d’Euclide étendu nous dit que 99 n’a pas d’inverse modulo 1023!
On a affaire à un mauvais générateur: tous les nombres de la suite sont des multiples de 3.
Cas 2: m n’est pas connu (méthode de Plumstead-Boyar)
Prenons directement un exemple pour expliquer la méthode (on se référera aux références pour une théorie plus approfondie).
Soit le début de la séquence 234, 1227, 12158, 2475, 26787, 30101, 12498, 18328, 76, 11400.
Étape 1: calcul des différences
On calcule d’abord yi = xi-xi-1, pour i=1, …, n. Le nombre (n) de termes à choisir se détermine ainsi: il faut le plus petit n tel que le pgcd des n premiers termes soit 1 (mais prendre plus de termes n’est pas gênant). |
Étape 2:
Il faut trouver la solution de l’équation diophantienne c1y1 + c2y2 + … + cnyn = 1. La fonction Mathematica ExtendedGCD s’en charge (l’algorithme est une variante du théorème d’Euclide étendu)! On calcule ensuite la valeur a’ = c1y2 + c2y3 + … + cnyn+1. |
Étape 3:
Poser a1 = a’, et m1 = . Ensuite, pour j > 1, faire:
On s’arrête quand mj-1=mj |
Étape 4:
a = afin, m = mfin, b = x1 – a·x0 mod m. |
Fichier Mathematica
Le fichier téléchargeable ci-dessous permet de casser un générateur à congruence linéaire (m connu ou pas).
Références
- Kryptologie IV.2 Kryptoanalyse von Zufallsgeneratoren (en allemand):
- Lineare Kongruenzgeneratoren mit bekanntem Modul [PDF]
- Lineare Kongruenzgeneratoren mit unbekanntem Modul [PDF]
- Lineare Kongruenzgeneratoren mit bekanntem Modul [PDF]
- Cryptology: Cracking a LCG