Mes premières constatations :
- Ta "génération de hasard" possède des biais multiples.
Mes premières constatations :
- Ta "génération de hasard" possède des biais multiples.
Mes premières constatations :
- Ta "génération de hasard" possède des biais multiples.
Mes premières constatations :
- Ta "génération de hasard" possède des biais multiples.
je luis aurai bien proposer quelque chose mais je me suis fait jeter
sûrement à juste titre
http://remyaumeunier.chez-alice.fr/alea.html
voir fin de page
Mes premières constatations :
- Ta "génération de hasard" possède des biais multiples.
je luis aurai bien proposer quelque chose mais je me suis fait jeter
sûrement à juste titre
http://remyaumeunier.chez-alice.fr/alea.html
voir fin de page
Mes premières constatations :
- Ta "génération de hasard" possède des biais multiples.
je luis aurai bien proposer quelque chose mais je me suis fait jeter
sûrement à juste titre
http://remyaumeunier.chez-alice.fr/alea.html
voir fin de page
Bonjour,
Je ne vois aucun problème dans ma génération de hasard. [...] Si quelqu'un pense
qu'il y a des biais dans ma génération de hasard je l'inviterais à les
définir et en donner la raison.
For Rép3 = 1 To VarNombCaraK
VarCaraC1 = Val(Asc(Mid(VarCaraAle2, Rép3, 1)))
VarCaraC2 = Val(Asc(Mid(VarCaraAle2, Rép3 + VarNombCaraK, 1)))
VarCaraC3 = Val(Asc(Mid(V3, Rép3, 1)))
VarChifDroitAsc = Val(Right(Str(Asc(Mid(V3, Rép3, 1))), 1))
Randomize (Timer + VarCaraC1 + (Rép3 * VarChifDroitAsc))
V1 = V1 & Chr(((VarCaraC1 * VarChifDroitAsc) + Rép3 +
Int((VarCaraC2 * Rnd) + VarCaraC3) + Int((256 * Rnd) + 0)) Mod 256)
'-V2 = 2e clef de session.
V2 = V2 & Chr(((VarCaraC2 * VarChifDroitAsc) + (Rép3 * VarCaraC3)
+ VarCaraC1 + VarCaraC4 + Int((256 * Rnd) + 0)) Mod 256)
Next Rép3
Bonjour,
Je ne vois aucun problème dans ma génération de hasard. [...] Si quelqu'un pense
qu'il y a des biais dans ma génération de hasard je l'inviterais à les
définir et en donner la raison.
For Rép3 = 1 To VarNombCaraK
VarCaraC1 = Val(Asc(Mid(VarCaraAle2, Rép3, 1)))
VarCaraC2 = Val(Asc(Mid(VarCaraAle2, Rép3 + VarNombCaraK, 1)))
VarCaraC3 = Val(Asc(Mid(V3, Rép3, 1)))
VarChifDroitAsc = Val(Right(Str(Asc(Mid(V3, Rép3, 1))), 1))
Randomize (Timer + VarCaraC1 + (Rép3 * VarChifDroitAsc))
V1 = V1 & Chr(((VarCaraC1 * VarChifDroitAsc) + Rép3 +
Int((VarCaraC2 * Rnd) + VarCaraC3) + Int((256 * Rnd) + 0)) Mod 256)
'-V2 = 2e clef de session.
V2 = V2 & Chr(((VarCaraC2 * VarChifDroitAsc) + (Rép3 * VarCaraC3)
+ VarCaraC1 + VarCaraC4 + Int((256 * Rnd) + 0)) Mod 256)
Next Rép3
Bonjour,
Je ne vois aucun problème dans ma génération de hasard. [...] Si quelqu'un pense
qu'il y a des biais dans ma génération de hasard je l'inviterais à les
définir et en donner la raison.
For Rép3 = 1 To VarNombCaraK
VarCaraC1 = Val(Asc(Mid(VarCaraAle2, Rép3, 1)))
VarCaraC2 = Val(Asc(Mid(VarCaraAle2, Rép3 + VarNombCaraK, 1)))
VarCaraC3 = Val(Asc(Mid(V3, Rép3, 1)))
VarChifDroitAsc = Val(Right(Str(Asc(Mid(V3, Rép3, 1))), 1))
Randomize (Timer + VarCaraC1 + (Rép3 * VarChifDroitAsc))
V1 = V1 & Chr(((VarCaraC1 * VarChifDroitAsc) + Rép3 +
Int((VarCaraC2 * Rnd) + VarCaraC3) + Int((256 * Rnd) + 0)) Mod 256)
'-V2 = 2e clef de session.
V2 = V2 & Chr(((VarCaraC2 * VarChifDroitAsc) + (Rép3 * VarCaraC3)
+ VarCaraC1 + VarCaraC4 + Int((256 * Rnd) + 0)) Mod 256)
Next Rép3
Et en continuant comme ça pour l'ensemble de ton calcul tu trouveras
sûrement que chaque bit que tu sors n'a pas la probabilité 1/2 d'être à
zéro : tu as baisé ton algo en rajoutant des étapes bizarres et étranges.
Et en continuant comme ça pour l'ensemble de ton calcul tu trouveras
sûrement que chaque bit que tu sors n'a pas la probabilité 1/2 d'être à
zéro : tu as baisé ton algo en rajoutant des étapes bizarres et étranges.
Et en continuant comme ça pour l'ensemble de ton calcul tu trouveras
sûrement que chaque bit que tu sors n'a pas la probabilité 1/2 d'être à
zéro : tu as baisé ton algo en rajoutant des étapes bizarres et étranges.
Bonjour,
Je ne vois aucun problème dans ma génération de hasard. [...] Si
quelqu'un pense qu'il y a des biais dans ma génération de hasard je
l'inviterais à les définir et en donner la raison.
Je ne m'aventurerai pas dans ta génération de hasard proprement dite. Pour
moi il est clair qu'elle n'est pas correcte, mais ça serait la galère à
démontrer.
Je me propose donc de te montrer que les premières opérations effectuées
sur ton "hasard", vont tout casser.
On supposera donc que ta génération de hasard est parfaite. Donc que
chaque bit de ta sortie a une probabilité de 50% d'être à zéro.
On supposera aussi que ta première transformation est parfaite. (même si
ajouter des valeurs pseudo-aléatoires à tes valeurs va plutôt dans le sens
contraire, puisque tu dis toi-même que la génération pseudo-aléatoire est
merdique).
On en arrive à ça :For Rép3 = 1 To VarNombCaraK
VarCaraC1 = Val(Asc(Mid(VarCaraAle2, Rép3, 1)))
VarCaraC2 = Val(Asc(Mid(VarCaraAle2, Rép3 + VarNombCaraK, 1)))
VarCaraC3 = Val(Asc(Mid(V3, Rép3, 1)))
VarChifDroitAsc = Val(Right(Str(Asc(Mid(V3, Rép3, 1))), 1))
Randomize (Timer + VarCaraC1 + (Rép3 * VarChifDroitAsc))
V1 = V1 & Chr(((VarCaraC1 * VarChifDroitAsc) + Rép3 +
Int((VarCaraC2 * Rnd) + VarCaraC3) + Int((256 * Rnd) + 0)) Mod 256)
'-V2 = 2e clef de session.
V2 = V2 & Chr(((VarCaraC2 * VarChifDroitAsc) + (Rép3 * VarCaraC3)
+ VarCaraC1 + VarCaraC4 + Int((256 * Rnd) + 0)) Mod 256)
Next Rép3
Supposons Rep3 variant de 1 à 64.
on trouve VarCaraC1 qui est comprit entre 0 et 255
pareil pour VarCaraC2
raison : on a aussi supposé VarCaraAle2 comme issu d'un hasard parfait
On dira pareil pour VarCaraC3 même s'il me semble que V3 est toujours
vide. Enfin bref...
VarChifDroitAsc ne peut valoir que 0 à 9 de manière non équiprobable :
- 10.156% pour 0 à 5, et 9.766% pour 6 à 9
Donc pour chaque bit la probabilité d'être à zéro :
- bit0 : 1
- bit1 : 1
- bit2 : 1
- bit3 : 1
- bit4 : 0.195
- bit5 : 0.602
- bit6 : 0.602
- bit7 : 0.5
Et en continuant comme ça pour l'ensemble de ton calcul tu trouveras
sûrement que chaque bit que tu sors n'a pas la probabilité 1/2 d'être à
zéro : tu as baisé ton algo en rajoutant des étapes bizarres et étranges.
Vala,
Et si tu veux j'irai plus loin, mais j'ai un petit soft à écrire d'abord,
et j'ai po le temps.
Bonjour,
Je ne vois aucun problème dans ma génération de hasard. [...] Si
quelqu'un pense qu'il y a des biais dans ma génération de hasard je
l'inviterais à les définir et en donner la raison.
Je ne m'aventurerai pas dans ta génération de hasard proprement dite. Pour
moi il est clair qu'elle n'est pas correcte, mais ça serait la galère à
démontrer.
Je me propose donc de te montrer que les premières opérations effectuées
sur ton "hasard", vont tout casser.
On supposera donc que ta génération de hasard est parfaite. Donc que
chaque bit de ta sortie a une probabilité de 50% d'être à zéro.
On supposera aussi que ta première transformation est parfaite. (même si
ajouter des valeurs pseudo-aléatoires à tes valeurs va plutôt dans le sens
contraire, puisque tu dis toi-même que la génération pseudo-aléatoire est
merdique).
On en arrive à ça :
For Rép3 = 1 To VarNombCaraK
VarCaraC1 = Val(Asc(Mid(VarCaraAle2, Rép3, 1)))
VarCaraC2 = Val(Asc(Mid(VarCaraAle2, Rép3 + VarNombCaraK, 1)))
VarCaraC3 = Val(Asc(Mid(V3, Rép3, 1)))
VarChifDroitAsc = Val(Right(Str(Asc(Mid(V3, Rép3, 1))), 1))
Randomize (Timer + VarCaraC1 + (Rép3 * VarChifDroitAsc))
V1 = V1 & Chr(((VarCaraC1 * VarChifDroitAsc) + Rép3 +
Int((VarCaraC2 * Rnd) + VarCaraC3) + Int((256 * Rnd) + 0)) Mod 256)
'-V2 = 2e clef de session.
V2 = V2 & Chr(((VarCaraC2 * VarChifDroitAsc) + (Rép3 * VarCaraC3)
+ VarCaraC1 + VarCaraC4 + Int((256 * Rnd) + 0)) Mod 256)
Next Rép3
Supposons Rep3 variant de 1 à 64.
on trouve VarCaraC1 qui est comprit entre 0 et 255
pareil pour VarCaraC2
raison : on a aussi supposé VarCaraAle2 comme issu d'un hasard parfait
On dira pareil pour VarCaraC3 même s'il me semble que V3 est toujours
vide. Enfin bref...
VarChifDroitAsc ne peut valoir que 0 à 9 de manière non équiprobable :
- 10.156% pour 0 à 5, et 9.766% pour 6 à 9
Donc pour chaque bit la probabilité d'être à zéro :
- bit0 : 1
- bit1 : 1
- bit2 : 1
- bit3 : 1
- bit4 : 0.195
- bit5 : 0.602
- bit6 : 0.602
- bit7 : 0.5
Et en continuant comme ça pour l'ensemble de ton calcul tu trouveras
sûrement que chaque bit que tu sors n'a pas la probabilité 1/2 d'être à
zéro : tu as baisé ton algo en rajoutant des étapes bizarres et étranges.
Vala,
Et si tu veux j'irai plus loin, mais j'ai un petit soft à écrire d'abord,
et j'ai po le temps.
Bonjour,
Je ne vois aucun problème dans ma génération de hasard. [...] Si
quelqu'un pense qu'il y a des biais dans ma génération de hasard je
l'inviterais à les définir et en donner la raison.
Je ne m'aventurerai pas dans ta génération de hasard proprement dite. Pour
moi il est clair qu'elle n'est pas correcte, mais ça serait la galère à
démontrer.
Je me propose donc de te montrer que les premières opérations effectuées
sur ton "hasard", vont tout casser.
On supposera donc que ta génération de hasard est parfaite. Donc que
chaque bit de ta sortie a une probabilité de 50% d'être à zéro.
On supposera aussi que ta première transformation est parfaite. (même si
ajouter des valeurs pseudo-aléatoires à tes valeurs va plutôt dans le sens
contraire, puisque tu dis toi-même que la génération pseudo-aléatoire est
merdique).
On en arrive à ça :For Rép3 = 1 To VarNombCaraK
VarCaraC1 = Val(Asc(Mid(VarCaraAle2, Rép3, 1)))
VarCaraC2 = Val(Asc(Mid(VarCaraAle2, Rép3 + VarNombCaraK, 1)))
VarCaraC3 = Val(Asc(Mid(V3, Rép3, 1)))
VarChifDroitAsc = Val(Right(Str(Asc(Mid(V3, Rép3, 1))), 1))
Randomize (Timer + VarCaraC1 + (Rép3 * VarChifDroitAsc))
V1 = V1 & Chr(((VarCaraC1 * VarChifDroitAsc) + Rép3 +
Int((VarCaraC2 * Rnd) + VarCaraC3) + Int((256 * Rnd) + 0)) Mod 256)
'-V2 = 2e clef de session.
V2 = V2 & Chr(((VarCaraC2 * VarChifDroitAsc) + (Rép3 * VarCaraC3)
+ VarCaraC1 + VarCaraC4 + Int((256 * Rnd) + 0)) Mod 256)
Next Rép3
Supposons Rep3 variant de 1 à 64.
on trouve VarCaraC1 qui est comprit entre 0 et 255
pareil pour VarCaraC2
raison : on a aussi supposé VarCaraAle2 comme issu d'un hasard parfait
On dira pareil pour VarCaraC3 même s'il me semble que V3 est toujours
vide. Enfin bref...
VarChifDroitAsc ne peut valoir que 0 à 9 de manière non équiprobable :
- 10.156% pour 0 à 5, et 9.766% pour 6 à 9
Donc pour chaque bit la probabilité d'être à zéro :
- bit0 : 1
- bit1 : 1
- bit2 : 1
- bit3 : 1
- bit4 : 0.195
- bit5 : 0.602
- bit6 : 0.602
- bit7 : 0.5
Et en continuant comme ça pour l'ensemble de ton calcul tu trouveras
sûrement que chaque bit que tu sors n'a pas la probabilité 1/2 d'être à
zéro : tu as baisé ton algo en rajoutant des étapes bizarres et étranges.
Vala,
Et si tu veux j'irai plus loin, mais j'ai un petit soft à écrire d'abord,
et j'ai po le temps.
Et en continuant comme ça pour l'ensemble de ton calcul tu trouveras
sûrement que chaque bit que tu sors n'a pas la probabilité 1/2 d'être à
zéro : tu as baisé ton algo en rajoutant des étapes bizarres et étranges.
Euh... J'ai voulu dire "biaisé"... J'ai glissé chef.
Ca reste tout de même compréhensible :D
Et en continuant comme ça pour l'ensemble de ton calcul tu trouveras
sûrement que chaque bit que tu sors n'a pas la probabilité 1/2 d'être à
zéro : tu as baisé ton algo en rajoutant des étapes bizarres et étranges.
Euh... J'ai voulu dire "biaisé"... J'ai glissé chef.
Ca reste tout de même compréhensible :D
Et en continuant comme ça pour l'ensemble de ton calcul tu trouveras
sûrement que chaque bit que tu sors n'a pas la probabilité 1/2 d'être à
zéro : tu as baisé ton algo en rajoutant des étapes bizarres et étranges.
Euh... J'ai voulu dire "biaisé"... J'ai glissé chef.
Ca reste tout de même compréhensible :D
disque; je dis ceci car ces valeurs disparaissent et à chaque démarrage du
logiciel, obligatoirement de nouvelles valeurs sont générées du hasard,
valeurs modifiées par la suite dont le quart est nécessaire pour la
génération d'une clef de session.
disque; je dis ceci car ces valeurs disparaissent et à chaque démarrage du
logiciel, obligatoirement de nouvelles valeurs sont générées du hasard,
valeurs modifiées par la suite dont le quart est nécessaire pour la
génération d'une clef de session.
disque; je dis ceci car ces valeurs disparaissent et à chaque démarrage du
logiciel, obligatoirement de nouvelles valeurs sont générées du hasard,
valeurs modifiées par la suite dont le quart est nécessaire pour la
génération d'une clef de session.
Pour faire simple, prenons une valeur issus du hasard, de mon cerveau:
'213'. Si je décide de choisir un nombre entre 1 et 3 (supposons que c'est
pseudo-aléatoire) pour additionner à la valeur 213 et que j'utilise le
modulo 256 pour rester dans la plage des 256 caractères qui existent. J'ai
donc 3 choix de valeurs comme résultat de ma transformation: 214, 215 ou
216. On me dira peut-être que j'ai une chance sur 3 de trouver la valeur
(une probabilité de 33%) puisque je n'ai que 3 choix. La réponse est non;
je n'ai pas trois chances mais j'ai 256 choix; donc, tous les caractères
sont possibles car la valeur de départ (213) n'était pas connue car elle
vient du hasard.
Pour faire simple, prenons une valeur issus du hasard, de mon cerveau:
'213'. Si je décide de choisir un nombre entre 1 et 3 (supposons que c'est
pseudo-aléatoire) pour additionner à la valeur 213 et que j'utilise le
modulo 256 pour rester dans la plage des 256 caractères qui existent. J'ai
donc 3 choix de valeurs comme résultat de ma transformation: 214, 215 ou
216. On me dira peut-être que j'ai une chance sur 3 de trouver la valeur
(une probabilité de 33%) puisque je n'ai que 3 choix. La réponse est non;
je n'ai pas trois chances mais j'ai 256 choix; donc, tous les caractères
sont possibles car la valeur de départ (213) n'était pas connue car elle
vient du hasard.
Pour faire simple, prenons une valeur issus du hasard, de mon cerveau:
'213'. Si je décide de choisir un nombre entre 1 et 3 (supposons que c'est
pseudo-aléatoire) pour additionner à la valeur 213 et que j'utilise le
modulo 256 pour rester dans la plage des 256 caractères qui existent. J'ai
donc 3 choix de valeurs comme résultat de ma transformation: 214, 215 ou
216. On me dira peut-être que j'ai une chance sur 3 de trouver la valeur
(une probabilité de 33%) puisque je n'ai que 3 choix. La réponse est non;
je n'ai pas trois chances mais j'ai 256 choix; donc, tous les caractères
sont possibles car la valeur de départ (213) n'était pas connue car elle
vient du hasard.