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++ Discussion :

[Sécurité] Clé privée / publique en C++ ?


Sujet :

C++

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut [Sécurité] Clé privée / publique en C++ ?
    Bonjour à tous,

    Dans une architecture distribuée (type Bitcoins ou Ethereum), je travaille actuellement sur la sécurité.

    J'ai bien pigé le concept de clé privée / clé publique, mais par contre à développer je suis totalement perdu.

    En effet, les données sont encodées avec la clé publique du destinataire afin que lui seul puisse les déchiffrer avec sa clé privée. Si on chiffre quelque chose avec une clé, on ne peut pas le déchiffrer avec cette même clé, il faut la clé privée.

    On m'a parlé de l'algorithme de cryptage Blowfish que j'ai déjà implémenté, mais il crypte une donnée avec une clé, uniquement décryptable avec cette même clé, il n'y en a pas deux.

    Ma question est : Est-ce que je dois trouver une autre méthode de cryptage / décryptage ou celle-ci convient mais à moi de trouver, à plus haut niveau, une méthode pour faire du double clé ?

    J'entends là que peut-être qu'en plus de la data il faut rajouter des infos pour que le destinataire puisse décrypter le truc ? Donc que c'est pas l'algo en lui même qui ne convient pas mais que c'est plutôt méthodo ?

    Au moins ça m'orientera

    Merci à vous,

    A bientôt
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    ce n'est pas compliqué pourtant

    Sur la page Wiki Symmetric-key algorithm, en bas, la liste des algo et autres symétriques (1 seule clef)

    Et sur cette page Wiki Public-key cryptography, en bas, la liste des algo et autres asymétriques (2 clefs).

    Et le gagnant est: RSA

  3. #3
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Le gagnant est RSA parce que c'est éprouvé et très répandu, tu n'auras aucun mal à progresser dessus. Après, si tu veux être innovant, tu peux aussi t'intéresser aux variantes de courbes elliptiques
    Find me on github

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Merci pour ta réponse

    C'est donc bien l'algo qu'il faut changer car il est symétrique.

    J'ai regardé du côté de RSA, mais les clés semblent super grosses comparé aux adresses Bitcoin ou Ethereum (qui sont les clés publiques finalement).

    Est-ce que elles sont issues d'un format générique quelconque où ce sont ces plateformes qui ont leur propre popotte pour générer ça ?

    Merci
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  5. #5
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Re

    Tu mélanges deux principes : le chiffrement et la signature. Le principe d'une adresse de cryptomonnaie est de signer une transaction, pas de la chiffrer. Les transactions sont publiques, en revanche, le principe de signature empêche de forger de fausses données.

    En clair :
    - Avec le chiffrement, la clé publique est utilisée pour chiffrer et seule la clé privée peut-être utilisée pour lire le message.
    - Avec la signature, c'est le contraire : la clé privée est utilisée pour signer, et la clé publique mise à disposition pour contrôler la validité des messages signés.

    Les algorithmes mis en jeu sont différents. Si tu veux maîtriser comment fonctionne Bitcoin et par extension les autres monnaies utilisant le même principe (et les mêmes algos !), il y a un très bon bouquin pour ça.
    Find me on github

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Le principe de la signature numérique va plus loin que cela (il me semble) , et utilise communément des certificats (les fameux certificats)

    Le problème est le suivant : Comment savoir que la clef publique diffusée est bien celle de la bonne personne ?
    Et non pas de personnes malveillantes qui pourront lire tous les messages chiffrés avec cette "fausse" clef publique (parce qu'ils ont la clef privée correspondante)

  7. #7
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Hello

    Le problème ne se pose pas dans une blockchain, dans laquelle une clé publique est souvent anonyme. Pour qu'une personne prouve être le propriétaire d'une clé publique, il faut lui donner une donnée aléatoire, qu'elle signera, puis la signature peut être vérifiée. Du coup, aucune notion de certificat ici, juste un algo de signature. Au niveau de la validation des transactions, il suffit que la signature soit valide, peu importe le propriétaire.

    Je le rappelle : signature != chiffrement. La clé publique permet de vérifier que la donnée a bien été générée par un propriétaire de la clé privée. Le message n'est pas caché. Si la clé privée a été volée et bien... tant pis pour la gueule de son propriétaire, c'est le jeu ma pauv' Lucette. C'est le principe d'un wallet numérique. Le wallet, c'est juste la clé privée. Si elle est volée, le voleur peut utiliser l'argent à sa guise.

    Après si tu rentres dans la signature numérique au sens large du terme, pour ce soit légalement reconnu pour un document juridique, etc, effectivement, il y a des certificats, mais on rentre dans un autre monde.
    Find me on github

Discussions similaires

  1. [C#] Cryptographie par clefs privée/publique
    Par dev01 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 22/08/2011, 21h44
  2. Connexion SSH avec clefs privée/publique
    Par NikoBe dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 12/06/2007, 20h50
  3. Paire de clefs privée/publique
    Par nic_cool dans le forum Réseau
    Réponses: 1
    Dernier message: 16/04/2007, 13h04
  4. Réponses: 2
    Dernier message: 15/05/2006, 22h22
  5. [unité] Procédures privées publiques
    Par Manopower dans le forum Langage
    Réponses: 9
    Dernier message: 19/05/2005, 09h29

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