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 :

Algorithme de génération de clé


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2017
    Messages : 24
    Points : 33
    Points
    33
    Par défaut Algorithme de génération de clé
    Salut tout le monde. Je développe des logiciels en VB.net et j'aimerai y intégrer un système d'activation par clé. Cependant je cherche un algorithme assez complexe qui me permettra de générer le maximum de clés. J'ai juste besoins de vos propositions pour m'inspirer !

  2. #2
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    Citation Envoyé par Joe Sidik Voir le message
    Salut tout le monde. Je développe des logiciels en VB.net et j'aimerai y intégrer un système d'activation par clé. Cependant je cherche un algorithme assez complexe qui me permettra de générer le maximum de clés. J'ai juste besoins de vos propositions pour m'inspirer !
    A priori le nombre de clés possibles dépend de sa longueur Avec 12 caractères tu peux en faire dans les 400 millions.
    Tous les langages ont un générateur de nombres aléatoires, autant s'en servir.
    Savoir pour comprendre et vice versa.

  3. #3
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 324
    Points : 4 134
    Points
    4 134
    Par défaut Générateur aléatoire
    Bonjour,

    La solution du générateur aléatoire est certainement la plus simple et la plus élégante.

    Cependant il faut se méfier d'une chose. Dans de nombreux langages, la génération recommence une même séquence à chaque lancement de programme.

    Il faut alors prendre la précaution d'initialiser le générateur par une valeur (souvent nommée seed pour germe) imprévisible sinon aléatoire. Prendre le nombre (ou une partie basse de ce nombre) de millisecondes de session est souvent une solution.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  4. #4
    Membre chevronné
    Avatar de emixam16
    Homme Profil pro
    Chercheur en sécurité
    Inscrit en
    Juin 2013
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Chercheur en sécurité

    Informations forums :
    Inscription : Juin 2013
    Messages : 333
    Points : 1 828
    Points
    1 828
    Par défaut
    Juste une petite remarque sur la génération de licences basées sur des générateurs pseudo aléatoires (PRNG).

    Comme l'ont bien dit Guesset et valentin03, la combinaison PRNG et initialisation avec le temps est la plus classique et marche bien.

    Par exemple en C, l’utilisation classique de la fonction rand est :

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    srand(time(NULL)); // J'initialise mon PRNG (graine) avec le temps actuel (en secondes)
    for( i = 0 ; i < n ; i++ )
        printf("%d\n", rand() % 100); // Je génère des variables entre 0 et 99
    Ça a l'air très bien et ça marche. A chaque exécution j'aurais une séquence de nombres différente et qui paraît aléatoire

    MAIS: Ces nombres ne sont pas vraiment aléatoires, ils sont déterministes!


    En fait, en interne, le PRNG classique de C est un générateur concurrentiel linéaire défini comme (je simplifie légèrement):
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    unsigned int graine;
    void srand(unsigned int gr){
    graine = gr
    }
    int rand() {
        int resultat = ((graine* 1103515245U) + 12345U) & 0x7fffffff;
        graine = resultat
        return resultat;
    }

    Donc on voit bien que derrière la magie on a quelque chose de totalement déterministe et que si on trouve la graine, on pourra avoir la séquence de nombre générés et donc retrouver tes clés! Je trouve ça à la fois assez beau et presque vertigineux: quelque chose qui nous paraît vraiment aléatoire est en fait juste une multiplication, une addition et un masquage.

    Par exemple, si je sais que ma clé est générée en septembre 2019, je peux tester toutes les possibilités, c'est à dire 60*60*24*30 = 2,5 millions. Avec un processeur classique et un gros force brute ça se casse en environ 40 ms!! Même avec un PRNG qui s'initialise à la milliseconde, on reste sous la barre de la minute pour casser le générateur.

    Voilà, tout ça pour dire que ton générateur de clé n'est pas magique, il en existe des très bon et des très mauvais, si possible utilise les bons pour ta génération de clé.

    Pour nuancer mon propos, si les "mauvais" générateurs sont encore utilisés aujourd'hui c'est qu'ils sont hallucinemment plus rapides que les bons. Donc dans un certain nombre de cas ou tu as plus besoin de performances que de sécurité cryptographique, un "mauvais" générateur donc sera bien plus adapté qu'un "bon"!

    Bonne journée

  5. #5
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 947
    Points : 4 058
    Points
    4 058
    Par défaut
    Bonjour.
    Concernant la génération de nombres aléatoires, Denis Hulo a écrit un article (voir le chapitre 6) en utilisant la méthode de Fibonacci:

    https://denishulo.developpez.com/tut...oires-vba/#LVI

    Si ça peut aider ou donner des idées.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2017
    Messages : 24
    Points : 33
    Points
    33
    Par défaut Merci à tous
    Je vous remercie tous pour votre aide... Cela m'a vraiment été d'une très grande utilité !

  7. #7
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Algorithme de génération de clé
    Bonjour,

    On trouve sur ce site un bon article sur les générateurs de nombres pseudo-aléatoires

    ainsi qu'une courte discussion.


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Algorithme de génération des emplois du temps
    Par emmye dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 19/04/2010, 00h32
  2. Algorithme de génération de clé
    Par norwy dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 24/05/2008, 10h23
  3. Algorithme de génération de mdp (alphanum et num)
    Par _SamSoft_ dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 11/09/2007, 19h42
  4. Algorithme de génération de textures.
    Par Disciple195 dans le forum SDL
    Réponses: 2
    Dernier message: 18/06/2007, 20h16

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