IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Qualit� du random de C Builder ?


Sujet :

C++Builder

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2003
    Messages
    2
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 2
    Par d�faut Qualit� du random de C Builder ?
    Bonjour

    je crois que les fonctions random() ou rand() de C sont standard, mais que leur impl�mentation d�pend de la librairie utilis�e, donc de Borland dans notre cas.
    Avez vous une id�e de l'algorithme utilis� par Borland pour g�n�rer les nombres al�atoires ? Ceci pour �valuer leur qualit� pour des applications cryptographiques.
    Est-ce document� ?

    Merci
    Dangerol

  2. #2
    jmv
    jmv est d�connect�
    Membre chevronn� Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    D�tails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par d�faut
    je ne sais pas comment sont impl�ment�es rand() et random(), mais une chose est sure, ces fonctions sont trop pr�visibles pour �tre employ� pour de la cryptographie.

  3. #3
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    30
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Par d�faut
    Bonjour,

    Tout ce que je peux te dire c est quelle ne sont pas vraiment aleatoires.
    Je te sugere vivement de la refaire avec le temps ... Car si tu relance le prog elle ressort les nombres dans le meme ordre..

  4. #4
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    35
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 35
    Par d�faut
    Si c'est pour effectuer du cryptage de donn�e tu peux utiliser un cryptage bas� sur des XOR dont il a d�j� �t� question de nombreuse fois dans ce forum!

  5. #5
    R�dacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    D�tails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Par d�faut
    Bonjour,

    Citation Envoy� par DamessS
    Bonjour,

    Tout ce que je peux te dire c est quelle ne sont pas vraiment aleatoires.
    Je te sugere vivement de la refaire avec le temps ... Car si tu relance le prog elle ressort les nombres dans le meme ordre..
    Si tu n'initialise pas le g�n�rateur de nombres al�atoires, forc�ment...
    L'initialisation consiste justement � utiliser le nombre de millisecondes depuis une certaine date comme valeur de d�part...

    Cordialement,

    Arnaud

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Par d�faut
    Salutation,
    Exemple Borland:
    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>

    int main(void)
    {
    int i;
    time_t t;

    srand((unsigned) time(&t));
    printf("Ten random numbers from 0 to 99\n\n");
    for(i=0; i<10; i++)
    printf("%d\n", rand() % 100);
    return 0;
    }
    En effet lorsque l'on compile, on obtient bien 10 nombres diff�rents entre 0 et 99 ! Et lorsque l'on relance le programme, on obtient une combinaison diff�rente. Comme le dit si bien Greybird, il faut initialiser avec un date. La fonction calcul ensuite une valeur correspondant au temps �couler entre cette date et le 1/1/1900 !
    Le seul pb � cette m�thode est que si on appel ce code deux fois rapidement, on obtient la m�me combinaison! Mais je crois que ce delai ne d�passe pas la seconde. Faites donc attention a ne pas appeler cette m�thode deux fois � la suite rapidement.
    SI pas malheur c'est la cas, vous pouvez peut �tre utiliser au mieu cette pr�c�dente fonction pour en retirer un plus grand nombre de valeurs al�atoire ...
    Bonne continuation
    Cordialement
    Walm

  7. #7
    R�dacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    D�tails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Par d�faut
    Bonjour,

    Le mieux �tant de faire l'initialisation une bonne fois pour toutes au d�but du programme, et pas � chaque d�but de fonction.

    Comme �a, on continue la s�rie de nombre pseudo-al�atoires.

    Cordialement,

    Arnaud

  8. #8
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 89
    Par d�faut
    Salutation,
    Citation Envoy� par Greybird
    Bonjour,
    Le mieux �tant de faire l'initialisation une bonne fois pour toutes au d�but du programme, et pas � chaque d�but de fonction.
    Ceci est une bonne remarque. J'y penserai � l'avenir. Toutefois, cetta fonction n'est pas cyclique? Cad qu'une fois avoir tirer de cela une grande quantit� de nb al�atoire, le programme retourne les m�me valeurs qu'au d�but???
    Cordialement
    Walm

  9. #9
    Candidat au Club
    Inscrit en
    Janvier 2003
    Messages
    2
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 2
    Par d�faut Source du rand() de stdlib.c
    Merci pour vos r�ponses, mais je me doute que la qualit� du rand standard est faible, pour de la cryptographie.

    Je voudrais seulement savoir � quel point, aussi j'ai besoin des sources, ou au moins de l'algorithme, avec notamment la p�riode max du g�n�rateur.

    Merci

  10. #10
    R�dacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    D�tails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Par d�faut
    Bonjour,

    Citation Envoy� par Walm
    Toutefois, cetta fonction n'est pas cyclique? Cad qu'une fois avoir tirer de cela une grande quantit� de nb al�atoire, le programme retourne les m�me valeurs qu'au d�but???
    Bien s�r. Ceci dit, il faut commencer � en tirer _beaucoup_. C'est la p�riode justement. Mais je ne la connais pas pour C++ Builder.

    Cordialement,

    Arnaud

  11. #11
    Membre �m�rite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par d�faut
    La fonction rand du C standard (LIBC.LIB) ressemble � �a:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    int rand(void) {
      Seed = Seed * 0x343FD + 0x269EC3;
      return (Seed >> 0x10) & 0x7FFF;
    }
    Seed �tant une variable globale initialis�e par la fonction srand

  12. #12
    jmv
    jmv est d�connect�
    Membre chevronn� Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    D�tails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par d�faut
    il existe la norme ANSI X9.17 qui d�crit comment g�n�rer des cl�s al�atoires.

    voir http://www.cadence.com/datasheets/RNG_DataSheet.pdf

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Qualit� du Math.random() ?
    Par bruno_nono dans le forum Langage
    R�ponses: 6
    Dernier message: 03/03/2010, 12h30
  2. Probl�me Borland builder + boost lib (random.hpp)
    Par visodyn dans le forum C++Builder
    R�ponses: 1
    Dernier message: 04/02/2008, 17h29
  3. Probl�me Borland builder + boost lib (random.hpp)
    Par visodyn dans le forum Boost
    R�ponses: 2
    Dernier message: 04/02/2008, 17h21
  4. Outils, cours et NOUVEAUX tutoriels pour Borland C++Builder
    Par hiko-seijuro dans le forum C++Builder
    R�ponses: 10
    Dernier message: 12/03/2006, 22h33
  5. R�ponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo