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

Algorithmes et structures de données Discussion :

Générateur cryptographique de nombres aléatoires


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Par défaut Générateur cryptographique de nombres aléatoires
    Bonjour à tous,

    Je cherche à réaliser un générateur cryptographique de nombres pseudo-aléatoires.

    Qu'est-ce que c'est qu'un générateur de nombres aléatoires, pseudo-aléatoires ?

    C'est une fonction qui donne en sortie des nombres. A chaque appel la fonction donne un nombre différent. On l'appelle aléatoire parce que tous ces nombres semblent indépendants les uns des autres. On dit "semblent" car la machine étant totalement déterministe, les algorithmes sont eux même déterministes. Donc les nombres en sortie du générateur dépendent tout de même les uns des autres, mais il est tellement difficile de faire la relation entre les uns et les autres sans la fonction de base que l'on finit par dire qu'ils sont pseudo-aléatoires.

    Qu'est-ce qu'un générateur cryptographique de nombre pseudo-aleatoire ?

    C'est un générateur de nombres aléatoires le moins biaisé possible, c'est à dire qu'il favorise une équiprobabilité de chacunes des sorties du générateur. La plus part des générateurs le font, mais pas assez bien pour une utilisation cryptographique. C'est à dire qu'il faut favoriser l'uniformité des sorties dans le domaine de définition de la sortie de la fonction, de l'algorithme. C'est exactement le contraire de la courbe de Gauss qui donne un maximum à une certaine valeure.

    Pour quoi faire ?

    J'en ai "besoin" afin de pouvoir l'inserer dans un programme de chiffrement à clef symétrique que je développe moi même. J'ai tout de même quelques difficultés à développer un suffisement bon générateur cryptographique de nombres pseudo-aléatoires. J'en ai développé un dont les sorties ont toutes une probabilité de sortie moyenne de 0,1% avec un écart-type de 0,5%, ce qui est bien trop grand pour une utilisation cryptographique.


    Si l'un de vous sait comment développer une telle fonction je lui serais reconnaissant de bien vouloir m'aider. Par la même occasion, je sais qu'il existe un certain nombre de fonctions existant, telles que "Blum Blum Shub", "Fortuna", "ISAAC", cependant je n'arrive pas à trouver les codes sources et quand je les trouve, j'avoue ma difficulté à dénicher une once de documentation pour me permettre d'utiliser ces codes.

    Dans l'attente d'une réponse de votre part,

    phmorin

    PS: j'avais posté ce sujet sur le forum du C mais on m'a dit de le mettre ici.

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Mersenne-Twister a un bon point à ce niveau.

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Par défaut
    Aurais-tu une idée où je pourrais trouvé l'algorithme et encore mieux un code source en C?

  4. #4
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    si je puis me permettre, Mersenne Twister est recommandé pour l'utilisation en modélisation statistique, notamment pour sa stablité en grande dimension, mais il n'est pas recommandé pour la cryptographie, vu qu'on peut le "casser" assez facilement.

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    L'autre solution, c'est alors d'utiliser un générateur avec hasard fort, mais ça n'existe pas en algorithmie...

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    Bonjour,
    Citation Envoyé par jobherzt
    si je puis me permettre, Mersenne Twister est recommandé pour l'utilisation en modélisation statistique, notamment pour sa stablité en grande dimension, mais il n'est pas recommandé pour la cryptographie, vu qu'on peut le "casser" assez facilement.
    Qu'appelles-tu "casser" un générateur pseudo-aléatoire ?

  7. #7
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Qu'appelles-tu "casser" un générateur pseudo-aléatoire
    Une définition simple serait de savoir déterminer le nombre suivant une génération.

    En général, on fait passer des tests de validations des générateurs pseudo aléatoires (pour éviter ce genre de phénomène). La majeure partie de ces tests sont statistiques (test de fréquence, test de séries, tests des intervalles, tests du collectionneur de coupons, et tests de permutations).

    Ya aussi des méthodes qui permettent de "casser" partiellement le générateur. Par exemple en prouvant que sur certaines périodes, le générateur prend autant de valeur pair qu'impair.

    TROLL ON

    Citation Envoyé par Miles
    algorithmie...
    Paraitrait-t-il que le terme algorithmie n'existe pas (même si il est parfois employé à tort), ce serait algorithmique.

Discussions similaires

  1. générateur de nombre aléatoire
    Par ndefta love dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/12/2006, 22h21
  2. Générateur de nombres aléatoires maxwelliens
    Par Selma_2037 dans le forum MATLAB
    Réponses: 1
    Dernier message: 22/11/2006, 15h54
  3. Réponses: 6
    Dernier message: 07/10/2006, 23h12
  4. Générateur de nombres aléatoires
    Par Grand sorcier dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 30/07/2006, 22h44
  5. Générateurs de nombres aléatoires
    Par Cheps dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 12/06/2006, 00h37

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