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 :

CRC, polynôme, valeur initiale et clé


Sujet :

Algorithmes et structures de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 200
    Points : 91
    Points
    91
    Par défaut CRC, polynôme, valeur initiale et clé
    Bonjour,

    Petite question au sujet des CRC.

    Pour un CRC, on parle de polynome, de clé, et de valeur initiale.

    Polynome : détermine la fonction utilisée.
    ex : CRC16 CCITT --> x^16 + x^12 + x^5 + 1

    valeur initiale : 1ère valeur utilsée dans le calcul.
    ex : 0xFFFF

    et clé ? est-ce la même chose que la valeur initiale ?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    hum... Ca ne me dit rien cette histoire de clé. Je pense plutôt qu'on parle de "key polynomial" pour parler du polynôme utilisé.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 200
    Points : 91
    Points
    91
    Par défaut
    En fait je transmets un message d'un equipement A vers un équipement B

    Mon objectif est que B s'assure que le message vient bien de A, en terminant le message par un CRC.

    Donc je souhaiterais utiliser un CRC standard (CRC-16-CCITT par exemple), mais utiliser une clé que seuls A et B connaissent.

    Les calculs doivent être rapides, donc pas crypto compliqué ...

    Espérant être clair.

    Merci et bonne soirée.

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    CRC / Crypto ? quel rapport ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 200
    Points : 91
    Points
    91
    Par défaut
    Ce que je veux dire, c'est que je n'utilise pas un CRC pour m'assurer de la bonne transmission des données sur la ligne, mais pour authentifier le message.

    Donc si j'utilise le polynome et la valeur initiale définis par "CRC16 CCITT" par exemple, c'est très simple à un usurpateur de créer le même message.

    [U]Ajout de dernière minute[/U]

    Effectivement, un CRC n'a pas cette vocation :

    Wiki En :
    A cyclic redundancy check (CRC) is a non-secure hash function designed to detect accidental changes to raw computer data

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par Nico_stras Voir le message
    Ce que je veux dire, c'est que je n'utilise pas un CRC pour m'assurer de la bonne transmission des données sur la ligne, mais pour authentifier le message.

    Donc si j'utilise le polynome et la valeur initiale définis par "CRC16 CCITT" par exemple, c'est très simple à un usurpateur de créer le même message.
    Et bien, je te propose d'utiliser le calcul du "CRC16 CCITT" original.

    Mais pour éviter une usurpation, tu ajoutes des caractères secrets ("salt") à ton message avant de calculer le CRC.

    A.send("HelloWorld")
    --> calculCRC16("HelloWorld"+"SECRET") = 0x0B77
    --> write("HelloWorld",0x0B77)

    B.read("HelloWorld",crc)
    --> calculCRC16("HelloWorld"+"SECRET") = 0x0B77
    --> compare(crc,0x0B77)
    --------> si égal alors return "HelloWorld"
    --------> sinon usurpation !!

Discussions similaires

  1. html checkbox : valeur initiale
    Par vny dans le forum Struts 1
    Réponses: 3
    Dernier message: 06/02/2007, 14h14
  2. Réponses: 2
    Dernier message: 04/01/2007, 13h31
  3. champ de texte et valeur initiale
    Par friiitz dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 05/06/2006, 11h14
  4. [MySQL] select et valeur initiale
    Par dleu dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 18/11/2005, 22h16
  5. [JOptionPane.showInputDialog] Valeur initiale + titre
    Par yanndublanche dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 03/08/2005, 14h43

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