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

Probabilités Discussion :

[Cryptographie] Concaténation de deux uint16 en un uint32. Est-ce sûr?


Sujet :

Probabilités

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : septembre 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut [Cryptographie] Concaténation de deux uint16 en un uint32. Est-ce sûr?
    Salut tout le monde

    Pour tout vous dire j'ignore si ma question (plutôt mes questions) soit réellement destinée à ce forum mais j'ai fait le tour des autres sous-forums et je ne vois pas aussi où ça pourrait bien passer. Je travaille actuellement sur un programme destiné à protéger une communication radio entre un émetteur et un receveur contre les MITM (man-in-the-middle attacks).Bref l'approche que je compte utiliser est une communication basé sur un NONCE (number used once) il sera émis à chaque authentification et aura 32 bits. Je travaille avec un outil de développement spécifique à la société(development tool) (désolé pour les termes en anglais corrigez moi si je me trompe dans la traduction) une bibliothèque elle-même spécifique écrite en C et un compilateur (C51 de Keil microvision pour ceux qui le connaissent). Cette bibliothèque spécifique m'offre déjà une fonction toute prête qui génère un nombre random de 16 bits à partir du bruit d'un ADC (convertisseur analogique-numérique) donc je suppose que c'est un bon random (true). Afin de produire mon NONCE qui devrait avoir une taille de 32 bits j'ai pensé à concaténer deux de ces randoms générés par cette fonction.Et là mes questions s’intègrent dans le domaine de la cryptographie, à savoir:

    • En concaténant ces deux nombres de 16 bits aurai-je un bon random? est-ce sûr en matière d'entropie?
    • Quelle serait la distribution des nombres résultants de cette concaténation sur tout l'intervalle [0...2^32] (cet intervalle parce que mes entiers ne sont pas signés)? Y a t-il des tests de randomness à faire pour le savoir?
    • En appelant ma fonction deux fois de suite pour générer mes deux randoms de 16 bits n'est-il pas très probable d'avoir deux valeurs différentes puisque ma fonction lit le bruit de l'ADC et que ce bruit microscopique a une haute variance donc les nombres 0x12341234 ou 0xAABBAABB (qu'importe...tous les nombres composés de deux uint16 égaux) seraient moins probables que les autres et que ça pourrait nuire à la distribution (Je suis peut être entrain de raconter des salades mais c'est une question que je me pose souvent)



    Je vous remercie d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    janvier 2006
    Messages
    5 791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : janvier 2006
    Messages : 5 791
    Points : 9 857
    Points
    9 857
    Par défaut
    Citation Envoyé par blackhawk94 Voir le message
    • En concaténant ces deux nombres de 16 bits aurai-je un bon random? est-ce sûr en matière d'entropie?
    • Quelle serait la distribution des nombres résultants de cette concaténation sur tout l'intervalle [0...2^32] (cet intervalle parce que mes entiers ne sont pas signés)? Y a t-il des tests de randomness à faire pour le savoir?
    • En appelant ma fonction deux fois de suite pour générer mes deux randoms de 16 bits n'est-il pas très probable d'avoir deux valeurs différentes puisque ma fonction lit le bruit de l'ADC et que ce bruit microscopique a une haute variance donc les nombres 0x12341234 ou 0xAABBAABB (qu'importe...tous les nombres composés de deux uint16 égaux) seraient moins probables que les autres et que ça pourrait nuire à la distribution (Je suis peut être entrain de raconter des salades mais c'est une question que je me pose souvent)
    Je ne suis pas un spécialiste en crypto, mais je comprends facilement qu'en fait tes trois questions n'en forment qu'une. Tout ton problème vient de savoir si l'ADC génère autant de 1 que de 0. Si oui, alors tout est fiable, sinon tu réduis la distribution et donc tu augmentes la capacité des attaques.
    Pourquoi ne ferais tu pas un test de distribution sur ton ADC ?
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : septembre 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci ToTo13 justement concernant le test de distribution j'ai pensé le faire avec Matlab mais je me demande si c'est possible pour quelqu'un qui ne possède que les bases. Y'aurait il un moyen à la portée? Je n'ai jamais fait ce genre de test.merci

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    janvier 2007
    Messages
    10 591
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 591
    Points : 17 398
    Points
    17 398
    Billets dans le blog
    2
    Par défaut
    je suppose que tu peux les écrire en notation binaire dans un fichier (pas en binaire, hein ? En notation binaire.. Comme avec "dump".. Le contenu binaire des octets)

    Tu le fais suffisamment de fois (par exemple 1 ou 10 million(s)), et tu relis ensuite le fichier en par exemple comptant le nombre de 1 par position (16 bits = 16 colonnes)

    Tu peux par exemple faire un histogramme des 1 par colonne... Voir si il y a des périodicités.. Voir si des histogrammes de colonnes sont les mêmes, simplement décalés..

    Un test simple, correspondant à ce que ToTo13 suggère, bien que non concluant, est de compter les 1 par colonne.. Si tu arrives à 50% par colonne, tu sais que "ça a l'air" d'être aléatoire..

    Tu peux ensuite compléter par les tests sur les histos ci-dessus... ou par un test comme le premier, en ajoutant une colonne à chaque fois :

    compter combien tu as de séquences "1 1", "1 0", "0 1", et "0 0" dans les deux premières colonnes. Si tu as 25% de chaque, alors tu confirmes encore plus que "ça a l'air" d'être aléatoire.. Et ainsi de suite ..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

Discussions similaires

  1. Concaténation de deux tableaux
    Par mego dans le forum Langage
    Réponses: 6
    Dernier message: 19/11/2008, 11h52
  2. [VB6] "Concaténation" de deux images en une seule
    Par KrusK dans le forum VB 6 et antérieur
    Réponses: 22
    Dernier message: 07/07/2006, 09h45
  3. concaténation sur deux critères
    Par stéphane_ais2 dans le forum Access
    Réponses: 7
    Dernier message: 29/11/2005, 09h37
  4. [postges] concaténation de deux identifiants
    Par Alex35 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 27/10/2005, 16h37
  5. Concaténation de deux integer pour former une clé primaire
    Par stoukou dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 08/09/2005, 10h34

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