Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Utilitaire/C] EncrypBox

Avec GTK+

    17 juin 2011 à 15:04:52

    Bonjour à tous,

    Alors je me présente, linkamaki, cela fait bientôt 2ans que j'ai commencé à apprendre et concevoir des logiciels en C. Après avoir fait plusieurs projet personnels en console et la SDL (2D) ne m'attirant pas trop, j'ai décidé d'apprendre la bibliothèque de GTK (interface graphique,sur developpez le cour du SDZ n'étant pas achevé).

    EncrypBox


    Le nom a été changé, anciennement Chiffre de César
    Donc je vous présente mon projet: EncrypBox . Le principe de celui-ci est de proposer différentes méthodes de chiffrement/déchiffrement. Actuellement 3 sont proposées: Chiffre de César (chiffrement par décalage), Chiffre de Vernam (masque jetable) et RSA. Je compte en rajouté d'avantages avec le temps. Le chiffre de César bénéficie de plus d'options comme enregistrement dans une fichier, décryptage d'un fichier, ... (je compte en rajouter également).

    Screenshot:

    </span>

    Screenshot version 3.0 et 3.1 (dernière version)


    Image utilisateurImage utilisateur

    Ancienne version:

    V 1.0 V 1.1 bêta V 2.0 V 2.1
    Image utilisateur Image utilisateur Image utilisateur Image utilisateur
    Image utilisateur Image utilisateur Image utilisateur Image utilisateur



    Téléchargement:



    Windows:


    V 1.0:
    Programme + code source
    Runtime


    V 1.1 bêta:
    • Possibilité d'enregistrer dans un fichier le cryptage/décryptage
    • Possibilité de décrypter un fichier
    Programme + source + dll
    En cas de problème de dll, télécharger le runtimne ci-dessus

    V 2.0
    • Ajout du Chiffre de Vernam (wikipédia)
    • Gestion des erreurs (ouverture de fichier, allocation, ...)
    • Réorganisation du code, division en fonction plus courte
    Programme + source + dll
    En cas de problème de dll, télécharger le runtimne de la version 1.0

    V 2.1
    • "Embellissement" du programme, description des différents zones
    • Ajout du déchiffrement par brute force pour le Chiffre de César
    • Possibilité de choisir le masque pour le Chiffre de Vernam
    • Ré-organisation du code
    Programme + source + dll
    En cas de problème de dll, télécharger le runtimne de la version 1.0
    Bug connu: il faut re-cliquer sur le bouton brute force pour refaire un déchiffrement et donc fermer la fenêtre à cause d'une erreur inconnue.

    V 3.0
    • Ajout de la méthode de chiffrement RSA.
    • Correction du bug de la V 2.1 concernant le brute force.
    • Les clés pour utilisé la méthode RSA se trouvent dans le fichier clé RSA.txt
    Programme + source + dll
    En cas de problème de dll, télécharger le runtimne de la version 1.0


    V 3.1
    • Correction de bug divers:
      - correction concernant le chiffre de César et les clés négatifs.
      - possibilité de faire plusieurs brute force avec le Chiffre de César.
      - correction concernant le chiffre de Vernam et le déchiffrement ainsi que pour le masque
      - algorithme RSA fonctionnel.
    Programme + source + dll
    En cas de problème de dll, télécharger le runtimne de la version 1.0

    Linux:


    Version 1.0:
    • Chiffre de César
    Programme

    Les autres versions Linux sont en cours

    Mac OS


    Je n'ai malheureusement pas de Mac à disposition

    Améliorations


    A faire:
    • Option d’enregistrement dans un fichier
    • Décryptage d'un fichier
    • Décryptage par ouverture d'un fichier crypté (César)
    • Autres méthodes de cryptage
    • Décryptage "brute", test toutes les clé possible (chiffre de César)
    • Vos suggestions !


    J’attends maintenant vos avis/critiques et éventuels bugs que vous avez découverts.

    Merci :)
    • Partager sur Facebook
    • Partager sur Twitter
    Utilitaire de chiffrement (EncrypBox)
      17 juin 2011 à 17:29:11

      Si tu fais un decryptage par brute force, tu pense utiliser un dictionnaire ???
      • Partager sur Facebook
      • Partager sur Twitter
        17 juin 2011 à 17:31:57

        Au début je pense que oui, après il faut voir pour tester directement la valeur ASCII des caractères car GTK+ encode en UTF8, c'est ce qui me pose problème pour les accents.
        • Partager sur Facebook
        • Partager sur Twitter
        Utilitaire de chiffrement (EncrypBox)
          17 juin 2011 à 17:38:12

          Tester directement la valeur ASCII ??? C'est à dire ??
          • Partager sur Facebook
          • Partager sur Twitter
            17 juin 2011 à 17:39:16

            C'est pas vraiment utile le décalage de lettres comme moyen de sécurité :(
            • Partager sur Facebook
            • Partager sur Twitter
            "Il est impossible pour un homme d'apprendre ce qu'il croit déjà connaître"
              17 juin 2011 à 17:41:03

              En même temps, je doute qu'il ai fait ça pour envoyer des messages ultra confidentiels ^^
              • Partager sur Facebook
              • Partager sur Twitter
                17 juin 2011 à 17:46:42

                Pour le moment je compare avec un tableau contenant l'alphabet mais je voudrais essayer en testant la valeur ASCII du caractère (A=65,B=66, ...), ce qui donnerait:
                if(caractère[i] == j)
                    caractère[i]== j+cle
                


                Citation

                C'est pas vraiment utile le décalage de lettres comme moyen de sécurité :(


                Je le sais ! C'est pour sa que je vais essayer de développer d'autres techniques et que je peux/veux développer une technique pour "briser" le cryptage

                Citation : czerty

                En même temps, je doute qu'il ai fait ça pour envoyer des messages ultra confidentiels ^^


                Exactement, c'était pour m'entrainer, avant j’utilisai les valeurs binaires :p (en console)
                • Partager sur Facebook
                • Partager sur Twitter
                Utilitaire de chiffrement (EncrypBox)
                  17 juin 2011 à 19:46:44

                  Citation : linkamaki

                  En même temps, je doute qu'il ai fait ça pour envoyer des messages ultra confidentiels

                  Exactement, c'était pour m'entrainer, avant j’utilisai les valeurs binaires (en console)


                  T'en fais pas je sais que tu compte pas envoyer des secrets du gouvernement avec ce soft :p

                  Par contre pour les binaires tu veux dire quoi ? Parce que si tu compte juste mettre ASCII => BINAIRE , c'est comme si tu faisais rien ! N'importe qui peut utiliser un lecteur binaire ! ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                  "Il est impossible pour un homme d'apprendre ce qu'il croit déjà connaître"
                    17 juin 2011 à 20:39:11

                    Houla, ton code ma l'air bien compliqué, pourquoi pas faire tout simplement

                    lettrecryptee  = lettre + ((lettre + cle) % 26);
                    


                    et apres tu fais juste un boucle pour parcourir le tableau d'entrée et le tableau crypté
                    la ca fait beaucoup de boucles et de conditions pour pas grand chose.

                    Et en plus, comme ça tu utilise les valeurs ASCII.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      17 juin 2011 à 22:36:25

                      Citation : Chiheb2010

                      Citation : linkamaki

                      En même temps, je doute qu'il ai fait ça pour envoyer des messages ultra confidentiels

                      Exactement, c'était pour m'entrainer, avant j’utilisai les valeurs binaires (en console)


                      T'en fais pas je sais que tu compte pas envoyer des secrets du gouvernement avec ce soft :p

                      Par contre pour les binaires tu veux dire quoi ? Parce que si tu compte juste mettre ASCII => BINAIRE , c'est comme si tu faisais rien ! N'importe qui peut utiliser un lecteur binaire ! ;)



                      La valeur binaire des caractères

                      Citation


                      Houla, ton code ma l'air bien compliqué, pourquoi pas faire tout simplement


                      et apres tu fais juste un boucle pour parcourir le tableau d'entrée et le tableau crypté
                      la ca fait beaucoup de boucles et de conditions pour pas grand chose.

                      Et en plus, comme ça tu utilise les valeurs ASCII.



                      Le problème c'est que GTK utilise l'encodage UTF8 donc je ne sais pas si cela marche
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Utilitaire de chiffrement (EncrypBox)
                        17 juin 2011 à 22:42:42

                        Pour des fichiers t'es pas obligé d'utiliser les types de GTK+ :)

                        Pour les valeur binaires des caractères ASCII c'est comme je l'ai dit : trop faible , regarde sur Google ou Wikipédia , il y a pas mal d'algorithmes de cryptage et il y a un tutoriel sur le SdZ ;)
                        • Partager sur Facebook
                        • Partager sur Twitter
                        "Il est impossible pour un homme d'apprendre ce qu'il croit déjà connaître"
                          17 juin 2011 à 22:45:50

                          Citation : Chiheb2010

                          Pour des fichiers t'es pas obligé d'utiliser les types de GTK+ :)

                          Pour les valeur binaires des caractères ASCII c'est comme je l'ai dit : trop faible , regarde sur Google ou Wikipédia , il y a pas mal d'algorithmes de cryptage et il y a un tutoriel sur le SdZ ;)



                          Pour insérer le texte dans le champ de texte, il faut le convertir, utiliser le type gchar ou sinon il y a une erreur. Pour les valeurs binaires c'était sur une vielle version que j’avais réaliser, la première même en console.

                          Pour les autres méthodes, je vais me pencher sur les masques jetables
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Utilitaire de chiffrement (EncrypBox)
                            17 juin 2011 à 22:49:13

                            Ah ok , je n'utilise que très peu gtk vu que j'ai des problèmes à l'installer sur mon PC. ^^
                            J'attend de voir la version avec les masques jetables ;)
                            • Partager sur Facebook
                            • Partager sur Twitter
                            "Il est impossible pour un homme d'apprendre ce qu'il croit déjà connaître"
                              17 juin 2011 à 23:21:26

                              Bonjour,

                              Juste pour rappel de vocabulaire, on parle de chiffrement en français (d'où le nom "chiffre de César").

                              Pour le déchiffrement, tu peux utiliser les proba d'occurrences des lettres dans la langue française et anglaise ensuite. (Analyse fréquentielle)
                              • Partager sur Facebook
                              • Partager sur Twitter
                                17 juin 2011 à 23:27:54

                                Je dirais plutôt "chiffre de César" car on décale d'un certain chiffre les lettres.

                                Pour l’occurrence, la méthode est peut-être un peu poussé, avec la méthode "brute", il y a juste 25 valeurs à tester

                                • Partager sur Facebook
                                • Partager sur Twitter
                                Utilitaire de chiffrement (EncrypBox)
                                  17 juin 2011 à 23:32:30

                                  Le chiffre choisi est la clé du chiffrement.

                                  Les 2 méthodes ont chacun des atouts et des inconvénients selon la taille du texte à chiffrer.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    17 juin 2011 à 23:34:18

                                    Je suis d'accord avec toi sur le deuxième point, il faudra que je regarde cette aspect !
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Utilitaire de chiffrement (EncrypBox)
                                    Anonyme
                                      17 juin 2011 à 23:34:39

                                      Tu pourrais aussi décaler/crypté les espaces comme tous les autres carcatères ça rendrait les messages encore moins lisible. ^^

                                      Bonne chance. :)
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        17 juin 2011 à 23:38:07

                                        Citation : Natsu.

                                        Tu pourrais aussi décaler/crypté les espaces comme tous les autres carcatères ça rendrait les messages encore moins lisible. ^^

                                        Bonne chance. :)



                                        Bonne idée ! J'en prends note également
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Utilitaire de chiffrement (EncrypBox)
                                        Anonyme
                                          18 juin 2011 à 0:03:43

                                          Je viens me resseigner rapidement sur le chiffre de cesar et tu pourrais aussi utiliser une autre vesrion qui rendrait le déchiffrage plus compliqué, ça tromperai aussi sur le nombre de caractère totale en plus des espaces.

                                          Pour ça il ne faut pas boucler l'alphabet. Arrivé à 'Z' tu ne passes pas à 'A' mais à 'AA' puis à 'AB' ect... C'est un peu plus compliqué mais rien d'insurmontable. ^^
                                          D'après Wiki c'est la vesrion 2 du chiffre de césar utilisé par son neveu Auguste. Voilà pour l'info.

                                          Amuse toi bien. :)


                                          Ps: Ton sujet m'a donné envi, il faut vraiment que je m'en code un en version console (linux) juste pour la forme, VIM me revoilà ! :pirate:
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            18 juin 2011 à 7:48:57

                                            Mon code marche normalement sur tous les encodages, tant que toutes les lettres de l'alphabet sont consécutives.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              18 juin 2011 à 10:33:46

                                              Citation : cczerty

                                              Houla, ton code ma l'air bien compliqué, pourquoi pas faire tout simplement

                                              lettrecryptee  = lettre +(lettre + cle);
                                              



                                              et apres tu fais juste un boucle pour parcourir le tableau d'entrée et le tableau crypté
                                              la ca fait beaucoup de boucles et de conditions pour pas grand chose.

                                              Et en plus, comme ça tu utilise les valeurs ASCII.



                                              J'ai testé une solution similaire mais malheureusement, comme tu peux le voir ici, les valeurs ASCII des lettres ne sont pas a=0, b=1, ... mais 97, 98, ... donc il faut faire des conditions supplémentaires:

                                              lettrecryptee=lettre+cle;
                                              
                                              if(lettrecryptee >= 123) // 122=z
                                                 lettrecryptee=97+(lettrecryptee-123);
                                              
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              Utilitaire de chiffrement (EncrypBox)
                                                18 juin 2011 à 10:54:28

                                                ah oui, dans ce cas la tu peut faire :
                                                lettre_debut = lettre - lettre % 26; // On crée une variable lettredebut qui contient la premiere lettre de l'alphabet (peu importe le codage ou l'état majuscule/minuscule
                                                lettre_cryptée = lettre_debut + ((lettre + cle) % 26); // On transforme la lettre contenant le cractère ASCII en lettre crypptée de 0 a 26 et on lui ajoute la lettre de de référence determinée ci-dessus
                                                
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  18 juin 2011 à 11:12:34

                                                  Citation : cczerty

                                                  ah oui, dans ce cas la tu peut faire :

                                                  lettre_debut = lettre - lettre % 26; // On crée une variable lettredebut qui contient la premiere lettre de l'alphabet (peu importe le codage ou l'état majuscule/minuscule
                                                  lettre_cryptée = lettre_debut + ((lettre + cle) % 26); // On transforme la lettre contenant le cractère ASCII en lettre crypptée de 0 a 26 et on lui ajoute la lettre de de référence determinée ci-dessus
                                                  


                                                  Marche pas, le résultat est le même avant et après être passé dans la "fonction"
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  Utilitaire de chiffrement (EncrypBox)
                                                    18 juin 2011 à 11:39:40

                                                    Chez moi ça marche superbement bien pourtant t'as essayé d'afficher lettredebut ??
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      18 juin 2011 à 16:29:43

                                                      Lettrecrypte plutot ?
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      Utilitaire de chiffrement (EncrypBox)
                                                        18 juin 2011 à 16:43:09

                                                        ben aussi lettredebut pourvoir si il l'initalise bien au bon nombre
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          18 juin 2011 à 16:52:57

                                                          Effectivement sa marche mais sa ne gère pas si le résultat est supérieur a 122
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                          Utilitaire de chiffrement (EncrypBox)
                                                            28 juin 2011 à 0:47:47

                                                            Tu pourrais implémenté ton cryptage RSA au lieu du cryptage de César, parce qu'il est très facile à trouver.

                                                            Si tu ne connais pas comment RSA fonctionne, tu peux regarder sur internet, sinon je peux t'aider un peu, mais il ne faut pas que tu utilises des nombres premiers trop grand au début pour ton p,q et e, sinon tu vas dépasser la limite du unsigned long et tu devra encoder tes nombres d'une autre manière, comme un tableau de byte.
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              28 juin 2011 à 6:54:27

                                                              Sinon, pour RSA, il y a un tuto (même 2 je crois) dans la partie algorithmique.
                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              [Utilitaire/C] EncrypBox

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown